説明

画像形成装置及びデータ圧縮方法

【課題】
画像を構成する画素数を変更せずに、用紙上に形成される画像の品質劣化を抑制することを可能とする画像形成装置及びデータ圧縮方法を提供する。
【解決手段】
画像形成装置100に設けられた制御ユニット400は、複数の隣接画素によって1つの注目集合画素を構成して、第1描画データに係る複数の隣接画素の値に基づいて、第1描画データに係る注目集合画素の値を算出する算出部441と、第1描画データに係る注目集合画素の値を符号化する圧縮部442と、第1描画データに係る注目集合画素の値と、第2描画データに係る注目集合画素の伸長値との差分である誤差を注目集合画素の周囲に設けられた周辺画素に分配する分配部443と、第1描画データの圧縮を終了するまで、注目集合画素のシフトを繰り返すシフト部444とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、用紙上に画像を形成する画像形成装置、及び、第1描画データを第2描画データに圧縮するデータ圧縮方法に関する。
【背景技術】
【0002】
従来、画像データに基づいて、用紙上に画像を形成する複写機やプリンタ等の画像形成装置が知られている。画像形成装置が複写機である場合には、画像形成装置は、原稿から画像を読み取ることによって描画データとしての画像データを取得する。一方で、画像形成装置がプリンタである場合には、画像形成装置は、パーソナルコンピュータなどの外部装置から描画データとしての、或いは、描画データを生成する元データとしての画像データを取得する。
【0003】
元データをパーソナルコンピュータなどの外部装置から取得する場合には、外部装置は、ページ記述言語(PDL:Page Description Language)で記述された印刷ジョブを出力する。印刷ジョブは、ページ記述言語で記述された画像データを含む。ページ記述言語で記述された画像データは、例えば、プリンタとは別体構成とされた、或いは、プリンタに組み込まれたプリンタコントローラによって、ビットマップデータなどの中間言語で記述された第1描画データに変換される。第1描画データでは、第1ビット数、例えば、8ビットで1画素が表される。すなわち、第1描画データでは、1画素は、256階調を有する。
【0004】
一方で、画像形成装置は、メモリ領域のサイズやレーザの駆動制御能力の制約から、第1描画データを低階調化して、第2描画データを取得する。第2描画データでは、第1ビット数よりも少ない第2ビット数、例えば、1ビットで1画素が表現される。すなわち、第2描画データでは、典型的には、1画素は、2階調を有する。
【0005】
なお、第2描画データにおいて、第2ビット数は、1ビットに限定されるものではなく、メモリ領域のサイズやレーザの駆動制御能力が許容するのであれば、2ビットであってもよい。このようなケースでは、2ビットで1画素が表現され、1画素は、4階調を有する。
【0006】
このように、第1描画データの低階調化に伴って、階調の再現性が劣化する。これに対して、階調の再現性の劣化を抑制するために、出力画像を構成する複数の画素によって、入力画像を構成する1画素を表現する技術が提案されている(例えば、特許文献1)。但し、この技術は、入力画像の画素数が出力画像の画素数よりも少ないケース、即ち、入力画像に比べて出力画像が低解像度とされるケースにのみ適用可能である。
【特許文献1】特開平8−234705号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述したように、特許文献1の技術では、入力画像の画素数が出力画像の画素数よりも少ないことを前提としている。詳細には、出力画像の画素数は、入力画像の画素数の整数倍でなければならない。
【0008】
また、上述の特許文献1とは異なる背景技術として、誤差拡散法を採用して低解像度化することが知られている。誤差拡散法では、規則的パターンの重畳によって生じる縞干渉、いわゆる「モワレ」の発生を低減することが可能である。しかしながら、濃度の変化が小さい領域では、誤差拡散法を用いても目障りな縞模様が生じる可能性がある。
【0009】
そこで、本発明は、上述した課題を解決するためになされたものであり、低解像度化を伴うことなく、用紙上に形成する画像の品質劣化を抑制することを可能とする画像形成装置及びデータ圧縮方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
第1の特徴に係る画像形成装置は、用紙上に画像を形成する。画像形成装置は、第1描画データを第2描画データに圧縮し、前記第2描画データを伸長後描画データに伸長する制御部(制御ユニット400)と、前記制御部の指示に応じて、前記伸長後描画データに基づいて画像を用紙上に形成する画像形成部(画像形成部50)とを備える。前記制御部は、複数の隣接画素によって1つの注目集合画素を構成して、前記第1描画データに係る前記複数の隣接画素の値に基づいて、前記第1描画データに係る前記注目集合画素の値を算出する算出部(算出部441)と、前記第1描画データに係る前記注目集合画素の値と判定閾値とを比較して、前記第1描画データに係る前記注目集合画素の値を符号化する圧縮部(圧縮部442)と、前記第1描画データに係る前記注目集合画素の値と、前記第2描画データに係る前記注目集合画素の伸長値との差分である誤差を前記注目集合画素の周囲に設けられた周辺画素に分配して、前記第1描画データに係る前記周辺画素の値を前記誤差によって修正する分配部(分配部443)と、前記第1描画データの圧縮を終了するまで、前記複数の注目すべき画素のシフトにより、前記注目集合画素のシフトを繰り返すシフト部(シフト部444)とを有する。前記算出部、前記圧縮部及び前記分配部は、前記複数の注目すべき画素のシフト毎に処理を繰り返す。
【0011】
かかる特徴によれば、制御部は、複数の隣接画素によって1つの注目集合画素を構成して、第1描画データに係る注目集合画素の値を符号化する。すなわち、制御部は、注目集合画素単位で、第1描画データを第2描画データに圧縮する。
【0012】
これによって、注目集合画素を構成する複数の隣接画素に割り当てられるビット数によって、第2描画データに係る注目集合画素の値を表現することができる。すなわち、第2描画データに係る注目集合画素の値を表現するビット数の増大によって、伸長後描画データに係る画素の階調数を増やすことができる。
【0013】
このように、誤差拡散法を用いるケースにおいて、圧縮率の低下を伴わずに、画素の階調数を増やすことができるため、用紙上に形成される画像の品質劣化を抑制することができる。なお、低解像度化を伴う必要がないことは勿論である。
【0014】
第1の特徴において、前記算出部は、前記第1描画データに係る前記複数の隣接画素の値の平均値を、前記第1描画データに係る前記注目集合画素の値として算出する。
【0015】
第1の特徴において、前記注目集合画素を構成する前記複数の隣接画素の数は、前記第1描画データを前記第2描画データに圧縮する圧縮率と、前記伸長後描画データに係る1画素の階調数とによって定められる。
【0016】
第2の特徴に係るデータ圧縮方法は、第1描画データを第2描画データに圧縮する。データ圧縮方法は、複数の隣接画素によって1つの注目集合画素を構成して、前記第1描画データに係る前記複数の隣接画素の値に基づいて、前記第1描画データに係る前記注目集合画素の値を算出するステップAと、前記第1描画データに係る前記注目集合画素の値と判定閾値とを比較して、前記注目集合画素の値を符号化するステップBと、前記第1描画データに係る前記注目集合画素の値と前記第2描画データに係る前記注目集合画素の伸長値との差分である誤差を前記注目集合画素の周囲に設けられた周辺画素に分配して、前記第1描画データに係る前記周辺画素の値を前記誤差によって修正するステップCと、前記第1描画データの圧縮を終了するまで、前記複数の注目すべき画素のシフトにより、前記注目集合画素のシフトを繰り返すステップDとを有する。前記ステップA、前記ステップB及び前記ステップCは、前記複数の注目すべき画素のシフト毎に繰り返される。
【発明の効果】
【0017】
本発明によれば、低解像度化を伴うことなく、用紙上に形成する画像の品質劣化を抑制することを可能とする画像形成装置及びデータ圧縮方法を提供することができる。
【発明を実施するための最良の形態】
【0018】
以下において、本発明の実施形態に係る画像形成装置について、図面を参照しながら説明する。なお、以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。
【0019】
ただし、図面は模式的なものであり、各寸法の比率などは現実のものとは異なることに留意すべきである。従って、具体的な寸法などは以下の説明を参酌して判断すべきである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【0020】
[第1実施形態]
(画像形成装置の概略)
以下において、第1実施形態に係る画像形成装置の概略について、図面を参照しながら説明する。図1は、第1実施形態に係る画像形成装置100の概略を示す図である。なお、図1では、画像形成装置100の詳細な構成については省略されていることに留意すべきである。
【0021】
図1に示すように、画像形成装置100は、自動原稿送りユニット10と、画像読取ユニット20と、用紙トレイユニット30と、給紙ユニット40と、画像形成部50と、定着ユニット60と、排紙ユニット70と、反転ユニット80と、操作ユニット90とを有する。画像形成装置100は、給紙装置200及び後処理装置300をさらに有する。
【0022】
画像形成装置100は、プリンタコントローラ500を介してユーザ端末600に接続されている。画像形成装置100は、例えば、プリンタコントローラ500とビデオバス501によって接続される。プリンタコントローラ500は、例えば、ユーザ端末600とLAN(Local Area Network)601によって接続される。
【0023】
第1実施形態では、画像形成装置100として、電子写真方式によって用紙上に画像を形成するMFP(Multiple Function Peripheral)を例示する。但し、画像形成方法は、電子写真方式に限定されるものではなく、インクジェット方式、熱転写方式、ドットインパクト方式などであってもよい。
【0024】
自動原稿送りユニット10は、複写すべき原稿を搬送するユニットである。画像読取ユニット20は、原稿の画像を読み取って、画像データを生成するユニットである。
【0025】
用紙トレイユニット30は、用紙を収容するユニットである。給紙ユニット40は、画像形成部50に用紙を給紙するユニットである。
【0026】
画像形成部50は、画像読取ユニット20によって生成された画像データに応じて、給紙ユニット40によって給紙された用紙上にトナー像を形成する。具体的には、画像形成部50は、イエローに対応するトナー像を形成するイエロー用ユニット50Yと、マゼンタに対応するトナー像を形成するマゼンタ用ユニット50Mと、シアンに対応するトナー像を形成するシアン用ユニット50Cと、ブラックに対応するトナー像を形成するブラック用ユニット50Kと、中間転写ベルト51と、転写ローラ52とを有する。イエロー用ユニット50Y、マゼンタ用ユニット50M、シアン用ユニット50C及びブラック用ユニット50Kは、それぞれ、感光体ドラムや書込み処理部などを有する。
【0027】
各感光体ドラムは、光導電性感光層が表面に形成されたドラムであり、回転可能に設けられている。各感光体ドラムの表面には、各色に対応する静電荷潜像が形成される。
【0028】
各書込み処理部は、後述する制御ユニット400から取得する画像データ、すなわち、後述する第2描画データに応じて、各色に対応する静電荷潜像を感光体ドラムの表面に形成する。具体的には、書込み処理部は、画像データに基づいてレーザ光を出射するレーザダイオードと、レーザ光を偏向走査する走査光学ユニットを有している。
【0029】
中間転写ベルト51は、イエロー用ユニット50Y、マゼンタ用ユニット50M、シアン用ユニット50C、ブラック用ユニット50K、転写ローラ52を通るように、複数のローラに巻き回されている。中間転写ベルト51上には、各色のトナー像が重ね合わされる。
【0030】
転写ローラ52は、中間転写ベルト51上に形成されたトナー像を用紙上に転写する具体的には、転写ローラ52は、トナーと反対の極性を有するように帯電している。
【0031】
定着ユニット60は、用紙上に形成されたトナー像を熱圧着によって用紙に定着するユニットである。排紙ユニット70は、トナー像が定着された用紙を排紙するユニットである。反転ユニット80は、片面についてトナー像の形成が終了してない用紙の表裏を反転させるユニットである。
【0032】
操作ユニット90は、画像形成装置100の操作を行うためのユーザインタフェースである。操作ユニット90は、液晶パネル上にタッチパネルが重畳されたタッチスクリーン、ボタン及びスイッチによって構成される。
【0033】
給紙装置200は、用紙トレイユニット30よりも多量の用紙を収容する装置である。多量の用紙を出力するケースにおいて、給紙装置200は、用紙トレイユニット30の代わりに用いられる。
【0034】
後処理装置300は、画像が形成された用紙の後処理を行う。具体的には、後処理装置300は、ソート処理、パンチ(穴空け)処理、ステープル処理、中折り処理、裁断処理などを行う。
【0035】
プリンタコントローラ500は、LAN(Local Area Network)601を介してユーザ端末600から印刷ジョブを受信する。プリンタコントローラ500は、印刷ジョブを解析して画像データを生成し、この画像データをビデオバス501を介して画像形成装置100に送信する。
【0036】
ここで、印刷ジョブは、ユーザ端末600によって指定された画像の印刷を指示するデータであり、例えば、PostScript(アドビ社の登録商標)やPCLなどのページ記述言語(PDL:Page Description Language)で記述されている。
【0037】
具体的には、プリンタコントローラ500は、ページ記述言語で記述された画像データを中間言語で記述されるデータに変換し、この中間言語のデータから1画素当り所定の第1ビット数を有する第1描画データに変換する。プリンタコントローラ500は、ビデオバス501を介して第1描画データを画像データとして画像形成装置100に送信する。第1描画データにおける所定の第1ビット数は、本例では、8ビットである。
【0038】
ユーザ端末600は、パーソナルコンピュータなどの端末である。ユーザ端末600は、LAN(Local Area Network)601を介して印刷ジョブをプリンタコントローラ500に送信する。
【0039】
(画像形成装置の機能)
以下において、第1実施形態に係る画像形成装置の機能について、図面を参照しながら説明する。図2は、第1実施形態に係る画像形成装置100を示すブロック図である。
【0040】
図2に示すように、画像形成装置100は、画像形成装置100を統括的に制御する制御ユニット400を有する。制御ユニット400は、通信I/F410と、HDD420と、メモリ430と、CPU440とを有する。
【0041】
通信I/F410は、ビデオバス501に接続されており、前述の第1描画データを画像データとしてプリンタコントローラ500から取得する。
【0042】
HDD420は、制御プログラムや画像形成装置100の機能に関する情報などを記憶する。
【0043】
メモリ430は、DRAMなどの半導体メモリによって構成される。メモリ430上には、HDD420に記憶された制御プログラムが展開される。また、メモリ430は、画像読取ユニット20によって取得された画像データや通信I/F410によって取得された画像データを一時的に記憶する。ここで、メモリ430は、画像データとして後述の第2描画データを記憶する。
【0044】
CPU440は、メモリ430上に展開された制御プログラムに従って、画像形成装置100の各構成を制御する。以下においては、第1実施形態に関連するCPU440の動作について主として説明する。従って、CPU440の動作の一部は省略されていることに留意すべきである。
【0045】
具体的には、CPU440は、第1描画データを第2描画データに圧縮する。また、CPU440は、第2描画データを伸長して伸長後描画データを生成する。CPU440は、図3に示すように、算出部441と、圧縮部442と、分配部443と、シフト部444と、伸長部445と、ラスタライズ部446と、指示部447とを有する。
【0046】
第1実施形態では、第1描画データを第2描画データに圧縮する際に、複数の注目すべき隣接画素によって1つの集合画素(注目集合画素)が構成される。第2描画データでは、注目集合画素を構成する複数の隣接画素の値が1つの注目集合画素の値を構成する。伸長後描画データでは、注目集合画素を構成する複数の隣接画素が同じ値を有する。
【0047】
第1実施形態では、以下に示す内容を前提として説明することに留意すべきである。但し、実施形態は、このような前提に限定されないことは勿論である。
【0048】
(1) 画素の座標表現
第1描画データに係る画素の座標をf(x,y)で表し、第2描画データに係る画素の座標をg(x,y)で表し、伸長後描画データに係る画素の座標をh(x,y)で表す。f(x,y)及びf(x+1,y)によって構成される注目集合画素をF(X,Y)で表す。g(x,y)及びg(x+1,y)によって構成される注目集合画素をG(X,Y)で表す。h(x,y)及びh(x+1,y)によって構成される注目集合画素をH(X,Y)で表す。このように、第1実施形態では、注目集合画素は、水平方向に隣接する2つの画素によって構成される。
【0049】
なお、“x”,“X”は、水平方向の座標を表しており、“y”,“Y”は、垂直方向の座標を表している。また、f(x,y)、g(x,y)及びh(x,y)は、1対1の関係を有する。また、X−Y座標におけるX座標において、1注目集合画素は、x−y座標におけるx座標の2画素に相当する。X−Y座標におけるY座標において、1注目集合画素は、x−y座標におけるy座標の1画素に相当する。
【0050】
(2) 画素を表現するビット
第1描画データでは、1画素が8ビットで表現される。すなわち、第1描画データでは、1画素は256階調を有する。第2描画データでは、1注目集合画素が2ビットで表現される。伸長後描画データでは、注目集合画素を構成する複数の隣接画素が同じ値を有するため、1画素は4階調を有する。
【0051】
(3) 圧縮率
注目集合画素が2つの隣接画素によって構成されるため、第1描画データでは、注目集合画素は、8ビット×2画素=16ビットで表現される。第2描画データでは、注目集合画素は、2ビットで表現される。従って、第1描画データを第2描画データに圧縮する圧縮率は、2/16=1/8である。
【0052】
図3に戻って、算出部441は、複数の注目すべき隣接画素(注目隣接画素)によって1つの注目集合画素を構成する。続いて、算出部441は、第1描画データに係る注目隣接画素の値に基づいて、注目集合画素の値を算出する。第1実施形態では、注目集合画素の値は、第1描画データに係る注目隣接画素の値の平均値である。
【0053】
圧縮部442は、第1描画データに係る注目集合画素の値と判定閾値とを比較して、第1描画データに係る注目集合画素の値を符号化する。第1実施形態に係る伸長後描画データでは、1画素が4階調を有するため、判定閾値は、第1判定閾値、第2判定閾値及び第3判定閾値の3種類である。例えば、第1判定閾値は“64”であり、第2判定閾値は“128”であり、第3判定閾値は“196”である。
【0054】
圧縮部442は、第1描画データに係る注目集合画素の値が第1判定閾値未満である場合には、第2描画データに係る注目集合画素の値をビット列“00”で表現する。圧縮部442は、第1描画データに係る注目集合画素の値が第1判定閾値以上、第2判定閾値未満である場合には、第2描画データに係る注目集合画素の値をビット列“10”で表現する。圧縮部442は、第1描画データに係る注目集合画素の値が第2判定閾値以上、第3判定閾値未満である場合には、第2描画データに係る注目集合画素の値をビット列“01”で表現する。圧縮部442は、第1描画データに係る注目集合画素の値が第3判定閾値以上である場合には、第2描画データに係る注目集合画素の値をビット列“11”で表現する。
【0055】
圧縮部442は、第1描画データに係る注目集合画素の値の符号化が完了した旨を分配部443に通知する。
【0056】
分配部443は、第1描画データに係る注目集合画素の値と第2描画データに係る注目集合画素の伸長値との差分である誤差を注目集合画素の周辺に設けられた周辺画素に分配して、第1描画データに係る周辺画素の値を誤差によって修正する。
【0057】
なお、伸長値は、第2描画データに係る注目集合画素の値に対応付けられた値である。具体的には、第2描画データに係る注目集合画素の値の伸長によって得られる値である。第1実施形態に係る伸長後描画データでは、1画素が4階調を有するため、伸長値は、第1伸長値、第2伸長値、第3伸長値及び第4伸長値の4種類である。例えば、ビット列“00”に対応する第1伸長値は“0”であり、ビット列“10”に対応する第2伸長値は“96”であり、ビット列“01”に対応する第3伸長値は“196”であり、ビット列“11”に対応する第4伸長値は“255”である。
【0058】
第1実施形態では、F(X,Y)の値とG(X,Y)の伸長値との差分である誤差をe(X,Y)で表す。ここでは、F(X+1,Y)、F(X−1,Y+1)、F(X,Y+1)、F(X+1,Y+1)にe(X,Y)を分配するケースについて説明する。なお、F(X+1,Y)は、f(x+2,y)及びf(x+3,y)によって構成される注目集合画素である。F(X−1,Y+1)は、f(x−2,y+1)及びf(x−1,y+1)によって構成される注目集合画素である。F(X,Y+1)は、f(x,y+1)及びf(x+1,y+1)によって構成される注目集合画素である。F(X+1,Y+1)は、f(x+2,y+1)及びf(x+3,y+1)によって構成される注目集合画素である。
【0059】
(1) (X+1,Y)、すなわち、f(x+2,y)及びf(x+3,y)について
f(x+2,y)=f(x+2,y)+p×e(X,Y)
f(x+3,y)=f(x+3,y)+p×e(X,Y)

