(57)【要約】【課題】メモリ容量の制限下で、高解像度な画像の符号化を可能とする画像符号化装置を提供すること。【解決手段】係数ラインバッファを用いたウェーブレット変換の処理を行う画像符号化装置において、符号化の対象となる画像を入力する画像入力部２０１と、画像入力部２０１で入力した画像の横方向のサイズに基づいて、符号化の最小単位であるコードブロックの縦方向のサイズを決定するコードブロックサイズ決定部２０２と、コードブロックサイズ決定部２０２で決定したコードブロックのサイズを用いて画像の符号化を行う画像符号化部２０３と、を備えている画像符号化装置を提供する。【選択図】図８
2010213059.tif 000002
【特許請求の範囲】
【請求項１】
係数ラインバッファを用いたウェーブレット変換の処理を行う画像符号化装置において、
符号化の対象となる画像を入力する画像入力手段と、
前記画像入力手段で入力した画像の横方向のサイズに基づいて、符号化の最小単位であるコードブロックの縦方向のサイズを決定するコードブロックサイズ決定手段と、
前記コードブロックサイズ決定手段で決定したコードブロックのサイズを用いて画像の符号化を行う画像符号化手段と、
を備えることを特徴とする画像符号化装置。
【請求項２】
前記コードブロックサイズ決定手段は、前記画像入力手段で入力した画像の横方向のサイズを用いて、ウェーブレット変換処理に利用可能なメモリ領域の最大容量から、前記コードブロックの縦方向のサイズを算出することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記コードブロックサイズ決定手段は、前記コードブロックの縦方向のサイズを決定する際に、前記画像入力手段で入力した第１の画像の横方向のサイズより第２の画像の横方向のサイズが大きい場合、前記第１の画像に用いるコードブロックの縦方向のサイズより前記第２の画像に用いるコードブロックの縦方向のサイズを小さくすることを特徴とする請求項１または２に記載の画像符号化装置。
【請求項４】
前記コードブロックサイズ決定手段は、前記コードブロックの縦方向のサイズを決定する際に、前記画像入力手段で入力した第１の画像の横方向のサイズより第２の画像の横方向のサイズが大きい場合、前記コードブロックの面積を保ったままで、前記第１の画像に用いるコードブロックの縦方向のサイズより前記第２の画像に用いるコードブロックの縦方向のサイズを小さくすることを特徴とする請求項１〜３のいずれか一つに記載の画像符号化装置。
【請求項５】
前記コードブロックサイズ決定手段は、前記ウェーブレット変換によって生成される全てのサブバンドにおいて、前記コードブロックの縦方向のサイズ以上のライン数のバッファを用いて、前記画像入力手段で入力した画像の横方向のサイズに基づいて、前記コードブロックの縦方向のサイズを決定することを特徴とする請求項１または２に記載の画像符号化装置。
【請求項６】
前記コードブロックサイズ決定手段は、前記ウェーブレット変換によって生成される全てのサブバンドにおいて、前記コードブロックの縦方向のサイズ以上のライン数のバッファを用いて、前記画像入力手段で入力した画像の横方向のサイズに基づいて、前記コードブロックの縦方向のサイズと同時に横方向のサイズを決定することを特徴とする請求項１または２に記載の画像符号化装置。
【請求項７】
前記コードブロックの縦方向のサイズは、前記ウェーブレット変換の処理に用いるフィルタサイズ以上の値であることを特徴とする請求項１〜６のいずれか一つに記載の画像符号化装置。
【請求項８】
前記横方向のサイズを縦方向のサイズに、且つ、前記縦方向のサイズを横方向のサイズに置き換えて構成されたことを特徴とする請求項１〜７のいずれか一つに記載の画像符号化装置。
【請求項９】
係数ラインバッファを用いたウェーブレット変換の処理を行う画像符号化装置において、
符号化の対象となる画像を入力する画像入力手段と、
前記画像入力手段で入力した画像の横方向のサイズに基づいて、サブバンド係数空間で分割する単位であるプリシンクトの縦方向のサイズを決定するプリシンクトサイズ決定手段と、
前記プリシンクトサイズ決定手段で決定したプリシンクトのサイズを用いて画像の符号化を行う画像符号化手段と、
を備えることを特徴とする画像符号化装置。
【請求項１０】
画像符号化方式として、ＪＰＥＧ２０００方式を用いたことを特徴とする請求項１〜９のいずれか一つに記載の画像符号化装置。
【請求項１１】
請求項１〜１０のいずれか一つに記載の画像符号化装置において実行される画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像をＪＰＥＧ２０００方式で符号化する画像符号化装置及び画像符号化方法に関するものであり、特に、画像を符号化する際に、ラインベースウェーブレット変換を用い、圧縮効率を落とさずにメモリ容量の制限の下で効率的に圧縮する画像符号化装置及び画像符号化方法に関するものである。
【背景技術】
【０００２】
静止画像の圧縮方式として、従来広く用いられているＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）よりも高画質、且つ多機能化の図られたＪＰＥＧ２０００の基本方式(ｐａｒｔ１)がＩＳＯ／ＩＥＣ  １５４４４−１，ＩＴＵ−Ｔ  Ｔ．８００で標準化されている。ＪＰＥＧ２０００は、高圧縮率で画質向上が図られたのが特徴的で、符号量制御が容易で符号データ上の編集も可能であり、従来のＪＰＥＧに比べて機能性が高い。
【０００３】
ＪＰＥＧ２０００符号化方式には、ウェーブレット変換が採用されている。ウェーブレット変換は、従来のＪＰＥＧで用いられている離散コサイン変換（ＤＣＴ）のようなブロック単位の処理ではなく、画像全体に対して適用する周波数変換処理である。特許文献１には、ウェーブレット変換方式を利用した効果的な符号化及び復号化の方法が開示されている。ウェーブレット変換による方式を採用する際に、原画像における矩形領域に対応した各サブバンドの領域を一つの符号化単位としており、ラインバッファの容量が分解レベルで決定される。
【０００４】
ウェーブレット変換は画像全体に対して適用する周波数変換処理であるため、単純に実装すると、画像サイズの分だけの画素値もしくは変換係数を保持するためのバッファが処理過程を通して必要になってしまう。
【０００５】
これに対する解決策として、非特許文献２に記されたようなラインベースウェーブレット処理方式がある。ラインベースウェーブレット処理は、ウェーブレット変換のタップ数に応じた必要最小限のバッファ（ラインメモリ）に、逐次画素値もしくは変換係数をストアして変換処理を行う手法である。ラインベースでウェーブレット変換された後、これらの係数は、同時に全てを保持するのではなく、逐次エントロピー符号化してしまうことで係数用のバッファの空きを作ることができる。そのため、これが消費メモリ量の大幅な削減の効果を生み出す。
【０００６】
また、ラインベースでウェーブレット変換を行う方法に関しては、特許文献２によっても開示されている。特許文献２によれば、ウェーブレット変換に必要なバッファが、画像全体分に相当するバッファではなく、画像の縦のサイズに依存しないライン数によるラインバッファで済むという効果があると記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ラインベースウェーブレットを用いた場合でも、係数バッファの保持方法、ウェーブレット変換の分解レベル、符号化を実行する単位などによって、必要なバッファ量、即ち消費メモリ量が変化することになる。また、特許文献２にはラインベースでウェーブレット変換を行う方法が示されているが、コードブロックサイズの制御に関する記述はなされておらず、利用可能なバッファの制限下で圧縮する方法に関する記述もなされていない。
【０００８】
近年ではデジタルカメラや複写機などが処理する画像の解像度が非常に高くなっており、ラインベースウェーブレットを用いる場合でも、その消費メモリは、画像全体を処理するウェーブレットより遥かに小さいとはいえ、ラインでの処理が大きくなれば消費メモリも大きくなってしまうという問題が残る。
【０００９】
また、このようなデジタルカメラ、デジタルスキャナ、複合機などの機器では、搭載されているメモリが小さいだけでなく、使用できるメモリに制限がある場合が多く、入力され得るどんな画像に対しても、使用できるメモリ容量内で正常に動作するように制御することが求められる。
【００１０】
本発明は、前述した問題点に鑑みてなされたものであって、ラインベースウェーブレットを用いてＪＰＥＧ２０００方式で画像を符号化する際に、画像の圧縮効率を落とさずにメモリ容量の制限の下で、効率的な画像符号化を実現することをその目的の一つとする。
【課題を解決するための手段】
【００１１】
前述した課題を解決し、目的を達成するために、本発明にかかる画像符号化装置は、係数ラインバッファを用いたウェーブレット変換の処理を行う画像符号化装置において、符号化の対象となる画像を入力する画像入力手段と、画像入力手段で入力した画像の横方向のサイズに基づいて、符号化の最小単位であるコードブロックの縦方向のサイズを決定するコードブロックサイズ決定手段と、コードブロックサイズ決定手段で決定したコードブロックのサイズを用いて画像の符号化を行う画像符号化手段と、を備える。
【発明の効果】
【００１２】
本発明によれば、ラインベースのウェーブレット変換を用いて画像を符号化するので、画像処理を行う際に、使用可能なメモリ容量内で画像を処理することができ、省メモリを実現することができ、且つ、コードブロックが入力画像のサイズに応じて適切に設定されるので、画像の圧縮効率を落とさずに、メモリ容量の制限下で効率的な画像符号化を実現することができる、という効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、ＪＰＥＧ２０００の基本的な符号化と復号のアルゴリズムを説明するためのブロック図である。
【図２】図２は、一段のサブバンド分割（順変換）とデインターリーブ（逆変換）後のサブバンドの係数について示した図である。
【図３】図３は、画像分割における画像、タイル、サブバンド、プリシンクト、コードブロックの関係を示す図である。
【図４】図４は、コードブロックとビットプレーンの符号化順について示した図である。
【図５】図５は、デコンポジションレベルが２であり、プリシンクトサイズとサブバンドサイズを同等としたときのレイヤとそれに含まれるパケットの例を示した図である。
【図６】図６は、ＪＰＥＧ２０００におけるパケットの属性の階層のプログレッション順を示した図である。
【図７】図７は、本発明の第１の実施形態にかかるＰＣのハードウェア構成を示すブロック図である。
【図８】図８は、第１の実施形態にかかる画像符号化装置の符号化処理を示すブロック図である。
【図９】図９は、第１の実施形態にかかるラインベースウェーブレットのウインドウを示す図である。
【図１０】図１０は、第１の実施形態にかかるラインベースウェーブレット変換を示す概念図である。
【図１１】図１１は、第１の実施形態にかかるラインベースウェーブレット変換によるエントロピー符号化の処理を示すフローチャートである。
【図１２】図１２は、ＬＬサブバンドについて、次段へのサブバンド分解の処理を示すフローチャートである。
【図１３】図１３は、ウェーブレット変換と符号化に関する機能ブロック図である。
【図１４】図１４は、本発明にかかるラインベース符号化での係数バッファの確保例について示した図である。
【図１５】図１５は、ＪＰＥＧ２０００のコードブロックサイズに対する制約を示すテーブル図である。
【図１６】図１６は、サイズの異なる二つの画像とそのコードブロックサイズの例を示した図である。
【図１７】図１７は、サイズの異なる二つの画像とそのコードブロックサイズの例を示した図である。
【図１８】図１８は、本発明の第４の実施形態にかかる画像符号化装置の符号化処理を示すブロック図である。
【図１９】図１９は、プリシンクト分割にかかるプリシンクトの分割単位について示した図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して、この発明にかかる画像符号化装置及び画像符号化方法の最良の実施形態を詳細に説明する。この実施形態により、この発明が限定されるものではない。また、下記実施形態における構成要素には、当業者が容易に想定できるもの、または実質的に同一のものが含まれる。
【００１５】
図１〜６を参照して、ＪＰＥＧ２０００の符号化処理の概要について説明する。なお、ＪＰＥＧ２０００方式の変換式などの詳細については、非特許文献１を参照することによって得られる。ＪＰＥＧ２０００は、画像圧縮方式の一つであって、従来広く用いられてきたＪＰＥＧを発展させた仕様であり、標準化・規格化されている。前述したように、ウェーブレット変換方式を採用しており、周波数帯域に分かれた縦横の周波数成分を量子化、符号化して圧縮を行う。詳細には、１次元の波を低周波成分と高周波成分に分割することがウェーブレットの作用であり、逆変換では低周波成分と高周波成分の組から元の信号を復元する。画像のような２次元のデータをウェーブレット変換すると、画像が行×列のデータの集合と捉えられるため、その各行又は各列に対して変換がなされる。
【００１６】
図１は、本発明にかかるＪＰＥＧ２０００の基本的な符号化と復号化のアルゴリズムを説明するためのブロック図である。
【００１７】
まず、画像は重複しない矩形領域（タイル）に分割され（分割数≧１）、タイル単位で処理される（画像全体を１つのタイルとして処理することも可能である）。次に、タイルはＲＧＢの３コンポーネントで構成されるカラー画像を符号化する際に、分割されたタイルを輝度及び色差のコンポーネントへの色変換が施される。色変換部１では、ＲＧＢ画像を輝度色差系のＹＣｒＣｂ画像に変換することにより、カラー画像の圧縮効率を高める処理を行うことができる。色変換は、カラー画像を効率良く圧縮するために行うものである。色変換には、可逆と非可逆の２つの方法が定義されている。
【００１８】
色変換されたコンポ−ネントは、２次元ウェーブレット変換部２において、ウェーブレット変換が施され、後述する４つのサブバンドに分割される。量子化部３では、量子化が行われ、エントロピー符号化部４、タグ処理部５を経て、符号化データが生成される。この処理が順変換で行われるのが符号化（圧縮）であり、逆変換で行われるのが復号（伸張）である。
【００１９】
ＪＰＥＧ２０００のウェーブレット変換においては、整数型では５×３フィルタ、実数型では９×７フィルタが採用されている。可逆５×３フィルタの特徴は、変換のために使用される係数が整数であること、及び変換後の係数を丸め処理によって整数にすることである。
【００２０】
ここで、可逆５×３フィルタの変換式を式（１）に示す。
順変換
Y(2n+1)=X(2n+1)-floor((X(2n)+X(2n+2))/2)      [step 1]
Y(2n)=X(2n)+floor((Y(2n-1)+Y(2n+1)+2)/2)      [step 2]
逆変換 ・・・（１）
X(2n)=Y(2n)-floor((Y(2n-1)+Y(2n+1)+2)/4)      [step 1]
X(2n+1)=Y(2n+1)+floor((X(2n)+X(2n+2))/2)      [step 2]
【００２１】
また、可逆５×３フィルタとは反対に、非可逆９×７フィルタの特徴は、変換のために使用される係数が実数であること及び変換後の係数に対して丸め処理を行わないことである。以下、非可逆９×７フィルタの変換式を式（２）に示す。
順変換
Y(2n+1)=X(2n+1)+α*(X(2n)+X(2n+2))            [step 1]
Y(2n)=X(2n)+β*(Y(2n-1)+Y(2n+1))              [step 2]
Y(2n+1)=Y(2n+1)+γ*(Y(2n)+Y(2n+2))            [step 3]
Y(2n)=Y(2n)+δ*(Y(2n-1)+Y(2n+1))              [step 4]
Y(2n+1)=Κ*Y(2n+1)                            [step 5]
Y(2n)=(1/Κ)*Y(2n)                            [step 6]
逆変換・・・（２）
X(2n)=Κ*Y(2n)                                [step 1]
X(2n+1)=(1/Κ)*Y(2n+1)                        [step 2]
X(2n)=X(2n)-δ*(X(2n-1)+X(2n+1))              [step 3]
X(2n+1)=X(2n+1)-γ*(X(2n)+X(2n+2))            [step 4]
X(2n)=X(2n)-β*(X(2n-1)+X(2n+1))              [step 5]
X(2n+1)=X(2n+1)-α*(X(2n)+X(2n+2))            [step 6]
但し、α=-1.586134342059924
β=-0.052980118572961
γ=0.882911075530934
δ=0.443506852043971
Κ=1.230174104914001
【００２２】
図２は、一段のサブバンド分割（順変換）とデインターリーブ（逆変換）後のサブバンドの係数について示した図である。ウェーブレット変換によって、元の画像はＨＨ，ＨＬ，ＬＨ，ＬＬの４つのサブバンドに分割される。前述したように、２次元ウェーブレット変換では、縦方向の変換と横方向の変換を順に行うため、それぞれ２分の１サイズに分割され、結果的に４分の１サイズのサブバンドが４つ形成される。分割された４つのサブバンドの中から、ＬＬサブバンドに対して再帰的にウェーブレット変換が行われ、再帰的ウェーブレット変換（デコンポジション）が繰り返されると、最終的に１つのサブバンドＬＬと複数のサブバンドＨＬ，ＬＨ，ＨＨが生成されることとなる。
【００２３】
順変換における変換後の係数は１／２に間引きされ、係数の数は変換前に対して水平方向、垂直方向ともに１／２の数になるが、ＨＨ、ＨＬ、ＬＨ、ＬＬの４つのサブバンドに分解されるため、変換前と変換後で係数の数は変わらない。この分解をＬＬ成分に対して再帰的に繰り返すことによって、ＪＰＥＧ２０００の周波数分解が実現される。
【００２４】
図３は、画像分割における画像、タイル、サブバンド、プリシンクト、及びコードブロックの関係を示した図である。プリシンクトとは、サブバンドを矩形に分割したものであって、同じデコンポジションレベルのサブバンドＨＬ，ＬＨ，ＨＨの空間的に同じ位置にある３つの領域の組が１つのプリシンクトとして扱われる。ただし、ＬＬサブバンドは、１つの領域が１つのプリシンクトとして扱われる。プリシンクトのサイズはサブバンドと同じサイズにすることができ、プリシンクトを分割した矩形領域がコードブロックである。ここで、コードブロックとは符号化の単位であり、エントロピー符号化はコードブロックごとに独立に行われる。物理的な大きさの序列は、画像≧タイル＞サブバンド≧プリシンクト≧コードブロックとなる。
【００２５】
図４は、コードブロックとビットプレーンについての符号化順を示した図である。サブバンド分割がなされたことによって、コードブロック毎に、且つビットプレーン順に、係数のエントロピー符号化（ビットプレーン符号化）が行われる。プリシンクトに含まれる全てのコードブロックからビットプレーンの符号の一部を取り出して集め、ヘッダのついたものをパケットと呼ぶ。取り出した符号は、例えば、全てのコードブロックのＭＳＢから、３枚目までのビットプレーンの符号を集めたものであってもよい。また、符号の一部は「空（から）」の状態であっても良いので、パケットの中身が符号的には「空(から)」ということもある。パケットのヘッダには、当該パケットに含まれる符号に関する情報が含まれており、各パケットは独立に扱うことができる。パケットは符号の単位である。
【００２６】
そして全てのプリシンクト（即ち、全てのコードブロック、全てのサブバンドと同じ）のパケットを集めると、画像全域の符号の一部（例えば、画像全域のウェーブレット係数のＭＳＢから３枚目までのビットプレーンの符号）が生成されるが、これをレイヤと呼ぶ。レイヤは画像全体のビットプレーンの符号の一部であるので、復号されるレイヤ数が多いほど当該画像の画質は良好になる。すなわち、レイヤはビット深さ方向に形成された画質の単位である。すべてのレイヤが集められることによって、画像全体のビットプレーンが符号化されることとなる。
【００２７】
図５は、デコンポジションレベルが２であり、プリシンクトサイズとサブバンドサイズを同等としたときのレイヤと、それに含まれるパケットの例を示した図である。パケットは、プリシンクトを単位とするものであるから、プリシンクトがサブバンドと同じであるとした場合、サブバンドＨＬ〜ＨＨをまたいだものとなる。また、説明を明瞭にするために、図中において、いくつかのパケットを太線で囲んだ。
【００２８】
図６は、ＪＰＥＧ２０００におけるパケットの属性の階層のプログレッション順を示した図である。生成されたパケット及びレイヤの区切りに従って、パケットを並べる作業を符号形成という。即ち、パケットは、どのコンポ−ネントに属するか、どの解像度レベルに属するか、どのプリシンクト（場所）に属するか、どのレイヤに属するか、という４つの属性を有する。パケットの配列とは、どの属性の順に階層的に並べるかを意味するものである。該配列順をプログレッションオーダとよび、図６を参照すると、５通りの配列順が示されている。
【００２９】
次に、エンコーダがプログレッション順にパケットを並べる様子、およびデコーダがプログレッション順にパケットの属性を解釈する様子の例を示す。コンポーネントをＣ、解像度レベルをＲ、プリシンクトをＰ、レイヤをＬとすると、ＬＲＣＰプログレッションの場合、Ｌ、Ｒ、Ｃ、Ｐの順にネストされた次のようなｆｏｒループ
for (レイヤ)｛
for (解像度レベル)｛
for (コンポ−ネント)｛
for (プリシンクト)｛
エンコード時：パケットを配置
デコード時：パケットの属性を解釈
｝
｝
｝
｝
という階層順に、エンコード時にパケットが配列され、デコード時には、パケットの解釈がなされる。各パケットはパケットヘッダを有する。パケットヘッダに含まれる情報には、そのパケットが空かどうか、そのパケットにどのコードブロックが含まれるか、そのパケットに含まれる各コードブロックのゼロビットプレーン数、そのパケットに含まれる各コードブロック符号のコーディングパス数（ビットプレーン数）、そのパケットに含まれる各コードブロックの符号長などが含まれる。
【００３０】
しかしながら、パケットヘッダにはレイヤ番号や解像度番号等の記載はなく、デコード時に、そのパケットがどのレイヤのどの解像度であるかを判別するには、メインヘッダ中のＣＯＤマーカに記載されたプログレッションオーダから上記ｆｏｒループを形成し、そのパケットに含まれる各コードブロックの符号長の和からパケットの切れ目を判別し、各パケットが、ｆｏｒループ内のどの位置でハンドリングされたかを見ればよい。即ち、パケットヘッダ中の符号長さえ読み出すことができれば、エントロピー符号自体をデコードしなくても、次のパケットを検出することができる。従って、任意のパケットにアクセスできることを意味する。
【００３１】
（第１の実施形態）
本発明における第１の実施形態では、ウェーブレット変換方式を用いるＪＰＥＧ２０００による符号化方式において、係数ラインバッファを用いたウェーブレット変換方式を採用して、画像の符号化処理を行う画像符号化装置について説明する。
【００３２】
図７は、第１の実施形態にかかるパーソナルコンピュータ（ＰＣ）のハードウェア構成を示すブロック図である。本実施形態にかかるＰＣ１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＡＭ（Random Access Memory）１０２、ＨＤＤ（Hard Disk Drive）１０３等をシステムバス１０４により相互接続した一般的なＰＣである。なお、本実施形態では、画像符号化装置を備える一般的なＰＣについて説明したが、ＰＣに限られず、ＭＦＰ（Multi Function Peripheral）、デジタル複写機、プリンタ、ファクシミリ、スキャナ機能付コピーなどの画像符号化処理を行うものであれば、本実施形態の画像符号化装置を適用することができる。
【００３３】
ＣＰＵ１０１は、ＰＣ１００の全体を制御するためのマイクロプロセッサである。ＲＡＭ１０２は、各種データを書換え可能に記憶する性質を有していることから、ＣＰＵ１０１の作業エリアとして機能し、バッファ等の役割を果たす。ＨＤＤ１０３は、画像やＣＰＵ１０１により実行される各種プログラムを記憶する情報記録媒体である。
【００３４】
なお、情報記録媒体としては、ＨＤＤ１０３のみならず、ＣＤ（Compact Disk）−ＲＯＭ、ＤＶＤ（Digital Versatile Disk）などの各種の光ディスク、各種光磁気ディスク、フレキシブルディスクなどの各種磁気ディスク等、半導体メモリ等の各種方式のメディアを用いることができる。また、図示しない外部Ｉ／Ｆ装置を介してインターネットなどのネットワークからプログラムをダウンロードし、ＨＤＤ１０３にインストールするようにしてもよい。このような場合に、送信側のサーバでプログラムを記憶している記憶装置も、本発明における情報記録媒体である。なお、プログラムは、所定のＯＳ（Operating System）上で動作するものであってもよい。その場合には、後述する各種処理の一部の実行をＯＳに肩代わりさせるものであってもよい。または、所定のアプリケーションソフトやＯＳなどを構成する一群のプログラムファイルの一部として含まれるものであってもよい。
【００３５】
このシステム全体の動作を制御するＣＰＵ１０１は、このシステムの主記憶装置として使用されるＨＤＤ１０３に記憶されたプログラムに基づいて、各種処理を実行する。
【００３６】
次に、ＰＣ１００のＨＤＤ１０３に記憶されているプログラムがＣＰＵ１０１に実行させる機能のうち、本実施形態のＰＣ１００が備える特長的な機能について説明する。
【００３７】
まず、図７を参照して、ＰＣ１００が備える特長的な機能の概略について説明する。（１）ＨＤＤ１０３より、処理対象となる原画像がＣＰＵ１０１からの命令によってＲＡＭ１０２に読み込まれる。（２）ＣＰＵ１０１は、ＲＡＭ１０２上の原画像を読み込み、後述するように、本実施形態のコードブロックサイズを決定し、ウェーブレット変換を用いた符号化を行う。（３）ＣＰＵ１０１は、符号化されたデータをＲＡＭ１０２上の別の領域に書き込む。（４）ＣＰＵ１０１からの命令によってその符号化されたデータがＨＤＤ１０３に保存される。
【００３８】
図８は、本実施形態にかかる画像符号化装置の符号化処理を示すブロック図である。図８によれば、画像入力部２０１は、符号化の対象となるＲＡＭ１０２に読み込まれた画像を入力画像として入力する。コードブロックサイズ決定部２０２は、画像入力部２０１で入力した画像のサイズ（画像の横方向のサイズ）を取り込み、画像のサイズに基づいて、符号化の最小単位であるコードブロックの縦方向のサイズを決定する。画像符号化部２０３は、画像入力部２０１から画像を入力し、コードブロックサイズ決定部２０２で決定したコードブロックのサイズを用いて、入力画像にウェーブレット変換処理を行い、入力画像の符号化を行う。ここで、画像符号化部２０３において行われる符号化処理は、量子化、係数ビットモデリング、エントロピー符号化の全ての符号化工程を行う処理である。符号化処理された画像は、一旦ＲＡＭ１０２に書き込まれて、ＨＤＤ１０３上の所定の領域に書き込まれる。
【００３９】
次に、本実施形態のラインベース符号化について詳細に説明する。図９は、本実施形態にかかるラインベースウェーブレットのウインドウを表した図である。ラインベースウェーブレットは、前述したように、画像全体分の係数バッファを用意してウェーブレット変換を施す方法とは異なり、図９のように、画像を横方向に短冊状に切り出し、縦方向にＬの長さを持つウインドウに対して順にウェーブレット変換を行う方法である。ここで、係数バッファは画像全体分を保持する必要はなく、同時に数ライン分の係数バッファを保持すれば良い。
【００４０】
図１０は、本実施形態にかかるラインベースウェーブレット変換について示した図である。図１０について詳細に説明すると、まずＬラインの画像データ（図１０の入力画素）をラインバッファに読み込む。ここで、入力画像の画素値に対して色変換を行う場合には、色変換後の各プレーンの画素値をＬラインのラインバッファに展開する。次に、この画像データに対して垂直方向のウェーブレット変換を行うと、ハイパスフィルタ及びローパスフィルタによって、垂直方向ハイパス成分と垂直方向ローパス成分に分解される。このとき、Ｌの値はウェーブレット変換に用いるフィルタサイズ以上の値である必要がある。
【００４１】
次に、垂直方向ハイパス成分と垂直方向ローパス成分のそれぞれに対して、水平方向のウェーブレット変換を行う。この結果として生成されるのが、サブバンドＨＨ、ＨＬ、ＬＨ、ＬＬの係数成分であり、画像全体に同時にウェーブレット変換を行った場合に生成されるサブバンド係数成分と同じものである。図１０ではウェーブレット変換に９×７フィルタを用いた例を示している。
【００４２】
図１０におけるフィルタの長さをＦとすると、Ｆラインの画素値（もしくは色変換後の画素値）を読み込み、１ラインのサブバンドＨＨ、ＨＬ、ＬＨ、ＬＬ成分を出力する。例えば、（Ｆ＋Ｋ）ラインを一度に読み込んだ場合、一度に（１＋Ｋ）ラインの各サブバンド信号が出力されることになる。生成されたサブバンド信号のうち、ＨＨ、ＨＬ、ＬＨサブバンド信号はさらに分解がなされないため、ＨＨ、ＨＬ、ＬＨのサブバンド信号については符号化ステップへ進むこととなる（図１１参照）。一方、生成されたサブバンドのうち、ＬＬサブバンドは、さらに次段のウェーブレット変換が行われ、下位の分解レベルのサブバンド信号に分解される。
【００４３】
図１１は、本実施形態にかかるラインベースウェーブレット変換によるエントロピー符号化の処理を示すフローチャートである。ここでは、ＨＨ、ＨＬ、ＬＨのサブバンド信号のラインベース符号化処理について、フローチャートに従って簡単に説明する。
【００４４】
最初に、画像から短冊状に切り出した、画像の続くＬ行を係数バッファに読み込む（ステップＳ１１０１）。読み込まれた係数バッファのデータに対して、ウェーブレット変換を行う（ステップＳ１１０２）。ここで、エントロピー符号化を行う単位は、コードブロックごとであるため、コードブロック分の係数が生成される必要がある。ウェーブレット変換がなされた係数は、コードブロック単位の係数が生成されるまでメモリに蓄えられる。係数は画像のラインで出力され、コードブロックの縦方向のサイズに対して十分な変換係数が生成されれば（ステップＳ１１０３，Ｙｅｓ）、サブバンド係数は量子化される（ステップＳ１１０４）。量子化されたサブバンド係数は、ビットモデリングを行い（ステップＳ１１０５）、エントロピー符号化する処理が行われる（ステップＳ１１０６）。一方、コードブロックサイズに対して、十分な変換係数が生成されなければ（ステップＳ１１０３，Ｎｏ）、ステップＳ１１０１に戻り、続く係数バッファの読み込み処理が行われる。以上が、一段のウェーブレット変換についての処理である。
【００４５】
図１２は、ＬＬサブバンドについて、次段のサブバンド分解の処理を示すフローチャートである。以下、ＬＬサブバンドの処理を簡単に説明する。図１１のフローチャートと同様に、まず、画像から短冊状に切り出したＬ行を係数バッファに読み込み（ステップＳ１２０１）、係数バッファのデータに対してウェーブレット変換を行う（ステップＳ１２０２）。次に、前述したようにＬＬサブバンド信号については、さらに次段のウェーブレット変換が施されるため、再分解に十分なＬＬサブバンド係数が生成されれば（ステップＳ１２０３，Ｙｅｓ）、ＬＬサブバンド係数のウェーブレット変換が行われて下位の分解レベルに分解される（ステップＳ１２０４）。再分解に十分とされるＬＬサブバンド係数が生成されなければ（ステップＳ１２０３，Ｎｏ）、ステップＳ１２０１に戻り、続く係数バッファの読み込み処理が行われる。ここで、最大分解レベルまで達したＬＬサブバンド成分は、他のＨＨ、ＨＬ、ＬＨサブバンドと同様に図１１のフローチャートの流れに従って符号化される。
【００４６】
図１３は、ウェーブレット変換と符号化に関する機能ブロック図である。図１３に示すように、ウェーブレット変換され、サブバンド分解された各係数は、ＨＨ、ＨＬ、ＬＨ、ＬＬ係数バッファに蓄えられる。係数バッファに蓄えられた係数のうち、ＨＨ、ＨＬ、ＬＨの係数は符号化部へ入力され、符号が生成される。ＬＬサブバンドの係数については、次段のウェーブレット変換がなされる。
【００４７】
次に、本実施形態のラインベース符号化に伴う係数バッファの確保例について説明する。図１４は、本実施形態におけるラインベース符号化に伴う係数バッファの確保例を示した図である。例として、分解レベルが３の場合は、多段ウェーブレット変換の過程において、複数のサブバンド１ＨＨ、１ＨＬ、１ＬＨ、１ＬＬ、２ＨＨ、２ＨＬ、２ＬＨ、２ＬＬ、３ＨＨ、３ＨＬ、３ＬＨ、３ＬＬのサブバンド係数が生成される。
【００４８】
ラインベースウェーブレット変換ではなく、画像全体に適用されるようなウェーブレット変換を用いる場合は、複数のサブバンド係数が同時にメモリに展開される。しかし、ラインベースウェーブレット変換によれば、コードブロックごとに処理が行われるため、同時にメモリに展開されるのは、各サブバンドのコードブロックの縦サイズに相当するライン分とすることができる。
【００４９】
例えば、コードブロックサイズが３２＊３２であるとすると、全てのサブバンドに関して、それぞれ３２ラインずつの係数バッファを同時に保持することとなる。３２ライン分の係数が蓄積されたＨＨ、ＨＬ、ＬＨサブバンドは、随時エントロピー符号化までがなされ、符号が生成されるとメモリ上で保持する必要が無くなり、その部分が上書きされる。ここで、古いラインから優先的に上書きされる３２ラインの循環バッファを用いることが望ましい。
【００５０】
また、１ＬＬ、２ＬＬサブバンドのサブバンド係数は、再帰的にウェーブレット変換されるため、必ずしも３２ラインを必要とはしない。但し、さらにウェーブレット変換がなされるため、ウェーブレット変換に必要なフィルタサイズのラインバッファを備えることが必要である。ここでも、ウェーブレット変換の際のウィンドウサイズに応じて、循環バッファを用いることが望ましい。
【００５１】
前述した係数バッファを用いる場合、ラインベースウェーブレット変換の処理の過程において必要なメモリ量は、入力画像の入力方向に対する横方向のサイズ（横サイズ）と、コードブロックの縦方向のサイズ（縦サイズ）によって決定される。
【００５２】
ここで、コードブロックの縦方向のサイズを算出する方法について説明する。入力画像の横方向のサイズをW、コードブロックの縦方向のサイズをCv、入力された画素（もしくは色変換後の画素）の精度をPバイト、分解レベルをn、サブバンド係数の精度をBytesCoeffバイトとすると、ウェーブレット変換を行う際に画素値（もしくはＬＬ成分）をＬ行ずつ読み込むウィンドウラインバッファと、同時に全てのサブバンド係数を保持する係数バッファの合計から計算されるメモリ使用量は、式（３）のように算出できる。
【数１】
2010213059.tif 000003
よって、上記式（３）を用いて、使用可能なメモリ使用量と画像横サイズから、コードブロックの縦方向の最大サイズを算出することが望ましい。
【００５３】
ここで、コードブロックサイズには一定の制限が設けられる。図１５は、ＪＰＥＧ２０００のコードブロックサイズに対する制限を示すテーブル図である。図１５に示されたように、コードブロックサイズは、算出した最大コードブロックサイズを超えず、２のべき乗であって、縦サイズと横サイズにおける２のべき乗の指数の和が１２以下である値を選択することが望ましい。
【００５４】
本実施形態にかかる画像符号化装置によれば、入力画像の横サイズによって符号化の最小単位であるコードブロックの縦方向のサイズを決定するので、使用可能なメモリ容量内で画像を処理することができ、高解像度の画像に対しても省メモリを実現することができる。また、入力画像の横サイズを用いて、ウェーブレット変換処理に利用可能なメモリ領域の最大容量から、コードブロックの縦方向のサイズを算出するようにしたので、画像の符号化効率を落とさずに、メモリ容量の制限下で効率的な符号化を実現することができる。
【００５５】
（第２の実施形態）
本発明の第２の実施形態では、コードブロックの縦方向のサイズを決定する際、第１の入力画像の横方向のサイズより第２の入力画像の横方向のサイズが大きい場合、第１の画像に用いるコードブロックの縦方向のサイズより第２の画像に用いるコードブロックの縦方向のサイズを小さくする画像符号化装置について説明する。
【００５６】
本実施形態においても、第１の実施形態で説明した一般的なハードウェア構成を有するＰＣが用いられる（図７参照）。また、第１の実施形態で示した画像符号化装置の符号化処理の機能を同様に有する（図８参照）。
【００５７】
画像を横方向に短冊状に切り出したラインを基準とした係数ラインバッファを用いるラインベースウェーブレット変換であれば、横サイズが非常に大きい画像を処理する場合に、ウェーブレット変換の係数バッファとして大量の作業用メモリが必要となる。そのために、入力画像の横サイズに応じて、コードブロックサイズを決定することが望ましい。
【００５８】
図１６は、サイズの異なる二つの画像とそれらのコードブロックサイズの例を示した図である。図１６に示すように、例えば、入力画像の横サイズが２０４８画素である画像１を符号化するときには、コードブロックの縦サイズが６４であるコードブロックを用いて符号化する。また、入力画像の横サイズが４０９６の画像２を符号化するときには、コードブロックの縦サイズが３２であるコードブロックを用いて符号化する。
【００５９】
このように、相対的に横方向に長い画像２の場合は、コードブロックの縦サイズが３２に制限されるため、縦サイズ６４のコードブロックサイズを使用した場合と比較して、ラインベースによる大量の作業用メモリが発生するのを抑えることができる。画像１の処理時においても、画像２の処理時においても、処理時に必要とされる作業用メモリが大きく変化することがないため、安定して画像の符号化を行うことができる。
【００６０】
本実施形態によれば、画像サイズの違いによって、メモリで処理される係数バッファの量が増加するのを抑えることができるため、画像サイズの違いによる影響を受けることなく、安定的な画像符号化処理を実現することができる。
【００６１】
（第３の実施形態）
本発明の第３の実施形態では、コードブロックの縦方向のサイズを決定する際、第１の入力画像の横方向のサイズより第２の入力画像の横方向のサイズが大きい場合、コードブロックの面積を保ったままで、第１の画像に用いるコードブロックの縦方向のサイズより第２の画像に用いるコードブロックの縦方向のサイズを小さくする画像符号化装置について説明する。
【００６２】
本実施形態においても、第１の実施形態で説明した一般的なハードウェア構成を有するＰＣが用いられる（図７参照）。また、第１の実施形態で示した画像符号化装置の符号化処理の機能を同様に有する（図８参照）。
【００６３】
コードブロックサイズは、エントロピー符号化の効率に影響を及ぼす。コードブロック毎にエントロピー符号化のコンテクストが初期化されるためである。そのため、コードブロックサイズを決定する際には、コードブロックに含まれる係数の数が少なくなり過ぎてはいけない。６４＊６４のサイズや３２＊３２のサイズが適当な大きさであることが経験的に分かっている。
【００６４】
例えば、図１７に示すように、二種類の入力画像があり、相対的に横方向のサイズが短い画像と長い画像を符号化する場合を考える。図１７に示されたように、入力画像の横方向のサイズが２０４８画素である画像１及び横方向のサイズが４０９６画素の画像２を符号化する。画像１を符号化する場合には、コードブロックサイズを縦６４＊横３２とし、入力方向に対して縦長の矩形となる。また、画像２を符号化する場合には、コードブロックサイズを縦３２＊横６４とし、入力方向に対して横長の矩形となる。
【００６５】
コードブロックの縦方向のサイズを決定する際に、第１の入力画像の横方向のサイズより第２の入力画像の横方向のサイズが大きい場合、コードブロックの面積を一定に保ったままで、第１の画像に用いるコードブロックの縦方向のサイズより第２の画像に用いるコードブロックの縦方向のサイズを小さくする。即ち、コードブロックの面積が一定に保たれたまま、コードブロックの縦方向のサイズを小さくするので、コードブロックの横方向のサイズが大きくなることを意味する。
【００６６】
このように、コードブロックの面積を一定にして縦方向のサイズを調整することによって、コードブロックに含まれる係数の数を減らすことなく一定に保つことができ、消費メモリの増加を防ぐことができる。
【００６７】
なお、第１〜第３の実施形態において用いた入力画像の横方向のサイズを入力画像の縦方向のサイズとしてもよく、その際にコードブロックの縦方向のサイズは、コードブロックの横方向のサイズとしてもよい。換言すれば、入力画像の横方向を入力画像の縦方向に、コードブロックサイズの縦方向をコードブロックの横方向に、コードブロックサイズの横方向をコードブロックの縦方向に、置き換えてもよい。
【００６８】
（第４の実施形態）
前述した第１〜３の実施形態では、サブバンド全体を分割して符号化する形態、即ち、主にプリシンクト分割を行わずに符号化する形態について説明した。第４の実施形態においては、プリシンクト分割を用いて画像を符号化する画像符号化装置について説明する。
【００６９】
本実施形態においても、第１の実施形態で説明した一般的なハードウェア構成を有するＰＣが用いられる（図７参照）。
【００７０】
図１８は、本実施形態にかかる画像符号化装置の符号化処理を示すブロック図である。図１８によれば、画像入力部３０１は、符号化の対象となるＲＡＭ１０２に読み込まれた画像を入力画像として入力する。プリシンクトサイズ決定部３０２は、画像入力部３０１で入力した画像のサイズ（画像の横方向のサイズ）を取り込み、画像のサイズに基づいて、サブバンド係数空間で分割する単位であるプリシンクトの縦方向のサイズを決定する。画像符号化部３０３は、画像入力部３０１から画像を入力し、プリシンクトサイズ決定部３０２で決定したプリシンクトのサイズを用いて、入力画像にウェーブレット変換処理を行い、入力画像の符号化を行う。ここで、画像符号化部３０３において行われる符号化処理は、量子化、係数ビットモデリング、エントロピー符号化の全ての符号化工程を行う処理である。符号化処理された画像は、一旦ＲＡＭ１０２に書き込まれて、ＨＤＤ１０３上の所定の領域に書き込まれる。
【００７１】
前述したように、コードブロックは、プリシンクトの矩形領域を超えないように切り取られる。即ち、コードブロックのサイズはプリシンクトのサイズを超えないため、本実施形態によれば、コードブロックサイズを変更することなく、プリシンクトサイズを変更することで、消費メモリの増加を抑えることができる。
【００７２】
例えば、コードブロックサイズを６４＊６４で一定の値をとるように設定する場合、入力画像の横方向のサイズが大きい場合は、例えば、３２＊３２のプリシンクトサイズによってプリシンクト分割を行うと、プリシンクトサイズを超えるサブバンド係数を保持しておく必要はないので、コードブロックの縦方向のサイズを小さくした場合と同様の係数バッファ量の削減効果が得られる。
【００７３】
ここで、プリシンクト分割を行う際には、図１９に示すような制約が設けられる。図１９によれば、プリシンクトは、（０,０）を原点として水平方向に２のPPxべき乗、垂直方向に２のPPyべき乗の大きさで分割される。また、プリシンクト分割は各分解レベルに対して独立にプリシンクトサイズを決定することができる。全分解レベルにおいて同じプリシンクトサイズを用いてもよいし、特定の分解レベルのみをプリシンクト分割するということであってもよい。
【００７４】
分解レベルが０である、即ち最大解像度を有するサブバンドは、１ラインに含まれる係数の数が最も多いので、分解レベル０のサブバンドを３２＊３２などの適切なサイズでプリシンクト分割することが省メモリには最も効果的となる。
【００７５】
本実施形態によれば、コードブロックサイズを一定に保ったままで、コードブロックサイズを変更することなく、プリシンクトサイズを決定することで消費メモリの増加を抑えた画像符号化処理を行うことができる。
【００７６】
以上、本発明について実施形態を用いて説明したが、前述した実施形態に多様な変更または改良を加えることができる。
【符号の説明】
【００７７】
１００  ＰＣ
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＨＤＤ
１０４  システムバス
２０１、３０１  画像入力部
２０２  コードブロックサイズ決定部
２０３、３０３  画像符号化部
３０２  プリシンクトサイズ決定部
【先行技術文献】
【特許文献】
【００７８】
【特許文献１】特開２００５−２９５５４０号公報
【特許文献２】特開２０００−２９９８６３号公報
【非特許文献】
【００７９】
【非特許文献１】ＩＳＯ／ＩＥＣ  １５４４４−１，ＩＴＵ−Ｔ  Ｔ．８００  ＪＰＥＧ  ２０００
【非特許文献２】Ｃｈｒｉｓｔｏｓ  Ｃｈｒｙｓａｆｉｓ，Ａｎｔｏｎｉｏ  Ｏｒｔｅｇａ著  「Ｌｉｎｅ  Ｂａｓｅｄ，  Ｒｅｄｕｃｅｄ  Ｍｅｍｏｒｙ,  Ｗａｖｅｌｅｔ  Ｉｍａｇｅ  Ｃｏｍｐｒｅｓｓｉｏｎ」，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ，ｐ３９８−４０７，  １９９８年
【図１】
2010213059.tif 000004
【図２】
2010213059.tif 000005
【図３】
2010213059.tif 000006
【図４】
2010213059.tif 000007
【図５】
2010213059.tif 000008
【図６】
2010213059.tif 000009
【図７】
2010213059.tif 000010
【図８】
2010213059.tif 000011
【図９】
2010213059.tif 000012
【図１０】
2010213059.tif 000013
【図１１】
2010213059.tif 000014
【図１２】
2010213059.tif 000015
【図１３】
2010213059.tif 000016
【図１４】
2010213059.tif 000017
【図１５】
2010213059.tif 000018
【図１６】
2010213059.tif 000019
【図１７】
2010213059.tif 000020
【図１８】
2010213059.tif 000021
【図１９】
2010213059.tif 000022