以下、図を参照して本技術の実施の形態について説明する。
[画像符号化装置の構成例]
図7は、画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
この画像符号化装置51は、例えば、H.264及びMPEG-4 Part10(Advanced Video Coding)(以下H.264/AVCと記す)方式をベースに、画像を圧縮符号化する。すなわち、画像符号化装置51においては、H.264/AVC方式において規定されている動き補償ブロックモードが用いられる。
図7の例において、画像符号化装置51は、A/D変換部61、画面並べ替えバッファ62、演算部63、直交変換部64、量子化部65、可逆符号化部66、蓄積バッファ67、逆量子化部68、逆直交変換部69、演算部70、デブロックフィルタ71、フレームメモリ72、スイッチ73、イントラ予測部74、動き予測・補償部75、予測動きベクトル生成部76、コードナンバ割当部77、予測画像選択部78、およびレート制御部79により構成されている。
A/D変換部61は、入力された画像をA/D変換し、画面並べ替えバッファ62に出力し、記憶させる。画面並べ替えバッファ62は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)に応じて、符号化のためのフレームの順番に並べ替える。
演算部63は、画面並べ替えバッファ62から読み出された画像から、予測画像選択部78により選択されたイントラ予測部74からの予測画像または動き予測・補償部75からの予測画像を減算し、その差分情報を直交変換部64に出力する。直交変換部64は、演算部63からの差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を出力する。量子化部65は直交変換部64が出力する変換係数を量子化する。
量子化部65の出力となる、量子化された変換係数は、可逆符号化部66に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施され、圧縮される。
可逆符号化部66は、イントラ予測を示す情報をイントラ予測部74から取得し、インター予測モードを示す情報などを動き予測・補償部75から取得する。なお、イントラ予測を示す情報およびインター予測を示す情報は、以下、それぞれ、イントラ予測モード情報およびインター予測モード情報とも称する。
可逆符号化部66は、量子化された変換係数を符号化するとともに、イントラ予測を示す情報、インター予測モードを示す情報などを符号化し、圧縮画像におけるヘッダ情報の一部とする。可逆符号化部66は、符号化したデータを蓄積バッファ67に供給して蓄積させる。
例えば、可逆符号化部66においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
蓄積バッファ67は、可逆符号化部66から供給されたデータを、H.264/AVC方式で符号化された圧縮画像として、例えば、後段の画像復号装置、図示せぬ記録装置や伝送路などに出力する。
また、量子化部65より出力された、量子化された変換係数は、逆量子化部68にも入力され、逆量子化された後、さらに逆直交変換部69において逆直交変換される。逆直交変換された出力は演算部70により予測画像選択部78から供給される予測画像と加算されて、局部的に復号された画像となる。デブロックフィルタ71は、復号された画像のブロック歪を除去した後、フレームメモリ72に供給し、蓄積させる。フレームメモリ72には、デブロックフィルタ71によりデブロックフィルタ処理される前の画像も供給され、蓄積される。
スイッチ73はフレームメモリ72に蓄積された参照画像を動き予測・補償部75またはイントラ予測部74に出力する。
この画像符号化装置51においては、例えば、画面並べ替えバッファ62からのIピクチャ、Bピクチャ、およびPピクチャが、イントラ予測(イントラ処理とも称する)する画像として、イントラ予測部74に供給される。また、画面並べ替えバッファ62から読み出されたBピクチャおよびPピクチャが、インター予測(インター処理とも称する)する画像として、動き予測・補償部75に供給される。
イントラ予測部74は、画面並べ替えバッファ62から読み出されたイントラ予測する画像とフレームメモリ72から供給された参照画像に基づいて、候補となる全てのイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。その際、イントラ予測部74は、候補となる全てのイントラ予測モードに対してコスト関数値を算出し、算出したコスト関数値が最小値を与えるイントラ予測モードを、最適イントラ予測モードとして選択する。
イントラ予測部74は、最適イントラ予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部78に供給する。イントラ予測部74は、予測画像選択部78により最適イントラ予測モードで生成された予測画像が選択された場合、最適イントラ予測モードを示す情報を、可逆符号化部66に供給する。可逆符号化部66は、この情報を符号化し、圧縮画像におけるヘッダ情報の一部とする。
動き予測・補償部75には、画面並べ替えバッファ62から読み出されたインター処理する画像と、スイッチ73を介してフレームメモリ72から参照画像が供給される。動き予測・補償部75は、候補となる全てのインター予測モードの動き探索(予測)を行い、探索した動きベクトルを用いて、参照画像に補償処理を施し、予測画像を生成する。
動き予測・補償部75は、探索した動きベクトルを用いて、候補となる全てのインター予測モードに対してコスト関数値を算出する。その際、動き予測・補償部75は、予測動きベクトル生成部76により生成された複数種類の予測動きベクトル情報とそれに割り当てられたコードナンバを用いて、コスト関数値を算出する。
動き予測・補償部75は、候補となる各インター予測モードの各ブロックにおいて、コスト関数値が最小値を与える予測動きベクトル情報を選択する。さらに、動き予測・補償部75は、各ブロックについて選択した予測動きベクトル情報での候補となるインター予測モードのコスト関数値を比較することにより、最小値を与えるインター予測モードを、最適インター予測モードとして決定する。そして、動き予測・補償部75は、最適インター予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部78に供給する。
動き予測・補償部75は、予測画像選択部78により最適インター予測モードで生成された予測画像が選択された場合、最適インター予測モードを示す情報(インター予測モード情報)を可逆符号化部66に出力する。
このとき、動きベクトル情報と予測動きベクトル情報の差分である差分動きベクトル情報と、その予測動きベクトル情報に対するコードナンバなども可逆符号化部66に出力される。可逆符号化部66は、動き予測・補償部75からの情報をやはり可変長符号化、算術符号化といった可逆符号化処理し、圧縮画像のヘッダ部に挿入する。
予測動きベクトル生成部76には、動き予測・補償部75から、対象となるブロックの周辺ブロックで既に求められている動きベクトル情報が供給される。なお、周辺ブロックとは、空間的だけでなく、時空間的に周辺であるブロック、すなわち、対象フレームの時間的に1つ前のフレームにおいて空間的に周辺であるブロックも含む。
予測動きベクトル生成部76は、供給された周辺の動きベクトル情報を用いて、上述した式(5)、式(9)、および式(10)などにより、複数種類の予測動きベクトル情報を生成する。そして、予測動きベクトル生成部76は、各予測動きベクトル情報と、その予測動きベクトル情報に対して、コードナンバ割当部77により割り当てられているコードナンバとを、動き予測・補償部75に供給する。
コードナンバ割当部77は、図示せぬ操作入力部などを介してユーザが設定することにより、あるいは、アプリケーションの設定に応じて、各予測動きベクトル情報に対するコードナンバを割り当てる。そして、コードナンバ割当部77は、どの予測動きベクトル情報に対してどのコードナンバを割り当てたかという、予測動きベクトル情報とコードナンバの対応関係を示すコードナンバ割当情報を、予測動きベクトル生成部76および可逆符号化部66に供給する。また、コードナンバ割当部77は、予測動きベクトル情報に対してコードナンバの割当の変更可能な可変モードであるか、デフォルトの設定を用いる固定モードであるかを示すフラグ情報を生成し、生成したフラグ情報も可逆符号化部66に供給する。
予測画像選択部78は、イントラ予測部74または動き予測・補償部75より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードから、最適予測モードを決定する。そして、予測画像選択部78は、決定された最適予測モードの予測画像を選択し、演算部63,70に供給する。このとき、予測画像選択部78は、予測画像の選択情報を、イントラ予測部74または動き予測・補償部75に供給する。
レート制御部79は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部65の量子化動作のレートを制御する。
[H.264/AVC方式の説明]
まず、画像符号化装置51においてベースにされているH.264/AVC方式における、従来技術で上述した以外のことについてさらに説明する。
H.264/AVC方式においては、図7で上述したように、可変長符号化として、CAVLCとCABACのどちらかを用いることが可能である。
まず、CAVLC方式について説明する。CAVLCにおいては、直交変換係数の符号化には、周辺ブロックにおける直交変換係数の発生に応じて切り替えられたVLCテーブルが用いられる。その他のシンタクス要素の符号化に関しては、図8に示される指数ゴロム(Exponential Golomb)符号が用いられる。
図8の指数ゴロム符号においては、例えば、コードナンバ(Code Number)0と符号語(Code Words)1が対応しており、コードナンバ1と符号語010が対応しており、コードナンバ2と符号語011が対応している。また、コードナンバ3と符号語00100が対応しており、コードナンバ4と符号語00101が対応しており、コードナンバ5と符号語00110が対応しており、コードナンバ6と符号語00111が対応している。
また、動きベクトルのようなシンタクス要素に関しては、負の値が生じる可能性がある。したがって、負の値が生じる可能性があるシンタクス要素の場合、図9に示される対応関係に基づいて、符号なしのコードナンバに置き換えられた後に、その符号化に、図8の指数ゴロム符号が用いられる。
図9には、コードナンバと、シンタクス要素vの対応関係が示されている。すなわち、この対応関係に基づくことにより、例えば、シンタクス要素v=0が、コードナンバ0に置き換えられ、シンタクス要素v=1が、コードナンバ1に置き換えられ、シンタクス要素v=-1が、コードナンバ2に置き換えられる。また、シンタクス要素v=2が、コードナンバ3に置き換えられ、シンタクス要素v=-2が、コードナンバ4に置き換えられ、シンタクス要素v=3が、コードナンバ5に置き換えられる。
次に、CAVLCによる直交変換係数の符号化処理について説明する。
第1に、1次元化された直交変換係数が、高域から低域に向かってスキャンされる。第2に、この結果得られるNumCoef(0でない係数の個数)と、T1s(高域から低域にスキャンしたときの、±1の係数の個数、最大でも3)の符号化が行われる。その際、周辺部録におけるNumCoefに応じて、VLCテーブルが切り替えられる。
第3に、Level(DCT係数値)の符号化が行われる。例えば、T1sに関しては、正/負のみが符号化される。その他の係数に関しては、コードナンバ(Code Number)が割り当てられて符号化される。このとき、イントラ/インター、量子化パラメータQP、および、最後に符号化したLevelに応じてVLCテーブルが切り替えられる。
第4に、Runの符号化が行われる。このとき、TotalZeroの符号化において、NumCoefに応じてVLCテーブルの切り替えが行われる。また、Run_before(非0係数の前に続く0の数)の符号化が逐次行われる。この符号化においては、ZerosLeft(残りの非0係数の数)に応じてVLCテーブルの切り替えが行われる。そして、ZerosLeft=0で、符号化処理は終了となる。
次に、CABAC方式について説明する。
図10は、CABAC 符号化を行う可逆符号化部の構成例を表している。図10の例において、可逆符号化部は、コンテクストモデル化部81、2値化部82、並びに、確率推定部83aおよび符号化エンジン83bからなる適応2値算術符号化部83により構成されている。
コンテクストモデル化部81は、圧縮画像における任意のシンタクス要素に関し、まず、過去の履歴に応じて、シンタクス要素のシンボル(記号)を適切なコンテクストモデルに変換する。CABAC 符号化においては、異なるシンタクス要素は、異なるコンテクストにより符号化がなされる。また、同じシンタクス要素であっても、周辺ブロックまたはマクロブロックにおける符号化情報に応じて異なるコンテクストにより符号化がなされる。
例えば、図11を参照して、フラグmb_skip_flagを例にとって説明するが、他のシンタクス要素に対する処理についても同様である。
図11の例において、これから符号化される対象マクロブロックCと、既に符号化済みのブロックであり、対象マクロブロックCに隣接する隣接マクロブロックAおよびBが示されている。それぞれのマクロブロックX(X=A,B,C)に対して、フラグmb_skip_flagが定義されており、次の式(11)であるとする。
すなわち、マクロブロックXが、参照フレームの空間的に対応する位置の画素をそのまま用いるスキップトマクロブロックである場合、f(X)は1とされ、そうでない場合、0とされる。
このとき、対象マクロブロックCに対するコンテクストContext(C)は、次の式(12)のように、左の隣接マクロブロックAのf(A)と上の隣接マクロブロックBのf(B)の和として算出される。
Context(C) = f(A) + f(B) ・・・(12)
すなわち、対象マクロブロックCに対するコンテクストContext(C)は、隣接マクロブロックA,Bのフラグmb_skip_flagに応じて、0,1,2のいずれかの値をとることになる。つまり、対象マクロブロックCに対するフラグmb_skip_flagは、0,1,2のいずれかの異なる符号化エンジン83bが用いられて符号化されることになる。
2値化部82は、例えば、イントラ予測モードのように、シンタクス上、非2値化データである要素のシンボルを、図12に示されるテーブルに基づいて変換する。
図12のテーブルにおいては、コードシンボルが0の場合、0に2値化され、コードシンボルが1の場合、10に2値化され、コードシンボルが2の場合、110に2値化されることが示されている。また、コードシンボルが3の場合、1110に2値化され、コードシンボルが4の場合、11110に2値化され、コードシンボルが5の場合、111110に2値化されることが示されている。
以上のような2値化テーブルにより2値化されたシンタクス要素は、後段の適応2値算術符号化部83により符号化される。
図10に戻って、適応2値算術符号化部83においては、2値化されたシンボルに対して、確率推定部83aによって確率推定がなされ、符号化エンジン83bによって確率推定に基づく2値算術符号化が施される。その際、“0”,“1”の確率は、スライス先頭で初期化され、1Binの符号化が行われる毎にその確率テーブルが更新される。すなわち、2値算術符号化処理が行われた後、関連するモデルの更新が行われるため、それぞれのモデルは実際の画像圧縮情報の統計に応じた符号化処理を行うことが可能となる。
以上説明したCAVLC方式およびCABAC方式の場合ともに、より出現頻度の高い予測動きベクトル情報に対して、より小さなコードナンバを割り当てるべきであり、それぞれの予測動きベクトル情報の出現頻度は、シーケンスおよびビットレート毎に異なるはずである。しかしながら、非特許文献1に記載の提案においては、各予測動きベクトル情報に対して割り当てられているコードナンバは固定されたものであった。
[本技術の概要]
そこで、図7の画像符号化装置51においては、ユーザあるいはアプリケーションが、符号化効率または主観画質を最適にするよう、コードナンバ割当部77を介して、各予測動きベクトルに対するコードナンバの割り当てをデフォルトから変えることが可能である。
すなわち、画像符号化装置51においては、候補となる複数の予測動きベクトル情報が生成され、さらに、それぞれの予測動きベクトル情報に対するコスト関数値が生成される。そして、その値を最小にする予測動きベクトル情報と、処理対象ブロックに対する予測動きベクトル情報とし、これを用いて符号化が行われるが、その際、コスト関数値の生成および符号化には、コードナンバ割当部77により各予測動きベクトルに割り当てられたコードナンバが用いられる。
例えば、デフォルトの設定では、コードナンバ=0が、上述した式(5)の空間予測動きベクトル情報(Spatial Predictor)に割り当てられ、コードナンバ=1が、上述した式(10)の時間予測動きベクトル情報(Temporal Predictor)に割り当てられているとする。
一般に、符号化すべきコンテンツが静止画領域を多く含む場合(例えば、テレビジョン会議)など、空間予測動きベクトル情報より、時間予測動きベクトル情報の方が符号化効率または主観画質上好ましい。
しかしながら、特に、低いビットレート(すなわち、高い量子化パラメータQP)の場合、コードナンバ=0に割り当てられた予測動きベクトル情報の方が、予測動きベクトル情報を表現するために必要とされるビットが少ないため、より選ばれやすくなってしまう。
そこで、画像符号化装置51においては、各予測動きベクトルに対するコードナンバの割り当てをデフォルトから変更することが可能である。したがって、このような場合に、例えば、コードナンバ=0を、時間予測動きベクトル情報に割り当て、コードナンバ=1を、空間予測動きベクトル情報に割り当てるように変更する。これにより、符号化効率または主観画質を改善することができる。
[本技術の効果]
次に、図13を参照して、本技術による効果について説明する。図13の例においては、カメラ固定の動画像の参照フレームと、当該フレームが示されている。この動画像においては、楕円形の物体が、画面右方向に向かって速度vで動いているものとする。カメラ固定であるので、楕円形の物体以外の背景は、静止画領域である。
当該フレームにおいては、当該ブロックXと、当該ブロックXの左、上、右上にそれぞれ隣接する隣接ブロックA,B,Cとが示されており、参照フレームにおいては、当該ブロックXの対応ブロック(Co-Located block)Yが示されている。なお、対応ブロックとは、対象フレームとは異なる、符号化済みのフレーム(前または後に位置するフレーム)のブロックであって、対象ブロックに対応する位置のブロックである。
いま、MVKを、ブロックKに対する動きベクトル情報であるとし、デフォルトでは、コードナンバ=0に対して、Median(MVA,MVB,MVC)が割り当てられており、コードナンバ=1に対して、MVYが割り当てられているとする。
この場合、特に、低いビットレートにおいては、コードナンバを符号化するために要するビットが少ないMedian(MVA,MVB,MVC)が選ばれやすい。
しかしながら、図13の例においては、ブロックX、隣接ブロックA、対応ブロックYは、静止画領域上のブロックであり、隣接ブロックB,Cは、楕円形の物体上のブロックである。したがって、隣接ブロックのメディアン予測についてみてみると、次の式(13)となり、明らかに符号化効率がよくない。
Median(MVA,MVB,MVC) = Median(v,v,0) = v ・・・(13)
一方、対応ブロックYについてみてみると、次の式(14)ともなり、MVYに対して、コードナンバ=0を割り当てて、選択されやすくした方が、より高い符号化効率を実現することが可能となる。
MVY = 0 ・・・(14)
なお、本開示においては、例えば、スライス単位で、各予測動きベクトル情報に対するコードナンバの割当が行われる。
すなわち、スライスヘッダに、まず、mv_predictor_definition_flagを符号化する。mv_predictor_definition_flagは、デフォルトのコードナンバを割り当てる固定モードであるか、割当が変更可能な(すなわち、変更された)コードナンバを割り当てる可変モードであるかを示すフラグ情報である。なお、フラグ情報は、変更可能な可変モードまたは固定モードであることを示す情報、すなわち、可変モードであるか固定モードであるかを識別可能な情報であればよい。
mv_predictor_definition_flag =0の場合、デフォルトで定義された各予測動きベクトル情報に対するコードナンバの割当が適用される。mv_predictor_definition_flag =1の場合、コードナンバ割当部77により割当られた各予測動きベクトル情報に対するコードナンバの割当が適用されることになる。したがって、この場合、mv_predictor_definition_flag =1に続いて、スライスヘッダのシンタクス上で、コードナンバ割当部77による各予測動きベクトル情報に対するコードナンバの割当が記述される。
具体的には、mv_predictor_definition_flag =1の場合、スライスヘッダには、図14に示すようなシンタクス要素が挿入されることになる。
図14の例においては、mv_predictor_definition_flag =1の記述の後に、コードナンバ0(code_number_for_predictor_0;)と、コードナンバ1(code_number_for_predictor_1;)にどの予測動きベクトル情報が割り当てられるかを記述するスペースが設けられている。
なお、本開示におけるコードナンバ割当に関するシンタクスへの記述は、図14の例に限らない。シーケンスパラメータセットまたはピクチャパラメータセットにおいて、コードナンバの割当に関するシンタクスを持たせる。そして、スライスヘッダにおいて、mv_predictor_definition_flag =0の場合、直前に存在するシーケンスパラメータセットまたはピクチャパラメータセットにおいて定義された割当があれば、それを用いるようにしてもよい。もちろん、シーケンスパラメータセットまたはピクチャパラメータセットにだけ持たせるようにしてもよい。
以上のように、コードナンバの割当を変更可能にすることにより、例えば、背景などの静止領域を動物体が通り過ぎる場合、より小さなコードナンバを、時間予測動きベクトル情報(Temporal Predictor)に割り当てることができる。これにより、静止領域が動物体の動きに影響を受けて画像劣化するのを回避し、符号化効率および主観画質を向上させることが可能となる。
したがって、より高い符号化効率を達成することができる。
なお、上記説明においては、具体的な例として、例えば、背景などの静止領域を動物体が通り過ぎる場合の割当の例を説明したが、その例に限らず、例えば、出現頻度(割合)が多い予測動きベクトル情報に対して、より小さなコードナンバを割り当てることによっても、符号化効率および主観画質を向上させることができる。
また、符号化効率または主観画質がよくなるように、予測動きベクトル情報に対するコードナンバの割当を、ユーザやアプリケーションが設定することも可能である。
以下、さらに具体的に説明していく。
[動き予測・補償部の構成例]
図15は、動き予測・補償部75の詳細な構成例を示すブロック図である。なお、図15においては、図7のスイッチ73が省略されている。
図15の例において、動き予測・補償部75は、動き探索部91、コスト関数算出部92、最適予測動きベクトル選択部93、モード判定部94、動き補償部95、および動きベクトルバッファ96により構成されている。なお、画面並べ替えバッファ62からの入力画像画素値は、動き探索部91への入力しか図示されていないが、実際には、コスト関数値を算出するコスト関数算出部92および動き補償部95にも入力される。
動き探索部91には、画面並べ替えバッファ62からの入力画像画素値と、フレームメモリ72からの参照画像画素値が入力される。動き探索部91は、図2に示されたすべてのインター予測モードの動き探索処理を行い、探索した動きベクトル情報を用いて、参照画像に補償処理を行い、予測画像を生成する。動き探索部91は、各インター予測モードについて探索された動きベクトル情報と、生成した予測画像とをコスト関数算出部92に供給する。
コスト関数算出部92には、画面並べ替えバッファ62からの入力画像画素値、動き探索部91からの各インター予測モードの動きベクトル情報と予測画像、および、予測動きベクトル生成部76からの各予測動きベクトル情報と、それに対してそれぞれ割り付けられたコードナンバが供給される。コスト関数算出部92は、動きベクトル情報と各予測動きベクトル情報を差分することで、差分動きベクトル情報を算出する。
そして、コスト関数算出部92は、差分動きベクトル情報、予測動きベクトル情報に対して割り付けられたコードナンバ、および予測画像など、供給された情報を用いて、各インター予測モードに対する各ブロックのそれぞれで、各予測動きベクトルに対するコスト関数値を算出する。コスト関数算出部92は、各インター予測モードに対する予測画像、差分動きベクトル情報、予測動きベクトル情報、それに対するコードナンバとコスト関数値を、最適予測動きベクトル選択部93に供給する。
最適予測動きベクトル選択部93は、各予測モードに対する各ブロックのそれぞれに対して、コスト関数値に基づき、最適な予測動きベクトル情報を選択する。これにより選択された最適予測動きベクトル情報は、各インター予測モードに対する予測画像、コスト関数値、差分動きベクトル情報、最適予測動きベクトル情報とそれに対して割り付けられたコードナンバとともに、モード判定部94に供給される。
モード判定部94は、各インター予測モードのうち、どのモードを用いるのが最適かを、各インター予測モードに対するコスト関数値を用いて判定し、最も小さいコスト関数値のインター予測モードを、最適予測モードとする。そして、モード判定部94は、最適予測モード、およびそれに関する差分動きベクトル情報、最適予測動きベクトル情報とそれに対して割り付けられたコードナンバとともに、動き補償部95に供給する。
動き補償部95は、差分動きベクトル情報と最適予測動きベクトル情報から、動きベクトルを求め、求めた動きベクトルを用いて、フレームメモリ72からの参照画像に補償を行うことで、最適予測モードの予測画像を生成する。また、動き補償部95には、画面並べ替えバッファ62からの入力画像画素値も供給され、動き補償部95は、供給される情報から、最適予測モードのコスト関数値を再度求め、最適予測モードの予測画像とコスト関数値を、予測画像選択部78に出力する。
予測画像選択部78により最適インターモードの予測画像が選択された場合には、それを示す信号が予測画像選択部78から供給される。これに対応して、動き補償部95は、最適インターモード情報、そのモードの差分動きベクトル情報、および予測動きベクトル情報に対するコードナンバを、可逆符号化部66に供給する。また、このとき、動き補償部95は、差分動きベクトル情報と最適予測動きベクトル情報から求めた動きベクトル情報を、動きベクトルバッファ96に格納する。なお、予測画像選択部78により最適インターモードの予測画像が選択されなかった場合(すなわち、イントラ予測画像が選択された場合)には、動きベクトル情報として、0ベクトルが、動きベクトルバッファ96に格納される。
動きベクトルバッファ96には、最適予測モードの各ブロックの動きベクトル情報が格納されている。格納されている動きベクトル情報は、次のブロックにおける予測動きベクトル情報を生成するために、周辺ブロックの周辺動きベクトル情報として、予測動きベクトル生成部76に供給される。
予測動きベクトル生成部76は、動きベクトルバッファ96から供給される対象ブロックに時空間に隣接するブロックの周辺動きベクトル情報を用いて、非特許文献1に記載のように、候補となる複数の予測動きベクトル情報の生成を行う。ただし、非特許文献1との違いは、各予測動きベクトル情報に対するコードナンバが、コードナンバ割当部77により割り当てられたものであるという点である。
すなわち、予測動きベクトル生成部76においては、当該ブロックに対して、上述した式(5)により空間予測動きベクトル情報(Spatial Predictor)が生成され、上述した式(9)により時間予測動きベクトル情報(Temporal Predictor)が生成される。また、当該ブロックに対して、式(10)により時空間予測動きベクトル(Spatio-Temporal Predictor)が生成される。そして、生成された候補となる各予測動きベクトル情報と、それらに対してそれぞれ割り付けられたコードナンバがコスト関数算出部92に供給される。
また、符号化処理を行うに先立ち、どの予測動きベクトル情報に対してどのコードナンバが割り当てられるのかに関する情報が、例えば、ユーザによる図示せぬ操作入力部の操作に応じて、コードナンバ割当部77に入力される。コードナンバ割当部77は、入力される情報に応じて、予測動きベクトル情報に対してコードナンバの割り当てを設定し、また、コードナンバ割当の可変モードであることを示すフラグ情報を生成する。
コードナンバ割当部77は、コードナンバ割当の情報を、予測動きベクトル生成部76に供給する。また、コードナンバ割当部77は、生成したフラグ情報とコードナンバ割当の情報を、可逆符号化部66に送る。可逆符号化部66では、スライスヘッダにおいて、それらの情報の符号化処理が行われる。
[画像符号化装置の符号化処理の説明]
次に、図16のフローチャートを参照して、図7の画像符号化装置51の符号化処理について説明する。
ステップS11において、A/D変換部61は入力された画像をA/D変換する。ステップS12において、画面並べ替えバッファ62は、A/D変換部61より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS13において、演算部63は、ステップS12で並び替えられた画像と予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部75から、イントラ予測する場合はイントラ予測部74から、それぞれ予測画像選択部78を介して演算部63に供給される。
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS14において、直交変換部64は演算部63から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップS15において、量子化部65は変換係数を量子化する。この量子化に際しては、後述するステップS26の処理で説明されるように、レートが制御される。
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS16において、逆量子化部68は量子化部65により量子化された変換係数を量子化部65の特性に対応する特性で逆量子化する。ステップS17において、逆直交変換部69は逆量子化部68により逆量子化された変換係数を直交変換部64の特性に対応する特性で逆直交変換する。
ステップS18において、演算部70は、予測画像選択部78を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部63への入力に対応する画像)を生成する。ステップS19においてデブロックフィルタ71は、演算部70より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップS20においてフレームメモリ72は、フィルタリングされた画像を記憶する。なお、フレームメモリ72にはデブロックフィルタ71によりフィルタ処理されていない画像も演算部70から供給され、記憶される。
画面並べ替えバッファ62から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ72から読み出され、スイッチ73を介してイントラ予測部74に供給される。
これらの画像に基づいて、ステップS21において、イントラ予測部74は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロックフィルタ71によりデブロックフィルタリングされていない画素が用いられる。
ステップS21におけるイントラ予測処理の詳細は、図17を参照して後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部78に供給される。
画面並べ替えバッファ62から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ72から読み出され、スイッチ73を介して動き予測・補償部75に供給される。これらの画像に基づいて、ステップS22において、動き予測・補償部75は、インター動き予測処理を行う。
ステップS22におけるインター動き予測処理の詳細は、図18を参照して後述する。この処理により、候補となる全てのインター予測モードで動き探索処理が行われ、候補となる全ての予測動きベクトル情報が生成され、全てのインター予測モードの各ブロックにおいて、各予測動きベクトル情報に対してコスト関数が算出され、最適な予測動きベクトル情報が選択される。さらに、すべてのインター予測モードに対してのコスト関数値に基づいて、最適インター予測モードが決定される。そして、最適インター予測モードにより生成された予測画像とそのコスト関数値が予測画像選択部78に供給される。
このとき、例えば、スライス毎に、各予測動きベクトル情報に対してコードナンバが割り当てられ、コードナンバの割り当て情報は、動き予測・補償部75と可逆符号化部66に供給される。したがって、動き予測・補償部75においては、割り当てられたコードナンバが用いられて、コスト関数値などが算出される。また、コードナンバ割当部77においては、さらに、予測動きベクトル情報に対してコードナンバの割当の変更可能な可変モードであるか否かを示すフラグ情報も生成されて、可逆符号化部66に供給される。
ステップS23において、予測画像選択部78は、イントラ予測部74および動き予測・補償部75より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部78は、決定した最適予測モードの予測画像を選択し、演算部63,70に供給する。この予測画像が、上述したように、ステップS13,S18の演算に利用される。
なお、この予測画像の選択情報は、イントラ予測部74または動き予測・補償部75に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部74は、最適イントラ予測モードを示す情報(すなわち、イントラ予測モード情報)を、可逆符号化部66に供給する。
最適インター予測モードの予測画像が選択された場合、動き予測・補償部75は、最適インター予測モードを示す情報と、さらに、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部66に出力する。最適インター予測モードに応じた情報としては、ブロック毎の動きベクトル情報と予測動きベクトル情報との差分動きベクトル情報や、各ブロックの予測動きベクトル情報に対して割り当てられたコードナンバなどの情報などがあげられる。なお、このとき、動き予測・補償部75の動き補償部95は、差分動きベクトル情報と最適予測動きベクトル情報から求めた動きベクトル情報を、動きベクトルバッファ96に格納する。
ステップS24において、可逆符号化部66は量子化部65より出力された量子化された変換係数を符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。このとき、上述したステップS21において可逆符号化部66に入力された、イントラ予測部74からのイントラ予測モード情報、または、ステップS22において、動き予測・補償部75からの最適インター予測モードに応じた情報なども符号化され、ヘッダ情報に付加される。また、コードナンバ割当部77からのフラグ情報と、コードナンバ割当情報もヘッダ情報に付加される。
例えば、インター予測モードを示す情報は、マクロブロック毎に符号化される。差分動きベクトル情報や予測動きベクトル情報に対するコードナンバは、対象となるブロック毎に符号化される。さらに、コードナンバ割当部77からのフラグ情報と、コードナンバ割当情報は、スライス毎に符号化される。
ステップS25において蓄積バッファ67は差分画像を圧縮画像として蓄積する。蓄積バッファ67に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
ステップS26においてレート制御部79は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部65の量子化動作のレートを制御する。
[イントラ予測処理の説明]
次に、図17のフローチャートを参照して、図16のステップS21におけるイントラ予測処理を説明する。なお、図17の例においては、輝度信号の場合を例として説明する。
イントラ予測部74は、ステップS41において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対してイントラ予測を行う。
輝度信号のイントラ予測モードには、9種類の4×4画素および8×8画素のブロック単位、並びに4種類の16×16画素のマクロブロック単位の予測モードがあり、色差信号のイントラ予測モードには、4種類の8×8画素のブロック単位の予測モードがある。色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。輝度信号の4×4画素および8×8画素のイントラ予測モードについては、4×4画素および8×8画素の輝度信号のブロック毎に1つのイントラ予測モードが定義される。輝度信号の16×16画素のイントラ予測モードと色差信号のイントラ予測モードについては、1つのマクロブロックに対して1つの予測モードが定義される。
具体的には、イントラ予測部74は、処理対象のブロックの画素を、フレームメモリ72から読み出され、スイッチ73を介して供給される復号済みの画像を参照して、イントラ予測する。このイントラ予測処理が、各イントラ予測モードで行われることで、各イントラ予測モードでの予測画像が生成される。なお、参照される復号済みの画素としては、デブロックフィルタ71によりデブロックフィルタリングされていない画素が用いられる。
イントラ予測部74は、ステップS42において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対するコスト関数値を算出する。ここで、コスト関数値を求めるためのコスト関数としては、次のように、H.264/AVC方式において採用されているコスト関数が用いられる。
H.264/AVC方式においては、例えば、JMにおいて定められているHigh Complexity Modeと、Low Complexity Modeの2通りのモード判定方法を選択する方法が用いられている。この方法の場合、どちらも、それぞれの予測モードModeに関するコスト関数値を算出し、これを最小にする予測モードを当該ブロック乃至マクロブロックに対する最適モードとして選択する。
High Complexity Modeにおけるコスト関数値は、以下の式(15)のように求めることができる。
Cost(Mode∈Ω)=D+λ×R ・・・(15)
式(15)において、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合である。また、Dは、当該予測モードModeで符号化した場合の、復号画像と入力画像の差分エネルギーである。さらに、λは、量子化パラメータの関数として与えられるLagrange未定乗数である。また、Rは、直交変換係数を含んだ、当該モードModeで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行なうには、上記パラメータD及びRを算出するため、全ての候補モードModeにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
これに対してLow Complexity Modeにおけるコスト関数値は、以下の式(16)のように求めることができる。
Cost(Mode∈Ω)=D+QP2Quant(QP)×HeaderBit ・・・(16)
となる。式(16)において、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。また、QP2Quant(QP)は、量子化パラメータQPの関数として与えられる。さらに、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モードModeに関して、予測処理を行う必要があるが、復号画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
イントラ予測部74は、ステップS43において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対して、それぞれ最適モードを決定する。すなわち、上述したように、イントラ4×4予測モードおよびイントラ8×8予測モードの場合には、予測モードの種類が9種類あり、イントラ16×16予測モードの場合には、予測モードの種類が4種類ある。したがって、イントラ予測部74は、ステップS42において算出されたコスト関数値に基づいて、それらの中から、最適イントラ4×4予測モード、最適イントラ8×8予測モード、最適イントラ16×16予測モードを決定する。
イントラ予測部74は、ステップS44において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対して決定された各最適モードの中から、ステップS42において算出されたコスト関数値に基づいて、最適イントラ予測モードを選択する。すなわち、4×4画素、8×8画素、および16×16画素に対して決定された各最適モードの中から、コスト関数値が最小値であるモードを、最適イントラ予測モードとして選択する。そして、イントラ予測部74は、最適イントラ予測モードで生成された予測画像とそのコスト関数値とを、予測画像選択部78に供給する。
[インター動き予測処理の説明]
次に、図18のフローチャートを参照して、図16のステップS22のインター動き予測処理について説明する。
動き探索部91は、ステップS51において、上述した図2の16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して動きベクトルと参照画像をそれぞれ決定する。
そして、動き探索部91は、ステップS52において、各インター予測モードについて、決定した動きベクトルに基づいて参照画像に補償処理を行い、予測画像を生成する。動き探索部91は、各インター予測モードについて探索された動きベクトル情報と、生成した予測画像とをコスト関数算出部92に供給する。
ステップS53において、予測動きベクトル生成部76とコスト関数算出部92は、予測動きベクトル決定処理を行う。この予測動きベクトル決定処理の詳細は、図19を参照して後述される。
ステップS53の処理により、複数種類の予測動きベクトル情報が生成される。そして、生成された予測動きベクトル情報とそれに対してそれぞれ割り当てられたコードナンバが用いられて、各インター予測モードにおける各ブロックについて、各予測動きベクトルに対するコスト関数値が算出されて、最適な予測動きベクトル情報が選択される。
これにより選択された最適予測動きベクトル情報は、各インター予測モードに対する予測画像、コスト関数値、差分動きベクトル情報、最適予測動きベクトル情報とそれに対して割り付けられたコードナンバとともに、モード判定部94に供給される。
モード判定部94は、ステップS54において、最適インター予測モードを決定する。すなわち、モード判定部94は、各インター予測モードの全ブロックの最適予測動きベクトルに対するコスト関数値を足し合わせて、候補の全インター予測モードのコスト関数値を比較し、最小のコスト関数値のインター予測モードを、最適インター予測モードとして決定する。最適予測モードは、それに関する差分動きベクトル情報、最適予測動きベクトル情報と、最適予測動きベクトルに対して割り付けられたコードナンバとともに、動き補償部95に供給される。
動き補償部95は、ステップS55において、最適インター予測モードの動きベクトルに基づいて、フレームメモリ72からの参照画像に補償処理を行い、予測画像を生成する。また、動き補償部95は、供給される情報から、最適予測モードのコスト関数値を再度求め、最適予測モードの予測画像とコスト関数値を、予測画像選択部78に出力する。
[予測動きベクトル決定処理の説明]
次に、図19のフローチャートを参照して、図18のステップS53の予測動きベクトル決定処理を説明する。なお、以下のステップS71乃至S74は、例えば、スライス毎に行われる処理であり、ステップS75乃至S77は、ブロック毎に行われる処理である。
ステップS71において、コードナンバ割当部77は、ユーザにより予測動きベクトル情報に対するコードナンバ割当が定義されているか否かを判定する。例えば、図示せぬ操作入力部から、どの予測動きベクトル情報に対してどのコードナンバが割り当てられるのかに関する情報が入力されており、それがデフォルトの情報ではない場合、ステップS71において、ユーザにより予測動きベクトル情報に対するコードナンバ割当が定義されていると判定され、処理は、ステップS72に進む。
コードナンバ割当部77は、ステップS72において、mv_predictor_definition_flag =1とし、そのフラグ情報を、可逆符号化部66に供給する。そして、コードナンバ割当部77は、ステップS73において、入力されているどの予測動きベクトル情報に対してどのコードナンバが割り当てられるのかに関する情報に基づいて、予測動きベクトル情報に対するコードナンバの割り当てを決定する。決定されたコードナンバ割当情報は、可逆符号化部66と、予測動きベクトル生成部76に供給される。
一方、例えば、図示せぬ操作入力部から、どの予測動きベクトル情報に対してどのコードナンバが割り当てられるのかに関する情報が入力されており、それがデフォルトの情報である場合、ステップS71において、ユーザにより予測動きベクトル情報に対するコードナンバ割当が定義されていないと判定され、処理は、ステップS74に進む。
コードナンバ割当部77は、ステップS74において、mv_predictor_definition_flag =0とし、そのフラグ情報を、可逆符号化部66に供給する。そして、この場合、予測動きベクトル生成部76には、デフォルトのコードナンバ割当情報が供給される。
ステップS75において、予測動きベクトル生成部76は、当該ブロックに対して、動きベクトルバッファ96からの時空間における周辺ブロックの周辺動きベクトル情報を用いて、候補となる全ての予測動きベクトル情報を生成する。そして、予測動きベクトル生成部76は、生成した複数の予測動きベクトル情報とともに、それらに対してそれぞれ割り当てられているコードナンバを、コスト関数算出部92に供給する。
ステップS76において、コスト関数算出部92は、供給された情報を用いて、上述した式(15)または式(16)により、各インター予測モードにおいて、各ブロックのそれぞれで、各予測動きベクトルに対するコスト関数値を算出する。コスト関数算出部92は、差分動きベクトル情報、予測動きベクトル情報に対して割り付けられたコードナンバ、および予測画像など、供給された情報を用いて、各インター予測モードに対する各ブロックのそれぞれで、各予測動きベクトル情報に対するコスト関数値を算出する。
ステップS77において、最適予測動きベクトル選択部93は、各予測モードに対する各ブロックのそれぞれに対して、コスト関数値に基づいて、最適な予測動きベクトル情報を選択する。これにより選択された最適予測動きベクトル情報は、各インター予測モードに対する予測画像、コスト関数値、差分動きベクトル情報、最適予測動きベクトル情報とそれに対して割り付けられたコードナンバとともに、モード判定部94に供給される。
以上のように、コードナンバの割当が変更可能になったので、予測動きベクトル情報に対するコードナンバの割当を、例えば、符号化効率および主観画質がよくなるように、変更することができる。
例えば、出現頻度(割合)が多い予測動きベクトル情報に対して、より小さなコードナンバを割り当てるなど行うことができるので、符号化効率および主観画質を向上させることができる。
符号化された圧縮画像は、所定の伝送路を介して伝送され、画像復号装置により復号される。
[画像復号装置の構成例]
図20は、画像処理装置としての画像復号装置の一実施の形態の構成を表している。
画像復号装置101は、蓄積バッファ111、可逆復号部112、逆量子化部113、逆直交変換部114、演算部115、デブロックフィルタ116、画面並べ替えバッファ117、D/A変換部118、フレームメモリ119、スイッチ120、イントラ予測部121、動き予測・補償部122、コードナンバ割当バッファ123、予測動きベクトル生成部124、およびスイッチ125により構成されている。
蓄積バッファ111は伝送されてきた圧縮画像を蓄積する。可逆復号部112は、蓄積バッファ111より供給された、図7の可逆符号化部66により符号化された情報を、可逆符号化部66の符号化方式に対応する方式で復号する。逆量子化部113は可逆復号部112により復号された画像を、図7の量子化部65の量子化方式に対応する方式で逆量子化する。逆直交変換部114は、図7の直交変換部64の直交変換方式に対応する方式で逆量子化部113の出力を逆直交変換する。
逆直交変換された出力は演算部115によりスイッチ125から供給される予測画像と加算されて復号される。デブロックフィルタ116は、復号された画像のブロック歪を除去した後、フレームメモリ119に供給し、蓄積させるとともに、画面並べ替えバッファ117に出力する。
画面並べ替えバッファ117は、画像の並べ替えを行う。すなわち、図7の画面並べ替えバッファ62により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部118は、画面並べ替えバッファ117から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
スイッチ120は、インター処理される画像と参照される画像をフレームメモリ119から読み出し、動き予測・補償部122に出力するとともに、イントラ予測に用いられる画像をフレームメモリ119から読み出し、イントラ予測部121に供給する。
イントラ予測部121には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報が可逆復号部112から供給される。イントラ予測部121は、この情報に基づいて、予測画像を生成し、生成した予測画像を、スイッチ125に出力する。
動き予測・補償部122には、ヘッダ情報を復号して得られた情報のうち、インター予測モード情報、差分動きベクトル情報、予測動きベクトル情報に対するコードナンバ、参照フレーム情報などが可逆復号部112から供給される。インター予測モード情報は、マクロブロック毎に送信されてくる。動きベクトル情報、予測動きベクトル情報に対するコードナンバや参照フレーム情報は、対象ブロック毎に送信されてくる。
動き予測・補償部122は、可逆復号部112から供給される予測動きベクトル情報のコードナンバを、予測動きベクトル生成部124に供給し、それに対応して予測動きベクトル生成部124により生成される予測動きベクトル情報を得る。動き予測・補償部122は、可逆復号部112から供給される差分動きベクトル情報と、予測動きベクトル生成部124からの予測動きベクトル情報を用いて、対象ブロックの動きベクトル情報を生成する。動き予測・補償部122は、生成した動きベクトル情報を用いて、フレームメモリ119からの参照画像に補償処理を行い、可逆復号部112から供給されるインター予測モード情報が示す予測モードで、対象ブロックに対する予測画像の画素値を生成する。
コードナンバ割当バッファ123は、デフォルト(固定モードの場合)の予測動きベクトル情報とコードナンバとの対応関係を示す情報であるコードナンバ割当情報を蓄積する。また、コードナンバ割当バッファ123は、可逆復号部112からスライス毎に予測動きベクトル情報に対してコードナンバの割当の変更可能な可変モードであるか、デフォルトの設定を用いる固定モードであるかを示すフラグ情報を受け取る。このフラグ情報が可変モードを示す場合、コードナンバ割当バッファ123は、フラグ情報とともに、予測動きベクトル情報に対するコードナンバ割当、すなわち、予測動きベクトル情報とコードナンバとの対応付けの情報も受け取る。そして、コードナンバ割当バッファ123は、その可変モードの場合の予測動きベクトル情報とコードナンバとの対応関係を示すコードナンバ割当情報を蓄積し、予測動きベクトル生成部124に供給する。
予測動きベクトル生成部124には、ブロック毎に、動き予測・補償部122から各ブロックの予測動きベクトル情報に対するコードナンバと、時空間的に周辺ブロックの動きベクトル情報が供給される。また、予測動きベクトル生成部124には、コードナンバ割当バッファ123からの、スライス毎に、デフォルト、あるいは、符号化側で設定されたコードナンバ割当が供給される。
予測動きベクトル生成部124は、供給される情報を用いて、上述した式(5)、式(9)、および式(10)のうちの対応する式により、各ブロックの予測動きベクトル情報を生成し、生成した予測動きベクトル情報を、動き予測・補償部122に供給する。
スイッチ125は、動き予測・補償部122またはイントラ予測部121により生成された予測画像を選択し、演算部115に供給する。
なお、図7の動き予測・補償部75および予測動きベクトル生成部76においては、全ての候補モードに対して予測画像の生成、複数の候補予測動きベクトル情報の生成、およびコスト関数値の算出を行い、予測動きベクトル情報の選択およびモード判定を行う必要がある。
これに対して、図20の動き予測・補償部122および予測動きベクトル生成部124においては、圧縮画像のヘッダから当該ブロックに対するモード情報、予測動きベクトル情報に対するコードナンバ、および差分動きベクトル情報を受信して、これを用いた動き補償処理のみが行われる。なお、このとき、スライス毎に送られてくる予測動きベクトル情報に対するコードナンバ割当の可変モードまたは固定モードを示すフラグ情報と、予測動きベクトル情報に対するコードナンバ割当情報が利用されて、予測動きベクトル情報が生成されて、それも、動き補償処理に用いられる。
[動き予測・補償部の構成例]
図21は、動き予測・補償部122の詳細な構成例を示すブロック図である。なお、図17においては、図20のスイッチ120が省略されている。
図21の例においては、動き予測・補償部122は、差分ベクトルバッファ131、ブロックレベルコードナンババッファ132、動きベクトル生成部133、動きベクトルバッファ134、および動き補償部135により構成される。
差分ベクトルバッファ131には、可逆復号部112からブロック毎の差分動きベクトル情報が供給される。差分ベクトルバッファ131は、供給される差分動きベクトル情報を蓄積し、それを、動きベクトル生成部133に供給する。
ブロックレベルコードナンババッファ132には、可逆復号部112から各ブロックに対して、どの予測動きベクトル情報を用いているかを指し示す情報であるコードナンバが供給される。ブロックレベルコードナンババッファ132は、各ブロックの予測動きベクトル情報のコードナンバを蓄積し、予測動きベクトル生成部124に供給する。
動きベクトル生成部133には、差分ベクトルバッファ131からの各ブロックの差分動きベクトル情報、予測動きベクトル生成部124により生成された各ブロックの予測動きベクトル情報が供給される。動きベクトル生成部133は、対象ブロックの差分動きベクトル情報に、対象ブロックの予測動きベクトル情報を加算して、対象ブロックの動きベクトル情報を生成する。動きベクトル生成部133は、生成した動きベクトル情報を、動きベクトルバッファ134および動き補償部135に供給する。
動きベクトルバッファ134は、動きベクトル生成部133からの各ブロックの動きベクトル情報を、次のブロックの予測動きベクトル情報の生成のための周辺動きベクトル情報として格納する。そして、格納された周辺動きベクトル情報は、予測動きベクトル生成部124に供給される。
動き補償部135は、予測モード情報が示す予測モードで、動きベクトル生成部133からの動きベクトル情報を用いて、フレームメモリ119からの参照画像に補償処理を施し、予測画像を生成する。
[画像復号装置の復号処理の説明]
次に、図22のフローチャートを参照して、画像復号装置101が実行する復号処理について説明する。
ステップS131において、蓄積バッファ111は伝送されてきた画像を蓄積する。ステップS132において、可逆復号部112は、蓄積バッファ111から供給される圧縮画像を復号する。すなわち、図7の可逆符号化部66により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
このとき、差分動きベクトル情報、参照フレーム情報、予測動きベクトル情報に対するコードナンバ割当のフラグ情報(mv_predictor_definition_flag)と、あればそれらの対応関係を示すコードナンバ割当情報、および予測モード情報(イントラ予測モード、またはインター予測モードを示す情報)なども復号される。
すなわち、予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部121に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する差分動きベクトル情報および参照フレーム情報は、動き予測・補償部122に供給される。また、予測動きベクトル情報に対するコードナンバ割当のフラグ情報と、あればその割当情報は、スライス毎にコードナンバ割当バッファ123に供給される。
ステップS133において、逆量子化部113は可逆復号部112により復号された変換係数を、図7の量子化部65の特性に対応する特性で逆量子化する。ステップS134において逆直交変換部114は逆量子化部113により逆量子化された変換係数を、図7の直交変換部64の特性に対応する特性で逆直交変換する。これにより図7の直交変換部64の入力(演算部63の出力)に対応する差分情報が復号されたことになる。
ステップS135において、演算部115は、後述するステップS139の処理で選択され、スイッチ125を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップS136においてデブロックフィルタ116は、演算部115より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップS137においてフレームメモリ119は、フィルタリングされた画像を記憶する。
ステップS138において、イントラ予測部121または動き予測・補償部122は、可逆復号部112から供給される予測モード情報に対応して、それぞれ画像の予測処理を行う。
すなわち、可逆復号部112からイントラ予測モード情報が供給された場合、イントラ予測部121は、イントラ予測モードのイントラ予測処理を行う。可逆復号部112からインター予測モード情報が供給された場合、動き予測・補償部122は、インター予測モードの動き予測・補償処理を行う。その際、予測動きベクトル情報に対するコードナンバ割当のフラグ情報に応じたコードナンバ割当情報が用いられて、予測動きベクトル情報が生成され、それと差分動きベクトル情報により、動きベクトル情報が生成される。そして、生成された動きベクトル情報が用いられて、参照画像に対して補償処理が行われることにより、インター予測モードの予測画像が生成される。
ステップS138における予測処理の詳細は、図23を参照して後述するが、この処理により、イントラ予測部121により生成された予測画像、または動き予測・補償部122により生成された予測画像がスイッチ125に供給される。
ステップS139において、スイッチ125は予測画像を選択する。すなわち、イントラ予測部121により生成された予測画像、または動き予測・補償部122により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部115に供給され、上述したように、ステップS135において逆直交変換部114の出力と加算される。
ステップS140において、画面並べ替えバッファ117は並べ替えを行う。すなわち画像符号化装置51の画面並べ替えバッファ62により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS141において、D/A変換部118は、画面並べ替えバッファ117からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
[画像復号装置の予測処理の説明]
次に、図23のフローチャートを参照して、図22のステップS138の予測処理を説明する。
コードナンバ割当バッファ123は、ステップS171において、可逆復号部112からのスライスヘッダにおけるmv_predictor_definition_flagを受信する。そして、コードナンバ割当バッファ123は、ステップS172において、そのmv_predictor_definition_flagが1を示すか否かを判定する。
ステップS172において、mv_predictor_definition_flagが1を示すと判定された場合、予測動きベクトル情報に対するコード割当の可変モードである。したがって、コードナンバ割当バッファ123は、ステップS173において、可逆復号部112からのスライスヘッダにおける予測動きベクトル情報に対するコードナンバ割当情報を受信し、一旦蓄積する。そして、コードナンバ割当バッファ123は、蓄積したコードナンバ割当を、予測動きベクトル生成部124に供給する。
また、ステップS172において、mv_predictor_definition_flagが0を示すと判定された場合、予測動きベクトル情報に対するコード割当の固定モードであるので、ステップS173はスキップされる。この場合、コードナンバ割当バッファ123は、蓄積されているデフォルトのコードナンバ割当情報を、予測動きベクトル生成部124に供給する。
イントラ予測部121は、ステップS174において、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号部112からイントラ予測モード情報がイントラ予測部121に供給されると、イントラ予測部121は、ステップS174において、対象ブロックがイントラ符号化されていると判定し、処理は、ステップS175に進む。
イントラ予測部121は、ステップS175において、イントラ予測モード情報を取得し、ステップS176において、イントラ予測を行う。
すなわち、処理対象の画像がイントラ処理される画像である場合、必要な画像がフレームメモリ119から読み出され、スイッチ120を介してイントラ予測部121に供給される。ステップS176において、イントラ予測部121は、ステップS175で取得したイントラ予測モード情報に従ってイントラ予測し、予測画像を生成する。生成した予測画像は、スイッチ125に出力される。
一方、ステップS174において、イントラ符号化されていないと判定された場合、処理は、ステップS177に進む。
処理対象の画像がインター処理される画像である場合、可逆復号部112からマクロブロック毎のインター予測モード情報、並びに、ブロック毎の参照フレーム情報、差分動きベクトル情報、および予測動きベクトル情報に対するコードナンバが動き予測・補償部122に供給される。
ステップS178において、動き予測・補償部122は、インター予測モード情報、参照フレーム情報、差分動きベクトル情報、予測動きベクトル情報に対するコードナンバを取得する。取得された差分動きベクトル情報は、差分ベクトルバッファ131に蓄積される。予測動きベクトル情報に対するコードナンバは、ブロックレベルコードナンババッファ132に蓄積される。インター予測モード情報、参照フレーム情報は、図21の例では図示されないが、動きベクトル生成部133に供給される。
ステップS178において、動きベクトル生成部133および予測動きベクトル生成部124は、動きベクトル情報の再構築を行う。すなわち、予測動きベクトル生成部124は、コードナンバ割当バッファ123からのコードナンバ割当情報とブロックレベルコードナンババッファ132から各ブロックの予測動きベクトル情報に割り当てられているコードナンバに基づいて、予測動きベクトル情報の種類を求める。そして、予測動きベクトル生成部124は、上述した式(5)、式(9)、および式(19)のうちの対応する式により、動きベクトルバッファ134からの周辺動きベクトル情報を用いて、各ブロックの予測動きベクトル情報を生成する。生成した予測動きベクトル情報は、動きベクトル生成部133に供給される。
動きベクトル生成部133は、差分ベクトルバッファ131からの対象ブロックの差分動きベクトル情報に、予測動きベクトル生成部124からの対象ブロックの予測動きベクトル情報を加算して、対象ブロックの動きベクトル情報を生成する。生成された動きベクトル情報は、インター予測モード情報とともに動き補償部135に供給される。また、動きベクトル情報は、動きベクトルバッファ134にも供給され、蓄積される。
ステップS179において、動き補償部135は、予測モード情報が示す予測モードで、動きベクトル生成部133からの動きベクトル情報を用いて、フレームメモリ119からの参照画像に補償処理を施し、予測画像を生成する。生成された予測画像は、スイッチ125に出力される。
以上のように、画像符号化装置51および画像復号装置101においては、予測動きベクトル情報に対するコードナンバの割り当てが変更可能な可変モードが設けられており、予測動きベクトル情報に対するコードナンバの割り当てを変更することができる。
したがって、ユーザまたはアプリケーションにより、符号化効率や、主観画質がよくなるように、予測動きベクトル情報に対するコードナンバの割当を変えることができる。結果として、符号化効率や、主観画質を向上させることができ、より高い符号化効率を達成することができる。
[画像符号化装置の他の構成例]
図24は、画像処理装置としての画像符号化装置の他の実施の形態の構成を表している。
図24の画像符号化装置151は、A/D変換部61、画面並べ替えバッファ62、演算部63、直交変換部64、量子化部65、蓄積バッファ67、逆量子化部68、逆直交変換部69、演算部70、デブロックフィルタ71、フレームメモリ72、スイッチ73、イントラ予測部74、動き予測・補償部75、予測動きベクトル生成部76、予測画像選択部78、およびレート制御部79を備えている点が、図7の画像符号化装置51と共通している。また、図24の画像符号化装置151は、コードナンバ割当部77および可逆符号化部66が、それぞれ、コードナンバ割当部161および可逆符号化部162に入れ替わった点と、最適コードナンバ割当判定部163が追加された点とが、図7の画像符号化装置51と異なっている。
すなわち、図7の画像符号化装置51においては、予測動きベクトル情報とコードナンバとの対応関係である、各予測動きベクトル情報に対するコードナンバの割当は、ユーザやアプリケーションにより設定されるものであった。これに対して、図24の画像符号化装置151においては、コードナンバ割当部161により、当該ピクチャまたはスライスにおいて可能である、あらゆるコードナンバの割当情報が発生される。そして、あらゆるコードナンバの割当情報を用いた、当該ピクチャまたはスライスに関するすべての符号化情報(圧縮画像)が生成され、それらが、一旦、可逆符号化部162に蓄積される。
これらの符号化情報は、最適コードナンバ割当判定部163にすべて供給される。最適コードナンバ割当判定部163は、各割当に対するコスト関数値を生成し、その値が最も小さくなるコードナンバ割当を、当該ピクチャまたはスライスに対する最適割当として、その情報を、可逆符号化部162に供給する。
可逆符号化部162は、蓄積されたあらゆるコードナンバの割当に関する符号化情報(圧縮画像)のうち、最適割当に関するもののみが、蓄積バッファ67に出力される。
なお、この画像符号化装置151に対応する復号側の装置は、図20の画像復号装置101と基本的に同様の構成となるので、その説明は省略される。
以上のように、予測動きベクトル情報に対するコード割当は、ユーザやアプリケーションにより設定されるのではなく、画像符号化装置において、符号化効率や主観画質を向上させるように、予測動きベクトル情報に対するコード割当の中から最適なコード割当を決めるようにすることも可能である。
なお、上記説明においては、候補の予測動きベクトル情報として、時間予測動きベクトル情報、空間予測動きベクトル情報、および時空間予測動きベクトル情報を用いて説明したが、もちろん、候補として、その他の予測動きベクトル情報を用いることができる。
[予測動きベクトル情報]
以上においては、予測動きベクトル情報の生成方法の例として、非特許文献1に記載の方法を用いるように説明したが、これに限らず、例えば、以下のような方法を適用するようにしてもよい。
上述した非特許文献1に示された方法の場合、候補となる予測動きベクトル情報である候補予測動きベクトル情報の数が増えるほど、演算量処理量は増大する。また、当該GOPにおいて、例えば、Pピクチャのような、参照されるピクチャの画質を向上させることにより、これを参照するBピクチャの画質も向上させることになる。
そこで、動き予測・補償部75が、参照されるピクチャ(例えばPピクチャ等)に対して、より多くの候補動きベクトル情報を用いて動き予測・補償(符号化処理)を行うようにしてもよい。また、動き予想・補償部75が、参照されないピクチャ(例えばBピクチャ等)に対して、より少ない候補動きベクトル情報を用いて動き予測・補償(符号化処理)を行うか、若しくは、非特許文献1に示されたような処理を行う代わりに、AVCと同様の動きベクトル符号化を行うようにしてもよい。
例えば、他のピクチャの処理において参照されるピクチャを符号化する場合、予測動きベクトル生成部76が、候補動きベクトル情報を、他のピクチャの処理において参照されないピクチャを符号化する場合よりも多く生成するようにする。つまり、この場合、最適予測動きベクトル選択部93は、より多くの候補動きベクトル情報の中から最適な予測動きベクトル情報を選択する。
また、他のピクチャの処理において参照されないピクチャを符号化する場合、予測動きベクトル生成部76が、候補動きベクトル情報を、他のピクチャの処理において参照されるピクチャを符号化する場合よりも少なく生成するか、若しくは、AVCと同様に単一の予測動きベクトル情報を生成するようにする。つまり、この場合、最適予測動きベクトル選択部93は、より少ない候補動きベクトル情報の中から最適な予測動きベクトル情報を選択するか、若しくは、生成された単一の予測動きベクトル情報を、最適な予測動きベクトル情報とする。
このようにすることにより、画像符号化装置は、より少ない演算量で、符号化効率を向上させることができる。
この場合も、画像符号化装置は、どの候補予測動きベクトルを用いるかに関する情報を、各スライスヘッダ若しくはピクチャパラメータセットに格納する(すなわち、これらの情報を復号装置側に伝送する)。
[マクロブロック]
また、上記説明においては、マクロブロックの大きさが、16×16画素の場合について説明してきたが、本技術は、拡張されたマクロブロックサイズに対しても適用することが可能である。
図25は、拡張されたマクロブロックサイズの例を示す図である。
図25の上段には、左から、32×32画素、32×16画素、16×32画素、および16×16画素のブロック(パーティション)に分割された32×32画素で構成されるマクロブロックが順に示されている。図25の中段には、左から、16×16画素、16×8画素、8×16画素、および8×8画素のブロックに分割された16×16画素で構成されるブロックが順に示されている。また、図25の下段には、左から、8×8画素、8×4画素、4×8画素、および4×4画素のブロックに分割された8×8画素のブロックが順に示されている。
すなわち、32×32画素のマクロブロックは、図25の上段に示される32×32画素、32×16画素、16×32画素、および16×16画素のブロックでの処理が可能である。
また、上段の右側に示される16×16画素のブロックは、H.264/AVC方式と同様に、中段に示される16×16画素、16×8画素、8×16画素、および8×8画素のブロックでの処理が可能である。
さらに、中段の右側に示される8×8画素のブロックは、H.264/AVC方式と同様に、下段に示される8×8画素、8×4画素、4×8画素、および4×4画素のブロックでの処理が可能である。
このような階層構造を採用することにより、拡張されたマクロブロックサイズにおいては、16×16画素のブロック以下に関してH.264/AVC方式と互換性を保ちながら、そのスーパーセットとして、より大きなブロックが定義されている。
以上のように提案される拡張されたマクロブロックサイズにも、本技術を適用することができる。拡張されたマクロブロックサイズにも、本技術が適用される場合、例えば、通常のマクロブロックと拡張されたマクロブロックとでは、異なる前記予測動きベクトル情報に対するコードナンバが割り当てられる。例えば、通常のマクロブロックは、16×16画素で構成され、拡張されたマクロブロックは、32×32画素で構成される。
以上においては、符号化方式としてH.264/AVC方式をベースに用いるようにしたが、これに限らない。すなわち、本技術は、動き予測・補償を行い、さらに、動きベクトル情報の符号化に、複数の予測動きベクトル情報を用いる、その他の符号化方式/復号方式にも適用することができる。
[コーディングユニット]
ところで、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない。
そこで、現在、AVCより更なる符号化効率の向上を目的として、ITU-T(International Telecommunication Union Telecommunication Standardization Sector)と、ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission)の共同の標準化団体であるJCTVC(Joint Collaboration Team - Video Coding)により、HEVC(High Efficiency Video Coding)と呼ばれる符号化方式の標準化が進められている。
AVCにおいては、図2に示されるように、マクロブロックとサブマクロブロックによる階層構造が規定されているが、HEVCにおいては、図31に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、AVCにおけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図31の例では、LCUの大きさが128であり、最大階層深度が5となる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVCにおいては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
以上のHEVCのように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVCにおけるマクロブロックはLCUに相当すると考えることができる。ただし、CUは図31に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVCのマクロブロックより大きく設定されることが一般的である。
マクロブロックの代わりに、このようなCU、PU、およびTU等を用いる符号化方式にも、本技術を適用することができる。すなわち、予測処理を行う処理単位は任意の領域であってもよい。
また、コードナンバの切り替えの制御は、任意の処理単位で行われるようにしてもよく、シーケンス、ピクチャ、スライスだけでなく、例えばCUやPU等の、予測処理単位の領域毎に行われるようにしてもよい。その場合、処理対象の領域の動きの特徴、より具体的には、処理対象の領域(当該領域)が静止画像により構成される領域(静止領域)であるか、動物体の画像により構成される領域(動領域)であるかに応じて、その領域における予測動きベクトル情報に対するコードナンバの割り当て方が制御される。つまり、この場合、各領域において、その領域が静止領域であるか否かが判別される。
[画像符号化装置]
図32は、その場合の画像符号化装置の主な構成例を示すブロック図である。
図32に示される画像符号化装置700は、図7の画像符号化装置51と基本的に同様の装置であり、画像データを符号化する。なお、画像符号化装置700は、図31を参照して説明したように、プレディクションユニット(PU)毎にインター予測を行うものとする。
図32に示されるように画像符号化装置700は、A/D変換部701、画面並べ替えバッファ702、演算部703、直交変換部704、量子化部705、可逆符号化部706、および蓄積バッファ707を有する。また、画像符号化装置700は、逆量子化部708、逆直交変換部709、演算部710、ループフィルタ711、フレームメモリ712、選択部713、イントラ予測部714、動き予測・補償部715、予測画像選択部716、およびレート制御部717を有する。
画像符号化装置700は、さらに、静止領域判定部721および動きベクトル符号化部722を有する。
A/D変換部701は、入力された画像データをA/D変換し、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ702に供給し、記憶させる。画面並べ替えバッファ702は、記憶した表示の順番のフレームの画像を、GOPに応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部703に供給する。また、画面並べ替えバッファ702は、フレームの順番を並び替えた画像を、イントラ予測部714および動き予測・補償部715にも供給する。
演算部703は、画面並べ替えバッファ702から読み出された画像から、予測画像選択部716を介してイントラ予測部714若しくは動き予測・補償部715から供給される予測画像を減算し、その差分情報を直交変換部704に出力する。
例えば、インター符号化が行われる画像の場合、演算部703は、画面並べ替えバッファ702から読み出された画像から、動き予測・補償部715から供給される予測画像を減算する。
直交変換部704は、演算部703から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。なお、この直交変換の方法は任意である。直交変換部704は、その変換係数を量子化部705に供給する。
量子化部705は、直交変換部704から供給される変換係数を量子化する。量子化部705は、レート制御部717から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。なお、この量子化の方法は任意である。量子化部705は、量子化された変換係数を可逆符号化部706に供給する。
可逆符号化部706は、量子化部705において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部717の制御の下で量子化されているので、この符号量は、レート制御部717が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部706は、イントラ予測のモードを示す情報などをイントラ予測部714から取得し、インター予測のモードを示す情報や動きベクトル情報などを動き予測・補償部715から取得する。さらに、可逆符号化部706は、ループフィルタ711において使用されたフィルタ係数等を取得する。
可逆符号化部706は、これらの各種情報を任意の符号化方式で符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部706は、符号化して得られた符号化データを蓄積バッファ707に供給して蓄積させる。
可逆符号化部706の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ707は、可逆符号化部706から供給された符号化データを、一時的に保持する。蓄積バッファ707は、所定のタイミングにおいて、保持している符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。
また、量子化部705において量子化された変換係数は、逆量子化部708にも供給される。逆量子化部708は、その量子化された変換係数を、量子化部705による量子化に対応する方法で逆量子化する。この逆量子化の方法は、量子化部705による量子化処理に対応する方法であればどのような方法であってもよい。逆量子化部708は、得られた変換係数を、逆直交変換部709に供給する。
逆直交変換部709は、逆量子化部708から供給された変換係数を、直交変換部704による直交変換処理に対応する方法で逆直交変換する。この逆直交変換の方法は、直交変換部704による直交変換処理に対応する方法であればどのようなものであってもよい。逆直交変換された出力(復元された差分情報)は、演算部710に供給される。
演算部710は、逆直交変換部709から供給された逆直交変換結果、すなわち、復元された差分情報に、予測画像選択部716を介してイントラ予測部714若しくは動き予測・補償部715から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。その復号画像は、ループフィルタ711またはフレームメモリ712に供給される。
ループフィルタ711は、デブロックフィルタや適応ループフィルタ等を含み、演算部710から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ711は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ711は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ711が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ711は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部706に供給し、それを符号化させるようにすることもできる。
ループフィルタ711は、フィルタ処理結果(フィルタ処理後の復号画像)をフレームメモリ712に供給する。なお、上述したように、演算部710から出力される復号画像は、ループフィルタ711を介さずにフレームメモリ712に供給することができる。つまり、ループフィルタ711によるフィルタ処理は省略することができる。
フレームメモリ712は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、選択部713に供給する。
選択部713は、フレームメモリ712から供給される参照画像の供給先を選択する。例えば、インター予測の場合、選択部713は、フレームメモリ712から供給される参照画像を動き予測・補償部715に供給する。
イントラ予測部714は、選択部713を介してフレームメモリ712から供給される参照画像である処理対象ピクチャ内の画素値を用いて、基本的にPUを処理単位として予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部714は、予め用意された複数のモード(イントラ予測モード)でこのイントラ予測を行う。イントラ予測部714は、AVC符号化方式において規定されるモードだけでなく、それ以外の任意のモードでこのイントラ予測を行うこともできる。
イントラ予測部714は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ702から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部714は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部716に供給する。
また、上述したように、イントラ予測部714は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部706に供給し、符号化させる。
動き予測・補償部715は、画面並べ替えバッファ702から供給される入力画像と、選択部713を介してフレームメモリ712から供給される参照画像とを用いて、基本的にPUを処理単位として、動き予測(インター予測)を行い、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。動き予測・補償部715は、予め用意された複数のモード(インター予測モード)でこのようなインター予測を行う。動き予測・補償部715は、AVC符号化方式において規定されるモードだけでなく、それ以外の任意のモードでこのインター予測を行うこともできる。
動き予測・補償部715は、候補となる全てのインター予測モードで予測画像を生成し、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部715は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部716に供給する。
また、動き予測・補償部715は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部706に供給し、符号化させる。
予測画像選択部716は、演算部703や演算部710に供給する予測画像の供給元を選択する。例えば、インター符号化の場合、予測画像選択部716は、予測画像の供給元として動き予測・補償部715を選択し、その動き予測・補償部715から供給される予測画像を演算部703や演算部710に供給する。
レート制御部717は、蓄積バッファ707に蓄積された符号化データの符号量に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部705の量子化動作のレートを制御する。
静止領域判定部721は、当該領域が静止領域であるか否かの判別(静止領域判定)を行う。静止領域判定部721は、その静止領域か否かかの判定結果を動きベクトル符号化部722に供給する。
動きベクトル符号化部722は、静止領域判定部721から供給される、静止領域か否かかの判定結果に基づいて、MVコンペティションモードの予測動きベクトル情報に対するコードナンバの割り当てを制御する。
より具体的には、動きベクトル符号化部722は、当該領域の周辺の領域の動き情報を用いて全てのインター予測モードについて全ての予測動きベクトル情報を生成し、生成した各予測動きベクトル情報に対して、静止領域判定結果に基づいた方法でコードナンバを割り当てる。さらに、動きベクトル符号化部722は、各インター予測モードについて、最適な予測動きベクトル情報を決定し、その最適な予測動きベクトル情報と当該領域の動き情報(動きベクトル)との差分(差分動き情報)を生成する。動きベクトル符号化部722は、生成した差分動き情報と予測動きベクトル情報のコードナンバとを動き予測・補償部715に供給する。
[静止領域判定とコードナンバ割当]
まず、静止領域判定部721による静止領域の判定についてより具体的に説明する。
静止領域判定部721による静止領域判定は、例えば図33に示されるように、当該領域が処理される時点で処理済みの(動き情報が算出済みの)参照ピクチャのCo-Located領域に対する動き情報を用いて行われる。図33の例の場合、当該領域は、図33の右側に示される当該ピクチャのPUcurrであり、そのCo-Located領域は、図33の左側に示される参照ピクチャのPUcolである。静止領域判定部721は、このCo-Located領域PUcolの動きベクトル情報の水平成分、垂直成分である(MVhcol,MVvcol)並びに参照インデックスRefcolの値を用いて、当該領域PUcurrの静止領域判定を行う。
すなわち、静止領域判定部721は、閾値をθとすると、以下の式(17)および式(18)が成り立ち、かつ、式(19)が成立する場合、Ref_PicR_reorderingが適用される場合、若しくは、参照インデックスRefcolが、直前のピクチャを意味するPOC値を持つ場合、当該領域PUcurrを静止領域として判定する。
|MVhcol| ≦ θ ・・・(17)
|MVvcol| ≦ θ ・・・(18)
Refcol = 0 ・・・(19)
式(19)において参照インデックスRefcolの値が0であることにより、静止領域判定部721は、参照ピクチャのCo-Located領域PUcolが略間違いなく静止画により構成される静止領域であると判定する。また、式(17)および式(18)のθの値としては、入力画像も参照画像も、符号化歪を含まない、原画像そのものであるなら、0であるべきである。しかしながら、実際には、入力画像は原画像そのものであるが、参照画像は復号画像であり一般的に符号化歪みを含む。そのため、静止画領域であっても、必ずしもθの値として0が適切であるとは限らない。
そこで、静止領域判定部721は、動きベクトルの値が1/4画素の精度を持つ場合、θ=4であるとする。すなわち、動きベクトルの精度が、整数画素精度で1.0以内である場合、静止領域判定部721は、静止領域であると判定されるようにする。
次に、動きベクトル符号化部722による予測動きベクトル情報へのコードナンバの割り当てについて、より具体的に説明する。以下において、プレディクションユニットPUxの動きベクトル情報をMVPUxとする。
非特許文献1や、Joel Jung,Guillaume Laroche,"Competition-Based Scheme for Motion Vector Selection and Coding", VCEG-AC06,ITU - Telecommunications Standardization SectorSTUDY GROUP 16 Question 6Video Coding Experts Group (VCEG)29th Meeting: Klagenfurt, Austria, 17-18 July, 2006(以下、非特許文献2と称する)においては、H.264/AVC方式において定義されている、上述した式(5)により求められる空間予測動きベクトル情報(Spatial Predictor)に加え、図6を参照して説明する時間予測動きベクトル情報(Temporal Predictor)および時空間予測動きベクトル情報(Spatio-Temporal Predictor)のどれかを、予測動きベクトル情報として、適応的に用いるという方法が提案されている。
非特許文献2においては、一番大きなコードナンバが、時間予測動きベクトル情報(temporal predictor)に割り当てられる。つまり、この方法の場合、コードナンバ(code number) ”y” が割り当てられている予測動きベクトル情報をPMVyとすると、図33の例の場合、以下の式(20)乃至(23)のようにコードナンバが割り当てられる。
PMV0 = MVPUa ・・・(20)
PMV1 = MVPUb ・・・(21)
PMV2 = MVPUc ・・・(22)
PMV3 = MVPUcol ・・・(23)
上述したようにRD最適化によるモード判定を行う場合、特に、より低いビットレートにおいては、より小さなコードナンバが割り当てられたモードが選択されやすくなり、このため、非特許文献2に記載の方法では、動領域と静止領域の間で劣化が観測されやすいことになる。
つまり、図13を参照して上述したように、動領域に隣接する静止領域において、空間方向の動き相関を利用すると動領域の動きベクトル情報が静止領域に伝搬して画質劣化を引き起こす恐れがある。しかしながら、非特許文献2に記載の方法では、常に、空間予測動きベクトル情報(Spatial Predictor)に対して、選択されやすい小さいコードナンバが割り当てられているので、動領域と静止領域の間で劣化が観測されやすいことになる。
上述したように動きベクトル符号化部722も、処理対象である当該領域の周辺の領域の動き情報を用いて予測動きベクトル情報を生成する。図33の例の場合、当該ピクチャのPUcurrが当該領域であり、当該ピクチャのPUa,PUb、およびPUcが当該領域に対して空間的に周辺に位置する領域であり、参照ピクチャのPUcolが当該領域に対して時間的に周辺に位置する領域である。
以下においては、このように空間的若しくは時間的に(時空間に)周辺の領域を周辺領域と称する。つまり、PUa,PUb、およびPUcをPUcurrの空間的な周辺領域と称し、PUcolがPUcurrの時間的な周辺領域と称する。
動きベクトル符号化部722は、これらの周辺領域の動き情報に対してコードナンバを割り当てるが、その際、静止領域の判定結果に応じてコードナンバの割り当て方を制御する。より具体的には、動きベクトル符号化部722は、静止領域判定において、上述した式(17)および式(18)が成り立ち、かつ、式(19)が成立する場合、Ref_PicR_reorderingが適用される場合、若しくは、参照インデックスRefcolが、直前のピクチャを意味するPOC値を持つ場合、コードナンバの割り当てを、以下の式(24)乃至(27)のように変更する。
PMV0 = MVPUcol ・・・(24)
PMV1 = MVPUa ・・・(25)
PMV2 = MVPub ・・・(26)
PMV3 = MVPUc ・・・(27)
つまり、静止領域に対しては、動領域における動きベクトルが伝播するのを抑制するために、時間予測動きベクトル情報(temporal predictor)に対して最も小さなコード番号を割り当てる。このようにすることにより、動きベクトル符号化部722は、予測動きベクトル情報の予測精度を向上させることができ、符号化効率を向上させることができる。
なお、静止領域判定部721が静止領域の判定をプレディクションユニット毎に行うので、動きベクトル符号化部722は、その静止領域判定部721の判定に従ってコードナンバの割り当てを行うことにより、予測動きベクトル情報の予測精度をより向上させることができ、符号化効率をより向上させることができる。
なお、静止領域であると判定された場合のコードナンバの割り当て方は、式(24)乃至(27)以外であってもよい。つまり、少なくとも、静止領域であると判定された場合、動物体の画像により構成される動領域であると判定された場合よりも、時間予測動きベクトル情報(temporal predictor)に対してより小さいコードナンバを割り当てるようにすればよい。例えば、動きベクトル符号化部722が、MVPUcolにPMV1やPMV2を割り当てるようにしてもよい。
また、静止領域判定の精度(確かさ)に応じて、動きベクトル符号化部722が、割り当てるコードナンバを変えることができるようにしてもよい。例えば、静止領域判定を軟判定とし、より確からしい程、動きベクトル符号化部722が、より小さいコードナンバを割り当てるようにしてもよい。
さらに、以上においては、コードナンバを割り当てる周辺領域としてPUa,PUb,PUc、およびPUcolを例に説明したが、これら以外の任意の領域を周辺領域とし、その周辺領域の動きベクトル情報に対してもコードナンバの割り当てが行われるようにしてもよい。つまり、コードナンバの割り当てが行われる周辺領域の位置だけでなく、その数(すなわち割り当てを行うコードナンバの数)も任意である。
なお、以上においては、空間予測動きベクトル情報(spatial predictor)に対してより小さいコードナンバを割り当てる割り当て方を初期状態とし、静止領域判定部721によって当該領域が静止領域であると判定された場合に、時間予測動きベクトル情報(temporal predictor)に対してより小さいコードナンバを割り当てるように割り当て方を変更するように説明したが、これに限らず、時間予測動きベクトル情報(temporal predictor)に対してより小さいコードナンバを割り当てる割り当て方を初期状態とし、静止領域判定部721によって当該領域が動領域であると判定された場合に、空間予測動きベクトル情報(spatial predictor)に対してより小さいコードナンバを割り当てるように割り当て方を変更するようにしてもよい。
また、以上においては、静止領域判定部721によって当該領域が静止領域であると判定された場合、動きベクトル符号化部722が、時間予測動きベクトル情報(temporal predictor)に対してより小さいコードナンバを割り当てるように説明したが、さらに、強制的に、その時間予測動きベクトル情報(temporal predictor)を予測動きベクトル情報として選択する(候補として生成する予測動きベクトル情報を時間予測動きベクトル情報(MVPUcol)のみとする)ようにしてもよい。
このようにすることにより、動きベクトル符号化部722は、より確実に、静止領域の予測動きベクトル情報として、時間予測動きベクトル情報(temporal predictor)を選択することができる。したがって、動きベクトル符号化部722は、静止領域に対して動領域における動きベクトルが伝播するのをより確実に抑制することができる。ただし、静止領域判定において誤判定が生じる可能性がある場合、従来のようにコスト関数値等を用いて予測動きベクトル情報を選択するようにするのが望ましい。
なお、以上においては、PUa,PUb、およびPUcをPUcurrの空間的な周辺領域とし、PUcolをPUcurrの時間的な周辺領域として説明したが、空間的な周辺領域および時間的な周辺領域は、これらに限らず、当該領域を処理対象とする時点において動き情報が生成済みの領域であればどのような領域であってもよい。
[動き予測・補償部、静止領域判定部、動きベクトル符号化部]
図34は、動き予測・補償部715、静止領域判定部721、および動きベクトル符号化部722の主な構成例を示すブロック図である。
図34に示されるように、動き予測・補償部715は、動き探索部731、コスト関数算出部732、モード判定部733、動き補償部734、および動き情報バッファ735を有する。
また、動きベクトル符号化部722は、コードナンバ割当部741、予測動きベクトル生成部742、および差分動きベクトル生成部743を有する。
動き探索部731には、画面並べ替えバッファ702からの入力画像画素値と、フレームメモリ712からの参照画像画素値が入力される。動き探索部731は、全てのインター予測モードについて動き探索処理を行い、動きベクトルと参照インデックスを含む動き情報を生成する。動き探索部731は、その動き情報を動きベクトル符号化部722の予測動きベクトル生成部742に供給する。
また、静止領域判定部721は、動き予測・補償部715の動き情報バッファ735に記憶されている周辺領域の動き情報である周辺動き情報を取得し、その周辺動き情報から処理対象の領域(当該領域)が静止領域であるか否かを判定する。
例えば、静止領域判定部721は、時間的な周辺領域であるPUcolについて、上述した式(17)および式(18)が成り立ち、かつ、式(19)が成立する場合、Ref_PicR_reorderingが適用される場合、若しくは、参照インデックスRefcolが、直前のピクチャを意味するPOC値を持つ場合、当該領域PUcurrを静止領域として判定する。静止領域判定部721は、このような静止領域判定結果を動きベクトル符号化部722のコードナンバ割当部741に供給する。
動きベクトル符号化部722のコードナンバ割当部741は、動き予測・補償部715の動き情報バッファ735から周辺動き情報を取得するとともに、静止領域判定部721から静止領域判定結果を取得する。コードナンバ割当部741は、その静止領域判定結果に従って、各隣接動き情報へのコードナンバの割り当て方を決定し、その割り当て方を制御するコードナンバ割当制御信号を予測動きベクトル生成部742に供給する。
予測動きベクトル生成部742は、動き探索部731から当該PUの各インター予測モードの動き情報を取得すると、動き情報バッファ735から、各動き情報に対応する周辺動き情報を取得する。予測動きベクトル生成部742は、その周辺動きベクトル情報を用いて、非特許文献2に記載のように、候補となる複数の予測動きベクトル情報の生成を行う。ただし、非特許文献2に記載の方法と異なり、各予測動きベクトル情報には、コードナンバ割当部741により設定されたコードナンバを割り当てる。
すなわち、予測動きベクトル生成部742は、当該PUに対して、上述した式(5)により空間予測動きベクトル情報(Spatial Predictor)を生成する。また、予測動きベクトル生成部742は、当該PUに対して、上述した式(9)により時間予測動きベクトル情報(Temporal Predictor)を生成する。さらに、予測動きベクトル生成部742は、当該PUに対して、式(10)により時空間予測動きベクトル(Spatio-Temporal Predictor)を生成する。予測動きベクトル生成部742は、得られた各予測動きベクトル情報に、コードナンバ割当部741により設定されたコードナンバを割り当てる。
そして、予測動きベクトル生成部742は、動き探索部731から取得した動き情報、生成された候補となる各予測動きベクトル情報、並びに、それらに対してそれぞれ割り付けられたコードナンバを差分動きベクトル生成部743に供給する。
差分動きベクトル生成部743は、各インター予測モードについて、供給された予測動きベクトル情報の候補の中から最適なものを選択し、動き情報とその予測動きベクトル情報との差分値を含む差分動きベクトル情報を生成する。差分動きベクトル生成部743は、生成した各インター予測モードの差分動きベクトル情報、選択した各インター予測モードの予測動きベクトル情報、およびそのコードナンバを動き予測・補償部715のコスト関数算出部732に供給する。
また、動き探索部731は、探索した動きベクトル情報を用いて、参照画像に補償処理を行い、予測画像を生成する。さらに、動き探索部731は、その予測画像と入力画像の差分(差分画素値)を算出し、その差分画素値をコスト関数算出部732に供給する。
コスト関数算出部732は、動き探索部731から供給された各インター予測モードの差分画素値を用いて、各インター予測モードのコスト関数値を算出する。コスト関数算出部732は、算出した各インター予測モードのコスト関数値、各インター予測モードの差分動き情報、各インター予測モードの予測動きベクトル情報、およびそのコードナンバを、モード判定部733に供給する。
モード判定部733は、各インター予測モードのうち、どのモードを用いるのが最適かを、各インター予測モードに対するコスト関数値を用いて判定し、最も小さいコスト関数値のインター予測モードを、最適予測モードとする。そして、モード判定部733は、その最適予測モードに関する情報である最適予測モード情報、並びに、最適予測モードに選択されたインター予測モードの、差分動き情報、予測動きベクトル情報、およびそのコードナンバを、動き補償部734に供給する。
動き補償部734は、供給された最適予測モードの差分動き情報と予測動きベクトル情報とから、動きベクトルを求め、求めた動きベクトルを用いて、フレームメモリ712からの参照画像に補償を行うことで、最適予測モードの予測画像を生成する。
予測画像選択部716によりインター予測が選択された場合、それを示す信号が予測画像選択部716から供給される。これに対応して、動き補償部734は、最適予測モード情報、並びに、そのモードの差分動きベクトル情報、および、そのモードの予測動きベクトル情報のコードナンバを、可逆符号化部706に供給する。
また、動き補償部734は、最適予測モードに選択されたモードの差分動きベクトル情報と予測動きベクトル情報から求めた動き情報、すなわち、最適予測モードの動き情報を、動き情報バッファ735に格納する。なお、予測画像選択部716によりインター予測が選択されなかった場合(すなわち、イントラ予測画像が選択された場合)、動きベクトル情報として、0ベクトルが、動き情報バッファ735に格納される。
動き情報バッファ735には、過去に処理された領域の最適予測モードの動き情報が格納されている。格納されている動き情報は、その領域より時間的に後に処理される領域に対する処理において、周辺動き情報として、静止領域判定部721、コードナンバ割当部741、および予測動きベクトル生成部742に供給される。
以上のように、静止領域判定部721が静止領域であるか否かの判定を予測処理単位毎に行う。そして、動きベクトル符号化部722が、その静止領域判定結果に基づいてコードナンバの割り当てを制御し、静止領域の場合、時間予測動きベクトル情報(temporal predictor)に対して最も小さなコード番号を割り当てる。そして、動き予測・補償部715は、その動きベクトル符号化部722に生成された差分動き情報や予測動きベクトル情報のコードナンバを符号化させる。したがって、画像符号化装置700は、予測動きベクトル情報の予測精度を向上させることができ、符号化効率を向上させることができる。
[処理の流れ]
次に、画像符号化装置700において実行される処理の流れについて説明する。符号化処理およびイントラ予測処理は、基本的に、図16および図17を参照して説明したフローチャートの場合と同様に実行される。つまり、画像符号化装置51が実行する場合と同様の処理が行われる。したがって、これらの説明については省略する。
次に、図35のフローチャートを参照して、図16のステップS22において実行されるインター動き予測処理の流れの例を説明する。
インター動き予測処理が開始されると、この場合、動き探索部731は、ステップS701において、各インター予測モードに対して動き探索を行い、動き情報と差分画素値を生成する。
ステップS702において、静止領域判定部721は、動き情報バッファ735から、時間的な周辺領域であるCo-Located領域の動き情報を取得する。ステップS703において、静止領域判定部721は、Co-Located領域の動き情報に基づいて、当該領域が静止領域であるか否かを判定する。
ステップS704において、コードナンバ割当部741は、静止領域判定結果に応じて予測動きベクトル情報に対するコードナンバの割り当てを決定する。
ステップS705において、予測動きベクトル生成部742は、候補となる全ての予測動きベクトル情報を生成する。
ステップS706において、差分動きベクトル生成部743は、各インター予測モードに対する最適な予測動きベクトル情報を決定する。また、その予測動きベクトル情報と動き情報の動きベクトルとの差分である差分動きベクトルを含む差分動き情報を生成する。
ステップS707において、コスト関数算出部732は、各インター予測モードのコスト関数値を算出する。
ステップS708において、モード判定部733は、ステップS707において算出されたコスト関数値を用いて、最適なインター予測モードである最適インター予測モード(最適予測モードとも称する)を決定する。
ステップS709において、動き補償部734は、最適インター予測モードで動き補償を行う。ステップS710において、動き補償部734は、ステップS709の動き補償により得られた予測画像を、予測画像選択部716を介して演算部703および演算部710に供給し、差分画像情報および復号画像を生成させる。また、ステップS711において、動き補償部734は、最適予測モード情報、差分動き情報、および予測動きベクトル情報のコードナンバ等、最適インター予測モードに関する情報を可逆符号化部706に供給し、符号化させる。
ステップS712において、動き情報バッファ735は、最適インター予測モードに選択された動き情報を記憶する。動き情報を記憶すると、動き情報バッファ735は、インター動き予測処理を終了する。
以上のように、処理を行うことにより、画像符号化装置700は、予測動きベクトル情報の予測精度を向上させることができ、符号化効率を向上させることができる。
[画像復号装置]
図36は、図32の画像符号化装置700に対応する画像復号装置の主な構成例を示すブロック図である。
図36に示される画像復号装置800は、図20の画像復号装置101と基本的に同様の装置である。画像復号装置800は、画像符号化装置700が生成した符号化データを、その符号化方法に対応する復号方法で復号する。なお、画像復号装置800は、画像符号化装置700と同様に、プレディクションユニット(PU)毎にインター予測を行うものとする。
図36に示されるように画像復号装置800は、蓄積バッファ801、可逆復号部802、逆量子化部803、逆直交変換部804、演算部805、ループフィルタ806、画面並べ替えバッファ807、およびD/A変換部808を有する。また、画像復号装置800は、フレームメモリ809、選択部810、イントラ予測部811、動き予測・補償部812、および選択部813を有する。
さらに、画像復号装置800は、静止領域判定部821、および動きベクトル復号部822を有する。
蓄積バッファ801は伝送されてきた符号化データを蓄積し、所定のタイミングにおいてその符号化データを可逆復号部802に供給する。可逆復号部802は、蓄積バッファ801より供給された、図32の可逆符号化部706により符号化された情報を、可逆符号化部706の符号化方式に対応する方式で復号する。可逆復号部802は、復号して得られた差分画像の量子化された係数データを、逆量子化部803に供給する。また、可逆復号部802は、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、イントラ予測部811および動き予測・補償部812の内、選択されたと判定したモードの方に供給する。
つまり、例えば、画像符号化装置700において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報が動き予測・補償部812に供給される。
逆量子化部803は、可逆復号部802により復号されて得られた量子化された係数データを、図32の量子化部705の量子化方式に対応する方式で逆量子化し、得られた係数データを逆直交変換部804に供給する。
逆直交変換部804は、図32の直交変換部704の直交変換方式に対応する方式で逆量子化部803から供給される係数データを逆直交変換する。逆直交変換部804は、この逆直交変換処理により、画像符号化装置700において直交変換される前の残差データに対応する復号残差データを得る。
逆直交変換されて得られた復号残差データは、演算部805に供給される。また、演算部805には、選択部813を介して、イントラ予測部811若しくは動き予測・補償部812から予測画像が供給される。
演算部805は、その復号残差データと予測画像とを加算し、画像符号化装置700の演算部703により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部805は、その復号画像データをループフィルタ806に供給する。
ループフィルタ806は、供給された復号画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施し、それを画面並べ替えバッファ807に供給する。
ループフィルタ806は、デブロックフィルタや適応ループフィルタ等を含み、演算部805から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ806は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ806は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ806が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ806が、図32の画像符号化装置700から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。
ループフィルタ806は、フィルタ処理結果(フィルタ処理後の復号画像)を画面並べ替えバッファ807およびフレームメモリ809に供給する。なお、演算部805から出力される復号画像は、ループフィルタ806を介さずに画面並べ替えバッファ807やフレームメモリ809に供給することができる。つまり、ループフィルタ806によるフィルタ処理は省略することができる。
画面並べ替えバッファ807は、画像の並べ替えを行う。すなわち、図32の画面並べ替えバッファ702により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部808は、画面並べ替えバッファ807から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
フレームメモリ809は、供給される復号画像を記憶し、所定のタイミングにおいて、若しくは、イントラ予測部811や動き予測・補償部812等の外部の要求に基づいて、記憶している復号画像を参照画像として、選択部810に供給する。
選択部810は、フレームメモリ809から供給される参照画像の供給先を選択する。選択部810は、イントラ符号化された画像を復号する場合、フレームメモリ809から供給される参照画像をイントラ予測部811に供給する。また、選択部810は、インター符号化された画像を復号する場合、フレームメモリ809から供給される参照画像を動き予測・補償部812に供給する。
イントラ予測部811には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部802から適宜供給される。イントラ予測部811は、図32のイントラ予測部714において用いられたイントラ予測モードで、フレームメモリ809から取得した参照画像を用いてイントラ予測を行い、予測画像を生成する。イントラ予測部811は、生成した予測画像を選択部813に供給する。
動き予測・補償部812は、ヘッダ情報を復号して得られた情報(最適予測モード情報、差分情報、および予測動きベクトル情報のコードナンバ等)を可逆復号部802から取得する。
動き予測・補償部812は、図32の動き予測・補償部715において用いられたインター予測モードで、フレームメモリ809から取得した参照画像を用いてインター予測を行い、予測画像を生成する。つまり、動き予測・補償部812は、図32の動き予測・補償部715と同様に、AVC符号化方式において規定されるモード以外の任意のモードでこのイントラ予測を行うこともできる。
静止領域判定部821は、基本的に静止領域判定部721と同様の処理を行い、当該領域が静止領域であるか否かを判定する。つまり、静止領域判定部821は、当該領域のCo-Located領域の動き情報から、上述した式(17)および式(18)が成り立ち、かつ、式(19)が成立する場合、Ref_PicR_reorderingが適用される場合、若しくは、参照インデックスRefcolが、直前のピクチャを意味するPOC値を持つ場合、当該領域PUcurrを静止領域として判定する。
静止領域判定部821は、このような静止領域の判定を予測処理単位で行い、その静止領域判定結果を動きベクトル復号部822に供給する。
動きベクトル復号部822は、静止領域判定部821から供給される静止領域判定結果に従って、予測動きベクトル情報へのコードナンバの割り当て方を制御し、その制御に従って、動き予測・補償部812から供給される予測動きベクトル情報のコードナンバを解読し、予測動きベクトル情報を再構築する。
つまり、動きベクトル復号部822は、静止領域判定部821が、図32の静止領域判定部721と同様の方法で判定した静止領域判定結果に従って、コードナンバの割り当て方を制御することにより、図32の動きベクトル符号化部722によるコードナンバの割り当て方を正しく再現することができる。このように動きベクトル符号化部722によるコードナンバの割り当て方を正しく再現することにより、動きベクトル復号部822は、画像符号化装置700から供給される予測動きベクトル情報のコードナンバを正しく解読し、予測動きベクトル情報を正しく再構築することができる。
動きベクトル復号部822は、再構築した予測動きベクトル情報を動き予測・補償部812に供給する。動き予測・補償部812は、この予測動きベクトル情報を用いて動きベクトル情報を再構築し、その動きベクトル情報を用いて動き補償を行い、予測画像を生成する。動き予測・補償部812は、生成した予測画像を選択部813に供給する。
選択部813は、演算部805に供給する予測画像の供給元を選択する。つまり、選択部813は、動き予測・補償部812またはイントラ予測部811により生成された予測画像を演算部805に供給する。
このように、静止領域判定部821による予測処理単位毎の静止領域判定の判定結果に基づいて予測動きベクトル情報に割り当てるコードナンバを制御することにより、動きベクトル復号部822は、画像符号化装置700におけるコードナンバの割り当て方を正しく再現することができる。したがって、動きベクトル復号部822は、画像符号化装置700から供給される予測動きベクトル情報のコードナンバを正しく解読し、予測動きベクトル情報を正しく再構築することができる。
したがって、画像復号装置800は、画像符号化装置700が符号化した符号化データを正しく復号することができ、符号化効率の向上を実現させることができる。
[動き予測・補償部、静止領域判定部、動きベクトル復号部]
図37は、動き予測・補償部812、静止領域判定部821、および動きベクトル復号部822の主な構成例を示すブロック図である。
図37に示されるように、動き予測・補償部812は、差分動き情報バッファ831、予測動きベクトル情報バッファ832、動き情報再構築部833、動き補償部834、および動き情報バッファ835を有する。
また、動きベクトル復号部822は、コードナンバ割当部841および予測動きベクトル再構築部842を有する。
差分動き情報バッファ831は、可逆復号部802から供給される差分動き情報を記憶する。この差分動き情報は、画像符号化装置700から供給された、最適な予測モードとして選択されたインター予測モードの差分動き情報である。差分動き情報バッファ831は、所定のタイミングにおいて、若しくは、動き情報再構築部833からの要求に基づいて、記憶している差分動き情報を動き情報再構築部833に供給する。
予測動きベクトル情報バッファ832は、可逆復号部802から供給される予測動きベクトル情報のコードナンバを記憶する。この予測動きベクトル情報のコードナンバは、画像符号化装置700から供給されたものであり、最適な予測モードとして選択されたインター予測モードの予測動きベクトル情報に割り当てられたコードナンバである。予測動きベクトル情報バッファ832は、所定のタイミングにおいて、若しくは、予測動きベクトル再構築部842からの要求に基づいて、記憶している予測動きベクトル情報のコードナンバを、動きベクトル復号部822の予測動きベクトル再構築部842に供給する。
また、静止領域判定部821は、予測処理単位の領域毎に、動き情報バッファ835からCo-Located領域の動き情報を周辺動き情報として取得し、静止領域判定を行う。静止領域判定部821は、その判定結果(静止領域判定結果)を動きベクトル復号部822のコードナンバ割当部841に供給する。
動きベクトル復号部822のコードナンバ割当部841は、静止領域判定部821から供給される静止領域判定結果に従って、コードナンバの割り当て方を、予測処理単位の領域毎に制御し、コードナンバ割当制御信号を予測動きベクトル再構築部842に供給する。
予測動きベクトル再構築部842は、コードナンバ割当部841から予測処理単位の領域毎に指定されるコードナンバの割り当て方を用いて、予測動きベクトル情報バッファ832から取得した予測動きベクトル情報のコードナンバを解読する。予測動きベクトル再構築部842は、解読したコードナンバに対応する予測動きベクトル情報を特定し、その予測動きベクトル情報を再構築する。つまり、予測動きベクトル再構築部842は、コードナンバに対応する周辺領域の周辺動き情報を動き情報バッファ835から取得し、その周辺動き情報を予測動きベクトル情報とする。
予測動きベクトル再構築部842は、再構築した予測動きベクトル情報を、動き予測・補償部812の動き情報再構築部833に供給する。
動き予測・補償部812の動き情報再構築部833は、差分動き情報バッファ831から取得した差分動き情報に、予測動きベクトル再構築部842から取得した予測動きベクトル情報を加算し、当該領域(当該PU)の動き情報を再構築する。動き情報再構築部833は、再構築した当該領域の動き情報を動き補償部834に供給する。
動き補償部834は、その当該領域の動き情報を用いて、フレームメモリ809から取得した参照画像画素値に対して動き補償を行い、予測画像を生成する。動き補償部834は、その予測画像画素値を選択部813を介して演算部805に供給する。
また、動き情報再構築部833は、再構築した当該領域の動き情報を動き情報バッファ835にも供給する。
動き情報バッファ835は、その動き情報再構築部833から供給される当該領域の動き情報を記憶する。動き情報バッファ835は、当該領域よりも時間的に後に処理される他の領域に対する処理において、その動き情報を周辺動き情報として、静止領域判定部821や予測動きベクトル再構築部842に供給する。
以上のように各部が処理を行うことにより、画像復号装置800は、画像符号化装置700が符号化した符号化データを正しく復号することができ、符号化効率の向上を実現させることができる。
[処理の流れ]
次に、この画像復号装置800により実行される処理の流れについて説明する。画像復号装置800は、符号化データを復号する復号処理を、図22のフローチャートを参照して説明したのと同様に行う。つまり、画像復号装置800は、基本的に、画像復号装置101の場合と同様に復号処理を行う。ただし、図22のステップS138の予測処理は以下のように実行される。
図38のフローチャートを参照して、画像復号装置800の場合に、図22のステップS138において実行される予測処理の流れの例を説明する。
予測処理が開始されると、可逆復号部802は、ステップS801において、画像符号化装置700から供給された最適な予測モードに関する情報に基づいて、処理対象の符号化データがイントラ符号化されているか否かを判定する。イントラ符号化されていると判定された場合、可逆復号部802は、処理をステップS802に進める。
ステップS802において、イントラ予測部811は、イントラ予測モード情報を取得する。ステップS803において、イントラ予測部811は、ステップS802において取得したイントラ予測モード情報を用いてイントラ予測を行い、予測画像を生成する。予測画像を生成すると、イントラ予測部811は、予測処理を終了し、処理を図22に戻す。
また、ステップS801において、インター符号化されていると判定された場合、可逆復号部802は、処理をステップS804に進める。
ステップS804において、動き予測・補償部812は、インター動き予測処理を行う。インター動き予測処理が終了すると、動き予測・補償部812は、予測処理を終了し、処理を図22に戻す。
次に、図39のフローチャートを参照して、図38のステップS804において実行されるインター動き予測処理の流れの例を説明する。
インター動き予測処理が開始されると、ステップS821において、動き予測・補償部812は、当該領域に対する動き予測に関する情報を取得する。例えば、予測動きベクトル情報バッファ832は、予測動きベクトル情報のコードナンバを取得し、差分動き情報バッファ831は、差分動き情報を取得する。
ステップS822において、静止領域判定部821は、動き情報バッファ835から、Co-Located領域の動き情報を取得する。ステップS823において、静止領域判定部821は、その情報に基づいて、上述したように、当該領域が静止領域であるか否かを判定する。
ステップS824において、コードナンバ割当部841は、ステップS823の静止領域判定結果に応じて予測動きベクトル情報に対するコードナンバの割当を決定する。ステップS825において、予測動きベクトル再構築部842は、予測動きベクトル情報のコードナンバを、ステップS824において決定された割当に従って解読し、予測動きベクトル情報を再構築する。
ステップS826において、動き情報再構築部833は、ステップS825において再構築された予測動きベクトル情報と、ステップS821において取得された差分動き情報を用いて、当該領域の動き情報を再構築する。
ステップS827において、動き補償部834は、ステップS826において再構築された動き情報で、フレームメモリ809から取得した参照画像に対して動き補償を行う。
ステップS828において、動き補償部834は、ステップS827の処理により生成された予測画像を、選択部813を介して演算部805に供給し、復号画像を生成させる。ステップS829において、動き情報バッファ835は、ステップS826において再構築された動き情報を記憶する。この動き情報は、時間的に後に行われる他の領域に対する処理において、周辺動き情報として使用される。
動き情報が記憶されると、動き情報バッファ835は、インター動き予測処理を終了し、処理を図38に戻す。
以上のように各処理を行うことにより、画像復号装置800は、画像符号化装置700が符号化した符号化データを正しく復号することができ、符号化効率の向上を実現させることができる。
なお、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
[パーソナルコンピュータの構成例]
図26は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203は、バス204により相互に接続されている。
バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記憶部208、通信部209、およびドライブ210が接続されている。
入力部206は、キーボード、マウス、マイクロホンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記憶部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインタフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア211を駆動する。
以上のように構成されるコンピュータでは、CPU201が、例えば、記憶部208に記憶されているプログラムを入出力インタフェース205及びバス204を介してRAM203にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インタフェース205を介して、記憶部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記憶部208にインストールすることができる。その他、プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、上述した画像符号化装置や、画像復号装置は、任意の電子機器に適用することができる。以下にその例について説明する。
[テレビジョン受像機の構成例]
図27は、画像復号装置を用いるテレビジョン受像機の主な構成例を示すブロック図である。
図27に示されるテレビジョン受像機300は、地上波チューナ313、ビデオデコーダ315、映像信号処理回路318、グラフィック生成回路319、パネル駆動回路320、および表示パネル321を有する。
地上波チューナ313は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ315に供給する。ビデオデコーダ315は、地上波チューナ313から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路318に供給する。
映像信号処理回路318は、ビデオデコーダ315から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路319に供給する。
グラフィック生成回路319は、表示パネル321に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路320に供給する。また、グラフィック生成回路319は、項目の選択などにユーザにより利用される画面を表示するための映像データ(グラフィック)を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路320に供給するといった処理も適宜行う。
パネル駆動回路320は、グラフィック生成回路319から供給されたデータに基づいて表示パネル321を駆動し、番組の映像や上述した各種の画面を表示パネル321に表示させる。
表示パネル321はLCD(Liquid Crystal Display)などよりなり、パネル駆動回路320による制御に従って番組の映像などを表示させる。
また、テレビジョン受像機300は、音声A/D(Analog/Digital)変換回路314、音声信号処理回路322、エコーキャンセル/音声合成回路323、音声増幅回路324、およびスピーカ325も有する。
地上波チューナ313は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ313は、取得した音声信号を音声A/D変換回路314に供給する。
音声A/D変換回路314は、地上波チューナ313から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路322に供給する。
音声信号処理回路322は、音声A/D変換回路314から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル/音声合成回路323に供給する。
エコーキャンセル/音声合成回路323は、音声信号処理回路322から供給された音声データを音声増幅回路324に供給する。
音声増幅回路324は、エコーキャンセル/音声合成回路323から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ325から出力させる。
さらに、テレビジョン受像機300は、デジタルチューナ316およびMPEGデコーダ317も有する。
デジタルチューナ316は、デジタル放送(地上デジタル放送、BS(Broadcasting Satellite)/CS(Communications Satellite)デジタル放送)の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS(Moving Picture Experts Group-Transport Stream)を取得し、それをMPEGデコーダ317に供給する。
MPEGデコーダ317は、デジタルチューナ316から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象(視聴対象)になっている番組のデータを含むストリームを抽出する。MPEGデコーダ317は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路322に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路318に供給する。また、MPEGデコーダ317は、MPEG-TSから抽出したEPG(Electronic Program Guide)データを図示せぬ経路を介してCPU332に供給する。
テレビジョン受像機300は、このように映像パケットをデコードするMPEGデコーダ317として、上述した画像復号装置を用いる。したがって、MPEGデコーダ317は、上述した画像復号装置の場合と同様に、より高い符号化効率を達成することができる。
MPEGデコーダ317から供給された映像データは、ビデオデコーダ315から供給された映像データの場合と同様に、映像信号処理回路318において所定の処理が施される。そして、所定の処理が施された映像データは、グラフィック生成回路319において、生成された映像データ等が適宜重畳され、パネル駆動回路320を介して表示パネル321に供給され、その画像が表示される。
MPEGデコーダ317から供給された音声データは、音声A/D変換回路314から供給された音声データの場合と同様に、音声信号処理回路322において所定の処理が施される。そして、所定の処理が施された音声データは、エコーキャンセル/音声合成回路323を介して音声増幅回路324に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ325から出力される。
また、テレビジョン受像機300は、マイクロホン326、およびA/D変換回路327も有する。
A/D変換回路327は、音声会話用のものとしてテレビジョン受像機300に設けられるマイクロホン326により取り込まれたユーザの音声の信号を受信する。A/D変換回路327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル/音声合成回路323に供給する。
エコーキャンセル/音声合成回路323は、テレビジョン受像機300のユーザ(ユーザA)の音声のデータがA/D変換回路327から供給されている場合、ユーザAの音声データを対象としてエコーキャンセルを行う。そして、エコーキャンセル/音声合成回路323は、エコーキャンセルの後、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路324を介してスピーカ325より出力させる。
さらに、テレビジョン受像機300は、音声コーデック328、内部バス329、SDRAM(Synchronous Dynamic Random Access Memory)330、フラッシュメモリ331、CPU332、USB(Universal Serial Bus) I/F333、およびネットワークI/F334も有する。
A/D変換回路327は、音声会話用のものとしてテレビジョン受像機300に設けられるマイクロホン326により取り込まれたユーザの音声の信号を受信する。A/D変換回路327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック328に供給する。
音声コーデック328は、A/D変換回路327から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス329を介してネットワークI/F334に供給する。
ネットワークI/F334は、ネットワーク端子335に装着されたケーブルを介してネットワークに接続される。ネットワークI/F334は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック328から供給された音声データを送信する。また、ネットワークI/F334は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子335を介して受信し、それを、内部バス329を介して音声コーデック328に供給する。
音声コーデック328は、ネットワークI/F334から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル/音声合成回路323に供給する。
エコーキャンセル/音声合成回路323は、音声コーデック328から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路324を介してスピーカ325より出力させる。
SDRAM330は、CPU332が処理を行う上で必要な各種のデータを記憶する。
フラッシュメモリ331は、CPU332により実行されるプログラムを記憶する。フラッシュメモリ331に記憶されているプログラムは、テレビジョン受像機300の起動時などの所定のタイミングでCPU332により読み出される。フラッシュメモリ331には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
例えば、フラッシュメモリ331には、CPU332の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ331は、例えばCPU332の制御により、そのMPEG-TSを、内部バス329を介してMPEGデコーダ317に供給する。
MPEGデコーダ317は、デジタルチューナ316から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機300は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ317を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
また、テレビジョン受像機300は、リモートコントローラ351から送信される赤外線信号を受光する受光部337も有する。
受光部337は、リモートコントローラ351からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU332に出力する。
CPU332は、フラッシュメモリ331に記憶されているプログラムを実行し、受光部337から供給される制御コードなどに応じてテレビジョン受像機300の全体の動作を制御する。CPU332とテレビジョン受像機300の各部は、図示せぬ経路を介して接続されている。
USB I/F333は、USB端子336に装着されたUSBケーブルを介して接続される、テレビジョン受像機300の外部の機器との間でデータの送受信を行う。ネットワークI/F334は、ネットワーク端子335に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
テレビジョン受像機300は、MPEGデコーダ317として上述した画像復号装置を用いることにより、符号化効率を向上することができる。その結果として、テレビジョン受像機300は、アンテナを介して受信した放送波信号や、ネットワークを介して取得したコンテンツデータから、より高精細な復号画像を得て、表示することができる。
[携帯電話機の構成例]
図28は、画像符号化装置および画像復号装置を用いる携帯電話機の主な構成例を示すブロック図である。
図28に示される携帯電話機400は、各部を統括的に制御するようになされた主制御部450、電源回路部451、操作入力制御部452、画像エンコーダ453、カメラI/F部454、LCD制御部455、画像デコーダ456、多重分離部457、記録再生部462、変復調回路部458、および音声コーデック459を有する。これらは、バス460を介して互いに接続されている。
また、携帯電話機400は、操作キー419、CCD(Charge Coupled Devices)カメラ416、液晶ディスプレイ418、記憶部423、送受信回路部463、アンテナ414、マイクロホン(マイク)421、およびスピーカ417を有する。
電源回路部451は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機400を動作可能な状態に起動する。
携帯電話機400は、CPU、ROMおよびRAM等でなる主制御部450の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
例えば、音声通話モードにおいて、携帯電話機400は、マイクロホン(マイク)421で集音した音声信号を、音声コーデック459によってデジタル音声データに変換し、これを変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(音声信号)は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
また、例えば、音声通話モードにおいて、携帯電話機400は、アンテナ414で受信した受信信号を送受信回路部463で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部458でスペクトラム逆拡散処理し、音声コーデック459によってアナログ音声信号に変換する。携帯電話機400は、その変換して得られたアナログ音声信号をスピーカ417から出力する。
更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機400は、操作キー419の操作によって入力された電子メールのテキストデータを、操作入力制御部452において受け付ける。携帯電話機400は、そのテキストデータを主制御部450において処理し、LCD制御部455を介して、画像として液晶ディスプレイ418に表示させる。
また、携帯電話機400は、主制御部450において、操作入力制御部452が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機400は、その電子メールデータを、変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(電子メール)は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機400は、基地局から送信された信号を、アンテナ414を介して送受信回路部463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機400は、その受信信号を変復調回路部458でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機400は、復元された電子メールデータを、LCD制御部455を介して液晶ディスプレイ418に表示する。
なお、携帯電話機400は、受信した電子メールデータを、記録再生部462を介して、記憶部423に記録する(記憶させる)ことも可能である。
この記憶部423は、書き換え可能な任意の記憶媒体である。記憶部423は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機400は、撮像によりCCDカメラ416で画像データを生成する。CCDカメラ416は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。その画像データを、カメラI/F部454を介して、画像エンコーダ453で、例えばMPEG2やMPEG4等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換する。
携帯電話機400は、このような処理を行う画像エンコーダ453として、上述した画像符号化装置を用いる。したがって、画像エンコーダ453は、上述した画像符号化装置の場合と同様に、より高い符号化効率を達成することができる。
なお、携帯電話機400は、このとき同時に、CCDカメラ416で撮像中にマイクロホン(マイク)421で集音した音声を、音声コーデック459においてアナログデジタル変換し、さらに符号化する。
携帯電話機400は、多重分離部457において、画像エンコーダ453から供給された符号化画像データと、音声コーデック459から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機400は、その結果得られる多重化データを、変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(画像データ)は、ネットワーク等を介して、通信相手に供給される。
なお、画像データを送信しない場合、携帯電話機400は、CCDカメラ416で生成した画像データを、画像エンコーダ453を介さずに、LCD制御部455を介して液晶ディスプレイ418に表示させることもできる。
また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機400は、基地局から送信された信号を、アンテナ414を介して送受信回路部463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機400は、その受信信号を変復調回路部458でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機400は、多重分離部457において、その多重化データを分離して、符号化画像データと音声データとに分ける。
携帯電話機400は、画像デコーダ456において、符号化画像データを、MPEG2やMPEG4等の所定の符号化方式に対応した復号方式でデコードすることにより、再生動画像データを生成し、これを、LCD制御部455を介して液晶ディスプレイ418に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ418に表示される。
携帯電話機400は、このような処理を行う画像デコーダ456として、上述した画像復号装置を用いる。したがって、画像デコーダ456は、上述した画像復号装置の場合と同様に、より高い符号化効率を達成することができる。
このとき、携帯電話機400は、同時に、音声コーデック459において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ417より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
なお、電子メールの場合と同様に、携帯電話機400は、受信した簡易ホームページ等にリンクされたデータを、記録再生部462を介して、記憶部423に記録する(記憶させる)ことも可能である。
また、携帯電話機400は、主制御部450において、撮像されてCCDカメラ416で得られた2次元コードを解析し、2次元コードに記録された情報を取得することができる。
さらに、携帯電話機400は、赤外線通信部481で赤外線により外部の機器と通信することができる。
携帯電話機400は、画像エンコーダ453として上述した画像符号化装置を用いることにより、符号化効率を向上させることができる。結果として、携帯電話機400は、符号化効率のよい符号化データ(画像データ)を、他の装置に提供することができる。
また、携帯電話機400は、画像デコーダ456として上述した画像復号装置を用いることにより、符号化効率を向上させることができる。その結果として、携帯電話機400は、例えば、簡易ホームページにリンクされた動画像ファイルから、より高精細な復号画像を得て、表示することができる。
なお、以上において、携帯電話機400が、CCDカメラ416を用いるように説明したが、このCCDカメラ416の代わりに、CMOS(Complementary Metal Oxide Semiconductor)を用いたイメージセンサ(CMOSイメージセンサ)を用いるようにしてもよい。この場合も、携帯電話機400は、CCDカメラ416を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
また、以上においては携帯電話機400として説明したが、例えば、PDA(Personal Digital Assistants)、スマートフォン、UMPC(Ultra Mobile Personal Computer)、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機400と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機400の場合と同様に、画像符号化装置および画像復号装置を適用することができる。
[ハードディスクレコーダの構成例]
図29は、画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
図29に示されるハードディスクレコーダ(HDDレコーダ)500は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号(テレビジョン信号)に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
ハードディスクレコーダ500は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ500は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
さらに、ハードディスクレコーダ500は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ560に供給し、モニタ560の画面にその画像を表示させる。また、ハードディスクレコーダ500は、モニタ560のスピーカよりその音声を出力させることができる。
ハードディスクレコーダ500は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ560に供給し、モニタ560の画面にその画像を表示させる。また、ハードディスクレコーダ500は、モニタ560のスピーカよりその音声を出力させることもできる。
もちろん、この他の動作も可能である。
図29に示されるように、ハードディスクレコーダ500は、受信部521、復調部522、デマルチプレクサ523、オーディオデコーダ524、ビデオデコーダ525、およびレコーダ制御部526を有する。ハードディスクレコーダ500は、さらに、EPGデータメモリ527、プログラムメモリ528、ワークメモリ529、ディスプレイコンバータ530、OSD(On Screen Display)制御部531、ディスプレイ制御部532、記録再生部533、D/Aコンバータ534、および通信部535を有する。
また、ディスプレイコンバータ530は、ビデオエンコーダ541を有する。記録再生部533は、エンコーダ551およびデコーダ552を有する。
受信部521は、リモートコントローラ(図示せず)からの赤外線信号を受信し、電気信号に変換してレコーダ制御部526に出力する。レコーダ制御部526は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ528に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部526は、このとき、ワークメモリ529を必要に応じて使用する。
通信部535は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部535は、レコーダ制御部526により制御され、チューナ(図示せず)と通信し、主にチューナに対して選局制御信号を出力する。
復調部522は、チューナより供給された信号を、復調し、デマルチプレクサ523に出力する。デマルチプレクサ523は、復調部522より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ524、ビデオデコーダ525、またはレコーダ制御部526に出力する。
オーディオデコーダ524は、入力されたオーディオデータを、例えばMPEG方式でデコードし、記録再生部533に出力する。ビデオデコーダ525は、入力されたビデオデータを、例えばMPEG方式でデコードし、ディスプレイコンバータ530に出力する。レコーダ制御部526は、入力されたEPGデータをEPGデータメモリ527に供給し、記憶させる。
ディスプレイコンバータ530は、ビデオデコーダ525またはレコーダ制御部526より供給されたビデオデータを、ビデオエンコーダ541により、例えばNTSC(National Television Standards Committee)方式のビデオデータにエンコードし、記録再生部533に出力する。また、ディスプレイコンバータ530は、ビデオデコーダ525またはレコーダ制御部526より供給されるビデオデータの画面のサイズを、モニタ560のサイズに対応するサイズに変換する。ディスプレイコンバータ530は、画面のサイズが変換されたビデオデータを、さらに、ビデオエンコーダ541によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部532に出力する。
ディスプレイ制御部532は、レコーダ制御部526の制御のもと、OSD(On Screen Display)制御部531が出力したOSD信号を、ディスプレイコンバータ530より入力されたビデオ信号に重畳し、モニタ560のディスプレイに出力し、表示させる。
モニタ560にはまた、オーディオデコーダ524が出力したオーディオデータが、D/Aコンバータ534によりアナログ信号に変換されて供給されている。モニタ560は、このオーディオ信号を内蔵するスピーカから出力する。
記録再生部533は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
記録再生部533は、例えば、オーディオデコーダ524より供給されるオーディオデータを、エンコーダ551によりMPEG方式でエンコードする。また、記録再生部533は、ディスプレイコンバータ530のビデオエンコーダ541より供給されるビデオデータを、エンコーダ551によりMPEG方式でエンコードする。記録再生部533は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部533は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
記録再生部533は、再生ヘッドを介してハードディスクに記録されているデータを再生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記録再生部533は、デコーダ552によりオーディオデータおよびビデオデータをMPEG方式でデコードする。記録再生部533は、復号したオーディオデータをD/A変換し、モニタ560のスピーカに出力する。また、記録再生部533は、復号したビデオデータをD/A変換し、モニタ560のディスプレイに出力する。
レコーダ制御部526は、受信部521を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ527から最新のEPGデータを読み出し、それをOSD制御部531に供給する。OSD制御部531は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部532に出力する。ディスプレイ制御部532は、OSD制御部531より入力されたビデオデータをモニタ560のディスプレイに出力し、表示させる。これにより、モニタ560のディスプレイには、EPG(電子番組ガイド)が表示される。
また、ハードディスクレコーダ500は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
通信部535は、レコーダ制御部526に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部526に供給する。レコーダ制御部526は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部533に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部526および記録再生部533が、必要に応じて再エンコード等の処理を行うようにしてもよい。
また、レコーダ制御部526は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ530に供給する。ディスプレイコンバータ530は、ビデオデコーダ525から供給されるビデオデータと同様に、レコーダ制御部526から供給されるビデオデータを処理し、ディスプレイ制御部532を介してモニタ560に供給し、その画像を表示させる。
また、この画像表示に合わせて、レコーダ制御部526が、復号したオーディオデータを、D/Aコンバータ534を介してモニタ560に供給し、その音声をスピーカから出力させるようにしてもよい。
さらに、レコーダ制御部526は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ527に供給する。
以上のようなハードディスクレコーダ500は、ビデオデコーダ525、デコーダ552、およびレコーダ制御部526に内蔵されるデコーダとして上述した画像復号装置を用いる。したがって、ビデオデコーダ525、デコーダ552、およびレコーダ制御部526に内蔵されるデコーダは、上述した画像復号装置の場合と同様に、より高い符号化効率を達成することができる。
したがって、ハードディスクレコーダ500は、精度の高い予測画像を生成することができる。その結果として、ハードディスクレコーダ500は、例えば、チューナを介して受信されたビデオデータの符号化データや、記録再生部533のハードディスクから読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、モニタ560に表示させることができる。
また、ハードディスクレコーダ500は、エンコーダ551として上述した画像符号化装置を用いる。したがって、エンコーダ551は、上述した画像符号化装置の場合と同様に、より高い符号化効率を達成することができる。
したがって、ハードディスクレコーダ500は、例えば、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、ハードディスクレコーダ500は、ハードディスクの記憶領域をより効率よく使用することができる。
なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ500について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ500の場合と同様に、上述した画像符号化装置および画像復号装置を適用することができる。
[カメラの構成例]
図30は、画像復号装置および画像符号化装置を用いるカメラの主な構成例を示すブロック図である。
図30に示されるカメラ600は、被写体を撮像し、被写体の画像をLCD616に表示させたり、それを画像データとして、記録メディア633に記録したりする。
レンズブロック611は、光(すなわち、被写体の映像)を、CCD/CMOS612に入射させる。CCD/CMOS612は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部613に供給する。
カメラ信号処理部613は、CCD/CMOS612から供給された電気信号を、Y,Cr,Cbの色差信号に変換し、画像信号処理部614に供給する。画像信号処理部614は、コントローラ621の制御の下、カメラ信号処理部613から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ641で例えばMPEG方式により符号化したりする。画像信号処理部614は、画像信号を符号化して生成した符号化データを、デコーダ615に供給する。さらに、画像信号処理部614は、オンスクリーンディスプレイ(OSD)620において生成された表示用データを取得し、それをデコーダ615に供給する。
以上の処理において、カメラ信号処理部613は、バス617を介して接続されるDRAM(Dynamic Random Access Memory)618を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM618に保持させる。
デコーダ615は、画像信号処理部614から供給された符号化データを復号し、得られた画像データ(復号画像データ)をLCD616に供給する。また、デコーダ615は、画像信号処理部614から供給された表示用データをLCD616に供給する。LCD616は、デコーダ615から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
オンスクリーンディスプレイ620は、コントローラ621の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス617を介して画像信号処理部614に出力する。
コントローラ621は、ユーザが操作部622を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス617を介して、画像信号処理部614、DRAM618、外部インタフェース619、オンスクリーンディスプレイ620、およびメディアドライブ623等を制御する。FLASH ROM624には、コントローラ621が各種処理を実行する上で必要なプログラムやデータ等が格納される。
例えば、コントローラ621は、画像信号処理部614やデコーダ615に代わって、DRAM618に記憶されている画像データを符号化したり、DRAM618に記憶されている符号化データを復号したりすることができる。このとき、コントローラ621は、画像信号処理部614やデコーダ615の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部614やデコーダ615が対応していない方式により符号化・復号処理を行うようにしてもよい。
また、例えば、操作部622から画像印刷の開始が指示された場合、コントローラ621は、DRAM618から画像データを読み出し、それを、バス617を介して外部インタフェース619に接続されるプリンタ634に供給して印刷させる。
さらに、例えば、操作部622から画像記録が指示された場合、コントローラ621は、DRAM618から符号化データを読み出し、それを、バス617を介してメディアドライブ623に装着される記録メディア633に供給して記憶させる。
記録メディア633は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア633は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
また、メディアドライブ623と記録メディア633を一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
外部インタフェース619は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ634と接続される。また、外部インタフェース619には、必要に応じてドライブ631が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア632が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM624にインストールされる。
さらに、外部インタフェース619は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ621は、例えば、操作部622からの指示に従って、DRAM618から符号化データを読み出し、それを外部インタフェース619から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ621は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース619を介して取得し、それをDRAM618に保持させたり、画像信号処理部614に供給したりすることができる。
以上のようなカメラ600は、デコーダ615として上述した画像復号装置を用いる。したがって、デコーダ615は、上述した画像復号装置の場合と同様に、より高い符号化効率を達成することができる。
したがって、カメラ600は、精度の高い予測画像を生成することができる。その結果として、カメラ600は、例えば、CCD/CMOS612において生成された画像データや、DRAM618または記録メディア633から読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、LCD616に表示させることができる。
また、カメラ600は、エンコーダ641として上述した画像符号化装置を用いる。したがって、エンコーダ641は、上述した画像符号化装置の場合と同様に、より高い符号化効率を達成することができる。
したがって、カメラ600は、例えば、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、カメラ600は、DRAM618や記録メディア633の記憶領域をより効率よく使用することができる。
なお、コントローラ621が行なう復号処理に上述した画像復号装置の復号方法を適用するようにしてもよい。同様に、コントローラ621が行う符号化処理に上述した画像符号化装置の符号化方法を適用するようにしてもよい。
また、カメラ600が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
もちろん、上述した画像符号化装置並びに画像復号装置は、上述した装置以外の装置やシステムにも適用可能である。
なお、本技術は以下のような構成も取ることができる。
(1) 画像の動きの特徴に応じて、予測動きベクトル情報に対するコードナンバの割り当て方を制御するコードナンバ割当部と、
処理対象である当該領域の周辺の領域の動き情報である周辺動き情報を用いて、当該領域の予測動きベクトル情報を生成し、生成した前記予測動きベクトル情報に、前記コードナンバ割当部により決定された割り当て方に従って、前記コードナンバを割り当てる予測動きベクトル生成部と
を備える画像処理装置。
(2) 前記コードナンバ割当部は、前記予測動きベクトル情報に対するコードナンバの割り当て方を、予測処理単位の領域毎に制御する
前記(1)に記載の画像処理装置。
(3) 前記コードナンバ割当部は、当該領域が静止領域である場合、時間予測動きベクトル情報に対して小さいコードナンバが割り当てられるように割り当て方を制御する
前記(2)に記載の画像処理装置。
(4) 前記予測動きベクトル生成部は、当該領域が静止領域である場合、前記時間予測動きベクトル情報のみを生成し、前記時間予測動きベクトル情報に、前記コードナンバ割当部により決定されたコードナンバを割り当てる
前記(3)に記載の画像処理装置。
(5) 前記コードナンバ割当部は、当該領域が動領域である場合、空間予測動きベクトル情報に対して小さいコードナンバが割り当てられるように割り当て方を制御する
前記(2)乃至(4)のいずれかに記載の画像処理装置。
(6) 当該領域が静止領域であるか否かを判定する静止領域判定部をさらに備え、
前記コードナンバ割当部は、前記静止領域判定部の判定結果に従って、当該領域の予測動きベクトル情報に対するコードナンバの割り当て方を制御する
前記(2)乃至(5)のいずれかに記載の画像処理装置。
(7) 前記静止領域判定部は、当該領域のCo-Located領域の動き情報を用いて当該領域が静止領域であるか否かを判定する
前記(6)に記載の画像処理装置。
(8) 前記静止領域判定部は、当該領域のCo-Located領域の動き情報の水平成分および前記動き情報の垂直成分の各絶対値が所定の閾値以下であり、かつ、参照インデックスが0の場合、Ref_PicR_reorderingが適用される場合、若しくは、参照インデックスが直前のピクチャを意味するPOC値を持つ場合、当該領域が静止領域であると判定する
前記(7)に記載の画像処理装置。
(9) 前記コードナンバ割当部は、ユーザによる設定に応じて、前記予測動きベクトル情報に対するコードナンバの割り当て方を制御する
前記(1)乃至(8)のいずれかに記載の画像処理装置。
(10) 前記コードナンバ割当部は、符号化効率を上げるように、前記予測動きベクトル情報に対するコードナンバの割り当て方を制御する
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(11) 前記コードナンバ割当部は、主観画質を最適にするように、前記予測動きベクトル情報に対するコードナンバの割り当て方を制御する
前記(1)乃至(10)のいずれかに記載の画像処理装置。
(12) 前記コードナンバ割当部は、スライス毎に、前記予測動きベクトル情報に対するコードナンバの割り当て方を制御する
前記(1)に記載の画像処理装置。
(13) 前記コードナンバの割り当て方が変更可能な可変モードであることを示すフラグを生成するフラグ生成部をさらに備える
前記(1)乃至(12)のいずれかに記載の画像処理装置。
(14) 前記予測動きベクトル生成部は、予測モード毎に複数の予測動きベクトル情報を生成し、
前記予測モード毎に、前記予測動きベクトル生成部が生成した複数の予測動きベクトル情報の中から最適な予測動きベクトル情報を選択し、当該領域の動きベクトルとの差分である差分動きベクトルを生成する差分動きベクトル生成部と、
各予測モードの中から、最適な予測モードを判定するモード判定部と、
前記モード判定部により判定された予測モードの前記差分動きベクトル情報、および、前記予測モードの予測動きベクトル情報のコードナンバを伝送する伝送部と
をさらに備える前記(1)乃至(13)のいずれかに記載の画像処理装置。
(15) 前記モード判定部により判定された予測モードの前記差分動きベクトル情報、および、前記予測モードの予測動きベクトル情報のコードナンバを符号化する符号化部をさらに備え、
前記伝送部は、前記符号化部により符号化された前記差分動きベクトル情報、および、前記予測動きベクトル情報のコードナンバを伝送する
前記(14)に記載の画像処理装置。
(16) 画像処理装置の画像処理方法であって、
コードナンバ割当部が、画像の動きの特徴に応じて、予測動きベクトル情報に対するコードナンバの割り当て方を制御し、
予測動きベクトル生成部が、処理対象である当該領域の周辺の領域の動き情報である周辺動き情報を用いて、当該領域の予測動きベクトル情報を生成し、生成した前記予測動きベクトル情報に、決定された割り当て方に従って、前記コードナンバを割り当てる
画像処理方法。
(17) 画像の動きの特徴に応じて、予測動きベクトル情報に対するコードナンバの割り当て方を制御するコードナンバ割当部と、
処理対象である当該領域の予測動きベクトル情報のコードナンバを取得し、前記コードナンバ割当部により決定された割り当て方に従って、前記コードナンバから前記予測動きベクトル情報を再構築する予測動きベクトル再構築部と
を備える画像処理装置。
(18) 前記コードナンバ割当部は、前記予測動きベクトル情報に対するコードナンバの割り当て方を、予測処理単位の領域毎に制御する
前記(17)に記載の画像処理装置。
(19) 前記コードナンバ割当部は、当該領域が静止領域である場合、時間予測動きベクトル情報に対して小さいコードナンバが割り当てられるように割り当て方を制御する
前記(18)に記載の画像処理装置。
(20) 前記コードナンバ割当部は、当該領域が動領域である場合、空間予測動きベクトル情報に対して小さいコードナンバが割り当てられるように割り当て方を制御する
前記(18)または(19)に記載の画像処理装置。
(21) 当該領域が静止領域であるか否かを判定する静止領域判定部をさらに備え、
前記コードナンバ割当部は、前記静止領域判定部の判定結果に従って、当該領域の予測動きベクトル情報に対するコードナンバの割り当て方を制御する
前記(18)乃至(20)のいずれかに記載の画像処理装置。
(22) 前記静止領域判定部は、当該領域のCo-Located領域の動き情報を用いて当該領域が静止領域であるか否かを判定する
前記(21)に記載の画像処理装置。
(23) 前記静止領域判定部は、当該領域のCo-Located領域の動き情報の水平成分および前記動き情報の垂直成分の各絶対値が所定の閾値以下であり、かつ、参照インデックスが0の場合、Ref_PicR_reorderingが適用される場合、若しくは、参照インデックスが直前のピクチャを意味するPOC値を持つ場合、当該領域が静止領域であると判定する
前記(22)に記載の画像処理装置。
(24) 前記コードナンバ割当部は、ユーザによる設定に応じて、前記予測動きベクトル情報に対するコードナンバの割り当て方を制御する
前記(17)乃至(23)のいずれかに記載の画像処理装置。
(25) 前記コードナンバ割当部は、符号化効率を上げるように、前記予測動きベクトル情報に対するコードナンバの割り当て方を制御する
前記(17)乃至(24)のいずれかに記載の画像処理装置。
(26) 前記コードナンバ割当部は、主観画質を最適にするように、前記予測動きベクトル情報に対するコードナンバの割り当て方を制御する
前記(17)乃至(25)のいずれかに記載の画像処理装置。
(27) 前記コードナンバ割当部は、スライス毎に、前記予測動きベクトル情報に対するコードナンバの割り当て方を制御する
前記(17)に記載の画像処理装置。
(28) 前記コードナンバの割り当て方が変更可能な可変モードであることを示すフラグを取得するフラグ取得部をさらに備え、
前記コードナンバ割当部は、前記フラグ取得部により取得された前記フラグにより前記可変モードであることが示される場合、前記予測動きベクトル情報に対するコードナンバの割り当て方を制御する
前記(16)乃至(27)のいずれかに記載の画像処理装置。
(29) 画像処理装置の画像処理方法であって、
コードナンバ割当部が、画像の動きの特徴に応じて、予測動きベクトル情報に対するコードナンバの割り当て方を制御し、
予測動きベクトル再構築部が、処理対象である当該領域の予測動きベクトル情報のコードナンバを取得し、決定された割り当て方に従って、前記コードナンバから前記予測動きベクトル情報を再構築する
画像処理方法。