以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(パーソナルコンピュータ)
4.第4の実施の形態(テレビジョン受像機)
5.第5の実施の形態(携帯電話機)
6.第6の実施の形態(記録再生装置)
7.第7の実施の形態(撮像装置)
<1.第1の実施の形態>
[画像符号化装置]
図1は、画像符号化装置の主な構成例を示すブロック図である。
図1に示される画像符号化装置100は、H.264及びMPEG(Moving Picture Experts Group)4 Part10(AVC(Advanced Video Coding))符号化方式のように、予測処理を用いて画像データを符号化する。
図1に示されるように画像符号化装置100は、A/D変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、ループフィルタ111、フレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、予測画像選択部116、およびレート制御部117を有する。
画像符号化装置100は、さらに、スライス境界判定部121および動きベクトル符号化部122を有する。
A/D変換部101は、入力された画像データをA/D変換し、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ102に供給し、記憶させる。画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、イントラ予測部114および動き予測・補償部115にも供給する。
演算部103は、画面並べ替えバッファ102から読み出された画像から、予測画像選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。
例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、動き予測・補償部115から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。なお、この直交変換の方法は任意である。直交変換部104は、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104から供給される変換係数を量子化する。量子化部105は、レート制御部117から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。なお、この量子化の方法は任意である。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、量子化部105において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部117の制御の下で量子化されているので、この符号量は、レート制御部117が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部106は、イントラ予測のモードを示す情報などをイントラ予測部114から取得し、インター予測のモードを示す情報や動きベクトル情報などを動き予測・補償部115から取得する。さらに、可逆符号化部106は、ループフィルタ111において使用されたフィルタ係数等を取得する。
可逆符号化部106は、これらの各種情報を任意の符号化方式で符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
可逆符号化部106の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持する。蓄積バッファ107は、所定のタイミングにおいて、保持している符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。この逆量子化の方法は、量子化部105による量子化処理に対応する方法であればどのような方法であってもよい。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、逆量子化部108から供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。この逆直交変換の方法は、直交変換部104による直交変換処理に対応する方法であればどのようなものであってもよい。逆直交変換された出力(復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109から供給された逆直交変換結果、すなわち、復元された差分情報に、予測画像選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。その復号画像は、ループフィルタ111またはフレームメモリ112に供給される。
ループフィルタ111は、デブロックフィルタや適応ループフィルタ等を含み、演算部110から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ111は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ111は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ111が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ111は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部106に供給し、それを符号化させるようにすることもできる。
ループフィルタ111は、フィルタ処理結果(フィルタ処理後の復号画像)をフレームメモリ112に供給する。なお、上述したように、演算部110から出力される復号画像は、ループフィルタ111を介さずにフレームメモリ112に供給することができる。つまり、ループフィルタ111によるフィルタ処理は省略することができる。
フレームメモリ112は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、選択部113に供給する。
選択部113は、フレームメモリ112から供給される参照画像の供給先を選択する。例えば、インター予測の場合、選択部113は、フレームメモリ112から供給される参照画像を動き予測・補償部115に供給する。
イントラ予測部114は、選択部113を介してフレームメモリ112から供給される参照画像である処理対象ピクチャ内の画素値を用いて、基本的にプレディクションユニット(PU)を処理単位として予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部114は、予め用意された複数のモード(イントラ予測モード)でこのイントラ予測を行う。
イントラ予測部114は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ102から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部114は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部116に供給する。
また、上述したように、イントラ予測部114は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部106に供給し、符号化させる。
動き予測・補償部115は、画面並べ替えバッファ102から供給される入力画像と、選択部113を介してフレームメモリ112から供給される参照画像とを用いて、基本的にPUを処理単位として、動き予測(インター予測)を行い、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。動き予測・補償部115は、予め用意された複数のモード(インター予測モード)でこのようなインター予測を行う。
動き予測・補償部115は、候補となる全てのインター予測モードで予測画像を生成し、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部115は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部116に供給する。
また、動き予測・補償部115は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部106に供給し、符号化させる。
予測画像選択部116は、演算部103や演算部110に供給する予測画像の供給元を選択する。例えば、インター符号化の場合、予測画像選択部116は、予測画像の供給元として動き予測・補償部115を選択し、その動き予測・補償部115から供給される予測画像を演算部103や演算部110に供給する。
レート制御部117は、蓄積バッファ107に蓄積された符号化データの符号量に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
スライス境界判定部121は、処理対象である当該領域がスライス境界の近傍に位置するか否かを判定し、その判定結果を動きベクトル符号化部122に供給する。動きベクトル符号化部122は、スライス境界に対する当該領域の位置に応じて周辺領域を定義する。
動き予測・補償部115は、その動きベクトル符号化部122により定義された周辺領域の情報を用いて、MVコンペティションやマージモード等の処理を行う。
[1/4画素精度動き予測]
図2は、AVC符号化方式において規定されている、1/4画素精度の動き予測・補償処理の様子の例を説明する図である。図2において、各四角は、画素を示している。その内、Aはフレームメモリ112に格納されている整数精度画素の位置を示し、b,c,dは、1/2画素精度の位置を示し、e1,e2,e3は1/4画素精度の位置を示している。
以下においては、関数Clip1()を以下の式(1)のように定義する。
例えば、入力画像が8ビット精度である場合、式(1)のmax_pixの値は255となる。
b及びdの位置における画素値は、6tapのFIRフィルタを用いて、以下の式(2)および式(3)のように生成される。
cの位置における画素値は、水平方向及び垂直方向に6tapのFIRフィルタを適用し、以下の式(4)乃至式(6)のように生成される。
・・・(4)
もしくは、
・・・(5)
・・・(6)
なお、Clip処理は、水平方向及び垂直方向の積和処理の両方を行った後、最後に1度のみ行われる。
e1乃至e3は、以下の式(7)乃至式(9)のように、線形内挿により生成される。
[マクロブロック]
また、MPEG2においては、動き予測・補償処理の単位は、フレーム動き補償モードの場合には16×16画素、フィールド動き補償モードの場合には第一フィールド、第二フィールドのそれぞれに対し、16×8画素を単位として動き予測・補償処理が行なわれる。
これに対し、AVCにおいては、図3に示されるように、16×16画素により構成される1つのマクロブロックを、16×16、16×8、8×16若しくは8×8のいずれかのパーティションに分割し、サブマクロブロック毎に、互いに独立した動きベクトル情報を持つことが可能である。更に、8×8パーティションに関しては、図3に示されるとおり、8×8、8×4、4×8、4×4のいずれかのサブマクロブロックに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。
しかしながら、AVC画像符号化方式において、MPEG2の場合と同様に、かかるような動き予測・補償処理が行なわれるようにすると、膨大な動きベクトル情報が生成されてしまう恐れがあった。そして、その生成された動きベクトル情報をこのまま符号化することは、符号化効率の低下を招く恐れがあった。
[動きベクトルのメディアン予測]
かかる問題を解決する手法として、AVC画像符号化においては、以下のような手法により、動きベクトルの符号化情報の低減が実現されている。
図4に示される各直線は、動き補償ブロックの境界を示している。また、図4において、Eはこれから符号化されようとしている当該動き補償ブロックを示し、A乃至Dは、それぞれ、既に符号化済の、Eに隣接する動き補償ブロックを示す。
今、X=A,B,C,D,Eとして、Xに対する動きベクトル情報を、mvxとする。
まず、動き補償ブロックA,B、およびCに関する動きベクトル情報を用い、動き補償ブロックEに対する予測動きベクトル情報pmvEを、メディアンオペレーションにより、以下の式(10)のように生成する。
動き補償ブロックCに関する情報が、画枠の端である等の理由により利用不可能(unavailable)である場合、動き補償ブロックDに関する情報で代用される。
画像圧縮情報に、動き補償ブロックEに対する動きベクトル情報として符号化されるデータmvdEは、pmvEを用いて、以下の式(11)のように生成される。
なお、実際の処理は、動きベクトル情報の水平方向および垂直方向のそれぞれの成分に対して、独立に処理が行なわれる。
[マルチ参照フレーム]
また、AVCにおいては、Multi-Reference Frame(マルチ(複数)参照フレーム)という、MPEG2やH.263等、従来の画像符号化方式では規定されていなかった方式が規定されている。
図5を用いて、AVCにおいて規定されている、マルチ参照フレーム(Multi-Reference Frame)を説明する。
すなわち、MPEG-2やH.263においては、Pピクチャの場合、フレームメモリに格納された参照フレーム1枚のみを参照することにより動き予測・補償処理が行われていたが、AVCにおいては、図5に示されるように、複数の参照フレームがメモリに格納され、マクロブロック毎に、異なるメモリを参照することが可能である。
[ダイレクトモード]
ところで、Bピクチャにおける動きベクトル情報における情報量は膨大であるが、AVCにおいては、Direct Mode(ダイレクトモード)と称されるモードが用意されている。
このダイレクトモード(Direct Mode)において、動きベクトル情報は、画像圧縮情報中には格納されない。画像復号装置においては、周辺ブロックの動きベクトル情報、若しくは、参照フレームにおける処理対象ブロックと同じ位置のブロックであるCo-Locatedブロックの動きベクトル情報から、当該ブロックの動きベクトル情報が算出される。
ダイレクトモード(Direct Mode)には、Spatial Direct Mode(空間ダイレクトモード)と、Temporal Direct Mode(時間ダイレクトモード)の2種類が存在し、スライス毎に切り替えることが可能である。
空間ダイレクトモード(Spatial Direct Mode)においては、以下の式(12)に示されるように、処理対象動き補償ブロックEの動きベクトル情報mvEが算出される。
mvE = pmvE ・・・(12)
すなわち、Median(メディアン)予測により生成された動きベクトル情報が、当該ブロックに適用される。
以下においては、図6を用いて、時間ダイレクトモード(Temporal Direct Mode)を説明する。
図6において、L0参照ピクチャにおける、当該ブロックと同じ空間上のアドレスにあるブロックを、Co-Locatedブロックとし、Co-Locatedブロックにおける動きベクトル情報を、mvcolとする。また、当該ピクチャとL0参照ピクチャの時間軸上の距離をTDBとし、L0参照ピクチャとL1参照ピクチャの時間軸上の距離をTDDとする。
この時、当該ピクチャにおける、L0の動きベクトル情報mvL0及びL1の動きベクトル情報mvL1は、以下の式(13)および式(14)のように算出される。
なお、AVC画像圧縮情報においては、時間軸上の距離を表す情報TDが存在しないため、POC(Picture Order Count)を用いて、上述した式(12)および式(13)の演算が行われるものとする。
また、AVC画像圧縮情報においては、ダイレクトモード(Direct Mode)は、16×16画素マクロブロック単位、若しくは、8×8画素ブロック単位で定義することが可能である。
[予測モードの選択]
ところで、AVC符号化方式において、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。
かかる選択方式の例として、JM(Joint Model)と呼ばれるH.264/MPEG-4 AVCの参照ソフトウエア(http://iphome.hhi.de/suehring/tml/index.htm において公開されている)に実装されている方法を挙げることが出来る。
JMにおいては、以下に述べる、High Complexity Modeと、Low Complexity Modeの2通りのモード判定方法を選択することができる。どちらも、それぞれの予測モードに関するコスト関数値を算出し、これを最小にする予測モードを当該サブマクロブロック、または、当該マクロブロックに対する最適モードとして選択する。
High Complexity Modeにおけるコスト関数は、以下の式(15)のように示される。
Cost(Mode∈Ω) = D + λ*R ・・・(15)
ここで、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合、Dは、当該予測モードで符号化した場合の、復号画像と入力画像の差分エネルギーである。λは、量子化パラメータの関数として与えられるLagrange未定乗数である。Rは、直交変換係数を含んだ、当該モードで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行うには、上記パラメータD及びRを算出するため、全ての候補モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
Low Complexity Modeにおけるコスト関数は、以下の式(16)のように示される。
Cost(Mode∈Ω) = D + QP2Quant(QP) * HeaderBit ・・・(16)
ここで、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。QP2Quant(QP)は、量子化パラメータQPの関数として与えられ、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モードに関して、予測処理を行う必要があるが、復号画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
[動きベクトルのコンペティション]
ところで、図4を参照して説明したような、メディアン予測を用いた動きベクトルの符号化を改善するため、非特許文献1では、以下に述べるような方法が提案されている。
すなわち、AVCにおいて定義されている、メディアン予測により求められる”Spatial Predictor(空間予測)”に加え、以下に述べる”Temporal Predictor(時間予測)”及び”Spatio-Temporal Predictor(時間と空間の予測)”のどれかを、予測動きベクトル情報として、適応的に用いることが可能にするものである。
すなわち、図7において、”mvcol”を、当該ブロックに対するCo-Locatedブロック(参照画像において、xy座標が、当該ブロックと同じであるブロック)に対する動きベクトル情報、mvtk(k=0乃至8)をその周辺ブロックの動きベクトル情報であるとして、それぞれの予測動きベクトル情報(Predictor)は、以下の式(17)乃至(19)により定義される。
Temporal Predictor:
・・・(17)
・・・(18)Spatio-Temporal Predictor:
・・・(19)
画像符号化装置100においては、それぞれのブロックに関して、それぞれの予測動きベクトル情報を用いた場合のコスト関数が算出され、最適な予測動きベクトル情報の選択が行われる。画像圧縮情報においては、それぞれのブロックに対し、どの予測動きベクトル情報が用いられたかに関する情報を示すflagが伝送される。
[コーディングユニット]
ところで、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない。
そこで、AVCにおいては、図3に示されるように、マクロブロックとサブマクロブロックによる階層構造が規定されているが、例えば、HEVC(High Efficiency Video Coding)においては、図8に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、AVCにおけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図8の例では、LCUの大きさが128であり、最大階層深度が5となる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVCにおいては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
以上のHEVCのように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVCにおけるマクロブロックはLCUに相当すると考えることができる。ただし、CUは図8に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVCのマクロブロックより大きく設定されることが一般的である。
[動きパーティションのマージ]
ところで、動き情報の符号化方式の1つとして、図9に示されるような、Motion Partition Mergingと呼ばれる手法(マージモード)が提案されている。この手法においては、MergeFlagと、MergeLeftFlagという、2つのflagが、マージモードに関する情報であるマージ情報として伝送される。MergeFlag=1は、当該領域Xの動き情報が、当該領域の上に隣接する周辺領域T、若しくは、当該領域の左に隣接する周辺領域Lの動き情報と同一であることを示す。この時、マージ情報には、MergeLeftFlagが含められ、伝送される。MergeFlag=0は、当該領域Xの動き情報が、周辺領域Tおよび周辺領域Lのいずれの動き情報とも異なることを示す。この場合、当該領域Xの動き情報が伝送される。
当該領域Xの動き情報が、周辺領域Lの動き情報と同一である場合、MergeFlag=1、かつ、MergeLeftFlag=1となる。当該領域Xの動き情報が、周辺領域Tの動き情報と同一である場合、MergeFlag=1、かつ、MergeLeftFlag=0となる。
[AVCのスライス]
MPEG2やAVC等の画像符号化方式においては、1ピクチャを複数のスライスに分割し、各スライスを並行して処理することができる。
MPEG2の場合、図10Aに示されるように、スライスの最大の大きさは1マクロブロックラインであり、また、Bピクチャを構成するスライスは全てBスライスでなければならない。
これに対してAVCの場合、図10Bに示されるように、スライスは1マクロブロックラインより大きくてもよく、スライスの境界はマクロブロックラインの右端(画面右端)でなくてもよく、また、単一のピクチャが異なる種類のスライスにより構成されていても良い。
AVCの場合、例えば図11に示されるような種類のスライスが規定されている。
なお、AVCの場合、デブロックフィルタ処理はスライス境界を跨って実行することができる。ただし、イントラ予測、CABAC、CAVLC、および動きベクトルの予測等のような隣接情報を用いた処理は、スライス境界を跨って実行することが出来ない。
換言するに、各スライスの符号化処理は互いに独立して実行することができるので、1ピクチャを複数のスライスに分割し、各スライスを並列に符号化することが可能になる。つまり、このようなスライス分割により、符号化処理時間の低減(符号化処理の高速化)を実現することができる。
[スライス境界]
AVCの場合、スライスを区切る位置は、マクロブロックを単位とする。すなわち、隣接するスライスの境界であるスライス境界は、いずれかのマクロブロック境界(隣接するマクロブロックの境界)と一致する。換言するに、スライスは複数のマクロブロックにより構成される。
これに対して、HEVCの場合、LCUの内部でスライスを区切ることもできる。つまり、スライスを区切る位置はLCUではなくCUを単位とする。したがって、スライス境界は、いずれかのCU境界(隣接するCUの境界)と一致する。CUの大きさは任意である。
図12にスライス境界の例を示す。図12に示される一番大きな四角は、LCUを示し、その内部の四角は、LCU内部に構成されるCUを示す。また、太線がスライス境界を示す。図12の例の場合、スライスがLCU内部のCU間で区切られている。このようにスライス境界の制御単位が小さくなることにより、スライス境界の形状はより複雑になる。
本技術においては、処理対象の当該領域がこのようなスライス境界に隣接し、その周辺領域が他のスライスに位置してしまったり、存在しなかったりする場合に、MVコンペティションやマージモードにおける候補の数を低減させないように、動きベクトル符号化部122が、利用不可能(unavailable)な周辺領域の代わりに新たな候補(availableな候補)を選択する。
[MVコンペティションの候補選択制御]
図13を用いて、MVコンペティション(MVCompetition)におけるスライス境界の候補選択制御の様子を説明する。
図13において、各四角は、予測処理の単位となる領域(例えば、CUやサブマクロブロック等)を示す。
図13の右側が、処理対象である当該フレームの領域の様子の例を示す。MVcurrの四角は、処理対象である当該領域であり、MVcurrは、その当該領域の動きベクトルである。MVaの四角は、当該領域の左に隣接する周辺領域Aを示し、MVaは、その周辺領域Aの動きベクトルを示す。
MVbの四角は、当該領域の上に隣接する周辺領域Bを示し、MVbは、その周辺領域Bの動きベクトルを示す。MVcの四角は、当該領域の右上に隣接する周辺領域Cを示し、MVcは、その周辺領域Cの動きベクトルを示す。
また、図13の左側が、当該領域が参照する参照フレームの領域の様子の例を示す。MVcolの四角は、当該領域と同じ位置にあるCo-Located領域(すなわち、当該領域の時間的な周辺領域col)であり、MVcolは、そのCo-Located領域の動きベクトルである。MVcolaの四角は、周辺領域Aと同じ位置にあるCo-Located領域を示し、MVcolaは、そのCo-Located領域の動きベクトルを示す。
MVcolbの四角は、周辺領域Bと同じ位置にあるCo-Located領域を示し、MVcolbは、そのCo-Located領域の動きベクトルを示す。MVcolcの四角は、周辺領域Cと同じ位置にあるCo-Located領域を示し、MVcolcは、そのCo-Located領域の動きベクトルを示す。
当該領域がスライス境界に接していない場合、MVa,MVb,MVc、およびMVcolが当該領域に対する予測動きベクトル情報の候補となる。
しかしながら、図13の例のように、周辺領域A乃至周辺領域Cが当該スライス(処理対象の当該領域が存在する処理対象のスライス)の外に位置すると、それらの動きベクトル(MVa,MVb、およびMVc)が利用不可能(unavailable)になり、予測動きベクトル情報の候補から外されてしまう。したがって、候補の数が低減するので、予測動きベクトル情報の予測精度が低減し、当該領域の動き情報の符号化効率が低減する恐れがある。
図13においては、周辺領域A乃至周辺領域Cの全てが当該スライスの外部に位置する(MVa,MVb、およびMVcの全てが利用不可能(unavailable)になる)例を示しているが、スライス境界がどのように存在するかに応じて、MVa,MVb、およびMVcの一部が利用不可能(unavailable)になる場合もあり得る。
例えば、周辺領域Aのみが当該スライスの外部に位置する(MVaのみが利用不可能(unavailable)になる)場合、周辺領域Bのみが当該スライスの外部に位置する(MVbのみが利用不可能(unavailable)になる)場合、周辺領域Cのみが当該スライスの外部に位置する(MVcのみが利用不可能(unavailable)になる)場合、周辺領域Aと周辺領域Bが当該スライスの外部に位置する(MVaおよびMVbが利用不可能(unavailable)になる)場合、周辺領域Aと周辺領域Cが当該スライスの外部に位置する(MVaおよびMVcが利用不可能(unavailable)になる)場合、並びに、周辺領域Bと周辺領域Cが当該スライスの外部に位置する(MVbおよびMVcが利用不可能(unavailable)になる)場合が考えられる。
いずれの場合も予測動きベクトル情報の候補の数が低減するので、予測動きベクトル情報の予測精度が低減し、当該領域の動き情報の符号化効率が低減する恐れがある。
そこで動きベクトル符号化部122は、予測動きベクトル情報の候補である周辺領域の動き情報が利用不可能(unavailable)な場合、その動き情報の代わりに、他の利用可能(available)な周辺領域の動き情報を予測動きベクトル情報の候補とする。
例えば、利用不可能(unavailable)な動き情報の代わりに、その領域のCo-Located領域の動き情報を候補とする。参照フレームの各領域は、一般的に、当該フレームが処理される時点で処理済みである。つまり、参照フレームの各領域の動き情報は利用可能(available)である。したがって、動きベクトル符号化部122は、予測精度をできるだけ低減させないように、動き情報の相関性が高いCo-Located領域の動き情報を代わりの候補とする。
例えば、周辺領域Aが当該スライスの外に位置し、MVaが利用不可能(unavailable)な場合、動きベクトル符号化部122は、MVaに代えて、その周辺領域AのCo-Located領域の、利用可能(available)なMVcolaを予測動きベクトル情報の候補とする。
また、例えば、周辺領域Bが当該スライスの外に位置し、MVbが利用不可能(unavailable)な場合、動きベクトル符号化部122は、MVbに代えて、その周辺領域BのCo-Located領域の、利用可能(available)なMVcolbを予測動きベクトル情報の候補とする。
さらに、例えば、周辺領域Cが当該スライスの外に位置し、MVcが利用不可能(unavailable)な場合、動きベクトル符号化部122は、MVcに代えて、その周辺領域CのCo-Located領域の、利用可能(available)なMVcolcを予測動きベクトル情報の候補とする。
このようにすることにより、動きベクトル符号化部122は、予測動きベクトル情報の候補の数を低減させずに、MVコンペティションを行うことができる。これにより、画像符号化装置100は、スライス境界における符号化効率の低減を抑制することができる。
なお、図14に示されるように、複数のプロセッサを用いて、複数のスライスのそれぞれを互いに異なるプロセッサで処理する場合であっても、処理後の各スライスのデータは、共有メモリ(互いに同じメモリ空間)に格納され、いずれのプロセッサからも参照することができる。したがって、そのような場合であっても、問題なく、上述したように参照フレームの動き情報を利用することができる。
例えば、候補の置き換えを行わずに、候補の動き情報が得られるまで待機するようにすると、スライス間で処理の並列化が困難になり、不要な遅延が発生し、処理時間が増大する恐れがある。また、当該フレームの当該スライス外にある処理済みの周辺領域の動き情報で置き換えるようにすると、図14の例のように各スライスを互いに異なるプロセッサで処理する場合、その動き情報がまだ各プロセッサ専用のメモリ領域に格納されており、その動き情報を他のプロセッサから参照することが困難であることも考えられる。
上述したように、当該フレームと異なる参照フレーム(当該フレームより前のタイミングにおいて処理されるフレーム)の動き情報を利用することで、画像符号化装置100は、このような懸念無しに、スライス境界における符号化効率の低減を抑制することができる。
なお、以上においては、利用不可能(unavailable)な動き情報の代用とする動き情報は、その周辺領域のCo-Located領域以外の動き情報であってもよい。もちろん、代用する動き情報は、元の動き情報と相関性がより高いものであることが望ましい。しかしながら、少なくとも利用可能(available)な動き情報であれば、代わりの候補とすることはできる。例えば、参照フレームのCo-Located領域以外の動き情報を利用するようにしてもよい。また、参照フレームおよび当該フレーム以外の処理済みのフレームの動き情報を用いるようにしてもよい。
さらに、当該フレームの処理済みの動き情報を用いるようにしてもよい。さらに、上述した複数プロセッサの場合の懸念を回避するために、当該スライス内の処理済みの動き情報を用いるようにしてもよい。
例えば、図15に示される例のように、利用不可能(unavailable)なMVbに代えて、当該スライス内の処理済みの周辺領域の(利用可能(available)な)MVdを用いるようにしても良い。
なお、予測動きベクトル情報の候補とする動き情報の領域(周辺領域)は、当該領域に(空間的若しくは時間的に)隣接するものでなくてもよい。例えば、周辺領域Aの左に隣接する領域(図示せず)を周辺領域としてもよい(その領域の動き情報を予測動きベクトル情報の候補としても良い)。ただし、一般的には、当該領域から遠くなるほど、当該領域との動き情報の相関性が低減するので、当該領域に対してより近い領域の動き情報を予測動きベクトル情報の候補とする方が望ましい。
なお、上述したスライス境界には、画枠も含まれる。つまり、当該領域がピクチャ(フレーム)の上端や左端にある場合も、予測動きベクトル情報の候補とする周辺領域の動き情報が利用不可能(unavailable)となることが考えられる。この場合も上述したのと同様に、利用可能(available)な動き情報を代わりに候補とするようにしてもよい。
ただし、スライス境界が画枠の場合、図16に示されるように、当該フレームにおいて周辺領域が存在しない場合、その周辺領域のCo-Located領域も存在しない。図16の例の場合、当該フレームにおいて、周辺領域A乃至周辺領域Cが全て画枠の外に位置し、存在しない。この場合、参照フレームにおいて、それらのCo-Located領域も画枠の外に位置し、存在しない。つまり、MVa,MVb、およびMVcが全て利用不可能(unavailable)であるとともに、MVcola,MVcolb、およびMVcolcも全て利用不可能(unavailable)である。
そこでこのような場合、例えば、MVcold,MVcole、およびMVcolfのように、参照フレームの利用可能(available)な動き情報を、代わりの候補として用いるようにしても良い。もちろん、参照フレーム以外のフレームの利用可能(available)な動き情報を利用するようにしてもよい。どの利用可能(available)な動き情報を利用するかは任意であるが、上述したように、当該領域に対してより近い領域の動き情報を利用する方が望ましい。
[マージモードの候補選択制御]
このような候補の代用方法は、マージモードにおける当該領域にマージさせる領域の候補の選択にも適用することができる。
マージモードにおいては、図18に示されるように、当該領域の左に隣接する周辺領域Lと、当該領域の上に隣接する領域Tとが、当該領域にマージされる領域の候補(以下、マージの候補とも称する)とされる。図17において、各四角は、予測処理の単位となる領域(例えば、CUやサブマクロブロック等)を示す。
図17の右側が、処理対象である当該フレームの領域の様子の例を示す。MVcurrの四角は、処理対象である当該領域であり、MVcurrは、その当該領域の動きベクトルである。MVLの四角は、当該領域の左に隣接する周辺領域Lを示し、MVLは、その周辺領域Lの動きベクトルを示す。
MVTの四角は、当該領域の上に隣接する周辺領域Tを示し、MVTは、その周辺領域Tの動きベクトルを示す。
また、図17の左側が、当該領域が参照する参照フレームの領域の様子の例を示す。MVcolの四角は、当該領域と同じ位置にあるCo-Located領域(すなわち、当該領域の時間的な周辺領域col)であり、MVcolは、そのCo-Located領域の動きベクトルである。MVcolLの四角は、周辺領域Lと同じ位置にあるCo-Located領域を示し、MVcolLは、そのCo-Located領域の動きベクトルを示す。
MVcolTの四角は、周辺領域Tと同じ位置にあるCo-Located領域を示し、MVcolTは、そのCo-Located領域の動きベクトルを示す。
このマージモードの場合も、上述したMVコンペティションの場合と同様に、図17の例のように、周辺領域Lおよび周辺領域Tが当該スライス(処理対象の当該領域が存在する処理対象のスライス)の外に位置すると、それらの動きベクトル(MVLおよびMVT)が利用不可能(unavailable)になり、マージの候補から外されてしまう。したがって、マージの候補の数が低減するので、マージモードが選択されにくくなり、当該領域の動き情報の符号化効率が低減する恐れがある。
図17においては、周辺領域Lおよび周辺領域Tの両方が当該スライスの外部に位置する(MVLおよびMVTが利用不可能(unavailable)になる)例を示しているが、スライス境界がどのように存在するかに応じて、MVLおよびMVTのいずれか一方のみが利用不可能(unavailable)になる場合もあり得る。もちろんその場合もマージの候補の数が低減するので、マージモードが選択されにくくなり、当該領域の動き情報の符号化効率が低減する恐れがある。
そこで、動きベクトル符号化部122は、上述したMVコンペティションの場合と同様に、マージの候補である周辺領域の動き情報が利用不可能(unavailable)な場合、その動き情報の代わりに、他の利用可能(available)な周辺領域をマージの候補とし、その動き情報を利用する。
例えば、利用不可能(unavailable)な動き情報の代わりに、その領域と動き情報の相関性が高い、その領域のCo-Located領域の動き情報を候補とする。
例えば、周辺領域Lが当該スライスの外に位置し、MVLが利用不可能(unavailable)な場合、動きベクトル符号化部122は、MVLに代えて、その周辺領域LのCo-Located領域の、利用可能(available)なMVcolLを予測動きベクトル情報の候補とする。
また例えば、周辺領域Tが当該スライスの外に位置し、MVTが利用不可能(unavailable)な場合、動きベクトル符号化部122は、MVTに代えて、その周辺領域TのCo-Located領域の、利用可能(available)なMVcolTを予測動きベクトル情報の候補とする。
このようにすることにより、動きベクトル符号化部122は、マージの候補の数を低減させずに、マージモードを選択するか否かの判定を行うことができる。これにより、画像符号化装置100は、スライス境界における符号化効率の低減を抑制することができる。
なお、このマージモードの場合も、上述したMVコンペティションの場合と同様に、利用不可能(unavailable)な動き情報の領域のCo-Located領域を、代わりのマージの候補とするようにすることができる。つまり、少なくとも、利用可能(available)な動き情報の領域であれば、代わりのマージの候補とすることができる。
[動き予測・補償部、スライス境界判定部、および動きベクトル符号化部]
図18は、動き予測・補償部115、スライス境界判定部121、および動きベクトル符号化部122の主な構成例を示すブロック図である。
図18に示されるように、動き予測・補償部115は、動き探索部131、コスト関数算出部132、モード判定部133、動き補償部134、および動き情報バッファ135を有する。
また、動きベクトル符号化部122は、マージ候補設定部141、マージ情報生成部142、候補プレディクタ設定部143、予測動きベクトル生成部144、および差分動きベクトル生成部145を有する。
動き探索部131には、画面並べ替えバッファ102からの入力画像画素値と、フレームメモリ112からの参照画像画素値が入力される。動き探索部131は、全てのインター予測モードについて動き探索処理を行い、動きベクトルと参照インデックスを含む動き情報を生成する。動き探索部131は、その動き情報を動きベクトル符号化部122のマージ情報生成部142と予測動きベクトル生成部144に供給する。
スライス境界判定部121には、シーケンスパラメータセット、ピクチャパラメータセット、およびスライスヘッダ等の情報に含まれる、スライスの境界の位置を、処理単位となる領域(例えばCUやサブマクロブロック等)のアドレス(識別情報)で示すスライス境界領域アドレスや、処理対象の当該領域の位置を示す当該領域アドレス等が可逆符号化部106から供給される。
スライス境界判定部121は、これらの情報に基づいて、当該領域とスライス境界の位置関係から、当該領域の動き予測ベクトル情報の候補とする動き情報の領域や、マージの候補とする領域が、当該スライス内に存在するか否か(動き情報が利用可能(available)であるか否か)を判定する。スライス境界判定部121は、その判定結果(スライス境界判定結果)を、動きベクトル符号化部122のマージ候補設定部141および候補プレディクタ設定部143に供給する。
動きベクトル符号化部122のマージ候補設定部141は、スライス境界判定部121からスライス境界判定結果を取得すると、そのスライス境界判定結果に従って、マージの候補とする周辺領域を決定する。マージ候補設定部141は、動き情報バッファ135から周辺動き情報を取得可能な周辺領域を利用可能(available)な動き情報とする。例えば、マージ候補設定部141は、スライス判定境界判定結果において、マージの候補の中に動き情報が利用不可能(unavailable)な領域が存在すると判定された場合、動き情報バッファ135から周辺動き情報を取得可能な周辺領域をその領域に代えてマージの候補とする。マージの候補が決定すると、マージ候補設定部141は、その候補に決定された周辺領域を指定する情報およびその動き情報(周辺動き情報)を含む候補情報をマージ情報生成部142に供給する。
マージ情報生成部142は、動き探索部131から当該領域の動き情報を取得し、その動き情報と、マージ候補設定部141から供給される候補情報に含まれる周辺う語彙情報とを比較し、当該領域に周辺領域をマージするか否かを判定し、さらにマージする場合はどの候補とマージさせるかを判定する。マージ情報生成部142は、それらの判定結果を示すMergeFlagおよびMergeLeftFlagを適宜生成し、それらのフラグ情報を含むマージ情報を生成する。マージ情報生成部142は、生成したマージ情報をコスト関数算出部132に供給する。また、当該領域の動き情報が周辺動き情報と一致せず、マージモードが選択されなかった場合、マージ情報生成部142は、予測動きベクトル生成部144に対して、予測動きベクトルを生成するように指示する制御信号を供給する。
マージモードが選択されなかった場合、候補プレディクタ設定部143は、スライス境界判定部121からスライス境界判定結果を取得すると、そのスライス判定境界判定結果に従って、予測動きベクトル情報の候補とする動き情報を決定する。候補プレディクタ設定部143は、動き情報バッファ135から周辺動き情報を取得可能な周辺領域を利用可能(available)な動き情報とする。例えば、候補プレディクタ設定部143は、スライス判定境界判定結果において、予測動きベクトル情報の候補の中に利用不可能(unavailable)な動き情報が存在すると判定された場合、動き情報バッファ135から取得可能な周辺動き情報を代わりの候補とする。候補が決定すると、候補プレディクタ設定部143は、その候補に決定された周辺動き情報を含む候補情報を予測動きベクトル生成部144に供給する。
予測動きベクトル生成部144は、マージ情報生成部142から供給される制御信号に従って、動き探索部131から当該領域の各インター予測モードの動き情報を取得し、候補プレディクタ設定部143から候補情報を取得する。予測動きベクトル生成部144は、それらの情報を用いて、候補となる複数の予測動きベクトル情報を生成する。予測動きベクトル情報の生成方法は任意であり、例えば、非特許文献2に記載の方法でもよい。
そして、予測動きベクトル生成部144は、当該領域の動き情報、生成された候補となる各予測動きベクトル情報、並びに、それらに対してそれぞれ割り付けられたコードナンバを差分動きベクトル生成部145に供給する。
差分動きベクトル生成部145は、各インター予測モードについて、供給された予測動きベクトル情報の候補の中から最適なものを選択し、動き情報とその予測動きベクトル情報との差分値を含む差分動きベクトル情報を生成する。差分動きベクトル生成部145は、生成した各インター予測モードの差分動きベクトル情報、選択した各インター予測モードの予測動きベクトル情報、およびそのコードナンバを動き予測・補償部115のコスト関数算出部132に供給する。
また、動き探索部131は、探索した動きベクトル情報を用いて、参照画像に補償処理を行い、予測画像を生成する。さらに、動き探索部131は、その予測画像と入力画像の差分(差分画素値)を算出し、その差分画素値をコスト関数算出部132に供給する。
コスト関数算出部132は、動き探索部131から供給された各インター予測モードの差分画素値を用いて、各インター予測モードのコスト関数値を算出する。コスト関数算出部132は、算出した各インター予測モードのコスト関数値とマージ情報をモード判定部133に供給する。また、コスト関数算出部132は、必要に応じて、各インター予測モードの差分動き情報、各インター予測モードの予測動きベクトル情報、およびそのコードナンバもモード判定部133に供給する。
モード判定部133は、各インター予測モードのうち、どのモードを用いるのが最適かを、各インター予測モードに対するコスト関数値を用いて判定し、最も小さいコスト関数値のインター予測モードを、最適予測モードとする。そして、モード判定部133は、その最適予測モードに関する情報である最適予測モード情報とマージ情報を動き補償部134に供給する。また、モード判定部133は、必要に応じて、最適予測モードに選択されたインター予測モードの、差分動き情報、予測動きベクトル情報、およびそのコードナンバも動き補償部134に供給する。
動き補償部134は、供給された情報を用いて最適予測モードの動きベクトルを求める。例えば、マージモードが選択された場合、動き補償部134は、マージ情報により指定される周辺領域の動き情報を動き情報バッファ135から取得し、その動きベクトルを最適予測モードの動きベクトルとする。また、マージモードが選択されていない場合、動き補償部134は、モード判定部133から供給された、差分動き情報や予測動きベクトル情報等を用いて、最適予測モードの動きベクトルを生成する。動き補償部134は、その動きベクトルを用いてフレームメモリ112からの参照画像に補償を行うことで、最適予測モードの予測画像を生成する。
予測画像選択部116によりインター予測が選択された場合、それを示す信号が予測画像選択部116から供給される。これに対応して、動き補償部134は、最適予測モード情報とマージ情報を可逆符号化部106に供給する。また、動き補償部134は、必要に応じて、最適予測モードの差分動きベクトル情報と予測動きベクトル情報のコードナンバも、可逆符号化部106に供給する。
また、動き補償部134は、最適予測モードの動き情報を、動き情報バッファ135に格納する。なお、予測画像選択部116によりインター予測が選択されなかった場合(すなわち、イントラ予測画像が選択された場合)、動きベクトル情報として、0ベクトルが、動き情報バッファ135に格納される。
動き情報バッファ135には、過去に処理された領域の最適予測モードの動き情報が格納されている。格納されている動き情報は、その領域より時間的に後に処理される領域に対する処理において、周辺動き情報として、各部に供給される。
以上のように、動きベクトル符号化部122は、スライス境界判定部121のスライス境界判定結果に基づいて、予測動きベクトル情報の候補を決定したり、マージの候補を決定したりする。したがって、動きベクトル符号化部122は、MVコンペティションやマージモードにおける候補の数の低減を抑制することができる。これにより、画像符号化装置100は、符号化効率を向上させることができる。
[符号化処理の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図19のフローチャートを参照して、符号化処理の流れの例を説明する。
ステップS101において、A/D変換部101は入力された画像をA/D変換する。ステップS102において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS103において、イントラ予測部114は、イントラ予測モードのイントラ予測処理を行う。ステップS104において、動き予測・補償部115は、インター予測モードでの動き予測や動き補償を行うインター動き予測処理を行う。
ステップS105において、予測画像選択部116は、イントラ予測部114および動き予測・補償部115から出力された各コスト関数値に基づいて、最適なモードを決定する。つまり、予測画像選択部116は、イントラ予測部114により生成された予測画像と、動き予測・補償部115により生成された予測画像のいずれか一方を選択する。
ステップS106において、演算部103は、ステップS102の処理により並び替えられた画像と、ステップS105の処理により選択された予測画像との差分を演算する。差分データは元の画像データに較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS107において、直交変換部104は、ステップS106の処理により生成された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
ステップS108において、量子化部105は、ステップS107の処理により得られた直交変換係数を量子化する。
ステップS108の処理により量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS109において、逆量子化部108は、ステップS108の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部105の特性に対応する特性で逆量子化する。ステップS110において、逆直交変換部109は、ステップS107の処理により得られた直交変換係数を、直交変換部104の特性に対応する特性で逆直交変換する。
ステップS111において、演算部110は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部103への入力に対応する画像)を生成する。ステップS112においてループフィルタ111は、ステップS111の処理により得られた局部的な復号画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS113において、フレームメモリ112は、ステップS112の処理によりループフィルタ処理が施された復号画像を記憶する。なお、フレームメモリ112にはループフィルタ111によりフィルタ処理されていない画像も演算部110から供給され、記憶される。
ステップS114において、可逆符号化部106は、ステップS108の処理により量子化された変換係数を符号化する。すなわち、差分画像に対して、可変長符号化や算術符号化等の可逆符号化が行われる。
なお、可逆符号化部106は、ステップS108において算出された量子化パラメータを符号化し、符号化データに付加する。また、可逆符号化部106は、ステップS105の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部106は、イントラ予測部114から供給される最適イントラ予測モード情報、または、動き予測・補償部115から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。
ステップS115において蓄積バッファ107は、ステップS114の処理により得られた符号化データを蓄積する。蓄積バッファ107に蓄積された符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS116においてレート制御部117は、ステップS115の処理により蓄積バッファ107に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
ステップS116の処理が終了すると、符号化処理が終了される。
[インター動き予測処理の流れ]
次に、図20のフローチャートを参照して、図19のステップS104において実行されるインター動き予測処理の流れの例を説明する。
インター動き予測処理が開始されると、動き探索部131は、ステップS131において、各インター予測モードに対して動き探索を行い、動き情報と差分画素値を生成する。
ステップS132において、スライス境界判定部121は、可逆符号化部106から、スライス境界領域アドレスや当該領域アドレス等のアドレス情報を取得する。
ステップS133において、スライス境界判定部121は、ステップS132において取得した各種アドレス情報に基づいて、当該領域がスライス境界に接し、予測動きベクトル情報の各候補やマージの各候補の動き情報が利用可能(available)であるか否かを判定する。
ステップS134において、マージ候補設定部141は、ステップS133のスライス境界判定結果に応じて、マージの候補を設定する。例えば、マージの候補の中に利用不可能(unavailable)な動き情報の領域が存在する場合、マージ候補設定部141は、代わりの領域をマージの候補に設定する。
ステップS135において、マージ情報生成部142は、マージモードを選択するか否かを決定したり、ステップS134において設定されたマージの候補の中からマージする領域を選択したりし、マージ情報を生成する。
ステップS136において、マージモードを選択しなかったと判定した場合、マージ情報生成部142は、処理をステップS137に進める。
ステップS137において、候補プレディクタ設定部143は、ステップS133のスライス境界判定結果に応じて予測動きベクトル情報の候補(候補プレディクタ)を設定する。例えば、候補の中に利用不可能(unavailable)な動き情報が存在する場合、候補プレディクタ設定部143は、代わりの動き情報を予測動きベクトル情報の候補に設定する。
ステップS138において、予測動きベクトル生成部144は、ステップS137において設定された予測動きベクトル情報の候補を用いて、候補となる全ての予測動きベクトル情報を生成する。
ステップS139において、差分動きベクトル生成部145は、各インター予測モードに対する最適な予測動きベクトル情報を決定し、その予測動きベクトル情報と当該領域の動き情報との差分動きベクトルを生成する。差分動きベクトル生成部145は、ステップS139の処理後、ステップS140に処理を進める。
また、ステップS136において、マージモードが選択されたと判定された場合、マージ情報生成部142は、処理をステップS140に進める。
ステップS140において、コスト関数算出部132は、各インター予測モードのコスト関数値を算出する。
ステップS141において、モード判定部133は、ステップS140において算出されたコスト関数値を用いて、最適なインター予測モードである最適インター予測モード(最適予測モードとも称する)を決定する。
ステップS142において、動き補償部134は、最適インター予測モードで動き補償を行う。ステップS143において、動き補償部134は、ステップS142の動き補償により得られた予測画像を、予測画像選択部116を介して演算部103および演算部110に供給し、差分画像情報および復号画像を生成させる。また、ステップS144において、動き補償部134は、最適予測モード情報、マージ情報、差分動き情報、および予測動きベクトル情報のコードナンバ等、最適インター予測モードに関する情報を可逆符号化部106に供給し、符号化させる。
ステップS145において、動き情報バッファ135は、最適インター予測モードに選択された動き情報を記憶する。動き情報を記憶すると、動き情報バッファ135は、インター動き予測処理を終了する。
以上のように、各処理を行うことにより、動きベクトル符号化部122は、MVコンペティションやマージモードにおける候補の数の低減を抑制することができる。これにより、画像符号化装置100は、符号化効率を向上させることができる。
<2.第2の実施の形態>
[画像復号装置]
次に、以上のように符号化された符号化データの復号について説明する。図21は、図1の画像符号化装置100に対応する画像復号装置の主な構成例を示すブロック図である。
図21に示される画像復号装置200は、画像符号化装置100が生成した符号化データを、その符号化方法に対応する復号方法で復号する。なお、画像復号装置200は、画像符号化装置100と同様に、プレディクションユニット(PU)毎にインター予測を行うものとする。
図21に示されるように画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、ループフィルタ206、画面並べ替えバッファ207、およびD/A変換部208を有する。また、画像復号装置200は、フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213を有する。
さらに、画像復号装置200は、スライス境界判定部221、および動きベクトル復号部222を有する。
蓄積バッファ201は伝送されてきた符号化データを蓄積し、所定のタイミングにおいてその符号化データを可逆復号部202に供給する。可逆復号部202は、蓄積バッファ201より供給された、図1の可逆符号化部106により符号化された情報を、可逆符号化部106の符号化方式に対応する方式で復号する。可逆復号部202は、復号して得られた差分画像の量子化された係数データを、逆量子化部203に供給する。
また、可逆復号部202は、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、イントラ予測部211および動き予測・補償部212の内、選択されたと判定したモードの方に供給する。つまり、例えば、画像符号化装置100において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報が動き予測・補償部212に供給される。
逆量子化部203は、可逆復号部202により復号されて得られた量子化された係数データを、図1の量子化部105の量子化方式に対応する方式で逆量子化し、得られた係数データを逆直交変換部204に供給する。
逆直交変換部204は、図1の直交変換部104の直交変換方式に対応する方式で逆量子化部203から供給される係数データを逆直交変換する。逆直交変換部204は、この逆直交変換処理により、画像符号化装置100において直交変換される前の残差データに対応する復号残差データを得る。
逆直交変換されて得られた復号残差データは、演算部205に供給される。また、演算部205には、選択部213を介して、イントラ予測部211若しくは動き予測・補償部212から予測画像が供給される。
演算部205は、その復号残差データと予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部205は、その復号画像データをループフィルタ206に供給する。
ループフィルタ206は、供給された復号画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施し、それを画面並べ替えバッファ207に供給する。
ループフィルタ206は、デブロックフィルタや適応ループフィルタ等を含み、演算部205から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ206は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ206は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ206が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ206が、図1の画像符号化装置100から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。
ループフィルタ206は、フィルタ処理結果(フィルタ処理後の復号画像)を画面並べ替えバッファ207およびフレームメモリ209に供給する。なお、演算部205から出力される復号画像は、ループフィルタ206を介さずに画面並べ替えバッファ207やフレームメモリ209に供給することができる。つまり、ループフィルタ206によるフィルタ処理は省略することができる。
画面並べ替えバッファ207は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部208は、画面並べ替えバッファ207から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
フレームメモリ209は、供給される復号画像を記憶し、所定のタイミングにおいて、若しくは、イントラ予測部211や動き予測・補償部212等の外部の要求に基づいて、記憶している復号画像を参照画像として、選択部210に供給する。
選択部210は、フレームメモリ209から供給される参照画像の供給先を選択する。選択部210は、イントラ符号化された画像を復号する場合、フレームメモリ209から供給される参照画像をイントラ予測部211に供給する。また、選択部210は、インター符号化された画像を復号する場合、フレームメモリ209から供給される参照画像を動き予測・補償部212に供給する。
イントラ予測部211には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部202から適宜供給される。イントラ予測部211は、図1のイントラ予測部114において用いられたイントラ予測モードで、フレームメモリ209から取得した参照画像を用いてイントラ予測を行い、予測画像を生成する。イントラ予測部211は、生成した予測画像を選択部213に供給する。
動き予測・補償部212は、ヘッダ情報を復号して得られた情報(最適予測モード情報、差分情報、および予測動きベクトル情報のコードナンバ等)を可逆復号部202から取得する。
動き予測・補償部212は、図1の動き予測・補償部115において用いられたインター予測モードで、フレームメモリ209から取得した参照画像を用いてインター予測を行い、予測画像を生成する。
スライス境界判定部221は、基本的にスライス境界判定部121と同様の処理を行い、当該領域がスライス境界に接し、予測動きベクトル情報の候補やマージの候補の動き情報が利用不可能(unavailable)であるか否かを判定する。スライス境界判定部221は、このようなスライス境界判定結果を動きベクトル復号部222に供給する。
動きベクトル復号部222は、スライス境界判定部221から供給されるスライス境界判定結果に基づいて、マージの候補や予測動きベクトル情報の候補を設定する。また、動きベクトル復号部222は、その候補を用いて、マージ情報を解読(復号)する。つまり、動きベクトル復号部222は、符号化の際に、当該領域の予測においてマージモードが選択されたか否かを判定したり、マージモード選択された場合、どの周辺領域がマージされたか等を判定したりする。
そして、動きベクトル復号部222は、その判定結果に従って、当該領域に周辺領域をマージし、その周辺領域を指定する情報を動き予測・補償部212に供給する。動き予測・補償部212は、その指定された周辺領域の動き情報を用いて当該領域の動き情報を再構築する。
また、マージモードが選択されていないと判定された場合、動きベクトル復号部222は、設定した予測動きベクトル情報の候補を用いて予測動きベクトル情報を再構築する。つまり、画像符号化装置100により生成された予測動きベクトル情報は、置き換えられた候補によって生成されている可能性がある。つまり、画像符号化装置100から伝送されたコードナンバを正しく解読するためには、動きベクトル復号部222は、その候補の置き換えが行われたか否かを把握し、行われた場合は、どの周辺領域の動き情報が用いられたかを把握しなければならない。
そこで動きベクトル復号部222は、スライス境界判定結果に従って予測動きベクトル情報の候補の置き換えを再現し、その結果を用いて、コードナンバから予測動きベクトル情報を再構築する。
このように、スライス境界判定部221によるスライス境界の判定結果に基づいてマージの候補や予測動きベクトル情報の候補を設定し、その候補を用いてマージを行ったり、予測動きベクトル情報を再構築したりすることにより、動きベクトル復号部222は、画像符号化装置100から供給される情報を正しく解読し、当該領域の動きベクトル情報を正しく再構築することができる。
したがって、画像復号装置200は、画像符号化装置100が符号化した符号化データを正しく復号することができ、符号化効率の向上を実現させることができる。
[動き予測・補償部、スライス領域判定部、動きベクトル復号部]
図22は、動き予測・補償部212、スライス境界判定部221、および動きベクトル復号部222の主な構成例を示すブロック図である。
図22に示されるように、動き予測・補償部212は、差分動き情報バッファ231、マージ情報バッファ232、予測動きベクトル情報バッファ233、動き情報バッファ234、動き情報再構築部235、および動き補償部236を有する。
また、動きベクトル復号部222は、マージ候補設定部241、マージ情報復号部242、候補プレディクタ設定部243、および予測動きベクトル再構築部244を有する。
差分動き情報バッファ231は、可逆復号部202から供給される差分動き情報を記憶する。この差分動き情報は、画像符号化装置100から供給された、最適な予測モードとして選択されたインター予測モードの差分動き情報である。差分動き情報バッファ231は、所定のタイミングにおいて、若しくは、動き情報再構築部235からの要求に基づいて、記憶している差分動き情報を動き情報再構築部235に供給する。
マージ情報バッファ232は、可逆復号部202から供給されるマージ情報を記憶する。このマージ情報は、画像符号化装置100から供給された、最適な予測モードとして選択されたインター予測モードのマージ動き情報である。マージ情報バッファ232は、所定のタイミングにおいて、若しくは、マージ情報復号部242からの要求に基づいて、記憶しているマージ情報を、動きベクトル復号部222のマージ情報復号部242に供給する。
予測動きベクトル情報バッファ233は、可逆復号部202から供給される予測動きベクトル情報のコードナンバを記憶する。この予測動きベクトル情報のコードナンバは、画像符号化装置100から供給されたものであり、最適な予測モードとして選択されたインター予測モードの予測動きベクトル情報に割り当てられたコードナンバである。予測動きベクトル情報バッファ233は、所定のタイミングにおいて、若しくは、予測動きベクトル再構築部244からの要求に基づいて、記憶している予測動きベクトル情報のコードナンバを、予測動きベクトル再構築部244に供給する。
また、スライス境界判定部221は、可逆復号部202から、符号化側から供給されたスライス境界領域アドレスおよび当該領域アドレス取得し、スライス境界判定を行う。これらの情報は、例えば、シーケンスパラメータセット、ピクチャパラメータセット、若しくはスライスヘッダ等、画像の符号化データを含むコードストリームの所定の位置に格納されて伝送される。また、このコードストリームとは別途伝送されるようにしてもよい。
スライス境界判定部221は、その判定結果(スライス境界判定結果)を動きベクトル復号部222のマージ候補設定部241および候補プレディクタ設定部243に供給する。
動きベクトル復号部222のマージ候補設定部241は、動き情報バッファ234から必要な周辺領域の周辺動き情報を適宜取得し、スライス境界判定部221から供給されるスライス境界判定結果に従って、適宜、利用不可能(unavailable)な動き情報の候補は、利用可能(available)な動き情報の領域に置き換える等して、マージの候補を設定する。マージ候補設定部241は、マージの候補を指定する候補情報をマージ情報復号部242に供給する。
マージ情報復号部242は、マージ情報バッファ232から、画像符号化装置100から供給されたマージ情報を取得する。マージ情報復号部242は、そのマージ情報に含まれるMergeFlagおよびMergeLeftFlag等の各フラグの値を解読する。その際、マージ情報復号部242は、マージ候補設定部241から供給された候補情報に基づいて、符号化側において候補の置き換えが行われていた場合、それを再現する。
つまり、伝送されてきたフラグ情報のみでは、従来のように、周辺領域Lおよび周辺領域Tしか指定できないが、実際には、符号化側において置き換えが行われ、その他の周辺領域が候補とされている可能性もある。マージ情報復号部242は、マージ候補設定部241から供給される候補情報に基づいて、その実際に候補とされた周辺領域を正確に特定する。
マージ情報を解読した結果、マージモードであり、かつ、当該領域にマージする周辺領域を特定すると、マージ情報復号部242は、その周辺領域を指定する周辺領域指定情報を、動き情報再構築部235に供給する。
なお、マージ情報の解読の結果、マージモードでなかった場合、マージ情報復号部242は、予測動きベクトル再構築部244に対して、予測動きベクトル情報を再構築するように指示する制御信号を供給する。
候補プレディクタ設定部243は、動き情報バッファ234から必要な周辺領域の周辺動き情報を適宜取得し、スライス境界判定部221から供給されるスライス境界判定結果に従って、適宜、利用不可能(unavailable)な動き情報の候補は、利用可能(available)な動き情報の領域に置き換える等して、予測動きベクトル情報の候補を設定する。候補プレディクタ設定部243は、設定した予測動きベクトル情報の候補を指定する候補情報を予測動きベクトル再構築部244に供給する。
予測動きベクトル再構築部244は、マージ情報復号部242から予測動きベクトル情報を再構築するように指示されると(制御信号が供給されると)、予測動きベクトル情報バッファ233から、画像符号化装置100から供給された予測動きベクトル情報のコードナンバを取得し、そのコードナンバを解読する。
その際、予測動きベクトル再構築部244は、マージ情報復号部242の場合と同様に、候補プレディクタ設定部243から供給された候補情報に基づいて、符号化側で候補の置き換えが行われた場合、それを再現し、予測動きベクトル情報に選ばれた動き情報の周辺領域を正しく特定する。予測動きベクトル再構築部244は、その周辺領域の周辺動き情報を動き情報バッファ234から取得し、その周辺動き情報を予測動きベクトル情報とする。予測動きベクトル再構築部244は、再構築した予測動きベクトル情報を、動き予測・補償部212の動き情報再構築部235に供給する。
マージモードの場合、動き情報再構築部235は、マージ情報復号部242から供給された周辺領域指定情報により指定される周辺領域の動き情報を動き情報バッファ234から取得し、それを当該領域の動き情報とする(動き情報を再構築する)。
これに対して、MVコンペティションの場合、動き情報再構築部235は、差分動き情報バッファ231から、画像符号化装置100から供給された差分動き情報を取得する。動き情報再構築部235は、その差分動き情報に、予測動きベクトル再構築部244から取得した予測動きベクトル情報を加算し、当該領域(当該PU)の動き情報を再構築する。動き情報再構築部235は、再構築した当該領域の動き情報を動き補償部236に供給する。
動き補償部236は、以上のように動き情報再構築部235により再構築された当該領域の動き情報を用いて、フレームメモリ209から取得した参照画像画素値に対して動き補償を行い、予測画像を生成する。動き補償部236は、その予測画像画素値を、選択部213を介して演算部205に供給する。
また、動き情報再構築部235は、再構築した当該領域の動き情報を動き情報バッファ234にも供給する。
動き情報バッファ234は、その動き情報再構築部235から供給される当該領域の動き情報を記憶する。動き情報バッファ234は、当該領域よりも時間的に後に処理される他の領域に対する処理において、その動き情報を周辺動き情報として、マージ候補設定部241、候補プレディクタ設定部243、および予測動きベクトル再構築部244に供給する。
以上のように各部が処理を行うことにより、画像復号装置200は、画像符号化装置100が符号化した符号化データを正しく復号することができ、符号化効率の向上を実現させることができる。
[復号処理の流れ]
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図23のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップS201において、蓄積バッファ201は、伝送されてきたコードストリームを蓄積する。ステップS202において、可逆復号部202は、蓄積バッファ201から供給されるコードストリーム(符号化された差分画像情報)を復号する。すなわち、図1の可逆符号化部106により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
このとき、差分動き情報、予測動きベクトル情報のコードナンバ、およびマージ情報など、コードストリームに含められた差分画像情報以外の各種情報も復号される。
ステップS203において、逆量子化部203は、ステップS202の処理により得られた、量子化された直交変換係数を逆量子化する。ステップS204において逆直交変換部204は、ステップS203において逆量子化された直交変換係数を逆直交変換する。
ステップS205において、イントラ予測部211若しくは動き予測・補償部212は、供給された情報を用いて予測処理を行う。ステップS206において、選択部213は、ステップS205において生成された予測画像を選択する。ステップS207において、演算部205は、ステップS204において逆直交変換されて得られた差分画像情報に、ステップS206において選択された予測画像を加算する。これにより元の画像が復号される。
ステップS208において、ループフィルタ206は、ステップS207において得られた復号画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS209において、画面並べ替えバッファ207は、ステップS208においてフィルタ処理された画像の並べ替えを行う。すなわち画像符号化装置100の画面並べ替えバッファ102により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS210において、D/A変換部208は、ステップS209においてフレームの順序が並べ替えられた画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
ステップS211において、フレームメモリ209は、ステップS208においてフィルタ処理された画像を記憶する。
ステップS211の処理が終了すると、復号処理が終了される。
[予測処理の流れ]
次に、図24のフローチャートを参照して、図23のステップS205において実行される予測処理の流れの例を説明する。
予測処理が開始されると、可逆復号部202は、ステップS231において、画像符号化装置100から供給された最適な予測モードに関する情報に基づいて、処理対象の符号化データがイントラ符号化されているか否かを判定する。イントラ符号化されていると判定された場合、可逆復号部202は、処理をステップS232に進める。
ステップS232において、イントラ予測部211は、イントラ予測モード情報を取得する。ステップS233において、イントラ予測部211は、ステップS232において取得したイントラ予測モード情報を用いてイントラ予測を行い、予測画像を生成する。予測画像を生成すると、イントラ予測部211は、予測処理を終了し、処理を図23に戻す。
また、ステップS231において、インター符号化されていると判定された場合、可逆復号部202は、処理をステップS234に進める。
ステップS234において、動き予測・補償部212は、インター動き予測処理を行う。インター動き予測処理が終了すると、動き予測・補償部212は、予測処理を終了し、処理を図23に戻す。
[インター動き予測処理の流れ]
次に、図25のフローチャートを参照して、図24のステップS234において実行されるインター動き予測処理の流れの例を説明する。
インター動き予測処理が開始されると、ステップS251において、動き予測・補償部212は、当該領域に対する動き予測に関する情報を取得する。例えば、差分動き情報バッファ231は、差分動き情報を取得し、マージ情報バッファ232は、マージ情報を取得し、予測動きベクトル情報バッファ233は、予測動きベクトル情報のコードナンバを取得する。
ステップS252において、スライス境界判定部221は、スライス境界領域アドレスや当該領域アドレス等のアドレス情報を取得する。ステップS253において、スライス境界判定部221は、ステップS252において取得したアドレス情報に基づいて、当該領域がスライス境界に接し、マージの候補となる周辺領域の動き情報や予測動きベクトル情報の候補が利用可能であるか否かを判定する。
ステップS254において、マージ候補設定部241は、ステップS253において行われたスライス境界判定結果に応じてマージ候補を設定する。ステップS255において、マージ情報復号部242は、ステップS253において設定されたマージ候補を用いて、マージ情報を復号(解読)し、マージモードが選択された場合、マージする周辺領域を特定する。
ステップS256において、マージ情報復号部242は、マージモードであるか否かを判定し、マージモードであると判定した場合、処理をステップS257に進める。
ステップS257において、候補プレディクタ設定部243は、ステップS253において得られたスライス境界判定結果に応じて予測動きベクトル情報の候補(候補プレディクタ)を設定する。
ステップS258において、予測動きベクトル再構築部244は、候補プレディクタを用いて、予測動きベクトル情報のコードナンバから、予測動きベクトル情報を再構築する。予測動きベクトル情報を再構築すると、予測動きベクトル再構築部244は、処理をステップS259に進める。また、ステップS256において、マージモードであると判定した場合、マージ情報復号部242は、処理をステップS259に進める。
ステップS259において、動き情報再構築部235は、ステップS255におけるマージ情報の復号結果、若しくは、ステップS258において再構築された予測動きベクトル情報を用いて、当該領域の動き情報を再構築する。
ステップS260において、動き補償部236は、ステップS259において再構築された動き情報を用いて動き補償を行い、予測画像を生成する。
ステップS261において、動き補償部236は、ステップS260において生成した予測画像を、選択部213を介して演算部205に供給し、復号画像を生成させる。
ステップS262において、動き情報バッファ234は、ステップS259において再構築された動き情報を記憶する。
ステップS262の処理が終了すると、動き情報バッファ234は、インター動き予測処理を終了し、処理を図24に戻す。
以上のように各処理を行うことにより、画像復号装置200は、画像符号化装置100が符号化した符号化データを正しく復号することができ、符号化効率の向上を実現させることができる。
なお、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
<3.第3の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図26において、パーソナルコンピュータ500のCPU(Central Processing Unit)501は、ROM(Read Only Memory)502に記憶されているプログラム、または記憶部513からRAM(Random Access Memory)503にロードされたプログラムに従って各種の処理を実行する。RAM503にはまた、CPU501が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU501、ROM502、およびRAM503は、バス504を介して相互に接続されている。このバス504にはまた、入出力インタフェース510も接続されている。
入出力インタフェース510には、キーボード、マウスなどよりなる入力部511、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部512、ハードディスクなどより構成される記憶部513、モデムなどより構成される通信部514が接続されている。通信部514は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース510にはまた、必要に応じてドライブ515が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア521が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部513にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図26に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア521により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM502や、記憶部513に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<4.第4の実施の形態>
[第1の応用例:テレビジョン受像機]
図27は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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での画像の復号に際して、MVコンペティションやマージモードにおける候補の数の低減を抑制することができ、符号化効率の向上を実現させることができる。
<5.第5の実施の形態>
[第2の応用例:携帯電話機]
図28は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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での画像の符号化及び復号に際して、MVコンペティションやマージモードにおける候補の数の低減を抑制することができ、符号化効率を向上させることができる。
<6.第6の実施の形態>
[第3の応用例:記録再生装置]
図29は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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での画像の符号化及び復号に際して、MVコンペティションやマージモードにおける候補の数の低減を抑制することができ、符号化効率を向上させることができる。
<7.第7の実施の形態>
[第4の応用例:撮像装置]
図30は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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での画像の符号化及び復号に際して、MVコンペティションやマージモードにおける候補の数の低減を抑制することができ、符号化効率を向上させることができる。
なお、本明細書では、予測モード情報及びマージ情報などの様々な情報が、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 処理対象である当該領域の動き情報の符号化に用いる、当該領域の周辺に位置する周辺領域の動き情報が利用可能であるか否かを判定する判定部と、
前記判定部により利用不可能であると判定された周辺領域の動き情報の代わりに、利用可能な他の周辺領域の動き情報を用いて当該領域の動き情報を符号化する符号化部と
を備える画像処理装置。
(2) 前記判定部は、フレームを複数に分割するスライスであって、当該領域を含む当該スライスの境界のアドレスと、当該領域のアドレスとに基づいて、前記周辺領域の動き情報が利用可能であるか否かを判定する
前記(1)に記載の画像処理装置。
(3) 前記判定部は、前記周辺領域が、処理対象である当該フレームの、当該スライスの外に位置する場合、前記周辺領域の動き情報が利用不可能であると判定する
前記(2)に記載の画像処理装置。
(4) 前記符号化部は、
当該領域とマージする領域の候補とする周辺領域の動き情報が利用不可能である場合、前記周辺領域の代わりに、動き情報が利用可能な他の周辺領域を前記候補とする候補設定部と、
前記候補設定部により設定された候補の中から、当該領域にマージさせる周辺領域を決定し、マージ情報を生成するマージ情報生成部と
を備える前記(1)乃至(3)のいずれかに記載の画像処理装置。
(5) 前記候補設定部は、前記判定部により利用不可能であると判定された周辺領域のCo-Located領域が利用可能である場合、前記Co-Located領域を前記候補とする
前記(4)に記載の画像処理装置。
(6) 前記候補設定部は、処理対象である当該フレームの、フレームを複数に分割するスライスであって、処理対象の当該スライスの内部に位置する他の周辺領域を前記候補とする
前記(4)に記載の画像処理装置。
(7) 前記候補設定部は、前記判定部により利用不可能であると判定された周辺領域が当該フレームの外部に位置する場合、処理対象である当該フレームから参照される参照フレームの内部に位置する周辺領域を前記候補とする
前記(4)に記載の画像処理装置。
(8) 前記符号化部は、
当該領域の予測動きベクトル情報の候補とする周辺領域の動き情報が利用不可能である場合、前記動き情報の代わりに、他の周辺領域の利用可能な動き情報を前記候補に設定する候補設定部と、
前記候補設定部により設定された候補のいずれかを用いて、当該領域の予測動きベクトル情報を生成する予測動きベクトル生成部と
を備える前記(1)乃至(7)のいずれかに記載の画像処理装置。
(9) 前記候補設定部は、前記判定部により利用不可能であると判定された周辺領域のCo-Located領域が利用可能である場合、前記Co-Located領域を前記候補とする
前記(8)に記載の画像処理装置。
(10) 前記候補設定部は、処理対象である当該フレームの、フレームを複数に分割するスライスであって、処理対象の当該スライスの内部に位置する他の周辺領域を前記候補とする
前記(8)に記載の画像処理装置。
(11) 前記候補設定部は、前記判定部により利用不可能であると判定された周辺領域が当該フレームの外部に位置する場合、処理対象である当該フレームから参照される参照フレームの内部に位置する周辺領域を前記候補とする
前記(8)に記載の画像処理装置。
(12) 画像処理装置の画像処理方法であって、
判定部が、処理対象である当該領域の動き情報の符号化に用いる、当該領域の周辺に位置する周辺領域の動き情報が利用可能であるか否かを判定し、
符号化部が、利用不可能であると判定された周辺領域の動き情報の代わりに、利用可能な他の周辺領域の動き情報を用いて当該領域の動き情報を符号化する
画像処理方法。
(13) 処理対象である当該領域の動き情報の復号に用いる、当該領域の周辺に位置する周辺領域の動き情報が利用可能であるか否かを判定する判定部と、
前記判定部により利用不可能であると判定された周辺領域の動き情報の代わりに、利用可能な他の周辺領域の動き情報を用いて、符号化された当該領域の動き情報を復号する復号部と
を備える画像処理装置。
(14) 前記判定部は、フレームを複数に分割するスライスであって、当該領域を含む当該スライスの境界のアドレスと、当該領域のアドレスとに基づいて、前記周辺領域の動き情報が利用可能であるか否かを判定する
前記(13)に記載の画像処理装置。
(15) 前記判定部は、前記周辺領域が、処理対象である当該フレームの、当該スライスの外に位置する場合、前記周辺領域の動き情報が利用不可能であると判定する
前記(13)または(14)に記載の画像処理装置。
(16) 前記復号部は、
当該領域とマージする領域の候補とする周辺領域の動き情報が利用不可能である場合、前記周辺領域の代わりに、動き情報が利用可能な他の周辺領域を前記候補とする候補設定部と、
前記候補設定部により設定された候補の中から、当該領域にマージさせる周辺領域を決定し、その決定に従ってマージ情報を復号するマージ情報復号部と
を備える前記(13)乃至(15)のいずれかに記載の画像処理装置。
(17) 前記候補設定部は、前記判定部により利用不可能であると判定された周辺領域のCo-Located領域が利用可能である場合、前記Co-Located領域を前記候補とする
前記(16)に記載の画像処理装置。
(18) 前記候補設定部は、処理対象である当該フレームの、フレームを複数に分割するスライスであって、処理対象の当該スライスの内部に位置する他の周辺領域を前記候補とする
前記(16)に記載の画像処理装置。
(19) 前記候補設定部は、前記判定部により利用不可能であると判定された周辺領域が当該フレームの外部に位置する場合、処理対象である当該フレームから参照される参照フレームの内部に位置する周辺領域を前記候補とする
前記(16)に記載の画像処理装置。
(20) 前記復号部は、
当該領域の予測動きベクトル情報の候補とする周辺領域の動き情報が利用不可能である場合、前記動き情報の代わりに、他の周辺領域の利用可能な動き情報を前記候補とする候補設定部と、
前記候補設定部により設定された候補のいずれかを用いて、当該領域の予測動きベクトル情報を再構築する予測動きベクトル再構築部と
を備える前記(13)乃至(19)のいずれかに記載の画像処理装置。
(21) 前記候補設定部は、前記判定部により利用不可能であると判定された周辺領域のCo-Located領域が利用可能である場合、前記Co-Located領域を前記候補とする
前記(20)に記載の画像処理装置。
(22) 前記候補設定部は、処理対象である当該フレームの、フレームを複数に分割するスライスであって、処理対象の当該スライスの内部に位置する他の周辺領域を前記候補とする
前記(20)に記載の画像処理装置。
(23) 前記候補設定部は、前記判定部により利用不可能であると判定された周辺領域が当該フレームの外部に位置する場合、処理対象である当該フレームから参照される参照フレームの内部に位置する周辺領域を前記候補とする
前記(20)に記載の画像処理装置。
(24) 画像処理装置の画像処理方法であって、
判定部が、処理対象である当該領域の動き情報の復号に用いる、当該領域の周辺に位置する周辺領域の動き情報が利用可能であるか否かを判定し、
復号部が、利用不可能であると判定された周辺領域の動き情報の代わりに、利用可能な他の周辺領域の動き情報を用いて当該領域の動き情報を復号する
画像処理方法。