以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
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を有する。
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は、可逆符号化部106の符号化処理を制御する。その際、符号化制御部121は、マージモードで符号化を行うか否かの判定を行う。その判定の際、符号化制御部121は、その判定に利用するNumMergeCandidatesというパラメータの設定を行う。NumMergeCandidatesは、処理対象である当該領域の周辺に位置する、マージモードにおいて動きベクトルを参照する可能性のある周辺領域が有する動きベクトルに関するパラメータである。符号化制御部121は、そのパラメータの設定の際に、マルチスライス化された処理対象のピクチャ(当該ピクチャ)に対して、周辺領域が当該領域と同じスライス(当該スライス)に含まれるか否かを確認する。
つまり、符号化制御部121は、可逆符号化部106の符号化処理の制御において、マージモードで参照する可能性のある周辺領域が利用可能(available)であるか、利用不可能(unavailable)であるかを考慮してマージモードにするか否かの判定を行い、その判定結果に基づいてマージモードの制御を行う。また、符号化制御部121は、例えば、スキップモード、イントラ予測モード、インター予測モード、およびダイレクトモード等、マージモード以外のモードについても符号化処理の制御を行う。
可逆符号化部106は、符号化制御部121により選択されたモードで可逆符号化処理を行う。
[マルチスライス]
MPEG2やAVC等の画像符号化方式においては、1ピクチャを複数のスライスに分割し、各スライスを並行して処理することができる(マルチスライス)。
MPEG2の場合、図2Aの例に示されるように、スライスの最大の大きさは1マクロブロックラインであり、また、Bピクチャを構成するスライスは全てBスライスでなければならない。
これに対してAVCの場合、図3Bの例に示されるように、スライスは1マクロブロックラインより大きくてもよく、スライスの境界はマクロブロックラインの右端(画面右端)でなくてもよく、また、単一のピクチャが異なる種類のスライスにより構成されていても良い。
AVCの場合、デブロックフィルタ処理はスライス境界を跨って実行することができる。ただし、イントラ予測、CABAC、CAVLC、および動きベクトルの予測等のような隣接情報を用いた処理は、スライス境界を跨って実行することが出来ない。
換言するに、各スライスの符号化処理は互いに独立して実行することができるので、1ピクチャを複数のスライスに分割し、各スライスを並列に符号化することが可能になる。つまり、このようなスライス分割により、符号化処理時間の低減(符号化処理の高速化)を実現することができる。
[コーディングユニット]
ところで、AVC符号化方式においては、マクロブロックやそのマクロブロックを複数に分割したサブマクロブロックを予測処理や符号化処理等の処理単位としていた。しかしながら、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない。
そこで、現在、AVCより更なる符号化効率の向上を目的として、ITU-T(International Telecommunication Union Telecommunication Standardization Sector)と、ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission)の共同の標準化団体であるJCTVC(Joint Collaboration Team - Video Coding)により、HEVC(High Efficiency Video Coding)と呼ばれる符号化方式の標準化が進められている。
AVCにおいては、マクロブロックとサブマクロブロックによる階層構造が規定されているが、HEVCにおいては、図3に示されるように、コーディングユニット(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に分割することができる。図3の例では、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は図3に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVCのマクロブロックより大きく設定されることが一般的である。
マクロブロックの代わりに、このようなCU、PU、およびTU等を用いる符号化方式にも、本開示を適用することができる。すなわち、予測処理を行う処理単位は任意の領域であってもよい。つまり、以下において、予測処理の処理対象の領域(当該領域や注目領域とも称する)や、その当該領域の周辺に位置する領域である周辺領域には、このようなマクロブロックやサブマクロブロックだけでなく、CU、PU、およびTU等が含まれる。
以上のようなLCU(CU、PU、およびTU)は、スライスの領域を複数に分割したものであり、スライスの下位層に属する。つまり、図2に説明したようなマルチスライスの場合、図4に示されるように、LCUは、いずれかのスライス内に含まれる。
図5に示されるように、LCUの先頭アドレスは、各スライスの先頭からの相対位置で指定される。LCU内の各領域(CU、PU、およびTU)は、識別情報とサイズが指定される。つまり、各領域の位置(例えば先頭アドレス)は、それらの情報から特定可能である。従って、当該領域や周辺領域の位置、並びに、当該スライスの範囲は、それらの情報から容易に特定することができる。換言するに、周辺領域が当該スライスに属するか否か(availableであるかunavailableであるか)は、容易に特定可能である。
なお、スライスの境界は、PU単位で設定することも可能である。つまり、複数のスライスに跨るように位置するLCUが存在してもよい。その場合も、PU等の各動きベクトルに対応する領域(予測処理単位の領域)は、いずれか1つのスライスに含まれる。
[動きパーティションのマージ]
ところで、動き情報の符号化方式の1つとして、図6に示されるような、Motion Partition Mergingと呼ばれる手法(マージモード)が提案されている。この手法においては、Merge_Flagと、Merge_Left_Flagという、2つのflagが、マージモードに関する情報であるマージ情報として伝送される。
Merge_Flag=1は、当該領域Xの動き情報が、当該領域の上に隣接する周辺領域T、若しくは、当該領域の左に隣接する周辺領域Lの動き情報と同一であることを示す。この時、マージ情報には、Merge_Left_Flagが含められ、伝送される。Merge_Flag=0は、当該領域Xの動き情報が、周辺領域Tおよび周辺領域Lのいずれの動き情報とも異なることを示す。この場合、当該領域Xの動き情報が伝送される。
当該領域Xの動き情報が、周辺領域Lの動き情報と同一である場合、Merge_Flag=1、かつ、Merge_Left_Flag=1となる。当該領域Xの動き情報が、周辺領域Tの動き情報と同一である場合、Merge_Flag=1、かつ、Merge_Left_Flag=0となる。
[マルチスライスのマージモード]
以上のように、マージモードにおいては、周辺領域の動き情報が参照される。しかしながら、上述したようなマルチスライスの場合、マージモードにおいて参照される可能性のある周辺領域Lや周辺領域Tが当該領域Xと異なるスライスに位置する可能性がある。
図7乃至図10にマルチスライスと、マージモードの当該領域および周辺領域の位置関係の例を示す。
図7は、当該領域(CU_X)、その当該領域(CU_X)の上に隣接する周辺領域(PU_T)、および、その当該領域(CU_X)の左に隣接する周辺領域(PU_L)が、全て1つのスライス(スライス1)内に位置する(当該スライスに属する)様子を示している。
この場合、周辺領域(PU_T)および周辺領域(PU_L)の両方とも参照することができる(availableである)。
図8は、当該領域(CU_X)および周辺領域(PU_L)がスライス1内に位置する(当該スライスに属する)が、周辺領域(PU_T)は、スライス0内に位置する(当該スライスに属さない)様子を示している。
この場合、周辺領域(PU_L)は参照することができる(availableである)が、周辺領域(PU_T)は、参照することができない(unavailableである)。
図9は、当該領域(CU_X)がスライス1内に位置する(当該スライスに属する)が、周辺領域(PU_T)および周辺領域(PU_L)は、スライス0内に位置する(当該スライスに属さない)様子を示している。
この場合、周辺領域(PU_T)および周辺領域(PU_L)の両方とも参照することができない(unavailableである)。
図10は、当該領域(CU_X)および周辺領域(PU_T)がスライス1内に位置する(当該スライスに属する)が、周辺領域(PU_L)は、スライス0内に位置する(当該スライスに属さない)様子を示している。
この場合、周辺領域(PU_T)は参照することができる(availableである)が、周辺領域(PU_L)は、参照することができない(unavailableである)。
なお、スライス境界には、スライス間の境界の他に、ピクチャ端も含まれる。重要なことは、周辺領域が利用可能(available)であるか否か、すなわち、周辺領域が当該スライスに含まれるか否かということである。したがって、周辺領域が利用不可能(unavailable)な状態には、その周辺領域が他のスライスに属する場合の他に、その周辺領域が存在しない(ピクチャの外に位置することになる)場合も含まれる。
図6の例において、このように周辺領域Lや周辺領域Tが利用不可能(unavailable)な場合、その周辺領域Lや周辺領域Tの処理が終了するまで当該領域Xの処理が進められなくなる。したがって、マルチスライスにおいては、スライス毎に並列に処理されることが考えられるが、この周辺領域の参照のために、並列処理が困難になり、処理時間が増大する恐れがある。
[シンタックス]
また、マージモードにおいて実際に周辺領域の動き情報を参照する際だけでなく、マージモードを採用するか否かの判定の際にも、周辺領域の動き情報が必要になる。
図11にCUのシンタックスの例を示す。図12にPUのシンタックスの例を示す。図11および図12において、各行の左端の数字は、説明の便宜上付した行番号である。
例えば、図11の第7行目や図12の第12行目に示されるように、マージモードを採用するか否かの判定に、NumMergeCandidatesというパラメータの値が利用される。このパラメータは、マージモードにおいて、当該領域とマージされる可能性のある周辺領域(当該領域とマージする領域の候補)が有する動きベクトルのカウント値(合計数)を示すものである。
図1の符号化制御部121は、このNumMergeCandidatesが0より大きいことを、マージモードを採用する条件の1つとする。NumMergeCandidatesの値が0であることは、当該領域とマージする領域の候補の中に動き情報を有する領域が1つも無いことを示す。この場合、マージが不可能であるので、符号化制御部121は、マージモード以外のモードを採用するように制御する。
換言するに、NumMergeCandidatesが0より大きい場合、当該領域とマージする領域の候補の中に動き情報を有する領域が少なくとも1つ存在するので、符号化制御部121は、マージモードに関するその他の条件の判定を行う。
このNumMergeCandidatesを正確に求めるためには、当該領域とマージする領域の候補とする全ての周辺領域の動き情報を確認しなければならない。つまり、マージモードを採用するか否かの判定においては、このNumMergeCandidatesが必要であり、その値を求めるためには、周辺領域の動き情報を参照する必要がある。したがって、上述したように、利用不可能(unavailable)な周辺領域が存在する場合、マージモードを採用するか否かの判定においても、並列処理が困難になり、遅延が発生する恐れがあった。
[符号化制御部のNumMergeCandidates算出]
そこで、符号化制御部121は、当該スライスに存在する周辺領域についてのみ、動きベクトルを有するか否かを判定し、NumMergeCandidatesを求める。つまり、符号化制御部121は、周辺領域が当該スライスに存在し、かつ、動きベクトルを有する場合のみ、その周辺領域をカウントする(NumMergeCandidatesをインクリメントする)。
このようにすることにより、まず、マージモードを採用するか否かの判定において、当該スライスに属さない周辺領域の動きベクトルを参照する必要がなくなる。また、当該スライスに属さない周辺領域が、当該領域とマージする領域の候補から除外される。換言するに、当該領域とマージする領域の候補は、当該スライスに属する周辺領域のみとなる。従って、マージモードが採用された場合も、当該スライスに属する周辺領域しか当該領域にマージされないので、当該スライスに属さない周辺領域の動きベクトルを参照する必要がなくなる。
したがって、符号化制御部121および可逆符号化部106は、当該スライス内の動き情報のみを参照すればよいので、他のスライスの処理が終了するまで待機する必要がない。したがって、画像符号化装置100は、スライス毎の処理の並列化を実現することができ、マージモードに関する処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
なお、符号化制御部121が上述したようにNumMergeCandidatesを算出すればよく、シンタックスを変更する必要がない。したがって、開発が容易であり、符号量を増大させたり、汎用性を低減させたりする恐れもない。
なお、以上に説明したスライスは、ピクチャを複数に分割し、並列に処理可能な処理単位であればよい。したがって、このスライスには、通常のスライスの他に、例えば、エントロピスライスも含まれる。もちろん、スライスの形状や数や位置は任意である。つまり、ピクチャの分割位置や分割数は任意である。
また、以上においては、スライス1を当該スライスとして説明したが、どのスライスが当該スライスの場合であっても同様である。例えば、図4の例において、スライス0やスライス2内の領域を当該領域とする場合も同様である。
なお、上述したように、ピクチャの左端や上端において、周辺領域が存在しない場合も、符号化制御部121は、その周辺領域が他のスライスに存在する場合と同様に、その周辺領域の動きベクトルの参照を省略し、NumMergeCandidatesをインクリメントしない。
[可逆符号化部および符号化制御部]
図13は、可逆符号化部106および符号化制御部121の主な構成例を示すブロック図である。
図13に示されるように、可逆符号化部106は、NAL(Network Abstraction Layer)符号化部131およびCUデータ符号化部132を有する。
NAL符号化部131は、シーケンスパラメータセット(SPS(Sequence Parameter Set))、ピクチャパラメータセット(PPS(Picture Parameter Set))、およびスライスヘッダ等のNALのデータを符号化する。CUデータ符号化部132は、CU以下の階層のデータ(VCL(Video Coding Layer))を符号化する。
CUデータ符号化部132は、スキップフラグ符号化部141、スキップモード符号化部142、マージフラグ符号化部143、およびマージモード符号化部144を有する。また、CUデータ符号化部132は、PredMode符号化部145、イントラ符号化部146、インター符号化部147、および、ダイレクトモード符号化部148を有する。
スキップフラグ符号化部141は、符号化制御部121の制御に従って、スキップモードを採用するか否かを示すスキップフラグを生成し、符号化する。スキップモード符号化部142は、符号化制御部121の制御に従って、スキップモードでの符号化処理を行う。
マージフラグ符号化部143は、符号化制御部121の制御に従って、マージモードを採用するか否かを示すマージフラグ(MergeFlag)を生成し、符号化する。マージモード符号化部144は、符号化制御部121の制御に従って、マージモードでの符号化処理を行う。
PredMode符号化部145は、符号化制御部121の制御に従って、予測モードを示すパラメータであるPredModeを符号化する。イントラ符号化部146は、符号化制御部121の制御に従って、イントラ予測を用いて生成された差分画像の符号化に関する処理を行う。インター符号化部147は、符号化制御部121の制御に従って、インター予測を用いて生成された差分画像の符号化に関する処理を行う。ダイレクトモード符号化部148は、符号化制御部121の制御に従って、ダイレクトモードを用いて生成された差分画像の符号化に関する処理を行う。
また、図13に示されるように、符号化制御部121は、スライス判定部161、スキップフラグ判定部162、NMC(NumMergeCandidates)設定部163、NMC判定部164、マージフラグ判定部165、およびPredMode判定部166を有する。
スライス判定部161は、当該スライスのタイプを判定し、その判定結果をスキップフラグ符号化部141およびPredMode符号化部145、または、スキップフラグ判定部162に供給する。スキップフラグ判定部162は、スキップフラグ符号化部141において生成された(若しくは生成されなかった)スキップフラグの値(若しくは存在)を判定し、その判定結果をスキップモード符号化部142、若しくは、NMC判定部164に供給する。
NMC設定部163は、パラメータNumMergeCandidatesの値を求め(設定し)、その値をNMC判定部164に供給する。NMC判定部164は、NumMergeCandidatesの値を判定し、その判定結果をマージフラグ符号化部143、若しくは、マージフラグ判定部165に供給する。
マージフラグ判定部165は、マージフラグ符号化部143において生成された(若しくは生成されなかった)マージフラグの値(若しくは存在)を判定し、その判定結果をマージモード符号化部144若しくはスライス判定部161に供給する。
PredMode判定部166は、PredMode符号化部145において生成された(若しくはされなかった)PredModeの値(若しくは存在)を判定し、その判定結果を、イントラ符号化部146、インター符号化部147、若しくはダイレクトモード符号化部148に供給する。
[NMC設定部]
図14は、NMC設定部163の主な構成例を示すブロック図である。
図14に示されるように、NMC設定部163は、NMCリセット部181、位置判定部182、タイプ判定部183、NMC更新部184、およびNMC保持部185を有する。
NMCリセット部181は、NMC保持部185に保持されているパラメータNumMergeCandidatesの値を0にリセットする。
位置判定部182は、NMCリセット部181からリセットの通知を受けたり、NMC更新部184からNumMergeCandidatesの値の更新の通知を受けたり、タイプ判定部183から判定結果を取得したりすると、NAL符号化部131からスライスや当該領域Xの位置に関する情報を取得し、当該領域Xの位置を求め、その当該領域Xの位置から周辺領域Tや周辺領域Lの位置を求め、それらが当該スライスに存在するか否かの判定を行う。位置判定部182は、その判定結果をタイプ判定部183に供給する。
タイプ判定部183は、位置判定部182から判定結果を取得すると、CUデータ符号化部132から、当該スライスに存在する周辺領域Lや周辺領域Tの予測のタイプを判定する。つまり、タイプ判定部183は、周辺領域Lや周辺領域Tが動き情報を有するか否かを判定する。タイプ判定部183は、その判定結果を位置判定部182若しくはNMC更新部184に供給する。
NMC更新部184は、タイプ判定部183から判定結果を取得すると、NMC保持部185に保持されているパラメータNumMergeCandidatesの値をインクリメント(+1)する。つまり、NMC更新部184は、当該スライス内に位置する周辺領域が動き情報を有する場合、NMC保持部185に保持されているパラメータNumMergeCandidatesの値をインクリメント(+1)する。
NMC保持部185は、所定のタイミングにおいて、若しくは、NMC判定部164からの要求に応じて、保持しているパラメータNumMergeCandidatesの値をNMC判定部164に供給する。
[符号化処理の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図15のフローチャートを参照して、符号化処理の流れの例を説明する。
ステップ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の処理が終了すると、符号化処理が終了される。
なお、ステップS114において、可逆符号化部106は、符号化制御部121の制御に従って符号化処理を行う。
[可逆符号化処理の流れ]
次に、図16のフローチャートを参照して、図15のステップS114において実行される可逆符号化処理の流れの例を説明する。図16に示されるように、可逆符号化処理は、画像の階層毎に行われる。
つまり、NAL符号化部131は、ステップS121において、SPSを生成して符号化し、ステップS122において、PPSを生成して符号化し、ステップS123においてスライスヘッダを生成して符号化する。ステップS124において、CUデータ符号化部132は、処理対象である当該CUを符号化する。
CUデータ符号化部132は、このステップS124の処理を、処理対象である当該スライス内の全てCUについて繰り返す。ステップS125において、当該スライス内に未処理のCUが存在しないと判定された場合、CUデータ符号化部132は、処理をステップS126に進める。
NAL符号化部131は、このステップS123乃至ステップS125の処理を、処理対象である当該ピクチャ内の全てのスライスについて繰り返す。ステップS126において、当該ピクチャ内に未処理のスライスが存在しないと判定された場合、NAL符号化部131は、処理をステップS127に進める。
NAL符号化部131は、このステップS122乃至ステップS126の処理を、処理対象である当該シーケンス内の全てのピクチャについて繰り返す。ステップS127において、当該シーケンス内に未処理のピクチャが存在しないと判定された場合、NAL符号化部131は、可逆符号化処理を終了し、処理を図15に戻す。
[CU符号化処理の流れ]
次に、図17および図18のフローチャートを参照して、図16のステップS124において実行されるCU符号化処理の流れの例を説明する。
CU符号化処理が開始されると、スライス判定部161は、ステップS131において、NAL符号化部131により生成されたNALデータから、当該スライスのタイプを判定し、当該スライスがIスライスであるか否かを判定する。当該スライスがIスライスでない(Pスライス若しくはBスライスである)場合のみ、スキップフラグ符号化部141は、ステップS132において、スキップフラグを生成し、符号化する。
ステップS133において、スキップフラグ判定部162が、スキップフラグの値が1であると判定した場合、スキップフラグ判定部162からその判定結果を取得したスキップモード符号化部142は、ステップS134において、スキップモードでCUデータを符号化する。符号化が終了すると、CU符号化処理が終了され、処理が図16に戻される。
また、図17のステップS133において、スキップフラグ判定部162が、スキップフラグの値が0である、若しくは、スキップフラグが存在しないと判定した場合、スキップフラグ判定部162は、処理をステップS135に進める。この場合、スキップモードでの符号化は行われない。
ステップS135において、NMC設定部163は、NumMergeCandidatesを設定する。
ステップS136において、NMC判定部164が、ステップS135において設定されたNumMergeCandidatesの値が0より大きいと判定した場合のみ、マージフラグ符号化部143は、ステップS137において、マージフラグを生成し、符号化する。
ステップS138においてマージフラグ判定部165がマージフラグの値が1であると判定した場合、マージフラグ判定部165からその判定結果を取得したマージモード符号化部144は、ステップS139において、マージモードでCUデータを符号化する。符号化が終了すると、CU符号化処理が終了され、処理が図16に戻される。
また、図17のステップS138において、マージフラグ判定部165が、マージフラグの値が0である、若しくは、マージフラグが存在しないと判定した場合、処理は図18のフローチャートに進み、採用された予測モードに応じた符号化が行われる。
すなわち、図18のステップS141においてスライス判定部161が処理対象である当該スライスがIスライスでないと判定した場合のみ、PredMode符号化部145が、ステップS142において、当該スライスの予測モードのタイプを示すパラメータであるpred_modeを生成し、符号化する。
ステップS143において、PredMode判定部166が、PredModeを参照し、当該領域の予測モードがイントラ予測モードであると判定した場合、イントラ符号化部146は、ステップS144において、イントラ予測モードのCUデータを符号化する。つまり、差分画像情報(量子化された直交変換係数)やイントラ予測モードに関する情報等が符号化される。符号化が終了すると、CU符号化処理が終了され、処理が図16に戻される。
また、PredMode判定部166が、当該領域の予測モードがイントラ予測モードでなく、インター予測モードであると判定した場合(ステップS143およびステップS145)、インター符号化部147は、ステップS146において、インター予測モードのCUデータを符号化する。つまり、差分画像情報(量子化された直交変換係数)やインター予測モードに関する情報等が符号化される。符号化が終了すると、CU符号化処理が終了され、処理が図16に戻される。
さらに、PredMode判定部166が、当該領域の予測モードがイントラ予測モードでなく、インター予測モードでもないと判定した場合(ステップS143およびステップS145)、ダイレクトモード符号化部148は、ステップS147において、ダイレクト予測モードのCUデータを符号化する。符号化が終了すると、CU符号化処理が終了され、処理が図16に戻される。
[NumMergeCandidates設定処理の流れ]
次に、図19のフローチャートを参照して、NumMergeCandidates設定処理の流れの例を説明する。
NumMergeCandidates設定処理が開始されると、ステップS151において、NMCリセット部181は、NMC保持部185に保持されているパラメータNumMergeCandidatesを初期値「0」にリセットする。
ステップS152において、位置判定部182が、周辺領域PU_Lが当該スライスに存在すると判定し、かつ、ステップS153において、タイプ判定部183が、周辺領域PU_Lの予測モードがイントラ予測ではないと判定した場合のみ、NMC更新部184は、ステップS154において、NMC保持部185に保持されているパラメータNumMergeCandidatesの値をインクリメント(+1)する。
これに対して、ステップS152において、位置判定部182が、周辺領域PU_Lが当該スライスに存在しないと判定したり、ステップS153において、タイプ判定部183が、周辺領域PU_Lの予測モードがイントラ予測であると判定されたりした場合、パラメータNumMergeCandidatesの値はインクリメント(+1)されない。
周辺領域PU_Tについても同様の処理が行われる(ステップS155乃至ステップS157)。
ステップS158において、NMC保持部185は、保持しているNumMergeCandidatesの値をNMC判定部164に供給する。NumMergeCandidatesの値が出力されると、NumMergeCandidates設定処理が終了され、処理は、図17に戻される。
以上のように各種処理を行うことにより、画像符号化装置100は、スライス毎の処理の並列化を実現することができ、マージモードに関する処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
<2.第2の実施の形態>
[画像復号装置]
図20は、画像復号装置の主な構成例を示すブロック図である。図20に示される画像復号装置200は、画像符号化装置100が生成した符号化データを、その符号化方法に対応する復号方法で復号する。なお、画像復号装置200は、画像符号化装置100と同様に、任意の領域毎に(例えば、プレディクションユニット(PU)等)予測処理を行うものとする。
図20に示されるように画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、ループフィルタ206、画面並べ替えバッファ207、およびD/A変換部208を有する。また、画像復号装置200は、フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213を有する。
さらに、画像復号装置200は、復号制御部221を有する。
蓄積バッファ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は、可逆復号部202の復号処理を制御する。可逆復号部202は、基本的に、図1の可逆符号化部106に対応する方法で復号処理を行うので、復号制御部221の制御方法は、基本的に、図1の符号化制御部121の制御方法と同様である。符号化側と復号側で制御方法を揃えることにより、復号制御部221は、符号化制御部121が選択した符号化方法に対応する復号方法を選択することができ、正しく復号処理が行われるように制御することができる。
つまり、復号制御部221は、マージモードで復号を行うか否かの判定を行う。その判定の際、復号制御部221は、NumMergeCandidatesというパラメータの設定を行う。復号制御部221は、そのパラメータの設定の際に、マルチスライス化された当該ピクチャに対して、周辺領域が当該スライスに含まれるか否かを確認する。
つまり、復号制御部221は、可逆復号部202の復号処理の制御において、マージモードで参照する可能性のある周辺領域が利用可能(available)であるか、利用不可能(unavailable)であるかを考慮してマージモードにするか否かの判定を行い、その判定結果に基づいてマージモードの制御を行う。また、復号制御部221は、例えば、スキップモード、イントラ予測モード、インター予測モード、およびダイレクトモード等、マージモード以外のモードについても復号処理の制御を行う。
可逆復号部202は、復号制御部221により選択されたモードで可逆復号処理を行う。
このようにすることにより、復号制御部221および可逆復号部202は、当該スライス内の動き情報のみを参照すればよいので、他のスライスの処理が終了するまで待機する必要がない。したがって、画像復号装置200は、スライス毎の処理の並列化を実現することができ、マージモードに関する処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
[可逆復号部および復号制御部]
図21は、可逆復号部202および復号制御部221の主な構成例を示すブロック図である。
図21に示されるように、可逆復号部202は、NAL復号部231およびCUデータ復号部232を有する。
NAL復号部231は、シーケンスパラメータセット、ピクチャパラメータセット、およびスライスヘッダ等のNALの符号化データを復号する。CUデータ復号部232は、CU以下の階層の符号化データを復号する。
CUデータ復号部232は、スキップフラグ復号部241、スキップモード復号部242、マージフラグ復号部243、およびマージモード復号部244を有する。また、CUデータ復号部232は、PredMode復号部245、イントラ復号部246、インター復号部247、および、ダイレクトモード復号部248を有する。
スキップフラグ復号部241は、復号制御部221の制御に従って、スキップフラグを復号する。スキップモード復号部242は、復号制御部221の制御に従って、スキップモードでの復号処理を行う。
マージフラグ復号部243は、復号制御部221の制御に従って、マージフラグ(MergeFlag)を復号する。マージモード復号部244は、復号制御部221の制御に従って、マージモードでの復号処理を行う。
PredMode復号部245は、復号制御部221の制御に従って、PredModeを復号する。イントラ復号部246は、復号制御部221の制御に従って、イントラ予測を用いて生成された差分画像の符号化データの復号に関する処理を行う。インター復号部247は、復号制御部221の制御に従って、インター予測を用いて生成された差分画像の符号化データの復号に関する処理を行う。ダイレクトモード復号部248は、復号制御部221の制御に従って、ダイレクトモードを用いて生成された差分画像の符号化データの復号に関する処理を行う。
また、復号制御部221は、符号化制御部121と基本的に同様の制御を行う。つまり、図21に示されるように、復号制御部221は、スライス判定部261、スキップフラグ判定部262、NMC設定部263、NMC判定部264、マージフラグ判定部265、およびPredMode判定部266を有する。
スライス判定部261乃至PredMode判定部266は、それぞれ、符号化制御部121のスライス判定部261乃至PredMode判定部166と基本的に同様の処理を行う。
[NMC設定部]
図22は、NMC設定部263の主な構成例を示すブロック図である。
NMC設定部263は、NMC設定部163と基本的に同様の処理を行う。つまり、NMC設定部263は、図22に示されるように、NMCリセット部281、位置判定部282、タイプ判定部283、NMC更新部284、およびNMC保持部285を有する。
NMCリセット部281乃至NMC保持部285は、それぞれ、NMCリセット部181乃至NMC185と基本的に同様の処理を行う。
[復号処理の流れ]
次に、以上のような画像復号装置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においてフィルタ処理された画像を記憶する。この画像は、ステップS205において、参照画像として、予測画像の生成に使用される。
ステップS211の処理が終了すると、復号処理が終了される。
[可逆復号処理の流れ]
次に、図24のフローチャートを参照して、図23のステップS202において実行される可逆復号処理の流れの例を説明する。
この可逆復号処理は、可逆符号化処理の場合と同様に、画像の階層毎に行われる。
つまり、NAL復号部231は、ステップS221において、SPSの符号化データを復号し、ステップS222において、PPSの符号化データを復号し、ステップS223においてスライスヘッダの符号化データを復号する。ステップS224において、CUデータ復号部232は、処理対象である当該CUを復号する。
CUデータ復号部232は、このステップS224の処理を、処理対象である当該スライス内の全てCUについて繰り返す。ステップS225において、当該スライス内に未処理のCUが存在しないと判定された場合、CUデータ復号部232は、処理をステップS226に進める。
NAL復号部231は、このステップS223乃至ステップS225の処理を、処理対象である当該ピクチャ内の全てのスライスについて繰り返す。ステップS226において、当該ピクチャ内に未処理のスライスが存在しないと判定された場合、NAL復号部231は、処理をステップS227に進める。
NAL復号部231は、このステップS222乃至ステップS226の処理を、処理対象である当該シーケンス内の全てのピクチャについて繰り返す。ステップS227において、当該シーケンス内に未処理のピクチャが存在しないと判定された場合、NAL復号部231は、可逆復号処理を終了し、処理を図23に戻す。
[CU復号処理]
次に、図25および図26のフローチャートを参照して、図24のステップS224において実行されるCU復号処理の流れの例を説明する。
CU復号処理が開始されると、スライス判定部261は、ステップS231において、NAL復号部231により復号されたNALデータから、当該スライスのタイプを判定し、当該スライスがIスライスであるか否かを判定する。
当該スライスがIスライスでない(Pスライス若しくはBスライスである)場合、スキップフラグ復号部241は、ステップS232において、スキップフラグを復号する。当該スライスがIスライスと判定された場合、スキップフラグは符号化されていないので、この処理は省略される。
スキップフラグ判定部262が、ステップS233において、スキップフラグが存在し、その値が1であると判定した場合、スキップモード復号部242は、ステップS234において、スキップモードでCUデータを復号する。CUデータを復号すると、スキップモード復号部242は、CU復号処理を終了し、処理を図24に戻す。
ステップS233において、スキップフラグ判定部262が、スキップフラグが存在しないか、若しくは、その値が0であると判定した場合、NMC設定部263は、ステップS235において、NumMergeCandidatesを設定する。このNumMergeCandidatesの設定処理は、図19のフローチャートを参照して説明した場合と同様に行われるので、このNumMergeCandidatesの設定処理の詳細の説明は省略する。
NumMergeCandidatesが設定され、ステップS236において、NMC判定部264が、そのNumMergeCandidatesの値が0より大きいと判定した場合、マージフラグ復号部243は、ステップS237において、マージフラグを復号する。NumMergeCandidatesの値が0と判定された場合、マージフラグは符号化されていないので、この処理は省略される。
ステップS238において、マージフラグ判定部265が、マージフラグが存在し、その値が1であると判定した場合、マージモード復号部244は、ステップS239において、マージモードでCUデータを復号する。CUデータを復号すると、マージモード復号部244は、CU復号処理を終了し、処理を図24に戻す。
ステップS238において、マージフラグ判定部265は、マージフラグが存在しないか、若しくは、その値が0であると判定した場合、処理を図26に進める。
この場合、CUデータは予測モードに応じた方法で復号される。つまり、図26のステップS241においてスライス判定部261が、当該スライスがIスライスでないと判定した場合、PredMode復号部245は、ステップS242においてpred_modeを復号する。当該スライスがIスライスと判定された場合、pred_modeは符号化されていないので、この処理は省略される。
ステップS243において、PredMode判定部266が、当該領域の予測モードがイントラ予測モードであると判定した場合、イントラ復号部246は、ステップS244において、イントラ予測モードで復号する(イントラ予測モードで符号化されたCUデータを適切な方法で復号する)。CUデータを復号すると、イントラ復号部246は、CU復号処理を終了し、処理を図24に戻す。
また、PredMode判定部266が、当該領域の予測モードについて、ステップS243においてイントラ予測モードでないと判定し、ステップS245においてインター予測モードであると判定した場合、インター復号部247は、ステップS246において、インター予測モードで復号する(インター予測モードで符号化されたCUデータを適切な方法で復号する)。CUデータを復号すると、インター復号部247は、CU復号処理を終了し、処理を図24に戻す。
さらに、PredMode判定部266が、当該領域の予測モードについて、ステップS243においてイントラ予測モードでないと判定し、ステップS245においてインター予測モードでもないと判定した場合、ダイレクトモード復号部248は、ステップS247において、ダイレクト予測モードで復号する(ダイレクト予測モードで符号化されたCUデータを適切な方法で復号する)。CUデータを復号すると、ダイレクトモード復号部248は、CU復号処理を終了し、処理を図24に戻す。
以上のように、各種処理を行うことにより、復号制御部221および可逆復号部202は、当該スライス内の動き情報のみを参照すればよいので、他のスライスの処理が終了するまで待機する必要がない。したがって、画像復号装置200は、スライス毎の処理の並列化を実現することができ、マージモードに関する処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
なお、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
<3.第3の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図27において、パーソナルコンピュータ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にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図27に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア521により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM502や、記憶部513に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<4.第4の実施の形態>
[第1の応用例:テレビジョン受像機]
図28は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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での画像の復号に際して、スライス毎の処理の並列化を実現することができ、マージモードに関する処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
<5.第5の実施の形態>
[第2の応用例:携帯電話機]
図29は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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での画像の符号化及び復号に際して、スライス毎の処理の並列化を実現することができ、マージモードに関する処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
<6.第6の実施の形態>
[第3の応用例:記録再生装置]
図30は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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での画像の符号化及び復号に際して、スライス毎の処理の並列化を実現することができ、マージモードに関する処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
<7.第7の実施の形態>
[第4の応用例:撮像装置]
図31は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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での画像の符号化及び復号に際して、スライス毎の処理の並列化を実現することができ、マージモードに関する処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
なお、本明細書では、予測モード情報及びマージ情報などの様々な情報が、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) ピクチャを複数に分割するスライス毎に独立して行われる符号化において、動き情報について、処理対象である当該領域を、当該領域の周辺に位置する周辺領域とマージさせるマージモードを採用するか否かを、当該領域が属する当該スライスに属する周辺領域の情報に基づいて制御する符号化制御部と、
前記符号化制御部の制御に従って、マージモード若しくはそれ以外のモードで当該領域の符号化を行う符号化部と
を備える画像処理装置。
(2) 前記符号化制御部は、当該スライスに属する周辺領域の少なくとも1つが動き情報を有する場合、前記マージモードを採用させる
前記(1)に記載の画像処理装置。
(3) 前記符号化制御部は、
当該スライスに属する周辺領域が有する動き情報の数を算出する算出部と、
前記算出部により算出された前記周辺領域が有する動き情報の数が0より大きいか否かを判定する判定部と、
前記判定部により前記周辺領域が有する動き情報の数が0より大きいと判定された場合、前記マージモードを採用させる制御部と
を備える前記(1)または(2)に記載の画像処理装置。
(4) 前記算出部は、
各周辺領域が当該スライスに属するか否かを判定する位置判定部と、
前記位置判定部により当該スライスに属すると判定された周辺領域の予測のタイプを判定するタイプ判定部と、
前記タイプ判定部により前記周辺領域の予測のタイプが判定され、動き情報を有すると判定された場合、周辺領域が有する動き情報の数をカウントするパラメータの値を更新する更新部と
を備える前記(3)に記載の画像処理装置。
(5) 予測画像を生成する予測処理を前記スライス毎に独立して行う予測処理部をさらに備える
前記(1)乃至(4)のいずれかに記載の画像処理装置。
(6) 前記スライスは、前記符号化部による前記ピクチャに対する符号化処理のみを複数に分割するエントロピスライスである
前記(1)乃至(4)のいずれかに記載の画像処理装置。
(7) 画像処理装置の画像処理方法であって、
符号化制御部が、ピクチャを複数に分割するスライス毎に独立して行われる符号化において、動き情報について、処理対象である当該領域を、当該領域の周辺に位置する周辺領域とマージさせるマージモードを採用するか否かを、当該領域が属する当該スライスに属する周辺領域の情報に基づいて制御し、
符号化部が、その制御に従って、マージモード若しくはそれ以外のモードで当該領域の符号化を行う
画像処理方法。
(8) ピクチャを複数に分割するスライス毎に独立して行われる復号において、動き情報について、処理対象である当該領域を、当該領域の周辺に位置する周辺領域とマージさせるマージモードを採用するか否かを、当該領域が属する当該スライスに属する周辺領域の情報に基づいて制御する復号制御部と、
前記復号制御部の制御に従って、マージモード若しくはそれ以外のモードで当該領域の符号化を行う復号部と
を備える画像処理装置。
(9) 前記復号制御部は、当該スライスに属する周辺領域の少なくとも1つが動き情報を有する場合、前記マージモードを採用させる
前記(8)に記載の画像処理装置。
(10) 前記復号制御部は、
当該スライスに属する周辺領域が有する動き情報の数を算出する算出部と、
前記算出部により算出された前記周辺領域が有する動き情報の数が0より大きいか否かを判定する判定部と、
前記判定部により前記周辺領域が有する動き情報の数が0より大きいと判定された場合、前記マージモードを採用させる制御部と
を備える前記(8)または(9)に記載の画像処理装置。
(11) 前記算出部は、
各周辺領域が当該スライスに属するか否かを判定する位置判定部と、
前記位置判定部により当該スライスに属すると判定された周辺領域の予測のタイプを判定するタイプ判定部と、
前記タイプ判定部により前記周辺領域の予測のタイプが判定され、動き情報を有すると判定された場合、周辺領域が有する動き情報の数をカウントするパラメータの値を更新する更新部と
を備える前記(10)に記載の画像処理装置。
(12) 予測画像を生成する予測処理を前記スライス毎に独立して行う予測処理部をさらに備える
前記(8)乃至(11)のいずれかに記載の画像処理装置。
(13) 前記スライスは、前記復号部による前記ピクチャに対する復号処理のみを複数に分割するエントロピスライスである
前記(8)乃至(11)のいずれかに記載の画像処理装置。
(14) 画像処理装置の画像処理方法であって、
復号制御部が、ピクチャを複数に分割するスライス毎に独立して行われる復号において、動き情報について、処理対象である当該領域を、当該領域の周辺に位置する周辺領域とマージさせるマージモードを採用するか否かを、当該領域が属する当該スライスに属する周辺領域の情報に基づいて制御し、
復号部が、その制御に従って、マージモード若しくはそれ以外のモードで当該領域の復号を行う
画像処理方法。