整数変換
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/09/14 07:40 UTC 版)
H.264と同様に、VC-1では浮動小数点精度の離散コサイン変換(DCT)の代わりに整数変換を採用している。画像特徴に応じて8×8,8×4,4×8,4×4の4種類から変換行列を選択可能であることがVC-1の特徴である。 H.264では整数変換のスケーリング演算と量子化が統合されているのに対して、VC-1の整数変換は単純にDCTの整数近似として定められている。このため、変換行列の近似には、デコーダに影響のない範囲での誤差が許容される。
※この「整数変換」の解説は、「VC-1」の解説の一部です。
「整数変換」を含む「VC-1」の記事については、「VC-1」の概要を参照ください。
整数変換
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/09 07:33 UTC 版)
従来規格のMPEG-1、MPEG-2やH.261では16×16画素、H.263、MPEG-4では8×8画素のブロック(マクロブロック)を単位として、原画像ないしフレーム間予測の予測誤差画像の離散コサイン変換 (DCT) 係数を求め、その係数を量子化している。このとき、コサイン関数を用いるため、実数精度の演算が必要となる。これに対しH.264では、16ビット整数精度で演算が可能な整数変換を採用している。この整数変換は、加減算とビットシフトのみによって演算可能となるように設計されているため、ソフトウェア、ハードウェアいずれの場合でも実装が非常に容易となる。 演算がすべて整数精度で行われることで、実数演算の実装差による「デコーダごとの演算結果の差分」を生じさせることなくエンコードすることが可能となった。これは、エンコード時の局部復号器の結果とすべてのデコーダでの出力結果が全く同一になることを意味している。エンコード時の局部復号器の結果とデコーダの出力結果が異なる場合、エンコーダが作成する再構成画像とデコーダが作成する再構成画像が異なることとなるため、フレームが経過するごとに画像にノイズが蓄積してしまう。これを回避するため従来技術ではそのDCT演算誤差の帳消しのために定期的にイントラマクロブロックを挿入する必要があった。H.264では整数変換を用いており誤差の問題が生じないため、定期的にイントラマクロブロックを挿入する必要がない。 デコーダの実装差による出力結果の違いが生じないことは、デコーダの規格適合性を検証する上でも有利となる。H.264の関連規格であるH.264.1はH.264規格適合性の検証手法を定めるもので、H.264で符号化済の試験用ビットストリームとそのデコード結果の組が多数付属している。開発中のデコーダに試験用ビットストリームを入力し、その出力結果とH.264.1付属のデコード結果が厳密に一致しているかどうかを確かめることで、規格適合性の判断を行うことができる。 当初、H.264で使用可能な整数変換のブロックサイズは4×4画素のみだった。このサイズでは、低解像度の動画の圧縮では比較的好適な画質を示すが、HDTVなどのような高解像度の動画で画質の再現性に弱いという問題点があった。そのため、後に導入されたプロファイル群では、これを克服するために8×8サイズの整数変換が導入されている。これらのプロファイルでは、フレーム内で4×4変換と8×8変換を適応的に切り替えて使用することができる。
※この「整数変換」の解説は、「H.264」の解説の一部です。
「整数変換」を含む「H.264」の記事については、「H.264」の概要を参照ください。
- 整数変換のページへのリンク