説明

制御装置及びプログラム

【課題】二値画像データに対して圧縮処理を実行するための技術を提供する。
【解決手段】制御装置は、二値化処理手段と、圧縮処理手段を備える。二値化処理手段は、原画像データに対して、第1種の二値化処理の方法と、第2種の二値化処理の方法と、を含む複数種類の二値化処理の方法のうちの少なくとも1種類の二値化処理の方法を用いて二値化処理を実行して、二値画像データを生成する。圧縮処理手段は、二値画像データに対して、複数種類の圧縮処理の方法のうちの1種類の特定の圧縮処理の方法を用いて圧縮処理を実行して、圧縮済み画像データを生成する。圧縮処理手段は、第1種の二値化処理の方法が適用された回数と、第2種の二値化処理の方法が適用された回数と、に応じて、複数種類の圧縮処理の方法から、特定の圧縮処理の方法を選択する圧縮方法選択手段を備える。圧縮処理手段は、特定の圧縮処理の方法を用いて、二値画像データを圧縮する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、二値画像データを圧縮するための技術に関する。
【背景技術】
【0002】
印刷実行部に画像を印刷させるために、制御装置は、画像データを二値化処理することによって二値画像データを生成し、当該二値画像データに対して圧縮処理を実行する。例えば特許文献1は、圧縮処理を実行する際、画像内の線画の領域に対して第1の圧縮処理を実行し、画像内の連続階調画像の領域に対して第2の圧縮処理を実行する技術を開示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−96281号公報
【特許文献2】特開2004−25571号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、圧縮処理が適切に実行されない場合があった。
本発明は、上述した問題点を解決するためになされたものであり、適切な圧縮処理の方法で二値画像データに対して圧縮処理を実行するための技術を提供する。
【課題を解決するための手段】
【0005】
この目的を達成するために、本発明の第1の装置は、原画像データに対して、第1種の二値化処理の方法と、第2種の二値化処理の方法と、を含む複数種類の二値化処理の方法のうちの少なくとも1種類の二値化処理の方法を用いて二値化処理を実行して、二値画像データを生成する二値化処理手段と、前記二値画像データに対して、第1種の圧縮処理の方法と、第2種の圧縮処理の方法と、を含む複数種類の圧縮処理の方法のうちの1種類の特定の圧縮処理の方法を用いて圧縮処理を実行して、圧縮済み画像データを生成する圧縮処理手段であって、前記第1種の圧縮処理の方法は、前記第1種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法であり、前記第2種の圧縮処理の方法は、前記第2種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法である、前記圧縮処理手段と、を備え、前記圧縮処理手段は、前記第1種の二値化処理の方法と、前記第2種の二値化処理の方法と、を含む2種類以上の二値化処理の方法が用いられて前記二値画像データが生成される場合に、前記第1種の二値化処理の方法が適用された回数と、前記第2種の二値化処理の方法が適用された回数と、に応じて、前記複数種類の圧縮処理の方法から、前記特定の圧縮処理の方法を選択する圧縮方法選択手段を備え、前記圧縮処理手段は、前記特定の圧縮処理の方法を用いて、前記二値画像データを圧縮することを特徴とする。
【0006】
この構成により、2種類以上の二値化処理の方法を用いて二値画像を生成する際に、それぞれの二値化処理の方法が適用された回数に応じて、適切な圧縮処理の方法で圧縮処理を実行することができる。
【0007】
また、上記の装置において、さらに、前記圧縮方法選択手段は、前記複数種類の二値化処理の方法が用いられて前記二値画像データが生成される場合に、前記複数種類の二値化処理の方法の中から、適用された回数が最も多い二値化処理の方法を特定する特定手段を備え、前記圧縮処理選択手段は、前記第1種の二値化処理の方法が適用された回数が最も多い場合に、前記特定の圧縮処理の方法として、前記第1種の圧縮処理の方法を選択し、前記第2種の二値化処理の方法が適用された回数が最も多い場合に、前記特定の圧縮処理の方法として、前記第2種の圧縮処理の方法を選択することが好ましい。
【0008】
この構成により、2種類以上の二値化処理の方法を用いて二値画像を生成する際に、それぞれの二値化処理の方法が適用された回数に応じて、適切な圧縮処理の方法で圧縮処理を実行することができる。例えば、2種類以上の二値化処理の方法のうち、第1の二値化処理の方法が適用された回数が最も多い場合に、第1の二値化処理の方法に適した圧縮処理の方法で二値画像データを圧縮することができる。
【0009】
また、上記の装置において、前記第1種の二値化処理の方法は、誤差拡散法を用いた二値化処理の方法であり、前記第2種の二値化処理の方法は、ディザマトリクスを用いた二値化処理の方法であり、前記圧縮処理手段は、前記最も多く用いられた二値化処理の方法が前記第1種の二値化処理の方法である場合に、複数個の画素によって構成される特定の画素群が前記二値画像データ内に出現する出現頻度が特定の頻度よりも少ない前記二値画像データに適する第1の圧縮方法によって前記二値画像データを圧縮し、前記最も多く用いられた二値化処理の方法が前記第2種の二値化処理の方法である場合に、前記特定の画素群が前記二値画像データ内に出現する出現頻度が前記特定の頻度以上である前記二値画像データに適する第2の圧縮処理の方法によって、前記二値画像データを圧縮することが好ましい。
【0010】
この構成により、特定の画素群が二値画像データに出現する出現頻度に応じて決定される適切な圧縮処理の方法によって、二値画像データを圧縮することができる。
【0011】
また、上記の装置において、前記第1の圧縮方法は、FLATE圧縮であり、前記第2の圧縮方法は、比較処理と、生成処理と、を含み、前記比較処理は、前記二値画像データを構成する第1の行の画素のパターンと、前記特定の行に隣接する第2の行の画素のパターンと、を比較する処理であり、前記生成処理は、前記第1の行の画素のパターンと、前記第2の行の画素のパターンと、が一致する場合に、第1の方法で前記圧縮済みデータを生成し、前記第1の行の画素のパターンと、前記第2の行の画素のパターンと、が一致しない場合に、前記第1の方法と異なる第2の方法で圧縮済み画像データを生成することが好ましい。
【0012】
また、上記の装置において、前記第1の方法は、前記第1の行の画素のパターンが前記二値画像データ内に出現する回数を示す情報を用いて圧縮済画像データを生成する方法であり、前記第2の方法は、前記特定の画素群を含む複数種類の画素群を用いたランレングス符号化によって圧縮済み画像データを生成する方法であることが好ましい。
【0013】
また、上記の装置において、前記二値化処理手段は、スクリーン線数が第1の値である第1のディザマトリクスを用いて前記第1種の二値化処理を実行し、スクリーン線数が前記第1の値よりも多い第2の値である第2のディザマトリクスを用いて第2種の二値化処理を実行し、前記複数種類の二値化処理の方法のうち前記第1種の二値化処理の方法が適用された回数が最も多い場合は、前記第2の方法で用いられる前記複数種類の画素群を構成する画素数は、第1の画素数であり、前記複数種類の二値化処理の方法のうち前記第2種の二値化処理の方法が適用された回数が最も多い場合は、前記第2の方法で用いられる前記複数種類の画素群を構成する画素数は、前記第1の画素数と異なる第2の画素数であることが好ましい。
【0014】
なお、この発明は、制御装置及び制御装置で実行される方法、これらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の種々の態様で実現することができる。
【図面の簡単な説明】
【0015】
【図1】印刷システムの概略構成を示すブロック図。
【図2】画像処理を示すフローチャート。
【図3】図2の属性の判断処理を示すフローチャート。
【図4】属性データ44を示す図。
【図5】二値化対応テーブル42を示す図。
【図6】図2の二値化処理(レベル1)を示すフローチャート。
【図7】ディザマトリクスによって出力される画像データの例を示す図。
【図8】高線数ディザマトリクスと低線数ディザマトリクスとの違いを示す図。
【図9】図2の圧縮処理(S1000)が実行される前の二値画像データの一例を示す図。
【図10】前ライン参照圧縮法における、対象行と、参照行と、の出力パターンが一致しない場合の圧縮方法について示す図。
【図11】前ライン参照圧縮法における、対象行と、参照行と、の出力パターンが一致する場合の圧縮方法について示す図。
【図12】二値化処理の方法と、比較画素群と、の対応関係を示す図。
【図13】図2のレベル設定処理を示すフローチャート。
【図14】図2の二値化処理(レベル2)を示すフローチャート。
【図15】図2の二値化処理(レベル3)を示すフローチャート。
【図16】図2の二値化処理(レベル4)を示すフローチャート。
【図17】図2の二値化処理(レベル5)を示すフローチャート。
【発明を実施するための形態】
【0016】
(実施例)
(端末装置の構成)
図1は、本実施例における印刷システムの概略構成を表すブロック図である。
【0017】
印刷システムは、端末装置10とプリンタ70とを備える。端末装置10とプリンタ70とは、LAN(ローカルエリアネットワーク)80を介して接続されている。
【0018】
端末装置10は、制御部20と、表示部21と、操作部22と、ネットワークインターフェース23と、を備えており、それぞれがバス線で接続されている。ネットワークインターフェース23は、LAN80と接続されている。
【0019】
制御部20は、CPU30と、メモリ40と、を備える。メモリ40は、画像処理プログラム41を備える。CPU30は、画像処理プログラム41に従って処理を実行する。CPU30が画像処理プログラム41に従って処理を実行することによって、各手段51〜61の機能が実現される。また、メモリ40は、二値化対応テーブル42と、レベル設定フラグ43と、を記憶する。
【0020】
本実施例では、属性判断手段51は、画像データによって表現される画像内の各領域の属性を判断する。色変換手段52は、RGB値で表現される画像データを、CMYK値で表現される画像データに変換する。二値化処理手段53は、比較手段55を備える二値化処理選択手段54を備え、CMYK値で表現される画像データに対して二値化処理を実行する。圧縮処理手段56は、特定手段58を備える圧縮処理選択手段57を備え、二値化処理が実行されて生成される二値画像データに対して圧縮処理を実行する。サイズ判断手段59は、圧縮処理が実行されて生成される圧縮済み画像データのサイズが、閾値よりも大きいか否かを判断する。供給手段60は、圧縮済み画像データが閾値以下である場合に、圧縮済み画像データをプリンタ70に供給する。通知手段61は、圧縮済み画像データのサイズが閾値よりも大きい場合に、圧縮済み画像データをプリンタ70に供給することができない旨を通知する。
【0021】
二値化対応テーブル42は、プリンタドライバが外部のサーバ(例えば、プリンタ70を提供する企業が保有するサーバ)からダウンロードされる際に、当該プリンタドライバとともに取得される。なお、二値化対応テーブル42は、CD等の記憶媒体に記憶された状態で提供されてもよい。
【0022】
表示部21は、各種の画面を表示する。操作部22は、キーボードやポインティングデバイスを備えている。ユーザは、操作部22を操作することによって、表示部21に表示される項目を選択することができる。
【0023】
(画像処理)
図2は、本実施例で実行される画像処理を示すフローチャートである。
【0024】
画像処理は、ユーザが端末装置10の操作部22を操作することによって、印刷を所望する画像データIm1が選択され、印刷が指示されることにより開始される。画像データIm1は、例えば、端末装置10の図示しないメモリ装着部を介して、USBメモリ等の可搬型メモリから読み込まれ、メモリ40に記憶されている。画像データIm1は、オブジェクトの位置や形状、色等を示すパラメータを含む。
【0025】
画像データIm1が選択されると、属性判断手段51は、選択された画像データIm1の属性の判断処理を実行する(S200)。
【0026】
図3は、属性の判断処理を示すフローチャートである。
【0027】
属性判断手段51は、画像データIm1に基づいて画像データIm2を生成するために処理すべき描画命令を取得する(S210)。具体的には、描画命令は、画像データIm1から、ラスタで構成される画像データIm2を生成するために必要な命令である。なお、ラスタは、画素ごとにRGB値が付与された1ラインごとの画素の集合である。
【0028】
属性判断手段51は、当該描画命令に基づいて、描画処理(ラスタライズ処理)を実行する(S220)。描画処理が実行されることにより、画像データIm2が生成される。画像データIm2を構成する画素は、R(レッド)、G(グリーン)、B(ブルー)のRGB色空間のRGB値で表現される。RGB値の各成分は、例えば0から255の256階調で表現される。
【0029】
続いて、属性判断手段51は、描画命令が示す文字列を解析することによって、当該描画命令が、図形描画命令と、文字描画命令と、のどちらであるかを判断する(S230)。なお、属性判断手段51は、描画処理が実行された画像データIm2の画素密度や階調分布を算出することによって、各領域の属性を判断してもよい。
【0030】
図4は、S220の描画命令によって生成される画像データIm2と、S230の判断結果に基づいて生成される属性データ44と、の対応関係を示す図である。図4(A)は、画像データIm2によって表現される画像を示す。図示するように、画像データIm2によって表現される画像は、グラフィック領域ArGと、文字領域ArTと、写真領域ArPと、を含む。グラフィック領域ArGは、矩形や円等の図形が描画された領域によって構成されるオブジェクトの領域である。文字領域ArTは、文字オブジェクトが描画された領域である。写真領域ArPは、撮影された画像が描画された領域によって構成されるオブジェクトの領域である。それぞれのオブジェクトは、1または複数の領域によって構成される。
【0031】
図4(B)は、属性データ44によって表現される画像を示す図である。当該画像は、図4(A)の3種類の領域ArG、ArT、ArPに対応する3種類の領域を含む。属性データ44は、予め「0」で初期化されている。
【0032】
図示するように、グラフィック領域ArGに対応する領域には、例えば「1」が記憶される。文字領域ArTに対応する領域には、例えば「2」が記憶される。写真領域ArPに対応する領域には、例えば「3」が記憶される。3種類の領域のうちのいずれの領域にも属しない領域(以下、背景領域)には、例えば「0」が記憶される(すなわち、初期化の状態が維持される)。
【0033】
図3のS230において、S210で取得された描画命令がグラフィック描画命令である場合は、属性判断手段51は、属性データ44内の描画命令によって処理された領域の属性を「グラフィック」に設定する(S240)。具体的には、属性データ44によって表現される画像内の該当する領域に含まれる画素に、「1」を記憶する。
【0034】
図3のS230において、S210で取得された描画命令が文字描画命令である場合は、属性判断手段51は、属性データ44内の描画命令によって処理された領域の属性を「文字」に設定する(S250)。具体的には、属性データ44によって表現される画像内の該当する領域に含まれる画素に、「2」を記憶する。
【0035】
図3のS230において、S210で取得された描画命令が、グラフィック描画命令と、文字描画命令と、のいずれの描画命令でもない場合は、属性判断手段51は、属性データ44内の描画命令によって処理された領域の属性を「写真」に設定する(S260)。具体的には、属性データ44で表現される画像内の該当する領域に含まれる画素に、「3」を記憶する。
【0036】
続いて、属性判断手段51は、画像データIm1に含まれる全ての描画命令に基づく描画処理を実行したか否かを判断する(S270)。描画処理が実行されていない描画命令が存在する場合は(S270 NO)、属性判断手段51は、処理をS210に戻し、次に処理すべき描画命令を選択する。一方、全ての描画命令に対する描画処理が終了している場合は(S270 YES)、属性判断手段51は、図3の属性の判断処理を終了する。
【0037】
図2の属性の判断処理(S200)が終了すると、色変換手段52は、描画処理が実行された画像データIm2に対して色変換処理を実行する(S300)。色変換手段52は、画像データIm2の各画素のRGB値を、C(シアン)、M(マゼンタ)、Y(イエロー)、K(ブラック)のCMYK色空間のCMYK値に変換する。CMYK値の各成分は、例えば0から255の256階調で表現される。色変換処理が実行されることによって、CMYK値で表現される画像データIm3がメモリ40に記憶される。
【0038】
続いて、二値化処理手段53は、レベル設定処理を実行する(S400)。
【0039】
図5は、複数のレベルと、各レベルで実行される二値化処理の組み合わせと、を規定した二値化対応テーブル42を示す図である。本実施例では、二値化処理手段53は、設定されるレベルに応じて、属性ごとに異なる二値化処理の方法を用いて二値化処理を実行する。例えば、設定されるレベルがレベル1である場合は、二値化処理手段53は、属性データ44で属性が「文字」とされている領域に含まれる画素に対して、誤差拡散法を用いた二値化処理を実行する。また、二値化処理手段53は、属性データ44で属性が「グラフィック」とされている領域に含まれる画素に対して、低線数ディザマトリクス法を用いた二値化処理を実行する。また、二値化処理手段53は、属性データ44で属性が「写真」とされている領域に含まれる画素に対して、高線数ディザマトリクス法を用いた二値化処理を実行する。レベル設定処理(S400)の詳細な処理については後述する。
【0040】
続いて、二値化処理手段53は、レベル設定処理(S400)で設定されたレベルに応じた二値化処理を実行する(S500)。二値化処理が実行されることにより、画像データIm3に含まれる画素の階調値は、「1」または「0」のいずれかに設定される。以下の説明では、階調値が「1」に設定されることをオンと出力されると称し、階調値が「0」に設定されることをオフと出力されると称する。
【0041】
図6は、設定されているレベルが「レベル1」である場合に実行される二値化処理を示すフローチャートである。なお、図6の二値化処理は、図2の画像処理の実行が開始されてから初めて二値化処理(S500)が実行される場合に実行される。
【0042】
二値化処理手段53は、S300の色変換処理が実行された画像データIm3の中から、処理すべき画素を選択する(S502a)。なお、最初にS502aが実行される際は、二値化処理手段53は、画像データIm3の先頭に位置する画素を、処理すべき画素として選択する。
【0043】
二値化処理手段53は、図3の属性の判断処理(S200)によって生成される属性データ44を参照し、当該選択された画素の属性を判断する(S504a)。具体的には、属性データ44における当該画素に記憶される値(0〜3)を判断する。
【0044】
判断された画素の属性が「グラフィック」である場合は(S504a グラフィック)、二値化処理手段53は、二値化テーブル42において「レベル1」の「グラフィック」に対応する二値化処理の方法である「低線数ディザマトリクス法」を用いて、S502aで選択された画素に対して二値化処理を実行する(S506a)。二値化処理手段53は、低線数ディザマトリクス法を用いた回数の累積数Nldに1を加算する(S508a)。累積数Nldは、低線数ディザマトリクス法を用いて二値化処理が実行された画素の数を示す値である。
【0045】
判断された画素の属性が「文字」である場合は(S504a 文字)、二値化処理手段53は、二値化テーブル42において「レベル1」の「文字」に対応する二値化処理の方法である「誤差拡散法」を用いて、S502aで選択された画素に対して二値化処理を実行する(S510a)。二値化処理手段53は、誤差拡散法を用いた回数の累積数Nedに1を加算する(S512a)。累積数Nedは、誤差拡散法を用いて二値化処理が実行された画素の数を示す値である。
【0046】
判断された画素の属性が「写真」である場合は(S504a 写真)、二値化処理手段53は、二値化テーブル42において「レベル1」の「写真」に対応する二値化処理の方法である「高線数ディザマトリクス法」を用いて、S502aで取得された画素に対して二値化処理を実行する(S514a)。二値化処理手段53は、高線数ディザマトリクス法を用いた回数の累積数Nhdに1を加算する(S516a)。累積数Nhdは、高線数ディザマトリクス法を用いて二値化処理が実行された画素の数を示す値である。
【0047】
なお、図6には示していないが、S502aで選択された画素が背景領域に含まれる画素である場合は、二値化処理手段53は、すべてのレベルにおいて、低線数ディザマトリクスを用いて、選択された画素に対して二値化処理を実行する。背景領域が何ら印字されない(すなわち、CMYK値の各成分がすべて0である)領域である場合は、背景領域に含まれる画素は、全てオフと出力される。背景領域が同一色で形成される(すなわち、CMYK値がすべて同一の値である)領域である場合は、背景領域に含まれる画素のうちの一部の画素がオンと出力される。なお、他の二値化処理の方法を用いて背景領域に含まれる画素に対して二値化処理が実行されてもよい。
【0048】
S508aと、S512aと、S516aと、のいずれかの処理が実行されると、二値化処理手段53は、画像データに含まれる全ての画素に対する二値化処理の実行が終了したか否かを判断する(S518a)。二値化処理が実行されていない画素が存在する場合は(S518a NO)、二値化処理手段53は、処理をS502aに戻し、次に処理すべき画素を選択する。
【0049】
一方、全ての画素に対して二値化処理が終了した場合は(S518a YES)、特定手段58は、画像データに含まれる画素に対して実行された二値化処理の方法の中で、最も多くの画素に対して実行された二値化処理の方法Mfuを特定する(S520a)。具体的には、レベル1の二値化処理では、特定手段58は、累計数Nldと、累計数Nedと、累計数Nhdと、の中で、最も大きい累計数を判断し、最も大きい累計数に対応する二値化処理の方法Mfuを特定する。例えば、3つの累計数Nld、Ned、Nhdの中で、累計数Nldが最も大きい場合は、特定手段58は、低線数ディザマトリクス法を二値化処理の方法Mfuと特定する。
【0050】
二値化処理の方法Mfuが特定されると、二値化処理手段53は、図6の二値化処理を終了する。二値化処理(S500)が実行されることによって、CMYK値で表現される画像データIm3は、二値画像データIm4に変換される。
【0051】
ここで、それぞれの二値化処理の方法について説明する。誤差拡散法は、閾値(例えば128)と入力値(例えば0〜255の256階調)との差分を誤差値として収集し、複数の画素から収集された誤差値を未処理画素の入力値にフィードバック(加算または減算)させる二値化処理の方法である。一方、ディザマトリクス法は、入力値(例えば0〜255の256階調)と、N×N個(Nは自然数)のマトリクス内に予め設定される閾値と、を1対1で比較し、出力値(例えば0または1の2階調)を決定する方法である。
【0052】
図7は、ディザマトリクスによって出力される二値画像データIm4の例を示す図である。図7(A)は、同一色で形成される領域に対してディザマトリクスを用いて二値化処理を実行した二値画像データIm4を示す。横方向の1行は、それぞれ画像データの1行分を示す。なお、図7(A)において、二値化処理によってオンと出力される画素は色が付され、オフと出力される画素は色が付されていない。
【0053】
図7(A)に示すように、同一色で形成される背景領域に対してディザマトリクスを用いた二値化処理が実行されると、オンと出力される画素と、オフと出力される画素と、が一定の規則で出現する。図7(A)では、オンとなる画素が横方向に7つ連続するように出現した後、オフとなる画素が横方向に3つ連続するように出現する。この場合、70%の濃度の画像データが出力される。
【0054】
図7(B)は、文字領域に対してディザマトリクスを用いて二値化処理を実行した二値画像データIm4を示す。図示するように、ディザマトリクスを用いて文字領域に対して二値化処理が実行されると、文字領域内の文字を構成する画素のうち、一部の画素がオフと出力される。
【0055】
ところで、本実施例では、CMYKの色ごとに、スクリーン角度が異なるディザマトリクスを用いる。そのため、オンと出力される画素と、オフと出力される画素と、が出現する規則は色ごとに相違する。なお、スクリーン角度とは、オンと出力される画素が連続する場合に、当該各画素の中心を結んだ線(以下、連続画素線)の方向と、行方向と、がなす角度である。
【0056】
さらに、本実施例では、ディザマトリクスを用いて二値化処理を実行する際、高線数ディザマトリクスと、低線数ディザマトリクスと、の2種類のディザマトリクスを用いて二値化処理を実行する。したがって、本実施例で用いるディザマトリクスは8種類存在する(CMYKの4色×2種類のディザマトリクス)。高線数ディザマトリクスは、低線数ディザマトリクスに比べてスクリーン線数が多いディザマトリクスである。なお、スクリーン線数とは、単位長さあたりに含まれる連続画素線の本数である。
【0057】
図8は、高線数ディザマトリクスと低線数ディザマトリクスとの違いを示す図である。図8において、オンと出力される画素は色が付され、オフと出力される画素は色が付されていない。図8(A)は、特定の画像データIm3に対して高線数ディザマトリクスを用いて二値化処理を実行することによって生成された二値画像データIm4を示す。図8(A)において、間隔dhdは、連続画素線の間隔を示す。一方、図8(B)は、図8(A)と同じ特定の画像データIm3に対して低線数ディザマトリクスを用いて二値化処理を実行することによって生成された二値画像データIm4を示す。図8(B)において、間隔dldは、連続画素線を結んだ2つの線の間隔を示す。図示するように、高線数ディザマトリクスで二値化処理を実行した場合に出現する線の間隔dhdは、低線数ディザマトリクスで二値化処理を実行した場合に出現する線の間隔dldに比べて狭い。換言すれば、高線数ディザマトリクスで二値化処理を実行した場合のスクリーン線数は、低線数ディザマトリクスで二値化処理を実行した場合のスクリーン線数よりもが多い。
【0058】
レベルに応じた二値化処理(S500)が終了すると、図2の画像処理において、圧縮処理手段56は、レベルに応じた二値化処理(設定されているレベルがレベル1である場合は、図6のS520a)において特定された二値化処理の方法Mfuが、誤差拡散法と、高線数ディザマトリクス法と、低線数ディザマトリクス法と、のうちのいずれの方法であるかを判断する(S600)。
【0059】
特定された二値化処理の方法Mfuが「誤差拡散法」である場合は、圧縮処理選択手段57は、複数の圧縮処理の方法から、誤差拡散法に適した圧縮処理の方法を選択する(S700)。具体的には、圧縮処理選択手段57は、実行すべき圧縮方法として、Flate圧縮法を選択する。Flate圧縮法は、LZ77と、ハフマン符号化と、を組み合わせた圧縮方法である。
【0060】
特定された二値化処理の方法Mfuが「高線数ディザマトリクス法」である場合は、圧縮処理選択手段57は、複数の圧縮処理の方法から、高線数ディザマトリクス法に適した圧縮処理を選択する(S800)。具体的には、圧縮処理選択手段57は、実行すべき圧縮方法として、前ライン参照圧縮法を選択する。
【0061】
特定された二値化処理の方法Mfuが「低線数ディザマトリクス法」である場合は(S600 低線数ディザマトリクス法)、圧縮処理選択手段57は、複数の圧縮処理の方法から、低線数ディザマトリクス法に適した圧縮処理を選択する(S900)。具体的には、圧縮処理選択手段57は、実行すべき圧縮方法として、前ライン参照圧縮法を選択する。
【0062】
前ライン参照圧縮法は、二値画像データIm4における特定の行(以下、対象行)の出力パターンと、二値画像データIm4における対象行の1行前の行(以下、参照行)の出力パターンと、を比較することによって、二値画像データIm4を圧縮する圧縮方法である。
【0063】
図9は、図2の圧縮処理(S1000)が実行される前の二値画像データIm4の一例を示す図である。図示するように、二値画像データIm4に含まれる各行は、Lagrと、Ldifと、の2種類に分類される。Lagrは、対象行の出力パターンと参照行の出力パターンとが一致している対象行である。Ldifは、対象行の出力パターンと参照行の出力パターンとが一致しない対象行である。
【0064】
図10は、対象行の出力パターンと、参照行の出力パターンと、が一致しない場合の圧縮方法について示す。図10(A)は、対象行の出力パターンと、参照行の出力パターンと、が一致しない場合の具体例を示す。図示するように、対象行は、参照行と異なる出力パターンを有する。従って、当該対象行は、Ldifと判断される。
【0065】
図10(B)は、Ldifの圧縮データを規定するための比較画素群を示す。図示するように、比較画素群では、複数個の画素のオン/オフのパターンが規定される。メモリ40は、互いにパターンが異なる複数個の比較画素群を予め記憶している。例えば、比較画素群が3画素で構成される場合は、メモリ40は、2×2×2の8つの比較画素群を記憶している。例えば、図10(B)の1番が示す比較画素群は、3つの画素の全てがオンと出力されるパターンを示す。
【0066】
図10(C)は、図10(B)の比較画素群と、Ldifに含まれる画素と、の対応関係を示す。Ldifの圧縮データは、ランレングス符号化方式を用いて、当該複数個の比較画素群のうちのどの比較画素群が、何回連続するかを示す情報で構成される。図示するように、図10(A)に示したLdifは、先頭から順に、図10(B)の1番の比較画素群が1回、8番の比較画素群が5回、という順で構成される。そのため、Ldifの圧縮データには「1185」という数列が記憶される。
【0067】
図10(D)は、Ldifのデータが圧縮された場合の圧縮データについて示す。Ldifの圧縮データは、前ライン参照フラグと、データサイズ情報と、圧縮データと、を含む。前ライン参照フラグは、対象行と、参照行と、の出力パターンが一致しない(すなわち、Ldifである)ことを示す情報(例えば、「0」というフラグ情報)が記憶される。データサイズ情報は、ランレングス符号化方式を用いて圧縮された圧縮データのデータサイズを示す情報が記憶される。圧縮データには、ランレングス符号化を用いて圧縮されたデータ(例えば、上述した数列「1185」を示す情報)が記憶される。
【0068】
なお、二値画像データIm4の最も上位の行が対象行である場合は、参照行が存在しない。そのため、比較画素群を用いて、ランレングス符号化方式によって圧縮データが生成される。
【0069】
図11は、対象行の出力パターンと、参照行の出力パターンと、が一致する場合の圧縮方法について示す。図11(A)は、対象行の出力パターンと、参照行の出力パターンと、が一致する場合の具体例を示す。図示するように、対象行は、参照行と同じ出力パターンを有する。従って、当該対象行は、Lagrと判断される。
【0070】
図11(B)は、Lagrのデータが圧縮された場合の圧縮データについて示す。Lagrの圧縮データは、前ライン参照フラグと、展開回数情報と、を含む。前ライン参照フラグは、参照行と、対象行と、の出力パターンが一致する(すなわち、Lagrである)ことを示す情報(例えば、「1」というフラグ情報)が記憶される。展開回数情報は、Lagrが縦方向に何ライン連続するかを示す情報が記憶される。例えば、Lagrが縦方向に10行連続して存在する場合は、展開回数情報に「10」が記憶される。
【0071】
図10に示したように、本実施例では、前ライン参照圧縮法によって二値画像データIm4を圧縮する際、参照行の出力パターンと、対象行の出力パターンと、が一致しない場合に、比較画素群を用いて圧縮データを生成する。ここで、比較画素群に含まれる画素の数は、二値化処理の際に用いられたディザマトリクスの種類に応じて決定されることが好ましい。そこで、本実施例では、高線数ディザマトリクス法を用いて二値化処理が実行された場合と、低線数ディザマトリクス法を用いて二値化処理が実行された場合とで、異なる比較画素群を用いて圧縮データを生成する。
【0072】
図12は、二値化処理の方法と、比較画素群と、の対応関係を示す図である。図12(A)は、高線数ディザマトリクス法を用いて二値化処理が実行された二値画像データIm4を圧縮する際に用いられる比較画素群を示す。図12(B)は、低線数ディザマトリクス法を用いて二値化処理が実行された二値画像データIm4を圧縮する際に用いられる比較画素群を示す。図示するように、本実施例では、高線数ディザマトリクス法を用いた二値画像データIm4を圧縮する際に用いられる比較画素群の画素数(例えば3画素)は、低線数ディザマトリクス法を用いた二値画像データIm4を圧縮する際に用いられる比較画素群の画素数(例えば4画素)よりも少なくなるようにメモリ40に記憶されている。換言すれば、高線数ディザマトリクス法を用いた二値画像データIm4を圧縮する際に用いられる比較画素群のパターンの数(例えば比較画素群を構成する画素の数が3画素である場合は、2=8パターン)は、低線数ディザマトリクス法を用いた二値画像データIm4を圧縮する際に用いられる比較画素群のパターンの数(例えば比較画素群を構成する画素の数が4画素である場合は、2=16パターン)よりも少なくなるようにメモリ40に記憶されている。このように、高線数ディザマトリクス法を用いて二値化処理が実行された場合と、低線数ディザマトリクス法を用いて二値化処理が実行された場合とで、異なる比較画素群を用いて圧縮データを生成することによって、圧縮データのサイズを効率よく小さくすることができる。
【0073】
二値化処理の方法と、圧縮処理の方法と、の対応関係について考察する。誤差拡散法は、上述したように、閾値(例えば128)と入力値(例えば0〜255の256階調)との差分を誤差値として収集し、複数の画素から収集された誤差値を未処理画素の入力値にフィードバック(加算または減算)させる二値化処理の方法である。従って、未処理画素がオンと出力されるか否かは、フィードバックされる値に左右される。その結果、オン/オフが特定のパターンである複数個の画素によって構成される特定の画素群が二値画像データIm4に出現する頻度が、ディザマトリクスを用いて二値化処理が実行された二値画像データIm4に出現する頻度に比べて少なくなる傾向にある。FLATE圧縮法は、二値画像データIm4内の画素のパターンが類似しにくい(すなわち、当該特定の画素群が二値画像データIm4に出現する出現頻度が特定の頻度(例えば50%)よりも少ない)二値画像データIm4を圧縮する際に有効な圧縮方法であることが知られている。従って、本実施例では、誤差拡散法を用いて二値化処理が実行された二値画像データIm4を圧縮する際は、FLATE圧縮法を用いて圧縮済み画像データIm5が生成される。
【0074】
一方、ディザマトリクスを用いた二値化処理の方法は、図7に示したように、オン/オフが特定のパターンである複数個の画素によって構成される特定の画素群の出現する頻度が、誤差拡散法を用いて二値化処理が実行された二値画像データIm4に出現する頻度に比べて多くなる傾向にある。上述したように、前ライン参照圧縮法では、二値画像データIm4における特定の行(対象行)と、二値画像データIm4において対象行の1行前の行(参照行)と、の出力パターンが比較される。当該2つの行の画素のパターンが一致している場合は、当該2つの行が一致することを示す情報が記憶されればよい。また、当該2つの行が一致しない場合であっても、図11(B)に示す複数個のディザパターンのうち、同一のディザパターンが連続する部分については、連続することを示す情報(例えば、図11(B)のディザパターン番号「2」が4回連続するという情報)が記憶されればよい。このように、前ライン参照圧縮法は、画素のパターンが類似しやすい(すなわち、特定の画素群が二値画像データIm4に出現する出現頻度が特定の頻度(例えば50%)以上である)二値画像データIm4を圧縮する際に有効な圧縮方法であると考えられる。従って、本実施例では、ディザマトリクス(高線数ディザマトリクス、低線数ディザマトリクス)を用いて二値化処理が実行された二値画像データIm4を圧縮する際は、前ライン参照圧縮法を用いて圧縮済みデータIm5が生成される。
【0075】
図2の画像処理において、圧縮処理手段56は、選択された圧縮処理の方法で、二値画像データIm4を圧縮する(S1000)。これにより、二値画像データIm4は、圧縮済み画像データIm5に変換される。
【0076】
圧縮済み画像データIm5が生成されると、サイズ判断手段59は、圧縮済み画像データIm5のサイズが、閾値以下であるか否かを判断する(S1100)。閾値は、圧縮済み画像データをプリンタ70に送信するために許容される最大のサイズに応じて決定される値である。
【0077】
圧縮済み画像データIm5のサイズが閾値以下である場合は(S1100 YES)、供給手段60は、圧縮済み画像データIm5をプリンタ70に供給する(S1200)。これにより、プリンタ70は、供給された圧縮済み画像データIm5を展開し、展開された二値画像データIm4を印刷することができる。
【0078】
一方、圧縮済み画像データIm5のサイズが閾値よりも大きい場合は(S1100 NO)、圧縮済み画像データIm5をプリンタ70に送信することができないため、二値化処理手段53は、レベル設定フラグ43を参照し、設定されているレベルを判断する(S1300)。
【0079】
レベル設定フラグ43で設定されているレベルが、レベル1と、レベル2と、レベル3と、のうちのいずれかのレベルである場合は(S1300 レベル1、レベル2、レベル3)、二値化処理手段53は、レベル設定処理(S400)を実行することによって、新たなレベルを設定する。
【0080】
このように、二値化処理手段53は、圧縮済み画像データIm5のサイズが閾値よりも大きい場合に、圧縮済み画像データIm5のサイズを小さくするために、新たなレベルを設定し、設定されたレベルで規定される二値化処理の方法を用いて再度二値化処理を実行し、二値画像データIm4を生成しなおす。こうすることで、圧縮処理手段56は、プリンタ70に送信することが許容されなかった圧縮済み画像データIm5のサイズが小さくなるよう生成することができる。この結果、圧縮済み画像データIm5がプリンタ70に送信される確率が高まる。
【0081】
一方、図2の画像処理において、レベル設定フラグ43で設定されているレベルが、レベル4と、レベル5と、のいずれかのレベルである場合は、通知手段61は、圧縮済み画像データのサイズがプリンタ70に供給できないために、印刷を実行することが不可能である旨の通知をプリンタ70に通知する(S1400)。
【0082】
図13は、本実施例のレベル設定処理を示すフローチャートである。
【0083】
二値化方法選択手段は、すでにレベルが設定されているか否かを判断する(S410)。具体的には、レベル設定フラグ43を参照し、いずれかのレベルを示す情報が既に書き込まれているか否かを判断する。
【0084】
レベルが未だ設定されていない場合は(S410 NO)、二値化方法選択手段は、二値化テーブル42における「レベル1」の二値化方法群が選択されるよう、レベル設定フラグ43に「1」を示す情報を書き込む(S420)。なお、S410でNOとなる場合は、図2の画像処理の実行が開始されてから初めてレベル設定処理が実行される場合である。
【0085】
一方、レベルが既に設定されている場合は(S410 YES)、二値化方法選択手段は、設定されているレベルを判断する(S430)。具体的には、二値化方法選択手段は、レベル設定フラグ43を参照し、設定されているレベルが、レベル1と、レベル2と、レベル3と、のいずれのレベルであるかを判断する。
【0086】
レベル設定フラグ43に設定されているレベルが、「レベル1」である場合は(S430 レベル1)、二値化方法群選択手段は、レベル設定フラグ43に設定されているレベルを、「レベル2」に変更する(S440)。
【0087】
一方、設定されているレベルが、「レベル2」である場合は(S430 レベル2)、比較手段55は、図14の二値化処理でのS520bにおいて特定された二値化処理の方法Mfuが、低線数ディザマトリクス法と、高線数ディザマトリクス法と、のどちらの方法であるかを判断する(S450)。
【0088】
特定された二値化処理の方法Mfuが、低線数ディザマトリクスである場合は(S450 低線数ディザマトリクス)、二値化方法選択手段は、レベル設定フラグ43に設定されているレベルを、「レベル3」に変更する(S460)。
【0089】
特定された最も多い二値化処理の方法Mfuが、高線数ディザマトリクスである場合は(S450 高線数ディザマトリクス)、二値化処理選択手段54は、レベル設定フラグ43に設定されているレベルを、「レベル4」に変更する(S470)。
【0090】
図13のレベル設定処理において、設定されているレベルが、「レベル3」である場合は(S430 レベル3)、二値化方法群選択手段は、レベル設定フラグ43に設定されているレベルを、「レベル5」に変更する(S480)。
【0091】
以下に、設定されたレベルがレベル2からレベル5である場合に実行される二値化処理について説明する。
【0092】
図14は、レベル2で実行される二値化処理を示すフローチャートである。
【0093】
レベル1で実行される二値化処理と同様に、二値化処理手段53は、処理すべき画素を選択し(S502b)、選択された画素の属性を判断する(S504b)。レベル2では、図5の二値化テーブル42に示すように、画素の属性がグラフィックである場合は低線数ディザマトリクス法を用いて二値化処理を実行する(S506b、S508b)。また、画素の属性が文字である場合は、高線数ディザマトリクス法を用いて二値化処理を実行する(S510b、S512b)。また、画素の属性が写真である場合は、二値化処理手段53は、高線数ディザマトリクス法を用いて二値化処理を実行する(S514b、S516b)。全ての画素に対して二値化処理が実行されると(S518b YES)、特定手段58は、最も多く用いられた二値化処理の方法Mfuを特定する(S520b)。
【0094】
図15は、レベル3で実行される二値化処理を示すフローチャートである。
【0095】
レベル1で実行される二値化処理と同様に、二値化処理手段53は、処理すべき画素を選択し(S502c)、選択された画素の属性を判断する(S504c)。レベル3では、図5の二値化テーブル42に示すように、画素の属性がグラフィックである場合は低線数ディザマトリクス法を用いて二値化処理を実行する(S506c、S508c)。また、画素の属性が文字である場合は、高線数ディザマトリクス法を用いて二値化処理を実行する(S510c〜S512c)。また、画素の属性が写真である場合は、二値化処理手段53は、低線数ディザマトリクス法を用いて二値化処理を実行する(S514c、S516c)。全ての画素に対して二値化処理が実行されると(S518c YES)、特定手段58は、最も多く用いられた二値化処理の方法Mfuを特定する(S520c)。
【0096】
図16は、レベル4で実行される二値化処理を示すフローチャートである。
【0097】
レベル1で実行される二値化処理と同様に、二値化処理手段53は、処理すべき画素を選択する(S502d)。レベル4では、図5の二値化テーブル42に示すように、全ての画素に対して高線数ディザマトリクス法を用いて二値化処理を実行する(S514d)。全ての画素に対して二値化処理が実行されると(S518d YES)、特定手段58は、二値化処理の方法Mfuとして、高線数ディザマトリクスを選択する(S520d)。
【0098】
図17は、レベル5で実行される二値化処理を示すフローチャートである。
【0099】
レベル1で実行される二値化処理と同様に、二値化処理手段53は、処理すべき画素を選択する(S502e)。レベル5では、図5の二値化テーブル42に示すように、全ての画素に対して低線数ディザマトリクス法を用いて二値化処理を実行する(S508e)。全ての画素に対して二値化処理が実行されると(S518e YES)、特定手段58は、二値化処理の方法Mfuとして、低線数ディザマトリクスを選択する(S520d)。
【0100】
以上のように、本実施例では、二値化処理手段53は、図5の二値化対応テーブル42に基づいて、それぞれのレベルに応じた二値化処理を実行する。本実施例では、圧縮処理手段56は、1種類の圧縮処理の方法を用いて二値画像データIm4に対して圧縮処理を実行する。しかしながら、上述したように、誤差拡散法とディザマトリクス法とは、それぞれ適した圧縮方法が存在する。具体的には、誤差拡散法に適した圧縮方法はFLATE圧縮法であり、ディザマトリクス法に適した圧縮方法は前ライン参照法である。このため、画像データIm3を二値化処理する際に、実行される二値化処理の種類が多くなればなるほど、適切な圧縮処理がなされる領域が減少し、圧縮効率が低下する。そのため、本実施例では、二値化対応テーブル42は、設定されるレベルが大きいほど、実行される二値化処理の種類が少なくなるように規定されている。こうすることで、圧縮処理手段53は、圧縮効率を高めることができる。
【0101】
以上説明したように、端末装置10は、プリンタ70の図示しない印刷実行部に印刷を実行させるために、色変換処理(図2のS300)が実行された画像データIm3に対して、特定のレベルの二値化処理(例えば図6に示されるレベル1の二値化処理)を実行し、二値画像データIm4を生成する。その後、端末装置10は、二値画像データIm4に対して、圧縮処理(図2のS700〜S900)を実行し、圧縮済み画像データIm5を生成する。端末装置10は、図2のS1100において、圧縮済み画像データIm5のサイズが閾値よりも大きいか否かを判断する。圧縮済み画像データIm5が閾値よりも大きいと判断される場合は、端末装置10は、特定のレベルの二値化処理と異なる二値化処理(例えば図14に示されるレベル2の二値化処理)を実行し、二値画像データを生成する。例えば、特定のレベルの二値化処理として、誤差拡散法を用いて特定の領域の二値化処理が実行された場合に、特定のレベルの二値化処理と異なる二値化処理として、高線数ディザマトリクス法を用いて当該特定の領域の二値化処理が実行される。このように、端末装置10は、圧縮済み画像データIm5のサイズが、閾値よりも大きいと判断される場合に、適切な二値化処理の方法を用いて、再度二値画像データIm4を生成することができる。この結果、例えば、レベル1で実行される二値化処理に代えて、レベル2で実行される二値化処理で再度二値画像データを生成し、圧縮済み画像データを生成し直すことができる。
【0102】
(変形例)
なお、本発明における技術的範囲は、上述した実施例に限られるものではなく、以下に示すような種々の態様によって実施することが可能である。
【0103】
(1)上述した実施例では、端末装置が図2の画像処理を実行することを記載したが、これに代えて、プリンタ70が図2の画像処理を実行してもよい。
【0104】
(2)上述した実施例では、二値化対応テーブル42に規定される二値化処理の方法によって二値化されることを記載したが、二値化対応テーブル42で規定される二値化処理の組み合わせは異なってもよい。例えば、設定されるレベルがレベル1である場合に、本実施例では、文字である領域に対して誤差拡散法を用いて二値化処理を実行しているが、高線数ディザマトリクス法を用いて二値化処理を実行してもよい。
【0105】
(3)上述した実施例では、二値画像データIm4が誤差拡散法を用いて二値化処理が実行された画像データである場合は、FLATE圧縮法を用いて圧縮処理を実行することを記載したが、異なる圧縮方法であってもよい。例えば、誤差拡散法を用いて二値化処理が実行された二値画像データIm4に対して、前ライン参照圧縮法で圧縮処理が実行されてもよい。
【0106】
また、本実施例では、二値画像データIm4が高線数ディザマトリクス法または低線数ディザマトリクス法を用いて二値化処理が実行された画像データである場合は、前ライン参照圧縮法を用いて圧縮処理を実行することを記載したが、異なる圧縮方法であってもよい。例えば、高線数ディザマトリクス法を用いて二値化処理が実行された二値画像データIm4に対して、FLATE圧縮法で圧縮処理が実行されてもよい。
【0107】
このように、少なくとも、一の二値化処理の方法と、当該一の二値化処理の方法で二値化処理が実行された二値画像データに対する一の圧縮方法と、が対応付けられていればよい。
【0108】
(4)上述した実施例では、二値画像データIm4に含まれる各画素に対して適用された二値化処理の方法の中で、適用された回数が最も多い二値化処理の方法を、図2のS600で特定される二値化処理の方法Mfuと特定しているが、異なる構成であってもよい。例えば、第1種の二値化処理の方法(例えば低線数ディザマトリクス法)が特定の割合以上(例えば30%以上)で適用されている場合は、当該二値化処理の方法が最も多く適用されていなくても(すなわち、第2種の二値化処理の方法(例えば誤差拡散法)が最も多く適用されている場合であっても)、当該第1種の二値化処理の方法に応じた圧縮処理の方法で圧縮処理が実行されてもよい。このように、第1種の二値化処理の方法が適用された回数と、第2種の二値化処理の方法が適用された回数と、に応じて、特定の圧縮処理の方法を選択する構成とすることが可能である。
【0109】
(5)上述した各実施例では、制御部20が画像処理プログラム41に従って処理を実行することによって、各手段51〜61の機能が実現されるが、各手段51〜61の少なくとも1個は、論理回路等のハードウェアで実現されてもよい。
【符号の説明】
【0110】
10…端末装置、20…制御部、21…表示部、22…操作部、23…ネットワークインターフェース、30…CPU、40…メモリ、41…画像処理プログラム、42…二値化対応テーブル、43…レベル設定フラグ、44…属性データ、51…属性判断手段、52…色変換手段、53…二値化処理手段、54…二値化処理選択手段、55…比較手段、56…圧縮処理手段、57…圧縮処理選択手段、58…特定手段、59…サイズ判断手段、60…供給手段、61…通知手段、70…プリンタ、80…LAN

