以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(AVC方式の画像符号化装置および画像復号装置)
4.第4の実施の形態(コンピュータ)
5.応用例
6.第5の実施の形態(セット・ユニット・モジュール・プロセッサ)
<第1の実施の形態>
[階層符号化の説明]
これまでの、MPEG2、AVCといった画像符号化方式は、スケーラビリティ(scalability)機能を有していた。スケーラブル符号化(階層符号化)とは、画像を複数レイヤ化(階層化)し、レイヤ毎に符号化する方式である。
画像の階層化においては、所定のパラメータを基準として1の画像が複数の画像(レイヤ)に分割される。基本的に各レイヤは、冗長性が低減されるように、差分データにより構成される。例えば、1の画像をベースレイヤとエンハンスメントレイヤに2階層化した場合、ベースレイヤのデータのみで元の画像よりも低品質な画像が得られ、ベースレイヤのデータとエンハンスメントレイヤのデータを合成することで、元の画像(すなわち高品質な画像)が得られる。
このように画像を階層化することにより、状況に応じて多様な品質の画像を容易に得ることができる。例えば携帯電話機のような、処理能力の低い端末に対しては、ベースレイヤ(base layer)のみの画像圧縮情報を伝送し、空間時間解像度の低い、或いは、画質の良くない動画像を再生し、テレビやパーソナルコンピュータのような、処理能力の高い端末に対しては、ベースレイヤ(base layer)に加えて、エンハンスメントレイヤ(enhancement layer)の画像圧縮情報を伝送し、空間時間解像度の高い、或いは、画質の高い動画像を再生するといったように、トランスコード処理を行うことなく、端末やネットワークの能力に応じた画像圧縮情報を、サーバから送信することが可能となる。
このようなスケーラビリティ性を持たせるパラメータとして、例えば、空間解像度がある(spatial scalability)。このスペーシャルスケーラビリティ(spatial scalability)の場合、レイヤ毎に解像度が異なる。つまり、各ピクチャが、元の画像より空間的に低解像度のベースレイヤと、ベースレイヤの画像と合成することにより元の画像(元の空間解像度)が得られるエンハンスメントレイヤの2階層に階層化される。もちろん、この階層数は一例であり、任意の階層数に階層化することができる。
また、このようなスケーラビリティ性を持たせるパラメータとして、他には、例えば、時間解像度がある(temporal scalability)。このテンポラルスケーラビリティ(temporal scalability)の場合、レイヤ毎にフレームレートが異なる。つまり、この場合互いに異なるフレームレートのレイヤに階層化されており、低フレームレートのレイヤに、高フレームレートのレイヤを加えることで、より高フレームレートの動画像を得ることができ、全てのレイヤを加えることで、元の動画像(元のフレームレート)を得ることができる。この階層数は一例であり、任意の階層数に階層化することができる。
また、このようなスケーラビリティ性を持たせるパラメータとして、他には、例えば、信号雑音比(SNR(Signal to Noise ratio))がある(SNR scalability)。このSNRスケーラビリティ(SNR scalability)の場合、レイヤ毎にSN比が異なる。つまり、各ピクチャが、元の画像よりSNRの低いベースレイヤと、ベースレイヤの画像と合成することにより元の画像(元のSNR)が得られるエンハンスメントレイヤの2階層に階層化される。すなわち、ベースレイヤ(base layer)画像圧縮情報においては、低PSNRの画像に関する情報が伝送されており、これに、エンハンスメントレイヤ(enhancement layer)画像圧縮情報を加えることで、高PSNR画像を再構築することが可能である。もちろん、この階層数は一例であり、任意の階層数に階層化することができる。
スケーラビリティ性を持たせるパラメータは、上述した例以外であっても、もちろんよい。例えば、ベースレイヤ(base layer)が8ビット(bit)画像よりなり、これにエンハンスメントレイヤ(enhancement layer)を加えることにより、10ビット(bit)画像が得られるビット深度スケーラビリティ(bit-depth scalability)がある。
また、ベースレイヤ(base layer)が4:2:0フォーマットのコンポーネント画像よりなり、これにエンハンスメントレイヤ(enhancement layer)を加えることにより、4:2:2フォーマットのコンポーネント画像が得られるクロマスケーラビリティ(chroma scalability)がある。
さらに、スケーラビリティ性を持たせるパラメータとして、マルチビューがある。この場合、互いに異なるビュー(視点)のレイヤに階層化されている。
本実施の形態に記載のレイヤは、上述した、スケーラビリティ符号化のスペイシャル、テンポラル、SNR、ビット深度、カラー、ビューなどを含む。
なお、本明細書において使われているレイヤの用語は、上述したスケーラブル(階層)符号化のレイヤと、さらに、多視点のマルチビューを考えたときの各ビューを含むものである。
以下、ビューを例として説明するが、ビューを他のレイヤに置き換えることで、本技術は、上述した他のレイヤにも同様に適用することができる。
[画像符号化装置の構成例]
図1は、本開示を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
図1に示される画像符号化装置100は、予測処理を用いて画像データを符号化する。ここで、符号化方式としては、例えば、HEVC方式などが用いられる。すなわち、画像符号化装置100においては、CU(コーディングユニット)単位で処理が行われる。
図1の例において、画像符号化装置100は、A/D(Analog / Digital)変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、デブロックフィルタ111、デコードピクチャバッファ112、選択部113、イントラ予測部114、動き視差予測・補償部115、選択部116、およびレート制御部117を有する。
画像符号化装置100は、さらに、シンタックス処理部121、参照リスト生成部122、適応オフセットフィルタ123、および適応ループフィルタ124を有する。
A/D変換部101は、入力された画像データをA/D変換し、画面並べ替えバッファ102に出力し、記憶させる。
画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)構造に応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、シンタックス処理部121に供給する。
シンタックス処理部121は、画面並べ替えバッファ102から読み出された画像のデータを順次確認し、画像のデータに、図示せぬ前段から供給されるヘッダ情報を挿入する。ヘッダ情報は、例えば、ビデオパラメータセット(VPS:Video Parameter Set)、シーケンスパラメータセット(SPS:Sequence Parameter Set)およびピクチャパラメータセット(PPS:Picture Parameter Set)などを含む。また、シンタックス処理部121は、スライスの先頭にスライスヘッダ(SH:Slice Header)を付加する。
シンタックス処理部121は、ヘッダ情報などが挿入された画像を、演算部103、イントラ予測部114および動き視差予測・補償部115に供給する。また、シンタックス処理部121は、各ヘッダ情報およびスライスヘッダなどの情報を、参照リスト生成部122に供給する。
演算部103は、シンタックス処理部121から供給される画像から、選択部116を介してイントラ予測部114若しくは動き視差予測・補償部115から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。
例えば、イントラ符号化が行われる画像の場合、演算部103は、シンタックス処理部121から供給される画像から、イントラ予測部114から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部103は、シンタックス処理部121から供給される画像から、動き視差予測・補償部115から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104が出力する変換係数を量子化する。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、その量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施す。
可逆符号化部106は、イントラ予測モードを示す情報などをイントラ予測部114から取得し、インター予測モードを示す情報や動きベクトル情報などを動き視差予測・補償部115から取得する。
可逆符号化部106は、量子化された変換係数を符号化するとともに、イントラ予測モード情報、インター予測モード情報、動きベクトル情報、および量子化パラメータを、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
例えば、可逆符号化部106においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、CAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持し、所定のタイミングにおいて、符号化された符号化画像として、例えば、後段の画像復号装置、図示せぬ記録装置や伝送路などに出力する。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109より供給された逆直交変換結果、すなわち、復元された差分情報に、選択部116を介してイントラ予測部114若しくは動き視差予測・補償部115から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。
例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部110は、その差分情報にイントラ予測部114から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部110は、その差分情報に動き視差予測・補償部115から供給される予測画像を加算する。
その加算結果は、デブロックフィルタ111およびデコードピクチャバッファ112に供給される。
デブロックフィルタ111は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。デブロックフィルタ111は、そのフィルタ処理結果を、適応オフセットフィルタ123に供給する。
適応オフセットフィルタ123は、デブロックフィルタ111による適応デブロックフィルタ処理後の画像に対して、主にリンギングを除去する適応オフセットフィルタ(SAO: Sample adaptive offset)処理を行う。
より詳細には、適応オフセットフィルタ123は、最大の符号化単位であるLCU(Largest Coding Unit)ごとに適応オフセットフィルタ処理の種類を決定し、その適応オフセットフィルタ処理で用いられるオフセットを求める。適応オフセットフィルタ123は、求められたオフセットを用いて、適応デブロックフィルタ処理後の画像に対して、決定された種類の適応オフセットフィルタ処理を行う。そして、適応オフセットフィルタ123は、適応オフセットフィルタ処理後の画像を適応ループフィルタ124に供給する。
また、適応オフセットフィルタ123は、オフセットを格納するバッファを有している。適応オフセットフィルタ123は、LCUごとに、適応デブロックフィルタ処理に用いられたオフセットが既にバッファに格納されているかどうかを判定する。
適応オフセットフィルタ123は、適応デブロックフィルタ処理に用いられたオフセットが既にバッファに格納されていると判定した場合、オフセットがバッファに格納されているかを示す格納フラグを、オフセットがバッファに格納されていることを示す値(ここでは1)に設定する。
そして、適応オフセットフィルタ123は、LCUごとに、1に設定された格納フラグ、バッファにおけるオフセットの格納位置を示すインデックス、および、行われた適応オフセットフィルタ処理の種類を示す種類情報を可逆符号化部106に供給する。
一方、適応オフセットフィルタ123は、適応デブロックフィルタ処理に用いられたオフセットがまだバッファに格納されていない場合、そのオフセットを順にバッファに格納する。また、適応オフセットフィルタ123は、格納フラグを、オフセットがバッファに格納されていないことを示す値(ここでは0)に設定する。そして、適応オフセットフィルタ123は、LCUごとに、0に設定された格納フラグ、オフセット、および種類情報を可逆符号化部106に供給する。
適応ループフィルタ124は、適応オフセットフィルタ123から供給される適応オフセットフィルタ処理後の画像に対して、例えば、LCUごとに、適応ループフィルタ(ALF:Adaptive Loop Filter)処理を行う。適応ループフィルタ処理としては、例えば、2次元のウィナーフィルタ(Wiener Filter)による処理が用いられる。もちろん、ウィナーフィルタ以外のフィルタが用いられてもよい。
具体的には、適応ループフィルタ124は、LCUごとに、シンタックス処理部121から出力される画像である原画像と適応ループフィルタ処理後の画像の残差が最小となるように、適応ループフィルタ処理で用いられるフィルタ係数を算出する。そして、適応ループフィルタ124は、適応オフセットフィルタ処理後の画像に対して、算出されたフィルタ係数を用いて、LCUごとに適応ループフィルタ処理を行う。
適応ループフィルタ124は、適応ループフィルタ処理後の画像をデコードピクチャバッファ112に供給する。また、適応ループフィルタ124は、フィルタ係数を可逆符号化部106に供給する。
なお、ここでは、適応ループフィルタ処理は、LCUごとに行われるものとするが、適応ループフィルタ処理の処理単位は、LCUに限定されない。但し、適応オフセットフィルタ123と適応ループフィルタ124の処理単位を合わせることにより、処理を効率的に行うことができる。
デコードピクチャバッファ112は、所定のタイミングにおいて、蓄積されている参照画像を、選択部113を介してイントラ予測部114または動き視差予測・補償部115に出力する。
例えば、イントラ符号化が行われる画像の場合、デコードピクチャバッファ112は、参照画像を、選択部113を介してイントラ予測部114に供給する。また、例えば、インター符号化が行われる場合、デコードピクチャバッファ112は、参照画像を、選択部113を介して動き視差予測・補償部115に供給する。
選択部113は、デコードピクチャバッファ112から供給される参照画像がイントラ符号化を行う画像である場合、その参照画像をイントラ予測部114に供給する。また、選択部113は、デコードピクチャバッファ112から供給される参照画像がインター符号化を行う画像である場合、その参照画像を動き視差予測・補償部115に供給する。
イントラ予測部114は、シンタックス処理部121から供給される入力画像の画面内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部114は、複数のモード(イントラ予測モード)によりイントラ予測を行う。
イントラ予測部114は、全てのイントラ予測モードで予測画像を生成し、各予測画像を評価し、最適なモードを選択する。イントラ予測部114は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、選択部116を介して演算部103や演算部110に供給する。
また、上述したように、イントラ予測部114は、採用したイントラ予測モードを示すイントラ予測モード情報等の情報を、適宜可逆符号化部106に供給する。
動き視差予測・補償部115は、インター符号化が行われる画像について、シンタックス処理部121から供給される入力画像と、選択部113を介してデコードピクチャバッファ112から供給される参照画像とを用いて、動き視差予測を行う。その際、動き視差予測・補償部115は、参照リスト生成部122により生成された参照リストで示される参照画像インデックスの参照画像を用いる。動き視差予測・補償部115は、検出された動きおよび視差ベクトルに応じて動き視差補償処理を行い、予測画像(インター予測画像情報)を生成する。
動き視差予測・補償部115は、候補となる全てのインター予測モードのインター予測処理を行い、予測画像を生成する。動き視差予測・補償部115は、生成された予測画像を、選択部116を介して演算部103や演算部110に供給する。
また、動き視差予測・補償部115は、採用されたインター予測モードを示すインター予測モード情報や、算出した動きベクトルを示す動きベクトル情報を可逆符号化部106に供給する。
選択部116は、イントラ符号化を行う画像の場合、イントラ予測部114の出力を演算部103や演算部110に供給し、インター符号化を行う画像の場合、動き視差予測・補償部115の出力を演算部103や演算部110に供給する。
レート制御部117は、蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
参照リスト生成部122は、デコードピクチャバッファ112に蓄積される参照画像の情報(POC情報やビュー情報)を用いて、動き視差予測・補償部115が対象画像を予測する際に参照する参照リストを生成する。その際、参照リスト生成部122は、参照リストを、時間方向に参照可能な複数の参照画像の間にビュー方向に参照可能な参照画像を挿入して生成する。
すなわち、参照リスト生成部122は、参照リストを生成する際に用いられる一時的なリストであるテンポラルリストを、時間方向に参照可能な複数の参照画像の間にビュー方向に参照可能な参照画像を挿入して生成する。そして、参照リスト生成部122は、生成したテンポラルリストに基づいて、参照リストを生成する。
なお、時間方向に参照可能な参照画像とは、異なる時間で参照可能な参照画像であり、ビュー(レイヤ)方向に参照可能な参照画像とは、異なるビュー(レイヤ)で参照可能な参照画像のことである。
[参照画像の構造]
次に、図2を参照して、HEVC方式における参照画像の構造について説明する。
図2の例においては、左からPOC順に、長時間参照画像(Long-term:LT)、短時間(前)参照画像(Short-term before Curr:STbC)、Cが示されるカレント画像、短時間(後)参照画像(Short-term after Curr:STaC)が示されている。また、下からView(視差)方向順に、Cが示されるカレント画像、インタービュー参照画像(Inter-view:IV)が示されている。なお、各参照画像に示される数字は、デコードピクチャバッファ112における各参照画像の配列のインデックスを表している。
HEVC方式においては、インター予測を行う際に、図2に示される長時間参照画像、短時間(前)参照画像、短時間(後)参照画像、およびインタービュー参照画像の4種類の画像を参照画像の候補とすることができる。
短時間(前)参照画像は、Cが示されるカレント画像に対して、同一ビュー内で時間的に前に位置する(POCが小さい)短時間参照画像であり、短時間(後)参照画像は、カレント画像に対して、同一ビュー内で時間的に後に位置する(POCが大きい)短時間参照画像である。また、長時間参照画像は、同一ビュー内でロングターム指定された参照画像である。インタービュー参照画像は、同一時刻における異なるビューの参照画像である。
[従来1の参照リストの生成方法]
次に、図3を参照し、従来1の方法として、HEVC方式のデフォルトの参照リストの生成方法を説明する。図3の例においては、各4枚参照される例として、デコードピクチャバッファ112における短時間(前)参照画像のリスト(配列)(RefPicSetStCurrBefore[i])、短時間(後)参照画像のリスト(RefPicSetStCurrAfter[i])、長時間参照画像のリスト(RefPicSetLtCurr[i])、インタービュー参照画像のリスト(RefPicSetIvCurr[i])(i:インデックス=0乃至3)が示されている。
短時間参照画像については、スライスヘッダやRPS(Reference Picture Set)のシンタックスで、used_by_currフラグが、参照する可能性がある画像に対して設定されている。RPSは、SPSに含まれるピクチャ毎にデコードピクチャバッファの状態を明示するためのシンタックスである。長時間参照画像については、スライスヘッダやSPSのシンタックスで、used_by_currフラグが、参照する可能性がある画像に対して設定されている。used_by_currフラグが1の画像のみが、参照リストを生成する際に用いられる一時的なリストであるテンポラルリストに追加される。なお、used_by_currフラグは、インタービュー参照画像に対しては設定されていないため、インタービュー参照画像については、インタービュー参照画像のリストに配列されるすべての画像がテンポラルリストに追加される。
図3の例においては、これらの参照画像のリストから生成されるL0(L0方向)のテンポラルリスト(RefPicListTemp0[rIdx])、およびL1(L1方向)のテンポラルリスト(RefPicListTemp1[rIdx])が示されている。
L0のテンポラルリスト(RefPicListTemp0[rIdx])は、短時間(前)参照画像、短時間(後)参照画像、長時間参照画像、インタービュー参照画像の順に、used_by_currフラグに1が設定されている画像が追加されて生成される。したがって、L0のテンポラルリスト(RefPicListTemp0[rIdx])は、インデックス0と1の短時間(前)参照画像、インデックス0と1の短時間(後)参照画像、インデックス0の長時間参照画像、インデックス0乃至3のインタービュー参照画像の順に生成されている。
L1のテンポラルリスト(RefPicListTemp1[rIdx])は、短時間(後)参照画像、短時間(前)参照画像、長時間参照画像、インタービュー参照画像の順に、used_by_currフラグに1が設定されている画像が追加されて生成される。したがって、L1のテンポラルリスト(RefPicListTemp1[rIdx])は、インデックス0と1の短時間(後)参照画像、インデックス0と1の短時間(前)参照画像、インデックス0の長時間参照画像、インデックス0乃至3のインタービュー参照画像の順に生成されている。
また、図3の例においては、L0のテンポラルリストから生成されるL0の参照リスト(RefPicList0[rIdx])、およびL1のテンポラルリストから生成されるL1の参照リスト(RefPicList1[rIdx])が示されている。
ここで、スライスヘッダやSPSのシンタックスで、テンポラルリストのうち、参照可能な画像の数として、num_ref_idx_l0_active_minus1と、num_ref_idx_l1_active_minus1とが設定されている。L0/L1のテンポラルリストの先頭から、これらにより制限されている数だけの参照画像が、参照リストに追加されて、参照画像として用いることができる。
例えば、num_ref_idx_l0_active_minus1が4の場合、L0のテンポラルリストの先頭(左から1番目)から5番目までの画像が、L0の参照リスト(RefPicList0[rIdx])に追加されて、L0の参照リストが生成される。図3の例の場合、L0の参照リストは、インデックス0と1の短時間(前)参照画像、インデックス0と1の短時間(後)参照画像、インデックス0の長時間参照画像の順に生成される。
例えば、num_ref_idx_l1_active_minus1が3の場合、L1のテンポラルリストの先頭から4番目までの画像が、L1の参照リスト(RefPicList1[rIdx])に追加されて、L1の参照リストが生成される。図3の例の場合、L1の参照リストは、インデックス0と1の短時間(後)参照画像、インデックス0と1の短時間(前)参照画像の順に生成される。
以上のように、HEVC方式においては、テンポラルリストは、時間方向の参照画像の後に、ビュー方向の参照画像が配置されて生成されていた。したがって、参照リストに、ビュー方向の参照画像を配置することが難しかった。
なお、HEVC方式においては、参照リストの変更コマンドが定義されており、その変更コマンドを送ることで、テンポラルリストの中から自由に並び替えたものを参照リストに入れることができる。これにより、ビュー方向の参照画像を参照することはできる。しかしながら、変更コマンドは、シンタックスで伝送するため、追加のビットが発生してしまっていた。
すなわち、上述した方法の場合、時間相関がビュー間相関よりも極めて高いときはよいが、一般的なシーケンスでは、ビュー間相関が著しく低いわけではないので、視差予測をするために、参照リストコマンドを使用する必要があった。
そこで、非特許文献2においては、テンポラルリストを生成する際に、ビュー方向の参照画像を、複数の時間方向の参照画像のどの間の位置に挿入するかを指定する情報を、スライスヘッダで伝送することが提案されている。
[従来2の参照リストの生成方法]
次に、図4を参照して、従来2の方法として、非特許文献2に記載のデフォルトの参照リストの生成方法を説明する。なお、図4においては、L0の例のみが記載されている。
非特許文献2に記載の方法では、テンポラルリストの生成までは、HEVC方式と同様であり、繰り返しになるのでその説明を省略する。
すなわち、L0のテンポラルリスト(RefPicListTemp0[rIdx])は、HEVC方式と同様に、短時間(前)参照画像、短時間(後)参照画像、長時間参照画像、インタービュー参照画像の順に、used_by_currフラグに1が設定されている画像が追加されて生成される。したがって、L0のテンポラルリスト(RefPicListTemp0[rIdx])は、インデックス0と1の短時間(前)参照画像、インデックス0と1の短時間(後)参照画像、インデックス0の長時間参照画像、インデックス0乃至3のインタービュー参照画像の順に生成されている。
ここで、非特許文献2に記載の方法の場合、テンポラルリストにおけるインタービュー参照画像を挿入する位置(inter_view_ref_start_position)が、スライスヘッダエクステンションに設定して伝送されてくる。
例えば、inter_view_ref_start_positionにより、矢印P1に示されるように、テンポラルリストの先頭(1番目)から2番目の位置が指定される。この場合、L0のテンポラルリスト(RefPicListTemp0[rIdx])は、インデックス0の短時間(前)参照画像、インデックス0乃至3のインタービュー参照画像、インデックス1の短時間(前)参照画像、インデックス0と1の短時間(後)参照画像、インデックス0の長時間参照画像の順に生成される。
そして、この場合、num_ref_idx_l0_active_minus1=4により、L0の参照リストは、インデックス0の短時間(前)参照画像、インデックス0乃至3のインタービュー参照画像の順に生成される。
また、例えば、inter_view_ref_start_positionにより、矢印P2に示されるように、テンポラルリストの先頭(1番目)から3番目の位置が指定される。この場合、L0のテンポラルリスト(RefPicListTemp0[rIdx])は、インデックス0と1の短時間(前)参照画像、インデックス0乃至3のインタービュー参照画像、インデックス0と1の短時間(後)参照画像、インデックス0の長時間参照画像の順に生成される。
そして、この場合、num_ref_idx_l0_active_minus1=4により、L0の参照リストは、インデックス0と1の短時間(前)参照画像、インデックス0乃至2のインタービュー参照画像の順に生成される。
さらに、例えば、inter_view_ref_start_positionにより、矢印P3に示されるように、テンポラルリストの先頭(1番目)から4番目の位置が指定される。この場合、L0のテンポラルリスト(RefPicListTemp0[rIdx])は、インデックス0と1の短時間(前)参照画像、インデックス0の短時間(後)参照画像、インデックス0乃至3のインタービュー参照画像、インデックス1の短時間(後)参照画像、インデックス0の長時間参照画像の順に生成される。
そして、この場合、num_ref_idx_l0_active_minus1=4により、L0の参照リストは、インデックス0と1の短時間(前)参照画像、インデックス0の短時間(後)参照画像、インデックス0と1のインタービュー参照画像の順に生成される。
以上のように、非特許文献2に記載の方法においては、スライスヘッダエクステンションにおいて、テンポラルリストにおけるインタービュー参照画像を挿入するポジションをシンタックスで伝送していた。したがって、ビュー相関を考慮して、テンポラルリストにおいて、インタービュー参照画像を好きな位置に挿入することができた。
しかしながら、非特許文献2に記載の方法の場合、インタービュー参照画像を動かす必要がないときも、シンタックスを伝送する必要があった。
また、この場合、シンタックスで設定されたポジションに、複数のインタービュー参照画像が1度に挿入されてしまう。したがって、テンポラルリストにおいて、インタービュー参照画像と短時間参照画像または長時間参照画像とを混ぜたいときは、参照リスト変更コマンドを伝送する必要があった。
そこで、本技術においては、テンポラルリストを、時間方向に参照可能な複数の参照画像の間に、ビュー方向に参照可能な参照画像を挿入して生成するようにした。
[本技術1の参照リストの生成方法]
次に、図5を参照して、本技術1の参照リストの生成方法を説明する。図5の例においては、各4枚参照される例として、デコードピクチャバッファ112における短時間(前)参照画像のリスト(配列)(RefPicSetStCurrBefore[i])、短時間(後)参照画像のリスト(RefPicSetStCurrAfter[i])、長時間参照画像のリスト(RefPicSetLtCurr[i])、インタービュー参照画像のリスト(RefPicSetIvCurr[i]) (i:インデックス=0乃至3)が示されている。
本技術1の場合、L0のテンポラルリスト(RefPicListTemp0[rIdx])は、インデックス0と1の短時間(前)参照画像、インデックス0乃至3のインタービュー参照画像、インデックス0と1の短時間(後)参照画像、インデックス0の長時間参照画像の順に生成される。
そして、この場合、num_ref_idx_l0_active_minus1=4により、L0の参照リストは、インデックス0と1の短時間(前)参照画像、インデックス0乃至2のインタービュー参照画像の順に生成される。
本技術1のL1のテンポラルリスト(RefPicListTemp1[rIdx])は、インデックス0と1の短時間(前)参照画像、インデックス0乃至3のインタービュー参照画像、インデックス0と1の短時間(後)参照画像、インデックス0の長時間参照画像の順に生成される。
そして、この場合、num_ref_idx_l0_active_minus1=3により、L1の参照リストは、インデックス0と1の短時間(後)参照画像、インデックス0と1のインタービュー参照画像の順に生成される。
以上のように、本技術1の方法においては、テンポラルリストの生成において、短時間(前)参照画像と短時間(後)参照画像との間に、インタービュー画像が挿入される。
これがデフォルト処理となるので、追加のシンタックスを送る必要がない。また、短時間(後)参照画像は、L1において最優先でリストに入るため、L0における短時間(後)参照画像の前にインタービュー参照画像を挿入することで、L0/L1における短時間(後)参照画像の重複利用を避けることができる。
ただし、L0の場合、短時間(前)参照画像の枚数が多いとき、参照リストの中にインタービュー画像が入らないことがある。これに関しては、短時間(前)参照画像の枚数をRPSで制限することが可能である。なお、L1の場合、短時間参照画像について、対象となる前/後が逆になるが、同様のことが言える。
また、短時間(前/後)参照画像の後に、複数のインタービュー参照画像が1度に挿入されてしまう。したがって、テンポラルリストにおいて、インタービュー参照画像と短時間参照画像または長時間参照画像とを混ぜたいときは、参照リスト変更コマンドを伝送する必要がある。
さらに時間相関がビュー間相関よりも極めて高い場合、符号化効率が落ちてしまう恐れがある。
[本技術2の参照リストの生成方法]
さらに、図6を参照して、本技術2の参照リストの生成方法を説明する。図6の例においては、各4枚参照される例として、デコードピクチャバッファ112における短時間(前)参照画像のリスト(配列)(RefPicSetStCurrBefore[i])、短時間(後)参照画像のリスト(RefPicSetStCurrAfter[i])、長時間参照画像のリスト(RefPicSetLtCurr[i])、インタービュー参照画像のリスト(RefPicSetIvCurr[i])(i:インデックス=0乃至3)が示されている。
本技術2の場合、L0のテンポラルリスト(RefPicListTemp0[rIdx])は、インデックス0の短時間(前)参照画像、インデックス0のインタービュー参照画像、インデックス1の短時間(前)参照画像、インデックス1のインタービュー参照画像、インデックス0の短時間(後)参照画像、インデックス2のインタービュー参照画像、インデックス1の短時間(後)参照画像、インデックス3のインタービュー参照画像、インデックス0の長時間参照画像の順に生成される。
そして、この場合、num_ref_idx_l0_active_minus1=4により、L0の参照リストは、インデックス0の短時間(前)参照画像、インデックス0のインタービュー参照画像、インデックス1の短時間(前)参照画像、インデックス1のインタービュー参照画像、インデックス0の短時間(後)参照画像の順に生成される。
本技術2のL1のテンポラルリスト(RefPicListTemp1[rIdx])は、インデックス0の短時間(後)参照画像、インデックス0のインタービュー参照画像、インデックス1の短時間(後)参照画像、インデックス1のインタービュー参照画像、インデックス0の短時間(前)参照画像、インデックス2のインタービュー参照画像、インデックス1の短時間(前)参照画像、インデックス3のインタービュー参照画像、インデックス0の長時間参照画像の順に生成される。
そして、この場合、num_ref_idx_l1_active_minus1=3により、L1の参照リストは、インデックス0の短時間(後)参照画像、インデックス0のインタービュー参照画像、インデックス1の短時間(後)参照画像、インデックス1のインタービュー参照画像の順に生成される。
以上のように、本技術2の方法においては、テンポラルリストの生成において、時間方向の参照画像とビュー方向の参照画像とが交互に配置される。
時間相関とビュー間相関の高さが交互に並ぶときに、参照効率がよい配置となる。また、L0の場合、短時間(前)参照画像の枚数が多いとしても、デフォルトでインタービュー参照画像を、参照リストに追加しやすい。さらに、これがデフォルト処理となるので、追加のシンタックスを送る必要がない。
ただし、時間相関がビュー間相関よりも極めて高い場合、符号化効率が落ちてしまう恐れがある。
[従来と本技術の比較]
図7の例においては、上述した従来の方法と本技術の方法との比較した表が示されている。
本技術1の従来1に対する利点は、2つある。1つ目は、インタービュー相関の高いシーケンス(一般的)に対して、符号化効率を改善できる点である。インタービュー相関とは、インタービュー画像間において相関があることである。2つ目は、STbC(短時間(前)参照画像)とSTaC(短時間(後)参照画像)の枚数が少ないときに、参照リストL0/L1全体で、ユニークなピクチャの数を増やすことができる点である。
本技術1の従来2に対する利点は、2つある。1つ目は、追加シンタックスを伝送しなくてもよい点である。2つ目は、テンポラルリストの並べ直しがないので、処理量が少ない点である。
本技術2の従来1に対する利点は、2つある。1つ目は、テンポラル相関とインタービュー相関が交互に並ぶときに、符号化効率が改善できる点である。テンポラル相関とは、時間の異なるインター画像間において相関があることである。インタービュー相関とは、インタービュー画像間において相関があることである。2つ目は、ワーストでも、参照リストの先頭から2番目にインタービュー参照画像を配置できる点である。
本技術2の従来2に対する利点は、2つある。1つ目は、追加シンタックスを伝送しなくてもよい点である。2つ目は、テンポラル相関とインタービュー相関が交互に並ぶときに、符号化効率が改善できる点である。
さらに、本技術1と本技術2とを比較する。
本技術2の本技術1に対する利点は、2つある。1つ目は、テンポラル相関とインタービュー相関が交互に並ぶときに、符号化効率が改善できる点である。2つ目は、ワーストでも、参照リストの先頭から2番目にインタービュー参照画像を配置できる点である。
なお、上記説明においては、従来と同様に、インタービュー画像の参照リスト(テンポラルリスト)への追加順が、L0とL1で同じ例を説明したが、L0とL1で変更することができる。
[インタービュー画像間の並び]
次に、図8を参照して、本技術におけるインタービュー画像間の並び順について説明する。
従来において、該当するインタービュー参照画像は、VPS(Video Parameter Set)のref_layer_id[i][j]に基づいて、j=0,1,2,….の順番で、参照リスト(テンポラルリスト)に追加していた。この処理は、L0とL1とで全く同じなので、L0/L1のテンポラルリストにおいて、インタービュー参照画像が並ぶ順番は同じであった。
そこで、本技術においては、L0のテンポラルリストに対しては、ref_layer_id[i][j]( j=0,1,2,….)の順番で、インタービュー参照画像を追加する。また、L1のテンポラルリストに対しては、ref_layer_id[i][j]( j=…,2,1,0.)の順番で、インタービュー参照画像を追加する。
具体的には、図8の左側に示されるように、例えば、view_id=0,1,2,3の4ビューにおいて、view_id=2のビュー画像を符号化するときに、VPSにおいて、view_id=1,0,3の順番で、参照関係が記述されているとする。
この場合、本技術においては、図8の右側に示されるように、L0のテンポラルリストにおいては、VPSに記述されているview_id=1,0,3の順番で、インタービュー参照画像を並べる。また、L1のテンポラルリストにおいては、VPSに記述されているview_idの逆順=3,0,1の順番で、インタービュー参照画像を並べる。
このようにすることで、L0/L1のテンポラルリストにおいて、ref_id=n+1番目の画像までしか参照されない、すなわち、ref_id=n+1番目の画像までしか参照リストに追加されない場合に、L0とL1において異なるインタービュー参照画像を参照することができる。
具体的には、図8の例においては、L0において、n+1番目は、view_id=1のv1となり、L1において、n+1番目は、view_id=3のv3となり、L0およびL1において、n+1番目のインタービュー参照画像を変更することができる。
このように、L0/L1で、異なるインタービュー参照画像を参照できるので、同じ画像を参照する場合よりも視差予測の性能がよくなる可能性が高く、符号化効率の改善を期待することができる。
なお、図8の例においては、図3の従来例のように、時間方向の参照画像の後に、ビュー方向の参照画像が追加される例が示されているが、図5および図6を参照して上述した本技術の場合におけるインタービュー参照画像の順番にも適用することができる。
本技術を適用する場合、非特許文献1における記述は、図9の実線に示されるように、L0については変更されないが、図9の点線に示されるように、インタービュー画像をL0と逆の順番で追加するように変更される。
以上の処理を行う図1の参照リスト生成部122は、次の図10に示すように構成される。
[参照リスト生成部の構成例]
図10は、上述した処理を行う参照リスト生成部の構成例を示すブロック図である。
図10の例において、参照リスト生成部122は、参照画像設定部131、テンポラルリスト生成部132、および参照画像リスト生成部133を含むように構成されている。
参照画像設定部131は、デコードピクチャバッファ112からの参照画像の時刻情報(すなわち、POC情報)とシンタックス処理部121からのスライスヘッダやRPSに設定されている短時間参照画像のused_by_currフラグを参照し、短時間(前)参照画像を設定し、短時間(前)参照画像リスト(RefPicSetStCurrBefore[i])を生成する。参照画像設定部131は、デコードピクチャバッファ112からの参照画像の時刻情報とシンタックス処理部121からのスライスヘッダやRPSに設定されている短時間参照画像のused_by_currフラグを参照し、短時間(後)参照画像を設定し、短時間(後)参照画像リスト(RefPicSetStCurrAfter[i])を生成する。
参照画像設定部131は、デコードピクチャバッファ112からの参照画像の時刻情報とスライスヘッダやSPSに設定されている長時間参照画像のused_by_currフラグを参照し、長時間参照画像を設定し、長時間参照画像リスト(RefPicSetLtCurr[i])を生成する。参照画像設定部131は、デコードピクチャバッファ112からの参照画像のビュー情報を参照し、インタービュー参照画像(RefPicSetIvCurr[i])を設定し、そのリストを生成する。
テンポラルリスト生成部132は、参照画像設定部131により設定されたリストを、上述した本技術による所定の順番で結合し、L0およびL1のテンポラルリスト(RefPicListTemp0[rIdx], RefPicListTemp1[rIdx])を生成する。
参照画像リスト生成部133は、シンタックス処理部121から供給されるスライスヘッダやSPSに設定されているnum_ref_idx_l0_active_minus1と、num_ref_idx_l1_active_minus1を参照する。参照画像リスト生成部133は、テンポラルリスト生成部132により生成されたL0/L1のテンポラルリストのうち、num_ref_idx_l0_active_minus1と、num_ref_idx_l1_active_minus1で設定されている数だけの参照画像を抜き出して追加し、L0/L1の参照リストを生成する。
参照画像リスト生成部133により生成されたL0/L1の参照リストは、動き視差予測・補償部115に参照される。
[符号化処理の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図11のフローチャートを参照して、符号化処理の流れの例を説明する。
ステップS101において、A/D変換部101は入力された画像をA/D変換する。ステップS102において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS103において、シンタックス処理部121は、画面並べ替えバッファ102から読み出された画像のデータを順次確認し、画像のデータに、ヘッダ情報を挿入する。シンタックス処理部121は、ヘッダ情報などが挿入された画像を、演算部103、イントラ予測部114および動き視差予測・補償部115に供給する。また、シンタックス処理部121は、VPS、SPS(RPS含む)、およびスライスヘッダなどの情報を、参照リスト生成部122に供給する。
ステップS104において、演算部103は、シンタックス処理部121から供給される画像と、予測画像との差分を演算する。予測画像は、インター予測する場合は動き視差予測・補償部115から、イントラ予測する場合はイントラ予測部114から、選択部116を介して演算部103に供給される。
差分データは元の画像データに較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS105において、直交変換部104は、ステップS104の処理により生成された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
ステップS106において、量子化部105は、ステップS105の処理により得られた直交変換係数を量子化する。
ステップS106の処理により量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS107において、逆量子化部108は、ステップS106の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部105の特性に対応する特性で逆量子化する。
ステップS108において、逆直交変換部109は、ステップS107の処理により得られた直交変換係数を、直交変換部104の特性に対応する特性で逆直交変換する。
ステップS109において、演算部110は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部103への入力に対応する画像)を生成する。
ステップS110において、デブロックフィルタ111は、演算部110から供給される画像に対してフィルタリングを行い、ブロック歪を除去する。デブロックフィルタ111は、その結果得られる画像を適応オフセットフィルタ123に供給する。
ステップS111において、適応オフセットフィルタ123は、デブロックフィルタ111から供給される画像に対して、LCUごとに適応オフセットフィルタ処理を行う。適応オフセットフィルタ123は、その結果得られる画像を適応ループフィルタ124に供給する。また、適応オフセットフィルタ123は、LCUごとに、格納フラグ、インデックスまたはオフセット、および種類情報を、オフセットフィルタ情報として可逆符号化部106に供給する。
ステップS112において、適応ループフィルタ124は、適応オフセットフィルタ123から供給される画像に対して、LCUごとに適応ループフィルタ処理を行う。適応ループフィルタ124は、その結果得られる画像をデコードピクチャバッファ112に供給する。また、適応ループフィルタ124は、適応ループフィルタ処理で用いられたフィルタ係数を可逆符号化部106に供給する。
ステップS113において、デコードピクチャバッファ112は、フィルタ処理された画像を記憶する。なお、デコードピクチャバッファ112には、フィルタ処理されていない画像も演算部110から供給され、記憶される。デコードピクチャバッファ112に蓄積された画像は、参照画像として選択部113を介して動き視差予測・補償部115またはイントラ予測部114に供給される。
ステップS114において、イントラ予測部114は、イントラ予測モードのイントラ予測処理を行う。
ステップS115において、参照リスト生成部122は、動き視差予測・補償部115が対象画像を予測する際に参照する参照リストを生成する。この参照リストの生成処理の詳細は、図12を参照して後述される。
ステップS115により、参照リストを生成する際に用いられる一時的なリストであるテンポラルリストが、時間方向に参照可能な複数の参照画像の間にビュー方向に参照可能な参照画像を挿入して生成される。そして、生成したテンポラルリストに基づいて、参照リストが生成される。
ステップS116において、動き視差予測・補償部115は、ステップS115の処理により生成された参照リストが示す参照画像インデックスの参照画像を用いて、インター予測モードでの動き視差予測や動き視差補償を行うインター動き視差予測処理を行う。
ステップS117において、選択部116は、イントラ予測部114および動き視差予測・補償部115から出力された各コスト関数値に基づいて、最適予測モードを決定する。つまり、選択部116は、イントラ予測部114により生成された予測画像と、動き視差予測・補償部115により生成された予測画像のいずれか一方を選択する。
また、このいずれの予測画像が選択されたかを示す選択情報は、イントラ予測部114および動き視差予測・補償部115のうち、予測画像が選択された方に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部114は、最適イントラ予測モードを示す情報(すなわち、イントラ予測モード情報)を、可逆符号化部106に供給する。
最適インター予測モードの予測画像が選択された場合、動き視差予測・補償部115は、最適インター予測モードを示す情報と、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部106に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報、視差ベクトル情報やフラグ情報、参照フレーム情報などがあげられる。
ステップS118において、可逆符号化部106は、ステップS106の処理により量子化された変換係数を符号化する。すなわち、差分画像(インターの場合、2次差分画像)に対して、可変長符号化や算術符号化等の可逆符号化が行われる。
また、可逆符号化部106は、ステップS117の処理により選択された予測画像の予測モードに関する情報を、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部106は、イントラ予測部114から供給されるイントラ予測モード情報、または、動き視差予測・補償部115から供給される最適インター予測モードに応じた情報などを、符号化データに付加する。
ステップS119において蓄積バッファ107は、可逆符号化部106から出力される符号化データを蓄積する。蓄積バッファ107に蓄積された符号化データは、適宜読み出され、伝送路を介して復号側に伝送される。
ステップS120においてレート制御部117は、ステップS119の処理により蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
ステップS120の処理が終了すると、符号化処理が終了される。
[参照リスト生成処理の流れ]
次に、図12のフローチャートを参照して、図11のステップS115において実行される参照リスト生成処理の流れの例を説明する。なお、この処理により、図5を参照して上述した本技術1の参照リストが生成される。また、この処理は、復号画像(すなわち、予測対象の画像)がPピクチャまたはBピクチャのみに実行される。
上述した図11のステップS103において、シンタックス処理部121より、復号画像のVPS、SPS(RPS含む)、およびスライスヘッダなどの情報が、参照リスト生成部122に供給される。短時間参照画像のused_by_currフラグは、シンタックス処理部121から供給されるスライスヘッダやRPSに設定されている。長時間参照画像のused_by_currフラグは、スライスヘッダやSPSに設定されている。
ステップS131において、参照リスト生成部122の参照画像設定部131は、デコードピクチャバッファ112からの参照画像の時刻情報(すなわち、POC情報)とスライスヘッダやRPSの短時間参照画像のused_by_currフラグを参照し、短時間(前)参照画像(STbC)を設定し、RefPicSetStCurrBefore[i]リストを生成する。
ステップS132において、参照画像設定部131は、デコードピクチャバッファ112からの参照画像の時刻情報とスライスヘッダやRPSの短時間参照画像のused_by_currフラグを参照し、短時間(後)参照画像(STaC)を設定し、RefPicSetStCurrAfter[i]リストを生成する。
ステップS133において、参照画像設定部131は、デコードピクチャバッファ112からの参照画像の時刻情報とスライスヘッダやSPSの長時間参照画像のused_by_currフラグを参照し、長時間参照画像(LT)を設定し、RefPicSetLtCurr[i]リストを生成する。
ステップS134において、参照画像設定部131は、デコードピクチャバッファ112からの参照画像のビュー情報を参照し、インタービュー参照画像(IV)を設定し、RefPicSetIvCurr[i]リストを生成する。
ステップS135において、テンポラルリスト生成部132は、参照画像設定部131により設定された上記4種類のリストを、STbC,IV,STaC,LTの順番で結合し、L0のテンポラルリスト(RefPicListTemp0[rIdx])を生成する。
すなわち、上述した4種類のリストでused_by_currフラグが1である参照画像だけが、STbC,IV,STaC,LTの順番で結合されて、L0のテンポラルリストが生成される。なお、その際、IV(インタービュー参照画像)は、すべて追加される。
ステップS136において、テンポラルリスト生成部132は、参照画像設定部131により設定された上記4種類のリストを、STaC,IV,STbC,LTの順番で結合し、L1のテンポラルリスト(RefPicListTemp1[rIdx])を生成する。
すなわち、used_by_currフラグが1である参照画像だけが、STaC,IV,STbC,LTの順番で結合されて、L1のテンポラルリストが生成される。なお、その際、IV(インタービュー参照画像)は、すべて追加されるが、その順番は、図8を参照して上述したように、L0方向の順番と逆順に追加されてもよい。
num_ref_idx_l0_active_minus1と、num_ref_idx_l1_active_minus1は、シンタックス処理部121から供給されるスライスヘッダやSPSに設定されている。
ステップS137において、参照画像リスト生成部133は、L0のテンポラルリスト(RefPicListTemp0[rIdx])の先頭から、num_ref_idx_l0_active_minus1+1までの要素を抜きだし、L0の参照リスト(RefPicList0[rIdx])を生成する。
ステップS138において、参照画像リスト生成部133は、L1のテンポラルリスト(RefPicListTemp1[rIdx])の先頭から、num_ref_idx_l1_active_minus1+1までの要素を抜きだし、L1の参照リスト(RefPicList1[rIdx])を生成する。
以上のように、短時間(前)参照画像と短時間(後)参照画像との間に、インタービュー画像が挿入されて、図5を参照して上述した参照リストが生成される。
[参照リスト生成処理の他の流れ]
次に、図13のフローチャートを参照して、図11のステップS115において実行される参照リスト生成処理の流れの例を説明する。なお、この処理により、図6を参照して上述した本技術2の参照リストが生成される。また、この処理は、復号画像(すなわち、予測対象の画像)がPピクチャまたはBピクチャのみに実行される。
上述した図11のステップS103において、シンタックス処理部121より、復号画像のVPS、SPS(RPS含む)、およびスライスヘッダなどの情報が、参照リスト生成部122に供給される。短時間参照画像のused_by_currフラグは、シンタックス処理部121から供給されるスライスヘッダやRPSに設定されている。長時間参照画像のused_by_currフラグは、スライスヘッダやSPSに設定されている。
ステップS151において、参照リスト生成部122の参照画像設定部131は、デコードピクチャバッファ112からの参照画像の時刻情報(すなわち、POC情報)とスライスヘッダやRPSの短時間参照画像のused_by_currフラグを参照し、短時間(前)参照画像(STbC)を設定し、RefPicSetStCurrBefore[i]リストを生成する。
ステップS152において、参照画像設定部131は、デコードピクチャバッファ112からの参照画像の時刻情報とスライスヘッダやRPSの短時間参照画像のused_by_currフラグを参照し、短時間(後)参照画像(STaC)を設定し、RefPicSetStCurrAfter[i]リストを生成する。
ステップS153において、参照画像設定部131は、デコードピクチャバッファ112からの参照画像の時刻情報とスライスヘッダやSPSの長時間参照画像のused_by_currフラグを参照し、長時間参照画像(LT)を設定し、RefPicSetLtCurr[i]リストを生成する。
ステップS154において、参照画像設定部131は、デコードピクチャバッファ112からの参照画像のビュー情報を参照し、インタービュー参照画像(IV)を設定し、RefPicSetIvCurr[i]リストを生成する。
ステップS155において、テンポラルリスト生成部132は、参照画像設定部131により設定されたSTbC,STaC,LTの3つのリストを順番で結合したリスト1と、IVからなるリスト2の2つのリストを生成する。すなわち、used_by_currフラグが1である参照画像だけが、STbC,STaC,LTの順番で結合されて、リスト1が生成される。また、リスト2は、RefPicSetIvCurr[i]リストのすべてのIVが追加されて生成される。
ステップS156において、テンポラルリスト生成部132は、ステップS155で生成したリスト1およびリスト2、それぞれの先頭から1つずつ要素を取り出し、交互にならべて、L0のテンポラルリスト(RefPicListTemp0[rIdx])を生成する。
ステップS157において、テンポラルリスト生成部132は、参照画像設定部131により設定されたSTaC,STbC,LTの3つのリストを順番で結合したリスト11と、IVからなるリスト12の2つのリストを生成する。すなわち、used_by_currフラグが1である参照画像だけが、STaC,STbC,LTの順番で結合されて、リスト11が生成される。また、リスト12は、RefPicSetIvCurr[i]リストのすべてのIVが追加されて生成されるが、その際、図8を参照して上述したように、L0方向の順番と逆順に追加されてもよい。
ステップS158において、テンポラルリスト生成部132は、ステップS155で生成したリスト11およびリスト12、それぞれの先頭から1つずつ要素を取り出し、交互にならべて、L1のテンポラルリスト(RefPicListTemp1[rIdx])を生成する。
num_ref_idx_l0_active_minus1と、num_ref_idx_l1_active_minus1は、シンタックス処理部121から供給されるスライスヘッダやSPSに設定されている。
ステップS159において、参照画像リスト生成部133は、L0のテンポラルリスト(RefPicListTemp0[rIdx])の先頭から、num_ref_idx_l0_active_minus1+1までの要素を抜きだし、L0の参照リスト(RefPicList0[rIdx])を生成する。
ステップS160において、参照画像リスト生成部133は、L1のテンポラルリスト(RefPicListTemp1[rIdx])の先頭から、num_ref_idx_l1_active_minus1+1までの要素を抜きだし、L1の参照リスト(RefPicList1[rIdx])を生成する。
以上のように、テンポラルリストの生成において、時間方向の参照画像とビュー方向の参照画像とが交互に配置されて、図6を参照して上述した参照リストが生成される。
なお、上記説明においては、2種類の参照リストの例を説明したが、例えば、符号化側で、どちらの参照リストを選択したかを示す1ビットの参照リスト選択フラグを復号側に送り、復号側で、参照リスト選択フラグに応じた参照リスト生成を行うように構成することも可能である。この参照リスト選択フラグは、例えば、スライス毎に送るようにしてもよい。
例えば、図7を参照して上述したように、シーケンスにおけるテンポラル相関の高低やインタービュー相関の高低によって、よりよいリストが異なる。したがって、このように参照リスト選択フラグを送ることで、例えば、変更コマンドを画像によって送る場合に比して、また、例えば、非特許文献2のように、毎回シンタックスを送る場合に比して、符号化効率を改善することができる。
<2.第2の実施の形態>
[画像復号装置]
図14は、本開示を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。図14に示される画像復号装置200は、図1の画像符号化装置100に対応する復号装置である。
画像符号化装置100より符号化された符号化データは、所定の伝送路を介して、この画像符号化装置100に対応する画像復号装置200に伝送され、HEVC方式などで復号されるものとする。
図14に示されるように、画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、デブロックフィルタ206、画面並べ替えバッファ207、およびD/A変換部208を有する。また、画像復号装置200は、デコードピクチャバッファ209、選択部210、イントラ予測部211、動き視差予測・補償部212、および選択部213を有する。
さらに、画像復号装置200は、シンタックス処理部221、参照リスト生成部222、適応オフセットフィルタ223、および適応ループフィルタ224を有する。
蓄積バッファ201は、伝送されてきた符号化データを蓄積する。この符号化データは、画像符号化装置100により符号化されたものである。シンタックス処理部221は、蓄積バッファ201から所定のタイミングで読み出された符号化データから、VPS、SPS、およびスライスヘッダなどを取得し、取得した各ヘッダ情報を符号化データとともに、可逆復号部202に供給する。また、シンタックス処理部221は、取得したヘッダ情報などを、参照リスト生成部222に供給する。
可逆復号部202は、シンタックス処理部221からの符号化データを、図1の可逆符号化部106の符号化方式に対応する方式で復号する。逆量子化部203は、可逆復号部202により復号されて得られた係数データ(量子化係数)を、図1の量子化部105の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部203は、画像符号化装置100から供給された量子化パラメータを用いて、図1の逆量子化部108と同様の方法で量子化係数の逆量子化を行う。
逆量子化部203は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部204に供給する。逆直交変換部204は、図1の直交変換部104の直交変換方式に対応する方式で、その直交変換係数を逆直交変換し、画像符号化装置100において直交変換される前の残差データに対応する復号残差データを得る。
逆直交変換されて得られた復号残差データは、演算部205に供給される。また、演算部205には、選択部213を介して、イントラ予測部211若しくは動き視差予測・補償部212から予測画像が供給される。
演算部205は、その復号残差データと予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部205は、その復号画像データをデブロックフィルタ206に供給する。
デブロックフィルタ206は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。デブロックフィルタ206は、その結果得られる画像を適応オフセットフィルタ223に供給する。
適応オフセットフィルタ223は、シンタックス処理部221から供給されるオフセットを順に格納するバッファを有する。また、適応オフセットフィルタ223は、LCUごとに、シンタックス処理部221から供給されるオフセットフィルタ情報に基づいて、デブロックフィルタ206による適応デブロックフィルタ処理後の画像に対して、適応オフセットフィルタ処理を行う。
具体的には、オフセットフィルタ情報に含まれる格納フラグが0である場合、適応オフセットフィルタ223は、LCU単位のデブロックフィルタ処理後の画像に対して、そのオフセットフィルタ情報に含まれるオフセットを用いて、種類情報が示す種類の適応オフセットフィルタ処理を行う。
一方、オフセットフィルタ情報に含まれる格納フラグが1である場合、適応オフセットフィルタ223は、LCU単位のデブロックフィルタ処理後の画像に対して、そのオフセットフィルタ情報に含まれるインデックスが示す位置に格納されるオフセットを読み出す。そして、適応オフセットフィルタ223は、読み出されたオフセットを用いて、種類情報が示す種類の適応オフセットフィルタ処理を行う。適応オフセットフィルタ223は、適応オフセットフィルタ処理後の画像を、適応ループフィルタ224に供給する。
適応ループフィルタ224は、適応オフセットフィルタ223から供給される画像に対して、シンタックス処理部221から供給されるフィルタ係数を用いて、LCUごとに適応ループフィルタ処理を行う。適応ループフィルタ224は、その結果得られる画像を画面並べ替えバッファ207に供給する。
画面並べ替えバッファ207は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部208は、画面並べ替えバッファ207から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
適応ループフィルタ224の出力は、さらに、デコードピクチャバッファ209に供給される。
デコードピクチャバッファ209、選択部210、イントラ予測部211、動き視差予測・補償部212、および選択部213は、画像符号化装置100のデコードピクチャバッファ112、選択部113、イントラ予測部114、動き視差予測・補償部115、および選択部116にそれぞれ対応する。
選択部210は、インター処理される画像と参照される画像をデコードピクチャバッファ209から読み出し、動き視差予測・補償部212に供給する。また、選択部210は、イントラ予測に用いられる画像をデコードピクチャバッファ209から読み出し、イントラ予測部211に供給する。
イントラ予測部211には、ヘッダ情報から得られたイントラ予測モードを示す情報等が可逆復号部202から適宜供給される。イントラ予測部211は、この情報に基づいて、デコードピクチャバッファ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
動き視差予測・補償部212には、ヘッダ情報から得られた情報(予測モード情報、動きベクトル情報、視差ベクトル情報、および各種パラメータ等)が可逆復号部202から供給される。また、動き視差予測・補償部212には、参照リスト生成部222により割り当てられた参照画像インデックスが供給される。
動き視差予測・補償部212は、可逆復号部202から供給されるそれらの情報と、参照リスト生成部222生成された参照リストで示される参照画像インデックスに基づいて、デコードピクチャバッファ209から取得した参照画像から予測画像を生成する。動き視差予測・補償部212は、生成した予測画像を選択部213に供給する。
選択部213は、動き視差予測・補償部212またはイントラ予測部211により生成された予測画像を選択し、演算部205に供給する。
参照リスト生成部222は、画像符号化装置100の参照リスト生成部122と基本的に同様に構成される。参照リスト生成部222は、デコードピクチャバッファ209に蓄積される参照画像の情報(POC情報やビュー情報)を用いて、動き視差予測・補償部212が対象画像を予測する際に参照する参照リストを生成する。その際、参照リスト生成部122は、参照リストを、時間方向に参照可能な複数の参照画像の間にビュー方向に参照可能な参照画像を挿入して生成する。
すなわち、参照リスト生成部222は、参照リストを生成する際に用いられる一時的なリストであるテンポラルリストを、時間方向に参照可能な複数の参照画像の間にビュー方向に参照可能な参照画像を挿入して生成する。そして、参照リスト生成部222は、生成したテンポラルリストに基づいて、参照リストを生成する。
[参照リスト生成部の構成例]
図15は、図14の参照リスト生成部の構成例を示すブロック図である。
図15の例において、参照リスト生成部222は、参照画像設定部231、テンポラルリスト生成部232、および参照画像リスト生成部233を含むように構成されている。
参照画像設定部231は、デコードピクチャバッファ209からの参照画像の時刻情報(すなわち、POC情報)とシンタックス処理部221からのスライスヘッダやRPSに設定されている短時間参照画像のused_by_currフラグを参照し、短時間(前)参照画像を設定し、短時間(前)参照画像リスト(RefPicSetStCurrBefore[i])を生成する。参照画像設定部231は、デコードピクチャバッファ209からの参照画像の時刻情報とシンタックス処理部221からのスライスヘッダやRPSに設定されている短時間参照画像のused_by_currフラグを参照し、短時間(後)参照画像を設定し、短時間(後)参照画像リスト(RefPicSetStCurrAfter[i])を生成する。
参照画像設定部231は、デコードピクチャバッファ209からの参照画像の時刻情報とスライスヘッダやSPSに設定されている長時間参照画像のused_by_currフラグを参照し、長時間参照画像を設定し、長時間参照画像リスト(RefPicSetLtCurr[i])を生成する。参照画像設定部231は、デコードピクチャバッファ209からの参照画像のビュー情報を参照し、インタービュー参照画像(RefPicSetIvCurr[i])を設定し、そのリストを生成する。
テンポラルリスト生成部232は、参照画像設定部231により設定されたリストを、上述した本技術による所定の順番で結合し、L0およびL1のテンポラルリスト(RefPicListTemp0[rIdx], RefPicListTemp1[rIdx])を生成する。
参照画像リスト生成部233は、シンタックス処理部221から供給されるスライスヘッダやSPSに設定されているnum_ref_idx_l0_active_minus1と、num_ref_idx_l1_active_minus1を参照する。参照画像リスト生成部233は、テンポラルリスト生成部232により生成されたL0/L1のテンポラルリストのうち、num_ref_idx_l0_active_minus1と、num_ref_idx_l1_active_minus1で設定されている数だけの参照画像を抜き出して追加し、L0/L1の参照リストを生成する。
参照画像リスト生成部233により生成されたL0/L1の参照リストは、動き視差予測・補償部212に参照される。
[復号処理の流れ]
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図16のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップS201において、蓄積バッファ201は、伝送されてきた符号化データを蓄積する。ステップS202において、シンタックス処理部221は、蓄積バッファ201から所定のタイミングで読み出された符号化データから、ヘッダ情報を取得する。シンタックス処理部221は、取得した各ヘッダ情報を符号化データとともに、可逆復号部202に供給する。また、シンタックス処理部221は、取得したヘッダ情報(VPS、SPS(RPS含む)、スライスヘッダ)などを、参照リスト生成部222に供給する。
ステップS203において、可逆復号部202は、シンタックス処理部221から供給される符号化データを復号する。すなわち、図1の可逆符号化部106により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
このとき、各ヘッダ情報から、動きベクトル情報、視差ベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モード)、並びに、フラグや量子化パラメータ等の情報が取得される。
予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部211に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報は、動き視差予測・補償部212に供給される。
ステップS204において、逆量子化部203は、可逆復号部202により復号されて得られた、量子化された直交変換係数を逆量子化する。ステップS205において逆直交変換部204は逆量子化部203により逆量子化されて得られた直交変換係数を、図1の直交変換部104に対応する方法で逆直交変換する。これにより図1の直交変換部104の入力(演算部103の出力)に対応する差分情報が復号されたことになる。
ステップS206において、演算部205は、ステップS205の処理により得られた差分情報に、予測画像を加算する。これにより元の画像データが復号される。
ステップS207において、デブロックフィルタ206は、ステップS206の処理により得られた復号画像を適宜フィルタリングする。これにより適宜復号画像からブロック歪みが除去される。デブロックフィルタ206は、その結果得られる画像を適応オフセットフィルタ223に供給する。
ステップS208において、適応オフセットフィルタ223は、シンタックス処理部221から供給されるオフセットフィルタ情報に基づいて、デブロックフィルタ206によるデブロックフィルタ処理後の画像に対して、LCUごとに適応オフセットフィルタ処理を行う。適応オフセットフィルタ223は、適応オフセットフィルタ処理後の画像を、適応ループフィルタ224に供給する。
ステップS209において、適応ループフィルタ224は、適応オフセットフィルタ223から供給される画像に対して、シンタックス処理部221から供給されるフィルタ係数を用いて、LCUごとに適応ループフィルタ処理を行う。適応ループフィルタ224は、その結果得られる画像をデコードピクチャバッファ209および画面並べ替えバッファ207に供給する。
ステップS210において、デコードピクチャバッファ209は、フィルタリングされた復号画像を記憶する。
ステップS211において、参照リスト生成部222は、動き視差予測・補償部212が対象画像を予測する際に参照する参照リストを生成する。この参照リストの生成処理の詳細は、図17を参照して後述される。
ステップS211により、参照リストを生成する際に用いられる一時的なリストであるテンポラルリストが、時間方向に参照可能な複数の参照画像の間にビュー方向に参照可能な参照画像を挿入して生成される。そして、生成したテンポラルリストに基づいて、参照リストが生成される。
ステップS212において、イントラ予測部211、または動き視差予測・補償部212は、可逆復号部202から供給される予測モード情報に対応して、それぞれ画像の予測処理を行う。
すなわち、可逆復号部202からイントラ予測モード情報が供給された場合、イントラ予測部211は、イントラ予測モードのイントラ予測処理を行う。また、可逆復号部202からインター予測モード情報が供給された場合、動き視差予測・補償部212は、ステップS211の処理により生成された参照リストが示す参照画像インデックスの参照画像を用いて、インター予測モードの動き視差予測補償処理を行う。
ステップS213において、選択部213は予測画像を選択する。すなわち、選択部213には、イントラ予測部211により生成された予測画像、若しくは、動き視差予測・補償部212により生成された予測画像が供給される。選択部213は、その予測画像が供給された側を選択し、その予測画像を演算部205に供給する。この予測画像は、ステップS206の処理により差分情報に加算される。
ステップS214において、画面並べ替えバッファ207は、復号画像データのフレームの並べ替えを行う。すなわち、復号画像データの、画像符号化装置100の画面並べ替えバッファ102(図1)により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS215において、D/A変換部208は、画面並べ替えバッファ207においてフレームが並べ替えられた復号画像データをD/A変換する。この復号画像データが図示せぬディスプレイに出力され、その画像が表示される。このステップS215の処理が終了すると、復号処理が終了される。
[参照リスト生成処理の流れ]
次に、図17のフローチャートを参照して、図16のステップS211において実行される参照リスト生成処理の流れの例を説明する。なお、この処理により、図5を参照して上述した本技術1の参照リストが生成される。また、この処理は、復号画像(すなわち、予測対象の画像)がPピクチャまたはBピクチャのみに実行される。
上述した図16のステップS203において、シンタックス処理部221より、復号画像のVPS、SPS(RPSを含む)、およびスライスヘッダなどの情報が、参照リスト生成部222に供給される。短時間参照画像のused_by_currフラグは、シンタックス処理部221から供給されるスライスヘッダやRPSに設定されている。長時間参照画像のused_by_currフラグは、スライスヘッダやSPSに設定されている。
ステップS231において、参照リスト生成部222の参照画像設定部231は、デコードピクチャバッファ209からの参照画像の時刻情報(すなわち、POC情報)とスライスヘッダやRPSの短時間参照画像のused_by_currフラグを参照し、短時間(前)参照画像(STbC)を設定し、RefPicSetStCurrBefore[i]リストを生成する。
ステップS232において、参照画像設定部231は、デコードピクチャバッファ209からの参照画像の時刻情報とスライスヘッダやRPSの短時間参照画像のused_by_currフラグを参照し、短時間(後)参照画像(STaC)を設定し、RefPicSetStCurrAfter[i]リストを生成する。
ステップS233において、参照画像設定部231は、デコードピクチャバッファ209からの参照画像の時刻情報(すなわち、POC情報)スライスヘッダやSPSの長時間参照画像のused_by_currフラグを参照し、長時間参照画像(RefPicSetLtCurr[i]:LT)を設定し、RefPicSetLtCurr[i]リストを生成する。
ステップS234において、参照画像設定部231は、デコードピクチャバッファ209からの参照画像のビュー情報を参照し、インタービュー参照画像(IV)を設定し、RefPicSetIvCurr[i]リストを生成する。
ステップS235において、テンポラルリスト生成部232は、参照画像設定部231により設定された上記4種類のリストを、STbC,IV,STaC,LTの順番で結合し、L0のテンポラルリスト(RefPicListTemp0[rIdx])を生成する。
すなわち、上述した4種類のリストでused_by_currフラグが1である参照画像だけが、STbC,IV,STaC,LTの順番で結合されて、L0のテンポラルリストが生成される。なお、その際、IV(インタービュー参照画像)は、すべて追加される。
ステップS236において、テンポラルリスト生成部232は、参照画像設定部231により設定された4種類のリストを、STaC,IV,STbC,LTの順番で結合し、L1のテンポラルリスト(RefPicListTemp1[rIdx])を生成する。
すなわち、used_by_currフラグが1である参照画像だけが、STaC,IV,STbC,LTの順番で結合されて、L1のテンポラルリストが生成される。なお、その際、IV(インタービュー参照画像)は、すべて追加されるが、その順番は、図8を参照して上述したように、L0方向の順番と逆順に追加されてもよい。
num_ref_idx_l0_active_minus1と、num_ref_idx_l1_active_minus1は、シンタックス処理部221から供給されるスライスヘッダやSPSに設定されている。
ステップS237において、参照画像リスト生成部233は、L0のテンポラルリスト(RefPicListTemp0[rIdx])の先頭から、num_ref_idx_l0_active_minus1+1までの要素を抜きだし、L0の参照リスト(RefPicList0[rIdx])を生成する。
ステップS238において、参照画像リスト生成部233は、L1のテンポラルリスト(RefPicListTemp1[rIdx])の先頭から、num_ref_idx_l1_active_minus1+1までの要素を抜きだし、L1の参照リスト(RefPicList1[rIdx])を生成する。
以上のように、短時間(前)参照画像と短時間(後)参照画像との間に、インタービュー画像が挿入されて、図5を参照して上述した参照リストが生成される。
[参照リスト生成処理の他の流れ]
次に、図18のフローチャートを参照して、図16のステップS211において実行される参照リスト生成処理の流れの例を説明する。なお、この処理により、図6を参照して上述した本技術2の参照リストが生成される。また、この処理は、復号画像(すなわち、予測対象の画像)がPピクチャまたはBピクチャのみに実行される。
上述した図16のステップS203において、シンタックス処理部221より、復号画像のVPS、SPS(RPSを含む)、およびスライスヘッダなどの情報が、参照リスト生成部222に供給される。短時間参照画像のused_by_currフラグは、シンタックス処理部121から供給されるスライスヘッダやRPSに設定されている。長時間参照画像のused_by_currフラグは、スライスヘッダやSPSに設定されている。
ステップS251において、参照リスト生成部222の参照画像設定部231は、デコードピクチャバッファ209からの参照画像の時刻情報(すなわち、POC情報)とスライスヘッダやRPSの短時間参照画像のused_by_currフラグを参照し、短時間(前)参照画像(STbC)を設定し、RefPicSetStCurrBefore[i]リストを生成する。
ステップS252において、参照画像設定部231は、デコードピクチャバッファ209からの参照画像の時刻情報とスライスヘッダやRPSの短時間参照画像のused_by_currフラグを参照し、短時間(後)参照画像(STaC)を設定し、RefPicSetStCurrAfter[i]リストを生成する。
ステップS253において、参照画像設定部231は、デコードピクチャバッファ209からの参照画像の時刻情報とスライスヘッダやSPSの長時間参照画像のused_by_currフラグを参照し、長時間参照画像(LT)を設定し、RefPicSetLtCurr[i]リストを生成する。
ステップS254において、参照画像設定部231は、デコードピクチャバッファ209からの参照画像のビュー情報を参照し、インタービュー参照画像(IV)を設定し、RefPicSetIvCurr[i]リストを生成する。
ステップS255において、テンポラルリスト生成部232は、参照画像設定部231により設定されたSTbC,STaC,LTの3つのリストを順番で結合したリスト1と、IVからなるリスト2の2つのリストを生成する。すなわち、used_by_currフラグが1である参照画像だけが、STbC,STaC,LTの順番で結合されて、リスト1が生成される。また、リスト2は、RefPicSetIvCurr[i]リストのすべてのIVが追加されて生成される。
ステップS256において、テンポラルリスト生成部232は、ステップS255で生成したリスト1およびリスト2、それぞれの先頭から1つずつ要素を取り出し、交互にならべて、L0のテンポラルリスト(RefPicListTemp0[rIdx])を生成する。
ステップS257において、テンポラルリスト生成部232は、参照画像設定部231により設定されたSTaC,STbC,LTの3つのリストを順番で結合したリスト11と、IVからなるリスト12の2つのリストを生成する。すなわち、used_by_currフラグが1である参照画像だけが、STaC,STbC,LTの順番で結合されて、リスト11が生成される。また、リスト12は、RefPicSetIvCurr[i]リストのすべてのIVが追加されて生成されるが、その際、図8を参照して上述したように、L0方向の順番と逆順に追加されてもよい。
ステップS258において、テンポラルリスト生成部232は、ステップS255で生成したリスト11およびリスト12、それぞれの先頭から1つずつ要素を取り出し、交互にならべて、L1のテンポラルリスト(RefPicListTemp1[rIdx])を生成する。
num_ref_idx_l0_active_minus1と、num_ref_idx_l1_active_minus1は、シンタックス処理部221から供給されるスライスヘッダやSPSに設定されている。
ステップS259において、参照画像リスト生成部233は、L0のテンポラルリスト(RefPicListTemp0[rIdx])の先頭から、num_ref_idx_l0_active_minus1+1までの要素を抜きだし、L0の参照リスト(RefPicList0[rIdx])を生成する。
ステップS260において、参照画像リスト生成部233は、L1のテンポラルリスト(RefPicListTemp1[rIdx])の先頭から、num_ref_idx_l1_active_minus1+1までの要素を抜きだし、L1の参照リスト(RefPicList1[rIdx])を生成する。
以上のように、テンポラルリストの生成において、時間方向の参照画像とビュー方向の参照画像とが交互に配置されて、図6を参照して上述した参照リストが生成される。
また、以上においては、符号化方式としてHEVC方式をベースに用いるようにしたが、本技術は、表示を行う際の技術であり、符号化方式に拘らない。したがって、本技術は、HEVC方式に限らず、その他の符号化方式/復号方式を適用することができる。例えば、次に説明するAVC方式をベースに符号化/復号処理を行う装置にも適用することができる。
<3.第3の実施の形態>
[画像符号化装置の他の構成例]
図19は、本開示を適用した画像処理装置としての画像符号化装置のその他の実施の形態の構成を表している。図19の画像符号化装置300においては、AVC方式による符号化処理が行われる点のみが、図1の画像符号化装置100と異なっている。
図19に示す構成のうち、図1の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図19の画像符号化装置300は、A/D変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、デブロックフィルタ111、デコードピクチャバッファ112、選択部113、イントラ予測部114、動き視差予測・補償部115、選択部116、およびレート制御部117を有する。
画像符号化装置100は、さらに、シンタックス処理部121、および参照リスト生成部122を有する。
すなわち、図19の画像符号化装置300の構成は、適応オフセットフィルタ123と適応ループフィルタ124が除かれている点、および可逆符号化部106がHEVC方式ではなく、AVC方式により符号化を行う点のみが図1の画像符号化装置100の構成と異なる。したがって、画像符号化装置300においては、CU単位ではなく、ブロック単位に符号化処理が行われる。
可逆符号化部106の符号化処理の対象は、適応オフセットフィルタおよび適応ループフィルタのパラメータを除き、図1の可逆符号化部106の場合と基本的に同様である。すなわち、可逆符号化部106は、図1の可逆符号化部106と同様に、イントラ予測モード情報をイントラ予測部114から取得する。また、インター予測モード情報、動きベクトル、参照画像を特定するための情報などを動き視差予測・補償部115から取得する。
可逆符号化部106は、図1の可逆符号化部106と同様に、量子化部105から供給される量子化された係数に対して、可変長符号化(例えば、CAVLCなど)、算術符号化(例えば、CABACなど)などの可逆符号化を行う。
また、可逆符号化部106は、図1の可逆符号化部106と同様に、量子化された変換係数を符号化するとともに、イントラ予測モード情報、インター予測モード情報、動きベクトル情報、および量子化パラメータを、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
デブロックフィルタ111は、演算部110から供給される局部的に復号された画像をフィルタリングすることにより、ブロック歪を除去する。デブロックフィルタ111は、その結果得られる画像をデコードピクチャバッファ112に供給し、蓄積させる。
デコードピクチャバッファ112に蓄積された画像は、参照画像として選択部113を介してイントラ予測部114または動き視差予測・補償部115に出力される。
本技術は、このようなAVC方式の画像符号化装置にも適用することができる。
[復号部の他の構成例]
図20は、本開示を適用した画像処理装置としての画像復号装置の他の実施の形態の構成を表している。図20に示される画像復号装置350は、図19の画像符号化装置300に対応する復号装置である。図20の画像復号装置350においては、AVC方式による復号処理が行われる点のみが、図14の画像復号装置200と異なっている。
図20に示す構成のうち、図14の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図20の画像復号装置350は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、デブロックフィルタ206、画面並べ替えバッファ207、D/A変換部208、デコードピクチャバッファ209、選択部210、イントラ予測部211、動き視差予測・補償部212、および選択部213により構成される。
図20の画像復号装置350の構成は、適応オフセットフィルタ223と適応ループフィルタ224が除かれている点、および可逆復号部202がHEVC方式ではなく、AVC方式により復号を行う点のみが図14の画像復号装置200の構成と異なる。したがって、画像復号装置350においては、CU単位ではなく、ブロック単位に復号処理が行われる。
可逆復号部202の復号処理の対象は、適応オフセットフィルタおよび適応ループフィルタのパラメータを除き、図14の可逆復号部202の場合と基本的に同様である。すなわち、蓄積バッファ201は、伝送されてきた符号化データを蓄積する。この符号化データは、画像符号化装置300により符号化されたものである。
シンタックス処理部221は、図14のシンタックス処理部221と同様に、蓄積バッファ201から所定のタイミングで読み出された符号化データから、シーケンスパラメータセット、ピクチャパラメータセット、およびスライスヘッダなどを取得し、取得した各ヘッダ情報を符号化データとともに、可逆復号部202に供給する。また、シンタックス処理部221は、取得したヘッダ情報などを、参照リスト生成部222に供給する。
また、可逆復号部202は、図14の可逆復号部202と同様に、シンタックス処理部221からの符号化データに対して、可変長復号や、算術復号等の可逆復号を施すことで、量子化された係数を得る。可逆復号部202は、量子化された係数を逆量子化部203に供給する。
デブロックフィルタ206は、演算部205から供給される画像をフィルタリングすることにより、ブロック歪を除去する。デブロックフィルタ206は、その結果得られる画像をデコードピクチャバッファ209および画面並べ替えバッファ207に供給する。
本技術は、このようなAVC方式の画像復号装置にも適用することができる。
なお、本開示は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本開示は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本開示は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
<4.第4の実施の形態>
[コンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図21は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータ500において、CPU(Central Processing Unit)501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。
バス504には、さらに、入出力インタフェース510が接続されている。入出力インタフェース510には、入力部511、出力部512、記憶部513、通信部514、及びドライブ515が接続されている。
入力部511は、キーボード、マウス、マイクロホンなどよりなる。出力部512は、ディスプレイ、スピーカなどよりなる。記憶部513は、ハードディスクや不揮発性のメモリなどよりなる。通信部514は、ネットワークインタフェースなどよりなる。ドライブ515は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア521を駆動する。
以上のように構成されるコンピュータでは、CPU501が、例えば、記憶部513に記憶されているプログラムを、入出力インタフェース510及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ500(CPU501)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア521に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア521をドライブ515に装着することにより、入出力インタフェース510を介して、記憶部513にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部514で受信し、記憶部513にインストールすることができる。その他、プログラムは、ROM502や記憶部513に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<5.応用例>
[第1の応用例:テレビジョン受像機]
図22は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、多視点符号化における符号化効率を改善することができることができる。
[第2の応用例:携帯電話機]
図23は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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(Universal Serial Bus)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部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は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、多視点符号化における符号化効率を改善することができる。
[第3の応用例:記録再生装置]
図24は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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へ出力する。
HDD部944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD部944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD部944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD部944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD部948へ出力する。また、デコーダ947は、生成した音声データを外部のスピーカへ出力する。
OSD部948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD部948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース部950は、制御部949と接続される。ユーザインタフェース部950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、多視点符号化における符号化効率を改善することができる。
[第4の応用例:撮像装置]
図25は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部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は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、多視点符号化における符号化効率を改善することができる。
<6.第5の実施の形態>
[実施のその他の例]
以上において本技術を適用する装置やシステム等の例を説明したが、本技術は、これに限らず、このような装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
[ビデオセット]
本技術をセットとして実施する場合の例について、図26を参照して説明する。図26は、本技術を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図26に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図26に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図26の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図26のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方若しくは両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信に関する処理を行うプロセッサ(若しくはモジュール)である。例えば、ブロードバンドモデム1333は、送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。例えば、ブロードバンドモデム1333は、ビデオプロセッサ1332が処理する画像データや画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報をデジタル変調・復調することができる。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図26において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図26に示されるように、フロントエンドモジュール1314は、例えば、アンテナ部1351、フィルタ1352、および増幅部1353を有する。
アンテナ部1351は、無線信号を送受信するアンテナおよびその周辺の構成を有する。アンテナ部1351は、増幅部1353から供給される信号を無線信号として送信し、受信した無線信号を電気信号(RF信号)としてフィルタ1352に供給する。フィルタ1352は、アンテナ部1351を介して受信されたRF信号に対してフィルタ処理等を行い、処理後のRF信号をRFモジュール1334に供給する。増幅部1353は、RFモジュール1334から供給されるRF信号を増幅し、アンテナ部1351に供給する。
コネクティビティ1321は、外部との接続に関する機能を有するモジュールである。コネクティビティ1321の物理構成は、任意である。例えば、コネクティビティ1321は、ブロードバンドモデム1333が対応する通信規格以外の通信機能を有する構成や、外部入出力端子等を有する。
例えば、コネクティビティ1321が、Bluetooth(登録商標)、IEEE 802.11(例えばWi-Fi(Wireless Fidelity、登録商標))、NFC(Near Field Communication)、IrDA(InfraRed Data Association)等の無線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した信号を送受信するアンテナ等を有するようにしてもよい。また、例えば、コネクティビティ1321が、USB(Universal Serial Bus)、HDMI(登録商標)(High-Definition Multimedia Interface)等の有線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した端子を有するようにしてもよい。さらに、例えば、コネクティビティ1321が、アナログ入出力端子等のその他のデータ(信号)伝送機能等を有するようにしてもよい。
なお、コネクティビティ1321が、データ(信号)の伝送先のデバイスを含むようにしてもよい。例えば、コネクティビティ1321が、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等の記録媒体に対してデータの読み出しや書き込みを行うドライブ(リムーバブルメディアのドライブだけでなく、ハードディスク、SSD(Solid State Drive)、NAS(Network Attached Storage)等も含む)を有するようにしてもよい。また、コネクティビティ1321が、画像や音声の出力デバイス(モニタやスピーカ等)を有するようにしてもよい。
カメラ1322は、被写体を撮像し、被写体の画像データを得る機能を有するモジュールである。カメラ1322の撮像により得られた画像データは、例えば、ビデオプロセッサ1332に供給されて符号化される。
センサ1323は、例えば、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、イメージセンサ、回転センサ、角度センサ、角速度センサ、速度センサ、加速度センサ、傾斜センサ、磁気識別センサ、衝撃センサ、温度センサ等、任意のセンサ機能を有するモジュールである。センサ1323により検出されたデータは、例えば、アプリケーションプロセッサ1331に供給されてアプリケーション等により利用される。
以上においてモジュールとして説明した構成をプロセッサとして実現するようにしてもよいし、逆にプロセッサとして説明した構成をモジュールとして実現するようにしてもよい。
以上のような構成のビデオセット1300において、後述するようにビデオプロセッサ1332に本技術を適用することができる。したがって、ビデオセット1300は、本技術を適用したセットとして実施することができる。
[ビデオプロセッサの構成例]
図27は、本技術を適用したビデオプロセッサ1332(図26)の概略的な構成の一例を示している。
図27の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図27に示されるように、ビデオプロセッサ1332は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、フレームメモリ1405、およびメモリ制御部1406を有する。また、ビデオプロセッサ1332は、エンコード・デコードエンジン1407、ビデオES(Elementary Stream)バッファ1408Aおよび1408B、並びに、オーディオESバッファ1409Aおよび1409Bを有する。さらに、ビデオプロセッサ1332は、オーディオエンコーダ1410、オーディオデコーダ1411、多重化部(MUX(Multiplexer))1412、逆多重化部(DMUX(Demultiplexer))1413、およびストリームバッファ1414を有する。
ビデオ入力処理部1401は、例えばコネクティビティ1321(図26)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部1402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部1403は、画像データに対して、ビデオ出力処理部1404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部1402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部1404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ1321(図26)等に出力する。
フレームメモリ1405は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、およびエンコード・デコードエンジン1407によって共用される画像データ用のメモリである。フレームメモリ1405は、例えばDRAM等の半導体メモリとして実現される。
メモリ制御部1406は、エンコード・デコードエンジン1407からの同期信号を受けて、アクセス管理テーブル1406Aに書き込まれたフレームメモリ1405へのアクセススケジュールに従ってフレームメモリ1405に対する書き込み・読み出しのアクセスを制御する。アクセス管理テーブル1406Aは、エンコード・デコードエンジン1407、第1画像拡大縮小部1402、第2画像拡大縮小部1403等で実行される処理に応じて、メモリ制御部1406により更新される。
エンコード・デコードエンジン1407は、画像データのエンコード処理、並びに、画像データが符号化されたデータであるビデオストリームのデコード処理を行う。例えば、エンコード・デコードエンジン1407は、フレームメモリ1405から読み出した画像データを符号化し、ビデオストリームとしてビデオESバッファ1408Aに順次書き込む。また、例えば、ビデオESバッファ1408Bからビデオストリームを順次読み出して復号し、画像データとしてフレームメモリ1405に順次書き込む。エンコード・デコードエンジン1407は、これらの符号化や復号において、フレームメモリ1405を作業領域として使用する。また、エンコード・デコードエンジン1407は、例えばマクロブロック毎の処理を開始するタイミングで、メモリ制御部1406に対して同期信号を出力する。
ビデオESバッファ1408Aは、エンコード・デコードエンジン1407によって生成されたビデオストリームをバッファリングして、多重化部(MUX)1412に供給する。ビデオESバッファ1408Bは、逆多重化部(DMUX)1413から供給されたビデオストリームをバッファリングして、エンコード・デコードエンジン1407に供給する。
オーディオESバッファ1409Aは、オーディオエンコーダ1410によって生成されたオーディオストリームをバッファリングして、多重化部(MUX)1412に供給する。オーディオESバッファ1409Bは、逆多重化部(DMUX)1413から供給されたオーディオストリームをバッファリングして、オーディオデコーダ1411に供給する。
オーディオエンコーダ1410は、例えばコネクティビティ1321(図26)等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ1410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ1409Aに順次書き込む。オーディオデコーダ1411は、オーディオESバッファ1409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ1321(図26)等に供給する。
多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化する。この多重化の方法(すなわち、多重化により生成されるビットストリームのフォーマット)は任意である。また、この多重化の際に、多重化部(MUX)1412は、所定のヘッダ情報等をビットストリームに付加することもできる。つまり、多重化部(MUX)1412は、多重化によりストリームのフォーマットを変換することができる。例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームに変換する。また、例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、記録用のファイルフォーマットのデータ(ファイルデータ)に変換する。
逆多重化部(DMUX)1413は、多重化部(MUX)1412による多重化に対応する方法で、ビデオストリームとオーディオストリームとが多重化されたビットストリームを逆多重化する。つまり、逆多重化部(DMUX)1413は、ストリームバッファ1414から読み出されたビットストリームからビデオストリームとオーディオストリームとを抽出する(ビデオストリームとオーディオストリームとを分離する)。つまり、逆多重化部(DMUX)1413は、逆多重化によりストリームのフォーマットを変換(多重化部(MUX)1412による変換の逆変換)することができる。例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図26)から供給されたトランスポートストリームを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321により(図26)各種記録媒体から読み出されたファイルデータを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
ストリームバッファ1414は、ビットストリームをバッファリングする。例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図26)等に供給する。
また、例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321(図26)等に供給し、各種記録媒体に記録させる。
さらに、ストリームバッファ1414は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図26)を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
また、ストリームバッファ1414は、例えばコネクティビティ1321(図26)等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
次に、このような構成のビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321(図26)等からビデオプロセッサ1332に入力されたビデオ信号は、ビデオ入力処理部1401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ1405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部1402または第2画像拡大縮小部1403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ1405に書き込まれる。この画像データは、エンコード・デコードエンジン1407によって符号化され、ビデオストリームとしてビデオESバッファ1408Aに書き込まれる。
また、コネクティビティ1321(図26)等からビデオプロセッサ1332に入力されたオーディオ信号は、オーディオエンコーダ1410によって符号化され、オーディオストリームとして、オーディオESバッファ1409Aに書き込まれる。
ビデオESバッファ1408Aのビデオストリームと、オーディオESバッファ1409Aのオーディオストリームは、多重化部(MUX)1412に読み出されて多重化され、トランスポートストリーム若しくはファイルデータ等に変換される。多重化部(MUX)1412により生成されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図26)等を介して外部ネットワークに出力される。また、多重化部(MUX)1412により生成されたファイルデータは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321(図26)等に出力され、各種記録媒体に記録される。
また、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図26)等を介して外部ネットワークからビデオプロセッサ1332に入力されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。また、例えばコネクティビティ1321(図26)等において各種記録媒体から読み出され、ビデオプロセッサ1332に入力されたファイルデータは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。つまり、ビデオプロセッサ1332に入力されたトランスポートストリームまたはファイルデータは、逆多重化部(DMUX)1413によりビデオストリームとオーディオストリームとに分離される。
オーディオストリームは、オーディオESバッファ1409Bを介してオーディオデコーダ1411に供給され、復号されてオーディオ信号が再生される。また、ビデオストリームは、ビデオESバッファ1408Bに書き込まれた後、エンコード・デコードエンジン1407により順次読み出されて復号されてフレームメモリ1405に書き込まれる。復号された画像データは、第2画像拡大縮小部1403によって拡大縮小処理されて、フレームメモリ1405に書き込まれる。そして、復号された画像データは、ビデオ出力処理部1404に読み出されて、4:2:2Y/Cb/Cr方式等の所定の方式にフォーマット変換され、さらにアナログ信号に変換されて、ビデオ信号が再生出力される。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、エンコード・デコードエンジン1407に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、エンコード・デコードエンジン1407が、第1の実施の形態に係る画像符号化装置100(図1)や第2の実施の形態に係る画像復号装置200(図14)の機能を有するようにすればよい。また、例えば、エンコード・デコードエンジン1407が、第3の実施の形態に係る画像符号化装置300(図19)や画像復号装置350(図20)の機能を有するようにすればよい。さらに、例えば、エンコード・デコードエンジン1407が、画像符号化装置200(図14)や第2の実施の形態に係る画像復号装置350(図20)の機能を有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図18を参照して上述した効果と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
[ビデオプロセッサの他の構成例]
図28は、本技術を適用したビデオプロセッサ1332(図26)の概略的な構成の他の例を示している。図28の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能とを有する。
より具体的には、図28に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図28に示されるように、制御部1511は、例えば、メインCPU1531、サブCPU1532、およびシステムコントローラ1533を有する。メインCPU1531は、ビデオプロセッサ1332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU1531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU1532は、メインCPU1531の補助的な役割を果たす。例えば、サブCPU1532は、メインCPU1531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ1533は、メインCPU1531およびサブCPU1532が実行するプログラムを指定する等、メインCPU1531およびサブCPU1532の動作を制御する。
ディスプレイインタフェース1512は、制御部1511の制御の下、画像データを例えばコネクティビティ1321(図26)等に出力する。例えば、ディスプレイインタフェース1512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ1321(図26)のモニタ装置等に出力する。
ディスプレイエンジン1513は、制御部1511の制御の下、画像データに対して、その画像を表示させるモニタ装置等のハードウエアスペックに合わせるように、フォーマット変換、サイズ変換、色域変換等の各種変換処理を行う。
画像処理エンジン1514は、制御部1511の制御の下、画像データに対して、例えば画質改善のためのフィルタ処理等、所定の画像処理を施す。
内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516により共用される、ビデオプロセッサ1332の内部に設けられたメモリである。内部メモリ1515は、例えば、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516の間で行われるデータの授受に利用される。例えば、内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516から供給されるデータを格納し、必要に応じて(例えば、要求に応じて)、そのデータを、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516に供給する。この内部メモリ1515は、どのような記憶デバイスにより実現するようにしてもよいが、一般的にブロック単位の画像データやパラメータ等といった小容量のデータの格納に利用することが多いので、例えばSRAM(Static Random Access Memory)のような比較的(例えば外部メモリ1312と比較して)小容量だが応答速度が高速な半導体メモリにより実現するのが望ましい。
コーデックエンジン1516は、画像データの符号化や復号に関する処理を行う。このコーデックエンジン1516が対応する符号化・復号の方式は任意であり、その数は1つであってもよいし、複数であってもよい。例えば、コーデックエンジン1516は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化若しくは符号化データの復号を行うようにしてもよい。
図28に示される例において、コーデックエンジン1516は、コーデックに関する処理の機能ブロックとして、例えば、MPEG-2 Video1541、AVC/H.2641542、HEVC/H.2651543、HEVC/H.265(Scalable)1544、HEVC/H.265(Multi-view)1545、およびMPEG-DASH1551を有する。
MPEG-2 Video1541は、画像データをMPEG-2方式で符号化したり復号したりする機能ブロックである。AVC/H.2641542は、画像データをAVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.2651543は、画像データをHEVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265(Scalable)1544は、画像データをHEVC方式でスケーラブル符号化したりスケーラブル復号したりする機能ブロックである。HEVC/H.265(Multi-view)1545は、画像データをHEVC方式で多視点符号化したり多視点復号したりする機能ブロックである。
MPEG-DASH1551は、画像データをMPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP)方式で送受信する機能ブロックである。MPEG-DASHは、HTTP(HyperText Transfer Protocol)を使ってビデオのストリーミングを行う技術であり、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択し伝送することを特徴の1つとする。MPEG-DASH1551は、規格に準拠するストリームの生成やそのストリームの伝送制御等を行い、画像データの符号化・復号については、上述したMPEG-2 Video1541乃至HEVC/H.265(Multi-view)1545を利用する。
メモリインタフェース1517は、外部メモリ1312用のインタフェースである。画像処理エンジン1514やコーデックエンジン1516から供給されるデータは、メモリインタフェース1517を介して外部メモリ1312に供給される。また、外部メモリ1312から読み出されたデータは、メモリインタフェース1517を介してビデオプロセッサ1332(画像処理エンジン1514若しくはコーデックエンジン1516)に供給される。
多重化・逆多重化部(MUX DMUX)1518は、符号化データのビットストリーム、画像データ、ビデオ信号等、画像に関する各種データの多重化や逆多重化を行う。この多重化・逆多重化の方法は任意である。例えば、多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、複数のデータを1つにまとめるだけでなく、所定のヘッダ情報等をそのデータに付加することもできる。また、逆多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、1つのデータを複数に分割するだけでなく、分割した各データに所定のヘッダ情報等を付加することもできる。つまり、多重化・逆多重化部(MUX DMUX)1518は、多重化・逆多重化によりデータのフォーマットを変換することができる。例えば、多重化・逆多重化部(MUX DMUX)1518は、ビットストリームを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームや、記録用のファイルフォーマットのデータ(ファイルデータ)に変換することができる。もちろん、逆多重化によりその逆変換も可能である。
ネットワークインタフェース1519は、例えばブロードバンドモデム1333やコネクティビティ1321(いずれも図26)等向けのインタフェースである。ビデオインタフェース1520は、例えばコネクティビティ1321やカメラ1322(いずれも図26)等向けのインタフェースである。
次に、このようなビデオプロセッサ1332の動作の例について説明する。例えば、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図26)等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース1519を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、例えば、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図26)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてファイルデータに変換され、ビデオインタフェース1520を介して例えばコネクティビティ1321(図26)等に出力され、各種記録媒体に記録される。
さらに、例えば、コネクティビティ1321(図26)等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース1520を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図26)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース1519を介して例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図26)等に供給され図示せぬ他の装置に伝送される。
なお、ビデオプロセッサ1332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ1515や外部メモリ1312を利用して行われる。また、パワーマネージメントモジュール1313は、例えば制御部1511への電力供給を制御する。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、コーデックエンジン1516に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、コーデックエンジン1516が、第1の実施の形態に係る画像符号化装置100(図1)や第2の実施の形態に係る画像復号装置200(図14)を実現する機能ブロックを有するようにすればよい。また、例えば、コーデックエンジン1516が、第3の実施の形態に係る画像符号化装置300(図19)や画像復号装置350(図20)を実現する機能ブロックを有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図18を参照して上述した効果と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
[装置への適用例]
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図22)、携帯電話機920(図23)、記録再生装置940(図24)、撮像装置960(図25)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図18を参照して上述した効果と同様の効果を得ることができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を、本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本技術を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図18を参照して上述した効果と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図22)、携帯電話機920(図23)、記録再生装置940(図24)、撮像装置960(図25)等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図18を参照して上述した効果と同様の効果を得ることができる。
なお、本明細書では、参照リスト選択フラグ等の各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) ビットストリームを復号して、画像を生成する復号部と、
時間方向に参照可能な複数の参照画像の間に、レイヤ方向に参照可能な参照画像を挿入して、前記復号部により生成された画像を予測する際に参照される参照リストを設定する参照リスト設定部と、
前記参照リスト設定部により設定された参照リストを参照して、前記復号部により生成された前記画像を予測する予測部と
を備える画像処理装置。
(2) 前記参照リスト設定部は、前記時間方向に参照可能な複数の参照画像のうち、前記画像より時間的に前に位置する参照画像と、前記画像より時間的に後に位置する参照画像との間に、前記レイヤ方向に参照可能な参照画像を挿入して、前記参照リストを設定する
前記(1)に記載の画像処理装置。
(3) 前記参照リスト設定部は、L0方向に関して、前記画像より時間的に前に位置する参照画像、前記レイヤ方向に参照可能な参照画像、前記画像より時間的に後に位置する参照画像の順に配置して、前記参照リストを設定する
前記(2)に記載の画像処理装置。
(4) 前記参照リスト設定部は、L1方向に関して、前記画像より時間的に後に位置する参照画像、前記レイヤ方向に参照可能な参照画像、前記画像より時間的に前に位置する参照画像の順に配置して、前記参照リストを設定する
前記(2)に記載の画像処理装置。
(5) 前記参照リスト設定部は、前記時間方向に参照可能な参照画像と、前記レイヤ方向に参照可能な参照画像とを交互に配置して、前記参照リストを設定する
前記(1)に記載の画像処理装置。
(6) 前記参照リスト設定部は、L0方向に関して、前記画像より時間的に前に位置する参照画像、前記画像より時間的に後に位置する参照画像の順に設定された前記時間方向に参照可能な参照画像のリストの要素と、前記レイヤ方向に参照可能な参照画像からなる前記レイヤ方向に参照可能な参照画像のリストの要素とを交互に配置して、前記参照リストを設定する
前記(5)に記載の画像処理装置。
(7) 前記参照リスト設定部は、L1方向に関して、前記画像より時間的に後に位置する参照画像、前記画像より時間的に前に位置する参照画像の順に設定された前記時間方向に参照可能な参照画像のリストの要素と、前記レイヤ方向に参照可能な参照画像がからなる前記レイヤ方向に参照可能な参照画像のリストの要素とを交互に配置して、前記参照リストを設定する
前記(5)に記載の画像処理装置。
(8) 前記参照リスト設定部は、L1方向に関して、前記レイヤ方向に参照可能な参照画像の順序をL0方向の場合と逆に、前記レイヤ方向に参照可能な参照画像を挿入して、前記参照リストを設定する
前記(1)乃至(7)のいずれかに記載の画像処理装置。
(9) 前記参照リスト設定部は、
時間方向に参照可能な複数の参照画像の間に、レイヤ方向に参照可能な参照画像を挿入して、前記参照リストの設定に用いられる一時的なリストであるテンポラルリストを設定するテンポラルリスト設定部と、
前記テンポラルリスト設定部により設定されたテンポラルリストに基づいて、前記参照リストを設定する参照画像リスト設定部と
を含む前記(1)乃至(8)のいずれかに記載の画像処理装置。
(10) 画像処理装置が、
ビットストリームを復号して、画像を生成し、
時間方向に参照可能な複数の参照画像の間に、レイヤ方向に参照可能な参照画像を挿入して、生成された画像を予測する際に参照される参照リストを設定し、
設定された参照リストを参照して、生成された前記画像を予測する
画像処理方法。
(11) 時間方向に参照可能な複数の参照画像の間に、レイヤ方向に参照可能な参照画像を挿入して、画像を予測する際に参照される参照リストを設定する参照リスト設定部と、
前記参照リスト設定部により設定された参照リストを参照して、前記画像を予測する予測部と、
前記予測部により予測された前記画像を用いて符号化してビットストリームを生成する符号化部と
を備える画像処理装置。
(12) 前記参照リスト設定部は、前記時間方向に参照可能な複数の参照画像のうち、前記画像より時間的に前に位置する参照画像と、前記画像より時間的に後に位置する参照画像との間に、前記レイヤ方向に参照可能な参照画像を挿入して、前記参照リストを設定する
前記(11)に記載の画像処理装置。
(13) 前記参照リスト設定部は、L0方向に関して、前記画像より時間的に前に位置する参照画像、前記レイヤ方向に参照可能な参照画像、前記画像より時間的に後に位置する参照画像の順に配置して、前記参照リストを設定する
前記(12)に記載の画像処理装置。
(14) 前記参照リスト設定部は、L1方向に関して、前記画像より時間的に後に位置する参照画像、前記レイヤ方向に参照可能な参照画像、前記画像より時間的に前に位置する参照画像の順に配置して、前記参照リストを設定する
前記(12)に記載の画像処理装置。
(15) 前記参照リスト設定部は、前記時間方向に参照可能な参照画像と、前記レイヤ方向に参照可能な参照画像とを交互に配置して、前記参照リストを設定する
前記(11)に記載の画像処理装置。
(16) 前記参照リスト設定部は、L0方向に関して、前記画像より時間的に前に位置する参照画像、前記画像より時間的に後に位置する参照画像の順に設定された前記時間方向に参照可能な参照画像のリストの要素と、前記レイヤ方向に参照可能な参照画像からなる前記レイヤ方向に参照可能な参照画像のリストの要素とを交互に配置して、前記参照リストを設定する
前記(15)に記載の画像処理装置。
(17) 前記参照リスト設定部は、L1方向に関して、前記画像より時間的に後に位置する参照画像、前記画像より時間的に前に位置する参照画像の順に設定された前記時間方向に参照可能な参照画像のリストの要素と、前記レイヤ方向に参照可能な参照画像からなる前記レイヤ方向に参照可能な参照画像のリストの要素とを交互に配置して、前記参照リストを設定する
前記(15)に記載の画像処理装置。
(18) 前記参照リスト設定部は、L1方向に関して、前記レイヤ方向に参照可能な参照画像の順序をL0方向の場合と逆に、前記レイヤ方向に参照可能な参照画像を挿入して、前記参照リストを設定する
前記(11)乃至(17)のいずれかに記載の画像処理装置。
(19) 前記参照リスト設定部は、
時間方向に参照可能な複数の参照画像の間に、レイヤ方向に参照可能な参照画像を挿入して、前記参照リストの設定に用いられる一時的なリストであるテンポラルリストを設定するテンポラルリスト設定部と、
前記テンポラルリスト設定部により設定されたテンポラルリストに基づいて、前記参照リストを設定する参照画像リスト設定部と
を含む前記(11)乃至(18)のいずれかに記載の画像処理装置。
(20) 画像処理装置が、
時間方向に参照可能な複数の参照画像の間に、レイヤ方向に参照可能な参照画像を挿入して、画像を予測する際に参照される参照リストを設定し、
設定された参照リストを参照して、前記画像を予測し、
予測された前記画像を用いて符号化してビットストリームを生成する
画像処理方法。