以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(多視点画像符号化・多視点画像復号装置)
4.第4の実施の形態(階層画像符号化・階層画像復号装置)
5.第5の実施の形態(コンピュータ)
6.第6の実施の形態(応用例)
<1.第1の実施の形態>
[画像符号化装置の構成例]
図1は、本開示を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
図1に示される画像符号化装置100は、予測処理を用いて画像データを符号化する。ここで、符号化方式としては、例えば、H.264及びMPEG(Moving Picture Experts Group)4 Part10(AVC(Advanced Video Coding))(以下H.264/AVCと称する)方式や、HEVC(High Efficiency Video Coding)方式などが用いられる。
図1の例において、画像符号化装置100は、A/D(Analog / Digital)変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、デブロックフィルタ111、フレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、予測画像選択部116、およびレート制御部117を有する。
画像符号化装置100は、さらに、適応オフセット部121および適応ループフィルタ122を有する。
A/D変換部101は、入力された画像データをA/D変換し、画面並べ替えバッファ102に出力し、記憶させる。
画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)構造に応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、イントラ予測部114および動き予測・補償部115にも供給する。
演算部103は、画面並べ替えバッファ102から読み出された画像から、予測画像選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。
例えば、イントラ符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、イントラ予測部114から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、動き予測・補償部115から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104が出力する変換係数を量子化する。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、その量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施す。
可逆符号化部106は、イントラ予測モードを示す情報などのパラメータをイントラ予測部114から取得し、インター予測モードを示す情報や動きベクトル情報などのパラメータを動き予測・補償部115から取得する。可逆符号化部106は、適応オフセットフィルタのパラメータを、適応オフセット部121から取得し、適応ループフィルタのパラメータを適応ループフィルタ122から取得する。
可逆符号化部106は、量子化された変換係数を符号化するとともに、取得した各パラメータ(シンタクス要素)を符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
例えば、可逆符号化部106においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、CAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。CABACは、周囲の状況(コンテキスト(Context)に応じて適応的に符号化を行う2値化の算術符号方式である。
上述した、復号側に送るパラメータのうち、スライスまたはピクチャ単位で符号化処理をコントロールするパラメータは、可変長符号化や固定長符号化レベルの伝送ではデータが膨大となるため、算術符号化(CABAC)して圧縮して伝送することが望ましい。これに対して、if文などのパラメータは、可変長符号化や固定長符号化されることが望ましい。
可逆符号化部106は、パラメータのうち、算術符号化が必要なパラメータに対しては、算術符号化を行い、それ以外のパラメータに対しては可変長符号化や固定長符号化を行う。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持し、所定のタイミングにおいて、符号化された符号化画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109より供給された逆直交変換結果、すなわち、復元された差分情報に、予測画像選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。
例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部110は、その差分情報にイントラ予測部114から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部110は、その差分情報に動き予測・補償部115から供給される予測画像を加算する。
その加算結果は、デブロックフィルタ111およびフレームメモリ112に供給される。
デブロックフィルタ111は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。デブロックフィルタ111は、そのフィルタ処理結果を適応オフセット部121に供給する。
フレームメモリ112は、所定のタイミングにおいて、蓄積されている参照画像を、選択部113を介してイントラ予測部114または動き予測・補償部115に出力する。
例えば、イントラ符号化が行われる画像の場合、フレームメモリ112は、参照画像を、選択部113を介してイントラ予測部114に供給する。また、例えば、インター符号化が行われる場合、フレームメモリ112は、参照画像を、選択部113を介して動き予測・補償部115に供給する。
選択部113は、フレームメモリ112から供給される参照画像がイントラ符号化を行う画像である場合、その参照画像をイントラ予測部114に供給する。また、選択部113は、フレームメモリ112から供給される参照画像がインター符号化を行う画像である場合、その参照画像を動き予測・補償部115に供給する。
イントラ予測部114は、画面内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部114は、複数のモード(イントラ予測モード)によりイントラ予測を行う。
イントラ予測部114は、全てのイントラ予測モードで予測画像を生成し、各予測画像を評価し、最適なモードを選択する。イントラ予測部114は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部116を介して演算部103や演算部110に供給する。
また、上述したように、イントラ予測部114は、採用したイントラ予測モードを示すイントラ予測モード情報等のパラメータを、適宜可逆符号化部106に供給する。
動き予測・補償部115は、インター符号化が行われる画像について、画面並べ替えバッファ102から供給される入力画像と、選択部113を介してフレームメモリ112から供給される参照画像とを用いて、動き予測を行い、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。
動き予測・補償部115は、候補となる全てのインター予測モードのインター予測処理を行い、予測画像を生成する。動き予測・補償部115は、生成された予測画像を、予測画像選択部116を介して演算部103や演算部110に供給する。
また、動き予測・補償部115は、採用されたインター予測モードを示すインター予測モード情報や、算出した動きベクトルを示す動きベクトル情報などのパラメータを可逆符号化部106に供給する。
予測画像選択部116は、イントラ符号化を行う画像の場合、イントラ予測部114の出力を演算部103や演算部110に供給し、インター符号化を行う画像の場合、動き予測・補償部115の出力を演算部103や演算部110に供給する。
レート制御部117は、蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
適応オフセット部121は、デブロックフィルタ111からの復号画像(ローカルデコード後のベースバンド情報)に対するオフセットフィルタ処理を行う。すなわち、適応オフセット部121は、復号画像を用いて、quad-treeによる領域分割を行い、分割された領域毎に、オフセットの種類を決定することで、quad-tree 構造を決定する。オフセットの種類は、バンドオフセット2種類、エッジオフセット6種類、オフセットなしの計9種類がある。適応オフセット部121は、quad-tree 構造を参照して、分割された領域毎に、オフセット値を算出する。
適応オフセット部121は、決定したquad-tree構造とオフセット値を用いて、デブロックフィルタ111からの復号画像に対してオフセット処理を行う。そして、適応オフセット部121は、オフセット処理後の画像を、適応ループフィルタ122に供給する。また、適応オフセット部121は、決定したquad-tree構造と、算出したオフセット値を、適応オフセットフィルタのパラメータとして、可逆符号化部106に供給する。
適応ループフィルタ122は、画面並べ替えバッファ102からの原画像との残差を最小とするよう、適応ループフィルタ係数の算出を行い、この適応ループフィルタ係数を用いて、適応オフセット部121からの復号画像にフィルタ処理を行う。このフィルタとして、例えば、ウィナーフィルタ(Wiener Filter)が用いられる。適応ループフィルタ122は、フィルタ後の画像を、フレームメモリ112に供給する。
また、適応ループフィルタ122は、算出した適応ループフィルタ係数を、適応ループフィルタのパラメータとして、可逆符号化部106に送る。
[可逆符号化部の構成例]
次に、画像符号化装置100の各部について説明する。図2は、可逆符号化部106の構成例を示すブロック図である。
図2の例において、可逆符号化部106は、VLC(Variable Length Coding)符号化部131、符号化制御部132、設定部133、およびCABAC(Context-Adaptive Binary Arithmetic Coding)符号化部134を含むように構成される。
可逆符号化部106を構成する各部のうち、VLC符号化部131、符号化制御部132、および設定部133は、図示せぬCPUなどにより実行されることで、ファームウエア141として実現される。可逆符号化部106を構成する各部のうち、比較的重い処理を行うCABAC符号化部134は、ロジックを組むことなどにより、ハードウエア142として実現される。
VLC符号化部131には、量子化部105からの変換係数が供給される。VLC符号化部131には、イントラ予測部114、動き予測・補償部115、適応オフセット部121、および適応ループフィルタ122などから符号化処理をコントロールするパラメータが供給される。
例えば、イントラ予測部114は、イントラ予測モードを示す情報などのイントラ予測に関するパラメータをVLC符号化部131に供給する。例えば、動き予測・補償部115は、インター予測モードを示す情報、動きベクトル情報、参照フレーム情報、およびフラグ情報などの動き予測に関するパラメータをVLC符号化部131に供給する。
例えば、適応オフセット部121は、quad-tree構造やオフセット値などの適応オフセットフィルタに関するパラメータをVLC符号化部131に供給する。例えば、適応ループフィルタ122は、適応ループフィルタ係数などの適応ループフィルタに関するパラメータをVLC符号化部131に供給する。なお、図示は省略されているが、量子化部105からの量子化パラメータなども供給される。
これらのパラメータのうち、適応オフセットフィルタに関するパラメータや、適応ループフィルタに関するパラメータは、両者ともフィルタのパラメータである。また、これらのパラメータは、画面全体に適用するようなパラメータ、すなわち、スライスまたはピクチャ単位で符号化処理を制御するパラメータである。このようなパラメータは、算術符号化したほうが復号側に送るデータ量が小さくなる。
そこで、VLC符号化部131は、供給されるパラメータのうち、スライスまたはピクチャ単位で符号化処理を制御するパラメータ以外のパラメータに対して、可変長符号化、または固定長符号化処理を行う。VLC符号化部131は、符号化したデータを、設定部133に供給する。
VLC符号化部131は、量子化部105からの量子化された変換係数をCABAC符号化部134に供給する。VLC符号化部131は、供給されるパラメータのうち、スライスまたはピクチャ単位で符号化処理を制御するパラメータをCABAC符号化部134に供給し、その旨を符号化制御部132に通知する。VLC符号化部131は、CABAC符号化部134の初期化に必要なパラメータが揃ったとき、それらのパラメータをCABAC符号化部134に供給し、その旨を符号化制御部132に通知する。
符号化制御部132は、VLC符号化部131からの通知に対応して、CABAC符号化部134に初期化処理や符号化処理を開始させる。符号化制御部132は、CABAC符号化部134からの通知に対応して、VLC符号化部131に符号化処理を開始させたり、設定部133に設定を開始させる。
設定部133は、符号化制御部132の制御のもと、VLC符号化部131またはCABAC符号化部134により符号化されたパラメータ、CABAC符号化部134により符号化されたデータを、所定の順番に並べて配置し、スライスヘッダおよびスライスデータを生成する。設定部133は、生成したスライスヘッダおよびスライスデータを、蓄積バッファ107に供給する。
CABAC符号化部134は、符号化制御部132の制御のもと、VLC符号化部131からの初期化に必要なパラメータを用いて初期化する。CABAC符号化部134は、符号化制御部132の制御のもと、VLC符号化部131からの量子化された変換係数、および各パラメータを算術符号化する。CABAC符号化部134は、算術符号化されたデータ(変換係数)およびパラメータを設定部133に供給する。
[従来のストリーム構成]
図3は、従来のストリームのうち、スライスヘッダとスライスデータの一部の構成例を示す図である。
図3の例においては、スライスヘッダのトップ辺りには、スライスのタイプを示すslice_typeが配置されている。スライスヘッダの中央より少し下部には、slice_qp_deltaが配置されている。slice_typeとslice_qp_deltaは、可変長または固定長符号化または復号が施される、CABACの初期化に必要なパラメータ(以下、適宜、初期化パラメータとも称する)である。
スライスヘッダの中央下部におけるslice_qp_deltaの直後には、適応オフセットフィルタのパラメータであるsao_param()が配置されている。スライスヘッダのエンドには、適応ループフィルタのパラメータであるalf_cu_control_param()が配置されている。スライスデータは、そのalf_cu_control_param()の後、スライスヘッダのエンドの後に続いている。
適応オフセットフィルタのパラメータであるsao_param()と、適応ループフィルタのパラメータalf_cu_control_param()は、画面全体においてオンまたはオフを制御するパラメータである。このように、スライスまたはピクチャ単位で符号化処理を制御するパラメータは、データが大きいため、このようなパラメータには、算術符号化および算術復号が施される。
また、H.264/AVC方式においては、スライスヘッダにおいて算術符号化および算術復号が施されるパラメータが存在しなかったので、スライスデータの前に、CABACの初期化が行われていればよかった。
これに対して、HEVC方式においては、上述したパラメータに算術符号化および算術復号が行われるので、スライスヘッダにおけるこれらのパラメータの前に、CABACの初期化が行われていなければならない。しかしながら、そのCABACの初期化に必要な初期化パラメータのうち、slice_typeは、スライスヘッダのトップ辺りに配置されているが、slice_qp_deltaは、適応オフセットフィルタのパラメータであるsao_param()の直前に配置されている。したがって、少なくとも復号側においては、slice_qp_deltaが復号されなければ、CABACの初期化を行うことが困難であり、従来においては、sao_param()の直前にCABACの初期化が行われることとなる。
CABACの初期化が行われている間は、算術符号化および算術復号を行うことができないので、算術符号化および算術復号の処理に待ちが発生してしまう。また、算術符号化が必要な、適応オフセットフィルタのパラメータであるsao_param()と、適応ループフィルタのパラメータalf_cu_control_param()は、スライスヘッダにおいて離れた位置に存在することから、算術符号化および算術復号のためのやり取りが分散されてしまう。その結果、処理にディレイが生じることがある。
そこで、設定部133は、矢印1に示されるように、CABACの初期化に必要なslice_qp_deltaを、スライスヘッダのトップ辺りにあるSlice_typeの後に配置する。
また、設定部133は、矢印2に示されるように、適応オフセットフィルタのパラメータであるsao_param()を、適応ループフィルタのパラメータalf_cu_control_param()が配置されているスライスヘッダのエンドに配置する。
[本技術のストリーム構成例]
図4は、本技術のストリームのうち、スライスヘッダとスライスデータの一部の構成例を示す図である。図4の例において、斜線のハッチは、図3を参照して上述した従来との差異を表している。
図4の例においては、スライスヘッダのトップ辺りには、slice_typeと、図3の例においてスライスヘッダの中央下部にあったslice_qp_deltaが並んで(まとめて)配置されている。
これにより、スライスヘッダのトップ以降、CABACの初期化パラメータである、slice_typeとslice_qp_deltaが揃ったところで、どこでも、CABACの初期化を行うことができる。その結果、パラメータの算術符号化および算術復号を初期化により待たせることがない。
また、スライスヘッダのエンドには、適応ループフィルタのパラメータであるalf_cu_control_param()と、図3の例においてスライスヘッダの中央部にあった適応オフセットフィルタのパラメータであるsao_param()が並んで配置されている。
これにより、算術符号化および算術復号が必要なパラメータが、スライスデータの前、スライスヘッダのエンドにまとめて配置される。その結果、スライスヘッダのエンドからスライスデータにかけて、算術符号化および算術復号の処理をまとめて効率的に行うことができる。
なお、以下、実施例において、算術符号化が必要なパラメータ、すなわち、算術符号化(復号)する符号化パラメータを、算術符号化パラメータと称する。これに対して、可変長符号化(復号)または固定長符号化(復号)するパラメータを、単に、符号化パラメータと称する。また、図4の例においては、算術符号化および算術復号が必要である算術符号化パラメータを、スライスヘッダのエンドに配置する例を示したが、図5に示すように、スライスデータのトップに配置するようにしてもよい。
[本技術のストリーム構成の他の例]
図5は、本技術のストリームのうち、スライスヘッダとスライスデータの一部の他の構成例を示す図である。図5の例において、斜線のハッチは、図3を参照して上述した従来との差異を表している。
図5の例においては、スライスヘッダのトップ辺りには、slice_typeが配置されている。また、スライスヘッダの中央部には、cabac_init_idcと、図3の例においてスライスヘッダの中央下部にあったslice_qp_deltaが並んで配置されている。
cabac_init_idcは、H.264/AVC方式においてcabacのテーブルの設定に用いられたが、現在のところ、HEVC方式においてはその使用が決まっていない。用いられる場合には、cabac_init_idc とまとめるために、slice_qp_deltaを、図5のように、cabac_init_idcの直後においてもよい。また、cabac_init_idcも、slice_qp_deltaと一緒に、図4のslice_typeの直後におくようにしてもよい。
この場合も、slice_type、slice_qp_delta、cabac_init_idcが揃ったところで、どこでも、CABACの初期化を行うことができる。その結果、算術符号化パラメータの算術符号化および算術復号を初期化により待たせることがない。
図5の例においては、スライスヘッダのエンドではなく、スライスデータのトップに、適応ループフィルタのパラメータであるalf_cu_control_param()と、適応オフセットフィルタのパラメータであるsao_param()が並んで配置されている。alf_cu_control_param()およびsao_param()はどちらも算術符号化パラメータである。
これにより、算術符号化および算術復号が必要な算術符号化パラメータが、スライスデータ内、データそのものの直前にまとめて配置されるので、両者の算術符号化パラメータから、データそのものにかけて、算術符号化および算術復号の処理をまとめて効率的に行うことができる。
なお、図4および図5の例においては、適応ループフィルタのパラメータであるalf_cu_control_param()の直後に、適応オフセットフィルタのパラメータであるsao_param()を配置する例を示したが、それに限定されない。すなわち、スライスヘッダのエンドまたはスライスデータのトップであれば、算術符号化パラメータ同士の順番はどちらでもよい。したがって、適応オフセットフィルタのパラメータであるsao_param()の直後に、適応ループフィルタのパラメータであるalf_cu_control_param()を配置させてもよい。
なお、図4および図5の例においては、算術符号化および算術復号が必要な算術符号化パラメータがスライスヘッダおよびスライスデータにまとめて配置される例を説明したが、符号化ストリームのシンタックスとして設定されていれば、算術符号化パラメータの配置場所は限定されない。
[本技術のストリーム構成の他の例]
図6は、本技術のストリームのうち、シンタックスの一部の構成例を示す図である。
図6に示されるシンタックスにおいては、可変長符号化または固定長符号化を行う符号化パラメータがまとめて配置されている。さらに、シンタックスにおいては、符号化パラメータの後に、適応オフセットフィルタのパラメータであるsao_param()、および適応ループフィルタのパラメータであるalf_cu_control_param()からなる算術符号化パラメータがまとめて配置されている。
図6の場合も、算術符号化および算術復号が必要な算術符号化パラメータが、シンタックスの所定の位置にまとめて配置されるので、算術符号化および算術復号の処理をまとめて効率的に行うことができる。
なお、算術符号化および算術復号が必要な算術符号化パラメータは、適応オフセットフィルタのパラメータであるsao_param()、および適応ループフィルタのパラメータであるalf_cu_control_param()に限定されない。例えば、図7に示されるように、量子化マトリックスのパラメータであるqmatrix_param()も、算術符号化および算術復号が必要な算術符号化パラメータとして、適応オフセットフィルタのパラメータであるsao_param()、および適応ループフィルタのパラメータであるalf_cu_control_param()とまとめて配置するようにしてもよい。
また、各算術符号化パラメータの配置順は、図6および図7の例に限定されない。
ここで、算術符号化および算術復号が必要な算術符号化パラメータである、適応ループフィルタのパラメータ、適応オフセットフィルタのパラメータ、および量子化マトリックスのパラメータについて詳しく説明する。
まず、適応ループフィルタは、HEVC方式で用いられている符号化処理であり、AVC方式では採用されていない。復号側に送られる適応ループフィルタのパラメータは、2次元フィルタの係数とCU単位のOn/Offの制御信号であり、ピクチャ毎に更新され、そのサイズは、大きい。
適応ループフィルタは、最も符号化画像が原画像に近づくような2次元フィルタを伝送し、フィルタ処理することで符号化効率を高めるものである。しかしながら、パラメータセットが非常に大きいため、符号量の多いIピクチャでは、パラメータを送る。これに対して、符号量の小さいBピクチャでは、パラメータを伝送するオーバーヘッドに見合うだけのゲインが得られない場合があるので、この場合については、パラメータは送られない。
このように、適応ループフィルタのパラメータは、各ピクチャの符号量に応じて切り替わり、ピクチャ毎に値が変わるものである。また、適応ループフィルタのパラメータは、その値自体が絵柄に依存するため、同じ値が繰り返し使用される頻度が低い。
次に、適応オフセットフィルタは、適応ループフィルタと同様に、HEVC方式で用いられている符号化処理であり、AVC方式では採用されていない。復号側に送られる適応オフセットフィルタのパラメータは、オフセットの種類とピクチャをある単位で分割したときのOn/Offの制御信号であり、ピクチャ毎に更新され、そのサイズは、比較的大きい。
適応オフセットフィルタは、あるピクセル値に対してオフセットをつけるものである。適応オフセットフィルタは、適応ループフィルタと比較すると、パラメータのサイズが小さいため、比較的、ピクチャ毎に伝送することが可能である。
ただし、絵柄に対して、オフセットが変わりにくい性質があるので、適応オフセットフィルタのパラメータは、算術符号化する必要がある。各ピクチャで似たようなパラメータとなる可能性があるので、以前のパラメータを使いまわすことが可能なパラメータといえる。
さらに、量子化マトリックスは、AVC方式から採用されているものであるが、ブロックサイズが大きくなると、サイズが大きくなってしまう。復号側に送られる量子化マトリックスのパラメータは、ピクチャ単位の量子化マトリックスであり、ピクチャ毎、ピクチャタイプ毎、またはGOP毎に更新され、そのサイズは大きい。
量子化マトリックスは、絵柄が変わらなければ、変更する必要がない可能性が高い。また、量子化マトリックスのパラメータは、サイズが大きいが、送らないという選択肢はない。
なお、量子化マトリックスのパラメータは、Iピクチャ、Bピクチャ、Pピクチャで別々な値を使いまわすような場合もある。その場合、量子化マトリックスのパラメータは、適応ループフィルタや適応オフセットフィルタなど、ピクチャ毎に変更されるパラメータと組み合わせると相性が悪いという特徴がある。
以上のように、適応ループフィルタのパラメータ、適応オフセットフィルタのパラメータ、および量子化マトリックスのパラメータは、それぞれ特徴があるが、どれも、サイズが大きく、ピクチャ毎などに送られるため、算術符号化する必要がある。
[従来の処理のタイミングチャート]
図8は、図3を参照して上述した従来のストリームを処理する場合のタイミングチャートを示す図である。図8の例においては、例えば、復号処理する例が示されている。なお、復号側においても、符号化側と同様に、復号処理は、ファームウエアとハードウエアの処理に分かれる。左が、FW(ファームウエア)の可変長、固定長復号処理を表し、右が、HW(ハードウエア)の算術復号の処理を表している。
まず、スライスヘッダのトップ辺りにおいて、ファームウエアは、符号化パラメータであって、初期化パラメータであるslice_typeを可変長(または固定長)復号し、以降、他の符号化パラメータも可変長(または固定長)復号する。そして、ファームウエアが、符号化パラメータであって、初期化パラメータであるslice_qp_deltaを復号したところで、ようやく、CABACの初期化に必要な初期化パラメータであるslice_typeおよびslice_qp_deltaが揃うので、CABACのハードウエアは初期化される。
初期化の終了を待ち、この初期化が終わったところで、算術符号化パラメータであり、適応オフセットフィルタのパラメータであるsao_param()が配置されているので、ファームウエアは、ハードウエアにsao_param()の算術復号を行わせる。ハードウエアは、算術復号が終わったところで、復号済みのsao_param()を、ファームウエアに返す。
その後、ファームウエアは、スライスヘッダのエンドのalf_cu_control_param()の直前まで、他の符号化パラメータの可変長(または固定長)復号を行う。スライスヘッダのエンドに、算術符号化パラメータであり、適応ループフィルタのパラメータであるalf_cu_control_param()が配置されているので、ファームウエアは、ハードウエアにalf_cu_control_param()の算術復号を行わせる。ハードウエアは、算術復号が終わったところで、復号済みのalf_cu_control_param()を、ファームウエアに返す。
そして、次に、スライスデータの復号になるので、ファームウエアは、ハードウエアにスライスデータの算術復号を行わせる。
このように、従来の場合、ファームウエアとハードウエアのやり取りが分散されており、さらに、初期化による待ち時間が発生していた。ファームウエアとハードウエアのやり取りには、データの受け渡しなど、調整などが必要であり、符号化および復号の処理の効率がよくなかった。
[本技術の処理のタイミングチャート]
図9は、図4を参照して上述した本技術のストリームを処理する場合のタイミングチャートを示す図である。図9の例においては、例えば、復号処理する例が示されている。図15を参照して後述するが、復号側においても、復号処理は、ファームウエアとハードウエアの処理に分かれる。左が、FW(ファームウエア)の可変長、固定長復号処理を表し、右が、HW(ハードウエア)の算術復号の処理を表している。
まず、スライスヘッダのトップ辺りにおいて、ファームウエアは、初期化パラメータであるslice_typeを可変長(または固定長)復号し、ついで、初期化パラメータであるslice_qp_deltaを復号する。ここで、符号化パラメータであって、CABACの初期化に必要な初期化パラメータであるslice_typeおよびslice_qp_deltaが揃うので、これ以降、どこででも、CABACのハードウエアの初期化を行うことができる。例えば、図9の例においては、slice_typeおよびslice_qp_deltaが揃ったタイミングでCABACのハードウエアの初期化が行われる。
CABACのハードウエアの初期化後、スライスヘッダのエンドのalf_cu_control_param()の直前まで、ファームウエアは、他の符号化パラメータも可変長(または固定長)復号する。
スライスヘッダのエンドに、算術符号化パラメータであり、適応ループフィルタのパラメータであるalf_cu_control_param()と、算術符号化パラメータであり、適応オフセットフィルタのパラメータであるsao_param()が配置されている。ファームウエアは、ハードウエアにalf_cu_control_param()の算術復号を行わせる。ハードウエアは、算術復号が終わったところで、復号済みのalf_cu_control_param()を、ファームウエアに返す。
また、同様に、ファームウエアは、ハードウエアにsao_param()の算術復号を行わせる。ハードウエアは、算術復号が終わったところで、復号済みのsao_param()を、ファームウエアに返す。
そして、次に、スライスデータの復号になるので、ファームウエアは、ハードウエアにスライスデータの算術復号を行わせる。
以上のように、初期化の待ち時間がなくなり、ファームウエアとハードウエアのやり取りがまとめて行われるので、復号の処理の効率がよくなり、処理を高速化することができる。
なお、図9の例においては、復号の処理について説明したが、符号化処理についても同様な効果を得ることができる。また、図9の例においては、算術復号毎に、指令を出し、結果(復号済みパラメータ)をファームウエアに返す例を示したが、sao_param()とalf_cu_control_param()の指令と結果の返しを一度に行うようにしてもよい。
図10は、図6を参照して上述した本技術のストリームを処理する場合のタイミングチャートを示す図である。図10の例においては、例えば、復号処理する例が示されている。図15を参照して後述するが、復号側においても、復号処理は、ファームウエアとハードウエアの処理に分かれる。左が、FW(ファームウエア)の可変長、固定長復号処理を表し、右が、HW(ハードウエア)の算術復号の処理を表している。
図10の例の場合、図6のシンタックスにおいては、まず、可変長符号化または固定長符号化が行われている符号化パラメータがまとめて配置されているので、ファームウエアは、符号化パラメータを復号する。
次に、シンタックスには、算術符号化パラメータであり、適応ループフィルタのパラメータであるalf_cu_control_param()と、算術符号化パラメータであり、適応オフセットフィルタのパラメータであるsao_param()がまとめて配置されている。
したがって、ファームウエアによる符号化パラメータの復号が終わると、ファームウエアは、ハードウエアにalf_cu_control_param()の算術復号を行わせる。ハードウエアは、算術復号が終わったところで、復号済みのalf_cu_control_param()を、ファームウエアに返す。また、ファームウエアは、ハードウエアにsao_param()の算術復号を行わせる。ハードウエアは、算術復号が終わったところで、復号済みのsao_param()を、ファームウエアに返す。
すなわち、ハードウエアは、算術符号化パラメータの復号をまとめて行う。
図11は、図7を参照して上述した本技術のストリームを処理する場合のタイミングチャートを示す図である。図7に示されるシンタックスの場合も同様である。すなわち、図11の例の場合、図7のシンタックスにおいては、まず、可変長符号化または固定長符号化が行われている符号化パラメータがまとめて配置されているので、ファームウエアは、符号化パラメータを復号する。
次に、シンタックスには、適応ループフィルタのパラメータであるalf_cu_control_param()と、適応オフセットフィルタのパラメータであるsao_param()と、量子化マトリックスパラメータであるqmatrix_param()とがまとめて配置されている。alf_cu_control_param()、sao_param()、およびqmatrix_param()の、いずれのパラメータも、算術符号化パラメータである。
したがって、ファームウエアによる符号化パラメータの復号が終わると、ファームウエアは、ハードウエアにalf_cu_control_param()の算術復号を行わせる。ハードウエアは、算術復号が終わったところで、復号済みのalf_cu_control_param()を、ファームウエアに返す。また、ファームウエアは、ハードウエアにsao_param()の算術復号を行わせる。ハードウエアは、算術復号が終わったところで、復号済みのsao_param()を、ファームウエアに返す。さらに、ファームウエアは、ハードウエアに量子化マトリックスパラメータであるqmatrix_param()の算術復号を行わせる。ハードウエアは、算術復号が終わったところで、復号済みのqmatrix_param()を、ファームウエアに返す。
すなわち、ハードウエアは、算術符号化パラメータの復号をまとめて行う。
以上のように、図10および図11の例の場合も、シンタックスにおいてまとめて配置された符号化パラメータがまとめて可変長(固定長)復号処理される。同様に、シンタックスにおいてまとめて配置された算術符号化パラメータがまとめて算術復号処理される。したがって、ファームウエアとハードウエアのやり取りがまとめて行われるので、復号の処理の効率がよくなり、処理を高速化することができる。
ここで、算術符号化パラメータをまとめて(並べて)配置するとは、ファームウエア(FW)処理とハードウエア(HW)処理において、処理のやりとりがまとめて行われるように、算術符号化パラメータのシンタックスを配置することである。すなわち、算術符号化パラメータ(例えば、alf_cu_control_param()/sao_param())をまとめて(並べて)配置するとは、図6および図7などに示されているように、算術符号化または算術復号を行う算術符号化パラメータの間に、可変長(または固定長)符号化・復号を行う符号化パラメータが配置されていない状態を意味する。
同様に、可変長(または固定長)符号化・復号を行う符号化パラメータをまとめて(並べて)配置するとは、ファームウエア(FW)処理とハードウエア(HW)処理において、処理のやりとりがまとめて行われるように、可変長(または固定長)符号化・復号を行う符号化パラメータのシンタックスを配置することである。すなわち、符号化パラメータをまとめて(並べて)配置するとは、可変長(または固定長)符号化、または可変長(または固定長)復号を行う符号化パラメータの間に、算術符号化・復号を行う算術符号化パラメータが配置されていない状態を意味する。
これにより、符号化パラメータを符号化、復号する際に、算術符号化・復号と可変長(固定長)符号化・可変長(固定長)復号の処理が集約されるため、符号化処理・復号処理の遅延を短縮することができる。
[符号化処理全体の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図12のフローチャートを参照して、画像符号化装置100による符号化処理全体の流れの例を説明する。
ステップS101において、A/D変換部101は入力された画像をA/D変換する。ステップS102において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
画面並べ替えバッファ102から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ112から読み出され、選択部113を介してイントラ予測部114に供給される。
これらの画像に基づいて、ステップS103において、イントラ予測部114は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロックフィルタ111、適応オフセット部121、および適応ループフィルタ122によりフィルタされていない画素が用いられる。
この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部116に供給される。
画面並べ替えバッファ102から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ112から読み出され、選択部113を介して動き予測・補償部115に供給される。これらの画像に基づいて、ステップS104において、動き予測・補償部115は、動き予測・補償処理を行う。
この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出され、算出したコスト関数値に基づいて、最適インター予測モードが決定される。そして、最適インター予測モードにより生成された予測画像とそのコスト関数値が予測画像選択部116に供給される。
ステップS105において、予測画像選択部116は、イントラ予測部114および動き予測・補償部115より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部116は、決定した最適予測モードの予測画像を選択し、演算部103,110に供給する。この予測画像は、後述するステップS106,S111の演算に利用される。
なお、この予測画像の選択情報は、イントラ予測部114または動き予測・補償部115に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部114は、最適イントラ予測モードを示す情報(すなわち、イントラ予測に関するパラメータ)を、可逆符号化部106に供給する。
最適インター予測モードの予測画像が選択された場合、動き予測・補償部115は、最適インター予測モードを示す情報と、最適インター予測モードに応じた情報(すなわち、動き予測に関するパラメータ)を可逆符号化部106に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報や参照フレーム情報などがあげられる。
ステップS106において、演算部103は、ステップS102で並び替えられた画像と、ステップS105で選択された予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部115から、イントラ予測する場合はイントラ予測部114から、それぞれ予測画像選択部116を介して演算部103に供給される。
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS107において、直交変換部104は演算部103から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
ステップS108において、量子化部105は変換係数を量子化する。この量子化に際しては、後述するステップS118の処理で説明されるように、レートが制御される。
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS109において、逆量子化部108は、量子化部105により量子化された変換係数を量子化部105の特性に対応する特性で逆量子化する。ステップS110において、逆直交変換部109は、逆量子化部108により逆量子化された変換係数を直交変換部104の特性に対応する特性で逆直交変換する。
ステップS111において、演算部110は、予測画像選択部116を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された(すなわち、ローカルデコードされた)画像(演算部103への入力に対応する画像)を生成する。
ステップS112においてデブロックフィルタ111は、演算部110より出力された画像に対して、デブロックフィルタ処理を行う。これによりブロック歪みが除去される。デブロックフィルタ111からの復号画像は、適応オフセット部121に出力される。
ステップS113において、適応オフセット部121は、適応オフセット処理を行う。すなわち、適応オフセット部121は、デブロックフィルタ111からの復号画像を基に、quad-tree構造を決定し、quad-tree分割された領域のオフセット値を算出する。適応オフセット部121は、quad-tree分割された領域に対して、オフセットフィルタ処理を施し、オフセット後の画素値を適応ループフィルタ122に供給する。
適応オフセット部121は、quad-tree構造とオフセット値を、適応オフセットフィルタのパラメータとして、可逆符号化部106に供給する。
ステップS114において、適応ループフィルタ122は、適応フィルタ係数を算出し算出した適応フィルタ係数を用いて、オフセット処理後の画素値に対して、適応ループフィルタ処理を行う。適応フィルタ処理後の画素値は、フレームメモリ112に出力される。
適応ループフィルタ122は、算出した適応フィルタ係数を、適応ループフィルタのパラメータとして、可逆符号化部106に供給する。
ステップS115においてフレームメモリ112は、フィルタリングされた画像を記憶する。なお、フレームメモリ112には、デブロックフィルタ111、適応オフセット部121、および適応ループフィルタ122によりフィルタされていない画像も演算部110から供給され、記憶される。
一方、上述したステップS108において量子化された変換係数は、可逆符号化部106にも供給される。ステップS116において、可逆符号化部106は、量子化部105より出力された量子化された変換係数と、供給された各パラメータを符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。
この符号化処理の詳細は、図13を参照して後述するが、供給されたパラメータのうち、スライスまたはピクチャ単位で符号化処理を制御する算術符号化パラメータ以外の符号化パラメータは、可変長(または固定長)符号化され、所定の順でヘッダに付加される。一方、供給されたパラメータのうち、スライスまたはピクチャ単位で符号化処理を制御する算術符号化パラメータは、算術符号化され、スライスヘッダのエンドまたはスライスデータのトップに付加される。
ステップS117において蓄積バッファ107は、符号化された差分画像(すなわち、符号化ストリーム)を、圧縮画像として蓄積する。蓄積バッファ107に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
ステップS118においてレート制御部117は、蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
ステップS118の処理が終了すると、符号化処理が終了される。
[符号化処理の流れ]
次に、図13のフローチャートを参照して、図12のステップS116において実行される可逆符号化部106による符号化処理の流れの例を説明する。
画像符号化装置100の各部から、各種パラメータが、VLC符号化部131に供給される。例えば、イントラ予測部114は、イントラ予測モードを示す情報などのイントラ予測に関するパラメータをVLC符号化部131に供給する。例えば、動き予測・補償部115は、インター予測モードを示す情報、動きベクトル情報、参照フレーム情報、フラグ情報などの動き予測に関するパラメータをVLC符号化部131に供給する。
例えば、適応オフセット部121は、quad-tree構造やオフセット値などの適応オフセットフィルタに関するパラメータをVLC符号化部131に供給する。例えば、適応ループフィルタ122は、適応ループフィルタ係数などの適応ループフィルタに関するパラメータをVLC符号化部131に供給する。なお、図示は省略されているが、slice_typeやslice_qp_deltaも供給され、量子化部105からの量子化パラメータなども供給される。
また、量子化部105は、量子化された変換係数もVLC符号化部131に供給する。
VLC符号化部131は、ステップS131において、供給されたパラメータにおいて、CABACの初期化に必要な初期化パラメータであるslice_typeおよびslice_qp_deltaが揃うまで待機している。VLC符号化部131は、ステップS131において、slice_typeおよびslice_qp_deltaが揃ったと判定した場合、slice_typeおよびslice_qp_deltaのパラメータを、CABAC符号化部134に供給し、符号化制御部132にその通知を行う。
これに対応して、符号化制御部132は、ステップS132において、CABAC符号化部134に初期化を行わせる。CABAC符号化部134は、初期化を終了すると、それを、符号化制御部132に通知する。これ以降、どのタイミングでも、CABAC符号化を行うことができる。
ステップS133において、VLC符号化部131は、供給されたパラメータから、符号化対象のパラメータを取得する。VLC符号化部131は、ステップS134において、取得したパラメータが、適応オフセットフィルタのパラメータであるsao_param()または適応ループフィルタのパラメータalf_cu_control_param()であるか否かを判定する。すなわち、ステップS134においては、取得したパラメータが、算術符号化パラメータであるか否かが判定される。
ステップS134において、取得したパラメータが、適応オフセットフィルタのパラメータであるsao_param()および適応ループフィルタのパラメータalf_cu_control_param()(すなわち、算術符号化パラメータ)ではないと判定された場合、処理は、ステップS135に進む。
ステップS135において、VLC符号化部131は、ステップS133において取得したパラメータを、VLC符号化(可変長または固定長符号化)する。VLC符号化部131は、符号化した符号化パラメータを、設定部133に供給する。
ステップS134において、取得したパラメータが、適応オフセットフィルタのパラメータであるsao_param()または適応ループフィルタのパラメータalf_cu_control_param()(すなわち、算術符号化パラメータ)であると判定された場合、処理は、ステップS136に進む。VLC符号化部131は、ステップS133で取得したパラメータを、CABAC符号化部134に供給するとともに、符号化制御部132にその旨を通知する。
ステップS136において、CABAC符号化部134は、符号化制御部132の制御のもと、ステップS133で取得したパラメータを、CABAC符号化(算術符号化)する。すなわち、ここで算術符号化されるパラメータは、算術符号化パラメータであって、適応オフセットフィルタのパラメータsao_param()または適応ループフィルタのパラメータalf_cu_control_param()である。CABAC符号化部134は、符号化した算術符号化パラメータを、設定部133に供給するとともに、符号化の終了を、符号化制御部132に通知する。符号化制御部132は、VLC符号化部131に、終了を通知する。
ステップS137において、VLC符号化部131は、パラメータの符号化がすべて終了したか否かを判定し、まだ終了していないと判定した場合、処理は、ステップS133に戻り、それ以降の処理が繰り返される。
ステップS137において、パラメータの符号化がすべて終了したと判定された場合、処理は、ステップS138に進む。VLC符号化部131は、量子化部105からの変換係数を、CABAC符号化部134に供給するとともに、符号化制御部132にその旨を通知する。
ステップS138において、CABAC符号化部134は、符号化制御部132の制御のもと、データ(変換係数)をCABAC符号化(算術符号化)し、符号化したデータを、設定部133に供給するとともに、符号化の終了を、符号化制御部132に通知する。
設定部133には、VLC符号化部131により符号化された符号化パラメータ、CABAC符号化部134により符号化された算術符号化パラメータ、または、CABAC符号化部134により符号化されたデータが供給されている。ステップS139において、設定部133は、符号化されたパラメータおよび符号化されたデータを、図4または図5の順番に設定して、配置し、スライスヘッダおよびスライスデータを生成する。
設定部133は、生成したスライスヘッダおよびスライスデータを、蓄積バッファ107に供給する。ステップS139の処理の後、処理は、図12のステップS116に戻る。
以上のように、スライスまたはピクチャ単位で符号化処理を制御する算術符号化パラメータをスライスヘッダのエンドまたはスライスデータのトップに配置することにより、符号化処理を高速化することができる。
<2.第2の実施の形態>
[画像復号装置]
図14は、本開示を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。図14に示される画像復号装置200は、図1の画像符号化装置100に対応する復号装置である。
画像符号化装置100より符号化された符号化データは、所定の伝送路を介して、この画像符号化装置100に対応する画像復号装置200に伝送され、復号されるものとする。
図14に示されるように、画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、デブロックフィルタ206、画面並べ替えバッファ207、およびD/A変換部208を有する。また、画像復号装置200は、フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213を有する。
さらに、画像復号装置200は、適応オフセット部221および適応ループフィルタ222を有する。
蓄積バッファ201は、伝送されてきた符号化データを蓄積する。この符号化データは、画像符号化装置100により符号化されたものである。可逆復号部202は、蓄積バッファ201から所定のタイミングで読み出された符号化データを、図1の可逆符号化部106の符号化方式に対応する方式で復号する。可逆復号部202は、スライスヘッダおよびスライスデータの順に復号する。
すなわち、可逆復号部202は、符号化側からのパラメータのうち、スライスまたはピクチャ単位で復号処理をコントロールする算術符号化パラメータに対しては、算術符号化されているので、算術復号を行う。可逆復号部202は、それ以外の符号化パラメータに対しては可変長または固定長符号化されているので、可変長または固定長復号を行う。
可逆復号部202は、復号されたイントラ予測モードを示す情報などのパラメータをイントラ予測部211に供給し、インター予測モードを示す情報や動きベクトル情報などのパラメータを動き予測・補償部212に供給する。可逆復号部202は、適応オフセットフィルタのパラメータを、適応オフセット部221に供給し、適応ループフィルタのパラメータを適応ループフィルタ222に供給する。
逆量子化部203は、可逆復号部202により復号されて得られた係数データ(量子化係数)を、図1の量子化部105の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部203は、画像符号化装置100から供給された量子化パラメータを用いて、図1の逆量子化部108と同様の方法で量子化係数の逆量子化を行う。
逆量子化部203は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部204に供給する。逆直交変換部204は、図1の直交変換部104の直交変換方式に対応する方式で、その直交変換係数を逆直交変換し、画像符号化装置100において直交変換される前の残差データに対応する復号残差データを得る。
逆直交変換されて得られた復号残差データは、演算部205に供給される。また、演算部205には、選択部213を介して、イントラ予測部211若しくは動き予測・補償部212から予測画像が供給される。
演算部205は、その復号残差データと予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部205は、その復号画像データをデブロックフィルタ206に供給する。
デブロックフィルタ206は、画像符号化装置100のデブロックフィルタ111と基本的に同様に構成される。デブロックフィルタ206は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。デブロックフィルタ206は、そのフィルタ処理結果を、適応オフセット部221に供給する。
画面並べ替えバッファ207は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部208は、画面並べ替えバッファ207から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
デブロックフィルタ206の出力は、さらに、フレームメモリ209に供給される。
フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213は、画像符号化装置100のフレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、および予測画像選択部116にそれぞれ対応する。
選択部210は、インター処理される画像と参照される画像をフレームメモリ209から読み出し、動き予測・補償部212に供給する。また、選択部210は、イントラ予測に用いられる画像をフレームメモリ209から読み出し、イントラ予測部211に供給する。
イントラ予測部211には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部202から適宜供給される。イントラ予測部211は、この情報に基づいて、フレームメモリ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
動き予測・補償部212には、ヘッダ情報を復号して得られた情報(予測モード情報、動きベクトル情報、参照フレーム情報、フラグ、および各種パラメータ等)が可逆復号部202から供給される。
動き予測・補償部212は、可逆復号部202から供給されるそれらの情報に基づいて、フレームメモリ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
選択部213は、動き予測・補償部212またはイントラ予測部211により生成された予測画像を選択し、演算部205に供給する。
適応オフセット部221には、可逆復号部202からの適応オフセットパラメータであるquad-tree構造およびオフセット値が供給される。適応オフセット部221は、それらの情報を用いて、デブロックフィルタ206からの復号画像の画素値に対してオフセットフィルタ処理を行う。適応オフセット部221は、オフセット処理後の画像を、適応ループフィルタ222に供給する。
適応ループフィルタ222は、可逆復号部202から供給された適応ループフィルタのパラメータである適応フィルタ係数を用いて、適応オフセット部221からの復号画像にフィルタ処理を行う。このフィルタとして、例えば、ウィナーフィルタ(Wiener Filter)が用いられる。適応ループフィルタ222は、フィルタ後の画像を、画面並べ替えバッファ207およびフレームメモリ209に供給する。
[可逆復号部の構成例]
次に、画像復号装置200の各部について説明する。図15は、可逆復号部202の構成例を示すブロック図である。
図15の例において、可逆復号部202は、VLC(Variable Length Coding)復号部231、復号制御部232、取得部233、およびCABAC(Context-Adaptive Binary Arithmetic Coding)復号部234を含むように構成される。なお、取得部233は、VLC復号部231に内蔵されている。
可逆復号部202を構成する各部のうち、VLC復号部231、復号制御部232、および取得部233は、図示せぬCPUなどにより実行されることで、ファームウエア241として実現される。可逆復号部202を構成する各部のうち、比較的重い処理を行うCABAC復号部234は、ロジックを組むことなどにより、ハードウエア242として実現される。
VLC復号部231には、蓄積バッファ201から所定のタイミングで読み出された符号化データが供給される。
VLC復号部231には、取得部233が内蔵されている。取得部233は、符号化データから、復号対象の符号化されているパラメータを取得する。VLC復号部231は、取得部233により取得されたスライスまたはピクチャ単位で復号処理を制御する算術符号化パラメータ以外の符号化パラメータに対して、図2のVLC符号化部131の符号化に対応する、可変長復号または固定長復号処理を行う。
VLC復号部231は、取得部233により取得されたパラメータのうち、スライスまたはピクチャ単位で復号処理を制御する算術符号化パラメータをCABAC復号部234に供給し、その旨を復号制御部232に通知する。VLC復号部231は、符号化パラメータでもある、初期化パラメータをCABAC復号部234に供給し、その旨を復号制御部232に通知する。
VLC復号部231は、CABAC復号部234により算術復号されたパラメータを受け取る。VLC復号部231は、復号したパラメータおよびCABAC復号部234により算術復号されたパラメータを画像復号装置200の対応する各部に供給する。
例えば、予測モード情報がイントラ予測モード情報である場合、可変長復号または固定長復号された予測モード情報は、イントラ予測部211に供給される。予測モード情報がインター予測モード情報である場合、可変長復号または固定長復号された予測モード情報と対応する動きベクトル情報などは、動き予測・補償部212に供給される。
例えば、算術復号された適応オフセットフィルタに関するパラメータは、適応オフセット部221に供給される。算術復号された適応ループフィルタに関するパラメータは、適応ループフィルタ222に供給される。
復号制御部232は、VLC復号部231からの通知に対応して、CABAC復号部234に初期化処理や復号処理を開始させる。復号制御部232は、CABAC復号部234からの通知に対応して、VLC復号部231に復号処理を開始させる。
CABAC復号部234は、復号制御部232の制御のもと、VLC復号部231からの初期化に必要な初期化パラメータを用いて初期化する。CABAC復号部234は、復号制御部232の制御のもと、VLC復号部231からの符号化された算術符号化パラメータおよびデータ(変換係数)を、図2のCABAC符号化部134の算術符号化に対応する算術復号を行う。CABAC復号部234は、算術復号されたパラメータを、VLC復号部231に供給する。
CABAC復号部234は、算術復号されたデータ(量子化された直交変換係数)を、逆量子化部203に供給する。
[復号処理全体の流れ]
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図16のフローチャートを参照して、画像復号装置200の復号処理全体の流れの例を説明する。
復号処理が開始されると、ステップS201において、蓄積バッファ201は、伝送されてきた符号化データを蓄積する。ステップS202において、可逆復号部202は、蓄積バッファ201から供給される符号化データを復号する。この復号処理の詳細は、図17を参照して後述するが、図1の可逆符号化部106により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
ピクチャの復号に先立ち、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モード)、並びに、適応オフセットフィルタおよび適応ループフィルタのパラメータ等のパラメータの情報も復号される。このとき、スライスヘッダに付加されているパラメータのうち、スライスまたはピクチャ単位で符号化処理を制御する算術符号化パラメータ以外の符号化パラメータは、可変長(または固定長)復号される。一方、スライスヘッダのエンドまたはスライスデータのトップに付加されている、スライスまたはピクチャ単位で復号処理を制御する算術符号化パラメータは、算術復号される。スライスまたはピクチャ単位で復号処理を制御する算術符号化パラメータは、図2を参照して上述したように、適応オフセットフィルタに関するパラメータや、適応ループフィルタに関するパラメータなどである。
予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部211に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報などは、動き予測・補償部212に供給される。適応オフセットフィルタに関するパラメータは、適応オフセット部221に供給される。適応ループフィルタに関するパラメータは、適応ループフィルタ222に供給される。
ステップS203において、イントラ予測部211または動き予測・補償部212は、可逆復号部202から供給される予測モード情報に対応して、それぞれ、予測画像生成処理を行う。
すなわち、可逆復号部202からイントラ予測モード情報が供給された場合、イントラ予測部211は、Most Probable Modeの生成を行い、並列処理により、イントラ予測モードのイントラ予測画像を生成する。可逆復号部202からインター予測モード情報が供給された場合、動き予測・補償部212は、インター予測モードの動き予測・補償処理を行い、インター予測画像を生成する。
この処理により、イントラ予測部211により生成された予測画像(イントラ予測画像)、または動き予測・補償部212により生成された予測画像(インター予測画像)が選択部213に供給される。
ステップS204において、選択部213は予測画像を選択する。すなわち、イントラ予測部211により生成された予測画像、または動き予測・補償部212により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部205に供給され、後述するステップS207において逆直交変換部204の出力と加算される。
上述したステップS202において、可逆復号部202により復号された変換係数は、逆量子化部203にも供給される。ステップS205において、逆量子化部203は可逆復号部202により復号された変換係数を、図1の量子化部105の特性に対応する特性で逆量子化する。
ステップS206において逆直交変換部109は、逆量子化部108により逆量子化された変換係数を、図1の直交変換部104の特性に対応する特性で逆直交変換する。これにより図1の直交変換部104の入力(演算部103の出力)に対応する差分情報が復号されたことになる。
ステップS207において、演算部205は、上述したステップS204の処理で選択され、選択部213を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップS208においてデブロックフィルタ206は、演算部110より出力された画像に対して、デブロックフィルタ処理を行う。これにより、画面全体におけるブロック歪みが除去される。フィルタ後の画像は、適応オフセット部221に供給される。
ステップS209において、適応オフセット部221は、適応オフセット処理を行う。この処理により、可逆復号部202からの適応オフセットフィルタのパラメータであるquad-tree構造およびオフセット値が用いられて、デブロック後の画像にオフセットフィルタ処理が施される。オフセット後の画素値は、適応ループフィルタ222に供給される。
ステップS210において、適応ループフィルタ222は、可逆復号部202からの適応ループフィルタのパラメータである適応フィルタ係数を用いて、オフセット処理後の画素値に対して、適応ループフィルタ処理を行う。適応フィルタ処理後の画素値は、画面並べ替えバッファ207およびフレームメモリ209に出力される。
ステップS211においてフレームメモリ209は、適応フィルタリングされた画像を記憶する。
ステップS212において、画面並べ替えバッファ207は、適応ループフィルタ222後の画像の並べ替えを行う。すなわち画像符号化装置100の画面並べ替えバッファ102により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS213において、D/A変換部208は、画面並べ替えバッファ207からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
ステップS213の処理が終了すると、復号処理が終了される。
[復号処理の流れ]
次に、図17のフローチャートを参照して、図16のステップS202において実行される可逆復号部202による復号処理の流れの例を説明する。
蓄積バッファ201から所定のタイミングで読み出された符号化データが、VLC復号部231に供給される。符号化データのスライスヘッダおよびスライスデータは、上述した図4または図5のように構成されている。
ステップS231において、VLC復号部231の取得部233は、スライスヘッダから、復号対象の符号化されている符号化パラメータを取得する。VLC復号部231は、ステップS232において、取得部233により取得された符号化パラメータを、VLC復号する。
ステップS233において、VLC復号部231は、符号化パラメータであって、CABACの初期化に必要な初期化パラメータであるslice_typeおよびslice_qp_deltaが揃ったか否かを判定する。例えば、図4のように、スライスヘッダが構成されていれば、トップ辺りで、slice_typeおよびslice_qp_deltaの復号が終わり、slice_typeおよびslice_qp_deltaが揃う。
ステップS233において、slice_typeおよびslice_qp_deltaが揃ってないと判定された場合、処理は、ステップS231に戻り、それ以降の処理が繰り返される。ステップS233において、slice_typeおよびslice_qp_deltaが揃ったと判定された場合、slice_typeおよびslice_qp_deltaのパラメータを、CABAC復号部234に供給し、復号制御部232にその通知を行う。
これに対応して、復号制御部232は、ステップS234において、CABAC復号部234に初期化を行わせる。CABAC復号部234は、初期化を終了すると、それを、復号制御部232に通知する。これ以降、どのタイミングでも、CABAC復号を行うことができる。
ステップS235において、さらに、取得部233は、スライスヘッダから、復号対象の符号化されているパラメータを取得する。VLC復号部231は、ステップS236において、取得部233により取得されたパラメータが、適応オフセットフィルタのパラメータであるsao_param()または適応ループフィルタのパラメータalf_cu_control_param()(すなわち、算術符号化パラメータ)であるか否かを判定する。適応オフセットフィルタのパラメータであるsao_param()または適応ループフィルタのパラメータalf_cu_control_param()は、スライスヘッダのエンドかスライスデータのトップに設定されている。したがって、取得部233がこれらのパラメータを取得するのは、スライスヘッダのエンドかスライスデータのトップからである。
ステップS236において、取得したパラメータが、適応オフセットフィルタのパラメータであるsao_param()および適応ループフィルタのパラメータalf_cu_control_param()(すなわち、算術符号化パラメータ)ではないと判定された場合、処理は、ステップS237に進む。
ステップS237において、VLC復号部231は、ステップS235において取得したパラメータを、VLC復号(可変長または固定長復号)する。
ステップS236において、取得したパラメータが、適応オフセットフィルタのパラメータであるsao_param()または適応ループフィルタのパラメータalf_cu_control_param()(すなわち、算術符号化パラメータ)であると判定された場合、処理は、ステップS238に進む。VLC復号部231は、ステップS235で取得したパラメータを、CABAC復号部234に供給するとともに、復号制御部232にその旨を通知する。
ステップS238において、CABAC復号部234は、復号制御部232の制御のもと、ステップS235で取得したパラメータを、CABAC復号(算術復号)する。すなわち、ここで算術復号されるパラメータは、算術符号化パラメータであって、適応オフセットフィルタのパラメータsao_param()または適応ループフィルタのパラメータalf_cu_control_param()である。CABAC復号部234は、復号したパラメータを、VLC復号部231に供給するとともに、復号の終了を、復号制御部232に通知する。復号制御部232は、VLC復号部231に、終了を通知する。
ステップS239において、VLC復号部231は、パラメータの復号がすべて終了したか否かを判定し、まだ終了していないと判定した場合、処理は、ステップS235に戻り、それ以降の処理が繰り返される。
ステップS239において、パラメータの復号がすべて終了したと判定された場合、処理は、ステップS240に進む。VLC復号部231は、蓄積バッファ201からの符号化されたデータである変換係数を、CABAC復号部234に供給するとともに、復号制御部232にその旨を通知する。
なお、復号されたパラメータは、VLC復号部231において蓄積され、変換係数の復号にも利用される。この復号されたパラメータは、パラメータの復号がすべて終わったこのときに、画像復号装置200の対応する各部へ供給されるようにしてもよいし、復号が終わったその都度、画像復号装置200の対応する各部へ供給されるようにしてもよい。
ステップS240において、CABAC復号部234は、復号制御部232の制御のもと、データ(変換係数)をCABAC復号(算術復号)し、復号したデータを、逆量子化部203に供給するとともに、復号の終了を、復号制御部232に通知する。ステップS240の処理の後、処理は、図16のステップS202に戻る。
なお、図17の例においては、ステップS236において、sao_param()またはalf_cu_control_param()であるか否かを判定するようにしたが、単に、算術符号化されているか、可変長(固定長)符号化されているか、符号化の種類で判定するようにしてもよい。
以上のように、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータをスライスヘッダのエンドまたはスライスデータのトップに配置することにより、復号処理を高速化することができる。
[シンタックスの例]
図18は、画像符号化装置100により生成されるスライスヘッダのシンタックスの例を示す図である。各行の左端の数字は説明のために付した行番号である。
図18のシンタックスにおいては、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータが、スライスデータのトップにまとめて配置されている例が示されている。
図18の例において、第4行目にslice_typeが設定されている。このslice_typeは、このスライスがIスライス、Pスライス、およびBスライスのうちのどのスライスであるかを示すものであり、上述したように、CABACの初期化に必要なパラメータである。
第25行目に、cabac_init_idcが設定されている。cabac_init_idc は、H.264/AVC方式においてcabacのテーブルの設定に用いられたが、現在のところ、HEVC方式においてはその使用が決まっていない。
第30行目にslice_qp_deltaが設定されている。このslice_qp_deltaは、上述したように、CABACの初期化に必要なパラメータである。
第31乃至第32行目にif(sample_adaptive_offset_enabled_flag)sao_param()として、sao_param()が設定されている。このsao_param()は、適応オフセットフィルタのパラメータである。すなわち、図18の例においては、このパラメータすべてではなく、このパラメータのうち、スライスまたはピクチャ単位で符号化処理または復号処理を制御するパラメータが、スライスデータのトップに配置が変更されている。その詳細については、図19および図20を参照して後述される。
第44行目にalf_param()が設定されている。従来の例においては、このalf_param()の後に、alf_cu_control_param()が設定されていたが、図18の例においては、スライスデータのトップに配置が移動されている。
なお、図18の例においては、sao_param()のうち、スライスまたはピクチャ単位で符号化処理を制御する算術符号化パラメータが、スライスデータのトップに配置が変更されている。したがって、第30行目にslice_qp_deltaがあっても、その直後に、スライスまたはピクチャ単位で符号化処理または復号処理を制御するパラメータがないので、第30行目のslice_qp_deltaは、あえて移動されていない。
図19は、画像符号化装置100により生成されるsao_param()のシンタックスの例を示す図である。各行の左端の数字は説明のために付した行番号である。
図19の例においては、第2行目のsample_adaptive_offset_flagは、適応オフセットフィルタを行うか否かのフラグである。従来は、このフラグの直後に、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータがあったが、図19の例においては、移動されている。
すなわち、図19のsao_param()のうち、if文はVLC符号化したほうがいいので、単に読むだけの、後述する図20の第6乃至第9行目のパラメータをスライスデータのトップに移動し、sample_adaptive_offset_flagはそのままの位置に設定されている。
図20は、画像符号化装置100により生成されるスライスデータのシンタックスの例を示す図である。各行の左端の数字は説明のために付した行番号である。
図20の例においては、第4および第5行目に、if(adaptive_loop_filter_enabled_flag) alf_cu_control_param()として、alf_cu_control_param()が設定されている。このalf_cu_control_param()は、適応ループフィルタのパラメータのうち、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータであり、スライスデータのトップに設定されている。
第6乃至第9行目に、if(sample_adaptive_offset_flag){sao_split_param(0,0,0) sao_offset_param(0,0,0)}として、sao_split_param(0,0,0) sao_offset_param(0,0,0)が設定されている。このパラメータが、適応オフセットフィルタのパラメータのうち、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータであり、スライスデータのトップに設定されている。
[シンタックスの他の例]
図21は、画像符号化装置100により生成されるスライスヘッダのシンタックスの他の例を示す図である。各行の左端の数字は説明のために付した行番号である。
図21のシンタックスにおいては、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータが、スライスヘッダのエンドにまとめて配置されている例が示されている。
図21の例において、第4行目にslice_typeが設定されている。このslice_typeは、このスライスがIスライス、Pスライス、およびBスライスのうちのどのスライスであるかを示すものであり、上述したように、CABACの初期化に必要なパラメータである。
第25行目に、cabac_init_idcが設定されている。cabac_init_idc は、H.264/AVC方式においてcabacのテーブルの設定に用いられたが、現在のところ、HEVC方式においてはその使用が決まっていない。
第30行目にslice_qp_deltaが設定されている。このslice_qp_deltaは、上述したように、CABACの初期化に必要なパラメータである。
第43行目に、alf_cu_control_param()が設定されている。このalf_cu_control_param()は、適応ループフィルタのパラメータのうち、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータであり、スライスヘッダのエンドに設定されている。
第45および第46行目にif(sample_adaptive_offset_enabled_flag)sao_param()として、sao_param()が設定されている。このsao_param()は、適応オフセットフィルタのパラメータであり、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータであり、スライスヘッダのエンドに設定されている。
なお、図21の例においては、sao_param()が、スライスヘッダのエンドに配置が変更されている。したがって、第30行目にslice_qp_deltaがあっても、その直後に、スライスまたはピクチャ単位で符号化処理または復号処理を制御するパラメータがないので、第30行目のslice_qp_deltaは、あえて移動されていない。
[シンタックスの他の例]
図22は、画像符号化装置100により生成されるスライスヘッダのシンタックスのさらに他の例を示す図である。各行の左端の数字は説明のために付した行番号である。
図22のシンタックスにおいては、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータが、スライスヘッダのエンドにまとめて配置されている例が示されている。また、図22のシンタックスにおいては、slice_qp_deltaの配置が移動され、CABACの初期化に必要なパラメータであるパラメータがまとめてヘッダのトップ付近にまとめて配置されている。
図22の例において、第4行目にslice_typeが設定されている。このslice_typeは、このスライスがIスライス、Pスライス、およびBスライスのうちのどのスライスであるかを示すものであり、上述したように、CABACの初期化に必要なパラメータである。
第5行目にslice_qp_deltaが設定されている。このslice_qp_deltaは、slice_typeと同様に、CABACの初期化に必要なパラメータである。
第25行目に、cabac_init_idcが設定されている。cabac_init_idc は、H.264/AVC方式においてcabacのテーブルの設定に用いられたが、現在のところ、HEVC方式においてはその使用が決まっていない。なお、用いられる場合には、cabac_init_idc とまとめるために、slice_qp_deltaを、上述した図5に示したように、cabac_init_idcの直後においてもよい。また、cabac_init_idcも、slice_qp_deltaと一緒にslice_typeの直後におくようにしてもよい。
第43行目に、alf_cu_control_param()が設定されている。このalf_cu_control_param()は、適応ループフィルタのパラメータのうち、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータであり、スライスヘッダのエンドに設定されている。
第45および第46行目にif(sample_adaptive_offset_enabled_flag)sao_param()として、sao_param()が設定されている。このsao_param()は、適応オフセットフィルタのパラメータであり、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータであり、スライスヘッダのエンドに設定されている。
なお、上述した図18乃至図20の例においては、sao_param()の一部だけがスライスデータのトップに配置されていた。alf_cu_control_param()の場合も、図18乃至図20の例と同じようにすることができる。
[シンタックスの他の例]
図23は、alf_cu_control_param()のシンタックスの例を示す図である。各行の左端の数字は説明のために付した行番号である。
図23の例においては、第7および第8行目に、for(i=0;i<NumAlfCuFlag;i++)alf_cu_flag[i]として、alf_cu_flag[i]が設定されている。alf_cu_control_param()においては、このalf_cu_flag[i]だけが、スライスまたはピクチャ単位で符号化処理または復号処理を制御する算術符号化パラメータである。
したがって、上述した図18の例においては、alf_cu_control_param()をスライスデータのトップに配置したが、alf_cu_control_param()全体ではなく、alf_cu_control_param()のうちのalf_cu_flag[i]だけをスライスデータのトップに配置してもよい。このように、alf_cu_control_param()のうち、他のif文などがあるパラメータについては、VLC符号化することもできる。もちろん、図18の例のように、alf_cu_control_param()をスライスデータのトップに配置したとしても、VLCとCABACを混在させてもいいし、すべてをスライスデータのトップに配置して、すべてをCABAC符号化するようにしてもよい。
なお、図18乃至図23の例においては、スライスデータのエンドまたはスライスヘッダのトップにおいて、適応ループフィルタのパラメータalf_cu_control_param()の次に、適応オフセットフィルタのパラメータsao_param()を配置するようにした。ただし、これらは、一例であり、スライスデータのエンドまたはスライスヘッダのトップであれば、適応ループフィルタのパラメータの前に、適応オフセットフィルタのパラメータを配置するようにしてもよい。
また、上記説明においては、スライスまたはピクチャ単位で符号化処理を制御する算術符号化パラメータとして、適応ループフィルタのパラメータalf_cu_control_param()と、適応オフセットフィルタのパラメータsao_param()を用いて説明したが、これらに限定されない。すなわち、本技術は、スライスまたはピクチャ単位で符号化処理または復号処理を制御するパラメータであって、算術符号化する算術符号化パラメータであれば、他のパラメータにも適用される。
このような算術符号化パラメータを、スライスヘッダのエンドやスライスデータのトップにまとめておくよることにより、処理の高速化を図ることができる。スライスまたはピクチャ単位で符号化処理または復号処理を制御する他の算術符号化パラメータとしては、例えば、量子化マトリックスなどのパラメータがあげられる。
以上においては、符号化方式としてH.264/AVC方式やHEVC方式をベースに用いるようにした。ただし、本開示はこれに限らず、動き予測・補償ループ内に適応オフセットフィルタおよび適応ループフィルタの少なくともどちらか一方を含む、その他の符号化方式/復号方式を適用することができる。
なお、本開示は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本開示は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
<3.第3の実施の形態>
[多視点画像符号化・多視点画像復号への適用]
上述した一連の処理は、多視点画像符号化・多視点画像復号に適用することができる。図24は、多視点画像符号化方式の一例を示す。
図24に示されるように、多視点画像は、複数の視点の画像を含み、その複数の視点のうちの所定の1つの視点の画像が、ベースビューの画像に指定されている。ベースビューの画像以外の各視点の画像は、ノンベースビューの画像として扱われる。
図24のような多視点画像符号化を行う場合、各ビュー(同一ビュー)において、算術符号化パラメータをまとめて配置することができる。また、各ビュー(異なるビュー)において、他のビューでまとめて配置された算術符号化パラメータを共有することもできる。
この場合、ベースビューにおいてまとめて配置された算術符号化パラメータが、少なくとも1つのノンベースビューで用いられる。あるいは、例えば、ノンベースビュー(view_id=0)においてまとめて配置された算術符号化パラメータが、ベースビューおよびノンベースビュー(view_id=1)の少なくともどちらか一方で用いられる。
さらに、各ビュー(同一ビュー)において、可変長(または固定長)符号化パラメータをまとめて配置することもできる。また、各ビュー(異なるビュー)において、他のビューでまとめて配置された可変長(または固定長)符号化パラメータを共有することもできる。
この場合、ベースビューにおいてまとめて配置された可変長(または固定長)符号化パラメータが、少なくとも1つのノンベースビューで用いられる。あるいは、例えば、ノンベースビュー(view_id=0)においてまとめて配置された可変長(または固定長)符号化パラメータが、ベースビューおよびノンベースビュー(view_id=1)の少なくともどちらか一方で用いられる。
これにより、算術符号化および算術復号の処理をまとめて効率的に行うことができる。また、可変長(固定長)符号化および可変長(固定長)復号の処理をまとめて効率的に行うことができる。
[多視点画像符号化装置]
図25は、上述した多視点画像符号化を行う多視点画像符号化装置を示す図である。図25に示されるように、多視点画像符号化装置600は、符号化部601、符号化部602、および多重化部603を有する。
符号化部601は、ベースビュー画像を符号化し、ベースビュー画像符号化ストリームを生成する。符号化部602は、ノンベースビュー画像を符号化し、ノンベースビュー画像符号化ストリームを生成する。多重化部603は、符号化部601において生成されたベースビュー画像符号化ストリームと、符号化部602において生成されたノンベースビュー画像符号化ストリームとを多重化し、多視点画像符号化ストリームを生成する。
この多視点画像符号化装置600の符号化部601および符号化部602に対して、画像符号化装置100(図1)を適用することができる。この場合、多視点画像符号化装置600は、符号化部601がまとめて配置した算術符号化パラメータと、符号化部602がまとめて配置した算術符号化パラメータとを設定して伝送させる。
なお、上述したように符号化部601がまとめて配置した算術符号化パラメータを、符号化部601および符号化部602で共有して用いるように設定して伝送させるようにしてもよい。逆に、符号化部602がまとめて配置した算術符号化パラメータを、符号化部601および符号化部602で共有して用いるように設定して伝送させるようにしてもよい。以上のことは、可変長(または固定長)符号化パラメータの場合も同様である。
[多視点画像復号装置]
図26は、上述した多視点画像復号を行う多視点画像復号装置を示す図である。図26に示されるように、多視点画像復号装置610は、逆多重化部611、復号部612、および復号部613を有する。
逆多重化部611は、ベースビュー画像符号化ストリームとノンベースビュー画像符号化ストリームとが多重化された多視点画像符号化ストリームを逆多重化し、ベースビュー画像符号化ストリームと、ノンベースビュー画像符号化ストリームとを抽出する。復号部612は、逆多重化部611により抽出されたベースビュー画像符号化ストリームを復号し、ベースビュー画像を得る。復号部613は、逆多重化部611により抽出されたノンベースビュー画像符号化ストリームを復号し、ノンベースビュー画像を得る。
この多視点画像復号装置610の復号部612および復号部613に対して、画像復号装置200(図14)を適用することができる。この場合、多視点画像復号装置610は、符号化部601がまとめて配置し、復号部612が復号した算術符号化パラメータと、符号化部602がまとめて配置し、復号部613が復号した算術符号化パラメータを用いて処理を行う。
なお、上述したように符号化部601(または、符号化602)がまとめて配置した算術符号化パラメータを、符号化部601および符号化部602で共有して用いるように設定して伝送されている場合がある。この場合、多視点画像復号装置610においては、符号化部601(または、符号化602)がまとめて配置し、復号部612(または復号部613)が復号した算術符号化パラメータを用いて処理が行われる。以上のことは、可変長(または固定長)符号化パラメータの場合も同様である。
<4.第4の実施の形態>
[階層画像符号化・階層画像復号への適用]
上述した一連の処理は、階層画像符号化・階層画像復号に適用することができる。図27は、階層画像符号化方式の一例を示す。
図27に示されるように、階層画像は、複数の階層(解像度)の画像を含み、その複数の解像度のうちの所定の1つの階層の画像が、ベースレイヤの画像に指定されている。ベースレイヤの画像以外の各階層の画像は、ノンベースレイヤの画像として扱われる。
図27のような階層画像符号化(空間スケーラビリティ)を行う場合、各レイヤ(同一レイヤ)において、算術符号化パラメータをまとめて配置することができる。また、各レイヤ(異なるレイヤ)において、他のレイヤででまとめて配置された算術符号化パラメータをまとめて配置することができる。
この場合、ベースレイヤにおいてまとめて配置された算術符号化パラメータが、少なくとも1つのノンベースレイヤで用いられる。あるいは、例えば、ノンベースレイヤ(layer _id=0)においてまとめて配置された算術符号化パラメータが、ベースレイヤおよびノンベースレイヤ(layer_id=1)の少なくともどちらか一方で用いられる。
さらに、各レイヤ(同一レイヤ)において、可変長(または固定長)符号化パラメータをまとめて配置することもできる。また、各レイヤ(異なるレイヤ)において、他のレイヤでまとめて配置された可変長(または固定長)符号化パラメータを共有することもできる。
この場合、ベースレイヤにおいてまとめて配置された可変長(または固定長)符号化パラメータが、少なくとも1つのノンベースレイヤで用いられる。あるいは、例えば、ノンベースレイヤ(layer _id=0)においてまとめて配置された可変長(または固定長)符号化パラメータが、ベースレイヤおよびノンベースレイヤ(layer_id=1)の少なくともどちらか一方で用いられる。
これにより、算術符号化および算術復号の処理をまとめて効率的に行うことができる。また、可変長(固定長)符号化および可変長(固定長)復号の処理をまとめて効率的に行うことができる。
[階層画像符号化装置]
図28は、上述した階層画像符号化を行う階層画像符号化装置を示す図である。図28に示されるように、階層画像符号化装置620は、符号化部621、符号化部622、および多重化部623を有する。
符号化部621は、ベースレイヤ画像を符号化し、ベースレイヤ画像符号化ストリームを生成する。符号化部622は、ノンベースレイヤ画像を符号化し、ノンベースレイヤ画像符号化ストリームを生成する。多重化部623は、符号化部621において生成されたベースレイヤ画像符号化ストリームと、符号化部622において生成されたノンベースレイヤ画像符号化ストリームとを多重化し、階層画像符号化ストリームを生成する。
この階層画像符号化装置620の符号化部621および符号化部622に対して、画像符号化装置100(図1)を適用することができる。この場合、階層画像符号化装置620は、符号化部621がまとめて配置した算術符号化パラメータと、符号化部602がまとめて配置した算術符号化パラメータとを設定して伝送させる。
なお、上述したように符号化部621がまとめて配置した算術符号化パラメータを、符号化部621および符号化部622で共有して用いるように設定して伝送させるようにしてもよい。逆に、符号化部622がまとめて配置した算術符号化パラメータを、符号化部621および符号化部622で共有して用いるように設定して伝送させるようにしてもよい。以上のことは、可変長(または固定長)符号化パラメータの場合も同様である。
[階層画像復号装置]
図29は、上述した階層画像復号を行う階層画像復号装置を示す図である。図29に示されるように、階層画像復号装置630は、逆多重化部631、復号部632、および復号部633を有する。
逆多重化部631は、ベースレイヤ画像符号化ストリームとノンベースレイヤ画像符号化ストリームとが多重化された階層画像符号化ストリームを逆多重化し、ベースレイヤ画像符号化ストリームと、ノンベースレイヤ画像符号化ストリームとを抽出する。復号部632は、逆多重化部631により抽出されたベースレイヤ画像符号化ストリームを復号し、ベースレイヤ画像を得る。復号部633は、逆多重化部631により抽出されたノンベースレイヤ画像符号化ストリームを復号し、ノンベースレイヤ画像を得る。
この階層画像復号装置630の復号部632および復号部633に対して、画像復号装置200(図14)を適用することができる。この場合、階層画像復号装置630は、符号化部621がまとめて配置し、復号部632が復号した算術符号化パラメータと、符号化部622がまとめて配置し、復号部633が復号した算術符号化パラメータを用いて処理を行う。
なお、上述したように符号化部621(または、符号化622)がまとめて配置した算術符号化パラメータを、符号化部621および符号化部622で共有して用いるように設定して伝送されている場合がある。この場合、階層画像復号装置630においては、符号化部621(または、符号化622)がまとめて配置し、復号部632(または、復号部633)が復号した算術符号化パラメータを用いて処理が行われる。以上のことは、可変長(または固定長)符号化パラメータの場合も同様である。
<5.第5の実施の形態>
[コンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図30において、コンピュータ800のCPU(Central Processing Unit)801は、ROM(Read Only Memory)802に記憶されているプログラム、または記憶部813からRAM(Random Access Memory)803にロードされたプログラムに従って各種の処理を実行する。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU801、ROM802、およびRAM803は、バス804を介して相互に接続されている。このバス804にはまた、入出力インタフェース810も接続されている。
入出力インタフェース810には、キーボード、マウスなどよりなる入力部811、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部812、ハードディスクなどより構成される記憶部813、モデムなどより構成される通信部814が接続されている。通信部814は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース810にはまた、必要に応じてドライブ815が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア821が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部813にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図30に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア821により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM802や、記憶部813に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<6.第6の実施の形態>
[第1の応用例:テレビジョン受像機]
図25は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、処理を高速に行うことができる。
[第2の応用例:携帯電話機]
図26は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Unallocated Space Bitmap)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記憶再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、処理を高速に行うことができる。
[第3の応用例:記録再生装置]
図27は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送手段としての役割を有する。
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送手段としての役割を有する。
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、処理を高速に行うことができる。
[第4の応用例:撮像装置]
図28は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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での画像の符号化及び復号に際して、処理を高速に行うことができる。
なお、本明細書では、下記に示される各パラメータ等の各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。各パラメータとは、例えば、適応ループフィルタ、適応オフセットフィルタ、および量子化マトリックスの算術符号化パラメータ、可変長(固定長)符号化(復号)を行う符号化パラメータ、またはCABACの初期化に必要な初期化(符号化)パラメータなどである。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。