なお、p及びpは、誤差分配に係る係数である。第1実施形態では、p=p=7/16である。なお、p及びpが異なる値であってもよい。
【0060】
(2) (X−1,Y+1)、すなわち、f(x−2,y+1)及びf(x−1,y+1)について
f(x−2,y+1)=f(x−2,y+1)+q×e(X,Y)
f(x−1,y+1)=f(x−1,y+1)+q×e(X,Y)
なお、q及びqは、誤差分配に係る係数である。第1実施形態では、q=q=3/16である。なお、q及びqが異なる値であってもよい。
【0061】
(3) (X,Y+1)、すなわち、f(x,y+1)及びf(x+1,y+1)について
f(x,y+1)=f(x,y+1)+r×e(X,Y)
f(x+1,y+1)=f(x+1,y+1)+r×e(X,Y)
なお、r及びrは、誤差分配に係る係数である。第1実施形態では、r=r=5/16である。なお、r及びrが異なる値であってもよい。
【0062】
(4) (X+1,Y+1)、すなわち、f(x+2,y+1)及びf(x+3,y+1)について
f(x+2,y+1)=f(x+2,y+1)+s×e(X,Y)
f(x+3,y+1)=f(x+3,y+1)+s×e(X,Y)
なお、s及びsは、誤差分配に係る係数である。第1実施形態では、s=s=1/16である。なお、s及びsが異なる値であってもよい。
【0063】
分配部443は、誤差によって修正された画素の値を算出部441に通知する。また、分配部443は、誤差の分配が完了した旨をシフト部444に通知する。
【0064】
シフト部444は、第1描画データの圧縮を終了するまで、注目隣接画素をシフトすることにより、注目集合画素のシフトを繰り返す。具体的には、シフト部444は、X−Y座標においてF(X,Y)を水平方向又は垂直方向に1注目集合画素分シフトさせる。すなわち、シフト部444は、x−y座標における水平方向においてf(x,y)を2画素分シフトする。また、シフト部444は、x−y座標における垂直方向においてf(x,y)を1画素分シフトする。
【0065】
算出部441、圧縮部442及び分配部443は、注目集合画素のシフト毎に処理を繰り返す。これによって、圧縮部442は、第1描画データを第2描画データに圧縮する。
【0066】
第1実施形態では、圧縮部442は、4つの注目集合画素の値に対応するビット列を10進数で表現される値に変換した上で、10進数で表現される値を第2描画データとして順にメモリ430に格納する。上述したように、伸長後描画データでは、注目集合画素を構成する2つの注目隣接画素が同じ値を有するため、10進数で表現される値は、8つの画素の値に相当することに留意すべきである。
【0067】
伸長部445は、第2描画データを伸長後描画データに伸長した上で、各画素の値を取得する。具体的には、伸長部445は、メモリ430に格納された値、すなわち、10進数で表現される値をメモリ430から読み出して、10進数で表現される値を2進数で表現されるビット列に変換する。
【0068】
続いて、伸長部445は、2進数で表現されるビット列を注目集合画素毎に伸長して、第2描画データに係る注目集合画素の伸長値を取得する。伸長部445は、伸長後描画データに係る注目集合画素を構成する各注目隣接画素の値として、第2描画データに係る注目集合画素の伸長値をセットする。
【0069】
例えば、伸長部445は、第2描画データに係る注目集合画素に対応するビット列“00”を伸長して、第2描画データに係る注目集合画素の伸長値として第1伸長値“0”を取得する。伸長部445は、伸長後描画データに係る注目集合画素を構成する各画素の値として“0”をセットする。
【0070】
伸長部445は、第2描画データに係る注目集合画素に対応するビット列“10”を伸長して、第2描画データに係る注目集合画素の伸長値として第2伸長値“96”を取得する。伸長部445は、伸長後描画データに係る注目集合画素を構成する各画素の値として“96”をセットする。
【0071】
伸長部445は、第2描画データに係る注目集合画素に対応するビット列“01”を伸長して、第2描画データに係る注目集合画素の伸長値として第3伸長値“160”を取得する。伸長部445は、伸長後描画データに係る注目集合画素を構成する各画素の値として“160”をセットする。
【0072】
伸長部445は、第2描画データに係る注目集合画素に対応するビット列“11”を伸長して、第2描画データに係る注目集合画素の伸長値として第4伸長値“255”を取得する。伸長部445は、伸長後描画データに係る注目集合画素を構成する各画素の値として“255”をセットする。
【0073】
ラスタライズ部446は、伸長後描画データに係る各画素の値をラスタライズする。具体的には、ラスタライズ部446は、伸長後描画データに係る各画素の値をx−y座標において並べて、画素の値の配列を取得する。
【0074】
指示部447は、画像形成部50に画像の形成を指示する。具体的には、指示部447は、ラスタライズ部446によって取得された画素の値の配列を画像形成部50に出力する。詳細には、指示部447は、画像形成部50に設けられた各書込み処理部に、各書込み処理部に対応する色の画素の値の配列を出力する。
【0075】
(画像形成装置の動作)
以下において、第1実施形態に係る画像形成装置の動作について、図面を参照しながら説明する。図4は、第1実施形態に係る画像形成装置100の動作を示すフロー図である。図4に示すフローは、CPU440がHDD420に記憶されたプログラムをメモリ430に展開することによって実行される。
【0076】
図4に示すように、ステップ100において、制御ユニット400は、ビデオバス501を介して第1描画データを受信する。
【0077】
ステップ200において、制御ユニット400は、第1描画データを第2描画データに圧縮する。なお、圧縮処理の詳細については後述する(図5及び図6を参照)。
【0078】
ステップ300において、制御ユニット400は、第2描画データをメモリ430に格納する。
【0079】
ステップ400において、制御ユニット400は、メモリ430から読み出された第2描画データを伸長する。なお、伸長処理の詳細については後述する(図7及び図8を参照)。
【0080】
ステップ500において、制御ユニット400は、ステップ400で伸長された値をラスタライズして、画像を構成する画素の配列を取得する。
【0081】
ステップ600において、制御ユニット400は、画像形成部50に画像の形成を指示する。
【0082】
以下において、上述した圧縮処理の詳細について、図5及び図6を参照しながら説明する。
【0083】
図5に示すように、ステップ210aにおいて、制御ユニット400は、X−Y座標において、F(X,Y)やG(X,Y)のY座標をセットする。なお、制御ユニット400は、ステップ210a〜ステップ210bのループ処理が一巡すると、X−Y座標において、Y座標を1注目集合画素分シフトする。なお、ステップ210a〜ステップ210bのループ処理は、垂直方向における全画素について圧縮処理が終了するまで繰り返される。
【0084】
併せて、ステップ210aにおいて、制御ユニット400は、x−y座標において、f(x,y)やg(x,y)のy座標をセットすることに留意すべきである。なお、制御ユニット400は、ステップ210a〜ステップ210bのループ処理が一巡すると、x−y座標において、y座標を1画素分シフトする。
【0085】
ステップ220aにおいて、制御ユニット400は、X−Y座標において、F(X,Y)やG(X,Y)のX座標をセットする。なお、制御ユニット400は、ステップ220a〜ステップ220bのループ処理が一巡すると、X−Y座標において、F(X,Y)やG(X,Y)のX座標を1注目集合画素分シフトする。なお、ステップ220a〜ステップ220bのループ処理は、水平方向における全画素について圧縮処理が終了するまで繰り返される。
【0086】
併せて、ステップ220aにおいて、制御ユニット400は、x−y座標において、f(x,y)やg(x,y)のx座標をセットすることに留意すべきである。なお、制御ユニット400は、ステップ220a〜ステップ220bのループ処理が一巡すると、x−y座標において、x座標を2画素分シフトする。
【0087】
ステップ230において、制御ユニット400は、F(X,Y)を構成するf(x,y)及びf(x+1,y)の値の平均値a、すなわち、F(X,Y)の値を算出する。
【0088】
例えば、図6に示すように、制御ユニット400は、F(0,0)を構成するf(0,0)及びf(1,0)の値の平均値a“150”を算出する。
【0089】
ステップ241において、制御ユニット400は、平均値aが“64”未満であるか否かを判定する。制御ユニット400は、平均値aが“64”未満である場合には、ステップ251の処理に移る。制御ユニット400は、平均値aが“64”以上である場合には、ステップ242の処理に移る。
【0090】
ステップ242において、制御ユニット400は、平均値aが“64”以上“128”未満であるか否かを判定する。制御ユニット400は、平均値aが“64”以上“128”未満である場合には、ステップ253の処理に移る。制御ユニット400は、平均値aが“128”以上である場合には、ステップ243の処理に移る。
【0091】
ステップ243において、制御ユニット400は、平均値aが“128”以上“196”未満であるか否かを判定する。制御ユニット400は、平均値aが“128”以上“196”未満である場合には、ステップ255の処理に移る。制御ユニット400は、平均値aが“196”以上である場合には、ステップ257の処理に移る。
【0092】
ステップ251において、制御ユニット400は、g(x,y)に“0”をセットし、g(x+1,y)に“0”をセットする。すなわち、制御ユニット400は、第2描画データに係るG(X,Y)の値をビット列“00”で表現する。
【0093】
ステップ252において、制御ユニット400は、平均値aと第1伸長値“0”との差分をe(X,Y)にセットする。
【0094】
ステップ253において、制御ユニット400は、g(x,y)に“1”をセットし、g(x+1,y)に“0”をセットする。すなわち、制御ユニット400は、第2描画データに係るG(X,Y)の値をビット列“10”で表現する。
【0095】
ステップ254において、制御ユニット400は、平均値aと第2伸長値“96”との差分をe(X,Y)にセットする。
【0096】
ステップ255において、制御ユニット400は、g(x,y)に“0”をセットし、g(x+1,y)に“1”をセットする。すなわち、制御ユニット400は、第2描画データに係るG(X,Y)の値をビット列“01”で表現する。
【0097】
ステップ256において、制御ユニット400は、平均値aと第3伸長値“160”との差分をe(X,Y)にセットする。
【0098】
ステップ257において、制御ユニット400は、g(x,y)に“1”をセットし、g(x+1,y)に“1”をセットする。すなわち、制御ユニット400は、第2描画データに係るG(X,Y)の値をビット列“11”で表現する。
【0099】
ステップ258において、制御ユニット400は、平均値aと第4伸長値“255”との差分をe(X,Y)にセットする。
【0100】
例えば、図6に示すように、制御ユニット400は、平均値a“150”が“128”以上“196”未満であるため、G(0,0)の値をビット列“01”で表現する。また、制御ユニット400は、平均値a“150”と第3伸長値“160”との差分“−10”をe(0,0)にセットする。
【0101】
ステップ260において、制御ユニット400は、F(X,Y)の周辺に設けられたF(X+1,Y)、F(X−1,Y+1)、F(X,Y+1)、F(X+1,Y+1)にe(X,Y)を分配する。なお、F(X+1,Y)は、f(x+2,y)及びf(x+3,y)によって構成される注目集合画素である。F(X−1,Y+1)は、f(x−2,y+1)及びf(x−1,y+1)によって構成される注目集合画素である。F(X,Y+1)は、f(x,y+1)及びf(x+1,y+1)によって構成される注目集合画素である。F(X+1,Y+1)は、f(x+2,y+1)及びf(x+3,y+1)によって構成される注目集合画素である。
【0102】
上述したように、e(X,Y)の分配は、以下のように行われる。
(1) (X+1,Y)、すなわち、f(x+2,y)及びf(x+3,y)について
f(x+2,y)=f(x+2,y)+p×e(X,Y)
f(x+3,y)=f(x+3,y)+p×e(X,Y)
(2) (X−1,Y+1)、すなわち、f(x−2,y+1)及びf(x−1,y+1)について
f(x−2,y+1)=f(x−2,y+1)+q×e(X,Y)
f(x−1,y+1)=f(x−1,y+1)+q×e(X,Y)
(3) (X,Y+1)、すなわち、f(x,y+1)及びf(x+1,y+1)について
f(x,y+1)=f(x,y+1)+r×e(X,Y)
f(x+1,y+1)=f(x+1,y+1)+r×e(X,Y)
(4) (X+1,Y+1)、すなわち、f(x+2,y+1)及びf(x+3,y+1)について
f(x+2,y+1)=f(x+2,y+1)+s×e(X,Y)
f(x+3,y+1)=f(x+3,y+1)+s×e(X,Y)
【0103】
例えば、図6に示すように、制御ユニット400は、周辺画素の値を以下のように修正する。なお、画素の値は負の値を取らないため、画素の値の最小値は“0”である。
f(2,0)=100+7/16×−10≒96
f(3,0)=0+7/16×−10≒0
f(0,1)=100+5/16×−10≒97
f(1,1)=50+5/16×−10≒47
f(2,1)=200+1/16×−10≒200
f(3,1)=200+1/16×−10≒200
【0104】
このように、制御ユニット400は、ステップ210a〜ステップ210bのループ処理を繰り返すことによって、全画素について第1描画データを第2描画データに圧縮する。
【0105】
ステップ270において、制御ユニット400は、4つのG(X,Y)に対応するビット列を10進数で表現される値に変換する。
【0106】
例えば、図6に示すように、制御ユニット400は、ビット列“01001011”を10進数で表現される値“75”に変換する。
【0107】
以下において、上述した伸長処理の詳細について、図7及び図8を参照しながら説明する。
【0108】
図7に示すように、ステップ410aにおいて、制御ユニット400は、X−Y座標において、G(X,Y)やH(X,Y)のY座標をセットする。なお、制御ユニット400は、ステップ410a〜ステップ410bのループ処理が一巡すると、X−Y座標において、Y座標を1注目集合画素分シフトする。なお、ステップ410a〜ステップ410bのループ処理は、垂直方向における全画素について伸長処理が終了するまで繰り返される。
【0109】
併せて、ステップ410aにおいて、制御ユニット400は、x−y座標において、g(x,y)やh(x,y)のy座標をセットすることに留意すべきである。なお、制御ユニット400は、ステップ410a〜ステップ410bのループ処理が一巡すると、x−y座標において、y座標を1画素分シフトする。
【0110】
ステップ420aにおいて、制御ユニット400は、X−Y座標において、G(X,Y)やH(X,Y)のX座標をセットする。なお、制御ユニット400は、ステップ420a〜ステップ420bのループ処理が一巡すると、X−Y座標において、G(X,Y)やH(X,Y)のX座標を4注目集合画素分シフトする。4注目集合画素分シフトする理由は、4注目集合画素に相当する第2描画データが10進数で表現されており、10進数で表現された第2描画データがメモリ430に格納されるためである。なお、ステップ420a〜ステップ420bのループ処理は、水平方向における全画素について伸長処理が終了するまで繰り返される。
【0111】
併せて、ステップ420aにおいて、制御ユニット400は、x−y座標において、g(x,y)やh(x,y)のx座標をセットすることに留意すべきである。なお、制御ユニット400は、ステップ420a〜ステップ420bのループ処理が一巡すると、x−y座標において、x座標を8画素分シフトする。
【0112】
ステップ430において、制御ユニット400は、メモリ430に格納された値、すなわち、10進数で表現される値を2進数で表現されるビット列に変換する。
【0113】
例えば、図8に示すように、制御ユニット400は、10進数で表現される値“75”をビット列“01001011”に変換する。
【0114】
ステップ440aにおいて、制御ユニット400は、x−y座標において、g(x,y)やh(x,y)のx座標をセットすることに留意すべきである。なお、制御ユニット400は、ステップ440a〜ステップ440bのループ処理が一巡すると、x−y座標において、x座標を2画素分シフトする。ステップ440a〜ステップ440bのループ処理は、4注目集合画素に相当する回数、すなわち、4回繰り返される。
【0115】
ステップ451において、制御ユニット400は、g(x,y)=0、かつ、g(x+1,y)=0であるか否かを判定する。すなわち、制御ユニット400は、G(X,Y)に対応するビット列が“00”であるか否かを判定する。制御ユニット400は、G(X,Y)に対応するビット列が“00”である場合には、ステップ461の処理に移る。制御ユニット400は、G(X,Y)に対応するビット列が“00”でない場合には、ステップ452の処理に移る。
【0116】
ステップ452において、制御ユニット400は、g(x,y)=1、かつ、g(x+1,y)=0であるか否かを判定する。すなわち、制御ユニット400は、G(X,Y)に対応するビット列が“10”であるか否かを判定する。制御ユニット400は、G(X,Y)に対応するビット列が“10”である場合には、ステップ462の処理に移る。制御ユニット400は、G(X,Y)に対応するビット列が“10”でない場合には、ステップ453の処理に移る。
【0117】
ステップ453において、制御ユニット400は、g(x,y)=0、かつ、g(x+1,y)=1であるか否かを判定する。すなわち、制御ユニット400は、G(X,Y)に対応するビット列が“01”であるか否かを判定する。制御ユニット400は、G(X,Y)に対応するビット列が“01”である場合には、ステップ463の処理に移る。制御ユニット400は、G(X,Y)に対応するビット列が“11”である場合には、ステップ464の処理に移る。
【0118】
ステップ461において、制御ユニット400は、h(x,y)の値として“0”をセットし、h(x+1,y)の値として“0”をセットする。
【0119】
ステップ462において、制御ユニット400は、h(x,y)の値として“96”をセットし、h(x+1,y)の値として“96”をセットする。
【0120】
ステップ463において、制御ユニット400は、h(x,y)の値として“160”をセットし、h(x+1,y)の値として“160”をセットする。
【0121】
ステップ464において、制御ユニット400は、h(x,y)の値として“255”をセットし、h(x+1,y)の値として“255”をセットする。
【0122】
例えば、図8に示すように、制御ユニット400は、G(0,0)に対応するビット列が“01”である場合、すなわち、g(0,0)=0、かつ、g(1,0)=1である場合には、h(0,0)及びh(1,0)の値として“160”をセットする。また、制御ユニット400は、G(1,0)に対応するビット列が“00”である場合、すなわち、g(2,0)=0、かつ、g(3,0)=0である場合には、h(2,0)及びh(3,0)の値として“0”をセットする。
【0123】
(比較結果)
以下において、原画像、従来技術の誤差拡散法後の画像、実施形態の誤差拡散法後の画像の比較結果について、図9を参照しながら説明する。図9(a)は、原画像及びその一部の拡大図である。図9(b)は、従来技術の誤差拡散法後の画像及びその一部の拡大図である。図9(c)は、実施形態の誤差拡散法後の画像及びその一部の拡大図である。
【0124】
図9(a)と図9(b)との比較から、従来技術の誤差拡散法後の画像は、原画像に比べて低解像度化していることが分かる。
【0125】
図9(b)と図9(c)との比較から、実施形態の誤差拡散法後の画像では、従来技術の誤差拡散法後の画像に比べて、低解像度化が抑制されていることが分かる。すなわち、図9(a)と図9(c)との比較から、実施形態の誤差拡散法後の画像は、従来技術の誤差拡散法後の画像に比べて、原画像に近いことが分かる。
【0126】
(作用及び効果)
制御ユニット400は、複数の注目隣接画素によって1つの注目集合画素を構成して、第1描画データに係る注目集合画素の値を符号化する。すなわち、制御ユニット400は、注目集合画素単位で、第1描画データを第2描画データに圧縮する。
【0127】
これによって、注目集合画素を構成する複数の注目隣接画素に割り当てられるビット数によって、第2描画データに係る注目集合画素の値を表現することができる。すなわち、第2描画データに係る注目集合画素の値を表現するビット数の増大によって、伸長後描画データに係る画素の階調数を増やすことができる。
【0128】
このように、誤差拡散法を用いるケースにおいて、圧縮率の低下を伴わずに、画素の階調数を増やすことができるため、用紙上に形成される画像の品質劣化を抑制することができる。なお、低解像度化を伴う必要がないことは勿論である。
【0129】
[その他の実施形態]
本発明は上述した実施形態によって説明したが、この開示の一部をなす論述及び図面は、この発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
【0130】
例えば、画像形成装置100は、MFPではなくて、プリンタ機能のみを有する装置であってもよく、複写機能のみを有する装置であってもよい。
【0131】
上述した実施形態では、第2描画データに係る注目集合画素の値は、2ビットで表現されるが、実施形態はこれに限定されるものではない。第2描画データに係る注目集合画素の値は、4ビットで表現されてもよく、8ビットで表現されてもよい。このように、第2描画データに係る注目集合画素の値を表現するビット数を増やせば、伸長後描画データに係る画素の階調数が増える。
【0132】
例えば、第2描画データに係る注目集合画素の値が4ビットで表現される場合には、伸長後描画データにおいて1画素は16階調であり、圧縮率は、4/16=1/4である。第2描画データに係る注目集合画素の値が8ビットで表現される場合には、伸長後描画データにおいて1画素は256階調であり、圧縮率は、8/16=1/2である。
【0133】
上述した実施形態では、注目集合画素は、水平方向に隣接する2つの画素によって構成されるが、実施形態はこれに限定されるものではない。注目集合画素は、垂直方向に隣接する2つの画素によって構成されてもよい。
【0134】
上述した実施形態では、注目集合画素を構成する画素数は、“2”であるが、実施形態はこれに限定されるものではない。注目集合画素を構成する画素数は、“4”であってもよく、“8”であってもよい。このように、注目集合画素を構成する画素数を増やせば、圧縮率が高まる。
【0135】
例えば、第2描画データに係る注目集合画素の値を表現するビット数が“2”であれば、注目集合画素を構成する画素数が“4”である場合には、圧縮率は2/32=1/16である。同様に、注目集合画素を構成する画素数が“8”である場合には、圧縮率は2/64=1/32である。
【0136】
注目集合画素を構成する画素数は、第1描画データを第2描画データに圧縮する圧縮率と、伸長後描画データに係る画素の階調数とによって定められてもよい。例えば、高い圧縮率や多くの階調が要求されるケースでは、注目集合画素を構成する画素数を増やせばよい。
【0137】
上述した実施形態では、第1描画データの圧縮処理は、画像形成装置100で行われるが、実施形態はこれに限定されるものではない。第1描画データの圧縮処理は、プリンタコントローラ500で行われてもよい。
【0138】
上述した実施形態では特に触れていないが、第1データの圧縮処理をコンピュータに実行させるプログラムが提供されてもよい。
【0139】
上述した実施形態では、PDLから中間言語への変換処理は、プリンタコントローラ500で行われるが、実施形態はこれに限定されるものではない。PDLから中間言語への変換処理は、ユーザ端末600で行われてもよい。
【図面の簡単な説明】
【0140】
【図1】第1実施形態に係る画像形成装置100の概略を示す図である。
【図2】第1実施形態に係る制御ユニット400の構成を示す図である。
【図3】第1実施形態に係るCPU440の構成を示す図である。
【図4】第1実施形態に係る画像形成装置100の動作を示すフロー図である。
【図5】第1実施形態に係る画像形成装置100の動作を示すフロー図である。
【図6】第1実施形態に係る圧縮処理を説明するための図である。
【図7】第1実施形態に係る画像形成装置100の動作を示すフロー図である。
【図8】第1実施形態に係る伸長処理を説明するための図である。
【図9】従来技術と実施形態との比較結果を示す図である。
【符号の説明】
【0141】
10・・・自動原稿送りユニット、20・・・画像読取ユニット、30・・・用紙トレイユニット、40・・・給紙ユニット、50・・・画像形成部、60・・・定着ユニット、70・・・排紙ユニット、80・・・反転ユニット、90・・・操作ユニット、100・・・画像形成装置、200・・・給紙装置、300・・・後処理装置、400・・・制御ユニット、410・・・通信I/F、420・・・HDD、430・・・メモリ、440・・・CPU、441・・・算出部、442・・・圧縮部、443・・・分配部、444・・・シフト部、445・・・伸長部、446・・・ラスタライズ部、447・・・指示部

