(57)【要約】【課題】  画像を構成する画素数を変更せずに、用紙上に形成される画像の品質劣化を抑制することを可能とする画像形成装置及びデータ圧縮方法を提供する。【解決手段】  画像形成装置１００に設けられた制御ユニット４００は、複数の隣接画素によって１つの注目集合画素を構成して、第１描画データに係る複数の隣接画素の値に基づいて、第１描画データに係る注目集合画素の値を算出する算出部４４１と、第１描画データに係る注目集合画素の値を符号化する圧縮部４４２と、第１描画データに係る注目集合画素の値と、第２描画データに係る注目集合画素の伸長値との差分である誤差を注目集合画素の周囲に設けられた周辺画素に分配する分配部４４３と、第１描画データの圧縮を終了するまで、注目集合画素のシフトを繰り返すシフト部４４４とを有する。【選択図】  図２
2010045488.tif 000002
【特許請求の範囲】
【請求項１】
用紙上に画像を形成する画像形成装置であって、
第１描画データを第２描画データに圧縮し、前記第２描画データを伸長して伸長後描画データを得る制御部と、
前記制御部の指示に応じて、前記伸長後描画データに基づいて画像を用紙上に形成する画像形成部とを備え、
前記制御部は、
複数の注目すべき隣接画素によって１つの注目集合画素を構成して、前記第１描画データの集合注目画素に係る前記複数の隣接画素の値に基づいて、前記第１描画データに係る前記注目集合画素の値を算出する算出部と、
前記第１描画データに係る前記注目集合画素の値と判定閾値とを比較して、前記第１描画データに係る前記注目集合画素の値を符号化する圧縮部と、
前記第１描画データに係る前記注目集合画素の値と、前記第２描画データに係る前記注目集合画素の伸長値との差分である誤差を前記注目集合画素の周囲に設けられた周辺画素に分配して、前記第１描画データに係る前記周辺画素の値を前記誤差によって修正する分配部と、
前記第１描画データの圧縮を終了するまで、前記複数の注目すべき隣接画素をシフトすることにより、前記注目集合画素のシフトを繰り返すシフト部とを有し、
前記算出部、前記圧縮部及び前記分配部は、前記複数の注目すべき画素のシフト毎に処理を繰り返すことを特徴とする画像形成装置。
【請求項２】
前記算出部は、前記第１描画データに係る前記複数の隣接画素の値の平均値を、前記第１描画データに係る前記注目集合画素の値として算出することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記注目集合画素を構成する前記複数の隣接画素の数は、前記第１描画データを前記第２描画データに圧縮する圧縮率と、前記伸長後描画データに係る１画素の階調数とによって定められることを特徴とする請求項１に記載の画像形成装置。
【請求項４】
第１描画データを第２描画データに圧縮するデータ圧縮方法であって、
複数の注目すべき隣接画素によって１つの注目集合画素を構成して、前記第１描画データに係る前記複数の隣接画素の値に基づいて、前記第１描画データに係る前記注目集合画素の値を算出するステップＡと、
前記第１描画データに係る前記注目集合画素の値と判定閾値とを比較して、前記注目集合画素の値を符号化するステップＢと、
前記第１描画データに係る前記注目集合画素の値と前記第２描画データに係る前記注目集合画素の伸長値との差分である誤差を前記注目集合画素の周囲に設けられた周辺画素に分配して、前記第１描画データに係る前記周辺画素の値を前記誤差によって修正するステップＣと、
前記第１描画データの圧縮を終了するまで、前記複数の注目すべき画素のシフトにより、前記注目集合画素のシフトを繰り返すステップＤとを有しており、
前記ステップＡ、前記ステップＢ及び前記ステップＣは、前記複数の注目すべき隣接画素のシフト毎に繰り返されることを特徴とするデータ圧縮方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、用紙上に画像を形成する画像形成装置、及び、第１描画データを第２描画データに圧縮するデータ圧縮方法に関する。
【背景技術】
【０００２】
従来、画像データに基づいて、用紙上に画像を形成する複写機やプリンタ等の画像形成装置が知られている。画像形成装置が複写機である場合には、画像形成装置は、原稿から画像を読み取ることによって描画データとしての画像データを取得する。一方で、画像形成装置がプリンタである場合には、画像形成装置は、パーソナルコンピュータなどの外部装置から描画データとしての、或いは、描画データを生成する元データとしての画像データを取得する。
【０００３】
元データをパーソナルコンピュータなどの外部装置から取得する場合には、外部装置は、ページ記述言語（ＰＤＬ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述された印刷ジョブを出力する。印刷ジョブは、ページ記述言語で記述された画像データを含む。ページ記述言語で記述された画像データは、例えば、プリンタとは別体構成とされた、或いは、プリンタに組み込まれたプリンタコントローラによって、ビットマップデータなどの中間言語で記述された第１描画データに変換される。第１描画データでは、第１ビット数、例えば、８ビットで１画素が表される。すなわち、第１描画データでは、１画素は、２５６階調を有する。
【０００４】
一方で、画像形成装置は、メモリ領域のサイズやレーザの駆動制御能力の制約から、第１描画データを低階調化して、第２描画データを取得する。第２描画データでは、第１ビット数よりも少ない第２ビット数、例えば、１ビットで１画素が表現される。すなわち、第２描画データでは、典型的には、１画素は、２階調を有する。
【０００５】
なお、第２描画データにおいて、第２ビット数は、１ビットに限定されるものではなく、メモリ領域のサイズやレーザの駆動制御能力が許容するのであれば、２ビットであってもよい。このようなケースでは、２ビットで１画素が表現され、１画素は、４階調を有する。
【０００６】
このように、第１描画データの低階調化に伴って、階調の再現性が劣化する。これに対して、階調の再現性の劣化を抑制するために、出力画像を構成する複数の画素によって、入力画像を構成する１画素を表現する技術が提案されている（例えば、特許文献１）。但し、この技術は、入力画像の画素数が出力画像の画素数よりも少ないケース、即ち、入力画像に比べて出力画像が低解像度とされるケースにのみ適用可能である。
【特許文献１】特開平８−２３４７０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように、特許文献１の技術では、入力画像の画素数が出力画像の画素数よりも少ないことを前提としている。詳細には、出力画像の画素数は、入力画像の画素数の整数倍でなければならない。
【０００８】
また、上述の特許文献１とは異なる背景技術として、誤差拡散法を採用して低解像度化することが知られている。誤差拡散法では、規則的パターンの重畳によって生じる縞干渉、いわゆる「モワレ」の発生を低減することが可能である。しかしながら、濃度の変化が小さい領域では、誤差拡散法を用いても目障りな縞模様が生じる可能性がある。
【０００９】
そこで、本発明は、上述した課題を解決するためになされたものであり、低解像度化を伴うことなく、用紙上に形成する画像の品質劣化を抑制することを可能とする画像形成装置及びデータ圧縮方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の特徴に係る画像形成装置は、用紙上に画像を形成する。画像形成装置は、第１描画データを第２描画データに圧縮し、前記第２描画データを伸長後描画データに伸長する制御部（制御ユニット４００）と、前記制御部の指示に応じて、前記伸長後描画データに基づいて画像を用紙上に形成する画像形成部（画像形成部５０）とを備える。前記制御部は、複数の隣接画素によって１つの注目集合画素を構成して、前記第１描画データに係る前記複数の隣接画素の値に基づいて、前記第１描画データに係る前記注目集合画素の値を算出する算出部（算出部４４１）と、前記第１描画データに係る前記注目集合画素の値と判定閾値とを比較して、前記第１描画データに係る前記注目集合画素の値を符号化する圧縮部（圧縮部４４２）と、前記第１描画データに係る前記注目集合画素の値と、前記第２描画データに係る前記注目集合画素の伸長値との差分である誤差を前記注目集合画素の周囲に設けられた周辺画素に分配して、前記第１描画データに係る前記周辺画素の値を前記誤差によって修正する分配部（分配部４４３）と、前記第１描画データの圧縮を終了するまで、前記複数の注目すべき画素のシフトにより、前記注目集合画素のシフトを繰り返すシフト部（シフト部４４４）とを有する。前記算出部、前記圧縮部及び前記分配部は、前記複数の注目すべき画素のシフト毎に処理を繰り返す。
【００１１】
かかる特徴によれば、制御部は、複数の隣接画素によって１つの注目集合画素を構成して、第１描画データに係る注目集合画素の値を符号化する。すなわち、制御部は、注目集合画素単位で、第１描画データを第２描画データに圧縮する。
【００１２】
これによって、注目集合画素を構成する複数の隣接画素に割り当てられるビット数によって、第２描画データに係る注目集合画素の値を表現することができる。すなわち、第２描画データに係る注目集合画素の値を表現するビット数の増大によって、伸長後描画データに係る画素の階調数を増やすことができる。
【００１３】
このように、誤差拡散法を用いるケースにおいて、圧縮率の低下を伴わずに、画素の階調数を増やすことができるため、用紙上に形成される画像の品質劣化を抑制することができる。なお、低解像度化を伴う必要がないことは勿論である。
【００１４】
第１の特徴において、前記算出部は、前記第１描画データに係る前記複数の隣接画素の値の平均値を、前記第１描画データに係る前記注目集合画素の値として算出する。
【００１５】
第１の特徴において、前記注目集合画素を構成する前記複数の隣接画素の数は、前記第１描画データを前記第２描画データに圧縮する圧縮率と、前記伸長後描画データに係る１画素の階調数とによって定められる。
【００１６】
第２の特徴に係るデータ圧縮方法は、第１描画データを第２描画データに圧縮する。データ圧縮方法は、複数の隣接画素によって１つの注目集合画素を構成して、前記第１描画データに係る前記複数の隣接画素の値に基づいて、前記第１描画データに係る前記注目集合画素の値を算出するステップＡと、前記第１描画データに係る前記注目集合画素の値と判定閾値とを比較して、前記注目集合画素の値を符号化するステップＢと、前記第１描画データに係る前記注目集合画素の値と前記第２描画データに係る前記注目集合画素の伸長値との差分である誤差を前記注目集合画素の周囲に設けられた周辺画素に分配して、前記第１描画データに係る前記周辺画素の値を前記誤差によって修正するステップＣと、前記第１描画データの圧縮を終了するまで、前記複数の注目すべき画素のシフトにより、前記注目集合画素のシフトを繰り返すステップＤとを有する。前記ステップＡ、前記ステップＢ及び前記ステップＣは、前記複数の注目すべき画素のシフト毎に繰り返される。
【発明の効果】
【００１７】
本発明によれば、低解像度化を伴うことなく、用紙上に形成する画像の品質劣化を抑制することを可能とする画像形成装置及びデータ圧縮方法を提供することができる。
【発明を実施するための最良の形態】
【００１８】
以下において、本発明の実施形態に係る画像形成装置について、図面を参照しながら説明する。なお、以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。
【００１９】
ただし、図面は模式的なものであり、各寸法の比率などは現実のものとは異なることに留意すべきである。従って、具体的な寸法などは以下の説明を参酌して判断すべきである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【００２０】
［第１実施形態］
（画像形成装置の概略）
以下において、第１実施形態に係る画像形成装置の概略について、図面を参照しながら説明する。図１は、第１実施形態に係る画像形成装置１００の概略を示す図である。なお、図１では、画像形成装置１００の詳細な構成については省略されていることに留意すべきである。
【００２１】
図１に示すように、画像形成装置１００は、自動原稿送りユニット１０と、画像読取ユニット２０と、用紙トレイユニット３０と、給紙ユニット４０と、画像形成部５０と、定着ユニット６０と、排紙ユニット７０と、反転ユニット８０と、操作ユニット９０とを有する。画像形成装置１００は、給紙装置２００及び後処理装置３００をさらに有する。
【００２２】
画像形成装置１００は、プリンタコントローラ５００を介してユーザ端末６００に接続されている。画像形成装置１００は、例えば、プリンタコントローラ５００とビデオバス５０１によって接続される。プリンタコントローラ５００は、例えば、ユーザ端末６００とＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）６０１によって接続される。
【００２３】
第１実施形態では、画像形成装置１００として、電子写真方式によって用紙上に画像を形成するＭＦＰ（Ｍｕｌｔｉｐｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）を例示する。但し、画像形成方法は、電子写真方式に限定されるものではなく、インクジェット方式、熱転写方式、ドットインパクト方式などであってもよい。
【００２４】
自動原稿送りユニット１０は、複写すべき原稿を搬送するユニットである。画像読取ユニット２０は、原稿の画像を読み取って、画像データを生成するユニットである。
【００２５】
用紙トレイユニット３０は、用紙を収容するユニットである。給紙ユニット４０は、画像形成部５０に用紙を給紙するユニットである。
【００２６】
画像形成部５０は、画像読取ユニット２０によって生成された画像データに応じて、給紙ユニット４０によって給紙された用紙上にトナー像を形成する。具体的には、画像形成部５０は、イエローに対応するトナー像を形成するイエロー用ユニット５０Ｙと、マゼンタに対応するトナー像を形成するマゼンタ用ユニット５０Ｍと、シアンに対応するトナー像を形成するシアン用ユニット５０Ｃと、ブラックに対応するトナー像を形成するブラック用ユニット５０Ｋと、中間転写ベルト５１と、転写ローラ５２とを有する。イエロー用ユニット５０Ｙ、マゼンタ用ユニット５０Ｍ、シアン用ユニット５０Ｃ及びブラック用ユニット５０Ｋは、それぞれ、感光体ドラムや書込み処理部などを有する。
【００２７】
各感光体ドラムは、光導電性感光層が表面に形成されたドラムであり、回転可能に設けられている。各感光体ドラムの表面には、各色に対応する静電荷潜像が形成される。
【００２８】
各書込み処理部は、後述する制御ユニット４００から取得する画像データ、すなわち、後述する第２描画データに応じて、各色に対応する静電荷潜像を感光体ドラムの表面に形成する。具体的には、書込み処理部は、画像データに基づいてレーザ光を出射するレーザダイオードと、レーザ光を偏向走査する走査光学ユニットを有している。
【００２９】
中間転写ベルト５１は、イエロー用ユニット５０Ｙ、マゼンタ用ユニット５０Ｍ、シアン用ユニット５０Ｃ、ブラック用ユニット５０Ｋ、転写ローラ５２を通るように、複数のローラに巻き回されている。中間転写ベルト５１上には、各色のトナー像が重ね合わされる。
【００３０】
転写ローラ５２は、中間転写ベルト５１上に形成されたトナー像を用紙上に転写する具体的には、転写ローラ５２は、トナーと反対の極性を有するように帯電している。
【００３１】
定着ユニット６０は、用紙上に形成されたトナー像を熱圧着によって用紙に定着するユニットである。排紙ユニット７０は、トナー像が定着された用紙を排紙するユニットである。反転ユニット８０は、片面についてトナー像の形成が終了してない用紙の表裏を反転させるユニットである。
【００３２】
操作ユニット９０は、画像形成装置１００の操作を行うためのユーザインタフェースである。操作ユニット９０は、液晶パネル上にタッチパネルが重畳されたタッチスクリーン、ボタン及びスイッチによって構成される。
【００３３】
給紙装置２００は、用紙トレイユニット３０よりも多量の用紙を収容する装置である。多量の用紙を出力するケースにおいて、給紙装置２００は、用紙トレイユニット３０の代わりに用いられる。
【００３４】
後処理装置３００は、画像が形成された用紙の後処理を行う。具体的には、後処理装置３００は、ソート処理、パンチ（穴空け）処理、ステープル処理、中折り処理、裁断処理などを行う。
【００３５】
プリンタコントローラ５００は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）６０１を介してユーザ端末６００から印刷ジョブを受信する。プリンタコントローラ５００は、印刷ジョブを解析して画像データを生成し、この画像データをビデオバス５０１を介して画像形成装置１００に送信する。
【００３６】
ここで、印刷ジョブは、ユーザ端末６００によって指定された画像の印刷を指示するデータであり、例えば、ＰｏｓｔＳｃｒｉｐｔ（アドビ社の登録商標）やＰＣＬなどのページ記述言語（ＰＤＬ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述されている。
【００３７】
具体的には、プリンタコントローラ５００は、ページ記述言語で記述された画像データを中間言語で記述されるデータに変換し、この中間言語のデータから１画素当り所定の第１ビット数を有する第１描画データに変換する。プリンタコントローラ５００は、ビデオバス５０１を介して第１描画データを画像データとして画像形成装置１００に送信する。第１描画データにおける所定の第１ビット数は、本例では、８ビットである。
【００３８】
ユーザ端末６００は、パーソナルコンピュータなどの端末である。ユーザ端末６００は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）６０１を介して印刷ジョブをプリンタコントローラ５００に送信する。
【００３９】
（画像形成装置の機能）
以下において、第１実施形態に係る画像形成装置の機能について、図面を参照しながら説明する。図２は、第１実施形態に係る画像形成装置１００を示すブロック図である。
【００４０】
図２に示すように、画像形成装置１００は、画像形成装置１００を統括的に制御する制御ユニット４００を有する。制御ユニット４００は、通信Ｉ／Ｆ４１０と、ＨＤＤ４２０と、メモリ４３０と、ＣＰＵ４４０とを有する。
【００４１】
通信Ｉ／Ｆ４１０は、ビデオバス５０１に接続されており、前述の第１描画データを画像データとしてプリンタコントローラ５００から取得する。
【００４２】
ＨＤＤ４２０は、制御プログラムや画像形成装置１００の機能に関する情報などを記憶する。
【００４３】
メモリ４３０は、ＤＲＡＭなどの半導体メモリによって構成される。メモリ４３０上には、ＨＤＤ４２０に記憶された制御プログラムが展開される。また、メモリ４３０は、画像読取ユニット２０によって取得された画像データや通信Ｉ／Ｆ４１０によって取得された画像データを一時的に記憶する。ここで、メモリ４３０は、画像データとして後述の第２描画データを記憶する。
【００４４】
ＣＰＵ４４０は、メモリ４３０上に展開された制御プログラムに従って、画像形成装置１００の各構成を制御する。以下においては、第１実施形態に関連するＣＰＵ４４０の動作について主として説明する。従って、ＣＰＵ４４０の動作の一部は省略されていることに留意すべきである。
【００４５】
具体的には、ＣＰＵ４４０は、第１描画データを第２描画データに圧縮する。また、ＣＰＵ４４０は、第２描画データを伸長して伸長後描画データを生成する。ＣＰＵ４４０は、図３に示すように、算出部４４１と、圧縮部４４２と、分配部４４３と、シフト部４４４と、伸長部４４５と、ラスタライズ部４４６と、指示部４４７とを有する。
【００４６】
第１実施形態では、第１描画データを第２描画データに圧縮する際に、複数の注目すべき隣接画素によって１つの集合画素（注目集合画素）が構成される。第２描画データでは、注目集合画素を構成する複数の隣接画素の値が１つの注目集合画素の値を構成する。伸長後描画データでは、注目集合画素を構成する複数の隣接画素が同じ値を有する。
【００４７】
第１実施形態では、以下に示す内容を前提として説明することに留意すべきである。但し、実施形態は、このような前提に限定されないことは勿論である。
【００４８】
（１）  画素の座標表現
第１描画データに係る画素の座標をｆ（ｘ，ｙ）で表し、第２描画データに係る画素の座標をｇ（ｘ，ｙ）で表し、伸長後描画データに係る画素の座標をｈ（ｘ，ｙ）で表す。ｆ（ｘ，ｙ）及びｆ（ｘ＋１，ｙ）によって構成される注目集合画素をＦ（Ｘ，Ｙ）で表す。ｇ（ｘ，ｙ）及びｇ（ｘ＋１，ｙ）によって構成される注目集合画素をＧ（Ｘ，Ｙ）で表す。ｈ（ｘ，ｙ）及びｈ（ｘ＋１，ｙ）によって構成される注目集合画素をＨ（Ｘ，Ｙ）で表す。このように、第１実施形態では、注目集合画素は、水平方向に隣接する２つの画素によって構成される。
【００４９】
なお、“ｘ”，“Ｘ”は、水平方向の座標を表しており、“ｙ”，“Ｙ”は、垂直方向の座標を表している。また、ｆ（ｘ，ｙ）、ｇ（ｘ，ｙ）及びｈ（ｘ，ｙ）は、１対１の関係を有する。また、Ｘ−Ｙ座標におけるＸ座標において、１注目集合画素は、ｘ−ｙ座標におけるｘ座標の２画素に相当する。Ｘ−Ｙ座標におけるＹ座標において、１注目集合画素は、ｘ−ｙ座標におけるｙ座標の１画素に相当する。
【００５０】
（２）  画素を表現するビット
第１描画データでは、１画素が８ビットで表現される。すなわち、第１描画データでは、１画素は２５６階調を有する。第２描画データでは、１注目集合画素が２ビットで表現される。伸長後描画データでは、注目集合画素を構成する複数の隣接画素が同じ値を有するため、１画素は４階調を有する。
【００５１】
（３）  圧縮率
注目集合画素が２つの隣接画素によって構成されるため、第１描画データでは、注目集合画素は、８ビット×２画素＝１６ビットで表現される。第２描画データでは、注目集合画素は、２ビットで表現される。従って、第１描画データを第２描画データに圧縮する圧縮率は、２／１６＝１／８である。
【００５２】
図３に戻って、算出部４４１は、複数の注目すべき隣接画素（注目隣接画素）によって１つの注目集合画素を構成する。続いて、算出部４４１は、第１描画データに係る注目隣接画素の値に基づいて、注目集合画素の値を算出する。第１実施形態では、注目集合画素の値は、第１描画データに係る注目隣接画素の値の平均値である。
【００５３】
圧縮部４４２は、第１描画データに係る注目集合画素の値と判定閾値とを比較して、第１描画データに係る注目集合画素の値を符号化する。第１実施形態に係る伸長後描画データでは、１画素が４階調を有するため、判定閾値は、第１判定閾値、第２判定閾値及び第３判定閾値の３種類である。例えば、第１判定閾値は“６４”であり、第２判定閾値は“１２８”であり、第３判定閾値は“１９６”である。
【００５４】
圧縮部４４２は、第１描画データに係る注目集合画素の値が第１判定閾値未満である場合には、第２描画データに係る注目集合画素の値をビット列“００”で表現する。圧縮部４４２は、第１描画データに係る注目集合画素の値が第１判定閾値以上、第２判定閾値未満である場合には、第２描画データに係る注目集合画素の値をビット列“１０”で表現する。圧縮部４４２は、第１描画データに係る注目集合画素の値が第２判定閾値以上、第３判定閾値未満である場合には、第２描画データに係る注目集合画素の値をビット列“０１”で表現する。圧縮部４４２は、第１描画データに係る注目集合画素の値が第３判定閾値以上である場合には、第２描画データに係る注目集合画素の値をビット列“１１”で表現する。
【００５５】
圧縮部４４２は、第１描画データに係る注目集合画素の値の符号化が完了した旨を分配部４４３に通知する。
【００５６】
分配部４４３は、第１描画データに係る注目集合画素の値と第２描画データに係る注目集合画素の伸長値との差分である誤差を注目集合画素の周辺に設けられた周辺画素に分配して、第１描画データに係る周辺画素の値を誤差によって修正する。
【００５７】
なお、伸長値は、第２描画データに係る注目集合画素の値に対応付けられた値である。具体的には、第２描画データに係る注目集合画素の値の伸長によって得られる値である。第１実施形態に係る伸長後描画データでは、１画素が４階調を有するため、伸長値は、第１伸長値、第２伸長値、第３伸長値及び第４伸長値の４種類である。例えば、ビット列“００”に対応する第１伸長値は“０”であり、ビット列“１０”に対応する第２伸長値は“９６”であり、ビット列“０１”に対応する第３伸長値は“１９６”であり、ビット列“１１”に対応する第４伸長値は“２５５”である。
【００５８】
第１実施形態では、Ｆ（Ｘ，Ｙ）の値とＧ（Ｘ，Ｙ）の伸長値との差分である誤差をｅ（Ｘ，Ｙ）で表す。ここでは、Ｆ（Ｘ＋１，Ｙ）、Ｆ（Ｘ−１，Ｙ＋１）、Ｆ（Ｘ，Ｙ＋１）、Ｆ（Ｘ＋１，Ｙ＋１）にｅ（Ｘ，Ｙ）を分配するケースについて説明する。なお、Ｆ（Ｘ＋１，Ｙ）は、ｆ（ｘ＋２，ｙ）及びｆ（ｘ＋３，ｙ）によって構成される注目集合画素である。Ｆ（Ｘ−１，Ｙ＋１）は、ｆ（ｘ−２，ｙ＋１）及びｆ（ｘ−１，ｙ＋１）によって構成される注目集合画素である。Ｆ（Ｘ，Ｙ＋１）は、ｆ（ｘ，ｙ＋１）及びｆ（ｘ＋１，ｙ＋１）によって構成される注目集合画素である。Ｆ（Ｘ＋１，Ｙ＋１）は、ｆ（ｘ＋２，ｙ＋１）及びｆ（ｘ＋３，ｙ＋１）によって構成される注目集合画素である。
【００５９】
（１）  （Ｘ＋１，Ｙ）、すなわち、ｆ（ｘ＋２，ｙ）及びｆ（ｘ＋３，ｙ）について
ｆ（ｘ＋２，ｙ）＝ｆ（ｘ＋２，ｙ）＋ｐ１×ｅ（Ｘ，Ｙ）
ｆ（ｘ＋３，ｙ）＝ｆ（ｘ＋３，ｙ）＋ｐ２×ｅ（Ｘ，Ｙ）
なお、ｐ１及びｐ２は、誤差分配に係る係数である。第１実施形態では、ｐ１＝ｐ２＝７／１６である。なお、ｐ１及びｐ２が異なる値であってもよい。
【００６０】
（２）  （Ｘ−１，Ｙ＋１）、すなわち、ｆ（ｘ−２，ｙ＋１）及びｆ（ｘ−１，ｙ＋１）について
ｆ（ｘ−２，ｙ＋１）＝ｆ（ｘ−２，ｙ＋１）＋ｑ１×ｅ（Ｘ，Ｙ）
ｆ（ｘ−１，ｙ＋１）＝ｆ（ｘ−１，ｙ＋１）＋ｑ２×ｅ（Ｘ，Ｙ）
なお、ｑ１及びｑ２は、誤差分配に係る係数である。第１実施形態では、ｑ１＝ｑ２＝３／１６である。なお、ｑ１及びｑ２が異なる値であってもよい。
【００６１】
（３）  （Ｘ，Ｙ＋１）、すなわち、ｆ（ｘ，ｙ＋１）及びｆ（ｘ＋１，ｙ＋１）について
ｆ（ｘ，ｙ＋１）＝ｆ（ｘ，ｙ＋１）＋ｒ１×ｅ（Ｘ，Ｙ）
ｆ（ｘ＋１，ｙ＋１）＝ｆ（ｘ＋１，ｙ＋１）＋ｒ２×ｅ（Ｘ，Ｙ）
なお、ｒ１及びｒ２は、誤差分配に係る係数である。第１実施形態では、ｒ１＝ｒ２＝５／１６である。なお、ｒ１及びｒ２が異なる値であってもよい。
【００６２】
（４）  （Ｘ＋１，Ｙ＋１）、すなわち、ｆ（ｘ＋２，ｙ＋１）及びｆ（ｘ＋３，ｙ＋１）について
ｆ（ｘ＋２，ｙ＋１）＝ｆ（ｘ＋２，ｙ＋１）＋ｓ１×ｅ（Ｘ，Ｙ）
ｆ（ｘ＋３，ｙ＋１）＝ｆ（ｘ＋３，ｙ＋１）＋ｓ２×ｅ（Ｘ，Ｙ）
なお、ｓ１及びｓ２は、誤差分配に係る係数である。第１実施形態では、ｓ１＝ｓ２＝１／１６である。なお、ｓ１及びｓ２が異なる値であってもよい。
【００６３】
分配部４４３は、誤差によって修正された画素の値を算出部４４１に通知する。また、分配部４４３は、誤差の分配が完了した旨をシフト部４４４に通知する。
【００６４】
シフト部４４４は、第１描画データの圧縮を終了するまで、注目隣接画素をシフトすることにより、注目集合画素のシフトを繰り返す。具体的には、シフト部４４４は、Ｘ−Ｙ座標においてＦ（Ｘ，Ｙ）を水平方向又は垂直方向に１注目集合画素分シフトさせる。すなわち、シフト部４４４は、ｘ−ｙ座標における水平方向においてｆ（ｘ，ｙ）を２画素分シフトする。また、シフト部４４４は、ｘ−ｙ座標における垂直方向においてｆ（ｘ，ｙ）を１画素分シフトする。
【００６５】
算出部４４１、圧縮部４４２及び分配部４４３は、注目集合画素のシフト毎に処理を繰り返す。これによって、圧縮部４４２は、第１描画データを第２描画データに圧縮する。
【００６６】
第１実施形態では、圧縮部４４２は、４つの注目集合画素の値に対応するビット列を１０進数で表現される値に変換した上で、１０進数で表現される値を第２描画データとして順にメモリ４３０に格納する。上述したように、伸長後描画データでは、注目集合画素を構成する２つの注目隣接画素が同じ値を有するため、１０進数で表現される値は、８つの画素の値に相当することに留意すべきである。
【００６７】
伸長部４４５は、第２描画データを伸長後描画データに伸長した上で、各画素の値を取得する。具体的には、伸長部４４５は、メモリ４３０に格納された値、すなわち、１０進数で表現される値をメモリ４３０から読み出して、１０進数で表現される値を２進数で表現されるビット列に変換する。
【００６８】
続いて、伸長部４４５は、２進数で表現されるビット列を注目集合画素毎に伸長して、第２描画データに係る注目集合画素の伸長値を取得する。伸長部４４５は、伸長後描画データに係る注目集合画素を構成する各注目隣接画素の値として、第２描画データに係る注目集合画素の伸長値をセットする。
【００６９】
例えば、伸長部４４５は、第２描画データに係る注目集合画素に対応するビット列“００”を伸長して、第２描画データに係る注目集合画素の伸長値として第１伸長値“０”を取得する。伸長部４４５は、伸長後描画データに係る注目集合画素を構成する各画素の値として“０”をセットする。
【００７０】
伸長部４４５は、第２描画データに係る注目集合画素に対応するビット列“１０”を伸長して、第２描画データに係る注目集合画素の伸長値として第２伸長値“９６”を取得する。伸長部４４５は、伸長後描画データに係る注目集合画素を構成する各画素の値として“９６”をセットする。
【００７１】
伸長部４４５は、第２描画データに係る注目集合画素に対応するビット列“０１”を伸長して、第２描画データに係る注目集合画素の伸長値として第３伸長値“１６０”を取得する。伸長部４４５は、伸長後描画データに係る注目集合画素を構成する各画素の値として“１６０”をセットする。
【００７２】
伸長部４４５は、第２描画データに係る注目集合画素に対応するビット列“１１”を伸長して、第２描画データに係る注目集合画素の伸長値として第４伸長値“２５５”を取得する。伸長部４４５は、伸長後描画データに係る注目集合画素を構成する各画素の値として“２５５”をセットする。
【００７３】
ラスタライズ部４４６は、伸長後描画データに係る各画素の値をラスタライズする。具体的には、ラスタライズ部４４６は、伸長後描画データに係る各画素の値をｘ−ｙ座標において並べて、画素の値の配列を取得する。
【００７４】
指示部４４７は、画像形成部５０に画像の形成を指示する。具体的には、指示部４４７は、ラスタライズ部４４６によって取得された画素の値の配列を画像形成部５０に出力する。詳細には、指示部４４７は、画像形成部５０に設けられた各書込み処理部に、各書込み処理部に対応する色の画素の値の配列を出力する。
【００７５】
（画像形成装置の動作）
以下において、第１実施形態に係る画像形成装置の動作について、図面を参照しながら説明する。図４は、第１実施形態に係る画像形成装置１００の動作を示すフロー図である。図４に示すフローは、ＣＰＵ４４０がＨＤＤ４２０に記憶されたプログラムをメモリ４３０に展開することによって実行される。
【００７６】
図４に示すように、ステップ１００において、制御ユニット４００は、ビデオバス５０１を介して第１描画データを受信する。
【００７７】
ステップ２００において、制御ユニット４００は、第１描画データを第２描画データに圧縮する。なお、圧縮処理の詳細については後述する（図５及び図６を参照）。
【００７８】
ステップ３００において、制御ユニット４００は、第２描画データをメモリ４３０に格納する。
【００７９】
ステップ４００において、制御ユニット４００は、メモリ４３０から読み出された第２描画データを伸長する。なお、伸長処理の詳細については後述する（図７及び図８を参照）。
【００８０】
ステップ５００において、制御ユニット４００は、ステップ４００で伸長された値をラスタライズして、画像を構成する画素の配列を取得する。
【００８１】
ステップ６００において、制御ユニット４００は、画像形成部５０に画像の形成を指示する。
【００８２】
以下において、上述した圧縮処理の詳細について、図５及び図６を参照しながら説明する。
【００８３】
図５に示すように、ステップ２１０ａにおいて、制御ユニット４００は、Ｘ−Ｙ座標において、Ｆ（Ｘ，Ｙ）やＧ（Ｘ，Ｙ）のＹ座標をセットする。なお、制御ユニット４００は、ステップ２１０ａ〜ステップ２１０ｂのループ処理が一巡すると、Ｘ−Ｙ座標において、Ｙ座標を１注目集合画素分シフトする。なお、ステップ２１０ａ〜ステップ２１０ｂのループ処理は、垂直方向における全画素について圧縮処理が終了するまで繰り返される。
【００８４】
併せて、ステップ２１０ａにおいて、制御ユニット４００は、ｘ−ｙ座標において、ｆ（ｘ，ｙ）やｇ（ｘ，ｙ）のｙ座標をセットすることに留意すべきである。なお、制御ユニット４００は、ステップ２１０ａ〜ステップ２１０ｂのループ処理が一巡すると、ｘ−ｙ座標において、ｙ座標を１画素分シフトする。
【００８５】
ステップ２２０ａにおいて、制御ユニット４００は、Ｘ−Ｙ座標において、Ｆ（Ｘ，Ｙ）やＧ（Ｘ，Ｙ）のＸ座標をセットする。なお、制御ユニット４００は、ステップ２２０ａ〜ステップ２２０ｂのループ処理が一巡すると、Ｘ−Ｙ座標において、Ｆ（Ｘ，Ｙ）やＧ（Ｘ，Ｙ）のＸ座標を１注目集合画素分シフトする。なお、ステップ２２０ａ〜ステップ２２０ｂのループ処理は、水平方向における全画素について圧縮処理が終了するまで繰り返される。
【００８６】
併せて、ステップ２２０ａにおいて、制御ユニット４００は、ｘ−ｙ座標において、ｆ（ｘ，ｙ）やｇ（ｘ，ｙ）のｘ座標をセットすることに留意すべきである。なお、制御ユニット４００は、ステップ２２０ａ〜ステップ２２０ｂのループ処理が一巡すると、ｘ−ｙ座標において、ｘ座標を２画素分シフトする。
【００８７】
ステップ２３０において、制御ユニット４００は、Ｆ（Ｘ，Ｙ）を構成するｆ（ｘ，ｙ）及びｆ（ｘ＋１，ｙ）の値の平均値ａ、すなわち、Ｆ（Ｘ，Ｙ）の値を算出する。
【００８８】
例えば、図６に示すように、制御ユニット４００は、Ｆ（０，０）を構成するｆ（０，０）及びｆ（１，０）の値の平均値ａ“１５０”を算出する。
【００８９】
ステップ２４１において、制御ユニット４００は、平均値ａが“６４”未満であるか否かを判定する。制御ユニット４００は、平均値ａが“６４”未満である場合には、ステップ２５１の処理に移る。制御ユニット４００は、平均値ａが“６４”以上である場合には、ステップ２４２の処理に移る。
【００９０】
ステップ２４２において、制御ユニット４００は、平均値ａが“６４”以上“１２８”未満であるか否かを判定する。制御ユニット４００は、平均値ａが“６４”以上“１２８”未満である場合には、ステップ２５３の処理に移る。制御ユニット４００は、平均値ａが“１２８”以上である場合には、ステップ２４３の処理に移る。
【００９１】
ステップ２４３において、制御ユニット４００は、平均値ａが“１２８”以上“１９６”未満であるか否かを判定する。制御ユニット４００は、平均値ａが“１２８”以上“１９６”未満である場合には、ステップ２５５の処理に移る。制御ユニット４００は、平均値ａが“１９６”以上である場合には、ステップ２５７の処理に移る。
【００９２】
ステップ２５１において、制御ユニット４００は、ｇ（ｘ，ｙ）に“０”をセットし、ｇ（ｘ＋１，ｙ）に“０”をセットする。すなわち、制御ユニット４００は、第２描画データに係るＧ（Ｘ，Ｙ）の値をビット列“００”で表現する。
【００９３】
ステップ２５２において、制御ユニット４００は、平均値ａと第１伸長値“０”との差分をｅ（Ｘ，Ｙ）にセットする。
【００９４】
ステップ２５３において、制御ユニット４００は、ｇ（ｘ，ｙ）に“１”をセットし、ｇ（ｘ＋１，ｙ）に“０”をセットする。すなわち、制御ユニット４００は、第２描画データに係るＧ（Ｘ，Ｙ）の値をビット列“１０”で表現する。
【００９５】
ステップ２５４において、制御ユニット４００は、平均値ａと第２伸長値“９６”との差分をｅ（Ｘ，Ｙ）にセットする。
【００９６】
ステップ２５５において、制御ユニット４００は、ｇ（ｘ，ｙ）に“０”をセットし、ｇ（ｘ＋１，ｙ）に“１”をセットする。すなわち、制御ユニット４００は、第２描画データに係るＧ（Ｘ，Ｙ）の値をビット列“０１”で表現する。
【００９７】
ステップ２５６において、制御ユニット４００は、平均値ａと第３伸長値“１６０”との差分をｅ（Ｘ，Ｙ）にセットする。
【００９８】
ステップ２５７において、制御ユニット４００は、ｇ（ｘ，ｙ）に“１”をセットし、ｇ（ｘ＋１，ｙ）に“１”をセットする。すなわち、制御ユニット４００は、第２描画データに係るＧ（Ｘ，Ｙ）の値をビット列“１１”で表現する。
【００９９】
ステップ２５８において、制御ユニット４００は、平均値ａと第４伸長値“２５５”との差分をｅ（Ｘ，Ｙ）にセットする。
【０１００】
例えば、図６に示すように、制御ユニット４００は、平均値ａ“１５０”が“１２８”以上“１９６”未満であるため、Ｇ（０，０）の値をビット列“０１”で表現する。また、制御ユニット４００は、平均値ａ“１５０”と第３伸長値“１６０”との差分“−１０”をｅ（０，０）にセットする。
【０１０１】
ステップ２６０において、制御ユニット４００は、Ｆ（Ｘ，Ｙ）の周辺に設けられたＦ（Ｘ＋１，Ｙ）、Ｆ（Ｘ−１，Ｙ＋１）、Ｆ（Ｘ，Ｙ＋１）、Ｆ（Ｘ＋１，Ｙ＋１）にｅ（Ｘ，Ｙ）を分配する。なお、Ｆ（Ｘ＋１，Ｙ）は、ｆ（ｘ＋２，ｙ）及びｆ（ｘ＋３，ｙ）によって構成される注目集合画素である。Ｆ（Ｘ−１，Ｙ＋１）は、ｆ（ｘ−２，ｙ＋１）及びｆ（ｘ−１，ｙ＋１）によって構成される注目集合画素である。Ｆ（Ｘ，Ｙ＋１）は、ｆ（ｘ，ｙ＋１）及びｆ（ｘ＋１，ｙ＋１）によって構成される注目集合画素である。Ｆ（Ｘ＋１，Ｙ＋１）は、ｆ（ｘ＋２，ｙ＋１）及びｆ（ｘ＋３，ｙ＋１）によって構成される注目集合画素である。
【０１０２】
上述したように、ｅ（Ｘ，Ｙ）の分配は、以下のように行われる。
（１）  （Ｘ＋１，Ｙ）、すなわち、ｆ（ｘ＋２，ｙ）及びｆ（ｘ＋３，ｙ）について
ｆ（ｘ＋２，ｙ）＝ｆ（ｘ＋２，ｙ）＋ｐ１×ｅ（Ｘ，Ｙ）
ｆ（ｘ＋３，ｙ）＝ｆ（ｘ＋３，ｙ）＋ｐ２×ｅ（Ｘ，Ｙ）
（２）  （Ｘ−１，Ｙ＋１）、すなわち、ｆ（ｘ−２，ｙ＋１）及びｆ（ｘ−１，ｙ＋１）について
ｆ（ｘ−２，ｙ＋１）＝ｆ（ｘ−２，ｙ＋１）＋ｑ１×ｅ（Ｘ，Ｙ）
ｆ（ｘ−１，ｙ＋１）＝ｆ（ｘ−１，ｙ＋１）＋ｑ２×ｅ（Ｘ，Ｙ）
（３）  （Ｘ，Ｙ＋１）、すなわち、ｆ（ｘ，ｙ＋１）及びｆ（ｘ＋１，ｙ＋１）について
ｆ（ｘ，ｙ＋１）＝ｆ（ｘ，ｙ＋１）＋ｒ１×ｅ（Ｘ，Ｙ）
ｆ（ｘ＋１，ｙ＋１）＝ｆ（ｘ＋１，ｙ＋１）＋ｒ２×ｅ（Ｘ，Ｙ）
（４）  （Ｘ＋１，Ｙ＋１）、すなわち、ｆ（ｘ＋２，ｙ＋１）及びｆ（ｘ＋３，ｙ＋１）について
ｆ（ｘ＋２，ｙ＋１）＝ｆ（ｘ＋２，ｙ＋１）＋ｓ１×ｅ（Ｘ，Ｙ）
ｆ（ｘ＋３，ｙ＋１）＝ｆ（ｘ＋３，ｙ＋１）＋ｓ２×ｅ（Ｘ，Ｙ）
【０１０３】
例えば、図６に示すように、制御ユニット４００は、周辺画素の値を以下のように修正する。なお、画素の値は負の値を取らないため、画素の値の最小値は“０”である。
ｆ（２，０）＝１００＋７／１６×−１０≒９６
ｆ（３，０）＝０＋７／１６×−１０≒０
ｆ（０，１）＝１００＋５／１６×−１０≒９７
ｆ（１，１）＝５０＋５／１６×−１０≒４７
ｆ（２，１）＝２００＋１／１６×−１０≒２００
ｆ（３，１）＝２００＋１／１６×−１０≒２００
【０１０４】
このように、制御ユニット４００は、ステップ２１０ａ〜ステップ２１０ｂのループ処理を繰り返すことによって、全画素について第１描画データを第２描画データに圧縮する。
【０１０５】
ステップ２７０において、制御ユニット４００は、４つのＧ（Ｘ，Ｙ）に対応するビット列を１０進数で表現される値に変換する。
【０１０６】
例えば、図６に示すように、制御ユニット４００は、ビット列“０１００１０１１”を１０進数で表現される値“７５”に変換する。
【０１０７】
以下において、上述した伸長処理の詳細について、図７及び図８を参照しながら説明する。
【０１０８】
図７に示すように、ステップ４１０ａにおいて、制御ユニット４００は、Ｘ−Ｙ座標において、Ｇ（Ｘ，Ｙ）やＨ（Ｘ，Ｙ）のＹ座標をセットする。なお、制御ユニット４００は、ステップ４１０ａ〜ステップ４１０ｂのループ処理が一巡すると、Ｘ−Ｙ座標において、Ｙ座標を１注目集合画素分シフトする。なお、ステップ４１０ａ〜ステップ４１０ｂのループ処理は、垂直方向における全画素について伸長処理が終了するまで繰り返される。
【０１０９】
併せて、ステップ４１０ａにおいて、制御ユニット４００は、ｘ−ｙ座標において、ｇ（ｘ，ｙ）やｈ（ｘ，ｙ）のｙ座標をセットすることに留意すべきである。なお、制御ユニット４００は、ステップ４１０ａ〜ステップ４１０ｂのループ処理が一巡すると、ｘ−ｙ座標において、ｙ座標を１画素分シフトする。
【０１１０】
ステップ４２０ａにおいて、制御ユニット４００は、Ｘ−Ｙ座標において、Ｇ（Ｘ，Ｙ）やＨ（Ｘ，Ｙ）のＸ座標をセットする。なお、制御ユニット４００は、ステップ４２０ａ〜ステップ４２０ｂのループ処理が一巡すると、Ｘ−Ｙ座標において、Ｇ（Ｘ，Ｙ）やＨ（Ｘ，Ｙ）のＸ座標を４注目集合画素分シフトする。４注目集合画素分シフトする理由は、４注目集合画素に相当する第２描画データが１０進数で表現されており、１０進数で表現された第２描画データがメモリ４３０に格納されるためである。なお、ステップ４２０ａ〜ステップ４２０ｂのループ処理は、水平方向における全画素について伸長処理が終了するまで繰り返される。
【０１１１】
併せて、ステップ４２０ａにおいて、制御ユニット４００は、ｘ−ｙ座標において、ｇ（ｘ，ｙ）やｈ（ｘ，ｙ）のｘ座標をセットすることに留意すべきである。なお、制御ユニット４００は、ステップ４２０ａ〜ステップ４２０ｂのループ処理が一巡すると、ｘ−ｙ座標において、ｘ座標を８画素分シフトする。
【０１１２】
ステップ４３０において、制御ユニット４００は、メモリ４３０に格納された値、すなわち、１０進数で表現される値を２進数で表現されるビット列に変換する。
【０１１３】
例えば、図８に示すように、制御ユニット４００は、１０進数で表現される値“７５”をビット列“０１００１０１１”に変換する。
【０１１４】
ステップ４４０ａにおいて、制御ユニット４００は、ｘ−ｙ座標において、ｇ（ｘ，ｙ）やｈ（ｘ，ｙ）のｘ座標をセットすることに留意すべきである。なお、制御ユニット４００は、ステップ４４０ａ〜ステップ４４０ｂのループ処理が一巡すると、ｘ−ｙ座標において、ｘ座標を２画素分シフトする。ステップ４４０ａ〜ステップ４４０ｂのループ処理は、４注目集合画素に相当する回数、すなわち、４回繰り返される。
【０１１５】
ステップ４５１において、制御ユニット４００は、ｇ（ｘ，ｙ）＝０、かつ、ｇ（ｘ＋１，ｙ）＝０であるか否かを判定する。すなわち、制御ユニット４００は、Ｇ（Ｘ，Ｙ）に対応するビット列が“００”であるか否かを判定する。制御ユニット４００は、Ｇ（Ｘ，Ｙ）に対応するビット列が“００”である場合には、ステップ４６１の処理に移る。制御ユニット４００は、Ｇ（Ｘ，Ｙ）に対応するビット列が“００”でない場合には、ステップ４５２の処理に移る。
【０１１６】
ステップ４５２において、制御ユニット４００は、ｇ（ｘ，ｙ）＝１、かつ、ｇ（ｘ＋１，ｙ）＝０であるか否かを判定する。すなわち、制御ユニット４００は、Ｇ（Ｘ，Ｙ）に対応するビット列が“１０”であるか否かを判定する。制御ユニット４００は、Ｇ（Ｘ，Ｙ）に対応するビット列が“１０”である場合には、ステップ４６２の処理に移る。制御ユニット４００は、Ｇ（Ｘ，Ｙ）に対応するビット列が“１０”でない場合には、ステップ４５３の処理に移る。
【０１１７】
ステップ４５３において、制御ユニット４００は、ｇ（ｘ，ｙ）＝０、かつ、ｇ（ｘ＋１，ｙ）＝１であるか否かを判定する。すなわち、制御ユニット４００は、Ｇ（Ｘ，Ｙ）に対応するビット列が“０１”であるか否かを判定する。制御ユニット４００は、Ｇ（Ｘ，Ｙ）に対応するビット列が“０１”である場合には、ステップ４６３の処理に移る。制御ユニット４００は、Ｇ（Ｘ，Ｙ）に対応するビット列が“１１”である場合には、ステップ４６４の処理に移る。
【０１１８】
ステップ４６１において、制御ユニット４００は、ｈ（ｘ，ｙ）の値として“０”をセットし、ｈ（ｘ＋１，ｙ）の値として“０”をセットする。
【０１１９】
ステップ４６２において、制御ユニット４００は、ｈ（ｘ，ｙ）の値として“９６”をセットし、ｈ（ｘ＋１，ｙ）の値として“９６”をセットする。
【０１２０】
ステップ４６３において、制御ユニット４００は、ｈ（ｘ，ｙ）の値として“１６０”をセットし、ｈ（ｘ＋１，ｙ）の値として“１６０”をセットする。
【０１２１】
ステップ４６４において、制御ユニット４００は、ｈ（ｘ，ｙ）の値として“２５５”をセットし、ｈ（ｘ＋１，ｙ）の値として“２５５”をセットする。
【０１２２】
例えば、図８に示すように、制御ユニット４００は、Ｇ（０，０）に対応するビット列が“０１”である場合、すなわち、ｇ（０，０）＝０、かつ、ｇ（１，０）＝１である場合には、ｈ（０，０）及びｈ（１，０）の値として“１６０”をセットする。また、制御ユニット４００は、Ｇ（１，０）に対応するビット列が“００”である場合、すなわち、ｇ（２，０）＝０、かつ、ｇ（３，０）＝０である場合には、ｈ（２，０）及びｈ（３，０）の値として“０”をセットする。
【０１２３】
（比較結果）
以下において、原画像、従来技術の誤差拡散法後の画像、実施形態の誤差拡散法後の画像の比較結果について、図９を参照しながら説明する。図９（ａ）は、原画像及びその一部の拡大図である。図９（ｂ）は、従来技術の誤差拡散法後の画像及びその一部の拡大図である。図９（ｃ）は、実施形態の誤差拡散法後の画像及びその一部の拡大図である。
【０１２４】
図９（ａ）と図９（ｂ）との比較から、従来技術の誤差拡散法後の画像は、原画像に比べて低解像度化していることが分かる。
【０１２５】
図９（ｂ）と図９（ｃ）との比較から、実施形態の誤差拡散法後の画像では、従来技術の誤差拡散法後の画像に比べて、低解像度化が抑制されていることが分かる。すなわち、図９（ａ）と図９（ｃ）との比較から、実施形態の誤差拡散法後の画像は、従来技術の誤差拡散法後の画像に比べて、原画像に近いことが分かる。
【０１２６】
（作用及び効果）
制御ユニット４００は、複数の注目隣接画素によって１つの注目集合画素を構成して、第１描画データに係る注目集合画素の値を符号化する。すなわち、制御ユニット４００は、注目集合画素単位で、第１描画データを第２描画データに圧縮する。
【０１２７】
これによって、注目集合画素を構成する複数の注目隣接画素に割り当てられるビット数によって、第２描画データに係る注目集合画素の値を表現することができる。すなわち、第２描画データに係る注目集合画素の値を表現するビット数の増大によって、伸長後描画データに係る画素の階調数を増やすことができる。
【０１２８】
このように、誤差拡散法を用いるケースにおいて、圧縮率の低下を伴わずに、画素の階調数を増やすことができるため、用紙上に形成される画像の品質劣化を抑制することができる。なお、低解像度化を伴う必要がないことは勿論である。
【０１２９】
［その他の実施形態］
本発明は上述した実施形態によって説明したが、この開示の一部をなす論述及び図面は、この発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
【０１３０】
例えば、画像形成装置１００は、ＭＦＰではなくて、プリンタ機能のみを有する装置であってもよく、複写機能のみを有する装置であってもよい。
【０１３１】
上述した実施形態では、第２描画データに係る注目集合画素の値は、２ビットで表現されるが、実施形態はこれに限定されるものではない。第２描画データに係る注目集合画素の値は、４ビットで表現されてもよく、８ビットで表現されてもよい。このように、第２描画データに係る注目集合画素の値を表現するビット数を増やせば、伸長後描画データに係る画素の階調数が増える。
【０１３２】
例えば、第２描画データに係る注目集合画素の値が４ビットで表現される場合には、伸長後描画データにおいて１画素は１６階調であり、圧縮率は、４／１６＝１／４である。第２描画データに係る注目集合画素の値が８ビットで表現される場合には、伸長後描画データにおいて１画素は２５６階調であり、圧縮率は、８／１６＝１／２である。
【０１３３】
上述した実施形態では、注目集合画素は、水平方向に隣接する２つの画素によって構成されるが、実施形態はこれに限定されるものではない。注目集合画素は、垂直方向に隣接する２つの画素によって構成されてもよい。
【０１３４】
上述した実施形態では、注目集合画素を構成する画素数は、“２”であるが、実施形態はこれに限定されるものではない。注目集合画素を構成する画素数は、“４”であってもよく、“８”であってもよい。このように、注目集合画素を構成する画素数を増やせば、圧縮率が高まる。
【０１３５】
例えば、第２描画データに係る注目集合画素の値を表現するビット数が“２”であれば、注目集合画素を構成する画素数が“４”である場合には、圧縮率は２／３２＝１／１６である。同様に、注目集合画素を構成する画素数が“８”である場合には、圧縮率は２／６４＝１／３２である。
【０１３６】
注目集合画素を構成する画素数は、第１描画データを第２描画データに圧縮する圧縮率と、伸長後描画データに係る画素の階調数とによって定められてもよい。例えば、高い圧縮率や多くの階調が要求されるケースでは、注目集合画素を構成する画素数を増やせばよい。
【０１３７】
上述した実施形態では、第１描画データの圧縮処理は、画像形成装置１００で行われるが、実施形態はこれに限定されるものではない。第１描画データの圧縮処理は、プリンタコントローラ５００で行われてもよい。
【０１３８】
上述した実施形態では特に触れていないが、第１データの圧縮処理をコンピュータに実行させるプログラムが提供されてもよい。
【０１３９】
上述した実施形態では、ＰＤＬから中間言語への変換処理は、プリンタコントローラ５００で行われるが、実施形態はこれに限定されるものではない。ＰＤＬから中間言語への変換処理は、ユーザ端末６００で行われてもよい。
【図面の簡単な説明】
【０１４０】
【図１】第１実施形態に係る画像形成装置１００の概略を示す図である。
【図２】第１実施形態に係る制御ユニット４００の構成を示す図である。
【図３】第１実施形態に係るＣＰＵ４４０の構成を示す図である。
【図４】第１実施形態に係る画像形成装置１００の動作を示すフロー図である。
【図５】第１実施形態に係る画像形成装置１００の動作を示すフロー図である。
【図６】第１実施形態に係る圧縮処理を説明するための図である。
【図７】第１実施形態に係る画像形成装置１００の動作を示すフロー図である。
【図８】第１実施形態に係る伸長処理を説明するための図である。
【図９】従来技術と実施形態との比較結果を示す図である。
【符号の説明】
【０１４１】
１０・・・自動原稿送りユニット、２０・・・画像読取ユニット、３０・・・用紙トレイユニット、４０・・・給紙ユニット、５０・・・画像形成部、６０・・・定着ユニット、７０・・・排紙ユニット、８０・・・反転ユニット、９０・・・操作ユニット、１００・・・画像形成装置、２００・・・給紙装置、３００・・・後処理装置、４００・・・制御ユニット、４１０・・・通信Ｉ／Ｆ、４２０・・・ＨＤＤ、４３０・・・メモリ、４４０・・・ＣＰＵ、４４１・・・算出部、４４２・・・圧縮部、４４３・・・分配部、４４４・・・シフト部、４４５・・・伸長部、４４６・・・ラスタライズ部、４４７・・・指示部
【図１】
2010045488.tif 000003
【図２】
2010045488.tif 000004
【図３】
2010045488.tif 000005
【図４】
2010045488.tif 000006
【図５】
2010045488.tif 000007
【図６】
2010045488.tif 000008
【図７】
2010045488.tif 000009
【図８】
2010045488.tif 000010
【図９】
2010045488.tif 000011