SSRC

From Avisynth wiki
Revision as of 15:38, 15 April 2012 by Wilbert (Talk)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

SSRC(clip, int samplerate [, bool fast])

SSRC resampling. Audio is always converted to float. This filter will result in better audio quality than ResampleAudio. It uses SSRC by Naoki Shibata, which offers the best resample quality available.

Sampling rates of 44.1kHz and 48kHz are popularly used, but the ratio of these two frequencies is 147:160, and they are not a small numbers. Therefore, sampling rate conversion without degradation of sound quality requires filter with very large order, and it's difficult to achieve both quality and speed. This program achieves relatively fast and high quality with two different kinds of filters combined skillfully.

Parameter:

samplerate samplerate must be an integer.
fast This will enable faster processing at slightly lower quality. Set this to false if you are doing large sample rate conversions (more than a factor 2). Default: true.

SSRC doesn't work for arbitrary ratios of the samplerate of the source and target clip. The following ratios are allowed (see SSRC.cpp):

sfrq = samplerate of source clip
dfrq = samplerate of destination clip
frqgcd = gcd(sfrq,dfrq) # Greatest Common Divisor
fs1 = (dfrq > sfrq) ? sfrq / frqgcd : dfrq / frggcd
Resampling is possible if: (fs1 == 1) or (fs1 % 2 == 0) or (fs1 % 3 == 0)

example for which resampling is possible:
sfrq = 44.1 kHz
dfrq = 48 kHz
frqgcd = gcd(44100,48000) = 300
dfrq > sfrq, hence
fs1 = sfrq / frqgcd = sfrq / gcd(sfrq,dfrq) = 44100/300 = 147
and 147%3=0 since 147 = 3 * 49

The samplerate of your source clip can be found as follows

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


Example:

# Downsampling to 44.1 kHz:
AviSource("c:\file.avi")
SSRC(44100)

Changes:

v2.54 Initial Release.

Some parts of SSRC is:

Copyright (C) 2001-2003, Peter Pawlowski All rights reserved.

Personal tools