(57)【要約】【課題】離散ウェーブレット変換を用いた圧縮処理の高速化を図る。【解決手段】１又は複数に分割された矩形領域毎に画素値を離散ウェーブレット変換して階層的に圧縮符号化する際の離散ウェーブレット変換を、ＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサ４１を用いたＳＩＭＤ処理を用いて実行する。これにより、複数のデータに対して単一の命令を並列に実行させることができるＳＩＭＤ処理を用いて実行することで、離散ウェーブレット変換処理の複数画素の計算を並列に実行させることができるので、離散ウェーブレット変換を用いた圧縮処理の高速化を図ることができる。【選択図】        図８
2004201047.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数に分割された矩形領域毎に画素値を離散ウェーブレット変換して階層的に圧縮符号化する画像処理装置において、
離散ウェーブレット変換を、ＳＩＭＤ（Single Instruction-stream MultipleData-stream）処理を用いて実行することを特徴とする画像処理装置。
【請求項２】
ＳＩＭＤ命令用レジスタに離散ウェーブレット変換に必要なフィルタ係数を設定して初期化し、離散ウェーブレット変換が全て終了するまで保持することを特徴とする請求項１記載の画像処理装置。
【請求項３】
画像を１又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換し階層的に符号化した圧縮符号を逆離散ウェーブレット変換により復号する画像処理装置において、
逆離散ウェーブレット変換を、ＳＩＭＤ（Single Instruction-stream Multiple Data-stream）処理を用いて実行することを特徴とする画像処理装置。
【請求項４】
ＳＩＭＤ命令用レジスタに逆離散ウェーブレット変換に必要なフィルタ係数を設定して初期化し、逆離散ウェーブレット変換が全て終了するまで保持することを特徴とする請求項３記載の画像処理装置。
【請求項５】
ＳＩＭＤ処理を行う対象データをメモリ上に連続して配置した後に、ＳＩＭＤ命令用レジスタに転送することを特徴とする請求項１ないし４のいずれか一記載の画像処理装置。
【請求項６】
ウェーブレット変換処理結果を、キャッシュのフィルを行わずにメモリに書き込むことを特徴とする請求項１ないし５のいずれか一記載の画像処理装置。
【請求項７】
１又は複数に分割された矩形領域毎に画素値を離散ウェーブレット変換して階層的に圧縮符号化する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、
前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて離散ウェーブレット変換を実行することを特徴とするプログラム。
【請求項８】
画像を１又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換し階層的に符号化した圧縮符号を逆離散ウェーブレット変換により復号する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、
前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて逆離散ウェーブレット変換を実行することを特徴とするプログラム。
【請求項９】
１又は複数に分割された矩形領域毎に画素値を離散ウェーブレット変換して階層的に圧縮符号化する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、
前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて離散ウェーブレット変換を実行するプログラムを記憶することを特徴とする記憶媒体。
【請求項１０】
画像を１又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換し階層的に符号化した圧縮符号を逆離散ウェーブレット変換により復号する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、
前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて逆離散ウェーブレット変換を実行するプログラムを記憶することを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置、プログラム及び記憶媒体に関する。
【０００２】
【従来の技術】
近年においては、画像圧縮伸長技術に対する高性能化あるいは多機能化の要求を満たす画像圧縮方式の一つとして、高圧縮率でも高画質な画像を復元可能なJPEG2000という新しい方式が規格化されつつある。かかるJPEG2000においては、ウェーブレット変換が利用されている。
【０００３】
このようなウェーブレット変換を利用した圧縮・伸長では、整数型離散ウェーブレット変換と実数型離散ウェーブレット変換とが存在する。整数型離散ウェーブレット変換では５×３フィルタが用いられ、実数型離散ウェーブレット変換では９×７フィルタが用いられる。実数型離散ウェーブレット変換は、整数型離散ウェーブレット変換に比べて符号化効率が高いことが知られている。しかしながら、実数型離散ウェーブレット変換は、実数型であることと、演算対象データ量（変換で参照する画素数）が多いことから、処理時間が長くなるため、専用の画像処理ロジック回路または専用デジタル信号プロセッサを用いて処理が実行される。
【０００４】
【発明が解決しようとする課題】
しかしながら、実数型離散ウェーブレット変換を実行するにあたっては、専用の画像処理ロジック回路または専用デジタル信号プロセッサを用いることにより、回路の規模が増えることとなるため、製造コストが増大するという問題が生じている。
【０００５】
本発明の目的は、離散ウェーブレット変換を用いた圧縮処理の高速化を図ることができる画像処理装置、プログラム及び記憶媒体を提供することである。
【０００６】
本発明の目的は、逆離散ウェーブレット変換を用いた伸長処理の高速化を図ることができる画像処理装置、プログラム及び記憶媒体を提供することである。
【０００７】
【課題を解決するための手段】
請求項１記載の発明の画像処理装置は、１又は複数に分割された矩形領域毎に画素値を離散ウェーブレット変換して階層的に圧縮符号化する画像処理装置において、離散ウェーブレット変換を、ＳＩＭＤ（Single Instruction-stream Multiple Data-stream）処理を用いて実行する。
【０００８】
したがって、複数のデータに対して単一の命令を並列に実行させることができるＳＩＭＤ処理を用いて実行することで、離散ウェーブレット変換処理の複数画素の計算を並列に実行させることが可能になるので、離散ウェーブレット変換を用いた圧縮処理の高速化を図ることが可能になる。
【０００９】
請求項２記載の発明は、請求項１記載の画像処理装置において、ＳＩＭＤ命令用レジスタに離散ウェーブレット変換に必要なフィルタ係数を設定して初期化し、離散ウェーブレット変換が全て終了するまで保持する。
【００１０】
したがって、通常の浮動小数点ユニットを用いる場合に比べ、離散ウェーブレット変換に必要なフィルタ係数を全画素分初期化する時間が不要となるので、離散ウェーブレット変換を用いた圧縮処理の更なる高速化を図ることが可能になる。
【００１１】
請求項３記載の発明の画像処理装置は、画像を１又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換し階層的に符号化した圧縮符号を逆離散ウェーブレット変換により復号する画像処理装置において、逆離散ウェーブレット変換を、ＳＩＭＤ（Single Instruction-stream Multiple Data-stream）処理を用いて実行する。
【００１２】
したがって、複数のデータに対して単一の命令を並列に実行させることができるＳＩＭＤ処理を用いて実行することで、逆離散ウェーブレット変換処理の複数画素の計算を並列に実行させることが可能になるので、逆離散ウェーブレット変換を用いた伸長処理の高速化を図ることが可能になる。
【００１３】
請求項４記載の発明は、請求項３記載の画像処理装置において、ＳＩＭＤ命令用レジスタに逆離散ウェーブレット変換に必要なフィルタ係数を設定して初期化し、逆離散ウェーブレット変換が全て終了するまで保持する。
【００１４】
したがって、通常の浮動小数点ユニットを用いる場合に比べ、逆離散ウェーブレット変換に必要なフィルタ係数を全画素分初期化する時間が不要となるので、逆離散ウェーブレット変換を用いた伸長処理の更なる高速化を図ることが可能になる。
【００１５】
請求項５記載の発明は、請求項１ないし４のいずれか一記載の画像処理装置において、ＳＩＭＤ処理を行う対象データをメモリ上に連続して配置した後に、ＳＩＭＤ命令用レジスタに転送する。
【００１６】
したがって、ＳＩＭＤ処理を行う対象データは、整列した状態でＳＩＭＤ命令用レジスタに対して順次転送される。
【００１７】
請求項６記載の発明は、請求項１ないし５のいずれか一記載の画像処理装置において、ウェーブレット変換処理結果を、キャッシュのフィルを行わずにメモリに書き込む。
【００１８】
したがって、データキャッシュを汚染することがなくなり、また、処理の高速化を実現することが可能になる。
【００１９】
請求項７記載の発明のプログラムは、１又は複数に分割された矩形領域毎に画素値を離散ウェーブレット変換して階層的に圧縮符号化する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて離散ウェーブレット変換を実行する。
【００２０】
したがって、複数のデータに対して単一の命令を並列に実行させることができるＳＩＭＤプロセッサを用いて離散ウェーブレット変換を実行することで、離散ウェーブレット変換処理の複数画素の計算を並列に実行させることが可能になるので、離散ウェーブレット変換を用いた圧縮処理の高速化を図ることが可能になる。
【００２１】
請求項８記載の発明のプログラムは、画像を１又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換し階層的に符号化した圧縮符号を逆離散ウェーブレット変換により復号する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて逆離散ウェーブレット変換を実行する。
【００２２】
したがって、複数のデータに対して単一の命令を並列に実行させることができるＳＩＭＤプロセッサを用いて逆離散ウェーブレット変換を実行することで、逆離散ウェーブレット変換処理の複数画素の計算を並列に実行させることが可能になるので、逆離散ウェーブレット変換を用いた伸長処理の高速化を図ることが可能になる。
【００２３】
請求項９記載の発明の記憶媒体は、１又は複数に分割された矩形領域毎に画素値を離散ウェーブレット変換して階層的に圧縮符号化する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて離散ウェーブレット変換を実行するプログラムを記憶する。
【００２４】
したがって、複数のデータに対して単一の命令を並列に実行させることができるＳＩＭＤプロセッサを用いて離散ウェーブレット変換を実行することで、離散ウェーブレット変換処理の複数画素の計算を並列に実行させることが可能になるので、離散ウェーブレット変換を用いた圧縮処理の高速化を図ることが可能になる。
【００２５】
請求項１０記載の発明の記憶媒体は、画像を１又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換し階層的に符号化した圧縮符号を逆離散ウェーブレット変換により復号する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて逆離散ウェーブレット変換を実行するプログラムを記憶する。
【００２６】
したがって、複数のデータに対して単一の命令を並列に実行させることができるＳＩＭＤプロセッサを用いて逆離散ウェーブレット変換を実行することで、逆離散ウェーブレット変換処理の複数画素の計算を並列に実行させることが可能になるので、逆離散ウェーブレット変換を用いた伸長処理の高速化を図ることが可能になる。
【００２７】
【発明の実施の形態】
最初に、本実施の形態の前提となる「階層符号化アルゴリズム」及び「JPEG2000アルゴリズム」の概要について説明する。
【００２８】
図１は、JPEG2000方式の基本となる階層符号化アルゴリズムを実現するシステムの機能ブロック図である。このシステムは、色空間変換・逆変換部１０１、２次元ウェーブレット変換・逆変換部１０２、量子化・逆量子化部１０３、エントロピー符号化・復号化部１０４、タグ処理部１０５の各機能ブロックにより構成されている。
【００２９】
このシステムが従来のJPEGアルゴリズムと比較して最も大きく異なる点の一つは変換方式である。JPEGでは離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）を用いているのに対し、この階層符号化アルゴリズムでは、２次元ウェーブレット変換・逆変換部１０２において、離散ウェーブレット変換（ＤＷＴ：Discrete Wavelet Transform）を用いている。ＤＷＴはＤＣＴに比べて、高圧縮領域における画質が良いという長所を有し、この点が、JPEGの後継アルゴリズムであるJPEG2000でＤＷＴが採用された大きな理由の一つとなっている。
【００３０】
また、他の大きな相違点は、この階層符号化アルゴリズムでは、システムの最終段に符号形成を行うために、タグ処理部１０５の機能ブロックが追加されていることである。このタグ処理部１０５で、画像の圧縮動作時には圧縮データが符号列データとして生成され、伸長動作時には伸長に必要な符号列データの解釈が行われる。そして、符号列データによって、JPEG2000は様々な便利な機能を実現できるようになった。例えば、ブロック・ベースでのＤＷＴにおけるオクターブ分割に対応した任意の階層（デコンポジション・レベル）で、静止画像の圧縮伸長動作を自由に停止させることができるようになる（後述する図３参照）。
【００３１】
原画像の入出力部分には、色空間変換・逆変換１０１が接続される場合が多い。例えば、原色系のＲ（赤）／Ｇ（緑）／Ｂ（青）の各コンポーネントからなるＲＧＢ表色系や、補色系のＹ（黄）／Ｍ（マゼンタ）／Ｃ（シアン）の各コンポーネントからなるＹＭＣ表色系から、ＹＵＶあるいはＹＣｂＣｒ表色系への変換又は逆変換を行う部分がこれに相当する。
【００３２】
次に、JPEG2000アルゴリズムについて説明する。
【００３３】
カラー画像は、一般に、図２に示すように、原画像の各コンポーネント１１１（ここではＲＧＢ原色系）が、矩形をした領域によって分割される。この分割された矩形領域は、一般にブロックあるいはタイルと呼ばれているものであるが、JPEG2000では、タイルと呼ぶことが一般的であるため、以下、このような分割された矩形領域をタイルと記述することにする（図２の例では、各コンポーネント１１１が縦横４×４、合計１６個の矩形のタイル１１２に分割されている）。このような個々のタイル１１２（図２の例で、Ｒ００，Ｒ０１，…，Ｒ１５／Ｇ００，Ｇ０１，…，Ｇ１５／Ｂ００，Ｂ０１，…，Ｂ１５）が、画像データの圧縮伸長プロセスを実行する際の基本単位となる。従って、画像データの圧縮伸長動作は、コンポーネントごと、また、タイル１１２ごとに、独立に行われる。
【００３４】
画像データの符号化時には、各コンポーネント１１１の各タイル１１２のデータが、図１の色空間変換・逆変換部１０１に入力され、色空間変換を施された後、２次元ウェーブレット変換・逆変換部１０２で２次元ウェーブレット変換（順変換）が施されて、周波数帯に空間分割される。
【００３５】
図３には、デコンポジション・レベル数が３の場合の、各デコンポジション・レベルにおけるサブバンドを示している。すなわち、原画像のタイル分割によって得られたタイル原画像（０ＬＬ）（デコンポジション・レベル０）に対して、２次元ウェーブレット変換を施し、デコンポジション・レベル１に示すサブバンド（１ＬＬ，１ＨＬ，１ＬＨ，１ＨＨ）を分離する。そして引き続き、この階層における低周波成分１ＬＬに対して、２次元ウェーブレット変換を施し、デコンポジション・レベル２に示すサブバンド（２ＬＬ，２ＨＬ，２ＬＨ，２ＨＨ）を分離する。順次同様に、低周波成分２ＬＬに対しても、２次元ウェーブレット変換を施し、デコンポジション・レベル３に示すサブバンド（３ＬＬ，３ＨＬ，３ＬＨ，３ＨＨ）を分離する。図３では、各デコンポジション・レベルにおいて符号化の対象となるサブバンドを、網掛けで表してある。例えば、デコンポジション・レベル数を３としたとき、網掛けで示したサブバンド（３ＨＬ，３ＬＨ，３ＨＨ，２ＨＬ，２ＬＨ，２ＨＨ，１ＨＬ，１ＬＨ，１ＨＨ）が符号化対象となり、３ＬＬサブバンドは符号化されない。
【００３６】
次いで、指定した符号化の順番で符号化の対象となるビットが定められ、図１に示す量子化・逆量子化部１０３で対象ビット周辺のビットからコンテキストが生成される。
【００３７】
この量子化の処理が終わったウェーブレット係数は、個々のサブバンド毎に、「プレシンクト」と呼ばれる重複しない矩形に分割される。これは、インプリメンテーションでメモリを効率的に使うために導入されたものである。図４に示したように、一つのプレシンクトは、空間的に一致した３つの矩形領域からなっている。更に、個々のプレシンクトは、重複しない矩形の「コード・ブロック」に分けられる。これは、エントロピー・コーディングを行う際の基本単位となる。
【００３８】
ウェーブレット変換後の係数値は、そのまま量子化し符号化することも可能であるが、JPEG2000では符号化効率を上げるために、係数値を「ビットプレーン」単位に分解し、画素あるいはコード・ブロック毎に「ビットプレーン」に順位付けを行うことができる。
【００３９】
ここで、図５はビットプレーンに順位付けする手順の一例を示す説明図である。図５に示すように、この例は、原画像（３２×３２画素）を１６×１６画素のタイル４つで分割した場合で、デコンポジション・レベル１のプレシンクトとコード・ブロックの大きさは、各々８×８画素と４×４画素としている。プレシンクトとコード・ブロックの番号は、ラスター順に付けられており、この例では、プレンシクトが番号０から３まで、コード・ブロックが番号０から３まで割り当てられている。タイル境界外に対する画素拡張にはミラーリング法を使い、可逆（５，３）フィルタでウェーブレット変換を行い、デコンポジション・レベル１のウェーブレット係数値を求めている。
【００４０】
また、タイル０／プレシンクト３／コード・ブロック３について、代表的な「レイヤ」構成の概念の一例を示す説明図も図５に併せて示す。変換後のコード・ブロックは、サブバンド（１ＬＬ，１ＨＬ，１ＬＨ，１ＨＨ）に分割され、各サブバンドにはウェーブレット係数値が割り当てられている。
【００４１】
レイヤの構造は、ウェーブレット係数値を横方向（ビットプレーン方向）から見ると理解し易い。１つのレイヤは任意の数のビットプレーンから構成される。この例では、レイヤ０，１，２，３は、各々、１，３，１，３のビットプレーンから成っている。そして、ＬＳＢ（Least Significant Bit：最下位ビット）に近いビットプレーンを含むレイヤ程、先に量子化の対象となり、逆に、ＭＳＢ（Most Significant Bit：最上位ビット）に近いレイヤは最後まで量子化されずに残ることになる。ＬＳＢに近いレイヤから破棄する方法はトランケーションと呼ばれ、量子化率を細かく制御することが可能である。
【００４２】
図１に示すエントロピー符号化・復号化部１０４では、コンテキストと対象ビットから確率推定によって、各コンポーネント１１１のタイル１１２に対する符号化を行う。こうして、原画像の全てのコンポーネント１１１について、タイル１１２単位で符号化処理が行われる。最後にタグ処理部１０５は、エントロピー符号化・復号化部１０４からの全符号化データを１本の符号列データ（コードストリーム）に結合するとともに、それにタグを付加する処理を行う。
【００４３】
図６は、JPEG2000の符号フォーマットの概略構成を示すものである。符号フォーマットは、符号データの始まりを示すＳＯＣ（Start of Codestream）マーカで始まる。ＳＯＣマーカの後には符号化のパラメータや量子化のパラメータ等を記述したタグ情報であるメインヘッダ（Main Header）が続き、その後に実際の符号データが続く。実際の符号データは、ＳＯＴ（Start of Tile-part）マーカで始まり、タグ情報であるタイルヘッダ（Tile Header）、ＳＯＤ（Start of data）マーカ、タイルデータ（符号：bit stream）で構成される。これら画像全体に相当する符号データの後に、符号の終了を示すタグ情報であるＥＯＣ（End of
Codestream）マーカが付加される。
【００４４】
一方、復号化時には、画像データの符号化時とは逆に、各コンポーネント１１１の各タイル１１２の符号列データから画像データを生成する。この場合、タグ処理部１０５は、外部より入力した符号列データに付加されたタグ情報を解釈し、符号列データを各コンポーネント１１１の各タイル１１２の符号列データに分解し、その各コンポーネント１１１の各タイル１１２の符号列データ毎に復号化処理（伸長処理）を行う。このとき、符号列データ内のタグ情報に基づく順番で復号化の対象となるビットの位置が定められるとともに、量子化・逆量子化部１０３で、その対象ビット位置の周辺ビット（既に復号化を終えている）の並びからコンテキストが生成される。エントロピー符号化・復号化部１０４で、このコンテキストと符号列データから確率推定によって復号化を行い、対象ビットを生成し、それを対象ビットの位置に書き込む。このようにして復号化されたデータは周波数帯域毎に空間分割されているため、これを２次元ウェーブレット変換・逆変換部１０２で２次元ウェーブレット逆変換を行うことにより、画像データの各コンポーネントの各タイルが復元される。復元されたデータは色空間変換・逆変換部１０１によって元の表色系の画像データに変換される。
【００４５】
以上が、「JPEG2000アルゴリズム」の概要である。
【００４６】
以下、本発明の実施の一形態について説明する。なお、ここでは、JPEG2000を代表とする画像圧縮伸長技術に関する例について説明するが、言うまでもなく、本発明は以下の説明の内容に限定されるものではない。
【００４７】
図７はカメラシステム１の概略構成を示すブロック図である。図７に示すように、カメラシステム１は、画像を撮影する画像入力装置２と、この撮影した画像データを圧縮符号化及び伸長する画像圧縮伸長装置３と、符号化された符号化データの入力を許容する符号化データ入力装置４と、カメラシステム１の全体を制御するマイクロコンピュータを備えた制御部５とを備えている。
【００４８】
画像圧縮伸長装置３は、画像データの圧縮処理及び伸長処理を行う本発明の画像処理装置を実施するものである。この画像圧縮伸長装置３は、画像入力装置２で撮影した画像データに対して画像圧縮処理を行い、または、取得した符号化データに対して画像伸長処理を行うが、それらの処理の全部又は一部は、所定の制御プログラムに基づいて、プロセッサ３０（図８参照）が実行する。
【００４９】
図８は、画像圧縮伸長装置３の処理系のハードウエア構成を示すブロック図である。図８に示すように、この処理系は、各種演算を行い、各部を集中的に制御するコンピュータの主要部であるプロセッサ３０と、本発明のプログラムを実施するプロセッサ３０で読取り可能な各種の制御プログラムや、各種の固定データを記憶していて、本発明の記憶媒体を実施するフラッシュメモリであるＲＯＭ（Read Only Memory）３１と、各種データを書き換え可能に記憶し、プロセッサ３０の作業エリアとなるメモリであるＲＡＭ（Random Access Memory）３２と、Ｉ／Ｏポート３３とが、バス３４で接続されている。すなわち、プロセッサ３０と、ＲＯＭ３１と、ＲＡＭ３２とにより、コンピュータが構成されている。ＲＯＭ３１は、そのＲＯＭ３１に記憶されている制御プログラムなどを、Ｉ／Ｏポート３３を介し、図示しない外部装置からダウンロードして書き換えることが可能である。また、図８に示すように、本実施の形態のプロセッサ３０は、ＳＩＭＤ（Single Instruction-stream Multiple Data-stream）型プロセッサ（ＳＩＭＤプロセッサ）４１を備えている。
【００５０】
次に、ＳＩＭＤ型プロセッサ４１について簡単に説明する。図９は、ＳＩＭＤ型プロセッサ４１の構成を示すブロック図である。図９に示すように、ＳＩＭＤ型プロセッサ４１は、グローバルプロセッサ４２を備えている。グローバルプロセッサ４２は、図示しないプログラムＲＡＭとデータＲＡＭとを内蔵し、ＲＯＭ３１に格納されている制御プログラムを解読して、各種制御信号を生成する。この制御信号は内蔵する各種ブロックの制御以外にもＳＩＭＤ命令用レジスタであるレジスタファイル４３、演算アレイ４４に供給される。また、ＧＰ（グローバルプロセッサ）命令実行時は、ＳＩＭＤ型プロセッサ４１が内蔵する汎用レジスタ、ＡＬＵ（算術論理演算器）等（いずれも図示せず）を使用して、各種演算処理、プログラム制御処理を行う。
【００５１】
レジスタファイル４３は、ＰＥ（プロセッサ・エレメント）命令で処理されるデータを保持している。ＰＥ命令は、ＳＩＭＤタイプの命令であり、レジスタファイル４３に保持されている複数のデータに対して同時に同じ処理を行う。このレジスタファイル４３からのデータの読み出し、書き込みの制御は、グローバルプロセッサ４２からの制御によって行われる。読み出されたデータは演算アレイ４４に送られ、演算アレイ４４での演算処理後にレジスタファイル４３に書き込まれる。
【００５２】
演算アレイ４４は、ＰＥ命令の演算処理を行う。処理の制御はすべてグローバルプロセッサ４２から行われる。
【００５３】
グローバルプロセッサ４２には、前述のように本プロセッサ４１のプログラム格納用のプログラムＲＡＭと、演算データ格納用のデータＲＡＭが内蔵されている他、プログラムのアドレスを保持するプログラムカウンタ（ＰＣ）、演算処理のデータ格納のための汎用レジスタ、レジスタ退避、復帰時に退避先データＲＡＭアドレスを保持するスタックポインタ（ＳＰ）、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ（ＬＳ）、同じくＩＲＱ時とＮＭＩ時の分岐元アドレスを保持するＬＩレジスタ、ＬＮレジスタ、プロセッサの状態を保持するプロセッサステータスレジスタ（Ｐ）が内蔵されている（いずれも図示せず）。
【００５４】
グローバルプロセッサ４２は、これらのレジスタと図示しない命令デコーダ、ＡＬＵ（論理演算器）、メモリ制御回路、割り込み制御回路、外部Ｉ／Ｏ制御回路、ＧＰ演算制御回路を使用して、ＧＰ命令の実行を行う。また、ＰＥ命令実行時は命令デコーダ、図示しないレジスタファイル制御回路、ＰＥ演算制御回路を使用して、レジスタファイル４３の制御と演算アレイ４４の制御を行う。
【００５５】
すなわち、このＳＩＭＤ型プロセッサ４１は１次元ＳＩＭＤ型プロセッサであり、複数のデータに対し、単一の命令を並列に実行させることができるものである。
【００５６】
このようなＳＩＭＤ型プロセッサ４１を備えるプロセッサ３０がＲＯＭ３１に格納されている制御プログラムに従い、ＲＡＭ３２を作業エリアとして動作することにより、以下のような処理を実行する。ここでは、「JPEG2000アルゴリズム」に従った圧縮処理のうち、２次元ウェーブレット変換・逆変換部１０２における実数型離散ウェーブレット変換（順変換）（以下、実数型ＤＷＴという）処理について説明する。
【００５７】
実数型ＤＷＴ処理においては、まず、レジスタファイル４３に実数型ＤＷＴ処理に必要な９つのローパスフィルタの係数（フィルタ係数）を設定して初期化する。この係数は、実数型ＤＷＴ処理が全て終了するまで保持される。これにより、通常の浮動小数点ユニットを用いる場合に比べると、９つのフィルタ係数を全画素分初期化する時間が不要となるので、高速化に大変寄与することとなる。ここで、図１０はレジスタファイル４３に記憶される係数の一例を示す説明図である。図１０に示すように、レジスタファイル４３には、２次元ウェーブレット変換・逆変換部１０２における実数型ＤＷＴ処理に必要な９つのローパスフィルタの係数が記憶保持されている。
【００５８】
次に、レジスタファイル４３に対して設定する画素データである変換対象データをＲＡＭ３２に連続して配置した後、レジスタファイル４３に転送する。ここで、図１１は、レジスタファイル４３に対して変換対象データを転送する様子を示すものである。図１１に示すように、変換対象データはＲＡＭ３２内に整列されてはいないので、ＲＡＭ３２内に一度整理し、各データを１つずつレジスタファイル４３にロードする。
【００５９】
その後、ＳＩＭＤ命令を使用する。図１２は、レジスタファイル４３上でのＳＩＭＤ命令を使用した変換処理を示すものであり、フィルタ係数と変換対象データとの乗算を９つの係数分同時に並行して行い、その結果を加算してウェーブレット変換を行う。
【００６０】
なお、実数型ＤＷＴ処理の結果はすぐには参照されないデータであるので、プロセッサ３０のデータキャッシュ（図示せず）を汚染しないようにキャッシュのフィルを行わないでＲＡＭ３２に書き込む。これにより、処理の高速化を実現することができる。
【００６１】
これにより、実数型ＤＷＴ処理に必要な画素データをＳＩＭＤ型プロセッサ４１のレジスタファイル４３に全てロードした後にＳＩＭＤ命令を使用することで、複数画素の演算を並列に実行することができ、演算回数分のループを構成する必要がなくなるので、処理の高速化を実現することができる。
【００６２】
ここに、複数のデータに対して単一の命令を並列に実行させることができるＳＩＭＤ処理を用いて離散ウェーブレット変換を実行することで、離散ウェーブレット変換処理の複数画素の計算を並列に実行させることができるので、離散ウェーブレット変換を用いた圧縮処理の高速化を図ることができる。
【００６３】
なお、本実施の形態においては、２次元ウェーブレット変換・逆変換部１０２における実数型離散ウェーブレット変換（順変換）処理について説明したが、符号化データ入力装置４を介して入力された符号化データの伸長処理の際の２次元ウェーブレット変換・逆変換部１０２における逆離散ウェーブレット変換処理においても同様にＳＩＭＤ命令を使用することで、処理の高速化を実現することができる。
【００６４】
ここに、複数のデータに対して単一の命令を並列に実行させることができるＳＩＭＤ処理を用いて逆離散ウェーブレット変換を実行することで、逆離散ウェーブレット変換処理の複数画素の計算を並列に実行させることができるので、逆離散ウェーブレット変換を用いた伸長処理の高速化を図ることができる。
【００６５】
なお、本実施の形態においては、ＲＯＭ３１に記憶されたプログラムに基づいてプロセッサ３０が備えるＳＩＭＤ型プロセッサ４１でＳＩＭＤ処理を実行するようにしたが、これに限るものではない。例えば、図１３に示すように、画像圧縮伸長装置３に論理回路５０を設け、この論理回路５０にＳＩＭＤ型プロセッサ４１を備える。そして、論理回路５０が備えるＳＩＭＤ型プロセッサ４１でＳＩＭＤ処理を実行するようにしても良い。すなわち、リアルタイム性を重要視する必要があるような場合には、論理回路５０の動作により、ＳＩＭＤ型プロセッサ４１におけるＳＩＭＤ処理を実現するようにするのが望ましい。
【００６６】
【発明の効果】
請求項１記載の発明の画像処理装置によれば、１又は複数に分割された矩形領域毎に画素値を離散ウェーブレット変換して階層的に圧縮符号化する画像処理装置において、離散ウェーブレット変換を、ＳＩＭＤ（Single Instruction-stream Multiple Data-stream）処理を用いて実行することにより、離散ウェーブレット変換処理の複数画素の計算を並列に実行させることができるので、離散ウェーブレット変換を用いた圧縮処理の高速化を図ることができる。
【００６７】
請求項２記載の発明によれば、請求項１記載の画像処理装置において、ＳＩＭＤ命令用レジスタに離散ウェーブレット変換に必要なフィルタ係数を設定して初期化し、離散ウェーブレット変換が全て終了するまで保持することにより、通常の浮動小数点ユニットを用いる場合に比べ、離散ウェーブレット変換に必要なフィルタ係数を全画素分初期化する時間が不要となるので、離散ウェーブレット変換を用いた圧縮処理の更なる高速化を図ることができる。
【００６８】
請求項３記載の発明の画像処理装置によれば、画像を１又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換し階層的に符号化した圧縮符号を逆離散ウェーブレット変換により復号する画像処理装置において、逆離散ウェーブレット変換を、ＳＩＭＤ（Single Instruction-stream Multiple Data-stream）処理を用いて実行することにより、逆離散ウェーブレット変換処理の複数画素の計算を並列に実行させることができるので、逆離散ウェーブレット変換を用いた伸長処理の高速化を図ることができる。
【００６９】
請求項４記載の発明によれば、請求項３記載の画像処理装置において、ＳＩＭＤ命令用レジスタに逆離散ウェーブレット変換に必要なフィルタ係数を設定して初期化し、逆離散ウェーブレット変換が全て終了するまで保持することにより、通常の浮動小数点ユニットを用いる場合に比べ、逆離散ウェーブレット変換に必要なフィルタ係数を全画素分初期化する時間が不要となるので、逆離散ウェーブレット変換を用いた伸長処理の更なる高速化を図ることができる。
【００７０】
請求項５記載の発明によれば、請求項１ないし４のいずれか一記載の画像処理装置において、ＳＩＭＤ処理を行う対象データをメモリ上に連続して配置した後に、ＳＩＭＤ命令用レジスタに転送することにより、ＳＩＭＤ処理を行う対象データを、整列した状態でＳＩＭＤ命令用レジスタに対して順次転送することができる。
【００７１】
請求項６記載の発明によれば、請求項１ないし５のいずれか一記載の画像処理装置において、ウェーブレット変換処理結果を、キャッシュのフィルを行わずにメモリに書き込むことにより、データキャッシュを汚染することがなくなり、また、処理の高速化を実現することができる。
【００７２】
請求項７記載の発明のプログラムによれば、１又は複数に分割された矩形領域毎に画素値を離散ウェーブレット変換して階層的に圧縮符号化する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて離散ウェーブレット変換を実行することにより、離散ウェーブレット変換処理の複数画素の計算を並列に実行させることができるので、離散ウェーブレット変換を用いた圧縮処理の高速化を図ることができる。
【００７３】
請求項８記載の発明のプログラムによれば、画像を１又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換し階層的に符号化した圧縮符号を逆離散ウェーブレット変換により復号する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて逆離散ウェーブレット変換を実行することにより、逆離散ウェーブレット変換処理の複数画素の計算を並列に実行させることができるので、逆離散ウェーブレット変換を用いた伸長処理の高速化を図ることができる。
【００７４】
請求項９記載の発明の記憶媒体によれば、１又は複数に分割された矩形領域毎に画素値を離散ウェーブレット変換して階層的に圧縮符号化する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて離散ウェーブレット変換を実行するプログラムを記憶することにより、離散ウェーブレット変換処理の複数画素の計算を並列に実行させることができるので、離散ウェーブレット変換を用いた圧縮処理の高速化を図ることができる。
【００７５】
請求項１０記載の発明の記憶媒体によれば、画像を１又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換し階層的に符号化した圧縮符号を逆離散ウェーブレット変換により復号する画像処理装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、前記コンピュータに備えられたＳＩＭＤ（Single Instruction-stream Multiple Data-stream）プロセッサを用いて逆離散ウェーブレット変換を実行するプログラムを記憶することにより、逆離散ウェーブレット変換処理の複数画素の計算を並列に実行させることができるので、逆離散ウェーブレット変換を用いた伸長処理の高速化を図ることができる。
【図面の簡単な説明】
【図１】本発明の前提となるJPEG2000方式の基本となる階層符号化アルゴリズムを実現するシステムの機能ブロック図である。
【図２】原画像の各コンポーネントの分割された矩形領域を示す説明図である。
【図３】デコンポジション・レベル数が３の場合の、各デコンポジション・レベルにおけるサブバンドを示す説明図である。
【図４】プレシンクトを示す説明図である。
【図５】ビットプレーンに順位付けする手順の一例を示す説明図である。
【図６】JPEG2000の符号フォーマットの概略構成を示す説明図である。
【図７】本発明の実施の一形態のカメラシステムの概略構成を示すブロック図である。
【図８】画像圧縮伸長装置の処理系のハードウエア構成を示すブロック図である。
【図９】ＳＩＭＤ型プロセッサの構成を示すブロック図である。
【図１０】レジスタファイルに記憶される係数の一例を示す説明図である。
【図１１】レジスタファイルに対して変換対象データを転送する様子を示す説明図である。
【図１２】レジスタファイル上でのＳＩＭＤ命令を使用した変換処理を示す説明図である。
【図１３】画像圧縮伸長装置の処理系のハードウエア構成の変形例を示すブロック図である。
【符号の説明】
３        画像処理装置
３０，３１，３２      コンピュータ
３１      記憶媒体
３２      メモリ
４１      ＳＩＭＤプロセッサ
４３      ＳＩＭＤ命令用レジスタ
【図１】
2004201047.tif 000003
【図２】
2004201047.tif 000004
【図３】
2004201047.tif 000005
【図４】
2004201047.tif 000006
【図５】
2004201047.tif 000007
【図６】
2004201047.tif 000008
【図７】
2004201047.tif 000009
【図８】
2004201047.tif 000010
【図９】
2004201047.tif 000011
【図１０】
2004201047.tif 000012
【図１１】
2004201047.tif 000013
【図１２】
2004201047.tif 000014
【図１３】
2004201047.tif 000015