以下、本技術の実施の形態について説明するが、その前に、基本となる技術について説明する。
[画像符号化装置]
図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は、例えば、スキップモード、イントラ予測モード、インター予測モード、およびダイレクトモード等、マージモード以外のモードについても符号化処理の制御を行う。
可逆符号化部106は、符号化制御部121により選択されたモードで可逆符号化処理を行う。
[コーディングユニット]
ところで、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においては、図2に示されるように、コーディングユニット(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に分割することができる。図2の例では、LCUの大きさが128であり、最大階層深度が5となる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、図3に示すように、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVCにおいては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
以上のHEVCのように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVCにおけるマクロブロックはLCUに相当すると考えることができる。ただし、CUは図2に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVCのマクロブロックより大きく設定されることが一般的である。
マクロブロックの代わりに、このようなCU、PU、およびTU等を用いる符号化方式にも、本技術を適用することができる。すなわち、予測処理を行う処理単位は任意の領域であってもよい。つまり、以下において、予測処理の処理対象の領域(当該領域や注目領域とも称する)や、その当該領域の周辺に位置する領域である周辺領域には、このようなマクロブロックやサブマクロブロックだけでなく、CU、PU、およびTU等が含まれる。
[動きパーティションのマージ]
ところで、動き情報の符号化方式の1つとして、図4に示されるような、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となる。
[可逆符号化部および符号化制御部]
図5は、可逆符号化部106および符号化制御部121の主な構成例を示すブロック図である。
図5に示されるように、可逆符号化部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の制御に従って、ダイレクトモードを用いて生成された差分画像の符号化に関する処理を行う。
[符号化処理の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図6のフローチャートを参照して、符号化処理の流れの例を説明する。
ステップ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の特性に対応する特性で逆直交変換することにより、差分情報を局部的に復号して、演算部110に供給する。
ステップ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の制御に従って符号化処理を行う。
[可逆符号化処理の流れ]
次に、図7のフローチャートを参照して、図6のステップS114において実行される可逆符号化処理の流れの例を説明する。図7に示されるように、可逆符号化処理は、画像の階層毎に行われる。
つまり、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は、可逆符号化処理を終了し、処理を図6に戻す。
[CU符号化処理の流れ]
次に、図8および図9のフローチャートを参照して、図7のステップS124において実行されるCU符号化処理の流れの例を説明する。
CU符号化処理が開始されると、符号化制御部121は、ステップS131において、NAL符号化部131により生成されたNALデータから、当該スライスのタイプを判定し、当該スライスがIスライスであるか否かを判定する。当該スライスがIスライスでない(Pスライス若しくはBスライスである)場合のみ、スキップフラグ符号化部141は、ステップS132において、スキップフラグを生成し、符号化する。
ステップS133において、符号化制御部121が、スキップフラグの値が1であると判定した場合、符号化制御部121からその判定結果を取得したスキップモード符号化部142は、ステップS134において、スキップモードでCUデータを符号化する。符号化が終了すると、CU符号化処理が終了され、処理が図7に戻される。
また、図8のステップS133において、符号化制御部121が、スキップフラグの値が0である、若しくは、スキップフラグが存在しないと判定した場合、符号化制御部121は、処理をステップS135に進める。この場合、スキップモードでの符号化は行われない。
マージフラグ符号化部143は、ステップS135において、マージフラグを生成し、符号化する。
ステップS136において、符号化制御部121がマージフラグの値が1であると判定した場合、符号化制御部121からその判定結果を取得したマージモード符号化部144は、ステップS137において、マージモードでCUデータを符号化する。符号化が終了すると、CU符号化処理が終了され、処理が図7に戻される。
また、図8のステップS136において、符号化制御部121が、マージフラグの値が0である、若しくは、マージフラグが存在しないと判定した場合、処理は図9のフローチャートに進み、採用された予測モードに応じた符号化が行われる。
すなわち、図9のステップS141において符号化制御部121が処理対象である当該スライスがIスライスでないと判定した場合のみ、PredMode符号化部145が、ステップS142において、当該スライスの予測モードのタイプを示すパラメータであるpred_modeを生成し、符号化する。
ステップS143において、符号化制御部121が、PredModeを参照し、当該領域の予測モードがイントラ予測モードであると判定した場合、イントラ符号化部146は、ステップS144において、イントラ予測モードのCUデータを符号化する。つまり、差分画像情報(量子化係数)やイントラ予測モードに関する情報等が符号化される。符号化が終了すると、CU符号化処理が終了され、処理が図7に戻される。
また、符号化制御部121が、当該領域の予測モードがイントラ予測モードでなく、インター予測モードであると判定した場合(ステップS143およびステップS145)、インター符号化部147は、ステップS146において、インター予測モードのCUデータを符号化する。つまり、差分画像情報(量子化係数)やインター予測モードに関する情報等が符号化される。符号化が終了すると、CU符号化処理が終了され、処理が図7に戻される。
さらに、符号化制御部121が、当該領域の予測モードがイントラ予測モードでなく、インター予測モードでもないと判定した場合(ステップS143およびステップS145)、ダイレクトモード符号化部148は、ステップS147において、ダイレクト予測モードのCUデータを符号化する。符号化が終了すると、CU符号化処理が終了され、処理が図7に戻される。
[画像復号装置]
図10は、画像復号装置の主な構成例を示すブロック図である。図10に示される画像復号装置200は、画像符号化装置100が生成した符号化データを、その符号化方法に対応する復号方法で復号する。なお、画像復号装置200は、画像符号化装置100と同様に、任意の領域毎に(例えば、プレディクションユニット(PU)等)予測処理を行うものとする。
図10に示されるように画像復号装置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において直交変換される前の残差データに対応する復号残差データ(画像符号化装置100の逆直交変換部109が出力する局部的に復号された差分情報と同一のデータ)を得る。
逆直交変換されて得られた復号残差データは、演算部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は、例えば、スキップモード、イントラ予測モード、インター予測モード、およびダイレクトモード等、マージモード以外のモードについても復号処理の制御を行う。
可逆復号部202は、復号制御部221により選択されたモードで可逆復号処理を行う。
[可逆復号部および復号制御部]
図11は、可逆復号部202および復号制御部221の主な構成例を示すブロック図である。
図11に示されるように、可逆復号部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の制御に従って、ダイレクトモードを用いて生成された差分画像の符号化データの復号に関する処理を行う。
[復号処理の流れ]
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図12のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップ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の処理が終了すると、復号処理が終了される。
[可逆復号処理の流れ]
次に、図13のフローチャートを参照して、図12のステップ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は、可逆復号処理を終了し、処理を図12に戻す。
[CU復号処理]
次に、図14および図15のフローチャートを参照して、図13のステップS224において実行されるCU復号処理の流れの例を説明する。
CU復号処理が開始されると、復号制御部221は、ステップS231において、NAL復号部231により復号されたNALデータから、当該スライスのタイプを判定し、当該スライスがIスライスであるか否かを判定する。
当該スライスがIスライスでない(Pスライス若しくはBスライスである)場合、スキップフラグ復号部241は、ステップS232において、スキップフラグを復号する。当該スライスがIスライスと判定された場合、スキップフラグは符号化されていないので、この処理は省略される。
復号制御部221が、ステップS233において、スキップフラグが存在し、その値が1であると判定した場合、スキップモード復号部242は、ステップS234において、スキップモードでCUデータを復号する。CUデータを復号すると、スキップモード復号部242は、CU復号処理を終了し、処理を図13に戻す。
ステップS233において、復号制御部221が、スキップフラグが存在しないか、若しくは、その値が0であると判定した場合、マージフラグ復号部243は、ステップS235において、マージフラグを復号する。
ステップS236において、復号制御部221が、マージフラグが存在し、その値が1であると判定した場合、マージモード復号部244は、ステップS237において、マージモードでCUデータを復号する。CUデータを復号すると、マージモード復号部244は、CU復号処理を終了し、処理を図13に戻す。
ステップS238において、復号制御部221は、マージフラグが存在しないか、若しくは、その値が0であると判定した場合、処理を図15に進める。
この場合、CUデータは予測モードに応じた方法で復号される。つまり、図15のステップS241において復号制御部221が、当該スライスがIスライスでないと判定した場合、PredMode復号部245は、ステップS242においてpred_mode(PredMode)を復号する。当該スライスがIスライスと判定された場合、pred_modeは符号化されていないので、この処理は省略される。
ステップS243において、復号制御部221が、当該領域の予測モードがイントラ予測モードであると判定した場合、イントラ復号部246は、ステップS244において、イントラ予測モードで復号する(イントラ予測モードで符号化されたCUデータを適切な方法で復号する)。CUデータを復号すると、イントラ復号部246は、CU復号処理を終了し、処理を図13に戻す。
また、復号制御部221が、当該領域の予測モードについて、ステップS243においてイントラ予測モードでないと判定し、ステップS245においてインター予測モードであると判定した場合、インター復号部247は、ステップS246において、インター予測モードで復号する(インター予測モードで符号化されたCUデータを適切な方法で復号する)。CUデータを復号すると、インター復号部247は、CU復号処理を終了し、処理を図13に戻す。
さらに、復号制御部221が、当該領域の予測モードについて、ステップS243においてイントラ予測モードでないと判定し、ステップS245においてインター予測モードでもないと判定した場合、ダイレクトモード復号部248は、ステップS247において、ダイレクト予測モードで復号する(ダイレクト予測モードで符号化されたCUデータを適切な方法で復号する)。CUデータを復号すると、ダイレクトモード復号部248は、CU復号処理を終了し、処理を図13に戻す。
[本技術を適用した画像処理装置の一実施の形態]
図16は、本技術を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
図16において、画像処理装置は、エンコーダ1000、及び、デコーダ2000を有する。なお、エンコーダ1000、及び、デコーダ2000は、独立した1個の装置内に、別個のブロックとして実装することもできるし、それぞれを、別個の独立した装置に実装することもできる。また、エンコーダ1000、及び、デコーダ2000は、それぞれを、独立した1個の装置として構成することができる。
エンコーダ1000は、図1の画像符号化装置100と同様に構成される。
すなわち、エンコーダ1000において、入力ピクチャバッファ1001は、図1の画面並べ替えバッファ102に相当し、演算部1002は、図1の演算部103に相当する。直交変換部1003は、図1の直交変換部104に相当し、量子化部1004は、図1の量子化部1005に相当する。エントロピ符号化部1005は、図1の可逆符号化部106に相当し、逆量子化部1006は、図1の逆量子化部108に相当する。逆直交変換部1007は、図1の逆直交変換部109に相当し、演算部1008は、図1の演算部110に相当する。デブロックフィルタ1009、適応サンプルオフセット部1010、適応サンプルオフセット推定部1011、適応ループフィルタ1012、及び、適応ループフィルタ推定部1013は、図1のループフィルタ111に相当し、DPB(Decode Picture Buffer)1014は、図1のフレームメモリ112に相当する。イントラ方向推定部1015、及び、イントラ予測部1016は、図1のイントラ予測部114に相当し、動き推定部1017、及び、インター予測部1018は、図1の動き予測・補償部115に相当する。モード判定部1019は、図1の予測画像選択部116に相当する。
なお、エンコーダ1000は、設定部1021が新たに設けられている点、インター予測部1018が、設定部1021が出力する情報を用いて処理を行う点、及び、エントロピ符号化部1005において、設定部1021が出力する情報が、符号化データに含められる点で、図1の画像符号化装置100と相違する。
また、図16のエンコーダ1000では、図1のA/D変換部101、蓄積バッファ107、レート制御部117、及び、符号化制御部121に相当するブロックの図示は、省略してある。
デコーダ2000は、図10の画像復号装置200と同様に構成される。
すなわち、デコーダ2000において、エントロピ復号部2001は、図10の可逆復号部202に相当し、逆量子化部2002は、図10の逆量子化部203に相当する。逆直交変換部2003は、図10の逆直交変換部204に相当し、演算部2004は、図10の演算部205に相当する。デブロックフィルタ2005、適応サンプルオフセット部2006、及び、適応ループフィルタ2007は、図10のループフィルタ206に相当し、DPB2008は、図10のフレームメモリ209に相当する。イントラ予測部2009は、図10のイントラ予測部211に相当し、インター予測部2010は、図10の動き予測・補償部212に相当する。モード選択部2011は、図10の選択部213に相当する。
なお、デコーダ2000は、インター予測部2010が、エンコーダ1000で得られる符号化データに含まれる、設定部1021が出力する情報を用いて処理を行う点で、図10の画像復号装置200と相違する。
また、図16のデコーダ2000では、図10の蓄積バッファ201、画面並べ替えバッファ207、D/A変換部208、及び、復号制御部221に相当するブロックの図示は、省略してある。
以上のように構成される図16の画像処理装置では、エンコーダ1000において、図1の画像符号化装置100と同様に、画像が符号化され、その結果得られる符号化データ(符号化ストリーム)が伝送される。
但し、エンコーダ1000では、設定部1021が、所定の情報を設定して出力する。設定部1021が出力する情報(以下、設定情報ともいう)は、インター予測部1018、及び、エントロピ符号化部1005に供給される。
インター予測部1018は、設定部1021からの設定情報に従って、予測画像を生成する。この予測画像は、必要に応じて、演算部1002ないしエントロピ符号化部1005でのCU,PU,PU partition,TU等の画像のブロックの符号化(予測符号化)に用いられる。
また、エントロピ符号化部1005は、設定部1021からの設定情報を、符号化データに含めて伝送する。
一方、デコーダ2000は、エンコーダ1000から伝送されてくる符号化データを受け取り、図10の画像復号装置200と同様に、その符号化データを、画像に復号する。
但し、デコーダ2000では、エントロピ復号部2001が、符号化データから設定情報を分離し、インター予測部2010に供給する。
インター予測部2010は、エントロピ復号部2001からの設定情報に従って、予測画像を生成する。この予測画像は、必要に応じて、エントロピ復号部2001ないし演算部2004での、予測符号化された画像のブロックの復号に用いられる。
図16の画像処理装置において、設定部1021が設定する設定情報には、例えば、識別情報や、制限情報等がある。
以下、識別情報と制限情報について説明する。
[識別情報]
まず、設定部1021において設定される識別情報について説明する。
ここで、マージモードは、上述したように、動き情報 (Prediction direction, Motion vector, Reference index)に代えて(動き情報を伝送せずに)、フラグ(フラグ情報)を伝送する技術であり、符号化効率を改善することができる。
マージモードは、CU単位、及び、PU単位のいずれのブロック単位に対しても用いることができ、以下説明する技術は、CU単位、及び、PU単位のいずれのブロック単位で行われるマージモードにも適用することができる。
いま、エンコーダ1000において符号化の対象となっているブロック(当該領域)を、注目ブロックということとする。
マージモードでは、注目ブロックに、空間的、時間的に近い領域(周辺領域)から、注目ブロックとマージする領域であるマージ領域の候補(以下、マージ候補ともいう)が選択される。そして、マージ候補の中から符号化効率が高くなるように、マージ領域(となるマージ候補)が選択され、そのマージ領域を表すmerge_idxが、符号化ストリーム(符号化データ)に含められる。
なお、merge_idxについては、以下のように説明されている。
merge_idx[x0][y0] specifies the merging candidate index of the merging candidate list where x0, y0 specify the location (x0,y0) of the top-left luma sample of the considered prediction block relative to the top-left luma sample of the picture.
merge_idxは、上述のMerge_Left_Flagに代えて用いられる、マージ領域とする領域(又は、その領域の動き情報)を表す情報である。Merge_Left_Flagは、注目ブロックの左、又は、上の位置の領域を表すが、merge_idxによれば、その他の位置の領域も表すことができる。
ところで、エンコーダ1000のMC(動き補償)において、復号画像を記憶するDPB1014へのアクセスが頻繁に発生すると、DPB1014から復号画像が読み出される伝送レートであるメモリ帯域が大になる。
すなわち、MCに用いられる予測画像の予測として、L0予測及びL1予測のうちの一方の予測(以下、片方向予測(Uni-prediction)ともいう)ではなく、L0予測とL1予測の両方(以下、両方向予測(Bi-prediction)ともいう)が行われる場合や、注目ブロックのブロックサイズが小さい場合に、メモリ帯域は、大になる。
しかしながら、メモリ帯域として、大きな帯域(高レート)を確保しようとすると、エンコーダ1000が高コスト化する。この点、DPB2008を有するデコーダ2000も同様である。
以上から、MCで必要とする最大のメモリ帯域(以下、必要最大帯域ともいう)が、エンコーダ1000、及び、デコーダ2000の実装におけるボトルネックになる。
必要最大帯域を小にする方法としては、例えば、小さいサイズのブロックの使用を禁止する方法や、ブロックのサイズに応じて、両方向予測の使用を禁止する方法がある。しかしながら、例えば、所定サイズ以下の小さいブロックについて、両方向予測の使用を禁止した場合、マージ候補が、すべて、両方向予測される領域であったときに、所定サイズ以下のブロックについては、マージ領域とするマージ候補を選択することができず、結果として、マージモードを使用することができなくなって、符号化効率が悪化するおそれがある。
そこで、エンコーダ1000では、設定部1021において、識別情報を設定し、インター予測部1018において、その識別情報に従って、予測(予測画像の生成)を行うことで、必要最大帯域を抑制する。
ここで、識別情報は、画像のブロックのサイズと、ブロックに適用する予測方法の変更との対応関係を識別する情報であり、識別情報としては、例えば、以下のような第1の情報、第2の情報、及び、第3の情報のうちのいずれかを採用することができる。
識別情報として採用することができる第1の情報は、disable_bip_small_mrg_idc情報(フラグ)であり、disable_bip_small_mrg_idc情報は、例えば、0,1,2,3の4つの値をとることができる。
図17は、disable_bip_small_mrg_idc情報を説明する図である。
各値のdisable_bip_small_mrg_idc情報は、両方向予測に代えて片方向予測を適用するように、予測方法を変更するブロック(ここでは、例えば、PU partition)のサイズ(ブロックサイズ)を表す。
すなわち、値が0のdisable_bip_small_mrg_idc情報は、注目ブロックのPUパーティション(PU partition)のブロックサイズに関係なく、マージ候補の予測方法を変更しないこと表す。
値が1のdisable_bip_small_mrg_idc情報は、注目ブロックのPUパーティションのブロックサイズが、4×4(横×縦の画素数)である場合に、両方向予測が適用されるマージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように変更(置換)して、マージモードの処理を行うことを表す。
ここで、両方向予測が適用されるマージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように変更して、マージモードの処理を行う、とは、両方向予測が適用されるマージ候補の予測方法を、実際に、片方向予測に変更するのではなく、マージ候補の予測が、片方向予測で行われると仮定して、その片方向予測に関する動き情報を、注目ブロック(のPUパーティション)の処理に用いることを意味する。したがって、(注目ブロックではなく)マージ候補それ自体の予測は、そのマージ候補について決められた(選択された)予測方法をそのまま用いて行われる。
値が1のdisable_bip_small_mrg_idc情報が設定された場合、ブロックサイズが4×4のPUパーティションについては、両方向予測が適用されるマージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように変更して、マージモードの処理が行われる。
したがって、例えば、ブロックサイズが4×4のPUパーティションについて、両方向予測の使用を禁止した場合に、マージ候補が、すべて、両方向予測される領域であっても、その両方向予測が、片方向予測に変更されて、マージモードの処理が行われる。
その結果、所定サイズ以下のPUパーティションについて、両方向予測の使用を禁止した場合に、マージモードを使用することができなくなって、符号化効率が悪化することを防止することができる。
ここで、マージモードを使用することができない損失よりも、マージモードにおいて、マージ候補の予測方法を、両方向予測から片方向予測に変更する損失の方が小さい。
値が2のdisable_bip_small_mrg_idc情報は、注目ブロックのPUパーティションのブロックサイズが、4×4,8×4、及び、4×8のうちのいずれかである場合に、両方向予測が適用されるマージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように変更して、マージモードの処理を行うことを表す。
値が3のdisable_bip_small_mrg_idc情報は、注目ブロックのPUパーティションのブロックサイズが、4×4,8×4,4×8、及び、8×8のうちのいずれかである場合に、両方向予測が適用されるマージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように変更して、マージモードの処理を行うことを表す。
ここで、マージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように変更するPUパーティションのブロックサイズとしては、上述の4×4や、8×4、4×8,8×8以外のブロックサイズを採用することができる。
また、disable_bip_small_mrg_idc情報がとる値は、0ないし3の4つの値に限定されるものではない。
なお、両方向予測とは、例えば、L0予測及びL1予測の両方を行う予測であり、両方向予測に代えて、マージ候補に適用する片方向予測とは、例えば、両方向予測としてのL0予測、及び、L1予測のうちのいずれか一方である。
第1の情報としてのdisable_bip_small_mrg_idc情報を用いる場合には、両方向予測に代えて、マージ候補に適用する片方向予測を、L0予測、及び、L1予測のうちのいずれとするかは、あらかじめ決定し、エンコーダ1000とデコーダ2000とで、統一しておく必要がある。
図18は、第1の情報としてのdisable_bip_small_mrg_idc情報を用いる場合の、エンコーダ1000、及び、デコーダ2000の処理の概要を説明するフローチャートである。
エンコーダ1000では、ステップS1001において、設定部1021が、注目ブロックについて、例えば、DPB1014のメモリ帯域の最大値に基づいて、disable_bip_small_mrg_idc情報を設定し、インター予測部1018、及び、エントロピ符号化部1005に供給する。
インター予測部1018は、ステップS1002において、設定部1021からのdisable_bip_small_mrg_idc情報に従って、マージモードの処理、ひいては、予測画像の生成を行う。すなわち、インター予測部1018は、マージモードの処理(符号化)を行う場合には、設定部1021からのdisable_bip_small_mrg_idc情報に従って、予測画像を生成する。
なお、設定部1021は、DPB1014のメモリ帯域の最大値が小さいほど、値が大きいdisable_bip_small_mrg_idc情報を設定する。したがって、DPB1014のメモリ帯域の最大値が小さいほど、より大きなブロックサイズのPUパーティションまで、そのPUパーティションのマージ候補の予測方法が、両方向予測から片方向予測に変更され、予測画像の生成のために、DPB1014から復号画像が読み出されるときのメモリ帯域が抑制される。
以上のように、DPB1014から復号画像が読み出されるときのメモリ帯域が抑制されることにより、エンコーダ1000の高コスト化を防止することができる。
ステップS1003において、演算部1002ないしエントロピ符号化部1005は、必要に応じて、ステップS1002で生成された予測画像を用いて、注目ブロックを符号化する。
ステップS1004において、エントロピ符号化部1005は、設定部1021からのdisable_bip_small_mrg_idc情報を、符号化データに含めて(例えば、多重化して)伝送する。
なお、エントロピ符号化部1005は、disable_bip_small_mrg_idc情報を、符号化データ(符号化ストリーム)の、例えば、SPSや、PPS,APS、スライスヘッダ(slice header)等に含めることができる。
一方、デコーダ2000では、ステップS1011において、エントロピ復号部2001が、disable_bip_small_mrg_idc情報を含む符号化データを受け取る(受信する)。そして、エントロピ復号部2001は、符号化データからdisable_bip_small_mrg_idc情報を分離し、インター予測部2010に供給する。
ステップS1012において、インター予測部2010は、インター予測部1018と同様に、disable_bip_small_mrg_idc情報に従って、マージモードの処理、ひいては、予測画像の生成を行う。すなわち、インター予測部2010は、マージモードの処理(符号化)を行う場合には、エントロピ復号部2001からのdisable_bip_small_mrg_idc情報に従って、予測画像を生成する。
そして、ステップS1013において、エントロピ復号部2001ないし演算部2004は、必要に応じて、ステップS1012で生成された予測画像を用いて、ステップS1021で受信された符号化データを復号する。
なお、エンコーダ1000では、設定部1021において、エンコーダ1000のオペレータ等のユーザの操作に従って、disable_bip_small_mrg_idc情報を設定することができる。
その他、エンコーダ1000では、各値のメモリ帯域を、必要最大帯域として、その各値の必要最大帯域に応じて、デコーダの処理量を規定するプロファイルやレベルを定義しておき、プロファイル、及び、レベルの情報(profile_idc、及び、level_idc)を符号化データに含めることができる。
ここで、profile_idc、及び、level_idcについては、以下のように説明されている。
profile_idc and level_idc indicate the profile and level to which the coded video sequence conforms.
したがって、profile_idc、及び、level_idcについては、まだ、詳細な定義はされていないが、profile_idcやlevel_idcは、例えば、MCの必要最大帯域の情報を含むように定義することができる。
例えば、profile_idcやlevel_idcは、PUパーティションのブロックサイズの最小値や、両方向予測の使用の可否、PUパーティションのブロックサイズの最小値と、両方向予測の使用の可否との組み合わせ等の情報を含むように定義することができる。
設定部1021では、例えば、上述したように、DPB1014のメモリ帯域の最大値に基づいて、disable_bip_small_mrg_idc情報が設定される。
そして、エンコーダ1000では、profile_idcやlevel_idcに従って、所定サイズ以下の小さいブロックサイズのPUパーティションの使用や、所定サイズ以下のブロックサイズのPUパーティションへの両方向予測の適用が禁止される。
但し、例えば、4×4のブロックサイズのPUパーティションへの両方向予測の適用が禁止されているが、値が1のdisable_bip_small_mrg_idc情報が設定されている場合、エンコーダ1000では、4×4(のブロックサイズ)のPUパーティションについては、両方向予測が適用されるマージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように変更して、マージモードの処理が行われる。
したがって、両方向予測の適用が禁止されている4×4のPUパーティションについて、マージ候補が、すべて、両方向予測される領域であっても、その両方向予測が、片方向予測に変更されるので、マージモードの処理を行うことができる。
デコーダ2000でも、disable_bip_small_mrg_idc情報に従い、エンコーダ1000と同様に、両方向予測が適用されるマージ候補の予測方法が、必要に応じて、両方向予測から片方向予測に変更される。
次に、識別情報として採用することができる第2の情報について説明する。
識別情報として採用することができる第2の情報は、第1の情報であるdisable_bip_small_mrg_idc情報を拡張したdisable_bip_small_mrg_idc拡張情報であり、disable_bip_small_mrg_idc拡張情報は、例えば、0,1,2,3,4,5,6の7つの値をとることができる。
図19は、disable_bip_small_mrg_idc拡張情報を説明する図である。
各値のdisable_bip_small_mrg_idc拡張情報は、両方向予測に代えて片方向予測を適用するように、予測方法を変更するPUパーティションのブロックサイズと、両方向予測に代えて適用する片方向予測の予測方向とを表し、そのセマンテクス(semantics)は、以下の通りである。
すなわち、値が0のdisable_bip_small_mrg_idc拡張情報は、値が0のdisable_bip_small_mrg_idc情報と同様に、注目ブロックのPUパーティション(PU partition)のブロックサイズに関係なく、マージ候補の予測方法を変更しないこと表す。
値が1又は2のdisable_bip_small_mrg_idc拡張情報は、いずれも、値が1のdisable_bip_small_mrg_idc情報と同様に、注目ブロックのPUパーティションのブロックサイズが、4×4である場合に、両方向予測が適用されるマージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように変更して、マージモードの処理を行うことを表す。
さらに、値が1のdisable_bip_small_mrg_idc拡張情報は、両方向予測に代えて適用する片方向予測の予測方向が、L0予測及びL1予測のうちの、例えば、L0予測であることも表す。また、値が2のdisable_bip_small_mrg_idc拡張情報は、両方向予測に代えて適用する片方向予測の予測方向が、L0予測及びL1予測のうちの、例えば、L1予測であることも表す。
値が3又は4のdisable_bip_small_mrg_idc拡張情報は、いずれも、値が2のdisable_bip_small_mrg_idc情報と同様に、注目ブロックのPUパーティションのブロックサイズが、4×4,8×4、及び、4×8のうちのいずれかである場合に、両方向予測が適用されるマージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように変更して、マージモードの処理を行うことを表す。
さらに、値が3のdisable_bip_small_mrg_idc拡張情報は、両方向予測に代えて適用する片方向予測の予測方向が、L0予測及びL1予測のうちの、例えば、L0予測であることも表す。また、値が4のdisable_bip_small_mrg_idc拡張情報は、両方向予測に代えて適用する片方向予測の予測方向が、L0予測及びL1予測のうちの、例えば、L1予測であることも表す。
値が5又は6のdisable_bip_small_mrg_idc拡張情報は、いずれも、値が3のdisable_bip_small_mrg_idc情報と同様に、注目ブロックのPUパーティションのブロックサイズが、4×4,8×4,4×8、及び、8×8のうちのいずれかである場合に、両方向予測が適用されるマージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように変更して、マージモードの処理を行うことを表す。
さらに、値が5のdisable_bip_small_mrg_idc拡張情報は、両方向予測に代えて適用する片方向予測の予測方向が、L0予測及びL1予測のうちの、例えば、L0予測であることも表す。また、値が6のdisable_bip_small_mrg_idc拡張情報は、両方向予測に代えて適用する片方向予測の予測方向が、L0予測及びL1予測のうちの、例えば、L1予測であることも表す。
第2の情報としてのdisable_bip_small_mrg_idc拡張情報は、両方向予測に代えて片方向予測を適用するように、予測方法を変更するPUパーティションのブロックサイズの他、両方向予測に代えて適用する片方向予測の予測方向をも表すので、第1の情報としてのdisable_bip_small_mrg_idc情報のように、両方向予測に代えて、マージ候補に適用する片方向予測を、L0予測、及び、L1予測のうちのいずれとするかを、エンコーダ1000、及び、デコーダ2000で、あらかじめ決定しておく必要はない。
disable_bip_small_mrg_idc拡張情報を用いる場合の、図16のエンコーダ1000及びデコーダ2000の処理は、disable_bip_small_mrg_idc情報に代えて、disable_bip_small_mrg_idc拡張情報が用いられることを除いて、図18で説明した処理と同様であるため、説明を省略する。
次に、識別情報として採用することができる第3の情報について説明する。
識別情報として採用することができる第3の情報は、第1の情報であるdisable_bip_small_mrg_idc情報と、modify_bip_small_mrg_l0情報との2つの情報である。
図20は、modify_bip_small_mrg_l0情報を説明する図である。
modify_bip_small_mrg_l0情報は、例えば、0及び1の2つの値をとり、両方向予測に代えて適用する片方向予測の予測方向を表す。
すなわち、値が0のmodify_bip_small_mrg_l0情報は、両方向予測に代えて適用する片方向予測が、例えば、L1予測であることを表し、値が1のmodify_bip_small_mrg_l0情報は、両方向予測に代えて適用する片方向予測が、例えば、L0予測であることを表す。
第3の情報によれば、disable_bip_small_mrg_idc情報によって、両方向予測に代えて片方向予測を適用するように、予測方法を変更するPUパーティションのブロックサイズを制御することができ、modify_bip_small_mrg_l0情報によって、両方向予測に代えて適用する片方向予測の予測方向を制御することができる。
その結果、参照方向をより小さい単位で制御することが可能になる。
片方向予測の予測方向、すなわち、参照方向によって予測の品質(予測誤差)に違いがある場合、例えば、L0予測よりもL1予測の方が、予測の対象である注目ピクチャと参照ピクチャ(参照画像)との時間的距離が近い場合、一般に、L1予測の方が予測の品質が高い傾向がある。この場合、両方向予測に代えて適用する片方向予測として、L1予測を用いることで、符号化効率を高くすることができる。
また、L0予測とL1予測の参照ピクチャが符号化されたときの量子化パラメータQPに違いがある場合、より量子化パラメータQPの小さい参照ピクチャの方が高い品質の予測が期待される。さらに、動画像のシーンが変化する時は、同じシーンが選ばれる参照方向を採用した方が予測の品質が高くなる。すなわち、シーンチェンジがあった場合には、シーンチェンジ前のピクチャの符号化時には、シーンチェンジ前のピクチャを、シーンチェンジ後のピクチャの符号化時には、シーンチェンジ後のピクチャを、それぞれ参照ピクチャとして採用した方が、予測の品質が高くなる。
modify_bip_small_mrg_l0情報によれば、両方向予測に代えて適用する片方向予測として、L0予測及びL1予測のうちの、予測の品質の良い方を選択することができる。
なお、modify_bip_small_mrg_l0情報は、disable_bip_small_mrg_idc情報が0以外のときに、符号化データに含めることができる。
したがって、modify_bip_small_mrg_l0情報は、disable_bip_small_mrg_idc情報よりも低い階層で、符号化データに含められる。
例えば、disable_bip_small_mrg_idc情報は、SPSに、modify_bip_small_mrg_l0情報は、スライスヘッダに、それぞれ含めることができる。modify_bip_small_mrg_l0情報は、その他、例えば、PPSや、tile header,LCU,CU,PU等に含めることができる。
modify_bip_small_mrg_l0情報、及び、disable_bip_small_mrg_idc情報を、どの階層に含めるかは、例えば、そのmodify_bip_small_mrg_l0情報、及び、disable_bip_small_mrg_idc情報による予測方法の変更を、どの程度、細かい単位で制御するのかということと、modify_bip_small_mrg_l0情報、及び、disable_bip_small_mrg_idc情報を、符号化データに含めることによるデータ量の増加とのトレードオフによって決めることができる。
modify_bip_small_mrg_l0情報、及び、disable_bip_small_mrg_idc情報を用いる場合の、図16のエンコーダ1000及びデコーダ2000の処理は、disable_bip_small_mrg_idc情報に加えて、modify_bip_small_mrg_l0情報が用いられることを除いて、図18で説明した処理と同様であるため、説明を省略する。
図21は、disable_bip_small_mrg_idc情報、又は、disable_bip_small_mrg_idc拡張情報を用いる場合の、エンコーダ1000によるSPSの符号化、及び、デコーダ2000によるSPSの復号の概要を説明するフローチャートである。
エンコーダ1000では、ステップS1021において、エントロピ符号化部1005が、profile_idc、及び、level_idcを、符号化データ(符号化ストリーム)のSPSに含める。
さらに、ステップS1022において、エントロピ符号化部1005は、設定部1021から供給されるdisable_bip_small_mrg_idc情報、又は、disable_bip_small_mrg_idc拡張情報を、符号化データのSPSに含める。
一方、デコーダ2000では、ステップS1031において、エントロピ復号部2001は、符号化データから、profile_idc、及び、level_idcを分離する(読み出す)。
さらに、ステップS1032において、エントロピ復号部2001は、符号化データから、disable_bip_small_mrg_idc情報、又は、disable_bip_small_mrg_idc拡張情報を分離し、インター予測部2010に供給する。
図22は、disable_bip_small_mrg_idc情報、及び、modify_bip_small_mrg_l0情報を用いる場合の、エンコーダ1000によるスライスヘッダの符号化、及び、デコーダ2000によるスライスヘッダの復号の概要を説明するフローチャートである。
エンコーダ1000では、ステップS1041において、エントロピ符号化部1005が、設定部1021からのmodify_bip_small_mrg_l0情報を、符号化データのスライスヘッダに含める。
一方、デコーダ2000では、ステップS1051において、エントロピ復号部2001は、符号化データから、modify_bip_small_mrg_l0情報を分離し(読み出し)、インター予測部2010に供給する。
なお、modify_bip_small_mrg_l0情報とともに用いられるdisable_bip_small_mrg_idc情報については、例えば、図21で説明したように、SPSに含める等の処理が行われる。
図23は、エンコーダ1000によるCUの符号化、及び、デコーダ2000によるCUの復号の概要を説明するフローチャートである。
CUの符号化では、ステップS1061において、エンコーダ1000は、注目ブロックとしてのCUを分割した場合と分割しない場合とのそれぞれの場合のコスト関数値を計算する。ここで、コスト関数値としては、例えば、発生符号量と符号化歪みを考慮したRD コストと呼ばれる値が知られている。
ステップS1062において、エンコーダ1000は、ステップS1061で計算したRDコストに基づいて、注目ブロックとしてのCUを分割するかどうかを判定する。
ここで、ステップS1062では、CUを分割した場合のRDコストが、分割しない場合のRDコストよりも小さい場合(分割した方が、分割しないケースよりも、発生符号量と符号化歪みとが総合的に向上する場合)に、CUを分割すると判定される。
ステップS1062において、CUを分割すると判定された場合、処理は、ステップS1063に進み、エンコーダ1000は、CUの分割に関するフラグであるcu_split_flagに、CUを分割することを表す値である、例えば、1をセットして、符号化データ(符号化ストリーム)に含める。
そして、ステップS1064において、エンコーダ1000は、注目ブロックとしてのCUを、例えば、4個(2×2個)の新たなCUに分割する。
さらに、ステップS1065において、エンコーダ1000は、ステップS1064での分割により得られた4個の新たなCUを、順次、注目ブロックとして、CUの符号化の処理を再帰的に行う。
一方、ステップS1062において、CUを分割しないと判定された場合、処理は、ステップS1066に進み、エンコーダ1000は、cu_split_flagに、CUを分割しないことを表す値である、例えば、0をセットして、符号化データに含める。
その後、ステップS1067において、エンコーダ1000は、マージ候補を選択するマージ候補の選出の処理を行い、処理は、ステップS1068に進む。
ステップS1068では、エンコーダ1000は、注目ブロックとしてのCUを、マージモードを採用して符号化する場合と、マージモードを採用せずに符号化する場合とのそれぞれの場合のRDコストを計算する。
さらに、ステップS1068では、エンコーダ1000は、ステップS1068で計算したRDコストに基づいて、注目ブロックとしてのCUを、マージモードで符号化するかどうかを判定する。
ここで、ステップS1068では、注目ブロックをマージモードで符号化した場合のRDコストが、マージモードを採用しない場合のRDコストよりも小さい場合(マージモードを採用した方が、採用しないケースよりも、発生符号量と符号化歪みとが総合的に向上する場合)に、マージモードで符号化すると判定される。
ステップS1068において、マージモードで符号化する(マージモードを採用する)と判定された場合、処理は、ステップS1069に進み、エンコーダ1000は、マージモードに関するフラグであるmerge_flagに、マージモードを採用することを表す値である1をセットするとともに、マージ領域を表すmerge_idxに、マージ領域の位置を表す値をセットし、符号化データに含める。
さらに、ステップS1069では、エンコーダ1000は、注目ブロックとしてのCUを、マージモードで符号化する(マージ領域の動き情報を、注目ブロックの動き情報として用いて予測画像を生成し、注目ブロックを符号化する)。
一方、ステップS1068において、マージモードで符号化しない(マージモードを採用しない)と判定された場合、処理は、ステップS1070に進み、エンコーダ1000は、注目ブロックとしてのCUを構成するPUの符号化の処理を行う。
ステップS1071において、エンコーダ1000は、ステップS1070のPUの符号化の処理で得られた予測画像を、注目ブロックとしてのCUを構成するPUに含まれるTU(入力画像)から減算し、そのTUについての差分画像を生成する。
ステップS1072において、エンコーダ1000は、ステップS1071で差分画像を生成したTUの符号化の処理を行う。
そして、ステップS1073において、エンコーダ1000は、TUの符号化の処理で得られた、そのTUについての差分画像を直交変換して量子化することにより求められた量子化係数を逆量子化して逆直交変換することにより、差分画像を復号する。
さらに、ステップS1073において、エンコーダ1000は、PUの符号化の処理で得られた予測画像と、ステップS1073で復号された差分画像とを加算する(足し合わせる)ことにより、TUについての復号画像を生成する。この復号画像は、DPB1014に記憶され、その後、必要に応じて、参照画像(ピクチャ)として用いられる。
一方、CUの復号では、ステップS1081において、デコーダ2000は、符号化データ(符号化ストリーム)から、注目ブロックとしてのCUのcu_split_flagを復号する。
そして、ステップS1082において、デコーダ2000は、cu_split_flagが1であるかどうかを判定する。
ステップS1082において、cu_split_flagが1であると判定された場合、すなわち、注目ブロックとしてのCUが分割されている場合、処理は、ステップS1083に進み、デコーダ2000は、注目ブロックとしてのCUを、ステップS1064の場合と同様に、4個の新たなCUに分割する。
そして、ステップS1084において、デコーダ2000は、ステップS1083での分割により得られた4個の新たなCUを、順次、注目ブロックとして、CUの復号の処理を再帰的に行う。
一方、ステップS1082において、cu_split_flagが1でない(0である)と判定された場合、すなわち、注目ブロックとしてのCUが分割されていない場合、処理は、ステップS1085に進み、デコーダ2000は、merge_flagが1であるかどうかを判定する。
ステップS1085において、merge_flagが1であると判定された場合、すなわち、注目ブロックとしてのCUがマージモードで符号化されている場合、処理は、ステップS1086に進み、デコーダ2000は、符号化データからmerge_idxを読み出すとともに、ステップS1067の場合と同様のマージ候補の選出の処理を行う。
さらに、ステップS1086では、デコーダ2000は、マージ候補の選出の処理で得られたマージ候補の中から、merge_idxが表す位置のマージ候補を、マージ領域に選択し、そのマージ領域(の動き情報)を用い、マージモードで、注目ブロックとしてのCUを復号する(マージ領域の動き情報を、注目ブロックの動き情報として用いて予測画像を生成し、注目ブロックを復号する)。
また、ステップS1085において、merge_flagが1でない(0である)と判定された場合、すなわち、注目ブロックとしてのCUがマージモードを採用せずに符号化されている場合、処理は、ステップS1087に進み、デコーダ2000は、注目ブロックとしてのCUを構成するPUの復号の処理を行い、ステップS1088において、そのPUに含まれるTUの復号の処理を行う。
そして、ステップS1089において、デコーダ2000は、PUの復号の処理で得られた予測画像と、TUの復号の処理で量子化係数を逆量子化して逆直交変換することにより得られた差分画像とを加算する(足し合わせる)ことにより、TUについての復号画像を生成する。この復号画像は、DPB2008に記憶され、その後、必要に応じて、参照画像(ピクチャ)として用いられる。
図24は、図23のステップS1067のマージ候補の選出(選択)を説明するフローチャートである。
すなわち、図24は、disable_bip_small_mrg_idc情報、及び、modify_bip_small_mrg_l0情報を用いる場合の、マージ候補の選出を説明するフローチャートである。
ステップS1101において、エンコーダ1000は、注目ブロックに対して、空間的、及び、時間的に近いブロックである周囲ブロックの中から、インター予測されたブロックであるインター予測ブロックを、マージ候補に加える。
なお、この段階では、インター予測ブロックの予測方法が、両方向予測である場合には、その両方向予測のまま、インター予測ブロックは、マージ候補に加えられる。
ステップS1102において、エンコーダ1000は、マージ候補になっているインター予測ブロックから、動き情報が重複しているインター予測ブロックを、マージ候補から除外する。
ステップS1103において、エンコーダ1000は、動きベクトルがゼロベクトルの(仮想的な)インター予測ブロックを、マージ候補に追加する。
その後、ステップS1104において、エンコーダ1000は、注目ブロックのスライスタイプがBであるかどうかを判定する。
ステップS1104において、注目ブロックのスライスタイプがBでないと判定された場合、すなわち、注目ブロックが、両方向予測されることがない場合、マージ候補の選出の処理は終了する。この場合、ステップS1101及びS1103で得られたマージ候補をそのまま用いて、マージ領域が選択される。
また、ステップS1104において、注目ブロックのスライスタイプがBであると判定された場合、すなわち、注目ブロックが、両方向予測されることがある場合、処理は、ステップS1105に進み、エンコーダ1000は、注目ブロックのブロックサイズが、disable_bip_small_mrg_idc情報が表す、予測方法を変更するブロックサイズに該当するかどうかを判定する。
ステップS1105において、注目ブロックのブロックサイズが、disable_bip_small_mrg_idc情報が表すブロックサイズに該当しないと判定された場合、マージ候補の選出の処理は終了する。この場合も、ステップS1101及びS1103で得られたマージ候補をそのまま用いて、マージ領域が選択される。
また、ステップS1105において、注目ブロックのブロックサイズが、disable_bip_small_mrg_idc情報が表すブロックサイズに該当すると判定された場合、処理は、ステップS1106に進み、エンコーダ1000は、modify_bip_small_mrg_l0情報が0であるかどうかを判定する。
ステップS1106において、modify_bip_small_mrg_l0情報が0でないと判定された場合、すなわち、modify_bip_small_mrg_l0情報が1である場合、処理は、ステップS1107に進み、エンコーダ1000は、予測方向が両方向予測になっているマージ候補についての、その両方向予測を、片方向予測のうちのL0予測に変更して、マージ候補の選出の処理は終了する。この場合、ステップS1101及びS1103で得られたマージ候補のうちの、予測方法が両方向予測になっているマージ候補については、その両方向予測がL0予測に変更され、その後、マージ候補の中から、マージ領域が選択される。
また、ステップS1106において、modify_bip_small_mrg_l0情報が0であると判定された場合、処理は、ステップS1108に進み、エンコーダ1000は、予測方向が両方向予測になっているマージ候補についての、その両方向予測を、片方向予測のうちのL1予測に変更して、マージ候補の選出の処理は終了する。この場合、ステップS1101及びS1103で得られたマージ候補のうちの、予測方法が両方向予測になっているマージ候補については、その両方向予測がL0予測に変更され、その後、マージ候補の中から、マージ領域が選択される。
[制限情報]
次に、設定部1021において設定される制限情報について説明する。
識別情報で説明したように、MCで必要とする最大のメモリ帯域(必要最大帯域)が、エンコーダ1000、及び、デコーダ2000の実装におけるボトルネックになる。
そこで、エンコーダ1000では、設定部1021において、制限情報を設定し、インター予測部1018において、その制限情報に従って、予測(予測画像の生成)を行うことで、必要最大帯域を抑制する。
ここで、制限情報は、画像の符号化(復号)の処理を制限する情報であり、例えば、以下説明する制限モードRBや、制限モードRVがある。
制限モードRBによれば、画像のブロックのサイズと、そのサイズのブロックに適用する予測方法が制限され、制限モードRVによれば、画像のブロックのMCにおいて予測画像の生成に用いる動きベクトルの数(参照ブロックの数)が制限される。
図25は、制限モードRBを説明する図である。
図25において、例えば、制限モードRBが、B4である場合、Bi-4×4,Bi-4×8,Bi-8×4、及び、Uni-4×4が禁止される。
ここで、例えば、Bi-4×4は、4×4のブロックサイズのPUパーティションに、両方向予測(Bi)を適用することを表す。
また、例えば、Uni-4×4は、4×4のブロックサイズのPUパーティションに、片方向予測(Uni)を適用することを表す。
したがって、制限モードRBが、B4である場合、Bi-4×4、及び、Uni-4×4によって、4×4のブロックサイズのPUパーティションに、両方向予測、及び、片方向予測を適用すること、ひいては、4×4のブロックサイズのPUパーティションの使用(インター予測)が制限される。
また、制限モードRBが、B4である場合、Bi-4×8によって、4×8のブロックサイズのPUパーティションに、両方向予測を適用することが制限される。
さらに、制限モードRBが、B4である場合、Bi-8×4によって、8×4のブロックサイズのPUパーティションに、両方向予測を適用することが制限される。
エンコーダ1000では、設定部1021が、例えば、DPB1014のメモリ帯域の最大値に基づいて、制限モードRBを設定し、インター予測部1018、及び、エントロピ符号化部1005に供給する。
インター予測部1018は、設定部1021からの制限モードRBに従って、予測画像の生成を行う。
一方、エントロピ符号化部1005は、設定部1021からの制限モードRBを、符号化データに含めて伝送する。
エントロピ符号化部1005では、制限モードRBを、符号化データ(符号化ストリーム)の、例えば、SPSや、PPS,APS,スライスヘッダ(slice header)等に含めることができる。
なお、設定部1021は、DPB1014のメモリ帯域の最大値が小さいほど、値B#iが大きい制限モードRBを設定する。
ここで、制限モードRBの値B#iが大きいとは、数字#iが大きいことを表す。
図25において、制限モードRBは、B1,B2,・・・,B7の順で、MCでの必要最大帯域が小さくなる。
ここで、図25では、制限モードRBが、B1である場合、Bi-4×4が制限され、制限モードRBが、B2である場合、Bi-4×4に加えて、Bi-4×8が制限され、制限モードRBが、B3である場合、Bi-4×4、及び、Bi-4×8に加えて、Bi-8×4が制限され、以下同様に、ある制限モードRB=B#iでは、1つ前の制限モードB#i-1での制限内容に、新たな制限内容が追加されている。
この新たな制限内容は、その時点で、メモリ帯域の消費が最大の、ブロックサイズと、そのブロックサイズのPUパーティションに適用される予測方法との組み合わせになっている。
上述したように、図25では、制限モードRBが、B1である場合、Bi-4×4が制限され、制限モードRBが、B2である場合、Bi-4×4に加えて、Bi-4×8が制限され、制限モードRBが、B3である場合、Bi-4×4、及び、Bi-4×8に加えて、Bi-8×4が制限される。
したがって、Bi-4×4の予測(4×4のブロックサイズのPUパーティションに、両方向予測を適用する予測)が、最も多くのメモリ帯域を消費し、Bi-4×8の予測が、2番目に多くのメモリ帯域を消費する。また、Bi-8×4の予測が、3番目に多くのメモリ帯域を消費する。
ここで、以上のように、Bi-4×8の予測、すなわち、横×縦が4×8画素の縦長のブロック(PUパーティション)の予測の方が、Bi-8×4の予測、すなわち、横×縦が8×4画素の横長のブロックの予測よりも、メモリ帯域を多く消費するが、その理由については、後述する。
上述のように、制限モードRBは、B1,B2,・・・,B7の順で、MCでの必要最大帯域が小さくなるので、設定部1021において、値B#iが大きい制限モードRBを設定することにより、予測画像の生成のために、DPB1014から復号画像が読み出されるときのメモリ帯域を抑制することができる。その結果、エンコーダ1000の高コスト化を防止することができる。
なお、設定部1021が、図25に従い、DPB1014のメモリ帯域の最大値が小さいほど、値B#iが大きい制限モードRBを設定する場合には、DPB1014のメモリ帯域の最大値が小であるほど、より大きなサイズのブロックにまで、両方向予測や片方向予測が適用されることが制限される。
デコーダ2000では、エントロピ復号部2001が、符号化データから制限モードRBを分離し、インター予測部2010に供給する。
インター予測部2010は、制限モードRBに従って、予測画像の生成を行う。
すなわち、インター予測部2010は、符号化データが、制限モードRBに適合している場合、例えば、制限モードRBにおいて、Bi-4×4が制限されており、そのような制限モードRBに従って、符号化データに、Bi-4×4が含まれていない場合、例えば、予測画像を生成する。
また、インター予測部2010は、符号化データが、制限モードRBに適合していない場合、例えば、制限モードRBにおいて、Bi-4×4が制限されているのに、符号化データに、Bi-4×4が含まれる場合、例えば、予測画像を生成せずに、デコーダ2000に、処理を中止させる。
なお、エンコーダ1000では、設定部1021において、エンコーダ1000のオペレータ等のユーザの操作に従って、制限モードRBを設定することができる。
その他、エンコーダ1000では、各値のメモリ帯域を、必要最大帯域として、その各値の必要最大帯域に応じて、プロファイルやレベルを定義しておき、さらに、制限モードRBを、プロファイルやレベルにリンクさせることができる。
ここで、レベルをLv.#iと表すこととし、レベルの値#iが大きいほど、必要最大帯域が小であることとすると、レベルLv.#iは、例えば、制限モードRB=B#iにリンクさせることができる。
この場合、エンコーダ1000において、例えば、レベルLv.1が設定されると、設定部1021は、制限モードRBを、レベルLv.1にリンクしているB1に設定する。
そして、エンコーダ1000では、制限モードRBに従い、その制限モードRBが表す、ブロックサイズと予測方法との組み合わせを用いずに符号化が行われ、プロファイル、及び、レベルの情報が符号化データに含めて伝送される。
デコーダ2000では、符号化データから、プロファイル、及び、レベルの情報が復号され、例えば、レベルから、そのレベルにリンクしている制限モードRBを認識することができる。
また、エンコーダ1000では、符号化データに、制限モードRBを含めて伝送し、デコーダ2000では、符号化データに含まれる制限モードRBを復号することができる。
デコーダ2000は、符号化データに、制限モードRBによって制限された、ブロックサイズと予測方法との組み合わせが含まれていないかどうかを確認することができる。
符号化データが、制限モードRBに適合していない場合、すなわち、符号化データに、制限モードRBによって制限された、ブロックサイズと予測方法との組み合わせが含まれる場合、デコーダ2000は、符号化データが、制限モードRBに適合しない旨を、上位のシステムに伝え、上位のシステムは、その符号化データの取り扱いについて判断することができる。
なお、プロファイル又はレベルによって、画像のサイズ(画枠)が表される場合、エンコーダ1000では、例えば、プロファイル又はレベルによって表される画像のサイズが大であるほど、より大きなサイズのブロックにまで、両方向予測や片方向予測が適用されることを制限する制限モードRBを設定することができる。
図26は、制限モードRBを用いる場合の、エンコーダ1000、及び、デコーダ2000の処理を説明するフローチャートである。
エンコーダ1000では、ステップS1121において、設定部1021が、注目ブロックについて、例えば、DPB1014のメモリ帯域の最大値や、ユーザの操作、レベル等に基づいて、制限モードRBを設定し、インター予測部1018、及び、エントロピ符号化部1005に供給する。
インター予測部1018は、ステップS1122において、設定部1021からの制限モードRBに従い、PUパーティションのブロックサイズと、そのブロックサイズのPUパーティションに適用される予測方法とを制限しながら、予測画像を生成する。
ステップS1123において、演算部1002ないしエントロピ符号化部1005は、必要に応じて、ステップS1122で生成された予測画像を用いて、注目ブロックを符号化し、符号化データを生成する。
ステップS1124において、エントロピ符号化部1005は、設定部1021からの制限モードRBを、符号化データに含めて伝送する。
なお、プロファイル及びレベルは、符号化データに含められるので、制限モードRBを、レベル(又はプロファイル)にリンクさせる場合には、符号化データに含まれるレベルの情報から、制限モードRBを認識することができるので、制限モードRBは、符号化データに含める必要がない。
したがって、制限モードRBを、レベルにリンクさせる場合には、符号化データを、制限モードRBを含めずに伝送することができる。
一方、デコーダ2000では、ステップS1131において、エントロピ復号部2001が、符号化データを受け取る(受信する)。そして、エントロピ復号部2001は、符号化データから制限モードRBを分離し、インター予測部2010に供給する。
なお、制限モードRBが、レベルにリンクしており、符号化データに制限モードRBが含まれない場合には、エントロピ復号部2001は、符号化データに含まれるレベルを、インター予測部2010に供給し、インター予測部2010は、エントロピ復号部2001からのレベルに基づいて、制限モードRBを認識する。
ステップS1132において、インター予測部2010は、制限モードRBに従って、予測画像を生成する。
すなわち、インター予測部1018は、符号化データが制限モードRBに適合するかどうかを確認しながら、つまり、符号化データに、制限モードRBによって制限された、ブロックサイズと予測方法との組み合わせが含まれていないかどうかを確認しながら、予測画像を生成する。
そして、符号化データが、制限モードRBに適合していない場合、デコーダ2000は、その旨を、上位のシステムに伝える。
一方、符号化データが、制限モードRBに適合する場合、ステップS1133において、エントロピ復号部2001ないし演算部2004は、必要に応じて、ステップS1132で生成された予測画像を用いて、ステップS1131で受信された符号化データを復号する。
図27及び図28は、同一の大きさ(画素数)のブロックであっても、4×8等の縦長のブロックの予測の方が、8×4等の横長のブロックの予測よりも、メモリ帯域を多く消費することを説明する図である。
DPB1014等のメモリから、そのメモリに格納された復号画像(ピクチャ)の画素を読み出す場合、64ビットや128ビットというようにバス幅(データ転送の経路の幅)単位になる。
1画素が8ビットである場合、64ビットのバス幅では、8画素が、128ビットのバス幅では、16画素が、それぞれ、並列に一度に読み出される。
一般的な実装においては、メモリから一度に読み出される画素群の最小単位としては、経験上の利便性等から、横長の長方形のブロックが採用される。
例えば、図27において破線で区切られている、横×縦が4×2画素のブロックごとに、画素(値)が読み出される。
ここで、メモリから一度に読み出される画素群の最小単位を、最小ブロックともいう。
また、図27において、正方形(□印)は、メモリに記憶された1画素(のデータ)を表し、丸(○印)は、予測画像の画素の位置を表す。図27では、予測画像は、メモリに記憶されている画像(参照画像)の画素から、横及び縦のそれぞれの方向に1/2画素分だけずれた位置の画像になっている。
さらに、ブロックBは、予測画像の画素のブロックを表し、図27では、8×4画素のブロックになっている。
ブロックPは、参照画像から予測画像を生成するときに補間フィルタとしてのFIR(Finite Impulse Response)フィルタがかけられる参照画像の画素のブロックを表し、予測画像のブロック(以下、予測ブロックともいう)Bを拡張したブロックになっている。
図27では、ブロックPは、15×11画素のブロックになっている。インター予測部1018及び2010では、ブロックPの画素に、補間フィルタがかけられることで、ブロックBの予測画像が生成される。
ブロックRは、メモリからブロックPの画素を読み出すときにメモリから読み出さなければならない(メモリから読み出す必要がある)画素のブロックであり、図27では、横×縦が5×6個の最小ブロックからなるブロック、すなわち、20×12画素のブロックになっている。
ここで、メモリからブロックPの画素を読み出すときにメモリから読み出さなければならないブロック(以下、読み出し必要ブロックともいう)Rの画素数(number of read pixels)を、NUM_Rと表すとともに、予測ブロックBの画素数(number of prediction pixels)を、NUM_Bと表すこととすると、メモリ帯域bandwidthは、例えば、式(1)で表される。
bandwidth=NUM_R/NUM_B
・・・(1)
予測ブロックBの画素数NUM_Bは、その横の画素数と縦の画素数を、それぞれ、B_HとB_Vと表すこととすると、式(2)で表される。
NUM_B=B_H×B_V
・・・(2)
図27では、B_H×B_Vは、8×4画素になっている。
読み出し必要ブロックRの画素数NUM_Rは、その横の画素数と縦の画素数を、それぞれ、R_HとR_Vと表すこととすると、式(3)で表される。
NUM_R=R_H×R_V
・・・(3)
いま、最小ブロックの横の画素数と縦の画素数を、それぞれAlign_HとAlign_Vと表すこととすると、最悪の場合で、読み出し必要ブロックRの横の画素数R_Hと縦の画素数R_Vは、それぞれ、式(4)と式(5)で表される。
R_H=Align_H+Align_H×ceil((P_H−1)/Align_H)
・・・(4)
R_V=Align_V+Align_V×ceil((P_V−1)/Align_V)
・・・(5)
なお、式(4)及び式(5)において、ceil(x)は、x以上の最小の整数を表す。また、P_H及びP_Vは、補間フィルタがかけられるブロックPの横及び縦の画素数を表し、それぞれ、式(6)及び式(7)で表される。
P_H=B_H+Tap_H−1
・・・(6)
P_V=B_V+Tap_V−1
・・・(7)
式(6)及び式(7)において、Tap_H及びTap_Vは、それぞれ、補間フィルタとしてのFIRフィルタの横及び縦のタップ数を表す。
最小ブロックが、複数の画素で構成される場合、メモリからは、インター予測に不要な画素が読み出されることがあるが、不要な画素は、メモリから読み出された後に破棄される。
最小ブロックが、横長の長方形である場合、メモリから読み出される読み出し必要ブロックRの左右の部分で、上下の部分よりも余分に読み出す画素が多くなる。
4×8等の縦長のブロックと、8×4等の横長のブロックとのように、画素数が同一であるが、形状が異なる予測ブロックBについては、メモリから、予測画像の生成のために読み出される画素に、インター予測に不要な画素が最も含まれる予測ブロックBが、メモリ帯域を最も消費するブロックとなる。
最小ブロックが、横長の長方形である場合、図28に示すように、予測ブロックBを拡張したブロックP(補間フィルタがかけられるブロック)を含む読み出し必要ブロックRの画素を読み出すときに、予測ブロックBが縦長の長方形であるとき(図28のA)の方が、横長の長方形であるとき(図28のB)よりも、インター予測(補間フィルタによるフィルタリング)に不要な画素が多くなる。
このため、4×8等の縦長の予測ブロックBと、8×4等の横長の予測ブロックBとについては、画素数は同一であるが、縦長の予測ブロックBの予測の方が、横長の予測ブロックBの予測よりも、メモリ帯域を多く消費する。
図29は、制限モードRVを説明する図である。
上述したように、制限モードRVによれば、画像のブロックのMC(ME)において予測画像の生成に用いる動きベクトルの数(参照ブロックの数)が制限される。
図29では、制限モードRV=V#iは、V1,V2、及び、V3の3つの値をとることができ、フレームレート(Frame rate)、及び、LCUのサイズ(LCU size)に応じて、動きベクトルの数が制限される。
例えば、フレームレートrateが、式0<rate<=30で表される範囲の値であり、LCUのサイズが、16×16画素である場合において、制限モードRVが、値V1に設定されたときには、MCで用いることができる動きベクトルの数は、32個に制限される。
ここで、制限モードRVでは、動きベクトルの数に代えて、DPB1014(DPB2008)から読み出される参照ブロックの数を制限することができる。
図29によれば、フレームレート及びLCUのサイズによって参照ブロックの数、又は、動きベクトルの数の最大値が制限される。
例えば、フレームレートが高くなると、必要最大帯域は大きくなるため、図29によれば、フレームレートに比例して、参照ブロックの数、又は、動きベクトルの数が少なくなる。
エンコーダ1000では、設定部1021が、フレームレート及びLCUのサイズの他、例えば、DPB1014のメモリ帯域の最大値に基づいて、制限モードRVを設定し、インター予測部1018、及び、エントロピ符号化部1005に供給する。
インター予測部1018は、設定部1021からの制限モードRVに従って、予測画像の生成を行う。
一方、エントロピ符号化部1005は、設定部1021からの制限モードRVを、符号化データに含めて伝送する。
エントロピ符号化部1005では、制限モードRVを、符号化データの、例えば、SPSや、PPS,APS,スライスヘッダ等に含めることができる。
なお、設定部1021は、DPB1014のメモリ帯域の最大値が小さいほど、値V#iが大きい制限モードRVを設定する。
ここで、制限モードRVの値V#iが大きいとは、数字#iが大きいことを表す。
制限モードRVは、V1,V2,V3の順で、MCでの必要最大帯域が小さくなる。
設定部1021において、値V#iが大きい制限モードRVを設定することにより、予測画像の生成のために、DPB1014から復号画像が読み出されるときのメモリ帯域を抑制することができる。その結果、エンコーダ1000の高コスト化を防止することができる。
デコーダ2000では、エントロピ復号部2001が、符号化データから制限モードRVを分離し、インター予測部2010に供給する。
インター予測部2010は、制限モードRVに従って、予測画像の生成を行う。
すなわち、インター予測部2010は、符号化データが、制限モードRVに適合している場合、例えば、制限モードRVにおいて、動きベクトルが、2つに制限されており、符号化データに、2つを超える動きベクトルを用いて予測画像が生成されるブロックが含まれていない場合、例えば、予測画像を生成する。
また、インター予測部2010は、符号化データが、制限モードRVに適合していない場合、例えば、制限モードRVにおいて、動きベクトルが、2つに制限されているのに、符号化データに、2つを超える動きベクトルを用いて予測画像が生成されるブロックが含まれる場合、上述した、符号化データが制限モードRBに適合していない場合と同様の処理を行う。
なお、エンコーダ1000では、設定部1021において、エンコーダ1000のオペレータ等のユーザの操作に従って、制限モードRVを設定することができる。
その他、エンコーダ1000では、DPB1014のメモリ帯域の最大値を、必要最大帯域として、その必要最大帯域の制限量に応じて、プロファイルやレベルを定義しておき、さらに、制限モードRVを、プロファイルやレベルにリンクさせることができる。
ここで、レベルLv.#iの値#iが大きいほど、必要最大帯域が小であることとすると、レベルLv.#iは、例えば、制限モードRV=V#iにリンクさせることができる。
この場合、エンコーダ1000において、例えば、レベルLv.1が設定されると、設定部1021は、制限モードRVを、レベルLv.1にリンクしているV1に設定する。
そして、エンコーダ1000では、制限モードRVに従い、その制限モードRVが表す数(以下)に、動きベクトルの数を制限して符号化が行われ、プロファイル、及び、レベルの情報(level_idc等)が符号化データに含めて伝送される。
デコーダ2000では、符号化データから、プロファイル、及び、レベルの情報が復号され、例えば、レベルから、そのレベルにリンクしている制限モードRVを認識することができる。
また、エンコーダ1000では、符号化データに、制限モードRVを含めて伝送し、デコーダ2000では、符号化データに含まれる制限モードRVを復号することができる。
デコーダ2000は、符号化データが、制限モードRVに適合していない場合、符号化データが、制限モードRVに適合しない旨を、上位のシステムに伝える。この場合、上位のシステムにおいて、符号化データの取り扱いが判断される。
なお、プロファイル又はレベルによって、画像のサイズ(画枠)を表すことができる。例えば、レベルによって、画像のサイズが表される場合において、レベルの値が大きいほど、画像のサイズが大であるときには、レベルLv.#iを、制限モードRV=V#iにリンクさせておくことにより、エンコーダ1000では、例えば、レベルによって表される画像のサイズが大であるほど、動きベクトルの数を少ない数に制限し、メモリ帯域を小にすることができる。
レベル(又はプロファイル)を制限モードRVにリンクさせる場合には、レベルを制限モードRBにリンクさせる場合と同様に、レベルから制限モードRVを認識することができるので、エンコーダ1000では、制限モードRVを、符号化データに含めないこととすることができる。
ここで、LCUサイズが大きくなると、例えば、1ピクチャあたりのLCUの数が少なくなるので、LCUの数が少なくなる分だけ、1つのLCUに使用することができる参照ブロック数又はMVの本数は多くなる。
また、画像サイズが大きくなると、例えば、1ピクチャにおいて、所定のLCUサイズのLCUの数が多くなるので、LCUの数が多くなる分だけ、1つのLCUに使用することができる参照ブロック数又はMVの本数は少なくなる。
なお、上述したように、フレームレートに比例して、参照ブロックの数(又は、動きベクトル)の数を少なくする場合、図29において、フレームレートが0<rate<=30で、LCUのサイズが8×8で、制限モードRVがV3であるときに、参照ブロックの数が2個であることを基準とすると、フレームレートが30<rate<=60で、LCUのサイズが8×8で、制限モードRVがV3であるときの、参照ブロックの数は1個(=2個×1/2)に制限され、フレームレートが0<rate<=30で、LCUのサイズが8×8で、制限モードRVがV3であるときの、参照ブロックの数は0.5個(=2個×1/2×1/2)に制限されることになる。
しかしながら、参照ブロックの数が、0.5個という非整数となるのは適切でないため、図29では、計算上は、0.5個という参照ブロックの数が、(1つ以上の)参照ブロックの数として取り得る値の最小値である1に切り上げられている。
以上のように、参照ブロックの数が切り上げられている場合、その切り上げられた数の参照ブロックを読み出すことができるように、エンコーダ1000のDPB1014及びデコーダ2000のDPB2008を実装する必要がある。
なお、制限モードRBとRVとは、併用することができる。また、識別情報と制限情報とは、併用することができる。
さらに、図29の制限モードRVでは、LCUサイズに応じて、そのLCUで使用する動きベクトル、又は、参照ブロックの数を制限することとしたが、動きベクトル、又は、参照ブロックの数は、LCUの他、PUや、TU,SCU、ピクチャ等の領域単位で、その領域のサイズに応じて制限することができる。但し、動きベクトル等の数を制限する領域を、広すぎる領域とすると、その広い領域の一部分に多くの動きベクトル等が割り当てられ、その結果、他の部分に割り当てられる動きベクトルが極端に制限されることがある。また、動きベクトル等の数を制限する領域を、狭すぎる領域とすると、その狭い領域に割り当てられる動きベクトルの数が元々少ないため、動きベクトルの数を制限する自由度が小さくなる。したがって、動きベクトル等の数を制限する領域は、以上のことを考慮して、LCU等のように、適切なサイズの領域とすることが望ましい。
[識別情報を含むヘッダ情報のシンタクスの第1の例]
図30は、識別情報を含む、符号化データのヘッダ情報のシンタクスの第1の例を示す図である。
すなわち、図30は、ヘッダ情報seq_parameter_set_rbsp()のシンタクスを示しており、そのヘッダ情報seq_parameter_set_rbsp()に、識別情報としてのフラグdisable_bip_small_mrg_idcが含められている。
図30のフラグdisable_bip_small_mrg_idcは、両方向予測(bi-prediction)が禁止されるブロック(prediction blocks)のサイズを表す。
図31は、図30の識別情報としてのフラグdisable_bip_small_mrg_idcがとる値と、各値のフラグdisable_bip_small_mrg_idcによって両方向予測が禁止されるブロックのサイズとを示す図である。
図31では、フラグdisable_bip_small_mrg_idcは、0,1,2,3の値をとることができる。
フラグdisable_bip_small_mrg_idcの値が0である場合、両方向予測は、禁止されない。
フラグdisable_bip_small_mrg_idcの値が1である場合、4×4のブロック(ブロックサイズが4×4のブロック)について、両方向予測が禁止される。
フラグdisable_bip_small_mrg_idcの値が2である場合、4×4,8×4、及び、4×8の3種類のブロックについて、両方向予測が禁止され、フラグdisable_bip_small_mrg_idcの値が3である場合、4×4,8×4,4×8、及び、8×8の4種類のブロックについて、両方向予測が禁止される。
なお、図30の識別情報としてのフラグdisable_bip_small_mrg_idcは、例えば、図16の画像処理装置の設定部1021において設定され、インター予測部1018でのインター予測に用いられるとともに、エントロピ符号化部1005において、符号化データに含められる。
また、図30の識別情報としてのフラグdisable_bip_small_mrg_idcは、例えば、図16の画像処理装置のエントロピ復号部2001において、符号化データから分離され、インター予測部2010でのインター予測に用いられる。
[識別情報を含むヘッダ情報のシンタクスの第2の例]
図32及び図33は、識別情報を含む、符号化データのヘッダ情報のシンタクスの第2の例を示す図である。
すなわち、図32は、ヘッダ情報seq_parameter_set_rbsp()のシンタクスを示しており、そのヘッダ情報seq_parameter_set_rbsp()に、識別情報としてのフラグdisable_inter_4x8_8x4_8x8_bidir_flag及びdisable_inter_4x8_8x4_bidir_flagが含められている。
図32において、識別情報としてのフラグdisable_inter_4x8_8x4_8x8_bidir_flagは、4×8,8×4、及び、8×8の3種類のブロックに両方向予測を適用することができるかどうかを表す。
例えば、フラグdisable_inter_4x8_8x4_8x8_bidir_flagの値が0である場合には、4×8,8×4、及び、8×8の3種類のブロックの両方向予測が禁止されず、フラグdisable_inter_4x8_8x4_8x8_bidir_flagの値が1である場合には、4×8,8×4、及び、8×8の3種類のブロックの両方向予測が禁止される。
また、図32において、識別情報としてのフラグdisable_inter_4x8_8x4_bidir_flagは、4×8及び8×4の2種類のブロックに両方向予測を適用することができるかどうかを表す。
例えば、フラグdisable_inter_4x8_8x4_bidir_flagの値が0である場合には、4×8及び8×4の2種類のブロックの両方向予測が禁止されず、フラグdisable_inter_4x8_8x4_bidir_flagの値が1である場合には、4×8及び8×4の2種類のブロックの両方向予測が禁止される。
したがって、フラグdisable_inter_4x8_8x4_8x8_bidir_flagの値が1である場合において、注目ブロックが、4×8,8×4、又は、8×8のブロックであるときには、両方向予測が適用されるマージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように置換して、注目ブロックについて、マージモードの処理が行われる。
また、フラグdisable_inter_4x8_8x4_bidir_flagの値が1である場合において、注目ブロックが、4×8又は8×4のブロックであるときには、両方向予測が適用されるマージ候補の予測方法を、両方向予測に代えて片方向予測を適用するように置換して、注目ブロックについて、マージモードの処理が行われる。
図32において、フラグdisable_inter_4x8_8x4_8x8_bidir_flagは、フラグlog2_min_coding_block_size_minus3が1以下である場合に、ヘッダ情報seq_parameter_set_rbsp()に含められる。また、フラグdisable_inter_4x8_8x4_bidir_flagは、フラグlog2_min_coding_block_size_minus3が0であり、かつ、フラグdisable_inter_4x8_8x4_8x8_bidir_flagが0である場合に、ヘッダ情報seq_parameter_set_rbsp()に含められる。
ここで、フラグlog2_min_coding_block_size_minus3は、CU(coding block)の最小のサイズを表す。
フラグlog2_min_coding_block_size_minus3が表すCUの最小のサイズが、16×16より大きいサイズ(32×32又は64×64)である場合、注目ブロックとしてのPUとしては、16×16(以上)のサイズのブロックが使用され、8×8(以下)のサイズのブロックは使用されない。
したがって、フラグlog2_min_coding_block_size_minus3が表すCUの最小のサイズが、16×16より大きいサイズである場合には、識別情報としてのフラグdisable_inter_4x8_8x4_8x8_bidir_flag及びdisable_inter_4x8_8x4_bidir_flagは、意味がなくなるので、符号化データに含まれていても、エントロピ復号部2001(図16)では読み込まれない(無視される)。
なお、ヘッダ情報seq_parameter_set_rbsp()に、フラグdisable_inter_4x8_8x4_8x8_bidir_flagが存在しない場合には、フラグdisable_inter_4x8_8x4_8x8_bidir_flagの値は0であると推測される。
また、ヘッダ情報seq_parameter_set_rbsp()に、フラグdisable_inter_4x8_8x4_bidir_flagが存在しない場合には、フラグdisable_inter_4x8_8x4_8x8_bidir_flagの値が0であれば、フラグdisable_inter_4x8_8x4_bidir_flagの値も0であると推測され、フラグdisable_inter_4x8_8x4_8x8_bidir_flagの値が1であれば、フラグdisable_inter_4x8_8x4_bidir_flagの値も1であると推測される。
図33は、ヘッダ情報prediction_unit(x0,y0,log2CbSize)のシンタクスを示しており、そのヘッダ情報prediction_unit(x0,y0,log2CbSize)に、識別情報としてのフラグdisable_bidirが含められている。
識別情報としてのフラグdisable_bidirは、図32の識別情報としてのフラグdisable_inter_4x8_8x4_8x8_bidir_flag及びdisable_inter_4x8_8x4_bidir_flag等に応じて、値が0又は1に設定される。
フラグdisable_bidirの値が0である場合には、両方向予測は禁止されず、フラグdisable_bidirの値が1である場合には、両方向予測が禁止される。
図33において、フラグdisable_bidirの後に記述されるフラグinter_pred_flag[x0][y0]は、x0及びy0によって表される位置のブロックの予測方法が、片方向予測であるか、又は、両方向予測であるか等を表すが、フラグdisable_bidirの値が1であり、両方向予測が禁止されている場合には、エントロピ復号部2001(図16)において、フラグinter_pred_flag[x0][y0]は、符号化データから読み込まれず、x0及びy0によって表される位置のブロックの予測方法が、片方向予測であると解釈される。
なお、図32の識別情報としてのフラグdisable_inter_4x8_8x4_8x8_bidir_flag及びdisable_inter_4x8_8x4_bidir_flag、並びに、図33の識別情報としてのフラグdisable_bidirは、例えば、図16の画像処理装置の設定部1021において設定され、インター予測部1018でのインター予測に用いられるとともに、エントロピ符号化部1005において、符号化データに含められる。
また、図32の識別情報としてのフラグdisable_inter_4x8_8x4_8x8_bidir_flag及びdisable_inter_4x8_8x4_bidir_flag、並びに、図33の識別情報としてのフラグdisable_bidirは、例えば、図16の画像処理装置のエントロピ復号部2001において、符号化データから分離され、インター予測部2010でのインター予測に用いられる。
ここで、図32の識別情報としてのフラグdisable_inter_4x8_8x4_8x8_bidir_flag及びdisable_inter_4x8_8x4_bidir_flag、並びに、図33の識別情報としてのフラグdisable_bidirは、マージモードを行う場合の他、マージモード以外で、インター予測を行う場合にも適用することができる。
また、図32のヘッダ情報seq_parameter_set_rbsp()に含まれる識別情報としてのフラグdisable_inter_4x8_8x4_8x8_bidir_flag及びdisable_inter_4x8_8x4_bidir_flagには、8×8以下のブロックのうちの、4×4のブロックについて、両方向予測を適用することができるかどうかを表す情報が含まれていないが、これは、現時点では、ヘッダ情報seq_parameter_set_rbsp()に、フラグinter_4x4_enabled_flagが存在するためである。
すなわち、現時点では、図30に示したヘッダ情報seq_parameter_set_rbsp()に、4×4のブロックの使用の可否を表すフラグinter_4x4_enabled_flagが定義されており、4×4のブロックの扱いについては、そのフラグinter_4x4_enabled_flagに従うこととするため、図32では、4×4のブロックについて、両方向予測を適用することができるかどうかを表すフラグが定義されていない。
したがって、例えば、将来的に、フラグinter_4x4_enabled_flagが削除された場合には、4×4のブロックや、4×4以上のブロックサイズのブロックについて、両方向予測を適用することができるかどうかを表すフラグを定義し、4×4のブロックについての情報を含まないフラグdisable_inter_4x8_8x4_8x8_bidir_flag及びdisable_inter_4x8_8x4_bidir_flagに代えて(又は、フラグdisable_inter_4x8_8x4_8x8_bidir_flag及びdisable_inter_4x8_8x4_bidir_flagとともに)、図32のヘッダ情報seq_parameter_set_rbsp()に含めることができる。
なお、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図34において、パーソナルコンピュータ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にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図34に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア521により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM502や、記憶部513に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施の形態に係る画像処理装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
[第1の応用例:テレビジョン受像機]
図35は、上述した実施の形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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は、上述した実施の形態に係るデコーダ2000の機能を有する。
[第2の応用例:携帯電話機]
図36は、上述した実施の形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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は、上述した実施の形態に係るエンコーダ1000及びデコーダ2000の機能を有する。
[第3の応用例:記録再生装置]
図37は、上述した実施の形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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は、上述した実施の形態に係るエンコーダ1000の機能を有する。また、デコーダ947は、上述した実施の形態に係るデコーダ2000の機能を有する。
[第4の応用例:撮像装置]
図38は、上述した実施の形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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は、上述した実施の形態に係るエンコーダ1000及びデコーダ2000の機能を有する。
[多視画像点符号化・多視点画像復号への適用]
図39は、多視点画像符号化方式の一例を示す図である。
上述した一連の処理は、多視点画像符号化・多視点画像復号に適用することができる。
図39に示されるように、多視点画像は、複数の視点の画像を含み、その複数の視点のうちの所定の1つの視点の画像が、ベースビューの画像(base view)に指定される。ベースビューの画像以外の各視点の画像は、ノンベースビューの画像(non-base view)として扱われる。
図39では、多視点画像として、3つの視点の画像が存在し、各視点の画像を識別するview_idが0の画像が、ベースビューの画像になっている。また、view_idが1及び2の画像それぞれが、ノンベースビューの画像になっている。
ここで、多視点画像符号化及び多視点画像復号では、ベースビューの画像は、他のビュー(視点)の画像を参照せずに処理(符号化、復号)される。一方、ノンベースビューの画像は、他のビューの画像を参照して処理することができる。図39において、矢印は、画像の参照を表しており、矢印の始点側にある画像は、必要に応じて、矢印の終点側にある画像を参照して処理することができる。
図39のような多視点画像を符号化・復号する場合、各ビューの画像を符号化・復号するが、この各ビューの符号化・復号に対して、図16の画像処理装置の技術を適用することができる。このようにすることにより、上述したように、高コスト化を防止することができる。
さらに、各ビューの符号化・復号では、図16の画像処理装置の技術において使用されるフラグその他の情報を共有することができる。
[多視点画像符号化装置]
図40は、上述した多視点画像符号化を行う多視点画像符号化装置の構成例を示すブロック図である。
図40に示されるように、多視点画像符号化装置600は、符号化部601、符号化部602、及び多重化部603を有し、例えば、ベースビュー画像及びノンベースビュー画像の2視点の画像からなる多視点画像を符号化する。2視点の画像からなる多視点画像としては、例えば、左眼で観察される左眼用画像と、右眼で観察される右眼用画像とからなる3D(Dimensional)画像がある。
符号化部601は、ベースビュー画像を符号化し、ベースビュー画像符号化ストリームを生成する。符号化部602は、ノンベースビュー画像を、必要に応じてベースビュー画像(符号化部601で符号化されてローカル復号されたベースビュー画像)を参照しながら符号化し、ノンベースビュー画像符号化ストリームを生成する。多重化部603は、符号化部601において生成されたベースビュー画像符号化ストリームと、符号化部602において生成されたノンベースビュー画像符号化ストリームとを多重化し、多視点画像符号化ストリームを生成する。
この多視点画像符号化装置600の符号化部601及び符号化部602に対して、図16の画像処理装置のエンコーダ1000の技術を適用することができる。さらに、上述したように、符号化部601及び符号化部602は、フラグその他の情報を共有することができる。
[多視点画像復号装置]
図41は、上述した多視点画像復号を行う多視点画像復号装置の構成例を示すブロック図である。
図41に示されるように、多視点画像復号装置610は、逆多重化部611、復号部612、及び復号部613を有し、例えば、図40の多視点画像符号化装置で得られる多視点画像符号化ストリームを復号する。
逆多重化部611は、ベースビュー画像符号化ストリームとノンベースビュー画像符号化ストリームとが多重化された多視点画像符号化ストリームを逆多重化し、ベースビュー画像符号化ストリームと、ノンベースビュー画像符号化ストリームとを抽出する。復号部612は、逆多重化部611により抽出されたベースビュー画像符号化ストリームを復号し、ベースビュー画像を得る。復号部613は、逆多重化部611により抽出されたノンベースビュー画像符号化ストリームを、必要に応じて復号部612で復号されたベースビュー画像を参照しながら復号し、ノンベースビュー画像を得る。
この多視点画像復号装置610の復号部612及び復号部613に対して、図16の画像処理装置のデコーダ2000を適用することができる。さらに、上述したように、復号部612及び復号部613は、フラグその他の情報を共有することができる。
[階層画像符号化・階層画像復号への適用]
図42は、階層画像符号化方式の一例を示す図である。
上述した一連の処理は、階層画像符号化・階層画像復号に適用することができる。
図42に示されるように、階層画像は、複数の階層(解像度)の画像を含み、その複数の階層のうちの所定の1つの階層の画像(例えば、最も低解像度の画像)が、ベースレイヤ(base layer)の画像に指定される。ベースレイヤの画像以外の各階層の画像は、ノンベースレイヤ(non-base layer)の画像として扱われる。
図42では、階層画像として、3つの階層の画像が存在し、各階層の画像を識別するlayer_idが0の画像が、ベースレイヤの画像になっている。また、layer _idが1及び2の画像それぞれが、ノンベースレイヤの画像になっている。なお、layer_idが2のノンベースレイヤの画像は、例えば、あるコンテンツのオリジナルの解像度の画像であり、layer_idが1のノンベースレイヤの画像は、例えば、layer_idが2のノンベースレイヤの画像の解像度を劣化させた画像である。また、layer_idが0のベースレイヤの画像は、layer_idが1のノンベースレイヤの画像の解像度を劣化させた画像である。
ここで、階層画像符号化及び階層画像復号では、ベースレイヤの画像は、他のレイヤ(階層)の画像を参照せずに処理(符号化、復号)される。一方、ノンベースレイヤの画像は、他のレイヤの画像を参照して処理することができる。図42では、図39の場合と同様に、矢印は、画像の参照を表しており、矢印の始点側にある画像は、必要に応じて、矢印の終点側にある画像を参照して処理することができる。
図42のような階層画像を符号化・復号する場合、各階層の画像を符号化・復号するが、この各階層の符号化・復号に対して、図16の画像処理装置の技術を適用することができる。このようにすることにより、上述したように、高コスト化を防止することができる。
さらに、各階層の符号化・復号では、図16の画像処理装置の技術において使用されるフラグその他の情報を共有することができる。
[階層画像符号化装置]
図43は、上述した階層画像符号化を行う階層画像符号化装置の構成例を示すブロック図である。
図43に示されるように、階層画像符号化装置620は、符号化部621、符号化部622、及び多重化部623を有し、例えば、ベースレイヤ画像及びノンベースレイヤ画像の2階層の画像からなる階層画像を符号化する。
符号化部621は、ベースレイヤ画像を符号化し、ベースレイヤ画像符号化ストリームを生成する。符号化部622は、ノンベースレイヤ画像を、必要に応じてベースレイヤ画像(符号化部621で符号化されてローカル復号されたベースレイヤ画像)を参照しながら符号化し、ノンベースレイヤ画像符号化ストリームを生成する。多重化部623は、符号化部621において生成されたベースレイヤ画像符号化ストリームと、符号化部622において生成されたノンベースレイヤ画像符号化ストリームとを多重化し、階層画像符号化ストリームを生成する。
この階層画像符号化装置620の符号化部621及び符号化部622に対して、図16の画像処理装置のエンコーダ1000の技術を適用することができる。さらに、上述したように、符号化部621及び符号化部622は、フラグその他の情報を共有することができる。
[階層画像復号装置]
図44は、上述した階層画像復号を行う階層画像復号装置の構成例を示すブロック図である。
図44に示されるように、階層画像復号装置630は、逆多重化部631、復号部632、及び復号部633を有し、例えば、図43の階層画像符号化装置で得られる階層画像符号化ストリームを復号する。
逆多重化部631は、ベースレイヤ画像符号化ストリームとノンベースレイヤ画像符号化ストリームとが多重化された階層画像符号化ストリームを逆多重化し、ベースレイヤ画像符号化ストリームと、ノンベースレイヤ画像符号化ストリームとを抽出する。復号部632は、逆多重化部631により抽出されたベースレイヤ画像符号化ストリームを復号し、ベースレイヤ画像を得る。復号部633は、逆多重化部631により抽出されたノンベースレイヤ画像符号化ストリームを、必要に応じて復号部632で復号されたベースレイヤ画像を参照しながら復号し、ノンベースレイヤ画像を得る。
この階層画像復号装置630の復号部632及び復号部633に対して、図16の画像処理装置のデコーダ2000の技術を適用することができる。さらに、上述したように、復号部632及び復号部633は、フラグその他の情報を共有することができる。
[階層画像符号化方式の利用例]
上述の階層画像符号化方式の利用例について説明する。
[階層画像符号化方式の第1の利用例]
図45は、階層画像符号化方式の第1の利用例を説明する図である。
階層画像符号化(以下、スケーラブル符号化ともいう)は、例えば、図45に示される例のように、伝送するデータの選択のために利用することができる。
図45に示されるデータ伝送システム3000において、スケーラブル符号化データ記憶部3001には、階層画像をスケーラブル符号化したスケーラブル符号化データが記憶されている。
配信サーバ3002は、スケーラブル符号化データ記憶部3001に記憶されているスケーラブル符号化データを読み出し、ネットワーク3003を介して、パーソナルコンピュータ3004、AV機器3005、タブレットデバイス3006、及び携帯電話機3007等の端末装置に配信する。
その際、配信サーバ3002は、端末装置の能力や通信環境等に応じて、適切な品質(解像度等)の符号化データを選択して伝送する。配信サーバ3002が不要に高品質なデータを伝送しても、端末装置において高画質な画像を得られるとは限らず、遅延やオーバフローの発生要因となる恐れがある。また、高品質なデータは、不要に通信帯域を占有することや、端末装置の負荷を不要に増大させる恐れがある。逆に、配信サーバ3002が低品質なデータしか伝送しないのでは、端末装置の動力や通信環境が十分であっても、高画質の画像を得ることが困難になる。そのため、配信サーバ3002は、適宜、端末装置の能力や通信環境等に対して適切な品質(レイヤ)の符号化データを、スケーラブル符号化データ記憶部3001から読み出し、伝送する。
ここで、図45では、スケーラブル符号化データ記憶部3001には、スケーラブル符号化データ(BL+EL)3011が記憶されている。スケーラブル符号化データ(BL+EL)3011は、ベースレイヤ画像符号化ストリームBLとノンベースレイヤ画像符号化ストリームELとが多重化された階層画像符号化ストリームである。
ベースレイヤ画像符号化ストリームBLは、ベースレイヤの画像を符号化することにより得られる符号化データである。また、ノンベースレイヤ画像符号化ストリームELは、必要に応じて、ベースレイヤの画像を参照しながら、ノンベースレイヤ(エンハンスレイヤ)の画像の符号化を行うことにより得られる符号化データである。
したがって、スケーラブル符号化データ(BL+EL)3011は、ベースレイヤとノンベースレイヤの両方の画像を含む符号化データであり、復号することにより、ベースレイヤの画像及びノンベースレイヤの画像の両方を得ることができるデータである。
配信サーバ3002は、データを受信する(配信を受ける)端末装置の能力や通信環境等に応じて、適切なレイヤを選択し、そのレイヤの(画像を復号するのに必要な)データを、スケーラブル符号化データ記憶部3001から読み出す。例えば、配信サーバ3002は、処理能力の高いパーソナルコンピュータ3004やタブレットデバイス3006に対しては、高品質な(画像が得られる)スケーラブル符号化データ(BL+EL)3011をスケーラブル符号化データ記憶部3001から読み出し、そのまま伝送する。これに対して、例えば、配信サーバ3002は、処理能力の低いAV機器3005や携帯電話機3007に対しては、スケーラブル符号化データ(BL+EL)3011からベースレイヤのデータ(ベースレイヤ画像符号化ストリームBL)を抽出し、スケーラブル符号化データ(BL+EL)3011と内容的には同じコンテンツのデータであるが、スケーラブル符号化データ(BL+EL)3011よりも低品質なスケーラブル符号化データ(BL)3012として伝送する。
このようにスケーラブル符号化データを用いることにより、データ量を容易に調整することができるので、遅延やオーバフローの発生を抑制することや、端末装置や通信媒体の負荷の不要な増大を抑制することができる。
また、スケーラブル符号化では、ノンベースレイヤ(エンハンスレイヤ)の画像の符号化は、ベースレイヤの画像を参照しながら行われるので、スケーラブル符号化データ(BL+EL)3011については、レイヤ間の冗長性が低減され、ノンベースレイヤの画像を、他のレイヤの画像を参照せずに、いわば独立に符号化する場合よりも、データ量が少なくなる。したがって、スケーラブル符号化データ記憶部3001の記憶領域をより効率よく使用することができる。
なお、配信サーバ3002からのデータを受信する端末装置には、パーソナルコンピュータ3004ないし携帯電話機3007のような様々な装置を採用することができ、端末装置のハードウエアの性能は、様々である。また、端末装置が実行するアプリケーションは様々であり、そのソフトウエアの能力も様々である。さらに、通信媒体となるネットワーク3003には、例えばインターネットやLAN(Local Area Network)等、有線若しくは無線、又はその両方を含むあらゆる通信回線網を採用することができ、そのデータ伝送能力は様々である。さらに、通信媒体となるネットワーク3003のデータ伝送能力は、トラフィック量その他の通信環境によって変化することがある。
そこで、配信サーバ3002は、データ伝送を開始する前に、データの伝送先となる端末装置と通信を行い、端末装置のハードウエア性能や、端末装置が実行するアプリケーション(ソフトウエア)の性能等といった端末装置の能力に関する情報、並びに、ネットワーク3003の利用可能帯域幅等の通信環境に関する情報を得ることができる。そして、配信サーバ3002は、端末装置の能力に関する情報や通信環境に関する情報を基に、適切なレイヤを選択することができる。
なお、スケーラブル符号化データ(BL+EL)3011からの、スケーラブル符号化データ(BL)3012の抽出は、配信サーバ3002の他、端末装置において行うことができる。例えば、パーソナルコンピュータ3004は、配信サーバ3002から伝送されたスケーラブル符号化データ(BL+EL)3011を復号し、ノンベースレイヤの画像を表示する他、配信サーバ3002から伝送されたスケーラブル符号化データ(BL+EL)3011から、ベースレイヤのスケーラブル符号化データ(BL)3012を抽出し、記憶することや、他の装置に転送すること、復号してベースレイヤの画像を表示することができる。
もちろん、スケーラブル符号化データ記憶部3001、配信サーバ3002、ネットワーク3003、及び端末装置の数はいずれも任意である。
また、端末装置は、配信サーバ3002から、例えば、複数のコンテンツのスケーラブル符号化データを受信することができる。さらに、端末装置は、配信サーバ3002から、複数のコンテンツのスケーラブル符号化データを受信する場合には、例えば、その複数のコンテンツのうちの1つのコンテンツについては、ノンベースレイヤの画像を表示し、他のコンテンツについては、ベースレイヤの画像を表示する、いわゆる2画面表示等の複数画面の表示を行うことができる。
[階層画像符号化方式の第2の利用例]
図46は、階層画像符号化方式の第2の利用例を説明する図である。
スケーラブル符号化は、例えば、図46に示される例のように、複数の通信媒体を介する伝送のために利用することができる。
図46に示されるデータ伝送システム3100において、放送局3101は、地上波放送3111により、ベースレイヤのスケーラブル符号化データ(BL)3121を伝送する。また、放送局3101は、有線若しくは無線又はその両方の通信網よりなる任意のネットワーク3112を介して、ノンベースレイヤのスケーラブル符号化データ(EL)3122を伝送する(例えばパケット化して伝送する)。
端末装置3102は、放送局3101が放送する地上波放送3111の受信機能を有し、この地上波放送3111を介して伝送されるベースレイヤのスケーラブル符号化データ(BL)3121を受け取る。また、端末装置3102は、ネットワーク3112を介した通信を行う通信機能をさらに有し、このネットワーク3112を介して伝送されるノンベースレイヤのスケーラブル符号化データ(EL)3122を受け取る。
端末装置3102は、例えばユーザ指示等に応じて、地上波放送3111を介して取得したベースレイヤのスケーラブル符号化データ(BL)3121を、復号してベースレイヤの画像を得ることや、記憶すること、他の装置に伝送することができる。
また、端末装置3102は、例えばユーザ指示等に応じて、地上波放送3111を介して取得したベースレイヤのスケーラブル符号化データ(BL)3121と、ネットワーク3112を介して取得したノンベースレイヤのスケーラブル符号化データ(EL)3122とを合成して、スケーラブル符号化データ(BL+EL)を得ることや、それを復号してノンベースレイヤの画像を得ること、記憶すること、他の装置に伝送することができる。
以上のように、スケーラブル符号化データは、例えばレイヤ毎に異なる通信媒体を介して伝送させることができる。この場合、負荷を分散させることができ、遅延やオーバフローの発生を抑制することができる。
また、状況に応じて、伝送に使用する通信媒体を、レイヤ毎に選択することができる。例えば、データ量が比較的多いベースレイヤのスケーラブル符号化データ(BL)3121を帯域幅の広い通信媒体を介して伝送させ、データ量が比較的少ないノンベースレイヤのスケーラブル符号化データ(EL)3122を帯域幅の狭い通信媒体を介して伝送させることができる。また、例えば、ノンベースレイヤのスケーラブル符号化データ(EL)3122を伝送する通信媒体を、ネットワーク3112とするか、地上波放送3111とするかを、ネットワーク3112の利用可能帯域幅に応じて切り替えることができる。もちろん、任意のレイヤのデータについて同様である。
このように制御することにより、データ伝送における負荷の増大を、より抑制することができる。
なお、レイヤ数は任意であり、伝送に利用する通信媒体の数も任意である。また、データ配信先となる端末装置3102の数も任意である。さらに、図46に示したような、スケーラブル符号化された符号化データを、レイヤを単位として複数に分割し、複数の回線を介して伝送するデータ伝送システム3100は、放送を用いるシステムに限定されるものではない。
[階層画像符号化方式の第3の利用例]
図47は、階層画像符号化方式の第3の利用例を説明する図である。
スケーラブル符号化は、例えば、図47に示される例のように、符号化データの記憶に利用することができる。
図47に示される撮像システム3200において、撮像装置3201は、被写体3211を撮像して得られた画像データをスケーラブル符号化し、スケーラブル符号化データ(BL+EL)3221として、スケーラブル符号化データ記憶装置3202に供給する。
スケーラブル符号化データ記憶装置3202は、撮像装置3201から供給されるスケーラブル符号化データ(BL+EL)3221を、状況に応じた品質(解像度)で記憶する。例えば、通常時の場合、スケーラブル符号化データ記憶装置3202は、スケーラブル符号化データ(BL+EL)3221からベースレイヤのデータを抽出し、低品質でデータ量の少ないベースレイヤのスケーラブル符号化データ(BL)3222として記憶する。これに対して、例えば、注目時の場合、スケーラブル符号化データ記憶装置3202は、高品質でデータ量の多いスケーラブル符号化データ(BL+EL)3221のまま記憶する。
このようにすることにより、スケーラブル符号化データ記憶装置3202は、必要な場合のみ、画像を高画質に保存することができるので、画質劣化による画像の価値の低減を抑制しながら、データ量の増大を抑制することができ、記憶領域の利用効率を向上させることができる。
例えば、撮像装置3201が監視カメラであるとする。撮像画像(撮像装置3201で得られるが画像データ)に監視対象(例えば侵入者)が写っていない場合(通常時の場合)、撮像画像の内容は重要でない可能性が高いので、データ量の低減が優先され、その撮像画像(スケーラブル符号化データ)は、低品質に記憶される。これに対して、撮像画像に監視対象が被写体3211として写っている場合(注目時の場合)、その撮像画像の内容は重要である可能性が高いので、画質が優先され、その撮像画像(スケーラブル符号化データ)は、高品質に記憶される。
なお、通常時であるか注目時であるかは、例えば、スケーラブル符号化データ記憶装置3202が、画像を解析することにより判定することができる。また、通常時であるか注目時であるかは、例えば、撮像装置3201が判定し、その判定結果をスケーラブル符号化データ記憶装置3202に伝送することができる。
なお、通常時であるか注目時であるかの判定基準は任意であり、判定基準とする撮像画像の内容は任意である。もちろん、撮像画像の内容以外の条件を判定基準とすることもできる。例えば、収録した音声の大きさや波形等に応じて、通常時であるか注目時であるかを判定することができる。また、通常時と注目時とは、例えば、所定の時間毎に切り替えることや、ユーザ指示等の外部からの指示によって切り替えることができる。
また、以上においては、通常時と注目時の2つの状態を切り替える例を説明したが、状態の数は任意であり、例えば、通常時、やや注目時、注目時、非常に注目時等のように、3つ以上の状態を切り替えることができる。但し、この切り替える状態の上限数は、スケーラブル符号化データのレイヤ数に依存する。
また、撮像装置3201は、スケーラブル符号化のレイヤ数を、状態に応じて決定することができる。例えば、通常時の場合、撮像装置3201は、低品質でデータ量の少ないベースレイヤのスケーラブル符号化データ(BL)3222を生成し、スケーラブル符号化データ記憶装置3202に供給することができる。また、例えば、注目時の場合、撮像装置3201は、高品質でデータ量の多いベースレイヤ及びノンベースレイヤのスケーラブル符号化データ(BL+EL)3221を生成し、スケーラブル符号化データ記憶装置3202に供給することができる。
なお、撮像システム3200の用途は任意であり、監視カメラに限定されない。
なお、本明細書では、予測モード情報及びマージ情報などの様々な情報が、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ストリームに多重化されることなく、符号化ストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、符号化ストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又は符号化ストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又は符号化ストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又は符号化ストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本技術の好適な実施の形態について詳細に説明したが、本発明はかかる例に限定されない。本技術の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本技術の技術的範囲に属するものと了解される。