(57)【要約】【課題】印刷装置へ送信する画像データのデータサイズを効率よく小さくする。【解決手段】過去にハーフトーン処理を行った画像の階調値別のドット数（画素数）をカウントした発生頻度データ１２４を蓄積しておき、蓄積されている発生頻度データ１２４に基づきドット数の多い階調値ほどビット長の短い符号を割り当てた画像データを生成する（Ｓ２０５）。このため、パーソナルコンピュータからインクジェットプリンタへ送信する画像データのデータサイズを効率よく小さくすることができる。【選択図】図３
2010199733.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置に印刷させるための画像を表す画像データを生成する画像処理装置であって、
画像の階調数を低下させるハーフトーン処理を行い、処理後の階調数の各階調値に割り当てられた符号で各画素を表す画像データを生成する生成手段と、
前記生成手段により生成された画像データを前記印刷装置へ送信する送信手段と、
前記ハーフトーン処理後の画像についての階調値別の画素数をカウントし、カウントした画素数データを蓄積する蓄積手段と、
を備え、
前記生成手段は、前記ハーフトーン処理後の階調数の各階調値に複数種類のビット長の符号を割り当てるものであり、前記蓄積手段により蓄積された画素数データに基づき画素数の多い階調値ほどビット長の短い符号を割り当て、
前記送信手段は、前記印刷装置へ送信する画像データについて各階調値に割り当てられる符号を特定可能とするための符号特定情報についても送信すること
を特徴とする画像処理装置。
【請求項２】
前記蓄積手段は、あらかじめ定められた条件に従い、前記画素数データのうち古いものを消去すること
を特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記生成手段は、前記画素数データに基づく符号の割り当てを禁止する禁止設定がされている場合には、前記画素数データに関係なく、前記ハーフトーン処理後の階調数の各階調値にあらかじめ決められた符号を割り当てること
を特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記蓄積手段は、前記禁止設定がされている場合には、前記ハーフトーン処理後の画像についての画素数データを蓄積しないこと
を特徴とする請求項３に記載の画像処理装置。
【請求項５】
印刷装置に印刷させるための画像を表す画像データを生成する画像処理装置としてコンピュータを機能させるための画像処理プログラムであって、
画像の階調数を低下させるハーフトーン処理を行い、処理後の階調数の各階調値に割り当てられた符号で各画素を表す画像データを生成する生成手段と、
前記生成手段により生成された画像データを前記印刷装置へ送信する送信手段と、
前記ハーフトーン処理後の画像についての階調値別の画素数をカウントし、カウントした画素数データを蓄積する蓄積手段
としてコンピュータを機能させ、
前記生成手段は、前記ハーフトーン処理後の階調数の各階調値に複数種類のビット長の符号を割り当てるものであり、前記蓄積手段により蓄積された画素数データに基づき画素数の多い階調値ほどビット長の短い符号を割り当て、
前記送信手段は、前記印刷装置へ送信する画像データについて各階調値に割り当てられる符号を特定可能とするための符号特定情報についても送信すること
を特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に印刷させるための画像を表す画像データを生成するための画像処理装置及び画像処理プログラムに関するものである。
【背景技術】
【０００２】
従来、画像データを圧縮するための手法としてエントロピー符号化が知られている。例えば特許文献１には、発生頻度の高い値に対して短い符号を割り当てることにより画像データのデータサイズを小さくする構成が示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−７６００１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、印刷分野においても、例えばパーソナルコンピュータで生成した画像データを印刷装置へ送信するような場合には、画像データのデータサイズが小さいほどデータ転送量が小さくなり転送時間を短くすることができるため好ましい。
【０００５】
しかしながら、印刷装置へ送信する画像データについて、各画素に割り当てる符号によってその画像データのデータサイズを小さくすることは検討されていなかった。
【０００６】
本発明は、こうした問題にかんがみてなされたものであり、印刷装置へシリアルデータとして送信する画像データのデータサイズを効率よく小さくすることのできる画像処理装置及び画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するためになされた本発明の請求項１に記載の画像処理装置は、印刷装置に印刷させるための画像を表す画像データを生成するためのものであって、画像の階調数を低下させるハーフトーン処理を行い、処理後の階調数の各階調値に割り当てられた符号で各画素が表された画像データを生成する生成手段と、生成手段により生成された画像データを印刷装置へ送信する送信手段と、ハーフトーン処理後の画像についての階調値別の画素数をカウントし、カウントした画素数データを蓄積する蓄積手段とを備える。このうち、生成手段は、ハーフトーン処理後の階調数の各階調値に複数種類のビット長の符号を割り当てるものであり、蓄積手段により蓄積された画素数データに基づき画素数の多い階調値ほどビット長の短い符号を割り当て、送信手段は、印刷装置へ送信する画像データについて各階調値に割り当てられる符号を特定可能とするための符号特定情報についても送信する。
【０００８】
つまり、本発明の画像処理装置では、過去にハーフトーン処理を行った画像の階調値別の画素数をカウントした画素数データを蓄積しておき、蓄積されている画素数データに基づき画素数の多い階調値ほどビット長の短い符号を割り当てた画像データを生成する。このため、印刷装置へ送信する画像データのデータサイズを効率よく小さくすることができる。
【０００９】
すなわち、印刷装置で印刷される画像の内容や種類は、その印刷装置のユーザや使用環境などに応じて偏った傾向となることが多い。例えばオフィスと家庭とを比べると、一般的な傾向として、オフィスでは文章を印刷することが多いのに対し、家庭では写真等を印刷することが多い。このため、新たに印刷しようとする画像の階調値別の画素数の比率を、過去に印刷された画像の傾向からある程度推測することが可能となる。
【００１０】
本発明の画像処理装置は、このような特性を利用したものであり、過去にハーフトーン処理を行った画像の階調値別の画素数データに基づき画素数の比率が多いと推測される階調値ほどビット長の短い符号を割り当てた画像データを生成する。このため、画像データのデータサイズを効率よく小さくすることができるのである。
【００１１】
特に、本発明の画像処理装置によれば、ハーフトーン処理後の画像を実際に解析して階調値別の画素数の比率を特定する必要がなく、画像データを印刷装置へ送信する前にその画像データについての符号特定情報を送信しておくことができるため、ライン単位の画像データを順次生成しつつ印刷装置へ送信して印刷させるという従来からの処理を妨げることなく前述した効果を得ることができる。
【００１２】
ところで、印刷装置で印刷される画像の傾向は、徐々に変化していくことも考えられる。そこで、例えば請求項２に記載の画像処理装置では、蓄積手段は、あらかじめ定められた条件に従い、画素数データのうち古いものを消去する。このような画像処理装置によれば、古い画素数データに基づき符号を割り当てる場合に比べ、印刷装置で印刷される画像の傾向の変化に追従しやすくすることができる。
【００１３】
また、過去に印刷された画像の傾向とは大きく異なる画像が例外的に印刷されることも考えられる。そこで、例えば請求項３に記載の画像処理装置では、生成手段は、画素数データに基づく符号の割り当てを禁止する禁止設定がされている場合には、画素数データに関係なく、ハーフトーン処理後の階調数の各階調値にあらかじめ決められた符号を割り当てる。このような画像処理装置によれば、過去に印刷された画像の傾向とは大きく異なる画像を印刷する場合に不適切な符号が割り当てられてしまうことを防ぐことができる。
【００１４】
この場合、例えば請求項４に記載のように、蓄積手段が、禁止設定がされている場合には、ハーフトーン処理後の画像についての画素数データを蓄積しないようにしてもよい。このようにすれば、例えば、過去に印刷された画像の傾向とは大きく異なる画像を例外的に印刷する場合に、その画像についての画素数データが蓄積されることによって、蓄積された画素数データが不適切なものになってしまうことを防ぐことができる。
【００１５】
なお、請求項５に記載の画像処理プログラムによれば、請求項１に記載の画像処理装置としてコンピュータを機能させることができ、これにより前述した効果を得ることができる。
【図面の簡単な説明】
【００１６】
【図１】実施形態の通信システムの概略構成を表すブロック図である。
【図２】ドライバ処理のフローチャートである。
【図３】符号割当決定処理のフローチャートである。
【図４】プリンタ処理のフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明が適用された実施形態について、図面を用いて説明する。
【００１８】
［１．全体構成］
図１は、パーソナルコンピュータ（ＰＣ）１とインクジェットプリンタ２とがシリアルバス３（本実施形態ではＵＳＢケーブル）を介してデータ通信可能に構成された通信システムの概略構成を表すブロック図である。
【００１９】
パーソナルコンピュータ１は、汎用の情報処理装置であり、制御部１１、記憶部１２、通信部１３、操作部１４及び表示部１５を備えている。
【００２０】
制御部１１は、パーソナルコンピュータ１の各部を統括制御するものであり、ＣＰＵ１１１、ＲＯＭ１１２及びＲＡＭ１１３を備えている。
【００２１】
記憶部１２は、記憶データの書換えが可能な不揮発性の記憶装置であり、本実施形態ではハードディスク装置が用いられている。そして、記憶部１２には、オペレーティングシステム（ＯＳ）１２１、画像閲覧ソフト等のアプリケーションを実行するためのアプリケーションプログラム１２２、パーソナルコンピュータ１からインクジェットプリンタ２を利用可能とするためのソフトウェア（プログラム）であるプリンタドライバ１２３などがインストールされている。また、記憶部１２には、後述する発生頻度データ１２４が記憶される。
【００２２】
通信部１３は、インクジェットプリンタ２との間でシリアルバス３を介したデータ通信（シリアル通信）を行うためのインタフェースである。
【００２３】
操作部１４は、ユーザからの外部操作による指令を入力するための入力装置であり、本実施形態ではキーボードやポインティングデバイス（マウスやタッチパッド等）が用いられている。
【００２４】
表示部１５は、各種情報をユーザが視認可能な画像として表示するための出力装置であり、本実施形態では液晶ディスプレイが用いられている。
【００２５】
一方、インクジェットプリンタ２は、インクジェット方式の印刷装置であり、制御部２１、記憶部２２、通信部２３、操作部２４、表示部２５及び印刷部２６を備えている。
【００２６】
制御部２１は、インクジェットプリンタ２の各部を統括制御するものであり、ＣＰＵ２１１、ＲＯＭ２１２及びＲＡＭ２１３を備えている。
【００２７】
記憶部２２は、記憶データの書換えが可能な不揮発性の記憶装置であり、本実施形態ではフラッシュメモリが用いられている。なお、記憶部２２には、後述するプリンタ処理をＣＰＵ２１１に実行させるためのプログラムが記憶されている。
【００２８】
通信部２３は、パーソナルコンピュータ１との間でシリアルバス３を介したデータ通信（シリアル通信）を行うためのインタフェースである。
【００２９】
操作部２４は、ユーザからの外部操作による指令を入力するための入力装置であり、各種操作ボタンを備えている。
【００３０】
表示部２５は、各種情報をユーザが視認可能な画像として表示するための出力装置であり、小型の液晶ディスプレイが用いられている。
【００３１】
印刷部２６は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）及びブラック（Ｋ）の各色インクを印刷媒体としての用紙に吐出することでカラー画像を印刷するものである。具体的には、色の濃淡をより自然に表現するために、画像を構成する各画素を２階調よりも多階調で表現した画像データに基づきインクの液滴制御を行う。本実施形態では、インクの吐出量を複数段階に調整することで、ドット無し、小ドット、中ドット、大ドット及び特大ドットの５階調を表現可能となっている。
【００３２】
［２．処理の概要］
次に、本実施形態の通信システムで実行される処理の概要について説明する。
【００３３】
パーソナルコンピュータ１では、実行中のアプリケーションにおいて印刷開始操作が行われることによりプリンタドライバ１２３が起動し、印刷ジョブが実行される。
【００３４】
具体的には、印刷を開始する前に表示部１５に表示されるプリンタドライバ１２３のダイアログボックスにおいて、印刷条件の設定を変更することが可能となっており、必要に応じて設定変更操作が行われる。そして、前述した印刷開始操作が行われることにより、印刷条件の設定が確定されるとともに、パーソナルコンピュータ１からインクジェットプリンタ２へ印刷指示が送信され、インクジェットプリンタ２では印刷準備としての処理が開始される。
【００３５】
その後、パーソナルコンピュータ１では、印刷ジョブに係る画像データ（例えばＲＧＢ表色系で表現された２５６階調の画像データ）に基づき、インクジェットプリンタ２で形成可能なドットの階調数である５階調で画像を表す画像データが生成される。具体的には、２５６階調のＲＧＢデータに対し、まず、インクジェットプリンタ２のインクの色に対応したＣＭＹＫ表色系の画像データに変換する色変換処理が行われる。次に、色変換処理後の画像データ（２５６階調のＣＭＹＫデータ）に対し、画像の階調数を５階調に低下させるハーフトーン処理（本実施形態では誤差拡散処理）が行われる。
【００３６】
こうして生成された画像データ（画像を構成する各画素の階調値がドットの大きさを表すドットデータ）が、パーソナルコンピュータ１からインクジェットプリンタ２へ送信される。これにより、インクジェットプリンタ２では、パーソナルコンピュータ１から受信した画像データに基づき用紙にインクが吐出され、その画像データの表す画像が印刷される。
【００３７】
ここで仮に、ハーフトーン処理後の画像データが例えば４階調の画像データであれば、００Ｂ，０１Ｂ，１０Ｂ，１１Ｂといった２ビット符号（「Ｂ」は２進数表記の意味。）で各画素を表現することができる。これに対し、本実施形態のように５階調の画像データとなると、２ビット符号ではすべての階調を表現できないため、例えば０００Ｂ，００１Ｂ，０１０Ｂ，０１１Ｂ，１００Ｂというように３ビット符号で各画素を表現することになる。このため、２ビット符号に比べてデータサイズが格段に大きくなり、パーソナルコンピュータ１からシリアルバス３を介してインクジェットプリンタ２へ画像データを送信する場合に不利となる。
【００３８】
また、一般に用いられる情報処理機器においては３２ビットや６４ビット等の２のＮ乗の単位でデータ処理が行われるため、３ビット符号では処理が遅くなってしまう。例えば、インクジェットプリンタ２に内蔵されるＡＳＩＣなどのハードウェア支援回路では、処理データの格納を２のＮ乗の単位で行わなければならない制約が生じ得る。こうした理由から、５階調の画像データであっても２のＮ乗の単位で構成した方が処理の効率を良くする上では好ましいといえる。ただし、３ビット符号を単純に４ビット符号に変更したのでは、データサイズが更に大きくなってしまう。
【００３９】
そこで、本実施形態では、ハーフトーン処理後の階調数の各階調値に２ビット符号及び４ビット符号の２種類のビット長の符号を割り当てて画像データを符号化するとともに、その割り当てにエントロピー符号化を適用することにより、データサイズの増加を抑制しつつハードウェア支援回路での処理の高速化を図るようにしている。
【００４０】
エントロピー符号化では、発生頻度の高い値に短い符号を割り当て、発生頻度の低い値に長い符号を割り当てることによりデータサイズを小さくすることから、最適な符号の割り当てを行うためには、符号化の前に、画像データから各階調値の実際の発生頻度を求める必要がある。しかしながら、このようにすると、インクジェットプリンタ２で行われる記録ヘッドを走査しつつインクを吐出する印刷処理の処理単位に合わせて、ライン単位の画像データを順次生成しつつ送信して印刷させるという従来からの処理を行う場合にも、発生頻度の算出のために１ページ分のデータを事前に処理しておく必要があり、印刷処理を効率よく行うことができなくなることが考えられる。
【００４１】
そこで、本実施形態では、実際の発生頻度を求めるのではなく、一定の法則に基づいた出現確率から符号の割り当てを行うようにしている。具体的には、過去に行った印刷処理で発生頻度の高かった階調値にビット長の短い符号を割り当てることでエントロピー符号化を行う。本実施形態では、「００」及び「０１」の２ビット符号と、「１０１０」、「１０１１」及び「１１１０」の４ビット符号とで５階調を表現する。そして、発生頻度の最も高かった階調値と２番目に高かった階調値とに２ビット符号を割り当てる。
【００４２】
ちなみに、この例では、２ビット符号の１ビット目（最上位ビット）がすべて「０」、４ビット符号はすべて「１」となっているため、インクジェットプリンタ２においては、１ビット目に基づき２ビット符号と４ビット符号とを容易に判別することが可能となる。しかも、この例では、４ビット符号の３ビット目がすべて「１」となっているため、３ビット目が「０」の場合には誤りであると判定するといった誤り判定（エラー訂正）も可能となる。ただし、ここで例示した符号に限定されるものではない。
【００４３】
一方、このような符号の割り当て方法では、各階調値に割り当てられる符号が固定されないため、インクジェットプリンタ２において、パーソナルコンピュータ１から送信されてくる画像データを表す符号がどの階調値に対応しているかを把握できるようにする必要がある。
【００４４】
そこで、パーソナルコンピュータ１は、設定されている印刷条件に従った印刷をインクジェットプリンタ２に指示するための印刷設定コマンドを利用して、各階調値と符号との対応関係を指示する。具体的には、例えば、「‘ｓ’，‘ｅ’，‘ｔ’，‘ｄ’，‘ｒ’，‘ｏ’，‘ｐ’，‘｜’，‘ｅ’，‘ｔ’，Ｎ０，Ｎ１，Ｎ２，Ｎ３，Ｎ４」のようなコマンド（後述する符号割当変更コマンド）で実現することができ、この場合、１５バイトのデータで各階調値と符号との対応関係を指示することができる。なお、Ｎ０〜Ｎ４値は、ドット無し、小ドット、中ドット、大ドット及び特大ドットのそれぞれに割り当てる符号（２ビット符号又は４ビット符号）を意味する。
【００４５】
また、他のコマンドと区別できることを条件に、「‘ｓ’，‘ｅ’，‘ｔ’，‘ｄ’，‘ｒ’，‘ｏ’，‘ｐ’，‘｜’，‘ｅ’，‘ｔ’」を省略して「‘ｓ’，‘ｄ’」などとすることも可能である。さらに、Ｎ０〜Ｎ４がいずれも４ビット以下となることから２つを一組として、「‘ｓ’，‘ｄ’，（Ｎ０＋Ｎ１＊１０Ｂ），（Ｎ２＋Ｎ３＊１０Ｂ），Ｎ４」とすれば、５バイトのデータで各階調値と符号との対応関係を指示することができる。なお、インクジェットプリンタ２が５種類の符号をあらかじめ記憶している場合には、５階調分の５つの対応関係のうち４つさえ伝えれば残りの１つは消去法により特定されるため、例えばＮ４を省略して４バイトのデータとすることも可能である。
【００４６】
また、各階調値と符号との対応関係について、発生し得るすべての対応関係に識別情報をあらかじめ対応づけておくとともにその情報をパーソナルコンピュータ１とインクジェットプリンタ２とが共有していることを前提とすれば、その識別情報を送信することにより各階調値と符号との対応関係を指示することができる。
【００４７】
［３．具体的処理手順］
次に、前述した処理を実現するためにパーソナルコンピュータ１及びインクジェットプリンタ２のそれぞれで実行される具体的な処理手順について説明する。
【００４８】
まず、印刷開始操作が行われることによりパーソナルコンピュータ１の制御部１１（具体的にはＣＰＵ１１１）がプリンタドライバ１２３の機能として実行するドライバ処理について、図２のフローチャートを用いて説明する。なお、前述したように、印刷開始操作が行われると、パーソナルコンピュータ１からインクジェットプリンタ２へ印刷指示が送信される。
【００４９】
制御部１１は、このドライバ処理を開始すると、まずＳ１０１で、ハーフトーン処理後の画像の各階調値に割り当てる符号を決定する符号割当決定処理を実行する。これにより、各階調値に割り当てる符号（つまり、各階調値と符号との対応関係）が決定される。なお、符号割当決定処理の具体的な内容については後述する（図３）。
【００５０】
続いて、Ｓ１０２では、符号割当変更コマンドを含む印刷設定コマンドをインクジェットプリンタ２へ送信する。ここで、符号割当変更コマンドとは、各階調値と符号との対応関係をインクジェットプリンタ２に指示するためのものであり、これによりインクジェットプリンタ２では、各階調値と符号との対応関係を把握できるようになる。
【００５１】
続いて、Ｓ１０３では、符号割当変更機能がオンされているか否かを判定する。ここで、符号割当変更機能とは、プリンタドライバ１２３のダイアログボックスにおいて印刷条件として設定されるものであり、オンに設定されている状態では過去の出願頻度に基づく符号の割り当てが行われ、オフに設定されている場合にはデフォルトの（固定の）符号の割り当てが行われる。例えば、インクジェットプリンタ２を主として文書ファイルの印刷に用いている使用状況において、例外的に写真ファイルの印刷に用いるような場合には、過去の出願頻度に基づく符号の割り当ては適切でないと考えられるため、符号割当変更機能を一時的にオフする、といった使用態様が想定される。
【００５２】
そして、Ｓ１０３で、符号割当変更機能がオンされていると判定した場合には、Ｓ１０４へ移行し、後述するハーフトーン処理で生成されるＣＭＹＫ各色の画像データの階調値別のドット数をカウントするためのドット数カウンタを初期化する。その後、Ｓ１０５へ移行する。
【００５３】
一方、Ｓ１０３で、符号割当変更機能がオンされていないと判定した場合には、そのままＳ１０５へ移行する。
【００５４】
Ｓ１０５では、印刷ジョブに係る画像データのうち未処理のライン単位の画像データ（色変換処理後のＣＭＹＫデータ）に対し、画像の階調数を２５６階調から５階調に低下させるハーフトーン処理（誤差拡散処理）を実行する。
【００５５】
続いて、Ｓ１０６では、前述したＳ１０３と同様、符号割当変更機能がオンされているか否かを判定する。
【００５６】
そして、Ｓ１０６で、符号割当変更機能がオンされていると判定した場合には、Ｓ１０７へ移行し、Ｓ１０５のハーフトーン処理で生成された画像データの階調値別のドット数をカウントする。その後、Ｓ１０８へ移行する。
【００５７】
一方、Ｓ１０６で、符号割当変更機能がオンされていないと判定した場合には、そのままＳ１０８へ移行する。
【００５８】
Ｓ１０８では、ハーフトーン処理後の画像を構成する各画素にその階調値に対応する符号を割り当てた画像データを生成する符号化処理を行う。
【００５９】
続いて、Ｓ１０９では、Ｓ１０８で生成した画像データ（印刷データ）をインクジェットプリンタ２へ送信する。これにより、インクジェットプリンタ２では、その画像データの表す画像を印刷する処理が実行される。
【００６０】
続いて、Ｓ１１０では、印刷ジョブの全ページの処理が終了したか否かを判定する。
【００６１】
そして、Ｓ１１０で、印刷ジョブの全ページの処理が終了していないと判定した場合には、Ｓ１０５へ戻り、未処理の画像データについて前述した処理を行う。
【００６２】
一方、Ｓ１１０で、印刷ジョブの全ページの処理が終了したと判定した場合には、Ｓ１１１へ移行し、前述したＳ１０３と同様、符号割当変更機能がオンされているか否かを判定する。
【００６３】
そして、Ｓ１１１で、符号割当変更機能がオンされていると判定した場合には、Ｓ１１２へ移行し、ドット数カウンタでカウントされた階調値別のカウント値（今回の印刷ジョブについてのドットの発生数）を発生頻度データ１２４として記憶部１２に保存する。後述するように、発生頻度データ１２４は、所定数の印刷ジョブ分が蓄積される。その後、本ドライバ処理を終了する。
【００６４】
一方、Ｓ１１１で、符号割当変更機能がオンされていないと判定した場合には、そのまま本ドライバ処理を終了する。
【００６５】
次に、前述したドライバ処理のＳ１０１で実行される符号割当決定処理について、図３のフローチャートを用いて説明する。
【００６６】
制御部１１は、この符号割当決定処理を開始すると、まずＳ２０１で、前述したＳ１０３と同様、符号割当変更機能がオンされているか否かを判定する。
【００６７】
そして、Ｓ２０１で、符号割当変更機能がオンされていると判定した場合には、Ｓ２０２へ移行し、記憶部１２に過去の発生頻度データ１２４が存在するか（記憶されているか）否かを判定する。ここで、発生頻度データ１２４は、前述したように、符号割当変更機能がオンされていることを条件として、印刷ジョブの全ページの処理が終了した後に記憶されるデータであり、具体的には、ハーフトーン処理後のＣＭＹＫ各色の階調値別のドットの発生数（発生頻度）を表すデータである。したがって、符号割当変更機能オンでの処理を過去に行ったことがある場合には、このＳ２０２で発生頻度データ１２４が存在すると判定されることになる。
【００６８】
なお、本実施形態では、発生頻度データ１２４を、印刷ジョブ単位で消去可能な形式で記憶しており、例えば、ジョブの識別番号と各色・各階調値のドットの発生数の２次元配列データをレジストリ値又はバイナリデータファイルとして保持する。また例えば、各色・各階調値のドット数のデータのみのログファイルを、履歴として保持するジョブ数の分だけ残しておくようにしてもよい。
【００６９】
そして、Ｓ２０２で、発生頻度データ１２４が存在すると判定した場合には、Ｓ２０３へ移行し、発生頻度データ１２４の数がサンプリング数設定＋１以上であるか否かを判定する。ここで、「発生頻度データ１２４の数」とは、印刷ジョブ単位での数であり、「サンプリング数設定」とは、発生頻度データ１２４の蓄積数のしきい値である。つまり、印刷ジョブ単位での発生頻度データ１２４の数が、蓄積数のしきい値を上回っているか否かを判定する。
【００７０】
そして、Ｓ２０３で、発生頻度データ１２４の数がサンプリング数設定＋１以上であると判定した場合には、Ｓ２０４へ移行し、記憶されている発生頻度データ１２４の中から古いものを消去する消去処理を行う。具体的には、サンプリング数設定を越える分の発生頻度データ１２４を古いものから消去する。その後、Ｓ２０５へ移行する。なお、サンプリング数設定の値は印刷条件の設定において変更できるようになっており、例えば、サンプリング数設定の値を小さく変更した場合には、複数分の発生頻度データ１２４が消去されることになる。なお、サンプリング数設定の値は複数（２以上）である必要はなく、最新のデータのみを加味するように値を１に設定してもよい。
【００７１】
一方、Ｓ２０３で、発生頻度データ１２４の数がサンプリング数設定＋１以上でない（サンプリング数設定以下である）と判定した場合には、そのままＳ２０５へ移行する。
【００７２】
続いて、Ｓ２０５では、発生頻度データ１２４に基づき階調値別の発生頻度を求め、発生頻度の高い階調値にデータ長の短い符号を割り当てる。具体的には、記憶されているすべての発生頻度データ１２４を集計し、ドットの発生頻度が最も多い階調値及び２番目に多い階調値に２ビット符号を割り当てる。その後、本符号割当決定処理を終了する。
【００７３】
一方、Ｓ２０１で符号割当変更機能がオンされていないと判定した場合や、Ｓ２０２で発生頻度データ１２４が存在しないと判定した場合には、Ｓ２０６へ移行し、各階調値にデフォルトの符号を割り当てる。デフォルトの符号は、例えば、ドット無し「００Ｂ」、小ドット「１０１０Ｂ」、中ドット「１０１１Ｂ」、大ドット「１１１０Ｂ」、特大ドット「０１Ｂ」と設定されている。その後、本符号割当決定処理を終了する。
【００７４】
次に、パーソナルコンピュータ１から印刷指示を受けることによりインクジェットプリンタ２の制御部２１（具体的にはＣＰＵ２１１）が実行するプリンタ処理について、図４のフローチャートを用いて説明する。
【００７５】
制御部２１は、このプリンタ処理を開始すると、まずＳ３０１で、印刷準備としての初期化処理を行う。
【００７６】
続いて、Ｓ３０２では、パーソナルコンピュータ１から送信されてくる印刷設定コマンドを受信する。なお、この印刷設定コマンドは、前述したドライバ処理（図２）におけるＳ１０２で送信される。
【００７７】
続いて、Ｓ３０３では、Ｓ３０２で受信した印刷設定コマンドに符号割当変更コマンドが含まれているか否かを判定する。
【００７８】
そして、Ｓ３０３で、符号割当変更コマンドが含まれていると判定した場合には、Ｓ３０４へ移行し、その符号割当変更コマンドで指示されている各階調値と符号との対応関係に従い、符号の割り当てをあらかじめ設定されているデフォルトのもの（Ｓ２０６と同じもの）からその指示されているものへ変更する。その後、Ｓ３０５へ移行する。
【００７９】
一方、Ｓ３０３で、符号割当変更コマンドが含まれていないと判定した場合には、そのままＳ３０５へ移行する。この場合、符号の割り当てにはデフォルトのものが用いられる。なお、通常は、符号割当変更コマンドが含まれているためＳ３０４の処理が実行されることになるが、このような判定処理を入れることにより、何らかの理由で符号割当変更コマンドが含まれていない場合にも直ちにエラーとすることなく処理を継続することができる。
【００８０】
Ｓ３０５では、パーソナルコンピュータ１から送信されてくる画像データを受信する。なお、この画像データは、前述したドライバ処理（図２）におけるＳ１０９で送信される。通信部１３においては、通信部２３で各画像データの復号に必要なシリアルデータのスタートビット、ストップビットなどを画像データに挿入する。
【００８１】
続いて、Ｓ３０６では、Ｓ３０５で受信した画像データの復号処理を行う。
【００８２】
続いて、Ｓ３０７では、Ｓ３０６で復号された画像データの表す画像を用紙に印刷するための印刷処理を行う。
【００８３】
続いて、Ｓ３０８では、印刷ジョブの全ページの処理が終了したか否かを判定する。
【００８４】
そして、Ｓ３０８で、印刷ジョブの全ページの処理が終了していないと判定した場合には、Ｓ３０５へ戻る。
【００８５】
一方、Ｓ３０８で、印刷ジョブの全ページの処理が終了したと判定した場合には、Ｓ３０９へ移行し、印刷を終了するための終了処理を行う。その後、本プリンタ処理を終了する。
【００８６】
［４．効果］
以上説明したように、本実施形態の通信システムにおいて、パーソナルコンピュータ１では、過去にハーフトーン処理を行った画像の階調値別のドット数（画素数）をカウントした発生頻度データ１２４を蓄積しておき、蓄積されている発生頻度データ１２４に基づきドット数の多い階調値ほどビット長の短い符号を割り当てた画像データを生成する。このため、パーソナルコンピュータ１からインクジェットプリンタ２へ送信する画像データのデータサイズを効率よく小さくすることができる。その結果、シリアルバス３を介した通信時間を短くすることができる。
【００８７】
特に、本実施形態の通信システムでは、ハーフトーン処理後の画像を実際に解析して階調値別のドット数の比率を特定する必要がなく、画像データをインクジェットプリンタ２へ送信する前にその画像データについての符号割当変更コマンドを送信しておくことができる。このため、ライン単位の画像データを順次生成しつつインクジェットプリンタ２へ送信して印刷させるという従来からの処理を妨げることなく前述した効果を得ることができる。
【００８８】
また、本実施形態のパーソナルコンピュータ１によれば、発生頻度データ１２４のうち古いものを消去するようにしているため、古い発生頻度データ１２４に基づき符号を割り当てる場合に比べ、インクジェットプリンタ２で印刷される画像の傾向の変化に追従しやすくすることができる。
【００８９】
さらに、本実施形態のパーソナルコンピュータ１では、符号割当変更機能がオフされている場合には、発生頻度データ１２４に関係なく、ハーフトーン処理後の階調数の各階調値にあらかじめ決められた（デフォルトの）符号を割り当てる。このため、過去に印刷された画像の傾向とは大きく異なる画像を印刷する場合に不適切な符号が割り当てられてしまうことを防ぐことができる。
【００９０】
加えて、本実施形態のパーソナルコンピュータ１では、符号割当変更機能がオフされている場合には、ハーフトーン処理後の画像についての発生頻度データ１２４を蓄積しないようにしている。このため、例えば、過去に印刷された画像の傾向とは大きく異なる画像を例外的に印刷する場合に、その画像についての発生頻度データ１２４が蓄積されることによって、蓄積された発生頻度データ１２４が不適切なものになってしまうことを防ぐことができる。
【００９１】
［５．特許請求の範囲との対応］
なお、本実施形態では、パーソナルコンピュータ１が画像処理装置に相当し、Ｓ１０５，Ｓ１０８，Ｓ２０１，Ｓ２０５，Ｓ２０６の処理を実行する制御部１１が生成手段に相当し、Ｓ１０３，Ｓ１０４，Ｓ１０６，Ｓ１０７，Ｓ１１１，Ｓ１１２，Ｓ２０３，Ｓ２０４の処理を実行する制御部１１が蓄積手段に相当し、Ｓ１０２，Ｓ１０９の処理を実行する制御部１１が送信手段に相当する。
【００９２】
［６．他の形態］
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されることなく、種々の形態を採り得ることは言うまでもない。
【００９３】
例えば、ハーフトーン処理は、２５６階調を５階調に低下させる処理に限定されるものではなく、これ以外の階調でも同様の効果を得ることが可能である。また、ハーフトーン処理は誤差拡散処理に限定されるものではなく、例えば誤差を拡散しない処理であってもよい。
【００９４】
また、上記実施形態では、各階調値への符号の割り当てを印刷ジョブ単位で決定するようにしているが、これに限定されるものではなく、例えば、ページ単位やライン単位で決定することも可能である。
【００９５】
さらに、上記実施形態では、ＣＭＹＫの４色のインクを用いて画像を印刷するインクジェット方式の印刷部２６を例に挙げて説明したが、これに限定されるものではなく、例えばより多くの色のインクを用いる構成とすることも可能である。
【符号の説明】
【００９６】
１…パーソナルコンピュータ、２…インクジェットプリンタ、３…シリアルバス、１１…制御部、１２…記憶部、１３…通信部、１４…操作部、１５…表示部、２１…制御部、２２…記憶部、２３…通信部、２４…操作部、２５…表示部、２６…印刷部
【図１】
2010199733.tif 000003
【図２】
2010199733.tif 000004
【図３】
2010199733.tif 000005
【図４】
2010199733.tif 000006