(57)【要約】【課題】エントロピー符号化の処理負荷を軽減する。【解決手段】画像符号化装置１において、符号化対象予測部１４は、ビットプレーン毎の量子化係数Ｄ１４に基づいて、例えばそのビットプレーンの符号化で新規にｓｉｇｎｉｆｉｃａｎｔとなる量子化係数の数を全てのコードブロックの各ビットプレーンについて計数して特徴量とし、この特徴量に基づいてビットプレーン毎に発生する推定符号量を求めて所定の順序で順次加算する。そして、初期目標符号量に達した時点で加算を停止し、それまでに加算されたビットプレーンの情報を符号化対象情報Ｄ１５としてエントロピー符号化部１５に供給する。エントロピー符号化部１５は、ビットプレーン毎の量子化係数Ｄ１４のうち、符号化対象情報Ｄ１５で示されるビットプレーンの量子化係数Ｄ１４のみを３つの符号化パスで処理し、それ以外のビットプレーンを切り捨てる。【選択図】  図１
2004186902.tif 000002
【特許請求の範囲】
【請求項１】
入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施すフィルタリング手段と、
上記フィルタリング手段によって生成されたサブバンドを分割し、所定の大きさのコードブロックを生成するコードブロック生成手段と、
上記コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成するビットプレーン生成手段と、
上記ビットプレーン毎の推定符号量を求める符号量推定手段と、
上記推定符号量に基づいて、符号化対象となる符号化対象ビットプレーンを予測する符号化対象予測手段と、
上記符号化対象ビットプレーンについて、上記ビットプレーン毎にビットモデリングを行うビットモデリング手段と、
上記符号化対象ビットプレーンについて、上記ビットプレーン毎に符号化パスを生成する符号化パス生成手段と、
上記符号化パス生成手段によって生成された符号化パス内で算術符号化を行う算術符号化手段と、
上記算術符号化手段によって生成された算術符号を用いて符号化コードストリームを生成する符号化コードストリーム生成手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
上記符号量推定手段は、そのビットプレーンにおける値が非０であり、それより上位のビットプレーンにおける値が０である係数の数を上記ビットプレーン毎に計数して第１の計数値を求め、該第１の計数値に基づいて上記推定符号量を求めることを特徴とする請求項１記載の画像符号化装置。
【請求項３】
上記符号量推定手段は、それより上位の少なくとも１つのビットプレーンにおける値が非０である係数の数を上記ビットプレーン毎に計数して第２の計数値を求め、上記第１の計数値に第１の定数を乗算した値と、上記第２の計数値に第２の定数を乗算した値とを加算して、上記推定符号量を求めることを特徴とする請求項２記載の画像符号化装置。
【請求項４】
上記符号量推定手段は、上記第２の計数値を上記コードブロックの全係数の数で正規化して用いることを特徴とする請求項３記載の画像符号化装置。
【請求項５】
上記符号量推定手段は、そのビットプレーン又はそれより上位の少なくとも１つのビットプレーンにおける係数値が非０である係数の数を上記ビットプレーン毎に計数し、その数に基づいて上記推定符号量を求めることを特徴とする請求項１記載の画像符号化装置。
【請求項６】
上記符号化対象予測手段は、上記入力画像の全てのコードブロックで最もビット位置の高いビットプレーンから上記最下位ビットのビットプレーンの順に上記推定符号量を加算し、所定の目標符号量を超えた場合に加算を停止して、それまでに加算されたビットプレーンを上記符号化対象ビットプレーンとすることを特徴とする請求項１記載の画像符号化装置。
【請求項７】
上記符号化対象予測手段は、同じビット位置のビットプレーンについては、最高域のサブバンドから最低域のサブバンドの順に上記推定符号量を加算することを特徴とする請求項６記載の画像符号化装置。
【請求項８】
上記符号化対象予測手段は、同じビット位置のビットプレーンについては、輝度情報のコンポーネントから色差情報のコンポーネントの順に上記推定符号量を加算することを特徴とする請求項６記載の画像符号化装置。
【請求項９】
上記符号化対象予測手段は、各ビットプレーンの符号により削減される削減歪み量を算出し、上記推定符号量当たりの上記削減歪み量が大きいビットプレーンから小さいビットプレーンの順に上記推定符号量を加算し、所定の目標符号量を超えた場合に加算を停止して、それまでに加算されたビットプレーンを上記符号化対象ビットプレーンとすることを特徴とする請求項１記載の画像符号化装置。
【請求項１０】
入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施すフィルタリング手段と、
上記フィルタリング手段によって生成されたサブバンドを分割し、所定の大きさのコードブロックを生成するコードブロック生成手段と、
上記コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成するビットプレーン生成手段と、
符号化パス毎の推定符号量を求める符号量推定手段と、
上記符号化パス毎の推定符号量に基づいて、符号化対象となる符号化対象符号化パスを予測する符号化対象予測手段と、
上記ビットプレーン毎にビットモデリングを行うビットモデリング手段と、
上記ビットプレーン毎に符号化パスを生成する符号化パス生成手段と、
上記符号化パスのうち、上記符号化対象符号化パスについて、符号化パス内で算術符号化を行う算術符号化手段と、
上記算術符号化手段によって生成された算術符号を用いて符号化コードストリームを生成する符号化コードストリーム生成手段と
を備えることを特徴とする画像符号化装置。
【請求項１１】
入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施すフィルタリング工程と、
上記フィルタリング工程にて生成されたサブバンドを分割し、所定の大きさのコードブロックを生成するコードブロック生成工程と、
上記コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成するビットプレーン生成工程と、
上記ビットプレーン毎の推定符号量を求める符号量推定工程と、
上記推定符号量に基づいて、符号化対象となる符号化対象ビットプレーンを予測する符号化対象予測工程と、
上記符号化対象ビットプレーンについて、上記ビットプレーン毎にビットモデリングを行うビットモデリング工程と、
上記符号化対象ビットプレーンについて、上記ビットプレーン毎に符号化パスを生成する符号化パス生成工程と、
上記符号化パス生成手段によって生成された符号化パス内で算術符号化を行う算術符号化工程と、
上記算術符号化工程にて生成された算術符号を用いて符号化コードストリームを生成する符号化コードストリーム生成工程と
を有することを特徴とする画像符号化方法。
【請求項１２】
入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施すフィルタリング工程と、
上記フィルタリング工程にて生成されたサブバンドを分割し、所定の大きさのコードブロックを生成するコードブロック生成工程と、
上記コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成するビットプレーン生成工程と、
符号化パス毎の推定符号量を求める符号量推定工程と、
上記符号化パス毎の推定符号量に基づいて、符号化対象となる符号化対象符号化パスを予測する符号化対象予測工程と、
上記ビットプレーン毎にビットモデリングを行うビットモデリング工程と、
上記ビットプレーン毎に符号化パスを生成する符号化パス生成工程と、
上記符号化パスのうち、上記符号化対象符号化パスについて、符号化パス内で算術符号化を行う算術符号化工程と、
上記算術符号化工程にて生成された算術符号を用いて符号化コードストリームを生成する符号化コードストリーム生成工程と
を有することを特徴とする画像符号化方法。
【請求項１３】
所定の処理をコンピュータに実行させるプログラムにおいて、
入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施すフィルタリング工程と、
上記フィルタリング工程にて生成されたサブバンドを分割し、所定の大きさのコードブロックを生成するコードブロック生成工程と、
上記コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成するビットプレーン生成工程と、
上記ビットプレーン毎の推定符号量を求める符号量推定工程と、
上記推定符号量に基づいて、符号化対象となる符号化対象ビットプレーンを予測する符号化対象予測工程と、
上記符号化対象ビットプレーンについて、上記ビットプレーン毎にビットモデリングを行うビットモデリング工程と、
上記符号化対象ビットプレーンについて、上記ビットプレーン毎に符号化パスを生成する符号化パス生成工程と、
上記符号化パス生成手段によって生成された符号化パス内で算術符号化を行う算術符号化工程と、
上記算術符号化工程にて生成された算術符号を用いて符号化コードストリームを生成する符号化コードストリーム生成工程と
を有することを特徴とするプログラム。
【請求項１４】
所定の処理をコンピュータに実行させるプログラムにおいて、
入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施すフィルタリング工程と、
上記フィルタリング工程にて生成されたサブバンドを分割し、所定の大きさのコードブロックを生成するコードブロック生成工程と、
上記コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成するビットプレーン生成工程と、
符号化パス毎の推定符号量を求める符号量推定工程と、
上記符号化パス毎の推定符号量に基づいて、符号化対象となる符号化対象符号化パスを予測する符号化対象予測工程と、
上記ビットプレーン毎にビットモデリングを行うビットモデリング工程と、
上記ビットプレーン毎に符号化パスを生成する符号化パス生成工程と、
上記符号化パスのうち、上記符号化対象符号化パスについて、符号化パス内で算術符号化を行う算術符号化工程と、
上記算術符号化工程にて生成された算術符号を用いて符号化コードストリームを生成する符号化コードストリーム生成工程と
を有することを特徴とするプログラム。
【請求項１５】
所定の処理をコンピュータに実行させるプログラムが記録されたコンピュータ読み取り可能な記録媒体において、
入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施すフィルタリング工程と、
上記フィルタリング工程にて生成されたサブバンドを分割し、所定の大きさのコードブロックを生成するコードブロック生成工程と、
上記コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成するビットプレーン生成工程と、
上記ビットプレーン毎の推定符号量を求める符号量推定工程と、
上記推定符号量に基づいて、符号化対象となる符号化対象ビットプレーンを予測する符号化対象予測工程と、
上記符号化対象ビットプレーンについて、上記ビットプレーン毎にビットモデリングを行うビットモデリング工程と、
上記符号化対象ビットプレーンについて、上記ビットプレーン毎に符号化パスを生成する符号化パス生成工程と、
上記符号化パス生成手段によって生成された符号化パス内で算術符号化を行う算術符号化工程と、
上記算術符号化工程にて生成された算術符号を用いて符号化コードストリームを生成する符号化コードストリーム生成工程と
を有することを特徴とするプログラムが記録された記録媒体。
【請求項１６】
所定の処理をコンピュータに実行させるプログラムが記録されたコンピュータ読み取り可能な記録媒体において、
入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施すフィルタリング工程と、
上記フィルタリング工程にて生成されたサブバンドを分割し、所定の大きさのコードブロックを生成するコードブロック生成工程と、
上記コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成するビットプレーン生成工程と、
符号化パス毎の推定符号量を求める符号量推定工程と、
上記符号化パス毎の推定符号量に基づいて、符号化対象となる符号化対象符号化パスを予測する符号化対象予測工程と、
上記ビットプレーン毎にビットモデリングを行うビットモデリング工程と、
上記ビットプレーン毎に符号化パスを生成する符号化パス生成工程と、
上記符号化パスのうち、上記符号化対象符号化パスについて、符号化パス内で算術符号化を行う算術符号化工程と、
上記算術符号化工程にて生成された算術符号を用いて符号化コードストリームを生成する符号化コードストリーム生成工程と
を有することを特徴とするプログラムが記録された記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばＪＰＥＧ−２０００方式のように、ウェーブレット変換とエントロピー符号化とにより画像を圧縮する画像符号化装置及びその方法、並びに画像符号化処理をコンピュータに実行させるプログラム及びそのプログラムが記録された記録媒体に関する。
【０００２】
【従来の技術】
従来の代表的な画像圧縮方式として、ＩＳＯ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｓ  Ｏｒｇａｎｉｚａｔｉｏｎ）によって標準化されたＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式がある。これは、離散コサイン変換（Ｄｅｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ；ＤＣＴ）を用い、比較的高いビットが割り当てられる場合には、良好な符号化画像及び復号画像を供することが知られている。しかし、ある程度以上に符号化ビット数を少なくすると、ＤＣＴ特有のブロック歪みが顕著になり、主観的に劣化が目立つようになる。
【０００３】
一方、近年では画像をフィルタバンクと呼ばれるハイパス・フィルタとローパス・フィルタとを組み合わせたフィルタによって複数の帯域に分割し、各帯域毎に符号化を行う方式の研究が盛んになっている。その中でも、ウェーブレット変換符号化は、ＤＣＴのように高圧縮でブロック歪みが顕著になるという欠点がないことから、ＤＣＴに代わる新たな技術として有力視されている。
【０００４】
２００１年１月に国際標準化が完了したＪＰＥＧ−２０００方式は、このウェーブレット変換に高能率なエントロピー符号化（ビットプレーン単位のビット・モデリングと算術符号化）を組み合わせた方式を採用しており、ＪＰＥＧに比べて符号化効率の大きな改善を実現している。
【０００５】
これらの国際規格ではデコーダ側の規格のみが定められており、エンコーダ側は自由に設計することができる。その反面、目標の圧縮率を実現する効果的なレート制御手法についての規格が存在しないため、ノウハウの確立が何よりも重要になる。特にＪＰＥＧ方式では、このレート制御が困難であり、目標値を得るまでに複数回の符号化を施す必要も多々あった。しかしながら、これは処理時間の増大に繋がるため、ＪＰＥＧ−２０００方式では、１度の符号化で目標の符号量を得ることが望まれている。
【０００６】
そこで本件出願人は、以下の特許文献１において、一旦生成した符号化コードストリームを後尾から切り捨てることでレート制御を行う技術を提案している。この技術によれば、目標符号量に正確に合わせた制御が可能になる。
【０００７】
【特許文献１】
特開２００２−１６５０９８号公報
【０００８】
【発明が解決しようとする課題】
ところで、一般にＪＰＥＧ−２０００方式のエンコーダでは、エントロピー符号化の処理負荷が非常に高い。その一方で、目標の圧縮率又はビットレートで符号化する際には、符号化した後に実際には使用されないものが存在し、これらは結果的に無駄になる。
【０００９】
しかしながら、上述したレート制御はエントロピー符号化部の後段で行われるため、エントロピー符号化を行う際に最終的な符号化コードストリームに使用されるか否かをすることができず、全てを符号化する必要があった。
【００１０】
本発明は、このような従来の実情に鑑みて提案されたものであり、例えばＪＰＥＧ−２０００方式の画像符号化装置においてエントロピー符号化の処理負荷を軽減する画像符号化装置及びその方法、並びに画像符号化処理をコンピュータに実行させるプログラム及びそのプログラムが記録されたコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上述した目的を達成するために、本発明に係る画像符号化装置及びその方法は、入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施し、生成されたサブバンドを分割して所定の大きさのコードブロックを生成し、コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成する。そして、上記ビットプレーン毎の推定符号量を求め、この推定符号量に基づいて符号化対象となる符号化対象ビットプレーンを予測し、この符号化対象ビットプレーンについて、上記ビットプレーン毎にビットモデリングを行ってビットプレーン毎に符号化パスを生成し、生成された符号化パス内で算術符号化を行い、生成された算術符号を用いて符号化コードストリームを生成する。
【００１２】
また、上述した目的を達成するために、本発明に係る画像符号化装置及びその方法は、入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施し、生成されたサブバンドを分割して所定の大きさのコードブロックを生成し、コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成する。また、符号化パス毎の推定符号量を求め、この推定符号量に基づいて、符号化対象となる符号化対象符号化パスを予測する。そして、上記ビットプレーン毎にビットモデリングを行ってビットプレーン毎に符号化パスを生成し、この符号化パスのうち上記符号化対象符号化パスについて符号化パス内で算術符号化を行い、生成された算術符号を用いて符号化コードストリームを生成する。
【００１３】
このような画像符号化装置及びその方法では、算術符号化を行う前にビットプレーン又は符号化パス毎の推定符号量を求め、この推定符号量に基づいて符号化対象ビットプレーン又は符号化対象符号化パスを予測し、この符号化対象ビットプレーン又は符号化対象符号化パスのみを算術符号化する。
【００１４】
また、本発明に係るプログラムは、上述した画像符号化処理をコンピュータに実行させるものであり、本発明に係る記録媒体は、そのようなプログラムが記録されたコンピュータ読み取り可能なものである。
【００１５】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、ＪＰＥＧ−２０００方式により入力画像を圧縮符号化する画像符号化装置及びその方法に適用したものである。以下では、先ず、画像符号化装置の全体構成及びその動作について説明し、次いで、この画像符号化装置において本発明が適用された要部を説明する。
【００１６】
（１）画像符号化装置の構成及び動作
本実施の形態における画像符号化装置の概略構成を図１に示す。図１に示すように、画像符号化装置１は、ウェーブレット変換部１０と、量子化部１１と、コードブロック化部１２と、ビットプレーン分解部１３と、符号化対象予測部１４と、エントロピー符号化部１５と、レート制御部１８と、符号化コードストリーム生成部１９とから構成されている。ここで、エントロピー符号化部１５は、ビットモデリング部１６と算術符号化部１７とからなる。
【００１７】
ウェーブレット変換部１０は、通常、低域フィルタと高域フィルタとから構成されるフィルタバンクによって実現される。なお、デジタルフィルタは、通常複数タップ長のインパルス応答（フィルタ係数）を持っているため、フィルタリングが行えるだけの入力画像を予めバッファリングしておく必要があるが、簡単のため、図１では図示を省略する。
【００１８】
ウェーブレット変換部１０は、フィルタリングに必要な最低限の画像信号Ｄ１０を入力し、この画像信号Ｄ１０に対してウェーブレット変換を行うフィルタリング処理を行ってサブバンドに分割し、サブバンド毎のウェーブレット変換係数Ｄ１１を生成する。
【００１９】
このウェーブレット変換では、通常図２に示すように最低周波数域のサブバンドが再帰的に変換されるが、これは画像のエネルギの多くが低域成分に集中しているためである。ここで、図２におけるウェーブレット変換のレベル数は３であり、この結果計１０個のサブバンドが形成されている。なお、図２においてＬ，Ｈはそれぞれ低域，高域を表し、Ｌ，Ｈの前の数字は分割レベルを表す。すなわち、例えば１ＬＨは、水平方向が低域で垂直方向が高域である分割レベル＝１のサブバンドを表す。
【００２０】
量子化部１１は、ウェーブレット変換部１０から供給されたサブバンド毎のウェーブレット変換係数Ｄ１１を量子化することにより非可逆圧縮を施し、量子化係数Ｄ１２を生成する。量子化手段としては、ウェーブレット変換係数Ｄ１１を量子化ステップサイズで除算するスカラ量子化を用いることができる。
【００２１】
コードブロック化部１２は、量子化部１１で生成された量子化係数Ｄ１２を、エントロピー符号化の処理単位である所定の大きさのコードブロックに分割する。ここで、サブバンド中のコードブロックの位置関係を図３に示す。通常、例えば６４×６４、３２×３２、１２８×３２程度のサイズのコードブロックが、分割後の全てのサブバンド中に生成される。したがって、図２において最も分割レベルが小さい３ＨＨのサブバンドの大きさが６４０×３２０であった場合には、６４×６４のコードブロックは、水平方向に１０個、垂直方向に５個、合計５０個存在することになる。コードブロック化部１２は、コードブロック毎の量子化係数Ｄ１３をビットプレーン分解部１３に供給し、後段の符号化処理は、これらのコードブロック毎に行われる。
【００２２】
ビットプレーン分解部１３は、コードブロック毎の量子化係数Ｄ１３をビットプレーンに分解する。このビットプレーンの概念について図４を用いて説明する。図４（Ａ）は、縦４個、横４個の計１６個の係数からなる量子化係数を仮定したものである。この１６個の係数のうち絶対値が最大のものは１３であり、２進数表現では１１０１となる。したがって、係数の絶対値のビットプレーンは、図４（Ｂ）に示すような４つのビットプレーンから構成される。なお、各ビットプレーンの要素は、全て０又は１の数をとる。一方、量子化係数の符号は、−６が唯一負の値であり、それ以外は０又は正の値である。したがって、符号のビットプレーンは、図４（Ｃ）に示すようになる。ビットプレーン分解部１３は、このビットブレーンに分解された量子化係数Ｄ１４を符号化対象予測部１４とエントロピー符号化部１５のビットモデリング部１６とに供給する。
【００２３】
符号化対象予測部１４は、ビットプレーン分解部１３においてビットブレーンに分解された量子化係数Ｄ１４に基づいて、最終的に符号化されるビットプレーンをエントロピー符号化部１５で符号化する前に事前予測し、符号化対象情報Ｄ１５としてエントロピー符号化部１５のビットモデリング部１６に供給する。なお、この符号化対象予測部１４における予測処理の詳細については後述する。
【００２４】
ビットモデリング部１６は、ビットプレーン分解部１３から供給されたビットプレーン毎の量子化係数Ｄ１４のうち、符号化対象予測部１４から供給された符号化対象情報Ｄ１５で示されるビットプレーンの量子化係数Ｄ１４に対して、以下のようにして係数ビットモデリングを行い、符号化シンボル及びコンテキストＤ１６を算術符号化部１７に供給する。そして、算術符号化部１７は、このコンテキストに基づいて符号化シンボルに対して算術符号化を施し、得られた算術符号Ｄ１７をレート制御部１８に供給する。ここで、本実施の形態では、特にＪＰＥＧ−２０００規格で定められたＥＢＣＯＴと呼ばれるエントロピー符号化を例に取りながら説明する。このＥＢＣＯＴについては、例えば、文献「ＩＳ０／ＩＥＣ  １５４４４−１，  Ｉｎｆｏｒｍａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ−ＪＰＥＧ  ２０００，  Ｐａｒｔ  １：Ｃｏｒｅ  ｃｏｄｉｎｇ  ｓｙｓｔｅｍ」等に詳細に記載されている。なお、上述したように、ビットモデリング部１６と算術符号化部１７とにより、エントロピー符号化部１５が構成される。
【００２５】
ＥＢＣＯＴは、所定の大きさのブロック毎にそのブロック内の係数ビットの統計量を測定しながら符号化する手段であり、コードブロック単位に量子化係数をエントロピー符号化する。コードブロックは、最上位ビット（Ｍｏｓｔ  ＳｉｇｎｉｆｉｃａｎｔＢｉｔ；ＭＳＢ）から最下位ビット（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ；ＬＳＢ）方向にビットプレーン毎に独立して符号化される。また、コードブロックの縦横のサイズは、４から２５６までの２の冪乗で、通常は３２×３２、６４×６４、１２８×３２等の大きさが使用される。量子化係数は、ｎビットの符号付き２進数で表されており、ｂｉｔ０からｂｉｔ（ｎ−２）がＬＳＢからＭＳＢまでのそれぞれのビットを表す。なお、残りの１ビットは符号である。コードブロックの符号化は、ＭＳＢ側のビットプレーンから順番に、以下の（ａ）〜（ｃ）に示す３種類の符号化パスによって行われる。
【００２６】
（ａ）  Ｓｉｇｎｉｆｉｃａｎｃｅ  Ｐｒｏｐａｇａｔｉｏｎ  Ｐａｓｓ
（ｂ）  Ｍａｇｎｉｔｕｄｅ  Ｒｅｆｉｎｅｍｅｎｔ  Ｐａｓｓ
（ｃ）  Ｃｌｅａｎ  Ｕｐ  Ｐａｓｓ
３つの符号化パスの用いられる順序を図５に示す。図５に示すように、先ずビットプレーン（ｎ−２）（ＭＳＢ）がＣｌｅａｎ  Ｕｐ  Ｐａｓｓ（以下、適宜ＣＵパスという。）によって符号化される。続いて、順次ＬＳＢ側に向かい、各ビットプレーンが、Ｓｉｇｎｉｆｉｃａｎｃｅ  Ｐｒｏｐａｇａｔｉｏｎ  Ｐａｓｓ（以下、適宜ＳＰパスという。）、ＭａｇｎｉｔｕｄｅＲｅｆｉｎｅｍｅｎｔ  Ｐａｓｓ（以下、適宜ＭＲパスという。）、Ｃｌｅａｎ  Ｕｐ  Ｐａｓｓ  の順序で用いられて符号化される。
【００２７】
但し、実際にはＭＳＢ側から何番目のビットプレーンで初めて１が出てくるかをヘッダに書き、ゼロ係数から構成されるビットプレーン（ゼロビットプレーン）は符号化しない。この順序で３種類の符号化パスを繰返し用いて符号化し、任意のビットプレーンの任意の符号化パスまでで符号化を打ち切ることにより、符号量と画質のトレードオフを取る、すなわちレート制御を行うことができる。
【００２８】
ここで、係数ビットの走査（スキャニング）について図６を用いて説明する。コードブロックは、高さ４個の係数ビット毎にストライプ（ｓｔｒｉｐｅ）に分けられる。ストライプの幅は、コードブロックの幅に等しい。スキャン順とは１個のコードブロック内の全ての係数ビットを辿る順番であり、コードブロック中では上のストライプから下のストライプへの順序、各ストライプ中では左の列から右の列への順序、各列中では上から下への順序でスキャニングされる。なお、各符号化パスにおいてコードブロック中の全ての係数ビットがこのスキャン順で処理される。
【００２９】
以下、上述した３つの符号化パスについて説明する。なお、この３つの符号化パスについては、何れも上述した文献文献「ＩＳ０／ＩＥＣ  １５４４４−１，  Ｉｎｆｏｒｍａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ−ＪＰＥＧ  ２０００，  Ｐａｒｔ  １：Ｃｏｒｅ  ｃｏｄｉｎｇ  ｓｙｓｔｅｍ」に記載されている。
【００３０】
（ａ）  Ｓｉｇｎｉｆｉｃａｎｃｅ  Ｐｒｏｐａｇａｔｉｏｎ  Ｐａｓｓ
あるビットプレーンを符号化するＳＰパスでは、８近傍の少なくとも１つの係数が有意（ｓｉｇｎｉｆｉｃａｎｔ）であるようなｎｏｎ−ｓｉｇｎｉｆｉｃａｎｔな係数ビットが算術符号化される。その符号化した係数ビットの値が１である場合には、符号の正負が続けて算術符号化される。
【００３１】
ここでｓｉｇｎｉｆｉｃａｎｃｅとは、各係数ビットに対して符号化器が持つ状態である。ｓｉｇｎｉｆｉｃａｎｃｅの初期値は、ｎｏｎ−ｓｉｇｎｉｆｉｃａｎｔを表す「０」であり、その係数で１が符号化されたときにｓｉｇｎｉｆｉｃａｎｔを表す「１」に変化し、以降常に「１」であり続ける。したがって、ｓｉｇｎｉｆｉｃａｎｃｅとは、有効桁の情報を既に符号化したか否かを示すフラグともいえる。あるビットプレーンでＳＰパスが発生すれば、以降のビットプレーンではＳＰパスは発生しない。
【００３２】
（ｂ）  Ｍａｇｎｉｔｕｄｅ  Ｒｅｆｉｎｅｍｅｎｔ  Ｐａｓｓ
ビットプレーンを符号化するＭＲパスでは、ビットプレーンを符号化するＳＰパスで符号化していないｓｉｇｎｉｆｉｃａｎｔな係数ビットが算術符号化される。
【００３３】
（ｃ）  Ｃｌｅａｎ  Ｕｐ  Ｐａｓｓ
ビットプレーンを符号化するＣＵパスでは、ビットプレーンを符号化するＳＰパスで符号化していないｎｏｎ−ｓｉｇｎｉｆｉｃａｎｔな係数ビットが算術符号化される。その符号化した係数ビットの値が１である場合には、符号の正負が続けて算術符号化される。
【００３４】
なお、以上の３つの符号化パスでの算術符号化では、ケースに応じてＺＣ（Ｚｅｒｏ  Ｃｏｄｉｎｇ）、ＲＬＣ（Ｒｕｎ−Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）、ＳＣ（Ｓｉｇｎ  Ｃｏｄｉｎｇ）、ＭＲ（Ｍａｇｎｉｔｕｄｅ  Ｒｅｆｉｎｅｍｅｎｔ）が使い分けられて係数のコンテキストが選択される。そして、ＭＱ符号化と呼ばれる算術符号によって選択されたコンテキストが符号化される。このＭＱ符号化は、ＪＢＩＧ２で規定された学習型の２値算術符号である。ＭＱ符号化については、例えば、文献「ＩＳＯ／ＩＥＣ  ＦＤＩＳ  １４４９２，  “Ｌｏｓｓｙ／Ｌｏｓｓｌｅｓｓ  Ｃｏｄｉｎｇ  ｏｆ  Ｂｉ−ｌｅｖｅｌ  Ｉｍａｇｅｓ”，  Ｍａｒｃｈ  ２０００」等に記載されている。ＪＰＥＧ−２０００では、全ての符号化パスで合計１９種類のコンテキストがある。
【００３５】
以上のようにして、ビットモデリング部１６は、ビットプレーン毎の量子化係数Ｄ１４のうち、符号化対象予測部１４から供給された符号化対象情報Ｄ１５で示されるビットプレーンの量子化係数Ｄ１４を３つの符号化パスで処理し、符号化シンボル及びコンテキストＤ１６を生成する。そして、算術符号化部１７は、このコンテキストに基づいて符号化シンボルに対して算術符号化を施し、算術符号Ｄ１７を生成する。
【００３６】
レート制御部１８は、少なくとも一部の符号化パスの処理を行った後で、算術符号化部１７から供給された算術符号Ｄ１７の符号量をカウントし、目標の符号量に達した時点で、それより後の算術符号Ｄ１７を切り捨てる。このように、符号量をオーバーする直前で切り捨てることにより、確実に目標の符号量に抑えることができる。レート制御部１８は、この符号量制御完了後の算術符号Ｄ１８を符号化コードストリーム生成部１９に供給する。なお、レート制御部１８におけるレート制御処理の詳細については後述する。
【００３７】
符号化コードストリーム生成部１９は、レート制御部１８から供給された符号量制御完了後の算術符号Ｄ１８に基づいて、コードブロック内での付加情報、例えばコードブロック内の符号化パスの個数や圧縮コードストリームのデータ長等をヘッダとして生成する。そして、このヘッダと符号量制御完了後の算術符号Ｄ１８とを合わせてパケットを生成し、符号化コードストリームＤ１９として出力する。この際、符号化コードストリーム生成部１９は、図７に示すように同一解像度レベルから個々のパケットを生成する。なお、図７から分かるように、最低域であるパケット−１は、ＬＬ成分のみを含み、それ以外のパケット−２乃至パケット−４は、ＬＨ成分，ＨＬ成分及びＨＨ成分を含む。
【００３８】
以上のように、本実施の形態における画像符号化装置１は、ウェーブレット変換及びエントロピー符号化を用いて画像信号Ｄ１０を高効率に圧縮符号化し、パケット化して符号化コードストリームＤ１９として出力することができる。
【００３９】
（２）画像符号化装置における適用部分
（２−１）符号化対象予測部の構成及び動作
ところで、一般にＪＰＥＧ−２０００方式により入力画像を圧縮符号化する画像符号化装置では、ＥＢＣＯＴにおけるエントロピー符号化の処理負荷が非常に高い。その一方で、目標の圧縮率又はビットレートで符号化する際には、ＥＢＣＯＴで符号化した後に実際には使用されないものが存在し、これらは結果的に無駄になる。しかしながら、各符号化パスの算術符号が必要であるか否かはエントロピー符号化部の後段にあるレート制御部で判断されるため、エントロピー符号化部では必要であるか否かに拘わらず全ての符号化パスを符号化する必要があった。
【００４０】
そこで、本実施の形態における符号化対象予測部１４は、最終的に使用される蓋然性の高いビットプレーンをエントロピー符号化部１５の前段で事前予測し、符号化対象情報Ｄ１５として上述したビットモデリング部１６に供給する。具体的には、ビットプレーン毎の量子化係数Ｄ１４に基づいて符号量推定のための特徴量を抽出し、その特徴量に基づいてビットプレーン毎に発生する符号量を推定する。そして、この推定符号量に基づいて最終的に符号化されるビットプレーンを予測する。
【００４１】
この符号化対象予測部１４の内部構成の一例を図８に示す。図８に示すように、符号化対象予測部１４は、特徴量抽出部３０と、符号量推定部３１と、初期レート制御部３２とから構成されている。
【００４２】
特徴量抽出部３０は、ビットプレーン毎の量子化係数Ｄ１４に基づいて、例えば処理対象となるビットプレーンの符号化で新規にｓｉｇｎｉｆｉｃａｎｔとなる量子化係数の数、すなわち処理対象のビットプレーンにおける係数ビットの値が１で、それより上位のビットプレーンにおける係数ビットの値が０である量子化係数の数を、全てのコードブロックの各ビットプレーンについて求め、これを特徴量Ｄ３０として符号量推定部３１に供給する。
【００４３】
符号量推定部３１は、特徴量抽出部３０から供給された特徴量Ｄ３０に基づいて、後述する手法によりビットプレーン毎に発生する符号量を推定し、推定符号量Ｄ３１を初期レート制御部３２に供給する。
【００４４】
初期レート制御部３２は、符号量推定部３１から供給された推定符号量Ｄ３１を後述する手法により順次加算し、初期目標符号量に達した時点で加算を停止し、それまでに加算されたビットプレーンの情報を符号化対象情報Ｄ１５として上述したビットモデリング部１６に供給する。
【００４５】
以下、符号化対象予測部１４の各部における処理をさらに詳細に説明する。ここで、便宜上、各コードブロックにＩＤとなる番号を定義し、この番号順に処理を行うものとする。ここでは、低域のサブバンドから高域のサブバンドの順に、同じサブバンド内ではラスタスキャン順に番号を定義する。
【００４６】
なお、同じ分割レベルにおけるＨＬとＬＨとについては、図９（Ａ）に示すようにＨＬを優先させるようにしてもよく、図９（Ｂ）に示すようにＬＨを優先させるようにしてもよい。
【００４７】
また、カラー画像などでコンポーネントが複数ある場合にも、同様にして全てのコードブロックにＩＤとなる番号を定義する。この際、コンポーネントが輝度と色差とからなる場合には、輝度のコンポーネントを優先させて番号を定義する。
【００４８】
また、各コードブロックについては、最上位ビット（ＭＳＢ）から最下位ビット（ＬＳＢ）方向に処理を行うものとする。ここで、量子化係数を２進数表現した際の桁数は、一般にサブバンド毎に異なる。そこで、以下では、全サブバンドで最大の桁数をＭＡＸ＿ＢＰとしたとき、桁数がＭＡＸ＿ＢＰ未満であるコードブロックは最上位ビット（ＭＳＢ）側に０を埋めて桁数をＭＡＸ＿ＢＰとし、最下位ビット（ＬＳＢ）側からのビット位置を合わせるものとする。
【００４９】
（２−１−１）特徴量抽出部の動作
先ず、特徴量抽出部３０における特徴量抽出処理の一例を、図１０のフローチャートに示す。始めにステップＳ１において、ｃｂ＝０とセットする。これは、最初に処理するコードブロックのコードブロック番号ｃｂが０であることを示す。
【００５０】
次にステップＳ２において、そのコードブロックの全ての量子化係数ｓについてＳｉｇｎｉｆｉｃａｎｔ［ｓ］を「０」に初期化する。ここで、Ｓｉｇｎｉｆｉｃａｎｔ［ｓ］は、量子化係数ｓがｓｉｇｎｉｆｉｃａｎｔであれば「１」、ｓｉｇｎｉｆｉｃａｎｔでなければ「０」をとる変数である。どの量子化係数も始めはｓｉｇｎｉｆｉｃａｎｔでないため「０」に初期化する。また、ステップＳ２では、さらにｂｐ＝０とセットする。これは、最初に処理するビットプレーンのビットプレーン番号ｂｐが０であることを示す。ここで、ビットプレーン番号ｂｐは、最上位ビット（ＭＳＢ）側から０，１，２・・・ＭＡＸ＿ＢＰ−１と付けてあるものとする。
【００５１】
続いてステップＳ３において、ＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］を０に初期化する。ここで、ＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］は、コードブロック番号ｃｂ、ビットプレーン番号ｂｐのビットプレーンの符号化で新規にｓｉｇｎｉｆｉｃａｎｔとなる量子化係数の数を計数するカウンタである。
【００５２】
ステップＳ４では、コードブロック番号ｃｂ、ビットプレーン番号ｂｐのビットプレーンにおける未処理の量子化係数ｓを１つ選び、ステップＳ５では、Ｓｉｇｎｉｆｉｃａｎｔ［ｓ］が「０」であり、且つ量子化係数ｓのｂｐ番目の係数ビットが１であるか否かを判別する。ここで、Ｓｉｇｎｉｆｉｃａｎｔ［ｓ］が「０」であり、且つ量子化係数ｓのｂｐ番目の係数ビットが１である場合（Ｙｅｓ）には、ステップＳ６においてＳｉｇｎｉｆｉｃａｎｔ［ｓ］を１に更新し、ＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］に１を加える。一方、そうでない場合（Ｎｏ）には、ステップＳ７に進む。
【００５３】
ステップＳ７では、ビットプレーン番号ｂｐのビットプレーンにおいて未処理の量子化係数ｓがあるか否かを判別し、未処理の量子化係数ｓがある場合（Ｙｅｓ）にはステップＳ４に戻り、そうでない場合（Ｎｏ）にはステップＳ８に進み、ＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］の値を出力する。この値がコードブロック番号ｃｂ、ビットプレーン番号ｂｐのビットプレーンにおける特徴量Ｄ３０であり、特徴量抽出部３０から符号量推定部３１に供給される。
【００５４】
ステップＳ９では、コードブロック番号ｃｂのコードブロックにおいて未処理のビットプレーンがあるか否かを判別し、未処理のビットプレーンがある場合（Ｙｅｓ）には、ステップＳ１０でｂｐに１を加えてステップＳ３に戻り、そうでない場合（Ｎｏ）にはステップＳ１１に進む。
【００５５】
ステップＳ１１では、未処理のコードブロックがあるか否かを判別し、未処理のコードブロックがある場合（Ｙｅｓ）には、ステップＳ１２でｃｂに１を加えてステップＳ２に戻り、そうでない場合（Ｎｏ）には特徴量抽出処理を終了する。
【００５６】
本実施の形態における特徴量抽出部３０は、以上のような処理を行うことで、全てのコードブロックの各ビットプレーンで新規にｓｉｇｎｉｆｉｃａｎｔとなる量子化係数の数を計数し、この数を特徴量Ｄ３０として符号量推定部３１に供給する。
【００５７】
なお、以上の説明では、コードブロック番号ｃｂ、ビットプレーン番号ｂｐのビットプレーンにおいて新規にｓｉｇｎｉｆｉｃａｎｔとなる量子化係数の数、すなわちそのビットプレーンにおける係数ビットの値が１で、それより上位のビットプレーンにおける係数ビットの値が０である量子化係数の数をＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］として計数し、これを特徴量Ｄ３０としたが、これに限定されるものではない。
【００５８】
例えば、コードブロック番号ｃｂ、ビットプレーン番号ｂｐのビットプレーンにおいてｓｉｇｎｉｆｉｃａｎｔである量子化係数の数、すなわちそのビットプレーン以上の少なくとも１つのビットプレーンで係数ビットの値が１である量子化係数の数をＣｏｕｎｔＳｉｇ［ｃｂ］［ｂｐ］とすると、このＣｏｕｎｔＳｉｇ［ｃｂ］［ｂｐ］は、以下の式（１）、（２）を満たす。
【００５９】
【数１】
2004186902.tif 000003
【００６０】
すなわち、ＣｏｕｎｔＳｉｇ［ｃｂ］［ｂｐ］とＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］とは、何れか一方を求めれば他方を算出することができるため、上述したＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］の代わりにＣｏｕｎｔＳｉｇ［ｃｂ］［ｂｐ］を特徴量Ｄ３０として用いることができる。
【００６１】
（２−１−２）符号量推定部及び初期レート制御部の動作
続いて、符号量推定部３１及び初期レート制御部３２における処理の一例を、図１１のフローチャートに示す。始めにステップＳ２０において、処理するビットプレーンのビットプレーン番号ｂｐを０に、符号量の総和であるＴｏｔａｌＢｉｔｓを０に、それぞれ初期化し、ステップＳ２１において、処理するコードブロックのコードブロック番号ｃｂを０に初期化する。
【００６２】
次にステップＳ２２において、ビットプレーン番号ｂｐが０であるか否かを判別する。ここで、ビットプレーン番号ｂｐが０である場合（Ｙｅｓ）にはステップＳ２３においてＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］を０とし、そうでない場合（Ｎｏ）にはステップＳ２４において以下の式（３）に従ってＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］を求める。このＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］は、コードブロック番号ｃｂ、ビットプレーン番号ｂｐのビットプレーンにおいて、ＭＲパスで符号化される量子化係数の数を示す。
【００６３】
【数２】
2004186902.tif 000004
【００６４】
なお、ＣｏｕｎｔＭＲ［ｃｂ］［ｉ］は、ＣｏｕｎｔＭＲ［ｃｂ］［ｉ＋１］を求めた以降は使われることがないため、ｂｐの値ごとに異なるメモリ領域を確保する必要はなく、ＣｏｕｎｔＭＲ［ｃｂ］［ｉ＋１］はＣｏｕｎｔＭＲ［ｃｂ］［ｉ］と同じメモリを共有できる。
【００６５】
続いてステップＳ２５において、以下の式（４）に従って、コードブロック番号ｃｂ、ビットプレーン番号ｂｐのビットプレーンの符号化で発生する符号量Ｂｉｔｓを求め、符号量の総和ＴｏｔａｌＢｉｔｓにこの符号量Ｂｉｔｓを加える。
【００６６】
【数３】
2004186902.tif 000005
【００６７】
ここで、式（４）の右辺第２項（ＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］×ＲａｔｉｏＭＲ）は、そのビットプレーンのＭＲパスにおいて発生する符号量の推定値を示す。ＭＲパスは、既にｓｉｇｎｉｆｉｃａｎｔである係数ビットについての符号化である。すなわち、そのビットプレーンよりも上位のビットプレーンで１が現れているため、そのビットプレーンで０と１の何れを取るかの確率に偏りは少ない。１／２の確率で起こることを符号化するのに必要なビット量なので、定数ＲａｔｉｏＭＲの値は、ほぼ１となる。
【００６８】
また、式（４）の右辺第１項（ＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］×ＲａｔｉｏＮｅｗＳｉｇ）は、そのビットプレーンのＳＰパス及びＣＵパスにおいて発生する符号量の推定値を示す。ＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］は、まだｓｉｇｎｉｆｉｃａｎｔでない量子化係数で次に符号化するビットプレーンの係数ビットが１である量子化係数の数である。これは起こる確率が少ないため発生符号量は多くなる。そこで、右辺第２項の定数ＲａｔｉｏＭＲとは異なる定数ＲａｔｉｏＮｅｗＳｉｇを掛けて、符号量の推定値とする。
【００６９】
なお、この定数ＲａｔｉｏＮｅｗＳｉｇは、ＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］の値によって最適な値が異なるものであるため、例えばＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］についての関数を用いてその値を求めたり、ＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］の値によって数種類の中から最適な値を選択したりしてもよい。この際、ＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］の値をコードブロック内の量子化係数の総数で正規化するようにすれば、コードブロックの大きさが異なる場合であっても、最適な値を求めることができる。
【００７０】
ステップＳ２６では、符号量の総和ＴｏｔａｌＢｉｔｓが初期目標符号量以上であるか否かを判別する。ここで、符号量の総和ＴｏｔａｌＢｉｔｓが初期目標符号量以上である場合（Ｙｅｓ）にはステップＳ３１に進み、その時点でのコードブロック番号ｃｂとビットプレーン番号ｂｐとを出力して処理を終了する。一方、符号量の総和ＴｏｔａｌＢｉｔｓが初期目標符号量未満である場合（Ｎｏ）にはステップＳ２７に進む。
【００７１】
ステップＳ２７では、未処理のコードブロックがあるか否かを判別し、未処理のコードブロックがある場合（Ｙｅｓ）には、ステップＳ２８でｃｂに１を加えてステップＳ２２に戻り、そうでない場合（Ｎｏ）にはステップＳ２９に進む。
【００７２】
ステップＳ２９では、コードブロック番号ｃｂのコードブロックにおいて未処理のビットプレーンがあるか否かを判別し、未処理のビットプレーンがある場合（Ｙｅｓ）には、ステップＳ３０でｂｐに１を加えてステップＳ２１に戻り、そうでない場合（Ｎｏ）にはステップＳ３１に進み、その時点でのコードブロック番号ｃｂとビットプレーン番号ｂｐとを出力して処理を終了する。
【００７３】
本実施の形態における符号量推定部３１及び初期レート制御部３２は、以上のような処理を行うことで、特徴量抽出部３０から供給された特徴量Ｄ３０に基づいてビットプレーン毎の推定符号量Ｄ３１を求め、この推定符号量Ｄ３１を上述した順序で順次加算し、初期目標符号量に達した時点で加算を停止する。そして、加算を停止した時点のコードブロック番号ｃｂとビットプレーン番号ｂｐとを符号化対象情報Ｄ１５としてエントロピー符号化部１５に供給する。
【００７４】
後段のエントロピー符号化部１５では、ビットプレーン毎の量子化係数Ｄ１４のうち、符号化対象情報Ｄ１５で示されるビットプレーンの量子化係数Ｄ１４を３つの符号化パスで処理する。すなわち、コードブロック番号ｃｂがｃｂ未満のコードブロックでは、ビットプレーン番号ｂｐが０からｂｐ−１までの符号化を行い、コードブロック番号ｃｂがｃｂ以上のコードブロックでは、ビットプレーン番号ｂｐが０からｂｐまでの符号化を行い、残りのビットプレーンの符号化を省略する。
【００７５】
このように、コードブロック毎に符号化対象情報Ｄ１５で示されるビットプレーンのみが実際に符号化されるため、省略したビットプレーン数分だけ処理負荷を軽減し、符号化に費やす時間を短縮することができる。
【００７６】
（２−２）符号量推定部及び初期レート制御部の動作の他の例
ここで、上述の例では、ビットプレーン単位で発生符号量を推定し、ビットプレーン単位で初期レート制御を行うものとして説明したが、これに限定されるものではなく、符号化パス単位で発生符号量を推定し、符号化パス単位で初期レート制御を行うようにしても構わない。
【００７７】
このように符号化パス単位で初期レート制御を行う場合の符号量推定部３１及び初期レート制御部３２における処理の一例を、図１２のフローチャートに示す。始めにステップＳ４０において、処理する符号化パスの符号化パス番号ｃｐを０に、符号量の総和ＴｏｔａｌＢｉｔｓを０に、それぞれ初期化する。ここで、符号化パス番号ｃｐは、ｂｐ＝０のビットプレーンが０であり、ｂｐ＝１以降は各ビットプレーンについてＳＰパス、ＭＲパス、ＣＵパスの順に、１，２，３・・・と付けてあるものとする。
【００７８】
次にステップＳ４１において、処理するコードブロックのコードブロック番号ｃｂを０に初期化すると共に、以下の式（５）に従って現在のビットプレーン番号ｂｐを求める。なお、式（５）において、除算結果の小数部は切り捨てるものとする。
【００７９】
【数４】
2004186902.tif 000006
【００８０】
続いてステップＳ４２において、ビットプレーン番号ｂｐが０であるか否かを判別する。ここで、ビットプレーン番号ｂｐが０である場合（Ｙｅｓ）にはステップＳ４３においてＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］を０とする。一方、ビットプレーン番号ｂｐが０でなく（Ｎｏ）、符号化パス番号ｃｐを３で除算した余りが１である場合、すなわち各ビットプレーンの最初の符号化パスである場合には、ステップＳ４４において以下の式（６）に従ってＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］を求める。ここで、式（６）においてｃｐ％３はｃｐを３で除算したときの余りを示す。
【００８１】
【数５】
2004186902.tif 000007
【００８２】
続いてステップＳ４５において、以下の式（７）乃至式（９）に従って、コードブロック番号ｃｂ、ビットプレーン番号ｂｐ、符号化パス番号ｃｐの符号化パスの符号化で発生する符号量Ｂｉｔｓを求め、符号量の総和ＴｏｔａｌＢｉｔｓにこの符号量Ｂｉｔｓを加える。
【００８３】
【数６】
2004186902.tif 000008
【００８４】
すなわち、符号化パス番号ｃｐを３で除算した余りが２である場合、すなわち、ＭＲパスである場合には、式（７）に示すように、ＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］に定数ＲａｔｉｏＭＲを乗算した値が推定される符号量Ｂｉｔｓとなる。
【００８５】
また、ＳＰパス及びＣＵパスで発生する符号量は上述の通りＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］×ＲａｔｉｏＮｅｗＳｉｇである。ここで、コードブロックの量子化係数の数をＣｏｕｎｔＡｌｌとしたとき、ＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］／ＣｏｕｎｔＡｌｌが大きいほどＳＰパスで発生する符号量の割合が高くなり、ＣＵパスで発生する符号量の割合が低くなる。これは、ＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］／ＣｏｕｎｔＡｌｌが大きいということはｓｉｇｎｉｆｉｃａｎｔな係数ビットの数が多いということであり、８近傍にｓｉｇｎｉｆｉｃａｎｔな係数ビットが少なくとも１つあるというＳＰパスの符号化条件が満たされやすくなるためである。
【００８６】
そこで、符号化パス番号ｃｐを３で除算した余りが１である場合、すなわち、ＳＰパスである場合には、ＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］／ＣｏｕｎｔＡｌｌをＳＰパスで発生する符号量の割合に変換する関数ＲａｔｉｏＳＰＦｕｎｋ（ＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］／ＣｏｕｎｔＡｌｌ）を用いて、式（８）に示すように、ＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］×ＲａｔｉｏＮｅｗＳｉｇにＲａｔｉｏＳＰＦｕｎｋ（ＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］／ＣｏｕｎｔＡｌｌ）を乗算した値が推定される符号量Ｂｉｔｓとなる。
【００８７】
一方、符号化パス番号ｃｐを３で除算した余りが０である場合、すなわち、ＣＵパスである場合には、式（９）に示すように、ＣｏｕｎｔＮｅｗＳｉｇ［ｃｂ］［ｂｐ］×ＲａｔｉｏＮｅｗＳｉｇに１−ＲａｔｉｏＳＰＦｕｎｋ（ＣｏｕｎｔＭＲ［ｃｂ］［ｂｐ］／ＣｏｕｎｔＡｌｌ）を乗算した値が推定される符号量Ｂｉｔｓとなる。
【００８８】
ステップＳ４６では、符号量の総和ＴｏｔａｌＢｉｔｓが初期目標符号量以上であるか否かを判別する。ここで、符号量の総和ＴｏｔａｌＢｉｔｓが初期目標符号量以上である場合（Ｙｅｓ）にはステップＳ５１に進み、その時点でのコードブロック番号ｃｂと符号化パス番号ｃｐとを出力して処理を終了する。一方、符号量の総和ＴｏｔａｌＢｉｔｓが初期目標符号量未満である場合（Ｎｏ）にはステップＳ４７に進む。
【００８９】
ステップＳ４７では、未処理のコードブロックがあるか否かを判別し、未処理のコードブロックがある場合（Ｙｅｓ）には、ステップＳ４８でｃｂに１を加えてステップＳ４２に戻り、そうでない場合（Ｎｏ）にはステップＳ４９に進む。
【００９０】
ステップＳ４９では、コードブロック番号ｃｂのコードブロックにおいて未処理の符号化パスがあるか否かを判別し、未処理の符号化パスがある場合（Ｙｅｓ）には、ステップＳ５０でｃｐに１を加えてステップＳ４１に戻り、そうでない場合（Ｎｏ）にはステップＳ５１に進み、その時点でのコードブロック番号ｃｂと符号化パス番号ｃｐとを出力して処理を終了する。
【００９１】
以上のような処理を行うことで、符号量推定部３１及び初期レート制御部３２は、特徴量抽出部３０から供給された特徴量Ｄ３０に基づいて符号化パス毎の推定符号量を求め、この推定符号量を上述した順序で順次加算し、初期目標符号量に達した時点で加算を停止する。そして、加算を停止した時点のコードブロック番号ｃｂと符号化パス番号ｃｐとを符号化対象情報Ｄ１５としてエントロピー符号化部１５に供給する。
【００９２】
後段のエントロピー符号化部１５では、ビットプレーン毎の量子化係数Ｄ１４のうち、符号化対象情報Ｄ１５で示されるビットプレーンの量子化係数Ｄ１４を３つの符号化パスで処理する。すなわち、コードブロック番号ｃｂがｃｂ未満のコードブロックでは、符号化パス番号ｃｐが０からｃｐ−１までの符号化を行い、コードブロック番号ｃｂがｃｂ以上のコードブロックでは、符号化パス番号ｃｐが０からｃｐまでの符号化を行い、残りの符号化パスの符号化を省略する。
【００９３】
このように、コードブロック毎に符号化対象情報Ｄ１５で示される符号化パスのみが実際に符号化されるため、省略した符号化パス数分だけ処理負荷を軽減し、符号化に費やす時間を短縮することができる。
【００９４】
（２−３）レート制御部の動作
初期レート制御部３２とレート制御部１８とで同じ方式のレート制御を行い、符号量推定部３１における発生符号量の推定が完全にできる場合には、レート制御部１８を省略し、符号化コードストリーム生成部１９ではエントロピー符号化部１５で符号化された全ての符号化パスの符号を用いて符号化コードストリームＤ１９を作成することが可能である。
【００９５】
勿論、一般的には符号量推定部３１における符号量の推定は完全にはできないが、目標符号量に近いサイズにレート制御を行うことができるため、このときの目標符号量に対するサイズの変動がこの画像符号化装置１の目的における許容範囲内である場合にはレート制御部１８を省略することができる。
【００９６】
但し、符号量推定部３１において、ビットプレーン毎の発生符号量を実際よりも多く推定した場合には、目標符号量に達するまでに必要な符号化パス数が実際よりも少なくなり、エントロピー符号化部１５で符号化した符号化パスを全て符号化コードストリームＤ１９に含めても目標符号量に達しない虞がある。この場合、目標符号量に達するように、さらに多くの符号化パスを含めた符号化コードストリームと比較して、復号したときの画質が劣化する。
【００９７】
これを避けるために、ビットプレーン毎の発生符号量を実際よりも多く推定する可能性がある場合、或いは高画質が求められている場合には、初期目標符号量を割増ししたり、推定される発生符号量の範囲内で小さい値を推定符号量として用いたりすることができる。
【００９８】
この場合には、レート制御部１８において、図１３のフローチャートに示すようにレート制御を行うことが好ましい。すなわち、先ずステップＳ６０において、エントロピー符号化部１５で符号化された全符号化パスの情報と各ビットプレーンの符号量とを保持する。
【００９９】
次にステップＳ６１において、処理するビットプレーンのビットプレーン番号ｂｐを０に、符号量の総和ＴｏｔａｌＢｉｔｓを０に、それぞれ初期化し、ステップＳ６２において、処理するコードブロックのコードブロック番号ｃｂを０に初期化する。
【０１００】
続いてステップＳ６３において、コードブロック番号ｃｂ、ビットプレーン番号ｂｐのビットプレーンの符号量Ｂｉｔｓを符号量の総和ＴｏｔａｌＢｉｔｓに加算する。
【０１０１】
ステップＳ６４では、符号量の総和ＴｏｔａｌＢｉｔｓが目標符号量以上であるか否かを判別する。ここで、符号量の総和ＴｏｔａｌＢｉｔｓが目標符号量以上である場合（Ｙｅｓ）には符号量の加算処理を終了する。一方、符号量の総和ＴｏｔａｌＢｉｔｓが目標符号量未満である場合（Ｎｏ）にはステップＳ６５に進む。
【０１０２】
ステップＳ６５では、未処理のコードブロックがあるか否かを判別し、未処理のコードブロックがある場合（Ｙｅｓ）には、ステップＳ６６でｃｂに１を加えてステップＳ６３に戻り、そうでない場合（Ｎｏ）にはステップＳ６７に進む。
【０１０３】
ステップＳ６７では、コードブロック番号ｃｂのコードブロックにおいて未処理のビットプレーンがあるか否かを判別し、未処理のビットプレーンがある場合（Ｙｅｓ）には、ステップＳ６８でｂｐに１を加えてステップＳ６２に戻り、そうでない場合（Ｎｏ）には符号量の加算処理を終了する。
【０１０４】
このように、レート制御部１８では、最もビット位置の高いビットプレーン番号ｂｐが０のビットプレーンから、コードブロック番号ｃｂの順に符号量を加算し、同じビット位置の符号量を全て加算して初めて、下位のビット位置に移り、同様にコードブロック番号ｃｂの順に目標符号量に達するまで加算を繰り返す。このため、最終的に選択されずに切り捨てられるビットプレーン数が、１フレーム内の全てのコードブロックに対して最下位ビット（ＬＳＢ）側から数えて最大でも１ビットプレーンしか相違せず、サブバンド間の画質差がなくなり、全体的に高画質な画像が得られる。
【０１０５】
（３）その他
本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【０１０６】
例えば、初期レート制御部３２では、ＲＤ（Ｒａｔｅ−Ｄｉｓｔｏｒｔｉｏｎ）特性を利用した初期レート制御を行うようにしても構わない。このＲＤ特性を利用した初期レート制御では、ビットプレーン毎に発生する推定符号量と、そのビットプレーンを含めた場合に削減される歪み量とを比較し、推定符号量当たりに削減される歪み量が多いビットプレーンから優先して符号化する。なお、この場合、後段のレート制御部１８においても、ＲＤ特性を利用したレート制御を行うことが好ましい。
【０１０７】
また、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の伝送媒体を介して伝送することにより提供することも可能である。
【０１０８】
【発明の効果】
以上詳細に説明したように本発明に係る画像符号化装置及びその方法は、入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施し、生成されたサブバンドを分割して所定の大きさのコードブロックを生成し、コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成する。そして、上記ビットプレーン毎の推定符号量を求め、この推定符号量に基づいて符号化対象となる符号化対象ビットプレーンを予測し、この符号化対象ビットプレーンについて、上記ビットプレーン毎にビットモデリングを行ってビットプレーン毎に符号化パスを生成し、生成された符号化パス内で算術符号化を行い、生成された算術符号を用いて符号化コードストリームを生成する。
【０１０９】
また、本発明に係る画像符号化装置及びその方法は、入力画像に対して、低域フィルタ及び高域フィルタにより垂直方向及び水平方向にフィルタリング処理を施してサブバンドを生成し、低域成分のサブバンドに対してはさらに階層的にフィルタリング処理を施し、生成されたサブバンドを分割して所定の大きさのコードブロックを生成し、コードブロック毎に最上位ビットから最下位ビットに至るビットプレーンを生成する。また、符号化パス毎の推定符号量を求め、この推定符号量に基づいて、符号化対象となる符号化対象符号化パスを予測する。そして、上記ビットプレーン毎にビットモデリングを行ってビットプレーン毎に符号化パスを生成し、この符号化パスのうち上記符号化対象符号化パスについて符号化パス内で算術符号化を行い、生成された算術符号を用いて符号化コードストリームを生成する。
【０１１０】
このような画像符号化装置及びその方法によれば、算術符号化を行う前にビットプレーン又は符号化パス毎の推定符号量を求め、この推定符号量に基づいて符号化対象ビットプレーン又は符号化対象符号化パスを予測し、その符号化対象ビットプレーン又は符号化対象符号化パスのみを算術符号化することで、算術符号化の処理負荷を軽減することができる。
【０１１１】
また、本発明に係るプログラムは、上述した画像符号化処理をコンピュータに実行させるものであり、本発明に係る記録媒体は、そのようなプログラムが記録されたコンピュータ読み取り可能なものである。
【０１１２】
このようなプログラム及び記録媒体によれば、上述した画像符号化処理をソフトウェアにより実現することができる。
【図面の簡単な説明】
【図１】本実施の形態における画像符号化装置の概略構成を説明する図である。
【図２】分割レベル＝３までウェーブレット変換・分割した場合のサブバンドを説明する図である。
【図３】コードブロックとサブバンドとの関係を説明する図である。
【図４】ビットプレーンを説明する図であり、同図（Ａ）は、計１６個の係数から成る量子化係数を示し、同図（Ｂ）は、係数の絶対値のビットプレーンを示し、同図（Ｃ）は、符号のビットプレーンを示す。
【図５】コードブロック内の符号化パスの処理手順を説明する図である。
【図６】コードブロック内の係数のスキャン順序を説明する図である。
【図７】同画像符号化装置の符号化コードストリーム生成部で生成されるパケットを説明する図である。
【図８】同画像符号化装置の符号化対象予測部の内部構成の一例を説明する図である。
【図９】同画像符号化装置における各コードブロックのＩＤを説明する図であり、同図（Ａ）は、ＬＨサブバンドよりもＨＬサブバンドを優先させる例を示し、同図（Ｂ）は、ＨＬサブバンドよりもＬＨサブバンドを優先させる例を示す。
【図１０】同画像符号化装置の特徴量抽出部での特徴量抽出処理の一例を説明するフローチャートである。
【図１１】同画像符号化装置の符号量推定部及び初期レート制御部での処理の一例を説明するフローチャートである。
【図１２】同画像符号化装置の符号量推定部及び初期レート制御部での処理の他の例を説明するフローチャートである。
【図１３】同画像符号化装置のレート制御部での処理の一例を説明するフローチャートである。
【符号の説明】
１  画像符号化装置、１０  ウェーブレット変換部、１１  量子化部、１２  コードブロック化部、１３  ビットプレーン分解部、１４  符号化対象予測部、１５  エントロピー符号化部、１６  ビットモデリング部、１７  算術符号化部、１８  レート制御部、１９  符号化コードストリーム生成部、３０  特徴量抽出部、３１  符号量推定部、３２  初期レート制御部
【図１】
2004186902.tif 000009
【図２】
2004186902.tif 000010
【図３】
2004186902.tif 000011
【図４】
2004186902.tif 000012
【図５】
2004186902.tif 000013
【図６】
2004186902.tif 000014
【図７】
2004186902.tif 000015
【図８】
2004186902.tif 000016
【図９】
2004186902.tif 000017
【図１０】
2004186902.tif 000018
【図１１】
2004186902.tif 000019
【図１２】
2004186902.tif 000020
【図１３】
2004186902.tif 000021