(57)【要約】      （修正有）【課題】二値画像データに対して圧縮処理を実行するための技術を提供する。【解決手段】制御装置は、二値化処理手段と、圧縮処理手段を備える。二値化処理手段は、原画像データに対して、第１種の二値化処理の方法と、第２種の二値化処理の方法と、を含む複数種類の二値化処理の方法のうちの少なくとも１種類の二値化処理の方法を用いて二値化処理を実行して、二値画像データを生成する。圧縮処理手段は、二値画像データに対して、複数種類の圧縮処理の方法のうちの１種類の特定の圧縮処理の方法を用いて圧縮処理を実行して、圧縮済み画像データを生成する。圧縮処理手段は、第１種の二値化処理の方法が適用された回数と、第２種の二値化処理の方法が適用された回数と、に応じて、複数種類の圧縮処理の方法から、特定の圧縮処理の方法を選択する圧縮方法選択手段を備える。圧縮処理手段は、特定の圧縮処理の方法を用いて、二値画像データを圧縮する。【選択図】図２
2013106240.tif 000002
【特許請求の範囲】
【請求項１】
原画像データに対して、第１種の二値化処理の方法と、第２種の二値化処理の方法と、を含む複数種類の二値化処理の方法のうちの少なくとも１種類の二値化処理の方法を用いて二値化処理を実行して、二値画像データを生成する二値化処理手段と、
前記二値画像データに対して、第１種の圧縮処理の方法と、第２種の圧縮処理の方法と、を含む複数種類の圧縮処理の方法のうちの１種類の特定の圧縮処理の方法を用いて圧縮処理を実行して、圧縮済み画像データを生成する圧縮処理手段であって、前記第１種の圧縮処理の方法は、前記第１種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法であり、前記第２種の圧縮処理の方法は、前記第２種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法である、前記圧縮処理手段と、
を備え、
前記圧縮処理手段は、前記第１種の二値化処理の方法と、前記第２種の二値化処理の方法と、を含む２種類以上の二値化処理の方法が用いられて前記二値画像データが生成される場合に、前記第１種の二値化処理の方法が適用された回数と、前記第２種の二値化処理の方法が適用された回数と、に応じて、前記複数種類の圧縮処理の方法から、前記特定の圧縮処理の方法を選択する圧縮方法選択手段を備え、
前記圧縮処理手段は、前記特定の圧縮処理の方法を用いて、前記二値画像データを圧縮する
ことを特徴とする、制御装置。
【請求項２】
請求項１に記載の制御装置であって、さらに、
前記圧縮方法選択手段は、前記複数種類の二値化処理の方法が用いられて前記二値画像データが生成される場合に、前記複数種類の二値化処理の方法の中から、適用された回数が最も多い二値化処理の方法を特定する特定手段を備え、
前記圧縮処理選択手段は、前記第１種の二値化処理の方法が適用された回数が最も多い場合に、前記特定の圧縮処理の方法として、前記第１種の圧縮処理の方法を選択し、前記第２種の二値化処理の方法が適用された回数が最も多い場合に、前記特定の圧縮処理の方法として、前記第２種の圧縮処理の方法を選択する
ことを特徴とする、制御装置。
【請求項３】
請求項２に記載の制御装置であって、
前記第１種の二値化処理の方法は、誤差拡散法を用いた二値化処理の方法であり、前記第２種の二値化処理の方法は、ディザマトリクスを用いた二値化処理の方法であり、
前記圧縮処理手段は、前記最も多く用いられた二値化処理の方法が前記第１種の二値化処理の方法である場合に、複数個の画素によって構成される特定の画素群が前記二値画像データ内に出現する出現頻度が特定の頻度よりも少ない前記二値画像データに適する第１の圧縮方法によって前記二値画像データを圧縮し、前記最も多く用いられた二値化処理の方法が前記第２種の二値化処理の方法である場合に、前記特定の画素群が前記二値画像データ内に出現する出現頻度が前記特定の頻度以上である前記二値画像データに適する第２の圧縮処理の方法によって、前記二値画像データを圧縮する
ことを特徴とする、制御装置。
【請求項４】
請求項３に記載の制御装置であって、
前記第１の圧縮方法は、ＦＬＡＴＥ圧縮であり、
前記第２の圧縮方法は、比較処理と、生成処理と、を含み、
前記比較処理は、前記二値画像データを構成する第１の行の画素のパターンと、前記特定の行に隣接する第２の行の画素のパターンと、を比較する処理であり、
前記生成処理は、前記第１の行の画素のパターンと、前記第２の行の画素のパターンと、が一致する場合に、第１の方法で前記圧縮済みデータを生成し、前記第１の行の画素のパターンと、前記第２の行の画素のパターンと、が一致しない場合に、前記第１の方法と異なる第２の方法で圧縮済み画像データを生成する
ことを特徴とする、制御装置。
【請求項５】
請求項４に記載の制御装置であって、
前記第１の方法は、前記第１の行の画素のパターンが前記二値画像データ内に出現する回数を示す情報を用いて圧縮済画像データを生成する方法であり、
前記第２の方法は、前記特定の画素群を含む複数種類の画素群を用いたランレングス符号化によって圧縮済み画像データを生成する方法である
ことを特徴とする、制御装置。
【請求項６】
請求項５に記載の制御装置であって、
前記二値化処理手段は、スクリーン線数が第１の値である第１のディザマトリクスを用いて前記第１種の二値化処理を実行し、スクリーン線数が前記第１の値よりも多い第２の値である第２のディザマトリクスを用いて第２種の二値化処理を実行し、
前記複数種類の二値化処理の方法のうち前記第１種の二値化処理の方法が適用された回数が最も多い場合は、前記第２の方法で用いられる前記複数種類の画素群を構成する画素数は、第１の画素数であり、
前記複数種類の二値化処理の方法のうち前記第２種の二値化処理の方法が適用された回数が最も多い場合は、前記第２の方法で用いられる前記複数種類の画素群を構成する画素数は、前記第１の画素数と異なる第２の画素数である
ことを特徴とする、制御装置。
【請求項７】
コンピュータに、
原画像データに対して、第１種の二値化処理の方法と、第２種の二値化処理の方法と、を含む複数種類の二値化処理の方法のうちの少なくとも１種類の二値化処理の方法を用いて二値化処理を実行して、二値画像データを生成する二値化処理ステップと、
前記二値画像データに対して、第１種の圧縮処理の方法と、第２種の圧縮処理の方法と、を含む複数種類の圧縮処理の方法のうちの１種類の特定の圧縮処理の方法を用いて圧縮処理を実行して、圧縮済み画像データを生成する圧縮処理ステップであって、前記第１種の圧縮処理の方法は、前記第１種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法であり、前記第２種の圧縮処理の方法は、前記第２種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法である、前記圧縮処理ステップと、
を実行させるプログラムであって、
前記圧縮処理ステップは、前記第１種の二値化処理の方法と、前記第２種の二値化処理の方法と、を含む２種類以上の二値化処理の方法が用いられて前記二値画像データが生成される場合に、前記第１種の二値化処理の方法が適用された回数と、前記第２種の二値化処理の方法が適用された回数と、に応じて、前記複数種類の圧縮処理の方法から、前記特定の圧縮処理の方法を選択する圧縮方法選択ステップを備え、
前記圧縮処理ステップは、前記特定の圧縮処理の方法を用いて、前記二値画像データを圧縮する
ことを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二値画像データを圧縮するための技術に関する。
【背景技術】
【０００２】
印刷実行部に画像を印刷させるために、制御装置は、画像データを二値化処理することによって二値画像データを生成し、当該二値画像データに対して圧縮処理を実行する。例えば特許文献１は、圧縮処理を実行する際、画像内の線画の領域に対して第１の圧縮処理を実行し、画像内の連続階調画像の領域に対して第２の圧縮処理を実行する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−９６２８１号公報
【特許文献２】特開２００４−２５５７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、圧縮処理が適切に実行されない場合があった。
本発明は、上述した問題点を解決するためになされたものであり、適切な圧縮処理の方法で二値画像データに対して圧縮処理を実行するための技術を提供する。
【課題を解決するための手段】
【０００５】
この目的を達成するために、本発明の第１の装置は、原画像データに対して、第１種の二値化処理の方法と、第２種の二値化処理の方法と、を含む複数種類の二値化処理の方法のうちの少なくとも１種類の二値化処理の方法を用いて二値化処理を実行して、二値画像データを生成する二値化処理手段と、前記二値画像データに対して、第１種の圧縮処理の方法と、第２種の圧縮処理の方法と、を含む複数種類の圧縮処理の方法のうちの１種類の特定の圧縮処理の方法を用いて圧縮処理を実行して、圧縮済み画像データを生成する圧縮処理手段であって、前記第１種の圧縮処理の方法は、前記第１種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法であり、前記第２種の圧縮処理の方法は、前記第２種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法である、前記圧縮処理手段と、を備え、前記圧縮処理手段は、前記第１種の二値化処理の方法と、前記第２種の二値化処理の方法と、を含む２種類以上の二値化処理の方法が用いられて前記二値画像データが生成される場合に、前記第１種の二値化処理の方法が適用された回数と、前記第２種の二値化処理の方法が適用された回数と、に応じて、前記複数種類の圧縮処理の方法から、前記特定の圧縮処理の方法を選択する圧縮方法選択手段を備え、前記圧縮処理手段は、前記特定の圧縮処理の方法を用いて、前記二値画像データを圧縮することを特徴とする。
【０００６】
この構成により、２種類以上の二値化処理の方法を用いて二値画像を生成する際に、それぞれの二値化処理の方法が適用された回数に応じて、適切な圧縮処理の方法で圧縮処理を実行することができる。
【０００７】
また、上記の装置において、さらに、前記圧縮方法選択手段は、前記複数種類の二値化処理の方法が用いられて前記二値画像データが生成される場合に、前記複数種類の二値化処理の方法の中から、適用された回数が最も多い二値化処理の方法を特定する特定手段を備え、前記圧縮処理選択手段は、前記第１種の二値化処理の方法が適用された回数が最も多い場合に、前記特定の圧縮処理の方法として、前記第１種の圧縮処理の方法を選択し、前記第２種の二値化処理の方法が適用された回数が最も多い場合に、前記特定の圧縮処理の方法として、前記第２種の圧縮処理の方法を選択することが好ましい。
【０００８】
この構成により、２種類以上の二値化処理の方法を用いて二値画像を生成する際に、それぞれの二値化処理の方法が適用された回数に応じて、適切な圧縮処理の方法で圧縮処理を実行することができる。例えば、２種類以上の二値化処理の方法のうち、第１の二値化処理の方法が適用された回数が最も多い場合に、第１の二値化処理の方法に適した圧縮処理の方法で二値画像データを圧縮することができる。
【０００９】
また、上記の装置において、前記第１種の二値化処理の方法は、誤差拡散法を用いた二値化処理の方法であり、前記第２種の二値化処理の方法は、ディザマトリクスを用いた二値化処理の方法であり、前記圧縮処理手段は、前記最も多く用いられた二値化処理の方法が前記第１種の二値化処理の方法である場合に、複数個の画素によって構成される特定の画素群が前記二値画像データ内に出現する出現頻度が特定の頻度よりも少ない前記二値画像データに適する第１の圧縮方法によって前記二値画像データを圧縮し、前記最も多く用いられた二値化処理の方法が前記第２種の二値化処理の方法である場合に、前記特定の画素群が前記二値画像データ内に出現する出現頻度が前記特定の頻度以上である前記二値画像データに適する第２の圧縮処理の方法によって、前記二値画像データを圧縮することが好ましい。
【００１０】
この構成により、特定の画素群が二値画像データに出現する出現頻度に応じて決定される適切な圧縮処理の方法によって、二値画像データを圧縮することができる。
【００１１】
また、上記の装置において、前記第１の圧縮方法は、ＦＬＡＴＥ圧縮であり、前記第２の圧縮方法は、比較処理と、生成処理と、を含み、前記比較処理は、前記二値画像データを構成する第１の行の画素のパターンと、前記特定の行に隣接する第２の行の画素のパターンと、を比較する処理であり、前記生成処理は、前記第１の行の画素のパターンと、前記第２の行の画素のパターンと、が一致する場合に、第１の方法で前記圧縮済みデータを生成し、前記第１の行の画素のパターンと、前記第２の行の画素のパターンと、が一致しない場合に、前記第１の方法と異なる第２の方法で圧縮済み画像データを生成することが好ましい。
【００１２】
また、上記の装置において、前記第１の方法は、前記第１の行の画素のパターンが前記二値画像データ内に出現する回数を示す情報を用いて圧縮済画像データを生成する方法であり、前記第２の方法は、前記特定の画素群を含む複数種類の画素群を用いたランレングス符号化によって圧縮済み画像データを生成する方法であることが好ましい。
【００１３】
また、上記の装置において、前記二値化処理手段は、スクリーン線数が第１の値である第１のディザマトリクスを用いて前記第１種の二値化処理を実行し、スクリーン線数が前記第１の値よりも多い第２の値である第２のディザマトリクスを用いて第２種の二値化処理を実行し、前記複数種類の二値化処理の方法のうち前記第１種の二値化処理の方法が適用された回数が最も多い場合は、前記第２の方法で用いられる前記複数種類の画素群を構成する画素数は、第１の画素数であり、前記複数種類の二値化処理の方法のうち前記第２種の二値化処理の方法が適用された回数が最も多い場合は、前記第２の方法で用いられる前記複数種類の画素群を構成する画素数は、前記第１の画素数と異なる第２の画素数であることが好ましい。
【００１４】
なお、この発明は、制御装置及び制御装置で実行される方法、これらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の種々の態様で実現することができる。
【図面の簡単な説明】
【００１５】
【図１】印刷システムの概略構成を示すブロック図。
【図２】画像処理を示すフローチャート。
【図３】図２の属性の判断処理を示すフローチャート。
【図４】属性データ４４を示す図。
【図５】二値化対応テーブル４２を示す図。
【図６】図２の二値化処理(レベル１)を示すフローチャート。
【図７】ディザマトリクスによって出力される画像データの例を示す図。
【図８】高線数ディザマトリクスと低線数ディザマトリクスとの違いを示す図。
【図９】図２の圧縮処理(Ｓ１０００)が実行される前の二値画像データの一例を示す図。
【図１０】前ライン参照圧縮法における、対象行と、参照行と、の出力パターンが一致しない場合の圧縮方法について示す図。
【図１１】前ライン参照圧縮法における、対象行と、参照行と、の出力パターンが一致する場合の圧縮方法について示す図。
【図１２】二値化処理の方法と、比較画素群と、の対応関係を示す図。
【図１３】図２のレベル設定処理を示すフローチャート。
【図１４】図２の二値化処理(レベル２)を示すフローチャート。
【図１５】図２の二値化処理(レベル３)を示すフローチャート。
【図１６】図２の二値化処理(レベル４)を示すフローチャート。
【図１７】図２の二値化処理(レベル５)を示すフローチャート。
【発明を実施するための形態】
【００１６】
(実施例)
(端末装置の構成)
図１は、本実施例における印刷システムの概略構成を表すブロック図である。
【００１７】
印刷システムは、端末装置１０とプリンタ７０とを備える。端末装置１０とプリンタ７０とは、ＬＡＮ(ローカルエリアネットワーク)８０を介して接続されている。
【００１８】
端末装置１０は、制御部２０と、表示部２１と、操作部２２と、ネットワークインターフェース２３と、を備えており、それぞれがバス線で接続されている。ネットワークインターフェース２３は、ＬＡＮ８０と接続されている。
【００１９】
制御部２０は、ＣＰＵ３０と、メモリ４０と、を備える。メモリ４０は、画像処理プログラム４１を備える。ＣＰＵ３０は、画像処理プログラム４１に従って処理を実行する。ＣＰＵ３０が画像処理プログラム４１に従って処理を実行することによって、各手段５１〜６１の機能が実現される。また、メモリ４０は、二値化対応テーブル４２と、レベル設定フラグ４３と、を記憶する。
【００２０】
本実施例では、属性判断手段５１は、画像データによって表現される画像内の各領域の属性を判断する。色変換手段５２は、ＲＧＢ値で表現される画像データを、ＣＭＹＫ値で表現される画像データに変換する。二値化処理手段５３は、比較手段５５を備える二値化処理選択手段５４を備え、ＣＭＹＫ値で表現される画像データに対して二値化処理を実行する。圧縮処理手段５６は、特定手段５８を備える圧縮処理選択手段５７を備え、二値化処理が実行されて生成される二値画像データに対して圧縮処理を実行する。サイズ判断手段５９は、圧縮処理が実行されて生成される圧縮済み画像データのサイズが、閾値よりも大きいか否かを判断する。供給手段６０は、圧縮済み画像データが閾値以下である場合に、圧縮済み画像データをプリンタ７０に供給する。通知手段６１は、圧縮済み画像データのサイズが閾値よりも大きい場合に、圧縮済み画像データをプリンタ７０に供給することができない旨を通知する。
【００２１】
二値化対応テーブル４２は、プリンタドライバが外部のサーバ(例えば、プリンタ７０を提供する企業が保有するサーバ)からダウンロードされる際に、当該プリンタドライバとともに取得される。なお、二値化対応テーブル４２は、ＣＤ等の記憶媒体に記憶された状態で提供されてもよい。
【００２２】
表示部２１は、各種の画面を表示する。操作部２２は、キーボードやポインティングデバイスを備えている。ユーザは、操作部２２を操作することによって、表示部２１に表示される項目を選択することができる。
【００２３】
(画像処理)
図２は、本実施例で実行される画像処理を示すフローチャートである。
【００２４】
画像処理は、ユーザが端末装置１０の操作部２２を操作することによって、印刷を所望する画像データＩｍ１が選択され、印刷が指示されることにより開始される。画像データＩｍ１は、例えば、端末装置１０の図示しないメモリ装着部を介して、ＵＳＢメモリ等の可搬型メモリから読み込まれ、メモリ４０に記憶されている。画像データＩｍ１は、オブジェクトの位置や形状、色等を示すパラメータを含む。
【００２５】
画像データＩｍ１が選択されると、属性判断手段５１は、選択された画像データＩｍ１の属性の判断処理を実行する(Ｓ２００)。
【００２６】
図３は、属性の判断処理を示すフローチャートである。
【００２７】
属性判断手段５１は、画像データＩｍ１に基づいて画像データＩｍ２を生成するために処理すべき描画命令を取得する(Ｓ２１０)。具体的には、描画命令は、画像データＩｍ１から、ラスタで構成される画像データＩｍ２を生成するために必要な命令である。なお、ラスタは、画素ごとにＲＧＢ値が付与された１ラインごとの画素の集合である。
【００２８】
属性判断手段５１は、当該描画命令に基づいて、描画処理(ラスタライズ処理)を実行する(Ｓ２２０)。描画処理が実行されることにより、画像データＩｍ２が生成される。画像データＩｍ２を構成する画素は、Ｒ(レッド)、Ｇ(グリーン)、Ｂ(ブルー)のＲＧＢ色空間のＲＧＢ値で表現される。ＲＧＢ値の各成分は、例えば０から２５５の２５６階調で表現される。
【００２９】
続いて、属性判断手段５１は、描画命令が示す文字列を解析することによって、当該描画命令が、図形描画命令と、文字描画命令と、のどちらであるかを判断する(Ｓ２３０)。なお、属性判断手段５１は、描画処理が実行された画像データＩｍ２の画素密度や階調分布を算出することによって、各領域の属性を判断してもよい。
【００３０】
図４は、Ｓ２２０の描画命令によって生成される画像データＩｍ２と、Ｓ２３０の判断結果に基づいて生成される属性データ４４と、の対応関係を示す図である。図４(Ａ)は、画像データＩｍ２によって表現される画像を示す。図示するように、画像データＩｍ２によって表現される画像は、グラフィック領域ＡｒＧと、文字領域ＡｒＴと、写真領域ＡｒＰと、を含む。グラフィック領域ＡｒＧは、矩形や円等の図形が描画された領域によって構成されるオブジェクトの領域である。文字領域ＡｒＴは、文字オブジェクトが描画された領域である。写真領域ＡｒＰは、撮影された画像が描画された領域によって構成されるオブジェクトの領域である。それぞれのオブジェクトは、１または複数の領域によって構成される。
【００３１】
図４(Ｂ)は、属性データ４４によって表現される画像を示す図である。当該画像は、図４(Ａ)の３種類の領域ＡｒＧ、ＡｒＴ、ＡｒＰに対応する３種類の領域を含む。属性データ４４は、予め「０」で初期化されている。
【００３２】
図示するように、グラフィック領域ＡｒＧに対応する領域には、例えば「１」が記憶される。文字領域ＡｒＴに対応する領域には、例えば「２」が記憶される。写真領域ＡｒＰに対応する領域には、例えば「３」が記憶される。３種類の領域のうちのいずれの領域にも属しない領域(以下、背景領域)には、例えば「０」が記憶される(すなわち、初期化の状態が維持される)。
【００３３】
図３のＳ２３０において、Ｓ２１０で取得された描画命令がグラフィック描画命令である場合は、属性判断手段５１は、属性データ４４内の描画命令によって処理された領域の属性を「グラフィック」に設定する(Ｓ２４０)。具体的には、属性データ４４によって表現される画像内の該当する領域に含まれる画素に、「１」を記憶する。
【００３４】
図３のＳ２３０において、Ｓ２１０で取得された描画命令が文字描画命令である場合は、属性判断手段５１は、属性データ４４内の描画命令によって処理された領域の属性を「文字」に設定する(Ｓ２５０)。具体的には、属性データ４４によって表現される画像内の該当する領域に含まれる画素に、「２」を記憶する。
【００３５】
図３のＳ２３０において、Ｓ２１０で取得された描画命令が、グラフィック描画命令と、文字描画命令と、のいずれの描画命令でもない場合は、属性判断手段５１は、属性データ４４内の描画命令によって処理された領域の属性を「写真」に設定する(Ｓ２６０)。具体的には、属性データ４４で表現される画像内の該当する領域に含まれる画素に、「３」を記憶する。
【００３６】
続いて、属性判断手段５１は、画像データＩｍ１に含まれる全ての描画命令に基づく描画処理を実行したか否かを判断する(Ｓ２７０)。描画処理が実行されていない描画命令が存在する場合は(Ｓ２７０  ＮＯ)、属性判断手段５１は、処理をＳ２１０に戻し、次に処理すべき描画命令を選択する。一方、全ての描画命令に対する描画処理が終了している場合は(Ｓ２７０  ＹＥＳ)、属性判断手段５１は、図３の属性の判断処理を終了する。
【００３７】
図２の属性の判断処理(Ｓ２００)が終了すると、色変換手段５２は、描画処理が実行された画像データＩｍ２に対して色変換処理を実行する(Ｓ３００)。色変換手段５２は、画像データＩｍ２の各画素のＲＧＢ値を、Ｃ(シアン)、Ｍ(マゼンタ)、Ｙ(イエロー)、Ｋ(ブラック)のＣＭＹＫ色空間のＣＭＹＫ値に変換する。ＣＭＹＫ値の各成分は、例えば０から２５５の２５６階調で表現される。色変換処理が実行されることによって、ＣＭＹＫ値で表現される画像データＩｍ３がメモリ４０に記憶される。
【００３８】
続いて、二値化処理手段５３は、レベル設定処理を実行する(Ｓ４００)。
【００３９】
図５は、複数のレベルと、各レベルで実行される二値化処理の組み合わせと、を規定した二値化対応テーブル４２を示す図である。本実施例では、二値化処理手段５３は、設定されるレベルに応じて、属性ごとに異なる二値化処理の方法を用いて二値化処理を実行する。例えば、設定されるレベルがレベル１である場合は、二値化処理手段５３は、属性データ４４で属性が「文字」とされている領域に含まれる画素に対して、誤差拡散法を用いた二値化処理を実行する。また、二値化処理手段５３は、属性データ４４で属性が「グラフィック」とされている領域に含まれる画素に対して、低線数ディザマトリクス法を用いた二値化処理を実行する。また、二値化処理手段５３は、属性データ４４で属性が「写真」とされている領域に含まれる画素に対して、高線数ディザマトリクス法を用いた二値化処理を実行する。レベル設定処理(Ｓ４００)の詳細な処理については後述する。
【００４０】
続いて、二値化処理手段５３は、レベル設定処理(Ｓ４００)で設定されたレベルに応じた二値化処理を実行する(Ｓ５００)。二値化処理が実行されることにより、画像データＩｍ３に含まれる画素の階調値は、「１」または「０」のいずれかに設定される。以下の説明では、階調値が「１」に設定されることをオンと出力されると称し、階調値が「０」に設定されることをオフと出力されると称する。
【００４１】
図６は、設定されているレベルが「レベル１」である場合に実行される二値化処理を示すフローチャートである。なお、図６の二値化処理は、図２の画像処理の実行が開始されてから初めて二値化処理(Ｓ５００)が実行される場合に実行される。
【００４２】
二値化処理手段５３は、Ｓ３００の色変換処理が実行された画像データＩｍ３の中から、処理すべき画素を選択する(Ｓ５０２ａ)。なお、最初にＳ５０２ａが実行される際は、二値化処理手段５３は、画像データＩｍ３の先頭に位置する画素を、処理すべき画素として選択する。
【００４３】
二値化処理手段５３は、図３の属性の判断処理(Ｓ２００)によって生成される属性データ４４を参照し、当該選択された画素の属性を判断する(Ｓ５０４ａ)。具体的には、属性データ４４における当該画素に記憶される値(０〜３)を判断する。
【００４４】
判断された画素の属性が「グラフィック」である場合は(Ｓ５０４ａ  グラフィック)、二値化処理手段５３は、二値化テーブル４２において「レベル１」の「グラフィック」に対応する二値化処理の方法である「低線数ディザマトリクス法」を用いて、Ｓ５０２ａで選択された画素に対して二値化処理を実行する(Ｓ５０６ａ)。二値化処理手段５３は、低線数ディザマトリクス法を用いた回数の累積数Ｎｌｄに１を加算する(Ｓ５０８ａ)。累積数Ｎｌｄは、低線数ディザマトリクス法を用いて二値化処理が実行された画素の数を示す値である。
【００４５】
判断された画素の属性が「文字」である場合は(Ｓ５０４ａ  文字)、二値化処理手段５３は、二値化テーブル４２において「レベル１」の「文字」に対応する二値化処理の方法である「誤差拡散法」を用いて、Ｓ５０２ａで選択された画素に対して二値化処理を実行する(Ｓ５１０ａ)。二値化処理手段５３は、誤差拡散法を用いた回数の累積数Ｎｅｄに１を加算する(Ｓ５１２ａ)。累積数Ｎｅｄは、誤差拡散法を用いて二値化処理が実行された画素の数を示す値である。
【００４６】
判断された画素の属性が「写真」である場合は(Ｓ５０４ａ  写真)、二値化処理手段５３は、二値化テーブル４２において「レベル１」の「写真」に対応する二値化処理の方法である「高線数ディザマトリクス法」を用いて、Ｓ５０２ａで取得された画素に対して二値化処理を実行する(Ｓ５１４ａ)。二値化処理手段５３は、高線数ディザマトリクス法を用いた回数の累積数Ｎｈｄに１を加算する(Ｓ５１６ａ)。累積数Ｎｈｄは、高線数ディザマトリクス法を用いて二値化処理が実行された画素の数を示す値である。
【００４７】
なお、図６には示していないが、Ｓ５０２ａで選択された画素が背景領域に含まれる画素である場合は、二値化処理手段５３は、すべてのレベルにおいて、低線数ディザマトリクスを用いて、選択された画素に対して二値化処理を実行する。背景領域が何ら印字されない(すなわち、ＣＭＹＫ値の各成分がすべて０である)領域である場合は、背景領域に含まれる画素は、全てオフと出力される。背景領域が同一色で形成される(すなわち、ＣＭＹＫ値がすべて同一の値である)領域である場合は、背景領域に含まれる画素のうちの一部の画素がオンと出力される。なお、他の二値化処理の方法を用いて背景領域に含まれる画素に対して二値化処理が実行されてもよい。
【００４８】
Ｓ５０８ａと、Ｓ５１２ａと、Ｓ５１６ａと、のいずれかの処理が実行されると、二値化処理手段５３は、画像データに含まれる全ての画素に対する二値化処理の実行が終了したか否かを判断する(Ｓ５１８ａ)。二値化処理が実行されていない画素が存在する場合は(Ｓ５１８ａ  ＮＯ)、二値化処理手段５３は、処理をＳ５０２ａに戻し、次に処理すべき画素を選択する。
【００４９】
一方、全ての画素に対して二値化処理が終了した場合は(Ｓ５１８ａ  ＹＥＳ)、特定手段５８は、画像データに含まれる画素に対して実行された二値化処理の方法の中で、最も多くの画素に対して実行された二値化処理の方法Ｍｆｕを特定する(Ｓ５２０ａ)。具体的には、レベル１の二値化処理では、特定手段５８は、累計数Ｎｌｄと、累計数Ｎｅｄと、累計数Ｎｈｄと、の中で、最も大きい累計数を判断し、最も大きい累計数に対応する二値化処理の方法Ｍｆｕを特定する。例えば、３つの累計数Ｎｌｄ、Ｎｅｄ、Ｎｈｄの中で、累計数Ｎｌｄが最も大きい場合は、特定手段５８は、低線数ディザマトリクス法を二値化処理の方法Ｍｆｕと特定する。
【００５０】
二値化処理の方法Ｍｆｕが特定されると、二値化処理手段５３は、図６の二値化処理を終了する。二値化処理(Ｓ５００)が実行されることによって、ＣＭＹＫ値で表現される画像データＩｍ３は、二値画像データＩｍ４に変換される。
【００５１】
ここで、それぞれの二値化処理の方法について説明する。誤差拡散法は、閾値(例えば１２８)と入力値(例えば０〜２５５の２５６階調)との差分を誤差値として収集し、複数の画素から収集された誤差値を未処理画素の入力値にフィードバック(加算または減算)させる二値化処理の方法である。一方、ディザマトリクス法は、入力値(例えば０〜２５５の２５６階調)と、Ｎ×Ｎ個(Ｎは自然数)のマトリクス内に予め設定される閾値と、を１対１で比較し、出力値(例えば０または１の２階調)を決定する方法である。
【００５２】
図７は、ディザマトリクスによって出力される二値画像データＩｍ４の例を示す図である。図７(Ａ)は、同一色で形成される領域に対してディザマトリクスを用いて二値化処理を実行した二値画像データＩｍ４を示す。横方向の１行は、それぞれ画像データの１行分を示す。なお、図７(Ａ)において、二値化処理によってオンと出力される画素は色が付され、オフと出力される画素は色が付されていない。
【００５３】
図７(Ａ)に示すように、同一色で形成される背景領域に対してディザマトリクスを用いた二値化処理が実行されると、オンと出力される画素と、オフと出力される画素と、が一定の規則で出現する。図７(Ａ)では、オンとなる画素が横方向に７つ連続するように出現した後、オフとなる画素が横方向に３つ連続するように出現する。この場合、７０％の濃度の画像データが出力される。
【００５４】
図７(Ｂ)は、文字領域に対してディザマトリクスを用いて二値化処理を実行した二値画像データＩｍ４を示す。図示するように、ディザマトリクスを用いて文字領域に対して二値化処理が実行されると、文字領域内の文字を構成する画素のうち、一部の画素がオフと出力される。
【００５５】
ところで、本実施例では、ＣＭＹＫの色ごとに、スクリーン角度が異なるディザマトリクスを用いる。そのため、オンと出力される画素と、オフと出力される画素と、が出現する規則は色ごとに相違する。なお、スクリーン角度とは、オンと出力される画素が連続する場合に、当該各画素の中心を結んだ線(以下、連続画素線)の方向と、行方向と、がなす角度である。
【００５６】
さらに、本実施例では、ディザマトリクスを用いて二値化処理を実行する際、高線数ディザマトリクスと、低線数ディザマトリクスと、の２種類のディザマトリクスを用いて二値化処理を実行する。したがって、本実施例で用いるディザマトリクスは８種類存在する(ＣＭＹＫの４色×２種類のディザマトリクス)。高線数ディザマトリクスは、低線数ディザマトリクスに比べてスクリーン線数が多いディザマトリクスである。なお、スクリーン線数とは、単位長さあたりに含まれる連続画素線の本数である。
【００５７】
図８は、高線数ディザマトリクスと低線数ディザマトリクスとの違いを示す図である。図８において、オンと出力される画素は色が付され、オフと出力される画素は色が付されていない。図８(Ａ)は、特定の画像データＩｍ３に対して高線数ディザマトリクスを用いて二値化処理を実行することによって生成された二値画像データＩｍ４を示す。図８(Ａ)において、間隔ｄｈｄは、連続画素線の間隔を示す。一方、図８(Ｂ)は、図８(Ａ)と同じ特定の画像データＩｍ３に対して低線数ディザマトリクスを用いて二値化処理を実行することによって生成された二値画像データＩｍ４を示す。図８(Ｂ)において、間隔ｄｌｄは、連続画素線を結んだ２つの線の間隔を示す。図示するように、高線数ディザマトリクスで二値化処理を実行した場合に出現する線の間隔ｄｈｄは、低線数ディザマトリクスで二値化処理を実行した場合に出現する線の間隔ｄｌｄに比べて狭い。換言すれば、高線数ディザマトリクスで二値化処理を実行した場合のスクリーン線数は、低線数ディザマトリクスで二値化処理を実行した場合のスクリーン線数よりもが多い。
【００５８】
レベルに応じた二値化処理(Ｓ５００)が終了すると、図２の画像処理において、圧縮処理手段５６は、レベルに応じた二値化処理(設定されているレベルがレベル１である場合は、図６のＳ５２０ａ)において特定された二値化処理の方法Ｍｆｕが、誤差拡散法と、高線数ディザマトリクス法と、低線数ディザマトリクス法と、のうちのいずれの方法であるかを判断する(Ｓ６００)。
【００５９】
特定された二値化処理の方法Ｍｆｕが「誤差拡散法」である場合は、圧縮処理選択手段５７は、複数の圧縮処理の方法から、誤差拡散法に適した圧縮処理の方法を選択する(Ｓ７００)。具体的には、圧縮処理選択手段５７は、実行すべき圧縮方法として、Ｆｌａｔｅ圧縮法を選択する。Ｆｌａｔｅ圧縮法は、ＬＺ７７と、ハフマン符号化と、を組み合わせた圧縮方法である。
【００６０】
特定された二値化処理の方法Ｍｆｕが「高線数ディザマトリクス法」である場合は、圧縮処理選択手段５７は、複数の圧縮処理の方法から、高線数ディザマトリクス法に適した圧縮処理を選択する(Ｓ８００)。具体的には、圧縮処理選択手段５７は、実行すべき圧縮方法として、前ライン参照圧縮法を選択する。
【００６１】
特定された二値化処理の方法Ｍｆｕが「低線数ディザマトリクス法」である場合は(Ｓ６００  低線数ディザマトリクス法)、圧縮処理選択手段５７は、複数の圧縮処理の方法から、低線数ディザマトリクス法に適した圧縮処理を選択する(Ｓ９００)。具体的には、圧縮処理選択手段５７は、実行すべき圧縮方法として、前ライン参照圧縮法を選択する。
【００６２】
前ライン参照圧縮法は、二値画像データＩｍ４における特定の行(以下、対象行)の出力パターンと、二値画像データＩｍ４における対象行の１行前の行(以下、参照行)の出力パターンと、を比較することによって、二値画像データＩｍ４を圧縮する圧縮方法である。
【００６３】
図９は、図２の圧縮処理(Ｓ１０００)が実行される前の二値画像データＩｍ４の一例を示す図である。図示するように、二値画像データＩｍ４に含まれる各行は、Ｌａｇｒと、Ｌｄｉｆと、の２種類に分類される。Ｌａｇｒは、対象行の出力パターンと参照行の出力パターンとが一致している対象行である。Ｌｄｉｆは、対象行の出力パターンと参照行の出力パターンとが一致しない対象行である。
【００６４】
図１０は、対象行の出力パターンと、参照行の出力パターンと、が一致しない場合の圧縮方法について示す。図１０(Ａ)は、対象行の出力パターンと、参照行の出力パターンと、が一致しない場合の具体例を示す。図示するように、対象行は、参照行と異なる出力パターンを有する。従って、当該対象行は、Ｌｄｉｆと判断される。
【００６５】
図１０(Ｂ)は、Ｌｄｉｆの圧縮データを規定するための比較画素群を示す。図示するように、比較画素群では、複数個の画素のオン／オフのパターンが規定される。メモリ４０は、互いにパターンが異なる複数個の比較画素群を予め記憶している。例えば、比較画素群が３画素で構成される場合は、メモリ４０は、２×２×２の８つの比較画素群を記憶している。例えば、図１０(Ｂ)の１番が示す比較画素群は、３つの画素の全てがオンと出力されるパターンを示す。
【００６６】
図１０(Ｃ)は、図１０(Ｂ)の比較画素群と、Ｌｄｉｆに含まれる画素と、の対応関係を示す。Ｌｄｉｆの圧縮データは、ランレングス符号化方式を用いて、当該複数個の比較画素群のうちのどの比較画素群が、何回連続するかを示す情報で構成される。図示するように、図１０(Ａ)に示したＬｄｉｆは、先頭から順に、図１０(Ｂ)の１番の比較画素群が１回、８番の比較画素群が５回、という順で構成される。そのため、Ｌｄｉｆの圧縮データには「１１８５」という数列が記憶される。
【００６７】
図１０(Ｄ)は、Ｌｄｉｆのデータが圧縮された場合の圧縮データについて示す。Ｌｄｉｆの圧縮データは、前ライン参照フラグと、データサイズ情報と、圧縮データと、を含む。前ライン参照フラグは、対象行と、参照行と、の出力パターンが一致しない(すなわち、Ｌｄｉｆである)ことを示す情報(例えば、「０」というフラグ情報)が記憶される。データサイズ情報は、ランレングス符号化方式を用いて圧縮された圧縮データのデータサイズを示す情報が記憶される。圧縮データには、ランレングス符号化を用いて圧縮されたデータ(例えば、上述した数列「１１８５」を示す情報)が記憶される。
【００６８】
なお、二値画像データＩｍ４の最も上位の行が対象行である場合は、参照行が存在しない。そのため、比較画素群を用いて、ランレングス符号化方式によって圧縮データが生成される。
【００６９】
図１１は、対象行の出力パターンと、参照行の出力パターンと、が一致する場合の圧縮方法について示す。図１１(Ａ)は、対象行の出力パターンと、参照行の出力パターンと、が一致する場合の具体例を示す。図示するように、対象行は、参照行と同じ出力パターンを有する。従って、当該対象行は、Ｌａｇｒと判断される。
【００７０】
図１１(Ｂ)は、Ｌａｇｒのデータが圧縮された場合の圧縮データについて示す。Ｌａｇｒの圧縮データは、前ライン参照フラグと、展開回数情報と、を含む。前ライン参照フラグは、参照行と、対象行と、の出力パターンが一致する(すなわち、Ｌａｇｒである)ことを示す情報(例えば、「１」というフラグ情報)が記憶される。展開回数情報は、Ｌａｇｒが縦方向に何ライン連続するかを示す情報が記憶される。例えば、Ｌａｇｒが縦方向に１０行連続して存在する場合は、展開回数情報に「１０」が記憶される。
【００７１】
図１０に示したように、本実施例では、前ライン参照圧縮法によって二値画像データＩｍ４を圧縮する際、参照行の出力パターンと、対象行の出力パターンと、が一致しない場合に、比較画素群を用いて圧縮データを生成する。ここで、比較画素群に含まれる画素の数は、二値化処理の際に用いられたディザマトリクスの種類に応じて決定されることが好ましい。そこで、本実施例では、高線数ディザマトリクス法を用いて二値化処理が実行された場合と、低線数ディザマトリクス法を用いて二値化処理が実行された場合とで、異なる比較画素群を用いて圧縮データを生成する。
【００７２】
図１２は、二値化処理の方法と、比較画素群と、の対応関係を示す図である。図１２(Ａ)は、高線数ディザマトリクス法を用いて二値化処理が実行された二値画像データＩｍ４を圧縮する際に用いられる比較画素群を示す。図１２(Ｂ)は、低線数ディザマトリクス法を用いて二値化処理が実行された二値画像データＩｍ４を圧縮する際に用いられる比較画素群を示す。図示するように、本実施例では、高線数ディザマトリクス法を用いた二値画像データＩｍ４を圧縮する際に用いられる比較画素群の画素数(例えば３画素)は、低線数ディザマトリクス法を用いた二値画像データＩｍ４を圧縮する際に用いられる比較画素群の画素数(例えば４画素)よりも少なくなるようにメモリ４０に記憶されている。換言すれば、高線数ディザマトリクス法を用いた二値画像データＩｍ４を圧縮する際に用いられる比較画素群のパターンの数(例えば比較画素群を構成する画素の数が３画素である場合は、２３＝８パターン)は、低線数ディザマトリクス法を用いた二値画像データＩｍ４を圧縮する際に用いられる比較画素群のパターンの数(例えば比較画素群を構成する画素の数が４画素である場合は、２４＝１６パターン)よりも少なくなるようにメモリ４０に記憶されている。このように、高線数ディザマトリクス法を用いて二値化処理が実行された場合と、低線数ディザマトリクス法を用いて二値化処理が実行された場合とで、異なる比較画素群を用いて圧縮データを生成することによって、圧縮データのサイズを効率よく小さくすることができる。
【００７３】
二値化処理の方法と、圧縮処理の方法と、の対応関係について考察する。誤差拡散法は、上述したように、閾値(例えば１２８)と入力値(例えば０〜２５５の２５６階調)との差分を誤差値として収集し、複数の画素から収集された誤差値を未処理画素の入力値にフィードバック(加算または減算)させる二値化処理の方法である。従って、未処理画素がオンと出力されるか否かは、フィードバックされる値に左右される。その結果、オン／オフが特定のパターンである複数個の画素によって構成される特定の画素群が二値画像データＩｍ４に出現する頻度が、ディザマトリクスを用いて二値化処理が実行された二値画像データＩｍ４に出現する頻度に比べて少なくなる傾向にある。ＦＬＡＴＥ圧縮法は、二値画像データＩｍ４内の画素のパターンが類似しにくい(すなわち、当該特定の画素群が二値画像データＩｍ４に出現する出現頻度が特定の頻度(例えば５０％)よりも少ない)二値画像データＩｍ４を圧縮する際に有効な圧縮方法であることが知られている。従って、本実施例では、誤差拡散法を用いて二値化処理が実行された二値画像データＩｍ４を圧縮する際は、ＦＬＡＴＥ圧縮法を用いて圧縮済み画像データＩｍ５が生成される。
【００７４】
一方、ディザマトリクスを用いた二値化処理の方法は、図７に示したように、オン／オフが特定のパターンである複数個の画素によって構成される特定の画素群の出現する頻度が、誤差拡散法を用いて二値化処理が実行された二値画像データＩｍ４に出現する頻度に比べて多くなる傾向にある。上述したように、前ライン参照圧縮法では、二値画像データＩｍ４における特定の行(対象行)と、二値画像データＩｍ４において対象行の１行前の行(参照行)と、の出力パターンが比較される。当該２つの行の画素のパターンが一致している場合は、当該２つの行が一致することを示す情報が記憶されればよい。また、当該２つの行が一致しない場合であっても、図１１(Ｂ)に示す複数個のディザパターンのうち、同一のディザパターンが連続する部分については、連続することを示す情報(例えば、図１１(Ｂ)のディザパターン番号「２」が４回連続するという情報)が記憶されればよい。このように、前ライン参照圧縮法は、画素のパターンが類似しやすい(すなわち、特定の画素群が二値画像データＩｍ４に出現する出現頻度が特定の頻度(例えば５０％)以上である)二値画像データＩｍ４を圧縮する際に有効な圧縮方法であると考えられる。従って、本実施例では、ディザマトリクス(高線数ディザマトリクス、低線数ディザマトリクス)を用いて二値化処理が実行された二値画像データＩｍ４を圧縮する際は、前ライン参照圧縮法を用いて圧縮済みデータＩｍ５が生成される。
【００７５】
図２の画像処理において、圧縮処理手段５６は、選択された圧縮処理の方法で、二値画像データＩｍ４を圧縮する(Ｓ１０００)。これにより、二値画像データＩｍ４は、圧縮済み画像データＩｍ５に変換される。
【００７６】
圧縮済み画像データＩｍ５が生成されると、サイズ判断手段５９は、圧縮済み画像データＩｍ５のサイズが、閾値以下であるか否かを判断する(Ｓ１１００)。閾値は、圧縮済み画像データをプリンタ７０に送信するために許容される最大のサイズに応じて決定される値である。
【００７７】
圧縮済み画像データＩｍ５のサイズが閾値以下である場合は(Ｓ１１００  ＹＥＳ)、供給手段６０は、圧縮済み画像データＩｍ５をプリンタ７０に供給する(Ｓ１２００)。これにより、プリンタ７０は、供給された圧縮済み画像データＩｍ５を展開し、展開された二値画像データＩｍ４を印刷することができる。
【００７８】
一方、圧縮済み画像データＩｍ５のサイズが閾値よりも大きい場合は(Ｓ１１００  ＮＯ)、圧縮済み画像データＩｍ５をプリンタ７０に送信することができないため、二値化処理手段５３は、レベル設定フラグ４３を参照し、設定されているレベルを判断する(Ｓ１３００)。
【００７９】
レベル設定フラグ４３で設定されているレベルが、レベル１と、レベル２と、レベル３と、のうちのいずれかのレベルである場合は(Ｓ１３００  レベル１、レベル２、レベル３)、二値化処理手段５３は、レベル設定処理(Ｓ４００)を実行することによって、新たなレベルを設定する。
【００８０】
このように、二値化処理手段５３は、圧縮済み画像データＩｍ５のサイズが閾値よりも大きい場合に、圧縮済み画像データＩｍ５のサイズを小さくするために、新たなレベルを設定し、設定されたレベルで規定される二値化処理の方法を用いて再度二値化処理を実行し、二値画像データＩｍ４を生成しなおす。こうすることで、圧縮処理手段５６は、プリンタ７０に送信することが許容されなかった圧縮済み画像データＩｍ５のサイズが小さくなるよう生成することができる。この結果、圧縮済み画像データＩｍ５がプリンタ７０に送信される確率が高まる。
【００８１】
一方、図２の画像処理において、レベル設定フラグ４３で設定されているレベルが、レベル４と、レベル５と、のいずれかのレベルである場合は、通知手段６１は、圧縮済み画像データのサイズがプリンタ７０に供給できないために、印刷を実行することが不可能である旨の通知をプリンタ７０に通知する(Ｓ１４００)。
【００８２】
図１３は、本実施例のレベル設定処理を示すフローチャートである。
【００８３】
二値化方法選択手段は、すでにレベルが設定されているか否かを判断する(Ｓ４１０)。具体的には、レベル設定フラグ４３を参照し、いずれかのレベルを示す情報が既に書き込まれているか否かを判断する。
【００８４】
レベルが未だ設定されていない場合は(Ｓ４１０  ＮＯ)、二値化方法選択手段は、二値化テーブル４２における「レベル１」の二値化方法群が選択されるよう、レベル設定フラグ４３に「１」を示す情報を書き込む(Ｓ４２０)。なお、Ｓ４１０でＮＯとなる場合は、図２の画像処理の実行が開始されてから初めてレベル設定処理が実行される場合である。
【００８５】
一方、レベルが既に設定されている場合は(Ｓ４１０  ＹＥＳ)、二値化方法選択手段は、設定されているレベルを判断する(Ｓ４３０)。具体的には、二値化方法選択手段は、レベル設定フラグ４３を参照し、設定されているレベルが、レベル１と、レベル２と、レベル３と、のいずれのレベルであるかを判断する。
【００８６】
レベル設定フラグ４３に設定されているレベルが、「レベル１」である場合は(Ｓ４３０  レベル１)、二値化方法群選択手段は、レベル設定フラグ４３に設定されているレベルを、「レベル２」に変更する(Ｓ４４０)。
【００８７】
一方、設定されているレベルが、「レベル２」である場合は(Ｓ４３０  レベル２)、比較手段５５は、図１４の二値化処理でのＳ５２０ｂにおいて特定された二値化処理の方法Ｍｆｕが、低線数ディザマトリクス法と、高線数ディザマトリクス法と、のどちらの方法であるかを判断する(Ｓ４５０)。
【００８８】
特定された二値化処理の方法Ｍｆｕが、低線数ディザマトリクスである場合は(Ｓ４５０  低線数ディザマトリクス)、二値化方法選択手段は、レベル設定フラグ４３に設定されているレベルを、「レベル３」に変更する(Ｓ４６０)。
【００８９】
特定された最も多い二値化処理の方法Ｍｆｕが、高線数ディザマトリクスである場合は(Ｓ４５０  高線数ディザマトリクス)、二値化処理選択手段５４は、レベル設定フラグ４３に設定されているレベルを、「レベル４」に変更する(Ｓ４７０)。
【００９０】
図１３のレベル設定処理において、設定されているレベルが、「レベル３」である場合は(Ｓ４３０  レベル３)、二値化方法群選択手段は、レベル設定フラグ４３に設定されているレベルを、「レベル５」に変更する(Ｓ４８０)。
【００９１】
以下に、設定されたレベルがレベル２からレベル５である場合に実行される二値化処理について説明する。
【００９２】
図１４は、レベル２で実行される二値化処理を示すフローチャートである。
【００９３】
レベル１で実行される二値化処理と同様に、二値化処理手段５３は、処理すべき画素を選択し(Ｓ５０２ｂ)、選択された画素の属性を判断する(Ｓ５０４ｂ)。レベル２では、図５の二値化テーブル４２に示すように、画素の属性がグラフィックである場合は低線数ディザマトリクス法を用いて二値化処理を実行する(Ｓ５０６ｂ、Ｓ５０８ｂ)。また、画素の属性が文字である場合は、高線数ディザマトリクス法を用いて二値化処理を実行する(Ｓ５１０ｂ、Ｓ５１２ｂ)。また、画素の属性が写真である場合は、二値化処理手段５３は、高線数ディザマトリクス法を用いて二値化処理を実行する(Ｓ５１４ｂ、Ｓ５１６ｂ)。全ての画素に対して二値化処理が実行されると(Ｓ５１８ｂ  ＹＥＳ)、特定手段５８は、最も多く用いられた二値化処理の方法Ｍｆｕを特定する(Ｓ５２０ｂ)。
【００９４】
図１５は、レベル３で実行される二値化処理を示すフローチャートである。
【００９５】
レベル１で実行される二値化処理と同様に、二値化処理手段５３は、処理すべき画素を選択し(Ｓ５０２ｃ)、選択された画素の属性を判断する(Ｓ５０４ｃ)。レベル３では、図５の二値化テーブル４２に示すように、画素の属性がグラフィックである場合は低線数ディザマトリクス法を用いて二値化処理を実行する(Ｓ５０６ｃ、Ｓ５０８ｃ)。また、画素の属性が文字である場合は、高線数ディザマトリクス法を用いて二値化処理を実行する(Ｓ５１０ｃ〜Ｓ５１２ｃ)。また、画素の属性が写真である場合は、二値化処理手段５３は、低線数ディザマトリクス法を用いて二値化処理を実行する(Ｓ５１４ｃ、Ｓ５１６ｃ)。全ての画素に対して二値化処理が実行されると(Ｓ５１８ｃ  ＹＥＳ)、特定手段５８は、最も多く用いられた二値化処理の方法Ｍｆｕを特定する(Ｓ５２０ｃ)。
【００９６】
図１６は、レベル４で実行される二値化処理を示すフローチャートである。
【００９７】
レベル１で実行される二値化処理と同様に、二値化処理手段５３は、処理すべき画素を選択する(Ｓ５０２ｄ)。レベル４では、図５の二値化テーブル４２に示すように、全ての画素に対して高線数ディザマトリクス法を用いて二値化処理を実行する(Ｓ５１４ｄ)。全ての画素に対して二値化処理が実行されると(Ｓ５１８ｄ  ＹＥＳ)、特定手段５８は、二値化処理の方法Ｍｆｕとして、高線数ディザマトリクスを選択する(Ｓ５２０ｄ)。
【００９８】
図１７は、レベル５で実行される二値化処理を示すフローチャートである。
【００９９】
レベル１で実行される二値化処理と同様に、二値化処理手段５３は、処理すべき画素を選択する(Ｓ５０２ｅ)。レベル５では、図５の二値化テーブル４２に示すように、全ての画素に対して低線数ディザマトリクス法を用いて二値化処理を実行する(Ｓ５０８ｅ)。全ての画素に対して二値化処理が実行されると(Ｓ５１８ｅ  ＹＥＳ)、特定手段５８は、二値化処理の方法Ｍｆｕとして、低線数ディザマトリクスを選択する(Ｓ５２０ｄ)。
【０１００】
以上のように、本実施例では、二値化処理手段５３は、図５の二値化対応テーブル４２に基づいて、それぞれのレベルに応じた二値化処理を実行する。本実施例では、圧縮処理手段５６は、１種類の圧縮処理の方法を用いて二値画像データＩｍ４に対して圧縮処理を実行する。しかしながら、上述したように、誤差拡散法とディザマトリクス法とは、それぞれ適した圧縮方法が存在する。具体的には、誤差拡散法に適した圧縮方法はＦＬＡＴＥ圧縮法であり、ディザマトリクス法に適した圧縮方法は前ライン参照法である。このため、画像データＩｍ３を二値化処理する際に、実行される二値化処理の種類が多くなればなるほど、適切な圧縮処理がなされる領域が減少し、圧縮効率が低下する。そのため、本実施例では、二値化対応テーブル４２は、設定されるレベルが大きいほど、実行される二値化処理の種類が少なくなるように規定されている。こうすることで、圧縮処理手段５３は、圧縮効率を高めることができる。
【０１０１】
以上説明したように、端末装置１０は、プリンタ７０の図示しない印刷実行部に印刷を実行させるために、色変換処理(図２のＳ３００)が実行された画像データＩｍ３に対して、特定のレベルの二値化処理(例えば図６に示されるレベル１の二値化処理)を実行し、二値画像データＩｍ４を生成する。その後、端末装置１０は、二値画像データＩｍ４に対して、圧縮処理(図２のＳ７００〜Ｓ９００)を実行し、圧縮済み画像データＩｍ５を生成する。端末装置１０は、図２のＳ１１００において、圧縮済み画像データＩｍ５のサイズが閾値よりも大きいか否かを判断する。圧縮済み画像データＩｍ５が閾値よりも大きいと判断される場合は、端末装置１０は、特定のレベルの二値化処理と異なる二値化処理(例えば図１４に示されるレベル２の二値化処理)を実行し、二値画像データを生成する。例えば、特定のレベルの二値化処理として、誤差拡散法を用いて特定の領域の二値化処理が実行された場合に、特定のレベルの二値化処理と異なる二値化処理として、高線数ディザマトリクス法を用いて当該特定の領域の二値化処理が実行される。このように、端末装置１０は、圧縮済み画像データＩｍ５のサイズが、閾値よりも大きいと判断される場合に、適切な二値化処理の方法を用いて、再度二値画像データＩｍ４を生成することができる。この結果、例えば、レベル１で実行される二値化処理に代えて、レベル２で実行される二値化処理で再度二値画像データを生成し、圧縮済み画像データを生成し直すことができる。
【０１０２】
(変形例)
なお、本発明における技術的範囲は、上述した実施例に限られるものではなく、以下に示すような種々の態様によって実施することが可能である。
【０１０３】
(１)上述した実施例では、端末装置が図２の画像処理を実行することを記載したが、これに代えて、プリンタ７０が図２の画像処理を実行してもよい。
【０１０４】
(２)上述した実施例では、二値化対応テーブル４２に規定される二値化処理の方法によって二値化されることを記載したが、二値化対応テーブル４２で規定される二値化処理の組み合わせは異なってもよい。例えば、設定されるレベルがレベル１である場合に、本実施例では、文字である領域に対して誤差拡散法を用いて二値化処理を実行しているが、高線数ディザマトリクス法を用いて二値化処理を実行してもよい。
【０１０５】
(３)上述した実施例では、二値画像データＩｍ４が誤差拡散法を用いて二値化処理が実行された画像データである場合は、ＦＬＡＴＥ圧縮法を用いて圧縮処理を実行することを記載したが、異なる圧縮方法であってもよい。例えば、誤差拡散法を用いて二値化処理が実行された二値画像データＩｍ４に対して、前ライン参照圧縮法で圧縮処理が実行されてもよい。
【０１０６】
また、本実施例では、二値画像データＩｍ４が高線数ディザマトリクス法または低線数ディザマトリクス法を用いて二値化処理が実行された画像データである場合は、前ライン参照圧縮法を用いて圧縮処理を実行することを記載したが、異なる圧縮方法であってもよい。例えば、高線数ディザマトリクス法を用いて二値化処理が実行された二値画像データＩｍ４に対して、ＦＬＡＴＥ圧縮法で圧縮処理が実行されてもよい。
【０１０７】
このように、少なくとも、一の二値化処理の方法と、当該一の二値化処理の方法で二値化処理が実行された二値画像データに対する一の圧縮方法と、が対応付けられていればよい。
【０１０８】
(４)上述した実施例では、二値画像データＩｍ４に含まれる各画素に対して適用された二値化処理の方法の中で、適用された回数が最も多い二値化処理の方法を、図２のＳ６００で特定される二値化処理の方法Ｍｆｕと特定しているが、異なる構成であってもよい。例えば、第１種の二値化処理の方法(例えば低線数ディザマトリクス法)が特定の割合以上(例えば３０％以上)で適用されている場合は、当該二値化処理の方法が最も多く適用されていなくても(すなわち、第２種の二値化処理の方法(例えば誤差拡散法)が最も多く適用されている場合であっても)、当該第１種の二値化処理の方法に応じた圧縮処理の方法で圧縮処理が実行されてもよい。このように、第１種の二値化処理の方法が適用された回数と、第２種の二値化処理の方法が適用された回数と、に応じて、特定の圧縮処理の方法を選択する構成とすることが可能である。
【０１０９】
(５)上述した各実施例では、制御部２０が画像処理プログラム４１に従って処理を実行することによって、各手段５１〜６１の機能が実現されるが、各手段５１〜６１の少なくとも１個は、論理回路等のハードウェアで実現されてもよい。
【符号の説明】
【０１１０】
１０…端末装置、２０…制御部、２１…表示部、２２…操作部、２３…ネットワークインターフェース、３０…ＣＰＵ、４０…メモリ、４１…画像処理プログラム、４２…二値化対応テーブル、４３…レベル設定フラグ、４４…属性データ、５１…属性判断手段、５２…色変換手段、５３…二値化処理手段、５４…二値化処理選択手段、５５…比較手段、５６…圧縮処理手段、５７…圧縮処理選択手段、５８…特定手段、５９…サイズ判断手段、６０…供給手段、６１…通知手段、７０…プリンタ、８０…ＬＡＮ
【図１】
2013106240.tif 000003
【図２】
2013106240.tif 000004
【図３】
2013106240.tif 000005
【図５】
2013106240.tif 000006
【図６】
2013106240.tif 000007
【図１３】
2013106240.tif 000008
【図１４】
2013106240.tif 000009
【図１５】
2013106240.tif 000010
【図１６】
2013106240.tif 000011
【図１７】
2013106240.tif 000012
【図４】
2013106240.tif 000013
【図７】
2013106240.tif 000014
【図８】
2013106240.tif 000015
【図９】
2013106240.tif 000016
【図１０】
2013106240.tif 000017
【図１１】
2013106240.tif 000018
【図１２】
2013106240.tif 000019