(57)【特許請求の範囲】
【請求項１】
イメージデータを、該イメージデータの重複しない部分である複数のタイルにタイリングするステップ、および
イメージデータの各タイルを、変換係数の連続層を生成するように一連の変換層をイメージデータのタイルへ適用することによって、処理するステップから成り、前記処理するステップは、最後のタイルを除く各タイルからの中間変換係数値が後のタイルを処理する際に使用可能であるようにして、成されるイメージデータ処理方法であり、
各タイルが処理されると同時に、近傍タイルの処理に際して使用するために、複数の変換層からの変換係数がメモリ内にセーブされ、前記処理するステップが、前の変換層によって生成された変換係数と、処理中のタイルの近傍のタイルの処理に際して既にメモリ内にセーブされた変換係数の対応するものの両方に、少なくとも複数の変換層を適用するステップを含み、前記イメージからはみだすタイルに関しては、現行タイル処理に際して使用されるべき既に処理済みのタイルからの変換係数は存在しない、イメージデータ処理方法。
【請求項２】
前記タイルの第１部分集合中の各タイルを処理する際に、変換係数の部分集合をメモリアレイにセーブし、そして
前記タイルの第１の部分集合中の各タイルを処理する際の変換係数のセーブが、同じメモリアレイを使用することを更に含む請求項１記載の方法。
【請求項３】
前記メモリアレイが、変換係数の１つ以上の行を記憶するためのメモリアレイである請求項２記載の方法。
【請求項４】
前記メモリアレイが、変換係数の１つ以上の行を記憶するための行メモリアレイと、変換係数の一つ以上の列を記憶するための列アレイとである請求項２記載の方法。
【請求項５】
前記タイルが境界を有し、変換が非対称であって、第１側部上の各タイル境界を越えて伸延するが、前記第１側部に対向する第２側部上の前記タイル境界を越えて伸延することのない請求項１に記載の方法。
【請求項６】
前記変換がウェーブレットまたはウェーブレット様分解変換である請求項１に記載の方法。
【請求項７】
同じタイルアレイ（２２０）を使用して第１部分集合中の各タイルを処理することを更に含み、同じタイルアレイを使用して、第１部分集合中の各タイルを処理する間、タイルのイメージデータ及び変換係数の連続集合を記憶することを含む請求項２記載の方法。
【請求項８】
イメージ処理装置（１００）であって、
イメージデータのアレイを生成するイメージ捕捉装置（１０２）と、
前記イメージデータのタイルを処理するイメージ処理回路（１０６）とを有し、前記タイルが、処理済みイメージデータを生成するように前記イメージデータの重複しない部分を有し、
処理済みイメージデータをデータイメージファイルとして記憶するメモリ（１０８）を有し、
前記イメージ処理回路（１０６）において、
変換係数の連続層を生成するように一連の変換層をイメージデータのタイルへ適用することによって、イメージデータの各タイルを処理する手段を有し、前記処理が、最後のタイルを除いて、各タイルからの中間変換係数を後のタイルの処理で使用することができるように、連続して行われ、
前記処理する手段が、各タイルの処理の際に、近傍のタイルを処理する間に使用するために、複数の変換層からの変換係数をメモリにセーブし、各タイルの処理が、前の変換層によって生成された変換係数と、処理中のタイルの近傍のタイルの処理に際して既にメモリにセーブされた変換係数の対応するものの両方に、少なくとも複数の変換層を適用することを含み、イメージからはみだすタイルに対して、現行タイルの処理中に使用されるべき既に処理済みのタイルからの変換係数は存在しないことを特徴とする装置。
【請求項９】
圧縮されたイメージデータのアレイからイメージデータのアレイを復元する方法であって、
圧縮された前記イメージデータのタイルを処理するステップを含み、復元されたイメージを表す復元されたイメージデータを生成するように前記タイルが圧縮された前記イメージデータの重複しない部分を有し、
圧縮されたイメージデータのタイルの各々を処理する際に、変換係数の連続集合および復元されたイメージデータの１つの集合を生成するように、一連の逆変換層を前記タイルへ適用するステップと、
復元された前記イメージデータを記憶またはディスプレイするステップとを含み、
タイルの各々の前記処理が、近傍のタイルの処理中に使用するために、複数の変換層から変換係数をメモリ内にセーブすることを含み、タイルの各々の前記処理が、前の変換層によって生成された変換係数と、処理中のタイルの近傍のタイルの処理に際して既にメモリにセーブされた変換係数の対応するものの両方に、少なくとも複数の変換層を適用することを含み、イメージからはみだすタイルについて、現行タイルの処理中に使用されるべき既に処理済みのタイルから変換係数が存在しない、方法。
【請求項１０】
前記タイルが境界を有し、変換が非対称であって、第１側部上の各タイル境界を越えて伸延するが、前記第１側部に対向する第２側部上の前記タイル境界を越えて伸延することのない請求項９に記載の方法。
【請求項１１】
イメージ処理システムであって、
圧縮済みイメージデータのアレイを記憶するメモリと、
前記圧縮済みイメージデータのタイルを処理するイメージ復元回路とを有し、前記タイルが復元済みイメージを表す復元済みイメージデータを生成するように前記圧縮済みイメージデータの重複しない部分を有し、
前記イメージ復元回路が、
変換係数の連続集合を生成するように一連の変換層をイメージデータのタイルに適用することによって、イメージデータの各タイルを処理する手段を含み、前記処理が、最後のタイルを除いた各タイルからの中間変換係数が、後でタイルを処理する時に、使用できるように、連続して行われる、イメージ処理システムにおいて、
前記処理する手段が、各タイルを処理する間に、複数の変換層からの変換係数を、近傍のタイルを処理する間に使用するために、メモリ内に、セーブし、各タイルの処理が、前の変換層によって生成された変換係数と、処理中のタイルの近傍のタイルの処理に際して既にメモリにセーブされた変換係数の対応するものの両方に、少なくとも複数の変換層を適用することを含み、イメージからはみだすタイルについて、現行のタイルを処理する間に使用されるべき既に処理済みのタイルからの変換係数が存在しないことを特徴とするイメージ処理システム。
【請求項１２】
前記タイルが、境界を有し、変換が、非対称であり、第１側部上の各タイル境界を越えて伸延するが、前記第１側部に対向する第２側部上の前記タイル境界を越えて伸延することのない請求項１１に記載の方法。
【発明の詳細な説明】
【０００１】
本出願は１９９８年７月２４日出願された米国暫定特許出願第６０／０９４，１２９号の継続出願である。
【０００２】
本発明は一般的にデジタルカメラおよび他のデバイスにおけるイメージの処理および記憶に関し、この場合には大型イメージファイルが比較的小さいメモリを用いて処理されなければならず、詳細には、映像（ピクチャ）よりもはるかに小さい変換タイルサイズを使用し、かつ、変換が映像全体へ一度に適用された場合に必要とされるよりもはるかに少ないワーキングメモリを使用し、しかも、望ましくないタイル境界効果を生成することなく、映像（ピクチャ）へウェーブレット（ｗａｖｅｌｅｔ）またはウェーブレット様変換を適用するシステムおよび方法に関する。
【０００３】
【発明の背景】
デジタルカメラは一般にイメージデータを処理するための高速かつ高価なワーキングメモリ、および、イメージファイルを記憶するための不揮発性内部、及び／又は、取外し可能な記憶装置を有する。多くのデジタルカメラはイメージファイルを記憶するための取外し可能なフラッシュメモリカードを使用する。ワーキングメモリは、イメージ処理回路と同じＡＳＩＣ（特定用途向け集積回路）上に装備されることが好ましく、従って、非常に高価である。大型ワーキングメモリを収容するためには、ワーキングメモリは個別の集積回路上に実装されなければならず、これはメモリへのアクセスを実質的に低速化するので高度に好ましくなく、カメラの動作を低速化し、ワーキングメモリ及びプロセッサ回路の両方において複雑な追加インタフェース回路の使用を必要とし、より多くのバッテリ電力を必要とするはずである。
【０００４】
画素当たり２４ビットのカラーイメージデータを有する１０２４ｘ１０２４画素のイメージを生成するデジタルカメラに関して数値例を提示すれば、全イメージを記憶するために必要なワーキングメモリ量は３メガバイト（ＭＢ）である。イメージを処理するために追加的な作動記憶が必要とされるはずである。市販のデジタルカメラと関連した電力消費およびコスト面での制限条件が一定であるものとすれば、少なくとも１９９９年現在における３ＭＢは単に実現可能なワーキングメモリ量ではない。
【０００５】
従来の当該技術分野において周知であるように、デジタルイメージは、全体を一度に処理する代りに一時に一部分を処理可能であり、それによって、メモリ必要条件を軽減することが可能である。たとえば、ＪＰＥＧ圧縮およびイメージの符号化に使用されるＤＣＴ変換は伝統的には８ｘ８画素のタイル上で使用される。ただし、処理するためにイメージのタイリングを用いる場合のよく知られた問題は、タイリング（タイル張り）が望ましくないタイル境界効果を生成することである。タイルのサイズが非常に小さければ、人間の目にとってタイリング効果を比較的重要でなくするので、ＪＰＥＧイメージにおけるＤＣＴタイリングの境界効果は許容可能であるものと考えられる。
【０００６】
ただし、ＤＣＴ変換の代わりにウェーブレットまたはウェーブレット様変換を使用する場合には、例えば８ｘ８画素のような非常に小さいタイルを使用することは実用的でない。ウェーブレット様変換は、ＤＣＴ変換より非常に良好なデータ圧縮を提供することが実証済みであり、従って、適度のワーキングメモリ量を使用して、タイリング効果が回避可能であれば、デジタルカメラにウェーブレット様変換を使用することが望ましい。
【０００７】
本発明の一目的は、例えば３２ｘ３２または１６ｘ３２画素のタイルのような適度のサイズのタイルによるウェーブレット様変換を使用してイメージデータを変換することにより、同時に望ましくないタイル境界効果の生成を回避しながら、例えば５または６ＫＢ程度の適量のワーキングメモリを用いてイメージを処理するデジタルカメラを提供することにある。
【０００８】
【発明の概要】
要約すれば、本発明は、ワーキングメモリ、イメージ処理回路、および、イメージファイルを記憶する不揮発性メモリを有するデジタルカメラである。イメージ処理回路は、イメージ捕捉メカニズムから受け取ったデータをイメージするために、例えばウェーブレット様変換のような事前定義された変換を生成された変換イメージデータへ適用し、イメージファイルを生成するために変換イメージデータへデータ圧縮方法を適用する。
【０００９】
イメージ処理回路はイメージ再構成回路およびイメージビューア上のディスプレイに適した復元済みイメージを生成するようにイメージファイルの指定された１つにデータ圧縮解除方法および逆変換を逐次的に適用するための１つ又は複数の状態マシンも有する。
【００１０】
イメージ処理回路は捕捉されたイメージをタイリングし、最後のタイルを除く各タイルからの中間変換値が後のタイルを処理する際に使用可能であるように事前に定義された順序に従ってこれらのタイルを処理する。タイルはイメージデータの重複しない部分である。イメージデータの各タイルは、変換係数の連続層を生成するように事前に定義された一連の変換層をイメージデータのタイルへ適用することによって処理される。好ましい一実施形態において、変換層はウェーブレット様分解変換を連続的に適用することである。各タイルが処理されると同時に、他方において、近傍タイルの処理に際して使用するために、複数の変換層からの縁変換係数の事前定義された１組がメモリ内にセーブされる。更に、各タイルを処理するステップは、前の縁変換層によって生成された変換係数および処理中タイル近傍のタイル処理に際して既にメモリ内にセーブされている縁変換係数の対応する幾つかの両方に少なくとも複数の変換層を適用するステップを含む。ただし、当該イメージの縁に沿った幾つかのタイルに関しては、現行タイル処理に際して使用されるべき既に処理済みのタイルからの縁変換係数は存在しない。
【００１１】
【発明の実施の形態】
デジタルカメラアーキテクチャ
本発明に従うデジタルカメラシステム１００の実施形態を図１に示す。デジタルカメラシステム１００は、例えばＣＣＤセンサアレイ又はデジタル的に符号化された情報の配列体としてイメージを捕捉するために適した他のあらゆるメカニズムなどのイメージ捕捉デバイス１０２を含む。従って、イメージ捕捉デバイスはアナログイメージ情報をデジタル値に変換するアナログからデジタルへの変換（ＡＤＣ）回路を含むものとする。
【００１２】
一般にランダムアクセスメモリであるワーキングメモリ１０４はデジタル的に符号化されたイメージ情報をイメージ捕捉デバイス１０２から受け取る。更に一般的にイメージを記憶するためには、カメラのデータ（即ち、イメージ）処理回路１０６によって変換、圧縮、その他の処理を施されたデジタル的に符号化されたイメージが用いられる。一実施形態において、データ処理回路１０６はハードワイヤードロジック及び１組の事前定義されたイメージ処理オペレーションを実施するための１組の状態マシンから成る。
【００１３】
一代替実施形態において、データ処理回路１０６は、部分的に、又は、全体的に高速汎用マイクロプロセッサ及び１組のソフトウェア手順を使用して実装され得る。ただし、１９９８年に利用可能な技術を使用した場合、カメラ撮影を可能にするに充分な、即ち幾つかの市販製品用必要条件である例えば毎秒２０映像の撮影を可能にするに充分な高速において、充分な解像度のイメージ（例えば、１２８０ｘ８４０画素のフルカラーイメージ）を処理および記憶することは困難なはずである。処理技法の並列利用または良好に設計された低圧ソフトウェアを介して、デジタルカメラが必要とする高速イメージ処理を汎用イメージデータマイクロプロセッサがサポートすることが可能であれば、この種の汎用マイクロプロセッサを用いて、データ処理回路１０６が実装可能である。
【００１４】
各イメージは、データ処理回路１０６によって処理された後で、「フラッシュ」（即ち、ＥＥＰＲＯＭ）メモリ技術を用いて一般的に実装可能な不揮発性メモリ記憶デバイス１０８内に「イメージファイル」として記憶される。不揮発性メモリ記憶デバイス１０８は取外し可能なメモリカードとして実装されることが好ましい。こうすれば、カメラのユーザは、１個のメモリカードを取り外し、別のカードを差し込むことによって、追加撮影が可能になる。ただし、幾つかの実装においては、不揮発性メモリ記憶デバイス１０８は取外し可能でなく、この場合、一般にカメラは、例えば汎用デスクトップコンピュータのような他のデバイスに対してカメラがイメージファイルを移送可能にするデータアクセスポート１１０を備える。取外し可能な不揮発性メモリ１０８を備えたデジタルカメラもデータアクセスポート１１０を備えることも可能である。
【００１５】
デジタルカメラ１００は、カメラにコマンドを与えるための１組のボタン１１２を備える。イメージ捕捉ボタンに加えて、次に撮影しようとする映像の品質レベルを選択するため、カメラのイメージビューア１１４上で見るためにメモリ内イメージをスクロールするため、不揮発性のイメージメモリ１０８からイメージを削除するため、および、カメラの他の全ての機能を呼び出すために使用可能な他の幾つかのボタンが備えられる。この種の他の機能には、フラッシュ光源の使用を可能にする機能およびコンピュータに対してイメージファイルを移送する機能が含まれる。一実施形態においては、これらのボタンは電気的接触スイッチであるが、他の実施形態においては、これらのうちの少なくとも幾つかは、ユーザインタフェースのディスプレイ１１６上、又は、イメージビューア１１４上のタッチスクリーンボタンとして実装可能である。
【００１６】
ユーザインタフェースディスプレイ１１６は、（Ａ）イメージビューア１１４と分離されたＬＣＤディスプレイデバイス、又は、（Ｂ）イメージビューア１１４上にディスプレイされるイメージのいずれかとして一般に実装される。メニュー、ユーザプロンプト、及び、不揮発性イメージメモリ１０８内に記憶されているイメージに関する情報は、当該ディスプレイがどのような方法で実装されるかには無関係にユーザインタフェースディスプレイ１１６上にディスプレイ可能である。
【００１７】
イメージが捕捉され、処理され、不揮発性イメージメモリ１０８内に記憶された後で、関連イメージファイルは、イメージビューア上で見るために、メモリ１０８から検索可能である。更に詳細には、イメージファイルは、その変換および圧縮された形式からフレームバッファ１１８用に適したデータアレイ（配列体）に戻るように変換される。フレームバッファ内のイメージデータはイメージビューア１１４上にディスプレイされる。デイト／タイム回路１２０は現在の日付と時刻を追跡するために用いられ、記憶された各イメージには当該イメージが撮影された日付と時刻がスタンプされる。
【００１８】
【イメージ捕捉および処理の概観】
図２において、デジタルカメラのイメージ捕捉メカニズム１０２（図１）から得られた未加工のイメージデータ１４０は「イメージデータのタイリング（タイル張り」によって処理される。更に詳細には、未加工イメージは、各タイルが例えば３２ｘ３２（即ち、３２行ｘ３２列）のような事前定義済みサイズであるタイル１４４の配列体として扱われる。タイルはイメージデータの非重複部分である。幾つかのタイルは未加工イメージの縁の部分ではみだすことがあるとしても、処理されるべき未加工イメージ全体を覆うに充分な個数のタイルが用いられる。タイルのはみだした部分は、おおっている部分は、ウェーブレット変換処理に際して、境界データ値のコピーによってで満たされる。タイル位置は当該イメージの左上隅における原点に対して規定され、第１座標はタイルのＹ位置（画素またはタイルの係数）を示し、第２座標はタイルのＸ位置（画素またはタイルの係数）を示す。従って、位置０，６４におけるタイルは当該イメージの最上部に位置し、当タイルの原点は画素の最上行の６４番目の画素に位置する。
【００１９】
ウェーブレットまたはウェーブレット様変換は、当該タイル内の未加工イメージデータを１組の変換係数１４２に変換するように、当該イメージの各タイルに連続的に適用される。これらのタイルは事前決定されたラスタ走査順に処理される。換言すれば、最上行のタイルは、直ぐ下に位置する次のタイル行を処理する以前に、一端部（例えば、左端）から反対の端（例えば右端）まで処理され、このような処理が、未加工イメージデータのタイルの最下行の処理が完了するまで継続される。
【００２０】
各タイルに関する変換係数は、ウェーブレット様分解変換の連続する適用によって生成される。未加工のイメージ画像データの初期の二次元配列体（アレイ）へのウェーブレット分解変換の第１適用はＬＬ、ＨＬ１、ＬＨ１、ＨＨ１とラベル表示される４組の係数を生成する。各ウェーブレット分解変換は前のウェーブレット変換段階によって生成された係数のＬＬ組にのみ連続的に適用され、ＬＬ、ＨＬｘ、ＬＨｘ、ＨＨｘとラベル表示された４組の新規係数を生成する。ここに、ｘはウェーブレット変換「層」又は反復を表す。最後のウェーブレット分解変換反復の後で、ただ１つのＬＬ組が残る。生成された係数の全個数は元のデータアレイ内データサンプルの個数に等しい。各変換反復によって生成された係数の異なる組は層と呼ばれることもある。１つのイメージに関して生成されたウェーブレット変換層の個数は一般に初期イメージの解像度の関数である。サイズ３２ｘ３２のタイルの場合には、一般に、４個のウェーブレット変換層が実施される。ウェーブレット様変換の適用によって生成されるウェーブレット係数は、変換されたタイル内の全ての係数を量子化値によって割り算することによって量子化されることが好ましい。
【００２１】
好ましい一実施形態に用いられたウェーブレット様変換の詳細について以下に詳述する。好ましい実施形態のウェーブレット様変換を実施する回路は、背景情報として引用によりここに組み込み済みの米国特許第５，９０９，５１８号「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｐｅｒｆｏｒｍｉｎｇ  Ｗａｖｅｌｅｔ  ａｎｄ  Ｉｎｖｅｒｓｅ  Ｗａｖｅｌｅｔ  Ｌｉｋｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ  ｏｆ  Ｄｉｇｉｔａｌ  Ｄａｔａ  Ｕｓｉｎｇ  Ｏｎｌｙ  Ａｄｄ  ａｎｄ  Ｂｉｔ  Ｓｈｉｆｔ  Ａｒｉｔｈｍｅｔｉｃ  Ｏｐｅｒａｔｉｏｎｓ」（加算とビット演算のみを用いたデジタルデータのウェーブレットおよび逆ウェーブレット様変換を実施するシステム及び方法）に記述されているウェーブレット変換およびデータ量子化の方法に非常に類似する。
【００２２】
未加工イメージの各タイルがウェーブレット係数に変換された後で、結果として得られるウェーブレット係数のアレイは圧縮され、かつコード化される。ウェーブレット係数１４４の各タイルは圧縮され、疎（スパース）データ符号化技法を用いて符号化される。一実施形態において、タイルの圧縮および符号化方法は、背景情報として引用によりここに組み込み済みの１９９７年５月１６日付米国特許出願第０８／８５８，０３５号「Ｓｙｓｔｅｍ ａｎｄ Ｍｅｔｈｏｄ ｆｏｒ Ｓｃａｌａｂｌｅ Ｃｏｄｉｎｇ ｏｆ Ｓｐａｒｓｅ Ｄａｔａ Ｓｅｔｓ」（スパースデータ集合をスケーラブル符号化するシステム及び方法）、現行米国特許第５，９４９，９１１号に詳細に記述されている方法である。
【００２３】
図３Ａにおいて、１つのイメージの全てのタイルが変換、圧縮、符号化された場合、結果として得られる符号化済みイメージデータはイメージファイル１３２として記憶される。イメージファイル１３２は、それぞれ１個のタイルを表すヘッダデータ１６０および一連のデータ構造１６２を有する。ヘッダデータ１６０は、イメージファイルのサイズ及びイメージファイルの品質レベルを示す。また、ヘッダデータは、タイルデータ構造１６２の各々の長さを示し、それによって、イメージデータへの高速インデクシングを可能にするタイルサイズ値のリストも含む。タイルに関するサイズ値を記憶することは、カメラのデータ処理回路１０６（図１）を作動可能化し、イメージファイル１３２内の初期タイルデータ構造の内容を復号する必要なしに、任意のタイルデータ構造１６２の開始位置を特定する。
【００２４】
図３Ｂに示すように、任意の１つのタイルを表す符号化されたデータ１６２は「ビット層順」に記憶される。各タイルに関して、符号化手順は、コード化されるべきデータ内の最上位非ゼロビットを決定する。このビットは、ここでは第ｙ位のビットと呼ばれる。ｙの値は、当該タイル内の任意のデータ値の絶対値を符号化するために必要なビットの最大個数を計算することによって決定される。詳細には、ｙはｉｎｔ（ｌｏｇ２Ｖ）＋１に等しい。ここに、Ｖは当該タイル内の任意のエレメントの最大の絶対値であり、および「ｉｎｔ（）」は指定された値の整数部分を表す。
【００２５】
１個のタイルを表す符号化されたデータ１６２は、（Ａ）当該タイル内の任意のデータ値の絶対値を符号化するために必要なビットの最大の個数を示すヘッダデータ１７０、及び、（Ｂ）各々が当該タイル内エレメントの１つのビット面を表す一連のデータ構造体１７２を有する。タイルの第ｘ位ビット面は当該タイル内エレメントの各々の絶対値の第ｘ位ビットである。大部分のゼロ値を含む１ビット面を表すために使用するデータが非常に少なくなるようにスパースデータ符号化技法が用いられる。一般に、変換かつ量子化されたイメージデータの周波数の高い方の部分は非ゼロ値よりも多くのゼロ値を有し、非ゼロ値の更に大部分は比較的小さい絶対値を持つはずである。従って、多くのタイルのレベルの高い方のビット面には極く僅かな非ゼロビット値が所在する。
【００２６】
【デジタルカメラ状態マシン】
図１において、デジタルカメラ１００は、例えば或る特定量のイメージデータに変換を適用するために必要な乗算および加算演算を実施するような事前定義された１組の基本動作を実施するためのデータ処理回路１０６、ならびに、事前定義された１組のイメージハンドリング動作を実施するようにデータ処理回路を制御するための１組の状態マシン２００から２１２までを有することが好ましい。一実施形態において、デジタルカメラ内の状態マシンは次のとおりである。
・  カメラのイメージ捕捉メカニズムから受け取ったイメージを変換、圧縮、および記憶する１つ又は複数の状態マシン２００。このイメージは、処理されつつあるイメージは一般的にカメラのイメージビューア１１４上の１つの光景であるので、「ビューファインダ」イメージとも呼ばれる。この組の状態マシン２００は、不揮発性イメージメモリ１０８内に記憶される各イメージファイルを最初に生成する幾つかのマシンである。写真撮影に先立って、ユーザは、カメラのボタン１１２を用いて、記憶されるべきイメージの品質レベルを指定する。
・  圧縮解除、逆変換、および、記憶されているイメージファイルをカメラのイメージビューア上にディスプレイする１つ又は複数の状態マシン２０２。圧縮解除、逆変換、及び、イメージデータの非量子化によって生成される復元済みイメージは、イメージビューア上で見ることができるように、カメラのフレームバッファ内に記憶される。
・  不揮発性イメージメモリに記憶されたイメージの個数のカウントを更新およびディスプレイする１つ又は複数の状態マシン２０４。イメージカウントはユーザインタフェースディスプレイ１１６にディスプレイされることが好ましい。この組の状態マシン２０４は一般に不揮発性イメージメモリ１０８の何パーセントがイメージファイルによって占有されないままで残されるか、または、追加イメージを記憶するカメラの能力の他の指示についても表示する。カメラが個別のインタフェースディスプレイ１１６を持たないならば、このメモリ状態情報は、例えば、イメージビューア１１４に示されるイメージに重複してイメージビューア１１４に示されるか、又は、ビューア１１４の領域内に主ビューワイメージ画像から分離されて示されても差し支えない。
【００２７】
カメラに関して「ビューファインダ」モードを実行するための１つ又は複数の状態マシン２０６であって、ユーザは、当該イメージ捕捉ボタンを押すことによって、記憶されているイメージをそこに見ることができるイメージビューア１１４上にイメージ捕捉メカニズム１０２によって現在見えているイメージがディスプレイされる。これらの状態マシンは、場合によっては、未加工イメージデータを改良するために適切な矯正的処理段階が実施された後で、イメージ捕捉デバイス１０２から受け取ったイメージをカメラのフレームバッファ１１８へ転送する。
・  例えば汎用コンピュータのような外部デバイスへ不揮発性イメージメモリ１０８からイメージをダウンロードする１つ又は複数の状態マシン２０８。
・  例えば汎用コンピュータのような外部デバイスからイメージを不揮発性イメージメモリ１０８へアップロードする１つ又は複数の状態マシン２１０。これは、カメラを、イメージを見るためのデバイス、及び、メモリカード上のイメージファイルを転送するためのメカニズムとして使用可能にする。
【００２８】
【タイリングされるウェーブレット変換方法】
本文書においては、一連の変換段階において生成された変換係数を識別するために次に示す名称の変換が用いられる。詳細には、一連の変換濾波段階によって生成される低い空間周波数係数の組に割り当てられる名称を表１に示す。
【００２９】
【表１】
0004125490.tif 000002
【００３０】
本発明のタイリングされるウェーブレット様変換方法は、同じウェーブレット様変換が、多数の小さいタイルへ適用される代りに単一タイルとしての全イメージデータ配列体へ適用された場合に生成されるはずのこの種係数に同じであるか、又は、同じであることに極めて近いウェーブレット係数を生成するように設計されている。通常、これは、可能でないはずである。理由は、１つのタイルから生成される中間層ＬＬ変換係数（例えば、ＬＬ１／１またはＬＬ２／２）は、近傍タイルを処理する際に利用できないことに因る。更に詳細には、これらの中間層ＬＬ変換係数は、当該変換の後の方の層によって破壊される。例えば、第１層変換から得られる「ＬＬ１／１」係数は、第２層期間中に処理され、ＨＬ２、ＨＨ２、ＬＨ２、ＬＬ２／２（即ち、第２層）係数に変換される係数である。
【００３１】
ただし、本発明は近傍タイルの処理に際して実際に必要とされる中間ＬＬ層変換係数のみの一時的記憶を提供することによってこの困難を克服する。これらの中間ＬＬ層変換係数を保持することにより、ウェーブレット様変換を小さいイメージタイルへ適用することによる望ましくない境界効果は実質的に除去される。
【００３２】
イメージデータ及び係数をワーキングメモリに記憶するために用いられるデータ構造を図４に示す。主タイルアレイ２２０は、未加工イメージデータのタイル１個を初めに記憶し、変換係数が生成されるにつれてこれらを記憶するために用いられる。好ましい一実施形態においてはイメージタイルのパイプラインによる処理を可能にするために回転順序に従って３個のメインタイルアレイが用いられるので、３個のメインタイルアレイ２２０−１、２２０−２、２２０−３を示す。イメージ処理回路は、ウェーブレット様変換段階、変換係数量子化段階、符号化段階の３パイプライン段階を有する。各メインタイルアレイ２２０内データは、その次のイメージデータタイルを処理するために使用される以前に、３つのパイプライン段階によって処理される。
【００３３】
次に示す本発明の好ましい実施形態の動作説明において、データ分解変換は、各変換層に関して先ず水平濾波を使用し、次に垂直濾波を使用するものと仮定する。ただし、水平濾波の前に垂直濾波を実施する場合に限り有効であるものとする。この場合、以下に検討する行列バッファ２２２、２２４，２２６、２２７の役割は適宜調節されなければならないものとする。説明の簡素化および明瞭化のために、本発明の動作は、「水平濾波に垂直濾波が後続する」順序による実施の場合についてのみ説明することとし、「垂直濾波に水平濾波が後続する」順序による実施の場合に、様々なデータ構造体がどのように使用されるかについては時折言及することとする。
【００３４】
同様に、好ましい実施形態においては底部から最上部へ、又は、左から右への処理方向が用いられるので、イメージアレイを底部から最上部へ、又は、左から右へ処理する場合に限り有効であるものとする。この種の大体実施形態において、行列バッファ２２２、２２４、２２６、２２７に記憶されるデータは処理方向を考慮して調節されるものとする。
【００３５】
ワーキングメモリにデータを記憶するために用いられるデータ構造を次に示す。
・  Ｒｏｗ  Ｂｕｆ  １とも呼ばれるアレイ２２２は、処理中のタイルが最上部に位置する場合には「反射されたデータ」を記憶するために用いられ、そうでない場合には、処理中タイルの直ぐ上のタイルの最下位行に関するＬＬ１／０係数を記憶するために用いられる。これらのＬＬ１／０係数は現行タイルの上に位置するタイルの層１水平変換によって生成される。Ｒｏｗ  Ｂｕｆ  １（２２２）のサイズはイメージアレイの１つの行に等しいことが好ましい。その代わりに、ＬＬ１／０係数は、当該データの水平ウェーブレット様濾波を実施することによって、現行タイルの上に位置する画素の行に関する未加工データから容易に更生成可能である。この実施において、タイルサイズが３２ｘ３２である場合に（現行タイルの上に位置する画素の行の前の１つのデータを含むように）、Ｒｏｗ  Ｂｕｆ  １（２２２）のサイズは１ｘ３３である。
・  Ｃｏｌ  Ｂｕｆ  １とも呼ばれるアレイ２２４は、イメージの左縁に沿ったタイルに関しては、「反射されたデータ」を記憶するためにＣｏｌ  Ｂｕｆ  １が用いられることを除けば、処理中のタイルの左に隣接する列に関する未加工イメージデータを記憶するために用いられる。
・  Ｃｏｌ  Ｂｕｆ  ２とも呼ばれるアレイ２２６は、処理中のタイルの左に隣接する場合には、当該タイルに関するＬＬ右縁係数を記憶するために用いられる。タイルサイズが３２ｘ３２である場合には、Ｃｏｌ  Ｂｕｆ  ２（２２６）のサイズは２８ｘ１であり、４個の変換層が用いられる。
・  Ｒｏｗ  Ｂｕｆ  ２とも呼ばれるアレイ２２８は、処理中のタイルの行の真上に位置する場合には、当該タイルの行に関するＬＬ底部縁係数を記憶するために用いられる。
【００３６】
Ｒｏｗ Ｂｕｆ １（２２２）がイメージの最上部におけるタイルに関する「反射されたデータ」を記憶するために用いられる場合には、当該反射されたデータは、第１層水平濾波によって生成された（即ち、第１層垂直濾波の適用以前の）第１層変換係数の上から２番目の行である。すなわち、第１層変換に際して、水平濾波が実施された後において、当該タイルの上から２番目の行に関して生成された係数は、Ｒｏｗ Ｂｕｆ １（２２２）内にコピーされる。水平濾波以前に垂直濾波が実施中であれば、処理中タイルがタイルの最上行内に所在する場合を除き、当該タイルの上に位置する行に関する未加工イメージデータは当該タイルの第１層変換以前にＲｏｗ Ｂｕｆ １にコピーされる。この場合、Ｒｏｗ Ｂｕｆ １は処理中タイルの第２行に関する未加工イメージデータのコピーと共にファイルされる。
【００３７】
Ｃｏｌ  Ｂｕｆ  １（２２４）が当該イメージの左縁に沿ったタイルに関する「反射されたデータ」を記憶するために用いられる場合に、水平濾波が最初に実施されると、反射されたデータは当該タイル内のイメージデータの左端から２番目の列である。水平濾波以前に垂直濾波が実施される実施において、Ｃｏｌ  Ｂｕｆ  １（２２４）内に記憶された反射データは、第１層垂直濾波によって生成される（即ち、第１層水平濾波の適用以前に）第１層変換係数の左端から２番目の列である。すなわち、第１層変換期間中における垂直濾波が実施される後において、当該タイルの左端から２番目の列に関して生成された係数はＣｏｌ  Ｂｕｆ  １（２２４）にコピーされる。
【００３８】
アレイ２２８及び２２６の内容については、図５Ａ及び５Ｂを参照しながら、更に詳細において説明することとする。本説明において、水平濾波は先ず各変換層に関して実施され、４個の変換層が当該イメージへ適用されるものと仮定する。
【００３９】
図５Ａに示すように、アレイ２２８（Ｒｏｗ Ｂｕｆ ２）は、ＬＬ２／１係数の最下位行、ＬＬ３／２係数の最下位行、および、ＬＬ４／３係数の最下位行（４個の変換層が適用されるならば最終ＬＬ係数である）を記憶する。サブアレイ２２８−ｗは当該タイルの１つの列のために用いられるアレイ２２８の断面を表す。ＬＬ２／１、ＬＬ３／２、及び、ＬＬ４／３は、当該タイル変換処理が完了したときには既に存在しない係数値であるので、中間係数である。これらの係数は、それらの各々の変換層の完了時点においてのみ存在する。アレイ２２９は、アレイ２２８−ｗ又はアレイ２２２内にコピーされるべきＬＬ係数を一時的に記憶するために用いられる。
【００４０】
同様に、図５Ｂに示すように、アレイ２２６はＬＬ１／１係数の右側列、ＬＬ２／２係数の右側列、および、ＬＬ３／３係数の右側列（４個の変換層が適用される場合には最後のＬＬ係数に隣接する）を記憶する。ＬＬ１／ｌ、ＬＬ２／２、及び、ＬＬ３／３係数は、当該タイル変換処理が完了したときには既に存在しない係数値であるので、中間ＬＬ係数である。それらは、それら各々の変換層の完了時点においてのみ存在する。アレイ２２７は、アレイ２２６内にコピーされるべきＬＬ係数、及び、アレイ２２４（Ｃｏｌ  Ｂｕｆ  １）内にコピーされるべき未加工データを一時的に記憶するために用いられる。
【００４１】
図６において、イメージファイル生成工程は、イメージがイメージ捕捉デバイスによって捕捉されたとき（ステップ２５０）に始まる。イメージサイズが可変であれば、捕捉されたイメージのサイズが決定され、当該イメージデータを覆うために必要なタイルの行と列の個数が決定される（ステップ２５２）。イメージサイズは常に同一であるならば、ステップ２５２は必要でない。
【００４２】
次に、水平および垂直両方向においてウェーブレット様分解変換をラスタ走査順に適用し、次に、結果として得られる変換係数を量子化し、最終的にスパースデータ圧縮および符号化手順を用いて量子化済み変換係数をコード化する（ステップ２５４）することによって当該イメージ内の全てのタイルが処理される。ステップ２５４の疑似コード表現を表２に示す。最終的に、当該イメージ内の全てのタイルが処理された後において、符号化された全てのタイルを含むイメージファイルが不揮発性メモリ内に記憶される（ステップ２５６）。
【００４３】
図７Ａ、７Ｂ、７Ｃを参照しながら、ステップ２５４において用いられるウェーブレット様分解変換について以下に更に詳細に記述する。スパースデータ圧縮およびコード化手順は、背景情報として引用によりここに組み込み済みの１９９７年５月１６日付米国特許出願第０８／８５８，０３５号「Ｓｙｓｔｅｍ ａｎｄ Ｍｅｔｈｏｄ ｆｏｒ Ｓｃａｌａｂｌｅ Ｃｏｄｉｎｇ ｏｆ Ｓｐａｒｓｅ Ｄａｔａ Ｓｅｔｓ」（スパースデータ集合をスケーラブル符号化するシステム及び方法）、現行米国特許第５，９４９,９１１号に詳細に記述されている。
【００４４】
【一タイルのウェーブレット様分解】
図７Ａから７Ｃまでは４層分解処理のステップを表し、図８Ａから８Ｄまではウェーブレット様変換および中間係数記憶および当該処理の最初の２つの水平および垂直変換層に関する使用を概略的に表す。タイルの処理は、当該タイルに関する未加工イメージデータをメインアレイ２２０内にロードすることによって始まる（図４参照）（ステップ３００）。当該タイルがタイルの最左端の列内に所在しないならば、アレイ２２４（Ｃｏｌ  Ｂｕｆ  １）は、当該タイルの前の列に関する未加工データと共にロードされ、そうでないならば、Ｃｏｌ  Ｂｕｆ  １には、当該タイルの左端から２番目のコピーから成る「反射されたデータ」がロードされる（ステップ３０１）。
【００４５】
次に、第１層（層１）水平および垂直ウェーブレット様分解変換（ステップ３０２、３０４）がメインアレイ（２２０）内および以前のデータアレイ（２２２、２２４）内の未加工データに適用される。好ましい一実施形態において、データは水平に、次に垂直に濾波される。ステップ３０２における水平濾波は、現行タイルに関する未加工データ及び当該タイルの左側に相当するデータの列として取り扱われるＣｏｌ  Ｂｕｆ  １内データに関して実施される。現行タイルの最後の列に関する未加工データは、水平濾波以前に、バッファ２２７内にコピーされ、当該データは、濾波の後で、現行タイルの右側に隣接する次のタイル（該当すれば）と共に使用するために、バッファ２２７からＣｏｌ  Ｂｕｆ  １内へコピーされる。
【００４６】
水平濾波の後、垂直濾波の前に、現行タイルが当該イメージの最上部にあるならば、タイルの第２最高行に関する生成された係数がＲｏｗ  Ｂｕｆ  １内にコピーされる（ステップ３０３）。次に、Ｒｏｗ  Ｂｕｆ  １内データを現行タイルの真上行として使用し、現行タイルが垂直方向に濾波される（ステップ３０４）。更に、垂直方向に濾波する以前に当該タイルの最後行内係数はバッファ２２９内にコピーされ、濾波の後で、当該データは、現行タイル下の次のタイル（該当する場合）と共に使用するために、バッファ２２９からＲｏｗ  Ｂｕｆ  １内へコピーされる。
【００４７】
一代替実施形態において、各変換層に関して水平濾波の前に垂直濾波が実施された場合には、アレイ２２２及び２２４の役割は反転される。即ち、未加工イメージデータまたは反射されたイメージデータは第１層変換前にＲｏｗ  Ｂｕｆ  １内に記憶され、垂直濾波によって生成される係数は水平濾波以前にＣｏｌ  Ｂｕｆ  １にコピーされるはずである。
【００４８】
他の一代替実施形態において、未加工データの最後の列はステップ３０２においてＣｏｌ  Ｂｕｆ  １にコピーされず、ＬＬ１／０係数の最後の行はステップ３０４においてＲｏｗ  Ｂｕｆ  １にコピーされない。その代りに、ステップ３０１において、Ｃｏｌ  Ｂｕｆ  １は、現行タイルの左に位置するタイルの最後の列に関する未加工データによってロードされ、スップ３０３において、Ｒｏｗ  Ｂｕｆ  １は、現行タイルの真上の行に関する未加工データおよび左方の１つ余分なデータによってロードされ、次に、垂直濾波ステップ３０４に必要なＬＬ１／０係数を再生成させるために水平方向に濾波される。
【００４９】
好ましい一実施形態において、ウェーブレット様分解および復元変換フィルタは非対称であり、第１側部上の各タイル境界を越えて伸延するが、第２側部上のタイル境界を越えて伸延することはない。更に詳細には、前記の好ましい実施形態において、適用されるウェーブレット様変換は実際には２つのフィルタである。第１フィルタＴ１は、生成中の変換係数の行または列内の最初の２つ及び最後の３つの係数を生成するために用いられ、第２フィルタＴ２は、生成中の変換係数の行または列内の全ての係数を生成するために用いられる。更に一般的には、短いフィルタＴ１はタイルの縁の近傍に所在するデータを変換するために用いられ、長い方のフィルタＴ２はタイルの縁から離れて所在するデータを変換するために用いられる。更に、１つの縁へ適用されているときは、当該タイルの外側からのデータを使用せず、反対の縁に関しては、当該タイルの外側からのデータを使用するように、短いフィルタは非対称であることが好ましい。Ｔ１及びＴ２分解フィルタの定義を次に示す。
【００５０】
Ｔ１変換（短いフィルタ）
【数１】
0004125490.tif 000003
【００５１】
Ｔ２変換（長いフィルタ）
【数２】
0004125490.tif 000004
【００５２】
処理中のタイルの外部のただ１つの値だけが必要なので、Ｔ１分解変換は縁における係数を生成するために用いられるが、処理中のデータの範囲は更に広いので、Ｔ２分解変換は処理中のタイルの外部のより多くの値を必要とするはずである。上記の方程式において、ｘ値は分解変換が適用されつつあるデータを表し、
0004125490.tif 000005
【００５３】
ウェーブレット様分解変換は一般に全てのタイル行に適用され、その後で、第１層変換を実施するために全てのタイル列に適用される。更に、分解処理の各
0004125490.tif 000006
【００５４】
一代替実施形態において、短いＴ１分解変換は、単に縁におけるデータだけでなく全てのデータを濾波するために使われる。短いＴ１分解変換のみを用いると、計算時間および複雑さが低減される。これは、イメージの復元に際しては対応する短いＴ１復元変換（以下に記述される）のみが使われるので、本発明を用いて符号化されたイメージを含むイメージファイルを復号するための計算時間も節減させる。
【００５５】
図９および、上に示すＴ１およびＴ２フィルタ方程式を参照することとし、Ｔ１およびＴ２変換フィルタの水平適用について、変換を説明することとする。図９は、４つの連続変換層の各々に関して、変換層が実施された以前と以後においてメインアレイの１つの行内および前の列アレイの対応する１つのエレメント内に記憶されたデータ表現を示す。
【００５６】
ウェーブレット様分解変換の垂直適用に関しても全く同じフィルタ技法が用いられる。図９におけるデータ３４０は、ウェーブレット様分解変換の水平適用に関するアレイ２２４（図４）、又は、ウェーブレット様分解変換の垂直適用に関するアレイ２２２のどちらかにおけるを１つのデータを表すことに留意されたい。同様に、データ値３４１、３４２、３４３は、水平または垂直どちらの処理が実施されつつあるかどうかに応じて、アレイ２２６又は２２８どちらかにおける中間のＬＬ値を表す。
【００５７】
層１変換において、左端のＨ１およびＬ１係数（３２０、３２１）、並びに、右端のＨ１およびＬ１係数（３３０、３３１）は、Ｔ１フィルタを用いて生成される。右端Ｌ１係数（３３１）は、各行または列の最後のＬ係数の生成のみに用いられるＴ１フィルタの特別バージョンを用いて生成されることに留意されたい。その結果、左端Ｈ１係数３２０は、現在タイルの左側に在るタイルからの右端データ値３４０を用いて算定される。Ｔ１フィルタは、左端Ｌ１係数３２１を生成するために、左端Ｈ１係数３２０を入力として使用し、Ｈ１値が現行タイルの外部データに依存することを除けば、現行タイルの外側からのデータを一切必要としない。右端Ｈ１及びＬ１係数（３３０、３３１）に関して、Ｔ１フィルタは現行タイル外データは一切使用しない。
【００５８】
Ｔ２変換フィルタは、タイルの縁から離れた他の全ての係数３２２−３２８を計算するために使われる。これらの係数はタイルの縁に沿って位置しないので、このフィルタへの入力として使われるデータ値は現行タイルおよび現行タイルの左に隣接する列３４０内に所在する。更に詳細には、フィルタに対する入力データ値は、左に対する３つの位置から生成中のＨ１係数の右に対する３つの位置までの範囲内にある。当該タイルの左側近傍に在るＨ１係数３２２に関しては、前のタイルからのデータ値３４０が含まれるが、当該タイルの右側近傍のＨ１係数３２８に関しては、現行タイル内からのデータのみが含まれる。
【００５９】
更に、図９において、各連続変換層は、前の層によって生成されたＬ係数、ならびに、当該タイルから左に向かう右端の前の層Ｌ係数にのみ適用される。従って、層２変換において、当該タイルから左に向かう右端Ｌ１係数３４１は、左端Ｈ２およびＬ２係数３５０、３５１を計算するために使われる。
【００６０】
当該層に関して生成中の係数の全体個数が４以下であれば、後の方の変換層の幾つかは、タイルのサイズに応じて、Ｔ１分解フィルタのみを使用可能である。
【００６１】
【表２】
表２
タイル変換手順に関する疑似コード
前の行データアレイをクリアする；
Ｆｏｒｒ＝０から最後の行まで｛
Ｆｏｒｃ＝０から最後の列まで｛
タイル（ｒ，ｃ）に関する未加工データを検索し、メインアレイ内に記憶する；
ｃ＝０ならば、タイルまでの第２列をＣｏｌ  Ｂｕｆ  １内へコピーする；
変換係数を生成するために前の列データおよび前のＬＬ縁データを用いて、
未加工イメージデータを変換する；
｛
第１層変換に際して；
水平濾波に際して；未加工データの最後列をＣｏｌ  Ｂｕｆ  １内へコピーする。垂直濾波以前：現行タイルがイメージの最上部に在るならば、
現行タイルからのＬＬ１／０係数の第２高位行のコピーをＲｏｗ  Ｂｕｆ  １にロードする。垂直濾波に際して：ＬＬ１／０係数の最後の列をＲｏｗ  Ｂｕｆ  １内へコピーする。
後の方の各層変換に際して；
水平濾波以前：現行タイルがイメージの左縁に在るならば、反射されたデータをＣｏｌ  Ｂｕｆ  ２にロードする。
水平濾波に際して、現行タイルの前のレベルＬＬデータの最後の列をＣｏｌ  Ｂｕｆ  ２にロードする。
垂直濾波以前：現行タイルがイメージの左縁に在るならば、反射されたデータをＲｏｗ  Ｂｕｆ  ２にロードする。
垂直濾波に際して、現行タイルの前のレベルＬＬデータの最後の列をＲｏｗ  Ｂｕｆ  ２にロードする。
｝
変換係数を量子化する；／＊第２パイプラインステージにより実施される
量子化済み変換係数を符号化する；／＊第３パイプラインステージにより実施される
｝／＊列ループのエンド
｝／＊行ループのエンド
【００６２】
図７Ａ−７Ｃ、８Ａ−８Ｄ、及び、図４におけるデータ構造を再び参照することとし、分解変換処理の説明はステップ３０４において再開される。第１層変換を経てステップ３０４において終了する変換プロセスについては既に説明済みであることに留意されたい。ステップ３０５、３０６、３０７、３０８において、第２層分解変換は、水平および垂直両方向において実施される。変換が適用される係数を次に示す：（Ａ）第１層分解変換によって生成されるＬＬ１／１係数、および、（Ｂ）当該タイルから現行タイルの左および上までの縁係数、これらの係数はＣｏｌ  Ｂｕｆ  ２、及び、Ｒｏｗ  Ｂｕｆ  ２（アレイ２２６、及び、２２８）内にセーブされる。
【００６３】
現行タイルがイメージの左縁に在るならば、水平変換ステップ３０６に先立って、反射されたデータ（当該タイルの第２左端列から）はＣｏｌ  Ｂｕｆ  ２内にコピーされる（ステップ３０５）。同様に、現行タイルがイメージの上縁に在るならば、垂直変換ステップ３０８に先立って、反射されたデータ（当該タイルの第２上端列から）はＲｏｗ  Ｂｕｆ  ２内にコピーされる（ステップ３０７）。
【００６４】
更に、最重要性をもって、水平変換ステップ３０６に際して、第１層変換によって生成された右縁ＬＬ１／１係数はＣｏｌ Ｂｕｆ ２内にセーブされ、垂直変換ステップに際して、第２層水平変換によって生成された底縁ＬＬ２／１係数は、現行タイルの右および下までタイル処理するときに使用するためにＲｏｗ Ｂｕｆ ２内にセーブされる。ただし、Ｃｏｌ Ｂｕｆ ２およびＲｏｗ Ｂｕｆ ２は、現行第２層変換によって必要とされるＬＬ１／１およびＬＬ２／１を含むので、現行タイルに関する右縁ＬＬ１／１及び底縁ＬＬ２／１係数は、第２層水平および垂直変換に先立って、先ず、それぞれ一時的アレイ２２７及び２２９にコピーされる。第２層変換の完了に際して、２つの一時的アレイ２２７及び２２９内のＬＬ１／１右縁およびＬＬ２／１底縁係数は、Ｃｏｌ Ｂｕｆ ２及びＲｏｗ Ｂｕｆ ２（アレイ２２６及び２２８）の当該場所にコピーされる。
【００６５】
底縁係数をコピーするステップは、タイルの底部行内タイルに関してスキップされることが可能であり、他のタイルを処理している期間中はこれらの縁係数は決して使用されないので、右縁係数をコピーするステップは、タイルの右端行内タイルに関してスキップされることが可能である。これは、第３及び第４分解変換に際して生成される底部および右縁係数にも同様に適用される。
【００６６】
ステップ３０９−３１２において、第３層分解変換は、水平および垂直両方向に実施される。第３層分解変換のステップは、第２層変換のこれらと基本的に同じである。第３層水平変換ステップ３１０は、第２層分解変換およびＣｏｌ  Ｂｕｆ  ２内に記憶されているＬＬ２１２縁係数によって生成されたＬＬ２１２係数に適用される。第３層垂直変換ステップ３１２は、第３層水平変換およびＲｏｗ  Ｂｕｆ  ２内に記憶されているＬＬ３／２係数によって生成されるＬＬ３／２係数に適用される。この場合には反射されたデータはＬＬ２／２及びＬＬ３／２係数であることを除き、変換準備ステップ３０９及び３１１は、ステップ３０５及び３０７に関して上述したこれらと同じである。また、第２層変換に関して上述したように、一時的アレイ２２７及び２２９は、層変換の３ステップの完了に際して、Ｃｏｌ  Ｂｕｆ  ２およびＲｏｗ  Ｂｕｆ  ２の該当する場所内にコピーされるＬＬ２／２及びＬＬ３／２係数を一時的に記憶するために使われる。
【００６７】
最後に、ステップ３１３−３１６において、第４層分解変換は水平および垂直両方向に実施される。第４層分解変換のステップは、第２および第３層変換に関するこれらに基本的に同じである。特に、第４層水平変換ステップ３１４は、第３層分解変換およびＣｏｌ  Ｂｕｆ  ２内に記憶されているＬＬ３／３縁係数によって生成されるＬＬ３／３係数に適用される。第４層垂直変換ステップ３１６は、第４層水平変換およびＲｏｗ  Ｂｕｆ  ２内に記憶されているＬＬ４／３係数によって生成されるＬＬ４／３係数に適用される。変換準備ステップ３１３及び３１５は、この場合の反射されたデータはＬＬ３／３及びＬＬ４／３係数であることを除けば、上述したステップ３０５及び３０７に関するこれらと同じである。同様に、第２層変換について上述したように、一時的アレイ２２７及び２２９は、３つの層変換ステップの完了に際して、Ｃｏｌ  Ｂｕｆ  ２及びＲｏｗ  Ｂｕｆ  ２の該当する場所内にコピーされる、ＬＬ３／３及びＬＬ４／３係数を一時的に記憶するために使われる。
【００６８】
これらの係数は、現行タイルの右および下に位置するタイルに変換を実施するときに必要とされないので、左縁ＬＬ４／４係数はアレイ２２６及び２２８にはコピーされないことに留意されたい。その代わりに、ＬＬ４係数がアレイ２２６および２２８にコピーされるならば、近傍タイルを処理する際にこれらの係数は使用されない。更に一般的には、Ｎ変換層が各タイルへ適用されつつあるならば、第Ｎ番層ＬＬ係数はアレイ２２６及び２２８にはコピーされないが、前の変換層に関する右縁いよび底縁ＬＬ係数はアレイ２２６及び２２８にコピーされる。
【００６９】
【フルライン（実線）タイル】
例えば捕捉したイメージの１６以上の画素行を記憶するに充分なワーキングメモリを備えたデジタルカメラのような幾らかの用途おいて（実際には、３ステージパイプライン式デバイスに関しては、１６行画素のコピー３部である）、本発明の複雑さは、ＬｘＨサイズのタイルを使うことによって或る程度減少され得る。ここに、Ｌは処理されるべきイメージの行の全長であり、Ｈはタイルの高さである。Ｈは一般に８、１６、または、３２に等しいが、利用可能なメモリ量に応じて小は４から大は１２８までの範囲に亙り得る。いずれにせよ、処理タイルがイメージと同じ広さであれば、水平方向における近傍タイルは存在しないので、右縁アレイ２２４、２２６、及び、２２７は除去可能であり、従って、イメージデータ及びＬＬ係数をこれらのアレイ内へロードするために必要な全ての動作は一切不要である。更に、この実施形態において、この場合に縁イメージデータはイメージの全幅と同じ長さであるので、２２２アレイは、イメージの幅と同じ長さでなくてならない。実際には、２２８アレイは、イメージの幅と同じ長さであり、または、これらの係数は近傍タイルの処理には不必要であるので、最後の変換層によって生成されるＬＬ係数（例えば、上記の例のＬＬ４／４係数）の個数だけイメージの幅より短いこともあり得る。例えば、４層変換方式において、アレイ２２８の長さはは、イメージ幅の８分の７であり得る。
【００７０】
【本発明のその他の応用】
本発明はデジタルカメラ以外のコンテキストにおける使用に適する。たとえば、イメージスキャナ、プリンタ、および、イメージ処理ソフトウェアにさえも使用可能である。一般的に、本発明は、あらゆる「メモリ保存的」コンテキストにおいて有用である。この場合には、全イメージを単一タイルとして処理するには、利用可能なワーキングメモリの量が不十分であるか、または、低メモリ環境を含む様々な環境において製品が作動しなければならない。
【００７１】
【イメージ復元】
１つのイメージファイルから１つのイメージを復元するためには、イメージファイル内データの各タイルは圧縮解除され、非量子化され、更に、当該タイル内イメージデータを復元するために、非量子化済みデータへ逆変換が適用されなければならない（即ち、非量子化された変換係数）。
【００７２】
非量子化された変換係数からイメージを復元するためのウェーブレット様逆変換は次のように定義される。復元されつつあるデータ値の行または列の中の最初の２つ及び最後の３つのデータ値を復元するために第１フィルタＴ１−Ｒが用いられ、復元されつつある変換係数の行または列の中の他の全てのデータ値を生成するために第２フィルタＴ２−Ｒが用いられる。
【００７３】
Ｔ１およびＴ２復元フィルタは次のように定義される。
Ｔ１−Ｒ復元変換（ＳｈｏｒｔＦｉｌｔｅｒ）
【００７４】
【数３】
0004125490.tif 000007
【００７５】
Ｔ２−Ｒ復元変換（ＬｏｎｇＦｉｌｔｅｒ）
【数４】
0004125490.tif 000008
【００７６】
復元処理の各層に際して、奇数位置（即ち、ｘ2i+1値）におけるデータ値は、偶数位置（即ち、ｘ2i値）におけるデータ値以前に計算されなければならない。
【００７７】
図１０Ａ―１０Ｄは、イメージ復元に際して、Ｒｏｗ Ｂｕｆ ２およびＣｏｌ Ｂｕｆ ２アレイが使用されることを示す。特に、図１０Ａは、逆変換とも呼ばれる層２垂直復元変換に際して、Ｒｏｗ Ｂｕｆ ２内に記憶されているＬＬ２／１縁係数が使用されること、及び、層２垂直復元変換が現行タイルの下のタイルへ適用されるときに使用するために、現行タイルの最後の行からＬＬ２／１縁係数がＲｏｗ Ｂｕｆ ２内にコピーされることを示す。図１０Ｂは、層２水平復元変換に際して、Ｃｏｌ Ｂｕｆ ２内に記憶されているＬＬ１／１縁係数が用いられること、及び、層２水平復元変換が現行タイルの右側のタイルへ適用される時に使用するために、現行タイルの最後の列からＬＬ１／１縁係数がＣｏｌ Ｂｕｆ ２内にコピーされることを示す。
【００７８】
図１０Ｃは、層１垂直復元変換に際して、Ｒｏｗ  Ｂｕｆ  １内に記憶されているＬＬ１／０係数が使用されること、及び、層１垂直復元変換が現行タイルの下のタイルへ適用されるときに使用するために現行タイルの最後の行からＬＬ１／０係数がＲｏｗ  Ｂｕｆ  １内にコピーされることを示す。図１０Ｄは、層１水平復元変換に際して、Ｃｏｌ  Ｂｕｆ  １内に記憶されている復元済みイメージデータが使用されること、及び、現行タイルの右に位置するタイルへ層１水平復元変換が摘要されるときに使用するために、現行タイルの最後の列内の復元済みイメージデータがＣｏｌ  Ｂｕｆ  １内にコピーされることを示す。
【００７９】
従って、一般に、処理された第１タイル以外の各タイルに関するイメージ復元処理は、１つ又は２つの近傍タイル処理に際して、生成された縁係数の集合を使用する。特に、この種の各タイルの復元に際して、現行タイルに関する係数および既に処理済みの近傍タイルからの縁係数の両方に複数の逆変換フィルタの各々が適用される。
【００８０】
【非交番水平および垂直変換を用いる実施形態】
図１１を参照することとし、他の好ましい一実施形態において、イメージの各タイルはＮ（例えば４）水平分解変換層によって処理され、その後で、垂直分解変換層によって処理される。同等に、垂直変換層を最初に適用し、その後で、水平変換層を適用することも可能である。本発明のイメージ変換方法論のハードウェア実装において、変換層の適用順序変更は（Ａ）データアレイが回転させられる回数を減少させること、または、（Ｂ）ワーキングイメージアレイにおいて行と列の役割を切り替える回路の必要性を回避することのどちらかの利点をもつ。図１１に示すように、第２水平変換（ＨＬ２）は、第１水平変換によって生成される低い周波数係数の左端アレイへ適用され、第３水平変換（ＨＬ３）は、第２水平変換によって生成される低い周波数係数の左端アレイへ適用される、等々。従って、第２か第Ｎまでの水平変換は、水平変換と垂直変換が交番する変換方法において非常に多くのデータに２回適用される。ただし、この種の実装においては、水平フィルタは、作動イメージアレイの全ての行に同時に適用されるので、この余分なデータ処理は、ハードウェア実装において、一般に、一切の処理時間を追加しない。
【００８１】
更に、図１１を参照することとし、Ｎ垂直変換（ＶＬ１、ＶＬ２、ＶＬ３、ＶＬ４）は、作動イメージアレイの連続的に小さくなるサブアレイに連続的に適用される。Ｎ変換層（水平および垂直の両方）によってイメージデータが変換された後で、イメージ符号化プロセスを完了させるために上述した（図６に対して）量子化およびコード化ステップが、結果として得られる変換係数に適用される。
【００８２】
既に説明したように、これらのアレイの縁から離れた係数に適用される（一般に更に長い）変換フィルタと異なる（一般に更に短い）変換フィルタが処理中のアレイの縁に近い係数へ適用可能である。中央における更に長い変換フィルタの使用は、更に短い変換フィルタよりも更に良好なデータ圧縮を提供するが、更に短い変換フィルタは、近傍タイルからのデータ及び係数の必要性を最小限化する。
【００８３】
圧縮されたイメージを、図１１に示す変換プロセスを用いて復元するイメージ復元プロセスを図１２に示す。図１２に示す逆変換を実施する前に、圧縮されたイメージデータは復号され、かつ、非量子化される。次に、イメージ復元プロセスの逆変換ステップが、イメージ分解プロセスの変換ステップと正確に逆順序で実施される。従って、プロセスは４つの水平逆変換（ＨＩＬ４、ＨＩＬ３、ＨＩＬ２、ＨＩＬ１）によって始まり、４つの垂直逆変換（ＶＩＬ４、ＶＩＬ３、ＶＩＬ２、ＶＩＬ１）がこれに続く。全ての逆変換が実施された後で、結果として得られるアレイは復元されたイメージの１個のタイルを表す。
【００８４】
【代替実施形態】
既に示したように、動作速度が関係ないか、または、非常に高速のプログラマブルイメージデータ処理装置が用いられた場合には、上記の実施形態の状態マシンは、データプロセッサによって実行されるソフトウェア手順によって置き換え可能である。
【００８５】
一代替実施形態においては、変換フィルタの幾らか又は全ては、タイル境界をただ１つの行または列によって重複させる代わりに、２つ或いは３つの行または列によってタイル境界と重複させることが可能である。
【００８６】
本発明を用いて符号化された圧縮済みイメージを受け取る、例えばウェブブラウザのようなストリーミングデータ実装において、イメージのタイルは、当該イメージの他のタイルが受けとられると同様に、迅速に復号および圧縮解除されることが可能である。その結果として、圧縮されたイメージは、当該イメージデータの最後のデータが通信チャネル上で受信された後で、事実上即座に復元可能である。
【００８７】
デジタルカメラの様々な部品をアップグレードするために技術改良が用いられるにつれて、記述されている実施形態の他の多くの態様は時と共に変化する。たとえば、イメージファイルを記憶するために用いられるメモリ技術は、フラッシュメモリから別のタイプのメモリへ変化可能であるか、又は、カメラが音声コマンドに応答し、より少ないボタンの使用を可能にすることがあり得る。
【００８８】
別の一代替実施形態において、上記のウェーブレット様変換と異なる変換が使用可能である。
【００８９】
代替実施形態において、イメージタイルは異なる順序において処理可能である。例えば、イメージタイルは、左から右への代わりに右から左へ処理可能である。この場合、アレイ２２６にセーブされた縁係数は、右縁係数の代わりに左縁係数であるはずであり、変換方程式は、当該タイルから左へ向かう代わりに現行アレイの右側タイルに関する変換係数を使用するように調節可能である。同様に、イメージタイルは、底部行において始まり、最上行へと進行するように処理可能であり、この場合、アレイ２２８にセーブされた縁係数は底部縁係数の代りに最上縁係数であるはずであり、変換方程式は、上のタイルの代わりに現行アレイの下のタイルに関する変換係数を使用するように調節可能である。
【００９０】
本発明は、コンピュータ読取り可能な記憶媒体に埋め込まれたコンピュータプログラムメカニズムを含むコンピュータプログラム製品として実行可能である。例えば、コンピュータプログラム製品は、図１に示すプログラムモジュールを含むことが可能である。これらのプログラムモジュールは、ＣＤ―ＲＯＭ，磁気ディスク記憶製品、または、他のコンピュータ読取り可能データまたはプログラム記憶製品に記憶可能である。コンピュータプログラム製品におけるソフトウェアモジュールは、インターネットを介するか、または、コンピュータ信号（それにソフトウェアモジュールが埋め込まれた）の搬送波による伝送によって電子的に分散可能である。
【００９１】
本発明は２、３の特定実施形態に関して記述されたが、本記述は本発明の事例説明的であり、本発明を限定することを意味するものではない。当該技術分野における当業者にとっては、添付特許請求の範囲によって定義済みの本発明の趣旨および範囲から逸脱することなく、種々の修正が可能なはずである。
【図面の簡単な説明】
下記の詳細記述および添付請求項の範囲を次に示す図面と関連して読むことにより、本発明の追加的目的および特徴は更に容易に明白となるはずである。
【図１】  本発明の一実施形態に従ったデジタルカメラの構成図である。
【図２】  未加工イメージを変換イメージアレイ内に変換および変換イメージアレイを圧縮済みイメージファイルに圧縮するプロセスを概略的に示す概略図である。
【図３Ａ】  イメージ記憶データ構造を示す図である。
【図３Ｂ】  イメージ記憶データ構造を示す図である。
【図４】  ワーキングメモリ内にイメージデータ及び係数を記憶するために用いられるデータ構造を示す図である。
【図５Ａ】  ワーキングメモリ内にイメージデータ及び係数を記憶するために用いられるデータ構造を示す図である。
【図５Ｂ】  ワーキングメモリ内にイメージデータ及び係数を記憶するために用いられるデータ構造を示す図である。
【図６】  本発明が適用可能なイメージ処理プロセスの高水準流れ図である。
【図７Ａ】  メモリ効率的ウェーブレット様データ変換手順の流れ図である。
【図７Ｂ】  メモリ効率的ウェーブレット様データ変換手順の流れ図である。
【図７Ｃ】  メモリ効率的ウェーブレット様データ変換手順の流れ図である。
【図８Ａ】  ４つのウェーブレット様変換ステップ（２つの変換層用）における図４のワーキングメモリデータ構造の使用を示す図である。
【図８Ｂ】  ４つのウェーブレット様変換ステップ（２つの変換層用）における図４のワーキングメモリデータ構造の使用を示す図である。
【図８Ｃ】  ４つのウェーブレット様変換ステップ（２つの変換層用）における図４のワーキングメモリデータ構造の使用を示す図である。
【図８Ｄ】  ４つのウェーブレット様変換ステップ（２つの変換層用）における図４のワーキングメモリデータ構造の使用を示す図である。
【図９】  ４つの連続変換層の各々に関して、メインアレイの１行および前の列アレイの対応する１つのエレメント内に記憶されているデータの事前および事後の表現を示す図である。
【図１０Ａ】  ４つの逆ウェーブレット様変換ステップ（２変換層用）における図４のワーキングメモリデータ構造の使用を示す図である。
【図１０Ｂ】  ４つの逆ウェーブレット様変換ステップ（２変換層用）における図４のワーキングメモリデータ構造の使用を示す図である。
【図１０Ｃ】  ４つの逆ウェーブレット様変換ステップ（２変換層用）における図４のワーキングメモリデータ構造の使用を示す図である。
【図１０Ｄ】  ４つの逆ウェーブレット様変換ステップ（２変換層用）における図４のワーキングメモリデータ構造の使用を示す図である。
【図１１】  幾つかの水平変換の集合がイメージデータアレイへ適用され、その後で、幾つかの垂直変換の集合が水平変換によって生成された係数へ適用されるイメージ処理プロセスの逐次的ステージを示す図である。
【図１２】  図１１に示すプロセスによって処理されたイメージを回復するために逆変換を適用する連続ステージを示す図である。
【符号の説明】
１００  デジタルカメラシステム
１０２  イメージ捕捉デバイス
１０４  ワーキングメモリ
１０６  データ処理回路
１０８  不揮発性メモリ記憶デバイス
１１０  データアクセスポート
１１２  ボタン
１１４  イメージビューア
１１６  ユーザインタフェースディスプレイ
１１８  フレームバッファ
１３２  イメージファイル
１４０  未加工イメージデータ
１４２  変換係数
１４４  タイルのアレイ
【図１】
0004125490.tif 000009
【図２】
0004125490.tif 000010
【図３Ａ】
0004125490.tif 000011
【図３Ｂ】
0004125490.tif 000012
【図４】
0004125490.tif 000013
【図５Ａ】
0004125490.tif 000014
【図５Ｂ】
0004125490.tif 000015
【図６】
0004125490.tif 000016
【図７Ａ】
0004125490.tif 000017
【図７Ｂ】
0004125490.tif 000018
【図７Ｃ】
0004125490.tif 000019
【図８Ａ】
0004125490.tif 000020
【図８Ｂ】
0004125490.tif 000021
【図８Ｃ】
0004125490.tif 000022
【図８Ｄ】
0004125490.tif 000023
【図９】
0004125490.tif 000024
【図１０Ａ】
0004125490.tif 000025
【図１０Ｂ】
0004125490.tif 000026
【図１０Ｃ】
0004125490.tif 000027
【図１０Ｄ】
0004125490.tif 000028
【図１１】
0004125490.tif 000029
【図１２】
0004125490.tif 000030