JP2004021645A - Image processing device and its control method - Google Patents

Image processing device and its control method Download PDF

Info

Publication number
JP2004021645A
JP2004021645A JP2002176234A JP2002176234A JP2004021645A JP 2004021645 A JP2004021645 A JP 2004021645A JP 2002176234 A JP2002176234 A JP 2002176234A JP 2002176234 A JP2002176234 A JP 2002176234A JP 2004021645 A JP2004021645 A JP 2004021645A
Authority
JP
Japan
Prior art keywords
processing
image
image processing
data
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002176234A
Other languages
Japanese (ja)
Other versions
JP4086556B2 (en
Inventor
Hiroshi Tanioka
谷岡 宏
Shigeo Yamagata
山形 茂雄
Manabu Takebayashi
竹林 学
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002176234A priority Critical patent/JP4086556B2/en
Publication of JP2004021645A publication Critical patent/JP2004021645A/en
Application granted granted Critical
Publication of JP4086556B2 publication Critical patent/JP4086556B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To speed up image processing in an image processing device using a SIMD (Single Instruction Multiple Datastream) type processor. <P>SOLUTION: This control method comprises supplying each of a plurality of pixel data to be processed in parallel to each corresponding element processor PE (S11 and S12); judging whether a specified operation is to be executed or not based on the pixel data supplied to each PE (S13); and performing a control so as to execute the operation only when the specified operation is judged to be executed. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
この発明は、ディジタル信号で表される画像データに基づいて形成された画像を出力する画像処理装置およびその制御方法に関する。
【0002】
【従来の技術】
現在、コピー機、ファクシミリ、プリンタ、スキャナといった画像処理装置の複合機として構成された、いわゆるMFP(Multi Function Printer)と呼ばれる画像処理装置がある。このようなMFPの画像処理部に、SIMD(Single Instruction stream Multiple Data stream)型のプロセッサを使用することにより、高速、かつプログラマブルに画像を処理する技術が例えば特開平8−315126号公報に記載されている。
【0003】
ところで、MFPで用いられる画像処理は、2値化した画素データを周囲の複数の画素を参照して孤立した白(または黒)の画素を黒(または白)に補正して圧縮率を高めたり見やすい画像として像再生するいわゆる孤立点除去処理に代表される適応的な処理を含んでいる。
【0004】
【発明が解決しようとする課題】
しかしながら、上記のような画像処理を画像全域にわたる全ての画素に対して行う場合、これをSIMD型の演算処理部を用いた単一のソフトウェアによる並列処理で実現したものは、専用ハードウェアを用いて実現したものに比べて処理速度が劣るという問題がある。
【0005】
したがって、本発明は、SIMD型のプロセッサを用いた画像処理装置における画像処理の高速化を図ることを目的としている。
【0006】
【課題を解決するための手段】
上記課題を解決し、目的を達成するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、複数の要素プロセッサそれぞれに同一の命令を並列に実行させる並列処理手段を備え、その並列処理手段を用いて所定の画像処理を行う画像処理装置であって、並列処理すべき複数の画素データのそれぞれを、対応する前記要素プロセッサに供給する供給手段と、各要素プロセッサに供給された画素データに基づいて、前記画像処理における特定の演算を実行すべきかどうかを判断する判断手段と、前記演算を実行すべきと判断したときにのみ、その演算を実行するように制御する制御手段と、を備えることを特徴とする。
【0007】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
【0008】
(画像処理装置の機能構成)
図1は、実施形態に係る画像処理装置の構成を機能的に示すブロック図である。
【0009】
図1において、画像処理装置1は、以下に示す5つのユニットを含む構成である。すなわち、5つのユニットとは、画像データ制御ユニット100、画像データを入力する画像データ入力ユニット101、画像を蓄積する画像メモリを制御して画像データの書き込み/読み出しを行う画像メモリ制御ユニット102、画像データに対し加工編集等の画像処理を施す画像処理ユニット103、そして、画像データを転写紙等に書き込む画像書込ユニット104、である。
【0010】
上記各ユニットは、画像データ制御ユニット100を中心に構成されている。つまり、画像データ入力ユニット101、画像メモリ制御ユニット102、画像処理ユニット103、画像書込ユニット104は、いずれも画像データ制御ユニット100に接続され、画像データ制御ユニット100によって統括的な制御を受ける。以下、これらの各ユニットの機能について説明する。
【0011】
画像データ制御ユニット100が行う処理は例えば次のとおりである。
【0012】
制御データバス(後述)とのインターフェース処理、全体システム制御、ローカルバス制御処理(後述するシステム・コントローラを起動させるためのROM、RAM、アクセス制御処理)、画像データ入力ユニット101とのインターフェース処理、画像メモリ制御ユニット102とのインターフェース処理、画像処理ユニット103とのインターフェース処理、画像書込みユニット104とのインターフェース処理、ネットワーク制御処理等。
【0013】
画像データ入力ユニット101が行う処理は例えば次のとおり。
【0014】
システム・コントローラ(後述)とのインターフェース制御処理、光学系による原稿反射光の読み取り処理、CCD(Charge Coupled Device:電荷結合素子)等を用いた電気信号への変換処理、A/D変換器でのディジタル化処理、シェーディング補正処理(光源の照度分布むらを補正する処理)、読み取り系の濃度特性を補正する処理、ネットワークを介して入力されるPDL画像データのラスタライズ処理等。
【0015】
画像メモリ制御ユニット102が行う処理は例えば次のとおり。
【0016】
システム・コントローラ(後述)とのインターフェース制御処理、メモリ部への書き込み・読み出し処理、メモリ・モジュールへのアクセス制御処理(複数のユニットからのメモリ・アクセス要求の調停処理)等。
【0017】
画像処理ユニット103が行う処理は例えば次のとおり。
【0018】
色変換処理、色補正処理、MTF補正処理、平滑化処理、主走査方向の任意変倍処理、濃度変換(γ変換処理:濃度調整キーに対応)、単純二値化処理、各種擬似中間調処理、ドット配置位相制御処理(ジャギー補正)、孤立点除去処理、像域分離処理(色判定、属性判定、適応処理)、密度変換処理等。
【0019】
画像書込ユニット104が行う処理は例えば次のとおり。
【0020】
画像信号のパルス制御処理、パラレルデータとシリアルデータのフォーマット変換処理等。
【0021】
(画像処理装置のハードウエア構成)
次に、本実施の形態に係る画像処理装置のハードウェア構成について説明する。この画像処理装置はMFP(ディジタル複合機)を構成する。
【0022】
図2は、実施形態に係る画像処理装置のハードウエア構成の一例を示すブロック図である。
【0023】
図2のブロック図において、画像処理装置1は、画像原稿の読み取りを行う読取ユニット201、PDL処理ユニット202、画像データ制御部203、画像処理プロセッサ204、作像ユニット(エンジン)205、メモリ制御部206、画像データ等を記憶するメモリモジュール207、ネットワーク制御部214、ワーキングメモリ216を備える。画像処理装置1はこの他に、制御用データバス208を介して、システムコントローラ209、ROM210、RAM211、操作パネル212を備えている。また、この画像処理装置1は、ネットワーク213を介してパーソナルコンピュータ215にも接続されている。
【0024】
上記した構成のうち、画像処理プロセッサ204は、画像に基づいて作成されたディジタル画像データを顕像して出力できるように処理し、プログラマブルに複数の画像形成動作を実現することができる。この画像処理プロセッサ204の構成については、後ほど詳細に説明する。
【0025】
また、画像データ制御部203は、画像データを伝送するデータバスと画像処理プロセッサ204による画像処理に用いられる処理ユニット間の画像データ伝送を一括して管理する。具体的には、読取ユニット201、PDL処理ユニット202、画像処理プロセッサ204、メモリ制御部206、作像ユニット205、ネットワーク制御部214との間のデータ伝送管理を行う。
【0026】
ここで、上記した各構成部と、図1に示した各ユニット100〜104との関係について説明する。
【0027】
読取ユニット201およびPDL処理ユニット202が、図1の画像データ入力ユニット101の機能を実現する。また、画像データ制御部203、システムコントローラ209、ROM210、RAM211、操作パネル212、ネットワーク制御部214が、画像データ制御ユニット100の機能を実現する。さらに、画像処理プロセッサ204、ワーキングメモリ216が、画像処理ユニット103の機能を実現する。また、作像ユニット205が画像書込ユニット104の機能を実現し、メモリ制御部206およびメモリモジュール207が画像メモリ制御ユニット102の機能を実現する。
【0028】
なお、システムコントローラ209は、制御用データバス208を介して接続されたROM210に記憶された制御プログラムに基づき動作するものであり、RAM211をワーク用メモリとして使用している。また、読取ユニット201、PDL処理ユニット202、画像データ制御部203、画像処理プロセッサ204、作像ユニット205、メモリ制御部206、ネットワーク制御部214、操作パネル212はそれぞれ、制御用データバス208を介してシステムコントローラ209によって動作が制御される。
【0029】
次に、各構成部の動作内容について説明する。
【0030】
原稿を光学的に読み取る読取ユニット201は、ランプとミラーとレンズ、受光素子から構成され、原稿に対するランプ照射の反射光をミラーおよびレンズにより受光素子(例えばCCD)に集光する。受光素子において電気信号に変換された画像データはディジタル信号に変換された後、読取ユニット201より出力(送信)される。
【0031】
PDL処理ユニット202は、ネットワーク213に接続されたパーソナルコンピュータ215より出力されたPDL画像データをビットマップ画像へラスタライズする。ネットワーク213を介して入力されたPDL画像データがネットワーク制御部214を介してPDL処理ユニット202に入力されると、PDL処理ユニット202は、入力されたPDL画像データに基づいたラスタライズを行ない、ビットマップ画像データを出力(送信)する。以上のように、読取ユニット201、 PDL処理ユニット202より出力(送信)された画像データは画像データ制御部203に入力(受信)される。
【0032】
画像データ制御部203は、読取ユニット201、 PDL処理ユニット202より受信した画像データを画像処理プロセッサ204、または、メモリ制御部206に出力する。
【0033】
画像データが画像データ制御部203によって画像処理プロセッサ204に出力されたときの動作は次のとおりである。
【0034】
画像処理プロセッサ204は、入力された画像データを、ワーキングメモリ216を用いながら所定の画像処理を行い、その画像処理後のデータを再度画像データ制御部203に出力する。画像データ制御部203に入力された画像データはメモリ制御部206に出力され、メモリ制御部206を介してメモリモジュール207に記憶される。
【0035】
画像処理プロセッサ204による1画面分の画像データの処理が終了し、1画面分の処理済みデータが、メモリモジュール207に記憶された後、メモリ制御部206は、メモリモジュール207から画像データを読み出し、読み出した画像データを画像データ制御部203を介して作像ユニット205に出力し、これによりプリント出力が得られる。また、メモリモジュール207から読み出した画像データを、画像データ制御部203を介してネットワーク制御部214に出力し、ネットワーク213を介してパーソナルコンピュータ215に出力させることもできる。
【0036】
画像データが画像データ制御部203によってメモリ制御部206に出力されたときの動作は次のとおりである。
【0037】
画像データ制御部203より、メモリ制御部206に入力された画像データは、メモリモジュール207に記憶される。次に、メモリ制御部206は、メモリモジュール207より、記憶された画像データを読み出し、画像データ制御部203を介して、画像処理プロセッサ204に出力する。画像処理プロセッサ204では、入力された画像データを処理し、処理後の画像データは、再度画像データ制御部203、メモリ制御部206を介して、メモリモジュール207に記憶される。画像処理プロセッサ204による1画面分の画像データの処理が終了し、1画面分の処理済みデータが、メモリモジュール207に記憶された後、メモリ制御部206は、メモリモジュール207に対する画像データを読み出し、読み出された画像データを画像データ制御部203を介して、作像ユニット205に出力し、これによりプリント出力が得られる。あるいは、メモリモジュール207より読み出した画像データを、画像データ制御部203を介してネットワーク制御部214に出力し、ネットワーク213を介してパーソナルコンピュータ215に出力させることもできる。
【0038】
上記動作例は、読取ユニット201、 PDL処理ユニット202より出力された画像データに対する処理を画像処理プロセッサ204が行い、1画面分の処理済み画像データがメモリモジュール207に記憶された後、メモリモジュール207より、処理済画像データを読み出し、作像ユニット205、あるいは、ネットワーク制御部214に出力する例を示したが、処理済み画像データの記憶が1画面分終了する前に、処理済みの画像データをメモリモジュール207から読み出して処理を開始するように制御してもよい。
【0039】
続いて、別の動作例について説明する。これは、メモリモジュール207に画像データを記憶させることなく行われる。
【0040】
読取ユニット201、 PDL処理ユニット202より画像データ制御部203が受信した画像データは、画像データ制御部203より、画像処理プロセッサ204に出力される。画像処理プロセッサ204は、入力された画像データに所定の処理を行い、画像データ制御部203に出力する。画像処理プロセッサ204から画像データ制御部203に入力された画像データは、画像データ制御部203を介して作像ユニット205、ネットワーク制御部214に出力される。
【0041】
メモリモジュール207に処理済みの画像データ1画面分を記憶する場合の動作例としては、1枚の原稿について複数枚を複写する場合に、読取ユニット201を1回だけ動作させ、読取ユニット201により読み取った画像データをメモリモジュール207に記憶し、記憶された画像データを複数回読み出すという方法がある。メモリモジュール207に画像データを記憶させない動作例としては、1枚の原稿を1枚だけ複写する場合がある。読み取り画像データに対する処理済みデータを直接作像ユニット205に出力すればよいので、メモリモジュール207にアクセスする必要はない。
【0042】
なお、本装置の全体の動作は、操作パネル212より入力された、画像処理装置が行うべき処理に基づいてシステムコントローラ209により制御される。操作パネル212からは、処理の種類(複写、送信、画像読込、プリント等)および処理の枚数等を入力することができる。
【0043】
図3は、図2に示した画像処理プロセッサ204の構成を示す図である。
【0044】
図3に示すように、画像処理プロセッサ204は、FIFOメモリ301および307と、演算処理ユニット300とで構成される。演算処理ユニット300は、制御処理部305、外部メモリインターフェース306、そして図2で示したSIMDプロセッサ308を備えた構成である。SIMDプロセッサ308は図示の如く、入力レジスタ302、出力レジスタ304、SIMD型のデータ演算処理部303を含む。なお、SIMDとは、複数のデータに対し単一の命令を並列に実行させるもので、本実施形態では、128個の要素プロセッサ(PE)によりデータ演算処理部303が構成されている。この構成については後ほど詳しく説明する。
【0045】
FIFOメモリ301は、読取ユニット201またはPDL処理ユニット202から入力される画像データ1ラスタ分(7168画素)の容量を有するファーストイン・ファーストアウトのメモリであり、書込みと読出しがそれぞれ独立に制御される。画像データ制御部203のデータバスA(図2参照)を介して入力された画像データは、FIFOメモリ301に入力され、データ演算処理部303が有するPEの数(128個)と等しいレジスタ数で構成された入力レジスタ302に128個分の画像データとして56分割して入力される。
【0046】
FIFOメモリ301から入力レジスタ302に入力された画像データは、データ演算処理部303および外部メモリインターフェース306に出力される。データ演算処理部303に入力された画像データは、データ演算処理部303にて所定の処理が行われ、処理後の画像データが、出力レジスタ304および外部メモリインターフェース306に出力される。なお、外部メモリインターフェース306には、データ演算処理部303で処理された中間データを出力することも可能な構成となっている。
【0047】
出力レジスタ304は、入力レジスタ302と同様に、データ演算処理部303が有するPE数と等しいレジスタ数で構成されている。出力レジスタ304の出力画像データは、画像データ1ラスタ分の容量を有するFIFOメモリ307に入力される。FIFOメモリ307は、書込みと読出しがそれぞれ独立に制御されるファーストイン・ファーストアウトのメモリである。FIFOメモリ307より出力される画像データ信号は、データバスB(図2参照)を介して画像データ制御部203に出力される。
【0048】
さらに、SIMDプロセッサ308および外部メモリインターフェイス306は、図2に示した制御用データバス208に接続された制御処理部305と接続されている。制御処理部305は、データ演算処理部303のPEに対する命令の供給、各PEのステータスの判断、各PEに接続されたメモリ、レジスタへのデータの入出力等の制御および外部メモリインターフェース306を制御し、SIMDプロセッサ308の内部メモリやレジスタとワーキングメモリ216間のデータ制御を行うものである。なお、制御処理部305とSIMDプロセッサ308は互いに異なる処理を独立に実行することが可能である。
【0049】
次に、図4を用いて、制御処理部305および演算処理ユニット300の構成を詳しく説明する。
【0050】
図4に示すように、制御処理部305は、制御プロセッサ401と、その制御プロセッサ401およびSIMDプロセッサ308の動作を制御するプログラムが格納されたプログラムメモリ402と、データメモリ403とで構成される。
【0051】
一方、SIMDプロセッサ308は、前述したように、例えば128個のPE(PE0〜PE127)404により構成されている。図4に示したように、PE0〜PE127の各PEは、8ビットの演算ユニット(ALU)405、8ビットのレジスタ16本から構成される汎用レジスタ406、ALUの演算動作を実施するか否かを制御するマスクレジスタ407、演算途中のデータを格納するPEレジスタ408、出力レジスタ409、入力レジスタ410、2Kバイトの容量を有するメモリ411で構成される。
【0052】
ALU405、PEレジスタ408はそれぞれ、隣接するPEにおける同一構成要素と相互に接続されており、データの入出力が可能な構成となっている。また、出力レジスタ409、入力レジスタ410もそれぞれ、隣接するPEの同一構成要素と接続されており、これによって128段のシフトレジスタとして動作する。この128段のシフトレジスタとして動作する、すべてのPEにおける入力レジスタ410の接続構成が、図3における入力レジスタ302に相当するものである。同様に、この128段のシフトレジスタとして動作する、すべてのPEにおける出力レジスタ409の接続構成が、図3における出力レジスタ304に相当するものである。
【0053】
また、各PEにおけるメモリ411は、外部メモリインターフェース306およびデータバスC(図2参照)を介してワーキングメモリ216に接続される。
【0054】
なお、外部メモリインターフェース306、ならびに、PEを構成するALU405、汎用レジスタ406、マスクレジスタ407、PEレジスタ408、出力レジスタ409、入力レジスタ410、メモリ413はそれぞれ、そのPEにおける任意のブロック間でデータの入出力が可能な構成となっている。例えば、メモリ411とPEレジスタ408との間でのデータ入出力、PEレジスタ408と外部メモリインターフェース306との間でのデータ入出力が可能である。
【0055】
各PEに対する命令の供給は、制御プロセッサ401より、命令供給バス413を介して各PEに同一内容で与えられ、全てのPEが同一の命令に従った動作を行うように制御されるが、各PEに与える処理対象のデータを異ならせることにより、各PEが、異なる処理対象データに対する演算処理を並列に行うように制御される。例えば、画像データ1ラスタ中の128画素の内容を各画素ごとにPEレジスタ408に配置し、同一の命令コードでPEレジスタ408に対する演算処理をさせれば、1画素ずつ逐次処理するよりも短時間で128画素分の処理結果を得ることができる。
【0056】
上記したように隣接するPE間で入出力可能な構成となっているので、各PEのALU405における演算結果およびPEレジスタ408の内容は、隣接PEのおよびALU405の演算結果およびPEレジスタ408の内容を参照した演算処理によって求めることができる。さらに、各PEのメモリ411および、入力レジスタ410、出力レジスタ409、PEレジスタ408、マスクレジスタ407、汎用レジスタ406は、メモリ/レジスタアクセスバス414を介して制御プロセッサ401に接続され、メモリ、および、各レジスタデータの入出力が、制御プロセッサ401により制御される。
【0057】
また、制御プロセッサ401は、制御用データバス208を介して、図2に示したシステムコントローラ209と制御データの入出力が可能である。さらに、制御プロセッサ401の動作を制御するプログラムメモリ402およびデータメモリ403には、制御用データバス208を介してシステムコントローラ209よりアクセスが可能であり、 システムコントローラ209により、画像処理ユニット300で行う処理内容に応じて、制御プロセッサ401の動作を制御するプログラムメモリ402の書き換えが可能な構成となっている。
【0058】
(画像処理の概要)
図5は、実施形態における画像処理装置が実行する画像処理の概要を示すフローチャートである。このフローチャートに対応するプログラムは制御処理部305におけるプログラムメモリ402に記憶されており、制御プロセッサ401およびSIMDプロセッサ308によって実行されるものである。
【0059】
読み取りユニット201でシェーディング補正された1ラスタ7168画素の画像信号は、SIMDプロセッサ308のPEの数に等しい128画素に分割して処理される。
【0060】
したがって、先ず制御プロセッサ401は、図2の読取ユニット201によりCCDにて読み取られた画像信号を8ビットの画像信号として、画像データ制御部203を介して画像処理プロセッサ204のFIFOメモリ301に入力し、入力レジスタ302、外部メモリインターフェース306を介してワーキングメモリ216に記憶する(ステップS1)。
【0061】
次に、輝度信号から濃度信号に対数変換する(ステップS2)。次に、対数変換された濃度データが操作パネル212からの入力に従って濃度調整のための濃度変換処理が施される(ステップS3)。同様に、操作パネル212の入力に基づき設定された画像モード等の指定に従って、画像信号に対して空間フィルター処理を行う(ステップS4)。
【0062】
続いて擬似中間調処理を行うステップS5では、誤差拡散処理、組織ディザ処理、単純2値化処理等を選択的に行う。ステップS6は孤立点除去処理を行うステップであり、先の擬似中間調処理で単純2値化処理が選択された場合に対してその2値化結果に対する処理である。
【0063】
更に、必要に応じてその他の処理を実行し、ステップS7で、記録信号またはJBIG等2値信号を圧縮するための信号として2値化された1ラスタ分の画像信号を外部のワーキングメモリ216に転送して1ラスタ7168画素の処理が終了する。以上のラスタ処理を4960ラスタ分繰返せば(ステップS8)、A4サイズ1ページの処理が終了する。
【0064】
(孤立点除去処理の内容)
次に、上記したステップS6における孤立点除去処理について、図6〜8を用いて説明する。
【0065】
まず、ステップS5で擬似中間調処理によって2値化された1ラスタ7168画素の画像信号は、1ビットの画像信号として、外部メモリインターフェース306を介してワーキングメモリ216に記憶されている。外部ワーキングメモリ216には常に5ラスタ分の画像信号が記憶されており、処理の終了に従って、順次新たなラスタ信号が更新される。
【0066】
図6は、処理対象の画像データを模式的に示す図である。同図において、503が今処理するラスタの画像信号Cであり、502は1ラスタ前のデータB、504は1ラスタ後のデータD、501は2ラスタ前のデータA、そして、505は2ラスタ後のデータEを示している。7168画素の各ラスタの画像信号は、PE数に対応する128画素毎の56個のバンドに分割されたかたちで図示されている。
【0067】
すなわち、バンドC−1は今処理すべきラスタの先頭から128個の画素(第0〜127画素)を示し、バンドC−2は今処理すべきラスタの2番目のバンドとして第128〜255画素のデータを表している。今、これら1バンド128画素の各画素データを、128組の各PEに1画素毎に担当させて処理するとすれば、図7に示すように、バンド2に属する第128画素はPE0が担当し、第129画素はPE1、第130画素はPE2、…、が担当することになる。
【0068】
ステップS6で行う孤立点除去処理のための注目画素位置*に対する参照画素位置の例を図8に示す。各PEはこの注目画素*を中心に、PEの配列方向に前後2画素とラスタ方向に前後2ラスタの合計25画素を参照する処理となる。
【0069】
図7に示したバンド2を例にして述べれば、PE2が担当する第130画素が注目画素である場合、この第130画素を中心に第128画素から第132画素を参照することになる。この場合には参照すべきいずれの画素も同じバンド2に属しているので、特にそのデータの参照に困難なところはない。
【0070】
次に、PE1が担当する第129画素が注目画素である場合を考える。この場合には、この第129画素を中心に第127画素から第131画素を参照することになる。ところが、これらの画素のうち、第127画素はバンド2ではなくバンド1に属しているので、直接その画素データを参照することができないのである。この問題は、PE0, PE126, PE127が担当する画素が注目画素である場合にも同様に発生する。したがって、端部に位置するPE0, PE1, PE126, PE127が担当する画素が注目画素である場合には、その他のPEに対する処理とは一部異なるプログラムによって処理する必要がある。
【0071】
図9は、孤立点除去処理における各PEのメモリ411の一部を模式的に示した図である。
【0072】
同図において、A(1)は、n番目のPE(PEn)における内部メモリ411に、バンド1(すなわちA−1)のPEnが担当する画素データが格納されていることを示している。また、A(2)は、n番目のPE(PEn)における内部メモリ411に、バンド2(すなわちA−2)のPEnが担当する画素データが格納されていることを示している。ここで例えば、nが2の場合には、A(2)は、PE2が担当するラスタデータAのバンド2の画素、すなわち、7168画素中の第130画素のデータを表している。ここでは図7で説明したように1ラスタを56のバンドに分割して処理するので、5ラスタ分の画像データが各PEの内部メモリ411内にそれぞれ56*5(=280)バイトの領域に格納されることになる。
【0073】
図10は、ステップS6における1ラスタの画像信号に対する孤立点除去処理を示すフローチャートである。
【0074】
まず、処理中のバンドを示す変数(バンドカウンタ)mを1に初期化し、PEnが担当するラスタデータEのバンドm(すなわちバンド1)の画素データであるE(m)、すなわち、E(1)を、外部ワーキングメモリ216から、対応するPEnが担当する入力レジスタ410に入力する(ステップS11)。ここで、図7におけるA、B、C、Dの各ラスタ画像データは先行する4ラスタを処理した際に既に入力されているものとする。
【0075】
次に、ステップS12で、これから処理するバンドmの次のバンド(m+1)の第EのラスタデータE(m+1)を内部メモリ411に入力する。すなわち、現在処理するバンドCの後端部のPE126、PE127が処理に必要とする画像データをここで入力する。なお、m=56の場合のみ後端部PEが処理に必要な画像データが存在しないが、バンド55までは処理すべきバンドに対してその後のバンドデータが5ラスタ分各PEの内部メモリ411に格納されていることになる。また、これらのデータはバンド毎に順次1ラスタ分保持して行くので、m=1のバンドを除いて前端部のPE0およびPE1が処理に必要となる1バンド前の画像データも全て各PEの内部メモリに保持されていることになる。
【0076】
ステップS13では、各PEが処理しようとする128画素すべてのデータC(m)に対し、128画素すべてが最低値(すなわち0)であるか128画素すべてが最高値(すなわち1)であるかを調べる。孤立点除去処理は、注目画素位置の2値データが周辺24画素すべての2値データと異なる場合にその注目画素位置の2値データを反転させる処理であるが、これとは別に、少なくとも並列に処理すべき同一ラスタ上の連続する128個の2値データがすべて0かすべて1の場合には、他の隣接画素の状態に関わらず、この128個のデータには孤立点はないだろうと推測される。
【0077】
そこで、このような場合には現在の注目画素は孤立点除去の処理対象画素ではないと判断して、以下説明する如く注目画素に対して所定数の周辺画素に依存した演算であるステップS14〜S22の処理をスキップして、ステップS23で注目画素値C(m)をそのまま処理結果として外部ワーキングメモリ216に出力する。
【0078】
ステップS13で処理対象画素がある場合には、ステップS14に進む。
【0079】
ステップS14では、図8に示した参照画素位置のうち担当するPEの内部メモリ411に格納されているデータP13, P23, P43, P53、すなわち、A(m)、B(m)、D(m)、E(m)の2値データを加算し、PEレジスタPERに格納する。
【0080】
ステップS15は、各PEの番号によって異なる処理を実行するための判断ステップであり、SIMDプロセッサ308は、単一のプログラム上で各PE番号との比較を行うことが可能で、PE毎に異なる処理の実行が可能である。
【0081】
先に説明したように、端部に位置するPE0, PE1, PE126, PE127以外のPEに対してはステップS15からステップS16に進み、他の周辺の画素データを順次加算する。
【0082】
すなわち、n番目のPEに対して1画素前のPEが担当する画素データAn−1(m)、Bn−1(m)、Cn−1(m)、Dn−1(m)、En−1(m)をPERに加算する。同様に、n番目のPEに対して2画素前のPEが担当する画素データAn−2(m)、Bn−2(m)、Cn−2(m)、Dn−2(m)、En−2(m)をPERに加算する。また、同様にn番目のPEに対して1画素後のPEが担当する画素データAn+1(m)、Bn+1(m)、Cn+1(m)、Dn+1(m)、En+1(m)をPERに加算する。さらに、同様にn番目のPEに対して2画素後のPEが担当する画素データAn+2(m)、Bn+2(m)、Cn+2(m)、Dn+2(m)、En+2(m)をPERに加算する。
【0083】
SIMDプロセッサ308は、左右に3組離れたPEが担当するレジスタ等にアクセス可能なため、PE2からPE126までの124組のPEは全て同一のステップS16を実行できる。
【0084】
次に、ステップS15で分岐されるPE0の処理ステップS17を説明する。図11は、ステップS17で行われる処理を示すフローチャートである。
【0085】
PE0に対してn−1のPEはPE127であり、今1画素前の画像データをステップS16で処理すれば、1バンド前のPE127が担当する画素データではなく、同じバンド内のPE127が担当する画素を参照することになってしまう。そこで、PE0はステップS17aで、1画素前のPEが担当する1バンド前の画素データ、すなわち、An−1(m−1)、Bn−1(m−1)、Cn−1(m−1)、Dn−1(m−1)、En−1(m−1)をPERに加算する。同様に、2画素前のPEが担当する1バンド前の画素データ、すなわち、An−2(m−1)、Bn−2(m−1)、Cn−2(m−1)、Dn−2(m−1)、En−2(m−1)をPERに加算する。続くステップS17bは、1画素後および2画素後の画素に対する演算であり、先に述べたステップS16と同様の処理を実行する。
【0086】
次に、ステップS15で分岐されるPE1の処理ステップS18を説明する。図12は、ステップS18で行われる処理を示すフローチャートである。
【0087】
PE1に対してn−2のPEはPE127であり、今2画素前の画像データをステップS16で処理すれば、同じバンド内のPE127が担当する画素を参照することになってしまう。そこで、PE1はステップS18aで、2画素前のPEが担当する1バンド前の画素データ、An−2(m−1)、Bn−2(m−1)、Cn−2(m−1)、Dn−2(m−1)、En−2(m−1)をPERに加算する。続くステップS18bは、1画素前、1画素後、および2画素後の画素データに対する演算を、先に述べたステップS16と同様に実行する。
【0088】
次に、ステップS15で分岐されるPE126の処理ステップS19を説明する。図13は、ステップS19で行われる処理を示すフローチャートである。
【0089】
PE126に対してn+2のPEはPE0であり、今2画素後の画像データをステップS16で処理すれば、同じバンド内のPE0が担当する画素データを参照することになってしまう。そこで、PE126はステップS19aで、2画素後のPEが担当する1バンド後の画素データ、すなわち、An+2(m+1)、Bn+2(m+1)、Cn+2(m+1)、Dn+2(m+1)、En+2(m+1)をPERに加算する。続くステップS19bは、1画素後、1画素前、および2画素前の画素データに対する演算を、先に述べたステップS16と同様に実行する。
【0090】
次に、ステップS15で分岐されるPE127の処理ステップS20を説明する。図14は、ステップS20で行われる処理を示すフローチャートである。
【0091】
PE127に対してn+1のPEはPE0であり、今2画素後の画像データをステップS16で処理すれば、同じバンド内のPE0が担当する画素データを参照することになってしまう。そこで、PE127はステップS20aで、2画素後のPEが担当する1バンド後の画素データ、すなわち、An+2(m+1)、Bn+2(m+1)、Cn+2(m+1)、Dn+2(m+1)、En+2(m+1)をPERに加算する。同様に、1画素後のPEが担当する1バンド後の画素データ、すなわち、An+1(m+1)、Bn+1(m+1)、Cn+1(m+1)、Dn+1(m+1)、En+1(m+1)をPERに加算する。続くステップS20bは、1画素後、1画素前、および2画素前の画素に対する演算を、先に述べたステップS16と同様に実行する。
【0092】
各PE番号に従う処理が終わった後、各PEレジスタには注目画素の周辺24画素の2値データが加算された値を保持している。そこで、ステップS21で、各注目画素データC(m)がその周辺画素データから孤立しているか否か、すなわち、注目画素C(m)だけが1で、その周辺24画素が全て0(PER=0)の場合か、または、注目画素C(m)だけが0で、その周辺24画素が全て1(PER=24)の場合、にあたるかどうかを判定する。
【0093】
ステップS21で孤立点が検出されたときは、ステップS22に進み、注目画素データC(m)を0から1または1から0に反転させる。次に、ステップS23で、注目画素データC(m)を出力する。ここでは、内部メモリ411に格納してある注目画素データC(m)が孤立点であってもこの値を書き換えないで、処理の結果のみを反転して出力する。
【0094】
ステップS12〜S23の一連の処理をバンド数分になるまで繰返して(ステップS24)、1ラスタの処理が終了する。
【0095】
ステップS25では、1ラスタ分の処理が終了する度に、各PEが担当する内部メモリ411に格納された最も古いラスタデータ、すなわち、AのデータをBのデータで更新し、同様にBのデータをCのデータで、CのデータをDのデータで、DのデータをEのデータで更新する。これにより、次のラスタを処理する際に、新たなEラスタのデータがステップS11、ステップS12で順次1バンド毎に入力される。
【0096】
以上の処理によれば、ステップS13で、いま並列処理すべき128個の画素データの中に孤立点除去の対象となる画素が存在するかどうかを調べ、存在しないと判断したときは、その注目画素に対する孤立点除去処理が省略される。そのために処理の高速化を図ることができる。
【0097】
(対数変換処理の内容)
図15は、ステップS2における対数変換処理を示すフローチャートである。上述の孤立点除去処理と同様に対数変換処理も1ラスタ7168画素を128画素毎56バンドに分割し、バンドデータ128画素が並列に処理される。
【0098】
まず、バンドカウンタmを1にセットし(ステップS31)、輝度信号A(m)を外部ワーキングメモリ216から各PEが担当する任意のレジスタに入力する(ステップS32)。
【0099】
輝度信号A(m)は最も明るい値255から最も暗い値0までの8ビットの値をとり得るが、一般に対数変換処理では、最も明るい値255を0、最も暗い値0を255として一意に濃度信号に変換する。本実施形態においては、PDLユニット202からはPDL画像データとしてラスタデータに変換された輝度信号がSIMDプロセッサ308に入力されるが、一般にはPDL画像中には背景の白い部分、図形中の黒いベタ画像等で輝度値255あるいは0の値を広い範囲で有している。
【0100】
そこで、このような画像信号に対して、ステップS33で、全てのPEが処理しようとする128個の画像信号A(m)が全て0あるいは255であることを検出した場合には、ステップS35に進み、一意的に輝度信号A(m)のビット反転した値を濃度値D(m)として、その後ステップS36に移る。なお、ステップS33で、8ビットの中間値をとる画素がある場合には、ステップS34に進み、通常どおりの対数変換処理を実行する。この通常どおりの対数変換の方式としては、例えば、輝度値A(m)を変数とする多項式近似演算を行う方式、輝度値A(m)を閾値と比較し、数点の折れ線近似による変換方式、内部メモリを用いたLUT変換方式等が知られている。ステップS34ではいずれの方式を用いてもよい。
【0101】
ステップS36では、濃度値D(m)を処理結果として外部ワーキングメモリ216に出力する。上記処理を56回繰返して(ステップS37)、1ラスタ7168画素に対する対数変換処理が終了する。
【0102】
このような処理によれば、とりわけPDL画像信号に対しては大部分の場合でステップS35による簡易な処理となるため、対数変換処理を極めて高速に処理することが可能となった。
【0103】
(擬似中間処理の内容)
図16は、ステップS5における擬似中間調処理を示すフローチャートである。
【0104】
この擬似中間調処理も上述の孤立点除去処理、対数変換処理と同様、1ラスタ7168画素を128画素毎56バンドに分割し、バンドデータ128画素が並列に処理される。
【0105】
まず、バンドカウンタmを1にセットし(ステップS41)、濃度信号A(m)を外部ワーキングメモリ216から各PEが担当する任意のレジスタに入力する(ステップS42)。濃度信号A(m)は最も明るい値0から最も暗い値255までの8ビットの値をとり得るが、一般に擬似中間調処理では、最も明るい値0を0、最も暗い値255を1として一意に2値化される。本実施形態では、PDLユニット202からはPDL画像データとしてラスタデータに変換された画像信号がSIMDプロセッサ308に入力されるが、一般にPDL画像中には背景の白い部分、図形中の黒いベタ画像等で濃度値255あるいは0の値を広い範囲で有している。
【0106】
そこで、このような画像信号に対して、ステップS43で、全てのPEが処理しようとする128個の画像信号A(m)が全て0あるいは255であることを検出した場合には、ステップS45に進み、一意的に8ビットの濃度信号A(m)のMSBを1ビットの2値化データD(m)とし、ステップS46に移る。なお、ステップS43で、8ビットの中間値をとる画素がある場合には、ステップS44に進み、通常どおりの擬似中間調処理を実行する。この擬似中間調処理の方式としては、例えば組織ディザ法、乱数ディザ法、誤差拡散法等が知られている。ステップS44ではいずれの方式を用いてもよい。
【0107】
ステップS46では、2値化データD(m)を処理結果として外部ワーキングメモリ216に出力する。上記処理を56回繰返して(ステップS47)、1ラスタ7168画素に対する対数変換処理が終了する。
【0108】
このような処理によれば、とりわけPDL画像信号に対しては大部分の場合でステップS45による簡易な処理となるため、擬似中間調処理を1ページにわたって極めて高速に処理することが可能となった。
【0109】
なお、ここでは濃度信号の2値化データに対する場合の例を示したが、もちろんこの他の多値化データにも適用可能であり、例えば2ビット4値または3ビット8値の多値化処理の場合には、入力信号255に対しては、それぞれ入力信号の上位2ビットまたは3ビットの信号が多値化信号として得られることはいうまでもない。
【0110】
(他の実施形態)
本発明は、上述の孤立点除去処理に類似したスムージング処理にも適用することができる。
【0111】
また、かかるスムージング処理等において注目画素の周辺画素を参照して注目画素に補正処理を加える場合、上述の実施形態では今処理しようとする128個の画素に対してのみその値を評価してその後の特定の演算を実行する/しないを判断するようにしたが、処理の目的に応じ、例えば、隣接する1ラスタ前の128画素の状態をも加味して上記の判断を行うようにしてもよい。
【0112】
また、例えば多値画像信号に対する処理である空間フィルター処理に対しても本発明を適用することができる。
【0113】
例えば、3×3の空間フィルターの場合、少なくとも参照する3ラスタの画像信号がすべて0またはすべて255の場合、あらゆる空間フィルターの処理結果は一意に0または255である。また、例えばラプラシアンフィルターの場合、ラプラシアンを演算し、全てのPEでその値が0の場合には、対象画像信号の変化がなく均一な画像領域であると判断し、その時点からの演算を中止することで、以降の不要な処理を省くことも可能である。したがって、この場合にも、とりわけPDL画像に対しては上述の実施形態と同様に処理の高速化が図れる。
【0114】
また、本発明は、カラー画像処理の中の黒文字処理にも適用することができる。
【0115】
黒文字処理とは、画素が黒色で、かつ、それが文字の一部を構成しているかどうかを判断して、その判断結果に応じて例えば黒色単色で記録信号を構成する処理をいう。この処理において、各画素信号が黒色であるか否かを先行して判断し、並列に動作するSIMDの各PEが担当する画素がすべて黒色以外であれば、後続して行われる文字判定の処理は不要である。一般には1ページを構成する黒い文字の領域は高々10%以下の画素数であるから、この場合においても、本発明を適用することで、並列に動作する各PEが担当する画素がすべて黒と判断された場合にのみ、それ以降の文字判定のための処理を行うようにすればよいので、極めて高速に黒文字処理を行うことができる。
【0116】
また、上述の実施形態では、適用する各画像処理の内部で、その画像処理に係る特定の演算を実行する/しないの判断を行っているが、例えば、各画像処理を行う前に、あらかじめ代表的に特定のを実行する/しないの判断を行い、各画像処理をその判断結果に基づき動作させるようにしてもよい。そうすれば、わざわざ各画像処理の中で特定の演算を実行する/しないを判断する処理を行わせる必要がなくなり、さらに画像処理全体の高速化を図ることができる。
【0117】
以上、本発明の実施形態を詳述したが、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタ等)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用してもよい。
【0118】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(図10(図11〜14を含む。)、図15、図16の、少なくとも1つ以上のフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムを読み出して実行することによっても達成される場合を含む。
【0119】
したがって、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0120】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0121】
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、光ディスク(CD−ROM、CD−R、CD−RW、DVD等)、光磁気ディスク、磁気テープ、メモリカード等がある。
【0122】
その他、プログラムの供給方法としては、インターネットを介して本発明のプログラムをファイル転送によって取得する態様も含まれる。
【0123】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介して暗号化を解く鍵情報を取得させ、その鍵情報を使用することで暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0124】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現され得る。
【0125】
さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0126】
【発明の効果】
本発明によれば、SIMD型のプロセッサを用いた画像処理装置における画像処理の高速化を図ることができる。
【図面の簡単な説明】
【図1】実施形態に係る画像処理装置の構成を機能的に示すブロック図である。
【図2】実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。
【図3】実施形態における画像処理プロセッサの構成を示す図である。
【図4】実施形態における制御処理部および演算処理ユニットの構成を示す図である。
【図5】実施形態における画像処理装置が実行する画像処理の概要を示すフローチャートである。
【図6】処理対象の画像データを模式的に示す図である。
【図7】実施形態におけるSIMDプロセッサにおけるバンドデータの取り扱いを説明するための図である。
【図8】孤立点除去処理において参照される画素について説明するための図である。
【図9】孤立点除去処理における各PEのメモリの一部を模式的に示した図である。
【図10】実施形態における孤立点除去処理を示すフローチャートである。
【図11】実施形態における周辺画素データの加算手順を示すフローチャートである。
【図12】実施形態における周辺画素データの加算手順を示すフローチャートである。
【図13】実施形態における周辺画素データの加算手順を示すフローチャートである。
【図14】実施形態における周辺画素データの加算手順を示すフローチャートである。
【図15】実施形態における対数変換処理を示すフローチャートである。
【図16】実施形態における擬似中間調処理を示すフローチャートである。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus that outputs an image formed based on image data represented by a digital signal, and a control method therefor.
[0002]
[Prior art]
Currently, there is an image processing apparatus called a so-called MFP (Multi Function Printer) configured as a complex machine of image processing apparatuses such as a copier, a facsimile machine, a printer, and a scanner. For example, Japanese Patent Application Laid-Open No. 8-315126 discloses a technique for processing an image at high speed by using a SIMD (Single Instruction Stream Multiple Data Stream) type processor in the image processing unit of the MFP. ing.
[0003]
By the way, image processing used in the MFP increases the compression ratio by correcting binarized pixel data to black (or white) by correcting isolated white (or black) pixels with reference to a plurality of surrounding pixels. It includes adaptive processing represented by so-called isolated point removal processing that reproduces an image as an easy-to-view image.
[0004]
[Problems to be solved by the invention]
However, when the image processing as described above is performed on all pixels over the entire image, this is realized by parallel processing by a single software using a SIMD type arithmetic processing unit. There is a problem that the processing speed is inferior to that realized.
[0005]
Accordingly, an object of the present invention is to increase the speed of image processing in an image processing apparatus using a SIMD type processor.
[0006]
[Means for Solving the Problems]
In order to solve the above problems and achieve the object, for example, an image processing apparatus of the present invention comprises the following arrangement. That is, an image processing apparatus that includes a parallel processing unit that causes each of a plurality of element processors to execute the same instruction in parallel, and performs predetermined image processing using the parallel processing unit, and a plurality of pixel data to be processed in parallel Are supplied to the corresponding element processor, based on pixel data supplied to each element processor, determination means for determining whether or not to perform a specific operation in the image processing, and the operation And a control means for controlling to execute the calculation only when it is determined that the process is to be executed.
[0007]
DETAILED DESCRIPTION OF THE INVENTION
DESCRIPTION OF EMBODIMENTS Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings.
[0008]
(Functional configuration of image processing apparatus)
FIG. 1 is a block diagram functionally showing the configuration of the image processing apparatus according to the embodiment.
[0009]
In FIG. 1, an image processing apparatus 1 is configured to include the following five units. That is, the five units are an image data control unit 100, an image data input unit 101 for inputting image data, an image memory control unit 102 for controlling image memory for storing images and writing / reading image data, and an image An image processing unit 103 that performs image processing such as processing and editing on the data, and an image writing unit 104 that writes the image data on transfer paper or the like.
[0010]
Each of the above units is configured around the image data control unit 100. That is, the image data input unit 101, the image memory control unit 102, the image processing unit 103, and the image writing unit 104 are all connected to the image data control unit 100 and are subjected to overall control by the image data control unit 100. Hereinafter, functions of these units will be described.
[0011]
The processing performed by the image data control unit 100 is, for example, as follows.
[0012]
Interface processing with control data bus (described later), overall system control, local bus control processing (ROM, RAM, access control processing for starting system controller described later), interface processing with image data input unit 101, image Interface processing with the memory control unit 102, interface processing with the image processing unit 103, interface processing with the image writing unit 104, network control processing, and the like.
[0013]
The processing performed by the image data input unit 101 is as follows, for example.
[0014]
Interface control processing with system controller (described later), reading processing of original reflected light by optical system, conversion processing to electric signal using CCD (Charge Coupled Device), A / D converter Digitization processing, shading correction processing (processing for correcting illuminance distribution unevenness of the light source), processing for correcting density characteristics of a reading system, rasterization processing of PDL image data input via a network, and the like.
[0015]
The processing performed by the image memory control unit 102 is as follows, for example.
[0016]
Interface control processing with a system controller (described later), writing / reading processing to / from a memory unit, access control processing to a memory module (arbitration processing of memory access requests from a plurality of units), etc.
[0017]
The processing performed by the image processing unit 103 is as follows, for example.
[0018]
Color conversion processing, color correction processing, MTF correction processing, smoothing processing, arbitrary scaling processing in the main scanning direction, density conversion (γ conversion processing: corresponding to density adjustment key), simple binarization processing, various pseudo halftone processing , Dot placement phase control processing (jaggy correction), isolated point removal processing, image area separation processing (color determination, attribute determination, adaptive processing), density conversion processing, and the like.
[0019]
The processing performed by the image writing unit 104 is as follows, for example.
[0020]
Image signal pulse control processing, parallel data and serial data format conversion processing, etc.
[0021]
(Hardware configuration of image processing device)
Next, a hardware configuration of the image processing apparatus according to the present embodiment will be described. This image processing apparatus constitutes an MFP (digital multifunction peripheral).
[0022]
FIG. 2 is a block diagram illustrating an example of a hardware configuration of the image processing apparatus according to the embodiment.
[0023]
In the block diagram of FIG. 2, the image processing apparatus 1 includes a reading unit 201 that reads an image original, a PDL processing unit 202, an image data control unit 203, an image processing processor 204, an image forming unit (engine) 205, and a memory control unit. 206, a memory module 207 that stores image data and the like, a network control unit 214, and a working memory 216. In addition to this, the image processing apparatus 1 includes a system controller 209, a ROM 210, a RAM 211, and an operation panel 212 via a control data bus 208. The image processing apparatus 1 is also connected to a personal computer 215 via a network 213.
[0024]
Of the above-described configurations, the image processor 204 processes the digital image data created based on the image so that it can be visualized and output, and can implement a plurality of image forming operations in a programmable manner. The configuration of the image processor 204 will be described in detail later.
[0025]
The image data control unit 203 collectively manages image data transmission between a data bus for transmitting image data and a processing unit used for image processing by the image processor 204. Specifically, data transmission management is performed among the reading unit 201, the PDL processing unit 202, the image processing processor 204, the memory control unit 206, the image forming unit 205, and the network control unit 214.
[0026]
Here, the relationship between each component described above and each unit 100 to 104 shown in FIG. 1 will be described.
[0027]
The reading unit 201 and the PDL processing unit 202 implement the function of the image data input unit 101 in FIG. The image data control unit 203, the system controller 209, the ROM 210, the RAM 211, the operation panel 212, and the network control unit 214 implement the functions of the image data control unit 100. Further, the image processing processor 204 and the working memory 216 realize the function of the image processing unit 103. The image forming unit 205 realizes the function of the image writing unit 104, and the memory control unit 206 and the memory module 207 realize the function of the image memory control unit 102.
[0028]
The system controller 209 operates based on a control program stored in the ROM 210 connected via the control data bus 208, and uses the RAM 211 as a work memory. Further, the reading unit 201, the PDL processing unit 202, the image data control unit 203, the image processing processor 204, the image forming unit 205, the memory control unit 206, the network control unit 214, and the operation panel 212 are respectively connected via a control data bus 208. The operation is controlled by the system controller 209.
[0029]
Next, the operation content of each component will be described.
[0030]
A reading unit 201 that optically reads an original is composed of a lamp, a mirror, a lens, and a light receiving element, and condenses reflected light of lamp irradiation on the original on the light receiving element (for example, CCD) by the mirror and the lens. Image data converted into an electrical signal in the light receiving element is converted into a digital signal and then output (transmitted) from the reading unit 201.
[0031]
The PDL processing unit 202 rasterizes the PDL image data output from the personal computer 215 connected to the network 213 into a bitmap image. When the PDL image data input via the network 213 is input to the PDL processing unit 202 via the network control unit 214, the PDL processing unit 202 performs rasterization based on the input PDL image data and generates a bitmap. Output (send) image data. As described above, the image data output (transmitted) from the reading unit 201 and the PDL processing unit 202 is input (received) to the image data control unit 203.
[0032]
The image data control unit 203 outputs the image data received from the reading unit 201 and the PDL processing unit 202 to the image processing processor 204 or the memory control unit 206.
[0033]
The operation when the image data is output to the image processor 204 by the image data control unit 203 is as follows.
[0034]
The image processor 204 performs predetermined image processing on the input image data using the working memory 216, and outputs the data after the image processing to the image data control unit 203 again. The image data input to the image data control unit 203 is output to the memory control unit 206 and stored in the memory module 207 via the memory control unit 206.
[0035]
After the processing of the image data for one screen by the image processor 204 is completed and the processed data for one screen is stored in the memory module 207, the memory control unit 206 reads the image data from the memory module 207, The read image data is output to the image forming unit 205 via the image data control unit 203, whereby a print output is obtained. The image data read from the memory module 207 can be output to the network control unit 214 via the image data control unit 203 and can be output to the personal computer 215 via the network 213.
[0036]
The operation when the image data is output to the memory control unit 206 by the image data control unit 203 is as follows.
[0037]
Image data input from the image data control unit 203 to the memory control unit 206 is stored in the memory module 207. Next, the memory control unit 206 reads out the stored image data from the memory module 207 and outputs it to the image processing processor 204 via the image data control unit 203. The image processor 204 processes the input image data, and the processed image data is stored again in the memory module 207 via the image data control unit 203 and the memory control unit 206. After the processing of the image data for one screen by the image processor 204 is finished and the processed data for one screen is stored in the memory module 207, the memory control unit 206 reads the image data for the memory module 207, The read image data is output to the image forming unit 205 via the image data control unit 203, whereby a print output is obtained. Alternatively, the image data read from the memory module 207 can be output to the network control unit 214 via the image data control unit 203 and output to the personal computer 215 via the network 213.
[0038]
In the above operation example, the image processor 204 performs processing on the image data output from the reading unit 201 and the PDL processing unit 202, and the processed image data for one screen is stored in the memory module 207. Thus, the processed image data is read out and output to the image forming unit 205 or the network control unit 214. However, the processed image data is stored before the storage of the processed image data for one screen is completed. You may control to read from the memory module 207 and to start a process.
[0039]
Next, another operation example will be described. This is performed without storing image data in the memory module 207.
[0040]
Image data received by the image data control unit 203 from the reading unit 201 and the PDL processing unit 202 is output from the image data control unit 203 to the image processing processor 204. The image processor 204 performs predetermined processing on the input image data and outputs it to the image data control unit 203. The image data input from the image processor 204 to the image data control unit 203 is output to the image forming unit 205 and the network control unit 214 via the image data control unit 203.
[0041]
As an example of the operation when storing one screen of processed image data in the memory module 207, when a plurality of copies of one original are copied, the reading unit 201 is operated only once and is read by the reading unit 201. There is a method in which the stored image data is stored in the memory module 207 and the stored image data is read out a plurality of times. As an operation example in which the image data is not stored in the memory module 207, there is a case where only one original is copied. Since the processed data for the read image data may be directly output to the image forming unit 205, it is not necessary to access the memory module 207.
[0042]
Note that the overall operation of the present apparatus is controlled by the system controller 209 based on processing to be performed by the image processing apparatus input from the operation panel 212. From the operation panel 212, the type of processing (copying, transmission, image reading, printing, etc.), the number of processings, and the like can be input.
[0043]
FIG. 3 is a diagram showing a configuration of the image processor 204 shown in FIG.
[0044]
As shown in FIG. 3, the image processing processor 204 includes FIFO memories 301 and 307 and an arithmetic processing unit 300. The arithmetic processing unit 300 includes a control processing unit 305, an external memory interface 306, and the SIMD processor 308 shown in FIG. As shown in the figure, the SIMD processor 308 includes an input register 302, an output register 304, and a SIMD type data operation processing unit 303. SIMD is to execute a single instruction in parallel for a plurality of data. In this embodiment, the data operation processing unit 303 is configured by 128 element processors (PEs). This configuration will be described in detail later.
[0045]
The FIFO memory 301 is a first-in / first-out memory having a capacity of one raster (7168 pixels) of image data input from the reading unit 201 or the PDL processing unit 202, and writing and reading are controlled independently. . Image data input via the data bus A (see FIG. 2) of the image data control unit 203 is input to the FIFO memory 301 and has the same number of registers as the number of PEs (128) of the data arithmetic processing unit 303. The image data is divided into 56 pieces and inputted to the configured input register 302 as 128 pieces of image data.
[0046]
The image data input from the FIFO memory 301 to the input register 302 is output to the data arithmetic processing unit 303 and the external memory interface 306. The image data input to the data operation processing unit 303 is subjected to predetermined processing by the data operation processing unit 303, and the processed image data is output to the output register 304 and the external memory interface 306. The external memory interface 306 can output intermediate data processed by the data arithmetic processing unit 303.
[0047]
Similar to the input register 302, the output register 304 is configured with the number of registers equal to the number of PEs included in the data operation processing unit 303. The output image data of the output register 304 is input to a FIFO memory 307 having a capacity for one raster of image data. The FIFO memory 307 is a first-in / first-out memory in which writing and reading are controlled independently of each other. The image data signal output from the FIFO memory 307 is output to the image data control unit 203 via the data bus B (see FIG. 2).
[0048]
Further, the SIMD processor 308 and the external memory interface 306 are connected to the control processing unit 305 connected to the control data bus 208 shown in FIG. The control processing unit 305 supplies instructions to the PEs of the data operation processing unit 303, determines the status of each PE, controls the memory connected to each PE, input / output of data to / from the registers, and controls the external memory interface 306. Data control between the internal memory or register of the SIMD processor 308 and the working memory 216 is performed. Note that the control processing unit 305 and the SIMD processor 308 can independently execute different processes.
[0049]
Next, the configuration of the control processing unit 305 and the arithmetic processing unit 300 will be described in detail with reference to FIG.
[0050]
As shown in FIG. 4, the control processing unit 305 includes a control processor 401, a program memory 402 in which a program for controlling operations of the control processor 401 and the SIMD processor 308 is stored, and a data memory 403.
[0051]
On the other hand, the SIMD processor 308 is composed of, for example, 128 PEs (PE0 to PE127) 404 as described above. As shown in FIG. 4, each PE of PE0 to PE127 determines whether or not to perform an arithmetic operation of an 8-bit arithmetic unit (ALU) 405, a general-purpose register 406 composed of 16 8-bit registers, and an ALU. A mask register 407 for controlling the data, a PE register 408 for storing data during the operation, an output register 409, an input register 410, and a memory 411 having a capacity of 2 Kbytes.
[0052]
Each of the ALU 405 and the PE register 408 is mutually connected to the same component in the adjacent PE, and is configured to be able to input and output data. The output register 409 and the input register 410 are also connected to the same constituent element of the adjacent PE, and operate as a 128-stage shift register. The connection configuration of the input register 410 in all the PEs operating as the 128-stage shift register corresponds to the input register 302 in FIG. Similarly, the connection configuration of the output registers 409 in all the PEs operating as the 128-stage shift register corresponds to the output register 304 in FIG.
[0053]
The memory 411 in each PE is connected to the working memory 216 via the external memory interface 306 and the data bus C (see FIG. 2).
[0054]
Note that the external memory interface 306 and the ALU 405, general-purpose register 406, mask register 407, PE register 408, output register 409, input register 410, and memory 413 constituting the PE are each set of data between arbitrary blocks in the PE. It has a configuration that allows input and output. For example, data input / output between the memory 411 and the PE register 408 and data input / output between the PE register 408 and the external memory interface 306 are possible.
[0055]
The supply of instructions to each PE is given to each PE with the same content from the control processor 401 via the instruction supply bus 413, and all PEs are controlled to perform operations according to the same instruction. By making the processing target data given to the PEs different, each PE is controlled to perform arithmetic processing on the different processing target data in parallel. For example, if the contents of 128 pixels in one raster of image data are arranged in the PE register 408 for each pixel and the arithmetic processing for the PE register 408 is performed with the same instruction code, the processing time is shorter than sequential processing for each pixel. Thus, the processing result for 128 pixels can be obtained.
[0056]
As described above, since the configuration is such that input / output can be performed between adjacent PEs, the calculation result of each PE in the ALU 405 and the content of the PE register 408 are the same as the calculation result of the adjacent PE and of the ALU 405 and the content of the PE register 408. It can be obtained by the referred arithmetic processing. Furthermore, the memory 411 of each PE, the input register 410, the output register 409, the PE register 408, the mask register 407, and the general-purpose register 406 are connected to the control processor 401 via the memory / register access bus 414, and the memory and Input / output of each register data is controlled by the control processor 401.
[0057]
The control processor 401 can input / output control data to / from the system controller 209 shown in FIG. 2 via the control data bus 208. Further, the program memory 402 and the data memory 403 that control the operation of the control processor 401 can be accessed from the system controller 209 via the control data bus 208, and processing performed by the image processing unit 300 by the system controller 209. The program memory 402 that controls the operation of the control processor 401 can be rewritten according to the contents.
[0058]
(Image processing overview)
FIG. 5 is a flowchart illustrating an overview of image processing executed by the image processing apparatus according to the embodiment. A program corresponding to this flowchart is stored in the program memory 402 in the control processing unit 305, and is executed by the control processor 401 and the SIMD processor 308.
[0059]
The image signal of 1 raster 7168 pixels subjected to shading correction by the reading unit 201 is divided into 128 pixels equal to the number of PEs of the SIMD processor 308 and processed.
[0060]
Therefore, first, the control processor 401 inputs the image signal read by the CCD by the reading unit 201 in FIG. 2 as an 8-bit image signal to the FIFO memory 301 of the image processor 204 through the image data control unit 203. And stored in the working memory 216 via the input register 302 and the external memory interface 306 (step S1).
[0061]
Next, logarithmic conversion from the luminance signal to the density signal is performed (step S2). Next, density conversion processing for density adjustment is performed on the logarithmically converted density data in accordance with an input from the operation panel 212 (step S3). Similarly, spatial filter processing is performed on the image signal in accordance with the designation of the image mode or the like set based on the input of the operation panel 212 (step S4).
[0062]
Subsequently, in step S5 where pseudo halftone processing is performed, error diffusion processing, tissue dither processing, simple binarization processing, and the like are selectively performed. Step S6 is a step for performing isolated point removal processing, and processing for the binarization result when the simple binarization processing is selected in the previous pseudo halftone processing.
[0063]
Further, other processing is executed as necessary. In step S7, the image signal for one raster binarized as a signal for compressing a binary signal such as a recording signal or JBIG is stored in the external working memory 216. Then, the process for one raster 7168 pixels is completed. If the above raster processing is repeated for 4960 rasters (step S8), the A4 size 1 page processing is completed.
[0064]
(Contents of isolated point removal processing)
Next, the isolated point removal process in step S6 described above will be described with reference to FIGS.
[0065]
First, the image signal of 1 raster 7168 pixels binarized by the pseudo halftone process in step S5 is stored in the working memory 216 via the external memory interface 306 as a 1-bit image signal. The external working memory 216 always stores image signals for five rasters, and new raster signals are sequentially updated as the processing ends.
[0066]
FIG. 6 is a diagram schematically illustrating image data to be processed. In the figure, reference numeral 503 denotes a raster image signal C to be processed, 502 is data B before one raster, 504 is data D after one raster, 501 is data A before two rasters, and 505 is two rasters. The subsequent data E is shown. The image signal of each raster of 7168 pixels is shown in the form of being divided into 56 bands for every 128 pixels corresponding to the number of PEs.
[0067]
That is, the band C-1 indicates 128 pixels (0th to 127th pixels) from the head of the raster to be processed now, and the band C-2 is the 128th to 255th pixels as the second band of the raster to be processed now. Represents the data. Now, if each pixel data of these 128 pixels in 1 band is processed by each of 128 sets of PEs for each pixel, PE0 is in charge of the 128th pixel belonging to band 2 as shown in FIG. The 129th pixel is assigned to PE1, the 130th pixel is assigned to PE2,.
[0068]
An example of the reference pixel position with respect to the target pixel position * for the isolated point removal process performed in step S6 is shown in FIG. Each PE is a process of referring to a total of 25 pixels including the two pixels before and after the PE arrangement direction and the two rasters before and after the raster direction, with the pixel of interest * at the center.
[0069]
Referring to band 2 shown in FIG. 7 as an example, when the 130th pixel in charge of PE2 is the target pixel, the 128th pixel to the 132nd pixel are referred to centering on this 130th pixel. In this case, since all the pixels to be referred to belong to the same band 2, there is no particular difficulty in referring to the data.
[0070]
Next, consider a case where the 129th pixel handled by PE1 is the target pixel. In this case, the 127th to 131st pixels are referred to centering on the 129th pixel. However, among these pixels, the 127th pixel belongs not to band 2 but to band 1, so that the pixel data cannot be directly referred to. This problem also occurs when the pixel assigned to PE0, PE126, and PE127 is the target pixel. Therefore, when the pixel in charge of PE0, PE1, PE126, and PE127 located at the end is the target pixel, it is necessary to perform processing by a program that is partially different from the processing for other PEs.
[0071]
FIG. 9 is a diagram schematically showing a part of the memory 411 of each PE in the isolated point removal processing.
[0072]
In the figure, A n (1) indicates that pixel data handled by PEn in band 1 (ie, A-1) is stored in the internal memory 411 in the nth PE (PEn). A n (2) indicates that pixel data handled by PEn in band 2 (ie, A-2) is stored in the internal memory 411 in the nth PE (PEn). Here, for example, when n is 2, A n (2) represents the pixel of band 2 of the raster data A that PE2 is in charge of, that is, the data of the 130th pixel in 7168 pixels. Here, as described with reference to FIG. 7, since one raster is divided into 56 bands and processed, image data for 5 rasters is stored in an area of 56 * 5 (= 280) bytes in the internal memory 411 of each PE. Will be stored.
[0073]
FIG. 10 is a flowchart showing the isolated point removal process for one raster image signal in step S6.
[0074]
First, a variable (band counter) m indicating a band being processed is initialized to 1, and pixel data of band m (that is, band 1) of raster data E handled by PEn is E. n (M), ie E n (1) is input from the external working memory 216 to the input register 410 assigned to the corresponding PEn (step S11). Here, it is assumed that the raster image data A, B, C, and D in FIG. 7 has already been input when the preceding four rasters are processed.
[0075]
Next, in step S12, the E-th raster data E of the band (m + 1) next to the band m to be processed from now on. n (M + 1) is input to the internal memory 411. That is, the image data required for processing by the PE 126 and PE 127 at the rear end of the band C currently processed is input here. Only when m = 56, there is no image data required for processing by the rear end PE, but up to band 55, the band data after that for the band to be processed is stored in the internal memory 411 of each PE for five rasters. Will be stored. Since these data are sequentially stored for one raster for each band, all the image data of one band before the PE0 and PE1 at the front end except for the band of m = 1 are also required for each PE. It is held in the internal memory.
[0076]
In step S13, the data C of all 128 pixels to be processed by each PE n For (m), it is checked whether all 128 pixels have the lowest value (ie, 0) or all 128 pixels have the highest value (ie, 1). The isolated point removal process is a process of inverting the binary data at the target pixel position when the binary data at the target pixel position is different from the binary data of all the 24 surrounding pixels. If 128 consecutive binary data on the same raster to be processed are all 0's or all 1's, it is assumed that there will be no isolated points in these 128 data regardless of the state of other adjacent pixels. Is done.
[0077]
Therefore, in such a case, it is determined that the current pixel of interest is not a pixel subject to isolated point removal, and steps S14 to S14 are operations that depend on a predetermined number of surrounding pixels with respect to the pixel of interest as described below. The process of S22 is skipped, and the target pixel value C in step S23 n (M) is directly output to the external working memory 216 as a processing result.
[0078]
If there is a pixel to be processed in step S13, the process proceeds to step S14.
[0079]
In step S14, the data P13, P23, P43, P53 stored in the internal memory 411 of the responsible PE among the reference pixel positions shown in FIG. n (M), B n (M), D n (M), E n The binary data of (m) is added and stored in the PE register PER.
[0080]
Step S15 is a determination step for executing different processing depending on the number of each PE, and the SIMD processor 308 can perform comparison with each PE number on a single program. Can be executed.
[0081]
As described above, for PEs other than PE0, PE1, PE126, and PE127 located at the end, the process proceeds from step S15 to step S16, and other peripheral pixel data are sequentially added.
[0082]
That is, the pixel data A for which the previous pixel is in charge of the nth PE. n-1 (M), B n-1 (M), C n-1 (M), D n-1 (M), E n-1 (M) is added to PER. Similarly, pixel data A for which the previous pixel is in charge of the nth PE n-2 (M), B n-2 (M), C n-2 (M), D n-2 (M), E n-2 (M) is added to PER. Similarly, the pixel data A assigned to the PE after one pixel for the nth PE n + 1 (M), B n + 1 (M), C n + 1 (M), D n + 1 (M), E n + 1 (M) is added to PER. Further, similarly, the pixel data A assigned to the PE after 2 pixels for the nth PE. n + 2 (M), B n + 2 (M), C n + 2 (M), D n + 2 (M), E n + 2 (M) is added to PER.
[0083]
Since the SIMD processor 308 can access the registers and the like that are handled by three pairs of PEs separated from each other on the left and right, all 124 pairs of PEs PE2 to PE126 can execute the same step S16.
[0084]
Next, processing step S17 of PE0 branched at step S15 will be described. FIG. 11 is a flowchart showing the process performed in step S17.
[0085]
The PE of n-1 with respect to PE0 is PE127. If the image data of the previous pixel is processed in step S16, the PE127 in the same band is in charge, not the pixel data in charge of the PE127 in the previous band. The pixel will be referred to. Therefore, PE0 is the pixel data of the previous band handled by the PE of the previous pixel in step S17a, that is, A n-1 (M-1), B n-1 (M-1), C n-1 (M-1), D n-1 (M-1), E n-1 (M-1) is added to PER. Similarly, pixel data of the previous band handled by the PE of the previous two pixels, that is, A n-2 (M-1), B n-2 (M-1), C n-2 (M-1), D n-2 (M-1), E n-2 (M-1) is added to PER. The subsequent step S17b is an operation for the pixel after the first pixel and the pixel after the second pixel, and performs the same processing as in step S16 described above.
[0086]
Next, processing step S18 of PE1 branched in step S15 will be described. FIG. 12 is a flowchart showing the process performed in step S18.
[0087]
The PE of n-2 with respect to PE1 is PE127, and if the image data two pixels before is processed in step S16, the pixel in charge of PE127 in the same band will be referred to. In step S18a, PE1 is the pixel data of the previous band, A n-2 (M-1), B n-2 (M-1), C n-2 (M-1), D n-2 (M-1), E n-2 (M-1) is added to PER. In the subsequent step S18b, calculation is performed on the pixel data one pixel before, one pixel after, and two pixels after, similarly to step S16 described above.
[0088]
Next, processing step S19 of PE 126 branched in step S15 will be described. FIG. 13 is a flowchart showing the process performed in step S19.
[0089]
The PE of n + 2 with respect to PE126 is PE0, and if the image data after two pixels is processed in step S16, the pixel data handled by PE0 in the same band will be referred to. Therefore, in step S19a, the PE 126 is pixel data after one band, which is handled by the PE after two pixels, that is, A n + 2 (M + 1), B n + 2 (M + 1), C n + 2 (M + 1), D n + 2 (M + 1), E n + 2 Add (m + 1) to the PER. In the subsequent step S19b, the calculation for the pixel data after one pixel, one pixel before, and two pixels before is performed in the same manner as in step S16 described above.
[0090]
Next, processing step S20 of PE127 branched in step S15 will be described. FIG. 14 is a flowchart showing the process performed in step S20.
[0091]
The PE of n + 1 with respect to PE127 is PE0, and if the image data after two pixels is processed in step S16, the pixel data handled by PE0 in the same band will be referred to. Therefore, in step S20a, the PE 127 is pixel data after one band, which is handled by the PE after two pixels, that is, A n + 2 (M + 1), B n + 2 (M + 1), C n + 2 (M + 1), D n + 2 (M + 1), E n + 2 Add (m + 1) to the PER. Similarly, pixel data after one band for which PE after one pixel is in charge, that is, A n + 1 (M + 1), B n + 1 (M + 1), C n + 1 (M + 1), D n + 1 (M + 1), E n + 1 Add (m + 1) to the PER. In the subsequent step S20b, the calculation for the pixel one pixel after, one pixel before, and two pixels before is executed in the same manner as in step S16 described above.
[0092]
After the processing according to each PE number is finished, each PE register holds a value obtained by adding binary data of 24 pixels around the pixel of interest. Therefore, in step S21, each target pixel data C n Whether (m) is isolated from the surrounding pixel data, that is, the target pixel C n When only (m) is 1 and all the surrounding 24 pixels are 0 (PER = 0), or the target pixel C n If only (m) is 0 and the surrounding 24 pixels are all 1 (PER = 24), it is determined whether or not it is true.
[0093]
When an isolated point is detected in step S21, the process proceeds to step S22, and the target pixel data C n Invert (m) from 0 to 1 or from 1 to 0. Next, in step S23, the target pixel data C n (M) is output. Here, the target pixel data C stored in the internal memory 411 is displayed. n Even if (m) is an isolated point, this value is not rewritten, and only the processing result is inverted and output.
[0094]
A series of processing in steps S12 to S23 is repeated until the number of bands is reached (step S24), and one raster processing is completed.
[0095]
In step S25, every time processing for one raster is completed, the oldest raster data stored in the internal memory 411 assigned to each PE, that is, the A data is updated with the B data. Is updated with C data, C data is updated with D data, and D data is updated with E data. Thus, when the next raster is processed, new E raster data is sequentially input for each band in steps S11 and S12.
[0096]
According to the above processing, in step S13, it is determined whether or not there is a pixel to be subjected to isolated point removal in the 128 pixel data to be processed in parallel. The isolated point removal process for the pixel is omitted. Therefore, the processing speed can be increased.
[0097]
(Contents of logarithmic conversion process)
FIG. 15 is a flowchart showing the logarithmic conversion process in step S2. Similarly to the isolated point removal process described above, the logarithmic conversion process also divides 7168 pixels per raster into 56 bands for each 128 pixels, and 128 band data is processed in parallel.
[0098]
First, the band counter m is set to 1 (step S31), and the luminance signal A n (M) is input from the external working memory 216 to an arbitrary register in charge of each PE (step S32).
[0099]
Luminance signal A n (M) can take an 8-bit value from the brightest value 255 to the darkest value 0, but generally in logarithmic conversion processing, the brightest value 255 is converted to 0 and the darkest value 0 is converted to 255 uniquely. To do. In the present embodiment, a luminance signal converted into raster data as PDL image data is input from the PDL unit 202 to the SIMD processor 308. In general, however, the white portion of the background in the PDL image and the black solid in the figure. An image or the like has a luminance value of 255 or 0 in a wide range.
[0100]
Therefore, 128 image signals A to be processed by all PEs in step S33 for such image signals. n When it is detected that (m) is all 0 or 255, the process proceeds to step S35 and the luminance signal A is uniquely determined. n The value obtained by inverting the bit of (m) is the density value D. n As (m), the process proceeds to step S36. If there is a pixel having an 8-bit intermediate value in step S33, the process proceeds to step S34, and a logarithmic conversion process is performed as usual. As a normal logarithmic conversion method, for example, a luminance value A n Method of performing polynomial approximation calculation using (m) as a variable, luminance value A n There are known a conversion method based on a broken line approximation of several points by comparing (m) with a threshold, an LUT conversion method using an internal memory, and the like. In step S34, any method may be used.
[0101]
In step S36, the density value D n (M) is output to the external working memory 216 as a processing result. The above process is repeated 56 times (step S37), and the logarithmic conversion process for one raster of 7168 pixels is completed.
[0102]
According to such a process, in particular, for a PDL image signal, since it is a simple process in step S35 in most cases, the logarithmic conversion process can be processed at a very high speed.
[0103]
(Contents of pseudo intermediate processing)
FIG. 16 is a flowchart showing the pseudo halftone process in step S5.
[0104]
In this pseudo halftone process, as in the above-described isolated point removal process and logarithmic conversion process, one raster of 7168 pixels is divided into 56 bands for every 128 pixels, and band data of 128 pixels is processed in parallel.
[0105]
First, the band counter m is set to 1 (step S41), and the density signal A n (M) is input from the external working memory 216 to an arbitrary register in charge of each PE (step S42). Density signal A n (M) can take an 8-bit value from the brightest value 0 to the darkest value 255, but generally in the pseudo halftone process, the brightest value 0 is set to 0 and the darkest value 255 is set to 1, so that it is uniquely binarized. Is done. In this embodiment, an image signal converted into raster data as PDL image data is input from the PDL unit 202 to the SIMD processor 308. In general, a white portion of the background in the PDL image, a black solid image in the figure, etc. And has a density value of 255 or 0 in a wide range.
[0106]
Therefore, 128 image signals A to be processed by all the PEs in step S43 for such image signals. n If it is detected that (m) is all 0 or 255, the process proceeds to step S45, where the 8-bit density signal A is uniquely determined. n The MSB of (m) is converted into 1-bit binary data D n (M), and the process proceeds to step S46. If there is a pixel having an 8-bit intermediate value in step S43, the process proceeds to step S44, and the normal pseudo halftone process is executed. As a method of this pseudo halftone processing, for example, a systematic dither method, a random number dither method, an error diffusion method and the like are known. In step S44, any method may be used.
[0107]
In step S46, the binarized data D n (M) is output to the external working memory 216 as a processing result. The above process is repeated 56 times (step S47), and the logarithmic conversion process for one raster of 7168 pixels ends.
[0108]
According to such a process, since it is a simple process in step S45 in most cases especially for a PDL image signal, the pseudo halftone process can be processed extremely quickly over one page. .
[0109]
Here, an example in the case of binarized data of the density signal is shown, but it is of course applicable to other multilevel data, for example, 2-bit 4-level or 3-bit 8-level multilevel processing. In this case, it goes without saying that the upper 2 bits or 3 bits of the input signal can be obtained as the multilevel signal for the input signal 255, respectively.
[0110]
(Other embodiments)
The present invention can also be applied to a smoothing process similar to the isolated point removal process described above.
[0111]
In addition, in the smoothing process or the like, when the correction process is performed on the target pixel with reference to the surrounding pixels of the target pixel, the value is evaluated only for the 128 pixels to be processed in the above-described embodiment, and thereafter It is determined whether or not to execute the specific calculation. However, according to the purpose of the processing, for example, the above determination may be performed in consideration of the state of 128 pixels before one adjacent raster. .
[0112]
In addition, the present invention can be applied to, for example, spatial filter processing that is processing for a multilevel image signal.
[0113]
For example, in the case of a 3 × 3 spatial filter, when at least all the three raster image signals to be referenced are 0 or all 255, the processing result of every spatial filter is uniquely 0 or 255. Also, for example, in the case of a Laplacian filter, Laplacian is calculated, and when the value is 0 for all PEs, it is determined that the target image signal has no change and is a uniform image region, and calculation from that point is stopped. By doing so, it is possible to omit unnecessary processing thereafter. Therefore, in this case as well, for PDL images, the processing speed can be increased as in the above-described embodiment.
[0114]
The present invention can also be applied to black character processing in color image processing.
[0115]
Black character processing refers to processing for determining whether a pixel is black and whether it constitutes a part of a character and configuring a recording signal with, for example, a single black color according to the determination result. In this process, whether or not each pixel signal is black is determined in advance. If all the pixels handled by the PEs of SIMD operating in parallel are not black, the subsequent character determination process is performed. Is unnecessary. In general, the area of black characters constituting one page is 10% or less at most, so in this case as well, by applying the present invention, all the pixels in charge of each PE operating in parallel are all black. Only when the determination is made, the subsequent character determination process needs to be performed, so that the black character process can be performed at a very high speed.
[0116]
Further, in the above-described embodiment, it is determined whether or not to perform a specific calculation related to the image processing inside each image processing to be applied. In addition, it may be determined whether or not to execute specific, and each image processing may be operated based on the determination result. In this case, it is not necessary to bother to perform a process for determining whether or not to execute a specific calculation in each image process, and further, it is possible to speed up the entire image process.
[0117]
Although the embodiments of the present invention have been described in detail above, the present invention comprises a single device even when applied to a system composed of a plurality of devices (for example, a host computer, an interface device, a reader, a printer, etc.). You may apply to an apparatus (for example, a copying machine, a facsimile machine, etc.).
[0118]
In the present invention, a software program (a program corresponding to at least one flowchart of FIG. 10 (including FIGS. 11 to 14), FIG. 15 and FIG. 16) that realizes the functions of the above-described embodiments. This includes a case where the object is also achieved by supplying the system or apparatus directly or remotely, and reading and executing the supplied program by the computer of the system or apparatus.
[0119]
Accordingly, since the functions of the present invention are implemented by computer, the program code installed in the computer also implements the present invention. That is, the scope of the claims of the present invention includes the computer program itself for realizing the functional processing of the present invention.
[0120]
In this case, the program may be in any form as long as it has a program function, such as an object code, a program executed by an interpreter, or script data supplied to the OS.
[0121]
Examples of the storage medium for supplying the program include a flexible disk, an optical disk (CD-ROM, CD-R, CD-RW, DVD, etc.), a magneto-optical disk, a magnetic tape, and a memory card.
[0122]
In addition, the program supply method includes a mode in which the program of the present invention is acquired by file transfer via the Internet.
[0123]
In addition, the program of the present invention is encrypted, stored in a storage medium such as a CD-ROM, distributed to users, and a user who clears predetermined conditions is allowed to acquire key information for decryption via the Internet, By using the key information, an encrypted program can be executed and installed in a computer.
[0124]
In addition to the functions of the above-described embodiments being realized by the computer executing the read program, the OS or the like running on the computer based on an instruction of the program may be a part of the actual processing or All the functions are performed, and the functions of the above-described embodiments can be realized by the processing.
[0125]
Furthermore, after the program read from the storage medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion board or The CPU or the like provided in the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are also realized by the processing.
[0126]
【The invention's effect】
According to the present invention, it is possible to increase the speed of image processing in an image processing apparatus using a SIMD type processor.
[Brief description of the drawings]
FIG. 1 is a block diagram functionally showing a configuration of an image processing apparatus according to an embodiment.
FIG. 2 is a block diagram illustrating an example of a hardware configuration of the image processing apparatus according to the embodiment.
FIG. 3 is a diagram illustrating a configuration of an image processor in the embodiment.
FIG. 4 is a diagram illustrating a configuration of a control processing unit and an arithmetic processing unit in the embodiment.
FIG. 5 is a flowchart illustrating an outline of image processing executed by the image processing apparatus according to the embodiment.
FIG. 6 is a diagram schematically illustrating image data to be processed.
FIG. 7 is a diagram for explaining handling of band data in the SIMD processor in the embodiment.
FIG. 8 is a diagram for explaining pixels referred to in isolated point removal processing;
FIG. 9 is a diagram schematically showing a part of the memory of each PE in isolated point removal processing.
FIG. 10 is a flowchart showing isolated point removal processing in the embodiment.
FIG. 11 is a flowchart illustrating a procedure for adding peripheral pixel data according to the embodiment.
FIG. 12 is a flowchart illustrating a procedure for adding peripheral pixel data according to the embodiment.
FIG. 13 is a flowchart illustrating a procedure for adding peripheral pixel data according to the embodiment.
FIG. 14 is a flowchart illustrating a procedure for adding peripheral pixel data according to the embodiment.
FIG. 15 is a flowchart illustrating logarithmic conversion processing according to the embodiment.
FIG. 16 is a flowchart illustrating pseudo halftone processing according to the embodiment.

Claims (6)

複数の要素プロセッサそれぞれに同一の命令を並列に実行させる並列処理手段を備え、その並列処理手段を用いて所定の画像処理を行う画像処理装置であって、
並列処理すべき複数の画素データのそれぞれを、対応する前記要素プロセッサに供給する供給手段と、
各要素プロセッサに供給された画素データに基づいて、前記画像処理における特定の演算を実行すべきかどうかを判断する判断手段と、
前記演算を実行すべきと判断したときにのみ、その演算を実行するように制御する制御手段と、
を備えることを特徴とする画像処理装置。
An image processing apparatus comprising parallel processing means for causing a plurality of element processors to execute the same instruction in parallel, and performing predetermined image processing using the parallel processing means,
Supply means for supplying each of the plurality of pixel data to be processed in parallel to the corresponding element processor;
Determination means for determining whether or not to perform a specific operation in the image processing based on pixel data supplied to each element processor;
Control means for performing control only when it is determined that the calculation should be performed;
An image processing apparatus comprising:
前記判断手段は、各要素プロセッサに供給された画素データのいずれもが最高値、またはいずれもが最低値であるときに、前記演算を実行すべきでないと判断することを特徴とする請求項1に記載の画像処理装置。2. The determination unit according to claim 1, wherein when the pixel data supplied to each element processor is the highest value or the lowest value, the calculation is not to be executed. The image processing apparatus according to 1. 前記所定の画像処理は、孤立点除去処理、対数変換処理、擬似中間処理、スムージング処理、空間フィルタ処理、黒文字処理の少なくともいずれかを含むことを特徴とする請求項1または2に記載の画像処理装置。The image processing according to claim 1, wherein the predetermined image processing includes at least one of isolated point removal processing, logarithmic conversion processing, pseudo intermediate processing, smoothing processing, spatial filtering processing, and black character processing. apparatus. 前記特定の演算は、注目画素に対して所定数の周辺画素に依存した演算であることを特徴とする請求項1から3までのいずれかに記載の画像処理装置。The image processing apparatus according to claim 1, wherein the specific calculation is a calculation depending on a predetermined number of surrounding pixels with respect to the target pixel. 複数の要素プロセッサそれぞれに同一の命令を並列に実行させる並列処理手段を備え、その並列処理手段を用いて所定の画像処理を行う画像処理装置の制御方法であって、
並列処理すべき複数の画素データのそれぞれを、対応する前記要素プロセッサに供給する供給ステップと、
各要素プロセッサに供給された画素データに基づいて、前記画像処理における特定の演算を実行すべきかどうかを判断する判断ステップと、
前記演算を実行すべきと判断したときにのみ、その演算を実行するように制御する制御ステップと、
を有することを特徴とする画像処理装置の制御方法。
A control method of an image processing apparatus comprising parallel processing means for causing each of a plurality of element processors to execute the same instruction in parallel, and performing predetermined image processing using the parallel processing means,
Supplying each of a plurality of pixel data to be processed in parallel to the corresponding element processor;
A determination step of determining whether or not to perform a specific operation in the image processing based on pixel data supplied to each element processor;
A control step for controlling to execute the calculation only when it is determined that the calculation should be performed;
A control method for an image processing apparatus, comprising:
複数の要素プロセッサそれぞれに同一の命令を並列に実行させる並列処理手段を備え、その並列処理手段を用いて所定の画像処理を行う画像処理装置を制御するためのプログラムであって、
並列処理すべき複数の画素データのそれぞれを、対応する前記要素プロセッサに供給する供給ステップ、
各要素プロセッサに供給される画素データに基づいて、前記画像処理における特定の演算を実行すべきかどうかを判断する判断ステップ、
前記演算を実行すべきと判断したときにのみ、その演算を実行するように制御する制御ステップ、
を実行させるプログラム。
A program for controlling an image processing apparatus that includes a parallel processing unit that causes each of a plurality of element processors to execute the same instruction in parallel, and that performs predetermined image processing using the parallel processing unit,
Supplying each of a plurality of pixel data to be processed in parallel to the corresponding element processor;
A determination step of determining whether or not to perform a specific operation in the image processing based on pixel data supplied to each element processor;
A control step for controlling to execute the calculation only when it is determined that the calculation should be performed;
A program that executes
JP2002176234A 2002-06-17 2002-06-17 Image processing apparatus and control method thereof Expired - Fee Related JP4086556B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002176234A JP4086556B2 (en) 2002-06-17 2002-06-17 Image processing apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002176234A JP4086556B2 (en) 2002-06-17 2002-06-17 Image processing apparatus and control method thereof

Publications (2)

Publication Number Publication Date
JP2004021645A true JP2004021645A (en) 2004-01-22
JP4086556B2 JP4086556B2 (en) 2008-05-14

Family

ID=31174649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002176234A Expired - Fee Related JP4086556B2 (en) 2002-06-17 2002-06-17 Image processing apparatus and control method thereof

Country Status (1)

Country Link
JP (1) JP4086556B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005267275A (en) * 2004-03-18 2005-09-29 Ricoh Co Ltd Image processor, image forming device, image processing method, computer program and recording medium
JP2006099232A (en) * 2004-09-28 2006-04-13 Renesas Technology Corp Semiconductor signal processor
JP2006127460A (en) * 2004-06-09 2006-05-18 Renesas Technology Corp Semiconductor device, semiconductor signal processing apparatus and crossbar switch
WO2010064374A1 (en) * 2008-12-05 2010-06-10 パナソニック株式会社 Image processing device
JP2011192305A (en) * 2011-06-01 2011-09-29 Renesas Electronics Corp Semiconductor signal processor
US8176290B2 (en) 2008-07-04 2012-05-08 Kabushiki Kaisha Toshiba Memory controller

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005267275A (en) * 2004-03-18 2005-09-29 Ricoh Co Ltd Image processor, image forming device, image processing method, computer program and recording medium
JP4516336B2 (en) * 2004-03-18 2010-08-04 株式会社リコー Image processing apparatus, image forming apparatus, image processing method, computer program, and recording medium
JP2006127460A (en) * 2004-06-09 2006-05-18 Renesas Technology Corp Semiconductor device, semiconductor signal processing apparatus and crossbar switch
JP2006099232A (en) * 2004-09-28 2006-04-13 Renesas Technology Corp Semiconductor signal processor
US8176290B2 (en) 2008-07-04 2012-05-08 Kabushiki Kaisha Toshiba Memory controller
WO2010064374A1 (en) * 2008-12-05 2010-06-10 パナソニック株式会社 Image processing device
JP2010134743A (en) * 2008-12-05 2010-06-17 Panasonic Corp Image processor
JP2011192305A (en) * 2011-06-01 2011-09-29 Renesas Electronics Corp Semiconductor signal processor

Also Published As

Publication number Publication date
JP4086556B2 (en) 2008-05-14

Similar Documents

Publication Publication Date Title
JP3063957B2 (en) Image processing device
JP3927388B2 (en) Image processing apparatus, image processing method, and recording medium
JPH11187264A (en) Method and device for processing image
JP4143302B2 (en) Image processing apparatus, image processing method, control program, and recording medium
JP2830690B2 (en) Image processing device
JP4086556B2 (en) Image processing apparatus and control method thereof
JP2006121347A (en) Image processor
US8264730B2 (en) Image processing apparatus and image forming apparatus
JP4136825B2 (en) Image processing apparatus, image processing method, computer-readable storage medium storing program, and program
JP2002300407A (en) Image processor, image processing method, image processing program and computer-readable recording medium recorded with the program
JP4125025B2 (en) Image processing device
JP3669574B2 (en) Image processing apparatus, image processing method, program for causing computer to execute the method, and computer-readable recording medium storing the program
JP2005094126A (en) Image processing apparatus, image processing method, and image processing program executable by computer
JP2004072571A (en) Image data processor, image data processing method, program and recording medium
JPH08123939A (en) Picture processor
JPS59204378A (en) Image processor
JP2000227848A (en) Image processor
JP2003346139A (en) Image processor, image processing method, and computer- readable recording medium having program for running the method on computer recorded therein
JP2002152511A (en) Image processor, image processing method and computer readable medium recording program for executing that method in computer
JP5753370B2 (en) Image processing apparatus, method, and program
JP2821452B2 (en) Color image processing method
JP2004104677A (en) Image processing device, image processing method, and recording medium for realizing the method
JP2005094643A (en) Image processing apparatus
JP2001274993A (en) Image processor, printer device, copying device, facsimile equipment, image forming composite device, image processing method and computer readable recording medium with the processing method recorded therein
JP2002218229A (en) Image processor, image processing method, program for making computer perform image processing method and computer readable recording medium having the program recorded thereon

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080219

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4086556

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120229

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130228

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140228

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees