以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、以下の順序で説明を行う。
1.画像符号化装置の構成例
2.動き探索部の詳細な構成例
2−1.第1の実施例
2−2.第2の実施例
2−3.第3の実施例
2−4.第4の実施例
3.画像復号装置の構成例
4.動き補償部の詳細な構成例
4−1.第1の実施例
4−2.第2の実施例
4−3.第3の実施例
4−4.第4の実施例
5.応用例
6.まとめ
<1.画像符号化装置の構成例>
図1は、一実施形態に係る画像符号化装置10の構成の一例を示すブロック図である。図1を参照すると、画像符号化装置10は、A/D(Analogue to Digital)変換部11、並び替えバッファ12、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18、逆量子化部21、逆直交変換部22、加算部23、デブロックフィルタ24、フレームメモリ25、セレクタ26及び27、イントラ予測部30、並びに動き探索部40を備える。
A/D変換部11は、アナログ形式で入力される画像信号をデジタル形式の画像データに変換し、一連のデジタル画像データを並び替えバッファ12へ出力する。
並び替えバッファ12は、A/D変換部11から入力される一連の画像データに含まれる画像を並び替える。並び替えバッファ12は、符号化処理に係るGOP(Group of Pictures)構造に応じて画像を並び替えた後、並び替え後の画像データを減算部13、イントラ予測部30及び動き探索部40へ出力する。
減算部13には、並び替えバッファ12から入力される画像データ、及び後に説明するイントラ予測部30又は動き探索部40から入力される予測画像データが供給される。減算部13は、並び替えバッファ12から入力される画像データと予測画像データとの差分である予測誤差データを算出し、算出した予測誤差データを直交変換部14へ出力する。
直交変換部14は、減算部13から入力される予測誤差データについて直交変換を行う。直交変換部14により実行される直交変換は、例えば、離散コサイン変換(Discrete Cosine Transform:DCT)又はカルーネン・レーベ変換などであってよい。直交変換部14は、直交変換処理により取得される変換係数データを量子化部15へ出力する。
量子化部15には、直交変換部14から入力される変換係数データ、及び後に説明するレート制御部18からのレート制御信号が供給される。量子化部15は、変換係数データを量子化し、量子化後の変換係数データ(以下、量子化データという)を可逆符号化部16及び逆量子化部21へ出力する。また、量子化部15は、レート制御部18からのレート制御信号に基づいて量子化パラメータ(量子化スケール)を切り替えることにより、可逆符号化部16に入力される量子化データのビットレートを変化させる。
可逆符号化部16は、量子化部15から入力される量子化データについて可逆符号化処理を行うことにより、符号化ストリームを生成する。可逆符号化部16による可逆符号化は、例えば、可変長符号化、又は算術符号化などであってよい。また、可逆符号化部16は、セレクタ27から入力されるイントラ予測に関する情報又はインター予測に関する情報を、符号化ストリームのヘッダ領域内に多重化する。そして、可逆符号化部16は、生成した符号化ストリームを蓄積バッファ17へ出力する。
蓄積バッファ17は、可逆符号化部16から入力される符号化ストリームを一時的に蓄積する。そして、蓄積バッファ17は、蓄積した符号化ストリームを、伝送路の帯域に応じたレートで、図示しない伝送部(例えば、通信インタフェース又は周辺機器との接続インタフェースなど)へ出力する。
レート制御部18は、蓄積バッファ17の空き容量を監視する。そして、レート制御部18は、蓄積バッファ17の空き容量に応じてレート制御信号を生成し、生成したレート制御信号を量子化部15へ出力する。例えば、レート制御部18は、蓄積バッファ17の空き容量が少ない時には、量子化データのビットレートを低下させるためのレート制御信号を生成する。また、例えば、レート制御部18は、蓄積バッファ17の空き容量が十分大きい時には、量子化データのビットレートを高めるためのレート制御信号を生成する。
逆量子化部21は、量子化部15から入力される量子化データについて逆量子化処理を行う。そして、逆量子化部21は、逆量子化処理により取得される変換係数データを、逆直交変換部22へ出力する。
逆直交変換部22は、逆量子化部21から入力される変換係数データについて逆直交変換処理を行うことにより、予測誤差データを復元する。そして、逆直交変換部22は、復元した予測誤差データを加算部23へ出力する。
加算部23は、逆直交変換部22から入力される復元された予測誤差データとイントラ予測部30又は動き探索部40から入力される予測画像データとを加算することにより、復号画像データを生成する。そして、加算部23は、生成した復号画像データをデブロックフィルタ24及びフレームメモリ25へ出力する。
デブロックフィルタ24は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタリング処理を行う。デブロックフィルタ24は、加算部23から入力される復号画像データをフィルタリングすることによりブロック歪みを除去し、フィルタリング後の復号画像データをフレームメモリ25へ出力する。
フレームメモリ25は、加算部23から入力される復号画像データ、及びデブロックフィルタ24から入力されるフィルタリング後の復号画像データを記憶媒体を用いて記憶する。
セレクタ26は、インター予測のために使用されるフィルタリング後の復号画像データをフレームメモリ25から読み出し、読み出した復号画像データを参照画像データとして動き探索部40に供給する。また、セレクタ26は、イントラ予測のために使用されるフィルタリング前の復号画像データをフレームメモリ25から読み出し、読み出した復号画像データを参照画像データとしてイントラ予測部30に供給する。
セレクタ27は、インター予測モードにおいて、動き探索部40から出力されるインター予測の結果としての予測画像データを減算部13へ出力すると共に、インター予測に関する情報を可逆符号化部16へ出力する。また、セレクタ27は、イントラ予測モードにおいて、イントラ予測部30から出力されるイントラ予測の結果としての予測画像データを減算部13へ出力すると共に、イントラ予測に関する情報を可逆符号化部16へ出力する。セレクタ27は、インター予測モードとイントラ予測モードとを、イントラ予測部30及び動き探索部40から出力されるコスト関数値の大きさに応じて切り替える。
イントラ予測部30は、並び替えバッファ12から入力される符号化対象の画像データ(原画像データ)、及びフレームメモリ25から供給される参照画像データとしての復号画像データに基づいて、画像内に設定されるブロックごとにイントラ予測処理を行う。そして、イントラ予測部30は、最適な予測モードを示す予測モード情報を含むイントラ予測に関する情報、コスト関数値、及び予測画像データを、セレクタ27へ出力する。
動き探索部40は、並び替えバッファ12から入力される原画像データ、及びセレクタ26を介して供給される復号画像データに基づいて、インター予測(フレーム間予測)のための動き探索処理を行う。本実施形態に係る動き探索部40による動き探索処理は、上記非特許文献2に記載された手法又は上記非特許文献3に記載された手法を拡張することにより実現され得る。上記非特許文献2に記載された手法の拡張においては、動き探索部40は、各予測単位について最適なプレディクタ(predictor)を示すプレディクタ情報を生成し得る。また、上記非特許文献3に記載された手法の拡張においては、動き探索部40は、各予測単位について最適なマージモードを示すマージ情報を生成し得る。そして、動き探索部40は、プレディクタ情報又はマージ情報、動きベクトル情報及び参照画像情報を含むインター予測に関する情報、コスト関数値、並びに予測画像データを、セレクタ27へ出力する。次節において、動き探索部40の詳細な構成についての4つの実施例を説明する。
画像符号化装置10は、ここで説明した一連の符号化処理を、スケーラブル符号化される画像の複数のレイヤの各々について繰り返す。最初に符号化されるレイヤは、ベースレイヤ(base layer)と呼ばれる、最も粗い画像を表現するレイヤである。ベースレイヤの符号化ストリームは、他のレイヤの符号化ストリームを復号することなく、独立して復号され得る。ベースレイヤ以外のレイヤは、エンハンスメントレイヤ(enhancement layer)と呼ばれる、より精細な画像を表現するレイヤである。エンハンスメントレイヤの符号化ストリームは、符号化効率を高めるためにベースレイヤの符号化ストリームに含まれる情報を用いて符号化される。従って、エンハンスメントレイヤの画像を再現するためには、ベースレイヤ及びエンハンスメントレイヤの双方の符号化ストリームが復号されることになる。スケーラブル符号化において扱われるレイヤは、3つ以上であってもよい。その場合には、最下位のレイヤがベースレイヤ、残りの複数のレイヤがエンハンスメントレイヤである。より上位のエンハンスメントレイヤの符号化ストリームは、より下位のエンハンスメントレイヤ又はベースレイヤの符号化ストリームに含まれる情報を用いて符号化され及び復号され得る。本明細書では、依存関係を有する少なくとも2つのレイヤのうち、依存される側のレイヤを下位レイヤ(lower layer)、依存する側のレイヤを上位レイヤ(upper layer)という。
画像符号化装置10によるスケーラブル符号化に際しては、インター予測に関する情報を効率的に符号化するために、レイヤ間の動きの相関が利用される。即ち、インター予測ブロックにおいて、下位レイヤに設定された動きベクトルに関連する設定情報に基づく上位レイヤへの動きベクトルの設定が行われる。具体的には、図1に示した動き探索部40は、下位レイヤでのインター予測の際に得られる情報を一時的に記憶するためのバッファを有し、当該バッファに記憶される情報を用いて上位レイヤに動きベクトルを設定する。レイヤ間の動きの相関は、特に、空間スケーラビリティ又はSNRスケーラビリティに基づくスケーラブル符号化において顕著に現れ得る。
図2は、空間スケーラビリティの一例について説明するための説明図である。図2において、スケーラブル符号化される3つのレイヤL1、L2及びL3が示されている。レイヤL1はベースレイヤであり、レイヤL2及びL3はエンハンスメントレイヤである。レイヤL2のレイヤL1に対する空間解像度の比は、2:1である。レイヤL3のレイヤL1に対する空間解像度の比は、4:1である。このように互いに解像度が異なっているとしても、レイヤL1内の予測単位B1に現れる動きは、レイヤL2内の対応する予測単位B2及びレイヤL3内の対応する予測単位B3において同じように現れる可能性が高い。これが、空間スケーラビリティにおけるレイヤ間の動きの相関である。
図3は、SNRスケーラビリティの一例について説明するための説明図である。図3において、スケーラブル符号化される3つのレイヤL1、L2及びL3が示されている。レイヤL1はベースレイヤであり、レイヤL2及びL3はエンハンスメントレイヤである。レイヤL1、L2及びL3の空間解像度は互いに等しい。しかし、一例として、レイヤL1の最小の量子化スケールは25であり、直交変換係数の量子化によって符号化ストリームのビットレートは2Mbps程度に抑えられる。一方、例えばレイヤL2の最小の量子化スケールは12であり、符号化ストリームのビットレートは5Mbps程度となる。また、例えばレイヤL3の最小の量子化スケールは0であり、符号化ストリームのビットレートは10Mbps程度となる。このように互いにビットレートが異なっているとしても、レイヤL1内の予測単位B1に現れる動きは、レイヤL2内の対応する予測単位B2及びレイヤL3内の対応する予測単位B3において同じように現れる可能性が高い。これが、SNRスケーラビリティにおけるレイヤ間の動きの相関である。
本実施形態に係る画像符号化装置10は、これらのようなレイヤ間の動きの相関を積極的に活用して、インター予測に関する情報を効率的に符号化する。
なお、上位レイヤの予測単位に対応する下位レイヤの予測単位とは、例えば、上位レイヤの予測単位の所定の位置(例えば、左上)の画素に対応する画素を有する、下位レイヤの予測単位であってよい。このような定義により、下位レイヤの複数の予測単位を統合するような上位レイヤの予測単位が存在したとしても、上位レイヤの予測単位に対応する下位レイヤの予測単位を一意に決定することができる。その代わりに、上位レイヤの予測単位に対応する下位レイヤの予測単位とは、例えば、上位レイヤの予測単位と重なる(同じ位置の画素を共有する)下位レイヤ内の予測単位のうち重なりの最も大きい(共有される画素数の最も多い)予測単位であってもよい。このような定義により、動きの相関が最も現れ易い予測単位を「対応する予測単位」として決定することができる。
<2.動き探索部の詳細な構成例>
本節では、図1に示した動き探索部40の詳細な構成についての4つの実施例を説明する。その4つの実施例のうち、第1及び第2の実施例は、上記非特許文献2に記載された手法の拡張についての実施例である。一方、第3及び第4の実施例は、上記非特許文献3に記載された手法の拡張についての実施例である。
[2−1.第1の実施例]
図4は、第1の実施例に係る動き探索部40の詳細な構成の一例を示すブロック図である。図4を参照すると、動き探索部40は、探索制御部141、動きベクトル算出部142、動きベクトル予測部143、動きベクトルバッファ144、モード選択部145、情報生成部146及びプレディクタ情報バッファ147を有する。
(1)ベースレイヤ
ベースレイヤの動き探索処理において、探索制御部141は、符号化単位内に1つ以上の予測単位を配置し、各予測単位について動きベクトル算出部142に動きベクトルを算出させる。動きベクトル算出部142により算出された動きベクトルは、動きベクトル予測部143へ出力されると共に、動きベクトルバッファ144に記憶される。動きベクトル予測部143は、複数のプレディクタ候補の各々に従い、動きベクトルバッファ144に記憶されている他のブロックの動きベクトル(参照動きベクトルという)を用いて予測動きベクトルを生成する。そして、動きベクトル予測部143は、動きベクトル算出部142により算出された動きベクトルと予測動きベクトルとの差分である差分動きベクトルを算出する。モード選択部145は、動きベクトル算出部142により算出された動きベクトルを用いて予測画像データを生成し、生成した予測画像データと原画像データとの比較に基づいて計算されるコスト関数値を評価する。そして、モード選択部145は、コスト関数値を最小にする最適な予測単位の配置と各予測単位についての最適なプレディクタとを選択する。情報生成部146は、各予測単位について選択された最適なプレディクタを示すプレディクタ情報及び対応する差分動きベクトルを示す差分動きベクトル情報を含むインター予測に関する情報を生成する。例えば、プレディクタ情報は、参照動きベクトルを特定するインデックスを含んでもよい。また、プレディクタ情報は、予測式を特定するパラメータを含んでもよい。そして、情報生成部146は、生成したインター予測に関する情報、コスト関数値及び予測画像データをセレクタ27へ出力する。また、情報生成部146により生成されるプレディクタ情報は、上位レイヤでの処理のために、プレディクタ情報バッファ147に一時的に記憶される。
図5及び図6は、このようなインター予測において使用され得る、動きベクトルの予測のためのプレディクタ候補の例について説明するための説明図である。図5を参照すると、予測対象である1つの予測単位PTe、及び予測単位PTeの予測動きベクトルPMVeが示されている。予測単位PTeの予測動きベクトルPMVeは、例えば、予測単位PTeに隣接する予測単位の動きベクトルMVa、MVb及びMVcを参照動きベクトルとして用いて予測され得る。参照動きベクトルMVaは、予測単位PTeの左に隣接する予測単位に設定された動きベクトルである。参照動きベクトルMVbは、予測単位PTeの上に隣接する予測単位に設定された動きベクトルである。参照動きベクトルMVcは、予測単位PTeの右上に隣接する予測単位に設定された動きベクトルである。予測動きベクトルPMVeは、これら参照動きベクトルMVa、MVb及びMVcを用いて、次のような予測式に従って生成され得る。
式(1)は、動きの空間的相関に基づく予測式である。式(1)におけるmedはメディアンオペレーションを表す。即ち、式(1)によれば、予測動きベクトルPMVeは、参照動きベクトルMVa、MVb及びMVcの水平成分の中央値と垂直成分の中央値とを成分とするベクトルである。式(1)に従って生成される予測動きベクトルPMVeは、プレディクタ候補の一例である。このような動きの空間的相関に基づく予測式によって算出される予測動きベクトルを、空間的プレディクタ(spatial predictor)という。
なお、式(1)は予測式の一例に過ぎない。例えば、予測対象の予測単位が画像の端部に位置するために、動きベクトルMVa、MVb又はMVcのいずれかが存在しない場合には、存在しない動きベクトルは、メディアンオペレーションの引数から省略されてもよい。また、次の式(2)〜式(4)のように、より単純な空間的プレディクタもまたプレディクタ候補として使用されてよい。
一方、動きの時間的相関に基づく予測式によって算出される予測動きベクトルである時間的プレディクタ(temporal predictor)もまた、プレディクタ候補として使用され得る。図6を参照すると、予測対象の予測単位PTeを含む画像IM01、及び参照画像IM02が示されている。参照画像IM02内のブロックBcolは、予測単位PTeのコロケーテッドブロックである。動きの時間的相関を利用する予測式は、例えば、このコロケーテッドブロックBcol又はコロケーテッドブロックBcolに隣接するブロックに設定された動きベクトルを参照動きベクトルとして使用する。
例えば、コロケーテッドブロックBcolに設定された動きベクトルをMVcolとする。また、コロケーテッドブロックBcolの上、左、下、右、左上、左下、右下及び右上のブロックに設定された動きベクトルを、それぞれMVt0〜MVt7とする。すると、予測動きベクトルPMVeは、例えば、次の予測式(5)又は(6)を用いて、参照動きベクトルMVcol及びMVt0〜MVt7から生成され得る。
動きベクトル予測部143は、これら複数のプレディクタ候補の各々について予測動きベクトルPMVeを生成した後、次式のように、動きベクトル算出部142により算出された動きベクトルMVeと予測動きベクトルPMVeとの差分を表す差分動きベクトルMVDeを算出する。
そして、モード選択部145により各予測単位についての最適なプレディクタ(例えば、予測精度の最も高いプレディクタ)が選択され、情報生成部146により当該最適なプレディクタを示すプレディクタ情報と対応する差分動きベクトルを示す差分動きベクトル情報とが生成される。動きベクトルの予測が行われない予測単位については、差分動きベクトル情報の代わりに、動きベクトル算出部142により算出された動きベクトルを示す動きベクトル情報が生成されてよい。このように生成された情報は、インター予測に関する情報として可逆符号化部16により符号化され得る。プレディクタ情報は、上位レイヤでの処理のために、プレディクタ情報バッファ147に一時的に記憶される。
(2)エンハンスメントレイヤ
エンハンスメントレイヤの動き探索処理では、プレディクタ情報バッファ147に記憶されている下位レイヤのプレディクタ情報に基づく動きベクトルの予測が行われる。
まず、探索制御部141は、符号化単位内に配置される各予測単位について、動きベクトル算出部142に動きベクトルを算出させる。そして、探索制御部141は、各予測単位について、動きベクトル予測部143に予測動きベクトルを生成させる。エンハンスメントレイヤにおける動きベクトル予測部143による予測動きベクトルの生成は、プレディクタ情報バッファ147に記憶されている設定情報であるプレディクタ情報を用いて行われる。より具体的には、例えば、ある上位レイヤ内の予測単位に対応する下位レイヤ内の予測単位についてプレディクタ情報が式(1)に示したような空間的プレディクタを示している場合、動きベクトル予測部143は、上位レイヤ内の隣接予測単位の参照動きベクトルを動きベクトルバッファ144から取得する。そして、動きベクトル予測部143は、取得した参照動きベクトルを式(1)に代入し、予測動きベクトルを生成する。また、例えば、ある上位レイヤ内の予測単位に対応する下位レイヤ内の予測単位についてプレディクタ情報が式(5)に示したような時間的プレディクタを示している場合、動きベクトル予測部143は、参照画像内のコロケーテッドブロック及び当該コロケーテッドブロックの隣接ブロックの参照動きベクトルを動きベクトルバッファ144から取得する。そして、動きベクトル予測部143は、取得した参照動きベクトルを式(5)に代入し、予測動きベクトルを生成する。さらに、動きベクトル予測部143は、動きベクトル算出部142により算出された動きベクトルと予測動きベクトルとの差分を表す差分動きベクトルを算出する。モード選択部145は、動きベクトル算出部142により算出された動きベクトルを用いて予測画像データを生成し、コスト関数値を計算する。情報生成部146は、各予測単位について算出された差分動きベクトルを示す差分動きベクトル情報を生成する。そして、情報生成部146は、差分動きベクトル情報を含むインター予測に関する情報、コスト関数値及び予測画像データをセレクタ27へ出力する。
(3)処理の流れ
図7は、本実施例に係る動き探索部40による動き探索処理の流れの一例を示すフローチャートである。図7を参照すると。まず、動き探索部40は、ベースレイヤの動き探索処理を行う(ステップS110)。その結果、各符号化単位内の予測単位の配置が決定され、各予測単位の最適なプレディクタが選択される。プレディクタ情報バッファ147は、各予測単位の最適なプレディクタを示すプレディクタ情報を設定情報としてバッファリングする。
ステップS111〜S117の処理は、エンハンスメントレイヤの動き探索処理である。これら処理のうちステップS111〜S116の処理は、各エンハンスメントレイヤの各予測単位(以下、注目PUという)について繰り返される。なお、以下の説明において、「上位レイヤ」は予測対象のレイヤであり、「下位レイヤ」は予測対象のレイヤの下位のレイヤである。
まず、動きベクトル算出部142は、上位レイヤの1つの注目PUについて、原画像の画素値、及びフレームメモリ25から入力される参照画像の画素値に基づいて、動きベクトルを算出する(ステップS111)。そして、動きベクトル算出部142は、算出した動きベクトルを、動きベクトル予測部143及び動きベクトルバッファ144へ出力する。
次に、動きベクトル予測部143は、プレディクタ情報バッファ147に記憶されている下位レイヤ内の対応するPUについてのプレディクタ情報と、プレディクタ情報に従って取得される参照動きベクトルとを用いて、注目PUについての予測動きベクトルを生成する(ステップS112)。次に、動きベクトル予測部143は、動きベクトルから予測動きベクトルを減算することにより、差分動きベクトルを算出する(ステップS113)。そして、動きベクトル予測部143は、注目PUについての動きベクトル及び差分動きベクトルをモード選択部145へ出力する。
次に、モード選択部145は、注目PUについての予測画像データ及びコスト関数値を生成する(ステップS114)。また、情報生成部146は、注目PUについての差分動きベクトルを示す差分動きベクトル情報を生成する(ステップS115)。
その後、予測対象のレイヤ内に未処理のPUが残っている場合には、処理はステップS111に戻る(ステップS116)。一方、未処理のPUが残っていない場合には、さらに残りのレイヤ(より上位のレイヤ)が存在するかが判定される(ステップS117)。ここで、残りのレイヤが存在する場合には、それまでの予測対象のレイヤを下位レイヤ、次のレイヤを上位レイヤとして、ステップS111以降の処理が繰り返される。下位レイヤについて選択されたプレディクタを示すプレディクタ情報は、プレディクタ情報バッファ147により引き続きバッファリングされる。残りのレイヤが存在しない場合には、図7の動き探索処理は終了する。ここで生成された予測画像データ及び(差分動きベクトル情報を含み得る)インター予測に関する情報は、スイッチ27を介して、減算部13及び可逆符号化部16へそれぞれ出力され得る。
このように、第1の実施例では、上位レイヤのインター予測に関する情報としてプレディクタ情報が符号化されず、下位レイヤのプレディクタ情報が再利用されるため、インター予測に関する情報の符号量を削減することができる。
[2−2.第2の実施例]
図8は、第2の実施例に係る動き探索部40の詳細な構成の一例を示すブロック図である。図8を参照すると、動き探索部40は、探索制御部241、動きベクトル算出部242、動きベクトル予測部243、動きベクトルバッファ244、モード選択部245及び情報生成部246を有する。
(1)ベースレイヤ
本実施例に係るベースレイヤの動き探索処理は、上述した第1の実施例に係るベースレイヤの動き探索処理と同様であってよい。但し、本実施例では、ベースレイヤのプレディクタ情報はバッファリングされなくてよく、ベースレイヤの動きベクトル情報がレイヤをまたいでバッファリングされる。ベースレイヤの動き探索処理において、探索制御部241は、符号化単位内に1つ以上の予測単位を配置し、各予測単位について動きベクトル算出部242に動きベクトルを算出させる。動きベクトル算出部242により算出された動きベクトルは、動きベクトル予測部243へ出力されると共に、動きベクトルバッファ244に記憶される。動きベクトル予測部243は、複数のプレディクタ候補の各々に従い、動きベクトルバッファ244に記憶されている参照動きベクトルを用いて予測動きベクトルを生成する。そして、動きベクトル予測部243は、動きベクトル算出部242により算出された動きベクトルと予測動きベクトルとの差分である差分動きベクトルを算出する。モード選択部245は、動きベクトル算出部242により算出された動きベクトルを用いて予測画像データを生成し、生成した予測画像データと原画像データとの比較に基づいて計算されるコスト関数値を評価する。そして、モード選択部245は、コスト関数値を最小にする最適な予測単位の配置と各予測単位についての最適なプレディクタとを選択する。情報生成部246は、各予測単位について選択された最適なプレディクタを示すプレディクタ情報及び対応する差分動きベクトルを示す差分動きベクトル情報を含むインター予測に関する情報を生成する。そして、情報生成部246は、生成したインター予測に関する情報、コスト関数値及び予測画像データをセレクタ27へ出力する。
(2)エンハンスメントレイヤ
本実施例に係るベースレイヤの動き探索処理において探索されるプレディクタ候補は、上述した空間的プレディクタ及び時間的プレディクタの一方又は双方を含んでよい。さらに、本実施例に係るエンハンスメントレイヤの動き探索処理では、追加的なプレディクタ候補が導入される。ここで導入されるプレディクタ候補は、下位レイヤの対応する予測単位に設定された動きベクトルを参照動きベクトルとするプレディクタ候補である。このようなプレディクタを、本明細書では、レイヤ間プレディクタという。
図9は、レイヤ間プレディクタの一例について説明するための説明図である。図9を参照すると、上位レイヤであるレイヤL12内の予測単位PTe、及び予測単位PTeの予測動きベクトルPMVeが示されている。下位レイヤであるレイヤL11内の予測単位PTbaseは、予測単位PTeに対応する予測単位である。参照動きベクトルMVbaseは、予測単位PTbaseに設定された動きベクトルである。レイヤ間プレディクタは、例えば次の式(8)により表され得る。
なお、下位レイヤと上位レイヤとで空間解像度が異なる場合には、下位レイヤと上位レイヤとの間の空間解像度の比率Nに応じて次式のように拡大された動きベクトルが、レイヤ間プレディクタとして用いられてもよい。その際、レイヤ間プレディクタの垂直成分及び水平成分の値は、上位レイヤの動きベクトルの精度(例えば、1/4画素精度など)に適合するように丸められ得る。
第1の実施例と異なり、本実施例では、エンハンスメントレイヤの動き探索処理においても、複数のプレディクタ候補からの最適なプレディクタの選択が行われる。
まず、探索制御部241は、符号化単位内の各予測単位について動きベクトル算出部242に動きベクトルを算出させる。動きベクトル算出部242により算出された動きベクトルは、動きベクトル予測部243へ出力されると共に、動きベクトルバッファ244に記憶される。動きベクトルバッファ244には、下位レイヤの各予測単位について算出された動きベクトル(参照動きベクトル)もまた記憶されている。動きベクトル予測部243は、複数のプレディクタ候補の各々に従い、動きベクトルバッファ244に記憶されている参照動きベクトルを用いて予測動きベクトルを生成する。ここでの複数のプレディクタ候補は、上述したレイヤ間プレディクタを含む。そして、動きベクトル予測部243は、動きベクトル算出部242により算出された動きベクトルと予測動きベクトルとの差分である差分動きベクトルを算出する。モード選択部245は、動きベクトル算出部242により算出された動きベクトルを用いて予測画像データを生成し、生成した予測画像データと原画像データとの比較に基づいて計算されるコスト関数値を評価する。そして、モード選択部245は、各予測単位についての最適なプレディクタを選択する。情報生成部246は、各予測単位について選択された最適なプレディクタを示すプレディクタ情報及び対応する差分動きベクトルを示す差分動きベクトル情報を含むインター予測に関する情報を生成する。上述したレイヤ間プレディクタが最適なプレディクタとして選択された場合には、プレディクタ情報は、下位レイヤの参照動きベクトルを特定するインデックスを含み得る。そして、情報生成部246は、生成したインター予測に関する情報、コスト関数値及び予測画像データをセレクタ27へ出力する。
(3)処理の流れ
図10は、本実施例に係る動き探索部40による動き探索処理の流れの一例を示すフローチャートである。図10を参照すると。まず、動き探索部40は、ベースレイヤの動き探索処理を行う(ステップS120)。その結果、各符号化単位内の予測単位の配置が決定され、各予測単位の最適なプレディクタが選択される。動きベクトルバッファ244は、各予測単位について算出された動きベクトルをバッファリングする。
ステップS121〜S127の処理は、エンハンスメントレイヤの動き探索処理である。これら処理のうちステップS121〜S126の処理は、各エンハンスメントレイヤの各注目PUについて繰り返される。なお、以下の説明において、「上位レイヤ」は予測対象のレイヤであり、「下位レイヤ」は予測対象のレイヤの下位のレイヤである。
まず、動きベクトル算出部242は、上位レイヤの1つの注目PUについて、原画像の画素値、及びフレームメモリ25から入力される参照画像の画素値に基づいて、動きベクトルを算出する(ステップS121)。そして、動きベクトル算出部242は、算出した動きベクトルを、動きベクトル予測部243及び動きベクトルバッファ244へ出力する。
次に、動きベクトル予測部243は、複数のプレディクタ候補の各々に従い、動きベクトルバッファ244に記憶されている参照動きベクトルを用いて、注目PUについての予測動きベクトルをそれぞれ生成する(ステップS122)。ここでの複数のプレディクタ候補は、レイヤ間プレディクタを含む。次に、動きベクトル予測部243は、複数のプレディクタ候補の各々について、差分動きベクトルをそれぞれ算出する(ステップS123)。そして、動きベクトル予測部243は、各プレディクタ候補についての動きベクトル及び差分動きベクトルをモード選択部245へ出力する。
次に、モード選択部245は、各プレディクタ候補について予測画像データを生成し、コスト関数値を評価することにより最適なプレディクタを選択する(ステップS124)。そして、情報生成部246は、選択された最適なプレディクタを示すプレディクタ情報及び対応する差分動きベクトルを示す差分動きベクトル情報を生成する(ステップS125)。
その後、予測対象のレイヤ内に未処理のPUが残っている場合には、処理はステップS121に戻る(ステップS126)。一方、未処理のPUが残っていない場合には、さらに残りのレイヤ(より上位のレイヤ)が存在するかが判定される(ステップS127)、ここで、残りのレイヤが存在する場合には、それまでの予測対象のレイヤを下位レイヤ、次のレイヤを上位レイヤとして、ステップS121以降の処理が繰り返される。下位レイヤの各注目PUについて算出された動きベクトルは、動きベクトルバッファ244によりバッファリングされる。残りのレイヤが存在しない場合には、図10の動き探索処理は終了する。ここで生成された予測画像データ及び(プレディクタ情報と差分動きベクトル情報とを含み得る)インター予測に関する情報は、スイッチ27を介して、減算部13及び可逆符号化部16へそれぞれ出力され得る。
このように、第2の実施例では、上位レイヤのインター予測に関する情報として、下位レイヤに設定された動きベクトルに基づくレイヤ間プレディクタを使用すべきことを示すプレディクタ情報が符号化され得る。従って、動きの相関の顕著な下位レイヤの対応する予測単位に基づく動きベクトルの予測が可能となる。よって、動きベクトルの予測の精度が高められる結果、差分動きベクトルの符号量を削減することができる。
なお、プレディクタ情報を符号化する可逆符号化部16は、上位レイヤのプレディクタ情報の符号化において、複数のプレディクタ候補の中でレイヤ間プレディクタに最小の符号番号を割り当ててよい。通常、レイヤ間の動きの相関は、動きの空間的な相関及び動きの時間的な相関よりも強い。従って、レイヤ間プレディクタに最小の符号番号を割り当てることで、可変長符号化後の符号化ストリームにおいてより短い符号語をより多く使用することが可能となり、符号量の一層の削減が図られる。
[2−3.第3の実施例]
図11は、第3の実施例に係る動き探索部40の詳細な構成の一例を示すブロック図である。図11を参照すると、動き探索部40は、探索制御部341、動きベクトル算出部342、動きベクトルバッファ344、モード選択部345、情報生成部346及びマージ情報バッファ347を有する。
(1)ベースレイヤ
ベースレイヤの動き探索処理において、探索制御部341は、符号化単位内に1つ以上の予測単位を配置し、各予測単位について動きベクトル算出部342に動きベクトルを算出させる。動きベクトル算出部342により算出された動きベクトルは、モード選択部345へ出力されると共に、動きベクトルバッファ344に記憶される。モード選択部345は、ある予測単位について動きベクトル算出部342により算出された動きベクトルが隣接する1つ以上の予測単位に設定された参照動きベクトルと共通である場合に、これら予測単位をマージすることを決定する。上記非特許文献3により提案されている手法では、ある予測単位は、上に隣接する予測単位又は左に隣接する予測単位とマージされ得る。即ち、モード選択部345は、例えば、マージモードとして、上に隣接する予測単位とのマージ、左に隣接する予測単位とのマージ、又はマージなし、のいずれかを選択し得る。さらに、モード選択部345は、各予測単位について予測画像データを生成し、生成した予測画像データと原画像データとの比較に基づいてコスト関数値を計算する。情報生成部346は、各予測単位についてのマージモードを示すマージ情報と、他の予測単位とマージされない予測単位についての動きベクトル情報とを含むインター予測に関する情報を生成する。そして、情報生成部346は、生成したインター予測に関する情報、コスト関数値及び予測画像データをセレクタ27へ出力する。
本実施例において生成されるマージ情報は、例えば、「MergeFlag」及び「MergeLeftFlag」という2つのフラグを含み得る。MergeFlagは、注目PUの動きベクトルが少なくとも1つの隣接PUの動きベクトルと共通であるか否かを示すフラグである。例えば、MergeFlag=1の場合、注目PUの動きベクトルは少なくとも1つの隣接PUの動きベクトルと共通である。MergeFlag=0の場合、注目PUの動きベクトルはいずれの隣接PUの動きベクトルとも異なる。MergeFlag=0の場合、MergeLeftFlagは符号化されず、その代わりに注目PUについて動きベクトル(及び参照画像情報などの動き情報)が符号化される。MergeFlag=1であって、2つの隣接PUの動きベクトルが共通である場合にも、MergeLeftFlagは符号化されなくてよい。
MergeLeftFlagは、注目PUの動きベクトルが左の隣接PUの動きベクトルと共通であるか否かを示すフラグである。例えば、MergeLeftFlag=1の場合、注目PUの動きベクトルは左の隣接PUの動きベクトルと共通である。MergeLeftFlag=0の場合、注目PUの動きベクトルは、左の隣接PUの動きベクトルと異なり、上の隣接PUの動きベクトルと共通である。
図12A〜図12Cは、本実施例において生成され得るマージ情報の例をそれぞれ示している。これら3つの図において、レイヤL21内の注目PUである予測単位B20が示されている。予測単位B21及びB22は、それぞれ予測単位B20の左及び上に隣接している。動きベクトルMV20は、予測単位B20について動きベクトル算出部342により算出された動きベクトルである。動きベクトルMV21及びMV22は、それぞれ予測単位B21及びB22に設定された参照動きベクトルである。
図12Aの例において、動きベクトルMV20は、参照動きベクトルMV21及びMV22の双方と共通である。この場合、情報生成部346は、マージ情報として、MergeFlag=1を生成する。MergeLeftFlagは、マージ情報には含められない。このようなマージ情報を受け取った復号側は、MergeLeftFlagを復号することなく、予測単位B21又はB22に設定された動きベクトルと共通の動きベクトルを予測単位B20に設定し得る。
図12Bの例において、動きベクトルMV20は、参照動きベクトルMV21と共通であり、参照動きベクトルMV22と異なる。この場合、情報生成部346は、マージ情報として、MergeFlag=1及びMergeLeftFlag=1を生成する。このようなマージ情報を受け取った復号側は、予測単位B21に設定された動きベクトルと共通の動きベクトルを予測単位B20に設定し得る。
図12Cの例において、動きベクトルMV20は、参照動きベクトルMV22と共通であり、参照動きベクトルMV21と異なる。この場合、情報生成部346は、マージ情報として、MergeFlag=1及びMergeLeftFlag=0を生成する。このようなマージ情報を受け取った復号側は、予測単位B22に設定された動きベクトルと共通の動きベクトルを予測単位B20に設定し得る。
(2)エンハンスメントレイヤ
エンハンスメントレイヤの動き探索処理では、マージ情報バッファ347に記憶されている下位レイヤのマージ情報を用いて、各予測単位に動きベクトルが設定される。
まず、探索制御部341は、上位レイヤの符号化単位内の各予測単位に対応する下位レイヤ内の予測単位についてのマージ情報をマージ情報バッファ347から取得する。そして、探索制御部341は、取得したマージ情報がマージなしを示している場合(例えば、MergeFlag=0)には、上位レイヤの当該予測単位について動きベクトル算出部342に動きベクトルを算出させる。動きベクトル算出部342により算出された動きベクトルは、モード選択部345へ出力されると共に、動きベクトルバッファ344に記憶される。一方、探索制御部341は、取得したマージ情報が他の予測単位とのマージを示している場合には、上位レイヤの当該予測単位について動きベクトル算出部342に動きベクトルを算出させない。その代わりに、モード選択部345は、他の予測単位とマージされる予測単位について、動きベクトルバッファ344から取得される(マージ先の予測単位の)動きベクトル(例えば、MergeLeftFlag=1であれば、左に隣接する予測単位の動きベクトル)を用いて予測画像データを生成し、及びコスト関数値を計算する。一方、モード選択部345は、他の予測単位とマージされない予測単位については、動きベクトル算出部342から入力される動きベクトルを用いて予測画像データを生成し、及びコスト関数値を計算する。情報生成部346は、他の予測単位とマージされない予測単位についての動きベクトル情報を含むインター予測に関する情報を生成する。そして、情報生成部346は、生成したインター予測に関する情報、コスト関数値及び予測画像データをセレクタ27へ出力する。
(3)処理の流れ
図13は、本実施例に係る動き探索部40による動き探索処理の流れの一例を示すフローチャートである。図13を参照すると。まず、動き探索部341は、ベースレイヤの動き探索処理を行う(ステップS130)。その結果、各符号化単位内の予測単位の配置が決定され、各予測単位のマージモードが選択される。動きベクトルバッファ344は、各予測単位について算出された動きベクトルをバッファリングする。マージ情報バッファ347は、各予測単位について選択されたマージモードを示すマージ情報を設定情報としてバッファリングする。
ステップS131〜S136の処理は、エンハンスメントレイヤの動き探索処理である。これら処理のうちステップS131〜S135の処理は、各エンハンスメントレイヤの各注目PUについて繰り返される。なお、以下の説明において、「上位レイヤ」は予測対象のレイヤであり、「下位レイヤ」は予測対象のレイヤの下位のレイヤである。
まず、探索制御部341は、上位レイヤの1つの注目PUについて、対応する下位レイヤのPUが他のPUとマージされているかを、マージ情報バッファ347に記憶されているマージ情報を参照することにより判定する(ステップS131)。ここで、対応する下位レイヤのPUが他のPUとマージされている場合には、注目PUもまた他のPUとマージされるため、その後のステップS132の処理はスキップされる。
ステップS132において、動きベクトル算出部342は、他のPUとマージされない注目PUについて、原画像の画素値、及びフレームメモリ25から入力される参照画像の画素値に基づいて、動きベクトルを算出する(ステップS132)。そして、動きベクトル算出部342は、算出した動きベクトルを、モード選択部345及び動きベクトルバッファ344へ出力する。
次に、モード選択部345は、動きベクトル算出部342により算出され又は動きベクトルバッファ344から取得される動きベクトルを用いて予測画像データを生成し、コスト関数値を計算する(ステップS133)。そして、情報生成部346は、他のPUとマージされない注目PUについて動きベクトル情報を生成する(ステップS134)。
その後、予測対象のレイヤ内に未処理のPUが残っている場合には、処理はステップS131に戻る(ステップS135)。一方、未処理のPUが残っていない場合には、さらに残りのレイヤ(より上位のレイヤ)が存在するかが判定される(ステップS136)、ここで、残りのレイヤが存在する場合には、それまでの予測対象のレイヤを下位レイヤ、次のレイヤを上位レイヤとして、ステップS131以降の処理が繰り返される。下位レイヤの各注目PUについて算出された動きベクトルは、動きベクトルバッファ344によりバッファリングされる。マージ情報は、マージ情報バッファ347により引き続きバッファリングされる。残りのレイヤが存在しない場合には、図13の動き探索処理は終了する。ここで生成された予測画像データ及びインター予測に関する情報は、スイッチ27を介して、減算部13及び可逆符号化部16へそれぞれ出力され得る。
このように、第3の実施例では、上位レイヤのインター予測に関する情報としてマージ情報が符号化されず、下位レイヤのマージ情報が再利用されるため、インター予測に関する情報の符号量を削減することができる。
[2−4.第4の実施例]
図14は、第4の実施例に係る動き探索部40の詳細な構成の一例を示すブロック図である。図14を参照すると、動き探索部40は、探索制御部441、動きベクトル算出部442、動きベクトルバッファ444、モード選択部445及び情報生成部446を有する。
(1)ベースレイヤ
本実施例に係るベースレイヤの動き探索処理は、上述した第3の実施例に係るベースレイヤの動き探索処理と同様であってよい。但し、本実施例では、ベースレイヤのマージ情報はバッファリングされなくてよい。ベースレイヤの動き探索処理において、探索制御部441は、符号化単位内に1つ以上の予測単位を配置し、各予測単位について動きベクトル算出部442に動きベクトルを算出させる。動きベクトル算出部442により算出された動きベクトルは、モード選択部445へ出力されると共に、動きベクトルバッファ444に記憶される。モード選択部445は、ある予測単位について動きベクトル算出部442により算出された動きベクトルが隣接する1つ以上の予測単位に設定された参照動きベクトルと共通である場合に、これら予測単位をマージすることを決定する。モード選択部445は、各予測単位について予測画像データを生成し、生成した予測画像データと原画像データとの比較に基づいてコスト関数値を計算する。情報生成部346は、各予測単位についてのマージモードを示すマージ情報と、他の予測単位とマージされない予測単位についての動きベクトル情報とを含むインター予測に関する情報を生成する。そして、情報生成部346は、生成したインター予測に関する情報、コスト関数値及び予測画像データをセレクタ27へ出力する。
(2)エンハンスメントレイヤ
本実施例に係るベースレイヤの動き探索処理において生成されるマージ情報は、第3の実施例と同様の「MergeFlag」及び「MergeLeftFlag」という2つのフラグを含んでよい。これに対し、エンハンスメントレイヤの動き探索処理において生成されるマージ情報は、「MergeBaseFlag」という新たなフラグを追加的に含み得る。MergeBaseFlagは、注目PUの動きベクトルが対応する下位レイヤのPUの動きベクトルと共通であるか否かを示すフラグである。例えば、MergeBaseFlag=1の場合、注目PUの動きベクトルは対応する下位レイヤのPUの動きベクトルと共通である。
図15A〜図15Cは、本実施例において生成され得るマージ情報の例をそれぞれ示している。これら3つの図において、上位レイヤL30内の注目PUである予測単位B30が示されている。予測単位B31及びB32は、それぞれ予測単位B30の左及び上に隣接している。動きベクトルMV30は、予測単位B30について動きベクトル算出部442により算出された動きベクトルである。動きベクトルMV31及びMV32は、それぞれ予測単位B31及びB32に設定された参照動きベクトルである。下位レイヤ21内の注目PUに対応するPUである予測単位B20もまた示されている。動きベクトルMV20は、予測単位B20についてバッファリングされている参照動きベクトルである。
図15Aの例において、動きベクトルMV30は、参照動きベクトルMV31、MV32及びMV20の全てと共通である。この場合、情報生成部446は、マージ情報として、MergeFlag=1を生成する。MergeBaseFlag及びMergeLeftFlagは、マージ情報には含められない。このようなマージ情報を受け取った復号側は、MergeBaseFlag及びMergeLeftFlagを復号することなく、予測単位B20、B31又はB32に設定された動きベクトルと共通の動きベクトルを予測単位B30に設定し得る。
図15Bの例において、動きベクトルMV30は、参照動きベクトルMV20と共通であり、参照動きベクトルMV31及びMV32と異なる。この場合、情報生成部446は、マージ情報として、MergeFlag=1及びMergeBaseFlag=1を生成する。このようなマージ情報を受け取った復号側は、下位レイヤL21内の予測単位B20に設定された動きベクトルと共通の動きベクトルを上位レイヤL30内の予測単位B30に設定し得る。
図15Cの例において、動きベクトルMV30は、参照動きベクトルMV31と共通であり、参照動きベクトルMV20及びMV32と異なる。この場合、情報生成部446は、マージ情報として、MergeFlag=1、MergeBaseFlag=0及びMergeLeftFlag=1を生成する。このようなマージ情報を受け取った復号側は、予測単位B31に設定された動きベクトルと共通の動きベクトルを予測単位B30に設定し得る。
エンハンスメントレイヤの動き探索処理において、探索制御部441は、符号化単位内の各予測単位について動きベクトル算出部442に動きベクトルを算出させる。動きベクトル算出部442により算出された動きベクトルは、モード選択部445へ出力されると共に、動きベクトルバッファ444に記憶される。動きベクトルバッファ444には、下位レイヤの各予測単位について算出された動きベクトル(参照動きベクトル)もまた記憶されている。モード選択部445は、ある予測単位について動きベクトル算出部442により算出された動きベクトルが隣接する予測単位又は下位レイヤ内の対応する予測単位に設定された参照動きベクトルと共通である場合に、これら予測単位をマージすることを決定する。即ち、モード選択部445は、例えば、マージモードとして、下位レイヤとのマージ、上に隣接する予測単位とのマージ若しくは左に隣接する予測単位とのマージ、又はマージなし、のいずれかを選択し得る。さらに、モード選択部445は、各予測単位について予測画像データを生成し、生成した予測画像データと原画像データとの比較に基づいてコスト関数値を計算する。情報生成部346は、各予測単位についてのマージモードを示すマージ情報と、他の予測単位とマージされない予測単位についての動きベクトル情報とを含むインター予測に関する情報を生成する。そして、情報生成部346は、生成したインター予測に関する情報、コスト関数値及び予測画像データをセレクタ27へ出力する。
(3)処理の流れ
図16は、本実施例に係る動き探索部40による動き探索処理の流れの一例を示すフローチャートである。図16を参照すると。まず、動き探索部441は、ベースレイヤの動き探索処理を行う(ステップS140)。その結果、各符号化単位内の予測単位の配置が決定され、各予測単位のマージモードが選択される。動きベクトルバッファ444は、各予測単位について算出された動きベクトルをバッファリングする。
ステップS141〜S146の処理は、エンハンスメントレイヤの動き探索処理である。これら処理のうちステップS141〜S145の処理は、各エンハンスメントレイヤの各注目PUについて繰り返される。なお、以下の説明において、「上位レイヤ」は予測対象のレイヤであり、「下位レイヤ」は予測対象のレイヤの下位のレイヤである。
まず、動きベクトル算出部442は、上位レイヤの1つの注目PUについて、原画像の画素値、及びフレームメモリ25から入力される参照画像の画素値に基づいて、動きベクトルを算出する(ステップS141)。そして、動きベクトル算出部442は、算出した動きベクトルを、モード選択部445及び動きベクトルバッファ444へ出力する。
次に、モード選択部445は、動きベクトル算出部442により算出された動きベクトルを動きベクトルバッファ444に記憶されている参照動きベクトルと比較することにより、マージモードを選択する(ステップS142)。例えば、注目PUについて算出された動きベクトルが下位レイヤ内の対応するPUについてバッファリングされている参照動きベクトルと共通である場合には、下位レイヤとのマージが選択され得る。
次に、モード選択部445は、注目PUについての動きベクトルを用いて予測画像データを生成し、コスト関数値を計算する(ステップS144)。そして、情報生成部446は、注目PUについてのマージ情報(及び他のPUとマージされない注目PUについては動きベクトル情報)を含む設定情報を生成する(ステップS144)。
その後、予測対象のレイヤ内に未処理のPUが残っている場合には、処理はステップS141に戻る(ステップS145)。一方、未処理のPUが残っていない場合には、さらに残りのレイヤ(より上位のレイヤ)が存在するかが判定される(ステップS146)、ここで、残りのレイヤが存在する場合には、それまでの予測対象のレイヤを下位レイヤ、次のレイヤを上位レイヤとして、ステップS141以降の処理が繰り返される。下位レイヤの各注目PUについて算出された動きベクトルは、動きベクトルバッファ444によりバッファリングされる。残りのレイヤが存在しない場合には、図16の動き探索処理は終了する。ここで生成された予測画像データ及びインター予測に関する情報は、スイッチ27を介して、減算部13及び可逆符号化部16へそれぞれ出力され得る。
このように、第4の実施例では、上位レイヤのインター予測に関する情報として、注目PUが下位レイヤ内の対応するPUとマージされること(共通する動きベクトルが設定されること)を示すマージ情報が符号化され得る。従って、動きの相関の顕著な下位レイヤとの間の予測単位のマージが可能となり、マージされる上位レイヤ内の予測単位については動きベクトルが符号化されないため、符号量を効果的に削減することができる。
<3.画像復号装置の構成例>
図17は、一実施形態に係る画像復号装置60の構成の一例を示すブロック図である。図17を参照すると、画像復号装置60は、蓄積バッファ61、可逆復号部62、逆量子化部63、逆直交変換部64、加算部65、デブロックフィルタ66、並び替えバッファ67、D/A(Digital to Analogue)変換部68、フレームメモリ69、セレクタ70及び71、イントラ予測部80、並びに動き補償部90を備える。
蓄積バッファ61は、伝送路を介して入力される符号化ストリームを一時的に蓄積する。
可逆復号部62は、蓄積バッファ61から入力される符号化ストリームを、符号化の際に使用された符号化方式に従って復号する。また、可逆復号部62は、符号化ストリームのヘッダ領域に多重化されている情報を復号する。符号化ストリームのヘッダ領域に多重化されている情報とは、例えば、上述したインター予測に関する情報及びイントラ予測に関する情報を含み得る。可逆復号部62は、インター予測に関する情報を動き補償部90へ出力する。また、可逆復号部62は、イントラ予測に関する情報をイントラ予測部80へ出力する。
逆量子化部63は、可逆復号部62による復号後の量子化データを逆量子化する。逆直交変換部64は、符号化の際に使用された直交変換方式に従い、逆量子化部63から入力される変換係数データについて逆直交変換を行うことにより、予測誤差データを生成する。そして、逆直交変換部64は、生成した予測誤差データを加算部65へ出力する。
加算部65は、逆直交変換部64から入力される予測誤差データと、セレクタ71から入力される予測画像データとを加算することにより、復号画像データを生成する。そして、加算部65は、生成した復号画像データをデブロックフィルタ66及びフレームメモリ69へ出力する。
デブロックフィルタ66は、加算部65から入力される復号画像データをフィルタリングすることによりブロック歪みを除去し、フィルタリング後の復号画像データを並び替えバッファ67及びフレームメモリ69へ出力する。
並び替えバッファ67は、デブロックフィルタ66から入力される画像を並び替えることにより、時系列の一連の画像データを生成する。そして、並び替えバッファ67は、生成した画像データをD/A変換部68へ出力する。
D/A変換部68は、並び替えバッファ67から入力されるデジタル形式の画像データをアナログ形式の画像信号に変換する。そして、D/A変換部68は、例えば、画像復号装置60と接続されるディスプレイ(図示せず)にアナログ画像信号を出力することにより、画像を表示させる。
フレームメモリ69は、加算部65から入力されるフィルタリング前の復号画像データ、及びデブロックフィルタ66から入力されるフィルタリング後の復号画像データを記憶媒体を用いて記憶する。
セレクタ70は、可逆復号部62により取得されるモード情報に応じて、画像内のブロックごとに、フレームメモリ69からの画像データの出力先をイントラ予測部80と動き補償部90との間で切り替える。例えば、セレクタ70は、イントラ予測モードが指定された場合には、フレームメモリ69から供給されるフィルタリング前の復号画像データを参照画像データとしてイントラ予測部80へ出力する。また、セレクタ70は、インター予測モードが指定された場合には、フレームメモリ69から供給されるフィルタリング後の復号画像データを参照画像データとして動き補償部90へ出力する。
セレクタ71は、可逆復号部62により取得されるモード情報に応じて、加算部65へ供給すべき予測画像データの出力元をイントラ予測部80と動き補償部90との間で切り替える。例えば、セレクタ71は、イントラ予測モードが指定された場合には、イントラ予測部80から出力される予測画像データを加算部65へ供給する。また、セレクタ71は、インター予測モードが指定された場合には、動き補償部90から出力される予測画像データを加算部65へ供給する。
イントラ予測部80は、可逆復号部62から入力されるイントラ予測に関する情報とフレームメモリ69からの参照画像データとに基づいてイントラ予測処理を行い、予測画像データを生成する。そして、イントラ予測部80は、生成した予測画像データをセレクタ71へ出力する。
動き補償部90は、可逆復号部62から入力されるインター予測に関する情報とフレームメモリ69からの参照画像データとに基づいて動き補償処理を行い、予測画像データを生成する。本実施形態に係る動き補償部90による動き補償処理は、上記非特許文献2に記載された手法又は上記非特許文献3に記載された手法を拡張することにより実現され得る。そして、動き補償部90は、動き補償処理の結果として生成される予測画像データをセレクタ71へ出力する。次節において、動き補償部90の詳細な構成についての4つの実施例を説明する。
画像復号装置60は、ここで説明した一連の復号処理を、スケーラブル符号化された画像の複数のレイヤの各々について繰り返す。最初に復号されるレイヤは、ベースレイヤである。ベースレイヤが復号された後、1つ以上のエンハンスメントレイヤが復号される。エンハンスメントレイヤの復号に際しては、ベースレイヤ又は他のエンハンスメントレイヤである下位レイヤを復号することにより得られた情報が用いられる。
画像復号装置60によるスケーラブル復号に際しては、ある上位レイヤ内の予測単位に、下位レイヤ内の対応する予測単位に設定された動きベクトルに関連する設定情報を用いて動きベクトルが設定される。当該設定情報は、例えば、上述したプレディクタ情報、マージ情報又は動きベクトル情報を含み得る。
<4.動き補償部の詳細な構成例>
本節では、図17に示した動き補償部90の詳細な構成についての4つの実施例を説明する。その4つの実施例は、上述した画像符号化装置10の動き探索部40の4つの実施例にそれぞれ対応する。第1及び第2の実施例は、上記非特許文献2に記載された手法の拡張についての実施例である。一方、第3及び第4の実施例は、上記非特許文献3に記載された手法の拡張についての実施例である。
[4−1.第1の実施例]
図18は、第1の実施例に係る動き補償部90の詳細な構成の一例を示すブロック図である。図18を参照すると、動き補償部90は、情報取得部191、動きベクトル設定部192、プレディクタ情報バッファ193、動きベクトルバッファ194及び補償部195を有する。
(1)ベースレイヤ
ベースレイヤの動き補償処理において、情報取得部191は、可逆復号部62により符号化ストリームから復号されるインター予測に関する情報を取得する。本実施例において、インター予測に関する情報は、プレディクタ情報及び差分動きベクトル情報(動きベクトルの予測が行われない予測単位については動きベクトル情報)を含み得る。ここで取得されるプレディクタ情報は、例えば、上述した様々なプレディクタ候補のうち符号化の際に各予測単位について選択されたプレディクタを示す。動きベクトル設定部192は、各予測単位に動きベクトルを設定する。そして、動きベクトル設定部192により各予測単位に設定された動きベクトルは、補償部195へ出力されると共に、動きベクトルバッファ194に記憶される。また、各予測単位についてのプレディクタ情報は、上位レイヤでの処理のために、プレディクタ情報バッファ193に一時的に記憶される。動きベクトル設定部192による動きベクトルの設定は、各予測単位についてプレディクタ情報により示されるプレディクタと差分動きベクトル情報により示される差分動きベクトルとを用いて行われ得る。例えば、ある予測単位についてプレディクタ情報が式(1)に示したような空間的プレディクタを示している場合、動きベクトル設定部192は、当該予測単位に隣接する予測単位の参照動きベクトルを動きベクトルバッファ194から取得する。そして、動きベクトル設定部192は、取得した参照動きベクトルを式(1)に代入し、予測動きベクトルを生成する。さらに、動きベクトル設定部192は、生成した予測動きベクトルに差分動きベクトルを加算することにより、動きベクトルを再構築する。このように再構築された動きベクトルが、各予測単位に設定され得る。補償部195は、動きベクトル設定部192により各予測単位に設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、各予測単位の予測画像データを生成する。そして、補償部195は、生成した予測画像データをスイッチ71を介して加算部65へ出力する。
(2)エンハンスメントレイヤ
エンハンスメントレイヤの動き補償処理では、プレディクタ情報バッファ193に記憶されている下位レイヤのプレディクタ情報に基づく動きベクトルの予測が行われる。
まず、情報取得部191は、可逆復号部62により符号化ストリームから復号されるインター予測に関する情報を取得する。本実施例において、エンハンスメントレイヤのインター予測に関する情報は、差分動きベクトル情報(動きベクトルの予測が行われない予測単位については動きベクトル情報)を含み得る。また、情報取得部191は、上位レイヤ内の各予測単位に動きベクトルを設定するための設定情報として、下位レイヤ内の対応する予測単位の動きベクトルの予測の際に用いられたプレディクタを示すプレディクタ情報を、プレディクタ情報バッファ193から取得する。ここで取得されるプレディクタ情報は、例えば、上述した空間的プレディクタ又は時間的プレディクタのうちのいずれかを示す。動きベクトル設定部192は、情報取得部191により取得された差分動きベクトル情報とプレディクタ情報とを用いて動きベクトルを再構築し、各予測単位に再構築された動きベクトルを設定する。動きベクトル設定部192により各予測単位に設定された動きベクトルは、補償部195へ出力されると共に、動きベクトルバッファ194に記憶される。補償部195は、動きベクトル設定部192により各予測単位に設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、各予測単位の予測画像データを生成する。そして、補償部195は、生成した予測画像データをスイッチ71を介して加算部65へ出力する。
(3)処理の流れ
図19は、本実施例に係る動き補償部90による動き補償処理の流れの一例を示すフローチャートである。図19を参照すると。まず、動き補償部90は、ベースレイヤの動き補償処理を行う(ステップS210)。その際、プレディクタ情報バッファ193は、各予測単位について符号化の際に選択されたプレディクタを示すプレディクタ情報を設定情報としてバッファリングする。
ステップS211〜S218の処理は、エンハンスメントレイヤの動き補償処理である。これら処理のうちステップS211〜S217の処理は、各エンハンスメントレイヤの各注目PUについて繰り返される。なお、以下の説明において、「上位レイヤ」は予測対象のレイヤであり、「下位レイヤ」は予測対象のレイヤの下位のレイヤである。
まず、情報取得部191は、上位レイヤの1つのPUを注目PUとし、注目PUに対応する下位レイヤ内のPUについてのプレディクタ情報を、プレディクタ情報バッファ193から取得する(ステップS211)。また、情報取得部191は、注目PUについての差分動きベクトル情報を取得する(ステップS212)。動きベクトル設定部192は、差分動きベクトル情報を復号する(ステップS213)。
次に、動きベクトル設定部192は、情報取得部191により取得されたプレディクタ情報及び参照動きベクトルを用いて、注目PUについての予測動きベクトルを生成する(ステップS214)。次に、動きベクトル設定部192は、生成した予測動きベクトルに差分動きベクトルを加算することにより、動きベクトルを再構築する(ステップS215)。このように再構築された動きベクトルが、注目PUに設定される。また、再構築された動きベクトルは、上位レイヤでの処理のために、動きベクトルバッファ194に一時的に記憶される。なお、動きベクトルの予測が行われない予測単位については、差分動きベクトル情報の代わりに動きベクトル情報が符号化ストリームから取得され、当該動きベクトル情報から動きベクトルが復号されてよい。
次に、補償部195は、動きベクトル設定部192により注目PUに設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、注目PUの予測画像データを生成する(ステップS216)。
その後、予測対象のレイヤ内に未処理のPUが残っている場合には、処理はステップS211に戻る(ステップS217)。一方、未処理のPUが残っていない場合には、さらに残りのレイヤ(より上位のレイヤ)が存在するかが判定される(ステップS218)。ここで、残りのレイヤが存在する場合には、それまでの予測対象のレイヤを下位レイヤ、次のレイヤを上位レイヤとして、ステップS211以降の処理が繰り返される。下位レイヤについて選択されたプレディクタを示すプレディクタ情報は、プレディクタ情報バッファ193により引き続きバッファリングされる。残りのレイヤが存在しない場合には、図19の動き補償処理は終了する。ここで生成された予測画像データは、スイッチ71を介して、加算部65へ出力され得る。
このように、第1の実施例では、上位レイヤの復号の際に下位レイヤのプレディクタ情報が再利用されるため、上位レイヤのためにプレディクタ情報を冗長的に符号化しなくてよい。従って、インター予測に関する情報の符号量を削減することができる。
[4−2.第2の実施例]
図20は、第2の実施例に係る動き補償部90の詳細な構成の一例を示すブロック図である。図20を参照すると、動き補償部90は、情報取得部291、動きベクトル設定部292、動きベクトルバッファ294及び補償部295を有する。
(1)ベースレイヤ
本実施例に係るベースレイヤの動き補償処理は、上述した第1の実施例に係るベースレイヤの動き補償処理と同様であってよい。但し、本実施例では、ベースレイヤのプレディクタ情報はバッファリングされなくてよく、ベースレイヤの動きベクトル情報がレイヤをまたいでバッファリングされる。ベースレイヤの動き補償処理において、情報取得部291は、可逆復号部62により符号化ストリームから復号されるインター予測に関する情報を取得する。本実施例において、インター予測に関する情報は、プレディクタ情報及び差分動きベクトル情報(動きベクトルの予測が行われない予測単位については動きベクトル情報)を含み得る。ここで取得されるプレディクタ情報は、例えば、上述した空間的プレディクタ及び時間的プレディクタを含み得るプレディクタ候補のうち符号化の際に各予測単位について選択されたプレディクタを示す。動きベクトル設定部292は、各予測単位に動きベクトルを設定する。そして、動きベクトル設定部292により各予測単位に設定された動きベクトルは、補償部295へ出力されると共に、動きベクトルバッファ294に記憶される。動きベクトル設定部292による動きベクトルの設定は、各予測単位についてプレディクタ情報により示されるプレディクタと差分動きベクトル情報により示される差分動きベクトルとを用いて行われ得る。補償部295は、動きベクトル設定部292により各予測単位に設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、各予測単位の予測画像データを生成する。そして、補償部295は、生成した予測画像データをスイッチ71を介して加算部65へ出力する。
(2)エンハンスメントレイヤ
エンハンスメントレイヤの動き補償処理では、動きベクトルバッファ294に記憶されている下位レイヤの参照動きベクトルに基づくレイヤ間プレディクタを用いた動きベクトルの予測が行われ得る。
まず、情報取得部291は、可逆復号部62により符号化ストリームから復号されるインター予測に関する情報を取得する。本実施例において、エンハンスメントレイヤのインター予測に関する情報は、差分動きベクトル情報に加えて、レイヤ間プレディクタを含む複数のプレディクタ候補から符号化の際に選択されたプレディクタを示すプレディクタ情報を設定情報として含み得る。なお、レイヤ間プレディクタが選択されたことを示すプレディクタ情報には、複数のプレディクタ候補の中で最小の符号番号が割り当てられ得る。動きベクトル設定部292は、情報取得部291により取得された差分動きベクトル情報とプレディクタ情報とを用いて動きベクトルを再構築し、各予測単位に再構築された動きベクトルを設定する。なお、動きベクトル設定部292は、プレディクタ情報がレイヤ間プレディクタを示している場合には、上述した式(9)のように、レイヤ間の空間解像度の比率に応じて拡大された参照動きベクトルを、予測動きベクトルとしてよい。その際、動きベクトル設定部292は、予測動きベクトルを動きベクトル精度に応じて丸めてもよい。動きベクトル設定部292により各予測単位に設定された動きベクトルは、補償部295へ出力されると共に、動きベクトルバッファ294に記憶される。補償部295は、動きベクトル設定部292により各予測単位に設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、各予測単位の予測画像データを生成する。そして、補償部295は、生成した予測画像データをスイッチ71を介して加算部65へ出力する。
(3)処理の流れ
図21は、本実施例に係る動き補償部90による動き補償処理の流れの一例を示すフローチャートである。図21を参照すると。まず、動き補償部90は、ベースレイヤの動き補償処理を行う(ステップS220)。その際、動きベクトルバッファ294は、各予測単位に設定された動きベクトルをバッファリングする。
ステップS221〜S228の処理は、エンハンスメントレイヤの動き補償処理である。これら処理のうちステップS221〜S227の処理は、各エンハンスメントレイヤの各注目PUについて繰り返される。なお、以下の説明において、「上位レイヤ」は予測対象のレイヤであり、「下位レイヤ」は予測対象のレイヤの下位のレイヤである。
まず、情報取得部291は、上位レイヤの1つのPUを注目PUとし、注目PUについての差分動きベクトル情報及びプレディクタ情報を符号化ストリームから取得する(ステップS221)。動きベクトル設定部292は、差分動きベクトル情報を復号する(ステップS222)。また、動きベクトル設定部292は、プレディクタ情報を用いて、注目PUの予測動きベクトルの生成の際に用いるべきプレディクタを特定する(ステップS223)。
次に、動きベクトル設定部292は、特定したプレディクタに従い、動きベクトルバッファ294によりバッファリングされている参照動きベクトルを用いて、注目PUについての予測動きベクトルを生成する(ステップS224)。例えば、特定したプレディクタがレイヤ間プレディクタである場合には、注目PUに対応する下位レイヤ内のPUについて設定された動きベクトルが、上述した式(8)又は式(9)の参照動きベクトルMVbaseとして使用される。次に、動きベクトル設定部292は、生成した予測動きベクトルに差分動きベクトルを加算することにより、動きベクトルを再構築する(ステップS225)。このように再構築された動きベクトルが、注目PUに設定される。また、再構築された動きベクトルは、上位レイヤでの処理のために、動きベクトルバッファ294に一時的に記憶される。なお、動きベクトルの予測が行われない予測単位については、差分動きベクトル情報の代わりに動きベクトル情報が符号化ストリームから取得され、当該動きベクトル情報から動きベクトルが復号されてよい。
次に、補償部295は、動きベクトル設定部292により注目PUに設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、注目PUの予測画像データを生成する(ステップS226)。
その後、予測対象のレイヤ内に未処理のPUが残っている場合には、処理はステップS221に戻る(ステップS227)。一方、未処理のPUが残っていない場合には、さらに残りのレイヤ(より上位のレイヤ)が存在するかが判定される(ステップS228)。ここで、残りのレイヤが存在する場合には、それまでの予測対象のレイヤを下位レイヤ、次のレイヤを上位レイヤとして、ステップS221以降の処理が繰り返される。残りのレイヤが存在しない場合には、図21の動き補償処理は終了する。ここで生成された予測画像データは、スイッチ71を介して、加算部65へ出力され得る。
このように、第2の実施例では、上位レイヤの動き補償の際に使用される動きベクトルを、下位レイヤに設定された動きベクトルに基づくレイヤ間プレディクタに従って予測することができる。従って、動きベクトルの予測の精度が高められる結果、差分動きベクトルの符号量を削減することができる。
[4−3.第3の実施例]
図22は、第3の実施例に係る動き補償部90の詳細な構成の一例を示すブロック図である。図22を参照すると、動き補償部90は、情報取得部391、動きベクトル設定部392、マージ情報バッファ393、動きベクトルバッファ394及び補償部395を有する。
(1)ベースレイヤ
ベースレイヤの動き補償処理において、情報取得部391は、可逆復号部62により符号化ストリームから復号されるインター予測に関する情報を取得する。本実施例において、インター予測に関する情報は、マージ情報及び動きベクトル情報を含み得る。ここで取得されるマージ情報は、例えば、図12A〜図12Cを用いて説明したMergeFlag及びMergeLeftFlagを含み、複数のマージモードの候補のうち符号化の際に各予測単位について選択されたマージモードを示し得る。動きベクトル設定部392は、各予測単位に動きベクトルを設定する。そして、動きベクトル設定部392により各予測単位に設定された動きベクトルは、補償部395へ出力されると共に、動きベクトルバッファ394に記憶される。また、各予測単位についてのマージ情報は、上位レイヤでの処理のために、マージ情報バッファ393に記憶される。動きベクトル設定部392は、例えば、ある予測単位が当該予測単位に隣接する隣接予測単位とマージされること(これら予測単位に共通する動きベクトルが設定されること)をマージ情報が示している場合には、隣接予測単位に設定された動きベクトルを動きベクトルバッファ394から取得し、取得した動きベクトルを上記予測単位に設定する。一方、動きベクトル設定部392は、ある予測単位が他の予測単位とマージされないことをマージ情報が示している場合には、情報取得部391により取得された動きベクトル情報を復号することにより再構築される動きベクトルを上記予測単位に設定する。補償部395は、動きベクトル設定部392により各予測単位に設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、各予測単位の予測画像データを生成する。そして、補償部395は、生成した予測画像データをスイッチ71を介して加算部65へ出力する。
(2)エンハンスメントレイヤ
エンハンスメントレイヤの動き補償処理では、マージ情報バッファ393に記憶されている下位レイヤのマージ情報に従って、各予測単位に動きベクトルが設定される。
まず、情報取得部391は、上位レイヤ内の各予測単位に動きベクトルを設定するための設定情報として、各予測単位に対応する下位レイヤ内の予測単位についてのマージ情報を、マージ情報バッファ393から取得する。また、情報取得部391は、他の予測単位とマージされない予測単位について、インター予測に関する情報に含まれる動きベクトル情報を取得する。情報取得部391により取得されるマージ情報は、例えば、図12A〜図12Cを用いて説明したMergeFlag及びMergeLeftFlagを含み得る。動きベクトル設定部392は、情報取得部391により取得されたマージ情報に従って、各予測単位に動きベクトルを設定する。動きベクトル設定部392により各予測単位に設定された動きベクトルは、補償部395へ出力されると共に、動きベクトルバッファ394に記憶される。動きベクトル設定部392は、他の予測単位とマージされない予測単位については、動きベクトル情報を復号することにより再構築される動きベクトルを当該予測単位に設定してよい。補償部395は、動きベクトル設定部392により各予測単位に設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、各予測単位の予測画像データを生成する。そして、補償部395は、生成した予測画像データをスイッチ71を介して加算部65へ出力する。
(3)処理の流れ
図23は、本実施例に係る動き補償部90による動き補償処理の流れの一例を示すフローチャートである。図23を参照すると。まず、動き補償部90は、ベースレイヤの動き補償処理を行う(ステップS230)。その際、マージ情報バッファ393は、各予測単位について符号化の際に選択されたマージモードを示すマージ情報を設定情報としてバッファリングする。
ステップS231〜S238の処理は、エンハンスメントレイヤの動き補償処理である。これら処理のうちステップS231〜S237の処理は、各エンハンスメントレイヤの各注目PUについて繰り返される。なお、以下の説明において、「上位レイヤ」は予測対象のレイヤであり、「下位レイヤ」は予測対象のレイヤの下位のレイヤである。
まず、情報取得部391は、上位レイヤの1つのPUを注目PUとし、注目PUに対応する下位レイヤ内のPUについてのマージ情報を、マージ情報バッファ393から取得する(ステップS231)。次に、情報取得部391は、取得したマージ情報から、注目PUを他のPUとマージするか否かを判定する(ステップS232)。例えば、下位レイヤ内の対応するPUが左の隣接PUとマージされる場合には、注目PUもまた左の隣接PUとマージされると判定され得る。同様に、下位レイヤ内の対応するPUが上の隣接PUとマージされる場合には、注目PUもまた上の隣接PUとマージされると判定され得る。これらの場合、処理はステップS233へ進む。一方、下位レイヤ内の対応するPUが隣接PUとマージされない場合には、注目PUもまた他のPUとマージされないと判定され得る。この場合、処理はステップS234へ進む。
ステップS233では、動きベクトル設定部392は、マージ情報に応じて特定される動きベクトルを動きベクトルバッファ394から取得し、取得した動きベクトルを注目PUに設定する(ステップS233)。一方、ステップS234では、情報取得部391により、注目PUについての動きベクトル情報が取得される(ステップS234)。そして、動きベクトル設定部392は、取得された動きベクトル情報から動きベクトルを復号し、復号した動きベクトルを注目PUに設定する(ステップS235)。
次に、補償部395は、動きベクトル設定部392により注目PUに設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、注目PUの予測画像データを生成する(ステップS236)。
その後、予測対象のレイヤ内に未処理のPUが残っている場合には、処理はステップS231に戻る(ステップS237)。一方、未処理のPUが残っていない場合には、さらに残りのレイヤ(より上位のレイヤ)が存在するかが判定される(ステップS238)。ここで、残りのレイヤが存在する場合には、それまでの予測対象のレイヤを下位レイヤ、次のレイヤを上位レイヤとして、ステップS231以降の処理が繰り返される。下位レイヤについて選択されたマージモードを示すマージ情報は、マージ情報バッファ393により引き続きバッファリングされる。残りのレイヤが存在しない場合には、図23の動き補償処理は終了する。ここで生成された予測画像データは、スイッチ71を介して、加算部65へ出力され得る。
このように、第3の実施例では、上位レイヤの復号の際に下位レイヤのマージ情報が再利用されるため、上位レイヤのためにマージ情報を冗長的に符号化しなくてよい。従って、インター予測に関する情報の符号量を削減することができる。
[4−4.第4の実施例]
図24は、第4の実施例に係る動き補償部90の詳細な構成の一例を示すブロック図である。図24を参照すると、動き補償部90は、情報取得部491、動きベクトル設定部492、動きベクトルバッファ494及び補償部495を有する。
(1)ベースレイヤ
ベースレイヤの動き補償処理において、情報取得部491は、可逆復号部62により符号化ストリームから復号されるインター予測に関する情報を取得する。本実施例において、インター予測に関する情報は、マージ情報及び動きベクトル情報を含み得る。ベースレイヤについて取得されるマージ情報は、例えば、図12A〜図12Cを用いて説明したMergeFlag及びMergeLeftFlagを含み、複数のマージモードの候補のうち符号化の際に各予測単位について選択されたマージモードを示し得る。動きベクトル設定部492は、各予測単位に動きベクトルを設定する。そして、動きベクトル設定部492により各予測単位に設定された動きベクトルは、補償部495へ出力されると共に、動きベクトルバッファ494に記憶される。動きベクトル設定部492は、例えば、ある予測単位が当該予測単位に隣接する隣接予測単位とマージされることをマージ情報が示している場合には、隣接予測単位に設定された動きベクトルを動きベクトルバッファ494から取得し、取得した動きベクトルを上記予測単位に設定する。一方、動きベクトル設定部492は、ある予測単位が他の予測単位とマージされないことをマージ情報が示している場合には、情報取得部491により取得された動きベクトル情報を復号することにより再構築される動きベクトルを上記予測単位に設定する。補償部495は、動きベクトル設定部492により各予測単位に設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、各予測単位の予測画像データを生成する。そして、補償部495は、生成した予測画像データをスイッチ71を介して加算部65へ出力する。
(2)エンハンスメントレイヤ
エンハンスメントレイヤの動き補償処理では、下位レイヤ内の対応する予測単位とのマージを示すMergeBaseFlagを含むマージ情報が利用され得る。
まず、情報取得部491は、可逆復号部62により符号化ストリームから復号されるインター予測に関する情報を取得する。エンハンスメントレイヤについてのインター予測に関する情報は、マージ情報及び動きベクトル情報を含み得る。マージ情報は、例えば、図15A〜図15Cを用いて説明したMergeFlag、MergeBaseFlag及びMergeLeftFlagを含み、複数のマージモードの候補のうち符号化の際に各予測単位について選択されたマージモードを示し得る。動きベクトル設定部492は、情報取得部491により取得されたマージ情報に従って、各予測単位に動きベクトルを設定する。なお、動きベクトル設定部492は、レイヤ間で予測単位がマージされる場合には、上述した式(9)のように、バッファリングされている動きベクトルをレイヤ間の空間解像度の比率に応じて拡大した上で、拡大した動きベクトルを設定してよい。その際、動きベクトル設定部492は、拡大された動きベクトルを動きベクトル精度に応じて丸めてもよい。動きベクトル設定部492により各予測単位に設定された動きベクトルは、補償部495へ出力されると共に、動きベクトルバッファ494に記憶される。動きベクトル設定部492は、他の予測単位とマージされない予測単位については、動きベクトル情報を復号することにより再構築される動きベクトルを当該予測単位に設定してよい。補償部495は、動きベクトル設定部492により各予測単位に設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、各予測単位の予測画像データを生成する。そして、補償部495は、生成した予測画像データをスイッチ71を介して加算部65へ出力する。
(3)処理の流れ
図25は、本実施例に係る動き補償部90による動き補償処理の流れの一例を示すフローチャートである。図25を参照すると。まず、動き補償部90は、ベースレイヤの動き補償処理を行う(ステップS240)。その際、動きベクトルバッファ494は、各予測単位に設定された動きベクトルをバッファリングする。
ステップS241〜S248の処理は、エンハンスメントレイヤの動き補償処理である。これら処理のうちステップS241〜S247の処理は、各エンハンスメントレイヤの各注目PUについて繰り返される。なお、以下の説明において、「上位レイヤ」は予測対象のレイヤであり、「下位レイヤ」は予測対象のレイヤの下位のレイヤである。
まず、情報取得部491は、上位レイヤの1つの注目PUについてのマージ情報を取得する(ステップS241)。次に、情報取得部491は、取得したマージ情報から、注目PUを他のPUとマージするか否かを判定する(ステップS242)。例えば、注目PUは、下位レイヤ内の対応するPU又は上位レイヤ内の隣接PUとマージされ得る。注目PUが他のPUとマージされる場合、処理はステップS243へ進む。一方、注目PUが他のPUとマージされない場合、処理はステップS244へ進む。
ステップS243では、動きベクトル設定部492は、マージ情報に応じて特定される動きベクトルを動きベクトルバッファ494から取得し、取得した動きベクトルを注目PUに設定する(ステップS243)。一方、ステップS244では、情報取得部491により、注目PUについての動きベクトル情報が取得される(ステップS244)。そして、動きベクトル設定部492は、取得された動きベクトル情報から動きベクトルを復号し、復号した動きベクトルを注目PUに設定する(ステップS245)。
次に、補償部495は、動きベクトル設定部492により注目PUに設定された動きベクトルとフレームメモリ69から入力される参照画像データとを用いて、注目PUの予測画像データを生成する(ステップS246)。
その後、予測対象のレイヤ内に未処理のPUが残っている場合には、処理はステップS241に戻る(ステップS247)。一方、未処理のPUが残っていない場合には、さらに残りのレイヤ(より上位のレイヤ)が存在するかが判定される(ステップS248)。ここで、残りのレイヤが存在する場合には、それまでの予測対象のレイヤを下位レイヤ、次のレイヤを上位レイヤとして、ステップS241以降の処理が繰り返される。下位レイヤの各予測単位に設定された動きベクトルは、動きベクトルバッファ494によりバッファリングされる。残りのレイヤが存在しない場合には、図25の動き補償処理は終了する。ここで生成された予測画像データは、スイッチ71を介して、加算部65へ出力され得る。
このように、第4の実施例では、レイヤ間での予測単位のマージを含む複数のマージモードの候補から選択されたマージモードを示すマージ情報を用いて、エンハンスメントレイヤの各予測単位に動きベクトルが設定される。従って、動きの相関の顕著な下位レイヤ内の対応する予測単位とマージされる上位レイヤ内の予測単位については動きベクトルが符号化されないため、符号量を効果的に削減することができる。
<5.応用例>
上述した実施形態に係る画像符号化装置10及び画像復号装置60は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
[5−1.第1の応用例]
図26は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOLEDなど)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
制御部910は、CPU(Central Processing Unit)などのプロセッサ、並びにRAM(Random Access Memory)及びROM(Read Only Memory)などのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置60の機能を有する。従って、テレビジョン装置900での画像のスケーラブル復号に際してレイヤ間の動きの相関を活用することにより、符号化効率を一層高めることができる。
[5−2.第2の応用例]
図27は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記録再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置10及び画像復号装置60の機能を有する。従って、携帯電話機920での画像のスケーラブル符号化及び復号に際してレイヤ間の動きの相関を活用することにより、符号化効率を一層高めることができる。
[5−3.第3の応用例]
図28は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送手段としての役割を有する。
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送手段としての役割を有する。
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラム及びその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD−Video、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等)又はBlu−ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置10の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置60の機能を有する。従って、記録再生装置940での画像のスケーラブル符号化及び復号に際してレイヤ間の動きの相関を活用することにより、符号化効率を一層高めることができる。
[5−4.第4の応用例]
図29は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD又はCMOSなどのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送手段としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置10及び画像復号装置60の機能を有する。従って、撮像装置960での画像のスケーラブル符号化及び復号に際してレイヤ間の動きの相関を活用することにより、符号化効率を一層高めることができる。
<6.まとめ>
ここまで、図1〜図29を用いて、一実施形態に係る画像符号化装置10及び画像復号装置60の4つの実施例について説明した。これら実施例によれば、画像のスケーラブル符号化及び復号に際して、下位レイヤ内の第1の予測単位に対応する上位レイヤ内の第2の予測単位に動きベクトルを設定するための設定情報であって、上記第1の予測単位に設定された動きベクトルに関連する設定情報を用いて、上記第2の予測単位に動きベクトルが設定される。従って、レイヤ間の動きの相関を活用して上位レイヤの各予測単位に動きベクトルを設定することが可能となる。よって、動きベクトル情報、差分動きベクトル情報、プレディクタ情報又はマージ情報の冗長な符号化が回避されるため、符号化効率を高めることができる。
例えば、第1の実施例によれば、下位レイヤ内の予測単位の動きベクトルの予測の際に用いられるプレディクタを示すプレディクタ情報が、上位レイヤ内の予測単位の動きベクトルの予測の際に再利用される。従って、プレディクタ情報の冗長な符号化を回避することができる。
また、例えば、第2の実施例によれば、上位レイヤ内の予測単位のための、下位レイヤ内の対応する予測単位に設定された動きベクトルに基づくレイヤ間プレディクタが、新たなプレディクタ候補として導入される。従って、上位レイヤ内の予測単位について動きベクトルの予測の精度を向上させ、差分動きベクトル情報の符号化に要する符号量を低減することができる。
また、例えば、第3の実施例によれば、下位レイヤ内の予測単位について選択されたマージモードを示すマージ情報が、上位レイヤ内の予測単位について再利用される。従って、マージ情報の冗長な符号化を回避することができる。
また、例えば、第4の実施例によれば、下位レイヤ内の対応する予測単位と上位レイヤ内の予測単位とをマージする新たなマージモードが導入される。従って、上位レイヤ内の予測単位について動きベクトル情報の冗長な符号化を回避することができる。
なお、本明細書では、イントラ予測に関する情報及びインター予測に関する情報が、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について主に説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
第1のレイヤ及び前記第1のレイヤよりも上位の第2のレイヤを含むスケーラブル復号される画像の前記第1のレイヤ内の第1の予測単位に対応する前記第2のレイヤ内の第2の予測単位に動きベクトルを設定するための設定情報であって、前記第1の予測単位に設定された動きベクトルに関連する前記設定情報を取得する情報取得部と、
前記情報取得部により取得される前記設定情報を用いて、前記第2の予測単位に動きベクトルを設定する動きベクトル設定部と、
を備える画像処理装置。
(2)
前記設定情報は、前記第1の予測単位の動きベクトルの予測の際に用いられるプレディクタを示すプレディクタ情報を含み、
前記動きベクトル設定部は、前記プレディクタ情報により示される前記プレディクタを用いて、前記第2の予測単位に設定される動きベクトルを予測する、
前記(1)に記載の画像処理装置。
(3)
前記設定情報は、前記第2の予測単位の動きベクトルの予測の際に用いられるプレディクタを示すプレディクタ情報を含み、
前記プレディクタは、前記第1の予測単位に設定された動きベクトルに基づくプレディクタ候補を含む複数のプレディクタ候補から選択される、
前記(1)に記載の画像処理装置。
(4)
前記第1の予測単位に設定された動きベクトルに基づくプレディクタ候補には、前記複数のプレディクタ候補の中で最小の符号番号が割り当てられる、前記(3)に記載の画像処理装置。
(5)
前記情報取得部は、前記第2の予測単位に設定される動きベクトルと予測動きベクトルとの差分を示す差分動きベクトル情報をさらに取得し、
前記動きベクトル設定部は、前記プレディクタを用いて予測した前記予測動きベクトルに前記差分動きベクトル情報により示される差分を加算することにより生成される動きベクトルを、前記第2の予測単位に設定する、
前記(2)〜(4)のいずれか1項に記載の画像処理装置。
(6)
前記設定情報は、前記第1の予測単位と前記第1の予測単位に隣接する予測単位とに共通する動きベクトルが設定されるかを示すマージ情報を含み、
前記動きベクトル設定部は、前記マージ情報に従って、前記第2の予測単位と前記第2の予測単位に隣接する予測単位とに共通の動きベクトルを設定する、
前記(1)に記載の画像処理装置。
(7)
前記設定情報は、前記第1の予測単位と前記第2の予測単位とに共通する動きベクトルが設定されるかを示すマージ情報を含み、
前記動きベクトル設定部は、前記第1の予測単位と前記第2の予測単位とに共通する動きベクトルが設定されることを前記マージ情報が示している場合には、前記第1の予測単位と共通の動きベクトルを前記第2の予測単位に設定する、
前記(1)に記載の画像処理装置。
(8)
前記動きベクトル設定部は、前記第1のレイヤと前記第2のレイヤとの間の空間解像度の比率に応じて前記第1の予測単位に設定された動きベクトルを拡大した上で、前記第2の予測単位について動きベクトル設定処理を行う、前記(3)、4及び7のいずれか1項に記載の画像処理装置。
(9)
前記動きベクトル設定部は、前記第1の予測単位に設定された動きベクトルの拡大に際して、拡大された動きベクトルを動きベクトル精度に応じて丸める、前記(8)に記載の画像処理装置。
(10)
前記第1のレイヤ及び前記第2のレイヤは、空間解像度の互いに異なるレイヤである、前記(1)〜(7)のいずれか1項に記載の画像処理装置。
(11)
前記第1のレイヤ及び前記第2のレイヤは、雑音比率の互いに異なるレイヤである、前記(1)〜(7)のいずれか1項に記載の画像処理装置。
(12)
前記第1の予測単位は、前記第2の予測単位内の所定の位置の画素に対応する画素を有する、前記第1のレイヤ内の予測単位である、前記(1)〜(11)のいずれか1項に記載の画像処理装置。
(13)
前記第1の予測単位は、前記第2の予測単位と重なる前記第1のレイヤ内の予測単位のうち重なりの最も大きい予測単位である、前記(1)〜(11)のいずれか1項に記載の画像処理装置。
(14)
第1のレイヤ及び前記第1のレイヤよりも上位の第2のレイヤを含むスケーラブル復号される画像の前記第1のレイヤ内の第1の予測単位に対応する前記第2のレイヤ内の第2の予測単位に動きベクトルを設定するための設定情報であって、前記第1の予測単位に設定された動きベクトルに関連する前記設定情報を取得することと、
取得された前記設定情報を用いて、前記第2の予測単位に動きベクトルを設定することと、
を含む画像処理方法。
(15)
第1のレイヤ及び前記第1のレイヤよりも上位の第2のレイヤを含むスケーラブル復号される画像の前記第1のレイヤ内の第1の予測単位に対応する前記第2のレイヤ内の第2の予測単位に動きベクトルを設定するための設定情報であって、前記第1の予測単位に設定された動きベクトルに関連する前記設定情報を生成する情報生成部と、
前記情報生成部により生成される前記設定情報を符号化する符号化部と、
を備える画像処理装置。
(16)
第1のレイヤ及び前記第1のレイヤよりも上位の第2のレイヤを含むスケーラブル復号される画像の前記第1のレイヤ内の第1の予測単位に対応する前記第2のレイヤ内の第2の予測単位に動きベクトルを設定するための設定情報であって、前記第1の予測単位に設定された動きベクトルに関連する前記設定情報を生成することと、
生成された前記設定情報を符号化することと、
を含む画像処理方法。