JP4125025B2 - Image processing device - Google Patents

Image processing device Download PDF

Info

Publication number
JP4125025B2
JP4125025B2 JP2002081248A JP2002081248A JP4125025B2 JP 4125025 B2 JP4125025 B2 JP 4125025B2 JP 2002081248 A JP2002081248 A JP 2002081248A JP 2002081248 A JP2002081248 A JP 2002081248A JP 4125025 B2 JP4125025 B2 JP 4125025B2
Authority
JP
Japan
Prior art keywords
random number
image
processing
image data
register
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.)
Expired - Fee Related
Application number
JP2002081248A
Other languages
Japanese (ja)
Other versions
JP2003281515A (en
Inventor
宏 谷岡
茂雄 山形
学 竹林
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 JP2002081248A priority Critical patent/JP4125025B2/en
Publication of JP2003281515A publication Critical patent/JP2003281515A/en
Application granted granted Critical
Publication of JP4125025B2 publication Critical patent/JP4125025B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Image Processing (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、擬似乱数を発生する画像処理装置及びその方法に関する。
【0002】
【従来の技術】
現在、コピー機、ファクシミリ、プリンタ、スキャナといった、それぞれ異なる機能を有する画像処理装置の複合機として構成された、いわゆるMFP(Multi Function Printer)と呼ばれる画像処理装置が知られている。このようなMFPにおいては、その画像処理部にSIMD(Single Instruction stream Multiple Data stream)型のプロッセッサを使用することにより、高速、かつプログラマブルに画像を処理する技術が、例えば特開平8-315126号公報に記載されている。
【0003】
このようなMFPにおいては、擬似乱数を用いた画像処理が行われる。例えば擬似中間調処理の様に中間調を擬似的に表現する場合、人間の目に目障りな周波数成分を持ち、さらに規則性を有するテクスチャを軽減するために、より不規則で高い周波数成分を持つ擬似的な乱数を用いて、該目障りなテクスチャを乱す処理が知られている。このような擬似乱数を用いた処理は、例えば図5に示す乱数発生器等、簡単なハードウエアによって実現されていた。
【0004】
【発明が解決しようとする課題】
しかしながら上記従来のMFPにおいて、SIMD型のプロセッサを用いたソフトウエアによって多数の画素を並列に処理する場合、上記擬似乱数を発生させる方法としては、以下のような方法が考えられる。
【0005】
a) 図5に示すような乱数発生器を外部ハードウエアとして並列に用意するか、または他のCPUで擬似乱数を生成し、画像信号と同様にラスタ状に入力する。
【0006】
b) SIMD型プロセッサを構成する各PE(プロセッサエレメント)で独立に擬似乱数を発生させる。
【0007】
通常のSIMD型プロセッサにおいては、外部からのデータ入力を行う際には、PE数分のシフトレジスタによる転送を伴う。したがって、上記方法a)では、SIMDプロセッサへの入力のために多くの転送時間を必要としてしまう。
【0008】
また上記方法b)では、SIMD型プロッセッサにおける全てのPEは同一のプログラムによって動作するため、PE毎に異なる乱数を発生することはできない。したがってこの方法では、隣接するプロセッサが隣接する画像信号に処理を行う場合に同一の乱数が発生してしまうため、通常の乱数処理は行えない。
【0009】
本発明は上記問題を解決するためになされたものであり、SIMD型プロセッサによる高速な擬似乱数処理を可能とする画像処理装置及びその方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成する一手段として、本発明は以下の構成を備える。
【0011】
本画像処理装置は、複数の要素プロセッサの夫々に画像データを分割して供給し、前記複数の要素プロセッサに前記分割して供給される画像データに対して同種の演算を並行して実行させる画像処理装置であって、
前記複数の要素プロセッサは夫々、共通する手順で、周期性を有する擬似乱数列を発生する擬似乱数列発生処理を行う演算部および前記擬似乱数列発生処理のための初期値を保持するレジスタを有し、
前記複数の要素プロセッサが有する複数の前記レジスタに、前記演算部により発生された擬似乱数列の一周期内における異なる位置のビット列を、前記擬似乱数列発生処理の初期値として設定する設定手段を有し、
前記設定手段は、前記複数の要素プロセッサの各々が、各要素プロセッサが有する前記演算部が発生する擬似乱数列を用いて前記画像データを処理する際に、前記複数の要素プロセッサが有する複数の前記演算部の各々が、異なる擬似乱数列を発生するように前記初期値を設定することを特徴とする。
【0015】
【発明の実施の形態】
以下、本発明に係る一実施形態について、図面を参照して詳細に説明する。
【0016】
<第1実施形態>
●画像処理装置の基本機能構成
まず、本実施形態にかかる画像処理装置の基本機能構成を図1のブロック図に示し、説明する。同図によれば本画像処理装置は、主制御を行う画像データ制御ユニット100と、画像データを入力する画像データ入力ユニット101と、画像を蓄積する画像メモリを制御して画像データの書き込み/読み出しをおこなう画像メモリ制御ユニット102と、画像データに対して加工編集等の画像処理を施す画像処理ユニット103と、画像データを転写紙等に書き込む画像書込ユニット104、の5つのユニットからなる。
【0017】
上記各ユニットは、画像データ制御ユニット100を中心に構成されている。すなわち、画像データ入力ユニット101、画像メモリ制御ユニット102、画像処理ユニット103、画像書込ユニット104は、いずれも画像データ制御ユニット100に接続されている。以下、この各ユニットについて、それぞれ説明する。
【0018】
まず、画像データ制御ユニット100による処理を以下に示す。
【0019】
制御データバスインターフェース処理、全体システム制御、ローカルバス制御処理(システム・コントローラーを起動させるためのROM、RAM、アクセス制御処理)、画像データ入力ユニット101とのインターフェース処理、画像メモリ制御ユニット102とのインターフェース処理、画像処理ユニット103とのインターフェース処理、画像書込みユニット104とのインターフェース処理、ネットワーク制御処理、等である。
【0020】
画像データ入力ユニット101においては、システム・コントローラとのインタフェース制御処理、光学系による原稿反射光の読み取り処理、CCD(Charge Coupled Device:電荷結合素子)等を用いた電気信号への変換処理、A/D変換器でのディジタル化処理、シェーディング補正処理(光源の照度分布ムラを補正する処理)、読み取り系の濃度特性を補正する処理、ネットワークを介して入力されるPDL画像データのラスタライズ処理、等が行われる。
【0021】
画像メモリ制御ユニット102においては、システム・コントローラとのインタフェース制御処理、メモリ部への書き込み・読み出し処理、メモリ・モジュールへのアクセス制御処理(複数のユニットからのメモリ・アクセス要求の調停処理)、等が行われる。
【0022】
画像処理ユニット103においては、色変換処理、色補正処理、MTF補正処理、平滑化処理、主走査方向の任意変倍処理、濃度変換(γ変換処理:濃度調整キーに対応)、単純二値化処理、各種擬似中間調処理、ドット配置位相制御処理(ジャギー補正)、像域分離処理(色判定、属性判定、適応処理)、密度変換処理、等が行われる。
【0023】
画像書込ユニット104においては、画像信号のパルス制御処理、パラレルデータとシリアルデータのフォーマット変換処理、等が行われる。
【0024】
●ディジタル複合機のハードウェア構成
上述した本実施形態に係る画像処理装置はディジタル複合機を構成する。以下、本ディジタル複合機のハードウェア構成の一例を図2のブロック図に示し、説明する。同図によれば本ディジタル複合機は、読取ユニット201、PDL処理ユニット202、画像データ制御部203、画像処理プロセッサ204、作像ユニット205、メモリ制御部206、メモリモジュール207、ネットワーク制御部214、ワーキングメモリ216、を備える。さらに制御用データバス208を介して、システムコントローラ209、ROM210、RAM211、操作パネル212を備える。また、ネットワーク213を介して、パーソナルコンピュータ215に接続されている。
【0025】
上記図2に示す構成のうち、画像処理プロセッサ204は、画像に基づいて作成されたディジタル信号である画像データを顕像として出力できるように処理し、複数の画像形成動作を実現できるプログラマブルな画像処理手段である。また、画像データ制御部203は、画像データを伝送するデータバスと画像処理プロセッサ204による画像処理に用いられる処理ユニット間の画像データ伝送を一括して管理する画像データ伝送管理手段であり、読取ユニット201、PDL処理ユニット202、画像処理プロセッサ204、メモリ制御部206、作像ユニット205、ネットワーク制御部214間のデータ伝送管理を行なう。なお、本実施形態は画像処理プロセッサ204における処理を特徴とするものであり、画像処理プロセッサ204の詳細な構成については、図3以降の図面を用いて詳細に説明するものとする。
【0026】
また、本ディジタル複合機は、画像データ記憶管理手段として、画像メモリ制御部206に接続されるメモリ・モジュール207を備える。
【0027】
ここで、図2に示す各構成と、図1に示した各ユニット100〜104との関係について説明する。すなわち、読取ユニット201およびPDL処理ユニット202により、図1に示した画像データ入力ユニット101の機能を実現する。また同様に、画像データ制御部203、システムコントローラ209、ROM210、RAM211、操作パネル212、ネットワーク制御部214により、画像データ制御ユニット100の機能を実現する。また同様に、画像処理プロセッサ204、ワーキングメモリ216により画像処理ユニット103の機能を実現する。
【0028】
また同様に、作像ユニット205により画像書込ユニット104を実現し、メモリ制御部206およびメモリ・モジュール207により画像メモリ制御ユニット102を実現する。
【0029】
尚、図2に示すシステムコントローラ209は、制御用データバス208を介して接続されたROM210に記憶された制御プログラムに基づいて動作し、RAM211をワーク用メモリとして使用する。また、読取ユニット201、PDL処理ユニット202、画像データ制御部203、画像処理プロセッサ部204、作像ユニット205、メモリ制御部206、ネットワーク制御部214、操作パネル212は、制御用データバス208を介して、システムコントローラ209によりそれぞれの動作が制御される。
【0030】
以下、図2に示す各構成の動作について詳細に説明する。原稿を光学的に読み取る読取ユニット201は、ランプとミラーとレンズ、および受光素子から構成され、原稿に対するランプ照射の反射光をミラーおよびレンズにより受光素子に集光する。CCD等の受光素子において電気信号に変換された画像データはディジタル信号に変換された後、読取ユニット201より出力(送信)される。
【0031】
PDL処理ユニット202は、ネットワーク213に接続されたパーソナルコンピュータ215より入力されたPDL画像データを、ビットマップ画像へラスタライズするユニットである。ネットワーク213を介して入力されたPDL画像データがネットワーク制御部214を介してPDL処理ユニット202に入力されると、PDL処理ユニット202は、入力されたPDL画像データに基づいたラスタライズを行ない、ビットマップ画像データを出力(送信)する。以上のように、読取ユニット201、PDL処理ユニット202より出力(送信)された画像データは、画像データ制御部203に入力(受信)される。
【0032】
読取ユニット201、PDL処理ユニット202より画像データ制御部203が受信した画像データは、画像データ処理プロセッサ部204、または、メモリ制御部206に出力される。
【0033】
まず、画像処理プロセッサ部204に出力される場合の動作について説明する。
【0034】
画像処理プロセッサ部204に入力された画像データは、ワーキングメモリ216を用いながら画像処理プロセッサ部204にて処理された後、再度画像データ制御部203に出力され、メモリ制御部206を介してメモリモジュール207に記憶される。
【0035】
画像処理プロセッサ部204による1画面分の画像データの処理が終了し、該1画面分の処理済みデータがメモリモジュール207に記憶された後、メモリ制御部206は、メモリモジュール207に対する画像データの読み出しを行ない、該読み出した画像データを画像データ制御部203を介して作像ユニット205に出力し、プリント出力を得る。あるいは、メモリモジュール207より読み出された画像データを画像データ制御部203を介してネットワーク制御部214に出力し、さらにネットワーク213を介してパーソナルコンピュータ215に出力するように動作する。
【0036】
次に、読取ユニット201、PDL処理ユニット202より画像データ制御部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に記憶された後、該処理済画像データの読み出しを行ない、作像ユニット205、あるいは、ネットワーク制御部214に出力する例を示した。しかしながら本実施形態はこの例に限らず、処理済み画像データのメモリモジュール207に対する記憶が1画面分終了する前に、メモリモジュール207から処理済みの画像データの読み出しを開始するように制御してもよい。
【0039】
また、メモリモジュール207に画像データを記憶させないように制御することも可能である。以下、この場合の動作例について説明する。
【0040】
読取ユニット201、PDL処理ユニット202より画像データ制御部203が受信した画像データは、画像処理プロセッサ部204に出力される。画像処理プロセッサ部204では、入力された画像データに対して所定の処理を行ない、画像データ制御部203に出力する。画像処理プロセッサ部204より画像データ制御部203に入力された画像データはその後、作像ユニット205、ネットワーク制御部214に出力される。
【0041】
メモリ・モジュール207に処理済みの画像データ1画面分を記憶する場合の操作例としては、1枚の原稿について複数枚を複写する場合がある。この場合、読取ユニット201を1回だけ動作させ、読取ユニット201により読み取った画像データをメモリ・モジュール207に記憶し、記憶された画像データを複数回読み出す。
【0042】
また、メモリ・モジュール207に画像データを記憶させない操作例としては、1枚の原稿を1枚だけ複写する場合がある。この場合、読み取り画像データに対する処理済みデータを直接作像ユニット205に出力すればよいので、メモリ・モジュール207へのアクセスを行う必要はない。
【0043】
尚、本ディジタル複合装置の全体の動作は、操作パネル212より入力された、処理命令に基づいてシステムコントローラ209により制御される。操作パネル212からは、処理の種類(複写、送信、画像読込、プリント等)および処理の枚数等を入力することができる。
【0044】
●画像処理プロセッサ構成
図3は、図2に示した画像処理プロセッサ204の詳細構成を示すブロック図である。同図によれば画像処理プロセッサ204は、FIFOメモリ301,307と、演算処理ユニット300から構成される。さらに演算処理ユニット300は、入力レジスタ302、出力レジスタ304、SIMD型のデータ演算処理部303からなるSIMDプロセッサ308と、制御プロセッサ部305、および外部メモリインタフェース306を有している。
【0045】
ここでSIMDとは、複数のデータに対し、単一の命令を並列に実行させることを示し、本実施形態においては、データ演算処理部303が128個のPEにより構成されている。
【0046】
FIFOメモリ301は、読取ユニット201、または、PDL処理ユニット202より入力される画像データ1ライン分(7168画素)の容量を有するファーストイン・ファーストアウトのメモリであり、書込みと読み出しが独立に制御される。画像データ制御部203のデータバスAより入力された画像データは、FIFOメモリ301に入力され、データ演算処理部303が有するPEの数と等しいレジスタ数で構成された入力レジスタ302に、128個分の画像データとして56分割して入力される。
【0047】
入力レジスタ302に入力された画像データは、データ演算処理部303および外部メモリインタフェース306に出力される。データ演算処理部303に入力された画像データは、そこで所定の処理が施された後、出力レジスタ304、外部メモリインタフェース306に出力される。尚、外部メモリインタフェース306には、データ演算処理部303で処理された中間データを出力することも可能である。
【0048】
出力レジスタ304は、入力レジスタ302と同様に、データ演算処理部303が有するPE数と等しいレジスタ数で構成されている。出力レジスタ304の出力画像データは、画像データ1ライン分の容量を有するFIFOメモリ307に入力される。FIFOメモリ307は、書込みと読み出しが独立に制御されるファーストイン・ファーストアウトのメモリである。FIFOメモリ307より出力される画像データ信号は、データバスBを介して画像データ制御部203に出力される。
【0049】
さらに、SIMDプロセッサ308及び外部メモリインターフェイス306は、図2に示す制御用データバス208に接続された制御プロセッサ部305と接続されている。制御プロセッサ部305は、データ演算処理部303のPEに対する命令の供給、各PEのステータスの判断、各PEに接続されたメモリ、レジスタへのデータの入出力等の制御及び外部メモリインターフェイス部306を制御し、SIMDプロセッサ308の内部メモリやレジスタとワーキングメモリ216間のデータ制御を行なう。尚、制御プロセッサ305とSIMDプロセッサ308は、互いに異なる処理を独立に実行することが可能である。
【0050】
●演算処理ユニット構成
図4は、上記図3に示したSIMD型プロセッサ308を含んだ演算処理ユニット300の概略構成を示すブロック図である。
【0051】
図4によれば制御プロセッサ部305は、制御プロセッサ401および、制御プロセッサ及びSIMD型プロセッサの動作を制御するプログラムが格納されたプログラムメモリ402、データメモリ403より構成される。
【0052】
404はSIMD型プロセッサ308を構成するひとつのPEを示し、上述したように、本実施形態におけるSIMDプロセッサ308は128個のPE(PE0〜PE127)により構成されている。
【0053】
図4に示すように、それぞれのPEは、8ビットの演算ユニット(ALU)405と、8ビットのレジスタ16本から構成される汎用レジスタ406、ALU405の演算動作を実施するか否かを制御するマスクレジスタ407、演算途中のデータを格納するPEレジスタ408、出力レジスタ409、入力レジスタ408、2Kバイトの容量を有するメモリ411、から構成される。ALU405、PEレジスタ408は、隣接するPE間における同一構成要素との接続がなされており、データの入出力が可能な構成となっている。また、出力レジスタ409、入力レジスタ410も隣接するPE間の同一構成要素との接続が行なわれており、128段のシフトレジスタとして動作する。尚、図4において、図3に示す入力レジスタ302、出力レジスタ304に相当するブロックには同一符号を付してある。
【0054】
また、各PEにおけるメモリ411は、外部メモリインタフェース306及びデータバスCを介して、ワーキングメモリ216に接続される。
【0055】
尚、同一PEを構成するALU405、汎用レジスタ406、マスクレジスタ407、PEレジスタ408、出力レジスタ409、入力レジスタ410、メモリ413は、任意のブロック間におけるデータの入出力が可能な構成となっており、例えば、メモリ411からPEレジスタ408へのデータ入出力、PEレジスタ408から外部メモリインタフェース306へのデータ入出力、等を可能とする。
【0056】
各PEに対する命令は、制御プロセッサ401により命令供給バス413を介して同一内容で供給され、全てのPEが同一の命令に従った動作を行なうように制御されるが、各PEに与える処理対象のデータを異ならせることにより、各PEが異なる処理対象データに対する演算処理を並列に行なうように制御される。例えば、画像データ1ライン中の128画素の内容を各画素ごとにPEレジスタに配置し、同一の命令コードによって各PEレジスタに対する演算処理を行わせれば、1画素ずつ逐次処理するよりも短時間で、128画素分の処理結果が得られる。
【0057】
各PEのALU405における演算結果、および、PEレジスタ408の内容は、隣接するPE間で入出力可能な構成となっていることにより、隣接PEのPEレジスタ408、および、ALU405の演算結果を参照した演算処理を各PEで行なうことも可能である。さらに、各PEのメモリ411および、入力レジスタ410、出力レジスタ409、PEレジスタ408、マスクレジスタ407、汎用レジスタ406は、メモリ/レジスタアクセスバス414を介して制御プロセッサ401に接続され、メモリおよび各レジスタデータの入出力が、制御プロセッサ401により制御される。
【0058】
また、制御プロセッサ401は、制御用データバス208を介して、図2中のシステムコントローラ209との制御データの入出力が可能な構成となっている。さらに、制御プロセッサ401の動作を制御するプログラムメモリ402、および、データメモリ403は、制御用データバス208を介してシステムコントローラ209よりアクセス可能な構成となっており、システムコントローラ209により、画像処理ユニット300で行なわれる処理内容に応じて、制御プロセッサ401の動作を制御するプログラムメモリ402の書き換えが可能である。
【0059】
●乱数発生の原理(従来装置)
以下、本実施形態における擬似乱数発生の原理について、理解を容易とするために図5に示す従来のハードウェア構成を例として説明する。
【0060】
乱数発生法としては例えば、文献「現代信号理論」(池野、小山著、昭和61年発行、電子情報通信学会)に示されているように、最大長周期系列(M系列)を発生する線形フィードバックシフトレジスタ(LFSR)を用いる方法が知られている。
【0061】
LFSR方式による従来の乱数発生装置は図5に示すように、1ビットn段のDフリップフロップ(以下、単にF/Fと記載)501、502、・・・、525と、特定のF/Fからの出力信号を演算する排他的論和演算器526、527、528から成る。図5に示す例においては1ビット25段のシフトレジスタを構成しており、22段目のF/F522と、23段目のF/F523と、24段目のF/F524と、25段目のF/F525からの出力値を、夫々排他的論和演算器526、527、528を用いて演算し、その結果を初段のF/F501入力する。したがって、全てのF/Fにクロック534を与えてデータを一段ずつシフトすれば、クロックが入る度に1個の乱数が発生され、その結果、225-1個を一周期とするM系列の1ビットの擬似乱数列が、F/F525の出力529として得られる。尚、4ビットの擬似乱数が必要な場合は例えば、各F/Fの出力530、531、532、533を出力すれば良い。このLFSR方式における各F/Fの出力は、その状態が全て0である場合を除く225-1通りの初期状態から、擬似乱数を発生させることができる。
【0062】
ところで、A4サイズの画像を600DPIで処理する場合、長手方向が7168画素、短手方向が4960画素であるとすれば、全画素数は約1.06×225であるため、図5に示すLFSR方式によれば、A4サイズ600DPIの画像信号の総数に略等しい個数の乱数を生成することができる。
【0063】
●本実施形態の擬似乱数生成処理
以下、本実施形態における擬似乱数生成処理について説明する。本実施形態においては、上述したように従来は図5に示すハードウェアによって実現していた擬似乱数発生処理を、SIMDプロセッサ308を用いたソフトウェア処理によって実現することを特徴とする。
【0064】
図6A及び図6Bは、上述したLFSR方式による擬似乱数を、本実施形態におけるSIMDプロセッサ308を用いてソフトウェアで生成する処理を示すフローチャートである。
【0065】
図6Aは乱数レジスタの初期化ルーチンを示し、すなわち、各PEが担当する2KBのメモリ411の内4バイト分を乱数レジスタPとして設定し、その0ビット目P(0)から24ビット目P(24)までの25ビットのデータを初期設定する。
【0066】
本実施形態におけるSIMDプロセッサ308は、128個の各PEが同時に擬似乱数を発生するため、図5で説明したF/Fの初期値を全て同じ値にすると、全ての乱数が同じ値として発生されてしまい、実質的な乱数は得られない。そこで本実施形態においては、各PEが処理する乱数レジスタの初期値を互いに異なる値とすることを特徴とする。そこで、128個の互いに異なる初期化データを制御プロッセッサ305が実行するプログラムに予め保持しておき、該制御プロッセッサ305からSIMDプロッセッサ308の各乱数レジスタPに順次初期値を転送し、初期化を行う。
【0067】
具体的には図6Aにおいて、まずステップS601でPE0のレジスタに初期設定し、ステップS602でPE127のレジスタへの初期設定が終了するまで、ステップS601の初期設定処理を128回繰返す。
【0068】
ここで、各PEが担当する乱数レジスタPに設定される初期値について説明する。図5で説明したLFSR方式の擬似乱数発生器においては、発生する擬似乱数の1周期は225-1(33554431)であり、A4サイズを600DPIで分解した画素数に略等しい。本実施形態においてこのA4サイズ全面を128個のPEで分担して画像処理する場合、各PEが発生する乱数がA4サイズの1面で重複しないためには、上記1周期を略128等分した位相に従うように初期値を設定すればよい。すなわち、PE0の初期値を0でない任意の値Sとし、1周期の1/128(33554431/128)をDとすれば、PE0に隣接するPE1の初期値は、図5において初期値SからD回クロックが入力された時の25ビットのレジスタの値[S+D]とする。各PEについての初期値を表1に示す。
【0069】
【表1】

