(57)【要約】【課題】ＳＩＭＤ処理をサポートするＤＳＰによってもたらされる処理能力をさらに活用できる、ハーフトーン化処理を最適化するシステムおよび方法を提供する。【解決手段】第１データ幅を有する第１ハーフトーンパターンを、第２データ幅を利用するＳＩＭＤ可能なプロセッサを用いて、画像データにハーフトーン化処理２４０を実行するための方法を提供する。ここで、第２データ幅は前記第１データ幅の整数倍ではない。いくつかの実施形態では、当該方法は、反復して操作でき、第１ハーフトーンパターン内の開始位置に基づいて、反復のためのハーフトーンパターンを生成するステップからなる。ここで、生成されたハーフトーンパターンは、第２データ幅を有してもよい。画像データは、消費し尽くされるまで、または画像データがプロセッサ内のレジスタの全幅を占めるまで、反復して取り込まれる。そして、ハーフトーン計算処理が、生成されたハーフトーンパターンを使用して、画像データについて実行される。【選択図】図２
2010088115.tif 000002
【特許請求の範囲】
【請求項１】
第１データ幅を有する第１ハーフトーンパターンを、第２データ幅を利用するＳＩＭＤ可能なプロセッサを用いて、画像データにハーフトーン化処理を実行するための方法であって、当該方法は少なくとも一回の反復を含み、前記第２データ幅は前記第１データ幅の整数倍ではなく、
前記方法は、
前記第１ハーフトーンパターン内の開始位置に基づいて、前記第２データ幅を有する、前記反復のためのハーフトーンパターンを生成するステップと、
前記画像データが処理し尽くされるまで、または、画像データ幅が前記第２データ幅に等しくなるまで、前記プロセッサ内のレジスタへ少なくとも一回の反復のために前記画像データを取り込むステップと、
前記生成されたハーフトーンパターンを使用して前記画像データについてハーフトーン計算処理を実行するステップと、
を含むハーフトーン化処理実行方法。
【請求項２】
前記第１ハーフトーンパターンの開始位置に基づいて前記反復のためにハーフトーンパターンを生成するするステップは、
前記第２ハーフトーンパターンを得るために、Ｒビットだけ前記第１ハーフトーンパターンをローテーションするステップと、ここで、前記Ｒは前記ローテーションのための前記第１ハーフトーンパターン内の開始位置のビット箇所であり、
前記第２データ幅以上の、連結されたパターンを得るために、前記第２ハーフトーンパターンを繰り返し連結するステップと、
結果生成されるパターンが前記第２データ幅を有するように、前記連結されたパターンのいかなる終端部も切り落とすステップと、
をさらに含む、請求項１に記載のハーフトーン化処理実行方法。
【請求項３】
前記方法は、プリンタへ接続されるデジタルシグナルプロッセサを使用して実行される、請求項１または２に記載のハーフトーン化処理実行方法。
【請求項４】
前記ハーフトーン化処理は、しきい値ハーフトーン化を含む、請求項１〜３のいずれか一項に記載のハーフトーン化処理実行方法。
【請求項５】
テーブル内の前記第１ハーフトーンパターンの個別の開始位置に対応する、個別の前記生成されたハーフトーンパターンを格納するステップをさらに含む、請求項２に記載のハーフトーン化処理実行方法。
【請求項６】
個別のプロッセサレジスタ内の前記第１ハーフトーンパターンの個別の開始位置に対応する、前記個別の生成されたハーフトーンパターンを格納するステップをさらに含む、請求項２に記載のハーフトーン化処理実行方法。
【請求項７】
前記方法は、少なくとも一つの全体画像に前記ハーフトーン化処理を実行するために使用される、請求項１〜６のいずれか一項に記載のハーフトーン化処理実行方法。
【請求項８】
前記テーブルは、前記プリンタ内在のメモリに格納される、請求項５に記載のハーフトーン化処理実行方法。
【請求項９】
前記方法は、
前記プリンタへ接続されたコンピュータと、
前記プリンタへ接続されたプリントコントローラと、
前記プリンタと、
の一つ以上を使用して実行される、請求項１〜８に記載のハーフトーン化処理実行方法。
【請求項１０】
第１データ幅を有する第１ハーフトーンパターンを、第２データ幅を利用するＳＩＭＤ可能なプロセッサに用いて、画像データにハーフトーン化処理を実行させるための方法におけるプロセスをプロセッサにより実行させるためのコンピュータプログラムであって、当該方法は少なくとも１回の反復を含み、前記第２データ幅は前記第１データ幅の整数倍ではなく、
前記プロセスは、
前記第１ハーフトーンパターン内の開始位置に基づいて、前記第２データ幅を有する、前記反復のためのハーフトーンパターンを生成するステップと、
前記画像データが処理し尽くされるまで、または、画像データ幅が前記第２データ幅に等しくなるまで、前記プロセッサ内のレジスタへ少なくとも一回の前記反復のために前記画像データを取り込むステップと、
前記生成されたハーフトーンパターンを使用して前記画像データについてハーフトーン計算処理を実行するステップと、
を含む、コンピュータプログラム。
【請求項１１】
前記第１ハーフトーンパターンの開始位置に基づいて前記反復のためにハーフトーンパターンを生成するするステップは、
前記第２ハーフトーンパターンを得るために、Ｒビットだけ前記第１ハーフトーンパターンをローテーションするステップと、ここで、前記Ｒは前記反復のための前記第１ハーフトーンパターン内の開始位置のビット箇所であり、
前記第２データ幅以上の、連結されたパターンを得るために、前記第２ハーフトーンパターンを繰り返し連結するステップと、
結果生成されるパターンが前記第２データ幅を有するように、前記連結されたパターンのいかなる終端部も切り落とすステップと、
をさらに含む、請求項１０に記載のコンピュータプログラム。
【請求項１２】
前記方法は、プリンタへ接続されるデジタルシグナルプロッセサを使用して実行される、請求項１０または１１に記載のコンピュータプログラム。
【請求項１３】
テーブル内の前記第１ハーフトーンパターンの個別の開始位置に対応する、個別の前記生成されたハーフトーンパターンを格納するステップをさらに含む、請求項１１に記載のコンピュータプログラム。
【請求項１４】
個別のプロッセサレジスタ内の前記第１ハーフトーンパターンの個別の開始位置に対応する、前記個別の生成されたハーフトーンパターンを格納するステップをさらに含む、請求項１１に記載のコンピュータプログラム。
【請求項１５】
前記方法は、少なくとも一つの全体画像に前記ハーフトーン化処理を実行するために使用される、請求項１０〜１４のいずれか一項に記載のコンピュータプログラム。
【請求項１６】
プリンタへ接続されたコンピュータを有するシステムであって、前記コンピュータおよび前記プリンタは第１データ幅を有する第１ハーフトーンパターンを、第２データ幅を利用するＳＩＭＤ可能なプロセッサに用いて、画像データにハーフトーン化処理を実行するための方法におけるステップを実行し、
当該方法は少なくとも一回の反復を含み、前記第２データ幅は前記第１データ幅の整数倍ではなく、
前記方法は、
前記第１ハーフトーンパターン内の開始位置に基づいて、前記第２データ幅を有する、前記反復のためのハーフトーンパターンを生成するステップと、
前記画像データが処理し尽くされるまで、または、画像データ幅が前記第２データ幅に等しくなるまで、前記プロセッサ内のレジスタへ少なくとも一回の反復のために前記画像データを取り込むステップと、
前記生成されたハーフトーンパターンを使用して前記画像データについてハーフトーン計算処理を実行するステップと、
を含むシステム。
【請求項１７】
前記第１ハーフトーンパターンの開始位置に基づいて前記反復のためにハーフトーンパターンを生成するするステップは、
前記第２ハーフトーンパターンを得るために、Ｒビットだけ前記第１ハーフトーンパターンをローテーションするステップと、ここで、前記Ｒは前記反復のための前記第１ハーフトーンパターン内の開始位置のビット箇所であり、
前記第２データ幅以上の、連結されたパターンを得るために、前記第２ハーフトーンパターンを繰り返し連結するステップと、
結果生成されるパターンが前記第２データ幅を有するように、前記連結されたパターンのいかなる終端部も切り落とすステップと、
をさらに含む、請求項１６に記載のシステム。
【請求項１８】
テーブル内の前記第１ハーフトーンパターンの個別の開始位置に対応する、個別の前記生成されたハーフトーンパターンを格納するステップをさらに含む、請求項１７に記載のシステム。
【請求項１９】
個別のプロッセサレジスタ内の前記第１ハーフトーンパターンの個別の開始位置に対応する、前記個別の生成されたハーフトーンパターンを格納するステップをさらに含む、請求項１７に記載のシステム。
【請求項２０】
前記方法は、少なくとも一つの全体画像に前記ハーフトーン化処理を実行するために使用される、請求項１６〜１９のいずれか一項に記載のシステム。
【請求項２１】
請求項１０〜１５のいずれか一項のコンピュータプログラムを格納する、コンピュータ読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷分野、より詳細には、効率的なハーフトーンスクリーン生成のためのシステムおよび方法に関する。
【背景技術】
【０００２】
ハーフトーンスクリーンは、印刷時の、色調変化を伴う画像へ適用される様々なサイズのドットパターン、または、カラー画像へ適用される等しいサイズのドットからなる。デジタルハーフトーン化は、一般的に、ハーフトーンセル内のドット発生の頻度を変化させる一方、空間的に周期性のある、一定サイズのドットを使用する。プリンタにはグレーインクがないので、プリンタは色調変化を伴う白黒画像を近似するために、意図的に間隔をもって置かれた黒いドットの集まりを使用しなくてはならない。遠くから見ると、ハーフトーンは人間の目には、連続して色調された画像として見える。人間の目は、ハーフトーンセル内の情報を平均化し、セル内のインクのついた領域とインクの付けられていない領域の割合として近似される、はっきりとした「グレーレベル」を視覚にとらえる。人間の目はまた、画像が連続した色調画像であるかのような幻想を作り出すように、等しい間隔をもって置かれる隣接セル間の「グレーレベル」の移行を平均化する。
【０００３】
最新のプリンタでは、ハーフトーンセルのサイズは、ハーフトーンスクリーンの解像度（しばしば、１インチあたりのドットライン数または「ｌｐｉ」と表現される）と、プリンタの最大解像度（しばしば、１インチあたりのドット数または「ｄｐｉ」と表現される）とのトレードオフとなる。
【０００４】
ハーフトーンセルはいくつかのレーザープリンタのドットの数からなるので、より多くのハーフトーンセルを使用することによって、セル内の色調変化のよりスムーズな表現を可能とするが、セル間でより粗い遷移をもたらす。反対に、ハーフトーンセルがより小さいサイズである場合、セル内の色調変化の表現が限られるが、セル間の遷移はそれほど粗くない。たとえば、最大解像度６００ｄｐｉのプリンタで６０ｌｐｉのハーフトーン解像度が選択された場合、それぞれのハーフトーンセルは、６００／６０＝１０ｄｐｉの最大解像度を持つ。ハーフトーングリッドは１０×１０または１００レーザープリンタドットにより、白黒画像のグレースケール値の１００通りの表現を可能とする。カラー画像では、ハーフトーン化はそれぞれのカラープレーンに対して実行され、上記ハーフトーングリッドは、それぞれのプレーンについて１００通りの異なる色調変化の表現を可能とする。
【０００５】
一般的に、最近のプリンタではハーフトーン化は、より低い解像度の画像を得るために、ハーフトーンパターンまたはスクリーンをより高い解像度画像へ繰り返し適用することによって実行される。多くのプリンタにおいて、ハーフトーン化は、デジタルシグナルプロセッサ（「ＤＳＰ」）の処理能力という利点を享受している。多くの最近のＤＳＰは、単一命令複数データ（「ＳＩＭＤ」）タイプの並列処理をサポートする。ＳＩＭＤ並列処理では、単一命令が複数のデータストリームに対して動作する。たとえば、比較動作は、単一命令サイクル内の４つの異なるデータ演算子に対して実行され、４つの結果を同時に生成する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
同じハーフトーンパターンが、メモリ内の画像の異なる区域へ繰り返し適用されるので、ハーフトーン化はＳＩＭＤ並列処理に適している。しかし、ハーフトーンセルのサイズは、ＤＳＰによってサポートされるデータサイズへ対応しない可能性もあるので、ＤＳＰを有する処理装置の使用は最適とはいえない。ＤＳＰのデータ幅とは、単一命令サイクルでＤＳＰによって処理され得る、最大データサイズである。一般的には、ＤＳＰのデータ幅は２の乗数であり、ＤＳＰによっては、データ幅は４バイトから２５６バイトにわたる。
【０００７】
たとえば、それぞれのピクセルが１バイト長ある１０×１０ハーフトーンセルの、１２８ビット（１６バイト）データ幅を有するＳＩＭＤ  ＤＳＰのＤＳＰ処理の実行は、論理的には並列してなされる。しかし、上記例のような、ハーフトーンセルのサイズによって通常構成される処理は、１０ピクセルのみがパラレルに処理される。しかし、そのような分配は、それぞれのセルの処理の間、１６バイト中６バイトが使用されないこととなり、プリンタのパフォーマンスに影響し得る、最適でないＤＳＰ使用となる。したがって、ＳＩＭＤ処理をサポートするＤＳＰによってもたらされる処理能力をさらに活用できる、ハーフトーン化処理を最適化するシステムおよび方法の必要性がある。
【課題を解決するための手段】
【０００８】
開示される実施形態と整合して、第１データ幅にある第１ハーフトーンパターンを使用して、第２データ幅を利用するＳＩＭＤ可能なプロセッサによって、画像データについてハーフトーン化処理を実行するためのシステム、方法、および装置が提供される。ここで、第２データ幅は、第１データ幅の整数倍ではない。いくつかの実施形態では、この方法は反復して操作でき、第１ハーフトーンパターン内の開始位置に基づいて、反復のためのハーフトーンパターンを生成するステップを含む。ここで、生成されたハーフトーンパターンは、第２データ幅にあってもよい。画像データは、処理し尽くされるまで、または画像データがプロセッサ内のレジスタの全幅を占めるまで、反復して取り込まれる。そして、ハーフトーン計算処理が、生成されたハーフトーンパターンを使用して、画像データについて実行される。
【０００９】
開示される実施形態はまた、コンピュータ読取り可能な媒体およびメモリにコーディングされるプログラムに関する。これらおよびその他の実施形態は、さらに次の図を参照して説明される。
【図面の簡単な説明】
【００１０】
【図１】図１は、ハーフトーン化のための、例示的なシステムのブロック図を示す。
【図２】図２は、プリントファイルを処理するための、例示的な処理フローの一部を示す。
【図３Ａ】図３Ａは、例示的なハーフトーンルックアップテーブルを使用する、ピクセルデータ値の例示的な２ビットハーフトーンエンコーディングを示す。
【図３Ｂ】図３Ｂは、例示的な８ビットピクセル値を２ビットハーフトーンへコード化されたデータへ変換する、例示的な方法を示す。
【図４】図４は、ＳＩＭＤ処理のために区分化され得る１２８ビットデータ幅を持つ、例示的なＤＳＰ１７９またはＣＰＵ１７６内の一レジスタを示す。
【図５】図５は、例示的なハーフトーンエンコーディングのための、ＳＩＭＤ処理を使用する従来システムにおけるデータフローを示すブロック図である。
【図６Ａ】図６Ａは、開示される実施形態と整合性のあるＳＩＭＤ処理のために設定されたＤＳＰ１７９内において、複数回の反復のための例示的なハーフトーンパターン分布を示す。
【図６Ｂ】図６Ｂは、ハーフトーンスクリーン幅Ｍ＝３に対応する、ＤＳＰ１７９データ幅Ｂ＝１６、画像幅Ｗ＝５０、ハーフトーンスクリーンサイズ３×３であるハーフトーンパターン分布のその他の例を示す。
【図７】図７は、開示される実施形態と整合性のある、画像の一行に対してハーフトーン化するための、例示的な方法のフローチャートを示す。
【発明を実施するための形態】
【００１１】
開示される実施形態と整合して、ＳＩＭＤ可能なプロセッサ上で画像データにハーフトーン化処理を実行するためのシステム、方法、および装置が提供される。
【００１２】
図１は、ハーフトーン化のための、システムの例示的なブロック図を示す。開示される実施形態と整合性のあるコンピュータソフトウェアアプリケーションは、図１に示されるシステムのように、一つ以上のコンピュータまたはプリンタに実装される。このようなシステムは、従来の通信プロトコルおよび／またはデータポートインターフェースを使用して情報交換を可能とする通信リンクを介して接続される。
【００１３】
図１に示されるように、例示的なシステム１００は、計算装置１１０、ネットワーク１４０、プリンタ１７０を含む。さらに、計算装置１１０およびプリンタ１７０は、一例としてインターネットのような、ネットワーク１４０を使用して通信する。計算装置１１０は、コンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、または、ネットワークでつながれた環境で使用され得るその他の計算装置である。プリンタ１７０は、計算装置１１０およびその他の装置（図示せず）へも接続可能なプラットフォームである。計算装置１１０およびプリンタ１７０は、プリンタ１７０上で実行される処理操作の制御および設定を可能とするソフトウェア（図示せず）を実行することができる。
【００１４】
計算装置１１０および／またはプリンタ１７０は、着脱式メディアドライブ１５０を含む。着脱式メディアドライブ１５０は、たとえば、ポータブルハードドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ  ＲＯＭドライブ、ＣＤ±ＲＷ、または、ＤＶＤ±ＲＷドライブ、ＵＳＢフラッシュドライブ、メモリスティック、フロッピードライブ、および／または開示される実施形態と整合性のある、その他のいかなる着脱式メディアドライブも含む。ソフトウェアアプリケーションの一部は着脱式メディア上にあり、着脱式メディアドライブ１５０を使用して、計算装置１１０またはプリンタ１７０によって、読み取られ実行される。いくつかの実施形態では、アプリケーションによって生成された結果または記録は、着脱式メディア上にも保存される。
【００１５】
接続１２０は、計算装置１１０およびプリンタ１７０を接続し、従来の通信プロトコルおよび／またはデータポートインターフェースを使用する、有線または無線通信として実装される。一般的に、接続１２０は、装置間のデータ転送を可能とする、いかなる通信チャネルでもよい。一実施形態では、たとえば、装置は、適切な接続１２０を介するデータ転送のためのＵＳＢ，ＳＣＳＩ、ＦＩＲＥＷＩＲＥ、シリアルおよび／またはパラレルポートのような、従来のデータポートによって提供される。通信リンクは、無線または有線リンク、または、計算装置１１０およびプリンタ１７０間の通信を可能とする、いかなる組合せでもよい。
【００１６】
ネットワーク１４０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、または、インターネットを含んでもよい。例示的なプリンタ１７０はネットワークプリンタであり、ネットワーク１４０に接続され得る。いくつかの実施形態では、例示的なプリンタ１７０のような印刷装置１１０は、ローカルまたは専用プリンタであり、計算装置１１０および／またはその他の周辺機器（図示せず）へ直接接続される。例示的なプリンタ１７０のような印刷装置はまた、図１に示されるように、着脱式メディアドライブ１５０を有する。システム１００は、開示される実施形態と整合して、複数の印刷装置およびその他の周辺機器（図示せず）を含んでもよい。
【００１７】
プリンタ１７０は、ハードウェア、ファームウェア、ソフトウェア、または、それらのいくつかの組合せによって制御される。印刷装置１７０は、プリントコントローラ１７５内のメモリ装置にあるファームウェアまたはソフトウェアによって制御される。一般的に、プリントコントローラ１７５は、内的または外的プリンタ１７０である。いくつかの実施形態では、プリンタ１７０はまた、計算装置１１０上で稼動するプリンタドライバのようなソフトウェアによって、一部制御される。
【００１８】
例示的プリンタ１７０は、中央処理装置（「ＣＰＵ」）１７６、ＤＳＰ１７９、ファームウェア１７１、メモリ１７２、入出力ポート１７５、プリントエンジン１７７、着脱式メディアドライブ１５０、および、二次記憶装置１７３を接続する、バス１７４を含む。例示的なプリンタ１７０はまた、文書を印刷または処理するアプリケーションの一部を実行することができる、アプリケーション特定回路（ＡＳＩＣｓ）、および／またはフィールドプログラマブルゲートアレイ（ＦＰＧＡｓ）１７８を含む。例示的なプリンタ１７０はまた、Ｉ／Ｏポート１７５および接続１２０を使用する計算装置１１０内の二次記憶、または、その他のメモリへアクセスできる。いくつかの実施形態では、プリンタ１７０はまた、プリンタオペレーティングシステムおよびその他の適切なアプリケーションソフトウェアを含むソフトウェアを実行できる。例示的なプリンタ１７０は、その他のオプションのうち、ペーパーサイズ、出力トレイ、カラー選別、およびプリンタ解像度等をユーザによって設定可能とする。
【００１９】
例示的なＣＰＵ１７６は、汎用プロセッサ、特別仕様のプロセッサ、または、組み込まれたプロセッサである。ＣＰＵ１７６は、メモリ１７２および／またはファームウェア１７１を有する、制御情報および命令を含むデータを交換できる。いくつかの実施形態では、ＣＰＵ１７６は、ＳＩＭＤタイプの命令をサポートし、ハーフトーン化のためのアルゴリズムのようなＳＩＭＤ処理を使用するアルゴリズムを実行することができる。たとえば、コンピュータ１１０上で稼動するプリンタドライバは、開示する実施形態と整合性のある方法で、ハーフトーン化処理を実行するための、コンピュータ１１０上のＣＰＵによってサポートされるＳＩＭＤ命令を使用する。
【００２０】
ＤＳＰ１７９はＣＰＵ１７６へ接続され、ＣＰＵ１７６制御下で動作する。一実施形態では、ＣＰＵ１７６は、実行される処理のタイプ、および、メモリ１７２内のデータの位置および境界をＤＳＰ１７９へ示す。ＤＳＰ１７９はデータをフェッチし、要求される処理を実行し、メモリ領域に結果を保存し、そして、結果の位置をＣＰＵ１７６へ示す。いくつかの実施形態では、ＤＳＰ１７９は、ＣＰＵ１７６へ直接結果を送信する。いくつかの実施形態では、ＤＳＰ１７９は、データ演算対象に対して並列に処理を実行することができる。たとえば、ＤＳＰ１７９はＳＩＭＤタイプの命令をサポートし、開示される実施形態と整合性のある方法でハーフトーン化を実行する際、演算対象についてＳＩＭＤタイプ処理を実行する。いくつかの実施形態では、プリンタ１７０はより多くのまたはより少ない要素を含むことができ、開示されるシステムおよび方法は適宜変更され得る。たとえば、ＤＳＰ１７９がない場合、ＣＰＵ１７６がＳＩＭＤタイプの命令を使用するハーフトーン化を実行する。いくつかの実施形態では、コンピュータ１１０上のＣＰＵは、ＳＩＭＤタイプ命令をサポートし、並列でハーフトーン化処理を実行するようにも使用される。
【００２１】
メモリ１７２は、ＳＤＲＡＭまたはＲＤＲＡＭのような、しかしこれに限られない、どのようなタイプのダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）でもよい。ファームウェア１７１は、立ち上げシーケンスや、画像処理、トラッピング、文書処理およびその他のコードを含む事前に定義されたルーチン命令を含むがこれに限られない、命令およびデータを保持する。いくつかの実施形態では、ファームウェア１７１内のコードおよびデータは、ＣＰＵ１７６によって動作される前に、メモリ１７２へコピーされる。ファームウェア１７１でのルーチンは、リストを表示するために計算装置１１０から受信されるページ記述を翻訳するコードを含む。いくつかの実施形態では、ファームウェア１７１は、表示リスト中の表示コマンドを適切なラスタライズされたビットマップへ変換し、当該ビットマップをメモリ１７２へ保存するというラスタライズルーチンを含む。ファームウェア１７１はまた、圧縮、トラッピング、および、メモリ管理ルーチンを含む。ファームウェア１７１内のデータおよび命令は、一つ以上のコンピュータ１１０、ネットワーク１４０、プリンタ１７０へ接続された着脱式メディア、および／または二次記憶１７３を使用して、アップグレード可能である。
【００２２】
例示的なＣＰＵ１７６は、命令およびデータを受けて動作し、プリント文書を生成するために、ＡＳＩＣ／ＦＰＧＡ１７８およびプリントエンジン１７７へ制御およびデータを提供する。ＡＳＩＣ／ＦＰＧＡ１７８はまた、プリントエンジン１７７へ制御およびデータを提供する。ＤＳＰ１７９および／またはＦＰＧＡ／ＡＳＩＣ１７８はまた、一つ以上の翻訳、トラッピング、圧縮、ラスタライズアルゴリズムの一部を実行する。
【００２３】
例示的な二次記憶１７３は、内的または外的ハードディスク、メモリスティック、あるいはシステム２００によって使用され得るその他いかなるメモリ記憶装置であってもよい。いくつかの実施形態では、表示リストは一つ以上のプリンタ１７０、計算装置１１０、およびサーバ１３０にあり、どこで文書処理が発生するかによって、それらの間で転送される。表示リストを保存するメモリは専用メモリであるか、または、汎用メモリの一部を形成するか、それらの組合せでもよい。いくつかの実施形態では、表示リストを保持するメモリは、必要に応じてダイナミックに割り当て、管理、開放される。プリンタ１７０は、中間印刷データを印刷可能な最終データ形式へ変換し、この最終形式に従って印刷する。
【００２４】
図２は、プリントファイルを処理するための、例示的な処理フロー２００を示す。図２に示されるように、例示的なアプリケーション２１０によって生成されるプリンタファイルは、対象検知モジュール２２０によって処理される。例示的なアプリケーション２１０は、Ｗｏｒｄ、Ａｄｏｂｅ  Ａｃｒｏｂａｔのような文書処理アプリケーションか、またはその他の印刷可能な出力を生成できるいかなるアプリケーションでもよい。プリンタファイルは、画像データ、グラフィックスデータ、テキストデータを含む、複数対象ファイルでもよい。例示的な計算装置１１０は、文書データを第１印刷データへ変換する。いくつかの実施形態では、第１印刷データは、文書のＰＤＬ記述に相当する。それから、第１印刷データは、中間印刷データへの変換のために、プリンタ１７０へ送信され得る。
【００２５】
いくつかの実施形態では、文書のＰＤＬ記述から、より低いレベルのプリンタ特有コマンド列を有する最終印刷データへの変換処理は、対象の表示リストを有する中間印刷データの生成を含む。表示リストは、一つ以上のテキスト、グラフィックス、および画像データ対象を保持し、表示リスト内の一つ以上のデータ対象タイプは、ユーザ文書内の対象へ相当する。中間印刷データの生成に寄与する表示リストは、メモリ１７２か二次記憶１７３に保存される。対象検出モジュール２２０は、画像レンダーモジュール２３０によって受信される、コマンドレベルのコードを生成する。
【００２６】
いくつかの実施形態では、例示的な画像レンダーモジュール２３０は、ハーフトーン２４０を使用して第２サイズのコード化されたデータへ変換される、第１サイズのピクセルデータを生成する。たとえば、しきい値ハーフトーンルックアップテーブルが、ハーフトーン化を実行し、８ビットピクセルデータを４ビットへ減少するように使用される。ハーフトーン化２４０は、連続的に色調変化された画像を、意図的に配置されたドットの連続を使用することによってレンダーされた画像へ変換するために使用される。光またはカラーの階調をシミュレートするために、あるセルサイズごとのドット、１インチごとのドット（「ｄｐｉ」）の相対濃度が変えられる。高濃度のドットは、より暗い画像部分を生成する。
【００２７】
標準的なハーフトーン化技術は、画像ファイルサイズを減少することができるが、印刷画質の低下にもつながる。たとえば、８ビットピクセルは、４ビットにコード化されたハーフトーンデータへ変換される。４ビットが１６個の値を表す一方、８ビットは２５６個の値を表す。したがって、８ビットデータを４ビットデータへ変換する一つの仕組みは、０〜１５，１６〜３１，３２〜４７，・・・，２２６〜２３９，２４０〜２５５のように、８ビットデータを１６値域へ量子化することである。それぞれの１６値域は、４ビット空間では、０から１５までの個別の値を割り当てられる。ピクセルの８ビット値の値域が一度決定されると、ピクセルは、その値域に対応する４ビット値が割り当てられる。その他様々なハーフトーン化の方法がよく知られており、開示される実施形態は、当業者によって明らかな、適切な変更によって、それらの方法へ適用される。
【００２８】
一つのハーフトーン化方法は、しきい値ハーフトーンルックアップテーブル内の対応する数値郡と、ピクセル値とを比較する方法である。たとえば、８ビットピクセルデータは、新たな４ビット値を複数のしきい値と比較し、結果を４ビットの２進数へ変換することによって、その４ビット値を引き継ぐ。いくつかの実施形態では、２分探索アルゴリズムおよびその他よく知られる技術が、比較回数を抑えるために使用される。ハーフトーン変換は、ピクセル毎のビットサイズを減少することによってデータファイルのサイズを減少し、所望の画像を印刷するプリンタ１７０によって使用可能なコード化されたプリンタファイルを生成する。
【００２９】
いくつかの実施形態では、コード化されたデータは、下流モジュールおよび／またはプロセス２５０への付加処理のために出力される。たとえば、一実施形態では、処理が計算装置１１０内のＣＰＵで稼動するプリンタドライバを使用して実行される場合、データは、プリンタ１７０へ送信される前に圧縮される。その他の実施形態では、処理がプリンタ上で実行される場合、それは、プリンタエンジン１７７を使用する印刷媒体上に印刷される前に、トラッピングのような付加処理のために送信される。
【００３０】
図３Ａは、例示的なハーフトーンルックアップテーブルを使用する、ピクセルデータ値の例示的な２ビットハーフトーンエンコーディングを示す。図３Ａに示されるように、３つの例示的な８ビット入力ピクセルＩｘ，１３１０、Ｉｘ，２３１２、および、Ｉｘ，３３１４は、１２０、１５０、および７８の値をそれぞれ持つ。例示的な従来の２ビットしきい値ハーフトーンルックアップテーブル３２０は、それぞれのピクセルについて３つのしきい値を含む。図３Ａに示される例では、Ｉｘ，１３１０についての３つのしきい値Ｈｘ，ｙ，３、Ｈｘ，ｙ，２、およびＨｘ，ｙ，１は、それぞれ１８０、１００、８０となる。しきい値は、８ビットピクセルＩｘ，１を２ビットへ変換するために使用される。
【００３１】
図３Ｂは、例示的な８ビットピクセル値を２ビットハーフトーンへコード化されたデータへ変換する、例示的な方法を示す。いくつかの実施形態では、図３Ｂに示されるプロセスは、それぞれのピクセルＩｘ，ｙへ適用される。プロセスは、以下にピクセルＩｘ，１３１０、Ｉｘ，２３１２、およびＩｘ，３３１４について記載される。ステップ３６０では、Ｉｘ，ｙがＨｘ，ｙ，３より大きい場合、結果の２ビットにコード化された値は３、または、［１１］２となる。Ｉｘ，ｙがＨｘ，ｙ，３より大きくない場合、ピクセル値は、ステップ３６５でＨｘ，ｙ，２と比較される。Ｉｘ，ｙがＨｘ，ｙ，２より大きい場合、コード化された値は２、または、［１０］２に設定される。ピクセル値Ｉｘ，ｙがＨｘ，ｙ，２より大きくない場合、ピクセル値は、ステップ３７０でＨｘ，ｙ，１と比較される。Ｉｘ，ｙがＨｘ，ｙ，１より大きい場合、コード化された値は１、または、［０１］２となる。ステップ３５０では、Ｉｘ，ｙは３つ全てのしきい値より小さいと決定され、結果としてコード化された２ビット値は０、または、［００］２となる。上記プロセスはまた、Ｉｘ，１３１０、Ｉｘ，２３１２、およびＩｘ，３３１４へ適用される。したがって、値１２０を持つＩｘ，１３１０は、値１００を持つＨｘ，ｙ，２より大きい。ゆえに、Ｉｘ，１３１０は、２または［１０］２とコード化される。同様に、比較処理は、ピクセルＩｘ，２３１２については３または［１１］２、ピクセルＩｘ，３３１４については１または［０１］２というコード化された値を生成する。
【００３２】
上記のプロセスは、ＣＰＵ１７６またはＤＳＰ１７９においてＳＩＭＤタイプの処理を使用することによって、並列に実行されることに注意すべきである。ＣＰＵ１７６またはＤＳＰ１７９のデータ幅は、複数の演算対象が並列に比較されるように区分化されている。
【００３３】
図４は、ＳＩＭＤ処理用に区分化され得る１２８ビットデータ幅を持つ、例示的なＤＳＰ１７９またはＣＰＵ１７６内の一レジスタ４００を示す。図４に示されるように、レジスタ４１０が区分化されていない場合、レジスタ４００は、１２８ビットデータ幅を持つ一つの演算対象を保持することができる。６４ビットの演算対象が見つかった場合、レジスタは２つのサブレジスタ４２０へ区分化され、それぞれが一つの６４ビット演算対象を保持し、処理は２つの演算対象に対して並列して実行される。同様に、図４に示される通り、４つの３２ビット演算対象、８つの１６ビット演算対象、および、１６個の８ビット演算対象について処理できるように、レジスタ４００は、それぞれ、４つのサブレジスタ４３０、８つのサブレジスタ４４０、および、１６個のサブレジスタ４５０へ、それぞれ区分化される。
【００３４】
図５は、例示的なハーフトーンエンコーディングのための、ＳＩＭＤ処理を使用する従来システムにおけるデータフローを示すブロック図である。図５に示されるように、レジスタ４００は、１６個のサブレジスタ４５０へ分割され、それぞれはハーフトーンコード化のための８ビットピクセルを含む。図５に示されるように、ハーフトーンスクリーンは、１０ピクセル長でもよい。したがって、サブレジスタ４５０−１内のそれぞれのピクセルＩｘ，ｙ［０］からＩｘ，ｙ［９］は、サブレジスタ４５０−２内の対応するしきい値Ｈｘ，ｙ，１［０］からＨｘ，ｙ，１［９］と、命令タイプの一プロセッササイクル内に同時に比較される。そして、コード化された結果は、対応する出力サブレジスタ４５０−３へ格納される。しかし、図５に示されるように、これはサブレジスタ１１から１５が使用されない結果をとなる。
【００３５】
図６Ａは、開示される実施形態と整合性のある、ＳＩＭＤ処理用に設定されたＤＳＰ１７９内において、複数回反復するための例示的なハーフトーンパターン分布６００−Ａを示す。図６Ａでは、単純化および説明する目的のみのため、それぞれのピクセルが１バイト長であると仮定する。開示されるアルゴリズムへの変更は、その他のピクセルワードサイズについて当業者には明らかであろう。図６Ａにさらに示されるように、例示的なＤＳＰ１７９のデータ幅Ｂは１６バイトであり、１０×１０ハーフトーンスクリーンに対応してハーフトーンスクリーン幅Ｍは１０バイトであり、画像幅Ｗは１００ピクセルであると仮定する。
【００３６】
図６Ａのそれぞれの行は、開示される実施形態によるハーフトーン化のためのアルゴリズムの反復中のハーフトーンパターンを含む、レジスタ４５０−２を示す。図６Ａに示されるように、それぞれのセルは、レジスタ４５０−２内のバイトに相当する。反復における反復カウンタｉの値は、左に示される。ＤＳＰ１７９レジスタまたはバッファ内の次のハーフトーンパターンの始点（または前パターンの終点）は、強調された線によって画定される。セルの上端の番号は、ハーフトーンパターン内のバイト番号を示す。たとえば、「０」は最初のバイトを示し、「９」は最後のバイトを示す。
【００３７】
ベースハーフトーンパターンは、反復０のセル０から９の内容を含む。図６Ａに示されるように、生成されたハーフトーンパターンは、ベースハーフトーンパターンから得られる。生成されたハーフトーンパターンは、レジスタ４５０−２の全幅が使用されるように、レジスタ４５０−２の全幅に亘って分布される。生成されたハーフトーンパターンは、反復のためのベースハーフトーンパターン内の開始位置を決定し、そして生成されたハーフトーンパターンを得るための開始位置を使用することによって、反復ごとに計算される。いくつかの実施形態では、反復のための生成されたハーフトーンパターンは、（ａ）ベースハーフトーンパターンの一部を開始位置から終了位置へ移し、（ｂ）ベースハーフトーンパターンを上記ステップ（ａ）で得られた部分へ繰り返し連結し、（ｃ）パターンがＤＳＰのデータ幅Ｂへはまるように、上記ステップ（ｂ）で得られた連結されたパターンの最後尾を切り落とすステップからなる。それぞれの反復のための第１セルの上端の番号は、ハーフトーンパターンのための開始（バイト）箇所を表す。
【００３８】
たとえば、反復カウンタｉ＝０である最初の反復では、バイト０から９はハーフトーンパターンを保持し、レジスタ４５０−２の次のセル（１０から１５）がハーフトーンパターンのバイト０から５を保持する。ハーフトーンパターンはレジスタの全幅を使用して継続して反復されるので、ハーフトーン値の正しい計算処理を確証するために、次の反復のためのハーフトーンパターンは適切な開始位置（バイト、ピクセル、ビット、その他）で開始するように調整され得る。よって、生成されたハーフトーンパターンは、レジスタの全幅を占め得る。計算処理中、適切なピクセル値がレジスタ４５０−１（図示せず）へ取り込まれ、ハーフトーン値は使用されるハーフトーン化方法に基づいて計算される。
【００３９】
したがって、図６Ａに示されるように、反復カウンタｉ＝１となる２回目の反復では、ハーフトーンパターンはバイト６で開始する。２回目の反復では、レジスタ４５０−２に示される１６のセルは、ハーフトーンパターンのバイト６から９を含み、ハーフトーンパターンのバイト０から９が続き、パターンのバイト０から１が順に続く。繰り返しになるが、２回目の反復のために、適切なピクセルがハーフトーン計算処理のためにレジスタ４５０−１へ取り込まれ得る。開始バイトが６である２回目の反復では、生成されたハーフトーンパターンは、（ｉ）ベースハーフトーンパターンのバイト６から９を占め、（ｉｉ）ベースハーフトーンパターンを２度上記（ｉ）のパターンへ連結し、（ｉｉｉ）生成されたパターンを得るために、連結されたパターンの最後の８バイトを切り落とすステップからなる。
【００４０】
いくつかの実施形態では、「ローテーション」処理が可能であるプロセッサにおいては、生成されたパターンは、（１）第２ハーフトーンパターンを得るために、第１ハーフトーンパターンをＲビットローテーションさせ、ここで、Ｒは反復のための第１ハーフトーンパターン内の開始位置のビット箇所を表し、（２）第２データ幅以上の連結されたパターンを得るために、第２ハーフトーンパターンを繰り返し連結し、（３）結果として生成されるパターンが第２データ幅となるように、連結されたパターンのいかなる終端部も切り落とすステップによって得られる。上記の例では、反復０（最初の反復）にはＲ＝１、そして反復１（２回目の反復）にはＲ＝４８となる。２回目の反復のための生成されたパターンはバイト６（７バイト目）で開始し、それぞれのバイトは８ビット幅であるので、ベースパターンは上記ステップ（１）においてＲ＝８×６＝４８ビットだけローテーションされ得る。
【００４１】
いくつかの実施形態では、上記記載のプロセスは、画像の各ピクセル行について繰り返される。一般的に、１ピクセル行、または幅Ｗの画像の走査線を処理するには、処理はＮ回繰り返される。ここで、Ｎは、
【００４２】
【数１】
2010088115.tif 000003
【００４３】
を満たす最小の整数であり、ＢはＤＳＰ１７９のデータ幅である。したがって、図６Ａの例では、Ｂ＝１６、Ｗ＝１００、Ｎ＝７であり、画像内の１行を処理するには７回の反復が行われる。図６Ａは、１行についてのハーフトーンパターンが反復６で終了する場合を示す。いくつかの実施形態では、次の行が、次の反復中に開始する。いくつかの実施形態では、次行のためのハーフトーンパターンが、前行の終点の直後に繰り返される。
【００４４】
さらに、それぞれの反復ｉのための開始バイトＳは、
【００４５】
【数２】
2010088115.tif 000004
【００４６】
として計算される。ここで、「ｍｏｄ」は整数除算後の余りを指し、ＢはＤＳＰ１７９のデータ幅を指す。ゆえに、ｉが１から６へ変化するに従って、対応する反復の開始バイトは、数式２を使用して計算され、ｉ＝１、２、３、４、５、および６の場合、Ｓ＝６、２、８、４、０をそれぞれ生成する。いくつかの実施形態では、数式２は、それぞれの反復のハーフトーンパターンの開始バイトＳを計算するために使用される。
【００４７】
いくつかの実施形態では、画像内の各行の処理が新たに開始する場合、新たな反復として、反復カウンタｉを０へリセットすることによって、各々の反復のための開始バイトを計算するために使用される。いくつかの実施形態では、画像内の次行のためのハーフトーンパターンは、前行の終点の直後に続き、反復カウンタｉは、画像内の全行が処理されるまで単調に増加する。そのような実施形態では、画像内の行ｋの開始点に対応するオフセットＯｋは、
【００４８】
【数３】
2010088115.tif 000005
【００４９】
として計算される。ここで、最初の行は、ｋ＝０である。Ｏｋは、新たな行の開始点に対応するレジスタ４５０−１内のピクセルを確定するのに有用である。数式３を使用することによって、図６Ａの例においてｋ＝１となる第２行は、オフセットＯ１＝（１＊１００）  ｍｏｄ  １６＝１００  ｍｏｄ  １６＝４となる。ゆえに、たとえば図６Ａでは、レジスタ４５０−１内のバイト４は、画像内の２行目の開始点のピクセルを保持する。
【００５０】
従来では（図５に示されるように）、画像幅１００とＤＳＰ１７９データ幅１６バイトである画像のための、１０×１０スクリーンを使用するハーフトーンプロセスでは、１０回の反復を要する。
【００５１】
図６Ａに関して開示される方法を使用することによって、７回だけの反復が必要とされる。さらに、画像が１００行有する場合、従来アルゴリズムでは１０＊１００＝１０００回の反復を要する一方で、上記に開示される方法では、（１００／１６）＊１００＝６２５回の反復で済む。
【００５２】
図６Ｂは、ハーフトーンスクリーン幅Ｍ＝３に対応する、ＤＳＰ１７９データ幅Ｂ＝１６、画像幅Ｗ＝５０、ハーフトーンスクリーンサイズ３×３である、その他の例を示す。数式１においてＮ＝４を使用する。ゆえに、図６Ｂに示されるように、反復カウンタｉが０から３まで変化する４回の反復が、画像の一行を処理するために使用される。さらに、ｉが１から３へ変化するに連れて、対応する反復のための開始バイトは数式２を使用して計算され、ｉ＝１、２、および３の場合、Ｓ＝１、２、および０がそれぞれ生成される。ｋ＝１となる、２行目について数式３を使用することによって、図６Ｂの例では、オフセットＯ１＝（１＊５０）  ｍｏｄ  １５＝５０  ｍｏｄ  １６＝２となる。よって、図６Ｂの例では、レジスタ４５０−１のバイト２は、画像内の２行目の開始ピクセルを保持する。画像幅Ｗ＝５０はハーフトーン幅Ｍの整数倍ではないので、最後のハーフトーンパターンは切り落とされ２ビットとなる。いくつかの実施形態では、全てのハーフトーンパターンが使用され、使用されていないハーフトーン値についての計算処理はされない。
【００５３】
Ｓはあるデータ幅ＢおよびハーフトーンサイズＭについての値の有限集合をとるので、反復内のハーフトーンパターンは、（Ｂ  ｍｏｄ  Ｍ）回の反復ごとに繰り返される。したがって、いくつかの実施形態では、値０から［（Ｂ  ｍｏｄ  Ｍ）−１］についての正しいバイトで開始するハーフトーンパターンは、テーブル内に格納され、その反復に必要とされるパターンに基づいて直接レジスタ４５０−２へ取り込まれる。たとえば、図６Ａの反復０から５のそれぞれに示されるハーフトーンパターンは、テーブルの行０から５のそれぞれへ格納される。適切なパターンが値（ｉ  ｍｏｄ  Ｂ）に基づいてアクセスされ、ハーフトーン化計算処理に使用される。
【００５４】
いくつかの実施形態では、正しいバイトで始まる一つ以上の上記ハーフトーンパターンが事前に計算され、ＤＳＰ１７９のレジスタファイル内のレジスタに格納される。ＤＳＰ１７９内の適切なレジスタが、ハーフトーン化計算処理における演算対象として使用される。いくつかの実施形態では、上記パターンは、高速メモリまたはキャッシュに格納され、使用時にレジスタへ取り込まれる。
【００５５】
図７は、開示する実施形態と整合する、画像の１行に対するハーフトーン化のための、例示的な方法のフローチャートを示す。ステップ７１０では、反復カウンタｉの値は、０へ初期化される。次に、ステップ７２０では、代入Ｎの数が数式１に従って計算される。ステップ７３０では、反復カウンタｉの現在値の開始点バイトＳの値が数式２に従って計算される。いくつかの実施形態では、開始バイトＳを持つ適切なハーフトーンパターンは、テーブルからＤＳＰ１７９またはＣＰＵ１７６上のレジスタへ取り込まれる。ステップ７５０では、ハーフトーン化のためのピクセル値が、ＤＳＰ１７９またはＣＰＵ１７６上の第２レジスタへ取り込まれる。ルーチン７６０では、ハーフトーン化計算処理は、使用中のハーフトーン化アルゴリズムに従って実行され、結果は格納される。次に、ステップ７７０では、反復カウンタの値がインクレメントされる。ステップ７８０では、反復カウンタの値が、Ｎと比較される。Ｎ＞ｉの場合、アルゴリズムは終了し、そうでなければ、アルゴリズムは続く反復のためのステップ７３０へ戻る。
【００５６】
さらに、開示される実施形態と整合性のある方法は、プログラムモジュール、ハードウェアモジュール、またはプログラムおよびハードウェアの組合せを使用して、適宜実装される。そのようなモジュールは、実行される際に、ここに開示されるステップおよび形態を実行する。当該モジュールは、図示される例示的なフローチャートを参照して開示される形態を含む、上に記載されおよび付随する図に示される処理、ステージ、および手順は、当業者が開示される実施形態およびその改良を実施するのを可能とするだけ十分に開示される。
【００５７】
上記の形態および側面は、様々な環境で実装される。そのような環境および関連するアプリケーションが、様々なプロセスおよび処理を実行するために特有に構築される。または、それらは、汎用コンピュータ、または機能性を提供するプログラムコードによって選別的に起動されまたは再設定された計算プラットフォームを含む。ここに開示されるプロセスは、本質的にどの特定のコンピュータおよび印刷装置にも関連せず、これらのプロセスの特徴はハードウェア、ソフトウェア、および／またはファームウェアのいかなる適した組合せによって実装される。たとえば、様々な汎用機が使用され、本方法および技術を実行する特定印刷装置やシステムを再設定または構築することが、より便利かもしれない。
【００５８】
本実施形態はまた、開示される方法、プロセス、および実施形態と整合性のある、様々なコンピュータ実装操作を実行するためのプログラム命令またはプログラムコードを含む、コンピュータによって読取り可能な媒体に関連する。プログラム命令は、特別に設計および構築され、または、それらはよく知られる種のものでコンピュータソフトウェア技術に精通する者に利用可能かもしれない。プログラム命令の例は、たとえば、コンパイラによって生成されたマシンコード、インタープリタ、ファームウェア、およびマイクロコードを使用するコンピュータによって実行され得る上流コードを有するファイルを含む。
【００５９】
その他の実施形態は、仕様の考慮およびここに開示される実施形態の実施から、当業者に明らかであろう。仕様および例は例示としてのみに、以下のクレームによって示される本来の範囲および思想によるものと意図されている。したがって、本発明は、以下のクレームによってのみ限定される。
【符号の説明】
【００６０】
１１０  計算装置、
１２０  接続、
１４０  ネットワーク、
１５０  着脱式メディアドライブ、
１７４  バス、
２００  システム、
３１０  入力ピクセル、
４００，４１０  レジスタ、
４５０−１，４５０−２  サブレジスタ。
【図１】
2010088115.tif 000006
【図２】
2010088115.tif 000007
【図３Ａ】
2010088115.tif 000008
【図３Ｂ】
2010088115.tif 000009
【図４】
2010088115.tif 000010
【図５】
2010088115.tif 000011
【図６Ａ】
2010088115.tif 000012
【図６Ｂ】
2010088115.tif 000013
【図７】
2010088115.tif 000014
【外国語明細書】
2010088115000001.pdf
2010088115000002.pdf
2010088115000003.pdf
2010088115000004.pdf