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