(57)【要約】【課題】算術符号化を用いた場合の符号量制御において、ある量子化パラメータで仮符号化を行って算術符号化後の発生符号量を取得した後に、改めて設定した量子化パラメータで符号化を行う場合、量子化パラメータによりシンボルの確率分布が異なるので符号量予測が精度よく行えないという課題があった。【解決手段】仮符号化として任意の量子化パラメータを量子化回路１２０に入力して算術符号化回路１４０から出力される発生符号量から、符号化における量子化回路１２０へ入力する適切な量子化パラメータを求める際に、仮符号化の際には量子化パラメータ毎に算術符号化のコンテキストを選択させ、符号化の際には量子化パラメータによらず同じコンテキストを選択させるコンテキスト選択回路１３１と、仮符号化の際にはある周期で値の異なる量子化パラメータを発生し、符号化の際には適切な量子化パラメータを発生する適応量子化制御回路１３０とを備える。【選択図】図１
2007074337.tif 000002
【特許請求の範囲】
【請求項１】
信号を符号化するための符号化装置であって、
入力された前記信号を直交変換して係数データを出力する直交変換回路と、
前記係数データを量子化するための量子化回路と、
前記量子化回路で量子化するための量子化パラメータを生成する量子化制御回路と、
前記量子化回路で量子化されたデータに対して前記量子化パラメータに基づいて算術符号化を行う算術符号化回路とを有し、
仮符号化時において、
前記量子化制御回路は、前記量子化パラメータとして仮量子化パラメータを複数の代表量子化パラメータから選択することにより生成し、
前記算術符号化回路は、前記仮量子化パラメータに基づいて前記係数データの発生確率を示す情報を含む前記コンテキスト情報を選択し、前記コンテキスト情報に基づいて算術符号化を行うと共に算術符号化したデータの発生符号量を算出し、
符号化時において、
前記量子化制御回路は、前記仮量子化パラメータ、前記発生符号量及び符号化時に与えるべき所定の符号量に基づいて前記量子化パラメータとしての最適量子化パラメータを生成し、
前記算術符号化回路は、前記最適量子化パラメータ及び所定のコンテキスト情報に基づいて算術符号化を行うことを特徴とする符号化装置。
【請求項２】
前記量子化制御回路は、Ｎ個（Ｎは２以上の自然数）の前記係数データを量子化するための前記量子化パラメータを生成するに際してＱ個（Ｑは２以上の自然数）から成る代表量子化パラメータを設定し、前記Ｑ個の代表量子化パラメータから任意の一個の量子化パラメータを選択して前記量子化パラメータを生成することを特徴とする、請求項１に記載の符号化装置。
【請求項３】
前記Ｎは、Ｎ＝Ｌ＊Ｑ（Ｌは自然数）であり、
前記量子化制御回路における前記量子化パラメータの生成は、連続したＱ個の前記係数データに対して互いに異なるＱ個の量子化パラメータを選択することで行うことを特徴とする、請求項２に記載の符号化装置。
【請求項４】
信号を符号化するための符号化装置であって、
入力された前記信号を直交変換して係数データを出力する直交変換回路と、
複数の代表量子化パラメータから選択することにより第１の量子化パラメータを生成する第１の量子化制御回路と、
前記第１の量子化パラメータに基づいて前記係数データを量子化して第１の量子化データとする第１の量子化回路と、
前記第１の量子化パラメータに基づいて前記係数データの発生確率を示す情報を含む前記コンテキスト情報を選択し、前記コンテキスト情報を用いて前記第１の量子化データに対して算術符号化を行うと共に算術符号化したデータの発生符号量を算出する第１の算術符号化回路と、
前記第１の量子化パラメータ、前記発生符号量及び符号化時に与えるべき所定の符号量に基づいて第２の量子化パラメータを生成する第２の量子化制御回路と、
前記第２の量子化パラメータに基づいて前記係数データを量子化して第２の量子化データとする第２の量子化回路と、
前記第２の量子化パラメータ及び所定のコンテキスト情報に基づいて前記第２の量子化データに対して算術符号化を行う第２の算術符号化回路とを有することを特徴とする符号化装置。
【請求項５】
前記第１の量子化制御回路は、Ｎ個（Ｎは２以上の自然数）の前記係数データを量子化するための前記第１の量子化パラメータを生成するに際してＱ個（Ｑは２以上の自然数）から成る代表量子化パラメータを設定し、前記Ｑ個の代表量子化パラメータから任意の一個の量子化パラメータを選択して前記第１の量子化パラメータを生成することを特徴とする、請求項４に記載の符号化装置。
【請求項６】
前記Ｎは、Ｎ＝Ｌ＊Ｑ（Ｌは自然数）であり、
前記第１の量子化制御回路における前記第１の量子化パラメータの生成は、連続したＱ個の前記係数データに対して互いに異なるＱ個の代表量子化パラメータを選択することで行うことを特徴とする、請求項５に記載の符号化装置。
【請求項７】
前記Ｑ個の代表量子化パラメータは、量子化パラメータの最大値及び最小値を必ず含むように構成したことを特徴とする、請求項２、３、５、６のいずれかに記載の符号化装置。
【請求項８】
前記信号は映像信号であり、
前記コンテキスト情報は、少なくとも発生確率の高いシンボルを示すＭＰＳ値と、
前記シンボルの発生確率を示すｐＳｔａｔｅ値とを有し、
前記係数データは、前記信号を周波数成分に変換した係数であることを特徴とする、請求項１乃至７のうちいずれかに記載の符号化装置。
【請求項９】
信号を符号化するための符号化方法であって、
入力された前記信号を直交変換して係数データを出力する直交変換処理ステップと、
第１の量子化パラメータを複数の代表量子化パラメータから選択することにより生成し、前記第１の量子化パラメータに基づいて前記係数データを量子化して第１の量子化データとする第１の量子化ステップと、
前記量子化パラメータに基づいて前記係数データの発生確率を示す情報を含む前記コンテキスト情報を選択し、前記コンテキスト情報に基づいて前記第１の量子化データに対して算術符号化を行うと共に算術符号化したデータの発生符号量を算出する第１の算術符号化ステップと、
符号化時において、
前記第１の量子化パラメータ、前記発生符号量及び符号化時に与えるべき所定の符号量に基づいて第２の量子化パラメータを生成し、前記第２の量子化パラメータに基づいて前記係数データを量子化して第２の量子化データとする第２の量子化ステップと、
前記第２の量子化パラメータ及び所定のコンテキスト情報に基づいて前記第２の量子化データに対して算術符号化を行う前記第２の算術符号化ステップとを有することを特徴とする符号化方法。
【請求項１０】
前記第１の量子化ステップは、Ｎ個（Ｎは２以上の自然数）の前記係数データを量子化するための前記量子化パラメータを生成するに際してＱ個（Ｑは２以上の自然数）から成る代表量子化パラメータを設定し、
前記Ｑ個の代表量子化パラメータから任意の一個の量子化パラメータを選択して前記量子化パラメータを生成することを特徴とする、請求項９に記載の符号化方法。
【請求項１１】
前記Ｎは、Ｎ＝Ｌ＊Ｑ（Ｌは自然数）であり、
前記第１の量子化ステップにおける量子化パラメータの生成は、連続したＱ個の前記係数データに対して互いに異なるＱ個の代表量子化パラメータを選択することで行うことを特徴とする、請求項１０に記載の符号化方法。
【請求項１２】
前記Ｑ個の代表量子化パラメータは、量子化パラメータの最大値及び最小値を必ず含むように構成したことを特徴とする、請求項１０又は１１に記載の符号化方法。
【請求項１３】
前記信号は映像信号であり、
前記コンテキストは、少なくとも発生確率の高いシンボルを示すＭＰＳ値と、
前記シンボルの発生確率を示すｐＳｔａｔｅ値とを有し、
前記係数データは、前記信号を周波数成分に変換した係数であることを特徴とする、請求項９乃至１２のうちいずれかに記載の符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、算術符号化を適用したエンコーダの符号量制御の精度を向上させ、高能率・高画質の符号化を行う符号化装置に関する。
【背景技術】
【０００２】
算術符号化は、情報源シンボルの発生確率に応じて情報量を理論限界まで可逆圧縮できる技術である。画像符号化の分野では、ＪＰＥＧ２０００規格（ＩＳＯ／ＩＥＣ１５４４４）、Ｈ．２６４／ＭＰＥＧ４−ＡＶＣ規格（非特許文献１参照）等に採用されている。Ｈ．２６４においては、コンテキスト適応算術符号化（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）として、シンタックスの確率特性に応じた効率の高い符号化を実現している。
【０００３】
Ｈ．２６４におけるコンテキスト適応算術符号化について、図９を用いて説明する。図９は、算術符号化回路を説明する図である。図９において算術符号化回路１４０は、２値化回路５１０、コンテキスト計算回路５２０、２値算術符号化回路５３０から構成される。以下、この回路の動作について説明する。
【０００４】
フラグ等の符号化情報や変換係数データといった多値入力データ５０１に対し、２値化回路５１０が２値化を行う。２値化は、制御情報５０２から入力データの種類であるシンタックスエレメント（ｓｙｎｔａｘ  ｅｌｅｍｅｎｔ）を判別し、データの確率特性によって、ユーナリー・バイナライゼーション（ｕｎａｒｙ  ｂｉｎａｒｉｚａｔｉｏｎ）や固定長バイナライゼーション（ｆｉｘｅｄ−ｌｅｎｇｔｈ  ｂｉｎａｒｉｚａｔｉｏｎ）といった複数の方式を使い分ける。２値算術符号化回路５３０は２値化されたバイナリ列５０３を算術符号化し、バイナリ列５０９を出力する。
【０００５】
コンテキスト計算回路５２０は、シンタックスエレメントを示す制御情報５０２に基づいて、バイナリ列５０３における現在の１ビットを符号化するために用いるコンテキストインデックス（ｃｔｘＩｄｘ）の値を、規格で定められた表１より求める。
【０００６】
【表１】
2007074337.tif 000003
【０００７】
表１より、ｃｔｘＩｄｘは０から４５９までの４６０個の値を取りうる。１個のシンタックスエレメントに対して、スライスタイプによりｃｔｘＩｄｘの選択が異なる。また、例えばスライスタイプＩにおけるｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇのｃｔｘＩｄｘが７０−７２となっているように、ｃｔｘＩｄｘの値が複数個存在するシンタックスエレメントに対しては、シンタックスエレメント毎に決められた規則（非特許文献１参照）によってｃｔｘＩｄｘの値が複数個の中から一意に決定される。
【０００８】
コンテキスト計算回路５２０は、４６０個のｃｔｘＩｄｘの値毎に発生確率情報を初期化して記憶する。発生確率情報とは、バイナリシンボル０又は１のうち発生確率の高い方のシンボルを示すＭＰＳと、発生確率ｐＳｔａｔｅの組である。求められたｃｔｘＩｄｘの値に対応した発生確率情報を、コンテキスト情報５０４と呼ぶことにする。
【０００９】
コンテキスト計算回路５２０は、コンテキスト情報５０４を生成して２値算術符号化回路５３０に入力する。このように、算術符号化を行うシンタックスエレメントによって２値算術符号化回路５３０に入力されるシンボルの発生確率つまりコンテキスト情報５０４が適応的に切り替わることにより、バイナリシンボルの発生確率が動的に変わるバイナリ列５０３に対して、最適な算術符号化が可能となる。
【００１０】
２値算術符号化回路５３０の動作について、図１０を用いて説明する。図１０において、シンボル０の発生確率が０．７５（２進数で０．１１）、シンボル１の発生確率が０．２５の情報源から｛０，０，０，１｝のバイナリ列が入力された場合を考える。この場合、現在のコンテキスト情報５０４は、発生確率の高い方のシンボルを示すＭＰＳ＝０、発生確率ｐＳｔａｔｅ＝０．１１で表される。ｐＳｔａｔｅは、正規化された整数値で表現されるが、ここでは簡単のため２進数の確率値とする。コンテキスト情報５０４は、今回の２値算術符号化により更新され、コンテキスト計算回路５２０に戻される。コンテキスト計算回路５２０では、対応するｃｔｘＩｄｘの発生確率情報を更新する。この値は、次回に同じコンテキストの符号化が行われる時に再利用される。
【００１１】
図１０において、１個目の入力バイナリ値０が入力されると、［０，１］の区間が確率０．１１で区切られる０側に区間が狭められ、［０，０．１１］になる。２個目の入力０が入力されると、［０，０．１１］の区間が［０，０．１００１］に狭められる。ここで、０．１００１＝０．１１＊０．１１である。同様にして、３個目の入力０により区間が［０，０．０１１０１１］になる。４個目の入力１は、１側の区間に狭められるため、最終的な区間が［０．０１０１０００１，０．０１１０１１］に狭められる。ここで、この最終的な区間に含まれる値のうち、最短の語長を持つものが符号語となる。０．０１１は、この区間に含まれるので、小数点以下の０１１が出力バイナリ列となり、４ビットの入力値が３ビットに圧縮されたことになる。実際には、出力するビット（０もしくは１）が確定した時点で確率値の左ビットシフトを行うリノーマライゼーション（ｒｅｎｏｒｍａｌｉｚａｔｉｏｎ）と呼ばれる処理が行われる。
【非特許文献１】ＩＳＯ／ＩＥＣ１４４９６−１０  Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ
【発明の開示】
【発明が解決しようとする課題】
【００１２】
動画像符号化においては、特定のビットレートの条件下で画質を最大限に高めるため、各マクロブロックを符号化する際の量子化幅を決定するための量子化パラメータを適切に制御して、符号量制御を行う必要がある。そのためには、現在のマクロブロックまたはフレームに対してどの程度の量子化パラメータで符号化すればどの程度の符号量が得られるか、という符号量予測を行うことが必須であり、様々な方式が用いられている。
【００１３】
そのための基本的な方式として、マクロブロックやフレームといった単位で一度ある量子化パラメータで仮符号化を行って発生符号量を測定した後に、符号化するための最適な量子化パラメータを算出する方式がある。例えば、リアルタイムエンコーダにおいて、１フレームの遅延を行って、１フレームの仮符号化を行った後に符号化を行う場合がある。また、フレームより小さいスライスといった単位で仮符号化と符号化を繰り返すこともできる。リアルタイムエンコーダでない場合には、ＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）やシーケンス全体といったより大きな単位で実施する２パスエンコードと呼ばれる符号化を行うことができる。
【００１４】
しかし、算術符号化を用いた場合の符号量制御において、ある量子化パラメータで仮符号化を行って算術符号化後の発生符号量を取得した後に、改めて設定した量子化パラメータで符号化を行う場合、量子化パラメータの変更によりシンボルの確率分布が仮符号化のときと異なってしまうので、符号量予測が精度よく行えないという課題があった。
【００１５】
本発明はこのような課題に鑑み、算術符号化を適用した符号化装置の符号量制御の精度を向上させることを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するために本発明の符号化装置は、信号を符号化するための符号化装置であって、入力された信号を直交変換して係数データを出力する直交変換回路と、係数データを量子化するための量子化回路と、量子化回路で量子化するための量子化パラメータを生成する量子化制御回路と、量子化回路で量子化されたデータに対して量子化パラメータに基づいて算術符号化を行う算術符号化回路とを有し、仮符号化時において、量子化制御回路は、量子化パラメータとして仮量子化パラメータを複数の代表量子化パラメータから選択することにより生成し、算術符号化回路は、仮量子化パラメータに基づいて係数データの発生確率を示す情報を含むコンテキスト情報を選択し、コンテキスト情報に基づいて算術符号化を行うと共に算術符号化したデータの発生符号量を算出し、符号化時において、量子化制御回路は、仮量子化パラメータ、発生符号量及び符号化時に与えるべき所定の符号量に基づいて量子化パラメータとしての最適量子化パラメータを生成し、算術符号化回路は、最適量子化パラメータ及び所定のコンテキスト情報に基づいて算術符号化を行う構成とした。
【発明の効果】
【００１７】
本発明によれば、様々な量子化パラメータに対する予測符号量の精度を高め、算術符号化を適用したリアルタイムエンコーダの符号量制御の精度を向上させることが可能となるので、高能率・高画質の符号化を行う符号化装置を実現することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１９】
（実施の形態１）
本発明の実施の形態１による映像符号化装置の例を図１に示す。図１において、映像符号化装置１００は、直交変換回路としてのＤＣＴ回路１１０、逆ＤＣＴ回路１１１、量子化回路１２０、逆量子化回路１２１、適応量子化制御回路１３０、コンテキスト選択回路１３１、算術符号化回路１４０、イントラ予測回路１５０、インター予測回路１６０、動き予測回路１６１、デブロックフィルタ回路１７０から構成される。以上のように構成された映像符号化装置について、以下その動作を説明する。
【００２０】
最初に、映像符号化の流れについて図１を用いて説明する。まず、フレーム内のデータのみで復号可能となるイントラマクロブロックの符号化について説明する。マクロブロックとは、通常１６ｘ１６画素のブロックであり、後述するＤＣＴ変換やイントラ予測の単位となるブロックを複数個含む。入力されたディジタル映像信号１０１において符号化対象のマクロブロックの各画素値は、イントラ予測回路１５０において作成された符号化対象のマクロブロックの画素予測値と、画素毎の差分値が計算され、１６ｘ１６画素の差分値のブロックが生成される。
【００２１】
次に、差分値のブロックに対してＤＣＴ回路１１０にてＤＣＴ変換が行われる。この処理は、通常４ｘ４画素や８ｘ８画素のブロック単位に行われ、周波数成分の係数データが出力される。係数データは量子化回路１２０に入力されて量子化される。量子化された係数データは、算術符号化回路１４０により算術符号化される。さらに、量子化後の係数データは逆量子化回路１２１と逆ＤＣＴ回路１１１にて復号され、前記マクロブロックの画素予測値との画素ごとの加算が行われ、１６ｘ１６画素の復号画素に変換される。得られた復号画素は、イントラ予測回路１５０に入力される。イントラ予測回路１５０では、後に符号化される周辺のマクロブロックのための画素予測値が作成される。
【００２２】
次に、フレーム間の予測を用いるインターマクロブロックの符号化について説明する。動き予測回路１６１では、現在符号化するブロック（動き補償の単位となるブロック）と参照フレームの画素とのマッチング処理を行い、誤差が最小となるようなベクトル値が算出される。動き予測の結果に基づいてインター予測回路１６０が出力した、符号化対象のマクロブロックの画素予測値と、映像信号１０１における符号化対象のマクロブロックの画素値との差分値が計算され、ＤＣＴ回路１１０に入力される。この後の処理は、基本的にイントラマクロブロックの符号化と同様である。逆ＤＣＴ回路１１１にて復号された係数は、前記マクロブロックの画素予測値との画素ごとの加算が行われる。得られた復号画素は、視覚的なブロック歪みの低減のためにデブロックフィルタ回路１７０経由でインター予測回路１６０に入力する場合が多い。
【００２３】
本発明は、符号量予測を行う「仮符号化」と、最終的な出力のための符号化を行う「符号化」の２種類のフェーズから構成される。この２種類のフェーズを図１の映像符号化装置で実現する方法を、図２を用いて説明する。図２において、量子化幅を制御するための量子化パラメータを与えることのできる最小単位の個数をＮとし、Ｎ個の最小単位の集合を動作単位と呼ぶ。通常は最小単位をマクロブロックとする。Ｎは任意の自然数とすることができる。Ｎは例えば、１個のスライスを構成するマクロブロック数、１フレームを構成するマクロブロック数、Ｍフレーム（Ｍは２以上の自然数）を構成するマクロブロック数などに設定することができる。後述するが、本実施の形態では動作単位を１スライスとして説明する。すなわちＮとしては、１スライスを構成するマクロブロックの個数を採用する。図２のように動作単位毎に、０番目からＮ−１番目のマクロブロックまでのＮ回の仮符号化を行った後、０番目からＮ−１番目のマクロブロックまでのＮ回の符号化を行う。以降、この動作を繰り返す。
【００２４】
図２における仮符号化＃ｎ（０≦ｎ≦Ｎ−１）の動作を、図３を用いて説明する。図３は、図１の映像符号化装置の主要部分を抜き出したものである。ＤＣＴ回路１１０から出力された１マクロブロック分の係数データ１８０が量子化回路１２０に入力されると、適応量子化制御回路１３０が決定した仮量子化パラメータＱＰ1（ｎ）１８１を量子化回路１２０に入力する。仮量子化パラメータＱＰ1（ｎ）１８１の決定方法については後述する。量子化回路１２０は、与えられた仮量子化パラメータＱＰ1（ｎ）１８１で量子化を行う。量子化された係数データ１８４は、算術符号化回路１４０ｂに入力される。算術符号化回路１４０ｂは、コンテキスト選択回路１３１より仮量子化パラメータＱＰ1（ｎ）１８１の値と１対１に対応したコンテキスト選択情報１８３を受け取り、算術符号化を行い、バイナリ列１９１を出力する。Ｑ種類（Ｑは自然数）の仮量子化パラメータＱＰ1（ｎ）１８１を用いる場合、コンテキスト選択情報１８３は、０からＱ−１までの整数値とすることができる。１マクロブロックに対する算術符号化によって出力されたバイナリ列１９１の長さ（ビット数）を示す発生符号量Ｒ1（ｎ）１８２は、適応量子化制御回路１３０に入力される。
【００２５】
本発明による算術符号化回路１４０ｂを図１５に示す。算術符号化回路１４０ｂは、図９の算術符号化回路１４０のコンテキスト計算回路５２０を、量子化パラメータ適応コンテキスト計算回路５２１で置き換えたものである。量子化パラメータ適応コンテキスト計算回路５２１は、４６０個のコンテキストインデックスｃｔｘＩｄｘ及びＱ種類（Ｑは自然数）の量子化パラメータの組み合わせ毎に、合計で４６０×Ｑ個の発生確率情報を記憶する。量子化パラメータ適応コンテキスト計算回路５２１は、制御情報５０２から計算したｃｔｘＩｄｘと、コンテキスト選択情報１８３を受け取り、記憶している４６０×Ｑ個の発生確率情報の中から、ｃｔｘＩｄｘ及びコンテキスト選択情報の値に対応したコンテキスト情報５０４を出力する。
【００２６】
以上のように出力されたコンテキスト情報５０４は、算術符号化回路１４０ｂに多値入力データ５０１として入力された係数データ１８４を符号化する際に、２値算術符号化回路５３０において参照される。つまり、係数データ１８４の算術符号化において、量子化パラメータにより異なる発生確率情報を参照していることになる。
【００２７】
次に、図２における符号化＃ｎ（０≦ｎ≦Ｎ−１）の動作を、図４を用いて説明する。図４は、図１の映像符号化装置の主要部分を抜き出したものである。仮符号化後の発生符号量Ｒ1（ｎ）１８２を入力された適応量子化制御回路１３０は、仮量子化パラメータＱＰ1（ｎ）１８１、発生符号量Ｒ1（ｎ）１８２と、Ｎ個のマクロブロックに与えるべき符号量Ｔに基づいて、最適量子化パラメータＱＰ2（ｎ）１８５を算出して量子化回路１２０に入力する。ＱＰ2（ｎ）１８５は、制御の状況などにより量子化回路１２０に入力される前に値を修正される場合もある。量子化回路１２０は、与えられた最適な量子化パラメータＱＰ2（ｎ）１８５で量子化を行う。量子化された係数データ１８７は算術符号化回路１４０ｂに入力される。符号化＃ｎにおいて、コンテキスト選択回路１３１は動作しない。仮符号化とは異なり、算術符号化回路１４０ｂに入力されるコンテキスト選択情報１８３は常に固定であり、算術符号化回路１４０ｂは算術符号化回路１４０と同じ動作をする。算術符号化における発生符号量Ｒ2（ｎ）１８６の値は、現在までの累積発生符号量として、最適量子化パラメータＱＰ2（ｎ）の値の修正に用いるため、適応量子化制御回路１３０に入力される。
【００２８】
図３の仮符号化の具体例を、図５のような１９２０ｘ１０８０画素の１フレームの符号化においてスライス単位に最適な量子化パラメータを算出する例を用いて説明する。１９２０ｘ１０８０画素のフレームは、１６ｘ１６画素のマクロブロックが１２０ｘ６８＝８１６０個で構成される。フレームを分割するスライスは、任意の連続したマクロブロックの集合として定義できるが、例えば１個のスライスが２０４０個のマクロブロックを含み、１フレームが４個のスライスで構成される場合を考える。この場合、Ｎ＝２０４０と設定できる。
【００２９】
まず、仮量子化パラメータＱＰ1（ｎ）を決定する。仮量子化パラメータは、マクロブロック毎に複数の候補の中からひとつを選択して設定される。すなわち１個のマクロブロックに対する仮量子化パラメータＱＰ1（ｎ）は、任意の異なるＱ種類の代表量子化パラメータｑｐ1（ｘ）（ｘ＝０，１，…，Ｑ−１）から１個を選んで、当該マクロブロックの仮量子化パラメータＱＰ1（ｎ）に設定することで決定できる。例えば、０と２０の２種類の代表量子化パラメータｑｐ1（ｘ）＝｛０，２０｝を与える場合を考える。ここで、Ｆ（ｘ）＝｛Ａ0，Ａ1，…，ＡＱ-1｝（Ａｎは整数）の表記は、Ｆ（０）＝Ａ0、Ｆ（１）＝Ａ1、…Ｆ（Ｑ−１）＝ＡＱ-1を意味するものとする。各マクロブロックの仮量子化パラメータは、これら２種類のうちのいずれかを選択することになる。また、２種類の代表量子化パラメータの選択頻度は等しくなるようにする。この場合、半分のマクロブロックに量子化パラメータ０を、残り半分のマクロブロックに量子化パラメータ２０を与える。また、仮量子化パラメータがスライス内で偏るのを防ぐため、スライス内に交互又はランダムに仮量子化パラメータを配置する。図５の例のように、プログレッシブにおいては通常のラスタスキャン順に交互に、インターレースではマクロブロックの対毎に交互に仮量子化パラメータを与えることができる。
【００３０】
仮符号化における代表量子化パラメータｑｐ1（ｘ）の種類Ｑと、値ｑｐ1（ｘ）（ｘ＝０，１，…，Ｑ−１）の決定方法について、図６を用いて説明する。適応量子化制御回路１３０が仮符号化のために用いる代表量子化パラメータの種類Ｑは、２０４０の約数、又はインターレースの符号化を行うためマクロブロックを対にする場合は１０２０の約数とすることができる。このように代表量子化パラメータの種類Ｑを設定すれば、スライス内で任意の代表量子化パラメータが出現する回数を一定にできる。例えばプログレッシブの場合、Ｑとしては２０４０の約数である５、１０、２０が選択できる。これらの場合、１個のスライス内における各代表量子化パラメータの出現回数はそれぞれ４０８回、２０４回、１０２回となる。
【００３１】
代表量子化パラメータｑｐ1（ｘ）としては、エンコーダで選択できる量子化パラメータの範囲から異なる値をＱ個選択するが、最適な符号化のための符号量予測が行い易くなるように、値を適度に分散させるのが好ましい。例えば、エンコーダで選択できる量子化パラメータＱＰが０から５１の範囲である場合、一例として、Ｑ＝１０、ｑｐ1（ｘ）＝｛０，４，８，１２，１６，２２，２８，３４，４２，５１｝を選択することができる。また、前もってフレームの符号化難易度や目標符号量の情報から、符号化時の量子化パラメータＱＰ2（ｎ）を任意の範囲に制限できる場合には、制限された範囲内でより細かい間隔で代表量子化パラメータｑｐ1（ｘ）を選択することが可能である。例えば、量子化パラメータＱＰ2（ｎ）として０から３１までしか用いないことを決定している場合は、一例として、Ｑ＝１０、ｑｐ1（ｘ）＝｛０，３，６，９，１２，１５，１９，２３，２７，３１｝を選択することができる。
【００３２】
仮量子化パラメータＱＰ1（ｎ）（ｎ＝０，１，…，Ｎ−１）をｑｐ1（ｘ）（ｘ＝０，１，…，Ｑ−１）の中から選択する方法を説明する。この選択方法は、スライス内で代表量子化パラメータが分散して配置されるように設定された、ｎの値からｘの値への写像の式で実現することができる。写像の式の好ましい例として、プログレッシブの場合は数式１を、インターレースの場合は数式２を用いることができる。
ｘ＝（（ｎ％ｍｂ＿ｗｉｄｔｈ）＋ｄ（ｎ））％Ｑ        （数式１）
ｘ＝（（（ｎ／２）％ｍｂ＿ｗｉｄｔｈ）＋ｄ（ｎ））％Ｑ        （数式２）
但し、演算Ａ％Ｂは、整数Ａを整数Ｂで割った剰余を与える演算である。また、ｎは現在符号化しているマクロブロック番号である。ｎは、スライス単位またはフレーム単位で０にリセットする。演算Ａ／Ｂは、整数Ａを整数Ｂで割った商を与える演算である。ｍｂ＿ｗｉｄｔｈは水平方向のマクロブロック数であり、図５の例では１２０である。ｄ（ｎ）は垂直方向の分散配置を行うための変数で、例えばプログレッシブの場合は数式３で、インターレースの場合は数式４で定義できる。
ｄ（ｎ）＝（（ｎ／ｍｂ＿ｗｉｄｔｈ）＊ａ）％Ｑ        （数式３）
ｄ（ｎ）＝（（（ｎ／２）／ｍｂ＿ｗｉｄｔｈ）＊ａ）％Ｑ        （数式４）
但し、ａはＱと互いに素になる整数である。このｄ（ｎ）により、ｍｂ＿ｗｉｄｔｈ％Ｑ＝０となるＱを選択している場合、代表量子化パラメータの並びが１ライン進む毎に（Ｑ−ａ）個だけ右にシフトされる。図６の例ではａ＝７であり、１ライン進む毎に水平方向にＱ−ａ＝１０−７＝３マクロブロックずつＱＰ1（ｎ）の値がずれているのが確認できる。
【００３３】
図４の符号化における最適量子化パラメータＱＰ2（ｎ）の算出方法を、図７の具体例を用いて説明する。まず、２０４０個のマクロブロックを含むスライス１個を、仮量子化パラメータを使用して仮符号化する。次に、同じ代表量子化パラメータｑｐ1（ｘ）を使用して仮符号化されたマクロブロック毎に発生符号量Ｒ1（ｎ）の総和を取り、スライス予測符号量ｒ1（ｘ）とする。ｑｐ1（ｘ）＝｛０，４，８，１２，１６，２２，２８，３４，４２，５１｝（ｘ＝０，１，…，９）の各々に対し、発生符号量Ｒ1（ｎ）（ｎ＝０，１，…，Ｎ−１）を代表量子化パラメータ毎に総和を取った結果であるスライス予測符号量ｒ1（ｘ）がｒ1（ｘ）＝｛１７１２４８，１２００５８，７９３９０，５６５１６，４０７６０，２４０２６，１４８６４，７９６６，４７４２，２５７２｝であるとする。ここで、例えばｒ1（０）＝１７１２４８は以下のマクロブロックに対する符号量を加算することで求めることができる。ｍｂ＿ｗｉｄｔｈ＝１９２０画素／１６画素＝１２０、ａ＝７として、数式１及び数式３は、ｘ＝（（ｎ％１２０）＋ｄ（ｎ））％１０、ｄ（ｎ）＝（（ｎ／１２０）＊７）％１０となる。よって、代表量子化パラメータｑｐ1（０）＝０を使用して仮符号化したマクロブロック、すなわちｎ＝０，１０，２０，…，１１０，１２３，１３３，…，２３３，２４６，２５６，…，３５６，…，１９２８，１９３８，…，２０３８のマクロブロックに対する発生符号量Ｒ1（ｎ）を合計した結果が、１７１２４８であったと仮定していることになる。また、ビットレート、フレームレート、フレームの複雑度、スライスの符号化タイプなどの情報を用いて割り当てたスライスの目標符号量Ｔ＝３０００００ビットを仮定する。
【００３４】
最初に、ｑｐ1（ｘ）とｒ1（ｘ）から、量子化パラメータＱＰとスライス予測符号量の関係を図７のように座標軸にプロットすることができる。ｒ1（ｘ）は、各ｘ＝ＱＰに対して２０４個ずつのマクロブロックの発生符号量の総和になっているから、各ＱＰに対するスライス予測符号量は、ｒ1（ｘ）を１０倍することで求められる。また、ＱＰ値をプロットした後にＱＰ値を線形補間して全てのＱＰ値（０≦ＱＰ≦５１）に対するスライス予測符号量のグラフを作成することができる。
【００３５】
スライスの目標符号量Ｔ＝３０００００とこのグラフの交点を求めることで、目標符号量を発生するのに最適な量子化パラメータＱＰ2（ｎ）＝ＱＰopt（０≦ｎ≦２０３９）を求めることができる。ＱＰoptの算出は、線形補間により、数式５で求められる。
ＱＰopt＝ｑ＋（ＱＰ1（ｑ＋１）−ＱＰ1（ｑ））＊（Ｑ＊ｒ1（ｑ）−Ｔ）／（Ｑ＊ｒ1（ｑ）−Ｑ＊ｒ1（ｑ＋１））        （数式５）
但し、ｑは０≦ｑ≦Ｑ−１の整数であり、Ｑ＊ｒ1（ｑ＋１）≦Ｔ≦Ｑ＊ｒ1（ｑ）を満たす値とする。ここでは、１スライスを通じてひとつの最適量子化パラメータを使用することとしている。また、すべてのｑに対しＴ＞Ｑ＊ｒ1（ｑ）となる場合はｑ＝０、すべてのｑに対しＴ＜Ｑ＊ｒ1（ｑ）となる場合はｑ＝Ｑ−１とする。このため、あらかじめ仮量子化パラメータとしてＱＰ1（０）＝ｍｉｎ（ＱＰ）＝０、ＱＰ1（Ｑ−１）＝ｍａｘ（ＱＰ）＝５１としておくのが望ましい。
【００３６】
数式５を用いて、ＱＰoptは、ＱＰopt＝１６＋（２２−１６）＊（４０７６００−３０００００）／（４０７６００−２４０２６０）≒１９．９となる。量子化パラメータは整数であるので、２０を最適量子化パラメータＱＰ2（ｎ）とする。なお、小数点以下の値によっては小さい側の値１９を選択する場合もある。
【００３７】
本発明により符号量予測精度が向上する理由について説明する。仮符号化では、マクロブロック単位等の短い周期で仮量子化パラメータを変化させることで精度の高い符号量予測を行うことが可能となる。しかし従来の算術符号化回路１４０を仮符号化に用いた場合には、以下の問題がある。ＤＣＴ変換による係数データのシンボルの確率分布は、量子化パラメータにより大きく異なる。これは例えば、大きな量子化パラメータで量子化した場合に係数データにゼロが出現する確率が高くなるが、小さな量子化パラメータではゼロが出現しにくくなることからわかる。よって、仮符号化においてＮ個のマクロブロックをＱ種類の量子化パラメータで符号化する場合、様々な確率分布の量子化パラメータに対して状態遷移を行って得た発生符号量は、画像符号化として望ましい１種類の量子化パラメータで常に符号化し続けた場合と比較して誤差が大きくなる傾向がある。なぜなら、１種類の量子化パラメータの場合はある特定の確率をもって状態遷移し続けるからである。この結果、仮符号化と符号化の間で状態遷移の乖離が大きくなってしまう。これに対し本発明の算術符号化回路１４０ｂでは、係数データに相当するシンタックスに対してＱ種類の代表量子化パラメータｑｐ1（ｘ）（ｘ＝０，１，…，Ｑ−１）毎に状態値を保持して更新することにより、仮符号化における算術符号化の状態遷移が１種類の量子化パラメータで常に符号化した場合に近づき、結果として符号量予測精度を向上させることができる。また、符号化時には量子化パラメータによらず同じコンテキスト情報５０４を使用することで、通常のＣＡＢＡＣによる符号化を行うため、符号化規格に合致したストリームを出力することができる。
【００３８】
本実施の形態では、最適量子化パラメータＱＰ2（ｎ）として固定のＱＰoptを与える例を示したが、例えばＱＰoptをＮ個のマクロブロックの符号化に対する初期値として用い、それ以降の量子化パラメータはフィードバック制御による符号量制御を行い、最適量子化パラメータＱＰ2（ｎ）を動的に変更することが可能である。フィードバック制御は、あるマクロブロック番号ｍにおいて、符号化時の発生符号量Ｒ2（ｎ）を０≦ｎ≦ｍの範囲で加算した累積発生符号量Ｂと、ある時点（例えばマクロブロック番号Ｎ−１）までの目標符号量Ｔとの差分である残存符号量Ｔ−Ｂを、残存しているマクロブロックｎ（ｍ＜ｎ≦Ｎ−１）の目標符号量Ｓに設定することで行うことができる。また、マクロブロックの輝度値や色差値、周波数領域での特徴等に基づいて量子化パラメータＱＰ2（ｎ）を動的に変更する処理も可能である。
【００３９】
本実施の形態では、Ｎをスライス単位として説明したが、より小さい単位で仮符号化と符号化を行うことで発生符号量Ｒ2（ｎ）を得て、その結果を仮量子化パラメータの選択に反映するような場合や、フィードバック制御を小さい単位で行う場合には、数マクロブロック等の小さい単位で実施しても効果的である。Ｎを固定として説明したが、Ｎをフレーム単位又はその他の単位で動的に変更することも可能である。また、スライス予測符号量のグラフを線形補間して求める例を示したが、スプライン補間等、高度な数値補間も可能である。
【００４０】
本実施の形態では仮符号化を１回のみ行う例を示したが、リアルタイムの符号化が必要でない場合や、仮符号化をパイプライン化又は並列化することにより一定の遅延で多くの処理が行える場合には、仮符号化を何回行っても良い。
【００４１】
本実施の形態では、映像符号化のＨ．２６４規格におけるコンテキスト適応算術符号化を例にとって説明したが、量子化された係数データに対して算術符号化を適用でき、量子化パラメータを適応的に変更できる符号化装置又は符号化方法であれば、これに限定されるものではない。
【００４２】
本実施の形態を用いて符号化したビットストリームは、テープ、光ディスク、磁気ディスク、半導体メモリといった記録媒体に記録して、高能率・高画質の映像を再配布可能な形式にすることができる。
【００４３】
（実施の形態２）
本実施の形態は、実施の形態１に対して、仮符号化と符号化を行う回路を独立とした構成を示すものである。
【００４４】
図８に、本実施の形態における映像符号化装置の構成を示す。映像符号化装置６００は、仮符号化回路６１０、符号化回路６２０、適応量子化制御回路６３０、ＦＩＦＯバッファ６４０から構成される。仮符号化回路６１０および符号化回路６２０は、それぞれが実施の形態１で説明した映像符号化装置１００と同等の構成を持つものとする。このように構成された映像符号化装置６００について、以下動作を説明する。
【００４５】
映像信号６０１が入力されると、仮符号化回路６１０にてＮ個のマクロブロックに対する仮符号化が行われる。発生符号量Ｒ1（ｎ）は、適応量子化制御回路６３０に渡される。また映像信号６０１は、ＦＩＦＯバッファ６４０に入力され、Ｎ個のマクロブロック分のデータとして保持される。適応量子化制御回路６３０において最適量子化パラメータＱＰ2（ｎ）の算出が終了すると、遅延された映像信号６０１がＦＩＦＯバッファ６４０から符号化回路６２０に入力され、Ｎ個のマクロブロックに対して最適量子化パラメータＱＰ2（ｎ）による符号化が行われる。その結果、出力ビットストリーム６０２を得る。
【００４６】
本実施の形態の利点は、仮符号化と符号化の回路を別とすることにより、図１１の効果が得られる点である。図１１のように、符号化回路６２０でマクロブロック＃０から＃Ｎ−１を符号化している時間に、仮符号化回路６１０で次のＮ個のマクロブロック＃Ｎから＃２Ｎ−１に対する仮符号化が行える。よって、リアルタイム動作が可能な符号化回路を２つ接続し、仮符号化回路６１０の内部にのみ、仮量子化パラメータを与える適応量子化制御回路１３０と、コンテキスト選択回路１３１を実装することにより、本実施の形態は容易に実現できる。
【００４７】
（実施の形態３）
本実施の形態は、実施の形態１の構成をソフトウェアで実現するための構成を示すものである。
【００４８】
本発明による映像符号化処理を、図１２のフローチャートを用いて説明する。映像符号化処理２００が開始されると、動作単位を決定する（２１０）。Ｎは実施の形態１で説明した通りである。
【００４９】
仮量子化パラメータＱＰ1（ｎ）の決定ステップ２２０では、仮符号化処理２３０で量子化するための仮量子化パラメータを算出する。具体的には、Ｎ個のマクロブロックに対する仮量子化パラメータＱＰ1（ｎ）（ｎ＝０，１，…，Ｎ−１）を，Ｑ種類の代表量子化パラメータｑｐ1（ｘ）（ｘ＝０，１，…，Ｑ−１）の中から割り当てる。決定された仮量子化パラメータＱＰ1（ｎ）に基づいて、マクロブロックの仮符号化処理２３０をＮ回繰り返す（２６１）。
【００５０】
最適量子化パラメータＱＰ2（ｎ）の算出ステップ２４０では、符号化処理２５０で量子化するための量子化パラメータを算出する。具体的には、仮符号化処理２３０における仮量子化パラメータＱＰ1（ｎ）と発生符号量Ｒ1（ｎ）（ｎ＝０，１，…，Ｎ−１）、およびＮ個のマクロブロックに割り当てるべき目標符号量Ｔに基づいて、Ｎ個のマクロブロックの最適量子化パラメータＱＰ2（ｎ）（ｎ＝０，１，…，Ｎ−１）を算出する。算出された最適量子化パラメータＱＰ2（ｎ）に基づいて、マクロブロックの符号化処理２５０をＮ回繰り返す（２６２）。最後に、全ての映像データの符号化が完了していれば終了（２９０）し、完了していなければステップ２２０の仮量子化パラメータの算出ステップに戻り、次の映像データに対して同じ処理を繰り返す（２６０）。
【００５１】
仮符号化処理２３０の動作を、図１３のフローチャートを用いて説明する。最初にＤＣＴ処理２７０を行う。仮量子化パラメータＱＰ1（ｎ）による量子化（２３１）を行った後、ＱＰ1（ｎ）に応じて異なる算術符号化のコンテキスト選択（２３２）を行う。この操作は、特にＤＣＴ変換による係数データに相当するシンタックスの算術符号化に際しては、コンテキスト即ち状態値（ＭＰＳやｐＳｔａｔｅ）を、量子化パラメータＱＰ1（ｎ）∈ｑｐ1（ｘ）（ｘ＝０，１，…，Ｑ−１）毎に切替えて使用するものである。つまり、ＣＡＢＡＣが使用するＤＣＴ変換による係数データに相当するシンタックスの状態値を、Ｑ種類に増やしてｑｐ1（ｘ）毎に保持し、ＱＰ1（ｎ）によって使う状態値を分けることになる。仮符号化における算術符号化（２３３）を行って発生符号量Ｒ1（ｎ）を得る。その後、逆量子化処理２７２、逆ＤＣＴ処理２７１、イントラ予測及びインター予測を含む予測処理２８０を行って終了（２３９）する。
【００５２】
符号化処理２５０の動作を、図１４のフローチャートを用いて説明する。最初にＤＣＴ処理２７０を行う。量子化パラメータＱＰ2（ｎ）による量子化（２５１）を行った後、算術符号化のコンテキスト選択（２５２）を行う。この操作は、仮符号化処理２３０において代表量子化パラメータｑｐ1（ｘ）によって異なるコンテキスト情報を用いたのとは異なり、量子化パラメータによって異なるコンテキスト情報を用いることはしない。算術符号化（２５３）を行って発生符号量Ｒ2（ｎ）を得る。その後、逆量子化処理２７２、逆ＤＣＴ処理２７１、イントラ予測及びインター予測を含む予測処理２８０を行って終了（２５９）する。
【００５３】
本実施の形態により、実施の形態１をソフトウェアで実現することが可能となる。
【産業上の利用可能性】
【００５４】
本発明の符号化装置は、カメラレコーダや録画装置などリアルタイム動作が必要な記録装置に有効である。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施の形態１における映像符号化装置の構成図
【図２】同実施の形態１におけるフェーズのスケジューリングを説明する図
【図３】同実施の形態１における仮符号化時の回路動作を説明する図
【図４】同実施の形態１における符号化時の回路動作を説明する図
【図５】同実施の形態１における１フレームの仮符号化の例を示す図
【図６】同実施の形態１における量子化パラメータの選択例を示す図
【図７】同実施の形態１における最適量子化パラメータの算出例を示す図
【図８】本発明の実施の形態２における映像符号化装置の構成図
【図９】算術符号化回路を説明する図
【図１０】２値算術符号化の動作を説明する図
【図１１】本発明の実施の形態２におけるフェーズのスケジューリングを説明する図
【図１２】本発明の実施の形態３における符号化処理を示すフローチャート
【図１３】同実施の形態３における仮符号化処理を示すフローチャート
【図１４】同実施の形態３における符号化処理を示すフローチャート
【図１５】本発明の実施の形態１における算術符号化回路を説明する図
【符号の説明】
【００５６】
１００  映像符号化装置
１０１  映像信号入力
１１０  ＤＣＴ回路
１１１  逆ＤＣＴ回路
１２０  量子化回路
１２１  逆量子化回路
１３０  適応量子化制御回路
１３１  コンテキスト選択回路
１４０  算術符号化回路
１５０  イントラ予測回路
１６０  インター予測回路
１６１  動き予測回路
２００  映像符号化処理
２１０  動作単位Ｎの決定ステップ
２２０  仮量子化パラメータＱＰ1（ｎ）の算出ステップ
２３０  仮符号化処理
２３１  仮量子化パラメータＱＰ1（ｎ）による量子化ステップ
２３２  ＱＰ1（ｎ）に応じて異なる算術符号化のコンテキスト選択ステップ
２３３  仮符号化における算術符号化ステップ
２４０  最適量子化パラメータＱＰ2（ｎ）の算出ステップ
２５０  符号化処理
２５１  量子化パラメータＱＰ2（ｎ）による量子化ステップ
２５２  ＱＰ2（ｎ）によらない算術符号化のコンテキスト選択ステップ
２５３  算術符号化ステップ
【図１】
2007074337.tif 000004
【図２】
2007074337.tif 000005
【図３】
2007074337.tif 000006
【図４】
2007074337.tif 000007
【図５】
2007074337.tif 000008
【図６】
2007074337.tif 000009
【図７】
2007074337.tif 000010
【図８】
2007074337.tif 000011
【図９】
2007074337.tif 000012
【図１０】
2007074337.tif 000013
【図１１】
2007074337.tif 000014
【図１２】
2007074337.tif 000015
【図１３】
2007074337.tif 000016
【図１４】
2007074337.tif 000017
【図１５】
2007074337.tif 000018