(57)【要約】【課題】ＪＰＥＧ２０００などのエンコーダ又はパーサー（トランスコーダ）において、周波数係数の非線形量子化を用いることなく、良好な主観画質等を維持するレート制御を行う。【解決手段】ＪＰＥＧ２０００の符号化装置において、処理ブロック１０３でＭＱ符号化並びレート制御のためのディストーションスロープ等の計算を行い、処理ブロック１０４ではＭＱ符号の破棄（トランケーション）によりレート制御を行う。処理ブロック１０３におけるディストーションスロープの計算の際に単調減少の関数を導入し、上位ビットブレーンの符号の重要度を相対的に下げるようなディストーションスロープとすることにより、絶対値大きい係数が含まれるコードブロックのトランケーション量を増加させ、そうでないコードブロックのトランケーション量を減少させることにより、主観画質の良好なレート制御を可能とする。【選択図】図５
2006287487.tif 000002
【特許請求の範囲】
【請求項１】
周波数係数を絶対値方向に複数に分割して符号単位を構成する符号化方式の符号に対しレート制御を行う符号処理装置であって、前記レート制御のための、前記符号単位の集合で構成される画質制御単位の重要度を、前記符号単位の前記分割位置に依存させることを特徴とする符号処理装置。
【請求項２】
請求項１記載の符号処理装置であって、前記分割が二進値のビット単位であり、前記画質制御単位の重要度を前記ビット位置に依存させることを特徴とする符号処理装置。
【請求項３】
請求項１又は２記載の符号処理装置であって、前記画質制御単位のディストーションスロープに、該符号単位の分割位置またはビット位置をパラメータとした非線形関数を乗じることを特徴とする符号処理装置。
【請求項４】
周波数係数を絶対値方向に複数に分割して符号単位を構成する符号化方式の符号に対しレート制御を行う符号処理装置であって、前記レート制御のための、前記符号単位の集合で構成される画質制御単位の重要度を、該画質制御単位に含まれる係数の分割部分が特定の部分を含むか否かで異ならせることを特徴とする符号処理装置。
【請求項５】
請求項４記載の符号処理装置であって、前記分割が二進値のビット単位であり、前記画質制御単位の重要度を、該画質制御単位に含まれる係数のビットが特定のビットを含むか否かで異ならせることを特徴とする符号処理装置。
【請求項６】
請求項５記載の符号処理装置であって、前記画質制御単位に含まれる係数を破棄した場合の誤差の増分値に、該係数の分割部分またはビットが特定のものであるか否かをパラメータとした非線形関数を乗じることを特徴とする符号処理装置。
【請求項７】
請求項１乃至６のいずれか１項記載の符号処理装置であって、前記非線形性を反映させる目的に応じて前記重要度又は非線形関数を異ならせることを特徴とする符号処理装置。
【請求項８】
請求項３記載の符号処理装置であって、前記ビット位置が高いほど前記非線形関数が小さな値をとることを特徴とする符号処理装置。
【請求項９】
請求項６記載の符号処理装置であって、前記非線形関数は前記ビットがMSBである場合に最小値をとることを特徴とする符号処理装置。
【請求項１０】
請求項３記載の符号処理装置であって、前記非線形関数は前記ビット位置が高いほど大きな値をとることを特徴とする符号処理装置。
【請求項１１】
請求項６記載の符号処理装置であって、前記非線形関数は前記ビットがMSBである場合に最大値をとることを特徴とする符号処理装置。
【請求項１２】
請求項３記載の符号処理装置であって、前記非線形関数は前記ビット位置が所定値以下の場合に最小値をとらないことを特徴とする符号処理装置。
【請求項１３】
請求項６記載の符号処理装置であって、前記非線形関数は前記ビットが所定位置以下である場合に最小値をとらないことを特徴とする符号処理装置。
【請求項１４】
請求項７記載の符号処理装置であって、処理対象が動画であるか静止画であるかによって前記重要度又は非線形関数を異ならせることを特徴とする符号処理装置。
【請求項１５】
請求項１４記載の符号処理装置であって、処理対象が動画である場合、前記非線形関数は前記ビット位置が高いほど小さな値をとることを特徴とする符号処理装置。
【請求項１６】
請求項１４記載の符号処理装置であって、処理対象が動画である場合、前記非線形関数は前記ビットがMSBであるときに最小値をとることを特徴とする符号処理装置。
【請求項１７】
周波数係数を絶対値方向に複数に分割して符号単位を構成する符号化方式の符号に対しレート制御を行う符号処理方法であって、前記レート制御のための、前記符号単位の集合で構成される画質制御単位の重要度を、前記符号単位の前記分割位置に依存させることを特徴とする符号処理方法。
【請求項１８】
請求項１７記載の符号処理方法であって、前記分割が二進値のビット単位であり、前記画質制御単位の重要度を前記ビット位置に依存させることを特徴とする符号処理方法。
【請求項１９】
請求項１７又は１８記載の符号処理方法であって、前記画質制御単位のディストーションスロープに、該符号単位の分割位置またはビット位置をパラメータとした非線形関数を乗じることを特徴とする符号処理方法。
【請求項２０】
周波数係数を絶対値方向に複数に分割して符号単位を構成する符号化方式の符号に対しレート制御を行う符号処理方法であって、前記レート制御のための、前記符号単位の集合で構成される画質制御単位の重要度を、該画質制御単位に含まれる係数の分割部分が特定の部分を含むか否かで異ならせることを特徴とする符号処理方法。
【請求項２１】
請求項１乃至１６のいずれか１項記載の符号処理装置としてコンピュータを機能させるプログラム。
【請求項２２】
請求項１乃至１６のいずれか１項記載の符号処理装置としてコンピュータを機能させるプログラムが記録された、コンピュータが読み取り可能な情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像から符号化データを生成する符号処理装置（エンコーダ）や、画像の符号化データから新たな符号化データを生成する符号処理装置（トランスコーダ又はパーサー）に係り、特に、符号破棄によるレート制御を行う符号処理装置に関する。
【背景技術】
【０００２】
人間の視覚特性は、彩度の大きさによって色信号の感度が変化する。例えば、赤信号の彩度が小さい場合には赤信号の歪は視覚的にわかりにくいが、赤信号の彩度が大きい場合には赤信号の歪は視覚的に顕著である。このことを根拠に、輝度及び色差信号を含む画像信号の符号化において、直交変換後の色差信号のDCレベルを参照し、当該色差信号の非線形量子化を行う発明が特許文献１に記載されている。
【０００３】
また、色差成分に対し、その量子化誤差が視覚的に均一になるように非線形量子化を行う発明が特許文献２に記載されている。
【０００４】
【特許文献１】特許第２９０３７８５号公報
【特許文献２】特開２００２−４４４５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
画像の符号化において、高圧縮率下でより良い主観画質を得るためには、人間の視覚特性の非線形性を利用するのが一般的である。この非線形性の代表例が、コントラストマスキングとよばれる現象である。
【０００６】
コントラストマスキングとは、信号値自体が大きいほど視覚的な許容誤差が大きくなる効果である。周波数変換を利用する符号化においては、変換後の係数値が上記信号値に相当する。一般に、係数値が小さい範囲を除いて、許容量子化誤差は係数値のα乗（0＜α≦1）に比例すると言われている（実験的には、α＝0.7程度と言われており、α＝１の場合が、いわゆるウェーバーの法則である）。簡単には、大きい係数ほど粗く量子化し、小さい係数ほど細かく量子化すべきである、ということである。
【０００７】
しかし、例えばJPEG2000の基本仕様（Part1）においては、計算量を削減するために、ウェーブレット係数（周波数係数）に対しては線形量子化のみが可能であり(ウェーブレット変換の種類によっては線形量子化さえ行わない)、非線形量子化はJPEG2000の拡張仕様（Part2）でのみ可能になっている。
【０００８】
したがって、JPEG2000の基本仕様内の符号化では、非線形量子化は不可能であるが、JPEG2000に代表される埋め込み符号化においては、ビットプレーン符号化後のエントロピー符号を破棄することによって、係数の量子化と同じ効果を得ることが可能である（いわゆるポスト量子化）。係数のビットプレーン１枚分の符号の破棄は、係数を２で量子化するのと同様な効果があるからである。
【０００９】
本発明の１つ目の目的は、周波数係数の非線形量子化が許容されていない符号化方式において、エントロピー符号の破棄（ポスト量子化）によって周波数係数の非線形量子化と同等な効果を簡易に得ること（「非線形性の反映」）にある。なお、エンコーダの外に、一旦生成された符号化ファイルに対するエントロピー符号の破棄（ポスト量子化）を主な目的とするトランスコーダ又はパーサーも、本発明の格好の適用対象である。よって、本明細書においては、エンコーダとトランスコーダ／パーサーを符号処理装置と総称する。
【００１０】
次に、発明者は、係数を例えば二進値として扱う場合、各二進値ビットの視覚的な重要度自体が一様ではないことを見い出した。例えば、係数のMSBは、その係数の存在自体を担うもっとも重要なビットである。なぜならば、MSBが量子化で失われた場合（０になった場合）には、復号時の逆量子化を経ても、その係数は０のまま（失われたまま）であるのが通常だからである。
【００１１】
一方、係数のLSB付近のビット（例えば、係数の下位３ビット）も、係数の存在自体は担わないが、その画像におけるテクスチャ成分を担う視覚特性上重要なビットである。これらの下位ビットが失われると、画像のテクスチャが失われ、過度に平滑化された印象を与えてしまうことがあるからである。
【００１２】
これら２つの例に対し、MSBでも下位ビットでもないビットは、視覚特性上は相対的な重要度が低いと言える。よって、係数のビットに対して、かかる視覚特性上の特殊性を加味できれば、より主観画質の高いレート制御を行うことが可能となる。これが本発明の２つ目の目的（「特殊性の反映」）である。
【課題を解決するための手段】
【００１３】
以下、各請求項に係る発明について順を追って説明する。
【００１４】
まず、本発明の適用対象として好適な符号化方式の例はJPEG2000であるので、JPEG2000の概要について説明する。ただし、本発明は、JPEG2000に限らず、ブロック単位でのビットプレーン符号化のような、周波数係数を絶対値方向に複数に分割して符号単位を構成し、複数の画質制御単位を有する符号化方式に広く適用可能である。
【００１５】
JPEG2000の符号化（圧縮）処理は概ね図１に示す流れで行われる。画像は矩形のタイルに分割され(分割数≧１)、タイル単位で処理される。
【００１６】
まず、各タイルは輝度・色差等のコンポ−ネントへ色変換される（ｓｔｅｐ１）。この際、ＲＧＢカラー画像などは、そのダイナミックレンジの半分を減ずるためのＤＣレベルシフトも行われる。
【００１７】
変換後のコンポ−ネント（タイルコンポ−ネントと呼ばれる）は２次元ウェーブレット変換によってサブバンドに分割される（ｓｔｅｐ２）。すなわち、１回の２次元ウェーブレット変換によってLL，HL，LH，HHと略称される４つのサブバンドに分割される。LLサブバンドに対して再帰的に２次元ウェーブレット変換（デコンポジション）が繰り返され、最終的に１つのLLサブバンドと複数のHL，LH，HHサブバンドが生成される。各サブバンドの係数は必要に応じて線形量子化を施される（ｓｔｅｐ３）。
【００１８】
次に、各サブバンドはプリシンクトとよばれる矩形に分割される。図２に示すように、プリシンクトとは、サブバンドを矩形に分割したもので、大まかには画像中の場所（Position）を表すものである。ＨＬ，ＬＨ，ＨＨの３つのサブバンドについてのプリシンクトは、空間的に対応する３つが１まとまりとして扱われる。ただし、ＬＬサブバンドを分割したプリシンクトは１つで１まとまりとして扱われる。プリシンクトはサブバンドと同じサイズにできる。プリシンクトをさらに矩形に分割したものがコードブロックである(図２)。よって、物理的な大きさの序列は
画像≧タイル＞サブバンド≧プリシンクト≧コードブロック
となる。なお、後の説明のため、デコンポジションレベル（施すウェーブレット変換の回数）と解像度レベルの関係を図３に示す。
【００１９】
以上の分割の後、係数に対しＭＱ符号化と呼ばれるエントロピー符号化（ビットプレーン符号化）が、コードブロック毎かつビットプレーン順(より正確には、サブビットプレーン順）になされる（ｓｔｅｐ４）。サブビットプレーンとは、１枚のビットプレーンに含まれるビットを３種類に分類した結果得られる、ビットプレーンの部分集合３つを言う。したがって、JPEG2000の場合は、１つのコードブロックの１つのサブビットプレーンの符号が、符号の最小単位（符号単位）である。
【００２０】
次に、サブビットプレーンの符号から、所望の総符号量(ファイル容量)に収めるために必要な符号だけを選択して（不要な符号を破棄(トランケート)して）パケットを生成する、いわゆるレート制御と呼ばれる処理がなされる（ｓｔｅｐ５）。そして、生成されたパケットを所定の順序で並べて必要なタグ又はタグ情報を付加することにより符号化データ（コードストリーム）を生成する（ｓｔｅｐ６）。
【００２１】
さて、ｓｔｅｐ５におけるレート制御は、単に総符号量を目標に合わせるだけでなく、その符号量において最大のPSNR（Peak  Signal−to−Noise  Ratio）や最高の画質を得るために行われる。そのために、コードブロック毎かつサブビットプレーン毎に、符号の価値（重要度）の順序づけを行って、符号の取捨選択を行う。
【００２２】
良好なPSNRを得ることを目的とした場合、各コードブロックの各サブビットプレーンの符号の価値は、典型的には、
「その符号を破棄した場合の画素値の量子化誤差の増分/その符号量」‥‥(A)
で表すことができる。すなわち、ある符号を捨てても誤差が増えないのであれば、その符号は不要な符号である。ある符号を維持した場合に、誤差が減り、かつ、総符号量が増えないのであれば、その符号は維持すべき有用な符号である。
【００２３】
この様に、誤差量の増分値および符号量の増分値で規定される、符号の重要度を示す指標を一般にディストーションスロープと呼ぶ。ディストーションスロープ自体の算出式は、典型的には上記式（A）であるが、目的によって様々である。
【００２４】
さて、上記式(A)の分母である符号長は、エントロピー符号化の際に実データとして得られる量である。一方、分母である量子化誤差の増分は、コードブロック単位での誤差の増分であり、最大のPSNRを得ることを目的とする場合には、コードブロック単位での二乗誤差の増分として算出される（PSNRを最大にするには、二乗誤差を最小にする必要があるからである）。すなわち、分母は、当該コードブロックに含まれる全ての係数について、ビットを破棄した場合に増加する二乗誤差の総和をとったものにサブバンドゲイン（後述）を乗じたものである。図４のΔDi/ΔLiは、PSNRを最大にするために使用されるディストーションスロープを示したものである。
【００２５】
ここで、前記符号の価値が「ビットプレーン単位」で算出される点が重要である。つまり、MSB位置のビットを符号化した符号、LSB位置のビットを符号化した符号、という様に、ビットプレーン符号化における符号は「ビット位置」という属性を有する。つまり、ビット位置をパラメータとして、符号の価値に重み付けを行い、重み付けの結果をもとに符号の取捨選択を行うことが可能なのである。例えば、上位ビットの符号の重要度を相対的に下げるという操作は、その操作をしない場合に比べ、絶対値の大きい係数(が含まれるコードブロック)に対して多めの符号破棄を行うということであり、コントラストマスキング効果の反映に他ならない。従来から用いられているディストーションスロープは、量子化誤差と符号長で規定される数学的な算出値であるが、これにビット位置への考慮を加えることで、新たに非線形性や特殊性をディストーションスロープに反映させることができるのである。
【００２６】
なお、以上ではコードブロック単位で符号の重要度を算出する例を説明したが、コードブロックの集合、例えばサブバンド単位でのサブビットプレーンごとに重要度を算出してレート制御を行うことも可能である。また、コードブロック単位ではあるものの、サブビットプレーン毎ではなくビットプレーン毎に重要度を算出することも可能である。どの単位を重要度算出の単位にとるかは、レート制御の精度，複雑度，処理速度等の兼ね合いによって決定される。したがって、本明細書においては、符号単位(コードブロック毎かつサブビットプレーン単位)の集合で構成されるこうした単位を、「画質制御単位」と総称する。
【００２７】
また，かかる画質制御は、符号化処理の際に適用されるほか、生成済みの符号ファイルから、ファイル容量を削減した新たなファイルを生成する、いわゆる「トランスコーディング」や「パーシング」を行う場合にも適用できる。JPEG2000のような、符号単位の連結によって符号全体が構成される符号化方式(いわゆる埋め込み符号化)では、符号ファイル生成後も、不要な符号単位を切り捨てることによって、エントロピー復号（JPEG2000の場合はMQ復号）をすることなく、ファイル容量を削減することができるからである。よって、本明細書においては、画像から符号ファイルを生成するエンコーダと、生成された符号ファイルのトランスコーディングを行うトランスコーダ又はパーサーとを符号処理装置と総称する。なお、トランスコーダ／パーサーにおける画質制御のためには、例えば、符号ファイル中に、あるいは符号ファイルと対応するような形で、コードブロックごとの前記スロープと後述する式Lによる符号長を予め保持しておくことができるが、それをトランスコーダ／パーサーにおいて算出（推定）するようにしてもよい。
【００２８】
よって、請求項１に係る発明は、周波数係数を絶対値方向に複数に分割して符号単位を構成する符号化方式の符号に対しレート制御を行う符号処理装置であって、前記レート制御のための、前記符号単位の集合で構成される画質制御単位の重要度を、前記符号単位の前記分割位置に依存させることを特徴とする符号処理装置である。かかる構成によれば、画質制御単位の重要度に周波数係数における視覚的な非線形性を反映させ、主観画質等の良好なレート制御が可能となる。
【００２９】
また、請求項２に係る発明は、請求項１に係る発明の符号処理装置であって、前記分割が二進値のビット単位であり、前記画質制御単位の重要度を前記ビット位置に依存させることを特徴とする符号処理装置である。かかる構成によれば、周波数係数のビット位置による視覚的な非線形性を画質制御単位の重要度に反映させ、主観画質等の良好なレート制御が可能となる。
【００３０】
さて、前記非線形性を簡易に反映させるためには、通常のディストーションスロープに、前記画質制御単位のビット位置をパラメータとした非線形な関数を乗じればよい。従来から用いられているディストーションスロープは、量子化誤差と符号長の比として数学的に算出された計算値であり、これにビット位置を考慮して非線形性（や特殊性）を反映される例は知られていない。
【００３１】
よって、請求項３に係る発明は、請求項１又は２に係る発明の符号処理装置であって、前記画質制御単位のディストーションスロープに、該符号単位の分割位置またはビット位置をパラメータとした非線形関数を乗じることを特徴とする符号処理装置である。かかる構成によれば、画質制御単位のディストーションスロープに非線形性を簡易に反映させ、主観画質等の良好なレート制御が可能となる。
【００３２】
次に、前記特殊性を簡易に反映するためには、当該画質制御単位（符号単位）を構成する係数の、当該符号単位のビット位置のビットがMSBかLSBか等をパラメータとした非線形関数を、当該ビットの破棄によって増加する量子化誤差に乗じればよい。当該ビットがMSBか否かは係数毎に異なるため、前記乗算は係数毎に行うことになる。JPEG2000では、通常、ディストーションスロープの分子は「当該コードブロックに含まれる係数の、破棄されるビットプレーン位置のビットを破棄した場合に増加する二乗誤差について、当該コードブロック内での総和をとったもの」であるから、「当該コードブロックに含まれる係数の、破棄されるビットプレーン位置のビットを破棄した場合に増加する二乗誤差に、当該ビット位置がMSBかLSBか等をパラメータとした非線形関数を乗じたものについて、コードブロック内での総和をとったもの」とすればよい。
【００３３】
よって、請求項４に係る発明は、周波数係数を絶対値方向に複数に分割して符号単位を構成する符号化方式の符号に対しレート制御を行う符号処理装置であって、前記レート制御のための、前記符号単位の集合で構成される画質制御単位の重要度を、該画質制御単位に含まれる係数の分割部分が特定の部分を含むか否かで異ならせることを特徴とする符号処理装置である。かかる構成によれば、画質制御単位の重要度に前記特殊性を簡易に反映させることができるため、主観画質等の良好なレート制御が可能となる。
【００３４】
また、請求項５に係る発明は、請求項４に係る発明の符号処理装置であって、前記分割が二進値のビット単位であり、前記画質制御単位の重要度を、該画質制御単位に含まれる係数のビットが特定のビットを含むか否かで異ならせることを特徴とする符号処理装置である。かかる構成によれば、二進値における前記特殊性を画質制御単位の重要度に反映させることができるため、主観画質等の良好なレート制御が可能となる。
【００３５】
また、請求項６に係る発明は、請求項５に係る発明の符号処理装置であって、前記画質制御単位に含まれる係数を破棄した場合の誤差の増分値に、該係数の分割部分またはビットが特定のものであるか否かをパラメータとした非線形関数を乗じることを特徴とする符号処理装置である。かかる構成によれば、前記特殊性を簡易に画質制御単位の重要度に反映させ、主観画質等の良好なレート制御が可能となる。
【００３６】
さて、請求項３又は６に係る発明において、非線形性をどう与えるかは、それによりどのような目的（効果）を得ようとするかに依存する。例えば、より高い主観画質を得ることが目的であれば、マスキング効果を利用すべく、前記ビット位置が高いほど、あるいは当該ビットがMSBである場合に前記非線形関数が小さな値をとるようにすればよい。逆に、主観画質の高低ではなく、できるだけ多くのエッジが残った状態の画質を得ることが目的であれば（例えば防犯カメラ等で犯人の人相を特定したい場合には、輪郭，しわ，ほくろ等のエッジ情報が重要である）、前記ビット位置が高いほど（すなわち、当該ビットがエッジを担うMSBである確率が高いほど）、あるいは当該ビットがMSBである場合に、前記非線形関数が大きくなるようにすればよい。
【００３７】
よって、請求項７に係る発明は、請求項１乃至６のいずれか１項に係る符号処理装置であって、前記非線形性を反映させる目的に応じて前記重要度又は非線形関数を異ならせることを特徴とする符号処理装置である。かかる構成によれば、主観画質の向上、エッジの維持、テクスチャの維持といった目的に応じた非線形性を反映させたレート制御が可能となる。
【００３８】
また、請求項８に係る発明は、請求項３に係る発明の符号処理装置であって、前記ビット位置が高いほど前記非線形関数が小さな値をとることを特徴とする符号処理装置である。かかる構成によれば、マスキング効果を反映させたレート制御が可能となる。
【００３９】
また、請求項９に係る発明は、請求項６に係る発明の符号処理装置であって、前記非線形関数は前記ビットがMSBである場合に最小値をとることを特徴とする符号処理装置である。かかる構成によれば、エッジの維持を重要視しないレート制御が可能となる。
【００４０】
また、請求項１０に係る発明は、請求項３に係る発明の符号処理装置であって、前記非線形関数は前記ビット位置が高いほど大きな値をとることを特徴とする。かかる構成によれば、エッジの維持を重要視したレート制御が可能となる。
【００４１】
また、請求項１１に係る発明は、請求項６に係る発明の符号処理装置であって、前記非線形関数は前記ビットがMSBである場合に最大値をとることを特徴とする符号処理装置である。かかる構成によれば、エッジの維持を重要視したレート制御が可能となる。
【００４２】
先述のように、テクチャを保存したい場合には、LSB付近のビットプレーンを維持するのが望ましい。
【００４３】
よって、請求項１２に係る発明は、請求項３に係る発明の符号処理装置であって、前記非線形関数は前記ビット位置が所定値以下の場合に最小値をとらないことを特徴とする符号処理装置である。かかる構成によれば、テクスチャの維持を重要視したレート制御が可能となる。
【００４４】
また、請求項１３に係る発明は、請求項６に係る発明の符号処理装置であって、前記非線形関数は前記ビットが所定位置以下である場合に最小値をとらないことを特徴とする符号処理装置である。かかる構成によれば、テクスチャの維持を重要視したレート制御が可能となる。
【００４５】
さて、静止画では、文字通り静止しているため細部を観察されやすいため、動画に比べ、高い解像度や多くの高周波成分を必要する。一方、動画は、画面の連続として表示され、それを見る人間は画面内の細部よりも画面間の差分に敏感となる。特に低周派成分の誤差が大きい場合には、画面間の広い領域に渡って差分が大きくなり、該差分がうねりとなって観察されることがある。したがって、動画については、静止画に比べ、より低周波成分を重視した、逆に言えば高周波成分を軽視した取扱いが望ましいことが多い。高周波成分の軽視は、すなわちエッジの軽視であり、これは上位ビットの符号の重要度を低くすることに他ならない。
【００４６】
よって、請求項１４に係る発明は、請求項７に係る発明の符号処理装置であって、処理対象が動画であるか静止画であるかによって前記重要度又は非線形関数を異ならせることを特徴とする符号処理装置である。かかる構成によれば、動画と静止画の特性の違いを考慮したレート制御が可能となる。
【００４７】
また、請求項１５に係る発明は、請求項１４に係る発明の符号処理装置であって、処理対象が動画である場合、前記非線形関数は前記ビット位置が高いほど小さな値をとることを特徴とする符号処理装置である。かかる構成によれば、動画の特性を考慮したレート制御が可能となる。
【００４８】
また、請求項１６に係る発明は、請求項１４に係る発明の符号処理装置であって、処理対象が動画である場合、前記非線形関数は前記ビットがMSBであるときに最小値をとることを特徴とする符号処理装置である。かかる構成によれば、動画の特性を考慮したレート制御が可能となる。
【００４９】
また、請求項１７に係る発明は、周波数係数を絶対値方向に複数に分割して符号単位を構成する符号化方式の符号に対しレート制御を行う符号処理方法であって、前記レート制御のための、前記符号単位の集合で構成される画質制御単位の重要度を、前記符号単位の前記分割位置に依存させることを特徴とする符号処理方法である。かかる符号処理方法によれば、画質制御単位の重要度に周波数係数のビット位置による視覚的な非線形性を反映させ、主観画質等の良好なレート制御が可能となる。
【００５０】
また、請求項１８に係るは発明は、請求項１７に係る発明の符号処理方法であって、前記分割が二進値のビット単位であり、前記画質制御単位の重要度を前記ビット位置に依存させることを特徴とする符号処理方法である。かかる符号処理方法によれば、画質制御単位の重要度に周波数係数のビット位置による視覚的な非線形性を反映させ、主観画質等の良好なレート制御が可能となる。
【００５１】
また、請求項１９に係る発明は、請求項１７又は１８に係る発明の符号処理方法であって、前記画質制御単位のディストーションスロープに、該符号単位の分割位置またはビット位置をパラメータとした非線形関数を乗じることを特徴とする符号処理方法である。かかる符号処理方法によれば、ディストーションスロープに非線形性を簡易に反映させ、主観画質等の良好なレート制御が可能となる。
【００５２】
また、請求項２０に係る発明は、周波数係数を絶対値方向に複数に分割して符号単位を構成する符号化方式の符号に対しレート制御を行う符号処理方法であって、前記レート制御のための、前記符号単位の集合で構成される画質制御単位の重要度を、該画質制御単位に含まれる係数の分割部分が特定の部分を含むか否かで異ならせることを特徴とする符号処理方法である。かかる符号処理方法によれば、画質制御単位の重要度に前記特殊性を反映させ、主観画質等の良好なレート制御が可能となる。
【００５３】
また、請求項２１に係る発明は、請求項１乃至１６のいずれか１項に係る発明の符号処理装置としてコンピュータを機能させるプログラムであり、コンピュータを利用して請求項１乃至１６に係る発明の符号処理装置を実現可能とするものである。
【００５４】
また、請求項２２に係る発明は、請求項１乃至１６のいずれか１項に係る発明の符号処理装置としてコンピュータを機能させるプログラムが記録された、コンピュータが読み取り可能な情報記録媒体であり、コンピュータを利用して請求項１乃至１６に係る発明の符号処理装置を実現可能とするものである。
【発明の効果】
【００５５】
以上に述べたように、請求項１乃至２０に係る発明によれば、エンコーダやトランスコーダもしくはパーサーにおいて、周波数係数の非線形量子化を用いることなく、主観画質の良好なレート制御、エッジの維持を重要視しないレート制御、エッジの維持を重要視したレート制御、テクスチャの維持を重要視したレート制御、動画と静止画の特性の違いを考慮したレート制御、動画の特性を考慮したレート制御が可能となる。また、請求項２１，２２に係る発明によれば、コンピュータを利用して請求項１乃至１６に係る発明の符号処理装置を容易に実現可能となる、等々の効果を得られる。
【発明を実施するための最良の形態】
【００５６】
図５は、本発明の一実施形態に係る符号処理装置のブロック図である。本実施形態に係る符号処理装置は、JPEG2000のアルゴリズムに準拠して画像からその符号ファイルを生成するエンコーダであり、図１に示したｓｔｅｐ１，２，３，４，５に対応した処理を実行するための処理ブロック１００，１０１，１０２，１０３，１０４，１０５から構成される。この符号処理装置の基本的な処理動作は従来のJPEG2000に準拠したエンコーダと同様であるが、処理ブロック１０３におけるディストーションスロープの計算に本発明が適用され、その処理内容は本発明に特有である。そして、処理ブロック１０３で求められたディストーションスロープが処理ブロック１０４でのレート制御に適用される。図１３に処理ブロック１０３，１０４，１０５による処理の流れを示す。
【００５７】
図１３のフローチャートに沿った説明に先立ち、レート制御に必要な符号長計算、誤差計算、ディストーションスロープの計算の方法について説明する。
【００５８】
まず、JPEG2000において各サブビットプレーンの符号長を計算する方法について説明する。この計算は処理ブロック１０３で行われる。
【００５９】
JPEG2000のエントロピー符号化はコードブロック単位でビットプレーン順になされる。例えば、次のようなネストされたｆｏｒループ
for(コンポ−ネント)｛
for(解像度)｛
for(サブバンド)｛
for(プリシンクト)｛
for(コードブロック)｛
for(サブビットプレーン)｛
ＭＱ符号化
｝
｝
｝
｝
｝
｝
により定まる順で処理される（各ｆｏｒループの物理的な位置関係に関しては図２及び図３を参照）。
【００６０】
この場合、MQ符号化で生成されるMQ符号は、図７に示す様にサブビットプレーン順に生成され、図８に示す様にシーケンシャルに連結されたものとなる。MQ符号器は、各サブビットプレーンkの符号化が終わった時点で、その時点までに生成した（正確には、バイト単位ではき出した）符号長の合計L(k)を出力する。よって、この合計値を保持しておき、あるサブビットプレーンでの符号長合計値と、その直前のサブビットプレーンまでの符号長合計値との差分をとることにより、各サブビットプレーンごとの符号長を算出することができる。
【００６１】
レート制御（処理ブロック１０４）においては、図８のシーケンシャルな符号のうち、下位サブビットプレーン側から不要な部分を破棄(トランケート)し、必要な符号のみを集めてパケット生成を行う。ただし、サブビットプレーンkより下の符号が破棄されたMQ符号が正しくMQ復号されるためには、最大で、サブビットプレーンkまでに生成した符号長の合計＋５バイト分の符号が必要になることがある（符号はバイト単位でＭＱ符号器から出力されるので、符号器内部に残っているバイト未満の符号があること等の事情による）。よって、ここでは、
「各サブビットプレーンの符号化が終わった時点で、その時点までに生成した符号長の合計L(k)＋５」                                                        ‥‥式L
を保持しておき、この差分をとることで各サブビットプレーンごとの符号長ΔLを算出するものとする。
【００６２】
次に、各サブビットプレーンを破棄した場合の二乗誤差の増分の算出法について説明する。図９に示すように、
・量子化前のウェーブレット係数の絶対値を  y
・ビットプレーンをp枚トランケートした後（2pで量子化し整数化した後）のウェーブレット係数を  vp
・ビットプレーンをp枚トランケートした後，逆量子化した後のウェーブレット係数を
yp^
・ウェーブレット係数yを，2pで除算した後のウェーブレット係数の小数部分を  vp~
とする。トランケーションでは、量子化後のウェーブレット係数はフロア関数で整数化されるが、整数部分vpと小数部分vp~に分けて考える。なお、サブビットプレーンはビットプレーンの部分集合であるから、当該サブビットプレーンが含まれるビットプレーンがトランケートされた場合には、その各サブビットプレーンもトランケートされことになる。
【００６３】
トランケートするビットプレーンをp枚からp+1枚に増やしたときの二乗誤差の
増分Δ(D2)は、
Δ(D2)＝（y(p+1)^−y)2−（yp^−y)2
となるが、これを小数部分vp~の関数として表す。
【００６４】
まず、係数yの大きさとトランケート量の大小関係により、１つの係数について
（ケースＡ）vp=0かつvp+1=0    （このときΔ(D2)＝0）
（ケースＢ）vp=1かつvp+1=0    （p+1枚目で、ちょうど係数yのMSBがトランケートされる)
（ケースＣ）vp≧2かつvp+1≧1    （p+1枚目でも、まだ係数yのMSBが生き残る)
の３通りのいずれかが成立する（以下、vp+1=0の場合に注意を要する）。
【００６５】
また、上記小数部分の定義より、vp~=y/2p−vpであるから、
y=2p(vp＋vp~)    ‥‥(1)
同様に、vp+1~=y/2(p+1)−vp+1より、
y=2p+1(vp+1＋v(p+1)~)    ‥‥(2)
ただし、vp+1=0のときは、
y=2p+1・v(p+1)~    ‥‥(3)となる。
【００６６】
また，逆量子化後の係数は、区間中央に復号するとして、
yp^＝2p(vp＋0.5)        (ただしvp≠0)    ‥‥(4)
ただし、量子化後０となった係数は０に復号するので、
yp^＝0        (ただしvp＝0)    ‥‥(5)
同様に、
y(p＋1)^＝2p+1(vp+1＋0.5)        (ただしvp+1≠0)    ‥‥(6)
y(p＋1)^＝0        (ただしvp+1＝0)    ‥‥(7)
となる。
【００６７】
（ケースＡ）の様に、注目係数について、vp=0のときは、トランケートする枚数をp枚からp+1枚に増やしても、これ以上誤差は増えない。
【００６８】
（ケースＢ）の様に、注目係数について、vp=1かつvp+1=0  のとき、二乗誤差の
増分Δ(D2)は，
Δ(D2)＝（y(p+1)^−y)2−(yp^−y)2
＝（0−y)2−（yp^−y)2          (∵式(7))
＝y2−(yp^−y)2
＝(2p+1・v(p+1)~)2−(2p(vp＋0.5)−2p(vp＋vp~))2    (∵式(3)，(4)，(1))
＝(2p+1・v(p+1)~)2−(2p(0.5−vp~))2
＝22p｛（2・v(p+1)~）2−(vp~−0.5)2}
ここで、vp~＝2・v(p+1)~−｜_2・v(p+1)~_｜    ‥‥(8)
ただし、式(8)中の|_ｘ_|は、ｘのフロア関数（実数ｘを、ｘを越えず、かつ、ｘに最も近い整数に置換する関数）を示す。
【００６９】
また、vp+1＝0のとき、｜_2・v(p+1)~_｜≧1  なので、vp~＝2・v(p+1)~−1
∴Δ(D2)＝22p{（2・v(p+1)~）2−(2・v(p+1)~−1.5)2}≡22p・S(v(p+1)~)
となる。
【００７０】
（ケースＣ）の場合、二乗誤差の増分Δ(D2)は，
Δ(D2)＝（y(p+1)^−y）2−(yp^−y)2
＝(2p+1(vp+1＋0.5)−2p+1(vp+1＋v(p+1)~))2−(2p(vp＋0.5)−2p(vp＋vp~))2
(∵式(6)，(2)，(4)，(1))
＝(2p+1(0.5−v(p+1)~))2−(2p(0.5−vp~))2
＝22p{(2・v(p+1)~−1)2−(vp~−0.5)2}
＝22p{(2・v(p+1)~−1)2−(2・v(p+1)~−｜_2・v(p+1)~_｜−0.5)2}≡22p・M(v(p+1)~)
となる。
【００７１】
以上より、各サブビットプレーンにおける注目コードブロック内での二乗誤差の増分の総和ΣΔ(D2)は、(ケースＢ)または(ケースＣ)の増分のコードブロック内での総和となり、ウェーブレット係数yを2p+1で除算した後の小数部分を改めてhとすれば、
ΣΔ(D2)＝22p{S(h)＋M(h)}
＝22p・Σ{（2h）2−(2h−1.5)2}          (vp=1，MSBの場合)
＋22p・Σ{（2h−1）2−(2h−｜_2h_｜−0.5)2}    (vp≧2，MSB以外の場合)
・・・・式Ｄ１
となる。
【００７２】
ただし、p=0のときは、トランケーションはされず、5x3変換の場合はロスレスになるので、
Δ(D2)＝(y(p+1)^−y)2−（yp^−y)2＝（y(p+1)^−y)2となり、
ΣΔ(D2)＝22p{S(h)＋M(h)}
＝22p・Σ{（2h）2}              (vp=1，MSBの場合)
＋22p・Σ{（2h−1）2}        (vp≧2，MSB以外の場合)
・・・・式Ｄ２
となる。
【００７３】
なお、係数に生じた誤差は、逆ウェーブレット変換を経て画素値の誤差に変換されるが、前記画素値の二乗誤差は、前記係数の二乗誤差の定数倍として近似的に扱うことができる。該定数は、サブバンドに依存し、サブバンドゲインと呼ばれる。また、原画像に対してＹＣｂＣｒ等へのコンポーネント変換がなされ、コンポーネントに対してウェーブレット変換がなされている場合は、コンポーネントからＲＧＢ画素値へ逆変換する際の二乗誤差の倍率であるコンポーネント変換ゲインＧｃも考慮する必要がある（Ｇｃはサブバンドによらない値をとる）。
【００７４】
以上より、サブバンドbに属する各コードブロックに関し、各サブビットプレーンのディストーションスロープは以下の様に算出できることになる。
【００７５】
（Gb×Gc×STEPb2）×ΣΔ(D2)／ΔL          ・・・・式Ｓ０
ここで、Σはコードブロック内の全係数についてとり、Gbはサブバンドｂのサブバンドゲイン、STEPbはサブバンドbに対する量子化ステップ数である(量子化しない場合はSTEPb＝１)。よって、これを、コードブロック内の全てのサブビットプレーンについてとれば、当該コードブロックに関するディストーションカーブ(図４のような折れ線形状)を得ることができる。
【００７６】
なお、通常、ディストーションカーブは図４のような下に凸の単調減少な形状となるが、例外的に図１０のように凹部が生じることがある。この場合は、図１０に示すように、複数のサブビットプレーンを一体化したスロープを計算し直し、単調減少に整形する。この処理は例外処理でもあり、凹凸の判断は傾きの比較によって容易にでき、一体化した傾きを求めるのも簡単であるため、その詳細な手順は省略する。
【００７７】
さて、以上の処理で、全てのサブバンド、全てのコードブロックに対して、単調減少なディストーションカーブを生成された後に、いわゆるラグランジェレート制御が行われる。
【００７８】
すなわち、あるコードブロックiについてトランケーションするサブビットプレーン数をtとした場合に、維持される符号長をＲ(t)、係数に生じる二乗誤差をΣＤ2(t)とすれば、
所望の符号量Ｒ下でPSNRを最大にするためには、
Σ｛ΣD2(t)｝→最小  (最初の総和は全コードブロックについてとり、次の総和はコードブロックｉ内の全ての係数についてとる)
かつ
ΣＲ(t)−Ｒ＝０  (総和は全コードブロックについてとる)
を満たせばよい。このとき、未定乗数をλとしたラグランジェ関数Lag(t，λ)は、
Lag(t，λ)＝Σ｛ΣD2(t)｝＋λ｛ΣＲ(t)―Ｒ｝
となる。
【００７９】
ここで、第１項Σ｛ΣD2(t)｝が極値をとる条件は、ラグランジェ関数の偏微分が０となることから、全てのiについて
∂ΣD2(t)/∂t＋λ｛∂Ｒ(t)/∂t｝＝０
∴∂ΣD2(t)/∂Ｒ(t)＝−λ
かつ
ΣＲ(t)＝Ｒ
である。
【００８０】
よって、各ディストーションカーブに対し、図１１のように任意の値λ(＞０)よりも大きなスロープを持つサブビットプレーンの符号(図１０で傾き−λの線分との接点より左側にある部分)だけを維持し、それ以外の符号を破棄する。そして、全サブバンド，全コードブロックに関し、値λに対応した符号長の総和Ｒ(λ)を算出する。
【００８１】
ここで、Ｒ(λ)が所望の値Ｒより大きければλを大きくしてＲ(λ)を計算し直し、逆にＲ(λ)が所望の値より小さければλを小さくしてＲ(λ)を計算し直す。そして、Ｒ(λ)が「所望の値Ｒ±許容誤差」になるまで、これを繰り返す。該λの探索は、いわゆる二分探索法で容易に行うことができる。
【００８２】
こうして生成した符号は、容量Ｒ(λ)において、ΣＤ2(t)を最小にするため、最良のPSNRを持つことになる。なお、より詳細には、上記のようにして維持した符号長の総和の他に、該符号から生成するパケットのヘッダやメインヘッダが必要なため、これらのヘッダ長も加味することになる。
【００８３】
以上のように、ディストーションスロープさえ規定できれば、ラグランジェの未定乗数法によってレート制御が可能であり、本発明では以下の様なスロープを使用する。
【００８４】
各サブビットプレーンが属するビットプレーンの番号(LSBの番号が０)をpとし、例えばpに対して非線形な関数を例えば
ｆ1(p)＝(0.8)p
とする。すなわち，ｆ1(p)はpに対して単調減少であり(請求項１，２，３)、
当該画質制御単位のスロープ＝ｆ1(p)×（Gb×Gc×STEPb2）×ΣΔ(D2)／ΔL
‥‥式S1
とする。このように、上位ビットの符号の重要度を相対的に下げることにより、該操作をしない場合に比べ、絶対値の大きい係数(が含まれるコードブロック)に対して多めの符号破棄を行うことができる。
【００８５】
図１２は、上記作用に関する模式的な説明図であり、３つのコードブロックA，B，Cの本発明適用前後のスロープの値を示している。コードブロックA，B，Cに含まれる係数の絶対値は、平均的にA＜B＜Cとなっている。このことは、スロープの最大値がA＜B＜Cであることで示唆される。係数の絶対値が大きいほど、MSBがトランケートされたときの誤差が大きくなるため、結果的にスロープの最大値が大きくなるからである。
【００８６】
図１２の上段がf1(p)を乗じる前（本発明適用前）のスロープであり、例えば2000以下のスロープ部分を破棄するとすると網掛け部分の符号が破棄されることになる。これに対し、f1(p)を乗じて求めたスロープ（本発明適用後のスロープ）が下段であり、例えば1000以下のスロープ部分を破棄するとすると網掛け部分の符号が破棄されることになる。
【００８７】
図１２の網掛け部分を比較すれば明らかなように、本発明用後は、平均的に絶対値の大きいコードブロックのトランケート量が増え、そうでないコードブロックのトランケート量が減る効果が生じる。したがって、コントラストマスキング効果を利用することができる。
【００８８】
さて、図１３は、本実施形態に係る符号処理装置における処理ブロック１０３，１０４，１０５の処理を説明するためのフローチャートである。ｓｔｅｐ１３００〜１３０６は処理ブロック１０３における処理ステップであり、ＭＱ符号化、サブビットプレーン毎の符号長及びスロープの算出を行う。ｓｔｅｐ１３０７は処理ブロック１０４におけるレート制御の処理ステップであり、ｓｔｅｐ１３０８は処理ブロック１０５における符号形成の処理ステップである。
【００８９】
ｓｔｅｐ１３００〜１３０６は、次のようなネストされたｆｏｒループ
for(コンポ−ネント)｛
for(解像度)｛
for(サブバンド)｛
for(プリシンクト)｛
for(コードブロック)｛
for(サブビットプレーン)｛
ＭＱ符号化、サブビットプレーンごの符号長を保持（ｓｔｅｐ１３０５）
｝
for(サブビットプレーン)｛
スロープを計算し保持（ｓｔｅｐ１３０６）
｝
｝
｝
｝
｝
｝
を構成することは明らかである。
【００９０】
そして、ｓｔｅｐ１３０７では、算出されたスロープを用いて公知の二分探索でλを決定し、不要なＭＱ符号を破棄し、必要なＭＱ符号を用いてパケットを形成する。次のｓｔｅｐ１３０８で、それらパケットを配置し、また必要なタグ及びタグ情報を付加しＪＰＥＧ２０００の符号ファイルを生成する。
【００９１】
さて、ｓｔｅｐ１３０６であるが、第１の実施例にあっては、前述のように、サブビットプレーンごとに、式LでΔLを計算し、式D1，D2で誤差ΣΔD2を計算し、f1(p)及び式Ｓ１を用いてスロープを計算して保持する。
【００９２】
なお、以上では簡易に、関数ｆ1(p)＝(0.8)p  としたが、コントラストマスキング効果を反映するためには、それは非線形な関数であればよく、テーブル形式で定義してもよい。また、その関数はpに対して単調減少であるのが典型である(請求項８)。また厳密には、コントラストマスキング効果は信号値が所定値Th以上の範囲で成立するので、例えばp＜3では値１をとり、p≧3では単調に減少していく関数でもよい。
【００９３】
さて、以上の説明においては、コードブロックごとの各サブビットプレーンにまとめてf1(p)を乗じたが、係数毎に乗じる方法もある。前述のように、誤差Δ(D2)は、各係数ごとに算出されて総和をとられるからである。そこで
f2(p)＝1  （ただし，pがその係数のMSBでない場合）
f2(p)＝0.8  （ただし，pがその係数のMSBである場合）
なるf2(p)を用意し、
ΣΔ(D2)＝22p{S(h)＋M(h)}
＝22p・Σ［{（2h）2−(2h−1.5)2}×f2(p)］    (vp=1，MSBの場合，f2(p)=0.8)
＋22p・Σ［{（2h−1）2−(2h−｜_2h_｜−0.5)2}×f2(p)］
(vp≧2，MSB以外の場合)
‥‥式D3
ただし、p=0のときは、
ΣΔ(D2)＝22p{S(h)＋M(h)}
＝22p・Σ［｛（2h）2｝×f2(p)］          (vp=1，MSBの場合，f2(p)=0.8)
＋22p・Σ［{（2h−1）2}×f2(p)］    (vp≧2，MSB以外の場合)
‥‥式D4
として、ΣΔ(D2)を算出すれば、MSBが多く含まれるコードブロックほど、誤差の増加量ΣΔ(D2)が小さくなり、スロープが小さくなる(請求項４，５，６，９)。その結果、f2(p)を乗じない場合に比べ、MSBが多く含まれるコードブロックほどトランケートされやすくなる。したがって、エッジの再現性は低下するが、その分たけ非エッジすなわち低周波成分に多くの符号が割り当てられ、特に動画などで安定した画質が得られるのである。低周波成分に優先的に符号を割り当てる点では、コントラストマスキングと同じ効果を生むことが出来るとも言える。
よって、第２の実施例によれば、ｓｔｅｐ１３０６において、サブビットプレーンごとに、式ＬでΔＬを算出し、f2(p)と式Ｄ３，Ｄ４で誤差ΣΔD2を計算し、式Ｓ０を用いてスロープを計算して保持する（請求項４，５，６，９）。
【００９４】
さて、以上とは異なり、あくまでエッジの再現性を優先したいということであれば，
ｆ3(p)＝(1.1)p
とする。すなわち、ｆ3(p)はpに対して単調増加であり(請求項１０)、
当該画質制御単位のスロープ＝ｆ3(p)×（Gb×Gc×STEPb2）×ΣΔ(D2)／ΔL
‥‥式S3
とする。このように、上位ビットの符号の重要度を相対的に上げることにより、該操作をしない場合に比べ、絶対値の大きい係数(が含まれるコードブロック)に対して少な目の符号破棄を行うことができる。
【００９５】
よって、第３の実施例によれば、ｓｔｅｐ１３０６において、サブビットプレーンごとに、式ＬでΔＬを算出し、式Ｄ１，Ｄ２で誤差ΣΔD2を計算し、f3(p)及び式Ｓ３を用いてスロープを計算して保持する（請求項１，２，３，１０）。
【００９６】
また、係数毎に乗じる方法では、
f4(p)＝1    （ただし、pがその係数のMSBでない場合）
f4(p)＝1.2    （ただし、pがその係数のMSBである場合）
なるf4(p)を用意し、
ΣΔ(D2)＝22p{S(h)＋M(h)}
＝22p・Σ［{（2h）2−(2h−1.5)2}×f4(p)］    (vp=1，MSBの場合，f4(p)=1.2)
＋22p・Σ［{（2h−1）2−(2h−｜_2h_｜−0.5)2}×f4(p)］  (vp≧2，MSB以外の場合)
‥‥式D5
ただし、p=0のときは、
ΣΔ(D2)＝22p{S(h)＋M(h)}
＝22p・Σ［｛（2h）2｝×f4(p)］      (vp=1，MSBの場合，f4(p)=1.2)
＋22p・Σ［{（2h−1）2}×f4(p)］    (vp≧2，MSB以外の場合)
‥‥式D6
としてΣΔ(D2)を算出すれば、MSBが多く含まれるコードブロックほど、誤差の増加量ΣΔ(D2)が大きくなり、スロープが大きくなる。その結果、MSBが多く含まれるコードブロックほどトランケートされなくなり、エッジの再現性が向上するのである。
【００９７】
よって、第４の実施例によれば、ｓｔｅｐ１３０６において、サブビットプレーンごとに、式ＬでΔＬを算出し、f4(p)と式Ｄ１，Ｄ２で誤差ΣΔD2を計算し、式Ｓ０を用いてスロープを計算して保持する（請求項４，５，６，１１）。
【００９８】
また、以上とは異なり、原画像のテクスチャを維持したい場合には、例えば
ｆ5(p)＝1    (0≦p≦2)
ｆ5(p)＝0.8    (p＞2)
なるf5(p)を用意する。すなわち、ｆ5(p)を、所定値以下のpに対して最小値をとらない様にする(請求項１２)。そして、
当該画質制御単位のスロープ＝ｆ5(p)×（Gb×Gc×STEPb2）×ΣΔ(D2)／ΔL
‥‥式S5
とする。一般にテクスチャは、値の小さな(例えば絶対値8未満の)周波数係数に変換されるため、このように下位ビットの符号の重要度を相対的に上げることにより、該操作をしない場合に比べ、絶対値の小さい係数(が含まれるコードブロック)に対して少な目の符号破棄を行うことができる(デコンポジションレベルの高いサブバンドの上位ビットのスロープが、該レベルの低いサブバンドの下位ビットのスロープよりも小さいことがありうるため。ただし、この効果が生じるのは主に圧縮率が低い場合である)。
【００９９】
よって、第５の実施例によれば、ｓｔｅｐ１３０６において、サブビットプレーンごとに、式ＬでΔＬを算出し、式Ｄ１，Ｄ２で誤差ΣΔD2を計算し、f5(p)と式Ｓ５を用いてスロープを計算して保持する（請求項１，２，３，１２）。
【０１００】
また、係数毎に乗じる方法では、
ｆ6(p)＝1    (その係数が7未満の場合)
ｆ6(p)＝0.8    (その係数が8以上の場合)
なるf6(p)を用意し、
ΣΔ(D2)＝22p{S(h)＋M(h)}
＝22p・Σ［{（2h）2−(2h−1.5)2}×f6(p)］    (vp=1，MSBの場合)
＋22p・Σ［{（2h−1）2−(2h−｜_2h_｜−0.5)2}×f6(p)］
(vp≧2，MSB以外の場合)
‥‥式D7
ただし、p=0のときは，
ΣΔ(D2)＝22p{S(h)＋M(h)}
＝22p・Σ［｛（2h）2｝×f6(p)］      (vp=1，MSBの場合)
＋22p・Σ［{（2h−1）2}×f6(p)］    (vp≧2，MSB以外の場合)
‥‥式D8
としてΣΔ(D2)を算出すれば、7未満の係数が多く含まれるコードブロックほど、誤差の増加量ΣΔ(D2)が大きくなり、スロープが大きくなる。その結果、7未満の係数が多く含まれるコードブロックほどトランケートされなくなり、テクスチャの再現性が向上するのである。
【０１０１】
よって、第６の実施例によれば、ｓｔｅｐ１３０６において、サブビットプレーンごとに、式ＬでΔＬを算出し、f6(p)と式Ｄ７，Ｄ８で誤差ΣΔD2を計算し、式Ｓ０を用いてスロープを計算して保持する（請求項４，５，６，１３）。
【０１０２】
また、静止画はエッジ重視、動画は低域重視という目的で非線形性を切り替えることもできる（請求項７，１４，１５）。
【０１０３】
例えば、第７の実施例によれば、符号化対象が静止画のときには、ｓｔｅｐ１３０６において、サブビットプレーンごとに、式ＬでΔＬを算出し、式Ｄ１，Ｄ２で誤差ΣΔD2を計算し、f1(p)と式Ｓ１を用いてスロープを計算して保持するが、符号化対象が動画のときには、ｓｔｅｐ１３０６において、サブビットプレーンごとに、式ＬでΔＬを算出し、式Ｄ１，Ｄ２で誤差ΣΔD2を計算し、f3(p)と式Ｓ３を用いてスロープを計算して保持する。
【０１０４】
また、第８の実施例によれば、符号化対象が静止画のときには、ｓｔｅｐ１３０６において、サブビットプレーンごとに、式ＬでΔＬを算出し、f2(p)と式Ｄ３，Ｄ４で誤差ΣΔD2を計算し、式Ｓ０を用いてスロープを計算して保持するが、符号化対象が動画のときには、ｓｔｅｐ１３０６において、サブビットプレーンごとに、式ＬでΔＬを算出し、f4(p)と式Ｄ５，Ｄ６で誤差ΣΔD2を計算し、式Ｓ０を用いてスロープを計算して保持する。
【０１０５】
先に述べたように、一旦生成された符号ファイルに対するトランスコーディングの際のレート制御にも本発明を適用できる。
【０１０６】
図１４は、このようなトランスコーディングを実行する、本発明の第２の実施形態に係る符号処理装置（トランスコーダ／パーサー）を説明するための簡略化したブロック図である。本実施形態に係る符号処理装置は、処理しようとする符号ファイルに対し符号解析を行う処理ブロック２００、不要な符号を破棄し必要な符号を用いてパケットを再生成（レート制御）する処理ブロック２０１、再生成されたパケットから符号再形成を行って新たな符号ファイルを生成する処理ブロック２０２から構成される。
【０１０７】
図１５は、この符号処理装置の処理の流れを説明するためのフローチャートである。ｓｔｅｐ２１００〜２１０５は、符号解析の処理ブロック２００における処理ステップであり、その内容は次のようなネストされたｆｏｒループ
for(コンポ−ネント)｛
for(解像度)｛
for(サブバンド)｛
for(プリシンクト)｛
for(コードブロック)｛
for(サブビットプレーン)｛
コードブロックの符号に対応したスロープと必要な符号長(式Lの結果)を読み込む（ｓｔｅｐ２１０５）
｝
｝
｝
｝
｝
｝
で表されることは明らかである。
【０１０８】
そして、ｓｔｅｐ２１０６において、処理ブロック２０１は、公知の二分探索でλを決定し、コードブロックごとに維持すべきサブビットプレーン数と必要な符号長を算出し、パケットより不要な符号を破棄し、それに対応してパケットヘッダを再生成することにより、レート制御されたパケットを再生する。ｓｔｅｐ２１０７において、処理ブロック２０２は再生成されたパケットを配置して新たな符号ファイルを再生成することになる。
【０１０９】
なお、パケットヘッダの再生成に必要なデータは、
(ａ)パケットが空かどうか
(ｂ)そのパケットに含まれるコードブロック
(ｃ)各コードブロックのゼロビットプレーン数
(ｄ)各コードブロックに含まれるサブビットプレーン数
(ｅ)各コードブロックのMQ符号長
であるが、(ｃ)は原符号のパケットヘッダに書かれている値を再利用し、その他はレート制御の結果を反映したサブビットプレーン数，符号長等を用いることになる。
【０１１０】
なお、先述のように、トランスコーダ／パーサーにおいて、符号からレート制御に必要な符号長計算、誤差計算、ディストーションスロープ計算などを行い、その情報を用いてレート制御を行うことも可能であり、かかる態様も本実施形態に包含される。
【０１１１】
また、サブバンドゲインについては「J．Katto  and  Y．Yasuda，”Performance  evaluation  of  subband  coding  and  optimization  of  its  filter  coefficients，”Journal  of  Visual  Communication  and  Image  Representation，vol．2，pp．303−313，Dec，1991」中の”Gsbc”に詳しいが、図２１に5x3変換と9x7変換のサブバンドゲインを示す。JPEG2000では、5x3変換にはRCTと呼ばれるコンポーネント変換が、9x7変換にはICTと呼ばれるコンポーネント変換が用いられるが、それらの逆変換時のゲインも図１６に示されている。
【０１１２】
なお、図５に関連して説明した本発明に係る符号処理装置（エンコーダ）は、例えば図６に示すようなＣＰＵ１５０、メモリ１５１、ハードディスク装置（ＨＤＤ）１５２などをバス１５３で接続したようなコンピュータにおいて、ソフトウェアにより実現することも可能である。すなわち、図５の処理ブロック１００〜１０５としてコンピュータを機能させるためのプログラムをメモリ１５１にロードし、それをＣＰＵ１５０で実行させることによって、コンピュータを本発明に係る符号処理装置として機能させるわけである。この場合の処理の流れは概ね次のようになる。
（１）ＨＤＤ１５２に記憶されているオリジナル画像のうちの１つのフレームが、ＣＰＵ１５０からの命令によってメモリ１５１に読み込まれる。
（２）ＣＰＵ１５０は、メモリ１５１上の画像を読み込み、JPEG2000フォーマットでの符号化を行うが、その際のレート制御（符号破棄）に本発明を適用する。
（３）ＣＰＵ１５０は、生成した符号化ファイルをメモリ１５１上の別の領域に書き込む。
（４）ＣＰＵ１５０からの命令によって、符号化ファイルはＨＤＤ１５２に保存される。
【０１１３】
なお、図１４に関連して説明した本発明に係る符号処理装置（トランスコーダ／パーサー）も同様に、コンピュータを利用しプログラムにより実現可能であることは明らかである。このような本発明に係る符号処理装置をコンピュータにより実現するためのプログラム、及び、それが記録された磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子などの、コンピュータが読み取り可能な各種の情報記録（記憶）媒体も本発明に包含される。
【０１１４】
また、以上の説明は、請求項１７，１８，１９に係る符号処理方法の実施形態の説明でもあることは明らかであるので、その説明は繰り返さない。
【０１１５】
また、以上の説明から明らかなように、JPEG2000に限らず、ブロック単位でのビットプレーン符号化のような、周波数係数を絶対値方向に複数に分割して符号単位を構成し、複数の画質制御単位を有する任意の符号化方式による符号処理装置に対し、本発明を同様に適用可能である。
【図面の簡単な説明】
【０１１６】
【図１】ＪＰＥＧ２０００の符号化（圧縮）処理のフローの説明図である。
【図２】ＪＰＥＧ２０００における画像、タイル、サブバンド、プリシンクト、コードブロックの関係を示す図である。
【図３】デコンポジションレベルと解像度レベルの関係を示す図である。
【図４】ディストーションスロープの説明図である。
【図５】本発明の一実施形態に係る符号処理装置（エンコーダ）のブロック図である。
【図６】コンピュータを利用する態様の説明のためのブロック図である。
【図７】１コードブロック内のサブビットプレーンの符号化順の説明図である。
【図８】サブビットプレーンの符号量の算出方法を説明するための図である。
【図９】誤差及びスロープの計算に用いる記号の説明のための図である。
【図１０】ディストーションスロープの凹部とその処理の説明のための図である。
【図１１】ラグランジェレート制御の説明のための図である。
【図１２】本発明適用による作用を説明するための図である。
【図１３】本発明の第１の実施形態に係る符号処理装置における処理を説明するためのフローチャートである。
【図１４】本発明の第２の実施形態に係る符号処理装置（トランスコーダ／パーサー）のブロック図である。
【図１５】本発明の第２の実施形態に係る符号処理装置における処理を説明するためのフローチャートである。
【図１６】サブバンドゲイン及び逆コンポーネント変換ゲインを示す図である。
【符号の説明】
【０１１７】
１００    ＤＣレベルシフト及び色変換のための処理ブロック
１０１    ウェーブレット変換のための処理ブロック
１０２    量子化のための処理ブロック
１０３    ビットプレーン符号化及びレート制御のためのディストーションスロープ等の計算を行う処理ブロック
１０４    レート制御及びパケット生成のための処理ブロック
１０５    符号形成のための処理ブロック
２００    符号解析のための処理ブロック
２０１    レート制御のための処理ブロック
２０２    符号再形成のための処理ブロック
【図１】
2006287487.tif 000003
【図２】
2006287487.tif 000004
【図３】
2006287487.tif 000005
【図４】
2006287487.tif 000006
【図５】
2006287487.tif 000007
【図６】
2006287487.tif 000008
【図７】
2006287487.tif 000009
【図８】
2006287487.tif 000010
【図９】
2006287487.tif 000011
【図１０】
2006287487.tif 000012
【図１１】
2006287487.tif 000013
【図１２】
2006287487.tif 000014
【図１３】
2006287487.tif 000015
【図１４】
2006287487.tif 000016
【図１５】
2006287487.tif 000017
【図１６】
2006287487.tif 000018