(57)【要約】  符号化装置１００は、仮量子化パラメータを生成する量子化パラメータ発生回路１１１と、量子化対象の信号を仮量子化パラメータに基づき量子化して量子化データを生成する量子化回路１２１と、その量子化データを２値化し２値シンボルデータを出力する２値化回路１３１と、２値シンボルデータに対して算術符号化を行い、符号化データを生成する算術符号化回路１４１と、２値シンボルデータのシンボル量、符号化データの符号量、シンボル量の上限値、及び目標符号量に基づいて好適な量子化パラメータを生成する量子化パラメータ算出回路１１２と、その好適な量子化パラメータに基づき量子化対象の信号を量子化する量子化回路１２２とを備える。
2008065822.tif 000002
【特許請求の範囲】
【請求項１】
入力信号を量子化し、符号化する装置であって、量子化により生成される２値シンボルのシンボル量の上限値が定められている符号化装置において、
入力信号に対して所定の信号処理を行う信号処理回路と、
第１の量子化パラメータを生成する量子化パラメータ発生回路と、
前記所定の信号処理がなされた入力信号を、前記第１の量子化パラメータに基づき量子化して第１の量子化データを生成する第１の量子化回路と、
前記第１の量子化データに対して２値化を行い、第１の２値シンボルデータを出力する第１の２値化回路と、
前記第１の２値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第１の符号化データを生成する第１の算術符号化回路と、
前記第１の２値シンボルデータのシンボル量、前記第１の符号化データの符号量、第２の量子化パラメータ、前記シンボル量の上限値、及び前記目標符号量に基づいて、第２の量子化パラメータを生成する量子化パラメータ算出回路と、
前記第２の量子化パラメータに基づいて、前記所定の信号処理がなされた入力信号を量子化し、第２の量子化データを生成する第２の量子化回路と、
前記第２の量子化データに対して２値化を行い、第２の２値シンボルデータを出力する第２の２値化回路と、
前記第２の２値シンボルデータに対して算術符号化を行い、前記入力信号に対する符号化データを生成し、出力する第２の算術符号化回路と
を備えたことを特徴とする符号化装置。
【請求項２】
前記量子化パラメータ算出回路は、
前記第１の量子化パラメータ、前記第１の２値シンボルデータのシンボル量、及び前記シンボル量の上限値に基づいて第１のパラメータ候補を生成し、
前記第１の量子化パラメータ、前記第１の符号化データの符号量、及び前記目標符号量に基づいて第２のパラメータ候補を生成し、
前記第１及び第２のパラメータ候補を比較し、生成される符号化データの符号量がより小さくなる方のパラメータ候補を、前記第２の量子化パラメータに設定する、
ことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記量子化パラメータ発生回路は、複数の代表量子化パラメータを有し、その複数の代表量子化パラメータの中から一つの代表量子化パラメータを選択して、前記第１の量子化パラメータとする、ことを特徴とする請求項１に記載の符号化装置。
【請求項４】
前記信号処理回路は、前記入力信号に対して所定の信号処理を行い、Ｎ個（Ｎは２以上の自然数）の信号を生成し、前記複数の代表量子化パラメータの数ＱはＮの約数であり、
前記量子化パラメータ発生回路は、前記信号処理回路から出力される連続したＱ個の前記信号に対して、互いに異なるＱ個の代表量子化パラメータを割り当てることで前記第１の量子化パラメータを生成する、ことを特徴とする請求項３に記載の符号化装置。
【請求項５】
前記複数の代表量子化パラメータは量子化パラメータの最大値及び最小値を含むことを特徴とする請求項３記載の符号化装置。
【請求項６】
前記信号処理回路は、映像信号を入力し、周波数成分に変換して係数データを生成し、出力する、ことを特徴とする請求項１記載の符号化装置。
【請求項７】
前記信号処理回路は、映像の１フレームを複数ブロックに分割して得られるブロック毎に、そのブロックに含まれる画素及びそのブロックに隣接する画素に基づいて前記係数データを生成し、
前記信号処理回路は、前記第１の量子化回路に入力される係数データの生成に用いる前記隣接画素は、入力された前記映像信号から抽出し、前記第２の量子化回路に入力される係数データの生成に用いる前記隣接画素は、前記第２の量子化データを逆量子化した後に前記周波数成分から逆変換した信号から抽出する
ことを特徴とする請求項６に記載の符号化装置。
【請求項８】
量子化パラメータ算出回路は、所定数のブロックにおいて前記第１の２値シンボルデータのシンボル量を同じ第１の量子化パラメータ毎に積算した結果と、所定数のブロックにおいて前記第１の符号化データの符号量を同じ第１の量子化パラメータ毎に積算した結果とを用いて、第２の量子化パラメータを生成する、ことを特徴とする請求項７記載の符号化装置。
【請求項９】
入力信号を量子化し、符号化する方法であって、量子化により生成される２値シンボルのシンボル量に上限値が定められている符号化方法において、
入力信号に対して所定の信号処理を行うステップと、
第１の量子化パラメータを生成するステップと、
前記所定の信号処理がなされた入力信号を、前記第１の量子化パラメータに基づき量子化して第１の量子化データを生成するステップと、
前記第１の量子化データに対して２値化を行い、第１の２値シンボルデータを出力するステップと、
前記第１の２値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第１の符号化データを生成するステップと、
前記第１の２値シンボルデータのシンボル量、前記第１の符号化データの符号量、第２の量子化パラメータ、前記シンボル量の上限値、及び前記目標符号量に基づいて、第２の量子化パラメータを生成するステップと、
前記第２の量子化パラメータに基づいて、前記所定の信号処理がなされた入力信号を量子化し、第２の量子化データを生成するステップと、
前記第２の量子化データに対して２値化を行い、第２の２値シンボルデータを出力するステップと、
前記第２の２値シンボルデータに対して算術符号化を行い、前記入力信号に対する符号化データを生成し、出力するステップと
を含むことを特徴とする符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置及び方法に関し、特に、算術符号化を適用した符号化装置及び方法に関する。
【背景技術】
【０００２】
算術符号化は、情報源シンボルの発生確率に応じて、情報量を理論的限界まで可逆圧縮できる技術である。算術符号化は、画像符号化の分野において、ＪＰＥＧ２０００規格（ＩＳＯ／ＩＥＣ１５４４４）、Ｈ．２６４／ＭＰＥＧ４−ＡＶＣ規格（非特許文献１参照）等に採用されている。【０００３】
例えば、Ｈ．２６４においては、コンテキスト適応算術符号化（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）が採用され、シンタックスの確率特性に応じた効率の高い符号化を実現している。【０００４】
Ｈ．２６４におけるコンテキスト適応算術符号化について説明する。図９に、従来のコンテキスト適応算術符号化回路を示す。【０００５】
図９に示すコンテキスト適応算術符号化回路１４において、２値化回路１３０は、変換係数データ、フラグ等の符号化情報からなる多値入力データの２値化を行う。ここで、２値化は、制御情報から入力データの種類であるシンタックスエレメント（ｓｙｎｔａｘ  ｅｌｅｍｅｎｔ）を判別し、データの確率特性によって、ユーナリー・バイナライゼーション（ｕｎａｒｙ  ｂｉｎａｒｉｚａｔｉｏｎ）や固定長バイナライゼーション（ｆｉｘｅｄ−ｌｅｎｇｔｈ  ｂｉｎａｒｉｚａｔｉｏｎ）といった複数の方式を使い分けながら行われる。２値化回路１３０により２値化された２値シンボル（バイナリ）列は、（２値）算術符号化回路１４０に入力される。【０００６】
コンテキスト計算回路５２０は、シンタックスエレメントを示す制御情報に基づいて、２値シンボル列における現在の１ビットを符号化するために用いるコンテキストインデックス（ｃｔｘＩｄｘ）の値を、Ｈ．２６４規格で定められたテーブルを参照して一意に決定する。コンテキスト計算回路５２０は、ｃｔｘＩｄｘの値毎に発生確率情報を初期化して記憶する。発生確率情報は、２値シンボルの「０」又は「１」のうち発生確率の高い方のシンボルを示すＭＰＳと発生確率ｐＳｔａｔｅの組である。求められたｃｔｘＩｄｘの値に対応した発生確率情報を「コンテキスト情報」と呼ぶ。【０００７】
コンテキスト計算回路５２０はコンテキスト情報５０４を生成して算術符号化回路１４０に出力する。このように、算術符号化を行うシンタックスエレメントによって算術符号化回路１４０に入力されるシンボルの発生確率すなわちコンテキスト情報５０４が適応的に切り替わることにより、２値シンボルの発生確率が動的に変わる２値シンボル列５０３に対して、最適な算術符号化が可能となる。【０００８】
以下の説明において、２値シンボル列の総ビット長（シンボル長）を「シンボル量」、算術符号化後の出力符号の総ビット長を「符号量」といい、特に、一定区間の多値入力データを処理した際に発生する、２値シンボル列の総ビット長を「発生２値シンボル量」、出力符号の総ビット長を「発生符号量」と呼ぶ。【０００９】
算術符号化回路１４０の動作について図１０を用いて説明する。図１０において、シンボル「０」の発生確率が０．７５（２進数で０．１１）、シンボル「１」の発生確率が０．２５の情報源から｛０，０，０，１｝のバイナリ列が供給された場合を考える。この場合、現在のコンテキスト情報５０４は、発生確率の高い方のシンボルを示すＭＰＳ＝０、及び発生確率ｐＳｔａｔｅ＝０．１１で表される（図１０（ａ）参照）。発生確率ｐＳｔａｔｅは、正規化された整数値で表現されるが、ここでは簡単化のため２進数の値とする。コンテキスト情報５０４は、今回の２値算術符号化により更新され、コンテキスト計算回路５２０に戻される。コンテキスト計算回路５２０では、対応するｃｔｘＩｄｘの発生確率情報を更新する。この値は、次回に同じコンテキストの符号化が行われる際に再利用される。【００１０】
図１０（ｂ）を参照し、１個目の入力バイナリ値「０」が入力されると、［０，１］の区間が確率０．１１で区切られる０側に区間が狭められ、［０，０．１１］になる。２個目の入力「０」が入力されると、［０，０．１１］の区間が［０，０．１００１］に狭められる。ここで、０．１００１＝０．１１×０．１１である。同様にして、３個目の入力「０」により区間が［０，０．０１１０１１］になる。４個目の入力「１」が入力されると、１側に区間に狭められる。最終的な区間は［０．０１０１０００１，０．０１１０１１］になる。この最終的な区間に含まれる値のうち、最短の語長を持つものが符号語となる。すなわち、０．０１１は、この区間に含まれるので、小数点以下の値「０１１」が出力バイナリ列となり、４ビットの入力値が３ビットに圧縮されたことになる。実際には、出力するビット（０もしくは１）が確定した時点で確率値の左ビットシフトを行うリノーマライゼーション（ｒｅｎｏｒｍａｌｉｚａｔｉｏｎ）と呼ばれる処理が行われる。【００１１】
一方、動画像符号化においては、特定のビットレートの条件下で画質を最大限に高めるため、各マクロブロックを符号化する際の量子化パラメータを適切に制御して、符号量制御を行う必要がある。符号量制御の精度を高めるため、スライス、フレーム、ＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）といった単位でパラメータを変更して繰返し符号化を行うことが一般的である。【００１２】
【特許文献１】特開平２００４−１３５２５１号公報
【非特許文献１】ＩＳＯ／ＩＥＣ１４４９６−１０  Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ
【発明の開示】
【発明が解決しようとする課題】
【００１３】
算術符号化を用いた符号化回路を構成する場合、デコーダにおける最大処理量を規定する目的から、２値シンボル量の上限値（ＢｉｎＣｏｕｎｔｓＩｎＮＡＬｕｎｉｔｓ）が規定されている（非特許文献１参照）。この上限値の規定を順守するために、符号量と２値シンボル量を制御する必要がある。この上限値の規定により、回路の動作時間の上限値を規定することができる。例えば、特許文献１では、算術符号化器に入力する２値シンボル量の制限監視器を用意し、閾値を超えた場合には符号化し直すか、並列に複数の符号化パラメータを適用する符号化を行うことにより、２値シンボル量を制御している。【００１４】
符号化し直す場合、前述したように既に更新された算術符号化の発生確率情報を元に戻す必要があり、リアルタイムでの処理が要求される符号化装置においては複雑な回路構成が必要となる。また、並列に複数の符号化パラメータを適用して符号化する場合、算術符号化回路が符号化パラメータの数だけ必要となり、回路規模の増大を招来する。【００１５】
本発明は上記課題を考慮してなされたものであり、その目的とするところは、算術符号化を適用した符号化装置であって、簡単な回路構成で、２値シンボル量を上限値以下に制御しつつ復号動作の保証された符号化を行い、同時に精度良く符号量制御を実現する符号化装置を提供することにある。
【課題を解決するための手段】
【００１６】
本発明の第１の態様において、入力信号を量子化し、符号化する装置であって、量子化により生成される２値シンボルのシンボル量の上限値が定められている符号化装置を提供する。【００１７】
符号化装置は、入力信号に対して所定の信号処理を行う信号処理回路と、第１の量子化パラメータを生成する量子化パラメータ発生回路と、所定の信号処理がなされた入力信号を、第１の量子化パラメータに基づき量子化して第１の量子化データを生成する第１の量子化回路と、第１の量子化データに対して２値化を行い、第１の２値シンボルデータを出力する第１の２値化回路と、第１の２値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第１の符号化データを生成する第１の算術符号化回路と、第１の２値シンボルデータのシンボル量、第１の符号化データの符号量、第２の量子化パラメータ、シンボル量の上限値、及び目標符号量に基づいて、第２の量子化パラメータを生成する量子化パラメータ算出回路と、第２の量子化パラメータに基づいて、所定の信号処理がなされた入力信号を量子化し、第２の量子化データを生成する第２の量子化回路と、第２の量子化データに対して２値化を行い、第２の２値シンボルデータを出力する第２の２値化回路と、第２の２値シンボルデータに対して算術符号化を行い、入力信号に対する符号化データを生成し、出力する第２の算術符号化回路とを備える。【００１８】
本発明の第２の態様において、入力信号を量子化し、符号化する方法であって、量子化により生成される２値シンボルのシンボル量に上限値が定められている符号化方法を提供する。【００１９】
符号化方法は、入力信号に対して所定の信号処理を行うステップと、第１の量子化パラメータを生成するステップと、所定の信号処理がなされた入力信号を、第１の量子化パラメータに基づき量子化して第１の量子化データを生成するステップと、第１の量子化データに対して２値化を行い、第１の２値シンボルデータを出力するステップと、第１の２値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第１の符号化データを生成するステップと、第１の２値シンボルデータのシンボル量、第１の符号化データの符号量、第２の量子化パラメータ、シンボル量の上限値、及び目標符号量に基づいて、第２の量子化パラメータを生成するステップと、第２の量子化パラメータに基づいて、所定の信号処理がなされた入力信号を量子化し、第２の量子化データを生成するステップと、第２の量子化データに対して２値化を行い、第２の２値シンボルデータを出力するステップと、第２の２値シンボルデータに対して算術符号化を行い、入力信号に対する符号化データを生成し、出力するステップとを含む。
【発明の効果】
【００２０】
本発明によれば、算術符号化を用いた符号化装置において、簡単な回路構成で、発生２値シンボル量を上限値以下に制御して、同時に精度良く出力ビットストリームの符号量制御を行うことが可能となり、符号量を所定量以内に精度良く収めかつ復号動作の保証されたビットストリームを提供することを可能とする。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態における映像符号化装置の構成図
【図２】符号化される画像とマクロブロックの関係を説明した図
【図３】仮量子化パラメータの選択例を示す図
【図４】（ａ）代表量子化パラメータの具体例を説明した図、（ｂ）プログレッシブ方式の場合のマクロブロックへの代表量子化パラメータの適用例を示した図、（ｃ）インターレース方式の場合のマクロブロックへの代表量子化パラメータの適用例を示した図
【図５】２値シンボル量・符号量積算値メモリに格納される、代表量子化パラメータ毎の発生２値シンボル量と発生符号量の具体例を示した図
【図６】発生２値シンボル量に基づく最適量子化パラメータの算出方法を説明するための図
【図７】発生符号量に基づく最適量子化パラメータの算出方法を説明するための図
【図８】本発明の思想が適用可能な符号化装置の構成図
【図９】従来のコンテキスト適応算術符号化回路の構成を示す図
【図１０】２値算術符号化を説明するための図
【符号の説明】
【００２２】
１００  映像符号化装置
１０１  第一の符号化回路
１０２  第二の符号化回路
１１１  量子化パラメータ発生回路
１１２  量子化パラメータ算出回路
１２１、１２２  量子化回路
１２４  逆量子化回路
１３１、１３２  ２値化回路
１３１  コンテキスト選択回路
１４１、１４２  算術符号化回路
１５１  フレームメモリ
１５２  予測モードメモリ
１５３  ２値シンボル量・符号量積算値メモリ
１６１、１６２  ブロック化回路
１７１、１７２  イントラ予測生成回路
１７３  予測モード検出回路
１８１、１８２  ＤＣＴ回路
１８４  逆ＤＣＴ回路
２００  符号化装置
２２１、２２２  量子化回路
２５１  遅延メモリ
２６１、信号処理回路
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態について添付の図面を参照しながら説明する。【００２４】
本実施形態では、フレーム内で復号可能なイントラフレームを符号化対象として、符号化により得られる２値シンボル量を所定の上限値以下に制御しつつ、精度良く符号量制御を行う映像符号化装置について説明する。【００２５】
１．映像符号化装置の構成
図１に、本発明の実施の形態における映像符号化装置の構成を示す。図１において、映像符号化装置１００は、仮符号化を行う第一の符号化回路１０１と、正規の符号化を行う第二の符号化回路１０２と、フレームメモリ１５１と、予測モードメモリ１５２と、２値シンボル量・符号量積算値メモリ１５３と、２値シンボル量・符号量積算回路１５４とを備える。【００２６】
第一の符号化回路１０１は、入力したディジタル映像信号をブロック化するためのブロック化回路１６１と、予測モード検出回路１７３と、イントラ予測生成回路１７１と、直交変換回路としてのＤＣＴ回路１８１と、量子化回路１２１と、量子化パラメータ発生回路１１１と、２値化回路１３１と、算術符号化回路１４１とから構成される。【００２７】
第二の符号化回路１０２は、入力したディジタル映像信号をブロック化するためのブロック化回路１６２と、イントラ予測生成回路１７２と、ＤＣＴ回路１８２と、量子化回路１２２と、量子化パラメータ算出回路１１２と、２値化回路１３２と、算術符号化回路１４２と、逆量子化回路１２４と、逆ＤＣＴ回路１８４とから構成される。【００２８】
２．映像符号化装置の動作
以上のように構成された映像符号化装置について、以下その動作を説明する。最初に、１フレームの映像データに対する符号化処理の流れについて説明する。【００２９】
映像符号化装置１００は１フレームのディジタル映像信号を入力すると、第一の符号化回路１０１により１フレーム分の映像信号の仮符号化処理を行う。【００３０】
映像符号化装置１００に入力されたディジタル映像信号はまたフレームメモリ１５１に格納され、１フレーム以内の所定時間だけ遅延され、第二の符号化回路１０２に出力される。第二の符号化回路１０２はフレームメモリ１５１からデータを読み出し、読み出したデータに対して正規の符号化処理を行い、符号化された結果としてビットストリームを出力する。【００３１】
第一の符号化回路１０１において、予測モード検出回路１７３は、イントラ予測の予測モードを検出し、その値を予測モードメモリ１５２に格納する。また、２値化回路１３１及び算術符号化回路１４１から出力された２値シンボル量及び符号量が２値シンボル・符号量積算値メモリ１５３に格納される。【００３２】
第二の符号化回路１０２は、予測モードメモリ１５２に格納された予測モード値、及び２値シンボル量・符号量積算値メモリ１５３に格納された２値シンボル量と符号量の積算値を受けて最適な量子化パラメータを決定し、第一の符号化回路１０１で処理されたフレームと同じフレームの映像信号に対して正規の符号化処理を行う。【００３３】
２．１  第一の符号化回路の処理
第一の符号化回路１０１の処理を説明する。
ブロック化回路１６１は、入力された１フレームのディジタル映像信号が示す画像を１６×１６画素の複数のマクロブロックに分割する。マクロブロックはＤＣＴやイントラ予測の処理単位となるブロックを複数個含む。【００３４】
イントラ予測生成回路１７１は、マクロブロック毎に、入力されたディジタル映像信号の画素と、入力されたディジタル映像信号の画像に隣接する画素とから、そのマクロブロックの各画素の値を種々の予測モードで予測する。予測モードには、フィールドマクロブロック復号フラグ（ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇ）、輝度４×４イントラ予測モード（Ｉｎｔｒａ４ｘ４ＰｒｅｄＭｏｄｅ）、輝度８×８イントラ予測モード（Ｉｎｔｒａ８ｘ８ＰｒｅｄＭｏｄｅ）、色差イントラ予測モード（ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅ）が含まれる。イントラ予測は８×８画素ブロックや４×４画素ブロックの単位で行われてもよい。【００３５】
予測モード検出回路１７３は、４つの予測モードの中から最適な予測モードを検出し、その情報を予測モード値として出力する。予測モード値は予測モードメモリ１５２に蓄積される。【００３６】
入力されたディジタル映像信号における符号化対象のマクロブロックの各画素値と、イントラ予測生成回路１７１により生成された、符号化対象のマクロブロックの各画素の予測値との差分値が計算されて、１６×１６画素の差分値のブロックが生成され、ＤＣＴ回路１８１に出力される。【００３７】
ＤＣＴ回路１８１は、差分値のブロックに対してＤＣＴ処理を行う。ＤＣＴ処理は、通常４×４画素や８×８画素のブロック単位で行われ、周波数成分の係数データが出力される。係数データは量子化回路１２１に入力される。量子化回路１２１は、係数データを量子化パラメータに応じて量子化する。量子化パラメータは量子化パラメータ発生回路１１１により与えられる。【００３８】
量子化パラメータ発生回路１１１は量子化の際の量子化レートを規定する量子化パラメータを発生させる。本実施形態において、量子化パラメータの取り得る値は０〜５１とし、その値が小さいほど、より高い量子化レートを示すものとする。量子化パラメータ発生回路１１１は、発生させる量子化パラメータの候補として、複数の量子化パラメータ（以下「代表量子化パラメータ」という）ｑｐを有している。量子化パラメータ発生回路１１１は、マクロブロック毎に、複数の代表量子化パラメータｑｐの中から１つを選択して、そのマクロブロックの量子化に対する量子化パラメータＱＰとして出力する。量子化パラメータ発生回路１１１の量子化パラメータの決定処理の詳細は後述する。【００３９】
量子化回路１２１により量子化された係数データは、２値化回路１３１にて２値化され、その後、算術符号化回路１４１により算術符号化される。２値シンボル量・符号量積算回路１５４は、２値化回路１３１から出力される２値シンボルのシンボル量と、算術符号化回路１４１から出力される符号の符号量とを、同一の量子化パラメータが適用されるマクロブロック群毎に積算し、積算した値を２値シンボル量・符号量積算値メモリ１５３に格納する。【００４０】
本実施形態では、仮符号化において、イントラ予測の予測画素はディジタル映像信号から得る。Ｈ．２６４規格が規定するイントラ予測の予測画素は、デコーダが用いる、復号された値であるが、以下の理由により、これを用いないのが望ましい。【００４１】
第一に、仮符号化では量子化パラメータを量子化パラメータ発生回路１１１により変化させて符号量及び２値シンボル量を出力するため、復号画素を用いると、量子化パラメータの値が大きい時に復号画素の精度が悪くなり、以降のマクロブロックの予測画素の精度が低下してしまう。第二に、復号画素を用いないことで、仮符号化における逆量子化回路及び逆ＤＣＴ回路を省略でき、回路規模を削減できるからである。【００４２】
２．２  第二の符号化回路の処理
第二の符号化回路１０２の処理について説明する。
第一の符号化回路１０１により１フレームの仮符号化が終了すると、フレームメモリ１５１に蓄積された１フレームの映像信号が第二の符号化回路１０２のブロック化回路１６２に入力される。ブロック化回路１６２は１フレームの映像信号の画像を１６×１６画素の複数のマクロブロックに分割する。【００４３】
イントラ予測生成回路１７２は、予測モードメモリ１５２から予測モード値を読み出し、その予測モード値が示す予測モードを用いて符号化対象のマクロブロックの各画素について画素予測値を求める。その際、イントラ予測生成回路１７２がイントラ予測に用いる隣接画素の値は逆量子化回路１２４及び逆ＤＣＴ回路１８４により生成される。イントラ予測生成回路１７２は、画素予測値と、符号化対象のマクロブロックの画素値との差分値を画素毎に計算して差分値のブロックを求める。【００４４】
ＤＣＴ回路１８２は、このようにして求めた差分値のブロックに対してＤＣＴ処理を行い、周波数成分の係数データを出力する。係数データは量子化回路１２２に入力される。【００４５】
量子化回路１２１は、係数データを量子化パラメータに応じて量子化する。量子化パラメータは量子化パラメータ算出回路１１２により算出される。量子化回路１２１は、量子化した係数データを２値化回路１３２及び逆量子化回路１２４に出力する。【００４６】
量子化パラメータ算出回路１１２は、２値シンボル量・符号量積算値メモリ１５３から、第一の符号化狩生１０１で求められた２値シンボル量と符号化量を取得し、それらの値に基づいて量子化パラメータを決定する。量子化パラメータ発生回路１１２の詳細な動作は後述する。【００４７】
２値化回路１３２は量子化された係数データを２値シンボルに変換する。算術符号化回路１４２は、２値化回路１３２からの２値シンボルを算術符号化し、その結果をビットストリームとして出力する。ここで、算術符号化回路１４２については発生符号量の上限値を示す目標符号量が規定されている。【００４８】
一方、量子化回路１２２により量子化された係数データは逆量子化回路１２４により逆量子化され、その後、逆ＤＣＴ回路１８４により逆ＤＣＴ処理される。これにより、イントラ予測に用いられる、符号化対象のマクロブロックの隣接画素の値が得られる。【００４９】
２．３  第一の符号化回路における量子化パラメータ発生回路の動作
第一の符号化回路１０１の量子化パラメータ発生回路１１１による量子化パラメータの発生動作について説明する。なお、以下では、１９２０×１０８０画素の１フレームの仮符号化において、スライス単位に最適な量子化パラメータを算出する場合を説明する。なお、フレームを分割するスライスは任意の連続するマクロブロックの集合として定義される。【００５０】
図２に示すように、１９２０×１０８０画素のフレームは１６×１６画素のマクロブロックが８１６０（＝１２０×６８）個で構成される。本例では、１スライスが２０４０個のマクロブロックを含み、１フレームが４個のスライスで構成される場合を考える。【００５１】
仮符号化の開始前に、第一の符号化回路１０１の量子化回路１２１で使用される仮量子化パラメータＱＰ1（ｎ）を決定する。仮量子化パラメータＱＰ1（ｎ）は、マクロブロック毎に複数のパラメータ候補（代表量子化パラメータ）の中から選択された１つのパラメータに設定される。すなわち１個のマクロブロックに対する仮量子化パラメータＱＰ1（ｎ）は、任意の異なるＱ種類の代表量子化パラメータｑｐ1（ｘ）（ｘ＝０，１，…，Ｑ−１）の中から選択された１つの仮量子化パラメータｑｐ1（ｍ）に設定される。なお、代表量子化パラメータは、規定の量子化パラメータの最大値及び最小値を含むよう決定される。【００５２】
例えば、０と２０の２種類の代表量子化パラメータｑｐ1（ｘ）＝｛０，２０｝を与える場合を考える。ここで、Ｆ（ｘ）＝｛Ａ0，Ａ1，…，ＡQ-1｝（Ａnは整数）の表記は、Ｆ（０）＝Ａ0、Ｆ（１）＝Ａ1、…、Ｆ（Ｑ−１）＝ＡQ-1を意味するものとする。各マクロブロックの仮量子化パラメータは、各代表量子化パラメータの出現頻度が等しくなるように、２種類の代表量子化パラメータの中から選択される。この例では、半数のマクロブロックに量子化パラメータ「０」を、残り半数のマクロブロックに量子化パラメータ「２０」を与える。また、仮量子化パラメータがスライス内で偏るのを防ぐため、スライス内に交互又はランダムに仮量子化パラメータを配置する。例えば、プログレッシブ走査においては図３（ａ）に示すように、通常のラスタスキャン順に交互に代表量子化パラメータを与え、インターレース走査では、図３（ｂ）に示すようにマクロブロックの対毎に交互に代表量子化パラメータを与えることができる。【００５３】
次に、仮符号化における代表量子化パラメータｑｐ1（ｘ）（ｘ＝０，１，…，Ｑ−１）の数Ｑと、各値ｑｐ1（ｘ）の決定方法について説明する。【００５４】
量子化回路１２１で用いられる代表量子化パラメータの数Ｑは、１スライスに含まれるマクロブロックの数の約数に設定できる。このような方法で、代表量子化パラメータの数Ｑを設定すれば、スライス内で各代表量子化パラメータが出現する回数を一定にできる。その際、走査方式がプログレッシブ方式の場合、代表量子化パラメータの数Ｑとして、マクロブロック数の約数を選択できる。また、インターレース方式の符号化を行うためにマクロブロックを対にする場合は、１スライスに含まれるマクロブロック数の半数の約数に設定できる。例えば、１スライスに含まれるマクロブロック数が２０４０であれば、代表量子化パラメータの数Ｑとして、５、１０、２０が選択できる。それぞれのＱの場合の、１個のスライス内における各代表量子化パラメータの出現回数はそれぞれ４０８回、２０４回、１０２回となる。【００５５】
代表量子化パラメータｑｐ1（ｘ）として、エンコーダで選択できる量子化パラメータの範囲内から異なる値がＱ個選択される。この場合、最適な符号化のための符号量予測が行い易くなるように、それらの値を適度に分散させるのが好ましい。【００５６】
例えば、１スライスに含まれるマクロブロック数が２０４０で、エンコーダで選択できる量子化パラメータが０から５１の範囲である場合、代表量子化パラメータｑｐ1（として、図４（ａ）に示すように、｛０，４，８，１２，１６，２２，２８，３４，４２，５１｝の１０個の代表量子化パラメータが選択できる。このとき、プログレッシブ方式の場合は、図４（ｂ）に示すように代表量子化パラメータが適用され、インターレース方式の場合は、図４（ｃ）に示すように代表量子化パラメータが適用される。【００５７】
２．４  ２値シンボル量・符号量積算回路の動作
２値シンボル量・符号量積算回路１５４は、第一の符号化回路１０１における仮符号化の結果得られる２値シンボル量と符号量について、同じ代表量子化パラメータを用いたマクロブロック毎に積算し、それぞれの積算した値を積算値メモリ１５３に格納する。以下、この動作を具体的に説明する。【００５８】
第一の符号化回路１０１による仮符号化処理では、２０４０個のマクロブロックを含むスライス１個に対し、同じ代表量子化パラメータｑｐ1（ｘ）を使用したマクロブロック毎に発生２値シンボル量Ｂ1（ｎ）及び発生符号量Ｒ1（ｎ）の総和を計算する。前記総和をＱＰ別発生２値シンボル量ｂ1（ｘ）、ＱＰ別発生符号量ｒ1（ｘ）とし、２値シンボル量・符号量積算値メモリ１５３に蓄積する。【００５９】
例えば、図５の例では、図５（ａ）に示す代表量子化パラメータｑｐ1（ｘ）のそれぞれに対して、図５（ｂ）に示すような、代表量子化パラメータ毎に２値シンボル量Ｂ1（ｎ）の総和を取ったＱＰ別発生シンボル量ｂ1（ｘ）、及び代表量子化パラメータ毎に発生符号量Ｒ1（ｎ）の総和を取ったＱＰ別発生符号量ｒ1（ｘ）が２値シンボル量・符号量積算値メモリ１５３に蓄積される。【００６０】
２．５  第二の符号化回路における量子化パラメータ発生回路の動作
第二の符号化回路１０２での符号化に適用する最適量子化パラメータＱＰoptの算出方法を、図６及び図７を用いて説明する。ここで、ビットレート、フレームレート、フレームの複雑度、スライスの符号化タイプなどの情報を用いて割り当てたスライスの目標符号量Ｔ及び上限２値シンボル量Ｂmaxをそれぞれ以下のように設定する。
スライスの目標符号量Ｔ＝３０００００ビット
上限２値シンボル量Ｂmax＝５９５８４０ビット【００６１】
第二の符号化回路１０２は、第一の符号化回路１０１での仮符号化の結果得られた各代表量子化パラメータ毎の発生シンボル量ｂ1（ｘ）と発生符号量ｒ1（ｘ）と、上限２値シンボル量と目標符号量とに基づいて、最適量子化パラメータＱＰoptを決定する。具体的には、量子化パラメータ算出回路１１２は、２値シンボル量に基づく最適量子化パラメータの算出と、符号量に基づく最適量子化パラメータの算出とを行い、それらの算出結果を比較し、大きい方の量子化パラメータを最適量子化パラメータとして採用する。以下、その詳細を説明する。【００６２】
最初に、図６を参照して、２値シンボル量に基づく最適量子化パラメータ候補ＱＰbinの算出について説明する。図６は、代表量子化パラメータｑｐ1（ｘ）と、各量子化パラメータＱＰ別の、発生した２値シンボル量ｂ1（ｘ）とに基づいて、量子化パラメータＱＰと、スライス単位で予測した２値シンボル量の関係を示した図である。【００６３】
ＱＰ別の発生２値シンボル量ｂ1（ｘ）は、同じ量子化パラメータＱＰが適用されたマクロブロックについて２値シンボル量の総和を、各量子化パラメータＱＰ（＝ｘ）毎に求めたものである。各量子化パラメータは２０４個のマクロブロックに適用されるため、ｂ1（ｘ）は２０４個ずつのマクロブロックの２値シンボル量の総和になっている。各量子化パラメータＱＰに対するスライス単位の予測符号量は、ｂ1（ｘ）を１０倍することで求められる。【００６４】
図６において、プロットしたスライス単位の予測２値シンボル量を線形補間することで、全てのＱＰ値（０≦ＱＰ≦５１）に対するスライス予測２値シンボル量を算出することができる。すなわち、スライスの上限２値シンボル量Ｂmax（＝５９５８４０）に対して図６に示す関係を用いて線形補間することで、発生する２値シンボル量を上限２値シンボル量以下に収める最適な量子化パラメータＱＰbinを求めることができる。最適な量子化パラメータ候補ＱＰbinは次式で求められる。
ＱＰbin＝
ＣＥＩＬ［ｑ＋｛ＱＰ1（ｑ＋１）−ＱＰ1（ｑ）｝×｛Ｑ×ｂ1（ｑ）−Ｂmax｝
／｛Ｑ×ｂ1（ｑ）−Ｑ×ｂ1（ｑ＋１）｝］                  （１）【００６５】
なお、ＣＥＩＬ［ｘ］はｘ以上の最小の整数を返す関数である。ｑは０≦ｑ≦Ｑ−１の整数であり、Ｑ×ｂ1（ｑ＋１）≦Ｂmax≦Ｑ×ｂ1（ｑ）を満たす値とする。ここでは、１スライスを通じて１つの最適量子化パラメータを使用することとしている。また、すべてのｑに対しＢmax＞Ｑ×ｂ1（ｑ）となる場合はｑ＝０、すべてのｑに対しＢmax＜Ｑ×ｂ1（ｑ）となる場合はｑ＝Ｑ−１とする。このため、あらかじめ仮量子化パラメータとしてＱＰ1（０）＝ｍｉｎ（ＱＰ）＝０、ＱＰ1（Ｑ−１）＝ｍａｘ（ＱＰ）＝５１としておくのが望ましい。【００６６】
Ｂmax＝５９５８４０のとき、式（１）を用いて、最適量子化パラメータ候補ＱＰbinは１３と求められる。
ＱＰbin＝ＣＥＩＬ［１２＋（１６−１２）×（６２３２３０−５９５８４０）
／（６２３２３０−３８８５１０）］
＝１３【００６７】
次に、図７を参照し、符号量に基づく最適量子化パラメータ候補ＱＰcodeの算出について説明する。図７は、代表量子化パラメータｑｐ1（ｘ）と量子化パラメータＱＰ別の発生した符号量ｒ1（ｘ）とに基づいて、量子化パラメータＱＰとスライス予測符号量の関係を示した図である。【００６８】
ＱＰ別の発生符号量ｒ1（ｘ）は、同じ量子化パラメータＱＰが適用されたマクロブロックについて符号量の総和を、各量子化パラメータＱＰ（＝ｘ）毎に求めたものである。各量子化パラメータは２０４個のマクロブロックに適用されるため、ｒ1（ｘ）は２０４個ずつのマクロブロックの符号量の総和になっている。各量子化パラメータＱＰに対するスライス予測符号量は、ｒ1（ｘ）を１０倍することで求められる。【００６９】
図７において、プロットしたスライス予測符号量を線形補間することで、全てのＱＰ値（０≦ＱＰ≦５１）に対するスライス予測符号量を算出することができる。すなわち、スライスの目標符号量Ｔ＝３０００００に対して図６に示す関係を用いて線形補間することで、発生する符号量を目標符号量にするのに最適量子化パラメータ候補ＱＰcodeを求めることができる。ＱＰcodeの算出は、線形補間により次式で求められる。
ＱＰcode＝ｑ＋｛ＱＰ1（ｑ＋１）−ＱＰ1（ｑ）｝×｛Ｑ×ｒ1（ｑ）−Ｔ｝
／｛Ｑ×ｒ1（ｑ）−Ｑ×ｒ1（ｑ＋１）｝                    （２）【００７０】
なお、ｑは０≦ｑ≦Ｑ−１の整数であり、Ｑ×ｒ1（ｑ＋１）≦Ｔ≦Ｑ×ｒ1（ｑ）を満たす値とする。ここでは、１スライスを通じてひとつの最適量子化パラメータを使用することとしている。また、すべてのｑに対しＴ＞Ｑ×ｒ1（ｑ）となる場合はｑ＝０、すべてのｑに対しＴ＜Ｑ×ｒ1（ｑ）となる場合はｑ＝Ｑ−１とする。【００７１】
式（２）を用いて最適量子化パラメータ候補ＱＰcodeを計算すると約１６．８４となるが、量子化パラメータは整数である必要があるので、小数点以下を四捨五入し、１７とする。
ＱＰcode＝１６＋（２２−１６）×（３１７８５０−３０００００）
／（３１７８５０−１９０９８０）
≒１６．８４≒１７【００７２】
量子化パラメータ算出回路１１２は、以上のようにして求めた２値シンボル量に基づく最適量子化パラメータ候補ＱＰbinと符号量に基づく最適量子化パラメータ候補ＱＰcodeのうち、大きい方を選択して最適量子化パラメータＱＰoptとし、量子化回路１２２に出力する。【００７３】
図６及び図７の例では、ＱＰbin＝１３、ＱＰcode＝１７であるから、ＱＰopt＝１７とする。このように、ＱＰbin及びＱＰcodeのうち大きい方を最適量子化パラメータＱＰoptとすることにより、入力データの統計的性質に応じて符号化を行うことが可能となり、発生符号量をより低く抑えることができる。つまり、相対的に２値シンボル量が大きく符号量が小さい場合にはＱＰbinが選ばれて、符号量は目標符号量よりある程度小さくなるものの２値シンボル量の上限値は満たされる。逆に相対的に２値シンボル量が小さく符号量が大きい場合にはＱＰcodeが選ばれて、２値シンボル量は上限よりある程度小さく抑えられ目標符号量に近い値に符号化することができる。【００７４】
３．まとめ
以上のように本実施形態の映像符号化装置では、第１の符号化回路１０１による仮符号化において、まず複数の代表量子化パラメータのそれぞれについて、発生する２値シンボル量及び発生する符号量を求める。その後、第２の符号化回路１０２において、仮符号化で求めた値に基づいて、上限２値シンボル量及び目標符号量を考慮して最適な量子化パラメータを求める。このような方法により、一方向の処理の流れの中で最適な量子化パラメータを決定できるため、従来のように、更新された算術符号化の発生確率情報を元に戻すための複雑な回路構成が不要となり、また、並列に算術符号化回路を設ける必要もないので、回路構成が簡単になる。【００７５】
また、本実施形態によれば、符号化により得られる２値シンボル量を所定の上限値以下に抑制しつつ、発生する符号量を所定量以下に抑えることができる。よって、本実施形態の映像符号化装置は特にフレーム単位の符号量を一定にする場合に有効である。例えば、本実施形態の映像符号化装置は、フレーム単位の符号量に制限値がある符号化を行う場合や、フレーム単位の符号量に制限値がない符号化においても、デコーダバッファの状態がクリティカルで現在のフレームの符号量に制限値がある場合に有効である。その理由を以下に説明する。【００７６】
本実施形態の思想を用いずに、２値シンボル量が所定の上限値を超え、符号量のみが制限値以下に抑制された場合を考える。この場合、非特許文献１の符号化では、cabac_zero_wordと呼ばれるスタッフィングを用いて符号量を増加させることで、２値シンボル量の上限値の規定を順守する必要がある。しかし、符号量を増加させることで符号量が制限値を超えて、符号化を破綻させる可能性が生じてしまう。本実施形態は、制限値に対して計算された２値シンボル量の上限値以下に２値シンボル量を制御可能であるため、cabac_zero_wordのスタッフィングが必要となったとしても、符号量は必ず制限値以下に収まり破綻させることはない。よって、本実施形態の思想は前述の場合に特に有効となる。【００７７】
（変形例）
なお、本実施の形態では、最適量子化パラメータＱＰoptとして固定値を与える例を示したが、例えばＱＰoptをＮ個のマクロブロックの符号化に対する初期値として用い、それ以降の量子化パラメータはフィードバック制御による２値シンボル量及び符号量の制御を行い、最適量子化パラメータＱＰ2（ｎ）を動的に変更することが可能である。フィードバック制御は、例えば符号量に基づいて制御する場合、マクロブロック番号ｍのマクロブロックにおいて、符号化時の発生符号量Ｒ2（ｎ）を０≦ｎ≦ｍの範囲で加算した累積発生符号量Ｂと、ある時点（例えばマクロブロック番号Ｎ−１）までの目標符号量Ｔとの差分である残存符号量（Ｔ−Ｂ）を、残存しているマクロブロックｎ（ｍ＜ｎ≦Ｎ−１）の目標符号量Ｓに設定することで実施できる。また、マクロブロックの輝度値や色差値、周波数領域での特徴等に基づいて量子化パラメータＱＰ2（ｎ）を動的に変更する処理も可能である。【００７８】
本実施の形態では、スライス単位で仮符号化及び正規の符号化を行ったが、より小さい単位で仮符号化及び正規の符号化を行って発生符号量Ｒ2（ｎ）を得てもよい。その結果を量子化パラメータの選択に反映するような場合や、フィードバック制御を小さい単位で行う場合には、数マクロブロック等の小さい単位で実施しても効果的である。また、仮符号化及び正規の符号化の処理単位を固定していたが、仮符号化及び正規の符号化の処理単位をフレーム単位又はその他の単位で動的に変更させることも可能である。また、スライス予測符号量を線形補間して求めたが、スプライン補間等、高度な数値補間も利用できる。【００７９】
本実施の形態ではＱＰ別発生２値シンボル量ｂ1（ｘ）及びＱＰ別発生符号量ｒ1（ｘ）を２値シンボル量・符号量積算値メモリ１５３に蓄積する例で説明したが、総和を計算する前のマクロブロック毎の発生２値シンボル量Ｂ1（ｎ）及び発生符号量Ｒ1（ｎ）を蓄積し、２値シンボル量・符号量積算値メモリ１５３から読み出した後に総和を計算しても良い。【００８０】
本実施の形態では仮符号化処理を１回のみ行う例を示したが、リアルタイムの符号化処理が必要でない場合や、仮符号化処理をパイプライン化又は並列化することにより一定の遅延で多くの処理が行える場合には、仮符号化処理を複数回行っても良い。【００８１】
なお、本実施の形態では、映像符号化のＨ．２６４規格におけるコンテキスト適応算術符号化を例にとって説明した。しかし、本発明の思想は、量子化された係数データに対して算術符号化を行う場合に適用でき、量子化パラメータを適応的に変更できる符号化装置に適用できる。【００８２】
例えば、図８に示すよう符号化装置にも適用できる。図８において、符号化装置２００は、入力信号に対して、仮符号化処理を行う第一の符号化回路２０１と、正規の符号化を行う第二の符号化回路２０２と、入力信号を遅延させる遅延メモリ１５１と、２値シンボル量・符号量積算値メモリ２５３と、２値シンボル量・符号量積算回路２５４とを備える。【００８３】
第一の符号化回路２０１は、入力した信号に対して所定の信号処理を行う信号処理回路２６１と、量子化回路２２１と、量子化パラメータ発生回路２１１と、２値化回路２３１と、算術符号化回路２４１とから構成される。【００８４】
第二の符号化回路２０２は、入力した信号に対して所定の信号処理を行う信号処理回路２６２と、量子化回路２２２と、量子化パラメータ算出回路２１２と、２値化回路２３２と、算術符号化回路２４２とから構成される。【００８５】
以上のように構成される符号化装置２００は仮符号化処理時には以下の動作を行う。信号処理回路２６１は入力信号に対して所定の信号処理を行い、量子化回路２２１は量子化パラメータ発生回路２１１からの仮量子化パラメータに基づき、信号処理回路２６１から出力される信号を量子化する。量子化された信号は２値化回路２３１により２値化され、その後、算術符号化回路２４１により算術符号化される。２値シンボル量・符号量積算回路２５４は、２値化回路２３１から出力される２値シンボルのシンボル量と、算術符号化回路２４１から出力される符号の符号量とを、所定の単位毎に積算し、積算した値を２値シンボル量・符号量積算値メモリ２５３に格納する。２値シンボル量・符号量積算回路２５４の処理は前述したとおりである。【００８６】
その後、第二の符号化回路２０２により正規の符号化処理が実施される。信号処理回路２６２は、遅延メモリ２５１により一定時間遅延された入力信号に対して所定の信号処理を行う。量子化回路２２２は所定の信号処理がなされた入力信号を量子化パラメータ算出回路２１２からの量子化パラメータを用いて量子化を行う。量子化パラメータ算出回路２１２における量子化パラメータの決定方法は前述したとおりである。その後、２値化回路２３２、算術符号化回路２４２により処理がなされビットストリームが出力される。【００８７】
本実施の形態を用いて符号化したビットストリームは、テープ、光ディスク、磁気ディスク、半導体メモリ等の記録媒体に記録して再配布可能にすることができる。【００８８】
また、図１及び図８の符号化装置における各回路の機能をソフトウェアにより実現し、マイクロプロセッサでそのソフトウェアを実行させることで、図１及び図８の符号化装置と同様の機能を実現することもできる。
【産業上の利用可能性】
【００８９】
本発明は、ディジタルカメラレコーダや録画装置など小さい回路規模でリアルタイム動作が要求されるデータ記録装置に有効である。【００９０】
本発明は、特定の実施形態について説明されてきたが、当業者にとっては他の多くの変形例、修正、他の利用が明らかである。それゆえ、本発明は、ここでの特定の開示に限定されず、添付の請求の範囲によってのみ限定され得る。なお、本出願は日本国特許出願、特願２００６−３１９９８１号（２００６年１１月２８日提出）に関連し、それらの内容は参照することにより本文中に組み入れられる。
【図１】
2008065822.tif 000003
【図２】
2008065822.tif 000004
【図３】
2008065822.tif 000005
【図４】
2008065822.tif 000006
【図５】
2008065822.tif 000007
【図６】
2008065822.tif 000008
【図７】
2008065822.tif 000009
【図８】
2008065822.tif 000010
【図９】
2008065822.tif 000011
【図１０】
2008065822.tif 000012
【手続補正書】
【提出日】平成21年2月20日(2009.2.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力信号を量子化し、符号化する装置であって、量子化により生成される２値シンボルのシンボル量の上限値が定められている符号化装置において、
入力信号に対して所定の信号処理を行う信号処理回路と、
第１の量子化パラメータを生成する量子化パラメータ発生回路と、
前記所定の信号処理がなされた入力信号を、前記第１の量子化パラメータに基づき量子化して第１の量子化データを生成する第１の量子化回路と、
前記第１の量子化データに対して２値化を行い、第１の２値シンボルデータを出力する第１の２値化回路と、
前記第１の２値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第１の符号化データを生成する第１の算術符号化回路と、
前記第１の２値シンボルデータのシンボル量、前記第１の符号化データの符号量、第２の量子化パラメータ、前記シンボル量の上限値、及び前記目標符号量に基づいて、第２の量子化パラメータを生成する量子化パラメータ算出回路と、
前記第２の量子化パラメータに基づいて、前記所定の信号処理がなされた入力信号を量子化し、第２の量子化データを生成する第２の量子化回路と、
前記第２の量子化データに対して２値化を行い、第２の２値シンボルデータを出力する第２の２値化回路と、
前記第２の２値シンボルデータに対して算術符号化を行い、前記入力信号に対する符号化データを生成し、出力する第２の算術符号化回路と
を備えたことを特徴とする符号化装置。
【請求項２】
前記量子化パラメータ算出回路は、
前記第１の量子化パラメータ、前記第１の２値シンボルデータのシンボル量、及び前記シンボル量の上限値に基づいて第１のパラメータ候補を生成し、
前記第１の量子化パラメータ、前記第１の符号化データの符号量、及び前記目標符号量に基づいて第２のパラメータ候補を生成し、
前記第１及び第２のパラメータ候補を比較し、生成される符号化データの符号量がより小さくなる方のパラメータ候補を、前記第２の量子化パラメータに設定する、
ことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記量子化パラメータ発生回路は、複数の代表量子化パラメータを有し、その複数の代表量子化パラメータの中から一つの代表量子化パラメータを選択して、前記第１の量子化パラメータとする、ことを特徴とする請求項１に記載の符号化装置。
【請求項４】
前記信号処理回路は、前記入力信号に対して所定の信号処理を行い、Ｎ個（Ｎは２以上の自然数）の信号を生成し、前記複数の代表量子化パラメータの数ＱはＮの約数であり、
前記量子化パラメータ発生回路は、前記信号処理回路から出力される連続したＱ個の前記信号に対して、互いに異なるＱ個の代表量子化パラメータを割り当てることで前記第１の量子化パラメータを生成する、ことを特徴とする請求項３に記載の符号化装置。
【請求項５】
前記複数の代表量子化パラメータは量子化パラメータの最大値及び最小値を含むことを特徴とする請求項３記載の符号化装置。
【請求項６】
前記信号処理回路は、映像信号を入力し、周波数成分に変換して係数データを生成し、出力する、ことを特徴とする請求項１記載の符号化装置。
【請求項７】
前記信号処理回路は、映像の１フレームを複数ブロックに分割して得られるブロック毎に、そのブロックに含まれる画素及びそのブロックに隣接する画素に基づいて前記係数データを生成し、
前記信号処理回路は、前記第１の量子化回路に入力される係数データの生成に用いる前記隣接画素は、入力された前記映像信号から抽出し、前記第２の量子化回路に入力される係数データの生成に用いる前記隣接画素は、前記第２の量子化データを逆量子化した後に前記周波数成分から逆変換した信号から抽出する
ことを特徴とする請求項６に記載の符号化装置。
【請求項８】
量子化パラメータ算出回路は、所定数のブロックにおいて前記第１の２値シンボルデータのシンボル量を同じ第１の量子化パラメータ毎に積算した結果と、所定数のブロックにおいて前記第１の符号化データの符号量を同じ第１の量子化パラメータ毎に積算した結果とを用いて、第２の量子化パラメータを生成する、ことを特徴とする請求項７記載の符号化装置。
【請求項９】
入力信号を量子化し、符号化する方法であって、量子化により生成される２値シンボルのシンボル量に上限値が定められている符号化方法において、
入力信号に対して所定の信号処理を行うステップと、
第１の量子化パラメータを生成するステップと、
前記所定の信号処理がなされた入力信号を、前記第１の量子化パラメータに基づき量子化して第１の量子化データを生成するステップと、
前記第１の量子化データに対して２値化を行い、第１の２値シンボルデータを出力するステップと、
前記第１の２値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第１の符号化データを生成するステップと、
前記第１の２値シンボルデータのシンボル量、前記第１の符号化データの符号量、第２の量子化パラメータ、前記シンボル量の上限値、及び前記目標符号量に基づいて、第２の量子化パラメータを生成するステップと、
前記第２の量子化パラメータに基づいて、前記所定の信号処理がなされた入力信号を量子化し、第２の量子化データを生成するステップと、
前記第２の量子化データに対して２値化を行い、第２の２値シンボルデータを出力するステップと、
前記第２の２値シンボルデータに対して算術符号化を行い、前記入力信号に対する符号化データを生成し、出力するステップと
を含むことを特徴とする符号化方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置及び方法に関し、特に、算術符号化を適用した符号化装置及び方法に関する。
【背景技術】
【０００２】
算術符号化は、情報源シンボルの発生確率に応じて、情報量を理論的限界まで可逆圧縮できる技術である。算術符号化は、画像符号化の分野において、ＪＰＥＧ２０００規格（ＩＳＯ／ＩＥＣ１５４４４）、Ｈ．２６４／ＭＰＥＧ４−ＡＶＣ規格（非特許文献１参照）等に採用されている。
【０００３】
例えば、Ｈ．２６４においては、コンテキスト適応算術符号化（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）が採用され、シンタックスの確率特性に応じた効率の高い符号化を実現している。
【０００４】
Ｈ．２６４におけるコンテキスト適応算術符号化について説明する。図９に、従来のコンテキスト適応算術符号化回路を示す。
【０００５】
図９に示すコンテキスト適応算術符号化回路１４において、２値化回路１３０は、変換係数データ、フラグ等の符号化情報からなる多値入力データの２値化を行う。ここで、２値化は、制御情報から入力データの種類であるシンタックスエレメント（ｓｙｎｔａｘ  ｅｌｅｍｅｎｔ）を判別し、データの確率特性によって、ユーナリー・バイナライゼーション（ｕｎａｒｙ  ｂｉｎａｒｉｚａｔｉｏｎ）や固定長バイナライゼーション（ｆｉｘｅｄ−ｌｅｎｇｔｈ  ｂｉｎａｒｉｚａｔｉｏｎ）といった複数の方式を使い分けながら行われる。２値化回路１３０により２値化された２値シンボル（バイナリ）列は、（２値）算術符号化回路１４０に入力される。
【０００６】
コンテキスト計算回路５２０は、シンタックスエレメントを示す制御情報に基づいて、２値シンボル列における現在の１ビットを符号化するために用いるコンテキストインデックス（ｃｔｘＩｄｘ）の値を、Ｈ．２６４規格で定められたテーブルを参照して一意に決定する。コンテキスト計算回路５２０は、ｃｔｘＩｄｘの値毎に発生確率情報を初期化して記憶する。発生確率情報は、２値シンボルの「０」又は「１」のうち発生確率の高い方のシンボルを示すＭＰＳと発生確率ｐＳｔａｔｅの組である。求められたｃｔｘＩｄｘの値に対応した発生確率情報を「コンテキスト情報」と呼ぶ。
【０００７】
コンテキスト計算回路５２０はコンテキスト情報５０４を生成して算術符号化回路１４０に出力する。このように、算術符号化を行うシンタックスエレメントによって算術符号化回路１４０に入力されるシンボルの発生確率すなわちコンテキスト情報５０４が適応的に切り替わることにより、２値シンボルの発生確率が動的に変わる２値シンボル列５０３に対して、最適な算術符号化が可能となる。
【０００８】
以下の説明において、２値シンボル列の総ビット長（シンボル長）を「シンボル量」、算術符号化後の出力符号の総ビット長を「符号量」といい、特に、一定区間の多値入力データを処理した際に発生する、２値シンボル列の総ビット長を「発生２値シンボル量」、出力符号の総ビット長を「発生符号量」と呼ぶ。
【０００９】
算術符号化回路１４０の動作について図１０を用いて説明する。図１０において、シンボル「０」の発生確率が０．７５（２進数で０．１１）、シンボル「１」の発生確率が０．２５の情報源から｛０，０，０，１｝のバイナリ列が供給された場合を考える。この場合、現在のコンテキスト情報５０４は、発生確率の高い方のシンボルを示すＭＰＳ＝０、及び発生確率ｐＳｔａｔｅ＝０．１１で表される（図１０（ａ）参照）。発生確率ｐＳｔａｔｅは、正規化された整数値で表現されるが、ここでは簡単化のため２進数の値とする。コンテキスト情報５０４は、今回の２値算術符号化により更新され、コンテキスト計算回路５２０に戻される。コンテキスト計算回路５２０では、対応するｃｔｘＩｄｘの発生確率情報を更新する。この値は、次回に同じコンテキストの符号化が行われる際に再利用される。
【００１０】
図１０（ｂ）を参照し、１個目の入力バイナリ値「０」が入力されると、［０，１］の区間が確率０．１１で区切られる０側に区間が狭められ、［０，０．１１］になる。２個目の入力「０」が入力されると、［０，０．１１］の区間が［０，０．１００１］に狭められる。ここで、０．１００１＝０．１１×０．１１である。同様にして、３個目の入力「０」により区間が［０，０．０１１０１１］になる。４個目の入力「１」が入力されると、１側に区間に狭められる。最終的な区間は［０．０１０１０００１，０．０１１０１１］になる。この最終的な区間に含まれる値のうち、最短の語長を持つものが符号語となる。すなわち、０．０１１は、この区間に含まれるので、小数点以下の値「０１１」が出力バイナリ列となり、４ビットの入力値が３ビットに圧縮されたことになる。実際には、出力するビット（０もしくは１）が確定した時点で確率値の左ビットシフトを行うリノーマライゼーション（ｒｅｎｏｒｍａｌｉｚａｔｉｏｎ）と呼ばれる処理が行われる。
【００１１】
一方、動画像符号化においては、特定のビットレートの条件下で画質を最大限に高めるため、各マクロブロックを符号化する際の量子化パラメータを適切に制御して、符号量制御を行う必要がある。符号量制御の精度を高めるため、スライス、フレーム、ＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）といった単位でパラメータを変更して繰返し符号化を行うことが一般的である。
【００１２】
【特許文献１】特開平２００４−１３５２５１号公報
【非特許文献１】ＩＳＯ／ＩＥＣ１４４９６−１０  Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ
【発明の開示】
【発明が解決しようとする課題】
【００１３】
算術符号化を用いた符号化回路を構成する場合、デコーダにおける最大処理量を規定する目的から、２値シンボル量の上限値（ＢｉｎＣｏｕｎｔｓＩｎＮＡＬｕｎｉｔｓ）が規定されている（非特許文献１参照）。この上限値の規定を順守するために、符号量と２値シンボル量を制御する必要がある。この上限値の規定により、回路の動作時間の上限値を規定することができる。例えば、特許文献１では、算術符号化器に入力する２値シンボル量の制限監視器を用意し、閾値を超えた場合には符号化し直すか、並列に複数の符号化パラメータを適用する符号化を行うことにより、２値シンボル量を制御している。
【００１４】
符号化し直す場合、前述したように既に更新された算術符号化の発生確率情報を元に戻す必要があり、リアルタイムでの処理が要求される符号化装置においては複雑な回路構成が必要となる。また、並列に複数の符号化パラメータを適用して符号化する場合、算術符号化回路が符号化パラメータの数だけ必要となり、回路規模の増大を招来する。
【００１５】
本発明は上記課題を考慮してなされたものであり、その目的とするところは、算術符号化を適用した符号化装置であって、簡単な回路構成で、２値シンボル量を上限値以下に制御しつつ復号動作の保証された符号化を行い、同時に精度良く符号量制御を実現する符号化装置を提供することにある。
【課題を解決するための手段】
【００１６】
本発明の第１の態様において、入力信号を量子化し、符号化する装置であって、量子化により生成される２値シンボルのシンボル量の上限値が定められている符号化装置を提供する。
【００１７】
符号化装置は、入力信号に対して所定の信号処理を行う信号処理回路と、第１の量子化パラメータを生成する量子化パラメータ発生回路と、所定の信号処理がなされた入力信号を、第１の量子化パラメータに基づき量子化して第１の量子化データを生成する第１の量子化回路と、第１の量子化データに対して２値化を行い、第１の２値シンボルデータを出力する第１の２値化回路と、第１の２値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第１の符号化データを生成する第１の算術符号化回路と、第１の２値シンボルデータのシンボル量、第１の符号化データの符号量、第２の量子化パラメータ、シンボル量の上限値、及び目標符号量に基づいて、第２の量子化パラメータを生成する量子化パラメータ算出回路と、第２の量子化パラメータに基づいて、所定の信号処理がなされた入力信号を量子化し、第２の量子化データを生成する第２の量子化回路と、第２の量子化データに対して２値化を行い、第２の２値シンボルデータを出力する第２の２値化回路と、第２の２値シンボルデータに対して算術符号化を行い、入力信号に対する符号化データを生成し、出力する第２の算術符号化回路とを備える。
【００１８】
本発明の第２の態様において、入力信号を量子化し、符号化する方法であって、量子化により生成される２値シンボルのシンボル量に上限値が定められている符号化方法を提供する。
【００１９】
符号化方法は、入力信号に対して所定の信号処理を行うステップと、第１の量子化パラメータを生成するステップと、所定の信号処理がなされた入力信号を、第１の量子化パラメータに基づき量子化して第１の量子化データを生成するステップと、第１の量子化データに対して２値化を行い、第１の２値シンボルデータを出力するステップと、第１の２値シンボルデータに対して所定の目標符号量に基づき算術符号化を行い、第１の符号化データを生成するステップと、第１の２値シンボルデータのシンボル量、第１の符号化データの符号量、第２の量子化パラメータ、シンボル量の上限値、及び目標符号量に基づいて、第２の量子化パラメータを生成するステップと、第２の量子化パラメータに基づいて、所定の信号処理がなされた入力信号を量子化し、第２の量子化データを生成するステップと、第２の量子化データに対して２値化を行い、第２の２値シンボルデータを出力するステップと、第２の２値シンボルデータに対して算術符号化を行い、入力信号に対する符号化データを生成し、出力するステップとを含む。
【発明の効果】
【００２０】
本発明によれば、算術符号化を用いた符号化装置において、簡単な回路構成で、発生２値シンボル量を上限値以下に制御して、同時に精度良く出力ビットストリームの符号量制御を行うことが可能となり、符号量を所定量以内に精度良く収めかつ復号動作の保証されたビットストリームを提供することを可能とする。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施形態について添付の図面を参照しながら説明する。
【００２２】
本実施形態では、フレーム内で復号可能なイントラフレームを符号化対象として、符号化により得られる２値シンボル量を所定の上限値以下に制御しつつ、精度良く符号量制御を行う映像符号化装置について説明する。
【００２３】
１．映像符号化装置の構成
図１に、本発明の実施の形態における映像符号化装置の構成を示す。図１において、映像符号化装置１００は、仮符号化を行う第一の符号化回路１０１と、正規の符号化を行う第二の符号化回路１０２と、フレームメモリ１５１と、予測モードメモリ１５２と、２値シンボル量・符号量積算値メモリ１５３と、２値シンボル量・符号量積算回路１５４とを備える。
【００２４】
第一の符号化回路１０１は、入力したディジタル映像信号をブロック化するためのブロック化回路１６１と、予測モード検出回路１７３と、イントラ予測生成回路１７１と、直交変換回路としてのＤＣＴ回路１８１と、量子化回路１２１と、量子化パラメータ発生回路１１１と、２値化回路１３１と、算術符号化回路１４１とから構成される。
【００２５】
第二の符号化回路１０２は、入力したディジタル映像信号をブロック化するためのブロック化回路１６２と、イントラ予測生成回路１７２と、ＤＣＴ回路１８２と、量子化回路１２２と、量子化パラメータ算出回路１１２と、２値化回路１３２と、算術符号化回路１４２と、逆量子化回路１２４と、逆ＤＣＴ回路１８４とから構成される。
【００２６】
２．映像符号化装置の動作
以上のように構成された映像符号化装置について、以下その動作を説明する。最初に、１フレームの映像データに対する符号化処理の流れについて説明する。
【００２７】
映像符号化装置１００は１フレームのディジタル映像信号を入力すると、第一の符号化回路１０１により１フレーム分の映像信号の仮符号化処理を行う。
【００２８】
映像符号化装置１００に入力されたディジタル映像信号はまたフレームメモリ１５１に格納され、１フレーム以内の所定時間だけ遅延され、第二の符号化回路１０２に出力される。第二の符号化回路１０２はフレームメモリ１５１からデータを読み出し、読み出したデータに対して正規の符号化処理を行い、符号化された結果としてビットストリームを出力する。
【００２９】
第一の符号化回路１０１において、予測モード検出回路１７３は、イントラ予測の予測モードを検出し、その値を予測モードメモリ１５２に格納する。また、２値化回路１３１及び算術符号化回路１４１から出力された２値シンボル量及び符号量が２値シンボル・符号量積算値メモリ１５３に格納される。
【００３０】
第二の符号化回路１０２は、予測モードメモリ１５２に格納された予測モード値、及び２値シンボル量・符号量積算値メモリ１５３に格納された２値シンボル量と符号量の積算値を受けて最適な量子化パラメータを決定し、第一の符号化回路１０１で処理されたフレームと同じフレームの映像信号に対して正規の符号化処理を行う。
【００３１】
２．１  第一の符号化回路の処理
第一の符号化回路１０１の処理を説明する。
ブロック化回路１６１は、入力された１フレームのディジタル映像信号が示す画像を１６×１６画素の複数のマクロブロックに分割する。マクロブロックはＤＣＴやイントラ予測の処理単位となるブロックを複数個含む。
【００３２】
イントラ予測生成回路１７１は、マクロブロック毎に、入力されたディジタル映像信号の画素と、入力されたディジタル映像信号の画像に隣接する画素とから、そのマクロブロックの各画素の値を種々の予測モードで予測する。予測モードには、フィールドマクロブロック復号フラグ（ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇ）、輝度４×４イントラ予測モード（Ｉｎｔｒａ４ｘ４ＰｒｅｄＭｏｄｅ）、輝度８×８イントラ予測モード（Ｉｎｔｒａ８ｘ８ＰｒｅｄＭｏｄｅ）、色差イントラ予測モード（ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅ）が含まれる。イントラ予測は８×８画素ブロックや４×４画素ブロックの単位で行われてもよい。
【００３３】
予測モード検出回路１７３は、４つの予測モードの中から最適な予測モードを検出し、その情報を予測モード値として出力する。予測モード値は予測モードメモリ１５２に蓄積される。
【００３４】
入力されたディジタル映像信号における符号化対象のマクロブロックの各画素値と、イントラ予測生成回路１７１により生成された、符号化対象のマクロブロックの各画素の予測値との差分値が計算されて、１６×１６画素の差分値のブロックが生成され、ＤＣＴ回路１８１に出力される。
【００３５】
ＤＣＴ回路１８１は、差分値のブロックに対してＤＣＴ処理を行う。ＤＣＴ処理は、通常４×４画素や８×８画素のブロック単位で行われ、周波数成分の係数データが出力される。係数データは量子化回路１２１に入力される。量子化回路１２１は、係数データを量子化パラメータに応じて量子化する。量子化パラメータは量子化パラメータ発生回路１１１により与えられる。
【００３６】
量子化パラメータ発生回路１１１は量子化の際の量子化レートを規定する量子化パラメータを発生させる。本実施形態において、量子化パラメータの取り得る値は０〜５１とし、その値が小さいほど、より高い量子化レートを示すものとする。量子化パラメータ発生回路１１１は、発生させる量子化パラメータの候補として、複数の量子化パラメータ（以下「代表量子化パラメータ」という）ｑｐを有している。量子化パラメータ発生回路１１１は、マクロブロック毎に、複数の代表量子化パラメータｑｐの中から１つを選択して、そのマクロブロックの量子化に対する量子化パラメータＱＰとして出力する。量子化パラメータ発生回路１１１の量子化パラメータの決定処理の詳細は後述する。
【００３７】
量子化回路１２１により量子化された係数データは、２値化回路１３１にて２値化され、その後、算術符号化回路１４１により算術符号化される。２値シンボル量・符号量積算回路１５４は、２値化回路１３１から出力される２値シンボルのシンボル量と、算術符号化回路１４１から出力される符号の符号量とを、同一の量子化パラメータが適用されるマクロブロック群毎に積算し、積算した値を２値シンボル量・符号量積算値メモリ１５３に格納する。
【００３８】
本実施形態では、仮符号化において、イントラ予測の予測画素はディジタル映像信号から得る。Ｈ．２６４規格が規定するイントラ予測の予測画素は、デコーダが用いる、復号された値であるが、以下の理由により、これを用いないのが望ましい。
【００３９】
第一に、仮符号化では量子化パラメータを量子化パラメータ発生回路１１１により変化させて符号量及び２値シンボル量を出力するため、復号画素を用いると、量子化パラメータの値が大きい時に復号画素の精度が悪くなり、以降のマクロブロックの予測画素の精度が低下してしまう。第二に、復号画素を用いないことで、仮符号化における逆量子化回路及び逆ＤＣＴ回路を省略でき、回路規模を削減できるからである。
【００４０】
２．２  第二の符号化回路の処理
第二の符号化回路１０２の処理について説明する。
第一の符号化回路１０１により１フレームの仮符号化が終了すると、フレームメモリ１５１に蓄積された１フレームの映像信号が第二の符号化回路１０２のブロック化回路１６２に入力される。ブロック化回路１６２は１フレームの映像信号の画像を１６×１６画素の複数のマクロブロックに分割する。
【００４１】
イントラ予測生成回路１７２は、予測モードメモリ１５２から予測モード値を読み出し、その予測モード値が示す予測モードを用いて符号化対象のマクロブロックの各画素について画素予測値を求める。その際、イントラ予測生成回路１７２がイントラ予測に用いる隣接画素の値は逆量子化回路１２４及び逆ＤＣＴ回路１８４により生成される。イントラ予測生成回路１７２は、画素予測値と、符号化対象のマクロブロックの画素値との差分値を画素毎に計算して差分値のブロックを求める。
【００４２】
ＤＣＴ回路１８２は、このようにして求めた差分値のブロックに対してＤＣＴ処理を行い、周波数成分の係数データを出力する。係数データは量子化回路１２２に入力される。
【００４３】
量子化回路１２１は、係数データを量子化パラメータに応じて量子化する。量子化パラメータは量子化パラメータ算出回路１１２により算出される。量子化回路１２１は、量子化した係数データを２値化回路１３２及び逆量子化回路１２４に出力する。
【００４４】
量子化パラメータ算出回路１１２は、２値シンボル量・符号量積算値メモリ１５３から、第一の符号化狩生１０１で求められた２値シンボル量と符号化量を取得し、それらの値に基づいて量子化パラメータを決定する。量子化パラメータ発生回路１１２の詳細な動作は後述する。
【００４５】
２値化回路１３２は量子化された係数データを２値シンボルに変換する。算術符号化回路１４２は、２値化回路１３２からの２値シンボルを算術符号化し、その結果をビットストリームとして出力する。ここで、算術符号化回路１４２については発生符号量の上限値を示す目標符号量が規定されている。
【００４６】
一方、量子化回路１２２により量子化された係数データは逆量子化回路１２４により逆量子化され、その後、逆ＤＣＴ回路１８４により逆ＤＣＴ処理される。これにより、イントラ予測に用いられる、符号化対象のマクロブロックの隣接画素の値が得られる。
【００４７】
２．３  第一の符号化回路における量子化パラメータ発生回路の動作
第一の符号化回路１０１の量子化パラメータ発生回路１１１による量子化パラメータの発生動作について説明する。なお、以下では、１９２０×１０８０画素の１フレームの仮符号化において、スライス単位に最適な量子化パラメータを算出する場合を説明する。なお、フレームを分割するスライスは任意の連続するマクロブロックの集合として定義される。
【００４８】
図２に示すように、１９２０×１０８０画素のフレームは１６×１６画素のマクロブロックが８１６０（＝１２０×６８）個で構成される。本例では、１スライスが２０４０個のマクロブロックを含み、１フレームが４個のスライスで構成される場合を考える。
【００４９】
仮符号化の開始前に、第一の符号化回路１０１の量子化回路１２１で使用される仮量子化パラメータＱＰ1（ｎ）を決定する。仮量子化パラメータＱＰ1（ｎ）は、マクロブロック毎に複数のパラメータ候補（代表量子化パラメータ）の中から選択された１つのパラメータに設定される。すなわち１個のマクロブロックに対する仮量子化パラメータＱＰ1（ｎ）は、任意の異なるＱ種類の代表量子化パラメータｑｐ1（ｘ）（ｘ＝０，１，…，Ｑ−１）の中から選択された１つの仮量子化パラメータｑｐ1（ｍ）に設定される。なお、代表量子化パラメータは、規定の量子化パラメータの最大値及び最小値を含むよう決定される。
【００５０】
例えば、０と２０の２種類の代表量子化パラメータｑｐ1（ｘ）＝｛０，２０｝を与える場合を考える。ここで、Ｆ（ｘ）＝｛Ａ0，Ａ1，…，ＡQ-1｝（Ａnは整数）の表記は、Ｆ（０）＝Ａ0、Ｆ（１）＝Ａ1、…、Ｆ（Ｑ−１）＝ＡQ-1を意味するものとする。各マクロブロックの仮量子化パラメータは、各代表量子化パラメータの出現頻度が等しくなるように、２種類の代表量子化パラメータの中から選択される。この例では、半数のマクロブロックに量子化パラメータ「０」を、残り半数のマクロブロックに量子化パラメータ「２０」を与える。また、仮量子化パラメータがスライス内で偏るのを防ぐため、スライス内に交互又はランダムに仮量子化パラメータを配置する。例えば、プログレッシブ走査においては図３（ａ）に示すように、通常のラスタスキャン順に交互に代表量子化パラメータを与え、インターレース走査では、図３（ｂ）に示すようにマクロブロックの対毎に交互に代表量子化パラメータを与えることができる。
【００５１】
次に、仮符号化における代表量子化パラメータｑｐ1（ｘ）（ｘ＝０，１，…，Ｑ−１）の数Ｑと、各値ｑｐ1（ｘ）の決定方法について説明する。
【００５２】
量子化回路１２１で用いられる代表量子化パラメータの数Ｑは、１スライスに含まれるマクロブロックの数の約数に設定できる。このような方法で、代表量子化パラメータの数Ｑを設定すれば、スライス内で各代表量子化パラメータが出現する回数を一定にできる。その際、走査方式がプログレッシブ方式の場合、代表量子化パラメータの数Ｑとして、マクロブロック数の約数を選択できる。また、インターレース方式の符号化を行うためにマクロブロックを対にする場合は、１スライスに含まれるマクロブロック数の半数の約数に設定できる。例えば、１スライスに含まれるマクロブロック数が２０４０であれば、代表量子化パラメータの数Ｑとして、５、１０、２０が選択できる。それぞれのＱの場合の、１個のスライス内における各代表量子化パラメータの出現回数はそれぞれ４０８回、２０４回、１０２回となる。
【００５３】
代表量子化パラメータｑｐ1（ｘ）として、エンコーダで選択できる量子化パラメータの範囲内から異なる値がＱ個選択される。この場合、最適な符号化のための符号量予測が行い易くなるように、それらの値を適度に分散させるのが好ましい。
【００５４】
例えば、１スライスに含まれるマクロブロック数が２０４０で、エンコーダで選択できる量子化パラメータが０から５１の範囲である場合、代表量子化パラメータｑｐ1（として、図４（ａ）に示すように、｛０，４，８，１２，１６，２２，２８，３４，４２，５１｝の１０個の代表量子化パラメータが選択できる。このとき、プログレッシブ方式の場合は、図４（ｂ）に示すように代表量子化パラメータが適用され、インターレース方式の場合は、図４（ｃ）に示すように代表量子化パラメータが適用される。
【００５５】
２．４  ２値シンボル量・符号量積算回路の動作
２値シンボル量・符号量積算回路１５４は、第一の符号化回路１０１における仮符号化の結果得られる２値シンボル量と符号量について、同じ代表量子化パラメータを用いたマクロブロック毎に積算し、それぞれの積算した値を積算値メモリ１５３に格納する。以下、この動作を具体的に説明する。
【００５６】
第一の符号化回路１０１による仮符号化処理では、２０４０個のマクロブロックを含むスライス１個に対し、同じ代表量子化パラメータｑｐ1（ｘ）を使用したマクロブロック毎に発生２値シンボル量Ｂ1（ｎ）及び発生符号量Ｒ1（ｎ）の総和を計算する。前記総和をＱＰ別発生２値シンボル量ｂ1（ｘ）、ＱＰ別発生符号量ｒ1（ｘ）とし、２値シンボル量・符号量積算値メモリ１５３に蓄積する。
【００５７】
例えば、図５の例では、図５（ａ）に示す代表量子化パラメータｑｐ1（ｘ）のそれぞれに対して、図５（ｂ）に示すような、代表量子化パラメータ毎に２値シンボル量Ｂ1（ｎ）の総和を取ったＱＰ別発生シンボル量ｂ1（ｘ）、及び代表量子化パラメータ毎に発生符号量Ｒ1（ｎ）の総和を取ったＱＰ別発生符号量ｒ1（ｘ）が２値シンボル量・符号量積算値メモリ１５３に蓄積される。
【００５８】
２．５  第二の符号化回路における量子化パラメータ発生回路の動作
第二の符号化回路１０２での符号化に適用する最適量子化パラメータＱＰoptの算出方法を、図６及び図７を用いて説明する。ここで、ビットレート、フレームレート、フレームの複雑度、スライスの符号化タイプなどの情報を用いて割り当てたスライスの目標符号量Ｔ及び上限２値シンボル量Ｂmaxをそれぞれ以下のように設定する。
スライスの目標符号量Ｔ＝３０００００ビット
上限２値シンボル量Ｂmax＝５９５８４０ビット
【００５９】
第二の符号化回路１０２は、第一の符号化回路１０１での仮符号化の結果得られた各代表量子化パラメータ毎の発生シンボル量ｂ1（ｘ）と発生符号量ｒ1（ｘ）と、上限２値シンボル量と目標符号量とに基づいて、最適量子化パラメータＱＰoptを決定する。具体的には、量子化パラメータ算出回路１１２は、２値シンボル量に基づく最適量子化パラメータの算出と、符号量に基づく最適量子化パラメータの算出とを行い、それらの算出結果を比較し、大きい方の量子化パラメータを最適量子化パラメータとして採用する。以下、その詳細を説明する。
【００６０】
最初に、図６を参照して、２値シンボル量に基づく最適量子化パラメータ候補ＱＰbinの算出について説明する。図６は、代表量子化パラメータｑｐ1（ｘ）と、各量子化パラメータＱＰ別の、発生した２値シンボル量ｂ1（ｘ）とに基づいて、量子化パラメータＱＰと、スライス単位で予測した２値シンボル量の関係を示した図である。
【００６１】
ＱＰ別の発生２値シンボル量ｂ1（ｘ）は、同じ量子化パラメータＱＰが適用されたマクロブロックについて２値シンボル量の総和を、各量子化パラメータＱＰ（＝ｘ）毎に求めたものである。各量子化パラメータは２０４個のマクロブロックに適用されるため、ｂ1（ｘ）は２０４個ずつのマクロブロックの２値シンボル量の総和になっている。各量子化パラメータＱＰに対するスライス単位の予測符号量は、ｂ1（ｘ）を１０倍することで求められる。
【００６２】
図６において、プロットしたスライス単位の予測２値シンボル量を線形補間することで、全てのＱＰ値（０≦ＱＰ≦５１）に対するスライス予測２値シンボル量を算出することができる。すなわち、スライスの上限２値シンボル量Ｂmax（＝５９５８４０）に対して図６に示す関係を用いて線形補間することで、発生する２値シンボル量を上限２値シンボル量以下に収める最適な量子化パラメータＱＰbinを求めることができる。最適な量子化パラメータ候補ＱＰbinは次式で求められる。
ＱＰbin＝
ＣＥＩＬ［ｑ＋｛ＱＰ1（ｑ＋１）−ＱＰ1（ｑ）｝×｛Ｑ×ｂ1（ｑ）−Ｂmax｝
／｛Ｑ×ｂ1（ｑ）−Ｑ×ｂ1（ｑ＋１）｝］                  （１）
【００６３】
なお、ＣＥＩＬ［ｘ］はｘ以上の最小の整数を返す関数である。ｑは０≦ｑ≦Ｑ−１の整数であり、Ｑ×ｂ1（ｑ＋１）≦Ｂmax≦Ｑ×ｂ1（ｑ）を満たす値とする。ここでは、１スライスを通じて１つの最適量子化パラメータを使用することとしている。また、すべてのｑに対しＢmax＞Ｑ×ｂ1（ｑ）となる場合はｑ＝０、すべてのｑに対しＢmax＜Ｑ×ｂ1（ｑ）となる場合はｑ＝Ｑ−１とする。このため、あらかじめ仮量子化パラメータとしてＱＰ1（０）＝ｍｉｎ（ＱＰ）＝０、ＱＰ1（Ｑ−１）＝ｍａｘ（ＱＰ）＝５１としておくのが望ましい。
【００６４】
Ｂmax＝５９５８４０のとき、式（１）を用いて、最適量子化パラメータ候補ＱＰbinは１３と求められる。
ＱＰbin＝ＣＥＩＬ［１２＋（１６−１２）×（６２３２３０−５９５８４０）
／（６２３２３０−３８８５１０）］
＝１３
【００６５】
次に、図７を参照し、符号量に基づく最適量子化パラメータ候補ＱＰcodeの算出について説明する。図７は、代表量子化パラメータｑｐ1（ｘ）と量子化パラメータＱＰ別の発生した符号量ｒ1（ｘ）とに基づいて、量子化パラメータＱＰとスライス予測符号量の関係を示した図である。
【００６６】
ＱＰ別の発生符号量ｒ1（ｘ）は、同じ量子化パラメータＱＰが適用されたマクロブロックについて符号量の総和を、各量子化パラメータＱＰ（＝ｘ）毎に求めたものである。各量子化パラメータは２０４個のマクロブロックに適用されるため、ｒ1（ｘ）は２０４個ずつのマクロブロックの符号量の総和になっている。各量子化パラメータＱＰに対するスライス予測符号量は、ｒ1（ｘ）を１０倍することで求められる。
【００６７】
図７において、プロットしたスライス予測符号量を線形補間することで、全てのＱＰ値（０≦ＱＰ≦５１）に対するスライス予測符号量を算出することができる。すなわち、スライスの目標符号量Ｔ＝３０００００に対して図６に示す関係を用いて線形補間することで、発生する符号量を目標符号量にするのに最適量子化パラメータ候補ＱＰcodeを求めることができる。ＱＰcodeの算出は、線形補間により次式で求められる。
ＱＰcode＝ｑ＋｛ＱＰ1（ｑ＋１）−ＱＰ1（ｑ）｝×｛Ｑ×ｒ1（ｑ）−Ｔ｝
／｛Ｑ×ｒ1（ｑ）−Ｑ×ｒ1（ｑ＋１）｝                    （２）
【００６８】
なお、ｑは０≦ｑ≦Ｑ−１の整数であり、Ｑ×ｒ1（ｑ＋１）≦Ｔ≦Ｑ×ｒ1（ｑ）を満たす値とする。ここでは、１スライスを通じてひとつの最適量子化パラメータを使用することとしている。また、すべてのｑに対しＴ＞Ｑ×ｒ1（ｑ）となる場合はｑ＝０、すべてのｑに対しＴ＜Ｑ×ｒ1（ｑ）となる場合はｑ＝Ｑ−１とする。
【００６９】
式（２）を用いて最適量子化パラメータ候補ＱＰcodeを計算すると約１６．８４となるが、量子化パラメータは整数である必要があるので、小数点以下を四捨五入し、１７とする。
ＱＰcode＝１６＋（２２−１６）×（３１７８５０−３０００００）
／（３１７８５０−１９０９８０）
≒１６．８４≒１７
【００７０】
量子化パラメータ算出回路１１２は、以上のようにして求めた２値シンボル量に基づく最適量子化パラメータ候補ＱＰbinと符号量に基づく最適量子化パラメータ候補ＱＰcodeのうち、大きい方を選択して最適量子化パラメータＱＰoptとし、量子化回路１２２に出力する。
【００７１】
図６及び図７の例では、ＱＰbin＝１３、ＱＰcode＝１７であるから、ＱＰopt＝１７とする。このように、ＱＰbin及びＱＰcodeのうち大きい方を最適量子化パラメータＱＰoptとすることにより、入力データの統計的性質に応じて符号化を行うことが可能となり、発生符号量をより低く抑えることができる。つまり、相対的に２値シンボル量が大きく符号量が小さい場合にはＱＰbinが選ばれて、符号量は目標符号量よりある程度小さくなるものの２値シンボル量の上限値は満たされる。逆に相対的に２値シンボル量が小さく符号量が大きい場合にはＱＰcodeが選ばれて、２値シンボル量は上限よりある程度小さく抑えられ目標符号量に近い値に符号化することができる。
【００７２】
３．まとめ
以上のように本実施形態の映像符号化装置では、第１の符号化回路１０１による仮符号化において、まず複数の代表量子化パラメータのそれぞれについて、発生する２値シンボル量及び発生する符号量を求める。その後、第２の符号化回路１０２において、仮符号化で求めた値に基づいて、上限２値シンボル量及び目標符号量を考慮して最適な量子化パラメータを求める。このような方法により、一方向の処理の流れの中で最適な量子化パラメータを決定できるため、従来のように、更新された算術符号化の発生確率情報を元に戻すための複雑な回路構成が不要となり、また、並列に算術符号化回路を設ける必要もないので、回路構成が簡単になる。
【００７３】
また、本実施形態によれば、符号化により得られる２値シンボル量を所定の上限値以下に抑制しつつ、発生する符号量を所定量以下に抑えることができる。よって、本実施形態の映像符号化装置は特にフレーム単位の符号量を一定にする場合に有効である。例えば、本実施形態の映像符号化装置は、フレーム単位の符号量に制限値がある符号化を行う場合や、フレーム単位の符号量に制限値がない符号化においても、デコーダバッファの状態がクリティカルで現在のフレームの符号量に制限値がある場合に有効である。その理由を以下に説明する。
【００７４】
本実施形態の思想を用いずに、２値シンボル量が所定の上限値を超え、符号量のみが制限値以下に抑制された場合を考える。この場合、非特許文献１の符号化では、cabac_zero_wordと呼ばれるスタッフィングを用いて符号量を増加させることで、２値シンボル量の上限値の規定を順守する必要がある。しかし、符号量を増加させることで符号量が制限値を超えて、符号化を破綻させる可能性が生じてしまう。本実施形態は、制限値に対して計算された２値シンボル量の上限値以下に２値シンボル量を制御可能であるため、cabac_zero_wordのスタッフィングが必要となったとしても、符号量は必ず制限値以下に収まり破綻させることはない。よって、本実施形態の思想は前述の場合に特に有効となる。
【００７５】
（変形例）
なお、本実施の形態では、最適量子化パラメータＱＰoptとして固定値を与える例を示したが、例えばＱＰoptをＮ個のマクロブロックの符号化に対する初期値として用い、それ以降の量子化パラメータはフィードバック制御による２値シンボル量及び符号量の制御を行い、最適量子化パラメータＱＰ2（ｎ）を動的に変更することが可能である。フィードバック制御は、例えば符号量に基づいて制御する場合、マクロブロック番号ｍのマクロブロックにおいて、符号化時の発生符号量Ｒ2（ｎ）を０≦ｎ≦ｍの範囲で加算した累積発生符号量Ｂと、ある時点（例えばマクロブロック番号Ｎ−１）までの目標符号量Ｔとの差分である残存符号量（Ｔ−Ｂ）を、残存しているマクロブロックｎ（ｍ＜ｎ≦Ｎ−１）の目標符号量Ｓに設定することで実施できる。また、マクロブロックの輝度値や色差値、周波数領域での特徴等に基づいて量子化パラメータＱＰ2（ｎ）を動的に変更する処理も可能である。
【００７６】
本実施の形態では、スライス単位で仮符号化及び正規の符号化を行ったが、より小さい単位で仮符号化及び正規の符号化を行って発生符号量Ｒ2（ｎ）を得てもよい。その結果を量子化パラメータの選択に反映するような場合や、フィードバック制御を小さい単位で行う場合には、数マクロブロック等の小さい単位で実施しても効果的である。また、仮符号化及び正規の符号化の処理単位を固定していたが、仮符号化及び正規の符号化の処理単位をフレーム単位又はその他の単位で動的に変更させることも可能である。また、スライス予測符号量を線形補間して求めたが、スプライン補間等、高度な数値補間も利用できる。
【００７７】
本実施の形態ではＱＰ別発生２値シンボル量ｂ1（ｘ）及びＱＰ別発生符号量ｒ1（ｘ）を２値シンボル量・符号量積算値メモリ１５３に蓄積する例で説明したが、総和を計算する前のマクロブロック毎の発生２値シンボル量Ｂ1（ｎ）及び発生符号量Ｒ1（ｎ）を蓄積し、２値シンボル量・符号量積算値メモリ１５３から読み出した後に総和を計算しても良い。
【００７８】
本実施の形態では仮符号化処理を１回のみ行う例を示したが、リアルタイムの符号化処理が必要でない場合や、仮符号化処理をパイプライン化又は並列化することにより一定の遅延で多くの処理が行える場合には、仮符号化処理を複数回行っても良い。
【００７９】
なお、本実施の形態では、映像符号化のＨ．２６４規格におけるコンテキスト適応算術符号化を例にとって説明した。しかし、本発明の思想は、量子化された係数データに対して算術符号化を行う場合に適用でき、量子化パラメータを適応的に変更できる符号化装置に適用できる。
【００８０】
例えば、図８に示すよう符号化装置にも適用できる。図８において、符号化装置２００は、入力信号に対して、仮符号化処理を行う第一の符号化回路２０１と、正規の符号化を行う第二の符号化回路２０２と、入力信号を遅延させる遅延メモリ１５１と、２値シンボル量・符号量積算値メモリ２５３と、２値シンボル量・符号量積算回路２５４とを備える。
【００８１】
第一の符号化回路２０１は、入力した信号に対して所定の信号処理を行う信号処理回路２６１と、量子化回路２２１と、量子化パラメータ発生回路２１１と、２値化回路２３１と、算術符号化回路２４１とから構成される。
【００８２】
第二の符号化回路２０２は、入力した信号に対して所定の信号処理を行う信号処理回路２６２と、量子化回路２２２と、量子化パラメータ算出回路２１２と、２値化回路２３２と、算術符号化回路２４２とから構成される。
【００８３】
以上のように構成される符号化装置２００は仮符号化処理時には以下の動作を行う。信号処理回路２６１は入力信号に対して所定の信号処理を行い、量子化回路２２１は量子化パラメータ発生回路２１１からの仮量子化パラメータに基づき、信号処理回路２６１から出力される信号を量子化する。量子化された信号は２値化回路２３１により２値化され、その後、算術符号化回路２４１により算術符号化される。２値シンボル量・符号量積算回路２５４は、２値化回路２３１から出力される２値シンボルのシンボル量と、算術符号化回路２４１から出力される符号の符号量とを、所定の単位毎に積算し、積算した値を２値シンボル量・符号量積算値メモリ２５３に格納する。２値シンボル量・符号量積算回路２５４の処理は前述したとおりである。
【００８４】
その後、第二の符号化回路２０２により正規の符号化処理が実施される。信号処理回路２６２は、遅延メモリ２５１により一定時間遅延された入力信号に対して所定の信号処理を行う。量子化回路２２２は所定の信号処理がなされた入力信号を量子化パラメータ算出回路２１２からの量子化パラメータを用いて量子化を行う。量子化パラメータ算出回路２１２における量子化パラメータの決定方法は前述したとおりである。その後、２値化回路２３２、算術符号化回路２４２により処理がなされビットストリームが出力される。
【００８５】
本実施の形態を用いて符号化したビットストリームは、テープ、光ディスク、磁気ディスク、半導体メモリ等の記録媒体に記録して再配布可能にすることができる。
【００８６】
また、図１及び図８の符号化装置における各回路の機能をソフトウェアにより実現し、マイクロプロセッサでそのソフトウェアを実行させることで、図１及び図８の符号化装置と同様の機能を実現することもできる。
【産業上の利用可能性】
【００８７】
本発明は、ディジタルカメラレコーダや録画装置など小さい回路規模でリアルタイム動作が要求されるデータ記録装置に有効である。
【００８８】
本発明は、特定の実施形態について説明されてきたが、当業者にとっては他の多くの変形例、修正、他の利用が明らかである。それゆえ、本発明は、ここでの特定の開示に限定されず、添付の請求の範囲によってのみ限定され得る。なお、本出願は日本国特許出願、特願２００６−３１９９８１号（２００６年１１月２８日提出）に関連し、それらの内容は参照することにより本文中に組み入れられる。
【図面の簡単な説明】
【００８９】
【図１】本発明の実施の形態における映像符号化装置の構成図
【図２】符号化される画像とマクロブロックの関係を説明した図
【図３】仮量子化パラメータの選択例を示す図
【図４】（ａ）代表量子化パラメータの具体例を説明した図、（ｂ）プログレッシブ方式の場合のマクロブロックへの代表量子化パラメータの適用例を示した図、（ｃ）インターレース方式の場合のマクロブロックへの代表量子化パラメータの適用例を示した図
【図５】２値シンボル量・符号量積算値メモリに格納される、代表量子化パラメータ毎の発生２値シンボル量と発生符号量の具体例を示した図
【図６】発生２値シンボル量に基づく最適量子化パラメータの算出方法を説明するための図
【図７】発生符号量に基づく最適量子化パラメータの算出方法を説明するための図
【図８】本発明の思想が適用可能な符号化装置の構成図
【図９】従来のコンテキスト適応算術符号化回路の構成を示す図
【図１０】２値算術符号化を説明するための図
【符号の説明】
【００９０】
１００  映像符号化装置
１０１  第一の符号化回路
１０２  第二の符号化回路
１１１  量子化パラメータ発生回路
１１２  量子化パラメータ算出回路
１２１、１２２  量子化回路
１２４  逆量子化回路
１３１、１３２  ２値化回路
１３１  コンテキスト選択回路
１４１、１４２  算術符号化回路
１５１  フレームメモリ
１５２  予測モードメモリ
１５３  ２値シンボル量・符号量積算値メモリ
１６１、１６２  ブロック化回路
１７１、１７２  イントラ予測生成回路
１７３  予測モード検出回路
１８１、１８２  ＤＣＴ回路
１８４  逆ＤＣＴ回路
２００  符号化装置
２２１、２２２  量子化回路
２５１  遅延メモリ
２６１、信号処理回路
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008065822.tif 000013
【図２】
2008065822.tif 000014
【図３】
2008065822.tif 000015
【図４】
2008065822.tif 000016
【図５】
2008065822.tif 000017
【図６】
2008065822.tif 000018
【図７】
2008065822.tif 000019
【図８】
2008065822.tif 000020
【図９】
2008065822.tif 000021
【図１０】
2008065822.tif 000022
【国際調査報告】
2008065822.tif 000023
2008065822.tif 000024
2008065822.tif 000025
2008065822.tif 000026