Normalize
(clip, float "volume", bool "show")
クリッピング*1を起こすことなく、波形全体を可能な限り増幅します。
デフォルトでは、クリップは 1.0 に増幅されます。これは、クリッピングを起こさない上限です。これよりも高い値に設定すると、必ずクリッピングを起こり、ひずみが生じます。音量が 1 つ供給されると、他のチャンネルは同じ量に増幅されます。
ピーク値の算出は、最初に音声が要求されたときに行われます。このため、AviSynth が続行されるまで、数秒かかります。
v2.08 から、オプションの引数 show があります。true
に設定すると、ひずみが起こらない最大限の増幅を表示します。
マルチチャンネル*2に関しては、たとえチャンネル間のレベルが非常に異なっていたとしても、このフィルタによって個別に増幅されることはありません。音量は最大ピーク値が見つかった''後で''適用され、別の Amplify
フィルタのように影響を及ぼされます。要するに、2 つの非常に異なるチャンネルがある場合、最も音の大きいチャンネルは最も音の低いチャンネルのピークでもあるということです。もし各チャンネルを別々にノーマライズしたいなら、ステレオソースを分離するために GetChannel
フィルタを使用しなければなりません。
音声のサンプリング形式は、浮動小数点数に変換されます。ただし、16 ビットの場合は変更されません。
使用例:
# 信号を 98% にノーマライズ video = AviSource("C:\video.avi") audio = WavSource("c:\autechre.wav") audio = Normalize(audio, 0.98) return AudioDub(video, audio) # 各チャンネルを別々にノーマライズ video = AviSource("C:\video.avi") audio = WavSource("C:\bjoer7000.wav") left_ch = GetLeftChannel(audio).Normalize right_ch = GetRightChannel(audio).Normalize audio = MonoToStereo(left_ch, right_ch) return AudioDub(video, audio) # 各チャンネルを別々にノーマライズ clip = AviSource("D:\Video\rawstuff\stereo-test file_left(-6db).avi") left_ch = GetChannel(clip,1).Normalize right_ch = GetChannel(clip,2).Normalize audio = MergeChannels(left_ch, right_ch) AudioDub(clip, audio)
原文 Date: 2004/07/04 19:37:46
日本語訳 $Date: 2008/06/22 07:41:17 $