(57)【特許請求の範囲】
【請求項１】
所定の分解レベル数まで画像データに対してウェーブレット変換を行うウェーブレット変換手段と、
前記所定の分解レベル数以下のＬＬ成分以外の成分、および、複数種類の分解レベル数でのウェーブレット変換で得た前記複数種類の分解レベル数のＬＬ成分から、所定の量子化ステップで量子化した値であるかまたはウェーブレット変換によって得られた係数自体である中間データを導出する中間データ導出手段と、
前記所定の分解レベル数以下のＬＬ成分以外の成分および前記複数種類の分解レベル数のＬＬ成分の中間データの発生頻度を示す頻度情報を生成し、前記複数種類の分解レベル数のうち、頻度情報に基づいて推定される符号化後の符号量が目標符号量よりも大きくないという条件を満たす最小の分解レベル数の中間データに対して符号化を行う符号化手段とを備える
ことを特徴とする画像処理装置。
【請求項２】
前記所定の分解レベル数より１小さい分解レベル数においても符号化後の符号量が目標符号量よりも大きくなると判定されたならば、前記所定の分解レベル数のＬＬ成分の中間データを符号化する最大レベルＬＬ成分符号化手段と、
前記所定の分解レベル数より１小さい分解レベル数においても符号化後の符号量が目標符号量よりも大きくなると判定されたならば、ＬＬ成分以外の成分の中間データを、符号化後の符号量が目標符号量よりも大きくないという条件を満たすように量子化し、当該量子化後の中間データを符号化する量子化後データ符号化手段とを備える
請求項１に記載の画像処理装置。
【請求項３】
量子化後データ符号化手段は、符号化後の符号量が目標符号量よりも大きくないという条件を満たすように中間データを量子化したときに、当該量子化後のデータが全て０となるならば、当該量子化後の中間データの符号化を禁止する
請求項２に記載の画像処理装置。
【請求項４】
量子化後データ符号化手段は、１以上一定値以下の分解レベル数のＬＬ成分以外の成分の中間データを対象にして量子化を行う
請求項２または請求項３に記載の画像処理装置。
【請求項５】
前記一定値を越える分解レベル数を、所定の分解レベル数から大きい順に選択し、選択した分解レベル数のＬＬ成分以外の成分の中間データを符号化したときの符号量を推定し、推定した符号量および既に符号化した符号量の合計が目標符号量よりも大きくなければ前記中間データを符号化し、前記合計が目標符号量より大きければ符号化処理を中止する中止判定手段を備える
請求項４に記載の画像処理装置。
【請求項６】
前記所定の分解レベル数は３であり、
中間データ導出手段は、分解レベル数が２および３のＬＬ成分の中間データを導出する
請求項１から請求項５のうちのいずれか１項に記載の画像処理装置。
【請求項７】
前記一定値は２であり、
量子化後データ符号化手段は、分解レベル数が１および２のＬＬ成分以外の成分の中間データを対象にして量子化を行う
請求項４から請求項６のうちのいずれか１項に記載の画像処理装置。
【請求項８】
所定の分解レベル数まで画像データに対してウェーブレット変換を行い、
前記所定の分解レベル数以下のＬＬ成分以外の成分、および、複数種類の分解レベル数でのウェーブレット変換で得た前記複数種類の分解レベル数のＬＬ成分から、所定の量子化ステップで量子化したデータであるかまたはウェーブレット変換によって得られた係数自体である中間データを導出し、
前記所定の分解レベル数以下のＬＬ成分以外の成分および前記複数種類の分解レベル数のＬＬ成分の中間データの発生頻度を示す頻度情報を生成し、前記複数種類の分解レベル数のうち、頻度情報に基づいて推定される符号化後の符号量が目標符号量よりも大きくないという条件を満たす最小の分解レベル数の中間データに対して符号化を行う
ことを特徴とする画像処理方法。
【請求項９】
前記所定の分解レベル数より１小さい分解レベル数においても符号化後の符号量が目標符号量よりも大きくなると判定されたならば、前記所定の分解レベル数のＬＬ成分の中間データを符号化し、
前記所定の分解レベル数より１小さい分解レベル数においても符号化後の符号量が目標符号量よりも大きくなると判定されたならば、ＬＬ成分以外の成分の中間データを、符号化後の符号量が目標符号量よりも大きくないという条件を満たすように量子化し、当該量子化後の中間データを符号化する
請求項８に記載の画像処理方法。
【請求項１０】
コンピュータに、
所定の分解レベル数まで画像データに対してウェーブレット変換を行うウェーブレット変換処理、
前記所定の分解レベル数以下のＬＬ成分以外の成分、および、複数種類の分解レベル数でのウェーブレット変換で得た前記複数種類の分解レベル数のＬＬ成分から、所定の量子化ステップで量子化したデータであるかまたはウェーブレット変換によって得られた係数自体である中間データを導出する中間データ導出処理、および
前記所定の分解レベル数以下のＬＬ成分以外の成分および前記複数種類の分解レベル数のＬＬ成分の中間データの発生頻度を示す頻度情報を生成し、前記複数種類の分解レベル数のうち、頻度情報に基づいて推定される符号化後の符号量が目標符号量よりも大きくないという条件を満たす最小の分解レベル数の中間データに対して符号化を行う符号化処理
を実行させるための画像処理プログラム。
【請求項１１】
前記コンピュータに、
前記所定の分解レベル数より１小さい分解レベル数においても符号化後の符号量が目標符号量よりも大きくなると判定されたならば、前記所定の分解レベル数のＬＬ成分の中間データを符号化する最大レベルＬＬ成分符号化処理、および、
前記所定の分解レベル数より１小さい分解レベル数においても符号化後の符号量が目標符号量よりも大きくなると判定されたならば、ＬＬ成分以外の成分の中間データを、符号化後の符号量が目標符号量よりも大きくないという条件を満たすように量子化し、当該量子化後の中間データを符号化する量子化後データ符号化処理
を実行させる請求項１０に記載の画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関し、特に、画像データを符号化する画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
画像データを符号化する画像処理方法の一例として以下のような方法が挙げられる。
【０００３】
まず、画像データに対してウェーブレット変換を行う。そして、ウェーブレット変換の結果得られる係数（ウェーブレット係数）を量子化し、量子化後の各値の発生頻度を示す頻度表を生成する。
【０００４】
続いて、その頻度表に応じてハフマンテーブルを生成し、量子化後の各値をハフマンテーブルに従ってハフマン符号に変換する。
【０００５】
以上のような処理によって、画像データを符号化することができる。
【０００６】
また、特許文献１には、符号データの量を目標符号量以下に抑える画像処理装置が記載されている。特許文献１に記載の画像処理装置は、量子化およびデータの符号化を行い、符号化処理を進行しながら符号化データの量をカウントする。そして、符号化処理の途中で符号化データのデータ量が設定された上限値をオーバーする場合、量子化ステップを変更して符号化処理を再開し、既に符号化されたデータについても、再符号化を行う。
【０００７】
【特許文献１】特開２００４−３２０４７９号公報（段落００４４，００４５、図３）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
画像データを符号化する画像処理では、符号データの符号量を目標符号量以下にする必要がある。特許文献１に記載の画像処理装置においても、符号データの量を目標符号量以下に抑えるため、量子化ステップを変更し、既に符号化した処理を再符号化する。ただし、符号化処理を進行している途中で、既に符号化した符号化データについても量子化からやり直すと、処理負荷が大きくなってしまう。
【０００９】
また、特許文献１に記載の画像処理装置ではＤＣＴ変換を行っているが、ウェーブレット変換を行う場合にも、少ない処理負荷で、符号化データの符号量が目標符号量以下になるように符号化を行えるようにすることが好ましい。
【００１０】
また、量子化ステップを変更しながら符号化データが目標符号量以下になるという条件を満たすように符号化を繰り返す場合、元々の直交変換処理（ウェーブレットやＤＣＴ）の精度以上に画質を向上させることができない。
【００１１】
一般に、ウェーブレット変換を用いた符号化で、一定の圧縮効率を達成するには一定以上の分解レベル数（一般に３以上）にウェーブレット変換する必要がある。しかし、ウェーブレット変換を繰り返すと、係数の精度を保つことが困難になり、ウェーブレット変換の後に、量子化ステップをどれだけ細かくして量子化を行ったとしても、その分解レベル数での精度以上に画質を復元できなくなる。この問題を解決するために、複数の分解レベル数について符号を生成し、最後に最適な分解レベル数を選択することが考えられるが、複数の分解レベル数で符号化を行うために処理負荷が大きくなる。
【００１２】
そこで、本発明は、符号化後の画像データの符号量が目標符号量以下になるようにしつつ、符号化後の画像データの画質ができるだけ向上するように符号化する符号化処理を、低い処理負荷で実現することができる画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の画像処理装置は、所定の分解レベル数まで画像データに対してウェーブレット変換を行うウェーブレット変換手段と、前記所定の分解レベル数以下のＬＬ成分以外の成分、および、複数種類の分解レベル数でのウェーブレット変換で得た前記複数種類の分解レベル数のＬＬ成分から、所定の量子化ステップで量子化したデータであるかまたはウェーブレット変換によって得られた係数自体である中間データを導出する中間データ導出手段と、前記所定の分解レベル数以下のＬＬ成分以外の成分および前記複数種類の分解レベル数のＬＬ成分の中間データの発生頻度を示す頻度情報を生成し、前記複数種類の分解レベル数のうち、頻度情報に基づいて推定される符号化後の符号量が目標符号量よりも大きくないという条件を満たす最小の分解レベル数の中間データに対して符号化を行う符号化手段とを備えることを特徴とする。
【００１４】
また、本発明の画像処理方法は、所定の分解レベル数まで画像データに対してウェーブレット変換を行い、前記所定の分解レベル数以下のＬＬ成分以外の成分、および、複数種類の分解レベル数でのウェーブレット変換で得た前記複数種類の分解レベル数のＬＬ成分から、所定の量子化ステップで量子化したデータであるかまたはウェーブレット変換によって得られた係数自体である中間データを導出し、前記所定の分解レベル数以下のＬＬ成分以外の成分および前記複数種類の分解レベル数のＬＬ成分の中間データの発生頻度を示す頻度情報を生成し、前記複数種類の分解レベル数のうち、頻度情報に基づいて推定される符号化後の符号量が目標符号量よりも大きくないという条件を満たす最小の分解レベル数の中間データに対して符号化を行うことを特徴とする。
【００１５】
また、本発明の画像処理プログラムは、コンピュータに、所定の分解レベル数まで画像データに対してウェーブレット変換を行うウェーブレット変換処理、前記所定の分解レベル数以下のＬＬ成分以外の成分、および、複数種類の分解レベル数でのウェーブレット変換で得た前記複数種類の分解レベル数のＬＬ成分から、所定の量子化ステップで量子化したデータであるかまたはウェーブレット変換によって得られた係数自体である中間データを導出する中間データ導出処理、および前記所定の分解レベル数以下のＬＬ成分以外の成分および前記複数種類の分解レベル数のＬＬ成分の中間データの発生頻度を示す頻度情報を生成し、前記複数種類の分解レベル数のうち、頻度情報に基づいて推定される符号化後の符号量が目標符号量よりも大きくないという条件を満たす最小の分解レベル数の中間データに対して符号化を行う符号化処理を実行させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、符号化後の画像データの符号量が目標符号量以下になるようにしつつ、符号化後の画像データの画質ができるだけ向上するように符号化する符号化処理を、低い処理負荷で実現することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態を図面を参照して説明する。
図１は、本発明の画像処理装置の例を示すブロック図である。なお、以下では、画像処理装置が画像データをハフマン符号に変換する場合を例にして説明する。本発明の画像処理装置１は、ウェーブレット変換部２と、中間符号生成部３と、第１の判定部４と、第２の判定部５と、再量子化部６と、符号化部７とを備える。
【００１８】
ウェーブレット変換部２には、符号化の対象となる画像データが入力される。ウェーブレット変換部２は、その画像データに対して、所定の分解レベル数までウェーブレット変換を行う。この「所定の分解レベル数」を“Ｎ”と記す。また、図面中において、分解レベル数をＲｌｅｖｅｌと記す場合がある。図２は、ウェーブレット変換を模式的に示す説明図である。ウェーブレット変換部２は、入力された画像データ１００に対してウェーブレット変換する。１回のウェーブレット変換により得られる係数の種類には、ＬＬ成分、ＬＨ成分、ＨＬ成分、ＨＨ成分があり、ウェーブレット変換部２は、ＬＬ成分に対して、再帰的にウェーブレット変換を行う。以下、ＬＨ成分、ＨＬ成分、ＨＨ成分をまとめてｘｘと記す。また、分解レベル数がｋのときのＬＬ成分、ｘｘ成分を、それぞれ「ｋＬＬ成分」、「ｋｘｘ成分」と記す。図２では、分解レベル数１のｘｘ成分（１ｘｘ）と、分解レベル数２のＬＬ成分（２ＬＬ）およびｘｘ成分（２ｘｘ）とを示している。また、図２では、分解レベル数“２”までのウェーブレット変換を例示しているが、ウェーブレット変換部２がウェーブレット変換を行うときの分解レベル数は２に限定されず、３以上の分解レベル数までウェーブレット変換を行ってもよい。以下の説明では、ウェーブレット変換後の係数（ウェーブレット係数）がＹＵＶ形式で表され、Ｙ，Ｕ，Ｖの各値を有するようにウェーブレット変換を行う場合を例にして説明する。
【００１９】
中間符号生成部３は、ウェーブレット変換によって得られた係数に対して所定の量子化ステップで量子化を行った値であるかまたはウェーブレット変換によって得られた係数自体である中間データ（以下、中間符号と記す。）を生成する。ここでは、ウェーブレット変換よって得られた係数に対して量子化を行った結果を中間符号とする場合を例にして説明する。よって、本例では、中間符号生成部３は、ウェーブレット係数に含まれるＹ，Ｕ，Ｖの値をそれぞれ所定の量子化ステップで量子化し、その量子化の結果を中間符号とする。以下、量子化ステップをＱステップと記す。
【００２０】
中間符号生成部３による中間符号生成処理についてより詳しく説明する。１ｘｘ成分、２ｘｘ成分等の中間符号生成対象の成分毎に、中間符号生成時の所定のＱステップおよびデッドゾーンが定められている。中間符号生成部３は、絶対値が所定のデッドゾーン以下である画像データの値を０に量子化する。例えば、１ｘｘ成分に含まれるあるＹの絶対値がデッドゾーン以下であれば、そのＹを０に量子化する。また、中間符号生成部３は、絶対値が所定のデッドゾーンを越える範囲を、所定のＱステップ毎に区切る。そして、それらの各範囲に属する画像データの値を、その範囲の中央値に量子化する。例えば、デッドゾーンおよびＱステップがいずれも２であるとする。この場合、絶対値が２を越える範囲（すなわち、−２未満の範囲および２より大きい範囲）を、Ｑステップである２毎に区切り、“−４〜−２”、“２〜４”、“４〜６”等の範囲を定める。そして、１ｘｘ成分に含まれるあるＹが“２〜４”等の範囲に属していれば、Ｙの値をその範囲の中央値に量子化する。ここでは、１ｘｘ成分に含まれるＹを例示したが、Ｕ，Ｖの量子化も同様に行う。また、１ｘｘ成分以外の成分に関する量子化処理も同様である。
【００２１】
また、中間符号生成部３は、連長解析を行った結果を中間符号の中に含めてもよい。すなわち、連長解析の結果も中間符号（中間データ）としてよい。連長解析は、同一のデータが連続して並んでいる場合にその連続数をカウントする処理である。連長解析の態様として、量子化後のＹ，Ｕ，Ｖの値がいずれも０である画素が連続する場合、その連続数をカウントする態様がある。あるいは、量子化後のＹ，Ｕ，Ｖの組み合わせが同一となる画素が連続する場合、その連続数をカウントしてもよい。図３は、ウェーブレット係数から生成した中間符号を模式的に示す説明図である。図３では連長解析によりカウントした連続数を“ｌｅｎ”と表している。中間符号生成部３は、例えば、２ＬＬ成分、２ｘｘ成分、１ｘｘ成分に含まれるＹ，Ｕ，Ｖを上述の様に量子化し、２ＬＬ中間符号、２ｘｘ中間符号、１ｘｘ中間符号等を生成する。また、量子化後のＹ，Ｕ，Ｖに対して連長解析を行い、その結果（カウントした連続数“ｌｅｎ”）を中間符号に含めてもよい。以下、中間符号にｌｅｎを含める場合を例にして説明する。
【００２２】
また、符号化データから得られる画像の最高画質を規定する分解レベル数（ｍｉとする。）が画像処理装置に設定されている。ここで、ｍｉは１以上Ｎ以下の整数である。中間符号生成部３は、分解レベル数ｍｉ〜ＮのＬＬ成分、および分解レベル数１〜Ｎのｘｘ成分を対象にして、中間符号を生成する。換言すれば、（ｍｉ）ＬＬ成分、（ｍｉ＋１）ＬＬ成分、・・・、ＮＬＬ成分、および１ｘｘ成分、２ｘｘ成分、・・・、Ｎｘｘ成分を対象にして中間符号を生成する。
【００２３】
第１の判定部４は、定められた範囲の分解レベル数の中間データのうちｘｘ成分（すなわちＬＬ成分以外の成分）を符号化するか否かを判定する処理を行う。
【００２４】
第１の判定部４は、この判定を行うために、中間符号の生成対象となる上記の各成分（分解レベル数ｍｉ〜ＮのＬＬ成分、および分解レベル数１〜Ｎのｘｘ成分）毎に、量子化に用いる個々の範囲における中間符号の発生頻度（発生数）をカウントする。具体的には、第１の判定部４は、絶対値が所定のデッドゾーン以下となる範囲で量子化されたデータの発生頻度をＹ，Ｕ，Ｖ毎にカウントする。また、絶対値がそのデッドゾーンを越える範囲を所定のＱステップ毎に区切った個々の範囲毎で量子化されたデータの発生頻度をＹ，Ｕ，Ｖ毎にカウントする。
【００２５】
図４は、各範囲において量子化されたデータの発生頻度をカウントした結果を示す情報（以下、頻度表と記す。）の例を示す説明図である。図４では、２ＬＬ中間符号のＹ，Ｕの頻度表の例を示している。図４に示す各頻度表の左側の列は、量子化された結果を示し、右側の列は、その値に量子化されたデータ（図４の例ではＹまたはＵ）の発生頻度を表している。すなわち、図４に例示する２ＬＬ中間符号のＹの例では、絶対値がデッドゾーン以下の範囲に属し０に量子化されたＹのデータが２３０個あり、２５５を中央値とする範囲に属し２５５に量子化されたＹのデータが４４個あることを示している。
【００２６】
第１の判定部４は、各頻度表からハフマンテーブルを生成する。図５は、ハフマンテーブルの例を示す説明図である。図５では、２ＬＬ中間符号のＹについてのハフマンテーブルを例示している。第１の判定部４は、２ＬＬ中間符号のＹの頻度表から、図５に例示するようなハフマンテーブルを生成する。また、同様に、他の頻度表からもそれぞれハフマンテーブルを生成する。図５に示すように、ハフマンテーブルは、量子化された各値（図５に示す例では、０〜２５５）と、その値から変換される符号とを含む。第１の判定部４は、量子化された値と符号が一対一に対応し、かつ、発生頻度が大きい値ほど符号のビット長が短くなるように符号を定め、量子化後の値と符号とを対応付けたハフマンテーブルを生成する。ハフマン符号を生成することで、量子化された各データの値（図４に示す例では０〜２５５）毎のハフマン符号のビット長が定まる。第１の判定部４は、各ハフマン符号毎に、ハフマン符号のビット長と、対応する発生頻度との積を求め、その総和を計算する。また、中間符号にｌｅｎが含まれる場合、各ｌｅｎを符号化したときのビット長（例えばガンマ符号化したときのビット長）も、上記の総和に加算する。第１の判定部４は、１ｘｘ成分から（Ｎ−１）ｘｘ成分までの各ｘｘ成分および（Ｎ−１）ＬＬ成分に関して、これらの総和を求める。その総計が、符号量の目標符号量となる閾値よりも大きい場合、第１の判定部４は、定められた範囲の各分解レベル数を大きい順に選択し、選択した分解レベル数の中間データのｘｘ成分を符号化した時のデータ量を推定し、その推定されたデータ量に応じて、その中間データのｘｘ成分を符号化するか否かを判定する。この判定の動作フローについては、図７および図８を用いて後述する。
【００２７】
第２の判定部５は、上記の定められた範囲の分解レベル数よりも小さい各分解レベル数の中間符号のｘｘ成分（ＬＬ成分以外の成分）に対して、再量子化を行うか否かを判断する。再量子化を行うか否かの判断対象となる分解レベル数の最大値をｍｑとする。この場合、上述の定められた範囲の分解レベル数は、ｍｑ＋１〜Ｎの範囲の分解レベル数である。
【００２８】
再量子化部６は、第２の判定部５が再量子化を行うと判定した場合、定められた範囲の分解レベル数（すなわちｍｑ＋１〜Ｎ）よりも小さい各分解レベル数（１〜ｍｑ）の中間符号のうちｘｘ成分を再量子化する。
【００２９】
符号化部７は、中間符号および再量子化部６によって中間符号から再量子化された値をハフマン符号に符号化する。また、中間符号にｌｅｎ（連長解析でカウントされた連続数）が含まれている場合、そのｌｅｎも符号化する。この場合、符号化部７は、例えば、ｌｅｎをガンマ符号に符号化すればよい。ｌｅｎを２進数で表したときのビット長をｌとすると、符号化部７は、その２進数のビットの先頭に“ｌ−１”個の０を付加することで、ｌｅｎをガンマ符号に変換する。符号化部７が中間符号または再量子化の結果をハフマン符号に変換し、ｌｅｎを例えばガンマ符号に変換することにより、入力された画像データが符号化されることになる。
【００３０】
図６は、ハフマン符号化の結果の例を模式的に示す説明図である。図６では、２ＬＬ成分、２ｘｘ成分および１ｘｘ成分について符号化を行った場合を例示している。符号化前のデータにＹ，Ｕ，Ｖだけでなくｌｅｎも含まれる場合、Ｙ，Ｕ，Ｖ，ｌｅｎそれぞれの符号化データが２ＬＬ成分等の符号化結果に含まれる。
【００３１】
ウェーブレット変換部２、中間符号生成部３、第１の判定部４、第２の判定部５、再量子化部６、符号化部７は、例えば、プログラムに従って動作するＣＰＵによって実現される。
【００３２】
次に、動作について説明する。図７および図８は、本発明の処理経過の一例を示すフローチャートである。なお、フローチャート中に記載した「出力」とは、「符号化処理」を表している。
【００３３】
まず、ウェーブレット変換部２が、入力された画像データに対して、分解レベル数Ｎまでウェーブレット変換を行う。
【００３４】
そして、中間符号生成部３は、分解レベル数ｍｉ〜ＮのＬＬ成分、および分解レベル数１〜Ｎのｘｘ成分を対象にして中間符号を生成する。すなわち、中間符号生成部３は、それらの成分に含まれるＹ，Ｕ，Ｖを、成分の種類に応じて定められるデッドゾーンおよびＱステップに応じて量子化する。既に説明したように、中間符号生成部３は、絶対値が所定のデッドゾーン以下であるＹ，Ｕ，Ｖを０に量子化する。また、絶対値が所定のデッドゾーンを越える範囲をＱステップ毎に区切り、各範囲に属するＹ，Ｕ，Ｖをその範囲の中央値に量子化する。また、例えば、Ｙ，Ｕ，Ｖの組み合わせが同一となる画素が連続する場合、その連続数（ｌｅｎ）をカウントする。中間符号生成部３は、このＹ，Ｕ，Ｖの量子化結果およびｌｅｎを中間符号として、画像処理装置が備える記憶装置（図示せず。）に記憶させる。
【００３５】
また、第１の判定部４は、中間符号を生成した分解レベル数ｍｉ〜ＮのＬＬ成分、および分解レベル数１〜Ｎのｘｘ成分の中間符号を対象として、Ｙ，Ｕ，Ｖそれぞれの頻度表を生成し、画像処理装置が備える記憶装置（図示せず。）に記憶させる。第１の判定部４は、各成分に含まれるＹ，Ｕ，Ｖ毎に、デッドゾーンおよびＱステップによって定まる各範囲での発生頻度をカウントすることによって頻度表を生成すればよい（以上、ステップＳ１）。
【００３６】
次に、第１の判定部４は、ｍｉ（符号化データから得られる画像の最高画質を規定する分解レベル数）を変数ｍに代入する（ステップＳ２）。ステップＳ２で設定されるｍは、ステップＳ３〜Ｓ７の制御に用いられる。
【００３７】
ステップＳ２の後、第１の判定部４は、ｍ＜Ｎとなっているか否かを判定する（ステップＳ３）。変数ｍがＮ未満であれば（ステップＳ３のＹ）、第１の判定部４は、分解レベル数ｍのＬＬ成分（ｍＬＬ成分）および分解レベル数１〜ｍのｘｘ成分（１ｘｘ〜ｍｘｘ成分）の中間符号を符号化したときの符号量を推定する。このとき、第１の判定部４は、これらの各成分のＹ，Ｕ，Ｖそれぞれの頻度表からハフマンテーブル（図５参照）を生成し、各ハフマン符号毎に、ハフマン符号のビット長と、対応するＹ，ＵまたはＶの発生頻度とを乗じ、その乗算結果の総和を計算する。さらに、本例では、ｌｅｎが中間符号に含まれているので、中間符号に含まれる各ｌｅｎを符号（例えばガンマ符号）に変換したときの符号量もその総和に加算する。第１の判定部４は、各成分毎にこの総和を求め、それらの合計を計算する（ステップＳ４）。この合計値は、ｍＬＬ成分および１ｘｘ〜ｍｘｘ成分の中間符号を符号化したときの推定符号量である。なお、推定符号量とは、中間符号を符号化した後のデータ量として推定される値である。
【００３８】
続いて、第１の判定部４は、その推定符号量が目標符号量より大きいか否かを判定する（ステップＳ５）。目標符号量は、画像データを符号化したときの符号量の最大許容値を表し、ステップＳ５，Ｓ１３，Ｓ１９において閾値として用いられる。なお、目標符号量は、画像処理装置自身が画像データの通信等の状況に応じて画像処理装置１が適宜設定してもよい。あるいは目標符号量が外部から入力されてもよい。
【００３９】
推定符号量が目標符号量以下である場合（ステップＳ５のＮ）、ステップＳ９に移行する。ステップＳ９において、符号化部７は、ｍＬＬの中間符号をハフマン符号に変換する。符号化部７は、ステップＳ４で生成したｍＬＬ成分のＹ，Ｕ，Ｖに対応するハフマンテーブルを用いて、ｍＬＬ中間符号のＹ，Ｕ，Ｖを、対応するハフマン符号に変換すればよい（ステップＳ９）。さらに、符号化部７は、ｍｘｘ、（ｍ−１）ｘｘ、・・・、１ｘｘの各成分の中間符号もハフマン符号に変換する（ステップＳ１０）。ｍｘｘから１ｘｘまでの各中間符号のＹ，Ｕ，Ｖについても、ステップＳ４で生成したハフマンテーブルを用いて、対応するハフマン符号に変換すればよい。また、符号化部７は、ステップＳ９，Ｓ１０において、各中間符号中のｌｅｎを例えばガンマ符号に符号化する。
【００４０】
推定符号量が目標符号量よりも大きい場合（ステップＳ５のＹ）、第１の判定部４は、変数ｍの値を１インクリメントし（ステップＳ７）、ステップＳ３以降の処理を繰り返す。変数ｍを１インクリメントして再度ステップＳ３からステップＳ４に移行した場合、以前のステップＳ４で符号量を求めた成分については再度、符号量を求め直す必要はなく、インクリメント後のｍが示すｍＬＬ成分およびｍｘｘ成分を求めて、ｍＬＬ成分および１ｘｘ〜ｍｘｘ成分の総符号量を推定すればよい。
【００４１】
また、ステップＳ３において、ｍ＝Ｎであると判定した場合（ステップＳ３のＮ）、再量子化処理（ステップＳ８）を行う。図８に示すステップＳ１１以降の処理は、このステップＳ８の再量子化処理を表している。すなわち、ステップＳ３でｍ＝Ｎであるならば、ステップＳ１１（図８参照）に移行する。
【００４２】
ステップＳ１１に移行したということは、分解レベル数“Ｎ−１”の中間符号のＬＬ成分および分解レベル数１から“Ｎ−１”までの中間符号のｘｘ成分を符号化したときの符号推定量が目標符号量よりも大きい。このとき、第１の判定部４は、符号化部７にＮＬＬ成分を符号化させる（ステップＳ１１）。符号化部７は、ＮＬＬ中間符号のＹ，Ｕ，Ｖそれぞれの頻度表からハフマンテーブルを生成し、そのＹ，Ｕ，Ｖをそれぞれ対応するハフマン符号に変換する。また、符号化部７は、ＮＬＬ中間符号に含まれる各ｌｅｎを、例えばガンマ符号に符号化する。
【００４３】
次に、第１の判定部４は、Ｎを変数ｍに代入する（ステップＳ１２）。ステップＳ１２で設定されるｍは、ステップＳ１３〜Ｓ２１の制御に用いられる。
【００４４】
ステップＳ１２の後、第１の判定部４は、ｍ≦ｍｑとなっているか否かを判定する（ステップＳ１３）。ｍ≦ｍｑが成立していなければ（ステップＳ１３のＮ）、変数ｍが示す分解レベル数のｘｘ成分（すなわち、ｍｘｘ成分）の符号量を推定する（ステップＳ１４）。ステップＳ１４では、ｍｘｘ成分のＹ，Ｕ，Ｖそれぞれの頻度表からハフマンテーブルを生成し、各ハフマン符号毎に、ハフマン符号のビット長と、対応するＹ，ＵまたはＶの発生頻度とを乗じ、その乗算結果の総和を計算する。そして、各ｌｅｎを符号化したときのビット長もその総和に加算すればよい。なお、ステップＳ４で、ｍｘｘ成分の推定符号量を計算済であるならば、その推定符号量を参照してもよい。
【００４５】
続いて、第１の判定部４は、ステップＳ１４で求めた符号推定量と、既に符号化した符号データのデータ量との合計が、目標符号量よりも大きくなっているか否かを判定する（ステップＳ１５）。その合計が目標符号量よりも大きければ（ステップＳ１５のＹ）、処理を終了する。また、その合計が目標符号量以下であれば（ステップＳ１５のＮ）、符号化部７にそのｍｘｘ成分を符号化させる（ステップＳ１６）。符号化部７は、ステップＳ１４で符号量推定に用いたｍｘｘ成分のＹ，Ｕ，Ｖに対応するハフマンテーブルを用いて、ｍｘｘ成分のＹ，Ｕ，Ｖを対応するハフマン符号に変換する。また、符号化部７は、ｍｘｘ成分中のｌｅｎを例えばガンマ符号に符号化する。
【００４６】
続いて、第１の判定部４は、変数ｍの値を１減算し（ステップＳ１７）、ステップＳ１３以降の処理を繰り返す。ステップＳ１３からステップＳ１７のループ処理を繰り返すことで、第１の判定部４は、ステップＳ１４に移行する毎に、定められた範囲の分解レベル数（すなわちｍｑ＋１〜Ｎ）を、大きい順に選択し、そのｘｘ成分の符号量を推定することになる。
【００４７】
また、ステップＳ１７で変数ｍの値を１減算した結果、ステップＳ１３においてｍ≦ｍｑであると判定したならば（ステップＳ１３のＹ）、ステップＳ１８に移行する。したがって、ステップＳ１８以降では、ｍの値はｍｑとなっている。
【００４８】
ステップＳ１８では、第２の判定部８は、ステップＳ１８移行時のｍが示す分解レベル数のｘｘ成分（すなわちｍｘｘ成分）から、１ｘｘ成分までの各ｘｘ成分の中間符号を符号化したときの符号量を推定する。最初にステップＳ１８に移行した場合（すなわち、まだステップＳ２０の再量子化を行っていない場合）には、ｍｘｘ〜１ｘｘの各成分の中間符号を符号化したときの符号量を推定する。また、ステップＳ２０の再量子化処理後にステップＳ１８に移行した場合には、再量子化後のｍｘｘ〜１ｘｘの各成分の中間符号の符号量を推定する。
【００４９】
各成分の中間符号の符号量を推定する場合には、各成分のＹ，Ｕ，Ｖそれぞれの頻度表からハフマンテーブルを生成し、各ハフマン符号毎に、ハフマン符号のビット長と、対応するＹ，ＵまたはＶの発生頻度とを乗じ、その乗算結果の総和を計算し、さらに、各ｌｅｎを符号化したときのビット長もその総和に加算すればよい。
【００５０】
なお、ステップＳ２０の再量子化では、再量子化後のＹ，Ｕ，Ｖの頻度表も作成する。ステップＳ２０からステップＳ１８に移行した場合、その頻度表を用いてハフマンテーブルを生成すればよい。
【００５１】
ステップＳ１８の後、第２の判定部８は、ステップＳ１８で求めたｍｘｘ〜１ｘｘを符号化したときの符号量および、既に符号化した符号データのデータ量との合計が、目標符号量よりも大きくなっているか否かを判定する（ステップＳ１９）。
【００５２】
その合計が目標符号量よりも大きいならば、第２の判定部８は再量子化を行うと判定し、ステップＳ２０に移行する（ステップＳ１９のＹ）。
【００５３】
また、その合計が目標符号量以下であるならば、第２の判定部８は再量子化を行わないと判定し、ステップＳ２１に移行する（ステップＳ１９のＮ）。
【００５４】
ステップＳ２１では、符号化部７は、ステップＳ１８での符号量推定に用いたハフマンテーブルを用いて、ｍｘｘ成分から１ｘｘ成分のＹ，Ｕ，Ｖを、対応するハフマン符号に変換する。また、符号化部７は、各成分中のｌｅｎを例えばガンマ符号に符号化する。
【００５５】
また、ステップＳ２０では、再量子化部６は、１ｘｘ中間符号からｍｘｘ中間符号までのＹ，Ｕ，Ｖを再量子化する。ステップＳ１８以降におけるｍはｍｑであるので、１ｘｘ中間符号からｍｑｘｘ中間符号までのＹ，Ｕ，Ｖを再量子化する。
【００５６】
ステップＳ２０において、再量子化部６は、１ｘｘからｍｑｘｘまでの各成分毎に、新たなデッドゾーンを定める。このとき、再量子化部６は、ｈを０以上の整数とし、ステップＳ１で中間符号を生成したときに用いたデッドゾーンおよびＱステップをそれぞれｄｚ，ｑｓとすると、ｄｚ＋ｈ・ｑｓを新たなデッドゾーンに定める。そして、再量子化部６は、絶対値がその新たなデッドゾーン以下である中間符号（Ｙ，Ｕ，Ｖ）の値を０に再量子化する。
【００５７】
また、再量子化部６は、１ｘｘ〜ｍｑｘｘまでの各成分毎に、新たなＱステップを定める。このとき、再量子化部６は、ｎを０以上の整数とすると、上記のｑｓを用いて、ｑｓ・（２ｎ＋１）を新たなＱステップに定めることが好ましい。そして、絶対値が上記の新たなデッドゾーンを越える範囲を新たなＱステップ（ｑｓ・（２ｎ＋１））毎に区切り、範囲を定める。そして、各範囲に属する１ｘｘ〜ｍｑｘｘまでの各成分の中間符号（Ｙ，Ｕ，Ｖ）を、その範囲の中央値に量子化する。新たなＱステップをｑｓ・（２ｎ＋１）とすることが好ましい理由は、そのようにＱステップを定めることで、新たに定める範囲の中央値が、ステップＳ１で量子化するときに用いた範囲の中央値と一致するので、符号化データの画質劣化を防止することができるためである。Ｑステップをｑｓ・（２ｎ＋１）として定めた新たな範囲は、ステップＳ１量子化するときに用いた範囲を組み合わせた範囲となっている。
【００５８】
ただし、ステップＳ１で中間符号を導出する際のＱステップが１である場合には、ステップＳ２０では、任意の値（ただし、１以上の整数）を新たなＱステップとしてよい。ステップＳ１におけるＱステップが１であるならば、新たに定めるＱステップの値によらず、新たに定める範囲の中央値が、ステップＳ１で量子化するときに用いた範囲の中央値と一致するためである。
【００５９】
また、ステップＳ２０において、第２の判定部５は、中間符号を再量子化して得た新たなＹ，Ｕ，Ｖの頻度表をそれぞれ生成する。再量子化に用いた範囲は、絶対値がデッドゾーン以下の範囲と、その範囲以外を新たなＱステップで区切って定めた個々の範囲である。これらの範囲はいずれも、ステップＳ１で中間符号を生成するときに用いた範囲を組み合わせたものであり、ステップＳ１での量子化に用いた範囲に対応する。そして、ステップＳ１における各範囲（例えば、０に量子化する範囲、１に量子化する範囲等）における頻度表は既にステップＳ１で導出されている。従って、第２の判定部５は、ステップＳ２０での量子化のために定めた個々の範囲に対応する、ステップＳ１で用いた各範囲を特定し、その各範囲における発生頻度の和を、新たな範囲における発生頻度とすればよい。このように発生頻度を定めることにより、新たな範囲で量子化されたＹ，Ｕ，Ｖの発生頻度をカウントし直さなくて済む。
【００６０】
図９は、ステップＳ２０における頻度表導出を模式的に示す説明図である。図９に示す上段のヒストグラムは、ステップＳ１で中間符号生成のための量子化において、各範囲の中央値に量子化されたデータ（例えばＹとする。）の発生頻度を示している。また、図９に示す下段のヒストグラムは、ステップＳ２０の再量子化において、各範囲の中央値に量子化されたデータの発生頻度を示している。また、図９において、Ａ〜ＩおよびＳ〜Ｕは、量子化後の中央値の例示である。ステップＳ２０の再量子化処理で、再量子化部６が、新たなＱステップおよびデッドゾーンから範囲を区切った結果、Ａ，Ｂ，Ｃそれぞれを中央値とする３つの範囲を組み合わせて、Ｓを中央値とする一つの範囲を定め、その範囲に属するデータ（Ｙ）を中央値Ｓに量子化したとする。この場合、第２の判定部５は、図９の上段のヒストグラムのように表される頻度表において、値Ａに量子化したデータ数、値Ｂに量子化したデータ数、および値Ｃに量子化したデータ数の和を計算し、その３つの範囲に対応する新たな範囲（Ｓを中央値とする範囲）に属し値Ｓに量子化したデータの発生頻度を計算すればよい。他の範囲における発生頻度も同様に計算すればよい。このように再量子化後の発生頻度を計算することにより、各範囲におけるデータの発生頻度をカウントし直さなくて済むので、処理を高速化することができる。
【００６１】
他の範囲におけるデータの発生頻度も同様である。なお、上記のように、新たなデッドゾーンをｄｚ＋ｈ・ｑｓとし、新たなＱステップをｑｓ・（２ｎ＋１）とすれば、新たな範囲における中央値は、中間符号生成時の量子化における中央値と等しくなる。例えば、図９に示す例では、Ｓ＝Ｂ，Ｔ＝Ｅ，Ｕ＝Ｈとなる。
【００６２】
上記のステップＳ２０の後、ステップＳ１８以降の処理を繰り返す。第２の判定部５は、ステップＳ２０で頻度表を新たに生成している。第２の判定部５は、その後のステップＳ１８ではその頻度表を用いて、ステップＳ２０で量子化された値の符号を示すハフマンテーブルを生成する。このとき、第２の判定部５は、ステップＳ１における量子化後の各値（すなわち、ステップＳ１で生成された各中間符号）を、それぞれ新たな頻度表から生成したハフマンテーブル内の新たな符号に対応づければよい。
【００６３】
図１０は、中間符号の値と再量子化後に導出した符号との対応付けを示す説明図である。例えば、図１０に例示する再量子化前の中間符号−１，０，１を、０に再量子化したとする。この場合、第２の判定部５は、再量子化後の０等の各値の頻度表からハフマンテーブルを導出する。このハフマンテーブルでは、中間符号０に対応する符号が０であったとする。すると、第２の判定部５は、元の中間符号−１，０，１それぞれに、新たな符号０を対応付ける。例えば、元の中間符号−１，０，１に応じた各符号“１００”，“０”，“１０１”をそれぞれ新たな符号“０”に置換する。このように処理することにより、元の中間符号−１，１からも、０と同じ符号を参照することができる。そして、中間符号を書き換えることなく、再量子化後の値に応じたハフマン符号を生成することができる。
【００６４】
再量子化処理を行うことにより、ハフマン符号のビット数を減少させることができる。よって、ステップＳ１８〜Ｓ２０のループ処理を繰り返すことで、符号化後の総符号量を減少させることができる。そして、推定される総符号量が目標符号量以下となったときに、ステップＳ２１に移行して符号化処理を行えばよい。
【００６５】
また、ステップＳ２０の再量子化処理でデッドゾーンの値を大きくした結果、全ての中間符号（Ｙ，Ｕ，Ｖ）を一つの値（０）に量子化する場合がある。この場合、符号化部７は、ステップＳ２１において、符号化処理を禁止してもよい。すなわち、再量子化によって、全ての中間符号が０に量子化された場合、符号化部７は、再量子化後のＹ，Ｕ，Ｖの値をハフマン符号に変換することなく処理を終了してよい。また、ｌｅｎを符号化する処理も実行しなくてよい。このように、全てのＹ，Ｕ，Ｖがいずれも０に量子化される場合には、符号化処理を行わないことによって、処理量を削減することができる。
【００６６】
本発明によれば、定められた範囲の分解レベル数（ｍｑ＋１〜Ｎ）について、第１の判定部４がｘｘ成分の符号化を行うと判定したときに、そのｘｘ成分を符号化しておく。そして、その分解レベル数よりも低い分解レベル数（１〜ｍｑ）を符号化したときの符号量に応じて、その分解レベル数（１〜ｍｑ）の中間符号を再量子化する。よって、ウェーブレット変換によって得た各分解レベル数の一部について再量子化をするので、処理負荷を抑制しながら、符号量が目標符号量以下になるように制御することができる。
【００６７】
また、再量子化処理では、中間符号を導出する際に用いるデッドゾーンおよびＱステップから定まる範囲を組み合わせた範囲を定め、その新たな各範囲内の値を範囲の中央値に量子化する。このように、新たな範囲を、中間符号導出時の範囲を組み合わせた範囲として求めるので、新たな頻度表を求める際に、中間符号導出時にカウントした結果の和を求めればよい（図９参照）。よって、処理負荷を抑制し、また、処理を高速化することができる。
【００６８】
また、再量子化処理におけるＱステップを、ｑｓ・（２ｎ＋１）と定めることで、再量子化後の値を中間符号の値と一致させることができ、符号化データの画質劣化を防止することができる。
【００６９】
また、図７および図８に示す処理において、目標符号量が更新されてもよい。その場合においても、更新後の目標符号量を閾値として処理を行うことにより、符号化後のデータ量が更新後の目標符号量以下になるように制御することができる。
【００７０】
以上の説明では、ウェーブレット変換部２がウェーブレット変換を行う分解レベル数をＮとし、再量子化を行うか否かの判断対象となる分解レベル数の最大値をｍｑとして説明した。以下、Ｎ＝３、ｍｑ＝２である場合を例にして、本発明の動作を説明する。図１１および図１２は、Ｎ＝３、ｍｑ＝２である場合の処理経過の一例を示すフローチャートである。なお、以下に示す例は、ｍｉ＝２である場合に相当するが、Ｎ＝３、ｍｑ＝２、ｍｉ＝２の場合、ステップ３〜Ｓ７（図７参照）のループ処理に相当する処理は１回行えばよく、以下に示す例では、変数ｍにｍｉを代入する処理（ステップＳ２に相当する処理）等は行わなくよい。
【００７１】
まず、ウェーブレット変換部２が、入力された画像データに対して、分解レベル数３までウェーブレット変換を行う。
【００７２】
そして、中間符号生成部３は、分解レベル数２，３のＬＬ成分（２ＬＬ成分、３ＬＬ成分）、および分解レベル数１〜３のｘｘ成分（１ｘｘ成分、２ｘｘ成分、３ｘｘ成分）を対象にして中間符号を生成する。すなわち、中間符号生成部３は、それらの成分に含まれるＹ，Ｕ，Ｖを、成分の種類に応じて定められるデッドゾーンおよびＱステップに応じて量子化する。図１３は、デッドゾーンおよびＱステップの例を示す説明図である。また、図１３に示すデッドゾーン１およびＱステップ１は２ｘｘ成分用のデッドゾーンとＱステップの例である。また、デッドゾーン２およびＱステップ２は１ｘｘ成分用のデッドゾーンとＱステップの例である。図１３に示す量子化粒度は、量子化の程度を示し、量子化粒度の値が大きいほど、デッドゾーンおよびＱステップは大きくなる。本例では、画像処理装置は、図１３に例示する各量子化粒度のデッドゾーンおよびＱステップを保持しているものとする。最初に中間符号を生成するときには、最小の量子化粒度“０”のデッドゾーンおよびＱステップの組み合わせで量子化を行う。デッドゾーンおよびＱステップに応じてＹ，Ｕ，Ｖを量子化する動作はステップＳ１と同様である。また、例えば、Ｙ，Ｕ，Ｖの組み合わせが同一となる画素が連続する場合、中間符号生成部３は、その連続数（ｌｅｎ）をカウントし、ｌｅｎを中間符号に含める。
【００７３】
なお、量子化粒度が１以上のデッドゾーンおよびＱステップは、再量子化処理の際に用いられる。
【００７４】
また、第１の判定部４は、中間符号を生成した分解レベル数２，３のＬＬ成分、および分解レベル数１〜３のｘｘ成分の中間符号を対象として、Ｙ，Ｕ，Ｖそれぞれの頻度表を生成する（以上、ステップＳ３１）。
【００７５】
分解レベル数２と３では、分解レベル数２の方がブロック歪みが少なく、グラデーションの画質がやや良好となる。よって、分解レベル数２の符号量が目標符号量以下である場合には、分解レベル数２の中間符号だけで符号化を行えるように、ステップＳ３１では、上記のように分解レベル数２，３それぞれのＬＬ成分の中間符号および頻度表を生成しておく。なお、分解レベル数１では、分解レベル数２での符号化よりもさらに画質を向上させることができるが、圧縮効率が低く、頻度表および中間符号のためのメモリ容量も圧迫するので、１ＬＬ中間符号およびその頻度表は作成しない。
【００７６】
ステップＳ３１の後、第１の判定部４は、分解レベル数２のＬＬ成分（２ＬＬ成分）および分解レベル数１，２のｘｘ成分（１ｘｘ成分、２ｘｘ成分）の中間符号を符号化したときの符号量を推定する（ステップＳ３２）。第１の判定部４は、これらの各成分のＹ，Ｕ，Ｖそれぞれの頻度表からハフマンテーブルを生成し、各ハフマン符号毎に、ハフマン符号のビット長と、対応するＹ，ＵまたはＶの発生頻度とを乗じ、その乗算結果の総和を計算する。さらに、中間符号に含まれるｌｅｎを符号（例えばガンマ符号）に変換したときの符号量もその総和に加算する。第１の判定部４は、２ＬＬ、２ｘｘ、１ｘｘの各成分毎にこの総和を求め、それらの合計を計算すればよい。この合計値は、２ＬＬ成分、２ｘｘ成分および１ｘｘ成分の中間符号を符号化したときの推定符号量である。
【００７７】
続いて、第１の判定部４は、その推定符号量が目標符号量より大きいか否かを判定する（ステップＳ３３）。目標符号量は、ステップＳ３３，Ｓ４３，Ｓ４６で閾値として用いられる。
【００７８】
推定符号量が目標符号量以下である場合（ステップＳ３３のＮ）、ステップＳ３４に移行する。ステップＳ３４において、符号化部７は、２ＬＬの中間符号をハフマン符号に変換する。すなわち、ステップＳ３２で生成した２ＬＬ成分のＹ，Ｕ，Ｖに対応するハフマンテーブルを用いて、２ＬＬ中間符号のＹ，Ｕ，Ｖを、対応するハフマン符号に変換すればよい（ステップＳ３４）。さらに、符号化部７は、２ｘｘ中間符号および１ｘｘ中間符号もハフマン符号に変換する（ステップＳ３５）。２ｘｘ中間符号および１ｘｘ中間符号についても、ステップＳ３２で生成したハフマンテーブルを用いて、対応するハフマン符号に変換すればよい。また、符号化部７は、ステップＳ３４，Ｓ３５において、各中間符号中のｌｅｎを例えばガンマ符号に符号化する。
【００７９】
推定符号量が目標符号量よりも大きい場合（ステップＳ３３のＹ）、再量子化処理（ステップＳ３６）を行う。図１２に示すステップＳ４１以降の処理は、このステップＳ３６の再量子化処理を表している。すなわち、推定符号量が目標符号量よりも大きいならば、ステップＳ４１（図１２参照）に移行する。
【００８０】
本例ではＮ＝３であり、ステップＳ４１に移行したということは、分解レベル数“Ｎ−１”の中間符号のＬＬ成分（２ＬＬ）、および分解レベル数１から“Ｎ−１”までの中間符号のｘｘ成分（１ｘｘ，２ｘｘ）を符号化したときの符号推定量が目標符号量よりも大きい。このとき、第１の推定部４は、符号化部７にＮＬＬ成分（すなわち３ＬＬ）成分を符号化させる（ステップＳ４１）。符号化部７は、３ＬＬ中間符号のＹ，Ｕ，Ｖそれぞれの頻度表からハフマンテーブルを生成し、そのＹ，Ｕ，Ｖをそれぞれ対応するハフマン符号に変換する。また、３ＬＬ中間符号に含まれる各ｌｅｎを、例えばガンマ符号に符号化する。
【００８１】
次に、第１の判定部４は、３ｘｘ中間符号を符号化したときの符号量を推定する（ステップＳ４２）。ステップＳ４２では、３ｘｘ中間符号のＹ，Ｕ，Ｖそれぞれの頻度表からハフマンテーブルを生成し、各ハフマン符号毎に、ハフマン符号のビット長と、対応するＹ，ＵまたはＶの発生頻度とを乗じ、その乗算結果の和を計算する。そして、各ｌｅｎを符号化したときのビット長もその総和に加算し、その結果を推定符号量とすればよい。
【００８２】
第１の判定部４は、ステップＳ４２で求めた３ｘｘ中間符号を符号化したときの推定符号量と、ステップＳ４１で既に符号化した符号データのデータ量との合計が、目標符号量よりも大きくなっているか否かを判定する（ステップＳ４３）。その合計が目標符号量よりも大きければ（ステップＳ４３のＹ）、処理を終了する。また、その合計が目標符号量以下であれば（ステップＳ４３のＮ）、符号化部７に３ｘｘ成分を符号化させる（ステップＳ４４）。符号化部７は、ステップＳ４２で生成したハフマンテーブルを用いて、３ｘｘ成分のＹ，Ｕ，Ｖを対応するハフマン符号に変換する。また、３ｘｘ成分中のｌｅｎを例えばガンマ符号に変換する。
【００８３】
続いて、第２の判定部８は、分解レベル数１〜ｍｑ（本例では２）までの各ｘｘ中間符号を符号化したときの符号量を推定する（ステップＳ４５）。最初にステップＳ４５に移行した場合（すなわち、まだステップＳ４７の再量子化を行っていない場合）には、ステップＳ１で生成した２ｘｘ中間符号および１ｘｘ中間符号を符号化したときの符号量を推定する。また、ステップＳ４７の再量子化処理後にステップＳ４５に移行した場合には、再量子化後の２ｘｘ中間符号および１ｘｘ中間符号を符号化したときの符号量を推定する。第２の判定部８は、２ｘｘ中間符号および１ｘｘ中間符号のＹ，Ｕ，Ｖそれぞれの頻度表からハフマンテーブルを生成し、各ハフマン符号毎に、ハフマン符号のビット長と、対応するＹ，ＵまたはＶの発生頻度とを乗じ、その乗算結果の総和を計算し、さらに、各ｌｅｎを符号化したときのビット長もその総和に加算すればよい。
【００８４】
ステップ４５の後、第２のは判定部８は、ステップＳ４５で推定した符号量と、ステップＳ４１，Ｓ４４で既に符号化した符号データのデータ量との合計が目標符号量よりも大きくなっているか否かを判定する（ステップＳ４６）。
【００８５】
その合計が目標符号量よりも大きければ、第２の判定部８は再量子化を行うと判定し、ステップＳ４７に移行する（ステップＳ４６のＹ）。
【００８６】
また、その合計が目標符号量以下であれば、第２の判定部８は、再量子化を行わないと判定し、ステップＳ４８に移行する（ステップＳ４６のＮ）。
【００８７】
ステップＳ４８では、符号化部７は、ステップＳ４５での符号量推定時に生成したハフマンテーブルを用いて、２ｘｘ成分から１ｘｘ成分のＹ，Ｕ，Ｖを、対応するハフマン符号に変換する。また、各成分中のｌｅｎを例えばガンマ符号に符号化する。
【００８８】
また、ステップＳ４７では、再量子化部６は、１ｘｘ中間符号から２ｘｘ中間符号までのＹ，Ｕ，Ｖを再量子化する。再量子化部６は、１ｘｘから２ｘｘまでの各成分毎に、新たなデッドゾーンおよびＱステップを定める。このとき、再量子化部６は、図１３に例示する量子化粒度のうち、量子化粒度１以上のデッドゾーンおよびＱステップを選択すればよい。すなわち、ステップＳ３１で用いた量子化粒度「０」よりも粒度の粗いデッドゾーンおよびＱステップの組み合わせを選択すればよい。
【００８９】
図１３に例示する各デッドゾーン１および各デッドゾーン２は、ｄｚ＋ｈ・ｑｓとなるという条件を満たすように定められている。例えば、２ｘｘ成分用のデッドゾーン１およびＱステップ１に関しては、ｄｚ＝０、ｑｓ＝１であり（量子化粒度０参照）、各粒度のデッドゾーン１は、０＋ｈ・１となっている。
【００９０】
また、図１３に示すＱステップ２は、ｑｓ・（２ｎ＋１）となるという条件を満たすように定められている。１ｘｘ成分用のＱステップ２に関してはｑｓ＝２であり（量子化粒度０参照）、各粒度のＱステップは、２（２ｎ＋１）となっている。このように、ｑｓ・（２ｎ＋１）となるようにＱステップを定めれば、再量子化後の値は再量子化前の中間符号からずれないので、好ましい。
【００９１】
一方、図１３に示すＱステップ１に関しては、ｑｓ＝１である（量子化粒度０参照）。よって、Ｑステップ１に関しては、ｑｓ・（２ｎ＋１）となっていなくてもよい。例えば、量子化粒度１，２のＱステップ１の値は“２”であるが、この値はｑｓの奇数倍になっていない。
【００９２】
再量子化部６は、新たに選択したデッドゾーンを用いて、絶対値がそのデッドゾーン以下である中間符号（Ｙ，Ｕ，Ｖ）の値を０に再量子化する。また、絶対値がその値を越える範囲を新たなＱステップ毎に区切り、その範囲に属する中間符号（Ｙ，Ｕ，Ｖ）をその範囲の中央値に量子化する。この処理を、２ｘｘ中間符号、１ｘｘ中間符号それぞれに対して行う。
【００９３】
また、ステップＳ４７において、第２の判定部５は、中間符号を再量子化して得た新たなＹ，Ｕ，Ｖの頻度表をそれぞれ生成する。図９を参照して説明したように、第２の判定部５は、再量子化の際に新たに定めた範囲に対応する、中間符号生成時に用いた範囲を特定する。そして、その範囲における発生頻度の和を、新たな範囲における発生頻度とすればよい。発生頻度をカウントし直さずに、既に求めた値の加算だけで発生頻度を導出できるので、処理を高速化することができる。
【００９４】
ステップＳ４７の後、ステップＳ４５以降の処理を繰り返す。第２の判定部５は、ステップＳ４７で頻度表を新たに生成している。第２の判定部５は、その後のステップＳ４５では、その頻度表を用いて、ステップＳ４７で量子化された値の符号を示すハフマンテーブルを生成する。このとき、図１０を参照して説明したように、第２の判定部５は、ステップＳ３１における量子化後の各値（すなわち、ステップＳ３１で生成された各中間符号）を、それぞれ新たな頻度表から生成したハフマンテーブル内の新たな符号に対応づければよい。この結果、中間符号を書き換えることなく、量子化後の値に応じたハフマン符号を生成することができる。
【００９５】
なお、ステップＳ４７では、量子化粒度を定めるが、例えば、２分探索により量子化粒度を定めてもよい。例えば、最初にステップＳ４７に移行したときには、量子化粒度７を選択して再量子化を行い、その後のステップＳ４６で推定符号量が目標符号量よりも大きい場合には、量子化粒度１１を選択していくようにしてもよい。また、この場合、量子化粒度７を選択後のステップＳ４６で推定符号量が目標符号量以下であると判定した場合であっても、ステップＳ４７に移行して量子化粒度３を選択する。このように２分探索によって、推定符号量が目標符号量に収まる範囲で、最も粒度の小さい（すなわち最も画質が高くなる）デッドゾーンおよびＱステップを選択してステップＳ４８に移行してもよい。あるいは、ステップＳ４７に移行する毎に、量子化粒度を昇順に選択してもよい。なお、図７および図８で示した動作においても、再量子化処理において２分探索によってＱステップおよびデッドゾーンを定めてもよい。あるいは、再量子化処理を行うときに、既に選択したＱステップ以上のＱステップや、既に選択したデッドゾーン以上のデッドゾーンを新たに定めてもよい。
【００９６】
また、量子化粒度を高くすると、全ての中間符号（Ｙ，Ｕ，Ｖ）を一つの値（０）に量子化する場合がある。この場合、符号化部７は、ステップＳ４８において、符号化処理を禁止してもよい。すなわち、ハフマン符号への変換を行わなくてもよい。
【００９７】
例えば、Ｙ，Ｕ，Ｖの絶対値が１２８以下であるとする。量子化粒度１４にした場合、デッドゾーン２およびＱステップ２はいずれも１２８となるので、１ｘｘ中間符号のＹ，Ｕ，Ｖは全部０に量子化される。このとき、符号化部７は、ステップＳ４８において、１ｘｘ中間符号のＹ，Ｕ，Ｖの符号化を行わなくてよい。また、１ｘｘ中間符号のｌｅｎの符号化も行わなくてよい。
【００９８】
同様に、量子化粒度を１５にした場合、デッドゾーン１、Ｑステップ１、デッドゾーン２およびＱステップ２はいずれも１２８となる。よって、２ｘｘ中間符号および１ｘｘ中間符号のＹ，Ｕ，Ｖは全部０に量子化される。このとき、符号化部７は、ステップＳ４８において、２ｘｘ中間符号および１ｘｘ中間符号のＹ，Ｕ，Ｖの符号化を行わなくてよい。また、ｌｅｎの符号化も行わなくてよい。
【００９９】
図１１および図１２に示す動作において、ステップＳ４２，Ｓ４３を行わず、ステップＳ４１の後、ステップＳ４４に移行してもよい。この場合、ステップＳ３３で推定符号量が目標符号量よりも大きいと判定するということは、３ｘｘ符号を符号化すると判定することを意味する。
【０１００】
次に、Ｎ＝３、ｍｑ＝２である場合の他の動作例について説明する。図１４は、Ｎ＝３、ｍｑ＝２である場合の他の処理経過の例を示すフローチャートである。以下、１ｘｘ成分等の各成分の中間符号の作成、頻度表の作成、符号化したときの符号量推定、および符号化は、既に説明した動作と同様であるので、詳細な説明は省略する。
【０１０１】
まず、ウェーブレット変換部２が、入力された画像データに対して、分解レベル数３までウェーブレット変換を行う。
【０１０２】
そして、中間符号生成部３は、１ｘｘ成分の中間符号を生成する。また、第１の判定部４１は、１ｘｘ中間符号の頻度表を生成する（ステップＳ４１）。
【０１０３】
次に、中間符号生成部３は、３ＬＬ成分の中間符号を生成する。また、第１の判定部４１は、３ＬＬ中間符号の頻度表を生成する（ステップＳ４２）。
【０１０４】
次に、符号化部７は、３ＬＬ中間符号を符号化する（ステップＳ４３）。符号化部７は、３ＬＬ中間符号を符号化するためのハフマンテーブルを３ＬＬ中間符号の頻度表から導出し、符号化を行えばよい。あるいは、ステップＳ４２で、第１の判定部４１が頻度表から３ＬＬ中間符号用のハフマンテーブルを生成しておいてもよい。
【０１０５】
次に、中間符号生成部３は、３ｘｘ成分の中間符号を生成する。また、第１の判定部４１は、３ｘｘ中間符号の頻度表を生成する（ステップＳ４４）。さらに、第１の判定部４１は、３ｘｘ中間符号を符号化したときの符号量を推定する（ステップＳ４５）。
【０１０６】
続いて、第１の判定部４１は、ステップＳ４５で推定した符号量と、既にステップＳ４３の符号化によって得た符号データのデータ量との合計が、目標符号量よりも大きいか否かを判定し（ステップＳ４６）、目標符号量よりも大きければ処理を終了する。この場合、３ＬＬ成分の符号化のみを行って処理を終了することになる。
【０１０７】
一方、推定符号量と、ステップＳ４３で得た符号データのデータ量との合計が、目標符号量以下である場合（ステップＳ４６のＮ）、第１の判定部４１は、符号化部７に３ｘｘ中間符号を符号化させる（ステップＳ４７）。
【０１０８】
次に、中間符号生成部３は、２ｘｘ成分の中間符号を生成する。また、第２の判定部５は、２ｘｘ中間符号の頻度表を生成する（ステップＳ４８）。
【０１０９】
その後、再量子化部６は、２ｘｘ中間符号を再量子化し、第２の判定部５は、再量子化後の２ｘｘ中間符号の頻度表を生成する（ステップＳ４９）。この頻度表は、ステップＳ４８で作成した頻度表を用いて作成すればよい。すなわち、ステップ４９での量子化のために定めた個々の範囲に対応する、ステップＳ４８で用いた各範囲を特定し、その各範囲における発生頻度の和を、新たな範囲における発生頻度とすればよい。
【０１１０】
また、再量子化部６は、１ｘｘ中間符号を再量子化し、第２の判定部５は、再量子化後の１ｘｘ中間符号の頻度表を生成する（ステップＳ５０）。ステップＳ４９の場合と同様に、既にステップＳ４１で作成済みの頻度表を用いて、再量子化後の中間符号の頻度表を生成する。
【０１１１】
次に、第２の判定部５は、再量子化後の２ｘｘ中間符号をハフマン符号に符号化したときの符号量を推定する（ステップＳ５１）。また、同様に、再量子化後の１ｘｘ中間符号をハフマン符号に符号化したときの符号量を推定する（ステップＳ５２）。そして、第２の判定部５は、既に符号化した３ＬＬ成分および３ｘｘ成分の符号データのデータ量と、ステップＳ５１，Ｓ５２で求めた推定符号量の合計が目標符号量よりも大きくなっているか否かを判定する（ステップＳ５３）。
【０１１２】
その合計が目標符号量よりも大きくなっていれば（ステップＳ５３のＹ）、ステップＳ４９以降の処理を繰り返す。また、その合計が目標符号量以下であれば（ステップＳ５３のＮ）、符号化部７は、再量子化後の２ｘｘ中間符号および１ｘｘ中間符号をそれぞれハフマン符号に符号化する（ステップＳ５４，Ｓ５５）。
【０１１３】
なお、ステップＳ４８の後、ステップＳ５１に移行し、最初にステップＳ５１，Ｓ５２に移行した場合には、再量子化前の中間符号を符号化したときの符号データのデータ量を推定してもよい。その後、ステップＳ５３の判定結果に応じて、ステップＳ４９以降の処理を繰り返してもよい。
【０１１４】
以上の実施形態では、中間符号を符号化したときの符号量推定の際、ｌｅｎをガンマ符号に符号化したときの符号量も計算する。ｌｅｎをガンマ符号に符号化したときの符号量は、ｌｅｎをガンマ符号に変換して求めてもよい。あるいは、ｌｅｎを符号化したときの符号量の総和（連長符号の総和）Ｌを、以下に示す式（１）で近似的に求めてもよい。
【０１１５】
【数１】
0004911052.tif 000002
【０１１６】
式（１）において、ｂは、符号化したｌｅｎがとり得る最長のビット数である。ｂは、例えば３１ビット等のように予め定められている。また、Ｐは、係数（Ｙ，Ｕ，Ｖ）とｌｅｎ値の組の個数である。式（１）は、連長が指数分布に従って発生すると想定した近似式である。
【０１１７】
また、上記の実施形態では、中間符号を生成したときや、中間符号を再量子化したときに頻度表を生成し、頻度表からハフマンテーブルを生成する場合を説明したが、予めハフマンテーブルを用意していてもよい。すなわち、中間符号を符号化するときに用いるハフマンテーブルや、再量子化後の中間符号を符号化するときに用いるハフマンテーブルを予め保持しておき、そのハフマンテーブルを使って符号量の推定や符号化を行ってもよい。再量子化後の中間符号を符号化するときに用いるハフマンテーブルは、再量子化処理の回数によって異なるので、各回の再量子化毎に個別に保持しておけばよい。予めハフマンテーブルを保持しておく場合、実際のデータ（Ｙ，Ｕ，Ｖ）の発生頻度に合致したハフマンテーブルとはならない可能性が高いが、符号量の推定や符号化処理に用いることができる。
【０１１８】
また、上記の実施形態では、符号化の方式がハフマン符号化である場合を例に説明したが、他の方式で符号化を行ってもよい。例えば、中間符号（Ｙ，Ｕ，Ｖ）を算術符号化してもよい。Ｙ，Ｕ，Ｖを算術符号化する場合には、符号化したときのデータ量を以下のように推定すればよい。すなわち、あるデータの発生確率をＰとすると、そのデータを算術符号化したときの符号量を−Ｌｏｇ２Ｐビットとして計算すればよい。このように、データを算術符号化する場合であっても、符号化後の符号量を推定可能であり、算術符号化を本発明に適用してもよい。
【０１１９】
また、上記の各実施形態では、中間データを生成するときに（例えば、ステップＳ１やステップＳ３１において）、ウェーブレット変換によって得られた係数に対して量子化を行った結果を中間符号とする場合を例にして説明したが、ウェーブレット変換によって得られた係数（ウェーブレット係数）自体を中間符号としてもよい。具体的には、予め決められた分解レベル数以上の成分に関しては、ウェーブレット係数自体を中間データとしてもよい。例えば、分解レベル数Ｎまでウェーブレット変換を行った場合、分解レベル数“Ｎ−Ｔ”以上Ｎ以下のウェーブレット係数をそのまま中間符号とし、分解レベル数“Ｎ−Ｔ”未満のウェーブレット係数についてはステップＳ１，Ｓ３１で説明したようにウェーブレット係数を量子化した結果を中間符号としてもよい。ウェーブレット係数をそのまま中間符号とする分解レベル数“Ｎ−Ｔ”〜“Ｔ”は、符号化後のデータに要求される画質や圧縮率に応じて予め決めておけばよい。また、ＬＬ成分についてはウェーブレット係数をそのまま中間符号とし、ｘｘ成分についてはウェーブレット係数をステップＳ１，Ｓ３１で説明したように量子化したデータを中間符号としてもよい。
【０１２０】
次に、本発明の概要について説明する。図１５は、本発明の概要を示すブロック図である。図１５に示すように、本発明の画像処理装置は、ウェーブレット変換手段８１と、中間データ導出手段８２と、符号化手段８３とを備える。
【０１２１】
ウェーブレット変換手段８１（例えば、ウェーブレット変換部２）は、所定の分解レベル数（例えばＮ）まで画像データに対してウェーブレット変換を行う。
【０１２２】
中間データ導出手段８２（例えば、中間符号生成部３）は、その所定の分解レベル数以下のＬＬ成分以外の成分（例えば分解レベル数１からＮまでの各ｘｘ成分）、および、複数種類の分解レベル数でのウェーブレット変換で得たその複数種類の分解レベル数のＬＬ成分（例えば、ｍｉからＮまでのＬＬ成分）から、所定の量子化ステップで量子化した値であるかまたはウェーブレット変換によって得られた係数自体である中間データを導出する。
【０１２３】
符号化手段８３（例えば、ステップＳ１で頻度表を生成し、ステップＳ３，Ｓ４，Ｓ５，Ｓ７を行う第１の判定部４と、ステップＳ９を行う符号化部７によって実現される。）は、その所定の分解レベル数以下のＬＬ成分以外の成分およびその複数種類の分解レベル数のＬＬ成分の中間データの発生頻度を示す頻度情報（例えば頻度表）を生成し、その複数種類の分解レベル数のうち、頻度情報に基づいて推定される符号化後の符号量が目標符号量よりも大きくないという条件（例えば、ステップＳ５のＮ）を満たす最小の分解レベル数の中間データに対して符号化を行う。
【０１２４】
上記の条件を満たすような最小の分解レベル数の中間データに対して符号化を行うので、その分解レベル数が小さければ高画質大容量の符号が得られ、分解レベル数が大きければ低画質小容量の符号が得られる。このように条件を満たす分解レベル数について符号化するので、符号量が目標符号量以下になるようにしつつ、符号化後の画像データの画質ができるだけ向上するように符号化することができる。また、ウェーブレット変換や符号化処理をやり直す必要がないので、処理負荷を軽減できる。
【０１２５】
また、所定の分解レベル数より１小さい分解レベル数においても符号化後の符号量が目標符号量よりも大きくなると判定されたならば（例えばステップＳ３のＮ）、所定の分解レベル数のＬＬ成分の中間データを符号化する最大レベルＬＬ成分符号化手段（例えばステップＳ１１を実行する部分）と、所定の分解レベル数より１小さい分解レベル数においても符号化後の符号量が目標符号量よりも大きくなると判定されたならば、ＬＬ成分以外の成分の中間データを、符号化後の符号量が目標符号量よりも大きくないという条件を満たすように量子化し、その量子化後の中間データを符号化する量子化後データ符号化手段（例えば、ステップＳ１８〜Ｓ２１を実行する部分）とを備える構成であってもよい。
【０１２６】
そのような構成によれば、最大となる分解レベル数で符号化を行う場合に、さらに符号量を削減するように符号量制御を行うことができる。
【０１２７】
また、量子化後データ符号化手段が、符号化後の符号量が目標符号量よりも大きくないという条件を満たすように中間データを量子化したときに、その量子化後のデータが全て０となるならば、その量子化後の中間データの符号化を禁止する構成であってもよい。
【０１２８】
そのような構成によれば、量子化粒度が一定以上粗くなった状況で、符号化処理自体を省略することによって、符号量および処理負荷を削減できる。
【０１２９】
また、量子化後データ符号化手段は、１以上一定値以下（例えば、１以上ｍｑ以下）の分解レベル数のＬＬ成分以外の成分の中間データを対象にして量子化を行う構成であってもよい。
【０１３０】
そのような構成によれば、符号量の占める割合の大きい高解像度成分（換言すれば、中間データの量子化による符号量への影響が大きい高解像度成分）に絞って中間データの量子化処理を行い、処理負荷を削減できる。
【０１３１】
また、その一定値を越える分解レベル数を、所定の分解レベル数から大きい順に選択し、選択した分解レベル数のＬＬ成分以外の成分の中間データを符号化したときの符号量を推定し、推定した符号量および既に符号化した符号量の合計が目標符号量よりも大きくなければその中間データを符号化し、合計が目標符号量より大きければ符号化処理を中止する中止判定手段（例えば、ステップＳ１２〜Ｓ１７を実行する部分）を備える構成であってもよい。
【０１３２】
そのような構成によれば、中間データの量子化が行われない成分について、推定した符号量が目標符号量よりも大きくなると判明した時点で符号化を打ち切るため、符号量をより確実に目標符号量以下に抑えることができる。
【０１３３】
また、所定の分解レベル数は３であり、中間データ導出手段が、分解レベル数が２および３のＬＬ成分の中間データを導出する構成であってもよい。
【０１３４】
分解レベル数を３としてウェーブレット変換を行うと、符号化効率と画質のバランスが良好であるため、所定の分解レベル数を３とすることが好ましい。一方、量子化粒度が細かくなる高画質領域では、分解レベル数が３であると、画質低下が知覚されやすい（特に、ウェーブレット基底関数がＨＡＡＲの場合）。この場合、分解レベル数２の中間データに基づいて符号化を行えば、画質低下を抑える効果が大きい。よって、上記のような構成とすることによって、所要メモリや処理負荷を削減し、効果的な符号量制御を実現することができる。
【０１３５】
また、上記の一定値は２であり、量子化後データ符号化手段が、分解レベル数が１および２のＬＬ成分以外の成分の中間データを対象にして量子化を行う構成であってもよい。
【０１３６】
一般的に、ウェーブレット変換では、１／１０という標準的な圧縮率では、１ｘｘ成分の符号量が全体の約１／２を占め、２ｘｘ成分の符号量が全体の約１／３を示す。よって、上記のような構成によれば、分解レベル数が１および２のＬＬ成分以外の成分に限定して中間データの量子化を行い、効率的な符号量制御を実現することができる。
【産業上の利用可能性】
【０１３７】
本発明は、画像データを符号化する画像処理装置に好適に適用される。
【図面の簡単な説明】
【０１３８】
【図１】本発明の画像処理装置の例を示すブロック図である。
【図２】ウェーブレット変換を模式的に示す説明図である。
【図３】ウェーブレット係数から生成した中間符号を模式的に示す説明図である。
【図４】頻度表の例を示す説明図である。
【図５】ハフマンテーブルの例を示す説明図である。
【図６】ハフマン符号化の結果の例を模式的に示す説明図である。
【図７】本発明の処理経過の一例を示すフローチャートである。
【図８】本発明の処理経過の一例を示すフローチャートである。
【図９】頻度表導出を模式的に示す説明図である。
【図１０】中間符号の値と再量子化後に導出した符号との対応付けを示す説明図である。
【図１１】Ｎ＝３、ｍｑ＝２である場合の処理経過の一例を示すフローチャートである。
【図１２】Ｎ＝３、ｍｑ＝２である場合の処理経過の一例を示すフローチャートである。
【図１３】デッドゾーンおよびＱステップの例を示す説明図である。
【図１４】Ｎ＝３、ｍｑ＝２である場合の他の処理経過の例を示すフローチャートである。
【図１５】本発明の概要を示すブロック図である。
【符号の説明】
【０１３９】
１  画像処理装置
２  ウェーブレット変換部
３  中間符号生成部
４  第１の判定部
５  第２の判定部
６  再量子化部
７  符号化部
８１  ウェーブレット変換手段
８２  中間データ生成手段
８３  符号化手段
【図１】
0004911052.tif 000003
【図２】
0004911052.tif 000004
【図３】
0004911052.tif 000005
【図４】
0004911052.tif 000006
【図５】
0004911052.tif 000007
【図６】
0004911052.tif 000008
【図７】
0004911052.tif 000009
【図８】
0004911052.tif 000010
【図９】
0004911052.tif 000011
【図１０】
0004911052.tif 000012
【図１１】
0004911052.tif 000013
【図１２】
0004911052.tif 000014
【図１３】
0004911052.tif 000015
【図１４】
0004911052.tif 000016
【図１５】
0004911052.tif 000017