【特許請求の範囲】
【請求項1】
用紙上に画像を形成する画像形成装置であって、
第1描画データを第2描画データに圧縮し、前記第2描画データを伸長して伸長後描画データを得る制御部と、
前記制御部の指示に応じて、前記伸長後描画データに基づいて画像を用紙上に形成する画像形成部とを備え、
前記制御部は、
複数の注目すべき隣接画素によって1つの注目集合画素を構成して、前記第1描画データの集合注目画素に係る前記複数の隣接画素の値に基づいて、前記第1描画データに係る前記注目集合画素の値を算出する算出部と、
前記第1描画データに係る前記注目集合画素の値と判定閾値とを比較して、前記第1描画データに係る前記注目集合画素の値を符号化する圧縮部と、
前記第1描画データに係る前記注目集合画素の値と、前記第2描画データに係る前記注目集合画素の伸長値との差分である誤差を前記注目集合画素の周囲に設けられた周辺画素に分配して、前記第1描画データに係る前記周辺画素の値を前記誤差によって修正する分配部と、
前記第1描画データの圧縮を終了するまで、前記複数の注目すべき隣接画素をシフトすることにより、前記注目集合画素のシフトを繰り返すシフト部とを有し、
前記算出部、前記圧縮部及び前記分配部は、前記複数の注目すべき画素のシフト毎に処理を繰り返すことを特徴とする画像形成装置。
【請求項2】
前記算出部は、前記第1描画データに係る前記複数の隣接画素の値の平均値を、前記第1描画データに係る前記注目集合画素の値として算出することを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記注目集合画素を構成する前記複数の隣接画素の数は、前記第1描画データを前記第2描画データに圧縮する圧縮率と、前記伸長後描画データに係る1画素の階調数とによって定められることを特徴とする請求項1に記載の画像形成装置。
【請求項4】
第1描画データを第2描画データに圧縮するデータ圧縮方法であって、
複数の注目すべき隣接画素によって1つの注目集合画素を構成して、前記第1描画データに係る前記複数の隣接画素の値に基づいて、前記第1描画データに係る前記注目集合画素の値を算出するステップAと、
前記第1描画データに係る前記注目集合画素の値と判定閾値とを比較して、前記注目集合画素の値を符号化するステップBと、
前記第1描画データに係る前記注目集合画素の値と前記第2描画データに係る前記注目集合画素の伸長値との差分である誤差を前記注目集合画素の周囲に設けられた周辺画素に分配して、前記第1描画データに係る前記周辺画素の値を前記誤差によって修正するステップCと、
前記第1描画データの圧縮を終了するまで、前記複数の注目すべき画素のシフトにより、前記注目集合画素のシフトを繰り返すステップDとを有しており、
前記ステップA、前記ステップB及び前記ステップCは、前記複数の注目すべき隣接画素のシフト毎に繰り返されることを特徴とするデータ圧縮方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−45488(P2010−45488A)
【公開日】平成22年2月25日(2010.2.25)
【国際特許分類】
【出願番号】特願2008−206766(P2008−206766)
【出願日】平成20年8月11日(2008.8.11)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】