(57)【要約】【課題】分類された独立に処理可能な単位データ毎に複数種類の画像処理を実行する際に、プログラムの処理時間を改善することができる画像処理装置およびプログラムを提供する。【解決手段】分類された独立に処理可能な単位データを順次記憶するための第１の領域を記憶部に確保する第１領域確保手段（Ｓ１）と、単位データに対して実行する複数種類の画像処理に必要な第２の領域を記憶部に確保する第２領域確保手段（Ｓ２）と、第１の領域に一の単位データを記憶する記憶手段（Ｓ３）と、第１の領域に記憶された一の単位データに対して第２の領域を用いて複数種類の画像処理を順次実行する画像処理手段（Ｓ４〜Ｓ７）と、全ての単位データに対して画像処理手段による処理が終了したと判断した場合には（Ｓ８のＹｅｓ）、第１の領域および第２の領域を開放する開放手段（Ｓ９、１０）と、を備える。【選択図】        図１０
2008271193.tif 000002
【特許請求の範囲】
【請求項１】
分類された独立に処理可能な単位データを順次記憶するための第１の領域を記憶部に確保する第１領域確保手段と、
前記単位データに対して実行する複数種類の画像処理に必要な第２の領域を記憶部に確保する第２領域確保手段と、
前記第１の領域に一の前記単位データを記憶する記憶手段と、
前記第１の領域に記憶された一の前記単位データに対して前記第２の領域を用いて前記複数種類の画像処理を順次実行する画像処理手段と、
全ての前記単位データに対して前記画像処理手段による処理が終了したと判断した場合には、前記第１の領域および前記第２の領域を開放する開放手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
分類された独立に処理可能な単位データを順次記憶するための第１の領域を記憶部に確保する第１領域確保手段と、
前記単位データに対して実行する複数種類の画像処理に必要な第２の領域を前記単位データ毎に記憶部に順次確保する第２領域確保手段と、
前記第１の領域に一の前記単位データを記憶する記憶手段と、
前記第１の領域に記憶された一の前記単位データに対して前記第２の領域を用いて前記複数種類の画像処理を順次実行する画像処理手段と、
全ての前記単位データに対して前記画像処理手段による処理が終了したと判断した場合には、前記第１の領域および前記第２の領域を開放する開放手段と、
を備えることを特徴とする画像処理装置。
【請求項３】
前記第２領域確保手段は、既に確保されている前記第２の領域のサイズと、処理対象となる前記単位データに必要となる前記第２の領域のサイズとを比較し、必要となる前記第２の領域のサイズの方が小さい場合は既に確保されている前記第２の領域のサイズをそのまま使用し、必要となる前記第２の領域のサイズの方が大きい場合は前記第２の領域を開放および再確保することによって十分なサイズの前記第２の領域のサイズを確保する、
ことを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記第２領域確保手段は、処理対象となる前記単位データに必要となる前記第２の領域のサイズの方が既に確保されている前記第２の領域のサイズより大きい場合は、既に確保されている前記第２の領域を部分的に開放した後、処理対象となる前記単位データに必要となる前記第２の領域のサイズを確保する、
ことを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記第２領域確保手段は、既に確保されている前記第２の領域を部分的に開放する際に、開放される部分のみを初期化する、
ことを特徴とする請求項３または４記載の画像処理装置。
【請求項６】
前記単位データは、画像データの色成分、分割領域、周波数帯域、有効ビットプレーンのいずれかである、
ことを特徴とする請求項１ないし５のいずれか一記載の画像処理装置。
【請求項７】
前記単位データは、画像データの色成分、分割領域、周波数帯域、有効ビットプレーンのいずれかにかかる符号列データである、
ことを特徴とする請求項１ないし５のいずれか一記載の画像処理装置。
【請求項８】
前記単位データに対する前記複数種類の画像処理は、ＪＰＥＧ２０００（ＩＳ１５４４４−１）の圧縮または伸長アルゴリズムに準拠したものである、
ことを特徴とする請求項１ないし７のいずれか一記載の画像処理装置。
【請求項９】
分類された独立に処理可能な単位データを順次記憶するための第１の領域を記憶部に確保する第１領域確保機能と、
前記単位データに対して実行する複数種類の画像処理に必要な第２の領域を記憶部に確保する第２領域確保機能と、
前記第１の領域に一の前記単位データを記憶する記憶機能と、
前記第１の領域に記憶された一の前記単位データに対して前記第２の領域を用いて前記複数種類の画像処理を順次実行する画像処理機能と、
全ての前記単位データに対して前記画像処理機能による処理が終了したと判断した場合には、前記第１の領域および前記第２の領域を開放する開放機能と、
をコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
分類された独立に処理可能な単位データを順次記憶するための第１の領域を記憶部に確保する第１領域確保機能と、
前記単位データに対して実行する複数種類の画像処理に必要な第２の領域を前記単位データ毎に記憶部に順次確保する第２領域確保機能と、
前記第１の領域に一の前記単位データを記憶する記憶機能と、
前記第１の領域に記憶された一の前記単位データに対して前記第２の領域を用いて前記複数種類の画像処理を順次実行する画像処理機能と、
全ての前記単位データに対して前記画像処理機能による処理が終了したと判断した場合には、前記第１の領域および前記第２の領域を開放する開放機能と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置およびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、印刷時の使用メモリ量を節約するために、画像情報を多値データと２値データとに分離し、２値データはビットマップメモリに記憶し、多値データは階調情報メモリに記憶するという内容の発明が記載されている。
【０００３】
一方、画像の圧縮・伸長処理を行う装置においては、処理対象の画像データのサイズなどから予想される最大サイズのメモリスペースを予め確保する方法や、一定サイズのメモリスペースを予め確保し、処理中にメモリスペースが不足した時にメモリスペースを追加する方法が一般的である。
【０００４】
また、ＪＰＥＧ２０００（ＩＳ１５４４４−１）のような圧縮・伸長アルゴリズムでは、圧縮処理又は伸長処理は複数の処理工程からなっており、同一の処理工程を繰り返し実行する場合には、処理工程の実行の前後でメモリスペースの確保／開放を繰り返す方法が一般的である。
【０００５】
【特許文献１】特開平８−１３０６４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、画像の圧縮・伸長処理において必要とされるメモリスペースは、サイズが大きく、また、メモリは一般に他のアプリケーションとも共用していることなどから、メモリスペースの確保／開放処理は、圧縮・伸長処理の際に行われる演算処理に比べ、非常に時間がかかるものとなっている。
【０００７】
したがって、ＪＰＥＧ２０００のような圧縮・伸長アルゴリズムにおいて、同一の処理工程の繰り返し回数が多い場合には、メモリスペースの確保／開放処理にかかる時間が処理時間に占める比率が非常に大きくなるので、プログラムの処理時間に影響を及ぼす結果となっている。
【０００８】
なお、特許文献１に記載の技術によれば、メモリの使用量を改善することによりプログラムの高速化を図ることができるが、ＪＰＥＧ２０００のような圧縮・伸長アルゴリズムにおいて、同一の処理工程の繰り返し回数が多い場合の処理は考慮されていない。
【０００９】
本発明は、上記に鑑みてなされたものであって、分類された独立に処理可能な単位データ毎に複数種類の画像処理を実行する際に、プログラムの処理時間を改善することができる画像処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、分類された独立に処理可能な単位データを順次記憶するための第１の領域を記憶部に確保する第１領域確保手段と、前記単位データに対して実行する前記複数種類の画像処理に必要な第２の領域を記憶部に確保する第２領域確保手段と、前記第１の領域に一の前記単位データを記憶する記憶手段と、前記第１の領域に記憶された一の前記単位データに対して前記第２の領域を用いて前記複数種類の画像処理を順次実行する画像処理手段と、全ての前記単位データに対して前記画像処理手段による処理が終了したと判断した場合には、前記第１の領域および前記第２の領域を開放する開放手段と、を備える。
【００１１】
また、請求項２にかかる発明は、分類された独立に処理可能な単位データを順次記憶するための第１の領域を記憶部に確保する第１領域確保手段と、前記単位データに対して実行する複数種類の画像処理に必要な第２の領域を前記単位データ毎に記憶部に順次確保する第２領域確保手段と、前記第１の領域に一の前記単位データを記憶する記憶手段と、前記第１の領域に記憶された一の前記単位データに対して前記第２の領域を用いて前記複数種類の画像処理を順次実行する画像処理手段と、全ての前記単位データに対して前記画像処理手段による処理が終了したと判断した場合には、前記第１の領域および前記第２の領域を開放する開放手段と、を備える。
【００１２】
また、請求項３にかかる発明は、請求項２記載の画像処理装置において、前記第２領域確保手段は、既に確保されている前記第２の領域のサイズと、処理対象となる前記単位データに必要となる前記第２の領域のサイズとを比較し、必要となる前記第２の領域のサイズの方が小さい場合は既に確保されている前記第２の領域のサイズをそのまま使用し、必要となる前記第２の領域のサイズの方が大きい場合は前記第２の領域を開放および再確保することによって十分なサイズの前記第２の領域のサイズを確保する。
【００１３】
また、請求項４にかかる発明は、請求項３記載の画像処理装置において、前記第２領域確保手段は、処理対象となる前記単位データに必要となる前記第２の領域のサイズの方が既に確保されている前記第２の領域のサイズより大きい場合は、既に確保されている前記第２の領域を部分的に開放した後、処理対象となる前記単位データに必要となる前記第２の領域のサイズを確保する。
【００１４】
また、請求項５にかかる発明は、請求項３または４記載の画像処理装置において、前記第２領域確保手段は、既に確保されている前記第２の領域を部分的に開放する際に、開放される部分のみを初期化する。
【００１５】
また、請求項６にかかる発明は、請求項１ないし５のいずれか一記載の画像処理装置において、前記単位データは、画像データの色成分、分割領域、周波数帯域、有効ビットプレーンのいずれかである。
【００１６】
また、請求項７にかかる発明は、請求項１ないし５のいずれか一記載の画像処理装置において、前記単位データは、画像データの色成分、分割領域、周波数帯域、有効ビットプレーンのいずれかにかかる符号列データである。
【００１７】
また、請求項８にかかる発明は、請求項１ないし７のいずれか一記載の画像処理装置において、前記単位データに対する前記複数種類の画像処理は、ＪＰＥＧ２０００（ＩＳ１５４４４−１）の圧縮または伸長アルゴリズムに準拠したものである。
【００１８】
また、請求項９にかかる発明は、分類された独立に処理可能な単位データを順次記憶するための第１の領域を記憶部に確保する第１領域確保機能と、前記単位データに対して実行する複数種類の画像処理に必要な第２の領域を記憶部に確保する第２領域確保機能と、前記第１の領域に一の前記単位データを記憶する記憶機能と、前記第１の領域に記憶された一の前記単位データに対して前記第２の領域を用いて前記複数種類の画像処理を順次実行する画像処理機能と、全ての前記単位データに対して前記画像処理機能による処理が終了したと判断した場合には、前記第１の領域および前記第２の領域を開放する開放機能と、をコンピュータに実行させる。
【００１９】
また、請求項１０にかかる発明は、分類された独立に処理可能な単位データを順次記憶するための第１の領域を記憶部に確保する第１領域確保機能と、前記単位データに対して実行する複数種類の画像処理に必要な第２の領域を前記単位データ毎に記憶部に順次確保する第２領域確保機能と、前記第１の領域に一の前記単位データを記憶する記憶機能と、前記第１の領域に記憶された一の前記単位データに対して前記第２の領域を用いて前記複数種類の画像処理を順次実行する画像処理機能と、全ての前記単位データに対して前記画像処理機能による処理が終了したと判断した場合には、前記第１の領域および前記第２の領域を開放する開放機能と、を前記コンピュータに実行させる。
【発明の効果】
【００２０】
本発明によれば、分類された独立に処理可能な単位データに対して実行する複数種類の画像処理の際に、単位データを順次記憶するための第１の領域と、単位データに対して実行する複数種類の画像処理に必要な第２の領域とについての確保および開放の頻度を減らすことにより、プログラムの処理時間を改善することができる、という効果を奏する。
【００２１】
さらに、分類された独立に処理可能な単位データ（色成分、領域、周波数帯域、有効ビットプレーンなど）によって記憶部の使用量を制御可能なため、効率的に、第１の領域および第２の領域メモリの確保・開放にかかる時間を省略でき、高速に画像処理を実行することができる、という効果を奏する。
【発明を実施するための最良の形態】
【００２２】
最初に、本発明の前提となる「階層符号化アルゴリズム」及び「離散ウェーブレット変換に基づく符号化・復号化アルゴリズム」の概要について説明する。なお、「離散ウェーブレット変換に基づく符号化・復号化アルゴリズム」の代表例が「ＪＰＥＧ２０００アルゴリズム」である。
【００２３】
図１は、離散ウェーブレット変換に基づく符号化方式の基本となる階層符号化アルゴリズムを実現する画像処理部１００の機能ブロック図である。この画像処理部１００は、画像圧縮手段として機能するものであって、色空間変換・逆変換部１０１、２次元ウェーブレット変換・逆変換部１０２、量子化・逆量子化部１０３、エントロピー符号化・復号化部１０４、タグ処理部１０５の各機能ブロックにより構成されている。
【００２４】
画像処理部１００が従来のＪＰＥＧアルゴリズムと比較して最も大きく異なる点の一つは変換方式である。ＪＰＥＧでは離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）を用いているのに対し、この階層符号化アルゴリズムでは、２次元ウェーブレット変換・逆変換部１０２において、離散ウェーブレット変換（ＤＷＴ：Discrete Wavelet Transform）を用いている。ＤＷＴはＤＣＴに比べて、高圧縮領域における画質が良いという長所を有し、この点が、ＪＰＥＧの後継アルゴリズムであるＪＰＥＧ２０００でＤＷＴが採用された大きな理由の一つとなっている。
【００２５】
また、他の大きな相違点は、この階層符号化アルゴリズムでは、システムの最終段に符号形成を行うために、タグ処理部１０５の機能ブロックが追加されていることである。このタグ処理部１０５で、画像の圧縮動作時には圧縮データが符号列データとして生成され、伸長動作時には伸長に必要な符号列データの解釈が行われる。そして、符号列データによって、ＪＰＥＧ２０００は様々な便利な機能を実現できるようになった。例えば、ブロック・ベースでのＤＷＴにおけるオクターブ分割に対応した任意の階層（デコンポジションレベル）で、静止画像の圧縮伸長動作を自由に停止させることができるようになる（後述する図３参照）。また、一つのファイルから低解像度画像（縮小画像）を取り出したり、画像の一部（タイリング画像）を取り出すことができるようになる。
【００２６】
原画像の入出力部分には、色空間変換・逆変換部１０１が接続される場合が多い。例えば、原色系のＲ（赤）／Ｇ（緑）／Ｂ（青）の各コンポーネントからなるＲＧＢ表色系や、補色系のＹ（黄）／Ｍ（マゼンタ）／Ｃ（シアン）の各コンポーネントからなるＹＭＣ表色系から、ＹＵＶあるいはＹＣｂＣｒ表色系への変換又は逆変換を行う部分がこれに相当する。また、原画像データがＲＧＢデータなどの場合には、ダイナミックレンジを半分に減じるためのＤＣレベルシフトも行われる。
【００２７】
次に、ＪＰＥＧ２０００アルゴリズムについて説明する。カラー画像は、一般に、図２に示すように、原画像の各コンポーネント１１１（ここではＲＧＢ原色系）が、矩形をした領域によって分割される（分割数≧１）。この分割された矩形領域は、一般にブロックあるいはタイルと呼ばれているものであるが、ＪＰＥＧ２０００では、タイルと呼ぶことが一般的であるため、以下、このような分割された矩形領域をタイルと記述することにする（図２の例では、各コンポーネント１１１が縦横４×４、合計１６個の矩形のタイル１１２に分割されている）。このような個々のタイル１１２（図２の例で、Ｒ００，Ｒ０１，…，Ｒ１５／Ｇ００，Ｇ０１，…，Ｇ１５／Ｂ００，Ｂ０１，…，Ｂ１５）が、画像データの圧縮伸長プロセスを実行する際の基本単位となる。従って、画像データの圧縮伸長動作は、コンポーネント毎、また、タイル１１２毎に、独立に行われる。
【００２８】
画像データの符号化時には、各コンポーネント１１１の各タイル１１２のデータが、図１の色空間変換・逆変換部１０１に入力され、色空間変換を施された後、２次元ウェーブレット変換・逆変換部１０２で２次元ウェーブレット変換（順変換）が施されて、周波数帯に空間分割される。
【００２９】
図３には、デコンポジションレベル数が３の場合の、各デコンポジションレベルにおけるサブバンドを示している。即ち、原画像のタイル分割によって得られたタイル原画像（０ＬＬ）（デコンポジションレベル０）に対して、２次元ウェーブレット変換を施し、デコンポジションレベル１に示すサブバンド（１ＬＬ，１ＨＬ，１ＬＨ，１ＨＨ）を分離する。そして引き続き、この階層における低周波成分１ＬＬに対して、２次元ウェーブレット変換を施し、デコンポジションレベル２に示すサブバンド（２ＬＬ，２ＨＬ，２ＬＨ，２ＨＨ）を分離する。順次同様に、低周波成分２ＬＬに対しても、２次元ウェーブレット変換を施し、デコンポジションレベル３に示すサブバンド（３ＬＬ，３ＨＬ，３ＬＨ，３ＨＨ）を分離する。図３では、各デコンポジションレベルにおいて符号化の対象となるサブバンドを、網掛けで表してある。例えば、デコンポジションレベル数を３としたとき、網掛けで示したサブバンド（３ＨＬ，３ＬＨ，３ＨＨ，２ＨＬ，２ＬＨ，２ＨＨ，１ＨＬ，１ＬＨ，１ＨＨ）が符号化対象となり、３ＬＬサブバンドは符号化されない。
【００３０】
次いで、指定した符号化の順番で符号化の対象となるビットが定められ、図１に示す量子化・逆量子化部１０３で対象ビット周辺のビットからコンテキストが生成される。
【００３１】
この量子化の処理が終わったウェーブレット係数は、個々のサブバンド毎に、プレシンクトと呼ばれる重複しない矩形に分割される。これは、インプリメンテーションでメモリを効率的に使うために導入されたものである。図４に示したように、１つのプレシンクトは、空間的に一致した３つの矩形領域からなっている。より詳細には、サブバンドの矩形領域で、同じデコンポジションレベルのＨＬ，ＬＨ，ＨＨサブバンドの空間的に同じ位置にある３つの領域の組が１つのプリシンクトとして扱われる。ただし、ＬＬサブバンドでは、１つの領域が１つのプレシンクトとして扱われる。プレシンクトのサイズをサブバンドと同じサイズにすることも可能である。更に、個々のプレシンクトは、重複しない矩形のコード・ブロックに分けられる。コード・ブロックは、エントロピー・コーディングを行う際の基本単位となる。図４にデコンポジションレベル１におけるプリシンクトと、そのコード・ブロックを例示した。図４中のプレシンクトと記された空間的に同じ位置にある３つの領域の組が、１つのプレシンクトとして扱われる。
【００３２】
すなわち、画像、タイル、サブバンド、プレシンクト、コード・ブロックの間には、
画像≧タイル＞サブバンド≧プレシンクト≧コード・ブロック
の大小関係がある。
【００３３】
ウェーブレット変換後の係数値は、そのまま量子化し符号化することも可能であるが、ＪＰＥＧ２０００では符号化効率を上げるために、係数値を「ビットプレーン」単位に分解し、画素あるいはコード・ブロック毎に「ビットプレーン」に順位付けを行うことができる。
【００３４】
ここで、図５はビットプレーンに順位付けする手順の一例を示す説明図である。図５に示すように、この例は、原画像（３２×３２画素）を１６×１６画素のタイル４つで分割した場合で、デコンポジションレベル１のプレシンクトとコード・ブロックの大きさは、各々８×８画素と４×４画素としている。プレシンクトとコード・ブロックの番号は、ラスター順に付けられており、この例では、プレシンクトが番号０から３まで、コード・ブロックが番号０から３まで割り当てられている。タイル境界外に対する画素拡張にはミラーリング法を使い、可逆（５，３）フィルタでウェーブレット変換を行い、デコンポジションレベル１のウェーブレット係数値を求めている。
【００３５】
また、タイル０／プレシンクト３／コード・ブロック３について、代表的な「レイヤ」構成の概念の一例を示す説明図も図５に併せて示す。変換後のコード・ブロックは、サブバンド（１ＬＬ，１ＨＬ，１ＬＨ，１ＨＨ）に分割され、各サブバンドにはウェーブレット係数値が割り当てられている。
【００３６】
レイヤの構造は、ウェーブレット係数値を横方向（ビットプレーン方向）から見ると理解し易い。１つのレイヤは任意の数のビットプレーンから構成される。この例では、レイヤ０，１，２，３は、各々、１，３，１，３のビットプレーンから成っている。そして、ＬＳＢ（Least Significant Bit：最下位ビット）に近いビットプレーンを含むレイヤ程、先に量子化の対象となり、逆に、ＭＳＢ（Most Significant Bit：最上位ビット）に近いレイヤは最後まで量子化されずに残ることになる。ＬＳＢに近いレイヤから破棄する方法はトランケーションと呼ばれ、量子化率を細かく制御することが可能である。
【００３７】
図１に示すエントロピー符号化・復号化部１０４では、コンテキストと対象ビットから確率推定によって、各コンポーネント１１１のタイル１１２に対する符号化を行う。こうして、原画像の全てのコンポーネント１１１について、タイル１１２単位で符号化処理が行われる。
【００３８】
最後に、タグ処理部１０５は、エントロピー符号化・復号化部１０４からの全符号化データを１本の符号列データに結合するとともに、それにタグを付加する処理を行う。より詳細には、タグ処理部１０５は、不要なエントロピー符号を破棄し、必要なエントロピー符号をまとめてパケットを生成し、パケットを所定の順番に並べるとともに必要なタグ及びタグ情報を付加することにより、符号列データ（コードストリーム）を生成する。プレシンクトに含まれる全てのコード・ブロックの符号の一部（例えば最上位から３ビット目までの３枚のビットプレーンの符号）を取り出して集めたものがパケットである。符号が空（から）のパケットも許される。コード・ブロックの符号をまとめてパケットを所定の順序に並べたものは、“bit stream”と呼ばれる。
【００３９】
図６には、この符号列データの１フレーム分の概略構成を示している。この符号列データの先頭と各タイルの符号データ（bit stream）の先頭にはヘッダ（メインヘッダ（Main header）、タイル境界位置情報等であるタイルパートヘッダ（tile part header））と呼ばれるタグ情報が付加され、その後に、各タイルの符号化データが続く。なお、メインヘッダ（Main header）には、符号化パラメータや量子化パラメータが記述されている。そして、符号列データの終端には、再びタグ（end of codestream）が置かれる。
【００４０】
また、図７は、符号化されたウェーブレット係数値が収容されたパケットをサブバンド毎に表わしたコードストリーム構造を示すものである。図７に示すように、タイルによる分割処理を行っても、あるいはタイルによる分割処理を行わなくても、同様のパケット列構造を持つことになる。
【００４１】
一方、符号化データの復号化時には、画像データの符号化時とは逆に、各コンポーネント１１１の各タイル１１２の符号列データから画像データを生成する。この場合、タグ処理部１０５は、外部より入力した符号列データに付加されたタグ情報を解釈し、符号列データを各コンポーネント１１１の各タイル１１２の符号列データに分解し、その各コンポーネント１１１の各タイル１１２の符号列データ毎に復号化処理（伸長処理）を行う。このとき、符号列データ内のタグ情報に基づく順番で復号化の対象となるビットの位置が定められるとともに、量子化・逆量子化部１０３で、その対象ビット位置の周辺ビット（既に復号化を終えている）の並びからコンテキストが生成される。エントロピー符号化・復号化部１０４で、このコンテキストと符号列データから確率推定によって復号化を行い、対象ビットを生成し、それを対象ビットの位置に書き込む。このようにして復号化されたデータは周波数帯域毎に空間分割されているため、これを２次元ウェーブレット変換・逆変換部１０２で２次元ウェーブレット逆変換を行うことにより、画像データの各コンポーネントの各タイルが復元される。復元されたデータは色空間変換・逆変換部１０１によって元の表色系の画像データに変換される。
【００４２】
以上が、「離散ウェーブレット変換に基づく符号化・復号化アルゴリズム」の概要である。
【００４３】
［第１の実施の形態］
続いて、本発明の第１の実施の形態について詳細に説明する。ここで、図８は本実施の形態の画像処理装置１のハードウェア構成を示すブロック図である。画像処理装置１は、例えばパーソナルコンピュータやワークステーションを主体に構成されている。図８に示すように、このような画像処理装置１は、コンピュータの主要部であって各部を集中的に制御するＣＰＵ（Central Processing Unit）２を備えている。このＣＰＵ２には、ＢＩＯＳなどを記憶した読出し専用メモリであるＲＯＭ（Read Only Memory）３と、各種データを書換え可能に記憶する記憶部であるＲＡＭ（Random Access Memory）４とがバス５で接続されている。
【００４４】
さらにバス５には、各種のプログラム等を格納するＨＤＤ（Hard Disk Drive）６と、配布されたプログラムであるコンピュータソフトウェアを読み取るための機構としてＣＤ（Compact Disc）−ＲＯＭ７を読み取るＣＤ−ＲＯＭドライブ８と、ネットワーク９を介して外部の他のコンピュータ等と通信により情報を伝達するための通信制御装置１０と、ＣＰＵ２に対する各種命令や情報入力するためのキーボードやマウスなどの入力装置１１と、処理経過や結果等を表示するＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）などの表示装置１２とが、図示しないＩ／Ｏを介して接続されている。
【００４５】
ＲＡＭ４は、各種データを書換え可能に記憶する性質を有していることから、ＣＰＵ２の作業エリアとして機能してバッファ等の役割を果たす。
【００４６】
図８に示すＣＤ−ＲＯＭ７は、この発明の記憶媒体を実施するものであり、ＯＳ（Operating System）や各種のプログラムが記憶されている。ＣＰＵ２は、ＣＤ−ＲＯＭ７に記憶されているプログラムをＣＤ−ＲＯＭドライブ８で読み取り、ＨＤＤ６にインストールする。
【００４７】
なお、記憶媒体としては、ＣＤ−ＲＯＭ７のみならず、ＤＶＤなどの各種の光ディスク、各種光磁気ディスク、フレキシブルディスクなどの各種磁気ディスク等、半導体メモリ等の各種方式のメディアを用いることができる。また、通信制御装置１０を介してインターネットなどからプログラムをダウンロードし、ＨＤＤ６にインストールするようにしてもよい。この場合に、送信側のサーバでプログラムを記憶している記憶装置も、この発明の記憶媒体である。なお、プログラムは、所定のＯＳ（Operating System）上で動作するものであってもよいし、その場合に後述の各種処理の一部の実行をＯＳに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやＯＳなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【００４８】
このシステム全体の動作を制御するＣＰＵ２は、このシステムの主記憶として使用されるＨＤＤ６上にロードされたプログラムに基づいて各種処理を実行する。
【００４９】
次に、画像処理装置１のＨＤＤ６にインストールされている各種のプログラムがＣＰＵ２に実行させる機能のうち、本実施の形態の画像処理装置１が備える特長的な機能について説明する。
【００５０】
図９は、画像処理装置１の機能構成を示すブロック図である。図９に示すように、画像処理装置１は、ＪＰＥＧ２０００の圧縮・伸長のための複数種類の画像処理を実行する図１で説明した画像処理部１００、ＲＡＭ４のメモリスペースを管理するメモリ管理部３１、データ入力部３２、データ出力部３３、画像処理装置１内の処理シーケンスなどを制御するための制御部３４を備える。
【００５１】
メモリ管理部３１は、画像処理部１００の画像の圧縮・伸長処理において必要とされるメモリスペースをＲＡＭ４に確保する。
【００５２】
データ入力部３２は、圧縮すべき画像データ又は伸長すべき符号化データを入力する。
【００５３】
データ出力部３３は、圧縮された符号化データ又は伸長された画像データを出力する。
【００５４】
制御部３４は、画像処理装置１内の処理シーケンスなどを制御する。具体的には、制御部３４は、画像処理部１００における各種処理工程における処理結果をＲＡＭ４に記録する。
【００５５】
次に、制御部３４の制御による圧縮処理時の動作について、図１０のフローチャートを参照して説明する。
【００５６】
図１０に示すように、制御部３４は、メモリ管理部３１を制御することにより、分類された独立に処理可能な単位データ（ここでは、タイルデータ）を順次記憶するためのメモリスペース（第１の領域）をＲＡＭ４上に確保する（ステップＳ１：第１領域確保手段）。なお、このメモリスペースのサイズの算出に必要なタイルのサイズ（画素数）、ビット深さ、コンポーネント数などの圧縮条件は、例えば画像処理装置１が構築されるコンピュータ上で動作するアプリケーションプログラムより通知される。例えば、アプリケーションプログラムより通知されたタイルサイズが（Ｔｘ × Ｔｙ）、ビット深さが８ビット（１ｂｙｔｅ）、コンポーネント数がＣであるコンポーネントの場合、必要なメモリスペース（ＭＳＩＺＥ）は、
ＭＳＩＺＥ＝（Ｔｘ × Ｔｙ）×２×Ｃ
と、計算される。ここで、必要なメモリスペースの計算の際に、ビット深さを“２”としたのは、画像データが１ｂｙｔｅの場合、ウェーブレット変換などの計算では、余分に数ビット必要となるからである。
【００５７】
続いて、制御部３４は、メモリ管理部３１を制御することにより、タイルデータに対して実行する複数種類の画像処理に必要なタイル処理用メモリスペース（第２の領域）をＲＡＭ４上に確保する（ステップＳ２：第２領域確保手段）。このメモリスペースのサイズ算出に必要な圧縮条件（コンポーネント、デコンポジションレベル、プレシンクト、レイヤ、コードブロックサイズ等）も、ステップＳ１と同様にアプリケーションプログラムより通知される。例えば、アプリケーションプログラムより通知された、コンポーネント数がＣ、デコンポジションレベルがＤ、プレシンクトサイズが（Ｐｘ、Ｐｙ）、レイヤがＬ、コードブロックサイズが（Ｃｘ，Ｃｙ）の場合、各デコンポジションレベルごとに、プレシンクトサイズ（ＰｘＤ、ＰｙＤ）、コードブロックサイズ（ＣｘＤ，ＣｙＤ）が計算される。計算に必要なメモリ量Ｍは、コード・ブロック単位で処理する場合は、
Ｍ＝（ＣｘＤ × ＣｙＤ）×２×Ｃ
と、計算される。また、プレシンクト単位で処理する場合は、計算に必要なメモリ量Ｍは、
Ｍ＝（ＰｘＤ × ＰｙＤ）×２×Ｃ
と、計算される。ここで、必要なメモリ量の計算の際に、ビット深さを“２”としたのは、画像データが１ｂｙｔｅの場合、ウェーブレット変換などの計算では、余分に数ビット必要となるからである。
【００５８】
続いて、制御部３４は、データ入力部３２を制御することにより、例えばＨＤＤ６などから１つのタイルのデータを入力させ、入力されたデータをＲＡＭ４上にステップＳ１で割り当てられたメモリスペース（第１の領域）に記憶する（ステップＳ３：記憶手段）。
【００５９】
続くステップＳ４では、制御部３４は、画像処理部１００（色空間変換・逆変換部１０１）を制御することにより、タイルデータに対し色空間変換（ＩＣＴ）を実行し、生成されたＹ，Ｃｂ，Ｃｒの各コンポーネントを、それぞれに割り当てられたメモリスペースに記憶する。具体的には、制御部３４は、ＲＡＭ４からタイルデータを読み出し、ＲＡＭ４から読み出されたタイルデータについての画像処理部１００の色空間変換・逆変換部１０１における色変換結果ないしＤＣレベルシフト結果を、ＲＡＭ４に記録する。この場合、メモリ管理部３１は、色成分ごとの記録位置を管理するようにしてもよい。
【００６０】
続くステップＳ５では、制御部３４は、画像処理部１００（２次元ウェーブレット変換・逆変換部１０２）を制御することにより、Ｙ，Ｃｂ，Ｃｒの各コンポーネントに対して２次元ウェーブレット変換を行い、生成された各サブバンド係数をそれぞれに割り当てられたメモリスペースに記憶する。具体的には、制御部３４は、ＲＡＭ４から色空間変換後のデータを読み出し、ＲＡＭ４から読み出された色空間変換後のデータについての２次元ウェーブレット変換・逆変換部１０２におけるウェーブレット変換により生成された各サブバンド係数を、ＲＡＭ４に記録する。この場合、メモリ管理部３１は、各サブバンドの記録位置を管理するようにしてもよい。
【００６１】
続くステップＳ６では、制御部３４は、画像処理部１００（量子化・逆量子化部１０３）を制御することにより、サブバンド毎に線形量子化を行い、量子化後の各サブバンド係数をそれぞれに割り当てられたメモリスペースに記憶する。具体的には、制御部３４は、ＲＡＭ４からウェーブレット変換後のデータを読み出し、ＲＡＭ４から読み出されたウェーブレット変換後のデータについて量子化・逆量子化部１０３で線形量子化した量子化後の各サブバンド係数を、ＲＡＭ４に記録する。
【００６２】
続くステップＳ７では、制御部３４は、画像処理部１００（エントロピー符号化・復号化部１０４）を制御することにより、量子化後の各サブバンド係数に対してエントロピー符号化を行い、エントロピー符号化した符号化結果をそれぞれに割り当てられたメモリスペースに記憶する。具体的には、制御部３４は、ＲＡＭ４から量子化後の各サブバンド係数を読み出し、ＲＡＭ４から読み出された量子化後の各サブバンド係数についてエントロピー符号化・復号化部１０４でエントロピー符号化した符号化結果を、ＲＡＭ４に記録する。この場合、メモリ管理部３１は、各パケットの記録位置を管理するようにしてもよい。
【００６３】
上述したステップＳ３〜Ｓ７の処理（画像処理手段）は、全てのタイルデータについての圧縮処理が終了するまで（ステップＳ８のＮｏ）、繰り返される。
【００６４】
全てのタイルデータについてステップＳ３〜Ｓ７の圧縮処理が終了した場合には（ステップＳ８のＮｏ）、制御部３４は、メモリ管理部３１を制御することにより、タイルデータ用にＲＡＭ４に割り当てたメモリスペースを開放するとともに（ステップＳ９：開放手段）、タイル処理用にＲＡＭ４に割り当てたメモリスペースを開放する（ステップＳ１０：開放手段）。
【００６５】
次いで、制御部３４は、画像処理部１００（タグ処理部１０５）を制御することにより、符号列データ（コードストリーム）を生成する符号形成処理を行い、生成された符号列データ（コードストリーム）をＲＡＭ４に記憶する（ステップＳ１１）。
【００６６】
最後に、制御部３４は、データ出力部３３を制御することにより、生成された符号列データ（コードストリーム）をＲＡＭ４から読み出して出力する（ステップＳ１２）。
【００６７】
次に、制御部３４の制御による伸長処理時の動作について、図１１のフローチャートを参照して説明する。
【００６８】
図１１に示すように、制御部３４は、メモリ管理部３１を制御することにより、分類された独立に処理可能な単位データである符号列データ（コードストリーム）の記憶のために、メモリスペースをＲＡＭ４上に確保する（ステップＳ２１：第１領域確保手段）。このメモリスペースのサイズは、予め定めておいてもよいし、例えばアプリケーションプログラムから指定するようにしてもよい。
【００６９】
続いて、制御部３４は、データ入力部３２を制御することにより、符号列データ（コードストリーム）を入力させ、入力された符号列データ（コードストリーム）をＲＡＭ４上にステップＳ２１で割り当てられたメモリスペース（第１の領域）に記憶する（ステップＳ２２：記憶手段）。この時に、制御部３４は、画像処理部１００（タグ処理部１０５）を制御することにより、符号列データ（コードストリーム）のヘッダ情報を解析する（ステップＳ２３）。より詳細には、タグ処理部１０５は、２次元ウェーブレット変換の種類・回数、色空間変換の種類、原画像のコンポーネント数、サイズ、ビット深さ、タイルサイズなどのメモリスペースの割り当てに必要な情報を解析し、解析情報をメモリ管理部３１に渡す。
【００７０】
続いて、制御部３４は、メモリ管理部３１を制御することにより、ステップＳ２３で解析された解析情報を元に、符号列データに対して実行する複数種類の画像処理に必要なメモリスペース（第２の領域）をＲＡＭ４上に確保する（ステップＳ２４：第２領域確保手段）。
【００７１】
続くステップＳ２５では、制御部３４は、画像処理部１００（エントロピー符号化・復号化部１０４）を制御することにより、ステップＳ２２で入力された符号列データ（コードストリーム）に対してエントロピー復号化を行い、エントロピー復号化した復号化結果を割り当てられたメモリスペースに記憶する。
【００７２】
続くステップＳ２６では、制御部３４は、画像処理部１００（量子化・逆量子化部１０３）を制御することにより、復号化後の各サブバンド係数に逆量子化を行い、逆量子化後の各サブバンド係数をそれぞれに割り当てられたメモリスペースに記憶する。
【００７３】
続くステップＳ２７では、制御部３４は、画像処理部１００（２次元ウェーブレット変換・逆変換部１０２）を制御することにより、逆量子化後の各サブバンド係数に対して２次元逆ウェーブレット変換を行い、生成されたＹ，Ｃｂ，Ｃｒの各コンポーネントをそれぞれに割り当てられたメモリスペースに記憶する。
【００７４】
続くステップＳ２８では、制御部３４は、画像処理部１００（色空間変換・逆変換部１０１）を制御することにより、０ＬＬデータに対し逆色空間変換（及び逆ＤＣレベルシフト）を実行し、元の表色系のタイルデータを生成し、割り当てられたメモリスペースに記憶する。
【００７５】
上述したステップＳ２５〜Ｓ２８の処理（画像処理手段）は、全てのタイルデータについての伸長処理が終了するまで（ステップＳ２９のＮｏ）、繰り返される。
【００７６】
全てのタイルデータについてステップＳ２５〜Ｓ２８の伸長処理が終了した場合には（ステップＳ２９のＮｏ）、制御部３４は、データ出力部３３を制御することにより、伸長画像データを出力する（ステップＳ３０）。
【００７７】
最後に、制御部３４は、メモリ管理部３１を制御することにより、符号用にＲＡＭ４に割り当てたメモリスペースを開放するとともに（ステップＳ３１：開放手段）、タイル処理用にＲＡＭ４に割り当てたメモリスペースを開放する（ステップＳ３２：開放手段）。
【００７８】
このように本実施の形態によれば、分類された独立に処理可能な単位データに対して実行する複数種類の画像処理の際に、単位データを順次記憶するための第１の領域と、単位データに対して実行する複数種類の画像処理に必要な第２の領域とについての確保および開放の頻度を減らすことにより、プログラムの処理時間を改善することができる。
【００７９】
さらに、分類された独立に処理可能な単位データ（例えば、色成分、分割領域、周波数帯域、有効ビットプレーンなど）によって記憶部の使用量を制御可能なため、効率的に、メモリスペース（第１の領域および第２の領域）の確保・開放にかかる時間を省略でき、高速に画像処理を実行することができる。
【００８０】
［第２の実施の形態］
次に、本発明の第２の実施の形態を図１２および図１３に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００８１】
本実施の形態の制御部３４の制御による圧縮処理時の動作について、図１２のフローチャートを参照して説明する。
【００８２】
図１２に示すように、制御部３４は、メモリ管理部３１を制御することにより、分類された独立に処理可能な単位データ（ここでは、タイルデータ）を順次記憶するためのメモリスペース（第１の領域）をＲＡＭ４上に確保する（ステップＳ４１：第１領域確保手段）。なお、このメモリスペースのサイズの算出に必要なタイルのサイズ（画素数）、ビット深さ、コンポーネント数などは、例えば画像処理装置１が構築されるコンピュータ上で動作するアプリケーションプログラムより通知される。
【００８３】
続いて、制御部３４は、メモリ管理部３１を制御することにより、タイルデータに対して実行する複数種類の画像処理に必要なタイル処理用メモリスペース（第２の領域）をＲＡＭ４上に確保する（ステップＳ４２：第２領域確保手段）。このメモリスペースのサイズ算出に必要な圧縮条件（コンポーネント、デコンポジションレベル、プレシンクト、レイヤ、コードブロックサイズ等）も、ステップＳ４１と同様にアプリケーションプログラムより通知される。
【００８４】
ここで、ステップＳ４２におけるメモリスペースの確保処理においては、２つめ以降のタイルデータの場合、すでに確保されているメモリスペースサイズと、処理対象となるデータに必要となるメモリサイズとを比較する。必要となるメモリサイズの方が小さい場合は、そのまま使用し、必要となるメモリサイズの方が大きい場合は、メモリスペースの追加の確保、ないし開放および再確保が行われる。
【００８５】
メモリスペースの開放および再確保の際には、当該処理タイルの処理に不十分であるメモリスペースを部分的に開放し、再確保する方法も考えられる。例えば、すでに確保しているメモリスペース確保量（例えば、コンポーネントＹ、デコンポジションレベル１、プレシンクト０、レイヤ０のメモリスペース確保量）と、処理するタイルの必要なメモリスペース量（例えば、コンポーネントＹ、デコンポジションレベル１、プレシンクト０、レイヤ０の必要なメモリスペース量）を比較し、不十分な場合は、メモリスペースの再確保、ないしは、不足分の再確保などをすればよい。また、メモリスペースを再利用する場合、前のタイル処理でメモリスペースにデータを書き込んでいるが、必要に応じて初期化をする必要がある。この際の初期化処理には必ず上書きが発生し、すでに記録したデータが利用されることがない場合には初期化を必要としない。なお、上書きが発生することが確実でない場合には、初期化を実施する必要がある。この場合も、ある特定のメモリスペース（例えば、コンポーネントＹ、デコンポジションレベル１、プレシンクト０、レイヤ０のメモリスペース）のみを初期化するなどすればよい。
【００８６】
続いて、制御部３４は、データ入力部３２を制御することにより、例えばＨＤＤ６などから１つのタイルのデータを入力させ、入力されたデータをＲＡＭ４上にステップＳ４１で割り当てられたメモリスペース（第１の領域）に記憶する（ステップＳ４３：記憶手段）。
【００８７】
続くステップＳ４４では、制御部３４は、画像処理部１００（色空間変換・逆変換部１０１）を制御することにより、タイルデータに対し色空間変換（ＩＣＴ）を実行し、生成されたＹ，Ｃｂ，Ｃｒの各コンポーネントを、それぞれに割り当てられたメモリスペースに記憶する。具体的には、制御部３４は、ＲＡＭ４からタイルデータを読み出し、ＲＡＭ４から読み出されたタイルデータについての画像処理部１００の色空間変換・逆変換部１０１における色変換結果ないしＤＣレベルシフト結果を、ＲＡＭ４に記録する。この場合、メモリ管理部３１は、色成分ごとの記録位置を管理するようにしてもよい。
【００８８】
続くステップＳ４５では、制御部３４は、画像処理部１００（２次元ウェーブレット変換・逆変換部１０２）を制御することにより、Ｙ，Ｃｂ，Ｃｒの各コンポーネントに対して２次元ウェーブレット変換を行い、生成された各サブバンド係数をそれぞれに割り当てられたメモリスペースに記憶する。具体的には、制御部３４は、ＲＡＭ４から色空間変換後のデータを読み出し、ＲＡＭ４から読み出された色空間変換後のデータについての２次元ウェーブレット変換・逆変換部１０２におけるウェーブレット変換により生成された各サブバンド係数を、ＲＡＭ４に記録する。この場合、メモリ管理部３１は、各サブバンドの記録位置を管理するようにしてもよい。
【００８９】
続くステップＳ４６では、制御部３４は、画像処理部１００（量子化・逆量子化部１０３）を制御することにより、サブバンド毎に線形量子化を行い、量子化後の各サブバンド係数をそれぞれに割り当てられたメモリスペースに記憶する。具体的には、制御部３４は、ＲＡＭ４からウェーブレット変換後のデータを読み出し、ＲＡＭ４から読み出されたウェーブレット変換後のデータについて量子化・逆量子化部１０３で線形量子化した量子化後の各サブバンド係数を、ＲＡＭ４に記録する。
【００９０】
続くステップＳ４７では、制御部３４は、画像処理部１００（エントロピー符号化・復号化部１０４）を制御することにより、量子化後の各サブバンド係数に対してエントロピー符号化を行い、エントロピー符号化した符号化結果をそれぞれに割り当てられたメモリスペースに記憶する。具体的には、制御部３４は、ＲＡＭ４から量子化後の各サブバンド係数を読み出し、ＲＡＭ４から読み出された量子化後の各サブバンド係数についてエントロピー符号化・復号化部１０４でエントロピー符号化した符号化結果を、ＲＡＭ４に記録する。この場合、メモリ管理部３１は、各パケットの記録位置を管理するようにしてもよい。
【００９１】
上述したステップＳ４２〜Ｓ４７の処理（画像処理手段）は、全てのタイルデータについての圧縮処理が終了するまで（ステップＳ４８のＮｏ）、繰り返される。
【００９２】
全てのタイルデータについてステップＳ４２〜Ｓ４７の圧縮処理が終了した場合には（ステップＳ４８のＮｏ）、制御部３４は、メモリ管理部３１を制御することにより、タイルデータ用にＲＡＭ４に割り当てたメモリスペースを開放するとともに（ステップＳ４９：開放手段）、タイル処理用にＲＡＭ４に割り当てたメモリスペースを開放する（ステップＳ５０：開放手段）。
【００９３】
次いで、制御部３４は、画像処理部１００（タグ処理部１０５）を制御することにより、符号列データ（コードストリーム）を生成する符号形成処理を行い、生成された符号列データ（コードストリーム）をＲＡＭ４に記憶する（ステップＳ５１）。
【００９４】
最後に、制御部３４は、データ出力部３３を制御することにより、生成された符号列データ（コードストリーム）をＲＡＭ４から読み出して出力する（ステップＳ５２）。
【００９５】
次に、制御部３４の制御による伸長処理時の動作について、図１３のフローチャートを参照して説明する。
【００９６】
図１３に示すように、制御部３４は、メモリ管理部３１を制御することにより、符号列データ（コードストリーム）の記憶のために、メモリスペースをＲＡＭ４上に確保する（ステップＳ６１：第１領域確保手段）。このメモリスペースのサイズは、予め定めておいてもよいし、例えばアプリケーションプログラムから指定するようにしてもよい。
【００９７】
続いて、制御部３４は、データ入力部３２を制御することにより、符号列データ（コードストリーム）を入力させ、入力された符号列データ（コードストリーム）をＲＡＭ４上にステップＳ２１で割り当てられたメモリスペース（第１の領域）に記憶する（ステップＳ６２：記憶手段）。この時に、制御部３４は、画像処理部１００（タグ処理部１０５）を制御することにより、符号列データ（コードストリーム）のヘッダ情報を解析する（ステップＳ６３）。より詳細には、タグ処理部１０５は、２次元ウェーブレット変換の種類・回数、色空間変換の種類、原画像のコンポーネント数、サイズ、ビット深さ、タイルサイズなどのメモリスペースの割り当てに必要な情報を解析し、解析情報をメモリ管理部３１に渡す。
【００９８】
続いて、制御部３４は、メモリ管理部３１を制御することにより、ステップＳ６３で解析された解析情報を元に、符号列データに対して実行する複数種類の画像処理に必要なメモリスペース（第２の領域）をＲＡＭ４上に確保する（ステップＳ６４：第２領域確保手段）。メモリスペースのサイズ算出に必要な伸長条件（コンポーネント、デコンポジションレベル、プレシンクト、レイヤ、コードブロックサイズ等）は、ステップＳ６３にて求められている。
【００９９】
ここで、ステップＳ６４におけるメモリスペースの確保処理においては、２つめ以降の符号列データの場合、すでに確保されているメモリスペースサイズと、処理対象となるデータに必要となるメモリサイズとを比較する。必要となるメモリサイズの方が小さい場合は、そのまま使用し、必要となるメモリサイズの方が大きい場合は、メモリスペースの追加の確保、ないし開放および再確保が行われる。
【０１００】
メモリスペースの開放および再確保の際には、当該処理タイルの処理に不十分であるメモリスペースを部分的に開放し、再確保する方法も考えられる。例えば、すでに確保しているメモリスペース確保量（例えば、コンポーネントＹ、デコンポジションレベル１、プレシンクト０、レイヤ０のメモリスペース確保量）と、処理するタイルの必要なメモリスペース量（例えば、コンポーネントＹ、デコンポジションレベル１、プレシンクト０、レイヤ０の必要なメモリスペース量）を比較し、不十分な場合は、メモリスペースの再確保、ないしは、不足分の再確保などをすればよい。また、メモリスペースを再利用する場合、前のタイル処理でメモリスペースにデータを書き込んでいるが、必要に応じて初期化をする必要がある。この際の初期化処理には必ず上書きが発生し、すでに記録したデータが利用されることがない場合には初期化を必要としない。なお、上書きが発生することが確実でない場合には、初期化を実施する必要がある。この場合も、ある特定のメモリスペース（例えば、コンポーネントＹ、デコンポジションレベル１、プレシンクト０、レイヤ０のメモリスペース）のみを初期化するなどすればよい。
【０１０１】
続くステップＳ６５では、制御部３４は、画像処理部１００（エントロピー符号化・復号化部１０４）を制御することにより、ステップＳ６２で入力された符号列データ（コードストリーム）に対してエントロピー復号化を行い、エントロピー復号化した復号化結果を割り当てられたメモリスペースに記憶する。
【０１０２】
続くステップＳ６６では、制御部３４は、画像処理部１００（量子化・逆量子化部１０３）を制御することにより、復号化後の各サブバンド係数に逆量子化を行い、逆量子化後の各サブバンド係数をそれぞれに割り当てられたメモリスペースに記憶する。
【０１０３】
続くステップＳ６７では、制御部３４は、画像処理部１００（２次元ウェーブレット変換・逆変換部１０２）を制御することにより、逆量子化後の各サブバンド係数に対して２次元逆ウェーブレット変換を行い、生成されたＹ，Ｃｂ，Ｃｒの各コンポーネントをそれぞれに割り当てられたメモリスペースに記憶する。
【０１０４】
続くステップＳ６８では、制御部３４は、画像処理部１００（色空間変換・逆変換部１０１）を制御することにより、０ＬＬデータに対し逆色空間変換（及び逆ＤＣレベルシフト）を実行し、元の表色系のタイルデータを生成し、割り当てられたメモリスペースに記憶する。
【０１０５】
上述したステップＳ６４〜Ｓ６８の処理（画像処理手段）は、全てのタイルデータについての伸長処理が終了するまで（ステップＳ６９のＮｏ）、繰り返される。
【０１０６】
全てのタイルデータについてステップＳ６４〜Ｓ６８の伸長処理が終了した場合には（ステップＳ６９のＮｏ）、制御部３４は、データ出力部３３を制御することにより、伸長画像データを出力する（ステップＳ７０）。
【０１０７】
最後に、制御部３４は、メモリ管理部３１を制御することにより、符号用にＲＡＭ４に割り当てたメモリスペースを開放するとともに（ステップＳ７１：開放手段）、タイル処理用にＲＡＭ４に割り当てたメモリスペースを開放する（ステップＳ７２：開放手段）。
【０１０８】
このように本実施の形態によれば、分類された独立に処理可能な単位データに対して実行する複数種類の画像処理の際に、単位データを順次記憶するための第１の領域と、単位データに対して実行する複数種類の画像処理に必要な第２の領域とについての確保および開放の頻度を減らすことにより、プログラムの処理時間を改善することができる。
【０１０９】
さらに、分類された独立に処理可能な単位データ（例えば、色成分、分割領域、周波数帯域、有効ビットプレーンなど）によって記憶部の使用量を制御可能なため、効率的に、メモリスペース（第１の領域および第２の領域）の確保・開放にかかる時間を省略でき、高速に画像処理を実行することができる。
【０１１０】
なお、各実施の形態においては、ＪＰＥＧ２０００の基本方式（ＩＳ１５４４４−１）により画像データの圧縮又は画像の符号化データの伸長を行うものとしたが、これに限るものではなく、他の符号化方式により圧縮又は伸長を行う画像処理装置についても本発明を同様に適用し得ることは明らかである。
【図面の簡単な説明】
【０１１１】
【図１】本発明の前提となる離散ウェーブレット変換に基づく符号化・復号化方式の基本となる階層符号化アルゴリズムを実現するシステムの機能ブロック図である。
【図２】原画像の各コンポーネントの分割された矩形領域を示す説明図である。
【図３】デコンポジションレベル数が３の場合の、各デコンポジションレベルにおけるサブバンドを示す説明図である。
【図４】プレシンクトを示す説明図である。
【図５】ビットプレーンに順位付けする手順の一例を示す説明図である。
【図６】符号列データの１フレーム分の概略構成を示す説明図である。
【図７】符号化されたウェーブレット係数値が収容されたパケットをサブバンド毎に表わしたコードストリーム構造を示す説明図である。
【図８】本発明の第１の実施の形態にかかる画像処理装置のハードウェア構成を示すブロック図である。
【図９】画像処理装置の機能構成を示すブロック図である。
【図１０】圧縮処理の流れを示すフローチャートである。
【図１１】伸長処理の流れを示すフローチャートである。
【図１２】本発明の第２の実施の形態にかかる圧縮処理の流れを示すフローチャートである。
【図１３】伸長処理の流れを示すフローチャートである。
【符号の説明】
【０１１２】
１      画像処理装置
４      記憶部
【図１】
2008271193.tif 000003
【図２】
2008271193.tif 000004
【図３】
2008271193.tif 000005
【図４】
2008271193.tif 000006
【図５】
2008271193.tif 000007
【図６】
2008271193.tif 000008
【図７】
2008271193.tif 000009
【図８】
2008271193.tif 000010
【図９】
2008271193.tif 000011
【図１０】
2008271193.tif 000012
【図１１】
2008271193.tif 000013
【図１２】
2008271193.tif 000014
【図１３】
2008271193.tif 000015