(57)【特許請求の範囲】
【請求項１】
画像に対して符号化を行う画像符号化装置であって、
前記画像において、他の領域よりも高解像度で復号を要求する領域を示す領域情報を生成する領域情報生成手段と、
前記画像に対して周波数変換を施し、サブバンド毎の係数を生成する周波数変換手段と、
前記周波数変換手段によるサブバンドのうち復号解像度レベルが最も高いサブバンドを構成する係数群もしくは該係数群のそれぞれの量子化値のうち、前記領域情報が示す領域内の画素を用いずに生成された係数もしくは該係数の量子化値を０に修正する修正手段と、
前記修正手段により修正された係数を含む全ての係数についてエントロピ符号化を行い、符号列を生成する符号化手段と
を備え、
前記修正手段は、復号解像度レベルが最も高いサブバンドを構成する係数群もしくは該係数群のそれぞれの量子化値が、前記領域情報が示す領域内の画素を用いずに生成された係数もしくは該係数の量子化値であるか否かを示すマスク情報を前記領域情報に基づいて生成し、当該マスク情報に応じて、前記領域情報が示す領域内の画素を用いずに生成された係数もしくは該係数の量子化値を０に修正する
ことを特徴とする画像符号化装置。
【請求項２】
前記他の領域よりも高解像度で復号を要求する領域は文字領域を含むことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記修正手段は、復号解像度レベルが最も高い各サブバンドに対して前記マスクを生成することを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
前記周波数変換手段は、離散ウェーブレット変換を用いることを特徴とする請求項１に記載の画像符号化装置。
【請求項５】
画像に対して符号化を行う画像符号化装置であって、
前記画像を予め定められたサイズのタイルに分割する分割手段と、
前記分割手段による各タイルに対して周波数変換を行い、各タイルに対するサブバンド毎の係数を生成する周波数変換手段と、
前記分割手段による各タイルに特定の領域が含まれているか否かの判定結果を生成する判定手段と、
前記周波数変換手段によるサブバンドのうち、復号解像度レベルが最も高いサブバンドを構成する係数群もしくは該係数群のそれぞれの量子化値のうち、前記特定の領域内の画素を用いずに生成された係数もしくは該係数の量子化値を０に修正する修正手段と、
前記修正手段により修正された係数を含む全ての係数についてエントロピ符号化を行い、符号列を生成する符号化手段と
を備え、
前記修正手段は、復号解像度レベルが最も高いサブバンドを構成する係数群もしくは該係数群のそれぞれの量子化値が、前記特定の領域内の画素を用いずに生成された係数もしくは該係数の量子化値であるか否かを示すマスク情報を生成し、当該マスク情報に応じて、前記特定の領域内の画素を用いずに生成された係数もしくは該係数の量子化値を０に修正する
ことを特徴とする画像符号化装置。
【請求項６】
画像に対して符号化を行う画像符号化方法であって、
前記画像において、他の領域よりも高解像度で復号を要求する領域を示す領域情報を生成する領域情報生成工程と、
前記画像に対して周波数変換を施し、サブバンド毎の係数を生成する周波数変換工程と、
前記周波数変換工程によるサブバンドのうち、復号解像度レベルが最も高いサブバンドを構成する係数群もしくは該係数群のそれぞれの量子化値のうち、前記領域情報が示す領域内の画素を用いずに生成された係数もしくは該係数の量子化値を０に修正する修正工程と、
前記修正工程で修正された係数を含む全ての係数についてエントロピ符号化を行い、符号列を生成する符号化工程と
を備え、
前記修正工程では、復号解像度レベルが最も高いサブバンドを構成する係数群もしくは該係数群のそれぞれの量子化値が、前記領域情報が示す領域内の画素を用いずに生成された係数もしくは該係数の量子化値であるか否かを示すマスク情報を前記領域情報に基づいて生成し、当該マスク情報に応じて、前記領域情報が示す領域内の画素を用いずに生成された係数もしくは該係数の量子化値を０に修正する
ことを特徴とする画像符号化方法。
【請求項７】
画像に対して符号化を行う画像符号化方法であって、
前記画像を予め定められたサイズのタイルに分割する分割工程と、
前記分割工程による各タイルに対して周波数変換を行い、各タイルに対するサブバンド毎の係数を生成する周波数変換工程と、
前記分割工程による各タイルに特定の領域が含まれているか否かの判定結果を生成する判定工程と、
前記周波数変換工程によるサブバンドのうち、復号解像度レベルが最も高いサブバンドを構成する係数群もしくは該係数群のそれぞれの量子化値のうち、前記特定の領域内の画素を用いずに生成された係数もしくは該係数の量子化値を０に修正する修正工程と、
前記修正工程で修正された係数を含む全ての係数についてエントロピ符号化を行い、符号列を生成する符号化工程と
を備え、
前記修正工程では、復号解像度レベルが最も高いサブバンドを構成する係数群もしくは該係数群のそれぞれの量子化値が、前記特定の領域内の画素を用いずに生成された係数もしくは該係数の量子化値であるか否かを示すマスク情報を生成し、当該マスク情報に応じて、前記特定の領域内の画素を用いずに生成された係数もしくは該係数の量子化値を０に修正する
ことを特徴とする画像符号化方法。
【請求項８】
コンピュータを請求項１乃至５の何れか１項に記載の画像符号化装置として機能させるためのコンピュータプログラム。
【請求項９】
請求項８に記載のコンピュータプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データを符号化する技術に関するものである。
【０００２】
【従来の技術】
近年、デジタルカメラ、スキャナといった画像入力装置の技術の向上にともない、これら入力装置により取り込む画像データの解像度は増加の一途を辿っている。低解像度の画像であれば画像データの量も少なく、伝送、蓄積といった処理に支障をきたすことはないが、高解像度になるにつれ、画像データ量も膨大なものになり、伝送する際に多くの時間がかかったり、蓄積に多くの記憶容量を必要とするという問題がある。
【０００３】
このため画像の伝送、蓄積に際しては高能率符号化を用いることにより、画像の冗長性を除く、あるいは視覚的に許容できる範囲で画像を加工し、データ量の削減を行うことが一般的である。復号により元の画像を完全に再現できる符号化方式を可逆符号化、視覚的に近い画像を得ることができるものの、完全には元の画像を再現できない符号化方式を非可逆符号化と呼んでいる。非可逆符号化の場合、視覚的に劣化が目立たない部分を変化させて符号量の削減を図ることが肝要であるが、これは画像の特性に大きく依存している。画像データと一口にいってもそのタイプは様々であり、人物・風景等を銀塩写真で撮影し、スキャナで読み取る、あるいは直接デジタルカメラで撮影するなどして生成される自然画像、文字、線情報をラスタライズした文字・線画像、コンピュータで生成した２次元画像データや３次元形状をレンダリングしたＣＧ画像などがあり、良好な再生画質を得るためにはそれぞれに必要解像度、必要階調数が異なると言われる。一般には文字画像、線画像は自然画像に比べて高い解像度が必要であるとされている。
【０００４】
従来、高能率符号化の一手法としてウェーブレット変換を利用する方法が用いられている。従来方式では、まず、離散ウェーブレット変換を用いて符号化対象画像を複数の周波数帯域（サブバンド）に分割する。そして次に，各サブバンドの変換係数をさまざまな方法で量子化，エントロピー符号化して符号列を生成する。画像のウェーブレット変換の方法としては、図４（ａ），（ｂ），（ｃ）にその過程を示すように、符号化対象画像（図４（ａ））に対して１次元の変換処理を水平、垂直方向にそれぞれに適用して４つのサブバンドに分割する方法が用いられる。さらに、低周波サブバンド（ＬＬサブバンド）のみを繰り返して分割する方法が一般的である。図５に１次元の変換を２回繰り返して行った場合の各サブバンドの例を示す。
【０００５】
ウェーブレット変換を用いた画像符号化の利点の一つとして、空間解像度の段階的復号の実現が容易であるということが挙げられる。図５のようにウェーブレット変換を施し、低周波サブバンドＬＬから高周波サブバンドＨＨ２へと順々に各サブバンドの係数を符号化・伝送した場合、復号側ではＬＬサブバンドの係数を受信した段階で原画像に対して１／４の解像度の復元画像を、また、ＬＬ，ＬＨ１，ＨＬ１，ＨＨ１を受信した段階で１／２の解像度の復元画像を、さらにＬＨ２，ＨＬ２，ＨＨ２までを受信した場合には元の解像度の復元画像をといった具合に、徐々に解像度を上げて画像を復号することができる。
【０００６】
【発明が解決しようとする課題】
しかしながら、上述した様な従来型の高能率符号化方法では、自然画像、文字・線画像の混在する画像データを符号化する際に、自然画像と文字・線画像で良好な画質を得るために必要とされる解像度が異なる点を考慮していないため、効率の良い符号化方式とは言えなかった。
【０００７】
本発明は以上の問題に鑑みて成されたものであり、異なる解像度レベルを必要とする領域を含む画像データを符号化する場合に、効率の良い画像符号化を行うことを目的とする。
【０００８】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の画像符号化装置は以下の構成を備える。
【０００９】
すなわち、画像に対して符号化を行う画像符号化装置であって、
前記画像において、他の領域よりも高解像度で復号を要求する領域を示す領域情報を生成する領域情報生成手段と、
前記画像に対して周波数変換を施し、サブバンド毎の係数を生成する周波数変換手段と、
前記周波数変換手段によるサブバンドのうち復号解像度レベルが最も高いサブバンドを構成する係数群もしくは該係数群のそれぞれの量子化値のうち、前記領域情報が示す領域内の画素を用いずに生成された係数もしくは該係数の量子化値を０に修正する修正手段と、
前記修正手段により修正された係数を含む全ての係数についてエントロピ符号化を行い、符号列を生成する符号化手段と
を備え、
前記修正手段は、復号解像度レベルが最も高いサブバンドを構成する係数群もしくは該係数群のそれぞれの量子化値が、前記領域情報が示す領域内の画素を用いずに生成された係数もしくは該係数の量子化値であるか否かを示すマスク情報を前記領域情報に基づいて生成し、当該マスク情報に応じて、前記領域情報が示す領域内の画素を用いずに生成された係数もしくは該係数の量子化値を０に修正する
ことを特徴とする。
【００１４】
【発明の実施の形態】
以下添付図面に従って、本発明を好適な実施形態に従って詳細に説明する。
【００１５】
［第１の実施形態］
図１に本実施形態における画像符号化装置の機能構成を示す。同図において１０１は画像入力部、１０２は離散ウェーブレット変換部、１０３は係数量子化部、１０４は係数値修正部、１０５は高解像度領域情報入力部、１０６はマスク生成部、１０７はビットプレーン符号化部、１０８は符号列形成部、１０９は符号出力部である。
【００１６】
又、本実施形態における画像符号化装置の基本構成を図１０に示す。
【００１７】
１００１はＣＰＵで、ＲＡＭ１００２やＲＯＭ１００３に格納されたプログラムやデータを用いて本画像符号化装置全体の制御を行うと共に、後述の各種の符号化処理を実行する。１００２はＲＡＭで、外部記憶装置１００４や記憶媒体ドライブ１０１０からロードされるプログラムやデータを一時的に記憶するエリアを備えると共に、ＣＰＵ１００１が各種の処理を実行する際に用いるワークエリアも備える。１００３はＲＯＭで、本画像符号化装置全体の制御などを行うプログラムやデータ等を格納する。１００４はハードディスクなどの外部記憶装置で、記憶媒体ドライブ１００９から読み込んだプログラムやデータ等を保存する。１００５、１００６は夫々キーボード、マウスで、本画像符号化装置に対して各種の指示を入力することができる。１００７はＣＲＴや液晶画面などの表示装置で、各種のメッセージや文字情報や画像情報などを表示することができる。１００８はスキャナ、デジタルカメラ等の撮像装置、ＣＣＤなどの撮像デバイスとガンマ補正、シェーディング補正など各種の画像調整回路を含む画像入力装置である。１００９は記憶媒体ドライブ１００９で、ＣＤ−ＲＯＭやＤＶＤ等の記憶媒体からプログラムやデータなどを読み込んでＲＡＭ１００２や外部記憶装置１００４や等に出力する。１０１０は上述の各部を繋ぐバスである。
【００１８】
尚、後述の符号化処理のプログラムはＣＤ−ＲＯＭやＤＶＤなどの記憶媒体からドライブ１００９を介して読み込み、実行するがこれに限定されるものではなく、ＲＯＭ１００３に記憶しておいても良い。
【００１９】
又上述の通り、本実施形態の画像符号化装置は図１０に示す基本構成を備えるが、図１に示した機能構成を有するプログラムを記憶媒体ドライブ１００９，もしくは外部記憶装置１００４等から読み込み、ＣＰＵ１００１により実行することで、本画像符号化装置を図１に示す構成を備える装置としても良い。
【００２０】
本実施形態では１画素の輝度値が８ビットで表現されるモノクロ画像データを符号化するものとして説明する。しかしながらこれに限らず、４ビット、１０ビット、１２ビットなど、８ビット以外のビット数で輝度値を表現している画像データにも適用できる。また各画素をＲＧＢ、ＣＭＹＫなどの複数の色成分或いはＹＣｒＣｂ等の輝度と色度／色差成分で表現するカラー画像データにも適用できる。この場合にはカラー画像データ中の各成分がモノクロ画像データであると見なせば良い。
【００２１】
以下、図１に示す機能構成を有する画像符号化装置の各部の機能とその動作について説明する。
【００２２】
まず、本実施形態の画像符号化装置が行う符号化処理の符号化対象となる画像データＰ（ｘ，ｙ）が画像入力部１０１からラスタースキャン順に入力される。この画像入力部１０１は画像入力装置１００８として機能し、例えばスキャナ、デジタルカメラ等の撮像機能を有する部分である。また、ＣＣＤなどの撮像デバイスとガンマ補正、シェーディング補正など各種の画像調整回路機能を含む。
【００２３】
離散ウェーブレット変換部１０２は画像入力部１０１から入力される画像データＰ（ｘ，ｙ）をＲＡＭ１００２に適宜格納しながら２次元の離散ウェーブレット変換を施す。そして画像データＰ（ｘ、ｙ）をＬＬ，ＬＨ１，ＨＬ１，ＨＨ１，ＬＨ２，ＨＬ２，ＨＨ２の７つのサブバンドに分解し、各サブバンドの係数をＲＡＭ１００２内において、画像データＰ（ｘ、ｙ）を格納しているエリアとは別のエリアに上記の７つのサブバンドの係数を出力する。以降、各サブバンドの係数をＣ（Ｓ，ｘ，ｙ）と表す。Ｓはサブバンドを表し、ＬＬ，ＬＨ１，ＨＬ１，ＨＨ１，ＬＨ２，ＨＬ２，ＨＨ２のいずれかである。またｘ，ｙは各サブバンド内の左上隅の係数位置を（０，０）とした場合の水平方向および垂直方向の係数位置を表す。２次元離散ウェーブレット変換は、１次元の変換（フィルタ処理）を変換対象の画像の水平・垂直方向それぞれに適用することにより実現する。
【００２４】
図４に符号化対象画像に対して２次元の離散ウェーブレット変換を施す処理を示す。まず符号化対象画像（図４（ａ））に対して垂直方向に１次元の離散ウェーブレット変換を適用し、低周波サブバンドＬと高周波サブバンドＨに分解する（図４（ｂ））。さらに、夫々に水平方向の１次元離散ウェーブレット変換を適用することにより、ＬＬ，ＨＬ，ＬＨ，ＨＨの４つのサブバンドに分解する（図４（ｃ））。本画像符号化装置では、Ｎ個の１次元信号ｘ（ｎ）（ｎは０からＮ−１とする）に対する１次元離散ウェーブレット変換は以下の式により行われるものとする。
【００２５】
ｈ（ｎ）＝ｘ（２ｎ＋１）−（ｘ（２ｎ）＋ｘ（２ｎ＋２））／２  （１）
ｌ（ｎ）＝ｘ（２ｎ）＋（ｈ（ｎ−１）＋ｈ（ｎ）＋２）／４      （２）
ここで、ｈ（ｎ）は高周波サブバンドの係数、ｌ（ｎ）は低周波サブバンドの係数を表す。なお、ここでは説明を省略するが、上記式の計算において必要となる１次元信号ｘ（ｎ）の両端ｘ（ｎ）（ｎ＜０およびｎ≧Ｎ）は公知の手法により１次元信号ｘ（ｎ）（０≦ｎ＜Ｎ）の値から求めておく。上述の２次元離散ウェーブレット変換により得られたサブバンドＬＬに対して、さらに繰り返して２次元離散ウェーブレット変換を適用することにより、図５のようにＬＬ，ＬＨ１，ＨＬ１，ＨＨ１，ＬＨ２，ＨＬ２，ＨＨ２の７つのサブバンドに分解することもできる。なお、図５のＬＬは図４（ｃ）のＬＬを再分解したものであり、同一のものではない。
【００２６】
係数量子化部１０３は離散ウェーブレット変換部１０２により生成される各サブバンドの係数Ｃ（Ｓ，ｘ，ｙ）を、各サブバンド毎に定めた量子化ステップｄｅｌｔａ（Ｓ）を用いて量子化する。量子化された係数値をＱ（Ｓ，ｘ，ｙ）と表すとすると、係数量子化部１０３で行われる量子化処理は以下の式により表される。
【００２７】
Q(S,x,y)=sign{C(S,x,y)}×floor{|C(S,x,y)|/delta(S)}
ここで、ｓｉｇｎ｛Ｉ｝は整数Ｉの正負符号を表す関数であり、Ｉが正ならば１、負ならば−１を返す。また、ｆｌｏｏｒ｛Ｒ｝は実数Ｒを超えない最大の整数値を表す。
【００２８】
一方、画像入力部１０１からの画像データ入力と同期して高解像度領域情報入力部１０５から、高解像度を必要とする領域（例えば、画像中の文字領域）を指定する領域指定情報Ｈ（ｘ，ｙ）が入力される。この入力は本画像符号化装置の操作者が入力しても良いし、本画像符号化装置による画像処理の結果として入力しても良い。
【００２９】
前者の場合には例えば、表示装置１００７に符号化対象の画像を表示し、操作者は表示装置１００７に表示された画像を参照して高解像度を必要とする領域をキーボード１００５やマウス１００６等を用いて選択する。この選択の際にはＧＵＩなどを用いても良い。
【００３０】
後者の場合には例えば、高解像度を必要とする領域を画像中の文字領域とする場合、エッジ処理などの画像処理を用いてこの文字領域を推定してもよい。又、後者の場合には、画像入力部１０１から画像を入力する必要がある。
【００３１】
なお、Ｈ（ｘ，ｙ）は０または１の値を持ち、１ならば高解像度を必要とする領域、０ならば必要としない領域を表す。また、Ｈ（０，０）は画像の左上隅の画素に対する領域指定情報を表す。
【００３２】
マスク生成部１０６は高解像度領域情報入力部１０５から入力（指定）される領域指定情報Ｈ（ｘ，ｙ）を元に、ＨＬ２サブバンド、ＬＨ２サブバンド、ＨＨ２サブバンドの各係数が高解像度領域の画素を参照して生成された係数であるか否かを示すマスク情報Ｍ（Ｓ，ｘ，ｙ）（但しＳはＨＬ２，ＬＨ２，ＨＨ２のいずれか）を求める。マスク情報Ｍ（Ｓ，ｘ，ｙ）は、式（１），（２）を用いて画像データＰ（ｘ，ｙ）からＣ（Ｓ，ｘ，ｙ）を求める過程で、高解像度領域の画素、すなわちＨ（ｘ，ｙ）＝１であるＰ（ｘ，ｙ）を少なくとも一つ使用した場合には１、使用していない場合は０とする。なお、マスク情報Ｍ（Ｓ、０，０）はサブバンドＳに含まれる係数のうち、左上隅の係数に対するマスク情報を示す。
【００３３】
係数値修正部１０４は係数量子化部１０３により量子化された各サブバンドの係数Ｑ（Ｓ，ｘ，ｙ）について、サブバンドＳがＨＬ２，ＬＨ２，ＨＨ２ならば、マスク生成部１０６の生成するＭ（Ｓ，ｘ，ｙ）を参照して修正を施し、修正量子化値Ｑ’（Ｓ，ｘ，ｙ）を求める。サブバンドＳがＨＬ２，ＬＨ２，ＨＨ２以外であれば修正量子化値Ｑ’（Ｓ，ｘ，ｙ）＝Ｑ（Ｓ，ｘ，ｙ）である。サブバンドＳがＨＬ２，ＬＨ２，ＨＨ２の場合には、
0005078199.tif 000002
とする。すなわち、高解像度領域内の画素に関係する係数であれば、Ｑ（Ｓ，ｘ，ｙ）をそのまま修正量子化値とし、高解像度領域内の画素に関係しない係数であれば、０に置き換える。
【００３４】
ビットプレーン符号化部１０７は、係数値修正部１０４の生成する修正量子化値Ｑ’（Ｓ，ｘ，ｙ）を符号化し、符号列を生成する。各サブバンドの係数をブロック分割し、別々に符号化することによりランダムアクセスを容易にする方法などが知られているが、ここでは説明を簡単にするためにサブバンド単位に符号化することとする。各サブバンドの修正量子化値Ｑ’（Ｓ，ｘ，ｙ）（以降、単に係数値と呼ぶ）の符号化は、サブバンド内の係数値Ｑ’（Ｓ，ｘ，ｙ）の絶対値を自然２進数で表現し、上位の桁から下位の桁へとビットプレーン方向を優先して２値算術符号化することにより行われる。各サブバンドの修正量子化値Ｑ’（Ｓ，ｘ，ｙ）を自然２進表記した場合の下からｎ桁目のビットをＱｎ（Ｓ，ｘ，ｙ）と表記して説明する。なお、２進数の桁を表す変数ｎをビットプレーン番号と呼ぶこととし、ビットプレーン番号ｎはＬＳＢを０桁目とする。
【００３５】
図６にビットプレーン符号化部１０７でサブバンドＳを符号化する処理のフローチャートを示す。
【００３６】
ステップＳ６０１はサブバンドＳ内の係数の絶対値の最大値Ｍａｂｓ（Ｓ）を求めるステップ、ステップＳ６０２は最大値Ｍａｂｓ（Ｓ）を表すのに必要な有効桁数ＮＢＰ（Ｓ）を求めるステップ、ステップＳ６０３は変数ｎに有効桁数を代入するステップ、ステップＳ６０４は（ｎ−１）を求めてｎに代入するステップ、ステップＳ６０５はｎ桁目のビットプレーンを符号化するステップ、ステップＳ６０６はｎが０であるか否かを判定するステップである。
【００３７】
同図を用いてビットプレーン符号化部１０７におけるサブバンドＳの符号化処理の流れについて説明する。まず、ステップＳ６０１で符号化対象となるサブバンドＳ内の係数の絶対値を調べ、その最大値Ｍａｂｓ（Ｓ）を求める。次に、ステップＳ６０２ではＭａｂｓ（Ｓ）を２進数で表現するのに必要となる桁数ＮＢＰ（Ｓ）を以下の式により求める。
【００３８】
ＮＢＰ（Ｓ）＝ｃｅｉｌ｛ｌｏｇ２（Ｍａｂｓ（Ｓ））｝
ここで、ｃｅｉｌ｛Ｒ｝は実数Ｒに等しいか、あるいはそれ以上の最小の整数値を表す。ステップＳ６０３ではビットプレーン番号ｎに有効桁数ＮＢＰ（Ｓ）を代入する。ステップＳ６０４ではビットプレーン番号ｎから１を引く。ステップＳ６０５ではビットプレーンｎを２値算術符号を用いて符号化する。本実施形態においては算術符号としてＱＭ−Ｃｏｄｅｒを用いることとする。このＱＭ−Ｃｏｄｅｒを用いて、ある状態（コンテクスト）で発生した２値シンボルを符号化する手順、或いは、算術符号化処理のための初期化手順、終端手順については、静止画像の国際標準ITU-T  Recommendation T.81 | ISO/IEC10918-1勧告等に詳細に説明されているのでここでは説明を省略する。また、説明を簡単にするため、本実施形態では単一のコンテクストで各ビットを算術符号化するものとする。各ビットプレーンの符号化の開始時にはビットプレーン符号化部１０７における不図示の算術符号化器を初期化し、終了時に算術符号化器の終端処理を行う。また、個々の係数について最初に符号化される’１’の直後に、その係数の正負符号を０、１で表し、算術符号化する。ここでは正ならば０、負ならば１とする。例えば、係数が−５で、この係数の属するサブバンドＳの有効桁数ＮＢＰ（Ｓ）が６であった場合、係数の絶対値は２進数０００１０１で表され、各ビットプレーンの符号化により上位桁から下位桁へと符号化される。２番目のビットプレーンの符号化時（この場合、上から４桁目）に最初の’１’が符号化され、この直後に正負符号’１’を算術符号化する。
【００３９】
ステップＳ６０６では、ビットプレーン番号ｎを０と比較し、ｎ＝０即ち、ステップＳ６０５でＬＳＢプレーンの符号化を行なった場合にはサブバンドの符号化処理を終了し、それ以外の場合にはステップＳ６０４に処理を移す。
【００４０】
上述の処理により、サブバンドＳの全係数を符号化し、各ビットプレーンｎに対応する符号列ＣＳ（Ｓ，ｎ）を生成する。生成した符号列は符号列形成部１０８に送られる。送られた係数列はＲＡＭ１００２に一時的に格納される。
【００４１】
ビットプレーン符号化部１０７により全サブバンドの係数の符号化が終了し、全符号列がＲＡＭ１００２に格納されると、符号列形成部１０８は所定の順序でＲＡＭ１００２に格納される符号列を読み出し、復号する場合に必要な付加情報を挿入して、本画像符号化装置の出力となる最終的な符号列を形成し、符号出力部１０９に出力する。
【００４２】
符号列形成部１０８で生成される最終的な符号列はヘッダと、レベル０、レベル１、およびレベル２の３つに階層化された符号化データにより構成される。レベル０の符号化データはＬＬサブバンドの係数を符号化して得られるＣＳ（ＬＬ，ＮＢＰ（ＬＬ）−１）からＣＳ（ＬＬ，０）の符号列から構成される。レベル１はＬＨ１，ＨＬ１，ＨＨ１の各サブバンドの係数を符号化して得られる符号列ＣＳ（ＬＨ１，ＮＢＰ（ＬＨ１）−１）〜ＣＳ（ＬＨ１，０）、ＣＳ（ＨＬ１，ＮＢＰ（ＨＬ１）−１）〜ＣＳ（ＨＬ１，０）、および、ＣＳ（ＨＨ１，ＮＢＰ（ＨＨ１）−１）〜ＣＳ（ＨＨ１，０）から構成される。また、レベル２はＬＨ２，ＨＬ２，ＨＨ２の各サブバンドの係数を符号化して得られる符号列ＣＳ（ＬＨ２，ＮＢＰ（ＬＨ２）−１）〜ＣＳ（ＬＨ２，０）、ＣＳ（ＨＬ２，ＮＢＰ（ＨＬ２）−１）〜ＣＳ（ＨＬ２，０）、および、ＣＳ（ＨＨ２，ＮＢＰ（ＨＨ２）−１）〜ＣＳ（ＨＨ２，０）から構成される。
【００４３】
図３に符号列形成部１０８により生成される符号列の構造を示す。
【００４４】
符号出力部１０９は符号列形成部１０８で生成された符号列を装置外部へと出力する。この符号出力部１０９は、例えば、記憶媒体ドライブ１０１０や外部記憶装置１００４といった記憶装置としての機能、ネットワーク回線のインターフェース等としての機能を含む。
【００４５】
以上に述べたように、高解像度の求められる領域については高解像度を得るために必要な変換係数を保持し、それ以外の変換係数は０に置き換えて符号化することにより、必要解像度の異なる領域を含む画像データを効率良く非可逆符号化することが可能となる。
【００４６】
又、本実施形態では係数修正部１０４は係数量子化部１０３による量子化値Ｑ（Ｓ、ｘ、ｙ）に対して修正を行っていたが、これに限定されるものではなく、離散ウェーブレット変換部１０２からの係数を直接修正しても良い。
【００４７】
［第２の実施形態］
図２は本実施形態における画像符号化装置の機能構成を示す図である。なお、図１で示した部分と同じ部分については同じ符号で示し、それらの説明を省略する。また、本実施形態における画像符号化装置の基本構成は第１の実施形態（図１０）と同じものとする。また、本実施形態では高解像度を必要とする領域として画像中の文字領域を用いるがこれに限定されるものではない。
【００４８】
図２において２０１はタイル分割部、２０２は像域判定部、２０３は係数値修正部である。
【００４９】
本実施形態では、第１の実施形態と同様に、１画素の輝度値が８ビットで表現されるモノクロ画像データを符号化するものとして説明する。しかしながらこれに限らず、４ビット、１０ビット、１２ビットなど８ビット以外のビット数で輝度値を表現している画像データにも適用できる。また各画素をＲＧＢ、ＣＭＹＫなどの複数の色成分或いはＹＣｒＣｂ等の輝度と色度／色差成分で表現するカラー画像データにも適用できる。この場合にはカラー画像データ中の各成分がモノクロ画像データであると見なせば良い。
【００５０】
以下、図２に示す機能構成を有する画像符号化装置の各部の機能とその動作について説明する。
【００５１】
まず、画像データＰ（ｘ，ｙ）が画像入力部１０１からラスタースキャン順に入力される。この画像入力部１０１は画像入力装置１００８として機能し、例えばスキャナ、デジタルカメラ等の撮像機能を有する部分である。また、ＣＣＤなどの撮像デバイスとガンマ補正、シェーディング補正など各種の画像調整回路機能を含む。
【００５２】
タイル分割部２０１は画像入力部１０１からラスタースキャン順に入力される画像データＰ（ｘ，ｙ）をＲＡＭ１００２に格納し、所定の幅ＴＷと高さＴＨのタイルに分割する。図７にタイル分割部２０１により分割されたタイルの例を示す。同図に図示する様に左上隅のタイルをＴ０とし、ラスタースキャン順にＴ１，Ｔ２，…Ｔｎと各タイルに番号を付け、各タイル内の画素値をＴｉ（ｘ，ｙ）（ｉ＝０〜ｎ）とする。尚、Ｔｉ（０，０）は、ｉ番目のタイルの左上隅の画素の値を示す。
【００５３】
以降、タイル分割部２０１で形成したタイルＴ０〜Ｔｎを順番に符号化する。
【００５４】
離散ウェーブレット変換部１０２はタイル分割部２０１により形成されるタイルＴｉ（ｘ，ｙ）をＲＡＭ１００２に適宜格納しながら２次元の離散ウェーブレット変換を施す。そしてタイルデータＴｉ（ｘ、ｙ）をＬＬ，ＬＨ１，ＨＬ１，ＨＨ１，ＬＨ２，ＨＬ２，ＨＨ２の７つのサブバンドに分解し、各サブバンドの係数をＲＡＭ１００２内において、タイルデータＴｉ（ｘ、ｙ）を格納しているエリアとは別のエリアに上記の７つのサブバンドの係数を出力する。この離散ウェーブレット変換部１０２によるタイルデータＴｉ（ｘ，ｙ）のサブバンド分解方法は第１の実施形態において画素データＰ（ｘ，ｙ）を分解する方法と同じである。
【００５５】
係数量子化部１０３は離散ウェーブレット変換部１０２により生成される各サブバンドの係数Ｃ（Ｓ，ｘ，ｙ）を、第１の実施形態と同様にして量子化する。
【００５６】
像域判定部２０２はタイル分割部２０１で分割されるタイルデータＴｉ（ｘ，ｙ）を離散ウェーブレット変換１０２と同じタイミングで取得し、タイルが文字情報を含むか否かを判定し、判定結果（像域分離情報）Ｚを出力する。ここで像域分離情報Ｚはタイルが文字情報を含むと判定された場合には１、文字情報を含まないと判定された場合には０とする。本実施形態では像域判定の具体的方法は問わない。例えば、表示装置１００７に各タイルデータを表示し、キーボード１００５やマウス１００６を用いて本画像符号化装置の操作者に文字情報の有無を判定させ、その判定結果を入力させても良い。その場合、像域判定部２０２は入力結果を像域分離情報Ｚに反映させる処理を行う。またその他にも、タイルデータＴｉに対する微分処理を行い、その処理結果としてのエッジ情報などからタイルデータＴｉに文字情報が含まれているか否かを判定し、その判定結果を像域分離情報Ｚとしても良い。その場合、像域判定部２０２は上述の微分処理などのエッジ情報の導出処理と、エッジ情報を用いた上述の判定処理を行い、その結果を像域分離情報Ｚに反映させる処理を行う。
【００５７】
係数値修正部２０３では係数量子化部１０３により量子化された各サブバンドの係数Ｑ（Ｓ，ｘ，ｙ）について、サブバンドＳがＨＬ２，ＬＨ２，ＨＨ２ならば、像域判定部２０２の生成する像域分離情報Ｚを参照して修正を施し、修正量子化値Ｑ’（Ｓ，ｘ，ｙ）を求める。サブバンドＳがＨＬ２，ＬＨ２，ＨＨ２以外であればＱ’（Ｓ，ｘ，ｙ）＝Ｑ（Ｓ，ｘ，ｙ）である。サブバンドＳがＨＬ２，ＬＨ２，ＨＨ２の場合には、
0005078199.tif 000003
とする。すなわち、タイルが文字情報を含むと判断された場合には、Ｑ（Ｓ，ｘ，ｙ）をそのまま修正量子化値とし、文字情報を含まないと判断された場合にはそのタイルのＨＬ２，ＬＨ２，ＨＨ２サブバンドの全ての係数を０に置き換える。
【００５８】
ビットプレーン符号化部１０７は、係数値修正部２０３の生成する修正量子化値Ｑ’（Ｓ，ｘ，ｙ）を符号化し、符号列を生成する。各サブバンドの修正量子化値Ｑ’（Ｓ，ｘ，ｙ）の符号化方法は第１の実施形態で述べた通りである。像域判定部２０２から出力される判定結果Ｚが０である場合、係数値修正部２０３によりＨＬ２，ＬＨ２，ＨＨ２の各サブバンドの修正量子化値は全て０となるので、この場合、各サブバンドの有効ビット数ＮＢＰ（ＨＬ２），ＮＢＰ（ＬＨ２），ＮＢＰ（ＨＨ２）は全て０となり、サブバンド係数符号化データは発生しない。
【００５９】
符号列形成部１０８はビットプレーン符号化部１０７により１つのタイルの全サブバンドの係数の符号化が終了し、全符号列がＲＡＭ１００２に格納されると、符号列形成部１０８は所定の順序でＲＡＭ１００２に格納される符号列を読み出し、タイルの復号に必要な付加情報を挿入して、タイルの符号化データを形成し、符号出力部１０９に出力する。但し、タイルが画像データの最初のタイル（タイル番号Ｔ０）であった場合にはさらにその先頭に、画像の水平方向サンプル数、垂直方向サンプル数、タイルのサイズＴＷ，ＴＨなど画像データを復号するために必要な付加情報を挿入する。
【００６０】
符号列形成部１０８で生成されるタイルの符号化データはヘッダと、レベル０、レベル１、およびレベル２の３つに階層化された符号化データにより構成される。レベル０の符号化データはＬＬサブバンドの係数を符号化して得られるＣＳ（ＬＬ，ＮＢＰ（ＬＬ）−１）からＣＳ（ＬＬ，０）の符号列から構成される。レベル１はＬＨ１，ＨＬ１，ＨＨ１の各サブバンドの係数を符号化して得られる符号列ＣＳ（ＬＨ１，ＮＢＰ（ＬＨ１）−１）〜ＣＳ（ＬＨ１，０）、ＣＳ（ＨＬ１，ＮＢＰ（ＨＬ１）−１）〜ＣＳ（ＨＬ１，０）、および、ＣＳ（ＨＨ１，ＮＢＰ（ＨＨ１）−１）〜ＣＳ（ＨＨ１，０）から構成される。また、レベル２はＬＨ２，ＨＬ２，ＨＨ２の各サブバンドの係数を符号化して得られる符号列ＣＳ（ＬＨ２，ＮＢＰ（ＬＨ２）−１）〜ＣＳ（ＬＨ２，０）、ＣＳ（ＨＬ２，ＮＢＰ（ＨＬ２）−１）〜ＣＳ（ＨＬ２，０）、および、ＣＳ（ＨＨ２，ＮＢＰ（ＨＨ２）−１）〜ＣＳ（ＨＨ２，０）から構成される。但し、像域判定部２０２から出力される像域分離情報Ｚが０である場合にはレベル２は各サブバンドの有効ビット数を表す情報のみを含む。この場合のタイル符号化データの構造を図８に示す。
【００６１】
像域判定部２０２から出力される判定結果Ｚが１である場合のタイル符号化データの構造は図３に示した第１の実施形態の符号列の構造と同じである。
【００６２】
符号出力部１０９は符号列形成部１０８で生成されたタイル符号化データを装置外部へと出力する。この符号出力部１０９は、例えば、記憶媒体ドライブ１０１０や外部記憶装置１００４といった記憶装置としての機能、ネットワーク回線のインターフェース等としての機能を含む。
【００６３】
以上の処理により、タイル単位で高解像度データの要否を判定し、高解像度データを必要としないタイルについては高解像度を得るために必要な変換係数を０に置き換えて符号化することにより、必要解像度の異なる領域を含む画像データを効率良く非可逆符号化することが可能となる。
【００６４】
［第３の実施形態］
図９に本実施形態の画像符号化装置の機能構成を示す。なお、図１、２で示した部分と同じ部分については同じ符号で示し、それらの説明を省略する。また、本実施形態における画像符号化装置の基本構成は第１の実施形態（図１０）と同じものとする。
【００６５】
図９において９０１は適応離散ウェーブレット変換部である。適応離散ウェーブレット変換部９０１は、像域分離情報Ｚに応じてサブバンド分解に使用するフィルタを選択する機能を有する。
【００６６】
本実施形態では第１、第２の実施形態と同様に、１画素の輝度値が８ビットで表現されるモノクロ画像データを符号化するものとして説明する。しかしながらこれに限らず、４ビット、１０ビット、１２ビットなど８ビット以外のビット数で輝度値を表現している画像データにも適用できる。また各画素をＲＧＢ、ＣＭＹＫなどの複数の色成分或いはＹＣｒＣｂ等の輝度と色度／色差成分で表現するカラー画像データにも適用できる。この場合にはカラー画像データ中の各成分がモノクロ画像データであると見なせば良い。
【００６７】
また本実施形態における画像符号化装置は、離散ウェーブレット変換部１０２を適応離散ウェーブレット変換部９０１に置き換えた点、像域判定部２０２の像域分離情報Ｚを適応離散ウェーブレット変換部９０１に入力するよう変更した点を除き、第２の実施形態と同じであるので、変更された適応離散ウェーブレット変換部９０１の動作についてのみ説明する。
【００６８】
適応離散ウェーブレット変換部９０１はタイル分割部２０１により形成されるタイルＴｉ（ｘ，ｙ）をＲＡＭ１００２に適宜格納しながら２次元の離散ウェーブレット変換を施す。そしてタイルデータＴｉ（ｘ、ｙ）をＬＬ，ＬＨ１，ＨＬ１，ＨＨ１，ＬＨ２，ＨＬ２，ＨＨ２の７つのサブバンドに分解し、各サブバンドの係数をＲＡＭ１００２内において、タイルデータＴｉ（ｘ、ｙ）を格納しているエリアとは別のエリアに上記の７つのサブバンドの係数を出力する。この離散ウェーブレット変換部９０１によるタイルデータＴｉ（ｘ，ｙ）のサブバンド分解方法は、像域判定部２０２の像域分離情報Ｚに応じて使用するフィルタを切り替える点を除き、第１の実施形態において画像データＰ（ｘ，ｙ）を分解する方法と同じである。像域判定部２０２の像域分離情報Ｚが０である場合、即ち、文字領域を含まないと判断されたタイルについては第１、第２の実施形態の離散ウェーブレット変換と同じく、式（１）、（２）のフィルタを使用する。一方、判定結果Ｚが１である場合、即ち、文字領域を含むと判断されたタイルについては式（１），（２）に代えて以下の式を適用する。
【００６９】
ｈ（ｎ）＝ｘ（２ｎ）−ｘ（２ｎ＋１）                    （３）
ｌ（ｎ）＝ｆｌｏｏｒ｛ｘ（２ｎ）＋ｘ（２ｎ＋１）／２｝  （４）
ここでｆｌｏｏｒ｛Ｒ｝は実数Ｒを超えない最大の整数値を得る関数である。
よって、本実施形態では２つのフィルタを用いるので、外部記憶装置１００４やＲＡＭ１００２にこのフィルタを記憶しておく必要がある。
【００７０】
適応離散ウェーブレット変換部９０１で生成された各サブバンドの係数Ｃ（Ｓ，ｘ，ｙ）は第２の実施形態で説明した手順により符号化され、符号出力部１０９から符号化データが出力される。本実施形態では、符号形成部１０８で各タイルの符号化データに挿入されるヘッダには使用フィルタを復号側に知らせるために像域判定部２０２の像域分離情報Ｚが含まれる。
【００７１】
以上の処理により、タイル単位で文字領域を含むか否かを判定し、判定結果に応じて離散ウェーブレット変換に用いるフィルタを選択し、文字領域を含まないタイルについては高解像度を得るために必要な変換係数を０に置き換えて符号化することにより、必要解像度の異なる領域を含む画像データを効率良く非可逆符号化することが可能となる。
【００７２】
（変形例）
本発明は上述した実施の形態に限定されるものではない。例えば上述した第１乃至３の実施形態においては、式（１），（２）による離散ウェーブレット変換を用いた符号化の例を示したが、離散ウェーブレット変換については本実施形態で使用したものに限定されるものではなく、フィルタの種類や適応方法を変えても構わない。例えば９／７フィルタなど、よりタップ数の長いフィルタに変えても構わないし、低周波サブバンド以外にも２次元離散ウェーブレット変換を繰り返し適用しても構わない。また、係数の符号化方式としてＱＭ−Ｃｏｄｅｒを用いたビットプレーン符号化方式を示したが、上述の実施の形態に限定されるものではなく、例えば、ＭＱ−Ｃｏｄｅｒ等、ＱＭ−Ｃｏｄｅｒ以外の算術符号化方法を適用しても構わないし、ＭＥＬＣＯＤＥなどその他の２値符号化方式を適用しても構わない。また、ビットプレーンを着目係数の近傍係数の状態に応じて複数のサブビットプレーンにカテゴリ分けし、複数回のパスで符号化しても良い。さらにはＧｏｌｏｍｂ符号などを適用して、係数を２値に分解することなく、多値のままエントロピ符号化しても構わない。
【００７３】
また、説明を簡単にするために、上記各実施形態では、サブバンド単位のビットプレーン符号化について説明したが、ランダムアクセス性を高めるために各サブバンドを更に小ブロックに分割してこの小ブロック単位にビットプレーン符号化を適用しても構わない。
【００７４】
また、符号列の形成にあたっては受信側で徐々に解像度を上げて画像を復元できるように並べたが、これに限らず、徐々に画質が向上するように値の大きな係数から順に並べて符号列を形成しても構わない。
【００７５】
なお、本発明は複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタ等）から構成されるシステムの一部として適用しても、単一の機器（例えば複写機、ファクシミリ装置、デジタルカメラ等）からなる装置の一部に適用しても良い。
【００７６】
また、本発明は上記実施の形態を実現するための装置および方法のみに限定されるものではなく、上記システムまたは装置内のコンピュータ(CPUあるいはMPU)に、上記実施の形態を実現するためのソフトウェアのプログラムコードを供給し、このプログラムコードに従って上記システムあるいは装置のコンピュータが上記各種デバイスを動作させることにより上記実施の形態を実現する場合も本発明の範疇に含まれる。
【００７７】
またこの場合、前記ソフトウェアのプログラムコード自体が上記実施の形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、具体的には上記プログラムコードを格納した記憶媒体は本発明の範疇に含まれる。
【００７８】
このようなプログラムコードを格納する記憶媒体としては、例えばフロッピィーディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【００７９】
また、上記コンピュータが、供給されたプログラムコードのみにしたがって各種デバイスを制御することにより、上記実施の形態の機能が実現される場合だけではなく、上記プログラムコードがコンピュータ上で稼動しているOS（オペレーティングシステム）、あるいは他のアプリケーションソフト等と共同して上記実施の形態が実現される場合にもかかるプログラムコードは本発明の範疇に含まれる。
【００８０】
更に、この供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上記実施の形態が実現される場合も本発明の範疇に含まれる。
【００８１】
【発明の効果】
以上の説明により、本発明によって、異なる解像度レベルを必要とする領域を含む画像データを符号化する場合に、効率の良い画像符号化を行うことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態における画像符号化装置の機能構成を示す図である。
【図２】本発明の第２の実施形態における画像符号化装置の機能構成を示す図である。
【図３】符号列形成部１０８により生成される符号列の構造を示す図である。
【図４】符号化対象画像に対して２次元の離散ウェーブレット変換を施す処理を示す図である。
【図５】１次元のウェーブレット変換を２回繰り返して行った場合の各サブバンドの例を示す図である。
【図６】ビットプレーン符号化部１０７でサブバンドＳを符号化する処理のフローチャートである。
【図７】タイル分割部２０１により分割されたタイルの例を説明する図である。
【図８】本発明の第２の実施形態において、像域判定部２０２から出力される像域分離情報Ｚが０である場合のタイル符号化データの構造を示す図である。
【図９】本発明の第３の実施形態における画像符号化装置の機能構成を示す図である。
【図１０】本発明の第１乃至３の実施形態における画像符号化装置の基本構成を示す図である。
【図１】
0005078199.tif 000004
【図２】
0005078199.tif 000005
【図３】
0005078199.tif 000006
【図４】
0005078199.tif 000007
【図５】
0005078199.tif 000008
【図６】
0005078199.tif 000009
【図７】
0005078199.tif 000010
【図８】
0005078199.tif 000011
【図９】
0005078199.tif 000012
【図１０】
0005078199.tif 000013