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