【特許請求の範囲】
【請求項1】
原画像データに対して、第1種の二値化処理の方法と、第2種の二値化処理の方法と、を含む複数種類の二値化処理の方法のうちの少なくとも1種類の二値化処理の方法を用いて二値化処理を実行して、二値画像データを生成する二値化処理手段と、
前記二値画像データに対して、第1種の圧縮処理の方法と、第2種の圧縮処理の方法と、を含む複数種類の圧縮処理の方法のうちの1種類の特定の圧縮処理の方法を用いて圧縮処理を実行して、圧縮済み画像データを生成する圧縮処理手段であって、前記第1種の圧縮処理の方法は、前記第1種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法であり、前記第2種の圧縮処理の方法は、前記第2種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法である、前記圧縮処理手段と、
を備え、
前記圧縮処理手段は、前記第1種の二値化処理の方法と、前記第2種の二値化処理の方法と、を含む2種類以上の二値化処理の方法が用いられて前記二値画像データが生成される場合に、前記第1種の二値化処理の方法が適用された回数と、前記第2種の二値化処理の方法が適用された回数と、に応じて、前記複数種類の圧縮処理の方法から、前記特定の圧縮処理の方法を選択する圧縮方法選択手段を備え、
前記圧縮処理手段は、前記特定の圧縮処理の方法を用いて、前記二値画像データを圧縮する
ことを特徴とする、制御装置。
【請求項2】
請求項1に記載の制御装置であって、さらに、
前記圧縮方法選択手段は、前記複数種類の二値化処理の方法が用いられて前記二値画像データが生成される場合に、前記複数種類の二値化処理の方法の中から、適用された回数が最も多い二値化処理の方法を特定する特定手段を備え、
前記圧縮処理選択手段は、前記第1種の二値化処理の方法が適用された回数が最も多い場合に、前記特定の圧縮処理の方法として、前記第1種の圧縮処理の方法を選択し、前記第2種の二値化処理の方法が適用された回数が最も多い場合に、前記特定の圧縮処理の方法として、前記第2種の圧縮処理の方法を選択する
ことを特徴とする、制御装置。
【請求項3】
請求項2に記載の制御装置であって、
前記第1種の二値化処理の方法は、誤差拡散法を用いた二値化処理の方法であり、前記第2種の二値化処理の方法は、ディザマトリクスを用いた二値化処理の方法であり、
前記圧縮処理手段は、前記最も多く用いられた二値化処理の方法が前記第1種の二値化処理の方法である場合に、複数個の画素によって構成される特定の画素群が前記二値画像データ内に出現する出現頻度が特定の頻度よりも少ない前記二値画像データに適する第1の圧縮方法によって前記二値画像データを圧縮し、前記最も多く用いられた二値化処理の方法が前記第2種の二値化処理の方法である場合に、前記特定の画素群が前記二値画像データ内に出現する出現頻度が前記特定の頻度以上である前記二値画像データに適する第2の圧縮処理の方法によって、前記二値画像データを圧縮する
ことを特徴とする、制御装置。
【請求項4】
請求項3に記載の制御装置であって、
前記第1の圧縮方法は、FLATE圧縮であり、
前記第2の圧縮方法は、比較処理と、生成処理と、を含み、
前記比較処理は、前記二値画像データを構成する第1の行の画素のパターンと、前記特定の行に隣接する第2の行の画素のパターンと、を比較する処理であり、
前記生成処理は、前記第1の行の画素のパターンと、前記第2の行の画素のパターンと、が一致する場合に、第1の方法で前記圧縮済みデータを生成し、前記第1の行の画素のパターンと、前記第2の行の画素のパターンと、が一致しない場合に、前記第1の方法と異なる第2の方法で圧縮済み画像データを生成する
ことを特徴とする、制御装置。
【請求項5】
請求項4に記載の制御装置であって、
前記第1の方法は、前記第1の行の画素のパターンが前記二値画像データ内に出現する回数を示す情報を用いて圧縮済画像データを生成する方法であり、
前記第2の方法は、前記特定の画素群を含む複数種類の画素群を用いたランレングス符号化によって圧縮済み画像データを生成する方法である
ことを特徴とする、制御装置。
【請求項6】
請求項5に記載の制御装置であって、
前記二値化処理手段は、スクリーン線数が第1の値である第1のディザマトリクスを用いて前記第1種の二値化処理を実行し、スクリーン線数が前記第1の値よりも多い第2の値である第2のディザマトリクスを用いて第2種の二値化処理を実行し、
前記複数種類の二値化処理の方法のうち前記第1種の二値化処理の方法が適用された回数が最も多い場合は、前記第2の方法で用いられる前記複数種類の画素群を構成する画素数は、第1の画素数であり、
前記複数種類の二値化処理の方法のうち前記第2種の二値化処理の方法が適用された回数が最も多い場合は、前記第2の方法で用いられる前記複数種類の画素群を構成する画素数は、前記第1の画素数と異なる第2の画素数である
ことを特徴とする、制御装置。
【請求項7】
コンピュータに、
原画像データに対して、第1種の二値化処理の方法と、第2種の二値化処理の方法と、を含む複数種類の二値化処理の方法のうちの少なくとも1種類の二値化処理の方法を用いて二値化処理を実行して、二値画像データを生成する二値化処理ステップと、
前記二値画像データに対して、第1種の圧縮処理の方法と、第2種の圧縮処理の方法と、を含む複数種類の圧縮処理の方法のうちの1種類の特定の圧縮処理の方法を用いて圧縮処理を実行して、圧縮済み画像データを生成する圧縮処理ステップであって、前記第1種の圧縮処理の方法は、前記第1種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法であり、前記第2種の圧縮処理の方法は、前記第2種の二値化処理の方法を用いて得られる二値画像データの圧縮に適した方法である、前記圧縮処理ステップと、
を実行させるプログラムであって、
前記圧縮処理ステップは、前記第1種の二値化処理の方法と、前記第2種の二値化処理の方法と、を含む2種類以上の二値化処理の方法が用いられて前記二値画像データが生成される場合に、前記第1種の二値化処理の方法が適用された回数と、前記第2種の二値化処理の方法が適用された回数と、に応じて、前記複数種類の圧縮処理の方法から、前記特定の圧縮処理の方法を選択する圧縮方法選択ステップを備え、
前記圧縮処理ステップは、前記特定の圧縮処理の方法を用いて、前記二値画像データを圧縮する
ことを特徴とする、プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図5】
image rotate

【図6】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図4】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate