(57)【特許請求の範囲】
【請求項１】
画像のピクセルのセグメンテーションタグの情報にアクセスする方法であって、
前記画像は複数のピクセルを含み、
前記画像は複数のセグメントにセグメント化され、
各セグメントは異なるセグメンテーションタグの情報に関連付けられ、
前記画像においてセグメンテーションタグがどのようなビット情報に符号化されるかを示す第１の情報を取得し、
前記画像におけるセグメンテーションタグのセットを示す第２の情報を取得し、
第１および第２の情報にもとづいてルックアップテーブルを形成し、
前記ルックアップテーブルを使用すること、もしくは、少なくとも一つのビット演算を前記セグメンテーションタグに適用し、該ルックアップテーブルを使用すること、により、前記画像のピクセルに関連付けられた複数のセグメンテーションタグのうちの少なくとも一つのセグメンテーションタグの情報にアクセスする、
方法であって、
前記セグメンテーションタグは関連付けられたセグメントにおける画像の特性を示し、
前記画像の各ピクセルには少なくとも一つのセグメンテーションタグが付され、
前記ルックアップテーブルは、前記第１の情報と第２の情報とを対応付けることにより形成され、
前記ビット演算は、ビット論理和を用いて不要な情報をマスクし、必要な情報を取り出すマスキングを含む、
タグ情報アクセス方法。
【請求項２】
デジタル画像処理システムであって、
セグメンタを含み、
前記セグメンタは、受け取った画像データを解析し、少なくとも一つのセグメンテーションタグを画像データの各ピクセルに関連付け、少なくとも前記画像においてセグメンテーションタグがどのようなビット情報に符号化されるかを示す情報を含むヘッダ情報を生成し、ヘッダ情報を受け取った画像データに関連付け、画像データをセグメンテーションタグおよびヘッダ情報とともに格納することによって画像をセグメント化し、
少なくとも一つのビット演算を実行することができる装置を含み、
アクセスライブラリを含み、
前記アクセスライブラリは前記画像におけるセグメンテーションタグのセットを示す情報を取得し、前記画像におけるセグメンテーションタグがどのようなビット情報に符号化されるかを示す情報を取得し、セグメンテーションタグのセットを示す情報およびセグメンテーションがどのようなビット情報に符号化されるかを示す情報にもとづいて第１のルックアップテーブルを形成し、
アクセッサを含み、
前記アクセッサは第１のルックアップテーブルを使用すること、もしくは、少なくとも一つのビット演算を前記セグメンテーションタグに適用し、該第１のルックアップテーブルを使用すること、により、前記画像のピクセルに関連付けられた複数のセグメンテーションタグのうちの少なくとも一つのセグメンテーションタグの少なくとも一つにアクセスし、アクセスされたセグメンテーションタグの情報にしたがって画像データを処理する、
デジタル画像処理システムであって、
前記セグメンテーションタグは関連付けられたセグメントにおける画像の特性を示し、
前記第１のルックアップテーブルは、セグメンテーションタグのセットを示す情報とセグメンテーションがどのようなビット情報に符号化されるかを示す情報とを対応付けることにより形成され、
前記ビット演算は、ビット論理和を用いて不要な情報をマスクし、必要な情報を取り出すマスキングを含む、
デジタル画像処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像情報へのアクセスに関する。さらに詳細には、本発明はセグメンテーションタグを効率的に処理することによって画像情報にアクセスするシステム及び方法に関する。
【０００２】
【従来の技術】
現在の多くの画像処理アプリケーション、例えばデジタルコピーなどでは、画像を定義する実際の画像データの他に、画像に関する画像情報をピクセルベースで格納することが望ましい。例えば、単一の画像は、種々のタイプの画像データ、例えばテキストデータ、標本化された画像データの形式のピクチャデータ、連続トーンデータ及び／又はハーフトーンデータ、ラインアートデータなどのグラフィックデータ及び／又は背景データを含み得る。画像データのデータタイプを識別する情報をピクセル毎に対して格納することは、通常有用なことが多い。
【０００３】
例えば、そのような画像の画像データを圧縮する際、異なる圧縮技術を使用し異なるタイプの画像データを処理するのが通常望ましい。背景データならびに標本化データ、連続トーンデータ及び／又はハーフトーンデータによって形成される連続トーン(continuous tone: contone)画像部分は、通常、例えば、テキスト又はラインアートデータと同じ精度で処理される必要はない。したがって、連続トーン又は背景データのようなあまりロスに対してクリティカルではないデータ(less loss-critical data)を処理するために非可逆的圧縮技術(lossy compression technique)が使用され、一方可逆圧縮技術(loss less compression)はテキストデータ又はラインアートデータに対して使用される。
【０００４】
したがって、画像の各ピクセルには一つ以上のセグメンテーションタグが割り当てられ、ここで各タグはそのピクセルの画像データに関するあるタイプの情報を明らかにする。これらのセグメンテーションタグはセグメント化画像を表すために使用され、この画像においてタグ値の共通のセットを共有する全てのピクセルは単一のオブジェクトと見なされる。
【０００５】
タグ情報にアクセスする従来の方法では、タグ情報を使用する全てのユーザは、各タグが何を意味するかに関して事前に合意していなければならなかった。このような合意に達することは、特に多数のユーザが関与する場合は論理上問題がある。さらに、タグのセットが首尾よく確立された後でさえ、新しいタグが必要になっても個々のユーザは新しいタグを自由に付加できない。さらに、画像の各ピクセルのセグメンテーションタグにアクセスするためには、通常手続き呼び出し(procedure call)が必要になり、長時間の多大なプログラミング作業とセグメンテーションタグのアクセス効率低下を生じる。
【０００６】
【発明が解決しようとする課題】
したがって、セグメンテーションタグの最大の利益を得るためには、画像処理装置が画像データを迅速に処理及び／又は再生でき、画像処理装置をプログラムするソフトウェア開発者及び／又は技術者がこれを迅速且つ効率的に行うことができるような、迅速且つ効率的にタグ情報にアクセスするシステム及び方法が望ましい。
【０００７】
【課題を解決するための手段】
本発明はルックアップテーブル及びビット演算を使用してセグメンテーションタグを迅速且つ効率的に処理するシステム及び方法を提供する。
【０００８】
本発明の一つの態様では、セグメンテーションタグのファミリーは、画像の各ピクセルが一つ以上のセグメンテーションタグに関連付けられるように定義される。
【０００９】
本発明の別の態様では、ルックアップテーブルは、画像のヘッダ情報内に含まれる情報に基づいて自動的に形成され、セグメンテーションタグはルックアップテーブル及びビット演算を使用してアクセスされる。
【００１０】
幾つかの実施の形態では、与えられたタグのセット及び／又はタグエンコーディング情報は画像の画像ヘッダから直接読み取られる。別の実施の形態では、与えられたタグのセット及び／又はタグエンコーディング情報は別のファイルから読み取られる。
【００１１】
本発明の別の態様では、ソフトウェア開発者のツールキットが提供され、該ツールキットは与えられたタグのセットを示す情報及びタグが画像内でどのようにエンコードされるかを示す情報に基づいて表参照を初期化するライブラリを含む。ライブラリは、表参照及びビット演算を実行することによって、タグ情報へのアクセスを提供する少なくとも一つのマクロを定義する。このツールキットを使用することによって、ソフトウェア開発者は所望のタグ情報に簡単且つ迅速にアクセスでき、デジタル画像出力装置のソフトウェアを開発することができる。
【００１２】
本発明のまた別の実施の形態では、デジタル画像処理装置が提供され、該デジタル画像処理装置は、受け取った画像データを解析し、少なくとも一つのセグメンテーションタグ（"NO TAG"タグであるかもしれない）を画像データの各ピクセルに関連付け、ヘッダ情報を生成し、ヘッダ情報を受け取った画像データに関連付け、画像データをセグメンテーションタグ及びヘッダ情報と共に格納することによって、画像をセグメント化するセグメンタを含む。また、デジタル画像処理装置は、ビットシフト、ビットマスク及び表参照を含むビット演算の最小セットを実行することができる装置及び与えられたセグメンテーションタグのセットを示す情報及びどのようにセグメンテーションタグがエンコードされるかを示す情報を得るアクセスライブラリも含む。アクセスライブラリは得られたセグメンテーションタグ情報に基づいてルックアップテーブルを形成する。デジタル画像処理装置は、ルックアップテーブル及びビット演算の最小セットを使用してセグメンテーションタグ情報の少なくとも一部分にアクセスし、アクセスしたタグ情報にしたがって画像データを処理する。デジタル画像処理装置は処理されたデータが出力される画像ファイルシンクも含む。
【００１３】
本発明のこれらの及び他の特徴及び利点は、好適な実施の形態の以下の詳細な記述で説明され、これから明らかである。
【００１４】
本発明の好適な実施の形態を図を参照して詳細に説明する。
【００１５】
【発明の実施の形態】
図１は、異なるタイプの画像データを有する幾つかの領域１１０〜１５０を含む画像１００の例を示す。領域１１０は、ピクチャデータ、例えば標本化された画像データ、連続トーンデータ及び／又はハーフトーンデータを含む。領域１２０及び１５０はテキストデータを含む。領域１３０は背景データを含む。領域１４０は、ラインアートデータのような特別なグラフィックデータを含む。領域１４０の特別なグラフィックデータはゼロックス(Xerox)のロゴであり、これは「ゼロックスレッド(Xerox Red)」として指定されている特別な色合いの赤で着色された文字「Ｘ」の独特な表示である。グラフィック領域１４０では、テキスト領域１２０及び１５０と同様に、エッジの維持は必須であるが、多くの色を維持することは必須ではない。対照的に、ピクチャデータ領域１１０では、十分な数の色を維持することは必須であるが、ピクチャデータ領域１１０に現れるあらゆるエッジを維持することは必須ではない。
【００１６】
画像の各ピクセルに関する情報は、例えば記録媒体のようなメモリに格納され、情報チャネルに配置される。本明細書中でいう「チャネル」は独立した物理構造を意味する必要はなく、情報が格納される機能的な方法について言及している。一般的には、画像のピクセルに関する少なくとも色情報に対して情報チャネルが提供される。以下に説明するように、例えば以下に説明するセグメンテーションタグ情報のような付加的な情報を格納するために必要な追加のチャンネルが提供されてもよい。タグ情報が格納される情報チャネルを、便宜上、以下においてオメガチャネルと称する。
【００１７】
本発明によると、特定のセグメンテーションタグはタグファミリーにおいて定義される。画像内の各ピクセルには少なくとも一つのセグメンテーションタグが付けられる。各ピクセルには一つ以上のファミリーからのタグが付けられるが、与えられたタグファミリーの各々からは、一つ以上のタグを有することはない。このタグ情報はオメガチャンネルに格納される。与えられたタグファミリーとして、例えば、FUNCTION、EDGE、COLOR、HALFTONE及びTRC（トーン再現曲線）ファミリーが挙げられる。表１は、可能なタグファミリー及び各タグファミリー内の個々のタグの例を挙げている。各タグファミリーのタグの例示的な最大数も挙げられている。
0004301654.tif 000002
【００１８】
各ファミリーにおける可能なタグの一つは"NO TAG"タグであることを理解すべきである。"NO TAG"タグはそのタグファミリーのピクセルに特別なセグメンテーション情報が提供されていないことを示す。"NO TAG"タグが使用される場合、各ファミリーには２n−１の実在的なタグがある（ここで、ｎは図２を参照して以下に説明するデータ構造の各タグファミリーに割り当てられたビット数である）。
【００１９】
上述したように、各ピクセルは与えられたタグファミリー毎に一つ以上のタグを有することはできない。例えば、一つのピクセルは"Picture"と"Text"の両方にはなりえないし、"Black"と"Red"の両方にもなりえない。
【００２０】
各画像に対して、セグメンテーションタグがどのようにエンコードされたかに関する情報は、画像のヘッダ情報に格納される。与えられたタグのセットも画像ヘッダ情報内に含まれる。或いは、タグエンコーディング情報及び／又は与えられたタグのセットは別の単一、あるいは複数のファイルから読み込まれてもよい。
【００２１】
アクセスライブラリは、例えば、メモリ、例えばコンピュータメモリの一部又は適切なディスクドライブを使用して読み込まれる別のディスクである、磁気又は光学記憶媒体のような適切な記憶媒体に格納することによって、提供される。幾つかの実施の形態では、ライブラリは画像の与えられたタグのビット記述子又は整数表示を構成する。
【００２２】
図２は例示的な３２ビット記述子又はより一般的にはデータ構造２００の構成を示す。データ構造２００において合計２3＝８の起こり得る値に対して３ビットがFUNCTIONタグに割り当てられる。EDGEタグは"Yes"又は"No"でしかありえないため、１ビットだけがEDGEタグに割り当てられる。合計２6＝６４の起こり得る値に対して６ビットがCOLORタグに割り当てられる。同様に、３つの値が起こり得るHALFTONEタグには２ビットが必要であり、７つの値が起こり得るTRC(トーン再現曲線）タグには３ビットが割り当てられる。
【００２３】
この例の与えられたタグは合計１５ビットの場所を必要とするため、与えられたタグ全てが特定のアプリケーションで使用されるならば、二つの８ビット幅サンプル又はチャネルが使用される。与えられたタグの全てを必要としないアプリケーションは、最大数のチャネルを必要としないかもしれない。例えば、所与のアプリケーションで実際に使用される与えられたタグが８ビット以下しか必要としないならば、一つのチャネルしか必要とされない。
【００２４】
１６ビット幅、又はそれより幅の広いサンプルを使用するならば、この例のように与えられたタグが合計で１５の場所を必要とする場合、このようなサンプルは一つしか必要ない。
【００２５】
図３は代表的なサンプル又はチャネルのデータのデータ構造を示す。
【００２６】
ルックアップテーブルを作成する際、タグが所与の画像内でどのようにしてエンコードされたかを記述する情報は、画像のヘッダ情報又は外部のソース、例えば別のファイルから得られる。便宜上、以下の説明は、タグエンコーディング情報がヘッダ情報から得られる場合を想定している。例えば、例示的なヘッダエントリーの一つのセットは以下の通りである。
[OmegaSegmentation]
ch0.bit2-4.val1: TRC.TRC1
ch0.bit2-4.val2: TRC.TRC2
ch0.bit2-4.val3: TRC.TRC3
図３の第１の要素に示されるように、チャンネル０と呼ばれる第１のチャンネルからの８ビット幅のサンプルのビット２−４がバイナリ値１である場合、タグTRC.TRC1が示されることを、ヘッダエントリーは示している。図３の第２の要素によって示されるようにビット２〜４がバイナリ値２を有する場合、TRC.TRC2が示される。図３の第３の要素によって示されるようにビット２−４がバイナリ値３である場合、タグTRC.TRC3が示される。
【００２７】
図３では、ビット０〜１、５〜７は空であるが、これは単なる例示の目的である。図２に示されるように、これらのビットは他のファミリーからのタグでエンコードされ得る。したがって、この実施の形態では、全てのタグファミリーが所与のアプリケーションで要求される場合に、５つのタグファミリーに対して２つのチャネルしか必要ない。上述のように、全てのタグファミリーが使用されるわけではない場合、一つのチャネルしか必要ない。
【００２８】
図４は例示的なルックアップテーブル３００の選択されたエントリー３０１−３１８を示す。ルックアップテーブルはデータ構造から形成される。本実施の形態では、セグメンテーションタグに使用される各チャネルに対して一つのルックアップテーブルが形成される。例えば、上述の８ビット幅のサンプルを用いた例では二つのルックアップテーブルが形成される。より幅の広いサンプルが使用される場合は、より少ない数のルックアップテーブルしか必要としない。例えば、１６ビット幅のサンプルが使用される場合、ルックアップテーブルは一つしか必要ない。
【００２９】
ヘッダ又は別のファイルの情報は、ルックアップテーブル３００の各タグの値を定義する。例えば、TRC.TRC1タグは、ルックアップテーブル３００のエントリー３０３、３０４、３１１及び３１２に示されるように、３２ビットの記述子においてバイナリ値４０９６を有するように定義される。同様に、TRC.TRC2タグは、エントリー３０５、３０６、３１３及び３１４に示されるようにバイナリ値８１９２を有するように定義され、TRC.TRC3タグはエントリー３０７、３０８、３１５及び３１６によって示されるようにバイナリ値１２２８８を有するように定義される。
【００３０】
各８ビット幅サンプルでは、２8＝２５６の可能なサンプル値がある。したがって、画像ヘッダで特定される各タグに対して２５６エントリーのルックアップテーブルが形成される。２５６エントリールックアップテーブルが形成されると、種々のタグに対応する適切な３２ビット記述子がテーブルに書きこまれる。タグがどのようにしてサンプルにエンコードされるかが記述子のどの要素が特定のタグを有するかを定義する。例えば、タグTRC.TRC1では上述のビット値４０９６がテーブルのテーブルエントリー４−７及び３６−３９に格納される３２ビット記述子に書きこまれる。タグTRC.TRC2に対しては、ビット値８１９２がテーブルのテーブルエントリー８−１１及び４０−４３に格納された３２ビット記述子に書きこまれる。タグTRC.TRC3に対しては、ビット値１２２８８がテーブルのテーブルエントリー１２−１５及び４４−４７のテーブルに格納された３２ビット記述子に書きこまれる。
【００３１】
本実施の形態では、８１の起こり得るタグ（FUNCTIONタグファミリーの７つのタグ、EDGEタグファミリーの１つのタグ、COLORタグファミリーの６３のタグ、HALFTONEタグファミリーの３つのタグ及びTRCタグファミリーの７つのタグ）があるため、ルックアップテーブルを形成するためには、８１×２５６＝２０７３６までの異なる書き込み演算が必要となる。
【００３２】
或いは、所望のタグファミリーの数が与えられたタグの合計数よりも少ない場合、ルックアップテーブルを形成するために、少ない数の書きこみ演算が実行される。例えば、ユーザが単に一つ又は二、三のタグファミリーにしか関心がなく、他のタグファミリーにアクセスするアクセスライブラリーを使用する必要がない場合、所望のタグファミリーだけに対してルックアップテーブルが形成され得る。
【００３３】
ルックアップテーブルを形成する上述のプロセスは初期化の際に自動的に発生するのが好ましいが、セグメンテーションタグ情報にアクセスするために単一又は複数のルックアップテーブルが実際に必要になる前の任意の時点で発生してもよい。
【００３４】
ルックアップテーブルが形成された後、画像のタグ情報がルックアップテーブル及びビット演算を使用してアクセスされ得る。
【００３５】
図５に示すように、デジタル画像処理装置４００は、画像入出力インタフェース４１０、コントローラ４２０、メモリ４３０、Ａ／Ｄ変換器４４０、セグメンタ４５０、セグメント化画像メモリ４６０及びアクセスライブラリ４７０を含み、これらはデータ／制御バス４０５によって相互接続されている。外部画像ファイルソース５００及び外部画像ファイルシンク６００は、デジタル信号処理装置４００の画像入出力インタフェース４１０に接続されている。
【００３６】
メモリ４３０及びセグメント化画像メモリ４６０は、スタティック又はダイナミックＲＡＭを使用して実現されるのが好ましい。しかし、メモリ４３０及びセグメント化画像メモリ４６０は、フロッピーディスク及びディスクドライブ、書きこみ可能光ディスク及びディスクドライブ、ハードドライブ、フラッシュメモリなどを使用しても実現することができる。さらに、メモリ４３０及びセグメント化画像メモリ４６０は物理的に区別されたメモリである必要はないことを理解すべきである。例えば、セグメント化画像メモリ４６０はメモリ４３０の一部であってもよい。
【００３７】
画像ファイルソース５００は、画像情報の生成又は伝送が可能な任意の装置又はシステムであり得ることも理解すべきである。例えば、画像ファイルソース５００は、スキャナ、磁気記憶ディスク、ＣＤ−ＲＯＭなどのようなデータキャリヤ又はホストコンピュータであり得る。画像ファイルシンク６００は、プリンタ、ファクシミリマシーン、デジタルコピー機メモリ、ＣＲＴ又はＬＣＤディスプレイ、ホストコンピュータ、遠隔配置コンピュータなどであり得る。さらに、ソース５００及び／又はシンク６００は、デジタル画像処理装置４００に専用装置として直接接続されてもよいし、ネットワーク（図示せず）を介して接続されてもよいことを理解すべきである。ネットワークは、LAN(local area network)、WAN(wide area network)、イントラネット、インターネット、又は任意の他の分散処理記憶ネットワークであり得る。
【００３８】
デジタル画像処理装置４００は、入力データがデジタルデータであるかアナログデータであるかを判断する。入力データがアナログデータである場合、入力データは画像入出力インタフェース４１０又はメモリ４３０もしくは４６０からコントローラによってＡ／Ｄ変換器４４０に伝送される。Ａ／Ｄ変換器４４０は、コントローラ４２０の制御下で、入力データをデジタルデータに変換する。デジタルデータは、コントローラ４２０の制御下で、メモリ４３０又は４６０に格納され得る。デジタルデータは、コントローラ４２０の制御下で、Ａ／Ｄ変換器４４０又はメモリ４３０もしくは４６０からセグメンタ４５０へ入力される。セグメンタ４５０は、コントローラ４２０の制御下で、デジタル画像データをセグメント化画像データに変換する。セグメント化画像メモリ４６０はセグメント化画像データを格納する。アクセスライブラリ４７０は、コントローラ４２０の制御下で、所望の方法でセグメント化画像データにアクセスするために使用される。
【００３９】
一般的に、図５に示されるデジタル画像処理装置４００では、画像情報は、画像入出力インタフェース４１０を介してアナログ又はデジタル画像データの形式で、画像ファイルソース５００から入力される。画像データはさらに処理される前及び／又は後にメモリ４３０に格納される。
【００４０】
入力画像データがまだデジタルデータでない場合、該入力データはＡ／Ｄ変換器４４０によってデジタルデータに変換される。コントローラ４２０の制御下で、セグメンタ４５０は、以下に詳細に説明するプロセスで、画像データをセグメント化画像データにセグメント化する。
【００４１】
セグメント化画像データは、アクセスライブラリ４７０によってアクセスされる前にセグメント化画像メモリ４６０に一時的に格納され得る。或いは、セグメント化画像情報はアクセスライブラリ４７０に直接伝送され得る。
【００４２】
デジタル画像処理装置４００内では、画像データの格納、セグメント化、及びアクセスのすべてはコントローラ４２０の制御下で実行される。コントローラ４２０は任意の数の構成要素及び／又は機能を含んでもよく、デジタル画像処理装置４００内の一つの位置に物理的に配置される必要はないことを理解すべきである。
【００４３】
アクセスライブラリ４７０によってアクセスされ、処理された後、情報は後の検索のためにメモリ４３０又は任意のほかの記憶媒体に格納されてもよいし、直接画像ファイルシンク６００に伝送されてもよい。
【００４４】
セグメンタ４５０は図６により詳細に示されている。セグメンタ４５０は、画像データ解析器４５１、セグメンテーションタグアソシエーター４５２、及びヘッダ生成器４５３を含む。画像データ解析器４５１は、デジタル画像データを解析して該データがどのようなタイプであるかを判定する。セグメンテーションタグアソシエーター４５２は、少なくとも一つのセグメンテーションタグを画像データの各ピクセルに関連付ける。ヘッダ生成器４５３は、セグメンテーションタグがどのようにして画像データ及び／又は与えられたタグのセット内でエンコードされたかに関する情報を含み得る、画像に関する情報を含むヘッダを生成する。ヘッダ生成器４５３はこのヘッダをデジタル画像データに関連付ける。
【００４５】
図６に示されるように、デジタルデータがセグメンタ４５０に入力されると、ヘッダ生成器４５３はデジタル画像データに関する情報を含むヘッダを生成し、このヘッダをデジタル画像データに関連付ける。画像データ解析器４５１はデジタル画像データをピクセル毎に解析し、各ピクセル内にどのようなタイプの情報が含まれているかを判定する。
【００４６】
画像データ解析器４５１によって各ピクセルに対して行われた解析に基づいて、セグメンテーションタグアソシエーター４５２は一つ以上のセグメンテーションタグを各ピクセルに関連付ける。換言すると、セグメンテーションタグアソシエーターは、セグメンテーションタグをデジタル画像に「埋め込む」。
【００４７】
セグメンテーションタグが各ピクセルに関連付けられた後、画像データはセグメント化画像メモリ４６０に伝送されるか又はアクセスライブラリ４７０によって直接アクセスされる。
【００４８】
アクセスライブラリ４７０は図７により詳細に示されている。アクセスライブラリ４７０は、ヘッダ抽出器４７１、セグメンテーションタグ情報抽出器４７２、ルックアップテーブル生成器４７４、マクロメモリ４７５、マッピングルックアップテーブル生成器４７６、ピクセル値生成器４７７、コンパレータ４７８、及びセグメンテーションタグメモリ４７９を含む。ヘッダ抽出器４７１は、セグメント化画像データからヘッダ情報を抽出する。セグメンテーションタグ情報抽出器４７２は、セグメント化画像データに存在するタグの情報及びこれらのタグがどのようにしてエンコードされたかに関する情報を抽出する。この抽出された情報に基づいて、ルックアップテーブル生成器４７４は、図２に関して上述したように、与えられた各タグに対してビット記述子を生成する。ルックアップテーブル生成器４７４は、セグメンテーションタグ情報抽出器４７２によって得られた情報及び与えられた各タグに対するビット記述子を使用して少なくとも一つのルックアップテーブルを生成する。
【００４９】
マクロメモリ４７５は、物理的に分離したメモリ、又はメモリ４３０の一部であり得る。マクロメモリ４７５は、セグメント化画像情報にアクセスするために使用され得る少なくとも一つのマクロを格納する。マッピングルックアップテーブル生成器４７６は、セグメント化画像情報にアクセスするための一つの方法で使用されるマップを形成する。ピクセル値生成器４７７及びコンパレータ４７８はセグメント化画像情報にアクセスするための別の方法で使用される。セグメンテーションタグメモリ４７９は、物理的に分離したメモリ、又はメモリ４３０の一部であり得る。セグメンテーションタグメモリは、与えられたセグメンテーションタグのセットを示す情報及び／又はタグがどのようにエンコードされるかを示すセグメンテーションタグエンコーディング情報を格納するために使用されるが、必ずしもそうである必要はない。
【００５０】
図７に示されるアクセスライブラリでは、ヘッダ抽出器４７１はセグメンタ４５０の画像データに関連するヘッダ情報を抽出する。セグメンテーションタグ情報抽出器４７２は二つの必要な情報、即ち、１）セグメンテーションタグが画像データ内でどのようにエンコードされるかを示す情報、及び２）与えられたセグメンテーションタグのセットを示す情報、を得る。
【００５１】
セグメンテーションタグがどのようにしてエンコードされるかを示す情報は、ヘッダ抽出器４７１によって抽出されるヘッダ情報又は別のファイルのような外部ソースから得られる。与えられたセグメンテーションタグのセットもまた、ヘッダ情報、或いは別のセグメンテーションタグメモリ４７９から得られる。
【００５２】
セグメンテーションタグメモリ４７９はアクセスライブラリ４７０の一部として例示されるが、任意のほかの適切な形式で又は位置に設けられてもよい。例えば、セグメンテーションタグメモリ４７９は、デジタル画像処理装置４００のメモリ４３０のファイル又は他のデータ構造に格納されてもよいし、磁気又は光記憶ディスクに別に設けられ、適切なディスクドライブを使用してアクセスされてもよい。
【００５３】
ルックアップテーブル生成器４７４は、セグメンテーションタグ情報抽出器４７２によって決定された与えられたタグの各々に対して整数表示又はビット記述子を生成する。次にルックアップテーブル４７４は、画像情報のセグメンテーションタグにアクセスする際に使用される少なくとも一つのルックアップテーブルを生成する。
【００５４】
一つ以上のマクロがマクロメモリ４７５に格納される。各マクロは、ルックアップテーブル生成器４７４によって生成されたルックアップテーブル及びコントローラ４２０の制御下でデジタル画像処理装置４００によって実行されるビット演算を使用して、セグメンテーションタグ情報にアクセスする。
【００５５】
アクセスライブラリ４７０はメモリ４３０に格納されるか又は別の記憶媒体、例えば磁気又は光ディスクに備えられたプログラムによって実行され、適切なアクセッサ、例えば磁気又は光ディスクドライブを使用してアクセスされる。或いは、アクセスライブラリ４７０はＡＳＩＣ又はデジタル画像処理装置４００に実装された配線回路として提供されてもよい。
【００５６】
画像ファイルソース５００及び画像ファイルシンク６００が周辺装置である場合のデジタル画像処理装置４００に関する構造を説明してきたが、本発明はこの構造に限られない。画像ファイルソース５００及び／又は画像ファイルシンク６００はデジタル画像処理装置４００の一体的な部分であってもよい。
【００５７】
例えば、デジタル画像処理装置４００はデジタルコピー機（図示せず）の一体的な部分であってもよい。デジタルコピー機は、画像ファイルソース５００を形成するスキャナ及び画像ファイルシンク６００を形成する画像形成エンジンも含む。したがって、デジタルコピー機はスタンドアローンユニットとして機能し、該スタンドアローンユニットは画像を走査し、画像からデジタル画像データを生成し、セグメンテーションタグを含むデジタル画像データを生成且つ処理し、処理されたデジタル画像データを画像伝送装置、例えば感光ドラムなどに出力して画像キャリヤ、例えば紙（図示せず）に画像を形成することができる。
【００５８】
本発明によるデジタル画像処理装置４００の多くの他のバリエーション及び代替物が可能であることも理解すべきである。例えば、デジタル画像処理装置４００はホストコンピュータ（図示せず）に設けられ、ネットワークを介して遠隔コンピュータによってアクセスされてもよい。或いは、画像データプロセッサは画像ファイルソース５００又は画像ファイルシンク６００の一部であってもよい。或いは、デジタル画像処理装置４００の一つ以上の要素、例えばセグメンタ４５０又はアクセスライブラリ４７０がホストコンピュータに設けられるかインストールされ遠隔アクセスされてもよい。別のオプションとして、デジタル画像処理装置４００の一つ以上の要素、例えばセグメンタ４５０又はアクセスライブラリ４７０は、画像ファイルソース５００又は画像ファイルシンク６００に設けられてもよい。デジタル画像処理装置４００が画像ファイルソース５００に一体化されている場合、セグメンタ４５０及び／又はアクセスライブラリ４７０は画像ファイルが転送される前にアクセスされ、デジタル画像処理装置４００が画像ファイルシンク６００に一体化されている場合は画像が受け取られた後にアクセスされる。
【００５９】
以下に詳細に説明するマッピングタイプのマクロがセグメント化画像データにアクセスする際に実行される場合、マッピングルックアップテーブル生成器４７６は、単一もしくは複数のユーザによって入力された特定の単一もしくは複数の整数値に基づいて、第２のルックアップテーブル又は第２のルックアップテーブルのセットを生成する。ピクセル値生成器４７７は単一もしくは複数のユーザによって特定された各ピクセルに対する整数値を生成する。
【００６０】
マッチングタイプのマクロがセグメント化画像データにアクセスする際に使用される場合、コンパレータ４７８及びピクセル値生成器４７７が使用される。この場合、ピクセル値生成器４７７は各ピクセルに対する整数値を生成し、コンパレータ４７８は各ピクセルに対して生成された整数値と各タグに戻された記述子の特定の一つとを比較する。
【００６１】
図８はデジタル画像情報がどのように処理されるかを概説した本発明の一つの実施の形態によるフローチャートである。制御手順はステップＳ１０００で始まりステップＳ１１００に続く。ステップ１１００では、画像データが画像ソースから受信又は入力される。次に、ステップＳ１２００では、制御手順は入力画像データがデジタルデータであるか否かを判断する。入力画像データがデジタルデータでない場合、制御はステップＳ１３００に続く。そうでない場合、制御は直接ステップＳ１４００にジャンプする。
【００６２】
ステップＳ１３００では、画像データはデジタルデータに変換される。次に制御はステップＳ１４００に続く。ステップＳ１４００では、画像データがセグメント化される。次に制御はステップＳ１５００に続く。
【００６３】
ステップＳ１５００では、制御手順はセグメント化画像データが直接出力されるか否かを判断する。セグメント化データが直接出力されない場合、制御はステップＳ１６００に続く。そうでない場合、制御はステップＳ１８００に直接ジャンプする。ステップＳ１６００では、セグメント化画像データは無期限に格納される。次に、ステップＳ１７００では、無期限の後、セグメント化画像データはアクセスされる。次に、ステップＳ１８００では、アクセスされた画像データは画像ファイルシンクに出力される。最後にステップＳ１９００で制御手順が終わる。
【００６４】
図９はステップＳ１４００の画像データセグメント化プロセスをより詳細に述べたフローチャートである。ステップＳ１４００で始まり、制御手順はステップＳ１４１０に続き、このステップでデジタル画像データに関する一般的な情報を含むヘッダが生成される。このヘッダはデジタル画像データに関連付けられる。次に、ステップＳ１４２０では、画像データの各ピクセルが解析される。次にＳ１４３０では、一つ以上のセグメンテーションタグが画像データの各ピクセルに関連付けられる。最後に、ステップＳ１４４０では制御はステップＳ１５００に戻る。
【００６５】
図１０はステップＳ１７００のアクセスプロセスをより詳細に述べたフローチャートである。ステップＳ１７００で始まり、制御手順はステップＳ１７０５に続き、このステップでセグメント化画像データが受け取られる。次に、ステップＳ１７１０で画像データのヘッダ情報が受け取られた画像データから抽出される。次に制御はステップＳ１７１５に続く。
【００６６】
ステップＳ１７１５では、制御手順は抽出されたヘッダ情報が、セグメンテーションタグがどのようにエンコードされるかを示すタグエンコーディング情報を含むか否かを判定する。ヘッダ情報がタグエンコーディング情報を含む場合、制御はステップＳ１７２０に続く。そうでない場合、制御はステップＳ１７２５にジャンプする。
【００６７】
ステップＳ１７２０では、タグエンコーディング情報はヘッダ情報から抽出される。続いて制御はステップＳ１７３０にジャンプする。ステップＳ１７２５では、タグエンコーディング情報は、別のファイルのような画像ヘッダから分離したソースである外部ソースから得られる。続いて制御はＳ１７３０に続く。
【００６８】
ステップＳ１７３０では、制御手順は抽出されたヘッダ情報が与えられたセグメンテーションタグのセットを含むか否かを判定する。ヘッダ情報が与えられたタグのセットを含む場合、制御はステップＳ１７３５に続く。そうでない場合、制御はステップＳ１７４０にジャンプする。
【００６９】
ステップＳ１７３５では、与えられたタグのセットはヘッダ情報から得られる。続いて制御はステップＳ１７４５にジャンプする。ステップＳ１７４０では、与えられたタグのセットはセグメンテーションタグファイルから得られ、該ファイルはステップＳ１７２５に関して上述したように外部ソースに関連付けられるか又は外部ソースの一部である。続いて制御はステップＳ１７４５に続く。
【００７０】
ステップＳ１７４５では、ルックアップテーブルが生成される。次に、ステップＳ１７５０では、アクセスマクロが、一般的には、各ピクセルに対してアクセスされる。アクセスマクロは、ステップＳ１７４５で生成されたルックアップテーブル及びビット演算を使用してセグメント化画像情報にアクセスする。最後にステップＳ１７５５では、制御はステップＳ１８００に戻る。
【００７１】
アクセスライブラリは、所与のピクセルが特定のタグセットのみを有するか否かをテストする、及び／又はピクセルのサンプルが少なくとも特定のタグセットを有するか否かをテストするためにマクロを定義する。例えば、TRC.TRC1タグのみが所与のピクセルに対して設定されているか否かをテストするために、適切なビット記述子の同等性テストが以下のコードのような適切な表参照エントリーを使用して実行される。
bit desc trc1=4096;
is trc1=(lookup[sample]==bit desc trc1).
【００７２】
ピクセルの所与のサンプルが少なくともTRC.TRC1タグセットを有するか否かをテストするために、マスキング技術が使用され得る。マスキングによって、ユーザは所望の情報の「ウィンドウを開き」、一方所望しない情報を抑える、即ち「マスキングアウトする」。マスキングはＡＮＤ演算を必要とする。特にこの場合、表参照エントリーに対して適切なマスクでＡＮＤ処理を行い同等性をテストするために以下のコードが使用され得る。
bit desc trc1=4096;
atleast trc1=((lookup[sample]&mask)==bit desc trc1).
【００７３】
「マスク」はビット記述子内の各タグファミリーを局所化するビット毎のマスクである。この例では、「マスク」は値７＜＜１２＝２８６７２（即ち、７×２12＝２８６７２）を有する。
【００７４】
このマスキング技術は、既述したルックアップテーブルを生成する際に使用されるビット演算の一部であるビットマスクとは別のものであり、これから区別される。このマスキング技術は本発明の全てではないが幾つかの実施の形態で使用される。
【００７５】
多くの場合、アプリケーションは、タグの特定のセットにしか関心がない。「マッピング」と称されるメカニズムによって、開発者はアプリケーションが関心のあるタグのリストを入力し、アプリケーションコードを簡略化するためにタグが特定の整数値にマッピングされることを要求する。アクセスライブラリの初期化中、開発者は整数値を特定のタグに関連付けるマップストリングを提供する。例えば、以下のマップストリング
【００７６】
【外１】
0004301654.tif 000003
【００７７】
は、ピクセルがそのピクセルを"Black Text"として示すタグを有する場合、ライブラリは値「０」を戻し、ピクセルがそのピクセルを"XeroxRed Text"として示すタグを有する場合、値「１」が戻される。これらの値「０」及び「１」はマップ値である。
【００７８】
マップはマップ要素のリストを含む。各マップ要素はタグネーム及びマップ値を含む。マッピングの際、第２のルックアップテーブル、即ちマップルックアップテーブルがアクセスライブラリによって生成される。これは、１）ユーザがマッピングしたい、各タグに対するタグマップビット記述子（即ち、図４に示されるTRC1の場合の４０９６）を決定し、２）（図４に示されるような）ビット記述子テーブルの全ての要素をチェックしてこれらがタグマップビット記述子に一致するか否かを調べ、３）適切なマップ値をマップルックアップテーブルに配置することによって、達成される。ライブラリは、例えば最初に正確な一致を探し、正確な一致が起こらない場合に部分的な一致を探す。
【００７９】
アクセスライブラリは、ピクセルサンプルを適切なマップ値に効率的にマッピングするマクロを提供する。このマクロは、マップのルックアップテーブルである第２のルックアップテーブルに格納された値を戻す。例えば、値「−１」はピクセルサンプルの値に対応するマップ要素がないことを示すために使用される。
【００８０】
マッピングは動的に変更可能であることも理解すべきである。例えば、複数のユーザが複数のマップストリングを入力し、複数のマップストリングが同時に使用されてもよい。
【００８１】
マッピングプロセスを実行するためのサンプルコードが以下に与えられる。この例では、上述のマップストリングは"Black Text"又は"XeroxRed Text"タグを探すためのマップを定義するために使用される。
【００８２】
【外２】
0004301654.tif 000004
【００８３】
この例を使用すると、タグマップマクロは、"Function.Text"及び"Color.Black"としてタグが付けられたピクセルに対してマップ値「０」を戻し、"Function.Text"及び"Color.XeroxRed"としてタグが付けられたピクセルはマップ値「１」を戻す。他の全てのタグはマップ値「−１」を戻す。
【００８４】
この例で使用されるマップストリングはユーザ特定である。マップストリングがユーザによって特定されない場合、デフォルトマッピングが用いられる。
【００８５】
同じ結果を得るためにアクセスライブラリを使用する別の方法は、正確な一致又は部分的な一致を判定する手順を使用することである。以下に示すサンプルコードのようなコードでは、これらの手順は、例えば"tagMatchExact()"及び"tagMatchPartial()"と称される。特に、以下に示すコードを使用すると、特定の記述子が手順"tagNameToDescription()"を使用して名前が付けられた各タグに対して戻される。ビット値は手順"tagID()"を使用して各ピクセルサンプルに対して戻される。次に手順"tagMatchPartial()"は戻されたビット値と記述子とを比較する。
【００８６】
【外３】
0004301654.tif 000005
【００８７】
"tagMatchExact"手順も類似の方法で使用されることは明らかである。
【００８８】
上記の説明とコードサンプルから分かるように、タグ情報に比較的短く簡単なコードを使用してアクセスすることができる。さらに、上述したようなマッピング技術を使用する場合特に、タグ情報に非常に迅速にアクセスすることができる。マッピング技術ならびに正確な一致及び部分的な一致技術の両方において、表参照及びビット演算によって各ピクセルに対して手続き呼び出しを必要とせずに、各ピクセルに対してタグ情報を調べることができる。
【００８９】
特定のコードサンプルが与えられたが、多くのプログラミング言語による多くの同等物が可能であることは明らかである。さらに、タグ及びタグファミリーの数はあらゆる所望の数でよいことも明らかである。
【００９０】
デジタル画像処理装置４００はプログラムされた汎用コンピュータで実行されるのが好ましい。しかし、デジタル画像処理装置４００は専用コンピュータ、プログラミングされたマイクロプロセッサ又はマイクロコントローラ及び周辺集積回路素子、ＡＳＩＣ又は他の集積回路、デジタル信号プロセッサ、離散素子回路のような配線された電子又はロジック回路、プログラマブルロジック装置、例えばＰＬＤ、ＰＬＡ、ＦＰＧＡ又はＰＡＬ等でも実行され得る。一般に、図７−９に示したフローチャートを実行することができる有限状態マシーンを実行できる任意の装置がデジタル画像処理装置４００を実行するために使用され得る。
【００９１】
同様に、アクセスライブラリ４７０も専用コンピュータ、プログラムされたマイクロプロセッサ又はマイクロコントローラ及び周辺集積回路素子、ＡＳＩＣ又は他の集積回路、デジタル信号プロセッサ、離散要素回路のような配線された電子又はロジック回路、プログラマブルロジック装置、例えばＰＬＤ、ＰＬＡ、ＦＰＧＡ又はＰａｌ等でも実行され得る。汎用コンピュータ、専用コンピュータ、又はプログラムされたマイクロプロセッサもしくはマイクロコントローラ及び周辺集積回路要素を適切にプログラムすることによって。アクセスライブラリ４７０も実装されることができる。
【図面の簡単な説明】
【図１】さまざまなタイプの画像データを含む画像例を示す。
【図２】本発明の幾つかの実施の形態によって与えられたタグを表すデータ構造の例を示す。
【図３】代表的なサンプル又はチャネルのタグデータのデータ構造を示す。
【図４】本発明によって形成された例示的なルックアップテーブルの一部を示す。
【図５】本発明によるデジタル画像処理装置の機能的なブロック図を示す。
【図６】本発明によるセグメンタの機能的なブロック図を示す。
【図７】本発明によるアクセスライブラリの機能的なブロック図を示す。
【図８】本発明による画像処理の一つの方法を概説するフローチャートである。
【図９】セグメント化プロセスを概説するフローチャートである。
【図１０】本発明によるセグメント化画像データにアクセスするプロセスを概説するフローチャートである。
【符号の説明】
１００    画像
４００    デジタル画像処理装置
４５０    セグメンタ
４５１    画像データ解析器
４５２    セグメンテーションタグアソシエータ
４５３    ヘッダ生成器
４７０    アクセスライブラリ
【図１】
0004301654.tif 000006
【図２】
0004301654.tif 000007
【図３】
0004301654.tif 000008
【図４】
0004301654.tif 000009
【図５】
0004301654.tif 000010
【図６】
0004301654.tif 000011
【図７】
0004301654.tif 000012
【図８】
0004301654.tif 000013
【図９】
0004301654.tif 000014
【図１０】
0004301654.tif 000015