(57)【特許請求の範囲】
【請求項１】
画像を周波数変換して低域成分と高域成分とからなる係数データを生成する周波数変換手段と、
前記画像を構成する画素データのうち、前記低域成分の係数データを生成する際に用いられる画素データ毎に最下位ビット側にビットを付加することにより該画素データのダイナミックレンジを増加させるダイナミックレンジ制御手段と、
前記周波数変換手段によって生成された係数データを符号化する符号化手段と、
を有する画像符号化装置。
【請求項２】
前記周波数変換手段は、前記低域成分に対して、さらに、周波数変換を繰り返すことにより、低域成分と高域成分とが階層的に構成される係数データを生成し、
前記ダイナミックレンジ制御手段は、さらに、前記周波数変換手段が周波数変換を行って次の階層の低域成分を生成する係数データに対し、該係数データ毎に最下位ビット側にビットを付加する請求項１記載の画像符号化装置。
【請求項３】
前記周波数変換手段は、前記低域成分に対して、さらに、周波数変換を繰り返すことにより、低域成分と高域成分とが階層的に構成される係数データを生成し、
前記ダイナミックレンジ制御手段は、前記周波数変換手段が周波数変換を行う回数と前記画素データのビット長とに基づいて、前記画素データのダイナミックレンジを増加させる請求項１記載の画像符号化装置。
【請求項４】
前記低域成分の係数データ、又は、前記低域成分及び前記高域成分の係数データを、ビット反転させる係数ビット反転手段を有し、
前記周波数変換手段は、前記係数ビット反転手段によってビット反転された係数データからなる成分に対し、周波数変換を行う請求項２又は３記載の画像符号化装置。
【請求項５】
前記画素データをビット反転させる画素ビット反転手段を有し、
前記周波数変換手段は、前記画素ビット反転手段によってビット反転された画素データからなる画像に対し、周波数変換を行う請求項１ないし４何れか一項に記載の画像符号化装置。
【請求項６】
前記周波数変換手段は、一の周波数変換において、水平方向の周波数変換と垂直方向の周波数変換とを行うことにより、水平方向低域垂直方向低域成分、水平方向低域垂直方向高域成分、水平方向高域垂直方向低域成分、及び、水平方向高域垂直方向高域成分を生成する請求項１ないし５何れか一項に記載の画像符号化装置。
【請求項７】
前記画像は二値画像、又は、該画像を構成する画素データのダイナミックレンジが１６以下の画像である請求項１ないし６何れか一項に記載の画像符号化装置。
【請求項８】
画像を周波数変換して低域成分と高域成分とからなる係数データを生成する周波数変換ステップと、
前記画像を構成する画素データのうち、前記低域成分の係数データを生成する際に用いられる画素データ毎に最下位ビット側にビットを付加することにより該画素データのダイナミックレンジを増加させるダイナミックレンジ増加ステップと、
前記周波数変換手段によって生成された係数データを符号化する符号化ステップと、
を有する画像符号化方法。
【請求項９】
前記周波数変換ステップにおいて生成される、前記低域成分に対して、さらに、前記周波数変換ステップが繰り返されることにより、低域成分と高域成分とが階層的に構成される係数データが生成され、
前記ダイナミックレンジ増加ステップにおいて、さらに、前記周波数変換ステップにおいて周波数変換されて次の階層の低域成分を生成する係数データに対し、該係数データ毎に最下位ビット側にビットが付加される請求項８記載の画像符号化方法。
【請求項１０】
前記周波数変換ステップにおいて生成される、前記低域成分に対して、さらに、前記周波数変換ステップが繰り返されることにより、低域成分と高域成分とが階層的に構成される係数データが生成され、
前記ダイナミックレンジ増加ステップにおいて、前記周波数変換手段が周波数変換を行う回数と前記画素データのビット長とに基づいて、前記画素データのダイナミックレンジが増加される請求項８記載の画像符号化方法。
【請求項１１】
前記低域成分の係数データ、又は、前記低域成分及び前記高域成分の係数データを、ビット反転させる係数ビット反転ステップを有し、
前記周波数変換ステップにおいて、前記係数ビット反転ステップにおいてビット反転された係数データからなる成分に対し、周波数変換が行われる請求項９又は１０記載の画像符号化方法。
【請求項１２】
前記画素データをビット反転させる画素ビット反転ステップを有し、
前記周波数変換ステップにおいて、前記画素ビット反転ステップにおいてビット反転された画素データからなる画像に対し、周波数変換が行われる請求項８ないし１１何れか一項に記載の画像符号化方法。
【請求項１３】
請求項８ないし１２何れか一項に記載の画像符号化方法を、コンピュータに実行させるコンピュータプログラム。
【請求項１４】
請求項１３記載のコンピュータプログラムを格納したコンピュータ読み取り可能な情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、コンピュータプログラム、及び、情報記録媒体に関する。
【背景技術】
【０００２】
デジタルカメラやスキャナの精度の向上により、高精細な静止画像を取り扱う要求が増加し、それに伴って高精細静止画像の取り扱いを容易にするための画像圧縮伸張技術に求められる機能が多様化している。高精細静止画像の画像圧縮伸張アルゴリズムとしては、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ、ＩＳＯ／ＩＥＣ１０９１８−１等）が現在最も多く使われているが、近年離散ウェーブレット変換（以下、「ＤＷＴ」という。）を周波数変換に用いた画像圧縮伸張アルゴリズムが増加している。代表例としてＪＰＥＧ２０００符号化方式（ＩＳＯ／ＩＥＣ１５４４４−１等）が挙げられる。
【０００３】
ＪＰＥＧ２０００符号化方式（以下、「ＪＰＥＧ２０００」という。）の特徴の一つとして、解像度のスケーラビリティがある。解像度のスケーラビリティは、対象となる画像を所望の画像サイズに変換して閲覧したい場合に用いられる。例えば、表示対象となる高精細静止画像の画像サイズは、デジタルカメラやスキャナの信号読み取り時の精度（ドットピッチ）および大きさで決まる。そして、所定の静止画像フォーマットに即したデータに変換されると、画像サイズはそのデータに対して変換処理を行わない限り一定である。しかしながら、この画像を閲覧するときには表示したい閲覧サイズ、すなわち、閲覧時の解像度はまちまちである。例えばデジタルカメラに付随の液晶モニタの解像度と、保存したデータをパーソナルコンピュータで表示するときの解像度とは大きく異なる。
【０００４】
ＪＰＥＧのような解像度スケーラビリティを持たない方式で符号化された画像データを所望のサイズで表示する場合には、一度符号全体に対して復号処理を行い、画素データ、すなわち、ビットマップに展開した上で拡大、縮小の処理を行う必要がある。
【０００５】
そこで、例えば、特開２００３−１８９０９３号公報（特許文献１）には、文字エッジと写真領域中にある被写体の輪郭エッジとを適正に判別し、それぞれの領域に適正な処理を行うことで、出力画像を高品位とする画像処理装置等の技術が開示されている。
【０００６】
しかし、ＪＰＥＧ２０００によって符号化された符号データを縮小表示する場合は、符号データの一部分のみに対して復号処理を行い、ビットマップを生成することができる。つまり復号処理に必要なメモリを小さくすることができ、復号処理にかかる処理時間も短くすることができる。このように、符号データの一部に対して復号処理をおこなって、原画像より解像度の低い復号画像を得るデコードを、「縮小デコード」と呼ぶことにする。
【０００７】
ところで、高精細画像が白黒画像であった場合や、文字の領域を背景領域とは別に単色のデータとして保存したい場合には、２値画像の原画像を符号化することが多い。なぜなら多値のデータと比べて、２値のデータは一つの画素を表現するために必要なビット数が少なくなり符号化対象となるデータ総量の節約につながるからである。
【特許文献１】特開２００３−１８９０９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、２値画像を周波数変換した後にその係数データを符号化して符号データを生成し、その符号データを縮小デコードして画素データに戻した場合に、細い線が途切れてしまうという不具合が発生する。これは、符号データを生成するプロセスの中の周波数変換に起因する。例えば、ＪＰＥＧ２０００においては、２値画像をロスレス符号化する場合のウェーブレット変換の際に、ウェーブレット係数を整数にするための丸め処理を行い、その後、画素が２の間隔、すなわち、１画素おきにダウンサンプリングされる。したがって、連続した画素値が続く領域は問題ないが、白値に黒細線が存在する領域等は画素値の連続する数が少ないため、上記の丸め処理とダウンサンプリングとで黒い画素が残らず白画素のみになってしまうからである。上記特許文献１では、このような不具合について、考慮されていない。
【０００９】
この不具合は、解像度スケーラビリティを有しない符号化方式、例えば、ＪＰＥＧやＧＩＦ等により符号化された符号データを復号し、後に最近傍点（「ニアレストネイバー」ともいう。）で縮小表示した際にも生じる。そこで、この細線が途切れてしまう現象を抑制するために、原画像を用いて、線形補間（「バイリニア」ともいう。）、３次補間（「バイキュービック」ともいう。）等のアルゴリズムを用いたスムージング処理によって細線の途切れの補正をすることができる。
【００１０】
しかしながら、ＪＰＥＧ２０００によって生成された符号データでは、縮小デコードの際に原画像に対応する画像サイズのデータの全てを用いてスムージング処理を行うと、表示する解像度より高い解像度の符号データを復号しなくてはならず、縮小デコードのメリットが減じてしまう。
【００１１】
本発明は、上記の点に鑑みて、これらの問題を解消するために発明されたものであり、周波数変換によって生成される係数データに対する丸め処理が行われる変換処理を行う際に生じ易い細線の途切れや消滅を減じ、高品質な縮小画像を容易に得られる符号データを生成する画像符号化装置、画像符号化方法、その符号データを復号する画像復号装置、画像復号方法、コンピュータプログラム、及び、情報記録媒体を提供することを目的としている。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明の画像符号化装置は次の如き構成を採用した。
【００１３】
本発明の画像符号化装置は、画像を構成する画素データ毎に最下位ビット側にビットを付加することにより前記画素データのダイナミックレンジを増加させるダイナミックレンジ制御手段と、前記ダイナミックレンジ制御手段によってダイナミックレンジを増加された画素データからなる画像を周波数変換して低域成分と高域成分とからなる係数データを生成する周波数変換手段と、前記周波数変換手段によって生成された係数データを符号化する符号化手段と、を有する構成とすることができる。
【００１４】
これにより、周波数変換によって生成される係数データに対する丸め処理が行われる変換処理を行う際に生じ易い細線の途切れや消滅を減じ、高品質な縮小画像を容易に得られる符号データを生成する画像符号化装置を提供することができる。
【００１５】
なお、上記課題を解決するため、本発明は、さらに、上記画像符号化装置が備える各手段の機能を実行させる画像符号化方法、上記画像符号化装置によって生成される符号データを復号する画像復号装置、その画像復号装置が備える各手段の機能を実行させる画像復号方法、上記画像符号化方法若しくは上記画像復号方法をコンピュータに実行させるためのコンピュータプログラム、又は、そのコンピュータプログラムを格納した情報記録媒体としてもよい。
【発明の効果】
【００１６】
本発明の画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、コンピュータプログラム、及び、情報記録媒体によれば、周波数変換によって生成される係数データに対する丸め処理が行われる変換処理を行う際に生じ易い細線の途切れや消滅を減じ、高品質な縮小画像が得られる符号データを生成する画像符号化装置、画像符号化方法、その符号データを復号する画像復号装置、画像復号方法、上記画像符号化方法若しくは上記画像復号方法をコンピュータに実行させるためのコンピュータプログラム、及び、情報記録媒体を提供することが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面に基づき説明する。
〔本発明の実施の形態〕
図１は、本実施形態によって解決する課題を説明する図である。図１（ａ）は、本実施形態の画像符号化装置によって符号化される画像の例である。本実施の形態では、符号化される画像を「原画像」、符号化されて生成するデータを「符号データ」、符号データが復号されて得られる画像を「復号画像」という。
【００１８】
図１（ａ）の原画像は、例えば、２値の画素データからなる画像である。図１（ｂ）は、図１（ａ）の原画像に対し、周波数変換を含む符号化処理を行って生成された符号データのうち、低解像度の復号画像に対応する符号データを復号して得られる画像である。図１（ｂ）の画像では、黒線部分が欠ける「細線欠け」が生じている。
【００１９】
そこで、このような細線欠けを解決するために、２値の原画像のデータを多値のデータに変換して画像符号化装置に入力する方法がある。例えば０及び１の何れか一の値を有する１ｂｉｔの画素データを、０及び２５５の何れか一の値を有する８ｂｉｔの画素データに変換し、８ｂｉｔのデータとして符号化を行うと、係数データの空間では１ｂｉｔでは表現されない中間の値をとることができる。これにより、縮小デコードした場合に、表示される画像は多値のグレー画像となるが、細線の途切れを中間の値で再現することができる。
【００２０】
しかし、この方法では、本来２値画像である原画像のデータを、例えば２５６値の多値に拡張しているため、生成される符号データの符号量が増加し、復号の処理に要するリソース等も大幅に増大してしまう。さらに、ウェーブレット変換のように階層的に周波数変換を繰り返す場合には、階層を重ねていくと、一意的な２５６値などの値では細線の途切れが発生してしまうことになる。
【００２１】
そこで、本実施の形態では、例えば、ウェーブレット変換等などの周波数変換の階層の数に応じて、２値の原画像のデータを、階層の数に応じた多値のデータに変換してから処理する。本実施の形態では、また例えば、各階層における低域成分の係数データの出力値のダイナミックレンジを増加して次の階層の処理を行う。本実施の形態では、また例えば、背景となる画素値を指定しその背景画素値が1であった場合には画像中の画素値を反転させてから符号化処理を行う。
【００２２】
本実施の形態では、また例えば、原画像のダイナミックレンジと周波数変換の階層の数とに応じて、原画像の画素データのダイナミックレンジを増加させる。例えば、２値ではなく、４値又は１６値等の画素データの場合であっても、周波数変換のフィルタの種類と階層の数とによって、細線欠けは生じる。そこで、本実施の形態では、このような２５６値より少ない階調の画素データ、又は、２５６値以上の階調の画素データにおいても、周波数変換の階層の数に応じてダイナミックレンジを制御する。
【００２３】
（ＪＰＥＧ２０００への適用）
本実施の形態では、周波数変換処理として、例えば、ＪＰＥＧ２０００におけるウェーブレット変換処理を行う。ＪＰＥＧ２０００におけるウェーブレット変換処理のうち、５／３フィルタを用いる例について、以下、説明する。５／３フィルタを用いるウェーブレット変換は、可逆変換であり、水平方向と垂直方向とに、それぞれ１次元の可逆離散ウェーブレット変換が行われる。ウェーブレット変換の演算には、例えば、離散ウェーブレット変換後のダウンサンプリングを考慮して計算を省いたリフティング演算が用いられる。リフティング演算は次の式（１）及び式（２）で与えられる。なお、リフティングを用いない場合にも得られる結果は同じである。
（１）高域通過フィルタ出力を２：１ダウンサンプリングした信号
【００２４】
【数１】
0004918026.tif 000002
（２）低域通過フィルタ出力を２：１ダウンサンプリングした信号
【００２５】
【数２】
0004918026.tif 000003
但し、Ｘｅｘｔは、タイル境界の外の画素を参照する際に不連続性を抑えて滑らかにするために１次元入力信号をミラーリングにより拡張した拡張後の信号であり、ｎは画素データ又は係数データの位置を表す整数である。
【００２６】
式（１）により、高域通過フィルタ出力をダウンサンプリングした出力が求められ、その出力を用いる式（２）により、低域フィルタ出力をダウンサンプリングした出力が求められる。
【００２７】
図２は、２値画像の例を説明する図である。ここで、例えば図２にあるように細線が画素値１の画素で作られていた場合、奇数座標値の画素は低域成分には残らず消えてしまうが、偶数座標値上に存在した細線の画素は低域成分に残る。
【００２８】
そこで、この影響をなくすために出力のダイナミックレンジを増加させることを考える。この増加として例えば１ビット分増加させると、消えてなくなってしまう成分に対しても計算値としての値は残る。この成分の縮小画像を表示させる際には、そのダイナミックレンジを増加させたときの値を用いて閾値処理、例えば３ビットのときの値５を７に繰り上げる、等の予め定められるルールを用い、白黒に変換させて表示してもよい。
【００２９】
次に入力データ値を反転処理したときの影響を示す。上記計算で、二値のまま計算するとき、図３にあるように細線が画素値０の画素によって作られていた場合、同じく奇数座標値の細線が消えてしまう上に、偶数座標値の細線も低域成分から消えてしまう。
【００３０】
これは、式（１）の非対称性による。説明を簡単にするため細線が偶数座標値上に来る場合のみを考慮する。式（１）で求まる高域成分は入力信号の予測残差になっているため変化の無い信号部分では０になる。なお、変化のない信号部分とは、同値の画素が続く部分である。ここで画素値が０の細線の場合は隣接する位置の高域成分が１になるため、低域成分が０になる。一方、画素値が１の細線の場合は隣接する位置の高域成分が０になるため、低域成分が１になる。つまり、画素値が０の細線の場合は高域成分に情報を残すため低域成分に情報が残らず、画素値が１の細線の場合は高域成分に情報が残らず低域成分に情報が残る。
【００３１】
これを利用すると、縮小デコードした際に細線の情報をより多く表示させようと考えれば、より多くの情報が低域成分に残せる画素値である１を細線にあて、背景の画素値に０をあてた方が良いことが分かる。この特性は５／３フィルタを用いた離散ウェーブレット変換に特有のものである。
【００３２】
（本実施形態によって増加されるダイナミックレンジの説明）
図４は、本実施形態によって増加されるダイナミックレンジを説明する図である。図４（ａ）は、原画像を表す。原画像の画素データの最下位ビットのさらに下に、１ビットを付加することにより、画素データのダイナミックレンジが増加する。付加するビットは、例えば、最下位ビットと同値でもよく、予め所定の値が定められていてもよい。
【００３３】
図４（ｂ）は、ダイナミックレンジが増加した原画像に対して、周波数変換を行って得られた係数データを説明する図である。図４（ｂ）では、２次元の周波数変換により、ＬＬ成分、ＨＬ成分、ＬＨ成分、ＨＨ成分の４つの成分が生成されている。図４（ｂ）の各成分は、原画像に対して一の周波数変換を行って得られた係数データであるので、レベル１の係数データという。
【００３４】
図４（ｃ）は、図４（ｂ）のＬＬ成分に対して、さらに、周波数変換を行って得られた係数データを説明する図である。図４（ｃ）のうち、数字２が付された成分が、２回目の周波数変換によって得られた係数データであり、レベル２の係数データという。レベル２の各成分は、レベル１のＬＬ成分に対し、さらに、最下位ビットのさらに下に１ビットが付加されることにより、ダイナミックレンジが増加されている。これにより、丸め処理を伴う周波数変換を行う毎に、丸め処理による情報の欠落を減ずることができる。
【００３５】
図４（ｄ）は、レベル２の係数データが、レベル１の係数データに対して増加されたビット数を説明する図である。一の周波数変換において、ＬＬ成分は、水平方向と垂直方向との２回のローパスフィルタ処理が行われる。一方、ＬＨ成分とＨＬ成分とは、水平方向又は垂直方向の何れか１回のローパスフィルタ処理が行われる。そのため、ＬＬ成分は２ビット、ＨＬ成分とＬＨ成分とは１ビットずつ、ダイナミックレンジが増加される。
【００３６】
（本実施形態の画像符号化装置及び画像復号装置の機能構成の例）
図５は、本実施形態の画像符号化装置及び画像復号装置の機能構成の例を説明する図である。図５の画像符号化装置１００は、例えば、ダイナミックレンジ制御手段１１０、周波数変換手段１２０、符号化手段１３０、及び、ビット反転手段１４０を有する。
【００３７】
ダイナミックレンジ制御手段１１０は、画像符号化装置１００によって符号化される画像の画素データのダイナミックレンジを増加させる。これにより、周波数変換の際に丸め処理が行われる場合でも、原画像に含まれる情報が、係数データから消失されることを軽減することができる。ダイナミックレンジ制御手段１１０は、低域成分を取得する際に用いられる画素データのダイナミックレンジを増加させる。
【００３８】
ダイナミックレンジ制御手段１１０は、またさらに、生成される係数データに対して周波数変換処理が再帰的に行われる場合には、その階層毎に、低域成分を取得する際に用いられる係数データのダイナミックレンジを増加させてもよい。ダイナミックレンジ制御手段１１０は、また例えば、生成される係数データに対して周波数変換処理が再帰的に行われる場合に、その階層の数に基づいて、画素データのダイナミックレンジを増加させてもよい。
【００３９】
ダイナミックレンジ制御手段１１０は、例えば、画素データ及び係数データの最下位ビットのさらに下に、ビットを付加することにより、画素データ及び係数データのダイナミックレンジを増加させる。
【００４０】
周波数変換手段１２０は、入力される画像に対して周波数変換を行い、高域成分と低域成分とからなる係数データを生成する。周波数変換手段１２０が行う周波数変換処理は、丸め処理を含む。このため、周波数変換処理を行う画像の画素データのビット長が少ない場合には、丸め処理による情報の欠落が、復号画像の品質に大きく関わることとなる。
【００４１】
周波数変換手段１２０は、さらに、係数データに対して再帰的に周波数変換を行うことにより、低域成分と高域成分とが階層的に構成される係数データを生成してよい。周波数変換手段１２０は、低域成分に対してのみ、再帰的に周波数変換を行ってよい。
【００４２】
周波数変換手段１２０は、またさらに、画像及び係数データに対する一の周波数変換において、水平方向及び垂直方向の２次元周波数変換を行う。これにより、水平方向低域垂直方向低域成分（以下、「ＬＬ成分」と言う。）、水平方向低域垂直方向高域成分（以下、「ＨＬ成分」と言う。）、水平方向高域垂直方向低域成分（以下、「ＬＨ成分」と言う。）、及び、水平方向高域垂直方向高域成分（以下、「ＨＨ成分」と言う。）の４つの成分を生成してよい。
【００４３】
なお、周波数変換手段１２０が、２次元周波数変換を行う際に、再帰的に周波数変換を行う対象は、ＬＬ成分のみでもよく、ＬＬ成分、ＨＬ成分、ＬＨ成分、及び、ＨＨ成分の４つの成分に対して再帰的に周波数変換を行ってもよい。周波数変換手段１２０が行う周波数変換は、例えば、ウェーブレット変換であり、再帰的な周波数変換は、例えば、オクターブ分割によって実現されてよい。
【００４４】
符号化手段１３０は、周波数変換手段１２０によって生成された係数データに対し、符号化を行う。符号化手段１３０は、例えば、エントロピ符号化を行うことにより、係数データのデータ量を削減する。符号化手段１３０は、またさらに、生成した符号を含む、符号データを生成する。符号データは、所定のデータフォーマットにしたがってよい。
【００４５】
符号データは、例えば、複数のパケットから構成され、パケット毎にヘッダとデータ本体とを有してよい。周波数変換が再帰的に行われた場合には、各パケットは、周波数変換における何れか一の階層の、何れか一の成分の符号を含んで構成される。これにより、画像復号装置２００が、原画像より解像度の低い復号画像を取得する場合には、その解像度の復号画像を得るのに必要な階層のパケットを選択して復号すればよく、全符号データを復号した後に解像度を減ずるよりも、処理を簡易にすることができる。なお、所定のデータフォーマットとは、例えば、ＪＰＥＧ２０００によるコードストリームのフォーマットである。
【００４６】
ビット反転手段１４０は、画素データ毎、又は、係数データ毎に、ビット反転を行う。ビット反転手段１４０は、画素ビット反転手段１４１と係数ビット反転手段１４３とを有する。画素ビット反転手段１４１は、画像符号化装置１００が符号化する画像の画素データをビット反転させる。一方、係数ビット反転手段１４３は、周波数変換手段１２０によって生成された係数データに対し、ビット反転を行う。
【００４７】
低域成分と高域成分とを生成する周波数変換において、丸め処理を行うと、低域成分又は高域成分の情報が、係数データから欠落することがある。そこで、ビット反転手段１４０によってビット反転を行うことにより、欠落し易い側の情報を、欠落しにくい側のビットに置き換えることができる。
【００４８】
画像復号装置２００は、例えば、画像符号化装置１００によって生成された符号データを復号する。画像復号装置２００は、例えば、ダイナミックレンジ制御手段２１０、逆周波数変換手段２２０、復号手段２３０、及び、ビット反転手段２４０を有する。
【００４９】
復号手段２３０は、符号データを、その符号データのデータフォーマットにしたがって解析し、符号データに含まれている符号を復号することにより、係数データを取得する。復号手段２３０は、例えば、エントロピ符号を復号して係数データを取得する。
【００５０】
復号手段２３０は、また例えば、符号データが複数のパケットから構成される場合に、原画像より解像度の低い復号画像を再生する場合には、その解像度に対応するパケットを選択して復号する。これにより、全符号データを復号した後に解像度を減ずるよりも、処理を簡易にすることができる。
【００５１】
逆周波数変換手段２２０は、復号手段２３０によって復号された係数データに対し、周波数変換の逆変換を行う。これにより、画素データを取得することができる。なお、係数データが階層的に構成され、さらに、復号する画像の解像度が原画像の解像度より低い場合には、逆周波数変換手段２２０は、復号画像の解像度に対応する階層までの逆変換処理を行って、その階層のＬＬ成分を復号画像とする。これにより、全階層の逆周波数変換を行うよりも、処理を簡易にすることができる。
【００５２】
ダイナミックレンジ制御手段２１０は、逆周波数変換手段２２０によって処理された係数データ又は画素データに対し、最下位ビット側のビットを削減することにより、ダイナミックレンジを制御する。ダイナミックレンジ制御手段２１０は、符号データが生成される際に付加されたビットに対応するビットを削減する。
【００５３】
例えば、一の周波数変換処理が行われる毎にビットが付加された場合には、ダイナミックレンジ制御手段２１０は、一の逆周波数変換処理が行われる毎に、付加された分のビットを削減する。また例えば、画素データに対して、周波数変換処理の回数等に基づくビットが予め付加された後に、周波数変換処理が行われた場合には、ダイナミックレンジ制御手段２１０は、復号画像を構成する画素データから、付加された分のビットを削減する。また例えば、縮小デコードの場合には、復号画像を構成する画素データから、復号画像を得るのに必要な階層に対応する分のビットを削減するとよい。
【００５４】
ビット反転手段２４０は、逆周波数変換手段２２０によって変換処理される係数データ、逆周波数変換手段２２０によって変換処理された係数データ、及び／又は、逆周波数変換手段２２０によって取得された画素データに対し、データ毎にビット反転を行う。
【００５５】
ビット反転手段２４０は、例えば、画素ビット反転手段２４１と係数ビット反転手段２４３とを有する。画素ビット反転手段２４１は、逆周波数変換手段２２０によって取得された画素データ毎に、ビット反転を行う。係数ビット反転手段２４３は、逆周波数変換手段２２０によって取得された係数データ毎に、ビット反転を行う。
【００５６】
（符号データを生成する処理の例（その１））
図６は、符号データを生成する処理の例を説明するフロー図である。
【００５７】
図６のステップＳ１０１では、画像符号化装置１００に対し、画像のデータが入力される。ここでは、２値の画像データ、又は、多値の画像データが入力される。ステップＳ１０１に続いてステップＳ１０２に進み、周波数変換処理が、所定の階層分終了したか否かの判断がなされる。例えばウェーブレット変換処理を複数回繰り返し処理する際に、所定の回数だけウェーブレット変換処理がなされたかを判断する。所定の段数が終了している場合には、ステップＳ１０５に進み、所定の段数が終了していない場合には、ステップＳ１０３に進む。
【００５８】
ステップＳ１０２に続くステップＳ１０３では、ダイナミックレンジ制御手段１１０により、低域成分を生成する画素データに対し、ビットが付加されることにより、ダイナミックレンジが増加される。ここでは、次の周波数変換処理に対応したダイナミックレンジの増加処理を行う。この処理により、例えば、ＬＬ画像の細線化処理による計算値丸めの影響を吸収することができ、縮小デコードの際の細線欠け等の画像の劣化を低減することができる。
【００５９】
ステップＳ１０３に続いてステップＳ１０４に進み、周波数変換手段１２０が、画素データ又は係数データに対して２次元の周波数変換処理を行って、低域成分及び高域成分を生成する。より詳細には、ＬＬ成分、ＨＬ成分、ＬＨ成分、及び、ＨＨ成分の４つの成分が生成される。例えば、ＪＰＥＧ２０００による５／３フィルタを用いた可逆符号化が行われる。ステップＳ１０４の後、ステップＳ１０２に戻って処理を繰り返す。
【００６０】
一方、ステップＳ１０２に続くステップＳ１０５では、ステップＳ１０４で取得された係数データの符号化処理が行われ、符号データが生成される。例えば、ＪＰＥＧ２０００標準に規定された符号データが生成される。ＪＰＥＧ２０００標準に規定された符号データとは、例えば、ＪＰＣフォーマットである。
【００６１】
（符号データを生成する処理の例（その２））
図７は、符号データを生成する処理の例を説明するフロー図であって、図６とは異なる例を説明する図である。図７では、図６のステップＳ１０３及びステップＳ１０４に対応するステップであるステップＳ２０３が、図６と異なっており、他の処理は同一であるので、他のステップについては、ここでは説明を省略する。
【００６２】
図６のステップＳ１０３及びステップＳ１０４では、係数データ又は画素データを周波数変換する際に、周波数変換の入力側でダイナミックレンジを増加させる。一方、ステップＳ２０３では、係数データを生成する周波数変換処理の出力側でダイナミックレンジを増加させる。
【００６３】
（符号データを生成する処理の例（その３））
図８は、符号データを生成する処理の例を説明するフロー図であって、図６及び図７とは異なる例を説明する図である。図８では、図７のステップＳ２０３に対応するステップＳ３０３が、図７と異なっており、他の処理は同一であるので、他のステップについては、ここでは説明を省略する。
【００６４】
図８のステップＳ３０３では、係数データを生成する周波数変換処理の出力側でダイナミックレンジを増加させるが、ダイナミックレンジを増加させる対象が、ＬＬ成分のみである。ＬＨ成分及びＨＬ成分については、ビット数を増加させること無く、係数データを生成される。これにより、復号画像の品質に大きな影響のあるＬＬ成分に含まれる情報の欠落を防ぐことができ、さらに、ＬＨ成分及びＨＬ成分のダイナミックレンジを増加させる場合よりも符号データのデータ量を少なくすることができる。
【００６５】
（符号データを生成する処理の例（その４））
図９は、符号データを生成する処理の例を説明するフロー図であって、図６ないし８とは異なる例を説明する図である。図９では、周波数変換処理の回数に応じたダイナミックレンジの増加が、画素データに対して行われる。
【００６６】
図９では、図６のステップＳ１０３に対応する処理であるステップＳ４０２が、ステップＳ４０１に続いて行われる。他のステップにおける処理は、図６と同一であるので、ここでは説明を省略する。
【００６７】
ステップＳ４０２では、入力された画素データに対し、ダイナミックレンジ制御手段１１０によりビットが付加される。ここで付加されるビット数は、二次元係数データを生成する周波数変換処理の回数と、処理される画素データのビット数とに基づいてよい。付加されるビット数は、またさらに、周波数変換処理の際に用いられる低域成分を出力するフィルタの性能に基づいてもよい。これにより、ローパスフィルタによって欠落し易い情報を、ビット数を増加させることにより、軽減することができる。
【００６８】
例えば、レベル３までの周波数変換処理が行われる場合には、画素データの最下位ビットのさらに下に３ビットを付加するとよい。
【００６９】
（符号データを生成する処理の例（その５））
図１０は、符号データを生成する処理の例を説明するフロー図であって、図６ないし図９とは異なる例を説明する図である。図１０のステップＳ５０１は、図６のステップＳ１０１と同一の処理であり、図１０のステップＳ５０３からステップＳ５０６は、図６のステップＳ１０２からステップＳ１０５の処理と同一であるので、ここでは説明を省略する。図６と図１０との相違は、ステップＳ５０１とステップＳ５０３との間に、ステップＳ５０２が設けられていることである。
【００７０】
図１０のステップＳ５０２では、入力された画像の画素データ毎にビット反転が行われる。これにより、細線部が値０を有し、背景部が値１を有する場合に、周波数変換処理において、低域成分における細線部の情報の欠落を軽減することができる。より詳細には、ビット反転により、細線部が値１となり、背景部が値０となるため、細線部の情報が係数データに多く含まれることとなる。
【００７１】
なお、図１０におけるステップＳ５０４及びステップＳ５０５の処理に代えて、図７のステップＳ２０３又は図８のステップＳ３０３の処理が行われてよい。
【００７２】
（符号データを生成する処理の例（その６））
図１１は、符号データを生成する処理の例を説明するフロー図であって、図６ないし図１０とは異なる例を説明する図である。図１１では、図１０と同様に、ビット反転の処理が行われる。図１１におけるビット反転のステップであるステップＳ６０３は、各階層の係数データを求める処理の前に設けられている。その他の処理は、図１０と同一であるので、ここでは説明を省略する。
【００７３】
図１１のステップＳ６０３では、ダイナミックレンジ制御手段１１０によってダイナミックレンジを増加される前の画素データ又は係数データに対し、ビット反転が行われる。これにより、周波数変換処理を行う毎に、係数データに対してビット反転が行われることとなる。
【００７４】
階層的に周波数変換処理が行われる際には、細線等の情報が、階層を追う毎に欠落していく。そこで、図１０では、入力される画素データをビット反転させることにより、細線部を低域側の値に変更させ、情報の欠落を軽減している。しかしながら、細線部を低域側の値に変更した場合、背景部が高域側の値となるため、階層的に周波数変換処理を行うと、階層を追う毎に、低域成分における背景部の情報が欠落していく。これは、細線部が拡大し、例えば、線が太くなる「潰れ」等を生じることとなる。
【００７５】
そこで、周波数変換処理を行う階層毎に、ビット反転を行うことにより、細線部と背景部とで、低域側と高域側とを入れ替わることができ、階層を追う毎に、何れか一方の情報が欠落していくことを軽減することができる。
【００７６】
（符号データの例）
図１２は、画像符号化装置１００によって生成される符号データを含むファイルの例であって、ＪＰＥＧ２０００によるＪＰ２ファイルの例である。ＪＰ２ファイルは、符号データ生成手段１５０によって生成される。ＪＰ２ファイルフォーマットは画像を表す符号ストリームを複数持つ事に加えて、メタデータや画像の特徴、知的所有権、ベンダー、色のプロファイルなどの情報を付与することができるファイルフォーマットである。
【００７７】
ＪＰ２ファイルは、ＢＯＸと呼ばれる構造の単位を有する。これらのＢＯＸのうち、Ｐａｌｌｅｔ  ｂｏｘは、あるコンポーネントからチャネルを生成するために適用されるもので、色のインデックスを実際の色（Ｒ，Ｇ，Ｂの値等）に変換する対応関係を表している。
【００７８】
図１３は、Ｐａｌｌｅｔ  ｂｏｘの構成を説明する図である。図１３のＰａｌｌｅｔ  ｂｏｘは、テーブルエントリー、すなわち、インデックスの数であるＮＥ、パレットの色空間を構成する要素の数であるＮＰＣ、パレットの組番号ｉのビット深さであるＢｉ、パレットの組番号ｉの色空間番号ｊの値Ｃｊｉを有する。
【００７９】
ここでは２値画像のパレットデータをＰａｌｌｅｔ  ｂｏｘに記述する場合、ＮＥは２となり、２値のインデックスをモノクロ画像に変換するのでＮＰＣは１となる。背景画素値を０に指定した場合はインデックス０のパレットが０になり、インデックス１がパレット１になる。反対に背景画素値を１に指定した場合は符号化前に反転させて、画素１をインデックス０に置き換えているため、インデックス１のパレットが０になり、インデックス０のパレットが１になる。
【００８０】
また例えば、２値のインデックスをＲＧＢフルカラーに変換するのであれば、ＮＰＣは３となり、パレット組は、例えば、（Ｒ０，Ｇ０，Ｂ０）＝（０，０，０）、（Ｒ１，Ｇ１，Ｂ１）＝（２５５，２５５，２５５）となる。
【００８１】
なお、ＪＰＥＧ２０００のＰａｒｔ１やＰａｒｔ６等ではＢｉ−ｌｅｖｅｌカラー空間が定義されている。このカラー空間では値０が白を表し値１が黒を表すモードと、白と黒との値が逆の場合のモードとがある。この二値空間であるＢｌａｃｋ  ａｎｄ  Ｗｈｉｔｅ表色系を使用しても上記方式を実現することが可能になる。
【００８２】
本実施の形態によって生成された符号データは、通常のＪＰＥＧ２０００デコーダを備えるビューアで、原画像と同じサイズ及び原画像より縮小されたサイズで表示された場合であっても、原画像と同じ色で、細線の途切れが抑制された良好な画像を得ることができる。
【００８３】
（コンピュータ等による実現）
なお、画像符号化装置１００又は画像復号装置２００は、例えばパーソナルコンピュータ（ＰＣ）等で実現されてよい。以上に示した実施形態の動作処理は、ＣＰＵがＲＯＭやハードディスク装置等に記憶されたプログラムに従い、ＲＡＭ等のメインメモリをワークエリアとして使用し、実行及び処理されるとよい。
【００８４】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。
【図面の簡単な説明】
【００８５】
【図１】本実施形態によって解決する課題を説明する図。
【図２】２値画像の例を説明する図（その１・細線が値１の例）。
【図３】２値画像の例を説明する図（その２・細線が値０の例）。
【図４】本実施形態によって増加されるダイナミックレンジを説明する図。
【図５】本実施形態の画像符号化装置及び画像復号装置の機能構成の例を説明する図。
【図６】符号データを生成する処理の例を説明するフロー図（その１・入力側でダイナミックレンジを増加する例）。
【図７】符号データを生成する処理の例を説明するフロー図（その２・出力側でダイナミックレンジを増加する例）。
【図８】符号データを生成する処理の例を説明するフロー図（その３・ＬＬ成分のダイナミックレンジを増加する例）。
【図９】符号データを生成する処理の例を説明するフロー図（その４・画素データのダイナミックレンジを増加する例）。
【図１０】符号データを生成する処理の例を説明するフロー図（その５・画素データをビット反転させる例）。
【図１１】符号データを生成する処理の例を説明するフロー図（その６・画素データ及び係数データをビット反転させる例）。
【図１２】ＪＰＥＧ２０００によるＪＰ２ファイルの例を説明する図。
【図１３】Ｐａｌｌｅｔ  ｂｏｘの構成を説明する図。
【符号の説明】
【００８６】
１００  画像符号化装置
１１０、２１０  ダイナミックレンジ制御手段
１２０  周波数変換手段
１３０  符号化手段
１４０、２４０  ビット反転手段
１４１、２４１  画素ビット反転手段
１４３、２４３  係数ビット反転手段
１５０  符号データ生成手段
２２０  逆周波数変換手段
２３０  復号手段
２５０  符号データ解析手段
【図１】
0004918026.tif 000004
【図２】
0004918026.tif 000005
【図３】
0004918026.tif 000006
【図４】
0004918026.tif 000007
【図５】
0004918026.tif 000008
【図６】
0004918026.tif 000009
【図７】
0004918026.tif 000010
【図８】
0004918026.tif 000011
【図９】
0004918026.tif 000012
【図１０】
0004918026.tif 000013
【図１１】
0004918026.tif 000014
【図１２】
0004918026.tif 000015
【図１３】
0004918026.tif 000016