JP4125025B2 - Image processing device - Google Patents
Image processing device Download PDFInfo
- 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
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】
同表に示されるように、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
[0017]
Each of the above units is configured around the image
[0018]
First, processing by the image
[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
[0020]
In the image
[0021]
In the image
[0022]
In the
[0023]
In the
[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
[0025]
Among the configurations shown in FIG. 2, the
[0026]
The digital multi-function peripheral also includes a
[0027]
Here, the relationship between the components shown in FIG. 2 and the
[0028]
Similarly, the
[0029]
2 operates based on a control program stored in the
[0030]
Hereinafter, the operation of each component shown in FIG. 2 will be described in detail. A
[0031]
The
[0032]
Image data received by the image
[0033]
First, an operation when output to the image
[0034]
The image data input to the
[0035]
After the processing of the image data for one screen by the image
[0036]
Next, an operation when image data received by the image
[0037]
The image data input from the image
[0038]
In the above description, the
[0039]
It is also possible to control so that image data is not stored in the
[0040]
Image data received by the image
[0041]
As an example of operation when storing one screen of processed image data in the
[0042]
Further, as an operation example in which image data is not stored in the
[0043]
The overall operation of the digital composite apparatus is controlled by the
[0044]
● Image processor configuration
FIG. 3 is a block diagram showing a detailed configuration of the
[0045]
Here, SIMD indicates that a single instruction is executed in parallel for a plurality of data. In this embodiment, the data
[0046]
The
[0047]
The image data input to the
[0048]
Similar to the
[0049]
Further, the
[0050]
Arithmetic processing unit configuration
FIG. 4 is a block diagram showing a schematic configuration of the
[0051]
According to FIG. 4, the
[0052]
[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
[0054]
The
[0055]
The ALU405, general-
[0056]
The instructions for each PE are supplied with the same content by the
[0057]
The operation results in the ALU405 of each PE and the contents of the
[0058]
The
[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
[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
[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
[0065]
FIG. 6A shows the initialization routine of the random number register, that is, 4 bytes of the 2
[0066]
The
[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]
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-
[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
[0080]
In the binarization processing shown in FIG. 7, the 8-bit image signal is transferred from the working
[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
[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
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 .
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)
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 |
-
2002
- 2002-03-22 JP JP2002081248A patent/JP4125025B2/en not_active Expired - Fee Related
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 |