いずれか1つ以上の添付の図面において、同一の図中符号を有するステップ及び/又は特徴を参照する。逆の意図が示されない限り、これらのステップ及び/又は特徴は、本明細書のために同一の機能又は動作を有する。
尚、「背景技術」の節に含まれた説明及び従来技術の構成に関連する説明は、各々の使用法を通じて周知の技術を形成してもよいデバイスの説明に関連する。そのような説明は本発明者又は本特許出願人による表現として解釈されるべきではなく、そのようなデバイスは当技術分野における一般常識の一部を何らかの形で形成する。
図1を参照すると、図3に示すような印刷システム300により実行された印刷ステップ130の出力印刷163は、一般に、関連するソース入力文書166を厳密に反映しない。これは、ソース入力文書166が出力印刷163を生成するように処理される印刷ステップ130により、印刷エンジン329の物理的特性、並びに印刷システム300内の関連する移動及び動作によってソース入力文書166にいくつかの変化が発生するためである。また、ソース入力文書166が出力印刷163のスキャン画像164と比較される場合、スキャン画像164を形成するスキャンステップ140の物理的特性もソース入力文書166に変化をもたらす。そのような累積変化の結果、ソース入力文書166とスキャン画像164とを直接比較することは、出力印刷163の品質を評価するのに適していない。出力印刷163の品質を効率的に評価するために、ソース入力文書166をスキャン画像164と比較する前に変化が考慮されてもよい。ソース入力文書166からスキャン画像164に移る前に、ソース入力文書166の各画素は、強度領域及び空間領域の双方において変化又は変換すると予測される。
強度変換は、主に出力印刷163を生成する際にソース入力文書166が経る種々の処理の物理的特性により発生する。強度変換は、予測差異を発生させる傾向があり、印刷システム300の動作条件に依存する。多くの場合、これらの動作条件は、プリンタモデルの形式のパラメータの集合を使用して示される。
空間変換は、主に印刷システム300内の機械的な動作により発生する。空間変換は、印刷媒体上の画素配置の正確度に強い影響を及ぼす可能性があり、リアルタイムのプリントアウト確認に対する大きな課題を提示する。
スキャン画像164とソース入力文書166との間には、印刷ステップ130及びスキャンステップ140内で発生する変換により考慮されない更なる差異がある可能性がある。そのような更なる差異を不測差異と呼び、これらは修正動作の対象となりうる。不測差異を「印刷欠陥」とも呼ぶ。
開示された適応印刷検証(APV)構成は、印刷ステップ130及びスキャンステップ140内で発生する変換に動的に適応することで予測差異と不測差異とを区別する。変換に従って「予測印刷結果」を生成することにより、他の方法で予測された変化を欠陥として誤って検出する(「誤検知」として既知である)危険性が低い状態で出力が期待通りであることを確認できる。
開示されたAPV構成の1つにおいて、ソース文書166から印刷システム300の印刷ステップ130により生成された出力印刷163は、スキャンされて出力印刷163のデジタル表現164(以下において「スキャン画像」と呼ぶ)を生成する。出力印刷163の印刷誤差を検出するために、印刷システム300の印刷機構の特性をモデル化するパラメータの集合が最初に判定され、パラメータに対する値は、印刷システム300の少なくとも一部に対する動作条件データに基づいて判定される。動作条件データは、印刷システム300自体、あるいは例えば印刷システム300が配置される湿度及び/又は温度等の環境パラメータを測定するように構成された外部センサ等の他のソースから判定されてもよい。各パラメータと関連付けられた値は、ソース文書166のレンダリング160を変更することで出力印刷163の予測デジタル表現を生成するために使用される。予測デジタル表現が印刷システム300の物理的特性を考慮することにより、強度領域において印刷システムの動作条件と関連付けられた出力誤差(これらの出力誤差は予測差異である)を効率的に補正する。次に、生成された予測デジタル表現は、スキャン画像164に位置合わせされ、印刷又はスキャン中に発生したあらゆる空間変換を除去する。位置合わせされた予測デジタル表現は、印刷システム300の出力における印刷誤差として識別される不測差異(すなわち、印刷システム300の物理的特性に起因しない差異又は印刷又はスキャン中に発生した空間変換)を検出するために、出力印刷163のスキャン画像164と比較される。
図3は、図1の方法100が実施されてもよい印刷システム300の構成要素を示す概略図である。詳細図を図13A及び図13Bに示す。特に図3は、構成が実施されてもよい印刷システム300を示す概略ブロック図である。印刷システム300は、4つの色彩画像形成ユニット302、303、304及び305に接続された中央処理装置301を備える。説明を簡略化するため、有彩色の物質の各々を単にそれぞれの色空間「色剤」と呼ぶ。図3に示した例において、画像形成ユニット302はリザーバ307からシアン色剤を分配し、画像形成ユニット303はリザーバ308からマゼンタ色剤を分配し、画像形成ユニット304はリザーバ309からイエロー色剤を分配し、画像形成ユニット305はリザーバ310からブラック色剤を分配する。この例において、シアン、マゼンタ、イエロー及びブラックで画像を作成する4つの色彩画像形成ユニット(CMYK印刷システムとして既知である)がある。より少ない又はより多い色彩画像形成ユニット及び種々の色剤を含むプリンタも使用可能である。
中央処理装置301は、データバス312により4つの画像形成ユニット302〜305と通信する。データバス312を使用することにより、中央処理装置301は、(a)画像形成ユニット302〜305に加えて(b)給紙機構316、(c)出力表示装置及び入力制御ユーザインタフェース320、並びに(d)動作中に印刷システム300が必要とする情報を格納するために使用されたメモリ323からデータを受信し且つそれらに命令を出してもよい。中央処理装置301は、印刷するためのデータソースとして動作するデバイス321へのリンク又はインタフェース322を更に有する。例えばデータソース321は、パーソナルコンピュータ、インターネット、ローカルエリアネットワーク(LAN)又はスキャナ等であってもよく、中央処理装置301は、それらから図1のソース文書166である印刷される電子情報を受信する。印刷されるデータは、メモリ323に格納されてもよい。あるいは、印刷されるデータソース321は、データバス312に直接接続されてもよい。
中央処理装置301が印刷されるデータを受信する場合、命令は給紙機構316に送出される。給紙機構316は、給紙トレイ315から1枚の用紙319を取り出し、1枚の用紙319を転写ベルト313に配置する。転写ベルト313が矢印314の方向に(図3において右から左に水平に)移動することにより、1枚の用紙319は各画像形成ユニット302〜305を順次通過する。1枚の用紙319が各画像形成ユニット302、303、304、305の下を通過する時、中央処理装置301により、画像形成ユニット302、303、304、305は、当該画像形成ユニットの特定の色剤を使用して1枚の用紙319に画像を書き込む。1枚の用紙319が全ての画像形成ユニット302〜305の下を通過した後、完全なカラー画像が1枚の用紙319上に配置されている。
溶解トナープリンタの場合、1枚の用紙319は、色剤を1枚の用紙319に付着させる定着器ユニット324を通過する。画像形成ユニット及び定着ユニット324は、包括的に印刷エンジン329として既知である。印刷エンジン329の出力印刷163は、印刷検証ユニット330(印刷欠陥検出器システムとも呼ばれる)により確認されてもよい。その後1枚の用紙319は、出力紙送り機構318により用紙出力トレイ317に渡される。
図3のプリンタアーキテクチャは、例示するためだけのものである。多くの種々のプリンタアーキテクチャは、開示された構成により使用されるように構成されてもよい。一例において、構成は、1つ以上の誤差が検出される場合に出力印刷163を再現するための命令を印刷システム300に送出する措置を取ってもよい。
図13A及び図13Bは、印刷システム300の概略ブロック図表現を更に詳細に包括的に形成する。図13A及び図13Bに示すように、印刷システム300は組み込み構成要素を備え、説明する方法はそれらの上で実施されるのが望ましい。図13A及び図13Bの構成における印刷システム300は、処理リソースが限られたプリンタである。それにもかかわらず、1つ以上のAPV機能処理は、デスクトップコンピュータ、サーバコンピュータ及びプリンタに接続される非常により大きな処理リソースを含む他のそのようなデバイス等の高次デバイス上で交互に実行されてもよい。
図13Aに示すように、印刷システム300は、組み込みコントローラ1302を備える。従って、印刷システム300は、「組み込みデバイス」と呼ばれてもよい。本発明の例において、コントローラ1302は、メモリ(内部記憶モジュール)323(図3を参照)に双方向に結合される中央処理装置(又は「プロセッサ」)301を有する。図13Bに示すように、メモリ323は、不揮発性の半導体読み出し専用メモリ(ROM)1360及び半導体ランダムアクセスメモリ(RAM)1370から形成されてもよい。RAM1370は、揮発性メモリ、不揮発性メモリ又は揮発性メモリと不揮発性メモリとの組合せであってもよい。
印刷システム300は、例えば液晶ディスプレイ(LCD)パネル等のビデオディスプレイ1314に接続されるディスプレイコントローラ1307(出力表示装置及び入力制御320の詳細図である)を備える。ディスプレイコントローラ1307は、ディスプレイコントローラ1307が接続される組み込みコントローラ1302から受信した命令に従ってグラフィックイメージをビデオディスプレイ1314に表示するように構成される。
印刷システム300は、一般にキー、キーパッド又は制御のようなものにより形成されるユーザ入力装置1313(出力表示装置及び入力制御320の詳細図である)を更に備える。いくつかの構成において、ユーザ入力装置1313は、包括的にタッチスクリーンを形成するようにディスプレイ1314と物理的に関連付けられたタッチセンシティブパネルを含んでもよい。従って、そのようなタッチスクリーンは、一般にキーパッドとディスプレイとの組合せで使用されるプロンプト又はメニュー駆動型グラフィカルユーザインタフェース(GUI)とは対照的にGUIの1つの形態として動作してもよい。ボイスコマンド用のマイク(不図示)又はメニューに関するナビゲーションを容易にするためのジョイスティック/サムホイール(不図示)等の他の形態のユーザ入力装置が更に使用されてもよい。
図13Aに示すように、印刷システム300は、接続1319を介してプロセッサ301に結合されるポータブルメモリインタフェース1306を更に備える。ポータブルメモリインタフェース1306により、相補型ポータブルメモリ装置1325は、印刷システム300に結合されてデータの供給元又は供給先として動作するか、あるいはメモリ(又は内部記憶モジュール)323を補足できる。そのようなインタフェースの例により、USB(Universal Serial Bus)メモリ素子、セキュアデジタル(SD)カード、パーソナルコンピュータメモリカード国際協会(PCMIA)カード、光ディスク及び磁気ディスク等のポータブルメモリ装置との結合できる。
印刷システム300は、印刷システム300が接続1321を介してコンピュータ又は通信ネットワーク1320と結合できるようにする通信インタフェース1308を更に有する。接続1321は、有線又は無線であってもよい。例えば接続1321は、無線周波数又は光学式であってもよい。有線接続の一例にはイーサネットが含まれる。また、無線接続の一例には、Bluetooth(商標)ローカル相互接続、Wi−Fi(IEEE802.11ファミリーの規格に基づくプロトコルを含む)及びIrDA等が含まれる。ソースデバイス321は、本発明の例のようにネットワーク1320を介してプロセッサ301に接続されてもよい。
印刷システム300は、図1の方法100のAPVサブステップの一部又は全てを実行するように構成される。組み込みコントローラ1302は、特殊機能ユニット1310により示される印刷エンジン329、印刷検証ユニット330と共にその方法100を実行するために提供される。特殊機能ユニット1310は、組み込みコントローラ1302に接続される。
以下に説明するAPV方法は、組み込みコントローラ1302を使用して実現されてもよい。APV方法において、図1及び図2、図4〜図12、並びに図15の処理は、組み込みコントローラ1302内で実行可能な少なくとも1つ以上のAPVソフトウェアアプリケーションプログラム1333として実現されてもよい。
APVソフトウェアアプリケーションプログラム1333の少なくともいくつかのコードモジュールが印刷検証ユニット330のメモリ1404内に格納される図14の例に示すように、APVソフトウェアアプリケーションプログラム1333は、印刷システム300の機能要素間に機能的に分散されてもよい。
図13Aの印刷システム300は、説明したAPV方法を実現する。特に、図13Bを参照すると、説明したAPV方法のステップは、場合によってはプロセッサ1406と共にコントローラ1302内で実行されるソフトウェアアプリケーションプログラム1333の命令により実行される。ソフトウェア命令は、各々が1つ以上の特定のタスクを実行する1つ以上のコードモジュールとして形成されてもよい。ソフトウェアは、2つの別個の部分に更に分割されてもよい。第1の部分及び対応するコードモジュールは、説明したAPV方法を実行し、第2の部分及び対応するコードモジュールは、第1の部分とユーザとの間のユーザインタフェースを管理する。
組み込みコントローラ1302のソフトウェア1333は、一般に、内部記憶モジュール323の不揮発性ROM1360に格納される。ROM1360に格納されたソフトウェア1333は、コンピュータ可読媒体から必要とされる場合に更新されうる。ソフトウェア1333は、場合によってはプロセッサ1406と共にプロセッサ301にロードされ且つプロセッサ301により実行されうる。いくつかの例において、プロセッサ301は、RAM1370に配置されるソフトウェア命令を実行してもよい。ソフトウェア命令は、ROM1360からRAM1370に1つ以上のコードモジュールをコピーし始めるプロセッサ301によりRAM1370にロードされてもよい。あるいは、1つ以上のコードモジュールのソフトウェア命令は、製造業者によりRAM1370の不揮発性領域にプリインストールされてもよい。1つ以上のコードモジュールがRAM1370にロードされた後、プロセッサ301は、1つ以上のコードモジュールのソフトウェア命令を実行してもよい。
APVアプリケーションプログラム1333は、一般に、印刷システム300を配布する前に製造業者によりROM1360にプリインストール及び格納される。しかし、いくつかの例において、アプリケーションプログラム1333は、内部記憶モジュール323又はポータブルメモリ1325に格納される前に、1つ以上のCD−ROM(不図示)で符号化され且つ図13Aのポータブルメモリインタフェース1306を介して読み出された状態でユーザに供給されてもよい。別の例において、ソフトウェアアプリケーションプログラム1333は、プロセッサ301によりメモリ1320から読み出されてもよく、あるいは他のコンピュータ可読媒体からコントローラ1302又はポータブル記憶媒体1325にロードされてもよい。コンピュータ可読記憶媒体は、実行及び/又は処理のために命令及び/又はデータをコントローラ1302に提供することに関係するあらゆる記憶媒体を示す。そのような記憶媒体の例には、そのようなデバイスが印刷システム300の内部又は外部にあるかに関係なく、フロッピディスク、磁気テープ、CD−ROM、ハードディスクドライブ、ROM又は集積回路、USBメモリ、光磁気ディスク、フラッシュメモリ、あるいは例えばPCMCIAカード等のコンピュータ可読カードが含まれる。印刷システム300へのソフトウェア、アプリケーションプログラム、命令及び/又はデータの提供に更に関係してもよいコンピュータ可読伝送媒体の例には、無線又は赤外線の伝送チャネル及び別のコンピュータデバイス又はネットワーク化されたデバイスへのネットワーク接続、並びに電子メール送信及びウェブサイト等に記録された情報を含むインターネット又はイントラネットが含まれる。そのようなソフトウェア又はコンピュータプログラムが記録されたコンピュータ可読媒体は、コンピュータプログラムである。
上述のAPVアプリケーションプログラム1333及び対応するコードモジュールの第2の部分は、図13Aのディスプレイ1314にレンダリングされるかあるいは別の方法で表される1つ以上のグラフィカルユーザインタフェース(GUI)を実現するように実行されてもよい。ユーザ入力装置1313(例えば、キーパッド)の操作を通して、印刷システム300及びアプリケーションプログラム1333のユーザは、GUIと関連付けられたアプリケーションに制御コマンド及び/又は入力を提供するように機能的に適応可能な方法でインタフェースを操作してもよい。スピーカ(不図示)を介して出力された音声プロンプト及びマイク(不図示)を介して入力されたユーザボイスコマンドを利用するオーディオインタフェース等の他の形態の機能的に適応可能なユーザインタフェースが更に実現されてもよい。
図13Bは、場合によってはプロセッサ1406と共にAPVアプリケーションプログラム1333を実行するプロセッサ301と、内部記憶装置323及び/又はメモリ1404とを有する組み込みコントローラ1302を詳細に示す。内部記憶装置323は、読み出し専用メモリ(ROM)1360及びランダムアクセスメモリ(RAM)1370を含む。プロセッサ301は、接続されたメモリ1360、1370及び1404の1つ又は全てに格納されたAPVアプリケーションプログラム1333を実行できる。コントローラ1302の電源が最初に投入される際、ROM1360に常駐するシステムプログラムが実行される。永続的にROM1360に格納されたアプリケーションプログラム1333のコードモジュールは、「ファームウェア」と呼ばれることもある。プロセッサ301によるファームウェアの実行は、プロセッサ管理、メモリ管理、デバイス管理記憶装置管理及びユーザインタフェースを含む種々の機能を実現してもよい。
一般にプロセッサ301は、制御ユニット(CU)1351と、演算論理装置(ALU)1352と、一般に内部バッファ又はキャッシュメモリ1355と共に原子データ要素1356、1357を含むレジスタ1354の集合を含むローカルメモリ又は内部メモリとを含む多くの機能モジュールを備える。1つ以上の内部バス1359は、これらの機能モジュールに相互接続する。一般にプロセッサ301は、接続1361を使用してシステムバス1381を介して外部デバイスと通信する1つ以上のインタフェース1358を更に有する。
APVアプリケーションプログラム1333は、条件付き分岐命令及びループ命令を含んでもよい一連の命令1362〜1363を含む。プログラム1333は、プログラム1333の実行に使用されるデータを更に含んでもよい。このデータは、ROM1360又はRAM1370内の命令の一部として又は別個の場所1364に格納されてもよい。
一般にプロセッサ301は、そこで実行される命令の集合を与えられる。この命令の集合は、特定のタスクを実行するかあるいは印刷システム300において発生する特定の事象を処理するブロックに編成されてもよい。一般にAPVアプリケーションプログラム1333は、事象を待ち、次にその事象と関連付けられたコードのブロックを実行する。事象は、プロセッサ301により検出されたような図13Aのユーザ入力装置1313を介したユーザからの入力に応答してトリガされてもよい。また、事象は、印刷システム300の他のセンサ及びインタフェースに応答してトリガされてもよい。
命令の集合を実行するには、数値変数が読み出され且つ変更される必要があってもよい。そのような数値変数はRAM1370に格納される。開示された方法は、RAM1370の既知の場所1372、1373に格納される入力変数1371を使用する。入力変数1371は、RAM1370の既知の場所1378、1379及び/又はメモリ1404に格納される出力変数1377を生成するように処理される。中間変数1374は、RAM1370の場所1375、1376の更なる記憶場所に格納されてもよい。あるいは、一部の中間変数は、プロセッサ301のレジスタ1354だけに存在してもよい。
一連の命令の実行は、フェッチ実行サイクルの反復アプリケーションにより場合によってはプロセッサ1406と共にプロセッサ301において実現される。プロセッサ301の制御ユニット1351は、実行される次の命令のROM1360又はRAM1370にアドレスを含むプログラムカウンタと呼ばれたレジスタを維持する。フェッチ実行サイクルの開始時に、プログラムカウンタにより索引を付けられたメモリアドレスの内容は、制御ユニット1351にロードされる。そのようにロードされた命令がプロセッサ301の後続動作を制御することにより、例えば、データはROMメモリ1360からプロセッサレジスタ1354にロードされ、レジスタの内容は別のレジスタの内容と算術的に組み合わされ、レジスタの内容は別のレジスタに格納された場所に書き込まれる等する。フェッチ実行サイクルの終了時、プログラムカウンタは、システムプログラムコードの次の命令を指し示すように更新される。ちょうど実行された命令に依存して、これは、分岐動作を実現するために、プログラムカウンタに含まれたアドレスを増分すること又はプログラムカウンタに新しいアドレスをロードすることを含んでもよい。
以下に説明するAPV方法の処理の各ステップ又は各サブ処理は、アプリケーションプログラム1333の1つ以上のセグメントと関連付けられ、プロセッサ301におけるフェッチ実行サイクルの反復実行すること又は印刷システム300における他の独立プロセッサブロックの同様のプログラム動作により実行される。
プロセッサ1406、メモリ1404及び印刷検証I/Oユニット1405等の印刷検証ユニット330の構成要素は、バス1412を介して機能的に接続され、データバス312を介して印刷システム300の他の処理ユニットに接続される。構成要素は、図3に示した対応する構成要素301、323及び320と同様に動作する。従って、構成要素1406、1404及び1405を以下に詳細に説明しない。また、プロセッサ1406、メモリ1404及び印刷検証I/Oユニット1405は、中央処理装置301、メモリ323及びI/Oユニット320と同一の構成要素であってもよく、あるいは印刷検証ユニット330内の別個の構成要素であってもよい。
図1に戻ると、最上位レベルフローチャートは、ページが不測差異を含むかを判定するのに有用な方法100を示す。特に図1は、図14の印刷検証ユニット330を含む印刷システム300で実行する1つの構成に従ってカラーイメージングを実行する方法100の高レベル概略図を提供する。
図14は、図3の印刷検証ユニット330の詳細を示す。1つの構成において、印刷検証ユニット330は、図13Aの特殊機能モジュール1310の一部を形成してもよい。示された検証処理を実行するユニット330は、撮像システム1408の形態の画像検査デバイスを備える。撮像システム1408は、図1の構成の印刷ステップ130を実行する印刷エンジン329で発生した不測印刷差異を検出することで出力印刷の品質にアクセスするために使用されてもよい。印刷システム300へのソース入力文書166は、本発明の例において、文書ページの体裁を記述するページ記述言語(PDL)スクリプトの形式で表現されたデジタル文書である。一般に文書ページは、テキスト、グラフィカル要素(線画、グラフ等)及びデジタル画像(例えば、写真)を含む。ソース入力文書166は、ソース画像及びソース画像データ等とも呼ばれてもよい。
レンダリングステップ120において、ソース文書166は、APVソフトウェアアプリケーション1333の1つ以上のコードモジュールを実行するプロセッサ301の制御下でソフトウェアラスタライザモジュール(不図示)を使用してレンダリングされる。ソース文書166は、PDLスクリプトを処理することでレンダリングされ、ソース文書166の2次元ビットマップ画像160を生成する。別の実現例において、ラスタライザは、ハードウェア(例えば、1402)又はハードウェアとソフトウェアとの組合せで実現されてもよい。ラスタライザは、パッチ選択ステップ125で位置合わせ情報を更に生成してもよい。そのような位置合わせ情報は、「位置合わせヒント」とも呼ばれてもよい。位置合わせ情報は、固有の位置合わせ構造を含むビットマップ画像160の領域のリスト162の形態をとってもよい。領域を以下において「位置合わせパッチ」と呼ぶ。各位置合わせヒントは、パッチ中心(x,y)、パッチ内の固有の位置合わせ構造の量を示すパッチ強度値(例えば、高周波数成分、エッジ、コーナ等)、並びに位置合わせパッチの幅及び高さに対応するパッチサイズを含む正方形のパッチであることが好ましい位置合わせパッチ(又は領域)に対応する。位置合わせヒントのリスト162は、一般に搬送方向314であるためにy方向にソートされる。レンダリングビットマップ画像160及び位置合わせヒントの関連リスト162は、一時的にプリンタメモリ323に格納されてもよい。図8を参照して、図1のステップ125で実行されたように位置合わせパッチ(又は領域)内の複数のパッチを選択する方法800を以下に詳細に説明する。以下に説明するように、方法800は画像位置合わせで使用されてもよい。
レンダリングステップ120及びパッチ選択ステップ125の処理を完了すると、レンダリングビットマップ画像160は、カラー印刷ステップ130に送出される。カラー印刷ステップ130は、印刷エンジン329を使用し、印刷エンジン329を使用して紙シート319等の印刷媒体に可視画像を形成することで出力印刷163を生成する。メモリ323のレンダリングビットマップ画像160は、バス312を介して(a)印刷エンジン329を操作するのに必要な同期信号及びクロック信号(不図示)、並びに(b)特定のカラーコンポーネント信号等の転送要求(不図示)と同期して転送される。生成された位置合わせデータ162と共にレンダリングビットマップ画像160は、後続の欠陥検出ステップ150で使用するために、図14に示すように(a)バス312を介して印刷検証ユニット330のメモリ1404及び(b)印刷検証I/Oユニット1405に更に送出される。
カラー印刷ステップ130により生成された説明した例の紙シート319上にある出力印刷163は、撮像ステップ140でスキャンされる。出力印刷163は、例えば撮像システム1408を使用してスキャンされてもよい。特にステップ140において、プロセッサ301は、印刷163をスキャンするために信号を撮像システム1408に転送してもよい(例えば、プロセッサ1406を介して)。撮像システム1408は、リアルタイムのイメージング及び処理のためのカラーラインスキャナであってもよい。しかし、高品質のプリントアウトのデジタルコピーをデジタル化及び生成できるあらゆる撮像デバイスが使用されてもよい。いくつかの構成において、そのようなあらゆる撮像デバイスは、デジタルカメラ等の撮像デバイスを備えてもよい。
図14に示した1つの構成において、撮像システム1408は、スキャン線毎に又は各々が多くのスキャン線を含むバンド毎にシート319から出力印刷163の画像を撮像するように構成されてもよい。撮像されたデジタル画像164は、印刷欠陥検出ステップ150に送出される。図2を参照して、ステップ150で実行されたように出力印刷163の欠陥を検出する方法200を以下に更に詳細に説明する。プロセッサ1406から信号を受信すると、方法200は、APV特定用途向け集積回路(ASIC)1407及び/又はAPVソフトウェアアプリケーションプログラム1403により実現されてもよい。方法200は、出力印刷163の印刷欠陥を配置及び識別するためにパッチ選択ステップ125からの位置合わせデータ162を使用してビットマップ画像160とスキャン画像164とを位置合わせ及び比較する。それが完了すると、印刷欠陥検出ステップ150は、出力印刷163内で検出された全ての欠陥の種類及び場所を示す欠陥マップ165を出力する。欠陥マップ165は、判断ステップ170で出力印刷163の品質を判断するために使用されてもよい。判断信号175はプロセッサ1406により生成される。次に判断信号175は、自動再印刷をトリガするため又は出力印刷163に関する潜在的な問題についてユーザの注意を喚起するために使用されてもよい。1つの構成において、判断信号175は、欠陥マップ165で欠陥のあるものとしてマーク付けされた10画素を超える画素がある場合に「1」(誤差あり)に設定されるか、あるいはさもなければ「0」(誤差なし)に設定される。あるいは、欠陥のある画素数はユーザにより設定されてもよい。
1つの構成において、図7及び図14は、印刷ステップ130、スキャンステップ140及び欠陥検出ステップ150がパイプラインで配置されてもよい方法を示す。そのような構成において、レンダリングビットマップ画像160等の領域1411は、印刷システムエンジン329により印刷され、紙シート319上に出力印刷163の対応する領域を形成する。出力印刷163の印刷領域1411が撮像システム1408の下の位置1412に移動する場合、印刷領域1411は、撮像システム1408を使用してスキャンステップ140に従ってスキャンされ、スキャン画像164の一部を形成する。スキャン線のバンドである印刷領域1412のスキャンは、印刷エンジン329に送出されたビットマップ画像160の対応するレンダリング領域(バンド1411)と位置合わせ及び比較するために印刷欠陥検出ステップ150に送出される。
図7は、図2のステップ(説明される)が同時に実行されてもよい方法を示すグラフである。特に図7は、ページ319が供給方向314に移動する時、レンダリングビットマップ画像160の第1の領域が印刷システムエンジン329により印刷され(710)、出力印刷163の第1の領域を形成することを示す。第2の領域は、印刷ページ163上に印刷されており(715)、第1の領域は、スキャナ1408を使用してスキャンステップ140によりスキャンされ(720)、スキャン画像164の第1の領域を形成する。第3の領域が印刷されている(745)時、第1のスキャン領域は、印刷システムエンジン329に送出された対応する第1のレンダリング領域と位置合わせ及び比較するために印刷欠陥検出ステップ150に送出され(730)、第2の印刷領域がスキャンされる(725)。次に、レンダリングビットマップ画像160の後続領域は、図7に示されたのと同一の方法で処理されてもよい。従って、パイプライン構成により、最初の2つの領域の後で全ての3つの処理段階(印刷、スキャン、検出)を同時に実行できる。
図1に戻ると、図1に示したように貴重な位置合わせヒントを印刷欠陥検出ステップ150に提供するリスト162に対する位置合わせ領域を識別するために、ステップ120のラスタ化中にレンダリングビットマップ画像160に対してパッチ選択ステップ125を実行するのが有利である。ビットマップ画像160及びプリントアウトスキャン画像164を正確に登録することにより、画質数値評価を画素毎に実行できる。そのような方法の重要な利点の1つは、厳密な画像位置合わせが特殊な登録マーク又は登録パターンを明示的にソース入力文書166及び/又はビットマップ画像160に組み込む必要なく実行されてもよいことである。
パッチによる散在する画像位置合わせの場合、パッチ選択ステップ125は、強力な画像のコーナ又は他の有用な画像特徴を識別すること及びコーナを中心とした画像パッチを選択することに基づいてもよい。そのように選択された各パッチは、選択されたパッチと関連付けられた特徴強度値に基づいて選択される。しかし、そのような手法は、不正確な位置合わせ及び安定性の問題を招く可能性のある不均一な分布の影響を受ける傾向がある。これは、特に散在する内容を含む文書に当てはまり、強力な画像特徴が少数の近傍に集中する傾向があるため、これらの近傍において強度のパッチのクラスタリングが得られる。例えば図10Aは、画像パッチ(例えば、1040)を含む文書画像1010を示す。図10Aに示すように、画像1010の場合、画像パッチ1040が画像のコーナの強度のみに基づいて位置合わせのために選択される結果、いくつかのパッチのクラスタが得られる。これに対して、図10Bは、画像パッチ1050が強度及び相互近接度の双方に基づいて位置合わせのために選択されている画像パッチ1050を含む画像1010を示す。図10Bの例において、強力な画像特徴を含むパッチ1050間の距離が最長になるため、均一に分布したパッチ1050が得られる。
画像1010に対してより多くのパッチを使用することでパッチ分布を改善してもよい。それにより、位置合わせの正確度及びロバスト性が向上するが、処理の速度及び効率性は犠牲になる。印刷システム300は、画像位置合わせの処理速度がシステム300の性能全体に影響を及ぼすリアルタイムシステムである。パッチの数及び分布を選択することにより、処理速度、印刷欠陥検出の正確度及び信頼性に関して印刷システム300の性能全体に強い影響を及ぼしてもよい。
図1の方法100は、パッチ選択ステップ125を含む新規なパッチ選択アルゴリズムを提供する。ステップ125は、位置合わせのために適切に分布した画像パッチの散在する集合を提供する。次に、図8を参照して、パッチ選択ステップ125で実行されたように領域内で複数のパッチを選択する方法800を更に詳細に説明する。方法800は、ROM1360に常駐し且つプロセッサ301による実行において制御されるソフトウェアアプリケーションプログラム1333の1つ以上のソフトウェアコードモジュールとして実現されてもよい。
処理800は初期化ステップ810において開始し、プロセッサ301はメモリ323に格納されたビットマップ画像160にアクセスする。選択されたパッチを格納するグローバルパッチリストは、ステップ810でプロセッサ301により更に初期化される。グローバルパッチリストは、メモリ323のRAM1370内で構成されてもよい。
画像作成ステップ815において、コーナネス画像は、ビットマップ画像160内で検出されたハリスコーナーに基づいてプロセッサ301により作成される。コーナネス画像は、RAM1370内に格納されてもよい。次に、以下の例として、コーナネス画像内でのハリスコーナーの検出を説明する。ステップ120において300dpiでレンダリングされたA4サイズの文書の形式のソース入力文書166が与えられたとすると、プロセッサ301は、おおよそのサイズが2500画素×3500画素であるビットマップ画像160を生成する。ハリスコーナーは、Ix及びIyとして示されたx方向及びy方向の双方でグレースケールバージョンのビットマップ画像160の勾配導関数又は空間導関数を判定することにより、ビットマップ画像160内で検出される。勾配導関数又は空間導関数は、レンダリングビットマップ画像160をグレースケールに変換し且つソーベル演算子をグレースケールの結果に適用することで近似されてもよい。ビットマップ画像160は、以下のような式[1]に従って、RGB画像である場合にグレースケールに変換されてもよい。
ここで、I
Gはグレースケール出力画像であり、I
r、I
g及びI
bは赤、緑及び青の画像構成要素であり、反射率の定数はR
y11=0.2990、R
y12=0.5870及びR
y13=0.1140として規定される。
ビットマップ画像160が8ビット(0〜255)で符号化されたCMYK画像である場合、以下の式[2]に従って、同様にグレースケールに変換されてもよい。
より高い正確度が必要な場合にビットマップ画像160をグレースケールに変換するために他の変換が使用されてもよいが、一般に高速近似を使用するにはステップ815で十分である。
ソーベル演算子は、以下のような式[3]のカーネルを使用する。
以下のような式[4]の演算を用いてエッジ検出が実行される。
ここで、*は畳み込み演算子であり、I
Gはグレースケール画像データであり、S
x、S
yは上述のカーネルであり、I
x及びI
yは、それぞれx方向及びy方向のエッジの強度を含む画像である。I
x及びI
yから、3つの画像は、以下のような式[5]により示されたようにステップ815で生成される。
3つの画像Ixx、Ixy及びIyyにより、以下のような式[6]の関係を使用して各画素の近傍にわたり局所構造行列Aを判定できる。
式中、w(x,y)は、近傍の空間平均値に対する窓関数である。1つの構成において、w(x,y)は、10画素の標準偏差を含むガウスフィルタとして実現されてもよい。コーナネス画像は、各画素位置における局所構造行列Aの最小の固有値を判定することでステップ815において作成されてもよい。ステップ815で作成されたコーナネス画像は、各画素がコーナであるという尤度の2次元(2D)マップである。各画素位置において、コーナネス画像(I
c)は、3つの数、すなわち画素のx座標(x)、画素のy座標(y)及びその画素位置における局所構造行列Aの最小の固有値により表現されたような潜在的なコーナの強度又は単なるコーナネス強度(λ)により表される。
区分ステップ820において、ステップ815で作成されたコーナネス画像は、プロセッサ301によりRAM1370内に格納されてもよい多くのコーナネス画像バンド又はコーナネス画像領域に区分される。1つの構成において、各バンドの幅はビットマップ画像160の幅と同一であり、各バンドの高さは256画素である。あるいはコーナネス画像は、他のサイズのコーナネス画像バンドに区分されてもよい。
以下のステップにおいて、コーナネス画像バンドは、1度に1回ずつ繰り返される。特に選択ステップ825において、プロセッサ301は、ステップ820で作成されたコーナネス画像バンド(「現在のコーナネス画像バンド」)の1つを選択する。
バンドパッチリストは、現在のコーナネス画像バンド内にパッチ候補を格納するリスト初期化ステップ830で初期化される。バンドパッチリストは、RAM1370内で構成されてもよい。パッチ候補は、位置合わせのために十分な画像構造を有する画像パッチである。しかし、所定の画像バンド内のパッチ候補の数は、バンド毎の位置合わせパッチのある所定の最大数を超えてもよい。この例において、パッチ候補の部分集合は、最後の位置合わせパッチとして選択されてもよい。
次にソートステップ835において、現在のコーナネス画像バンドは、現在のコーナネス画像バンドのコーナネス強度λと空間的位置(x,y)との関連を維持しつつ、現在のコーナネス画像バンドのコーナネス強度値(λ)に従ってプロセッサ301により降順にソートされる。
次に選択ステップ840において、プロセッサ301は、現在のコーナネス画像バンドの位置(「現在位置」)を選択する。閾値ステップ845において、現在位置におけるコーナネス強度値が所定の閾値以上であり且つ現在位置のオリジナルの空間的位置(x,y)が選択のために使用可能であるとプロセッサ301が判定する場合、方法800はステップ860に進む。さもなければ、方法800はステップ860に進む。
追加ステップ860において、オリジナルのx座標及びy座標により示されたコーナネス強度値及び関連する空間的位置は、RAM1370内で構成されたバンドパッチリストに追加される。バンドパッチリストに追加された空間的位置(x,y)及びコーナネス強度値は、「パッチ候補」を表す。
次に排除ステップ865において、現在のコーナネス画像バンドの空間的位置(x,y)がRAM1370内で構成されたバンドパッチリストに追加されると、空間的位置(x,y)を取り囲む近傍(「近傍排除ゾーン」)は、更なる選択から排除される。近傍排除ゾーンの目的は、隣接する画像パッチ間の最短距離を設定することである。近傍排除ゾーンは、排除半径reを使用して実現されてもよい。ここで、円領域は、半径reの空間的位置(x,y)を中心として形成される。あるいは、他の近傍方法が使用されてもよい。例えば、近傍排除ゾーンは、空間的位置(x,y)を中心とする正方形領域に基づいて実現されてもよい。ここで、正方形領域はSの高さ及び幅を有する。1つの構成において、排除半径reは、64画素に設定される。
判断ステップ870において、現在のコーナネス画像バンドの端部に到達したとプロセッサ301が判定する場合、方法800は直接ステップ846に進む。さもなければ、方法800はステップ840に進み、プロセッサ301は、RAM1370内で構成された現在のコーナネス画像バンドの別の位置を選択する。
判断ステップ846において、バンドパッチリスト中のパッチ候補の数が最小候補数より多い場合、方法800はステップ850に進む。さもなければ、方法800はステップ855に進む。
選択ステップ850において、プロセッサ301は、RAM1370内で構成されたバンドパッチリスト中のパッチ候補から位置合わせのための最後の画像パッチを選択する。従って、方法800は、ページ領域の内容に基づいてページの領域にわたり分布した1つ以上の画像位置合わせパッチを判定するために実行される。各位置合わせパッチは、空間的位置及び特徴強度値と関連付けられる。図9を参照して、最後の画像パッチを識別する方法900を以下に詳細に説明する。
追加ステップ855において、ステップ850で選択された画像パッチは、RAM1370内で構成されたグローバルパッチリストに追加される。次に判断ステップ875において、処理対象の画像バンドが更に存在するとプロセッサ301が判定する場合、方法800はステップ825に戻る。処理対象の画像バンドがない場合、方法800は終了する。
方法800の実行後、RAM1370内で構成されたグローバルパッチリストは、ビットマップ画像160とスキャン画像164との位置合わせを実行するのに適した画像パッチのリストである。画像パッチのリストを含むグローバルパッチリストは、画像位置合わせで使用するための位置合わせヒントのリスト162を作成する。リスト162の各入力は、4つのデータフィールドを含むデータ構造により記述されてもよい。4つのデータフィールドは、領域の中心のx座標(コーナの空間的位置に対応する)、領域の中心のy座標、領域のコーナの強度及び領域のサイズを格納するように構成される。
他の構成において、ビットマップ画像160の特徴点は、勾配構造テンソル又はスケール不変特徴変換(SIFT:Scale-Invariant Feature Transform)を使用して判定されてもよい。また、図1のステップ125は、速度のためにダウンサンプル画像に対して実行されてもよい。その場合、処理パラメータは、それに応じて調整される必要がある。
ステップ850は、図10を参照して上述したように、パッチ分布を改善し且つパッチクラスタリングを回避するために実行される。パッチは、位置合わせの正確度、処理の効率性及びロバスト性を最大限にするために画像バンドにわたり均一に配置されてもよい。例えば図12Aは、画像バンド1200にわたり均一に分布したパッチ(例えば、1210)を含む画像バンド1200を示す。各パッチ1210は、画像バンド1200内のハリスコーナーを中心とする。しかし、印刷された文書画像に現れる可能性のあるレイアウト及び内容が一様でないため、所定の画像が図12Aに示したように均一に拡散したコーナを有する可能性は低い。代わりに、図12Bから分かるように、一般に、パッチ候補(例えば、1245)及び対応するコーナは、図12Bに示したように画像バンド1220にわたり不規則に分布する。上述したように、一部の文書画像が多数のコーナを含む可能性があるため、最小の画像構造に対して閾値を上回る強度で全てのコーナーを処理するのは非効率的である。そのような場合、使用可能なコーナの部分集合を使用して位置合わせを実行することにより、使用可能なコーナを使用するのと同様の位置合わせの正確度が得られてもよい。位置合わせのための画像コーナの数は、処理の速度及び効率性を向上するために制限されてもよい。
画像バンド1220及び1230の場合、それぞれ図12B、図12Cから分かるように、各バンド1220及び1230が処理対象の所望の数より多くの画像コーナを有し、ND、すなわち必要なND個のパッチが最強のND個のコーナを位置合わせパッチに対する位置として使用して位置合わせのために選択されてもよいと仮定する。しかし、最強のND個のコーナは、極めて接近して1つ又は少数の近傍内に集中してもよい。例えば、図12Cに示した画像バンド1230において、画像パッチ(例えば、1250)は最強のND個のコーナと関連付けられ、画像パッチ(例えば、1260)は残りのコーナと関連付けられる。従って、図12Cの画像バンド1230において、画像バンド1230中に不平衡に分布したパッチがある。パッチ(例えば、1250、1260)がそのように不平衡に分布した結果、位置合わせの正確度が低くなる可能性が高く、回転が強い場合、位置合わせの障害が発生するだろう。
1つの構成において、ページ領域(例えば、画像バンド1230)へのグリッドノードの分布を適用するステップが実行されてもよい。この例において、グリッドノードの分布の属性(例えば、幅、高さ及び空間周波数)は、画像バンド1230にわたるパッチ候補(例えば、1255)の分布に従って動的に調整されてもよい。調整された属性は、グリッドノードの分布の高さ及びグリッドノードの分布の幅を含んでもよい。図12Dに示すように、仮想グリッド1290は、画像バンド1230の使用可能なパッチ候補(例えば、1255)の上部に重ね合わされてもよい。グリッド1290の幅が最も左のパッチ候補及び最も右のパッチ候補により判定され、且つグリッド1290の高さが最も上のパッチ候補及び最も下のパッチ候補により判定されるように、仮想グリッド1290は、パッチ候補1255の分布を反映するように動的に調整されてもよい。
グリッド1290のノード(例えば、1295)の数及び/又はグリッド1290のノード間の間隔は、スキャン画像164内の局所歪みの測定に依存してもよい。特に、グリッド1290の行と列との間の間隔は、スキャン画像164内の局所歪みのレベルを反映するように動的に調整されてもよい。ひどく歪んだスキャン画像は、より低いレベルの画像歪みを含むスキャン画像より多くの行及び列を含むグリッド1290を必要とする。図12Dに示すように、グリッド1290のノードは、ビットマップ画像160の画像バンドにわたり規則的に分布する。あるいは、グリッド1290のノードは、ページ領域にわたるパッチ候補の分布に基づいて、ページの他のページ領域と比較して異なる方法でビットマップ画像160の画像バンド内に分布してもよい。
仮想グリッド1290は、グリッド1290の複数のノード(例えば、1295)毎にパッチ候補の分布から対応するパッチ候補を選択するために使用されてもよい。選択されたパッチ候補の各々は、選択されたパッチの特徴強度値及び対応するグリッドノード(例えば、1295)への近接度に基づいて選択されてもよい。特に、仮想グリッド1290の各ノード(例えば、1295)はアトラクタとして動作し、その位置は、仮想グリッド1290内で位置合わせパッチを配置するための場所を示す。ノード(又はアトラクタ)(例えば、1295)の最近傍は、アトラクション(attraction)の領域を形成する。アトラクションの領域内のあらゆるパッチ候補は、対応するグリッドノードに対する位置合わせパッチとして選択されてもよい。グリッド1290の各ノード(又はアトラクタ)は、対応するアトラクションの領域から1つのパッチ候補を引き付けてもよい。1つの構成において、グリッドノード(アトラクタ)は、対応するアトラクションの領域から最短の正規化距離を含むパッチ候補を位置合わせパッチとして引き付ける。グリッド1290のノード(例えば、1295)と所定のあらゆるパッチ候補(例えば、1251)との間の正規化距離は、パッチ候補の特徴強度でノード1295とパッチ候補(例えば、1251)の中心との間のユークリッド距離を正規化することで判定される。あるいは、他の距離計測値は、位置合わせパッチを選択するために使用されてもよい。
図12Dの例において、ダイナミックグリッド1290をパッチ選択に適用する結果、画像パッチ1250が位置合わせのために選択され且つ画像パッチ1260が破棄される図12Dに示したように、位置合わせパッチはより平衡に分布する。図12Cに示した画像バンド1230とは異なり、図12Dの画像バンド1230に位置合わせパッチ(例えば、1250)のクラスタリングがないため、位置合わせの正確度及び安定性は向上する。
次に、図9を参照して、ステップ850で実行されたように最後の画像パッチを識別する方法900を更に説明する。方法900は、ROM1360に常駐し且つプロセッサ301による実行において制御されるソフトウェアアプリケーションプログラム1333の1つ以上のソフトウェアコードモジュールとして実現されてもよい。図12Dの画像バンド1230及びダイナミックグリッド1290を参照して、例として方法900を説明する。
判定ステップ910において、RAM1370内で構成されたバンドパッチリスト中のパッチ候補の中心位置(x,y)は、ダイナミックグリッド1290の幅(wg=|xr−xl|)及び高さ(hg=|yb−yt|)を規定する最も左の位置、最も右の位置、最も上の位置及び最も下の位置(xl,xr,yt,yb)を取得するように繰り返される。
スキャン画像164における所定のレベルの歪みに対して、2つの隣接する位置合わせパッチ(例えば、1250)間の所定の分離が判定されてもよい。所定の分離は、所定の分離より小さな位置合わせパッチ間の分離を利用するように設定されてもよく、その結果、位置合わせの正確度は殆ど又は全く改善されない。逆に、所定の分離より大きな分離を適用する結果、スキャン画像164に存在する歪みを正確にモデル化するための標本点が不十分なために不正確な位置合わせとなる。水平方向及び垂直方向の歪みは、分離してモデル化されてもよく、それぞれ水平パッチ分離dh及び垂直パッチ分離dvを与える。
判定ステップ915において、グリッド1290における行の数は、以下のような式[7]に従ってプロセッサ301により判定される。
グリッド1290における列の数は、以下のような式[8]に従ってステップ915で更に判定される。
NrowsとNcolumnsを掛けると、画像バンド(例えば、1230)に対する最大位置合わせパッチ数が得られる。Nrows及びNcolumnsは、RAM1370内に格納されてもよい。
ソートステップ920において、RAM1370内で構成されたバンドパッチリストがプロセッサ301によりx方向にソートされることにより、グリッド1290のノード(又は「アトラクタ」)(例えば、1295)を左から右に繰り返すことができる。
選択ステップ925において、プロセッサ301は、グリッド1290のノード(又は「アトラクタ」)(例えば、1295)を選択する。ノード毎に、対応するアトラクションの領域は判定ステップ930で判定される。1つの構成において、ノード(例えば、1295)のアトラクションの領域は、隣接するノードの空間的位置により規定された最近傍である。あるいは、ノード(又はアトラクタ)のアトラクションの領域は、ノードを中心としてある所定の半径の円領域又は所定の幅及び高さの矩形領域により規定されてもよい。
識別ステップ935において、選択されたノードまでの最短の正規化距離を含むアトラクションの領域の内部のパッチ候補は、プロセッサ301により最後の位置合わせパッチとして選択される。
ステップ935で選択されたパッチ候補は、追加ステップ940においてRAM1370内で構成されたグローバルパッチリストに追加される。
削除ステップ945において、ステップ935で選択されたパッチ候補は、プロセッサ301によりRAM1370内で構成されたバンドパッチリストから削除され、更なる選択からパッチ候補を排除する。次に判断ステップ950において、繰り返し対象のノード(又はアトラクタ)が更に存在するとプロセッサ301が判定する場合、方法900はステップ925に戻る。繰り返し対象のノード(又はアトラクタ)がない場合、方法900は終了する。
図2は、図1のステップ150で実行されたような欠陥を検出する方法200を更に詳細に示すフローチャートである。方法200は、APV_ASIC1407及び/又はメモリ1404に常駐するソフトウェアアプリケーションプログラム1403の1つ以上のコードモジュールにより実現されてもよい。
方法200は、ビットマップ画像160及びスキャン画像164のバンド(又は領域)を処理する。スキャン画像164のバンドは、撮像システム1408によりスキャンされたページ319のバンド1412に対応する。例えば、スキャン画像164のバンドは、メモリバッファ1404に格納された多くの連続した画像ラインである。1つの構成において、各バンドの高さは256本のスキャン線であってもよく、各バンドの幅は入力画像160の幅であってもよい。例えば、300dpiにおけるA4のオリジナル文書160の場合、各バンドの幅は、2490画素である。メモリバッファ1404内の画像データは、固定数のスキャン線がスキャンステップ140でスキャンセンサ1408により取得される「ローリングバッファ」構成において常時更新される。固定数のスキャン線は、先入れ先出し(FIFO)方法でメモリバッファ1404から同数のスキャン線をフラッシュすることでメモリバッファ1404に格納されてもよい。1つの構成において、各スキャナサンプリングの例において必要なスキャン線の数は256である。別の構成において、各スキャナサンプリングの例において取得されたスキャン線の数がスキャンバンドメモリバッファの高さより少ないため、いずれか2つの連続したスキャンバンド間に重複データ内容領域を作成する。
図2に示したように、方法200はスキャン線バンド検索ステップ210において開始し、メモリバッファ1404は、プロセッサ1406によりスキャン画像164からの画像データのバンド(「スキャンバンド」)で充填される。スキャンバンドは、スキャンステップ140の実行後にプロセッサ1406に供給される。図2に示した例において、スキャンバンドは、ダウンサンプリングステップ230でダウンサンプリングされる。例えばスキャンバンドは、処理対象のデータ量を削減することでスキャン画像164のバンドであるスキャンバンド235を出力するために分離可能なBurt−Adelsonフィルタを使用してダウンサンプリングされてもよい。しかし、ステップ230は、オプションであり、排除されてもよい。あるいは、低解像度画像センサを含む撮像システム1408は、低解像度スキャンバンド235を取得するために使用されてもよい。
図2に示したように、ステップ210と同時に、スキャンバンド235である対応する解像度及び場所のビットマップ画像160のバンドは、オリジナル画像バンド及び位置合わせデータの検索ステップ220でプロセッサ1406により取得される。画像位置合わせのためにパッチ選択ステップ125で生成された位置合わせヒントのリスト162は、ステップ220で処理のためにプロセッサ301によりプロセッサ1406に渡される。対応するオリジナル画像バンド226がステップ220で抽出されると、印刷及び撮像処理のモデル(以下において「印刷/スキャンモデル」と呼ぶ)は、モデルアプリケーションステップ225でプロセッサ1406によりオリジナル画像バンド226に適用される。ステップ225において、プロセッサ1406は、印刷/スキャンモデルに従って変換の集合をオリジナル画像バンド226に適用してオリジナル画像バンド226を変更する。変換により、「予測画像バンド」227と呼ばれる印刷及びスキャン処理の予測出力を表す画像を生成する。印刷/スキャンモデルは、多くのより小さなコンポーネントモデルを含んでもよい。あるいは、印刷/スキャンモデルアプリケーションステップ225は、パッチ選択ステップ125の前に実現されてもよい。別の構成において、ビットマップ160全体が印刷/スキャンモデルアプリケーションステップ225により処理され、且つ結果として生じた予測画像が位置合わせステップ240でスキャンバンド235との位置合わせのために使用されるように、方法200はステップ220を排除してもよい。
1つの構成において、3つの効果が印刷/スキャンモデルによりモデル化される。特に、ぼけシミュレーション等のために使用されたドットゲインモデル、変調伝達関数(MTF:Modulation Transfer Function)モデル及びカラーモデルは、印刷/スキャンモデルによりモデル化される。より小さなモデルの各々は、1つ以上のプリンタ動作条件を入力として受信してもよい。プリンタ動作条件は、出力印刷163の出力品質に影響を及ぼす機械状態の種々の態様である。印刷動作条件が一般に経時変化しているため、印刷/スキャンモデルアプリケーションステップ225も経時変化しており、経時変化する動作条件の特性を反映している。1つの構成において、動作条件は、印刷システムセンサ出力及び環境センサ出力から導出されたパラメータとして構成されてもよい。動作条件パラメータは、印刷システム300を特徴付け及びモデル化するためのパラメータの集合を判定するために使用されてもよい。印刷/スキャンモデルにより、動作条件下のデジタルソース文書の印刷コピーに類似する体裁でデジタルソース文書をレンダリングできる。
プリンタ動作条件の例には、入力トレイ315に保持された紙319の種類を検出するセンサの出力及び画像形成ユニット302〜305の印刷ドラムの寿命を監視するセンサの出力が含まれる。プリンタ動作条件の別の例には、ドラムの「クリックカウント」としても既知である現在のドラムを使用して印刷されたページ数を含む。プリンタ動作条件の更に他の例には、リザーバ307〜310のトナー/インクのレベル及び寿命を監視するセンサの出力、印刷エンジン320内の内部湿度を測定するセンサの出力、印刷システム300の内部温度を測定するセンサの出力、最後のページが印刷されてからの時間(アイドル時間としても既知である)、機械が最後に自己校正を実行してからの時間、並びに最後のサービスから印刷されたページを含む。
動作条件は、方法100において使用するためにあるいはサービス技術者を支援するために、多くの動作条件検出器により測定されてもよい。動作条件検出器は、センサ(例えば、トナーリザーバ370〜310の各々のトナーレベルを通知するためのトナーレベルセンサ、紙の種類センサ又は温度/湿度センサ)と、クロック(例えば、最後の印刷からの時間を測定するための)と、内部カウンタ(例えば、最後のサービスから印刷されたページ数)との組合せを使用して実現されてもよい。例えば、トナーレベルセンサが低レベルのトナーを示す場合、印刷/スキャンモデルは、レンダリングデジタル文書が薄い色で印刷されたページに類似する体裁を有するように適応されてもよい。
図2に戻ると、スキャンバンド235及び予測画像バンド227がバンド位置合わせステップ240でプロセッサ1406により処理される。特にステップ240において、プロセッサ1406は、位置合わせパッチ(すなわち、位置合わせヒント)のリスト162を使用してスキャンバンド235と予測画像バンド227との画像位置合わせを実行する。ステップ225がオリジナル画像バンド226の座標系を変更しないため、スキャンバンド235の座標を予測バンド227に空間的に位置合わせすることは、座標をオリジナル画像バンド226に位置合わせすることに等しい。
ステップ240において、プロセッサ1406は、ステップ270の比較処理の前にスキャンバンド235と予測画像バンド227との間に画素対画素の相関性を確立する。リアルタイムの印刷欠陥検出を実行するために、高速で正確な画像位置合わせ方法が望ましい。通常のグリッドの全てのブロックに対して相関性が実行されるブロックに基づく相関性技術は、非効率的である。また、そのようなブロックに基づく相関性は、ブロックが本質的に位置合わせ可能な画像構造を含むか否かを考慮しない。信頼性のない相関性結果を含むことにより、画像位置合わせの正確度全体に影響を及ぼす恐れがある。説明した方法は、位置合わせ可能な領域を使用して画像間の幾何学的変換を正確に推定するパッチに基づく散在する画像位置合わせ技術を使用することでブロックに基づく相関性の上述の欠点を克服する。図4を参照して、ステップ240で実行したように画像バンドを位置合わせする方法400を以下に更に詳細に説明する。
判断ステップ250において、テストは、APV_ASIC1407及び/又はAPVソフトウェアアプリケーションプログラム1433により指示されたようにプロセッサ1406により実行され、位置合わせ誤差条件(例えば、過度のシフト、スキュー等)を示す何らかの幾何誤差がステップ240で検出されかを判定する。図4を参照して、ステップ250を以下に更に詳細に説明する。ステップ250におけるテストの結果がYesである場合、方法200は欠陥マップ出力ステップ295に移る。Noである場合、方法200は、バンド内容比較ステップ270に進む。
ステップ240の処理の結果、スキャンバンド235及び予測画像バンド227は、画素対画素の相関性と正確に位置合わせされる。位置合わせされた画像バンドは比較ステップ270で更に処理され、プロセッサ1406は、APV_ASIC1407及び/又はAPVソフトウェアアプリケーションプログラム1403により指示されたように、スキャンバンド235の内容と予測画像バンド227の内容とを比較して印刷欠陥を配置及び識別する。図5を参照して、ステップ270で実行されたように画像バンドを比較する方法500を更に詳細に説明する。
ステップ270の後、判断ステップ280でプロセッサ1406により確認が行われ、何らかの印刷欠陥がステップ270で検出されたかを判定する。ステップ280の結果がNoである場合、方法200は判断ステップ290に進む。Yesである場合、処理はステップ295に進む。
判断ステップ290において、プロセッサ1406は、処理対象の撮像システム1408からの何らかの新しいスキャン線があるかを判定する。ステップ290の結果がYesである場合、方法200はステップ210に戻り、メモリバッファ1404の既存のバンドはロールされる(すなわち、最初のバンドの256本のスキャンラインは除去され、メモリバッファ1404の残りのスキャンラインは256ラインだけ繰り上げられ、最後の256個のラインはステップ140で新たに取得されたスキャンラインにより置換される)。ステップ290の結果がNoである場合、方法200はステップ295に進み、欠陥マップ165が更新される。ステップ295は方法200を終了し、制御は図1のステップ170に戻る。
図1に戻ると、出力印刷163の容認性に関して判断ステップ170で判断が行われる。例えば欠陥マップ165は、操作者が確認するためにビデオディスプレイ1314に表示され、印刷ページ163の妥当性に関する判断を手動で行ってもよい。
説明した方法で使用された散在する画像位置合わせは、1対の入力画像間の局所シフト測定値を判定するために選択された少数の画像パッチを使用する。この例において、局所シフト測定値は、一方の入力画像を他方の入力画像にマッピングするグローバル動きモデルと一致すると仮定される。局所シフトを測定することにより、ビットマップ画像160とスキャン画像164との間の画像変換がモデル化されてもよい。また、上述したように、バンドベースの構成は位置合わせステップ240を実行するために使用される。ビットマップ画像160全体をスキャン画像164全体に位置合わせするのではなく、位置合わせステップ240は、ビットマップ画像160及びスキャン画像164から抽出された画像バンドを使用して実行される。
図11A及び図11Bは、一例に従って図2の位置合わせステップ240で処理されてもよい2つのバンドの詳細を示す。特に図11Aは、予測画像バンド227の一例を示す。更に図11Bは、スキャン画像バンド235の一例を示す。予測画像バンド227の位置合わせパッチ1110の一例及びスキャン画像バンド235の対応する画像パッチ1120の相対位置をそれぞれ図11A及び図11Bに示す。次にシフト推定は、APV_ASIC1407及び/又はAPV構成ソフトウェアプログラム1403により指示されたようにプロセッサ1406により2つのパッチ1110及び1120に対して実行され、2つのパッチ1110及び1120を関連させる変換を判定してもよい。図11で1130及び1140として示された次のパッチの対は、予測画像バンド227及びスキャン画像バンド235から選択されてもよい。パッチ1130は別の位置合わせパッチであり、パッチ1140は、2つの画像160と164との空間変換により判定されたような対応するパッチである。シフト推定は、パッチ1130と1140との新しい対の間で繰り返されてもよい。予測画像バンド227内の全ての位置合わせパッチ162は、図11Aのパッチ(例えば、1110、1130)と同様に処理されてもよい。
図4を参照して、ステップ240で実行されたように画像バンドを位置合わせする方法400を更に詳細に説明する。方法400は、APV_ASIC1407及び/又はメモリ1404に常駐するソフトウェアアプリケーションプログラム1403の1つ以上のコードモジュールにより指示されたようにプロセッサ1406により実行されてもよい。方法400は、スキャン画像バンド235及び予測画像バンド227である2つの画像バンドで動作し、ステップ125で導出された位置合わせヒントデータ162を使用する。
方法400は初期ステップ410において開始し、位置合わせヒントのリスト162は、各ヒントを漸進的に確認することで繰り返され、更なる処理のために適切な位置合わせヒントを識別する。リスト162は、プロセッサ301と共にプロセッサ1406によりメモリバッファ1404に格納されてもよい。
現在の位置合わせヒント415が現在のバンド内にあることが以下の判断ステップ420で判定される場合、方法400はステップ430に移る。さもなければ、方法400は変換偏差ステップ470に進む。
ステップ410で識別された現在の位置合わせヒント415は、メモリバッファ1404内で構成されてもよいデータ構造により説明される。データ構造は、格納するための4つのデータフィールドを含む。
(i)オリジナル画像ビットマップ160の座標空間におけるヒント位置のx座標
(ii)オリジナル画像ビットマップ160の座標空間におけるヒント位置のy座標
(iii)ヒントのコーナ(又は特徴)強度、及び
(iv)ヒントのパッチサイズ
取得ステップ430において、プロセッサ1406は、メモリバッファ1404から予測シフトパラメータを取得する。予測シフトパラメータは、スキャン画像バンド235における現在の位置合わせヒント415の現在の推定位置とスキャン画像バンド235における実際のヒント位置との間のシフトの推定値である。現在の推定位置は、前の画像バンドに対する前の位置合わせ動作から導出された変換を使用して判定される。変換は、オリジナル画像ビットマップの座標空間における現在の位置合わせヒント415のx座標及びy座標をスキャン画像バンド235における対応する位置(x座標及びy座標)に変換する。予測シフトパラメータは、適切なパッチサイズを選択するために使用され、適切なシフト推定方法を選択するために更に使用されてもよい。
現在の位置合わせヒント415毎に、パッチサイズSpは、予測シフト値431を使用して判定され且つメモリ1404に格納されてもよい。1つの構成において、パッチサイズは、以下のような式[10A]を使用してそれに従って判定されてもよい。
式中、αは倍率であり、Eは予測シフト値であり、S
pminは最小パッチサイズである。一実現例において、αは2.5に設定され、S
pminは8画素に設定される。
抽出ステップ440において、現在の位置合わせヒント位置415を中心とするサイズSp×Spのパッチ441は、予測画像バンド227から抽出されてメモリ1404内に格納される。同時に、スキャン画像バンド235における対応するヒント位置を中心とするサイズSp×Spのパッチ442は、抽出されてメモリ1404内に格納される。対応するヒント位置は、現在の位置合わせヒント415のx座標及びy座標をスキャン画像バンド235における対応する位置(x座標及びy座標)に変換するために前の文書画像又はバンドに対する前の位置合わせ動作から導出された現在の推定変換を使用して判定される。
シフト動作ステップ445において、プロセッサ1406は、スキャン画像バンド235における位置合わせヒントパッチ441と対応するヒントパッチ442との間でシフト推定動作を実行する。1つの構成において、「位相のみの」相関性(以下において「位相相関性」と呼ぶ)は、シフト推定動作を実行するために使用される。あるいは、勾配に基づくシフト推定等の他のシフト推定方法が使用されてもよい。次に、図15を参照して、ステップ445で実行されたようにシフトを推定する方法1500を説明する。
方法1500は、APV_ASIC1407及び/又はメモリ1404に常駐するソフトウェアアプリケーションプログラム1403の1つ以上のコードモジュールにより指示されたように、プロセッサ1406により実行されてもよい。
方法1500はステップ1510において開始し、プロセッサ1406は、ハニングウィンドウ等の窓関数を2つのパッチ441及び442の各々に適用する。ウィンドウに表示された2つのパッチは、ゼロで埋め込まれてパッチの幅及び高さを2倍にする。埋め込まれた2つのパッチは、ステップ1510で位相相関される。ステップ1510の位相相関は、実数値のラスタアレイ1530を生成する。
以下のピーク検出ステップ1520において、最も高いピークの位置は、ラスタアレイ1530内で判定されてメモリ1404内に格納され、位置合わせヒントパッチの中心に関連する。ピークに対する確信度が更に判定されてもよい。確信度は、第2のピークの高さに対して検出されたピークの高さとして規定されてもよい。シフト推定ステップ445は、最も高いピーク位置及び確信度から形成された変位ベクトル446を出力する。
ステップ445の後、方法400はステップ447に移り、現在の予測シフト値431は、プロセッサ1406により更新されてメモリ1404内に格納される。局所歪み又は非並進変換(例えば、回転及び変倍等)のため、予測シフトは、スキャン画像バンド235にわたり一様でなくてもよい。すなわち、スキャン画像バンド235の一端の予測シフトは、他端の予測シフトと同一でなくてもよい。この例において、近傍毎に1つの予測シフト値が判定されてもよい。1つの構成において、スキャン画像バンド235は5つの同等のサイズの列に区分されてもよく、各列は予測シフト値を有する。各予測シフト値は、近傍内の情報を使用して判定される。特に、各予測シフト値は、以下のような式[10B]を使用してそれに従って導出されてもよい。
式中、E
t(i)は、スキャン画像バンド235のi番目の列の現在の予測シフト値であり、ωは、最近のシフト測定値に対するE
t(i)の感度を制御するための減衰率であり、s
iは、i列内の最新のシフト測定値であり、E
t-1(i)は、i列に対する前の予測シフト値である。
現在の予測シフト値を更新した後、ピークの位置、確信度及び位置合わせヒントパッチの中心は、ベクトル変位格納ステップ450でメモリバッファ1404に格納されてもよい。以下の判断ステップ460でより多くの位置合わせヒントが存在することがプロセッサ1406により判定される場合、方法400はステップ410に戻り、次の位置合わせヒント415が選択される。より多くの位置合わせヒントがない場合、方法400は変換導出ステップ470に進む。
別の構成において、位相相関の代わりに2値化相関が使用されてもよい。
位相相関の出力は、予測画像バンド227の画素をスキャン画像バンド235にマッピングするのに必要な変換を示す変位ベクトルD(n)の集合である。
ステップ470において、プロセッサ1406は変位ベクトルからの変換を判定する。変換はメモリ1404に格納されてもよい。1つの構成において、変換は、式[11]の以下のようなデカルト座標系で変位ベクトルに関連する線形変換パラメータ(b11,b12,b21,b22,Δx,Δy)の集合によるアフィン変換である。
式中、(x
n,y
n)は位置合わせ可能な領域の中心であり、(x〜
n,y〜
n)はアフィン変換された点である。
更に点(xn,yn)は、変位ベクトルD(n)により変位され、式[12]の以下のような変位された点(x^n,y^n)を与える。
適切なアフィン変換は、変位された座標(x^n,y^n)とアフィン変換パラメータ(b11,b12,b21,b22,Δx,Δy)を変更することによりアフィン変換された点(x〜n,y〜n)との誤差を最小限にすることにより判定されてもよい。最小限にされる誤差関数は、式[13]の以下のようなユークリッドノルム測定値Eである。
以下の式[15]の関係及び式[16]の関係と共に、最小解決方法を以下のように式[14]に示す。
式中、合計は、閾値P
minを上回るピーク確信を含む全ての変位ベクトルにわたり実行される。1つの構成において、P
minは2.0に等しい。
以下のステップ470において、線形変換パラメータ(b11,b12,b21,b22,Δx,Δy)の集合は、幾何誤差検出ステップ480でプロセッサ1406により検査され、回転、変倍、せん断及び変換等の幾何誤差を識別する。変換せずに考慮される場合の線形変換パラメータ(b11,b12,b21,b22,Δx,Δy)の集合は、以下の式[17]のような2×2行列である。
式[17]の行列は、個々の変換に分解されてもよく、以下の式[18]に示したように特定の順序の変換を仮定する。
この場合、変倍は、以下のように式[19]に従って規定される。
式中、s
x及びs
yは、それぞれx軸及びy軸に沿って変倍係数を特定する。
せん断は、以下のように式[20]に従って規定される。
式中、h
x及びh
yは、それぞれx軸及びy軸に沿ってせん断係数を特定する。
回転は、以下のように式[21]に従って規定される。
パラメータsx、sy、hy、及びθは、以下の式[22]、[23]、[24]及び[25]により上記の行列係数から判定されてもよい。
1つの構成において、許容可能な水平又は垂直の変位量Δmaxは、300dpiの画像に対して4画素であり、変倍係数の範囲(smin,smax)は(0.98,1.02)である。そのような構成において、許容可能なせん断係数の大きさhmaxは0.01であり、回転の角度は0.1度である。
しかし、より大きな変換又は回転を可能にする適切な別のパラメータが更に使用されてもよい。
ステップ470で取得した導出された変換が上述のアフィン変換基準を満たす場合、スキャンバンド235は、以下の判断ステップ490で幾何誤差がないと仮定され、方法400は、予測画像においてスキャン空間マッピングステップ492に進む。幾何誤差がある場合、方法400は終了する。
ステップ492において、登録パラメータの集合は、予測画像バンド227をスキャン画像空間にマッピングするために使用される。特に、変換画像バンドの座標(xs,ys)におけるRGB値は、予測画像バンド227の座標(x,y)におけるRGB値と同一である。座標(x,y)は、以下のように式[26]の登録パラメータにより示された線形変換の逆により判定される。
整数画素位置に対応しない座標(x,y)の場合、近傍値から(x,y)においてRGB値を算出するために補間方式(例えば、バイリニア補間)が使用されてもよい。ステップ492の後、方法400は終了する。
別の構成において、登録パラメータの集合は、ステップ492でスキャン画像バンド235をオリジナルの画像座標空間にマッピングするために使用されてもよい。ステップ492のそのようなマッピングの結果、予測画像バンド227とスキャンバンド235とが位置合わせされる。
図5を参照して、ステップ270で実行されたように画像バンドを比較する方法500を更に詳細に説明する。方法500は、APV_ASIC1407及び/又はメモリ1404に常駐するソフトウェアアプリケーションプログラム1403の1つ以上のコードモジュールにより指示されたようにプロセッサ1406により実行されてもよい。方法500に従って、プロセッサ1406は、スキャンバンド235及び位置合わせされた予測画像バンド502である2つの画像バンドに対して動作する。
方法500の処理は、タイルが1度に1回ずつ上から下及び左から右に処理するために使用可能になるタイルラスタ順序で動作する。図5に示したように、方法500はステップ510において開始し、Q×Q画素タイルは2つのバンド502、235の各々からプロセッサ1406により選択され、タイルはそれぞれのバンド502、235において対応する位置を有する。2つのタイル、すなわち位置合わせされた予測画像タイル514及びスキャンタイル516は、メモリバッファ1404内に格納されて以下のステップ520で処理されてもよい。1つの構成において、Qは32画素に等しい。
更新ステップ520において、プロセッサ1406は、APV_ASIC1407及び/又はソフトウェアアプリケーション1403により指示されたように、タイル514と516とを比較して印刷欠陥を識別する。図6を参照して、ステップ520で実行されたように画像バンド502及び235のタイルを比較する方法600を更に詳細に説明する。
方法600は、APV_ASIC1407及び/又はメモリ1404に常駐するソフトウェアアプリケーションプログラム1403の1つ以上のコードモジュールにより指示されたようにプロセッサ1406により実行されてもよい。方法600は選択ステップ610において開始し、確認対象のスキャン画素は、プロセッサ1406によりスキャンタイル516から選択される。
次の判定ステップ620において、ステップ610で選択されたスキャン画素の近傍の最小差異は、プロセッサ1406により判定される。あらゆる適切な距離計測値Dは、ステップ620で差異を判定するために使用されてもよい。
1つの構成において、距離計測値Dは、色差計測値DRGB(p,q)であってもよい。色差計測値DRGB(p,q)は、単一の画素に対する色差を判定するために使用されてもよい。使用された色差計測値は、RGB空間のユークリッド距離であってもよく、2つの画素p及びqは以下のように式[27]で示される。
式中、p
r,p
g,p
bは画素pの赤成分、緑成分及び青成分であり、同様に成分q
r,q
g,q
bは画素qに対するものである。
別の構成において、ステップ620で使用された距離メトリックDは、以下のような式[28]に従って判定されてもよいデルタE距離メトリックDΔE(p,q)である。
デルタE距離計測値DΔE(p,q)は、sRGB色空間からの既知の変換を有するL*a*b*色空間を使用して規定される。1つの構成において、スキャナ1408等の撮像デバイスにより提供されたRGB値は、sRGB値であってもよい。
位置x,yにおけるスキャン画素psと位置合わせされた予測画像peの隣接画素との間の最短距離は、以下のような式[29]に従って選択された距離計測値Dを使用して判定されてもよい。
式中、K
Bはおよそ半分の近傍サイズである。1つの構成において、K
Bは、1画素として選択されてもよく、3×3の近傍を与える。
次の更新ステップ630において、メモリバッファ1404内で構成されたタイル欠陥マップは、Dminの値に基づいてマップの位置x,yにおいてプロセッサ1406により更新される。画素のDmin値がある特定の閾値Ddefectを上回る場合、画素は欠陥があると判定される。デルタE距離計測値DΔEがDminを判定するために使用される1つの構成において、閾値Ddefectは10として設定される。
次の判断ステップ640において、スキャンタイルにおいて処理すべき何らかの更なる画素が残っている場合、方法600はステップ610に戻る。そうではなくて、処理すべき画素が残っていない場合、方法600は終了し、制御は図5の方法500のステップ530に戻る。
ステップ520を実行した後、ステップ630で作成されたタイルベースの欠陥マップは、バンド欠陥マップ更新ステップ530で欠陥マップ165に格納される。以下の判断ステップ540において、ステップ530でバンド欠陥マップの更新時に印刷欠陥が存在したとプロセッサ1406が判定する場合、更なる処理が必要ないため、方法500は終了する。さもなければ、方法500はステップ550に進む。
1つの構成において、欠陥マップ165は、ユーザが出力印刷163で欠陥が発生した場所を判定できるようにする2次元マップである。次の判断ステップ550において、処理対象のタイルが残っているとプロセッサ1406が判定する場合、方法500はステップ510に進み、タイルの次の集合が選択される。処理対象のタイルがない場合、方法500は終了する。