以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
0.概要
1.第1の実施の形態(画像符号化装置、画像復号装置)
2.第2の実施の形態(画像符号化装置、画像復号装置)
3.第3の実施の形態(画像符号化装置、画像復号装置)
4.第4の実施の形態(階層画像符号化・復号)
5.概要2(イントラ予測)
6.第5の実施の形態(スケーラブル画像符号化装置)
7.第6の実施の形態(スケーラブル画像復号装置)
8.概要3(予測方向制御)
9.第7の実施の形態(画像符号化装置)
10.第8の実施の形態(画像復号装置)
11.第9の実施の形態(コンピュータ)
12.応用例
13.スケーラブル符号化の応用例
14.セット・ユニット・モジュール・プロセッサ
15. MPEG-DASHのコンテンツ再生システムの応用例
16. Wi-Fi規格の無線通信システムの応用例
<0.概要>
<符号化方式>
以下においては、HEVC(High Efficiency Video Coding)方式の画像符号化・復号に適用する場合を例に、本技術を説明する。AVC(Advanced Video Coding)やHEVC等の画像符号化においては、時間方向(フレーム間)の相関を利用した動き予測が行われる。
<コーディングユニット>
AVC方式においては、マクロブロックとサブマクロブロックによる階層構造が規定されている。しかしながら、16x16画素のマクロブロックでは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000x2000画素)といった大きな画枠に対して最適ではない。
これに対して、HEVC方式においては、図1に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、AVC方式におけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16x16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図1の例では、LCUの大きさが128であり、最大階層深度が5となる。2Nx2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、NxNの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVC方式においては、4x4及び8x8に加え、16x16及び32x32直交変換を用いることが可能である。
以上のHEVC方式のように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVC方式におけるマクロブロックはLCUに相当し、ブロック(サブブロック)はCUに相当すると考えることができる。また、AVC方式における動き補償ブロックは、PUに相当すると考えることができる。ただし、CUは、階層構造を有するので、その最上位階層のLCUのサイズは、例えば128x128画素のように、AVC方式のマクロブロックより大きく設定されることが一般的である。
よって、以下、LCUは、AVC方式におけるマクロブロックをも含むものとし、CUは、AVC方式におけるブロック(サブブロック)をも含むものとする。つまり、以下の説明に用いる「ブロック」は、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。つまり、「ブロック」には、例えば、TU、PU、SCU、CU、LCU、サブブロック、マクロブロック、またはスライス等任意の領域(処理単位)が含まれる。もちろん、これら以外の部分領域(処理単位)も含まれる。サイズや処理単位等を限定する必要がある場合は、適宜説明する。
<モード選択>
ところで、AVCそしてHEVC符号化方式において、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。
かかる選択方式の例として、JM (Joint Model) と呼ばれるH.264/MPEG-4 AVCの参照ソフトウエア (http://iphome.hhi.de/suehring/tml/index.htm において公開されている) に実装されている方法を挙げることが出来る。
JMにおいては、以下に述べる、High Complexity Modeと、Low Complexity Modeの2通りのモード判定方法を選択することが可能である。どちらも、それぞれの予測モードModeに関するコスト関数値を算出し、これを最小にする予測モードを当該ブロック乃至マクロブロックに対する最適モードとして選択する。
High Complexity Modeにおけるコスト関数は、以下の式(1)のように示される。
ここで、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合、Dは、当該予測モードで符号化した場合の、復号画像と入力画像の差分エネルギーである。λは、量子化パラメータの関数として与えられるLagrange未定乗数である。Rは、直交変換係数を含んだ、当該モードで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行うには、上記パラメータD及びRを算出するため、全ての候補モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
Low Complexity Modeにおけるコスト関数は、以下の式(2)のように示される。
ここで、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。QP2Quant(QP)は、量子化パラメータQPの関数として与えられ、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モードに関して、予測処理を行う必要があるが、復号画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
<多視点画像>
ところで、HEVCでは、図2に示される多視点画像のような複数のレイヤからなる動画像を符号化・復号することができる。多視点動画像は、各ピクチャが、互いに視差を有する複数の画像よりなる。各視点の画像群(動画像)をビュー(レイヤ)と称する。図2の例の場合、動画像は、ビュー0乃至ビュー2の3つのビューよりなる。つまり、あるPOCのピクチャは、ビュー0の画像、ビュー1の画像、およびビュー2の画像よりなる。図2において、ビュー0(view_id=0)は、ベースビュー(Base view)とも称する。また、ビュー1(view_id=1)やビュー2(view_id=2)は、ノンベースビュー(non-base view)とも称する。
<予測動きベクトル>
また、HEVCでは、画像を符号化・復号する際に、符号化効率の向上のために動き予測・補償処理が利用されるが、さらに、符号化効率を向上させるために、その動き予測・補償処理においては、処理対象であるカレントブロックの動きベクトルを周辺のブロックの動きベクトルを用いて予測し、カレントブロックの動きベクトルとその予測動きベクトルとの差分動きベクトルを求め、その差分動きベクトルを伝送する。
動きベクトルの予測は、周辺のブロックの動きベクトルから複数の候補を生成し、その中から最適なものを選択することにより行われる。
HEVCでは、カレントブロックの、空間的に周辺のブロックの動きベクトルを用いて、予測動きベクトルの候補を生成することができる。空間的に周辺のブロックとは、カレントブロックと同一の画像(同一のPOCの同一ビューの画像)内の、カレントブロック近傍のブロックである。
また、HEVCでは、カレントブロックの、時間的に周辺のブロックの動きベクトルを用いて、予測動きベクトルの候補を生成することもできる(TMVP(Temporal Motion Vector Prediction))。時間的に周辺のブロックとは、カレントブロックと同一ビューの異なるPOCの画像の、カレントブロックに対応する(例えば同一の位置の)ブロック(コロケーテッドブロックとも称する)である。
さらに、図2に示されるような多視点画像を符号化する場合、HEVCでは、カレントブロックの、ビュー(レイヤ)間的に周辺のブロックの動きベクトルを用いて、予測動きベクトルの候補を生成することもできる(IVMP(Inter-view motion prediction))。ビュー(レイヤ)間的に周辺のブロックとは、カレントブロックと同一POCの異なるビューの画像の、カレントブロックに対応する(例えば同一の位置の)ブロック(コロケーテッドブロックとも称する)である。例えば図3に示されるように、ビュー間の相関性を利用して、1つ前に処理されたビューの動きベクトルが参照される。
以上のようにして、より予測精度の高い、より多くの候補を得ることができるようにすることにより、より予測精度の高い予測ベクトルを得ることができ、より符号化効率を向上させることができる。
しかしながら、TMVPやIVMPでは、カレントピクチャのカレントビューの画像以外の動きベクトルが参照される。したがって、TMVPやIVMPでは、符号化や復号の際に得られる各ブロックの動きベクトルを、参照されなくなるまで(例えば、次のビューの画像の動き予測・補償処理や動き補償処理が終了するまで)、保持する必要がある。そして、そのためのメモリの容量は、想定される最大値以上を用意する必要がある。
HEVCの場合、TMVPのために保持する動きベクトルを圧縮し、動きベクトルの精度を低減させることができる。しかしながら、IVMPで参照される動きベクトルは、圧縮せずに利用されていた。したがって、IVMPのための動きベクトルは、圧縮せずに保持する必要があった。そのため、IVMPのための動きベクトルを保持するメモリは、TMVPのために動きベクトルを保持するメモリと比べて増大する恐れがあった。つまり、符号化・復号に必要な記憶容量の増大を抑制する恐れがあった。
図4にその具体例を示す。図4に示されるように、TMVPにおいては、カレントレイヤ(ビュー)の動きベクトル(圧縮後MV)が利用され、IVMPにおいては、1つ前のレイヤ(他のレイヤ)の動きベクトル(圧縮前MV)が利用される。
したがって、この場合、TMVP用の、16x16精度の動きベクトルを記憶するメモリ(V0 MV Memory乃至V1 MV Memory)の他に、IVMP用の動きベクトルを記憶するメモリが必要になる。しかも、その動きベクトルは圧縮されていないため、TMVPで参照される動きベクトルを記憶するメモリよりも大きな容量が必要であった。
メモリに必要な容量が増大することにより、設計や製造のコストが増大する恐れがあった。また、消費電力の増大や、負荷の増大を招く恐れがあった。
<IVMP用の動きベクトルの圧縮>
そこで、IVMP用の動きベクトルも、圧縮する(例えば、所定の間引き率で間引く)ようにする。
例えば復号の場合、カレントレイヤの復号において動き補償を行い、その動き補償により再構築され、他のレイヤの復号における動き補償に利用されるカレントレイヤの動きベクトルを圧縮する(例えば、所定の間引き率で間引く)ようにする。換言するに、他のレイヤの復号における動き補償において再構築されて圧縮された(例えば、所定の間引き率で間引かれた)動きベクトルを用いて、カレントレイヤの復号における動き補償を行うようにする。
また、例えば符号化の場合、カレントレイヤの符号化において動き予測・補償を行い、その動き予測・補償により生成され、他のレイヤの符号化における動き予測・補償に利用されるカレントレイヤの動きベクトルを圧縮する(例えば、所定の間引き率で間引く)ようにする。換言するに、他のレイヤの符号化における動き予測・補償において生成されて圧縮された(例えば、所定の間引き率で間引かれた)動きベクトルを用いて、カレントレイヤの符号化における動き予測・補償を行うようにする。
このようにすることにより、IVMP用の動きベクトルを記憶するために必要なメモリの容量の増大を抑制することができる。つまり、符号化・復号に必要な記憶容量の増大を抑制することができる。
<1.第1の実施の形態>
<IVMP用の動きベクトルの圧縮>
以上のような動きベクトルの圧縮において、図5に示されるように、IVMP用の動きベクトルもTMVP用の動きベクトルと同じ圧縮率で圧縮する(例えば、TMVP用の動きベクトルと同じ間引き率で間引く)ようにしてもよい。つまり、圧縮により、IVMP用の動きベクトルとTMVP用の動きベクトルとを同じ精度にするようにしてもよい。このようにすることにより、TMVP用の動きベクトルとIVMP用の動きベクトルを共通化することができ、必要なメモリの容量の増大を抑制することができる。
例えば、図4の例の場合、デコーダ(V0 (Base) Decoder, V1 (Depend) Decorder, V2 (Depend) Decorder)は、復号により最高4x4精度の動きベクトルを再構築し、動きベクトル圧縮部((V0乃至V2) MV Compressor)は、それを16x16精度に圧縮する。したがって、IVMP用の動きベクトルを記憶するメモリ((V0乃至V2) Tempral MV Memory)は、4x4精度の動きベクトルを1画面分記憶することができる容量が必要である。
図5に示される例のように、IVMP用の動きベクトルも、動きベクトル圧縮部((V0乃至V2) MV Compressor)によって16x16精度に圧縮する(例えば間引く)ことにより、この、4x4精度の動きベクトルを1画面分記憶することができる容量のメモリ((V0乃至V2) Temporal MV Memory)を省略することができる。
なお、このような動きベクトルの共通化により、圧縮処理(例えば間引き処理)も共通化することができるので、動きベクトルの圧縮処理による負荷の増大を抑制することができる。
以下に、この圧縮方法について、より具体的に説明する。
なお、以下においては、符号化・復号対象の動画像は、図2に示されるように、ビュー0乃至ビュー2の3ビュー(レイヤ)の動画像であるものとする。また、この動画像の各ピクチャは所定の順に処理され、各ピクチャにおいて、ビュー0の画像、ビュー1の画像、およびビュー2の画像は、この順に処理されるものとする。
<画像符号化装置>
図6は、V0画像符号化装置の主な構成例を示すブロック図である。図7は、V1画像符号化装置の主な構成例を示すブロック図である。図8は、V2画像符号化装置の主な構成例を示すブロック図である。
図示せぬ画像符号化装置100は、図2に示される多視点画像のような複数レイヤよりなる動画像を符号化する。この画像符号化装置100は、多視点画像の各ビューを符号化するために、図6のV0画像符号化装置100−0、図7のV1画像符号化装置100−1、および図8のV2画像符号化装置100−3を有する。V0画像符号化装置100−0は、ビュー0の画像を符号化する。V1画像符号化装置100−1は、ビュー1の画像を符号化する。V2画像符号化装置100−2は、ビュー2の画像を符号化する。
図6に示されるように、V0画像符号化装置100−0は、A/D変換部101−0、画面並べ替えバッファ102−0、演算部103−0、直交変換部104−0、量子化部105−0、可逆符号化部106−0、蓄積バッファ107−0、逆量子化部108−0、および逆直交変換部109−0を有する。また、V0画像符号化装置100−0は、演算部110−0、ループフィルタ111−0、デコードピクチャバッファ112−0、画面内予測部113−0、動き予測・補償部114−0、予測画像選択部115−0、およびレート制御部116−0を有する。
また、図7に示されるように、V1画像符号化装置100−1は、A/D変換部101−1、画面並べ替えバッファ102−1、演算部103−1、直交変換部104−1、量子化部105−1、可逆符号化部106−1、蓄積バッファ107−1、逆量子化部108−1、および逆直交変換部109−1を有する。また、V1画像符号化装置100−1は、演算部110−1、ループフィルタ111−1、デコードピクチャバッファ112−1、画面内予測部113−1、動き予測・補償部114−1、予測画像選択部115−1、およびレート制御部116−1を有する。
さらに、図8に示されるように、V2画像符号化装置100−2は、A/D変換部101−2、画面並べ替えバッファ102−2、演算部103−2、直交変換部104−2、量子化部105−2、可逆符号化部106−2、蓄積バッファ107−2、逆量子化部108−2、および逆直交変換部109−2を有する。また、V2画像符号化装置100−2は、演算部110−2、ループフィルタ111−2、デコードピクチャバッファ112−2、画面内予測部113−2、動き予測・補償部114−2、予測画像選択部115−2、およびレート制御部116−2を有する。
以下において、A/D変換部101−0乃至A/D変換部101−2を互いに区別して説明する必要が無い場合、単に、A/D変換部101と称する。また、画面並べ替えバッファ102−0乃至画面並べ替えバッファ102−2を互いに区別して説明する必要が無い場合、単に、画面並べ替えバッファ102と称する。さらに、演算部103−0乃至演算部103−2を互いに区別して説明する必要が無い場合、単に、演算部103と称する。また、直交変換部104−0乃至直交変換部104−2を互いに区別して説明する必要が無い場合、単に、直交変換部104と称する。さらに、量子化部105−0乃至量子化部105−2を互いに区別して説明する必要が無い場合、単に、量子化部105と称する。また、可逆符号化部106−0乃至可逆符号化部106−2を互いに区別して説明する必要が無い場合、単に、可逆符号化部106と称する。さらに、蓄積バッファ107−0乃至蓄積バッファ107−2を互いに区別して説明する必要が無い場合、単に、蓄積バッファ107と称する。また、逆量子化部108−0乃至逆量子化部108−2を互いに区別して説明する必要が無い場合、単に、逆量子化部108と称する。さらに、逆直交変換部109−0乃至逆直交変換部109−2を互いに区別して説明する必要が無い場合、単に、逆直交変換部109と称する。
また、演算部110−0乃至演算部110−2を互いに区別して説明する必要が無い場合、単に、演算部110と称する。さらに、ループフィルタ111−0乃至ループフィルタ111−2を互いに区別して説明する必要が無い場合、単に、ループフィルタ111と称する。また、デコードピクチャバッファ112−0乃至デコードピクチャバッファ112−2を互いに区別して説明する必要が無い場合、単に、デコードピクチャバッファ112と称する。さらに、画面内予測部113−0乃至画面内予測部113−2を互いに区別して説明する必要が無い場合、単に、画面内予測部113と称する。また、動き予測・補償部114−0乃至動き予測・補償部114−2を互いに区別して説明する必要が無い場合、単に、動き予測・補償部114と称する。さらに、予測画像選択部115−0乃至予測画像選択部115−2を互いに区別して説明する必要が無い場合、単に、予測画像選択部115と称する。また、レート制御部116−0乃至レート制御部116−2を互いに区別して説明する必要が無い場合、単に、レート制御部116と称する。
V0画像符号化装置100−0は、さらに、V0動きベクトル圧縮部121−0およびV0動きベクトルメモリ122−0を有する。V1画像符号化装置100−1は、さらに、V1動きベクトル圧縮部121−1およびV1動きベクトルメモリ122−1を有する。V2画像符号化装置100−2は、さらに、V2動きベクトル圧縮部121−2およびV2動きベクトルメモリ122−2を有する。
A/D変換部101は、入力された画像データ(A/D変換部101−0の場合ビュー0の画像データ、A/D変換部101−1の場合ビュー1の画像データ、A/D変換部101−2の場合ビュー2の画像データ)をA/D変換し、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ102に供給し、記憶させる。
画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替える。つまり、画面並べ替えバッファ102は、POC順に並ぶ各ピクチャを、処理順に並び替える。画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、画面内予測部113および動き予測・補償部114にも供給する。
演算部103は、画面並べ替えバッファ102から読み出された画像から、予測画像選択部115を介して画面内予測部113若しくは動き予測・補償部114から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。例えば、イントラ符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、画面内予測部113から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、動き予測・補償部114から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。直交変換部104は、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104から供給される変換係数を量子化する。量子化部105は、レート制御部116から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、量子化部105において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部116の制御の下で量子化されているので、この符号量は、レート制御部116が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部106は、イントラ(画面内)予測のモードを示す情報などを画面内予測部113から取得し、インター(画面間)予測のモードを示す情報や差分動きベクトル情報などを動き予測・補償部114から取得する。
可逆符号化部106は、これらの各種情報を任意の符号化方式で符号化し、符号化データ(符号化ストリームとも称する)のヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
可逆符号化部106の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持する。蓄積バッファ107は、所定のタイミングにおいて、保持している符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。すなわち、蓄積バッファ107は、符号化データを伝送する伝送部でもある。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、逆量子化部108から供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109から供給された逆直交変換結果である、復元された差分情報に、予測画像選択部115を介して画面内予測部113若しくは動き予測・補償部114からの予測画像を加算し、局部的に復号された画像(復号画像)を得る。その復号画像は、ループフィルタ111に供給される。
ループフィルタ111は、デブロックフィルタや適応ループフィルタ等を含み、演算部110から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ111は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ111は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ111が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ111は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部106に供給し、それを符号化させるようにすることもできる。
ループフィルタ111は、フィルタ処理結果(以下、復号画像と称する)をデコードピクチャバッファ112に供給する。また、ループフィルタ111は、演算部110から供給される再構成画像を、画面内予測部113に供給する。
デコードピクチャバッファ112は、ループフィルタ111から供給される復号画像をそれぞれ記憶する。また、デコードピクチャバッファ112は、その画像のビューIDおよびPOCを記憶する。
デコードピクチャバッファ112は、所定のタイミングにおいて、若しくは、動き予測・補償部114等の外部からの要求に基づいて、記憶している復号画像(並びに、その画像のビューIDおよびPOC)を、当該ビュー用の動き予測・補償部114に供給する。
また、デコードピクチャバッファ112は、所定のタイミングにおいて、若しくは、動き予測・補償部114等の外部からの要求に基づいて、記憶している復号画像(並びに、その画像のビューIDおよびPOC)を、次に処理されるビュー用の動き予測・補償部114にも供給する。例えば、デコードピクチャバッファ112−0は、復号画像を、動き予測・補償部114−0および動き予測・補償部114−1に供給する。また、例えば、デコードピクチャバッファ112−1は、復号画像を、動き予測・補償部114−1および動き予測・補償部114−2に供給する。ただし、ビュー2は、最後に処理されるビューであるので、デコードピクチャバッファ112−2は、復号画像を、動き予測・補償部114−2に供給する。
画面内予測部113は、ループフィルタ111から、処理対象領域(カレントブロック)の周辺に位置する周辺領域(周辺ブロック)の画像を取得すると、その周辺ブロックの画像の画素値を用いて、基本的にプレディクションユニット(PU)を処理単位として予測画像を生成するイントラ予測(画面内予測)を行う。画面内予測部113は、予め用意された複数のモード(イントラ予測モード)でこのイントラ予測を行う。
画面内予測部113は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ102から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。画面内予測部113は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部115に供給する。
また、画面内予測部113は、最適なイントラ予測モード等、イントラ予測に関する情報を含むイントラ予測情報を、適宜可逆符号化部106に供給し、符号化させる。
動き予測・補償部114は、カレントブロックについて動き予測を行って動きベクトルを生成し、生成された動きベクトルに応じて補償処理を行ってカレントブロックの予測画像(インター予測画像情報)を生成する。この動き予測・補償処理において、動き予測・補償部114は、候補となる全てのインター予測モードで予測画像を生成し、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部114は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部115に供給する。
動き予測・補償部114は、デコードピクチャバッファ112から取得したデコード画像を用いて、以上のような動き予測・補償処理を行う。
最初に処理されるビューの場合、動き予測・補償部114は、当該ビューの画像を記憶するデコードピクチャバッファ112から取得したデコード画像を用いて、動き予測・補償処理を行う。例えば、動き予測・補償部114−0は、デコードピクチャバッファ112−0から取得したデコード画像を用いて、動き予測・補償処理を行う。
2番目以降に処理されるビューの場合、動き予測・補償部114は、当該ビューの画像を記憶するデコードピクチャバッファ112、および、1つ前に処理されたビューの画像を記憶するデコードピクチャバッファ112から取得したデコード画像を用いて、動き予測・補償処理を行う。例えば、動き予測・補償部114−1は、デコードピクチャバッファ112−0およびデコードピクチャバッファ112−1から取得したデコード画像を用いて、動き予測・補償処理を行う。また、例えば、動き予測・補償部114−2は、デコードピクチャバッファ112−1およびデコードピクチャバッファ112−2から取得したデコード画像を用いて、動き予測・補償処理を行う。
また、動き予測・補償部114は、インター予測が採用された場合、最適なインター予測モード等、インター予測に関する情報を含むインター予測情報を可逆符号化部106に供給し、伝送させる。
動き予測・補償部114は、このインター予測情報として、復号側で動き補償を行うために、最適なモードの動きベクトルを伝送させる。実際には、動き予測・補償部114は、符号化効率をより向上させるために、動きベクトルの代わりに、動きベクトルと予測動きベクトルとの差分である差分動きベクトルを伝送させる。つまり、動き予測・補償部114は、カレントブロックの動きベクトルの予測を行って予測動きベクトルを生成し、カレントブロックの動きベクトルと予測動きベクトルとの差分である差分動きベクトルを生成する。動き予測・補償部114は、この差分動きベクトルをインター予測情報の一部として復号側に伝送させる。
このような動きベクトルの予測において、動き予測・補償部114は、カレントブロックの周辺のブロックの動きベクトルを用いて、カレントブロックの予測動きベクトルを生成する。その際、動き予測・補償部114は、予測動きベクトルの予測精度をより向上させ、符号化効率をより向上させるために、予測動きベクトルの候補を複数生成し、各候補についてのコスト関数値を求め、それらのコスト関数値に基づいて、その候補の中から最適なものを選択することができる。つまり、動き予測・補償部114は、予測動きベクトルの候補を、複数の方法で生成することができる。
例えば、動き予測・補償部114は、カレントブロックの、空間的、時間的、および、ビュー間的に周辺のブロックの動きベクトルを参照して、カレントブロックの予測動きベクトルを生成することができる。なお、動き予測・補償部114は、この予測動きベクトルとしてどの候補を選択したかを示す情報(つまり、予測動きベクトルのモード情報)をインター予測情報の一部として復号側に伝送させる。
動き予測・補償部114は、当該ビューに対応する動きベクトルメモリから、空間的に周辺のブロックの動きベクトルを取得する。例えば、動き予測・補償部114−0は、V0動きベクトルメモリ122−0から動きベクトルを取得する。また、例えば、動き予測・補償部114−1は、V1動きベクトルメモリ122−1から動きベクトルを取得する。さらに、例えば、動き予測・補償部114−2は、V2動きベクトルメモリ122−2から動きベクトルを取得する。
2番目以降に処理されるビューにおいては、動き予測・補償部114は、さらに、過去の処理されたビューに対応する動きベクトルメモリから、ビュー間的に周辺のブロックの動きベクトルも取得する。例えば、動き予測・補償部114−1は、V0動きベクトルメモリ122−0から動きベクトルを取得する。さらに、例えば、動き予測・補償部114−2は、V1動きベクトルメモリ122−1から動きベクトルを取得する。
これらの動きベクトルは、圧縮されている。つまり、他のレイヤの符号化における動き予測・補償において生成されて圧縮された動きベクトルを用いて、カレントレイヤの符号化における動き予測・補償が行われる。つまり、符号化に必要な記憶容量の増大を抑制することができる。
動き予測・補償部114−0は、動き予測・補償処理において生成したカレントブロックの動きベクトル(最適モードの動きベクトル)を、V0動きベクトル圧縮部121−0に供給する。また、動き予測・補償部114−1は、生成したカレントブロックの動きベクトルを、V1動きベクトル圧縮部121−1に供給する。さらに、動き予測・補償部114−2は、生成したカレントブロックの動きベクトルを、V2動きベクトル圧縮部121−2に供給する。
予測画像選択部115は、演算部103や演算部110に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、予測画像選択部115は、予測画像の供給元として画面内予測部113を選択し、その画面内予測部113から供給される予測画像を演算部103や演算部110に供給する。また、例えば、インター符号化の場合、予測画像選択部115は、予測画像の供給元として動き予測・補償部114を選択し、その動き予測・補償部114から供給される予測画像を演算部103や演算部110に供給する。
レート制御部116は、蓄積バッファ107に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
V0動きベクトル圧縮部121−0は、動き予測・補償部114−0から取得した、最高4x4精度の動きベクトル(圧縮前V0動きベクトルとも称する)を、16x16精度に圧縮し(1/16圧縮とも称する)、その圧縮後の動きベクトル(1/16圧縮後V0動きベクトルとも称する)をV0動きベクトルメモリ122−0に供給する。
この動きベクトルの圧縮方法は任意である。例えば、V0動きベクトル圧縮部121−0が、動き予測・補償部114−0から取得した複数の動きベクトルの中から、その代表値とする動きベクトルを選択するようにしてもよい。例えば、4x4精度の16個の動きベクトル(4x4個の各ブロックの動きベクトル)から、代表値とする動きベクトルが1つ選択されるようにしてもよい。この圧縮により、動きベクトルの精度は、16x16精度となる。
なお、この動きベクトルの選択方法は任意である。例えば左上端のブロック等、所定の位置のブロックの動きベクトルを選択するようにしてもよいし、例えば画像内の位置に応じてブロックを選択する等、所定の方法で定められた位置のブロックの動きベクトルを選択するようにしてもよい。
また、選択する動きベクトルの数は、任意であり、2つ以上であってもよい。
また、V0動きベクトル圧縮部121−0は、例えば、各動きベクトルを用いた所定の演算により代表値を算出するようにしてもよい。この代表値の算出方法は、任意である。例えば、各ブロックの動きベクトルの平均値や中央値を代表値としてもよい。なお、算出する代表値の数は、任意であり、2つ以上であってもよい。
以上のように求められた1/16圧縮後V0動きベクトル(動きベクトルの代表値)は、V0動きベクトルメモリ122−0に供給され、記憶される。V0動きベクトルメモリ122−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部114−0に供給する。また、V0動きベクトルメモリ122−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、動き予測・補償部114−1に供給する。
V1動きベクトル圧縮部121−1は、動き予測・補償部114−1から取得した、最高4x4精度の動きベクトル(圧縮前V1動きベクトルとも称する)を1/16圧縮し、その圧縮後の動きベクトル(1/16圧縮後V1動きベクトルとも称する)をV1動きベクトルメモリ122−1に供給し、記憶させる。V1動きベクトルメモリ122−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部114−1に供給する。また、V1動きベクトルメモリ122−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、動き予測・補償部114−2に供給する。
V2動きベクトル圧縮部121−2は、動き予測・補償部114−2から取得した、最高4x4精度の動きベクトル(圧縮前V2動きベクトルとも称する)を1/16圧縮し、その圧縮後の動きベクトル(1/16圧縮後V2動きベクトルとも称する)をV2動きベクトルメモリ122−2に供給し、記憶させる。V2動きベクトルメモリ122−2は、適宜、記憶している1/16圧縮後V2動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部114−2に供給する。
なお、V1動きベクトル圧縮部121−1およびV2動きベクトル圧縮部121−2による動きベクトルの圧縮方法は、V0動きベクトル圧縮部121−0の場合と同様であるので、その説明は省略する。
V0動きベクトル圧縮部121−0、V1動きベクトル圧縮部121−1、およびV2動きベクトル圧縮部121−2は、所定の単位毎に、以上のような動きベクトルの圧縮を行う。例えば、V0動きベクトル圧縮部121−0、V1動きベクトル圧縮部121−1、およびV2動きベクトル圧縮部121−2が、LCU毎に、以上のような動きベクトルの圧縮を行うようにしてもよい。なお、この処理単位は、V0動きベクトル圧縮部121−0、V1動きベクトル圧縮部121−1、およびV2動きベクトル圧縮部121−2において統一されていてもよいし、統一されていなくてもよい。また、この処理単位がシーケンス中において可変としても良い。
さらに、V0動きベクトル圧縮部121−0、V1動きベクトル圧縮部121−1、およびV2動きベクトル圧縮部121−2のそれぞれによる、動きベクトルの圧縮方法は、互いに同一であっても良いし、同一でなくてもよい。
以上のように、V0動きベクトル圧縮部121−0、V1動きベクトル圧縮部121−1、およびV2動きベクトル圧縮部121−2が、動きベクトルの数を減らすことにより、動きベクトルの情報量を低減させる(すなわち圧縮する)ことができる。これにより、V0動きベクトルメモリ122−0、V1動きベクトルメモリ122−1、およびV2動きベクトルメモリ122−2の容量を低減させることができる。
また、上述したように、動き予測・補償部114は、V0動きベクトルメモリ122−0、V1動きベクトルメモリ122−1、およびV2動きベクトルメモリ122−2に格納された動きベクトルを、TMVP用の動きベクトルとして参照するだけでなく、IVMP用の動きベクトルとして参照することができる。このようにTMVP用の動きベクトルとIVMP用の動きベクトルとを共通化することにより、符号化に必要な記憶容量を低減させることができる。また、動きベクトルの圧縮による負荷の増大を抑制することができる。これにより、画像符号化装置100の、製造や開発のコストの低減、装置の小型化、並びに、消費電力の低減等を実現することができる。
<符号化処理の流れ>
次に、以上のような画像符号化装置100により実行される処理の流れについて説明する。図9のフローチャートを参照して、画像符号化装置100による符号化処理の流れの例を説明する。
符号化処理が開始されると、V0画像符号化装置100−0は、カレントピクチャについて、ステップS1001において、V0符号化処理を行う。ステップS1002において、V1画像符号化装置100−1は、カレントピクチャについて、V1符号化処理を行う。ステップS1003において、V2画像符号化装置100−2は、カレントピクチャについて、V2符号化処理を行う。
ステップS1004において、画像符号化装置100は、全てのピクチャを処理したか否かを判定し、未処理のピクチャが存在すると判定した場合、処理をステップS1001に戻し、それ以降の処理を繰り返す。
各ピクチャについて、ステップS1001乃至ステップS1004の処理が繰り返され、ステップS1004において、全てのピクチャが処理されたと判定された場合、画像符号化装置100は、符号化処理を終了する。
<V0符号化処理の流れ>
次に、図10のフローチャートを参照して、図9のステップS1001において実行される、ビュー0の符号化を行うV0符号化処理の流れの例を説明する。
ステップS1101においてA/D変換部101−0は、入力された画像をA/D変換する。ステップS1102において、画面並べ替えバッファ102−0は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。ステップS1103において、画面内予測部113−0は、イントラ予測モードのイントラ予測処理を行う。
ステップS1104において、動き予測・補償部114−0は、インター予測モードでの動き予測や動き補償を行うV0インター動き予測処理を行う。
ステップS1105において、予測画像選択部115−0は、画面内予測部113−0により生成された予測画像と、動き予測・補償部114−0により生成された予測画像のいずれか一方を選択する。
ステップS1106において、V0動きベクトル圧縮部121−0は、ステップS1104の処理により生成されたビュー0のカレントピクチャの動きベクトルであり、最高4x4精度の圧縮前V0動きベクトルを、16x16精度に圧縮する(1/16圧縮)。この1/16圧縮は、例えば、LCU(例えば16x16画素)毎に行われる。例えば、V0動きベクトル圧縮部121−0は、16x16画素の左上端のブロックのV0動きベクトルを、この16x16画素の代表値(すなわち16x16精度のV0動きベクトル)として選択する。
ステップS1107において、V0動きベクトルメモリ122−0は、ステップS1106の処理により生成された1/16圧縮後V0動きベクトルを記憶する。
ステップS1108において、演算部103−0は、ステップS1102の処理により並び替えられた画像から、ステップS1105の処理により選択された予測画像を減算する。この演算により得られる差分データ(ステップS1102の処理により並び替えられた画像と、ステップS1105の処理により選択された予測画像との差分画像のデータ)は、元の画像データに較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS1109において、直交変換部104−0は、ステップS1108の処理により生成された差分データに対する直交変換処理を行う。
ステップS1110において、量子化部105−0は、レート制御部116−0により算出された量子化パラメータを用いて、ステップS1109の処理により得られた直交変換係数を量子化する。
ステップS1111において、可逆符号化部106−0は、ステップS1110の処理により量子化された係数を符号化する。すなわち、差分画像に対応するデータに対して、可変長符号化や算術符号化等の可逆符号化が行われる。
また、このとき、可逆符号化部106−0は、ステップS1105の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部106−0は、画面内予測部113−0から供給される最適イントラ予測モード情報、または、動き予測・補償部114−0から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。
ステップS1112において蓄積バッファ107−0は、ステップS1111の処理により得られた符号化データを蓄積する。蓄積バッファ107−0に蓄積された符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS1110の処理により量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS1113において、逆量子化部108−0は、ステップS1110の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部105−0の特性に対応する特性で逆量子化する。ステップS1114において、逆直交変換部109−0は、ステップS1113の処理により得られた直交変換係数を、直交変換部104−0の特性に対応する特性で逆直交変換する。これにより差分画像が復元される。
ステップS1115において、演算部110−0は、ステップS1105において選択された予測画像を、ステップS1114において復元された差分画像に加算し、局部的に復号された復号画像(再構成画像)を生成する。
V0画像符号化装置100−0は、処理対象であるカレントLCU内の各ブロックについて、ステップS1103乃至ステップS1115の各処理を行う。ステップS1116において、V0画像符号化装置100−0は、全てのLCUを処理したか否かを判定する。未処理のLCUが存在すると判定した場合、処理は、ステップS1103に戻り、それ以降の処理を繰り返す。カレントピクチャのビュー0の画像の各LCUについて、ステップS1103乃至ステップS1115の各処理が実行され、ステップS1116において、全てのLCUが処理されたと判定された場合、処理は、ステップS1117に進む。
ステップS1117において、ループフィルタ111−0は、ステップS1115の処理により得られた再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行い、復号画像を生成する。
ステップS1118において、デコードピクチャバッファ112−0は、ステップS1117の処理により生成された復号画像を記憶する。
ステップS1119においてレート制御部116−0は、ステップS1118の処理により蓄積バッファ107−0に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部105−0の量子化動作のレートを制御する。また、レート制御部116−0は、量子化パラメータに関する情報を、量子化部105−0に供給する。
ステップS1119の処理が終了すると、V0符号化処理が終了し、処理は図9に戻る。
<V0インター動き予測処理の流れ>
次に、図10のステップS1104において実行されるV0インター動き予測処理の流れの例を、図11のフローチャートを参照して説明する。
V0インター動き予測処理が開始されると、動き予測・補償部114−0は、ステップS1131において、動き探索処理を行い、カレントブロックの動きベクトルを生成する。
ステップS1132において、動き予測・補償部114−0は、ピクチャ内の圧縮前V0動きベクトルを用いて、空間予測動きベクトル候補を決定する。空間予測動きベクトル候補とは、カレントブロックの空間的に周辺のブロックの動きベクトルから生成される予測動きベクトルの候補である。つまり、動き予測・補償部114−0は、カレントブロックの空間的に周辺のブロックのV0動きベクトルを用いて空間予測動きベクトル候補を決定する。このV0動きベクトルは、カレントピクチャ内の動きベクトルであるので、動き予測・補償部114−0により非圧縮(最高4x4精度)の状態で保持されている。したがって、動き予測・補償部114−0は、その圧縮前V0動きベクトルを用いて、空間予測動きベクトル候補を決定する。
ステップS1133において、動き予測・補償部114−0は、他のピクチャの1/16圧縮後V0動きベクトルを用いて、時間予測動きベクトル候補を決定する。時間予測動きベクトル候補とは、カレントブロックの時間的に周辺のブロックの動きベクトルから生成される予測動きベクトルの候補である。つまり、動き予測・補償部114−0は、カレントブロックの時間的に周辺のピクチャのコロケーテッドブロックのV0動きベクトルを用いて時間予測動きベクトル候補を決定する。このV0動きベクトルは、カレントピクチャとは同一ビューの異なるピクチャ内の動きベクトルであるので、圧縮された(16x16精度)の状態でV0動きベクトルメモリ122−0に保持されている。したがって、動き予測・補償部114−0は、V0動きベクトルメモリ122−0から、その1/16圧縮後V0動きベクトルを読み出し、それを用いて時間予測動きベクトル候補を決定する。
ビュー0は、最初に処理されるビューであるので、ビュー間の相関性を利用した予測動きベクトル候補の生成は行われない。
ステップS1134において、動き予測・補償部114−0は、ステップS1132およびステップS1133において生成された各候補について、コスト関数値を算出する。
ステップS1135において、動き予測・補償部114−0は、ステップS1134において算出された各コスト関数値に基づいて、最適な予測モードを判定する。このとき、動き予測・補償部114−0は、予測動きベクトル(のモード)も決定する。
ステップS1136において、動き予測・補償部114−0は、ステップS1135において判定された最適なモードで動き補償を行い、予測画像を生成する。また、動き予測・補償部114−0は、最適なインター予測モード、差分動きベクトル、予測動きベクトルのモード等を含むインター予測情報を生成する。
ステップS1137において、動き予測・補償部114−0は、最適モードの動きベクトルを圧縮前V0動きベクトルとしてバッファに記憶する。ステップS1137の処理が終了すると、V0インター動き予測処理が終了し、処理は、図10に戻る。
<V1符号化処理の流れ>
次に、図12のフローチャートを参照して、図9のステップS1002において実行される、ビュー1の符号化を行うV1符号化処理の流れの例を説明する。
ビュー0に対する処理と、ビュー1に対する処理の違いは、主に、インター動き予測処理にある。したがって、図12に示されるように、V1符号化処理は、V1画像符号化装置100−1によって、ビュー0に対する符号化処理(図10のV0符号化処理)の場合と基本的に同様に実行される。つまり、図12のステップS1201乃至ステップS1219の各処理は、図10のステップS1101乃至ステップS1119の各処理と基本的に同様に実行される。したがって、図12の説明は、図10の説明におけるV0画像符号化装置100−0の各部をV1画像符号化装置100−1の各部に置き換え、図10においてビュー0に対する処理との説明を、ビュー1に対する処理に置き換えるだけでよいので、その説明は省略する。
<V1インター動き予測処理の流れ>
次に、図12のステップS1204において実行されるV1インター動き予測処理の流れの例を、図13のフローチャートを参照して説明する。
V1インター動き予測処理が開始されると、ステップS1231乃至ステップS1233の各処理は、図11のステップS1131乃至ステップS1133の各処理と基本的に同様に実行される。ただし、V1インター動き予測処理は、動き予測・補償部114−1が実行する。また、図13の各処理は、ビュー1に対して行われるので、ステップS1232においては、非圧縮のビュー1の動きベクトルである圧縮前V1動きベクトルが用いられる。また、ステップS1233においては、1/16圧縮された1/16圧縮後V1動きベクトルが用いられる。
ビュー1に対するインター動き予測処理においては、空間予測による候補と時間予測による候補の生成に加えて、ビュー間の相関性を利用した予測動きベクトル候補(IVMPによる候補)の生成も行われる。
つまり、ステップS1234において、動き予測・補償部114−1は、1/16圧縮後V0動きベクトルを用いて、IVMP予測動きベクトル候補を決定する。IVMP予測動きベクトル候補とは、カレントブロックのビュー間的に周辺のブロックの動きベクトルから生成される予測動きベクトルの候補である。つまり、動き予測・補償部114−1は、カレントブロックと同一ピクチャの異なるビューの画像のコロケーテッドブロックのV0動きベクトルを用いてIVMP予測動きベクトル候補を決定する。このV0動きベクトルは、カレントピクチャと同一のピクチャの異なるビューの動きベクトルであるので、圧縮された(16x16精度)の状態でV0動きベクトルメモリ122−0に保持されている。したがって、動き予測・補償部114−1は、V0動きベクトルメモリ122−0から、その1/16圧縮後V0動きベクトルを読み出し、それを用いてビュー間予測動きベクトル候補を決定する。
ステップS1235乃至ステップS1238の各処理は、図11のステップS1134乃至ステップS1137の各処理と同様に実行される。ステップS1238の処理が終了すると、V1インター動き予測処理が終了し、処理は、図12に戻る。
<V2符号化処理の流れ>
次に、図14のフローチャートを参照して、図9のステップS1003において実行される、ビュー2の符号化を行うV2符号化処理の流れの例を説明する。
ビュー2に対する処理は、ビュー1に対する処理と同様に実行される。したがって、図14に示されるように、V2符号化処理は、V2画像符号化装置100−2によって、ビュー1に対する符号化処理(図12のV1符号化処理)の場合と基本的に同様に実行される。つまり、図14のステップS1301乃至ステップS1319の各処理は、図12のステップS1201乃至ステップS1219の各処理と基本的に同様に実行される。したがって、図14の説明は、図12の説明におけるV1画像符号化装置100−1の各部をV2画像符号化装置100−2の各部に置き換え、図12においてビュー1に対する処理との説明を、ビュー2に対する処理に置き換えるだけでよいので、その説明は省略する。
<V2インター動き予測処理の流れ>
次に、図14のステップS1304において実行されるV2インター動き予測処理の流れの例を、図15のフローチャートを参照して説明する。
図15に示されるように、V2インター動き予測処理は、動き予測・補償部114−2によって、ビュー1に対するインター動き予測処理(図13のV1インター動き予測処理)の場合と基本的に同様に実行される。つまり、図15のステップS1331乃至ステップS1338の各処理は、図13のステップS1231乃至ステップS1238の各処理と基本的に同様に実行される。
ただし、ステップS1332においては、非圧縮のビュー2の動きベクトルである圧縮前V2動きベクトルが用いられる。また、ステップS1333においては、1/16圧縮された1/16圧縮後V2動きベクトルが用いられる。さらに、ステップS1334においては、1/16圧縮された1/16圧縮後V1動きベクトルが用いられる。
ステップS1338の処理が終了すると、V2インター動き予測処理が終了し、処理は、図14に戻る。
以上のように各処理を実行することにより、画像符号化装置100は、IVMP用の動きベクトルのために必要なメモリ容量を低減させることができ、符号化・復号に必要な記憶容量の増大を抑制することができる。
<画像復号装置>
次に、以上のように符号化された符号化データ(符号化ストリーム)の復号について説明する。図16は、V0画像復号装置の主な構成例を示すブロック図である。図17は、V1画像復号装置の主な構成例を示すブロック図である。図18は、V2画像復号装置の主な構成例を示すブロック図である。
図示せぬ画像復号装置200は、画像符号化装置100により符号化された、図2に示される多視点画像のような複数レイヤよりなる動画像の符号化データを、その符号化方法に対応する復号方法で復号する。この画像復号装置200は、多視点画像の各ビューの符号化データを復号するために、図16のV0画像復号装置200−0、図17のV1画像復号装置200−1、および図18のV2画像復号装置200−2を有する。V0画像復号装置200−0は、V0画像符号化装置100−0により符号化されたビュー0の画像の符号化データを復号する。V1画像復号装置200−1は、V1画像符号化装置100−1により符号化されたビュー1の画像の符号化データを復号する。V2画像復号装置200−2は、V2画像符号化装置100−2により符号化されたビュー2の画像の符号化データを復号する。
図16に示されるように、V0画像復号装置200−0は、蓄積バッファ201−0、可逆復号部202−0、逆量子化部203−0、逆直交変換部204−0、演算部205−0、ループフィルタ206−0、画面並べ替えバッファ207−0、およびD/A変換部208−0を有する。また、V0画像復号装置200−0は、デコードピクチャバッファ209−0、画面内予測部210−0、動き補償部211−0、および選択部212−0を有する。
また、図17に示されるように、V1画像復号装置200−1は、蓄積バッファ201−1、可逆復号部202−1、逆量子化部203−1、逆直交変換部204−1、演算部205−1、ループフィルタ206−1、画面並べ替えバッファ207−1、およびD/A変換部208−1を有する。また、V1画像復号装置200−1は、デコードピクチャバッファ209−1、画面内予測部210−1、動き補償部211−1、および選択部212−1を有する。
さらに、図18に示されるように、V2画像復号装置200−2は、蓄積バッファ201−2、可逆復号部202−2、逆量子化部203−2、逆直交変換部204−2、演算部205−2、ループフィルタ206−2、画面並べ替えバッファ207−2、およびD/A変換部208−2を有する。また、V2画像復号装置200−2は、デコードピクチャバッファ209−2、画面内予測部210−2、動き補償部211−2、および選択部212−2を有する。
以下において、蓄積バッファ201−0乃至蓄積バッファ201−2を互いに区別して説明する必要が無い場合、単に、蓄積バッファ201と称する。また、可逆復号部202−0乃至可逆復号部202−2を互いに区別して説明する必要が無い場合、単に、可逆復号部202と称する。さらに、逆量子化部203−0乃至逆量子化部203−2を互いに区別して説明する必要が無い場合、単に、逆量子化部203と称する。また、逆直交変換部204−0乃至逆直交変換部204−2を互いに区別して説明する必要が無い場合、単に、逆直交変換部204と称する。さらに、演算部205−0乃至演算部205−2を互いに区別して説明する必要が無い場合、単に、演算部205と称する。
また、ループフィルタ206−0乃至ループフィルタ206−2を互いに区別して説明する必要が無い場合、単に、ループフィルタ206と称する。さらに、画面並べ替えバッファ207−0乃至画面並べ替えバッファ207−2を互いに区別して説明する必要が無い場合、単に、画面並べ替えバッファ207と称する。また、D/A変換部208−0乃至D/A変換部208−2を互いに区別して説明する必要が無い場合、単に、D/A変換部208と称する。さらに、デコードピクチャバッファ209−0乃至デコードピクチャバッファ209−2を互いに区別して説明する必要が無い場合、単に、デコードピクチャバッファ209と称する。
また、画面内予測部210−0乃至画面内予測部210−2を互いに区別して説明する必要が無い場合、単に、画面内予測部210と称する。さらに、動き補償部211−0乃至動き補償部211−2を互いに区別して説明する必要が無い場合、単に、動き補償部211と称する。また、選択部212−0乃至選択部212−2を互いに区別して説明する必要が無い場合、単に、選択部212と称する。
V0画像復号装置200−0は、さらに、V0動きベクトル圧縮部221−0およびV0動きベクトルメモリ222−0を有する。V1画像復号装置200−1は、さらに、V1動きベクトル圧縮部221−1およびV1動きベクトルメモリ222−1を有する。V2画像復号装置200−2は、さらに、V2動きベクトル圧縮部221−2およびV2動きベクトルメモリ222−2を有する。
蓄積バッファ201は、伝送されてきた符号化データを受け取る受け取り部でもある。蓄積バッファ201は、伝送されてきた符号化データを受け取って、蓄積し、所定のタイミングにおいてその符号化データを可逆復号部202に供給する。符号化データには、予測モード情報などの復号に必要な情報が付加されている。可逆復号部202は、蓄積バッファ201から供給された、可逆符号化部106(図6乃至図8)により符号化された情報を、可逆符号化部106の符号化方式に対応する方式で復号する。可逆復号部202は、復号して得られた差分画像の量子化された係数データを、逆量子化部203に供給する。
また、可逆復号部202は、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、画面内予測部210および動き補償部211の内、選択されたと判定したモードの方に供給する。つまり、例えば、符号化側において最適な予測モードとしてイントラ予測モードが選択された場合、その最適な予測モードに関する情報が画面内予測部210に供給される。また、例えば、符号化側において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報が動き補償部211に供給される。
さらに、可逆復号部202は、例えば、量子化行列や量子化パラメータ等の、逆量子化に必要な情報を逆量子化部203に供給する。
逆量子化部203は、可逆復号部202により復号されて得られた量子化された係数データを、量子化部105の量子化方式に対応する方式で逆量子化する。なお、この逆量子化部203は、逆量子化部108と同様の処理部である。つまり、逆量子化部203の説明は、逆量子化部108にも準用することができる。ただし、データの入出力先等は、装置に応じて適宜、変えて読む必要がある。
逆量子化部203は、得られた係数データを逆直交変換部204に供給する。
逆直交変換部204は、逆量子化部203から供給される直交変換係数を、直交変換部104の直交変換方式に対応する方式で逆直交変換する。なお、この逆直交変換部204は、逆直交変換部109と同様の処理部である。つまり、逆直交変換部204の説明は、逆直交変換部109にも準用することができる。ただし、データの入出力先等は、装置に応じて適宜、変えて読む必要がある。
逆直交変換部204は、この逆直交変換処理により、画像符号化装置100において直交変換される前の残差データ(差分画像)に対応する復号残差データ(差分画像)を得る。逆直交変換されて得られた差分画像は、演算部205に供給される。また、演算部205には、選択部212を介して、画面内予測部210若しくは動き補償部211から予測画像が供給される。
演算部205は、その差分画像と予測画像とを加算し、演算部103により予測画像が減算される前の画像データに対応する再構成画像を得る。演算部205は、その再構成画像をループフィルタ206に供給する。
ループフィルタ206は、供給された再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施して復号画像を生成する。例えば、ループフィルタ206は、再構成画像に対してデブロックフィルタ処理を行うことにより、ブロック歪を除去する。また、例えば、ループフィルタ206は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ206が行うフィルタ処理の種類は任意であり、上述した以外のフィルタ処理を行ってもよい。また、ループフィルタ206が、画像符号化装置100から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。
ループフィルタ206は、フィルタ処理結果である復号画像を画面並べ替えバッファ207およびデコードピクチャバッファ209に供給する。また、ループフィルタ206は、演算部205の出力(再構成画像)を、フィルタ処理せずに、画面内予測部210に供給する。例えば、画面内予測部210は、この画像に含まれる画素の画素値を周辺画素の画素値として利用する。
画面並べ替えバッファ207は、供給された復号画像の並べ替えを行う。すなわち、画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部208は、画面並べ替えバッファ207から供給された復号画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
デコードピクチャバッファ209は、供給される復号画像(並びに、その画像のビューIDおよびPOC)を記憶する。また、デコードピクチャバッファ209は、所定のタイミングにおいて、若しくは、動き補償部211等の外部の要求に基づいて、記憶している復号画像(並びに、その画像のビューIDおよびPOC)を動き補償部211に供給する。
画面内予測部210は、画面内予測部113と基本的に同様の処理を行う。ただし、画面内予測部210は、符号化の際にイントラ予測により予測画像が生成された領域に対してのみ、イントラ予測を行う。画面内予測部210は、予測処理単位の領域毎に、生成した予測画像を、選択部212を介して演算部205に供給する。
動き補償部211は、可逆復号部202から供給されるインター予測情報に基づいて、符号化の際にインター予測が行われた領域に対して、符号化の際に採用されたインター予測モードで動き補償を行い、予測画像を生成する。動き補償部211は、予測処理単位の領域毎に、生成した予測画像を、選択部212を介して演算部205に供給する。
動き補償部211は、デコードピクチャバッファ209から取得したデコード画像を用いて、以上のような動き補償処理を行う。
最初に処理されるビューの場合、動き補償部211は、当該ビューの画像を記憶するデコードピクチャバッファ209から取得したデコード画像を用いて、動き補償処理を行う。例えば、動き補償部211−0は、デコードピクチャバッファ209−0から取得したデコード画像を用いて、動き補償処理を行う。
2番目以降に処理されるビューの場合、動き補償部211は、当該ビューの画像を記憶するデコードピクチャバッファ209、および、1つ前に処理されたビューの画像を記憶するデコードピクチャバッファ209から取得したデコード画像を用いて、動き補償処理を行う。例えば、動き補償部211−1は、デコードピクチャバッファ209−0およびデコードピクチャバッファ209−1から取得したデコード画像を用いて、動き補償処理を行う。また、例えば、動き補償部211−2は、デコードピクチャバッファ209−1およびデコードピクチャバッファ209−2から取得したデコード画像を用いて、動き補償処理を行う。
動き補償部211は、インター予測情報として符号化側から伝送された差分動きベクトルから、カレントブロックの動きベクトルを再構築する。その際、動き補償部211は、可逆復号部202から供給されるインター予測情報に基づいて、動き予測・補償部114と同様の方法(モード)でカレントブロックの動きベクトルの予測を行い、予測動きベクトルを生成する。動き補償部211は、差分動きベクトルに予測動きベクトルを加算することにより、カレントブロックの動きベクトルを再構築する。
つまり、動き補償部211は、カレントブロックの、空間的、時間的、若しくはビュー間的に周辺のブロックの動きベクトルを参照して、カレントブロックの予測動きベクトルを生成する。
空間的に周辺のブロックの動きベクトルは、動き補償部211により保持されている。また、時間的に周辺のブロックの動きベクトルを参照する場合、動き補償部211は、当該ビューに対応する動きベクトルメモリから動きベクトルを取得する。例えば、動き補償部211−0は、V0動きベクトルメモリ222−0から時間的に周辺のブロックの動きベクトルを取得する。また、例えば、動き補償部211−1は、V1動きベクトルメモリ222−1から時間的に周辺のブロックの動きベクトルを取得する。さらに、例えば、動き補償部211−2は、V2動きベクトルメモリ222−2から時間的に周辺のブロックの動きベクトルを取得する。
また、ビュー的に周辺のブロックの動きベクトルを参照する場合、動き補償部211は、過去に処理されたビューに対応する動きベクトルメモリから動きベクトルを取得する。例えば、動き補償部211−1は、V0動きベクトルメモリ222−0からビュー間的に周辺のブロックの動きベクトルを取得する。さらに、例えば、動き補償部211−2は、V1動きベクトルメモリ222−1からビュー間的に周辺のブロックの動きベクトルを取得する。
これらの動きベクトルメモリから取得する動きベクトルは、1/16圧縮されている。つまり、他のレイヤの復号における動き補償において再構築されて圧縮された動きベクトルを用いて、カレントレイヤの復号における動き補償が行われる。つまり、復号に必要な記憶容量の増大を抑制することができる。
動き補償部211は、動き予測・補償処理において生成したカレントブロックの動きベクトル(最適モードの動きベクトル)を、V0動きベクトル圧縮部221−0に供給する。また、動き補償部211−1は、生成したカレントブロックの動きベクトルを、V1動きベクトル圧縮部221−1に供給する。さらに、動き補償部211−2は、生成したカレントブロックの動きベクトルを、V2動きベクトル圧縮部221−2に供給する。
選択部212は、画面内予測部210から供給される予測画像、若しくは、動き補償部211から供給される予測画像を演算部205に供給する。
V0動きベクトル圧縮部221−0は、動き補償部211−0から取得した、最高4x4精度の圧縮前V0動きベクトルを、16x16精度に1/16圧縮し、得られた1/16圧縮後V0動きベクトルをV0動きベクトルメモリ222−0に供給する。
この動きベクトルの圧縮方法は、V0動きベクトル圧縮部121−0と同一の方法である限り、任意である。例えば、複数のブロックの動きベクトルの中からそれらの代表値とする動きベクトルを選択することにより、動きベクトルを圧縮する場合、この動きベクトルの選択方法は、V0動きベクトル圧縮部121−0と同一の方法である限り、任意である。さらに、選択する動きベクトルの数も、V0動きベクトル圧縮部121−0と同一の方法である限り、任意であり、2つ以上であってもよい。
また、例えば、複数のブロックの動きベクトルを用いて所定の演算を行い、それらの代表値を算出することにより、動きベクトルを圧縮する場合、この代表値の算出方法は、V0動きベクトル圧縮部121−0と同一の方法である限り、任意である。
以上のように求められた1/16圧縮後V0動きベクトル(動きベクトルの代表値)は、V0動きベクトルメモリ222−0に供給され、記憶される。V0動きベクトルメモリ222−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部211−0に供給する。また、V0動きベクトルメモリ222−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、動き補償部211−1に供給する。
V1動きベクトル圧縮部221−1は、動き補償部211−1から取得した圧縮前V1動きベクトルを1/16圧縮し、得られた1/16圧縮後V1動きベクトルをV1動きベクトルメモリ222−1に供給し、記憶させる。V1動きベクトルメモリ222−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部211−1に供給する。また、V1動きベクトルメモリ222−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、動き補償部211−2に供給する。
V2動きベクトル圧縮部221−2は、動き補償部211−2から取得した圧縮前V2動きベクトルを1/16圧縮し、得られた1/16圧縮後V2動きベクトルをV2動きベクトルメモリ222−2に供給し、記憶させる。V2動きベクトルメモリ222−2は、適宜、記憶している1/16圧縮後V2動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部211−2に供給する。
なお、V1動きベクトル圧縮部221−1およびV2動きベクトル圧縮部221−2による動きベクトルの圧縮方法は、V0動きベクトル圧縮部221−0の場合と同様であるので、その説明は省略する。
V0動きベクトル圧縮部221−0、V1動きベクトル圧縮部221−1、およびV2動きベクトル圧縮部221−2は、所定の単位毎に、以上のような動きベクトルの圧縮を行う。例えば、V0動きベクトル圧縮部221−0、V1動きベクトル圧縮部221−1、およびV2動きベクトル圧縮部221−2が、LCU毎に、以上のような動きベクトルの圧縮を行うようにしてもよい。なお、この処理単位は、V0動きベクトル圧縮部221−0、V1動きベクトル圧縮部221−1、およびV2動きベクトル圧縮部221−2において統一されていてもよいし、統一されていなくてもよい。また、この処理単位がシーケンス中において可変としても良い。
さらに、V0動きベクトル圧縮部221−0、V1動きベクトル圧縮部221−1、およびV2動きベクトル圧縮部221−2のそれぞれによる、動きベクトルの圧縮方法は、互いに同一であっても良いし、同一でなくてもよい。
以上のように、V0動きベクトル圧縮部221−0、V1動きベクトル圧縮部221−1、およびV2動きベクトル圧縮部221−2が、動きベクトルの数を減らすことにより、動きベクトルの情報量を低減させる(すなわち圧縮する)ことができる。これにより、V0動きベクトルメモリ222−0、V1動きベクトルメモリ222−1、およびV2動きベクトルメモリ222−2の容量を低減させることができる。
また、上述したように、動き補償部211は、V0動きベクトルメモリ222−0、V1動きベクトルメモリ222−1、およびV2動きベクトルメモリ222−2に格納された動きベクトルを、TMVP用の動きベクトルとして参照するだけでなく、IVMP用の動きベクトルとして参照することができる。このようにTMVP用の動きベクトルとIVMP用の動きベクトルとを共通化することにより、符号化に必要な記憶容量を低減させることができる。また、動きベクトルの圧縮による負荷の増大を抑制することができる。これにより、画像復号装置200の、製造や開発のコストの低減、装置の小型化、並びに、消費電力の低減等を実現することができる。
<復号処理の流れ>
次に、以上のような画像復号装置200により実行される処理の流れについて説明する。図19のフローチャートを参照して、画像復号装置200による復号処理の流れの例を説明する。
復号処理が開始されると、カレントピクチャについて、V0画像復号装置200−0は、ステップS1401においてV0復号処理を行い、V1画像復号装置200−1は、ステップS1402においてV1復号処理を行い、V2画像復号装置200−2は、ステップS1403においてV2復号処理を行う。
ステップS1404において、画像復号装置200は、全てのピクチャを処理したか否かを判定し、未処理のピクチャが存在すると判定した場合、処理をステップS1401に戻し、それ以降の処理を繰り返す。
各ピクチャについて、ステップS1401乃至ステップS1404の処理が繰り返され、ステップS1404において、全てのピクチャが処理されたと判定された場合、画像復号装置200は、復号処理を終了する。
<V0復号処理の流れ>
次に、図20のフローチャートを参照して、図19のステップS1401において実行される、ビュー0の符号化データを復号するV0復号処理の流れの例を説明する。
V0復号処理が開始されると、ステップS1501において、蓄積バッファ201−0は、伝送されてきたビュー0のビットストリームを蓄積する。ステップS1502において、可逆復号部202−0は、蓄積バッファ201−0から供給されるビュー0のビットストリーム(符号化された差分画像情報)を復号する。すなわち、可逆符号化部106−0により符号化されたビュー0の各ピクチャ(Iピクチャ、Pピクチャ、並びにBピクチャ)が復号される。このとき、ヘッダ情報などのビットストリームに含められた差分画像情報以外の各種情報も復号される。
ステップS1503において、逆量子化部203−0は、ステップS1503の処理により得られた、量子化された係数を逆量子化する。
ステップS1504において、逆直交変換部204−0は、ステップS1503の処理により逆量子化された係数を必要に応じて逆直交変換する。
ステップS1505において、可逆復号部202−0は、符号化の際に適用された予測モードがインター予測か否かを判定する。インター予測であると判定された場合、処理は、ステップS1506に進む。
ステップS1506において、動き補償部211−0は、V0動き補償処理を行い、予測画像を生成する。ステップS1506の処理が終了すると、処理はステップS1508に進む。また、ステップS1505において、イントラ予測であると判定された場合、処理は、ステップS1507に進む。ステップS1507において、画面内予測部210−0は、イントラ予測処理を行い、予測画像を生成する。ステップS1507の処理が終了すると、処理はステップS1508に進む。
ステップS1508において、演算部205−0は、ステップS1504の処理において逆直交変換されて得られた差分画像情報に、ステップS1506の処理若しくはステップS1507の処理により生成された予測画像を加算する。これにより再構成画像が生成される。
ステップS1509において、V0動きベクトル圧縮部221−0は、V0動きベクトル圧縮部121−0の場合と同様に、ステップS1506の処理により生成された圧縮前V0動きベクトルを1/16圧縮する。ステップS1510において、V0動きベクトルメモリ222−0は、V0動きベクトルメモリ122−0の場合と同様に、ステップS1509の処理により生成された1/16圧縮後V0動きベクトルを記憶する。
V0画像復号装置200−0は、処理対象であるカレントLCU内の各ブロックについて、ステップS1501乃至ステップS1510の各処理を行う。ステップS1511において、V0画像復号装置200−0は、全てのLCUを処理したか否かを判定する。未処理のLCUが存在すると判定した場合、処理は、ステップS1501に戻り、それ以降の処理を繰り返す。カレントピクチャのビュー0の画像の各LCUについて、ステップS1501乃至ステップS1510の各処理が実行され、ステップS1511において、全てのLCUが処理されたと判定された場合、処理は、ステップS1512に進む。
ステップS1512において、ループフィルタ206−0は、ステップS1508において得られた再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS1513において、画面並べ替えバッファ207−0は、ステップS1512においてフィルタ処理されて生成された復号画像の並べ替えを行う。すなわち画面並べ替えバッファ102−0により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS1514において、D/A変換部208−0は、フレームの順序が並べ替えられたビュー0の復号画像をD/A変換する。この復号画像が図示せぬディスプレイに出力され、表示される。
ステップS1515において、デコードピクチャバッファ209−0は、ステップS1512においてフィルタ処理されて得られた復号画像を記憶する。この復号画像は、インター予測処理において参照画像として利用される。
ステップS1515の処理が終了すると、復号処理が終了し、処理は、図19に戻る。
<V0動き補償処理の流れ>
次に、図20のステップS1506において実行されるV0動き補償処理の流れの例を、図21のフローチャートを参照して説明する。
V0動き補償処理が開始されると、ステップS1531において、動き補償部211−0は、差分動き情報(差分動きベクトル)を取得する。ステップS1532において、動き補償部211−0は、インター予測情報に基づいて、予測動きベクトルのモードが空間予測であるか否かを判定する。空間予測であると判定された場合、処理は、ステップS1533に進む。
ステップS1533において、動き補償部211−0は、ピクチャ内の圧縮前V0動きベクトル(カレントブロックに対して空間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。予測動きベクトルが生成されると、処理は、ステップS1535に進む。
また、ステップS1532において、空間予測でないと判定された場合、処理は、ステップS1534に進む。
ステップS1534において、動き補償部211−0は、他のピクチャ内の1/16圧縮後V0動きベクトル(カレントブロックに対して空間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。予測動きベクトルが生成されると、処理は、ステップS1535に進む。
ステップS1535において、動き補償部211−0は、ステップS1533若しくはステップS1534の処理により生成された予測動きベクトルを用いて、動きベクトルを再構築する。
ステップS1536において、動き補償部211−0は、動き補償を行い、予測画像を生成する。なお、動き補償部211−0は、再構築された動きベクトルを記憶する。ステップS1536の処理が終了すると、V0動き補償処理が終了し、処理は、図20に戻る。
<V1復号処理の流れ>
次に、図22のフローチャートを参照して、図19のステップS1402において実行される、ビュー1の符号化データを復号するV1復号処理の流れの例を説明する。
ビュー0に対する処理と、ビュー1に対する処理の違いは、主に、動き補償処理にある。したがって、図22に示されるように、V1復号処理は、V1画像復号装置200−1によって、ビュー0に対する復号処理(図20のV0復号処理)の場合と基本的に同様に実行される。つまり、図22のステップS1601乃至ステップS1615の各処理は、図20のステップS1501乃至ステップS1515の各処理と基本的に同様に実行される。したがって、図22の説明は、図20の説明におけるV0画像復号装置200−0の各部をV1画像復号装置200−1の各部に置き換え、図20におけるビュー0に対する処理との説明を、ビュー1に対する処理に置き換えるだけでよいので、その説明は省略する。
<V1動き補償処理の流れ>
次に、図22のステップS1606において実行されるV1動き補償処理の流れの例を、図23のフローチャートを参照して説明する。
V1動き補償処理が開始されると、ステップS1631において、動き補償部211−1は、差分動き情報(差分動きベクトル)を取得する。ステップS1632において、動き補償部211−1は、インター予測情報に基づいて、予測動きベクトルのモードが空間予測であるか否かを判定する。空間予測であると判定された場合、処理は、ステップS1633に進む。
ステップS1633において、動き補償部211−1は、ピクチャ内の圧縮前V1動きベクトル(カレントブロックに対して空間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。予測動きベクトルが生成されると、処理は、ステップS1635に進む。
また、ステップS1632において、空間予測でないと判定された場合、処理は、ステップS1634に進む。
ビュー1の場合、最初に処理されるビューではないので、予測動きベクトルのモードがビュー間予測(IVMP)である可能性もある。
ステップS1634において、動き補償部211−1は、インター予測情報に基づいて、予測動きベクトルのモードが時間予測であるか否かを判定する。時間予測であると判定された場合、処理は、ステップS1635に進む。
ステップS1635において、動き補償部211−1は、他のピクチャ内の1/16圧縮後V1動きベクトル(カレントブロックに対して空間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。予測動きベクトルが生成されると、処理は、ステップS1637に進む。
また、ステップS1634において、時間予測でないと判定された場合、処理は、ステップS1636に進む。
ステップS1636において、動き補償部211−1は、1/16圧縮後V0動きベクトル(ビュー0の画像のコロケーテッドブロックの動きベクトル)を用いて予測動きベクトルを生成する。予測動きベクトルが生成されると、処理は、ステップS1637に進む。
ステップS1637において、動き補償部211−1は、ステップS1633、ステップS1635、若しくはステップS1636において生成された予測動きベクトルを用いて、動きベクトルを再構築する。
ステップS1638において、動き補償部211−1は、動き補償を行い、予測画像を生成する。なお、動き補償部211−1は、ステップS1637において再構築された動きベクトルを記憶する。ステップS1638の処理が終了すると、V1動き補償処理が終了し、処理は、図22に戻る。
<V2復号処理の流れ>
次に、図24のフローチャートを参照して、図19のステップS1403において実行される、ビュー2の符号化データを復号するV2復号処理の流れの例を説明する。
ビュー1に対する処理と、ビュー2に対する処理の違いは、主に、動き補償処理にある。したがって、図24に示されるように、V2復号処理は、V2画像復号装置200−2によって、ビュー1に対する復号処理(図22のV1復号処理)の場合と基本的に同様に実行される。つまり、図24のステップS1701乃至ステップS1715の各処理は、図22のステップS1601乃至ステップS1615の各処理と基本的に同様に実行される。したがって、図24の説明は、図22の説明におけるV1画像復号装置200−1の各部をV2画像復号装置200−2の各部に置き換え、図22におけるビュー1に対する処理との説明を、ビュー2に対する処理に置き換えるだけでよいので、その説明は省略する。
<V2動き補償処理の流れ>
次に、図24のステップS1706において実行されるV2動き補償処理の流れの例を、図25のフローチャートを参照して説明する。
図25に示されるように、V2動き補償処理は、V1動き補償処理(図23)と基本的に同様に行われる。つまり、図25のステップS1731乃至ステップS1738の各処理は、それぞれ、図23のステップS1631乃至ステップS1638の各処理と基本的に同様に実行される。ただし、V1動き補償処理は、動き補償部211−1が実行するのに対して、V2動き補償処理は、動き補償部211−2が実行する。
また、V2動き補償処理の処理対象は、ビュー1の画像ではなくビュー2の画像である。したがって、ステップS1733において、動き補償部211−2は、ピクチャ内の圧縮前V2動きベクトル(カレントブロックに対して空間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。
また、ステップS1735において、動き補償部211−2は、他のピクチャの1/16圧縮後V2動きベクトル(カレントブロックに対して時間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。
さらに、ステップS1736において、動き補償部211−2は、1/16圧縮後V1動きベクトル(カレントブロックに対してビュー間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。
なお、ステップS1731、ステップS1732、ステップS1734,ステップS1737、およびステップS1738の各処理は、図23のステップS1631、ステップS1632、ステップS1634,ステップS1637、およびステップS1638の各処理と同様に実行される。
ステップS1738の処理が終了すると、V2動き補償処理が終了し、処理は、図24に戻る。
以上のように各処理を実行することにより、画像復号装置200は、IVMP用の動きベクトルのために必要なメモリ容量を低減させることができ、符号化・復号に必要な記憶容量の増大を抑制することができる。
なお、以上においては、動きベクトルの精度が、非圧縮の状態で最高4x4精度であり、圧縮後、16x16精度となるように説明したが、これは一例であり、動きベクトルの精度は任意である。また、動きベクトルの圧縮率も任意である。つまり、各ビューの、空間予測動きベクトル候補、時間予測動きベクトル候補、IVMP予測動きベクトル候補、および予測動きベクトルの精度も任意である。精度や圧縮率が全てのビューで統一されていてもよいし、されていなくてもよい。
<2.第2の実施の形態>
<IVMP用の動きベクトルの圧縮>
以上のような動きベクトルの圧縮において、図26に示されるように、IVMP用の動きベクトルとTMVP用の動きベクトルとをそれぞれ圧縮する(例えば間引く)ようにしてもよい。つまり、IVMP用の動きベクトルの精度とTMVP用の動きベクトルの精度とが互いに異なるようにしてもよい。
より具体的には、例えば、4x4精度の動きベクトルを、次のビューの処理(符号化・復号)が開始されるまでにIVMP用に8x8精度に圧縮し(例えば間引き)、次のピクチャの処理(符号化・復号)が開始されるまでにTMVP用に16x16精度に圧縮する(例えば間引く)。つまり、IVMPは8x8精度の動きベクトルを参照し、TMVPは、16x16精度の動きベクトルを参照する。このようにすることにより、従来の方法と比較して、必要なメモリの容量の増大を抑制することができる。また、第1の実施の形態において説明した方法と比較して、IVMPの動きベクトルの精度を高くすることができる。
例えば、図26に示される例のように、IVMP用の動きベクトルは、動きベクトル圧縮部((V0乃至V2) MV Compressor A)によって8x8精度に圧縮し(例えば間引き)、テンポラル動きベクトルメモリ((V0乃至V2) Temporal MV Memory)に記憶する。IVMPは、このテンポラル動きベクトルメモリの動きベクトルを参照するようにする。この圧縮(例えば間引き)により、テンポラル動きベクトルメモリの容量の増大を抑制することができる。
そして、TMVP用の動きベクトルは、テンポラル動きベクトルメモリの動きベクトルを、さらに、動きベクトル圧縮部((V0乃至V2) MV Compressor B)によって16x16精度に圧縮し(例えば間引き)、動きベクトルメモリ((V0乃至V2) MV Memory)に記憶する。TMVPは、この動きベクトルメモリの動きベクトルを参照するようにする。このようにすることにより、圧縮処理の圧縮率(例えば間引き処理の間引き率)をどちらも1/4とすることができる。つまり、同じ圧縮処理(例えば間引き処理)を2度行うだけでよく、実現が容易である。
以下に、この圧縮方法について、より具体的に説明する。なお、以下においては、動きベクトルの精度が、非圧縮の状態で最高4x4精度であるとする。また、その圧縮前の動きベクトルが、IVMP用に、8x8精度に圧縮(1/4圧縮)されるものとする。さらに、その1/4圧縮後の動きベクトル(8x8精度の動きベクトル)が、TMVP用に、16x16精度に圧縮(1/4圧縮)されるものとする。
<画像符号化装置>
図27は、V0画像符号化装置の主な構成例を示すブロック図である。図28は、V1画像符号化装置の主な構成例を示すブロック図である。図29は、V2画像符号化装置の主な構成例を示すブロック図である。
図示せぬ画像符号化装置300は、図2に示される多視点画像のような複数レイヤよりなる動画像を符号化する。この画像符号化装置300は、多視点画像の各ビューを符号化するために、図27のV0画像符号化装置300−0、図28のV1画像符号化装置300−1、および図29のV2画像符号化装置300−3を有する。V0画像符号化装置300−0は、ビュー0の画像を符号化する。V1画像符号化装置300−1は、ビュー1の画像を符号化する。V2画像符号化装置300−2は、ビュー2の画像を符号化する。
図27に示されるように、V0画像符号化装置300−0は、A/D変換部301−0、画面並べ替えバッファ302−0、演算部303−0、直交変換部304−0、量子化部305−0、可逆符号化部306−0、蓄積バッファ307−0、逆量子化部308−0、および逆直交変換部309−0を有する。また、V0画像符号化装置300−0は、演算部310−0、ループフィルタ311−0、デコードピクチャバッファ312−0、画面内予測部313−0、動き予測・補償部314−0、予測画像選択部315−0、およびレート制御部316−0を有する。
また、図28に示されるように、V1画像符号化装置300−1は、A/D変換部301−1、画面並べ替えバッファ302−1、演算部303−1、直交変換部304−1、量子化部305−1、可逆符号化部306−1、蓄積バッファ307−1、逆量子化部308−1、および逆直交変換部309−1を有する。また、V1画像符号化装置300−1は、演算部310−1、ループフィルタ311−1、デコードピクチャバッファ312−1、画面内予測部313−1、動き予測・補償部314−1、予測画像選択部315−1、およびレート制御部316−1を有する。
さらに、図29に示されるように、V2画像符号化装置300−2は、A/D変換部301−2、画面並べ替えバッファ302−2、演算部303−2、直交変換部304−2、量子化部305−2、可逆符号化部306−2、蓄積バッファ307−2、逆量子化部308−2、および逆直交変換部309−2を有する。また、V2画像符号化装置300−2は、演算部310−2、ループフィルタ311−2、デコードピクチャバッファ312−2、画面内予測部313−2、動き予測・補償部314−2、予測画像選択部315−2、およびレート制御部316−2を有する。
以下において、A/D変換部301−0乃至A/D変換部301−2を互いに区別して説明する必要が無い場合、単に、A/D変換部301と称する。また、画面並べ替えバッファ302−0乃至画面並べ替えバッファ302−2を互いに区別して説明する必要が無い場合、単に、画面並べ替えバッファ302と称する。さらに、演算部303−0乃至演算部303−2を互いに区別して説明する必要が無い場合、単に、演算部303と称する。また、直交変換部304−0乃至直交変換部304−2を互いに区別して説明する必要が無い場合、単に、直交変換部304と称する。さらに、量子化部305−0乃至量子化部305−2を互いに区別して説明する必要が無い場合、単に、量子化部305と称する。また、可逆符号化部306−0乃至可逆符号化部306−2を互いに区別して説明する必要が無い場合、単に、可逆符号化部306と称する。さらに、蓄積バッファ307−0乃至蓄積バッファ307−2を互いに区別して説明する必要が無い場合、単に、蓄積バッファ307と称する。また、逆量子化部308−0乃至逆量子化部308−2を互いに区別して説明する必要が無い場合、単に、逆量子化部308と称する。さらに、逆直交変換部309−0乃至逆直交変換部309−2を互いに区別して説明する必要が無い場合、単に、逆直交変換部309と称する。
また、演算部310−0乃至演算部310−2を互いに区別して説明する必要が無い場合、単に、演算部310と称する。さらに、ループフィルタ311−0乃至ループフィルタ311−2を互いに区別して説明する必要が無い場合、単に、ループフィルタ311と称する。また、デコードピクチャバッファ312−0乃至デコードピクチャバッファ312−2を互いに区別して説明する必要が無い場合、単に、デコードピクチャバッファ312と称する。さらに、画面内予測部313−0乃至画面内予測部313−2を互いに区別して説明する必要が無い場合、単に、画面内予測部313と称する。また、動き予測・補償部314−0乃至動き予測・補償部314−2を互いに区別して説明する必要が無い場合、単に、動き予測・補償部314と称する。さらに、予測画像選択部315−0乃至予測画像選択部315−2を互いに区別して説明する必要が無い場合、単に、予測画像選択部315と称する。また、レート制御部316−0乃至レート制御部316−2を互いに区別して説明する必要が無い場合、単に、レート制御部316と称する。
A/D変換部301は、A/D変換部101に対応し、基本的にA/D変換部101と同様の処理を行う。画面並べ替えバッファ302は、画面並べ替えバッファ102に対応し、基本的に画面並べ替えバッファ102と同様の処理を行う。演算部303は、演算部103に対応し、基本的に演算部103と同様の処理を行う。直交変換部304は、直交変換部104に対応し、基本的に直交変換部104と同様の処理を行う。量子化部305は、量子化部105に対応し、基本的に量子化部105と同様の処理を行う。可逆符号化部306は、可逆符号化部106に対応し、基本的に可逆符号化部106と同様の処理を行う。蓄積バッファ307は、蓄積バッファ107に対応し、基本的に蓄積バッファ107と同様の処理を行う。
逆量子化部308は、逆量子化部108に対応し、基本的に逆量子化部108と同様の処理を行う。逆直交変換部309は、逆直交変換部109に対応し、基本的に逆直交変換部109と同様の処理を行う。演算部310は、演算部110に対応し、基本的に演算部110と同様の処理を行う。ループフィルタ311は、ループフィルタ111に対応し、基本的にループフィルタ111と同様の処理を行う。デコードピクチャバッファ312は、デコードピクチャバッファ112に対応し、基本的にデコードピクチャバッファ112と同様の処理を行う。
画面内予測部313は、画面内予測部113に対応し、基本的に画面内予測部113と同様の処理を行う。動き予測・補償部314は、動き予測・補償部114に対応し、基本的に動き予測・補償部114と同様の処理を行う。予測画像選択部315は、予測画像選択部115に対応し、基本的に予測画像選択部115と同様の処理を行う。
V0画像符号化装置300−0は、さらに、V0動きベクトル圧縮部321−0、V0テンポラルメモリ322−0、V0動きベクトル圧縮部323−0、およびV0動きベクトルメモリ324−0を有する。
V1画像符号化装置300−1は、さらに、V1動きベクトル圧縮部321−1、V1テンポラルメモリ322−1、V1動きベクトル圧縮部323−1、およびV1動きベクトルメモリ324−1を有する。
V2画像符号化装置300−2は、さらに、V2動きベクトル圧縮部321−2、V2テンポラルメモリ322−2、V2動きベクトル圧縮部323−2、およびV2動きベクトルメモリ324−2を有する。
なお、動き予測・補償部314−0は、動き予測により生成したカレントブロックの圧縮前V0動きベクトル(最高4x4精度)を、V0動きベクトル圧縮部321−0に供給する。また、動き予測・補償部314−0は、カレントブロックの時間的に周辺のブロックの動きベクトルとして、V0動きベクトルメモリ324−0に記憶されている1/16圧縮後V0動きベクトルを取得する。
また、動き予測・補償部314−1は、動き予測により生成したカレントブロックの圧縮前V1動きベクトル(最高4x4精度)を、V1動きベクトル圧縮部321−1に供給する。また、動き予測・補償部314−1は、カレントブロックの時間的に周辺のブロックの動きベクトルとして、V1動きベクトルメモリ324−1に記憶されている1/16圧縮後V1動きベクトルを取得する。さらに、動き予測・補償部314−1は、カレントブロックのビュー間的に周辺のブロックの動きベクトルとして、V0動きベクトルメモリ324−0に記憶されている1/16圧縮後V0動きベクトルを取得する。
さらに、動き予測・補償部314−2は、動き予測により生成したカレントブロックの圧縮前V2動きベクトル(最高4x4精度)を、V2動きベクトル圧縮部321−2に供給する。また、動き予測・補償部314−2は、カレントブロックの時間的に周辺のブロックの動きベクトルとして、V2動きベクトルメモリ324−2に記憶されている1/16圧縮後V2動きベクトルを取得する。さらに、動き予測・補償部314−2は、カレントブロックのビュー間的に周辺のブロックの動きベクトルとして、V1動きベクトルメモリ324−1に記憶されている1/16圧縮後V1動きベクトルを取得する。
V0動きベクトル圧縮部321−0は、動き予測・補償部314−0から供給された圧縮前V0動きベクトルを8x8精度に圧縮し(1/4圧縮とも称する)、その圧縮後の動きベクトル(1/4圧縮後V0動きベクトルとも称する)をV0テンポラルメモリ322−0に供給する。つまり、V0動きベクトル圧縮部321−0は、圧縮率が異なるだけで、V0動きベクトル圧縮部121−0と同様の圧縮を行う。したがって、この動きベクトルの圧縮方法は、V0動きベクトル圧縮部121−0の場合と同様に任意である。
V0テンポラルメモリ322−0は、供給された1/4圧縮後V0動きベクトルを記憶する。V0テンポラルメモリ322−0は、適宜、記憶している1/4圧縮後V0動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、動き予測・補償部314−1に供給する。また、V0テンポラルメモリ322−0は、適宜、記憶している1/4圧縮後V0動きベクトルを、V0動きベクトル圧縮部323−0に供給する。
V0動きベクトル圧縮部323−0は、V0テンポラルメモリ322−0から1/4圧縮後V0動きベクトルを読み出し、16x16精度に圧縮し(1/4圧縮とも称する)、その圧縮後の動きベクトル(すなわち、1/16圧縮後V0動きベクトル)をV0動きベクトルメモリ324−0に供給する。このV0動きベクトル圧縮部323−0は、V0動きベクトル圧縮部321−0と同様の処理を行う。つまり、2回に分けて、同じ1/4圧縮が行われる。したがって、V0動きベクトル圧縮部121−0が生成するのと同様の1/16圧縮後V0動きベクトルが生成される。
なお、V0動きベクトル圧縮部321−0とV0動きベクトル圧縮部323−0とで圧縮方法を互いに異なるようにしてももちろんよい。また、V0動きベクトル圧縮部323−0は、V0動きベクトル圧縮部121−0のように、動き予測・補償部314−0により生成される圧縮前V0動きベクトルを1/16圧縮するようにしてもよい。
V0動きベクトルメモリ324−0は、供給された1/16圧縮後V0動きベクトルを記憶する。V0動きベクトルメモリ324−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部314−0に供給する。
V1動きベクトル圧縮部321−1は、V0動きベクトル圧縮部321−0と同様の処理部である。V1動きベクトル圧縮部321−1は、動き予測・補償部314−1から供給された圧縮前V1動きベクトルを1/4圧縮し、その圧縮後の動きベクトル(1/4圧縮後V1動きベクトルとも称する)をV1テンポラルメモリ322−1に供給する。
V1テンポラルメモリ322−1は、V0テンポラルメモリ322−0と同様の処理部である。V1テンポラルメモリ322−1は、供給された1/4圧縮後V1動きベクトルを記憶する。V1テンポラルメモリ322−1は、適宜、記憶している1/4圧縮後V1動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、動き予測・補償部314−2に供給する。また、V1テンポラルメモリ322−1は、適宜、記憶している1/4圧縮後V1動きベクトルを、V1動きベクトル圧縮部323−1に供給する。
V1動きベクトル圧縮部323−1は、V0動きベクトル圧縮部323−0と同様の処理部である。V1動きベクトル圧縮部323−1は、V1テンポラルメモリ322−1から1/4圧縮後V1動きベクトルを読み出し、1/4圧縮し、その圧縮後の動きベクトル(すなわち、1/16圧縮後V1動きベクトル)をV1動きベクトルメモリ324−1に供給する。
V1動きベクトルメモリ324−1は、供給された1/16圧縮後V1動きベクトルを記憶する。V1動きベクトルメモリ324−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部314−1に供給する。
V2動きベクトル圧縮部321−2は、V0動きベクトル圧縮部321−0と同様の処理部である。V2動きベクトル圧縮部321−2は、動き予測・補償部314−2から供給された圧縮前V2動きベクトルを1/4圧縮し、その圧縮後の動きベクトル(1/4圧縮後V2動きベクトルとも称する)をV2テンポラルメモリ322−2に供給する。
V2テンポラルメモリ322−2は、V0テンポラルメモリ322−0と同様の処理部である。V2テンポラルメモリ322−2は、供給された1/4圧縮後V2動きベクトルを記憶する。V2テンポラルメモリ322−2は、適宜、記憶している1/4圧縮後V2動きベクトルを、V2動きベクトル圧縮部323−2に供給する。
V2動きベクトル圧縮部323−2は、V0動きベクトル圧縮部323−0と同様の処理部である。V2動きベクトル圧縮部323−2は、V2テンポラルメモリ322−2から1/4圧縮後V2動きベクトルを読み出し、1/4圧縮し、その圧縮後の動きベクトル(すなわち、1/16圧縮後V2動きベクトル)をV2動きベクトルメモリ324−2に供給する。
V2動きベクトルメモリ324−2は、供給された1/16圧縮後V2動きベクトルを記憶する。V2動きベクトルメモリ324−2は、適宜、記憶している1/16圧縮後V2動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部314−2に供給する。
なお、V2画像符号化装置300−2は、最後に処理されるビュー2の画像を符号化するので、動き予測・補償部314−2において得られた動きベクトルは、他のビューで利用されない。したがって、V2動きベクトル圧縮部321−2乃至V2動きベクトルメモリ324−2の代わりに、V2画像符号化装置100−2のように、V2動きベクトル圧縮部121−2およびV2動きベクトルメモリ122−2を適用するようにしてもよい。
以上のように、V0動きベクトル圧縮部321−0、V1動きベクトル圧縮部321−1、およびV2動きベクトル圧縮部321−2が、動きベクトルの数を減らすことにより、動きベクトルの情報量を低減させる(すなわち圧縮する)ことができる。これにより、V0テンポラルメモリ322−0、V1テンポラルメモリ322−1、およびV2テンポラルメモリ322−2の容量を低減させることができる。
また、その際、IVMP用の動きベクトルの精度をTMVP用の動きベクトルの精度よりも高くするように圧縮率を抑制することにより、IVMP用の動きベクトルの精度をTMVP用の動きベクトルの精度と同等とする場合より、IVMPの予測精度を向上させることができる。
これにより、画像符号化装置300の、製造や開発のコストの低減、装置の小型化、並びに、消費電力の低減等を実現することができる。
<V0符号化処理の流れ>
次に、以上のような画像符号化装置100により実行される処理の流れについて説明する。なお、画像符号化装置300による符号化処理の流れは、第1の実施の形態の場合(図9)と同様であるのでその説明を省略する。
次に、図30のフローチャートを参照して、図9のステップS1001において実行される、ビュー0の符号化を行うV0符号化処理の流れの例を説明する。
ステップS2101乃至ステップS2105の各処理は、V0画像符号化装置300−0の各処理部により、図10のステップS1101乃至ステップS1105の各処理と同様に行われる。
ステップS2106において、V0動きベクトル圧縮部321−0は、ステップS2104の処理により生成されたビュー0のカレントピクチャの動きベクトルであり、最高4x4精度の圧縮前V0動きベクトルを、8x8精度に圧縮する(1/4圧縮)。この1/4圧縮は、例えば、LCU(例えば16x16画素)毎に行われる。
ステップS2107において、V0テンポラルメモリ322−0は、ステップS2106の処理により生成された1/4圧縮後V0動きベクトルを記憶する。
ステップS2108乃至ステップS2119の各処理は、V0画像符号化装置300−0の各処理部により、図10のステップS1108乃至ステップS1119の各処理と同様に行われる。
ステップS2120において、V0動きベクトル圧縮部323−0は、ステップS2107の処理により記憶された1/4圧縮後V0動きベクトルを、V0テンポラルメモリ322−0から読み出し、さらに1/4圧縮する。
ステップS2121において、V0動きベクトルメモリ324−0は、ステップS2106の処理により生成された1/16圧縮後V0動きベクトルを記憶する。
ステップS2121の処理が終了すると、V0符号化処理が終了し、処理は図9に戻る。なお、図30のステップS2104において実行されるV0インター動き予測処理は、動き予測・補償部314−0により、第1の実施の形態の場合(図11)と同様に行われるのでその説明を省略する。
<V1符号化処理の流れ>
次に、図31のフローチャートを参照して、図9のステップS1002において実行される、ビュー1の符号化を行うV1符号化処理の流れの例を説明する。
ビュー0に対する処理と、ビュー1に対する処理の違いは、主に、インター動き予測処理にある。したがって、図31に示されるように、ビュー1に対するV1符号化処理は、V1画像符号化装置300−1によって、ビュー0に対するV0符号化処理(図30)の場合と基本的に同様に実行される。つまり、図31のステップS2201乃至ステップS2221の各処理は、図30のステップS2101乃至ステップS2121の各処理と基本的に同様に実行される。したがって、図31の説明は、図30の説明におけるV0画像符号化装置300−0の各部をV1画像符号化装置300−1の各部に置き換え、図30においてビュー0に対する処理としてした説明を、ビュー1に対する処理に対するものとして置き換えるだけでよいので、その説明は省略する。
<V1インター動き予測処理の流れ>
次に、図31のステップS2204において実行されるV1インター動き予測処理の流れの例を、図32のフローチャートを参照して説明する。
ステップS2241乃至ステップS2243の各処理は、動き予測・補償部314−1により、図13のステップS1231乃至ステップS1233の各処理と同様に行われる。
ステップS2244において、動き予測・補償部114−1は、V0テンポラルメモリ322−0から1/4圧縮後V0動きベクトルを取得し、それを用いてIVMP予測動きベクトル候補を決定する。
ステップS2245乃至ステップS2248の各処理は、動き予測・補償部314−1により、図13のステップS1235乃至ステップS1238の各処理と同様に行われる。ステップS2248の処理が終了すると、V1インター動き予測処理が終了し、処理は、図31に戻る。
<V2符号化処理の流れ>
次に、図33のフローチャートを参照して、図9のステップS1003において実行される、ビュー2の符号化を行うV2符号化処理の流れの例を説明する。
ビュー2に対する処理は、ビュー1に対する処理と同様に実行される。したがって、図33に示されるように、V2符号化処理は、V2画像符号化装置300−2によって、ビュー1に対するV1符号化処理(図31)の場合と基本的に同様に実行される。つまり、図33のステップS2301乃至ステップS2321の各処理は、図31のステップS2201乃至ステップS2221の各処理と基本的に同様に実行される。したがって、図33の説明は、図31の説明におけるV1画像符号化装置300−1の各部をV2画像符号化装置300−2の各部に置き換え、図31においてビュー1に対する処理としてした説明を、ビュー2に対する処理に対するものとして置き換えるだけでよいので、その説明は省略する。
なお、ステップS2306において、圧縮前V2動きベクトルを1/16圧縮し、得られた1/16圧縮後V2動きベクトルを、ステップS2307において記憶するようにし、ステップS2320およびステップS2321の処理を省略するようにしてもよい。このようにすることにより、圧縮処理の回数が低減されるので、圧縮による負荷の増大を抑制することができる。ただし、図33に示されるように、1/4圧縮を2回行うことにより、他のビューと同様に圧縮を行うことができ、制御が容易になる。
<V2インター動き予測処理の流れ>
次に、図33のステップS2304において実行されるV2インター動き予測処理の流れの例を、図34のフローチャートを参照して説明する。
図34に示されるように、V2インター動き予測処理は、動き予測・補償部314−2によって、ビュー1に対するV1インター動き予測処理(図32)の場合と基本的に同様に実行される。つまり、図34のステップS2341乃至ステップS2348の各処理は、図32のステップS2241乃至ステップS2248の各処理と基本的に同様に実行される。
ただし、ステップS2342においては、非圧縮のビュー2の動きベクトルである圧縮前V2動きベクトルが用いられる。また、ステップS2343においては、1/16圧縮された1/16圧縮後V2動きベクトルが用いられる。さらに、ステップS2344においては、1/4圧縮された1/4圧縮後V1動きベクトルが用いられる。
ステップS2348の処理が終了すると、V2インター動き予測処理が終了し、処理は、図33に戻る。
以上のように各処理を実行することにより、画像符号化装置300は、IVMP用の動きベクトルのために必要なメモリ容量を低減させることができ、符号化・復号に必要な記憶容量の増大を抑制することができる。
<画像復号装置>
次に、以上のように符号化された符号化データ(符号化ストリーム)の復号について説明する。図35は、V0画像復号装置の主な構成例を示すブロック図である。図36は、V1画像復号装置の主な構成例を示すブロック図である。図37は、V2画像復号装置の主な構成例を示すブロック図である。
図示せぬ画像復号装置400は、画像符号化装置300により符号化された、図2に示される多視点画像のような複数レイヤよりなる動画像の符号化データを、その符号化方法に対応する復号方法で復号する。この画像復号装置400は、多視点画像の各ビューの符号化データを復号するために、図35のV0画像復号装置400−0、図36のV1画像復号装置400−1、および図37のV2画像復号装置400−2を有する。V0画像復号装置400−0は、V0画像符号化装置300−0により符号化されたビュー0の画像の符号化データを復号する。V1画像復号装置400−1は、V1画像符号化装置300−1により符号化されたビュー1の画像の符号化データを復号する。V2画像復号装置400−2は、V2画像符号化装置300−2により符号化されたビュー2の画像の符号化データを復号する。
図35に示されるように、V0画像復号装置400−0は、蓄積バッファ401−0、可逆復号部402−0、逆量子化部403−0、逆直交変換部404−0、演算部405−0、ループフィルタ406−0、画面並べ替えバッファ407−0、およびD/A変換部408−0を有する。また、V0画像復号装置400−0は、デコードピクチャバッファ409−0、画面内予測部410−0、動き補償部411−0、および選択部412−0を有する。
また、図36に示されるように、V1画像復号装置400−1は、蓄積バッファ401−1、可逆復号部402−1、逆量子化部403−1、逆直交変換部404−1、演算部405−1、ループフィルタ406−1、画面並べ替えバッファ407−1、およびD/A変換部408−1を有する。また、V1画像復号装置400−1は、デコードピクチャバッファ409−1、画面内予測部410−1、動き補償部411−1、および選択部412−1を有する。
さらに、図37に示されるように、V2画像復号装置400−2は、蓄積バッファ401−2、可逆復号部402−2、逆量子化部403−2、逆直交変換部404−2、演算部405−2、ループフィルタ406−2、画面並べ替えバッファ407−2、およびD/A変換部408−2を有する。また、V2画像復号装置400−2は、デコードピクチャバッファ409−2、画面内予測部410−2、動き補償部411−2、および選択部412−2を有する。
以下において、蓄積バッファ401−0乃至蓄積バッファ401−2を互いに区別して説明する必要が無い場合、単に、蓄積バッファ401と称する。また、可逆復号部402−0乃至可逆復号部402−2を互いに区別して説明する必要が無い場合、単に、可逆復号部402と称する。さらに、逆量子化部403−0乃至逆量子化部403−2を互いに区別して説明する必要が無い場合、単に、逆量子化部403と称する。また、逆直交変換部404−0乃至逆直交変換部404−2を互いに区別して説明する必要が無い場合、単に、逆直交変換部404と称する。さらに、演算部405−0乃至演算部405−2を互いに区別して説明する必要が無い場合、単に、演算部405と称する。
また、ループフィルタ406−0乃至ループフィルタ406−2を互いに区別して説明する必要が無い場合、単に、ループフィルタ406と称する。さらに、画面並べ替えバッファ407−0乃至画面並べ替えバッファ407−2を互いに区別して説明する必要が無い場合、単に、画面並べ替えバッファ407と称する。また、D/A変換部408−0乃至D/A変換部408−2を互いに区別して説明する必要が無い場合、単に、D/A変換部408と称する。さらに、デコードピクチャバッファ409−0乃至デコードピクチャバッファ409−2を互いに区別して説明する必要が無い場合、単に、デコードピクチャバッファ409と称する。
また、画面内予測部410−0乃至画面内予測部410−2を互いに区別して説明する必要が無い場合、単に、画面内予測部410と称する。さらに、動き補償部411−0乃至動き補償部411−2を互いに区別して説明する必要が無い場合、単に、動き補償部411と称する。また、選択部412−0乃至選択部412−2を互いに区別して説明する必要が無い場合、単に、選択部412と称する。
蓄積バッファ401は、蓄積バッファ201に対応し、基本的に蓄積バッファ201と同様の処理を行う。可逆復号部402は、可逆復号部202に対応し、基本的に可逆復号部202と同様の処理を行う。逆量子化部403は、逆量子化部203に対応し、基本的に逆量子化部203と同様の処理を行う。逆直交変換部404は、逆直交変換部204に対応し、基本的に逆直交変換部204と同様の処理を行う。演算部405は、演算部205に対応し、基本的に演算部205と同様の処理を行う。
ループフィルタ406は、ループフィルタ206に対応し、基本的にループフィルタ206と同様の処理を行う。画面並べ替えバッファ407は、画面並べ替えバッファ207に対応し、基本的に画面並べ替えバッファ207と同様の処理を行う。D/A変換部408は、D/A変換部208に対応し、基本的にD/A変換部208と同様の処理を行う。デコードピクチャバッファ409は、デコードピクチャバッファ209に対応し、基本的にデコードピクチャバッファ209と同様の処理を行う。
画面内予測部410は、画面内予測部210に対応し、基本的に画面内予測部210と同様の処理を行う。動き補償部411は、動き補償部211に対応し、基本的に動き補償部211と同様の処理を行う。選択部412は、選択部212に対応し、基本的に選択部212と同様の処理を行う。
V0画像復号装置400−0は、さらに、V0動きベクトル圧縮部421−0、V0テンポラルメモリ422−0、V0動きベクトル圧縮部423−0、およびV0動きベクトルメモリ424−0を有する。
V1画像復号装置400−1は、さらに、V1動きベクトル圧縮部421−1、V1テンポラルメモリ422−1、V1動きベクトル圧縮部423−1、およびV1動きベクトルメモリ424−1を有する。
V2画像復号装置400−2は、さらに、V2動きベクトル圧縮部421−2、V2テンポラルメモリ422−2、V2動きベクトル圧縮部423−2、およびV2動きベクトルメモリ424−2を有する。
なお、動き補償部411−0は、動き予測により生成したカレントブロックの圧縮前V0動きベクトル(最高4x4精度)を、V0動きベクトル圧縮部421−0に供給する。また、動き補償部411−0は、カレントブロックの時間的に周辺のブロックの動きベクトルとして、V0動きベクトルメモリ424−0に記憶されている1/16圧縮後V0動きベクトルを取得する。
また、動き補償部411−1は、動き予測により生成したカレントブロックの圧縮前V1動きベクトル(4x4精度)を、V1動きベクトル圧縮部421−1に供給する。また、動き補償部411−1は、カレントブロックの時間的に周辺のブロックの動きベクトルとして、V1動きベクトルメモリ424−1に記憶されている1/16圧縮後V1動きベクトルを取得する。さらに、動き補償部411−1は、カレントブロックのビュー間的に周辺のブロックの動きベクトルとして、V0テンポラルメモリ422−0に記憶されている1/4圧縮後V0動きベクトルを取得する。
さらに、動き補償部411−2は、動き予測により生成したカレントブロックの圧縮前V2動きベクトル(4x4精度)を、V2動きベクトル圧縮部421−2に供給する。また、動き補償部411−2は、カレントブロックの時間的に周辺のブロックの動きベクトルとして、V2動きベクトルメモリ424−2に記憶されている1/16圧縮後V2動きベクトルを取得する。さらに、動き補償部411−2は、カレントブロックのビュー間的に周辺のブロックの動きベクトルとして、V1テンポラルメモリ422−1に記憶されている1/4圧縮後V1動きベクトルを取得する。
V0動きベクトル圧縮部421−0は、動き補償部411−0から供給された圧縮前V0動きベクトルを1/4圧縮し、得られた1/4圧縮後V0動きベクトルをV0テンポラルメモリ422−0に供給する。この動きベクトルの圧縮方法は、V0動きベクトル圧縮部321−0と同一の方法である限り、任意である。
V0テンポラルメモリ422−0は、供給された1/4圧縮後V0動きベクトルを記憶する。V0テンポラルメモリ422−0は、適宜、記憶している1/4圧縮後V0動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、動き補償部411−1に供給する。また、V0テンポラルメモリ422−0は、適宜、記憶している1/4圧縮後V0動きベクトルを、V0動きベクトル圧縮部423−0に供給する。
V0動きベクトル圧縮部423−0は、V0テンポラルメモリ422−0から1/4圧縮後V0動きベクトルを読み出して1/4圧縮し、得られた1/16圧縮後V0動きベクトルをV0動きベクトルメモリ424−0に供給する。この動きベクトルの圧縮方法は、V0動きベクトル圧縮部323−0と同一の方法である限り、任意である。
例えば、V0動きベクトル圧縮部421−0とV0動きベクトル圧縮部423−0とで圧縮方法を互いに異なるようにしてももちろんよい。また、V0動きベクトル圧縮部423−0は、V0動きベクトル圧縮部221−0のように、動き補償部411−0により生成される圧縮前V0動きベクトルを1/16圧縮するようにしてもよい。
V0動きベクトルメモリ424−0は、供給された1/16圧縮後V0動きベクトルを記憶する。V0動きベクトルメモリ424−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部411−0に供給する。
V1動きベクトル圧縮部421−1は、V0動きベクトル圧縮部421−0と同様の処理部である。V1動きベクトル圧縮部421−1は、動き補償部411−1から供給された圧縮前V1動きベクトルを1/4圧縮し、得られた1/4圧縮後V1動きベクトルをV1テンポラルメモリ422−1に供給する。
V1テンポラルメモリ422−1は、V0テンポラルメモリ422−0と同様の処理部である。V1テンポラルメモリ422−1は、供給された1/4圧縮後V1動きベクトルを記憶する。V1テンポラルメモリ422−1は、適宜、記憶している1/4圧縮後V1動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、動き補償部411−2に供給する。また、V1テンポラルメモリ422−1は、適宜、記憶している1/4圧縮後V1動きベクトルを、V1動きベクトル圧縮部423−1に供給する。
V1動きベクトル圧縮部423−1は、V0動きベクトル圧縮部423−0と同様の処理部である。V1動きベクトル圧縮部423−1は、V1テンポラルメモリ422−1から1/4圧縮後V1動きベクトルを読み出し、1/4圧縮し、得られた1/16圧縮後V1動きベクトルをV1動きベクトルメモリ424−1に供給する。
V1動きベクトルメモリ424−1は、供給された1/16圧縮後V1動きベクトルを記憶する。V1動きベクトルメモリ424−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部411−1に供給する。
V2動きベクトル圧縮部421−2は、V0動きベクトル圧縮部421−0と同様の処理部である。V2動きベクトル圧縮部421−2は、動き補償部411−2から供給された圧縮前V2動きベクトルを1/4圧縮し、得られた1/4圧縮後V2動きベクトルをV2テンポラルメモリ422−2に供給する。
V2テンポラルメモリ422−2は、V0テンポラルメモリ422−0と同様の処理部である。V2テンポラルメモリ422−2は、供給された1/4圧縮後V2動きベクトルを記憶する。V2テンポラルメモリ422−2は、適宜、記憶している1/4圧縮後V2動きベクトルを、V2動きベクトル圧縮部423−2に供給する。
V2動きベクトル圧縮部423−2は、V0動きベクトル圧縮部423−0と同様の処理部である。V2動きベクトル圧縮部423−2は、V2テンポラルメモリ422−2から1/4圧縮後V2動きベクトルを読み出し、1/4圧縮し、得られた1/16圧縮後V2動きベクトルをV2動きベクトルメモリ424−2に供給する。
V2動きベクトルメモリ424−2は、供給された1/16圧縮後V2動きベクトルを記憶する。V2動きベクトルメモリ424−2は、適宜、記憶している1/16圧縮後V2動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部411−2に供給する。
なお、V2画像復号装置400−2は、最後に処理されるビュー2の画像の符号化データを復号するので、動き補償部411−2において得られた動きベクトルは、他のビューで利用されない。したがって、V2動きベクトル圧縮部421−2乃至V2動きベクトルメモリ424−2の代わりに、V2画像復号装置200−2のように、V2動きベクトル圧縮部221−2およびV2動きベクトルメモリ222−2を適用するようにしてもよい。
以上のように、V0動きベクトル圧縮部421−0、V1動きベクトル圧縮部421−1、およびV2動きベクトル圧縮部421−2が、動きベクトルの数を減らすことにより、動きベクトルの情報量を低減させる(すなわち圧縮する)ことができる。これにより、V0テンポラルメモリ422−0、V1テンポラルメモリ422−1、およびV2テンポラルメモリ422−2の容量を低減させることができる。
また、その際、IVMP用の動きベクトルの精度をTMVP用の動きベクトルの精度よりも高くするように圧縮率を抑制することにより、IVMP用の動きベクトルの精度をTMVP用の動きベクトルの精度と同等とする場合より、IVMPの予測精度を向上させることができる。
これにより、画像復号装置400の、製造や開発のコストの低減、装置の小型化、並びに、消費電力の低減等を実現することができる。
<V0復号処理の流れ>
次に、以上のような画像復号装置400により実行される処理の流れについて説明する。なお、画像復号装置400による復号処理の流れは、第1の実施の形態の場合(図19)と同様であるのでその説明を省略する。
次に、図38のフローチャートを参照して、図19のステップS1401において実行される、ビュー0の復号を行うV0復号処理の流れの例を説明する。
ステップS2501乃至ステップS2508の各処理は、V0画像復号装置400−0の各処理部により、図20のステップS1501乃至ステップS1508の各処理と同様に行われる。
ステップS2509において、V0動きベクトル圧縮部421−0は、ステップS2506の処理により生成されたビュー0のカレントピクチャの動きベクトルであり、最高4x4精度の圧縮前V0動きベクトルを、8x8精度に圧縮する(1/4圧縮)。この1/4圧縮は、例えば、LCU(例えば16x16画素)毎に行われる。
ステップS2510において、V0テンポラルメモリ422−0は、ステップS2509の処理により生成された1/4圧縮後V0動きベクトルを記憶する。
ステップS2511乃至ステップS2515の各処理は、V0画像復号装置400−0の各処理部により、図20のステップS1511乃至ステップS1515の各処理と同様に行われる。
ステップS2516において、V0動きベクトル圧縮部423−0は、ステップS2510の処理により記憶された1/4圧縮後V0動きベクトルを、V0テンポラルメモリ422−0から読み出し、さらに1/4圧縮する。
ステップS2517において、V0動きベクトルメモリ424−0は、ステップS2516の処理により生成された1/16圧縮後V0動きベクトルを記憶する。
ステップS2517の処理が終了すると、V0符号化処理が終了し、処理は図19に戻る。なお、図38のステップS2506において実行されるV0動き補償処理は、動き補償部411−0により、第1の実施の形態の場合(図21)と同様に行われるのでその説明を省略する。
<V1復号処理の流れ>
次に、図39のフローチャートを参照して、図19のステップS1402において実行される、ビュー1の符号化データを復号するV1復号処理の流れの例を説明する。
ビュー0に対する処理と、ビュー1に対する処理の違いは、主に、動き補償処理にある。したがって、図39に示されるように、ビュー1に対するV1復号処理は、V1画像復号装置400−1によって、ビュー0に対するV0復号処理(図38)の場合と基本的に同様に実行される。つまり、図39のステップS2601乃至ステップS2617の各処理は、図38のステップS2501乃至ステップS2517の各処理と基本的に同様に実行される。したがって、図39の説明は、図38の説明におけるV0画像復号装置400−0の各部をV1画像復号装置400−1の各部に置き換え、図38においてビュー0に対する処理としてした説明を、ビュー1に対する処理に対するものとして置き換えるだけでよいので、その説明は省略する。
<V1動き補償処理の流れ>
次に、図39のステップS2606において実行されるV1動き補償処理の流れの例を、図40のフローチャートを参照して説明する。
ステップS2631乃至ステップS2635の各処理は、動き補償部411−1により、図23のステップS1631乃至ステップS1635の各処理と同様に行われる。
ステップS2636において、動き補償部411−1は、1/4圧縮後V0動きベクトル(ビュー0の画像のコロケーテッドブロックの動きベクトル)を用いて予測動きベクトルを生成する。予測動きベクトルが生成されると、処理は、ステップS2637に進む。
ステップS2637およびステップS2638の各処理は、動き補償部411−1により、図23のステップS1637およびステップS1638の各処理と同様に行われる。ステップS2638の処理が終了すると、V1動き補償処理が終了し、処理は、図22に戻る。
<V2復号処理の流れ>
次に、図41のフローチャートを参照して、図19のステップS1403において実行される、ビュー2の符号化データを復号するV2復号処理の流れの例を説明する。
ビュー1に対する処理と、ビュー2に対する処理の違いは、主に、動き補償処理にある。したがって、図41に示されるように、V2復号処理は、V2画像復号装置400−2によって、ビュー1に対するV1復号処理(図39)の場合と基本的に同様に実行される。つまり、図41のステップS2701乃至ステップS2717の各処理は、図39のステップS2601乃至ステップS2617の各処理と基本的に同様に実行される。したがって、図41の説明は、図39の説明におけるV1画像復号装置400−1の各部をV2画像復号装置400−2の各部に置き換え、図39におけるビュー1に対する処理との説明を、ビュー2に対する処理に置き換えるだけでよいので、その説明は省略する。
<V2動き補償処理の流れ>
次に、図41のステップS2706において実行されるV2動き補償処理の流れの例を、図42のフローチャートを参照して説明する。
ステップS2731乃至ステップS2735の各処理は、動き補償部411−2により、図25のステップS1731乃至ステップS1735の各処理と同様に行われる。
ステップS2736において、動き補償部411−2は、1/4圧縮後V1動きベクトル(ビュー1の画像のコロケーテッドブロックの動きベクトル)を用いて予測動きベクトルを生成する。予測動きベクトルが生成されると、処理は、ステップS2737に進む。
ステップS2737およびステップS2738の各処理は、動き補償部411−2により、図25のステップS1737およびステップS1738の各処理と同様に行われる。ステップS2738の処理が終了すると、V1動き補償処理が終了し、処理は、図41に戻る。
以上のように各処理を実行することにより、画像復号装置400は、IVMP用の動きベクトルのために必要なメモリ容量を低減させることができ、符号化・復号に必要な記憶容量の増大を抑制することができる。
なお、以上においては、動きベクトルの精度が、非圧縮の状態で最高4x4精度であり、IVMP用に8x8精度に圧縮し、さらに、TMVP用に16x16精度に圧縮するように説明したが、これは一例であり、動きベクトルの精度は任意である。また、各圧縮の圧縮率も任意である。つまり、各ビューの、空間予測動きベクトル候補、時間予測動きベクトル候補、IVMP予測動きベクトル候補、および予測動きベクトルの精度も任意である。精度や圧縮率が全てのビューで統一されていてもよいし、されていなくてもよい。
<3.第3の実施の形態>
<IVMP用の動きベクトルの圧縮>
以上のような動きベクトルの圧縮(例えば間引き)において、図43に示されるように、IVMP用の動きベクトルを圧縮するか否か(例えば間引くか否か)を制御することができるようにしてもよい。つまり、図4を参照して説明した従来の方法と、図5を参照して説明した(第1の実施の形態において説明した)方法のいずれか一方を選択することができるようにしてもよい。
より具体的には、例えば、デコーダ(V1 (Depend) Decorder, V2 (Depend) Decorder)は、テンポラル動きベクトルメモリ(V0 Temporal MV Memory, V1 Temporal MV Memory)から非圧縮の動きベクトル(圧縮前MV)を取得し、それを用いてIVMPを行うか、動きベクトルメモリ(V0 MV Memory, V1 MV Memory)から1/16圧縮された(例えば間引かれた)動きベクトル(圧縮後MV)を取得し、それを用いてIVMPを行うかを、スイッチ(V0SW, V1SW)により選択することができる。
このようにすることにより、メモリの容量、CPUの処理能力、現在の負荷状況等、任意の条件に応じて、より適応的に処理量やメモリ使用量等を制御しながら符号化や復号を行うことができる。
以下に、この圧縮方法について、より具体的に説明する。なお、以下においては、動きベクトルの精度が、非圧縮の状態で最高4x4精度であるとする。また、その圧縮前の動きベクトルが、TMVP用(若しくは、TMVPおよびIVMP用)に、16x16精度に圧縮(1/4圧縮)されるものとする。
<シンタックス>
このように複数の方法からいずれかを選択する場合、符号化側と復号側で同じ方法を選択する必要がある。そこで、いずれの方法を選択するかを、符号化側と復号側とで共有するために、いずれの方法を選択するかを示す情報(例えばフラグ)を、符号化側から復号側に伝送するようにしてもよい。例えば、図4の方法を用いるか、図5の方法を用いるかを示す1ビットのフラグを符号化側において生成し、復号側に伝送するようにしてもよい。復号側では、そのフラグの値に基づいて復号を行うことにより、符号化側において採用された方法と同じ方法を選択し、適切に復号することができる。
その場合、そのフラグは、任意の方法で伝送することができる。例えば、図44に示されるシンタックスのように、シーケンスパラメータセット(Sep_parameter_set)において伝送するようにしてもよい。
図44の例の場合、画像符号化装置において、このフラグが生成され、「sps_mv_compression_flag」として、シーケンスからメータセットに格納されて伝送される。画像復号装置においては、ビットストリームからこの「sps_mv_compression_flag」を抽出し、その値を参照して、画像符号化装置において採用されたのと同じ方法を選択する。
<画像符号化装置>
図45は、V0画像符号化装置の主な構成例を示すブロック図である。図46は、V1画像符号化装置の主な構成例を示すブロック図である。図47は、V2画像符号化装置の主な構成例を示すブロック図である。
図示せぬ画像符号化装置500は、図2に示される多視点画像のような複数レイヤよりなる動画像を符号化する。この画像符号化装置500は、多視点画像の各ビューを符号化するために、図45のV0画像符号化装置500−0、図46のV1画像符号化装置500−1、および図47のV2画像符号化装置500−3を有する。V0画像符号化装置500−0は、ビュー0の画像を符号化する。V1画像符号化装置500−1は、ビュー1の画像を符号化する。V2画像符号化装置500−2は、ビュー2の画像を符号化する。
図45に示されるように、V0画像符号化装置500−0は、A/D変換部501−0、画面並べ替えバッファ502−0、演算部503−0、直交変換部504−0、量子化部505−0、可逆符号化部506−0、蓄積バッファ507−0、逆量子化部508−0、および逆直交変換部509−0を有する。また、V0画像符号化装置500−0は、演算部510−0、ループフィルタ511−0、デコードピクチャバッファ512−0、画面内予測部513−0、動き予測・補償部514−0、予測画像選択部515−0、およびレート制御部516−0を有する。
また、図46に示されるように、V1画像符号化装置500−1は、A/D変換部501−1、画面並べ替えバッファ502−1、演算部503−1、直交変換部504−1、量子化部505−1、可逆符号化部506−1、蓄積バッファ507−1、逆量子化部508−1、および逆直交変換部509−1を有する。また、V1画像符号化装置500−1は、演算部510−1、ループフィルタ511−1、デコードピクチャバッファ512−1、画面内予測部513−1、動き予測・補償部514−1、予測画像選択部515−1、およびレート制御部516−1を有する。
さらに、図47に示されるように、V2画像符号化装置500−2は、A/D変換部501−2、画面並べ替えバッファ502−2、演算部503−2、直交変換部504−2、量子化部505−2、可逆符号化部506−2、蓄積バッファ507−2、逆量子化部508−2、および逆直交変換部509−2を有する。また、V2画像符号化装置500−2は、演算部510−2、ループフィルタ511−2、デコードピクチャバッファ512−2、画面内予測部513−2、動き予測・補償部514−2、予測画像選択部515−2、およびレート制御部516−2を有する。
以下において、A/D変換部501−0乃至A/D変換部501−2を互いに区別して説明する必要が無い場合、単に、A/D変換部501と称する。また、画面並べ替えバッファ502−0乃至画面並べ替えバッファ502−2を互いに区別して説明する必要が無い場合、単に、画面並べ替えバッファ502と称する。さらに、演算部503−0乃至演算部503−2を互いに区別して説明する必要が無い場合、単に、演算部503と称する。また、直交変換部504−0乃至直交変換部504−2を互いに区別して説明する必要が無い場合、単に、直交変換部504と称する。さらに、量子化部505−0乃至量子化部505−2を互いに区別して説明する必要が無い場合、単に、量子化部505と称する。また、可逆符号化部506−0乃至可逆符号化部506−2を互いに区別して説明する必要が無い場合、単に、可逆符号化部506と称する。さらに、蓄積バッファ507−0乃至蓄積バッファ507−2を互いに区別して説明する必要が無い場合、単に、蓄積バッファ507と称する。また、逆量子化部508−0乃至逆量子化部508−2を互いに区別して説明する必要が無い場合、単に、逆量子化部508と称する。さらに、逆直交変換部509−0乃至逆直交変換部509−2を互いに区別して説明する必要が無い場合、単に、逆直交変換部509と称する。
また、演算部510−0乃至演算部510−2を互いに区別して説明する必要が無い場合、単に、演算部510と称する。さらに、ループフィルタ511−0乃至ループフィルタ511−2を互いに区別して説明する必要が無い場合、単に、ループフィルタ511と称する。また、デコードピクチャバッファ512−0乃至デコードピクチャバッファ512−2を互いに区別して説明する必要が無い場合、単に、デコードピクチャバッファ512と称する。さらに、画面内予測部513−0乃至画面内予測部513−2を互いに区別して説明する必要が無い場合、単に、画面内予測部513と称する。また、動き予測・補償部514−0乃至動き予測・補償部514−2を互いに区別して説明する必要が無い場合、単に、動き予測・補償部514と称する。さらに、予測画像選択部515−0乃至予測画像選択部515−2を互いに区別して説明する必要が無い場合、単に、予測画像選択部515と称する。また、レート制御部516−0乃至レート制御部516−2を互いに区別して説明する必要が無い場合、単に、レート制御部516と称する。
A/D変換部501は、A/D変換部101に対応し、基本的にA/D変換部101と同様の処理を行う。画面並べ替えバッファ502は、画面並べ替えバッファ102に対応し、基本的に画面並べ替えバッファ102と同様の処理を行う。演算部503は、演算部103に対応し、基本的に演算部103と同様の処理を行う。直交変換部504は、直交変換部104に対応し、基本的に直交変換部104と同様の処理を行う。量子化部505は、量子化部105に対応し、基本的に量子化部105と同様の処理を行う。可逆符号化部506は、可逆符号化部106に対応し、基本的に可逆符号化部106と同様の処理を行う。蓄積バッファ507は、蓄積バッファ107に対応し、基本的に蓄積バッファ107と同様の処理を行う。
逆量子化部508は、逆量子化部108に対応し、基本的に逆量子化部108と同様の処理を行う。逆直交変換部509は、逆直交変換部109に対応し、基本的に逆直交変換部109と同様の処理を行う。演算部510は、演算部110に対応し、基本的に演算部110と同様の処理を行う。ループフィルタ511は、ループフィルタ111に対応し、基本的にループフィルタ111と同様の処理を行う。デコードピクチャバッファ512は、デコードピクチャバッファ112に対応し、基本的にデコードピクチャバッファ112と同様の処理を行う。
画面内予測部513は、画面内予測部113に対応し、基本的に画面内予測部113と同様の処理を行う。動き予測・補償部514は、動き予測・補償部114に対応し、基本的に動き予測・補償部114と同様の処理を行う。予測画像選択部515は、予測画像選択部115に対応し、基本的に予測画像選択部115と同様の処理を行う。
V0画像符号化装置500−0は、さらに、制御部521、フラグ生成部522、V0選択部531−0、V0テンポラルメモリ532−0、V0動きベクトル圧縮部533−0、V0動きベクトルメモリ534−0、およびV0選択部535−0を有する。
V1画像符号化装置500−1は、さらに、V1選択部531−1、V1テンポラルメモリ532−1、V1動きベクトル圧縮部533−1、V1動きベクトルメモリ534−1、およびV1選択部535−1を有する。
V2画像符号化装置500−2は、さらに、V2選択部531−2、V2テンポラルメモリ532−2、V2動きベクトル圧縮部533−2、およびV2動きベクトルメモリ534−2を有する。
制御部521は、ユーザや他の装置等の外部からの指示や、所定の条件判定結果等に基づいて、IVMP用の動きベクトルを圧縮するか否かを決定する。つまり、制御部521は、図4に示される方法を選択するか、図5に示される方法を選択するかを決定する。圧縮するか否かを決定すると、制御部521は、その旨をフラグ生成部522に供給する。
フラグ生成部522は、制御部521から通知された方法を示すフラグを生成する。フラグ生成部522は、生成したフラグを可逆符号化部506−0に供給する。可逆符号化部506−0は、供給されたフラグをシーケンスパラメータセットに含めて、復号側に伝送させる。
また、制御部521は、決定した方法に従って、V0選択部531−0、V0選択部535−0、V1選択部531−1、V1選択部535−1、および、V2選択部531−2の選択(スイッチング)を制御する。
制御部521が、IVMP用の動きベクトルを圧縮する方法を選択した場合、V0選択部531−0は、制御部521の制御に従って、V0動きベクトル圧縮部533−0を選択し、V0選択部535−0は、制御部521の制御に従って、V0動きベクトルメモリ534−0を選択する。また、V1選択部531−1は、制御部521の制御に従って、V1動きベクトル圧縮部533−1を選択し、V1選択部535−1は、制御部521の制御に従って、V1動きベクトルメモリ534−1を選択する。さらに、V2選択部531−2は、制御部521の制御に従って、V2動きベクトル圧縮部533−2を選択する。
この場合、動き予測・補償部514−0は、動き予測により生成したカレントブロックの圧縮前V0動きベクトル(最高4x4精度)を、V0選択部531−0を介して、V0動きベクトル圧縮部533−0に供給する。V0動きベクトル圧縮部533−0は、動き予測・補償部514−0から供給された圧縮前V0動きベクトルを1/16圧縮し、得られた1/16圧縮後V0動きベクトルをV0動きベクトルメモリ534−0に供給する。V0動きベクトルメモリ534−0は、供給された1/16圧縮後V0動きベクトルを記憶する。V0動きベクトルメモリ534−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部514−0に供給する。また、V0動きベクトルメモリ534−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、V0選択部535−0を介して、動き予測・補償部514−1に供給する。
また、動き予測・補償部514−1は、動き予測により生成したカレントブロックの圧縮前V1動きベクトル(最高4x4精度)を、V1選択部531−1を介して、V1動きベクトル圧縮部533−1に供給する。V1動きベクトル圧縮部533−1は、動き予測・補償部514−1から供給された圧縮前V1動きベクトルを1/16圧縮し、得られた1/16圧縮後V1動きベクトルをV1動きベクトルメモリ534−1に供給する。V1動きベクトルメモリ534−1は、供給された1/16圧縮後V1動きベクトルを記憶する。V1動きベクトルメモリ534−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部514−1に供給する。また、V1動きベクトルメモリ534−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、V1選択部535−1を介して、動き予測・補償部514−2に供給する。
さらに、動き予測・補償部514−2は、動き予測により生成したカレントブロックの圧縮前V2動きベクトル(最高4x4精度)を、V2選択部531−2を介して、V2動きベクトル圧縮部533−2に供給する。V2動きベクトル圧縮部533−2は、動き予測・補償部514−2から供給された圧縮前V2動きベクトルを1/16圧縮し、得られた1/16圧縮後V2動きベクトルをV2動きベクトルメモリ534−2に供給する。V2動きベクトルメモリ534−2は、供給された1/16圧縮後V2動きベクトルを記憶する。V2動きベクトルメモリ534−2は、適宜、記憶している1/16圧縮後V2動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部514−2に供給する。
つまり、この場合、画像符号化装置500は、第1の実施の形態において説明した方法の場合(例えば図5)と同様の構成となる。
制御部521が、IVMP用の動きベクトルを圧縮しない方法を選択した場合、V0選択部531−0およびV0選択部535−0は、制御部521の制御に従って、V0テンポラルメモリ532−0を選択する。また、V1選択部531−1およびV1選択部535−1は、制御部521の制御に従って、V1テンポラルメモリ532−0を選択する。さらに、V2選択部531−2は、制御部521の制御に従って、V2テンポラルメモリ532−2を選択する。
この場合、動き予測・補償部514−0は、動き予測により生成したカレントブロックの圧縮前V0動きベクトル(最高4x4精度)を、V0選択部531−0を介して、V0テンポラルメモリ532−0に供給する。V0テンポラルメモリ532−0は、適宜、記憶している圧縮前V0動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、V0選択部535−0を介して、動き予測・補償部514−1に供給する。また、V0テンポラルメモリ532−0は、適宜、記憶している圧縮前V0動きベクトルを、V0動きベクトル圧縮部533−0に供給する。V0動きベクトル圧縮部533−0は、V0テンポラルメモリ532−0から圧縮前V0動きベクトルを読み出し、1/16圧縮し、得られた1/16圧縮後V0動きベクトルをV0動きベクトルメモリ534−0に供給する。V0動きベクトルメモリ534−0は、供給された1/16圧縮後V0動きベクトルを記憶する。V0動きベクトルメモリ534−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部514−0に供給する。
また、動き予測・補償部514−1は、動き予測により生成したカレントブロックの圧縮前V1動きベクトル(最高4x4精度)を、V1選択部531−1を介して、V1テンポラルメモリ532−1に供給する。V1テンポラルメモリ532−1は、適宜、記憶している圧縮前V1動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、V1選択部535−1を介して、動き予測・補償部514−2に供給する。また、V1テンポラルメモリ532−1は、適宜、記憶している圧縮前V1動きベクトルを、V1動きベクトル圧縮部533−1に供給する。V1動きベクトル圧縮部533−1は、V1テンポラルメモリ532−1から供給された圧縮前V1動きベクトルを1/16圧縮し、得られた1/16圧縮後V1動きベクトルをV1動きベクトルメモリ534−1に供給する。V1動きベクトルメモリ534−1は、供給された1/16圧縮後V1動きベクトルを記憶する。V1動きベクトルメモリ534−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部514−1に供給する。
さらに、動き予測・補償部514−2は、動き予測により生成したカレントブロックの圧縮前V2動きベクトル(最高4x4精度)を、V2選択部531−2を介して、V2テンポラルメモリ532−2に供給する。V2テンポラルメモリ532−2は、適宜、記憶している圧縮前V2動きベクトルを、V2動きベクトル圧縮部533−2に供給する。V2動きベクトル圧縮部533−2は、V2テンポラルメモリ532−2から供給された圧縮前V2動きベクトルを1/16圧縮し、得られた1/16圧縮後V2動きベクトルをV2動きベクトルメモリ534−2に供給する。V2動きベクトルメモリ534−2は、供給された1/16圧縮後V2動きベクトルを記憶する。V2動きベクトルメモリ534−2は、適宜、記憶している1/16圧縮後V2動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き予測・補償部514−2に供給する。
つまり、この場合、画像符号化装置500は、従来の方法の場合(例えば図4)と同様の構成となる。
以上のように、動きベクトルの圧縮方法を制御することができるようにすることにより、符号化・復号に必要な記憶容量の増大を適応的に抑制することができる。
<符号化処理の流れ>
次に、以上のような画像符号化装置500により実行される処理の流れについて説明する。図48のフローチャートを参照して、画像符号化装置500による符号化処理の流れの例を説明する。
符号化処理が開始されると、V0画像符号化装置500−0の制御部521は、ステップS3001において、IVMPの動きベクトルの圧縮の設定(IVMP用の動きベクトルを圧縮するか否かの設定)を行う。ステップS3002において、フラグ生成部522は、ステップS3001の設定に従って、IVMP用の動きベクトルを圧縮するか否かを示す動きベクトル圧縮フラグを生成する。この動きベクトル圧縮フラグは、可逆符号化部506−0において符号化される。ステップS3003において、動きベクトル圧縮フラグの符号化データは、蓄積バッファ507−0に供給されて保持され、所定のタイミングにおいて、復号側に伝送される。
カレントピクチャについて、V0画像符号化装置500−0は、ステップS3004においてV0符号化処理を行い、V1画像符号化装置500−1は、ステップS3005においてV1符号化処理を行い、V2画像符号化装置500−2は、ステップS3006においてV2符号化処理を行う。
ステップS3007において、画像符号化装置500は、全てのピクチャを処理したか否かを判定する。未処理のピクチャが存在すると判定した場合、処理は、ステップS3004に戻り、それ以降の処理を繰り返す。
各ピクチャについて、ステップS3004乃至ステップS3007の処理が繰り返され、ステップS3007において、全てのピクチャが処理されたと判定された場合、符号化処理が終了する。
<V0符号化処理の流れ>
次に、図49および図50のフローチャートを参照して、図48のステップS3004において実行される、ビュー0の符号化を行うV0符号化処理の流れの例を説明する。
図49のステップS3101乃至ステップS3105の各処理は、V0画像符号化装置500−0の各処理部により、図10のステップS1101乃至ステップS1105の各処理と同様に実行される。
ステップS3106において、V0選択部531−0は、制御部521の制御に従って、圧縮前V0動きベクトルを圧縮するか否かを判定する。圧縮すると判定された場合、処理はステップS3107に進む。
ステップS3107において、V0動きベクトル圧縮部533−0は、圧縮前V0動きベクトルを1/16圧縮する。ステップS3108において、V0動きベクトルメモリ534−0は、ステップS3107の処理により生成された1/16圧縮後V0動きベクトルを記憶する。ステップS3108の処理が終了すると、処理はステップS3110に進む。
また、ステップS3106において、圧縮前V0動きベクトルを圧縮しないと判定された場合、処理はステップS3109に進む。ステップS3109において、V0テンポラルメモリ532−0は、圧縮前V0動きベクトルを記憶する。ステップS3109の処理が終了すると、処理は、ステップS3110に進む。
図49のステップS3110乃至ステップS3112、図50のステップS3121乃至ステップS3129の各処理は、画像符号化装置500−0の各処理部により、図10のステップS1108乃至ステップS1119の各処理と同様に行われる。
次に、図50のステップS3130において、V0選択部535−0は、制御部521の制御に従って、IVMPの動きベクトルを圧縮するか否かを判定する。この判定は、図49のステップS3106と同様に行われる。圧縮しないと判定された場合、すなわち、図49のステップS3106においても、動きベクトルを圧縮すると判定されなかった場合、処理はステップS3131に進む。
この場合、図49のステップS3109の処理により圧縮前V0動きベクトルがV0テンポラルメモリ532−0に記憶されている。そこで、ステップS3131において、V0動きベクトル圧縮部533−0は、V0テンポラルメモリ532−0からその圧縮前V0動きベクトルを読み出し、1/16圧縮を行う。ステップS3132において、V0動きベクトルメモリ534−0は、ステップS3131において算出された1/16圧縮後V0動きベクトルを記憶する。
この場合、V0テンポラルメモリ532−0に記憶された圧縮前V0動きベクトルは、動き予測・補償部514−1において、IVMPに利用される。また、V0動きベクトルメモリ534−0に記憶された1/16圧縮後V0動きベクトルは、動き予測・補償部514−0において、TMVPに利用される。
ステップS3132の処理が終了すると、V0符号化処理が終了し、処理は図48に戻る。
また、図50のステップS3130において、動きベクトルを圧縮すると判定された場合、すなわち、図49のステップS3106においても、動きベクトルを圧縮すると判定された場合、V0符号化処理が終了し、処理は図48に戻る。
この場合、V0動きベクトルメモリ534−0に記憶された1/16圧縮後V0動きベクトルは、動き予測・補償部514−0において、TMVPに利用されるとともに、動き予測・補償部514−1において、IVMPに利用される。
なお、図49のステップS3104において実行されるV0インター動き予測処理は、動き予測・補償部514−0により、第1の実施の形態の場合(図11)と同様に行われるのでその説明を省略する。
<V1符号化処理の流れ>
次に、図51および図52のフローチャートを参照して、図48のステップS3005において実行される、ビュー1の符号化を行うV1符号化処理の流れの例を説明する。
ビュー0に対する処理と、ビュー1に対する処理の違いは、主に、インター動き予測処理にある。したがって、図51に示されるように、ビュー1に対するV1符号化処理は、V1画像符号化装置500−1によって、ビュー0に対するV0符号化処理(図49および図50)の場合と基本的に同様に実行される。つまり、図51のステップS3201乃至ステップS3212、並びに、図52のステップS3221乃至ステップS3232の各処理は、図49のステップS3101乃至ステップS3112、並びに、図50のステップS3121乃至ステップS3132の各処理と基本的に同様に実行される。したがって、図51および図52の説明は、図49および図50の説明におけるV0画像符号化装置500−0の各部をV1画像符号化装置500−1の各部に置き換え、図49および図50においてビュー0に対する処理としてした説明を、ビュー1に対する処理に対するものとして置き換えるだけでよいので、その説明は省略する。
<V1インター動き予測処理の流れ>
次に、図51のステップS3204において実行されるV1インター動き予測処理の流れの例を、図53のフローチャートを参照して説明する。
V1インター動き予測処理が開始されると、ステップS3251乃至ステップS3253の各処理は、図13のステップS1231乃至ステップS1233の各処理と基本的に同様に実行される。ただし、この場合のV1インター動き予測処理は、動き予測・補償部514−1が実行する。
また、この場合、IVMP用の動きベクトルを圧縮するか否かが選択される。つまり、図53のステップS3254において、動き予測・補償部514−1は、制御部521の制御(つまり、制御部521により制御されるV0選択部535−0の選択)に従って、動きベクトルを圧縮するか否かを判定する。圧縮すると判定された場合、処理は、ステップS3255に進む。
ステップS3255において、動き予測・補償部514−1は、V0動きベクトルメモリ534−0から取得した1/16圧縮後V0動きベクトルを用いて、IVMP予測動きベクトル候補を決定する。候補が決定されると、処理は、ステップS3257に進む。
また、ステップS3254において、動きベクトルを圧縮しないと判定された場合、処理は、ステップS3256に進む。
ステップS3256において、動き予測・補償部514−1は、V0テンポラルメモリ532−0から取得した圧縮前V0動きベクトルを用いて、IVMP予測動きベクトル候補を決定する。候補が決定されると、処理は、ステップS3257に進む。
図53のステップS3257乃至ステップS3260の各処理は、図13のステップS1235乃至ステップS1238の各処理と同様に実行される。ステップS3260の処理が終了すると、V1インター動き予測処理が終了し、処理は、図51に戻る。
<V2符号化処理の流れ>
次に、図54および図55のフローチャートを参照して、図48のステップS3006において実行される、ビュー2の符号化を行うV2符号化処理の流れの例を説明する。
ビュー2に対する処理は、ビュー1に対する処理と同様に実行される。したがって、図54および図55に示されるように、V2符号化処理は、V2画像符号化装置500−2によって、ビュー1に対するV1符号化処理(図51および図52)の場合と基本的に同様に実行される。つまり、図54のステップS3301乃至ステップS3312、並びに、図55のステップS3321乃至ステップS3332の各処理は、図51のステップS3201乃至ステップS3212、並びに、図52のステップS3221乃至ステップS3232の各処理と基本的に同様に実行される。したがって、図54および図55の説明は、図51および図52の説明におけるV1画像符号化装置500−1の各処理部をV2画像符号化装置500−2の各処理部に置き換え、図51および図52においてビュー1に対する処理との説明を、ビュー2に対する処理に置き換えるだけでよいので、その説明は省略する。
なお、ビュー2は、ビュー0乃至ビュー2の中で最後に処理されるビューであるので、生成されたV2動きベクトルは、IVMPに利用されない。したがって、図54のステップS3307およびステップS3308、または、図55のステップS3331およびステップS3338のいずれか一方を行えばよい。したがって、その他方と、図54のステップS3306およびステップS3330の判定処理は、省略することができる。
<V2インター動き予測処理の流れ>
次に、図54のステップS3304において実行されるV2インター動き予測処理の流れの例を、図56のフローチャートを参照して説明する。
V2インター動き予測処理が開始されると、ステップS3351乃至ステップS3353の各処理は、図15のステップS1331乃至ステップS1333の各処理と基本的に同様に実行される。ただし、この場合のV2インター動き予測処理は、動き予測・補償部514−2が実行する。
また、この場合、IVMP用の動きベクトルを圧縮するか否かが選択される。つまり、図56のステップS3354において、動き予測・補償部514−2は、制御部521の制御(つまり、制御部521により制御されるV1選択部535−1の選択)に従って、動きベクトルを圧縮するか否かを判定する。圧縮すると判定された場合、処理は、ステップS3355に進む。
ステップS3355において、動き予測・補償部514−2は、V1動きベクトルメモリ534−1から取得した1/16圧縮後V1動きベクトルを用いて、IVMP予測動きベクトル候補を決定する。候補が決定されると、処理は、ステップS3357に進む。
また、ステップS3354において、動きベクトルを圧縮しないと判定された場合、処理は、ステップS3356に進む。
ステップS3356において、動き予測・補償部514−2は、V1テンポラルメモリ532−1から取得した圧縮前V1動きベクトルを用いて、IVMP予測動きベクトル候補を決定する。候補が決定されると、処理は、ステップS3357に進む。
図56のステップS3357乃至ステップS3360の各処理は、図15のステップS1335乃至ステップS1338の各処理と同様に実行される。ステップS3360の処理が終了すると、V2インター動き予測処理が終了し、処理は、図54に戻る。
以上のように各処理を実行することにより、画像符号化装置500は、より適応的に、IVMP用の動きベクトルのために必要なメモリ容量を低減させることができ、符号化・復号に必要な記憶容量の増大を、より適応的に抑制することができる。
<画像復号装置>
次に、以上のように符号化された符号化データ(符号化ストリーム)の復号について説明する。図57は、V0画像復号装置の主な構成例を示すブロック図である。図58は、V1画像復号装置の主な構成例を示すブロック図である。図59は、V2画像復号装置の主な構成例を示すブロック図である。
図示せぬ画像復号装置600は、画像符号化装置500により符号化された、図2に示される多視点画像のような複数レイヤよりなる動画像の符号化データを、その符号化方法に対応する復号方法で復号する。この画像復号装置600は、多視点画像の各ビューの符号化データを復号するために、図57のV0画像復号装置600−0、図58のV1画像復号装置600−1、および図59のV2画像復号装置600−2を有する。V0画像復号装置600−0は、V0画像符号化装置500−0により符号化されたビュー0の画像の符号化データを復号する。V1画像復号装置600−1は、V1画像符号化装置500−1により符号化されたビュー1の画像の符号化データを復号する。V2画像復号装置600−2は、V2画像符号化装置500−2により符号化されたビュー2の画像の符号化データを復号する。
図57に示されるように、V0画像復号装置600−0は、蓄積バッファ601−0、可逆復号部602−0、逆量子化部603−0、逆直交変換部604−0、演算部605−0、ループフィルタ606−0、画面並べ替えバッファ607−0、およびD/A変換部608−0を有する。また、V0画像復号装置600−0は、デコードピクチャバッファ609−0、画面内予測部610−0、動き補償部611−0、および選択部612−0を有する。
また、図58に示されるように、V1画像復号装置600−1は、蓄積バッファ601−1、可逆復号部602−1、逆量子化部603−1、逆直交変換部604−1、演算部605−1、ループフィルタ606−1、画面並べ替えバッファ607−1、およびD/A変換部608−1を有する。また、V1画像復号装置600−1は、デコードピクチャバッファ609−1、画面内予測部610−1、動き補償部611−1、および選択部612−1を有する。
さらに、図59に示されるように、V2画像復号装置600−2は、蓄積バッファ601−2、可逆復号部602−2、逆量子化部603−2、逆直交変換部604−2、演算部605−2、ループフィルタ606−2、画面並べ替えバッファ607−2、およびD/A変換部608−2を有する。また、V2画像復号装置600−2は、デコードピクチャバッファ609−2、画面内予測部610−2、動き補償部611−2、および選択部612−2を有する。
以下において、蓄積バッファ601−0乃至蓄積バッファ601−2を互いに区別して説明する必要が無い場合、単に、蓄積バッファ601と称する。また、可逆復号部602−0乃至可逆復号部602−2を互いに区別して説明する必要が無い場合、単に、可逆復号部602と称する。さらに、逆量子化部603−0乃至逆量子化部603−2を互いに区別して説明する必要が無い場合、単に、逆量子化部603と称する。また、逆直交変換部604−0乃至逆直交変換部604−2を互いに区別して説明する必要が無い場合、単に、逆直交変換部604と称する。さらに、演算部605−0乃至演算部605−2を互いに区別して説明する必要が無い場合、単に、演算部605と称する。
また、ループフィルタ606−0乃至ループフィルタ606−2を互いに区別して説明する必要が無い場合、単に、ループフィルタ606と称する。さらに、画面並べ替えバッファ607−0乃至画面並べ替えバッファ607−2を互いに区別して説明する必要が無い場合、単に、画面並べ替えバッファ607と称する。また、D/A変換部608−0乃至D/A変換部608−2を互いに区別して説明する必要が無い場合、単に、D/A変換部608と称する。さらに、デコードピクチャバッファ609−0乃至デコードピクチャバッファ609−2を互いに区別して説明する必要が無い場合、単に、デコードピクチャバッファ609と称する。
また、画面内予測部610−0乃至画面内予測部610−2を互いに区別して説明する必要が無い場合、単に、画面内予測部610と称する。さらに、動き補償部611−0乃至動き補償部611−2を互いに区別して説明する必要が無い場合、単に、動き補償部611と称する。また、選択部612−0乃至選択部612−2を互いに区別して説明する必要が無い場合、単に、選択部612と称する。
蓄積バッファ601は、蓄積バッファ201に対応し、基本的に蓄積バッファ201と同様の処理を行う。可逆復号部602は、可逆復号部202に対応し、基本的に可逆復号部202と同様の処理を行う。逆量子化部603は、逆量子化部203に対応し、基本的に逆量子化部203と同様の処理を行う。逆直交変換部604は、逆直交変換部204に対応し、基本的に逆直交変換部204と同様の処理を行う。演算部605は、演算部205に対応し、基本的に演算部205と同様の処理を行う。
ループフィルタ606は、ループフィルタ206に対応し、基本的にループフィルタ206と同様の処理を行う。画面並べ替えバッファ607は、画面並べ替えバッファ207に対応し、基本的に画面並べ替えバッファ207と同様の処理を行う。D/A変換部608は、D/A変換部208に対応し、基本的にD/A変換部208と同様の処理を行う。デコードピクチャバッファ609は、デコードピクチャバッファ209に対応し、基本的にデコードピクチャバッファ209と同様の処理を行う。
画面内予測部610は、画面内予測部210に対応し、基本的に画面内予測部210と同様の処理を行う。動き補償部611は、動き補償部211に対応し、基本的に動き補償部211と同様の処理を行う。選択部612は、選択部212に対応し、基本的に選択部212と同様の処理を行う。
V0画像復号装置600−0は、さらに、制御部621、V0選択部631−0、V0テンポラルメモリ632−0、V0動きベクトル圧縮部633−0、V0動きベクトルメモリ634−0、およびV0選択部635−0を有する。
V1画像復号装置600−1は、さらに、V1選択部631−1、V1テンポラルメモリ632−1、V1動きベクトル圧縮部633−1、V1動きベクトルメモリ634−1、およびV1選択部635−1を有する。
V2画像復号装置600−2は、さらに、V2選択部631−2、V2テンポラルメモリ632−2、V2動きベクトル圧縮部633−2、およびV2動きベクトルメモリ634−2を有する。
可逆復号部602−0は、符号化側から供給された、IVMP用の動きベクトルを圧縮するか否かを示すフラグを、例えばシーケンスパラメータセットから抽出し、制御部621に供給する。
制御部621は、可逆復号部602から取得したフラグの値に基づいて、すなわち、符号化側において採用された方法(制御部521によって決定された方法)に従って、V0選択部631−0、V0選択部635−0、V1選択部631−1、V1選択部635−1、および、V2選択部631−2の選択(スイッチング)を制御する。
IVMP用の動きベクトルを圧縮する場合、V0選択部631−0は、制御部621の制御に従って、V0動きベクトル圧縮部633−0を選択し、V0選択部635−0は、制御部621の制御に従って、V0動きベクトルメモリ634−0を選択する。また、V1選択部631−1は、制御部621の制御に従って、V1動きベクトル圧縮部633−1を選択し、V1選択部635−1は、制御部621の制御に従って、V1動きベクトルメモリ634−1を選択する。さらに、V2選択部631−2は、制御部621の制御に従って、V2動きベクトル圧縮部633−2を選択する。
この場合、動き補償部611−0は、再構築したカレントブロックの圧縮前V0動きベクトル(最高4x4精度)を、V0選択部631−0を介して、V0動きベクトル圧縮部633−0に供給する。V0動きベクトル圧縮部633−0は、動き補償部611−0から供給された圧縮前V0動きベクトルを1/16圧縮し、得られた1/16圧縮後V0動きベクトルをV0動きベクトルメモリ634−0に供給する。V0動きベクトルメモリ634−0は、供給された1/16圧縮後V0動きベクトルを記憶する。V0動きベクトルメモリ634−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部611−0に供給する。また、V0動きベクトルメモリ634−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、V0選択部635−0を介して、動き補償部611−1に供給する。
また、動き補償部611−1は、再構築したカレントブロックの圧縮前V1動きベクトル(最高4x4精度)を、V1選択部631−1を介して、V1動きベクトル圧縮部633−1に供給する。V1動きベクトル圧縮部633−1は、動き補償部611−1から供給された圧縮前V1動きベクトルを1/16圧縮し、得られた1/16圧縮後V1動きベクトルをV1動きベクトルメモリ634−1に供給する。V1動きベクトルメモリ634−1は、供給された1/16圧縮後V1動きベクトルを記憶する。V1動きベクトルメモリ634−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部611−1に供給する。また、V1動きベクトルメモリ634−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、V1選択部635−1を介して、動き補償部611−2に供給する。
さらに、動き補償部611−2は、動き予測により生成したカレントブロックの圧縮前V2動きベクトル(最高4x4精度)を、V2選択部631−2を介して、V2動きベクトル圧縮部633−2に供給する。V2動きベクトル圧縮部633−2は、動き補償部611−2から供給された圧縮前V2動きベクトルを1/16圧縮し、得られた1/16圧縮後V2動きベクトルをV2動きベクトルメモリ634−2に供給する。V2動きベクトルメモリ634−2は、供給された1/16圧縮後V2動きベクトルを記憶する。V2動きベクトルメモリ634−2は、適宜、記憶している1/16圧縮後V2動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部611−2に供給する。
つまり、この場合、画像復号装置600は、第1の実施の形態において説明した方法の場合(例えば図5)と同様の構成となる。
IVMP用の動きベクトルが圧縮されない場合、V0選択部631−0およびV0選択部635−0は、制御部621の制御に従って、V0テンポラルメモリ632−0を選択する。また、V1選択部631−1およびV1選択部635−1は、制御部621の制御に従って、V1テンポラルメモリ632−0を選択する。さらに、V2選択部631−2は、制御部621の制御に従って、V2テンポラルメモリ632−2を選択する。
この場合、動き補償部611−0は、動き予測により生成したカレントブロックの圧縮前V0動きベクトル(最高4x4精度)を、V0選択部631−0を介して、V0テンポラルメモリ632−0に供給する。V0テンポラルメモリ632−0は、適宜、記憶している圧縮前V0動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、V0選択部635−0を介して、動き補償部611−1に供給する。また、V0テンポラルメモリ632−0は、適宜、記憶している圧縮前V0動きベクトルを、V0動きベクトル圧縮部633−0に供給する。V0動きベクトル圧縮部633−0は、V0テンポラルメモリ632−0から圧縮前V0動きベクトルを読み出し、1/16圧縮し、得られた1/16圧縮後V0動きベクトルをV0動きベクトルメモリ634−0に供給する。V0動きベクトルメモリ634−0は、供給された1/16圧縮後V0動きベクトルを記憶する。V0動きベクトルメモリ634−0は、適宜、記憶している1/16圧縮後V0動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部611−0に供給する。
また、動き補償部611−1は、動き予測により生成したカレントブロックの圧縮前V1動きベクトル(最高4x4精度)を、V1選択部631−1を介して、V1テンポラルメモリ632−1に供給する。V1テンポラルメモリ632−1は、適宜、記憶している圧縮前V1動きベクトルを、ビュー間的に周辺のブロックの動きベクトルとして、V1選択部635−1を介して、動き補償部611−2に供給する。また、V1テンポラルメモリ632−1は、適宜、記憶している圧縮前V1動きベクトルを、V1動きベクトル圧縮部633−1に供給する。V1動きベクトル圧縮部633−1は、V1テンポラルメモリ632−1から供給された圧縮前V1動きベクトルを1/16圧縮し、得られた1/16圧縮後V1動きベクトルをV1動きベクトルメモリ634−1に供給する。V1動きベクトルメモリ634−1は、供給された1/16圧縮後V1動きベクトルを記憶する。V1動きベクトルメモリ634−1は、適宜、記憶している1/16圧縮後V1動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部611−1に供給する。
さらに、動き補償部611−2は、動き予測により生成したカレントブロックの圧縮前V2動きベクトル(最高4x4精度)を、V2選択部631−2を介して、V2テンポラルメモリ632−2に供給する。V2テンポラルメモリ632−2は、適宜、記憶している圧縮前V2動きベクトルを、V2動きベクトル圧縮部633−2に供給する。V2動きベクトル圧縮部633−2は、V2テンポラルメモリ632−2から供給された圧縮前V2動きベクトルを1/16圧縮し、得られた1/16圧縮後V2動きベクトルをV2動きベクトルメモリ634−2に供給する。V2動きベクトルメモリ634−2は、供給された1/16圧縮後V2動きベクトルを記憶する。V2動きベクトルメモリ634−2は、適宜、記憶している1/16圧縮後V2動きベクトルを、時間的に周辺のブロックの動きベクトルとして、動き補償部611−2に供給する。
つまり、この場合、画像復号装置600は、従来の方法の場合(例えば図4)と同様の構成となる。
以上のように、動きベクトルの圧縮方法を制御することができるようにすることにより、符号化・復号に必要な記憶容量の増大を適応的に抑制することができる。
<復号処理の流れ>
次に、以上のような画像復号装置600により実行される処理の流れについて説明する。図60のフローチャートを参照して、画像復号装置600による復号処理の流れの例を説明する。
復号処理が開始されると、制御部621は、ステップS3401において、符号化側から伝送された、IVMP用の動きベクトルを圧縮するか否かを示す動きベクトル圧縮フラグを受け取る。
カレントピクチャについて、V0画像復号装置600−0は、ステップS3402においてV0復号処理を行い、V1画像復号装置600−1は、ステップS3403においてV1復号処理を行い、V2画像復号装置600−2は、ステップS3404においてV2復号処理を行う。
ステップS3405において、画像復号装置600は、全てのピクチャを処理したか否かを判定し、未処理のピクチャが存在すると判定した場合、処理をステップS3402に戻し、それ以降の処理を繰り返す。
各ピクチャについて、ステップS3402乃至ステップS3405の処理が繰り返され、ステップS3405において、全てのピクチャが処理されたと判定された場合、画像復号装置600は、復号処理を終了する。
<V0復号処理の流れ>
次に、図61および図62のフローチャートを参照して、図60のステップS3402において実行される、ビュー0の復号を行うV0復号処理の流れの例を説明する。
ステップS3501乃至ステップS3508の各処理は、V0画像復号装置600−0の各処理部により、図20のステップS1501乃至ステップS1508の各処理と同様に行われる。
ステップS3509において、V0選択部631−0は、制御部621の制御に従って、圧縮前V0動きベクトルを圧縮するか否かを判定する。圧縮すると判定された場合、処理はステップS3510に進む。
ステップS3510において、V0動きベクトル圧縮部633−0は、圧縮前V0動きベクトルを1/16圧縮する。ステップS3511において、V0動きベクトルメモリ634−0は、ステップS3510の処理により生成された1/16圧縮後V0動きベクトルを記憶する。ステップS3511の処理が終了すると、処理は図62のステップS3521に進む。
また、図61のステップS3509において、圧縮前V0動きベクトルを圧縮しないと判定された場合、処理はステップS3512に進む。ステップS3512において、V0テンポラルメモリ632−0は、圧縮前V0動きベクトルを記憶する。ステップS3512の処理が終了すると、処理は、図62のステップS3521に進む。
図62のステップS3521乃至ステップS3525の各処理は、画像復号装置600−0の各処理部により、図20のステップS1511乃至ステップS1515の各処理と同様に行われる。
図62のステップS3509において、V0選択部635−0は、制御部621の制御に従って、IVMPの動きベクトルを圧縮するか否かを判定する。この判定は、図61のステップS3509と同様に行われる。圧縮しないと判定された場合、すなわち、図61のステップS3509においても、動きベクトルを圧縮すると判定されなかった場合、処理は図62のステップS3527に進む。
この場合、図61のステップS3512の処理により圧縮前V0動きベクトルがV0テンポラルメモリ632−0に記憶されている。そこで、ステップS3527において、V0動きベクトル圧縮部633−0は、V0テンポラルメモリ632−0からその圧縮前V0動きベクトルを読み出し、1/16圧縮を行う。ステップS3528において、V0動きベクトルメモリ634−0は、ステップS3527において算出された1/16圧縮後V0動きベクトルを記憶する。
この場合、V0テンポラルメモリ632−0に記憶された圧縮前V0動きベクトルは、動き補償部611−1において、IVMPに利用される。また、V0動きベクトルメモリ634−0に記憶された1/16圧縮後V0動きベクトルは、動き補償部611−0において、TMVPに利用される。
ステップS3528の処理が終了すると、V0復号処理が終了し、処理は図60に戻る。
また、図62のステップS3526において、動きベクトルを圧縮すると判定された場合、すなわち、図61のステップS3509においても、動きベクトルを圧縮すると判定された場合、V0符号化処理が終了し、処理は図60に戻る。
この場合、V0動きベクトルメモリ634−0に記憶された1/16圧縮後V0動きベクトルは、動き補償部611−0において、TMVPに利用されるとともに、動き補償部611−1において、IVMPに利用される。
なお、図61のステップS3506において実行されるV0動き補償処理は、動き補償部611−0により、第1の実施の形態の場合(図21)と同様に行われるのでその説明を省略する。
<V1復号処理の流れ>
次に、図63および図64のフローチャートを参照して、図60のステップS3403において実行される、ビュー1の符号化データを復号するV1復号処理の流れの例を説明する。
ビュー0に対する処理と、ビュー1に対する処理の違いは、主に、動き補償処理にある。したがって、図63および図64に示されるように、ビュー1に対するV1復号処理は、V1画像復号装置600−1によって、ビュー0に対するV0復号処理(図61および図62)の場合と基本的に同様に実行される。つまり、図63のステップS3601乃至ステップS3612、並びに、図64のステップS3621乃至ステップS3628の各処理は、図61のステップS3501乃至ステップS3512、並びに、図62のステップS3521乃至ステップS3528の各処理と基本的に同様に実行される。したがって、図63および図64の説明は、図61および図62の説明におけるV0画像復号装置600−0の各部をV1画像復号装置600−1の各部に置き換え、図61および図62においてビュー0に対する処理としてした説明を、ビュー1に対する処理に対するものとして置き換えるだけでよいので、その説明は省略する。
<V1動き補償処理の流れ>
次に、図63のステップS3606において実行されるV1動き補償処理の流れの例を、図65のフローチャートを参照して説明する。
V1動き補償処理が開始されると、ステップS3641において、動き補償部611−1は、差分動き情報(差分動きベクトル)を取得する。ステップS3642において、動き補償部611−1は、インター予測情報に基づいて、予測動きベクトルのモードが空間予測であるか否かを判定する。空間予測であると判定された場合、処理は、ステップS3643に進む。
ステップS3643において、動き補償部611−1は、ピクチャ内の圧縮前V1動きベクトル(カレントブロックに対して空間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。予測動きベクトルが生成されると、処理は、ステップS3649に進む。
また、ステップS3642において、空間予測でないと判定された場合、処理は、ステップS3644に進む。
ビュー1の場合、最初に処理されるビューではないので、予測動きベクトルのモードがビュー間予測(IVMP)である可能性もある。
ステップS3644において、動き補償部611−1は、インター予測情報に基づいて、予測動きベクトルのモードが時間予測であるか否かを判定する。時間予測であると判定された場合、処理は、ステップS3645に進む。
ステップS3645において、動き補償部611−1は、他のピクチャ内の1/16圧縮後V1動きベクトル(カレントブロックに対して空間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。予測動きベクトルが生成されると、処理は、ステップS3649に進む。
また、ステップS3644において、時間予測でないと判定された場合、処理は、ステップS3646に進む。
本実施の形態の場合、符号化側においてIVMP用の動きベクトルが圧縮される場合とされていない場合がある。
ステップS3646において、動き補償部611−1は、制御部621の制御に基づいて、動きベクトルを圧縮するか否かを判定する。圧縮しないと判定された場合、処理は、ステップS3647に進む。
ステップS3647において、動き補償部611−1は、圧縮前V0動きベクトルを用いて予測動きベクトルを生成する。予測動きベクトルが生成されると、処理は、ステップS3649に進む。
また、ステップS3646において、圧縮すると判定された場合、処理は、ステップS3648に進む。
ステップS3648において、動き補償部611−1は、1/16圧縮後V0動きベクトルを用いて予測動きベクトルを生成する。予測動きベクトルが生成されると、処理は、ステップS3649に進む。
ステップS3649において、動き補償部611−1は、ステップS3643、ステップS3645、ステップS3647、若しくは、ステップS3648において生成された予測動きベクトルを用いて、動きベクトルを再構築する。
ステップS3650において、動き補償部611−1は、動き補償を行い、予測画像を生成する。なお、動き補償部611−1は、ステップS3649において再構築された動きベクトルを記憶する。ステップS3650の処理が終了すると、V1動き補償処理が終了し、処理は、図63に戻る。
<V2復号処理の流れ>
次に、図66および図67のフローチャートを参照して、図60のステップS3404において実行される、ビュー2の符号化データを復号するV2復号処理の流れの例を説明する。
ビュー0に対する処理と、ビュー2に対する処理の違いは、主に、動き補償処理にある。したがって、図66および図67に示されるように、ビュー2に対するV2復号処理は、V2画像復号装置600−2によって、ビュー0に対するV0復号処理(図61および図62)の場合と基本的に同様に実行される。つまり、図66のステップS3701乃至ステップS3712、並びに、図67のステップS3721乃至ステップS3728の各処理は、図61のステップS3501乃至ステップS3512、並びに、図62のステップS3521乃至ステップS3528の各処理と基本的に同様に実行される。したがって、図66および図67の説明は、図61および図62の説明におけるV0画像復号装置600−0の各部をV2画像復号装置600−2の各部に置き換え、図61および図62においてビュー0に対する処理としてした説明を、ビュー2に対する処理に対するものとして置き換えるだけでよいので、その説明は省略する。
<V2動き補償処理の流れ>
次に、図66のステップS3706において実行されるV2動き補償処理の流れの例を、図68のフローチャートを参照して説明する。
図68に示されるように、V2動き補償処理は、V1動き補償処理(図65)と基本的に同様に行われる。つまり、図68のステップS3741乃至ステップS3750の各処理は、それぞれ、図65のステップS3631乃至ステップS3650の各処理と基本的に同様に実行される。ただし、V1動き補償処理は、動き補償部611−1が実行するのに対して、V2動き補償処理は、動き補償部611−2が実行する。
また、V2動き補償処理の処理対象は、ビュー1の画像ではなくビュー2の画像である。したがって、ステップS3743において、動き補償部611−2は、ピクチャ内の圧縮前V2動きベクトル(カレントブロックに対して空間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。
また、ステップS3745において、動き補償部611−2は、他のピクチャの1/16圧縮後V2動きベクトル(カレントブロックに対して時間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。
さらに、ステップS3747において、動き補償部611−2は、圧縮前V1動きベクトル(カレントブロックに対してビュー間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。
また、ステップS3748において、動き補償部611−2は、1/16圧縮後V1動きベクトル(カレントブロックに対してビュー間的に周辺のブロックの動きベクトル)を用いて予測動きベクトルを生成する。
ステップS3750の処理が終了すると、V2動き補償処理が終了し、処理は、図66に戻る。
以上のように各処理を実行することにより、画像復号装置600は、IVMP用の動きベクトルのために必要なメモリ容量を、適応的に低減させることができ、符号化・復号に必要な記憶容量の増大を、適応的に抑制することができる。
<4.第4の実施の形態>
<階層画像点符号化・階層画像復号への適用>
以上においては、多視点画像の符号化・復号について説明したが、レイヤは、視点(ビュー)に限らない。例えば、解像度、コンポーネント、ビット深度等のスケーラブルな符号化・復号における階層も、このレイヤに含まれる。本技術は、複数レイヤの符号化・復号であれば、どのような符号化・復号にも適用することができる。例えば、上述した一連の処理は、階層画像符号化・階層画像復号に適用することができる。図69は、階層画像符号化方式の一例を示す。
階層画像符号化(スケーラブル符号化)は、画像データを、所定のパラメータについてスケーラビリティ(scalability)機能を有するように、画像を複数レイヤ化(階層化)し、レイヤ毎に符号化するものである。階層画像復号は、その階層画像符号化(スケーラブル復号)は、その階層画像符号化に対応する復号である。
図69に示されるように、画像の階層化においては、スケーラビリティ機能を有する所定のパラメータを基準として1の画像が複数の画像(レイヤ)に分割される。つまり、階層化された画像(階層画像)は、その所定のパラメータの値が互いに異なる複数の階層(レイヤ)の画像を含む。この階層画像の複数のレイヤは、他のレイヤの画像を利用せずに自身のレイヤの画像のみを用いて符号化・復号を行うベースレイヤと、他のレイヤの画像を利用して符号化・復号を行うノンベースレイヤ(エンハンスメントレイヤとも称する)とによりなる。ノンベースレイヤは、ベースレイヤの画像を利用するようにしても良いし、他のノンベースレイヤの画像を利用するようにしてもよい。
一般的に、ノンベースレイヤは、冗長性が低減されるように、自身の画像と、他のレイヤの画像との差分画像のデータ(差分データ)により構成される。例えば、1の画像をベースレイヤとノンベースレイヤ(エンハンスメントレイヤとも称する)に2階層化した場合、ベースレイヤのデータのみで元の画像よりも低品質な画像が得られ、ベースレイヤのデータとノンベースレイヤのデータを合成することで、元の画像(すなわち高品質な画像)が得られる。
このように画像を階層化することにより、状況に応じて多様な品質の画像を容易に得ることができる。例えば携帯電話のような、処理能力の低い端末に対しては、ベースレイヤ(base layer)のみの画像圧縮情報を伝送し、空間時間解像度の低い、或いは、画質の良くない動画像を再生し、テレビやパーソナルコンピュータのような、処理能力の高い端末に対しては、ベースレイヤ(base layer)に加えて、エンハンスメントレイヤ(enhancement layer)の画像圧縮情報を伝送し、空間時間解像度の高い、或いは、画質の高い動画像を再生するといったように、トランスコード処理を行うことなく、端末やネットワークの能力に応じた画像圧縮情報を、サーバから送信することが可能となる。
このようなスケーラビリティ性を持たせるパラメータとして、例えば、図70に示されるような、空間解像度がある(spatial scalability)。このスペーシャルスケーラビリティ(spatial scalability)の場合、レイヤ毎に解像度が異なる。つまり、図70に示されるように、各ピクチャが、元の画像より空間的に低解像度のベースレイヤと、ベースレイヤの画像と合成することにより元の画像(元の空間解像度)が得られるエンハンスメントレイヤの2階層に階層化される。もちろん、この階層数は一例であり、任意の階層数に階層化することができる。
また、このようなスケーラビリティ性を持たせるパラメータとして、他には、例えば、図71に示されるような、時間解像度がある(temporal scalability)。このテンポラルスケーラビリティ(temporal scalability)の場合、レイヤ毎にフレームレートが異なる。つまり、この場合、図3に示されるように、互いに異なるフレームレートのレイヤに階層化されており、低フレームレートのレイヤに、高フレームレートのレイヤを加えることで、より高フレームレートの動画像を得ることができ、全てのレイヤを加えることで、元の動画像(元のフレームレート)を得ることができる。この階層数は一例であり、任意の階層数に階層化することができる。
また、このようなスケーラビリティ性を持たせるパラメータとして、他には、例えば、信号雑音比(SNR(Signal to Noise ratio))がある(SNR scalability)。このSNRスケーラビリティ(SNR scalability)の場合、レイヤ毎にSN比が異なる。つまり、図72に示されるように、各ピクチャが、元の画像より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)がある。
このような階層画像符号化・復号において、各階層の画像を符号化・復号する際、上述した多視点符号化・復号の場合と同様に、動きベクトルの予測にレイヤ間の相関性の高さを利用することができる。つまり、他のレイヤの処理済み(符号化済み若しくは復号済み)の動きベクトルを用いて予測動きベクトルの生成若しくは再構築を行うことができる。
その場合、あるレイヤの符号化・復号において得られた動きベクトルを、次以降に処理されるレイヤの符号化・復号において利用することができるように保持する必要がある。
そこで、そのためのメモリ容量の増大を抑制するために、他のレイヤの符号化・復号において利用されるカレントレイヤの動きベクトルを圧縮するようにしてもよい。この圧縮の具体的な方法は、多視点符号化・復号の説明において上述したのと同様である。
例えば、図5のように動きベクトルを圧縮して(間引いて)参照するようにするためには、画像符号化装置は、図6乃至図8のような構成を有し、図9乃至図15のフローチャートのような各処理を実行するようにすればよい。また、画像復号装置は、図16乃至図18のような構成を有し、図19乃至図25のフローチャートのような各処理を実行するようにすればよい。
また、例えば、図26のように動きベクトルを圧縮して(間引いて)参照するようにするためには、画像符号化装置は、図27乃至図29のような構成を有し、図30乃至図34のフローチャートのような各処理を実行するようにすればよい。また、画像復号装置は、図35乃至図37のような構成を有し、図38乃至図42のフローチャートのような各処理を実行するようにすればよい。
さらに、例えば、図43のように動きベクトルを圧縮して(間引いて)参照するようにするためには、画像符号化装置は、図45乃至図47のような構成を有し、図48乃至図56のフローチャートのような各処理を実行するようにすればよい。また、画像復号装置は、図57乃至図59のような構成を有し、図60乃至図68のフローチャートのような各処理を実行するようにすればよい。
また、このような階層画像符号化・復号において、例えば、レイヤ1(layer_id=1)の符号化・復号において、レイヤ0(layer_id=0)の動きベクトルを利用する。このとき、レイヤ0の動きベクトルの精度は、圧縮しなくても、レイヤ1の動きベクトルの精度よりも低い。しかしながら、レイヤ0の動きベクトルをさらに圧縮することにより、その動きベクトルを保持するのに必要な記憶容量をより低減させることができる。
なお、このようなレイヤ間の動きベクトルの精度の比を考慮して圧縮率を決定するようにしてもよい。例えば、所定の圧縮率を基準圧縮率として定め、レイヤ間の動きベクトルの精度の比(レイヤ間の解像度の比)に応じて実際の圧縮率を決めるようにしてもよい。例えば、レイヤ1のIVMPに用いるレイヤ0の動きベクトルの基準圧縮率が1/16であるとする。このとき、レイヤ0の解像度がレイヤ1の1/4であるならば、実際の圧縮率は1/4に設定され、レイヤ0の解像度がレイヤ1の1/8であるならば、実際の圧縮率は1/2に設定されるようにしてもよい。このようにすることにより、所望の圧縮率(基準圧縮率)を実現することができ、符号化・復号に必要な記憶容量の増大を十分に抑制することができる。
また、例えば、図73のAに示されるように、ベースレイヤ(BL)の動きベクトルを1/4に間引くようにすると、その動きベクトルの予測精度の低減が大き過ぎて、エンハンスメントレイヤ(EL)において符号化効率が低減する恐れがある。しかしながら、逆に、図73のBに示されるように、ベースレイヤ(BL)の動きベクトルを間引かずにエンハンスメントレイヤに提供するようにすると、符号化・復号に必要な記憶容量が増大してしまう恐れがある。
そこで、例えば、図74に示されるように、動きベクトルを、ベースレイヤからエンハンスメントレイヤに提供する際に1/2に間引き(圧縮し)、エンハンスメントレイヤからベースレイヤに戻す際にさらに1/2に間引く(圧縮する)ようにしてもよい。つまり、階層画像符号化・復号の場合も、図26等を参照して説明した多視点画像符号化・復号の場合と同様の方法で動きベクトルを間引く(圧縮する)ことができる。
以上のように、画像の複数レイヤ化は、任意のパラメータに基づいて行うことができ、本技術は、そのパラメータに依らず、複数レイヤの画像の符号化・復号に適用することができる。すなわち、階層画像符号化・階層画像復号に本技術を適用する場合も、必要な記憶容量の増大を抑制することができる。
<その他>
以上においては、レイヤ数が3(0乃至2)の場合を例に説明したが、レイヤ数は任意であり、2レイヤであってもよいし、4レイヤ以上であってもよい。
また、以上においては、符号化における動き予測・動き補償、若しくは、復号における動き補償において、1つ前に処理されるレイヤの動きベクトルを利用するように説明したが、これに限らず、任意の他のレイヤの動きベクトルを利用することができる。
例えば、全てのノンベースレイヤの符号化・復号において、ベースレイヤの動きベクトルを利用するようにしてもよい。また、複数のノンベースレイヤが1のノンベースレイヤの動きベクトルを利用するようにしてもよい。
<5.概要2>
<イントラ予測>
ところで、HEVCにおいては、AVC等と同様に、カレントブロックの周辺画素を用いて予測画像を生成するイントラ予測が規定されている。
AVCではイントラ4x4予測、イントラ8x8予測、並びに、イントラ16x16予測が存在するのに対し、HEVCでは、4x4乃至64x64画素ブロックについて、図75に示されるような、アンギュラー(Angular)予測が適用される。
すなわち、AVCでは、図75のAに示されるように、8方向+直流予測によりイントラ予測処理が行われるのに対し、HEVCでは図75のBに示されるように、32方向+直流予測によりイントラ予測が行なわれる。これにより、予測精度が向上する。
また、HEVCにおいては、図76に示されるような、プレイナー(Planar)予測が規定されている。
プレイナー(Planar)予測処理においては、処理対象であるカレントブロックの周辺画素(既に符号化済みの画素)から、バイリニアインターポレーション(bi-linear interpolation)により、カレントブロックに含まれる予測画素が生成される。プレイナー(Planar)予測処理は、グラデーション(gradation)のあるような領域の符号化効率を向上させることができる。
HEVCにおいては、図77に示されるように、3つのモストプロバブルモード(MostProbableMode)を用いたイントラ予測モードの符号化処理が行われる。すなわち、カレントブロックの上に隣接する周辺ブロックのイントラ予測モード(Above)、カレントブロックの左に隣接する周辺ブロックのイントラ予測モード(Left)、および、それらの周辺ブロック(AboveおよびLeft)におけるイントラ予測モードの組み合わせにより決定されるモードを、イントラ予測モードの候補(候補モードとも称する)とし、この3つの候補モードの中から、最適なものをカレントブロックのイントラ予測モードとして採用する。
カレントブロックの予測モードと、モストプロバブルモード(MostProbableMode)のどれかが同一である場合には、そのインデックス(index)番号を伝送する。そうでない場合には、予測ブロックのモード情報を、5ビットの固定長により伝送する。
<イントラ予測におけるフィルタ処理>
図78は、HEVCにおいて規定されているMDIS(Mode Dependent Intra Smoothing)を説明する図である。
AVCの場合、イントラ8x8予測モードにおいて、カレントブロックの周辺画素に対して、図78に示されるように、[1 2 1]/4フィルタ処理が行われる。これに対して、HEVCにおいては、ブロックサイズと予測モードに応じて、このフィルタ処理のオン・オフ(on/off)(すなわち、このフィルタ処理を適用するか否か)が決定される。
より具体的には、カレントブロックのブロックサイズが4x4の場合、このフィルタ処理は適用されない。カレントブロックのブロックサイズが8x8の場合、45度方向の予測モードに対して、このフィルタ処理が適用される。カレントブロックのブロックサイズが16x16の場合、水平(horizontal)に近い3方向、並びに、垂直(vertical)に近い3方向以外の方向の予測モードに対して、このフィルタ処理が適用される。カレントブロックのブロックサイズが32x32の場合、水平(horizontal)および垂直(vertical)以外の方向の予測モードに対して、このフィルタ処理が適用される。
更に、また、HEVCにおいては、予測モードが直流(DC)モード、水平(Horizontal)モード、垂直(Vertical)モードである場合のブロック歪の低減を目的として、図79に示されるようなバウンダリバリュースムージング(Boundary Value Smoothing)処理が規定されている。
例えば、予測モードが直流(DC)モードである予測(DC予測)の場合、処理対象であるカレントブロックの上辺(Top)に隣接する周辺画素、および、カレントブロックの左辺(Left)に隣接する周辺画素の両方について、図79に示されるフィルタ処理(スムージング(Smoothing)処理)を行う。また、予測モードが水平(Horizontal)モードである予測(Horizontal予測)の場合、カレントブロックの上辺(Top)に隣接する周辺画素について、図79に示されるフィルタ処理(スムージング(Smoothing)処理)を行う。予測モードが垂直(Vertical)モードである予測(Vertical予測)の場合、カレントブロックの左辺(Left)に隣接する周辺画素について、図79に示されるフィルタ処理(スムージング(Smoothing)処理)を行う。
ところで、Vadim Seregin, Patrice Onno, Shan Liu, Tammy Lee, Chulkeun Kim, Haitao Yang, Haricharan Laksman, "Description of Tool Experiment C5: Inter-layer syntax prediction using HEVC base layer", JCTVC-K1105, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 1111th Meeting: Shanghai, CN, 1019 Oct. 2012 においては、ベースレイヤ(Baselayer)のイントラ予測モードに関する情報を用いて、エンハンスメントレイヤ(Enhancementlayer)におけるイントラ予測モード情報を符号化する方法が提案されている。しかしながら、HEVCにおいては、worst caseで4x4ブロックに対して1つのイントラ予測モード情報を保持しておかなければならないため、符号化・復号に必要な記憶容量が増大してしまう恐れがあった。
また、Jill Boyce, Kawamura Kei, Haricharan Lakshman, "TE6: Inter-layer syntax prediction from AVC base layer", JCTVC-K1106v2, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 1111th Meeting: Shanghai, CN, 1019 Oct. 2012 においては、ベースレイヤにおいてAVCの符号化(Baselayer AVC)を行い、エンハンスメントレイヤにおいてHEVCの符号化(Enhancementlayer HEVC)を行うスケーラブル(scalable)符号化を行う際、ベースレイヤ(Baselayer)の動き情報を用いたエンハンスメントレイヤ(Enhancementlayer)の動き情報の符号化が提案されている。この場合も、上述したのと同様に、ベースレイヤのイントラ予測モード情報を用いたエンハンスメントレイヤのイントラ予測モード情報の符号化を行うことが考えられる。その場合にも、上述した場合と同様に、符号化・復号に必要な記憶容量が増大してしまう恐れがあった。
そこで、本技術は、ベースレイヤにおけるイントラ予測モード(を示す情報)をメモリに格納する際、そのイントラ予測モード(を示す情報)の間引き処理を行うようにする。このようにすることにより、イントラ予測モード(を示す情報)を格納するのに必要な記憶容量の増大を抑制することができる。すなわち、符号化・復号に必要な記憶容量の増大を抑制することができる。以下においては、説明の便宜上、イントラ予測モードを示す情報のこともイントラ予測モードと称する。
図80は、このような本技術について説明する図である。
このイントラ予測モードの間引き処理は、例えば、所定の領域(エリア)毎に行われるようにしてもよい。間引き処理は、複数イントラ予測モードの内、一部のイントラ予測モードを残し、その他のイントラ予測モードを破棄する処理である。すなわち、この場合、間引き処理の処理単位となるエリアは、イントラ予測の処理単位となるブロックの複数個分の範囲となる。例えば、図80の左側に示されるように、イントラ予測の処理単位であるブロック0乃至ブロック15の16個のブロックを、間引き処理の処理単位(エリア)とする。この場合、ブロック0乃至ブロック15のそれぞれにイントラ予測モードが設定される。すなわち、間引き処理の処理対象であるカレントエリアに、I0乃至I15の16個のイントラ予測モードが存在するとする。
間引き処理では、カレントエリア内の各ブロックのイントラ予測モードの内、一部のイントラ予測モードをそのエリアの代表として残して(選択して)バッファメモリに記憶し、その他のイントラ予測モードを破棄する。例えば、間引き率が4:1である場合、このような16個のイントラ予測モードの内、いずれか1つのイントラ予測モードのみが選択され、バッファに格納される(その他の15個のイントラ予測モードは破棄される)。
どのイントラ予測モードをエリアの代表とするかは任意である。例えば、カレントエリア内のブロックの内、最初にイントラ予測が行われるブロック(例えばブロック0)のイントラ予測モード(例えばI0)を、カレントエリアの代表とするようにしてもよい。また、例えば、カレントエリアの中央付近に位置するブロック(例えば、ブロック5、6、9、10等のいずれか)のイントラ予測モード(例えば、I5,I6,I9.I10のいずれか)を、カレントエリアの代表とするようにしても良い。
エンハンスメントレイヤにおいて、このブロック0乃至ブロック15をコロケーテッドブロック(Collocated Block)とするブロック(PU)の符号化処理には、このバッファに格納されたベースレイヤのイントラ予測モード(代表値)が用いられる。つまり、エンハンスメントレイヤのイントラ予測には、カレントブロックに対応するベースレイヤのエリアのイントラ予測モード(代表値)が用いられる。
このようにすることにより、イントラ予測モードを記憶するバッファの容量の増大を抑制することができる。
なお、間引き率の値は任意であり、上述した例(4:1)に限らない。例えば2:1であってもよいし、8:1や16:1等であってもよいし、それ以外であってもよい。間引き処理の処理単位である上述したエリアの広さは、この間引き率によって決定されるものとしてもよい。また、1のエリアから間引き率に応じた数のイントラ予測モードがそのエリアの代表として選択されるようにしてもよい(つまり、1のエリアから複数のイントラ予測モードを代表として選択することができるようにしてもよい)。また、この間引き率の設定方法は、任意である。例えば、予め定められた所定の値としてもよいし、ユーザ等の外部からの指示に従って設定されるようにしても良いし、イントラ予測モードを格納するバッファメモリとして使用可能な記憶容量やバス帯域幅等の、ハードウエア等の条件に基づいて設定されるようにしても良いし、画像データのベースレイヤとエンハンスメントレイヤの解像度比等のソフトウエア等の条件に基づいて設定されるようにしても良い。さらに、複数種類の条件を総合的に考慮して設定されるようにしても良い。さらに、この間引き率は、出力となる画像圧縮情報(ビットストリーム)中の任意の位置において伝送されるようにしても良い。例えば、ビデオパラメータセット(VPS(Video Parameter Set))において伝送されるようにしても良い。また、例えば、エンハンスメントレイヤのシーケンスパラメータセット(SPS(Sequence Parameter Set))、ピクチャパラメータセット(PPS(Picture Parameter Set))、若しくはスライスヘッダ(SliceHeader)等において伝送されるようにしても良い。
なお、スペーシャルスケーラビリティ(Spatial Scalability)の場合、レイヤ毎に解像度が異なるので、間引き率を指定するレイヤを予め決めておくのが望ましい。例えば、この間引き率が、ベースレイヤにおける比率で設定されるようにしてもよい。
例えば、スペーシャルスケーラビリティ(Spatial Scalability)比が、1:2である場合、ベースレイヤでの4x4ブロックは、エンハンスメントレイヤでは8x8ブロックに相当する。ここで、間引き率2:1とは、ベースレイヤ解像度では8x8ブロック単位で、エンハンスメントレイヤ解像度では16x16ブロック単位で、ベースレイヤのイントラ予測モードが格納されていることになる。
以上のような処理を行うことにより、エンハンスメントレイヤにおいてイントラ予測モード符号化を行うための、ベースレイヤのイントラ予測モード情報を格納するために必要な記憶容量の増大を抑制することができる。
なお、本技術においては、ベースレイヤの画像圧縮情報は、AVCに基づくものであっても良い。
次に、以上のような本技術について、具体的な装置への適用例について説明する。
<6.第5の実施の形態>
<スケーラブル符号化装置>
図81は、スケーラブル符号化装置の主な構成例を示すブロック図である。
図81に示されるスケーラブル符号化装置1100は、画像データをスケーラブル符号化する画像情報処理装置であり、ベースレイヤとエンハンスメントレイヤに階層化された画像データの各レイヤを符号化する。この階層化の基準として用いるパラメータ(スケーラビリティを持たせるパラメータ)は任意である。スケーラブル符号化装置1100は、共通情報生成部1101、符号化制御部1102、ベースレイヤ画像符号化部1103、イントラ予測モード提供部1104、およびエンハンスメントレイヤ画像符号化部1105を有する。
共通情報生成部1101は、例えばNALユニットに格納するような画像データの符号化に関する情報を取得する。また、共通情報生成部1101は、必要に応じて、ベースレイヤ画像符号化部1103、イントラ予測モード提供部1104、およびエンハンスメントレイヤ画像符号化部1105などから必要な情報を取得する。共通情報生成部1101は、それらの情報を基に全レイヤに関する情報である共通情報を生成する。共通情報には、例えば、ビデオパラメータセット等が含まれる。共通情報生成部1101は、生成した共通情報を、例えばNALユニットとして、スケーラブル符号化装置1100の外部に出力する。なお、共通情報生成部1101は、生成した共通情報を、符号化制御部1102にも供給する。さらに、共通情報生成部1101は、必要に応じて、生成した共通情報の一部若しくは全部をベースレイヤ画像符号化部1103乃至エンハンスメントレイヤ画像符号化部1105にも供給する。
符号化制御部1102は、共通情報生成部1101から供給される共通情報に基づいて、ベースレイヤ画像符号化部1103乃至エンハンスメントレイヤ画像符号化部1105を制御することにより、各レイヤの符号化を制御する。
ベースレイヤ画像符号化部1103は、ベースレイヤの画像情報(ベースレイヤ画像情報)を取得する。ベースレイヤ画像符号化部1103は、他のレイヤの情報を利用せずに、そのベースレイヤ画像情報を符号化し、ベースレイヤの符号化データ(ベースレイヤ符号化データ)を生成し、出力する。また、ベースレイヤ画像符号化部1103は、符号化の際に行われたイントラ予測のイントラ予測モードを、ベースレイヤのイントラ予測モードとして、イントラ予測モード提供部1104に供給する。
イントラ予測モード提供部1104は、ベースレイヤ画像符号化部1103におけるイントラ予測において得られたイントラ予測モードを、エンハンスメントレイヤ画像符号化部1105におけるイントラ予測に提供する処理を行う。その際、イントラ予測モード提供部1104は、ベースレイヤ画像符号化部1103から取得したベースレイヤのイントラ予測モードを、所定の間引き率で間引いて記憶する。そして、エンハンスメントレイヤの符号化が行われる際に、イントラ予測モード提供部1104は、記憶しているベースレイヤのイントラ予測モードを、エンハンスメントレイヤ画像符号化部1105に供給する。また、イントラ予測モード提供部1104は、このイントラ予測モードの間引き率を設定することができるようにしてもよい。
エンハンスメントレイヤ画像符号化部1105は、エンハンスメントレイヤの画像情報(エンハンスメントレイヤ画像情報)を取得する。エンハンスメントレイヤ画像符号化部1105は、そのエンハンスメントレイヤ画像情報を符号化する。なお、エンハンスメントレイヤ画像符号化部1105は、イントラ予測モード提供部1104から、ベースレイヤのイントラ予測モードを取得し、そのベースレイヤのイントラ予測モードを用いて、エンハンスメントレイヤのイントラ予測を行い、エンハンスメントレイヤの画像を符号化する。そして、エンハンスメントレイヤ画像符号化部1105は、得られた符号化データ(エンハンスメントレイヤ符号化データ)を出力する。このようにベースレイヤのイントラ予測モードを用いてエンハンスメントレイヤのイントラ予測を行うようにすることにより、復号側においても、同様に、ベースレイヤのイントラ予測モードを用いてイントラ予測を行うことができる。つまり、イントラ予測モードに関する情報は、ベースレイヤの情報を伝送すれば良く、エンハンスメントレイヤの情報を伝送する必要が無くなる。したがって、その分、符号化効率の増大を抑制することができる。そして、ベースレイヤのイントラ予測モードを、エンハンスメントレイヤのイントラ予測に利用するために記憶する際に、上述したように、間引き処理を行うことにより、そのために必要な記憶容量を低減させることができ、符号化・復号の負荷を低減させることができる。
<ベースレイヤ画像符号化部>
図82は、図81のベースレイヤ画像符号化部1103の主な構成例を示すブロック図である。図82に示されるように、ベースレイヤ画像符号化部1103は、A/D変換部1111、画面並べ替えバッファ1112、演算部1113、直交変換部1114、量子化部1115、可逆符号化部1116、蓄積バッファ1117、逆量子化部1118、および逆直交変換部1119を有する。また、ベースレイヤ画像符号化部1103は、演算部1120、ループフィルタ1121、フレームメモリ1122、選択部1123、イントラ予測部1124、動き予測・補償部1125、予測画像選択部1126、およびレート制御部1127を有する。
A/D変換部1111は、入力された画像データ(ベースレイヤ画像情報)をA/D変換し、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ1112に供給し、記憶させる。画面並べ替えバッファ1112は、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部1113に供給する。また、画面並べ替えバッファ1112は、フレームの順番を並び替えた画像を、イントラ予測部1124および動き予測・補償部1125にも供給する。
演算部1113は、画面並べ替えバッファ1112から読み出された画像から、予測画像選択部1126を介してイントラ予測部1124若しくは動き予測・補償部1125から供給される予測画像を減算し、その差分情報を直交変換部1114に出力する。例えば、イントラ符号化が行われる画像の場合、演算部1113は、画面並べ替えバッファ1112から読み出された画像から、イントラ予測部1124から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部1113は、画面並べ替えバッファ1112から読み出された画像から、動き予測・補償部1125から供給される予測画像を減算する。
直交変換部1114は、演算部1113から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。直交変換部1114は、その変換係数を量子化部1115に供給する。
量子化部1115は、直交変換部1114から供給される変換係数を量子化する。量子化部1115は、レート制御部1127から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。量子化部1115は、量子化された変換係数を可逆符号化部1116に供給する。
可逆符号化部1116は、量子化部1115において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部1127の制御の下で量子化されているので、この符号量は、レート制御部1127が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部1116は、イントラ予測のモードを示す情報などをイントラ予測部1124から取得し、インター予測のモードを示す情報や差分動きベクトル情報などを動き予測・補償部1125から取得する。さらに、可逆符号化部1116は、シーケンスパラメータセット(SPS)、およびピクチャパラメータセット(PPS)等を含むベースレイヤのNALユニットを適宜生成する。
可逆符号化部1116は、これらの各種情報を任意の符号化方式で符号化し、符号化データ(符号化ストリームとも称する)の一部とする(多重化する)。可逆符号化部1116は、符号化して得られた符号化データを蓄積バッファ1117に供給して蓄積させる。
可逆符号化部1116の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ1117は、可逆符号化部1116から供給された符号化データ(ベースレイヤ符号化データ)を、一時的に保持する。蓄積バッファ1117は、所定のタイミングにおいて、保持しているベースレイヤ符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。すなわち、蓄積バッファ1117は、符号化データを伝送する伝送部でもある。
また、量子化部1115において量子化された変換係数は、逆量子化部1118にも供給される。逆量子化部1118は、その量子化された変換係数を、量子化部1115による量子化に対応する方法で逆量子化する。逆量子化部1118は、得られた変換係数を、逆直交変換部1119に供給する。
逆直交変換部1119は、逆量子化部1118から供給された変換係数を、直交変換部1114による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部1120に供給される。
演算部1120は、逆直交変換部1119から供給された逆直交変換結果である、復元された差分情報に、予測画像選択部1126を介してイントラ予測部1124若しくは動き予測・補償部1125からの予測画像を加算し、局部的に復号された画像(復号画像)を得る。その復号画像は、ループフィルタ1121またはフレームメモリ1122に供給される。
ループフィルタ1121は、デブロックフィルタや適応ループフィルタ等を含み、演算部1120から供給される再構成画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ1121は、再構成画像に対してデブロックフィルタ処理を行うことにより再構成画像のブロック歪を除去する。また、例えば、ループフィルタ1121は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。ループフィルタ1121は、フィルタ処理結果(以下、復号画像と称する)をフレームメモリ1122に供給する。
なお、ループフィルタ1121が、再構成画像に対してさらに、他の任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ1121は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部1116に供給し、それを符号化させるようにすることもできる。
フレームメモリ1122は、演算部1120から供給される再構成画像と、ループフィルタ1121から供給される復号画像とをそれぞれ記憶する。フレームメモリ1122は、所定のタイミングにおいて、若しくは、イントラ予測部1124等の外部からの要求に基づいて、記憶している再構成画像を、選択部1123を介してイントラ予測部1124に供給する。また、フレームメモリ1122は、所定のタイミングにおいて、若しくは、動き予測・補償部1125等の外部からの要求に基づいて、記憶している復号画像を、選択部1123を介して、動き予測・補償部1125に供給する。
フレームメモリ1122は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、選択部1123に供給する。
選択部1123は、フレームメモリ1122から供給される参照画像の供給先を選択する。例えば、イントラ予測の場合、選択部1123は、フレームメモリ1122から供給される参照画像(カレントピクチャ内の画素値)を動き予測・補償部1125に供給する。また、例えば、インター予測の場合、選択部1123は、フレームメモリ1122から供給される参照画像を動き予測・補償部1125に供給する。
イントラ予測部1124は、選択部1123を介してフレームメモリ1122から供給される参照画像であるカレントピクチャ内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部1124は、予め用意された複数のイントラ予測モードでこのイントラ予測を行う。
イントラ予測部1124は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ1112から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部1124は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部1126に供給する。
また、上述したように、イントラ予測部1124は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部1116に供給し、符号化させる。
動き予測・補償部1125は、画面並べ替えバッファ1112から供給される入力画像と、選択部1123を介してフレームメモリ1122から供給される参照画像とを用いて動き予測(インター予測)を行う。動き予測・補償部1125は、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。動き予測・補償部1125は、予め用意された複数のインター予測モードでこのようなインター予測を行う。
動き予測・補償部1125は、候補となる全てのインター予測モードで予測画像を生成する。動き予測・補償部1125は、画面並べ替えバッファ1112から供給される入力画像と、生成した差分動きベクトルの情報などを用いて、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部1125は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部1126に供給する。
動き予測・補償部1125は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部1116に供給し、符号化させる。必要な情報としては、例えば、生成された差分動きベクトルの情報や、予測動きベクトル情報として、予測動きベクトルのインデックスを示すフラグなどがある。
予測画像選択部1126は、演算部1113や演算部1120に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、予測画像選択部1126は、予測画像の供給元としてイントラ予測部1124を選択し、そのイントラ予測部1124から供給される予測画像を演算部1113や演算部1120に供給する。また、例えば、インター符号化の場合、予測画像選択部1126は、予測画像の供給元として動き予測・補償部1125を選択し、その動き予測・補償部1125から供給される予測画像を演算部1113や演算部1120に供給する。
レート制御部1127は、蓄積バッファ1117に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部1115の量子化動作のレートを制御する。
なお、イントラ予測部1124は、採用されたイントラ予測モードを、ベースレイヤのイントラ予測モードとして、イントラ予測モード提供部1104に供給する。また、可逆符号化部1116は、ベースレイヤの解像度を示す情報を、イントラ予測モード提供部1104に供給する。
<エンハンスメントレイヤ画像符号化部>
図83は、図81のエンハンスメントレイヤ画像符号化部1105の主な構成例を示すブロック図である。図83に示されるように、エンハンスメントレイヤ画像符号化部1105は、図82のベースレイヤ画像符号化部1103と基本的に同様の構成を有する。
ただし、エンハンスメントレイヤ画像符号化部1105の各部は、ベースレイヤではなく、エンハンスメントレイヤ画像情報の符号化についての処理を行う。つまり、エンハンスメントレイヤ画像符号化部1105のA/D変換部1111は、エンハンスメントレイヤ画像情報をA/D変換し、エンハンスメントレイヤ画像符号化部1105の蓄積バッファ1117は、エンハンスメントレイヤ符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。
また、エンハンスメントレイヤ画像符号化部1105は、イントラ予測部1124の代わりに、イントラ予測部1134を有する。
イントラ予測部1134は、イントラ予測モード提供部1104に記憶されているベースレイヤのイントラ予測モード(の代表値)の内、カレントブロックに対応するイントラ予測モードを取得し(読み出し)、そのイントラ予測モードを用いて、エンハンスメントレイヤのイントラ予測を行い、予測画像を生成する。イントラ予測は、イントラ予測部1124の場合と同様に行われる。
また、イントラ予測部1124の場合と同様に、イントラ予測部1134は、採用されたイントラ予測モードを示すエンハンスメントレイヤのイントラ予測モード情報等を、適宜可逆符号化部1116に供給し、符号化させる。
なお、エンハンスメントレイヤ画像符号化部1105の可逆符号化部1116は、エンハンスメントレイヤの解像度を示す情報を、イントラ予測モード提供部1104に供給する。また、この可逆符号化部1116は、イントラ予測モード提供部1104から供給される、ベースレイヤのイントラ予測モードの間引き率を示す情報を取得し、それを符号化して、例えば、エンハンスメントレイヤのシーケンスパラメータセット(SPS(Sequence Parameter Set))、ピクチャパラメータセット(PPS(Picture Parameter Set))、若しくはスライスヘッダ(SliceHeader)等において復号側に伝送させる。
なお、この間引き率を示す情報は、例えばビデオパラメータセット(VPS(Video Parameter Set))において伝送させるようにしてもよい。その場合、この間引き率を示す情報は、共通情報生成部1101に供給される。
<イントラ予測モード提供部>
図84は、図81のイントラ予測モード提供部1104の主な構成例を示すブロック図である。
図84に示されるように、イントラ予測モード提供部1104は、間引き率設定部1151、間引き処理部1152、およびイントラ予測モードバッファ1153を有する。
間引き率設定部1151は、ベースレイヤのイントラ予測モードの間引き率を設定する。この設定方法は任意である。例えば、間引き率設定部1151が、ユーザ等の外部の指示に基づいて間引き率を設定するようにしてもよい。その際、間引き率は、ベースレイヤにおける比率で設定されるようにしてもよい。
また、例えば、間引き率設定部1151は、ベースレイヤ画像符号化部1103の可逆符号化部1116からベースレイヤ解像度を取得し、エンハンスメントレイヤ画像符号化部1105の可逆符号化部1116からエンハンスメントレイヤ解像度を取得するようにしてもよい。例えば、間引き率設定部1151が、それらの解像度を示す情報を、モニタ等に表示したり、スピーカなどから音声出力したりすることにより、ユーザに提示するようにしてもよい。その場合、ユーザは、各レイヤの解像度を参考にしながら、間引き率を設定することができる。
また、例えば、ユーザが、エンハンスメントレイヤにおけるイントラ予測モードのブロックサイズを指定し、間引き率設定部1151が、取得した各レイヤの解像度に基づいて、その指定された情報を、間引き率に換算するようにしてもよい。このようにすることにより、ユーザにとって分かり易い情報で間引き率の設定を行うようにすることができ、間引き率の設定をより容易にすることができる。
間引き率設定部1151は、このように設定した間引き率を示す情報を間引き処理部1152に供給する。また、間引き率設定部1151は、このように設定した間引き率を示す情報を、エンハンスメントレイヤ画像符号化部1105の可逆符号化部1116(若しくは共通情報生成部1101)にも供給し、復号側に伝送させる。
間引き処理部1152は、ベースレイヤ画像符号化部1103のイントラ予測部1124から供給されるベースレイヤのイントラ予測モードを取得し、間引き率設定部1151により設定された間引き率で、そのイントラ予測モードを間引く。例えば、上述したように、所定のエリア毎にイントラ予測モードの間引き処理を行い、各エリアの代表(イントラ予測モード)を選択する。このように間引かれて残った(選択された)ベースレイヤのイントラ予測モードは、イントラ予測モードバッファ1153に供給される。
イントラ予測モードバッファ1153は、間引き処理部1152から供給された、選択されたベースレイヤイントラ予測モードを記憶する。イントラ予測モードバッファ1153は、記憶している、選択されたベースレイヤイントラ予測モードの中から、エンハンスメントレイヤ画像符号化部1105のイントラ予測部1134において行なわれるエンハンスメントレイヤのイントラ予測のカレントブロックに対応するエリアのイントラ予測モードを、イントラ予測部1134に供給する。
上述したように、イントラ予測部1134は、イントラ予測モードバッファ1153から読み出したベースレイヤのイントラ予測モード(選択されたベースレイヤイントラ予測モード)を用いて、エンハンスメントレイヤのカレントブロックのイントラ予測を行い、予測画像を生成する。
以上のように、スケーラブル符号化装置1100は、エンハンスメントレイヤの符号化におけるイントラ予測において、ベースレイヤのイントラ予測モードを用いることができるので、符号化効率の低減を抑制することができる。これにより、スケーラブル符号化装置1100は、符号化・復号による画質の低減を抑制することができる。また、そのベースレイヤのイントラ予測モードをエンハンスメントレイヤに提供する際に、そのイントラ予測モードを所定の間引き率で間引くので、スケーラブル符号化装置1100は、符号化・復号に必要な記憶容量の増大を抑制することができる。
<共通情報生成処理の流れ>
次に、以上のようなスケーラブル符号化装置1100により実行される各処理の流れについて説明する。最初に、図85のフローチャートを参照して、共通情報生成処理の流れの例を説明する。
共通情報生成処理が開始されると、イントラ予測モード提供部1104の間引き率設定部1151は、ステップS4101において、ベースレイヤイントラ予測モードの間引き率を設定する。
ステップS4102において、共通情報生成部1101は、ステップS4101において設定された間引き率を示す情報を含むビデオパラメータセットを生成する。
ステップS4103において、共通情報生成部1101は、ステップS4102において生成されたビデオパラメータセットを共通情報として、復号側に伝送(供給)する。ステップS4103の処理が終了すると、共通情報生成処理が終了する。
<符号化処理の流れ>
次に、図86のフローチャートを参照して、符号化処理の流れの例を説明する。スケーラブル符号化装置1100は、ピクチャ毎にこの符号化処理を実行する。
符号化処理が開始されると、ステップS4121において、スケーラブル符号化装置1100の符号化制御部1102は、最初のレイヤを処理対象とする。
ステップS4122において、符号化制御部1102は、処理対象であるカレントレイヤがベースレイヤであるか否かを判定する。カレントレイヤがベースレイヤであると判定された場合、処理は、ステップS4123に進む。
ステップS4123において、ベースレイヤ画像符号化部1103およびイントラ予測モード提供部1104は、ベースレイヤ符号化処理を行う。ステップS4123の処理が終了すると、処理は、ステップS4126に進む。
また、ステップS4122において、カレントレイヤがエンハンスメントレイヤであると判定された場合、処理は、ステップS4124に進む。ステップS4124において、符号化制御部1102は、カレントレイヤに対応する(すなわち、参照先とする)ベースレイヤを決定する。
ステップS4125において、エンハンスメントレイヤ画像符号化部1105は、エンハンスメントレイヤ符号化処理を行う。ステップS4125の処理が終了すると、処理は、ステップS4126に進む。
ステップS4126において、符号化制御部1102は、全てのレイヤを処理したか否かを判定する。未処理のレイヤが存在すると判定された場合、処理は、ステップS4127に進む。
ステップS4127において、符号化制御部1102は、次の未処理のレイヤを処理対象(カレントレイヤ)とする。ステップS4127の処理が終了すると、処理は、ステップS4122に戻る。ステップS4122乃至ステップS4127の処理が繰り返し実行され、各レイヤが符号化される。
そして、ステップS4126において、全てのレイヤが処理されたと判定された場合、符号化処理が終了する。
<ベースレイヤ符号化処理の流れ>
次に、図87のフローチャートを参照して、図86のステップS4123において実行されるベースレイヤ符号化処理の流れの例を説明する。
ステップS4141において、ベースレイヤ画像符号化部1103のA/D変換部1111は入力されたベースレイヤの画像情報(画像データ)をA/D変換する。ステップS4142において、画面並べ替えバッファ1112は、A/D変換されたベースレイヤの画像情報(デジタルデータ)を記憶し、各ピクチャを、表示する順番から符号化する順番へ並べ替える。
ステップS4143において、イントラ予測部1124は、イントラ予測モードのイントラ予測処理を行う。ステップS4144において、動き予測・補償部1125は、インター予測モードでの動き予測や動き補償を行う動き予測・補償処理を行う。ステップS4145において、予測画像選択部1126は、イントラ予測部1124および動き予測・補償部1125から出力された各コスト関数値に基づいて、最適なモードを決定する。つまり、予測画像選択部1126は、イントラ予測部1124により生成された予測画像と、動き予測・補償部1125により生成された予測画像のいずれか一方を選択する。ステップS4146において、演算部1113は、ステップS4142の処理により並び替えられた画像と、ステップS4145の処理により選択された予測画像との差分を演算する。差分データは元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
ステップS4147において、直交変換部1114は、ステップS4146の処理により生成された差分情報に対する直交変換処理を行う。ステップS4148において、量子化部1115は、レート制御部1127により算出された量子化パラメータを用いて、ステップS4147の処理により得られた直交変換係数を量子化する。
ステップS4148の処理により量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS4149において、逆量子化部1118は、ステップS4148の処理により生成された量子化された係数(量子化係数とも称する)を、量子化部1115の特性に対応する特性で逆量子化する。ステップS4150において、逆直交変換部1119は、ステップS4147の処理により得られた直交変換係数を逆直交変換する。ステップS4151において、演算部1120は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部1113への入力に対応する画像)を生成する。
ステップS4152においてループフィルタ1121は、ステップS4151の処理により生成された画像をフィルタリングする。これによりブロック歪み等が除去される。ステップS4153において、フレームメモリ1122は、ステップS4152の処理によりブロック歪みの除去等が行われた画像を記憶する。なお、フレームメモリ1122にはループフィルタ1121によりフィルタ処理されていない画像も演算部1120から供給され、記憶される。このフレームメモリ1122に記憶された画像は、ステップS4143の処理やステップS4144の処理に利用される。
ステップS4154において、イントラ予測モード提供部1104の間引き処理部1152は、ベースレイヤのイントラ予測モードを、図85のステップS4101において設定された間引き率で間引く。
ステップS4155において、イントラ予測モード提供部1104のイントラ予測モードバッファ1153は、ステップS4154の処理により間引かれて選択されたベースレイヤのイントラ予測モードを記憶する。
ステップS4156において、ベースレイヤ画像符号化部1103の可逆符号化部1116は、ステップS4148の処理により量子化された係数を符号化する。すなわち、差分画像に対応するデータに対して、可変長符号化や算術符号化等の可逆符号化が行われる。
また、このとき、可逆符号化部1116は、ステップS4145の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部1116は、イントラ予測部1124から供給される最適イントラ予測モード情報、または、動き予測・補償部1125から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。
ステップS4157において蓄積バッファ1117は、ステップS4156の処理により得られたベースレイヤ符号化データを蓄積する。蓄積バッファ1117に蓄積されたベースレイヤ符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS4158においてレート制御部1127は、ステップS4157において蓄積バッファ1117に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部1115の量子化動作のレートを制御する。
ステップS4158の処理が終了すると、ベースレイヤ符号化処理が終了し、処理は図86に戻る。ベースレイヤ符号化処理は、例えば、ピクチャ単位で実行される。つまり、カレントレイヤの各ピクチャに対してベースレイヤ符号化処理が実行される。ただし、ベースレイヤ符号化処理内の各処理は、それぞれの処理単位毎に行われる。
<エンハンスメントレイヤ符号化処理の流れ>
次に、図88のフローチャートを参照して、図86のステップS4125において実行されるエンハンスメントレイヤ符号化処理の流れの例を説明する。
エンハンスメントレイヤ符号化処理のステップS4171およびステップS4172、並びに、ステップS4175乃至ステップS4187の各処理は、図87のベースレイヤ符号化処理のステップS4141およびステップS4142、ステップS4144乃至ステップS4153、並びに、ステップS4156乃至ステップS4158の各処理と同様に実行される。ただし、エンハンスメントレイヤ符号化処理の各処理は、エンハンスメントレイヤ画像符号化部1105の各処理部により、エンハンスメントレイヤ画像情報に対して行われる。
なお、ステップS4173において、エンハンスメントレイヤ画像符号化部1105のイントラ予測部1134は、イントラ予測モード提供部1104のイントラ予測モードバッファ1153から、カレントブロックに対応するベースレイヤのイントラ予測モード(選択されたベースレイヤのイントラ予測モード)を取得する。
ステップS4174において、イントラ予測部1134は、ステップS4173において取得された、選択されたベースレイヤのイントラ予測モードを用いて、エンハンスメントレイヤのイントラ予測処理を行う。
ステップS4187の処理が終了すると、エンハンスメントレイヤ符号化処理が終了され、処理は図86に戻る。エンハンスメントレイヤ符号化処理は、例えば、ピクチャ単位で実行される。つまり、カレントレイヤの各ピクチャに対してエンハンスメントレイヤ符号化処理が実行される。ただし、エンハンスメントレイヤ符号化処理内の各処理は、それぞれの処理単位毎に行われる。
以上のように各処理を実行することにより、スケーラブル符号化装置1100は、エンハンスメントレイヤの符号化におけるイントラ予測において、ベースレイヤのイントラ予測モードを用いることができるので、符号化効率の低減を抑制することができる。これにより、スケーラブル符号化装置1100は、符号化・復号による画質の低減を抑制することができる。また、そのベースレイヤのイントラ予測モードをエンハンスメントレイヤに提供する際に、そのイントラ予測モードを所定の間引き率で間引くので、スケーラブル符号化装置1100は、符号化・復号に必要な記憶容量の増大を抑制することができる。
<7.第6の実施の形態>
<スケーラブル復号装置>
次に、以上のようにスケーラブル符号化(階層符号化)された符号化データ(ビットストリーム)の復号について説明する。図89は、図81のスケーラブル符号化装置1100に対応するスケーラブル復号装置の主な構成例を示すブロック図である。図89に示されるスケーラブル復号装置1200は、例えばスケーラブル符号化装置1100により画像データがスケーラブル符号化されて得られた符号化データを、その符号化方法に対応する方法でスケーラブル復号する。
図89に示されるように、スケーラブル復号装置1200は、共通情報取得部1201、復号制御部1202、ベースレイヤ画像復号部1203、イントラ予測モード提供部1204、およびエンハンスメントレイヤ画像復号部1205を有する。
共通情報取得部1201は、符号化側から伝送される共通情報(例えば、ビデオパラメータセット(VPS))を取得する。共通情報取得部1201は、取得した共通情報より復号に関する情報を抽出し、それを復号制御部1202に供給する。また、共通情報取得部1201は、共通情報の一部若しくは全部を、ベースレイヤ画像復号部1203乃至エンハンスメントレイヤ画像復号部1205に適宜供給する。
例えば、間引き率を示す情報がビデオパラメータセット(VPS)において符号化側から伝送される場合、共通情報取得部1201は、符号化側から伝送されたビデオパラメータセットから間引き率を示す情報を取得し、イントラ予測モード提供部1204に供給する。
復号制御部1202は、共通情報取得部1201から供給された復号に関する情報を取得し、その情報に基づいて、ベースレイヤ画像復号部1203乃至エンハンスメントレイヤ画像復号部1205を制御することにより、各レイヤの復号を制御する。
ベースレイヤ画像復号部1203は、ベースレイヤ画像符号化部1103に対応する画像復号部であり、例えばベースレイヤ画像符号化部1103によりベースレイヤ画像情報が符号化されて得られたベースレイヤ符号化データを取得する。ベースレイヤ画像復号部1203は、他のレイヤの情報を利用せずに、そのベースレイヤ符号化データを復号し、ベースレイヤ画像情報を再構築し、出力する。このようなベースレイヤの復号において、ベースレイヤ画像復号部1203は、符号化の際にイントラ予測が行われブロックについて、符号化側から伝送されるイントラ予測モード情報により指定されるイントラ予測モード(つまり、符号化の際と同じモード)でイントラ予測を行い、予測画像を生成し、その予測画像を用いて復号画像を生成する。また、ベースレイヤ画像復号部1203は、このようなベースレイヤのイントラ予測のイントラ予測モードを、イントラ予測モード提供部1204に供給する。例えば、ベースレイヤ画像復号部1203が、符号化側から伝送されたイントラ予測モード情報を、イントラ予測モード提供部1204に供給するようにしてもよい。
イントラ予測モード提供部1204は、ベースレイヤ画像復号部1203から供給されるイントラ予測モードを、エンハンスメントレイヤ画像復号部1205におけるイントラ予測に提供する処理を行う。その際、イントラ予測モード提供部1204は、ベースレイヤ画像復号部1203から取得したベースレイヤのイントラ予測モードを、所定の間引き率で間引いて記憶する。そして、エンハンスメントレイヤの符号化が行われる際に、イントラ予測モード提供部1204は、記憶しているベースレイヤのイントラ予測モードを、エンハンスメントレイヤ画像復号部1205に供給する。すなわち、エンハンスメントレイヤ画像復号部1205には、イントラ予測モード提供部1204により選択されたイントラ予測モードが提供される。
エンハンスメントレイヤ画像復号部1205は、エンハンスメントレイヤ画像符号化部1105に対応する画像復号部であり、例えばエンハンスメントレイヤ画像符号化部1105によりエンハンスメントレイヤ画像情報が符号化されて得られたエンハンスメントレイヤ符号化データを取得する。エンハンスメントレイヤ画像復号部1205は、イントラ予測モード提供部1204から取得したベースレイヤのイントラ予測モードを用いてイントラ予測を行い、予測画像を生成し、その予測画像を用いてエンハンスメントレイヤ画像情報を再構築し、出力する。
<ベースレイヤ画像復号部>
図90は、図89のベースレイヤ画像復号部1203の主な構成例を示すブロック図である。図90に示されるようにベースレイヤ画像復号部1203は、蓄積バッファ1211、可逆復号部1212、逆量子化部1213、逆直交変換部1214、演算部1215、ループフィルタ1216、画面並べ替えバッファ1217、およびD/A変換部1218を有する。また、ベースレイヤ画像復号部1203は、フレームメモリ1219、選択部1220、イントラ予測部1221、動き補償部1222、および選択部1223を有する。
蓄積バッファ1211は、伝送されてきたベースレイヤ符号化データを受け取る受け取り部でもある。蓄積バッファ1211は、伝送されてきたベースレイヤ符号化データを受け取って、蓄積し、所定のタイミングにおいてその符号化データを可逆復号部1212に供給する。このベースレイヤ符号化データには、予測モード情報などの復号に必要な情報が付加されている。
可逆復号部1212は、蓄積バッファ1211より供給された、可逆符号化部1116により符号化された情報を、可逆符号化部1116の符号化方式に対応する方式で復号する。可逆復号部1212は、復号して得られた差分画像の量子化された係数データを、逆量子化部1213に供給する。
また、可逆復号部1212は、ベースレイヤ符号化データに含まれるビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、およびピクチャパラメータセット(PPS)等を含むNALユニットを適宜抽出し、取得する。可逆復号部1212は、それらの情報から、最適な予測モードに関する情報を抽出し、その情報に基づいて最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、イントラ予測部1221および動き補償部1222の内、選択されたと判定したモードの方に供給する。つまり、例えば、ベースレイヤ画像符号化部1103において最適な予測モードとしてイントラ予測モードが選択された場合、その最適な予測モードに関する情報がイントラ予測部1221に供給される。また、例えば、ベースレイヤ画像符号化部1103において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報が動き補償部1222に供給される。
さらに、可逆復号部1212は、例えば、量子化行列や量子化パラメータ等の、逆量子化に必要な情報をNALユニット等から抽出し、それを逆量子化部1213に供給する。
逆量子化部1213は、可逆復号部1212により復号されて得られた量子化された係数データを、量子化部1115の量子化方式に対応する方式で逆量子化する。なお、この逆量子化部1213は、逆量子化部1118と同様の処理部である。つまり、逆量子化部1213の説明は、逆量子化部1118にも準用することができる。ただし、データの入出力先等は、装置に応じて適宜、変えて読む必要がある。逆量子化部1213は、得られた係数データを逆直交変換部1214に供給する。
逆直交変換部1214は、逆量子化部1213から供給される係数データを、直交変換部1114の直交変換方式に対応する方式で逆直交変換する。なお、この逆直交変換部1214は、逆直交変換部1119と同様の処理部である。つまり、逆直交変換部1214の説明は、逆直交変換部1119にも準用することができる。ただし、データの入出力先等は、装置に応じて適宜、変えて読む必要がある。
逆直交変換部1214は、この逆直交変換処理により、直交変換部1114において直交変換される前の残差データに対応する復号残差データを得る。逆直交変換されて得られた復号残差データは、演算部1215に供給される。また、演算部1215には、選択部1223を介して、イントラ予測部1221若しくは動き補償部1222から予測画像が供給される。
演算部1215は、その復号残差データと予測画像とを加算し、演算部1113により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部1215は、その復号画像データをループフィルタ1216に供給する。
ループフィルタ1216は、供給された復号画像に対して、デブロックフィルタや適応ループフィルタ等を含むフィルタ処理を適宜施し、それを画面並べ替えバッファ1217およびフレームメモリ1219に供給する。例えば、ループフィルタ1216は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ1216は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。なお、このループフィルタ1216は、ループフィルタ1121と同様の処理部である。
なお、演算部1215から出力される復号画像は、ループフィルタ1216を介さずに画面並べ替えバッファ1217やフレームメモリ1219に供給することができる。つまり、ループフィルタ1216によるフィルタ処理の一部若しくは全部は省略することができる。
画面並べ替えバッファ1217は、復号画像の並べ替えを行う。すなわち、画面並べ替えバッファ1112により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部1218は、画面並べ替えバッファ1217から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
フレームメモリ1219は、供給される復号画像を記憶し、所定のタイミングにおいて、若しくは、イントラ予測部1221や動き補償部1222等の外部の要求に基づいて、記憶している復号画像を参照画像として、選択部1220に供給する。
選択部1220は、フレームメモリ1219から供給される参照画像の供給先を選択する。選択部1220は、イントラ符号化された画像を復号する場合、フレームメモリ1219から供給される参照画像をイントラ予測部1221に供給する。また、選択部1220は、インター符号化された画像を復号する場合、フレームメモリ1219から供給される参照画像を動き補償部1222に供給する。
イントラ予測部1221には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部1212から適宜供給される。イントラ予測部1221は、イントラ予測部1124において用いられたイントラ予測モードで、フレームメモリ1219から取得した参照画像を用いてイントラ予測を行い、予測画像を生成する。イントラ予測部1221は、生成した予測画像を選択部1223に供給する。
動き補償部1222は、ヘッダ情報を復号して得られた情報(最適予測モード情報、参照画像情報等)を可逆復号部1212から取得する。
動き補償部1222は、可逆復号部1212から取得された最適予測モード情報が示すインター予測モードで、フレームメモリ1219から取得した参照画像を用いて動き補償を行い、予測画像を生成する。動き補償部1222は、生成した予測画像を選択部1223に供給する。
選択部1223は、イントラ予測部1221からの予測画像または動き補償部1222からの予測画像を、演算部1215に供給する。そして、演算部1215においては、動きベクトルが用いられて生成された予測画像と逆直交変換部1214からの復号残差データ(差分画像情報)とが加算されて元の画像が復号される。
なお、イントラ予測部1221は、採用されたイントラ予測モード(すなわち、符号化側により指定されたイントラ予測モード)を、ベースレイヤのイントラ予測モードとして、イントラ予測モード提供部1204に供給する。
<エンハンスメントレイヤ画像復号部>
図91は、図89のエンハンスメントレイヤ画像復号部1205の主な構成例を示すブロック図である。図91に示されるように、エンハンスメントレイヤ画像復号部1205は、図90のベースレイヤ画像復号部1203と基本的に同様の構成を有する。
ただし、エンハンスメントレイヤ画像復号部1205の各部は、ベースレイヤではなく、エンハンスメントレイヤ符号化データの復号についての処理を行う。つまり、エンハンスメントレイヤ画像復号部1205の蓄積バッファ1211は、エンハンスメントレイヤ符号化データを記憶し、エンハンスメントレイヤ画像復号部1205のD/A変換部1218は、エンハンスメントレイヤ画像情報を、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。
また、エンハンスメントレイヤ画像復号部1205は、イントラ予測部1221の代わりに、イントラ予測部1231を有する。
イントラ予測部1231は、イントラ予測モード提供部1204が記憶するベースレイヤのイントラ予測モード(の代表値)の内、カレントブロックに対応するイントラ予測モードを取得し(読み出し)、そのイントラ予測モードを用いて、エンハンスメントレイヤのイントラ予測を行い、予測画像を生成する。イントラ予測は、イントラ予測部1221の場合と同様に行われる。
なお、エンハンスメントレイヤ画像復号部1205の可逆復号部1212は、例えば、エンハンスメントレイヤのシーケンスパラメータセット(SPS(Sequence Parameter Set))、ピクチャパラメータセット(PPS(Picture Parameter Set))、若しくはスライスヘッダ(SliceHeader)等において、間引き率を示す情報が符号化側から伝送される場合、その符号化側から伝送された間引き率を示す情報を、イントラ予測モード提供部1204に供給する。
なお、この間引き率を示す情報は、例えばビデオパラメータセット(VPS(Video Parameter Set))において伝送させるようにしてもよい。その場合、この間引き率を示す情報は、共通情報取得部1201からイントラ予測モード提供部1204に供給される。
<イントラ予測モード提供部>
図92は、図89のイントラ予測モード提供部1204の主な構成例を示すブロック図である。
図92に示されるように、イントラ予測モード提供部1204は、間引き率取得部1251、間引き処理部1252、およびイントラ予測モードバッファ1253を有する。
間引き率取得部1251は、エンハンスメントレイヤ画像復号部1205の可逆復号部1212(若しくは共通情報取得部1201)から、符号化側から伝送された、ベースレイヤのイントラ予測モードの間引き率を取得する。間引き率取得部1251は、取得した間引き率を示す情報を間引き処理部1252に供給する。
間引き処理部1252は、ベースレイヤ画像復号部1203のイントラ予測部1221から供給されるベースレイヤの各ブロックのイントラ予測モードを取得し、間引き率取得部1251から供給された間引き率で、そのイントラ予測モードを間引く。例えば、上述したように、所定のエリア毎にイントラ予測モードの間引き処理を行い、各エリアの代表(イントラ予測モード)を選択する。このように間引かれて選択されたベースレイヤのイントラ予測モードは、イントラ予測モードバッファ1253に供給される。
イントラ予測モードバッファ1253は、間引き処理部1252から供給された、選択されたベースレイヤイントラ予測モードを記憶する。イントラ予測モードバッファ1253は、記憶している、選択されたベースレイヤイントラ予測モードの中から、エンハンスメントレイヤ画像復号部1205のイントラ予測部1231において行なわれるイントラ予測のカレントブロックに対応するブロックのイントラ予測モードを、イントラ予測部1231に供給する。
上述したように、イントラ予測部1231は、イントラ予測モードバッファ1253から読み出したベースレイヤのイントラ予測モード(選択されたベースレイヤイントラ予測モード)を用いて、エンハンスメントレイヤのカレントブロックのイントラ予測を行い、予測画像を生成する。
以上のように、スケーラブル復号装置1200は、エンハンスメントレイヤの符号化におけるイントラ予測において、ベースレイヤのイントラ予測モードを用いることができるので、符号化効率の低減を抑制することができる。これにより、スケーラブル復号装置1200は、符号化・復号による画質の低減を抑制することができる。また、そのベースレイヤのイントラ予測モードをエンハンスメントレイヤに提供する際に、そのイントラ予測モードを所定の間引き率で間引くので、スケーラブル復号装置1200は、符号化・復号に必要な記憶容量の増大を抑制することができる。
<共通情報取得処理の流れ>
次に、以上のようなスケーラブル復号装置1200により実行される各処理の流れについて説明する。最初に、図93のフローチャートを参照して、共通情報取得処理の流れの例を説明する。
共通情報取得処理が開始されると、共通情報取得部1201は、ステップS4201において、符号化側から伝送されたビデオパラメータセットを取得する。
ステップS4202において、イントラ予測モード提供部1204の間引き率取得部1251は、ステップS4201において取得されたビデオパラメータセットから、ベースレイヤイントラ予測モードの間引き率を取得する。
ステップS4202の処理が終了すると、共通情報取得処理が終了する。
<復号処理の流れ>
次に、図94のフローチャートを参照して、復号処理の流れの例を説明する。スケーラブル復号装置1200は、ピクチャ毎にこの復号処理を実行する。
復号処理が開始されると、ステップS4221において、スケーラブル復号装置1200の復号制御部1202は、最初のレイヤを処理対象とする。
ステップS4222において、復号制御部1202は、処理対象であるカレントレイヤがベースレイヤであるか否かを判定する。カレントレイヤがベースレイヤであると判定された場合、処理は、ステップS4223に進む。
ステップS4223において、ベースレイヤ画像復号部1203およびイントラ予測モード提供部1204は、ベースレイヤ復号処理を行う。ステップS4223の処理が終了すると、処理は、ステップS4226に進む。
また、ステップS4222において、カレントレイヤがエンハンスメントレイヤであると判定された場合、処理はステップS4224に進む。ステップS4224において、復号制御部1202は、カレントレイヤに対応する(すなわち、参照先とする)ベースレイヤを決定する。
ステップS4225において、エンハンスメントレイヤ画像復号部1205は、エンハンスメントレイヤ復号処理を行う。ステップS4225の処理が終了すると、処理はステップS4226に進む。
ステップS4226において、復号制御部1202は、全てのレイヤを処理したか否かを判定する。未処理のレイヤが存在すると判定された場合、処理はステップS4227に進む。
ステップS4227において、復号制御部1202は、次の未処理のレイヤを処理対象(カレントレイヤ)とする。ステップS4227の処理が終了すると、処理はステップS4222に戻る。ステップS4222乃至ステップS4227の処理が繰り返し実行され、各レイヤが復号される。
そして、ステップS4226において、全てのレイヤが処理されたと判定された場合、復号処理が終了する。
<ベースレイヤ復号処理の流れ>
次に、図95のフローチャートを参照して、図94のステップS4223において実行されるベースレイヤ復号処理の流れの例を説明する。
ベースレイヤ復号処理が開始されると、ステップS4241において、ベースレイヤ画像復号部1203の蓄積バッファ1211は、符号化側から伝送されたベースレイヤのビットストリームを蓄積する。ステップS4242において、可逆復号部1212は、蓄積バッファ1211から供給されるベースレイヤのビットストリーム(符号化された差分画像情報)を復号する。すなわち、可逆符号化部1116により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。このとき、ヘッダ情報などのビットストリームに含められた差分画像情報以外の各種情報も復号される。
ステップS4243において、逆量子化部1213は、ステップS4242の処理により得られた、量子化された係数を逆量子化する。
ステップS4244において、逆直交変換部1214は、カレントブロック(カレントTU)を逆直交変換する。
ステップS4245において、イントラ予測部1221若しくは動き補償部1222は、予測処理を行い、予測画像を生成する。つまり、可逆復号部1212において判定された、符号化の際に適用された予測モードで予測処理が行われる。より具体的には、例えば、符号化の際にイントラ予測が適用された場合、イントラ予測部1221が、符号化の際に最適とされたイントラ予測モードで予測画像を生成する。また、例えば、符号化の際にインター予測が適用された場合、動き補償部1222が、符号化の際に最適とされたインター予測モードで予測画像を生成する。
ステップS4246において、演算部1215は、ステップS4244の逆直交変換処理により生成された差分画像情報に、ステップS4245において生成された予測画像を加算する。これにより元の画像が復号される。
ステップS4247において、ループフィルタ1216は、ステップS4246において得られた復号画像に対して、ループフィルタ処理を適宜行う。
ステップS4248において、画面並べ替えバッファ1217は、ステップS4247においてフィルタ処理された画像の並べ替えを行う。すなわち画面並べ替えバッファ1112により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS4249において、D/A変換部1218は、ステップS4248においてフレームの順序が並べ替えられた画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
ステップS4250において、フレームメモリ1219は、ステップS4247においてループフィルタ処理された復号画像を記憶する。
ステップS4251において、イントラ予測モード提供部1204の間引き処理部1252は、ステップS4245において、イントラ予測部1221のイントラ予測処理により得られたベースレイヤのイントラ予測モードを、図93のステップS4202において取得された間引き率に従って間引く。
ステップS4252において、イントラ予測モード提供部1204のイントラ予測モードバッファ1253は、ステップS4251において間引かれることにより選択されたベースレイヤのイントラ予測モードを記憶する。
ステップS4252の処理が終了すると、ベースレイヤ復号処理が終了し、処理は図94に戻る。ベースレイヤ復号処理は、例えば、ピクチャ単位で実行される。つまり、カレントレイヤの各ピクチャに対してベースレイヤ復号処理が実行される。ただし、ベースレイヤ復号処理内の各処理は、それぞれの処理単位毎に行われる。
<エンハンスメントレイヤ復号処理の流れ>
次に、図96のフローチャートを参照して、図94のステップS4225において実行されるエンハンスメントレイヤ復号処理の流れの例を説明する。
エンハンスメントレイヤ復号処理のステップS4271乃至ステップS4274、並びに、ステップS4276乃至ステップS4280の各処理は、ベースレイヤ復号処理のステップS4241乃至ステップS4244、並びに、ステップS4246乃至ステップS4250の各処理と同様に実行される。ただし、エンハンスメントレイヤ復号処理の各処理は、エンハンスメントレイヤ画像復号部1205の各処理部により、エンハンスメントレイヤ符号化データに対して行われる。
なお、ステップS4275において、エンハンスメントレイヤ画像復号部1205のイントラ予測部1231および動き補償部1222は、エンハンスメントレイヤ符号化データに対して、予測処理を行う。
ステップS4280の処理が終了すると、エンハンスメントレイヤ復号処理が終了され、処理は図94に戻る。エンハンスメントレイヤ復号処理は、例えば、ピクチャ単位で実行される。つまり、カレントレイヤの各ピクチャに対してエンハンスメントレイヤ復号処理が実行される。ただし、エンハンスメントレイヤ復号処理内の各処理は、それぞれの処理単位毎に行われる。
<予測処理の流れ>
次に、図97のフローチャートを参照して、図96のステップS4275において実行される予測処理の流れの例を説明する。
予測処理が開始されると、エンハンスメントレイヤ画像復号部1205のイントラ予測部1231は、ステップS4301において、予測モードがイントラ予測であるか否かを判定する。イントラ予測であると判定した場合、処理はステップS4302に進む。
ステップS4302において、イントラ予測部1231は、イントラ予測モード提供部1204のイントラ予測モードバッファ1253に記憶されている、選択されたベースレイヤのイントラ予測モードの内、カレントブロックに対応するブロックのイントラ予測モードを取得する。
ステップS4303において、イントラ予測部1231は、ステップS4302において取得したイントラ予測モード(選択されたベースレイヤのイントラ予測モード)を用いて、イントラ予測処理を行い、予測画像を生成する。ステップS4303の処理が終了すると、予測処理が終了し、処理は図96に戻る。
また、ステップS4301において、インター予測であると判定された場合、処理はステップS4304に進む。ステップS4304において、動き補償部1222は、符号化の際に採用されたインター予測モードである最適インター予測モードで動き補償を行い、予測画像を生成する。ステップS4304の処理が終了すると、予測処理が終了し、処理は図96に戻る。
以上のように各処理を実行することにより、スケーラブル復号装置1200は、エンハンスメントレイヤの復号におけるイントラ予測において、ベースレイヤのイントラ予測モードを用いることができるので、符号化効率の低減を抑制することができる。これにより、スケーラブル復号装置1200は、符号化・復号による画質の低減を抑制することができる。また、そのベースレイヤのイントラ予測モードをエンハンスメントレイヤに提供する際に、そのイントラ予測モードを、符号化側から供給された所定の間引き率で間引くので、スケーラブル復号装置1200は、スケーラブル符号化装置1100の場合と同様に、符号化・復号に必要な記憶容量の増大を抑制することができる。
以上において、第5の実施の形態および第6の実施の形態等において説明したスケーラブル符号化・復号に関する本技術は、当然、第1の実施の形態乃至第3の実施の形態において説明したような多視点画像符号化・復号についても同様に適用することができる。
つまり、多視点画像符号化に本技術を適用する場合も、画像符号化装置が図81乃至図84のような構成を有し、図85乃至図88のフローチャートを参照して説明したような各処理を実行するようにすればよい。
また、多視点画像復号に本技術を適用する場合も、画像復号装置が図89乃至図92のような構成を有し、図93乃至図97のフローチャートを参照して説明したような各処理を実行するようにすればよい。
<8.概要3>
<予測方向制御>
ところで、従来、HEVCにおいては、動きベクトルの符号化(mv_coding)のためにテンポラル動きベクトル(temporal_motion_vector)を利用することができ、さらに、L0方向とL1方向とのいずれか一方のみを利用することができる。つまり、テンポラル動きベクトル(temporal_motion_vector)は、L0方向とL1方向とのいずれか一方のみを保存すればよい。
図98乃至図100は、従来のスライスセグメントヘッダのシンタクスの様子を示す図である。図99に示されるフラグ情報(collocated_from_l0_flag)は、L0方向のテンポラル動きベクトル(temporal_motion_vector)を保存するか否かを示すフラグ情報である。このフラグ情報の値が「1(真)」の場合、L0方向のテンポラル動きベクトル(temporal_motion_vector)が保存され、このフラグ情報の値が「0(偽)」の場合、L1方向のテンポラル動きベクトル(temporal_motion_vector)が保存される。
ところで、Vadim Seregin, Patrice Onno, Shan Liu, Elena Alshina, Chulkeun Kim, Haitao Yang, "Description of Core Experiment SCE5: Inter-layer syntax prediction using HEVC base layer", JCTVC-L1105, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 1112th Meeting: Geneva, CH, 14-23 Jan. 2013では、スケーラブル(Scalable)符号化のための動きベクトル符号化方式として、ベースレイヤ(Baselayer)における動き情報を利用するレイヤ間シンタクス予測(Inter-layer syntax prediction)が提案されている。
このレイヤ間シンタクス予測においては、エンハンスメントレイヤ(Enhancementlayer)のL0動きベクトル符号化処理のためには、ベースレイヤのL0動き情報が用いられ、エンハンスメントレイヤのL1動きベクトル符号化のためには、ベースレイヤのL1動き情報が用いられる。したがって、L0方向およびL1方向の両方の動き情報をバッファに格納しなければならず、符号化・復号に必要な記憶容量が増大する恐れがあった。
そこで、複数レイヤよりなる画像データの、処理対象であるカレントレイヤの符号化に用いる他のレイヤの動き情報の予測方向を設定し、他のレイヤから、設定された予測方向の動き情報のみを取得するようにする。例えば、画像データを階層符号化する場合、エンハンスメントレイヤの符号化の、ベースレイヤの動き情報を利用するレイヤ間シンタクス予測において、そのレイヤ間シンタクス予測に利用するベースレイヤの動き情報の予測方向を設定し、その予測方向の動き情報のみを取得し、バッファに格納するようにする。例えば、ベースレイヤのL0方向若しくはL1方向のいずれか一方の動き情報のみを取得し、バッファに格納するようにする。そして、エンハンスメントレイヤの符号化におけるレイヤ間シンタクス予測において、そのバッファに格納したベースレイヤの動き情報を読み出して利用するようにする。
このようにすることにより、ベースレイヤの全ての予測方向(例えばL0方向およびL1方向)の動き情報を取得する場合よりも、ベースレイヤの動き情報を保持するのに必要なバッファの容量を低減することができる。つまり、符号化に必要な記憶容量の増大を抑制することができる。
また、ベースレイヤの動き情報の予測方向の設定を示す制御情報を、復号側に伝送するようにする。そして、復号側では、符号化側から伝送されてきた制御情報の設定に従って、ベースレイヤの、制御情報により指定された予測方向(例えばL0方向若しくはL1方向)の動き情報のみを取得し、バッファに格納するようにする。そして、エンハンスメントレイヤの復号におけるレイヤ間シンタクス予測において、そのバッファに格納したベースレイヤの動き情報を読み出して利用するようにする。
このようにすることにより、ベースレイヤの全ての予測方向(例えばL0方向およびL1方向)の動き情報を取得する場合よりも、ベースレイヤの動き情報を保持するのに必要なバッファの容量を低減することができる。つまり、復号に必要な記憶容量の増大を抑制することができる。
<シンタクス例>
図101乃至図103は、このようにする場合のスライスセグメントヘッダのシンタクスの様子を示す図である。図102に示されるように、上述した制御情報として、フラグ情報(colbasemv_from_l0_flag)が伝送される。このフラグ情報は、ベースレイヤのL0方向の動き情報を保存するか否かを示すフラグ情報である。このフラグ情報の値が「1(真)」の場合、ベースレイヤからL0方向の動き情報が取得され、バッファに格納される。また、このフラグ情報の値が「0(偽)」の場合、ベースレイヤからL1方向の動き情報が取得され、バッファに格納される。このようにバッファに格納されたベースレイヤの動き情報が、エンハンスメントレイヤのレイヤ間予測において利用される。
このような制御情報を伝送することにより、復号側において、符号化側と同様のレイヤ間シンタクス予測を行うことができる。したがって、復号に必要な記憶容量の増大を抑制することができる。
このように、レイヤ間予測に利用するベースレイヤの動き情報の予測方向を示す制御情報は、その予測方向が所定の方向(例えばL0方向)であるかを示す情報としてもよい。制御情報をこのようなフラグ情報とすることにより、この制御情報の情報量を少なくすることができる(例えば1ビットにすることができる)。したがって、符号化効率の低減を抑制することができる。
もちろん、この方向はL0方向に限らない。例えば、制御情報が、レイヤ間予測に利用するベースレイヤの動き情報の予測方向がL1方向であるかを示す情報であってもよい。また、この方向を選択することができるようにしてもよい。例えば、スライス、ピクチャ、シーケンス等、任意の単位毎にこの方向を選択することができるようにしてもよい。
また、制御情報はフラグ情報に限らない。例えば、制御情報が、レイヤ間予測に利用するベースレイヤの動き情報の予測方向がL0方向であるか、L1方向であるかを示す情報であってもよい。
なお、図101乃至図103の例では、この制御情報をスライスヘッダにおいて伝送するように説明したが、これに限らない。すなわち、この制御情報は、例えば、シーケンス、ピクチャ、またはLCU等、任意の単位で伝送するようにしてもよい。換言するに、この制御情報の制御単位も、スライスに限らない。例えば、シーケンス、ピクチャ、またはLCU等、任意の単位で制御するようにしてもよい。
なお、レイヤ間予測には、ベースレイヤの、エンハンスメントレイヤの処理対象のカレント領域(エリア)に対応する所定のエリアの動き情報が利用される。
また、ベースレイヤから取得した動き情報の予測方向が、利用時の予測方向と異なる場合、変換することができる。例えば、バッファに格納したベースレイヤのL0方向の動き情報を、エンハンスメントレイヤのL1方向の予測に用いる場合、そのベースレイヤの動き情報がL1方向に変換される。このような変換は、符号化側においても復号側においても同様に行うことができる。
また、ベースレイヤから取得した動き情報は、必要に応じて、スケーラブルなパラメータをエンハンスメントレイヤ基準とするように変換することができる。例えば、解像度がスケーラブルな場合、ベースレイヤとエンハンスメントレイヤの解像度比に応じて、取得したベースレイヤの動き情報のスケールを変換(アップサンプル)してもよい。なお、このような変換は、バッファに格納する前に行っても良いし、バッファから読み出した後に行っても良い。このような変換は、符号化側においても復号側においても同様に行うことができる。
次に、以上のような本技術について、具体的な装置への適用例について説明する。
<9.第7の実施の形態>
<画像符号化装置>
図104は、本技術を適用した画像処理装置の一態様である、画像符号化装置を示す図である。図104に示される画像符号化装置1300は、階層画像符号化を行う装置である。図104に示されるように、画像符号化装置1300は、ベースレイヤ画像符号化部1301、エンハンスメントレイヤ画像符号化部1302、および多重化部1303を有する。
ベースレイヤ画像符号化部1301は、ベースレイヤ画像を符号化し、ベースレイヤ画像符号化ストリームを生成する。エンハンスメントレイヤ画像符号化部1302は、エンハンスメントレイヤ画像を符号化し、エンハンスメントレイヤ画像符号化ストリームを生成する。多重化部1303は、ベースレイヤ画像符号化部1301において生成されたベースレイヤ画像符号化ストリームと、エンハンスメントレイヤ画像符号化部1302において生成されたエンハンスメントレイヤ画像符号化ストリームとを多重化し、階層画像符号化ストリームを生成する。多重化部1303は、生成した階層画像符号化ストリームを復号側に伝送する。
ベースレイヤ画像符号化部1301は、他のレイヤを参照せずにベースレイヤ画像を符号化する。これに対してエンハンスメントレイヤ画像符号化部1302は、エンハンスメントレイヤ画像の符号化において、ベースレイヤを参照し、レイヤ間予測を行う。例えば、エンハンスメントレイヤ画像符号化部1302は、ベースレイヤ画像符号化部1301がベースレイヤ画像を符号化する際に生成されたベースレイヤの動き情報を取得し、そのベースレイヤの動き情報を用いてレイヤ間シンタクス予測(Inter-layer syntax prediction)を行う。
その際、エンハンスメントレイヤ画像符号化部1302は、ベースレイヤ画像符号化部1301から取得する動き情報の予測方向を設定し、その設定した予測方向の動き情報のみを取得し、バッファに格納する。そして、エンハンスメントレイヤ画像符号化部1302は、そのバッファに格納されているベースレイヤの動き情報(すなわち、設定された予測方向の動き情報)を用いてレイヤ間予測を行う。
また、エンハンスメントレイヤ画像符号化部1302は、その予測方向の設定内容を示す制御情報を、多重化部1303を介して(階層画像符号化ストリームとして)、復号側に伝送する。
<ベースレイヤ画像符号化部>
図105は、図104のベースレイヤ画像符号化部1301の主な構成例を示すブロック図である。図105に示されるように、ベースレイヤ画像符号化部1301は、A/D変換部1311、画面並べ替えバッファ1312、演算部1313、直交変換部1314、量子化部1315、可逆符号化部1316、蓄積バッファ1317、逆量子化部1318、および逆直交変換部1319を有する。また、ベースレイヤ画像符号化部1301は、演算部1320、ループフィルタ1321、フレームメモリ1322、選択部1323、イントラ予測部1324、インター予測部1325、予測画像選択部1326、およびレート制御部1327を有する。
A/D変換部1311は、入力された画像データ(ベースレイヤ画像情報)をA/D変換し、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ1312に供給し、記憶させる。画面並べ替えバッファ1312は、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部1313に供給する。また、画面並べ替えバッファ1312は、フレームの順番を並び替えた画像を、イントラ予測部1324およびインター予測部1325にも供給する。
演算部1313は、画面並べ替えバッファ1312から読み出された画像から、予測画像選択部1326を介してイントラ予測部1324若しくはインター予測部1325から供給される予測画像を減算し、その差分情報を直交変換部1314に出力する。例えば、イントラ符号化が行われる画像の場合、演算部1313は、画面並べ替えバッファ1312から読み出された画像から、イントラ予測部1324から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部1313は、画面並べ替えバッファ1312から読み出された画像から、インター予測部1325から供給される予測画像を減算する。
直交変換部1314は、演算部1313から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。直交変換部1314は、その変換係数を量子化部1315に供給する。
量子化部1315は、直交変換部1314から供給される変換係数を量子化する。量子化部1315は、レート制御部1327から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。量子化部1315は、量子化された変換係数を可逆符号化部1316に供給する。
可逆符号化部1316は、量子化部1315において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部1327の制御の下で量子化されているので、この符号量は、レート制御部1327が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部1316は、イントラ予測のモードを示す情報などをイントラ予測部1324から取得し、インター予測のモードを示す情報や差分動きベクトル情報などをインター予測部1325から取得する。さらに、可逆符号化部1316は、シーケンスパラメータセット(SPS)、およびピクチャパラメータセット(PPS)等を含むベースレイヤのNALユニットを適宜生成する。
また、可逆符号化部1316は、ベースレイヤ領域分割設定部により設定されたベースレイヤの領域(例えばタイルやスライス等)分割に関する情報(ベースレイヤ領域分割情報とも称する)を符号化する。
可逆符号化部1316は、これらの各種情報を任意の符号化方式で符号化し、符号化データ(符号化ストリームとも称する)の一部とする(多重化する)。可逆符号化部1316は、符号化して得られた符号化データを蓄積バッファ1317に供給して蓄積させる。
可逆符号化部1316の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ1317は、可逆符号化部1316から供給された符号化データ(ベースレイヤ符号化データ)を、一時的に保持する。蓄積バッファ1317は、所定のタイミングにおいて、保持しているベースレイヤ符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。すなわち、蓄積バッファ1317は、符号化データを伝送する伝送部でもある。
また、量子化部1315において量子化された変換係数は、逆量子化部1318にも供給される。逆量子化部1318は、その量子化された変換係数を、量子化部1315による量子化に対応する方法で逆量子化する。逆量子化部1318は、得られた変換係数を、逆直交変換部1319に供給する。
逆直交変換部1319は、逆量子化部1318から供給された変換係数を、直交変換部1314による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部1320に供給される。
演算部1320は、逆直交変換部1319から供給された逆直交変換結果である、復元された差分情報に、予測画像選択部1326を介してイントラ予測部1324若しくはインター予測部1325からの予測画像を加算し、局部的に復号された画像(復号画像)を得る。その復号画像は、ループフィルタ1321またはフレームメモリ1322に供給される。
ループフィルタ1321は、デブロックフィルタや適応ループフィルタ等を含み、演算部1320から供給される再構成画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ1321は、再構成画像に対してデブロックフィルタ処理を行うことにより再構成画像のブロック歪を除去する。また、例えば、ループフィルタ1321は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。ループフィルタ1321は、フィルタ処理結果(以下、復号画像と称する)をフレームメモリ1322に供給する。
なお、ループフィルタ1321が、再構成画像に対してさらに、他の任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ1321は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部1316に供給し、それを符号化させるようにすることもできる。
フレームメモリ1322は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、選択部1323に供給する。
より具体的には、フレームメモリ1322は、演算部1320から供給される再構成画像と、ループフィルタ1321から供給される復号画像とをそれぞれ記憶する。フレームメモリ1322は、所定のタイミングにおいて、若しくは、イントラ予測部1324等の外部からの要求に基づいて、記憶している再構成画像を、選択部1323を介してイントラ予測部1324に供給する。また、フレームメモリ1322は、所定のタイミングにおいて、若しくは、インター予測部1325等の外部からの要求に基づいて、記憶している復号画像を、選択部1323を介して、インター予測部1325に供給する。
選択部1323は、フレームメモリ1322から供給される参照画像の供給先を選択する。例えば、イントラ予測の場合、選択部1323は、フレームメモリ1322から供給される参照画像(カレントピクチャ内の画素値)をイントラ予測部1324に供給する。また、例えば、インター予測の場合、選択部1323は、フレームメモリ1322から供給される参照画像をインター予測部1325に供給する。
イントラ予測部1324は、処理対象のフレームの画像であるカレントピクチャについて、予測処理を行い、予測画像を生成する。イントラ予測部1324は、この予測処理を、所定のブロック毎に(ブロックを処理単位として)行う。つまり、イントラ予測部1324は、カレントピクチャの、処理対象であるカレントブロックの予測画像を生成する。その際、イントラ予測部1324は、選択部1323を介してフレームメモリ1322から参照画像として供給される再構成画像を用いて予測処理(画面内予測(イントラ予測とも称する))を行う。つまり、イントラ予測部1324は、再構成画像に含まれる、カレントブロックの周辺の画素値を用いて予測画像を生成する。このイントラ予測に利用される周辺画素値は、カレントピクチャの、過去に処理された画素の画素値である。このイントラ予測には(すなわち、予測画像の生成の仕方には)、複数の方法(イントラ予測モードとも称する)が、候補として予め用意されている。イントラ予測部1324は、この予め用意された複数のイントラ予測モードでこのイントラ予測を行う。
イントラ予測部1324は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ1312から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部1324は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部1326に供給する。
また、上述したように、イントラ予測部1324は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部1316に供給し、符号化させる。
インター予測部1325は、カレントピクチャについて、予測処理を行い、予測画像を生成する。インター予測部1325は、この予測処理を、所定のブロック毎に(ブロックを処理単位として)行う。つまり、インター予測部1325は、カレントピクチャの、処理対象であるカレントブロックの予測画像を生成する。その際、インター予測部1325は、画面並べ替えバッファ1312から供給される入力画像の画像データと、フレームメモリ1322から参照画像として供給される復号画像の画像データとを用いて、予測処理を行う。この復号画像は、カレントピクチャより前に処理されたフレームの画像(カレントピクチャでない他のピクチャ)である。つまり、インター予測部1325は、他のピクチャの画像を用いて予測画像を生成する予測処理(画面間予測(インター予測とも称する))を行う。
このインター予測は、動き予測と動き補償よりなる。より具体的には、インター予測部1325は、入力画像と参照画像を用いて、カレントブロックについて動き予測を行い、動きベクトルを検出する。そして、インター予測部1325は、参照画像を用いて、検出された動きベクトルに応じて動き補償処理を行い、カレントブロックの予測画像(インター予測画像情報)を生成する。このインター予測には(すなわち、予測画像の生成の仕方には)、複数の方法(インター予測モードとも称する)が、候補として予め用意されている。インター予測部1325は、この予め用意された複数のインター予測モードでこのようなインター予測を行う。
インター予測部1325は、候補となる全てのインター予測モードで予測画像を生成する。インター予測部1325は、画面並べ替えバッファ1312から供給される入力画像と、生成した差分動きベクトルの情報などを用いて、各予測画像のコスト関数値を評価し、最適なモードを選択する。インター予測部1325は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部1326に供給する。
インター予測部1325は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部1316に供給し、符号化させる。必要な情報としては、例えば、生成された差分動きベクトルの情報や、予測動きベクトル情報として予測動きベクトルのインデックスを示すフラグなどがある。
予測画像選択部1326は、演算部1313や演算部1320に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、予測画像選択部1326は、予測画像の供給元としてイントラ予測部1324を選択し、そのイントラ予測部1324から供給される予測画像を演算部1313や演算部1320に供給する。また、例えば、インター符号化の場合、予測画像選択部1326は、予測画像の供給元としてインター予測部1325を選択し、そのインター予測部1325から供給される予測画像を演算部1313や演算部1320に供給する。
レート制御部1327は、蓄積バッファ1317に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部1315の量子化動作のレートを制御する。
なお、ベースレイヤ画像符号化部1301は、他のレイヤを参照せずに符号化を行う。つまり、イントラ予測部1324およびインター予測部1325は、他のレイヤの符号化に関する情報(例えば、復号画像、イントラ予測モード情報、インター予測モード情報、および動き情報等)を参照しない。
また、インター予測部1325は、エンハンスメントレイヤ画像符号化部1302により要求された予測方向(例えばL0方向若しくはL1方向)の動き情報をエンハンスメントレイヤ画像符号化部1302に供給する。
<エンハンスメントレイヤ画像符号化部>
図106は、図104のエンハンスメントレイヤ画像符号化部1302の主な構成例を示すブロック図である。図106に示されるように、エンハンスメントレイヤ画像符号化部1302は、図105のベースレイヤ画像符号化部1301と基本的に同様の構成を有する。
つまり、エンハンスメントレイヤ画像符号化部1302は、図106に示されるように、A/D変換部1331、画面並べ替えバッファ1332、演算部1333、直交変換部1334、量子化部1335、可逆符号化部1336、蓄積バッファ1337、逆量子化部1338、および逆直交変換部1339を有する。また、エンハンスメントレイヤ画像符号化部1302は、演算部1340、ループフィルタ1341、フレームメモリ1342、選択部1343、イントラ予測部1344、インター予測部1345、予測画像選択部1346、およびレート制御部1347を有する。
これらのA/D変換部1331乃至レート制御部1347は、図105のA/D変換部1311乃至レート制御部1327に対応し、それぞれ、対応する処理部と同様の処理を行う。ただし、エンハンスメントレイヤ画像符号化部1302の各部は、ベースレイヤではなく、エンハンスメントレイヤ画像情報の符号化についての処理を行う。したがって、A/D変換部1331乃至レート制御部1347の処理の説明として、上述した図105のA/D変換部1311乃至レート制御部1327についての説明を適用することができるが、その場合、処理するデータは、ベースレイヤのデータではなく、エンハンスメントレイヤのデータであるものとする必要がある。また、データの入力元や出力先の処理部は、適宜、A/D変換部1331乃至レート制御部1347の中の、対応する処理部に置き換えて読む必要がある。
ただし、インター予測部1345は、ベースレイヤ画像符号化部1301から取得する動き情報の予測方向(例えばL0方向若しくはL1方向)を設定し、その設定した予測方向のベースレイヤの動き情報を、ベースレイヤ画像符号化部1301から取得し、内蔵するバッファに格納する。インター予測部1345は、このバッファに格納したベースレイヤの動き情報を用いてレイヤ間シンタクス予測を行う。
<インター予測部>
図107は、図106のインター予測部1345の主な構成例を示すブロック図である。図107に示されるように、インター予測部1345は、ベースレイヤ参照予測方向設定部1371、ベースレイヤ動き情報バッファ1372、動き情報変換部1373、動き予測部1374、および動き補償部1375を有する。
ベースレイヤ参照予測方向設定部1371は、参照する(レイヤ間シンタクス予測で利用する)ベースレイヤの動き情報の予測方向を設定する。例えば、ベースレイヤ参照予測方向設定部1371は、ベースレイヤの、L0方向の動き情報、若しくは、L1方向の動き情報のいずれを参照するかを選択する。
なお、ベースレイヤ参照予測方向設定部1371は、この予測方向の設定内容を示す制御情報を生成し、それをベースレイヤ動き情報バッファ1372および動き情報変換部1373に供給することにより、この設定を、ベースレイヤ動き情報バッファ1372および動き情報変換部1373に反映させる。
この制御情報は、例えば、<8.概要3>で上述したようにどのような情報であってもよい。図107の例においては、ベースレイヤ参照予測方向設定部1371は、ベースレイヤのL0方向の動き情報を参照するかを示すフラグ情報(colbasemv_from_l0_flag)を制御情報として生成し、ベースレイヤ動き情報バッファ1372および動き情報変換部1373に供給する。また、ベースレイヤ参照予測方向設定部1371は、このフラグ情報(colbasemv_from_l0_flag)を、可逆符号化部1336に供給し、符号化させ、復号側に伝送させる。
ベースレイヤ動き情報バッファ1372は、ベースレイヤ画像符号化部1301からベースレイヤの動き情報(ベースレイヤ動き情報とも称する)を取得し、格納(保持)する。その際、ベースレイヤ動き情報バッファ1372は、ベースレイヤ参照予測方向設定部1371の設定に従って、すなわち、ベースレイヤ参照予測方向設定部1371から供給された制御情報(フラグ情報(colbasemv_from_l0_flag))により示される予測方向のベースレイヤ動き情報を取得する。このように取得するベースレイヤ動き情報の予測方向を制限することにより、そのベースレイヤ動き情報を格納するベースレイヤ動き情報バッファ1372の記憶容量を低減させることができる。
動き情報変換部1373は、動き予測部1374がレイヤ間予測を行う場合、ベースレイヤ動き情報バッファ1372に格納されているベースレイヤ動き情報を読み出して動き予測部1374に供給する。その際、動き情報変換部1373は、読みだしたベースレイヤ動き情報に対して、適宜、変換処理を行い、変換後のベースレイヤ動き情報を動き予測部1374に供給する。
例えば、動き情報変換部1373は、ベースレイヤ参照予測方向設定部1371の設定に従って、すなわち、ベースレイヤ参照予測方向設定部1371から供給された制御情報(フラグ情報(colbasemv_from_l0_flag))により示される予測方向が、動き予測部1374のレイヤ間予測の予測方向と一致しない場合、ベースレイヤ動き情報の予測方向を変換(例えば、L0方向の動き情報をL1方向に変換したり、L1方向の動き情報をL0方向に変換したり)する。
また、例えば、動き情報変換部1373は、ベースレイヤ動き情報の、階層間でスケーラブルなパラメータを、ベースレイヤ基準からエンハンスメントレイヤ基準に変換(換算)することもできる。
動き予測部1374は、候補となる全てのインター予測モードで動き予測を行う。例えば、動き予測部1374は、画面並べ替えバッファ1332から供給される入力画像、および、フレームメモリ1342から供給される参照画像を用いて動き予測を行う。また、例えば、動き予測部1374は、動き情報変換部1373から供給されるベースレイヤ動き情報を用いてレイヤ間シンタクス予測を行う。
このように全ての候補のモードで予測を行うと、動き予測部1374は、各予測結果についてコスト関数値を評価し、その評価結果に基づいて最適なモードを選択する。動き予測部1374は、最適なモードとして選択したモードの動き情報を最適動き情報として動き補償部1375に供給する。また、動き予測部1374は、最適なモードとして選択したモードの動き予測に関する情報である最適インター予測情報を可逆符号化部1336に供給し、符号化させ、復号側に伝送させる。この最適インター予測情報には、例えば、最適なモードを示す情報、並びに、最適動き情報若しくは最適動き情報を符号化した情報(例えば差分動き情報)等が含まれる。
動き補償部1375は、動き予測部1374から供給される最適動き情報と、フレームメモリ1342から供給される参照画像とを用いて、動き補償を行い、予測画像を生成する。動き補償部1375は、生成した予測画像を予測画像選択部1346に供給する。
<画像符号化処理の流れ>
次に、以上のような画像符号化装置1300により実行される各処理の流れについて説明する。最初に、図108のフローチャートを参照して、画像符号化処理の流れの例を説明する。
画像符号化処理が開始されると、ステップS5101において、画像符号化装置1300のベースレイヤ画像符号化部1301は、ベースレイヤの画像データを符号化する。
ステップS5102において、エンハンスメントレイヤ画像符号化部1302は、エンハンスメントレイヤの画像データを符号化する。
ステップS5103において、多重化部1303は、ステップS5101の処理により生成されたベースレイヤ画像符号化ストリームと、ステップS5102の処理により生成されたエンハンスメントレイヤ画像符号化ストリームとを(すなわち、各レイヤのビットストリームを)多重化し、1系統の階層画像符号化ストリームを生成する。
ステップS5103の処理が終了すると、画像符号化装置1300は、画像符号化処理を終了する。このような画像符号化処理により1ピクチャ(若しくは1スライス)が処理される。したがって、画像符号化装置1300は、このような画像符号化処理を階層化された動画像データのピクチャ(若しくはスライス)毎に繰り返し実行する。
<ベースレイヤ符号化処理の流れ>
次に、図108のステップS5101において、ベースレイヤ画像符号化部1301により実行されるベースレイヤ符号化処理の流れの例を、図109のフローチャートを参照して説明する。
ベースレイヤ符号化処理が開始されると、ベースレイヤ画像符号化部1301のA/D変換部1311は、ステップS5121において、入力された動画像の各フレーム(ピクチャ)の画像をA/D変換する。
ステップS5122において、画面並べ替えバッファ1312は、ステップS5121においてA/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS5123において、イントラ予測部1324は、イントラ予測モードのイントラ予測処理を行う。
ステップS5124において、インター予測部1325は、インター予測モードでの動き予測や動き補償等を行うインター予測処理を行う。つまり、インター予測部1325は、全ての候補となるモードについて動き予測を行い、その予測結果についてコスト関数値を算出して評価し、その評価結果に基づいて最適なインター予測モードを選択する。そして、インター予測部1325は、その最適なインター予測モードで動き補償を行い、予測画像を生成する。なお、ベースレイヤ画像符号化部1301は、他のレイヤの情報を参照しないので、インター予測部1325は、レイヤ間予測を行わない。
ステップS5125において、予測画像選択部1326は、コスト関数値等に基づいて、予測画像を選択する。つまり、予測画像選択部1326は、ステップS5123のイントラ予測により生成された予測画像と、ステップS5124のインター予測により生成された予測画像のいずれか一方を選択する。
ステップS5126において、演算部1313は、ステップS5122の処理によりフレーム順を並び替えられた入力画像と、ステップS5125の処理により選択された予測画像との差分を演算する。つまり、演算部1313は、入力画像と予測画像との差分画像の画像データを生成する。このようにして求められた差分画像の画像データは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS5127において、直交変換部1314は、ステップS5128の処理により生成された差分画像の画像データを直交変換する。
ステップS5128において、量子化部1315は、レート制御部1327により算出された量子化パラメータを用いて、ステップS5127の処理により得られた直交変換係数を量子化する。
ステップS5129において、逆量子化部1318は、ステップS5128の処理により生成された量子化された係数(量子化係数とも称する)を、量子化部1315の特性に対応する特性で逆量子化する。
ステップS5130において、逆直交変換部1319は、ステップS5129の処理により得られた直交変換係数を逆直交変換する。
ステップS5131において、演算部1320は、ステップS5130の処理により復元された差分画像に、ステップS5125の処理により選択された予測画像を加算することにより、再構成画像の画像データを生成する。
ステップS5132においてループフィルタ1321は、ステップS5131の処理により生成された再構成画像の画像データにループフィルタ処理を行う。これにより、再構成画像のブロック歪み等が除去される。
ステップS5133において、フレームメモリ1322は、ステップS5132の処理により得られた復号画像やステップS5131の処理により得られた再構成画像等のデータを記憶する。
ステップS5134において、可逆符号化部1316は、ステップS5128の処理により得られた、量子化された係数を符号化する。すなわち、差分画像に対応するデータに対して、可変長符号化や算術符号化等の可逆符号化が行われる。
また、このとき、可逆符号化部1316は、ステップS5125の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部1316は、イントラ予測部1324から供給される最適イントラ予測モード情報、または、インター予測部1325から供給される最適インター予測情報なども符号化し、符号化データに付加する。
さらに、可逆符号化部1316は、各種ナルユニット等のシンタクス要素も設定し、符号化し、符号化データに付加する。
ステップS5135において蓄積バッファ1317は、ステップS5134の処理により得られた符号化データを蓄積する。蓄積バッファ1317に蓄積された符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS5136においてレート制御部1327は、ステップS5135の処理により蓄積バッファ1317に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部1315の量子化動作のレートを制御する。また、レート制御部1327は、量子化パラメータに関する情報を、量子化部1315に供給する。
ステップS5136の処理が終了すると、ベースレイヤ符号化処理が終了し、処理は図108に戻る。
<エンハンスメントレイヤ符号化処理の流れ>
次に、図108のステップS5102において、エンハンスメントレイヤ画像符号化部1302により実行されるエンハンスメントレイヤ符号化処理の流れの例を、図110のフローチャートを参照して説明する。
エンハンスメントレイヤ符号化処理が開始されると、エンハンスメントレイヤ画像符号化部1302のベースレイヤ参照予測方向設定部1371は、ステップS5151において、参照するベースレイヤ動き情報の予測方向を設定する。
ステップS5152において、ベースレイヤ参照予測方向設定部1371は、ステップS5151において行った設定の内容を示す制御情報を可逆符号化部1336に供給し、符号化させ、復号側に伝送させる。
ステップS5153において、ベースレイヤ動き情報バッファ1372は、ステップS5151において設定された予測方向のベースレイヤ動き情報を、ベースレイヤ画像符号化部1301から取得し、保持する。
ステップS5154乃至ステップS5169の各処理は、図109のステップS5121乃至ステップS5136の各処理に対応し、それらの処理と基本的に同様に実行される。
ただし、ステップS5157のインター予測処理では、候補モードにレイヤ間予測も含まれる。つまり、ステップS5157において、動き予測部1374は、候補モードの1つとして、動き情報変換部1373を介してベースレイヤ動き情報バッファ1372から読み出したベースレイヤ動き情報を用いて、レイヤ間シンタクス予測を行う。動き予測部1374は、そのレイヤ間シンタクス予測も含めた全ての候補モードの中から最適なインター予測モードを選択し、その予測画像を生成する。
ステップS5169の処理が終了すると、エンハンスメントレイヤ符号化処理が終了し、処理は、図108に戻る。
以上のように各処理を実行することにより、エンハンスメントレイヤ画像符号化部1302は、ベースレイヤの全ての予測方向(例えばL0方向およびL1方向)の動き情報を取得する場合よりも、ベースレイヤの動き情報を保持するのに必要なバッファの容量を低減することができる。つまり、画像符号化装置1300は、符号化に必要な記憶容量の増大を抑制することができる。
また、画像符号化装置1300は、ベースレイヤ動き情報の予測方向の設定を示す制御情報を復号側に伝送するので、復号側においても、符号化側と同様に、ベースレイヤ動き情報を保持するのに必要なバッファの容量を低減することができる。つまり、復号に必要な記憶容量の増大を抑制することができる。
<ベースレイヤ動き情報参照処理の流れ>
上述したように、図110のステップS5157のインター予測処理においては、レイヤ間予測のために、ベースレイヤ動き情報バッファ1372に保持されているベースレイヤ動き情報が読み出される。このベースレイヤ動き情報を読み出すベースレイヤ動き情報参照処理の流れの例を、図111のフローチャートを参照して説明する。
ベースレイヤ動き情報参照処理が開始されると、インター予測部1345の動き情報変換部1373は、ステップS5181において、参照するベースレイヤ動き情報を、ベースレイヤ動き情報バッファ1372から読み出す。
ステップS5182において、動き情報変換部1373は、レイヤ間予測の予測方向と、ベースレイヤ参照予測方向設定部1371により設定された予測方向(すなわち、ステップS5181において読み出された動き情報の予測方向)とが一致するか否かを判定する。一致しないと判定された場合、処理はステップS5183に進む。
ステップS5183において、動き情報変換部1373は、ステップS5181において読み出されたベースレイヤ動き情報を反転する。例えば、レイヤ間予測の予測方向がL0方向であり、ステップS5181において読み出されたベースレイヤ動き情報の予測方向がL1方向である場合、動き情報変換部1373は、ベースレイヤ動き情報の予測方向をL0方向に変換する。また、例えば、レイヤ間予測の予測方向がL1方向であり、ステップS5181において読み出されたベースレイヤ動き情報の予測方向がL0方向である場合、動き情報変換部1373は、ベースレイヤ動き情報の予測方向をL1方向に変換する。
ステップS5183の処理が終了すると、処理はステップS5184に進む。
また、ステップS5182において予測方向が一致すると判定された場合、処理はステップS5184に進む。つまり、予測方向の変換処理が省略される。
ステップS5184において、動き予測部1374は、このように読み出され、適宜変換処理されたベースレイヤ動き情報を用いてエンハンスメントレイヤの動き予測を行う。
ステップS5184の処理が終了すると、ベースレイヤ動き情報参照処理が終了する。
以上のように、インター予測部1345は、ベースレイヤ動き情報バッファ1372から読み出したベースレイヤ動き情報の予測方向を、レイヤ間予測の予測方向に合わせることができる。したがって、ベースレイヤ動き情報バッファ1372には、一方の予測方向のベースレイヤ動き情報を格納すればよい。したがって、ベースレイヤ動き情報を保持するのに必要なバッファの容量を低減することができる。つまり、符号化に必要な記憶容量の増大を抑制することができる。
なお、以上のようなベースレイヤ動き情報参照処理において、動き情報変換部1373が、ベースレイヤ動き情報バッファ1372から読み出したベースレイヤ動き情報に対して、スケーラブルなパラメータをベースレイヤ基準からエンハンスメントレイヤ基準に変換する変換処理を行うようにしてもよい。この変換処理は、ステップS5182の前に行われるようにしてもよいし、ステップS5184の前に行われるようにしてもよい。
<10.第8の実施の形態>
<画像復号装置>
次に、以上のように符号化された符号化データの復号について説明する。図112は、本技術を適用した画像処理装置の一態様である、図104の画像符号化装置1300に対応する画像復号装置の主な構成例を示すブロック図である。
図112に示される画像復号装置1400は、画像符号化装置1300が生成した符号化データを、その符号化方法に対応する復号方法で復号する(すなわち、階層符号化された符号化データを階層復号する)。
図112に示されるように、画像復号装置1400は、逆多重化部1401、ベースレイヤ画像復号部1402、およびエンハンスメントレイヤ画像復号部1403を有する。
逆多重化部1401は、符号化側から伝送された、ベースレイヤ画像符号化ストリームとエンハンスメントレイヤ画像符号化ストリームとが多重化された階層画像符号化ストリームを受け取り、それを逆多重化し、ベースレイヤ画像符号化ストリームと、エンハンスメントレイヤ画像符号化ストリームとを抽出する。ベースレイヤ画像復号部1402は、逆多重化部1401により抽出されたベースレイヤ画像符号化ストリームを復号し、ベースレイヤ画像を得る。エンハンスメントレイヤ画像復号部1403は、逆多重化部1401により抽出されたエンハンスメントレイヤ画像符号化ストリームを復号し、エンハンスメントレイヤ画像を得る。
ベースレイヤ画像復号部1402は、他のレイヤを参照せずにベースレイヤ画像符号化ストリームを復号する。これに対してエンハンスメントレイヤ画像復号部1403は、エンハンスメントレイヤ画像符号化ストリームの復号において、ベースレイヤを参照し、レイヤ間予測を行う。例えば、エンハンスメントレイヤ画像復号部1403は、ベースレイヤ画像復号部1402がベースレイヤ画像符号化ストリームを復号する際に復元されたベースレイヤの動き情報を取得し、そのベースレイヤの動き情報を用いてレイヤ間シンタクス予測(Inter-layer syntax prediction)を行う。
その際、エンハンスメントレイヤ画像復号部1403は、符号化側から伝送された制御情報(すなわち、符号化側において(符号化の際に)行われた設定)により指定される予測方向のベースレイヤ動き情報のみを取得し、バッファに格納する。そして、エンハンスメントレイヤ画像復号部1403は、そのバッファに格納されているベースレイヤ動き情報(すなわち、符号化の際に用いられたのと同じ予測方向の動き情報)を用いてレイヤ間予測を行う。
<ベースレイヤ画像復号部>
図113は、図112のベースレイヤ画像復号部1402の主な構成例を示すブロック図である。図113に示されるようにベースレイヤ画像復号部1402は、蓄積バッファ1411、可逆復号部1412、逆量子化部1413、逆直交変換部1414、演算部1415、ループフィルタ1416、画面並べ替えバッファ1417、およびD/A変換部1418を有する。また、ベースレイヤ画像復号部1402は、フレームメモリ1419、選択部1420、イントラ予測部1421、インター予測部1422、および予測画像選択部1423を有する。
蓄積バッファ1411は、伝送されてきた符号化データを受け取る受け取り部でもある。蓄積バッファ1411は、伝送されてきた符号化データを受け取って、蓄積し、所定のタイミングにおいてその符号化データを可逆復号部1412に供給する。符号化データには、予測モード情報などの復号に必要な情報が付加されている。可逆復号部1412は、蓄積バッファ1411より供給された、可逆符号化部1316により符号化された情報を、その符号化方式に対応する復号方式で復号する。可逆復号部1412は、復号して得られた差分画像の量子化された係数データを、逆量子化部1413に供給する。
また、可逆復号部1412は、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、イントラ予測部1421およびインター予測部1422の内、選択されたと判定したモードの方に供給する。つまり、例えば、符号化側において最適な予測モードとしてイントラ予測モードが選択された場合、その最適な予測モードに関する情報がイントラ予測部1421に供給される。また、例えば、符号化側において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報がインター予測部1422に供給される。
さらに、可逆復号部1412は、例えば、量子化行列や量子化パラメータ等の、逆量子化に必要な情報を逆量子化部1413に供給する。
逆量子化部1413は、可逆復号部1412により復号されて得られた量子化された係数データを、量子化部1315の量子化方式に対応する方式で逆量子化する。なお、この逆量子化部1413は、逆量子化部1318と同様の処理部である。逆量子化部1413は、得られた係数データを逆直交変換部1414に供給する。
逆直交変換部1414は、逆量子化部1413から供給される直交変換係数を、必要に応じて、直交変換部1314の直交変換方式に対応する方式で逆直交変換する。なお、この逆直交変換部1414は、逆直交変換部1319と同様の処理部である。
この逆直交変換処理により差分画像の画像データが復元される。この復元された差分画像の画像データは、画像符号化装置において直交変換される前の差分画像の画像データに対応する。以下においては、この、逆直交変換部1414の逆直交変換処理により得られた、復元された差分画像の画像データを、復号残差データとも称する。逆直交変換部1414は、この復号残差データを、演算部1415に供給する。また、演算部1415には、予測画像選択部1423を介して、イントラ予測部1421若しくはインター予測部1422から予測画像の画像データが供給される。
演算部1415は、この復号残差データと予測画像の画像データとを用いて、差分画像と予測画像とを加算した再構成画像の画像データを得る。この再構成画像は、演算部1313により予測画像が減算される前の入力画像に対応する。演算部1415は、その再構成画像をループフィルタ1416に供給する。
ループフィルタ1416は、供給された再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施して復号画像を生成する。例えば、ループフィルタ1416は、再構成画像に対してデブロックフィルタ処理を行うことにより、ブロック歪を除去する。また、例えば、ループフィルタ1416は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ1416が行うフィルタ処理の種類は任意であり、上述した以外のフィルタ処理を行ってもよい。また、ループフィルタ1416が、符号化側から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。さらに、ループフィルタ1416が、このようなフィルタ処理を省略し、入力されたデータをフィルタ処理せずに出力することもできる。
ループフィルタ1416は、フィルタ処理結果である復号画像(若しくは再構成画像)を画面並べ替えバッファ1417およびフレームメモリ1419に供給する。
画面並べ替えバッファ1417は、復号画像についてフレームの順番の並べ替えを行う。すなわち、画面並べ替えバッファ1417は、画面並べ替えバッファ1312により符号化順に並べ替えられた各フレームの画像を、元の表示順に並べ替える。つまり、画面並べ替えバッファ1417は、符号化順に供給される各フレームの復号画像の画像データを、その順に記憶し、符号化順に記憶した各フレームの復号画像の画像データを、表示順に読み出してD/A変換部1418に供給する。D/A変換部1418は、画面並べ替えバッファ1417から供給された各フレームの復号画像(デジタルデータ)をD/A変換し、アナログデータとして、図示せぬディスプレイに出力し、表示させる。
フレームメモリ1419は、供給される復号画像を記憶し、所定のタイミングにおいて、若しくは、イントラ予測部1421やインター予測部1422等の外部の要求に基づいて、記憶している復号画像を参照画像として、選択部1420を介してイントラ予測部1421やインター予測部1422に供給する。
イントラ予測部1421には、イントラ予測モード情報等が可逆復号部1412から適宜供給される。イントラ予測部1421は、イントラ予測部1324において用いられたイントラ予測モード(最適イントラ予測モード)でイントラ予測を行い、予測画像を生成する。その際、イントラ予測部1421は、選択部1420を介してフレームメモリ1419から供給される再構成画像の画像データを用いてイントラ予測を行う。すなわち、イントラ予測部1421は、この再構成画像を参照画像(周辺画素)として利用する。イントラ予測部1421は、生成した予測画像を予測画像選択部1423に供給する。
インター予測部1422には、最適予測モード情報や動き情報等が可逆復号部1412から適宜供給される。インター予測部1422は、可逆復号部1412から取得された最適予測モード情報が示すインター予測モード(最適インター予測モード)で、フレームメモリ1419から取得した復号画像(参照画像)を用いてインター予測を行い、予測画像を生成する。
予測画像選択部1423は、イントラ予測部1421から供給される予測画像またはインター予測部1422から供給される予測画像を、演算部1415に供給する。そして、演算部1415においては、その予測画像と逆直交変換部1414からの復号残差データ(差分画像情報)とが加算されて再構成画像が得られる。
なお、ベースレイヤ画像復号部1402は、他のレイヤを参照せずに復号を行う。つまり、イントラ予測部1421およびインター予測部1422は、他のレイヤの符号化に関する情報(例えば、復号画像、イントラ予測モード情報、インター予測モード情報、および動き情報等)を参照しない。
また、インター予測部1422は、エンハンスメントレイヤ画像復号部1403により要求された予測方向(例えばL0方向若しくはL1方向)の動き情報をエンハンスメントレイヤ画像復号部1403に供給する。
<エンハンスメントレイヤ画像復号部>
図114は、図112のエンハンスメントレイヤ画像復号部1403の主な構成例を示すブロック図である。図114に示されるように、エンハンスメントレイヤ画像復号部1403は、図113のベースレイヤ画像復号部1402と基本的に同様の構成を有する。
つまり、エンハンスメントレイヤ画像復号部1403は、図114に示されるように、蓄積バッファ1431、可逆復号部1432、逆量子化部1433、逆直交変換部1434、演算部1435、ループフィルタ1436、画面並べ替えバッファ1437、およびD/A変換部1438を有する。また、エンハンスメントレイヤ画像復号部1403は、フレームメモリ1439、選択部1440、イントラ予測部1441、インター予測部1442、および予測画像選択部1443を有する。
これらの蓄積バッファ1431乃至予測画像選択部1443は、図113の蓄積バッファ1411乃至予測画像選択部1423に対応し、それぞれ、対応する処理部と同様の処理を行う。ただし、エンハンスメントレイヤ画像復号部1403の各部は、ベースレイヤではなく、エンハンスメントレイヤ画像情報の符号化についての処理を行う。したがって、蓄積バッファ1431乃至予測画像選択部1443の処理の説明として、上述した図113の蓄積バッファ1411乃至予測画像選択部1423についての説明を適用することができるが、その場合、処理するデータは、ベースレイヤのデータではなく、エンハンスメントレイヤのデータであるものとする必要がある。また、データの入力元や出力先の処理部は、適宜、エンハンスメントレイヤ画像復号部1403の、対応する処理部に置き換えて読む必要がある。
ただし、可逆復号部1432は、例えば、スライスヘッダに含まれる、符号化側から供給された、ベースレイヤ画像復号部1402から取得するベースレイヤ動き情報の予測方向の制御情報(例えば、ベースレイヤのL0方向の動き情報を保存するか否かを示すフラグ情報(colbasemv_from_l0_flag))等を、インター予測部1442に供給する。
インター予測部1442は、その制御情報により指定される予測方向のベースレイヤ動き情報を、ベースレイヤ画像復号部1402から取得し、内蔵するバッファに格納する。インター予測部1442は、レイヤ間シンタクス予測を行う場合、このバッファに格納したベースレイヤの動き情報を用いる。
<インター予測部>
図115は、図114のインター予測部1442の主な構成例を示すブロック図である。図115に示されるように、インター予測部1442は、ベースレイヤ動き情報バッファ1471、動き情報変換部1472、および動き補償部1473を有する。
ベースレイヤ動き情報バッファ1471は、可逆復号部1432から供給される制御情報(フラグ情報(colbasemv_from_l0_flag))を取得する。ベースレイヤ動き情報バッファ1471は、その制御情報により示される予測方向のベースレイヤ動き情報を取得して格納する。つまり、ベースレイヤ動き情報バッファ1471は、符号化の際と同一の予測方向のベースレイヤ動き情報を取得する。このように取得するベースレイヤ動き情報の予測方向を制限することにより、そのベースレイヤ動き情報を格納するベースレイヤ動き情報バッファ1471の記憶容量を低減させることができる。
動き情報変換部1472は、可逆復号部1432から供給される制御情報(フラグ情報(colbasemv_from_l0_flag))を取得する。また、動き情報変換部1472は、動き補償部1473がレイヤ間予測により動き情報を再構築する場合、ベースレイヤ動き情報バッファ1471に格納されているベースレイヤ動き情報を読み出して動き補償部1473に供給する。その際、動き情報変換部1472は、読みだしたベースレイヤ動き情報に対して、適宜、変換処理を行い、変換後のベースレイヤ動き情報を動き補償部1473に供給する。
例えば、動き情報変換部1472は、可逆復号部1432から供給される制御情報(フラグ情報(colbasemv_from_l0_flag))により示される予測方向が、動き補償部1473のレイヤ間予測の予測方向と一致しない場合、ベースレイヤ動き情報の予測方向を変換(例えば、L0方向の動き情報をL1方向に変換したり、L1方向の動き情報をL0方向に変換したり)する。
また、例えば、動き情報変換部1472は、ベースレイヤ動き情報の、階層間でスケーラブルなパラメータを、ベースレイヤ基準からエンハンスメントレイヤ基準に変換(換算)することもできる。
動き補償部1473は、可逆復号部1432から供給される最適インター予測情報により示される最適なインター予測モード(符号化の際に採用されたインター予測モード)で動き補償を行い、予測画像を生成する。例えば、動き補償部1473は、可逆復号部1432から供給される最適インター予測情報に含まれる符号化された動き情報(例えば差分動き情報等)を復号してカレントブロックの動き情報を再構築する。そして、動き補償部1473は、再構築した動き情報に対応するフレームメモリ1439から参照画像を取得し、予測画像を生成する。動き補償部1473は、生成した予測画像を、予測画像選択部1443に供給する。
なお、例えば、最適なインター予測モードがレイヤ間シンタクス予測である場合、動き補償部1473は、動き情報変換部1472から供給されるベースレイヤ動き情報を用いてカレントブロックの動き情報を再構築し、予測画像を生成する。
<画像復号処理の流れ>
次に、以上のような画像復号装置1400により実行される各処理の流れについて説明する。最初に、図116のフローチャートを参照して、画像復号処理の流れの例を説明する。
画像復号処理が開始されると、ステップS5201において、画像復号装置1400の逆多重化部1401は、符号化側から伝送される階層画像符号化ストリームをレイヤ毎に逆多重化する。
ステップS5202において、ベースレイヤ画像復号部1402は、ステップS5201の処理により抽出されたベースレイヤ画像符号化ストリームを復号する。ベースレイヤ画像復号部1402は、この復号により生成されたベースレイヤ画像のデータを出力する。
ステップS5203において、エンハンスメントレイヤ画像復号部1403は、ステップS5201の処理により抽出されたエンハンスメントレイヤ画像符号化ストリームを復号する。エンハンスメントレイヤ画像復号部1403は、この復号により生成されたエンハンスメントレイヤ画像のデータを出力する。
ステップS5203の処理が終了すると、画像復号装置1400は、画像復号処理を終了する。このような画像復号処理により1ピクチャ(若しくは1スライス)が処理される。したがって、画像復号装置1400は、このような画像復号処理を階層化された動画像データのピクチャ(若しくはスライス)毎に繰り返し実行する。
<ベースレイヤ復号処理の流れ>
次に、図116のステップS5202において、ベースレイヤ画像復号部1402により実行されるベースレイヤ復号処理の流れの例を、図117のフローチャートを参照して説明する。
ベースレイヤ復号処理が開始されると、ベースレイヤ画像復号部1402の蓄積バッファ1411は、ステップS5221において、伝送されてきたビットストリーム(符号化データ)を蓄積する。ステップS5222において、可逆復号部1412は、蓄積バッファ1411から供給されるビットストリーム(符号化データ)を復号する。すなわち、可逆符号化部1316により符号化されたIピクチャ、Pピクチャ、並びにBピクチャ等の画像データが復号される。このとき、ヘッダ情報などのビットストリームに含められた画像データ以外の各種情報も復号される。
ステップS5223において、逆量子化部1413は、ステップS5222の処理により得られた、量子化された係数を逆量子化する。
ステップS5224において、逆直交変換部1414は、ステップS5223において逆量子化された係数を逆直交変換する。
ステップS5225において、イントラ予測部1421若しくはインター予測部1422は、予測画像を生成する。つまり、可逆復号部1412において判定された、符号化の際に適用された予測モードで動き補償が行われる。より具体的には、例えば、符号化の際にイントラ予測が適用された場合、イントラ予測部1421が、符号化の際に最適とされたイントラ予測モードで予測画像を生成する。また、例えば、符号化の際にインター予測が適用された場合、インター予測部1422が、符号化の際に最適とされたインター予測モードで予測画像を生成する。
ステップS5226において、演算部1415は、ステップS5224において逆直交変換されて得られた差分画像に、ステップS5225において生成された予測画像を加算する。これにより再構成画像の画像データが得られる。
ステップS5227において、ループフィルタ1416は、ステップS5226の処理により得られた再構成画像の画像データに対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS5228において、画面並べ替えバッファ1417は、ステップS5227においてフィルタ処理された再構成画像の各フレームの並べ替えを行う。すなわち、符号化の際に並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS5229において、D/A変換部1418は、ステップS5228においてフレームの順序が並べ替えられた画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
ステップS5230において、フレームメモリ1419は、ステップS5227の処理により得られた復号画像やステップS5226の処理により得られた再構成画像等のデータを記憶する。
ステップS5230の処理が終了すると、ベースレイヤ復号処理が終了し、処理は図116に戻る。
<エンハンスメントレイヤ復号処理の流れ>
次に、図116のステップS5203において、エンハンスメントレイヤ画像復号部1403により実行されるエンハンスメントレイヤ復号処理の流れの例を、図118のフローチャートを参照して説明する。
エンハンスメントレイヤ復号処理が開始されると、エンハンスメントレイヤ画像復号部1403のインター予測部1422は、ステップS5251において、可逆復号部1412を介して、符号化側から伝送された制御情報(フラグ情報(colbasemv_from_l0_flag))を取得する。
ステップS5252において、インター予測部1422は、ステップS5251において取得された制御情報により指定される予測方向のベースレイヤ動き情報を、ベースレイヤ画像復号部1402から取得し、バッファに格納する。
ステップS5253乃至ステップS5262の各処理は、図117のステップS5221乃至ステップS5230の各処理に対応し、それらの処理と基本的に同様に実行される。
ただし、ステップS5257の予測画像の生成において、最適予測モードがインター予測のレイヤ間シンタクス予測の場合、インター予測部1442は、ベースレイヤ画像復号部1402から取得したベースレイヤ動き情報を用いて予測画像を生成する。
ステップS5262の処理が終了すると、エンハンスメントレイヤ復号処理が終了し、処理は、図116に戻る。
以上のように各処理を実行することにより、エンハンスメントレイヤ画像復号部1403は、ベースレイヤの全ての予測方向(例えばL0方向およびL1方向)の動き情報を取得する場合よりも、ベースレイヤの動き情報を保持するのに必要なバッファの容量を低減することができる。つまり、画像復号装置1400は、復号に必要な記憶容量の増大を抑制することができる。
<ベースレイヤ動き情報参照処理の流れ>
なお、上述したように、最適予測モードがインター予測のレイヤ間予測の場合、図118のステップS5257の予測画像の生成の際に、ベースレイヤ動き情報バッファ1471に保持されているベースレイヤ動き情報が読み出される。このベースレイヤ動き情報を読み出すベースレイヤ動き情報参照処理は、符号化の場合と同様に実行される。すなわち、図111のフローチャートの説明を、復号側の処理にも適用することができる。したがって、この処理の説明は省略する。
本技術の適用範囲は、スケーラブルな符号化・復号方式に基づくあらゆる画像符号化装置及び画像復号装置に適用することができる。
また、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
<11.第9の実施の形態>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図119は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図119に示されるコンピュータ1800において、CPU(Central Processing Unit)1801、ROM(Read Only Memory)1802、RAM(Random Access Memory)1803は、バス1804を介して相互に接続されている。
バス1804にはまた、入出力インタフェース1810も接続されている。入出力インタフェース1810には、入力部1811、出力部1812、記憶部1813、通信部1814、およびドライブ1815が接続されている。
入力部1811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部1812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部1813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部1814は、例えば、ネットワークインタフェースよりなる。ドライブ1815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア1821を駆動する。
以上のように構成されるコンピュータでは、CPU1801が、例えば、記憶部1813に記憶されているプログラムを、入出力インタフェース1810およびバス1804を介して、RAM1803にロードして実行することにより、上述した一連の処理が行われる。RAM1803にはまた、CPU1801が各種の処理を実行する上において必要なデータなども適宜記憶される。
コンピュータ(CPU1801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア1821に記録して適用することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア1821をドライブ1815に装着することにより、入出力インタフェース1810を介して、記憶部1813にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1814で受信し、記憶部1813にインストールすることができる。その他、プログラムは、ROM1802や記憶部1813に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<12.応用例>
<第1の応用例:テレビジョン受像機>
図120は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置1900は、アンテナ1901、チューナ1902、デマルチプレクサ1903、デコーダ1904、映像信号処理部1905、表示部1906、音声信号処理部1907、スピーカ1908、外部インタフェース1909、制御部1910、ユーザインタフェース1911、及びバス1912を備える。
チューナ1902は、アンテナ1901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ1902は、復調により得られた符号化ビットストリームをデマルチプレクサ1903へ出力する。即ち、チューナ1902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置1900における伝送部としての役割を有する。
デマルチプレクサ1903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ1904へ出力する。また、デマルチプレクサ1903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部1910に供給する。なお、デマルチプレクサ1903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ1904は、デマルチプレクサ1903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ1904は、復号処理により生成される映像データを映像信号処理部1905へ出力する。また、デコーダ1904は、復号処理により生成される音声データを音声信号処理部1907へ出力する。
映像信号処理部1905は、デコーダ1904から入力される映像データを再生し、表示部1906に映像を表示させる。また、映像信号処理部1905は、ネットワークを介して供給されるアプリケーション画面を表示部1906に表示させてもよい。また、映像信号処理部1905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部1905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部1906は、映像信号処理部1905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部1907は、デコーダ1904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ1908から音声を出力させる。また、音声信号処理部1907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース1909は、テレビジョン装置1900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース1909を介して受信される映像ストリーム又は音声ストリームが、デコーダ1904により復号されてもよい。即ち、外部インタフェース1909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置1900における伝送部としての役割を有する。
制御部1910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置1900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース1911から入力される操作信号に応じて、テレビジョン装置1900の動作を制御する。
ユーザインタフェース1911は、制御部1910と接続される。ユーザインタフェース1911は、例えば、ユーザがテレビジョン装置1900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース1911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部1910へ出力する。
バス1912は、チューナ1902、デマルチプレクサ1903、デコーダ1904、映像信号処理部1905、音声信号処理部1907、外部インタフェース1909及び制御部1910を相互に接続する。
このように構成されたテレビジョン装置1900において、デコーダ1904は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置1900での画像の復号に際して、復号に必要な記憶容量の増大の抑制を実現することができる。
<第2の応用例:携帯電話機>
図121は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機1920は、アンテナ1921、通信部1922、音声コーデック1923、スピーカ1924、マイクロホン1925、カメラ部1926、画像処理部1927、多重分離部1928、記録再生部1929、表示部1930、制御部1931、操作部1932、及びバス1933を備える。
アンテナ1921は、通信部1922に接続される。スピーカ1924及びマイクロホン1925は、音声コーデック1923に接続される。操作部1932は、制御部1931に接続される。バス1933は、通信部1922、音声コーデック1923、カメラ部1926、画像処理部1927、多重分離部1928、記録再生部1929、表示部1930、及び制御部1931を相互に接続する。
携帯電話機1920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン1925により生成されるアナログ音声信号は、音声コーデック1923に供給される。音声コーデック1923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック1923は、圧縮後の音声データを通信部1922へ出力する。通信部1922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部1922は、生成した送信信号を、アンテナ1921を介して基地局(図示せず)へ送信する。また、通信部1922は、アンテナ1921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部1922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック1923へ出力する。音声コーデック1923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック1923は、生成した音声信号をスピーカ1924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部1931は、操作部1932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部1931は、文字を表示部1930に表示させる。また、制御部1931は、操作部1932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部1922へ出力する。通信部1922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部1922は、生成した送信信号を、アンテナ1921を介して基地局(図示せず)へ送信する。また、通信部1922は、アンテナ1921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部1922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部1931へ出力する。制御部1931は、表示部1930に電子メールの内容を表示させると共に、電子メールデータを記録再生部1929の記憶媒体に記憶させる。
記録再生部1929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Unallocated Space Bitmap)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部1926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部1927へ出力する。画像処理部1927は、カメラ部1926から入力される画像データを符号化し、符号化ストリームを記憶再生部1929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部1928は、画像処理部1927により符号化された映像ストリームと、音声コーデック1923から入力される音声ストリームとを多重化し、多重化したストリームを通信部1922へ出力する。通信部1922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部1922は、生成した送信信号を、アンテナ1921を介して基地局(図示せず)へ送信する。また、通信部1922は、アンテナ1921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部1922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部1928へ出力する。多重分離部1928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部1927、音声ストリームを音声コーデック1923へ出力する。画像処理部1927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部1930に供給され、表示部1930により一連の画像が表示される。音声コーデック1923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック1923は、生成した音声信号をスピーカ1924に供給して音声を出力させる。
このように構成された携帯電話機1920において、画像処理部1927は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機1920での画像の符号化及び復号に際して、符号化・復号に必要な記憶容量の増大を抑制することができる。
<第3の応用例:記録再生装置>
図122は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置1940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置1940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置1940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置1940は、音声データ及び映像データを復号する。
記録再生装置1940は、チューナ1941、外部インタフェース1942、エンコーダ1943、HDD(Hard Disk Drive)1944、ディスクドライブ1945、セレクタ1946、デコーダ1947、OSD(On-Screen Display)1948、制御部1949、及びユーザインタフェース1950を備える。
チューナ1941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ1941は、復調により得られた符号化ビットストリームをセレクタ1946へ出力する。即ち、チューナ1941は、記録再生装置1940における伝送部としての役割を有する。
外部インタフェース1942は、記録再生装置1940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース1942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース1942を介して受信される映像データ及び音声データは、エンコーダ1943へ入力される。即ち、外部インタフェース1942は、記録再生装置1940における伝送部としての役割を有する。
エンコーダ1943は、外部インタフェース1942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ1943は、符号化ビットストリームをセレクタ1946へ出力する。
HDD1944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD1944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ1945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ1945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ1946は、映像及び音声の記録時には、チューナ1941又はエンコーダ1943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD1944又はディスクドライブ1945へ出力する。また、セレクタ1946は、映像及び音声の再生時には、HDD1944又はディスクドライブ1945から入力される符号化ビットストリームをデコーダ1947へ出力する。
デコーダ1947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ1947は、生成した映像データをOSD1948へ出力する。また、デコーダ1904は、生成した音声データを外部のスピーカへ出力する。
OSD1948は、デコーダ1947から入力される映像データを再生し、映像を表示する。また、OSD1948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部1949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置1940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース1950から入力される操作信号に応じて、記録再生装置1940の動作を制御する。
ユーザインタフェース1950は、制御部1949と接続される。ユーザインタフェース1950は、例えば、ユーザが記録再生装置1940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース1950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部1949へ出力する。
このように構成された記録再生装置1940において、エンコーダ1943は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ1947は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置1940での画像の符号化及び復号に際して、符号化・復号に必要な記憶容量の増大を抑制することができる。
<第4の応用例:撮像装置>
図123は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置1960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置1960は、光学ブロック1961、撮像部1962、信号処理部1963、画像処理部1964、表示部1965、外部インタフェース1966、メモリ1967、メディアドライブ1968、OSD1969、制御部1970、ユーザインタフェース1971、及びバス1972を備える。
光学ブロック1961は、撮像部1962に接続される。撮像部1962は、信号処理部1963に接続される。表示部1965は、画像処理部1964に接続される。ユーザインタフェース1971は、制御部1970に接続される。バス1972は、画像処理部1964、外部インタフェース1966、メモリ1967、メディアドライブ1968、OSD1969、及び制御部1970を相互に接続する。
光学ブロック1961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック1961は、被写体の光学像を撮像部1962の撮像面に結像させる。撮像部1962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部1962は、画像信号を信号処理部1963へ出力する。
信号処理部1963は、撮像部1962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部1963は、カメラ信号処理後の画像データを画像処理部1964へ出力する。
画像処理部1964は、信号処理部1963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部1964は、生成した符号化データを外部インタフェース1966又はメディアドライブ1968へ出力する。また、画像処理部1964は、外部インタフェース1966又はメディアドライブ1968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部1964は、生成した画像データを表示部1965へ出力する。また、画像処理部1964は、信号処理部1963から入力される画像データを表示部1965へ出力して画像を表示させてもよい。また、画像処理部1964は、OSD1969から取得される表示用データを、表示部1965へ出力する画像に重畳してもよい。
OSD1969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部1964へ出力する。
外部インタフェース1966は、例えばUSB入出力端子として構成される。外部インタフェース1966は、例えば、画像の印刷時に、撮像装置1960とプリンタとを接続する。また、外部インタフェース1966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置1960にインストールされ得る。さらに、外部インタフェース1966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース1966は、撮像装置1960における伝送部としての役割を有する。
メディアドライブ1968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ1968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部1970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置1960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース1971から入力される操作信号に応じて、撮像装置1960の動作を制御する。
ユーザインタフェース1971は、制御部1970と接続される。ユーザインタフェース1971は、例えば、ユーザが撮像装置1960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース1971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部1970へ出力する。
このように構成された撮像装置1960において、画像処理部1964は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置1960での画像の符号化及び復号に際して、符号化・復号に必要な記憶容量の増大を抑制することができる。
<13.スケーラブル符号化の応用例>
<第1のシステム>
次に、スケーラブル符号化(階層符号化)されたスケーラブル符号化データの具体的な利用例について説明する。スケーラブル符号化は、例えば、図124に示される例のように、伝送するデータの選択のために利用される。
図124に示されるデータ伝送システム2000において、配信サーバ2002は、スケーラブル符号化データ記憶部2001に記憶されているスケーラブル符号化データを読み出し、ネットワーク2003を介して、パーソナルコンピュータ2004、AV機器2005、タブレットデバイス2006、および携帯電話機2007等の端末装置に配信する。
その際、配信サーバ2002は、端末装置の能力や通信環境等に応じて、適切な品質の符号化データを選択して伝送する。配信サーバ2002が不要に高品質なデータを伝送しても、端末装置において高画質な画像を得られるとは限らず、遅延やオーバフローの発生要因となる恐れがある。また、不要に通信帯域を占有したり、端末装置の負荷を不要に増大させたりしてしまう恐れもある。逆に、配信サーバ2002が不要に低品質なデータを伝送しても、端末装置において十分な画質の画像を得ることができない恐れがある。そのため、配信サーバ2002は、スケーラブル符号化データ記憶部2001に記憶されているスケーラブル符号化データを、適宜、端末装置の能力や通信環境等に対して適切な品質の符号化データとして読み出し、伝送する。
例えば、スケーラブル符号化データ記憶部2001は、スケーラブルに符号化されたスケーラブル符号化データ(BL+EL)2011を記憶するとする。このスケーラブル符号化データ(BL+EL)2011は、ベースレイヤとエンハンスメントレイヤの両方を含む符号化データであり、復号することにより、ベースレイヤの画像およびエンハンスメントレイヤの画像の両方を得ることができるデータである。
配信サーバ2002は、データを伝送する端末装置の能力や通信環境等に応じて、適切なレイヤを選択し、そのレイヤのデータを読み出す。例えば、配信サーバ2002は、処理能力の高いパーソナルコンピュータ2004やタブレットデバイス2006に対しては、高品質なスケーラブル符号化データ(BL+EL)2011をスケーラブル符号化データ記憶部2001から読み出し、そのまま伝送する。これに対して、例えば、配信サーバ2002は、処理能力の低いAV機器2005や携帯電話機2007に対しては、スケーラブル符号化データ(BL+EL)2011からベースレイヤのデータを抽出し、スケーラブル符号化データ(BL+EL)2011と同じコンテンツのデータであるが、スケーラブル符号化データ(BL+EL)2011よりも低品質なスケーラブル符号化データ(BL)2012として伝送する。
このようにスケーラブル符号化データを用いることにより、データ量を容易に調整することができるので、遅延やオーバフローの発生を抑制したり、端末装置や通信媒体の負荷の不要な増大を抑制したりすることができる。また、スケーラブル符号化データ(BL+EL)2011は、レイヤ間の冗長性が低減されているので、各レイヤの符号化データを個別のデータとする場合よりもそのデータ量を低減させることができる。したがって、スケーラブル符号化データ記憶部2001の記憶領域をより効率よく使用することができる。
なお、パーソナルコンピュータ2004乃至携帯電話機2007のように、端末装置には様々な装置を適用することができるので、端末装置のハードウエアの性能は、装置によって異なる。また、端末装置が実行するアプリケーションも様々であるので、そのソフトウエアの能力も様々である。さらに、通信媒体となるネットワーク2003も、例えばインターネットやLAN(Local Area Network)等、有線若しくは無線、またはその両方を含むあらゆる通信回線網を適用することができ、そのデータ伝送能力は様々である。さらに、他の通信等によっても変化する恐れがある。
そこで、配信サーバ2002は、データ伝送を開始する前に、データの伝送先となる端末装置と通信を行い、端末装置のハードウエア性能や、端末装置が実行するアプリケーション(ソフトウエア)の性能等といった端末装置の能力に関する情報、並びに、ネットワーク2003の利用可能帯域幅等の通信環境に関する情報を得るようにしてもよい。そして、配信サーバ2002が、ここで得た情報を基に、適切なレイヤを選択するようにしてもよい。
なお、レイヤの抽出は、端末装置において行うようにしてもよい。例えば、パーソナルコンピュータ2004が、伝送されたスケーラブル符号化データ(BL+EL)2011を復号し、ベースレイヤの画像を表示しても良いし、エンハンスメントレイヤの画像を表示しても良い。また、例えば、パーソナルコンピュータ2004が、伝送されたスケーラブル符号化データ(BL+EL)2011から、ベースレイヤのスケーラブル符号化データ(BL)2012を抽出し、記憶したり、他の装置に転送したり、復号してベースレイヤの画像を表示したりするようにしてもよい。
もちろん、スケーラブル符号化データ記憶部2001、配信サーバ2002、ネットワーク2003、および端末装置の数はいずれも任意である。また、以上においては、配信サーバ2002がデータを端末装置に伝送する例について説明したが、利用例はこれに限定されない。データ伝送システム2000は、スケーラブル符号化された符号化データを端末装置に伝送する際、端末装置の能力や通信環境等に応じて、適切なレイヤを選択して伝送するシステムであれば、任意のシステムに適用することができる。
そして、以上のようなデータ伝送システム2000においても、第4の実施の形態乃至第8の実施の形態において上述した階層符号化・階層復号への適用と同様に本技術を適用することにより、第4の実施の形態乃至第8の実施の形態において上述した効果と同様の効果を得ることができる。
<第2のシステム>
また、スケーラブル符号化は、例えば、図125に示される例のように、複数の通信媒体を介する伝送のために利用される。
図125に示されるデータ伝送システム2100において、放送局2101は、地上波放送2111により、ベースレイヤのスケーラブル符号化データ(BL)2121を伝送する。また、放送局2101は、有線若しくは無線またはその両方の通信網よりなる任意のネットワーク2112を介して、エンハンスメントレイヤのスケーラブル符号化データ(EL)2122を伝送する(例えばパケット化して伝送する)。
端末装置2102は、放送局2101が放送する地上波放送2111の受信機能を有し、この地上波放送2111を介して伝送されるベースレイヤのスケーラブル符号化データ(BL)2121を受け取る。また、端末装置2102は、ネットワーク2112を介した通信を行う通信機能をさらに有し、このネットワーク2112を介して伝送されるエンハンスメントレイヤのスケーラブル符号化データ(EL)2122を受け取る。
端末装置2102は、例えばユーザ指示等に応じて、地上波放送2111を介して取得したベースレイヤのスケーラブル符号化データ(BL)2121を、復号してベースレイヤの画像を得たり、記憶したり、他の装置に伝送したりする。
また、端末装置2102は、例えばユーザ指示等に応じて、地上波放送2111を介して取得したベースレイヤのスケーラブル符号化データ(BL)2121と、ネットワーク2112を介して取得したエンハンスメントレイヤのスケーラブル符号化データ(EL)2122とを合成して、スケーラブル符号化データ(BL+EL)を得たり、それを復号してエンハンスメントレイヤの画像を得たり、記憶したり、他の装置に伝送したりする。
以上のように、スケーラブル符号化データは、例えばレイヤ毎に異なる通信媒体を介して伝送させることができる。したがって、負荷を分散させることができ、遅延やオーバフローの発生を抑制することができる。
また、状況に応じて、伝送に使用する通信媒体を、レイヤ毎に選択することができるようにしてもよい。例えば、データ量が比較的多いベースレイヤのスケーラブル符号化データ(BL)2121を帯域幅の広い通信媒体を介して伝送させ、データ量が比較的少ないエンハンスメントレイヤのスケーラブル符号化データ(EL)2122を帯域幅の狭い通信媒体を介して伝送させるようにしてもよい。また、例えば、エンハンスメントレイヤのスケーラブル符号化データ(EL)2122を伝送する通信媒体を、ネットワーク2112とするか、地上波放送2111とするかを、ネットワーク2112の利用可能帯域幅に応じて切り替えるようにしてもよい。もちろん、任意のレイヤのデータについて同様である。
このように制御することにより、データ伝送における負荷の増大を、より抑制することができる。
もちろん、レイヤ数は任意であり、伝送に利用する通信媒体の数も任意である。また、データ配信先となる端末装置2102の数も任意である。さらに、以上においては、放送局2101からの放送を例に説明したが、利用例はこれに限定されない。データ伝送システム2100は、スケーラブル符号化された符号化データを、レイヤを単位として複数に分割し、複数の回線を介して伝送するシステムであれば、任意のシステムに適用することができる。
そして、以上のようなデータ伝送システム2100においても、第4の実施の形態乃至第8の実施の形態において上述した階層符号化・階層復号への適用と同様に本技術を適用することにより、第4の実施の形態乃至第8の実施の形態において上述した効果と同様の効果を得ることができる。
<第3のシステム>
また、スケーラブル符号化は、例えば、図126に示される例のように、符号化データの記憶に利用される。
図126に示される撮像システム2200において、撮像装置2201は、被写体2211を撮像して得られた画像データをスケーラブル符号化し、スケーラブル符号化データ(BL+EL)2221として、スケーラブル符号化データ記憶装置2202に供給する。
スケーラブル符号化データ記憶装置2202は、撮像装置2201から供給されるスケーラブル符号化データ(BL+EL)2221を、状況に応じた品質で記憶する。例えば、通常時の場合、スケーラブル符号化データ記憶装置2202は、スケーラブル符号化データ(BL+EL)2221からベースレイヤのデータを抽出し、低品質でデータ量の少ないベースレイヤのスケーラブル符号化データ(BL)2222として記憶する。これに対して、例えば、注目時の場合、スケーラブル符号化データ記憶装置2202は、高品質でデータ量の多いスケーラブル符号化データ(BL+EL)2221のまま記憶する。
このようにすることにより、スケーラブル符号化データ記憶装置2202は、必要な場合のみ、画像を高画質に保存することができるので、画質劣化による画像の価値の低減を抑制しながら、データ量の増大を抑制することができ、記憶領域の利用効率を向上させることができる。
例えば、撮像装置2201が監視カメラであるとする。撮像画像に監視対象(例えば侵入者)が写っていない場合(通常時の場合)、撮像画像の内容は重要でない可能性が高いので、データ量の低減が優先され、その画像データ(スケーラブル符号化データ)は、低品質に記憶される。これに対して、撮像画像に監視対象が被写体2211として写っている場合(注目時の場合)、その撮像画像の内容は重要である可能性が高いので、画質が優先され、その画像データ(スケーラブル符号化データ)は、高品質に記憶される。
なお、通常時であるか注目時であるかは、例えば、スケーラブル符号化データ記憶装置2202が、画像を解析することにより判定しても良い。また、撮像装置2201が判定し、その判定結果をスケーラブル符号化データ記憶装置2202に伝送するようにしてもよい。
なお、通常時であるか注目時であるかの判定基準は任意であり、判定基準とする画像の内容は任意である。もちろん、画像の内容以外の条件を判定基準とすることもできる。例えば、収録した音声の大きさや波形等に応じて切り替えるようにしてもよいし、所定の時間毎に切り替えるようにしてもよいし、ユーザ指示等の外部からの指示によって切り替えるようにしてもよい。
また、以上においては、通常時と注目時の2つの状態を切り替える例を説明したが、状態の数は任意であり、例えば、通常時、やや注目時、注目時、非常に注目時等のように、3つ以上の状態を切り替えるようにしてもよい。ただし、この切り替える状態の上限数は、スケーラブル符号化データのレイヤ数に依存する。
また、撮像装置2201が、スケーラブル符号化のレイヤ数を、状態に応じて決定するようにしてもよい。例えば、通常時の場合、撮像装置2201が、低品質でデータ量の少ないベースレイヤのスケーラブル符号化データ(BL)2222を生成し、スケーラブル符号化データ記憶装置2202に供給するようにしてもよい。また、例えば、注目時の場合、撮像装置2201が、高品質でデータ量の多いベースレイヤのスケーラブル符号化データ(BL+EL)2221を生成し、スケーラブル符号化データ記憶装置2202に供給するようにしてもよい。
以上においては、監視カメラを例に説明したが、この撮像システム2200の用途は任意であり、監視カメラに限定されない。
そして、以上のような撮像システム2200においても、第4の実施の形態乃至第8の実施の形態において上述した階層符号化・階層復号への適用と同様に本技術を適用することにより、第4の実施の形態乃至第8の実施の形態において上述した効果と同様の効果を得ることができる。
<14.セット・ユニット・モジュール・プロセッサ>
<実施のその他の例>
以上において本技術を適用する装置やシステム等の例を説明したが、本技術は、これに限らず、このような装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
<ビデオセット>
本技術をセットとして実施する場合の例について、図127を参照して説明する。図127は、本技術を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図127に示されるビデオセット2300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図127に示されるように、ビデオセット2300は、ビデオモジュール2311、外部メモリ2312、パワーマネージメントモジュール2313、およびフロントエンドモジュール2314等のモジュール群と、コネクティビティ2321、カメラ2322、およびセンサ2323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図127の例の場合、ビデオモジュール2311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム2333、およびRFモジュール2334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図127のアプリケーションプロセッサ2331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ2331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ2332等、ビデオモジュール2311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ2332は、画像の符号化・復号(その一方若しくは両方)に関する機能を有するプロセッサである。
ブロードバンドモデム2333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信により送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、その広帯域通信により受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。ブロードバンドモデム2333は、例えば、ビデオプロセッサ2332が処理する画像データ、画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報を処理する。
RFモジュール2334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール2334は、ブロードバンドモデム2333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール2334は、フロントエンドモジュール2314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図127において点線2341に示されるように、アプリケーションプロセッサ2331とビデオプロセッサ2332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ2312は、ビデオモジュール2311の外部に設けられた、ビデオモジュール2311により利用される記憶デバイスを有するモジュールである。この外部メモリ2312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール2313は、ビデオモジュール2311(ビデオモジュール2311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール2314は、RFモジュール2334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図127に示されるように、フロントエンドモジュール2314は、例えば、アンテナ部2351、フィルタ2352、および増幅部2353を有する。
アンテナ部2351は、無線信号を送受信するアンテナおよびその周辺の構成を有する。アンテナ部2351は、増幅部2353から供給される信号を無線信号として送信し、受信した無線信号を電気信号(RF信号)としてフィルタ2352に供給する。フィルタ2352は、アンテナ部2351を介して受信されたRF信号に対してフィルタ処理等を行い、処理後のRF信号をRFモジュール2334に供給する。増幅部2353は、RFモジュール2334から供給されるRF信号を増幅し、アンテナ部2351に供給する。
コネクティビティ2321は、外部との接続に関する機能を有するモジュールである。コネクティビティ2321の物理構成は、任意である。例えば、コネクティビティ2321は、ブロードバンドモデム2333が対応する通信規格以外の通信機能を有する構成や、外部入出力端子等を有する。
例えば、コネクティビティ2321が、Bluetooth(登録商標)、IEEE 802.11(例えばWi-Fi(Wireless Fidelity、登録商標))、NFC(Near Field Communication)、IrDA(InfraRed Data Association)等の無線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した信号を送受信するアンテナ等を有するようにしてもよい。また、例えば、コネクティビティ2321が、USB(Universal Serial Bus)、HDMI(登録商標)(High-Definition Multimedia Interface)等の有線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した端子を有するようにしてもよい。さらに、例えば、コネクティビティ2321が、アナログ入出力端子等のその他のデータ(信号)伝送機能等を有するようにしてもよい。
なお、コネクティビティ2321が、データ(信号)の伝送先のデバイスを含むようにしてもよい。例えば、コネクティビティ2321が、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等の記録媒体に対してデータの読み出しや書き込みを行うドライブ(リムーバブルメディアのドライブだけでなく、ハードディスク、SSD(Solid State Drive)、NAS(Network Attached Storage)等も含む)を有するようにしてもよい。また、コネクティビティ2321が、画像や音声の出力デバイス(モニタやスピーカ等)を有するようにしてもよい。
カメラ2322は、被写体を撮像し、被写体の画像データを得る機能を有するモジュールである。カメラ2322の撮像により得られた画像データは、例えば、ビデオプロセッサ2332に供給されて符号化される。
センサ2323は、例えば、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、イメージセンサ、回転センサ、角度センサ、角速度センサ、速度センサ、加速度センサ、傾斜センサ、磁気識別センサ、衝撃センサ、温度センサ等、任意のセンサ機能を有するモジュールである。センサ2323により検出されたデータは、例えば、アプリケーションプロセッサ2331に供給されてアプリケーション等により利用される。
以上においてモジュールとして説明した構成をプロセッサとして実現するようにしてもよいし、逆にプロセッサとして説明した構成をモジュールとして実現するようにしてもよい。
以上のような構成のビデオセット2300において、後述するようにビデオプロセッサ2332に本技術を適用することができる。したがって、ビデオセット2300は、本技術を適用したセットとして実施することができる。
<ビデオプロセッサの構成例>
図128は、本技術を適用したビデオプロセッサ2332(図127)の概略的な構成の一例を示している。
図128の例の場合、ビデオプロセッサ2332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図128に示されるように、ビデオプロセッサ2332は、ビデオ入力処理部2401、第1画像拡大縮小部2402、第2画像拡大縮小部2403、ビデオ出力処理部2404、フレームメモリ2405、およびメモリ制御部2406を有する。また、ビデオプロセッサ2332は、エンコード・デコードエンジン2407、ビデオES(Elementary Stream)バッファ2408Aおよび2408B、並びに、オーディオESバッファ2409Aおよび2409Bを有する。さらに、ビデオプロセッサ2332は、オーディオエンコーダ2410、オーディオデコーダ2411、多重化部(MUX(Multiplexer))2412、逆多重化部(DMUX(Demultiplexer))2413、およびストリームバッファ2414を有する。
ビデオ入力処理部2401は、例えばコネクティビティ2321(図127)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部2402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部2403は、画像データに対して、ビデオ出力処理部2404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部2402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部2404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ2321(図127)等に出力する。
フレームメモリ2405は、ビデオ入力処理部2401、第1画像拡大縮小部2402、第2画像拡大縮小部2403、ビデオ出力処理部2404、およびエンコード・デコードエンジン2407によって共用される画像データ用のメモリである。フレームメモリ2405は、例えばDRAM等の半導体メモリとして実現される。
メモリ制御部2406は、エンコード・デコードエンジン2407からの同期信号を受けて、アクセス管理テーブル2406Aに書き込まれたフレームメモリ2405へのアクセススケジュールに従ってフレームメモリ2405に対する書き込み・読み出しのアクセスを制御する。アクセス管理テーブル2406Aは、エンコード・デコードエンジン2407、第1画像拡大縮小部2402、第2画像拡大縮小部2403等で実行される処理に応じて、メモリ制御部2406により更新される。
エンコード・デコードエンジン2407は、画像データのエンコード処理、並びに、画像データが符号化されたデータであるビデオストリームのデコード処理を行う。例えば、エンコード・デコードエンジン2407は、フレームメモリ2405から読み出した画像データを符号化し、ビデオストリームとしてビデオESバッファ2408Aに順次書き込む。また、例えば、ビデオESバッファ2408Bからビデオストリームを順次読み出して復号し、画像データとしてフレームメモリ2405に順次書き込む。エンコード・デコードエンジン2407は、これらの符号化や復号において、フレームメモリ2405を作業領域として使用する。また、エンコード・デコードエンジン2407は、例えばマクロブロック毎の処理を開始するタイミングで、メモリ制御部2406に対して同期信号を出力する。
ビデオESバッファ2408Aは、エンコード・デコードエンジン2407によって生成されたビデオストリームをバッファリングして、多重化部(MUX)2412に供給する。ビデオESバッファ2408Bは、逆多重化部(DMUX)2413から供給されたビデオストリームをバッファリングして、エンコード・デコードエンジン2407に供給する。
オーディオESバッファ2409Aは、オーディオエンコーダ2410によって生成されたオーディオストリームをバッファリングして、多重化部(MUX)2412に供給する。オーディオESバッファ2409Bは、逆多重化部(DMUX)2413から供給されたオーディオストリームをバッファリングして、オーディオデコーダ2411に供給する。
オーディオエンコーダ2410は、例えばコネクティビティ2321(図127)等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ2410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ2409Aに順次書き込む。オーディオデコーダ2411は、オーディオESバッファ2409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ2321(図127)等に供給する。
多重化部(MUX)2412は、ビデオストリームとオーディオストリームとを多重化する。この多重化の方法(すなわち、多重化により生成されるビットストリームのフォーマット)は任意である。また、この多重化の際に、多重化部(MUX)2412は、所定のヘッダ情報等をビットストリームに付加することもできる。つまり、多重化部(MUX)2412は、多重化によりストリームのフォーマットを変換することができる。例えば、多重化部(MUX)2412は、ビデオストリームとオーディオストリームとを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームに変換する。また、例えば、多重化部(MUX)2412は、ビデオストリームとオーディオストリームとを多重化することにより、記録用のファイルフォーマットのデータ(ファイルデータ)に変換する。
逆多重化部(DMUX)2413は、多重化部(MUX)2412による多重化に対応する方法で、ビデオストリームとオーディオストリームとが多重化されたビットストリームを逆多重化する。つまり、逆多重化部(DMUX)2413は、ストリームバッファ2414から読み出されたビットストリームからビデオストリームとオーディオストリームとを抽出する(ビデオストリームとオーディオストリームとを分離する)。つまり、逆多重化部(DMUX)2413は、逆多重化によりストリームのフォーマットを変換(多重化部(MUX)2412による変換の逆変換)することができる。例えば、逆多重化部(DMUX)2413は、例えばコネクティビティ2321やブロードバンドモデム2333等(いずれも図127)から供給されたトランスポートストリームを、ストリームバッファ2414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)2413は、例えばコネクティビティ2321(図127)により各種記録媒体から読み出されたファイルデータを、ストリームバッファ2414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
ストリームバッファ2414は、ビットストリームをバッファリングする。例えば、ストリームバッファ2414は、多重化部(MUX)2412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ2321やブロードバンドモデム2333(いずれも図127)等に供給する。
また、例えば、ストリームバッファ2414は、多重化部(MUX)2412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ2321(図127)等に供給し、各種記録媒体に記録させる。
さらに、ストリームバッファ2414は、例えばコネクティビティ2321やブロードバンドモデム2333等(いずれも図127)を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)2413に供給する。
また、ストリームバッファ2414は、例えばコネクティビティ2321(図127)等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)2413に供給する。
次に、このような構成のビデオプロセッサ2332の動作の例について説明する。例えば、コネクティビティ2321(図127)等からビデオプロセッサ2332に入力されたビデオ信号は、ビデオ入力処理部2401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ2405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部2402または第2画像拡大縮小部2403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ2405に書き込まれる。この画像データは、エンコード・デコードエンジン2407によって符号化され、ビデオストリームとしてビデオESバッファ2408Aに書き込まれる。
また、コネクティビティ2321(図127)等からビデオプロセッサ2332に入力されたオーディオ信号は、オーディオエンコーダ2410によって符号化され、オーディオストリームとして、オーディオESバッファ2409Aに書き込まれる。
ビデオESバッファ2408Aのビデオストリームと、オーディオESバッファ2409Aのオーディオストリームは、多重化部(MUX)2412に読み出されて多重化され、トランスポートストリーム若しくはファイルデータ等に変換される。多重化部(MUX)2412により生成されたトランスポートストリームは、ストリームバッファ2414にバッファされた後、例えばコネクティビティ2321やブロードバンドモデム2333(いずれも図127)等を介して外部ネットワークに出力される。また、多重化部(MUX)2412により生成されたファイルデータは、ストリームバッファ2414にバッファされた後、例えばコネクティビティ2321(図127)等に出力され、各種記録媒体に記録される。
また、例えばコネクティビティ2321やブロードバンドモデム2333(いずれも図127)等を介して外部ネットワークからビデオプロセッサ2332に入力されたトランスポートストリームは、ストリームバッファ2414にバッファされた後、逆多重化部(DMUX)2413により逆多重化される。また、例えばコネクティビティ2321(図127)等において各種記録媒体から読み出され、ビデオプロセッサ2332に入力されたファイルデータは、ストリームバッファ2414にバッファされた後、逆多重化部(DMUX)2413により逆多重化される。つまり、ビデオプロセッサ2332に入力されたトランスポートストリームまたはファイルデータは、逆多重化部(DMUX)2413によりビデオストリームとオーディオストリームとに分離される。
オーディオストリームは、オーディオESバッファ2409Bを介してオーディオデコーダ2411に供給され、復号されてオーディオ信号が再生される。また、ビデオストリームは、ビデオESバッファ2408Bに書き込まれた後、エンコード・デコードエンジン2407により順次読み出されて復号されてフレームメモリ2405に書き込まれる。復号された画像データは、第2画像拡大縮小部2403によって拡大縮小処理されて、フレームメモリ2405に書き込まれる。そして、復号された画像データは、ビデオ出力処理部2404に読み出されて、4:2:2Y/Cb/Cr方式等の所定の方式にフォーマット変換され、さらにアナログ信号に変換されて、ビデオ信号が再生出力される。
このように構成されるビデオプロセッサ2332に本技術を適用する場合、エンコード・デコードエンジン2407に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、エンコード・デコードエンジン2407が、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有するようにすればよい。このようにすることにより、ビデオプロセッサ2332は、図1乃至図118を参照して上述した効果と同様の効果を得ることができる。
なお、エンコード・デコードエンジン2407において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
<ビデオプロセッサの他の構成例>
図129は、本技術を適用したビデオプロセッサ2332(図127)の概略的な構成の他の例を示している。図129の例の場合、ビデオプロセッサ2332は、ビデオデータを所定の方式で符号化・復号する機能とを有する。
より具体的には、図129に示されるように、ビデオプロセッサ2332は、制御部2511、ディスプレイインタフェース2512、ディスプレイエンジン2513、画像処理エンジン2514、および内部メモリ2515を有する。また、ビデオプロセッサ2332は、コーデックエンジン2516、メモリインタフェース2517、多重化・逆多重化部(MUX DMUX)2518、ネットワークインタフェース2519、およびビデオインタフェース2520を有する。
制御部2511は、ディスプレイインタフェース2512、ディスプレイエンジン2513、画像処理エンジン2514、およびコーデックエンジン2516等、ビデオプロセッサ2332内の各処理部の動作を制御する。
図129に示されるように、制御部2511は、例えば、メインCPU2531、サブCPU2532、およびシステムコントローラ2533を有する。メインCPU2531は、ビデオプロセッサ2332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU2531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU2532は、メインCPU2531の補助的な役割を果たす。例えば、サブCPU2532は、メインCPU2531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ2533は、メインCPU2531およびサブCPU2532が実行するプログラムを指定する等、メインCPU2531およびサブCPU2532の動作を制御する。
ディスプレイインタフェース2512は、制御部2511の制御の下、画像データを例えばコネクティビティ2321(図127)等に出力する。例えば、ディスプレイインタフェース2512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ2321(図127)のモニタ装置等に出力する。
ディスプレイエンジン2513は、制御部2511の制御の下、画像データに対して、その画像を表示させるモニタ装置等のハードウエアスペックに合わせるように、フォーマット変換、サイズ変換、色域変換等の各種変換処理を行う。
画像処理エンジン2514は、制御部2511の制御の下、画像データに対して、例えば画質改善のためのフィルタ処理等、所定の画像処理を施す。
内部メモリ2515は、ディスプレイエンジン2513、画像処理エンジン2514、およびコーデックエンジン2516により共用される、ビデオプロセッサ2332の内部に設けられたメモリである。内部メモリ2515は、例えば、ディスプレイエンジン2513、画像処理エンジン2514、およびコーデックエンジン2516の間で行われるデータの授受に利用される。例えば、内部メモリ2515は、ディスプレイエンジン2513、画像処理エンジン2514、またはコーデックエンジン2516から供給されるデータを格納し、必要に応じて(例えば、要求に応じて)、そのデータを、ディスプレイエンジン2513、画像処理エンジン2514、またはコーデックエンジン2516に供給する。この内部メモリ2515は、どのような記憶デバイスにより実現するようにしてもよいが、一般的にブロック単位の画像データやパラメータ等といった小容量のデータの格納に利用することが多いので、例えばSRAM(Static Random Access Memory)のような比較的(例えば外部メモリ2312と比較して)小容量だが応答速度が高速な半導体メモリにより実現するのが望ましい。
コーデックエンジン2516は、画像データの符号化や復号に関する処理を行う。このコーデックエンジン2516が対応する符号化・復号の方式は任意であり、その数は1つであってもよいし、複数であってもよい。例えば、コーデックエンジン2516は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化若しくは符号化データの復号を行うようにしてもよい。
図129に示される例において、コーデックエンジン2516は、コーデックに関する処理の機能ブロックとして、例えば、MPEG-2 Video2541、AVC/H.2642542、HEVC/H.2652543、HEVC/H.265(Scalable)2544、HEVC/H.265(Multi-view)2545、およびMPEG-DASH2551を有する。
MPEG-2 Video2541は、画像データをMPEG-2方式で符号化したり復号したりする機能ブロックである。AVC/H.2642542は、画像データをAVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.2652543は、画像データをHEVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265(Scalable)2544は、画像データをHEVC方式でスケーラブル符号化したりスケーラブル復号したりする機能ブロックである。HEVC/H.265(Multi-view)2545は、画像データをHEVC方式で多視点符号化したり多視点復号したりする機能ブロックである。
MPEG-DASH2551は、画像データをMPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP)方式で送受信する機能ブロックである。MPEG-DASHは、HTTP(HyperText Transfer Protocol)を使ってビデオのストリーミングを行う技術であり、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択し伝送することを特徴の1つとする。MPEG-DASH2551は、規格に準拠するストリームの生成やそのストリームの伝送制御等を行い、画像データの符号化・復号については、上述したMPEG-2 Video2541乃至HEVC/H.265(Multi-view)2545を利用する。
メモリインタフェース2517は、外部メモリ2312用のインタフェースである。画像処理エンジン2514やコーデックエンジン2516から供給されるデータは、メモリインタフェース2517を介して外部メモリ2312に供給される。また、外部メモリ2312から読み出されたデータは、メモリインタフェース2517を介してビデオプロセッサ2332(画像処理エンジン2514若しくはコーデックエンジン2516)に供給される。
多重化・逆多重化部(MUX DMUX)2518は、符号化データのビットストリーム、画像データ、ビデオ信号等、画像に関する各種データの多重化や逆多重化を行う。この多重化・逆多重化の方法は任意である。例えば、多重化の際に、多重化・逆多重化部(MUX DMUX)2518は、複数のデータを1つにまとめるだけでなく、所定のヘッダ情報等をそのデータに付加することもできる。また、逆多重化の際に、多重化・逆多重化部(MUX DMUX)2518は、1つのデータを複数に分割するだけでなく、分割した各データに所定のヘッダ情報等を付加することもできる。つまり、多重化・逆多重化部(MUX DMUX)2518は、多重化・逆多重化によりデータのフォーマットを変換することができる。例えば、多重化・逆多重化部(MUX DMUX)2518は、ビットストリームを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームや、記録用のファイルフォーマットのデータ(ファイルデータ)に変換することができる。もちろん、逆多重化によりその逆変換も可能である。
ネットワークインタフェース2519は、例えばブロードバンドモデム2333やコネクティビティ2321(いずれも図127)等向けのインタフェースである。ビデオインタフェース2520は、例えばコネクティビティ2321やカメラ2322(いずれも図127)等向けのインタフェースである。
次に、このようなビデオプロセッサ2332の動作の例について説明する。例えば、例えばコネクティビティ2321やブロードバンドモデム2333(いずれも図127)等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース2519を介して多重化・逆多重化部(MUX DMUX)2518に供給されて逆多重化され、コーデックエンジン2516により復号される。コーデックエンジン2516の復号により得られた画像データは、例えば、画像処理エンジン2514により所定の画像処理が施され、ディスプレイエンジン2513により所定の変換が行われ、ディスプレイインタフェース2512を介して例えばコネクティビティ2321(図127)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン2516の復号により得られた画像データは、コーデックエンジン2516により再符号化され、多重化・逆多重化部(MUX DMUX)2518により多重化されてファイルデータに変換され、ビデオインタフェース2520を介して例えばコネクティビティ2321(図127)等に出力され、各種記録媒体に記録される。
さらに、例えば、コネクティビティ2321(図127)等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース2520を介して多重化・逆多重化部(MUX DMUX)2518に供給されて逆多重化され、コーデックエンジン2516により復号される。コーデックエンジン2516の復号により得られた画像データは、画像処理エンジン2514により所定の画像処理が施され、ディスプレイエンジン2513により所定の変換が行われ、ディスプレイインタフェース2512を介して例えばコネクティビティ2321(図127)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン2516の復号により得られた画像データは、コーデックエンジン2516により再符号化され、多重化・逆多重化部(MUX DMUX)2518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース2519を介して例えばコネクティビティ2321やブロードバンドモデム2333(いずれも図127)等に供給され図示せぬ他の装置に伝送される。
なお、ビデオプロセッサ2332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ2515や外部メモリ2312を利用して行われる。また、パワーマネージメントモジュール2313は、例えば制御部2511への電力供給を制御する。
このように構成されるビデオプロセッサ2332に本技術を適用する場合、コーデックエンジン2516に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、コーデックエンジン2516が、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有するようにすればよい。このようにすることにより、ビデオプロセッサ2332は、図1乃至図118を参照して上述した効果と同様の効果を得ることができる。
なお、コーデックエンジン2516において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ2332の構成を2例示したが、ビデオプロセッサ2332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ2332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
<装置への適用例>
ビデオセット2300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット2300は、テレビジョン装置1900(図120)、携帯電話機1920(図121)、記録再生装置1940(図122)、撮像装置1960(図123)等に組み込むことができる。ビデオセット2300を組み込むことにより、その装置は、図1乃至図118を参照して上述した効果と同様の効果を得ることができる。
また、ビデオセット2300は、例えば、図124のデータ伝送システム2000におけるパーソナルコンピュータ2004、AV機器2005、タブレットデバイス2006、および携帯電話機2007等の端末装置、図125のデータ伝送システム2100における放送局2101および端末装置2102、並びに、図126の撮像システム2200における撮像装置2201およびスケーラブル符号化データ記憶装置2202等にも組み込むことができる。ビデオセット2300を組み込むことにより、その装置は、図1乃至図118を参照して上述した効果と同様の効果を得ることができる。
なお、上述したビデオセット2300の各構成の一部であっても、ビデオプロセッサ2332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ2332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線2341により示されるプロセッサやビデオモジュール2311等を、本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール2311、外部メモリ2312、パワーマネージメントモジュール2313、およびフロントエンドモジュール2314を組み合わせ、本技術を適用したビデオユニット2361として実施することもできる。いずれの構成の場合であっても、図1乃至図118を参照して上述した効果と同様の効果を得ることができる。
つまり、ビデオプロセッサ2332を含むものであればどのような構成であっても、ビデオセット2300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ2332、点線2341により示されるプロセッサ、ビデオモジュール2311、または、ビデオユニット2361を、テレビジョン装置1900(図120)、携帯電話機1920(図121)、記録再生装置1940(図122)、撮像装置1960(図123)図124のデータ伝送システム2000におけるパーソナルコンピュータ2004、AV機器2005、タブレットデバイス2006、および携帯電話機2007等の端末装置、図125のデータ伝送システム2100における放送局2101および端末装置2102、並びに、図126の撮像システム2200における撮像装置2201およびスケーラブル符号化データ記憶装置2202等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット2300の場合と同様に、図1乃至図118を参照して上述した効果と同様の効果を得ることができる。
<15.MPEG-DASHのコンテンツ再生システムの応用例>
<MPEG-DASHの応用例>
なお、本技術は、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択して使用する、例えば、後述するMPEG DASH等のようなHTTPストリーミングのコンテンツ再生システムやWi-Fi規格の無線通信システムにも適用することができる。
<コンテンツ再生システムの概要>
まず、図130乃至図132を参照し、本技術を適用可能なコンテンツ再生システムについて概略的に説明する。
以下では、まず、このような各実施形態において共通する基本構成について図130および図131を参照して説明する。
図130は、コンテンツ再生システムの構成を示した説明図である。図130に示したように、コンテンツ再生システムは、コンテンツサーバ2610、2611と、ネットワーク2612と、コンテンツ再生装置2620(クライアント装置)とを備える。
コンテンツサーバ2610、2611とコンテンツ再生装置2620は、ネットワーク2612を介して接続されている。このネットワーク2612は、ネットワーク2612に接続されている装置から送信される情報の有線、または無線の伝送路である。
例えば、ネットワーク2612は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク2612は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。
コンテンツサーバ2610は、コンテンツデータを符号化し、符号化データおよび符号化データのメタ情報を含むデータファイルを生成して記憶する。なお、コンテンツサーバ2610がMP4形式のデータファイルを生成する場合、符号化データは「mdat」に該当し、メタ情報は「moov」に該当する。
また、コンテンツデータは、音楽、講演およびラジオ番組などの音楽データや、映画、テレビジョン番組、ビデオプログラム、写真、文書、絵画および図表などの映像データや、ゲームおよびソフトウエアなどであってもよい。
ここで、コンテンツサーバ2610は、同一コンテンツに関し、異なるビットレートで複数のデータファイルを生成する。またコンテンツサーバ2611は、コンテンツ再生装置2620からのコンテンツの再生要求に対して、コンテンツサーバ2610のURLの情報に、コンテンツ再生装置2620で当該URLに付加させるパラメータの情報を含めてコンテンツ再生装置2620に送信する。以下、図131を参照して当該事項について具体的に説明する。
図131は、図130のコンテンツ再生システムにおけるデータの流れを示した説明図である。コンテンツサーバ2610は、同一のコンテンツデータを異なるビットレートで符号化し、図131に示したように例えば2MbpsのファイルA、1.5MbpsのファイルB、1MbpsのファイルCを生成する。相対的に、ファイルAはハイビットレートであり、ファイルBは標準ビットレートであり、ファイルCはロービットレートである。
また、図131に示したように、各ファイルの符号化データは複数のセグメントに区分されている。例えば、ファイルAの符号化データは「A1」、「A2」、「A3」、・・・「An」というセグメントに区分されており、ファイルBの符号化データは「B1」、「B2」、「B3」、・・・「Bn」というセグメントに区分されており、ファイルCの符号化データは「C1」、「C2」、「C3」、・・・「Cn」というセグメントに区分されている。
なお、各セグメントはMP4のシンクサンプル(たとえば、AVC/H.264の映像符号化ではIDR−ピクチャ)で始まる単独で再生可能な1または2以上の映像符号化データおよび音声符号化データより構成サンプルで構成されてもよい。例えば、一秒30フレームのビデオデータが15フレーム固定長のGOP(Group of Picture)にて符号化されていた場合、各セグメントは、4GOPに相当する2秒分の映像ならびに音声符号化データであっても、20GOPに相当する10秒分の映像ならびに音声符号化データであってもよい。
また、各ファイルにおける配置順番が同一のセグメントによる再生範囲(コンテンツの先頭からの時間位置の範囲)は同一である。例えば、セグメント「A2」、セグメント「B2」、およびセグメント「C2」の再生範囲は同一であり、各セグメントが2秒分の符号化データである場合、セグメント「A2」、セグメント「B2」、およびセグメント「C2」の再生範囲は、いずれもコンテンツの2秒乃至4秒である。
コンテンツサーバ2610は、このような複数のセグメントから構成されるファイルA乃至ファイルCを生成すると、ファイルA乃至ファイルCを記憶する。そして、コンテンツサーバ2610は、図131に示したように、異なるファイルを構成するセグメントをコンテンツ再生装置2620に順次に送信し、コンテンツ再生装置2620は、受信したセグメントをストリーミング再生する。
ここで、本実施形態によるコンテンツサーバ2610は、各符号化データのビットレート情報およびアクセス情報を含むプレイリストファイル(以下、MPD:Media Presentation Description)をコンテンツ再生装置2620に送信し、コンテンツ再生装置2620は、MPDに基づき、複数のビットレートのうちのいずれかのビットレートを選択し、選択したビットレートに対応するセグメントの送信をコンテンツサーバ2610に要求する。
図130では、1つのコンテンツサーバ2610のみが図示されているが、本開示は係る例に限定されないことは言うまでもない。
図132は、MPDの具体例を示した説明図である。図132に示したように、MPDには、異なるビットレート(BANDWIDTH)を有する複数の符号化データに関するアクセス情報が含まれる。例えば、図132に示したMPDは、256Kbps、1.024Mbps、1.384Mbps、1.536Mbps、2.048Mbpsの各々の符号化データが存在することを示す共に、各符号化データに関するアクセス情報を含む。コンテンツ再生装置2620は、かかるMPDに基づき、ストリーミング再生する符号化データのビットレートを動的に変更することが可能である。
なお、図130にはコンテンツ再生装置2620の一例として携帯端末を示しているが、コンテンツ再生装置2620はかかる例に限定されない。例えば、コンテンツ再生装置2620は、PC(Personal Computer)、家庭用映像処理装置(DVDレコーダ、ビデオデッキなど)、PDA(Personal Digital Assistants)、家庭用ゲーム機器、家電機器などの情報処理装置であってもよい。また、コンテンツ再生装置2620は、携帯電話、PHS(Personal Handyphone System)、携帯用音楽再生装置、携帯用映像処理装置、携帯用ゲーム機器などの情報処理装置であってもよい。
<コンテンツサーバ2610の構成>
以上、図130乃至図132を参照し、コンテンツ再生システムの概要を説明した。続いて、図133を参照し、コンテンツサーバ2610の構成を説明する。
図133は、コンテンツサーバ2610の構成を示した機能ブロック図である。図133に示したように、コンテンツサーバ2610は、ファイル生成部2631と、記憶部2632と、通信部2633とを備える。
ファイル生成部2631は、コンテンツデータを符号化するエンコーダ2641を備え、同一のコンテンツでビットレートが異なる複数の符号化データ、および上述したMPDを生成する。例えば、ファイル生成部2631は、256Kbps、1.024Mbps、1.384Mbps、1.536Mbps、2.048Mbpsの各々の符号化データを生成した場合、図132に示したようなMPDを生成する。
記憶部2632は、ファイル生成部2631により生成されたビットレートが異なる複数の符号化データおよびMPDを記憶する。この記憶部2632は、不揮発性メモリ、磁気ディスク、光ディスク、およびMO(Magneto Optical)ディスクなどの記憶媒体であってもよい。不揮発性メモリとしては、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)、EPROM(Erasable Programmable ROM)があげられる。また、磁気ディスクとしては、ハードディスクおよび円盤型磁性体ディスクなどがあげられる。また、光ディスクとしては、CD(Compact Disc、DVD-R(Digital Versatile Disc Recordable)およびBD(Blu-Ray Disc(登録商標))などがあげられる。
通信部2633は、コンテンツ再生装置2620とのインタフェースであって、ネットワーク2612を介してコンテンツ再生装置2620と通信する。より詳細には、通信部2633は、HTTPに従ってコンテンツ再生装置2620と通信するHTTPサーバとしての機能を有する。例えば、通信部2633は、MPDをコンテンツ再生装置2620に送信し、HTTPに従ってコンテンツ再生装置2620からMPDに基づいて要求された符号化データを記憶部2632から抽出し、HTTPレスポンスとしてコンテンツ再生装置2620に符号化データを送信する。
<コンテンツ再生装置2620の構成>
以上、本実施形態によるコンテンツサーバ2610の構成を説明した。続いて、図134を参照し、コンテンツ再生装置2620の構成を説明する。
図134は、コンテンツ再生装置2620の構成を示した機能ブロック図である。図134に示したように、コンテンツ再生装置2620は、通信部2651と、記憶部2652と、再生部2653と、選択部2654と、現在地取得部2656とを備える。
通信部2651は、コンテンツサーバ2610とのインタフェースであって、コンテンツサーバ2610に対してデータを要求し、コンテンツサーバ2610からデータを取得する。より詳細には、通信部2651は、HTTPに従ってコンテンツ再生装置2620と通信するHTTPクライアントとしての機能を有する。例えば、通信部2651は、HTTP Rangeを利用することにより、コンテンツサーバ2610からMPDや符号化データのセグメントを選択的に取得することができる。
記憶部2652は、コンテンツの再生に関する種々の情報を記憶する。例えば、通信部2651によりコンテンツサーバ2610から取得されるセグメントを順次にバッファリングする。記憶部2652にバッファリングされた符号化データのセグメントは、FIFO(First In First Out)で再生部2653へ順次に供給される。
また記憶部2652は、後述のコンテンツサーバ2611から要求された、MPDに記述されているコンテンツのURLへのパラメータの付加指示に基づき、通信部2651でURLにパラメータを付加して、そのURLへアクセスするための定義を記憶する。
再生部2653は、記憶部2652から供給されるセグメントを順次に再生する。具体的には、再生部2653は、セグメントのデコード、DA変換、およびレンダリングなどを行う。
選択部2654は、MPDに含まれるいずれのビットレートに対応する符号化データのセグメントを取得するかを同一コンテンツ内で順次に選択する。例えば、選択部2654がネットワーク2612の帯域に応じてセグメント「A1」、「B2」、「A3」を順次に選択すると、図131に示したように、通信部2651がコンテンツサーバ2610からセグメント「A1」、「B2」、「A3」を順次に取得する。
現在地取得部2656は、コンテンツ再生装置2620の現在の位置を取得するものであり、例えばGPS(Global Positioning System)受信機などの現在地を取得するモジュールで構成されていても良い。また現在地取得部2656は、無線ネットワークを使用してコンテンツ再生装置2620の現在の位置を取得するものであってもよい。
<コンテンツサーバ2611の構成>
図135は、コンテンツサーバ2611の構成例を示す説明図である。図135に示したように、コンテンツサーバ2611は、記憶部2671と、通信部2672とを備える。
記憶部2671は、MPDのURLの情報を記憶する。MPDのURLの情報は、コンテンツの再生を要求するコンテンツ再生装置2620からの求めに応じ、コンテンツサーバ2611からコンテンツ再生装置2620へ送信される。また記憶部2671は、コンテンツ再生装置2620へのMPDのURLの情報を提供する際に、当該MPDに記述されているURLにコンテンツ再生装置2620でパラメータを付加させる際の定義情報を記憶する。
通信部2672は、コンテンツ再生装置2620とのインタフェースであって、ネットワーク2612を介してコンテンツ再生装置2620と通信する。すなわち通信部2672は、コンテンツの再生を要求するコンテンツ再生装置2620から、MPDのURLの情報の要求を受信し、コンテンツ再生装置2620へMPDのURLの情報を送信する。通信部2672から送信されるMPDのURLには、コンテンツ再生装置2620でパラメータを付加させるための情報が含まれる。
コンテンツ再生装置2620でMPDのURLに付加させるパラメータについては、コンテンツサーバ2611およびコンテンツ再生装置2620で共有する定義情報で様々に設定することが出来る。一例を挙げれば、コンテンツ再生装置2620の現在位置、コンテンツ再生装置2620を使用するユーザのユーザID、コンテンツ再生装置2620のメモリサイズ、コンテンツ再生装置2620のストレージの容量などの情報を、コンテンツ再生装置2620でMPDのURLに付加させることが出来る。
以上のような構成のコンテンツ再生システムにおいて、図1乃至図118を参照して上述したような本技術を適用することにより、図1乃至図118を参照して上述した効果と同様の効果を得ることができる。
すなわち、コンテンツサーバ2610のエンコーダ2641は、上述した実施形態に係る画像符号化装置の機能を有する。また、コンテンツ再生装置2620の再生部2653は、上述した実施形態に係る画像復号装置の機能を有する。それにより、符号化・復号に必要な記憶容量の増大を抑制することができる。
また、コンテンツ再生システムにおいて、本技術により符号化されたデータを送受信することにより、符号化・復号に必要な記憶容量の増大を抑制することができる。
<16.Wi-Fi規格の無線通信システムの応用例>
<Wi-Fi規格の無線通信システムの応用例>
本技術を適用可能な無線通信システムにおける無線通信装置の基本動作例について説明する。
<無線通信装置の基本動作例>
最初に、P2P(Peer to Peer)接続を確立して特定のアプリケーションを動作させるまでの無線パケット送受信がなされる。
次に、第2層で接続する前に、使用する特定のアプリケーションを指定してからP2P接続を確立して特定のアプリケーションを動作させるまでの無線パケット送受信がなされる。その後、第2層での接続後に、特定のアプリケーションを起動する場合の無線パケット送受信がなされる。
<特定のアプリケーション動作開始時における通信例>
図136および図137は、上述したP2P(Peer to Peer)接続を確立して特定のアプリケーションを動作させるまでの無線パケット送受信の例であり、無線通信の基礎となる各装置による通信処理例を示すシーケンスチャートである。具体的には、Wi-Fi Allianceにおいて標準化されているWi-Fiダイレクト(Direct)規格(Wi-Fi P2Pと呼ばれることもある)での接続に至るダイレクト接続の確立手順の一例を示す。
ここで、Wi-Fiダイレクトでは、複数の無線通信装置が互いの存在を検出する(Device Discovery、Service Discovery)。そして、接続機器選択を行うとその選択された機器間において、WPS(Wi-Fi Protected Setup)で機器認証を行うことによりダイレクト接続を確立する。また、Wi-Fiダイレクトでは、複数の無線通信装置が親機(Group Owner)または子機(Client)の何れとしての役割を担うかを決定して通信グループを形成する。
ただし、この通信処理例では、一部のパケット送受信については省略して示す。例えば、初回接続時には、上述したように、WPSを使うためのパケット交換が必要であり、AuthenticationRequest/Responseのやり取り等においてもパケット交換が必要となる。しかしながら、図136および図137では、これらのパケット交換についての図示を省略し、2回目以降の接続についてのみを示す。
なお、図136および図137では、第1無線通信装置2701および第2無線通信装置2702間における通信処理例を示すが、他の無線通信装置間における通信処理についても同様である。
最初に、第1無線通信装置2701および第2無線通信装置2702間においてDevice Discoveryが行われる(2711)。例えば、第1無線通信装置2701は、Probe request(応答要求信号)を送信し、このProbe requestに対するProbe response(応答信号)を第2無線通信装置2702から受信する。これにより、第1無線通信装置2701および第2無線通信装置2702は、互いの存在を発見することができる。また、Device Discoveryにより、相手のデバイス名や種類(TV、PC、スマートフォン等)を取得することができる。
続いて、第1無線通信装置2701および第2無線通信装置2702間においてService Discoveryが行われる(2712)。例えば、第1無線通信装置2701は、Device Discoveryで発見した第2無線通信装置2702が対応しているサービスを問い合わせるService Discovery Queryを送信する。そして、第1無線通信装置2701は、Service Discovery Responseを第2無線通信装置2702から受信することにより、第2無線通信装置2702が対応しているサービスを取得する。すなわち、Service Discoveryにより、相手が実行可能なサービス等を取得することができる。相手が実行可能なサービスは、例えば、service、protocol(DLNA(Digital Living Network Alliance) DMR(Digital Media Renderer)等)である。
続いて、ユーザにより接続相手の選択操作(接続相手選択操作)が行われる(2713)。この接続相手選択操作は、第1無線通信装置2701および第2無線通信装置2702の何れか一方のみに発生することもある。例えば、第1無線通信装置2701の表示部に接続相手選択画面が表示され、この接続相手選択画面において接続相手として第2無線通信装置2702がユーザ操作により選択される。
ユーザにより接続相手選択操作が行われると(2713)、第1無線通信装置2701および第2無線通信装置2702間においてGroup Owner Negotiationが行われる(2714)。図136および図137では、Group Owner Negotiationの結果により、第1無線通信装置2701がグループオーナー(Group Owner)2715になり、第2無線通信装置2702がクライアント(Client)2716になる例を示す。
続いて、第1無線通信装置2701および第2無線通信装置2702間において、各処理(2717乃至2720)が行われることにより、ダイレクト接続が確立される。すなわち、Association(L2(第2層) link確立)(2717)、Secure link確立(2718)が順次行われる。また、IP Address Assignment(2719)、SSDP(Simple Service Discovery Protocol)等によるL3上でのL4 setup(2720)が順次行われる。なお、L2(layer2)は、第2層(データリンク層)を意味し、L3(layer3)は、第3層(ネットワーク層)を意味し、L4(layer4)は、第4層(トランスポート層)を意味する。
続いて、ユーザにより特定のアプリケーションの指定または起動操作(アプリ指定・起動操作)が行われる(2721)。このアプリ指定・起動操作は、第1無線通信装置2701および第2無線通信装置2702の何れか一方のみに発生することもある。例えば、第1無線通信装置2701の表示部にアプリ指定・起動操作画面が表示され、このアプリ指定・起動操作画面において特定のアプリケーションがユーザ操作により選択される。
ユーザによりアプリ指定・起動操作が行われると(2721)、このアプリ指定・起動操作に対応する特定のアプリケーションが第1無線通信装置2701および第2無線通信装置2702間において実行される(2722)。
ここで、Wi-Fi Direct規格以前の仕様(IEEE802.11で標準化された仕様)の範囲内で、AP(Access Point)−STA(Station)間の接続を行う場合を想定する。この場合には、第2層で接続する前(IEEE802.11用語ではassociation前)には、どのようなデバイスと繋ごうとしているのかを事前に知ることができなかった。
これに対して、図136および図137に示すように、Wi-Fi Directでは、Device discoveryやService Discovery(option)において、接続候補相手を探す際に、接続相手の情報を取得することができる。この接続相手の情報は、例えば、基本的なデバイスのタイプや、対応している特定のアプリケーション等である。そして、その取得された接続相手の情報に基づいて、ユーザに接続相手を選択させることができる。
この仕組みを拡張して、第2層で接続する前に特定のアプリケーションを指定して、接続相手を選択し、この選択後に、自動的に特定のアプリケーションを起動させる無線通信システムを実現することも可能である。このような場合の接続に至るシーケンスの一例を、図139に示す。また、この通信処理において送受信されるフレームフォーマット(frame format)の構成例を図138に示す。
<フレームフォーマットの構成例>
図138は、本技術の基礎となる各装置による通信処理において送受信されるフレームフォーマット(frame format)の構成例を模式的に示す図である。すなわち、図138には、第2層での接続を確立するためのMAC frameの構成例を示す。具体的には、図139に示すシーケンスを実現するためのAssociation Request/Response(2787)のフレームフォーマットの一例である。
図138に示されるように、MAC frameは、Frame Control(2751)乃至FCS(2758)よりなり、その内、Frame Control(2751)からSequence Control(2756)までは、MACヘッダである。また、Association Requestを送信する際には、Frame Control(2751)において、B3B2="0b00"、かつ、B7B6B5B4="0b0000"が設定される。また、Association Responseをencapsulateする際には、Frame Control(2751)において、B3B2="0b00"、かつ、B7B6B5B4="0b0001"が設定される。なお、「0b00」は、2進法で「00」であることを示し、「0b0000」は、2進法で「0000」であることを示し、「0b0001」は、2進法で「0001」であることを示す。
ここで、図138に示すMAC frame(Frame body(2757))は、基本的には、IEEE802.11-2007仕様書section7.2.3.4節と7.2.3.5節に記載のAssociation Request/Responseframe formatである。ただし、IEEE802.11仕様書内で定義されているInformation Element(以下、IEと省略)(2759)だけでなく、独自に拡張したIEを含めている点が異なる。
また、Vendor Specific IE(2760)であることを示すため、IE Type(Information Element ID(2761))には、10進数で127がセットされる。この場合、IEEE802.11−2007仕様7.3.2.26節により、Lengthフィールド(2762)と、OUIフィールド(2763)が続き、この後にvendor specific content(2764)が配置される。
Vendor specific content(2764)の内容としては、最初にvendor specific IEのtypeを示すフィールド(IE type(2765))を設ける。そして、この後に、複数のsubelement(2766)を格納することができる構成とすることが考えられる。
subelement(2766)の内容として、使われるべき特定のアプリケーションの名称(2767)や、その特定のアプリケーション動作時のデバイスの役割(2768)を含めることが考えられる。また、特定のアプリケーション、または、その制御のために使われるポート番号等の情報(L4セットアップのための情報)(2769)や、特定のアプリケーション内でのCapabilityに関する情報(Capability情報)(2770)を含めることが考えられる。ここで、Capability情報は、例えば、指定する特定のアプリケーションがDLNAの場合に、音声送出/再生に対応している、映像送出/再生に対応している等を特定するための情報である。
以上のような構成の無線通信システムにおいて、図1乃至図118を参照して上述したような本技術を適用することにより、図1乃至図118を参照して上述した効果と同様の効果を得ることができる。すなわち、符号化・復号に必要な記憶容量の増大を抑制することができる。また、上述した無線通信システムにおいて、本技術により符号化されたデータを送受信することにより、符号化・復号に必要な記憶容量の増大を抑制することができる。
なお、本明細書では、画像データの符号化データ以外の各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
また、本明細書において、CTU(Coding Tree Unit)は、LCU(最大数のCU)のCTB(Coding Tree Block)と、そのLCUベース(レベル)で処理するときのパラメータを含む単位であるとする。また、CTUを構成するCU(Coding Unit)は、CB(Coding Block)と、そのCUベース(レベル)で処理するときのパラメータを含む単位であるとする。
なお、本技術は以下のような構成も取ることができる。
(1) カレントレイヤの復号において動き補償を行う動き補償部と、
前記動き補償部により再構築され、他のレイヤの復号における前記動き補償に利用される前記カレントレイヤの動きベクトルを圧縮する第1の圧縮部と
を備える画像処理装置。
(2) 前記動き補償部により再構築された前記カレントレイヤの動きベクトルを、前記第1の圧縮部よりも高圧縮率に圧縮する第2の圧縮部をさらに備え、
前記動き補償部は、前記第2の圧縮部により圧縮された前記動きベクトルを用いて、前記カレントレイヤの復号における前記動き補償を行う
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(3) 前記第2の圧縮部は、前記第1の圧縮部により圧縮された前記動きベクトルをさらに圧縮する
前記(2)に記載の画像処理装置。
(4) 前記動き補償部は、前記第1の圧縮部により圧縮された前記動きベクトルを用いて、前記カレントレイヤの復号における前記動き補償を行う
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(5) 他のレイヤの復号における前記動き補償に利用される前記カレントレイヤの動きベクトルを圧縮するか否かを示すフラグを受け取る受け取り部と、
前記受け取り部により受け取られた前記フラグが動きベクトルを圧縮することを示す値である場合、前記第1の圧縮部により圧縮された前記動きベクトルを、他のレイヤの復号における前記動き補償に利用される前記カレントレイヤの動きベクトルとして選択し、前記受け取り部により受け取られた前記フラグが動きベクトルを圧縮しないことを示す値である場合、前記第1の圧縮部により圧縮される前の前記動きベクトルを、他のレイヤの復号における前記動き補償に利用される前記カレントレイヤの動きベクトルとして選択する選択部と
をさらに備える前記(1)乃至(9)のいずれかに記載の画像処理装置。
(6) 前記動き補償部は、前記受け取り部により受け取られた前記フラグの値に関わらず、前記第1の圧縮部により圧縮された前記動きベクトルを用いて、前記カレントレイヤの復号における前記動き補償を行う
前記(5)に記載の画像処理装置。
(7) 前記第1の圧縮部は、前記動き補償部により再構築された複数の動きベクトルから、代表値とする動きベクトルを選択することにより、前記カレントレイヤの動きベクトルを圧縮する
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(8) 前記第1の圧縮部は、前記動き補償部により再構築された複数の動きベクトルを用いて、代表値とする動きベクトル算出することにより、前記カレントレイヤの動きベクトルを圧縮する
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(9) 前記動き補償部は、他のレイヤの復号における前記動き補償において再構築された動きベクトルを用いて前記動き補償を行う
前記(1)乃至(8)のいずれかに記載の画像処理装置。
(10) 画像処理装置の画像処理方法において、
前記画像処理装置が、
カレントレイヤの復号において動き補償を行い、
前記動き補償により再構築され、他のレイヤの復号における前記動き補償に利用される前記カレントレイヤの動きベクトルを圧縮する
画像処理方法。
(11) カレントレイヤの符号化において動き予測・補償を行う動き予測・補償部と、
前記動き予測・補償部により生成され、他のレイヤの符号化における前記動き予測・補償に利用される、前記カレントレイヤの動きベクトルを圧縮する第1の圧縮部と
を備える画像処理装置。
(12) 前記動き予測・補償部により生成された前記カレントレイヤの動きベクトルを、前記第1の圧縮部よりも高圧縮率に圧縮する第2の圧縮部をさらに備え、
前記動き予測・補償部は、前記第2の圧縮部により圧縮された前記動きベクトルを用いて、前記カレントレイヤの符号化における前記動き予測・補償を行う
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(13) 前記第2の圧縮部は、前記第1の圧縮部により圧縮された前記動きベクトルをさらに圧縮する
前記(12)に記載の画像処理装置。
(14) 前記動き予測・補償部は、前記第1の圧縮部により圧縮された前記動きベクトルを用いて、前記カレントレイヤの符号化における前記動き予測・補償を行う
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(15) 他のレイヤの符号化における前記動き予測・補償に利用される前記カレントレイヤの動きベクトルを圧縮するか否かを制御する制御部と、
前記制御部の制御に従って、前記第1の圧縮部により圧縮される前の前記動きベクトルと、前記第1の圧縮部により圧縮された前記動きベクトルとのいずれか一方を、他のレイヤの符号化における前記動き予測・補償に利用される前記カレントレイヤの動きベクトルとして選択する選択部と、
前記制御部の制御に従って、他のレイヤの符号化における前記動き予測・補償に利用される前記カレントレイヤの動きベクトルを圧縮するか否かを示すフラグを生成する生成部と、
前記生成部により生成された前記フラグを伝送する伝送部と
をさらに備える前記(11)乃至(19)のいずれかに記載の画像処理装置。
(16) 前記動き予測・補償部は、前記制御部の制御に関わらず、前記第1の圧縮部により圧縮された前記動きベクトルを用いて、前記カレントレイヤの符号化における前記動き予測・補償を行う
前記(15)に記載の画像処理装置。
(17) 前記第1の圧縮部は、前記動き予測・補償部により生成された複数の動きベクトルから、代表値とする動きベクトルを選択することにより、前記カレントレイヤの動きベクトルを圧縮する
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(18) 前記第1の圧縮部は、前記動き予測・補償部により生成された複数の動きベクトルを用いて、代表値とする動きベクトル算出することにより、前記カレントレイヤの動きベクトルを圧縮する
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(19) 前記動き予測・補償部は、他のレイヤの符号化における前記動き予測・補償において生成された動きベクトルを用いて前記動き予測・補償を行う
前記(11)乃至(18)のいずれかに記載の画像処理装置。
(20) 画像処理装置の画像処理方法において、
前記画像処理装置が、
カレントレイヤの符号化において動き予測・補償を行い、
前記動き予測・補償により生成され、他のレイヤの符号化における前記動き予測・補償に利用される、前記カレントレイヤの動きベクトルを圧縮する
画像処理方法。
(21) 複数階層化された画像データが符号化された階層画像符号化データを受け取る受け取り部と、
前記受け取り部により受け取られた前記階層画像符号化データのベースレイヤのカレントエリアについて、イントラ予測モードを間引く間引き処理部と、
前記間引き処理部により間引かれて残ったベースレイヤのイントラ予測モードを前記カレントエリアの代表として記憶する記憶部と、
前記記憶部に記憶されているベースレイヤのイントラ予測モードの内、前記受け取り部により受け取られた前記階層画像符号化データのエンハンスメントレイヤのカレントブロックに対応するベースレイヤのイントラ予測モードを前記記憶部から読み出し、読み出した前記イントラ予測モードを用いてイントラ予測を行い、前記エンハンスメントレイヤの前記カレントブロックの予測画像を生成するイントラ予測部と、
前記イントラ予測部により生成された前記予測画像を用いて、前記受け取り部により受け取られた前記階層画像符号化データのエンハンスメントレイヤを復号する復号部と
を備える画像処理装置。
(22) 前記間引き処理部は、前記カレントエリア内の最初にイントラ予測が行われるブロックのイントラ予測モードを前記カレントエリアの代表とし、前記カレントエリア内のその他のブロックのイントラ予測モードを破棄する
(21)、(23)乃至(29)のいずれかに記載の画像処理装置。
(23) 前記間引き処理部は、前記カレントエリアの中心付近のブロックのイントラ予測モードを前記カレントエリアの代表とし、前記カレントエリア内のその他のブロックのイントラ予測モードを破棄する
(21)、(22)、(24)乃至(29)のいずれかに記載の画像処理装置。
(24) 前記受け取り部は、さらに間引き率を受け取り、
前記間引き処理部は、前記受け取り部により受け取られた前記間引き率で前記ベースレイヤのイントラ予測モードを間引く
(21)乃至(23)、(25)乃至(29)のいずれかに記載の画像処理装置。
(25) 前記間引き率は、ベースレイヤの解像度を基準に設定されている
(21)乃至(24)、(26)乃至(29)のいずれかに記載の画像処理装置。
(26) 前記間引き率は、前記階層画像符号化データの所定の位置に格納されて伝送される
(21)乃至(25)、(27)乃至(29)のいずれかに記載の画像処理装置。
(27) 前記間引き率は、ビデオパラメータセットにおいて伝送される
(21)乃至(26)、(28)、(29)のいずれかに記載の画像処理装置。
(28) 前記間引き率は、前記階層画像符号化データのエンハンスメントレイヤのシーケンスパラメータセット、ピクチャパラメータセット、若しくはスライスヘッダにおいて伝送される
(21)乃至(27)、(29)のいずれかに記載の画像処理装置。
(29) 前記復号部は、さらに、前記階層画像符号化データのエンハンスメントレイヤと異なる符号化方式で符号化された前記階層画像符号化データのベースレイヤを復号する
(21)乃至(28)のいずれかに記載の画像処理装置。
(30) 複数階層化された画像データが符号化された階層画像符号化データを受け取り、
受け取られた前記階層画像符号化データのベースレイヤのカレントエリアについて、イントラ予測モードを間引き、
間引かれて残ったベースレイヤのイントラ予測モードを前記カレントエリアの代表として記憶部に記憶し、
前記記憶部に記憶されているベースレイヤのイントラ予測モードの内、受け取られた前記階層画像符号化データのエンハンスメントレイヤのカレントブロックに対応するベースレイヤのイントラ予測モードを前記記憶部から読み出し、読み出した前記イントラ予測モードを用いてイントラ予測を行い、前記エンハンスメントレイヤの前記カレントブロックの予測画像を生成し、
生成された前記予測画像を用いて、受け取られた前記階層画像符号化データのエンハンスメントレイヤを復号する
画像処理方法。
(31) 複数階層化された画像データのベースレイヤのカレントエリアについて、イントラ予測モードを間引く間引き処理部と、
前記間引き処理部により間引かれて残ったベースレイヤのイントラ予測モードを前記カレントエリアの代表として記憶する記憶部と、
前記記憶部に記憶されているベースレイヤのイントラ予測モードの内、前記画像データのエンハンスメントレイヤのカレントブロックに対応するベースレイヤのイントラ予測モードを前記記憶部から読み出し、読み出した前記イントラ予測モードを用いてイントラ予測を行い、前記エンハンスメントレイヤの前記カレントブロックの予測画像を生成するイントラ予測部と、
前記イントラ予測部により生成された前記予測画像を用いて、前記画像データのエンハンスメントレイヤを符号化する符号化部と、
前記符号化部により前記画像データが符号化されて得られた階層画像符号化データを伝送する伝送部と
を備える画像処理装置。
(32) 前記間引き処理部は、前記カレントエリア内の最初にイントラ予測が行われるブロックのイントラ予測モードを前記カレントエリアの代表とし、前記カレントエリア内のその他のブロックのイントラ予測モードを破棄する
(31)、(33)乃至(39)のいずれかに記載の画像処理装置。
(33) 前記間引き処理部は、前記カレントエリアの中心付近のブロックのイントラ予測モードを前記カレントエリアの代表とし、前記カレントエリア内のその他のブロックのイントラ予測モードを破棄する
(31)、(32)、(34)乃至(39)のいずれかに記載の画像処理装置。
(34) 間引き率を設定する間引き率設定部をさらに備え、
前記間引き処理部は、前記間引き率設定部により設定された前記間引き率で前記ベースレイヤのイントラ予測モードを間引く
(31)乃至(33)、(35)乃至(39)のいずれかに記載の画像処理装置。
(35) 前記間引き率設定部は、前記間引き率を、ベースレイヤの解像度を基準に設定する
(31)乃至(34)、(36)乃至(39)のいずれかに記載の画像処理装置。
(36) 前記伝送部は、前記間引き率を、前記階層画像符号化データの所定の位置に格納して伝送する
(31)乃至(35)、(37)乃至(39)のいずれかに記載の画像処理装置。
(37) 前記伝送部は、前記間引き率を、ビデオパラメータセットにおいて伝送する
(31)乃至(36)、(38)、(39)のいずれかに記載の画像処理装置。
(38) 前記伝送部は、前記間引き率を、前記階層画像符号化データのエンハンスメントレイヤのシーケンスパラメータセット、ピクチャパラメータセット、若しくはスライスヘッダにおいて伝送する
(31)乃至(37)、(39)のいずれかに記載の画像処理装置。
(39) 前記符号化部は、さらに、前記画像データのエンハンスメントレイヤと異なる符号化方式で、前記画像データのベースレイヤを符号化する
(31)乃至(38)のいずれかに記載の画像処理装置。
(40) 複数階層化された画像データのベースレイヤのカレントエリアについて、イントラ予測モードを間引き、
間引かれて残ったベースレイヤのイントラ予測モードを前記カレントエリアの代表として記憶部に記憶し、
前記記憶部に記憶されているベースレイヤのイントラ予測モードの内、前記画像データのエンハンスメントレイヤのカレントブロックに対応するベースレイヤのイントラ予測モードを前記記憶部から読み出し、読み出した前記イントラ予測モードを用いてイントラ予測を行い、前記エンハンスメントレイヤの前記カレントブロックの予測画像を生成し、
生成された前記予測画像を用いて、前記画像データのエンハンスメントレイヤを符号化し、
前記画像データが符号化されて得られた階層画像符号化データを伝送する
画像処理方法。
(41) 複数レイヤよりなる画像データのカレントレイヤの符号化データと、前記画像データのカレントレイヤの復号に用いる他のレイヤの動き情報の予測方向を示す制御情報とを受け取る受け取り部と、
前記他のレイヤの、前記受け取り部により受け取られた前記制御情報により示される前記予測方向の動き情報を取得する動き情報取得部と、
前記動き情報取得部により取得された前記他のレイヤの前記予測方向の動き情報を用いて動き予測を行い、前記カレントレイヤの予測画像を生成する予測画像生成部と、
前記予測画像生成部により生成された前記予測画像を用いて前記カレントレイヤの符号化データを復号する復号部と
を備える画像復号装置。
(42) 前記制御情報は、前記予測方向がL0方向であるかを示す情報である
(41)、(43)乃至(49)のいずれかに記載の画像復号装置。
(43) 前記制御情報は、前記予測方向がL1方向であるかを示す情報である
(41)、(42)、(44)乃至(49)のいずれかに記載の画像復号装置。
(44) 前記制御情報は、前記予測方向がL0方向であるか、L1方向であるかを示す情報である
(41)乃至(43)、(45)乃至(49)のいずれかに記載の画像復号装置。
(45) 前記制御情報は、前記予測方向を、ピクチャを複数に分割するスライス毎に示す情報である
(41)乃至(44)、(46)乃至(49)のいずれかに記載の画像復号装置。
(46) 前記受け取り部は、前記制御情報を前記スライス毎に受け取る
(41)乃至(45)、(47)乃至(49)のいずれかに記載の画像復号装置。
(47) 前記動き情報取得部により取得された前記他のレイヤの動き情報の予測方向が、使用時の予測方向と異なる場合、前記他のレイヤの動き情報の予測方向を変換する変換部をさらに備える
(41)乃至(46)、(48)、(49)のいずれかに記載の画像復号装置。
(48) 前記変換部は、さらに、前記動き情報取得部により取得された前記他のレイヤの動き情報を前記カレントレイヤ基準に変換する
(41)乃至(47)、(49)のいずれかに記載の画像復号装置。
(49) 前記動き情報取得部は、前記他のレイヤの、前記カレントレイヤのカレントエリアに対応するエリアの、前記制御情報により示される予測方向の動き情報を取得する
(41)乃至(48)のいずれかに記載の画像復号装置。
(50) 複数レイヤよりなる画像データのカレントレイヤの符号化データと、前記画像データのカレントレイヤの復号に用いる他のレイヤの動き情報の予測方向を示す制御情報とを受け取り、
前記他のレイヤの、受け取られた前記制御情報により示される前記予測方向の動き情報を取得し、
取得された前記他のレイヤの前記予測方向の動き情報を用いて動き予測を行い、前記カレントレイヤの予測画像を生成し、
生成された前記予測画像を用いて前記カレントレイヤの符号化データを復号する
画像復号方法。
(51) 複数レイヤよりなる画像データのカレントレイヤの符号化に用いる他のレイヤの動き情報の予測方向を設定する予測方向設定部と、
前記他のレイヤの、前記予測方向設定部により設定された予測方向の動き情報を取得する動き情報取得部と、
前記動き情報取得部により取得された前記他のレイヤの前記予測方向の動き情報を用いて動き予測を行い、前記カレントレイヤの予測画像を生成する予測画像生成部と、
前記予測画像生成部により生成された前記予測画像を用いて前記画像データのカレントレイヤを符号化する符号化部と、
前記符号化部により生成された前記画像データの符号化データと、前記予測方向設定部により設定された前記予測方向を示す制御情報とを伝送する伝送部と
を備える画像符号化装置。
(52) 前記制御情報は、前記予測方向設定部により設定された予測方向がL0方向であるかを示す情報である
(51)、(53)乃至(59)のいずれかに記載の画像符号化装置。
(53) 前記制御情報は、前記予測方向設定部により設定された予測方向がL1方向であるかを示す情報である
(51)、(52)、(54)乃至(59)のいずれかに記載の画像符号化装置。
(54) 前記制御情報は、前記予測方向設定部により設定された予測方向がL0方向であるか、L1方向であるかを示す情報である
(51)乃至(53)、(55)乃至(59)のいずれかに記載の画像符号化装置。
(55) 前記予測方向設定部は、前記予測方向を、ピクチャを複数に分割するスライス毎に設定する
(51)乃至(54)、(56)乃至(59)のいずれかに記載の画像符号化装置。
(56) 前記伝送部は、前記制御情報を前記スライス毎に伝送する
(51)乃至(55)、(57)乃至(59)のいずれかに記載の画像符号化装置。
(57) 前記動き情報取得部により取得された前記他のレイヤの動き情報の予測方向が、使用時の予測方向と異なる場合、前記他のレイヤの動き情報の予測方向を変換する変換部をさらに備える
(51)乃至(56)、(58)、(59)のいずれかに記載の画像符号化装置。
(58) 前記変換部は、さらに、前記動き情報取得部により取得された前記他のレイヤの動き情報を前記カレントレイヤ基準に変換する
(51)乃至(57)、(59)のいずれかに記載の画像符号化装置。
(59) 前記動き情報取得部は、前記他のレイヤの、前記カレントレイヤのカレントエリアに対応するエリアの、前記予測方向設定部により設定された予測方向の動き情報を取得する
(51)乃至(58)のいずれかに記載の画像符号化装置。
(60) 複数レイヤよりなる画像データのカレントレイヤの符号化に用いる他のレイヤの動き情報の予測方向を設定し、
前記他のレイヤの、設定された予測方向の動き情報を取得し、
取得された前記他のレイヤの前記予測方向の動き情報を用いて動き予測を行い、前記カレントレイヤの予測画像を生成し、
生成された前記予測画像を用いて前記画像データのカレントレイヤを符号化し、
前記画像データが符号化されて生成された符号化データと、設定された前記予測方向を示す制御情報とを伝送する
画像符号化方法。