SSRC

SSRC (int samplerate, bool "fast")

SSRC (Shibata Sample Rate Converter)は、リサンプラです。音声は、つねに浮動小数点数に変換されます。このフィルタは、ResampleAudio よりも高い音声品質をもたらします。
このフィルタは、利用可能な最高のリサンプリング品質を提供する、Naoki Shibata 氏による SSRC を使用しています。

44.1kHz と 48kHz というサンプリング周波数が広く使用されていますが、これら 2 つの周波数の比は 147:160 であり、これは小さな数字ではありません。それゆえ、音声品質の劣化を伴わないサンプリング周波数変換には非常に多くの命令を含むフィルタが必要となり、品質と速度の両方を実現するのは困難です。しかし、このプログラム(SSRC)は、2 つの異なる種類のフィルタをうまく組み合わせることによって、比較的高速かつ高品質な変換を実現しました。

パラメータ:

samplerateサンプリング周波数は、整数でなければなりません。
fastこのオプションを true にすると、わずかな品質の低下で、より高速な処理を可能にします。大きなサンプリング周波数変換(2 倍より大きい)を行う場合はこれを無効(false)にしてください。デフォルト: true

SSRC は、ソースクリップと出力クリップとのサンプリング周波数の任意の比に対して機能しません。次の比は許容されます(SSRC.c を参照)*1:

sfrq = ソースクリップのサンプリング周波数
dfrq = 出力クリップのサンプリング周波数
frqgcd = gcd(sfrq,dfrq)
fs1 = dfrq * sfrq / frqgcd
次の条件にあてはまればリサンプリングが可能: (fs1/dfrq == 1) または (fs1/dfrq % 2 == 0) または (fs1/dfrq % 3 == 0)

リサンプリングが可能な例:
sfrq = 44.1 kHz
dfrq = 48 kHz
frqgcd = gcd(44100,48000) = 300
fs1 / dfrq = sfrq / frqgcd = sfrq / gcd(sfrq,dfrq) = 44100/300 = 147
147 / 3 = 49 = 整数、ゆえに 147%3=0

ソースクリップのサンプリング周波数は、次のようにして知ることができます

AviSource(...)
Subtitle(string(c.AssumeFPS(23.976,sync_audio=true).AudioRate))

使用例:

# 44,1 kHz にダウンサンプリング:
SSRC(44100)

更新履歴:

v2.54初版

SSRC の一部の著作権に関して: Copyright © 2001-2003, Peter Pawlowski. All rights reserved.


註: このページは、AviSynth 2.5.8 RC3 に同梱されている英語版ヘルプの日本語訳です。原文は、AviSynth をインストールしたフォルダ内の Docs/english/corefilters/ssrc.htm にあります。なお、このページのテキストおよび画像のライセンスは、オリジナルのそれに準じます。詳しくは、AboutLicense を参照してください。


*1 訳者註: 以下の例で、gcd(A, B) は A と B の最大公約数を求める式です。

最終更新日時: 2014-03-11 (火) 03:49:08 (3692d)