(57)【要約】【課題】  主観画質を著しく劣化させることなく圧縮率を向上する。【解決手段】  画像データ１０１を直交変換して直交変換係数１０２を出力する直交変換部４と、直交変換係数の各周波数毎の統計情報１０３を算出する直交変換係数統計値算出部５と、算出された直交変換係数の各周波数毎の統計情報１０３に基づき、量子化及び符号化の際に使用する符号化パラメータ１０４を算出する符号化パラメータ制御部６とを備えている。【選択図】        図１
2006100993.tif 000002
【特許請求の範囲】
【請求項１】
画像データを直交変換して直交変換係数を出力する直交変換部と、
出力された上記直交変換係数の各周波数毎の統計情報を算出する直交変換係数統計情報算出部と、
算出された上記直交変換係数の各周波数毎の統計情報に基づき、量子化及び符号化の際に使用する符号化パラメータを算出する符号化パラメータ制御部とを備えた画像符号化装置。
【請求項２】
上記直交変換係数統計情報算出部は、上記直交変換係数の各周波数毎の統計情報として、Ｎピクチャ期間又はＮスライス期間（Ｎは任意の実数）の直交変換係数である各周波数毎の平均値、最大値、最小値、分散値、偏差値、中間値又は合計値を算出することを特徴とする請求項１記載の画像符号化装置。
【請求項３】
上記符号化パラメータ制御部は、視聴覚特性を考慮して設定された第１の係数セット、上記直交変換係数の各周波数毎の統計情報、及び実験データを考慮して設定された第２の係数セットに基づき、量子化マトリクスを算出する量子化マトリクス算出部を備えたことを特徴とする請求項１記載の画像符号化装置。
【請求項４】
上記符号化パラメータ制御部は、上記直交変換係数の各周波数毎の統計情報、算出された上記量子化マトリクス、及び設定されている量子化スケールに基づき、量子化後の直交変換係数である量子化係数の期待値を算出する量子化係数期待値算出部と、算出された上記量子化係数の期待値のスキャン順序を符号化の際の符号量が小さくなるように算出するスキャン順序算出部とを備えたことを特徴とする請求項３記載の画像符号化装置。
【請求項５】
上記符号化パラメータ制御部は、算出された上記スキャン順序に並び替えられた上記量子化係数の期待値を符号化した際の符号量の和が最小となるＶＬＣテーブルを算出するＶＬＣテーブル算出部を備えたことを特徴とする請求項４記載の画像符号化装置。
【請求項６】
上記符号化パラメータ制御部は、算出された上記ＶＬＣテーブルにより符号化された符号量の期待値に基づき、設定されている量子化スケールを補正する量子化スケール算出部を備えたことを特徴とする請求項５記載の画像符号化装置。
【請求項７】
画像データを周波数解析して上記画像データの周波数分布情報を算出する周波数解析部と、
上記画像データを直交変換して直交変換係数を出力する直交変換部と、
出力された上記直交変換係数の各周波数毎の統計情報を算出し、算出された上記周波数分布情報に基づき、算出した上記直交変換係数の各周波数毎の統計情報を補正して、直交変換係数の各周波数毎の補正した統計情報を出力する直交変換係数統計情報算出部と、
出力された上記直交変換係数の各周波数毎の補正した統計情報に基づき、量子化及び符号化の際に使用する符号化パラメータを算出する符号化パラメータ制御部とを備えた画像符号化装置。
【請求項８】
量子化及び符号化の際に使用する符号化パラメータを算出するためにコンピュータを、
画像データを直交変換して直交変換係数を出力する直交変換手段、
出力された上記直交変換係数の各周波数毎の統計情報を算出する直交変換係数統計情報算出手段、
算出された上記直交変換係数の各周波数毎の統計情報に基づき、量子化及び符号化の際に使用する符号化パラメータを算出する符号化パラメータ制御手段、
として機能させるための符号化パラメータ算出プログラム。
【請求項９】
量子化及び符号化の際に使用する符号化パラメータを算出するためにコンピュータを、
画像データを周波数解析して上記画像データの周波数分布情報を算出する周波数解析手段、
上記画像データを直交変換して直交変換係数を出力する直交変換手段、
出力された上記直交変換係数の各周波数毎の統計情報を算出し、算出された上記周波数分布情報に基づき、算出した上記直交変換係数の各周波数毎の統計情報を補正して、直交変換係数の各周波数毎の補正した統計情報を出力する直交変換係数統計情報算出手段、
出力された上記直交変換係数の各周波数毎の補正した統計情報に基づき、量子化及び符号化の際に使用する符号化パラメータを算出する符号化パラメータ制御手段、
として機能させるための符号化パラメータ算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は画像データを量子化して符号化する際に使用する適正な符号化パラメータを算出する画像符号化装置及び符号化パラメータ算出プログラムに関するものである。
【背景技術】
【０００２】
非特許文献１に記載された従来の画像符号化装置では、入力された画像データを直交変換し、直交変換後の直交変換係数を所定の量子化ステップサイズで量子化し、量子化後の量子化係数を可変長符号化し、可変長符号化された画像データは符号化ビット列として送信バッファに蓄積される。
【０００３】
送信バッファに蓄積された符号化ビット列は、所定の伝送速度で画像符号化装置の外部に出力される。この際、送信バッファがアンダーフロー又はオーバーフローしないように、送信バッファに蓄積される符号化ビット列のデータ量である符号量を制御する必要がある。符号量を制御する方法として、送信バッファに蓄積される符号量に応じて、量子化の際の量子化ステップサイズを変更する方法が広く用いらている。すなわち、送信バッファに蓄積されている符号量が大きいときには、量子化ステップサイズを大きくして生成する符号量を減少させ、送信バッファに蓄積されている符号量が小さいときには、量子化ステップサイズを小さくして生成する符号量を増加させることにより、伝送速度に応じた符号量を生成することができる。
【０００４】
ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）−２の場合には、量子化ステップサイズは量子化スケール（ｑｕａｎｔｉｓｅｒ＿ｓｃａｌｅ）と量子化マトリクス（ｑｕａｎｔｉｓｅｒ＿ｍａｔｒｉｘ）の２つのパラメータにより決定される。量子化の際に、直交変換係数は量子化マトリクス（ｑｕａｎｔｉｓｅｒ＿ｍａｔｒｉｘ）と量子化スケール（ｑｕａｎｔｉｓｅｒ＿ｓｃａｌｅ）を用いて例えば次の式（１）に示すように量子化係数が算出される。
量子化係数（ｕ，ｖ）
＝（直交変換係数（ｕ，ｖ）×８÷ｑｕａｎｔｉｓｅｒ＿ｍａｔｒｉｘ（ｕ，ｖ）
＋ｒ）／／ｑｕａｎｔｉｓｅｒ＿ｓｃａｌｅ                            （１）
ここで、ｕ，ｖは０≦ｕ，ｖ≦７となる整数、ｒは整数、／／は除算後、小数点以下を四捨五入する処理を示す。
【０００５】
量子化ステップサイズの変更は、量子化マトリクスの数値を固定して量子化スケールを変更する方法が広く用いられているが、画像データの空間周波分布に応じて量子化マトリクスを変更する方法も報告されている。例えば、特許文献１では、画像データの高周波数成分を検出し、この検出結果を用いて量子化マトリクスを変更させている。
【０００６】
【非特許文献１】中島康之、尾高敏則、田原勝己、「３−２  ビデオ圧縮」、テレビジョン学会誌、１９９５年、Ｖｏｌ．４９，ＮＯ．４、ｐ４３５−４６６
【特許文献１】特開平１１−２３４６６９号公報（段落００２６，００２７）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来の画像符号化装置は以上のように構成されているので、量子化スケールの変更によって符号量を制御する方法は必ずしも良好な画質が得られるとは限らず、例えば量子化スケールを大きくした場合には、画質との関連が高い低周波数成分の量子化精度も低下するために、主観画質が著しく劣化する恐れがあるという課題があった。
【０００８】
また、特許文献１では、画像の空間周波数分布に応じて量子化マトリクスを変更することにより、低周波数成分の量子化精度の低下に起因する主観画質の劣化を抑えることができるが、量子化マトリクスを変更することによる符号化特性の変化、すなわち量子化係数の適切なスキャン順序の変化やＶＬＣテーブルの適正値の変化まで考慮されていないために、圧縮率を十分に向上することができないという課題があった。
【０００９】
この発明は上記のような課題を解決するためになされたもので、主観画質を著しく劣化させることなく、圧縮率を向上することができる画像符号化装置及び符号化パラメータ算出プログラムを得ることを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係る画像符号化装置は、画像データを直交変換して直交変換係数を出力する直交変換部と、出力された上記直交変換係数の各周波数毎の統計情報を算出する直交変換係数統計情報算出部と、算出された上記直交変換係数の各周波数毎の統計情報に基づき、量子化及び符号化の際に使用する符号化パラメータを算出する符号化パラメータ制御部とを備えたものである。
【発明の効果】
【００１１】
この発明により、主観画質を著しく劣化させることなく、圧縮率を向上することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１２】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１による画像符号化装置の構成を示すブロック図である。この画像符号化装置は、フレームメモリ１、減算部２、スイッチ３、直交変換部４、直交変換係数統計情報算出部５、符号化パラメータ制御部６、量子化部７、ＶＬＣ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）部８、送信バッファ９、逆量子化部１０、逆直交変換部１１、加算部１２、スイッチ１３、フレームメモリ１４及び動き補償部１５を備えている。
【００１３】
図１において、フレームメモリ１は入力した画像データ１０１を一時的に蓄積し、直交変換部４はフレームメモリ１に蓄積された画像データ１０１、又は減算部２により生成された画像データ１０１と動き補償部１５から出力される予測参照画像データ１１５との差分である差分データ１１６を直交変換して直交変換係数１０２を出力する。
【００１４】
直交変換係数統計情報算出部５は直交変換部４より出力された直交変換係数１０２を入力し直交変換係数の各周波数毎の統計情報１０３を算出し、符号化パラメータ制御部６は直交変換係数統計情報算出部５により算出された直交変換係数の各周波数毎の統計情報１０３に基づき、量子化及び可変長符号化の際に使用する適正な符号化パラメータ１０４を算出する。
【００１５】
量子化部７は、符号化パラメータ制御部６により算出された符号化パラメータ１０４に基づき、直交変換部４より出力された直交変換係数１０２を量子化して量子化された直交変換係数である量子化係数１０５を出力する。ＶＬＣ部８は、符号化パラメータ制御部６により算出された符号化パラメータ１０４に基づき、量子化係数１０５や符号化関連情報を可変長符号化して符号化データ１０６を出力する。送信バッファ９はＶＬＣ部８から出力される符号化ビット列１０６を一時的に蓄積して外部に出力する。
【００１６】
逆量子化部１０は、符号化パラメータ制御部６により算出された符号化パラメータ１０４に基づき、量子化部７から出力される量子化係数１０５を逆量子化して直交変換係数１１１を出力し、逆直交変換部１１は逆量子化された直交変換係数１１１に対して逆直交変換を行い画像データ１１２を復元する。フレームメモリ１４は逆直交変換部１１から出力される画像データ１１２又は加算部１２により生成された逆直交変換部１１からの画像データ１１２と動き補償部１５から出力される予測参照画像データ１１５とを加算した加算データ１１３を一時的に蓄積し、動き補償部１５はフレームメモリ１４に蓄積された参照画像データ１１４を用いて以降に符号化する画像データ１０１のための予測参照画像データ１１５を生成する。
【００１７】
図２は符号化パラメータ制御部６の内部構成を示すブロック図である。この符号化パラメータ制御部６は、量子化マトリクス算出部２１、量子化係数期待値算出部２２、スキャン順序算出部２３、ＶＬＣテーブル算出部２４、量子化スケール算出部２５及び符号化パラメータ設定部２６を備えている。
【００１８】
図２において、量子化マトリクス算出部２１は、直交変換係数統計情報算出部５により算出された直交変換係数の各周波数毎の統計情報１０３に基づき、適正な量子化マトリクス１２１を算出する。量子化係数期待値算出部２２は、直交変換係数の各周波数毎の統計情報１０３と量子化マトリクス算出部２１により算出された量子化マトリクス１２１に基づき、量子化後の直交変換係数である量子化係数の期待値１２２を算出する。スキャン順序算出部２３は、量子化係数期待値算出部２２により算出された量子化係数の期待値１２２又は直交変換係数の各周波数毎の統計情報１０３に基づき適正なスキャン順序１２３を算出すると共に、算出したスキャン順序１２３により並び替えられた量子化係数の期待値１２４を出力する。
【００１９】
ＶＬＣテーブル算出部２４は、スキャン順序に並び替えられた量子化係数の期待値１２４又は直交変換係数の各周波数毎の統計情報１０３に基づき、適正なＶＬＣテーブル１２５を算出すると共に、算出したＶＬＣテーブル１２５を使用して可変長符号化することにより符号量の期待値１２６を算出する。量子化スケール算出部２５は、符号量の期待値１２６又は直交変換係数の各周波数毎の統計情報１０３に基づき適正な量子化スケール１２７を算出する。符号化パラメータ設定部２６は算出された量子化マトリクス１２１、スキャン順序１２３、ＶＬＣテーブル１２５及び量子化スケール１２７を、それぞれ適正なタイミングで適正な符号化パラメータ１０４として設定して量子化部７、ＶＬＣ部８及び逆量子化部１０に出力する。
【００２０】
次に動作について説明する。
図１において、入力された画像データ１０１はフレームメモリ１に蓄積される。フレームメモリ１に蓄積された画像データ１０１の中から符号化順序に応じた１フレームが選択されて直交変換部４に出力される。直交変換部４の入力は、フレームメモリ１から出力される画像データ１０１か、又は減算部２により生成された画像データ１０１と動き補償部１５で生成される予測参照画像データ１１５との差分である差分データ１１６のいずれかとなる。直交変換部４は入力された画像データ１０１又は差分データ１１６に対して直交変換を行い直交変換係数１０２を出力する。
【００２１】
量子化部７は、符号化パラメータ制御部６から出力された符号化パラメータ１０４、すなわち量子化マトリクス１２１と量子化スケール１２７に基づき、直交変換部４から出力された直交変換係数１０２を量子化して量子化後の直交変換係数である量子化係数１０５を出力する。ＶＬＣ部４は、符号化パラメータ制御部６から出力された符号化パラメータ１０５、すなわち量子化マトリクス１２１、スキャン順序１２３、ＶＬＣテーブル１２５及び量子化スケール１２７を入力し、入力したスキャン順序１２３とＶＬＣテーブル１２５に基づき、量子化部７からの量子化係数１０５と、ヘッダとして付加された量子化マトリクス１２１、スキャン順序１２３、ＶＬＣテーブル１２５及び量子化スケール１２７等の符号化関連情報を可変長符号化する。送信バッファ９は可変長符号化された符号化ビット列１０６を蓄積する。
【００２２】
逆量子化部１０は、量子化部７と同じステップサイズ、すなわち、符号化パラメータ制御部６から出力された符号化パラメータ１０４である量子化マトリクス１２１及び量子化スケール１２７に基づき、量子化部７から出力された量子化係数１０５を逆量子化して直交変換係数１１１を出力する。逆直交変換部１１は逆量子化された直交変換係数１１１に対して逆直交変換を行って画像データ１１２を生成する。この画像データ１１２は、フレームメモリ１４に蓄積されるか、又は加算部１２により動き補償部１５で生成される予測参照画像データ１１５と加算されて加算データ１１３としてフレームメモリ１４に蓄積される。動き補償部１５は、以降に符号化する画像データ１０１とフレームメモリ１４に蓄積された参照画像データ１１４により予測参照画像データ１１５を生成する。
【００２３】
直交変換係数統計情報算出部５は、直交変換部４から出力された直交変換係数１０２を入力し、Ｎピクチャ（Ｎ：任意の実数）期間又はＮスライス期間の直交変換係数の各周波数毎の統計情報１０３を算出して符号化パラメータ制御部６に出力する。算出する直交変換係数の各周波数毎の統計情報１０３の種類としては、例えば、Ｎピクチャ期間又はＮスライス期間の直交変換係数の各周波数毎の平均値、最大値、最小値、分散値、偏差値、中間値、合計値等のいずれかである。
【００２４】
図２において、符号化パラメータ制御部６の量子化マトリクス算出部２１は、直交変換係数統計情報算出部５から出力されたＮピクチャ期間又はＮスライス期間の直交変換係数の各周波数毎の統計情報１０３に基づき、入力した画像データ１０１に適した量子化マトリクス１２１を算出する。
【００２５】
次に量子化マトリクス算出部２１による量子化マトリクス１２１の算出式の例を次の式（２）に示す。
ｑｕａｎｔｉｓｅｒ＿ｍａｔｒｉｘ（ｕ，ｖ）
＝正規化［ｆ（ｕ，ｖ）＋｜Ｋ（ｕ，ｖ）｜×ｇ（ｕ，ｖ）］                  （２）
ここで、ｕ，ｖは０≦ｕ，ｖ≦７となる整数、Ｋ（ｕ，ｖ）は過去Ｎピクチャ（Ｎ：任意の実数）期間又はＮスライス期間に集計した直交変換係数の各周波数毎の統計情報１０３としての平均値で、ｆ（ｕ，ｖ）、ｇ（ｕ，ｖ）は係数セットである。正規化［＊］は量子化マトリクス１２１が所定の形式になるように数値を正規化するための変換関数を表す。例えば、ＭＰＥＧ−２では量子化マトリクス１２１の成分は１から２５５の範囲の整数値であり、イントラ符号化の場合はｑｕａｎｔｉｓｅｒ＿ｍａｔｒｉｘ（０，０）＝８というように定義されているため、それらの定義に合致するように数値を正規化する。すなわち、算出した量子化マトリクス１２１のｑｕａｎｔｉｓｅｒ＿ｍａｔｒｉｘ（０，０）の値が８でない場合には、８になるようにｑｕａｎｔｉｓｅｒ＿ｍａｔｒｉｘ（ｕ，ｖ）の値全体に所定の実数を乗算したり、量子化マトリクス１２１を１から２５５の範囲になるようにクリッピングする。
【００２６】
上記式（２）におけるｆ（ｕ，ｖ）とｇ（ｕ，ｖ）は人間の視覚周波数特性や画像符号化特性やユーザの判断等に応じて任意に設定された係数セットである。
図３は係数セットｆ（ｕ，ｖ）とｇ（ｕ，ｖ）の具体例を示す図である。図３（ａ）に示すｆ（ｕ，ｖ）はＭＰＥＧ−２における標準のマトリクス（デフォルトマトリクス）であり、人間の視覚周波数特性等を考慮して定められたものである。図３（ｂ）に示すｇ（ｕ，ｖ）は実験データをもとに導出したもので、低周波成分は小さな値で高周波成分は大きな値となる傾斜型の係数セットある。このように、式（２）に示す「ｆ（ｕ，ｖ）＋｜Ｋ（ｕ，ｖ）｜×ｇ（ｕ，ｖ）」は、標準のマトリクスｆ（ｕ，ｖ）を、過去Ｎピクチャ（Ｎ：任意の実数）期間又はＮスライス期間に集計した直交変換係数の各周波数毎の統計情報１０３としての平均値Ｋ（ｕ，ｖ）と実験データをもとに導出した係数セットｇ（ｕ，ｖ）を乗算した値で補正していることを意味している。
【００２７】
上記式（２）より算出される量子化マトリクス１２１を用いると、電力が集中する周波数成分の｜Ｋ（ｕ，ｖ）｜の値が大きくなり、電力が集中する周波数成分において量子化精度が荒くなるため、特定の周波数成分で膨大な符号量が発生することを防ぐことができる。さらに、ｇ（ｕ，ｖ）に図３（ｂ）に示すような傾斜型の係数セットを用いることにより、上記式（２）において、低周波成分は｜Ｋ（ｕ，ｖ）｜の値の変化に影響を受けにくく、高周波成分になるほど｜Ｋ（ｕ，ｖ）｜の値の変化に影響を受けやすくなり、主観画質に大きく影響する低周波数成分では高い量子化精度を維持することができ、優先度の低い高周波数成分から順に量子化精度を落としていくことができる。
【００２８】
上記式（２）では、Ｋ（ｕ，ｖ）として、過去Ｎピクチャ期間又はＮスライス期間に算出した直交変換係数の各周波数毎の平均値を用いているが、他の統計値で代用することもできる。例えば、これから符号化するピクチャの直交変換係数情報が事前に得られる場合には、それらの情報を用いても良い。また、平均値ではなく、最大値、最小値、分散値、偏差値、中間値、合計値等のいずれかを用いても良い。
【００２９】
また、この例では直交変換係数１０２の集計単位として、直交変換係数１０２の周波数を６４（８×８）エリアに区分しているが、符号化方式や装置構成に応じた任意のエリア区分として構わない。
【００３０】
次に量子化マトリクスの算出式の別の例を次の式（３）に示す。
ｑｕａｎｔｉｓｅｒ＿ｍａｔｒｉｘ（ｕ，ｖ）
＝正規化［ｆ（ｕ，ｖ）＋ｋ×ｇ（ｕ，ｖ）］                              （３）
ここで、ｋは直交変換係数の各周波数毎の統計情報１０３を用いて算出される実数である。ｋには、例えば、各周波数毎に算出した統計情報１０３の中の特定の周波数成分に比例する値や、低周波数成分から高周波成分への統計情報１０３の傾きに比例する値を設定する。上記式（３）を用いる場合、一部の周波数の統計情報１０３しか用いないために、統計情報の集計や演算量を抑えることができるという利点がある。
【００３１】
図２において、量子化係数期待値算出部２２は、直交変換係数の各周波数毎の統計情報１０３と量子化マトリクス算出部２１により算出された量子化マトリクス１２１に基づき、量子化係数の期待値１２２を算出する。
次に量子化係数の期待値１２２の算出式の例を次の式（４）に示す。
量子化係数の期待値（ｕ，ｖ）
＝（Ｋ（ｕ，ｖ）×８÷ｑｕａｎｔｉｓｅｒ＿ｍａｔｒｉｘ（ｕ，ｖ）＋ｒ）
／／目標ｑｕａｎｔｉｓｅｒ＿ｓｃａｌｅ                                （４）
ここで、ｕ，ｖは０≦ｕ，ｖ≦７となる整数、ｒは整数、Ｋ（ｕ，ｖ）は例えば過去Ｎピクチャ（Ｎ：任意の実数）期間又はＮスライス期間に集計した直交変換係数１０２の各周波数毎の統計情報１０３としての平均値を示す。この平均値は他の統計情報でも代用可能であることは前述のとおりである。目標ｑｕａｎｔｉｓｅｒ＿ｓｃａｌｅには、各ピクチャの符号化において目標とするｑｕａｎｔｉｓｅｒ＿ｓｃａｌｅを設定するが、後述の量子化スケール算出部２５により算出された適正な量子化スケール１２７により補正される。
【００３２】
図２において、スキャン順序算出部２３は量子化係数期待値算出部２２により算出された量子化係数の期待値１２２に基づき適正なスキャン順序１２３を算出する。
図４はＭＰＥＧ−２で規定されている量子化係数１０５のスキャン順序を示す図である。図４（ａ）はジグザグスキャン順序を示し、図４（ｂ）は垂直方向優先スキャン順序を示す。量子化係数１０５は図４（ａ）又は図４（ｂ）に示した番号順に符号化され、符号化ビット列１０６に多重されていく。図４（ａ）と図４（ｂ）のいずれの順序を採用するかは一般に画像符号化装置で任意に設定することができる。ＭＰＥＧ−２ではランレングス（量子化係数１０５をスキャン順序に並べたときに連続するゼロ係数の長さ）が短くなるほど短い可変長符号を割り当てられるようになっているため、画像データ１０１に応じて適正なスキャン順序１２３を選択することにより符号量を削減することができる。
【００３３】
図５はスキャン順序算出部２３が適正なスキャン順序１２３を選択する際の処理を示すフローチャートである。
図６は量子化係数の期待値１２２の水平周波数エリアと垂直周波数エリアの区分の例を示す図である。
図５のステップＳＴ１１において、水平周波数エリアにおける量子化係数の期待値１２２の絶対値和Ｓｕｍ＿Ｈ、垂直周波数エリアにおける量子化係数の期待値１２２の絶対値和Ｓｕｍ＿Ｖを算出する。ここで、各エリアに属する量子化係数の期待値１２２の全部又は一部の絶対値和を算出する。
【００３４】
ステップＳＴ１２において、算出した絶対値和Ｓｕｍ＿ＨとＳｕｍ＿Ｖを比較して、絶対値和Ｓｕｍ＿Ｈが絶対値和Ｓｕｍ＿Ｖよりも大きな場合には、ステップＳＴ１３においてジグザグスキャンを選択し、そうでない場合には、ステップＳＴ１４において垂直方向優先スキャンを選択する。このように、各エリアに属する量子化係数の期待値１２２の全部又は一部の絶対値和を尺度として適正なスキャン順序１２３を算出する。
【００３５】
図７はスキャン順序算出部２３が適正なスキャン順序１２３を選択する際の別の処理を示すフローチャートである。ステップＳＴ２１において、水平周波数エリアにおける量子化係数の期待値１２２の絶対値和Ｓｕｍ＿Ｈを算出する。ステップＳＴ２２において、算出した絶対値和Ｓｕｍ＿Ｈと所定の実数ＴＨを比較して、絶対値和Ｓｕｍ＿Ｈが所定の実数ＴＨよりも大きな場合には、ステップＳＴ２３においてジグザグスキャンを選択し、そうでない場合には、ステップＳＴ２４において垂直方向優先スキャンを選択する。この図７に示すフローチャートの処理は、図５に示すフローチャートの処理よりも低演算量で実現できることが利点である。
【００３６】
また、図５及び図７の方法以外には、各スキャン順序で量子化係数の期待値１２２を整列したときにランレングスの合計値の小さいほうを選択する方法も有効である。
【００３７】
ＭＰＥＧ−２以外の符号化方式において、図４に示す２種類以外のスキャン順序が利用できる場合には、量子化係数の期待値１２２の大きい成分を優先するように適正なスキャン順序１２３を決定することにより符号量の削減を図ることができる。
【００３８】
上記の例では、スキャン順序算出部２３は量子化係数期待値算出部２２により算出された量子化係数の期待値１２２に基づき適正なスキャン順序１２３を算出しているが、スキャン順序算出部２３は、量子化係数の期待値１２２の代りに、直交変換係数の各周波数毎の統計情報１０３、例えば、平均値や最小値に基づき、適正なスキャン順序１２３を算出しても良い。ただし、この場合には、直交変換係数統計情報算出部５は、直交変換係数の各周波数毎の統計情報１０３として、予め規定される符号化パラメータの値の範囲に合致するように適正に補正した値を出力するものとする。
【００３９】
このようにして、スキャン順序算出部２３は、量子化係数期待値算出部２２により算出された量子化係数の期待値１２２又は直交変換係数の各周波数毎の統計情報１０３に基づき適正なスキャン順序１２３を算出すると共に、算出したスキャン順序１２３に基づき並び替えられた量子化係数の期待値１２４をＶＬＣテーブル算出部２４に出力する。
【００４０】
図２において、ＶＬＣテーブル算出部２４はスキャン順序算出部２３によりスキャン順序に並び替えられた量子化係数の期待値１２４に基づき適正なＶＬＣテーブル１２５を算出する。
図８はＶＬＣテーブル算出部２４が適正なＶＬＣテーブル１２５を算出する際の処理を示すフローチャートである。ＭＰＥＧ−２の場合は２種類のＶＬＣテーブルを任意に選択可能であるが、このフローチャートに示す処理を行うことにより、符号化効率の良いＶＬＣテーブル１２５を選択することが可能となる。ここで、ＭＰＥＧ−２で規定されている２種類のＶＬＣテーブルは、比較的発生頻度の高いランレングス及びレベルの組に対して可変長符号を割り当てるＶＬＣテーブルと、高レートでイントラマクロブロックを符号化する場合を想定した分散の大きなランレングス及びレベルの組に対して可変長符号を割り当てるＶＬＣテーブルである。
【００４１】
図８のステップＳＴ３１において、スキャン順序に並び替えられた量子化係数の期待値１２４によりランレングス及びレベルを求める。ステップＳＴ３２において、各ＶＬＣテーブルを用いて並び替えられた量子化係数の期待値１２４を符号化したときの符号量の和を計算する。ステップＳＴ３３において、計算した符号量の和が最小のＶＬＣテーブルを選択して適正なＶＬＣテーブル１２５として出力する。
【００４２】
ＭＰＥＧ−２の場合には、図８に示すように、２種類のＶＬＣテーブルの中から適正なＶＬＣテーブル１２５を選択しているが、ＭＰＥＧ−２以外の場合でＶＬＣテーブルを自由に構築可能な符号化方式の場合には、スキャン順序に並び替えられた量子化係数の期待値１２４によりランレングス及びレベルの組の発生頻度を求め、頻出するランレングス及びレベルの組に対してより短い可変長符号を割り当てるようにＶＬＣテーブルを更新して適正なＶＬＣテーブル１２５として出力しても良い。
【００４３】
上記の例では、ＶＬＣテーブル算出部２４はスキャン順序算出部２３によりスキャン順序に並び替えられた量子化係数の期待値１２４に基づき適正なＶＬＣテーブル１２５を算出しているが、ＶＬＣテーブル算出部２４は、スキャン順序に並び替えられた量子化係数の期待値１２４の代りに、直交変換係数の各周波数毎の統計情報１０３、例えば、平均値や最小値に基づき、適正なＶＬＣテーブル１２５を算出しても良い。ただし、この場合には、直交変換係数統計情報算出部５は、直交変換係数の各周波数毎の統計情報１０３として、予め規定される符号化パラメータの値の範囲に合致するように適正に補正した値を出力するものとし、ＶＬＣテーブル算出部２４は、直交変換係数の各周波数毎の統計情報１０３の周波数分布に基づき符号量が小さくなるようなスキャン順序を決定してから適正なＶＬＣテーブル１２５を算出するものとする。
【００４４】
このようにして、ＶＬＣテーブル算出部２４は、スキャン順序算出部２３によりスキャン順序に並び替えられた量子化係数の期待値１２４又は直交変換係数の各周波数毎の統計情報１０３に基づき、適正なＶＬＣテーブル１２５を算出すると共に、算出したＶＬＣテーブル１２５を使用してスキャン順序に並び替えられた量子化係数の期待値１２４に可変長符号を割り当てることにより符号量の期待値１２６を算出して量子化スケール算出部２５に出力する。
【００４５】
図２において、量子化スケール算出部２５はＶＬＣテーブル算出部２４により算出された符号量の期待値１２６に基づき適正な量子化スケール１２７を算出する。すなわち、量子化スケール算出部２５は、符号量の期待値１２６が大きい場合には、設定されている量子化スケールが大きくなるように補正し、符号量の期待値１２６が小さい場合には、設定されている量子化スケールが小さくなるように補正することにより、発生する符号量の安定化を図ることができ画質の向上を図ることができる。このように発生する符号量の安定化を図ることにより、例えば符号量がビットレートよりも少ない場合にスタッフィングビットの挿入による符号量の浪費や、送信バッファ９に蓄積されている符号化ビット列１０６の符号量の変動による量子化精度の不均一化を防止できる。
【００４６】
算出された適正な量子化スケール１２７は、符号化パラメータ設定部２６に出力されると共に、量子化係数期待値算出部２２にも出力され、算出された適正な量子化スケール１２７により、量子化係数期待値算出部２２が上記式（４）を使用して量子化係数の期待値１２２を算出する際の目標ｑｕａｎｔｉｓｅｒ＿ｓｃａｌｅが補正される。
【００４７】
上記の例では、量子化スケール算出部２５はＶＬＣテーブル算出部２４により算出された符号量の期待値１２６に基づき適正な量子化スケール１２７を算出しているが、量子化スケール算出部２５は、ＶＬＣテーブル算出部２４により算出された符号量の期待値１２６の代りに、直交変換係数の各周波数毎の統計情報１０３、例えば、平均値や最小値に基づき、適正な量子化スケール１２７を算出しても良い。ただし、この場合には、直交変換係数統計情報算出部５は、直交変換係数の各周波数毎の統計情報１０３として、予め規定される符号化パラメータの値の範囲に合致するように適正に補正した値を出力するものとし、量子化スケール算出部２５は、直交変換係数の各周波数毎の統計情報１０３の周波数分布に基づき符号量が小さくなるような適正なスキャン順序及びＶＬＣテーブルを算出し、算出したＶＬＣテーブル１２５を使用して符号量の期待値を算出してから適正な量子化スケール１２７を算出するものとする。
【００４８】
図２において、符号化パラメータ設定部２６は、算出された適正な量子化マトリクス１２１、適正なスキャン順序１２３、適正なＶＬＣテーブル１２５及び適正な量子化スケール１２７を、それぞれ適切なタイミングで適切な符号化パラメータ１０４として設定し、適正な量子化マトリクス１２１及び適正な量子化スケール１２７を量子化部７と逆量子部１０に出力し、適正な量子化マトリクス１２１、適正なスキャン順序１２３、適正なＶＬＣテーブル１２５及び適正な量子化スケール１２７をＶＬＣ部８に出力する。
【００４９】
図１において、量子化部７は、符号化パラメータ制御部６から出力された適正な符号化パラメータ１０４、すなわち適正な量子化マトリクス１２１及び適正な量子化スケール１２７に基づき、直交変換部４から出力された直交変換係数１０２を量子化して量子化後の直交変換係数である量子化係数１０５を出力する。ＶＬＣ部８は、符号化パラメータ制御部６から出力された適正な符号化パラメータ１０４、すなわち適正な量子化マトリクス１２１、適正なスキャン順序１２３、適正なＶＬＣテーブル１２５及び適正な量子化スケール１２７を入力し、入力した適正なスキャン順序１２３と適正なＶＬＣテーブル１２５に基づき、量子化部７からの量子化係数１０３と、ヘッダとして付加された量子化マトリクス１２１とスキャン順序１２３とＶＬＣテーブル１２５と量子化スケール１２７等の符号化関連情報を可変長符号化する。送信バッファ９は可変長符号化された符号化ビット列１０６を蓄積する。
【００５０】
以上のように、この実施の形態１によれば、直交変換係数統計情報算出部５が直交変換係数の各周波数毎の統計情報１０３を算出し、符号化パラメータ制御部６が算出された直交変換係数の各周波数毎の統計情報１０３に基づき、適正な符号化パラメータ１０４を算出し、量子化部７及びＶＬＣ部８が算出された適正な符号化パラメータ１０４を使用して量子化及び符号化を行うことにより、主観画質を著しく劣化させることなく、圧縮率を向上することができるという効果が得られる。
【００５１】
また、この実施の形態１によれば、量子化マトリクス算出部２１が直交変換係数の各周波数毎の統計情報１０３に基づき適正な量子化マトリクス１２１を算出することにより、電力が集中する周波数成分において量子化精度が荒くなるため、特定の周波数成分で膨大な符号量が発生することを防ぐことができ、圧縮率の向上を実現することができると共に、その演算において低周波数成分の量子化精度を維持するような傾斜型の係数セットを用いることで、主観画質の劣化を抑えながら、圧縮率の向上を図ることができるという効果が得られる。
【００５２】
さらに、この実施の形態１によれば、量子化係数期待値算出部２２が算出された量子化マトリクス１２１により量子化係数の期待値１２２を算出し、スキャン順序算出部２３が量子化係数の期待値１２２又は直交変換係数の統計情報１０３に基づき量子化係数の適正なスキャン順序１２３を算出することにより、冗長な符号量の発生を抑制し、圧縮率を向上することができるという効果が得られる。
【００５３】
さらに、この実施の形態１によれば、ＶＬＣテーブル算出部２４がスキャン順序に並び替えられた量子化係数の期待値１２４又は直交変換係数の各周波数毎の統計情報１０３を参照して適正なＶＬＣテーブル１２５を算出することにより、画像データ１０１に適した可変長符号を割り当てることが可能となり、圧縮率を飛躍的に向上することができるという効果が得られる。
【００５４】
さらに、この実施の形態１によれば、量子化スケール算出部２５が、スキャン順序に並び替えられた量子化係数の期待値１２４を可変長符号化することで得られる符号量の期待値１２６又は直交変換係数の統計情報１０３に基づき、適正な量子化スケール１２７を算出することにより、発生する符号量の安定化を図ることができ、圧縮率を上げた場合にも安定した画質を得ることができるという効果が得られる。
【００５５】
実施の形態２．
図９はこの発明の実施の形態２による画像符号化装置の構成を示すブロック図である。この画像符号化装置は、上記実施の形態１の図１と比較して、周波数解析部１６と図１に示す直交変換係数統計情報算出部５の代りに直交変換係数統計情報算出部１７を備えたもので、その他の構成は図１と同じである。
また、この実施の形態２における符号化パラメータ制御部６の内部構成を示すブロック図は、上記実施の形態１の図２と同じである。
【００５６】
次に動作について説明する。
周波数解析部１６は、フレームメモリ１に蓄積されている画像データ１０１に対して、離散フーリエ変換や離散コサイン変換、あるいは帯域通過フィルタ等の手段を用いて周波数解析し、今後、量子化され符号化される直交変換係数の周波数分布情報１３１を事前に算出して直交変換係数統計情報算出部１７に出力する。
【００５７】
直交変換係数統計情報算出部１７は、直交変換部４から出力された直交変換係数１０２と周波数解析部１６により算出された直交変換係数の周波数分布情報１３１を入力し、入力した直交変換部４からの直交変換係数１０２に基づき、実施の形態１と同様にして、過去Ｎピクチャ（Ｎ：任意の実数）期間又はＮスライス期間に集計した直交変換係数の各周波数毎の統計情報１０３を算出すると共に、入力した周波数解析部１６により算出された今後量子化され符号化される直交変換係数の周波数分布情報１３１に基づき、算出した直交変換係数の各周波数毎の統計情報１０３を補正して、直交変換係数の各周波数毎の補正した統計情報１３２を出力する。
【００５８】
符号化パラメータ制御部６は、直交変換係数の各周波数毎の補正した統計情報１３２に基づき、上記実施の形態１と同様にして適正な符号化パラメータ１０４を算出して、量子化部７、ＶＬＣ部８及び逆量子化部１０に出力する。その他の動作は上記実施の形態１と同様である。
【００５９】
以上のように、この実施の形態２によれば、直交変換係数統計情報算出部１７が、過去Ｎピクチャ（Ｎ：任意の実数）期間又はＮスライス期間に集計した直交変換係数の各周波数毎の統計情報１０３を、周波数解析部１６により算出された今後の直交変換係数の周波数分布情報１３１に基づき補正し、符号化パラメータ制御部６が直交変換係数の各周波数毎の補正した統計情報１３２に基づき、適正な符号化パラメータ１０４を算出することにより、過去Ｎピクチャ期間又はＮスライス期間に集計した直交変換係数の各周波数毎の統計情報１０３のみを使用して符号化パラメータ１０４を算出することと比較して、さらに適正な符号化パラメータ１０４を算出することができ、圧縮率を上げた場合も安定した画質を得ることができるという効果が得られる。
【００６０】
なお、上記実施の形態１及び上記実施の形態２による画像符号化装置は、コンピュータと、このコンピュータを上記実施の形態１及び上記実施の形態２における各手段として機能させるための符号化パラメータ算出プログラムにより実現することも可能である。
【図面の簡単な説明】
【００６１】
【図１】この発明の実施の形態１による画像符号化装置の構成を示すブロック図である。
【図２】この発明の実施の形態１による画像符号化装置の符号化パラメータ制御部の内部構成を示すブロック図である。
【図３】この発明の実施の形態１による画像符号化装置の符号化パラメータ制御部が量子化マトリクスの算出に用いる係数セットの具体例を示す図である。
【図４】ＭＰＥＧ−２で規定されている量子化係数のスキャン順序を示す図である。
【図５】この発明の実施の形態１による画像符号化装置の符号化パラメータ制御部が適正なスキャン順序を選択する際の処理を示すフローチャートである。
【図６】この発明の実施の形態１による画像符号化装置の符号化パラメータ制御部が適正なスキャン順序を選択する際の量子化係数の期待値の水平周波数エリアと垂直周波数エリアの区分の例を示す図である。
【図７】この発明の実施の形態１による画像符号化装置の符号化パラメータ制御部が適正なスキャン順序を選択する際の別の処理を示すフローチャートである。
【図８】この発明の実施の形態１による画像符号化装置の符号化パラメータ制御部が適正なＶＬＣテーブルを算出する際の処理を示すフローチャートである。
【図９】この発明の実施の形態２による画像符号化装置の構成を示すブロック図である。
【符号の説明】
【００６２】
１  フレームメモリ、２  減算部、３  スイッチ、４  直交変換部、５  直交変換係数統計情報算出部、６  符号化パラメータ制御部、７  量子化部、８  ＶＬＣ部、９  送信バッファ、１０  逆量子化部、１１  逆直交変換部、１２  加算部、１３  スイッチ、１４  フレームメモリ、１５  動き補償部、１６  周波数解析部、１７  直交変換係数統計情報算出部、２１  量子化マトリクス算出部、２２  量子化係数期待値算出部、２３  スキャン順序算出部、２４  ＶＬＣテーブル算出部、２５  量子化スケール算出部、２６  符号化パラメータ設定部、１０１  画像データ、１０２  直交変換係数、１０３  直交変換係数の各周波数毎の統計情報、１０４  符号化パラメータ、１０５  量子化係数、１０６  符号化ビット列、１１１  直交変換係数、１１２  画像データ、１１３  加算データ、１１４  参照画像データ、１１５  予測参照画像データ、１２１  量子化マトリクス、１２２  量子化係数の期待値、１２３  スキャン順序、１２４  スキャン順序に並び替えられた量子化係数の期待値、１２５  ＶＬＣテーブル、１２６  符号量の期待値、１２７  量子化スケール、１３１  直交変換係数の周波数分布情報、１３２  直交変換係数の各周波数毎の補正した統計情報。
【図１】
2006100993.tif 000003
【図２】
2006100993.tif 000004
【図３】
2006100993.tif 000005
【図４】
2006100993.tif 000006
【図５】
2006100993.tif 000007
【図６】
2006100993.tif 000008
【図７】
2006100993.tif 000009
【図８】
2006100993.tif 000010
【図９】
2006100993.tif 000011