WMV9の高度な設定

Microsoftの英語サイトにある技術文書から得た情報です。 WMV9で詳細設定をするためには、現状レジストリの操作が必要になります。 ここではその内容を一部紹介します。
読めばわかりますが、Windows Media Player 11インストール後に対応可能となります。 それ以前(WIndows Media Player 10環境)のレジストリ設定については、昔のページをご覧ください。

WMV9には、Advanced Profileというものがあり、より高度な設定が出来るようになっている。 しかし、WMEではそのような設定は出来ないのでレジストリを操作する必要がある。 (注:WME以外のフロントエンドソフトには、これらの設定に対応したものもある。) Advanced Profileは現在3つのバージョンがある。
■32bit版WMVA
FOURCCコード"WMVA"。WindowsMediaPlayer10をインストールすると使用可能になる。 VC-1規格に完全対応していないので、使用しないことが推奨されている。

■64bit版WVC1
FOURCCコード"WVC1"。 64bit版WindowsXP proに含まれている。

■32bit版WVC1
FOURCCコード"WVC1"。 新規に追加された。Windows Media Encoder Studio Editionに含まれている。 Windows Media Format 11 SDKにも含まれている。 (注:WindowsMediaPlayer11にも含まれる。)
詳細な設定をするには以下の場所にレジストリを追加する。
\\HKEY_CURRENT_USER\Software\Microsoft\Scrunch\WMVideo
削除すれば元に戻る。設定できる項目は以下の通り。
■Compression Optimization Type
圧縮最適化タイプの切り替え。
32ビットのWVC1専用
REG_DWORD
0:無効
1:画質優先。以下の設定をしたのと同じことになる。
Motion Search Level = 1
Motion Match Method = -1
Dquant Option = 2
Motion Search Range = -1
NumBFrames = 1
Motion Vector Cost Method = 1
Force LoopFilter = 1
上記の項目も個別に設定した場合は、個別の設定が優先される。
■DenoiseOption
ノイズ除去フィルタを使用するかどうかの設定。 場合によっては画質が低下することもある。
すべてのadvanced profileで有効。
REG_DWORD
0:無効
1:有効
■Dquant Option
知覚最適化を行う。 画の平坦な部分の画質が向上する。 最適化の強さはDquant Strength値で設定する。 Dquantとは、マクロブロックの前後での量子化器の差分。
32ビットのWVC1専用
REG_DWORD
0:無効
1:Iフレームのみ
2:I,Pフレーム
3:I,P,Bフレーム
■Dquant Strength
知覚最適化の強さ。 強くすればするほど、CPUの負荷が増大する。 Dquant Option値が1,2,3のときだけ有効。
32ビットのWVC1専用
REG_DWORD
0:自動
1:弱
2:中
3:強
■Force B Frame Delta QP
Bフレームとその参照先フレームの量子化器間の増分を指定する。
32ビットのWVC1専用
REG_DWORD
0〜31:増加量
■Force Encoding Height
■Force Encoding Width
内部的にリサイズしてデータを圧縮する。
すべてのadvanced profileで有効。
REG_DWORD
32〜8192:サイズ(32の倍数に丸められる)
■Force LoopFilter
ループフィルタを使用する。 ブロックノイズが低減されるが、映像がソフトになる。
すべてのadvanced profileで有効。
REG_DWORD
0:無効
1:有効
■Force Median
メディアンフィルタを使用する。 ある種のノイズを除去し、データサイズを小さくすることができる。 動きのあるものが尾を引くことがある。 通常、メディアンフィルタを使用するかどうかは自動判定である。 この設定を追加すると常にこの値が優先される。
すべてのadvanced profileで有効。
REG_DWORD
0:無効
1:有効
■Force NoiseEdgeRemoval
画面の周辺部のノイズ検出・除去を指定する。 テレビ放送のフレームの最初の21ラインは制御信号であるが、 キャプチャ時に数ライン分ノイズとして残ってしまった場合に修正する。 これが3行以上出るのは本来ハードウェアの不具合。
すべてのadvanced profileで有効。
REG_DWORD
0:無効
1:有効
■Force NumThreads
エンコード時のスレッド分割数を指定する。 マルチプロセッサ機などでエンコードする際に効果的。 スレッド分割すると若干の画質低下が起こりうる。
すべてのadvanced profileで有効。
REG_DWORD
1,2,4:スレッドの数
■Force Range Reduction
有効な色の範囲を縮小する度合いを指定する。 データサイズを小さくできるが、画にボケが発生する。 この設定自体が無ければ自動判定になる。 通常は低ビットレート時に自動的に適用される。
すべてのadvanced profileで有効。
REG_DWORD
0x0M0m0N0n:下記参照
  Mは輝度のエンコード時の縮小幅
  mは輝度のデコード時の拡大幅(通常、Mと同じにする)
  Nは色差のエンコード時の縮小幅
  nは色差のデコード時の拡大幅(通常、Nと同じにする)
  それぞれ0(なし)〜8(最大)を指定する。
  例えば 0x00000000 なら色範囲の縮小をしない。   また、 0xFFFFFFFF なら、レジストリ設定自体を無いと解釈する。
■Force Overlap
エンコード時のオーバーラップの使用を指定する。 画がスムーズになる。
32ビットのWVC1専用
REG_DWORD
0:無効
1:有効
■Force Video Scaling
ビデオスケーリング最適化の使用を指定する。 低ビットレート時の視覚的な品質を改善する。
32ビットのWVC1専用
REG_DWORD
0:無効
1:消極的に使用
2:積極的に使用
■Lookahead
現在のフレームより後のフレームをエンコード前に評価する。 より効果的にエンコードできる。 Windows Media Format SDKを使ったアプリケーションは先読みに対応していないため、 指定したフレーム数ぶんだけ出力にズレが生じる。
すべてのadvanced profileで有効。
REG_DWORD
0〜16:フレーム数
■Macroblock Mode Cost Method
マクロブロックのモードを決めるための計算方法を指定する。
32ビットのWVC1専用
REG_DWORD
0:SAD/Hadamard(歪)
1:RD cost(レート+歪)
■Motion Match Method
動き検索のための評価計算の方法を指定する。
32ビットのWVC1専用
REG_DWORD
0:SAD
1:Hadamard
-1:Macroblock-adaptive(マクロブロック毎に決定)
■Motion Search Level
動き検索に使用するビデオ情報を指定する。
32ビットのWVC1専用
REG_DWORD
0:輝度のみ
1:輝度と色差近似値
2:輝度と色差
-1:マクロブロック適応
-2:マクロブロック適応と色差近似値
■Motion Search Range
動き検索をする範囲を指定する。
32ビットのWVC1専用
REG_DWORD
0:横±64、縦±32ピクセル
1:横±128、縦±64ピクセル
2:横±512、縦±128ピクセル
3:横±1024、縦±256ピクセル
-1:マクロブロック適応
■Motion Vector Coding Method
動きをベクトル化する際の方法について指定する。
32ビットのWVC1専用
REG_DWORD
0:デフォルト
1:水平方向へ拡大
2:垂直方向へ拡大
3:水平・垂直方向へ拡大
■Motion Vector Cost Method
動きベクトルの符号化のコスト(計算量)の割り当て方を指定する。 動的にすると画面内で最適になるようにブロック間で融通を利かせる。 32ビットのWVC1専用
REG_DWORD
0:静的
1:動的
■NumBFrames
双方向予想フレーム(Bフレーム)の数を指定する。 デフォルトではBフレームは使用せず、IフレームとPフレームだけを使用する。 Bフレーム指定なしが IPPPPPPPPPPI で、指定2が IBBPBBPBBI である。 Bフレームを挿入すると、Iフレーム間におけるP,Bフレームの数が変わり、 設定したキーフレーム間隔を超過する可能性があることに注意する。 Windows Media Format SDKを使ったアプリケーションは先読みに対応していないため、 指定したBフレーム数ぶんだけ出力にズレが生じる。
すべてのadvanced profileで有効。
REG_DWORD
0〜16:Bフレーム数
■Perceptual Option
映像中の重要な部分と重要でない部分を決めて、 重要な部分での品質を重視する。
すべてのadvanced profileで有効。
REG_DWORD
0:無効
1:有効
■Video Type
インターレースの検出方法を指定する。
32ビットのWVC1専用
REG_DWORD
0:標準
1:すべてインターレースフレームとみなす
2:すべてインターレース映像のフィールドとみなす
3:1か2かを自動検出する
4:1か2かプログレッシブかを自動検出する
次世代DVDに採用されているVC-1コーデックには、
・シンプルプロファイル
・メインプロファイル
・アドバンスドプロファイル
の3つのモードがある。 Windows Media Video 9は、シンプルプロファイルとメインプロファイルに対応している。 Windows Media Video 9 Advanced Profileは、アドバンスドプロファイルに対応している。 WVC1はフル対応している。(注:WMVAはフル対応していない。)
このページの感想をお待ちしてます