以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(AMVPリスト生成処理の他の例)
4.第4の実施の形態(コンピュータ)
5.第5の実施の形態(応用例)
<1.第1の実施の形態>
[Inter-view motion prediction]
AVC(Advanced Video Coding)やHEVC(High Efficiency Video Coding)等の画像符号化においては、時間方向(フレーム間)の相関を利用した動き予測が行われる。
このような予測処理の処理単位として、AVCにおいては、マクロブロックやサブマクロブロックといった階層構造のブロックが規定されているが、HEVCにおいては、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、AVCにおけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)である予測ユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、変換ユニット(Transform Unit(TU))に分割される。現在、HEVCにおいては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
以上のHEVCのように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVCにおけるマクロブロックはLCUに相当すると考えることができる。ただし、CUは階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVCのマクロブロックより大きく設定されることが一般的である。
なお、以下において、「領域」には、上述した各種領域(例えば、マクロブロック、サブマクロブロック、LCU、CU、SCU、PU、およびTU等)を全て含む(それらのいずれであってもよい)。もちろん、上述した以外の単位が含まれてもよいし、説明の内容に応じて不可能な単位は、適宜、除外するものとする。
ところで、従来、HEVCのような符号化方式においては、予測モードの1つとして動き予測が行なわれる。その動き予測においては、マージモードや、カレントブロックのベクトルと予測ベクトルとの差分ベクトルを算出し符号化させるAMVP(Advanced MV prediction)モードが用意されている。
また、そのAMVPモードにおいては、空間的若しくは時間的に周辺のブロックのベクトルが予測ベクトル(PMV)の候補とされるが、多視点画像を符号化する場合、さらに、ベースビュー(Base view)の動きベクトル若しくは視差ベクトル(MV)をディペンデントビュー(Dependent view)の予測ベクトル(PMV)の候補にするIVMP(Inter-view motion prediction)処理が用意されている。このIVMP処理においては、視差分ずらした位置のブロックの動きベクトル若しくは視差ベクトル(MV)を選択することで、より精度の高い予測ベクトル(PMV)を得ることができる。
IVMPツールは、このIVMP処理を行うツールであり、異なるビューで符号化されたベクトルをカレントブロックの予測ベクトルの1つの候補として追加する。IVMP処理により得られる候補ベクトルは、AMVPモードにおいて生成される予測ベクトルの候補のリスト(AMVPリストとも称する)の0番目のインデックスに追加される。その後に、カレントブロックの空間的に周辺のブロック(例えば、カレントブロックの左に隣接するブロックのベクトル、およびカレントブロックの上に隣接するブロックのベクトル)、並びに、カレントブロックの時間的に周辺のブロック(例えば、カレントブロックと同一ビューの異なるピクチャのコロケーテッドブロック)のベクトル等が候補としてAMVPリストに追加される。
また、AMVPリストのインデックス(index)の0と1のベクトルに対して、両ベクトルの長さや方向を比較し、それらが同一である場合、いずれか一方のベクトルを選択するプルーニング処理が行われる。
しかしながら、このIVMPツールは、処理量が多い。したがって、符号化や復号の負荷を低減させるためには、IVMPの候補ベクトルが不要の場合、IVMPツールは使用しないのが望ましい。
図1は、AMVPリストの構成例を示す図である。IVMPが利用不可(not-available)の場合、後ろのベクトルが繰り上がる。つまり、図1のAに示されるように、インデックス0(index=0)のベクトル(Vector)に、カレントブロックの左に位置するブロックのベクトル(From left spatial)がセットされ、インデックス1(index=1)のベクトルに、カレントブロックの上に位置するブロックのベクトル(From above spatial)がセットされ、インデックス2(index=2)のベクトルに、カレントブロックと同一ビューの異なるピクチャのコロケーテッドブロックのベクトル(From TMVP)がセットされる。
また、IVMPが利用可(available)の場合、図1のBに示されるように、インデックス0(index=0)のベクトル(Vector)に、IVMP処理により得られる候補ベクトル(From IVMP)がセットされ、インデックス1(index=1)のベクトル(Vector)に、カレントブロックの左に位置するブロックのベクトル(From left spatial)がセットされ、インデックス2(index=2)のベクトルに、カレントブロックの上に位置するブロックのベクトル(From above spatial)がセットされ、インデックス3(index=3)のベクトルに、カレントブロックと同一ビューの異なるピクチャのコロケーテッドブロックのベクトル(From TMVP)がセットされる。
この場合、インデックス(index)の0と1のベクトルを使ったプルーニング処理が行われ、両ベクトルの長さや方向が比較される。それらが同一であるときは、図1のCに示されるように、IVMP処理により得られる候補ベクトル(From IVMP)がリストから削除され、後ろのベクトルが繰り上がる。
以上のように、状況に応じて、インデックス1(index=1)が示すベクトルが変わる。そのため、符号化側と復号側とでAMVPリストの不一致が生じないようにするためには、符号化の際と復号の際とで、互いに同様の手順でAMVPリストを生成する必要があった。つまり、符号化の際も、復号側の際も、IVMP処理により得られるベクトルを候補とする(AMVPリストに加える)か否かに関わらず、IVMPツールを使用しなければならなかった。そのため、符号化・復号の負荷が増大する恐れがあった。
そこで、非特許文献2には、この符号化・復号の負荷を低減させるために、このIVMPツールを使わないで符号化する方法が提案された。
この方法の場合、IVMP処理により得られるベクトルが、必ずAMVPリストのインデックス0(index=0)にセットされる。IVMP処理により得られるベクトルが無い場合であっても、利用不可(not-available)とせずに、インデックス0(index=0)にゼロベクトルをセットする。このようにすることにより、IVMPの利用可能性(availability)の判定が不要になる。
また、AMVPにおける候補ベクトルのプルーニング処理において、IVMP処理により得られる候補ベクトルをプルーニング処理の対象から除外する。つまり、プルーニング処理は、AMVPリストのインデックス1(index=1)とインデックス2(index=2)とを用いて行う。
つまり、具体的には、IVMPが利用不可(not-available)のときは、図2のAに示されるように、必ずゼロベクトル(Zero vector)がインデックス0(index=0)のベクトル(Vector)にセットされる。したがって、インデックス1(index=1)が示すベクトルは常に同じである。
また、IVMPが利用可(available)のときは、図2のBに示されるように、インデックス0(index=0)のベクトルに、IVMP処理により得られる候補ベクトルがセットされる。また、このとき、インデックス1(index=1)のベクトルとインデックス2(index=2)のベクトルとを用いてプルーニング処理が行われるので、IVMPのベクトルの値によって、インデックス1(index=1)が示すベクトルが影響を受ける事が無い。
したがって、以上のようにAMVPリストをセットするようにすることにより、符号化の際にIVMPを無視しても、インデックス1(index=1)が示すベクトルは、復号の際のそれと一致する。つまり、AMVPインデックスを1以上として符号化することで、符号化の際のIVMP処理をスキップ(省略)することができる。
しかしながら、この非特許文献2に記載の方法の場合であっても、復号の際には、IVMPツールが動作してしまう。つまり、復号側(デコーダ側)では、AMVPインデックスが常に1以上で伝送されていることを知らないので、インデックス0に相当するIVMPツールを動作させて候補ベクトルを作る必要がある。そのため、復号の負荷が増大する恐れがあった。
また、AMVPインデックスは、0から昇順に少ない符号量で伝送することができるが、IVMP処理をスキップして符号化することができるようにするために、1以上のAMVPインデックスを伝送しなくてはならない。そのため、不要に符号化効率を低減させてしまう恐れがあった。
そこで、符号化の負荷だけでなく復号の負荷も低減させることができるようにし、さらに、符号化効率の低減を抑制するために、IVMPツールの使用を制御する制御情報をハイレベルシンタックス(High-level syntax)として伝送するようにする。
この制御情報としては、例えば、IVMPツールを使用するか否かを制御するIVMP使用フラグ(inter_view_mvp_enable_flag)を用いる。例えば、このIVMP使用フラグが1のときは、符号化側(エンコーダ)と復号側(デコーダ)の両方でIVMPツールを使用するようにし、このIVMP使用フラグが0のときは、符号化側(エンコーダ)と復号側(デコーダ)の両方でIVMPツールを使用しないようにする。例えば、IVMP使用フラグが0のときは、IVMPの候補ベクトルを常に利用不可(not available)にする。
このIVMP使用フラグは、例えばユーザ指示等により、符号化・復号の前(少なくとも動き予測の前)の任意のタイミングにおいてセットされる。ハイレベルシンタックスは、例えば、シーケンスパラメータセット(SPS(Sequence Parameter Set))やスライスヘッダ(Slice Header)等である。
以上のようにすることにより、IVMP使用フラグを0とすることにより、符号化だけでなく、復号においてもIVMP処理をスキップすることができる。したがって、符号化の負荷だけでなく復号の負荷も低減させることができる。
また、符号化側(エンコーダ)においても、復号側(デコーダ)において、このIVMP使用フラグの値に基づいてAMVPリストを作成するので、AMVPインデックスを1以上としなくても、AMVPリストは、符号化側(エンコーダ)と復号側(デコーダ)とで一致する。したがって、AMVPインデックスを1以上として伝送する必要がないので、符号化効率の不要な低減を抑制することができる。
[画像符号化装置]
図3は、画像処理装置である画像符号化装置の主な構成例を示すブロック図である。
図3に示される画像符号化装置100は、例えばAVCやHEVC等の符号化方式のように、予測処理を用いて画像データを符号化する。ただし、画像符号化装置100は、複数のビューからなる多視点画像を符号化する。
図3に示されるように画像符号化装置100は、A/D変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、ループフィルタ111、デコードピクチャバッファ112、画面内予測部114、動き予測・補償部115、予測画像選択部116、およびベースビュー(Base View)エンコーダ121を有する。
A/D変換部101は、入力された画像データをA/D変換し、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ102に供給し、記憶させる。画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、その画像のビューIDおよびPOCとともに、演算部103に供給する。
また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、その画像のビューIDおよびPOCとともに、画面内予測部114および動き予測・補償部115にも供給する。なお、ビューIDは、視点を識別するための情報であり、POCは、時刻を識別するための情報である。
演算部103は、画面並べ替えバッファ102から読み出された画像から、予測画像選択部116を介して画面内予測部114若しくは動き予測・補償部115から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。
例えば、画面内予測(イントラ予測)を用いた符号化であるイントラ符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、画面内予測部114から供給される予測画像を減算する。また、例えば、画面間予測(インター予測)を用いた符号化であるインター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、動き予測・補償部115から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。なお、この直交変換の方法は任意である。直交変換部104は、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104から供給される変換係数を量子化する。量子化部105は、符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。なお、この量子化の方法は任意である。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、量子化部105において量子化された変換係数を、任意の符号化方式で符号化する。また、可逆符号化部106は、イントラ予測のモードを示す情報等を含むイントラ予測情報を画面内予測部114から取得し、インター予測のモードを示す情報や動き視差ベクトル情報などを含むインター予測情報を動き予測・補償部115から取得する。さらに、可逆符号化部106は、ループフィルタ111において使用されたフィルタ係数等を取得する。
可逆符号化部106は、これらの各種情報を任意の符号化方式で符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
可逆符号化部106の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持する。蓄積バッファ107は、所定のタイミングにおいて、保持している符号化データを、ビットストリームとして、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。つまり、符号化された各種情報が復号側に供給される。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。この逆量子化の方法は、量子化部105による量子化処理に対応する方法であればどのような方法であってもよい。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、逆量子化部108から供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。この逆直交変換の方法は、直交変換部104による直交変換処理に対応する方法であればどのようなものであってもよい。逆直交変換された出力(局所的に復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109から供給された逆直交変換結果、すなわち、局所的に復元された差分情報に、予測画像選択部116を介して画面内予測部114若しくは動き予測・補償部115から供給される予測画像を加算し、局所的に再構成された画像(以下、再構成画像と称する)を得る。その再構成画像は、ループフィルタ111に供給される。
ループフィルタ111は、デブロックフィルタや適応ループフィルタ等を含み、演算部110から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ111は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ111は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ111が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ111は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部106に供給し、それを符号化させるようにすることもできる。
ループフィルタ111は、フィルタ処理結果(以下、復号画像と称する)をデコードピクチャバッファ112に供給する。また、ループフィルタ111は、演算部110から供給される再構成画像を、画面内予測部114に供給する。
デコードピクチャバッファ112は、ループフィルタ111から供給される復号画像をそれぞれ記憶する。また、デコードピクチャバッファ112は、その画像のビューIDおよびPOCを記憶する。
デコードピクチャバッファ112は、所定のタイミングにおいて、若しくは、動き予測・補償部115等の外部からの要求に基づいて、記憶している復号画像(並びに、その画像のビューIDおよびPOC)を、動き予測・補償部115に供給する。
画面内予測部114は、ループフィルタ111から、処理対象領域(カレントブロック)の周辺に位置する周辺領域(周辺ブロック)の画像を取得すると、その周辺ブロックの画像の画素値を用いて、基本的にプレディクションユニット(PU)を処理単位として予測画像を生成するイントラ予測(画面内予測)を行う。画面内予測部114は、予め用意された複数のモード(イントラ予測モード)でこのイントラ予測を行う。
画面内予測部114は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ102から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。画面内予測部114は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部116に供給する。
また、画面内予測部114は、最適なイントラ予測モード等、イントラ予測に関する情報を含むイントラ予測情報を、適宜可逆符号化部106に供給し、符号化させる。
Base Viewエンコーダ121は、多視点画像のベースビューの符号化を行う。Base Viewエンコーダ121は、ベースビューのデコード画像をデコードピクチャバッファ112に供給し、記憶させる。デコードピクチャバッファ112には、さらに、ループフィルタ111から供給されるノンベースビュー(Non-base View)のデコード画像も記憶される。
Base Viewエンコーダ121は、ベースビューの動き情報を動き予測・補償部115に供給する。
動き予測・補償部115は、デコードピクチャバッファ112から取得したデコード画像と、Base Viewエンコーダ121から取得したベースビューの動き情報を用いて、インター予測(動き予測や視差予測)を行う。
動き予測・補償部115は、検出されたベクトル(動きベクトルや視差ベクトル)に応じて補償処理を行い、予測画像(インター予測画像情報)を生成する。動き予測・補償部115は、予め用意された複数のモード(インター予測モード)でこのようなインター予測(画面間予測)を行う。
動き予測・補償部115は、候補となる全てのインター予測モードで予測画像を生成し、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部115は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部116に供給する。
また、動き予測・補償部115は、最適なインター予測モード等、インター予測に関する情報を含むインター予測情報を可逆符号化部106に供給し、符号化させる。
予測画像選択部116は、演算部103や演算部110に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、予測画像選択部116は、予測画像の供給元として画面内予測部114を選択し、その画面内予測部114から供給される予測画像を演算部103や演算部110に供給する。また、例えば、インター符号化の場合、予測画像選択部116は、予測画像の供給元として動き予測・補償部115を選択し、その動き予測・補償部115から供給される予測画像を演算部103や演算部110に供給する。
[IVMP処理制御]
上述したように、インター予測モードの1つとして、AMVPモードが用意される。画像符号化装置100は、このAMVPモードにおいて、上述したように、IVMPツールの使用を制御する制御情報としてIVMP使用フラグを設定し、そのIVMP使用フラグに基づいてAMVPモードの処理を行うとともに、そのIVMP使用フラグを復号側に伝送する。
可逆符号化部106は、このIVMP使用フラグを設定する。このIVMP使用フラグは任意の情報に基づいて設定することができる。例えば、可逆符号化部106は、ユーザ指示等の外部から供給される情報に基づいて、IVMP使用フラグを設定する。
可逆符号化部106は、任意のデータ単位毎に、IVMPツールの使用を制御することができる。すなわち、可逆符号化部106は、任意のデータ単位毎に、このIVMP使用フラグを設定することができる。また、可逆符号化部106は、階層化されたデータ単位の複数階層毎に、IVMPツールの使用を制御することができる。すなわち、可逆符号化部106は、階層化されたデータ単位の複数階層において、このIVMP使用フラグを設定することができる。
可逆符号化部106は、設定したIVMP使用フラグを、蓄積バッファ107に供給し、復号側(デコーダ)に伝送させる。可逆符号化部106は、例えば、IVMP使用フラグを、画像符号化装置100が画像を符号化して生成した符号化データのビットストリームに含めて、復号側に伝送させる。
その際、可逆符号化部106が、所定のデータ単位毎に設定したIVMP使用フラグを、そのデータ単位に対応する情報において伝送させるようにしてもよい。図4のAは、シーケンスパラメータセット(SPS)のシンタックスの例を示している。例えば、図4のAに示される例のように、可逆符号化部106が、シーケンス毎にIVMP使用フラグを設定し、設定したIVMP使用フラグ(sps_inter_view_mvp_enable_flag)を、シーケンスパラメータセット(SPS(Sequence Parameter Set))に含めて伝送させるようにしてもよい。
この場合、動き予測・補償部115は、AMVPモードの処理において、可逆符号化部106から、処理対象であるカレントブロックを含むシーケンスのシーケンスパラメータセット(SPS)のIVMP使用フラグ(sps_inter_view_mvp_enable_flag)を取得し、その値に基づいて、処理対象であるカレントブロックのIVMP処理の実行を制御する。
つまり、IVMP使用フラグ(sps_inter_view_mvp_enable_flag)の値が1の場合、動き予測・補償部115は、IVMPツールを起動し、IVMP処理を実行し、IVMP処理により得られる候補ベクトルが存在する場合、その候補ベクトルを、AMVPリストのインデックス0(index=0)のベクトルに追加する。また、候補ベクトルが存在しない場合、動き予測・補償部115は、IVMP処理により得られる候補ベクトルをAMVPリストに加えずに、カレントブロックの空間的に周辺のブロックや時間的に周辺のブロックのベクトルの検索を行う。
また、IVMP使用フラグ(sps_inter_view_mvp_enable_flag)の値が0の場合、動き予測・補償部115は、IVMPツールを起動せずに、すなわちIVMP処理を実行せずに、IVMPからのベクトルを利用不可(not-available)とする。つまり、動き予測・補償部115は、IVMP処理により得られる候補ベクトルをAMVPリストに加えずに、カレントブロックの空間的に周辺のブロックや時間的に周辺のブロックのベクトルの検索を行う。
このように、IVMP使用フラグを伝送することにより、符号化側においても復号側においても、このIVMP使用フラグに基づいて同様にIVMP処理を制御することができる。したがって、画像符号化装置100は、IVMP使用フラグを0にすることにより、符号化側だけでなく復号側においてもIVMPツールを起動せずに(IVMP処理をスキップして)、AMVPリストを生成することができるようにすることができる。つまり、画像符号化装置100は、符号化の負荷だけでなく復号の負荷も低減させることができる。
また、AMVPインデックスを1以上として伝送しなくても、符号化側においても復号側においても、このIVMP使用フラグに基づいて同様にIVMP処理を制御することができるので、画像符号化装置100は、符号化効率を向上させることができる。
また、図4のBは、スライスヘッダのシンタックスの例を示している。例えば、図4のBに示される例のように、可逆符号化部106が、シーケンス毎に設定したIVMP使用フラグ(sps_inter_view_mvp_enable_flag)が1である場合、さらに、スライス毎にIVMP使用フラグ(pic_inter_view_mvp_enable_flag)を設定し、そのスライス毎に設定したIVMP使用フラグを、スライスヘッダ(slice_header)に含めて伝送させるようにしてもよい。
この場合、動き予測・補償部115は、AMVPモードの処理において、可逆符号化部106から、処理対象であるカレントブロックを含むシーケンスのシーケンスパラメータセット(SPS)のIVMP使用フラグ(sps_inter_view_mvp_enable_flag)と、カレントブロックを含むスライスのスライスヘッダ(slice_header)のIVMP使用フラグ(pic_inter_view_mvp_enable_flag)を取得し、それらの値に基づいて、カレントブロックのIVMP処理の実行を制御する。
このように、階層化されたデータ単位の複数階層においてIVMP使用フラグを設定することにより、画像符号化装置100は、より適応的にIVMP処理の実行を制御することができる。
なお、図4においては、シーケンス毎とスライス毎にIVMP使用フラグを設定するように説明したが、スライス単位でのみIVMP使用フラグを設定するようにしてもよい。その場合、IVMP使用フラグは、スライスヘッダのみに格納される。
また、IVMP使用フラグは、上述したように任意のデータ単位毎に設定することができる。したがって、図4に示されるシーケンスやスライス以外のデータ単位毎にIVMP使用フラグを設定するようにしてもよい。例えば、ピクチャ毎やブロック(LCU、CU、PU、若しくはTU等)毎にIVMP使用フラグが設定されるようにしてもよい。また、複数階層においてIVMP使用フラグを設定する場合も、図4の例に限らない。例えば、シーケンス毎とピクチャ毎にIVMP使用フラグを設定するようにしてもよい。また、例えば、シーケンス毎、ピクチャ毎、およびスライス毎にIVMP使用フラグを設定するようにしてもよい。
また、以上においては、IVMP使用フラグを、その設定したデータ単位に対応する情報に含めて伝送するように説明したが、IVMP使用フラグを、ビットストリームの任意の場所に格納するようにしてもよい。例えば、スライス毎に設定されたIVMP使用フラグをシーケンスパラメータセット(SPS)にまとめて格納するようにしてもよい。ただし、その場合、各IVMP使用フラグがどのデータに対応するかが明らかであるようにする必要がある。
なお、以上においては、IVMP使用フラグが1の場合、IVMPツールを用い、IVMP使用フラグが0の場合、IVMPツールを用いないように制御されるように説明したが、IVMP処理の実行を制御する制御情報としてのIVMP使用フラグの値は任意である。例えば、IVMP使用フラグが0の場合、IVMPツールを用い、IVMP使用フラグが1の場合、IVMPツールを用いないように制御されるようにしてもよい。また、この制御情報は、複数ビットの情報であってももちろん良い。
[符号化処理の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図5のフローチャートを参照して、符号化処理の流れの例を説明する。
符号化処理が開始されると、可逆符号化部106は、ステップS101において、例えば、ユーザ指示等に基づいて、IVMP使用フラグをセットする。
ステップS102において、A/D変換部101は入力された画像をA/D変換する。ステップS103において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS104において、画面内予測部114は、イントラ予測処理を行う。ステップS105において、動き予測・補償部115は、インター動き予測処理を行う。ステップS106において、予測画像選択部116は、イントラ予測により生成された予測画像、および、インター予測により生成された予測画像の内、いずれか一方を選択する。
ステップS107において、演算部103は、ステップS103の処理により並び替えられた画像と、ステップS106の処理により選択された予測画像との差分を演算する(差分画像を生成する)。生成された差分画像は元の画像に較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
ステップS108において、直交変換部104は、ステップS107の処理により生成された差分画像を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、直交変換係数が出力される。ステップS109において、量子化部105は、ステップS108の処理により得られた直交変換係数を量子化する。
ステップS109の処理により量子化された差分画像は、次のようにして局部的に復号される。すなわち、ステップS110において、逆量子化部108は、ステップS109の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部105の特性に対応する特性で逆量子化する。ステップS111において、逆直交変換部109は、ステップS110の処理により得られた直交変換係数を、直交変換部104の特性に対応する特性で逆直交変換する。これにより差分画像が復元される。
ステップS112において、演算部110は、ステップS106において選択された予測画像を、ステップS111において生成された差分画像に加算し、局部的に復号された復号画像(再構成画像)を生成する。ステップS113において、ループフィルタ111は、ステップS112の処理により得られた再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行い、復号画像を生成する。
ステップS114において、デコードピクチャバッファ112は、ステップS113の処理により生成された復号画像を記憶する。
ステップS115において、可逆符号化部106は、ステップS109の処理により量子化された直交変換係数を符号化する。すなわち、差分画像に対して、可変長符号化や算術符号化等の可逆符号化が行われる。なお、可逆符号化部106は、予測に関する情報や、量子化に関する情報や、フィルタ処理に関する情報等を符号化し、ビットストリームに付加する。
また、可逆符号化部106は、ステップS101においてセットしたIVMP使用フラグを、例えばシーケンスパラメータセットやスライスヘッダ等、所定の位置に格納する。
ステップS116において、蓄積バッファ107は、ステップS115の処理により得られたビットストリームを蓄積する。蓄積バッファ107に蓄積された符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS117において量子化部105は、ステップS116の処理により蓄積バッファ107に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化動作のレートを制御する。
ステップS117の処理が終了すると、符号化処理が終了される。
[AMVPリスト生成処理の流れ]
次に、図5のステップS105において実行されるインター動き予測処理において実行されるAMVPリスト生成処理の流れの例を図6および図7のフローチャートを参照して説明する。
AMVPリスト生成処理が開始されると、動き予測・補償部115は、ステップS131において、可逆符号化部106が設定したIVMP使用フラグを参照する。
ステップS132において、動き予測・補償部115は、ステップS131において参照したIVMP使用フラグの値に基づいて、IVMPツールを使用するか否かを判定する。例えばIVMP使用フラグの値が1であり、IVMPツールを使用すると判定された場合、処理は、ステップS133に進む。
ステップS133において、動き予測・補償部115は、IVMPツールを用いてIVMP処理を行い、IVMPによる候補ベクトルを取得する。
ステップS134において、動き予測・補償部115は、ステップS133の処理により得られるIVMPからの候補ベクトルが存在するか否かを判定する。
候補ベクトルが存在すると判定された場合、処理は、ステップS135に進む。ステップS135において、動き予測・補償部115は、ステップS133の処理により得られた候補ベクトルをAMVPリストのインデックス0(index=0)に追加する。
ステップS135の処理が終了すると、処理は、ステップS137に進む。また、ステップS134において、候補ベクトルが存在しないと判定された場合、処理は、ステップS137に進む。
また、ステップS132において、例えばIVMP使用フラグの値が0であり、IVMPツールを使用しないと判定された場合、処理は、ステップS136に進む。ステップS136において、動き予測・補償部115は、IVMPからのベクトルを利用不可(not-available)にする。ステップS136の処理が終了すると、処理は、ステップS137に進む。
ステップS137において、動き予測・補償部115は、空間の左位置のブロックから候補ベクトル(From left spatial)を取得する。
ステップS138において、動き予測・補償部115は、空間の左位置のブロックの候補ベクトルが存在するか否かを判定する。
候補ベクトルが存在すると判定された場合、処理はステップS139に進む。ステップS139において、動き予測・補償部115は、候補ベクトルをAMVPリストに追加する。
ステップS139の処理が終了すると、処理は、ステップS140に進む。また、ステップS138において、空間の左位置のブロックの候補ベクトルが存在しないと判定された場合、処理は、ステップS140に進む。ステップS140において、動き予測・補償部115は、空間の上位置のブロックから候補ベクトル(From above spatial)を取得する。
ステップS140の処理が終了すると、処理は、図7のステップS151に進む。
図7のステップS151において、動き予測・補償部115は、空間の上位置のブロックの候補ベクトルが存在するか否かを判定する。
候補ベクトルが存在すると判定された場合、処理はステップS152に進む。ステップS152において、動き予測・補償部115は、候補ベクトルをAMVPリストに追加する。
ステップS152の処理が終了すると、処理は、ステップS153に進む。ステップS153において、動き予測・補償部115は、リストの要素数が3であるか否かを判定する。
リストの要素数が3である場合、処理は、ステップS154に進む。ステップS154において、動き予測・補償部115は、左位置と右位置のベクトルに対してプルーニングを処理を行う。
ステップS154の処理が終了すると、処理は、ステップS155に進む。また、ステップS153において、リストの要素数が3でないと判定された場合、処理は、ステップS155に進む。さらに、ステップS151において、空間の上位置のブロックの候補ベクトルが存在しないと判定された場合、処理は、ステップS155に進む。
ステップS155において、動き予測・補償部115は、カレントブロックと同一ビューの異なるピクチャのコロケーテッドブロックのベクトルを予測ベクトルの候補として利用するTMVP(Temporal Motion Vector Prediction)処理を行い、そのTMVPから候補ベクトル(From TMVP)を取得する。
ステップS156において、動き予測・補償部115は、TMVPの候補ベクトルが存在するか否かを判定する。
候補ベクトルが存在すると判定された場合、処理はステップS157に進む。ステップS157において、動き予測・補償部115は、候補ベクトルをAMVPリストに追加する。
ステップS157の処理が終了すると、AMVPリスト生成処理が終了される。また、ステップS156において、候補ベクトルが存在しないと判定された場合、AMVPリスト生成処理が終了される。
動き予測・補償部115は、以上のように生成されたAMVPリストを用いて、予測ベクトルを求める。このようにすることにより、動き予測・補償部115は、IVMP使用フラグの値に従って、IVMP処理の実行を制御することができる。つまり、以上のように各処理を実行することにより、画像符号化装置100は、符号化の負荷だけでなく復号の負荷も低減させることができ、さらに、符号化効率を向上させることができる。
<2.第2の実施の形態>
[画像復号装置]
次に、復号側(デコーダ)について説明する。図8は、画像処理装置である画像復号装置の主な構成例を示すブロック図である。図8に示される画像復号装置300は、図3の画像符号化装置100に対応する装置である。つまり、画像復号装置300は、画像符号化装置100が多視点画像を符号化して生成した符号化データ(ビットストリーム)を、画像符号化装置100の符号化方法に対応する復号方法で復号し、多視点の復号画像を得る。
図8に示されるように、画像復号装置300は、蓄積バッファ301、可逆復号部302、逆量子化部303、逆直交変換部304、演算部305、ループフィルタ306、画面並べ替えバッファ307、およびD/A変換部308を有する。また、画像復号装置300は、デコードピクチャバッファ309、画面内予測部311、動き補償部312、および選択部313を有する。
さらに、画像復号装置300は、ベースビュー(Base View)デコーダ321を有する。
蓄積バッファ301は、伝送されてきた符号化データを蓄積し、所定のタイミングにおいてその符号化データを可逆復号部302に供給する。可逆復号部302は、蓄積バッファ301より供給された、図3の可逆符号化部106により符号化された情報を、可逆符号化部106の符号化方式に対応する方式で復号する。可逆復号部302は、復号して得られた差分画像の量子化された係数データを、逆量子化部303に供給する。
また、可逆復号部302は、符号化データを復号して得られた最適な予測モードに関する情報を参照し、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定する。可逆復号部302は、その判定結果に基づいて、その最適な予測モードに関する情報を、画面内予測部311若しくは動き補償部312に供給する。つまり、例えば、画像符号化装置100において最適な予測モードとしてイントラ予測モードが選択された場合、その最適な予測モードに関する情報であるイントラ予測情報等が画面内予測部311に供給される。また、例えば、画像符号化装置100において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報であるインター予測情報等が動き補償部312に供給される。
逆量子化部303は、可逆復号部302により復号されて得られた量子化された係数データを、図3の量子化部105の量子化方式に対応する方式で逆量子化し、得られた係数データを逆直交変換部304に供給する。逆直交変換部304は、図3の直交変換部104の直交変換方式に対応する方式で逆量子化部303から供給される係数データを逆直交変換する。逆直交変換部304は、この逆直交変換処理により、画像符号化装置100において直交変換される前の差分画像に対応する差分画像を得る。
逆直交変換されて得られた差分画像は、演算部305に供給される。また、演算部305には、選択部313を介して、画面内予測部311若しくは動き補償部312から予測画像が供給される。
演算部305は、差分画像と予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像に対応する再構成画像を得る。演算部305は、その再構成画像をループフィルタ306に供給する。
ループフィルタ306は、供給された再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施して復号画像を生成する。例えば、ループフィルタ306は、再構成画像に対してデブロックフィルタ処理を行うことにより、ブロック歪を除去する。また、例えば、ループフィルタ306は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ306が行うフィルタ処理の種類は任意であり、上述した以外のフィルタ処理を行ってもよい。また、ループフィルタ306が、図3の画像符号化装置100から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。
ループフィルタ306は、フィルタ処理結果である復号画像を画面並べ替えバッファ307およびデコードピクチャバッファ309に供給する。また、ループフィルタ306は、演算部305の出力(再構成画像)を、フィルタ処理せずに、画面内予測部311に供給する。例えば、画面内予測部311は、この画像に含まれる画素の画素値を周辺画素の画素値として利用する。
画面並べ替えバッファ307は、供給された復号画像の並べ替えを行う。すなわち、図3の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部308は、画面並べ替えバッファ307から供給された復号画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
デコードピクチャバッファ309は、供給される復号画像(並びに、その画像のビューIDおよびPOC)を記憶する。また、デコードピクチャバッファ309は、所定のタイミングにおいて、若しくは、画面内予測部311や動き補償部312等の外部の要求に基づいて、記憶している復号画像(並びに、その画像のビューIDおよびPOC)を動き補償部312に供給する。
画面内予測部311は、図3の画面内予測部114と基本的に同様の処理を行う。ただし、画面内予測部311は、符号化の際にイントラ予測により予測画像が生成された領域に対してのみ、イントラ予測を行う。画面内予測部311は、予測処理単位の領域毎に、生成した予測画像を、選択部313を介して演算部305に供給する。
動き補償部312は、可逆復号部302から供給されるインター予測情報に基づいて動き補償を行い、予測画像を生成する。なお、動き補償部312は、可逆復号部302から供給されるインター予測情報に基づいて、符号化の際にインター予測が行われた領域に対してのみ、動き視差補償を行う。動き補償部312は、予測処理単位の領域毎に、生成した予測画像を、選択部313を介して演算部305に供給する。
選択部313は、画面内予測部311から供給される予測画像、若しくは、動き補償部312から供給される予測画像を演算部305に供給する。
Base Viewデコーダ321は、ベースビューの符号化を行う。Base Viewデコーダ321は、ベースビューのデコード画像をデコードピクチャバッファ309に供給し、記憶させる。デコードピクチャバッファ309には、さらに、ループフィルタ306から供給されるノンベースビューのデコード画像も記憶される。
また、Base Viewデコーダ321は、ベースビューの動き情報を動き補償部312に供給する。動き補償部312は、デコードピクチャバッファ309から取得したデコード画像と、Base Viewデコーダ321から取得したベースビューの動き情報を用いて、ビュー方向のブロックを参照する予測ベクトルを生成する。
[IVMP処理制御]
画像復号装置300は、IVMPツールの使用を制御する制御情報として、画像符号化装置100から供給されるIVMP使用フラグを取得し、その値に基づいて、AMVPモードの処理を、符号化の場合と同様に行う。
可逆復号部302は、画像符号化装置100から供給されるIVMP使用フラグを取得する。例えば、可逆復号部302は、シーケンスパラメータセット(SPS)やスライスヘッダ等、所定の場所を参照し、その場所に格納されたIVMP使用フラグを取得する。可逆復号部302は、取得したIVMP使用フラグを動き補償部312に供給する。
動き補償部312は、復号時のインター予測処理におけるAMVPリスト生成の際に、供給されたIVMP使用フラグの値に基づいて、処理対象であるカレントブロックにおける、IVMP処理の実行(IVMPツールの使用)を制御する。
このようにすることにより、動き補償部312は、画像符号化装置100における符号化の場合と同様に、IVMP処理の実行(IVMPツールの使用)を制御することができる。つまり、動き補償部312は、動き予測・補償部115が生成するAMVPリストと同様のAMVPリストを生成することができる。
したがって、画像復号装置300は、画像符号化装置100の場合と同様にIVMP処理をスキップすることができ、復号の負荷を低減させることができる。また、画像復号装置300は、画像符号化装置100から供給されるビットストリームを正しく復号することができる。すなわち、AMVPインデックスを1以上として伝送する必要がない。したがって、画像復号装置300は、符号化効率の低減の抑制を実現することができる。
[復号処理の流れ]
次に、以上のような画像復号装置300により実行される復号処理の流れの例を、図9のフローチャートを参照して説明する。
復号処理が開始されると、ステップS301において、可逆復号部302は、伝送されてきたビットストリームを、蓄積バッファ301を介して取得し、例えば、シーケンスパラメータセット(SPS)やスライスヘッダ等、そのビットストリームの所定の場所に格納されたIVMP使用フラグを取得する。
ステップS302において、蓄積バッファ301は、伝送されてきたビットストリームを蓄積する。ステップS303において、可逆復号部302は、蓄積バッファ301から供給されるビットストリーム(符号化された差分画像情報)を復号する。このとき、イントラ予測情報やインター予測情報等、ビットストリームに含められた差分画像情報以外の各種情報も復号される。
ステップS304において、逆量子化部303は、ステップS303の処理により得られた、量子化された直交変換係数を逆量子化する。ステップS305において逆直交変換部304は、ステップS304において逆量子化された直交変換係数を逆直交変換する。
ステップS306において、画面内予測部311若しくは動き補償部312は、供給された情報を用いて予測処理を行う。ステップS307において、演算部305は、ステップS305において逆直交変換されて得られた差分画像情報に、ステップS306において生成された予測画像を加算する。これにより再構成画像が生成される。
ステップS308において、ループフィルタ306は、ステップS307において得られた再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS309において、画面並べ替えバッファ307は、ステップS308においてフィルタ処理されて生成された復号画像の並べ替えを行う。すなわち画像符号化装置100の画面並べ替えバッファ102により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS310において、D/A変換部308は、フレームの順序が並べ替えられた復号画像をD/A変換する。この復号画像が図示せぬディスプレイに出力され、表示される。
ステップS311において、デコードピクチャバッファ309は、ステップS307においてフィルタ処理されて得られた復号画像を記憶する。この復号画像は、インター予測処理において参照画像として利用される。
ステップS311の処理が終了すると、復号処理が終了される。
上述した符号化処理のステップS306における予測処理(特にインター予測処理のAMVPモード)において、AMVPリスト生成処理が実行される。このAMVPリスト生成処理は、第1の実施の形態において、図6および図7のフローチャートを参照して説明した、画像符号化装置100におけるAMVPリスト生成処理と同様に実行される。したがって、図6および図7のフローチャートを用いて上述した説明をこの画像復号装置300のAMVPリスト生成処理にも適用することができるので、その説明は省略する。
以上のように各処理を実行することにより、画像復号装置300は、復号の負荷を低減させることができ、さらに、符号化効率の向上を実現させることができる。
<3.第3の実施の形態>
[IVMP制御の他の例]
以上においては、IVMP使用フラグが0の場合、IVMPの候補ベクトルを常に利用不可(not available)とするように説明したが、これに限らず、例えば、IVMP使用フラグが0の場合、IVMPの候補ベクトルの代わりに、所定の値を(候補ベクトルとして)AMVPリストに追加するようにしてもよい。
この所定の値は、任意の値とすることができるが、例えば、動きベクトルや視差ベクトルの代表値としてもよい。代表値には、任意の値を用いることができる。例えば、グローバルな(例えば、シーケンス、ピクチャ、スライス、LCU、若しくはCU等の、所定の単位毎の)代表的なベクトルであるグローバル動きベクトルやグローバル視差ベクトルを用いても良い。また、例えば、ピクチャ内の平均等、所定の演算により算出される値であってもよい。
可逆符号化部106は、復号側においても同じ値を用いてAMVPリストを生成することができるように、この所定の値を、IVMP使用フラグとともに、復号側に伝送させる。図10のAは、シーケンスパラメータセット(SPS)のシンタックスの例を示している。例えば、図10のAに示されるように、可逆符号化部106は、IVMP使用フラグ(sps_inter_view_mvp_enable_flag)の値が0である場合、IVMP使用フラグ(sps_inter_view_mvp_enable_flag)だけでなく、さらに、上述した所定の値として、グローバル動きベクトル(global_motion_vector_x, global_motion_vector_y)およびグローバル視差ベクトル(global_inter_view_vector_x, global_inter_view_vector_y)も、シーケンスパラメータセット(SPS(Sequence Parameter Set))に含めて伝送させる。
この場合、動き予測・補償部115は、IVMPの候補ベクトルの代わりに、このグローバル動きベクトル(global_motion_vector_x, global_motion_vector_y)若しくはグローバル視差ベクトル(global_inter_view_vector_x, global_inter_view_vector_y)をAMVPリストのインデックス0にセットする。カレントブロックのベクトルが動きベクトルであるか視差ベクトルであるかは、動き予測処理において明らかにされるので、動き予測・補償部115は、そのカレントブロックのベクトルと同じ種類のグローバルベクトルをAMVPリストのインデックス0にセットする。
画像復号装置300においては、可逆復号部302が、シーケンスパラメータセットから、IVMP使用フラグとともに、グローバル動きベクトル(global_motion_vector_x, global_motion_vector_y)およびグローバル視差ベクトル(global_inter_view_vector_x, global_inter_view_vector_y)を取得する。
そして、動き補償部312は、IVMPの候補ベクトルの代わりに、このグローバル動きベクトル(global_motion_vector_x, global_motion_vector_y)若しくはグローバル視差ベクトル(global_inter_view_vector_x, global_inter_view_vector_y)をAMVPリストのインデックス0にセットする。上述したように、カレントブロックのベクトルが動きベクトルであるか視差ベクトルであるかは、符号化時の動き予測処理において明らかにされるので、動き補償部312は、そのカレントブロックのベクトルと同じ種類のグローバルベクトルをAMVPリストのインデックス0にセットする。
以上のように、この場合も、画像符号化装置100および画像復号装置300の両方において、互いに同様にIVMP処理の実行を制御することができる。
なお、上述したような、IVMPの候補ベクトルの代わりにセットされる所定の値の伝送は、任意の階層の情報において行うことができる。例えば、シーケンスパラメータセットとスライスヘッダにおいてIVMP使用フラグを伝送する場合、図10に示されるように、シーケンスパラメータセットにおいて、この所定の値を伝送するようにしてもよい。その場合、図10のBに示されるように、スライスヘッダにおいては、IVMP使用フラグ(pic_inter_view_mvp_enable_flag)が伝送されるが、この所定の値は伝送されない。
また、図11に示される例のように、IVMPの候補ベクトルの代わりにセットされる所定の値を、スライスヘッダにおいて伝送させるようにしてもよい。この場合、図11のAに示されるように、シーケンスパラメータセットにおいては、IVMP使用フラグ(sps_inter_view_mvp_enable_flag)が伝送されるが、この所定の値は伝送されない。代わりに、図11のBに示されるように、スライスヘッダにおいて、IVMP使用フラグ(pic_inter_view_mvp_enable_flag)が0の場合、この所定の値が伝送される。
さらに、図12に示される例のように、IVMPの候補ベクトルの代わりにセットされる所定の値を、複数階層において伝送させるようにしてもうよい。例えば、シーケンスパラメータセットとスライスヘッダの両方において、この所定の値を伝送させるようにしてもよい。この場合、図12のAに示されるように、シーケンスパラメータセットにおいて、IVMP使用フラグ(sps_inter_view_mvp_enable_flag)が0の場合、この所定の値が伝送される。同様に、図12のBに示されるように、スライスヘッダにおいても、IVMP使用フラグ(pic_inter_view_mvp_enable_flag)が0の場合、この所定の値が伝送される。
このようにすることにより、シーケンス毎にIVMP処理の実行を制御する場合であっても、スライス毎にIVMP処理の実行を制御する場合であっても、IVMPの候補ベクトルの代わりに所定の値をセットしたり、その値を伝送したりすることができる。
もちろん、上述した以外の方法でこの所定の値を伝送するようにしてもよい。例えば、IVMPツールを使用するか否かだけでなく、どの情報においてこの所定の値を伝送するかを指定する制御情報を、IVMP使用フラグの代わりに用いるようにしてもよい。
また、以上においては、シーケンス単位とスライス単位を例に説明したが、制御を行うデータ単位が任意であることは、第1の実施の形態や第2の実施の形態の場合と同様である。
符号化処理において、以上のような、所定の値の設定は、図5のステップS101の処理において行われる。
[AMVPリスト生成処理の流れ]
次に、以上のように設定された所定の値を用いたAMVPリストの生成処理の流れの例を図13および図14のフローチャートを参照して説明する。第1の実施の形態および第2の実施の形態において説明したように、AMVPリスト生成処理は、画像符号化装置100および画像復号装置300の両方において、互いに同様に実行される。以下においては、画像符号化装置100において実行される場合について説明する。
AMVPリスト生成処理が開始されると、動き予測・補償部115は、ステップS431において、可逆符号化部106が設定したIVMP使用フラグを参照する。
ステップS432において、動き予測・補償部115は、ステップS431において参照したIVMP使用フラグの値に基づいて、IVMPツールを使用するか否かを判定する。例えばIVMP使用フラグの値が1であり、IVMPツールを使用すると判定された場合、処理は、ステップS433に進む。
ステップS433において、動き予測・補償部115は、IVMPツールを用いてIVMP処理を行い、IVMPによる候補ベクトルを取得する。
ステップS434において、動き予測・補償部115は、ステップS433の処理により得られるIVMPからの候補ベクトルが存在するか否かを判定する。
候補ベクトルが存在すると判定された場合、処理は、ステップS435に進む。ステップS435において、動き予測・補償部115は、ステップS433の処理により得られた候補ベクトルをAMVPリストのインデックス0(index=0)に追加する。
ステップS435の処理が終了すると、処理は、ステップS439に進む。また、ステップS434において、候補ベクトルが存在しないと判定された場合、処理は、ステップS439に進む。
また、ステップS432において、例えばIVMP使用フラグの値が0であり、IVMPツールを使用しないと判定された場合、処理は、ステップS436に進む。ステップS436において、動き予測・補償部115は、カレントブロックのベクトルであるカレントベクトルが動きベクトルであるか否かを判定する。
カレントベクトルが動きベクトルであると判定された場合、処理は、ステップS437に進む。ステップS437において、動き予測・補償部115は、動きベクトルの代表値をAMVPリストにセットする。ステップS437の処理が終了すると、処理は、ステップS439に進む。
また、ステップS436において、カレントベクトルが視差ベクトルであると判定された場合、処理は、ステップS438に進む。ステップS438において、動き予測・補償部115は、視差ベクトルの代表値をAMVPリストにセットする。ステップS438の処理が終了すると、処理は、ステップS439に進む。
ステップS439乃至ステップS442の各処理は、図6のステップS137乃至ステップS140の各処理と同様に実行される。また、図14のステップS451乃至ステップS457の各処理は、図7のステップS151乃至ステップS157の各処理と同様に実行される。
動き予測・補償部115は、以上のように生成されたAMVPリストを用いて、予測ベクトルを求める。このようにすることにより、動き予測・補償部115は、IVMP使用フラグの値に従って、IVMP処理の実行を制御することができる。つまり、以上のように各処理を実行することにより、画像符号化装置100は、符号化の負荷だけでなく復号の負荷も低減させることができ、さらに、符号化効率を向上させることができる。
以上においては、IVMP処理の実行の制御について説明したが、例えば、空間的な周辺ブロックのベクトルの使用の制御や、TMVPのベクトルの使用の制御を、併せて行うようにしても良い。つまり、各ベクトルの使用の制御を、1つの制御情報(例えば、総合制御情報と称する)により行うようにしてもよい。この場合、画像符号化装置100および画像復号装置300は、この総合制御情報に基づいて、IVMPのベクトル、空間的な周辺ブロックのベクトル、並びに、TMVPのベクトルのそれぞれを、候補ベクトルとするか否かを制御することができる。したがって、より適応的な制御が可能になる。また、符号化側から復号側に伝送する制御情報をこの総合制御情報にまとめることにより、各タイプのベクトルをそれぞれ制御する場合よりも符号化効率を向上させることができる。
なお、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
<4.第4の実施の形態>
[コンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図15において、コンピュータ700のCPU(Central Processing Unit)701は、ROM(Read Only Memory)702に記憶されているプログラム、または記憶部713からRAM(Random Access Memory)703にロードされたプログラムに従って各種の処理を実行する。RAM703にはまた、CPU701が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU701、ROM702、およびRAM703は、バス704を介して相互に接続されている。このバス704にはまた、入出力インタフェース710も接続されている。
入出力インタフェース710には、キーボード、マウスなどよりなる入力部711、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部712、ハードディスクなどより構成される記憶部713、モデムなどより構成される通信部714が接続されている。通信部714は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース710にはまた、必要に応じてドライブ715が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア721が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部713にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図15に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア721により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM702や、記憶部713に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
<5.第5の実施の形態>
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
[第1の応用例:テレビジョン受像機]
図16は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、符号化効率の低減の抑制や負荷の低減を実現することができる。
[第2の応用例:携帯電話機]
図17は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Unallocated Space Bitmap)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記憶再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、負荷を低減し、符号化効率の低減を抑制することができる。
[第3の応用例:記録再生装置]
図18は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送部としての役割を有する。
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送部としての役割を有する。
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、負荷を低減し、符号化効率の低減を抑制することができる。
[第4の応用例:撮像装置]
図19は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送部としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、負荷を低減し、符号化効率の低減を抑制することができる。
なお、本明細書では、IVMP使用フラグやベクトルの代表値などの様々な情報が、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 多視点画像を符号化する際の動き予測において、ベースビューのベクトルを、ディペンデントビューの予測ベクトルの候補として使用するか否かを制御する制御情報を設定する制御情報設定部と、
前記制御情報設定部により設定された前記制御情報により、前記ベースビューのベクトルを前記ディペンデントビューの予測ベクトルの候補として使用するように設定されている場合、前記ベースビューのベクトルを前記ディペンデントビューのカレントブロックの予測ベクトルの候補にするIVMP処理を行うIVMP処理部と、
カレントブロックの予測ベクトルの候補のリストを生成し、前記IVMP処理部により生成される、前記ベースビューのベクトルからなる前記候補が存在する場合、前記候補を前記リストに追加するリスト生成部と、
前記制御情報設定部により設定された前記制御情報を伝送する伝送部と
を備える画像処理装置。
(2) 前記制御情報設定部により設定された前記制御情報により、前記ベースビューのベクトルを前記ディペンデントビューの予測ベクトルの候補として使用しないように設定されている場合、前記ベースビューのベクトルの、前記ディペンデントビューの予測ベクトルとしての利用を不可とする利用不可設定部をさらに備える
前記(1)に記載の画像処理装置。
(3) 前記制御情報設定部により設定された前記制御情報により、前記ベースビューのベクトルを前記ディペンデントビューの予測ベクトルの候補として使用しないように設定されている場合、前記ベースビューのベクトルからなる前記候補の代わりに所定の値を前記リストに設定する値設定部をさらに備える
前記(1)または(2)に記載の画像処理装置。
(4) 前記値設定部は、カレントブロックのカレントベクトルが動きベクトルである場合、前記ベースビューのベクトルからなる前記候補の代わりに動きベクトルの代表値を前記リストに設定する
前記(3)に記載の画像処理装置。
(5) 前記値設定部は、カレントブロックのカレントベクトルが視差ベクトルである場合、前記ベースビューのベクトルからなる前記候補の代わりに視差ベクトルの代表値を前記リストに設定する
前記(3)または(4)に記載の画像処理装置。
(6) 前記伝送部は、さらに、前記値設定部により設定された前記所定の値を伝送する
前記(3)乃至(5)のいずれかに記載の画像処理装置。
(7) 前記制御情報設定部は、前記制御情報を所定のデータ単位毎に設定し、
前記伝送部は、前記制御情報を前記データ単位に対応する情報において伝送する
前記(1)乃至(6)のいずれかに記載の画像処理装置。
(8) 前記制御情報設定部は、前記制御情報をシーケンス毎、若しくは、スライス毎に設定し、
前記伝送部は、前記制御情報をシーケンスパラメータセット若しくはスライスヘッダにおいて伝送する
前記(7)に記載の画像処理装置。
(9) 前記制御情報設定部は、前記制御情報を、階層化されたデータ単位の複数階層毎に設定し、
前記伝送部は、前記制御情報を、前記制御情報が設定された各階層に対応する情報において伝送する
前記(1)乃至(8)のいずれかに記載の画像処理装置。
(10) 前記制御情報設定部は、前記制御情報をシーケンス毎、および、スライス毎に設定し、
前記伝送部は、前記制御情報をシーケンスパラメータセットおよびスライスヘッダにおいて伝送する
前記(9)に記載の画像処理装置。
(11) 情報処理装置の情報処理方法において、
前記情報処理装置が、
多視点画像を符号化する際の動き予測において、ベースビューのベクトルを、ディペンデントビューの予測ベクトルの候補として使用するか否かを制御する制御情報を設定し、
設定された前記制御情報により、前記ベースビューのベクトルを前記ディペンデントビューの予測ベクトルの候補として使用するように設定されている場合、前記ベースビューのベクトルを前記ディペンデントビューのカレントブロックの予測ベクトルの候補にするIVMP処理を行い、
カレントブロックの予測ベクトルの候補のリストを生成し、前記ベースビューのベクトルからなる前記候補が存在する場合、前記候補を前記リストに追加し、
設定された前記制御情報を伝送する
画像処理方法。
(12) 多視点画像を復号する際の動き予測において、ベースビューのベクトルを、ディペンデントビューの予測ベクトルの候補として使用するか否かを制御する制御情報を取得する制御情報取得部と、
前記制御情報取得部により取得された前記制御情報により、前記ベースビューのベクトルを前記ディペンデントビューの予測ベクトルの候補として使用するように設定されている場合、前記ベースビューのベクトルを前記ディペンデントビューのカレントブロックの予測ベクトルの候補にするIVMP処理を行うIVMP処理部と、
カレントブロックの予測ベクトルの候補のリストを生成し、前記IVMP処理部により生成される、前記ベースビューのベクトルからなる前記候補が存在する場合、前記候補を前記リストに追加するリスト生成部と
を備える画像処理装置。
(13) 前記制御情報取得部により取得された前記制御情報により、前記ベースビューのベクトルを前記ディペンデントビューの予測ベクトルの候補として使用しないように設定されている場合、前記ベースビューのベクトルの、前記ディペンデントビューの予測ベクトルとしての利用を不可とする利用不可設定部をさらに備える
前記(12)に記載の画像処理装置。
(14) 前記制御情報取得部により取得された前記制御情報により、前記ベースビューのベクトルを前記ディペンデントビューの予測ベクトルの候補として使用しないように設定されている場合、前記ベースビューのベクトルからなる前記候補の代わりに所定の値を前記リストに設定する値設定部をさらに備える
前記(12)または(13)に記載の画像処理装置。
(15) 前記値設定部は、カレントブロックのカレントベクトルが動きベクトルである場合、前記ベースビューのベクトルからなる前記候補の代わりに動きベクトルの代表値を前記リストに設定する
前記(14)に記載の画像処理装置。
(16) 前記値設定部は、カレントブロックのカレントベクトルが視差ベクトルである場合、前記ベースビューのベクトルからなる前記候補の代わりに視差ベクトルの代表値を前記リストに設定する
前記(14)または(15)に記載の画像処理装置。
(17) 前記制御情報取得部は、さらに、前記所定の値を取得し、
前記値設定部は、前記制御情報取得部により取得された前記所定の値を前記リストに設定する
前記(14)乃至(16)のいずれかに記載の画像処理装置。
(18) 前記制御情報取得部は、所定のデータ単位毎に設定され、前記データ単位に対応する情報において伝送された前記制御情報を取得する
前記(12)乃至(17)のいずれかに記載の画像処理装置。
(19) 前記制御情報取得部は、階層化されたデータ単位の複数階層毎に設定され、前記制御情報が設定された各階層に対応する情報において伝送された前記制御情報を取得する
前記(12)乃至(18)のいずれかに記載の画像処理装置。
(20) 画像処理装置の画像処理方法において、
前記画像処理装置が、
多視点画像を復号する際の動き予測において、ベースビューのベクトルを、ディペンデントビューの予測ベクトルの候補として使用するか否かを制御する制御情報を取得し、
取得された前記制御情報により、前記ベースビューのベクトルを前記ディペンデントビューの予測ベクトルの候補として使用するように設定されている場合、前記ベースビューのベクトルを前記ディペンデントビューのカレントブロックの予測ベクトルの候補にするIVMP処理を行い、
カレントブロックの予測ベクトルの候補のリストを生成し、前記ベースビューのベクトルからなる前記候補が存在する場合、前記候補を前記リストに追加する
画像処理方法。