(57)【要約】【課題】画像データのうち付加データの所定単位よりも小さい単位で付加データを予測できる符号化装置、プログラム、符号化処理方法を提供する。【解決手段】画像データをブロック単位で算術符号化処理を行い符号化データを生成する算術符号化部２７４と、算術符号化部２７４が生成した符号化データに、算術符号化部２７４の算術符号化処理によるブロック単位よりも大きい所定単位での画像データの圧縮の度合いを示す指標データＫに応じた付加データを付加する付加部２７５と、ブロック単位で、算術符号化部２７４による算術符号化処理の対象のデータのデータ長、および算術符号化部２７４が生成した符号化データのデータ長を基に、付加部２７５が付加する所定単位での指標データＫに応じた付加データを予測する予測部２７６と、ブロック単位で、予測部２７６が予測した付加データに応じた所定処理を行うレート制御回路３２および量子化回路２６とを設ける。【選択図】図５
2005252374.tif 000002
【特許請求の範囲】
【請求項１】
画像データを第１のブロック単位で算術符号化処理を行い符号化データを生成する算術符号化手段と、
前記算術符号化手段が生成した符号化データに、前記算術符号化手段の算術符号化処理による前記第１のブロック単位よりも大きい第２のブロック単位での前記画像データの圧縮の度合いに応じた付加データを付加する付加手段と、
前記第１のブロック単位で、前記算術符号化手段による算術符号化処理の対象のデータのデータ長、および、前記算術符号化手段が生成した符号化データのデータ長に基づいて、前記付加手段が付加する付加データを予測する予測手段と、
前記第１のブロック単位で、前記予測手段が予測した前記付加データに応じた所定処理を行う処理手段と
を有する符号化装置。
【請求項２】
前記算術符号化手段は、前記算術符号化処理を行う際に、処理対象のデータを所定倍する正規化処理を含み、
前記予測手段は、前記算術符号化手段による前記正規化処理に係るビットアウトスタンディングデータ、および前記算術符号化手段が前記画像データのピクチャのうち前記算術符号化処理したブロックまでの符号化データのデータ長、および前記１ピクチャのうち前記算術符号化処理前のデータのデータ長に基づいて、前記第２のブロック単位での指標データに応じた付加データを予測する
請求項１に記載の符号化装置。
【請求項３】
前記処理手段は、前記画像データを設定された量子化の度合いを示すデータに基づいて量子化処理を行い、前記算術符号化手段の処理対象のデータを生成する量子化手段と、
前記ブロック単位で、前記予測手段が予測した前記付加データに基づいて、前記量子化手段の量子化の度合いを示すデータを設定する量子化データ設定手段とを含む
請求項１に記載の符号化装置。
【請求項４】
複数の異なるサイズのブロックを単位として、動き補償の対象となる画像データと、前記動き補償で参照される参照画像データの間の差分に基づいて動きベクトルを生成する動きベクトル生成手段と、
前記動き補償の対象となる画像データと、予測画像データとの差分に直交変換処理および量子化処理を順に施す第１の処理手段と、
前記第１の処理手段で生成したデータに、逆量子化処理および逆直交変換処理を順に施して参照データを生成する第２の処理手段と、
前記動きベクトルおよび前記参照画像データを基に前記予測画像データを生成する第３の処理手段と、
設定された量子化の度合いを示すデータに基づいて量子化処理を行い、前記符号化手段の処理対象のデータを生成する量子化手段と、
前記量子化手段が生成したデータ、および前記動きベクトルを、第１のブロック単位で算術符号化処理を行い符号化データを生成する算術符号化手段と、
前記算術符号化手段が生成した符号化データに、前記算術符号化手段の算術符号化処理による前記第１のブロック単位よりも大きい第２のブロック単位での前記画像データの圧縮の度合いを示す指標データに応じた付加データを付加する付加手段と、
前記第１のブロック単位で、前記算術符号化手段による算術符号化処理の対象のデータのデータ長、および、前記算術符号化手段が生成した符号化データのデータ長に基づいて、前記付加手段が付加する前記第２のブロック単位での指標データに応じた付加データを予測する予測手段と、
前記第１のブロック単位で、前記予測手段が予測した前記付加データに基づいて、前記量子化手段の量子化の度合いを示すデータを設定する量子化データ設定手段と
を有する符号化装置。
【請求項５】
情報処理装置に実行させるプログラムであって、
画像データを第１のブロック単位で算術符号化処理を行い符号化データを生成する第１の手順と、
前記第１のブロック単位で、前記第１の手順による算術符号化処理の対象のデータのデータ長、および、前記第１の手順で生成した符号化データのデータ長に基づいて、第１の手順が生成した符号化データに付加する、前記第１の手順の算術符号化処理による前記第１のブロック単位よりも大きい第２のブロック単位での前記画像データの圧縮の度合いに応じた付加データを予測する第２の手順と、
前記第１のブロック単位で、前記第２のステップで予測した前記付加データに応じた所定処理を行う第３の手順とを実行させるプログラム。
【請求項６】
情報処理装置が行う符号化処理方法であって、
画像データを第１のブロック単位で算術符号化処理を行い符号化データを生成する第１のステップと、
前記第１のブロック単位で、前記第１のステップによる算術符号化処理の対象のデータのデータ長、および、前記第１のステップで生成した符号化データのデータ長に基づいて、第１のステップで生成した符号化データに付加する、前記第１のステップの算術符号化処理による前記第１のブロック単位よりも大きい第２のブロック単位での前記画像データの圧縮の度合いに応じた付加データを予測する第２のステップと、
前記第１のブロック単位で、前記第２のステップが予測した前記付加データに応じた所定処理を行う第３のステップと
を有する符号化処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、画像データや音声データ等のデータを算術符号化等の符号化処理を行う符号化装置、プログラム、および符号化処理方法に関する。
【背景技術】
【０００２】
近年、画像データをデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するＭＰＥＧ（Moving Picture Experts Group）などの方式に準拠した装置が、放送局などの情報配信、及び一般家庭における情報受信の双方において普及しつつある。
【０００３】
このＭＰＥＧ方式に続いて、さらなる高圧縮率を実現するＪＶＴ（Joint Video Team）と呼ばれる符号化方式が提案されている（例えば、非特許文献１参照）。
ＪＶＴ方式では、構文要素（ＳＥ：Syntax Element）の符号化処理として、ＣＡＶＬＣ（Context Based Adaptive Variable Length Coding ）と、ＣＡＢＡＣ（Context Adaptive Binary Arithmetic Coding ）の２種類の符号化処理を規定している。
ＣＡＢＡＣは、構文要素（ＳＥ：Syntax Element）をコンテクスト（Context）にわけて、それぞれのコンテクストについて算術符号化処理を行う符号化処理である。
【非特許文献１】トーマス・ウィーガント，ゲーリー・Ｊ・サリバン，ギスレ・ビョンテガード，アジャイ・ルスラ（Thomas Wiegand, Gary J.Sullivan, Gisle Bjontegaard, and Ajay Luthra），ビデオコーディングスタンダードの概要（Overview of the H.264/AVC Video Coding Standard），「IEEEのビデオ技術用の処理回路およびシステム」（IEEE TRANSACTIONS CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY），（米国），，２００３年７月，
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述したＣＡＢＡＣによる算術符号化処理において、デコーダの負荷を考慮して、圧縮率を制限するCabacZeroWord という機能が知られている。
詳細には、ＣＡＢＡＣによる符号化処理の結果、圧縮率が高い符号化データを生成した際に、デコーダがその圧縮率の高い符号化データをデコード処理を行うと、その符号化データを所定時間内に処理しきれない場合がある。
そのため符号化処理の際に、例えば１画像の内の複数のスライス（Slice ）それぞれの最後に付加データを付加する。具体的には、例えば付加データは0x000003を１単位としたスタッフィングバイト（StuffingByte）を付加することで、デコーダの負荷を軽減する。付加データは、CabacZeroWordに相当する。
【０００５】
しかし、上述した符号化処理において、CabacZeroWord により１スライスの最後に付加するデータのデータ長は、１スライス分のデータの符号化処理が終了するまで不確定であるので、マクロブロック単位で画像データを量子化処理する際の量子化レートを制御できない場合がある。
また、符号化処理の結果、高圧縮率の符号化データが生成され、大量のCabacZeroWord が急激に発生した場合には、バッファがオーバーフローを起こす場合がある。
このため、１スライスよりも短い処理単位で付加データを予測できる符号化装置が望まれている。
【０００６】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、符号化処理において、画像データのうち付加データの所定単位よりも小さい単位で付加データを予測できる符号化装置、プログラム、および符号化処理方法を提供することにある。
【０００７】
また、他の目的は、画像データのうち所定単位で付加データを予測し、予測したデータに基づいて高精度に量子化処理を行うことができる符号化装置、プログラム、および符号化処理方法を提供することにある。
【課題を解決するための手段】
【０００８】
前記目的を達成するために本発明の第１の観点の符号化装置は、画像データを第１のブロック単位で算術符号化処理を行い符号化データを生成する算術符号化手段と、前記算術符号化手段が生成した符号化データに、前記算術符号化手段の算術符号化処理による前記第１のブロック単位よりも大きい第２のブロック単位での前記画像データの圧縮の度合いに応じた付加データを付加する付加手段と、前記第１のブロック単位で、前記算術符号化手段による算術符号化処理の対象のデータのデータ長、および、前記算術符号化手段が生成した符号化データのデータ長に基づいて、前記付加手段が付加する付加データを予測する予測手段と、前記第１のブロック単位で、前記予測手段が予測した前記付加データに応じた所定処理を行う処理手段とを有する。
【０００９】
本発明の第１の観点の符号化装置によれば、算術符号化手段は、画像データを第１のブロック単位で算術符号化処理を行い符号化データを生成する。
付加手段は、算術符号化手段が生成した符号化データに、算術符号化手段の算術符号化処理による第１のブロック単位よりも大きい第２のブロック単位での画像データの圧縮の度合いに応じた付加データを付加する。
予測手段は、第１のブロック単位で、算術符号化手段による算術符号化処理の対象のデータのデータ長、および、算術符号化手段が生成した符号化データのデータ長に基づいて、付加手段が付加する付加データを予測する。
処理手段は、第１のブロック単位で、予測手段が予測した付加データに応じた所定処理を行う。
【００１０】
さらに、前記目的を達成するために、本発明の第２の観点の符号化装置は、複数の異なるサイズのブロックを単位として、動き補償の対象となる画像データと、前記動き補償で参照される参照画像データの間の差分に基づいて動きベクトルを生成する動きベクトル生成手段と、前記動き補償の対象となる画像データと、予測画像データとの差分に直交変換処理および量子化処理を順に施す第１の処理手段と、前記第１の処理手段で生成したデータに、逆量子化処理および逆直交変換処理を順に施して参照データを生成する第２の処理手段と、前記動きベクトルおよび前記参照画像データを基に前記予測画像データを生成する第３の処理手段と、設定された量子化の度合いを示すデータに基づいて量子化処理を行い、前記符号化手段の処理対象のデータを生成する量子化手段と、前記量子化手段が生成したデータ、および前記動きベクトルを、第１のブロック単位で算術符号化処理を行い符号化データを生成する算術符号化手段と、前記算術符号化手段が生成した符号化データに、前記算術符号化手段の算術符号化処理による前記第１のブロック単位よりも大きい第２のブロック単位での前記画像データの圧縮の度合いを示す指標データに応じた付加データを付加する付加手段と、前記第１のブロック単位で、前記算術符号化手段による算術符号化処理の対象のデータのデータ長、および、前記算術符号化手段が生成した符号化データのデータ長に基づいて、前記付加手段が付加する前記第２のブロック単位での指標データに応じた付加データを予測する予測手段と、前記第１のブロック単位で、前記予測手段が予測した前記付加データに基づいて、前記量子化手段の量子化の度合いを示すデータを設定する量子化データ設定手段とを有する。
【００１１】
さらに、前記目的を達成するために、本発明の第３の観点のプログラムは、情報処理装置に実行させるプログラムであって、画像データを第１のブロック単位で算術符号化処理を行い符号化データを生成する第１の手順と、前記第１のブロック単位で、前記第１の手順による算術符号化処理の対象のデータのデータ長、および、前記第１の手順で生成した符号化データのデータ長に基づいて、第１の手順が生成した符号化データに付加する、前記第１の手順の算術符号化処理による前記第１のブロック単位よりも大きい第２のブロック単位での前記画像データの圧縮の度合いに応じた付加データを予測する第２の手順と、前記第１のブロック単位で、前記第２のステップで予測した前記付加データに応じた所定処理を行う第３の手順とを実行させる。
【００１２】
さらに、前記目的を達成するために、本発明の第４の観点の符号化処理方法は、情報処理装置が行う符号化処理方法であって、画像データを第１のブロック単位で算術符号化処理を行い符号化データを生成する第１のステップと、前記第１のブロック単位で、前記第１のステップによる算術符号化処理の対象のデータのデータ長、および、前記第１のステップで生成した符号化データのデータ長に基づいて、第１のステップで生成した符号化データに付加する、前記第１のステップの算術符号化処理による前記第１のブロック単位よりも大きい第２のブロック単位での前記画像データの圧縮の度合いに応じた付加データを予測する第２のステップと、前記第１のブロック単位で、前記第２のステップが予測した前記付加データに応じた所定処理を行う第３のステップとを有する。
【発明の効果】
【００１３】
本発明によれば、符号化処理において、画像データのうち付加データの所定単位よりも小さい単位で付加データを予測できる符号化装置、プログラム、および符号化処理方法を提供することができる。
【００１４】
また、予測したデータに基づいて高精度に量子化処理行うことができる符号化装置、プログラム、および符号化処理方法を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態に係る符号化処理を採用したＪＶＴ方式の符号化装置について説明する。
【００１６】
図１は、本発明の一実施形態に係る符号化装置を採用した通信システム１の概念図である。
図１に示すように、本実施形態に係る通信システム１は、送信側に設けられた符号化装置２と、受信側に設けられた復号装置３とを有する。
通信システム１では、送信側の符号化装置２において、離散コサイン変換やカルーネン・レーベ変換などの直交変換と動き補償によって圧縮したフレーム画像データ（ビットストリーム）を生成し、当該フレーム画像データを変調した後に、衛星放送波、ケーブルＴＶ網、電話回線網、携帯電話回線網などの伝送媒体を介して送信する。
受信側では、受信した画像信号を復調した後に、上記変調時の直交変換の逆変換と動き補償によって伸張したフレーム画像データを生成して利用する。
なお、上記伝送媒体は、光ディスク、磁気ディスクおよび半導体メモリなどの記録媒体であってもよい。
図１に示す復号装置３は符号化装置２の符号化に対応した復号を行い、従来と同じ構成を有している
【００１７】
以下、図１に示す符号化装置２について説明する。
図２は、図１に示す符号化装置２の全体構成図である。
図２に示すように、符号化装置（情報処理装置）２は、例えば、Ａ／Ｄ変換回路２２、画面並べ替え回路２３、演算回路２４、直交変換回路２５、量子化回路２６、符号化回路（符号化装置とも言う）２７、バッファ２８、逆量子化回路２９、逆直交変換回路３０、レート制御回路３２、フレームメモリ３４、デブロックフィルタ３８、および動き予測・補償回路３９を主構成要素として有する。
量子化回路２６，レート制御回路３２は本発明に係る処理手段に相当する。
【００１８】
以下、符号化装置２の構成要素について説明する。
Ａ／Ｄ変換回路２２は、入力されたアナログの輝度信号Ｙ、色差信号Ｃｂ，Ｃｒから構成される原画像信号（画像データ）Ｓ１０をデジタルのフレームデータＳ２２に変換し、これを画面並べ替え回路２３に出力する。
画面並べ替え回路２３は、Ａ／Ｄ変換回路２２から入力したフレームデータＳ２２を、そのピクチャタイプＩ，Ｐ，ＢからなるＧＯＰ（Group Of Pictures ）構造に応じて、符号化する順番に並べ替えたフレームデータＳ２３を演算回路２４、演算回路２４、レート制御回路３２および動き予測・補償回路３９に出力する。
【００１９】
演算回路２４は、フレームデータＳ２３内の処理対象の動き補償ブロックＭＣＢ（マクロブロックともいう）と、それに対応して動き予測・補償回路３９から入力した予測画像データＰＩの動き補償ブロックＭＣＢとの差分を示す画像データＳ２４を生成し、これを直交変換回路２５に出力する。
直交変換回路２５は、画像データＳ２４に離散コサイン変換やカルーネン・レーベ変換などの直交変換を施して画像データ（例えばＤＣＴ係数）Ｓ２５を生成し、これを量子化回路２６に出力する。
量子化回路２６は、画像データＳ２５をレート制御回路３２により設定された量子化の度合いを示すデータに基づいて量子化処理を行い、符号化回路２７の処理対象のデータを生成する。
詳細には、量子化回路２６は、レート制御回路３２から入力した量子化スケールで、画像データＳ２５を量子化して画像データＳ２６を生成し、これを符号化回路２７および逆量子化回路２９に出力する。
【００２０】
符号化回路２７は、画像データＳ２６、動きベクトル等を示す文脈エレメント（ＳＥ：Syntax Element ）に基づいて、算術符号化処理を行い、処理結果の画像データをバッファ２８に格納する。
このとき、符号化回路２７は、例えばインター予測符号化が行われた場合には、動き予測・補償回路３９から入力した動きベクトルＭＶを符号化してヘッダデータに格納する。
【００２１】
バッファ２８に格納された画像データは、変調等された後に送信される。
逆量子化回路２９は、他の動き補償ブロックＭＣＢから参照される参照画像データの動き補償ブロックＭＣＢの画像データＳ２６を逆量子化した信号を生成し、これを逆直交変換回路３０に出力する。
逆直交変換回路３０は、逆量子化回路２９から入力したデータに、直交変換回路２５における直交変換の逆変換を施して生成した画像データＳ３０をデブロックフィルタ３８を介してフレームメモリ３４に書き込む。
デブロックフィルタ３８は、画像データＳ３０のブロック歪みを除去した画像データを、フレームメモリ３４に出力する。
【００２２】
レート制御回路３２は、例えば、画面並べ替え回路２３から入力したフレームデータＳ２３を基に、画像中の複雑度が高い部分は細かく量子化し、画像中の複雑度が低い部分は粗く量子化するように量子化パラメータＱｐを生成する。
そして、レート制御回路３２は、上記生成した量子化パラメータＱｐ、並びにバッファ２８から読み出した画像データを基に量子化スケールを生成し、これを量子化回路２６に出力する。
また、レート制御回路３２は、上記生成した量子化パラメータＱｐを、動き予測・補償回路３９に出力する。
【００２３】
動き予測・補償回路３９は、符号化対象のフレームデータＳ２３およびフレームメモリ３４からの参照画像データＲＥＦを基に、参照画像データ内の探索範囲ＳＲを探索して、動き予測・補償処理を行って動き補償ブロックＭＣＢを単位として、動きベクトルＭＶを算出する。
【００２４】
この際、動き予測・補償回路３９は、Ｉピクチャ、Ｐピクチャ、Ｂピクチャを符号化する。ここでＩピクチャは、当該Ｉピクチャの情報だけから符号化し、フレーム間予測（インター予測符号化）を行わない画像データを示す。
Ｐピクチャは、表示順が前（過去）のＩピクチャまたはＰピクチャを基に予測を行って符号化される画像データを示す。
Ｂピクチャは、表示順が前（過去）および後（未来）のＩピクチャおよびＰピクチャを基に双方向予測によって符号化される画像データを示す。
【００２５】
動き予測ブロック（マクロブロックＭＢ）のブロックサイズには、１６×１６，８×１６，１６×８，８×８画素のサイズが規定され、また、８×８，４×８，８×４，および４×４画素のサイズが規定される。
動き予測・補償回路３９は、フレームデータＳ２３内の処理対象の動き補償ブロックＭＣＢとの差異が最も小さい動き補償ブロックＭＣＢの位置を参照画像データＲＥＦの探索範囲ＳＲ内で特定し、これらの位置関係に対応した動きベクトルＭＶを算出する。
また、動き予測・補償回路３９は、上記選択した動きベクトルＭＶを基に、動き補償ブロックＭＣＢについての予測画像データＰＩを生成する。
動き予測・補償回路３９は、上記選択した動きベクトルＭＶを符号化回路２７に出力し、上記生成した予測画像データＰＩを演算回路２４に出力する。
【００２６】
以下、符号化回路２７の符号化処理について詳細に説明する。
ＪＶＴ方式の符号化処理では、文脈エレメント（ＳＥ：Syntax Element ）の符号化方法として、ＣＡＶＬＣとＣＡＢＡＣの２種類が規定されている。ＣＡＢＡＣは、一般的にＣＡＶＬＣと比べてＳＥを高効率に圧縮する。本実施形態に係る符号化回路２７は、ＣＡＢＡＣにより符号化処理を行う。
【００２７】
ＪＶＴで規定するＣＡＢＡＣでは、ＳＥをＶＬＣや固定長符号によりシンボル列に変換する。ここで変換されたシンボル列の各シンボルをbin （binary symbol ）という。
符号化処理では、bin を入力として、算術符号化処理（ＡＣ：Arithmetic Coding ）を行い、処理結果を基に出力ビットが決定されビットストリームに出力される。
【００２８】
図３は、算術符号化処理を説明するための図である。
算術符号化処理は、例えば符号化対象のデータ列、例えばシンボルや２値（０および１）の系列を出現確率に応じて、区間[０，１]に射影し、数直線上の確率空間を区間内の数でバイナリ表現して符号化する。
例えば算術符号化処理は、図３に示すように、０．００…以上、１．００…未満の区間を、符号化対象のデータ内の個々のデータの出現確率を基に区間を分割し、個々のデータを基に分割した区間を選択する再帰的処理を行い、符号化対象のデータに対応する区間を示すデータを符号とする。
【００２９】
以下、説明を簡単とするため符号化対象のデータを２値とする。
算術符号化処理は、具体的には図３（Ａ）に示すように、符号化対象のデータの内、出現確率が大きいデータをＭＰＳ（Most Probable Symbol）、出現確率が小さいデータをＬＰＳ（Least Probable Symbol ）とし、それぞれの出現確率ｐＭＰＳ、ｐＬＰＳに応じて所定の区間Ａを分割する。この際、現区間のサイズをレンジRange 、現区間の境界値、例えば下限値をLow とする。また、出現確率ｐＭＰＳは、１−ｐＬＰＳである。
【００３０】
初期状態では、図３（Ａ）に示すように、レンジRange ，ロウLow の値は、Ａ，０．００…である。
符号化対象のデータ列の最初のデータがＭＰＳの場合には、図３（Ａ）に示すように、区間Ａを出現確率ｐＭＰＳ，ｐＬＰＳに応じて分割し、分割された区間の内、図３（Ｂ）に示すようにＭＰＳに対応する区間を選択する。このときのレンジRange ，ロウLow の値は、ｐ０（＝ｐＭＰＳ），０．００…である。
【００３１】
次に、符号化対象のデータ列の内の２番目のデータがＭＰＳの場合には、図３（Ｂ）に示すように、区間を出現確率ｐＭＰＳ，ｐＬＰＳに応じて分割し、分割された区間の内、図３（Ｃ）に示すようにＭＰＳに対応する区間を選択する。このときのレンジRange ，ロウLow の値は、ｐ００（＝ｐ０×ｐＭＰＳ），０．００…である。
【００３２】
次に、符号化対象のデータ列の内の３番目のデータがＬＰＳの場合には、図３（Ｃ）に示すように、区間を出現確率ｐＭＰＳ，ｐＬＰＳに応じて分割し、分割された区間の内、図３（Ｄ）に示すようにＬＰＳに対応する区間を選択する。このときのレンジRange ，ロウLow の値は、ｐ００１（＝ｐ００×ｐＬＰＳ），ｐ００１（Low ＋ｐＭＰＳ）である。
つまり、上述した符号化処理においてＬＰＳの場合には、下限値Low の値にｐＭＰＳが加算されて、下限値Low が更新される。
【００３３】
また、符号化対象のデータ列のビット長が大きくなるに従いレンジRange が小さくなり、レンジRange を示すデータのビット数も多くなる。このため符号化処理の結果、確定したビットを出力することで、メモリの容量を削減する。
【００３４】
また、計算精度を保つために、図３（Ｅ）に示すように、レンジRange が所定値よりも大きくなるように拡大する正規化処理（リノーマライズ）を行う。例えば正規化処理は、レンジRange の値を２倍して、所定値よりも大きくなるように拡大する。
【００３５】
図４は、符号化処理における正規化処理を説明するための図である。
例えば、上述したように、符号化対象のデータ列を１ビット単位で符号化処理を行う毎に、図４に示すような正規化処理を行う。
具体的には、まず、レンジRange が予め設定された所定値よりも小さいか否が判別され（ＳＴ１）、所定値よりも小さい場合には、下限値Low の値の上位１ビットに応じた符号を出力した後（ＳＴ２）、レンジRange と下限値Low の値を左シフト演算することで２倍に拡大し（ＳＴ３，ＳＴ４）し、ステップＳＴ１の処理に戻る。
そして、ステップＳＴ１からＳＴ４の動作をレンジRange の値が所定値以上になるまで繰り返す。
一方、ステップＳＴ１において、レンジRange の値が所定値以上の場合には、正規化処理を終了する。
【００３６】
図５は、図２に示した符号化回路の機能ブロック図である。
符号化回路２７は、例えば図５に示すように、２値化部（ＢＩＮＲ）２７１、コンテクスト（ＣＴＸ）２７２、更新部（ＵＰＤＴ）２７３、算術符号化部２７４、付加部２７５、および予測部２７６を有する。
算術符号化部２７４は本発明に係る算術符号化手段に相当し、付加部２７５は本発明に係る付加手段に相当し、予測部２７６は、本発明に係る予測手段に相当する。
【００３７】
２値化部（ＢＩＮＲ）２７１は、２値化処理、例えば量子化回路２６や動き予測・補償回路３９から入力されたＳＥを、ＶＬＣや固定長符号によりシンボルbin （binary symbol ）の列（バイナリデータ）に変換し、信号Ｓ２７１として出力する。
具体的には、２値化部２７１は、入力されたデータが、非バイナリ値（Non Binary Value）、例えば動きベクトル（Motion vector ）やtransform coeff 等の場合には、バイナリデータに変換する。
【００３８】
コンテクスト（ＣＴＸ）２７２は、例えば算術符号化部２７４で符号化されたデータの統計値によって更新され、算術符号化部２７４による算術符号化処理の際に参照されるデータである。
コンテクスト２７２には、例えば遷移状態を示すインデックスと、ＭＰＳの出現確率ｐＭＰＳとが関連付けられて記憶されている。コンテクスト２７２のインデックスは、例えば算術符号化部２７４の処理結果を示す信号Ｓ２７４に基づいて、更新部２７３により更新される。
具体的には、更新部２７３は、例えば信号Ｓ２７４を基に符号化した値が１の場合には、１の出現確率が増えるようにコンテクスト２７２のインデックスを更新し、例えば符号化した値が０の場合には、０の出現確率が増えるようにインデックスを更新する。
こうすることにより、ＣＴＸ２７３のインデックスは、入力されるＳＥに依存した出現確率に近づいていく。
【００３９】
図６は、画像データにおいてピクチャ、スライス、マクロブロックを説明するための図である。図６（ａ）は、画像データ内の１ピクチャが、横方向に複数のスライスにより構成されていることを示す図であり、図６（ｂ）は、１スライスがマクロブロックにより構成されていることを示す図である。
【００４０】
算術符号化部２７４は、例えば、画像データをブロック単位、例えば図６（ｂ）に示すように、マクロブロック単位で算術符号化処理を行い、処理結果の符号化データを信号Ｓ２７４として出力する。
例えば、算術符号化部２７４は、コンテクスト２７２の確率を示すインデックスに基づいて、入力されたデータを算術符号化処理を行う。本実施形態では算術符号化部２７４は、例えば図３に示すような算術符号化処理を行う。
マクロブロックは本発明に係る第１のブロック単位に相当し、１スライスや１ピクチャは本発明に係る第２のブロック単位に相当する。
【００４１】
付加部２７５は、算術符号化部２７４から出力された符号化データとしての信号Ｓ２７４を、算術符号化部２７４の算術符号化処理によるブロック単位よりも大きい所定単位、例えば１スライスでの画像データの圧縮の度合いを示す指標データに応じた付加データを付加する。付加データは、CabacZeroWordに相当する。
この付加データは、算術符号化部２７４による符号化処理の結果、圧縮率が高い符号化データを生成した際に、デコーダがその圧縮率の高い符号化データをデコード処理すると、その符号化データを所定時間内に処理しきれない場合があるので、例えば図６（ａ）に示すように、１画像の内の複数のスライス（Slice ）それぞれの最後に付加される。
付加部２７５は、例えば付加データとして、0x000003を１単位としたスタッフィングバイト（StuffingByte）を付加することで、デコーダの負荷を軽減する。
【００４２】
具体的には、付加部２７５は、数式（１）に示すように指標データＫを算出し、指標データＫが正の場合には、１スライスの最後に、（Ｋ×３）バイト分のビットを付加データとして、算術符号化部２７４から出力された符号化データに付加する。
【００４３】
〔数１〕
Ｋ＝Ceil((Ceil((3×BinCountsInNALUnits−3×96×PicSizeInMbs)／32)−NumBytesInVclNALUnits)／3)…（１）
【００４４】
数式（１）において、BinCountsInNALUnits は、算術符号化部２７４による算術符号化処理の前のデータであり、例えば２値化部２７１により出力されたデータの所定単位、例えば１ピクチャでのデータ長である。
NumBytesInVclNALUnits は、算術符号化部２７４により算術符号化処理されたデータの所定単位、例えば１ピクチャでのデータ長である。
PicSizeInMbsは、所定単位、例えば１ピクチャ内のマクロブロック数である。本実施形態では固定値である。
また、Ceil（Ａ）は、値Ａよりも大きい最小の整数値を示す。
【００４５】
１スライスの最後に付加する付加データのデータ長は、コンテクスト２７２、算術符号化部２７４、および更新部２７３により、入力されるデータに応じて確率モデルを更新しながら符号化処理を行うので、１スライス分のデータを符号化処理するまで不確定である。このため付加部２７５が付加する付加データのデータ長も不確定である。
例えば一般的なレート制御回路では、算術符号化部２７４が生成した符号化データと付加データとに基づいて、量子化レートを制御するので、制御できない場合がある。
【００４６】
本発明では、後述する予測部２７６を設けることにより、１スライスよりも小さい単位、例えばマクロブロック単位で付加データを予測する。以下、詳細に説明する。
【００４７】
予測部２７６は、ブロック単位で、例えばマクロブロック単位で算術符号化部２７４による算術符号化処理の対象のデータのデータ長、および、算術符号化部２７４が生成した符号化データのデータ長に基づいて、付加部２７５が付加する所定単位での指標データに応じた付加データを予測する。
【００４８】
詳細には、予測部２７６は、算術符号化部２７４がマクロブロック単位で、１スライス分のデータを符号化処理する途中で、算術符号化部２７４が算術符号化処理を行う前の処理対象のデータ、つまり２値化部２７１が生成したデータのデータ長と、算術符号化部２７４による算術符号化処理後のデータに基づいて所定単位、例えば１ピクチャー分の付加データを予測する。
【００４９】
レート制御回路３２は、ブロック単位、例えばマクロブロック単位で予測部２７６が予測した付加データに基づいて、量子化回路２６の量子化の度合いを示すデータ、詳細には量子化レートを設定する。
また、レート制御回路３２は、ブロック単位よりも大きい単位、例えば１スライス単位で符号化データに、付加部２７５が生成した付加データを付加したデータのデータ長に基づいて、量子化回路２６の量子化の度合いを示すデータ、詳細には量子化レートを設定する。
量子化回路２６は、設定された量子化レートに応じた量子化処理を行う。
【００５０】
図７は、図２に示した符号化回路２７の動作を説明するためのフローチャートである。図７を参照しながら符号化回路２７の動作を中心に説明する。
ステップＳＴ１において、２値化部２７１は、２値化処理、例えば量子化回路２６や動き予測・補償回路３９から入力されたＳＥを、ＶＬＣや固定長符号によりシンボルbin （binary symbol ）の列（バイナリデータ）に変換し、信号Ｓ２７１として出力する。
【００５１】
ステップＳＴ２において、信号Ｓ２７１がコンテクスト２７２に入力され、算術符号化部２７４は、コンテクスト２７２により設定された確率モデルに応じて算術符号化処理を行い符号化データＳ２７４を生成する。更新部２７３は信号Ｓ２７４に応じてコンテクスト２７２を更新する。
【００５２】
ステップＳＴ３において、予測部２７６は、ブロック単位で、例えばマクロブロック単位で、算術符号化部２７４の処理の対象のデータのデータ長、および、算術符号化部２７４が生成した符号化データＳ２７４のデータ長に基づいて、付加部２７５が符号化データＳ２７４に付加する、算術符号化処理によるブロック単位よりも大きい所定単位で、例えば１ピクチャ単位での画像データの圧縮の度合いを示す指標データＫに応じた付加データを予測する。
【００５３】
ステップＳＴ４において、現在処理したカレントマクロブロックCurrentMB が、１スライスの途中であるか否かが判別される。具体的には、例えば現在処理したカレントマクロブロックCurrentMB が１スライス中のマクロブロック数より小さいか否かが判別される。
現在処理したカレントマクロブロックCurrentMB が、１スライスの途中ではないと判別した場合、具体的には、現在処理したカレントマクロブロックCurrentMB が１スライス中のマクロブロック数より小さくないと判別した場合には、つまり、１スライス分のデータを算術符号化部２７４が処理した場合には、付加部２７５が１スライス分の算術符号化処理の前後のデータ長に基づいて数式（１）に示すように指標データＫを算出し、指標データＫに応じた付加データを、１スライス分の符号化データに付加する。
レート制御回路３２は、ブロック単位よりも大きい単位、例えば１スライス単位で符号化データに、付加部２７５が生成した付加データを付加したデータのデータ長に基づいて、量子化回路２６の量子化の度合いを示すデータ、詳細には量子化レートを設定する。
量子化回路２６は、その量子化レートに応じた量子化処理を行う。
【００５４】
一方、ステップＳＴ４において、現在処理したカレントマクロブロックCurrentMB が、１スライスの途中であると判別した場合、具体的には、例えば現在処理したカレントマクロブロックCurrentMB が１スライス中のマクロブロック数より小さいと判別した場合には、レート制御回路３２は、ブロック単位、例えばマクロブロック単位で予測部２７６が予測した付加データに基づいて、量子化回路２６の量子化の度合いを示すデータ、詳細には量子化レートを設定する（ＳＴ５）。また、量子化回路２６は、設定された量子化レートに応じた量子化処理を行う。
【００５５】
図８は、図５に示した算術符号化部２７４の動作の一具体例を示すフローチャートである。次に、図８を参照しながら、算術符号化部２７４の動作の一具体例を説明する。
具体的には、算術符号化部２７４は、指定されたコンテクスト２７２のインデックスctxIdxと、エンコードするシンボルbinValを入力として、符号化処理を行う。
例えば図３に示した、codIRange ，codILow は、出現確率幅（レンジRange ），下限値Low を表す。コンテクストＣＴＸ２７２は、インデックスctxIdxによって管理され、各コンテクストにはMPS値と遷移状態番号を示すvalMPS，pStateIdx が割り当てられる。
【００５６】
ステップＳＴ１０１において、算術符号化部２７４は、codIRange の値をqCodIRangeIdx という値に量子化し、規定されたテーブル値rangeTabLPS を使って、LPS の確率幅 codIRangeLPS を求める。また、codIRange をMPS の確率幅に変更する。
【００５７】
ステップＳＴ１０２において、算術符号化部２７４は、入力シンボルbin がMPS か否かで処理を分岐する。シンボルがMPS の時は、規格で規定しているテーブル値transIdxMPS によって状態を遷移させ、pStateIdxを更新する（ＳＴ１０３）。
【００５８】
一方，ステップＳＴ１０２において、入力シンボルbin がLPS のときは、codILow値、codIRange 値を更新する。
具体的には、codILowとcodIRangeを加算した値をcodILowに代入し、codIRangeにcodIRangeLPSを代入する（ＳＴ１０４）。
ステップＳＴ１０５において、pStateIdx が０でないか否が判別され、pStateIdx が０の場合にはvalMPSに１−valMPSを代入し（ＳＴ１０６）、ステップＳＴ１０７の処理に進む。ステップＳＴ１０５においてpStateIdx が０でない場合にもステップＳＴ１０７の処理に進む。
ステップＳＴ１０７において、pStateIdx を更新する。
ステップＳＴ１０８において、算術符号化部２７４は、後述する正規化処理を行う。
【００５９】
図９は、図８に示した正規化処理の一具体例を説明するためのフローチャートである。算術符号化部２７４は、図８に示したステップＳＴ１０８の正規化処理を以下に示すように処理を行う。
ステップＳＴ１１１に示すように、算術符号化部２７４は、codIRange の値が所定値、例えば0x100よりも小さいか否かを判別し、codIRange の値が所定値、例えば0x100よりも小さくないと判別した場合には、正規化処理を行わない。
【００６０】
一方、ステップＳＴ１１１において、codIRange の値が所定値、例えば0x100よりも小さいと判別した場合には、算術符号化部２７４は、codILowの値が所定値、例えば0x100よりも小さいか否かを判別する（ＳＴ１１２）。
codILowの値が所定値、例えば0x100よりも小さいと判別した場合には、算術符号化部２７４は、後述する符号化データを出力するための処理PutBit（０）を行い（ＳＴ１１３）、codIRange 値を１／２倍し、codILow値を１／２倍する。詳細には、codIRange 値およびcodILow値を１ビット分左シフト演算を行うことで、それぞれの値を１／２倍し（ＳＴ１１４）、ステップＳＴ１１１の処理に戻る。
【００６１】
一方、ステップＳＴ１１２において、codIRange の値が所定値、例えば0x100よりも小さくないと判別した場合には、算術符号化部２７４は、codILowの値が所定値、例えば0x200以上であるか否かを判別する（ＳＴ１１５）。codILowの値が所定値、例えば0x200以上でないと判別した場合には、codILow値から所定値、例えば0x100を減算し、bitsOutstandingの値に１を加算し（ＳＴ１１６）、ステップＳＴ１１４の処理に進む。
このbitsOutstandingは、正規化処理の際にキャリーオーバ防止のために設けられたデータであり、bitsOutstandingのデータは、所定単位の符号化処理が終了した時点で０にリセットされる。
【００６２】
一方、ステップＳＴ１１５の判別において、codILowの値が所定値、例えば0x200以上であると判別した場合には、codILow値から所定値、例えば0x200を減算し（ＳＴ１１７）、後述する符号化データを出力するための処理PutBit（１）を行い（ＳＴ１１８）、ステップＳＴ１１４の処理に進む。
【００６３】
図１０は、図９に示した符号化処理のPutBit(Ｂ)の処理を説明するためのフローチャートである。図１０を参照しながら、算術符号化処理のステップＳＴ１１３，ＳＴ１１８におけるPutBit(Ｂ)の動作を説明する。
算術符号化部２７４は、符号化データを出力する際に、最初のビットであるか否かを判別する。この判断には例えば最初のビットを示すfirstbitFlagが用いられる。firstbitFlagが０以外の場合には、最初のビットであることを示し、firstbitFlagが０の場合には、最初のビット以外であることを示す。
詳細には、算術符号化部２７４は、ステップＳＴ２１０において、firstbitFlagが０以外の場合には、firstbitFlagに０を代入して最初のビットを出力しない。
一方、ステップＳＴ２１０において、算術符号化部２７４は、firstbitFlagが０の場合には、WriteBits(B,1)の処理を行う。ここでWriteBits(B,1)は、１ビット長の値Ｂを出力する処理である。
【００６４】
ステップＳＴ２１３において、算術符号化部２７４は、bitsOutstandingが０より大きいか否かを判別し、０よりも大きいと判別した場合には、WriteBits(1-B,1)の処理を行い（ＳＴ２１４）、bitsOutstandingから１減算しステップＳＴ２１３の処理に戻る。ここでWriteBits(1-B,1)の処理は、１ビット長のＢの補数を出力する処理である。
【００６５】
一方、ステップＳＴ２１３において、算術符号化部２７４は、bitsOutstandingが０以下であると判別した場合には、一連の処理を中止する。
以上説明した動作を行うことで、算術符号化部２７４は、キャリーオーバを起こすことなく、符号化処理を行うことができる。
【００６６】
算術符号化部２７４は、マクロブロック単位で算術符号化処理を行う際に、順に符号化データを出力するのではなく、上述したようにbitsOutstanding を用いて算術符号化処理を行う場合には、bitsOutstanding の値に応じて符号化データが出力する。
このため予測部２７６は、このbitsOutstanding を考慮して予測を行うことが好ましい。
以下、予測部２７６の一具体例を詳細に説明する。
【００６７】
予測部２７６は、例えば１スライスの内で現在処理中のマクロブロックまでに、２値化部２７１が生成したデータのデータ長、つまり算術符号化部２７４の処理対象のデータのデータ長BitCounts を計算する。
【００６８】
また、予測部２７６は、現在処理中のマクロブロックまでに生成された符号化データのデータ長NumBytesを計算する。
具体的には、予測部２７６は、データ長NumBytesとして、例えば数式（２）に示すように、現在処理中のマクロブロック（CurrentMB とも言う）までに生成した符号化データのデータ長GenBits と、その時点でのbitsOutstanding の値を加算して求める。
【００６９】
〔数２〕
NumBytes  ＝  (GenBits ＋bitsOutstanding) / 8          …（２）
【００７０】
上述したように、bitsOutstanding を加算するのは、正規化処理の際にキャリーオーバを避けるために、bitsOutstanding に本来その時点でバッファに出力されるビット量をカウントしているためである。
数式（２）に示した計算により、予測部２７６は、より高精度に現在処理中のマクロブロックまでに生成された符号化データのデータ長NumBytesを計算することができる。
【００７１】
また、GenBitsには、実際に符号化処理されバッファに出力されたビットであるので、エミュレーションプリベンションバイトを含む。
【００７２】
また、予測部２７６は、１ピクチャ分のデータを処理中にマクロブロック単位で、例えば数式（３）に示すように、１ピクチャ分の２値化部２７１による２値化後のデータのデータ長の予測値EstimateBinCountsInNALUnits を、CurrentMBまでの２値化後のデータのデータ長CurrentBinarizationNum と、１ピクチャーのマクロブロック数PicSizeInMbs と、現在処理中のマクロブロックを示すデータMbNoを用いて計算する。
【００７３】
〔数３〕
EstimateBinCountsInNALUnits＝CurrentBinarizationNum ×（PicSizeInMbs ／MbNo）…（３）
【００７４】
また、予測部２７６は、１ピクチャ分のデータを処理中にマクロブロック単位で、例えば数式（４）に示すように、
１ピクチャ分の符号化データのデータ長の予測値EstimateNumByteInVclNALUnitsを、算術符号化部２７４が１ピクチャ分の算術符号化処理により出力したデータのデータ長GenBitsと、bitsOutstandingの値、および、１ピクチャーのマクロブロック数PicSizeInMbs と、現在処理中のマクロブロックを示すデータMbNoとを用いて計算する。
また、MbNoは現在処理中のマクロブロックであるが、これは1マクロブロック毎に加算されるため、これまでのエンコードしたマクロブロックの総和となる。
【００７５】
〔数４〕
EstimateNumByteInVclNALUnits＝（GenBits ＋bitsOutstanding）×（PicSizeInMbs ／MbNo）／８…（４）
【００７６】
予測部２７６は、数式（１）に示した、BinCountsInNALUnitsおよびNumBytesInVclNALUnitsに、予測値EstimateBinCountsInNALUnitsおよびEstimateNumByteInVclNALUnitsを代入することで、１ピクチャ分の圧縮の度合いを示す指標データＫを予測する。
【００７７】
詳細には、予測部２７６は、数式（５）に示すような計算を行うことで、指標データＫを予測する。
【００７８】
〔数５〕
Ｋ＝Ceil((Ceil((3×EstimateBinCountsInNALUnits−3×96×PicSizeInMbs)／32)−EstimateNumByteInVclNALUnits)／3)…（５）
【００７９】
また、予測部２７６は、その予測した指標データＫに応じた付加データのデータ長を予測する。
レート制御回路３２は、その予測した指標データＫに応じた付加データのデータ長に応じて、マクロブロック単位で量子化レートの制御を行う。
【００８０】
上述したように予測部２７６は、１マクロブロック単位で付加部２７５が生成する付加データを予測することができる。また、予測部２７６が予測する指標データＫや付加データは、算術符号化処理が進み１ピクチャの最後のマクロブロックに近づくにつれて付加部２７５が生成する指標データＫや付加データに近づく。
各構成要素の動作は、図７に示したフローチャートと同様であるので説明を省略する。
相違点は、予測部２７６がbitsOutstandingを考慮し、数式（２）〜数式（５）に基づいて付加データを予測する点である。これにより、より高精度に付加データを予測することができる。
【００８１】
以上説明したように、画像データをマクロブロック単位で算術符号化処理を行い符号化データを生成する算術符号化部２７４と、算術符号化部２７４が生成した符号化データに、算術符号化部２７４の算術符号化処理によるマクロブロック単位よりも大きい所定単位での画像データの圧縮の度合いを示す指標データＫに応じた付加データを付加する付加部２７５と、マクロブロック単位で、算術符号化部２７４による算術符号化処理の対象のデータのデータ長、および、算術符号化部２７４が生成した符号化データのデータ長に基づいて、付加部２７５が付加する所定単位での指標データＫに応じた付加データを予測する予測部２７６と、マクロブロック単位で、予測部２７６が予測した付加データに応じた所定処理を行うレート制御回路３２および量子化回路２６とを設けたので、符号化処理において、画像データのうち付加データの所定単位よりも小さい単位で付加データを予測できる。
【００８２】
また、算術符号化部２７４による正規化処理に係るビットアウトスタンディングデータbitsOutstanding、および算術符号化部２７４が画像データの１ピクチャのうち算術符号化処理したブロックまでの符号化データのデータ長、および１ピクチャのうち算術符号化処理前のデータのデータ長に基づいて、所定単位での指標データに応じた付加データを予測するので、より高精度に指標データおよび付加データを予測することができる。
【００８３】
なお、本発明は本実施形態に限られるものではなく、任意好適な改変が可能である。
本実施形態に係る符号化装置では、ハードウェアにより、本発明に係る機能を実現したが、この形態に限られるものではない。例えば、コンピュータ（データ処理装置）が上述した本発明に係る機能を有するプログラムを実行することにより、本発明に係る機能を実現してもよい。
【図面の簡単な説明】
【００８４】
【図１】本発明の一実施形態に係る符号化装置を採用した通信システム１の概念図である。
【図２】図１に示す符号化装置２の全体構成図である。
【図３】算術符号化処理を説明するための図である。
【図４】符号化処理における正規化処理を説明するための図である。
【図５】図２に示した符号化回路の機能ブロック図である。
【図６】画像データにおいてピクチャ、スライス、マクロブロックを説明するための図である。（ａ）は、画像データ内の１ピクチャが、横方向に複数のスライスにより構成されていることを示す図であるり、（ｂ）は、１スライスがマクロブロックにより構成されていることを示す図である。
【図７】図２に示した符号化回路の動作を説明するためのフローチャートである。
【図８】図５に示した算術符号化部の動作の一具体例を示すフローチャートである。
【図９】図８に示した正規化処理の一具体例を説明するためのフローチャートである。
【図１０】図９に示した符号化処理のPutBit(Ｂ)の処理を説明するためのフローチャートである。
【符号の説明】
【００８５】
１…通信システム、２…符号化装置（データ処理装置：コンピュータ）、３…復号装置、２２…Ａ／Ｄ変換回路、２３…画面並べ替え回路、２４…演算回路、２５…直交変換回路、２６…量子化回路、２７…符号化回路、２８…バッファ、２９…逆量子化回路、３０…逆直交変換回路、３２…レート制御回路、３４…フレームメモリ、３８…デブロックフィルタ、３９…動き予測・補償回路、２７１…２値化部（ＢＩＮＲ）、２７２…コンテクスト（ＣＴＸ）、２７３…更新部（ＵＰＤＴ）、２７４…算術符号化部、２７５…付加部、２７６…予測部、Range …レンジ、Low …下限値。
【図１】
2005252374.tif 000003
【図２】
2005252374.tif 000004
【図３】
2005252374.tif 000005
【図４】
2005252374.tif 000006
【図５】
2005252374.tif 000007
【図６】
2005252374.tif 000008
【図７】
2005252374.tif 000009
【図８】
2005252374.tif 000010
【図９】
2005252374.tif 000011
【図１０】
2005252374.tif 000012