原文:Introduction paper to H.264/MPEG-4 AVC including
the Fidelity Range
Extension. (PDF )
※スウェーデン、 Luleå University of Technology、Dr. Peter Parne氏の
講義ガイダンスの模様。 )
2.1.2. 変換と量子化(Transform and Quantization)
空間軸予測の後で、データを空間的にdecorrelate
す
るための変換が行われる。この変換ではいくつかこの規格固有の特徴がある。
(*decorrelate
は辞書に無いがおそらく削減。この段階では"短く言い換える"もので画質劣化は無いハズ*)
H.264/AVCは、基本的に主要な空間軸変換に整数逆変換ベースを使う最初のビデオ規格だ。理想的な三角関数を使った逆変換
方程
式の定義は、実装ごとに許容誤差が異なる(*原注2)。一般的にエンコードに使われるその先の変換も整数変換だ。整数を使うメリットは、正確な整数逆変換
を使うとMPEG-2やMPEG-4 part 2とは事なりエンコーダとデコーダの間でミスマッチが出ないと言う事だ。
実質的にこの変換は8-bit ビデオデータ入力の為に定義されたもので16-bit
arithmeticだけで簡単に実装できた。それ以前の規格は変換の為に32-bit以上の精度を必要とした。
この変換(少なくとも4x4ブロックサイズはFRExt抜きでも使える)のデザインはシンプルさを旨としていたので、わずかな調
整とビットシフトだけで実装できるものだ。
8x8に加え、4x4変換のサポート。この結果、隣接ブロックとの不一致は低粒度となり、目立ちにくくなる。機能の分離は空間位
置精度の向上をもたらす(いわゆる"リンギング"の減少)。ある種のハードウェア実装では、小さなブロックサイズは特に便利だ。
マクロブロックサイズは16x16のままだが、これは 4x4 か
8x8のブロックに分割され、4x4または8x8ブロック変換マトリクスT4x4かT8x8 がevery block of
pixelsに適用される。式
(*?*) は以下の通
り:
4x4変換は非常に単純だ。8x8変換(FRExtのみ)はやや複雑だが、それでも一般的な8x8 IDCTに比べれば非常に単純と言える。
(*変換係数の?*) 「T」は、フルサンプルブロックサイズを変換の
必要に応じてより小さなブロックに分割する事で、各マクロブロックの輝度(16x16)と彩度(8x8と、FRExtでは8x16または16x16)
サンプル、の中の各ブロックに適用される。
さらに、16x16イントラ予測モードが4x4変換と一緒に使われる場合、マクロブロック中の16個の4x4輝度ブロックのDC係数はさらに選択され、
下記のH4x4マトリクス(T4x4と
H4x4の基本的な類似性に注意)を使った二次ハダマード変換により変換される。全てのマクロブロックタイプの中の輝度サンプルの4x4ブロックDC係数
も、同様に二次ハダマード変換により変換される。4:2:0ビデオでは、これはハダマードマトリクス
H2x2(下記)による2x2彩度DC変換を必要とする。4:4:4ビデオでは、彩度DCは同じ4x4ハダマード変換を使う。これは16x16イントラ
モードで輝度に使うものと同じだ。4:2:2ビデオでは、彩度DC変換は2x4 彩度 DCの二次変換の為に、マトリクス H2x2 と
H4x4を使う。
この変換により生成された係数は、マクロブロックごとに変更可能な量子化制御パラメータを使って量子化される。このパラメータは符号化後の映像が
8bit/サンプルをサポートしている場合、52種類の値を取り得る
(*1) 。もっと大きい映像ビット深度をサポートす
る場合、FRExtはステップの数を増やす。追加ビット1に対して量子化ステップ6段階(*
FRExt expands the
number of steps by 6 for each additional bit of decoded sample
accuracy.*)。
重要なのは、量子化ステップサイズは量子化パラメータの値とリニアには対応していない事だ(全ての過去の規格とは異なる)。量子化ステップサイズは量子
化パラメータが6増えると2倍になる(* vary in such a way that the quantization step size
exactly doubles for every 6 increments of the quantization parameter. *)
(*2)。
デフォルトの関連性は、輝度と彩度に使われる量子化ステップサイズで決まる。そしてエンコーダはこの関連性を、要求されるカラーコンポーネントの忠実度
に見合うように、スライスのレベルで調整できる。FRExt拡張では、エンコーダはCbとCrの忠実度を個別にバランスさせる事ができる。
---------------
(*原注2)
MPEG-4 part 2 と
JPEG2000は整数ウェーブレット変換を含む。しかしJPEG2000はフレーム間予測を持たない画像符号化規格で、MPEG-4では整数変換はテク
スチャ符号化と呼ばれる特殊な部分でしか使えず(一般的なIフレーム符号化に似ているが、ほとんど実装されていない)、ほぼ全ての映像データで使われる主
要な変換は丸め誤差の発生する理想的な8x8IDCTだ。整数変換のコンセプトもH.263 Annex
Wで使われてはいるが実情を追認するパッチに過ぎない。もともとは8x8浮動小数点IDCTだ。
(*1)
qp_constant の範囲は0-51、
qp_min 、
qp_max の範囲は1-51。なお、x264の量子化はフレーム単位。マ
クロブロック単位では無い。
(*2)
"H.264の quantizationパラメータ (QP)は対数尺を用いる。 換算すると概ねH264QP = 12 +
6*log2(MPEGQP)。例えば、MPEGのQP=2 は概ね H.264 の QP=18。"
man mencoder、
qp_constant の記載より。
スポンサーサイト