[複合機の全体構成の説明]
図2は、本発明の実施例1に係る多機能複合機の機械的構成を示す概略断面図である。この複合機は、カラースキャナ部Aとプリンタ部Bとを備えている。
先ず最初にカラースキャナ部Aについて説明する。
原稿給送装置201Aは、原稿を最終頁から順に1枚ずつプラテンガラス202A上へ給送する。そして、その原稿が読み取られた後、プラテンガラス202A上の原稿を排出する。この原稿給送装置201Aにより原稿がプラテンガラス202A上に搬送されるとランプ203Aを点灯し、このランプ203Aを搭載したスキャナユニット204Aを移動させて原稿を露光走査する。この露光走査による原稿からの反射光は、ミラー205A,206A,207A及びレンズ208AによってCCDカラーイメージセンサ(以下、単にCCDという)209Aへ導かれる。そして、CCD209Aに入射した反射光は、R,G,Bの3色に色分解された色毎の輝度信号に変換される。更に、CCD209Aから出力される輝度信号はA/D変換によってデジタルの画像データに変換されて画像処理部304(図3参照)に入力され、シェーディング補正、階調補正、2値化などの周知の画像処理が施された後、プリンタ部B(305)へ出力されて印刷される。
プリンタ部Bにおいて、レーザドライバ221Bは、レーザ発光部201Bを駆動するもので、レーザ発光部201Bを駆動することにより、画像処理部304から出力された色毎の画像データに応じたレーザ光を出力させる。こうして出力されたレーザ光は感光ドラム202Bに照射され、そのドラム202Bの表面にレーザ光に応じた静電潜像が形成される。そして、この感光ドラム202Bの潜像の部分に、現像器203Bによって現像剤であるトナーが付着される。尚、図2では、現像器は、図示の簡略化のため、唯一つのみが示されるが、C,M,Y,Kの色毎にトナーが用意されており、それに応じて4つの現像器が設けられることは勿論である。また、以上の構成の代わりに感光ドラムや現像器等を色毎に4組設ける構成であってもよい。
上述のレーザ光の照射開始と同期したタイミングで、カセット204B又はカセット205Bの内の選択されたいずれかから記録紙が給紙され、その記録紙が転写部206Bへ搬送される。これにより、感光ドラム202Bに付着した現像剤を記録紙に転写することができる。こうして現像剤が転写された記録紙は定着部207Bに搬送され、定着部207Bの熱と圧力により現像剤が記録紙へ定着される。そして、定着部207Bを通過した記録紙は、排出ローラ208Bによって排出される。ソータ220Bは、この排出された記録紙をそれぞれ所定のビンに収納して記録紙の仕分けを行う。尚、ソータ220Bは、仕分けが設定されていない場合は、最上位のビンに記録済みの記録紙を収納する。
また、両面記録が設定されている場合は、排出ローラ208Bの位置まで記録紙を搬送した後、排出ローラ208Bを逆転させ、フラッパ209Bによって、その記録紙を再び給紙搬送路へ導く。こうして再び給紙搬送路へ導かれた記録紙は、上述したタイミングで転写部206Bへ給紙される。尚、色毎の潜像及び現像の処理や定着は、上述の記録紙の搬送機構を用い、潜像形成等を4回分繰り返すことによって実現することは周知の通りである。
また314はネットワークであり、一般的にイーサネット(登録商標)と呼ばれるネットワーク等に接続されている。これにより、10BaseTや10Base5などの物理的なケーブルを用いてTCP/IPなどのプロトコルにより、接続される各ユニット相互の情報の授受やデータ転送を行うことができる。無論、この通信は、ネットワークケーブルを用いた有線に限定されるものではなく、無線を用いても同様な環境構築ができる。こうして、ネットワークに接続されているPCからPDLデータやビットマップイメージデータを受信し、プリンタ部Bで印刷することも可能である。
[システム構成を示すブロック図]
図3は、本実施の形態に係る複合機における電気的な処理概要を説明するためのブロック図である。
画像読み取り部309は、レンズ301、CCDセンサ302、アナログ信号処理部303等を有し、レンズ301を介してCCDセンサ302に結像された原稿画像300の画像信号が、CCDセンサ302によりアナログ電気信号に変換される。この変換された電気信号はアナログ信号処理部303に入力され、サンプル&ホールド、ダークレベルの補正等が行われた後、アナログ→デジタル変換(A/D変換)される。このようにして変換されたデジタル信号は、前述した解像度1200から解像度600dpiに変換された後、色処理が施される。そして本実施の形態の特徴部分である画像処理部304において階調補正が実施される。
また、この画像処理部304には、アナログ信号処理部303からのデジタル信号以外にも、ネットワーク314を介して送られてくる画像信号も入力される。この画像信号には、PC315から送られてくるPS(PostScript)やLIPSのPDLデータが含まれる。無論、これらデータは圧縮されて送られてくることもあり、その場合は、画像処理部304で伸張されて展開されることになる(図示せず)。この画像処理部304は、前述した圧縮/伸張処理以外に、シェーディング補正、γ補正等の、原稿画像の読み取り処理で必要な色補正処理や、スムージング処理、エッジ強調、画像形成処理なども行うことが可能であり、それら処理を行った後、その処理済みの画像信号をプリンタ305に出力する。このプリンタ305は図2を参照して説明したプリンタ部Bと同様である。
CPU回路部310は、この装置全体を制御するCPU306、CPU306により実行されるプログラムやデータを記憶しているROM307、CPU306による制御動作時に使用されるワークエリアなどを含むRAM308、及びネットワーク314とのインターフェースを制御するネットワーク・インターフェース部316等を備え、画像読み取り部309、画像処理部304、プリンタ305、操作部313等を制御し、本実施の形態に係る複合機の動作シーケンスを統括的に制御する。
操作部313は、RAM311、ROM312を備えており、操作部313の画面上にUI画面を表示したり、ユーザが設定した情報を記憶することが可能となっている。こうしてユーザによって操作部313で設定された情報は、CPU回路部310を介して、画像読み取り部309、画像処理部304、プリンタ305などに送られる。
[画像処理構成の説明]
図1は、本実施の形態に係る画像処理部304の構成を説明するブロック図である。ここでは、解像度1200dpiのデータを解像度600dpiのデータに変換する場合で説明する。
その前に、まず本実施の形態における全体的な信号の流れについて説明する。
本実施の形態では、まず、図3に示したネットワーク314を介してPC315より送られてきた信号をネットワーク・インターフェース316で受信し、画像処理部304でPDLデータからイメージデータに展開する。つまり、PDL言語で記述された画像データがビットマップ形式のラスタイメージデータに変換される。このとき、本実施の形態に係る画像処理部304は、PDLデータに基づいて解像度1200dpiの8ビットイメージデータに展開している。このイメージ展開法は公知の技術であるため、その説明を省略する。
そして、後述の手法により、解像度1200dpiのイメージデータを解像度600dpiのイメージデータに変換した後、色補正処理を施し、階調補正を施した後、本実施の形態に係る画像形成処理により4ビット化する。そして最終的に、この4ビット化された画像データをプリンタ305へ出力して記録紙に印刷する。言うまでもないが、本発明は、4ビットの画像形成処理に限定しているものではなく、2ビットでも3ビットでも、それ以外のビットでも実施可能である。
次に、解像度1200dpiから解像度600dpiへの変換について説明する。
解像度600dpiへの変換処理は、解像度1200dpiの位相情報を保持したまま600dpiのデータに変換することを可能にする技術である。つまり、文字(フォント)やラインの比率(プロポーション)が、解像度1200dpi並に解像度600dpiでも表現できるという特徴を有している。
図1において、112は、解像度1200dpiの像域信号を示している。113は解像度が1200dpiの入力画像データで、解像度1200dpiでイメージ展開されたイメージデータを表している。像域信号112は、このイメージデータ113の画素に対応した像域信号を示している。この像域信号112とは、各画素毎に、その画素が文字或は写真領域に含まれていることを表している識別信号である。尚、詳細は後述するが、101は像域信号の解像度を変換する像域信号変換部である。この像域信号変換部101は、解像度1200dpiの像域信号112を、解像度600dpiの像域信号114に変換している。
セレクタ102は、解像度1200dpiの像域信号112をそのまま出力するか、或は像域信号変換部101で変換した解像度600dpiの像域信号114を出力するのかを、レジスタ115に設定された1ビット信号に基づいて選択している。セレクタ111も同様に、解像度1200dpiのイメージデータ113をそのまま出力するか、或は画像変換部103で変換した解像度600dpiのイメージデータを出力するのかを、レジスタ115に設定された1ビット信号に基づいて選択している。画像変換部103は、解像度1200dpiのイメージデータを解像度600dpiのイメージデータに変換している。
次に、この画像変換部103について説明する。
104,110は輝度−濃度変換部で、解像度1200dpiで展開されたイメージデータが輝度信号の場合は、ここで反転されて濃度信号に変換される。その詳細を図5に示す。図5は入出力信号名を示したブロック図であり、入力信号名が「buffIN」、出力ファイル名が「InData」であることを示している。ここでは入力信号「buffIN」が輝度信号の場合、レジスタの設定によって反転することを示している。ここでいう反転とは、8ビット信号の「255」が「0」になり、「0」が「255」になることを意味している。
105は8ビットのFIFOメモリで、後述する積和演算処理部106のために2ライン分遅延させている。これにより、最大3×3のマスクサイズで演算可能としている。また、注目画素ラインの信号(B)はL変換部107に入力され、後述する処理により3ビットの信号に変換される。
積和演算処理部106は、8種類の演算処理を行っている。本実施の形態のポイントは、複数の積和演算を持つことと関係ないが、複数の演算を組み合わせることで、高画質化を実現している。ここでいう複数の演算とは、具体的には、3×3エリア中で最大値を検出する処理(No.0)121と、2×2のエリア中で最大値を検出する処理(No.1)122と、注目画素の値をそのまま出力する処理(No.2)123と、5種類の3×3のエリアで任意の係数と積和演算を行う処理(No.3〜No.7)124を含んでいる。
これらの処理の詳細を図6〜図9を参照して説明する。
まず、図6(a)は、積和演算処理部106全体の機能構成を示している。入力信号Line(A),(B),(C)の3ラインのそれぞれが8ビットのInData(x)で表されており、出力信号が8ビットのOUT(No.n)で表されている。図6(b)は、注目画素位置(remark)に対する、各エリアの範囲を説明しており、3×3のエリアと2×2のエリアとの位置関係がずれている様子を表している。
ところで、ここでのポイントは、注目画素が1画素飛ばしで移動することである。図6(b)で説明すると、解像度1200dpiの画素に対して斜線で示したように1画素1ライン飛ばしで処理すると間引くような形になり、解像度600dpiのイメージデータに変換できる。このように本実施の形態では単に間引いているだけでない。
以下に各処理を順に説明していく。
図7は、上述の処理(No.1〜No.7)の詳細を説明する図である。
図1において、No.0に出力する3×3エリア中の最大値検出処理121は、図7のmaxData3x3(xx,yy,InData)に示した通りである。即ち、図6(b)の3×3area中で、最大値を検出する処理を行っている。同様にNo.1に出力される2×2エリア中の最大値検出処理122は、図7のmaxData2x2(xx,yy,InData)に示した通りである。この場合の検出範囲は、図6(b)の2×2areaに示した通りである。またNo.2に出力される処理は、図7のremark(xx,yy,InData)に示した通りで、単に注目画素を出力しているだけである。つまり、Line(B)中の信号である。No.3に出力される処理は、図7のfold_3(xx,yy,InData_params)に示した通りで、3×3の範囲で積和演算を行っている。この演算の詳細は図6(c)に示している。
図6(c)におけるa〜iがマスクレジスタの各設定値であり、それぞれ6ビットの値が任意に設定されている。そして入力信号xと、同図に示した式で積和演算を行った後、6ビット右にシフトしている。この6ビットシフトは「64」で割るのと等価な処理である。この演算で得られた結果を最後に「255」でクリップした結果が最終結果となってfold_3から出力される。ここで説明したa〜iのレジスタ設定値が係数であり、図7に示したfold_3中のparams→mask3と等価である。各ビットについての説明は略するが、詳細は図6(c)に示した通りである。
尚、ここでは3×3のエリアにおける積和演算を説明したが、a〜iのレジスタのa,b,c,d,gに「0」を設定すると、2×2のエリアにおける積和演算が可能なことはいうまでもない。
またNo.4に出力される処理も積和演算であるが処理の詳細については、前述同様、図6(c)に示した通りである。またNo.5,No.6、No.7に出力される処理も積和演算であるため説明を略する。前述したNo.3〜No.7の積和演算処理の各レジスタa〜i(params→mask)は、それぞれ異なる値が設定されることもあれば、同じ値が設定されることもあり、任意であることはいうまでもない。
以上の処理の結果、No.0〜No.7は、図1に示した積和演算処理部106から各々出力され、セレクタ109により、後述する信号に応じて切り換えられる。つまり、各画素の特徴に応じて、最適な処理を画素ごとに切り替え可能にしている。
図8は、図1のL変換部107を説明する図である。
ここでは、ライン(B)上の注目画素の値(8ビット)を入力して3ビットの信号を出力する。この変換処理では、アドレス空間が8ビットで、出力データが3ビットの単なるメモリで構成しているため、詳細な説明は略するが、このメモリに設定されている値の一例を挙げると、「X/52+3」が設定されている。このXを0〜255まで変化させ、演算で得られた「3」〜「7」の値を、このメモリの各アドレスに対応つけて記憶している。尚、この演算の割り算で発生する余りは切り捨てている。
マスク選択信号生成部108は、前述したNo.0〜No.7の積和演算結果のいずれかを選択するための3ビットのセレクト信号を生成している。
図9は、このマスク選択信号生成部108における処理の詳細を示す図である。
図9に示すように、このマスク選択信号生成部108には、前述したL変換部107からの出力信号Lと、後述する像域信号変換部101からのsd信号(2ビット)とが入力され、3ビットのセレクト信号を生成している。具体的には、sd=0〜2の場合は、番号が対応するNo.0〜No.2を出力し、sd=3の場合は、L信号の値に応じて(No.0〜No.7)を出力している。但し、本実施の形態では、前述したようにL変換部107の出力信号Lが「3」〜「7」のいずれかであるため、sd=3の場合は、No.3〜No.7のいずれかが選択されて出力されることになる。
上述したマスク選択信号生成部108から出力される選択信号は、解像度1200dpiの入力画像信号113の濃度値を参照して作成されるため、信号値の濃淡に応じて最適な積和演算結果を選択できる。つまり、これにより電子写真特有の非線形特性を考慮した積和演算結果を画素毎に選択可能となる。
更に、後述する像域信号変換部101で作成されたsd信号も同時に加味して制御できるため、文字部、小径文字(例えば4ポイント未満)、ライン部、イメージ部などで、任意に積和演算処理部106の結果を選択できるようにしている。つまり、判読性を重視する小径文字と、プロポーションを重視する文字とで処理を切り替えることもできる。例えば4ポイント未満のような小径文字は、No.2の注目画素値を選択し、それ以外は、No.3〜7の積和演算結果などを選択することなどである。また、任意の像域のみを解像度1200dpiにしたり、任意の濃度のみを解像度1200dpiにしたりするといった処理も可能である。
以上説明したマスク選択信号生成部108からの選択信号を用いて、セレクタ109により、積和演算処理部106の8種類の出力を切り換えることで、解像度1200dpiの画質を維持したまま、解像度600dpiのデータに変換可能にしている。
このようにして生成された解像度1200dpi相当の画質を維持した解像度600dpiのイメージデータは、前述した輝度−濃度変換部110、セレクタ111を介して出力された後、後述する本実施の形態に係る画像形成処理を施すことにより、4ビット信号に変換され、最終的にプリンタ305で印刷される。このプリンタ305は、解像度600dpiであっても、解像度1200dpiの画像データとほぼ等価な品質の画像を印刷することができ、従来の問題点で指摘したジャギーのない高精細な画像出力が可能となる。
次に、像域信号変換部101について説明する。
図4は、本実施の形態に係る像域信号変換部101の構成を示すブロック図である。
図において、400は8ビットのFIFOメモリで、前述したFIFO105と同じである。つまり、このFIFOメモリ400は、2ライン分遅延させるためのもので、後述する3×3の範囲での処理を可能にしている。401,402,403のそれぞれは8−4変換部で、8ビットの入力信号を4ビット信号に変換している。
図10(a)(b)は、この8−4変換部401〜403のそれぞれの詳細を示すブロック図である。
図10(b)がブロックの全体構成を示し、入力が8ビットのInDataで、出力が4ビットのFTDataであることを示しており、図10(a)は、そのブロックの内容を示している。431は、それぞれ対応するレジスタの設定値に従って8ビットのデータから1ビットを選択する8−1セレクタである。
レジスタA0〜A3は、それぞれは3ビットのレジスタで、これにより指示されたビットを選択している。即ち、8ビットのInDataから、これらレジスタで指定された任意ビットを出力する処理を行っている。つまり、4つのレジスタがあり、各々が1ビットを選択することにより計4ビットの出力を得ている。
404,405,406は、信号を反転する反転器を示し、ここでは例えば「1111」を「0000」に、「1010」を「0101」にするようなビット反転処理を行っている。
図11(a)〜(b)は、この反転器404〜406のそれぞれの動作を説明する図である。
図11(b)は全体構成を示しており、図11(a)は、反転器の構成を説明するブロック図である。ここでレジスタ(params→reg_A7)441は4ビットであり、このレジスタ441で指定された任意ビットを反転することができる。442は、それぞれ4ビットの内の1ビットを反転するための反転回路である。
また図4の各4−3変換部407,408,409は、8ビットの像域信号112から前述した8−4変換部401〜403で選択した4ビット信号を基に、新たに3ビットの像域信号を生成している。
図12(a)〜(b)は、4−3変換部407,408,409のそれぞれ詳細構成を説明する図である。
図12(b)は、4−3変換部407,408,409のそれぞれの全体構成を示し、図12(a)は、この変換部を説明する回路図である。
図12(b)は、4ビットのデータ(inoutdata)を入力し、3ビットのデータ(inoutdata')を出力する構成を示している。図12(a)は、その処理をロジック回路で示したもので、1101で示したビット0〜ビット3が、図12(b)に示したinoutdataに対応している。これが前述した任意ビット選択後の像域信号である。また、1102で示したビット0〜ビット2は、図12(b)に示したinoutdata'に対応しており、新たに作成された像域信号を表している。
本実施の形態で用いた信号1101の各ビットの意味は、以下の通りである。無論、これは一例でありこれに限定したものではないことは言うまでもない。
ビット0:ベクタ(1),非ベクタ(0)
ビット1:有彩色(1),無彩色(0)
ビット2:文字(1),非文字(0)
ビット3:オブジェクト有(1),オブジェクト無(0)
このような信号1101に対して、図12(a)に示したレジスタA(registerA)〜レジスタE(registerE)の設定により、新たな像域信号を生成している。
各レジスタについて説明すると、「registerA」は、ビット1の有彩色、無彩色信号を強制的に有彩色判定にするか否かの設定を示し、「registerB」はビット2の文字、非文字信号を、そのまま使うか反転して使うか、強制的に文字判定に固定するかの設定を示し、「registerC」は文字に関係する像域判定を使うか、強制的に「0」にするか「1」にするかの設定を示し、「regidterD」はグラフィックに関連する像域判定を使うか否かの設定を示し、「registerE」はイメージに関する像域判定を使うか否かの設定を示す。
このようにして作成された新たな像域信号において、ビット2はイメージに関する判定を表すビット、ビット1はグラフィックに関する判定を表すビット、ビット0はフォントに関する判定を表すビットとなる。
本実施の形態では、上述したビット2,ビット1,ビット0のそれぞれに、イメージ,グラフィック,フォントの像域を割り当てたが、本発明はこれに限定したものではなく、フォント,イメージ,グラフィックなどのように、別の順番でも良いことは言うまでもない。
図13(a)(b)は、エリア判定部410を説明する図で、2×2或は3×3の領域で以下に説明する処理を行っている。
図13(b)のブロック図は、エリア判定部410の全体ブロックを表している。入力信号は、4−3変換部407〜409のそれぞれから各3ビット信号(FTData)が3ライン(Line(a),Line(b),Line(c))分入力され、出力信号が4ビットのエリア信号(area1)455と2ビットのエリア信号(area2)456であることを表している。
図13(a)は、2×2と3×3のエリアを説明する図で、太枠は注目画素を表している。ここで、いずれのエリアを使うかは、不図示のレジスタ(params→TT)で設定される。また、図13(a)に記載された「0」〜「8」の各数値は、後述する処理画素の優先順位を示している。図13(a)の451,453に記載された「0」、「1」の数値は、入力信号FTDataの値を表している。ここでは「0」と「1」しか記していないが、FTDataは3ビット信号なので、0〜7までの信号が取り得ることは言うまでもない。
次に、このエリア判定部410の処理の詳細を説明する。
まず、レジスタparams→TTに「0」が設定された場合、前述した2×2のエリアが選択されて処理される。この場合の注目画素位置は、図13(a)の452で示した優先順位0の位置に相当している。また同様に、優先順位1の位置は、図15(a)の452で示した「1」に相当しており、以下同様に、優先順位2、優先順位3の位置が設定されている。この優先順位に基づいて、順に入力信号FTDataの最大値を検出する処理を行っている。そして、どの優先順位の位置で最大値が検出されたかが、area1の信号455として出力される。また、area2信号456は、各画素(4画素)の論理和を取って出力される構成となっている。
次に、レジスタparams→TTに「1」が設定された場合は、前述した3×3のエリアが選択されて処理される。この処理は、前述したレジスタparams→TTに「0」を設定した場合(2×2エリア)と基本動作は同じであるため、ここでの説明は略すが、参照画素が3×3と広がったため、area1の信号455の値は「0」〜「8」となる。そのため、area1信号455の出力ビット数は4ビットになっていることに注意する必要がある。それ以外は、前述と同様である。
尚、エリア判定部410は、図1に示した積和演算処理部106と同様に、1画素1ライン飛ばしで処理することで、解像度1200dpiのイメージデータを解像度600dpiのイメージデータに変換している。
繰り返しになるが、このエリア判定部410も単なる間引き処理を行っているのではなく、前述したようなマスク処理を行っているため、解像度600dpiに変換された後のデータでも解像度1200dpi相当の像域信号が生成可能となる。
図14(a)(b)は、8−1変換&像域信号処理部411を説明する図である。ここでは、エリア内の小径文字を検出する処理と前述したarea1の信号455に応じて、任意位置の入力DataZを選択する処理を行っている。このDataZとは、解像度1200dpiの入力像域信号112である。
図14(b)は、この8−1変換&像域信号処理部411全体を表している。ここで入力信号は、解像度1200dpiの8ビット像域信号と、4ビットのarea1信号455であり、出力が1ビットの「point_fg信号」と8ビットのzs信号である。この「point_fg信号」とは、小径文字がエリア内にあるか否かを示す信号であり、zs信号とは、area1信号455により選択された像域信号を示している。
まず、point_fg信号を生成する8−1変換・像域選択部461から説明する。
図14(a)に示すブロック図は、図14(b)で説明したpoint_fg信号生成部461を表している。まず、3ライン分の入力されたDataZは、レジスタA4(params→reg_A4)、レジスタA5(params→reg_A5)によって任意ビットが選択される。462,463はそれぞれ対応するレジスタA4,A5の値に応じて、8ビットデータのうちの1ビットを選択するセレクタである。本実施の形態では、レジスタA4でビット4の小径フラグを選択し、レジスタA5でビット2の文字フラグを選択している。そして、AND回路464で、これらの論理積を取ることにより小径文字信号を生成している。同様な処理を、2×2もしくは3×3のエリアで行い、それを論理演算部465で論理和演算することにより、point_fg信号を生成している。このエリアの選択は、前述同様、レジスタ(params→reg_TT)で行っている。また、本実施の形態では、図14(a)に示したように、レジスタA8(params→reg_A8)の値に応じてセレクタ466により、レジスタA4により選択された信号を反転することも可能としているが、ここでは、非反転で使用している。
ZS信号の生成は、前述したarea1信号に応じて、任意位置の入力DataZ信号を選択する処理を表している。任意位置とは、図13(a)の454で示した0〜8の位置を示しており、中心(注目画素)がData[yy][xx]であり、area1信号の「0」に対応している。Data[yy][aa+1]はarea1信号の「1」であり、Data[yy+1][xx+1]がarea1信号の「2」,...というように、それぞれ対応している。このようにarea1信号に応じて像域信号を選択することで、単に解像度1200dpiから解像度600dpiへ1画素1ラインの間引きを行うのではなく、像域信号の特性に応じた最適な解像度1200から600dpiへの変換が可能となる。
図15(a)(b)は、ビット変換器412の動作を説明する図である。
この実施の形態にビット変換器412は、アドレス空間が4ビット、データが2ビットのメモリで構成されている。
図15(a)における横軸、ビット3(bit3)〜ビット0(bit0)は、前述したエリア判定部410の出力area2信号456と、8−1変換&像域信号処理部411の出力point_fg(1ビット)の結合値である。この結合値とは、図4に示したように、「point_fg(3downto3)+area2(2downto0)」の処理を行ったものである。つまり、これで4ビット信号になる。そのため、図15(a)に示す横軸は、前述したようにビット3〜ビット0で表されている。
次に縦軸に関しては、inputの軸は、前述したビット3〜ビット0と等価である。outputの軸は2ビットの出力信号であり、本実施の形態では、欄外に記した意味のデータを用いた。例えば、input=1のときは文字画像であると判断して「3」を出力し、input=2のときはグラフィックであると判断して「1」を出力するなどである。この出力が図1で説明したsd信号に対応している。つまり、outputとして「3」が出力されたときは、マスク選択生成部108を介して、積和演算処理部106で演算したNo.3〜No.7が選択される。outputとして「1」が出力されたときは、積和演算処理部106で演算したNo.1が選択される。このように積和演算処理部106の演算の出力結果を切り替えることにより、画像の種類、つまり像域毎に、最適に解像度1200dpiから解像度600dpiへの変換が可能となること表している。
ところで、図15のinput=9〜15の欄外に「minor」と記しているが、これは、小径フラグが存在していたことを意味している。つまり、任意エリア内に小径フラグが存在していたことを表しており、その場合にはoutputとして「2」を出力している。その結果、sd信号が「2」となるため、積和演算処理部106からはNo.2の値が強制的に出力されることになる。即ち、積和演算を行っていない注目画素信号そのものが出力される。これは、前述の積和演算を行うと、解像度1200dpiのデータを解像度600dpiのデータで表現できるという効果はあるが、小径文字などは、電子写真の特性で潰れてしまい、判読性が落ちるという問題が発生する。そのため上記処理を行って、「判読性」と「600dpiデータによる1200dpiでの表現」の両立を可能としている。
このように、前述した処理で作成した、解像度1200dpi相当の解像度600dpiのグラフィック/文字/イメージなどの像域信号に応じて、前述した積和演算処理部106の結果を切り替えることで、各像域に応じて最適に解像度1200dpiから解像度600dpiへ変換できることになり、高精細な画像処理が可能となる。
図16は、図4のON/OFF切換え信号生成部413を説明するブロック図である。
ここでは、ビット変換器412で生成したsd信号に応じて、1ビットのon_off信号を生成している。具体的には、sd=3のときは、on_off信号を「1」として出力し、それ以外の時はon_off信号を「0」で出力する。
この1ビットのon_off信号が本実施の形態のポイントに係わるものとなる。つまり、前述した問題点で指摘したジャギーになる箇所が、このon_off信号で示された画素位置となるからである。よって、このON/OFF信号で示された箇所を、後述する本実施の形態の特徴である画像形成法で処理する構成とした。
信号SWAP部414は、このON/OFF切換え信号生成部413から出力されるon_off信号に応じて、任意ビットを書き換える処理を行っている。
図17(a)(b)は、信号SWAP部414を説明する図である。
図17(b)において、8ビットのzs信号と1ビットのon_off信号を入力し、8ビットのout信号を出力している。
その具体的な処理構成は、図17(a)に示すように、8ビットのレジスタA6(params→reg_A6)471は、ビット入れ替えをしたいビットを指定するレジスタである。セレクタ472は、このレジスタ471の設定値に応じて、zs信号の任意ビットをon_off信号と入れ替えている。
これによると、sd信号が「3」のときだけon_off信号が「1」となり、任意ビットに「1」が設定され、それ以外は「0」が設定されることになる。つまり、sd信号が「3」ということは、積和演算処理が行われたということを意味しており、この処理が行われたか否かを示す信号が、本実施の形態の特徴である画像形成処理の切り替えに用いられることになる。
以上の構成により、本実施の形態に係る像域信号変換部101からは、解像度600dpiに変換された像域信号114と積和演算の有無を表すsd信号とが出力される。
以上説明した画像変換部103と像域信号変換部101とで処理した信号に対して、画像処理部304(図3)で色処理や圧縮処理を行って、後述する画像形成処理を施すことにより、解像度1200dpi相当の画質を有する解像度600dpiの画像データを高精細に出力できるようになる。もちろん、後述する手法によりジャギーのない出力表現が可能となる。
次に本実施の形態の特徴の一つである画像形成法について説明する。
図18は、本実施の形態に係る画像形成処理部の概略構成を示すブロック図である。
図において、1900は画像形成処理部の全体構成を表しており、1905は解像度600dpiに変換された像域信号を示し、1906が解像度600dpiに変換された画像信号、1907は画像信号1906の位置を示すSync信号(同期信号)を示している。1908は、擬似中間調処理を施した4ビット信号である。像域信号1905と画像信号1906については前述した通りであるが、前述した信号との対応は、像域信号1905は、図1のセレクタ102からの出力信号に対応し、画像信号1906は図1のセレクタ111からの出力信号に対応している。
まずデコーダ1904について説明する。このデコーダ1904には、前述した8ビットの像域信号1905が入力されている。この像域信号1905は、各ビットに意味が割り振られている。例えば、ビット0:「ベクタ/非ベクタ(ビットマップ)」、ビット1:「色/無色」、ビット2:「文字/非文字」、ビット3:「PDL画像/スキャナ画像」などのように、各ビット毎に、意味付けがなされている。それ以外に、前述した「1200→600dpiへの変換のON/OFFを示す信号」もビット4に割り振られている。これら割り振り方は、本実施の形態に限定されていないことは言うまでもない。
従って、デコーダ1904は、このビット4に埋め込まれた「1200dpi→600dpi変換のON/OFF信号」を抽出する処理を行っている。具体的な処理をプログラムで示すと、「OUT=(IN>>4)&(0x01)」のようになる。
ここでOUTは、デコーダ1904からの1ビット出力を示し、INはデコーダ1904への8ビット入力信号を示す。簡単に説明すると、ここでは、まず8ビット入力信号を4ビットシフトし、次に最下位ビット(ビット4)だけ抽出するマスク(0x01)をかけるデコードを行っている。この結果が、デコード信号1911としてデコーダ1904から出力される。このデコード信号1911により、後述するディザ処理の結果をセレクタ1903で選択する。これによりセレクタ1903は、この信号1911(on_off信号)が「1」、即ち、積和演算処理が行われた時はディザ2(1902)の出力が選択される。前述したように、ジャギーになる箇所が、このon_off信号で示された画素位置となるため、その箇所では、そのジャギーを修正するディザ処理を行うディザ1或はディザ2を選択することになる。
次に、ディザ1(1901)とディザ2(1902)について説明する。これらディザ処理部1901,1902には、解像度1200dpiから解像度600dpiに変換された画像信号1906と、画素位置情報に関連したSync信号1907とが入力されている。
図19は、このディザ1(1901)の構成を説明する図である。尚、ディザ2(1902)の構成も基本的に同じ構成である。
本実施の形態では、4ビットの擬似中間調処理を行うため、閾値メモリ2009〜2016からなる15個の閾値メモリ1〜15が具備されている。ここで閾値の数が15個であるのは、4ビットで表される16個の閾値の内、「0」を除いた15個の閾値を用意しているからである。尚、このディザ処理が2ビット処理の場合は3個の閾値、3ビット処理の場合は7個の閾値になる。
比較機1〜15に関しても、閾値メモリと同様に2001〜2008で示す15個の比較機が用意されている。ここでは閾値メモリ2009に比較機2001が対応し、閾値メモリ2010に比較器2002が対応するように、各閾値メモリに対応して比較機が用意されている。そして各比較機において、閾値と入力データ1906との大小関係を比較して「0」又は「1」の信号を出力する構成となっている。即ち、入力データ1906が閾値以上の場合は「1」が出力され、それ以外は「0」が出力される。
ところで、各比較機で比較された結果は、15ビットの信号、例えば「111111111111111」や「111111111111110」といった信号でデコーダ2017に入力される。信号「111111111111111」は、デコーダ2017で「15」に変換され、「011111111111111」は「14」に変換される。
このデコーダ2017によるデコード例を以下に示す。等式の左側は入力値を示し、右側は出力値を示している。
111111111111111=15
011111111111111=14
011111111111110=13
100011111111111=12
000011111111111=11
000001111111111=10
000000111111111=9
000000011111111=8
000000001111111=7
000000000111111=6
000000000011111=5
000000000001111=4
000000000000111=3
000000000000011=2
000000000000001=1
000000000000000=0
上述した以外のパターン「101010101010101」や「000000000011001」のようなパターンは発生しない構成となっている。これらパターンが発生しない理由は、後述する図20及び図21に示す閾値によってコントロールされているためである。
ところで、これら閾値メモリ1〜15(2009〜2016)のアドレスコントロールは、アドレス発生機2018によって行われている。このアドレス発生機2018により、閾値メモリに設定された値を繰り返し周期的にアクセスして読み出すことにより、そのアクセスした順番で各比較機2001〜2008に閾値を送出することができる。この周期信号の発生は、同期信号であるHsyncとVsyncとを使用してカウンタにより発生させているが、具体的なカウントの仕方の説明は省略する。次に、どのような信号を発生させているのかを以下に説明する。
図20及び図21は、前述した閾値メモリ2009〜2016に設定される閾値を説明する図である。図20、図21における閾値マトリクスの各レベルの閾値は、それぞれ対応する閾値メモリに格納されている。図20の閾値がディザ1(1901)、図21の閾値がディザ2(1902)にそれぞれ対応している。以下、閾値のアクセス法の説明は、ディザ1(1901)もディザ2(1902)は等価な構成であるため、ここではディザ1(1901)の場合(図20)で説明する。
図20では、レベル1〜レベル15の15組の閾値が用意されている。この各レベル(1〜15)の閾値が、閾値メモリ2009〜2016のそれぞれに設定される。これら閾値への周期的なアクセスにおいて、各レベルへのアクセスは同じであるため、ここでは、レベル1の閾値群(閾値メモリ1)(1,2,5,10,3,4,7,12,6,8,9,14,11,13,15,16,17)を例にとって説明する。
まず始めに、画像データの1ライン目では、メモリに記憶されている閾値を順にアクセスして繰り返し使用する。つまり、「1,2,5,10,3,...,16,17」,「1,2,5,10,3,...,16,17」,...という順に、先頭の閾値から、繰り返し順次アクセスする。次に画像データの2ライン目では、アクセスの開始点を先頭から4番目(3×3のディザ処理の場合)の閾値から行う。つまり、「3,4,7,12,...,16,17」,「1,2,5,10,3,4,...」という順にアクセスする。このとき、4番目の閾値からアクセスするのは最初のみで、1ライン目の最後の閾値「17」までアクセスした後は1ライン目と同様に、先頭の「1」から順に繰り返しアクセスする。更に、画像データの3ライン目では、2ライン目で始めにアクセスした位置より、更に4番目の閾値よりアクセスを開始する。つまり、「6,8,9,14,...,16,17」,「1,2,5,...」という順でアクセスする。この場合も2ライン目と同様に、1ライン目の最後の閾値「17」までアクセスを終えたら、先頭の閾値「1」から順にアクセスする。
このようにラインが変わる毎に、アクセスを開始する閾値の位置をシフトさせていき、これを順に繰り返す構成となっている。一般的な式で表すと、nライン目(n>1)では{(n−1)×4}番目の閾値からアクセスを開始すると書き表される。
以上説明したアクセス法で周期的に閾値メモリにアクセスして擬似中間調処理を行うと145線、14度のスクリーンを形成することが可能となる。このような閾値の保持法及びアクセス法を用いることにより、閾値を記憶するためのメモリ容量を減らせるという効果がある。無論、このスクリーン形成や、上述したアクセス法に限定したものでないことは言うまでもない。
ところで、図20に示す閾値は、レベル1〜レベル15までを縦方向に見ると順に大きくなる並びになっている。例えば、図20に示した1列目に着目すると、「1,18,35,52,...,222,239」の順となっており、2列目は、「2,19,36,...,206,223,240」の順になっている。このような縦方向に順に大きくなる並びにすることで、デコーダ2017から出力される信号1909が、前述したように「101010101010101」のようなデータではなく、「000000011111111」のように、連続する「0」のデータ列と、連続する「1」のデータ列で構成されたデータになる。
説明を戻すが、図21に示したものも閾値マトリックスである。前述の図20に示した閾値と図21の閾値によるディザ処理の結果を、前述した「1200dpi→600dpi変換信号」に応じて切り替える点が本実施の形態の特徴である。即ち、オリジナル解像度(例えば1200dpi)を変換(例えば600dpi)した際に、オリジナル解像度に存在しないハーフトーンデータに変換された箇所に対してディザ1(図20の閾値)を適用することを特徴としている。
本実施の形態に係る図20に示した閾値の特徴は、ドットの成長順が縦方向ではなく、平面的であることである。図20のディザ閾値は、2201で示したように、同じレベル内で閾値が大きくなっている。つまり図20のレベル1をみると、レベル1で閾値が大きくなりきってから、レベル2へ閾値の成長が移行していくことを特徴としている。言うまでもないが、レベル2が成長しきった次は、レベル3,4,...というように順次移行している。
これに対して図21の閾値マトリクスによれば、ドットの成長順が縦方向であり、その成長順が、水平方向の4画素ごとに不連続となっている。
図22(a)〜(d)は、図21に示した閾値と図20に示した閾値とを使用した処理例を説明する図である。
図22(a),(b)は、図21の閾値を使用した場合を示し、図22(a)から図22(b)へと徐々に濃度が上がる様子を示している。
一方、図22(c),(d)は、図20の閾値を使用した場合の例を示している。ここでは図22(c)から図22(d)へと徐々に濃度が上昇する様子を示しているが、図22(a),(b)とは対象的に、平面的に全体の濃度が濃くなっていることが分かる。
一方、この閾値へのアクセス制御に関しては、前述した図20の場合と同じである。つまり、1ライン目は、始めから繰り返し閾値をアクセスし、nライン目は、(n−1)×4番目の閾値からアクセスして繰り返し制御する構成となっている。
以上説明したように本実施の形態によれば、縦方向にドットが成長するディザだけではなく、平面的にドットが成長するディザを用いて、これら2つを切り替えて使用することを特徴としている。この切り替え信号に「1200→600dpi変換信号」を用いることで、画質劣化の要因を含む箇所を適応的に改善することを可能にした。
図23は、本実施の形態に係る処理結果を模式的に表した図である。
図23(a)は、図21に示した閾値のみで処理した結果を示し、図23(b)は、前述したように制御信号で適応的に閾値を切り替えて処理した結果の一例を示している。これより、文字の周りのガタツキが改善されたことが分かる。ここでは、文字のエッジの改善を示したが、これ以外にもラインや図形などでも同様に効果がある。
このように本実施の形態に係る画像形成処理を行うことで、解像度1200dpiの画質を有したイメージデータを600dpiのデータに変換しても高精細に出力できる。更に、解像度1200dpiのイメージデータを解像度600dpiのハードウェアでも処理できるようになるため、低コストでコントローラやプリンタを構成することも可能になる。
(その他の実施例)
なお本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能(カメラ側で行われる処理、プリンタ側でわれる各種印刷処理)を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータで稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。例えば、PC上のドライバでこれらの処理を行う場合が、これに相当することは言うまでもない。
異常説明したように本実施の形態によれば、プリンタやコントローラ処理への負荷を抑えつつ、ジャギーのない高精細な画像出力が可能となる。つまり、例えば、解像度1200dpiの位相情報を保持したまま解像度600dpiのデータに変換でき、従来から問題になっていた文字やラインなどのエッジにジャギーのない高精細な出力が可能となった。
実際の解像度1200dpiの処理と比較すると、コントローラ内のコストが安くなるのは言うまでもないが、データ量が解像度1200dpiの場合の1/4に減少できるため、その処理速度も早くできる効果がある。
更に、プリンタにかけるコストも安くできる効果もある。なぜならば、解像度1200dpiのプリンタを作成する必要がなく、コストの安い低解像度600dpiのプリンタでも高精度の画像を印刷できる。
上記以外に、従来のSST(Super Smoothing Technology)では改善できなかった文字(フォント)やラインの比率(プロポーション)までも、解像度1200dpi並に解像度600dpiの画像データで印刷できるという効果もある。