(57)【要約】　　　（修正有）【課題】データー圧縮の際の量子化丸め誤差の低減。【解決手段】入力データに対してデータ圧縮を行うデータ圧縮装置において、入力データの少なくとも１つのサブセットのデータ値の丸め効果を検出することによって、入力データに適用された前回の圧縮／伸長サイクルにおいて用いられた量子化パラメータの推定値を導き出す量子化パラメータ推定手段と、量子化パラメータ推定手段に応答し、入力データの圧縮に用いられる量子化パラメータを選択するパラメータ選択手段とを備える。【選択図】　図１
2004129202.tif 000002
【特許請求の範囲】
【請求項１】
入力データに対してデータ圧縮を行うデータ圧縮装置において、
上記入力データの少なくとも１つのサブセットのデータ値の丸め効果を検出することによって、上記入力データに適用された前回の圧縮／伸長サイクルにおいて用いられた量子化パラメータの推定値を導き出す量子化パラメータ推定手段と、
上記量子化パラメータ推定手段に応答し、上記入力データの圧縮に用いられる量子化パラメータを選択するパラメータ選択手段とを備えるデータ圧縮装置。
【請求項２】
上記量子化パラメータ推定手段が所定の程度より小さい量子化効果を検出した場合、上記入力データは以前に圧縮／伸長サイクルを経験したことがないソースデータとして検出されることを特徴とする請求項１記載のデータ圧縮装置。
【請求項３】
上記入力データがソースデータとして検出されない場合、上記パラメータ選択手段は、現在の量子化パラメータを上記前回の推定値とほぼ等しい上記入力データに割り当てることを特徴とする請求項２記載のデータ圧縮装置。
【請求項４】
上記量子化パラメータ推定手段は、上記入力データの各所定数の最下位ビットに対応する１と０から成る１以上の各特定シーケンスについての１以上の出現頻度を識別することを特徴とする請求項１乃至３のいずれか１項記載のデータ圧縮装置。
【請求項５】
上記量子化パラメータ推定手段は、１以上の上記出現頻度の和をそれぞれの閾値と比較して上記前回の推定値を決定し、上記閾値は、上記出現頻度の別の頻度によって少なくとも部分的に決定されることを特徴とする請求項４記載のデータ圧縮装置。
【請求項６】
上記入力データは１以上の画像を表すことを特徴とする請求項１乃至５のいずれか１項記載のデータ圧縮装置。
【請求項７】
上記前回の推定値は各画像毎に算出されることを特徴とする請求項６記載のデータ圧縮装置。
【請求項８】
上記量子化パラメータ推定手段は、上記入力データの別の特性を検出して上記前回の推定値を決定し、当該別の特性は上記入力データの少なくとも１つの成分における画素値間の差の重み付け和であることを特徴とする請求項６又は７記載のデータ圧縮装置。
【請求項９】
上記量子化パラメータ推定手段は上記前回の推定値を上記画像又はその画像の一部に関するアクティビティの尺度に依存して決定することを特徴とする請求項８記載のデータ圧縮装置。
【請求項１０】
図面を参照して説明したデータ圧縮装置。
【請求項１１】
入力データに対してデータ圧縮を行うデータ圧縮方法において、
上記入力データの少なくとも１つのサブセットのデータ値の丸め効果を検出することによって、上記入力データに適用された前回の圧縮／伸長サイクルにおいて用いられた量子化パラメータの推定値を導き出すステップと、
上記量子化パラメータの推定値に応じ、上記入力データの圧縮に用いられる量子化パラメータを選択するステップとを有するデータ圧縮方法。
【請求項１２】
図面を参照して説明したデータ圧縮方法。
【請求項１３】
請求項１１又は１２記載のデータ圧縮方法を実施するプログラムコードを有するコンピュータソフトウェア。
【請求項１４】
請求項１３記載のコンピュータソフトウェアを提供するデータ提供媒体。
【請求項１５】
上記データ提供媒体は、伝送媒体であることを特徴とする請求項１４記載のデータ提供媒体。
【請求項１６】
上記データ提供媒体は、記憶媒体であることを特徴とする請求項１４記載のデータ提供媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ圧縮に関する。
【０００２】
【従来の技術】
データ圧縮技術は、制限された帯域幅内で動的に変化する通信チャンネルによってサポートされているビットレートでデータ通信を行うために、データ通信分野で広く採用されている。代表的には、画像データは、伝送又は適当な記憶媒体に蓄積する前に圧縮され、画像の再生に先立ち伸長される。
【０００３】
データ圧縮技術は、静止画像の場合は空間的な冗長度を利用し、動画像の場合は空間及び時間の双方の冗長度を利用する。時間的冗長度は、動画像において時系列における連続した画像、特に同一シーンに属する画像が非常に類似している場合に発生する。モーションピクチャーエキスパーツグループ（Ｍｏｔｉｏｎ　ＰｉｃｔｕｒｅＥｘｐｅｒｔｓ　ｇｒｏｕｐ：以下、ＭＰＥＧという。）は、娯楽及び放送の用途におけるビデオ圧縮符号化の国際的標準を規定している。本発明は、低いデータ圧縮率を用いて非常に高いデータレート（１Ｇｂｉｔ／ｓまで）で動作するハイエンドのビデオハードウェアに対するＭＰＥＧ４「スタジオプロファイル」規格の実現に関する（なお、本発明は、これに限定されるものではない）。
【０００４】
離散コサイン変換（Ｄｉｓｃｒｅｅｔ　Ｃｏｓｉｎｅ　Ｔｒａｎｓｆｏｒｍ：以下、ＤＣＴという）の量子化は、ビデオデータの符号化技術で広く用いられている。ＤＣＴの量子化は、データの伝送又は蓄積に先立ち、入力画像データを表すのに必要なデータのワード長を低減する画像圧縮において使用される。ＤＣＴの量子化処理において、画像は、規則的なサイズの画素値のブロックに分割され、殆どの場合、各ブロックは、横８画素、縦８画素（８Ｈ×８Ｖ）で構成される。従来のデータフォーマットにおいて、ビデオデータは、通常、カラー画像における赤、緑、青（ＲＧＢ）成分、あるいは輝度成分Ｙと２つの色差成分Ｃｂ、Ｃｒに対応する３つの成分を有する。全ての３つのＲＧＢ又はＹＣｂＣｒ信号成分に対応する画素ブロックのグループはマクロブロック（ＭＢ）と呼ばれる。
【０００５】
ＤＣＴは、画像の空間領域から空間周波数領域への変換を表し、画素値のブロックを同一次元を有する変換係数のブロックに有効に変換する。ＤＣＴ係数は、画像ブロックの空間周波数成分を表す。各係数は、適当な基底関数に適用される重みとみなすことができ、基底関数の重み付け和が入力画像を完全に表現している。ＤＣＴ係数の各８Ｈ×８Ｖブロックは、ゼロ空間周波数を表す１個の「ＤＣ」成分と６３個の「ＡＣ」成分からなる。ＤＣＴ係数の最大値は、殆どの場合、低い空間周波数のＤＣＴ係数に対応している。画像にＤＣＴを施すだけでは、必ずしも圧縮することはできず、単に画像データを空間領域から空間周波数領域に変換するだけである。圧縮を達成するためには、各ＤＣＴ係数は量子化除数（ｑｕａｎｔｉｓａｔｉｏｎ　ｄｉｖｉｓｏｒ）と呼ばれる正の整数で除算され、商は一番近い整数に切り上げ又は切り捨てすることにより丸められる。量子化除数を大きくすることにより、データをより圧縮することができるが、その代償として量子化が粗くなる。量子化を粗くするほど、再生画像の画質がより劣化する。ＤＣＴ係数の切上げ又は切捨てによる丸めの結果として、量子化によるアーティファクトが再生画像に発生する。圧縮画像の再生の際には、各ＤＣＴ係数は量子化ステップによる、当初の商ではなく、（最も近い整数に丸められた整数である）量子化係数を乗算することにより再生されるが、このことはＤＣＴ係数の当初の精度が確保されないことを意味する。したがって、量子化は「有ひずみ（ｌｏｓｓｙ）」符号化技術である。
【０００６】
画像データ圧縮システムでは、殆どの場合、所定の出力ビットレートを達成する最適の量子化除数を決定するために、一連の試し（ｔｒｉａｌ）圧縮を行っている。試し量子化は、例えば、可能な量子化除数の全範囲に亘って分散した２０個の可能な量子化除数で実行される。ターゲットビットレートの直ぐ上と直ぐ下に位置する予測出力ビットレートを与える２つの隣接した試し量子化除数を見つけ、この２つの値間で更に細かな探索を実行する。典型的には、画像圧縮を実行するために選ばれる量子化除数は、ターゲットビットレートを達成しつつ粗さが最小の量子化を与える量子化除数である。
【０００７】
粗さが最小の量子化除数を選択すると、過去に１回以上の圧縮／伸長サイクルを経験したことがない「ソース（ｓｏｕｒｃｅ）」画像データに対して、再生の際に最良の画質（すなわちノイズが最少の画像）が得られるが、このことは、「非ソース（ｎｏｎ−ｓｏｕｒｃｅ）」画像データに対しては必ずしも成立しないことが判明している。圧縮と伸長が１回行われた画像は第１世代の画像と呼ばれ、過去に２回圧縮／伸長サイクルが行れた画像は第２世代と呼ばれ、以下同様に高い世代となる。
【０００８】
第２世代の再生画像では、殆どの場合、第１世代の再生画像の対応する量子化除数でのノイズと比較して、画像ノイズが量子化除数の全範囲で体系的に高くなる。このことは、量子化の各処理（ｅａｃｈ　ｓｔａｇｅ）で生じるＤＣＴ係数の丸め誤差の問題として理解される。しかしながら、第２世代の量子化除数を第１世代の量子化除数と略等しく選んだ場合、第２世代の再生画像のノイズレベルは、第１世代の再生画像のノイズレベルと略等しくなることが知られている。したがって、非ソース入力画像データに対しては、所要のデータレートを満たし、可能な限り最小の大きさを有する量子化除数は、必ずしも再生画像の最良の画質をもたらさない。代わりに、前の圧縮／伸長サイクルで用いられた量子化除数に略等しい量子化除数により、再生画像の最良の画質が得られる可能性が高い。なお、量子化除数の選択は、特定の通信チャンネルの世代毎に変わる可能性があるターゲットビットレートによって制限される。
【０００９】
【発明が解決しようとする課題】
多世代の画像において可能な限り最良の画質を達成するには、各世代で一貫した量子化パラメータを設定することが重要である。前世代で用いられた量子化パラメータの値は、符号化装置に供給される入力ビットストリーム中には必ずしも与えられない。ＭＰＥＧ４規格で規定されている量子化パラメータの１つにＤＣＴ＿ＰＲＥＣＩＳＩＯＮと呼ばれるものがあり、その値は各画像フレーム毎に設定される。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮは、ＡＣ及びＤＣ双方の離散コサイン変換の量子化係数において用いられ、従来の符号化システムにおいては、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮの割当値は同じ画像フレームにおいて世代による変化を受けることが知られている。このため、量子化除数は多世代間で安定性を欠き、その結果第２世代以降の画像の再生画質が劣化する。更に、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮの値は一連の試し量子化に先立って固定されるので、符号化処理の後半で不適切なＤＣＴ＿ＰＲＥＣＩＳＩＯＮの選択値を動的に変えることはできない。
【００１０】
【課題を解決するための手段】
本発明は、データ圧縮装置を提供する。
入力データに対してデータ圧縮を行うデータ圧縮装置において、入力データの少なくとも１つのサブセットのデータ値の丸め効果を検出することによって、入力データに適用された前回の圧縮／伸長サイクルにおいて用いられた量子化パラメータの推定値を導き出す量子化パラメータ推定手段と、量子化パラメータ推定手段に応答し、入力データの圧縮に用いられる量子化パラメータを選択するパラメータ選択手段とを備える。
【００１１】
本発明によれば、伸長形式（ｕｎｃｏｍｐｒｅｓｓｅｄ　ｆｏｒｍ）で与えられたデータで用いられた前回の量子化パラメータを非常に簡単且つ便利な方法で検出することができる。本発明では、前回の量子化処理の丸め効果（ｒｏｕｎｄｉｎｇ　ｅｆｆｅｃｔｓ）を検出する。その必然的結果として、データが前に圧縮されたことがあるか否かについて検出することができる。
【００１２】
【発明の実施の形態】
図１は、データ圧縮システムの構成を模式的に示す図である。このデータ圧縮システムは、符号化装置（ｅｎｃｏｄｅｒ）１０と、データ処理装置（ｄａｔａ　ｐｒｏｃｅｓｓｉｎｇｍｏｄｕｌｅ）２０と、復号装置（ｄｅｃｏｄｅｒ）３０とを備える。入力の高品位（ｈｉｇｈ　ｄｉｆｉｎｉｔｉｏｎ）ビデオ信号５は、符号化装置１０に供給される。符号化装置１０は、冗長度を除去し、その統計的性質を利用するためにビデオ画像データをモデル化し、入力画像データ５の情報を圧縮フォーマットで表現する出力データシンボルを生成する。符号化装置１０は、圧縮データ信号１５Ａを出力し、この圧縮データ信号１５Ａはデータ処理装置２０に供給され、そこで、通信チャンネルを介して伝送されるか、又は記録媒体に格納される。記録媒体から読み出された、又は通信チャンネルを介して受信された圧縮データ信号１５Ｂは、復号装置３０に供給され、復号装置３０は、圧縮データ信号１５Ｂを復号して高品位の出力画像信号３５を形成する。
【００１３】
図２は、図１のビットレートを低減する符号化装置１０の具体的な構成を示すブロック図である。高品位ビデオのフレームにおける入力ＲＧＢチャンネルに対応するデータ信号Ｄ１、Ｄ２、Ｄ３は、シャッフル部（ｓｈｕｆｆｌｅ　ｕｎｉｔ）１００に供給される。他の具体例として、データは、ＹＣｂＣｒフォーマットで供給することもできる。更に、画像は、プログレッシブフレームモードとインタレースフィールドモードのいずれでも処理することができる。シャッフル部１００は、入力データをマクロブロックユニット（Ｍａｃｒｏ−Ｂｌｏｃｋ　Ｕｎｉｔ：以下、ＭＢＵという）に分割する。この具体例では、１フレームは４０個のＭＢＵからなり、各ＭＢＵは２０４個のＭＢからなる。各入力フレームの画像サンプルは、外部ＳＤＲＡＭ２００に一時的に書き込まれる。このシャッフル書込処理中に、後続の符号化処理で必要とされる２つの量子化除数パラメータＱ＿ＳＴＡＲＴ、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮの値が算出される。画素ブロックが外部ＳＤＲＡＭ２００から、入力画像フレーム内の隣接した画素ブロックがシャッフル順序では隣接した位置で読み出されないように画像データをインタリーブする所定のシャッフル順序に従って、読み出される。
【００１４】
シャッフル処理により、復号装置３０によって再生される画像におけるデータ消失の影響が軽減される。入力ビデオフレームにおいて隣接した画素ブロックは、シャッフルされたビットストリームでは、離れている。短時間のデータ消失により、ビットストリームの連続した一部が損なわれ、幾つかのデータブロックが影響を受けるが、これらのブロックは、シャッフル処理のために再生画像内では連続していない。したがって、データ隠蔽（ｃｏｎｃｅａｌｍｅｎｔ）を適切に用いて、消失したブロックを再構成することができる。シャッフル処理は、可変速再生（ｓｕｔｔｌｅ　ｐｌａｙｂａｃｋ）時の画質を改善することができる。更に、シャッフル処理は、入力ビデオデータをＭＢＵに疑似ランダム的に分配することによって画像フレームの各ＭＢＵに選択された量子化パラメータの変化の度合い（ｖａｒｉａｔｉｏｎ）を低減することができる。
【００１５】
現画像フレームは、外部ＳＤＲＡＭ２００から前フレームをシャッフルされたフォーマットで読み出している間に、外部ＳＤＲＡＭ２００に書き込まれる。シャッフル部１００は、２対の出力信号を生成し、第１の信号対は、信号Ｓ＿ＯＰ＿Ｄ１と信号Ｓ＿ＯＰ＿Ｄ２からなり、第２の信号対は、同じＭＢＵデータを含むが、第１の信号対に対して約１ＭＢＵ遅延された信号Ｓ＿ＯＰ＿ＤＤ１と信号Ｓ＿ＯＰ＿ＤＤ２からなる。この遅延は、Ｑ割当部（Ｑ　ａｌｌｏｃａｔｉｏｎ　ｕｎｉｔ）３００に内蔵されているビット割当器（ｂｉｔ　ａｌｌｏｃａｔｉｏｎ　ｍｏｄｕｌｅ）４００の処理による遅延を補償するためのものである。Ｑ割当部３００は、第１の信号対Ｓ＿ＯＰ＿Ｄ１、Ｓ＿ＯＰ＿Ｄ２を用いて、適切な符号化モードと、ＭＢＵの各ＭＢに対するＱ＿ＳＣＡＬＥパラメータと呼ばれる量子化除数を測定する（ｄｅｔｅｒｍｉｎｅ）。
【００１６】
シャッフル部１００から出力される信号は、Ｑ割当部３００に供給され、このＱ割当部３００は、ビット割当器４００と、ターゲット挿入器５００と、ＤＣＴ変換器６００と、２分探索（ｂｉｎａｒｙ　ｓｅａｒｃｈ　ｍｏｄｕｌｅ）器７００とを備える。シャッフル部１００から出力される第１の信号対Ｓ＿ＯＰ＿Ｄ１、Ｓ＿ＯＰ＿Ｄ２は、ビット割当器４００に入力される。これらの入力信号は、ラスタ走査された１２ビットビデオサンプルの８Ｈ×８Ｖ縦ブロックからなる。
【００１７】
ビット割当器４００は、無ひずみ（ｌｏｓｓｌｅｓｓ）の差分パルス符号変調（ｄｉｆｆｅｒｅｎｔｉａｌ　ｐｕｌｓｅ　ｃｏｄｅ　ｍｏｄｕｌａｔｉｏｎ：以下、ＤＰＣＭという）符号化とＤＣＴ量子化符号化を比較する。
【００１８】
ＤＰＣＭは、画像内の空間的に近い画素は相関が高いことを利用した簡単な画像圧縮技術である。ＤＰＣＭでは、画素値自体は伝送されない。代わりに、符号化装置により、前に送信した画素値に基づいた画素の期待値が予測される。１回のＤＰＣＭ符号化処理（ｓｉｎｇｌｅ　ＤＰＣＭ　ｅｎｃｏｄｉｎｇ　ｓｔａｇｅ）は、ＤＰＣＭリフォーマットと、ＤＰＣＭ変換と、エントロピー符号化計算を含む。
【００１９】
これに対し、ＤＣＴ量子化符号化の処理は、１回のＤＣＴ変換と、一連の量子化除数を用いた複数回の量子化処理を含み、各量子化処理の後にハフマン（Ｈｕｆｆｍａｎ）エントロピー符号化計算が行われる。この具体例では、６個の試し（ｔｒｉａｌ）量子化除数がビット割当器４００により試験される。ハフマン符号化は、既知の無ひずみ圧縮技術であり、出現頻度の高い値は短い符号で、出現頻度の低い値は長い符号で表現される。ＤＣＴ試し符号化処理は、オプションとして、画像領域の「アクティビティ（ａｃｔｉｖｉｔｙ）」に依存した量子化を含む。アクティビティは、画像ブロックの適切に正規化された画素の分散（ｖａｒｉａｎｃｅ）から算出される尺度（ｍｅａｓｕｒｅ）である。高いアクティビティを有する画像ブロックでは、量子化をより粗くしても、見る人には知覚されにくいことが知られているので、各ブロックの量子化ステップを、アクティビティのレベルに応じて適切に調整することができる。アクティビティを考慮することにより、再生画像の知覚的な画質を維持したまま、圧縮率をより高めることができる。
【００２０】
ＤＰＣＭ及びＤＣＴ量子化の試し符号処理により、所要の符号化ビットレートに基づいた所定のフレームのターゲットビット数によって制限されるＭＢのターゲットビット数を計算する。各ＭＢに対して最少の符号化ビットが得られるモード（ＤＣＴかＤＰＣＭ）が選択される。ビット割当器４００は、信号４０５をターゲット挿入器５００に出力する。この信号４０５は、各マクロブロックに対して選択された符号化モードと、２分探索器７００で使用される量子化除数Ｑ＿ＳＣＡＬＥの値Ｑ＿ＢＡＳＥと、各マクロブロックに対するターゲットビット数（ｂｉｔ　ｃｏｕｎｔ　ｔｒａｇｅｔ）とに関する情報を含んでいる。信号４０５に含まれる各マクロブロック毎のＱ＿ＢＡＳＥ値、符号化モード情報及びビットターゲットは、ターゲット挿入器５００によって、対応する遅延された画像データのビットストリームに付加される。ターゲット挿入器５００は、２つの信号５０５Ａ、５０５Ｂを出力し、これらの信号はＤＣＴ変換器６００に入力として供給される。
【００２１】
ＤＣＴ変換器６００で再びＤＣＴ係数を計算するが、今回は画像データの遅延バージョンに基づき計算を行う。ＤＣＴ変換器６００は、データを２分探索器７００に出力する。２分探索器７００は、各ＤＣＴモードのＭＢに対して２回目の（ｓｅｃｏｎｄ　ｓｔａｇｅ）Ｑ割当を実行するとともに、２分探索法を用いて、各マクロブロックに対して適切な量子化除数を測定する。２分探索器７００は、ビット割当器４００で使用された分解能より高い分解能で（使用可能な量子化除数の範囲内で）量子化除数を測定する。実際には、５回の２分探索における開始点を定めるためにＱ＿ＢＡＳＥを用いて、ＤＣＴモードの各マクロブロックに対してより高い分解能の量子化ステップＱ＿ＡＬＬＯＣが選択されるようにする。ＤＰＣＭモードのマクロブロックは、バイパス機能によって２分探索器７００を通過するので、その出力においてデータは変更されてない。
【００２２】
２分探索器７００からの出力は、ＤＣＴモードの各マクロブロックに対する量子化ステップの値Ｑ＿ＡＬＬＯＣを含み、逆戻り探索（ｂａｃｋｓｅａｒｃｈ）器８００に供給される。逆戻り探索器８００は、各ＭＢに対して選択された値Ｑ＿ＡＬＬＯＣが符号化のための「最良」の量子化スケールであることを検査（ｃｈｅｃｋ）する。上述したように、前に１回以上の符号化／復号化サイクルを経験したことがある画像データについては、所定のターゲットビット数（ｔａｒｇｅｔ　ｂｉｔ　ｃｏｕｎｔ）を達成できる最も粗さが小さい量子化が必ずしもそのマクロブロックに対して可能な限り小さい量子化誤差をもたらさない。代わりに、最小の量子化誤差は、前回の符号化／復号化サイクルで使用された量子化除数に略等しい量子化除数を用いることによって達成される可能性が高い。したがって、逆戻り探索器８００は、値Ｑ＿ＡＬＬＯＣから始まり、より粗い量子化となる様々な量子化除数に対する量子化誤差を評価する。逆戻り探索器８００は、可能な限り最も小さい量子化誤差を実際に発生する量子化ステップＱ＿ＦＩＮＡＬを決定する（ｄｅｔｅｒｍｉｎｅ）。試し量子化はＤＣＴモードのマクロブロックに対してのみ行われ、ＤＰＣＭモードのマクロブロックに対してはバイパス機能が適用される。
【００２３】
逆戻り探索器８００から出力される、選択された量子化ステップＱ＿ＦＩＮＡＬと、ＤＣＴ符号化器６００で生成されたＤＣＴブロックは、量子化器９００に供給され、ここで、最終的な量子化が実行される。量子化処理は、以下のようにして行われる。
【００２４】
ＤＣＴモードの符号化では、各８Ｈ×８Ｖブロックの１つのＤＣ係数は、次式に従って量子化される。
【００２５】
Ｑ（ＤＣ）＝ＤＣ／（ＤＣ＿ＱＵＡＮＴ＊ＤＣＴ＿ＳＣＡＬＥＲ）
ここで、ＤＣは量子化前の係数であり、ＤＣ＿ＱＵＡＮＴは、方式（ｓｙｓｔｅｍ）によって設定されている量子化ファクタ（ｑｕａｎｔｉｓａｔｉｏｎ　ｆａｃｔｅｒ）であり、全てのＭＢを量子化するのに用いられる。ＤＣ＿ＱＵＡＮＴは、下記表に示すように、ＤＣ＿ＰＲＥＣＩＳＩＯＮから決定される。
【００２６】
【表１】
2004129202.tif 000003
【００２７】
ＤＣ＿ＰＲＥＣＩＳＩＯＮは、各フレームに対して固定値、好ましくは００に設定されているる。
【００２８】
ＤＣＴ＿ＳＣＡＬＥＲは、量子化除数パラメータＤＣＴ＿ＰＲＥＣＩＳＩＯＮを指数とすることによって決定される量子化ファクタであり、ＤＣＴ＿ＳＣＡＬＥＲ＝２ＤＣＴ＿ＰＲＥＣＩＳＩＯＮである。この具体例では、規格（ｃｏｎｖｅｎｔｉｎ）が用いられ、量子化除数パラメータＤＣＴ＿ＰＲＥＣＩＳＩＯＮは４つの可能な値０、１、２、３を取り、３は最も粗い量子化に対応している。なお、ＭＰＥＧスタジオプロファイル標準規格では、これとは異なり、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝０が最も粗い量子化に対応し、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３が最小粗さの量子化に対応している。
【００２９】
同様に、ブロックの６３個のＡＣ係数は、次式に従って量子化される。
【００３０】
Ｑ（ＡＣ）＝（ＡＣ＊１６）／（Ｑ＿ＭＡＴＲＩＸ＊ＡＣ＿ＱＵＡＮＴＩＳＥ＊ＤＣＴ＿ＳＣＡＬＥＲ）
ここで、ＡＣは量子化前の係数であり、Ｑ＿ＭＡＴＲＩＸは、ＤＣＴブロックの各要素に１つ１つが対応した６４個の重みの配列である。ＡＣ＿ＱＵＡＮＴＩＳＥは、量子化除数Ｑ＿ＳＣＡＬＥとＮＯＲＭ＿ＡＣＴの積である。量子化除数Ｑ＿ＳＣＡＬＥは、Ｑ＿ＳＣＡＬＥ＿ＴＹＰＥによって定まる線形量子化スケール又は非線形量子化スケールに対応したファクタである。各Ｑ＿ＳＣＡＬＥ＿ＴＹＰＥは、Ｑ＿ＳＣＡＬＥ＿ＣＯＤＥ（１）〜Ｑ＿ＳＣＡＬＥ＿ＣＯＤＥ（３１）で示される３１個の可能な値からなる。図３の表は、全３１個のＱ＿ＳＣＡＬＥ＿ＣＯＤＥに対する各Ｑ＿ＳＣＡＬＥ＿ＴＹＰＥに対応した量子化除数Ｑ＿ＳＣＡＬＥの値を示したものである。上記式において、ＮＯＲＭ＿ＡＣＴは、正規化されたアクティビティファクタであり、「アクティビティオン（ａｃｔｉｖｉｔｙ　ｏｎ）」の場合に０．５〜２．０の範囲にあるが、「アクティビティオフ（ａｃｔｉｖｉｔｙ　ｏｆｆ）」の場合は１に等しくなる。
【００３１】
ＡＣ＿ＱＵＡＮＴＩＳＥ＝ＮＯＲＭ＿ＡＣＴ＊Ｑ＿ＳＣＡＬＥとし、除数の一部として組み込まれる前に、最も近い量子化除数Ｑ＿ＳＣＡＬＥ（すなわち、図３の表におけるＱ＿ＳＣＡＬＥ＿ＣＯＤＥに対応するＱ＿ＳＣＡＬＥ）に丸められる。
【００３２】
量子化の結果Ｑ（ＤＣ）、Ｑ（ＡＣ）は、正規無限丸め（ｎｏｒｍａｌ　ｉｎｆｉｎｉｔｙ　ｒｏｕｎｄｉｎｇ）と呼ばれる方法で丸められる。この方法は、０．５より小さい正数を（ゼロに）切り捨て、０．５以上の整数を正の無限大に切り上げ、−０．５より大きな負数をゼロに切り上げ、−０．５以下の負数を負の無限大に切り捨てることにより丸める。
【００３３】
ビット割当器４００、２分探索器７００及び逆戻り探索器８００のそれぞれは、量子化器９００によって実行される量子化処理と同じように、量子化処理を実行する。しかしながら、２分探索器７００及び逆戻り探索器８００では、ファクタＮＯＲＭ＿ＡＣＴは、常に１に設定される。ビット割当器４００によって実行されるビット割当処理の間のみ、ファクタＮＯＲＭ＿ＡＣＴは１以外の値を取る。ビット割当中に生成されるＭＢターゲットは、アクティビティを考慮しているので、後段でこれを考慮する必要はない。
【００３４】
量子化器９００から出力される量子化データは、エントロピー符号器１０００に供給され、ここで、無ひずみデータ圧縮が、エントロピー符号化の標準原理に基づき適用される。この具体例では、ハフマン符号化を使用している。
【００３５】
エントロピー符号器１０００の出力は、シャッフル部１００内のパッキング器１５０に供給される。パッキング器１５０は、外部ＳＤＲＡＭ２００と協働して、エントロピー符号化器１０００によって生成された可変長符号化データを固定長の同期ブロック（ｓｙｎｃ−ｂｌｏｃｋ）にパックする。同期ブロックは、画像再生の際、独立して再生される最小のデータブロックである。
【００３６】
パッキング機能は、ＳＤＲＡＭ２００の読出及び書込アドレスを操作することによって実現される。各ＭＢＵをＳＤＲＡＭ内の固定パッキング領域（ｆｉｘｅｄ　ｐａｃｋｉｎｇ　ｓｐａｃｅ）に割り当て、更にそれを、各ＭＢ用の名目パッキング領域（ｎｏｍｉｎａｌ　ｐａｃｋｉｎｇ　ｓｐａｃｅ）に分割する。個々のワード長から算出される又はエントロピー符号化器１０００から直接パッキング器１５０に供給される各ＭＢの全体の長さも記憶する必要がある。符号化装置１０からの出力は、同期ブロック１のデータ出力ＳＢ１、同期ブロック２のデータ出力ＳＢ２からなる。符号化処理で使用した量子化除数の情報も復号装置３０に送られる。
【００３７】
図４は、図１の復号装置の構成を示すブロック図である。復号装置３０は、符号化処理の逆処理を行うものであり、アンシャッフル部２０１０と、アンパック部２０２０と、外部ＳＤＲＡＭ２１００と、エントロピー復号器２２００と、逆量子化器２３００と、逆ＤＣＴ変換器２４００とを備える。同期ブロックのデータ信号ＳＢ１、ＳＢ２は、記録媒体から読み出され、あるいはデータ伝送ネットワークを介して受信されて、アンパック部２０２０に供給され、アンパック部２０２０は、外部ＳＤＲＡＭ２１００の読出及び書込により、アンパッキング機能を実行する。アンパックデータはエントロピー復号器２２００に供給され、エントロピー復号器２２００は、ハフマン符号化の逆処理を実行して量子化係数を再生し、逆量子化器２３００に供給する。逆量子化器２３００は、符号化装置１０から供給された量子化除数に関する情報を用いて、量子化係数に適切な量子化除数を乗算して元のＤＣＴ係数の近似値を得る。この逆量子化処理は、ＤＣＴ係数の元の精度を回復するものではなく、量子化は「有ひずみ（ｌｏｓｓｙ）」圧縮技術である。逆量子化器２３００の出力は、逆ＤＣＴ変換器２４００に供給され、逆ＤＣＴ変換器２４００は、離散コサイン逆変換を用い、周波数領域のＤＣＴ係数の各ブロックを処理して空間領域の画像ブロック情報を再生する。逆ＤＣＴ変換器２４００の出力は、量子化の結果には情報消失があるため、符号化前の画素ブロックと等しくない。最後に、逆ＤＣＴ変換器２４００の出力はアンシャッフル部２０１０に供給され、ここで、データはアンシャッフルされ、符号化前の画像ブロックの順序が再現される。アンシャッフル部２０１０の出力は、３つの色成分ビデオ信号ＲＧＢからなり、これから画像を再生することができる。
【００３８】
図５は、本発明の具体例におけるパラメータ推定回路を模式的に説明する図である。このパラメータ推定回路は、図２に示す符号化装置のシャッフル部１００内で実現される。パラメータ推定回路は、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ検出部１５０、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ選択部１６０、重み付け部１７０及びＱ＿ＳＴＡＲＴ推定部１８０を備える。
【００３９】
上述したように、すべてのＤＣＴ係数を量子化する際に用いられるＤＣＴ＿ＰＲＥＣＩＳＩＯＮ指数は、４個の値０、１、２、３を取ることができ、フレーム単位で指定される。パラメータＤＣＴ＿ＳＣＡＬＥＲ＝２ＤＣＴ＿ＰＲＥＣＩＳＩＯＮは、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮに対応する量子化除数である。符号化処理の際、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ指数を正確に決定することが重要である。更に、Ｑ＿ＳＴＡＲＴの推定値を与えることが必要である。Ｑ＿ＳＴＡＲＴは、選択されたＤＣＴ＿ＰＲＥＣＩＳＩＯＮにおけるフィールド又はフレームに対する理想のＱ＿ＳＣＡＬＥの推定値であり、ビット割当器４００が実施する最低分解能の試し量子化の参照スケールとして用いられる。
【００４０】
図５に示すパラメータ推定回路は、入力画像データを解析してＤＣＴ＿ＰＲＥＣＩＳＩＯＮ及びＱ＿ＳＴＡＲＴの推定値を算出する。更に、このパラメータ推定回路は、ビデオデータが以前に符号化／復号サイクルを経験したことがない「ソースデータ（ｓｏｕｒｃｅ　ｄａｔａ）」か、あるいは以前に少なくとも１回符号化／復号サイクルを経験したことがある「非ソースデータ（ｎｏｔ　ｓｏｕｒｃｅ　ｄａｔａ）」かを判定する。本発明の具体例において、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮの値はフィールド単位又はフレーム単位で決定される。一方、各マクロブロック毎にあるいはマクロブロックのグループ毎にこのＤＣＴ＿ＰＲＥＣＩＳＩＯＮの値を決定してもよい。
【００４１】
ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ検出部１５０は、入力ビデオデータがソースデータか非ソースデータかを判定し、非ソースデータの場合、前の符号化／復号サイクルで用いられたＤＣＴ＿ＰＲＥＣＩＳＩＯＮ指数を検出する。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮの値は、ＤＣ及びＡＣの両方の係数の量子化に影響を与える。ＤＣ＿ＱＵＡＮＴの値が既知であるので（本具体例では、各フレームについてＤＣ＿ＱＵＡＮＴ＝８になるようにＤＣ＿ＰＲＥＣＩＳＩＯＮを固定値００に設定している。）、ＤＣ丸め効果を解析することによって前世代で用いられたＤＣＴ＿ＰＲＥＣＩＳＩＯＮの値を検出することができる。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ検出部には入力ビデオデータが供給され、この入力データのＤＣ量子化の解析を行う。画像フィールド又はフレームの各ＤＣＴブロックについて、ブロックの６４画素の各画素毎に６つの最下位ビット（ＬＳＢ）値を求めて、各ブロック毎に６ビットの値ＤＣ［５：０］を生成する。特定のＤＣ［５：０］の出現頻度は、以下のアルゴリズムにしたがって構築される。
【００４２】
Ｓ０＝ＤＣ［５：０］の出現回数＝００　００００
Ｓ１＝ＤＣ［５：０］の出現回数＝１０　００００
Ｓ２＝ＤＣ［５：０］の出現回数＝ｘ１　００００
Ｓ３＝ＤＣ［５：０］の出現回数＝ｘｘ　１０００
Ｓ４＝ＤＣ［５：０］の出現回数＝ｘｘ　ｘ１００
ここで、「ｘ」は０か１を表す。事実上、ＤＣ［５：０］のインスタンスの数は、６４で割り切れれば和Ｓ０に対応し、（６４でなく）３２で割り切れれば和Ｓ１に対応し、（３２でなく）１６で割り切れれば和Ｓ２に対応し、（１６でなく）８で割り切れれば和Ｓ３に対応し、（８でなく）４で割り切れればＳ４に対応する。図７は、特定のＤＣ［５：０］値の出現頻度の計算法を模式的に説明している。
【００４３】
この具体例において、５つの和Ｓ０〜Ｓ４は、全てのビデオ成分からの全ＤＣＴブロックを含んでいる。しかしながら、他の具体例として、和Ｓ０〜Ｓ４を各成分（ＲＧＢ又はＹＣｂＣｒ）について別々に計算して、最終的な量子化除数パラメータＤＣＴ＿ＰＲＥＣＩＳＩＯＮの決定を、例えば多数決を用いて合成してもよい。
【００４４】
和Ｓ０〜Ｓ４を一旦算出したら、４つの所定の閾値ｔｈ１〜ｔｈ４を用いて、前世代で使用した量子化除数パラメータＤＣＴ＿ＰＲＥＣＩＳＩＯＮを検出し、予測値ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤを生成する。以下の疑似コードは使用したアルゴリズムを表している。
【００４５】
ｉｆ（Ｓ０＞ｔｈ１＊Ｓ１）　　　　　　　　　　　ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤ＝３
ｅｌｓｅ　ｉｆ（Ｓ０＋Ｓ１＞ｔｈ２＊Ｓ２）　　　　　　　ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤ＝２
ｅｌｓｅ　ｉｆ（Ｓ０＋Ｓ１＋Ｓ２＞ｔｈ３＊Ｓ３）　　　　　ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤ＝１
ｅｌｓｅ　ｉｆ（Ｓ０＋Ｓ１＋Ｓ２＋Ｓ３＞ｔｈ４＊Ｓ４）　　　ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤ＝０
ｅｌｓｅ　　　　　　　　　　　　　　　　ソースデータ
上述のアルゴリズムは、前世代と現世代の両方においてＤＣ＿ＱＵＡＮＴ＝８（ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝００）を想定している。
【００４６】
Ｑ（ＤＣ）＝ＤＣ／ＤＣ＿ＱＵＡＮＴ＊２ＤＣＴ＿ＰＲＥＣ　且つＤＣ＿ＱＵＡＮＴ＝８であるので、ＤＣデータについて除数、例えば８を検出したときは、更なる量子化はなく、上述のアルゴリズムにおいてＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤ＝０であることが導かれる。なお、このアルゴリズムは前世代と現世代の双方でＤＣ＿ＱＵＡＮＴを考慮するように適応化される。
【００４７】
上記アルゴリズムにおいて、和Ｓ０が閾値ｔｈ１と和Ｓ１の積より大きいときは、ＤＣデータの検出された除数は６４＝８＊２３であり、アルゴリズムは、最も粗い量子化除数パラメータＤＣＴ＿ＰＲＥＣＩＳＩＯＮでの量子化に対応したＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤ＝３と設定する。（Ｓ０＋Ｓ１）の値が閾値ｔｈ２と和Ｓ２の積より大きいときは、ＤＣデータの検出された除数は３２＝８＊２２であり、アルゴリズムはＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤ＝２と設定する。（Ｓ０＋Ｓ１＋Ｓ２）の値が閾値ｔｈ３と和Ｓ３の値の積より大きいときは、ＤＣデータの検出された除数は１６＝８＊２であり、アルゴリズムはＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤ＝１と設定する。最後に、（Ｓ０＋Ｓ１＋Ｓ２＋Ｓ３）の値が閾値ｔｈ４と和Ｓ４の値の積より大きいときは、ＤＣデータの検出除数は８であり、アルゴリズムは、粗さが最小の量子化除数パラメータＤＣＴ＿ＰＲＥＣＩＳＩＯＮでの量子化に対応したＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤ＝０と設定する。この特定の具体例において、閾値はｔｈ１＝ｔｈ２＝ｔｈ３＝１６であり、ｔｈ４＝２である。閾値は試験画像シーケンスに対する計算を実行することにより経験的に求められる。このアルゴリズムは、量子化除数パラメータＤＣＴ＿ＰＲＥＣＩＳＩＯＮの前の値を検出するために、画素値に対する丸め効果の重大性を本質的に定量化している。
【００４８】
ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ検出部１５０は、値ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤを出力してＤＣＴ＿ＰＲＥＣＩＳＩＯＮ選択部１６０に入力として供給し、さらに「ソースデータ／非ソースデータ」の判定結果を出力し、この判定情報を重み付け部１７０及びＤＣＴ＿ＰＲＥＣＩＳＩＯＮ選択部１６０に入力として供給する。重み付け部１７０は、Ｑ＿ＳＴＡＲＴ推定部１８０が行う計算のために重み付け因数を供給する。重み付け部１７０が適用する重み付け因数はビデオデータの分類結果が「ソース」か「非ソース」かに依存する。
【００４９】
Ｑ＿ＳＴＡＲＴ推定部１８０は、各フレーム又はフィールド毎にＱＥで表されるＱ＿ＳＣＡＬＥの推定値を算出する。図８は、図５に示したＱ＿ＳＴＡＲＴ推定部の一部を模式的に説明するための図である。図８は、単一のビデオ信号成分「Ｘ」に対して行われる処理を示す。ＲＧＢモード処理では３チャンネル、又ＹＣモード処理では２チャンネルであるそれぞれのチャンネル毎の結果を合成して、各フレーム又はフィールドの値ＱＥを生成する。図８において、単一のビデオ信号成分である入力信号１８１は、直接、及びサンプル遅延部１８２を介して減算器１８６に供給される。減算器１８６は、水平方向に隣接する画素間の差を算出し、算出結果を加算器１９０に供給し、加算器１９０は、入力フレーム／フィールドの信号成分について水平方向方向における画素の差の和ＨＳＵＭを算出する。更に、入力信号１８１は、直接、及びライン遅延部１８４を介して減算器１８８に供給される。減算器１８８は、垂直方向に隣接する画素間の差を算出し、算出結果を加算器１９２に供給し、加算器１９２は、入力フレーム／フィールドの信号成分について垂直方向の画素差の和ＶＳＵＭを算出する。
【００５０】
マクロブロックの境界を跨ぐ水平方向と垂直方向の画素の差は、ＨＳＵＭとＶＳＵＭから除外される。データはマクロブロック単位で量子化されているので、マクロブロックが異なれば、殆どの場合それぞれの量子化パラメータも異なる。したがって、マクロブロックの境界を跨ぐ画素の差は、どの程度簡単にデータを圧縮できるかを推定する際に大きな問題とはならない。マクロブロックの境界を跨ぐ画素の差を除外することによって、推定値ＱＥの精度を高めることができる。さらに、ＤＣＴブロックの境界を跨ぐ画素の差についてもＨＳＵＭとＶＳＵＭから除外する。ＤＣＴはＤＣＴブロック単位で行われるので、２個のＤＣＴブロック間の差が符号化されることは決してない。加算器１９０の出力ＨＳＵＭは乗算器１９４に供給され、ここで水平方向の重み付け因数ＷＨで乗算される。加算器１９２の出力ＶＳＵＭは乗算器１９６に供給され、ここで垂直方向の重み付け因数ＷＨで乗算される。
【００５１】
重み付け因数ＷＨ及びＷＶは、重み付け部１７０によってＱ＿ＳＴＡＲＴ推定部に供給された因数である。本発明の具体例において、ＷＨとＷＶの各値は、「ソースデータ」か「非ソースデータ」かによって異なる。代わりに、ＷＨとＷＶを「ソースデータ」及び「非ソースデータ」について同じ値に設定してもよく、算出値ＱＥについては、画像データがソースデータか否かに依存するスケーリング因数でスケーリングする。
【００５２】
重み付け因数ＷＨ及びＷＶは、トレーニング用画像データについて試験を実施することによって選択され、その間、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ選択部１６０によって算出されたスケーリングされたＱＥ値であるＱ＿ＳＴＡＲＴの値は、画像を所要のビットレートに圧縮するのに要するフラット量子化である「理想のＱ」と比較される。ＷＨとＷＶは、Ｑ＿ＳＴＡＲＴと理想のＱとの差が減るように選択される。各ビデオ信号成分毎に異なる値の重み付け因数（ＷＨ、ＷＶ）を用いる。
【００５３】
図８の回路に戻り、加算器１９８は、各ビデオ成分Ｘの値ＲＸを次式により算出する。
ＲＸ＝ＷＨ×ＨＳＵＭ＋ＷＶ×ＶＳＵＭ
ここで、Ｘは信号成分Ｒ、Ｇ、Ｂ、Ｙ、Ｃのいずれか１つである。各フィールド／フレームの量子化除数の推定値ＱＥは、ＲＧＢモードの処理では和ＱＥ＝ＲＲ＋ＲＧ＋ＲＢで与えられ、ＹＣモードの処理では和ＱＥ＝ＲＹ＋ＲＣで与えられる。理想のＱとＱＥ間の差異を用いてＱ＿ＳＴＡＲＴの推定誤差を求める。
【００５４】
図５に示すＱ＿ＳＴＡＲＴ推定部１８０は、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ選択回路１６０に、ＱＥを指定する信号を各フレーム又はフィールド毎に供給する。ＱＥは、最小粗さの量子化に対応するＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝０のときに適切であるＱ＿ＳＣＡＬＥの有効な推定値である。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ選択回路１６０は、ＱＥに基づき、各フィールド又はフレーム毎に値Ｑ＿ＳＴＡＲＴを決定する。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ指数の値は、下記の表２に示すＱＥの数値に応じて各フィールド／フレーム毎に推定する。上述したように、ＡＣ係数の量子化Ｑ（ＡＣ）は、因数の積Ｑ＿ＳＣＡＬＥ＊ＮＯＲＭ＿ＡＣＴ＊ＤＣＴ＿ＳＣＡＬＥＲ（ここで、ＤＣＴ＿ＳＣＡＬＥＲ＝２ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ）による除算を含む。したがって「アクティビティオフ」（ＮＯＲＭ＿ＡＣＴ＝１）の場合、Ｑ＿ＳＣＡＬＥの推定値Ｑ＿ＳＴＡＲＴは、ＱＥ／ＤＣＴ＿ＳＣＡＬＥＲで与えられる。
【００５５】
表３は「アクティビティオン」の場合のＱＥとＱ＿ＳＴＡＲＴ間の対応関係を示したものである。この場合、因数ＮＯＲＭ＿ＡＣＴは０．５〜２の範囲にあるので、Ｑ＿ＳＴＡＲＴの許容範囲外でＱ＿ＳＴＡＲＴの値が選択されないように考慮しなければならない。
【００５６】
【表２】
2004129202.tif 000004
【００５７】
【表３】
2004129202.tif 000005
【００５８】
上述したように、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝０は最小粗さの量子化に対応し、一方、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３は最大粗さの量子化に対応する。表２及び表３の第２欄に示すＱ＿ＳＣＡＬＥ＿ＴＹＰＥは、３１個の使用可能なＱ＿ＳＣＡＬＥ＿ＣＯＤＥＳに関する値が線形シーケンスであるか、あるいは非線形シーケンスであるかを指定する。非線形シーケンスの量子化除数は、線形シーケンスの量子化除数より大きな値に拡大する。
【００５９】
表２及び表３のＤＣＴ＿ＰＲＥＣＩＳＩＯＮの各値に対応するＱＥの適切な範囲を決定するときの推論について以下詳細に説明する。
【００６０】
先ず、「アクティビティオフ」のモードに対応する表２について検討する。図３に示す表の線形Ｑ＿ＳＣＡＬＥ＿ＴＹＰＥを参照すると、利用可能なＱ＿ＳＣＡＬＥの最大値は６２であることが分かる。
【００６１】
ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝０のとき、Ｑ＿ＳＴＡＲＴの推定誤差は±２４である。したがって、このあり得る誤差を許容するために、Ｑ＿ＳＴＡＲＴ≦３８（＝６２−２４）でなければＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝０は選択されない。すなわち、もしＱ＿ＳＴＡＲＴの誤差が実際に−２４で、実際に必要なＱ＿ＳＣＡＬＥが６２だとすると、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ（０）を選択することによってこの条件がますます成立することになる。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝０のとき、Ｑ＿ＳＴＡＲＴ＝ＱＥであるので、もしＱＥ≦３８ならば値ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝０が選択される。
【００６２】
ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝１のとき、Ｑ＿ＳＴＡＲＴの推定誤差は±１２である。したがって、このあり得る誤差を許容するために、Ｑ＿ＳＴＡＲＴ≦５０（＝６２−１２）でなければＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝１は選択されない。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝１のとき、Ｑ＿ＳＴＡＲＴ＝ＱＥ／２であるので、もしＱＥ≦１００（５０＊２）ならば値ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝１が選択される。
【００６３】
ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝２のとき、Ｑ＿ＳＴＡＲＴの推定誤差は±６である。したがって、このあり得る誤差を許容するために、Ｑ＿ＳＴＡＲＴ≦５６（＝６２−６）でなければＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝２は選択されない。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝２のとき、Ｑ＿ＳＴＡＲＴ＝ＱＥ／４であるので、もしＱＥ≦２２４（５６＊４）ならば値ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝２が選択される。
【００６４】
ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３のとき、Ｑ＿ＳＴＡＲＴの推定誤差は±３である。したがって、このあり得る誤差を許容するために、Ｑ＿ＳＴＡＲＴ≦５８（＝６２−３を許容される直近のＱ＿ＳＣＡＬＥに丸めた）でなければＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３は選択されない。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３のとき、Ｑ＿ＳＴＡＲＴ＝ＱＥ／８であるので、もしＱＥ≦４６４（５８＊８）ならば値ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３が選択される。
【００６５】
その他の場合は、より粗い量子化を許容するために、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３で非線形のＱ＿ＳＣＡＬＥ＿ＴＹＰＥが選択されなければならない。
【００６６】
次に、「アクティビティオン」のモードに対応する表３について説明する。図３に示す表の線形Ｑ＿ＳＣＡＬＥ＿ＴＹＰＥを参照すると、利用可能なＱ＿ＳＣＡＬＥの最大値は６２であることが分かる。「アクティビティオン」の場合、この値は、適用される前にＱ＿ＳＣＡＬＥ＿ＣＯＤＥになるので、実際には積Ｑ＿ＳＣＡＬＥ＊ＮＯＲＭ＿ＡＣＴの最大値になる。
【００６７】
ＮＯＲＭ＿ＡＣＴは×０．５〜×２の範囲にあり、アクティビティオンのときにはこれを考慮しなければならない。したがって、ＮＯＲＭ＿ＡＣＴのあり得る×２効果を許容するために、Ｑ＿ＳＣＡＬＥの最大値を（図３より、Ｑ＿ＳＣＡＬＥの値３１は許容されない）３０とみなす。
【００６８】
ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝０のとき、Ｑ＿ＳＴＡＲＴの推定誤差は±２４である。したがって、この可能な誤差を許容するために、Ｑ＿ＳＴＡＲＴ≦６（＝３０−２４）でなければＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝０が選択されるべきではない。しかしながら、６は、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝０のときに、許容されるＱ＿ＳＣＡＬＥの最小値８より小さい。したがって、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝０は、アクティビティオンでは選択されない。
【００６９】
ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝１のとき、Ｑ＿ＳＴＡＲＴの推定誤差は±１２である。したがって、この可能な誤差を許容するために、Ｑ＿ＳＴＡＲＴ≦１８（＝３０−１２）でなければＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝１が選択されるべきではない。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝１のとき、Ｑ＿ＳＴＡＲＴ＝ＱＥ／２であるので、もしＱＥ≦３６（１８＊２）ならば値ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝１が選択される。
【００７０】
ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝２のとき、Ｑ＿ＳＴＡＲＴの推定誤差は±６である。したがって、この可能な誤差を許容するために、Ｑ＿ＳＴＡＲＴ≦２４（＝３０−６）でなければＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝２が選択されるべきではない。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝２のとき、Ｑ＿ＳＴＡＲＴ＝ＱＥ／４であるので、もしＱＥ≦９６（２４＊４）ならば値ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝２が選択される。
【００７１】
ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３のとき、Ｑ＿ＳＴＡＲＴの推定誤差は±３である。したがって、この可能な誤差を許容するために、Ｑ＿ＳＴＡＲＴ≦２６（＝３０−３を許容される直近のＱ＿ＳＣＡＬＥに丸めた）でなければＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３が選択されるべきではない。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３のとき、Ｑ＿ＳＴＡＲＴ＝ＱＥ／８であるので、もしＱＥ≦２０８（２６＊８）ならば値ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３が選択される。
【００７２】
その他の場合は、より粗い量子化を許容するために、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝３で非線形のＱ＿ＳＣＡＬＥ＿ＴＹＰＥが選択されなければならない。
【００７３】
「非ソースデータ」に分類される入力画像について、パラメータ推定回路は、前回の符号化／復号サイクルに対応するＤＣＴ＿ＰＲＥＣＩＳＩＯＮの推定値として、２つの別々の推定値を算出する。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮの第１の推定値は、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ検出部１５０が６つの最下位ビットから算出した値ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤに対応する。ＤＣＴ＿ＰＲＥＣＩＳＩＯＮの第２の推定値は、水平方向及び垂直方向の画素差の和ＨＳＵＭ及びＶＳＵＭから算出したパラメータＱＥから求められる。この第２の推定値をＤＣＴ＿ＰＲＥＣ＿ＱＥと呼ぶ。ＤＣＴ＿ＰＲＥＣ＿ＱＥ及びＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤの値は、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮの最適値に対する異なる決定を表している。この２つの推定値が一致しない場合、論理的方法によって最終のＤＣＴ＿ＰＲＥＣＩＳＩＯＮ値を決定する必要がある。
【００７４】
ＤＣＴ＿ＰＲＥＣ＿ＱＥを決定するときに用いられたＱＥの値が表２（アクティビティオフ）又は表３（アクティビティオン）の第１欄に定められたいずれかのＱＥ範囲の境界に「近い」ときは、ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤがＤＣＴ＿ＰＲＥＣ＿ＱＥより高い信頼があると考えられる。ＱＥが境界に近いか否かの判定については、Ｑ＿ＳＣＡＬＥの推定値ＱＥに含まれそうな誤差を考慮する。
【００７５】
ＱＥは、各フィールド／フレーム毎に決定され、２種類の変動の影響を受ける。画像シーケンスにおけるフレーム間で生じるＱＥの変動は「シーケンスジッタ」と呼ばれ、一方、同一画像について世代間で生じるＱＥの変動は「世代ジッタ」と呼ばれる。ジッタが低減されるようにＤＣＴ＿ＰＲＥＣＩＳＩＯＮ値が安定されれば、画質を向上できる。本具体例において、ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤ及びＤＣＴ＿ＰＲＥＣ＿ＱＥから最終的なＤＣＴ＿ＰＲＥＣＩＳＩＯＮを決定するときは、許容度が世代ジッタに与えられる。ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤは考慮に入れているが、前回と今回の符号化処理における所要ビットレートが大幅に異なるような状況では、異なるＤＣＴ＿ＰＲＥＣＩＳＩＯＮを世代間で選択する必要が依然としてある。一般的に、前回の符号化／復号サイクルに対応する所要ビットレートは今回の符号化処理中に利用できない。
【００７６】
ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ及びＱ＿ＳＴＡＲＴの最終的な値は、ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤ及びＤＣＴ＿ＰＲＥＣ＿ＱＥとの比較に基いて非ソース画像について求められる。この比較は、経験的に求めた値である最大のあり得る正のジッタＪ＋ｍａｘと最小のあり得る負のジッタＪ−ｍａｘを考慮しており、これらの値は、本具体例において共に等しい値である５に設定される。
【００７７】
図９は、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ及びＱ＿ＳＴＡＲＴの最終値がどのようにして選択されるかを説明するフローチャートである。先ず、正のジッタの影響について考える。ステップ８０００においてＤＣＴ＿ＰＲＥＣ＿ＱＥ＞ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤであればステップ８１００に進む。ステップ８１００において（ＱＥ−Ｊ＋ｍａｘ）の値が上記表２又は表３の第３欄におけるＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤに対応するＱＥの範囲内に収まるならばステップ８２００に進み、ここでＤＣＴ＿ＰＲＥＣＩＳＩＯＮの最終値をＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤに等しく設定する。次に、ステップ８３００においてＱＥの値をＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤに関する（表２又は表３からの）ＱＥ範囲内の最大のあり得る値に対応するように再割当を行う。この結果、ＱＥの最終値はシフトされて最終のＤＣＴ＿ＰＲＥＣＩＳＩＯＮに対応するＱＥ範囲内に収まる。このシフトは、最初に決定されたＱＥの値に含まれる予測誤差に基づくものである。ステップ８３００においてＱＥの再割当を行った後はステップ８４００に進み、ここでＱ＿ＳＴＡＲＴの値を表２又は表３の第４欄に基づいて再計算し、ＱＥの再割当値に適合させる。
【００７８】
一方、ステップ８１００において（ＱＥ−Ｊ＋ｍａｘ）の値が上記表２又は表３の第３欄におけるＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤに対応するＱＥの範囲外になるならばステップ８５００に進み、ここでＤＣＴ＿ＰＲＥＣＩＳＩＯＮの最終値をＤＣＴ＿ＰＲＥＣ＿ＱＥに等しく設定する。この場合、Ｑ＿ＳＴＡＲＴの値の再割当は行わない。
【００７９】
次に、負のジッタの影響について考える。ステップ８０００においてＤＣＴ＿ＰＲＥＣ＿ＱＥ＜ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤであればステップ８６００に進む。ステップ８６００において（ＱＥ＋Ｊ−ｍａｘ）の値が上記表２又は表３の第３欄におけるＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤに対応するＱＥの範囲内に収まるならばステップ８７００に進み、ここでＤＣＴ＿ＰＲＥＣＩＳＩＯＮの最終値をＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤに等しく設定する。次に、ステップ８７００からステップ８８００に進み、ＱＥの値をＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤに関する（表２又は表３からの）ＱＥ範囲内の最小のあり得る値に対応するように再割当を行う。この結果、ＱＥの最終値はシフトされて最終のＤＣＴ＿ＰＲＥＣＩＳＩＯＮに対応するＱＥ範囲内に収まる。このシフトは最初に決定されたＱＥの値に含まれる予測誤差に基づくものである。ステップ８８００においてＱＥの再割当を行った後はステップ８９００に進み、ここでＱ＿ＳＴＡＲＴの値を表２又は表３の第４欄に基づいて再計算する。
【００８０】
一方、ステップ８６００において（ＱＥ＋Ｊ−ｍａｘ）の値が上記表２又は表３の第３欄におけるＤＣＴ＿ＰＲＥＣＩＳＩＯＮ＝ＤＣＴ＿ＰＲＥＣ＿ＤＥＴＥＣＴＥＤに対応するＱＥの範囲外になるならば、ステップ９０００に進み、ここでＤＣＴ＿ＰＲＥＣＩＳＩＯＮの最終値をＤＣＴ＿ＰＲＥＣ＿ＱＥに等しく設定する。この場合、Ｑ＿ＳＴＡＲＴの値の再割当は行わない。
【００８１】
図５に示すＤＣＴ＿ＰＲＥＣＩＳＩＯＮ選択部１６０は、ＤＣＴ＿ＰＲＥＣＩＳＩＯＮ及びＱ＿ＳＴＡＲＴの最終値を図２に示すビット割当部４００に出力する。非ソースデータのＤＣＴ＿ＰＲＥＣＩＳＩＯＮを検出することによって、符号化装置１０が可能な限り最良の再生画質を与える全体の量子化除数を選択する可能性が増す。
【００８２】
図６は、本発明に係るパラメータ推定回路の第２の具体例を模式的に説明するための図である。図６に示すパラメータ推定回路は、図５に示すパラメータ推定回路と構成及び機能が同じであるＱ＿ＳＴＡＲＴ推定部１８０を備える。本発明におけるこの具体例では、パラメータＱ＿ＳＴＡＲＴの値及びＤＣＴ＿ＰＲＥＣＩＳＩＯＮの最終値の両方を、アクティビティオフモードに対応する表２、あるいはアクティビティオンモードに対応する表３に基づいて、ＱＥの数値から推定する。図６に示すパラメータ推定回路が生成するＱ＿ＳＴＡＲＴ及びＤＣＴ＿ＰＲＥＣＩＳＩＯＮの推定値は「ジッタ」を考慮していないので、図５に示すパラメータ推定回路が生成する推定値の精度が高くなる可能性が大きい。
【図面の簡単な説明】
【図１】データ記録／再生装置又はデータ送信／受信システムと共に使用される、圧縮符号化装置及び対応する復号装置の模式図である。
【図２】図１のビットレート圧縮符号化装置を模式的に説明するための図である。
【図３】図１の符号化装置のビットレート圧縮処理で使用するパラメータの表である。
【図４】図１の復号装置を模式的に示した図である。
【図５】本発明の第１の具体例に基づく、パラメータ推定回路を模式的に説明するための図である。
【図６】本発明の第２の具体例に基づく、パラメータ推定回路を模式的に説明するための図である。
【図７】図５に示すパラメータ推定回路のＤＣＴ＿ＰＲＥＣＩＳＩＯＮ検出部によって行われる出現頻度の計算を模式的に説明するための図である。
【図８】図５に示したＱ＿ＳＴＡＲＴ推定部の一部を模式的に説明するための図である。
【図９】図５に示したパラメータ推定回路によってＤＣＴ＿ＰＲＥＣＩＳＩＯＮの最終値及びＱ＿ＳＴＡＲＴがどのように選択されるかを示すフローチャートである。
【図１】
2004129202.tif 000006
【図２】
2004129202.tif 000007
【図３】
2004129202.tif 000008
【図４】
2004129202.tif 000009
【図５】
2004129202.tif 000010
【図６】
2004129202.tif 000011
【図７】
2004129202.tif 000012
【図８】
2004129202.tif 000013
【図９】
2004129202.tif 000014
【外国語明細書】
2004129202.tif 000015
2004129202.tif 000016
2004129202.tif 000017
2004129202.tif 000018
2004129202.tif 000019
2004129202.tif 000020
2004129202.tif 000021
2004129202.tif 000022
2004129202.tif 000023
2004129202.tif 000024
2004129202.tif 000025
2004129202.tif 000026
2004129202.tif 000027
2004129202.tif 000028
2004129202.tif 000029
2004129202.tif 000030
2004129202.tif 000031
2004129202.tif 000032
2004129202.tif 000033
2004129202.tif 000034
2004129202.tif 000035
2004129202.tif 000036
2004129202.tif 000037
2004129202.tif 000038
2004129202.tif 000039
2004129202.tif 000040
2004129202.tif 000041
2004129202.tif 000042
2004129202.tif 000043
2004129202.tif 000044
2004129202.tif 000045
2004129202.tif 000046
2004129202.tif 000047
2004129202.tif 000048
2004129202.tif 000049
2004129202.tif 000050
2004129202.tif 000051
2004129202.tif 000052
2004129202.tif 000053
2004129202.tif 000054
2004129202.tif 000055
2004129202.tif 000056
2004129202.tif 000057
2004129202.tif 000058
2004129202.tif 000059
2004129202.tif 000060