(57)【特許請求の範囲】
【請求項１】
ドット画像を印刷する印刷実行部のための画像処理装置であって、
第１方向に対する第２方向の画素数比がＳ（Ｓ＞０）である歪みのない無歪画像を表す無歪画像データに対して、前記画素数比を変更する変更処理であって前記無歪画像の前記第１の方向の画素数を（１／ｐ）倍に減らす前記変更処理を実行して、前記画素数比がｐ×Ｓ（ｐ＞１）である歪みのある歪画像を表す歪画像データを取得する変更処理部と、
前記画素数比がｐ×Ｓである前記歪画像データに対して、ディザマトリクスを用いて画素毎にドットの形成状態を表すドットデータを生成するハーフトーン処理を実行して、前記画素数比がｐ×Ｓである歪みのある歪ドット画像を表す歪ドットデータを生成するハーフトーン処理部と、
前記歪ドットデータに対して、前記歪ドット画像の前記第１の方向の画素数をｐ倍に増やす拡大処理を実行して、前記画素数比がＳである歪みのない無歪ドット画像であって前記印刷実行部が印刷すべき前記無歪ドット画像を表す無歪ドットデータを生成する拡大処理部と、
を備え、
前記ディザマトリクスのスクリーン角度は、前記無歪ドット画像に表れるスクリーン角度をθとした場合に、およそａｒｃｔａｎ（（ｔａｎθ）／ｐ）に設定されている、画像処理装置。
【請求項２】
ドット画像を印刷する印刷実行部のための画像処理装置であって、
第１方向に対する第２方向の画素数比がＳ（Ｓ＞０）である歪みのない無歪画像を表す無歪画像データに対して、前記画素数比を変更する変更処理であって前記無歪画像の前記第２の方向の画素数をｐ倍に増やす前記変更処理を実行して、前記画素数比がｐ×Ｓ（ｐ＞１）である歪みのある歪画像を表す歪画像データを取得する変更処理部と、
前記画素数比がｐ×Ｓである前記歪画像データに対して、ディザマトリクスを用いて画素毎にドットの形成状態を表すドットデータを生成するハーフトーン処理を実行して、前記画素数比がｐ×Ｓである歪みのある歪ドット画像を表す歪ドットデータを生成するハーフトーン処理部と、
前記歪ドットデータに対して、前記歪ドット画像の前記第１の方向の画素数をｐ倍に増やす拡大処理を実行して、前記画素数比がＳである歪みのない無歪ドット画像であって前記印刷実行部が印刷すべき前記無歪ドット画像を表す無歪ドットデータを生成する拡大処理部と、
を備え、
前記ディザマトリクスのスクリーン角度は、前記無歪ドット画像に表れるスクリーン角度をθとした場合に、およそａｒｃｔａｎ（（ｔａｎθ）／ｐ）に設定されている、画像処理装置。
【請求項３】
ドット画像を形成する印刷実行部のための画像処理装置であって、
第１方向に対する第２方向の画素数比がＳ（Ｓ＞０）である歪みのない無歪画像を表す無歪画像データに対して、前記画素数比を変更する変更処理を実行して、前記画素数比がｐ×Ｓ（ｐ＞１）である歪みのある歪画像を表す歪画像データを取得する取得する変更処理部と、
前記画素数比がｐ×Ｓである前記歪画像データに対して、ディザマトリクスを用いて画素毎にドットの形成状態を表すドットデータを生成するハーフトーン処理を実行して、前記画素数比がｐ×Ｓである歪みのある歪ドット画像を表す歪ドットデータを生成するハーフトーン処理部と、
前記歪ドットデータに対して拡大処理を実行して、前記歪ドット画像を少なくとも前記第１の方向に拡大した歪みのない無歪ドット画像を表す無歪ドットデータを生成する拡大処理部であって、前記無歪ドット画像は、前記画素数比がＳであり、同一行の組を複数個含む、前記拡大処理部と、
を備え、
前記同一行の組は、前記無歪ドット画像を構成する前記第２の方向に沿った複数の行のうち、互いに隣接するとともに、各構成画素の前記ドットの形成状態が互いに同一である２以上の行の組であり、
前記無歪ドットデータは、前記同一行の組を表す圧縮データを含み、
前記圧縮データは、１つの代表行を表す代表行データと、前記代表行データが繰り返されることを示すデータと、を含む、画像処理装置。
【請求項４】
ドット画像を印刷する印刷実行部のための画像処理装置であって、
第１方向に対する第２方向の画素数比がＳ（Ｓ＞０）である歪みのない無歪画像を表す無歪画像データに対して、前記画素数比を変更する変更処理を実行して、前記画素数比がｐ×Ｓ（ｐ＞１）である歪みのある歪画像を表す歪画像データを取得する変更処理部と、
前記画素数比がｐ×Ｓである前記歪画像データに対して、ディザマトリクスを用いて画素毎にドットの形成状態を表すドットデータを生成するハーフトーン処理を実行して、前記画素数比がｐ×Ｓである歪みのある歪ドット画像を表す歪ドットデータを生成するハーフトーン処理部と、
を備え、
前記歪ドットデータは、前記歪ドット画像を少なくとも前記第１の方向に拡大した無歪ドット画像であって、前記画素数比がＳである歪みのない前記無歪ドット画像を、前記印刷実行部が印刷するために用いられ、
前記ディザマトリクスのスクリーン角度は、前記無歪ドット画像に表れるスクリーン角度をθとした場合に、およそａｒｃｔａｎ（（ｔａｎθ）／ｐ）に設定され、
前記ディザマトリクスは、前記無歪ドット画像に表れるライン間隔をＤとした場合に、前記歪ドット画像に表れるライン間隔が、
およそ（１／ｐ）×Ｄ×ｃｏｓφ／ｃｏｓθ、ただし、φ＝ａｒｃｔａｎ（（ｔａｎθ）／ｐ）
となるように、設定され、
前記ライン間隔は、前記スクリーン角度の方向に沿った複数のドットラインの間隔である、画像処理装置。
【請求項５】
請求項４に記載の画像処理装置であって、さらに、
前記歪ドットデータに対して拡大処理を実行して、前記無歪ドット画像を表す無歪ドットデータを生成する拡大処理部を備える、画像処理装置。
【請求項６】
請求項１〜３、５のいずれかに記載の画像処理装置であって、
前記無歪ドットデータは、前記無歪ドット画像を構成する前記第２の方向に沿った複数の行にそれぞれ対応する複数の行データを含み、
各行データは、対応する行を構成する複数の画素の前記ドットの形成状態を表す画素値を含み、
前記拡大処理部は、同一行データの組を複数個含むように前記無歪ドットデータを生成し、
前記同一行データの組は、互いに隣接する２以上の行にそれぞれ対応し、各構成画素の画素値が互いに同一である２以上の前記行データの組であり、
前記画像処理装置は、さらに、前記同一行データの組を、該同一行データの組を構成する１つの行データである代表行データと前記代表行データが繰り返されることを示すデータとの組に変換することによって、前記無歪ドットデータを圧縮する圧縮部を備える、画像処理装置。
【請求項７】
ドット画像を印刷する印刷実行部のための画像処理プログラムであって、
第１方向に対する第２方向の画素数比がＳ（Ｓ＞０）である歪みのない無歪画像を表す無歪画像データに対して、前記画素数比を変更する変更処理であって前記無歪画像の前記第１の方向の画素数を（１／ｐ）倍に減らす前記変更処理を実行して、前記画素数比がｐ×Ｓ（ｐ＞１）である歪みのある歪画像を表す歪画像データを取得する取得する変更処理機能と、
前記画素数比がｐ×Ｓである前記歪画像データに対して、ディザマトリクスを用いて画素毎にドットの形成状態を表すドットデータを生成するハーフトーン処理を実行して、前記画素数比がｐ×Ｓである歪みのある歪ドット画像を表す歪ドットデータを生成するハーフトーン処理機能と、
前記歪ドットデータに対して、前記歪ドット画像の前記第１の方向の画素数をｐ倍に増やす拡大処理を実行して、前記画素数比がＳである歪みのない無歪ドット画像であって前記印刷実行部が印刷すべき前記無歪ドット画像を表す無歪ドットデータを生成する拡大処理機能と、
をコンピュータに実現させ、
前記ディザマトリクスのスクリーン角度は、前記無歪ドット画像に表れるスクリーン角度をθとした場合に、およそａｒｃｔａｎ（（ｔａｎθ）／ｐ）に設定されている、画像処理プログラム。
【請求項８】
ドット画像を印刷する印刷実行部のための画像処理プログラムであって、
第１方向に対する第２方向の画素数比がＳ（Ｓ＞０）である歪みのない無歪画像を表す無歪画像データに対して、前記画素数比を変更する変更処理であって前記無歪画像の前記第２の方向の画素数をｐ倍に増やす前記変更処理を実行して、前記画素数比がｐ×Ｓ（ｐ＞１）である歪みのある歪画像を表す歪画像データを取得する取得する変更処理機能と、
前記画素数比がｐ×Ｓである前記歪画像データに対して、ディザマトリクスを用いて画素毎にドットの形成状態を表すドットデータを生成するハーフトーン処理を実行して、前記画素数比がｐ×Ｓである歪みのある歪ドット画像を表す歪ドットデータを生成するハーフトーン処理機能と、
前記歪ドットデータに対して、前記歪ドット画像の前記第１の方向の画素数をｐ倍に増やす拡大処理を実行して、前記画素数比がＳである歪みのない無歪ドット画像であって前記印刷実行部が印刷すべき前記無歪ドット画像を表す無歪ドットデータを生成する拡大処理機能と、
をコンピュータに実現させ、
前記ディザマトリクスのスクリーン角度は、前記無歪ドット画像に表れるスクリーン角度をθとした場合に、およそａｒｃｔａｎ（（ｔａｎθ）／ｐ）に設定されている、画像処理プログラム。
【請求項９】
ドット画像を形成する印刷実行部のための画像処理プログラムであって、
第１方向に対する第２方向の画素数比がＳ（Ｓ＞０）である歪みのない無歪画像を表す無歪画像データに対して、前記画素数比を変更する変更処理を実行して、前記画素数比がｐ×Ｓ（ｐ＞１）である歪みのある歪画像を表す歪画像データを取得する取得する変更処理機能と、
前記画素数比がｐ×Ｓである前記歪画像データに対して、ディザマトリクスを用いて画素毎にドットの形成状態を表すドットデータを生成するハーフトーン処理を実行して、前記画素数比がｐ×Ｓである歪みのある歪ドット画像を表す歪ドットデータを生成するハーフトーン処理機能と、
前記歪ドットデータに対して拡大処理を実行して、前記歪ドット画像を少なくとも前記第１の方向に拡大した歪みのない無歪ドット画像を表す無歪ドットデータを生成する拡大処理機能であって、前記無歪ドット画像は、前記画素数比がＳであり、同一行の組を複数個含む、前記拡大処理機能と、
をコンピュータに実現させ、
前記同一行の組は、前記無歪ドット画像を構成する前記第２の方向に沿った複数の行のうち、互いに隣接するとともに、各構成画素の前記ドットの形成状態が互いに同一である２以上の行の組であり、
前記無歪ドットデータは、前記同一行の組を表す圧縮データを含み、
前記圧縮データは、１つの代表行を表す代表行データと、前記代表行データが繰り返されることを示すデータと、を含む、画像処理プログラム。
【請求項１０】
ドット画像を印刷する印刷実行部のための画像処理プログラムであって、
第１方向に対する第２方向の画素数比がＳ（Ｓ＞０）である歪みのない無歪画像を表す無歪画像データに対して、前記画素数比を変更する変更処理を実行して、前記画素数比がｐ×Ｓ（ｐ＞１）である歪みのある歪画像を表す歪画像データを取得する取得する変更処理機能と、
前記画素数比がｐ×Ｓである前記歪画像データに対して、ディザマトリクスを用いて画素毎にドットの形成状態を表すドットデータを生成するハーフトーン処理を実行して、前記画素数比がｐ×Ｓである歪みのある歪ドット画像を表す歪ドットデータを生成するハーフトーン処理機能と、
をコンピュータに実現させ、
前記歪ドットデータは、前記歪ドット画像を少なくとも前記第１の方向に拡大した無歪ドット画像であって、前記画素数比がＳである歪みのない前記無歪ドット画像を、前記印刷実行部が印刷するために用いられ、
前記ディザマトリクスのスクリーン角度は、前記無歪ドット画像に表れるスクリーン角度をθとした場合に、およそａｒｃｔａｎ（（ｔａｎθ）／ｐ）に設定され、
前記ディザマトリクスは、前記無歪ドット画像に表れるライン間隔をＤとした場合に、前記歪ドット画像に表れるライン間隔が、
およそ（１／ｐ）×Ｄ×ｃｏｓφ／ｃｏｓθ、ただし、φ＝ａｒｃｔａｎ（（ｔａｎθ）／ｐ）
となるように、設定され、
前記ライン間隔は、前記スクリーン角度の方向に沿った複数のドットラインの間隔である、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの印刷のための画像処理に関する。
【背景技術】
【０００２】
画像処理装置は、多階調（例えば、２５６階調）で表現された画像データを、印刷材を用いて１つの画素あたりで表現可能な階調数で表現された画像データ（例えば、二値データ）に変換する。この結果、印刷装置は、印刷画像において、複数の画素を含む領域の全体で、擬似的に多階調の色を表現することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１９１０５０号公報
【特許文献２】特開２００７−９７０１３号公報
【特許文献３】特開２００８−１８７６６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ハーフトーン処理を含む画像処理の処理量を低減する技術が求められている。画像処理の処理量を低減できれば、例えば、処理時間の低減や、処理に必要なリソース（メモリ量、処理装置の処理能力）の低減を実現することができる。
【０００５】
本発明の主な利点は、画像データの印刷のための画像処理の処理量を低減できる新たな技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【０００７】
［適用例１］ドット画像を印刷する印刷実行部のための画像処理装置であって、第１方向に対する第２方向の画素数比がＳ（Ｓ＞０）である歪みのない無歪画像を表す無歪画像データに対して、前記画素数比を変更する変更処理を実行して、前記画素数比がｐ×Ｓ（ｐ＞１）である歪みのある歪画像を表す歪画像データを取得する変更処理部と、前記画素数比がｐ×Ｓである前記歪画像データに対して、ディザマトリクスを用いて画素毎にドットの形成状態を表すドットデータを生成するハーフトーン処理を実行して、前記画素数比がｐ×Ｓである歪みのある歪ドット画像を表す歪ドットデータを生成するハーフトーン処理部と、を備え、前記歪ドットデータは、前記歪ドット画像を少なくとも前記第１の方向に拡大した無歪ドット画像であって、前記画素数比がＳである歪みのない前記無歪ドット画像を、前記印刷実行部が印刷するために用いられ、前記ディザマトリクスのスクリーン角度は、前記無歪ドット画像に表れるスクリーン角度をθとした場合に、およそａｒｃｔａｎ（（ｔａｎθ）／ｐ）に設定されている、画像処理装置。
【０００８】
上記構成によれば、ハーフトーン処理部は、ハーフトーン処理を用いて、画素数比がｐ×Ｓである歪ドット画像を表す歪ドットデータを生成する。この歪ドットデータは、歪ドット画像を拡大した画像であって、画素数比がＳである無歪ドット画像を形成（印刷）する際に、用いられる。この結果、ハーフトーン処理部は、無歪ドット画像より小さい歪ドット画像を表すドットデータを生成すれば良いので、ハーフトーン処理部によるハーフトーン処理の処理量を低減することができる。さらに、無歪ドット画像に表れるスクリーン角度は、画質に影響を与えうる。上記構成によれば、ディザマトリクスのスクリーン角度は、無歪ドット画像に表れるスクリーン角度をθとした場合に、およそａｒｃｔａｎ（（ｔａｎθ）／ｐ）に設定されているので、無歪ドット画像に表れるスクリーン角度を適正化することができる。
【０００９】
［適用例２］適用例１に記載の画像処理装置であって、さらに、前記歪ドットデータに対して拡大処理を実行して、前記無歪ドット画像を表す無歪ドットデータを生成する拡大処理部を備える、画像処理装置。
上記構成によれば、無歪ドットデータを生成するための処理量を低減できる。
【００１０】
［適用例３］適用例２に記載の画像処理装置であって、前記変更処理部は、前記無歪画像の前記第１の方向の画素数を（１／ｐ）倍に減らす前記変更処理を実行し、前記拡大処理部は、前記歪ドット画像の前記第１の方向の画素数をｐ倍に増やす前記拡大処理を実行する、画像処理装置。
上記構成によれば、無歪画像と同じ画素数の無歪ドット画像を表すドットデータを生成する処理量を低減できる。
【００１１】
［適用例４］適用例２に記載の画像処理装置であって、前記変更処理部は、前記無歪画像の前記第２の方向の画素数をｐ倍に増やす前記変更処理を実行し、前記拡大処理部は、前記歪ドット画像の前記第１の方向の画素数をｐ倍に増やす前記拡大処理を実行する、画像処理装置。
上記構成によれば、無歪画像を、第１の方向と第２の方向とにそれぞれｐ倍に拡大した無歪ドット画像を表すドットデータを生成する処理量を低減できる。
【００１２】
［適用例５］適用例２ないし適用例４のいずれかに記載の画像処理装置であって、前記拡大処理部は、同一行の組を複数個含む前記無歪ドット画像を表す前記無歪ドットデータを生成し、前記同一行の組は、前記無歪ドット画像を構成する前記第２の方向に沿った複数の行のうち、互いに隣接するとともに、各構成画素の前記ドットの形成状態が互いに同一である２以上の行の組であり、前記無歪ドットデータは、前記同一行の組を表す圧縮データを含み、前記圧縮データは、１つの代表行を表す代表行データと、前記代表行データが繰り返されることを示すデータと、を含む、画像処理装置。
上記構成によれば、無歪ドットデータのデータ量を低減できる。
【００１３】
［適用例６］適用例２ないし適用例４のいずれかに記載の画像処理装置であって、前記無歪ドットデータは、前記無歪ドット画像を構成する前記第２の方向に沿った複数の行にそれぞれ対応する複数の行データを含み、各行データは、対応する行を構成する複数の画素の前記ドットの形成状態を表す画素値を含み、前記拡大処理部は、同一行データの組を複数個含むように前記無歪ドットデータを生成し、前記同一行データの組は、互いに隣接する２以上の行にそれぞれ対応し、各構成画素の画素値が互いに同一である２以上の前記行データの組であり、前記画像処理装置は、さらに、前記同一行データの組を、該同一行データの組を構成する１つの行データである代表行データと前記代表行データが繰り返されることを示すデータとの組に変換することによって、前記無歪ドットデータを圧縮する圧縮部を備える、画像処理装置。
上記構成によれば、無歪ドットデータのデータ量を低減できる。
【００１４】
［適用例７］適用例１ないし適用例６のいずれかに記載の画像処理装置であって、前記ディザマトリクスは、前記無歪ドット画像に表れるライン間隔をＤとした場合に、前記歪ドット画像に表れるライン間隔が、およそ（１／ｐ）×Ｄ×ｃｏｓφ／ｃｏｓθ、ただし、φ＝ａｒｃｔａｎ（（ｔａｎθ）／ｐ）となるように、設定され、前記ライン間隔は、前記スクリーン角度の方向に沿った複数のドットラインの間隔である、画像処理装置。
上記構成によれば、無歪ドット画像に表れる線数を適正化することができる。
【００１５】
［適用例８］ドット画像を形成する印刷実行部のための画像処理装置であって、第１方向に対する第２方向の画素数比がＳ（Ｓ＞０）である歪みのない無歪画像を表す無歪画像データに対して、前記画素数比を変更する変更処理を実行して、前記画素数比がｐ×Ｓ（ｐ＞１）である歪みのある歪画像を表す歪画像データを取得する取得する変更処理部と、前記画素数比がｐ×Ｓである前記歪画像データに対して、ディザマトリクスを用いて画素毎にドットの形成状態を表すドットデータを生成するハーフトーン処理を実行して、前記画素数比がｐ×Ｓである歪みのある歪ドット画像を表す歪ドットデータを生成するハーフトーン処理部と、前記歪ドットデータに対して拡大処理を実行して、前記歪ドット画像を少なくとも前記第１の方向に拡大した歪みのない無歪ドット画像を表す無歪ドットデータを生成する拡大処理部であって、前記無歪ドット画像は、前記画素数比がＳであり、同一行の組を複数個含む、前記拡大処理部と、を備え、前記同一行の組は、前記無歪ドット画像を構成する前記第２の方向に沿った複数の行のうち、互いに隣接するとともに、各構成画素の前記ドットの形成状態が互いに同一である２以上の行の組であり、前記無歪ドットデータは、前記同一行の組を表す圧縮データを含み、前記圧縮データは、１つの代表行を表す代表行データと、前記代表行データが繰り返されることを示すデータと、を含む、画像処理装置。
【００１６】
上記構成によれば、ハーフトーン処理を用いて、画素数比がｐ×Ｓである歪ドット画像を表す歪ドットデータが生成される。この歪ドットデータを用いて、歪ドット画像を拡大した画像であって、画素数比がＳである無歪ドット画像を表す無歪ドットデータが生成される。この結果、無歪ドット画像より小さい歪ドット画像を表すドットデータを生成するので、ハーフトーン処理の処理量を低減することができる。また、無歪ドットデータは、同一行の組を表す圧縮データを含んでいるので、無歪ドットデータのデータ量を低減することができる。
【００１７】
本発明は、種々の形態で実現することが可能であり、例えば、上記装置の機能を実現する方法、上記装置の機能を実現するコンピュータプログラム、当該コンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００１８】
【図１】計算装置１００と印刷装置２００のブロック図。
【図２】プリンタドライバＭ１０によって実行される画像処理のフローチャート。
【図３】第１実施例の画像処理を説明する概念図。
【図４】圧縮処理のフローチャート。
【図５】圧縮ドットデータ３００を概念的に示す図。
【図６】ディザマトリクスＤＭ１を示す図。
【図７】ディザマトリクスＤＭ１のスクリーン角度について説明する図。
【図８】印刷される無歪ドット画像ＧＤ２に表れるスクリーン角度を説明する図。
【図９】比較例のディザマトリクスＤＭ２を示す図。
【図１０】比較例のディザマトリクスＤＭ２を用いた場合のドット画像の説明図。
【図１１】第２実施例の画像処理のフローチャート。
【図１２】第２実施例の画像処理を説明する概念図。
【図１３】変形例におけるディザマトリクスセットの説明図。
【発明を実施するための形態】
【００１９】
Ａ．第１実施例：
Ａ−１：計算装置１００と印刷装置２００の構成
本発明の実施の形態を実施例に基づき説明する。図１は、第１実施例の画像処理装置としての計算装置１００と、印刷装置２００のブロック図である。
【００２０】
計算装置１００は、印刷装置２００と通信可能に接続されたコンピュータ（例えば、パーソナルコンピュータ）である。計算装置１００は、ＣＰＵ１１０と、ＲＯＭやＲＡＭなどの内部記憶装置１２０と、ハードディスクなどの外部記憶装置１３０と、キーボードやマウスなどの操作部１７０と、液晶ディスプレイなどの表示部１８０と、外部装置（例えば、印刷装置２００）との通信のためのインタフェースを含む通信部１９０とを備えている。
【００２１】
外部記憶装置１３０は、本実施例の画像処理プログラムとしてのドライバプログラム１３２と、図示しないアプリケーションプログラムによって作成された画像データ１３４とを格納している。
【００２２】
ＣＰＵ１１０は、ドライバプログラム１３２を実行することによって、プリンタドライバＭ１０の機能を実現する。プリンタドライバＭ１０は、変更処理部Ｍ１２と、ハーフトーン処理部Ｍ１４と、拡大処理部Ｍ１６と、圧縮部Ｍ１８とを備え、本実施例の画像処理（後述）を実行する。
【００２３】
印刷装置２００は、集積回路２１０と、プリンタエンジン２５０と、各種のボタンやタッチパネルなどの操作部２７０と、液晶パネルなどの表示部２８０と、外部機器（例えば、計算装置１００）との通信のためのインタフェースを含む通信部２９０と、を備えている。
【００２４】
集積回路２１０は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）であり、制御回路２１２と、ＤＲＡＭなどの揮発性メモリ２１４と、マスクＲＯＭやＥＥＰＲＯＭなどの不揮発性メモリ２１６を含んでいる。揮発性メモリ２１４は、制御回路２１２が用いるバッファ領域を提供する。不揮発性メモリ２１６は、制御回路２１２が参照する制御データ、プログラムなどを格納している。制御回路２１２は、印刷装置２００の全体を制御する装置制御部Ｍ２０として機能する。揮発性メモリ２１４や不揮発性メモリ２１６の全部または一部は、集積回路２１０の外部に設けられていても良い。
【００２５】
プリンタエンジン２５０は、装置制御部Ｍ２０（集積回路２１０）の制御および装置制御部Ｍ２０から供給される印刷データに従って、印刷を行う機構部である。プリンタエンジン２５０は、例えば、印刷材として黒色のトナーを用いて印刷媒体にドット画像を印刷するモノクロレーザープリンタとしての機能を実現する。すなわち、プリンタエンジン２５０は、レーザを用いて感光体を露光する露光工程と、露光によって感光体に形成された静電潜像にトナーを感光体に付着させる現像工程と、現像されたトナー像を感光体から印刷媒体に転写する転写工程と、転写されたトナー像を印刷媒体に定着させる定着工程と、を実現する。装置制御部Ｍ２０とプリンタエンジン２５０との全体は、印刷実行部の例である。
【００２６】
プリンタドライバＭ１０の機能を実現するドライバプログラム１３２や、装置制御部Ｍ２０の機能を実現するプログラムは、コンピュータ読み取り可能な記録媒体に格納された形で提供され得る。
【００２７】
Ａ−２：プリンタドライバＭ１０の画像処理：
図２は、計算装置１００のプリンタドライバＭ１０によって実行される画像処理のフローチャートである。この画像処理は、画像データ１３４を用いて印刷装置２００に供給する印刷データを生成する処理である。プリンタドライバＭ１０は、例えば、ユーザの印刷指示に応じて、画像処理を開始する。
【００２８】
ステップＳ１００では、プリンタドライバＭ１０は、処理対象の画像データ（対象画像データ）を取得する。対象画像データは、例えば、上述した画像データ１３４（図１）であり、当該画像データ１３４を作成したアプリケーションプログラムから取得される。対象画像データは、当該画像データを作成したアプリケーションプログラムごとに異なるデータ形式を有している。
【００２９】
ステップＳ２００では、プリンタドライバＭ１０は、対象画像データを、ＲＧＢ画素データで構成されたビットマップデータ（ＲＧＢ画像データ）に変換するラスタライズ処理を実行する。ＲＧＢ画素データは、ＲＧＢの各色成分の階調値（例えば、２５６階調）を含む。
【００３０】
ステップＳ３００では、プリンタドライバＭ１０は、ＲＧＢ画像データを、黒（Ｋ）成分の濃度を表す単色画素データで構成されたビットマップデータ（単色画像データ）に変換する（モノクロ変換処理）。本実施例では、単色画素データは、０〜２５５の範囲の階調値であり、階調値「０」は白を表し、階調値「２５５」は黒を表し、中間階調値は階調数が大きいほど濃度が高いグレーを表す。具体的には、プリンタドライバＭ１０は、例えば、ＲＧＢ画素データの輝度値Ｙを算出する。プリンタドライバＭ１０は、輝度値Ｙを、ルックアップテーブルを用いて単色画素データに変換する。
【００３１】
図３は、画像処理を説明する概念図である。図３（Ａ）には、単色画像データによって表される単色画像ＰＧ１が示されている。本実施例の単色画像ＰＧ１の大きさ（画素数）は、縦６８１４画素×横４７６０画素である。単色画像ＰＧ１の画素数比Ｓは、約０．７０である。画素数比Ｓは、縦方向の画素数に対する横方向の画素数の比である。
【００３２】
ステップＳ４００では、プリンタドライバＭ１０の変更処理部Ｍ１２は、単色画像データに対して、単色画像ＰＧ１の縦方向の大きさを１／２に縮小する縦方向縮小処理を実行する。縦方向縮小処理によって、縮小単色画像ＰＧ２を表す縮小単色画像データが生成される。図３（Ｂ）には、縮小単色画像ＰＧ２が示されている。
【００３３】
具体的には、変更処理部Ｍ１２は、単色画像データのうち、偶数行データを削除して、単数画像データのうち、奇数行データのみからなる縮小単色画像データを取得する。偶数行データは、画像データが表す画像（ここでは、単色画像ＰＧ１）を構成する横方向に沿った複数の行のうち、上から偶数番目の行（偶数行）を構成する複数の画素をそれぞれ表す複数の画素データである。奇数行データは、画像データが表す画像を構成する横方向に沿った複数の行のうち、上から奇数番目の行（奇数行）を構成する複数の画素をそれぞれ表す複数の画素データである。したがって、図３（Ａ）（Ｂ）に示すように、単色画像ＰＧ１の（２ｎ−１）番目の行の各画素ＰＸ１を表す各画素データと、縮小単色画像ＰＧ２のｎ番目の行の画素ＰＸ１を表す各画素データは、同じになる。また、単色画像ＰＧ１の（２ｎ＋１）番目の行の各画素ＰＸ１を表す画素データと、縮小単色画像ＰＧ２の（ｎ＋１）番目の行の各画素ＰＸ１を表す各画素データは、同じになる。ここで、ｎは、単色画像ＰＧ１の縦方向の画素数（行数）をＮとすると、０＜ｎ＜Ｎ／２を満たす任意の自然数である。
【００３４】
なお、変更処理部Ｍ１２は、単色画像データのうち、奇数行画素データと偶数行画素データとの組を用いて、新たな画素データを生成することによって、縮小単色画像データを取得しても良い。奇数行画素データと偶数行画素データとの組は、奇数行の画素を表す画素データと、当該画素に対して隣接する偶数行の画素（例えば、図３の下方向に隣接する画素）を表す画素データとの組である。例えば、変更処理部Ｍ１２は、奇数行画素データと偶数行画素データとの組を構成する２つの画素データの平均値を新たな画素データとしても良い。
【００３５】
以上の説明から解るように、縮小単色画像ＰＧ２の縦方向の画素数は、単色画像ＰＧ１の縦方向の画素数の１／２になり、図３（Ｂ）の例では、３４０７画素になる。縮小単色画像ＰＧ２の横方向の画素数は、４７６０画素であり、単色画像ＰＧ１の横方向の画素数と同じである。すなわち、縮小単色画像ＰＧ２の画素数比Ｓ２は、単色画像ＰＧ１の画素数比Ｓの２倍、図３（Ｂ）の例では、約１．４０になる。ここで、図３（Ａ）（Ｂ）に示すように、縮小単色画像ＰＧ２は、歪みのない単色画像ＰＧ１を歪ませた歪みのある画像となる。以下では、単色画像ＰＧ１を無歪画像ＰＧ１とも呼び、縮小単色画像ＰＧ２を歪画像ＰＧ２とも呼ぶ。また、無歪画像ＰＧ１を表す単色画像データを無歪画像データとも呼び、歪画像ＰＧ２を表す縮小単色画像データを歪画像データとも呼ぶ。
【００３６】
ステップＳ５００では、プリンタドライバＭ１０のハーフトーン処理部Ｍ１４は、取得された歪画像データに対してハーフトーン処理を実行する。ハーフトーン処理は、ディザマトリクスＤＭ１（図５：後述）を用いて、画素毎にドットの形成状態を表すドットデータを生成する処理である。具体的には、ドットデータを構成する各画素データは、対応する画素がドットを形成することを表す「１」と、対応する画素がドットを形成しないことを表す「０」と、のいずれかの値を取る二値データである。本ステップのハーフトーン処理によって、歪画像ＰＧ２（図３（Ｂ））に対応する歪みのある歪ドット画像ＧＤ１を表す歪ドットデータが生成される。図３（Ｃ）には、歪ドット画像ＧＤ１の一例が示されている。歪ドット画像ＧＤ１の縦方向の画素数および横方向の画素数は、歪画像ＰＧ２の縦方向の画素数および横方向の画素数と同じである。したがって、歪ドット画像ＧＤ１の画素数比も、歪画像ＰＧ２の画素数比Ｓ２と同じである。
【００３７】
ステップＳ６００では、プリンタドライバＭ１０の拡大処理部Ｍ１６は、歪ドットデータに対して拡大処理を実行して、歪のない無歪ドット画像ＧＤ２を表す無歪ドットデータを生成する。図３（Ｄ）には、無歪ドット画像ＧＤ２の一例が示されている。
【００３８】
具体的には、拡大処理部Ｍ１６は、歪ドットデータを構成するｎ番目の行データと、（ｎ＋１）番目の行データとの間に、ｎ番目の行データのコピーデータを挿入することによって、無歪ドットデータを生成する。したがって、無歪ドットデータにおいて、奇数行データと、当該奇数行データの次の偶数行データとは、同一のデータになる。したがって、図３（Ｃ）（Ｄ）に示すように、無歪ドットデータが表す無歪ドット画像ＧＤ２の（２ｎ−１）番目の行の各画素ＰＸ２を表す各画素データと２ｎ番目の行の各画素ＰＸ２を表す各画素データは、同じデータ（歪ドット画像ＧＤ１のｎ番目の行の各画素ＰＸ２を表す各画素データ）となる。また、無歪ドットデータが表す無歪ドット画像ＧＤ２の（２ｎ＋１）番目の行の各画素ＰＸ２を表す各画素データと（２ｎ＋２）番目の行の各画素ＰＸ２を表す各画素データは、同じデータ（歪ドット画像ＧＤ１の（ｎ＋１）番目の行の各画素ＰＸ２を表す各画素データ）となる。
【００３９】
無歪ドット画像ＧＤ２の縦方向の画素数は、歪ドット画像ＧＤ１および歪画像ＰＧ２の縦方向の画素数の２倍であり、無歪画像ＰＧ１の縦方向の画素数と同じである（６８１４画素）。無歪ドット画像ＧＤ２の横方向の画素数は、歪ドット画像ＧＤ１および歪画像ＰＧ２および無歪画像ＰＧ１の横方向の画素数と同じである（４７６０画素）。したがって、無歪ドット画像ＧＤ２の画素数比は、無歪画像ＰＧ１の画素数比Ｓと同じであり、歪画像ＰＧ２および歪ドット画像ＧＤ１の画素数比Ｓ２の１／２である。
【００４０】
ここで、無歪ドット画像ＧＤ２の（２ｎ−１）番目の行と２ｎ番目の行の組のように、無歪ドット画像を構成する複数の行のうち、互いに隣接するとともに、各構成画素のドットの形成状態（ドットデータを構成する画素データの画素値）が互いに同一である２以上の行の組を、同一行の組とも呼ぶ。また、同一行の組を表す行データの組を、同一行データの組とも呼ぶ。無歪ドット画像ＧＤ２の縦方向の画素数（行数）をＮとすると、無歪ドット画像ＧＤ２は、（Ｎ／２）個の同一行の組を含む。
【００４１】
ステップＳ７００では、プリンタドライバＭ１０の圧縮部Ｍ１８は、無歪ドットデータを圧縮する圧縮処理を実行して圧縮ドットデータ３００を生成する。図４は、圧縮処理のフローチャートである。図５は、圧縮ドットデータ３００を概念的に示す図である。
【００４２】
ステップＳ７０２では、圧縮部Ｍ１８は、処理対象である無歪ドットデータが表す無歪ドット画像ＧＤ２を構成する行を順次に（具体的には、図３（Ｄ）の上から順に）処理対象行として選択する。ステップＳ７０４では、圧縮部Ｍ１８は、処理対象行の行データ（処理対象行データ）が、前回の処理対象行データと同一か否かを判断する。この例では、奇数番目の行が処理対象行である場合には、処理対象行データと、前回の処理対象行データとは同一ではない。一方、偶数番目の行が処理対象行である場合には、処理対象行データと、前回の処理対象行データとは同一である。
【００４３】
圧縮部Ｍ１８は、処理対象行データが、前回の処理対象行データと同一でないと判断すると（ステップＳ７０４：ＮＯ）、「ＯＦＦ」の参照フラグを表す参照フラグデータを生成する（ステップＳ７０６）。ステップＳ７０８では、圧縮部Ｍ１８は、圧縮行データと、圧縮行データのデータ量を表すデータ量データを生成する。圧縮部Ｍ１８は、処理対象行データを、ランレングス圧縮によって圧縮して、圧縮行データを生成する。
【００４４】
圧縮部Ｍ１８は、処理対象行データが、前回の処理対象行データと同一であると判断すると（ステップＳ７０４：ＹＥＳ）、「ＯＮ」の参照フラグを表す参照フラグデータを生成する（ステップＳ７１０）。
【００４５】
ステップＳ７１２では、圧縮部Ｍ１８は、処理対象である無歪ドットデータが表す無歪ドット画像ＧＤ２を構成する全ての行を処理対象行として選択したか否かを判断する。圧縮部Ｍ１８は、全ての行が処理対象行として選択されていない場合には（ステップＳ７１２：ＮＯ）、ステップＳ７０２に戻って、未選択の行を新たな処理選択行として、ステップＳ７０４〜Ｓ７１０の処理を繰り返す。圧縮部Ｍ１８は、全ての行が処理対象行として選択されている場合には（ステップＳ７１２：ＹＥＳ）、圧縮処理を終了する。
【００４６】
図５に示すように、圧縮処理によって生成される圧縮ドットデータ３００は、無歪ドット画像ＧＤ２の各行を表すデータを含む。奇数行を表すデータ（例えば、図５：１行目および３行目のデータ）は、「ＯＦＦ」の参照フラグデータ３１０Ａと、データ量データ３２０と、圧縮行データ３３０とを含む。偶数行を表すデータ（例えば、図５：２行目および４行目のデータ）は、「ＯＮ」の参照フラグデータ３１０Ｂを含む。「ＯＦＦ」の参照フラグデータ３１０Ａは、その後に、データ量データ３２０と、データ量データ３２０が表すデータ量の圧縮行データ３３０とが続くことを示すフラグである。「ＯＮ」の参照フラグデータ３１０Ｂは、直前の圧縮行データ３３０で表される行が繰り返されることを示すデータである。このように、同一のデータによって表される行が繰り返されるときには、繰り返される行のうち、２番目以降の行を表す行データを、直前の行データを参照することを示す情報（「ＯＮ」の参照フラグデータ３１０Ｂ）に置き換えることによって、ドットデータを圧縮する。この圧縮処理を「前参照圧縮処理」とも呼ぶ。
【００４７】
以上の説明から解るように、奇数行を表すデータ３１０Ａ、３２０、３３０と、当該奇数行の次の偶数行を表すデータ３１０Ｂとの組は、上述した同一行の組を表す圧縮データであり、上述した同一行データの組を圧縮した圧縮データである。同一行の組を表す圧縮データは、１つの代表行を表す代表行データ（この例では、奇数行を表すデータ３１０Ａ、３２０、３３０）と、代表行データが繰り返されることを表すデータ（この例では、偶数行を表すデータ３１０Ｂ）との組を含むデータであると言うことができる。
【００４８】
図２のステップＳ８００では、プリンタドライバＭ１０は、生成された圧縮ドットデータ３００に、各種のプリンタ制御コードや、データ識別コードを付加して、印刷装置２００の装置制御部Ｍ２０（図１）が解釈可能な印刷データを生成する。ステップＳ９００では、プリンタドライバＭ１０は、生成された印刷データを、印刷装置２００に対して送信して、処理を終了する。
【００４９】
印刷データを受信した印刷装置２００の装置制御部Ｍ２０（集積回路２１０）は、印刷データを揮発性メモリ２１４に格納する。装置制御部Ｍ２０は、印刷データに含まれる圧縮ドットデータ３００を所定量ずつ（例えば、特定行数分ずつ）復元しながら順次にプリンタエンジン２５０に供給することによって、無歪ドット画像ＧＤ２を印刷する。
【００５０】
Ａ−３：ディザマトリクスＤＭ１：
図６は、ディザマトリクスＤＭ１を示す図である。ディザマトリクスＤＭ１は、歪ドット画像ＧＤ１の各画素（図３（Ｃ））に対応する升ＰＭ１を縦８行×横１６列（計１２８個）に並べて構成されている。ディザマトリクスＤＭ１は、縦２個×横４個＝８個のサブマトリクスＣＥ１を含み、各サブマトリクスＣＥ１は、それぞれ縦４行×横４列の１６個の升ＰＭ１を含んでいる。各升ＰＭ１には、閾値ＴＨ１が規定されている。図６の各升ＰＭ１の内部に示した番号は、各升ＰＭ１に設定されている閾値ＴＨ１を示している。この例では、１２８個の閾値ＴＨ１は、入力される階調値の取り得る範囲（例えば、０〜２５５）の全体に略均等に分布するように設定されている。この結果、このディザマトリクスＤＭ１を用いて生成された歪ドットデータが表す歪ドット画像ＧＤ１は、縦８画素×横１６画素の範囲で、１２８階調を表現することができる。
【００５１】
図７は、ディザマトリクスＤＭ１のスクリーン角度について説明する図である。図７の模式図は、ディザマトリクスＤＭ１の升ＰＭ１のうち、閾値ＴＨ１が１１２以下である升ＰＭ１に対応する領域にハッチングを付し、閾値ＴＨ１が１１２より大きい升ＰＭ１に対応する領域は、白色のままとした図である。また、この図７は、ディザマトリクスＤＭ１を用いて生成された歪ドットデータが表す歪ドット画像ＧＤ１に表れる部分歪ドット画像ＰＧＤ１を示しているとも言える。すなわち、部分歪ドット画像ＰＧＤ１は、階調値が１２２である単色画素データで構成された一定濃度の画像領域に対して、ハーフトーン処理を行ったドットデータに対応している。
【００５２】
図７に示す部分歪ドット画像ＰＧＤ１から解るように、歪ドット画像ＧＤ１には、ディザマトリクスＤＭ１におけるサブマトリクスＣＥ１に対応するドットの集合ＤＴ１が表れる。図７に示す実線ＤＬ１から解るように、歪ドット画像ＧＤ１には、複数のドットが繋がってできる複数のドットラインが表れる。このドットラインの角度は、ディザマトリクスＤＭ１のスクリーン角度を表している。一般的に、スクリーン角度φは、反時計回りに、３時の方向（図６の右方向）からドットラインまでの角度で表される。この例では、スクリーン角度φは、約２６．５６度である。ドットラインは、スクリーン角度の方向に沿って、複数のドットによって形成されるラインである。
【００５３】
図８は、印刷される無歪ドット画像ＧＤ２に表れるスクリーン角度を説明する図である。図８は、図７に示す部分歪ドット画像ＰＧＤ１に対応する無歪ドット画像ＧＤ２の領域（部分無歪ドット画像ＰＧＤ２とも呼ぶ）を示している。
【００５４】
図８に示す部分無歪ドット画像ＰＧＤ２から解るように、無歪ドット画像ＧＤ２に表れるドットの集合ＤＴ２は、歪ドット画像ＧＤ１に表れる対応するドットの集合ＤＴ１（図７）を縦方向に２倍に拡大した形状になる。図８に示す実線ＤＬ２から解るように、無歪ドット画像ＧＤ２には、複数のドットが繋がってできる複数のドットラインが表れる。このドットラインの角度、すなわち、印刷される無歪ドット画像ＧＤ２に表れるスクリーン角度をθとする。この例では、スクリーン角度θは、約４５度である。
【００５５】
ところで、ディザマトリクスＤＭ１のスクリーン角度φ（歪ドット画像ＧＤ１に表れるスクリーン角度）の正接（ｔａｎφ）は、ＴＬ１／ＹＬ１である。ここで、ＴＬ１は、歪ドット画像ＧＤ１の複数のドットラインの横方向の周期（図７の例では、４画素（４升）分の長さ）である。ＹＬ１は、歪ドット画像ＧＤ１の複数のドットラインの横方向の周期（図７の例では、８画素（８升）分の長さ）である。そして、無歪ドット画像ＧＤ２に表れるスクリーン角度θの正接（ｔａｎθ）＝ＴＬ２／ＹＬ２である。ここで、ＴＬ２は、無歪ドット画像ＧＤ２の複数のドットラインの横方向の周期（図８の例では、８画素（８升）分の長さ）である。ＹＬ２は、無歪ドット画像ＧＤ２の複数のドットラインの横方向の周期（図８の例では、８画素（８升）分の長さ）である。そして、ＴＬ２＝２×ＴＬ１であり、ＹＬ１＝ＹＬ２であるから、ｔａｎφ＝（ｔａｎθ）／２である。従って、ディザマトリクスＤＭ１のスクリーン角度φは、約ａｒｃｔａｎ（（ｔａｎθ）／２）に設定されている、と言うことができる。
【００５６】
歪ドット画像ＧＤ１の複数のドットラインのライン間隔Ｌは、ｃｏｓφ×ＴＬ１で表される。また、無歪ドット画像ＧＤ２の複数のドットラインのライン間隔Ｄは、ｃｏｓθ×ＴＬ２で表される。したがって、歪ドット画像ＧＤ１の複数のドットラインのライン間隔Ｌは、おおよそ、Ｌ＝（１／２）×Ｄ×ｃｏｓφ／ｃｏｓθに設定されている、と言うことができる。ここで、上述の通り、φ＝ａｒｃｔａｎ（（ｔａｎθ）／２）である。本実施例では、ディザマトリクスＤＭ１の１つの升ＰＭ１に対応するドット画像の画素を単位として、歪ドット画像ＧＤ１のライン間隔Ｌ＝約３．１６画素、無歪ドット画像ＧＤ２のライン間隔Ｄ＝約５．６６画素である。
【００５７】
印刷される無歪ドット画像ＧＤ２に表れるスクリーン角度θや、無歪ドット画像ＧＤ２の複数のドットラインのライン間隔Ｄに基づいて定まる線数（単位はＬｐｉ（line per inch））は、公知のスクリーンゲージを用いて、印刷された無歪ドット画像ＧＤ２を測定することによって、容易に認識することができる。
【００５８】
以上説明した本実施例によれば、ハーフトーン処理部Ｍ１４は、ディザマトリクスを用いて、画素数比Ｓ２が無歪画像ＰＧ１の画素数比Ｓの２倍である歪ドット画像ＧＤ１を表す歪ドットデータを生成する。そして、拡大処理部Ｍ１６は、歪ドットデータに対して拡大処理を実行して、無歪ドット画像ＧＤ２を表す無歪ドットデータを生成する。この結果、ハーフトーン処理部Ｍ１４は、無歪ドット画像ＧＤ２より小さい歪ドット画像ＧＤ１を表す歪ドットデータを生成すれば良いので、ハーフトーン処理の処理量を低減することができる。
【００５９】
より、具体的には、変更処理部Ｍ１２は、無歪画像ＰＧ１縦方向の画素数を１／２倍に減らす変更処理を実行して、歪画像ＰＧ２を表す歪画像データを生成する。その後、歪画像データを歪ドットデータに変換した後、拡大処理部Ｍ１６は、歪ドット画像ＧＤ１の縦の方向の画素数を２倍に増やす拡大処理を実行する。この結果、無歪画像ＰＧ１と同じ画素数の無歪ドット画像ＧＤ２を表す無歪ドットデータを生成する処理量を、およそ、半分に低減できる。
【００６０】
また、上記実施例では、圧縮部Ｍ１８は、同一行の組を含む無歪ドット画像ＧＤ２を表す無歪ドットデータを、前参照圧縮処理（図４）を用いて圧縮するので、無歪ドットデータのデータ量を低減できる。したがって、印刷装置２００に送信する印刷データのデータ量を低減できる。この結果、印刷装置２００に必要なメモリ容量（例えば、揮発性メモリ２１４の容量）を低減することができる。
【００６１】
ここで、印刷画像に表れるスクリーン角度、すなわち、本実施例では、無歪ドット画像ＧＤ２（部分無歪ドット画像ＰＧＤ２（図８））に表れるスクリーン角度は、画質に影響を与える。例えば、人間の視覚特性において、縦方向および横方向の縞模様に対する分解能が高く、斜め方向の縞模様に対する分解能が低いことが知られている。このために、縦方向および横方向の縞模様は目立ちやすく、斜め方向の縞模様は目立ちにくい。このような人間の視覚特性を考慮して、モノクロ印刷では、印刷画像に表れるスクリーン角度は４５度に設定されるのが一般的である。上記構成によれば、無歪ドット画像ＧＤ２（部分無歪ドット画像ＰＧＤ２（図８））に表れるスクリーン角度が目標値θになるように、ディザマトリクスＤＭ１のスクリーン角度φは、φ＝ａｒｃｔａｎ（（ｔａｎθ）／２）に設定されている。具体的には、無歪ドット画像ＧＤ２（部分無歪ドット画像ＰＧＤ２（図８））に表れるスクリーン角度θが約４５度になるように、ディザマトリクスＤＭ１のスクリーン角度φは、約２６．５６度に設定されている。この結果、印刷画像、すなわち、無歪ドット画像ＧＤ２に表れるスクリーン角度を適正化して、印刷画像の画質を向上することができる。
【００６２】
また、印刷画像における線数（単位は、line per inch）、すなわち、本実施例では、無歪ドット画像ＧＤ２（部分無歪ドット画像ＰＧＤ２（図８））における線数は、画質に影響を与える。例えば、線数が小さい場合には、互いに隣接するドットの集合の大きさ（サブマトリクスＣＥ１に対応（図６））が大きくなるので、トナーの安定性が向上して、バンディングなどの不具合が起こりにくくなる。一方、線数が小さい場合には、画像が粗くなり、エッジのがたつきが大きくなる。このような、利点と欠点を考慮して、適切な線数が定められる。無歪ドット画像ＧＤ２（部分無歪ドット画像ＰＧＤ２（図８））における線数は、上述したライン間隔Ｄによって定まる。上記構成によれば、無歪ドット画像ＧＤ２（部分無歪ドット画像ＰＧＤ２（図８））に表れるライン間隔が目標値Ｄになるように、ディザマトリクスＤＭ１は、歪ドット画像ＧＤ１（部分歪ドット画像ＰＧＤ１：図７）に表れるライン間隔Ｌが、およそ（１／２）×Ｄ×ｃｏｓφ／ｃｏｓθ、ただし、φ＝ａｒｃｔａｎ（（ｔａｎθ）／２）  となるように、設定されている。この結果、印刷画像、すなわち、無歪ドット画像ＧＤ２に表れるライン間隔Ｄ、および、ライン間隔Ｄによって定まる線数を適正化して、印刷画像の画質を向上することができる。
【００６３】
図９は、比較例のディザマトリクスＤＭ２を示す図である。このディザマトリクスＤＭ２は、一般的なドットデータの生成に用いられるディザマトリクスの例である。すなわち、ディザマトリクスＤＭ２は、無歪画像を表す無歪画像データに対してハーフトーン処理を実行して無歪ドット画像を表す無歪ドットデータを生成し、当該無歪ドット画像を表す印刷データを生成する画像処理に用いられるディザマトリクスである。
【００６４】
このディザマトリクスＤＭ２は、升ＰＭ２を縦１６行×横１６列（計２５６個）に並べて構成されている。ディザマトリクスＤＭ２は、縦２個×横４個＝１６個のサブマトリクスＣＥ２を含み、各サブマトリクスは、それぞれ縦８行×横４列の１６個の升ＰＭ２を含んでいる。この例では、２５６個の閾値ＴＨ２は、入力される階調値の取り得る値である０〜２５５のいずれかに設定されている。この結果、このディザマトリクスＤＭ２を用いて生成されたドットデータが表すドット画像は、縦１６画素×横１６画素の範囲で、２５６階調を表現することができる。このディザマトリクスＤＭ２を、一般的なドットデータの生成に用いれば、上記実施例における印刷画像のスクリーン角度θの目標値（４５度）と、ライン間隔Ｄの目標値（５．６６画素）とを、実現することができる。
【００６５】
しかしながら、上記実施例における画像処理において、ディザマトリクスＤＭ１（図６）の代わりに、ディザマトリクスＤＭ２が用いられると、得られる印刷画像（無歪ドット画像ＧＤ２）のスクリーン角度θ４とライン間隔Ｄ４とは、目標値（４５度、５．６６画素）とは、異なる値となってしまう。
【００６６】
図１０は、比較例のディザマトリクスＤＭ２を用いた場合のドット画像について説明する図である。図１０（Ａ）は、ディザマトリクスＤＭ２の升ＰＭ２のうち、閾値ＴＨ２が１１２以下である升ＰＭ２に対応する領域にハッチングを付し、閾値ＴＨ２が１１２より大きい升ＰＭ２に対応する領域は、白色のままとした図である。この図１０は、ディザマトリクスＤＭ２を用いて生成された歪ドットデータが表す歪ドット画像ＧＤ３（図示せず）に表れる部分歪ドット画像ＰＧＤ３を示しているとも言える。図１０（Ｂ）は、歪ドット画像ＧＤ３を縦方向に拡大した無歪ドット画像ＧＤ４（部分無歪ドット画像ＰＧＤ４）、すなわち、印刷画像を示している。
【００６７】
部分歪ドット画像ＰＧＤ３（図１０（Ａ））から解るように、ディザマトリクスＤＭ２を用いて生成された歪ドット画像ＧＤ３には、複数のドットＤＴ３が繋がってできる複数のドットラインが表れる。図１０（Ａ）に示すように、比較例のディザマトリクスＤＭ２を用いた場合には、拡大前の歪ドット画像ＧＤ３に表れるスクリーン角度θ３、および、ライン間隔Ｄ３と、がそれぞれ、目標値（４５度、５．６６画素）になる。したがって、部分無歪ドット画像ＰＧＤ４（図１０（Ｂ））から解るように拡大処理後の無歪ドット画像ＧＤ４に表れるスクリーン角度θ４とライン間隔Ｄ４は、目標値とは異なる値（約６３．４５度、７．１５画素）になる。この結果、印刷画像の画質が低下する可能性がある。
【００６８】
上記実施例では、図６のディザマトリクスＤＭ１を用いることによって、図９のディザマトリクスＤＭ２を用いる場合と比較して、無歪ドット画像ＧＤ２に表れるスクリーン角度θ、および、ライン間隔Ｄを適正化して、印刷画像の画質を向上することができる。
【００６９】
Ｂ．第２実施例：
第２実施例は、画像処理の一部の処理を除き、第１実施例と同様であるので、異なる点を中心に説明する。
【００７０】
図１１は、第２実施例の画像処理のフローチャートである。図１２は、第２実施例の画像処理を説明する概念図である。図１２（Ａ）〜（Ｄ）には、第１実施例の説明に用いた図３と同様に、第２実施例における無歪画像ＰＧ１、歪画像ＰＧ２、歪ドット画像ＧＤ１、無歪ドット画像ＧＤ２とがそれぞれ示されている。図１１において、第１実施例の画像処理（図２）と同一のステップには、図２と同一の符号を付し、第１実施例の画像処理と異なるステップには、符号の末尾に「Ａ」を付した。
【００７１】
第２実施例の画像処理では、第１実施例の画像処理と同様のステップＳ１００〜Ｓ３００が実行されて、無歪画像ＰＧ１を表す無歪画像データが作成される。続くステップＳ３５０Ａでは、プリンタドライバＭ１０は、無歪画像ＰＧ１が縦長の画像であるか否か、すなわち、縦方向の画素数に対する横方向の画素数比Ｓが１より小さい画像であるか否かを判断する。プリンタドライバＭ１０は、無歪画像ＰＧ１が縦長の画像でないと判断した場合には（ステップＳ３５０Ａ：ＮＯ）、無歪画像ＰＧ１を９０度回転する回転処理を実行して、縦長の無歪画像ＰＧ１を表す無歪画像データを生成する（ステップＳ３７０Ａ）。プリンタドライバＭ１０は、無歪画像ＰＧ１が縦長の画像であると判断した場合には（ステップＳ３５０Ａ：ＹＥＳ）、ステップＳ４００Ａに処理を進める。
【００７２】
第２実施例の無歪画像ＰＧ１（９０度の回転処理が行われる場合には、回転処理後の無歪画像ＰＧ１）の画素数は、縦３４０７画素×横２３８０画素である。すなわち、第２実施例の無歪画像ＰＧ１の縦方向の画素数、および、横方向の画素数は、第１実施例の無歪画像ＰＧ１の縦方向の画素数、および、横方向の画素数の半分である。第２実施例の無歪画像ＰＧ１の画素数比Ｓは、第１実施例の無歪画像ＰＧ１の画素数比Ｓと同じであり、約０．７０である。
【００７３】
ステップＳ４００Ａでは、プリンタドライバＭ１０の変更処理部Ｍ１２は、無歪画像データに対して、無歪画像ＰＧ１の横方向の大きさを２倍に拡大する横方向拡大処理を実行する。横方向拡大処理によって、歪画像ＰＧ２（図１２（Ｂ））を表す歪画像データが生成される。
【００７４】
具体的には、変更処理部Ｍ１２は、無歪画像ＰＧ１を構成する縦方向に沿ったｍ番目の列（画素列）と、（ｍ＋１）番目の列との間に、ｍ番目の列と同じ列を配置するように、歪画像データを生成する。したがって、歪画像データにおいて、奇数列を表す奇数列データと、当該奇数列の次の偶数列を表す偶数列データとは、同一のデータになる。
【００７５】
なお、変更処理部Ｍ１２は、無歪画像データのｍ番目の列を構成する画素データと、この画素の横方向に隣接して（ｍ＋１）番目の列を構成する画素データと、の組を用いて、ｍ番目の列と（ｍ＋１）番目の列との間に挿入される新たな列の画素データを生成することによって、歪画像データを取得しても良い。例えば、変更処理部Ｍ１２は、この画素データの組を構成する２つの画素データの平均値を新たな画素データとしても良い。
【００７６】
以上の説明から解るように、第２実施例の歪画像ＰＧ２（図１２（Ｂ））の横方向の画素数は、第２実施例の無歪画像ＰＧ１の横方向の画素数の２倍になり、図１２（Ｂ）の例では、４７６０画素になる。この結果、第２実施例の歪画像ＰＧ２は、第１実施例における歪画像ＰＧ２（図３（Ｂ））と同じ大きさ（画素数）となる。すなわち、第２実施例の歪画像ＰＧ２の画素数比Ｓ２は、第２実施例の無歪画像ＰＧ１の画素数比Ｓの２倍、図１２（Ｂ）の例では、約１．４０になる。
【００７７】
以下、ステップＳ５００〜ステップＳ９００の処理は、第１実施例の画像処理（図２）と同様に実行され、この結果、無歪ドット画像ＧＤ２（図１２（Ｄ））を印刷するための印刷データが、印刷装置２００に対して送信される。
【００７８】
以上説明した第２実施例によれば、無歪画像ＰＧ１の大きさ（画素数）が縦方向と横方向とにそれぞれ２倍に拡大された（画素数が増やされた）無歪ドット画像ＧＤ２を表すドットデータを生成する処理量を低減できる。
【００７９】
Ｃ．変形例：
（１）上記実施例では、モノクロ印刷のための印刷データを生成しているが、これに代えて、カラー印刷のための印刷データを生成しても良い。この場合には、ステップＳ３００（図２）において、プリンタドライバＭ１０は、ＲＧＢ画像データを、カラー印刷に用いられる印刷材（具体的には、ＣＭＹＫのトナー）に対応する色成分の階調値の組（具体的には、ＣＭＹＫの階調値の組）を表すＣＭＹＫ画素データで構成されたビットマップデータ（ＣＭＹＫ画像データ）に変換する（色変換処理）。ＣＭＹＫ画素データの色成分の階調数は、例えば、２５６階調である。具体的には、プリンタドライバＭ１０は、例えば、ＲＧＢ画素データと、ＣＭＹＫ画素データとの対応関係を規定したプロファイル、具体的には、ルックアップテーブルを用いて色変換処理を実行する。
【００８０】
ステップＳ４００（図２）では、変更処理部Ｍ１２は、歪画像ＰＧ２を表すＣＭＹＫ画像データを生成し、ステップＳ５００では、ハーフトーン処理部Ｍ１４は、ＣＭＹＫの各色成分の歪ドット画像ＧＤ１を表す歪ドットデータを生成する（ハーフトーン処理）。ステップＳ６００では、拡大処理部Ｍ１６は、ＣＭＹＫの各色成分の無歪ドット画像ＧＤ２を表す無歪ドットデータを生成する。
【００８１】
図１３は、本変形例におけるハーフトーン処理で用いられるディザマトリクスセットを説明する図である。図１３（Ａ）は、本変形例のディザマトリクスセットのスクリーン角度を示している。図１３（Ｂ）は、本変形例の印刷画像（無歪ドット画像ＧＤ２）に表れるスクリーン角度を示している。ディザマトリクスセットは、ＣＭＹＫの各色のディザマトリクスの組である。ＣＭＹＫのそれぞれのディザマトリクスのスクリーン角度（φｃ、φｍ、φｙ、φｋ）は、印刷画像（無歪ドット画像ＧＤ２）に表れるスクリーン角度が目標値（θｃ、θｍ、θｙ、θｋ）となるように、φｆ＝ａｒｃｔａｎ（（ｔａｎθｆ）／２）に設定されている（ｆは、ｃ、ｍ、ｙ、ｋのいずれか）。
【００８２】
印刷画像（無歪ドット画像ＧＤ２）に表れるスクリーン角度の目標値（θｃ、θｍ、θｙ、θｋ）は、モアレの発生を避けるような適切な組み合わせに設定される。例えば、（θｃ、θｍ、θｙ、θｋ）＝（１５度、１６５度、０度、４５度）に設定される（図１３（Ｂ））。この場合には、ＣＭＹＫのそれぞれのディザマトリクスのスクリーン角度（φｃ、φｍ、φｙ、φｋ）は、（７．６３度、１７２．３２度、０度、２６．５６度）に設定される（図１３（Ａ））。
【００８３】
同様にして、印刷画像（無歪ドット画像ＧＤ２）に表れるＣＭＹＫの各色のライン間隔の目標値を（Ｄｃ、Ｄｍ、Ｄｙ、Ｄｋ）とすると、ＣＭＹＫのそれぞれのディザマトリクスは、歪ドット画像ＧＤ１に表れるＣＭＹＫの各色のライン間隔（Ｌｃ、Ｌｍ、Ｌｙ、Ｌｋ）が、およそ（１／２）×Ｄｆ×ｃｏｓφｆ／ｃｏｓθｆ、ただし、φｆ＝ａｒｃｔａｎ（（ｔａｎθｆ）／２）となるように、設定されている（ｆは、ｃ、ｍ、ｙ、ｋのいずれか）。この結果、カラー印刷された印刷画像の画質を向上することができる。
【００８４】
（２）上記実施例の画像処理では、無歪画像ＰＧ１の画素数比Ｓを変更した歪画像ＰＧ２を表す歪画像データを取得する変更処理として、無歪画像ＰＧ１の縦方向の画素数を１／２に減らす縦方向縮小処理（図２：ステップＳ４００）を実行している。また、歪ドット画像ＧＤ１を少なくとも１方向に拡大した無歪ドット画像ＧＤ２を表す無歪ドットデータを生成する拡大処理として、歪ドット画像ＧＤ１の縦方向の画素数を２倍に増やす縦方向拡大処理（図２：ステップＳ６００）を実行している。変更処理や拡大処理の組み合わせはこれに限られない。無歪画像ＰＧ１の縦方向の画素数を１／３、１／４に減らす処理を変更処理として実行し、歪ドット画像ＧＤ１の縦方向の画素数を３倍、４倍に増やす処理を拡大処理として実行しても良い。また、無歪画像ＰＧ１の横方向の画素数を３倍、４倍に増やす処理を変更処理として実行し、歪ドット画像ＧＤ１の縦方向の画素数を３倍、４倍に増やす処理を拡大処理として実行しても良い。逆に、無歪画像ＰＧ１の縦方向の画素数を３倍、４倍に増やす処理を変更処理として実行し、歪ドット画像ＧＤ１の横方向の画素数を３倍、４倍に増やす処理を拡大処理として実行しても良い。
【００８５】
一般的に言えば、変更処理は、第１方向（例えば、縦方向）に対する第２方向（例えば、縦方向と交差する横方向）の画素数比がＳ（Ｍ＞０）である歪みのない無歪画像ＰＧ１を表す無歪画像データに対して、画素数比Ｓを変更する変更処理を実行して、画素数比がｐ×Ｓ（ｐ＞１）である歪みのある歪画像を表す歪画像データを取得する処理であれば良い。そして、対応する拡大処理は、画素数比がｐ×Ｓである歪ドット画像ＧＤ１を少なくとも第１の方向に拡大して、画素数比がＳである無歪ドット画像ＧＤ２を表す無歪ドットデータを生成する処理であれば良い。そして、この場合には、無歪ドット画像ＧＤ２に表れるスクリーン角度が目標値θになるように、ディザマトリクスＤＭ１のスクリーン角度φは、およそａｒｃｔａｎ（（ｔａｎθ）／ｐ）に設定されていることが好ましい。また、無歪ドット画像ＧＤ２に表れるライン間隔が目標値Ｄになるように、ディザマトリクスＤＭ１は、歪ドット画像ＧＤ１に表れるライン間隔Ｌが、およそ（１／ｐ）×Ｄ×ｃｏｓφ／ｃｏｓθ、ただし、φ＝ａｒｃｔａｎ（（ｔａｎθ）／ｐ）  となるように、設定されていることが好ましい。
【００８６】
（３）上記変形例（２）において、ディザマトリクスＤＭ１のスクリーン角度φは、ａｒｃｔａｎ（（ｔａｎθ）／ｐ）に設定されていることが好ましいが、厳密に設定されている必要はなく、およそ、ａｒｃｔａｎ（（ｔａｎθ）／ｐ）に設定されていれば良い。例えば、ディザマトリクスＤＭ１のスクリーン角度φは、θとａｒｃｔａｎ（（ｔａｎθ）／ｐ）とのうち、ａｒｃｔａｎ（（ｔａｎθ）／ｐ）に近い角度であることが好ましい。あるいは、φｓ＝ａｒｃｔａｎ（（ｔａｎθ）／ｐ）とした場合に、ディザマトリクスＤＭ１のスクリーン角度φは、０．６×φｓ＜φ＜１．４×φｓの範囲にあることが好ましく、０．９×φｓ＜φ＜１．１×φｓの範囲にあることがさらに好ましい。
【００８７】
同様に、歪ドット画像ＧＤ１に表れるライン間隔Ｌが、およそ（１／ｐ）×Ｄ×ｃｏｓφ／ｃｏｓθ、ただし、φ＝ａｒｃｔａｎ（（ｔａｎθ）／ｐ）  となるように、設定されていれば良い。例えば、歪ドット画像ＧＤ１に表れるライン間隔Ｌは、Ｄと、（１／ｐ）×Ｄ×ｃｏｓφ／ｃｏｓθとのうち、（１／ｐ）×Ｄ×ｃｏｓφ／ｃｏｓθに近い値であることが好ましい。あるいは、Ｌｓ＝（１／ｐ）×Ｄ×ｃｏｓφ／ｃｏｓθとした場合に、歪ドット画像ＧＤ１に表れるライン間隔Ｌは、０．６×Ｌｓ＜Ｌ＜１．４×Ｌｓの範囲にあることが好ましく、０．９×Ｌｓ＜Ｌ＜１．１×Ｌｓの範囲にあることがさらに好ましい。
【００８８】
（４）なお、上記実施例では、変更処理部Ｍ１２によって、歪画像データの全体が生成（取得）された（図２：ステップＳ４００）後に、ハーフトーン処理部Ｍ１４によって歪画像データに対してハーフトーン処理が実行されて歪ドットデータが生成されている（図２：ステップＳ５００）。これに代えて、変更処理部Ｍ１２が歪画像データを構成する画素データを取得する度に、ハーフトーン処理部Ｍ１４が当該画素データを二値データに変換することを、画素の数だけ繰り返しても良い。すなわち、変更処理部Ｍ１２による歪画像データの取得と、ハーフトーン処理部Ｍ１４による歪ドットデータの生成とが、画素単位で繰り返されることによって、無歪画像データから歪ドットデータが生成されても良い。
【００８９】
（５）なお、上記実施例では、拡大処理部Ｍ１６が、圧縮されていない無歪ドットデータを生成した後に、圧縮部Ｍ１８が該無歪ドットデータを圧縮して圧縮ドットデータ３００（図５）を生成している。これに代えて、拡大処理部Ｍ１６が、歪ドットデータを用いて、圧縮されていない無歪ドットデータを生成することなく、圧縮ドットデータ３００を生成しても良い。具体的には、拡大処理部Ｍ１６は、歪ドットデータに含まれる各行データを圧縮して、無歪ドットデータにおける奇数行データ３１０Ａ、３２０、３３０を生成する度に、偶数行データ３１０Ｂ（ＯＮの参照フラグデータ）を、奇数行データの直後に付加するしても良い。拡大処理部Ｍ１６は、この処理を、歪ドットデータに含まれる全ての行データについて繰り返すことによって、圧縮されていない無歪ドットデータを生成することなく、圧縮された無歪ドットデータである圧縮ドットデータ３００を生成しても良い。すなわち、拡大処理部Ｍ１６は、同一行の組を表す圧縮データを含む無歪ドットデータ（圧縮ドットデータ３００）を、歪ドットデータを用いて生成しても良い。
【００９０】
（６）上記実施例において、ステップＳ６００とＳ７００とを省略して、Ｓ５００において生成された歪ドットデータを印刷データとして、印刷装置２００に供給しても良い。この場合には、印刷装置２００の装置制御部Ｍ２０が、歪ドットデータを用いて無歪ドットデータを生成し、生成した無歪ドットデータをプリンタエンジン２５０に供給しても良い。こうすれば、印刷装置２００は、上記実施例と同様に、無歪ドットデータが表す無歪ドット画像ＧＤ２を印刷することができる。一般的に言えば、プリンタドライバＭ１０は、歪ドット画像ＧＤ１を表す歪ドットデータを生成するハーフトーン処理部Ｍ１４を備え、生成された歪ドットデータは、歪ドット画像ＧＤ１を拡大した無歪ドット画像ＧＤ２を、印刷実行部（例えば、印刷装置２００のプリンタエンジン２５０と装置制御部Ｍ２０）が印刷するために用いられることが好ましい。
【００９１】
（７）上記実施例におけるプリンタドライバＭ１０の各機能部Ｍ１２〜Ｍ１８は、印刷装置２００の制御回路２１２によって実現されても良い。すなわち、印刷装置２００の制御回路２１２において、上述した画像処理が実行されても良い。この場合には、印刷装置２００によるハーフトーン処理の処理量を低減することができる。
【００９２】
（８）上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
【００９３】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【００９４】
１００...計算装置、１１０...ＣＰＵ、１２０...内部記憶装置、１３０...外部記憶装置、１３２...ドライバプログラム、１３４...画像データ、１７０...操作部、１８０...表示部、１９０...通信部、２００...印刷装置、２１０...集積回路、２１２...制御回路、２１４...揮発性メモリ、２１６...不揮発性メモリ、２５０...プリンタエンジン、２７０...操作部、２８０...表示部、２９０...通信部、３００...圧縮ドットデータ、３１０Ａ、Ｂ...参照フラグデータ、３２０...データ量データ、３３０...圧縮行データ、Ｍ１０...プリンタドライバ、Ｍ２０...装置制御部、Ｍ１２...機能部、Ｍ１２...変更処理部、Ｍ１４...ハーフトーン処理部、Ｍ１６...拡大処理部、Ｍ１８...圧縮部、ＤＭ１...ディザマトリクス 
【図１】
0005966434.tif 000002
【図２】
0005966434.tif 000003
【図３】
0005966434.tif 000004
【図４】
0005966434.tif 000005
【図５】
0005966434.tif 000006
【図６】
0005966434.tif 000007
【図７】
0005966434.tif 000008
【図８】
0005966434.tif 000009
【図９】
0005966434.tif 000010
【図１０】
0005966434.tif 000011
【図１１】
0005966434.tif 000012
【図１２】
0005966434.tif 000013
【図１３】
0005966434.tif 000014