概説
Video Usability Info (Annex E):
The VUI settings are not used by the encoder but are merely suggestions to
the playback equipment. See doc/vui.txt for details. Use at your own risk.
"VUI 設定はエンコーダが使うものではなく、再生設備に対する付加情報に過ぎない。詳細はdoc/vui.txt参照。自己責任で使う事。"
doc/vui.txtを試訳してみたところ 、やはりデコーダ向けの参考情報で生成データをどうこうするものではない。使いこなすにはTVやカラープロファイルなどの"しくみ"に精通している必要がありそうだ。
例えばこれらを使って暗部のブロックノイズが潰せたとしても、原理的には暗部のブロックノイズをモニタの輝度調整で潰すに近い。効果は視聴環境(部屋の明るさ、TVに出す場合は画質プリセットの選択)により大きく変わる。これらはそうした微調整の自動化で、視聴環境(デコーダ、再生機器、モニタの種別)のサポート次第だ。
x264cliがこれらをサポートする理由は、規格にあるからという事もあろうが、特に北米ではTV出力する据え置き型Divx/MP4プレイヤが盛んな事もあるだろう。
手許ではこれらの設定に頼らず、生成データのレベルでなんとかする方向 (てゆうかMEncoderの対応オプション探してないだけとも言う)。
man MEncoder 、
MEncoder Doc 、MeGUI2.0 Help(
ContextHelp v0.2 06/01/01 )には記載未発見。
Video Usability Info (Annex E)オプション
x264cli (rev600準拠)
MEncoder -x264encopts (dev-SVN-r20806 準拠)
--overscan <string> [undef]
対応不詳
■ まとめ:
Specify crop overscan setting ["undef"] - undef, show, crop
■ 参考
VUI Guide こ れは何? 一般的に"オーバースキャン"という用語は映像の内、情報を含まないが、特定の解像度やアス ペクト比を維持するために付加された領域の全てを表します。 従って「レターボックス化」された映像には上下に"オーバースキャン"が付いています。 し かし、このオプションが扱う"オーバースキャン"は意味が異なります。またアナログ信号をデジタル化する過程で付加される"オーバースキャン"でもあ りません。 ここで言う"オーバースキャン"とは、ディスプレイ上で映像の一部分だけを表示させるという意味です。"どの一部分"なの かはディスプレイに拠ります。 使い方 ディ スプレイがオーバースキャン・プロセスを使う際に映像のどの部分が表示されるか、私には正確なところが解りませんので、ここで方法や例示を書くことができ ません。 "overscan=show"が安全であろうかと思います。というのはこれは常に映像全体を表示する信号だからです。 "overscan =crop"は影響が確実に解っている場合にのみ使って下さい。 またデフォルトの"undefined"も使って大丈夫です。 こ のオプションは使った方がよいですか? 正確に理解している場合に限って、はい。 一 般的な意味での"オーバースキャン"がある映像ストリームには使わないで下さい。その場合はエンコード前に黒帯をクロップして高ビットレート/高画質を 狙って下さい。さらにH.264規格には"overscan=show"の設定が優先されるとありますが、"overscan=crop"の設定は無視さ れる事があり得る、ともあります。実際、多くの再生機器(※equipment、ソフトも含むか?)ではこの設定を無視して映像全体を表示します。
手 許 『改訂版H.264/AVC教科書』の索引に 「クロッピング処理」なる記述があった。デコード後、画面に表示する前に出力する画像の形態に合わせ て上下左右の画素を切り出す処理、との事。 同 書p183に以下の文言有り。"例 えばHDTVの場合、走査線の数は1080本です。これに対してH.264/AVCでは垂直、水平方向とも16画素の倍数でな いと符号化できません(1080本は16の倍数ではない)。例えば、1088本(16の倍数)を符号化した場合、8ラインを捨てて表示する必要があります が、この場合、クロッピング処理によって、ビットストリーム中でどの上下8ラインを捨てるのかを明示的に指定する事ができます。" 特 にインタレ保持をテレビに出す場合、対象機器のデコーダの性能によっては、考慮しても良さそうだ。
zero1(svn408) Usage: --overscan <string> (default=undef) [undef, show, crop] 編集ガイドや再生ガイドにも書いてありますが(*x264以外のガイドもたくさんある*)、TVは映像を全部表示しているわけではありません。10~ 20%ばかりはロス(*表示されない領域*)があります。これはブラウン管(*tube*)を有効活用するために、スクリーンにブランクスペースが出ない ようにするためです。 NTSCの走査線は525ラインありますが、そのうち実際の映像を含んでいるのは大体 486ラインです。もしoverscanがなかったら、TVは525ラインを全部表示するでしょう。これはつまり、上下に黒帯が出ると言う事です。映像の 両サイドにも普通はブランクデータがあります。実データの横幅が704-711"pixels"のDVDでは一般的に、横幅を720ピクセルにするべく黒 帯が付加されます(これがMPEG-2の横幅が16の倍数でなければならない理由です)。 さてそれでは、映 像データにoverscanがなかったらどうなるでしょうか?事実上Cropされたかのように表示されます(overscanのために、データはあっても 表示されない)。ここが--overscanオプションの使い道です。 "--overscan show"でズームアウトして映像全体表示。 "--overscan crop"で通常通り端っこを切り落として表示。 この設定はハードウェア側の対応が必要です(ソフトの場合 も必要ですが、どのみちPCモニタにoverscanはありません)。この機能を実装していない再生機器の場合、--overscan設定は無視。なにを 設定していようとcrop表示になります。
--videoformat <string> [undef]
対応不詳
■ まとめ:
Specify video format ["undef"] - component, pal, ntsc, secam, mac, undef
■ 参考
VUI Guide こ れは何? 純粋に参考的な(※informative)設定。デジタル化される 前のアナログ映像のタイプを示す。 使 い方 NTSCやPALなど、好みの値を入れるだけ。 MPEG2 からトランスコードする場合、素材のm2vビットストリームの中にこの値が見つかるかもしれない。(詳細は ITU-T Rec. H262 / ISO/IEC 13818-2参照。) こ のオプションは使った方がよいですか? これは完全にあなた次第です。 こ の設定が何かに影響を及ぼすと言う事は考えられません。私は純粋な付加情報に過ぎないと考えています。
手 許 地アナTVキャプチャなので入れるとすればntsc。
zero1(svn408) Usage: --videoformat <string> (default=undef) [component, pal, ntsc, secam, mac, undef] ただの参考情報の(※ informative)設定。ファイルに付けるメタデータに似ている。ソースの種類を指定できる。ただの付加情報なので再生にもエンコードにも全く影響 しない。
--fullrange <string> [off]
対応不詳
■ まとめ:
Specify full range samples setting ["off"] - off, on
■ 参考
VUI Guide こ れは何? アナログ映像のデジタル化に関わるもう一つの遺物。 アナログ映像をデジ タル化する際、輝度と彩度のレベルがそれぞれ16..235 と 16..240の範囲に制限されます。 通常、再生機器(※ equipment、ソフトも含むか?)は全てのデジタル化されたサンプルがこの範囲内にあると想定しています。 しかしながら、大半 のDVDでは輝度も彩度も0..255のフルレンジを使っています。 こうしたDVDをそのような再生機器にかけた場合、オーバーサ チュレーションが起きる可能性があります。 これを避ける為にはレンジ補正が必要となります。使 い方 素材がデジタル化されたアナログビデオ/TV放送なら、取り込み時にレンジが限定されている可能 性が非常に高いです。 限定されている事が確実なら、--fullrangeはoffのままで安全です。 確実でな い場合や、オーバーサチュレーション抜きで再生できているか確認したい場合は、onにしてみましょう。 x264のデフォルトはoff である事に注意して下さい。これは"安全"ではありません。このオプションは使った方がよいですか? は い。 しかし、このオプションを理解できるデコーダ/メディアプレイヤはごく少数です。
手 許 地アナMPEG2キャプチャでどうなってるか不明。念のためCMカットの段階でレンジ変換してやるべきかも 知れない。 --fullrange onにするとTVに持って行っても大丈夫そうではある。
zero1(svn408) Usage: --fullrange <string> (default=off) [on, off] こ れもTVを主眼とする設定。TVは輝度レンジ16-235、彩度レンジ16-240を想定している。これはTVで見る限りは大丈夫だが、PCモニタでは黒 がダークグレイに、白はライトグレイになってしまう。PCモニタで見る場合は、AVISynthでレベルを調整しても良い。こうした事を知らなくても、素 材映像が16-235にならないような調整をしている場合もある(例えば、pure black, pure white, or pure saturated coloursを使っている場合)。 これに加え、DVDの中には0-255のフルレンジを使ったものもある。 ならばTVで0-255のフルレンジを使っても問題は無いのではないかという気もするが、これは規格上正しく無い。オーバーサチュレーションが起きる。 "--fullrange on"は再生時のレンジ補正(0-255 to 16-235)。これでTVに映しても大丈夫(H.264デコード対応プレイヤの場合)。 PC モニタは0-255(以上)を表示できるので、ソフトウェアプレイヤはこの設定を無視する傾向にある。レンジ補正無し、そのまま0-255で出力。だから onでどちらで表示しても問題無い。 "--fullrange off"を使っても平気なのは素材映像のレンジが16-235の時だけです。
--colorprim <string> [undef]
対応不詳
■ まとめ:
Specify color primaries ["undef"] - undef, bt709, bt470m, bt470bg smpte170m, smpte240m, film
■ 参考
--transfer <string> [undef]
対応不詳
■ まとめ:
Specify transfer characteristics ["undef"] - undef, bt709, bt470m, bt470bg, linear, log100, log316, smpte170m, smpte240m
■ 参考
覚書 (要約) 詳 細不詳だが、カラーマトリクスは、コレを使ってますよと、宣言するのに--transferを使う。 使うと暗 部のブロックノイズが軽減される傾向。 ------------------------------------------------------------- Rec709 (bt709) → 720p(PAL型HDTV風味?)的なカラーマトリクス smpte240 → 1080i(NTSC型HDTV風味?)的なカラーマトリクス Rec601(bt601) & amp; amp; rarr; 480i,480p的なカラーマトリクス smpte170 → コンポジットNTSC (SDTV)的なカラーマトリクス Rec470(bt470) → PAL(SDTV)的なカラーマトリクス ∴Rec709≒smpte240m , Rec601≒smpte170 …厳密 には違うので悪しからず。 ------------------------------------------------------------- bt709, smpte240m, smpte170m。この三つから選ぶといい印象。
手 許 闇階調ブロックノイズは生成データのレベルでなんとかしたい。
VUI Guide 5. Color Primaries, Transfer Characteristics, Matrix Coefficientsこ れは何? 映像マニア(※videophile)の設定。平均的なユーザにとって必要なものでは、ぜん ぜんないです。 全てのモニタが全ての色を同じように表示するわけではありません。 同じ映 像を別モデルのモニタ2個で見比べるとどちらか片方が"青っぽく"、もう片方は"緑っぽく"見える事でしょう。 結論から言うと、モニ タはモデル毎に異なったカラープロファイルを持っています。これは全てのモニタで映像がだいたい同じに見えるように色を補正するためのものです。プリンタ やフィルム/ビデオ・デジタイザなども同様です。 デジタイザ機器のカラープロファイルが解っていれば、デジタイザ機器を使っていよう がいまいがデコード後のh264ストリームの色やガンマを補正する事が出来ます。 使 い方 自分のデジタイザ機器の特性を見つける事ができれば(see the equipment documentation or make reference measurements)、概ね見合った特性をH264 Annex Eの特性リストから探してx264に渡す事ができます。 または、デフォルト (unspecified)のままほっとくか。 MPEG2 からトランスコードの場合、m2v bitstreamの中にこのオプションのための値が書いてあるかもしれません。(詳細はITU-T Rec. H262 / ISO/IEC 13818-2参照) こ のオプションは使った方がよいですか? 自分が何をしているかキッチリ理解している場合に限って、は い。 このオプションを使うのは悪い考えではありませんが、デフォルトの設定は間違ったものよりマシです。 残念な 事に私はcolor/gamma/color matrix補正に対応したデコーダ/メディアプレイヤを、それを試みようとするものさえ、見た事がありません。
zero1(svn408) 記 載無し
--colormatrix <string> [undef]
対応不詳
■ まとめ:
Specify color matrix setting ["undef"] - undef, bt709, fcc, bt470bg smpte170m, smpte240m, GBR, YCgCo
■ 参考
--chromaloc <integer> [0]
対応不詳
■ まとめ:
Specify chroma sample location (0 to 5) [0]
■ 参考
VUI Guide 6. Chroma Sample Locationこれは何? 映 像マニア(※videophile)の設定。平均的なユーザは違いに気付く事さえないでしょう。 人間の視覚の弱点(※色彩認識力は輝 度のそれに比べて弱い)を利用して彩度サンプルを間引く事をサブサンプリングと言います。 特にx264では、2x2輝度サンプルブ ロックに対応する彩度サンプルは一個だけです。 こうしたサブサンプリングを行う方式には様々なものがありますが、結果はどれも輝度サ ンプル値に対する彩度サンプル値の相対位置を出すものです。彩度サ ンプル・ロケーションはサブサンプリングプロセスを逆回転させる時(※再生時)に効果が出ます。即ち、彩度サンプルの数が増やされるわけです。多くの場 合、これはカラースペース変換の際に行われます。この工程が正確でないと、多くの場合、彩度の値が輝度サンプルに対して1ピクセルずれた位置に現れます。 または奇妙なボケ。 使い方 x264 はサブサンプリング済みの入力フレームしか受け付けないので、サブサンプリング能力を持たない。従って彩度サンプル・ロケーションの方式は自分で設定する 必要がある。 適切に4:2:0サブサンプルされたMPEG1のトランスコードで、カラースペース変換を一切行わない場合、オプショ ン指定値は1。 適切に4:2:0サブサンプルされたMPEG2のトランスコードで、カラースペース変換を一切行わない場合、オプ ション指定値は0。 適切に4:2:0サブサンプルされたMPEG4のトランスコードで、カラースペース変換を一切行わない場合、オ プション指定値は0。 カラースペース変換を自力で行う場合、これは簡単な事では無い。 サブサンプリングの フィルタ・カーネルが 一方向の( 0.5, 0.5 ) の場合、その方向の彩度サンプリング・ロケーションは2個の輝度サンプルの間になる。 サブサンプリングのフィルタ・カーネルが 一方向の ( 0.25, 0.5, 0.25 ) の場合、その方向の彩度サンプリング・ロケーションは輝度サンプルうち一つと同じになる。 H264 Annex E には彩度サンプル・ロケーションをx264に渡せる0~5の形式に"トランスフォーム"する方法を示す図が入っている。 こ のオプションは使った方がよいですか? 完全主義者でなければ気にしないで下さい。メディアプレイヤは この設定を無視して固有の(固定の)彩度サンプル・ロケーションを使います。
手 許
zero1(svn408) Usage: --chromaloc <integer> (default=0) [0 - 5] 彩度のアップサ ンプリングに関わる極めて技術的な設 定。例えばカラースペース変換や再生など。正しく使う事ができればクロマシフトやブラーを緩和できる(ほとんどの場合、ズレは1ピクセルくらいなので目立 たないが)。 もし素材映像を編集してあれば、その段階でカラースペース変換は終わっている(ほとんどの編集ソ フトはRGBを使う)だからこの設定は必要すらない(さらに平均的な人はその違いにすら気付かない)。カラースペース変換を経ていない直エンコでない限 り、この設定の使用はお奨めはしません。 しかしながら万全を期す為に大まかな指針を書いて置きます: 素 材がMPEG-1 (4:2:0) かつ direct transcode (no colourspace conversion)の場合、1を指定。 素材がMPEG-2 (4:2:0) かつ direct transcode (no colourspace conversion)の場合、0を指定。 素材が MPEG-4 (4:2:0) かつ direct transcode (no colourspace conversion)の場合、0を指定。
スポンサーサイト