(57)【特許請求の範囲】
【請求項１】
ビットマップ入力画像をファイル記憶システムに記憶するための画像記憶フォーマットに変換する方法であって、前記方法は、
（ａ）第１段階および最終段階を含む複数の段階のそれぞれにおいて、各方向のサイズが、任意の段階に伝達される対象画像の二分の一のピクセルのサイズである任意の段階における縮小画像および任意の段階における縮小画像とサイズが同一の３つのアレイを含む付加ピクセルデータの組を発生するように、対象画像を処理するステップであって、
（ｉ）対象画像にそれぞれの行でのローパスフィルタ操作と、それに続く１つおきの列のデシメーション操作を受けさせ、その結果として第１の画像を提供する段階と、
（ｉｉ）縮小画像を提供するように、第１の画像にそれぞれの列でのローパスフィルタ操作と、それに続く１つおきの行のデシメーション操作を受けさせる段階であって、縮小画像が対象画像からの低周波情報を含み対象画像より少ないピクセルを有する段階と、
（ｉｉｉ）対象画像にハイパスフィルタ操作を受けさせ、縮小画像および付加ピクセルデータの組が対象画像を所望の正確度に再生するに十分なように、付加ピクセルデータの組を発生する段階を含む前記ステップと、
（ｂ）縮小画像が閾値以下のサイズを有するかを決定するステップと、
（ｃ）縮小画像が十分に小さい最終段階に最終縮小画像を得るステップと、
（ｄ）最終縮小画像をタイルに分割するステップと、
（ｅ）付加ピクセルデータの組それぞれをタイルに分割するステップと、
（ｆ）最終段階以外の少なくとも１つの段階において発生した特定の縮小画像をタイルに分割するステップと、
（ｇ）特定の縮小画像の各タイルのブロックを画像記憶フォーマットに含めるステップと、
（ｈ）画像記憶フォーマットを作成するステップであって、画像記憶フォーマットが、最終縮小画像の各タイルのブロックと、複数の段階からの付加ピクセルデータの組それぞれの各タイルのブロックと、最終縮小画像の各タイルのブロックのそれぞれの場所および複数の段階からの付加ピクセルデータの組それぞれの各タイルのブロックのそれぞれの場所の決定を可能とするインデックスとを含んでおり、少なくとも１つのタイルのブロックが、損失のある圧縮技術によって圧縮されたタイルのバージョンであるステップと、さらに、
（ｉ）最終縮小画像と付加ピクセルデータの組とを利用して入力画像を再生し、損失のある再生入力画像を提供するステップと、
（ｊ）損失のある再生入力画像を入力画像と比較するステップと、
（ｋ）損失のある再生入力画像と組み合わせた時に無損失の入力画像を提供する増分画像を決定するステップと、
（ｌ）増分画像を圧縮するステップと、
（ｍ）圧縮された増分画像を画像記憶フォーマットの一部として含めるステップと、
を含む前記方法。
【請求項２】
請求項１記載の方法であって、最終縮小画像の各タイルのブロックは、タイルの圧縮バージョンである前記方法。
【請求項３】
請求項２記載の方法であって、最終縮小画像の各タイルは、ＪＰＥＧ圧縮により圧縮される前記方法。
【請求項４】
請求項１記載の方法であって、付加ピクセルデータの組それぞれの各タイルのブロックは、タイルの圧縮バージョンである前記方法。
【請求項５】
請求項４記載の方法であって、付加ピクセルデータの組それぞれの各タイルは、ＪＰＥＧ圧縮により圧縮される前記方法。
【請求項６】
ビットマップ入力画像をファイル記憶システムに記憶するための画像記憶フォーマットに変換する方法であって、前記方法は、
（ａ）第１段階および最終段階を含む複数の段階のそれぞれにおいて、各方向のサイズが、任意の段階に伝達される対象画像の二分の一のピクセルのサイズである任意の段階における縮小画像および任意の段階における縮小画像とサイズが同一の３つのアレイを含む付加ピクセルデータの組を発生するように、対象画像を処理するステップであって、
（ｉ）縮小画像を提供するように、対象画像に縮小操作を受けさせる段階であって、縮小画像が対象画像からの低周波情報を含み、対象画像より少ないピクセルを有する段階と、
（ｉｉ）対象画像にフィルタ操作を受けさせる段階であって、縮小画像および付加ピクセルデータの組が対象画像を所望の正確度に再生するに十分なように、付加ピクセルデータの組を発生する段階を含む前記ステップと、
（ｂ）縮小画像が閾値以下のサイズを有するかを決定するステップと、
（ｃ）縮小画像が十分に小さい最終段階に最終縮小画像を得るステップと、
（ｄ）最終縮小画像をタイルに分割するステップと、
（ｅ）付加ピクセルデータの組の少なくともいくつかをタイルに分割するステップと、
（ｆ）最終段階以外の少なくとも１つの段階において発生した特定の縮小画像をタイルに分割するステップと、
（ｇ）特定の縮小画像の各タイルのブロックを画像記憶フォーマットに含めるステップと、
（ｈ）画像記憶フォーマットを作成するステップであって、画像記憶フォーマットが、最終縮小画像の各タイルのブロックと、複数の段階からの付加ピクセルデータの組それぞれの各タイルのブロックと、最終縮小画像の各タイルのブロックのそれぞれの場所および複数の段階からの付加ピクセルデータの組それぞれの各タイルのブロックのそれぞれの場所の決定を可能とするインデックスとを含むようなステップと、
（ｉ）最終縮小画像と付加ピクセルデータの組とを利用して入力画像を再生し、損失のある再生入力画像を提供するステップと、
（ｊ）損失のある再生入力画像を入力画像と比較するステップと、
（ｋ）損失のある再生入力画像と組み合わされた時に無損失の入力画像を提供する増分画像を決定するステップと、
（ｌ）増分画像を圧縮するステップと、
（ｍ）圧縮された増分画像を画像記憶フォーマットの一部として含めるステップと、
を含む前記方法。
【請求項７】
請求項６記載の方法であって、最終縮小画像の各タイルのブロックは、タイルの圧縮バージョンである前記方法。
【請求項８】
請求項６記載の方法であって、付加ピクセルデータの組それぞれの各タイルのブロックは、タイルの圧縮バージョンである前記方法。
【請求項９】
請求項１ないし請求項８のいずれかに記載の方法によってファイル記憶システムに記憶するための画像記憶フォーマットに変換され、ファイル記憶システムに記憶されたビットマップ入力画像の所望の部分を所望の解像度で検索する方法であって、画像記憶フォーマットは、（ｉ）所望の解像度より低い第１の解像度のビットマップ入力画像のタイルのブロックと、（ｉｉ）第１の解像度および第１の解像度より高く且つ所望の解像度より低い全ての解像度のビットマップ入力画像のタイルの付加ピクセルデータと、（ｉｉｉ）ビットマップ入力画像のタイルのブロックの場所およびビットマップ入力画像のタイルの付加ピクセルデータの場所を決定するインデックスとを含み、タイルのブロックおよび特定の解像度の付加ピクセルデータは、特定の解像度より高い新しい解像度でタイルのブロックを発生するに十分であり、前記方法は、
（ａ）第１の解像度のビットマップ入力画像の所望の部分に対応するタイルのブロックの場所を決定するためにインデックスにアクセスするステップと、
（ｂ）ビットマップ入力画像の所望の部分に対応するタイルの第１の解像度の付加ピクセルデータの場所を決定するためにインデックスにアクセスするステップと、
（ｃ）ステップ（ａ）において決定された場所からタイルのブロックを検索するステップと、
（ｄ）ステップ（ｂ）において決定された場所から付加ピクセルデータを検索するステップと、
（ｅ）第１の解像度より高い第２の解像度でビットマップ入力画像の所望の部分を発生するようにステップ（ｃ）において検索されたタイルのブロックをステップ（ｄ）において検索された付加ピクセルデータと組み合わせるステップと、
（ｆ）第２の解像度が所望の解像度より低ければ、第２の解像度を第１の解像度として取り扱ってステップ（ｂ）、（ｄ）、（ｅ）を反復するステップと、
を含む前記方法。
【請求項１０】
請求項１ないし請求項８のいずれかに記載の方法によってファイル記憶システムに記憶するための画像記憶フォーマットに変換され、ファイル記憶システムに記憶されたビットマップ入力画像の所望の部分を所望の解像度で検索する方法であって、前記方法は、
（ａ）画像記憶フォーマットが所望の解像度のビットマップ入力画像を含むかを決定するステップと、
（ｂ）ビットマップ入力画像のいずれの解像度が記憶されているかを示す画像記憶フォーマットの指示された部分にアクセスするステップと、
（ｃ）画像記憶フォーマットが所望の解像度のビットマップ入力画像を含んでいれば、さらに、
（ｉ）所望の解像度のビットマップ入力画像のタイルのブロックの場所を決定するために画像記憶フォーマットの特定部分にアクセスするステップと、
（ｉｉ）所望の解像度のビットマップ入力画像の所望の部分に対応するタイルのブロックを検索するステップとを含み、
（ｄ）画像記憶フォーマットが所望の解像度のビットマップ入力画像を含んでいなければ、さらに、
（ｉ）所望の解像度より低い第１の解像度のビットマップ入力画像の所望の部分に対応するタイルのブロックの場所を決定するために画像記憶フォーマットの特定部分にアクセスするステップと、
（ｉｉ）第１の解像度の付加ピクセルデータの場所を決定するために画像記憶フォーマットの特定部分にアクセスするステップであって、付加ピクセルデータが所望の解像度より低い解像度の相補画像のタイルのブロックであるステップと、
（ｉｉｉ）ステップ（ｃ）（ｉ）において決定された場所からタイルのブロックを検索するステップと、
（ｉｖ）ステップ（ｃ）（ｉｉ）において決定された場所から付加ピクセルデータを検索するステップと、
（ｖ）第１の解像度より高い第２の解像度でビットマップ入力画像の所望の部分を発生するためにステップ（ｃ）（ｉｉｉ）において検索されたタイルのブロックをステップ（ｃ）（ｉｖ）において検索された付加ピクセルデータと組み合わせるステップと、
（ｖｉ）第２の解像度が所望の解像度より低ければ、第２の解像度を第１の解像度として取り扱ってステップ（ｃ）（ｉｉ）、（ｃ）（ｉｖ）、（ｃ）（ｖ）を反復するステップと、
を含む前記方法。
【請求項１１】
請求項１ないし請求項８のいずれかに記載の方法によってファイル記憶システムに記憶するための画像記憶フォーマットに変換されたコンピュータのメモリのビットマップ入力画像を操作する方法であって、
各タイルのブロックは、各タイルのピクセルデータを複数の解像度のいずれかの解像度で再生するに十分であり、任意のタイルのブロックは、任意のタイルのサムネイルバージョンと１つまたはそれ以上のハイパスフィルタされた相補画像とを含み、相補画像には複数の解像度のうちの種々の解像度のものがあり、任意のタイルがサムネイルバージョンと相補画像の少なくとも選択された１つとを組み合わせることによりいずれかの解像度で再生されるようになっており、前記方法は、
（ａ）ファイルからインデックスを検索して、インデックスのインメモリバージョンを作成するようにインデックスを画像記憶フォーマットからメモリにロードするステップと、
（ｂ）メモリにデータ構造を作成するステップであって、データ構造が、テーブルであって、ビットマップ入力画像の各タイルのエントリを有し、各タイルのエントリは、有効ビットを含み、全てのタイルの有効ビットは、最初、第１の状態を有するステップと、
（ｃ）ファイルから画像記憶フォーマットの少なくとも一部を検索して、画像記憶フォーマットの少なくとも一部をメモリにロードするステップであって、前記一部が選択された複数のタイルに対応するステップと、
（ｄ）画像記憶フォーマットのロードされた部分を選択された複数のタイルのピクセルデータに変換するステップと、
（ｅ）ビットマップ入力画像内の１つまたはそれ以上の特定のタイルの変更を指定するユーザ入力に応答して前記１つまたはそれ以上の特定のタイルのそれぞれの有効ビットを第１の状態と異なる第２の状態に設定するステップと、
（ｆ）セーブ操作を指定する信号に応答してデータ構造から有効ビットが第２の状態にあるタイルを決定するステップであって、有効ビットが第２の状態にあるような各タイルに対して、さらに、
（ｉ）そのタイルのピクセルデータをそのタイルのブロックに変換する段階と、
（ｉｉ）そのタイルのブロックを含むように画像記憶フォーマットを更新して、データをファイルに記憶する段階と、
（ｉｉｉ）そのタイルのブロックの新しい場所を反映するようにインデックスのインメモリバージョンを更新する段階と、
（ｉｖ）そのタイルのブロックの新しい場所を反映するように画像記憶フォーマットのファイル内のインデックスを更新する段階を含むステップ、
を含む前記方法。
【請求項１２】
請求項１ないし請求項８のいずれかに記載の方法によってファイル記憶システムに記憶するための画像記憶フォーマットに変換されたコンピュータのメモリのビットマップ入力画像を操作する方法であって、各タイルのブロックは、各タイルのピクセルデータを複数の解像度のいずれかの解像度で再生するに十分であり、任意のタイルのブロックは、任意のタイルのサムネイルバージョンと１つまたはそれ以上のハイパスフィルタされた相補画像とを含み、相補画像には複数の解像度のうちの種々の解像度のものがあり、任意のタイルがサムネイルバージョンと相補画像の少なくとも選択された１つとを組み合わせることによりいずれかの解像度で再生されるようになっており、前記方法は、
（ａ）ファイルからインデックスを検索して、インデックスのインメモリバージョンを作成するようにインデックスを画像記憶フォーマットからメモリにロードするステップと、
（ｂ）メモリにデータ構造を作成するステップであって、データ構造が、テーブルであって、ビットマップ入力画像の各タイルのエントリを有し、各タイルのエントリは、有効ビットを含み、全てのタイルの有効ビットは、最初、第１の状態を有するステップと、
（ｃ）ファイルから画像記憶フォーマットの少なくとも一部を検索して、画像記憶フォーマットの少なくとも一部をメモリにロードするステップであって、前記一部が選択された複数のタイルに対応するステップと、
（ｄ）ビットマップ入力画像内の１つまたはそれ以上の特定のタイルの変更を指定するユーザ入力に応答して前記１つまたはそれ以上の特定のタイルのそれぞれの有効ビットを第１の状態と異なる第２の状態に設定するステップと、
（ｅ）セーブ操作を指定する信号に応答してデータ構造から有効ビットが第２の状態にあるタイルを決定するステップであって、有効ビットが第２の状態にあるような各タイルに対して、さらに、
（ｉ）そのタイルのブロックを含むように画像記憶フォーマットを更新して、ブロックをファイルに記憶する段階と、
（ｉｉ）そのタイルのブロックの新しい場所を反映するようにインデックスのインメモリバージョンを更新する段階と、
（ｉｉｉ）そのタイルのブロックの新しい場所を反映するように画像記憶フォーマットのファイル内のインデックスを更新する段階と、
を含む前記方法。
【発明の詳細な説明】
本特許文書の開示の部分は、著作権保護を受ける内容を含む。この著作権の所有者は、本特許文書または特許商標庁の特許ファイルまたは特許記録に現れる本特許の開示の何人によるファクシミリ再生に異議を唱えるものではないが、その他の点においては、全ての著作権を保有する。
発明の背景
本発明は、一般的には画像データの記憶および検索に関し、特に、ディスプレイ、印刷または通信の目的のための選択的検索を与えるファイルフォーマットに関する。
画像は、千語に値するといわれるが、歴史はこれを証明している。洞穴の壁に絵を描いた穴居人から、マルチメディアの百科事典にアクセスする現代の学生まで、人々は、常に画像情報を本質的な通信のツールと考えてきた。コンピュータ技術における最近の進歩は、複雑な文書を電子的な形式で作成し且つ交換することを可能にした。テキストおよびグラフィックス（ラインアート）は、容易にフォーマットされ、また操作されて、アマチュアのコンピュータユーザが高度に専門的な文書を作成することを可能にする。論理的な次のステップは、写真および他のビットマップイメージの文書内への組み込みである。
写真をディジタル化して編集する技術は存在するが、厄介な問題は、ビットマップイメージが極めて大きいことである。例えば、１１８．１ドット／ｃｍ（３００ｄｐｉ（ドット／インチ））において、２４ビット／ピクセルで走査される２０．３×２５．４ｃｍ（８×１０インチ）のカラー写真は、２０メガバイトを超えるデータを表し、これはほとんど極端な例ではない。従って、ローカルコンピュータの環境においては、そのような画像を捕捉し観察し操作し印刷することは、たとえ最新のコンピュータ装置をもってしても、ひどく低速のプロセスとなる。この問題は、これらの画像をネットワークを経て転送することが所望される時には、さらに重大になる。
幸運なことに、大抵の写真のビットマップ表示は、大量の反復情報を含み、それが画像を画像圧縮スキームに従いやすくする。画像が、約１／１０のスペースに高品質で記憶されることを可能にする、ＪＰＥＧと呼ばれる国際圧縮規格が発展し、採用されてきた。さらに高レベルの圧縮も達成されうるが、再生される画像の品質は低下する。無損失の圧縮を実現することはできるが、圧縮因子は、わずか４ｘの程度になる。ＪＰＥＧ圧縮およびそのいくつかの改善についての議論は、ライテンベルグ（Ｌｉｇｈｔｅｎｂｅｒｇ）の米国特許第５，３３３，２１２号に見出すことができ、その（付録を含む）全開示は、全ての目的のために参照して本願に取り込むこととする。
画像のために特製された仮想メモリスキームを取り入れた、画像編集プログラムが発展せしめられた。これらのスキームにおいては、画像はタイル（長方形の画像領域）に分割される。タイルの利点は、画像データをディスプレイされるタイルのみに対して検索することができ、オペレーションがローカルに行われうることである。
もう１つの問題は、画像が異なる解像度でアクセスされなければならない場合に起こる。例えば、ある画像は、２８．３ドット／ｃｍ（７２ｄｐｉ）で実際のサイズにディスプレイされるが、１１８．１ドット／ｃｍ（３００ｄｐｉ）または２３６．２ドット／ｃｍ（６００ｄｐｉ）で印刷される。この問題に対する解決法は、コダックのフォトＣＤフォーマットにおけるようなピラミッドコーディングとして公知であり、その場合、画像は異なる解像度で記憶される。ピラミッドは、ユーザがあるタスクに対し最も効果的な画像解像度を選択することを可能にする。例えば、多数の画像にざっと目を通すためには、サムネイル画像（ディスプレイされた時、１辺が２．５４ｃｍ（１インチ）または５．０８ｃｍ（２インチ）程度である高度に縮小された画像）を観察する。画像の基本的特徴が識別され、次に選択された画像が、観察のためのスクリーン解像度でまたは印刷に適するもっと高い解像度で検索される。
上述の解像度は、コンピュータ上で画像を使用する途中に存在するある障害を扱うためには成功したが、これらの解像度は欠点をもたないわけではない。例えば、ＪＰＥＧ圧縮は、ファイルサイズを縮小するが、画像の所望部分の選択的再生を可能にはしない。むしろそれは、画像の左上と所望部分の右下との間の画像の全ての部分を再生するのに必要である。さらに、タイルに基づく仮想メモリスキームは、メモリ要求の軽減はするが、ファイルサイズの縮小はしない。さらに、フォトＣＤフォーマットで記憶された画像は、フォトＣＤ上でのみ使用されるほど大きいものである。このフォーマットは、オンライン記憶のためまたはローカルハードディスク上の記憶のためのフォーマットとしては実用的でない。
発明の要約
本発明は、画像データを選択的に記憶し且つ検索するための効果的かつ柔軟な画像データフォーマットを提供する。本発明による記憶フォーマットは、画像データの所望部分を所望解像度で検索できるようにする。
簡単にいうと、記憶のための入力画像の処理方法は、さまざまな解像度のいくつかの画像への入力画像の分解と、これらの分解画像の少なくともあるもののタイル（長方形アレイ）への分割と、それぞれのタイルを表すブロック（「タイルブロック」と呼ばれる）およびタイルブロックのそれぞれの場所を指定するインデックスの記憶とを含む。タイルの表示は、典型的にタイルの圧縮バージョンである。特定実施例においては、ＪＰＥＧ圧縮が用いられる。
特定実施例においては、対象画像は反復して分解されて、低解像度の縮小画像および付加的（すなわち相補的）ピクセルデータの組が発生せしめられる。第１段階においては、対象画像は通常入力画像であり、後のそれぞれの段階においては、対象画像は前の段階からの縮小画像である。与えられた段階において発生せしめられる付加的ピクセルデータは、その段階において発生せしめられる縮小画像と同じ特性解像度を有するものと考えられる。与えられた解像度を有する縮小画像および付加的ピクセルデータは、時にはレイヤと呼ばれる。
処理は、典型的には得られる縮小画像が所望の小さいサイズになるまで行われる。これは、典型的にはディスプレイに役立つ最小の画像を表すサイズである。特定実施例においては、これはサムネイルと呼ばれる１辺上に８０ピクセルないし１６０ピクセルがある画像である。
それぞれの段階において行われる縮小は、対象画像の基本的外見を保持するタイプのものである。特定実施例においては、縮小画像は、対象画像を水平および垂直ローパスフィルタを通し、続いてデシメーションを受けさせることにより得られる。特定実施例においては、縮小はそれぞれの次元における係数２によるものである。
付加的ピクセルデータは、対象画像の縮小において失われた情報の少なくともいくらかを含む。これにより、縮小画像と付加的ピクセルデータとを適切に組合わせれば、対象画像が所望の程度に再生されることになる。もし付加的ピクセルデータが、対象画像の忠実な再生を可能にすれば、（サムネイル以外の）縮小画像は冗長なものとなり、それらをファイル内へ記憶する必要はなくなる。すなわち、与えられたレイヤは、そのレイヤの解像度における付加的ピクセルデータを含む必要があるのみである。しかし、ある実施例においては、縮小画像はファイル内に含まれて直接的アクセスを可能にし、また縮小画像を再生するための計算資源の必要性を解消しまたは減少させる。
特定実施例においては、付加的ピクセルデータは相補的画像の組を含み、これらの画像は、対象画像にフィルタ操作の３つの系列、すなわち水平ローパスフィルタおよび垂直ハイパスフィルタ、水平ハイパスフィルタおよび垂直ローパスフィルタ、および水平ハイパスフィルタおよび垂直ハイパスフィルタのそれぞれを受けさせることにより発生せしめられる。３つの得られたフィルタ画像のそれぞれは、デシメートされる。
画像ファイルの任意の所望部分は、検索されかつ分解プロセスにおいて発生せしめられた縮小画像の特徴をなす解像度の所望の１つにより再生されうる。もし特定の縮小画像がファイル内に記憶されていれば、その関連のタイルブロックは直接検索される。もし最終縮小画像がファイル内に実際に記憶されている唯一の縮小画像であれば、その縮小画像は典型的に再生される必要がある。これは、本質的にファイルを作成するために用いられた分解プロセスを逆にすることにより行われる。
特定実施例においては、最終縮小画像また最終段階における相補的画像の関連のタイルブロックは検索され、（もし必要ならば）圧縮解除され、アップサンプリングされ組合わされる。これにより、分解プロセスの最終段階への入力であった縮小（対象）画像に対する近似である拡大画像が発生する。再生の忠実度は、タイルに関してなされた圧縮の損失度と、相補的画像プロセスがピクセル値を保存した度合とに依存する。
このプロセスは、再生画像を再生画像と同じ解像度を有する相補的画像の関連部分と組合わせることにより反復される。この反復は、所望解像度の画像が得られた時に停止される。これは、原入力画像またはある中間解像度における画像でありうる。もし損失のある圧縮スキームが用いられていれば、入力画像と入力画像の解像度における再生画像との間の差を表す追加のタイル化情報をファイル内に記憶させることもできる。この情報は、無損失で圧縮される。
本発明は、またメモリ内の画像を変更し、その変更を組み込んでファイルを更新する効率的な技術を提供する。画像の部分がファイルから検索され、メモリ内へ入力されると、ファイル内のタイルブロックに関するインデックス情報を含むテーブルがメモリ内に作成される。このテーブルは、それぞれのタイルブロックのための「有効」ビットを含む。この有効ビットは、最初にタイルがメモリ内において変更されておらず、従って現在ファイル内にあるものに対応することを示す状態にセットされる。
もし画像の部分が変更されれば、変更部分を含むタイルブロックは「無効」とマーク付けされ、ディスクファイル内に記憶されているマップされたタイルが、もはやメモリ内にあるものに対応していないことを示す。変更をセーブすることが所望される時は、変更されたタイルに対するタイルブロックがファイルに、好ましくはファイルの終わりに書込まれ、ファイル内のインデックスが、変更されたタイルブロックの新しい場所を反映するように変更される。
本発明の性質および利点のさらなる理解は、本明細書の残りの部分および図面を参照することにより得られる。
【図面の簡単な説明】
図１は、本発明が実施されるシステムのブロック図であり、
図２は、本発明によるファイルへの入力画像の変換を示す高レベルフローダイアグラムであり、
図３は、画像分解において反復して行われるステップを示す拡大フローダイアグラムであり、
図４は、本発明によるファイル内に記憶された画像の検索および再生を示す高レベルフローダイアグラムであり、
図５は、画像再生において反復して行われるステップを示す拡大フローダイアグラムである。
システムの概要
図１は、本発明を実施しうるコンピュータシステム１０の簡単化されたブロック図である。この高いレベルにおいて示されたコンピュータシステムの構成は、標準的なものであるので、図１は「従来技術」と表示されている。しかし、本発明を実施するために適切にプログラムされたシステム１０のようなコンピュータシステムは、従来技術のものではない。本発明の特定実施例は、図１に示されているような汎用コンピュータシステムにより具体化され、残りの説明は、一般にその環境を仮定する。しかし、本発明は、ディジタルカメラ、セットトップボックスおよびプリンタのような専用の光入力および出力装置においても実施される。
公知の慣例に従って、このコンピュータシステムは、バスサブシステム１５を経ていくつかの周辺装置と通信するプロセッサ１２を含む。これらの周辺装置は、典型的にメモリサブシステム１７、ユーザ入力機構２０、ディスプレイサブシステム２２、プリンタ２３のような出力装置およびファイル記憶システム２５を含む。
この状況において、「バスサブシステム」という用語は、システムのさまざまな部品を意図されたように互いに通信させるための、どのような機構をも含むように総称的に用いられている。入力装置およびディスプレイを除外して、他の装置は、同じ物理位置にある必要はない。すなわち、例えば、ファイル記憶システムの部分は、電話線を含むさまざまな市内区域または広域ネットワークメディアを経て接続されうる。同様にして、本発明は、ＰＣおよび作業端末との関連において実施されることが最も多いと予想されるが、入力装置およびディスプレイは、プロセッサと同じ場所にある必要はない。
バスサブシステム１５は、単一バスとして概略的に示されているが、典型的なシステムは、ローカルバスおよび１つまたはそれ以上の拡張バス（例えば、ＡＤＢ、ＳＣＳＩ、ＩＳＡ、ＥＩＳＡ、ＭＣＡ、ニューバス（ＮｕＢｕｓ）、またはＰＣＩ）などのいくつかのバスならびに直列および並列ポートを有する。ネットワークの接続は、通常、これらの拡張バスの１つの上のネットワークアダプタまたは直列ポート上のモデムのような装置を経て行われる。コンピュータシステムは、デスクトップシステムまたはポータブルシステムである。
メモリサブシステム１７は、主要ランダムアクセスメモリ（ＲＡＭ）３０と、固定命令を記憶している読取り専用メモリ（ＲＯＭ）３２とを含むいくつかのメモリを含む。マッキントッシュコンパチブルなパーソナルコンピュータの場合は、これはオペレーティングシステムの部分を含み、ＩＢＭコンパチブルなパーソナルコンピュータの場合は、これはＢＩＯＳ（ベーシック入力／出力システム）を含む。
ユーザ入力機構２０は、典型的にキーボード４０を含み、さらにポイント装置４２およびスキャナ４３を含む。このポイント装置は、マウス、トラックボール、タッチパッドまたはグラフィックスタブレットのような間接ポイント装置、またはディスプレイに組み込まれたタッチスクリーンのような直接ポイント装置である。
ディスプレイサブシステム２２は、典型的にディスプレイ制御装置４４と、この制御装置に結合せしめられたディスプレイ装置４５とを含む。このディスプレイ装置は、ブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）などのフラットパネル装置または投写装置である。ディスプレイ制御装置は、ディスプレイ装置へ制御信号を供給し、通常はディスプレイ装置上に現れるピクセルを記憶するためのディスプレイメモリ（図示せず）を含む。
ファイル記憶システムは、プログラムおよびデータファイルのための持久性（不揮発性）記憶装置を備え、典型的に少なくとも１つのハードディスクドライブ４６と、少なくとも１つのフロッピーディスクドライブ４７を含む。また、ＣＤ−ＲＯＭドライブ４８および光学装置のような他の装置も存在する。さらに、このシステムは、着脱自在の媒体カートリッジを有するタイプのハードドライブをも含む。上述のように、１つまたはそれ以上のドライブは、ローカルエリアネットワーク上またはインターネットのワールドワイドウェブ上のサイト内のサーバにおけるように遠隔位置に配置される。
ファイルの作成およびフォーマット
図２は、本発明の実施例によるファイルフォーマットを有するファイルへの入力画像の変換を示す全体的フローダイアグラムである。このファイルフォーマットは、手元のタスクに依存して、さまざまな解像度での原ビットマップ入力画像の所望部分へのアクセスを可能ならしめるに十分な情報を記憶している。このファイルフォーマットは、ユーザがファイルと対話でき、ファイルがユーザの必要とするものを提供するので、アクティブファイルフォーマットと呼ばれる。
以下に説明する特定実施例においては、ファイルは、より小さいファイルを作るために冗長情報をなくすよう構成される。トレードオフは、ファイルから検索される情報に基づいて、与えられた解像度で画像を再生することが必要であることである。
ファイルを構成するプロセスは、最初のパスにおいて入力画像が画像分解段階５０を受け、その後のパスにおいて段階５０から得られたデータの部分が再び段階５０へ入力されるという意味で反復的である。段階５０への入力画像は、総称的に対象画像と呼ばれる。段階５０の操作は、対象画像よりも低い解像度の縮小画像と、縮小画像の発生の際に捨てられた所望レベルの情報を含む付加的画像成分とを発生させることである。これらの付加的画像成分は、付加的ピクセルデータまたは「相補的画像」と呼ばれる。特定実施例においては、段階５０における操作は、フィルタリングと係数２によるデシメーションとを含む。
それぞれの段階において発生せしめられた縮小画像および相補的画像は、特性解像度を有し、あるレイヤの画像として考えられる。特定実施例においては、縮小画像は後に発生するレイヤ内の情報から再生されうるので、ファイルの部分としては記憶されない。
対象画像が処理され終わった時は、縮小画像および相補的画像を生じ、相補的画像は、段階５０から出力されて、以下に説明するように、さらに処理され記憶される。システムは、もう１回の反復が必要であるかどうかをテストする（ステップ５５）。この方法は、任意の所望の回数反復されるが、特定実施例においては、テストは、縮小画像のサイズがスレショルド未満であるかどうかに関するものであり、そのスレショルドとは、縮小画像のそれぞれの次元が８０ピクセルないし１６０ピクセルであることである。明らかに、必要な反復数は入力画像のサイズから前もって容易に決定される。
もし縮小画像が十分に小さくなければ、その縮小画像は、対象画像として段階５０へ伝達される（ステップ６０）。もし縮小画像が十分に小さければ、段階５０によるさらなる処理の必要はない。この段階において、「最終縮小画像」または「サムネイル」と呼ばれるその縮小画像は出力され、それぞれの段階において出力された相補的画像と共にさらなる処理を受けて記憶される。
サムネイルおよび相補的画像（および、もし他の縮小画像がファイルの部分として記憶されるべきであれば、それら他の縮小画像）は、タイルに分割されて（ステップ６５）、その後の、その画像の所望部分の所望解像度での検索および再生を可能にする。個々のタイルは圧縮される（ステップ７０）が、圧縮は、本発明の必要部分ではない。圧縮は、もし用いられるとすれば、情報の損失を起こしうる１つの可能な機構となる。無損失の圧縮技術は存在するが、特定実施例は、損失を伴う技術であるＪＰＥＧ圧縮を用いる。
情報損失のもう１つの可能な原因は、段階５０内の処理である。段階５０からの縮小画像出力は、定義により段階５０へ入力された対象画像の部分のみを含む。対象画像が再生されうる程度は、相補的画像の発生の性質に依存する。相補的画像は、もし所望ならば、そのような再生を可能にする全ての情報を含むが、いずれの中間解像度の画像をも無損失的に再生する必要のないアプリケーションもいくらか存在する。しかし、原入力画像を無損失的に再生できることは所望される。
もし無損失再生を行う必要があれば、圧縮されたタイルは、ファイル内への記憶のために無損失成分を作る処理を受ける（ステップ７２）。これは、完全な解像度での画像の再生、原入力画像からの減算および差の画像を表すデータの発生を実現させる。後者は、タイル化され無損失的に圧縮される。
ファイルは、タイル化ステップ６５において作られたそれぞれのタイルのための個々のブロックと、全てのこれらのブロックに対するインデックスとを含む。もし圧縮が用いられれば、そのブロックは、圧縮ステップ７０において作られた圧縮データを記憶する。これらのブロックは、時には「タイルブロック」と呼ばれる。もしステップ７２が行われれば、インデックスもまた無損失情報成分に関連する。インデックスの構成およびファイルの記憶は、ステップ７５として示され、上述の全処理の後に行われる。
上述のように、ファイルは、全タイルブロックの場所（ファイル内におけるオフセット）を含有するインデックスを含む。それぞれのタイルが圧縮される実施例においては、タイルブロックの長さは、等しくなく、それゆえ、それぞれのタイルブロックの長さと、ファイル内におけるタイルブロックのオフセットとを記憶することも必要である。タイルブロックの長さは、インデックス内に、またはタイルブロック自身の部分として記憶される。圧縮が用いられない場合、または固定サイズへ圧縮する圧縮方式が用いられる場合（例えば、上述の米国特許第５，３３３，２１２号参照）は、タイルブロックは与えられたレイヤ内において全て等しい長さを有し、タイルブロックの個々の長さを記憶する必要はない。もし、ある別の実施例におけるように、１つまたはそれ以上の中間縮小画像自体を記憶することが所望されれば、インデックスは、これらの縮小画像のためのタイルブロックの場所を記憶する必要がある。
タイルサイズの選択は、いくつかの設計上の考慮を受ける。与えられた画像が、タイル寸法の正確な倍数である寸法を有することはありそうもないので、小さいタイルほど、画像の底辺および右辺に沿った空白スペースの無駄な記憶を減少させる。さらに、ユーザは、一般に再生のために領域を指定する時タイルの境界のことは知らないので、小さいタイルほど再生される不要な画像部分の量を減少させる。一方、大きいタイルぼど検索および記憶のためのＩ／Ｏ動作の数を減少させる。大きいタイルはまた小さいインデックスを生じ、このことは記憶のためには大きい成果ではないが、全インデックスは、メモリ内にある可能性が高いので、メモリのためには重要である。
一般に、１辺上のピクセル数は、計算を容易にするため、および（それぞれの段階における２ｘの縮小を仮定して）異なるレイヤ内の対応するタイルの関連を容易にするために、２の累乗であるべきであり、一般には正方形のタイルが選択される。全てのレイヤにおいてタイルサイズが同じであるべき根本的な理由はなく、ある実施例においては、１つのレイヤ内の単一タイルが、次の縮小レイヤ内の単一（縮小）タイルに対応するようにタイルを次第に小さくしていくと有利である。さらに、特定のサイズは、頻繁に用いられるレイヤのために、Ｉ／Ｏまたはメモリの動作を最適化する。しかし、以下の議論の大部分においては、固定されたタイルサイズが仮定される。現在の実施においては、１２８×１２８ピクセルのタイルサイズが用いられているが、６４×６４ピクセルのタイルサイズは、もう１つの適当な選択である。
タイルサイズおよび縮小の段階数に依存して、ある段階（例えば、サムネイル段階）における縮小画像およびその相補的画像は、単一タイル内に適合する。そのような場合、特定画像のタイルへの分割に言及したときは、画像が単一タイル内へ適合するように画像が十分に縮小され終わっている可能性を含むと解釈すべきである。しかし、タイル化の利益は、少なくともいくらかのレイヤが複数のタイルに分割される限り実現される。
いくつかの結果画像の発生と、結果画像のタイル化および圧縮と、タイルブロックのインデックスの構成と、ファイルの記憶とにより対象画像を処理する方法の以上の説明は、行われる操作を正確に表現している。しかし、これは前記方法の高レベルの見方であることを理解すべきである。実際の具体化においては、諸ステップは、多分さらに分割されてインタリーブされ、処理が進行するのに伴ってますます圧縮されたタイルおよび対応するインデックス情報を発生する。
１つの可能なアプローチは、入力画像の諸部分を他の諸部分を処理する前に完成まで処理することである。例えば、もし２レベルの縮小が行われるのであれば、入力画像の１６タイルがサムネイルの単一タイルにマップされ、１６タイルのそれぞれのグループは、以下のように完全に処理される。第１段階において、入力画像からの４タイルの４つのサブグループのそれぞれが、単一の縮小タイルおよび３つの相補的タイルを発生し、これらのうちの後者は圧縮され、インデックスを与えられ直ちに記憶される。縮小画像の４タイルは、サムネイルの単一タイルおよび３つの相補的タイルを発生し、これらの全ては圧縮され、インデックスを与えられ直ちに記憶される。この段階において、２段階の処理からの圧縮タイルは、入力画像の解像度で１６タイルを再生するために用いることができ、１６入力タイルのための無損失成分が構成され、無損失的に圧縮され、インデックスを与えられ、記憶される。
図３は、特定実施例の画像分解段階５０において行われる諸ステップを示す拡大フローダイアグラムである。簡単にいうと、縮小画像および３つの相補的画像は、対象画像にフィルタリングおよびデシメーション操作の４つの組合せを受けさせることにより得られる。以下に略述される技術は、ベーダの米国特許第４，９４３，８５５号に異なる状況においての使用のために説明されており、その全開示は、全ての目的のために参照して本願に取り込むこととする。
特定実施例においては、対象画像は、それぞれの行に適用される水平ローパスフィルタ（ステップ８０）と、それに続く１つおきの列のデシメーション（ステップ８２）とを受け、第１中間画像を発生する。対象画像は、別個に、それぞれの行に適用される水平ハイパスフィルタ（ステップ８５）と、それに続く１つおきの列のデシメーション（ステップ８７）とを受け、第２中間画像を発生する。それぞれの中間画像は、次に、別個に２つの追加の操作ステップを受ける。特定実施例においては、フィルタは、有限インパルス応答（ＦＩＲ）フィルタである。例えば、ローパスフィルタは、係数（１，１）または（１，３，３，１）を有すればよく、一方、ハイパスフィルタは、係数（１，−１）または（１，３，−３，−１）を有すればよい。
第１中間画像は、それぞれの列に適用される垂直ローパスフィルタ（ステップ９０）と、それに続く１つおきの行のデシメーション（ステップ９２）とを受け、低低画像とも呼ばれる縮小画像を発生する。第１中間画像は、別個に、それぞれの列に適用される垂直ハイパスフィルタ（ステップ９５）と、それに続く１つおきの行のデシメーション（ステップ９７）とを受け、低高画像とも呼ばれる第１相補的画像を発生する。
第２中間画像は、それぞれの列に適用される垂直ローパスフィルタ（ステップ１００）と、それに続く１つおきの行のデシメーション（ステップ１０２）とを受け、高低画像とも呼ばれる第２相補的画像を発生する。第２中間画像は、別個に、それぞれの列に適用される垂直ハイパスフィルタ（ステップ１０５）と、それに続く１つおきの行のデシメーション（ステップ１０７）とを受け、高高画像とも呼ばれる第３相補的画像を発生する。
画像認識
図４は、上述のファイルフォーマットを有するファイルからの画像の検索および再生を示す全体的フローダイアグラムである。画像分解のそれぞれの段階におけるサムネイルおよび相補的画像は、タイル化されているので、画像の所望分解を選択的に再生することができる。以下の議論は、典型的に特定画像の検索に関するものであるが、タイルブロックを検索して画像の所望分解に対応するタイルを再生することのみが必要であることを理解すべきである。
再生プロセスは、大部分において上述の分解プロセスの逆である。再び、そのプロセスは、反復的である。最初のパスにおいては、サムネイル画像およびその相補的画像が検索され、（もし前に圧縮されていれば）圧縮解除され、画像拡大および再生段階１２０を受ける。その後のパスにおいては、段階１２０から得られた拡大画像が、次のより高レベルの解像度にある画像から発生せしめられ検索された相補的画像と共に、再び段階１２０へ入力される。再び、段階１２０へ入力される前の段階からのサムネイル画像および拡大画像は、総称的に対象画像と呼ばれる。段階１２０の操作は、対象画像およびその相補的画像の解像度より高い解像度の拡大画像を発生することである。特定実施例においては、段階１２０における操作は、内挿、フィルタリングおよび対象画像の組合せである。
対象画像および相補的画像が処理され終わった時は、拡大画像が発生し、システムは、もう１回の反復の必要があるかどうかをテストする（ステップ１２５）。この方法は、最大解像度、すなわち原入力画像の解像度に至るまで任意の所望回数反復される。
もし拡大画像がまだ所望解像度になっていなければ、拡大画像は、その相補的画像と共に対象画像として段階１２０へ伝達される（ステップ１３０）。もし拡大画像が所望解像度にあれば、段階１２０によるさらなる処理の必要はない。この段階で、最終拡大画像と呼ばれる拡大画像が、その使用目的のために出力される。
以上の説明は、ファイルからの画像の検索および再生に関するものであった。上述のように、これは、サムネイルおよびさまざまな相補的画像をメモリ内へ検索することと、もしタイル表示が圧縮されていれば、それらを操作する前にそれらを圧縮解除することとを伴う。サムネイルからの出発は、必ずしも必要でないことには注意すべきである。もし画像の所望部分が、再生または直接的検索により、すでにある解像度でメモリ内に存在するならば、その画像は、対象画像と考えることができ、それを拡大して、その相補的画像と組合わせられる。中間画像が記憶されない実施例においては、すでにメモリ内にあった部分は、サムネイルおよびその相補的画像から出発して再生されたものである可能性が最も高い。
図５は、特定実施例の画像再生段階１２０において行われる諸ステップを示す拡大フローダイアグラムである。この実施例は、図３に示されているように、特定の分解を仮定している。簡単にいうと、拡大画像は、対象画像および３つの相補的画像にアップサンプリング、フィルタリングおよび加算操作の４つの組合せを受けさせることにより得られる。この技術は、以下に略述され、また上述の米国特許第４，９４３，８５５号にも説明されている。
特定実施例において、対象画像は、垂直にアップサンプリングされ（ステップ１４０）、それぞれの列は垂直ローパスフィルタを受け（ステップ１４２）、第１中間画像を発生する。低高画像は、垂直にアップサンプリングされ（ステップ１４５）、それぞれの列は、垂直ハイパスフィルタを受け（ステップ１４７）、第２中間画像を発生する。第１および第２中間画像は、次に加算されて（ステップ１５０）、第３中間画像を発生する。第３中間画像は、水平にアップサンプリングされ（ステップ１５２）、それぞれの行は水平ローパスフィルタを受け（ステップ１５５）、第４中間画像を発生する。
高低画像は、垂直にアップサンプリングされ（ステップ１６０）、それぞれの列は垂直ローパスフィルタを受け（ステップ１６２）、第５中間画像を発生する。高高画像は、垂直にアップサンプリングされ（ステップ１６５）、それぞれの列は、垂直ハイパスフィルタを受け（ステップ１６７）、第６中間画像を発生する。第５および第６中間画像は、次に加算されて（ステップ１７０）、第７中間画像を発生する。第７中間画像は、水平にアップサンプリングされ（ステップ１７２）、それぞれの行は、水平ハイパスフィルタを受け第８中間画像を発生する。
第４および第８中間画像は、加算されて（ステップ１７７）拡大画像を発生し、この拡大画像は、もしさらなる反復が必要ならば、次の段階に対する対象画像となる。特定実施例においては、フィルタは、有限インパルス応答（ＦＩＲ）フィルタである。例えば、上述の特定フィルタによる分解を仮定すると、ローパスフィルタは、係数（１，１）または（１，−３，−３，１）を有すればよく、一方、ハイパスフィルタは、係数（−１，１）または（−１，３，−３，１）を有すればよい。
増大した解像度における検索
上述のように、図４および図５を参照するとき、与えられた解像度での検索は、対象画像と相補的画像とを反復的に組合わせることを伴う。これらの操作がメモリ内において行われつつある間、画像のディスプレイを遅延させる必要はない。与えられた解像度にある画像が使用可能になると直ちに、それは、三次スプラインのような内挿を用いてディスプレイのための適切なサイズまで拡大され、その内挿値は、ディスプレイメモリへ送られる。これは、たとえ真の解像度より低くても、ディスクからの相補的画像の検索を待つことなくフルサイズのディスプレイを与える。
相補的画像がディスクから検索され、画像内へ適正に組み込まれた時は、拡大画像は、そのサイズの真の解像度を有する。もしこのサイズがディスプレイのために適切であれば、その画像は、ディスプレイメモリへコピーされる。そうでない場合は、上述のようにそれを拡大し内挿した後、ディスプレイメモリ内の前の内挿画像に上書きする。新しくディスプレイされる内挿画像は、最後の反復からの相補的画像を含むので、それは前の内挿画像を改善したものを表す。このようにして、最初はファジーバージョンの画像（内挿サムネイル）がスクリーン上に現れ、ディスクファイルから追加のデータが検索されて画像内へ組み込まれるとそれは鮮明化される。
メモリ内の操作およびファイルセーブ
図２に示されているファイルの作成および記憶の説明は、ある画像から出発し、その画像をそれぞれが縮小画像および相補的画像を含むレイヤへ反復して分解することに関するものであった。全ての相補的画像が記憶される一方で、最終縮小画像のみが記憶される。画像が与えられた解像度で検索されメモリ内へ入力される時は、インデックスおよび関連のタイルブロックを検索して、適切なデータ構造をメモリ内に作成することのみが必要である。
もし画像が変更されるべきであれば、たとえその画像が低い解像度でディスプレイされても、その変更は完全な解像度でその画像に対して行われなければならない。もしその変更をセーブすることが所望されるならば、変更された部分を含むタイルブロックが、ディスクファイルへ再書込みされなければならない。プロセスをもっと効率的にするためには、タイルブロックのインデックスに対応するデータ構造が、それぞれのタイルブロックのための「有効」ビットを含むように定められる。もし画像の部分が変更されれば、変更された部分を含むタイルブロックは「無効」とマークされ、ディスクファイル内に記憶されているマップされたタイルが、もはやメモリ内にあるものに対応していないことを示す。変更をセーブすることが所望される時は、変更されたタイルブロックは、図２に関連して上述したように分解される。
特定実施例においては、新しく計算されたタイルブロックがファイルの終わりに記憶され、これらのタイルブロックにおけるオフセットおよび長さは、これらのタイルブロックが今はファイル内の新しい場所にあり、かつ異なる長さのものになっている事実を反映するように更新される。これらのタイルブロックの古いバージョンは、ファイル内に残っているが、インデックスは、それらに対するポインタを含まない。これは、データがセーブ操作毎にファイルを再構成する必要なくセーブされうるようにする。
これは、速度と、さらにセーブ操作中にデータを上書きしないこととの利点を有する。従って、それは、コンピュータの誤動作の場合に、より安全な可能性がある。一方、この実施例は、ディスクスペースを無駄にする。これは、指令に応答してファイルを再構成することにより対処される。あるいは、無駄にされたディスクスペースの問題は、メモリ内のこれらの空のスペースに絶えず注意し、書込まれるべきタイルブロックを収容するに十分大きい空のスペースがない場合に限り、タイルブロックをファイルの終わりに書込むことにより軽減される。安全のために、タイルブロックの古い場所は、たとえ十分に大きくても、そのタイルブロックが安全に新しい場所に書込まれ終わった後まで保存されうる。
メモリは、大きい画像を取り扱う時には典型的に不足する資源である。タイルブロックをファイルから検索する時は、性能上の理由から、可能な場合は、圧縮されたデータをメモリ内に保持することが好ましい。さらに、メモリ内のインデックスは、タイルブロックがメモリ内にあるかどうかなどのタイルブロックの場所についての追加の情報を有利に記憶する。
特定画像記憶フォーマットの概要
本節の次の節には、本発明による代表的なアクティブファイルフォーマットを示すＣコンピュータ言語で書かれたソースファイルＡｆｆ．ｈがリストされている。このソースコードは、コメントされ、かつ比較的説明を必要としないものであるが、いくつかのコメントは適切なものである。いわゆるマジックナンバーは、オペレーティングシステムのユーティリティが速やかにファイルの内容を識別することを可能にするが、ファイルフォーマットに対する追加的な意味はもたない。バージョンフィールドは、アクティブファイルフォーマットに対する将来の拡張された定義を可能にする。
ディレクトリは、ファイルヘッダの直後ではなくオフセットに記憶されるので、新しいディレクトリは、古いディレクトリに上書きしなければならないのではなく、ファイルの終わりに書込まれ、ヘッダ内のディレクトリオフセットに上書きすることによってのみアクティブにされる。現在定義されているように、ＡＦＦ．ｈにおけるｆＣｏｌｏｒＳｐａｃｅは単に代表的なものであり、無数の可能な色空間のわずかなもののみを示している。
了解できるように、実際のフィルタ係数は、記憶され、特別の柔軟性を提供する。ｆＲｅｓｅｒｖｅｄフィールドは、将来の拡張と、インデックスの計算を効率的にするためにｓｔｒｕｃｔｓのサイズを確実に２の累乗にすることとのためのものである。
画像を所望解像度で再生するための基本的反復プロセスは、図４に関連して説明した。以下の議論は、特にソースコードに関連する方法を説明する。以下に略述する諸ステップは、与えられた所望レイヤ（画像の解像度レベル）を再構成ための典型的なものである。
１）ヘッダを読取り、正しいかどうかをチェックする。
２）ヘッダからディレクトリオフセットを抽出し、その位置をシークする。
３）固定サイズのＡＦＦＦｉｌｅＤｉｒｅｃｔｏｒｙ構造を読取る。
４）ｉ＝０と置く。
５）オフセットＡＦＦＦｉｌｅＤｉｒｅｃｔｏｒｙ．ｆＬａｙｅｒｓ〔０〕に見出されるサムネイルのＬａｙｅｒＩｍａｇｅにアクセスすることにより、サムネイルに対するデータを見出す。
６〕対象バッファに現在のＬａｙｅｒＩｍａｇｅ．
ｆＩｎｄｅｘＯｆｆｓｅｔ〔ｋＬＬＩｎｄｅｘ〕内の情報を通じて見出されたサムネイル画像のタイルからのサムネイル画像をロードする。
７）現在のＬａｙｅｒＩｍａｇｅ内の情報を用い、ＬＨ、ＨＬおよびＨＨ画像を捜し出す。このデータをオペランドバッファ内の画像および（現在のＬａｙｅｒＩｍａｇｅ内の）与えられたフィルタ係数と組合わせ、出力バッファ内に次（ｉ＋１）のレイヤのための画像データを再生する。
８）ｉを１だけ増加させる。
９）もしｉ＝所望レイヤならば、ステップ１１へ行く。
１０）オフセットＡＦＦＦｉｌｅＤｉｒｅｃｔｏｒｙ．ｆＬａｙｅｒｓ〔ｉ〕における次のＬａｙｅｒＩｍａｇｅに対するデータを見出し、このデータを読取り、それを現在のＬａｙｅｒＩｍａｇｅとする。出力バッファをオペランドバッファとし、ステップ７へ行く。
１１）実行終了。
特定画像記憶フォーマットのためのソースコード
0004491070.tif 000002
0004491070.tif 000003
0004491070.tif 000004
0004491070.tif 000005
0004491070.tif 000006
結論
要約すると、本発明は、ビットマップ画像を管理する正確で強力な技術を提供していることがわかる。本発明の記憶フォーマットは、（タイルレベルにおける）ランダムアクセス読取りおよび書込みを提供し、任意の解像度または色空間におけるピクセルを供給する。出力（印刷またはディスプレイ）のために必要な解像度での選択的検索を可能にすることにより、本発明は、原入力画像のサイズにではなく、必要とされるデータにのみ比例するＣＰＵおよびＩ／Ｏ資源を消費する。このようにして、ユーザは、画像を最大解像度で検索する能力を保持しつつ、速度の代わりに画像の品質を意のままに選択することができる。これは、サムネイルのみをダウンロードし、従ってモデムを経て諸画像にざっと目を通すことを可能にするので重要である。
以上は、本発明の特定実施例の完全な説明であるが、さまざまな改変、別の構成および同等物が用いられる。
１つの可能な拡張は、同じ記憶装置または異なる記憶装置の異なるファイル内のような異なる場所における論理ファイルの異なる部分の記憶に関するものである。上述のように、コンピュータシステム１０内のファイル記憶システム２５は、さまざまな遠隔位置にあるドライブを含むことができ、全てのタイルブロックが単一位置に記憶されるべき原理的な必要はない。例えば、小さいレイヤは、高速アクセスのために高速のローカルディスクドライブに記憶し、大きいレイヤは、遠隔ネットワークのドライブに記憶することが所望されうる。これは、ユーザが比較的速やかにディスプレイ用の画像を再生することを可能にし、一方、より高い解像度のレイヤのためのタイルブロックの検索は、もし必要ならば、比較的平易に行われうる。
この改変は、タイルブロックを捜し出すためのインデックス内のオフセットが、経路名をも含むことのみを必要とする。上述の特定のソースコードにおいては、タイプＦｉｌｅＯｆｆｓｅｔは、符号なしの３２ビット整数（ｔｙｐｅｄｅｆＵＩｎｔ３２）として定義され、オフセット（ｆＤｉｒＯｆｆｓｅｔ、ｆＬａｙｅｒｓアレイおよびｆＩｎｄｅｘＯｆｆｓｅｔアレイ）はＵＩｎｔ３２として定義される。経路名を収容するためには、ＦｉｌｅＯｆｆｓｅｔタイプを経路のための文字列と、オフセット値のためのＵＩｎｔ３２とを含む構造として定義することができる。これを実行するためのＣコードの例は、以下の通りである。
0004491070.tif 000007
このｓｔｒｕｃｔ内のＵＩｎｔ３２は、次に前節におけるＣコード内のオフセットと同様に、タイルの場所の計算のために用いられる。
さらに、異なるレイヤを別個の物理ファイルとして記憶することは、より高いレイヤへのアクセスを制御する機構を容易化する。より高い解像度のレイヤは、暗号化またはパスワード制御を受けるようにされうる。
もう１つの可能な拡張は、中間縮小画像（サムネイル以外のＬＬ画像）が、画像記憶フォーマットの一部として含まれるかどうかに関する。上述のように、サムネイルおよび相補的画像を記憶することと、最大および中間解像度で画像が再生されうることとのみが必要である。上述の特定の画像記憶フォーマットは、いずれの与えられたレイヤもが縮小画像（ＬＬ画像）を有することを可能にする。ユーザに柔軟性を与える１つの方法は、中間縮小画像がもしあれば、ユーザが、いずれの中間縮小画像がそれらをサムネイルから再生する必要を回避するために記憶されるべきかを指定するようにすることである。（図４および図５に示されているように）画像を再生するプログラムが、画像が特定の解像度へ検索された回数に基づいてユーザに警報を出すことも可能である。
従って、以上の説明は、請求の範囲により定められている本発明の範囲を制限するものと解釈すべきではない。
【図１】
0004491070.tif 000008
【図２】
0004491070.tif 000009
【図３】
0004491070.tif 000010
【図４】
0004491070.tif 000011
【図５】
0004491070.tif 000012