説明

画像出力装置

【課題】 所定の画素群を単位とする画像処理をハードウェアにより実現する画像出力装置において、特定の条件に応じて異なる処理を容易に行わせる。
【解決手段】 印刷装置100は、画像データを入力すると、所定の画素群内に白黒エッジが含まれているか否かを判断し、その判断結果に応じて白黒エッジデータと平均化データとを生成する。白黒エッジデータについては、パスユニット群を介して、そのデータをデータセレクタまで転送し、平均化データについては、種々の画像処理を行うメインユニット群を介して、そのデータをデータセレクタまで転送する。データセレクタは、白黒エッジデータに付加された白黒エッジ判定ビットに応じていずれかのデータを選択し、選択したデータを出力画像の生成元となるエンコードデータバッファに順次格納する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力した画像データに所定の画像処理を施して出力する技術に関する。
【背景技術】
【0002】
プリンタなどの印刷装置の印刷解像度は年々高くなっており、デジタルカメラなどで撮影した画像の解像度を上回ることも少なくない。こうした場合には、印刷しようとする画像データの1画素が、印刷上の単位であるピクセルの複数の集合に対応することになる。例えば、印刷しようとする画像の解像度が360dpi×360dpiで、印刷解像度が1440dpi×720dpiの場合には、画像データ側の1画素は、印刷装置側の4×2のピクセルの集合に対応していることになる。
【0003】
このように、入力解像度よりも出力解像度が高い場合には、例えば、画像データ側の1画素の階調値を、4×2のピクセル群に形成するドットの個数および配置によりコード化しようとする手法が考えられる。この場合の最も単純な手法は、4×2のピクセルの集合に対して面積階調の考え方を適用し、全てのピクセルにドットが形成されていない状態から全てのピクセルにドットが形成されている状態まで、9段階のコード値で表現する手法である(濃度パターン法ともいう)。これに対して、出願人は、組織的ディザ法の考え方を4×2ピクセルの集合に、いわば局所的に適用し、組織的ディザ法による画質を維持したまま高速な処理を実現する手法を提案している(下記特許文献1参照)。かかる手法は、極めて高速なハーフトーン処理を実現し、かつ従来の組織的ディザ法と比べても遜色ない画質を実現する画期的なものである。
【0004】
【特許文献1】国際公開第2004/086750号パンフレット
【0005】
ところで、こうした画像処理は、CPUを用いてソフトウェア的に実現しても良いし、専用のハードウェアを設計して実現することも可能である。一般に、適切なハードウェアを設計すれば、ソフトウェアにより実現するよりも高速な処理を実現することができる。上記の手法は、元々誤差拡散より高速な処理が可能であるため、ハードウェアにより実現すれば、更なる高速化を図ることができる。
【0006】
しかしながら、ハードウェアによる設計には、種々の制約が存在する。例えば、画像データ中に特定の条件が成立した場合に本来の処理とは別の処理を行わせると行った柔軟な対応をハードウェアにより実現することは困難であった。
【発明の開示】
【発明が解決しようとする課題】
【0007】
このような状況を踏まえて、本発明が解決しようとする課題は、所定の画素群を単位とする画像処理をハードウェアにより実現する画像出力装置において、特定の条件に応じて異なる処理を容易に行わせることにある。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明を画像出力装置として次のように構成した。すなわち、
入力した画像データに所定の画像処理を施して出力する画像出力装置であって、
入力した画像データを所定の画素数単位の画素群に分割し、該画素群の特徴に応じて該画素群から第1の中間データおよび第2の中間データを生成して各々出力する中間データ生成ユニットと、
前記第1の中間データを入力し、該第1の中間データに対して各々所定の画像処理を施しつつ順次転送を行う画像処理ユニットを複数直列に接続した画像処理ユニット群と、
前記第2の中間データを入力し、該第2の中間データを、前記画像処理ユニット間に前記第1の中間データが転送されるのと同期して少なくとも転送を順次行うパスユニットを複数直列に接続したパスユニット群と、
前記画像処理ユニット群によって画像処理の施された後の前記第1の中間データと、前記パスユニット群を順次転送された前記第2の中間データとを入力し、所定の条件に基づき、該入力された中間データのうちいずれか一方を選択するデータセレクタと、
前記データセレクタによって選択された中間データを記憶する記憶部と
前記記憶部に記憶された中間データを用いて、出力画像を生成する出力画像生成部と
を備えることを要旨とする。
【0009】
本発明の画像出力装置では、入力した画像データが、所定の画素数単位の画素群に分割され、その画素群の特徴に応じて第1の中間データと第2の中間データとが生成される。第1の中間データについては、各画像処理ユニットによって様々な画像処理を施されながら転送され、第2の中間データについては、第1の中間データが画像処理ユニット群を転送されるのと同期して、各パスユニットを転送される。そして、最終的にデータセレクタによっていずれかの中間データが所定の条件に基づき選択され、こうして選択された中間データが記憶部に順次記憶されることになる。
【0010】
このような構成の画像出力装置によれば、画素群の特徴に応じて生成された2つの中間データが画像処理ユニット群とパスユニット群とをそれぞれ同期して転送され、出力画像を生成するためのデータとして記憶部に記憶される。従って、第1の中間データと第2の中間データとで、異なる画像処理を容易に行わせることが可能になる。更に、第1の中間データと第2の中間データとは、記憶部に記憶されるまでに、同期して転送が行われるため、その転送順序が狂うことがなく、次々に中間データを画像処理ユニット群とパスユニット群とに流すことが可能となる。この結果、データの順序の整合性をとるためのハードウェアが不要となるため、ハードウェアの簡素化を図ることができ、画像処理にかかる処理時間を大幅に短縮させることができる。なお、パスユニットは、第2の中間データの転送以外にも、第2の中間データに対して所定の画像処理を施すものとすることもできる。
【0011】
上記構成の画像出力装置において、
前記パスユニット群は、前記画像処理ユニットと同数の前記パスユニットを備えているものとすることができる。
【0012】
このような構成であれば、画像処理ユニット群における第1の中間データの転送とパスユニット群における第2の中間データの転送を、容易に同期させることが可能になる。
【0013】
上記構成の画像出力装置において、
前記画像処理ユニットは、前記第1の中間データの転送先の他の画像処理ユニットに対して、データの受け取りを要求する要求信号を送信し、該他の画像処理ユニットは、該要求信号を受信すると、当該画像処理ユニットから転送された前記第1の中間データを受信し、該第1の中間データの受信が完了すると、当該画像処理ユニットに対して、データの受信が完了した旨を表す確認信号を送信することにより、前記第1の中間データの転送を行うものとすることができる。
【0014】
このような構成によれば、各画像処理ユニットは、それぞれが担当する画像処理を行いつつ、効率的に第1の中間データを順次転送することができる。
【0015】
上記構成の画像出力装置において、
前記パスユニットは、
当該パスユニットに対応して設けられた前記画像処理ユニットが前記第1の中間データの転送元となる他の画像処理ユニットに対して送信する前記確認信号を分岐して入力し、該確認信号の入力を検出した場合に、前記第2の中間データの転送元となる他のパスユニットから前記第2の中間データを入力するとともに、
当該パスユニットに対応して設けられた前記画像処理ユニットが前記第1の中間データを転送する他の画像処理ユニットから、該パスユニットに対応して設けられた前記画像処理ユニットに対して送信される前記確認信号を分岐して入力し、該確認信号の入力を検出した場合に、前記第2の中間データの転送先となる他のパスユニットに前記第2の中間データを出力することにより、前記画像処理ユニット間に前記第1の中間データが転送されるのと同期して前記第2の中間データの転送を行うものとすることができる。
【0016】
このような構成によれば、各画像処理ユニットが第1の中間データを転送するために用いる信号を利用して、各パスユニットが第2の中間データを適切に転送することができるため、簡略な構成により、第1の中間データと第2の中間データとを同期させて転送させることが可能になる。
【0017】
上記構成の画像出力装置において、前記中間データ生成ユニットは、前記第1の中間データとして、前記画素群を構成する画素の画素値を平均化し、該画素群の解像度を低減させたデータを生成するものとすることができる。
【0018】
このような構成であれば、入力した画像データの解像度を低減したデータを第1の中間データとして生成することができる。そのため、各画像処理ユニットにおける画像処理の処理速度を向上させることが可能になる。
【0019】
上記構成の画像出力装置において、
前記中間データ生成ユニットは、
前記画素群にエッジが含まれているか否かを検出する検出手段と、
前記検出手段によってエッジが含まれていると検出された場合に、前記第2の中間データとして、該エッジの形態を表すデータを生成する生成手段とを備えるものとすることができる。
【0020】
このような構成であれば、文字等のエッジを有する特徴的な部分について、入力時の解像度を保ったまま高解像度で画像処理を行い、その他の部分については、上述した構成のように、解像度を低減させつつ画像処理を行うといった処理を行うことができる。
【0021】
上記構成の画像出力装置において、
前記中間データ生成ユニットの検出手段は、前記画素群が、白色と黒色の画素によって構成されている場合に、エッジが含まれていると判断するものとすることができる。
【0022】
このような構成によれば、画素群が、白色と黒色の画素によって構成されているか否かという単純な判定処理によりエッジの有無を判断することができる。また、ビジネス文書などを表す画像データ中の文字部分の多くは、白色と黒色とによって表されているため、効率的に画像データ中から文字部分を抽出し、かかる文字部分に対して、他の部分と異なる処理を行うことが可能になる。
【0023】
上記構成の画像出力装置において、
前記中間データ生成ユニットの生成手段は、前記エッジの形態を表すデータとして、前記画素群内の白色と黒色の画素の配置に応じて前記画素群を2値化したデータを生成するものとすることができる。
【0024】
このような構成によれば、第2の中間データのデータ容量を大幅に削減することができる。
【0025】
上記構成の画像出力装置において、
前記中間データ生成ユニットの生成手段は、前記検出手段によってエッジが含まれていないと検出された場合に、前記第2の中間データとして、所定のダミーデータを生成する手段を備えるものとすることができる。
【0026】
このような構成によれば、画素群がエッジを含まない通常の態様であっても、パスユニット群にダミーデータが転送されるので、画像処理ユニット群とパスユニット群との同期を適正に保つことができる。
【0027】
上記構成の画像出力装置において、
前記中間データ生成ユニットは、前記エッジの有無に応じて、前記第1の中間データと前記第2の中間データとのうち、どちらの中間データが優位であるかを表す識別子を生成し、前記第2の中間データとともに、該識別子を前記パスユニット群に出力する手段を備えるものとすることができる。
【0028】
かかる構成において、前記データセレクタは、前記第2の中間データとともに前記識別子を入力し、該識別子に応じて、前記選択を行うものとすることができる。
【0029】
このような構成によれば、第1の中間データと第2の中間データのうち、どちらの中間データを記憶部に記憶させればよいかを容易に判別することが可能になる。
【0030】
上記構成の画像出力装置において、
前記各パスユニットは、所定段数のFIFOメモリによって構成されているものとすることができる。
【0031】
このような構成によれば、1つの画像処理ユニットが、複数の第1の中間データを入力して画像処理を行う場合であっても、1つのパスユニットに、これと同数の第2の中間データを蓄積することが可能になるため、第1の中間データと第2の中間データとを適切に同期させて転送させることが可能になる。
【0032】
上記構成の画像出力装置において、
前記出力画像生成部は、前記記憶部に記憶された前記第1の中間データと前記第2の中間データとに対してそれぞれ個別に異なるハーフトーン処理を施すことにより、前記出力画像を生成するものとすることができる。
【0033】
このような構成によれば、第1の中間データと第2の中間データとに対して、それぞれの特徴に応じたハーフトーン処理を行って出力画像を生成することができるため、画質の向上を図ることが可能になる。
【発明を実施するための最良の形態】
【0034】
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態を実施例に基づき次の順序で説明する。
A.印刷装置の概略構成:
B.印刷装置の内部構成:
C.画像処理ユニットの詳細な構成:
C−1.色変換回路(白黒エッジエンコード等):
C−2.ハーフトーン回路(白黒エッジデコード、ハーフトーン処理等):
C−3.ヘッド駆動用データ変換回路:
D.実施例の効果:
E.1×1モード時におけるハーフトーン回路内でのデータの流れ:
F.黒データテーブルの作成方法:
G.他の出力解像度モードの例:
H.変形例:
【0035】
A.印刷装置の概略構成:
図1は、実施例としての印刷装置100の概略構成を示す説明図である。この印刷装置100は本発明の画像出力装置に相当する。図示するように、本実施例の印刷装置100は、USBケーブル135等によってコンピュータ900と接続され、コンピュータ900から出力される画像や文書などのデータを印刷する装置である。コンピュータ900は、これらのデータの印刷にあたり、印刷装置100に対して印刷媒体Sの種類やサイズの指定、出力解像度の指定等、様々な印刷設定を行うことができる。また、印刷装置100には、操作パネル140が備えられており、同様の設定を、印刷装置100本体からも行うことができる。なお、印刷装置100とコンピュータ900とを併せて、広義の画像出力装置と呼ぶこともできる。
【0036】
本実施例の印刷装置100は、いわゆる複合機タイプの印刷装置であり、その上部には、スキャナ110が設けられている。このスキャナ110を用いれば、コンピュータ900との接続の有無を問わず、印刷装置100単体で画像を取り込み、取り込んだ画像を印刷することができる。また、印刷装置100の前面にはメモリカードを挿入するためのメモリカードスロット120が設けられている。印刷装置100は、コンピュータ900との接続の有無を問わず、このメモリカードスロット120に挿入されたメモリカードから画像を入力して印刷を行うこともできる。
【0037】
図の下部には、本実施例の印刷装置100の動作の概要を示した。本実施例の印刷装置100は、コンピュータ900やスキャナ110、メモリカード等から720dpi×720dpiの解像度で画像データを入力し、印刷媒体S上に720dpi×720dpiの解像度で印刷を行う。かかる印刷処理において、印刷装置100は、入力画像の中に白色と黒色の組み合わせのみで構成される部分(以下、このような部分を「白黒エッジ」と呼ぶ)が存在するか否かを判断する。その結果、白黒エッジが存在しない部分については、一旦、解像度を360dpi×360dpiに落として量子化テーブルや個数テーブル、順序値マトリクスと呼ばれる種々のテーブルを参照して第1のハーフトーン処理を行う。一方、白黒エッジが存在する部分については、事前に作成しておいた黒データテーブルと呼ばれるテーブルを参照しつつ720dpi×720dpiの解像度を保ったまま第2のハーフトーン処理を行う。そして、最終的に両部分を合成し、720dpi×720dpiの出力解像度で印刷を行う。こうすることで、白色と黒色の組み合わせによって構成される文字や記号等については、高解像度のまま明瞭な印刷を行うことができ、その他の背景部分については、データ量を削減しつつ印刷を行うことができる。以下、かかる印刷装置100の詳細な構成について説明する。
【0038】
B.印刷装置の内部構成:
図2は、印刷装置100の内部構成を示す説明図である。図示するように、印刷装置100は、印刷媒体Sに印刷を行う機構として、インクカートリッジ212を搭載したキャリッジ210や、キャリッジ210を主走査方向に駆動するキャリッジモータ220、印刷媒体Sを副走査方向に搬送する紙送りモータ230等を備えている。
【0039】
キャリッジ210は、プラテン270の軸方向と並行に設置された摺動軸280に移動自在に保持されている。キャリッジモータ220は、制御ユニット150からの指令に応じて駆動ベルト260を回転させることで、この摺動軸280に沿って、キャリッジ210を主走査方向に往復運動させることができる。
【0040】
紙送りモータ230は、制御ユニット150からの指令に応じてプラテン270を回転させることで、プラテン270の軸方向と垂直に印刷媒体Sを搬送する。つまり、紙送りモータ230は、キャリッジ210を相対的に副走査方向に移動させることができる。
【0041】
キャリッジ210には、シアン(C)、マゼンタ(M)、イエロ(Y)、ブラック(K)、ライトシアン(lc)、ライトマゼンタ(lm)、ダークイエロ(dy)、透明(cr)、の計8色のインクを収容したインクカートリッジ212が装着される(図中には、便宜上、4種類のインクカートリッジのみを示している)。インクカートリッジ212がキャリッジ210に装着されると、インクカートリッジ212内のインクは、図示しないインク通路を通じて、キャリッジ210の下面に設けられたインクヘッド211に供給される。なお、本実施例では、8色のインクを用いるものとするが、ライトシアンやライトマゼンタ、ダークイエロ、透明、の各色については使用しないものとしてもよい。なお、透明インクは、主に、他のインクが吐出されない白紙部分について吐出されるインクである。この透明インクによれば、色が印刷されない部分についても他のインクと同様の光沢感を与えることができる。
【0042】
インクヘッド211には、インクの種類毎に8組のノズル列が副走査方向に配列されている。1組のノズル列には、90個のノズルが一定のピッチ(例えば、120分の1インチ=0.21mm)で配列されている。つまり、キャリッジが1回、主走査されると最大90本のラスタラインが一定のピッチ間隔を空けて同時に印刷媒体S上に形成されることになる。このピッチ間隔は、最終的に印刷媒体上に形成される隣接したラスタ間のピッチの整数倍である。ここで、ノズル列の副走査方向に配列されるノズル数をN[個](Nは正の整数)、およびノズル間のドットピッチをk[個](kはNと互いに素の関係にある整数)、ノズル密度をD[個/インチ]とした場合、主走査の度に、N/(D・k)相当の一定の距離だけ副走査方向へ印刷媒体を搬送すると、副走査方向において隣接するラスタが異なるノズルによって形成されることになる。そのため、個々のノズルの特性やピッチにばらつきが多少ある場合でも、このようなばらつきに起因するバンディングの発生を抑えることができ、高画質の印刷を行なうことができる。このような印刷方法をインタレース印刷という。
【0043】
インクヘッド211は、制御ユニット150による制御に応じて、吐出するインク滴の大きさを調整することができる。これにより、大ドット、中ドット、小ドットという3種類の大きさのドットを印刷媒体S上に形成することができる。
【0044】
図3は、インクヘッド211から異なる大きさのインク滴が吐出される原理を示す説明図である。図の上部に示した電圧波形において、破線で示した波形が通常のドットを吐出する際の波形である。この電圧波形中に示した区間d2において、一旦、マイナスの電圧をピエゾ素子PEに印加すると、インク通路68の断面積を増大する方向にピエゾ素子PEが変形する。インクカートリッジ212のインク通路からのインクの供給速度には限界があるため、インク通路68の拡大に対してインクの供給量が不足する。この結果、図3下部の状態Aに示した通り、ノズルNz先端のインクの界面Meは、ノズルNz内側に凹んだ状態となる。
【0045】
一方、実線で示す電圧波形を用い、区間d1に示すようにマイナス電圧をピエゾ素子PEに急激に印加すると、インクカートリッジ212からのインクの供給量はさらに不足した状態となる。従って、状態aで示す通りインク界面Meは状態Aに比べて更に内側に凹んだ状態となる。次に、ピエゾ素子PEに正の電圧が印加されると(区間d3)、インク通路68が狭められ、インクが吐出される。このとき、インク界面Meがあまり内側に凹んでいない状態(状態A)からは状態Bおよび状態Cに示すごとく大きなインク滴が吐出される。一方、インク界面Meが大きく内側に凹んだ状態(状態a)からは状態bおよび状態cに示すごとく小さなインク滴が吐出される。インクヘッド211からは、このようにして大きさの異なるインクが吐出されることになる。
【0046】
説明を図2に戻す。印刷装置100は、上述した印刷機構を制御するための制御ユニット150を備えている。制御ユニット150には、印刷対象の画像データを入力するためのUSBインタフェース130や、スキャナ110、メモリカードスロット120が接続されている。また、制御ユニット150には、ユーザによる操作を受け付けるための操作パネル140が接続されている。
【0047】
制御ユニット150は、USBインタフェース130やスキャナ110、メモリカードスロット120から入力した画像データに対して、所定の画像処理を施し、印刷機構を制御して印刷を行う機能を備える。制御ユニット150は、かかる機能を実現するため、CPU151やSDRAM152、ROM153、EEPROM154、画像処理ユニット155、ヘッドコントロールユニット156等を備えている。これらの各デバイスは、所定のバスを介して相互に接続されている。
【0048】
ROM153には、印刷装置100の動作全体を制御するためのプログラムとしてファームウェアが記録されている。CPU151は、印刷装置100の電源投入時に、このファームウェアをSDRAM152の所定のワークエリアにロードして実行する。
【0049】
図4は、SDRAM152のメモリマップを示す説明図である。図示するように、SDRAM152には、ファームウェアFWのほか、様々なデータがCPU151によってROM153から読み出されて展開される。展開されるデータとしては、例えば、白黒エッジテーブルET、色変換テーブルLUT、量子化テーブルQT、第1ドット個数テーブルDT1、第2ドット個数テーブルDT2、順序値マトリクスOM、黒データテーブルBTなどがある。また、SDRAM152には、画像処理時に生成される様々な中間データを一時的に記憶するための様々なバッファ領域が確保されている。このバッファ領域としては、例えば、ラインバッファLB、エンコードデータバッファEB、ドット形成用データバッファDB、ヘッド駆動用データバッファHBなどがある。なお、ここに挙げたデータやバッファの働きについては、必要に応じてその都度説明する。
【0050】
説明を図2に戻す。EEPROM154には、印刷装置100の製造工程で検出された各個体に固有の特性を補正するためのデータが記録されている。かかる補正データとしては、例えば、インクヘッド211の各ノズルから吐出されるインクの量や、各ノズルから吐出されるインクの吐出方向を補正するためのデータが含まれる。これらの補正データは、後述する画像処理ユニット155によって色調を補正する際に用いられる。
【0051】
画像処理ユニット155は、印刷に関する画像処理機能に特化したカスタムLSIであり、内部は、大きく分けて、色変換回路300と、ハーフトーン回路400と、ヘッド駆動用データ変換回路500とによって構成されている。色変換回路300は、RGB形式のデータをCMYK形式のデータに変換する回路である。ハーフトーン回路400は、CMYK形式のデータに対してハーフトーン処理を施す回路である。ヘッド駆動用データ変換回路500は、ハーフトーン処理のなされたデータを、インクヘッド211を駆動するためのデータに変換するための回路である。
【0052】
画像処理ユニット155は、画像処理に必要な種々の設定情報をセットするためのレジスタを備えている(図示せず)。印刷を行おうとする画像データの解像度や印刷媒体のサイズ、出力解像度のモードなど、コンピュータ900や操作パネル140によってユーザから設定された様々な設定情報は、CPU151によってこのレジスタに対して書き込まれる。画像処理ユニット155は、レジスタに書き込まれた設定情報に応じて種々の画像処理を行う。
【0053】
ヘッドコントロールユニット156は、画像処理ユニット155によって最終的に生成されたヘッド駆動用データをSDRAM152のヘッド駆動用データバッファHBから取得し、かかるヘッド駆動用データに基づき、紙送りモータ230とキャリッジモータ220を制御しつつ、各ノズルから適切なタイミングでインク滴を吐出する。こうすることで、印刷媒体S上の適切な位置に各色のドットが形成され、カラー印刷が行われる。
【0054】
C.画像処理ユニットの詳細な構成:
次に、画像処理ユニット155の詳細な構成について説明する。上述したように画像処理ユニット155は、色変換回路300とハーフトーン回路400とヘッド駆動用データ変換回路500とを備えているため、以下ではこれらの回路について順に説明する。
【0055】
C−1.色変換回路:
図5は、色変換回路300の詳細な構成を示すブロック図である。この色変換回路300は、RGB形式で表された画像データ(以下、「RGB画像データ」と呼ぶ)をCMYK形式の画像データ(以下、「CMYK画像データ」と呼ぶ)に変換する機能や、CMYK画像データに対して画質を向上させるための種々の画像処理を行う機能、入力したRGB画像データから白黒エッジ部分を抽出する機能等を有している。
【0056】
色変換回路300は、図示するように、ライン入力ユニット310と、白黒エッジ処理ユニット320と、色変換ユニット330と、インク量補正ユニット340と、印刷縞抑制ユニット350と、ビット減縮ユニット360と、透明インク後処理ユニット370と、ブロック内平滑化ユニット380とを備えている。以下、図の上段に位置するこれらのユニットをまとめてメインユニットと呼ぶ。
【0057】
なお、本実施例の白黒エッジ処理ユニット320が、本願の「中間データ生成ユニット」に対応する。また、色変換回路300中の、色変換ユニット330と、インク量補正ユニット340と、印刷縞抑制ユニット350と、ビット減縮ユニット360と、透明インク後処理ユニット370と、ブロック内平滑化ユニット380と、後述するハーフトーン回路400内のエンコーダ410とが、本願の「画像処理ユニット」に対応する。
【0058】
メインユニットは、データ線(data)、リクエスト線(req)、アクノリッジ線(ack)の3種類の信号線によって上述した順に直列に接続されている。各ユニットは、これらの信号線を用いてreq信号とack信号とをやりとりすることで、データの受け渡しを行っている。詳しくは、データを送信する側のユニットは、受信側のユニットに対してデータを送信すると、データを送信したことを知らせるreq信号を送信する。受信側は、req信号を受信すると、データが送信されてきていることがわかるので、データの読み込み処理を開始し、データを受信していることを示すack信号を返信する。そして、受信側のユニットが、読み込み処理を完了してack信号を元に戻すと、送信側はデータが確実に受信されたことが確認できる。そして、送信側のユニットは、req信号を元に戻し、次のデータの送信に移行する。
【0059】
色変換回路300には、色変換ユニット330からブロック内平滑化ユニット380までのメインユニットに対応するように、第1パスユニット390aから第6パスユニット390fまでの計6つのパスユニット390a〜390fが直列に設けられている。これらのパスユニット390a〜390fは、白黒エッジ処理ユニット320から出力されたデータを、後述するハーフトーン回路400に伝達すると共に、色変換ユニット330から出力される種々の情報をブロック内平滑化ユニット380まで伝達するために設けられたユニットである。
【0060】
各パスユニット390a〜390fは、そのパスユニットに対応して設けられたメインユニットが前段のメインユニットに送信するack信号を分岐して入力すると、前段のパスユニットからデータを取り込む。そして、対応して設けられたメインユニットが後段のメインユニットから受信したack信号を分岐して入力すると、後段のパスユニットに対してデータを転送する。つまり、メインユニットにデータが伝達するのと同期して、パスユニット390a〜390fにもデータが順次伝達していくことになる。このような構成によれば、パスユニットを転送されている種々のデータを、対応するメインユニットに容易に取り込むことができ、回路の拡張性を高めることができる。また、取り扱うデータの容量が増加し、メインユニット間のバス幅が不足した場合にも、パスユニットを利用することでより多くのデータを扱うことが可能になる。
【0061】
図6は、パスユニット390a〜390fの内部構成を示す説明図である。図示するようにパスユニット390a〜390fは、8ビット16段のFIFOメモリとして構成されている。このFIFOメモリには、前段のパスユニットから転送された8ビットのデータが順次蓄積される。そして、後段のパスユニットに対して、蓄積された順序が古い順にデータが出力される。この8ビットのデータは、5ビットの白黒エッジデータと2ビットのエッジデータと1ビットのノイズデータとから構成される。
【0062】
(C−1−1)ライン入力ユニット:
ここで、説明を図5に戻し、メインユニットを構成する各ユニットの詳細について説明する。
ライン入力ユニット310は、USBインタフェース130やスキャナ110、メモリカードスロット120等から720dpi×720dpiの解像度を有するRGB画像データを入力し、入力したRGB画像データをラインバッファLBに蓄積する。そして、このラインバッファLBからRGB画像データを2ラインずつ読み込み、読み込んだ2ライン分のデータを白黒エッジ処理ユニット320に転送する。なお、ライン入力ユニット310は、入力したRGB画像データの解像度が360dpi×360dpiの時に、1ラインずつ画像データを転送する機能も備えている。
【0063】
(C−1−2)白黒エッジ処理ユニット:
図7は、図5に示した白黒エッジ処理ユニット320の内部構成を示す説明図である。図示するように、白黒エッジ処理ユニット320は、ライン入力ユニット310に接続された白黒エッジ判定回路321と、白黒エッジ判定回路321の出力を受けて階調値の平均化処理を行う平均化回路322と、白黒エッジ判定回路321の出力を受けて、白黒エッジ部分のエンコードを行う白黒エッジエンコード回路323と、ライン入力ユニット310と平均化回路322からの出力を受けて色変換ユニット330に出力するデータの選択を行うセレクタ回路324とを備えている。
【0064】
(C−1−2−1)白黒エッジ判定回路:
白黒エッジ判定回路321は、入力した画素が白黒エッジに該当するか否かを判定する回路である。具体的には、白黒エッジ判定回路321は、ライン入力ユニット310から入力した1ライン目と2ライン目の画像データから、2×2個の画素群(図中のA,B,C,D)を順次抽出し、この4つの画素が白黒エッジパターンであるか否かを判別する。白黒エッジパターンとは、4つの画素が、白(RGB=(255,255,255))と黒(RGB=(0,0,0))のみの色で構成されているパターンのうち、全画素白および全画素黒のパターンを除いたパターンのことをいう。白黒エッジ判定回路321は、抽出した4つの画素が白黒エッジパターンであれば、白黒エッジ判定フラグに「1」をセットし、白黒エッジパターンでなければ、白黒エッジ判定フラグに「0」をセットする。白黒エッジ判定回路321は、白黒エッジパターンの判別が終了すると、判定対象となった4つの画素のRGBデータを、平均化回路322と白黒エッジエンコード回路323との両者に出力する。このとき、白黒エッジエンコード回路323に対しては、上述した白黒エッジ判定フラグの値も出力する。
【0065】
(C−1−2−2)白黒エッジエンコード回路:
白黒エッジエンコード回路323は、白黒エッジパターンのデータを二値化して、5ビットのデータにエンコードする回路である。具体的には、白黒エッジ判定回路321から入力した白黒エッジ判定フラグに「1」がセットされていれば、白黒エッジ判定回路321から転送された4つの画素のRGBデータについて、白黒エッジテーブルETを参照してデータ変換を行い、5ビットの白黒エッジデータを生成する。
【0066】
図8は、白黒エッジテーブルETの一例を示す説明図である。図示するように、白黒エッジテーブルETには、4つの画素のパターンに応じて、4ビットのエンコードデータが対応づけられて記憶されている。この白黒エッジテーブルETは、図4に示したようにSDRAM152に記憶されている。図の上部に示すように、4つの画素の左上の画素をA、右上をB、左下をC、右下をDとすると、例えば、白黒エッジエンコード回路323は、4つの画素のRGBデータが、(A,B,C,D)=(0,0,0,255)であれば、「0001」という4ビットデータに変換し、(A,B,C,D)=(0,0,255,0)であれば、「0010」という4ビットデータに変換する。なお、この白黒エッジテーブルETは、比較的、データ容量が少量であるため、白黒エッジエンコード回路323内に回路として組み込まれていてもよい。また、白黒エッジテーブルETを用いなくとも、各画素の階調値を255で除算し、その商の部分を結合してエンコードデータを動的に生成してもよい。
【0067】
説明を図7に戻す。一方、白黒エッジエンコード回路323は、白黒エッジ判定回路321から受信した白黒エッジ判定フラグに「0」がセットされていれば、白黒エッジテーブルETとは無関係に、白黒エッジ判定回路321から転送された4つの画素のRGBデータを、「0000」という4ビットデータにエンコードする。
【0068】
白黒エッジエンコード回路323は、以上のように、4つの画素のRGBデータを4ビットのデータに変換すると、エンコードした結果の4ビットデータの最上位ビットに、白黒エッジ判定フラグの内容を付加し、最終的に5ビットの白黒エッジデータを生成する。例えば、4つの画素をエンコードした結果が「0001」であれば、最終的に得られるデータは、「10001」となる。なお、4つの画素が白黒エッジパターンでない場合には、最終的に得られるデータは、「00000」となる。この「00000」となるデータは、白黒エッジデータとは区別してダミーデータと呼ぶ場合がある。
【0069】
白黒エッジエンコード回路323は、こうしてエンコードされた5ビットの白黒エッジデータを、第1パスユニット390aに転送する。そのため、パスユニット390a〜390fには、処理対象の4つの画素が白黒エッジパターンである場合には、白黒エッジデータが順次転送され、白黒エッジパターンでない場合には、ダミーデータが順次転送されることになる。
【0070】
(C−1−2−3)平均化回路:
次に、図7の平均化回路322について説明する。平均化回路322は、4つの画素の階調値を平均化して解像度を低減する回路である。つまり、平均化回路322は、白黒エッジ判定回路321から入力した4つの画素のRGBデータに対して、4つの画素の階調値を平均化することで、720dpi×720dpiの画像データを360dpi×360dpi相当のデータに変換する。なお、白黒エッジ判定回路321から出力された4つの画素のRGBデータは、白黒エッジパターンに該当するか否かにかかわらず、平均化回路322にも入力されため、結果的に、白黒エッジパターンに該当する4つの画素も平均化されることになる。
【0071】
4つの画素の階調値の平均化は、次の演算によって行うことができる。すなわち、4つの画素A,B,C,Dの階調値をそれぞれ、
A=(Ra,Ga,Ba)
B=(Rb,Gb,Bb)
C=(Rc,Gc,Bc)
D=(Rd,Gd,Bd)
とすると、変換後の1画素の階調値(R,G,B)は、
R=(Ra+Rb+Rc+Rd)/4
G=(Ga+Gb+Gc+Gd)/4
B=(Ba+Bb+Bc+Bd)/4
となる。もちろん、4で除する際には、2ビット分、値を右方向へビットシフトすることで容易に演算を行うことができる。こうして平均化されたRGBデータは、360dpi×360dpiの解像度に変換された1×1の新たな画素の階調値としてセレクタ回路324に出力される。
【0072】
(C−1−2−4)セレクタ回路:
セレクタ回路324は、平均化回路322から出力された360dpi×360dpiのRGBデータと、ライン入力ユニット310から出力されたRGBデータとを入力する。そして、画像処理ユニット155が入力した原画像データの解像度が720dpi×720dpiの場合には、平均化回路322から入力したRGBデータを選択して、これを後段の色変換ユニット330に転送する。一方、画像処理ユニット155が入力した原画像データの解像度が360dpi×360dpiの場合には、ライン入力ユニット310から直接入力したRGBデータを選択して、これを後段の色変換ユニット330に転送する。つまり、印刷対象の画像データの入力解像度が低解像度(360dpi×360dpi)の場合には、白黒エッジ部分について高解像度(720dpi×720dpi)で処理することはできないから、白黒エッジ処理ユニット320は、ライン入力ユニット310から入力したRGBデータをスルーして出力するのである。
【0073】
以上で説明したように、白黒エッジ処理ユニット320は、ライン入力ユニット310から入力した画像データが、白黒エッジパターンからなるデータであれば、第1パスユニット390aに対して720dpi×720dpiの解像度を保ちつつ5ビット化した白黒エッジデータを出力し、更に、色変換ユニット330に対して、4画素の階調値を平均化した360dpi×360dpiのRGBデータを出力する。一方、ライン入力ユニット310から入力した画像データが、白黒エッジパターン以外の通常のデータであれば、第1パスユニットに対しては、5ビットのダミーデータを出力し、更に、色変換ユニット330に対して4画素の階調値を平均化した360dpi×360dpiのRGBデータを出力することになる。
【0074】
なお、本実施例において、白黒エッジ処理ユニット320によって4画素の階調値が平均化されたRGBデータが、本願の「第1の中間データ」に相当し、白黒エッジをエンコードした白黒エッジデータが、本願の「第2の中間データ」に対応する。
【0075】
(C−1−3)色変換ユニット:
図9は、図5に示した色変換ユニット330の内部構成を示す説明図である。色変換ユニット330は、白黒エッジ処理ユニット320から入力したRGBデータに対して色変換を施し、CMYKデータを生成するユニットである。図示するように、色変換ユニット330は、白黒エッジ処理ユニット320と接続され、RGB形式のデータをCMYK形式のデータに変換する変換回路331と、白黒エッジ処理ユニット320と接続され、2画素間のエッジを判定する標準エッジ判定回路332と、1ビットのノイズを発生するノイズ発生回路333と、変換回路331と標準エッジ判定回路332とノイズ発生回路333とに接続され、これらの回路から出力されたデータを用いて階調値の平滑化を行うスムージング回路334とを備えている。
【0076】
(C−1−3−1)変換回路:
変換回路331は、SDRAM152に記憶された色変換テーブルLUTを参照して、白黒エッジ処理ユニット320から入力したRGBデータをCMYKデータに変換する回路である。色変換テーブルLUTには、RGB形式で表される色と、C(シアン),M(マゼンタ),Y(イエロ),K(黒),lc(ライトシアン),lm(ライトマゼンタ),dy(ダークイエロ),cr(透明インク)の計8色の組み合わせによって表される色とが、対応づけられて記録されている。変換回路331は、白黒エッジ処理ユニット320から入力したRGBデータに対応するCMYKデータを、この色変換テーブルLUTを参照して導き出すことで、色変換を行うことができる。
【0077】
(C−1−3−2)標準エッジ判定回路:
標準エッジ判定回路332は、白黒エッジ処理ユニット320から2画素分のRGBデータを入力すると、これらの画素間の水平方向への勾配(エッジ)を求め、その強度を、0から2までの度合いで表し、2ビットの標準エッジデータを生成する。かかる標準エッジデータは、白黒エッジデータとは異なる種類のデータである。
【0078】
エッジの判定手順は、概ね次の通りである。まず、標準エッジ判定回路332は、水平方向の2つの画素のRGB階調値の差分Rdiff,Gdiff,Bdiffを、次のように計算する。なお、エッジを判定する対象画素のRGB値をR,G,Bと表し、その左側に位置する画素のRGB値をRp,Gp,Bpと表す。
【0079】
Rdiff=|R−Rp|
Gdiff=|G−Gp|
Bdiff=|BーGp|
【0080】
次に、以下の式によって、RGB毎に重み付けを行う。なお、TR、TG、TBは、所定の閾値であり、例えば、TR=10、TG=8、TB=14とすることができる。
【0081】
Rdiff=Rdiff−(TR−TG)
Gdiff=Gdiff
Bdiff=Bdiff−(TB−TG)
【0082】
そして、Rdiff、Gdiff、Bdiffのうち、最大値となる値を、最大差分DiffMaxとして次のように選択する。
【0083】
DiffMax=max(Rdiff,Gdiff,Bdiff)
【0084】
最後に、最大差分DiffMaxが、閾値TGよりも小さければ、エッジなしと判定し、標準エッジデータを「0」とする。また、最大差分DiffMaxが、閾値TGよりも大きく、閾値TGに所定のオフセット値(例えば8)を加えた値よりも小さければ、弱いエッジがあると判定し、標準エッジデータを「1」とする。また、最大差分DiffMaxが、閾値TGに所定のオフセット値を加えた値よりも大きければ、強いエッジありと判定し、標準エッジデータを「2」とする。なお、白黒エッジ処理ユニット320から入力した白黒エッジ判定フラグの状態が、「1」であれば、最大差分DiffMaxの値に関係なく、その画素の標準エッジデータは、最も強いエッジを表す「2」とする。標準エッジ判定回路332は、このようにして判定された標準エッジデータをスムージング回路334と第2パスユニット390bとに対して出力する。第2パスユニット390bに出力された標準エッジデータは、後述するブロック内平滑化ユニット380までパスユニット群を通じて転送されることになる。
【0085】
(C−1−3−3)ノイズ発生回路:
ノイズ発生回路333は、「0」か「1」かの値を表す1ビットのノイズデータ(乱数)をランダムに発生する回路である。ノイズ発生回路333は、異なる2つのノイズデータを生成し、一方をスムージング回路334に出力し、他方を、第2パスユニット390bに出力する。第2パスユニット390bに出力されたノイズデータは、後述するブロック内平滑化ユニット380までパスユニット群を通じて転送されることになる。
【0086】
(C−1−3−4)スムージング回路:
スムージング回路334は、標準エッジ判定回路332から入力した標準エッジデータと、ノイズ発生回路333から入力したノイズデータとに基づき、変換回路331から出力されたCMYKデータに対して階調値の平滑化を行う。平滑化の手順は、概ね次の通りである。
【0087】
まず、スムージング回路334は、標準エッジデータの値を判定し、標準エッジデータの値が、0または1であれば、以下の演算により、水平方向の2画素についてCMYK各色の平滑化を行う。なお、下記演算式において、Cは、スムージング対象の画素の階調値を表し、Cpは、スムージング対象の画素の左側に位置する画素の階調値を表す。また、SP0およびSP1は、所定の重み付けパラメータ(例えば、SP0=4,SP1=2)を表し、Nは、ノイズデータの値(0または1)を表す。
【0088】
(1)標準エッジデータが0の場合:
C=(C+Cp×(SP0−1)+N×(SP0−1))/SP0
(2)標準エッジデータが1の場合:
C=(C+Cp×(SP1−1)+N×(SP1−1))/SP1
【0089】
一方、スムージング回路334は、標準エッジデータの値が2であれば、その画素が強いエッジを有していると判断し、平滑化を行わない。こうすることにより、出力画像の明瞭度が低下することを抑制することができる。スムージング回路334は、こうして平滑化処理を行ったCMYKデータをインク量補正ユニット340に出力する。
【0090】
(C−1−4)インク量補正ユニット:
説明を図5に戻す。インク量補正ユニット340は、色変換ユニット330から出力されたCMYKデータを入力し、かかるCMYKデータの階調値を補正することで、各ノズルから吐出されるインク量の補正を行うためのユニットである。インクの種類毎に用意されたインクヘッド211内のノズル列は、製造誤差に起因してその内径やピエゾ素子の変形度が異なることがあり、同じ階調値でインクを吐出したとしても、吐出されるインクの量がノズル列毎に異なることがある。そのため、印刷装置100の製造工程において、各ノズル列から吐出されるインクの量が予め検査され、その量の相違を解消するための補正データがEEPROM154に記録されている。
【0091】
インク量補正ユニット340は、EEPROM154に記録された補正データを読み込み、かかる補正データに基づいて、CMYK形式の各色の階調値を補正する。例えば、シアンのノズル列から吐出されるインクの量が、他の色のノズル列から吐出されるインクの量よりも多ければ、シアンの階調値が他の色の階調値よりも低くなるようにその階調値が補正されることなる。こうすることで、各ノズル列から吐出されるインクの量を均一化することができる。
【0092】
インク量補正ユニット340は、補正の精度を向上させるため、入力された8ビットのデータを内部で12ビットのデータに拡張した上で補正を行なう。つまり、通常256階調で表されるCMYKの階調値を4096階調まで拡張して補正を行う。12ビットへの拡張は、入力したCMYKデータを左に4ビット分だけビットシフトすることにより行うことができる。インク量補正ユニット340は、上述した補正を行うと、各色12ビットのCMYKデータを印刷縞抑制ユニット350に転送する。
【0093】
(C−1−5)印刷縞抑制ユニット:
印刷縞抑制ユニット350は、インク量補正ユニット340から各色12ビットのCMYKデータの転送を受けると、かかるデータに対して、印刷縞を抑制するための補正を行う。インクヘッド211内のノズル列は、一定のピッチで副走査方向に配列されているが、全てのノズルから垂直にインクが吐出されるとは限らず、ノズルの製造誤差によってインクが傾いて吐出される場合がある。このような場合に印刷媒体に画像を印刷すると、この傾きによって、主走査方向に印刷縞が現れる場合がある。そのため、印刷装置100の製造工程において、各ノズルの傾きが検査され、その傾きを解消するための補正データが予めEEPROM154に記録されている。
【0094】
印刷縞抑制ユニット350は、EEPROM154に記録された補正データを読み込み、かかる補正データに基づいてCMYK形式の各色の階調値を補正する。例えば、現在入力したCMYKデータが、印刷縞が発生するラスタラインに属するデータであれば、階調値を高めることで、インクの吐出数が多くなるように補正を行う。また、ノズルの傾きによってドットが重なってしまうラスタラインに属するCMYKデータであれば、階調値を低減することで、インクの吐出数が少なくなるように補正を行う。こうすることで、印刷縞の発生を抑制することができる。なお、この印刷縞抑制ユニット350においても、補正の精度を向上させるため、12ビットに拡張されたCMYKデータに対して補正を行う。印刷縞抑制ユニット350は、上述した補正を行うと、各色12ビットのCMYKデータをビット減縮ユニット360に転送する。
【0095】
なお、上述したインク量補正ユニット340および印刷縞抑制ユニット350は、それぞれEEPROM154から補正データを入力するものとしたが、補正データは、印刷装置100の電源投入時にEEPROM154からSDRAM152にロードして、SDRAM152から入力するものとしてもよい。こうすることにより、高速に補正を行うことができる。
【0096】
(C−1−6)ビット減縮ユニット:
ビット減縮ユニット360は、印刷縞抑制ユニット350から12ビットのCMYKデータを受信すると、データ量を削減するため、かかるデータを減縮して8ビットのデータに戻す。具体的には、12ビットのCMYKデータに対して4ビットのノイズを加算した後に、12ビット中の下位4ビットを切り落とすことで8ビットのデータを生成する。もちろん、12ビットのデータを4ビット分、右にビットシフトしてから上位4ビットを切り落とすものとしてもよい。上述のようにノイズを加算するものとすれば、単純に下位4ビットを切り落とす場合よりも、連続して同じデータが生成されることが抑制され、画質が低下してしまうことを抑制することができる。なお、本実施例では、上述した4ビットのノイズは、ビット減縮ユニット360が内部にノイズ発生回路を備えることで生成するものとする。ただし、色変換ユニット330から転送されてきたノイズデータを第3パスユニット390cから分岐して入力してもよい。ビット減縮ユニット360は、こうして8ビットのデータにCMYKデータを変換すると、かかるデータを透明インク後処理ユニット370に転送する。
【0097】
(C−1−7)透明インク後処理ユニット:
透明インク後処理ユニット370は、ビット減縮ユニット360から8ビットのCMYKデータを入力すると、かかるCMYKデータのうち、cr(透明インク)のデータについて、印刷媒体Sよりもはみ出す部分にインクが吐出されないように階調値を0とする補正を行う。画像処理ユニット155のレジスタには、印刷媒体Sのサイズ情報がCPU151によってセットされるため、かかるレジスタを参照することで、現在入力したCMYKデータのドット形成位置が印刷媒体Sの外に該当するか否かを判断することができる。
【0098】
印刷装置100は、いわゆる縁なし印刷時には、印刷媒体Sよりも大きな印刷面に対してインクを吐出し、余分なインクを印刷媒体Sの外に捨てることで印刷媒体Sの全面に亘って印刷を行うが、透明インクは、顔料(あるいは染料)を含まない分、他のインクに比べて樹脂成分が多く含まれており、印刷媒体外にインクを捨てると、廃棄されたインクを吸収するための廃インク吸収体(スポンジ等)の表面に樹脂が固着して他のインクの吸収が妨げられるおそれがある。そのため、透明インク後処理ユニット370により、印刷媒体からはみ出す印刷領域について透明インクの階調値をゼロとすれば、このような現象を抑制することが可能になる。
【0099】
(C−1−8)ブロック内平滑化ユニット:
ブロック内平滑化ユニット380は、透明インク後処理ユニット370から、隣接する2画素分のCMYKデータを入力し、更に、第5パスユニット390eを介して色変換ユニット330から出力された2ビットの標準エッジデータと1ビットのノイズデータとを入力する。そして、色変換ユニット330から出力された2ビットの標準エッジデータと1ビットのノイズデータとを利用して、透明インク後処理ユニット370から入力した2画素の階調値の平滑化を行う。平滑化は、2画素間の標準エッジデータが設定値(例えば0もしくは1)以下となる場合に、2画素のCMYKデータを加算し、更に、1ビットのノイズデータの値をこれに加算して、その加算値を2で除算することで行う。つまり、新たな階調値は、2画素とも同じ値となる。画素間でエッジの強度が低い場合には、後述する2×2モード時の順序値マトリクスに基づく1ブロック内のドットの配置の結果、印刷媒体上にドットが隣接して形成されてしまう場合があり、画質が低下するおそれがある。そのため、ハーフトーン処理を行う前に予め、エッジの強度の低い画素同士の階調値を平均化して同じ値とすることで、ドットが隣接して形成されないようにしている。この結果、画質を向上させることができる。なお、本実施例では、ブロック内平滑化ユニット380は、色変換ユニット330から出力されて、パスユニット群を転送されてきた標準エッジデータとノイズデータとを利用するものとしたため、ブロック内平滑化ユニット380内でこれらのデータを生成する必要がなく、重複した処理を省略することができる。
【0100】
以上で色変換回路300の詳細な構成について説明した。かかる色変換回路300によれば、ハーフトーン回路400に対して、360dpi×360dpi相当の解像度を有する各色8ビットのCMYKデータと、720dpi×720dpi相当の解像度を有する5ビットの白黒エッジデータとが出力されることになる。
【0101】
C−2.ハーフトーン回路:
図10は、ハーフトーン回路400とヘッド駆動用データ変換回路500の詳細な構成を示すブロック図である。以下では、まず、ハーフトーン回路400について説明する。ハーフトーン回路400は、0から255までの階調値で色の濃淡が表現されたCMYKデータを、印刷媒体上に形成すべきドットの粗密を表すドット形成用データに変換する回路である。印刷装置100は、基本的に、印刷媒体Sに対してインクを打つか打たないかのいずれかの状態をとり得るにすぎず、インクの吐出により形成されるドットの分布によって色の濃淡を表す必要があるからである。ハーフトーン処理の一般的な手法としては、誤差拡散法や組織的ディザ法などの周知の手法が存在するが、本実施例では組織的ディザ法を発展させた独自の手法によりハーフトーン処理を行う。
【0102】
<ハーフトーン処理の概念>
ここで、本実施例のハーフトーン処理の概念を従来の組織的ディザ法と比較して説明する。
図11は、従来の組織的ディザ法によるハーフトーン処理の概要を示す説明図である。従来の組織的ディザ法では、図の上部に示すように、所定の大きさ(ここでは128×64とする)のディザマトリクスに対して、1から255までの閾値が万遍なく分散されて配置されている。かかるディザマトリクスを用いてハーフトーン処理を行うには、図の下部に示すように、CMYK画像データを構成する各画素の階調値と、ディザマトリクス上でその画素に対応する位置に存在する閾値とを比較し、その閾値を超える階調値である場合には、その位置にドットを形成し、閾値を超えない場合には、その位置にはドットを形成しないと判定する。こうすることで、256階調のCMYKデータを、ドットの有無を表すドット形成用データに変換することができる。
【0103】
本実施例では、図11の上部に示した128画素×64画素といった大きなディザマトリクスから閾値を順次取り出して、ハーフトーン処理を行なうのではない。例えば、図中の枠線RG内に示した閾値群のように、128画素×64画素のディザマトリクスから、その左上を原点として4×2を単位とする閾値群を取り出し、その位置に応じて予め各閾値群にブロック番号と呼ぶ一意の番号を付与しておく。そして、ブロック番号毎に、4×2の閾値群を用いて、画素の階調値をドットの有無を表すデータに変換する。つまり、本実施例では、4×2の画素を単位としてハーフトーン処理を行なうのである。この点について、以下説明する。
【0104】
図11に示した大域的なディザマトリクスから取り出された4×2の大きさの閾値群は全て異なる閾値の組み合わせになっている。従って、4×2の画素群の階調値が全て同じであると仮定して、その画素群の階調値が0から255まで段階的に上昇していくと、4×2の閾値群に含まれる8つの閾値に応じたところで、ドットのオン・オフが変化することになる。
【0105】
図12は、4×2の画素群についてドット数が変化する様子を示す説明図である。図12(a)に示した閾値群を例に取ると、図12(b)に示すように、階調値が1,42,58,109,170,177,212,255の8カ所で、それぞれ発生するドットの数が0から1個、1個から2個・・・7個から8個に変化する。もとより、閾値群が異なれば、発生するドットの個数が変化する階調値は異なる。このため、同じ階調値を有する画素が画像データ内に連続して続いても、異なる閾値群を順次適用していれば、図11の大きなディザマトリクスを用いるのと同じ結果が得られることになる。
【0106】
図12(b)に示したドットが増加する階調値の変化点は、閾値群毎に異なるので、予め閾値群毎に、階調値と発生するドット数との関係を求めて対応表にしておくことができる。かかる対応表が準備されていれば、画像データ中のある画素の階調値が与えられたとき、その画素に対して適用すべき閾値群をブロック番号を用いて特定し、そのブロック番号とその画素の階調値とを用いて対応表を参照すれば、発生すべきドットの個数を取得することができる。また、適用する閾値群が決まれば、その閾値群内の閾値の小さいところから順にドットを形成すればよいから、ドット形成の順序も必然的に定まることになる。
【0107】
図13は、階調値と、発生するドットの個数と、その配置の関係を示す説明図である。例えば、ある画素の階調値が127だとすると、上述した対応表(後述する量子化データとドット個数テーブルに相当する)を参照することにより、その画素に適用させる閾値群のブロック番号と階調値127とから、形成すべきドットの個数(図中の例では4個)を得ることができる。他方、ドットを形成すべき順番を定義した順序値マトリクスOMもブロック番号毎に定まる。そこで、この二つを合わせることにより、図13の下欄右端に示したように、4個のドットの配置を決定することができる。なお、図中の順序値マトリクスOMは、上述したディザマトリクスを4×2のブロック毎に分割して、各ブロック毎に一意のブロック番号を付与し、そのブロック内の閾値の小さい順からドットの生成順序を表す順序値を与えることにより生成したものである。
【0108】
以上の説明によれば、本実施例のハーフトーン処理では、画像データ中のある画素に適用する階調値の情報を、ハーフトーン処理に利用する閾値群が有するドット発生の変化点の情報と、どの順序でドットが発生するかという情報とに分けてコード化し、その後これをデコードして、ドットの発生位置を決定するという処理を行なっているということができる。
【0109】
ここまでは、印刷媒体上に形成されるドットの大きさは1種類であるものとして説明した。図11、図12、図13は、単一種類のドットのオン・オフを決める場合についての例示に過ぎない。実際の印刷装置では、大中小ドット、あるいは濃淡ドットなど、複数種類のドットを同一の画素に形成可能なので、ドットのオン・オフの決定は、もう少し複雑である。そこで、次にこの点について説明する。
【0110】
図14は、本実施例の印刷装置100のように大中小のドットを形成可能な場合に、上記の考え方を拡張する手法を示している。この場合、階調値に応じて形成するドットの組み合わせを予め決定するため、まず、図14(a)に示すように、画像データの階調値に対して、各階調値で、小ドット、中ドット、大ドットを形成する密度のデータに変換する。図14(a)の関係は、例えば、印刷装置毎、あるいは、印刷の品質や用紙の種類などに応じて予め設定されている。図14(a)に示したグラフによれば、ある階調値が与えられると、小ドットの密度データ、中ドットの密度データ、大ドットの密度データが得られることになる。
【0111】
いま、図14(b)に示した4×2の画素群に対して階調値127が与えられ、図14(a)に示した関係から、小ドット密度データが32、中ドット密度データが90、大ドット密度データが2、と得られたとする。そうすると、大中小の各ドットのオン・オフは、大中小のドット密度データを、この順に、4×2の閾値群内の閾値と比較して定めることになる。
【0112】
まず、大ドット密度データ2と、各閾値とを比較すると、図14(c)に示したように、閾値「1」の画素について大ドットがオンになる。この閾値「1」以外の画素で、オンになるところはない。そこで、次に中ドットについて判定する。中ドットについて判定する場合には、中ドット密度データに大ドット密度データを加えて(90+2=92)、これと閾値群との比較を行なう。この結果、図14(d)に示したように、閾値が「58」と「42」の画素において、中ドットがオンになる。更に、小ドットについて判定するが、この場合には、小ドット密度データに中および大ドット密度データを加え(32+90+2=124)、これと閾値群との比較を行なう。この結果、図14(e)に示したように、閾値「109」の画素において、小ドットがオンとなる。
【0113】
上述した手法によれば、大中小ドットが形成可能な場合でも、ある階調値が与えられ、適用する閾値群が決まれば、大中小ドットの形成態様(各ドットの形成数およびその配置)は、一意に決定される。そこで、図12を用いて説明したのと全く同じように、予め用意した大域的なディザマトリクスから4×2の閾値群を取り出して、これにそれぞれブロック番号を付け、対応する画素群の階調値が最小値から最大値まで(この実施例では、0から255まで)変化させた場合の大中小のドットの形成態様の移り変わりを調べて、対応表として準備しておくことができる。この関係を調べて大中小ドットの場合の対応表を示したのが、図15および図16である。
【0114】
図15は、ブロック番号N1からN5までの、5つの閾値群について、画像データの階調値が0から255まで変化する際に、大中小ドットの形成態様がどのように変化していくかを表すグラフである。横軸には、階調値を示し、縦軸には、その階調値に対応する大中小ドットの形成態様をコード化した量子化データの値を示している。図15では、理解の便を図るため、ブロック番号毎に、縦軸をずらして量子化データの遷移を描いてある。図示するように、ブロック番号毎にドットの形成態様の遷移状態が異なるのは、閾値群内の閾値の組み合わせが異なれば、つまりブロック番号が異なれば、図12を用いて説明したのと同様に、大中小のドットの形成態様が変化するからである。
【0115】
図16は、図15に示したグラフを対応表として表した説明図である。以下では、この対応表を量子化テーブルQTという。この量子化テーブルQTによれば、ハーフトーン処理を行なうとする画素の階調値が与えられた場合に、その画素に適用する閾値群をブロック番号によって特定し、この量子化テーブルQTを参照すれば、そのブロック番号と階調値とから、直ちにドットの形成態様をコード化した量子化データを取得することができる。本実施例では、こうして、画素の階調値を量子化データに変換することを、エンコードと呼ぶ。なお、図16の量子化テーブルQTで、その最大値が必ずしも同一となっていないのは、閾値の組み合わせによっては、大中小ドットの組み合わせの変化が生じる回数が異なるからである。しかし、この最大回数が32を越えることはなく、図16に示した量子化データは、少なくとも5ビットあれば表現することができる。なお、本実施例では、ドットの形成態様をコード化した値を「量子化データ」と表現したが、これは、量子化テーブルQTを用いることにより、画素の階調値が見かけ上、より少ない値で表現されるために、「量子化」という言葉を用いたためである。
【0116】
次に、量子化テーブルQTを用いてエンコードされた量子化データをデコードする処理について説明する。ドットの個数データから4×2のピクセルにドットを配置するデコードの仕組みについては、単一種類のドットが形成可能な場合について、図13を用いて既に簡単に説明した。本実施例のハーフトーン処理では、実際には、大中小の3種類の大きさのインク滴を印刷媒体上に吐出して大中小ドットを形成しているが、デコード処理の仕組みは、図13を用いて説明した場合と異ならない。すなわち、まず、上述したエンコード処理の結果得られた量子化データから、第1ドット個数テーブルDT1(図22)と第2ドット個数テーブルDT2(図23)とを参照して目的の領域に形成する大中小ドットの各個数を得る。そして、ブロック番号に対応した順序値マトリクスを参照することにより、その個数に応じたドットの配置を定める。そして、この順序通りに必要な数の大中小ドットを配置すればハーフトーン処理が完了する。
【0117】
以上で説明したように、本実施例のハーフトーン処理では、ある画素の階調値が与えられたとき、その画素が属しているブロック番号とその階調値とから量子化テーブルQTが参照され、その階調値が量子化データにエンコードされる。そして、この量子化データを、図22や図23のドット個数テーブルと、順序値マトリクスとを用いることでデコードすることにより、ハーフトーン処理が完了する。このように、本実施例では、量子化テーブルや個数テーブルなど、各種テーブルを参照するだけでハーフトーン処理を行うことができるので、従来の組織的ディザ法のように、階調値と閾値の大小を比較する条件分岐処理が不要となり、処理スピードを向上させることができる。また、本実施例のハーフトーン処理では、組織的ディザ法をその技術のベースとしているため、誤差拡散法に特有な疑似輪郭ノイズなどが発生することがなく、非常に高画質な印刷を行うことが可能になる。
【0118】
<ハーフトーン回路の詳細>
ここで、説明を図10に戻し、ハーフトーン回路400を構成する各ユニットの詳細について説明する。図10に示すように、ハーフトーン回路400は、図5に示した色変換回路300内のブロック内平滑化ユニット380に接続されておりCMYKデータのエンコードを行うエンコーダ410と、エンコーダ410および第7パスユニット390gに接続され、これらから出力されたデータを選択するデータセレクタ420と、データセレクタ420と接続され、データセレクタ420から出力されたデータをエンコードデータバッファEBに対して蓄積するEB制御ユニット440と、エンコードデータバッファEBと接続され、エンコードデータバッファEBに蓄積されたエンコードデータのデコードを行うデコーダ430とを備えている。
【0119】
データセレクタ420の前段に接続された第7パスユニット390gは、色変換回路300中の第6パスユニット390fに直列に接続されている。第7パスユニット390gに対応するメインユニットは、エンコーダ410である。そのため、例えば、第7パスユニット390gに白黒エッジデータが到達した場合には、その白黒エッジデータのエンコード元となった4つの画素を平均化したCMYKデータがエンコーダ410に到達する。そして、エンコーダ410から出力されるデータと、第7パスユニット390gから出力されるデータとが、同時にデータセレクタ420に入力されることになる。
【0120】
(C−2−1)エンコーダ:
エンコーダ410は、色変換回路300から入力した各色8ビットのCMYKデータを、5ビットの量子化データにエンコードするユニットである。図10に示すように、エンコーダ410は、ブロック番号判別回路411と、量子化回路412とを備えている。
【0121】
(C−2−1−1)ブロック番号判別回路:
ブロック番号判別回路411は、色変換回路300から入力したCMYKデータによって表される画素が、どのブロック番号に属するかを判別する回路である。ブロック番号の判別方法は、画像を印刷する際の出力解像度のモードによって異なる。かかるモードとしては、概ね以下に示す7種類のモードがある。本実施例では、色変換回路300からは、360dpi×360dpiのCMYKデータを入力し、これを720dpi×720dpiの解像度で印刷を行うため、これらのモードうち、2×2モードに基づくブロック番号の判別を行う。なお、画像処理ユニット155の所定のレジスタには、印刷開始に先立ち、CPU151によって出力解像度のモードが設定されているため、かかるレジスタを参照することにより、現在のモードを判別することができる。
【0122】
モード名 入力解像度(dpi) 出力解像度(dpi)
1×1モード・・・360×360 360×360
1×2モード・・・360×360 360×720
2×1モード・・・360×360 720×360
2×2モード・・・360×360 720×720
2×4モード・・・360×360 720×1440
4×2モード・・・360×360 1440×720
4×4モード・・・360×360 1440×1440
【0123】
図17は、2×2モードにおけるブロック番号の判別方法を示す説明図である。2×2モードは、エンコーダ410が入力したCMYK画像データの解像度(360dpi×360dpi)を縦横2倍の解像度(720dpi×720dpi)で出力するモードである。つまり、図の下部に示した順序値マトリクスOMにおいて、1つのブロック番号が割り当てられている4×2の単位ブロックの大きさは、2×2モードで出力しようとするCMYK画像データ内では、その2分の1である2画素×1画素の大きさに相当する。従って、図示するように、2×2モードの場合には、エンコーダ410は、CMYK画像データを構成する画素のうち、横方向に隣接する2つの画素が同一のブロック番号であると判別する。
【0124】
かかる判別方法によれば、エンコーダ410は、例えば、同図に示すように、CMYK画像データの左上隅に位置する2つの画素は、ブロック番号「1」に該当すると判別し、ブロック番号「1」が設定された2つの画素の右隣りの2つの画素については、ブロック番号「2」に該当すると判別する。さらに、ブロック番号「1」が設定された2つの画素の下側に隣接する2つの画素については、例えば、ブロック番号「33」に該当すると判別する。このようにして、エンコーダ410は、他の画素についても同様に、隣接する2つの画素を1つの単位としてそれぞれブロック番号を判別する。
【0125】
図18は、ブロック番号の実際の判別例を示す説明図である。コンピュータ900やスキャナ110から入力する画像データのサイズは、順序値マトリクスOMの生成元となった128画素×64画素のディザマトリクス(図11参照)のサイズよりも大きいことが一般的である。そのため、このような場合には、図18のように、ディザマトリクスのサイズに相当する順序値マトリクスOMの集合を繰り返して適用することにより、ブロック番号の判別を行う。例えば、エンコーダ410が、横方向が640画素のCMYK画像データを入力したとすると、まず、最も上部に位置するラインに対して2画素ずつ1から32までのブロック番号を計10回(=640/(32*2))繰り返して判別し、続いて、2本目のラインに対して2画素ずつ33から64までのブロック番号を計10回繰り返して判別することになる。
【0126】
(C−2−1−2)量子化回路:
説明を図10に戻す。量子化回路412は、ブロック番号判別回路411によって、ブロック番号を判別した画素から順に、図16に示した量子化テーブルQTを参照して、そのCMYKデータを量子化データにエンコードする回路である。この量子化テーブルQTは、図4に示したようにSDRAM152に記憶されている。
【0127】
図16に示したように、量子化テーブルQTには、CMYKデータの階調値(最小0〜最大255)と、ブロック番号(最小1〜最大1024)とに応じて、量子化データが0から31までの値をとるように設定されている。量子化回路412は、エンコードを行おうとする画素のCMYKデータとブロック番号判別回路411とからこの量子化テーブルQTを参照してその画素に対応する1つの量子化データを取得する。
【0128】
図15に示したように、量子化データは、階調値が増加するほど大きくなるように設定されており、ブロック番号に応じてその増加度合いが異なっている。図15中のブロック番号N1〜N5は、それぞれ異なるブロック番号を表しており、これらのブロック番号N1〜N5に対応する5つの画素についてエンコードした結果を示している。なお、図15では、各ブロック番号N1〜N5の折れ線が重なって判別し難くなることを避けるために、量子化データの原点位置をそれぞれ縦軸方向に少しずつずらして表示している。
【0129】
図中、太い実線で示したブロック番号N1について説明する。このブロック番号N1では、画素の階調値が「0」〜「4」の範囲では、量子化データは、「0」であるが、画素の階調値が「5」〜「20」の範囲では、量子化データは、「1」に増加する。また、画素の階調値が「21」〜「42」の範囲では、量子化データは「2」に増加する。また、画素の階調値が「43」〜「69」の範囲では、量子化データは「3」に増加する。このように、画素の階調値が増加するに従って、量子化データも段階的に増加する。そして、最終的には、量子化データは「15」まで増加する。すなわち、ブロック番号N1については、0から255までの値をとる画素の階調値を、0から15までの16段階に量子化していることになる。
【0130】
同様に、図中に太い破線で示したブロック番号N2や、太い一点鎖線で示したブロック番号N3については、0から255までの値をとる画素の階調値を、0から17までの18段階に量子化している。更に、細い実線で示したブロック番号N4および細い一点鎖線で示したブロック番号N5については、画素の階調値を0から20までの21段階に量子化していることになる。量子化データの最大段数は、ブロック番号に応じて概ね15〜22程度となっている。このように、量子化テーブルQTには、ブロック番号に応じて固有の段数で量子化データが定義されている。また、量子化データの増加度合いもブロック番号に応じて固有に定義されている。そのため、同じ階調値を量子化した場合でも、その画素が属するブロック番号が異なれば、異なる量子化データに変換されることになる
【0131】
以上で説明したように、量子化回路412は、画素のCMYK階調値を量子化データに変換することで、通常、256階調を有するCMYKデータの値を、最大で32段の量子化データに変換する。こうすることにより、8ビットのデータ量が必要であったCMYKデータを、ドットの発生に必要な情報を表す5ビットのデータに変換することができ、データ容量を削減することができる。
【0132】
最終的に、エンコーダ410は、量子化回路412によってエンコードした量子化データを、1画素毎、データセレクタ420に対して出力する。なお、この量子化データは、CMYKの各色毎に出力される。
【0133】
(C−2−2)データセレクタ:
図19は、図10に示したデータセレクタ420の詳細な構成を示す説明図である。データセレクタ420は、印刷装置100が備えるインクの種類に対応した8つのセレクタ素子411a〜411hを備えている。各セレクタ素子411a〜411hは、そのセレクタ素子に対応する色の5ビットの量子化データをエンコーダ410から入力するとともに、第7パスユニット390gから5ビットの白黒エッジデータを入力する。また、各セレクタ素子411a〜411hは、セレクト信号として白黒エッジデータの最上位ビット、すなわち、白黒エッジ判定フラグの内容を表すデータを入力する。
【0134】
各セレクタ素子411a〜411hは、エンコーダ410と第7パスユニット390gとからそれぞれデータを入力すると、セレクト信号として入力された白黒エッジ判定フラグの値をチェックする。その結果、白黒エッジ判定フラグが「1」であれば、白黒エッジデータを選択して出力し、「0」であれば、量子化データを選択して出力する。各セレクタ素子411a〜411hの後段には、それぞれビット付加器412a〜412hが接続されている。ビット付加器412a〜412hは、セレクタ素子411a〜411hから出力されたデータの最上位ビットに、白黒エッジ判定フラグの値を付加する。そのため、最終的にデータセレクタ420から出力されるデータは、量子化データの場合にも白黒エッジデータの場合にも、6ビットのデータとなる。データセレクタ420は、以上の処理によって選択したいずれかのデータを、EB制御ユニット440に出力する。なお、データセレクタ420への入力時の5ビットの白黒エッジデータには、色変換回路300内の白黒エッジ処理ユニット320によって既に最上位ビットに白黒エッジ判定フラグの値が付加されているため、6ビット化された白黒エッジデータの上位2ビットには、白黒エッジ判定フラグの値が重複して記録されることになる。しかし、このように同じ内容のデータが重複して記録されたとしても、量子化データのデータ長と白黒エッジデータのデータ長とを揃えることができるため、これらのデータを記憶するエンコードデータバッファEBに対するアドレス管理が容易となり、ハードウェアの複雑化を抑制し、処理スピードを向上させることができる。
【0135】
(C−2−3)EB制御ユニット:
説明を図10に戻す。EB制御ユニット440は、データセレクタ420から6ビットの白黒エッジデータまたは6ビットの量子化データを択一的に入力すると、これらのデータをエンコードデータバッファEBに格納する。なお、以下の説明では、量子化データと白黒エッジデータとをまとめて「エンコードデータ」と呼ぶ場合がある。
【0136】
図20は、EB制御ユニット440が、エンコードデータバッファEBにエンコードデータを格納するまでの過程を概念的に示す説明図である。図示するように、データセレクタ420は、エンコーダ410から量子化データを入力するとともに、第7パスユニット390gから白黒エッジデータを入力する。そして、白黒エッジ判定フラグの値を用いて、これらのエンコードデータのうち、ダミーデータ(000000)を除く白黒エッジデータを量子化データに優先して出力する。そして、EB制御ユニット440は、データセレクタ420から出力されたエンコードデータを順にエンコードデータバッファEBに格納する。エンコードデータバッファEBに格納されたエンコードデータは、図10に示したデコーダ430によって順次読み出されることになる。
【0137】
(C−2−4)デコーダ:
図21は、図10に示したデコーダ430の詳細な構成を示す説明図である。デコーダ430は、白黒エッジデータと量子化データとをそれぞれ個別にデコードし、ドット形成用データを生成するためのユニットである。図示するように、デコーダ430は、エンコードデータバッファEBに接続され、エンコードデータを入力するデータ判定回路431と、データ判定回路431からの出力を受けて白黒エッジデータをデコードする白黒エッジデータデコード回路432と、データ判定回路431からの出力を受けて量子化データをデコードする量子化データデコード回路433とを備えている。
【0138】
(C−2−4−1)データ判定回路:
データ判定回路431は、エンコードデータバッファEBから順次エンコードデータを読み出し、読み出したエンコードデータのブロック番号を判別する。エンコードデータバッファEBには、図17あるいは図18に示したブロック番号順にエンコードデータが格納されているから、その格納順にエンコードデータを読み出せば、自ずとそのエンコードデータに対応するブロック番号を判別することができる。つまり、出力解像度が2×2モードの場合には、隣接する2つの画素に同一のブロック番号が付されているから、1つ目と2つ目に読み出したエンコードデータのブロック番号は、「1」となり、3つ目と4つ目に読み出したエンコードデータのブロック番号は「2」になる。また、例えば、横方向が640画素のCMYK画像データについてエンコードデータが生成されている場合には、最初に、2画素ずつ1から32までのブロック番号が計10回(=640/(32*2))繰り返して判別され、続いて、2画素ずつ33から64のブロック番号が計10回繰り返して判別されることになる。画像処理ユニット155のレジスタには、CPU151によって出力解像度のモードや、画像のサイズに関する情報がセットされているため、データ判定回路431は、かかるレジスタを参照することにより、出力解像度のモードや画像のサイズに応じたブロック番号の判別を行うことができる。
【0139】
データ判定回路431は、ブロック番号の判別が終了すると、読み出した6ビットのエンコードデータの最上位ビットをチェックする。最上位ビットには、データセレクタ420によって白黒エッジデータであるか否かを表す白黒エッジ判定フラグの値が付加されている。そのため、エンコードデータの最上位ビットが「0」であれば、そのエンコードデータが量子化データであると判別し、かかる最上位ビットを切り捨てた上で、量子化データデコード回路433に5ビットの量子化データとブロック番号の値とを転送する。一方、最上位ビットが「1」であれば、読み出したエンコードデータが白黒エッジデータであると判別し、白黒エッジ判定フラグの値が記録された上位2ビットを切り捨てた上で、白黒エッジデータデコード回路432に4ビットの白黒エッジデータとブロック番号の値とを転送する。
【0140】
(C−2−4−2)量子化データデコード回路:
量子化データデコード回路433は、データ判定回路431から転送された5ビットの量子化データをデコードし、ドット形成用データを生成する回路である。ドット形成用データは、形成しようとするドットのサイズを「11」「10」「01」「00」の4値によって表し、これらの値の分布によって印刷画像を表したデータである。ドット形成用データを生成するには、まず、SDRAM152に記憶された第1ドット個数テーブルDT1および第2ドット個数テーブルDT2を参照して、量子化データを大中小の各サイズのドットの個数を表すドット個数データに変換し、更に、このドット個数データとSDRAM152に記憶された順序値マトリクスOMとに基づきドットの配置を行う。以下、かかる処理の詳細について説明する。
【0141】
<量子化データのドット個数データへの変換>
図22は、第1ドット個数テーブルDT1の一例を示す説明図である。図示するように、この第1ドット個数テーブルDT1には、ブロック番号と量子化データとに応じて第1ドット個数データが定義されている。第1ドット個数データは、その量子化データが表す画素に、どの程度の数のドットを形成するかを表すデータである。なお、この第1ドット個数データは、ドットの数を正確に表しているわけではなく、後述するように、大中小の各ドットの数がエンコードされた値となっている。第1ドット個数データは、0から164までの値をとる。すなわち、この第1ドット個数テーブルDT1によれば、5ビットの量子化データが8ビットの第1ドット個数データに変換されることになる。
【0142】
ここで、第1ドット個数データが164までの値に収まる理由について説明すると、1つのブロックを構成する8つの画素についてみれば、各画素について、「大ドットを形成する」、「中ドットを形成する」、「小ドットを形成する」、「ドットを形成しない」の4つの状態を取り得る。従って、ドット個数の組合せは、これら4つの状態を、重複を許容して8回選択した時の組合せの数に等しくなるから、(=4+8−1)によって求めることができる。このことから、最大でも165通り(0〜164)の組合せしか出現しないことになる。なお、は、n個の物の中から重複を許してr回選択するときの重複組合せ数を求める演算子である。また、は、n個の物の中から重複を許さずにr回選択するときの組合せ数を求める演算子である。
【0143】
量子化データデコード回路433は、図22に示した第1ドット個数テーブルDT1を参照することにより、データ判定回路431から入力した量子化データとブロック番号とに対応する第1ドット個数データを取得する。例えば、入力した量子化データが「0」であり、そのブロック番号が「1」であれば、図示するように、第1ドット個数データは、「0」となる。また、入力した量子化データの値が「3」であり、そのブロック番号が「2」であれば、第1ドット個数データは、「4」となる。
【0144】
次に、量子化データデコード回路433は、第2ドット個数テーブルDT2を参照して、第1ドット個数データを大中小の各サイズのドットの個数を表す第2ドット個数データに変換する。
【0145】
図23は、第2ドット個数テーブルDT2の一例を説明したものである。図示するように、この第2ドット個数テーブルDT2には、第1ドット個数データと、各サイズのドットの個数を表す第2ドット個数データとが対応づけて記憶されている。なお、図の右側の表は、第2ドット個数データが表す各サイズのドットの個数の内訳を詳細に示した参考図である。第1ドット個数データは、前述したように、0から164までのデータ、すなわち8ビットのデータであり、第2ドット個数データは、16ビットのデータとなっている。この16ビットのデータは、2ビットを1組としており、各組の値がドットのサイズを表している。
【0146】
図24は、第2ドット個数データの一例を示す説明図である。図中に示す第2ドット個数データは、「0001011010111111」であるが、これを2ビットずつ1組に区切ると、左から、「00」「01」「01」「10」「10」「11」「11」「11」となる。各組の2ビットの内容は、ドットのサイズを表しており、「11」が大ドット、「10」が中ドット、「01」が小ドット、「00」がドットなしを表す。すなわち、図示した第2ドット個数データは、大ドットを3つ、中ドットを2つ、小ドットを2つ形成することを表している。図示するように、この第2ドット個数データには、大きいドットを表すデータから順に右詰めで格納されている。
【0147】
ここで、説明を図23に戻す。図23に示した第2ドット個数テーブルDT2によれば、例えば、第1ドット個数データ「0」に対応する第2ドット個数データは、「0000000000000000」であり、「大ドット」、「中ドット」、「小ドット」のいずれも形成しないことを表わす。また、第1ドット個数データ「2」に対応する第2ドット個数データは、「0000000000000101」であり、「小ドット」のみを2個形成することを表す。また、第1ドット個数データ「160」に対応する第2ドット個数データは、「1010111111111111」であり、「大ドット」を6つ、「中ドット」を2つ形成することを表す。
【0148】
図23の下部には、この第2ドット個数データによって表されるドットサイズの遷移を示している。図示するように、形成されるドットのサイズは、第1ドット個数データが増加するにつれ、大きなドットの占める割合が大きくなる。つまり、第1ドット個数データは図22に示したように量子化データに比例して大きくなり、量子化データは図15に示したようにCMYKデータの階調値に比例して大きくなることから、CMYKの階調値が大きくなるにつれ、サイズの大きなドットが占める割合が徐々に多くなり、印刷媒体上に形成されるドットの密度が高くなることになる。
【0149】
<順序値マトリクスに基づくドットの配置>
図21の量子化データデコード回路433は、第1ドット個数データを第2ドット個数データに変換すると、SDRAM152に記憶された順序値マトリクスOMを参照して、第2ドット個数データとブロック番号とに基づき各サイズのドットを配置する。
【0150】
図25は、図13に示した順序値マトリクスOMの一部を拡大した図である。既に説明したように、順序値マトリクスOMには、4×2の単位ブロック内の各要素についてそれぞれドットが形成されるべき順番を表す順序値が予め設定されている。ドットの形成順は、ブロック毎にそれぞれ個別に設定されており、順序値は、8つの要素についてそれぞれ異なる値が設定されるため1から8の値が設定されている。かかる図を参照すれば、例えば、ブロック番号1に対応する順序値マトリクスOMには、8つの要素のうち、左上隅にある画素に対して順序値「1」が設定されているため、ブロック番号1では、画像の左上隅に1番最初にドットが形成されることになる。また、ブロック番号1では、8つの要素の中の右下隅の画素に順序値「2」が設定されているため、2番目のドットは、右下隅に形成されることになる。
【0151】
また、例えば、ブロック番号2に対応する順序値マトリクスOMにおいて、順序値「1」は、下段の左から2番目の要素に設定され、順序値「2」は、右下隅の要素に設定されている。また、ブロック番号3に対応する順序値マトリクスOMにおいて、順序値「1」は、上段の右から2番目の要素に設定され、順序値「2」は、左下隅の要素に設定されている。このように、ドットの形成順は、ブロック番号毎に異なる順序で設定されている。
【0152】
図26は、第2ドット個数データと順序値マトリクスOMとに基づき、8つの画素についてそれぞれドットを配置する手順を概念的に示す説明図である。ここでは、第2ドット個数データが、大ドットを3個、中ドットを2個、小ドットを2個、それぞれ形成すべきデータであり、適用する順序値マトリクスOMが、図25に示したブロック番号「1」に対応する順序値マトリクスOMであるものとする。
【0153】
量子化データデコード回路433は、図26に示すように、最初に、順序値マトリクスOMの順序値「1」に対応する画素に対して、第2ドット個数データの右端に位置する2ビットのデータを取得する。次に、順序値マトリクスOMの順序値「2」に対応する画素に対して、第2ドット個数データの右から2番目に位置する2ビットのデータを取得する。このように、順序値マトリクスOMの各順序値に対して、第2ドット個数データの右端から順番に2ビットのデータを適用していけば、図の中段に示すように、4画素×2画素の中間ドットデータが生成される。この中間ドットデータによって形成されるドットのイメージを「ドットイメージ」と称して図の下段に示した。
【0154】
このように、順序値マトリクスOMに設定された順序値に応じて、第2ドット個数データの右端から順に2ビットのデータを適用していけば、第2ドット個数データには右詰めで大きいドットから順にデータが記録されていることから、順序値マトリクスOM内には、大きいドットから順に配置されていくことになる。サイズが大きいドットは隣接して配置されると、その存在が目立ってしまうが、上述のように大きいドットから順にドットを配置すれば、大きなドットが優先的に分散されることになり、その存在を目立たなくすることができる。この結果、画質を向上させることが可能になる。
【0155】
<中間ドットデータの振り分けによる出力解像度の調整>
以上で説明した処理によれば、量子化データデコード回路433によって、1つの量子化データから、4×2画素の中間ドットデータが生成されることになる。1つの量子化データは、ハーフトーン回路400に入力されたCMYK画像データの1画素に対応することから、すべての量子化データについて中間ドットデータを生成すると、360dpi×360dpiの入力解像度が、1440dpi×720dpiの出力解像度となってしまい、2×2モードで目標とする720dpi×720dpiとは異なる出力解像度を有することになる。
【0156】
そこで、量子化データデコード回路433は、量子化データを中間ドットデータに変換しつつ、中間ドットデータ内の画素を分割して、適宜、振り分けを行い、出力解像度の調整を行う。具体的には、2×2モードでは、隣接した2つの画素は、同じブロック番号が割り当てられていることから、左側に位置する画素については、中間ドットデータ内の左側の2×2画素をドット形成用データに振り分け、右側に位置する画素については、中間ドットデータ内の右側の2×2画素をドット形成用データとして振り分ける。こうすることで、360dpi×360dpiの入力解像度が、720dpi×720dpiの出力解像度に正常に変換されることになる。
【0157】
図27は、2×2モードにおいて中間ドットデータの振り分けを行う具体例を示す説明図である。図示するように、量子化データデコード回路433は、同一のブロック番号に属する隣接した2つ画素の量子化データを入力すると、各量子化データを、それぞれ、第1ドット個数データおよび第2ドット個数データに変換し、順序値マトリクスに基づき中間ドットデータを生成する。中間ドットデータは、それぞれ8画素分生成されるため、1つ目の中間ドットデータのうち、左側に位置する4つの画素(図中「L」と示した部分)をドット形成用データとして採用する。そして、2つ目の中間ドットデータのうち、右側に位置する4つの画素(図中「R」と示した部分)を次のドット形成用データとして採用する。量子化データデコード回路433は、同一ブロック番号に属する中間ドットデータについて、このような処理を繰り返して行うことにより、図の下部に示すようなドット形成用データを生成することができる。
【0158】
以上で説明した処理によれば、量子化データデコード回路433は、エンコードデータバッファEBから入力した1つの量子化データに対して、それぞれ、2画素×2画素のドット形成用データを生成することになる。こうして生成したドット形成用データは、ドット形成用データバッファDBに順次格納する。以上で、量子化データデコード回路433によるデコード処理が完了する。
【0159】
なお、本実施例では、図26や図27に示したように、中間ドットデータを8画素分全て生成してから、その中間ドットデータを2分割して、いずれか一方をドット形成用データに振り分けるものとした。これに対して、次のような振り分けを行うこともできる。すなわち、図27に示すように、中間ドットデータの中で、ドット形成用データに振り分けられる部分は、「L」や「R」に示すように既に決まっているため、その振り分けられる部分に対応した順序値マトリクスOM内の順序値のみを用いれば、中間ドットデータ内の8画素全部について生成することなくドット形成用データを生成することができる。例えば、図27のドット形成用データの最も左上の「L」部分については、図26に示したブロック番号1の順序値マトリクスOMの左側半分の順序値1,6,8,4に該当するビットのみを第2ドット個数データから取得すれば、かかる部分のドット形成用データを生成することができる。また、その隣の「R」の部分については、図26に示したブロック番号1の順序値マトリクスOMの右側半分の順序値3,5,7,2に該当するビットのみを第2ドット個数データから取得すれば、かかる部分のドット形成用データを生成することができる。このような振り分け方法によれば、中間ドットデータを8画素分全部について生成する必要がないため、処理スピードを向上させることができるとともに、使用するメモリ容量を削減することができる。
【0160】
(C−2−4−3)白黒エッジデータデコード回路:
次に、図21に示した白黒エッジデータデコード回路432について説明する。白黒エッジデータデコード回路432は、白黒エッジデータについてハーフトーン処理を行うための回路である。白黒エッジデータデコード回路432は、データ判定回路431から4ビットの白黒エッジデータとともに、そのブロック番号の値を入力すると、図8に示した白黒エッジテーブルETを逆引きし、2×2の各画素について色を決定する。例えば、データ判定回路431から入力した白黒エッジデータが「1110」であれば、(A,B,C,D)=(1,1,1,0)となる。「1」は白を表し、「0」は、黒を表すから、色としては、(A,B,C,D)=(白,白,白,黒)となる。
【0161】
白黒エッジデータデコード回路432は、2×2画素内の白色の部分については、インクが吐出されない色であるため、2ビットで表されるドット形成用データは、ドットなしを表す「00」となる。つまり、白色部分については、ハーフトーン処理は実行せず、直接、ドット形成用データを「00」とする。こうすることにより、処理速度を向上させることができる。なお、透明インクを用いるときは、透明インクのドット形成用データのみを「11」とし、他のインクのドット形成用データを「00」とすることができる。
【0162】
一方、2×2画素内の黒色の部分については、(R,G,B)=(0,0,0)となり、RGB形式では発色しない色となるが、インクによる色表現時にはC,M,Y等の複数のインクを組み合わせて発色する色であるため、白黒エッジデータデコード回路432は、SDRAM152に記憶された黒データテーブルBTに基づき2×2画素内の黒の部分についてドット形成用データへ変換する処理を行う。白黒エッジは、白色の画素と黒色の画素とによって構成されるものであるため、このうち、実際にドットを形成する必要のある色は黒色のみである。従って、黒色だけについてハーフトーン処理を行う専用のテーブルを黒データテーブルBTとして予め用意しておくことで、白黒エッジ内の黒色の画素について、即座にドット形成用データへの変換を行うことができる。黒データテーブルBTは、黒色のみの画素によって構成された所定サイズの画像データを、色変換回路300およびハーフトーン回路400に入力してハーフトーン処理を施すことで予め作成することができる。かかる黒データテーブルBTの詳細な作成方法は後述する。なお、黒色は、Kインクのみによって表すことも可能であるが、印刷用紙の種類や、ノズルの傾き等に応じてその色調を微調整する場合があるため、本実施例では、C,M,Y等の複数のインクの組み合わせによって発色を行うものとする。
【0163】
図28は、黒データテーブルBTの一例を示す説明図である。図示するように、黒データテーブルBTは、順序値マトリクスOMと同じサイズである128×64のサイズを有しており、4×2の大きさを単位とする複数のブロックに全体が分割されている。各ブロックには、順序値マトリクスOMと同一のブロック番号が割り当てられている。黒データテーブルBTは、インクの色毎に計8色分のプレーンを有しており、各要素には、ドットのサイズを表す2ビットのドット形成用データが記録されている。白黒エッジデータデコード回路432は、この黒データテーブルBTを参照することにより、白黒エッジデータに含まれる黒の部分について、その位置に対応したドット形成用データを取得することができる。
【0164】
ここで、変換しようとする黒データが、黒データテーブルBTのどの位置に対応するかについては、入力した白黒エッジデータのブロック番号、データ判定回路431がその白黒エッジデータを入力した順番、2×2の白黒エッジデータ中における黒データの位置から判別することができる。例えば、変換対象の黒データを含む白黒エッジデータ(図28の下部参照)のブロック番号が「1」で、その白黒エッジデータがエンコードデータバッファEBから2番目に入力したデータであり、その黒データが、2×2の白黒エッジデータ中、右下(「D」の部分)に存在する場合について考えると、ブロック番号「1」のブロックのうち、最も右下に設定されているドット形成用データが取得されることになる。
【0165】
以上で説明した黒データテーブルBTを用いれば、白黒エッジデータデコード回路432は、黒データをCMYK形式や量子化データ等に変換することなく、ダイレクトにドット形成用データに変換することが可能になり、処理速度を向上させることができる。また、720dpi×720dpiの解像度を有する白黒エッジデータを、720dpi×720dpiのドット形成用データに変換することができるため、入力解像度が360dpi×360dpiの量子化データデコード回路433よりも、再現性よくハーフトーン処理を行うことができる。なお、本実施例では、黒データテーブルBTを用いることによって黒データをダイレクトにドット形成用データに変換するものとしたが、黒データテーブルBTを用いることなく、黒データを一旦、RGBデータからCMYKデータに変換した上で量子化し、更に、第1ドット個数データ、第2ドット個数データに変換して順序値マトリクスOMに基づきドットを配置することによっても、ドット形成用データに変換することができる。
【0166】
白黒エッジデータデコード回路432は、上述した処理によって、白黒エッジデータを、4画素分のドット形成用データに変換すると、生成したドット形成用データを、ドット形成用データバッファDBに順次格納する。そうすると、ドット形成用データバッファDBには、量子化データデコード回路433と白黒エッジデータデコード回路432とから出力された720dpi×720dpiの解像度を有する2×2画素のドット形成データが順次蓄積されることになる。つまり、この時点で、文字等を表す画像データと背景等を表す画像データが合成されて、一つの出力画像が構成されることになる。デコーダ430(図21)は、ドット形成用データの蓄積が完了すれば、ヘッド駆動用データ変換回路500に対して、ドット形成用データの蓄積が完了したことを示すレディ信号を出力する。
【0167】
なお、デコーダ430は、ドット形成用データバッファDBに対して、インクヘッド211が1回の主走査で印刷可能なだけのドット形成用データを最終的に蓄積するものとする。つまり、ノズルピッチ間に位置し、1回の主走査で印刷されない部分のドット形成用データを間引いた上で、ドット形成用データバッファDBへの蓄積を行う。このような間引き処理は、デコーダ430が量子化データや白黒エッジデータのデコードを行う際に、実際にインクを吐出するラスタラインに該当するデータのみをデコードすることによって行うものとすることができる。具体的には、例えば、量子化データのデコード時には、順序値マトリクス内の必要な順序値(例えば、図26に示した順序値マトリクスの順序値1,6,3,5)に対してのみ第2ドット個数データからドットデータを取得し、白黒エッジデータのデコード時には、白黒エッジデータ内の必要な部分(例えば、図28の下部に示した「A」と「B」の部分)のみに対して黒データテーブルBTからドットデータを取得することにより行うことができる。従来の誤差拡散法では、着目画素の階調値の誤差を周囲の画素の階調値に徐々に分散させる処理を行う必要があるため、必要なラスタラインに属するドット形成用データのみを生成することは困難であるが、本実施例のハーフトーン処理では、上述したような処理により、実際にインクを吐出するラスタライン上のドット形成用データのみを容易に生成することができる。
【0168】
C−3.ヘッド駆動用データ変換回路:
次に、図10に示したヘッド駆動用データ変換回路500について説明する。ヘッド駆動用データ変換回路500は、ドット形成用データバッファDBに蓄積されたドット形成用データを、インクヘッドを駆動するためのヘッド駆動用データに変換する回路である。図示するようにヘッド駆動用データ変換回路500は、ドット形成用データバッファDBに接続されたデータ回転ユニット510と、データ回転ユニット510に接続されたHB制御ユニット520とを備えている。
【0169】
(C−3−1)データ回転ユニット:
データ回転ユニット510は、ハーフトーン回路400のデコーダ430からレディ信号を受信すると、ドット形成用データバッファDBからデータ形成用データを読み出し、ヘッド駆動用データへの変換をおこなう。かかる変換処理が完了するまでは、ビジー信号をハーフトーン回路のデコーダ430に送信する。デコーダ430は、ビジー信号が停止されるまで、各種デコード処理を停止する。こうすることで、ドット形成用データバッファDBがオーバーフローしてしまうことを防止することができる。
【0170】
図29は、データ回転ユニット510によるデータの並べ直しの概念を示す説明図である。ドット形成用データバッファDBには、図の上部に示すように、間引き処理済みのドット形成用データが主走査方向に整列して格納されているが、インクヘッド211には1色につき複数のノズルが副走査方向に設けられており、そのノズルの数だけラスタラインが同時に印刷される。そこで、データ回転ユニット510は、ノズルの上部から順にデータが割り当てられるように、ドット形成用データを縦方向に読み出す。すると、図の下部に示すように、データが並べ直され、ヘッド駆動用データに変換されることになる。
【0171】
(C−3−2)HB制御ユニット:
図10のHB制御ユニット520は、ヘッド駆動用データバッファHBへのデータの出力を制御するユニットである。HB制御ユニット520は、データ回転ユニット510からヘッド駆動用データを入力し、これをヘッド駆動用データバッファHBに順次格納する。ヘッド駆動用データバッファHBに記憶されたヘッド駆動用データは、図2に示した制御ユニット150内のヘッドコントロールユニット156に読み取られ、インクの吐出制御に供されることになる。ヘッドコントロールユニット156は、キャリッジ210の主走査および副走査を繰り返しつつ、ヘッド駆動用データバッファHBから入力したデータが「11」であれば、大ドット形成用の電圧波形をピエゾ素子に印加し、「10」であれば、中ドット形成用の電圧波形をピエゾ素子に印加する。また、「01」であれば、小ドット形成用の電圧波形をピエゾ素子に印加する。このようにして、印刷装置100は、印刷媒体Sに対してカラー印刷を行う。
【0172】
D.実施例の効果:
以上、本発明の実施の形態を実施例に基づき説明した。本実施例の印刷装置100によれば、高解像度(720dpi×720dpi)の画像を入力し、その画像のうち、白色と黒色の組み合わせのみによって表される文字や記号の部分(白黒エッジ)については、高解像度(720dpi×720dpi)のままハーフトーン処理を行い、その他の背景画像等については、一旦、解像度を半分(360dpi×360dpi)に減じてハーフトーン処理を行う。そのため、全ての画像領域について、高解像度のままハーフトーン処理を行うよりも、格段に少ないメモリ容量でハーフトーン処理を行うことができる。
【0173】
また、文字や記号等を表す白黒エッジ部分については、入力した画像の解像度を保ったままハーフトーン処理を行うので、明瞭な画質を保ったまま印刷を行うことができる。なお、背景画像等については、最終的には、その解像度を元の解像度(720dpi×720dpi)に上げて、文字等の部分と合成を行う。そのため、印刷媒体S上に形成された画像は、すべての領域で同じ解像度となる。背景画像等は、文字等に比べて、エッジ部分が少ないので、ハーフトーン処理の過程で解像度を減じても、最終的に出力される画像の画質に影響を与えることは少ない。むしろ、4つの画素の階調値の平均をとって解像度を減ずる処理により、ノイズなどの成分が丸められ、画質が向上した印象を与える場合もある。従って、本実施例によれば、全体として、画質が向上した印象を利用者に与えることができる。
【0174】
また、本実施例では、白黒エッジ以外の部分のハーフトーン処理時には、CMYK画像データを構成する各色8ビットの階調値を5ビットの量子化データにエンコードするため、40%程度のデータ容量を削減できる。更に、白黒エッジデータについては、4画素分のRGBデータを表す計96ビット(=4画素×8ビット×3色)のデータを二値化して、白黒エッジ判定ビットを含めて5ビットの白黒エッジデータにエンコードできるため、白黒エッジのみによって構成される文字等の部分については、95%程度のデータ容量を削減できる。
【0175】
また、出願人の試算によれば本実施例による画像処理によって、標準的な360dpi×360dpiの画像にハーフトーン処理を行うのに必要なメモリ容量の20%増し程度のメモリ容量で、720dpi×720dpiの画像データを扱うことが可能になった。これは、白黒エッジに関する処理や白黒エッジ以外の部分について解像度の低減を行わず、単純に720dpi×720dpiの画像データをハーフトーン処理するのに必要なメモリ容量が360dpi×360dpi時の4倍必要であるのに対して格段に少ない容量である。
【0176】
また、本実施例では、量子化テーブルQTや、第1ドット個数テーブルDT1、第2ドット個数テーブルDT2、順序値マトリクスOMなど、さまざまなテーブルを参照してハーフトーン処理を行うが、基本的に、ハーフトーン処理の過程では、これらのテーブルを参照するだけでドットの有無が決定される。従って、従来の組織的ディザ法のように、閾値と階調値の大小を比較するための処理を行う必要がなく、また、従来の誤差拡散法のように、各画素に発生する誤差を他の画素に分配するような処理を行う必要がない。従って、従来の方法に比べて、極めて高速にハーフトーン処理を行うことができる。
【0177】
また、印刷装置100は、白色部分についてはドットを形成する必要がないため、本実施例では、白黒エッジを構成する各画素のうち、白色部分についてはハーフトーン処理を行わないものとした。そのため、処理速度を向上させることができる。
【0178】
また、本実施例の印刷装置100は、図5および図10に示したように、所定の画像処理を行う種々のメインユニットを直列に接続したメインユニット群と、これらのメインユニットと平行して複数のパスユニットを直列に接続したパスユニット群とを備えている。メインユニット群には、白黒エッジ処理ユニット320によって4画素の階調値が平均化された平均化データが順次転送される。一方、パスユニット群には、白黒エッジ処理ユニット320によって生成された白黒エッジデータが、メインユニット群に平均化データが転送されるのと同期して順次転送される。こうして各ユニット群から同期して出力された平均化データと白黒エッジデータとは、両者が同じタイミングでデータセレクタ420に入力され、白黒エッジ判定ビットの状態に応じて、いずれかのデータがエンコードデータバッファEBに蓄積される。こうした本実施例の構成によれば、平均化データと白黒エッジデータとに対して異なる画像処理を容易に行わせることが可能となる。また、平均化データと白黒エッジデータとは、それぞれメインユニットとパスユニットを同期して転送されるため、データセレクタ420に到達するまでに、その転送順序が狂うことがなく、その順序関係を維持することができる。つまり、その転送の過程において、いずれかのデータが他方のデータを追い抜くことがない。そのため、平均化データもしくは白黒エッジデータがエンコードデータバッファEBに到達するまでに、次の処理対象のデータを待機させる必要がなく、つぎつぎに、メインユニットおよびパスユニットにデータを投入することができる。この結果、処理の高速化を図ることが可能になり、印刷スピードを向上させることができる。
【0179】
E.1×1モード時におけるハーフトーン回路内でのデータの流れ:
ところで、図10には、1×1モード時において用いられる信号線を破線にて示している。1×1モードは、入力解像度と出力解像度とが共に360dpi×360dpiのモードであるため、720dpi×720dpiの解像度を必要とする白黒エッジに関する処理は行われない。従って、1×1モード時には、以下に説明するように、他のモード時とは異なる手順でハーフトーン処理を行うものとした。
【0180】
図10に示すように、1×1モードでは、エンコーダ410は、色変換回路300から入力したCMYKデータを他のモード時と同様に5ビットの量子化データにエンコードすると、データセレクタ420ではなく、デコーダ430に直接、量子化データを出力する。デコーダ430は、エンコーダ410から量子化データを入力すると、かかる量子化データを、第1ドット個数テーブルDT1、第2ドット個数テーブルDT2および順序値マトリクスOMを用いて2ビットのドット形成用データに変換する。そして、このドット形成用データを、ドット形成用データバッファDBではなく、EB制御ユニット440を介して、エンコードデータバッファEBに蓄積する。すなわち、他のモード時には、エンコードデータバッファEBには、6ビットの量子化データもしくは6ビットの白黒エッジデータが蓄積されることになるが、1×1モード時には、2ビットのドット形成用データが蓄積される。
【0181】
エンコードデータバッファEBに蓄積されたドット形成用データは、データ回転ユニット510に読み込まれ、ヘッド駆動用データに変換される。なお、1×1モードでは、ノズルピッチ間に位置するラスタライン上のドット形成用データは、デコーダ430ではなく、データ回転ユニット510によって間引き処理(インターレース処理)される。
【0182】
以上のような構成によれば、1×1モード時には、データセレクタ420やドット形成用データバッファDBが用いられずにドット形成用データがデータ回転ユニット510まで出力されることになるため、印刷速度を向上させることができる。すなわち、画質よりもスピードを優先させた印刷を行うことができる。
【0183】
F.黒データテーブルの作成方法:
図10に示したハーフトーン回路400のデコーダ430が、白黒エッジデータのデコード時に用いる黒データテーブルBT(図28参照)は、予めROM153に記録しておき、印刷処理開始時や印刷装置100の起動時に、これをSDRAM152上にロードするものとすることができる。しかし、黒データテーブルBTは、順序値マトリクスOMと同等の容量を有しているため、ROM153の記憶領域を大きく消費することになる。そこで、上記実施例では、印刷装置100は、黒データテーブルBTを以下に説明する方法により動的に生成するものとする。
【0184】
図30は、制御ユニット150のCPU151が実行する黒データテーブル作成処理のフローチャートである。図示するように、CPU151は、印刷対象のRGB画像データをコンピュータ900やスキャナ110から入力すると(ステップS100)、かかるRGB画像データの画像処理に先立ち、画像処理ユニット155を1×1モードに設定し(ステップS110)、全画素が黒、すなわち、全画素のRGB値が(0,0,0)となる128画素×64画素のRGB画像データを画像処理ユニット155に出力する(ステップS120)。1×1モードとは、入力画像の解像度と出力画像の解像度とを1対1で対応させるモードである。
【0185】
画像処理ユニット155に128画素×64画素のRGB画像データが入力されると、上述した画像処理ユニット155の働きにより、SDRAM152のエンコードデータバッファEB上に、128×64のサイズを有する全画素が黒のドット形成用データが生成される。すると、CPU151は、このドット形成用データを、SDRAM152内の黒データテーブルBTを格納する領域に転送して記憶させる(ステップS130)。
【0186】
以上の処理により、SDRAM152の所定の領域に黒データテーブルBTが作成されたため、CPU151は、画像処理ユニット155を2×2モードに設定し(ステップS140)、ステップS100で入力したRGB画像データを、画像処理ユニット155に出力する(ステップS150)。
【0187】
以上で説明した処理によれば、128画素×64画素分の黒色を表すRGBデータを画像処理ユニット155に出力するだけで、SDRAM152上に黒データテーブルBTが生成される。そのため、予めROM153に黒データテーブルBTを記憶させる必要がなく、ROM153の記憶容量を削減することができる。また、画像処理ユニット155の色変換回路300では、印刷装置100の個体に応じたインク量の補正や印刷縞の補正が行われるため、印刷装置の個体に応じて最適な黒データテーブルBTが作成されることになる。従って、画質の向上を図ることが可能になる。
【0188】
また、上述した黒データテーブルBTの作成処理では、印刷データを入力する毎に、黒データテーブルBTを作成するものとしたため、例えば、印刷用紙の種類やセットされているインクの種類、印刷画質の設定に応じて、その設定に適した黒データテーブルBTを作成することができる。もちろん、このような必要がないときは、印刷装置100の起動時に、図30のステップS110〜S130の処理を実行するものとしてもよい。このようにすれば、印刷実行毎に黒データテーブルBTを作成する必要がないため、印刷速度を向上させることができる。
【0189】
G.他の出力解像度モードの例:
以上で説明した印刷装置100では、2×2モードによって各種画像処理が行われる場合について説明した。ここで、参考のために、他の出力解像度のモードにおけるブロック番号の判別方法と、中間ドットデータの振り分け方法について説明する。
【0190】
<各モードにおけるブロック番号の判別方法>
図31は、1×1モードにおけるブロック番号の判別方法を示す説明図である。1×1モードは、エンコーダ410が入力したCMYK画像データの解像度(360dpi×360dpi)を等倍の解像度(360dpi×360dpi)で出力するモードである。そのため、順序値マトリクスOMにおいて、1つのブロック番号が割り振られている4×2の単位ブロックの大きさは、1×1モードで出力しようとするとCMYK画像データ内でも、4画素×2画素の大きさに相当する。従って、ハーフトーン回路400は、かかる4×2の画素が同一のブロック番号であると判別する。
【0191】
図32は、1×2モードにおけるブロック番号の判別方法を示す説明図である。1×2モードは、エンコーダ410が入力したCMYK画像データの解像度(360dpi×360dpi)を縦方向に2倍の解像度(360dpi×720dpi)にして出力するモードである。そのため、順序値マトリクスOM内の1つのブロック番号が割り振られている4×2の単位ブロックの大きさは、1×2モードで出力しようとするCMYK画像データ内では、4画素×1画素の大きさに相当する。従って、ハーフトーン回路400は、かかる4×1の画素が同一のブロック番号であると判別する。
【0192】
図33は、2×1モードにおけるブロック番号の判別方法を示す説明図である。2×1モードは、エンコーダ410が入力したCMYK画像データの解像度(360dpi×360dpi)を横方向に2倍の解像度(720dpi×360dpi)にするモードである。そのため、順序値マトリクスOM内の1つのブロック番号が割り振られている4×2の単位ブロックの大きさは、2×1モードで出力しようとするCMYK画像データ内では、2画素×2画素の大きさに相当する。従って、ハーフトーン回路400は、かかる2×2の画素が同一のブロック番号であると判別する。
【0193】
図34は、4×2モードにおけるブロック番号の判別方法を示す説明図である。4×2モードは、エンコーダ410が入力したCMYK画像データの解像度(360dpi×360dpi)を横方向に4倍、縦方向に2倍の解像度(1440dpi×720dpi)にするモードである。そのため、順序値マトリクスOM内の1つのブロック番号が割り振られている4×2の単位ブロックの大きさは、4×2モードで出力しようとするCMYK画像データ内では、1画素×1画素の大きさに相当する。従って、ハーフトーン回路400は、かかる1×1の画素が同一のブロック番号であると判別する。
【0194】
<各モードにおける中間ドットデータの振り分け>
図26に示したように、1つの量子化データからは、出力解像度のモードにかかわらず、4画素×2画素の中間ドットデータが生成される。1つの量子化データは、CMYK画像データの1画素に対応することから、すべての量子化データについて中間ドットデータを生成すると、360dpi×360dpiの入力解像度が、1440dpi×720dpiの出力解像度となってしまい、各モード(4×2モードを除く)が目標とする出力解像度とは異なる解像度を有することになる。そこで、デコーダ430内の量子化データデコード回路433は、中間ドットデータを構成する各画素を、出力解像度のモードに応じて、適宜、振り分けを行い、出力解像度の調整を行う。
【0195】
<1×1モードの場合>
図35は、1×1モードにおける中間ドットデータの振り分け方法を示す説明図である。図31で示したように、1×1モードの場合には、4画素×2画素の計8画素が同一のブロック番号を有する。従って、図35のように、かかる8画素からそれぞれ生成される横に4つ、縦に2つ分の計8つの中間ドットデータから、それぞれ異なる位置の画素を1つずつ抽出し、これを4画素×2画素のドット形成用データとして振り分ける。こうすることで、360dpi×360dpiの入力解像度が、目標とする360dpi×360dpiの出力解像度に変換される。
【0196】
<1×2モードの場合>
図36は、1×2モードにおける中間ドットデータの振り分け方法を示す説明図である。図32で示したように、1×2モードの場合には、4画素×1画素の計4画素が同一のブロック番号を有する。従って、図36のように、かかる4画素からそれぞれ生成される横方向に4つ分の中間ドットデータから、それぞれ異なる位置の画素を縦方向に2つずつ抽出し、これを4画素×2画素のドット形成用データとして振り分ける。こうすることで、360dpi×360dpiの入力解像度が、目標とする360dpi×720dpiの出力解像度に変換される。
【0197】
<2×1モードの場合>
図37は、2×1モードにおける中間ドットデータの振り分け方法を示す説明図である。図33で示したように、2×1モードの場合には、2画素×2画素の計4画素が同一のブロック番号を有する。従って、図37のように、かかる4画素からそれぞれ生成される横方向に2つ、縦方向に2つ分の計4つの中間ドットデータから、それぞれ異なる位置の画素を横方向に2つずつ抽出し、これを4画素×2画素のドット形成用データとして振り分ける。こうすることで、360dpi×360dpiの入力解像度が、目標とする720dpi×360dpiの出力解像度に変換されることになる。
【0198】
<4×2モードの場合>
図38は、4×2モードにおける中間ドットデータの振り分け方法を示す説明図である。図34で示したように、4×2モードの場合には、1画素がそれぞれ1つのブロック番号を有する。従って、図38のように、かかる1画素から生成される1つの中間ドットデータから、すべての画素を抽出し、これを4画素×2画素のドット形成用データとしてそのまま適用する。こうすることで、360dpi×360dpiの入力解像度が、目標とする1440dpi×720dpiの出力解像度に変換されることになる。
【0199】
<その他のモード>
出力解像度のモードとしては、そのほかに、出力解像度が720dpi×1440dpiとなる2×4モードや、出力解像度が1440dpi×1440dpiとなる4×4モードも存在するが、これらのモードでは、図22や図23で示した第1ドット個数テーブルDT1や第2ドット個数テーブルDT2の内容が異なっており、他のモードとはハーフトーン処理の態様が異なるため、本実施例では詳細な説明を省略する。
【0200】
H.変形例:
以上、本発明の種々の実施例について説明したが、本発明はこのような実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、ハードウェアで実現した機能をCPU151が所定のプログラムを実行することによりソフトウェア的によって実現するものとしてもよい。そのほか、以下のような変形が可能である。
【0201】
(H−1)変形例1:
上記実施例では、印刷装置100単体で、色変換処理や量子化データのエンコード/デコードを行うものとした。これに対して、例えば、エンコードデータバッファEBよりも前段に位置する各デバイス、すなわち、色変換回路300やエンコーダ410、データセレクタ420を、印刷装置100とは異なる装置に組み込み、印刷装置100とかかる装置とを所定の通信路で接続するものとしてもよい。このような装置としては、例えば、コンピュータ900を用いることができる。コンピュータ900を用いる場合には、色変換回路300やエンコーダ410、データセレクタ420が実施する処理に相当する処理を、例えば、プリンタドライバなどによりソフトウェア的に実現することができる。こうすることにより、印刷装置100の処理負担を軽減することができる。また、エンコーダ410によってエンコードされた量子化データや、白黒エッジ処理ユニット320によってエンコードされた白黒エッジデータは、もとのRGBデータに対してデータ容量が大幅に削減されているため、通信データの容量が削減されることになる。
【0202】
(H−2)変形例2:
上記実施例では、順序値マトリクスのサイズを、128×64であるものとした。しかし、順序値マトリクスは、かかるサイズに限定されるものではなく、例えば、より大きなサイズ(例えば、512×256)とすることができる。大きなサイズの順序値マトリクスを用いれば、入力した画像のサイズが大きい場合であっても効率的にハーフトーン処理を行うことができる。
【0203】
図39および図40は、512×256の順序値マトリクスの一例を示す説明図である。図39には、実施例に示した128×64のサイズの順序値マトリクス(図中のハッチング部分)を、横方向に64画素分、オフセットさせつつタイル状に当てはめて構成した例を示している。また、図40には、実施例で示した128×64の順序値マトリクスを、縦方向に32画素分、オフセットさせつつタイル状に当てはめて構成した例を示している。このように、通常のサイズの順序値マトリクスを繰り返して適用することにより、容易に大きなサイズの順序値マトリクスを生成することができる。
【0204】
大きなサイズの順序値マトリクスは、予めその全体をROM153に記録させておいてもよいが、ROM153には、通常の128×64のサイズの順序値マトリクスを記憶させておき、印刷装置100の起動時に、CPU151が、この小さなサイズの順序値マトリクスをロードして、図39や図40に示した配置に構成した上で、SDRAM152に展開するものとしてもよい。こうすることで、ROM153の記憶容量を削減することが可能になる。なお、順序値マトリクスを大きなサイズにする場合には、それに対応して黒データテーブルBTも大きなサイズにするものとする。
【0205】
(H−3)変形例3:
上記実施例では、白色と黒色の組み合わせのみによって構成される部分について高解像度のままハーフトーン処理を行うものとしたが、色の組み合わせはこれに限られることはない。例えば、白色と青色、あるいは白色と緑色などとすることもできる。この場合、例えば、ユーザがコンピュータ900や操作パネル140を用いて色の組み合わせを設定できるものとしてもよい。こうすることにより、文字等の色を黒色以外の色で表した場合などにも、その文字を高解像度のまま印刷することができる。なお、ユーザによって色の指定がされた場合には、黒データテーブルBTに換え、その色に応じたテーブルを作成するものとすることができる。この場合であっても、上述した黒データテーブルの作成方法に従えば、指定された色に応じたテーブルを容易に生成することが可能である。
【0206】
(H−4)変形例4:
上記実施例では、入力解像度が720dpi×720dpiで、出力解像度も720dpi×720dpiの場合における画像処理について説明したが、解像度はこれに限られることはない。例えば、両解像度は、600dpi×600dpiでもよいし、1200dpi×1200dpiでもよい。また、1440dpi×1440dpiでもよい。
【0207】
(H−5)変形例5:
上記実施例では、各パスユニットは、白黒エッジデータ等のデータを順次転送する機能を備えるものとして説明した。これに対して、各パスユニットは、白黒エッジデータ等の転送だけではなく、転送を行うデータに対して、所定の画像処理を行う機能を備えるものとしてもよい。例えば、白黒エッジデータの解像度を、より高解像度に変換する処理や、白黒エッジデータが表す黒色あるいは白色の画素の色を他の色に変換する処理などを行わせるものとすることができる。これらの処理は、そのパスユニットに対応するメインユニットが画像処理を行う処理時間の中で完了する処理とすることができる。こうすることにより、メインユニットによるデータの転送に遅延が発生することが無く、適切に同期をとることができる。
【0208】
(H−6)変形例6:
上記実施例では、色変換回路300およびハーフトーン回路400内に存在するパスユニットは、これに対応するメインユニットと同数のユニットを備えるものとした。これに対して、パスユニットは、より少ない数によって構成することも可能である。
【0209】
図41は、上記実施例のパスユニットの構成と、変形例としてのパスユニットの構成を比較する説明図である。図41(a)には、実施例のパスユニットの構成を示し、図41(b)には、変形例としてのパスユニットの構成を示した。なお、この図では、便宜上、実施例に示したメインユニットの一部を省略して示している。図41(a)に示すように、上記実施例の印刷装置100は、メインユニットと同数のパスユニットを備えているが、本変形例では、図41(b)に示すように、メインユニットの数よりも少ない数のパスユニットを備えているものとした。
【0210】
かかる変形例では、エンコーダ410が前段のインク量補正ユニット340に対して出力するack信号を、第1パスユニット390aの出力側と、第7パスユニット390gの入力側とに分岐して入力するものとした。こうすることにより、平均化データがインク量補正ユニット340からエンコーダ410に転送されるタイミングで、白黒エッジデータが、第1パスユニット390aから第7パスユニット390gに転送されることになる。従って、本変形例のように、メインユニットとパスユニットの数が同数でなくても、適切に、平均化データと白黒エッジデータとを、同期して転送することができる。なお、図41(b)示した変形例では、第1パスユニットを構成するFIFOメモリは、色変換ユニット330とインク量補正ユニット340とに蓄積されるデータ以上のデータを蓄積可能なメモリ容量を有するものとする。
【図面の簡単な説明】
【0211】
【図1】実施例としての印刷装置100の概略構成を示す説明図である。
【図2】印刷装置100の内部構成を示す説明図である。
【図3】インクヘッド211から異なる大きさのインク滴が吐出される原理を示す説明図である。
【図4】SDRAM152のメモリマップを示す説明図である。
【図5】色変換回路300の詳細な構成を示すブロック図である。
【図6】パスユニット390a〜390fの内部構成を示す説明図である。
【図7】白黒エッジ処理ユニット320の内部構成を示す説明図である。
【図8】白黒エッジテーブルETの一例を示す説明図である。
【図9】色変換ユニット330の内部構成を示す説明図である。
【図10】ハーフトーン回路400とヘッド駆動用データ変換回路500の詳細な構成を示すブロック図である。
【図11】従来の組織的ディザ法によるハーフトーン処理の概要を示す説明図である。
【図12】4×2の画素群についてドット数が変化する様子を示す説明図である。
【図13】階調値と発生するドットの個数とその配置の関係を示す説明図である。
【図14】大中小のドットを形成可能な場合におけるドットのオン・オフの決定方法を示す説明図である。
【図15】画像データの階調値が0から255まで変化する際に、大中小ドットの組み合わせにより、階調値が、印刷媒体上でどのように変化していくかを表すグラフである。
【図16】図15に示したグラフを対応表として表した説明図である。
【図17】2×2モードにおけるブロック番号の判別方法を示す説明図である。
【図18】ブロック番号の実際の判別例を示す説明図である。
【図19】データセレクタ420の詳細な構成を示す説明図である。
【図20】エンコードデータバッファEBにエンコードデータを格納するまでの過程を概念的に示す説明図である。
【図21】デコーダ430の詳細な構成を示す説明図である。
【図22】第1ドット個数テーブルDT1の一例を示す説明図である。
【図23】第2ドット個数テーブルDT2の一例を説明したものである。
【図24】第2ドット個数データの一例を示す説明図である。
【図25】順序値マトリクスの一部を拡大した図である。
【図26】第2ドット個数データと順序値マトリクスOMとに基づき8つの画素についてそれぞれドットを配置する手順を概念的に示す説明図である。
【図27】2×2モードにおいて中間ドットデータの振り分けを行う具体例を示す説明図である。
【図28】黒データテーブルBTの一例を示す説明図である。
【図29】データ回転ユニット510によるデータの並べ直しの概念を示す説明図である。
【図30】黒データテーブル作成処理のフローチャートである。
【図31】1×1モードにおけるブロック番号の判別方法を示す説明図である。
【図32】1×2モードにおけるブロック番号の判別方法を示す説明図である。
【図33】2×1モードにおけるブロック番号の判別方法を示す説明図である。
【図34】4×2モードにおけるブロック番号の判別方法を示す説明図である。
【図35】1×1モードにおける中間ドットデータの振り分け方法を示す説明図である。
【図36】1×2モードにおける中間ドットデータの振り分け方法を示す説明図である。
【図37】2×1モードにおける中間ドットデータの振り分け方法を示す説明図である。
【図38】4×2モードにおける中間ドットデータの振り分け方法を示す説明図である。
【図39】512×256の順序値マトリクスの一例を示す説明図である。
【図40】512×256の順序値マトリクスの一例を示す説明図である。
【図41】実施例のパスユニットの構成と変形例のパスユニットの構成とを比較する説明図である。
【符号の説明】
【0212】
100...印刷装置
110...スキャナ
120...メモリカードスロット
130...USBインタフェース
140...操作パネル
150...制御ユニット
151...CPU
152...SDRAM
153...ROM
154...EEPROM
155...画像処理ユニット
156...ヘッドコントロールユニット
160...印刷機構
200...プリンタ
210...キャリッジ
211...インクヘッド
212...インクカートリッジ
220...キャリッジモータ
230...紙送りモータ
260...駆動ベルト
270...プラテン
280...摺動軸
300...色変換回路
310...ライン入力ユニット
320...白黒エッジ処理ユニット
321...白黒エッジ判定回路
322...平均化回路
323...白黒エッジエンコード回路
324...セレクタ回路
330...色変換ユニット
331...変換回路
332...標準エッジ判定回路
333...ノイズ発生回路
334...スムージング回路
340...インク量補正ユニット
350...印刷縞抑制ユニット
360...ビット減縮ユニット
370...透明インク後処理ユニット
380...ブロック内平滑化ユニット
390a〜g...パスユニット
400...ハーフトーン回路
410...エンコーダ
411...ブロック番号判別回路
412...量子化回路
420...データセレクタ
430...デコーダ
431...データ判定回路
432...白黒エッジデータデコード回路
433...量子化データデコード回路
440...EB制御ユニット
500...ヘッド駆動用データ変換回路
510...データ回転ユニット
520...HB制御ユニット
900...コンピュータ

