以下、図面に基づいて実施例について説明する。
[実施例1]
図8は、実施例1における画符号化装置100の構成の一例を示すブロック図である。図8に示すように、実施例1における画像符号化装置100は、予測誤差信号生成部101、直交変換部102、量子化部103、エントロピー符号化部104、逆量子化部105、逆直交変換部106、復号画像生成部107、デブロッキングフィルタ部108、ピクチャメモリ109、イントラ予測画像生成部110、インター予測画像生成部111、動きベクトル計算部112、符号化制御及びヘッダ生成部113及び予測画像選択部114を含む。各部についての概略を以下に説明する。
予測誤差信号生成部101は、入力された動画像データの符号化対象画像を16×16ピクセル(画素)のブロック(以降、マクロブロック(MB)ともいう)に分割されたマクロブロックデータ(以降、ブロックデータともいう)を取得する。実施例1では、マクロブロック分割について説明するが、図6に示すような分割単位でも実施可能である。
予測誤差信号生成部101は、そのマクロブロックデータと、予測画像選択部114から出力される予測画像ピクチャのマクロブロックデータとにより、予測誤差信号を生成する。予測誤差信号生成部101は、生成された予測誤差信号を直交変換部102に出力する。
直交変換部102は、入力された予測誤差信号を直交変換処理する。直交変換部102は、直交変換処理によって水平及び垂直方向の周波数成分に分離された信号を量子化部103に出力する。
量子化部103は、直交変換部102からの出力信号を量子化する。量子化部103は、量子化することによって出力信号の符号量を低減し、この出力信号をエントロピー符号化部104及び逆量子化部105に出力する。
エントロピー符号化部104は、量子化部103からの出力信号をエントロピー符号化して出力する。エントロピー符号化とは、シンボルの出現頻度に応じて可変長の符号を割り当てる方式をいう。
逆量子化部105は、量子化部103からの出力信号を逆量子化してから逆直交変換部106に出力する。逆直交変換部106は、逆量子化部105からの出力信号を逆直交変換処理してから復号画像生成部107に出力する。これら逆量子化部105及び逆直交変換部106によって復号化処理が行われることにより、符号化前の予測誤差信号と同程度の信号が得られる。
復号画像生成部107は、インター予測画像生成部111で動き補償された画像のブロックデータと、逆量子化部105、及び逆直交変換部106により復号処理された予測誤差信号とを加算する。復号画像生成部107は、加算して生成した復号画像のブロックデータを、デブロッキングフィルタ部108に出力する。
デブロッキングフィルタ部108は、復号画像生成部107から出力された復号画像に対し、ブロック歪を低減するためのフィルタをかけ、ピクチャメモリ109に出力する。
ピクチャメモリ109は、入力したブロックデータを新たな参照画像のデータとして記憶し、イントラ予測画像生成部110、インター予測画像生成部111及び動きベクトル計算部112に出力する。また、ピクチャメモリ109は、符号化された画像の各ブロックの動きベクトルや分割モードなどを記憶する。
イントラ予測画像生成部110は、符号化対象画像のすでに符号化された周辺画素から予測画像を生成する。
インター予測画像生成部111は、ピクチャメモリ109から取得した参照画像のデータを動きベクトル計算部112から提供される動きベクトルで動き補償する。これにより、動き補償された参照画像としてのブロックデータが生成される。
動きベクトル計算部112は、符号化対象画像におけるブロックデータと、ピクチャメモリ109から取得する符号化済み画像の参照画像のブロックデータを用いて、動きベクトルを求める。動きベクトルとは、ブロック単位で参照画像から符号化対象画像に最も類似している位置を探索するブロックマッチング技術を用いて求められるブロック単位の空間的なずれを示す値である。動きベクトル計算部112は、求めた動きベクトルをインター予測画像生成部111に出力する。
イントラ予測画像生成部110とインター予測画像生成部111から出力されたブロックデータは、予測画像選択部114に入力される。予測画像選択手段114は、どちらか一方の予測画像を選択する。選択されたブロックデータは、予測誤差信号生成部101に出力される。
また、符号化制御及びヘッダ生成部113について、符号化の全体制御とヘッダ生成を行う。符号化制御及びヘッダ生成部113は、イントラ予測画像生成部110に対して、スライス分割有無の通知、デブロッキングフィルタ部108に対して、デブロッキングフィルタ有無の通知、動きベクトル計算部112に対して参照画像の制限通知などを行う。符号化制御及びヘッダ生成部113は、その制御結果を用いて、例えばH.264のヘッダ情報を生成する。生成されたヘッダ情報は、エントロピー符号化部104に渡され、画像データ、動きベクトルデータとともにストリームとして出力される。
次に、分割モードの予測に関する機能について説明する。図9は、実施例1における分割モードの予測に関する機能の一例を示すブロック図である。図5に示すように、画像符号化装置100は、格納手段201、第1取得手段202、選択手段203、第2取得手段204、予測手段205、決定手段206、符号化手段207を含む。
格納手段201は、ピクチャメモリ109に対応し、第1取得手段202、選択手段203、第2取得手段204、予測手段205、決定手段206は、例えば動きベクトル計算部112に対応し、符号化手段207は、エントロピー符号化部104に対応する。
格納手段201は、符号化された画像のローカルデコードされた復号画像やブロック単位の動きベクトル、ブロックタイプ、分割モードなどの符号化情報を格納する。過去の符号化情報は次に符号化する符号化対象ブロックで参照することが可能である。
第1取得手段202は、符号化対象画像に属するブロックの符号化済みの符号化情報を格納手段201から取得する。ブロック符号化は一般に符号化対象画像の左上からラスタスキャン順に行われるため、符号化対象画像における符号化済みの符号化情報は符号化対象ブロックと同ブロックラインの左側と上側の全ブロックとなる。第1取得手段202は、予め決められた方法で符号化対象画像のブロック位置を指定し、格納手段201から符号化対象画像に属する符号化済みの分割モードや動きベクトルなどの符号化情報を取得する。予め決められた方法は、例えば、符号化対象ブロックの上側ブロック、左側ブロック、左上側ブロック、右上側ブロックのうち、どのブロックかを決めておく方法である。
選択手段203は、格納手段201に格納されている符号化対象画像以外の符号化済み画像の分割モードを得るために、複数の符号化済み画像から予め決められた方法で符号化済み画像を選択する。格納手段201は、複数の符号化済み画像の復号画像を固有のインデックスを付け、リストとして格納しておいてもよい。選択手段203は、符号化済み画像インデックスを用いて選択結果を示してもよい。
第2取得手段204は、選択手段203で選択された符号化済み画像に属するブロックの符号化情報を格納手段201から取得する。第2取得手段204は、予め決められた方法でブロック位置を指定し、選択手段203で選択されたインデックスをもつ符号化済み画像に属するブロックの符号化情報を格納手段201から取得する。
予測手段205は、第1取得手段202と第2取得手段204から得られた符号化情報に基づいて符号化対象ブロックの分割モードの予測値である予測モードを算出する。
図10は、実施例1における予測手段205の機能の一例を示すブロック図である。図10に示すように、予測手段205は、第1分割モード予測手段251、第2分割モード予測手段252を含む。
第1分割モード予測手段251は、第1取得手段202から取得した符号化情報を用いて分割モードの候補モードを算出する。第2分割モード予測手段252は、第2取得手段204から取得した符号化情報を用いて分割モードの候補モードを算出する。予測手段205は、これらの候補モードから所定の基準に従って予測モードを決定する。
図9に戻り、決定手段206は、符号化対象ブロックで用いる分割モードを決定する。決定手段206は、例えば、符号化対象ブロックと複数の参照画像におけるブロックマッチングを行い、最も類似した領域を参照できるような分割モードを決定する。
符号化手段207は、予測手段205から取得した予測モードと決定手段206で決定された分割モードとに基づき、分割モードを表す分割モード情報を生成する。生成された分割モード情報は、ビットストリームに含めて送信される。
これにより、第1取得手段202及び第2取得手段204を用いることで、空間方向の符号化済みブロックの分割モード、時間的方向の符号化済みブロックの分割モードを取得できる。実施例1における画像符号化装置100は、これらの分割モードを用いて予測モードを予測することで、分割モードの予測精度を向上させ、符号化効率を上げることが可能になる。
[実施例2]
図11は、実施例2における画像復号装置300の構成の一例を示すブロック図である。実施例2における画像復号装置300は、実施例1における画像符号化装置100により符号化された符号化データを復号する。
図11に示すように、画像復号装置300は、エントロピー復号部301、逆量子化部302、逆直交変換部303、イントラ予測画像生成部304、復号情報記憶部305、インター予測画像生成部306、予測画像選択部307、復号画像生成部308、デブロッキングフィルタ部309、ピクチャメモリ310を含む。各部についての概略を以下に説明する。
エントロピー復号部301は、ビットストリームが入力されると、画像符号化装置100のエントロピー符号化に対応するエントロピー復号を行なう。エントロピー復号部301により復号された予測誤差信号などは逆量子化部302に出力される。また、インター予測されている場合、復号された動きベクトルなどは復号情報記憶部305に出力され、イントラ予測の場合、イントラ予測画像生成部304にその旨通知する。また、エントロピー復号部301は、復号対象画像がインター予測されているか、イントラ予測されているかを予測画像選択部307に通知する。
逆量子化部302は、エントロピー復号部301からの出力信号に対して逆量子化処理を行う。逆量子化された出力信号は逆直交変換部303に出力される。
逆直交変換部303は、逆量子化部302からの出力信号に対して逆直交変換処理を行い、残差信号を生成する。残差信号は復号画像生成部308に出力される。
イントラ予測画像生成部304は、ピクチャメモリ310から取得する復号対象画像のすでに復号化された周辺画素から予測画像を生成する。
復号情報記憶部305は、復号された動きベクトルや分割モードなどの復号情報を記憶する。
インター予測画像生成部306は、ピクチャメモリ310から取得した参照画像のデータを復号情報記憶部305から取得する動きベクトルや分割モードを用いて動き補償する。これにより、動き補償された参照画像としてのブロックデータが生成される。
予測画像選択部307は、イントラ予測画像、又はインター予測画像どちらか一方の予測画像を選択する。選択されたブロックデータは、復号画像生成部308に出力される。
復号画像生成部308は、予測画像選択部307から出力される予測画像と、逆直交変換部303から出力される残差信号とを加算し、復号画像を生成する。生成された復号画像はデブロッキングフィルタ部309に出力される。
デブロッキングフィルタ部309は、復号画像生成部308から出力された復号画像に対し、ブロック歪を低減するためのフィルタをかけ、ピクチャメモリ310に出力する。フィルタ後の復号画像は表示装置に出力されてもよい。ピクチャメモリ310は、参照画像となる復号画像などを記憶する。なお、復号情報記憶手段305とピクチャメモリ310は、分けた構成にしているが、同じ記憶部であってもよい。
次に、分割モードの予測に関する機能について説明する。図12は、実施例2における分割モードの予測に関する機能の一例を示すブロック図である。図12に示す例では、画像復号装置300は、格納手段401、第1取得手段402、選択手段403、第2取得手段404、予測手段405、復号手段406、決定手段407を含む。
図12に示す画像復号装置300は、画像符号化装置100から出力されるビットストリームを復号し、復号対象ブロックの分割モードを算出する。また、画像復号装置300の各手段は、それぞれ画像符号化装置100における、格納手段201、第1取得手段202、選択手段203、第2取得手段204、予測手段205、符号化手段207、決定手段206にそれぞれ対応する。
また、格納手段401は、例えば復号情報記憶部305及びピクチャメモリ310に対応し、第1取得手段402、選択手段403、第2取得手段404、予測手段405は、例えばインター予測画像生成部306に対応し、復号手段406、決定手段407は、例えばエントロピー復号部301に対応する。
格納手段401は、過去に復号済みの画像と、ブロック単位の動きベクトル、ブロックタイプ、分割モードなどの復号情報とを格納する。
第1取得手段402は、復号対象画像に属する復号済みの復号情報を格納手段401から取得する。ブロック復号は一般に復号対象画像の左上からラスタスキャン順に行われるため、復号対象画像における復号済みの復号情報は復号対象ブロックと同ブロックラインの左側と上側の全ブロックとなる。
選択手段403は、格納手段401に格納されている復号対象画像以外の複数の復号済み画像から復号情報を得るために、所定の方法で復号済み画像を選択する。
第2取得手段404は、選択手段403で選択された復号済み画像に属するブロックの復号情報を格納手段401から取得する。
予測手段405は、第1取得手段402と第2取得手段404とから得られた復号情報に基づいて、復号対象ブロックの分割モードの予測値である予測モードを算出する。
復号手段406は、ビットストリームを復号し、分割モードを表す分割モード情報を取得する。
決定手段407は、予測手段405から取得した予測モードと、復号手段406から取得した分割モード情報とから分割モードを決定する。決定した分割モードは、格納手段401に出力され、格納される。
これにより、第1取得手段402及び第2取得手段404を用いることで、空間方向の復号済みブロックの分割モード、時間方向の復号済みブロックの分割モードを取得できる。実施例2における画像復号装置300は、これらの分割モードを用いることで、分割モードの予測精度を向上させた符号化に対応し、復号効率を上げることが可能になる。
[実施例3]
次に、実施例3における画像符号化装置について説明する。実施例3における画像符号化装置の構成は、図8に示した構成と同様であり、実施例3における画像符号化装置の分割モードの予測に関する機能は、図9、10における機能と同じ符号を用いて説明する。
また、実施例3では、HEVC提案手法に対する適用例を示す。この例では、従来のマクロブロックに相当するCoding unit(CU)、CUをさらに予測単位のパーティションに分割したPrediction unit(PU)、そしてCUにおける直交変換単位のパーティションに分割したTransform unit (TU)として細分化されている。
まず、CUのブロック分割構造を定められた順番に走査していく。走査順は、ブロックをQuad treeで分割していくものや、ラスタスキャン順が考えられる。図13は、Quad treeの階層構造を説明する図である。図13に示すように、Quad treeを例にすると、CUは階層化されており、最下層がPU、TUにあたる。CUの符号化では、符号化対象CU内が分割されていれば、4分割の左上ブロック1から右下ブロック4に向けて順に分割の階層を決定する。すなわち、ブロック1の最下層を決定してから、ブロック2、ブロック3、ブロック4の階層を決定する。
よって、符号化対象の分割ブロックが参照できる符号化済みの領域は、符号化済みの他のCUと符号化対象CUの中の符号化済み分割ブロックになる。ある分割ブロックを符号化するときに参照する符号化済み情報については、同じ階層以下の符号化済み情報を用いることが望ましい。CU、TUの符号化時の分割モードは、分割可否フラグ(split_coding_unit_flag, split_transform_unit_flag)である。例えば、分割可否フラグは、分割されていれば「1」、分割されていなければ「0」である。
次に、実施例3で用いるデータ構造について説明する。図14は、実施例3におけるGOP構成(IBBP構造)の一例を示した図である。以下、このIBBP構造を例として説明する。I、P、Bは、ピクチャタイプを表し、ピクチャタイプの隣の番号は、時間順を表す。また、符号化順は、I0、P3、B1、B2、P6、B4、B5、P9、B7、B8となる。図14に示す矢印は、前方向または後方向ベクトルを表す。
実施例3では、図14に示すB4ピクチャを符号化する場合について説明する。以下の処理は、その他のPピクチャ、Bピクチャにも同様に適用できる。B4ピクチャを符号化する際に、P3ピクチャ、P6ピクチャは既に符号化され、符号化済み画像としてB4ピクチャはP3ピクチャ、P6ピクチャを参照できるようになっている。
格納手段201は、符号化済み画像の符号化情報を格納する。例えば、P3ピクチャ、P6ピクチャに関する動きベクトル、ブロックタイプ、分割モードなどの符号化情報を格納する。
第1取得手段202は、符号化対象画像に属する符号化済みブロックの分割モードを格納手段201から取得する。図15は、符号化対象ブロックと周辺ブロックとの関係の一例を示す図である。第1取得手段202は、例えば、図15に示すように、符号化対象ブロックCB3の周辺ブロックである左ブロックA、上ブロックBの分割モードA、Bを取得する。ブロックA、Bの分割モードを分割モードA、Bとする。さらに、第1取得手段202は、符号化対象ブロックCB3の左上ブロックや右上ブロックの分割モード情報を取得してもよい。また、H.264のように分割モードがブロックタイプとして定義されている符号化方式では、第1取得手段202は、ブロックタイプを取得してもよい。
選択手段203は、所定の符号化済み画像を選択する。ここで、B4ピクチャは、P3ピクチャ、P6ピクチャを参照することができる。選択手段203は、例えば、符号化対象画像と符号化済み画像との間隔が最も小さい符号化済み画像を選択する方が望ましい。これは、符号化対象画像と符号化済み画像との時間間隔が近いほど予測の信頼性が高いからである。
図16は、符号化対象画像とその参照画像との間隔を説明する図である。図16に示すように、B4ピクチャとP6ピクチャの間は2ピクチャ間隔であり、B4ピクチャとP3ピクチャの間は1ピクチャ間隔である。この場合、選択手段203により、ピクチャ間隔が小さいP3ピクチャが選択される。
第2取得手段204は、選択手段203で選択された符号化済み画像に属するブロックの符号化情報を格納手段201から取得する。第2取得手段204は、選択された符号化済み画像内のどのブロックの符号化情報を取得するかを予め決めておくとよい。
図17は、第2取得手段204により取得されるブロックを説明する図である。第2取得手段204は、例えば、図17に示すように、P3ピクチャ内で、符号化対象ブロックCB3と同一位置にあるブロックColB3(CollocatedブロックX)の分割モードXを取得する。さらに、第1取得手段204は、第1取得手段202で分割モードを取得したブロックと同一位置にあるブロック、すなわちCollocatedブロックColB3の左ブロックA'、上ブロックB'の分割モードA'、B'を格納手段201から取得する。
予測手段205は、第1取得手段202と第2取得手段204とから取得した符号化情報に基づいて符号化対象ブロックの分割モードの予測値である予測モードを算出する。図10で説明したように、予測手段205は、第1分割モード予測手段251と第2分割モード予測手段252を有する。
第1分割モード予測手段251は、第1取得手段202から取得したB4ピクチャ内の分割モードAを候補モードA、分割モードBを候補モードBとする。
第2分割モード予測手段252は、第2取得手段204から取得した分割モードXを候補モードXとする。第2分割モード予測手段252は、分割モードA'を候補モードA'、分割モードB'を候補モードB'とする。
予測手段205は、第1分割モード予測手段251と第2分割モード予測手段252とから取得した候補モードに基づいて、符号化対象ブロックの分割モードの予測値である予測モードを算出する。例えば、予測手段205は、第1取得手段202と第2取得手段204で取得した同一位置の分割モードを比較する。予測手段205は、第1分割モード予測手段251から取得した候補モードAと第2分割モード予測手段252から取得した候補モードA'とが一致するか比較する。また、予測手段205は、第1分割モード予測手段251から取得した候補モードBと第2分割モード予測手段252から取得した候補モードB'とが一致するか比較する。この比較について図18及び図19を用いて説明する。
図18は、予測手段205による比較(その1)を説明する図である。図18に示すように、予測手段205は、比較結果がどちらも一致した場合、第2分割モード予測手段252で取得した候補モードXを予測モードに設定する。これは、周辺のブロックの分割モードが一致すれば、符号化対象ブロックCB3とCollocatedブロックの分割モードXが一致する可能性が高いと言えるからである。
図19は、予測手段205による比較(その2)を説明する図である。図19に示すように、予測手段205は、比較結果がどちらか異なる場合、候補モードA、B、A'、B'、Xの中で最も多い分割モードを予測モードとする。これは、必ずしも符号化対象ブロックCB3とCollocatedブロックの分割モードXが一致するとは言えないからである。予測手段205は、例えば、分割ありの分割モードが多ければ、分割ありを予測モードとする。
決定手段206は、符号化対象ブロックと複数の参照画像におけるブロックマッチングを行い、最も類似した領域を選択できるような分割モードに決定する。ブロックマッチングの評価値は、画素差分絶対値和を用いてもよく、画素差分二乗和でもよい。
符号化手段207は、予測手段205により予測された予測モードと決定手段206で決定された分割モードとが一致するか否かのフラグを算出する。符号化手段207は、例えば、一致する場合、不一致フラグを「0」に設定し、不一致である場合、不一致フラグを「1」に設定する。符号化手段207は、この不一致フラグを算術符号化するなどしてビットストリームに含める。
図20は、不一致フラグの一例を示す図である。図20(A)は、符号化対象CUの予測モードの分割形状を示す。図20(B)は、符号化対象CUの実際の分割形状と不一致フラグを示す。符号化手段207は、例えば、図20に示すように符号化対象CUのブロック分割が予測モードと同様であるなら不一致フラグを「0」、異なる分割構造(分割形状)であるなら「1」を設定する。
図20(B)に示すCU1は、予測モードでは分割ありであったが(図20(A)参照)、実際は分割なしであったので、不一致フラグは「1」が設定されている。また、図20(B)に示すCU2は、予測モードでは分割なしであったが(図20(A)参照)、実際は分割ありであったので、不一致フラグは「1」が設定されている。
符号化構造には時間的な相関があるため、不一致フラグの通知ビットは予測が当れば確率的に「0」に偏る。確率が偏ると、算術符号化により符号量を1ビット以下に抑えることができる。もし、符号化構造が異なるならば、その階層以降は、通常の符号化方法を適用する。Quad treeブロック分割の場合は、ブロック分割しない場合は「0」、さらにブロック分割する場合は「1」を通知する。
これにより、空間方向及び時間方向を用いて予測した予測モードが実際の分割モードと一致すれば、符号量を減らすことが可能になる。
次に、実施例3における画像符号化装置の動作について説明する。図21は、実施例3における分割モード符号化処理の一例を示すフローチャートである。
図21に示すステップS101で、格納手段201は、符号化済み画像のブロック単位の動きベクトル、ブロックタイプ、分割モードなどの符号化情報を格納する。
ステップS102、S103で、第1取得手段202は、符号化対象画像に属する符号化済みブロックの符号化情報に含まれる分割モードを格納手段201から取得する。第1取得手段202は、図15に示す例では、符号化対象ブロックに隣接する左ブロックA、上ブロックBの分割モードA、Bを取得する。
ステップS104で、選択手段203は、符号化対象画像の参照画像の中で、符号化対象画像との時間間隔が小さい符号化済み画像を選択する。
ステップS105で、第2取得手段204は、選択手段203で選択された符号化済み画像(選択画像)のCollocatedブロックX、その左ブロックA'、上ブロックB'に属する分割モードX、A'、B'を取得する。
ステップS106で、第1分割モード予測手段251は、分割モードA、Bを候補モードA、Bとし、第2分割モード予測手段252は、分割モードX、A'、B'を候補モードX、A'、B'とする。
ステップS107で、予測手段205は、候補モードAとA'、候補モードBとB'が一致しているか判定する。一致していれば(ステップS107−YES)ステップS108に進み、どちらかが一致していなければ(ステップS107−NO)ステップS109に進む。
ステップS108で、予測手段205は、候補モードXを予測モードに設定する。ステップS109で、予測手段205は、候補モードA、B、X、A'、B'の中で、分割されている方が多ければ分割ありを予測モードに設定し、分割されていない方が多ければ分割なしを予測モードに設定する。
ステップS110で、決定手段206は、符号化対象ブロックの分割モードをブロックマッチングにより決定する。
ステップS111で、符号化手段207は、予測モードと分割モードとが一致するか否かを判定する。一致すれば(ステップS111−YES)ステップS112に進み、一致しなければ(ステップS111−NO)ステップS113に進む。
ステップS112で、符号化手段207は、例えば、分割モード情報としての不一致フラグを「0」に設定する。ステップS113で、符号化手段207は、例えば、分割モード情報としての不一致フラグを「1」に設定する。
以上、実施例3によれば、空間的に近い符号化済みブロックの分割モード、時間的に近い符号化対象ブロックと同一位置及び周辺の符号化済みブロックの分割モードを取得することができる。これにより、符号化対象ブロックの分割モードの予測の精度を向上させることができる。これは、符号化対象ブロックと空間的に近いブロックの分割モードが時間方向において同じであれば、時間方向で同一位置にあるブロックの分割モードと符号化対象ブロックの分割モードとが同じである可能性が高いという考えに基づく。よって、分割モードの予測精度が向上すれば、不一致フラグの値に偏りを持たせることができるので、符号化効率を上げることが可能になる。
[実施例4]
次に、実施例4における画像復号装置について説明する。実施例4における画像復号装置の構成は、図11に示した構成と同様であり、実施例4における画像復号装置の予測に関する機能は、図12に示す機能と同じ符号を用いて説明する。
また、実施例4における画像復号装置は、実施例3における画像符号化装置で符号化されたビットストリームを復号する。
格納手段401は、過去に復号済みの画像と、ブロック単位の動きベクトル、ブロックタイプ、分割モードなどの復号情報とを格納する。
第1取得手段402は、復号対象画像に属する復号済みブロックの復号情報に含まれる分割モードを格納手段401から取得する。ここでは、同じ画面内の、復号対象ブロックの右ブロックAの分割モードA、復号対象ブロックの上ブロックBの分割モードBが取得される。
選択手段403は、格納手段401に格納されている復号対象画像以外の複数の復号済み画像の中から所定の復号済み画像を選択する。例えば、選択手段403は、復号対象画像と参照画像(復号済み画像)との間隔が最も小さい参照画像を選択する。
第2取得手段404は、選択手段403で選択された復号済み画像のCollocatedブロックと、このCollocatedブロックの左ブロックA、上ブロックBの復号情報を格納手段401から取得し、分割モードX、A'、B'とする。
予測手段405は、第1取得手段402から取得した分割モードA、Bと第2取得手段404から取得した分割モードX、A'、B'とに基づいて復号対象ブロックの分割モードの予測値である予測モードを算出する。
例えば、予測手段405は、候補モードAと候補モードA'とが一致するか比較し、候補モードBと候補モードB'とが一致するか比較する。予測手段405は、比較結果が一致すれば分割モードXを予測モードに設定する。予測手段405は、比較結果が一致しなければ分割モードA、B、X、A'、B'の中で、分割のあり無しについて多数決で決める。
復号手段406は、ビットストリームを復号し、分割モードを表す分割モード情報を取得する。この場合、分割モード情報として、不一致フラグが取得される。例えば、不一致フラグは、一致すれば「0」、不一致であれば「1」が設定されるとする。
決定手段407は、分割モード情報の不一致フラグが「0」であれば、予測手段405から取得した予測モードを分割モードに決定し、不一致フラグが「1」であれば、予測モード以外の分割モードに決定する。決定した分割モードは、格納手段401に出力され、格納される。
これにより、実施例3で説明した画像符号化装置で生成されたビットストリームを復号することができる。
次に、実施例4における画像復号装置の動作について説明する。図22は、実施例4における分割モード復号処理の一例を示すフローチャートである。
図22に示すステップS201で、格納手段401は、復号済み画像のブロック単位の動きベクトル、ブロックタイプ、分割モードなどの復号情報を格納する。
ステップS202、S203で、第1取得手段402は、復号対象画像に属する復号済みブロックの復号情報に含まれる分割モードを取得する。第1取得手段402は、図15に示す例では、復号対象ブロックに隣接する左ブロックA、上ブロックBの分割モードA、Bを取得する。
ステップS204で、選択手段403は、復号対象画像の参照画像の中で、復号対象画像との時間間隔が小さい復号済み画像を選択する。
ステップS205で、第2取得手段404は、選択手段403で選択された復号済み画像のCollocatedブロックX、その左ブロックA'、上ブロックB'に属する分割モードX、A'、B'を取得する。
ステップS206で、予測手段405は、分割モードA、Bを候補モードA、Bとし、分割モードX、A'、B'を候補モードX、A'、B'とする。
ステップS207で、予測手段405は、候補モードAとA'、候補モードBとB'が一致しているかを判定する。一致していれば(ステップS207−YES)ステップS208に進み、どちらかが一致していなければ(ステップS207−NO)ステップS209に進む。
ステップS208で、予測手段405は、候補モードXを予測モードに設定する。ステップS209で、予測手段405は、候補モードA、B、X、A'、B'の中で、分割されている方が多ければ分割ありを予測モードに設定し、分割されていない方が多ければ分割なしを予測モードに設定する。
ステップS210で、復号手段406は、ビットストリーム(符号化データ)を復号し、分割モード情報を取得する。
ステップS211で、決定手段407は、分割モード情報が示す不一致フラグが「0」であるかを判定する。不一致フラグが「0」であれば(ステップS211−YES)ステップS212に進み、不一致フラグが「1」であれば(ステップS211−NO)ステップS213に進む。
ステップS212で、決定手段407は、予測モードが示す分割モードに決定する。ステップS213で、決定手段407は、予測モード以外の分割モードに決定する。
以上、実施例4によれば、空間的に近い符号化済みブロックの分割モード、時間的に近い符号化対象ブロックと同一位置及び周辺の符号化済みブロックの復号ブロックの分割モードを取得することができる。これにより、分割モードの予測精度を上げた符号化に対応して、復号対象ブロックの分割モードを決定することができる。
[実施例5]
次に、実施例5における画像符号化装置について説明する。H.264の分割モード符号化では、ブロックタイプとしてさまざまな形状の分割モードを符号化している。HEVC提案手法の予測単位のパーティションの分割モードであるPrediction unit(PU)はPUについてはブロックタイプを符号化するため、H.264のマクロブロックタイプと同様に考えてよい。そこで、実施例5では、ブロックタイプに対する適用例を示す。
図23は、実施例5におけるGOP構成(B階層構造)を示した図である。以下、このB階層構造を例として説明する。I、P、Bはピクチャタイプを表し、ピクチャタイプの隣の番号は時間順を表す。符号化順は、I0、P8、B4、B2、B6、B1、B3、B5、B7となる。図23に示す矢印は、前方向または後方向ベクトルを表す。
実施例5における画像符号化装置の構成は、図4に示した構成と同様であるため、同じ符号を用いて説明する。実施例5における分割モードの予測に関する機能は、図24に示す。図24は、実施例5における分割モードの予測に関する機能の一例を示すブロック図である。
実施例5における画像符号化装置は、格納手段201、選択手段501、第1取得手段502、第2取得手段503、予測手段504、決定手段206、符号化手段505を含む。図24に示す機能で、図9に示す機能と同様のものは同じ符号を付す。
実施例5では、図23に示すB5ピクチャを符号化対象画像として、分割モードの予測の仕方を説明する。なお、他のP、Bピクチャについても実施例5は同様に適用可能である。格納手段201は、実施例3と同様である。
選択手段501は、例えば、符号化対象画像と符号化済み画像との間隔が最も小さい符号化済み画像を選択する。これは、符号化対象画像と符号化済み画像との時間間隔が近いほど予測の信頼性が高いからである。図23に示すように、B5ピクチャとB4ピクチャ、B5ピクチャとB6ピクチャの時間的な間隔は1ピクチャであり同一である。この中で1ピクチャを選択する場合、選択手段501は、符号化済み画像と符号化済み画像の参照画像との間隔が最も小さい符号化済み画像を選択する。これは、符号化済み画像と符号化済み画像の参照画像との間隔が近いほど予測の信頼性が高いからである。
図25は、ピクチャ間隔の一例を示す図である。図25に示すように、B4ピクチャは、P8ピクチャを参照しており、B6ピクチャはB4ピクチャを参照している。また、B5ピクチャはB4ピクチャとP8ピクチャ、B4ピクチャとB6ピクチャの間に存在する。すなわち、符号化済み画像と符号化済み画像の参照画像の間に符号化対象画像が存在する。B4ピクチャとP8ピクチャの間は4ピクチャ間隔であり、B4ピクチャとB6ピクチャの間は2ピクチャ間隔であるため、B6ピクチャが選択手段501により選択される。選択手段501は、選択したピクチャの情報を第1取得手段502、第2取得手段503に通知する。
第1取得手段502は、符号化対象画像に属する符号化済みブロックの符号化情報を格納手段201から取得する。図26は、第1取得手段502により取得される符号化情報の一例を示す図である。第1取得手段502は、例えば、図26に示すように、符号化対象ブロックCB4の左ブロックA、上ブロックBのB6ピクチャに対する動きベクトルA、Bを取得する。ここで、ブロックAの動きベクトルを動きベクトルA、ブロックBの動きベクトルを動きベクトルBと呼ぶ。第1取得手段502は、選択手段501から通知されたピクチャに対する動きベクトルを取得する。この場合、B6ピクチャに対する動きベクトルが取得される。
第1取得手段502は、B6ピクチャに対する動きベクトルがない場合、同方向に存在するP8ピクチャへの動きベクトルが存在する場合は、適切に時間方向スケーリングを行い、B6ピクチャに対する動きベクトルを算出する。この場合、B6ピクチャに対する動きベクトルは、P8ピクチャへの動きベクトルの1/3である。第1取得手段502は、取得した動きベクトルを第2取得手段503に出力する。なお、第1取得手段502は、動きベクトルを取得するブロックがイントラ符号化されていた場合は、動きベクトルを無効とする。
第2取得手段503は、選択手段501で選択された符号化済み画像に属するブロックの符号化情報を格納手段201から取得する。第2取得手段503は、第1取得手段502から取得した複数の動きベクトルに基づいて、例えば中間値や平均値のベクトルを算出する。これを仮動きベクトルとする。ここでは、仮動きベクトルの例として平均値のベクトルを算出するとする。また、第1取得手段501から得られた動きベクトルが全て無効である場合はゼロベクトルとする。
図27は、仮動きベクトルの一例を示す図である。図27に示すように、第2取得手段503は、以下の式で仮動きベクトルを求める。
仮動きベクトル=(動きベクトルA+動きベクトルB)/2
これにより、第2取得手段503は、算出された平均ベクトル(pvx, pvy)を符号化対象ブロックの推測ベクトル(仮動きベクトル)PVとして、B6ピクチャへの符号化対象ブロックに相当する移動先座標を推測する。符号化対象ブロックCB4の座標が(x,y)とすると、移動先座標は(x+pvx, y+pvy)である。第2取得手段503は、その移動先座標を含むB6ピクチャのブロックBl1(ブロックX)の分割モードXを取得する。なお、移動先座標が画面外に出る場合は、ブロックXの分割モードを取得することができない。そこで、この場合は、選択手段501、第1取得手段502、第2取得手段503、予測手段504は、実施例3で説明した処理を行うようにすればよい。また、ブロックXがイントラ予測で符号化されている場合は、分割モードXを無効にする。
予測手段504は、第2取得手段503から取得した符号化情報に基づいて符号化対象ブロックの分割モードの予測値である予測モードを算出する。例えば、予測手段504は、第2取得手段503から取得した分割モードXをそのまま予測モードXに設定する。決定手段206については、例えば実施例3で示した動作と同様でもよい。
符号化手段505は、H.264の分割モード符号化方法を例にして説明する。図28は、符号化テーブルの一例を示す図である。符号化手段505は、図28に示すように分割モードと、参照方向を示す参照モード(前方向、後方向、双方向)とをブロックタイプとして符号化する。ここで、符号が小さい方が符号量も小さくなるとする。H.264では、図28(A)に示すように、予め決められた符号が分割タイプを基準に順番に割り当てられており効率的ではない。実施例5では、符号化手段505は、分割モードの予測モードを基準に符号化テーブルを変更する。例えば、符号化手段505は、予測モードXを含むブロックの符号量を小さくするように符号化テーブルを適応的に変更する。
例えば、予測モードが8x8分割であった場合、符号化手段505は、図28(B)に示すように8x8分割を含むマクロブロックタイプの順位を上げる。また、符号化手段505は、分割しているブロック(例えば16x8,8x16)を分割していないブロック(16x16)より順位を上げる。予測モードXがイントラ予測で符号化されており無効である場合は、符号化テーブルの変更を行わない。
これにより、予測モードが実際の分割モードと一致すれば、値が小さい符号で符号化できるので、ブロックタイプに係る符号量を削減することが可能になる。
次に、実施例5における画像符号化装置の動作について説明する。図29は、実施例5における分割モードの符号化処理の一例を示すフローチャートである。図29に示すステップS301で、格納手段201は、符号化済み画像のブロック単位の動きベクトル、ブロックタイプ、分割モードなどの符号化情報を格納する。
ステップS302、S303で、第1取得手段502は、符号化対象画像に属する符号化済みブロックの符号化情報に含まれる動きベクトルを取得する。第1取得手段502は、図26に示す例では、符号化対象ブロックに隣接する左ブロックA、上ブロックBの動きベクトルA、Bを取得する。
ステップS304で、選択手段501は、符号化対象画像の参照画像の中で、符号化対象画像との時間間隔が小さい符号化済み画像(選択画像)を選択する。
ステップS305で、選択手段501は、選択画像が1つであるか否かを判定する。選択画像が1つであれば(ステップS305−YES)ステップS307に進み、選択画像が複数あれば(ステップS305−NO)ステップS306に進む。
ステップS306で、選択手段501は、選択画像とその参照画像との時間間隔が最小となる符号化済み画像を選択する。
ステップS307で、第2取得手段503は、第1取得手段502から取得した動きベクトルA、Bが、選択手段501により選択された選択画像もしくは符号化対象画像方向の参照画像を指し示すか判定する。動きベクトルA、Bがこれらの画像を指し示さなければ動きベクトルは無効であるとする。よって、動きベクトルA、Bの両方が無効であれば(ステップS307−YES)ステップS308に進み、いずれか一方が有効であれば(ステップS307−NO)ステップS309に進む。
ステップS308で、第2取得手段503は、動きベクトルA、Bをゼロベクトルとする。
ステップS309で、第2取得手段503は、動きベクトルA、Bの平均ベクトルPVを計算する。第2取得手段503は、有効な動きベクトルが一つしかなければ、その動きベクトルを平均し推測ベクトルPVとする。
ステップS310で、第2取得手段503は、推測ベクトルPVを用いて、符号化対象ブロックの選択画像への移動先座標を計算する。
ステップS311で、第2取得手段503は、移動先座標を含むブロックの分割モードXを取得する。
ステップS312で、予測手段504は、第2取得手段503により取得した分割モードXを予測モードに設定する。
ステップS313で、符号化手段505は、予測モードに応じてVLC(可変長符号化)テーブルの符号量の割り当てを変更する。例えば、符号化手段505は、予測モードの分割形状を値が小さい符号になるようにVLCテーブルを変更する。
ステップS314で、決定手段206は、符号化対象ブロックの分割モードをブロックマッチングにより決定する。
ステップS315で、符号化手段505は、決定手段206により決定された分割モードをVLCテーブルに応じて符号に変換する。この符号を分割モード情報とする。分割モード情報は、ビットストリームに含まれる。
なお、ステップS310の後に、第2取得手段503は、移動先座標が画面内にあるか否かを判定してもよい。画面外にあれば、図21に示すステップS103以降の処理を行うことで、分割モードの予測モードを設定することもできる。また、簡略化して、第2取得手段503は、移動先座標が画面外にあると判定すれば、分割モードXを、分割を表す分割モードに設定してもよい。
以上、実施例5によれば、符号化対象ブロックと類似するブロックを時間方向で見つけることにより符号化効率を上げることができる。これは、時間方向において、符号化対象ブロックと類似するブロックの分割モードは、符号化対象ブロックの分割モードと同じである可能性が高いという考えに基づく。よって、分割モードの予測精度が向上すれば、VLCテーブルにより変換される符号の符号量を削減できるので、符号化効率を上げることが可能になる。
[実施例6]
次に、実施例6における画像復号装置について説明する。実施例6における画像復号装置の構成は、図11に示した構成と同様である。また、実施例6における分割モードの予測に関する機能は、図30に示す。図30は、実施例6における分割モードの予測に関する機能の一例を示すブロック図である。
また、実施例6における画像復号装置は、実施例5における画像符号化装置で符号化されたビットストリームを復号する。
実施例6における画像復号装置は、格納手段401、選択手段601、第1取得手段602、第2取得手段603、予測手段604、復号手段406、決定手段605を含む。図30に示す機能において、図12に示す機能と同様のものは同じ符号を付す。格納手段401は、実施例4と同様である。
選択手段601は、例えば、復号対象画像と復号済み画像との間隔が最も小さい復号済み画像を選択する。選択した画像が複数ある場合は、選択手段601は、復号済み画像と復号済み画像の参照画像の間隔が最も小さい復号済み画像を選択する。選択手段601は、選択したピクチャの情報を第1取得手段602、第2取得手段603に通知する。
第1取得手段602は、復号対象画像に属する復号済みブロックの復号情報に含まれる動きベクトルを取得する。第1取得手段602は、例えば、復号対象ブロックの左ブロックA、上ブロックBの動きベクトルを取得する。第1取得手段602は、選択手段601から通知されたピクチャに対する動きベクトルを取得する。
第1取得手段602は、選択されたピクチャに対する動きベクトルがない場合、同方向に存在するピクチャへの動きベクトルが存在する場合は、適切に時間方向スケーリングを行い、選択されたピクチャに対する動きベクトルを算出する。第1取得手段602は、取得した動きベクトルを第2取得手段603に出力する。なお、第1取得手段602は、動きベクトルを取得するブロックがイントラ符号化されていた場合は、動きベクトルを無効とする。
第2取得手段603は、選択手段601で選択された復号済み画像に属するブロックの復号情報を取得する。第2取得手段603は、第1取得手段602から取得した複数の動きベクトルに基づいて、例えば中間値や平均値のベクトルを算出する。これを仮動きベクトルとする。ここでは、仮動きベクトルの例として平均値のベクトルを算出するとする。また、第1取得手段602から得られた動きベクトルが全て無効である場合はゼロベクトルとする。
第2取得手段603は、算出された平均ベクトル(pvx, pvy)を復号対象ブロックの推測ベクトル(仮動きベクトル)PVとして、選択された復号済み画像への復号対象ブロックに相当する移動先座標を推測する。復号対象ブロックの座標が(x,y)とすると、移動先座標は(x+pvx, y+pvy)である。
第2取得手段603は、その移動先座標を含む復号済み画像のブロックXの分割モードXを取得する。なお、移動先座標が画面外に出る場合は、ブロックXの分割モードを取得することができない。そこで、この場合は、選択手段601、第1取得手段602、第2取得手段603、予測手段604は、実施例4で説明した処理を行うようにすればよい。また、ブロックXがイントラ予測で符号化されている場合は、分割モードXを無効にする。
予測手段604は、第2取得手段603から取得した復号情報に基づいて復号対象ブロックの分割モードの予測値である予測モードを算出する。例えば、予測手段604は、第2取得手段603から取得した分割モードXをそのまま予測モードXに設定する。復号手段406については、例えば実施例4で示した動作と同様でもよい。
決定手段605は、取得した予測モードを基準に復号テーブルを設定する。例えば、決定手段605は、予測モードXを含むブロックを上位にするように復号テーブルを適応的に変更する。
例えば、予測モードが8x8分割であった場合、決定手段605は、8x8分割を含むマクロブロックタイプの順位を上げる。また、決定手段605は、分割しているブロック(例えば16x8,8x16)を分割していないブロック(16x16)より順位を上げる。予測モードXがイントラ予測で符号化されており無効である場合は、復号テーブルの変更を行わない。決定手段605は、分割モード情報が示す符号と復号テーブルとに基づき、分割モードを決定する。
次に、実施例6における画像復号装置の動作について説明する。図31は、実施例6における分割モード復号処理の一例を示すフローチャートである。図31に示すステップS401で、格納手段401は、復号済み画像のブロック単位の動きベクトル、ブロックタイプ、分割モードなどの復号情報を格納する。
ステップS402、S403で、第1取得手段602は、復号対象画像に属する復号済みブロックの復号情報に含まれる動きベクトルを取得する。第1取得手段602は、復号対象ブロックに隣接する左ブロックAの動きベクトルA、上ブロックBの動きベクトルBを取得する。
ステップS404で、選択手段601は、復号対象画像の参照画像の中で、復号対象画像との時間間隔が小さい復号済み画像(選択画像)を選択する。
ステップS405で、選択手段601は、選択画像が1つであるか否かを判定する。選択画像が1つであれば(ステップS405−YES)ステップS407に進み、選択画像が複数あれば(ステップS405−NO)ステップS406に進む。
ステップS406で、選択手段601は、選択画像とその参照画像との時間間隔が最小となる復号済み画像を選択する。
ステップS407で、第2取得手段603は、第1取得手段602から取得した動きベクトルA、Bが、選択手段601により選択された選択画像もしくは復号対象画像方向の参照画像を指し示すか判定する。動きベクトルA、Bがこれらの画像を指し示さなければ動きベクトルは無効であるとする。よって、動きベクトルA、Bの両方が無効であれば(ステップS407−YES)ステップS408に進み、いずれか一方が有効であれば(ステップS407−NO)ステップS409に進む。
ステップS408で、第2取得手段603は、動きベクトルA、Bをゼロベクトルとする。
ステップS409で、第2取得手段603は、動きベクトルA、Bを平均し、推測ベクトルPVを計算する。第2取得手段603は、有効な動きベクトルが一つしかなければ、その動きベクトルを平均ベクトルPVとする。
ステップS410で、第2取得手段603は、推測ベクトルPVを用いて、復号対象ブロックの選択画像への移動先座標を計算する。
ステップS411で、第2取得手段603は、移動先座標を含むブロックの分割モードXを取得する。
ステップS412で、予測手段604は、第2取得手段603により取得した分割モードXを予測モードに設定する。
ステップS413で、決定手段605は、予測モードに応じてVLD(可変長復号)テーブルを変更する。例えば、決定手段605は、予測モードの分割形状を示す分割モードが上位にくるようにVLDテーブルを変更する。
ステップS414で、復号手段406は、ビットストリームを復号し、復号対象ブロックの分割モード情報を取得する。
ステップS415で、決定手段605は、復号手段406により決定された分割モード情報が示す符号をVLDテーブルに応じて分割モードに変換する。決定手段605は、これにより分割モードを決定することができる。
なお、ステップS410の後に、第2取得手段603は、移動先座標が画面内にあるか否かを判定してもよい。画面外にあれば、図22に示すステップS203以降の処理を行うことで、分割モードを決定することもできる。また、簡略化して、第2取得手段603は、移動先座標が画面外にあると判定すれば、分割モードXを、分割を表す分割モードに設定してもよい。
以上、実施例6によれば、実施例5により分割モードの予測精度を上げた符号化に対応して、復号対象ブロックの分割モードを決定することができる。
[実施例7]
次に、実施例7における画像符号化装置について説明する。実施例7における画像符号化装置の構成については、図8に示した構成と同様であり、分割モードの予測に関する機能は、図32に示す。図32は、実施例7における分割モードの予測に関する機能の一例を示すブロック図である。
図32に示す画像符号化装置は、格納手段201、選択手段701、第1取得手段702、第2取得手段703、予測手段704、決定手段206、符号化手段505を含む。なお、図32に示す機能において、図9及び図24と同様の機能のものは同じ符号を付す。
実施例7では、図23に示すB5ピクチャを符号化する例を用いて説明する。B5ピクチャを符号化する際、すでにB4ピクチャ、B6ピクチャ、P8ピクチャは符号化され、これらのB4、B6、P8ピクチャは、符号化済み画像としてB5ピクチャで参照可能となっている。
格納手段201、選択手段501は、実施例3、5と同様である。図33は、実施例7における周辺ブロックの一例を示す図である。第1取得手段701は、図33に示すように、符号化対象ブロックCB5の左ブロックA、上ブロックB、右上のブロックCそれぞれの動きベクトルA、B、C及び分割モードA、B、Cを取得する。
第2取得手段702は、まず実施例5と同様に第1取得手段701から取得した複数の動きベクトルに基づいて、例えば中間値や平均値のベクトルを算出する。また、第1取得手段701から取得した動きベクトルが全て無効である場合はゼロベクトルとする。
第2取得手段702は、以下の式で平均ベクトルを求める。
平均ベクトル=(動きベクトルA+動きベクトルB+動きベクトルC)/3
第2取得手段702は、算出した平均ベクトル(pvx, pvy)を符号化対象ブロックの推測ベクトルPVとして、B6ピクチャへの符号化対象ブロックに相当する移動先座標を推測する。符号化対象ブロックの座標が(x,y)だとすると、移動先座標は(x+pvy, y+pvy)である。
図34は、第2取得手段702により指定する周辺ブロックの一例を示す図である。ここで、第2取得手段702は、より正確に移動先を求めるため、例えば図34に示すように、移動先座標(x+pvy, y+pvy)を含むブロックXを含む、周辺ブロックA'〜H'のB6ピクチャからB4ピクチャへの動きベクトルを取得する。符号化済み画像の全ての情報が使用できるため符号化情報を取得する領域は予め指定された領域でよい。
図35は、第2取得手段702により取得されるブロックの一例を示す図である。第2取得手段702は、図35に示すように、B6ピクチャからB4ピクチャへの動きベクトルMVF1〜3の中で符号化対象ブロックCB5を通る動きベクトルMVF2を含むブロックXの分割モードを取得する。指定されたA'〜H'が全てイントラ予測で符号化されているなどして符号化対象ブロックCB5を通る動きベクトルがない場合は分割モードを無効とする。
次に、予測手段703について説明する。図36は、予測手段703の機能の一例を示すブロック図である。図36に示すように、予測手段703は、第1分割モード予測手段731と第2分割モード予測手段732を含む。第2分割モード予測手段732は、第2取得手段702から取得した分割モードが複数存在する場合、最も多いモードを候補モードXとする。同数であれば分割されるモードが優先される。
第1分割モード予測手段731は、第1取得手段701から取得したB6ピクチャ内のブロックAの分割モードA、ブロックBの分割モードB、ブロックCの分割モードCの中で最も多いモードを候補モードYとする。
予測手段703は、候補モードXが有効であれば、候補モードXを他の候補モードよりも優先して予測モードとし、候補モードXが無効であれば、候補モードYを予測モードとする。候補モードXを有するブロックは、符号化対象ブロックと類似する可能性が高いからである。
決定手段206、符号化手段505については、実施例3、5で示した動作と同様でもよい。
次に、実施例7における画像符号化装置の動作について説明する。図37は、実施例7における分割モード符号化処理の一例を示すフローチャートである。図37Aに示すステップS501で、格納手段201は、符号化済み画像のブロック単位の動きベクトル、ブロックタイプ、分割モードなどの符号化情報を格納する。
ステップS502、S503で、第1取得手段701は、符号化対象画像に属する符号化済みブロックの符号化情報に含まれる動きベクトルを取得する。第1取得手段701は、図33に示す例では、符号化対象ブロックに隣接する左ブロックA、上ブロックB、右上ブロックCそれぞれの動きベクトルA、B、Cを格納手段201から取得する。ブロックCの動きベクトルを動きベクトルCとする。
ステップS504で、選択手段501は、符号化対象画像の参照画像の中で、符号化対象画像との時間間隔が小さい符号化済み画像(選択画像)を選択する。
ステップS505で、選択手段501は、選択画像が1つであるか否かを判定する。選択画像が1つであれば(ステップS505−YES)ステップS507に進み、選択画像が複数あれば(ステップS505−NO)ステップS506に進む。
ステップS506で、選択手段501は、選択画像とその参照画像との時間間隔が最小となる符号化済み画像を選択する。
ステップS507で、第2取得手段702は、第1取得手段701から取得した動きベクトルA、B、Cが、選択手段501により選択された選択画像もしくは符号化対象画像方向の参照画像を指し示すか判定する。動きベクトルA、B、Cがこれらの画像を指し示さなければ動きベクトルは無効であるとする。また、イントラ符号化されている場合も、動きベクトルは無効とする。よって、動きベクトルA、B、C全てが無効であれば(ステップS507−YES)ステップS509に進み、少なくとも1つが有効であれば(ステップS507−NO)ステップS508に進む。
ステップS508で、第2取得手段702は、動きベクトルA、B、Cを平均し、推測ベクトルPVを計算する。第2取得手段702は、有効な動きベクトルが一つしかなければ、その動きベクトルを推測ベクトルPVとする。
ステップS509で、第2取得手段702は、動きベクトルA、B、Cをゼロベクトルとする。
ステップS510で、第2取得手段702は、推測ベクトルPVを用いて、符号化対象ブロックの選択画像への移動先座標を計算する。
ステップS511で、第2取得手段702は、移動先座標を含むブロックを中心に周辺ブロックを指定する。
ステップS512で、第2取得手段702は、指定されたブロックの動きベクトルを取得する。
ステップS513で、第2取得手段702は、符号化対象ブロックを通る動きベクトルの分割モードXを取得する。
図37Bに示すステップS514で、第2分割モード予測手段732は、分割モードXが複数あるか判定する。分割モードXが複数あれば(ステップS514−YES)ステップS515に進み、分割モードXが1つしかなければ(ステップS514−NO)ステップS516に進む。
ステップS515で、第2分割モード予測手段732は、複数の分割モードXから多数決により候補モードXを決定する。
ステップS516で、第1分割モード予測手段731は、分割モードA、B、Cから多数決により候補モードYを決定する。
ステップS517で、予測手段703は、候補モードXが有効かを判定する。候補モードXが有効であれば(ステップS517−YES)ステップS518に進み、候補モードXが無効であれば(ステップS517−NO)ステップS519に進む。
ステップS518で、予測手段703は、候補モードXを候補Yよりも優先して予測モードとする。符号化対象ブロックと空間的に隣接するブロックよりも、時間的に類似するブロックを優先した方が、予測精度が上がる可能性が高いからである。ステップS519で、予測手段703は、候補モードYを予測モードとする。
ステップS520で、符号化手段505は、予測モードに応じてVLC(可変長符号化)テーブルの符号量の割り当てを変更する。例えば、符号化手段505は、予測モードの分割形状を値が小さい符号になるようにVLCテーブルを変更する。
ステップS521で、決定手段206は、符号化対象ブロックの分割モードをブロックマッチングにより決定する。
ステップS522で、符号化手段505は、決定手段206により決定された分割モードをVLCテーブルに応じて符号に変換する。この符号を分割モード情報とする。分割モード情報は、ビットストリームに含まれる。
なお、ステップS510の後に、第2取得手段702は、移動先座標が画面内にあるか否かを判定してもよい。画面外にあれば、図21に示すステップS103以降の処理を行うことで、分割モードの予測モードを設定することもできる。また、簡略化して、第2取得手段702は、移動先座標が画面外にあると判定すれば、分割モードXを、分割を表す分割モードに設定してもよい。
以上、実施例7によれば、実施例5よりも、符号化対象ブロックと類似するブロックを時間方向で見つけることができる可能性がある。これは、符号化対象ブロックを通る動きベクトルを有するブロックは、符号化対象ブロックに対しより類似すると言えるからである。よって、分割モードの予測精度が向上すれば、VLCテーブルにより変換される符号の符号量を削減できるので、符号化効率を上げることが可能になる。
[実施例8]
次に、実施例8における画像復号装置について説明する。実施例8における画像復号装置の構成は、図11に示した構成と同様であり、分割モードの予測に関する機能は、図38に示す。図38は、実施例8における分割モードの予測に関する機能の一例を示すブロック図である。
図38に示す画像復号装置は、格納手段401、選択手段601、第1取得手段801、第2取得手段802、予測手段803、復号手段406、決定手段605を含む。なお、図38に示す機能において、図12、30と同様の機能のものは同じ符号を付す。
また、実施例8における画像復号装置は、実施例7における画像符号化装置で符号化されたビットストリームを復号する。
格納手段401、選択手段601は、実施例4、6と同様である。第1取得手段801、復号対象ブロックの左ブロックA、上ブロックB、右上のブロックCそれぞれの動きベクトルA、B、C及び分割モードA、B、Cを取得する。
第2取得手段802は、まず実施例6と同様に第1取得手段801から取得した複数の動きベクトルに基づいて、例えば中間値や平均値のベクトルを算出する。また、第1取得手段801から取得した動きベクトルが全て無効である場合はゼロベクトルとする。
第2取得手段802は、以下の式で平均ベクトルを求める。
平均ベクトル=(動きベクトルA+動きベクトルB+動きベクトルC)/3
第2取得手段802は、算出した平均ベクトル(pvx, pvy)を復号対象ブロックの推測ベクトルPVとして、選択されたピクチャへの復号対象ブロックに相当する移動先座標を推測する。復号対象ブロックの座標が(x,y)だとすると、移動先座標は(x+pvy, y+pvy)である。
第2取得手段802は、より正確に移動先を求めるため、移動先座標(x+pvy, y+pvy)を含むブロックXに隣接するブロックA'〜H'の動きベクトルのうち、選択された画像から復号対象画像方向への動きベクトルを取得する。復号済み画像の全ての情報が使用できるため復号情報を取得する領域は、予め指定された領域でよい。
第2取得手段802は、選択された画像から復号対象画像への動きベクトルの中で復号対象ブロックを通る動きベクトルを有するブロックXの分割モードを取得する。指定されたA'〜H'が全てイントラ予測で符号化されている場合、又は復号対象ブロックを通る動きベクトルがない場合は、分割モードを無効とする。
予測手段803は、第2取得手段802から取得した分割モードが複数存在する場合、最も多いモードを候補モードXとする。同数であれば分割されるモードが優先される。
予測手段803は、第1取得手段801から取得した復号対象画像内のブロックAの分割モードA、ブロックBの分割モードB、ブロックCの分割モードCの中で最も多いモードを候補モードYとする。
予測手段803は、候補モードXが有効であれば、候補モードXを他の候補モードよりも優先して予測モードとし、候補モードXが無効であれば、候補モードYを予測モードとする。
決定手段406、符号化手段605については、実施例4、6で示した動作と同様でもよい。
これにより、実施例7で説明した画像符号化装置で生成されたビットストリームを復号することができる。
次に、実施例8における画像復号装置の動作について説明する。図39は、実施例8における分割モード復号処理の一例を示すフローチャートである。
図39Aに示すステップS601で、格納手段401は、復号済み画像のブロック単位の動きベクトル、ブロックタイプ、分割モードなどの復号情報を格納する。
ステップS602、S603で、第1取得手段801は、復号対象画像に属する復号済みブロックの復号情報に含まれる動きベクトルを格納手段401から取得する。第1取得手段801は、例えば、復号対象ブロックに隣接する左ブロックA、上ブロックB、右上ブロックCそれぞれの動きベクトルA、B、Cを取得する。
ステップS604で、選択手段601は、復号対象画像の参照画像の中で、復号対象画像との時間間隔が小さい復号済み画像(選択画像)を選択する。
ステップS605で、選択手段601は、選択画像が1つであるか否かを判定する。選択画像が1つであれば(ステップS605−YES)ステップS607に進み、選択画像が複数あれば(ステップS605−NO)ステップS606に進む。
ステップS606で、選択手段601は、選択画像とその参照画像との時間間隔が最小となる復号済み画像を選択する。
ステップS607で、第2取得手段802は、第1取得手段801から取得した動きベクトルA、B、Cが、選択手段601により選択された選択画像もしくは復号対象画像方向の参照画像を指し示すか判定する。動きベクトルA、B、Cがこれらの画像を指し示さなければ動きベクトルは無効であるとする。また、イントラ符号化されている場合も、動きベクトルは無効とする。よって、動きベクトルA、B、C全てが無効であれば(ステップS607−YES)ステップS609に進み、少なくともいずれか一方が有効であれば(ステップS607−NO)ステップS608に進む。
ステップS608で、第2取得手段802は、動きベクトルA、B、Cを平均し、推測ベクトルPVを計算する。第2取得手段802は、有効な動きベクトルが一つしかなければ、その動きベクトルを推測ベクトルPVとする。
ステップS609で、第2取得手段802は、動きベクトルA、B、Cをゼロベクトルとする。
ステップS610で、第2取得手段802は、推測ベクトルPVを用いて、復号対象ブロックの選択画像への移動先座標を計算する。
ステップS611で、第2取得手段802は、移動先座標を含むブロックを中心に周辺ブロックを指定する。
ステップS612で、第2取得手段802は、指定されたブロックの動きベクトルを取得する。
ステップS613で、第2取得手段802は、復号対象ブロックを通る動きベクトルの分割モードXを取得する。
図39Bに示すステップS614で、予測手段803は、分割モードXが複数あるか判定する。分割モードXが複数あれば(ステップS614−YES)ステップS615に進み、分割モードXが1つしかなければ(ステップS614−NO)ステップS616に進む。
ステップS615で、予測手段803は、複数の分割モードXから多数決により候補モードXを決定する。
ステップS616で、予測手段803は、分割モードA、B、Cから多数決により候補モードYを決定する。
ステップS617で、予測手段803は、候補モードXが有効かを判定する。候補モードXが有効であれば(ステップS617−YES)ステップS618に進み、候補モードXが無効であれば(ステップS617−NO)ステップS619に進む。
ステップS618で、予測手段803は、候補モードXを候補Yよりも優先して予測モードとする。ステップS619で、予測手段803は、候補モードYを予測モードとする。
ステップS620で、決定手段605は、予測モードに応じてVLD(可変長復号)テーブルを変更する。例えば、決定手段605は、予測モードの分割形状を示す分割モードが上位にくるようにVLDテーブルを変更する。
ステップS621で、復号手段406は、ビットストリームを復号し、復号対象ブロックの分割モード情報を取得する。
ステップS622で、決定手段605は、復号手段406により決定された分割モード情報が示す符号をVLDテーブルに応じて分割モードに変換する。決定手段605は、これにより分割モードを決定することができる。
なお、ステップS610の後に、第2取得手段802は、移動先座標が画面内にあるか否かを判定してもよい。画面外にあれば、図22に示すステップS203以降の処理を行うことで、分割モードを決定することもできる。また、簡略化して、第2取得手段603は、移動先座標が画面外にあると判定すれば、分割モードXを、分割を表す分割モードに設定してもよい。
以上、実施例8によれば、実施例7により分割モードの予測精度を上げた符号化に対応して、復号対象ブロックの分割モードを決定することができる。
[変形例]
次に、変形例について説明する。変形例では、前述した画像符号化方法又は画像復号方法を実現するためのプログラムを記録媒体に記録することで、各実施例での処理をコンピュータシステムに実施させることができる。
図40は、情報処理装置900の構成の一例を示す図である。図40に示すように、情報処理装置900は、制御部901、主記憶部902、補助記憶部903、ドライブ装置904、ネットワークI/F部906、入力部907、表示部908を含む。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
制御部901は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPUである。また、制御部901は、主記憶部902や補助記憶部903に記憶されたプログラムを実行する演算装置であり、入力部907や記憶装置からデータを受け取り、演算、加工した上で、表示部908や記憶装置などに出力する。
主記憶部902は、ROM(Read Only Memory)やRAM(Random Access Memory)などであり、制御部901が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
補助記憶部903は、HDD(Hard Disk Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
ドライブ装置904は、記録媒体905、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
また、記録媒体905に、所定のプログラムを格納し、この記録媒体905に格納されたプログラムはドライブ装置904を介して情報処理装置900にインストールされる。インストールされた所定のプログラムは、情報処理装置900により実行可能となる。
ネットワークI/F部906は、有線及び/又は無線回線などのデータ伝送路により構築されたLAN(Local Area Network)、WAN(Wide Area Network)などのネットワークを介して接続された通信機能を有する周辺機器と情報処理装置700とのインターフェースである。
入力部907は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部908の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部907は、ユーザが制御部901に操作指示を与えたり、データを入力したりするためのユーザインターフェースである。
表示部908は、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)等により構成され、制御部901から入力される表示データに応じた表示が行われる。
このように、前述した実施例で説明した画像符号化処理又は画像復号処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、前述した画像符号化処理又は画像復号処理を実現することができる。
また、このプログラムを記録媒体905に記録し、このプログラムが記録された記録媒体905をコンピュータや携帯端末に読み取らせて、前述した画像符号化処理又は画像復号処理を実現させることも可能である。なお、記録媒体905は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。また、前述した各実施例で説明した画像符号化処理又は画像復号処理は、1つ又は複数の集積回路に実装してもよい。
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した各実施例の構成要素を全部又は複数を組み合わせることも可能である。