図1は、本発明の実施例にかかる画像処理装置200の概略的な構成を示すブロック図である。スキャナインタフェース(以下、「スキャナI/F」と称する)部10には、アナログフロントエンド(AFE)15を介して、CCD17、CIS18が接続し、個別の専用回路を介在することなく、その読み取りデータを画像処理装置200に取り込むことができる。20はスキャナ画像処理部であり、スキャナI/F部10の処理によりメインメモリ100に展開された画像データに対して、画像処理動作モード(カラーコピー、モノクロコピー、カラースキャン、モノクロスキャン等)に応じた画像処理を実行する処理部である。
プリンタ画像処理部30は、スキャナ画像処理部20による画像処理の結果、得られたデータをプリンタに出力するための画像形成処理を行う処理ユニットであり、例えばN値化処理を施す。スキャナ画像処理部20及びプリンタ画像処理部30の処理内容に関しては後に詳細に説明する。40は本発明装置の記録部としてレーザービームプリンタ(以下、LBPと称する)が接続された場合のLBPインターフェース部(以下、LBPI/F部と称する)、45はLBPI/F部40に接続されたLBPである。
50、60はJPEG、JBIGモジュールであり、所定の規格に準拠した画像データの圧縮、伸張処理を実行する処理部である。65はスキャナI/F部10、スキャナ画像処理部20、プリンタ画像処理部30、LBPI/F部40、JPEG50、JBIG60に接続されたDMA制御部(以下、LDMACと称する)であり、前述した各処理部にはLDMACが有する各チャンネルが接続されている。
例えばスキャナ画像処理部20にはLDMAC65のチャンネル1(以下、DMAC/1ch)が接続されている。LDMACの各チャンネルは、メモリ制御部70と協働して、各画像処理部(10、20、30)とメインメモリ100との間のデータ授受に関し、DMA制御するための所定のアドレス情報を生成、設定する。例えば、画像読み取りデバイスの種類、CCD17、CIS18の別に応じて、スキャナI/F部10で読み取り処理された画像データをメインメモリ100にDMA転送するためのアドレス情報をDMAのチャンネルごとに生成し、または、メインメモリ100上に展開された画像データを読み出すためのアドレス情報をDMAのチャンネルに応じて生成し、スキャナ画像処理部20にDMA転送する等、メインメモリ100と、種々のインタフェース部(10、40)、画像処理部(20、30)間におけるDMA制御をメモリ制御手段70と共に司るユニットとして機能する。
70はメモリ制御部であり、画像処理系の第1BUS80及びコンピュータ系の第2BUS85とをそれぞれ接続し、メインメモリ100に対するデータの書き込み、読み出しのための制御を行う。80は、画像処理系の各処理部(10〜60)間でデータを授受することが可能な第1BUSであり、85は、CPU180、通信及びユーザインタフェース制御部170、メカトロ系制御部125等が接続されるコンピュータ系の第2BUSである。
90は第2BUS85と第2BUS85に接続された各制御部間のDMA制御を行う制御部であり、ROMISA97を介してROM95と接続し、画像読み取りデバイス(CCD17やCIS18)に応じて、適した制御パラメータ、制御プログラムが設定される。制御パラメータ等を画像読み取りデバイスに応じて種々設定することができるので、CCD17、CIS18の個別のデータ出力形式に応じた画像データの入力処理が可能となるため、専用のインタフェース回路を設ける必要がなくなる。
メカトロ系制御部125にはモータ制御部110と、モータの駆動タイミングや、画像処理系の処理の同調を制御するためのタイミング制御を司る割り込みタイマー制御部120が含まれる。
LCD制御部130は、画像処理装置の種々の設定、処理状況等をLCD135に表示するための表示制御を司るユニットである。
140、150は周辺機器との接続を可能にするUSBインタフェース部であり、図1では、インクジェットプリンタ175が接続した状態を示している。
160はメディアアクセス制御(MAC)部であり、接続する機器に対してデータをどのようなタイミングで送り出せばよいか(アクセス)等を制御するユニットである。180はCPUであり、画像処理装置200の全体的な動作を制御する。
次に、読み取りデバイスであるCCD17あるいはCIS18により読み取られたデータのフローに関して説明する。スキャナI/F部10は、画像読み取りデバイスとして、CCD17及びCIS18に対応可能であり、両画像読み取りデバイスの信号を入力処理する。ここで入力された画像データは、LDMAC65/0ch及びメモリ制御部70によりDMA転送されてメインメモリ100上に展開される。
図3にLDMAC65の概略的な構成と画像読み取りデバイス(CCD17、CIS18)により読み取った画像データを格納するメインメモリ100との関係を示す。画像データをメインメモリ100にDMA転送して格納する処理は、LDMAC65のI/O制御ユニット651と、メインメモリ100とスキャナ画像処理部20との間でデータの授受を制御するI/P制御ユニット652と、更に、メインメモリ100をリングバッファとして使用する場合、データの書き込みと、読み出しを調停するためのバッファコントローラ655が含まれる。
<I/O制御ユニット651の構成>
ここで、I/O制御ユニット651は、データ調停ユニット651aと、第1書き込みデータインタフェース(I/F)部651bと、I/Oインタフェース部651cとを有している。I/Oインタフェース部651cは、メインメモリ100にデータを格納するために生成した所定のアドレス情報を第1書き込みデータI/F部651bに設定する。また、スキャナI/F部10より出力される画像データを受信して、I/O制御ユニット651内の各バッファチャンネル(以下、「チャンネル」と称する)(ch0〜ch2)にデータを格納する。
第1書き込みデータI/F部651bはメモリ制御部70に対してデータの転送を行うための第1BUS80と接続し、生成された所定のアドレス情報に従って各チャンネル(ch0〜ch2)に格納されているデータをメモリ制御部70にDMA転送する。
データ調停ユニット651aは、各チャンネルに格納されているデータの読み出しを行い、第1書き込みデータI/F部651bの書き込み処理に合わせて各チャンネルのデータの受け渡しを行う。第1書き込みデータI/F部651bはバッファコントローラ655と接続し、後に説明するI/P制御ユニット652によるデータの読み出し、もしくは書き込みとアクセスが競合しないよう制御される。
このアクセスの制御により、メモリ制御部70が接続されているメインメモリ100をリングバッファとして使用した場合であっても、メインメモリ100に格納されているデータの読み出し前に、同一のメモリアドレスにデータをオーバライトする等のトラブルを防止することができ、メモリリソースを有効に活用することが可能になる。また、以上説明したように、読み取りデバイスによって読み取られた画像データの転送は、専用のDMAチャンネルによりメインメモリ100に展開するので、DMA転送時のアドレス制御を画像読み取りデバイスに合わせて切替えることにより、専用のインターフェース回路を有することなく画像データの取り込みを行える。
なお、図1においては上記I/O制御ユニット651及びI/P制御ユニット652をそれぞれDMAC/ch0及びDMAC/ch1と記載している。また、図1において、LDMAC65内部構成であるDMAC/2ch〜5chにおいても図3に記載した構成となっており、メインメモリ100に対して書き込みと読み取りを行うチャンネルに関してはI/O制御ユニット651及びI/P制御ユニット652の構成からなる。
メインメモリ100に展開された画像データは、所定の矩形領域ごとに、対応する画像データ、即ちR、G、Bデータ、もしくはモノクロ画像データとして、スキャナ画像処理部20に入力され、矩形領域毎に画像処理が実行される。矩形領域ごとに画像処理を行うために、CPU180は画像読み取りデバイス(CCD17/CIS18)の受光素子の感度のばらつきやLED19の光量のばらつき等を補正するシェーディング(SHD)補正データをメインメモリ100内に準備し、矩形領域のシェーディングデータ及び矩形領域の画像データは、後に説明するI/P制御ユニット72によりスキャナ画像処理部20にDMA転送される。
図4は、矩形領域の画像データをメインメモリ100からスキャナ画像処理部20のブロックバッファRAM210(図2)に転送する際のデータの読み出しを説明するための図である。
スキャナ画像処理部20で処理される画像データの特定の方法について、図4(a)中の領域(0,0)を例として説明する。まず、領域(0,0)の有効画素領域abcdを処理する場合、有効領域以上の画像データ領域(AB1CD1)を設定しなければならない。ここで、有効画素領域とは、スキャナ画像処理部20において処理が実行される場合に注目画素となりえる画素が存在する領域を意味し、当該画素が存在する領域の形状が矩形の場合には特に有効矩形領域と呼ぶ。また、上記のように有効画像領域以上の画像データを設定するのは、有効領域の境界付近に存在する注目画素に対してフィルタリング処理等の処理を行うためには、その周囲画素を参照しなければならないからである。以下の説明において、特に、有効画素領域や有効矩形領域と断らずに領域を指定する場合には、有効画素領域に処理に必要な周辺画素まで含めた領域、即ち、領域(0,0)であれば、画像データ領域AB1CD1を言うものとする。
図4(c)は有効画素領域abcdの処理に際して利用される周囲画素を説明するための図である。ここにおいて、NmはLDMAC65がスキャナ画像処理部20に対して入力する矩形画像領域の主走査方向画素数を表し、Nsは副走査方向画素数を表している。Naは有効画素領域abcdに対して必要となる左端側の必要画素数を、同様にNbは右端側必要画素数を、Ncは上端側画素数を、Ndは下端側画素数をそれぞれ表す。
例えば、有効画素領域における任意の注目画素に対して5×5のフィルタリング処理を施す場合、注目画素を中心として主走査方向に5画素、副走査方向に5画素が必要となるので、領域の境界に位置する注目画素を考慮すればNa、Nb、Nc、Ndは全て2画素となる。
つまり、この場合の有効画素数は(Nm−2−2)*(Ns−2−2)画素となる。更に、カラーコピーを行う場合は、文字の判定をするため、画像処理モードの内で最も大きい参照領域が必要となる。これは黒文字の検出のために網点と文字とを確実に判定する必要があり、そのため網点の周期を判定することが求められる。この場合のNa、Nb、Nc、Ndはその判定アルゴリズムに応じて設定されるが、一般的には10画素を超えることが多い。このように、有効画素領域の周囲に必要となる画素データは、スキャナ画像処理部20が行う画像処理アルゴリズムによって決定されるものであり、本発明は特定の画素数に対応する実施例について記載するものではなく、本実施例においては画素数を特に限定しない。
次に、LDMAC65がメインメモリ100からスキャナ画像処理部20に対して画像データを転送する場合の動作に関して説明する。LDMAC65の画像データの転送はメインメモリ100中の画像データを矩形領域に区切った単位で行われる。有効画像領域がabcdである矩形画像の処理を行う場合の動作は、図4(a)、図4(b)に示す通りである。
LDMAC65はメインメモリ中のAをスタートアドレスとして、対応するデータが主走査方向B1アドレスまで読み出す。主走査方向のデータの読み出しが終了すると、次に読み出すデータのアドレスを、副走査方向に1ライン分をシフトした図中のA2アドレスに移し、主走査方向にB3アドレスの画素までデータが読み出される。以下同様にデータが読み出され、有効画素領域を含んだ周囲画素領域の最終ラインに相当するCアドレスからD1アドレスまでの主走査方向のデータの読み出しが行われて、領域(0,0)のデータの読み出しが完了する。
領域(0、1)に関しては、その有効画素領域bedfに対して、有効領域の周囲矩形領域としてB2ED2Fが設定されており(図4(b))、画像データの読み出しはB2をスタートアドレスとして、対応するデータが主走査方向Eアドレスまで読み出される。主走査方向のデータの読み出しが終了すると、次に読み出すデータのアドレスを、副走査方向に1ライン分シフトした図中のB4アドレスに移し、主走査方向にB5アドレスの画素までデータが読み出される。
そして、周囲矩形領域の最終ラインに相当するD2アドレスからFアドレスまでの主走査方向の画像データの読み出しが行われて、第2領域のデータの読み出しが完了する。以上の処理により、周囲矩形領域を含む有効矩形領域のデータが読み出される。以下、同様の処理が各矩形領域に対して行われる。
<I/P制御ユニット652の構成>
メインメモリ100に格納されたデータの読み出しは、図3におけるLDMAC65内のI/P制御ユニット652により制御される。読み出しデータI/F部652aは、第2BUS80及びメモリ制御部70を介してメインメモリ100と接続し、読み出しデータI/F部652aは、LDMAC65により生成されたアドレス情報を参照して、メインメモリ100から所定の画像データを読み出すことができる。
読み出されたデータはデータ設定ユニット652bにより、複数個設けられた所定のチャンネル(ch3〜ch6)に設定される。例えば、シェーディング補正用の画像データをチャンネル3(ch3)、面順次のRデータをチャンネル4(ch4)、面順次のGデータをチャンネル5(ch5)、面順次のBデータをチャンネル6(ch6)と、各データが設定される。
各チャンネル(ch3〜ch6)に設定されたデータは、I/Pインタフェース652cを介して、I/P制御ユニット652の制御の下、順次にDMA転送され、スキャナ画像処理部20のブロックバッファRAM210(図2)にローディングされる。
また、チャンネル7(ch7)は、所定の画像処理が施されたデータをメインメモリ100に格納するために、スキャナ画像処理部20から出力される点順次の画像データを格納するチャンネルである。スキャナ画像処理部20は、点順次の画像データの出力に合わせて、アドレス情報及び各制御信号(矩形領域終了を示すブロック・エンド信号、矩形領域中のラインの終了を示すライン・エンド信号)を出力し、これらの情報に基づいて、第2書き込みデータI/F652dは、チャンネル7に格納されている画像データを、メモリ制御部70を介してメインメモリ100に格納する。
図2は、スキャナ画像処理部20の概略的な構成を説明するブロック図であり、ブロックバッファRAM210にローディングされたデータに対して、各画像処理モードに応じた処理が実行される。スキャナ画像処理部20は、設定された画像処理モードに応じて、矩形領域に対して参照するべき矩形画素領域を切替えて処理を実行する。以下、図2を参照してスキャナ画像処理部20の内容を説明する。
図2において、シェーディング補正ブロック(SHD)22は、主走査方向の光源(LED19)の光量分布のばらつきや、画像読み取りデバイスの受光素子のばらつき、暗出力のオフセットを補正する処理ブロックである。シェーディングデータはメインメモリ100上で明R、明G、明B、暗R、暗G、暗Bの順に1画素分の補正データが面順次に格納されており、矩形領域に対応した画素数分(主走査方向画素数Nm)がスキャナ画像処理部20へ入力される。入力された線順次の補正データは、入力データ処理部21により点順次のデータに変換され、スキャナ画像処理部20のブロックバッファRMA210に格納される。そして、矩形領域のシェーディングデータの取り込みが終了すると、画像データの転送に移行する。
入力データ処理部21は、R、G、Bに分離した面順次のデータを点順次のデータに再構成する処理を実行する処理部である。1画素のデータはメインメモリ100上に面順次のデータとしてR、G、B各色毎に格納されており、これらのデータがブロックバッファRAM210にローディングされると、入力データ処理部21は、各色データごとに1画素データを取り出し、1画素のR、G、Bデータとして再構成する。再構成の処理を画素毎に行い、面順次の画像データを点順次のデータに変換する。
シェーディング補正処理22により補正された画素データは、処理ブロック23において、更に画像処理が施される。処理ブロック23において、平均化処理部は、主走査方向の読み取り解像度を落とすためのサブサンプリング(単純間引き)、あるいは平均化処理を行う処理ブロックであり、入力マスキング処理部は、入力されたR、G、Bデータの色補正を演算する処理ブロックである。γ補正処理部は入力されたデータに対して、所定の階調特性を与える処理ブロックである。
文字判定処理24は、入力画像データに対して、文字属性を判定、即ち文字判別、線画輪郭の画素判別を行い、入力画像データを構成する画素毎に文字、線画を形成するか否かを判定するための処理ブロックである。文字判別処理は、上述のように網点周期よりも広いエリアを参照する必要があるため、主走査方向、副走査方向ともに有効画素領域よりも10画素程度広い領域を参照するのが一般的である。
なお、文字判定処理24により生成される文字判定信号245は有効矩形領域の画素数分出力されるものであり、後に説明するフィルタ補正処理ブロック及びブロック属性判定処理ブロックで使用される。また、以降の説明において、文字判定信号245の論理は、値が"0"で非文字判定、値が"1"で文字判定であるものとする。
処理ブロック25は、MTF補正処理部、色変換処理部及び下地濃度調整処理部で構成され、処理ブロック23によって処理された画素データに対して以下のような画像処理が行われる。まず、MTF補正処理部は、画像読み取りデバイスを変更した際の、MTF差補正、縮小変倍時のモアレ低減のために主走査方向にフィルタ処理を行う処理部であり、注目領域に対して、主走査方向の所定画素について、各係数を乗加算処理するブロックである。色変換処理部は、後続のフィルタ処理ブロック26で行うフィルタリング(明度強調、彩度強調、色判定)に際し、R,G、B各色の多値画像データの変換処理を行う。下地濃度調整処理部は、原稿の下地濃度を自動認識し、下地濃度値を白側に補正することによりファクシミリ通信等に適した二値化データを得るための処理を実行する。
フィルタ処理ブロック26は、先の色変換処理において、得られたデータに対して色判定とフィルタリングを行うための処理として、画像の明度成分(L)のエッジ強度処理及び彩度(Ca、Cb)の強調処理を行う。このとき、文字判定処理ブロック24で生成された文字、線画輪郭部の判定信号等に基づき、強調量のパラメータを変化させることができる。フィルタ処理後のデータは、内部信号である輝度信号(L)と色差信号(Ca、Cb)からR、G、Bデータに変換されて出力される。この処理ブロックはモノクロ画像データを処理する場合は5画素×5画素のエッジ強調フィルタとして機能する。
ブロック27は、主走査、副走査方向の線形補間変倍処理を施す処理ブロックであり、設定された倍率に応じて入力画素データを主走査方向及び副走査方向に拡大処理あるいは縮小処理を行う。
ブロック28は無彩色判定処理ブロックであり、処理ブロック25による出力データを参照して、入力される画素が無彩色属性を有するか、即ち、無彩色画像を構成する画素であるか否かを判定する無彩色判定を行う。判定結果は後段のブロック属性判定処理部29で使用されるため、無彩色判定信号285として出力される。なお、前記無彩色判定信号285も文字判定信号245同様、有効矩形領域に対応する画素数分出力される。また、以降の説明における無彩色判定信号285の論理は、値が"0"で有彩色判定、値が"1"で無彩色判定であるものとする。
ブロック29はブロック属性判定処理ブロックであり、文字判定処理ブロック24の出力である文字判定信号245と無彩色判定処理ブロック28の出力である無彩色判定信号285とを参照し、入力される有効矩形画像領域のブロック属性の判定を行う。文字判定信号245及び無彩色判定信号285はそれぞれ有効矩形領域の画素数に限定されて出力されるので、LDMAC65がスキャナ画像処理20に入力する矩形領域中の有効領域単位で判定処理される。
本実施例では以上の画像処理が、設定された画像処理モード(コピーモード、スキャナモード等)に応じて、矩形領域単位の画像データに施される。また、画像処理モードに応じた矩形領域をメインメモリ100上に設定し、この矩形領域の単位を切り替えることにより、各画像処理モードに応じた解像度、高精彩処理を実現することが可能になる。
次に本発明装置の特徴部分であるブロック属性判定処理に関して詳細に説明する。
図21は、ブロック属性判定処理の流れを示すフローチャートである。まず、上記のように、メインメモリ100から、ブロックバッファRAM210に矩形領域の画像データが転送される(ステップS2101)。
文字判定処理24は、ブロックバッファRAM210へ転送された画像データに対して、文字属性判定を行い、文字判定信号245をブロック属性判定処理部29へ出力する(ステップS2102)。また、無彩色判定処理部28は、同様に画像データに対して無彩色属性判定を行い、無彩色判定信号285をブロック属性判定処理部29へ出力する(ステップS2103)。
図5はブロック属性判定処理部29の構成の一例を表す図である。なお、図5は、各ブロックにおいて実行される処理の順に記載されているので、ブロック属性判定処理の各工程を、各ブロックにおいて実行される処理により表してもいる。図5(a)において、291は入力される文字判定信号245及び無彩色判定信号285により、ブロック属性を判定するための判定信号を生成する判定信号生成部、292は判定信号生成部291により生成されるブロック属性判定信号、293は主走査方向の判定を行う主走査方向判定部、294は副走査方向の判定を行う副走査方向判定部、295、及び296は主走査方向判定部293、副走査方向判定部294が出力する判定信号であり、それぞれ内部で計数されたカウント値が出力される。
297は主走査方向判定信号295及び副走査方向判定信号296の値を参照してブロック属性を判定するブロック属性判定部、298は入力矩形画像データ中の所定矩形領域単位のブロック属性を示す判定信号、299はブロック属性判定結果信号298を入力される主走査方向の複数の矩形領域分記憶する判定結果保持部である。
以下、ブロック属性判定処理部29を構成する各処理部に関して説明する。図8は判定信号生成部291の構成を示す図である。なお、図8は、各ブロックにおいて実行される処理の順に記載されているので、判定信号生成処理の各工程を、各ブロックにおいて実行される処理により表してもいる。ブロック属性判定信号292は、ブロック属性判定処理ブロック29の外部から入力される文字判定信号245及び無彩色判定信号285を参照して生成される(ステップS2104)。文字判定信号245は反転回路2911により論理を反転した信号が生成され、それぞれセレクタ2912に入力される。また無彩色判定信号285も同様に反転回路2913により論理を反転した信号が生成され、それぞれセレクタ2914に入力される。セレクタ2912及びセレクタ2914は例えばブロック属性判定処理部29内部に構成したレジスタ値により選択信号が切り替えられる構成となる(切り替え信号2917、切り替え信号2918)。
判定信号生成部291では、文字判定信号245をセレクタ2912及びセレクタ2916を介してスルーさせる構成としている。従って、文字判定信号をスルーさせる場合には、切替信号2917及び切替信号2919として"0"が入力され、入力された文字判定信号245がセレクタ2912を介してセレクタ2916からそのまま出力される。よって、この場合、ブロックの属性を判定するための基本信号としてセレクタ2916からの出力される信号(これが、ブロック属性判定信号292)は、"0"で非文字を表し、"1"で文字を表す。
一方、この文字判定信号245に無彩色判定信号285の結果を反映させる場合は、セレクタ2914において無彩色判定信号285を選択し、AND回路2915へ出力する。これにより、AND回路2915へは、文字判定の場合も非文字判定の場合も、セレクタ2912側から"1"が入力されるので、AND回路2915からの出力は、無彩色判定信号285の結果が反映されることとなり、無彩色判定信号285が無彩色判定の場合に"1"が出力され、有彩色判定の場合に"0"が出力されることとなる。。
セレクタ2916の切り替え信号は、前述のセレクタ2912あるいはセレクタ2914の切り替え信号と同様、ブロック属性判定処理部29の内部に構成されたレジスタ値により切替える。このレジスタ値は、文字判定信号245をスルーさせる場合には、"0"に設定され、文字判定信号245に無彩色判定信号285を反映させて出力させる場合には"1"が設定される。
このように、文字判定処理ブロック24、無彩色判定処理ブロック28が出力する判定信号を各々反転できる機能をもたせ、更にAND回路2916により演算させた信号をブロック属性判定信号292として選択できるようにしたことにより、種々のブロック判定信号292(文字、非文字、無彩色文字、有彩色文字、無彩色非文字、有彩色非文字)を生成することができる。
また、図8では、文字判定信号245をスルーさせるか、無彩色判定信号285を反映させるかを選択可能とした構成を有する判定信号生成部291の例を示したが、当該判定信号生成部291を無彩色判定信号285をスルーさせるか、文字判定信号245を反映させるかを選択可能とする構成としてもよい。具体的には、セレクタ2912へ入力される信号を無彩色判定信号285とし、セレクタ2914へ入力される信号を文字判定信号245とする。この場合、無彩色判定信号285がスルーされる場合には、ブロック属性判定信号292は、"1"において無彩色を表し、"0"において有彩色を表す。
また、文字判定信号245の内容を反映させる場合には、セレクタ2912からの出力は無彩色判定信号285がスルーされるように切替信号2917が入力され、セレクタ2914からは、出力が"1"となるように切替信号2918が入力される。これにより、AND回路2915へは、セレクタ2912からは、無彩色判定信号285が入力され、セレクタ2914からは常に"1"が入力される。よって、AND回路2915からの出力は、"1"において無彩色文字又は無彩色非文字を表し、"0"において、有彩色文字または有彩色非文字を表すこととなる。このようにして、文字判定信号245をスルーさせるか、無彩色判定信号285を反映させるかを選択可能とした構成を有する判定信号生成部291では、ブロック属性判定信号292は、無彩色、有彩色、無彩色文字、無彩色非文字、有彩色文字、有彩色非文字を表すことができる。
次に、主走査方向判定部293においてブロック判定信号292を参照して主走査方向判定を行い判定信号295を出力するための処理内容に関して説明する。図5(b)は主走査方向判定部293の内部構成を示す図である。図5(b)に記載した通り、主走査方向判定部293は主走査連続性認識部2931、無彩色文字群認識部2932、主走査カウント部2933から構成される。
別図を用いて、各処理部の動作を更に詳細に説明する。図6(a)は主走査連続性認識部2931の処理内容を説明する図である。なお、同図において、"0"、"1"と記載したブロックは画素を示し、内部に記載した数字はブロック属性判定信号292の論理を示すものである。また、以降の主走査連続性認識部2931の説明においては、その説明の簡略化のため、ブロック属性判定処理部29に入力される有効矩形領域のライン数が4ラインとして説明する。
主走査連続性認識部2931は、ブロック属性判定信号292の主走査方向の連続性を検出する処理部である。以降、図示しないブロック属性判定処理部29内部に構成されたレジスタにより、連続度"5"が設定された場合に関して説明する。図6(a)の0ライン目のブロック属性判定信号292の並びを見ると、2画素目から6画素目まで"1"が5回連続している。
このような場合、主走査連続性認識部2931は、ブロック属性判定信号292が設定された連続度を満たすものであると検出する(図6中太枠線中のブロック属性信号292が検出箇所)。なお、カウント中、連続度が設定値に満たない状態で、ブロック属性判定信号292が"0"となった場合は、カウント値を初期化して再度カウントを開始する。
更に主走査連続性認識部2931は前記検出信号がラインの終端画素までに何回発生したかを検出する。つまり、図6(a)の場合においては、0ライン目:3回、1ライン目:2回、2ライン目:1回、3ライン目:3回が検出回数となる。
無彩色文字群認識部2932は、主走査連続性認識部2931が検出したライン毎の検出回数が所定の値以上であったラインを検出する。例えば、連続度が"5"であり、前記連続度がライン単位で3回以上発生したラインを検出する設定の場合、0ライン目と3ライン目が検出対象ラインとなる(図6(b))。
主走査カウント部2933は無彩色文字群認識部2932が検出したライン数をカウントする処理を行う。前記説明で用いた設定値の場合、主走査カウント部2933が出力する値は"2"(判定信号295)となる(図6(c))。
以上のようにして主走査方向判定部293はブロック判定信号292を参照して主走査方向判定を行い判定信号295を出力する(ステップS2105)。
このように、各ラインにおいてブロック属性信号の連続性に注目しているのは、ブロック属性判定結果の精度を向上させるためである。例えば、文字を認識する場合、文字を構成する画素は連続して配置される可能性が高く、単にラインにおけるブロック属性信号の量(ヒストグラム)に着目しただけでは、信号値"1"を有する画素が連続的に配置されてはいないが多数配置されている場合であっても文字と判定されてしまう場合があり、判定結果の精度が下がってしまうこととなる。
次に副走査方向判定部294の処理内容に関して説明する。副走査方向判定部294の構成を図5(c)に示す。図5(c)に示したとおり、副走査方向判定部294は主走査連続性認識部2941、無彩色文字群認識部2942、副走査連続性認識部2943、副走査カウント部2944により構成される。また、副走査方向判定部294が参照するブロック属性判定信号は主走査方向判定部293が参照するブロック属性判定信号と同一である。
以降、副走査方向判定部294を構成する各処理部に関して説明するが、主走査連続性認識部2941、無彩色文字群認識部2942の動作は主走査方向判定部293で説明した主走査連続性認識部2931、無彩色文字群認識部2932の動作と同じであるため、ここでの説明は省略する。ただし、動作が同一であるだけで、連続度やライン中の連続度発生回数の検出数といった比較値は別の値が設定できるものとする。
副走査連続性認識部2943は無彩色文字群認識部2942により検出されたラインが副走査方向に連続していることを検出する処理部である。例えばブロック属性判定信号292が図7(a)に示した配列であり、主走査方向判定部293の説明で用いた比較値が設定(連続度:5、検出回数3回以上)されたとすると、"1"が5画素分連続し、且つライン中に3回以上であるラインは0ライン目、1ライン目、4ライン目、5ライン目、6ライン目となる。
副走査連続性認識部2943にて検出する副走査連続度が"2"と設定された場合、図7(a)では0ライン目と1ライン目、4ライン目と5ライン目が検出ライン群となる。5ライン目と6ライン目も検出ラインとしては連続しているが、5ライン目は4ライン目とで連続性が検出されているため、副走査連続性認識部2943では検出されない。副走査カウント部2944は、副走査連続性認識部2943にて検出されたライン群の数をカウントする。つまり、前記例では、カウント値は"2"(判定信号296)となる。
以上のようにして副走査方向判定部294はブロック判定信号292を参照して副走査方向判定を行い判定信号296を出力する(ステップS2106)。
次にブロック属性判定部297の処理内容を説明する。図13はブロック属性判定部297の構成を示す図である。なお、図13は、各ブロックにおいて実行される処理の順に記載されているので、ブロック属性判定部297における処理の各工程を、各ブロックにおいて実行される処理により表してもいる。同図において、2971及び2973は入力される判定信号295及び判定信号296との比較値が設定されるレジスタ、2972及び2974はレジスタ2971と判定信号295、レジスタ2973と判定信号296とを比較する比較器、2975はAND回路である。
比較器2972は、主走査方向判定部293による判定信号295とレジスタ2971に設定された値と比較を行い、判定信号295がレジスタ2971設定値よりも大きい場合、条件を満たす信号("1")をAND回路2975に対して出力する。同様に比較器2974は、副走査方向判定部294による判定信号296とレジスタ2972に設定された値と比較を行い、判定信号296がレジスタ2972設定値よりも大きい場合、条件を満たす信号("1")をAND回路2975に対して出力する。
AND回路2975は、比較器2972及び比較器2974の出力が双方"1"である場合、ブロック属性判定結果信号298をアクティブ状態("1")として出力する。例えばブロック属性判定信号292が無彩色文字判定として設定され、且つ、図6、図7の例において、レジスタ2971及びレジスタ2973にそれぞれ"2"が設定されていた場合、比較器2972及び比較器2974は条件を満たす信号をAND回路2975に対して出力するので、このとき入力された有効矩形領域の属性は無彩色であることを示す信号を出力する("1"を出力)。一方、比較器2972又は2974のいずれかから"1"が入力されない場合には、有効矩形領域の属性は有彩色であることを示す信号を出力する("0"を出力)。
以上のようにして、ブロック属性判定部297において、判定信号295及び296を利用して、有効矩形領域毎にブロック属性判定結果信号298が生成・出力される(ステップS2107)。
ブロック属性判定部297により判定されたブロック属性判定結果信号298は後段の判定結果保持部299により保持される(ステップS2108)。判定結果保持部299の構成を図14に示す。なお、図14は、各ブロックにおいて実行される処理の順に記載されているので、判定結果保持部における処理の各工程を、各ブロックにおいて実行される処理により表してもいる。図14において、2991は入力される有効矩形領域の最終画素処理毎にアクティブとなるタイミング信号である。即ち、図4(c)の場合を例にとると、dの画素が処理されると、タイミング信号2991が"1"となる。2992はブロック属性判定部297にて判定する領域単位でアクティブとなるタイミング信号である。図4(c)の場合では、有効矩形領域abcdの範囲に属する画素が処理されている間は、タイミング信号が"1"となる。
2993は有効矩形領域が主走査方向に何ブロック構成されるかを検出するための比較値を保持するレジスタ、2994はタイミング信号2992のアクティブ状態(信号値が"1")と非アクティブ状態(信号値が"0")との切り替わり回数を計測するカウンタ、2995はレジスタ2993の設定値とカウンタ2994の計数値とを比較してタイミング信号2997を生成する比較回路である。タイミング信号2997は、主走査方向の最終有効矩形領域の判定処理が終了したときにのみアクティブとなる信号であり、主走査方向単位の処理の同期信号として使用される。即ち、レジスタ2993には、主走査方向に存在するブロック数に相当する値が設定されることとなる。2996はブロック属性判定結果信号298を保持するシフトレジスタであり、2999はシフトレジスタ2996の出力信号をタイミング信号2997に同期して保持する判定結果保持レジスタである。
入力されるブロック属性判定結果信号298はタイミング信号2991に同期して順次シフトレジスタ2996に入力され、有効矩形領域毎にブロック属性判定結果が保持される。このとき、シフトレジスタ2996は入力される有効矩形領域毎に以前に保持したブロック属性判定結果信号をシフトしながら保持する。主走査方向の最終有効矩形領域の処理が終了すると、カウンタ2994においてカウントされた値とレジスタ2993の設定値とが例えば一致することとなり、タイミング信号2997が出力されて、このタイミング信号2997に同期してシフトレジスタ2996の値は判定結果保持レジスタ2999に転送される。これにより主走査方向に互いに隣接する複数の有効矩形領域のブロック属性判定結果が、判定結果保持レジスタ2999に保持されることとなる。このとき、シフトレジスタ2996は、次の有効矩形領域のブロック属性判定結果を保持するためにクリアされる。
続いて、上記で処理された有効矩形領域と副走査方向で隣接する有効矩形領域が主走査方向に順に処理され、ブロック属性判定結果信号298がシフトレジスタ2996に入力されると、シフトレジスタ2996は有効矩形領域のブロック属性判定結果信号として値を保持していく。このとき、主走査方向に全ての有効矩形領域のブロック属性判定結果が保持されるまでは、シフトレジスタ2996に保持されたブロック属性判定結果は判定結果保持レジスタ2999に転送されないので、次の主走査方向最終有効矩形領域の処理が完了するまで判定結果保持レジスタ2999の値は保持される。よって、この間にCPU180により、判定結果保持レジスタ2999の値の読み取りを行って、これまでに処理した有効矩形領域のブロック属性判定結果を利用することができる。
なお、これまでの説明においては、LDMAC65がスキャナ画像処理部20に入力する有効矩形領域を単位としてブロック属性判定を行う場合について説明したが、本発明は前記矩形領域単位に限定されるものではない。つまり、入力される有効矩形領域を更に内部で細分化し、細分化した領域を単位としてブロック属性判定を行っても良い。図9にこの場合のブロック構成を示す。
図9において、スキャナ画像処理部20全体が処理する有効矩形領域はabcdであり、前記有効矩形領域の処理結果を得るためにLDMAC65がスキャナ画像処理部20に入力する矩形画像領域は領域ABCDである。図9では、有効矩形領域abcdを更に主走査方向画素数Neからなる矩形領域ab0cd0、a0b1c0d1、a1b2c1d2、a2bc2dの4つに分割してブロック属性を判定する旨を示している。この例の場合、図14におけるタイミング信号2991は画素d0、d1、d2、dが入力、処理されたタイミングでアクティブとなり、タイミング信号2992は画素dが入力、処理されたタイミングでアクティブとなる。
また、図9においては有効矩形領域の細分化には主走査方向画素Ne分均等に分割したが、各領域の主走査方向画素数をそれぞれ別の画素数としても良いし、有効矩形領域と細分化した領域に対して各々別の判定処理部を持たせてブロック属性の判定をしても良い。
有効矩形領域を更に細分化するNeの値は、ハード規模を考慮すると2のべき乗であることが望ましいが本発明装置におけるブロック属性判定処理は前記単位で限定されるものではない。また、図9においては主走査方向のみの細分化を示したが副走査方向に更に細分化しても良い。この場合の構成図を図11に示す。図11では、有効矩形領域abcdを副走査方向にNfライン、Ngラインに2分割し、内部領域ab0e0f0、a0b1e1f1、a1b2e2f2、a2be3f3、g0h0cd0、g1h1c0d1、g2h2c1d2、g3h3c2dの8つの領域に分割している。この例の場合、図14におけるタイミング信号2991は画素f0、f1、f2、f3、d0、d1、d2、dが入力、処理されたタイミングでアクティブとなり、タイミング信号2992は画素dが入力、処理されたタイミングでアクティブとなる。
変倍処理を行うような場合であって、有効矩形領域の処理結果を2のべき乗としたい場合は、周囲のラインデータを参照することが求められる。即ち、単に参照画素として有効矩形領域の周辺の画素を利用するだけでなく、当該周辺の画素を注目画素として処理を実行しなければならない場合がある。この場合、最終的に処理され、出力される有効矩形領域は、主走査方向画素数あるいは副走査ライン数を2のべき乗として細分化可能な領域となるが、ラインメモリ100からスキャナ画像処理部へ入力される画像データでは、上記周囲のラインデータも有効矩形領域として入力される。よって、ブロック属性判定処理においては、主走査方向画素数あるいは副走査ライン数を2のべき乗として細分化することが困難となる場合がある
本実施例では、上記の様な場合に対応して、画像処理装置200のブロック属性判定部29が、入力される文字判定信号245及び無彩色判定信号285を主走査方向及び副走査方向にマスクさせる機能を備える。図10及び図12はこの場合の領域を示す図である。図10において、例えば主走査変倍処理によって、有効矩形領域abcdの処理結果を得るための中間有効矩形領域としてab3cd3が必要な場合、変倍処理に必要となる参照画素Nf分の文字判定信号及び無彩色判定信号が有効画素として余分にスキャナ処理部20に入力される。
Nf画素分余分に入力されても最終的に変倍処理によって出力される矩形領域結果はabcdであるため、ブロック属性判定処理部はNf分として入力される文字判定信号245及び無彩色判定信号285の入力を判定信号生成部291によりマスク処理してブロック属性判定処理時のカウントを行わず、矩形領域abcd分の信号のみがカウントされる。
更に図12においては、主走査変倍処理及び副走査変倍処理によって、有効矩形領域abcdの処理結果を得るための中間有効矩形領域として領域ab3klが必要な場合、変倍処理に必要となる主走査方向参照画素Nh及び副走査方向参照ラインNi分の文字判定信号及び無彩色判定信号が有効画素として余分に入力される。
Nh画素及びNiライン分入力されても最終的に変倍処理によって出力される矩形領域結果はabcdであるため、ブロック属性判定処理部はNh及びNi分として入力される文字判定信号245及び無彩色判定信号285の入力を判定信号生成部291によりマスク処理してブロック属性判定処理時のカウントを行わない。
以上のように、本実施例に対応する本発明では、読み取りデバイスにより読み取られた画像データを共通のメインメモリに一旦格納した後、矩形領域単位で画像データを切り出して画像処理を行うため、画像処理部内に構成するメモリの大幅な削減、削除により装置全体の低コスト化及び画像処理回路の汎用性を高めることができる。特に、入力される画像データが矩形領域であるため、ブロック属性判別処理部にはメモリを構成しなくても判別が可能となる効果がある。
更に、入力される矩形領域単位の画像データ及び入力の矩形領域単位の画像データを更に細分化することにより得られる矩形領域毎に、その領域の属性を判定し、判定結果に対応したパラメータを用いて記録系処理を行わせることにより、出力画像の高画質化をはかることができる。
また、ブロック属性判定処理部と同時に動作する各処理部の参照矩形領域がブロック属性判定処理部の必要とする領域よりも大きい場合は、不要部分をマスク処理することでブロック属性の判定精度をより向上させ、且つ連動している他処理部に対する影響をなくすことが可能となる。
本実施例においは、実施例1において求められたブロック属性判定結果信号を利用した画像処理について説明する。
まず、スキャナ画像処理部20の処理結果はLDMAC65のDMAC/1ch及びメモリ制御部70を介してメインメモリ100に矩形領域単位で展開される。本発明装置をスキャナモードで動作させた場合、メインメモリ100に展開された画像データは例えばDMAC90によりUSB2.0Device140にDMA転送される。
本発明装置をコピーモードで動作させる場合は、メインメモリ100に展開された画像データに対して、プリンタ画像処理30により記録系の画像処理が施される。記録系の画像処理としては出力マスキング処理、N値化処理、スムージング処理等があるが、以降の説明においてはブロック属性判定結果信号を使用するN値化処理に関して説明する。
図15はプリンタ画像処理部30におけるN値化処理を行う処理ブロック構成を示す図である。なお、図15は、各ブロックにおいて実行される処理の順に記載されているので、プリンタ画像処理部30におけるN値化処理の各工程を、各ブロックにおいて実行される処理により表してもいる。スキャナ画像処理部20の図2に示す各処理部において処理された画像データは、メインメモリ100に矩形領域単位で展開され、所定の有効矩形領域の処理が完了した時点でライン単位のデータ出力が可能となる。CPU180により、LDMAC65のDMAC/2chの制御パラメータとして、ライン単位の画像データ転送に必要となるアドレス等が設定されると、LDMAC65はメモリ制御部70を介して、メインメモリ100からプリンタ画像処理部30に画像データを転送する。プリンタ画像処理部30に入力される画像データは図15における入力信号301として入力される。
以降の説明においては、入力形式R,G,Bの点順次、各成分のビット数は8bit(0〜255)であるとする。図15において、302は入力信号301に対して、非線形な階調補正及び輝度濃度変換を行うγテーブル、303は加算器、304は加算器303の出力を所定のレンジに収めるクランプ処理部、305はクランプ処理部304の出力信号を無彩色化する無彩色化処理部、308はスキャナ画像処理部20内部に構成されたブロック属性判定処理部29により判定されたブロック属性判定結果信号であり、CPU180により所定タイミングで読み取られ、プリンタ画像処理部30に通知されるものである。
309はブロック属性結果判定信号308を画素展開する判定信号画素展開部、307は無彩色化処理305が出力する信号とクランプ処理部304が出力する信号を判定信号画素展開部309が出力する信号に応じて選択出力するセレクタ、310は判定信号画素展開部309が出力する信号及びセレクタ307が出力する信号に対応した出力コード(印字データ)を出力し、更に前記セレクタ307に対して入力される信号に対応した多値データを出力する出力テーブル、312はセレクタ307が出力する信号と出力テーブル310が出力する多値データとの差分を演算する減算器、313は減算器312により演算された差分を隣接する画素に拡散処理する誤差拡散処理部、314は次ラインのデータ処理位置に加算する値を保持する誤差バッファ、315は誤差バッファ314が出力する該当ラインの誤差データと誤差拡散処理部313が出力する値とを加算する加算器である。
以降、更に詳細にプリンタ画像処理部30の動作を説明する。プリンタ画像処理部30の入力データは、スキャナ画像処理部20により処理された画像データであり、メモリ制御部70及びLDMAC65を介してライン単位でメインメモリ100から入力される。入力データはR,G,B各8bitの輝度データである。プリンタ画像処理部30内部に構成したγテーブル302は、この入力画像データ301に対し、非線形な階調補間処理と、記録系の処理データである濃度信号、即ちシアン(以下、C)、マゼンタ(以下、M)、イエロー(以下、Y)への変換処理を施す。
γテーブル302によって変換された画像データは、後述する誤差拡散処理部313によって生じる前画素の誤差データと誤差バッファ314に記憶された前ラインの対象誤差データとで加算器315及び加算器303によって加算され、クランプ処理部304に入力される。クランプ処理部304は、加算器303によって所定のレンジを越えた部分の補正、即ち、マイナス値となった場合は"0"に、"255"を超えた場合は"255"にクランプ処理する。
クランプ処理されたC,M,Yの8bit画像データはセレクタ307に出力されるとともに、無彩色化処理部305に対しても出力される。無彩色化処理部305は、入力された各々値の異なるC,M,Yの画像データに対して全ての画像成分が同一レベルとなる処理を行う。具体的には、入力されるC、M、Yの最小値あるいは最大値を新たなC、M、Y画像データとする処理や、C、M、Yの平均値を算出して新たなC、M、Y画像データとする処理、更には前記平均値に対してオフセットを加算できる機能を備え、演算後の値を新たなC、M、Y画像データとする処理のいずれかを行う。前述した処理により無彩色化されたC、M、Y画像データはセレクタ307に入力される。
セレクタ307の切替信号には、スキャナ画像処理部20内部のブロック属性判定部29において生成されたブロック属性判定結果信号298が利用される。具体的には、CPU180によってブロック属性判定部29の判定結果保持部299から読み出されたブロック属性判定結果信号298は、同じくCPU180によってプリンタ画像処理部30に判定信号308として、判定信号画素展開部309に書き込まれる。
また、CPU180はブロック属性判定処理部29が判定したブロック領域単位(主走査画素数)をプリンタ画像処理部30に通知する。ブロック属性判定処理部29による判定は画素単位ではなく、CPU180により指定された矩形領域単位になされるため、判定信号画素展開部309によって画素展開される。
判定信号画素展開部309における画素展開の概念を図18を参照して説明する。但し、説明を簡略化するため、図18は、ブロック属性判定処理部29による判定矩形領域を主走査方向2画素、副走査方向2ラインを単位とした場合を記載している。図18において、左側に位置する矩形領域のブロック属性判定結果は0である。判定信号画素展開部309は、判定矩形領域が主走査方向に2画素であることを参照して、主走査方向に画素展開する。
即ち、ブロック属性判定結果"0"を"00"と画素展開する。以降、同図中央に位置する矩形領域のブロック属性判定結果、同図右側に位置する矩形領域のブロック属性判定結果をそれぞれ画素展開し、この3矩形領域の画素展開結果として"001111"を生成する。なお、有効矩形領域がブロック属性判定処理部29内部で細分化されている場合においても以上に説明した概念を用いて、主走査方向に矩形領域毎に画素展開を施せばよい。
セレクタ307は、判定信号画素展開部309によって展開された判定結果をもとに、入力されるC、M、Y画像データの切り替えを行う。つまり、判定信号画素展開部309が出力する画素展開された判定信号が"0"である場合はクランプ処理部304が出力するC、M、Y画像データを後段処理部に対して出力し、判定信号画素展開部309が出力する画素展開された判定信号が"1"である場合は無彩色化処理305が出力するC、M、Yのレベルが同一である無彩色化処理後の画像データを後段処理部に対して出力する。
出力テーブル310は、判定信号画素展開部309が出力する画素展開された判定信号レベルに応じたテーブルが設定されており、判定信号画素展開部309からの判定信号は、セレクタ307だけでなく出力テーブル310へも入力される。つまり、判定信号レベル"0"用の出力テーブルと判定信号レベル"1"用の出力テーブルが構成されている。ただし、無彩色判定(無彩色文字判定)時に必要となるテーブルは有彩色判定(有彩色文字判定)時に必要となるテーブルよりも少ない構成にして良いことが知られているため、2通りのテーブルを用意したとしてもテーブルの容量が全体として2倍となるわけではない。
出力テーブル310は、セレクタ307のC、M、Y出力信号の各上位3bitのデータを基に、判定信号画素展開部309の判定信号に従ったテーブルを参照して、出力画像データコード311aと入力データに基づいたC、M、Yの画像データ311bを出力する。この動作を説明する図として図16を示す。図16は判定信号画素展開部309の出力信号により選択されている出力テーブルを表すものとする。
例えばセレクタ307によるC、M、Yの各上位3bitの組み合わせが太枠1601で囲って示す"101110101"である場合、出力テーブル310が出力する出力画像データコード311aは、Cが"1"、Mが"0"、Yが"1"、Kが"0"となる。また、この場合の入力データに基づいたC、M、Yの画像データ311bはCが"230"、Mが"240"、Yが"230"となる。
なお、前記出力テーブル310の説明においては、出力画像データコード311aは各色とも1bitのデータとしたが、本発明における出力テーブルのビット数構成は1ビットに限定されるものではない。つまり、最終的な画像データ出力部(LBPプリンタ、インクジェットプリンタ等)の出力可能なレベルのテーブルが設定されていても良い。
出力テーブル310の出力信号である画像データ311bはセレクタ307の出力画像データと共に減算器312に入力される。減算器312は出力テーブル310がセレクタ307の出力画像データの各色上位3bitに基づいた画像データ312と実際のその処理位置の画像データとの差分を演算する。この演算結果を後段の誤差拡散処理に入力、処理することで入力データと出力データとの濃度の保存が行われる。
誤差拡散処理部313が行う処理は、既に公知の画像処理手法であり、所定のマトリクスにより構成される重み付け演算によって、入力の差分データを隣接する画素に振り分ける。振り分けた誤差データは、対象が次のラインの画素となるものは誤差バッファ314に書き込む。また、対象が次に処理される画素となるものは加算器315に対して出力する。加算器315は誤差拡散処理部313が出力する誤差データと、前ラインの誤差拡散処理によって生じた対象の誤差データとを加算演算を行い、加算器303に出力する。
このように、スキャナ画像処理部20内部に構成したブロック属性判定部29のブロック属性判定結果信号を基に、プリンタ画像処理部30で処理する画像データに無彩色処理を施し、更に専用の出力テーブルを用いることで画素属性に応じたプリンタ画像処理を行うことができる。
なお、上記に説明した本実施例では、プリンタ画像処理部30を、無彩色化処理部305がクランプ処理部304の後に配置される構成としたが、これはブロック属性判定結果が互いに隣接する矩形領域で異なる場合に、画像劣化を防止するために有効な構成である。図17を参照して、画像劣化防止に関する概念を説明する。同図において、境界A、境界B、境界C、境界Dを境に隣接するブロックの属性判定結果が、一方は有彩色判定、他方は無彩色判定というように互いに異なっている。
このような場合に、無彩色化処理部305を、γテーブル302の直後や加算器303の直後に配置し、無彩色化されたデータがクランプ処理を行わずにセレクタ307に入力された場合、上記の4つの境界位置において、有彩色判定結果に基づいて行われた誤差拡散処理による誤差データや、無彩色判定結果に基づいて行われた誤差拡散処理による誤差データが、その境界で一気に出力され、レンジを越えて境界部分の出力データに大きな影響を与えることになる。つまり、境界部分における画像データが滑らかなものでなくなり、人間の目に対して悪影響を及ぼすこととなる。
以上のように、本実施例に対応する本発明では、記録系処理部において、判定結果を矩形領域に対応させた形で画素展開し、展開後の判定信号を基に、最適な画像処理パラメータを使用して画像処理を行うことが可能となる。