以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.従来と本技術の概要
2.第1の実施の形態(多視点画像符号化装置)
3.第2の実施の形態(多視点画像復号装置)
4.第3の実施の形態(コンピュータ)
5.応用例
6.スケーラブル符号化の応用例
7.第6の実施の形態(セット・ユニット・モジュール・プロセッサ)
8.MPEG-DASHのコンテンツ再生システムの応用例
9.Wi-Fi規格の無線通信システムの応用例
<1.従来と本技術の概要>
[従来の説明]
ノンベースビューの符号化性能を改善する方式の1つとして、異なるビューの符号化済みベクトルを、ノンベースビューの予測ベクトルの候補にする、Inter-view motion prediction(IVMP)がある。
図1を参照して、このIVMPについて説明する。図1の例において、縦軸は、ビューを示し、ビューV0は、ベースビューを表し、ビューV1は、ノンベースビューを表している。横軸は、時刻T1乃至時刻T4を示している。
ベースビューV0は、既に符号化済みであり、いま、ノンベースビューV1の時刻T3の画像のカレントPU(Curr PU)の動き予測、補償が行われ、L0およびL1方向の動きベクトルが求められている。このとき、同じビューV1の時刻T1の画像のPOC(Picture Order Count)は、Ref1(Ref POC=1)であり、時刻T2の画像のPOCは、Ref0(Ref POC=0)であり、時刻T4の画像のPOCは、Ref0(Ref POC=0)である。
求められたカレントPUのL0方向の動きベクトルは、時刻T2のRef0(Ref POC=0)の画像を指しており、L1方向の動きベクトルは、時刻T4のRef0(Ref POC=0)の画像を指している。
IVMPにおいては、カレントPUの動きベクトルを符号化する際に求める予測ベクトルの候補として、従来のAMVP(Advanced Motion Vector Prediction)で候補とされる動きベクトルの他に、ベースビューで符号化されてしまった動きベクトルに追加することができる。
すなわち、ベースビューV0とノンベースビューV1では動きに相関があるので、ノンベースビューV1においては、カレントPUの、同じ時刻のベースビューV0における参照PU(Cor PU)の動きベクトルMVL0およびMVL1を予測ベクトルの候補の1つとすることができる。ここで、ベースビューV0の参照PUは、カレントPUの周辺(すなわち、カレントPUに隣接する隣接PU)の動きベクトルの中から、視差ベクトルを探し、ベースビューの画像において、ノンベースビューの画像におけるPUと同じ位置から、その視差ベクトルの分だけずらした位置のPUのことをいう。
ただし、それは、図1に示されるように、ベースビューV0における参照PUの動きベクトルMVL0およびMVL1が参照する画像の時刻T2およびT4が、ノンベースビューV1におけるカレントPUの動きベクトルが参照する画像の時刻T2およびT4と同じ場合のみである。
すなわち、カレントPUのRef POC(Ref 0)と、参照PUのRef POC(Ref 0)が同じの場合のみ、参照PUの動きベクトルを、カレントPUの予測動きベクトルの候補とすることができる。
したがって、図2に示されるように、ベースビューV0における時刻T3の参照PUの動きベクトルMVL0およびMVL1のReFIdx L0およびReFIdx L1がそれぞれ0である場合を考える。
この場合に、ノンベースビューV1の時刻T3のカレントPUの動きベクトルのReFIdx L0が1であり、ReFIdx L1が0であると、カレントPUの予測ベクトルPMV L1は、参照PUの動きベクトルMVL1とRef POCが同じである。したがって、ベースビューV0における時刻T3の参照PUの動きベクトルMVL1を、カレントPUの予測ベクトルの候補として使用することができる。
しかしながら、カレントPUの予測ベクトルPMV L0は、参照PUの動きベクトルMVL0と、Ref POCが同じではないので、使用不可(false)となってしまい、参照PUの動きベクトルMVL0を予測ベクトルとできない。すなわち、上述したように、ビューとノンベースビュー間には相関があるのに、相関の高い予測ベクトルの生成を行うことができず、符号化効率が低下してしまう。
そこで、本技術においては、カレントPUのRef POC(Ref 0)と、異なるビューにおける参照PUのRef POC(Ref 0)が異なる場合には、参照PUの動きベクトルがスケーリングされて、カレントPUの予測ベクトルの候補とされる。
例えば、図3の例においては、図2の例と同様に、カレントPUの予測ベクトルPMV L0は、参照PUの動きベクトルMVL0と、Ref POCが同じではない。そこで、本技術においては、参照PUの動きベクトルMVL0がカレントPUと参照PUの参照先に応じて、スケーリングされる。すなわち、参照PUの動きベクトルMVL0がカレントPUと参照PUのRef POCの距離に応じてスケーリングされ、スケーリングされたMVL0が、カレントPUの予測ベクトルの候補として使用される。
これにより、相関の高い予測ベクトルを生成することができるので、動きベクトルの符号化効率を改善することができる。
すなわち、異なるビューでは、カメラの特性が若干異なったりするので、同じ物体の動きベクトルであったとしても、参照するピクチャが異なっている場合がある。このような場合に、使用不可とするのではなく、相関の高い動きベクトルをスケーリングして用いることができるので、符号化効率改善にかなり効果的である。
<2.第1の実施の形態>
[多視点画像符号化装置の構成例]
図4は、本開示を適用した画像処理装置としての多視点画像符号化装置を構成するエンコーダの一実施の形態の構成を表している。
多視点画像符号化装置は、例えば、多視点の画像をそれぞれ符号化するエンコーダ11−1乃至11−Mにより構成されている。
エンコーダ11−1は、撮影(Captured)された多視点画像等の画像をHEVC方式で符号化する。例えば、エンコーダ11−1には、フレーム単位のノンベースビューの色画像が入力画像として入力され、エンコーダ11−1は、ノンベースビューの色画像を符号化する。
例えば、フレーム単位の他のビュー(ベースビューを含む)の色画像を符号化するエンコーダ11−Mやエンコーダ11−Nも、エンコーダ11−1と同様に構成される。また、色画像だけでなく、色差情報画像も符号化するエンコーダも存在する場合、エンコーダ11−1と同様に構成される。
エンコーダ11−1は、A/D(Analog/Digital)変換部21、画面並び替えバッファ22、演算部23、直交変換部24、量子化部25、可逆符号化部26、蓄積バッファ27、逆量子化部28、逆直交変換部29、および演算部30を含むように構成されている。また、エンコーダ11−1は、インループフィルタ31、DPB(Decoded Picture Buffer)32−1、画面内予測部33、動き予測・補償部34、予測画像選択部35、MV(動きベクトル)メモリ36−1を含むように構成されている。
A/D変換部21には、符号化対象の画像(動画像)であるノンベースビューの色画像のピクチャが、表示順に、順次、供給される。
A/D変換部21は、そこに供給されるピクチャが、アナログ信号である場合には、そのアナログ信号をA/D変換し、画面並び替えバッファ22に供給する。
画面並び替えバッファ22には、例えば、図示せぬ前段のシンタックス符号化部などから符号化情報として、符号化順序が供給される。画面並び替えバッファ22は、A/D変換部21からのピクチャを一時記憶し、供給された符号化順序が示すGOP(Group of Pictures)の構造に応じて、ピクチャを読み出すことで、ピクチャの並びを、表示順から、符号化順(復号順)に並び替える並び替えを行う。
画面並び替えバッファ22から読み出されたピクチャは、演算部23、画面内予測部33、及び、動き予測・補償部34に供給される。
演算部23には、画面並び替えバッファ22から、ピクチャが供給される他、予測画像選択部35から、画面内予測部33、又は、動き予測・補償部34で生成された予測画像が供給される。
演算部23は、画面並び替えバッファ22から読み出されたピクチャを、符号化対象のピクチャである対象ピクチャとし、さらに、対象ピクチャを構成するマクロブロック(LCU)を、順次、符号化対象の対象ブロックとする。
そして、演算部23は、対象ブロックの画素値から、予測画像選択部35から供給される予測画像の画素値を減算した減算値を、必要に応じて演算することにより予測符号化を行い、直交変換部24に供給する。
直交変換部24は、演算部23からの対象ブロック(の画素値、又は、予測画像が減算された残差)に対して、TUを単位として、離散コサイン変換や、カルーネン・レーベ変換等の直交変換を施し、その結果得られる変換係数を、量子化部25に供給する。
量子化部25は、直交変換部24から供給される変換係数を量子化し、その結果得られる量子化値を、可逆符号化部26に供給する。
可逆符号化部26は、量子化部25からの量子化値に対して、可変長符号化(例えば、CAVLC(Context-Adaptive Variable Length Coding)等)や、算術符号化(例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)等)等の可逆符号化を施し、その結果得られる符号化データを、蓄積バッファ27に供給する。
なお、可逆符号化部26には、量子化部25から量子化値が供給される他、画面内予測部33や動き予測・補償部34から、符号化データのヘッダに含めるヘッダ情報が供給される。
可逆符号化部26は、画面内予測部33や動き予測・補償部34からの、ヘッダ情報を符号化し、符号化データのヘッダに含める。
蓄積バッファ27は、可逆符号化部26からの符号化データを一時記憶し、所定のデータレートで出力する。なお、蓄積バッファ27は、伝送部としても機能する。
蓄積バッファ27から出力された符号化データは、他のエンコーダ11−Mなどにより符号化された他のビューの符号化データなどと多重化されて、後述する多視点画像復号装置に伝送される。
量子化部25で得られた量子化値は、可逆符号化部26に供給される他、逆量子化部28にも供給され、逆量子化部28、逆直交変換部29、及び、演算部30において、ローカルデコードが行われる。
すなわち、逆量子化部28は、量子化部25からの量子化値を、変換係数に逆量子化し、逆直交変換部29に供給する。
逆直交変換部29は、逆量子化部28からの変換係数を逆直交変換し、演算部30に供給する。
演算部30は、逆直交変換部29から供給されるデータに対して、必要に応じて、予測画像選択部35から供給される予測画像の画素値を加算することで、対象ブロックを復号(ローカルデコード)したデコード画像を得て、インループフィルタ31に供給する。
インループフィルタ31は、例えば、デブロッキングフィルタで構成される。なお、例えば、HEVC方式が採用される場合、インループフィルタ31は、デブロッキングフィルタおよび適応オフセットフィルタ(Sample Adaptive Offset:SAO)で構成される。インループフィルタ31は、演算部30からのデコード画像をフィルタリングすることにより、デコード画像に生じたブロック歪を除去(低減)し、DPB32−1に供給する。また、インループフィルタ31は、フィルタリングしていないデコード画像を、画面内予測部33に供給する。
ここで、DPB32−1は、インループフィルタ31からのデコード画像、すなわち、エンコーダ11−1において符号化されてローカルデコードされたノンベースビューの色画像のピクチャを、時間的に後に行われる予測符号化(演算部23で予測画像の減算が行われる符号化)に用いる予測画像を生成するときに参照する参照ピクチャ(の候補)として記憶する。なお、DPB32−1は、他のビューのエンコーダ11−Mに共用される。
なお、逆量子化部28、逆直交変換部29、及び、演算部30によるローカルデコードは、例えば、参照ピクチャとなることが可能な参照可能ピクチャであるIピクチャ、およびPピクチャを対象として行われ、DPB32−1では、Iピクチャ、およびPピクチャのデコード画像が記憶される。
画面内予測部33と動き予測・補償部34は、対象ブロックとしてPU単位で予測処理を行う。
画面内予測部33は、対象ピクチャが、イントラ予測(画面内予測)され得るIピクチャ、Pピクチャ、又は、Bピクチャ(Bsピクチャを含む)である場合に、インループフィルタ31から、対象ピクチャのうちの、既にローカルデコードされている部分(デコード画像)を読み出す。そして、画面内予測部33は、インループフィルタ31から読み出した、対象ピクチャのうちのデコード画像の一部を、画面並び替えバッファ22から供給される対象ピクチャの対象ブロックの予測画像とする。
さらに、画面内予測部33は、予測画像を用いて対象ブロックを符号化するのに要する符号化コスト、すなわち、対象ブロックの、予測画像に対する残差等を符号化するのに要する符号化コストを求め、予測画像とともに、予測画像選択部35に供給する。
動き予測・補償部34は、対象ピクチャが、インター予測され得るPピクチャ、又は、Bピクチャである場合に、AMVPモードのベクトル予測処理と、M/Sモード(Merge/Skipモード)のベクトル予測処理を行う。
動き予測・補償部34は、DPB32−1から、対象ピクチャより前に符号化されてローカルデコードされた1以上のピクチャを、候補ピクチャ(インター予測参照ピクチャの候補)として読み出す。
また、動き予測・補償部34は、異なるビューのエンコーダ(例えば、エンコーダ11−N)が有するDPB32−Nから、異なるビューにおいて、対象ピクチャより前に符号化されてローカルデコードされた1以上のピクチャを、候補ピクチャ(インタービュー予測参照ピクチャの候補)として読み出す。
なお、DPB32−Nは、エンコーダ11−Nにおいて符号化されてローカルデコードされた異なるビューの色画像のピクチャを、時間的に後に行われる予測符号化に用いる予測画像を生成するときに参照する参照ピクチャ(の候補)として記憶している。
動き予測・補償部34は、AMVPモードの場合、画面並び替えバッファ22からの対象ピクチャの対象ブロックと、候補ピクチャとを用いたME(Motion Estimation)(動き検出)によって、対象ブロックと、候補ピクチャの、対象ブロックに対応する対応ブロック(対象ブロックとのSAD(Sum of Absolute Differences)を最小にするブロック)とのずれとしての動きを表すずれベクトル(動きベクトル)を検出する。このとき、検出される動きベクトルとしては、時間的なずれを表すインター動きベクトルと、ビュー間のずれを表すインタービュー動きベクトルがある。
動き予測・補償部34は、対象ブロックの動きベクトルに従って、DPB32−1やDPB32−Nからの候補ピクチャの動き分のずれを補償する動き補償を行うことで、予測画像を生成する。
すなわち、動き予測・補償部34は、候補ピクチャの、対象ブロックの位置から、その対象ブロックの動きベクトルに従って移動した(ずれた)位置のブロック(領域)である対応ブロックを、予測画像として取得する。
また、動き予測・補償部34は、同じピクチャにおいて隣接する空間隣接ブロックを用いて、動きベクトルを符号化するための予測ベクトルの候補とする。動き予測・補償部34は、MVメモリ36−1から、同じビューの異なる時刻のピクチャにおいて、動きベクトルにより対応づけられる対応ブロックの動きベクトルを読み出して、予測ベクトルの候補とする。動き予測・補償部34は、異なるビューの動きベクトルが記憶されるMVメモリ36−Nから、同じ時刻の異なるビューにおける参照ブロックの動きベクトルを読み出し、予測ベクトルの候補とする。
なお、ここで、異なるビューにおける参照ブロック(図1のCor PU)とは、対象ブロック(図1のCurr PU)の周辺に隣接する隣接ブロックの動きベクトルの中から、視差ベクトルを探し、異なるビューの画像において、対象ブロックと同じ位置から、その視差ベクトル分だけずらした位置のブロックのことである。
一方、動き予測・補償部34は、M/Sモードの場合、同じピクチャにおいて隣接する空間隣接ブロックを用いて、動きベクトルの候補とする。動き予測・補償部34は、MVメモリ36−1から、同じビューの異なる時刻のピクチャにおいて、動きベクトルにより対応づけられる対応ブロックの動きベクトルを読み出して、動きベクトルの候補とする。動き予測・補償部34は、異なるビューの動きベクトルが記憶されるMVメモリ36−Nから、同じ時刻の異なるビューにおける参照ブロックの動きベクトルを読み出し、動きベクトルの候補とする。動き予測・補償部34は、これらの動きベクトルの候補を用いて、候補ピクチャを生成する。
そして、動き予測・補償部34は、対象ブロックを、予測画像を用いて符号化するのに要する符号化コストを、予測画像の生成に用いる候補ピクチャや、動きベクトルの候補、予測ベクトルの候補、ブロックサイズが異なるインター予測モード(インタービュー予測モード含む)、または、M/Sモードごとに求める。
動き予測・補償部34は、符号化コストが最小のインター予測モードまたはインタービュー予測モードを、最適なインター予測モードである最適インター予測モードとして、その最適インター予測モードで得られた予測画像と符号化コストとを、予測画像選択部35に供給する。
動き予測・補償部34は、最適インター予測モードのときの予測ベクトルの候補を、予測ベクトルとして、動きベクトルとの差分を求め、動きベクトル情報として、予測ベクトルのインデックスとともに、可逆符号化部26に供給する。また、動き予測・補償部34は、最適インター予測モードのときの動きベクトルを、MVメモリ36−1に記憶する。
予測画像選択部35は、画面内予測部33、及び、動き予測・補償部34それぞれからの予測画像のうちの、符号化コストが小さい方を選択し、演算部23、及び演算部30に供給する。
ここで、画面内予測部33は、イントラ予測に関する情報を、ヘッダ情報として、可逆符号化部26に供給する。動き予測・補償部34は、インター予測に関する情報(動きベクトルの情報等)を、ヘッダ情報として、可逆符号化部26に供給する。
可逆符号化部26は、画面内予測部33、及び、動き予測・補償部34それぞれからのヘッダ情報のうちの、符号化コストが小さい予測画像が生成された方からのヘッダ情報を選択し、符号化データのヘッダに含める。
MVメモリ36−1は、動き予測・補償部34において決定された動きベクトルを、時間的に後に行われる動きベクトルを符号化するための予測ベクトルを生成するときに参照する動きベクトル(の候補)として記憶する。なお、MVメモリ36−1は、他のビューのエンコーダ11−Mに共用される。
なお、MVメモリ36−Nは、異なるビューのエンコーダ11−Nが有しており、エンコーダ11−Nにおいて決定された動きベクトルを、時間的に後に行われる動きベクトルを符号化するための予測ベクトルを生成するときに参照する動きベクトル(の候補)として記憶している。MVメモリ36−Nは、動き予測・補償部34や他のビューのエンコーダ11−Mに共用される。
[動き予測・補償部の構成]
図5は、図4の動き予測・補償部の構成例を示すブロック図である。
図5の例において、動き予測・補償部34は、動き予測モード生成部51、参照インデックス自動生成部52、AMVPモードベクトル予測部53、M/Sモードベクトル予測部54、およびモード判定部55を含むように構成されている。
動き予測モード生成部51は、インター予測モード、Mergeモード、およびSkipモードなどの動き予測モードを生成する。動き予測モード生成部51は、インター予測モードを示す情報と、参照画像インデックス(Ref index)を、AMVPモードベクトル予測部53に供給する。動き予測モード生成部51は、MergeモードまたはSkipモード (M/Sモード)を、参照インデックス自動生成部52に供給する。
参照インデックス自動生成部52は、参照画像インデックスを自動生成し、動き予測モード生成部51からのMergeモードまたはSkipモードとともに、生成した参照画像インデックス(Ref index)を、M/Sモードベクトル予測部54に供給する。
AMVPモードベクトル予測部53は、動き予測モード生成部51からの予測モードと、参照画像インデックスとに応じて、DPB32−1またはDPB32−Nから、対象ピクチャより前に符号化されてローカルデコードされた1以上のピクチャを、候補ピクチャとして読み出す。
AMVPモードベクトル予測部53は、画面並び替えバッファ22からの対象ピクチャの対象ブロックと、候補ピクチャとを用いた動き検出によって、対象ブロックと、候補ピクチャの、対象ブロックに対応する対応ブロックとのずれとしての動きを表す動きベクトルを検出する。AMVPモードベクトル予測部53は、対象ブロックの動きベクトルに従って、DPB32−1やDPB32−Nからの候補ピクチャの動き分のずれを補償する動き補償を行うことで、予測画像を生成する。
AMVPモードベクトル予測部53は、同じピクチャにおいて隣接する空間隣接ブロックを用いて、動きベクトルを符号化するための予測ベクトルの候補とする。動き予測・補償部34は、MVメモリ36−1から、同じビューの異なる時刻のピクチャにおいて対応または隣接する時間隣接ブロックの動きベクトルを読み出して、予測ベクトルの候補とする。AMVPモードベクトル予測部53は、異なるビューの動きベクトルが記憶されるMVメモリ36−Nから、同じ時刻の異なるビューにおける参照ブロックの動きベクトルを読み出し、予測ベクトルの候補とする。
AMVPモードベクトル予測部53は、画面並べ替えバッファ22からの原画像を基に、対象ブロックを、予測画像を用いて符号化するのに要する符号化コストを、予測画像の生成に用いる候補ピクチャや、動きベクトルの候補、予測ベクトルの候補、ブロックサイズが異なるインター予測モードごとに求める。AMVPモードベクトル予測部53は、求めた符号化コストのうち、最適な符号化コストを、モードコストとして、モード判定部55に供給する。その際、AMVPモードベクトル予測部53は、最適な符号化コストのときの予測ベクトルの候補を、予測ベクトルとして、動きベクトルとの差分を求め、動きベクトルの差分(Mvd)と、予測ベクトルのインデックス(Mv index)とを動きベクトル情報として符号化する。
M/Sモードベクトル予測部54は、参照インデックス自動生成部52からのモードおよび参照画像インデックスに応じて、DPB32−1またはDPB32−Nから、対象ピクチャより前に符号化されてローカルデコードされた1以上のピクチャを、候補ピクチャとして読み出す。
また、M/Sモードベクトル予測部54は、同じピクチャにおいて隣接する空間隣接ブロックを用いて、動きベクトルの候補とする。M/Sモードベクトル予測部54は、MVメモリ36−1から、同じビューの異なる時刻のピクチャにおいて対応または隣接する時間隣接ブロックの動きベクトルを読み出して、動きベクトルの候補とする。M/Sモードベクトル予測部54は、異なるビューの動きベクトルが記憶されるMVメモリ36−Nから、同じ時刻の異なるビューにおける参照ブロックの動きベクトルを読み出し、動きベクトルの候補とする。M/Sモードベクトル予測部54は、これらの動きベクトルの候補を用いて、候補ピクチャを生成する。
M/Sモードベクトル予測部54は、画面並べ替えバッファ22からの原画像を基に、対象ブロックを、予測画像を用いて符号化するのに要する符号化コストを、予測画像の生成に用いる候補ピクチャや、動きベクトルの候補、M/Sモードごとに求める。M/Sモードベクトル予測部54は、求めた符号化コストのうち、最適な符号化コストを、モードコストとして、モード判定部55に供給する。また、M/Sモードベクトル予測部54は、動きベクトルを示すマージインデックス(Merge index)を動きベクトル情報として符号化する。
モード判定部55は、AMVPモードベクトル予測部53およびM/Sモードベクトル予測部54からの符号化コストを参照し、符号化コストが最小のインター予測モードまたはインタービュー予測モードを、最適な動き予測モードである最適予測モードとして判定する。モード判定部55は、最適予測モードの判定結果をAMVPモードベクトル予測部53およびM/Sモードベクトル予測部54に返す。
AMVPモードベクトル予測部53は、モード判定部55からの判定結果に基づいて、最適予測モードで得られた予測画像(Pred. image)と符号化コストとを、予測画像選択部35に供給する。AMVPモードベクトル予測部53は、最適予測モードと判定されたインター予測モード(Inter mode)、参照画像インデックス(Ref index)、および符号化した動きベクトル情報を、可逆符号化部26に供給する。
M/Sモードベクトル予測部54は、モード判定部55からの判定結果に基づいて、最適予測モードで得られた予測画像(Pred. image)と符号化コストとを、予測画像選択部35に供給する。また、M/Sモードベクトル予測部54は、最適予測モードと判定された予測モード(M/S mode)と符号化した動きベクトル情報とを、可逆符号化部26に供給する。その際、最適な符号化コストの動きベクトルの情報は、後述する図6のSpatial MVメモリ64に一時保存される(上書きされる)。
[AMVPモードベクトル予測部の構成]
図6は、図5のAMVPモードベクトル予測部の構成例を示すブロック図である。
図6の例において、AMVPモードベクトル予測部53は、ベクトル探索部61、予測画像生成部62、ベクトルコスト判定部63、Spatial MVメモリ64、予測ベクトル生成部65、予測ベクトル生成部66、スイッチ67、減算部68、およびPOC変換部69を含むように構成されている。
動き予測モード生成部51からの参照画像インデックスは、ベクトル探索部61、POC変換部69、および可逆符号化部26に供給される。また、ベクトル探索部61には、動き予測モード生成部51から予測モードも供給される。
ベクトル探索部61は、動き予測モード生成部51からの予測モードと、参照画像インデックスとに応じて、DPB32−1またはDPB32−Nから、対象ピクチャより前に符号化されてローカルデコードされた1以上のピクチャを、候補ピクチャとして読み出す。ベクトル探索部61は、画面並び替えバッファ22からの対象ピクチャの対象ブロックと、候補ピクチャとを用いた動き検出によって、対象ブロックと、候補ピクチャの、対象ブロックに対応する対応ブロックとのずれとしての動きを表す動きベクトルを検出する。ベクトル探索部61は、検出した動きベクトルを、予測画像生成部62、およびベクトルコスト判定部63に供給する。
予測画像生成部62は、ベクトル探索部61からの対象ブロックの動きベクトルに従って、DPB32−1やDPB32−Nからの候補ピクチャの動き分のずれを補償する動き補償を行うことで、予測画像を生成する。生成した予測画像は、予測画像選択部35およびベクトルコスト判定部63に供給される。
ベクトルコスト判定部63は、画面並べ替えバッファ22からの原画像、ベクトル探索部61からの動きベクトル、予測画像生成部62からの予測画像、予測ベクトル生成部65および66からの予測ベクトルとそのMVインデックスなどを用いて、符号化コストを求める。そして、ベクトルコスト判定部63は、最も小さい符号化コストを判定し、最も小さい符号化コスト(Best cost)とその予測モードを、モード判定部55に供給する。ベクトルコスト判定部63は、最も小さい符号化コストの動きベクトルをSpatial MVメモリ64に一時保存する。
Spatial MVメモリ64は、最も小さい符号化コストの動きベクトルを、時間的に後に行われる予測ベクトルの生成に用いられる候補として記憶する。Spatial MVメモリ64においては、動きベクトルが求められたブロックの単位(PU)毎に記憶される。なお、M/Sモードの符号化コストが最適であった場合、Spatial MVメモリ64の動きベクトルは、M/Sモードの場合の動きベクトルで上書きされる。
また、Spatial MVメモリ64は、最も小さい符号化コストの動きベクトルがベクトルコスト判定部63により供給されたとき、最もよい動きベクトル(Best MV)として、減算部68に供給する。
予測ベクトル生成部65は、Spatial MVメモリ64から、同じピクチャにおいて隣接する空間隣接ブロックの動きベクトルを読み出して、Spatialの予測ベクトルを生成する。予測ベクトル生成部65は、生成したSpatialの予測ベクトルを、その予測ベクトルを示すMVインデックスとともに、スイッチ67を介して、ベクトルコスト判定部63および減算部68に供給する。
予測ベクトル生成部66は、TMVP(Temporal Moving Vector Prediction)による予測ベクトルを生成する。すなわち、予測ベクトル生成部66は、MVメモリ36−1から、同じビューの異なる時刻のピクチャにおいて対応または隣接する時間隣接ブロックの動きベクトルを読み出して、予測ベクトルを生成する。なお、その際、POC変換部69からのPOC情報に基づいて、対象ブロックの参照POC(Ref POC)と、時間隣接ブロックの参照POC(Ref POC)が異なる場合、スケーリングが行われる。すなわち、スケーリングされた動きベクトルが予測ベクトルとされる。予測ベクトル生成部66は、生成したTemporalの予測ベクトルを、その予測ベクトルを示すMVインデックスとともに、スイッチ67を介して、ベクトルコスト判定部63および減算部68に供給する。
また、予測ベクトル生成部66は、インタービュー予測(IVMP)による予測ベクトルを生成する。予測ベクトル生成部66は、Spatial MVメモリ64から、対象ブロックに隣接する隣接ブロックの動きベクトルから、視差ベクトルを探索し、探索した視差ベクトルに基づいて、同じ時刻の異なるビューにおける参照ブロックを求める。そして、予測ベクトル生成部66は、異なるビューの動きベクトルが記憶されるMVメモリ36−Nから、同じ時刻の異なるビューにおける参照ブロックの動きベクトルを読み出して、予測ベクトルを生成する。
なお、その際、対象ブロックの参照POC(Ref POC)と、参照ブロックの参照POC(Ref POC)が異なる場合、スケーリングが行われる。すなわち、スケーリングされた動きベクトルが予測ベクトルとされる。予測ベクトル生成部66は、生成したインタービューの予測ベクトルを、その予測ベクトルを示すMVインデックスとともに、スイッチ67を介して、ベクトルコスト判定部63および減算部68に供給する。
スイッチ67は、予測ベクトル生成部65からの予測ベクトルまたは予測ベクトル生成部66からの予測ベクトルを選択し、選択した予測ベクトルとそのMVインデックスを、ベクトルコスト判定部63および減算部68に供給する。
減算部68は、Spatial MVメモリ64からの最もコストの小さいとされる動きベクトル(Best MV)と、スイッチ67からの予測ベクトルとの差分(MVd)を、予測ベクトルのインデックスを示すMVインデックスとともに動きベクトル情報として符号化する。減算部68は、符号化された動きベクトル情報を、可逆符号化部26に供給する。
POC変換部69は、動き予測モード生成部51からの対象ブロックの参照画像インデックス(Ref index)を、POCに変換し、変換したPOCを示すPOC情報を予測ベクトル生成部66に供給する。
[Non-Spatial予測ベクトル生成部の構成例]
図7は、図6のNon-Spatialの予測ベクトル生成部の構成例を示すブロック図である。
図7の例において、予測ベクトル生成部66は、予測ベクトルインデックス生成部81、ビュー内参照ベクトル生成部82、およびビュー間参照ベクトル生成部83を含むように構成されている。
予測ベクトルインデックス生成部81は、TMVPの予測ベクトルインデックス(MVインデックス)を生成し、ビュー内参照ベクトル生成部82に供給する。予測ベクトルインデックス生成部81は、IVMPの予測ベクトルインデックス(MVインデックス)を生成し、ビュー間参照ベクトル生成部83に供給する。
ビュー内参照ベクトル生成部82は、TMVPによる予測ベクトルを生成する。すなわち、ビュー内参照ベクトル生成部82は、MVメモリ36−1から、同じビューの異なる時刻のピクチャにおいて、動きベクトルにより対応づけられる対応ブロックの動きベクトルを読み出して、予測ベクトルを生成する。
なお、その際、POC変換部69からのPOC情報に基づいて、対象ブロックの参照POC(Ref POC)と、対応ブロックの参照POC(Ref POC)が異なる場合、対応ブロックの動きベクトルに対してスケーリングが行われる。すなわち、スケーリングされた動きベクトルが、予測ベクトルとされる。ビュー内参照ベクトル生成部82は、生成したTemporalの予測ベクトル(PMV)を、その予測ベクトルを示すMVインデックスとともに、スイッチ67を介して、ベクトルコスト判定部63および減算部68に供給する。
ビュー間参照ベクトル生成部83は、IVMPによる予測ベクトルを生成する。ビュー間参照ベクトル生成部83は、Spatial MVメモリ64から、対象ブロックに隣接する隣接ブロックの動きベクトルから、視差ベクトルを探索し、探索した視差ベクトルに基づいて、同じ時刻の異なるビューにおける参照ブロックを求める。そして、ビュー間参照ベクトル生成部83は、異なるビューの動きベクトルが記憶されるMVメモリ36−Nから、同じ時刻の異なるビューにおける参照ブロックの動きベクトルを読み出して、予測ベクトルを生成する。
なお、その際、POC変換部69からのPOC情報に基づいて、対象ブロックの参照POC(Ref POC)と、参照ブロックの参照POC(Ref POC)が異なる場合、参照ブロックの動きベクトルに対してスケーリングが行われる。すなわち、スケーリングされた動きベクトルが、予測ベクトルとされる。ビュー間参照ベクトル生成部83は、生成したインタービューの予測ベクトルを、その予測ベクトルを示すMVインデックスとともに、スイッチ67を介して、ベクトルコスト判定部63および減算部68に供給する。
[エンコーダの動作]
次に、図8のフローチャートを参照して、図4のエンコーダ11−1の符号化処理について説明する。なお、他のビューの画像の符号化処理を行うエンコーダ11−Nおよび11−Mも同様の符号化処理を行う。
A/D変換部21には、符号化対象の画像(動画像)であるノンベースビューの色画像のピクチャが、表示順に、順次、供給される。ステップS11において、A/D変換部21は、ピクチャが、アナログ信号である場合、アナログ信号をA/D変換し、画面並び替えバッファ22に供給する。
画面並び替えバッファ22は、A/D変換部21からのピクチャを一時記憶し、供給された符号化順序が示すGOP(Group of Pictures)の構造に応じて、ピクチャを読み出すことで、ピクチャの並びを、表示順から、符号化順(復号順)に並び替える並び替えを行う。画面並び替えバッファ22から読み出されたピクチャは、演算部23、画面内予測部33、及び、動き予測・補償部34に供給される。
ステップS12において、画面内予測部33は、画面内予測を行う。すなわち、画面内予測部33は、インループフィルタ31から、対象ピクチャのうちの、既にローカルデコードされている部分(デコード画像)を読み出す。そして、画面内予測部33は、インループフィルタ31から読み出した、対象ピクチャのうちのデコード画像の一部を、画面並び替えバッファ22から供給される対象ピクチャの対象ブロック(PU)の予測画像とする。
画面内予測部33は、予測画像を用いて対象ブロックを符号化するのに要する符号化コスト、すなわち、対象ブロックの、予測画像に対する残差等を符号化するのに要する符号化コストを求め、予測画像とともに、予測画像選択部35に供給する。
ステップS13において、動き予測・補償部34は、動き予測、補償を行う。なお、この動き予測、補償処理については、図9を参照して詳しく後述する。
ステップS13により、すべてのインター予測モードでの動き予測、補償や、予測ベクトル生成、M/Sモードでの動きベクトル生成などが行われて、すべてのインター予測モード(M/Sモード含む)での予測画像が生成される。そして、対象ブロック(PU)を、予測画像を用いて符号化するのに要する符号化コストが、予測画像の生成に用いる候補ピクチャや、動きベクトルの候補、予測ベクトルの候補、マクロブロックタイプが異なるインター予測モード(インタービュー予測モード含む)、または、M/Sモードごとに求められて、最適インター予測モードが決定されて、その符号化コストが、予測画像とともに、予測画像選択部35に供給される。
なお、このとき、画面内予測部33は、イントラ予測に関する情報を、ヘッダ情報として、可逆符号化部26に供給する。動き予測・補償部34は、インター予測に関する情報(動きベクトルの情報等)を、ヘッダ情報として、可逆符号化部26に供給する。
ステップS14において、予測画像選択部35は、画面内予測部33、及び、動き予測・補償部34それぞれからの予測画像のうちの、符号化コストが小さい方を選択し、演算部23、及び演算部30に供給する。
ステップS15において、動き予測、補償部34(図6のベクトルコスト判定部63)は、ステップS14において(画面内予測ではなく)動き予測が選択されたとき、最適インター予測モードの動きベクトルを、図6のSpatial MVメモリ64に一時保存する。すなわち、ステップS13の処理においても、Spatial MVメモリ64にAMVPモードの場合の動きベクトルが保存されるが、ステップS15においては、例えば、最適な符号化コストがM/Sモードの場合、M/Sモードの動きベクトルで、図6のSpatial MVメモリ64の動きベクトルが上書きされる。
ステップS16において、演算部23は、画面並べ替えバッファ22からの原画像と、予測画像選択部35からの予測画像の差分を計算し、計算結果を、直交変換部24に供給する。すなわち、演算部23は、対象ブロックの画素値から、予測画像選択部35から供給される予測画像の画素値を減算した減算値を、必要に応じて演算することにより予測符号化を行い、直交変換部24に供給する。
ステップS17において、直交変換部24は、演算部23からの対象ブロック(の画素値、又は、予測画像が減算された残差)に対して、TUを単位として、離散コサイン変換や、カルーネン・レーベ変換等の直交変換を施し、その結果得られる変換係数を、量子化部25に供給する。
ステップS18において、量子化部25は、直交変換部24から供給される変換係数を量子化し、その結果得られる量子化値を、逆量子化部28および可逆符号化部26に供給する。
ステップS19において、逆量子化部28は、量子化部25からの量子化値を、変換係数に逆量子化し、逆直交変換部29に供給する。
ステップS20において、逆直交変換部29は、逆量子化部28からの変換係数を逆直交変換し、演算部30に供給する。
ステップS21において、可逆符号化部26は、量子化部25からの量子化値である残差係数に対して、可逆符号化を施し、その結果得られる符号化データを、蓄積バッファ27に供給する。なお、その際、可逆符号化部26は、画面内予測部33や動き予測・補償部34からの、予測モード情報や動きベクトル情報などのヘッダ情報を符号化し、符号化データのヘッダに含める。
ステップS22において、演算部30は、逆直交変換部29から供給されるデータに対して、必要に応じて、予測画像選択部35から供給される予測画像の画素値を加算することで、対象ブロックを復号(ローカルデコード)したデコード画像を得て、インループフィルタ31に供給する。
ステップS23において、インループフィルタ31は、LCUの終端であるか否かを判定する。ステップS23において、LCUの終端ではないと判定された場合、処理は、ステップS12に戻り、それ以降の処理が繰り返される。
ステップS23において、LCUの終端であると判定された場合、処理は、ステップS24に進む。ステップS24において、インループフィルタ31は、演算部30からのデコード画像をフィルタリングすることにより、デコード画像に生じたブロック歪を除去(低減)する。
ステップS25において、インループフィルタ31は、フィルタリング後のデコード画像を、DPB32−1に保存する。
ステップS26において、動き予測、補償部34は、ステップS15で保存された動きベクトルを圧縮する。すなわち、Spatial MVメモリ64においては、例えば、4×4ブロック毎に1つの動きベクトルが保存されているが、それを、16×16ブロック毎に1つの動きベクトルが保存されるように動きベクトルが圧縮される。例えば、16×16ブロックにおける左上のブロックの動きベクトルが選択される。
そして、動き予測、補償部34は、ステップS27において、圧縮した動きベクトルを、MVメモリ36−1に保存する。
ステップS28において、他のビューのエンコーダ11−Mは、他のビューのピクチャを符号化する。なお、この符号化処理は、図8の符号化処理と基本的に同様の処理である。
以上のようにして、符号化処理が行われる。
[動き予測、補償処理の例]
次に、図9のフローチャートを参照して、図8のステップS13の動き予測、補償処理について説明する。
動き予測モード生成部51は、ステップS41において、インター予測モード(インタービュー予測モード含む)、Mergeモード、およびSkipモードなどの動き予測モードを生成する。
動き予測モード生成部51は、ステップS42において、生成した動き予測モードがインター予測モードであるか否かを判定する。ステップS42において、インター予測モードであると判定された場合、動き予測モード生成部51は、インター予測モード(Inter mode)と、参照画像インデックス(Ref index)を、AMVPモードベクトル予測部53に供給し、処理は、ステップS43に進む。
ステップS43において、AMVPモードベクトル予測部53は、AMVPモードのベクトル予測を行う。このAMVPモードのベクトル予測の詳細は、図10を参照して後述される。
ステップS43の処理により、インター予測モードについての動きベクトルが探索され、予測画像が生成され、残差画像が生成され、Spatial(空間)およびNon-spatialの各予測ベクトルが生成される。特に、Non-spatialの予測ベクトルを生成する際に、カレントPU のRef POCと、異なるビューにおける参照PUのRef POCが異なる場合、参照PUの動きベクトルがスケーリングされて、カレントPUの予測ベクトルの候補とされる。そして、予測ベクトルの候補と、動きベクトルの差分が計算されることで、最小コストの予測ベクトルが選択される。選択された予測ベクトルの最小コストは、モード判定部55に供給される。また、選択された最小コストの予測ベクトルと動きベクトルの差分とその予測ベクトルのインデックスは、動きベクトル情報として符号化される。
一方、ステップS42において、インター予測モードではないと判定された場合、動き予測モード生成部51は、MergeモードまたはSkipモード (M/Sモード)を、参照インデックス自動生成部52に供給し、処理は、ステップS44に進む。
ステップS44において、参照インデックス自動生成部52は、参照画像インデックスを自動生成し、動き予測モード生成部51からのMergeモードまたはSkipモードを示す情報とともに、生成した参照画像インデックス(Ref index)を、M/Sモードベクトル予測部54に供給する。
ステップS45において、M/Sモードベクトル予測部54は、MergeモードまたはSkipモードのベクトル予測を行う。
すなわち、M/Sモードベクトル予測部54は、参照インデックス自動生成部52からのモードおよび参照画像インデックスに応じて、DPB32−1またはDPB32−Nから、対象ピクチャより前に符号化されてローカルデコードされた1以上のピクチャを、候補ピクチャとして読み出す。
また、M/Sモードベクトル予測部54は、同じピクチャにおいて隣接する空間隣接ブロックを用いて、動きベクトルの候補とする。M/Sモードベクトル予測部54は、MVメモリ36−1から、同じビューの異なる時刻のピクチャにおいて対応または隣接する時間隣接ブロックの動きベクトルを読み出して、動きベクトルの候補とする。M/Sモードベクトル予測部54は、異なるビューの動きベクトルが記憶されるMVメモリ36−Nから、同じ時刻の異なるビューにおける参照ブロックの動きベクトルを読み出し、動きベクトルの候補とする。M/Sモードベクトル予測部54は、これらの動きベクトルの候補を用いて、候補ピクチャを生成する。
M/Sモードベクトル予測部54は、画面並べ替えバッファ22からの原画像を基に、対象ブロックを、予測画像を用いて符号化するのに要する符号化コストを、予測画像の生成に用いる候補ピクチャや、動きベクトルの候補、M/Sモードごとに求める。M/Sモードベクトル予測部54は、求めた符号化コストのうち、最適な符号化コストを、モードコストとして、モード判定部55に供給する。その際、M/Sモードベクトル予測部54は、最適な符号化コストの動きベクトルを示すマージインデックス(Merge index)を、動きベクトル情報として符号化する。
ステップS46において、モード判定部55は、AMVPモードベクトル予測部53およびM/Sモードベクトル予測部54からの符号化コストを参照し、符号化コストが最小のインター予測モードまたはインタービュー予測モードを、最適なインター予測モードである最適インター予測モードとして判定する。モード判定部55は、最適インター予測モードの判定結果をAMVPモードベクトル予測部53およびM/Sモードベクトル予測部54に返す。
ステップS47において、AMVPモードベクトル予測部53またはM/Sモードベクトル予測部54は、モード判定部55からの判定結果に基づいて、符号化コストが小さいモードの符号化した動き情報を選択し、選択した動き情報を可逆符号化部26に供給する。
[AMVPモードのベクトル予測処理の例]
次に、図10のフローチャートを参照して、図9のステップS43のAMVPモードのベクトル予測処理について説明する。
動き予測モード生成部51からの予測モードは、参照画像インデックスとともにベクトル探索部61に供給される。
ステップS61において、ベクトル探索部61は、動き予測モード生成部51からの予測モードと、参照画像インデックスとに応じて、ベクトルの探索を行う。
すなわち、ベクトル探索部61は、動き予測モード生成部51からの予測モードと、参照画像インデックスとに応じて、DPB32−1またはDPB32−Nから、対象ピクチャより前に符号化されてローカルデコードされた1以上のピクチャを、候補ピクチャとして読み出す。ベクトル探索部61は、画面並び替えバッファ22からの対象ピクチャの対象ブロックと、候補ピクチャとを用いた動き検出によって、対象ブロックと、候補ピクチャの、対象ブロックに対応する対応ブロックとのずれとしての動きを表す動きベクトルを検出する。ベクトル探索部61は、検出した動きベクトルを、予測画像生成部62、およびベクトルコスト判定部63に供給する。
ステップS62において、予測画像生成部62は、ベクトル探索部61からの対象ブロックの動きベクトルに従って、予測画像を生成する。
すなわち、予測画像生成部62は、ベクトル探索部61からの対象ブロックの動きベクトルに従って、DPB32−1やDPB32−Nからの候補ピクチャの動き分のずれを補償する動き補償を行うことで、予測画像を生成する。生成した予測画像は、予測画像選択部35およびベクトルコスト判定部63に供給される。
ステップS63において、ベクトルコスト判定部63は、画面並べ替えバッファ22からの原画像、ベクトル探索部61からの動きベクトル、および予測画像生成部62からの予測画像を用いて、残差画像を生成する。生成された残差画像は、後述するステップS67における符号化コストの計算に用いられる。
ステップS64において、予測ベクトル生成部65は、Spatialの予測ベクトルを生成する。すなわち、予測ベクトル生成部65は、Spatial MVメモリ64から、同じピクチャにおいて隣接する空間隣接ブロックの動きベクトルを読み出して、Spatialの予測ベクトルを生成する。予測ベクトル生成部65は、生成したSpatialの予測ベクトルを、その予測ベクトルを示すMVインデックスとともに、スイッチ67を介して、ベクトルコスト判定部63および減算部68に供給する。
ステップS65において、予測ベクトル生成部66は、Non- Spatialの予測ベクトルを生成する。すなわち、予測ベクトル生成部66は、TMVPによる予測ベクトルと、IVMPによる予測ベクトルを生成する。このNon- Spatialの予測ベクトルの生成処理は、図11を参照して後述される。
ステップS65の処理により、TMVPによる予測ベクトルの生成処理が行われ、IVMPによる予測ベクトルの生成処理が行われる。なお、IVMPによる予測ベクトルの生成処理の際、対象ブロックに隣接する隣接ブロックの動きベクトルから、視差ベクトルが探索され、探索された視差ベクトルに基づいて、同じ時刻の異なるビューにおける参照ブロックが求められる。そして、異なるビューの動きベクトルが記憶されるMVメモリ36−Nから、同じ時刻の異なるビューにおける参照ブロックの動きベクトルが読み出されて、対象ブロックの参照POC(Ref POC)と、参照ブロックの参照POC(Ref POC)が異なる場合、スケーリングが行われる。なお、これらのPOC情報は、POC変換部69においてRef indexから変換されて、供給される。
ステップS65の処理により生成されたTMVPによる予測ベクトルとIVMPの予測ベクトルとは、その予測ベクトルを示すMVインデックスとともに、スイッチ67を介して、ベクトルコスト判定部63および減算部68に供給される。
ステップS66において、ベクトルコスト判定部63は、対象ブロックの動きベクトルと、予測ベクトル生成部65および66から供給される対象ブロックの予測ベクトルとの残差を計算する。
ステップS67において、ベクトルコスト判定部63は、ステップS63で求められた残差画像、およびステップS66で求められたベクトルの残差などを用いて、符号化コストを求め、求めた符号化コストから、最小コストの予測ベクトルを選択し、選択した予測ベクトルに対応する動きベクトル(Best MV)を、Spatial MVメモリ64に蓄積する。
この動きベクトル(Best MV)は、Spatial MVメモリ64を介して、減算部68に供給される。
ステップS68において、Spatial MVメモリ64からの最もコストの小さいとされる動きベクトル(Best MV)と、この動きベクトルに対応する、スイッチ67からの予測ベクトルとの差分(MVd)を、予測ベクトルのインデックスを示すMVインデックスとともに動きベクトル情報として符号化する。
[Non-Spatialの予測ベクトル生成処理の例]
次に、図11のフローチャートを参照して、図10のステップS65におけるNon-Spatialの予測ベクトル生成処理について説明する。
予測ベクトルインデックス生成部81は、TMVPの予測ベクトルインデックス(MVインデックス)を生成し、ビュー内参照ベクトル生成部82に供給する。予測ベクトルインデックス生成部81は、IVMPの予測ベクトルインデックス(MVインデックス)を生成し、ビュー間参照ベクトル生成部83に供給する。
ステップS81において、ビュー内参照ベクトル生成部82は、TMVPによる予測ベクトルを生成する。
すなわち、ビュー内参照ベクトル生成部82は、MVメモリ36−1から、同じビューの異なる時刻のピクチャにおいて対応または隣接する時間隣接ブロックの動きベクトルを読み出して、予測ベクトルを生成する。ビュー内参照ベクトル生成部82は、生成したTemporalの予測ベクトル(PMV)を、その予測ベクトルを示すMVインデックスとともに、スイッチ67を介して、ベクトルコスト判定部63および減算部68に供給する。
ステップS82乃至S84において、ビュー間参照ベクトル生成部83は、IVMPによる予測ベクトルを生成する。
すなわち、ステップS82において、ビュー間参照ベクトル生成部83は、Spatial MVメモリ64から、対象ブロック(PU)に隣接する隣接ブロックの動きベクトルから、視差ベクトルを探索し、探索した視差ベクトルに基づいて、視差を算出する。
ステップS83において、ビュー間参照ベクトル生成部83は、異なるビューにおいて、ステップS82で求めた視差分だけシフトした位置のPUを参照PUとして選択する。
ステップS84において、ビュー間参照ベクトル生成部83は、異なるビューの動きベクトルが記憶されるMVメモリ36−Nから、選択した参照PUの動きベクトルを読み出して、選択した参照PUの動きベクトルから予測ベクトルを生成する。この予測ベクトル生成処理は、図12および図13を参照して後述される。
ステップS84の処理により、生成されたIVMPの予測ベクトルは、その予測ベクトルを示すMVインデックスとともに、スイッチ67を介して、ベクトルコスト判定部63および減算部68に供給される。
[予測ベクトル生成処理の例]
次に、図12のフローチャートを参照して、図11のステップS84の予測ベクトル生成処理について説明する。なお、図12の例においては、L0方向についての予測ベクトル生成処理が示されている。
ビュー間参照ベクトル生成部83は、ステップS101において、異なるビューの動きベクトルが記憶されるMVメモリ36−Nを探索し、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が利用可能であるか否かを判定する。
ステップS101において、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が利用可能であると判定された場合、処理は、ステップS102に進む。ステップS102において、ビュー間参照ベクトル生成部83は、対象PUのRef POCであるPOCcurr_l0と、参照PUのRef POCであるPOCbase_l0とが等しいか否かを判定する。
ステップS102において、POCcurr_l0とPOCbase_l0とが等しいと判定された場合、処理は、ステップS103に進む。ステップS103において、ビュー間参照ベクトル生成部83は、L0方向の動きベクトルMVbase=l0を、対象PUのL0方向の予測ベクトルPMV_L0とし、予測ベクトル生成処理は終了される。
ステップS101において、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が利用不可であると判定された場合、または、ステップS102において、POCcurr_l0とPOCbase_l0とが等しくないと判定された場合、処理は、ステップS104に進む。
ビュー間参照ベクトル生成部83は、ステップS104において、異なるビューの動きベクトルが記憶されるMVメモリ36−Nを探索し、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用可能であるか否かを判定する。
ステップS104において、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用可能であると判定された場合、処理は、ステップS105に進む。ステップS105において、ビュー間参照ベクトル生成部83は、対象PUのRef POCであるPOCcurr_l0と、参照PUのRef POCであるPOCbase_l1とが等しいか否かを判定する。
ステップS105において、POCcurr_l0とPOCbase_l1とが等しいと判定された場合、処理は、ステップS106に進む。ステップS106において、ビュー間参照ベクトル生成部83は、L1方向の動きベクトルMVbase=l1を、対象PUのL0方向の予測ベクトルPMV_L0とし、予測ベクトル生成処理は終了される。
ステップS104において、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用不可であると判定された場合、または、ステップS105において、POCcurr_l0とPOCbase_l1とが等しくないと判定された場合、処理は、ステップS107に進む。
ビュー間参照ベクトル生成部83は、ステップS107において、再度、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が利用可能であるか否かを判定する。
ステップS107において、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が利用可能であると判定された場合、処理は、ステップS108に進む。ステップS108において、ビュー間参照ベクトル生成部83は、L0方向の動きベクトルMVbase=l0を、対象PUのRef POCであるPOCcurr_l0と参照PUのRef POCであるPOCbase_l0とに応じてスケーリングする。そして、ビュー間参照ベクトル生成部83は、スケーリングされたMVbase=l0を対象PUのL0方向の予測ベクトルPMV_L0とし、予測ベクトル生成処理は終了される。
ステップS107において、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が利用不可であると判定された場合、処理は、ステップS109に進む。
ビュー間参照ベクトル生成部83は、ステップS109において、再度、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用可能であるか否かを判定する。
ステップS107において、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用可能であると判定された場合、処理は、ステップS110に進む。ステップS110において、ビュー間参照ベクトル生成部83は、L1方向の動きベクトルMVbase=l1を、対象PUのRef POCであるPOCcurr_l0と、参照PUのRef POCであるPOCbase_l1とに応じてスケーリングする。そして、ビュー間参照ベクトル生成部83は、スケーリングされたMVbase=l1を対象PUのL0方向の予測ベクトルPMV_L0とし、予測ベクトル生成処理は終了される。
ステップS109において、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用不可であると判定された場合、処理は、ステップS111に進む。ステップS111において、ビュー間参照ベクトル生成部83は、対象PUのL0方向の予測ベクトルPMV_L0がないものとし、予測ベクトル生成処理は終了される。
[予測ベクトル生成処理の例]
次に、図13のフローチャートを参照して、図11のステップS84の予測ベクトル生成処理について説明する。なお、図13の例においては、L1方向についての予測ベクトル生成処理が示されている。
ビュー間参照ベクトル生成部83は、ステップS131において、異なるビューの動きベクトルが記憶されるMVメモリ36−Nを探索し、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用可能であるか否かを判定する。
ステップS131において、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用可能であると判定された場合、処理は、ステップS132に進む。ステップS132において、ビュー間参照ベクトル生成部83は、対象PUのRef POCであるPOCcurr_l1と、参照PUのRef POCであるPOCbase_l1とが等しいか否かを判定する。
ステップS132において、POCcurr_l1とPOCbase_l1とが等しいと判定された場合、処理は、ステップS133に進む。ステップS133において、ビュー間参照ベクトル生成部83は、L1方向の動きベクトルMVbase=l1を、対象PUのL1方向の予測ベクトルPMV_L1とし、予測ベクトル生成処理は終了される。
ステップS131において、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用不可であると判定された場合、または、ステップS132において、POCcurr_l1とPOCbase_l1とが等しくないと判定された場合、処理は、ステップS134に進む。
ビュー間参照ベクトル生成部83は、ステップS134において、異なるビューの動きベクトルが記憶されるMVメモリ36−Nを探索し、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が利用可能であるか否かを判定する。
ステップS134において、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が利用可能であると判定された場合、処理は、ステップS135に進む。ステップS135において、ビュー間参照ベクトル生成部83は、対象PUのRef POCであるPOCcurr_l1と、参照PUのRef POCであるPOCbase_l0とが等しいか否かを判定する。
ステップS135において、POCcurr_l1とPOCbase_l0とが等しいと判定された場合、処理は、ステップS136に進む。ステップS136において、ビュー間参照ベクトル生成部83は、L0方向の動きベクトルMVbase=l0を、対象PUのL1方向の予測ベクトルPMV_L1とし、予測ベクトル生成処理は終了される。
ステップS134において、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が利用不可であると判定された場合、または、ステップS135において、POCcurr_l1とPOCbase_l0とが等しくないと判定された場合、処理は、ステップS137に進む。
ビュー間参照ベクトル生成部83は、ステップS137において、再度、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用可能であるか否かを判定する。
ステップS137において、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用可能であると判定された場合、処理は、ステップS138に進む。ステップS138において、ビュー間参照ベクトル生成部83は、L1方向の動きベクトルMVbase=l1を、対象PUのRef POCであるPOCcurr_l1と、参照PUのRef POCであるPOCbase_l1とに応じてスケーリングする。そして、ビュー間参照ベクトル生成部83は、スケーリングされたMVbase=l1を対象PUのL1方向の予測ベクトルPMV_L1とし、予測ベクトル生成処理は終了される。
ステップS137において、異なるビュー(ベースビュー)のL1方向の動きベクトルMVbase=l1が利用不可であると判定された場合、処理は、ステップS139に進む。
ビュー間参照ベクトル生成部83は、ステップS139において、再度、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が利用可能であるか否かを判定する。
ステップS137において、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が利用可能であると判定された場合、処理は、ステップS140に進む。ステップS140において、ビュー間参照ベクトル生成部83は、L0方向の動きベクトルMVbase=l0を、対象PUのRef POCであるPOCcurr_l1と、参照PUのRef POCであるPOCbase_l0とに応じてスケーリングする。そして、ビュー間参照ベクトル生成部83は、スケーリングされたMVbase=l0を対象PUのL1方向の予測ベクトルPMV_L1とし、予測ベクトル生成処理は終了される。
ステップS139において、異なるビュー(ベースビュー)のL0方向の動きベクトルMVbase=l0が不可であると判定された場合、処理は、ステップS141に進む。ステップS141において、ビュー間参照ベクトル生成部83は、対象PUのL1方向の予測ベクトルPMV_L1がないものとし、予測ベクトル生成処理は終了される。
以上のように、カレントPUのRef POC(Ref 0)と、異なるビューにおける参照PUのRef POC(Ref 0)が異なる場合に、参照PUの動きベクトルがスケーリングされて、カレントPUの予測ベクトルの候補とされるようにした。
これにより、相関の高い予測ベクトルを生成することができるので、動きベクトルの符号化効率を改善することができる。
<3.第2の実施の形態>
[多視点画像復号装置の構成例]
図16は、本開示を適用した画像処理装置としての多視点画像復号装置を構成するデコーダの一実施の形態の構成を表している。
多視点画像復号装置は、例えば、多視点の画像をそれぞれ復号するデコーダ211−1乃至211−Mにより構成されている。
デコーダ211−1は、エンコーダ11−1により符号化された符号化ストリームのうち、ノンベースビューの色画像に対応する符号化データをHEVC方式で復号し、ノンベースビューの色画像を生成する。
例えば、エンコーダ11−Mおよび11−Nにより符号化された符号化ストリームの対応する符号化データを復号し、フレーム単位の他のビュー(ベースビューを含む)の色画像を生成するデコーダ211−Mおよびデコーダ211−Nも、デコーダ211−1と同様に構成される。また、色画像だけでなく、色差情報画像も生成するデコーダも存在する場合、デコーダ211−1と同様に構成される。
図16の例において、デコーダ211−1は、蓄積バッファ221、可逆復号部222、逆量子化部223、逆直交変換部224、演算部225、インループフィルタ226、画面並び替えバッファ227、およびD/A(Digital/Analog)変換部228を含むように構成されている。また、デコーダ211−1は、DPB229−1、画面内予測部230、動き補償部231、予測画像選択部232、およびMVメモリ233−1を含むように構成されている。
蓄積バッファ221は、エンコーダ11−1からの符号化ストリームのうち、対応する符号化データを受け取る受け取り部でもある。蓄積バッファ221は、受け取った符号化データを一時記憶し、可逆復号部222に供給する。この符号化データには、ベースビューの色画像の符号化データ(量子化された残差係数)だけでなく、ヘッダ情報が含まれている。
可逆復号部222は、蓄積バッファ221からの符号化データを可変長復号することにより、量子化された残差係数やヘッダ情報を復元する。そして、可逆復号部222は、量子化値を、逆量子化部223に供給し、ヘッダ情報のうち対応するものを、画面内予測部230、および動き補償部231にそれぞれ供給する。
逆量子化部223は、可逆復号部222からの量子化された残差係数を、変換係数に逆量子化し、逆直交変換部224に供給する。
逆直交変換部224は、TU単位で逆量子化部223からの変換係数を逆直交変換し、ブロック(例えば、LCU)単位で、演算部225に供給する。
演算部225は、逆直交変換部224から供給されるブロックを復号対象の対象ブロックとして、その対象ブロックに対して、必要に応じて、予測画像選択部232から供給される予測画像を加算することで、復号を行う。演算部225は、その結果得られるデコード画像をインループフィルタ226に供給する。
インループフィルタ226は、例えば、デブロッキングフィルタで構成される。なお、例えば、HEVC方式が採用される場合、インループフィルタ226は、デブロッキングフィルタおよび適応オフセットフィルタで構成される。インループフィルタ226は、演算部225からのデコード画像に対して、例えば、図4のインループフィルタ31と同様のフィルタリングを行い、そのフィルタリング後のデコード画像を、画面並び替えバッファ227に供給する。
画面並び替えバッファ227は、インループフィルタ226からのデコード画像のピクチャを一時記憶して読み出すことで、ピクチャの並びを、元の並び(表示順)に並び替え、D/A変換部228に供給する。
D/A変換部228は、画面並び替えバッファ227からのピクチャをアナログ信号で出力する必要がある場合に、そのピクチャをD/A変換して出力する。
また、インループフィルタ226は、フィルタリング後のデコード画像のうちの、参照可能ピクチャであるIピクチャ、Pピクチャ、及び、Bsピクチャのデコード画像を、DPB229−1に供給する。なお、インループフィルタ226は、フィルタリングしていないデコード画像を、画面内予測部230に供給する。
ここで、DPB229−1は、インループフィルタ226からのデコード画像、すなわち、デコーダ211−1において符号化されてローカルデコードされたノンベースビューの色画像のピクチャを、時間的に後に行われる予測符号化(演算部225で予測画像の減算が行われる符号化)に用いる予測画像を生成するときに参照する参照ピクチャ(の候補)として記憶する。なお、DPB229−1は、他のビューのデコーダ211−Mに共用される。
画面内予測部230は、可逆復号部222からのヘッダ情報(イントラ予測モード)に基づき、対象ブロック(PU)が、イントラ予測(画面内予測)で生成された予測画像を用いて符号化されているかどうかを認識する。
対象ブロックが、イントラ予測で生成された予測画像を用いて符号化されている場合、画面内予測部230は、図4の画面内予測部33と同様に、インループフィルタ226から、対象ブロックを含むピクチャ(対象ピクチャ)のうちの、既に復号されている部分(デコード画像)を読み出す。そして、画面内予測部230は、インループフィルタ226から読み出した、対象ピクチャのうちのデコード画像の一部を、対象ブロックの予測画像として、予測画像選択部232に供給する。
動き補償部231は、可逆復号部222からのヘッダ情報に基づき、対象ブロックが、インター予測で生成された予測画像を用いて符号化されているかどうかを認識する。
対象ブロックが、インター予測で生成された予測画像を用いて符号化されている場合、動き補償部231は、可逆復号部222からのヘッダ情報に基づき、対象ブロックの最適予測モードを認識する。
動き補償部231は、最適予測モードがインター予測モードの場合、AMVPモードのベクトル予測処理を行い、最適予測モードがMerge/Skipモードの場合、M/Sモード(Merge/Skipモード)のベクトル予測処理を行う。
動き補償部231は、DPB229−1またはDPB229−Nに記憶されている候補ピクチャから、参照画像インデックスに対応する候補ピクチャ(Inter Pred.参照ピクチャやInter-view Pred.参照ピクチャ)を読み出す。
そして、動き補償部231は、AMVPモードの場合、可逆復号部222からのヘッダ情報のうち、予測ベクトルのインデックスに基づき、動きベクトルの復号に用いる予測ベクトルを生成する。
例えば、予測ベクトルのインデックスがSpatialの予測ベクトルを示す場合、動き補償部231は、同じピクチャにおいて隣接する空間隣接ブロックを用いて、予測ベクトルを生成する。予測ベクトルのインデックスがTemporalの予測ベクトルを示す場合、動き補償部231は、MVメモリ233−1から、同じビューの異なる時刻のピクチャにおいて対応または隣接する時間隣接ブロックの動きベクトルを読み出して、予測ベクトルを生成する。予測ベクトルのインデックスがインタービュー予測ベクトルを示す場合、動き補償部231は、異なるビューの動きベクトルが記憶されるMVメモリ233−Nから、同じ時刻の異なるビューにおける参照ブロック(図1のCor PU)の動きベクトルを読み出し、予測ベクトルを生成する。
動き補償部231は、可逆復号部222からのヘッダ情報のうちの動き情報と生成された予測ベクトルを加算することで、対象ブロックの予測画像の生成に用いられた動きを表す動きベクトルを認識する。そして、動き補償部231は、図4の動き予測・補償部34と同様に、その動きベクトルに従って、参照ピクチャの動き補償を行うことで、予測画像を生成する。
すなわち、動き補償部231は、候補ピクチャの、対象ブロックの位置から、その対象ブロックのずれベクトルに従って移動した(ずれた)位置のブロック(対応ブロック)を、予測画像として取得する。
動き補償部231は、M/Sモードの場合、可逆復号部222からのヘッダ情報のうち、マージインデックスに基づき、動きベクトルを生成する。
例えば、マージインデックスがSpatialの予測ベクトルを示す場合、動き補償部231は、同じピクチャにおいて隣接する空間隣接ブロックを用いて、動きベクトルを生成する。マージインデックスがTemporalの予測ベクトルを示す場合、動き補償部231は、MVメモリ233−1から、同じビューの異なる時刻のピクチャにおいて対応または隣接する時間隣接ブロックの動きベクトルを読み出して、動きベクトルを生成する。マージインデックスがインタービュー予測ベクトルを示す場合、動き補償部231は、異なるビューの動きベクトルが記憶されるMVメモリ233−Nから、同じ時刻の異なるビューにおける参照ブロック(図1のCor PU)の動きベクトルを読み出し、動きベクトルを生成する。
そして、動き補償部231は、図4の動き予測・補償部34と同様に、その動きベクトルに従って、参照ピクチャの動き補償を行うことで、予測画像を生成する。動き補償部231は、予測画像を、予測画像選択部232に供給する。
予測画像選択部232は、画面内予測部230から予測画像が供給される場合には、その予測画像を、動き補償部231から予測画像が供給される場合には、その予測画像を、それぞれ選択し、演算部225に供給する。
MVメモリ233−1は、動き補償部231において決定された動きベクトルを、時間的に後に行われる動きベクトルを符号化するための予測ベクトルを生成するときに参照する動きベクトル(の候補)として記憶する。なお、MVメモリ233−1は、他のビューのデコーダ211−Mに共用される。
なお、MVメモリ233−Nは、異なるビューのエンコーダ11−Nが有しており、デコーダ211−Nにおいて決定された動きベクトルを、時間的に後に行われる動きベクトルを符号化するための予測ベクトルを生成するときに参照する動きベクトル(の候補)として記憶している。MVメモリ233−Nは、動き補償部231や他のビューのデコーダ211−Mに共用される。
[動き補償部の構成]
図15は、図14の動き補償部の構成例を示すブロック図である。
図15の例において、動き補償部231は、参照インデックス自動生成部251、AMVPモードベクトル予測部252、およびM/Sモードベクトル予測部253を含むように構成されている。
予測モードがインター予測モードではない場合、可逆復号部222から、ヘッダ情報のうち、MergeモードまたはSkipモードとマージインデックスとが参照インデックス自動生成部251に供給される。
参照インデックス自動生成部251は、参照画像インデックスを自動生成し、可逆復号部222からのMergeモードまたはSkipモードとともに、生成した参照画像インデックス(Ref index)とマージインデックスを、M/Sモードベクトル予測部253に供給する。
予測モードがインター予測モードである場合、可逆復号部222から、ヘッダ情報のうち、インター予測モード(Inter mode)、参照画像インデックス(Ref index)、動きベクトルの差分情報(Mvd)、予測ベクトルのインデックス(Mv index)がAMVPモードベクトル予測部252に供給される。
AMVPモードベクトル予測部252は、インター予測モードに応じたDPB229−1またはDPB229−Nに記憶されている候補ピクチャから、参照画像インデックスに対応する候補ピクチャ(Inter Pred.参照ピクチャまたはInter-view Pred.参照ピクチャ)を読み出す。
AMVPモードベクトル予測部252は、予測ベクトルのインデックスに基づき、動きベクトルの復号に用いる予測ベクトルを生成する。
例えば、予測ベクトルのインデックスがSpatialの予測ベクトルを示す場合、AMVPモードベクトル予測部252は、同じピクチャにおいて隣接する空間隣接ブロックを用いて、予測ベクトルを生成する。予測ベクトルのインデックスがTemporalの予測ベクトルを示す場合、AMVPモードベクトル予測部252は、MVメモリ233−1から、同じビューの異なる時刻のピクチャにおいて対応または隣接する時間隣接ブロックの動きベクトルを読み出して、予測ベクトルを生成する。予測ベクトルのインデックスがインタービュー予測ベクトルを示す場合、AMVPモードベクトル予測部252は、異なるビューの動きベクトルが記憶されるMVメモリ233−Nから、同じ時刻の異なるビューにおける参照ブロック(図1のCor PU)の動きベクトルを読み出し、予測ベクトルを生成する。
AMVPモードベクトル予測部252は、動きベクトル差分情報と生成された予測ベクトルを加算することで、対象ブロックの予測画像の生成に用いられた動きを表す動きベクトルを認識する。そして、AMVPモードベクトル予測部252は、その動きベクトルに従って、参照ピクチャの動き補償を行うことで、予測画像(Pred. image)を生成する。生成された予測画像は、予測画像選択部232に供給される。
M/Sモードベクトル予測部253は、DPB229−1またはDPB229−Nに記憶されている候補ピクチャから、参照画像インデックスに対応する候補ピクチャ(Inter Pred.参照ピクチャ)を読み出す。
M/Sモードベクトル予測部253は、可逆復号部222からのヘッダ情報のうち、マージインデックスに基づき、動きベクトルを生成する。
例えば、マージインデックスがSpatialの予測ベクトルを示す場合、M/Sモードベクトル予測部253は、同じピクチャにおいて隣接する空間隣接ブロックを用いて、動きベクトルを生成する。マージインデックスがTemporalの予測ベクトルを示す場合、M/Sモードベクトル予測部253は、MVメモリ233−1から、同じビューの異なる時刻のピクチャにおいて、動きベクトルにより対応づけられる対応ブロックの動きベクトルを読み出して、動きベクトルを生成する。マージインデックスがインタービュー予測ベクトルを示す場合、M/Sモードベクトル予測部253は、異なるビューの動きベクトルが記憶されるMVメモリ233−Nから、同じ時刻の異なるビューにおける参照ブロック(図1のCor PU)の動きベクトルを読み出し、動きベクトルを生成する。生成された動きベクトルの情報は、後述する図16のSpatial MVメモリ262に一時保存される。
M/Sモードベクトル予測部253は、その動きベクトルに従って、参照ピクチャの動き補償を行うことで、予測画像を生成する。生成された予測画像は、予測画像選択部232に供給される。
[AMVPモードベクトル予測部の構成]
図16は、図15のAMVPモードベクトル予測部の構成例を示すブロック図である。
図16の例において、AMVPモードベクトル予測部252は、予測画像生成部261、Spatial MVメモリ262、加算部263、予測ベクトル生成部264、予測ベクトル生成部265、スイッチ266、およびPOC変換部267を含むように構成されている。
予測画像生成部261は、加算部263により動きベクトル差分情報に予測ベクトルが加算されることで生成された動きベクトル(MV)を、Spatial MVメモリ262を介して入力する。予測画像生成部261は、可逆復号部222からの参照画像インデックス(Ref index)に対応する参照画像を、DPB229−1またはDPB229−Nから読み出し、動きベクトルに従って、読み出した参照画像の動き補償を行うことで、予測画像(Pred. image)を生成する。生成された予測画像は、予測画像選択部232に供給される。
Spatial MVメモリ262は、加算部263により生成された動きベクトル(MV)を、時間的に後に行われる予測ベクトルの生成に用いられる候補として記憶する。Spatial MVメモリ262においては、動きベクトルが求められたブロックの単位(PU)毎に記憶される。なお、M/Sモードの動きベクトルも、Spatial MVメモリ262に記憶される。
加算部263は、予測ベクトル生成部264または予測ベクトル生成部265により生成された予測ベクトルをスイッチ266を介して入力し、入力した予測ベクトルを、可逆復号部222から供給される動きベクトルの差分情報に加算することで、動きベクトルを生成する。加算部263は、生成された動きベクトルを、Spatial MVメモリ262に記憶させる。
予測ベクトル生成部264は、可逆復号部222から供給される予測ベクトルのインデックスが示す動きベクトルを、Spatial MVメモリ262から読み出して、Spatialの予測ベクトルを生成する。予測ベクトル生成部264は、生成した予測ベクトルを、スイッチ266を介して、加算部263に供給する。
予測ベクトル生成部265は、可逆復号部222から供給される予測ベクトルのインデックスが示す動きベクトルを、MVメモリ233−1またはMVメモリ233−Nから読み出して、Non- Spatial (すなわち、TMVPまたはIVMP)の予測ベクトルを生成する。予測ベクトル生成部265は、生成した予測ベクトルを、スイッチ266を介して、加算部263に供給する。
すなわち、予測ベクトルのインデックスがTemporalの予測ベクトルを示す場合、予測ベクトル生成部265は、MVメモリ233−1から、同じビューの異なる時刻のピクチャにおいて、動きベクトルにより対応づけられる対応ブロックの動きベクトルを読み出して、予測ベクトルを生成する。その際、POC変換部267からのPOC情報に基づいて、対象ブロックの参照POC(Ref POC)と、対応ブロックの参照POC(Ref POC)が異なる場合、対応ブロックの動きベクトルに対してスケーリングが行われる。すなわち、スケーリングされた動きベクトルが、予測ベクトルとされる。
予測ベクトルのインデックスがインタービュー予測ベクトルを示す場合、AMVPモードベクトル予測部252は、異なるビューの動きベクトルが記憶されるMVメモリ233−Nから、同じ時刻の異なるビューにおける参照ブロック(図1のCor PU)の動きベクトルを読み出し、予測ベクトルを生成する。その際、POC変換部267からのPOC情報に基づいて、対象ブロックの参照POC(Ref POC)と、参照ブロックの参照POC(Ref POC)が異なる場合、参照ブロックの動きベクトルに対してスケーリングが行われる。すなわち、スケーリングされた動きベクトルが、予測ベクトルとされる。
POC変換部267は、可逆復号部222からの対象ブロックの参照画像インデックス(Ref index)を、POCに変換し、変換したPOCを示すPOC情報を予測ベクトル生成部265に供給する。
[Non-Spatial予測ベクトル生成部の構成例]
図17は、図16のNon-Spatialの予測ベクトル生成部の構成例を示すブロック図である。
図16の例において、予測ベクトル生成部265は、ビュー内参照ベクトル生成部281、およびビュー間参照ベクトル生成部282を含むように構成されている。
予測ベクトルのインデックスがTemporal(TMVP)の予測ベクトルを示す場合、可逆復号部222から、予測ベクトルのインデックス(MV index)がビュー内参照ベクトル生成部281に供給される。
ビュー内参照ベクトル生成部281は、MVメモリ233−1から、同じビューの異なる時刻のピクチャにおいて、予測ベクトルのインデックスが指し示す、すなわち、動きベクトルにより対応づけられる対応ブロックの動きベクトルを読み出して、予測ベクトルを生成する。
なお、その際、POC変換部267からのPOC情報に基づいて、対象ブロックの参照POC(Ref POC)と、対応ブロックの参照POC(Ref POC)が異なる場合、対応ブロックの動きベクトルに対してスケーリングが行われる。すなわち、スケーリングされた動きベクトルが、予測ベクトルとされる。
ビュー内参照ベクトル生成部281は、生成した予測ベクトルをスイッチ266を介して、加算部263に供給する。
予測ベクトルのインデックスがインタービュー予測(IVMP)の予測ベクトルを示す場合、可逆復号部222から、予測ベクトルのインデックス(MV index)がビュー間参照ベクトル生成部282に供給される。
ビュー間参照ベクトル生成部282は、IVMPによる予測ベクトルを生成する。ビュー間参照ベクトル生成部282は、Spatial MVメモリ262から、対象ブロックに隣接する隣接ブロックの動きベクトルから、視差ベクトルを探索し、探索した視差ベクトルに基づいて、同じ時刻の異なるビューにおける参照ブロックを求める。そして、ビュー間参照ベクトル生成部282は、異なるビューの動きベクトルが記憶されるMVメモリ233−Nから、予測ベクトルのインデックスが指し示す、参照ブロックの動きベクトルを読み出して、予測ベクトルを生成する。
なお、その際、POC変換部267からのPOC情報に基づいて、対象ブロックの参照POC(Ref POC)と、参照ブロックの参照POC(Ref POC)が異なる場合、参照ブロックの動きベクトルに対してスケーリングが行われる。すなわち、スケーリングされた動きベクトルが、予測ベクトルとされる。
ビュー間参照ベクトル生成部282は、生成した予測ベクトルをスイッチ266を介して、加算部263に供給する。
[デコーダの動作]
次に、図18のフローチャートを参照して、図14のデコーダ211−1の復号処理について説明する。なお、他のビューの画像の復号処理を行うデコーダ211−Nおよび211−Mも同様の復号処理を行う。
蓄積バッファ221は、受け取ったノンベースビューの色画像に対応する符号化データを一時記憶し、可逆復号部222に供給する。
可逆復号部222は、ステップS211において、蓄積バッファ221からの符号化データの量子化された残差係数を復号する。
逆量子化部223は、ステップS212において、可逆復号部222からの量子化された残差係数を、変換係数に逆量子化し、逆直交変換部224に供給する。
逆直交変換部224は、ステップS213において、逆量子化部223からの変換係数を逆直交変換し、演算部225に供給する。
ステップS214において、画面内予測部230は、可逆復号部222からのヘッダ情報(イントラ予測モード)に基づき、対象ブロック(PU)に対する予測が、画面内予測であるか否かを判定する。ステップS214において、画面内予測であると判定された場合、処理は、ステップS215に進む。ステップS215において、画面内予測部230は、画面内予測を行う。
ステップS214において、画面内予測ではないと判定された場合、処理は、ステップS216に進む。ステップS216において、動き補償部231は、動き補償処理を行う。この動き補償処理は、図19を参照して後述される。
ステップS216の処理により、動き予測が動き予測モードの場合、予測ベクトルインデックスに応じた予測ベクトルが生成され、動きベクトルが生成される。また、参照画像インデックスに応じた参照画像が読み出され、生成された動きベクトルに従って、動き補償がなされ、予測画像が生成される。
M/Sモードの場合、マージインデックスに応じた動きベクトルが生成され、参照画像が読み出され、生成された動きベクトルに従って、動き補償がなされ、予測画像が生成される。生成された予測画像は、予測画像選択部232に供給される。
ステップS217において、動き補償部231(加算部263)は、生成された動きベクトルを、Spatial MVメモリ262に保存する。
予測画像選択部232は、画面内予測部230から予測画像が供給される場合には、その予測画像を、動き補償部231から予測画像が供給される場合には、その予測画像を、それぞれ選択し、演算部225に供給する。
ステップS218において、演算部225は、逆直交変換部224から供給されるブロック(差分)を、予測画像選択部232から供給される予測画像に加算する。演算部225は、その結果得られるデコード画像をインループフィルタ226に供給する。
インループフィルタ226は、ステップS219において、LCUの終端であるか否かを判定する。ステップS219において、LCUの終端ではないと判定された場合、処理は、ステップS211に戻り、それ以降の処理が繰り返される。
ステップS219において、LCUの終端であると判定された場合、処理は、ステップS220に進む。ステップS220において、インループフィルタ226は、演算部225からのデコード画像をフィルタリングすることにより、デコード画像に生じたブロック歪を除去(低減)する。
ステップS221において、インループフィルタ226は、フィルタリング後のデコード画像を、DPB229−1に保存する。
ステップS222において、動き補償部231は、ステップS217で保存された動きベクトルを圧縮する。すなわち、Spatial MVメモリ262においては、図6のSpatial MVメモリ64と同様に、例えば、4×4ブロック毎に1つの動きベクトルが保存されているが、それを、16×16ブロック毎に1つの動きベクトルが保存されるように動きベクトルが圧縮される。例えば、16×16ブロックにおける左上のブロックの動きベクトルが選択される。
そして、動き補償部231は、ステップS223において、圧縮した動きベクトルを、MVメモリ233−1に保存する。
ステップS224において、他のビューのデコーダ211−Mは、他のビューのピクチャを復号する。なお、この復号処理は、図18の復号処理と基本的に同様の処理である。
以上のようにして、復号処理が行われる。
[動き補償処理の例]
次に、図19のフローチャートを参照して、図18のステップS216の動き補償処理を説明する。
可逆復号部222は、ステップS241において、ヘッダ情報のうち、動き予測モードを復号し、ステップS242において、インター予測モードであるか否かを判定する。
ステップS242において、インター予測モードと判定された場合、可逆復号部222は、インター予測モード(Inter mode)、参照画像インデックス(Ref index)、動きベクトルの差分情報(Mvd)、予測ベクトルのインデックス(Mv index)を、AMVPモードベクトル予測部252に供給し、処理は、ステップS243に進む。
ステップS243において、AMVPモードベクトル予測部252は、AMVPモードのベクトル予測を行う。このAMVPモードのベクトル予測処理は、図20のフローチャートを参照して後述される。
ステップS243の処理により、予測ベクトルのインデックスに応じて予測ベクトルが生成され、動きベクトル差分情報と生成された予測ベクトルを加算することで、対象ブロックの動きベクトルが生成され、生成された動きベクトルに従って、予測画像が生成される。生成された予測画像は、予測画像選択部232に供給される。
一方、ステップS242において、インター予測モードではないと判定された場合、可逆復号部222は、MergeモードまたはSkipモードとマージインデックスとを、参照インデックス自動生成部251に供給し、処理は、ステップS244に進む。
ステップS244において、参照インデックス自動生成部251は、参照画像インデックスを自動生成し、可逆復号部222からのMergeモードまたはSkipモードとともに、生成した参照画像インデックス(Ref index)とマージインデックスを、M/Sモードベクトル予測部253に供給する。
ステップS245において、M/Sモードベクトル予測部253は、MergeモードまたはSkipモードのベクトル予測処理を行う。すなわち、M/Sモードベクトル予測部253は、DPB229−1またはDPB229−Nに記憶されている候補ピクチャから、参照画像インデックスに対応する候補ピクチャ(Inter Pred.参照ピクチャ)を読み出す。
M/Sモードベクトル予測部253は、可逆復号部222からのヘッダ情報のうち、マージインデックスに基づき、動きベクトルを生成する。
例えば、マージインデックスがSpatialの予測ベクトルを示す場合、M/Sモードベクトル予測部253は、同じピクチャにおいて隣接する空間隣接ブロックを用いて、動きベクトルを生成する。マージインデックスがTemporalの予測ベクトルを示す場合、M/Sモードベクトル予測部253は、MVメモリ233−1から、同じビューの異なる時刻のピクチャにおいて、動きベクトルにより対応づけられる対応ブロックの動きベクトルを読み出して、動きベクトルを生成する。マージインデックスがインタービュー予測ベクトルを示す場合、M/Sモードベクトル予測部253は、異なるビューの動きベクトルが記憶されるMVメモリ233−Nから、同じ時刻の異なるビューにおける参照ブロック(図1のCor PU)の動きベクトルを読み出し、動きベクトルを生成する。
M/Sモードベクトル予測部253は、その動きベクトルに従って、参照ピクチャの動き補償を行うことで、予測画像を生成する。生成された予測画像は、予測画像選択部232に供給される。
[AMVPモードのベクトル予測処理]
次に、図20のフローチャートを参照して、AMVPモードのベクトル予測処理について説明する。
ステップS261において、可逆復号部222は、ヘッダ情報のうちの動きベクトル差分情報(MVd)を復号し、復号した動きベクトル差分情報を、加算部263に供給する。
ステップS262において、可逆復号部222は、ヘッダ情報のうちの参照画像インデックスを復号し、復号した参照画像インデックス(Ref index)を、予測画像生成部261およびPOC変換部267に供給する。
ステップS263において、可逆復号部222は、ヘッダ情報のうちの予測ベクトルのインデックスを復号する。
ステップS264において、可逆復号部222は、ステップS263において復号された予測ベクトルインデックスを参照し、予測ベクトルは、Spatialであるか否かを判定する。
ステップS264において、予測ベクトルは、Spatialであると判定された場合、可逆復号部222は、復号した予測ベクトルインデックスを予測ベクトル生成部264に供給し、処理は、ステップS265に進む。
ステップS265において、予測ベクトル生成部264は、Spatialの予測ベクトルを生成する。すなわち、予測ベクトル生成部264は、可逆復号部222から供給される予測ベクトルのインデックスが示す動きベクトルを、Spatial MVメモリ262から読み出して、Spatialの予測ベクトルを生成する。予測ベクトル生成部264は、生成した予測ベクトルを、スイッチ266を介して、加算部263に供給する。
ステップS264において、予測ベクトルは、Spatialではないと判定された場合、処理は、ステップS266に進む。
ステップS266において、予測ベクトル生成部265は、Non-Spatialの予測ベクトルを生成する。このNon-Spatialの予測ベクトルの生成処理は、図21を参照して後述される。
ステップS266の処理により、可逆復号部222から予測ベクトルのインデックスが供給され、予測ベクトルのインデックスが示す動きベクトルが、MVメモリ233−1またはMVメモリ233−Nから読み出され、Non- Spatial (すなわち、TMVPまたはIVMP)の予測ベクトルが生成される。生成した予測ベクトルは、スイッチ266を介して、加算部263に供給する。
ステップS267において、加算部263は、動きベクトルを生成する。すなわち、加算部263には、予測ベクトル生成部264または予測ベクトル生成部265により生成された予測ベクトルがスイッチ266を介して入力される。加算部263は、入力した予測ベクトルを、可逆復号部222から供給される動きベクトルの差分情報に加算することで、動きベクトルを生成する。
ステップS268において、加算部263は、生成された動きベクトルを、Spatial MVメモリ262に蓄積する。なお、このとき、生成された動きベクトルは、Spatial MVメモリ262を介して、予測画像生成部261にも供給される。
ステップS269において、予測画像生成部261は、予測画像(Pred. image)を生成する。すなわち、予測画像生成部261は、可逆復号部222からの参照画像インデックス(Ref index)に対応する参照画像を、DPB229−1またはDPB229−Nから読み出す。予測画像生成部261は、Spatial MVメモリ262からの動きベクトルに従って、読み出した参照画像の動き補償を行うことで、予測画像を生成する。
[Non-Spatialの予測ベクトルの生成処理]
次に、図21のフローチャートを参照して、図20のステップS266におけるNon-Spatialの予測ベクトルの生成処理について説明する。
可逆復号部222は、ステップS281において、可逆復号部222は、図20のステップS263において復号された予測ベクトルインデックスを参照し、予測ベクトルが、temporalであるか否かを判定する。ステップS281において、temporalであると判定された場合、可逆復号部222は、予測ベクトルのインデックスを、ビュー内参照ベクトル生成部281に供給し、処理は、ステップS282に進む。
ステップS282において、ビュー内参照ベクトル生成部281は、TMVPによる予測ベクトルを生成する。すなわち、ビュー内参照ベクトル生成部281は、MVメモリ233−1から、同じビューの異なる時刻のピクチャにおいて、予測ベクトルのインデックスが指し示す、すなわち、動きベクトルにより対応づけられる対応ブロックの動きベクトルを読み出して、予測ベクトルを生成する。生成された予測ベクトルは、スイッチ266を介して加算部263に供給される。
ステップS281において、temporalではないと判定された場合、可逆復号部222は、予測ベクトルのインデックスを、ビュー間参照ベクトル生成部282に供給し、処理は、ステップS283に進む。
ステップS283乃至S285において、ビュー間参照ベクトル生成部282は、IVMPによる予測ベクトルを生成する。
すなわち、ステップS283において、ビュー間参照ベクトル生成部282は、Spatial MVメモリ262から、対象ブロック(PU)に隣接する隣接ブロックの動きベクトルから、視差ベクトルを探索し、探索した視差ベクトルに基づいて、視差を算出する。
ステップS284において、ビュー間参照ベクトル生成部282は、異なるビューにおいて、ステップS283で求めた視差分だけシフトした位置のPUを参照PUとして選択する。
ステップS285において、ビュー間参照ベクトル生成部282は、異なるビューの動きベクトルが記憶されるMVメモリ233−Nから、選択した参照PUの動きベクトルを読み出して、選択した参照PUの動きベクトルから予測ベクトルを生成する。この予測ベクトル生成処理は、図12および図13を参照して上述された予測ベクトル生成処理と基本的に同じ処理を行うため繰り返しになるので、その説明は省略される。
すなわち、ステップS285においては、POC変換部267からのPOC情報に基づいて、対象ブロックの参照POC(Ref POC)と、参照ブロックの参照POC(Ref POC)が同じであるか、異なるかが判定され、異なると判定された場合、参照ブロックの動きベクトルに対してスケーリングが行われる。すなわち、Ref POCが異なると判定された場合、参照ブロックの動きベクトルがスケーリングされて、予測ベクトルが生成される。
ステップS285の処理により、生成されたIVMPの予測ベクトルは、その予測ベクトルを示すMVインデックスとともに、スイッチ67を介して、ベクトルコスト判定部63および減算部68に供給される。
以上のように、対象ブロックの参照POC(Ref POC)と異なるビューにおける参照ブロックの参照POC(Ref POC)とが異なる場合にも、参照ブロックの動きベクトルをスケーリングして、スケーリングされた動きベクトルを予測ベクトルとすることができる。すなわち、異なるビューの参照ブロックの動きベクトルも、予測ベクトルの候補とすることができる。したがって、相関の高い動きベクトルをスケーリングして用いることができるので、符号化効率改善にかなり効果的である。
なお、上記説明においては、AMVPモードの場合について詳しく説明してきたが、本技術は、Mergeモードの場合にも適用することができる。なお、Mergeモードの場合は、TMVPの場合と同様に、Ref indexを0に固定し、ベースビューの参照PUのRef POCとカレントPUのRef POCが違うときは、参照PUの動きベクトルがスケーリングして、予測ベクトルとされる。
この場合、TMVPとIVMPとの処理回路を共通化することができる。
また、上記説明においては、対象ブロックのインター動きベクトルの予測ベクトルを求めるにあたり、対象ブロックとは異なるビューにおいて、対象ブロックの隣接ブロックの視差ベクトルが示す視差だけシフトさせた参照ブロックのインター動きベクトルをPOCに応じて時間方向にスケーリングして用いる例を説明した。
これに対して、本技術は、インタービュー動きベクトルを予測ベクトルとして用いる場合にも適用することができる。すなわち、ある時刻の対象ブロックに対応する異なる時刻の対応ブロックの動きベクトルが、対象ブロックと異なるビューを指すインタービュー動きベクトルであった場合、対応ブロックの動きベクトルをview idに応じてスケーリングして、対象ブロックの予測ベクトルとして用いることができる。
以上においては、符号化方式としてHEVC方式をベースに用いるようにした。ただし、本開示はこれに限らず、その他の符号化方式/復号方式を適用することができる。
なお、本開示は、例えば、HEVC方式等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本開示は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
さらに、本技術は、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択して使用する、例えばMPEG DASH等のようなHTTPストリーミングにも適用することができる。
<4.第3の実施の形態>
[コンピュータの構成例]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図22は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータ800において、CPU(Central Processing Unit)801,ROM(Read Only Memory)802,RAM(Random Access Memory)803は、バス804により相互に接続されている。
バス804には、さらに、入出力インタフェース810が接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、及びドライブ815が接続されている。
入力部811は、キーボード、マウス、マイクロホンなどよりなる。出力部812は、ディスプレイ、スピーカなどよりなる。記憶部813は、ハードディスクや不揮発性のメモリなどよりなる。通信部814は、ネットワークインタフェースなどよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア821を駆動する。
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810及びバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ800(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部814で受信し、記憶部813にインストールすることができる。その他、プログラムは、ROM802や記憶部813に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<5.応用例>
[第1の応用例:テレビジョン受像機]
図23は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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の応用例:携帯電話機]
図24は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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の応用例:記録再生装置]
図25は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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の応用例:撮像装置]
図26は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送手段としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、多視点画像における動きベクトルの符号化または復号の符号化効率を改善することができる。
<6.スケーラブル符号化の応用例>
[第1のシステム]
次に、スケーラブル符号化(階層符号化)されたスケーラブル符号化データの具体的な利用例について説明する。スケーラブル符号化は、例えば、図27に示される例のように、伝送するデータの選択のために利用される。
図27に示されるデータ伝送システム1000において、配信サーバ1002は、スケーラブル符号化データ記憶部1001に記憶されているスケーラブル符号化データを読み出し、ネットワーク1003を介して、パーソナルコンピュータ1004、AV機器1005、タブレットデバイス1006、および携帯電話機1007等の端末装置に配信する。
その際、配信サーバ1002は、端末装置の能力や通信環境等に応じて、適切な品質の符号化データを選択して伝送する。配信サーバ1002が不要に高品質なデータを伝送しても、端末装置において高画質な画像を得られるとは限らず、遅延やオーバフローの発生要因となる恐れがある。また、不要に通信帯域を占有したり、端末装置の負荷を不要に増大させたりしてしまう恐れもある。逆に、配信サーバ1002が不要に低品質なデータを伝送しても、端末装置において十分な画質の画像を得ることができない恐れがある。そのため、配信サーバ1002は、スケーラブル符号化データ記憶部1001に記憶されているスケーラブル符号化データを、適宜、端末装置の能力や通信環境等に対して適切な品質の符号化データとして読み出し、伝送する。
例えば、スケーラブル符号化データ記憶部1001は、スケーラブルに符号化されたスケーラブル符号化データ(BL+EL)1011を記憶するとする。このスケーラブル符号化データ(BL+EL)1011は、ベースレイヤとエンハンスメントレイヤの両方を含む符号化データであり、復号することにより、ベースレイヤの画像およびエンハンスメントレイヤの画像の両方を得ることができるデータである。
配信サーバ1002は、データを伝送する端末装置の能力や通信環境等に応じて、適切なレイヤを選択し、そのレイヤのデータを読み出す。例えば、配信サーバ1002は、処理能力の高いパーソナルコンピュータ1004やタブレットデバイス1006に対しては、高品質なスケーラブル符号化データ(BL+EL)1011をスケーラブル符号化データ記憶部1001から読み出し、そのまま伝送する。これに対して、例えば、配信サーバ1002は、処理能力の低いAV機器1005や携帯電話機1007に対しては、スケーラブル符号化データ(BL+EL)1011からベースレイヤのデータを抽出し、スケーラブル符号化データ(BL+EL)1011と同じコンテンツのデータであるが、スケーラブル符号化データ(BL+EL)1011よりも低品質なスケーラブル符号化データ(BL)1012として伝送する。
このようにスケーラブル符号化データを用いることにより、データ量を容易に調整することができるので、遅延やオーバフローの発生を抑制したり、端末装置や通信媒体の負荷の不要な増大を抑制したりすることができる。また、スケーラブル符号化データ(BL+EL)1011は、レイヤ間の冗長性が低減されているので、各レイヤの符号化データを個別のデータとする場合よりもそのデータ量を低減させることができる。したがって、スケーラブル符号化データ記憶部1001の記憶領域をより効率よく使用することができる。
なお、パーソナルコンピュータ1004乃至携帯電話機1007のように、端末装置には様々な装置を適用することができるので、端末装置のハードウエアの性能は、装置によって異なる。また、端末装置が実行するアプリケーションも様々であるので、そのソフトウエアの能力も様々である。さらに、通信媒体となるネットワーク1003も、例えばインターネットやLAN(Local Area Network)等、有線若しくは無線、またはその両方を含むあらゆる通信回線網を適用することができ、そのデータ伝送能力は様々である。さらに、他の通信等によっても変化する恐れがある。
そこで、配信サーバ1002は、データ伝送を開始する前に、データの伝送先となる端末装置と通信を行い、端末装置のハードウエア性能や、端末装置が実行するアプリケーション(ソフトウエア)の性能等といった端末装置の能力に関する情報、並びに、ネットワーク1003の利用可能帯域幅等の通信環境に関する情報を得るようにしてもよい。そして、配信サーバ1002が、ここで得た情報を基に、適切なレイヤを選択するようにしてもよい。
なお、レイヤの抽出は、端末装置において行うようにしてもよい。例えば、パーソナルコンピュータ1004が、伝送されたスケーラブル符号化データ(BL+EL)1011を復号し、ベースレイヤの画像を表示しても良いし、エンハンスメントレイヤの画像を表示しても良い。また、例えば、パーソナルコンピュータ1004が、伝送されたスケーラブル符号化データ(BL+EL)1011から、ベースレイヤのスケーラブル符号化データ(BL)1012を抽出し、記憶したり、他の装置に転送したり、復号してベースレイヤの画像を表示したりするようにしてもよい。
もちろん、スケーラブル符号化データ記憶部1001、配信サーバ1002、ネットワーク1003、および端末装置の数はいずれも任意である。また、以上においては、配信サーバ1002がデータを端末装置に伝送する例について説明したが、利用例はこれに限定されない。データ伝送システム1000は、スケーラブル符号化された符号化データを端末装置に伝送する際、端末装置の能力や通信環境等に応じて、適切なレイヤを選択して伝送するシステムであれば、任意のシステムに適用することができる。
そして、図27のようなデータ伝送システム1000においても、図1乃至図21を参照して上述した本技術を適用することにより、図1乃至図21を参照して上述した効果と同様の効果を得ることができる。
[第2のシステム]
また、スケーラブル符号化は、例えば、図28に示される例のように、複数の通信媒体を介する伝送のために利用される。
図28に示されるデータ伝送システム1100において、放送局1101は、地上波放送1111により、ベースレイヤのスケーラブル符号化データ(BL)1121を伝送する。また、放送局1101は、有線若しくは無線またはその両方の通信網よりなる任意のネットワーク1112を介して、エンハンスメントレイヤのスケーラブル符号化データ(EL)1122を伝送する(例えばパケット化して伝送する)。
端末装置1102は、放送局1101が放送する地上波放送1111の受信機能を有し、この地上波放送1111を介して伝送されるベースレイヤのスケーラブル符号化データ(BL)1121を受け取る。また、端末装置1102は、ネットワーク1112を介した通信を行う通信機能をさらに有し、このネットワーク1112を介して伝送されるエンハンスメントレイヤのスケーラブル符号化データ(EL)1122を受け取る。
端末装置1102は、例えばユーザ指示等に応じて、地上波放送1111を介して取得したベースレイヤのスケーラブル符号化データ(BL)1121を、復号してベースレイヤの画像を得たり、記憶したり、他の装置に伝送したりする。
また、端末装置1102は、例えばユーザ指示等に応じて、地上波放送1111を介して取得したベースレイヤのスケーラブル符号化データ(BL)1121と、ネットワーク1112を介して取得したエンハンスメントレイヤのスケーラブル符号化データ(EL)1122とを合成して、スケーラブル符号化データ(BL+EL)を得たり、それを復号してエンハンスメントレイヤの画像を得たり、記憶したり、他の装置に伝送したりする。
以上のように、スケーラブル符号化データは、例えばレイヤ毎に異なる通信媒体を介して伝送させることができる。したがって、負荷を分散させることができ、遅延やオーバフローの発生を抑制することができる。
また、状況に応じて、伝送に使用する通信媒体を、レイヤ毎に選択することができるようにしてもよい。例えば、データ量が比較的多いベースレイヤのスケーラブル符号化データ(BL)1121を帯域幅の広い通信媒体を介して伝送させ、データ量が比較的少ないエンハンスメントレイヤのスケーラブル符号化データ(EL)1122を帯域幅の狭い通信媒体を介して伝送させるようにしてもよい。また、例えば、エンハンスメントレイヤのスケーラブル符号化データ(EL)1122を伝送する通信媒体を、ネットワーク1112とするか、地上波放送1111とするかを、ネットワーク1112の利用可能帯域幅に応じて切り替えるようにしてもよい。もちろん、任意のレイヤのデータについて同様である。
このように制御することにより、データ伝送における負荷の増大を、より抑制することができる。
もちろん、レイヤ数は任意であり、伝送に利用する通信媒体の数も任意である。また、データ配信先となる端末装置1102の数も任意である。さらに、以上においては、放送局1101からの放送を例に説明したが、利用例はこれに限定されない。データ伝送システム1100は、スケーラブル符号化された符号化データを、レイヤを単位として複数に分割し、複数の回線を介して伝送するシステムであれば、任意のシステムに適用することができる。
そして、図28のようなデータ伝送システム1100においても、図1乃至図21を参照して上述した本技術を適用することにより、図1乃至図21を参照して上述した効果と同様の効果を得ることができる。
[第3のシステム]
また、スケーラブル符号化は、例えば、図29に示される例のように、符号化データの記憶に利用される。
図29に示される撮像システム1200において、撮像装置1201は、被写体1211を撮像して得られた画像データをスケーラブル符号化し、スケーラブル符号化データ(BL+EL)1221として、スケーラブル符号化データ記憶装置1202に供給する。
スケーラブル符号化データ記憶装置1202は、撮像装置1201から供給されるスケーラブル符号化データ(BL+EL)1221を、状況に応じた品質で記憶する。例えば、通常時の場合、スケーラブル符号化データ記憶装置1202は、スケーラブル符号化データ(BL+EL)1221からベースレイヤのデータを抽出し、低品質でデータ量の少ないベースレイヤのスケーラブル符号化データ(BL)1222として記憶する。これに対して、例えば、注目時の場合、スケーラブル符号化データ記憶装置1202は、高品質でデータ量の多いスケーラブル符号化データ(BL+EL)1221のまま記憶する。
このようにすることにより、スケーラブル符号化データ記憶装置1202は、必要な場合のみ、画像を高画質に保存することができるので、画質劣化による画像の価値の低減を抑制しながら、データ量の増大を抑制することができ、記憶領域の利用効率を向上させることができる。
例えば、撮像装置1201が監視カメラであるとする。撮像画像に監視対象(例えば侵入者)が写っていない場合(通常時の場合)、撮像画像の内容は重要でない可能性が高いので、データ量の低減が優先され、その画像データ(スケーラブル符号化データ)は、低品質に記憶される。これに対して、撮像画像に監視対象が被写体1211として写っている場合(注目時の場合)、その撮像画像の内容は重要である可能性が高いので、画質が優先され、その画像データ(スケーラブル符号化データ)は、高品質に記憶される。
なお、通常時であるか注目時であるかは、例えば、スケーラブル符号化データ記憶装置1202が、画像を解析することにより判定しても良い。また、撮像装置1201が判定し、その判定結果をスケーラブル符号化データ記憶装置1202に伝送するようにしてもよい。
なお、通常時であるか注目時であるかの判定基準は任意であり、判定基準とする画像の内容は任意である。もちろん、画像の内容以外の条件を判定基準とすることもできる。例えば、収録した音声の大きさや波形等に応じて切り替えるようにしてもよいし、所定の時間毎に切り替えるようにしてもよいし、ユーザ指示等の外部からの指示によって切り替えるようにしてもよい。
また、以上においては、通常時と注目時の2つの状態を切り替える例を説明したが、状態の数は任意であり、例えば、通常時、やや注目時、注目時、非常に注目時等のように、3つ以上の状態を切り替えるようにしてもよい。ただし、この切り替える状態の上限数は、スケーラブル符号化データのレイヤ数に依存する。
また、撮像装置1201が、スケーラブル符号化のレイヤ数を、状態に応じて決定するようにしてもよい。例えば、通常時の場合、撮像装置1201が、低品質でデータ量の少ないベースレイヤのスケーラブル符号化データ(BL)1222を生成し、スケーラブル符号化データ記憶装置1202に供給するようにしてもよい。また、例えば、注目時の場合、撮像装置1201が、高品質でデータ量の多いベースレイヤのスケーラブル符号化データ(BL+EL)1221を生成し、スケーラブル符号化データ記憶装置1202に供給するようにしてもよい。
以上においては、監視カメラを例に説明したが、この撮像システム1200の用途は任意であり、監視カメラに限定されない。
そして、図29のような撮像システム1200においても、図1乃至図21を参照して上述した本技術を適用することにより、図1乃至図21を参照して上述した効果と同様の効果を得ることができる。
<7.第6の実施の形態>
[実施のその他の例]
以上において本技術を適用する装置やシステム等の例を説明したが、本技術は、これに限らず、このような装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
[ビデオセット]
本技術をセットとして実施する場合の例について、図30を参照して説明する。図30は、本技術を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図30に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図30に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図30の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図30のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方若しくは両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信に関する処理を行うプロセッサ(若しくはモジュール)である。例えば、ブロードバンドモデム1333は、送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。例えば、ブロードバンドモデム1333は、ビデオプロセッサ1332が処理する画像データや画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報をデジタル変調・復調することができる。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図30において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図30に示されるように、フロントエンドモジュール1314は、例えば、アンテナ部1351、フィルタ1352、および増幅部1353を有する。
アンテナ部1351は、無線信号を送受信するアンテナおよびその周辺の構成を有する。アンテナ部1351は、増幅部1353から供給される信号を無線信号として送信し、受信した無線信号を電気信号(RF信号)としてフィルタ1352に供給する。フィルタ1352は、アンテナ部1351を介して受信されたRF信号に対してフィルタ処理等を行い、処理後のRF信号をRFモジュール1334に供給する。増幅部1353は、RFモジュール1334から供給されるRF信号を増幅し、アンテナ部1351に供給する。
コネクティビティ1321は、外部との接続に関する機能を有するモジュールである。コネクティビティ1321の物理構成は、任意である。例えば、コネクティビティ1321は、ブロードバンドモデム1333が対応する通信規格以外の通信機能を有する構成や、外部入出力端子等を有する。
例えば、コネクティビティ1321が、Bluetooth(登録商標)、IEEE 802.11(例えばWi-Fi(Wireless Fidelity、登録商標))、NFC(Near Field Communication)、IrDA(InfraRed Data Association)等の無線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した信号を送受信するアンテナ等を有するようにしてもよい。また、例えば、コネクティビティ1321が、USB(Universal Serial Bus)、HDMI(登録商標)(High-Definition Multimedia Interface)等の有線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した端子を有するようにしてもよい。さらに、例えば、コネクティビティ1321が、アナログ入出力端子等のその他のデータ(信号)伝送機能等を有するようにしてもよい。
なお、コネクティビティ1321が、データ(信号)の伝送先のデバイスを含むようにしてもよい。例えば、コネクティビティ1321が、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等の記録媒体に対してデータの読み出しや書き込みを行うドライブ(リムーバブルメディアのドライブだけでなく、ハードディスク、SSD(Solid State Drive)、NAS(Network Attached Storage)等も含む)を有するようにしてもよい。また、コネクティビティ1321が、画像や音声の出力デバイス(モニタやスピーカ等)を有するようにしてもよい。
カメラ1322は、被写体を撮像し、被写体の画像データを得る機能を有するモジュールである。カメラ1322の撮像により得られた画像データは、例えば、ビデオプロセッサ1332に供給されて符号化される。
センサ1323は、例えば、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、イメージセンサ、回転センサ、角度センサ、角速度センサ、速度センサ、加速度センサ、傾斜センサ、磁気識別センサ、衝撃センサ、温度センサ等、任意のセンサ機能を有するモジュールである。センサ1323により検出されたデータは、例えば、アプリケーションプロセッサ1331に供給されてアプリケーション等により利用される。
以上においてモジュールとして説明した構成をプロセッサとして実現するようにしてもよいし、逆にプロセッサとして説明した構成をモジュールとして実現するようにしてもよい。
以上のような構成のビデオセット1300において、後述するようにビデオプロセッサ1332に本技術を適用することができる。したがって、ビデオセット1300は、本技術を適用したセットとして実施することができる。
[ビデオプロセッサの構成例]
図31は、本技術を適用したビデオプロセッサ1332(図30)の概略的な構成の一例を示している。
図31の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図31に示されるように、ビデオプロセッサ1332は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、フレームメモリ1405、およびメモリ制御部1406を有する。また、ビデオプロセッサ1332は、エンコード・デコードエンジン1407、ビデオES(Elementary Stream)バッファ1408Aおよび1408B、並びに、オーディオESバッファ1409Aおよび1409Bを有する。さらに、ビデオプロセッサ1332は、オーディオエンコーダ1410、オーディオデコーダ1411、多重化部(MUX(Multiplexer))1412、逆多重化部(DMUX(Demultiplexer))1413、およびストリームバッファ1414を有する。
ビデオ入力処理部1401は、例えばコネクティビティ1321(図30)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部1402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部1403は、画像データに対して、ビデオ出力処理部1404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部1402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部1404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ1321(図30)等に出力する。
フレームメモリ1405は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、およびエンコード・デコードエンジン1407によって共用される画像データ用のメモリである。フレームメモリ1405は、例えばDRAM等の半導体メモリとして実現される。
メモリ制御部1406は、エンコード・デコードエンジン1407からの同期信号を受けて、アクセス管理テーブル1406Aに書き込まれたフレームメモリ1405へのアクセススケジュールに従ってフレームメモリ1405に対する書き込み・読み出しのアクセスを制御する。アクセス管理テーブル1406Aは、エンコード・デコードエンジン1407、第1画像拡大縮小部1402、第2画像拡大縮小部1403等で実行される処理に応じて、メモリ制御部1406により更新される。
エンコード・デコードエンジン1407は、画像データのエンコード処理、並びに、画像データが符号化されたデータであるビデオストリームのデコード処理を行う。例えば、エンコード・デコードエンジン1407は、フレームメモリ1405から読み出した画像データを符号化し、ビデオストリームとしてビデオESバッファ1408Aに順次書き込む。また、例えば、ビデオESバッファ1408Bからビデオストリームを順次読み出して復号し、画像データとしてフレームメモリ1405に順次書き込む。エンコード・デコードエンジン1407は、これらの符号化や復号において、フレームメモリ1405を作業領域として使用する。また、エンコード・デコードエンジン1407は、例えばマクロブロック毎の処理を開始するタイミングで、メモリ制御部1406に対して同期信号を出力する。
ビデオESバッファ1408Aは、エンコード・デコードエンジン1407によって生成されたビデオストリームをバッファリングして、多重化部(MUX)1412に供給する。ビデオESバッファ1408Bは、逆多重化部(DMUX)1413から供給されたビデオストリームをバッファリングして、エンコード・デコードエンジン1407に供給する。
オーディオESバッファ1409Aは、オーディオエンコーダ1410によって生成されたオーディオストリームをバッファリングして、多重化部(MUX)1412に供給する。オーディオESバッファ1409Bは、逆多重化部(DMUX)1413から供給されたオーディオストリームをバッファリングして、オーディオデコーダ1411に供給する。
オーディオエンコーダ1410は、例えばコネクティビティ1321(図30)等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ1410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ1409Aに順次書き込む。オーディオデコーダ1411は、オーディオESバッファ1409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ1321(図30)等に供給する。
多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化する。この多重化の方法(すなわち、多重化により生成されるビットストリームのフォーマット)は任意である。また、この多重化の際に、多重化部(MUX)1412は、所定のヘッダ情報等をビットストリームに付加することもできる。つまり、多重化部(MUX)1412は、多重化によりストリームのフォーマットを変換することができる。例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームに変換する。また、例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、記録用のファイルフォーマットのデータ(ファイルデータ)に変換する。
逆多重化部(DMUX)1413は、多重化部(MUX)1412による多重化に対応する方法で、ビデオストリームとオーディオストリームとが多重化されたビットストリームを逆多重化する。つまり、逆多重化部(DMUX)1413は、ストリームバッファ1414から読み出されたビットストリームからビデオストリームとオーディオストリームとを抽出する(ビデオストリームとオーディオストリームとを分離する)。つまり、逆多重化部(DMUX)1413は、逆多重化によりストリームのフォーマットを変換(多重化部(MUX)1412による変換の逆変換)することができる。例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図30)から供給されたトランスポートストリームを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321により(図30)各種記録媒体から読み出されたファイルデータを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
ストリームバッファ1414は、ビットストリームをバッファリングする。例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図30)等に供給する。
また、例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321(図30)等に供給し、各種記録媒体に記録させる。
さらに、ストリームバッファ1414は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図30)を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
また、ストリームバッファ1414は、例えばコネクティビティ1321(図30)等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
次に、このような構成のビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321(図30)等からビデオプロセッサ1332に入力されたビデオ信号は、ビデオ入力処理部1401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ1405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部1402または第2画像拡大縮小部1403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ1405に書き込まれる。この画像データは、エンコード・デコードエンジン1407によって符号化され、ビデオストリームとしてビデオESバッファ1408Aに書き込まれる。
また、コネクティビティ1321(図30)等からビデオプロセッサ1332に入力されたオーディオ信号は、オーディオエンコーダ1410によって符号化され、オーディオストリームとして、オーディオESバッファ1409Aに書き込まれる。
ビデオESバッファ1408Aのビデオストリームと、オーディオESバッファ1409Aのオーディオストリームは、多重化部(MUX)1412に読み出されて多重化され、トランスポートストリーム若しくはファイルデータ等に変換される。多重化部(MUX)1412により生成されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図30)等を介して外部ネットワークに出力される。また、多重化部(MUX)1412により生成されたファイルデータは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321(図30)等に出力され、各種記録媒体に記録される。
また、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図30)等を介して外部ネットワークからビデオプロセッサ1332に入力されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。また、例えばコネクティビティ1321(図30)等において各種記録媒体から読み出され、ビデオプロセッサ1332に入力されたファイルデータは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。つまり、ビデオプロセッサ1332に入力されたトランスポートストリームまたはファイルデータは、逆多重化部(DMUX)1413によりビデオストリームとオーディオストリームとに分離される。
オーディオストリームは、オーディオESバッファ1409Bを介してオーディオデコーダ1411に供給され、復号されてオーディオ信号が再生される。また、ビデオストリームは、ビデオESバッファ1408Bに書き込まれた後、エンコード・デコードエンジン1407により順次読み出されて復号されてフレームメモリ1405に書き込まれる。復号された画像データは、第2画像拡大縮小部1403によって拡大縮小処理されて、フレームメモリ1405に書き込まれる。そして、復号された画像データは、ビデオ出力処理部1404に読み出されて、4:2:2Y/Cb/Cr方式等の所定の方式にフォーマット変換され、さらにアナログ信号に変換されて、ビデオ信号が再生出力される。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、エンコード・デコードエンジン1407に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、エンコード・デコードエンジン1407が、第1の実施の形態に係る画像符号化装置(図4)や第2の実施の形態に係る画像復号装置(図14)の機能を有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図21を参照して上述した効果と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
[ビデオプロセッサの他の構成例]
図32は、本技術を適用したビデオプロセッサ1332(図30)の概略的な構成の他の例を示している。図32の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能とを有する。
より具体的には、図32に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図32に示されるように、制御部1511は、例えば、メインCPU1531、サブCPU1532、およびシステムコントローラ1533を有する。メインCPU1531は、ビデオプロセッサ1332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU1531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU1532は、メインCPU1531の補助的な役割を果たす。例えば、サブCPU1532は、メインCPU1531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ1533は、メインCPU1531およびサブCPU1532が実行するプログラムを指定する等、メインCPU1531およびサブCPU1532の動作を制御する。
ディスプレイインタフェース1512は、制御部1511の制御の下、画像データを例えばコネクティビティ1321(図30)等に出力する。例えば、ディスプレイインタフェース1512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ1321(図30)のモニタ装置等に出力する。
ディスプレイエンジン1513は、制御部1511の制御の下、画像データに対して、その画像を表示させるモニタ装置等のハードウエアスペックに合わせるように、フォーマット変換、サイズ変換、色域変換等の各種変換処理を行う。
画像処理エンジン1514は、制御部1511の制御の下、画像データに対して、例えば画質改善のためのフィルタ処理等、所定の画像処理を施す。
内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516により共用される、ビデオプロセッサ1332の内部に設けられたメモリである。内部メモリ1515は、例えば、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516の間で行われるデータの授受に利用される。例えば、内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516から供給されるデータを格納し、必要に応じて(例えば、要求に応じて)、そのデータを、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516に供給する。この内部メモリ1515は、どのような記憶デバイスにより実現するようにしてもよいが、一般的にブロック単位の画像データやパラメータ等といった小容量のデータの格納に利用することが多いので、例えばSRAM(Static Random Access Memory)のような比較的(例えば外部メモリ1312と比較して)小容量だが応答速度が高速な半導体メモリにより実現するのが望ましい。
コーデックエンジン1516は、画像データの符号化や復号に関する処理を行う。このコーデックエンジン1516が対応する符号化・復号の方式は任意であり、その数は1つであってもよいし、複数であってもよい。例えば、コーデックエンジン1516は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化若しくは符号化データの復号を行うようにしてもよい。
図32に示される例において、コーデックエンジン1516は、コーデックに関する処理の機能ブロックとして、例えば、MPEG-2 Video1541、AVC/H.2641542、HEVC/H.2651543、HEVC/H.265(Scalable)1544、HEVC/H.265(Multi-view)1545、およびMPEG-DASH1551を有する。
MPEG-2 Video1541は、画像データをMPEG-2方式で符号化したり復号したりする機能ブロックである。AVC/H.2641542は、画像データをAVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.2651543は、画像データをHEVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265(Scalable)1544は、画像データをHEVC方式でスケーラブル符号化したりスケーラブル復号したりする機能ブロックである。HEVC/H.265(Multi-view)1545は、画像データをHEVC方式で多視点符号化したり多視点復号したりする機能ブロックである。
MPEG-DASH1551は、画像データをMPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP)方式で送受信する機能ブロックである。MPEG-DASHは、HTTP(HyperText Transfer Protocol)を使ってビデオのストリーミングを行う技術であり、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択し伝送することを特徴の1つとする。MPEG-DASH1551は、規格に準拠するストリームの生成やそのストリームの伝送制御等を行い、画像データの符号化・復号については、上述したMPEG-2 Video1541乃至HEVC/H.265(Multi-view)1545を利用する。
メモリインタフェース1517は、外部メモリ1312用のインタフェースである。画像処理エンジン1514やコーデックエンジン1516から供給されるデータは、メモリインタフェース1517を介して外部メモリ1312に供給される。また、外部メモリ1312から読み出されたデータは、メモリインタフェース1517を介してビデオプロセッサ1332(画像処理エンジン1514若しくはコーデックエンジン1516)に供給される。
多重化・逆多重化部(MUX DMUX)1518は、符号化データのビットストリーム、画像データ、ビデオ信号等、画像に関する各種データの多重化や逆多重化を行う。この多重化・逆多重化の方法は任意である。例えば、多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、複数のデータを1つにまとめるだけでなく、所定のヘッダ情報等をそのデータに付加することもできる。また、逆多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、1つのデータを複数に分割するだけでなく、分割した各データに所定のヘッダ情報等を付加することもできる。つまり、多重化・逆多重化部(MUX DMUX)1518は、多重化・逆多重化によりデータのフォーマットを変換することができる。例えば、多重化・逆多重化部(MUX DMUX)1518は、ビットストリームを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームや、記録用のファイルフォーマットのデータ(ファイルデータ)に変換することができる。もちろん、逆多重化によりその逆変換も可能である。
ネットワークインタフェース1519は、例えばブロードバンドモデム1333やコネクティビティ1321(いずれも図30)等向けのインタフェースである。ビデオインタフェース1520は、例えばコネクティビティ1321やカメラ1322(いずれも図30)等向けのインタフェースである。
次に、このようなビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321やブロードバンドモデム1333(いずれも図30)等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース1519を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、例えば、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図30)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてファイルデータに変換され、ビデオインタフェース1520を介して例えばコネクティビティ1321(図30)等に出力され、各種記録媒体に記録される。
さらに、例えば、コネクティビティ1321(図30)等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース1520を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図30)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース1519を介して例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図30)等に供給され図示せぬ他の装置に伝送される。
なお、ビデオプロセッサ1332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ1515や外部メモリ1312を利用して行われる。また、パワーマネージメントモジュール1313は、例えば制御部1511への電力供給を制御する。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、コーデックエンジン1516に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、コーデックエンジン1516が、第1の実施の形態に係る画像符号化装置(図4)や第2の実施の形態に係る画像復号装置(図14)を実現する機能ブロックを有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図21を参照して上述した効果と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
[装置への適用例]
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図23)、携帯電話機920(図24)、記録再生装置940(図25)、撮像装置960(図26)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図21を参照して上述した効果と同様の効果を得ることができる。
また、ビデオセット1300は、例えば、図27のデータ伝送システム1000におけるパーソナルコンピュータ1004、AV機器1005、タブレットデバイス1006、および携帯電話機1007等の端末装置、図28のデータ伝送システム1100における放送局1101および端末装置1102、並びに、図29の撮像システム1200における撮像装置1201およびスケーラブル符号化データ記憶装置1202等にも組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図21を参照して上述した効果と同様の効果を得ることができる。さらに、図33のコンテンツ再生システムや、図39の無線通信システムにおける各装置にも組み込むことができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を、本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本技術を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図21を参照して上述した効果と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図23)、携帯電話機920(図24)、記録再生装置940(図25)、撮像装置960(図26)、図27のデータ伝送システム1000におけるパーソナルコンピュータ1004、AV機器1005、タブレットデバイス1006、および携帯電話機1007等の端末装置、図28のデータ伝送システム1100における放送局1101および端末装置1102、並びに、図29の撮像システム1200における撮像装置1201およびスケーラブル符号化データ記憶装置1202等に組み込むことができる。さらに、図33のコンテンツ再生システムや、図39の無線通信システムにおける各装置にも組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図21を参照して上述した効果と同様の効果を得ることができる。
なお、本技術は、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択して使用する、例えば、後述するMPEG DASH等のようなHTTPストリーミングのコンテンツ再生システムやWi-Fi規格の無線通信システムにも適用することができる。
<8.MPEG-DASHの応用例>
[コンテンツ再生システムの概要]
まず、図33乃至図35を参照し、本技術を適用可能なコンテンツ再生システムについて概略的に説明する。
以下では、まず、このような各実施形態において共通する基本構成について図33および図34を参照して説明する。
図33は、コンテンツ再生システムの構成を示した説明図である。図33に示したように、コンテンツ再生システムは、コンテンツサーバ1610、1611と、ネットワーク1612と、コンテンツ再生装置1620(クライアント装置)と、を備える。
コンテンツサーバ1610、1611とコンテンツ再生装置1620は、ネットワーク1612を介して接続されている。このネットワーク1612は、ネットワーク1612に接続されている装置から送信される情報の有線、または無線の伝送路である。
例えば、ネットワーク1612は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク1612は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。
コンテンツサーバ1610は、コンテンツデータを符号化し、符号化データおよび符号化データのメタ情報を含むデータファイルを生成して記憶する。なお、コンテンツサーバ1610がMP4形式のデータファイルを生成する場合、符号化データは「mdat」に該当し、メタ情報は「moov」に該当する。
また、コンテンツデータは、音楽、講演およびラジオ番組などの音楽データや、映画、テレビジョン番組、ビデオプログラム、写真、文書、絵画および図表などの映像データや、ゲームおよびソフトウエアなどであってもよい。
ここで、コンテンツサーバ1610は、同一コンテンツに関し、異なるビットレートで複数のデータファイルを生成する。またコンテンツサーバ1611は、コンテンツ再生装置1620からのコンテンツの再生要求に対して、コンテンツサーバ1610のURLの情報に、コンテンツ再生装置1620で当該URLに付加させるパラメータの情報を含めてコンテンツ再生装置1620に送信する。以下、図34を参照して当該事項について具体的に説明する。
図34は、図33のコンテンツ再生システムにおけるデータの流れを示した説明図である。コンテンツサーバ1610は、同一のコンテンツデータを異なるビットレートで符号化し、図34に示したように例えば2MbpsのファイルA、1.5MbpsのファイルB、1MbpsのファイルCを生成する。相対的に、ファイルAはハイビットレートであり、ファイルBは標準ビットレートであり、ファイルCはロービットレートである。
また、図34に示したように、各ファイルの符号化データは複数のセグメントに区分されている。例えば、ファイル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秒である。
コンテンツサーバ1610は、このような複数のセグメントから構成されるファイルA乃至ファイルCを生成すると、ファイルA乃至ファイルCを記憶する。そして、コンテンツサーバ1610は、図34に示したように、異なるファイルを構成するセグメントをコンテンツ再生装置1620に順次に送信し、コンテンツ再生装置1620は、受信したセグメントをストリーミング再生する。
ここで、本実施形態によるコンテンツサーバ1610は、各符号化データのビットレート情報およびアクセス情報を含むプレイリストファイル(以下、MPD:Media Presentation Description)をコンテンツ再生装置1620に送信し、コンテンツ再生装置1620は、MPDに基づき、複数のビットレートのうちのいずれかのビットレートを選択し、選択したビットレートに対応するセグメントの送信をコンテンツサーバ1610に要求する。
図33では、1つのコンテンツサーバ1610のみが図示されているが、本開示は係る例に限定されないことは言うまでもない。
図35は、MPDの具体例を示した説明図である。図35に示したように、MPDには、異なるビットレート(BANDWIDTH)を有する複数の符号化データに関するアクセス情報が含まれる。例えば、図35に示したMPDは、256Kbps、1.024Mbps、1.384Mbps、1.536Mbps、2.048Mbpsの各々の符号化データが存在することを示す共に、各符号化データに関するアクセス情報を含む。コンテンツ再生装置1620は、かかるMPDに基づき、ストリーミング再生する符号化データのビットレートを動的に変更することが可能である。
なお、図33にはコンテンツ再生装置1620の一例として携帯端末を示しているが、コンテンツ再生装置1620はかかる例に限定されない。例えば、コンテンツ再生装置1620は、PC(Personal Computer)、家庭用映像処理装置(DVDレコーダ、ビデオデッキなど)、PDA(Personal Digital Assistants)、家庭用ゲーム機器、家電機器などの情報処理装置であってもよい。また、コンテンツ再生装置1620は、携帯電話、PHS(Personal Handyphone System)、携帯用音楽再生装置、携帯用映像処理装置、携帯用ゲーム機器などの情報処理装置であってもよい。
[コンテンツサーバ1610の構成]
以上、図33乃至図35を参照し、コンテンツ再生システムの概要を説明した。続いて、図36を参照し、コンテンツサーバ1610の構成を説明する。
図36は、コンテンツサーバ1610の構成を示した機能ブロック図である。図36に示したように、コンテンツサーバ1610は、ファイル生成部1631と、記憶部1632と、通信部1633と、を備える。
ファイル生成部1631は、コンテンツデータを符号化するエンコーダ1641を備え、同一のコンテンツでビットレートが異なる複数の符号化データ、および上述したMPDを生成する。例えば、ファイル生成部1631は、256Kbps、1.024Mbps、1.384Mbps、1.536Mbps、2.048Mbpsの各々の符号化データを生成した場合、図35に示したようなMPDを生成する。
記憶部1632は、ファイル生成部1631により生成されたビットレートが異なる複数の符号化データおよびMPDを記憶する。この記憶部1632は、不揮発性メモリ、磁気ディスク、光ディスク、および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(登録商標))などがあげられる。
通信部1633は、コンテンツ再生装置1620とのインタフェースであって、ネットワーク1612を介してコンテンツ再生装置1620と通信する。より詳細には、通信部1633は、HTTPに従ってコンテンツ再生装置1620と通信するHTTPサーバとしての機能を有する。例えば、通信部1633は、MPDをコンテンツ再生装置1620に送信し、HTTPに従ってコンテンツ再生装置1620からMPDに基づいて要求された符号化データを記憶部1632から抽出し、HTTPレスポンスとしてコンテンツ再生装置1620に符号化データを送信する。
[コンテンツ再生装置1620の構成]
以上、本実施形態によるコンテンツサーバ1610の構成を説明した。続いて、図37を参照し、コンテンツ再生装置1620の構成を説明する。
図37は、コンテンツ再生装置1620の構成を示した機能ブロック図である。図37に示したように、コンテンツ再生装置1620は、通信部1651と、記憶部1652と、再生部1653と、選択部1654と、現在地取得部1656と、を備える。
通信部1651は、コンテンツサーバ1610とのインタフェースであって、コンテンツサーバ1610に対してデータを要求し、コンテンツサーバ1610からデータを取得する。より詳細には、通信部1651は、HTTPに従ってコンテンツ再生装置1620と通信するHTTPクライアントとしての機能を有する。例えば、通信部1651は、HTTP Rangeを利用することにより、コンテンツサーバ1610からMPDや符号化データのセグメントを選択的に取得することができる。
記憶部1652は、コンテンツの再生に関する種々の情報を記憶する。例えば、通信部1651によりコンテンツサーバ1610から取得されるセグメントを順次にバッファリングする。記憶部1652にバッファリングされた符号化データのセグメントは、FIFO(First In First Out)で再生部1653へ順次に供給される。
また記憶部1652は、後述のコンテンツサーバ1611から要求された、MPDに記述されているコンテンツのURLへのパラメータの付加指示に基づき、通信部1651でURLにパラメータを付加して、そのURLへアクセスするための定義を記憶する。
再生部1653は、記憶部1652から供給されるセグメントを順次に再生する。具体的には、再生部1653は、セグメントのデコード、DA変換、およびレンダリングなどを行う。
選択部1654は、MPDに含まれるいずれのビットレートに対応する符号化データのセグメントを取得するかを同一コンテンツ内で順次に選択する。例えば、選択部1654がネットワーク1612の帯域に応じてセグメント「A1」、「B2」、「A3」を順次に選択すると、図34に示したように、通信部1651がコンテンツサーバ1610からセグメント「A1」、「B2」、「A3」を順次に取得する。
現在地取得部1656は、コンテンツ再生装置1620の現在の位置を取得するものであり、例えばGPS(Global Positioning System)受信機などの現在地を取得するモジュールで構成されていても良い。また現在地取得部1656は、無線ネットワークを使用してコンテンツ再生装置1620の現在の位置を取得するものであってもよい。
[コンテンツサーバ1611の構成]
図38は、コンテンツサーバ1611の構成例を示す説明図である。図38に示したように、コンテンツサーバ1611は、記憶部1671と、通信部1672と、を備える。
記憶部1671は、MPDのURLの情報を記憶する。MPDのURLの情報は、コンテンツの再生を要求するコンテンツ再生装置1620からの求めに応じ、コンテンツサーバ1611からコンテンツ再生装置1620へ送信される。また記憶部1671は、コンテンツ再生装置1620へのMPDのURLの情報を提供する際に、当該MPDに記述されているURLにコンテンツ再生装置1620でパラメータを付加させる際の定義情報を記憶する。
通信部1672は、コンテンツ再生装置1620とのインタフェースであって、ネットワーク1612を介してコンテンツ再生装置1620と通信する。すなわち通信部1672は、コンテンツの再生を要求するコンテンツ再生装置1620から、MPDのURLの情報の要求を受信し、コンテンツ再生装置1620へMPDのURLの情報を送信する。通信部1672から送信されるMPDのURLには、コンテンツ再生装置1620でパラメータを付加させるための情報が含まれる。
コンテンツ再生装置1620でMPDのURLに付加させるパラメータについては、コンテンツサーバ1611およびコンテンツ再生装置1620で共有する定義情報で様々に設定することが出来る。一例を挙げれば、コンテンツ再生装置1620の現在位置、コンテンツ再生装置1620を使用するユーザのユーザID、コンテンツ再生装置1620のメモリサイズ、コンテンツ再生装置1620のストレージの容量などの情報を、コンテンツ再生装置1620でMPDのURLに付加させることが出来る。
以上のような構成のコンテンツ再生システムにおいて、図1乃至図21を参照して上述したような本技術を適用することにより、図1乃至図21を参照して上述した効果と同様の効果を得ることができる。
すなわち、コンテンツサーバ1610のエンコーダ1641は、上述した実施形態に係る画像符号化装置(図4)の機能を有する。また、コンテンツ再生装置1620の再生部1653は、上述した実施形態に係る画像復号装置(図14)の機能を有する。それにより、多視点画像における動きベクトルの符号化または復号の符号化効率を改善することができる。
また、コンテンツ再生システムにおいて、本技術により符号化されたデータを送受信することにより、多視点画像における動きベクトルの符号化または復号の符号化効率を改善することができる。
<9.Wi-Fi規格の無線通信システムの応用例>
[無線通信装置の基本動作例]
本技術を適用可能な無線通信システムにおける無線通信装置の基本動作例について説明する。
最初に、P2P(Peer to Peer)接続を確立して特定のアプリケーションを動作させるまでの無線パケット送受信がなされる。
次に、第2層で接続する前に、使用する特定のアプリケーションを指定してからP2P接続を確立して特定のアプリケーションを動作させるまでの無線パケット送受信がなされる。その後、第2層での接続後に、特定のアプリケーションを起動する場合の無線パケット送受信がなされる。
[特定のアプリケーション動作開始時における通信例]
図39および図40は、上述した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のやり取り等においてもパケット交換が必要となる。しかしながら、図39および図40では、これらのパケット交換についての図示を省略し、2回目以降の接続についてのみを示す。
なお、図39および図40では、第1無線通信装置1701および第2無線通信装置1702間における通信処理例を示すが、他の無線通信装置間における通信処理についても同様である。
最初に、第1無線通信装置1701および第2無線通信装置1702間においてDevice Discoveryが行われる(1711)。例えば、第1無線通信装置1701は、Probe request(応答要求信号)を送信し、このProbe requestに対するProbe response(応答信号)を第2無線通信装置1702から受信する。これにより、第1無線通信装置1701および第2無線通信装置1702は、互いの存在を発見することができる。また、Device Discoveryにより、相手のデバイス名や種類(TV、PC、スマートフォン等)を取得することができる。
続いて、第1無線通信装置1701および第2無線通信装置1702間においてService Discoveryが行われる(1712)。例えば、第1無線通信装置1701は、Device Discoveryで発見した第2無線通信装置1702が対応しているサービスを問い合わせるService Discovery Queryを送信する。そして、第1無線通信装置1701は、Service Discovery Responseを第2無線通信装置1702から受信することにより、第2無線通信装置1702が対応しているサービスを取得する。すなわち、Service Discoveryにより、相手が実行可能なサービス等を取得することができる。相手が実行可能なサービスは、例えば、service、protocol(DLNA(Digital Living Network Alliance) DMR(Digital Media Renderer)等)である。
続いて、ユーザにより接続相手の選択操作(接続相手選択操作)が行われる(1713)。この接続相手選択操作は、第1無線通信装置1701および第2無線通信装置1702の何れか一方のみに発生することもある。例えば、第1無線通信装置1701の表示部に接続相手選択画面が表示され、この接続相手選択画面において接続相手として第2無線通信装置1702がユーザ操作により選択される。
ユーザにより接続相手選択操作が行われると(1713)、第1無線通信装置1701および第2無線通信装置1702間においてGroup Owner Negotiationが行われる(1714)。図39および図40では、Group Owner Negotiationの結果により、第1無線通信装置1701がグループオーナー(Group Owner)1715になり、第2無線通信装置1702がクライアント(Client)1716になる例を示す。
続いて、第1無線通信装置1701および第2無線通信装置1702間において、各処理(1717乃至1720)が行われることにより、ダイレクト接続が確立される。すなわち、Association(L2(第2層) link確立)(1717)、Secure link確立(1718)が順次行われる。また、IP Address Assignment(1719)、SSDP(Simple Service Discovery Protocol)等によるL3上でのL4 setup(1720)が順次行われる。なお、L2(layer2)は、第2層(データリンク層)を意味し、L3(layer3)は、第3層(ネットワーク層)を意味し、L4(layer4)は、第4層(トランスポート層)を意味する。
続いて、ユーザにより特定のアプリケーションの指定または起動操作(アプリ指定・起動操作)が行われる(1721)。このアプリ指定・起動操作は、第1無線通信装置1701および第2無線通信装置1702の何れか一方のみに発生することもある。例えば、第1無線通信装置1701の表示部にアプリ指定・起動操作画面が表示され、このアプリ指定・起動操作画面において特定のアプリケーションがユーザ操作により選択される。
ユーザによりアプリ指定・起動操作が行われると(1721)、このアプリ指定・起動操作に対応する特定のアプリケーションが第1無線通信装置1701および第2無線通信装置1702間において実行される(1722)。
ここで、Wi-Fi Direct規格以前の仕様(IEEE802.11で標準化された仕様)の範囲内で、AP(Access Point)−STA(Station)間の接続を行う場合を想定する。この場合には、第2層で接続する前(IEEE802.11用語ではassociation前)には、どのようなデバイスと繋ごうとしているのかを事前に知ることができなかった。
これに対して、図39および図40に示すように、Wi-Fi Directでは、Device discoveryやService Discovery(option)において、接続候補相手を探す際に、接続相手の情報を取得することができる。この接続相手の情報は、例えば、基本的なデバイスのタイプや、対応している特定のアプリケーション等である。そして、その取得された接続相手の情報に基づいて、ユーザに接続相手を選択させることができる。
この仕組みを拡張して、第2層で接続する前に特定のアプリケーションを指定して、接続相手を選択し、この選択後に、自動的に特定のアプリケーションを起動させる無線通信システムを実現することも可能である。このような場合の接続に至るシーケンスの一例を、図42に示す。また、この通信処理において送受信されるフレームフォーマット(frame format)の構成例を図41に示す。
[フレームフォーマットの構成例]
図41は、本技術の基礎となる各装置による通信処理において送受信されるフレームフォーマット(frame format)の構成例を模式的に示す図である。すなわち、図41には、第2層での接続を確立するためのMAC frameの構成例を示す。具体的には、図42に示すシーケンスを実現するためのAssociation Request/Response(1787)のフレームフォーマットの一例である。
なお、Frame Control(1751)からSequence Control(1756)までは、MACヘッダである。また、Association Requestを送信する際には、Frame Control(1751)において、B3B2="0b00"、かつ、B7B6B5B4="0b0000"が設定される。また、Association Responseをencapsulateする際には、Frame Control(1751)において、B3B2="0b00"、かつ、B7B6B5B4="0b0001"が設定される。なお、「0b00」は、2進法で「00」であることを示し、「0b0000」は、2進法で「0000」であることを示し、「0b0001」は、2進法で「0001」であることを示す。
ここで、図41に示すMAC frameは、基本的には、IEEE802.11-2007仕様書section7.2.3.4節と7.2.3.5節に記載のAssociation Request/Responseframe formatである。ただし、IEEE802.11仕様書内で定義されているInformation Element(以下、IEと省略)だけでなく、独自に拡張したIEを含めている点が異なる。
また、Vendor Specific IE(1760)であることを示すため、IE Type(Information Element ID(1761))には、10進数で127がセットされる。この場合、IEEE802.11−2007仕様7.3.2.26節により、Lengthフィールド(1762)と、OUIフィールド(1763)が続き、この後にvendor specific content(1764)が配置される。
Vendor specific content(1764)の内容としては、最初にvendor specific IEのtypeを示すフィールド(IE type(1765))を設ける。そして、この後に、複数のsubelement(1766)を格納することができる構成とすることが考えられる。
subelement(1766)の内容として、使われるべき特定のアプリケーションの名称(1767)や、その特定のアプリケーション動作時のデバイスの役割(1768)を含めることが考えられる。また、特定のアプリケーション、または、その制御のために使われるポート番号等の情報(L4セットアップのための情報)(1769)や、特定のアプリケーション内でのCapabilityに関する情報(Capability情報)を含めることが考えられる。ここで、Capability情報は、例えば、指定する特定のアプリケーションがDLNAの場合に、音声送出/再生に対応している、映像送出/再生に対応している等を特定するための情報である。
以上のような構成の無線通信システムにおいて、図1乃至図21を参照して上述したような本技術を適用することにより、図1乃至図21を参照して上述した効果と同様の効果を得ることができる。すなわち、多視点画像における動きベクトルの符号化または復号の符号化効率を改善することができる。また、上述した無線通信システムにおいて、本技術により符号化されたデータを送受信することにより、多視点画像における動きベクトルの符号化または復号の符号化効率を改善することができる。
なお、本明細書では、デブロッキングフィルタのパラメータや適応オフセットフィルタのパラメータ等の各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) ノンベースビューの画像におけるカレントブロックの周辺から求まる視差分だけ、異なるビューの画像において前記カレントブロックの位置からシフトさせた位置のブロックである参照ブロックの動きベクトルを、前記カレントブロックの参照先と前記参照ブロックの参照先とに応じてスケーリングして、前記カレントブロックの動きベクトルの符号化に用いる予測ベクトルを生成する予測ベクトル生成部と、
前記予測ベクトル生成部により生成された予測ベクトルを用いて、前記カレントブロックの動きベクトルを符号化する動きベクトル符号化部と、
画像を、階層構造を有する単位で符号化して、符号化ストリームを生成する符号化部と
を備える画像処理装置。
(2) 前記予測ベクトル生成部は、前記参照ブロックの動きベクトルを、前記カレントブロックの参照画像POCと前記参照ブロックの参照画像POCに応じてスケーリングして、前記予測ベクトルの候補として用いて予測ベクトルを生成する
前記(1)に記載の画像処理装置。
(3) 前記動きベクトル符号化部により符号化された前記カレントブロックの動きベクトルと、前記符号化部により生成された符号化ストリームとを伝送する伝送部を
さらに備える前記(1)または(2)に記載の画像処理装置。
(4) 画像処理装置が、
ノンベースビューの画像におけるカレントブロックの周辺から求まる視差分だけ、異なるビューの画像において前記カレントブロックの位置からシフトさせた位置のブロックである参照ブロックの動きベクトルを、前記カレントブロックの参照先と前記参照ブロックの参照先とに応じてスケーリングして、前記カレントブロックの動きベクトルの符号化に用いる予測ベクトルを生成し、
生成された予測ベクトルを用いて、前記カレントブロックの動きベクトルを符号化し、
画像を、階層構造を有する単位で符号化して、符号化ストリームを生成する
画像処理方法。
(5) ノンベースビューの画像におけるカレントブロックの周辺から求まる視差分だけ、異なるビューの画像において前記カレントブロックの位置からシフトさせた位置のブロックである参照ブロックの動きベクトルを、前記カレントブロックの参照先と前記参照ブロックの参照先とに応じてスケーリングして、前記カレントブロックの動きベクトルの符号化に用いる予測ベクトルを生成する予測ベクトル生成部と、
前記予測ベクトル生成部により生成された予測ベクトルを用いて、前記カレントブロックの動きベクトルを復号する動きベクトル復号部と、
階層構造を有する単位で符号化された符号化ストリームを復号して、画像を生成する復号部と
を備える画像処理装置。
(6) 前記予測ベクトル生成部は、前記参照ブロックの動きベクトルを、前記カレントブロックの参照画像POCと前記参照ブロックの参照画像POCに応じてスケーリングして、前記予測ベクトルの候補として用いて予測ベクトルを生成する
前記(5)に記載の画像処理装置。
(7) 前記符号化ストリームと、符号化された前記カレントブロックの動きベクトルを受け取る受け取り部を
さらに備える前記(5)または(6)のいずれかに記載の画像処理装置。
(8) 画像処理装置が、
ノンベースビューの画像におけるカレントブロックの周辺から求まる視差分だけ、異なるビューの画像において前記カレントブロックの位置からシフトさせた位置のブロックである参照ブロックの動きベクトルを、前記カレントブロックの参照先と前記参照ブロックの参照先とに応じてスケーリングして、前記カレントブロックの動きベクトルの符号化に用いる予測ベクトルを生成し、
生成された予測ベクトルを用いて、前記カレントブロックの動きベクトルを復号し、
階層構造を有する単位で符号化された符号化ストリームを復号して、画像を生成する
画像処理方法。