(57)【要約】【課題】画像の圧縮又は伸長処理のためのメモリ利用効率を向上させる。【解決手段】色空間変換処理、ウェーブレット変換処理、量子化処理、エントロピー符号化処理、符号形成処理を順次実行する処理手段１〜５、そのメモリスペースを提供する記憶手段８、そのメモリスペースを管理するメモリ管理手段７を備える。メモリ管理手段７は、少なくとも１の処理工程により生成されるデータのビット深さに応じて、当該データの１単位の記憶のために割り当てるメモリスペースのサイズを変化させる。【選択図】図１
2006287485.tif 000002
【特許請求の範囲】
【請求項１】
画像データに対し、その圧縮のために複数の処理工程を順次実行する処理手段と、
前記複数の処理工程のためのメモリスペースを提供する記憶手段と、
前記記憶手段のメモリスペースを管理するメモリ管理手段とを有し、
前記メモリ管理手段は、前記複数の処理工程中の少なくとも１の処理工程により生成されるデータのビット深さに応じて、当該データの１単位の記憶のために割り当てる前記記憶手段のメモリスペースのサイズを変化させることを特徴とする画像処理装置。
【請求項２】
前記メモリ管理手段は、前記各処理工程の実行時に当該処理工程により生成されるデータの記憶のためのメモリスペースを割り当て、当該メモリスペースをそこに記憶されたデータが不要になった時点で解放することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記メモリ管理手段は、前記複数の処理工程中の特定の２以上の処理工程により生成されるデータの記憶のために共通のメモリスペースを割り当て、
前記特定の２以上の処理工程により生成されるデータは前記共通のメモリスペースに上書きされることを特徴とする請求項１記載の画像処理装置。
【請求項４】
画像の符号化データに対し、その伸長のために複数の処理工程を順次実行する処理手段と、
前記複数の処理工程のためのメモリスペースを提供する記憶手段と、
前記記憶手段のメモリスペースを管理するメモリ管理手段とを有し、
前記メモリ管理手段は、前記複数の処理工程中の少なくとも１の処理工程により生成されるデータのビット深さに応じて、当該データの１単位の記憶のために割り当てる前記記憶手段のメモリスペースのサイズを変化させることを特徴とする画像処理装置。
【請求項５】
前記メモリ管理手段は、前記各処理工程の実行時に当該処理工程により生成されるデータの記憶のためのメモリスペースを割り当て、当該メモリスペースをそこに記憶されたデータが不要になった時点で解放することを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記メモリ管理手段は、前記複数の処理工程中の特定の２以上の処理工程により生成されるデータの記憶のために共通のメモリスペースを割り当て、
前記特定の２以上の処理工程により生成されるデータは前記共通のメモリスペースに上書きされることを特徴とする請求項４記載の画像処理装置。
【請求項７】
前記複数の処理工程はＪＰＥＧ２０００に準拠したものであることを特徴とする請求項１乃至６のいずれか１項記載の画像処理装置。
【請求項８】
画像データに対し、その圧縮のために順次実行される複数の処理工程と、
前記複数の処理工程のためのメモリスペースを管理するメモリ管理工程とを有し、
前記メモリ管理工程は、前記複数の処理工程中の少なくとも１の処理工程により生成されるデータのビット深さに応じて、当該データの１単位の記憶のために割り当てるメモリスペースのサイズを変化させることを特徴とする画像処理方法。
【請求項９】
前記メモリ管理工程は、前記各処理工程の実行時に当該処理工程により生成されるデータの記憶のためのメモリスペースを割り当て、当該メモリスペースをそこに記憶されたデータが不要になった時点で解放することを特徴とする請求項８記載の画像処理方法。
【請求項１０】
前記メモリ管理工程は、前記複数の処理工程中の特定の２以上の処理工程により生成されるデータの記憶のために共通のメモリスペースを割り当て、
前記特定の２以上の処理工程により生成されるデータは前記共通のメモリスペースに上書きされることを特徴とする請求項８記載の画像処理方法。
【請求項１１】
画像の符号化データに対し、その伸長のために順次実行される複数の処理工程と、
前記複数の処理工程のためのメモリスペースを管理するメモリ管理工程とを有し、
前記メモリ管理工程は、前記複数の処理工程中の少なくとも１の処理工程により生成されるデータのビット深さに応じて、当該データの１単位の記憶のために割り当てるメモリスペースのサイズを変化させることを特徴とする画像処理方法。
【請求項１２】
前記メモリ管理工程は、前記各処理工程の実行時に当該処理工程により生成されるデータの記憶のためのメモリスペースを割り当て、当該メモリスペースをそこに記憶されたデータが不要になった時点で解放することを特徴とする請求項１１記載の画像処理方法。
【請求項１３】
前記メモリ管理工程は、前記複数の処理工程中の特定の２以上の処理工程により生成されるデータの記憶のために共通のメモリスペースを割り当て、前記特定の２以上の処理工程により生成されるデータは前記共通のメモリスペースに上書きされることを特徴とする請求項１１記載の画像処理方法。
【請求項１４】
前記複数の処理工程はＪＰＥＧ２０００に準拠したものであることを特徴とする請求項８乃至１３のいずれか１項記載の画像処理方法。
【請求項１５】
請求項１乃至７のいずれか１項記載の画像処理装置の各手段としてコンピュータを機能させるプログラム。
【請求項１６】
請求項１乃至７のいずれか１項記載の画像処理装置の各手段としてコンピュータを機能させるプログラムが記録された、コンピュータが読み取り可能な情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の圧縮処理及び伸長処理を行う画像処理装置及び方法に関する。
【背景技術】
【０００２】
従来、画像の圧縮・伸長処理を行う装置においては、処理対象の画像データのサイズなどから予想される最大サイズのメモリスペースを予め確保するか、一定サイズのメモリスペースを予め確保し、処理中にメモリスペースが不足した時にメモリスペースを追加する方法が一般的であり、メモリ利用効率が良好とはいえなかった。
【０００３】
画像データの高精細化はさらに進展することが予想されるため、画像の圧縮・伸長処理を行う装置におけるメモリ利用効率の向上がますます重要となっている。
【０００４】
なお、特許文献１に、印刷時の使用メモリ量を節約するために、画像情報を多値データと２値データとに分離し、２値データはビットマップメモリに記憶し、多値データは階調情報メモリに記憶するという内容の発明が記載されている。しかし、この発明は、圧縮又は伸長処理のためのメモリ利用効率を向上させる目的に応用できるものではない。
【０００５】
【特許文献１】特開平８−１３０６４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
よって、本発明の目的は、画像の圧縮又は伸長処理を行う画像処理装置又は方法におけるメモリ利用効率を向上させることにある。
【０００７】
特に、ＪＰＥＧ２０００（ＩＳ１５４４４−１）のような圧縮・伸長アルゴリズムでは、圧縮処理又は伸長処理は複数の処理工程からなり、データのビット深さが処理工程によって変化したり、コンポーネントによって違いが生じるなど、メモリ利用効率を向上しにくい要因が多い。よって、本発明のより具体的な目的は、ＪＰＥＧ２０００のようなアルゴリズムによって圧縮又は伸長処理を行う画像処理装置又は方法において、メモリ利用効率の向上を図ることにある。
【課題を解決するための手段】
【０００８】
請求項１の発明は、画像データに対し、その圧縮のために複数の処理工程を順次実行する処理手段と、前記複数の処理工程のためのメモリスペースを提供する記憶手段と、前記記憶手段のメモリスペースを管理するメモリ管理手段とを有し、前記メモリ管理手段は、前記複数の処理工程中の少なくとも１の処理工程により生成されるデータのビット深さに応じて、当該データの１単位の記憶のために割り当てる前記記憶手段のメモリスペースのサイズを変化させることを特徴とする画像処理装置である。
【０００９】
請求項２の発明は、請求項１の発明に係る画像処理装置であって、前記メモリ管理手段は、前記各処理工程の実行時に当該処理工程により生成されるデータの記憶のためのメモリスペースを割り当て、当該メモリスペースをそこに記憶されたデータが不要になった時点で解放することを特徴とする画像処理装置である。
【００１０】
請求項３の発明は、請求項１の発明に係る画像処理装置であって、前記メモリ管理手段は、前記複数の処理工程中の特定の２以上の処理工程により生成されるデータの記憶のために共通のメモリスペースを割り当て、前記特定の２以上の処理工程により生成されるデータは前記共通のメモリスペースに上書きされることを特徴とする画像処理装置である。
【００１１】
請求項４の発明は、画像の符号化データに対し、その伸長のために複数の処理工程を順次実行する処理手段と、前記複数の処理工程のためのメモリスペースを提供する記憶手段と、前記記憶手段のメモリスペースを管理するメモリ管理手段とを有し、前記メモリ管理手段は、前記複数の処理工程中の少なくとも１の処理工程により生成されるデータのビット深さに応じて、当該データの１単位の記憶のために割り当てる前記記憶手段のメモリスペースのサイズを変化させることを特徴とする画像処理装置である。
【００１２】
請求項５の発明は、請求項４の発明に係る画像処理装置であって、前記メモリ管理手段は、前記各処理工程の実行時に当該処理工程により生成されるデータの記憶のためのメモリスペースを割り当て、当該メモリスペースをそこに記憶されたデータが不要になった時点で解放することを特徴とする画像処理装置である。
【００１３】
請求項６の発明は、請求項４の発明に係る画像処理装置であって、前記メモリ管理手段は、前記複数の処理工程中の特定の２以上の処理工程により生成されるデータの記憶のために共通のメモリスペースを割り当て、前記特定の２以上の処理工程により生成されるデータは前記共通のメモリスペースに上書きされることを特徴とする画像処理装置である。
【００１４】
請求項７の発明は、請求項１乃至６のいずれか１項の発明に係る画像処理装置であって、前記複数の処理工程はＪＰＥＧ２０００に準拠したものであることを特徴とする画像処理装置である。
【００１５】
請求項８の発明は、画像データに対し、その圧縮のために順次実行される複数の処理工程と、前記複数の処理工程のためのメモリスペースを管理するメモリ管理工程とを有し、前記メモリ管理工程は、前記複数の処理工程中の少なくとも１の処理工程により生成されるデータのビット深さに応じて、当該データの１単位の記憶のために割り当てるメモリスペースのサイズを変化させることを特徴とする画像処理方法である。
【００１６】
請求項９の発明は、請求項８の発明に係る画像処理方法であって、前記メモリ管理工程は、前記各処理工程の実行時に当該処理工程により生成されるデータの記憶のためのメモリスペースを割り当て、当該メモリスペースをそこに記憶されたデータが不要になった時点で解放することを特徴とする画像処理方法である。
【００１７】
請求項１０の発明は、請求項８の発明に係る画像処理方法であって、前記メモリ管理工程は、前記複数の処理工程中の特定の２以上の処理工程により生成されるデータの記憶のために共通のメモリスペースを割り当て、前記特定の２以上の処理工程により生成されるデータは前記共通のメモリスペースに上書きされることを特徴とする画像処理方法である。
【００１８】
請求項１１の発明は、画像の符号化データに対し、その伸長のために順次実行される複数の処理工程と、前記複数の処理工程のためのメモリスペースを管理するメモリ管理工程とを有し、前記メモリ管理工程は、前記複数の処理工程中の少なくとも１の処理工程により生成されるデータのビット深さに応じて、当該データの１単位の記憶のために割り当てるメモリスペースのサイズを変化させることを特徴とする画像処理方法である。
【００１９】
請求項１２の発明は、請求項１１の発明に係る画像処理方法であって、前記メモリ管理工程は、前記各処理工程の実行時に当該処理工程により生成されるデータの記憶のためのメモリスペースを割り当て、当該メモリスペースをそこに記憶されたデータが不要になった時点で解放することを特徴とする画像処理方法である。
【００２０】
請求項１３の発明は、請求項１１の発明に係る画像処理方法であって、前記メモリ管理工程は、前記複数の処理工程中の特定の２以上の処理工程により生成されるデータの記憶のために共通のメモリスペースを割り当て、前記特定の２以上の処理工程により生成されるデータは前記共通のメモリスペースに上書きされることを特徴とする画像処理方法である。
【００２１】
請求項１４の発明は、請求項８乃至１３のいずれか１項の発明に係る画像処理方法であって、前記複数の処理工程はＪＰＥＧ２０００に準拠したものであることを特徴とする画像処理方法である。
【００２２】
請求項１５の発明は、請求項１乃至７のいずれか１項の発明に係る画像処理装置の各手段としてコンピュータを機能させるプログラムである。
【００２３】
請求項１６の発明は、請求項１乃至７のいずれか１項の発明に係る画像処理装置の各手段としてコンピュータを機能させるプログラムが記録された、コンピュータが読み取り可能な情報記録媒体である。
【発明の効果】
【００２４】
請求項１，４，８，１１の発明によれば、各処理工程により生成されるデータのビット深さに応じて、その１単位の記憶のために割り当てるメモリスペースのサイズを変化させるため、メモリ利用効率が向上する。また、請求項２，５，９，１２の発明によれば、複数の処理工程の進行に応じて動的にメモリスペースの割り当て、解放を行うため、メモリ利用効率がさらに向上する。また、請求項３，６，１０，１３の発明によれば、２以上の処理工程により生成されるデータの記憶に共通のメモリスペースを割り当て、後の処理工程により生成されたデータを前の処理工程により生成されたデータに上書きするため、メモリ利用効率がさらに向上する。請求項１４，１６の発明によれば、請求項１乃至７の発明に係る画像処理装置をコンピュータを利用し実現することができる、等々の効果を得られる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態について説明する。なお、ここに述べる実施の形態においては、ＪＰＥＧ２０００の基本方式（ＩＳ１５４４４−１）により画像データの圧縮又は画像の符号化データの伸長を行うものとするが、他の符号化方式により圧縮又は伸長を行う場合にも本発明を同様に適用し得るものである。
【００２６】
図１は、本発明に係る画像処理装置のブロック図である。この画像処理装置は、ＪＰＥＧ２０００の圧縮・伸長のための複数の処理工程を実行するための処理手段として、色空間変換・逆変換部１、ウェーブレット変換・逆変換部２、量子化・逆量子化部３、エントロピー符号化・復号化部４、タグ処理部５を備える。また、画像処理装置は、上記処理手段のためのメモリスペースを提供するメモリ（記憶手段）８、このメモリ８のメモリスペースを管理するメモリ管理部７、圧縮すべき画像データ又は伸長すべき符号化データを入力するためのデータ入力部６、圧縮された符号化データ又は伸長された画像データを出力するデータ出力部１０、画像処理装置内の処理シーケンスなどを制御するための制御部９を備える。
【００２７】
このような画像処理装置は、例えばパソコンのようなＣＰＵ、メモリ、ハードディスク装置、外部インターフェースなどを備えるコンピュータ上でソフトウェアにより実現される。すなわち、図１に示す各手段としてコンピュータを機能させるためのプログラムがコンピュータのメモリにロードされ、ＣＰＵに実行されることにより本発明の画像処理装置が実現される。このようなプログラムは、例えばアプリケーションプログラム又はデバイスドライバの形をとることができ、一般に、コンピュータ上で動作する他のアプリケーションプログラムと連携して動作し、そのアプリケーションプログラムからの指示により圧縮又は伸長処理を実行して結果を返す。このような画像処理装置を実現するためのプログラムは請求項１５の発明に係るものであり、また、そのようなプログラムが記録された磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子などのコンピュータが読み取り可能な情報記録（記憶）媒体は請求項１６の発明に係るものである。
【００２８】
ここで、画像処理装置の動作の理解を容易にするため、ＪＰＥＧ２０００の圧縮・伸長アルゴリズムの概要を説明する。
【００２９】
まず圧縮処理について説明する。圧縮の場合、原画像データの各コンポーネント（色成分）は、必要に応じてタイルと呼ばれる重複しない矩形の領域に分割される（分割数≧１）。各コンポーネントの各タイルのデータは色空間変換・逆変換部１でＹＣｂＣｒ（もしくはＹＵＶ）表色系へ変換される。原画像データがＲＧＢデータなどの場合には、ダイナミックレンジを半分に減じるためのＤＣレベルシフトも行われる。
【００３０】
色空間変換後のデータは、Ｙ，Ｃｂ，Ｃｒ各コンポーネント別に、ウェーブレット変換・逆変換部２で２次元ウェーブレット変換（順変換）を適用されることにより、周波数帯（サブバンド）に空間分割される。
【００３１】
図２にデコンポジションレベル数＝３の場合の、各デコンポジションレベルにおけるサブバンド分割の様子を示す。タイル画像（０ＬＬ）（デコンポジションレベル０）に対して、２次元ウェーブレット変換を施すことにより、デコンポジションレベル１のサブバンド（１ＬＬ，１ＨＬ，１ＬＨ，１ＨＨ）が得られる。この階層における低周波成分である１ＬＬサブバンドの係数に対して２次元ウェーブレット変換を施すことより、デコンポジションレベル２のサブバンド（２ＬＬ，２ＨＬ，２ＬＨ，２ＨＨ）が得られる。この階層での低周波成分である２ＬＬサブバンド係数に対し２次元ウェーブレット変換を施すことにより、デコンポジションレベル３のサブバンド（３ＬＬ，３ＨＬ，３ＬＨ，３ＨＨ）が得られる。
【００３２】
各サブバンドの係数は、必要に応じて、量子化・逆量子化部３で線形量子化された後、エントロピー符号化・復号化部４でエントロピー符号化される。ＪＰＥＧ２０００では、各サブバンド係数はビットプレーンに分解され、また、各サブバンドは重複しないプリシンクトと呼ばれる矩形領域に分割され、各プリシンクトはコードブロックと呼ばれる重複しない矩形領域に分割される。そして、各サブバンドの係数は上位のビットプレーンから下位のビットプレーンへ向かってコードブロック毎に符号化される（より正確には、各ビットプレーンは３つのサブビットプレーン（符号化パス）に分割されて符号化される）。このエントロピー符号化においては、指定した符号化の順番で符号化対象ビットが定められ、量子化部・逆量子化部３で対象ビットの周辺ビットからコンテキストが生成され、このコンテキストと対象ビットの確率推定による算術符号化が行われる。
【００３３】
タグ処理部５では符号形成を行う。すなわち、不要なエントロピー符号を破棄し、必要なエントロピー符号をまとめてパケットを生成し、パケットを所定の順番に並べるとともに必要なタグ及びタグ情報を付加することにより、図４に示すようなフォーマットの１本のコードストリーム（符号化データ）を生成する。コードストリームの先頭と各タイル部の先頭にはメインヘッダ（Main  header）及びタイルパートヘッダ（Tile-part  header）と呼ばれるタグ情報が付加され、その後に、各タイルの符号（bit  stream）が続く。そして、コードストリームの終端に終了タグ（End  of  codestream）が置かれる。
【００３４】
画像、タイル、サブバンド、プリシンクト、コードブロックの間には
画像≧タイル＞サブバンド≧プリシンクト≧コードブロック
の大小関係がある。
【００３５】
プリシンクトとは、サブバンドの矩形領域で、同じデコンポジションレベルのＨＬ，ＬＨ，ＨＨサブバンドの空間的に同じ位置にある３つの領域の組が１つのプリシンクトとして扱われる。ただし、ＬＬサブバンドでは、１つの領域が１つのプリシンクトとして扱われる。プリシンクトのサイズをサブバンドと同じサイズにすることも可能である。前述のように、プリシンクトを分割した矩形領域がコードブロックである。図３にデコンポジションレベル１におけるプリシンクトと、そのコードブロックを例示した。図中のプリシンクトと記された空間的に同じ位置にある３つの領域の組が、１つのプリシンクトとして扱われる。
【００３６】
プリシンクトに含まれる全てのコードブロックの符号の一部（例えば最上位から３ビット目までの３枚のビットプレーンの符号）を取り出して集めたものがパケットである。符号が空（から）のパケットも許される。コードブロックの符号をまとめてパケットを生成し、所定の順序にパケットを並べたものが図４中の”bit  stream”である。
【００３７】
一方、伸長処理は圧縮処理とは逆に、各コンポーネントの各タイルのコードストリームから画像データを生成する。タグ処理部５は、外部より入力したコードストリームに付加されたタグ情報を解釈し、コードストリームを各コンポーネントの各タイルのコードストリームに分解し、その各コンポーネントの各タイルのコードストリーム毎に復号処理が行われる。コードストリーム内のタグ情報に基づく順番で復号対象となるビットの位置が定められるとともに、量子化・逆量子化部３で、その対象ビット位置の周辺ビット（既に復号化を終えている）の並びからコンテキストが生成される。エントロピー符号化・復号化部４で、このコンテキストとコードストリームから確率推定によって復号を行って対象ビットを生成し、それを対象ビットの位置に書き込む。
【００３８】
このようにして得られた各サブバンドの係数は、量子化・逆量子化部３で逆量子化された後、２次元ウェーブレット変換・逆変換部２で２次元逆ウェーブレット変換を施されることにより、各コンポーネントの各タイルのデータが復元される。復元されたデータは、色空間変換・逆変換部１で逆色空間変換（及び逆ＤＣレベルシフト）を施されて元の表色系のデータに戻される。
【００３９】
次に、本発明に係る画像処理装置の動作を、その主たる特徴であるメモリ管理部７によるメモリスペース管理に焦点を当てて説明する。
【００４０】
まず、図５乃至図１１を参照し圧縮処理時の動作を説明する。まず、メモり管理部７はタイルデータに割り当てるためのメモリスペースをメモリ８上に確保する（ｓｔｅｐ１）。なお、このメモリスペースのサイズの算出に必要なタイルのサイズ（画素数）、ビット深さ、コンポーネント数などは、例えば本画像処理装置が構築されるコンピュータ上で動作するアプリケーションプログラムより通知される。
【００４１】
ここでは、タイルデータはＲＧＢの３コンポーネントで、各コンポーネントともビット深さが８ビットであるとする。また、メモリ８は８ビット単位で番地付けがされているものとする（メモリ８の最小アクセス単位は８ビット）。この場合、タイルデータの１単位（１画素）のビット深さとメモリ８の最小アクセス単位のビット数と一致するため、メモリ管理部８はＲ，Ｇ，Ｂ各コンポーネントについて、図７に模式的に示すようなサイズのメモリスペースをメモリ８上に確保してタイルデータの記憶のために割り当てる。
【００４２】
次に、データ入力部６により、例えばコンピュータのハードディスク装置などから１つのタイルのデータが入力され、メモリ８上のｓｔｅｐ１で割り当てられたメモリスペースに格納される（ｓｔｅｐ２）。
【００４３】
次に、メモリ管理部７は、タイルデータの色空間変換後のＹＣｂＣｒデータの記憶のためのメモリスペースをメモリ８上に確保し、それをＹ，Ｃｂ，Ｃｒ各コンポーネントの記憶のために割り当てる（ｓｔｅｐ３）。このメモリスペースのサイズの決定には、タイルデータのビット深さと色空間変換の方法が考慮される。色空間変換方法によって色空間変換後のデータのビット深さが異なることがあるからである。例えば、ＪＰＥＧ２０００で規定されている非可逆色空間変換（ＩＣＴ）では、Ｙコンポーネントのビット深さは変換前と変わらないが、Ｃｒ，Ｃｂコンポーネントは変換前よりビット深さが１ビットだけ増加する。
【００４４】
したがって、上記ＩＣＴが用いられるものとすると、この例では、Ｙコンポーネントのビット深さは８ビットであるが、Ｃｂ，Ｃｒ各コンポーネントのビット深さは９ビットとなる。ビット深さが８ビットのＹコンポーネントについては、メモリ８の最小アクセス単位のビット数と同じであるので、図１１の上段に模式的に示すように、１単位（１画素）をメモリ８の１つの番地の８ビットに記憶させるものとして、図８の上段に模式的に示すようなメモリスペースを確保し、Ｙコンポーネントの記憶に割り当てる。
【００４５】
一方、ビット深さが９ビットのＣｂ，Ｃｒ各コンポーネントについては、図１１の中断及び下段に示すように、その１単位（１画素）をメモリ８の連続した２つの番地の１６ビットに記憶させるものとして、図８の下段に模式的に示すようなメモリスペースを確保し、その記憶のために割り当てる。
【００４６】
この例のように、生成されるデータのビット深さに応じて、その１単位の記憶のために割り当てるメモリスペースのサイズを変化させることが本発明の１つの特徴であり、これにより必要最小限のサイズのメモリスペースを割り当てることができ、メモリの利用効率が向上する。
【００４７】
ｓｔｅｐ３でメモリスペースが割り当てられると、色空間変換・逆変換部２によりタイルデータに対し色空間変換（ＩＣＴ）が実行され、生成されたＹ，Ｃｂ，Ｃｒ各コンポーネントが、それぞれに割り当てられたメモリスペースに記憶される（ｓｔｅｐ４）。
【００４８】
次に、メモリ管理部７は、１回目の２次元ウェーブレット変換により生成される１ＬＬ，１ＬＨ，１ＨＬ，１ＨＨサブバンドの係数を記憶するためにメモリスペースをメモリ８に確保し割り当てる（ｓｔｅｐ５）。例えばＪＰＥＧ２０００に規定の５×３変換と呼ばれるウェーブレット変換が用いられる場合、１ＬＬサブバンド係数のビット深さは変換前のデータのビット深さと変わらないが、１ＬＨ，１ＨＬ，１ＨＨサブバンド係数のビット深さは変換前のデータより１ビット又は２ビットだけ増加する。そこで、Ｙコンポーネントの各サブバンド係数の記憶のために、図９の上段に示すようなメモリスペースをメモリ８上に確保し割り当てる。また、Ｃｂ，Ｃｒコンポーネントについては、その各サブバンド係数の記憶のために、図９の下段に示すようなメモリスペースを確保し割り当てる。
【００４９】
このようなメモリスペースの割り当て後に、ウェーブレット変換・逆変換部２によりＹ，Ｃｂ，Ｃｒ各コンポーネントに対し１回目の２次元ウェーブレット変換が行われ、生成された各サブバンド係数は、それぞれに割り当てられたメモリスペースに記憶される（ｓｔｅｐ６）。
【００５０】
この段階で、メモリ管理部７は、ｓｔｅｐ３で割り当てられたメモリスペースを、その記憶内容が不要となったため解放する（ｓｔｅｐ７）。このように、本実施形態では、各処理工程の実行に際し、その処理工程により生成されるデータを記憶するためのメモリスペースを割り当てた後、記憶データが用済みとなった段階で、そのメモリスペースを解放する。このように、複数の処理工程の進行に応じて動的にメモリスペースの割り当て、解放を行うことより、メモリ８の利用効率をさらに向上されることができる。これも本発明の１つの特徴である。
【００５１】
次に、メモリ管理部７は、２回目の２次元ウェーブレット変換により生成されるサブバンド係数の記憶のために、図１０に模式的に示すようなメモリスペースをメモリ８に確保し割り当てる（ｓｔｅｐ８）。ウェーブレット変換・逆変換部２により１ＬＬサブバンド係数に対し２回目の２次元ウェーブレット変換が行われ、生成された２ＬＬ，２ＬＨ，２ＨＬ，２ＨＨサブバンドの係数が、それぞれに割り当てられたメモリスペースに記憶される（ｓｔｅｐ９）。なお、この例ではデコンポジションレベル数は２としている。
【００５２】
メモリ管理部７は、図９に示した１ＬＬサブバンド係数用のメモリスペースを解放し（ｓｔｅｐ１０）、次に、サブバンド係数の量子化後の係数を記憶するために、メモリ８のメモリスペースを確保し割り当てる（ｓｔｅｐ１１）。なお、量子化前後でビット深さを変化させないか減らす場合には、量子化前のサブバンド係数が記憶されているメモリスペースを量子化後の係数の記憶のために割り当て、量子化後のサブバンド係数を上書きする形で記憶させることもできる。この場合には、ｓｔｅｐ１１では新たなメモリスペースを確保する必要はない。このように、２以上の処理工程により生成されるデータの記憶に共通のメモリスペースを割り当て、後の処理工程により生成されたデータを前の処理工程により生成されたデータに上書きする形で記憶させる態様も本発明の１つの特徴である。
【００５３】
次に、量子化・逆量子化部３でサブバンド毎に線形量子化が行われ、量子化後の係数が割り当てられたメモリスペースに記憶される（ｓｔｅｐ１２）。
【００５４】
ここでｓｔｅｐ５，８で割り当てられたメモリスペースは用済みであるので、メモリ管理部７は、そのメモリスペースを解放する（ｓｔｅｐ１３）。次に、メモリ管理部７は、エントロピー符号の記憶のために、メモリスペースを確保し割り当てる（ｓｔｅｐ１４）。通常、非可逆圧縮の場合、目標符号量が例えばアプリケーションプログラムから指定されるため、目標符号量に応じたサイズのメモリスペースを割り当てる。
【００５５】
次に、エントロピー符号化・復号化部４により、量子化後の各サブバンド係数に対しエントロピー符号化が行われ、生成された符号が、それに割り当てられたメモリスペースに記憶される。割り当てたメモリスペースを越える量の符号が生成された場合には、越えた分の符号を破棄する。ただし、メモリスペースが不足した場合に、追加のメモリスペースを割り当てることも可能である。
【００５６】
メモリ管理部７は、ｓｔｅｐ１１で割り当てた量子化後係数用のメモリスペースを解放する（ｓｔｅｐ１６）。
【００５７】
次に入力されるタイルデータが残っている場合（ｓｔｅｐ１７，Ｙｅｓ）、ｓｔｅｐ２以降の処理が繰り返される。
【００５８】
最後のタイルデータのエントロピー符号化が終了すると、メモリ管理部７はタイルデータ用に割り当てたメモリスペースを解放する（ｓｔｅｐ１８）。なお、ｓｔｅｐ４の後にタイルデータ用メモリスペースを解放するようにし、全てのタイル毎にｓｔｅｐ１以降の処理を行うこともできる。このようにすると、各タイルの処理期間におけるメモリ利用効率をさらに向上させることができ、かかる態様も本発明に含まれる。
【００５９】
次に、メモリ管理部７は、コードストリームの記憶のために、メモリスペースを確保し割り当てる（ｓｔｅｐ１９）。そして、タグ処理部５により符号形成処理が行われ、生成されたコードストリームは割り当てられたメモリスペースに記憶される（ｓｔｅｐ２０）。このコードストリームはデータ出力部１０により出力され（ｓｔｅｐ２１）、メモリ管理部７はエントロピー符号及びコードストリーム用のメモリスペースを解放する（ｓｔｅｐ２２）。なお、ｓｔｅｐ２０の直後にエントロピー符号化用メモリスペースを解放してもよく、かかる態様も本発明に包含される。
【００６０】
次に、図１２乃至図１５を用い伸長動作について説明する。図１２を参照すると、ｓｔｅｐ５１において、メモリ管理部７はコードストリームの記憶のために、メモリスペースを確保し割り当てる。このメモリスペースのサイズは、予め定めておいてもよいし、例えばアプリケーションプログラムから指定するようにしてもよい。
【００６１】
データ入力部６により、コードストリームが入力され、割り当てられたメモリスペースに記憶される（ｓｔｅｐ５２）。この時に、コードストリームのヘッダ情報がタグ処理部５で解析され、２次元ウェーブレット変換の種類・回数、色空間変換の種類、原画像のコンポーネント数、サイズ、ビット深さ、タイルサイズなど、メモリスペース割り当てに必要な情報がメモリ管理部７に渡される。
【００６２】
ｓｔｅｐ５３で、メモリ管理部７は１タイル分のサブバンド係数の記憶のために、メモリスペースを確保し割り当てる。圧縮処理の説明の例に倣えば、Ｙコンポーネントの各サブバンド係数の記憶のために図１４の上段に模式的に示すようなメモリスペースが割り当てられ、Ｃｂ，Ｃｒ各コンポーネントの各サブバンド係数の記憶のために図１５の下段に模式的に示すようなメモリスペースが割り当てられる。Ｙコンポーネントの２ＬＬサブバンド係数だけはビット深さが８ビットであるため、その１係数の記憶のためにメモリ８の最小アクセス単位である８ビットが割り当てられるが、それ以外のサブバンド係数はビット深さが９ビット以上であるため、その１係数の記憶のためにメモリ８の最小アクセス単位の２倍の１６ビットが割り当てられる。
【００６３】
ｓｔｅｐ４で、エントロピー符号化・復号化部４によりエントロピー復号化が行われ、生成された各サブバンド係数は、それに割り当てられたメモリスペースに記憶される。
【００６４】
ｓｔｅｐ５５で、メモリ管理部７は、逆量子化後の係数を記憶するために、メモリスペースを確保し割り当てる。逆量子化により係数のビット深さが増加しない場合には、ｓｔｅｐ５３で割り当てられたメモリスペースを逆量子化後係数の記憶のために再割り当てすることも可能である。
【００６５】
ｓｔｅｐ５６で、量子化・逆量子化部３により各サブバンド係数の逆量子化が行われ、逆量子化後の係数は割り当てられたメモリスペースに記憶される。
【００６６】
ｓｔｅｐ５７で、メモリ管理部７はｓｔｅｐ５３で割り当てたメモリスペースを解放する。次のｓｔｅｐ５８で、メモリ管理部７は、Ｙ，Ｃｂ，Ｃｒの１ＬＬサブバンド係数の記憶のために、図１５に模式的に示すようなメモリスペースを確保し割り当てる。
【００６７】
ｓｔｅｐ５９で、ウェーブレット変換・逆変換部２により、２ＬＬ，２ＬＨ，２ＨＬ，２ＨＨサブバンド係数に対し１回目の２次元逆ウェーブレット変換が行われ、生成された１ＬＬサブバンド係数は割り当てられたメモリスペースに記憶される。
【００６８】
ｓｔｅｐ６０で、メモリ管理部７はｓｔｅｐ５５で割り当てられた２ＬＬ，２ＬＨ，２ＨＬ，２ＨＨサブバンド係数用のメモリスペースを解放し、０ＬＬ用メモリスペースを確保し割り当てる。
【００６９】
ｓｔｅｐ６２で、ウェーブレット変換・逆変換部２により１ＬＬ，１ＬＨ，１ＨＬ，１ＨＨサブバンド係数に対する２回目の２次元逆ウェーブレット変換が行われ、生成された０ＬＬデータ（逆色空間前のタイルデータ）が割り当てられたメモリスペースに記憶される。
【００７０】
メモリ管理部７は、未解放の係数用メモリスペースを解放し（ｓｔｅｐ６３）、タイルデータの記憶のためにメモリスペースを確保し割り当てる（ｓｔｅｐ６４）。ｓｔｅｐ６５で、色空間変換・逆変換部１により０ＬＬデータに対し逆色空間変換（及び逆ＤＣレベルシフト）が実行され、元の表色系のタイルデータが生成され、これは割り当てられたメモリスペースに記憶される。ｓｔｅｐ６６で、メモリ管理部７は０ＬＬデータ用のメモリスペースを解放する。
【００７１】
次に伸長すべきタイルが残っているならば（ｓｔｅｐ６７，Ｙｅｓ）、ｓｔｅｐ５３以降の処理が繰り返される。最後のタイルまで画像データが伸長されると（ｓｔｅｐ６７，Ｎｏ）、その伸長画像データはデータ出力部１０により出力され（ｓｔｅｐ６８）、最後に、メモリ管理部７は全タイルデータ用に割り当てたメモリスペース及びコードストリーム用に割り当てたメモリスペースを解放する（ｓｔｅｐ６９）。
【００７２】
なお、圧縮処理及び復号処理のいずれにおいても、初期段階で必要なメモリスペースの割り当てを一括して行い、用済みとなったメモリスペースを随時解放し、あるいは処理の最後にメモリスペースを一括して解放するようにすることも可能であり、係る静的なメモリスペースの割り当て制御も本発明に包含される。
【００７３】
また、画像処理装置における処理手段（１〜５）による処理工程、メモリ管理手段（７）によるメモリスペースの割り当て、解放の工程についての説明は、請求項８乃至１４に係る発明の説明でもあることは明らかである。
【００７４】
また、本実施形態では圧縮・伸長のアルゴリズムとしてＪＰＥＧ２０００が用いられたが、他のアルゴリズムにより圧縮・伸長を行う画像処理装置についても本発明を同様に適用し得ることは明らかである。
【図面の簡単な説明】
【００７５】
【図１】本発明に係る画像処理装置のブロック図である。
【図２】２次元ウェーブレット変換のサブバンド分割の説明図である。
【図３】タイル、サブバンド、プレシンクト、コードブロックの大小関係を示す図である。
【図４】ＪＰＥＧ２０００のコードストリームの構造を示す図である。
【図５】圧縮処理動作を説明するためのフローチャートである。
【図６】圧縮処理動作を説明するためのフローチャートである。
【図７】タイルデータ用のメモリスペースの説明図である。
【図８】色空間変換後の各コンポーネント用のメモリスペースの説明図である。
【図９】デコンポジションレベル１のサブバンド係数用のメモリスペースの説明図である。
【図１０】デコンポジションレベル２のサブバンド係数用のメモリスペースの説明図である。
【図１１】Ｙ，Ｃｂ，Ｃｒ各コンポーネントの１単位の記憶のためのメモリスペース・サイズを説明するための図である。
【図１２】伸長処理動作を説明するためのフローチャートである。
【図１３】伸長処理動作を説明するためのフローチャートである。
【図１４】Ｙ，Ｃｂ，Ｃｒコンポーネントのサブバンド係数用のメモリスペースの説明図である。
【図１５】Ｙ，Ｃｂ，Ｃｒコンポーネントの１ＬＬサブバンド係数用のメモリスペースの説明図である。
【符号の説明】
【００７６】
１    色空間変換・逆変換部
２    ウェーブレット変換・逆変換部
３    量子化・逆量子化部
４    エントロピー符号化・復号化部
５    タグ処理部
６    データ入力部
７    メモリ管理部
８    メモリ
９    制御部
１０    データ出力部
【図１】
2006287485.tif 000003
【図２】
2006287485.tif 000004
【図３】
2006287485.tif 000005
【図４】
2006287485.tif 000006
【図５】
2006287485.tif 000007
【図６】
2006287485.tif 000008
【図７】
2006287485.tif 000009
【図８】
2006287485.tif 000010
【図９】
2006287485.tif 000011
【図１０】
2006287485.tif 000012
【図１１】
2006287485.tif 000013
【図１２】
2006287485.tif 000014
【図１３】
2006287485.tif 000015
【図１４】
2006287485.tif 000016
【図１５】
2006287485.tif 000017