【特許請求の範囲】
【請求項1】
入力した画像データに所定の画像処理を施して出力する画像出力装置であって、
入力した画像データを所定の画素数単位の画素群に分割し、該画素群の特徴に応じて該画素群から第1の中間データおよび第2の中間データを生成して各々出力する中間データ生成ユニットと、
前記第1の中間データを入力し、該第1の中間データに対して各々所定の画像処理を施しつつ順次転送を行う画像処理ユニットを複数直列に接続した画像処理ユニット群と、
前記第2の中間データを入力し、該第2の中間データを、前記画像処理ユニット間に前記第1の中間データが転送されるのと同期して少なくとも転送を順次行うパスユニットを複数直列に接続したパスユニット群と、
前記画像処理ユニット群によって画像処理の施された後の前記第1の中間データと、前記パスユニット群を順次転送された前記第2の中間データとを入力し、所定の条件に基づき、該入力された中間データのうちいずれか一方を選択するデータセレクタと、
前記データセレクタによって選択された中間データを記憶する記憶部と
前記記憶部に記憶された中間データを用いて、出力画像を生成する出力画像生成部と
を備える画像出力装置。
【請求項2】
請求項1に記載の画像出力装置であって、
前記パスユニット群は、前記画像処理ユニットと同数の前記パスユニットを備えている
画像出力装置。
【請求項3】
請求項1または請求項2に記載の画像出力装置であって、
前記画像処理ユニットは、前記第1の中間データの転送先の他の画像処理ユニットに対して、データの受け取りを要求する要求信号を送信し、該他の画像処理ユニットは、該要求信号を受信すると、当該画像処理ユニットから転送された前記第1の中間データを受信し、該第1の中間データの受信が完了すると、当該画像処理ユニットに対して、データの受信が完了した旨を表す確認信号を送信することにより、前記第1の中間データの転送を行う
画像出力装置。
【請求項4】
請求項3に記載の画像出力装置であって、
前記パスユニットは、
当該パスユニットに対応して設けられた前記画像処理ユニットが前記第1の中間データの転送元となる他の画像処理ユニットに対して送信する前記確認信号を分岐して入力し、該確認信号の入力を検出した場合に、前記第2の中間データの転送元となる他のパスユニットから前記第2の中間データを入力するとともに、
当該パスユニットに対応して設けられた前記画像処理ユニットが前記第1の中間データを転送する他の画像処理ユニットから、該パスユニットに対応して設けられた前記画像処理ユニットに対して送信される前記確認信号を分岐して入力し、該確認信号の入力を検出した場合に、前記第2の中間データの転送先となる他のパスユニットに前記第2の中間データを出力することにより、前記画像処理ユニット間に前記第1の中間データが転送されるのと同期して前記第2の中間データの転送を行う
画像出力装置。
【請求項5】
請求項1ないし請求項4のいずれかに記載の画像出力装置であって、
前記中間データ生成ユニットは、前記第1の中間データとして、前記画素群を構成する画素の画素値を平均化し、該画素群の解像度を低減させたデータを生成する手段を備える
画像出力装置。
【請求項6】
請求項1ないし請求項5のいずれかに記載の画像出力装置であって、
前記中間データ生成ユニットは、
前記画素群にエッジが含まれているか否かを検出する検出手段と、
前記検出手段によってエッジが含まれていると検出された場合に、前記第2の中間データとして、該エッジの形態を表すデータを生成する生成手段とを備える
画像出力装置。
【請求項7】
請求項6に記載の画像出力装置であって、
前記中間データ生成ユニットの検出手段は、前記画素群が、白色と黒色の画素によって構成されている場合に、エッジが含まれていると判断する
画像出力装置。
【請求項8】
請求項7に記載の画像出力装置であって、
前記中間データ生成ユニットの生成手段は、前記エッジの形態を表すデータとして、前記画素群内の白色と黒色の画素の配置に応じて前記画素群を2値化したデータを生成する
画像出力装置。
【請求項9】
請求項6ないし請求項8のいずれかに記載の画像出力装置であって、
前記中間データ生成ユニットの生成手段は、前記検出手段によってエッジが含まれていないと検出された場合に、前記第2の中間データとして、所定のダミーデータを生成する手段を備える
画像出力装置。
【請求項10】
請求項6ないし請求項9のいずれかに記載の画像出力装置であって、
前記中間データ生成ユニットは、前記エッジの有無に応じて、前記第1の中間データと前記第2の中間データとのうち、どちらの中間データが優位であるかを表す識別子を生成し、前記第2の中間データとともに、該識別子を前記パスユニット群に出力する手段を備える
画像出力装置。
【請求項11】
請求項10に記載の画像出力装置であって、
前記データセレクタは、前記第2の中間データとともに前記識別子を入力し、該識別子に応じて、前記選択を行う
画像出力装置。
【請求項12】
請求項1ないし請求項11のいずれかに記載の画像出力装置であって、
前記各パスユニットは、所定段数のFIFOメモリによって構成されている
画像出力装置。
【請求項13】
請求項1ないし請求項12のいずれかに記載の画像出力装置であって、
前記出力画像生成部は、前記記憶部に記憶された前記第1の中間データと前記第2の中間データとに対してそれぞれ個別に異なるハーフトーン処理を施すことにより、前記出力画像を生成する
画像出力装置。

【図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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate


【公開番号】特開2007−82090(P2007−82090A)
【公開日】平成19年3月29日(2007.3.29)
【国際特許分類】
【出願番号】特願2005−270118(P2005−270118)
【出願日】平成17年9月16日(2005.9.16)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】