以下、本開示の前提および本開示を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
0.本開示の前提(図1および図2)
1.第1実施の形態:符号化装置および復号装置(図3乃至図23)
2.第2実施の形態:符号化装置および復号装置(図24乃至図29)
3.第3実施の形態:符号化装置および復号装置(図30および図31)
4.第4実施の形態:コンピュータ(図32)
5.第5実施の形態:テレビジョン装置(図33)
6.第6実施の形態:携帯電話機(図34)
7.第7実施の形態:記録再生装置(図35)
8.第8実施の形態:撮像装置(図36)
9.第9実施の形態:ビデオセット(図37乃至図39)
<本開示の前提>
(Intra BCの説明)
図1は、Intra BCを説明する図である。
図1に示すように、Intra BCでは、ピクチャ10内のPU(Prediction Unit)11の予測に用いる参照ピクチャが、ピクチャ10である。従って、PU11と同一のピクチャ10内に含まれる、PU11と相関性の高いブロック12が、PU11の参照ブロックとされ、PU11とPU12の間のベクトル13が動きベクトルとして検出される。
(Intra BCとインター符号化の違いの説明)
図2は、Intra BCとインター符号化の違いを説明する図である。
図2に示すように、Intra BCの動きベクトルの精度は、整数画素精度であるが、インター符号化の動きベクトルの精度は、1/4画素精度である。また、Intra BCでは、同一画面内の符号化済みのブロックが参照ブロックにされるため、動きベクトルの縦方向と横方向の少なくとも一方の長さが長くなる。しかしながら、インター符号化では、異なる画面の符号化済みのブロックが参照ブロックにされるため、動きベクトルの長さは、画面間の動きに依存する。
また、Intra BCでは、参照ピクチャとしてフィルタ処理前のピクチャが用いられるが、インター符号化では、参照ピクチャとしてフィルタ処理後のピクチャが用いられる。一般的に、フィルタ処理前のピクチャは、キャッシュに記憶され、フィルタ処理後のピクチャは、DRAM(Dynamic Random Access Memory)に記憶される。
以上のように、Intra BCとインター符号化の動きベクトルの精度や長さは異なる。従って、Intra BCとインター符号化が共通化され、Intra BCの動きベクトルの符号化時に、インター符号化の動きベクトルを参照して生成された予測ベクトルが用いられると、差分ベクトルが大きくなり、符号化効率が低下する。なお、以下では、予測ベクトルを生成する際に参照される動きベクトルをリファレンス動きベクトルという。
また、Intra BCとインター符号化における参照ピクチャの保存先は異なる。従って、Intra BCとインター符号化が共通化される場合、参照ピクチャの保存先としてキャッシュとDRAMが混在する。しかしながら、復号装置は、参照ピクチャの保存先がどちらなのかわからないため、無駄にDRAMへアクセスすることになる。その結果、DRAMのアクセス帯域が増加する。
<第1実施の形態>
(第1実施の形態の概要)
まず、図3乃至図12を参照して、第1実施の形態の概要について説明する。
図3は、HEVCにおける参照ピクチャのタイプを説明する図である。
図3に示すように、HEVCでは、現在の処理対象のピクチャ(以下、カレントピクチャという)とのPOC(Picture Order Count)の差分が小さい参照ピクチャのタイプが、STRP(Short-Term Reference Picture)とされる。また、カレントピクチャ(Current Pic)とのPOCの差分が大きい参照ピクチャのタイプが、LTRP(Long-Term Reference Picture)とされる。
そして、図4および図5に示すように、カレントピクチャ内の現在の処理対象のPU(以下、カレントブロックという)の参照ピクチャと、リファレンス動きベクトルの候補に対応するPU(以下、候補ブロックという)の参照ピクチャのタイプが異なる場合、候補ブロックがノットアベイラブル(not available)に設定される。
例えば、図3に示すように、カレントブロック21の参照ピクチャのタイプがSTRPであり、カレント動きベクトル(target MV)のリファレンス動きベクトルの候補(PMV)に対応する候補ブロック22の参照ピクチャのタイプがLTRPである場合、候補ブロック22がノットアベイラブルに設定される。これにより、候補ブロック22の動きベクトルは、リファレンス動きベクトルの候補から除外され、予測ベクトルの生成には用いられない。
なお、候補ブロックは、カレントブロックと同一の時刻の左、左上、左下、上、および右上に隣接するPU、並びに、異なる時刻のカレントブロックと同一の位置および右下に隣接するPUである。以下では、候補ブロックのうちのカレントブロックと同一の時刻の候補ブロックを特に区別する場合、空間方向候補ブロックといい、カレントブロックと異なる時刻の候補ブロックを特に区別する場合、時間方向候補ブロックという。
また、図4および図5に示すように、カレントブロックの参照ピクチャと候補ブロックの参照ピクチャのタイプが同一である場合、候補ブロックはアベイラブル(available)に設定される。これにより、候補ブロックの動きベクトルは、リファレンス動きベクトルの候補とされる。
カレントブロックの参照ピクチャと候補ブロックの参照ピクチャのタイプが両方ともSTRPである場合の候補ブロックの動きベクトルが、リファレンス動きベクトルとして選択される場合、予測ベクトルは、カレントブロックの参照ピクチャと候補ブロックの参照ピクチャのPOCの差分に基づいて、リファレンス動きベクトルをスケーリングすることにより生成される。
一方、カレントブロックの参照ピクチャと候補ブロックの参照ピクチャのタイプが両方ともLTRPである場合の候補ブロックの動きベクトルが、リファレンス動きベクトルとして選択される場合、リファレンス動きベクトルが、そのまま予測ベクトルとされる(not scaled)。
なお、現在のHEVCでは、Intra BCとインター符号化が共通化されていないため、参照ピクチャのタイプは、図5に示すように、LTRPとSTRP以外想定されていない。従って、参照ピクチャのタイプが、Intra BCで用いられる参照ピクチャのタイプである「Intra BC」である場合の候補ブロックの設定は未定である。
Intra BCとインター符号化を単純に共通化した場合、Intra BCで用いられる参照ピクチャのタイプは、実際のタイプとは異なり、STRPに設定される。従って、図6に示すように、カレントブロック31のIntra BCで用いられるカレント動きベクトル(target MV)のリファレンス動きベクトルの候補に、参照ピクチャの実際のタイプがSTRPである候補ブロック32の動きベクトル(PMV)が含まれる。
しかしながら、図2で示したように、Intra BCとインター符号化の動きベクトルの精度や長さは異なる。従って、カレントブロック31のカレント動きベクトルのリファレンス動きベクトルとして、候補ブロック32の動きベクトルが選択されると、カレント動きベクトルと予測ベクトルの差分ベクトルが大きくなる。その結果、符号化効率が低下する。
そこで、第1実施の形態では、Intra BCで用いられる参照ピクチャ、即ち実際のタイプが「Intra BC」である参照ピクチャのタイプが、LTRPに設定される。具体的には、参照ピクチャの候補としてカレントピクチャが新たに定義される(If intra_block_copy_enabled_flag is equal to 1, the following applies.RefPicCurr=CurrPic)。そして、新たに定義されたカレントピクチャが、タイプをLTRPに設定する参照ピクチャの候補に追加される(All reference pictures that are included in RefPicCurr, RefPicSetLtCurr and RefPicSetLtFoll are marked as "used for long-term reference".)。
これにより、参照ピクチャの候補のリストである参照ピクチャリストにカレントピクチャが追加され、“used for long-term reference“としてマーキングされる。その結果、参照ピクチャの実際のタイプが「Intra BC」であるカレントブロックに対する候補ブロックの設定が、参照ピクチャの実際のタイプがLTRPであるカレントブロックに対する候補ブロックの設定と同様に行われる。
具体的には、図7と図8に示すように、カレントブロックの参照ピクチャと候補ブロックの参照ピクチャの実際のタイプのいずれか一方が、「Intra BC」であり、他方がSTRPである場合、候補ブロックがノットアベイラブルに設定される。これにより、候補ブロックの動きベクトルは、リファレンス動きベクトルの候補から除外され、予測ベクトルの生成には用いられない。
また、図7および図8に示すように、カレントブロックの参照ピクチャと候補ブロックの参照ピクチャの実際のタイプが両方とも、「Intra BC」またはLTRPである場合、候補ブロックはアベイラブルに設定される。これにより、候補ブロックの動きベクトルは、リファレンス動きベクトルの候補とされる。
以上により、カレントブロックの参照ピクチャと候補ブロックの参照ピクチャの実際のタイプのいずれか一方が、「Intra BC」であり、他方がSTRPである場合、候補ブロックの動きベクトルは、予測ベクトルの生成に用いられず、符号化効率が向上する。
図9は、HEVCにおける参照ピクチャの候補の例を示す図である。
図9に示すように、HEVCでは、カレントピクチャ(C)より表示順で前であり、カレントピクチャとのPOCの差分が小さいピクチャ(Short-term before Curr)が、参照ピクチャの候補とされる。また、カレントピクチャ(C)より表示順で後であり、カレントピクチャとのPOCの差分が小さいピクチャ(Short-term after Curr)が、参照ピクチャの候補とされる。
さらに、カレントピクチャ(C)より表示順で前であり、カレントピクチャとのPOCの差分が大きいピクチャ(Long-term)が、参照ピクチャの候補とされる。また、カレントピクチャ(C)と表示順が同一であるが、視点、ビット数、空間解像度、S/N、フレームレート、色差信号フォーマット等が異なるピクチャ(Inter-layer)が、参照ピクチャの候補とされる。
図10は、図9の参照ピクチャの候補を登録する参照ピクチャリストの作成処理を説明する図である。
図10に示すように、参照ピクチャリストの作成処理では、まず、参照ピクチャの候補の種類ごとに、参照ピクチャの候補のピクチャを特定する情報(以下、ピクチャ特定情報という)が登録された個別リストが作成される。即ち、ピクチャ(Short-term before Curr)のピクチャ特定情報が、カレントピクチャとのPOCの差分が小さい順に登録されるRefPicSetStCurrBeforeリストが作成される。
同様に、ピクチャ(Short-term after Curr)のRefPicSetStCurrAfterリストと、ピクチャ(Long-term)のRefPicSetLtCurrリストが作成される。また、ピクチャ(Inter-layer)のピクチャ特定情報が所定の順に登録されるRefPicSetIvCurrリストが作成される。
RefPicSetStCurrBeforeリスト、RefPicSetStCurrAfterリスト、およびRefPicSetLtCurrリストに登録される各ピクチャ特定情報には、そのピクチャ特定情報により特定されるピクチャを、カレントピクチャの参照ピクチャの候補として使用するかどうかを表すused_by_currが設定可能になっている。used_by_currは、カレントピクチャの参照ピクチャの候補として使用することを表す場合1であり、使用しないことを表す場合0である。
図10の例では、RefPicSetStCurrBeforeリストおよびRefPicSetStCurrAfterリストの先頭と先頭から2番目のピクチャ特定情報、並びに、RefPicSetLtCurrリストの先頭のピクチャ特定情報のused_by_currが1に設定されている。
次に、個別リストに基づいて、カレントピクチャより表示順が前の参照ピクチャの候補を優先的に登録するRefPicListTemp0リストと、カレントピクチャより表示順が後の参照ピクチャの候補を優先的に登録するRefPicListTemp1リストの2つのテンポラルリストが作成される。
具体的には、used_by_currが1に設定されたRefPicSetStCurrBeforeリストのピクチャ特定情報、RefPicSetIvCurrリストに登録されたピクチャ特定情報、used_by_currが1に設定されたRefPicSetStCurrAfterリストのピクチャ特定情報、used_by_currが1に設定されたRefPicSetLtCurrリストのピクチャ特定情報が順に登録されたRefPicListTemp0リストが、作成される。
また、used_by_currが1に設定されたRefPicSetStCurrAfterリストのピクチャ特定情報、used_by_currが1に設定されたRefPicSetStCurrBeforeリストのピクチャ特定情報、used_by_currが1に設定されたRefPicSetLtCurrリストのピクチャ特定情報、RefPicSetIvCurrリストに登録されたピクチャ特定情報が順に登録されたRefPicListTemp1リストが、作成される。
次に、RefPicListTemp0リストとRefPicListTemp1リストに登録されているピクチャ特定情報の順番が、必要に応じて変更される(Reference reordering)。
最後に、RefpicListTemp0リストに登録されている、先頭から所定数(図10の例では5つ)のピクチャ特定情報が、先頭から順に登録された参照ピクチャリストRefPicList0が、作成される。
また、RefpicListTemp1リストに登録されている、先頭から所定数(図10の例では4つ)のピクチャ特定情報が、先頭から順に登録された参照ピクチャリストRefPicList1が、作成される。
なお、参照ピクチャリストRefPicList0(RefPicList1)に登録されるピクチャ特定情報の数から1を減算した値は、num_ref_idx_l0_active_minus1(num_ref_idx_l1_active_minus1)としてスライスヘッダ等に配置される。
Intra BCとインター符号化を共通化する場合、図11に示すように、参照ピクチャの候補として、Intra BCの参照ピクチャであるカレントピクチャ(CurrPic)を追加する必要がある。
第1実施の形態では、上述したように、参照ピクチャの候補としてカレントピクチャが定義されるため、参照ピクチャリストの作成処理において、カレントピクチャのピクチャ特定情報が登録されたカレントピクチャリスト(RefPicCurr)を作成することができる。その結果、参照ピクチャリストにカレントピクチャのピクチャ特定情報が登録される。
しかしながら、Intra BCとインター符号化を単純に共通化した場合、カレントピクチャのピクチャ特定情報は、参照ピクチャリストのどの位置に登録されるかわからない。
一方、図2で示したように、Intra BCとインター符号化における参照ピクチャの保存先は異なる。従って、無駄にDRAMへアクセスしないためには、復号装置は、符号化装置から参照ピクチャリスト内の参照ピクチャのピクチャ特定情報のインデックスを取得した際、参照ピクチャがIntra BCとインター符号化のいずれにおける参照ピクチャであるのかを認識する必要がある。即ち、復号装置は、参照ピクチャがカレントピクチャ、または、カレントピクチャとは異なるピクチャのいずれであるのかを認識する必要がある。
そこで、第1実施の形態では、図12に示すように、RefPicList0リストおよびRefPicList1リストの2つの参照ピクチャリストの先頭に、カレントピクチャリストに登録されるカレントピクチャのピクチャ特定情報が登録される。
これにより、復号装置は、符号化装置から参照ピクチャリストの先頭のインデックスを取得した場合、参照ピクチャがカレントピクチャである、即ちIntra BCにおける参照ピクチャであることを認識することができる。その結果、復号装置は、DRAMにはアクセスせずに、キャッシュからカレントピクチャを参照ピクチャとして読み出すことができる。
なお、カレントピクチャのピクチャ特定情報は、RefPicList0リストにのみ登録されるようにしてもよい。また、カレントピクチャのピクチャ特定情報が登録される位置は、先頭のほか、最後尾などの予め決められた任意の位置にすることができる。
(符号化装置の第1実施の形態の構成例)
図13は、本開示を適用した画像処理装置としての符号化装置の第1実施の形態の構成例を示すブロック図である。
図13の符号化装置50は、設定部51、符号化部52、および伝送部53により構成され、ピクチャをHEVCに準ずる方式で符号化する。
符号化単位は、再帰的な階層構造を有するCoding UNIT(CU)である。具体的には、CUは、ピクチャを固定サイズのCTU(Coding Tree Unit)に分割し、そのCTUを任意の回数だけ水平方向および垂直方向に2分割することにより設定される。CUの最大のサイズはLCU(Largest Coding Unit)であり、最小サイズはSCU(Smallest Coding Unit)である。また、CUは、PUやTU(transform unit)に分割される。
符号化装置50の設定部51は、SPS(Sequence Parameter Set),PPS(Picture Parameter Set),VUI(Video Usability Information),SEI(Supplemental Enhancement Information)などのパラメータセットを設定する。SPSには、LCUとSCUのサイズを指定する情報、参照ピクチャリストを作成するための参照ピクチャリスト情報等が含まれる。
参照ピクチャリスト情報は、例えば、個別リストおよびカレントピクチャリストに登録されるピクチャ特定情報を指定する情報、used_by_curr等からなる。設定部51は、設定されたパラメータセットを符号化部52に供給する。
符号化部52には、フレーム単位のピクチャが入力される。符号化部52は、入力されたピクチャをHEVCに準ずる方式で符号化する。このとき、必要に応じて、設定部51から供給されるパラメータセットが用いられる。符号化部52は、符号化の結果得られる符号化データと設定部51から供給されるパラメータセットから符号化ストリームを生成し、伝送部53に供給する。
伝送部53は、符号化部52から供給される符号化ストリームを、後述する復号装置に伝送する。
(符号化部の構成例)
図14は、図13の符号化部52の構成例を示すブロック図である。
図14の符号化部52は、A/D変換部71、画面並べ替えバッファ72、演算部73、直交変換部74、量子化部75、可逆符号化部76、蓄積バッファ77、生成部78、逆量子化部79、逆直交変換部80、および加算部81を有する。また、符号化部52は、フィルタ82、フレームメモリ85、スイッチ86、イントラ予測部87、リスト作成部88、動き予測・補償部89、予測ベクトル生成部90、差分ベクトル生成部91、予測画像選択部92、およびレート制御部93を有する。
符号化部52のA/D変換部71は、符号化対象として入力されたフレーム単位のピクチャをA/D変換する。A/D変換部71は、変換後のデジタル信号であるピクチャを画面並べ替えバッファ72に出力して記憶させる。
画面並べ替えバッファ72は、記憶した表示の順番のフレーム単位のピクチャを、GOP(Group of Picture)構造に応じて、符号化のための順番に並べ替える。画面並べ替えバッファ72は、並べ替え後のピクチャを、カレントピクチャとして、演算部73、イントラ予測部87、および動き予測・補償部89に出力する。
演算部73は、画面並べ替えバッファ72から供給されるカレントピクチャから、予測画像選択部92から供給される予測画像を減算することにより符号化を行う。演算部73は、その結果得られるピクチャを、残差情報として直交変換部74に出力する。なお、予測画像選択部92から予測画像が供給されない場合、演算部73は、画面並べ替えバッファ72から読み出されたカレントピクチャをそのまま残差情報として直交変換部74に出力する。
直交変換部74は、演算部73からの残差情報をTU単位で直交変換する。直交変換部74は、直交変換の結果得られる直交変換係数を量子化部75に供給する。
量子化部75は、直交変換部74から供給される直交変換係数に対して量子化を行う。量子化部75は、量子化された直交変換係数を可逆符号化部76に供給する。
可逆符号化部76は、最適イントラ予測モードを示すイントラ予測モード情報をイントラ予測部87から取得する。また、可逆符号化部76は、最適インター予測モードを示すインター予測モード情報と参照ピクチャのインデックスなどを動き予測・補償部89から取得し、動きベクトル情報を差分ベクトル生成部91から取得する。さらに、可逆符号化部76は、フィルタ82から適応オフセットフィルタ処理に関するオフセットフィルタ情報を取得する。
可逆符号化部76は、量子化部75から供給される量子化された直交変換係数に対して、可変長符号化(例えば、CAVLC(Context-Adaptive Variable Length Coding)など)、算術符号化(例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)など)などの可逆符号化を行う。
また、可逆符号化部76は、イントラ予測モード情報、または、インター予測モード情報、動きベクトル情報、および参照ピクチャのインデックス、並びにオフセットフィルタ情報等を、符号化に関する符号化情報として可逆符号化する。可逆符号化部76は、可逆符号化された符号化情報、参照ピクチャリストの登録数から1を減算した所定数(num_ref_idx_lo_minus1,num_ref_idx_lo_minus1)などをスライスヘッダ等に配置する。
可逆符号化部76は、量子化部75から供給される直交変換係数にスライスヘッダを付加し、符号化データとして蓄積バッファ77に供給する。
蓄積バッファ77は、可逆符号化部76から供給される符号化データを、一時的に記憶する。また、蓄積バッファ77は、記憶している符号化データを生成部78に供給する。
生成部78は、図13の設定部51から供給されるパラメータセットと蓄積バッファ77から供給される符号化データから符号化ストリームを生成し、図13の伝送部53に供給する。
また、量子化部75より出力された、量子化された直交変換係数は、逆量子化部79にも入力される。逆量子化部79は、量子化部75により量子化された直交変換係数に対して、量子化部75における量子化方法に対応する方法で逆量子化を行う。逆量子化部79は、逆量子化の結果得られる直交変換係数を逆直交変換部80に供給する。
逆直交変換部80は、TU単位で、逆量子化部79から供給される直交変換係数に対して、直交変換部74における直交変換方法に対応する方法で逆直交変換を行う。逆直交変換部80は、その結果得られる残差情報を加算部81に供給する。
加算部81は、逆直交変換部80から供給される残差情報と、予測画像選択部92から供給される予測画像を加算することにより、カレントピクチャを局所的に復号する。なお、予測画像選択部92から予測画像が供給されない場合、加算部81は、逆直交変換部80から供給される残差情報を復号結果とする。加算部81は、局所的に復号されたカレントピクチャをフレームメモリ85に供給する。また、加算部81は、全ての領域が復号されたカレントピクチャを符号化済みのピクチャとしてフィルタ82に供給する。
フィルタ82は、加算部81から供給される符号化済みのピクチャに対して、フィルタ処理を行う。具体的には、フィルタ82は、デブロックフィルタ処理と適応オフセットフィルタ(SAO(Sample adaptive offset))処理を順に行う。フィルタ82は、フィルタ処理後の符号化済みのピクチャをフレームメモリ85に供給する。また、フィルタ82は、行われた適応オフセットフィルタ処理の種類とオフセットを示す情報を、オフセットフィルタ情報として可逆符号化部76に供給する。
フレームメモリ85は、例えば、キャッシュとDRAMにより構成される。フレームメモリ85は、加算部81から供給されるカレントピクチャをキャッシュに記憶し、フィルタ82から供給される符号化済みのピクチャをDRAMに記憶する。キャッシュに記憶されたカレントピクチャのうちのカレントブロックに隣接する画素は、周辺画素としてスイッチ86を介してイントラ予測部87に供給される。
また、キャッシュに記憶されたカレントピクチャ、および、DRAMに記憶された符号化済みのピクチャは、参照ピクチャとしてスイッチ86を介して動き予測・補償部89に出力される。
イントラ予測部87は、カレントブロックに対して、フレームメモリ85からスイッチ86を介して読み出された周辺画素を用いて、候補となる全てのイントラ予測モードのイントラ予測処理を行う。
また、イントラ予測部87は、画面並べ替えバッファ72から読み出されたカレントピクチャと、イントラ予測処理の結果生成される予測画像とに基づいて、候補となる全てのイントラ予測モードに対してコスト関数値(詳細は後述する)を算出する。そして、イントラ予測部87は、コスト関数値が最小となるイントラ予測モードを、最適イントラ予測モードに決定する。
イントラ予測部87は、最適イントラ予測モードで生成された予測画像、および、対応するコスト関数値を、予測画像選択部92に供給する。イントラ予測部87は、予測画像選択部92から最適イントラ予測モードで生成された予測画像の選択が通知された場合、イントラ予測モード情報を可逆符号化部76に供給する。
なお、コスト関数値は、RD(Rate Distortion)コストともいい、例えば、H.264/AVC方式における参照ソフトウエアであるJM(Joint Model)で定められているような、High Complexity モードまたはLow Complexity モードの手法に基づいて算出される。なお、H.264/AVC方式における参照ソフトウエアは、http://iphome.hhi.de/suehring/tml/index.htmにおいて公開されている。
具体的には、コスト関数値の算出手法としてHigh Complexity モードが採用される場合、候補となる全ての予測モードに対して、仮に復号までが行われ、次の式(1)で表わされるコスト関数値が各予測モードに対して算出される。
Dは、原画像と復号画像の差分(歪)、Rは、直交変換の係数まで含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ未定乗数である。
一方、コスト関数値の算出手法としてLow Complexity モードが採用される場合、候補となる全ての予測モードに対して、予測画像の生成、および、符号化情報の符号量の算出が行われ、次の式(2)で表わされるコスト関数Cost(Mode)が各予測モードに対して算出される。
Dは、原画像と予測画像の差分(歪)、Header_Bitは、符号化情報の符号量、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
Low Complexity モードにおいては、全ての予測モードに対して、予測画像を生成するだけでよく、復号画像を生成する必要がないため、演算量が少なくて済む。
リスト作成部88は、図13の設定部51により設定されるSPSに含まれる参照ピクチャリスト情報、スライスヘッダに配置される情報等に基づいて、例えばスライス単位で、上述した参照ピクチャリスト作成処理を行う。
即ち、リスト作成部88は、参照ピクチャリスト情報、スライスヘッダに配置される情報等に基づいて、個別リストの作成、テンポラルリストの作成、およびテンポラルリストに登録されているピクチャ特定情報の順番の入れ替えを順に行い、参照ピクチャリストを作成する。その後、リスト作成部88は、参照ピクチャリストの先頭にカレントピクチャのピクチャ特定情報を登録する。
また、リスト作成部88は、参照ピクチャリストに登録されている各ピクチャ特定情報に、そのピクチャ特定情報により特定されるピクチャの参照ピクチャとしてのタイプとして、SRTPまたはLTRPを設定する。例えば、リスト作成部88(設定部)は、カレントピクチャのピクチャ特定情報に、カレントピクチャのタイプとしてLTRP(used for long-term reference)を設定する。リスト作成部88は、参照ピクチャリストを保持するとともに、動き予測・補償部89に供給する。
動き予測・補償部89は、カレントブロックに対して、候補となる全てのインター予測モードの動き予測・補償処理を行う。具体的には、動き予測・補償部89は、リスト作成部88から供給される参照ピクチャリストに基づいて、その参照ピクチャリストに登録されているピクチャ特定情報で特定されるピクチャを、参照ピクチャの候補として、フレームメモリ85からスイッチ86を介して読み出す。
動き予測・補償部89は、画面並べ替えバッファ72からのカレントピクチャと、参照ピクチャの候補として読み出されたカレントピクチャとに基づいて、候補となる全てのインター予測モードのカレントブロックのIntra BCの動きベクトルを整数画素精度で検出する。また、動き予測・補償部89は、画面並べ替えバッファ72からのカレントピクチャと、参照ピクチャの候補として読み出されたカレントピクチャ以外のピクチャとに基づいて、候補となる全てのインター予測モードのカレントブロックのインター符号化の動きベクトルを分数画素精度で検出する。
そして、動き予測・補償部89は、検出された動きベクトルに基づいて参照ピクチャの候補に補償処理を施し、予測画像を生成する。なお、インター予測モードとは、カレントブロックのサイズ等を表すモードである。
また、動き予測・補償部89は、画面並べ替えバッファ72から供給されるカレントピクチャと予測画像とに基づいて、候補となる全てのインター予測モードおよび参照ピクチャの候補に対してコスト関数値を算出する。動き予測・補償部89は、コスト関数値が最小となるインター予測モードを最適インター予測モードに決定する。そして、動き予測・補償部89は、コスト関数値の最小値と、対応する予測画像を予測画像選択部92に供給する。
動き予測・補償部89は、予測画像選択部92から最適インター予測モードで生成された予測画像の選択が通知された場合、その予測画像に対応するカレントブロックの動きベクトルをカレント動きベクトルに決定し、差分ベクトル生成部91に供給する。また、動き予測・補償部89は、その予測画像に対応する参照ピクチャの候補を参照ピクチャに決定し、その参照ピクチャのピクチャ特定情報の参照ピクチャリスト内の位置に対応するインデックスを、予測ベクトル生成部90と可逆符号化部76に供給する。さらに、動き予測・補償部89は、インター予測モード情報を、可逆符号化部76に供給する。
予測ベクトル生成部90は、動き予測・補償部89から供給されるインデックスに基づいて、参照ピクチャが登録されている参照ピクチャリストごとに、カレント動きベクトルの予測ベクトルリストを生成する。
具体的には、予測ベクトル生成部90は、インデックスに基づいて、そのインデックスに対応する参照ピクチャのタイプを、リスト作成部88に保持されている参照ピクチャリストから読み出し、保持する。予測ベクトル生成部90は、空間方向候補ブロックを所定の順に処理対象の候補ブロックに設定し、時間方向候補ブロックを所定の順に処理対象の候補ブロックに設定する。
予測ベクトル生成部90は、自分自身が保持している処理対象の候補ブロックの参照ピクチャのタイプと、リスト作成部88から読み出されたカレントブロックの参照ピクチャのタイプとを比較する。予測ベクトル生成部90は、それらが一致する場合、処理対象の候補ブロックをアベイラブルに設定し、一致しない場合、処理対象の候補ブロックをノットアベイラブルに設定する。
予測ベクトル生成部90は、処理対象の候補ブロックがアベイラブルに設定された場合、処理対象の候補ブロックの動きベクトルであるリファレンス動きベクトルの候補を用いて、カレント動きベクトルの予測ベクトルを生成する。そして、予測ベクトル生成部90は、生成された所定数の空間方向候補ブロックと時間方向候補ブロックの予測ベクトルを登録した予測ベクトルリストを生成する。なお、生成された予測ベクトルの数が所定数に達しない場合には、0ベクトルなどが予測ベクトルリストに登録される。予測ベクトル生成部90は、予測ベクトルリストを差分ベクトル生成部91に供給する。
差分ベクトル生成部91は、予測ベクトル生成部90から供給される予測ベクトルリストに登録された所定の数の予測ベクトルのそれぞれと、カレント動きベクトルとの差分ベクトルを生成することにより、カレント動きベクトルを予測符号化する。差分ベクトル生成部91は、差分ベクトルの最小値と、対応する予測ベクトルの予測ベクトルリスト内の位置に対応するインデックスとを、動きベクトル情報として、可逆符号化部76に供給する。
予測画像選択部92は、イントラ予測部87および動き予測・補償部89から供給されるコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの、対応するコスト関数値が小さい方を、最適予測モードに決定する。そして、予測画像選択部92は、最適予測モードの予測画像を、演算部73および加算部81に供給する。また、予測画像選択部92は、最適予測モードの予測画像の選択をイントラ予測部87または動き予測・補償部89に通知する。
レート制御部93は、蓄積バッファ77に蓄積された符号化データに基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部75の量子化動作のレートを制御する。
(符号化装置の処理の説明)
図15は、図13の符号化装置50のストリーム生成処理を説明するフローチャートである。
図15のステップS11において、符号化装置50の設定部51は、パラメータセットを設定する。設定部51は、設定されたパラメータセットを符号化部52に供給する。
ステップS12において、符号化部52は、外部から入力されたフレーム単位のピクチャをHEVCに準ずる方式で符号化する符号化処理を行う。この符号化処理の詳細は、後述する図16および図17を参照して説明する。
ステップS13において、符号化部52の生成部78(図14)は、設定部51から供給されるパラメータセットと蓄積している符号化データから符号化ストリームを生成し、伝送部53に供給する。
ステップS14において、伝送部53は、設定部51から供給される符号化ストリームを、後述する復号装置に伝送し、処理を終了する。
図16および図17は、図15のステップS12の符号化処理の詳細を説明するフローチャートである。
図16のステップS31において、符号化部52のA/D変換部71は、符号化対象として入力されたフレーム単位のピクチャをA/D変換し、変換後のデジタル信号であるピクチャを画面並べ替えバッファ72に出力して記憶させる。
ステップS32において、画面並べ替えバッファ72は、記憶した表示の順番のフレームのピクチャを、GOP構造に応じて、符号化のための順番に並べ替える。画面並べ替えバッファ72は、並べ替え後のフレーム単位のピクチャを、カレントピクチャとして、演算部73、イントラ予測部87、および動き予測・補償部89に供給する。
ステップS33において、リスト作成部88は、SPSに含まれる参照ピクチャリスト情報、スライスヘッダに配置される情報等に基づいて、例えばスライス単位で、参照ピクチャリスト作成処理を行う。参照ピクチャリスト作成処理の詳細は、図18を参照して後述する。
ステップS34において、イントラ予測部87は、カレントブロックに対して、フレームメモリ85からスイッチ86を介して読み出された周辺画素を用いて、候補となる全てのイントラ予測モードのイントラ予測処理を行う。また、イントラ予測部87は、画面並べ替えバッファ72からのカレントピクチャと、イントラ予測処理の結果生成される予測画像とに基づいて、候補となる全てのイントラ予測モードに対してコスト関数値を算出する。そして、イントラ予測部87は、コスト関数値が最小となるイントラ予測モードを、最適イントラ予測モードに決定する。イントラ予測部87は、最適イントラ予測モードで生成された予測画像、および、対応するコスト関数値を、予測画像選択部92に供給する。
また、動き予測・補償部89は、リスト作成部88から供給される参照ピクチャリストに基づいて、カレントブロックに対して、候補となる全てのインター予測モードの動き予測・補償処理を行う。また、動き予測・補償部89は、画面並べ替えバッファ72からのカレントピクチャと動き予測・補償処理の結果生成される予測画像とに基づいて、候補となる全てのインター予測モードおよび参照ピクチャに対してコスト関数値を算出する。動き予測・補償部89は、コスト関数値が最小となるインター予測モードを最適インター予測モードに決定する。そして、動き予測・補償部89は、コスト関数値の最小値と、対応する予測画像を予測画像選択部92に供給する。
ステップS35において、予測画像選択部92は、イントラ予測部87および動き予測・補償部89から供給されるコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちのコスト関数値が最小となる方を、最適予測モードに決定する。そして、予測画像選択部92は、最適予測モードの予測画像を、演算部73および加算部81に供給する。
ステップS36において、予測画像選択部92は、最適予測モードが最適インター予測モードであるかどうかを判定する。ステップS36で最適予測モードが最適インター予測モードであると判定された場合、予測画像選択部92は、最適インター予測モードで生成された予測画像の選択を動き予測・補償部89に通知する。
動き予測・補償部89は、この通知に応じて、予測画像に対応するカレントブロックの動きベクトルをカレント動きベクトルに決定し、差分ベクトル生成部91に供給する。また、動き予測・補償部89は、予測画像に対応する参照ピクチャの候補を参照ピクチャに決定し、その参照ピクチャのピクチャ特定情報の参照ピクチャリスト内の位置に対応するインデックスを、予測ベクトル生成部90に供給する。
そして、ステップS37において、予測ベクトル生成部90は、動き予測・補償部89から供給されるインデックスに基づいて、カレント動きベクトルの予測ベクトルリストを生成する予測ベクトルリスト生成処理を行う。予測ベクトルリスト生成処理の詳細は、図19を参照して後述する。
ステップS38において、差分ベクトル生成部91は、予測ベクトル生成部90から供給される予測ベクトルリストに登録された所定の数の予測ベクトルのそれぞれと、カレント動きベクトルとの差分ベクトルを生成することにより、カレント動きベクトルを予測符号化する。そして、差分ベクトル生成部91は、差分ベクトルの最小値と、対応する予測ベクトルの予測ベクトルリスト内の位置に対応するインデックスとを、動きベクトル情報として生成する。
ステップS39において、動き予測・補償部89は、インター予測モード情報と参照ピクチャのインデックスを可逆符号化部76に供給し、差分ベクトル生成部91は、動きベクトル情報を可逆符号化部76に供給する。そして、処理はステップS41に進む。
一方、ステップS36で最適予測モードが最適インター予測モードではないと判定された場合、即ち最適予測モードが最適イントラ予測モードである場合、予測画像選択部92は、最適イントラ予測モードで生成された予測画像の選択をイントラ予測部87に通知する。そして、ステップS40において、イントラ予測部87は、イントラ予測モード情報を可逆符号化部76に供給し、処理をステップS41に進める。
ステップS41において、演算部73は、画面並べ替えバッファ72から供給されるカレントピクチャから、予測画像選択部92から供給される予測画像を減算することにより符号化を行う。演算部73は、その結果得られるピクチャを、残差情報として直交変換部74に出力する。
ステップS42において、直交変換部74は、演算部73からの残差情報に対してTU単位で直交変換を施し、その結果得られる直交変換係数を量子化部75に供給する。
ステップS43において、量子化部75は、直交変換部74から供給される直交変換係数を量子化し、量子化された直交変換係数を可逆符号化部76と逆量子化部79に供給する。
図17のステップS44において、逆量子化部79は、量子化部75から供給される量子化された係数を逆量子化し、その結果得られる直交変換係数を逆直交変換部80に供給する。
ステップS45において、逆直交変換部80は、逆量子化部79から供給される直交変換係数に対してTU単位で逆直交変換を施し、その結果得られる残差情報を加算部81に供給する。
ステップS46において、加算部81は、逆直交変換部80から供給される残差情報と、予測画像選択部92から供給される予測画像を加算し、カレントピクチャを局所的に復号する。加算部81は、局所的に復号されたカレントピクチャをフレームメモリ85に供給する。また、加算部81は、全ての領域が復号されたカレントピクチャを符号化済みのピクチャとしてフィルタ82に供給する。
ステップS47において、フィルタ82は、加算部81から供給される符号化済みのピクチャに対して、デブロックフィルタ処理を行う。
ステップS48において、フィルタ82は、デブロックフィルタ処理後の符号化済みのピクチャに対して、LCUごとに適応オフセットフィルタ処理を行う。フィルタ82は、その結果得られる符号化済みのピクチャをフレームメモリ85に供給する。また、フィルタ82は、LCUごとに、オフセットフィルタ情報を可逆符号化部76に供給する。
ステップS49において、フレームメモリ85は、加算部81から供給されるカレントピクチャをキャッシュに記憶し、フィルタ82から供給される符号化済みのピクチャをDRAMに記憶する。キャッシュに記憶されたカレントピクチャのうちのカレントブロックに隣接する画素は、周辺画素としてスイッチ86を介してイントラ予測部87に供給される。また、キャッシュに記憶されたカレントピクチャ、および、DRAMに記憶された符号化済みのピクチャは、参照ピクチャとしてスイッチ86を介して動き予測・補償部89に出力される。
ステップS50において、可逆符号化部76は、イントラ予測モード情報、または、インター予測モード情報、動きベクトル情報、および参照ピクチャのインデックス、並びにオフセットフィルタ情報を、符号化情報として可逆符号化する。
ステップS51において、可逆符号化部76は、量子化部75から供給される量子化された直交変換係数を可逆符号化する。そして、可逆符号化部76は、ステップS50の処理で可逆符号化された符号化情報と可逆符号化された直交変換係数から、符号化データを生成し、蓄積バッファ77に供給する。
ステップS52において、蓄積バッファ77は、可逆符号化部76から供給される符号化データを、一時的に蓄積する。
ステップS53において、レート制御部93は、蓄積バッファ77に蓄積された符号化データに基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部75の量子化動作のレートを制御する。
ステップS54において、蓄積バッファ77は、記憶している符号化データを、生成部78に出力する。そして、処理は、図15のステップS12に戻り、ステップS13に進む。
なお、図16および図17の符号化処理では、説明を簡単化するため、常に、イントラ予測処理と動き予測・補償処理が行われるようにしたが、実際には、ピクチャタイプ等によっていずれか一方のみが行われる場合もある。
図18は、図16のステップS33の参照ピクチャリスト作成処理の詳細を説明するフローチャートである。
図18のステップS71において、リスト作成部88は、参照ピクチャの候補の種類ごとに、RefPicSetStCurrBeforeリスト、RefPicSetStCurrAfterリスト、RefPicSetLtCurrリスト、およびRefPicSetIvCurrリストの4つの個別リストを作成する。各個別リストのピクチャ特定情報には、そのピクチャ特定情報により特定されるピクチャの参照ピクチャとしてのタイプが設定されている。また、RefPicSetStCurrBeforeリスト、RefPicSetStCurrAfterリスト、およびRefPicSetLtCurrリストのピクチャ特定情報には、used_by_currが設定されている。
ステップS72において、リスト作成部88は、参照ピクチャのタイプとしてLTRPが設定された、カレントピクチャのピクチャ特定情報が登録されるカレントピクチャリストを作成する。
ステップS73において、リスト作成部88は、個別リストのピクチャ特定情報とused_by_currに基づいて、RefpicListTemp0リストとRefpicListTemp1リストの2つのテンポラルリストを作成する。
ステップS74において、リスト作成部88は、スライスヘッダに配置される、テンポラルリスト内のピクチャ特定情報の順番を指定するref_pic_list_modificationに基づいて、テンポラルリスト内のピクチャ特定情報の順番を入れ替える。
ステップS75において、リスト作成部88は、テンポラルリストに基づいて、テンポラルリストに登録されている先頭から所定数のピクチャ特定情報を、先頭から順に登録した参照ピクチャリストを作成する。
ステップS76において、リスト作成部88は、参照ピクチャリストの先頭に、カレントピクチャリストに登録されているカレントピクチャのピクチャ特定情報を登録する。そして、処理は、図16のステップS33に戻り、ステップS34に進む。
図19は、図16のステップS37の予測ベクトルリスト生成処理の詳細を説明するフローチャートである。この予測ベクトルリスト生成処理は、参照ピクチャが登録されている参照ピクチャリストごとに行われる。
図19のステップS91において、予測ベクトル生成部90は、所定の候補ブロックを処理対象の候補ブロックに決定する。最初のステップS91の処理では、所定の空間方向候補ブロックが処理対象の候補ブロックに決定される。
ステップS92において、予測ベクトル生成部90は、動き予測・補償部89から供給されるインデックスに基づいて、参照ピクチャリストから、そのインデックスに対応するカレントブロックの参照ピクチャのタイプを読み出し、保持する。そして、予測ベクトル生成部90は、読み出されたカレントブロックの参照ピクチャのタイプがSTRPであるかどうかを判定する。
ステップS92でカレントブロックの参照ピクチャのタイプがSTRPであると判定された場合、処理はステップS93に進む。ステップS93において、予測ベクトル生成部90は、保持している処理対象の候補ブロックの参照ピクチャのタイプがSTRPであるかどうかを判定する。
ステップS93で処理対象の候補ブロックの参照ピクチャのタイプがSTRPであると判定された場合、即ち、カレントブロックと候補ブロックの参照ピクチャのタイプが両方ともSTRPである場合、処理はステップS94に進む。
ステップS94において、予測ベクトル生成部90は、処理対象の候補ブロックをアベイラブルに設定する。ステップS95において、予測ベクトル生成部90は、カレントブロックの参照ピクチャと候補ブロックの参照ピクチャのPOCの差分に基づいて、処理対象の候補ブロックの動きベクトルであるリファレンス動きベクトルの候補をスケーリングし、予測ベクトルを生成する。そして、予測ベクトル生成部90は、その予測ベクトルを予測ベクトルリストに登録し、処理をステップS100に進める。
一方、ステップS92でカレントブロックの参照ピクチャのタイプがSTRPではないと判定された場合、即ちカレントブロックの参照ピクチャのタイプがLTRPである場合、処理はステップS96に進む。
ステップS96において、予測ベクトル生成部90は、ステップS93の処理と同様に、処理対象の候補ブロックの参照ピクチャのタイプがSTRPであるかどうかを判定する。ステップS96で処理対象の候補ブロックの参照ピクチャのタイプがSTRPであると判定された場合、即ちカレントブロックの参照ピクチャのタイプがLTRPであり、かつ、候補ブロックの参照ピクチャのタイプがSTRPである場合、処理はステップS97に進む。
ステップS97において、予測ベクトル生成部90は、処理対象の候補ブロックをノットアベイラブルに設定し、処理をステップS100に進める。
一方、ステップS93で、処理対象の候補ブロックの参照ピクチャのタイプがSTRPではないと判定された場合、即ち、カレントブロックの参照ピクチャのタイプがSTRPであり、かつ、候補ブロックの参照ピクチャのタイプがLTRPである場合、処理はステップS97に進む。これにより、処理対象の候補ブロックがノットアベイラブルに設定される。
また、ステップS96で処理対象の候補ブロックの参照ピクチャのタイプがSTRPではないと判定された場合、即ち、カレントブロックと候補ブロックの参照ピクチャのタイプが両方ともLTRPである場合、処理はステップS98に進む。
ステップS98において、予測ベクトル生成部90は、処理対象の候補ブロックをアベイラブルに設定する。ステップS99において、予測ベクトル生成部90は、処理対象の候補ブロックの動きベクトルであるリファレンス動きベクトルの候補を、そのまま予測ベクトルとして生成する。そして、予測ベクトル生成部90は、その予測ベクトルを予測ベクトルリストに登録し、処理をステップS100に進める。
ステップS100において、予測ベクトル生成部90は、所定数の予測ベクトルを予測ベクトルリストに登録したかどうかを判定する。ステップS100でまだ所定数の予測ベクトルを登録していないと判定された場合、処理はステップS91に戻り、まだ処理対象の候補ブロックに決定されていない、所定の空間方向候補ブロックまたは時間方向候補ブロックが、処理対象の候補ブロックに決定され、以降の処理が行われる。
一方、ステップS100で所定数の予測ベクトルを登録したと判定された場合、予測ベクトル生成部90は、予測ベクトルリストを差分ベクトル生成部91に供給する。そして、処理は図16のステップS37に戻り、ステップS38に進む。
以上のように、符号化装置50は、Intra BCに用いられるカレント動きベクトルを符号化する際に、カレントブロックの参照ピクチャの実際のタイプと、候補ブロックの参照ピクチャの実際のタイプとが異なる場合に、候補ブロックをノットアベイラブルに設定する。これにより、予測ベクトルの生成に、参照ピクチャの実際のタイプが、カレントブロックの参照ピクチャの実際のタイプと異なる候補ブロックの動きベクトルが用いられない。従って、差分ベクトルが小さくなり、符号化効率が向上する。
また、符号化装置50は、実際のタイプが「Intra BC」であるカレントブロックの参照ピクチャのタイプをLTRPとして設定することにより、候補ブロックの参照ピクチャの実際のタイプがSTRPである場合に、候補ブロックをノットアベイラブルに設定させる。従って、Intra BCとインター符号化を共通化していない場合のHEVCに対して大きな変更を行うことなく、Intra BCとインター符号化を共通化した場合の符号化効率を向上させることができる。
さらに、符号化装置50は、カレントブロックの参照ピクチャリストの所定の位置にカレントピクチャのピクチャ特定情報を登録する。従って、後述する復号装置は、参照ピクチャのピクチャ特定情報の参照ピクチャリスト内の位置に対応するインデックスに基づいて、参照ピクチャがカレントピクチャであるかどうかを認識することができる。その結果、参照ピクチャがカレントピクチャである場合に無駄にDRAMにアクセスすることを防止することができる。
(復号装置の第1実施の形態の構成例)
図20は、図13の符号化装置50から伝送される符号化ストリームを復号する、本開示を適用した画像処理装置としての復号装置の第1実施の形態の構成例を示すブロック図である。
図20の復号装置110は、受け取り部111、抽出部112、および復号部113により構成される。
復号装置110の受け取り部111は、図13の符号化装置50から伝送されてくる符号化ストリームを受け取り、抽出部112に供給する。
抽出部112は、受け取り部111から供給される符号化ストリームから、パラメータセットと符号化データを抽出し、復号部113に供給する。
復号部113は、抽出部112から供給される符号化データをHEVCに準ずる方式で復号する。このとき、復号部113は、必要に応じて、抽出部112から供給されるパラメータセットも参照する。復号部113は、復号の結果得られるピクチャを出力する。
(復号部の構成例)
図21は、図20の復号部113の構成例を示すブロック図である。
図21の復号部113は、蓄積バッファ131、可逆復号部132、逆量子化部133、逆直交変換部134、加算部135、フィルタ136、および画面並べ替えバッファ139を有する。また、復号部113は、D/A変換部140、フレームメモリ141、スイッチ142、イントラ予測部143、予測ベクトル生成部144、動きベクトル生成部145、リスト作成部146、動き補償部147、およびスイッチ148を有する。
復号部113の蓄積バッファ131は、図20の抽出部112から符号化データを受け取り、蓄積する。蓄積バッファ131は、蓄積されている符号化データを、カレントピクチャの符号化データとして可逆復号部132に供給する。
可逆復号部132は、蓄積バッファ131からの符号化データに対して、図14の可逆符号化部76の可逆符号化に対応する、可変長復号や算術復号等の可逆復号を施すことで、量子化された直交変換係数と符号化情報を得る。可逆復号部132は、量子化された直交変換係数を逆量子化部133に供給する。また、可逆復号部132は、符号化情報としてのイントラ予測モード情報などをイントラ予測部143に供給する。可逆復号部132は、参照ピクチャのインデックスを予測ベクトル生成部144に供給し、動きベクトル情報を動きベクトル生成部145に供給し、インター予測モード情報と参照ピクチャのインデックスを動き補償部147に供給する。
さらに、可逆復号部132は、符号化情報としてのイントラ予測モード情報またはインター予測モード情報をスイッチ148に供給する。可逆復号部132は、符号化情報としてのオフセットフィルタ情報をフィルタ136に供給する。
逆量子化部133、逆直交変換部134、加算部135、フィルタ136、フレームメモリ141、スイッチ142、イントラ予測部143、予測ベクトル生成部144、リスト作成部146、動き補償部147は、図14の逆量子化部79、逆直交変換部80、加算部81、フィルタ82、フレームメモリ85、スイッチ86、イントラ予測部87、予測ベクトル生成部90、リスト作成部88、動き予測・補償部89とそれぞれ同様の処理を行い、これにより、ピクチャが復号される。
具体的には、逆量子化部133は、可逆復号部132からの量子化された直交変換係数を逆量子化し、その結果得られる直交変換係数を逆直交変換部134に供給する。
逆直交変換部134は、逆量子化部133からの直交変換係数に対してTU単位で逆直交変換を行う。逆直交変換部134は、逆直交変換の結果得られる残差情報を加算部135に供給する。
加算部135は、逆直交変換部134から供給される残差情報と、スイッチ148から供給される予測画像を加算することにより、カレントピクチャを局所的に復号する。なお、スイッチ148から予測画像が供給されない場合、加算部135は、逆直交変換部134から供給される残差情報を復号結果とする。加算部135は、復号の結果得られる局所的に復号されたカレントピクチャをフレームメモリ141に供給する。また、加算部135は、全ての領域が復号されたカレントピクチャを復号済みのピクチャとしてフィルタ136に供給する。
フィルタ136は、加算部135から供給される復号済みのピクチャに対してフィルタ処理を行う。具体的には、フィルタ136は、まず、復号済みのピクチャに対してデブロックフィルタ処理を行う。次に、フィルタ136は、LCUごとに、可逆復号部132からのオフセットフィルタ情報が表すオフセットを用いて、デブロックフィルタ処理後の復号済みのピクチャに対して、オフセットフィルタ情報が表す種類の適応オフセットフィルタ処理を行う。フィルタ136は、適応オフセットフィルタ処理後の復号済みのピクチャをフレームメモリ141および画面並べ替えバッファ139に供給する。
画面並べ替えバッファ139は、フィルタ136から供給される復号済みのピクチャをフレーム単位で記憶する。画面並べ替えバッファ139は、記憶した符号化のための順番のフレーム単位の復号済みのピクチャを、元の表示の順番に並び替え、D/A変換部140に供給する。
D/A変換部140は、画面並べ替えバッファ139から供給されるフレーム単位の復号済みのピクチャをD/A変換し、出力する。
フレームメモリ141は、例えば、キャッシュとDRAMにより構成される。フレームメモリ141は、加算部135から供給されるカレントピクチャをキャッシュに記憶し、フィルタ136から供給される復号済みのピクチャをDRAMに記憶する。キャッシュに記憶されたカレントピクチャのうちのカレントブロックに隣接する画素は、周辺画素としてスイッチ142を介してイントラ予測部143に供給される。
また、キャッシュに記憶されたカレントピクチャ、または、DRAMに記憶された復号済みのピクチャは、参照ピクチャとしてスイッチ142を介して動き補償部147に出力される。
イントラ予測部143は、カレントブロックに対して、フレームメモリ141からスイッチ142を介して読み出された周辺画素を用いて、可逆復号部132から供給されるイントラ予測モード情報が示す最適イントラ予測モードのイントラ予測処理を行う。イントラ予測部143は、その結果生成される予測画像をスイッチ148に供給する。
予測ベクトル生成部144は、可逆復号部132から供給されるインデックスと、リスト作成部146に保持されている参照ピクチャリストに基づいて、図14の予測ベクトル生成部90と同様に、カレント動きベクトルの予測ベクトルリストを生成する。予測ベクトル生成部144は、予測ベクトルリストを動きベクトル生成部145に供給する。
動きベクトル生成部145は、可逆復号部132から供給される動きベクトル情報のうちのインデックスに基づいて、予測ベクトル生成部144から供給される予測ベクトルリストから、そのインデックスに対応する予測ベクトルを読み出す。動きベクトル生成部145は、その予測ベクトルと、動きベクトル情報のうちの差分ベクトルとを加算することにより、カレント動きベクトルを予測復号する。動きベクトル生成部145は、その結果生成されるカレント動きベクトルを、動き補償部147に供給する。
リスト作成部146は、図20の抽出部112により抽出されるSPSに含まれる参照ピクチャリスト情報、スライスヘッダに配置される情報等に基づいて、図14のリスト作成部88と同様に、参照ピクチャリスト作成処理を行う。リスト作成部146は、その結果作成される参照ピクチャリストを、保持するとともに、動き補償部147に供給する。
動き補償部147は、可逆復号部132からのインター予測モード情報および参照ピクチャのインデックス、並びに動きベクトル生成部145からのカレント動きベクトルに基づいて、カレントブロックに対して動き補償処理を行う。
具体的には、動き補償部147は、リスト作成部146に保持されているピクチャリストに登録されているピクチャ特定情報のうちの、参照ピクチャのインデックスのピクチャ特定情報を読み出す。動き補償部147は、フレームメモリ141からスイッチ142を介して、読み出されたピクチャ特定情報により特定される参照ピクチャを読み出す。動き補償部147は、参照ピクチャとカレント動きベクトルとを用いて、インター予測モード情報が示す最適インター予測モードのカレントブロックの動き補償処理を行う。動き補償部147は、その結果生成される予測画像をスイッチ148に供給する。
スイッチ148は、可逆復号部132からイントラ予測モード情報が供給された場合、イントラ予測部143から供給される予測画像を加算部135に供給する。一方、可逆復号部132からインター予測モード情報が供給された場合、スイッチ148は、動き補償部147から供給される予測画像を加算部135に供給する。
(復号装置の処理の説明)
図22は、図20の復号装置110の画像生成処理を説明するフローチャートである。
図22のステップS111において、復号装置110の受け取り部111は、図13の符号化装置50から伝送されてくる符号化ストリームを受け取り、抽出部112に供給する。
ステップS112において、抽出部112は、受け取り部111から供給される符号化ストリームから、符号化データとパラメータセットを抽出し、復号部113に供給する。
ステップS113において、復号部113は、必要に応じて抽出部112から供給されるパラメータセットを用いて、抽出部112から供給される符号化データをHEVCに準ずる方式で復号する復号処理を行う。この復号処理の詳細は、後述する図23を参照して説明する。そして、処理は終了する。
図23は、図22のステップS113の復号処理の詳細を説明するフローチャートである。
図23のステップS131において、復号部113の蓄積バッファ131(図21)は、抽出部112からフレーム単位の符号化データを受け取り、蓄積する。蓄積バッファ131は、蓄積されている符号化データをカレントピクチャの符号化データとして、可逆復号部132に供給する。
ステップS132において、可逆復号部132は、蓄積バッファ131からの符号化データを可逆復号し、量子化された直交変換係数と符号化情報を得る。可逆復号部132は、量子化された直交変換係数を逆量子化部133に供給する。
また、可逆復号部132は、符号化情報としてのイントラ予測モード情報などをイントラ予測部143に供給する。可逆復号部132は、参照ピクチャのインデックスを予測ベクトル生成部144に供給し、動きベクトル情報を動きベクトル生成部145に供給し、インター予測モード情報と参照ピクチャのインデックスを動き補償部147に供給する。
さらに、可逆復号部132は、符号化情報としてのイントラ予測モード情報またはインター予測モード情報をスイッチ148に供給する。可逆復号部132は、符号化情報としてのオフセットフィルタ情報をフィルタ136に供給する。
ステップS133において、リスト作成部146は、抽出部112により抽出されるSPSに含まれる参照ピクチャリスト情報、スライスヘッダに配置される情報等に基づいて、図18の参照ピクチャ作成処理と同様の参照ピクチャリスト作成処理を行う。
ステップS134において、逆量子化部133は、可逆復号部132からの量子化された直交変換係数を逆量子化し、その結果得られる直交変換係数を逆直交変換部134に供給する。
ステップS135において、逆直交変換部134は、逆量子化部133からの直交変換係数に対して逆直交変換を施し、その結果得られる残差情報を加算部135に供給する。
ステップS136において、動き補償部147は、可逆復号部132からインター予測モード情報が供給されたかどうかを判定する。ステップS136でインター予測モード情報が供給されたと判定された場合、処理はステップS137に進む。
ステップS137において、予測ベクトル生成部144は、可逆復号部132から供給されるインデックスと、リスト作成部146に保持されている参照ピクチャリストに基づいて、図19の予測ベクトルリスト生成処理と同様の予測ベクトルリスト生成処理を行う。
ステップS138において、動きベクトル生成部145は、動きベクトル情報のうちのインデックスに基づいて、予測ベクトルリストから、そのインデックスに対応する予測ベクトルを読み出す。動きベクトル生成部145は、その予測ベクトルと、動きベクトル情報のうちの差分ベクトルとを加算することにより、カレント動きベクトルを予測復号する。動きベクトル生成部145は、その結果生成されるカレント動きベクトルを、動き補償部147に供給する。
ステップS139において、動き補償部147は、可逆復号部132からのインター予測モード情報および参照ピクチャのインデックス、並びに動きベクトル生成部145からのカレント動きベクトルに基づいて、カレントブロックに対して動き補償処理を行う。動き補償部147は、その結果生成される予測画像をスイッチ148に供給し、処理をステップS141に進める。
一方、ステップS136でインター予測モード情報が供給されていないと判定された場合、即ちイントラ予測モード情報がイントラ予測部143に供給された場合、処理はステップS140に進む。
ステップS140において、イントラ予測部143は、カレントブロックに対して、フレームメモリ141からスイッチ142を介して読み出された周辺画素を用いて、イントラ予測モード情報が示す最適イントラ予測モードのイントラ予測処理を行う。イントラ予測部143は、イントラ予測処理の結果生成される予測画像を、スイッチ148を介して加算部135に供給し、処理をステップS141に進める。
ステップS141において、加算部135は、逆直交変換部134から供給される残差情報と、スイッチ148から供給される予測画像を加算することにより、カレントピクチャを局所的に復号する。加算部135は、復号の結果得られる局所的に復号されたカレントピクチャをフレームメモリ141に供給する。また、加算部135は、全ての領域が復号されたカレントピクチャを復号済みのピクチャとしてフィルタ136に供給する。
ステップS142において、フィルタ136は、加算部135から供給される復号済みのピクチャに対してデブロックフィルタ処理を行い、ブロック歪を除去する。
ステップS143において、フィルタ136は、可逆復号部132から供給されるオフセットフィルタ情報に基づいて、デブロックフィルタ処理後の復号済みのピクチャに対して、LCUごとに適応オフセットフィルタ処理を行う。フィルタ136は、適応オフセットフィルタ処理後の画像を、画面並べ替えバッファ139とフレームメモリ141に供給する。
ステップS144において、フレームメモリ141は、加算部81から供給されるカレントピクチャをキャッシュに記憶し、フィルタ136から供給される復号済みのピクチャをDRAMに記憶する。キャッシュに記憶されたカレントピクチャのうちのカレントブロックに隣接する画素は、周辺画素としてスイッチ142を介してイントラ予測部143に供給される。また、キャッシュに記憶されたカレントピクチャ、または、DRAMに記憶された復号済みのピクチャは、参照ピクチャとしてスイッチ142を介して動き補償部147に出力される。
ステップS145において、画面並べ替えバッファ139は、フィルタ136から供給される復号済みのピクチャをフレーム単位で記憶し、記憶した符号化のための順番のフレーム単位のピクチャを、元の表示の順番に並び替え、D/A変換部140に供給する。
ステップS146において、D/A変換部140は、画面並べ替えバッファ139から供給されるフレーム単位のピクチャをD/A変換し、出力する。そして、処理は、図22のステップS113に戻り、終了する。
以上のように、復号装置110は、Intra BCに用いられるカレント動きベクトルを復号する際に、カレントブロックの参照ピクチャの実際のタイプと、候補ブロックの参照ピクチャの実際のタイプとが異なる場合に、候補ブロックをノットアベイラブルに設定する。これにより、予測ベクトルの生成に、参照ピクチャの実際のタイプが、カレントブロックの参照ピクチャの実際のタイプと異なる候補ブロックの動きベクトルが用いられない。
従って、予測ベクトルの生成に、参照ピクチャの実際のタイプが、カレントブロックの参照ピクチャの実際のタイプと異なる候補ブロックのリファレンス動きベクトルを用いないことにより符号化効率を向上させた符号化ストリームを復号することができる。
また、復号装置110は、実際のタイプが「Intra BC」であるカレントブロックの参照ピクチャのタイプをLTRPとして設定することにより、候補ブロックの参照ピクチャの実際のタイプがSTRPである場合に、候補ブロックをノットアベイラブルに設定させる。従って、Intra BCとインター符号化を共通化していない場合のHEVCに対して大きな変更を行うことなく、Intra BCとインター符号化を共通化した場合の符号化効率を向上させた符号化ストリームを復号することができる。
さらに、復号装置110は、カレントブロックの参照ピクチャリストの所定の位置にカレントピクチャのピクチャ特定情報を登録する。従って、復号装置110は、参照ピクチャのピクチャ特定情報の参照ピクチャリスト内の位置に対応するインデックスに基づいて、参照ピクチャがカレントピクチャであるかどうかを認識することができる。その結果、参照ピクチャがカレントピクチャである場合に無駄にDRAMにアクセスすることを防止することができる。
<第2実施の形態>
(第2実施の形態の概要)
まず、図24乃至図27を参照して、第2実施の形態の概要について説明する。
第2実施の形態では、Intra BCにおける参照ピクチャであるカレントピクチャのタイプをLTRPに設定するのではなく、参照ピクチャの実際のタイプが「Intra BC」である場合の予測ベクトルリストの生成方法を変更することにより、Intra BCとインター符号化を共通化した場合の符号化効率を向上させる。
図24乃至図26は、第2実施の形態における参照ピクチャの実際のタイプが「Intra BC」である場合の予測ベクトルリストの生成方法を説明する図である。
なお、DiffPicOrderCnt(X,Y)は、ピクチャXとピクチャYのPOCの差分(X-Y)を表す。また、RefPicListX[refIdxLX]およびLX[refIdxLX](X=0またはX=1)は、カレントブロックを含むスライスの符号化に用いられる参照ピクチャリストRefPicListXに登録されているピクチャ特定情報のうちの、カレントブロックの参照ピクチャのインデックスrefIdxLXのピクチャ特定情報により特定される参照ピクチャを表す。
また、CurrPicは、カレントピクチャを表し、ColPicは、時間方向候補ブロックのピクチャを表す。さらに、xNbAK,yNbAKは、それぞれ、カレントブロックの左、左上、または左下に隣接する空間方向候補ブロック(以下、左候補ブロックという)のx方向の位置とy方向の位置を表す。xNbBK,yNbBKは、それぞれ、カレントブロックの上または右上に隣接する空間方向候補ブロック(以下、上候補ブロックという)のx方向の位置とy方向の位置を表す。
listCol[refIdxCol]は、時間方向候補ブロックを含むスライスの符号化に用いられる参照ピクチャリストRefPicListXに登録されているピクチャ特定情報のうちの、時間方向候補ブロックの参照ピクチャのインデックスrefIdxColのピクチャ特定情報により特定される参照ピクチャを表す。
図24に示すように、第2実施の形態では、処理対象の候補ブロックが左候補ブロックである場合、DiffPicOrderCnt(RefPicListX[refIdxLX], CurrPic) = 0であり、かつ、DiffPicOrderCnt( RefPicListX[refIdxLX], CurrPic)とDiffPicOrderCnt( RefPicListX[RefIdxLX [xNbAK][yNbAK]], CurrPic)が等しいとき、処理対象の候補ブロックは、アベイラブルに設定される。
即ち、カレントピクチャの参照ピクチャと左候補ブロックの参照ピクチャがカレントピクチャである場合、つまり、カレントピクチャの参照ピクチャと左候補ブロックの参照ピクチャの実際のタイプが「Intra BC」である場合、左候補ブロックは、アベイラブルに設定される。そして、左候補ブロックの動きベクトルであるリファレンス動きベクトルの候補が、そのまま予測ベクトルとして生成される。
同様に、第2実施の形態では、図25に示すように、処理対象の候補ブロックが上候補ブロックである場合、DiffPicOrderCnt(RefPicListX[refIdxLX], CurrPic) = 0であり、かつ、DiffPicOrderCnt(RefPicListX[refIdxLX], CurrPic)とDiffPicOrderCnt(RefPicListX[RefIdxLX [xNbBK][yNbBK]], CurrPic)が等しいとき、処理対象の候補ブロックは、アベイラブルに設定される。
即ち、カレントピクチャの参照ピクチャと上候補ブロックの参照ピクチャの実際のタイプが「Intra BC」である場合、上候補ブロックは、アベイラブルに設定される。そして、上候補ブロックの動きベクトルであるリファレンス動きベクトルの候補が、そのまま予測ベクトルとして生成される。この予測ベクトルの生成は、参照ピクチャが登録されている参照ピクチャリストごとに行われる。
また、第2実施の形態では、図26に示すように、処理対象の候補ブロックが時間方向候補ブロックである場合、DiffPicOrderCnt(LX[refIdxLX], CurrPic) = 0であり、かつ、DiffPicOrderCnt(LX[refIdxLX], CurrPic)とDiffPicOrderCnt(listCol[refIdxCol],ColPic)for colPbが等しいとき、処理対象の候補ブロックは、アベイラブルに設定される。
即ち、カレントピクチャの参照ピクチャと時間方向候補ブロックの参照ピクチャの実際のタイプが「Intra BC」である場合、時間方向候補ブロックは、アベイラブルに設定される。そして、時間方向候補ブロックの動きベクトルであるリファレンス動きベクトルの候補が、そのまま予測ベクトルとして生成される。
その結果、図27に示すように、カレントピクチャの参照ピクチャの実際のタイプが「Intra BC」である場合、候補ブロックの参照ピクチャの実際のタイプが「Intra BC」である場合にのみ、候補ブロックの動きベクトルが、そのまま予測ベクトルとして生成される。一方、それ以外の場合、候補ブロックがノットアベイラブルに設定される。なお、実際のタイプが「Intra BC」である参照ピクチャの候補のタイプは、STRPに設定される。
第2実施の形態の符号化装置および復号装置の構成は、リスト作成部88およびリスト作成部146で行われる参照ピクチャリスト作成処理と、予測ベクトル生成部90および予測ベクトル生成部144で行われる予測ベクトルリスト生成処理を除いて、図13の符号化装置50および図20の復号装置110の構成と同様である。従って、以下では、図13の符号化装置50および図20の復号装置110の各部を、第2実施の形態の符号化装置および復号装置の各部として用いて、参照ピクチャリスト作成処理と予測ベクトル生成処理についてのみ説明する。
(符号化装置の処理の説明)
図28は、第2実施の形態の符号化装置50のリスト作成部88の参照ピクチャリスト作成処理を説明するフローチャートである。
図28のステップS161において、リスト作成部88は、図18のステップS71の処理と同様に、4つの個別リストを作成する。各個別リストのピクチャ特定情報には、STRPまたはLTRPが設定されている。
ステップS162において、リスト作成部88は、参照ピクチャのタイプとしてSTRPが設定された、カレントピクチャのピクチャ特定情報が登録されるカレントピクチャリストを作成する。
ステップS163乃至S166の処理は、図18のステップS73乃至S76の処理と同様であるので、説明は省略する。
なお、図示は省略するが、第2実施の形態の復号装置110のリスト作成部146の参照ピクチャリスト作成処理も、図28の参照ピクチャリスト作成処理と同様に行われる。
図29は、第2実施の形態の符号化装置50の予測ベクトル生成部90の予測ベクトルリスト生成処理の詳細を説明するフローチャートである。この予測ベクトルリスト生成処理は、参照ピクチャが登録されている参照ピクチャリストごとに行われる。
図29のステップS181乃至S183の処理は、図19のステップS91乃至S93の処理と同様であるので、説明は省略する。ステップS183で処理対象の候補ブロックの参照ピクチャのタイプがSTRPであると判定された場合、処理はステップS184に進む。
ステップS184において、予測ベクトル生成部90は、カレントブロックと候補ブロックの参照ピクチャの実際のタイプが、両方ともSTRPであるかどうかを判定する。具体的には、例えば、予測ベクトル生成部90は、カレントブロックの参照ピクチャとカレントピクチャのPOCの差分、および、候補ブロックの参照ピクチャと候補ブロックのピクチャのPOCの差分が、両方とも1以上であるかどうかを判定する。
そして、予測ベクトル生成部90は、カレントブロックの参照ピクチャとカレントピクチャのPOCの差分、および、候補ブロックの参照ピクチャと候補ブロックのピクチャのPOCの差分が、両方とも1以上であると判定した場合、カレントブロックと候補ブロックの参照ピクチャの実際のタイプが、両方ともSTRPであると判定し、処理をステップS185に進める。
ステップS185およびS186の処理は、図19のステップS94およびS95の処理と同様であるので、説明は省略する。
一方、予測ベクトル生成部90は、カレントブロックの参照ピクチャとカレントピクチャのPOCの差分、および、候補ブロックの参照ピクチャと候補ブロックのピクチャのPOCの差分の少なくとも一方が0である場合、ステップS184で、カレントブロックと候補ブロックの参照ピクチャの実際のタイプの少なくとも一方がSTRPではないと判定する。
そして、ステップS187において、予測ベクトル生成部90は、カレントブロックと候補ブロックの参照ピクチャの実際のタイプが、両方とも「Intra BC」であるかどうかを判定する。具体的には、予測ベクトル生成部90は、カレントブロックの参照ピクチャとカレントピクチャのPOCの差分、および、候補ブロックの参照ピクチャと候補ブロックのピクチャのPOCが0であるかどうかを判定する。
そして、予測ベクトル生成部90は、カレントブロックの参照ピクチャとカレントピクチャのPOCの差分、または、候補ブロックの参照ピクチャと候補ブロックのピクチャのPOCが0ではないと判定した場合、カレントブロックと候補ブロックの参照ピクチャの実際のタイプのいずれか一方が、「Intra BC」ではないと判定し、処理をステップS188に進める。
即ち、カレントブロックの参照ピクチャがカレントピクチャであるが、候補ブロックのピクチャと候補ブロックの参照ピクチャとが異なる場合、および、候補ブロックのピクチャと候補ブロックの参照ピクチャとが同一であるが、カレントブロックの参照ピクチャがカレントピクチャではない場合、予測ベクトル生成部90は、カレントブロックの参照ピクチャの実際のタイプと、候補ブロックの参照ピクチャの実際のタイプとが異なると判定し、処理をステップS188に進める。
ステップS188において、予測ベクトル生成部90は、処理対象の候補ブロックをノットアベイラブルに設定する。
また、ステップS182でカレントブロックの参照ピクチャのタイプがSTRPではないと判定された場合、即ちカレントブロックの参照ピクチャのタイプがLTRPである場合、処理はステップS189に進む。
ステップS189において、予測ベクトル生成部90は、ステップS183の処理と同様に、処理対象の候補ブロックの参照ピクチャのタイプがSTRPであるかどうかを判定する。ステップS189で処理対象の候補ブロックの参照ピクチャのタイプがSTRPであると判定された場合、即ちカレントブロックの参照ピクチャのタイプがLTRPであり、かつ、候補ブロックの参照ピクチャのタイプがSTRPである場合、処理はステップS188に進む。これにより、処理対象の候補ブロックはノットアベイラブルに設定される。
一方、ステップS189で処理対象の候補ブロックの参照ピクチャのタイプがSTRPではないと判定された場合、即ち、カレントブロックと候補ブロックの参照ピクチャのタイプが両方ともLTRPである場合、処理はステップS190に進む。ステップS190およびS191の処理は、図19のステップS98およびS99の処理と同様であるので、説明は省略する。
一方、予測ベクトル生成部90は、カレントブロックの参照ピクチャとカレントピクチャのPOCの差分、および、候補ブロックの参照ピクチャと候補ブロックのピクチャのPOCの差分が0であると判定した場合、ステップS187で、カレントブロックと候補ブロックの参照ピクチャの実際のタイプが、両方とも「Intra BC」であると判定する。
そして、予測ベクトル生成部90は、処理をステップS190に進める。これにより、処理対象の候補ブロックはアベイラブルに設定され、処理対象の候補ブロックのリファレンス動きベクトルの候補は、予測ベクトルとして生成される。
ステップS186,S188、またはS191の処理後、処理はステップS192に進む。ステップS192の処理は、図19のステップS100の処理と同様であるので、説明は省略する。
なお、図示は省略するが、第2実施の形態の復号装置110の予測ベクトル生成部144の予測ベクトルリスト生成処理も、図29の予測ベクトルリスト生成処理と同様に行われる。
<第3実施の形態>
(第3実施の形態の概要)
第3実施の形態では、参照ピクチャリストではなく、テンポラルリストの先頭にカレントピクチャのピクチャ特定情報が登録される。
即ち、第3実施の形態では、図30に示すように、図10の個別リストに基づいて、RefpicListTemp0リストとRefpicListTemp1リストの2つのテンポラルリストが作成された後、テンポラルリストの先頭にカレントピクチャのピクチャ特定情報が登録される。
次に、RefpicListTemp0リストとRefpicListTemp1リストに登録されているピクチャ特定情報の順番が、必要に応じて変更される(Reference reordering)。但し、カレントピクチャのピクチャ特定情報の順番の変更は禁止される。
最後に、RefpicListTemp0リストに登録されている、先頭のピクチャ特定情報と、num_ref_idx_l0_active_minus1に1を加算した数(図30の例では5つ)のピクチャ特定情報とが、先頭から順に登録された参照ピクチャリストRefpicList0が作成される。
また、RefpicListTemp1リストに登録されている、先頭のピクチャ特定情報と、num_ref_idx_l1_active_minus1に1を加算した数(図30の例では4つ)のピクチャ特定情報とが、先頭から順に登録された参照ピクチャリストRefpicList1が作成される。
第3実施の形態の符号化装置および復号装置の構成は、リスト作成部88およびリスト作成部146で行われる参照ピクチャリスト作成処理を除いて、図13の符号化装置50および図20の復号装置110の構成と同様である。従って、以下では、図13の符号化装置50および図20の復号装置110の各部を、第3実施の形態の符号化装置および復号装置の各部として用いて、参照ピクチャリスト作成処理についてのみ説明する。
(符号化装置の処理の説明)
図31は、第3実施の形態の符号化装置50のリスト作成部88の参照ピクチャリスト作成処理を説明するフローチャートである。
図31のステップS201乃至S203の処理は、図18のステップS71乃至S73の処理と同様であるので、説明は省略する。
ステップS204において、リスト作成部88は、テンポラルリストの先頭に、カレントピクチャリストに登録されているカレントピクチャのピクチャ特定情報を登録する。
ステップS205において、リスト作成部88は、スライスヘッダに配置されるref_pic_list_modificationに基づいて、カレントピクチャのピクチャ特定情報以外のテンポラルリスト内のピクチャ特定情報の順番を入れ替える。
ステップS206において、リスト作成部88は、テンポラルリストに基づいて参照ピクチャリストを作成する。即ち、リスト作成部88は、テンポラルリストに登録されている、先頭のピクチャ特定情報と、スライスヘッダに配置されるnum_ref_idx_l0_active_minus1(num_ref_idx_l1_active_minus1)に1を加算した数のピクチャ特定情報とを、先頭から順に登録した参照ピクチャリストを作成する。
なお、図示は省略するが、第3実施の形態の復号装置110のリスト作成部146の参照ピクチャリスト作成処理も、図31の参照ピクチャリスト作成処理と同様に行われる。
<第4実施の形態>
(本開示を適用したコンピュータの説明)
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図32は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)201,ROM(Read Only Memory)202,RAM(Random Access Memory)203は、バス204により相互に接続されている。
バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記憶部208、通信部209、及びドライブ210が接続されている。
入力部206は、キーボード、マウス、マイクロホンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記憶部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインタフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア211を駆動する。
以上のように構成されるコンピュータでは、CPU201が、例えば、記憶部208に記憶されているプログラムを、入出力インタフェース205及びバス204を介して、RAM203にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インタフェース205を介して、記憶部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記憶部208にインストールすることができる。その他、プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
<第5実施の形態>
(テレビジョン装置の構成例)
図33は、本開示を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース部909を有している。さらに、テレビジョン装置900は、制御部910、ユーザインタフェース部911等を有している。
チューナ902は、アンテナ901で受信された放送波信号から所望のチャンネルを選局して復調を行い、得られた符号化ビットストリームをデマルチプレクサ903に出力する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象である番組の映像や音声のパケットを抽出して、抽出したパケットのデータをデコーダ904に出力する。また、デマルチプレクサ903は、EPG(Electronic Program Guide)等のデータのパケットを制御部910に供給する。なお、スクランブルが行われている場合、デマルチプレクサ等でスクランブルの解除を行う。
デコーダ904は、パケットの復号化処理を行い、復号処理化によって生成された映像データを映像信号処理部905、音声データを音声信号処理部907に出力する。
映像信号処理部905は、映像データに対して、ノイズ除去やユーザ設定に応じた映像処理等を行う。映像信号処理部905は、表示部906に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成する。また、映像信号処理部905は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それを番組の映像データに重畳する。映像信号処理部905は、このようにして生成した映像データに基づいて駆動信号を生成して表示部906を駆動する。
表示部906は、映像信号処理部905からの駆動信号に基づき表示デバイス(例えば液晶表示素子等)を駆動して、番組の映像などを表示させる。
音声信号処理部907は、音声データに対してノイズ除去などの所定の処理を施し、処理後の音声データのD/A変換処理や増幅処理を行いスピーカ908に供給することで音声出力を行う。
外部インタフェース部909は、外部機器やネットワークと接続するためのインタフェースであり、映像データや音声データ等のデータ送受信を行う。
制御部910にはユーザインタフェース部911が接続されている。ユーザインタフェース部911は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部910に供給する。
制御部910は、CPU(Central Processing Unit)やメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータ、EPGデータ、ネットワークを介して取得されたデータ等を記憶する。メモリに記憶されているプログラムは、テレビジョン装置900の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、テレビジョン装置900がユーザ操作に応じた動作となるように各部を制御する。
なお、テレビジョン装置900では、チューナ902、デマルチプレクサ903、映像信号処理部905、音声信号処理部907、外部インタフェース部909等と制御部910を接続するためバス912が設けられている。
このように構成されたテレビジョン装置では、デコーダ904に本願の復号装置(復号方法)の機能が設けられる。このため、画面内の相関性を利用した予測を行う際の符号化効率を向上させた符号化ストリームを復号することができる。
<第6実施の形態>
(携帯電話機の構成例)
図34は、本開示を適用した携帯電話機の概略構成を例示している。携帯電話機920は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931を有している。これらは、バス933を介して互いに接続されている。
また、通信部922にはアンテナ921が接続されており、音声コーデック923には、スピーカ924とマイクロホン925が接続されている。さらに制御部931には、操作部932が接続されている。
携帯電話機920は、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
音声通話モードにおいて、マイクロホン925で生成された音声信号は、音声コーデック923で音声データへの変換やデータ圧縮が行われて通信部922に供給される。通信部922は、音声データの変調処理や周波数変換処理等を行い、送信信号を生成する。また、通信部922は、送信信号をアンテナ921に供給して図示しない基地局へ送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、得られた音声データを音声コーデック923に供給する。音声コーデック923は、音声データのデータ伸張やアナログ音声信号への変換を行いスピーカ924に出力する。
また、データ通信モードにおいて、メール送信を行う場合、制御部931は、操作部932の操作によって入力された文字データを受け付けて、入力された文字を表示部930に表示する。また、制御部931は、操作部932におけるユーザ指示等に基づいてメールデータを生成して通信部922に供給する。通信部922は、メールデータの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、メールデータを復元する。このメールデータを、表示部930に供給して、メール内容の表示を行う。
なお、携帯電話機920は、受信したメールデータを、記録再生部929で記憶媒体に記憶させることも可能である。記憶媒体は、書き換え可能な任意の記憶媒体である。例えば、記憶媒体は、RAMや内蔵型フラッシュメモリ等の半導体メモリ、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Universal Serial Bus)メモリ、またはメモリカード等のリムーバブルメディアである。
データ通信モードにおいて画像データを送信する場合、カメラ部926で生成された画像データを、画像処理部927に供給する。画像処理部927は、画像データの符号化処理を行い、符号化データを生成する。
多重分離部928は、画像処理部927で生成された符号化データと、音声コーデック923から供給された音声データを所定の方式で多重化して通信部922に供給する。通信部922は、多重化データの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、多重化データを復元する。この多重化データを多重分離部928に供給する。多重分離部928は、多重化データの分離を行い、符号化データを画像処理部927、音声データを音声コーデック923に供給する。画像処理部927は、符号化データの復号化処理を行い、画像データを生成する。この画像データを表示部930に供給して、受信した画像の表示を行う。音声コーデック923は、音声データをアナログ音声信号に変換してスピーカ924に供給して、受信した音声を出力する。
このように構成された携帯電話装置では、画像処理部927に本願の符号化装置および復号装置(符号化方法および復号方法)の機能が設けられる。このため、画面内の相関性を利用した予測を行う際の符号化効率を向上させることができる。また、画面内の相関性を利用した予測を行う際の符号化効率を向上させた符号化ストリームを復号することができる。
<第7実施の形態>
(記録再生装置の構成例)
図35は、本開示を適用した記録再生装置の概略構成を例示している。記録再生装置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に出力する。
外部インタフェース部942は、IEEE1394インタフェース、ネットワークインタフェース部、USBインタフェース、フラッシュメモリインタフェース等の少なくともいずれかで構成されている。外部インタフェース部942は、外部機器やネットワーク、メモリカード等と接続するためのインタフェースであり、記録する映像データや音声データ等のデータ受信を行う。
エンコーダ943は、外部インタフェース部942から供給された映像データや音声データが符号化されていないとき所定の方式で符号化を行い、符号化ビットストリームをセレクタ946に出力する。
HDD部944は、映像や音声等のコンテンツデータ、各種プログラムやその他のデータ等を内蔵のハードディスクに記録し、また再生時等にそれらを当該ハードディスクから読み出す。
ディスクドライブ945は、装着されている光ディスクに対する信号の記録および再生を行う。光ディスク、例えばDVDディスク(DVD−Video、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等)やBlu−ray(登録商標)ディスク等である。
セレクタ946は、映像や音声の記録時には、チューナ941またはエンコーダ943からのいずれかの符号化ビットストリームを選択して、HDD部944やディスクドライブ945のいずれかに供給する。また、セレクタ946は、映像や音声の再生時に、HDD部944またはディスクドライブ945から出力された符号化ビットストリームをデコーダ947に供給する。
デコーダ947は、符号化ビットストリームの復号化処理を行う。デコーダ947は、復号処理化を行うことにより生成された映像データをOSD部948に供給する。また、デコーダ947は、復号処理化を行うことにより生成された音声データを出力する。
OSD部948は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それをデコーダ947から出力された映像データに重畳して出力する。
制御部949には、ユーザインタフェース部950が接続されている。ユーザインタフェース部950は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部949に供給する。
制御部949は、CPUやメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータを記憶する。メモリに記憶されているプログラムは、記録再生装置940の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、記録再生装置940がユーザ操作に応じた動作となるように各部を制御する。
このように構成された記録再生装置では、エンコーダ943に本願の符号化装置(符号化方法)の機能が設けられ、デコーダ947に本願の復号装置(復号方法)の機能が設けられる。このため、画面内の相関性を利用した予測を行う際の符号化効率を向上させることができる。また、画面内の相関性を利用した予測を行う際の符号化効率を向上させた符号化ストリームを復号することができる。
<第8実施の形態>
(撮像装置の構成例)
図36は、本開示を適用した撮像装置の概略構成を例示している。撮像装置960は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、カメラ信号処理部963、画像データ処理部964、表示部965、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970を有している。また、制御部970には、ユーザインタフェース部971が接続されている。さらに、画像データ処理部964や外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970等は、バス972を介して接続されている。
光学ブロック961は、フォーカスレンズや絞り機構等を用いて構成されている。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCDまたはCMOSイメージセンサを用いて構成されており、光電変換によって光学像に応じた電気信号を生成してカメラ信号処理部963に供給する。
カメラ信号処理部963は、撮像部962から供給された電気信号に対してニー補正やガンマ補正、色補正等の種々のカメラ信号処理を行う。カメラ信号処理部963は、カメラ信号処理後の画像データを画像データ処理部964に供給する。
画像データ処理部964は、カメラ信号処理部963から供給された画像データの符号化処理を行う。画像データ処理部964は、符号化処理を行うことにより生成された符号化データを外部インタフェース部966やメディアドライブ968に供給する。また、画像データ処理部964は、外部インタフェース部966やメディアドライブ968から供給された符号化データの復号化処理を行う。画像データ処理部964は、復号化処理を行うことにより生成された画像データを表示部965に供給する。また、画像データ処理部964は、カメラ信号処理部963から供給された画像データを表示部965に供給する処理や、OSD部969から取得した表示用データを、画像データに重畳させて表示部965に供給する。
OSD部969は、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを生成して画像データ処理部964に出力する。
外部インタフェース部966は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタと接続される。また、外部インタフェース部966には、必要に応じてドライブが接続され、磁気ディスク、光ディスク等のリムーバブルメディアが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、インストールされる。さらに、外部インタフェース部966は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。制御部970は、例えば、ユーザインタフェース部971からの指示にしたがって、メディアドライブ968から符号化データを読み出し、それを外部インタフェース部966から、ネットワークを介して接続される他の装置に供給させることができる。また、制御部970は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース部966を介して取得し、それを画像データ処理部964に供給したりすることができる。
メディアドライブ968で駆動される記録メディアとしては、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアが用いられる。また、記録メディアは、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触IC(Integrated Circuit)カード等であってもよい。
また、メディアドライブ968と記録メディアを一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
制御部970は、CPUを用いて構成されている。メモリ部967は、制御部970により実行されるプログラムや制御部970が処理を行う上で必要な各種のデータ等を記憶する。メモリ部967に記憶されているプログラムは、撮像装置960の起動時などの所定タイミングで制御部970により読み出されて実行される。制御部970は、プログラムを実行することで、撮像装置960がユーザ操作に応じた動作となるように各部を制御する。
このように構成された撮像装置では、画像データ処理部964に本願の符号化装置および復号装置(符号化方法および復号方法)の機能が設けられる。このため、画面内の相関性を利用した予測を行う際の符号化効率を向上させることができる。また、画面内の相関性を利用した予測を行う際の符号化効率を向上させた符号化ストリームを復号することができる。
<第9実施の形態>
(実施のその他の例)
以上において本開示を適用する装置やシステム等の例を説明したが、本開示は、これに限らず、このような装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
(ビデオセットの構成例)
本開示をセットとして実施する場合の例について、図37を参照して説明する。図37は、本開示を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図37に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図37に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図37の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図37のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方若しくは両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信に関する処理を行うプロセッサ(若しくはモジュール)である。例えば、ブロードバンドモデム1333は、送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。例えば、ブロードバンドモデム1333は、ビデオプロセッサ1332が処理する画像データや画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報をデジタル変調・復調することができる。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図37において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図37に示されるように、フロントエンドモジュール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は、本開示を適用したセットとして実施することができる。
(ビデオプロセッサの構成例)
図38は、本開示を適用したビデオプロセッサ1332(図37)の概略的な構成の一例を示している。
図38の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図38に示されるように、ビデオプロセッサ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(図37)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部1402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部1403は、画像データに対して、ビデオ出力処理部1404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部1402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部1404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ1321(図37)等に出力する。
フレームメモリ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(図37)等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ1410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ1409Aに順次書き込む。オーディオデコーダ1411は、オーディオESバッファ1409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ1321(図37)等に供給する。
多重化部(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等(いずれも図37)から供給されたトランスポートストリームを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321により(図37)各種記録媒体から読み出されたファイルデータを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
ストリームバッファ1414は、ビットストリームをバッファリングする。例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図37)等に供給する。
また、例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321(図37)等に供給し、各種記録媒体に記録させる。
さらに、ストリームバッファ1414は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図37)を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
また、ストリームバッファ1414は、例えばコネクティビティ1321(図37)等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
次に、このような構成のビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321(図37)等からビデオプロセッサ1332に入力されたビデオ信号は、ビデオ入力処理部1401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ1405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部1402または第2画像拡大縮小部1403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ1405に書き込まれる。この画像データは、エンコード・デコードエンジン1407によって符号化され、ビデオストリームとしてビデオESバッファ1408Aに書き込まれる。
また、コネクティビティ1321(図37)等からビデオプロセッサ1332に入力されたオーディオ信号は、オーディオエンコーダ1410によって符号化され、オーディオストリームとして、オーディオESバッファ1409Aに書き込まれる。
ビデオESバッファ1408Aのビデオストリームと、オーディオESバッファ1409Aのオーディオストリームは、多重化部(MUX)1412に読み出されて多重化され、トランスポートストリーム若しくはファイルデータ等に変換される。多重化部(MUX)1412により生成されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図37)等を介して外部ネットワークに出力される。また、多重化部(MUX)1412により生成されたファイルデータは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321(図37)等に出力され、各種記録媒体に記録される。
また、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図37)等を介して外部ネットワークからビデオプロセッサ1332に入力されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。また、例えばコネクティビティ1321(図37)等において各種記録媒体から読み出され、ビデオプロセッサ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乃至第3実施の形態に係る符号化装置や復号装置の機能を有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図31を参照して上述した効果と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本開示(すなわち、上述した各実施形態に係る符号化装置や復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
(ビデオプロセッサの他の構成例)
図39は、本開示を適用したビデオプロセッサ1332(図37)の概略的な構成の他の例を示している。図39の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能を有する。
より具体的には、図39に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図39に示されるように、制御部1511は、例えば、メインCPU1531、サブCPU1532、およびシステムコントローラ1533を有する。メインCPU1531は、ビデオプロセッサ1332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU1531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU1532は、メインCPU1531の補助的な役割を果たす。例えば、サブCPU1532は、メインCPU1531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ1533は、メインCPU1531およびサブCPU1532が実行するプログラムを指定する等、メインCPU1531およびサブCPU1532の動作を制御する。
ディスプレイインタフェース1512は、制御部1511の制御の下、画像データを例えばコネクティビティ1321(図37)等に出力する。例えば、ディスプレイインタフェース1512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ1321(図37)のモニタ装置等に出力する。
ディスプレイエンジン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は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化若しくは符号化データの復号を行うようにしてもよい。
図39に示される例において、コーデックエンジン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(いずれも図37)等向けのインタフェースである。ビデオインタフェース1520は、例えばコネクティビティ1321やカメラ1322(いずれも図37)等向けのインタフェースである。
次に、このようなビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321やブロードバンドモデム1333(いずれも図37)等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース1519を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、例えば、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図37)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてファイルデータに変換され、ビデオインタフェース1520を介して例えばコネクティビティ1321(図37)等に出力され、各種記録媒体に記録される。
さらに、例えば、コネクティビティ1321(図37)等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース1520を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図37)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース1519を介して例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図37)等に供給され図示せぬ他の装置に伝送される。
なお、ビデオプロセッサ1332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ1515や外部メモリ1312を利用して行われる。また、パワーマネージメントモジュール1313は、例えば制御部1511への電力供給を制御する。
このように構成されるビデオプロセッサ1332に本開示を適用する場合、コーデックエンジン1516に、上述した各実施形態に係る本開示を適用すればよい。つまり、例えば、コーデックエンジン1516が、第1乃至第3実施の形態に係る符号化装置や復号装置を実現する機能ブロックを有するようにすればよい。コーデックエンジン1516が、このようにすることにより、ビデオプロセッサ1332は、図1乃至図31を参照して上述した効果と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本開示(すなわち、上述した各実施形態に係る符号化装置や復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
(装置への適用例)
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図33)、携帯電話機920(図34)、記録再生装置940(図35)、撮像装置960(図36)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図31を参照して上述した効果と同様の効果を得ることができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本開示を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本開示を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を本開示を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本開示を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図31を参照して上述した効果と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図33)、携帯電話機920(図34)、記録再生装置940(図35)、撮像装置960(図36)等に組み込むことができる。そして、本開示を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図31を参照して上述した効果と同様の効果を得ることができる。
なお、本明細書では、各種情報が、符号化データに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化データに多重化されることなく、符号化データと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライスやブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、符号化データとは別の伝送路上で伝送されてもよい。また、情報は、符号化データとは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と符号化データとは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
本開示は、MPEG,H.26x等のように、離散コサイン変換等の直交変換と動き補償によって圧縮されたビットストリームを、衛星放送、ケーブルTV、インターネット、携帯電話などのネットワークメディアを介して受信する際、または光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる符号化装置や復号装置に適用することができる。
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
さらに、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
また、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、第1および第2実施の形態において、参照ピクチャリストに登録されるカレントピクチャのピクチャ特定情報の位置は固定されていなくてもよい。また、第1および第3実施の形態において、参照ピクチャリストに設定されるカレントピクチャのピクチャタイプはSTRPであってもよい。
また、第2実施の形態において、第3実施の形態のように、参照ピクチャリストではなく、テンポラルリストにカレントピクチャのピクチャ特定情報が登録されるようにしてもよい。
さらに、第3実施の形態において、第2実施の形態のように、カレントピクチャの参照ピクチャのタイプがIntra BCである場合の予測ベクトルリストの生成方法を変更することにより、Intra BCとインター符号化を共通化した場合の符号化効率を向上させるようにしてもよい。
また、例えば、本開示は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
本開示は、以下のような構成もとることができる。
(1)
画面内の相関性を利用した予測に用いられるカレントブロックのカレント動きベクトルを符号化する際に、カレントブロックの参照ピクチャのタイプと、カレント動きベクトルの予測ベクトルを生成する際に参照するリファレンス動きベクトルの候補に対応する候補ブロックの参照ピクチャのタイプとが異なる場合に、前記候補ブロックをノットアベイラブルに設定し、前記カレント動きベクトルの予測ベクトルを、前記リファレンス動きベクトルを用いて生成する予測ベクトル生成部と、
前記カレント動きベクトルと前記予測ベクトル生成部により生成された前記予測ベクトルとの差分ベクトルを生成する差分ベクトル生成部と
を備える画像処理装置。
(2)
前記カレントブロックの参照ピクチャのタイプをlong-term参照ピクチャに設定する設定部
をさらに備える
前記(1)に記載の画像処理装置。
(3)
前記予測ベクトル生成部は、前記候補ブロックのピクチャと前記候補ブロックの参照ピクチャとが異なる場合、前記カレントブロックの参照ピクチャのタイプと、前記候補ブロックの参照ピクチャのタイプとが異なると判定する
前記(1)に記載の画像処理装置。
(4)
前記カレントブロックの参照ピクチャの候補のリストの所定の位置に前記カレントブロックのピクチャを登録するリスト作成部
をさらに備える
前記(1)乃至(3)のいずれかに記載の画像処理装置。
(5)
前記所定の位置は先頭である
前記(4)に記載の画像処理装置。
(6)
前記リスト作成部は、前記リスト内の前記参照ピクチャの候補の順番の入れ替えを、前記カレントブロックのピクチャの登録前に行う
前記(4)または(5)に記載の画像処理装置。
(7)
前記リスト作成部は、前記リスト内の前記カレントブロックのピクチャ以外の前記参照ピクチャの候補の順番の入れ替えを、前記カレントブロックのピクチャの登録後に行う
前記(4)または(5)に記載の画像処理装置。
(8)
画像処理装置が、
画面内の相関性を利用した予測に用いられるカレントブロックのカレント動きベクトルを符号化する際に、カレントブロックの参照ピクチャのタイプと、カレント動きベクトルの予測ベクトルを生成する際に参照するリファレンス動きベクトルの候補に対応する候補ブロックの参照ピクチャのタイプとが異なる場合に、前記候補ブロックをノットアベイラブルに設定し、前記カレント動きベクトルの予測ベクトルを、前記リファレンス動きベクトルを用いて生成する予測ベクトル生成ステップと、
前記カレント動きベクトルと前記予測ベクトル生成ステップの処理により生成された前記予測ベクトルとの差分ベクトルを生成する差分ベクトル生成ステップと
を含む画像処理方法。
(9)
画面内の相関性を利用した予測に用いられるカレントブロックのカレント動きベクトルを復号する際に、カレントブロックの参照ピクチャのタイプと、カレント動きベクトルの予測ベクトルを生成する際に参照するリファレンス動きベクトルの候補に対応する候補ブロックの参照ピクチャのタイプとが異なる場合に、前記候補ブロックをノットアベイラブルに設定し、前記カレント動きベクトルの予測ベクトルを、前記リファレンス動きベクトルを用いて生成する予測ベクトル生成部と、
前記カレント動きベクトルと前記予測ベクトルとの差分ベクトルと、前記予測ベクトル生成部により生成された前記予測ベクトルとを加算し、前記カレント動きベクトルを生成する動きベクトル生成部と
を備える画像処理装置。
(10)
前記カレントブロックの参照ピクチャのタイプをlong-term参照ピクチャに設定する設定部
をさらに備える
前記(9)に記載の画像処理装置。
(11)
前記予測ベクトル生成部は、前記候補ブロックのピクチャと前記候補ブロックの参照ピクチャとが異なる場合、前記カレントブロックの参照ピクチャのタイプと、前記候補ブロックの参照ピクチャのタイプとが異なると判定する
前記(9)に記載の画像処理装置。
(12)
前記カレントブロックの参照ピクチャの候補のリストの所定の位置に前記カレントブロックのピクチャを登録するリスト作成部
をさらに備える
前記(9)乃至(11)のいずれかに記載の画像処理装置。
(13)
前記所定の位置は先頭である
前記(12)に記載の画像処理装置。
(14)
前記リスト作成部は、前記リスト内の前記参照ピクチャの候補の順番の入れ替えを、前記カレントブロックのピクチャの登録前に行う
前記(12)または(13)に記載の画像処理装置。
(15)
前記リスト作成部は、前記リスト内の前記カレントブロックのピクチャ以外の前記参照ピクチャの候補の順番の入れ替えを、前記カレントブロックのピクチャの登録後に行う
前記(12)または(13)に記載の画像処理装置。
(16)
画像処理装置が、
画面内の相関性を利用した予測に用いられるカレントブロックのカレント動きベクトルを復号する際に、カレントブロックの参照ピクチャのタイプと、カレント動きベクトルの予測ベクトルを生成する際に参照するリファレンス動きベクトルの候補に対応する候補ブロックの参照ピクチャのタイプとが異なる場合に、前記候補ブロックをノットアベイラブルに設定し、前記カレント動きベクトルの予測ベクトルを、前記リファレンス動きベクトルを用いて生成する予測ベクトル生成ステップと、
前記カレント動きベクトルと前記予測ベクトルとの差分ベクトルと、前記予測ベクトル生成ステップの処理により生成された前記予測ベクトルとを加算し、前記カレント動きベクトルを生成する動きベクトル生成ステップと
を含む画像処理方法。