Figure 0004125025
同表に示されるように、PE1に隣接するPE2の初期値は[S+2D]となり、以降のPEにおける初期値は順次Dづつ増加しており、すなわち、隣接するPE間において設定される初期値はD個のクロック入力に相当する位相差を有していることが分かる。
【0070】
なお、これらの初期値は、以下に説明する乱数発生用のルーチンを予め所定回数実行させることによって得られる。すなわち各PEに設定される初期値としては、発生する擬似乱数の一周期内における、それぞれ異なる値が設定される。
【0071】
また、該擬似乱数の1画面内での重複を避けるために、発生する擬似乱数の周期を全PE数に対して十分に長い値、例えばPE数の所定倍以上の値に設定すべきであることは言うまでもない。
【0072】
次に、本実施形態における乱数発生ルーチンを図6Bを用いて説明する。
【0073】
まず、各汎用レジスタ406の内4バイト分をレジスタBSとして設定し、25ビット分の乱数レジスタPの値(P(0)〜P(24))をレジスタBS(BS(0)〜BS(24))に書き込む(S603)。そして、レジスタBSの各ビットを右に1ビットずつシフトする(S604)ことによって、レジスタBSの25ビットにより表される値を2倍にする。この操作は、図5に示す構成においてクロックが1個入力されることによるビットシフト動作に相当する。
【0074】
そして、シフトされたレジスタBS中の24,23ビット目であるBS(24),BS(23)の値について、その排他的論理和(図6Bにおいては「#」で表記)の結果をPEレジスタ408内のレジスタPERに入れる。更に、22ビット目のレジスタBS(22)とレジスタPERとの排他的論理和の結果で該レジスタPERを書き換え、更に、21ビット目のレジスタBS(21)とレジスタPERとの排他的論理和の結果を、0ビット目のレジスタBS(0)に格納する(S605)。
【0075】
その後、レジスタBS(0)〜BS(24)の25ビットデータを乱数レジスタP(0)〜P(24)に格納して(S606)、乱数発生処理を終了する。図6Bの処理を行った結果、乱数レジスタP(24)の値が1ビットの乱数として得られる。
【0076】
本実施形態においては、この乱数を各PEが担当する夫々の画素データに適用する度に、図6Bの処理を実行する。尚、本実施形態における128個のPEは、上述したルーチンを同時に(並列に)実行することは言うまでもない。
【0077】
なお、図6Aに示した乱数レジスタPの初期化は、本装置への電源投入時やシステム立ち上げ時、またはスタンバイ中に実行されることが望ましい。本実施形態においては、SIMDプロッセッサのレジスタ値が保持されている間は、発生する乱数の位相差は保証されるため、乱数レジスタPの初期化動作を予め行っておくことにより、乱数レジスタPの初期化に要する時間を考慮する必要がなくなる。例えば、1ページの画像を処理する度に初期設定するよりも、処理時間が短縮される。
【0078】
●乱数ディザによる2値化処理
以下、上述したように各PEにおいて発生した乱数を用いた画像処理について説明する。図7は、本実施形態における乱数ディザによる画像信号の2値化処理を示すフローチャートである。
【0079】
図2に示す読取ユニット201によりCCDにて読み取られた画像信号は、8ビットの画像信号として、画像データ制御部203を介して画像処理プロセッサ部204中のFIFOメモリ301に入力され、入力レジスタ302、外部メモリインタフェース306を介して、ワーキングメモリ216に記憶される。
【0080】
図7に示す2値化処理においては、上記のように画像信号が記憶されたワーキングメモリ216から、各PEの汎用レジスタ406内の8ビットレジスタBに8ビットの画像信号を転送する(S701)。SIMDプロセッサ308では128個のPEが同時に動作するため、このステップS701においては、ワーキングメモリ216に格納された連続する128個の画像信号が、SIMDプロセッサ308の各PEが担当する汎用レジスタBに同時に転送されていることになる。該128個の画像信号は、CCDで読み取られ前処理された1ラスタ分(7168個)のデータ中の連続した128画素データである。即ち、本実施形態では1ラスタを56(=7168/128)に分割することによって、1ラスタの画像信号を56回に分けて入力し、各入力ごとに128画素を同時処理する。
【0081】
次に、図6Bで説明した乱数発生ルーチンを実行して乱数を発生させた後(S702)、乱数レジスタPの上位8ビット分であるP(17)〜P(24)の2値データを、8ビットの乱数としてPEレジスタ408内のレジスタPERに格納する(S703)。
【0082】
そして、汎用レジスタ406内の2値化レジスタCに2値化結果0を初期値として格納し(S704)、次にステップS702で得られた乱数を閾値として、レジスタBに格納された画像信号を2値化する。すなわち、レジスタBの値がレジスタPERよりも大きければ(S705)2値化レジスタCを1に書き換えた後(S706)、2値レジスタCの値をワーキングメモリ216に出力する(S707)。このとき、画像入力時と同様に128画素分の2値化結果が同時に得られ、また、ワーキングメモリ216への画像転送は128ビット分が同時に行われている。
【0083】
以上の処理により1ラスタの1/56分が終了するため、上記ステップS701〜S707の処理回数を係数し、1ラスタ分が終了するまで、すなわち56回繰返す(S708)。A4サイズの画像の場合、上記処理を4960ラスタ分繰り返すことによって、1ページ分の2値化が終了する(S709)。
【0084】
●PE毎の処理画素位置、及び乱数の位相差
図8は、本実施形態においてA4サイズの画像信号を処理する場合に、各PEが担当する画像信号の位置(画素位置)を示す図である。同図によれば、PE0は1ラスタ目の0番目、128番目、256番目......、PE1は1ラスタ目の1番目、129番目、257番目......の画像信号を担当している。各PEが生成する乱数はシフトされて連続するが、この乱数が適用される画素位置は、同図によれば離散的となっていることが分かる。
【0085】
ここで図9に、各PEが乱数レジスタPの表1に示した初期化に従って発生する乱数について、そのA4全面に対する位相の分布を示す。
【0086】
図9から明らかなように本実施形態によれば、128個の各PEが同じ25段のLFSRを用いたM系列の擬似乱数を発生しているにもかかわらず、隣接するPE間では少なくとも1周期の1/128(図中Dに相当)の位相差を有し、又ライン方向、すなわち隣接するライン間においても56の位相差を保っていることが分かる。従って、本実施形態において発生する擬似乱数は、乱数としての条件を十分に満足していることが分かる。
【0087】
以上説明したように本実施形態によれば、単一プログラムに従って並列に演算処理を実行する複数のPEで構成されるSIMD型プロセッサにおいて、各PEから発生される乱数が、隣り合う画像信号に対して異なる位相となるため、2次元の画像データに対して通常の乱数として用いることができる。
【0088】
また、発生した擬似乱数を用いた画像処理を、効率よく行うことができる。
【0089】
<変形例>
上述した実施形態は本発明の一形態に過ぎず、本発明は以下のような変形も可能である。
【0090】
・画像信号の処理順
本発明においては、もちろん画像信号の処理順を変えることにも対応可能であり、たとえば図10に示すように、まず1ラスタの先頭の128画素×4960ライン分を処理し、次いで128〜255画素×4960ライン...の順に処理を行うこともできる。図10においても、上述した図9の場合と同様に、隣接するPE間で発生する乱数は夫々少なくとも1周期の1/128(図中Dに相当)分の位相差を有しており、やはり乱数として良好に用いることができる。
【0091】
・適用可能な乱数処理
本発明の乱数発生方法によって得られた乱数は、上述した実施形態で示した乱数ディザに限らず、例えば1ビットの乱数出力を誤差拡散法を実施する際の誤差の分配率の切り替えに用いたり、多ビットの乱数として画像信号に加算する等、一般的な乱数処理の全てに適用可能である。
【0092】
・複数箇所での乱数使用
上述した実施形態では、乱数ディザ法を1ページ連続して行う例を示したが、例えば1ラスタ毎に異なる画像処理を連続して施し、その内の複数箇所で乱数を用いる場合には、その都度乱数発生ルーチンを実行するのでなく、乱数レジスタの適用位置を変えるようにすれば良い。例えば、第1の処理では乱数レジスタP(24)による1ビット乱数、第2の処理では乱数レジスタP(0)〜P(3)による4ビット乱数として用いる等、使用するビット位置を変えることによって、乱数発生ルーチンを複数回実行することによる処理速度の低下を防止することができる。
【0093】
同様に、例えば1画素をRGBに色分解し、連続して1画素のRGBデータを処理する際にも、乱数レジスタP(24)はRデータ用に、P(18)はGデータ用に、P(12)はBデータ用に使用すれば、処理の高速化が図れる。
【0094】
・設定初期値
上述した実施形態では、隣接するPE間における乱数レジスタの初期値を、1周期の1/128(D)間隔に設定する例を示したが、初期値の間隔はこの値に限らず、十分に離れた値であれば実用上問題ないし、又、常に等しい間隔を保つ必要もない。
【0095】
・LFSR
また、上述した実施形態では25段のLFSRを例として示したが、他の周期性を有する擬似乱数発生方式でも適用可能であり、同様の効果が得られることは言うまでもない。
【0096】
<他の実施形態>
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用しても良い。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUまたはMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成されることは言うまでもない。
【0097】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0098】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることが出来る。
【0099】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0100】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0101】
【発明の効果】
以上説明したように本発明によれば、SIMD型プロセッサによる高速な擬似乱数処理が可能となる。
【図面の簡単な説明】
【図1】本発明に係る一実施形態における画像処理装置の基本機能構成を示すブロック図である。
【図2】本実施形態における画像処理装置のハードウェア構成を示すブロック図である。
【図3】画像処理プロセッサの詳細構成を示すブロック図である。
【図4】 SIMD型プロセッサを含んだ演算処理ユニット300の概略構成を示すブロック図である。
【図5】 LFSR方式による従来の乱数発生装置のハードウェア構成を示す図である。
【図6A】本実施形態における擬似乱数発生処理を示すフローチャートである。
【図6B】本実施形態における擬似乱数発生処理を示すフローチャートである。
【図7】乱数ディザによる2値化処理を示すフローチャートである。
【図8】本実施形態において各PEが担当する画素位置を示す図である。
【図9】本実施形態において各PEが発生する乱数の位相分布を示す図である。
【図10】画像信号の他の処理順において各PEが発生する乱数の位相分布を示す図である。
【符号の説明】
204 画像処理プロセッサ部
300 演算処理ユニット
301,307 FIFOメモリ
302 入力レジスタ
303 データ演算処理部
304 出力レジスタ
305 制御プロセッサ部
306 外部メモリインタフェース[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus and method for generating pseudorandom numbers.
[0002]
[Prior art]
At present, there is known an image processing apparatus called a so-called MFP (Multi Function Printer) configured as a complex machine of image processing apparatuses having different functions such as a copier, a facsimile, a printer, and a scanner. In such an MFP, a technique for processing an image at high speed and in a programmable manner by using a SIMD (Single Instruction Stream Multiple Data Stream) type processor in the image processing unit is disclosed in, for example, Japanese Patent Laid-Open No. 8-315126. It is described in.
[0003]
In such an MFP, image processing using pseudo-random numbers is performed. For example, when a halftone is expressed in a pseudo manner, such as pseudo halftone processing, it has a frequency component that is annoying to human eyes, and has a more irregular and high frequency component in order to reduce regular texture. A process for disturbing the annoying texture using a pseudo random number is known. Such processing using pseudo-random numbers has been realized by simple hardware such as a random number generator shown in FIG.
[0004]
[Problems to be solved by the invention]
However, in the conventional MFP, when a large number of pixels are processed in parallel by software using a SIMD type processor, the following method can be considered as a method of generating the pseudo random number.
[0005]
a) A random number generator as shown in FIG. 5 is prepared in parallel as external hardware, or a pseudo-random number is generated by another CPU and input in a raster form as with an image signal.
[0006]
b) Generate pseudo-random numbers independently at each PE (processor element) that constitutes the SIMD type processor.
[0007]
In a normal SIMD type processor, when data is input from the outside, transfer by shift registers for the number of PEs is involved. Therefore, the above method a) requires a lot of transfer time for input to the SIMD processor.
[0008]
In the method b), since all PEs in the SIMD type processor are operated by the same program, different random numbers cannot be generated for each PE. Therefore, in this method, when the adjacent processor performs processing on the adjacent image signal, the same random number is generated, so that normal random number processing cannot be performed.
[0009]
The present invention has been made to solve the above-described problems, and an object thereof is to provide an image processing apparatus and method capable of high-speed pseudorandom processing by a SIMD type processor.
[0010]
[Means for Solving the Problems]
As a means for achieving the above object, the present invention comprises the following arrangement.
[0011]
  The image processing apparatus divides and supplies image data to each of a plurality of element processors, and causes the plurality of element processors to perform the same type of operation on the divided and supplied image data in parallel. A processing device comprising:
