説明

画像符号化装置と画像復号装置およびその方法

【課題】画像の符号化処理や復号処理を高速に行うことができるようにする。
【解決手段】二値化部161はシンタックス要素を二値化データに変換する。コンテキストインデックス(ctxIdx)設定部162は、シンタックス要素に対するコンテキスト変数を特定するためのコンテキストインデックスを並列処理単位内で重複しないように設定する。コンテキスト変数処理部163は、設定されたコンテキストインデックスに応じてコンテキスト変数を選択する。算術符号化処理部164は、並列処理単位毎に、選択されたコンテキスト変数を用いて二値化データの算術符号化を並列して行う。符号化処理を高速に行える。同様に、算術復号を並列して行うことで復号処理を高速に行える。

【発明の詳細な説明】
【技術分野】
【0001】
この技術は、画像符号化装置と画像復号装置およびその方法に関する。詳しくは、画像の符号化処理や復号処理を高速に行えるようにする。
【背景技術】
【0002】
従来、AVC(Advanced Video Coding)画像符号化方式では、エントロピー符号化としてCABAC(Context-based Adaptive Binary Arithmetic Coding)や、CAVLC(Context-based Adaptive Variable Length Coding)が定義されている。このうち、CABACは、周囲の状況(コンテキスト(Context))に応じて適応的に符号化を行う2値の算術符号方式である。
【0003】
算術符号化では、1シンボル毎に発生確率に応じて数値区間を分割する処理を繰り返すことで符号列を得る。すなわち、全シンボルを順次処理する必要がある。また、コンテキストと呼ばれるシンボル発生確率テーブル(以下単に「確率テーブル」という)を符号化処理毎に順次更新しながら符号化を行う必要がある。また、算術復号では、算術符号化と逆の処理が行われる。このように、確率テーブルを順次更新しながら処理を行うため、確率テーブルが重複して用いられる場合、確率テーブルの更新が完了しないと次の符号化処理を行うことができない。したがって、処理の並列化によって算術符号化や算術復号を高速に行うことが困難である。
【0004】
例えば図1に示すコンテキストインデックス(ctxIdx)設定部201は、符号化または復号するシンタックスに応じてコンテキストインデックスを設定して変数選択部202-0,202-1に出力する。変数選択部202-0は、コンテキストインデックス設定部201から供給されたコンテキストインデックスに基づきコンテキスト変数を選択して算術復号部203-0に出力する。なお、コンテキスト変数では、発生確率が高い優勢シンボル(most probable symbol)と、その優勢シンボルのシンボル発生確率テーブルの番号(pStateIdx)が示されている。算術復号部203-0は、選択されたコンテキスト変数を用いて算術復号を行い復号結果bin0を出力する。同様に、変数選択部202-1は、コンテキストインデックス設定部201から供給されたコンテキストインデックスに基づきコンテキスト変数を選択して、算術復号部203-1に出力する。算術復号部203-1は、選択されたコンテキスト変数を用いて算術復号を行い復号結果bin1を出力する。ここで、算術復号部203-0,203-1を用いて復号処理を並列して行う場合、コンテキストインデックスが異なると確率テーブルを個々に選択できることから、算術復号部203-0と算術復号部203-1で並列に算術復号を行うことができる。しかし2つのシンボルでコンテキストインデックスが等しいと、算術復号部203-0で得られた復号結果bin0に基づき確率テーブルを更新してからでないと、算術復号部203-1は次の算術復号を行うことができない。したがって、処理の並列化によって算術復号を高速に行うことが困難となる。
【0005】
また、AVCではマルチスライス(multi slice)という手法を用いて高スループットを実現することができるようになされている。マルチスライス手法では、図2の(A)に示されるように、画像が複数の領域に分割され、それぞれに対して独立してCABAC符号化処理や復号処理が行われる。例えば、図2の(A)の点線矢印に示されるように、画像内上側のマクロブロックラインから画像内下側のマクロブロックラインに向かう順に、マクロブロック毎に算術符号化が行われる。このようにすることにより各領域のCABAC符号化/復号を並列に行うことができるようになり、処理の高速化が実現された。この分割された領域をスライス(slice)と称する。
【0006】
カレントマクロブロック(curr)は、図2の(B)(C)に示されるように、隣接する他のマクロブロック(mbA〜mbD)を参照しながら符号化/復号が行われる。
【0007】
しかしながら、領域を分割することは符号化効率を落とす要因になる。第1に、各スライスが独立に符号化されるので、図2の(B)(C)に示されるように、各領域(スライス)の符号化/復号において相互参照をすることができない。したがって、境界部分で画面内予測(intra-prediction)が使用できなくなり、符号化効率が低減する恐れがあった。
【0008】
第2に、CABACでは確率テーブルを選択するために、図2の(C)に示されるように周辺マクロブロックの状態が参照されるが、境界部分では隣接マクロブロックの参照が不可能になるため、適切な確率テーブルの選択が困難になる恐れがあった。
【0009】
第3に、CABACで用いられる確率テーブルは、符号化が進むにつれて実際の発生確率に収束して符号化効率が高まっていくが、マルチスライス(multi slice)の場合、領域(スライス)毎にその確率テーブルが初期化される。したがって、スライス(slice)開始時点での符号化効率が低減する恐れがある。
【0010】
CABACを並列化しつつ符号化効率を改善する手法としてエントロピースライス(entropy slice)方式が提案された(例えば、非特許文献1参照)。この方式によればCABAC処理部分のみが、エントロピースライス(entropy slice)と称される領域に分割されて並列に実行されるので、画面内予測についてはエントロピースライス(entropy slice)境界でも使用可能であった。しかしながら、CABAC処理における周辺マクロブロック参照は、エントロピースライス(entropy slice)境界において使用できない。
【0011】
さらなる改善手法としてオーダードエントロピースライス(ordered entropy slices)方式が提案された(例えば、特許文献2参照)。この方式により、CABAC処理でも境界部分で隣接マクロブロックの参照が可能となった。
【先行技術文献】
【非特許文献】
【0012】
【非特許文献1】A. Segall, J.Zhao, ”Entropy slices for parallel entropy decoding”, VCEG input document COM16-C405, Geneva, CH, April 2008
【非特許文献2】Xun Guo,Yu-Wen Huang,Shawmin Lei"Ordered Entropy Slices for Parallel CABAC", VCEG input document VCEG-AK25, Yokohama, Japan, April 2009
【発明の概要】
【発明が解決しようとする課題】
【0013】
ところで、第2のエントロピースライス(entropy slice)の符号化や復号を行う場合、上側に隣接する第1のエントロピースライス(entropy slice)のマクロブロックの処理を終えていなければならない。このため、スライス(slice)間の依存が生じてしまい並列化のメリットが失われてしまう。すなわち、本来の目的であるCABAC処理の高速化の達成が困難である。
【0014】
本技術は、このような状況に鑑みてなされたものであり、画像の符号化処理や復号処理を高速に行うことができる画像符号化装置と画像復号装置およびその方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
この技術の第1の側面は、シンタックス要素を二値化データに変換する二値化部と、前記シンタックス要素に対するコンテキスト変数を特定するためのコンテキストインデックスを並列処理単位内で重複しないように設定するコンテキストインデックス設定部と、前記コンテキストインデックス設定部により設定されたコンテキストインデックスに応じてコンテキスト変数を選択するコンテキスト変数選択処理部と、前記並列処理単位毎に、前記コンテキスト変数選択処理部により選択されたコンテキスト変数を用いて前記二値化データの算術符号化を並列して行う算術符号化処理部とを備える画像符号化装置にある。
【0016】
この技術においては、シンタックス要素(SyntaxElement)の二値化データの算術符号化に用いるコンテキスト変数を特定するためのコンテキストインデックスが並列処理単位内で重複しないように設定されて、設定されたコンテキストインデックスに応じてコンテキスト変数が選択される。並列処理数は、画像の解像度またはフレームレートに応じてスライス単位で設定される。また、並列処理数は、ブロック単位で直交変換を行うことにより得られた直交変換係数におけるゼロ係数の数に応じて、ブロック単位で設定される。なお、ブロック単位で並列処理数が設定されていない場合、スライス単位で設定された並列処理数が用いられる。この並列処理単位で、互いに異なるコンテキストインデックスに応じたコンテキスト変数を用いて二値化データの算術符号化が並列して行われる。また、シンタックス要素には、並列処理数を示す要素が含められる。コンテキストインデックスの設定は、直交変換の係数毎のインデックスとコンテキストインデックスの関係を示す割り当てテーブルを用いて行われる。また、割り当てテーブルでは、周波数が近傍する係数では、等しいコンテキストインデックスがより多く用いられるように、係数毎のインデックスとコンテキストインデックスが関係付けられている。
【0017】
この技術の第2の側面は、シンタックス要素を二値化データに変換する二値化工程と、前記シンタックス要素に対するコンテキスト変数を特定するためのコンテキストインデックスを並列処理単位内で重複しないように設定するコンテキストインデックス設定工程と、前記コンテキストインデックス設定工程で設定されたコンテキストインデックスに応じてコンテキスト変数を選択するコンテキスト変数選択処理工程と、前記並列処理単位毎に、前記選択されたコンテキスト変数を用いて前記二値化データの算術符号化を並列して行う算術符号化処理工程とを含む画像符号化方法にある。
【0018】
この技術の第3の側面は、復号するシンタックス要素に対応するコンテキスト変数を特定するためのコンテキストインデックスを、並列処理単位内で重複しないように設定するコンテキストインデックス設定部と、前記コンテキストインデックス設定部により設定されたコンテキストインデックスに応じてコンテキスト変数を選択するコンテキスト変数選択処理部と、前記並列処理単位毎に、前記コンテキスト変数選択処理部により選択されたコンテキスト変数を用いて符号化データの算術復号を並列して行う算術復号処理部と、
前記算術復号を行うことによって得られた二値化データをシンタックス要素の値に変換する多値化部とを備える画像復号装置にある。
【0019】
この技術においては、復号するシンタックス要素に対応するコンテキストインデックスが、並列処理単位内で重複しないように設定される。この設定されたコンテキストインデックスに応じてコンテキスト変数を選択して、並列処理単位で、互いに異なるコンテキストインデックスに応じたコンテキスト変数を用いて二値化データの算術復号が並列して行われる。また、算術復号を行うことによって得られた二値化データは多値化データであるシンタックス要素の値に変換される。並列処理数は、符号化データに符号化されて含まれている並列処理数を示すシンタックス要素に基づいて、スライス単位やブロック単位で設定する。コンテキストインデックスの設定は、直交変換の係数毎のインデックスとコンテキストインデックスの関係を示す割り当てテーブルを用いて行われる。
【0020】
この技術の第4の側面は、復号するシンタックス要素に対応するコンテキストインデックスを、並列処理単位内で重複しないように設定するコンテキストインデックス設定工程と、前記コンテキストインデックス設定工程で設定されたコンテキストインデックスに応じてコンテキスト変数を選択するコンテキスト変数選択処理工程と、前記並列処理単位で、前記コンテキスト変数選択工程で選択されたコンテキスト変数を用いて符号化データの算術復号を並列して行う算術復号工程と、前記算術復号を行うことによって得られた二値化データをシンタックス要素に変換する多値化工程とを含む画像復号方法にある。
【発明の効果】
【0021】
この技術によれば、算術符号化や算術復号を並列して行う場合に、並列処理単位内で重複を生じないようにコンテキストインデックスを設定して、設定されたコンテキストインデックスに対応するコンテキスト変数を用いて算術符号化や算術復号が行われる。したがって、画像の符号化処理や復号処理を高速に行うことができるようになる。
【図面の簡単な説明】
【0022】
【図1】処理の並列化を行う場合の従来の構成を説明するための図である。
【図2】マルチスライス手法を説明するための図である。
【図3】画像符号化装置の構成を例示した図である。
【図4】CABAC符号化器の構成を例示した図である。
【図5】画像符号化装置の動作を示すフローチャートである。
【図6】CABAC符号化器の動作を示すフローチャートである。
【図7】シンタックス要素「slice_parallel_processing_id」を設けたスライスヘッダシンタックスを例示した図である。
【図8】シンタックス要素「mb_parallel_processing_id」を設けたマクロブロックヘッダシンタックスを例示した図である。
【図9】画像復号装置の構成を例示した図である。
【図10】CABAC復号器の構成を例示した図である。
【図11】画像復号装置の動作を示すフローチャートである。
【図12】CABAC復号器の動作を示すフローチャートである。
【図13】レベルリストインデックス(LevelListIdx)を示した図である。
【図14】コンテキストインデックス割り当てテーブルを例示した図である。
【図15】並列処理数を「2」とした場合の8×8直交変換成分に対するコンテキストインデックス(ctxIdxInc)を示した図である。
【図16】並列処理数を「2」とした場合のコンテキストインデックス(ctxIdxInc)の変化を示した図である。
【図17】並列処理数を「4」とした場合の8×8直交変換成分に対するコンテキストインデックス(ctxIdxInc)を示した図である。
【図18】並列処理数を「4」とした場合のコンテキストインデックス(ctxIdxInc)の変化を示した図である。
【図19】並列処理数を「8」とした場合の8×8直交変換成分に対するコンテキストインデックス(ctxIdxInc)を示した図である。
【図20】並列処理数を「8」とした場合のコンテキストインデックス(ctxIdxInc)の変化を示した図である。
【図21】並列処理数を「15」とした場合の8×8直交変換成分に対するコンテキストインデックス(ctxIdxInc)を示した図である。
【図22】並列処理数を「15」とした場合のコンテキストインデックス(ctxIdxInc)の変化を示した図である。
【図23】並列処理を行わない場合の8×8直交変換成分に対するコンテキストインデックス(ctxIdxInc)を示した図である。
【図24】並列処理を行わない場合のコンテキストインデックス(ctxIdxInc)の変化を示した図である。
【図25】テレビジョン装置の概略構成を例示した図である。
【図26】携帯電話機の概略構成を例示した図である。
【図27】記録再生装置の概略構成を例示した図である。
【図28】撮像装置の概略構成を例示した図である。
【発明を実施するための形態】
【0023】
以下、本技術を実施するための形態について説明する。なお、説明は以下の順序で行う。
1.画像符号化装置の構成
2.可逆符号化部の構成
3.画像符号化装置の動作
4.可逆符号化部の動作
5.画像復号装置の構成
6.可逆復号部の構成
7.画像復号装置の動作
8.可逆復号部の動作
9.並列処理の具体例
10.ソフトウェア処理の場合
11.電子機器に適用した場合
【0024】
<1.画像符号化装置の構成>
図3は、画像符号化装置の構成を例示している。画像符号化装置10は、アナログ/ディジタル変換部(A/D変換部)11、画面並べ替えバッファ12、演算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18を備えている。さらに、画像符号化装置10は、逆量子化部21、逆直交変換部22、演算部23、デブロッキングフィルタ24、フレームメモリ25、イントラ予測部31、動き予測・補償部32、予測画像・最適モード選択部33、並列処理数設定部35を備えている。
【0025】
A/D変換部11は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ12に出力する。画面並べ替えバッファ12は、A/D変換部11から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ12は、符号化処理に係るGOP(Group of Pictures)構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを演算部13とレート制御部18およびイントラ予測部31と動き予測・補償部32に出力する。
【0026】
演算部13には、画面並べ替えバッファ12から出力された画像データと、後述する予測画像・最適モード選択部33で選択された予測画像データが供給される。演算部13は、画面並べ替えバッファ12から出力された入力画像の画像データと予測画像・最適モード選択部33から供給された予測画像の画像データとの差分である差分画像の画像データ(予測誤差データ)を算出して、直交変換部14に出力する。
【0027】
直交変換部14は、演算部13から出力された予測誤差データに対して、離散コサイン変換(DCT;Discrete Cosine Transform)、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部14は、直交変換処理を行うことにより得られた変換係数データを量子化部15に出力する。
【0028】
量子化部15には、直交変換部14から出力された変換係数データと、後述するレート制御部18から量子化パラメータ(量子化スケール)が供給されている。量子化部15は変換係数データの量子化を行い、量子化データを可逆符号化部16と逆量子化部21に出力する。また、量子化部15は、レート制御部18で設定された量子化パラメータに応じて量子化データのビットレートを変化させる。
【0029】
可逆符号化部16には、量子化部15から量子化データ、イントラ予測部31から予測モード情報や動き予測・補償部32から予測モード情報と動きベクトル情報等が供給される。また、予測画像・最適モード選択部33から最適モードがイントラ予測であるかインター予測であるかを示す情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測モードやブロックサイズ情報等が含まれる。
【0030】
可逆符号化部16は、量子化データに対して例えば可変長符号化または算術符号化等により可逆符号化処理を行い、符号化ストリームを生成して蓄積バッファ17に出力する。また、可逆符号化部16は、最適モードがイントラ予測である場合、イントラ予測部31から供給された予測モード情報の可逆符号化を行う。また、可逆符号化部16は、最適モードがインター予測である場合、動き予測・補償部32から供給された予測モード情報や動きベクトル情報等の可逆符号化を行う。さらに、可逆符号化部16は、量子化パラメータに関する情報の可逆符号化を行う。
【0031】
蓄積バッファ17は、可逆符号化部16からの符号化ストリームを蓄積する。また、蓄積バッファ17は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
【0032】
レート制御部18は、蓄積バッファ17の空き容量の監視を行い、空き容量が少なくなっている場合には量子化データのビットレートが低下し、空き容量が十分大きい場合には量子化データのビットレートが高くなるように量子化パラメータを設定して量子化部15に出力する。また、レート制御部18は、後述する符号化歪み制御部28からの制御信号に基づき、符号化歪み情報に応じて量子化パラメータの調整や制限を行う。レート制御部18は、量子化パラメータ情報の符号化効率を高めるために、量子化パラメータの制限に関する情報を可逆符号化部16に供給してもよい。なお、量子化パラメータの制限に関する情報は、符号化歪み制御部28から可逆符号化部16に供給してもよい。
【0033】
逆量子化部21は、量子化部15から供給された量子化データの逆量子化処理を行う。逆量子化部21は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部22に出力する。
【0034】
逆直交変換部22は、逆量子化部21から供給された変換係数データの逆直交変換処理を行い、得られたデータを演算部23に出力する。
【0035】
演算部23は、逆直交変換部22から供給されたデータと予測画像・最適モード選択部33から供給された予測画像データを加算してローカルデコード画像の画像データを生成して、デブロッキングフィルタ24とイントラ予測部31に出力する。なお、演算部23で生成されたローカルデコード画像は、イントラ予測またはインター予測において参照画像として用いられる。
【0036】
デブロッキングフィルタ24は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ24は、演算部23から供給された画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の画像データをフレームメモリ25に記憶させる。
【0037】
イントラ予測部31は、画面並べ替えバッファ12から供給された符号化対象画像の入力画像データと演算部23から供給された画像データ(参照画像データ)を用いて、候補となる全てのイントラ予測モードで予測を行い、最適イントラ予測モードを決定する。イントラ予測部31は、例えば各イントラ予測モードでコスト関数値を算出して、算出したコスト関数値に基づき符号化効率が最良となるイントラ予測モードを最適イントラ予測モードとする。イントラ予測部31は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。さらに、イントラ予測部31は、最適イントラ予測モードを示す予測モード情報を可逆符号化部16に出力する。
【0038】
動き予測・補償部32は、画面並べ替えバッファ12から供給された符号化対象画像の入力画像データとフレームメモリ25から読み出した参照画像データを用いて、候補となる全てのインター予測モードで予測を行い、最適インター予測モードを決定する。動き予測・補償部32は、例えば各インター予測モードでコスト関数値を算出して、算出したコスト関数値に基づき符号化効率が最良となるインター予測モードを最適インター予測モードとする。動き予測・補償部32は、最適インター予測モードで生成された予測画像データと最適インター予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。さらに、動き予測・補償部32は、最適インター予測モードに関する予測モード情報と動きベクトル情報を可逆符号化部16に出力する。
【0039】
予測画像・最適モード選択部33は、イントラ予測部31から供給されたコスト関数値と動き予測・補償部32から供給されたコスト関数値を比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部33は、最適モードで生成した予測画像データを演算部13と演算部23に出力する。さらに、予測画像・最適モード選択部33は、最適モードがイントラ予測モードであるかインター予測モードであるかを示す情報を可逆符号化部16に出力する。なお、予測画像・最適モード選択部33は、スライス単位でイントラ予測またはインター予測の切り替えを行う。また、予測画像・最適モード選択部33は、符号化歪み制御部28からの制御信号に基づき、符号化歪み情報に基づいて最適モードを指定する処理を行う。
【0040】
<2.可逆符号化部の構成>
図4は、可逆符号化部16においてCABAC符号化処理を行うCABAC符号化器の構成を例示している。CABAC符号化器160は、二値化部161、コンテキストインデックス(ctxIdx)設定部162、コンテキスト変数選択処理部163、算術符号化処理部164、符号化結果選択部165を備えている。さらに、CABAC符号化器160には、並列処理数設定部167が設けられている。
【0041】
二値化部161は、差分動きベクトルや、直交変換係数、予測モード等のシンタックスを入力し、規格によって定められた二値化処理を行い、二値化データを生成して、算術符号化部164-0〜164-Nに出力する。
【0042】
コンテキストインデックス設定部162は、シンタックスに基づきコンテキストインデックス(ctxIdx)を設定してコンテキスト変数選択処理部163に出力する。コンテキストインデックス(ctxIdx)とは、コンテキスト変数を選択するための情報であり、コンテキスト変数では、発生確率が高い優勢シンボル(most probable symbol)とその優勢シンボルの発生確率を示す確率テーブルの番号(pStateIdx)が示される。
【0043】
コンテキスト変数選択処理部163では、変数選択部163-0〜163-Nが設けられている。ここで、並列処理数を「M」とする場合、「N=M−1」とする。なお、並列処理数は、固定の並列処理数または並列処理数設定部35によって例えばスライス単位やブロック単位で設定させる。
【0044】
変数選択部163-0は、コンテキスト変数テーブルからコンテキストインデックス(ctxIdx-0)に対応したコンテキスト変数を選択して算術符号化処理部164に出力する。同様に、変数選択部163-1〜163-Nは、コンテキストインデックス(ctxIdx-1〜ctxIdx-N)に対応したコンテキスト変数を選択して算術符号化処理部164に出力する。コンテキスト変数テーブルでは、コンテキストインデックス毎に、コンテキスト変数すなわち優勢シンボルと優勢シンボルの確率テーブルの番号が示されている。
【0045】
算術符号化処理部164では、算術符号化部164-0〜164-Nが設けられている。算術符号化部164-0〜164-Nは、二値化データとコンテキスト変数に基づいて算術符号化処理を行う。例えば算術符号化部164-0は、並列処理単位の最初の係数を示す二値化データと変数選択部163-0で選択されたコンテキスト変数を用いて算術符号化を行い、算術符号化結果を符号化結果選択部165に出力する。また、算術符号化部164-0は、算術符号化結果を変数選択部163-0に出力して、変数選択部163-0で選択されているコンテキスト変数における確率テーブルの番号を更新する。同様に、算術符号化部164-1〜164-Nは、並列処理単位内の各係数の二値化データと、変数選択部163-1〜163-Nで選択されたコンテキスト変数を用いて算術符号化を行い、算術符号化結果を符号化結果選択部165に出力する。また、二値算術符号化部164-1〜164-Nは、算術符号化結果を変数選択部163-1〜163-Nに出力して、選択されているコンテキスト変数における確率テーブルの番号を更新する。符号化結果選択部165は、算術符号化部164-0〜164-Nから供給された算術符号化結果を算術符号化部164-0から順に選択して符号化ストリームを生成して出力する。
【0046】
並列処理数設定部167は、算術符号化を並列して行う場合の並列処理を例えば画像の解像度またはフレームレートに応じてスライス単位で設定する。また、並列処理数設定部167は、ブロック単位で行われた直交変換におけるゼロ係数の数に応じて並列処理をブロック単位で設定してもよい。さらに、並列処理数設定部167は、並列処理数を、スライス単位とブロック単位の少なくとも何れかの単位で設定して、ブロック単位で並列処理数が設定されていない場合に、スライス単位で設定された並列処理数を用いるようにしてもよい。並列処理数設定部167は、設定した並列処理数で算術符号化が行われるようにCABAC符号化器160を動作させる。なお、固定の並列処理数で算術符号化を行う場合には、並列処理数設定部167を設けていなくともよい。
【0047】
<3.画像符号化装置の動作>
次に、画像符号化装置の動作について、図5に示すフローチャートを用いて説明する。ステップST11において、A/D変換部11は入力された画像信号をA/D変換する。
【0048】
ステップST12において画面並べ替えバッファ12は、画像並べ替えを行う。画面並べ替えバッファ12は、A/D変換部11より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【0049】
ステップST13において演算部13は、予測誤差データの生成を行う。演算部13は、ステップST12で並べ替えられた入力画像の画像データと予測画像・最適モード選択部33で選択された予測画像の画像データとの差分を算出して、差分画像の画像データすなわち予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を符号化することができる。
【0050】
ステップST14において直交変換部14は、直交変換処理を行う。直交変換部14は、演算部13から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データを出力する。
【0051】
ステップST15において量子化部15は、量子化処理を行う。量子化部15は、変換係数データを量子化する。量子化に際しては、後述するステップST25の処理で説明されるように、レート制御が行われる。
【0052】
ステップST16において逆量子化部21は、逆量子化処理を行う。逆量子化部21は、量子化部15により量子化された変換係数データを量子化部15の特性に対応する特性で逆量子化する。
【0053】
ステップST17において逆直交変換部22は、逆直交変換処理を行う。逆直交変換部22は、逆量子化部21により逆量子化された変換係数データを直交変換部14の特性に対応する特性で逆直交変換する。
【0054】
ステップST18において演算部23は、参照画像データの生成を行う。演算部23は、予測画像・最適モード選択部33から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、ローカルデコード画像の画像データ(参照画像データ)を生成する。
【0055】
ステップST19においてデブロッキングフィルタ24は、デブロッキングフィルタ処理を行う。デブロッキングフィルタ24は、演算部23より出力された復号画像データをフィルタリングしてブロック歪みを除去する。
【0056】
ステップST20においてメモリ部26は、復号画像データを記憶する。メモリ部26は、デブロッキングフィルタでフィルタリングが行われた復号画像データを記憶する。
【0057】
ステップST21においてイントラ予測部31と動き予測・補償部32は、それぞれ予測処理を行う。すなわち、イントラ予測部31は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部32は、インター予測モードの動き予測・補償処理を行う。予測処理により、候補となる全ての予測モードでの予測処理がそれぞれ行われ、候補となる全ての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードが選択され、選択された予測モードで生成された予測画像とそのコスト関数および予測モード情報が予測画像・最適モード選択部33に供給される。
【0058】
ステップST22において予測画像・最適モード選択部33は、予測画像データの選択を行う。予測画像・最適モード選択部33は、イントラ予測部31および動き予測・補償部32より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードを決定する。また、予測画像・最適モード選択部33は、符号化歪み制御部28からの制御信号に基づき、符号化/復号処理によって生じる画質劣化が大きい場合は、最適イントラ予測モードを最適モードとして選択する。さらに、予測画像・最適モード選択部33は、決定した最適モードの予測画像データを、演算部13と演算部23に出力する。この予測画像データが、上述したように、ステップST13,ST18の演算に利用される。
【0059】
ステップST23において可逆符号化部16は、可逆符号化処理を行う。可逆符号化部16は、量子化部15より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ符号化される。また、可逆符号化部16は、ステップST25で選択された予測画像データに対応する予測モード情報等の可逆符号化を行い、量子化データを可逆符号化して生成された符号化ストリームに、予測モード情報等の可逆符号化データが含められる。
【0060】
ステップST24において蓄積バッファ17は、蓄積処理を行う。蓄積バッファ17は、可逆符号化部16から出力される符号化ストリームを蓄積する。この蓄積バッファ17に蓄積された符号化ストリームは、適宜読み出されて伝送路を介して復号側に伝送される。
【0061】
ステップST25においてレート制御部18は、レート制御を行う。レート制御部18は、蓄積バッファ17で符号化ストリームを蓄積する場合、オーバーフローまたはアンダーフローが蓄積バッファ17で発生しないように、量子化パラメータQPを設定して量子化部15に出力することで量子化動作のレートを制御する。また、レート制御部18は、符号化歪み制御部28からの制御信号に基づき、符号化歪み情報に応じて量子化パラメータQPの調整や制限等を行う。
【0062】
<4.可逆符号化部の動作>
次に、可逆符号化部におけるCABAC符号化器の動作について、並列処理数設定部が設けられている場合を説明する。可逆符号化部は、解像度やフレームレートが高いほど、符号化ストリームの生成処理を高速化する必要がある。したがって、CABAC符号化器は、スライス単位で並列処理数を設定して例えば解像度やフレームレートが高い動画像の場合、並列処理可能な数を大きくして、高速処理を優先させる。また、解像度やフレームレートが高くなるに伴い、並列処理可能な数を増やして高速処理をさらに優先させるようにしてもよい。
【0063】
また、並列処理数は、マクロブロック単位で切り替え可能としてもよい。例えば、可逆符号化部は、マクロブロック内で係数値が「0」である係数(ゼロ係数)の数をカウントして、ゼロ係数が多い場合は高速化の処理は不要であるので符号化効率を優先し、ゼロ係数が少ない場合は、符号化効率より高速化処理を優先にする。
【0064】
図6は、CABAC符号化器の動作を示すフローチャートである。ステップST31でCABAC符号化器160は、解像度やフレームレートが高いか判別する。CABAC符号化器160は、画像符号化装置10のシステム制御部等によって示された動画像の解像度やフレームレートが、所定値よりも高い場合にはステップST32に進み、高くない場合にはステップST33に進む。
【0065】
ステップST32でCABAC符号化器160は、並列処理数を大きな値に設定する。CABAC符号化器160は、解像度やフレームレートが所定値よりも高いことから、高速処理を優先させる。具体的には、スライスヘッダシンタックスに並列処理数を示すシンタックス要素「slice_parallel_processing_id」を設けて、このシンタックス要素「slice_parallel_processing_id」の数値を大きな値とする。すなわち、CABAC符号化器160は、符号化効率を優先させる場合よりもシンタックス要素「slice_parallel_processing_id」の数値を大きな値として高速処理を優先させてステップST34に進む。
【0066】
ステップST33でCABAC符号化器160は、並列処理数を小さな値に設定する。CABAC符号化器160は、解像度やフレームレートが所定値よりも高くないことから、符号化効率を優先させる。具体的には、スライスヘッダシンタックスにシンタックス要素「slice_parallel_processing_id」を設けて、このシンタックス要素「slice_parallel_processing_id」の数値を小さな値に設定する。すなわち、CABAC符号化器160は、高速処理を優先させる場合よりもシンタックス要素「slice_parallel_processing_id」の数値を小さな値として符号化効率を優先させてステップST34に進む。
【0067】
図7は、シンタックス要素「slice_parallel_processing_id」を設けたスライスヘッダシンタックスの一部を例示している。例えば、スライスヘッダシンタックスでは、シンタックス要素「pic_parameter_set_id」の次に、シンタックス要素「slice_parallel_processing_id」を設けている。
【0068】
ステップST34でCABAC符号化器160は、マクロブロック内のゼロ係数の数が所定数以上であるか判別する。CABAC符号化器160は、画像符号化装置10のシステム制御部によって示されたゼロ係数の数が所定数以上の場合にはステップST35に進み、所定数未満である場合にはステップST36に進む。
【0069】
ステップST35でCABAC符号化器160は、並列処理数を小さな値に設定する。CABAC符号化器160は、ゼロ係数が所定数よりも多いことから、符号化効率を優先させる。具体的には、マクロブロックヘッダシンタックスに並列処理数を示すシンタックス要素「mb_parallel_processing_id」を設けて、このシンタックス要素「mb_parallel_processing_id」の数値を小さな値に設定する。すなわち、CABAC符号化器160は、高速処理を優先させる場合よりもシンタックス要素「mb_parallel_processing_id」の数値を小さな値として符号化効率を優先させてステップST37に進む。
【0070】
ステップST36でCABAC符号化器160は、並列処理数を大きな値に設定する。CABAC符号化器160は、ゼロ係数が所定数よりも多くないことから、高速処理を優先させる。具体的には、マクロブロックヘッダシンタックスにシンタックス要素「mb_parallel_processing_id」を設けて、このシンタックス要素「mb_parallel_processing_id」の数値を大きな値に設定する。すなわち、CABAC符号化器160は、符号化効率を優先させる場合よりもシンタックス要素「mb_parallel_processing_id」の数値を大きな値に設定して高速処理を優先させてステップST37に進む。
【0071】
図8は、シンタックス要素「mb_parallel_processing_id」を設けたマクロブロックヘッダシンタックスを例示している。例えば、マクロブロックヘッダシンタックスでは、シンタックス要素「mb_type」の次にシンタックス要素「mb_parallel_processing_id」を設けている。また、シンタックス要素「slice_parallel_processing_id」とシンタックス要素「mb_parallel_processing_id」を設ける場合、何れかのシンタックス要素で示された並列処理数で処理を行うようにする。例えば、シンタックス要素の選択を行うための要素「mb_parallel_setting」を設けて、要素「mb_parallel_setting」が「1」である場合、シンタックス要素「mb_parallel_processing_id」で示された並列処理数で処理を行う。また、要素「mb_parallel_setting」が「0」である場合は、シンタックス要素「slice_parallel_processing_id」の並列処理数で処理を行うようにする。
【0072】
ステップST37でCABAC符号化器160は、並列処理数に応じてコンテキストインデックス(ctxIdx)割り当てテーブルを選択する。コンテキストインデックス割り当てテーブルは、並列処理単位内で重複を生じないようにコンテキストインデックスが予めテーブル化されている。なお、コンテキストインデックス割り当てテーブルの具体例については後述する。
【0073】
CABAC符号化器160は、並列処理数に応じて選択されたコンテキストインデックス割り当てテーブルを用いて、ステップST38〜ステップST41の処理を並列して行う。なお、上述のように並列処理数を「M」として、「N=M−1」とする。
【0074】
ステップST38-0でCABAC符号化器160は、レベルリストインデックス(LevelListIdx)を設定してステップST39-0に進む。CABAC符号化器160は、1回目の並列処理を行う場合、レベルリストインデックス(LevelListIdx)を「0」に設定する。その後、並列処理が繰り返される毎に、並列処理数に応じてレベルリストインデックス(LevelListIdx)を更新する。例えば並列処理数が「2」である場合、並列処理が繰り返される毎にレベルリストインデックス(LevelListIdx)を「0,2,4,・・・62」の順に更新する。並列処理数が「4」である場合、並列処理が繰り返される毎にレベルリストインデックス(LevelListIdx)を「0,4,8,・・・60」の順に更新する。並列処理数が「15」である場合、並列処理が繰り返される毎にレベルリストインデックス(LevelListIdx)を「0,15,30,・・・60」の順に更新する。
【0075】
ステップST39-0でCABAC符号化器160は、レベルリストインデックス(LevelListIdx)に対応するコンテキストインデックス(ctxIdx)を決定する。CABAC符号化器160は、レベルリストインデックス(LevelListIdx)に割り当てられているコンテキストインデックスインクリメント(ctxIdxInc)にコンテキストインデックスオフセット(ctxIdxOffset)を加算して、レベルリストインデックス(LevelListIdx)に対応するコンテキストインデックス(ctxIdx)とする。
【0076】
ステップST40-0でCABAC符号化器160は、コンテキストインデックス(ctxIdx)に対応するコンテキスト変数の呼び出しを行う。CABAC符号化器160は、ステップST39-0で決定したコンテキストインデックス(ctxIdx)に対応するコンテキスト変数をステップST37で選択したコンテキスト変数テーブルから呼び出す。
【0077】
ステップST41-0でCABAC符号化器160は、算術符号化を行う。CABAC符号化器160は、ステップST40-0で呼び出したコンテキスト変数を用いて算術符号化を行う。
【0078】
CABAC符号化器160は、ステップST38-1において、ステップST38-0で設定したレベルリストインデックス(LevelListIdx)に「1」を加算して、レベルリストインデックス(LevelListIdx)とする。同様に、CABAC符号化器160は、ステップST38-Nまでのレベルリストインデックス(LevelListIdx)の設定を行う。例えばステップST38-Nでは、ステップST38-1で設定したレベルリストインデックス(LevelListIdx)に「N=(M−1)」を加算して、レベルリストインデックス(LevelListIdx)を設定する。このように、ステップST38-1〜38-Nでレベルリストインデックス(LevelListIdx)を設定して、ステップST39-1〜39-NからステップST41-1〜41-Nの処理を行うと、並列処理数分の算術符号化を並列して行うことができる。
【0079】
ステップST42でCABAC符号化器160は、コンテキスト変数の更新を行う。CABAC符号化器160は、ステップST41-0〜41-Nの算術符号化結果に基づき選択されているコンテキスト変数における確率テーブルの番号を更新してステップST43に進む。
【0080】
ステップST43でCABAC符号化器160は、係数処理が終了したか判別する。CABAC符号化器160は、1マクロブロック分の係数について算術符号化が完了していない場合にはステップST37に戻り、1マクロブロック分の係数について算術符号化が完了した場合にはステップST44に進む。
【0081】
ステップST44でCABAC符号化器160は、マクロブロック処理が終了したか判別する。CABAC符号化器160は、スライス内の各マクロブロックについて算術符号化が完了していない場合にはステップST34に戻って次のマクロブロックについての処理を行い、完了した場合にはステップST45に進む。
【0082】
ステップST45でCABAC符号化器160は、スライス処理が終了したか判別する。CABAC符号化器160は、フレーム内の各スライスについて算術符号化が完了していない場合にはステップST31に戻って次のスライスついての処理を行う。
【0083】
このように、解像度やフレームレートが高い場合には、並列処理数を増やし、高速化処理を優先させることで、符号化ストリームの生成を高速に行うことができる。また、スライス毎の切り替えだけでなく、マクロブロック毎の切り替えにも対応する。すなわち、マクロブロック内のゼロ係数が多い場合、高速化の処理は不要であるので、並列処理数を少なくして符号化効率優先させて、ゼロ係数が少ない場合に並列処理数を増やして高速化処理を優先させる。このように、マクロブロック毎に並列処理数を切り替え可能とすることで、スライス毎の並列処理数の切り替えに比べて、より詳細な制御が可能となる。
【0084】
また、並列処理数を示すシンタックス要素を符号化ストリームに含めることで、後述する画像復号装置では、並列処理数を示すシンタックス要素の情報に基づき、画像符号化装置と等しい並列処理数で算術復号処理を行うことができる。
【0085】
さらに、画像の解像度やフレームレートに基づき並列処理数を設定する場合、画像符号化装置と画像復号装置で等しいルールを用いて並列処理数を設定すれば、並列処理数を示すシンタックス要素を符号化ストリームに含めることなく、画像復号装置は、画像符号化装置と等しい並列処理数で算術復号処理を行うことができるので、符号化ストリームのデータ量を削減することが可能となる。
【0086】
<5.画像復号装置の構成>
次に、画像符号化装置から出力される符号化ストリームの復号処理を行う画像復号装置について説明する。入力画像を符号化して生成された符号化ストリームは、所定の伝送路や記録媒体等を介して画像復号装置に供給されて復号される。
【0087】
図9は、符号化ストリームの復号処理を行う画像復号装置の構成を例示している。画像復号装置50は、蓄積バッファ51、可逆復号部52、逆量子化部53、逆直交変換部54、演算部55、デブロッキングフィルタ56、画面並べ替えバッファ57、ディジタル/アナログ変換部(D/A変換部)58を備えている。また、画像復号装置50は、フレームメモリ61、イントラ予測部71、動き補償部72、セレクタ73を備えている。
【0088】
蓄積バッファ51は、伝送されてきた符号化ストリームを蓄積する。可逆復号部52は、蓄積バッファ51より供給された符号化ストリームを、図3に示すCABAC符号化器160の符号化方式に対応する方式で復号する。
【0089】
可逆復号部52は、情報取得部として動作を行い符号化ストリームから種々の情報を取得する。例えば、可逆復号部52は、符号化ストリームを復号して得られた予測モード情報等をイントラ予測部71や動き補償部72に出力する。また、可逆復号部52は、符号化ストリームを復号して得られた量子化パラメータ情報と量子化データを逆量子化部53に出力する。また、可逆復号部52は、量子化パラメータの範囲が制限されて量子化パラメータ情報の符号化が行われている場合、後述する符号化歪み制御部64から供給された制御信号を利用して、量子化パラメータ情報の復号を行う。
【0090】
逆量子化部53は、量子化パラメータを用いて、図3に示す量子化部15の量子化方式に対応する方式で、可逆復号部52から供給された量子化データの逆量子化を行う。逆直交変換部54は、図3に示す直交変換部14の直交変換方式に対応する方式で逆量子化部53の出力を逆直交変換して演算部55に出力する。
【0091】
演算部55は、逆直交変換後のデータとセレクタ73から供給される予測画像データを加算してデコード画像の画像データを生成してデブロッキングフィルタ56とイントラ予測部71に出力する。
【0092】
デブロッキングフィルタ56は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ56は、演算部55から供給された画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の画像データを画面並べ替えバッファ57とフレームメモリ61に出力する。
【0093】
画面並べ替えバッファ57は、画像の並べ替えを行う。すなわち、図3に示す画面並べ替えバッファ12により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、D/A変換部58に出力される。
【0094】
D/A変換部58は、画面並べ替えバッファ57から供給された画像データをD/A変換し、図示せぬディスプレイに出力することでデコード画像を表示させる。
【0095】
イントラ予測部71は、可逆復号部52から供給された予測モード情報と演算部55から供給された復号画像データに基づいて予測画像データの生成を行い、生成した予測画像データをセレクタ73に出力する。
【0096】
動き補償部72は、可逆復号部52から供給された予測モード情報と動きベクトル情報に基づきフレームメモリ61から読み出した画像データを用いて動き補償を行い、予測画像データを生成する。動き補償部72は、生成した予測画像データをセレクタ73に出力する。
【0097】
セレクタ73は、可逆復号部52から供給された予測モード情報に基づき、イントラ予測である場合はイントラ予測部71、インター予測である場合は動き補償部72を選択する。セレクタ73は、選択されたイントラ予測部71または動き補償部72で生成された予測画像データを演算部55に出力する。
【0098】
<6.可逆復号部の構成>
図10は、可逆復号部52においてCABAC復号処理を行うCABAC復号器の構成を例示している。CABAC復号器520は、蓄積バッファ51から符号化データを受け取り、二値化データに復号した後に多値化データであるシンタックス要素の値に変換する。CABAC復号器520は、コンテキストインデックス設定部521、コンテキスト変数選択処理部522、算術復号処理部523、復号結果選択部524、多値化部525、レジスタ526、並列処理数設定部527を備えている。
【0099】
コンテキストインデックス設定部521は、レジスタ526に記憶されているシンタックス要素に関する情報に基づき、次に復号するシンタックス要素のコンテキストインデックス(ctxIdx)を設定してコンテキスト変数選択処理部522に出力する。
【0100】
コンテキスト変数選択処理部522では、変数選択部522-0〜522-Nが設けられている。ここで、符号化ストリームで示されている並列処理数を「M」とする場合、「N=M−1」とする。なお、並列処理数は、画像符号化装置で固定されていることが明らかな場合には画像符号化装置と等しい固定の並列処理数とする。また、画像符号化装置に並列処理数設定部を設けて並列処理数を設定する場合、並列処理数設定部527において並列処理数の設定を行う。
【0101】
変数選択部522-0は、コンテキスト変数テーブルからコンテキストインデックス(ctxIdx-0)に対応したコンテキスト変数を選択して算術復号処理部523に出力する。同様に、変数選択部522-1〜522-Nは、コンテキストインデックス(ctxIdx-1〜ctxIdx-N)に対応したコンテキスト変数を選択して算術復号処理部523に出力する。
【0102】
算術復号処理部523では、算術復号部523-0〜523-Nが設けられている。算術復号部523-0〜523-Nは、蓄積バッファ51から入力された符号化データを二値化データに復号する。例えば、算術復号部523-0は、1つ係数の符号化データを復号する際、変数選択部522-0から供給されたコンテキスト変数に基づいて復号を行い、算術復号結果である二値化データを復号結果選択部524に出力する。また、算術復号部523-0は、算術復号結果を変数選択部522-0に出力して、変数選択部522-0で選択されているコンテキスト変数における確率テーブルの番号を更新する。同様に、算術復号部523-1〜523-Nは、1つの係数の符号化データを復号する際、変数選択部522-1〜522-Nから供給されたコンテキスト変数に基づいて復号を行い、算術復号結果である二値化データを復号結果選択部524に出力する。また、算術復号部523-1〜523-Nは、算術復号結果を変数選択部522-1〜522-Nに出力して、変数選択部522-1〜522-Nで選択されているコンテキスト変数における確率テーブルの番号を更新する。
【0103】
復号結果選択部524は、算術復号部523-0〜523-Nから供給された算術復号結果を順に選択して多値化部525に出力する。
【0104】
多値化部525は、CABAC符号化器160の二値化部161に対応した処理を行い、復号結果選択部524から供給された二値化データを多値化することで、符号化前の多値化データすなわちシンタックス要素の値を出力する。また、多値化部525は、多値化を行うことにより生成されたシンタックス要素において、次の復号でコンテキストインデックス(ctxIdx)を設定するために用いる情報をレジスタ526に出力する。さらに、多値化部525は、シンタックス要素の値を並列処理数設定部527に出力する。
【0105】
レジスタ526は、多値化部525から供給された情報を保持して、保持している情報をコンテキストインデックス設定部523に出力する。
【0106】
並列処理数設定部527は、算術復号の並列処理数を設定する。並列処理数設定部527は、例えば符号化データに含まれている並列処理数を示すシンタックス要素に基づいて並列処理数を決定する。また、並列処理数設定部527は、復号する画像の解像度またはフレームレートに応じてスライス単位で設定する。並列処理数設定部527は、設定した並列処理数で算術復号が行われるようにCABAC復号器520を動作させる。
【0107】
<7.画像復号装置の動作>
次に、図11のフローチャートを参照して、画像復号装置50の動作について説明する。ステップST51で蓄積バッファ51は、供給された符号化ストリームを蓄積する。ステップST52で可逆復号部52は、可逆復号処理を行う。可逆復号部52は、蓄積バッファ51から供給される符号化ストリームを復号する。すなわち、図3に示すCABAC符号化器160により符号化された各ピクチャの量子化データが得られる。また、可逆復号部52、符号化ストリームに含まれている予測モード情報等の可逆復号を行い、得られた予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をイントラ予測部71に出力する。また、可逆復号部52は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報や動きベクトル情報を動き補償部72に出力する。
【0108】
ステップST53において逆量子化部53は、逆量子化処理を行う。逆量子化部53は、可逆復号部52により復号された量子化データを、図3に示す量子化部15の特性に対応する特性で逆量子化する。
【0109】
ステップST54において逆直交変換部54は、逆直交変換処理を行う。逆直交変換部54は、逆量子化部53により逆量子化された変換係数データを、図3に示す直交変換部14の特性に対応する特性で逆直交変換する。
【0110】
ステップST55において演算部55は、復号画像データの生成を行う。演算部55は、逆直交変換処理を行うことにより得られたデータと、後述するステップST59で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
【0111】
ステップST56においてデブロッキングフィルタ56は、フィルタ処理を行う。デブロッキングフィルタ56は、演算部55より出力された復号画像データをフィルタリングしてブロック歪みを除去する。
【0112】
ステップST57においてフレームメモリ61は、データを記憶する。フレームメモリ61は、デブロッキングフィルタでフィルタリングが行われた復号画像データを記憶する。
【0113】
ステップST58においてイントラ予測部71と動き補償部72は、予測画像データの生成を行う。イントラ予測部71と動き補償部72は、可逆復号部52から供給される予測モード情報に対応してそれぞれ予測画像データの生成を行う。
【0114】
すなわち、可逆復号部52からイントラ予測の予測モード情報が供給された場合、イントラ予測部71は、予測モード情報に基づいて予測画像データを生成する。また、可逆復号部52からインター予測の予測モード情報が供給された場合、動き補償部72は、予測モード情報と動きベクトル情報に基づき動き補償を行い、予測画像データを生成する。
【0115】
ステップST59において、セレクタ73は予測画像データの選択を行う。セレクタ73は、イントラ予測部71から供給された予測画像データと動き補償部72から供給された予測画像データの選択を行い、選択した予測画像データを演算部55に供給して、ステップST55において逆直交変換部54の出力と加算させる。また、セレクタ73は、符号化歪み制御部64からの制御信号に基づき、符号化/復号処理によって生じる画質劣化が大きい場合は、イントラ予測部71から供給された予測画像データを選択する。
【0116】
ステップST60において画面並べ替えバッファ57は、画像並べ替えを行う。すなわち画面並べ替えバッファ57は、図3に示す画像符号化装置10の画面並べ替えバッファ12により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【0117】
ステップST61において、D/A変換部58は、画面並べ替えバッファ57からの画像データをD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【0118】
<8.可逆復号部の動作>
図12は可逆復号部におけるCABAC復号器の動作を示すフローチャートである。ステップST71でCABAC復号器520は、スライスヘッダから並列処理数を取得する。CABAC復号器520は、スライスヘッダ(slice_Header)のシンタックスから並列処理数N(parallel_processing_id)を取得する。
【0119】
ステップST72でCABAC復号器520は、マクロブロックヘッダから並列処理数を取得する。CABAC復号器520は、マクロブロックヘッダ(mb_Header)のシンタックスから並列処理数N(mb_parallel_processing_id)を取得する。
【0120】
ステップST73でCABAC復号器520は、並列処理数の決定および次のコンテキストインデックス(ctxIdx)とレベルリストインデックス(LevelListIdex)の設定を行う。可逆復号部52は、スライスヘッダから取得した並列処理数の情報に基づき、並列処理数を決定する。また、スライス内のマクロブロックで、マクロブロックヘッダから並列処理数を示す情報を取得している場合には、この情報に基づき並列処理数を決定する。また、CABAC復号器520は、次に復号を行うコンテキストインデックスとレベルリストインデックスを設定する。
【0121】
ステップST74でCABAC復号器520は、並列処理数に応じてコンテキストインデックス(ctxIdx)割り当てテーブルを選択する。CABAC復号器520は、CABAC符号化器160と同様に、並列処理数に応じてコンテキストインデックス割り当てテーブルの選択を行う。
【0122】
その後、CABAC復号器520は、並列処理数に応じて、ステップST75〜ステップST78の処理を並列して行う。
【0123】
ステップST75-0でCABAC復号器520は、レベルリストインデックス(LevelListIdx)を設定してステップST76-0に進む。CABAC符号化器160は、1回目の並列処理を行う場合、レベルリストインデックス(LevelListIdx)を「0」に設定する。その後、並列処理が繰り返される毎に、並列処理数に応じてレベルリストインデックス(LevelListIdx)を更新する。例えば並列処理数が「2」である場合、並列処理が繰り返される毎にレベルリストインデックス(LevelListIdx)を「0,2,4,・・・62」の順に更新する。並列処理数が「2」である場合、並列処理が繰り返される毎にレベルリストインデックス(LevelListIdx)を「0,2,4,・・・60」の順に更新する。並列処理数が例えば「15」である場合、並列処理が繰り返される毎にレベルリストインデックス(LevelListIdx)を「0,15,30,・・・60」の順に更新する。
【0124】
ステップST76-0でCABAC復号器520は、コンテキストインデックス(ctxIdx)を決定する。CABAC復号器520は、レベルリストインデックス(LevelListIdx)に割り当てられているコンテキストインデックスインクリメント(ctxIdxInc)にコンテキストインデックスオフセット(ctxIdxOffset)を加算して、レベルリストインデックス(LevelListIdx)に対応するコンテキストインデックス(ctxIdx)とする。
【0125】
ステップST77-0でCABAC復号器520は、コンテキストインデックス(ctxIdx)に対応するコンテキスト変数の呼び出しを行う。CABAC復号器520は、ステップST76-0で決定したコンテキストインデックス(ctxIdx)に対応するコンテキスト変数をテーブルから呼び出す。
【0126】
ステップST78-0でCABAC復号器520は、算術復号を行う。CABAC復号器520は、ステップST77-0で呼び出したコンテキスト変数を用いて算術復号を行う。
【0127】
CABAC復号器520は、ステップST75-1において、ステップST75-0で設定したレベルリストインデックス(LevelListIdx)に「1」を加算して、レベルリストインデックス(LevelListIdx)とする。同様に、CABAC復号器520は、ステップST75-Nまでのレベルリストインデックス(LevelListIdx)の設定を行う。例えばステップST75-Nでは、ステップST75-1で設定したレベルリストインデックス(LevelListIdx)に「N=(M−1)」を加算して、レベルリストインデックス(LevelListIdx)を設定する。このように、ステップST75-1〜75-Nでレベルリストインデックス(LevelListIdx)を設定して、ステップST76-1〜76-NからステップST78-1〜78-Nの処理を行うと、並列処理数分の算術復号を並列して行うことができる。
【0128】
ステップST79でCABAC復号器520は、コンテキスト変数の更新を行う。CABAC復号器520は、ステップST78-0〜78-Nの算術復号結果に基づき、選択されているコンテキスト変数における確率テーブルの番号を更新してステップST80に進む。
【0129】
ステップST80でCABAC復号器520は、係数処理が終了したか判別する。CABAC復号器520は、1マクロブロック分の係数について算術復号が完了していない場合にはステップST73に戻り、1マクロブロック分の係数について算術復号が完了した場合にはステップST81に進む。
【0130】
ステップST81でCABAC復号器520は、マクロブロック処理が終了したか判別する。CABAC復号器520は、スライス内の各マクロブロックについて算術復号が完了していない場合にはステップST72に戻って次のマクロブロックについての処理を行い、完了した場合にはステップST82に進む。
【0131】
ステップST82でCABAC復号器520は、スライス処理が終了したか判別する。CABAC復号器520は、フレーム内の各スライスについて算術復号が完了していない場合にはステップST71に戻って次のスライスついての処理を行う。
【0132】
このように、算術符号化を並列に行うことで符号化ストリームが生成されていても、算術復号時には、算術符号化時に対応して算術復号が並列に行われるので、算術復号を正しく高速に行うことができる。また、画像の解像度やフレームレートに基づき、画像符号化装置と等しいルールを用いて並列処理数を設定すれば、上述のように、並列処理数を示すシンタックス要素を符号化ストリームに含めることなく、画像復号装置は、画像符号化装置と等しい並列処理数で算術復号処理を行うことができるので、符号化ストリームのデータ量を削減することが可能となる。
【0133】
<9.並列処理の具体例>
次に、可逆符号化部や可逆復号部で行われる並列処理の具体例について説明する。図13は、1マクロブロックについての8×8直交変換成分に対するレベルリストインデックス(LevelListIdx)を示している。レベルリストインデックス(LevelListIdx)の順序は、図13の数字の順序のようにジグザクスキャン順序とされている。
【0134】
図14は、並列処理数に応じたコンテキストインデックス割り当てテーブルを例示している。例えば、並列処理数が「M=2(2並列)」である場合(parallel_processing_id=1の場合)、テーブルIdが「TableId=1」のコンテキストインデックス割り当てテーブル、すなわち図14の(A)のコンテキストインデックス割り当てテーブルを選択する。また、並列処理数が「M=4(4並列)」である場合(parallel_processing_id=2の場合)は、図14の(B)に示すテーブルIdが「TableId=2」のコンテキストインデックス割り当てテーブルを選択する。並列処理数が「M=8(8並列)」である場合(parallel_processing_id=3の場合)は、図14の(C)に示すテーブルIdが「TableId=3」のコンテキストインデックス割り当てテーブルを選択する。さらに、並列処理数が「M=15(15並列)」である場合、図14の(D)に示すテーブルIdが「TableId=4」のコンテキストインデックス割り当てテーブルを選択する。なお、図14の(E)に示すコンテキストインデックス割り当てテーブルは、並列処理を行わない場合(parallel_processing_id=0の場合)に用いられる従来のコンテキストインデックス順序を示している。
【0135】
図15は、並列処理数を「2」とした場合の8×8直交変換成分に対するコンテキストインデックス(ctxIdxInc)を示している。なお、図13に示すレベルリストインデックス(LevelListIdx)と図15に示すコンテキストインデックス(ctxIdxInc)の関係は、図14の(A)に示すコンテキストインデックス割り当てテーブルで示される。ここで、並列処理数を「2」とした場合、レベルリストインデックス(LevelListIdx)の順序で符号化/復号を行うと、図16に示すように、コンテキストインデックス(ctxIdxInc)が変化する。並列処理単位内では、コンテキストインデックス(ctxIdxInc)が異なるようにコンテキストインデックスの割り当てが行われている。したがって、並列処理単位内で同じコンテキストインデックス(ctxIdxInc)が用いられることがないので、処理を高速に行うことが可能となる。
【0136】
図17は、並列処理数を「4」とした場合の8×8直交変換成分に対するコンテキストインデックス(ctxIdxInc)を示している。なお、図13に示すレベルリストインデックス(LevelListIdx)と図17に示すコンテキストインデックス(ctxIdxInc)の関係は、図14の(B)に示すコンテキストインデックス割り当てテーブルで示される。
【0137】
並列処理数を「4」とした場合、レベルリストインデックス(LevelListIdx)の順序で符号化/復号を行うと、図18に示すように、コンテキストインデックス(ctxIdxInc)が変化する。ここで、並列処理単位内では、コンテキストインデックス(ctxIdxInc)が異なるようにコンテキストインデックスの割り当てが行われている。したがって、並列処理単位内で同じコンテキストインデックス(ctxIdxInc)が用いられることがないので、処理を高速に行うことが可能となる。
【0138】
図19は、並列処理数を「8」とした場合の8×8直交変換成分に対するコンテキストインデックス(ctxIdxInc)を示している。なお、図13に示すレベルリストインデックス(LevelListIdx)と図19に示すコンテキストインデックス(ctxIdxInc)の関係は、図14の(C)に示すコンテキストインデックス割り当てテーブルで示される。
【0139】
並列処理数を「8」とした場合、レベルリストインデックス(LevelListIdx)の順序で符号化/復号を行うと、図20に示すように、コンテキストインデックス(ctxIdxInc)が変化する。ここで、並列処理単位内では、コンテキストインデックス(ctxIdxInc)が異なるようにコンテキストインデックスの割り当てが行われている。したがって、並列処理単位内で同じコンテキストインデックス(ctxIdxInc)が用いられることがないので、処理を高速に行うことが可能となる。
【0140】
図21は、並列処理数を「15」とした場合の8×8直交変換成分に対するコンテキストインデックス(ctxIdxInc)を示している。なお、図13に示すレベルリストインデックス(LevelListIdx)と図21に示すコンテキストインデックス(ctxIdxInc)の関係は、図14の(D)に示すコンテキストインデックス割り当てテーブルで示される。
【0141】
並列処理数を「15」とした場合、レベルリストインデックス(LevelListIdx)の順序で符号化/復号を行うと、図22に示すように、コンテキストインデックス(ctxIdxInc)が変化する。ここで、並列処理単位内では、コンテキストインデックス(ctxIdxInc)が異なるようにコンテキストインデックスの割り当てが行われている。したがって、並列処理単位内で同じコンテキストインデックス(ctxIdxInc)が用いられることがないので、処理を高速に行うことが可能となる。
【0142】
なお、図23は、並列処理を行わない場合の8×8直交変換成分に対するコンテキストインデックス(ctxIdxInc)を示している。なお、図13に示すレベルリストインデックス(LevelListIdx)と図23に示すコンテキストインデックス(ctxIdxInc)の関係は、図14の(E)に示すコンテキストインデックス割り当てテーブルで示される。
【0143】
並列処理を行わない場合、レベルリストインデックス(LevelListIdx)の順序で符号化/復号を行うと、図24に示すように、コンテキストインデックス(ctxIdxInc)が変化する。この場合、同じコンテキストインデックス(ctxIdxInc)が連続する場合を生じることから、処理を高速に行うことができない。
【0144】
このように、並列処理単位内で同じコンテキストインデックス(ctxIdxInc)を用いないようにコンテキストインデックス(ctxIdxInc)の割り当てが行われているので、処理を高速に行うことができる。
【0145】
また、図21では、同じコンテキストインデックス(ctxIdxInc)がランダムに生じているが、周波数が近傍する直交変換係数では、等しいコンテキストインデックス(ctxIdxInc)がより多く用いられるように割り当てを行う。例えば図21に比べて図15に示すように、周波数が近傍する直交変換係数では、等しいコンテキストインデックス(ctxIdxInc)がより多く用いられるように割り当てを行い符号化効率を高めるようにしてもよい。なお、図15では、例えばコンテキストインデックス(ctxIdxInc)=「4」が、周波数の近傍する直交変換係数で多く用いられている。
【0146】
<10.ソフトウェア処理の場合>
明細書中において説明した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
【0147】
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。または、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的または永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【0148】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送する。コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0149】
プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0150】
<11.電子機器に適用した場合>
また、以上においては、符号化方式/復号方式としてH.264/AVC方式が用いられたが、本技術は、その他の符号化方式/復号方式を用いる画像符号化装置/画像復号装置に適用することもできる。
【0151】
さらに、本技術は、例えば、MPEG,H.26x等のように、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(符号化ビットストリーム)を、衛星放送、ケーブルTV(テレビジョン)、インターネット、および携帯電話機などのネットワークメディアを介して受信する際に、あるいは、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
【0152】
上述した画像符号化装置10や画像復号装置50は、任意の電子機器に適用することができる。以下にその例について説明する。
【0153】
図25は、本技術を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置90は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース部909を有している。さらに、テレビジョン装置90は、制御部910、ユーザインタフェース部911等を有している。
【0154】
チューナ902は、アンテナ901で受信された放送波信号から所望のチャンネルを選局して復調を行い、得られた符号化ビットストリームをデマルチプレクサ903に出力する。
【0155】
デマルチプレクサ903は、符号化ビットストリームから視聴対象である番組の映像や音声のパケットを抽出して、抽出したパケットのデータをデコーダ904に出力する。また、デマルチプレクサ903は、EPG(Electronic Program Guide)等のデータのパケットを制御部910に供給する。なお、スクランブルが行われている場合、デマルチプレクサ等でスクランブルの解除を行う。
【0156】
デコーダ904は、パケットの復号処理を行い、復号処理化によって生成された映像データを映像信号処理部905、音声データを音声信号処理部907に出力する。
【0157】
映像信号処理部905は、映像データに対して、ノイズ除去やユーザ設定に応じた映像処理等を行う。映像信号処理部905は、表示部906に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成する。また、映像信号処理部905は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それを番組の映像データに重畳する。映像信号処理部905は、このようにして生成した映像データに基づいて駆動信号を生成して表示部906を駆動する。
【0158】
表示部906は、映像信号処理部905からの駆動信号に基づき表示デバイス(例えば液晶表示素子等)を駆動して、番組の映像などを表示させる。
【0159】
音声信号処理部907は、音声データに対してノイズ除去などの所定の処理を施し、処理後の音声データのD/A変換処理や増幅処理を行いスピーカ908に供給することで音声出力を行う。
【0160】
外部インタフェース部909は、外部機器やネットワークと接続するためのインタフェースであり、映像データや音声データ等のデータ送受信を行う。
【0161】
制御部910にはユーザインタフェース部911が接続されている。ユーザインタフェース部911は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部910に供給する。
【0162】
制御部910は、CPU(Central Processing Unit)やメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータ、EPGデータ、ネットワークを介して取得されたデータ等を記憶する。メモリに記憶されているプログラムは、テレビジョン装置90の起動時などの所定のタイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、テレビジョン装置90がユーザ操作に応じた動作となるように各部を制御する。
【0163】
なお、テレビジョン装置90では、チューナ902、デマルチプレクサ903、映像信号処理部905、音声信号処理部907、外部インタフェース部909等と制御部910を接続するためバス912が設けられている。
【0164】
このように構成されたテレビジョン装置では、デコーダ904に本技術の画像復号装置(画像復号方法)の機能が設けられる。このため、放送局側で本技術の画像符号化装置の機能を用いることにより、算術符号化を並列して行い符号化ビットストリームの生成が高速に行われても、テレビジョン装置で符号化ビットストリームの復号を正しく高速に行うことができる。
【0165】
図26は、本技術を適用した携帯電話機の概略構成を例示している。携帯電話機92は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931を有している。これらは、バス933を介して互いに接続されている。また、通信部922にはアンテナ921が接続されており、音声コーデック923には、スピーカ924とマイクロホン925が接続されている。さらに制御部931には、操作部932が接続されている。
【0166】
携帯電話機92は、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
【0167】
音声通話モードにおいて、マイクロホン925で生成された音声信号は、音声コーデック923で音声データへの変換やデータ圧縮が行われて通信部922に供給される。通信部922は、音声データの変調処理や周波数変換処理等を行い送信信号を生成する。また、通信部922は、送信信号をアンテナ921に供給して図示しない基地局へ送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、得られた音声データを音声コーデック923に供給する。音声コーデック923は、音声データのデータ伸張やアナログ音声信号への変換を行いスピーカ924に出力する。
【0168】
また、データ通信モードにおいて、メール送信を行う場合、制御部931は、操作部932の操作によって入力された文字データを受け付けて、入力された文字を表示部930に表示する。また、制御部931は、操作部932におけるユーザ指示等に基づいてメールデータを生成して通信部922に供給する。通信部922は、メールデータの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、メールデータを復元する。このメールデータを、表示部930に供給して、メール内容の表示を行う。
【0169】
なお、携帯電話機92は、受信したメールデータを、記録再生部929で記憶媒体に記憶させることも可能である。記憶媒体は、書き換え可能な任意の記憶媒体である。例えば、記憶媒体は、RAMや内蔵型フラッシュメモリ等の半導体メモリ、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアである。
【0170】
データ通信モードにおいて画像データを送信する場合、カメラ部926で生成された画像データを、画像処理部927に供給する。画像処理部927は、画像データの符号化処理を行い符号化データを生成する。
【0171】
多重分離部928は、画像処理部927で生成された符号化データと、音声コーデック923から供給された音声データを所定の方式で多重化して通信部922に供給する。通信部922は、多重化データの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、多重化データを復元する。この多重化データを多重分離部928に供給する。多重分離部928は、多重化データの分離を行い、符号化データを画像処理部927、音声データを音声コーデック923に供給する。画像処理部927は、符号化データの復号処理を行い画像データを生成する。この画像データを表示部930に供給して、受信した画像の表示を行う。音声コーデック923は、音声データをアナログ音声信号に変換してスピーカ924に供給して、受信した音声を出力する。
【0172】
このように構成された携帯電話装置では、画像処理部927に本技術の画像符号化装置(画像符号化方法)や画像復号装置(画像復号方法)の機能が設けられる。したがって、画像データの通信を行う際に、画像の符号化や復号を高速に行うことができる。
【0173】
図27は、本技術を適用した記録再生装置の概略構成を例示している。記録再生装置94は、例えば受信した放送番組のオーディオデータとビデオデータを、記録媒体に記録して、その記録されたデータをユーザの指示に応じたタイミングでユーザに提供する。また、記録再生装置94は、例えば他の装置からオーディオデータやビデオデータを取得し、それらを記録媒体に記録させることもできる。さらに、記録再生装置94は、記録媒体に記録されているオーディオデータやビデオデータを復号して出力することで、モニタ装置等において画像表示や音声出力を行うことができるようにする。
【0174】
記録再生装置94は、チューナ941、外部インタフェース部942、エンコーダ943、HDD(Hard Disk Drive)部944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)部948、制御部949、ユーザインタフェース部950を有している。
【0175】
チューナ941は、図示しないアンテナで受信された放送信号から所望のチャンネルを選局する。チューナ941は、所望のチャンネルの受信信号を復調して得られた符号化ビットストリームをセレクタ946に出力する。
【0176】
外部インタフェース部942は、IEEE1394インタフェース、ネットワークインタフェース部、USBインタフェース、フラッシュメモリインタフェース等の少なくとも何れかで構成されている。外部インタフェース部942は、外部機器やネットワーク、メモリカード等と接続するためのインタフェースであり、記録する映像データや音声データ等のデータ受信を行う。
【0177】
エンコーダ943は、外部インタフェース部942から供給された映像データや音声データが符号化されていないとき所定の方式で符号化を行い、符号化ビットストリームをセレクタ946に出力する。
【0178】
HDD部944は、映像や音声等のコンテンツデータ、各種プログラムやその他のデータ等を内蔵のハードディスクに記録し、また再生時等にそれらを当該ハードディスクから読み出す。
【0179】
ディスクドライブ945は、装着されている光ディスクに対する信号の記録および再生を行う。光ディスク、例えばDVDディスク(DVD−Video、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等)やBlu−ray(登録商標)ディスク等である。
【0180】
セレクタ946は、映像や音声の記録時には、チューナ941またはエンコーダ943からの何れかの符号化ビットストリームを選択して、HDD部944やディスクドライブ945の何れかに供給する。また、セレクタ946は、映像や音声の再生時に、HDD部944またはディスクドライブ945から出力された符号化ビットストリームをデコーダ947に供給する。
【0181】
デコーダ947は、符号化ビットストリームの復号化処理を行う。デコーダ947は、復号処理化を行うことにより生成された映像データをOSD部948に供給する。また、デコーダ947は、復号処理化を行うことにより生成された音声データを出力する。OSD部948は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それをデコーダ947から出力された映像データに重畳して出力する。
【0182】
制御部949には、ユーザインタフェース部950が接続されている。ユーザインタフェース部950は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部949に供給する。
【0183】
制御部949は、CPUやメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータを記憶する。メモリに記憶されているプログラムは、記録再生装置94の起動時などの所定のタイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、記録再生装置94がユーザ操作に応じた動作となるように各部を制御する。
【0184】
このように構成された記録再生装置では、エンコーダ943に本技術の画像符号化装置(画像符号化方法)の機能、デコーダ947に画像復号化装置(画像復号化方法)の機能が設けられて、映像の記録再生を高速に行うことができる。
【0185】
図28は、本技術を適用した撮像装置の概略構成を例示している。撮像装置96は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
【0186】
撮像装置96は、光学ブロック961、撮像部962、カメラ信号処理部963、画像データ処理部964、表示部965、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970を有している。また、制御部970には、ユーザインタフェース部971が接続されている。さらに、画像データ処理部964や外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970等は、バス972を介して接続されている。
【0187】
光学ブロック961は、フォーカスレンズや絞り機構等を用いて構成されている。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCDまたはCMOSイメージセンサを用いて構成されており、光電変換によって光学像に応じた電気信号を生成してカメラ信号処理部963に供給する。
【0188】
カメラ信号処理部963は、撮像部962から供給された電気信号に対してニー補正やガンマ補正、色補正等の種々のカメラ信号処理を行う。カメラ信号処理部963は、カメラ信号処理後の画像データを画像データ処理部964に供給する。
【0189】
画像データ処理部964は、カメラ信号処理部963から供給された画像データの符号化処理を行う。画像データ処理部964は、符号化処理を行うことにより生成された符号化データを外部インタフェース部966やメディアドライブ968に供給する。また、画像データ処理部964は、外部インタフェース部966やメディアドライブ968から供給された符号化データの復号化処理を行う。画像データ処理部964は、復号化処理を行うことにより生成された画像データを表示部965に供給する。また、画像データ処理部964は、カメラ信号処理部963から供給された画像データを表示部965に供給する処理や、OSD部969から取得した表示用データを、画像データに重畳させて表示部965に供給する。OSD部969は、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを生成して画像データ処理部964に出力する。
【0190】
外部インタフェース部966は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタと接続される。また、外部インタフェース部966には、必要に応じてドライブが接続され、磁気ディスク、光ディスク等のリムーバブルメディアが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、インストールされる。さらに、外部インタフェース部966は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。制御部970は、例えば、ユーザインタフェース部971からの指示にしたがって、メモリ部967から符号化データを読み出し、それを外部インタフェース部966から、ネットワークを介して接続される他の装置に供給させることができる。また、制御部970は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース部966を介して取得し、それを画像データ処理部964に供給したりすることができる。
【0191】
メディアドライブ968で駆動される記録メディアとしては、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアが用いられる。また、記録メディアは、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であってもよい。
【0192】
また、メディアドライブ968と記録メディアを一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
【0193】
制御部970は、CPUやメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータ等を記憶する。メモリに記憶されているプログラムは、撮像装置96の起動時などの所定のタイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、撮像装置96がユーザ操作に応じた動作となるように各部を制御する。
【0194】
このように構成された撮像装置では、画像データ処理部964に本技術の画像符号化装置(画像符号化方法)や画像復号化装置(画像復号化方法)の機能が設けられる。したがって、撮像画像をメモリ部967や記録メディア等に記録する場合や記録されている撮像画像を再生する際に、高速に記録再生を行うことができる。
【0195】
また、本技術は上述した技術の実施の形態に限定して解釈されるべきではない。この技術の実施の形態は、例示という形態で本技術を開示しており、本技術の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本技術の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【0196】
なお、本技術は以下のような構成も取ることができる。
(1) シンタックス要素を二値化データに変換する二値化部と、
前記シンタックス要素に対するコンテキスト変数を特定するためのコンテキストインデックスを並列処理単位内で重複しないように設定するコンテキストインデックス設定部と、
前記コンテキストインデックス設定部により設定されたコンテキストインデックスに応じてコンテキスト変数を選択するコンテキスト変数選択処理部と、
前記並列処理単位毎に、前記コンテキスト変数選択処理部により選択されたコンテキスト変数を用いて前記二値化データの算術符号化を並列して行う算術符号化処理部と
を備える画像符号化装置。
(2) 前記シンタックス要素に、前記並列処理数を示す情報を含めた(1)に記載の画像符号化装置。
(3) 前記並列処理数を設定する並列処理数設定部を更に備える(1)または(2)に記載の画像符号化装置。
(4) 前記並列処理数設定部は、前記並列処理数を、スライス単位で設定する(3)に記載の画像符号化装置。
(5) 前記並列処理数設定部は、前記並列処理数を、画像の解像度またはフレームレートに応じて設定する(4)に記載の画像符号化装置。
(6) 前記並列処理数設定部は、前記並列処理数を、ブロック単位で設定する(3)に記載の画像符号化装置。
(7) 前記並列処理数設定部は、前記並列処理数を、前記ブロック単位で行われた直交変換におけるゼロ係数の数に応じて設定する(6)に記載の画像符号化装置。
(8) 前記並列処理数設定部は、前記並列処理数を、スライス単位とブロック単位の少なくとも何れかの単位で設定して、ブロック単位で並列処理数が設定されていない場合に、スライス単位で設定された並列処理数を用いる(3)に記載の画像符号化装置。
(9) 前記コンテキスト変数選択処理部は、直交変換係数を示すシンタックス要素毎のインデックスと前記コンテキストインデックスの関係を示す割り当てテーブルを用いて、前記コンテキストインデックスを設定する(1)乃至(8)の何れかに記載の画像符号化装置。
(10) 前記割り当てテーブルでは、周波数が近傍する直交変換係数では、等しいコンテキストインデックスをより多く用いるように、前記インデックスと前記コンテキストインデックスが関係付けられている(9)に記載の画像符号化装置。
(11) 復号するシンタックス要素に対応するコンテキスト変数を特定するためのコンテキストインデックスを、並列処理単位内で重複しないように設定するコンテキストインデックス設定部と、
前記コンテキストインデックス設定部により設定されたコンテキストインデックスに応じてコンテキスト変数を選択するコンテキスト変数選択処理部と、
前記並列処理単位毎に、前記コンテキスト変数選択処理部により選択されたコンテキスト変数を用いて符号化データの算術復号を並列して行う算術復号処理部と、
前記算術復号を行うことによって得られた二値化データをシンタックス要素の値に変換する多値化部と
を備える画像復号装置。
(12) 前記並列処理数を設定する並列処理数設定部を更に備える(11)に記載の画像復号装置。
(13) 前記並列処理数設定部は、前記並列処理数を、前記符号化データに含まれている前記並列処理数を示すシンタックス要素に基づいて決定する(12)に記載の画像復号装置。
(14) 前記並列処理数設定部は、前記並列処理数を、復号する画像の解像度またはフレームレートに応じてスライス単位で設定する(12)に記載の画像復号装置。
(15) 前記コンテキスト変数選択処理部は、直交変換係数を示すシンタックス要素毎のインデックスと前記コンテキストインデックスの関係を示す割り当てテーブルを用いて、前記コンテキストインデックスを設定する(11)乃至(14)の何れかに記載の画像復号装置。
【産業上の利用可能性】
【0197】
本技術の画像符号化装置と画像復号装置およびその方法では、算術符号化や算術復号を並列して行う場合に、並列処理単位内で重複を生じないようにコンテキストインデックスを設定して、設定されたコンテキストインデックスに対応するコンテキスト変数を用いて算術符号化や算術復号が行われる。このため、並列処理単位内において、コンテキスト変数を更新して、更新後のコンテキスト変数を用いて算術符号化や算術復号が行われることがなく、画像の符号化処理や復号処理を高速に行うことができるようになる。したがって、本技術は、MPEG、H.26x等のように、ブロック単位で符号化を行うことにより得られた符号化ストリームを、衛星放送、ケーブルTV、インターネット、携帯電話などのネットワークメディアを介して送受信する電子機器や、光ディスク、磁気ディスク、フラッシュメモリのような記憶メディアを用いて画像の記録再生を行う電子機器に適している。
【符号の説明】
【0198】
10・・・画像符号化装置、11・・・A/D変換部、12,57・・・画面並べ替えバッファ、13,23,55・・・演算部、14・・・直交変換部、15・・・量子化部、16・・・可逆符号化部、17・・・蓄積バッファ、18・・・レート制御部、21,53・・・逆量子化部、22,54・・・逆直交変換部、24,56・・・デブロッキングフィルタ、25,61・・・フレームメモリ、31・・・イントラ予測部、32・・・動き予測・補償部、33・・・予測画像・最適モード選択部、50・・・画像復号装置、51・・・蓄積バッファ、52・・・可逆復号部、53・・・逆量子化部、58・・・D/A変換部、71・・・イントラ予測部、72・・・動き補償部、73,946・・・セレクタ、90・・・テレビジョン装置、92・・・携帯電話機、94・・・記録再生装置、96・・・撮像装置、160・・・CABAC符号化器、161・・・二値化部、162,201,521・・・コンテキストインデックス(ctxIdx)設定部、163,522・・・コンテキスト変数選択処理部、163-0〜163-N,202-0,202-1,522-0〜522-N・・・変数選択部、164・・・算術符号化処理部、164-0〜164-N,203-0,203-1・・・算術符号化部、165・・・符号化結果選択部、167,527・・・並列処理数設定部、520・・・CABAC復号器、523・・・算術復号処理部、523〜0〜523〜N・・・算術復号部、524・・・復号結果選択部、525・・・多値化部、526・・・レジスタ、901,821・・・アンテナ、902・・・チューナ、903・・・デマルチプレクサ、904,947・・・デコーダ、905・・・映像信号処理部、906,930,965・・・表示部、907・・・音声信号処理部、908,924・・・スピーカ、909,942,966・・・外部インタフェース部、910,931,949,970・・・制御部、911,950,971・・・ユーザインタフェース部、912,933,972・・・バス、922・・・通信部、923・・・音声コーデック、925・・・マイクロホン、926・・・カメラ部、927・・・画像処理部、928・・・多重分離部、929・・・記録再生部、932・・・操作部、941・・・チューナ、943・・・エンコーダ、944・・・HDD部、945・・・ディスクドライブ、948,969・・・OSD部、961・・・光学ブロック、962・・・撮像部、963・・・カメラ信号処理部、964・・・画像データ処理部、967・・・メモリ部、968・・・メディアドライブ

【特許請求の範囲】
【請求項1】
シンタックス要素を二値化データに変換する二値化部と、
前記シンタックス要素に対するコンテキスト変数を特定するためのコンテキストインデックスを並列処理単位内で重複しないように設定するコンテキストインデックス設定部と、
前記コンテキストインデックス設定部により設定されたコンテキストインデックスに応じてコンテキスト変数を選択するコンテキスト変数選択処理部と、
前記並列処理単位毎に、前記コンテキスト変数選択処理部により選択されたコンテキスト変数を用いて前記二値化データの算術符号化を並列して行う算術符号化処理部と
を備える画像符号化装置。
【請求項2】
前記シンタックス要素に、前記並列処理数を示す情報を含めた
請求項1記載の画像符号化装置。
【請求項3】
前記並列処理数を設定する並列処理数設定部を更に備える
請求項2記載の画像符号化装置。
【請求項4】
前記並列処理数設定部は、前記並列処理数を、スライス単位で設定する
請求項3記載の画像符号化装置。
【請求項5】
前記並列処理数設定部は、前記並列処理数を、画像の解像度またはフレームレートに応じて設定する
請求項4記載の画像符号化装置。
【請求項6】
前記並列処理数設定部は、前記並列処理数を、ブロック単位で設定する
請求項3記載の画像符号化装置。
【請求項7】
前記並列処理数設定部は、前記並列処理数を、前記ブロック単位で行われた直交変換におけるゼロ係数の数に応じて設定する請求項6記載の画像符号化装置。
【請求項8】
前記並列処理数設定部は、前記並列処理数を、スライス単位とブロック単位の少なくとも何れかの単位で設定して、ブロック単位で並列処理数が設定されていない場合に、スライス単位で設定された並列処理数を用いる
請求項3記載の画像符号化装置。
【請求項9】
前記コンテキスト変数選択処理部は、直交変換係数を示すシンタックス要素毎のインデックスと前記コンテキストインデックスの関係を示す割り当てテーブルを用いて、前記コンテキストインデックスを設定する
請求項1記載の画像符号化装置。
【請求項10】
前記割り当てテーブルでは、周波数が近傍する直交変換係数では、等しいコンテキストインデックスをより多く用いるように、前記インデックスと前記コンテキストインデックスが関係付けられている
請求項9記載の画像符号化装置。
【請求項11】
シンタックス要素を二値化データに変換する二値化工程と、
前記シンタックス要素に対するコンテキスト変数を特定するためのコンテキストインデックスを並列処理単位内で重複しないように設定するコンテキストインデックス設定工程と、
前記コンテキストインデックス設定工程で設定されたコンテキストインデックスに応じてコンテキスト変数を選択するコンテキスト変数選択処理工程と、
前記並列処理単位毎に、前記選択されたコンテキスト変数を用いて前記二値化データの算術符号化を並列して行う算術符号化処理工程と
を含む画像符号化方法。
【請求項12】
復号するシンタックス要素に対応するコンテキスト変数を特定するためのコンテキストインデックスを、並列処理単位内で重複しないように設定するコンテキストインデックス設定部と、
前記コンテキストインデックス設定部により設定されたコンテキストインデックスに応じてコンテキスト変数を選択するコンテキスト変数選択処理部と、
前記並列処理単位毎に、前記コンテキスト変数選択処理部により選択されたコンテキスト変数を用いて符号化データの算術復号を並列して行う算術復号処理部と、
前記算術復号を行うことによって得られた二値化データをシンタックス要素の値に変換する多値化部と
を備える画像復号装置。
【請求項13】
前記並列処理数を設定する並列処理数設定部を更に備える
請求項12記載の画像復号装置。
【請求項14】
前記並列処理数設定部は、前記並列処理数を、前記符号化データに含まれている前記並列処理数を示すシンタックス要素に基づいて決定する
請求項13記載の画像復号装置。
【請求項15】
前記並列処理数設定部は、前記並列処理数を、復号する画像の解像度またはフレームレートに応じてスライス単位で設定する
請求項13記載の画像復号装置。
【請求項16】
前記コンテキスト変数選択処理部は、直交変換係数を示すシンタックス要素毎のインデックスと前記コンテキストインデックスの関係を示す割り当てテーブルを用いて、前記コンテキストインデックスを設定する
請求項12記載の画像復号装置。
【請求項17】
復号するシンタックス要素に対応するコンテキストインデックスを、並列処理単位内で重複しないように設定するコンテキストインデックス設定工程と、
前記コンテキストインデックス設定工程で設定されたコンテキストインデックスに応じてコンテキスト変数を選択するコンテキスト変数選択処理工程と、
前記並列処理単位で、前記コンテキスト変数選択工程で選択されたコンテキスト変数を用いて符号化データの算術復号を並列して行う算術復号工程と、
前記算術復号を行うことによって得られた二値化データをシンタックス要素に変換する多値化工程と
を含む画像復号方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate


【公開番号】特開2012−244482(P2012−244482A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−113783(P2011−113783)
【出願日】平成23年5月20日(2011.5.20)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】