(57)【要約】【課題】エラー耐性が高く特殊再生等に対応可能で符号化効率を高くする。【解決手段】復号テーブル生成部５２０は、符号化ストリームに含まれたテーブル学習情報に基づいて復号テーブルの設定を行う。復号部５２５は、この復号テーブルを用いて符号化ストリームの可変長復号処理を行う。また、復号テーブル生成部５２０は、可変長復号処理の結果に基づいて復号テーブルの更新を行う。したがって、符号化テーブルを用いて可変長符号化処理を行う場合に、可変長符号化処理の結果に基づいて学習を行い、出現頻度が高くなるに応じて符号長が短くなるように符号化テーブルを更新することで符号化効率を高めても、例えばスライス単位で可変長復号処理を正しく行うことができるので、エラー耐性が高く特殊再生等に対応可能で符号化効率を高くすることが可能となる。【選択図】        図２４
2013046282.tif 000002
【特許請求の範囲】
【請求項１】
復号テーブルを用いて符号化ストリームの可変長復号処理を行う復号部と、
前記符号化ストリームに含まれたテーブル学習情報に基づいて前記復号テーブルの設定を行い、前記可変長復号処理の結果に基づいて前記設定した復号テーブルの更新を行う復号テーブル生成部と
を備える画像処理装置。
【請求項２】
前記復号テーブル生成部は、前記符号化ストリームにおけるスライスヘッダに含まれたテーブル学習情報に基づいて前記復号テーブルの設定を行い、
前記復号部は、前記スライスヘッダに含まれたテーブル学習情報に基づいて設定された復号テーブルを用いて、当該スライスの可変長復号処理を開始する
請求項１記載の画像処理装置。
【請求項３】
前記復号テーブル生成部は、前記テーブル学習情報が前記符号化ストリームに含まれているか判別して、前記テーブル学習情報が含まれていないと判別した場合には、前記復号テーブルを初期化する
請求項１記載の画像処理装置。
【請求項４】
前記復号テーブル生成部は、前記符号化ストリームに含められているフラグ情報に基づき、前記テーブル学習情報が前記符号化ストリームに含まれているか否かの判別を行う
請求項３記載の画像処理装置。
【請求項５】
前記テーブル学習情報は符号化されており、
前記復号部は、前記符号化ストリームの復号処理を行うことで前記テーブル学習情報を取得する
請求項１記載の画像処理装置。
【請求項６】
復号テーブルを用いて符号化ストリームの可変長復号処理を行う工程と、
前記符号化ストリームに含まれたテーブル学習情報に基づいて前記復号テーブルの設定を行い、前記可変長復号処理の結果に基づいて前記設定した復号テーブルの更新を行う工程と
を含む画像処理方法。
【請求項７】
符号化テーブルを用いて可変長符号化処理を行い符号化ストリームを生成する符号化部と、
前記可変長符号化処理の結果に基づいて前記符号化テーブルの更新を行い、該更新後の符号化テーブルに基づきテーブル学習情報を生成して前記符号化ストリームに含める符号化テーブル生成部と
を備える画像処理装置。
【請求項８】
前記符号化テーブル生成部は、スライス開始時の前記可変長符号化処理で用いる符号化テーブルに基づきテーブル学習情報を生成して、該テーブル学習情報を前記符号化ストリームにおけるスライスヘッダに含める
請求項７記載の画像処理装置。
【請求項９】
前記符号化テーブル生成部は、前記符号化ストリームに前記テーブル学習情報が含まれているか否かを示すフラグ情報を生成して、前記符号化ストリームに設ける
請求項７記載の画像処理装置。
【請求項１０】
前記符号化テーブル生成部は、前記符号化ストリームに前記テーブル学習情報を含めない場合、前記符号化テーブルを初期化して前記可変長符号化処理を開始する
請求項９記載の画像処理装置。
【請求項１１】
前記符号化部は、前記テーブル学習情報の符号化を行う
請求項７記載の画像処理装置。
【請求項１２】
符号化テーブルを用いて可変長符号化処理を行い符号化ストリームを生成する工程と、
前記可変長符号化処理の結果に基づいて前記符号化テーブルの更新を行い、該更新後の符号化テーブルに基づきテーブル学習情報を生成して前記符号化ストリームに含める工程と
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この技術は、画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
Ｈ．２６４／ＡＶＣ（Advanced  Video  Coding）に続く次世代の映像符号化方式として、ＨＥＶＣ（High  Efficiency  Video  Coding）の標準化が進められている。ＨＥＶＣが使用する基本的な符号化技術は、Ｈ．２６４／ＡＶＣと同様である。しかし、エントロピー符号化の手法では、Ｈ．２６４／ＡＶＣのエントロピー符号化におけるＣＡＶＬＣ（Context-based Adaptive Variable Length Coding）およびＣＡＢＡＣ（Context-based  Adaptive  Binary  Arithmetic  Coding）とは異なる手法が提案されている（下記非特許文献１参照）。
【０００３】
ＣＡＶＬＣは、ＣＡＢＡＣに比べて符号化効率が劣るものの演算処理が容易である。そのため、Ｈ．２６４／ＡＶＣのベースラインプロファイルでは、ＣＡＢＡＣではなくＣＡＶＬＣが使用されている。これに対し、提案されているエントロピー符号化の手法では、エンコーダおよびデコーダにおいて、ＶＬＣ（Variable Length Coding：可変長符号化）テーブル内で各符号語に関連付けられる符号番号とシンタックス要素のインデックス値との組を保持する符号番号テーブルを記憶する。そして、符号化または復号の際、あるインデックス値が出現すると、上記符号番号テーブル内で、出現したインデックス値とそのすぐ上のインデックス値をスワップする。このようなスワップを行うことで、相対的に出現頻度の高いインデックス値を、より小さい符号番号に関連付けることで符号量の圧縮がはかられている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】K.Ugur  (Nokia),  K.R.Andersson  (LM  Ericsson),  A.Fuldseth  (Tandberg  Telecom),  “JCTVC-A119:Video  coding  technology  proposal  by  Tandberg,  Nokia,  and  Ericsson”,  Documents  of  the  first  meeting  of  the  Joint  Collaborative  Team  on  Video  Coding  (JCT-VC),  Dresden,  Germany,  15-23  April,  2010.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、Ｈ．２６４／ＡＶＣのＣＡＶＬＣやＣＡＢＡＣは、スライスの先頭で学習の状態を初期化する方法が用いられており、ＨＥＶＣにおいても同様な方法が検討されている。スライスの先頭で学習の状態を初期化すれば、ピクチャの途中であってもスライスの先頭から再生を行うことが可能となり、トリックプレイ等の特殊再生に対応することが可能となる。また、ピクチャの先頭で学習の状態を初期化する場合に比べてエラー耐性を高めることができる。しかし、学習期間が短くなることから符号化効率を高くできないおそれがある。
【０００６】
そこで、本発明は、エラー耐性が高く特殊再生等に対応可能で符号化効率を高くできる画像処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この技術の第１の側面は、復号テーブルを用いて符号化ストリームの可変長復号処理を行う復号部と、前記符号化ストリームに含まれたテーブル学習情報に基づいて前記復号テーブルの設定を行い、前記可変長復号処理の結果に基づいて前記設定した復号テーブルの更新を行う復号テーブル生成部とを備える画像処理装置にある。
【０００８】
この技術においては、符号化ストリームの例えばスライスヘッダに含まれたテーブル学習情報に基づいて復号テーブルの設定が行われて、この復号テーブルを用いて当該スライスの可変長復号処理が開始される。さらに、可変長復号処理の結果に基づいて復号テーブルの更新が行われる。また、符号化ストリームに含められているフラグ情報に基づき、テーブル学習情報が含まれているか否かの判別が行われて、テーブル学習情報が含まれていないと判別した場合には、前記復号テーブルの初期化が行われる。また、テーブル学習情報は符号化されており、符号化ストリームの復号処理を行うことでテーブル学習情報が取得される。
【０００９】
この技術の第２の側面は、復号テーブルを用いて符号化ストリームの可変長復号処理を行う工程と、前記符号化ストリームに含まれたテーブル学習情報に基づいて前記復号テーブルの設定を行い、前記可変長復号処理の結果に基づいて前記設定した復号テーブルの更新を行う工程とを含む画像処理方法にある。
【００１０】
この技術の第３の側面は、符号化テーブルを用いて可変長符号化処理を行い符号化ストリームを生成する符号化部と、前記可変長符号化処理の結果に基づいて前記符号化テーブルの更新を行い、該更新後の符号化テーブルに基づきテーブル学習情報を生成して前記符号化ストリームに含める符号化テーブル生成部とを備える画像処理装置にある。  
この技術においては、符号化テーブルを用いて可変長符号化処理を行い符号化ストリームの生成が行われる。また、可変長符号化処理の結果に基づいて符号化テーブルの更新を行い、更新後の符号化テーブル例えばスライス開始時の可変長符号化処理で用いる符号化テーブルに基づいて生成したテーブル学習情報が符号化ストリームの例えばスライスヘッダに含められる。また、テーブル学習情報が含まれているか否かを示すフラグ情報を符号化ストリームに設けて、符号化ストリームにテーブル学習情報を含めない場合には、符号化テーブルを初期化して可変長符号化処理を開始する。また、テーブル学習情報は符号化されて符号化ストリームに含められる。
【００１１】
この技術の第４の側面は、符号化テーブルを用いて可変長符号化処理を行い符号化ストリームを生成する工程と、前記可変長符号化処理の結果に基づいて前記符号化テーブルの更新を行い、該更新後の符号化テーブルに基づきテーブル学習情報を生成して前記符号化ストリームに含める工程とを含む画像処理方法にある。
【発明の効果】
【００１２】
この技術によれば、符号化ストリームに含まれたテーブル学習情報に基づいて復号テーブルの設定が行われて、この復号テーブルを用いて符号化ストリームの可変長復号処理が行われる。さらに、可変長復号処理の結果に基づいて復号テーブルの更新が行われる。また、符号化テーブルを用いて可変長符号化処理を行い符号化ストリームの生成が行われて、可変長符号化処理の結果に基づいて符号化テーブルが更新される。さらに、更新後の符号化テーブルに基づきテーブル学習情報が生成されて符号化ストリームに含められる。このため、例えばスライスの先頭にテーブル学習情報を設けるようにすれば、スライス単位で再生を行うことが可能となり、スライス毎にテーブルを初期化する場合に比べて学習期間も長くできるので符号化効率を高くできるようになる。
【図面の簡単な説明】
【００１３】
【図１】画像符号化装置の構成を例示した図である。
【図２】画像符号化装置の動作を示すフローチャートである。
【図３】可逆符号化部において可変長符号化を行う部分の構成を例示した図である。
【図４】ＧＯＰの構成を示す図である。
【図５】シンタックス要素last_pos_level_oneの可変長符号化動作を例示した図である。
【図６】変数vlcNumを決定するためのテーブルを示す図である。
【図７】lastPosVlcNumIndexを示す図である。
【図８】VlcNumTableを示す図である。
【図９】lastPosTableを示す図である。
【図１０】テーブル学習情報を示す図である。
【図１１】splitPredPartModeTableの初期値を示す図である。
【図１２】intraModeTableの初期値を示す図である。
【図１３】cbpSpilitTransTableの初期値を示す図である。
【図１４】スライスヘッダのシンタックスを例示した図である。
【図１５】シンタックス要素enable_entropy_headerの構成を例示した図である。
【図１６】ＶＬＣテーブルにおける学習値の割り当て例を示した図である。
【図１７】ダイレクトスワップ方式を説明するための図である。
【図１８】カウンタスワップ方式を説明するための図である。
【図１９】ソート処理を行う場合について説明するための図である。
【図２０】可逆符号化部における処理の一例を示すフローチャートである。
【図２１】テーブルの学習動作を示すフローチャートである。
【図２２】画像復号装置の構成を例示した図である。
【図２３】画像復号装置の動作を示すフローチャートである。
【図２４】可逆復号部において可変長復号を行う部分の構成を例示した図である。
【図２５】シンタックス要素last_pos_level_oneの可変長復号動作を例示した図である。
【図２６】可逆復号部における処理の一例を示すフローチャートである。
【図２７】テレビジョン装置の概略的な構成を例示した図である。
【図２８】携帯電話機の概略的な構成を例示した図である。
【図２９】記録再生装置の概略的な構成を例示した図である。
【図３０】撮像装置の概略的な構成を例示した図である。
【発明を実施するための形態】
【００１４】
以下、本技術を実施するための形態について説明する。なお、説明は以下の順序で行う。
１．画像符号化装置の構成
２．画像符号化装置の動作
３．可逆符号化部の構成
４．可逆符号化部の動作
５．テーブルの学習動作
６．画像復号装置の構成
７．画像復号装置の動作
８．可逆復号部の構成
９．可逆復号部の動作
１０．応用例
【００１５】
＜１．画像符号化装置に適用した場合の構成＞
図１は、本技術の画像処理装置を適用した画像符号化装置の構成を例示している。画像符号化装置１０は、アナログ／ディジタル変換部（Ａ／Ｄ変換部）１１、画面並べ替えバッファ１２、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８を備えている。さらに、画像符号化装置１０は、逆量子化部２１、逆直交変換部２２、加算部２３、デブロッキングフィルタ処理部２４、フレームメモリ２５、セレクタ２６、イントラ予測部３１、動き予測・補償部３２、予測画像・最適モード選択部３３を備えている。
【００１６】
Ａ／Ｄ変換部１１は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ１２に出力する。
【００１７】
画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ１２は、符号化処理に係るＧＯＰ（Group of Pictures）構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部１３とイントラ予測部３１と動き予測・補償部３２に出力する。
【００１８】
減算部１３には、画面並べ替えバッファ１２から出力された画像データと、後述する予測画像・最適モード選択部３３で選択された予測画像データが供給される。減算部１３は、画面並べ替えバッファ１２から出力された画像データと予測画像・最適モード選択部３３から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部１４に出力する。
【００１９】
直交変換部１４は、減算部１３から出力された予測誤差データに対して、離散コサイン変換（DCT；Discrete Cosine Transform）、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部１４は、直交変換処理を行うことにより得られた変換係数データを量子化部１５に出力する。
【００２０】
量子化部１５には、直交変換部１４から出力された変換係数データと、後述するレート制御部１８からレート制御信号が供給されている。量子化部１５は変換係数データの量子化を行い、量子化データを可逆符号化部１６と逆量子化部２１に出力する。また、量子化部１５は、レート制御部１８からのレート制御信号に基づき量子化パラメータ（量子化スケール）を切り替えて、量子化データのビットレートを変化させる。
【００２１】
可逆符号化部１６には、量子化部１５から出力された量子化データ、および、後に説明するイントラ予測部３１と動き予測・補償部３２により生成され予測画像・最適モード選択部３３により選択されるイントラ予測またはインター予測に関する情報が供給される。イントラ予測に関する情報は、例えば、ブロック毎の最適なイントラ予測モードを示す予測モード情報を含み得る。また、インター予測に関する情報は、例えば、ブロック毎の動きベクトルの予測のための予測モード情報、差分動きベクトル情報、および参照画像情報などを含み得る。
【００２２】
可逆符号化部１６は、入力される符号化対象のバイナリデータをシンタックス要素（syntax  element）毎に取得して可変長符号化を行い符号化ストリームを生成する。なお、シンタックス要素毎のバイナリデータが示す値をシンタックス要素値と呼ぶ。また、可逆符号化部１６は、可変長符号化処理結果に基づいて学習を行い、発生頻度が高くなるに伴い符号長が短くなるように符号化テーブルを更新する。さらに、可逆符号化部１６は、更新後の符号化テーブルに基づきテーブル学習情報を生成して符号化ストリームに含める。
テーブル学習情報は、学習が行われている符号化テーブルに対応した復号テーブルを画像復号装置で生成可能とするための情報である。可逆符号化部１６は、テーブル学習情報を符号化ストリームに含めることで、例えばスライス単位で復号を行う場合でも、テーブル学習情報を利用することで、可変長符号化処理前のバイナリデータを可変長復号処理によって正しく生成できるようにする。可逆符号化部１６は、生成した符号化ストリームを蓄積バッファ１７へ出力する。
【００２３】
蓄積バッファ１７は、可逆符号化部１６からの符号化ストリームを蓄積する。また、蓄積バッファ１７は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
【００２４】
レート制御部１８は、蓄積バッファ１７の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部１５に出力する。レート制御部１８は、例えば蓄積バッファ１７から空き容量を示す情報を取得する。レート制御部１８は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部１８は蓄積バッファ１７の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
【００２５】
逆量子化部２１は、量子化部１５から供給された量子化データの逆量子化処理を行う。逆量子化部２１は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部２２に出力する。
【００２６】
逆直交変換部２２は、逆量子化部２１から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部２３に出力する。
【００２７】
加算部２３は、逆直交変換部２２から供給されたデータと予測画像・最適モード選択部３３から供給された予測画像データを加算して復号画像データを生成して、デブロッキングフィルタ処理部２４とフレームメモリ２５に出力する。
【００２８】
デブロッキングフィルタ処理部２４は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ処理部２４は、加算部２３から供給された復号画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の画像データをフレームメモリ２５に出力する。
【００２９】
フレームメモリ２５は、加算部２３から供給された復号画像データとデブロッキングフィルタ処理部２４から供給されたフィルタ処理後の復号画像データを参照画像の画像データとして保持する。
【００３０】
セレクタ２６は、イントラ予測を行うためにフレームメモリ２５から読み出されたフィルタ処理前の参照画像データをイントラ予測部３１に供給する。また、セレクタ２６は、インター予測を行うためフレームメモリ２５から読み出されたフィルタ処理後の参照画像データを動き予測・補償部３２に供給する。
【００３１】
イントラ予測部３１は、画面並べ替えバッファ１２から出力された符号化対象画像の画像データとフレームメモリ２５から読み出したフィルタ処理前の参照画像データを用いて、候補となる各イントラ予測モードのイントラ予測処理を行う。さらに、イントラ予測部３１は、各イントラ予測モードに対してコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最良となるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部３１は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードに関する予測モード情報、および最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部３３に出力する。また、イントラ予測部３１は、後述するようにコスト関数値の算出で用いる発生符号量を得るため、各イントラ予測モードのイントラ予測処理において、イントラ予測モードに関する予測モード情報を可逆符号化部１６に出力する。
【００３２】
動き予測・補償部３２は、マクロブロックに対応する各予測ブロックサイズで動き予測・補償処理を行う。動き予測・補償部３２は、画面並べ替えバッファ１２から読み出された符号化対象画像における各予測ブロックサイズの画像毎に、フレームメモリ２５から読み出されたフィルタ処理後の参照画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部３２は、検出した動きベクトルに基づいて復号画像に動き補償処理を施して予測画像の生成を行う。また、動き予測・補償部３２は、各予測ブロックサイズに対してコスト関数値を算出して、算出したコスト関数値が最小となる予測ブロックサイズ、すなわち符号化効率が最良となる予測ブロックサイズを、最適インター予測モードとして選択する。動き予測・補償部３２は、最適インター予測モードで生成された予測画像データと最適インター予測モードに関する予測モード情報、および最適インター予測モードでのコスト関数値を予測画像・最適モード選択部３３に出力する。また、動き予測・補償部３２は、コスト関数値の算出で用いる発生符号量を得るため、各予測ブロックサイズでのインター予測処理において、インター予測モードに関する予測モード情報を可逆符号化部１６に出力する。なお、動き予測・補償部３２は、インター予測モードとして、スキップドマクロブロックやダイレクトモードでの予測も行う。
【００３３】
予測画像・最適モード選択部３３は、イントラ予測部３１から供給されたコスト関数値と動き予測・補償部３２から供給されたコスト関数値を、マクロブロック単位で比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部３３は、最適モードで生成した予測画像データを減算部１３と加算部２３に出力する。さらに、予測画像・最適モード選択部３３は、最適モードの予測モード情報を可逆符号化部１６に出力する。なお、予測画像・最適モード選択部３３は、スライス単位でイントラ予測またはインター予測を行うようにしてもよい。
【００３４】
＜２．画像符号化装置の動作＞
図２は、画像符号化装置の動作を示すフローチャートである。ステップＳＴ１１において、Ａ／Ｄ変換部１１は入力された画像信号をＡ／Ｄ変換する。
【００３５】
ステップＳＴ１２において画面並べ替えバッファ１２は、画面並べ替えを行う。画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【００３６】
ステップＳＴ１３において減算部１３は、予測誤差データの生成を行う。減算部１３は、ステップＳＴ１２で並べ替えられた画像の画像データと予測画像・最適モード選択部３３で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。なお、予測画像・最適モード選択部３３でイントラ予測部３１から供給された予測画像と動き予測・補償部３２からの予測画像の選択がスライス単位で行われるとき、イントラ予測部３１から供給された予測画像が選択されたスライスでは、イントラ予測が行われる。また、動き予測・補償部３２からの予測画像が選択されたスライスでは、インター予測が行われる。
【００３７】
ステップＳＴ１４において直交変換部１４は、直交変換処理を行う。直交変換部１４は、減算部１３から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データを出力する。
【００３８】
ステップＳＴ１５において量子化部１５は、量子化処理を行う。量子化部１５は、変換係数データを量子化する。量子化に際しては、後述するステップＳＴ２５の処理で説明されるように、レート制御が行われる。
【００３９】
ステップＳＴ１６において逆量子化部２１は、逆量子化処理を行う。逆量子化部２１は、量子化部１５により量子化された変換係数データを量子化部１５の特性に対応する特性で逆量子化する。
【００４０】
ステップＳＴ１７において逆直交変換部２２は、逆直交変換処理を行う。逆直交変換部２２は、逆量子化部２１により逆量子化された変換係数データを直交変換部１４の特性に対応する特性で逆直交変換する。
【００４１】
ステップＳＴ１８において加算部２３は、復号画像データの生成を行う。加算部２３は、予測画像・最適モード選択部３３から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、復号画像データを生成する。
【００４２】
ステップＳＴ１９においてデブロッキングフィルタ処理部２４は、デブロッキングフィルタ処理を行う。デブロッキングフィルタ処理部２４は、加算部２３より出力された復号画像データをフィルタリングしてブロック歪みを除去する。また、デブロッキングフィルタ処理部２４は、画像データを記憶するラインメモリのメモリ容量を削減しても、垂直フィルタ処理を行えるようする。具体的には、デブロッキングフィルタ処理部２４は、垂直方向のブロック間の境界検出によって検出された境界に応じて、境界の上側に位置するブロックにおけるフィルタ演算に用いる画像範囲を制御する。
【００４３】
ステップＳＴ２０においてフレームメモリ２５は、復号画像データを記憶する。フレームメモリ２５は、デブロッキングフィルタ処理前の復号画像データを記憶する。
【００４４】
ステップＳＴ２１においてイントラ予測部３１と動き予測・補償部３２は、それぞれ予測処理を行う。すなわち、イントラ予測部３１は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部３２は、インター予測モードの動き予測・補償処理を行う。この処理により、候補となる各予測モードでの予測処理がそれぞれ行われ、候補となる各予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードが選択され、選択された予測モードで生成された予測画像とそのコスト関数および予測モード情報が予測画像・最適モード選択部３３に供給される。
【００４５】
ステップＳＴ２２において予測画像・最適モード選択部３３は、予測画像データの選択を行う。予測画像・最適モード選択部３３は、イントラ予測部３１および動き予測・補償部３２より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードに決定する。さらに、予測画像・最適モード選択部３３は、決定した最適モードの予測画像データを選択して、減算部１３と加算部２３に供給する。この予測画像が、上述したように、ステップＳＴ１３，ＳＴ１８の演算に利用される。
【００４６】
ステップＳＴ２３において可逆符号化部１６は、可逆符号化処理を行う。可逆符号化部１６は、量子化部１５より出力された量子化データを可逆符号化する。このとき、上述したステップＳＴ２２において可逆符号化部１６に入力された予測モード情報（例えばマクロブロックタイプや予測モード、動きベクトル情報、参照ピクチャ情報等を含む）なども可逆符号化される。さらに、量子化データを可逆符号化して生成された符号化ストリームのヘッダ情報に、予測モード情報の可逆符号化データが付加される。
【００４７】
ステップＳＴ２４において蓄積バッファ１７は、蓄積処理を行い符号化ストリームを蓄積する。この蓄積バッファ１７に蓄積された符号化ストリームは適宜読み出され、伝送路を介して復号側に伝送される。
【００４８】
ステップＳＴ２５においてレート制御部１８は、レート制御を行う。レート制御部１８は、蓄積バッファ１７で符号化ストリームを蓄積するとき、オーバーフローまたはアンダーフローが蓄積バッファ１７で発生しないように、量子化部１５の量子化動作のレートを制御する。
【００４９】
＜３．可逆符号化部の構成＞
図３は、図１に示した画像符号化装置１０の可逆符号化部１６において可変長符号化を行う部分の構成を例示している。可逆符号化部１６は、符号化テーブル生成部１６０と符号化部１６５を有している。また、符号化テーブル生成部１６０は、カウント部１６１、スワップ部１６２、記憶部１６３、制御部１６４を有している。
【００５０】
符号化テーブル生成部１６０は、可変長符号化処理で用いる符号化テーブルを生成する。また、可変長符号化処理の結果に基づいて符号化テーブルの更新を行い、更新後の符号化テーブルに基づきテーブル学習情報を生成して符号化ストリームに含める。
【００５１】
符号化テーブル生成部１６０のカウント部１６１は、後述する学習においてカウント値に応じたスワップ動作を行うために出現頻度をカウントする。例えば、カウント部１６１は、ある１つのインデックス値が入力されると、入力されたインデックス値のカウンタ値をカウントアップする。また、カウント部１６１は、制御部１６４による制御のもと出現頻度のカウントの開始やカウントのリセット等を行う。
【００５２】
スワップ部１６２は、後述する学習においてスワップ処理を行うことで、出現頻度の高い順に短い符号語が割り当てられるように符号化テーブルを更新する。また、スワップ部１６２は、カウント部１６１によりカウントされた出現頻度に応じてスワップ処理を行う。
【００５３】
記憶部１６３は、半導体メモリなどの記憶媒体により構成されており、可変長符号化処理を行うために用いられる符号化テーブルを記憶する。また、記憶部１６３に記憶されている符号化テーブルは学習によって更新される。記憶部１６３には、例えば量子化された直交変換係数の可変長符号化において、非ゼロ係数の場所を示すシンタックス要素last_pos_level_oneに関しては、後述するlastPosVlcNumIndexTable，lastPosVlcNumTable，lastPosTable，符号語のパターンの異なる複数のＶＬＣテーブル等が記憶される。
【００５４】
制御部１６４は、符号化効率が高くなるように、可変長符号化処理を行うために用いる符号化テーブルの学習を行う。学習では、出現頻度の高い情報に対して割り当てる符号長が短くなるようにスワップ処理を行う。また、制御部１６４は、更新後の符号化テーブルに基づきテーブル学習情報を生成して符号化ストリームに含める。図４は、ＧＯＰ（Group of Pictures）の構成を提示している。ここで、１つのピクチャ（図４ではＩピクチャを例示）が複数のスライスに分割されており、スライス単位で再生を行えるようにする場合、例えばスライスヘッダにテーブル学習情報を設ける。このように、スライスの先頭部分にテーブル学習情報を設けることで、スライス毎に復号テーブルを初期化することなく復号処理を行えるようにして、スライス単位の再生と符号化効率の向上を可能とする。また、テーブル学習情報は、スライスの復号開始前に取得できればよくスライスヘッダに限らずパラメータセット等に設けるようにしてもよい。例えば１ピクチャが１スライスとされている場合、ピクチャパラメータセットにテーブル学習情報を設ける。
【００５５】
符号化部１６５は、符号化テーブルを用いてシンタックス要素毎のバイナリデータを符号化データに変換する。また、符号化部１６５は、取得した符号化データをストリームの一部として順次出力する。さらに、符号化部１６５は、符号化テーブルの学習において、出現頻度に応じて符号化テーブルを更新することができるように、出現頻度をカウントするための情報をカウント部１６１に出力する。
【００５６】
＜４．可逆符号化部の動作＞
次に、可逆符号化部の動作について説明する。なお、以下の説明は、例えば「WD3: Working Draft 3 of High-Efficiency Video Coding. Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11. 5th Meeting: Geneva, CH, 16-23 March, 2011」で示されているＣＡＶＬＣ方式（ＬＣＥＣ:Low Complexity Entropy Coding）を用いた場合を例示している。
【００５７】
図５は、非ゼロ係数の場所を示すシンタックス要素last_pos_level_oneの可変長符号化動作を例示している。
【００５８】
lastPosVlcTableは、図６に示すように変数blockTypeと変数vlcNumIdxの値から、変数vlcNumを決定するためのテーブルである。なお、図６では初期値を示している。変数blockTypeは、式（１）に基づいて決定される。
【数１】
2013046282.tif 000003
【００５９】
式（１）において変数Ｎは式（２）に基づいて設定される。また、式（２）において、「TrafoSize」はトランスフォームユニットのブロックサイズを示している。「cIdx」は、処理する画像信号がいずれのコンポーネント信号であるか示しており、例えば輝度信号では「cIdx＝０」、青色差信号では「cIdx＝１」赤色差信号では「cIdx＝２」とされる。また、「slice_type」はスライスのタイプを示している。例えばＰスライスは「slice_type＝０」、Ｂスライスは「slice_type＝１」、Ｉスライスは「slice_type＝２」とされる。
【数２】
2013046282.tif 000004
【００６０】
変数vlcNumIdxは、式（３）に示すように、lastPosVlcNumIndexに基づき変数blockTypeに応じて得られるlastPosVlcNumIndex[blockType]と「１６」のいずれか小さい値とされる。なお、lastPosVlcNumIndexは、図７に示すように初期値が「０」であり、その後、式（４）に示すように条件に応じて「＋１」または「−１」される。
【数３】
2013046282.tif 000005
【００６１】
ＶＬＣTableは、符号化処理において変数codeNumの値を符号化データである符号語（Code Word）に変換し、復号処理において符号語を変数codeNumの値に変換するために用いられる。ＶＬＣTableは複数設けられており、例えばシンタックス要素last_pos_level_oneの場合にはＶＬＣ２，４，７，９，１０，１２，１３の７つのテーブルから、変数blockTypeと変数vlcNumIdxの値に応じてVlcNumTableが選択される。例えば、変数blockTypeが「０」で変数vlcNumIdxが「０」である場合には、図８に示すVlcNumTableとしてＶＬＣ１０を用いる。このＶＬＣ１０を用いて符号化を行う場合、変数codeNumの値を符号語に変換する。例えば変数codeNumが「１」である場合、符号語は「０１」に変換される。
【００６２】
lastPosTableは、符号化処理においてバイナリデータであるシンタックス要素値を変数codeNumの値に変換し、復号処理において変数codeNumの値をシンタックス要素値に変換するために用いられる。なお、図９に示すlastPosTableは初期値を示している。変数tableNumは、式（５）に基づいて決定される。
【数４】
2013046282.tif 000006
【００６３】
例えば、lastPosTableが図９に示す初期値であり、シンタックス要素値が「０」で変数tableNumが「０」の場合、変数codeNumは「１」となる。
【００６４】
したがって、lastPosTableを用いてシンタックス要素値を変数codeNumの値に変換して、変数blockTypeと変数vlcNumIdxの値に応じて選択したVlcNumTableを用いて変数codeNumの値を符号語に変換する。このような変換を行うことで、シンタックス要素last_pos_level_oneの可変長符号化結果である符号化データを生成できる。
【００６５】
また、可逆符号化部１６は、シンタックス要素last_pos_level_oneの符号化効率が高くなるように、lastPosTableについて後述の学習を行う。また、可逆符号化部１６は、シンタックス要素last_pos_level_oneに限らす、他のシンタックス要素の符号化に用いるテーブルについても学習を行うことで、符号化効率を高くする。
【００６６】
さらに、可逆符号化部１６は、スライス単位で再生を行う場合でも学習結果を利用できるようにテーブル学習情報を例えばスライスヘッダに設けるようにする。
【００６７】
テーブル学習情報としては、例えば図１０に示すように、lastPosVlcNumIndex，lastPosTable，splitPredPartModeTable,intraModeTable，cbpSpilitTransTableが用いられる。
【００６８】
lastPosVlcNumIndexは、シンタックス要素last_pos_level_oneの符号化／復号処理において、上述のように変数blockTypeに応じてlastPosVlcNumIndexを求めるためのテーブルである。lastPosVlcNumIndexは、上述のように条件に応じて「＋１」または「−１」されて更新が行われる。なお、上述の図７は、lastPosVlcNumIndexの初期値を示している。
【００６９】
lastPosTableは、シンタックス要素last_pos_level_oneの符号化／復号処理において、上述のように変数codeNumと変数tableNumとシンタックス要素値の関係を示したテーブルである。このテーブルの学習では後述するダイレクトスワップ（direct swap）方式が用いられる。なお、上述の図９は、lastPosTableの初期値を示している。
【００７０】
splitPredPartModeTableは、変数codeNumと変数cuDepth（コーディングユニット（ＣＵ：Coding Unit）の階層を示す）に基づき、コーディングユニットの分割に関するシンタックス要素cu_split_pred_part_modeの値を求めるためのテーブルである。このテーブルの学習では、後述するカウンタスワップ（counter swap）方式が用いられる。なお、図１１は、splitPredPartModeTableの初期値を示している。  
intraModeTableは、変数ｋ（モード毎に算出して決定される数字）と変数codeNumに基づき、イントラ予測が最適符号化モードと選択されたときに符号化効率が最適となるモードのシンタックス要素rem_intra_luma_pred_modeを求めるためのテーブルである。このテーブルの学習ではダイレクトスワップ方式が用いられる。なお、図１２は、intraModeTableの初期値を示している。
【００７１】
cbpSpilitTransTableは、変数ｋと変数codeNumに基づき、符号化ブロックのパターンやブロック分割に関するシンタックス要素cbp_and_split_transformを求めるためのテーブルである。このテーブルの学習ではダイレクトスワップ方式が用いられる。図１３は、cbpSpilitTransTableの初期値を示している。
【００７２】
なお、テーブル学習情報は、例えばスライス単位で再生を行う場合でも、可変長復号処理によって可変長符号化処理前のバイナリデータを正しく生成できる情報であればよく、図１０に示す情報に限られない。
【００７３】
図１４は、このようなテーブル学習情報をスライスヘッダに設けることができるようにした場合のスライスヘッダのシンタックスを例示している。
【００７４】
スライスヘッダには、テーブルの初期化動作を決定するためのシンタックス要素enable_initialize_tableを設けている。例えば、当該スライスにおいてテーブルの初期化を行う場合、シンタックス要素enable_initialize_tableを「１」とする。また、初期化を行わない場合すなわち学習が行われているテーブルを用いる場合、シンタックス要素enable_initialize_tableを「０」とする。このようにして、シンタックス要素enable_initialize_tableによって、テーブルの初期化を行うか否か選択可能とする。
【００７５】
さらに、シンタックス要素enable_initialize_tableが「０」の場合、シンタックス要素enable_entropy_headerを設けて、テーブル学習情報をストリームに含める。図１５はシンタックス要素enable_entropy_headerの構成を例示している。シンタックス要素enable_entropy_headerは、lastPosVlcNumIndex，lastPosTable，splitPredPartModeTable,intraModeTable，cbpSpilitTransTableを含めるように構成されている。
【００７６】
このように、テーブル学習情報が含まれているか否かを示すフラグ情報であるシンタックス要素enable_entropy_headerを符号化ストリームに設けることで、当該スライスの開始時に学習の行われているテーブルを利用することが容易となる。
【００７７】
また、テーブル学習情報を符号化ストリームに設ける場合に可変長符号化を行えば、符号化効率を高めることができる。図１６は、テーブルの可変長符号化において、ＶＬＣテーブルにおける学習値のＶＬＣ割り当て例を示している。なお、図１６は初期値を示している。図１６の（Ａ）は、lastPosTableの変数codeNumと符号語の関係を示すＶＬＣテーブルを例示している。図１６の（Ｂ）は、splitPredPartModeTableの変数codeNumと符号語の関係を示すＶＬＣテーブルを例示している。また、図１６の（Ｃ）は、cbpSpilitTransTableの変数codeNumと符号語の関係を例示している。
【００７８】
＜５．テーブルの学習動作＞
可逆符号化部１６は、出現頻度が高くなるに伴い符号長が短くなるように符号化テーブルの学習を行うことで符号化効率を高くする。
【００７９】
学習では、ダイレクトスワップ方式やカウンタスワップ方式等を用いる。図１７は、ダイレクトスワップ方式を説明するための図である。なお、図１７において、符号語（Code Word）は、下段の符号語の符号長が上段の符号語の符号長以上とされており、符号語「Ｗ0」は最短の符号長である。
【００８０】
まず、最初に発生した変数codeNumを例えば「１」とする。発生した変数codeNumとシンタックス要素値の関係が図１７の（Ａ）であり、シンタックス要素値が「１」である場合、シンタックス要素値「１」に対する符号語は「Ｗ1」となる。さらに、変数codeNum「１」およびその上の変数codeNum「０」について、図１７の（Ｂ）に示すようにシンタックス要素値のスワップを行い、次の処理では、図１７の（Ｂ）に示すテーブルを用いる。このテーブルでは、シンタックス要素値「１」に対する符号語が、学習によって「Ｗ1」から「Ｗ0」に変更されているのでシンタックス要素値が同じでも符号長を短くすることが可能となり符号化効率を高めることができる。
【００８１】
次に変数codeNum「２」が発生したときのテーブルが図１７の（Ｂ）であり、シンタックス要素値「２」である場合、シンタックス要素値「２」に対する符号語は「Ｗ2」となる。さらに、変数codeNum「２」およびその上の変数codeNum「１」について、図１７の（Ｃ）に示すようにシンタックス要素値のスワップを行い、次の処理では、図１７の（Ｃ）に示すテーブルを用いる。このテーブルでは、シンタックス要素値「２」に対する符号語が、学習によって「Ｗ2」から「Ｗ1」に変更されているのでシンタックス要素値が同じでも符号長を短くすることが可能となり符号化効率を高めることができる。
【００８２】
図１８は、カウンタスワップ方式を説明するための図である。カウンタスワップ方式では、出現頻度のカウントを行い、カウント値に基づきスワップを行う。
【００８３】
発生した変数codeNumを例えば「１」とする。発生した変数codeNumとシンタックス要素値の関係が図１８の（Ａ）であり、シンタックス要素値が「１」である場合、シンタックス要素値「１」に対する符号語は「Ｗ1」となる。さらに、変数codeNum「１」に対応するカウント値を「３０」から「３１」にカウントアップする。
【００８４】
その後の変数codeNum「１」の発生によりカウント値が「３２」から「３３」にカウントアップされると、変数codeNum「０」のカウント値「３２」よりもカウント値が大きくなる。したがって、変数codeNum「１」およびその上の変数codeNum「０」について、図１８の（Ｂ）に示すようにシンタックス要素値のスワップを行い、次の処理では図１８の（Ｂ）に示すテーブルを用いる。このテーブルでは、シンタックス要素値「１」に対する符号語が、学習によって「Ｗ1」から「Ｗ0」に変更されているのでシンタックス要素値が同じでも符号長を短くすることが可能となり符号化効率を高めることができる。
【００８５】
また、その後の変数codeNum「３」の発生によりカウント値が「２６」から「２７」にカウントアップされると、変数codeNum「２」のカウント値「２６」よりもカウント値が大きくなる。したがって、変数codeNum「３」およびその上の変数codeNum「２」について、図１８の（Ｃ）に示すようにシンタックス要素値のスワップを行い、次の処理では図１８の（Ｃ）に示すテーブルを用いる。このテーブルでは、シンタックス要素値「３」に対する符号語が、学習によって「Ｗ3」から「Ｗ2」に変更されているのでシンタックス要素値が同じでも符号長を短くすることが可能となり符号化効率を高めることができる。
【００８６】
また、カウントを所定期間を行い、所定期間が経過する毎にカウント値のソート処理を行い、変数codeNumの出現頻度に応じて符号語の割り当てを行うようにしてもよい。例えばソート処理の開始前のカウント値が図１９の（Ａ）の状態である場合、カウント値に基づいてソート処理を行い、図１９の（Ｂ）に示すように、出現頻度の高い変数codeNumの値に対して短い符号語が割り当てられるようにテーブルに更新する。
【００８７】
ソート処理は、例えば、クイックソートまたはバブルソートなどの任意のソートアルゴリズムを使用する。また、ソート処理は、図１７，１８，１９に例示したようなスワップ処理と比較して多くの処理コストを要する。したがって、所定の間隔や指定された間隔等でソートを行うようにすれば、処理コストを低減できる。
【００８８】
ソート間隔は、例えば、画像サイズまたは利用可能なリソースの制約などに応じて決定され得る。そして、ソート間隔を指定するソート制御パラメータが、シーケンスパラメータセット、ピクチャパラメータセットまたはスライスヘッダ等に挿入するようにしてもよい。例えば、ソート制御パラメータは、シンタックス要素の数や符号化単位（例えばコーディングユニット）の数，マクロブロックの数等でソート間隔を指定するパラメータ、１ピクチャ内でのソート回数を指定するパラメータ等を用いる。また、エンコーダおよびデコーダの双方にとって既知の（例えば、予め仕様として定義される）ソート制御パラメータを使用すれば、ストリームにソート制御パラメータを含める必要がなく、符号量を削減できる。
【００８９】
また、カウンタ値は時間の経過とともに増大していくことから、ソート間隔またはソート間隔よりも大きいリセット間隔で、出現頻度のカウント結果をリセットする。このようなリセット動作を行うことで不必要に長いタイムスパンで出現頻度がカウントされることがなくなり、メモリリソースの浪費を防止できる共にソート処理の処理コストも低減できる。
【００９０】
また、リセットの代わりにカウンタの正規化を実行してもよい。例えば出現頻度を代表値で除算して正規化すれば、カウント値が大きな値となってしまうことを防止できるので、メモリリソースの浪費が防止できる共にソート処理の処理コストも低減できる。
【００９１】
図２０は、可逆符号化部１６における処理の一例を示すフローチャートである。ステップＳＴ３１で可逆符号化部１６は初期化を行う。可逆符号化部１６は、可変長符号化処理の初期化、例えば可変長符号化処理に用いる符号化テーブルやテーブル学習情報、テーブルの学習動作におけるカウント値等を初期化してステップＳＴ３２に進む。
【００９２】
ステップＳＴ３２で可逆符号化部１６は、スライスの先頭であるか判別する。可逆符号化部１６は、スライスの先頭である場合、ステップＳＴ３３に進み、スライスの先頭でない場合、ステップＳＴ３４に進む。
【００９３】
ステップＳＴ３３で可逆符号化部１６は、テーブル学習情報の挿入を行う。可逆符号化部１６は、例えばスライスヘッダにテーブル学習情報を挿入してステップＳＴ３４に進む。なお、ステップＳＴ３３では、テーブル学習情報が符号化ストリームに含まれているか否かを示すフラグ情報をスライスヘッダに設けておけば、復号時にテーブル学習情報の取得やテーブルの初期化を容易かつ確実に行うことができる。
【００９４】
ステップＳＴ３４で可逆符号化部１６は、バイナリデータの可変長符号化を行う。可逆符号化部１６は、符号化テーブルを用いて符号化対象のバイナリデータの可変長符号化を行いステップＳＴ３５に進む。
【００９５】
ステップＳＴ３５で可逆符号化部１６は符号化テーブルの学習を行う。可逆符号化部１６は、出現頻度が高くなるに伴い符号長が短くなるように、可変長符号化結果に基づき符号化テーブルの学習を行う。また、可逆符号化部１６は、テーブル学習情報を生成してステップＳＴ３２に戻る。
【００９６】
図２１はテーブルの学習動作を示すフローチャートである。ステップＳＴ４１で可逆符号化部１６は、変数codeNumを取得する。ステップＳＴ４２で可逆符号化部１６は、取得した変数codeNumについてカウント値を加算する。
【００９７】
ステップＳＴ４３で可逆符号化部１６は、スワップ（またはソート）を行うか判別する。可逆符号化部１６は、スワップ（またはソート）を行う条件が満たされた場合はステップＳＴ４４に進み、条件が満たされていない場合はステップＳＴ４５に進む。
【００９８】
ステップＳＴ４４で可逆符号化部１６は、スワップ（またはソート）を行いステップＳＴ４５に進む。
【００９９】
ステップＳＴ４５で可逆符号化部１６はリセットタイミングあるか判別する。リセットタイミングである場合はステップＳＴ４６に進み、リセットタイミングでない場合は学習動作を終了する。
【０１００】
ステップＳＴ４６では、カウント値をリセットして学習動作を終了する。
【０１０１】
このように、可逆符号化部１６は、可変長符号化処理で用いる符号化テーブルの学習を行う。また、可逆符号化部１６は、学習によって更新された符号化テーブルに基づきテーブル学習情報を生成してスライスヘッダ等に設ける。したがって、符号化ストリームの復号時に、スライスヘッダ等に設けられているテーブル学習情報を利用することで、例えばスライス単位の再生において復号処理を行うことができるようになる。また、学習結果を引き続き利用できるので、スライス単位で符号化テーブルを初期化する場合に比べて符号化効率を高くできる。
【０１０２】
＜６．画像復号装置の構成＞
入力画像を符号化して生成された符号化ストリームは、所定の伝送路や記録媒体等を介して画像復号装置に供給されて復号される。
【０１０３】
図２２は、本技術の画像処理装置を適用した画像復号装置の構成を例示している。画像復号装置５０は、蓄積バッファ５１、可逆復号部５２、逆量子化部５３、逆直交変換部５４、加算部５５、デブロッキングフィルタ処理部５６、画面並べ替えバッファ５７、Ｄ／Ａ変換部５８を備えている。さらに、画像復号装置５０は、フレームメモリ６１、セレクタ６２，６５、イントラ予測部６３、動き補償部６４を備えている。
【０１０４】
蓄積バッファ５１は、伝送されてきた符号化ストリームを蓄積する。可逆復号部５２は、蓄積バッファ５１より供給された符号化ストリームを、図２の可逆符号化部１６の符号化方式に対応する方式で復号する。また、可逆復号部５２は、符号化ストリームのヘッダ情報を復号して得られた予測モード情報をイントラ予測部６３や動き補償部６４に出力する。
【０１０５】
逆量子化部５３は、可逆復号部５２で復号された量子化データを、図２の量子化部１５の量子化方式に対応する方式で逆量子化する。逆直交変換部５４は、図２の直交変換部１４の直交変換方式に対応する方式で逆量子化部５３の出力を逆直交変換して加算部５５に出力する。
【０１０６】
加算部５５は、逆直交変換後のデータとセレクタ６５から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ処理部５６とフレームメモリ６１に出力する。
【０１０７】
デブロッキングフィルタ処理部５６は、加算部５５から供給された復号画像データに対して、図２のデブロッキングフィルタ処理部２４と同様にフィルタ処理を行い、ブロック歪みを除去して画面並べ替えバッファ５７とフレームメモリ６１に出力する。
【０１０８】
画面並べ替えバッファ５７は、画像の並べ替えを行う。すなわち、図２の画面並べ替えバッファ１２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、Ｄ／Ａ変換部５８に出力される。
【０１０９】
Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７から供給された画像データをＤ／Ａ変換し、図示せぬディスプレイに出力することで画像を表示させる。
【０１１０】
フレームメモリ６１は、加算部５５から供給されたフィルタ処理前の復号画像データとデブロッキングフィルタ処理部５６から供給されたフィルタ処理後の復号画像データとを、参照画像の画像データとして保持する。
【０１１１】
セレクタ６２は、可逆復号部５２から供給された予測モード情報に基づき、イントラ予測が行われた予測ブロックの復号が行われるとき、フレームメモリ６１から読み出されたフィルタ処理前の参照画像データをイントラ予測部６３に供給する。また、セレクタ２６は、可逆復号部５２から供給された予測モード情報に基づき、インター予測が行われた予測ブロックの復号が行われるとき、フレームメモリ６１から読み出されたフィルタ処理後の参照画像データを動き補償部６４に供給する。
【０１１２】
イントラ予測部６３は、可逆復号部５２から供給された予測モード情報に基づいて予測画像の生成を行い、生成した予測画像データをセレクタ６５に出力する。
【０１１３】
動き補償部６４は、可逆復号部５２から供給された予測モード情報に基づいて、動き補償を行い、予測画像データを生成してセレクタ６５に出力する。すなわち、動き補償部６４は、予測モード情報に含まれる動きベクトル情報と参照フレーム情報に基づいて、参照フレーム情報で示された参照画像に対して動きベクトル情報に基づく動きベクトルで動き補償を行い、予測画像データを生成する。
【０１１４】
セレクタ６５は、イントラ予測部６３で生成された予測画像データを加算部５５に供給する。また、セレクタ６５は、動き補償部６４で生成された予測画像データを加算部５５に供給する。
【０１１５】
＜７．画像復号装置の動作＞
次に、図２３のフローチャートを参照して、画像復号装置５０の動作について説明する。ステップＳＴ５１で蓄積バッファ５１は、伝送されてきた符号化ストリームを蓄積する。ステップＳＴ５２で可逆復号部５２は、可逆復号処理を行う。可逆復号部５２は、蓄積バッファ５１から供給される符号化ストリームを復号する。すなわち、図２の可逆符号化部１６により符号化された各ピクチャの量子化データが得られる。また、可逆復号部５２、符号化ストリームのヘッダ情報に含まれている予測モード情報の可逆復号を行い、得られた予測モード情報をデブロッキングフィルタ処理部５６やセレクタ６２，６５に供給する。さらに、可逆復号部５２は、予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をイントラ予測部６３に出力する。また、可逆復号部５２は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報を動き補償部６４に出力する。
【０１１６】
ステップＳＴ５３において逆量子化部５３は、逆量子化処理を行う。逆量子化部５３は、可逆復号部５２により復号された量子化データを、図２の量子化部１５の特性に対応する特性で逆量子化する。
【０１１７】
ステップＳＴ５４において逆直交変換部５４は、逆直交変換処理を行う。逆直交変換部５４は、逆量子化部５３により逆量子化された変換係数データを、図２の直交変換部１４の特性に対応する特性で逆直交変換する。
【０１１８】
ステップＳＴ５５において加算部５５は、復号画像データの生成を行う。加算部５５は、逆直交変換処理を行うことにより得られたデータと、後述するステップＳＴ５９で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
【０１１９】
ステップＳＴ５６においてデブロッキングフィルタ処理部５６は、デブロッキングフィルタ処理を行う。デブロッキングフィルタ処理部５６は、加算部５５より出力された復号画像データのフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
【０１２０】
ステップＳＴ５７においてフレームメモリ６１は、復号画像データの記憶処理を行う。
【０１２１】
ステップＳＴ５８においてイントラ予測部６３と動き補償部６４は、予測処理を行う。イントラ予測部６３と動き補償部６４は、可逆復号部５２から供給される予測モード情報に対応してそれぞれ予測処理を行う。
【０１２２】
すなわち、可逆復号部５２からイントラ予測の予測モード情報が供給された場合、イントラ予測部６３は、予測モード情報に基づいてイントラ予測処理を行い、予測画像データを生成する。また、可逆復号部５２からインター予測の予測モード情報が供給された場合、動き補償部６４は、予測モード情報に基づき動き補償を行い、予測画像データを生成する。
【０１２３】
ステップＳＴ５９において、セレクタ６５は予測画像データの選択を行う。すなわち、セレクタ６５は、イントラ予測部６３から供給された予測画像と動き補償部６４で生成された予測画像データを選択して加算部５５に供給して、上述したように、ステップＳＴ５５において逆直交変換部５４の出力と加算させる。
【０１２４】
ステップＳＴ６０において画面並べ替えバッファ５７は、画面並べ替えを行う。すなわち画面並べ替えバッファ５７は、図２の画像符号化装置１０の画面並べ替えバッファ１２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０１２５】
ステップＳＴ６１において、Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７からの画像データをＤ／Ａ変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０１２６】
＜８．可逆復号部の構成＞
図２４は、図２２に示した画像復号装置５０の可逆復号部５２において可変長復号を行う部分の構成を例示している。可逆復号部５２は、復号テーブル生成部５２０と復号部５２５を有している。また、復号テーブル生成部５２０は、カウント部５２１、スワップ部５２２、記憶部５２３、制御部５２４を有している。
【０１２７】
復号テーブル生成部５２０は、可変長復号処理で用いる復号テーブルを生成する。また、可変長復号処理の結果に基づいて復号テーブルの更新を行う。また、復号テーブル生成部５２０は、符号化ストリームから取得したテーブル学習情報に基づき復号テーブルを設定して可変長復号処理を開始する。
【０１２８】
復号テーブル生成部５２０のカウント部５２１は、可逆符号化部１６のカウント部１６１と同様に、復号テーブルの学習においてカウント値に応じたスワップ動作を行うために出現頻度をカウントする。また、カウント部５２１は、制御部５２４による制御のもと出現頻度のカウントの開始やカウントのリセット等は符号化テーブル生成部１６０と同様に行う。
【０１２９】
スワップ部５２２は、可逆符号化部１６のカウント部１６１と同様のスワップ処理によって記憶部５２３に記憶されている復号テーブルの学習を行い、可逆符号化部１６で用いた符号化テーブルと対応する復号テーブルを使用して復号処理を行えるようにする。スワップ部５２２は、カウント部５２１によりカウントされた出現頻度に応じてスワップ処理を行う。
【０１３０】
記憶部５２３は、半導体メモリなどの記憶媒体により構成されており、可変長復号処理を行うために用いられる復号テーブルを記憶する。また、後述する復号部５２５によって符号化ストリームから取得されたテーブル学習情報に基づいて設定された復号テーブルを記憶する。さらに、記憶部５２３は、学習によって更新された復号テーブルを記憶する。
【０１３１】
制御部５２４は、可逆符号化部１６と同様にテーブルの学習を行い、可変長復号処理で用いる復号テーブルを可変長符号化処理で用いた符号化テーブルに対応させることで、可変長符号化処理に対応した可変長復号処理を正しく行うことができるようにする。
【０１３２】
復号部５２５は、復号テーブルを用いて符号化データをバイナリデータに変換する。さらに、復号部５２５は、符号化ストリームから取得したテーブル学習情報を記憶部５２３に出力する。また、復号部５２５は、符号化ストリームから取得したシンタックス要素値を制御部５２４に出力する。
【０１３３】
＜９．可逆復号部の動作＞
このように構成された可逆復号部５２は、可逆符号化部１６における可逆符号化処理に対応した可変長復号処理を行い、符号化データを可変長符号化処理前のバイナリデータに変換する。
【０１３４】
図２５は、非ゼロ係数の場所を示すシンタックス要素last_pos_level_oneの可変長復号動作を例示している。可逆復号部５２は、復号処理によって得られている変数blockTypeと変数vlcNumIdxの値から、VlcNumTableを選択する。可逆復号部５２は、選択されたVlcNumTableを用いて、符号語を変数codeNumの値に変換する。次に、可逆復号部５２は、lastPosTableを用いて、変換後の変数codeNumと復号処理によって得られている変数tableNumの値に基づきシンタックス要素値を選択する。
【０１３５】
また、変換後の変数codeNumの出現頻度に応じてlastPosTableの学習を行うことで、符号化時に出現頻度が高い場合に短い符号長となるように処理が行われても、正しく復号処理を行うことができるようにする。なお、上述の学習は、上述の可逆符号化部１６における学習と同様に行う。
【０１３６】
このように、可逆復号部５２は、可逆符号化部１６における可逆符号化処理に対応した可変長復号処理の復号テーブルを用いて符号化データをバイナリデータに変換する。例えば非ゼロ係数の場所を示す符号化データをバイナリデータに変換する場合、既に可逆復号処理によって得られている情報に基づき、符号化テーブルに対応した復号テーブルを用いて可変長復号処理を行う。ここで、可逆復号部５２は、スライスヘッダに含まれているテーブル学習情報に基づいてスライス復号開始時の復号テーブルを設定できる。したがって、スライス単位で再生を行う場合であっても、符号化テーブルに対応した復号テーブルを用いて可変長復号処理を行うことができる。例えば、可変長符号化処理と等しいテーブルを用いることで、符号語を符号化時の変数codeNumに変換できる。さらに、変換後の変数codeNumを符号化時のバイナリデータに変換できる。
【０１３７】
また、可逆復号部５２は、可逆符号化部１６と同様にテーブルの学習を行うことで、可逆符号化部１６において出現頻度が高くなるに伴い符号長を短くしても、可変長符号化処理に対応した可変長復号処理を行うことが可能となる。したがって、符号化データを可変長符号化処理目のバイナリデータに正しく変換できる。
【０１３８】
図２６は、可逆復号部５２における処理の一例を示すフローチャートである。ステップＳＴ７１で可逆復号部５２は初期化を行う。可逆復号部５２は、可変長復号処理の初期化、例えば可変長復号処理に用いる復号テーブルやテーブルの学習動作におけるカウント値等を初期化してステップＳＴ７２に進む。
【０１３９】
ステップＳＴ７２で可逆復号部５２は、スライスの先頭であるか判別する。可逆復号部５２は、スライスの先頭である場合、ステップＳＴ７３に進み、スライスの先頭でない場合、ステップＳＴ７４に進む。
【０１４０】
ステップＳＴ７３で可逆復号部５２は、テーブル学習情報を取得する。可逆復号部５２は、例えばスライスヘッダに挿入されているテーブル学習情報を取得する。また、可逆復号部５２は、取得したテーブル学習情報に基づき復号テーブルを設定してステップＳＴ７４に進む。なお、ステップＳＴ７３で可逆復号部５２は、は、テーブル学習情報が符号化ストリームに含まれているか否かを示すフラグ情報、例えばシンタックス要素enable_initialize_tableがスライスヘッダに設けられている場合、フラグ情報を参照することでテーブル学習情報の取得を容易かつ確実に行うことができる。また、可逆復号部５２は、テーブル学習情報が符号化ストリームに含まれていない場合、復号テーブルを初期化する。さらに、可逆復号部５２は、テーブル学習情報が符号化されている場合、テーブル学習情報の復号を行う。
【０１４１】
ステップＳＴ７４で可逆復号部５２は、符号化データの可変長復号を行う。可逆復号部５２は、復号テーブルを用いて符号化データの可変長復号を行い、可変長符号化処理前のバイナリデータに変換してステップＳＴ７５に進む。
【０１４２】
ステップＳＴ７５で可逆復号部５２は復号テーブルの学習を行う。可逆復号部５２は、可逆符号化部１６と同様に、出現頻度が高くなるに伴い符号長が短くなるように可変長復号結果に基づき学習を行い、符号化データに対応した復号テーブルに更新してステップＳＴ７２に戻る。
【０１４３】
このように、可逆復号部５２は、符号化ストリームに含まれているテーブル学習情報に基づいて復号テーブルの設定を行い、設定された復号テーブルを用いて符号化データの可変長復号処理を開始する。可逆復号部５２は、スライスヘッダ等に設けられているテーブル学習情報に基づいて復号テーブルの設定を行い、設定された復号テーブルを用いて当該スライスの符号化データの可変長復号処理を行う。また、可逆復号部５２は、可変長復号処理の結果に基づいて学習を行い復号テーブルを更新することで、符号化テーブルに対応した復号テーブルを用いて可変長復号処理を行う。したがって、スライス単位で再生を行うことが可能となり、スライス毎にテーブルを初期化する場合に比べて学習期間も長くできるので符号化効率を高くできるようになる。
【０１４４】
また、上述した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
【０１４５】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory）に予め記録しておくことができる。または、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory），ＭＯ（Magneto optical）ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的または永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【０１４６】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ（Local Area Network）、インターネットといったネットワークを介して、コンピュータに有線で転送する。コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１４７】
＜１０．応用例＞
本技術の画像処理装置を用いた上述の実施形態に係る画像符号化装置１０および画像復号装置５０は、衛星放送、ケーブルＴＶなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信等における送信機若しくは受信機、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録する記録装置、または、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、４つの応用例について説明する。
【０１４８】
［第１の応用例］
図２７は、上述した実施形態を適用したテレビジョン装置の概略的な構成を例示している。テレビジョン装置９０は、アンテナ９０１、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、表示部９０６、音声信号処理部９０７、スピーカ９０８、外部インタフェース部９０９を有している。さらに、テレビジョン装置９０は、制御部９１０、ユーザインタフェース部９１１等を有している。
【０１４９】
チューナ９０２は、アンテナ９０１を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９０２は、復調により得られた符号化ビットストリームをデマルチプレクサ９０３へ出力する。すなわち、チューナ９０２は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置９０における伝送手段としての役割を有する。
【０１５０】
デマルチプレクサ９０３は、符号化ビットストリームから視聴対象の番組の映像ストリームおよび音声ストリームを分離し、分離した各ストリームをデコーダ９０４へ出力する。また、デマルチプレクサ９０３は、符号化ビットストリームからＥＰＧ（Electronic  Program  Guide）などの補助的なデータを抽出し、抽出したデータを制御部９１０に供給する。なお、デマルチプレクサ９０３は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
【０１５１】
デコーダ９０４は、デマルチプレクサ９０３から入力される映像ストリームおよび音声ストリームを復号する。そして、デコーダ９０４は、復号処理により生成される映像データを映像信号処理部９０５へ出力する。また、デコーダ９０４は、復号処理により生成される音声データを音声信号処理部９０７へ出力する。
【０１５２】
映像信号処理部９０５は、デコーダ９０４から入力される映像データを再生し、表示部９０６に映像を表示させる。また、映像信号処理部９０５は、ネットワークを介して供給されるアプリケーション画面を表示部９０６に表示させてもよい。また、映像信号処理部９０５は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部９０５は、例えばメニュー、ボタンまたはカーソルなどのＧＵＩ（Graphical  User  Interface）の画像を生成し、生成した画像を出力画像に重畳してもよい。
【０１５３】
表示部９０６は、映像信号処理部９０５から供給される駆動信号により駆動され、表示デバイス（例えば、液晶ディスプレイ、プラズマディスプレイまたはＯＬＥＤなど）の映像面上に映像または画像を表示する。
【０１５４】
音声信号処理部９０７は、デコーダ９０４から入力される音声データについてＤ／Ａ変換および増幅などの再生処理を行い、スピーカ９０８から音声を出力させる。また、音声信号処理部９０７は、音声データについてノイズ除去などの追加的な処理を行ってもよい。外部インタフェース部９０９は、テレビジョン装置９０と外部機器またはネットワークとを接続するためのインタフェースである。例えば、外部インタフェース部９０９を介して受信される映像ストリームまたは音声ストリームが、デコーダ９０４により復号されてもよい。すなわち、外部インタフェース部９０９もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置９０における伝送手段としての役割を有する。
【０１５５】
制御部９１０は、ＣＰＵ（Central  Processing  Unit）などのプロセッサ、並びにＲＡＭ（Random  Access  Memory）およびＲＯＭ（Read  Only  Memory）などのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、プログラムデータ、ＥＰＧデータ、およびネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置９０の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース部９１１から入力される操作信号に応じて、テレビジョン装置９０の動作を制御する。
【０１５６】
ユーザインタフェース部９１１は、制御部９１０と接続される。ユーザインタフェース部９１１は、例えば、ユーザがテレビジョン装置９０を操作するためのボタンおよびスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部９１１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９１０へ出力する。
【０１５７】
バス９１２は、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、音声信号処理部９０７、外部インタフェース部９０９および制御部９１０を相互に接続する。
【０１５８】
このように構成されたテレビジョン装置９０において、デコーダ９０４は、上述した実施形態に係る画像復号装置５０の機能を有する。それにより、テレビジョン装置９０での画像の復号に際して、スライス単位での復号を正しく行うことができる。
【０１５９】
［第２の応用例］
図２８は、上述した実施形態を適用した携帯電話機の概略的な構成を例示している。携帯電話機９２は、アンテナ９２１、通信部９２２、音声コーデック９２３、スピーカ９２４、マイクロホン９２５、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１、操作部９３２、およびバス９３３を備える。
【０１６０】
アンテナ９２１は、通信部９２２に接続される。スピーカ９２４およびマイクロホン９２５は、音声コーデック９２３に接続される。操作部９３２は、制御部９３１に接続される。バス９３３は、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、および制御部９３１を相互に接続する。
【０１６１】
携帯電話機９２は、音声通話モード、データ通信モード、撮影モードおよびテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メールまたは画像データの送受信、画像の撮像、およびデータの記録などの動作を行う。
【０１６２】
音声通話モードにおいて、マイクロホン９２５により生成されるアナログ音声信号は、音声コーデック９２３に供給される。音声コーデック９２３は、アナログ音声信号を音声データへ変換し、変換された音声データをＡ／Ｄ変換し圧縮する。そして、音声コーデック９２３は、圧縮後の音声データを通信部９２２へ出力する。通信部９２２は、音声データを符号化および変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅しおよび周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調および復号して音声データを生成し、生成した音声データを音声コーデック９２３へ出力する。音声コーデック９２３は、音声データを伸張しおよびＤ／Ａ変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０１６３】
また、データ通信モードにおいて、例えば、制御部９３１は、操作部９３２を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部９３１は、文字を表示部９３０に表示させる。また、制御部９３１は、操作部９３２を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部９２２へ出力する。通信部９２２は、電子メールデータを符号化および変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅しおよび周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調および復号して電子メールデータを復元し、復元した電子メールデータを制御部９３１へ出力する。制御部９３１は、表示部９３０に電子メールの内容を表示させるとともに、電子メールデータを記録再生部９２９の記憶媒体に記憶させる。
【０１６４】
記録再生部９２９は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、ＲＡＭまたはフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、ＵＳＢメモリ、またはメモリカードなどの外部装着型の記憶媒体であってもよい。
【０１６５】
また、撮影モードにおいて、例えば、カメラ部９２６は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部９２７へ出力する。画像処理部９２７は、カメラ部９２６から入力される画像データを符号化し、符号化ストリームを記録再生部９２９の記憶媒体に記憶させる。
【０１６６】
また、テレビ電話モードにおいて、例えば、多重分離部９２８は、画像処理部９２７により符号化された映像ストリームと、音声コーデック９２３から入力される音声ストリームとを多重化し、多重化したストリームを通信部９２２へ出力する。通信部９２２は、ストリームを符号化および変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅しおよび周波数変換し、受信信号を取得する。これら送信信号および受信信号には、符号化ビットストリームが含まれ得る。そして、通信部９２２は、受信信号を復調および復号してストリームを復元し、復元したストリームを多重分離部９２８へ出力する。多重分離部９２８は、入力されるストリームから映像ストリームおよび音声ストリームを分離し、映像ストリームを画像処理部９２７、音声ストリームを音声コーデック９２３へ出力する。画像処理部９２７は、映像ストリームを復号し、映像データを生成する。映像データは、表示部９３０に供給され、表示部９３０により一連の画像が表示される。音声コーデック９２３は、音声ストリームを伸張しおよびＤ／Ａ変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０１６７】
このように構成された携帯電話機９２において、画像処理部９２７は、上述した実施形態に係る画像符号化装置１０および画像復号装置５０の機能を有する。それにより、携帯電話機９２での画像の符号化および復号に際して、スライス単位で再生を正しく行うことができるように処理できる。また、スライス単位で再生を正しく行うことができるように、スライス単位でテーブルの初期化を行う場合に比べて符号化効率を高くできる。
【０１６８】
［第３の応用例］
図２９は、上述した実施形態を適用した記録再生装置の概略的な構成を例示している。記録再生装置９４は、例えば、受信した放送番組の音声データおよび映像データを符号化して記録媒体に記録する。また、記録再生装置９４は、例えば、他の装置から取得される音声データおよび映像データを符号化して記録媒体に記録してもよい。また、記録再生装置９４は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタおよびスピーカ上で再生する。このとき、記録再生装置９４は、音声データおよび映像データを復号する。
【０１６９】
記録再生装置９４は、チューナ９４１、外部インタフェース部９４２、エンコーダ９４３、ＨＤＤ（Hard  Disk  Drive）９４４、ディスクドライブ９４５、セレクタ９４６、デコーダ９４７、ＯＳＤ（On-Screen  Display）部９４８、制御部９４９、およびユーザインタフェース部９５０を備える。
【０１７０】
チューナ９４１は、アンテナ（図示せず）を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９４１は、復調により得られた符号化ビットストリームをセレクタ９４６へ出力する。すなわち、チューナ９４１は、記録再生装置９４における伝送手段としての役割を有する。
【０１７１】
外部インタフェース部９４２は、記録再生装置９４と外部機器またはネットワークとを接続するためのインタフェースである。外部インタフェース部９４２は、例えば、ＩＥＥＥ１３９４インタフェース、ネットワークインタフェース、ＵＳＢインタフェース、またはフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース部９４２を介して受信される映像データおよび音声データは、エンコーダ９４３へ入力される。すなわち、外部インタフェース部９４２は、記録再生装置９４における伝送手段としての役割を有する。
【０１７２】
エンコーダ９４３は、外部インタフェース部９４２から入力される映像データおよび音声データが符号化されていない場合に、映像データおよび音声データを符号化する。そして、エンコーダ９４３は、符号化ビットストリームをセレクタ９４６へ出力する。
【０１７３】
ＨＤＤ９４４は、映像および音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、ＨＤＤ９４４は、映像および音声の再生時に、これらデータをハードディスクから読み出す。
【０１７４】
ディスクドライブ９４５は、装着されている記録媒体へのデータの記録および読み出しを行う。ディスクドライブ９４５に装着される記録媒体は、例えばＤＶＤディスク（ＤＶＤ−Ｖｉｄｅｏ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等）またはＢｌｕ−ｒａｙ（登録商標）ディスクなどであってよい。
セレクタ９４６は、映像および音声の記録時には、チューナ９４１またはエンコーダ９４３から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをＨＤＤ９４４またはディスクドライブ９４５へ出力する。また、セレクタ９４６は、映像および音声の再生時には、ＨＤＤ９４４またはディスクドライブ９４５から入力される符号化ビットストリームをデコーダ９４７へ出力する。
【０１７５】
デコーダ９４７は、符号化ビットストリームを復号し、映像データおよび音声データを生成する。そして、デコーダ９４７は、生成した映像データをＯＳＤ部９４８へ出力する。また、デコーダ９０４は、生成した音声データを外部のスピーカへ出力する。
ＯＳＤ部９４８は、デコーダ９４７から入力される映像データを再生し、映像を表示する。また、ＯＳＤ部９４８は、表示する映像に、例えばメニュー、ボタンまたはカーソルなどのＧＵＩの画像を重畳してもよい。
【０１７６】
制御部９４９は、ＣＰＵなどのプロセッサ、並びにＲＡＭおよびＲＯＭなどのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、およびプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置９４の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース部９５０から入力される操作信号に応じて、記録再生装置９４の動作を制御する。
【０１７７】
ユーザインタフェース部９５０は、制御部９４９と接続される。ユーザインタフェース部９５０は、例えば、ユーザが記録再生装置９４を操作するためのボタンおよびスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部９５０は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９４９へ出力する。
【０１７８】
このように構成された記録再生装置９４において、エンコーダ９４３は、上述した実施形態に係る画像符号化装置１０の機能を有する。また、デコーダ９４７は、上述した実施形態に係る画像復号装置５０の機能を有する。それにより、記録再生装置９４での画像の符号化および復号に際して、スライス単位で再生を正しく行うことができるように処理できる。また、スライス単位で再生を正しく行うことができるように、スライス単位でテーブルの初期化を行う場合に比べて符号化効率を高くできる。
【０１７９】
［第４の応用例］
図３０は、上述した実施形態を適用した撮像装置の概略的な構成を例示している。撮像装置９６は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
【０１８０】
撮像装置９６は、光学ブロック９６１、撮像部９６２、カメラ信号処理部９６３、画像処理部９６４、表示部９６５、外部インタフェース部９６６、メモリ９６７、メディアドライブ９６８、ＯＳＤ部９６９、制御部９７０、ユーザインタフェース部９７１、およびバス９７２を備える。
【０１８１】
光学ブロック９６１は、フォーカスレンズおよび絞り機構などを有する。光学ブロック９６１は、被写体の光学像を撮像部９６２の撮像面に結像させる。撮像部９６２は、ＣＣＤまたはＣＭＯＳなどのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部９６２は、画像信号をカメラ信号処理部９６３へ出力する。
【０１８２】
カメラ信号処理部９６３は、撮像部９６２から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。カメラ信号処理部９６３は、カメラ信号処理後の画像データを画像処理部９６４へ出力する。
【０１８３】
画像処理部９６４は、カメラ信号処理部９６３から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部９６４は、生成した符号化データを外部インタフェース部９６６またはメディアドライブ９６８へ出力する。また、画像処理部９６４は、外部インタフェース部９６６またはメディアドライブ９６８から入力される符号化データを復号し、画像データを生成する。そして、画像処理部９６４は、生成した画像データを表示部９６５へ出力する。また、画像処理部９６４は、カメラ信号処理部９６３から入力される画像データを表示部９６５へ出力して画像を表示させてもよい。また、画像処理部９６４は、ＯＳＤ部９６９から取得される表示用データを、表示部９６５へ出力する画像に重畳してもよい。
【０１８４】
ＯＳＤ部９６９は、例えばメニュー、ボタンまたはカーソルなどのＧＵＩの画像を生成して、生成した画像を画像処理部９６４へ出力する。
【０１８５】
外部インタフェース部９６６は、例えばＵＳＢ入出力端子として構成される。外部インタフェース部９６６は、例えば、画像の印刷時に、撮像装置９６とプリンタとを接続する。また、外部インタフェース部９６６には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスクまたは光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置９６にインストールされ得る。さらに、外部インタフェース部９６６は、ＬＡＮまたはインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。すなわち、外部インタフェース部９６６は、撮像装置９６における伝送手段としての役割を有する。
【０１８６】
メディアドライブ９６８に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ９６８に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブまたはＳＳＤ（Solid  State  Drive）のような非可搬性の記憶部が構成されてもよい。
【０１８７】
制御部９７０は、ＣＰＵなどのプロセッサ、並びにＲＡＭおよびＲＯＭなどのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、およびプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置９６の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース部９７１から入力される操作信号に応じて、撮像装置９６の動作を制御する。
【０１８８】
ユーザインタフェース部９７１は、制御部９７０と接続される。ユーザインタフェース部９７１は、例えば、ユーザが撮像装置９６を操作するためのボタンおよびスイッチなどを有する。ユーザインタフェース部９７１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９７０へ出力する。
【０１８９】
バス９７２は、画像処理部９６４、外部インタフェース部９６６、メモリ９６７、メディアドライブ９６８、ＯＳＤ部９６９、および制御部９７０を相互に接続する。
【０１９０】
このように構成された撮像装置９６において、画像処理部９６４は、上述した実施形態に係る画像符号化装置１０および画像復号装置５０の機能を有する。それにより、撮像装置９６での画像の符号化および復号に際して、スライス単位で再生を正しく行うことができるように処理できる。また、スライス単位で再生を正しく行うことができるように、スライス単位でテーブルの初期化を行う場合に比べて符号化効率を高くできる。
【０１９１】
さらに、本技術は、上述した実施形態に限定して解釈されるべきではない。この実施形態は、例示という形態で本技術を開示しており、本技術の要旨を逸脱しない範囲で当業者が実施形態の修正や代用をなし得ることは自明である。すなわち、本技術の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【０１９２】
なお、本技術は以下のような構成も取ることができる。
（１）  復号テーブルを用いて符号化ストリームの可変長復号処理を行う復号部と、
前記符号化ストリームに含まれたテーブル学習情報に基づいて前記復号テーブルの設定を行い、前記可変長復号処理の結果に基づいて前記設定した復号テーブルの更新を行う復号テーブル生成部と
を備える画像処理装置。  
（２）  前記復号テーブル生成部は、前記符号化ストリームにおけるスライスヘッダに含まれたテーブル学習情報に基づいて前記復号テーブルの設定を行い、
前記復号部は、前記スライスヘッダに含まれたテーブル学習情報に基づいて設定された復号テーブルを用いて、当該スライスの可変長復号処理を開始する（１）に記載の画像処理装置。
（３）  前記復号テーブル生成部は、前記テーブル学習情報が前記符号化ストリームに含まれているか判別して、前記テーブル学習情報が含まれていないと判別した場合には、前記復号テーブルを初期化する（１）または（２）に記載の画像処理装置。
（４）  前記復号テーブル生成部は、前記符号化ストリームに含められているフラグ情報に基づき、前記テーブル学習情報が前記符号化ストリームに含まれているか否かの判別を行う（３）に記載の画像処理装置。
（５）  前記テーブル学習情報は符号化されており、
前記復号部は、前記符号化ストリームの復号処理を行うことで前記テーブル学習情報を取得する（１）乃至（４）の何れかに記載の画像処理装置。
（６）  符号化テーブルを用いて可変長符号化処理を行い符号化ストリームを生成する符号化部と、
前記可変長符号化処理の結果に基づいて前記符号化テーブルの更新を行い、該更新後の符号化テーブルに基づきテーブル学習情報を生成して前記符号化ストリームに含める符号化テーブル生成部と
を備える画像処理装置。  
（７）  前記符号化テーブル生成部は、スライス開始時の前記可変長符号化処理で用いる符号化テーブルに基づきテーブル学習情報を生成して、該テーブル学習情報を前記符号化ストリームにおけるスライスヘッダに含める（６）に記載の画像処理装置。
（８）  前記符号化テーブル生成部は、前記符号化ストリームに前記テーブル学習情報が含まれているか否かを示すフラグ情報を生成して、前記符号化ストリームに設ける（６）または（７）に記載の画像処理装置。
（９）  前記符号化テーブル生成部は、前記符号化ストリームに前記テーブル学習情報を含めない場合、前記符号化テーブルを初期化して前記可変長符号化処理を開始する（６）乃至（８）の何れかに記載の画像処理装置。
（１０）  前記符号化部は、前記テーブル学習情報の符号化を行う（６）乃至（９）の何れかに記載の画像処理装置。
【産業上の利用可能性】
【０１９３】
この技術の画像処理装置と画像処理方法では、符号化ストリームに含まれたテーブル学習情報に基づいて復号テーブルの設定が行われて、この復号テーブルを用いて符号化ストリームの可変長復号処理が行われる。さらに、可変長復号処理の結果に基づいて復号テーブルの更新が行われる。また、符号化テーブルを用いて可変長符号化処理を行い符号化ストリームの生成が行われて、可変長符号化処理の結果に基づいて符号化テーブルが更新される。さらに、更新後の符号化テーブルに基づきテーブル学習情報が生成されて符号化ストリームに含められる。このため、例えばスライスの先頭にテーブル学習情報を設けるようにすれば、スライス単位で再生を行うことが可能となる。また、スライス毎にテーブルを初期化する場合に比べて学習期間も長くできるので符号化効率を高くできるようになる。したがって、動画像の記録再生や編集等を行う電子機器に適している。
【符号の説明】
【０１９４】
１０・・・画像符号化装置、１１・・・Ａ／Ｄ変換部、１２，５７・・・画面並べ替えバッファ、１３・・・減算部、１４・・・直交変換部、１５・・・量子化部、１６・・・可逆符号化部、１７・・・蓄積バッファ、１８・・・レート制御部、２１・・・逆量子化部、２２・・・逆直交変換部、２３，５５・・・加算部、２４，５６・・・デブロッキングフィルタ処理部、２５，６１・・・フレームメモリ、２６，６２，６５・・・セレクタ、３１，６３・・・イントラ予測部、３２・・・動き予測・補償部、３３・・・予測画像・最適モード選択部、５０・・・画像復号装置、５１・・・蓄積バッファ、５２・・・可逆復号部、５３・・・逆量子化部、５４・・・逆直交変換部、５５・・・加算部、５８・・・Ｄ／Ａ変換部、６４・・・動き補償部、９０・・・テレビジョン装置、９２・・・携帯電話機、９４・・・記録再生装置、９６・・・撮像装置、１６０・・・符号化テーブル生成部、１６１，５２１・・・カウント部、１６２，５２２・・・スワップ部、１６３，５２３・・・記憶部、１６４，５２４・・・制御部、１６５・・・符号化部、５２０・・・復号テーブル生成部、５２５・・・復号部
【図１】
2013046282.tif 000007
【図２】
2013046282.tif 000008
【図３】
2013046282.tif 000009
【図４】
2013046282.tif 000010
【図５】
2013046282.tif 000011
【図６】
2013046282.tif 000012
【図７】
2013046282.tif 000013
【図８】
2013046282.tif 000014
【図９】
2013046282.tif 000015
【図１０】
2013046282.tif 000016
【図１１】
2013046282.tif 000017
【図１２】
2013046282.tif 000018
【図１３】
2013046282.tif 000019
【図１４】
2013046282.tif 000020
【図１５】
2013046282.tif 000021
【図１６】
2013046282.tif 000022
【図１７】
2013046282.tif 000023
【図１８】
2013046282.tif 000024
【図１９】
2013046282.tif 000025
【図２０】
2013046282.tif 000026
【図２１】
2013046282.tif 000027
【図２２】
2013046282.tif 000028
【図２３】
2013046282.tif 000029
【図２４】
2013046282.tif 000030
【図２５】
2013046282.tif 000031
【図２６】
2013046282.tif 000032
【図２７】
2013046282.tif 000033
【図２８】
2013046282.tif 000034
【図２９】
2013046282.tif 000035
【図３０】
2013046282.tif 000036