Each of the plurality of element processors has an arithmetic unit for performing a pseudo random number sequence generation process for generating a pseudo random number sequence having periodicity and a register for holding an initial value for the pseudo random number sequence generation process in a common procedure. And
The plurality of registers included in the plurality of element processors include setting means for setting bit sequences at different positions in one cycle of the pseudo random number sequence generated by the arithmetic unit as initial values of the pseudo random number sequence generation processing. And
The setting means, when each of the plurality of element processors processes the image data using a pseudo-random number sequence generated by the arithmetic unit included in each element processor, the plurality of element processors include the plurality of element processors. Each of the calculation units sets the initial value so as to generate a different pseudo-random number sequence.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment according to the present invention will be described in detail with reference to the drawings.
[0016]
<First Embodiment>
● Basic functional configuration of image processing equipment
First, the basic functional configuration of the image processing apparatus according to the present embodiment will be described with reference to the block diagram of FIG. According to the figure, the image processing apparatus controls an image data control unit 100 that performs main control, an image data input unit 101 that inputs image data, and an image memory that stores images, and writes / reads image data. The image memory control unit 102 for performing image processing, the image processing unit 103 for performing image processing such as processing and editing on the image data, and the image writing unit 104 for writing the image data on transfer paper or the like are included.
[0017]
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. Hereinafter, each unit will be described.
[0018]
First, processing by the image data control unit 100 will be described below.
[0019]
Control data bus interface processing, overall system control, local bus control processing (ROM, RAM, access control processing for starting system controller), interface processing with image data input unit 101, interface with image memory control unit 102 Processing, interface processing with the image processing unit 103, interface processing with the image writing unit 104, network control processing, and the like.
[0020]
In the image data input unit 101, interface control processing with a system controller, reading processing of original reflected light by an optical system, conversion processing into an electric signal using a CCD (Charge Coupled Device), A / Digitization processing by D converter, shading correction processing (processing to correct illuminance distribution unevenness of light source), processing to correct density characteristics of reading system, rasterization processing of PDL image data input via network, etc. Done.
[0021]
In the image memory control unit 102, interface control processing with the system controller, write / read processing to the memory unit, access control processing to the memory module (arbitration processing of memory access requests from multiple units), etc. Is done.
[0022]
In the image processing unit 103, 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 arrangement phase control processing (jaggy correction), image area separation processing (color determination, attribute determination, adaptive processing), density conversion processing, and the like are performed.
[0023]
In the image writing unit 104, pulse control processing of an image signal, format conversion processing between parallel data and serial data, and the like are performed.
[0024]
● Hardware configuration of digital MFP
The above-described image processing apparatus according to the present embodiment constitutes a digital multi-function peripheral. Hereinafter, an example of the hardware configuration of the digital multi-function peripheral will be described with reference to the block diagram of FIG. According to the figure, the digital multi-function peripheral includes a reading unit 201, a PDL processing unit 202, an image data control unit 203, an image processing processor 204, an image forming unit 205, a memory control unit 206, a memory module 207, a network control unit 214, A working memory 216; Furthermore, a system controller 209, a ROM 210, a RAM 211, and an operation panel 212 are provided via a control data bus 208. Further, it is connected to a personal computer 215 via a network 213.
[0025]
Among the configurations shown in FIG. 2, the image processor 204 processes the image data, which is a digital signal created based on the image, so that it can be output as a visible image, and a programmable image capable of realizing a plurality of image forming operations. It is a processing means. The image data control unit 203 is an image data transmission management unit that collectively manages image data transmission between a data bus that transmits image data and a processing unit that is used for image processing by the image processor 204. 201, PDL processing unit 202, image processing processor 204, memory control unit 206, image forming unit 205, and network control unit 214. Note that the present embodiment is characterized by the processing in the image processor 204, and the detailed configuration of the image processor 204 will be described in detail with reference to FIG. 3 and subsequent drawings.
[0026]
The digital multi-function peripheral also includes a memory module 207 connected to the image memory control unit 206 as image data storage management means.
[0027]
Here, the relationship between the components shown in FIG. 2 and the units 100 to 104 shown in FIG. 1 will be described. That is, the function of the image data input unit 101 shown in FIG. 1 is realized by the reading unit 201 and the PDL processing unit 202. Similarly, the function of the image data control unit 100 is realized by 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. Similarly, the function of the image processing unit 103 is realized by the image processor 204 and the working memory 216.
[0028]
Similarly, the image writing unit 104 is realized by the image forming unit 205, and the image memory control unit 102 is realized by the memory control unit 206 and the memory module 207.
[0029]
2 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. The reading unit 201, PDL processing unit 202, image data control unit 203, image processing processor unit 204, image forming unit 205, memory control unit 206, network control unit 214, and operation panel 212 are connected via a control data bus 208. Thus, each operation is controlled by the system controller 209.
[0030]
Hereinafter, the operation of each component shown in FIG. 2 will be described in detail. A reading unit 201 that optically reads a document includes a lamp, a mirror, a lens, and a light receiving element, and condenses reflected light of lamp irradiation on the document on the light receiving element by the mirror and the lens. Image data converted into an electrical signal in a light receiving element such as a CCD is converted into a digital signal and then output (transmitted) from the reading unit 201.
[0031]
The PDL processing unit 202 is a unit that rasterizes PDL image data input from the personal computer 215 connected to the network 213 into a bitmap image. When 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 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]
Image data received by the image data control unit 203 from the reading unit 201 and the PDL processing unit 202 is output to the image data processing processor unit 204 or the memory control unit 206.
[0033]
First, an operation when output to the image processing processor unit 204 will be described.
[0034]
The image data input to the image processor 204 is processed by the image processor 204 using the working memory 216 and then output to the image data controller 203 again, and the memory module via the memory controller 206 207 is stored.
[0035]
After the processing of the image data for one screen by the image processing processor unit 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 to the memory module 207. The read image data is output to the image forming unit 205 via the image data control unit 203, and a print output is obtained. Alternatively, the image data read from the memory module 207 is output to the network control unit 214 via the image data control unit 203, and further output to the personal computer 215 via the network 213.
[0036]
Next, an operation when image data received by the image data control unit 203 from the reading unit 201 and the PDL processing unit 202 is output to the memory control unit 206 will be described.
[0037]
The 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 the stored image data from the memory module 207 and outputs it to the image processing processor unit 204 via the image data control unit 203. The image processor 204 processes the input image data and stores the processed image data in the memory module 207 via the image data controller 203 and the memory controller 206 again. Then, 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 stores the image data for the memory module 207. Reading is performed, and the read image data is output to the image forming unit 205 via the image data control unit 203 to obtain a print output. Alternatively, the image data read from the memory module 207 is output to the network control unit 214 via the image data control unit 203, and further output to the personal computer 215 via the network 213.
[0038]
In the above description, the image processing processor 204 performs processing on the image data output from the reading unit 201 and the PDL processing unit 202, and after the processed image data for one screen is stored in the memory module 207, the processing is performed. An example is shown in which completed image data is read and output to the image forming unit 205 or the network control unit 214. However, the present embodiment is not limited to this example, and it may be controlled to start reading the processed image data from the memory module 207 before the storage of the processed image data in the memory module 207 is completed for one screen. Good.
[0039]
It is also possible to control so that image data is not stored in the memory module 207. Hereinafter, an operation example in this case will be described.
[0040]
Image data received by the image data control unit 203 from the reading unit 201 and the PDL processing unit 202 is output to the image processing processor unit 204. The image processing processor unit 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 controller 203 is then output to the image forming unit 205 and the network controller 214.
[0041]
As an example of operation when storing one screen of processed image data in the memory module 207, there is a case where a plurality of sheets are copied for one original. In this case, the reading unit 201 is operated only once, the image data read by the reading unit 201 is stored in the memory module 207, and the stored image data is read out a plurality of times.
[0042]
Further, as an operation example in which image data is not stored in the memory module 207, there is a case where only one original is copied. In this case, it is only necessary to output the processed data for the read image data directly to the image forming unit 205, so that it is not necessary to access the memory module 207.
[0043]
The overall operation of the digital composite apparatus is controlled by the system controller 209 based on processing instructions 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.
[0044]
● Image processor configuration
FIG. 3 is a block diagram showing a detailed configuration of the image processor 204 shown in FIG. According to the figure, the image processor 204 includes FIFO memories 301 and 307 and an arithmetic processing unit 300. The arithmetic processing unit 300 further includes a SIMD processor 308 including an input register 302, an output register 304, a SIMD type data arithmetic processing unit 303, a control processor unit 305, and an external memory interface 306.
[0045]
Here, SIMD indicates that a single instruction is executed in parallel for a plurality of data. In this embodiment, the data operation processing unit 303 is configured by 128 PEs.
[0046]
The FIFO memory 301 is a first-in / first-out memory having a capacity of one line (7168 pixels) of image data input from the reading unit 201 or the PDL processing unit 202, and writing and reading are controlled independently. The The image data input from the data bus A of the image data control unit 203 is input to the FIFO memory 301, and is input to the input register 302 configured by the number of registers equal to the number of PEs included in the data arithmetic processing unit 303. The image data is divided into 56 and input.
[0047]
The image data input 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 arithmetic processing unit 303 is subjected to predetermined processing there and then output to the output register 304 and the external memory interface 306. Note that intermediate data processed by the data arithmetic processing unit 303 can be output to the external memory interface 306.
[0048]
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 line of image data. The FIFO memory 307 is a first-in first-out memory in which writing and reading are controlled independently. The image data signal output from the FIFO memory 307 is output to the image data control unit 203 via the data bus B.
[0049]
Further, the SIMD processor 308 and the external memory interface 306 are connected to the control processor unit 305 connected to the control data bus 208 shown in FIG. The control processor unit 305 supplies instructions to the PE of the data arithmetic processing unit 303, determines the status of each PE, controls the input / output of data to and from the memory connected to each PE, and the external memory interface unit 306. To control data between the internal memory or register of the SIMD processor 308 and the working memory 216. The control processor 305 and the SIMD processor 308 can execute different processes independently.
[0050]
Arithmetic processing unit configuration
FIG. 4 is a block diagram showing a schematic configuration of the arithmetic processing unit 300 including the SIMD type processor 308 shown in FIG.
[0051]
According to FIG. 4, the control processor unit 305 includes a control processor 401, a program memory 402 storing a program for controlling operations of the control processor and the SIMD type processor, and a data memory 403.
[0052]
Reference numeral 404 denotes one PE constituting the SIMD type processor 308. As described above, the SIMD processor 308 in this embodiment is constituted by 128 PEs (PE0 to PE127).
[0053]
As shown in FIG. 4, each PE controls whether or not to perform an arithmetic operation of an 8-bit arithmetic unit (ALU) 405 and general-purpose registers 406 and ALU 405 composed of 16 8-bit registers. It comprises a mask register 407, a PE register 408 for storing data in the middle of operation, an output register 409, an input register 408, and a memory 411 having a capacity of 2 Kbytes. The ALU 405 and the PE register 408 are connected to the same component between adjacent PEs, and are configured to allow data input / output. The output register 409 and the input register 410 are also connected to the same component between adjacent PEs, and operate as a 128-stage shift register. In FIG. 4, blocks corresponding to the input register 302 and the output register 304 shown in FIG.
[0054]
The memory 411 in each PE is connected to the working memory 216 via the external memory interface 306 and the data bus C.
[0055]
The ALU405, general-purpose register 406, mask register 407, PE register 408, output register 409, input register 410, and memory 413 that make up the same PE are configured to allow data input / output between arbitrary blocks. For example, data input / output from the memory 411 to the PE register 408, data input / output from the PE register 408 to the external memory interface 306, and the like are enabled.
[0056]
The instructions for each PE are supplied with the same content by 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 data different, each PE is controlled to perform arithmetic processing on different processing target data in parallel. For example, if the content of 128 pixels in one line of image data is placed in the PE register for each pixel and the arithmetic processing for each PE register is performed with the same instruction code, it takes less time than sequentially processing each pixel. A processing result for 128 pixels is obtained.
[0057]
The operation results in the ALU405 of each PE and the contents of the PE register 408 are configured so that input / output can be performed between adjacent PEs, so the PE register 408 of the adjacent PE and the operation result of the ALU405 were referenced. It is also possible to perform arithmetic processing at each PE. Further, 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. Data input / output is controlled by the control processor 401.
[0058]
The control processor 401 is configured to be able to input and output control data to and from the system controller 209 in FIG. 2 via the control data bus 208. Further, the program memory 402 and the data memory 403 for controlling the operation of the control processor 401 are configured to be accessible from the system controller 209 via the control data bus 208. The system controller 209 allows the image processing unit to be accessed. The program memory 402 that controls the operation of the control processor 401 can be rewritten in accordance with the processing contents performed in 300.
[0059]
● Random number generation principle (conventional device)
In the following, the principle of pseudorandom number generation in this embodiment will be described by taking the conventional hardware configuration shown in FIG. 5 as an example in order to facilitate understanding.
[0060]
As a random number generation method, for example, as shown in the document “Modern Signal Theory” (Ikeno, Koyama, published in 1986, The Institute of Electronics, Information and Communication Engineers), linear feedback that generates the maximum long-period sequence (M sequence) A method using a shift register (LFSR) is known.
[0061]
As shown in FIG. 5, the conventional random number generator using the LFSR method has a 1-bit n-stage D flip-flop (hereinafter simply referred to as F / F) 501, 502,..., 525, and a specific F / F. Are composed of exclusive OR calculators 526, 527, and 528 for calculating the output signal from. In the example shown in FIG. 5, a 1-bit 25-stage shift register is configured, and the 22nd stage F / F522, the 23rd stage F / F523, the 24th stage F / F524, and the 25th stage. The output value from the F / F 525 is calculated using exclusive OR calculators 526, 527, and 528, respectively, and the result is input to the first F / F 501. Therefore, if the clock 534 is given to all the F / Fs and the data is shifted one step at a time, one random number is generated every time the clock is turned on.twenty fiveAn M-sequence 1-bit pseudo-random number sequence with −1 as one period is obtained as an output 529 of the F / F 525. When a 4-bit pseudo random number is required, for example, outputs 530, 531, 532, and 533 of each F / F may be output. The output of each F / F in this LFSR system is 2 except when the state is all 0twenty fivePseudorandom numbers can be generated from -1 different initial states.
[0062]
By the way, when processing an A4 size image at 600 DPI, if the long direction is 7168 pixels and the short direction is 4960 pixels, the total number of pixels is about 1.06 × 2.twenty fiveTherefore, according to the LFSR method shown in FIG. 5, it is possible to generate a number of random numbers substantially equal to the total number of A4 size 600 DPI image signals.
[0063]
● Pseudo random number generation processing of this embodiment
Hereinafter, the pseudo-random number generation process in the present embodiment will be described. In the present embodiment, as described above, the pseudo-random number generation processing that has been conventionally realized by the hardware shown in FIG. 5 is realized by software processing using the SIMD processor 308.
[0064]
FIG. 6A and FIG. 6B are flowcharts showing a process of generating the pseudo-random number by the above-mentioned LFSR method by software using the SIMD processor 308 in the present embodiment.
[0065]
FIG. 6A shows the initialization routine of the random number register, that is, 4 bytes of the 2 KB memory 411 that each PE is in charge of is set as the random number register P, and the 0th bit P (0) to the 24th bit P ( Initialize the 25-bit data up to 24).
[0066]
The SIMD processor 308 in the present embodiment generates pseudorandom numbers at the same time for each of the 128 PEs. Therefore, if all the initial values of the F / F described in FIG. 5 are set to the same value, all random numbers are generated as the same value. Therefore, a substantial random number cannot be obtained. Therefore, the present embodiment is characterized in that the initial value of the random number register processed by each PE is set to a different value. Therefore, 128 different initialization data are stored in advance in a program executed by the control processor 305, and initial values are sequentially transferred from the control processor 305 to each random number register P of the SIMD processor 308 to perform initialization. .
[0067]
Specifically, in FIG. 6A, initial setting is first performed in the register PE0 in step S601, and the initial setting process in step S601 is repeated 128 times until the initial setting in the register PE127 is completed in step S602.
[0068]
Here, an initial value set in the random number register P in charge of each PE will be described. In the LFSR pseudo-random number generator described in FIG.twenty five-1 (33554431), which is substantially equal to the number of pixels obtained by dividing the A4 size by 600 DPI. In this embodiment, when image processing is performed by sharing the entire A4 size with 128 PEs, in order that the random numbers generated by each PE do not overlap on one A4 size surface, the above-mentioned one cycle is divided into approximately 128 equal parts. What is necessary is just to set an initial value so that it may follow a phase. That is, if the initial value of PE0 is an arbitrary value S that is not 0, and 1/128 (33554431/128) of one cycle is D, the initial value of PE1 adjacent to PE0 is the initial value S to D in FIG. The value of the 25-bit register [S + D] when the clock is input. Table 1 shows the initial values for each PE.
[0069]
[Table 1]
Figure 0004125025
As shown in the table, the initial value of PE2 adjacent to PE1 is [S + 2D], and the initial value in the subsequent PEs increases in order D, that is, the initial value set between adjacent PEs It can be seen that the value has a phase difference corresponding to D clock inputs.
[0070]
These initial values are obtained by executing a random number generation routine described below a predetermined number of times in advance. That is, as the initial value set for each PE, different values are set in one cycle of the generated pseudorandom number.
[0071]
In addition, in order to avoid duplication of the pseudo random number within one screen, the period of the pseudo random number to be generated should be set to a value that is sufficiently longer than the total number of PEs, for example, a value that is a predetermined multiple of the number of PEs. Needless to say.
[0072]
Next, the random number generation routine in this embodiment will be described with reference to FIG. 6B.
[0073]
First, 4 bytes of each general-purpose register 406 are set as the register BS, and the value (P (0) to P (24)) of the random number register P for 25 bits is set to the register BS (BS (0) to BS (24 )) (S603). Then, each bit of the register BS is shifted one bit to the right (S604), thereby doubling the value represented by 25 bits of the register BS. This operation corresponds to a bit shift operation by inputting one clock in the configuration shown in FIG.
[0074]
Then, the result of the exclusive OR (indicated by “#” in FIG. 6B) of the values of BS (24) and BS (23) which are the 24th and 23rd bits in the shifted register BS is the PE register. Place in register PER in 408. Furthermore, the register PER is rewritten with the result of the exclusive OR of the register BS (22) of the 22nd bit and the register PER, and further, the exclusive OR of the register BS (21) of the 21st bit and the register PER of The result is stored in the register BS (0) of the 0th bit (S605).
[0075]
Thereafter, the 25-bit data of the registers BS (0) to BS (24) is stored in the random number registers P (0) to P (24) (S606), and the random number generation process is terminated. As a result of the processing of FIG. 6B, the value of the random number register P (24) is obtained as a 1-bit random number.
[0076]
In the present embodiment, every time this random number is applied to each pixel data assigned to each PE, the process of FIG. 6B is executed. Needless to say, the 128 PEs in the present embodiment execute the above-described routines simultaneously (in parallel).
[0077]
Note that the initialization of the random number register P shown in FIG. 6A is desirably executed when the power to the apparatus is turned on, when the system is started, or during standby. In the present embodiment, while the register value of the SIMD processor is held, the phase difference of the generated random numbers is guaranteed. Therefore, by performing the initialization operation of the random number register P in advance, There is no need to consider the time required for initialization. For example, the processing time is shortened compared to the initial setting each time an image of one page is processed.
[0078]
● Binary processing with random dither
Hereinafter, image processing using random numbers generated in each PE as described above will be described. FIG. 7 is a flowchart showing binarization processing of an image signal by random number dither in the present embodiment.
[0079]
The image signal read by the CCD by the reading unit 201 shown in FIG. 2 is input as an 8-bit image signal to the FIFO memory 301 in the image processing processor unit 204 via the image data control unit 203, and is input to the input register 302. And stored in the working memory 216 via the external memory interface 306.
[0080]
In the binarization processing shown in FIG. 7, the 8-bit image signal is transferred from the working memory 216 in which the image signal is stored as described above to the 8-bit register B in the general-purpose register 406 of each PE (S701). . Since 128 PEs operate simultaneously in the SIMD processor 308, in this step S701, 128 consecutive image signals stored in the working memory 216 are simultaneously transmitted to the general-purpose register B in charge of each PE of the SIMD processor 308. It has been transferred. The 128 image signals are continuous 128-pixel data in one raster (7168) of data read by the CCD and preprocessed. In other words, in this embodiment, one raster is divided into 56 (= 7168/128), whereby one raster image signal is input in 56 times, and 128 pixels are simultaneously processed for each input.
[0081]
Next, after generating the random number by executing the random number generation routine described in FIG. 6B (S702), the binary data of P (17) to P (24), which is the upper 8 bits of the random number register P, is The 8-bit random number is stored in the register PER in the PE register 408 (S703).
[0082]
Then, the binarization result 0 is stored as an initial value in the binarization register C in the general-purpose register 406 (S704), and the image signal stored in the register B is then stored using the random number obtained in step S702 as a threshold value. Binarize. That is, if the value of the register B is larger than the register PER (S705), the binary register C is rewritten to 1 (S706), and then the value of the binary register C is output to the working memory 216 (S707). At this time, the binarization result for 128 pixels is obtained at the same time as in the image input, and the image transfer to the working memory 216 is performed for 128 bits at the same time.
[0083]
Since 1/56 minutes of one raster is completed by the above processing, the number of times of processing in steps S701 to S707 is calculated, and the processing is repeated 56 times until one raster is completed (S708). In the case of an A4 size image, binarization for one page is completed by repeating the above process for 4960 rasters (S709).
[0084]
● Process pixel position for each PE and phase difference of random numbers
FIG. 8 is a diagram showing the position (pixel position) of an image signal that each PE is in charge of when processing an A4 size image signal in the present embodiment. According to the figure, PE0 is the 0th, 128th, 256th ... of the first raster, PE1 is the first, 129th, 257th ... of the first raster image signal. Is in charge. Although the random numbers generated by each PE are shifted and continuous, it can be seen that the pixel positions to which the random numbers are applied are discrete according to the figure.
[0085]
Here, FIG. 9 shows the phase distribution of the random numbers generated by each PE in accordance with the initialization shown in Table 1 of the random number register P over the entire surface of A4.
[0086]
As is apparent from FIG. 9, according to the present embodiment, each of the 128 PEs generates an M-sequence pseudo-random number using the same 25-stage LFSR, but at least 1 between adjacent PEs. It can be seen that the phase difference is 1/128 of the period (corresponding to D in the figure), and 56 phase differences are maintained in the line direction, that is, between adjacent lines. Therefore, it can be seen that the pseudo-random number generated in the present embodiment sufficiently satisfies the condition as a random number.
[0087]
As described above, according to the present embodiment, in a SIMD type processor composed of a plurality of PEs that execute arithmetic processing in parallel according to a single program, random numbers generated from each PE are applied to adjacent image signals. Therefore, it can be used as a normal random number for two-dimensional image data.
[0088]
Further, it is possible to efficiently perform image processing using the generated pseudo random number.
[0089]
<Modification>
The above-described embodiment is merely one form of the present invention, and the present invention can be modified as follows.
[0090]
・ Image signal processing order
In the present invention, it is of course possible to change the processing order of image signals. For example, as shown in FIG. 10, first, the first 128 pixels × 4960 lines of one raster are processed, and then 128 to 255 pixels. Processing can also be performed in the order of × 4960 lines. Also in FIG. 10, as in the case of FIG. 9 described above, random numbers generated between adjacent PEs each have a phase difference corresponding to at least 1/128 (corresponding to D in the figure) of one cycle. It can be used favorably as a random number.
[0091]
・ Applicable random number processing
The random number obtained by the random number generation method of the present invention is not limited to the random dither shown in the above-described embodiment. For example, a 1-bit random number output is used for switching an error distribution rate when the error diffusion method is performed. It can be applied to all general random number processing such as adding to a video signal as a multi-bit random number.
[0092]
・ Use random numbers at multiple locations
In the above-described embodiment, an example in which random number dithering is performed continuously for one page has been shown. For example, when different image processing is performed continuously for each raster and random numbers are used in a plurality of locations, Instead of executing the random number generation routine each time, the application position of the random number register may be changed. For example, by changing the bit position to be used, such as 1-bit random number by the random number register P (24) in the first process, and 4-bit random number by the random number registers P (0) to P (3) in the second process Further, it is possible to prevent a decrease in processing speed caused by executing the random number generation routine a plurality of times.
[0093]
Similarly, for example, when separating one pixel into RGB and processing one pixel of RGB data continuously, the random number register P (24) is for R data, and P (18) is for G data. If P (12) is used for B data, the processing speed can be increased.
[0094]
・ Default setting
In the above-described embodiment, the example in which the initial value of the random number register between adjacent PEs is set to 1/128 (D) interval of one cycle has been described. However, the initial value interval is not limited to this value, and is sufficiently If the values are far from each other, there is no practical problem, and it is not always necessary to maintain an equal interval.
[0095]
・ LFSR
In the above-described embodiment, a 25-stage LFSR is shown as an example. However, it is needless to say that the present invention can be applied to other pseudo-random number generation methods having periodicity, and the same effect can be obtained.
[0096]
<Other embodiments>
Note that the present invention can be applied to a system including a plurality of devices (for example, a host computer, an interface device, a reader, and a printer), and a device (for example, a copying machine and a facsimile device) including a single device. You may apply to.
Another object of the present invention is to supply a storage medium storing software program codes for realizing the functions of the above-described embodiments to a system or apparatus, and the computer (or CPU or MPU) of the system or apparatus stores the storage medium. Needless to say, this can also be achieved by reading and executing the program code stored in.
[0097]
In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention.
[0098]
As a storage medium for supplying the program code, for example, a floppy disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used.
[0099]
Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an OS (operating system) running on the computer based on the instruction of the program code. It goes without saying that a part of the actual processing is performed and the functions of the above-described embodiments are realized by the processing.
[0100]
Further, after the program code read from the storage medium is written to a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that the CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.
[0101]
【The invention's effect】
As described above, according to the present invention, high-speed pseudorandom processing by a SIMD type processor is possible.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a basic functional configuration of an image processing apparatus according to an embodiment of the present invention.
FIG. 2 is a block diagram illustrating a hardware configuration of an image processing apparatus according to the present embodiment.
FIG. 3 is a block diagram illustrating a detailed configuration of an image processor.
FIG. 4 is a block diagram showing a schematic configuration of an arithmetic processing unit 300 including a SIMD type processor.
FIG. 5 is a diagram illustrating a hardware configuration of a conventional random number generator using the LFSR method.
FIG. 6A is a flowchart showing a pseudo-random number generation process in the present embodiment.
FIG. 6B is a flowchart showing a pseudo-random number generation process in the present embodiment.
FIG. 7 is a flowchart showing binarization processing by random dither.
FIG. 8 is a diagram illustrating a pixel position assigned to each PE in the present embodiment.
FIG. 9 is a diagram showing a phase distribution of random numbers generated by each PE in the present embodiment.
FIG. 10 is a diagram illustrating a phase distribution of random numbers generated by each PE in another processing order of an image signal.
[Explanation of symbols]
204 Image processor
300 processing unit
301,307 FIFO memory
302 Input register
303 Data processing unit
304 output register
305 Control processor
306 External memory interface

Claims (4)

複数の要素プロセッサの夫々に画像データを分割して供給し、前記複数の要素プロセッサに前記分割して供給される画像データに対して同種の演算を並して実行させる画像処理装置であって、
前記複数の要素プロセッサは夫々、共通する手順で、周期性を有する擬似乱数列を発生する擬似乱数列発生処理を行う演算部および前記擬似乱数列発生処理のための初期値を保持するレジスタを有し、
前記複数の要素プロセッサが有する複数の前記レジスタ前記演算部により発生された擬似乱数列の一周期内における異なる位置のビット列を、前記擬似乱数列発生処理の初期値として設定する設定手段を有し、
前記設定手段は、前記複数の要素プロセッサの各々が、各要素プロセッサが有する前記演算部が発生する擬似乱数列を用いて前記画像データを処理する際に、前記複数の要素プロセッサが有する複数の前記演算部の各々が、異なる擬似乱数列を発生するように前記初期値を設定することを特徴とする画像処理装置。
A plurality of supply by dividing the image data to each of the element processor, the image processing apparatus to execute the operations of the same kind and concurrent to the image data supplied by the dividing into the plurality of element processors ,
Each of the plurality of element processors has an arithmetic unit for performing a pseudo random number sequence generation process for generating a pseudo random number sequence having periodicity and a register for holding an initial value for the pseudo random number sequence generation process in a common procedure. And
The plurality of registers included in the plurality of element processors include setting means for setting bit sequences at different positions in one cycle of the pseudo random number sequence generated by the arithmetic unit as initial values of the pseudo random number sequence generation processing. And
The setting means, when each of the plurality of element processors processes the image data using a pseudo-random number sequence generated by the arithmetic unit included in each element processor, the plurality of element processors include the plurality of element processors. An image processing apparatus , wherein each of the arithmetic units sets the initial value so as to generate a different pseudorandom number sequence .
前記複数の要素プロセッサは夫々、前記擬似乱数列発生処理によって発生した乱数列を用いて、夫々供給された画像データに対して複数種類の画像処理を施すことを特徴とする請求項に記載の画像処理装置。Said plurality of element processors are each, using a random number sequence generated by the pseudo-random number sequence generation process, according to claim 1, characterized by applying a plurality of types of image processing to each image data supplied Image processing device. 前記複数の要素プロセッサ内のレジスタに対する前記初期値の設定は、前記画像処理装置の電源投入時または前記画像処理装置がスタンバイ中に行われることを特徴とする請求項またはに記載の画像処理装置。Setting of the initial value to the register in the plurality of element processors, image according to claim 1 or 2 power-on or the image processing apparatus to the image processing apparatus is characterized by being performed during the standby Processing equipment. 前記演算部は、M系列の擬似乱数列を発生させる擬似乱数列発生処理を行うことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。The image processing apparatus according to claim 1, wherein the arithmetic unit performs a pseudo-random number sequence generation process for generating an M-sequence pseudo-random number sequence.
JP2002081248A 2002-03-22 2002-03-22 Image processing device Expired - Fee Related JP4125025B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002081248A JP4125025B2 (en) 2002-03-22 2002-03-22 Image processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002081248A JP4125025B2 (en) 2002-03-22 2002-03-22 Image processing device

Publications (2)

Publication Number Publication Date
JP2003281515A JP2003281515A (en) 2003-10-03
JP4125025B2 true JP4125025B2 (en) 2008-07-23

Family

ID=29229960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002081248A Expired - Fee Related JP4125025B2 (en) 2002-03-22 2002-03-22 Image processing device

Country Status (1)

Country Link
JP (1) JP4125025B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4282520B2 (en) 2004-03-24 2009-06-24 シャープ株式会社 Signal processing method, signal output device, signal processing device, image processing device, and image forming device

Also Published As

Publication number Publication date
JP2003281515A (en) 2003-10-03

Similar Documents

Publication Publication Date Title
JP3927388B2 (en) Image processing apparatus, image processing method, and recording medium
JPH07262360A (en) Device and method for image processing
US7053895B2 (en) Image processing apparatus, image processing method, control program and recording medium
JP4027133B2 (en) Image processing device
JP4125025B2 (en) Image processing device
JP3887134B2 (en) Image processing device
EP1450214A1 (en) Data conversion system for image processing and image forming apparatus
JP2005094126A (en) Image processing apparatus, image processing method, and image processing program executable by computer
JP2003281516A (en) Image processor and its method
JP2012143991A (en) Image forming apparatus
JP5358992B2 (en) Image forming apparatus and method
JP2002042119A (en) Image processing device
JP3887135B2 (en) Image processing apparatus, image processing method, and computer-readable recording medium storing program for causing computer to execute the method
JP2005161580A (en) Image processing apparatus, image processing method and computer program
JP2003346139A (en) Image processor, image processing method, and computer- readable recording medium having program for running the method on computer recorded therein
JP2005094643A (en) Image processing apparatus
JP2001184502A (en) Device and method for processing image and computer readable recording medium with recorded program for computer to execute the same method
JPH11220613A (en) Image forming device
JP2000032258A (en) Image processing unit and image processing method
JP4516336B2 (en) Image processing apparatus, image forming apparatus, image processing method, computer program, and recording medium
JP6085942B2 (en) Information processing apparatus, image forming apparatus, and data processing method
JP2001092949A (en) Device and method for processing image and computer readable recording medium recording program for computer to execute the same method
JP2020108107A (en) Image processing device, control method, and program
JP2002152511A (en) Image processor, image processing method and computer readable medium recording program for executing that method in computer
JP2004289427A (en) Image processing apparatus and image forming apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080415

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: 20080502

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080507

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140516

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees