ColorYUV
ColorYUV (clip, float "gain_y", float "off_y", float "gamma_y", float "cont_y", float "gain_u", float "off_u", float "gamma_u", float "cont_u", float "gain_v", float "off_v", float "gamma_v", float "cont_v", string "levels", string "opt", boolean "showyuv", boolean "analyze", boolean "autowhite", boolean "autogain")
ColorYUV は、画像の色や輝度を変更するための種々の方法を提供します。ColorYUV は、AviSynth v2.5 から内蔵されています。このフィルタのすべての設定は、オプション扱いです。すべてのパラメータのデフォルト値は、0 または false に設定されています。
gain、off、gamma と cont は、各チャンネルごとに独立して設定することができます。
gain は、ゲイン値に対する乗数*1で、0 を基準点として信号を伸張します。混乱させてしまうかもしれませんが、Tweak フィルタでは、この設定は contrast (コントラスト)と呼ばれています。つまり gain を 0 に設定すると、値はそのまま保持されることになります。gain が 256 の時、すべての値は 2 倍されます(2 倍明るくなる)。gain が 512 なら、すべての値は 3 倍されます。このように、ある整数 k に対し gain = k*256 なら、Y*2 は (k+1)*Y になります(色差についても同様)。ただし可能ではあるものの、この設定を信号の色差成分に適用することは意味をなしません。
off (offset、オフセット)は、指定された値を輝度と色差の値に足します。off を 16 に設定すると、ピクセル値に 16 が足されます。off = -32 は、すべてのピクセル値から 32 を引きます。
gamma は、指定されたチャンネルのガンマを調節します。gamma = 0 は、ガンマ 1.0 と同じです。gamma を 256 に設定すると、ガンマ 2.0 と同じになります。gamma の有効値は下が -256 までで、これはガンマ 0.0 と同じです。
cont (contrast、コントラスト)もまたコントラスト値に対する乗数で、信号を 128 から伸張します。つまり cont を 0 に設定すると、値はそのまま保持されることになります。cont = 256 の時、すべての値は 2 倍されます(2 倍明るくなります)。cont = 512 なら、すべての値は 3 倍されます。このように、ある整数 k に対して cont = k*256 (かつ gain = 0)なら、Y は Y + k*(Y-128) になります(色差についても同様)。ただし可能ではあるものの、この設定を信号の輝度に適用することは意味を持ちません。
levels は、"TV->PC" または "PC->TV" のいずれかに設定可能です。これは、色の範囲の変換を実行します。通常、YUV の値は 0 から 255 (PC スケール)ではなく、限定された範囲(TV スケール)*3にマッピング*4されます。このフィルタは、これらの 2 つのフォーマット間の変換を行います。実引数を省略すると、変換は行われません(デフォルトの演算)。
opt は、"coring" または ""*5 のいずれかです(デフォルト "")。"coring" を指定すると、YUV の値が有効な TV スケールの範囲にクリッピングされます。これに対し "" なら、「無効な結果」も許可されます。
showYUV は、true または false です。true なら、クリップを 2 方向の座標軸に沿ってすべての色差の値を表示する画像に置き換えます。これは、画像の色を調節する必要があるが、色がどのように配置されているかを知る必要があるような場合に役に立ちます。画像の左上隅において、色差の値は U、V ともに「16」です。画像の右端で U は最大値となり、画面の下端で V が最大値となります。画面の中央において、色差はともに 128 (または 灰色)です。
analyze は、true または false です。true なら、画面上に色の統計情報を出力します。これらの情報には、すべてのチャンネルの最大値(maximum)と最小値(minimum)、すべてのチャンネルの平均値(average)、そして「緩めの最大値(loose maximum)」と「緩めの最小値(loose minimum)」が含まれています。「緩め」の値は、不自然に低い(または高い)最小値(または最大値)を生み出す非常に明るい(または非常に暗い)ノイズの仕様を除外するために算出されたものです。
autowhite は、true または false です。true なら、アナライザ(analyzer)からの情報を使用して、色のオフセットを中央揃えにしようとします。録画した素材の色がある 1 つの色にシフトしているような場合に、このフィルタは役に立つかもしれません。でも注意してください。これは、あまり賢くはありません。もし素材が澄んだ青い空なら、autowhite は完全に灰色にしてしまうでしょう!autowhite と一緒に「off_u」または「off_v」パラメータを指定すると、U または V のオフセットは使われなくなります!
autogain は、true または false です。true なら、アナライザからの情報を使用して、可能な限り正しいコントラストを生成しようとします。つまりこれは、輝度(Y)の値を最小値と最大値にマッチするように拡大するのです。カメラの「オートゲイン」設定のように動作し、コントラストの正しい場面はそのままに、暗い場面の値を増幅します。これはまた、「自動レベル補正」と呼ばれることもあります。
(例えば Tweak における)彩度とコントラストと明るさの量は、このフィルタにおける各パラメータの量と以下の方程式によって結びつけられます:
cont_u = cont_v = (彩度-1) * 256 gain_y = (コントラスト-1) * 256 off_y = 明るさ
例えば、彩度 0.8 なら cont_u = cont_v = - 0.2 * 256 = - 51.2 になります。なお YUV の値は、Tweak では常に有効な TV スケールの範囲にクリッピングされますが、ColorYUV では opt="coring" と指定しなければクリッピングされません。
# すべてのチャンネルのガンマを(y のみ弱めに)調節し、「y」を大きくする: ColorYUV(gamma_y=128, gamma_u=256, gamma_v=256, off_y=-16) # すべての色を表示する。フレーム 0 は輝度 16、フレーム 1 は輝度 17 など: ColorYUV(showyuv=true) # 非常に悪い状態のキャプチャソースの見た目を回復する: ColorYUV(autogain=true, autowhite=true)
註: このページは、AviSynth 2.5.7 に同梱されているマニュアル(英語版)の日本語訳です。原文は、AviSynth をインストールしたフォルダ内の Docs/english/corefilters/coloryuv.htm にあります。なお、このページのテキストおよび画像のライセンスは、オリジナルのそれに準じます。
*1 訳者註: multiplier。かけ算における掛ける数。
*2 訳者註: Y は輝度のこと。
*3 訳者註: Y [16-235]、UV [16-240]。
*4 訳者註: 「対応付け」、「割り当て」などの意味。参考: マッピング(Mapping):RBB TODAY (ブロードバンド辞典)
*5 訳者註: 二重引用符のみ。