(57)【要約】【課題】オリジナル画像から縮小画像を生成する方法及び装置を提供する。【解決手段】サムネイル画像を生成するための方法であって、オリジナルドキュメントのオリジナル画像の線の一部のデータを捨てることと、オリジナル画像に対応するサムネイル画像を生成するために、捨てられなかったデータを結合することとを備えた、方法によって実現する。これにより、非常に速くかつ効率的に、最小限のメモリで、良好な画像品質の縮小画像を得ることができる。【選択図】      図１１
2005228332.tif 000002
【特許請求の範囲】
【請求項１】
サムネイル画像を生成するための方法であって、
オリジナルドキュメントのオリジナル画像の線の一部のデータを捨てることと、
前記オリジナル画像に対応する前記サムネイル画像を生成するために、捨てられなかったデータを結合することとを備えた、
方法。
【請求項２】
縮小画像を生成するための方法であって、
オリジナルドキュメントのオリジナル画像全体に及ぶ複数の次元の一つ以上の第１の次元の一部が及ぶすべてのデータを捨てることと、
前記オリジナル画像に対応する縮小画像を生成するために、捨てられなかったデータを結合することとを備えた、
方法。
【請求項３】
補間回路と、
前記補間回路に結合された位置制御装置とを備える装置であって、
一つ以上の位置の値が前記位置制御装置に結合されており、捨てられたデータを省くために、前記位置の値を処理することによって、オリジナルドキュメント全体に及ぶ複数の次元の第１の次元の一部が及ぶオリジナルドキュメントのオリジナル画像内のすべてのデータを前記位置制御装置が捨て、前記オリジナル画像の縮小画像を生成するために前記補間回路は捨てられなかったデータを結合する、
装置。
【請求項４】
縮小画像を生成するために使用されるオリジナルドキュメントのオリジナル画像のデータポイントを識別するための位置制御手段と、
前記位置制御手段によって識別されたデータポイントに基づいて前記縮小画像の出力データポイントを生成するための補間手段とを備える、
装置。
【請求項５】
サムネイル画像を生成するソフトウェアプログラムであって、
オリジナルドキュメントのオリジナル画像の線の一部のデータを捨てる動作と、
前記オリジナル画像に対応するサムネイル画像を生成するために、捨てられなかったデータを結合する動作と、を実行するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、縮小画像に関する。
【背景技術】
【０００２】
サムネイル等の縮小画像は、すべての画像データの表示をサポートするための資源を消費せずに画像を都合良く観察するために、一般的に使用される。縮小画像の生成における更なる改良が要求されている。
【特許文献１】米国特許第４，８４９，９１４号
【特許文献２】米国特許第５，５１５，４５２号
【特許文献３】米国特許第５，５８３，６５９号
【特許文献４】米国特許第５，７４５，５９６号
【特許文献５】米国特許第５，９００，９５３号
【特許文献６】米国特許第６，０５８，２１４号
【特許文献７】米国特許第６，３２４，３０５Ｂ１号
【特許文献８】米国特許第６，３４３，１５４Ｂ１号
【特許文献９】米国特許第６，４００，８４４Ｂ１号
【特許文献１０】米国特許第６，６３３，６７０号Ｂ１
【特許文献１１】ＥＰ特許出願公開第０７１２９４Ａ２号
【特許文献１２】ＥＰ特許出願公開第１００６７１６Ａ２号
【非特許文献１】Ｒ．ドゥ  クェリオッツ（Ｒ．Ｄｅ  Ｑｕｅｒｉｏｚ）著「複合ドキュメントの圧縮（Ｃｏｍｐｒｅｓｓｉｏｎ  ｏｆ  Ｃｏｍｐｏｕｎｄ  Ｄｏｃｕｍｅｎｔｓ）」ＩＥＥＥ発行、１９９９年１０月、Ｐ．２０９〜２１３。
【発明の開示】
【課題を解決するための手段】
【０００３】
縮小画像は、画像データをオリジナル画像全体に及ぶ次元に沿って結合することによって生成されても良い。たとえば、二次元画像では、ｘ及びｙ次元の各々に沿って出力ピクセルを生成するために、画素（ピクセル）は補間プロセスを介して結合されても良い。このようなプロセスは容認可能な縮小画像（サムネイル）を生成できるが、このようなサムネイルを生成するために必要とされる処理時間は所望の時間よりも長いかも知れない。
【０００４】
縮小画像を生成するために必要とされる時間を短くするために、１つ以上の次元の各群内のデータが他の群のデータと別に処理されても良いように、オリジナル画像全体に及ぶ次元は、複数の群に分割されても良い。たとえば、画素（ピクセル）が行及び列（ピクセルの線及び線に沿ったピクセル）それぞれで配列されるように、二次元画像はｙ及びｘ次元全体に及んでいても良い。この場合には、選択された線のピクセルは完全に捨てられるか又は省かれても良く、他方、縮小画像又はサムネイルを得るために、残りの線はｘ次元に沿って処理されても良い。
【０００５】
データは、多数の連続したピクセルを対応する重みで乗算し、乗算結果を合計し、合計を正規化因子によって除算することによる、補間によって処理されても良い。すべての重みを「１」に設定してピクセルの二乗以上合計することによって、さらなる速度の改善を得ても良い。合計されたピクセルの数を二乗まで制限することは、除算を二進シフトまで単純化する。このようにして、縮小画像の品質を管理しつつ、縮小画像はより高い効率及び速度で生成されても良い。
【０００６】
本発明の第１の態様は、サムネイル画像を生成するための方法であって、オリジナルドキュメントのオリジナル画像の線の一部のデータを捨てることと、オリジナル画像に対応するサムネイル画像を生成するために、捨てられなかったデータを結合することとを備えた、方法である。
【０００７】
本発明の第２の態様は、縮小画像を生成するための方法であって、オリジナルドキュメントのオリジナル画像全体に及ぶ複数の次元の一つ以上の第１の次元の一部が及ぶすべてのデータを捨てることと、オリジナル画像に対応する縮小画像を生成するために、捨てられなかったデータを結合することとを備えた、方法である。
【０００８】
本発明の第３の態様は、補間回路と、補間回路に結合された位置制御装置とを備える装置であって、一つ以上の位置の値が位置制御装置に結合されており、捨てられたデータを省くために、位置の値を処理することによって、オリジナルドキュメント全体に及ぶ複数の次元の第１の次元の一部が及ぶオリジナルドキュメントのオリジナル画像内のすべてのデータを位置制御装置が捨て、オリジナル画像の縮小画像を生成するために補間回路は捨てられなかったデータを結合する、装置である。
【０００９】
本発明の第４の態様は、縮小画像を生成するために使用されるオリジナルドキュメントのオリジナル画像のデータポイントを識別するための位置制御手段と、位置制御手段によって識別されたデータポイントに基づいて縮小画像の出力データポイントを生成するための補間手段とを備える、装置である。
【００１０】
本発明の第５の態様は、サムネイル画像を生成するソフトウェアプログラムであって、オリジナルドキュメントのオリジナル画像の線の一部のデータを捨てる動作と、オリジナル画像に対応するサムネイル画像を生成するために、捨てられなかったデータを結合する動作と、を実行するプログラムである。
【００１１】
添付の図を参照して、例示的な実施の形態について次に説明する。
【発明を実施するための最良の形態】
【００１２】
図１は、縮小画像まで縮小されたオリジナル画像に変換された、オリジナルドキュメントを示す。図１は、オリジナルドキュメントと、オリジナル画像と、縮小画像とが二次元であるとして示されているが、いかなる数の次元でも良い。説明を容易にするために、次の説明は、わかりやすさと親しみ易さのために、二次元の例を用いても良く、縮小画像は、サムネイル又はサムネイル画像と呼ばれる場合がある。
【００１３】
図２は、たとえば、スキャナ１００によってオリジナルドキュメントが走査されてＲＢＧ色空間内のデータ等のオリジナル画像データを生成する、例示的なプロセスを示す。この色空間は、色変換装置１０２によってＹＣＣ色空間に変換されても良い。周知のように、ＹＣＣ色空間は、輝度成分（Ｙ）と２つの色成分（ＣＣ）とを含む。色成分は、両方向でないにせよ少なくとも１つの方向で２：１比でサブサンプルされても良く、その結果、輝度成分にあるのと比較して、色成分では、データポイント数は半分である。縮小画像を生成するために、ＹＣＣ色空間内のオリジナル画像は、縮小画像生成装置１０４によって入力されても良い。たとえばＬａｂ等の他の色空間が使用されても良い。
【００１４】
図３は、縮小画像生成装置１０４の例示的なブロック図を示す。縮小画像生成装置１０４は、ＣＰＵ１０６と、メモリ１０８と、管理パラメータ記憶装置１１０と、補間回路１１２と、位置制御装置１１４と、入力／出力ポート１１６とを備えていても良い。前記部品１０６〜１１６は、バス１１８を介して互いに接続されていても良い。縮小画像生成装置１０４はバスアーキテクチャ図を用いて図示されているが、１つ以上の部品を実行するために特定用途向け集積回路（ＡＳＩＣ）等を使用するか、又は縮小画像生成装置等のすべての機能を実行するためにＣＰＵ１０６内で実行するコンピュータプログラムの記述等をする、他の任意の種類のハードウェア構成を使用しても良い。
【００１５】
縮小画像制御装置１０４は、入力／出力ポート１１６を介して、オリジナル画像のデータと管理パラメータとを受信する。画像データはメモリ１０８内に保存されても良く、管理パラメータは管理パラメータ記憶装置１１０内に保存されても良い。管理パラメータ記憶装置１１０が不揮発性メモリの場合には、管理パラメータは、入力／出力ポート１１６を介して受信される代わりに、管理パラメータ記憶装置１１０内にプリストアされても良い。オリジナル画像データは、スキャナ１００によって生成されたピクセル値を含む。これらのピクセルは、オリジナルドキュメントと相対的な所定の位置を有する。これらの位置は、オリジナルドキュメントの基準点と相対的に決定されても良い。たとえば、二次元のオリジナルドキュメント（たとえば、８．５ｘ１１の紙のシート）については、所定の基準点は、紙のシートの左上隅に設定されても良い。オリジナル画像内のすべてのピクセルは、この所定の基準点と相対的に割り当てられても良い。
【００１６】
図４は、縮小画像生成装置１０４を制御するために使用されても良い二次元のオリジナル画像についての例示的な管理パラメータの表２００を示す。ｘ＿ｓｔａｒｔパラメータ及びｙ＿ｓｔａｒｔパラメータは、オリジナルドキュメント内の開始位置を特定する。たとえば、色変換装置１０２は、コンテキストを必要とする処理の種類によって、オリジナル画像の周囲に沿って複製されたピクセルを有しても良い。よって、ｘ＿ｓｔａｒｔパラメータ及びｙ＿ｓｔａｒｔパラメータは、縮小画像生成装置１０４が縮小画像の生成を開始しても良いオリジナル画像内のピクセルに対応するオリジナルドキュメント内の位置（たとえば、二次元内の左上のピクセル）を識別する。
【００１７】
ｘ＿ｓｔａｒｔパラメータ及びｙ＿ｓｔａｒｔパラメータは、縮小画像を生成するために使用されても良いオリジナル画像の量を制御するために使用されても良い。たとえば、ｘ＿ｓｔａｒｔ及びｙ＿ｓｔａｒｔをオリジナルドキュメントの内点に配置すると、縮小画像では求められないオリジナル画像の一部を効果的に切り取ることができる。オリジナル画像がヘッダとフッタとを有する印刷されたドキュメントである場合には、たとえば、ｘ＿ｓｔａｒｔパラメータ及びｙ＿ｓｔａｒｔパラメータは、ヘッダが縮小画像内に含まれないように、ヘッダの下にある位置を識別するために使用されても良い。
【００１８】
ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅパラメータ及びｉｎｔｅｒｐｏｒａｔｉｏｎ＿ａｖｅｒａｇｅパラメータは、縮小画像の１つのピクセルを生成するために使用されるオリジナル画像からの多数のピクセルを決定するために使用されても良い。ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅパラメータは、縮小画像内に一つのピクセルを生成するために使用されるオリジナル画像内の連続したピクセルの数を特定する（二次元以上のオリジナル画像については、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅパラメータは、各次元内の連続したピクセルの数のタプル（ｔｕｐｌｅ）であっても良い）。ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ａｖｅｒａｇｅパラメータは、補間プロセス内で正規化因子として使用されても良い。
【００１９】
たとえば、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅパラメータが４である場合には、縮小画像内に１つのピクセルを生成するために、オリジナル画像の線に沿って４つのピクセルが使用されても良い。オリジナル画像内の各ピクセルは、対応する重みと乗算され、乗算結果が合計され、合計はｉｎｔｅｒｐｏｌａｔｉｏｎ＿ａｖｅｒａｇｅによって除算されても良い。特に効果的に実行するために、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅパラメータは二乗まで制限されても良く、及び／又はすべての補間の重みは「１」に設定されても良い。これらの条件の下で、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ａｖｅｒａｇｅは、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅによって特定された二乗に対応する右シフトの数に設定されるべきである。よって、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅが４である場合には、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ａｖｅｒａｇｅは２である。この例については、オリジナル画像内の４つのピクセルが合計され、次に、縮小画像内に一つのピクセルを得るために、合計が２つ右シフトされる。
【００２０】
縮小画像の次のピクセルを生成するためにオリジナル画像内の次のピクセルのセットのをそこから選択しても良いオリジナルドキュメント内の位置を決定するために、ｘ＿ｉｎｃｒｅｍｅｎｔパラメータ及びｙ＿ｉｎｃｒｅｍｅｎｔパラメータが使用されても良い。たとえば、速い及び遅い走査方向を有するスキャナ１００によってオリジナル画像内のピクセルが生成された場合には、各線（ｙ次元）についての速い走査方向（たとえば、ｘ次元で左から右へ）でのピクセルは、補間のために選択されても良い。現在の線の端に達した時には、遅い走査方向における次の線が選択されても良い。よって、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅ＝４であってｘ＿ｐｏｓｉｔｉｏｎ及びｙ＿ｐｏｓｉｔｉｏｎが現在のピクセルに対応する現在の線の現在の位置を示している場合には、縮小画像の次のピクセルを生成するために、現在のピクセルと現在のピクセルの次の３つの連続するピクセルとが補間のために選択されても良く、縮小画像の次のピクセルを生成するために、ｘ＿ｐｏｓｉｔｏｎは現在の線の中の次の４つのピクセルのセットを得るためにｘ＿ｉｎｃｒｅｍｅｎｔによってインクリメントされる。現在の線の端に達した時に、ｙ＿ｐｏｓｉｔｉｏｎは、新しい現在の線のｙ次元内の位置について、ｙ＿ｉｎｃｒｅｍｅｎｔによってインクリメントされ、次の４つのピクセルのセットの位置を得るために、ｘ＿ｐｏｓｉｔｉｏｎはｘ＿ｓｔａｒｔまでリセットされる。縮小画像のすべてのピクセルが生成されるまで、このプロセスは続く。ｘ＿ｐｏｓｉｔｉｏｎとｙ＿ｐｏｓｉｔｉｏｎとの間の関係及び対応するピクセルについては、後述の図５と関連して説明する。
【００２１】
ｘ＿ｃｏｕｎｔパラメータ及びｙ＿ｃｏｕｎｔパラメータは、縮小画像内のどのピクセルが縮小画像生成装置１０４によって出力されているかを識別する。たとえば、縮小画像生成装置１０４がオリジナル画像内のピクセルをｘ次元に沿って処理すると、ｘ＿ｃｏｕｎｔが、縮小画像内で生成された各ピクセルについて１つずつインクリメントされる。オリジナル画像内の現在の線の端に達して、ｘ＿ｐｏｓｉｔｉｏｎがｘ＿ｓｔａｒｔに設定された時には、ｘ＿ｃｏｕｎｔが０等の所定の値にリセットされ、ｙ＿ｃｏｕｎｔが１つインクリメントされても良い。
【００２２】
ｌｉｎｅ＿ｗｉｄｔｈパラメータは、縮小画像を生成するために使用可能な線（ｘ次元）内の多数のピクセルを特定する。よって、ｘ＿ｓｔａｒｔパラメータ及びｙ＿ｓｔａｒｔパラメータと同様に、ｌｉｎｅ＿ｗｉｄｔｈパラメータは、縮小画像を生成するため又は単に線内の数を示すために使用されないように、オリジナル画像の一部を切り取る。残りを説明すると、ｘ＿ｐｏｓｉｔｉｏｎ、ｘ＿ｐｏｓｉｔｉｏｎパラメータ、又はｘ＿ｐｏｓｉｔｉｏｎ値は、ｘ次元内の位置を示すために同義的に使用されても良い。他のパラメータすべてについて、同様に使用される。
【００２３】
図５は、ｘ次元内に３９００のピクセル位置を、ｙ次元内に１３５０のピクセル位置を有するオリジナル画像のピクセル図を示す。左上の数字の連続に示されるように、ｘ及びｙ次元内のピクセル位置は、左から右へ及び上から下へと０から始まる番号が付されている。
【００２４】
ｘ＿ｓｔａｒｔパラメータ及びｙ＿ｓｔａｒｔパラメータは、オリジナルドキュメント内の所定の基準点から参照される。この所定の基準点は、最も左上の位置であっても良い。この位置はオリジナル画像内の最も左上のピクセルに対応していても良いが、必ずしもオリジナルスキャナグリッド上のいずれかのピクセル位置（たとえば、整数であってもよい）に対応している必要はない。さらに、ｘ＿ｓｔａｒｔパラメータ及びｙ＿ｓｔａｒｔパラメータは、隣接ピクセル間のピクセル分離距離の整数の倍数ではない値であっても良い。図５に示すように、所定の基準点３００は最も左上のピクセル位置ではなく、ｘ＿ｓｔａｒｔ及びｙ＿ｓｔａｒｔパラメータの大きさはｘ及びｙ次元内のピクセル分離距離の整数の倍数ではない。同様に、ｘ＿ｉｎｃｒｅｍｅｎｔ及びｙ＿ｉｎｃｒｅｍｅｎｔは、ｘ及びｙ次元内のピクセル分離距離の整数の倍数ではない。
【００２５】
ｘ＿ｓｔａｒｔ、ｙ＿ｓｔａｒｔ、ｘ＿ｉｎｃｒｅｍｅｎｔ、及びｙ＿ｉｎｃｒｅｍｅｎｔのパラメータは、ｘ及びｙ次元内のピクセル分離距離の整数の倍数ではない値を有するから、ｘ＿ｐｏｉｓｉｔｉｏｎパラメータ及びｙ＿ｐｏｓｉｔｉｏｎパラメータはオリジナルドキュメント内の正確な現在位置を把握するために使用されても良く、ｘ＿ｐｉｘｅｌパラメータ及びｙ＿ｐｉｘｅｌパラメータは、オリジナル画像内の現在のピクセルを識別するために使用されても良い。ｘ＿ｐｉｘｅｌは、ｘ＿ｐｉｘｅｌ＝０が線内の最も左のピクセルを識別する位置における、左から右へ数える時のピクセル数（列数）である。ｙ＿ｐｉｘｅｌは、ｙ＿ｐｉｘｅｌ＝０がオリジナル画像内の最も上の線を識別する位置における、現在の線を識別する。ｘ＿ｐｉｘｅｌパラメータは、もっとも近い整数位置に四捨五入されたｘ位置パラメータに設定される。ｘ＿ｐｏｓｉｔｉｏｎが丁度２つのピクセル位置間にある時には、ｘ＿ｐｉｘｅｌ値を得るために、その値は下方に四捨五入される。図５は、ｘ＿ｐｏｓｉｔｉｏｎがピクセル３に最も近いことを示している。よって、ｘ＿ｐｉｘｅｌ値は、３に設定される。同様に、ｙ＿ｐｉｘｅｌ値は、最も近い整数に四捨五入されたｙ＿ｐｏｓｉｔｉｏｎに設定されており、現在の線を識別する。
【００２６】
図５は、ｙ＿ｐｏｓｉｔｉｏｎ値が線４に最も近いことを示す。よって、ｙ＿ｐｉｘｅｌは４に設定される。したがって、図５に示される例については、（ｘ＝３，ｙ＝４）におけるピクセルは、縮小画像内の最初のピクセルを生成するために使用される４つのピクセルの最初である（ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅ＝４の場合）。よって、ｘ＿ｐｏｓｉｔｉｏｎ及びｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅは、縮小画像内にピクセルを生成するためにその中でピクセルが選択される近隣を定義する。近隣の境界は、上述のように定義されている。
【００２７】
図３に戻ると、位置制御装置１１４は、サムネイル画像等の縮小画像を生成するために使用されるオリジナル画像のデータ位置（たとえば、ピクセル）を識別する。補間回路１１２は、位置制御装置１１４によって識別されたデータ位置に基づいて、縮小画像の出力データ位置（たとえば、ピクセル）を生成する。縮小画像生成プロセスを開始する時には、ＣＰＵ１０６は、管理パラメータ記憶装置１１０から必要なパラメータを取り出すことと、ｘ＿ｐｏｓｉｔｉｏｎ、ｙ＿ｐｏｓｉｔｉｏｎ、ｘ＿ｐｉｘｅｌ、及びｙ＿ｐｉｘｅｌの値を維持することとを指示する。ｘ＿ｐｉｘｅｌ値及びｙ＿ｐｉｘｅｌ値は、メモリ１０８からオリジナル画像の適切なピクセル値を取り出すために使用され、ＣＰＵ１０６から指示されると、取り出されたピクセル値は補間回路１１２に与えられ、縮小画像について補間された値の生成を開始する。上述の記載ではオリジナル画像がメモリ１０８内に記憶されているが、縮小画像は、スキャナ１００の出力（色変換が必要でない場合）又は色変換装置１０２の出力から直接生成されても良い。この場合には、オリジナル画像はメモリ１０８内に記憶される必要はなく、中間値のみが一時的に記憶される必要がある。メモリは、たとえばＣＰＵ１０６内のレジスタ等の補間の合計を保持するために要求されても良い。
【００２８】
縮小画像の各ピクセルが補間回路１１２によって生成された後に、位置制御装置１１４は、ｘ＿ｉｎｃｒｅｍｅｎｔでｘ＿ｐｏｓｉｔｉｏｎをインクリメントし、ｘ＿ｐｉｘｅｌ値を更新する。縮小画像の次のピクセル値を生成するために、位置制御装置１１４は次にオリジナル画像の適切なピクセルをメモリ１０８から取り出して補間回路１１２に供給する。ｙ＿ｐｉｘｅｌ値によって識別された現在の線に対応するすべてのピクセルが使い果たされるまで又はｘ次元内の所定の数の縮小画像ピクセルに達するまでのいずれか早い方まで、このプロセスは続く。所定の数は、図４に示される表に追加された、追加の管理パラメータであるｘ＿ｃｏｕｎｔ＿ｌｉｍｉｔであっても良い。同様の理由から、対応する管理パラメータであるｙ＿ｃｏｕｎｔ＿ｌｉｍｉｔがｙ次元について追加されても良い。ここで、位置制御装置１１４は、ｙ＿ｉｎｃｒｅｍｅｎｔの値でｙ＿ｐｏｓｉｔｉｏｎをインクリメントし、縮小画像の次の線を生成するために使用されても良いオリジナル画像の次のピクセルの線を識別するｙ＿ｐｉｘｅｌ値を決定する。よって、現在の線のｘ次元内のピクセルは補間されるが、ｙ次元内のピクセルは縮小画像を生成するために省かれて捨てられる。
【００２９】
たとえば、右側又は下のマージンが縮小画像に含まれない時には、ｘ＿ｃｏｕｎｔ＿ｌｉｍｉｔ及びｙ＿ｃｏｕｎｔ＿ｌｉｍｉｔは、右側及び下側それぞれのオリジナル画像を効果的に切り取るために使用されても良い。当然のことながら、オリジナル画像寸法から縮小画像寸法への縮小比は大きくても良く、それゆえ、オリジナル画像の非常に多くの線の中で得られる情報は、このような情報を縮小画像内に表示する能力をはるかに超えていても良く、サムネイルを生成する目的が構造又は形状によってドキュメントの識別を容易にするためだけである時には特にそうである。
【００３０】
図６は、縮小画像の最初のピクセル（ｘ＿ｃｏｕｎｔが０であり、ｙ＿ｃｏｕｎｔが０である）を補間するためにオリジナル画像の線４とピクセル３〜１０（ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅが８）とが選択された場合の例を示す。位置制御装置１１４はメモリ１０８からオリジナル画像のピクセル３〜１０を取り出し、補間回路１１２は、各ピクセル３〜１０を対応する重み値で乗算し、乗算結果を合計し、合計結果をｉｎｔｅｒｐｏｌａｔｉｏｎ＿ａｖｅｒａｇｅ値に対応する値で除算することによって、対応するピクセルを縮小画像内に生成する。所望の縮小画像の品質と補間プロセスの所望の速度とに従って、乗算せずにピクセル３〜１０に対するピクセル値を補間回路１１２が単に合計するように、すべての重みが１の値に設定されても良い。この特定の例ではｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅは２の累乗（２3）であるから、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ａｖｅｒａｇｅに対応する値による除算は、たとえばＬＳＢが右側にある場合には、合計を単に３ビット右シフトすることによって容易に得られることがある。ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅが２の累乗のみに抑えられている場合には、たとえば除算プロセスを実行するために、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ａｖｅｒａｇｅ値は右シフトの数に均しい値であっても良い。このようにして、補間プロセスの速度は増やされても良く、次に、縮小画像を生成するために必要な時間を減らす。
【００３１】
図７は、現在のｘ＿ｐｏｓｉｔｉｏｎ値をｘ＿ｉｎｃｒｅｍｅｎｔ値でインクリメントすることによって次の現在のｘ＿ｐｏｓｉｔｉｏｎに更新されている、現在のｘ＿ｐｏｓｉｔｉｏｎを示す。図７はｘ＿ｉｎｃｒｅｍｅｎｔ値が５つのピクセル位置よりもわずかに大きいことを示し、その結果、次の現在のｘ＿ｐｏｓｉｔｉｏｎ値がピクセル７の位置よりわずかに大きくなる。よって、縮小画像の次のピクセルを生成するために、ｘ＿ｐｉｘｅｌ値は７に設定され、ピクセル７〜１４は位置制御装置１１４によって選択される。図７に示すように、ピクセル７〜１０は二度使用される。ピクセル３〜１０とグループ化された時に一度、ピクセル７〜１４とグループ化された時に再度、である。よって、ピクセル７〜１０は、縮小画像内に２つのピクセルを生成するために使用される。縮小画像を生成するためにピクセルが二度より多く使用される場合がないようにｘ＿ｉｎｃｒｅｍｅｎｔ値が設定されても良い。
【００３２】
図８は、ｘ＿ｐｏｓｉｔｉｏｎがピクセル１２の最も近くにあるようなｘ＿ｉｎｃｒｅｍｅｎｔ値を示す。この場合には、ピクセル１１が縮小画像内のいかなるピクセル値にも貢献しないように、ピクセル１１は省かれる。
【００３３】
図９は、ｘ＿ｐｏｓｉｔｉｏｎがｌｉｎｅ＿ｗｉｄｔｈ値に近い状況を示す。図示のように、ｘ＿ｐｏｓｉｔｉｏｎはピクセル３８９６に最も近い。しかしながら、位置制御装置１１４がｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅパラメータによって特定されたオリジナル画像の多数のピクセル、この例では８の値、を取り出そうとする時には、オリジナル画像内ではピクセル３８９６〜３８９９のみが得られる。この場合には、ピクセル３８９６〜３８９９が選択され、縮小画像のピクセルを生成するために補間回路について十分なピクセル値が存在するまで、ピクセル３８９９は複製される。最後のピクセルを複製する代わりに、位置制御装置１１４又は補間回路１１２は、最後のピクセルを単に繰り返して使用しても良い。オリジナル画像内にｌｉｎｅ＿ｗｉｄｔｈを越える十分な数のピクセルが得られるようにｌｉｎｅ＿ｗｉｄｔｈ値が設定されている場合には、複製プロセスが必要とされず、位置制御装置１１４は、補間プロセスについて、ｌｉｎｅ＿ｗｉｄｔｈを越えるオリジナル画像内のピクセルを取り出しても良い。
【００３４】
図１０は、ｘ＿ｐｏｓｉｔｉｏｎプラスｘ＿ｉｎｃｒｅｍｅｎｔがｌｉｎｅ＿ｗｉｄｔｈを越える状況を示す。この場合には、ｘ＿ｐｏｓｉｔｉｏｎはｘ＿ｓｔａｒｔまでリセットされており、ｙ＿ｐｏｓｉｔｉｏｎはｙ＿ｉｎｃｒｅｍｅｎｔでインクリメントされる。ｙ＿ｐｉｘｅｌは、ｙ＿ｐｏｓｉｔｉｏｎに最も近い位置のｙ次元値を有する線まで選択される。図示のように、線１１が選択され、縮小画像の次のピクセルを生成するために、列１１のピクセル３〜１０が位置制御装置１１４によって取り出される。上述のように、ｙ＿ｐｏｓｉｔｉｏｎ値がインクリメントされる時には、たとえば、ｘ＿ｃｏｕｎｔが０等の所定値に設定され、ｙ＿ｃｏｕｎｔは１でインクリメントされる。よって、たとえば図１０に示すように、ｘ＿ｃｏｕｎｔは０であり、ｙ＿ｃｏｕｎｔは１である。
【００３５】
ｙ＿ｃｏｕｎｔを１でインクリメントした後にｙ＿ｃｏｕｎｔがｙ＿ｃｏｕｎｔ＿ｌｉｍｉｔを越える場合には、縮小画像内の線の最大数を越える。この場合には、縮小画像生成プロセスは完了して、縮小画像が次のプロセスに出力される。縮小画像のピクセルが、生成されるとおりに出力された場合には、縮小画像生成プロセスは終了するか又は他の縮小画像を生成し始める。ｙ＿ｃｏｕｎｔ＿ｌｉｍｉｔパラメータは、任意であっても良い。使用されない場合には、オリジナル画像内の多数の線が使い果たされるまで、縮小画像生成プロセスは単に継続するだけである。
【００３６】
補間回路１１２によって生成される縮小画像についてのピクセルが最初にメモリ１０８内に記憶され、完全な縮小画像が生成された後のプロセスの次の段階まで入力／出力ポート１１６を通って出力されても良い。しかしながら、縮小画像の各プロセスが補間回路１１２によって生成されるから、システム設計によっては、縮小画像のピクセルは、入力／出力ポート１１６によって次のプロセスまで出力されても良い。
【００３７】
上述の説明では、位置制御装置１１４及び補間回路１１２等の種々のハードウェア部品によって実行される機能を記述しているが、これらの機能は、例えばＣＰＵ１０６等の適切なプロセッサ内で作動するソフトウェア内で実行可能である。このようなシステム設計においては、ソフトウェアは、縮小画像内に対応するピクセルを生成するために、オリジナル画像内のどのデータポイント（ピクセル）を補間用に使用するかを決定する。ｘ＿ｓｔａｒｔ、ｙ＿ｓｔａｒｔ、ｘ＿ｐｏｓｉｔｉｏｎ、ｙ＿ｐｏｓｉｔｉｏｎ、ｘ＿ｉｎｃｒｅｍｅｎｔ、ｙ＿ｉｎｃｒｅｍｅｎｔ、ｘ＿ｓｉｚｅ、ｙ＿ｓｉｚｅ、ｌｉｎｅ＿ｗｉｄｔｈ、ｘ＿ｃｏｕｎｔ、ｙ＿ｃｏｕｎｔ、ｘ＿ｃｏｕｎｔ＿ｌｉｍｉｔ、ｙ＿ｃｏｕｎｔ＿ｌｉｍｉｔ等の管理パラメータは、縮小画像生成プロセスを実行するためにソフトウェアによって処理される変数であっても良い。ハードウェア又はソフトウェアのいずれかによって実行されるプロセスは本質的に同一であり、次に説明されるフローチャートによって概説されても良い。
【００３８】
図１１は、縮小画像を生成するためのプロセスのフローチャートである。ステップＳ１００では、図４等に示される管理パラメータ等は、縮小画像生成を制御するために受信され、プロセスはステップＳ１０２に進む。上述のように、これらの管理パラメータはプリストアされていても良く、よって、ステップＳ１００は不要なことがある。ステップＳ１０２では、オリジナルドキュメント内の所定の基準点に対する開始点は、現在のｘ＿ｐｏｓｉｔｉｏｎの値及び現在のｙ＿ｐｏｓｉｔｉｏｎの値を、ｘ＿ｓｔａｒｔパラメータ及びｙ＿ｓｔａｒｔパラメータの値に設定することによって得られる。上述のように、現在のｘ＿ｐｏｓｉｔｉｏｎ及び現在のｙ＿ｐｏｓｉｔｉｏｎによって識別された位置にもっとも近いオリジナル画像内のピクセルは、開始ピクセルとして選択される。ｘ＿ｐｉｘｅｌパラメータ及びｙ＿ｐｉｘｅｌパラメータも、ｘ＿ｐｏｓｉｔｉｏｎ及びｙ＿ｐｏｓｉｔｉｏｎに最も近いピクセル番号及び線番号に対応して設定される。ｘ＿ｐｉｘｅｌ値及びｙ＿ｐｉｘｅｌ値は、縮小画像内に特定のピクセルを生成するために使用されるピクセルを正確に識別するために使用される。ステップＳ１０２の後で、プロセスはステップＳ１０４に進む。
【００３９】
ステップＳ１０４では、現在の線のオリジナル画像内に補間プロセスを完了するために十分な数のピクセルがあるかどうかが検証される。不十分な場合には、プロセスはステップＳ１０６に進み、さもなければプロセスはステップＳ１０８に進む。ステップＳ１０６では、補間プロセス用に十分な数のピクセルがあるまで現在の線の最後のピクセルが複製され、プロセスはステップＳ１０８に進む。上述のように、補間プロセスの間は、別の準備的なステップＳ１０８ではなく、線毎（ｌｉｎｅ−ｂｙ−ｌｉｎｅ）のベースでピクセルが複製可能である。メモリ資源が不十分な場合には、いくつかの出力線用に多数の複製されたピクセルを予め算定して記憶するのではなく、現在の線の上の最後のピクセルに頼ることが好ましいかも知れない。
【００４０】
ステップＳ１０８では、プロセスは、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅパラメータによって特定された現在の線（ｘ次元）に沿ったオリジナル画像内の多数のピクセルを選択し、補間プロセスは縮小画像のピクセルを生成する。補間プロセスは、選択された各ピクセルを対応する重みで乗算し、乗算結果を合計し、合計をｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｈｉｆｔパラメータに対応する値で除算しても良い。速度の増加については、すべての重みが１に設定されていてもよく、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅパラメータは２の乗数に設定されていても良く、選択されたピクセルの平均値を得るためにｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｈｉｆｔパラメータは多数のバインダリシフト（ｂｉｎｄｅｒｙ  ｓｈｉｆｔ）に均しくても良い。次に、プロセスはステップＳ１０９に進む。ステップＳ１０９では、次の現在のｘ＿ｐｏｓｉｔｉｏｎを得るために現在のｘ＿ｐｏｓｉｔｉｏｎはｘ＿ｉｎｃｒｅｍｅｎｎｔでインクリメントされ、プロセスはステップＳ１１０に進む。
【００４１】
ステップＳ１１０では、次の現在のｘ＿ｐｏｓｉｔｉｏｎをｌｉｎｅ＿ｗｉｄｔｈパラメータの値で比較することによって、現在の線の端に達したかが検証される。又はピクセルのｘ＿ｃｏｕｎｔがｘ＿ｃｏｕｎｔ＿ｌｉｍｉｔを越えているかが検証され、規定されている場合には、どちらが先に行なわれても良い。次の現在のｘ＿ｐｏｓｉｔｉｏｎがｌｉｎｅ＿ｗｉｄｔｈパラメータの値以下である場合には、現在の線には達しておらず、プロセスはステップＳ１０４に戻る。さもなければ、現在の線の端に達しており、プロセスはステップＳ１１２に進む。ステップＳ１１２では、縮小画像のすべてのピクセルが生成されたかが検証される。すべてのピクセルが生成された場合には、プロセスはステップＳ１１６に進み、終了する。さもなければ、プロセスはステップＳ１１４に進む。管理パラメータは、縮小画像の総数のピクセルを含んでいても良い。パラメータが与えられる場合には、生成されたピクセルの数のカウントが維持されても良く、このカウントがピクセルの必要な総数と均しい時には、ステップＳ１１２内の検証は成功し、プロセスはステップＳ１１６に進む。ステップＳ１１４では、ｘ＿ｐｏｓｉｔｉｏｎパラメータはｘ＿ｓｔａｒｔの値に設定され、ｙ＿ｐｏｓｉｔｉｏｎパラメータはｙ＿ｉｎｃｒｅｍｅｎｔの値でインクリメントされる。次に、プロセスはステップＳ１０４に戻る。
【００４２】
上述の方法は、ＹＣＣ色空間内のオリジナル画像の各色成分について行なわれる。色の値が例えば２：１の比でサブサンプルされた場合には、ｘ＿ｉｎｃｒｅｍｅｎｔ、ｙ＿ｉｎｃｒｅｍｅｎｔ、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ｓｉｚｅ、及びｌｉｎｅ＿ｗｉｄｔｈのパラメータは、対応して、それらの値の半分にまで減らされるべきであり、多数の右シフトに対応する場合には、補間合計を正規化するために、ｉｎｔｅｒｐｏｌａｔｉｏｎ＿ａｖｅｒａｇｅパラメータは、１つ減らされるべきである。
【００４３】
本発明を例示的な実施の形態と共に説明してきたが、これらの実施の形態は説明のためだけに見るべきであり、制限するものではない。本発明の精神及び範囲内で種々の変更、代替物等が可能である。特に、三次元画像等二次元よりも多い範囲に及ぶ画像については、ｚ次元の一部内のｘ−ｙ画像面は捨てられてもよく、よって、処理のために残りのｘ−ｙ画像面を選択する。選択されたｘ−ｙ面の各々の中のｘ＿ｓｉｚｅ  ｂｙ  ｙ＿ｓｉｚｅブロックは、選択された各ブロックを平均化することによって処理されても良く、又は、縮小画像のデータポイントを生成するために種々の他の二次元補間プロセスが使用されても良い。
【００４４】
さらに、ｘ＿，ｙ＿ｓｔａｒｔ、ｘ＿，ｙ＿ｐｏｓｉｔｉｏｎ、ｘ＿，ｙ＿ｉｎｃｒｅｍｅｎｔのパラメータがオリジナルドキュメント内の所定の基準点に対応する値を有するとして説明したが、左上のピクセルが所定の基準点である場合には、これらのパラメータはピクセルによって単に位置を特定しても良い。この場合には、ｘ＿，ｙ＿ｓｔａｒｔはｘ及びｙ次元内のピクセルの数であっても良く、ｘ＿，ｙ＿ｉｎｃｒｅｍｅｎｔはｘ及びｙ次元内のピクセル総数であっても良い。ｘ＿ｐｏｓｉｔｉｏｎ及びｙ＿ｐｏｓｉｔｉｏｎは、ｘ＿ｐｉｘｅｌ及びｙ＿ｐｉｘｅｌと同じであっても良い。
【図面の簡単な説明】
【００４５】
【図１】縮小画像まで縮小されたオリジナルドキュメントの図を示す。
【図２】縮小画像生成装置が動作可能な例示的なシステム図を示す。
【図３】図２に示される縮小画像生成装置の例示的なシステム図を示す。
【図４】縮小画像生成装置を管理するための例示的なパラメータの表を示す。
【図５】１つのドキュメントシート上に印刷された情報用の例示的な二次元ピクセルの図を示す。
【図６】図５のピクセルの図の線４と、縮小画像の第１のピクセルを生成するために選択された例示的なピクセルとを示す。
【図７】縮小画像の第２のピクセルを生成するために選択された例示的なピクセルを示す。
【図８】ピクセルを捨てる例示的なピクセル選択を示す。
【図９】オリジナル画像の線の最後のピクセルを複製することを要求するピクセル選択を示す。
【図１０】図５のピクセル図のｙ次元内の情報を捨てるための例示的なプロセスを示す。
【図１１】縮小画像を生成するための方法を示す。
【図１】
2005228332.tif 000003
【図２】
2005228332.tif 000004
【図３】
2005228332.tif 000005
【図４】
2005228332.tif 000006
【図５】
2005228332.tif 000007
【図６】
2005228332.tif 000008
【図７】
2005228332.tif 000009
【図８】
2005228332.tif 000010
【図９】
2005228332.tif 000011
【図１０】
2005228332.tif 000012
【図１１】
2005228332.tif 000013