JP4118052B2 - Image processing device - Google Patents

Image processing device Download PDF

Info

Publication number
JP4118052B2
JP4118052B2 JP2002008514A JP2002008514A JP4118052B2 JP 4118052 B2 JP4118052 B2 JP 4118052B2 JP 2002008514 A JP2002008514 A JP 2002008514A JP 2002008514 A JP2002008514 A JP 2002008514A JP 4118052 B2 JP4118052 B2 JP 4118052B2
Authority
JP
Japan
Prior art keywords
processing
scaling
data
image
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002008514A
Other languages
Japanese (ja)
Other versions
JP2003208608A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2002008514A priority Critical patent/JP4118052B2/en
Publication of JP2003208608A publication Critical patent/JP2003208608A/en
Application granted granted Critical
Publication of JP4118052B2 publication Critical patent/JP4118052B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Editing Of Facsimile Originals (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Image Processing (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は画像処理装置に関し、詳細には多値画像データを2値画像に変換するハーフトーン処理装置およびハーフトーン処理方法に関し、特にプリンタ等のコントローラ側における高速化の方式に関する。
【0002】
【従来の技術】
従来、ページプリンタなどにおいて、解像度の増加と高速化の要求から、CPUの性能のみではこの要求を満たすことが難しくなってきた。特に、カラープリンタでは、各種の画像処理と、C,M,Y,K版の画像の変倍処理、デイザ処理、色変換処理など多くの処理を必要をする。
【0003】
近年、半導体技術の発展からCPUで行われた処理の一部をハードウェアで行うことが可能となってきた。そして、このハードウェアクセラレータをFPGAで実現することにより、機能を変更可能としたシステムが特開2000−90237に提案されている。また、画像の変倍処理技術は、入力機器及び出力機器間で取り扱われる画像の解像度が異なる場合に入力画像と同サイズの出力画像を得るために必要とされる技術である。この変倍処理の方法として、傍法やバイリニア補間法、3次補間法などが知られている。最近傍法は、補間したい点に最も近い画素に補間するアルゴリズムであり、バイリニア補間法は、補間したい点の周囲4点から、線形補間により補間データを求める方法であり、点Zの周辺の4点J,I,G,Hから以下のような式で表される。
【0004】
F(Z)=f(J)(1-α)(1-β)+f(I)(α)(1-β)+f(G)(1-α)(β)+f(H)(α)(β)
3次補間法は点Zの周辺の16点から以下のような演算式で表現される。
ここでC(t)はサンプリング定理を構成する関数SinπX/πXの近似式である。
【0005】
F(Z)=f(G)C(Xg-Xz)C(Yg-Yz)+f(H)C(Xh-Xz)C(Yh-Yz)+…+f(V)C(Xv-Xz)C(Yv-Yz)
C(t)=1-2t2+|t| (0≦|t|<1)
C(t)=4-8|t|+5|t|2-|t|3 (1≦|t|<2)
C(0)=0 (2≦|t|)
【0006】
これらの処理法を比較したとき、最近傍法は処理が軽いが画質はそれほどよくなく。バイリニア補間法における処理は普通であり、画質は普通である。3次補間法における処理は重たいが、画質は良いことが知られている。
【0007】
また、高速にハーフトーンデータを生成する従来例としては特開平6−6606号公報(以下従来例1と称す)がある。この従来例1は閾値マトリックスデータのメモリとは別に閾値マトリックスの1ライン分を複数の高速メモリに交互に転送し、ハーフトーン処理は高速メモリから閾値データを読み出すことで実行されている。
【0008】
【発明が解決しようとする課題】
しかしながら、上記従来例1は、少ない高速メモリで高速にハーフトーン生成を行うことを狙いとしたもので、基本的に飛躍的な処理の高速化を期待することはできない。
【0009】
そして、特開2000−92321(以下従来例2と称す)及び特開2000−165672(以下従来例3と称す)では、閾値マトリックスメモリから読み出される閾値データを一走査ラインが終了するまで、再利用可能なように処理に適用する全閾値データをレジスタに取り込み、これを選択的に複数の比較手段に出力し、並列的な比較処理を実行する。レジスタにセットされた閾値データは順次シフトされ、繰り返し使用される。しかし、この方式では、1つのメインメモリを有するシステムにおいては、(デイザを格納するメモリを別に持たないシステム)変倍処理とハーフトーン処理を並列に処理するシステムにおいて一走査ラインごとのデイザパターンの読み込みは、変倍処理に必要な画像データの読み込み処理を停止させるか、ハーフトーン処理を停止させることが考えられ、結局のところシステムの処理高速化を図れない。
【0010】
また、特開2001−150739(以下従来例4と称す)では、最近傍法を使用した変倍処理装置とハーフトーン処理装置を有し、そのハーフトーン処理装置においてはデイザメモリの使用方法について開示されている。例えば、16*16マトリックスのデイザパターンを採用する場合には、デイザデータのデータ量が16ライン分となる。このような大量の閾値を全て格納しておくようなメモリをこの中に設けるのは不経済である。この場合、デイザデータをRAMに格納しておき、所定のタイミングで所定量づつ分割して受け入れる図61の破線に示すようなダイレクトメモリアクセス回路を設けると良い。また、1画素分のデータに対して4個の閾値を順番に供給して4個の2値化データを制御もできる。2値化処理以前のデータ転送クロックに対して2値化処理後のデータ転送クロックを4倍にすれば良い。
【0011】
更に、上述したように変倍処理の方法として最近傍法や、バイリニア補間法、3次補間法などが知られており、従来、CPUのワーク領域にソース画像を、変倍処理を行ったものを展開し、その後ハーフトーン処理を行い、バンドバッファー書き込まれていた。しかし、この方法では、CPUのワーク領域を大きく使用し、しかも画像のMAXの大きさであるバンドメモリと同じサイズのワーク領域を持たねばならなかった。
【0012】
本発明はこれらの問題点を解決するためのものであり、デイザデータを垂直方向の変倍後のライン数分に必要なデイザデータを一括して読み込み、かつ画像処理後のデータをラインメモリに垂直方向の変倍後のライン数分を格納し、その後、一括して、メモリに書き込むことにより、画像データの読み込み処理を中断させることなく高速に変倍処理とハーフトーン処理を並列に行うことにより、メモリコストを抑え高速化を実現できる画像処理装置を提供することを目的とする。また、ハーフトーン処理装置の並列処理画素数分の画素を常に供給するため、変倍処理において同じ並列処理画素分の並列処理を行うことにより、処理の高速化を図ることができる画像処理装置を提供することを目的とする。
【0013】
【課題を解決するための手段】
前記問題点を解決するために、本発明の画像処理装置は、メモリアービターI/Fとデータ変換処理手段とハーフトーン処理手段とを有している。そして、メモリアービターI/Fは、1ラインの画像データをデータ変換処理手段へ転送し、かつ垂直方向に変倍後の所定ライン分のデイザデータをハーフトーン処理手段へ転送し、ハーフトーン処理手段によるハーフトーン処理後のデータを出力するとともに、垂直方向の変倍処理を管理している。また、データ変換処理手段は、メモリアービターI/Fから転送された画像データに対して水平方向の変倍処理、色変換処理、フィルタ処理等の画像処理を行い、水平方向の各ライン毎の画像処理後のデータをハーフトーン処理手段に転送する。更に、ハーフトーン処理手段は、メモリアービターI/Fからの各ラインの垂直方向の変倍処理後の所定ライン分のデイザデータと、データ変換処理手段からの水平方向の各ライン毎の画像処理後のデータとを受け取り、ハーフトーン処理を行う。よって、画像データの読み込み処理を中断することなく、画像データの読み込みと画像処理が並列に処理可能であり、高速化することができる。
【0015】
更に、データ変換処理手段は、最近傍法により変倍処理を行う変倍処理手段を有する。よって、画像を変倍後に直接ハーフトーン処理を行うために無駄なワークメモリの領域を必要とせず、かつ高速に処理が可能である。
【0016】
また、データ変換処理手段は、バイリニア補間法により変倍処理を行う変倍処理手段を有する。よって、画像を変倍後に直接ハーフトーン処理を行うために無駄なワークメモリの領域を必要とせず、かつ高速に処理が可能である。
【0017】
更に、変倍処理手段は、ハーフトーン処理手段の並列に処理する画素と同じ数の画素を並列に変倍処理することが可能な変倍画素係数生成手段を有している。よって、無駄なワークメモリの領域を必要とせず、高速に処理が可能であり、かつハーフトーン処理手段の並列処理数分の画素を常に変倍処理手段が生成することが可能であるためにより一層高速に処理することができる。
【0018】
また、変倍画素係数生成手段は、ハーフトーン処理手段の並列処理数と同じ数の画素のX幅を求めることが可能な並列X幅生成手段と、その複数のX幅を受け取り、ハーフトーン処理手段の並列処理数へ分けて出力する出力X幅生成手段とを有する。よって、水平方向に並列に変倍処理を行うために高速に処理が可能となる。
【0019】
更に、ハーフトーン処理手段は、水平方向に複数の画素を並列に比較する並列比較手段と、デイザパターンメモリから受け取った水平方向に複数の閾値マトリックスを現在の比較する画素から水平方向に複数の閾値マトリックスを切り出す比較パターン切り出し手段とを有する。よって、水平方向に並列にハーフトーン処理を行うために高速に処理が可能となる。
【0020】
また、比較パターン切り出し手段は、変倍処理手段から受け取った有効画素数に基づいて、デイザパターンメモリから受け取った水平方向に複数の閾値マトリックスを現在の比較する画素から水平方向に複数の閾値マトリックスを切り出す。よって、水平方向に並列にハーフトーン処理を行うために高速に処理が可能となる。
【0021】
更に、ハーフトーン処理手段は、列比較手段から受け取った水平方向に複数の画素を、変倍処理手段から受け取った有効画素数だけ、固定長のデータへ入れ込んでいく固定長生成手段を有する。よって、水平方向に並列にハーフトーン処理を行うために高速に処理が可能となる。
【0022】
また、変倍処理手段は、変倍される画素を所定の幅に変換し、ハーフトーン処理手段が処理可能な水平方向にMAXの並列処理画素数に合わせて出力する。よって、水平方向に並列に変倍処理を行うために高速に処理が可能となる。
【0023】
更に、変倍処理手段は、垂直方向の複数の補間点と、処理可能な水平方向にMAXの拡大率まで並列に求められた水平方向の複数の補間係数とに基づいて、水平方向の複数の補間点を求める水平補間手段と、実際に補間すべき画素の個数を求める有効数カウント手段とを有する。よって、水平方向に並列に変倍処理を行うために高速に処理が可能となる。
【0024】
【発明の実施の形態】
本発明の画像処理装置は、メモリアービターI/Fとデータ変換処理手段とハーフトーン処理手段とを有している。そして、メモリアービターI/Fは、1ラインの画像データをデータ変換処理手段へ転送し、かつ垂直方向に変倍後の所定ライン分のデイザデータをハーフトーン処理手段へ転送し、ハーフトーン処理手段によるハーフトーン処理後のデータを出力するとともに、垂直方向の変倍処理を管理している。また、データ変換処理手段は、メモリアービターI/Fから転送された画像データに対して水平方向の変倍処理、色変換処理、フィルタ処理等の画像処理を行い、水平方向の各ライン毎の画像処理後のデータをハーフトーン処理手段に転送する。更に、ハーフトーン処理手段は、メモリアービターI/Fからの各ラインの垂直方向の変倍処理後の所定ライン分のデイザデータと、データ変換処理手段からの水平方向の各ライン毎の画像処理後のデータとを受け取り、ハーフトーン処理を行う。
【0025】
【実施例】
図1は本発明の画像処理装置を適用する多色画像形成装置の構成を示す断面図である。同図に示す多色画像形成装置によれば、像担持体であるベルト状の感光体1は回転ローラ2,3により回動可能に支持され、その各回転ローラ2,3の駆動により矢示A方向に回動される。感光体1の外周部には、帯電手段である帯電装置4、除電ランプL、感光体1用のクリーニングブレード15Aが配置されている。帯電装置4の下流位置には、光書込手段であるレーザ書き込みユニット5より発せられるレーザ光が照射される光書き込み部がある。光書き込み部より下流位置には、複数の現像ユニット(現像手段)が切り換え自在に支持された多色現像装置6が配置されている。その多色現像装置6は、収容するトナーの色毎に、イエロー現像ユニット,マゼンダ現像ユニット,シアン現像ユニットを備えている。また、多色現像装置6の上部には、黒色トナーを収容したブラック現像ユニット7が備えられている。これらの各現像ユニットのいずれか1つが対応する色の現像タイミングに同期し、現像可能な位置に移動する。多色現像装置6は、円周上120度の回転によっていずれかの現像ユニットを選択する機能を有している。そして、これらの現像ユニットが稼動するときには、ブラック現像ユニット7は感光体1より離間した位置に移動する。その移動は、カム45の回転により行なわれる。レーザ書き込みユニット5は、図示しないレーザ光源から複数色の画像形成信号(書き込み情報)に応じたレーザ光を順次発生させ、ポリゴンモータ5Aによって回転されるポリゴンミラー5Bを用いてそのレーザ光を周期的に偏向させ、fθレンズ5C及びミラー5Dなどを経て、帯電された感光体1の表面を走査してその表面に静電潜像を形成させる。
【0026】
そして、感光体1の表面に形成される静電潜像は、対応する現像ユニットからのトナーによって現像され、トナー画像が形成・保持される。中間転写ベルト10は、感光体1に隣接しており、回転ローラ11,12により矢示B方向に回動可能に支持されている。感光体1上のトナー画像は、中間転写ベルト10の裏側にある転写ブラシ(第1の転写手段)13により、その中間転写ベルト10の表面に転写される。感光体1の表面は1色毎にクリーニングブレード15Aによりクリーニングされ、その表面に所定色のトナー画像が形成される。そして、その都度中間転写ベルト10の1回動毎にその表面の同じ位置に感光体1上のトナー画像が転写されて、中間転写ベルト10上に複数色のトナー画像が重ね合わせられて保持される。その後、そのトナー画像は用紙やプラスチック等の記録媒体に転写される。用紙への転写に際しては、給紙装置(給紙カセット)17に収納されている用紙が給紙ローラ18によって繰り出されて搬送ローラ19により搬送され、レジストローラ対20に付き当てられた状態で一旦停止された後、トナー画像の転写位置が正規のものとなるようにタイミングがとられて中間転写ベルト10と転写ローラ(第2の転写手段)14のニップに再搬送される。そして、その用紙は転写ローラ14の作用により中間転写ベルト10上の複数色のトナー画像が一括転写された後、定着装置50に送られ、そこでトナー像が定着された後、排紙ローラ対51により本体フレーム9の上部の排紙スタック部52に排出される。
【0027】
中間転写ベルト10には、回転ローラ11の部位に中間転写ベルト10用のクリーニング装置16が設けられ、クリーニングブレード16Aがクリーニングブレード接離用アーム16Cを介して接離自在の構成となっている。このクリーニングブレード16Aは、感光体1からトナー画像を受け取る工程では、中間転写ベルト10から離れ、中間転写ベルト10より用紙にトナー画像が転写された後に接触するようになっていて、用紙にトナー画像が転写された後の残留トナーをかきとる。クリーニングブレード16Aは、上記したように、感光体1用と中間転写ベルト10用がある。これらブレードがかきとった廃トナーは、回収容器15に収納する。その回収容器15は適宜交換される。中間転写ベルト10用のクリーニング装置16の内部に設けられたオーガ16Bが、クリーニングブレード16Aでかきとられた廃トナーを搬送し、図示しない搬送手段で回収容器15に送るようになっている。
【0028】
ユニット化されたプロセスカートリッジ31は、感光体1,帯電装置4,中間転写ベルト10,クリーニング装置16,用紙搬送路を形成する搬送ガイド30などを一体に組み込み、寿命到来時に交換できるように構成されている。プロセスカートリッジ31の交換の他に、多色現像装置6,ブラック現像ユニット7なども寿命到来時に交換するが、その交換性やジャム紙の処理を容易にするため、本体の一部の前フレーム8は支軸9Aを中心に開閉可能に回動できる構造にしてある。
【0029】
また、図1の左側には、電装・制御装置60が収納されている。その上方には、ファン58が備えられており、機内の温度過昇防止のために排風する。図の右側には、比較的小規模な別の給紙装置59が備えられている。なお、この実施形態では、中間転写体として中間転写ベルト10を使用したが、中間転写ドラムを使用することもできる。
【0030】
図2は図1の電装・制御装置の構成を示すブロック図である。同図において、電装・制御装置は、主に、画像メモリ109を操作する画像メモリアクセラレータ101を有し、CPU107にコントロールされ、ネットワーク通して図示していないホストコンピュータから画像データを受け取り、メモリ109へ転送し、またその画像データをエンジンコントローラ113へ転送しプリントアウトなどを行う。この時に、各ホストとの通信や、画像メモリ108のコントロールやパネル16から操作された情報を得るためや、プリンタエンジンコントローラなどの周辺とのバスコントロールなどを行う。バスコントローラ101は、バス117とつながる各周辺コントローラとのバスの調停を行う。メモリアービター103は、メモリ109と各種のコントローラ間の調停を行う。ローカルI/F104はROM105などのインタフェースである。ROM105は、各種のプログラムや、文字などのフォント情報を格納している。CPUI/F106は、CPU107のインタフェースである。CPU107は、プリンタ装置全体の制御を行う。メモリコントローラ108は、メモリ109をコントロールし、メモリアービター108を介して、各種コントローラやCPU107と接続されている。メモリ109は、画像データやその符号データ、そしてCPU107のプログラムなどを格納している。通信コントローラ110は、ネットワークに接続されており、ネットワークから各種データやコマンドなどを受け取り、メモリアービター103を介して各種のコントローラに接続されている。画像処理装置112は、CPU107からの命令によりメモリ109から画像を読み込み、画像処理後にメモリ109へ画像処理後の画像を書き込む。エンジンコントローラ113は、バス117と接続されており、プリンタエンジン114をコントロールする。パネルコントローラ115は、パネル116をコントロールしている。パネル116は、ユーザからの操作をプリンタ装置へ知らせる表示装置である。バス117は、画像メモリアクセラレータ101と各種周辺コントローラとを接続する。DMA111は、メモリコントローラ108とバス117に接続されたエンジンコントローラ113間のダイレクトメモリアクセスを行う。
【0031】
図3は本発明の一実施例に係る画像処理装置の構成を示すブロック図である。同図において、画像処理装置112は、メモリアービターI/F201、データ変換処理装置202、ハーフトーン処理装置203及びパラメータ格納装置204を含んで構成されている。
【0032】
そして、メモリアービターI/F201は、画像処理装置112の画像読み込み処理と、デイザデータの読み込み処理と処理後画像の書き込み処理のメモリアービター103への要求の調停を行い、データ変換処理装置202へ画像データを、ハーフトーン処理装置203へデイザデータを転送し、またはハーフトーン処理装置203からの画像処理後のデータを受け取り、メモリアービター103へ転送する。また、垂直方向の変倍処理を管理し、それに必要な画像データとデイザデータを、メモリアービター103を介して要求し、処理後の画像をメモリアービター103へ転送する。
【0033】
また、データ変換処理装置202は、メモリアービターI/F201から水平ラインの画像データを受け取り、水平方向の変倍処理、色変換処理、フィルター処理や、画像データが符号である場合は画像符号のデコード処理を行い、画像データへの変換後に、上記の変倍処理、色変換処理、フィルター処理などを実行し、その処理結果をハーフトーン処理装置203へ転送する。ここで、データ変換処理装置202の詳細な構成は図4に示しておく。
【0034】
更に、ハーフトーン処理装置203は、メモリアーブビターI/F201から垂直方向の各ラインの変倍後のライン数分のデイザデータを受け取り、データ変換処理装置202から、画像処理後のデータを水平ラインごと受け取り、ハーフトーン処理を実行する。
【0035】
また、パラメータ格納装置204は、CPUなどから設定されたメモリアービターI/F201、データ変換処理装置202、ハーフトーン処理装置203に必要なパラメータを格納する。
【0036】
次に、図3のデータ変換処理装置202の変倍処理が最近傍法である場合の動作について動作フローを示す図5に従って説明する。
はじめに、図3のメモリアービターI/F201は、垂直方向の変倍率を求める処理を行う(ステップS101)。メモリアービターI/F201は、図2のメモリアービター103を介して図2のメモリ109から1ラインの画像データを読み込み、図3のデータ変換処理装置202へ送る(ステップS102)。メモリアービターI/F201は、垂直方向に変倍後のライン数分のデイザデータを読み込み、図3のハーフトーン処理装置203へ送る(ステップS103)。メモリアービターI/F201は求めた垂直方向の変倍率とデイステイネーション画像の座標Y始点DYSから垂直方向のDDA(デジタル微分解析)により、変倍後のY始点YSとY終点YEを求める(ステップS104)。そして、メモリアービターI/F201は変倍後の垂直方向のラインカウンタに求めたYSの値を設定する(ステップS105)。その後、データ変換処理装置202により1ラインの画像処理(変倍、色変換、フィルター処理など)を行う(ステップS106)。ハーフトーン処理装置203により、1ラインの画像処理後の画像データにハーフトーン処理を行う(ステップS107)。そして、ハーフトーン処理装置203はハーフトーン処理後の1ラインデータを内部ラインメモリに書き込む(ステップS108)。メモリアービターI/F101は変倍後の垂直方向のラインカウンタをカウントアップする(ステップS109)。更に、メモリアービターI/F201は垂直方向のラインカウンタが求めた垂直方向の変倍後のY終点YEを超えているかいないかをチェックし、超えていない場合はステップS106の処理へ移り(ステップS110;YES)、等しいか又は超えた場合はメモリアービターI/F201で書き込まれた内蔵ラインメモリから画像処理後のデータをメモリアービター103を介してメモリ109へ画像処理後の画像データを書き込む(ステップS110;NO、ステップS111)。そして、メモリアービターI/F201は求めた垂直方向の変倍後のY終点YEがデイステイネーション画像の座標Y終点DYEを超えているかいないかをチェックし、超えている場合はステップS102へ移り(ステップS112;YES)、等しいか又は超えた場合は処理を終了する(ステップS112;NO)。
【0037】
図6は垂直方向に縮小する場合のタイミング例を示す図である。同図の(a)に示す例は、縮小倍率が0.5倍の例で、画像処理前の画像データを1つ飛ばしのラインを(奇数ラインのみ)読み込み、デイザパターンデータは順次1ラインごと、読み込み、そして画像処理後のデータを順次1ラインごと書き込んでいく例である。また、この例では、画像データの読み込み処理と画像処理とが並列に処理される。そして、同図の(b)に示す例は、0.6666倍の例で、画像処理前の画像データを3ラインごと1ラインを飛ばして読み込み、デイザパターンデータは順次1ラインごとに読み込み、そして画像処理後のデータを順次1ラインごと書き込んでいく例である。また、この例でも、画像データの読み込み処理と画像処理とが並列に処理される。
【0038】
図7は垂直方向の等倍及び拡大の場合のタイミング例を示す図である。同図の(a)に示す例は、等倍の例で、画像処理前の画像データを順次1ラインごと読み込み、デイザパターンデータを順次1ラインごとに読み込み、そして画像処理後のデータを順次1ラインごと書き込んでいく例である。また、この例では、画像データの読み込み処理と画像処理とが並列に処理される。同図の(b)に示す例は、1.5倍の例で、画像処理前の画像データを順次1ラインごと読み込み、デイザパターンデータを時々2ラインごとに読み込み、そして画像処理後のデータを時々2ラインごとに書き込んでいく例である。また、この例では、画像データの読み込み処理と画像処理とが並列に処理され、時々2ラインの画像処理を行う。同図の(c)の例は、2倍の例で、画像処理前の画像データを順次1ラインごと読み込み、デイザパターンデータを順次2ラインごとに読み込み、そして画像処理後のデータを順次2ラインごとに書き込んでいく例である。また、この例では、画像データの読み込み処理と画像処理とが並列に処理され、2ラインの画像処理を行う。
【0039】
次に、図8は図3のメモリアービターI/Fの詳細な周辺構成を示すブロック図である。メモリアービターI/F201はメモリアービター103へ接続され、メモリアービター103は図2のCPUI/F106を通してCPUからのメモリアクセス、図2のローカルI/F104からメモリアクセスなどのメモリアクセスを調停し、複数の媒体からのメモリアクセスがある場合、優先順位の高い媒体に対し、メモリアクセス権を与え、メモリアクセスを行わせ、他の媒体に待機処理を行わせる。メモリアービターI/F201はメモリアービター103へ図2の画像処理装置112として接続され、画像処理装置として、図2のメモリ109へのアクセス権をメモリアービター103へ要求し、画像処理前の画像データの読み込みをメモリアービター103へ要求し、画像データを読み込み、データ変換処理装置202へ転送する。データ変換処理装置202が画像符号のデコード処理装置を有する場合、画像データは符号データとして上記処理を行う。また、デイザデータの読み込みをメモリアービター103へ要求し、デイザデータを読み込み、ハーフトーン処理装置203へ転送し、ハーフトーン処理装置203の画像処理後の画像データの書き込みをメモリアービター103へ要求し、画像処理後のデータをメモリアービター103へ転送する。
【0040】
図9は図3のメモリアービターI/Fの構成を示すブロック図である。同図において、メモリアービターI/F201は、変倍率生成装置301、Y DDA処理装置302、IYカウンタ装置303、メモリアドレス生成装置304、MUX305及びコントローラ306を含んで構成されている。変倍率生成装置301は、変倍される画像のソース画像の座標Y始点SYS、Y終点SYE、変倍後のデイステイネーション画像の座標Y始点DYS、Y終点DYEからY方向の変倍率RATEYを求め、Y DDA処理装置302へ転送する。また、Y DDA処理装置302は変倍率生成装置301からのY方向の変倍率とデイステイネーション画像の座標Y始点DYSを受け取り、図61の垂直方向の図中○で示す拡大された画素のように、入力された画像の変倍後のY座標をDDA(デジタル微分解析)により、Y始点YSとY終点YEを求め、その差分(変倍後のライン数)DYを求め、IYカウント処理装置303と、メモリアドレス生成装置304へ転送される。更に、IYカウント装置303はY DDA処理装置302から変倍後のY始点YSとY終点YEを受け取り、変倍後のY始点からY終点までを、データ変換処理装置202と、ハーフトーン処理装置203の1ラインの処理が終了するごとにラインをカウントし、コントロールし、デイステイネーション画像の座標Y終点と比較し、画像処理の終了をコントロールする。また、メモリアドレス生成装置304は、メモリアービター103を介して図2のメモリ109をアクセスするためのメモリのアドレスである画像データよき込みアドレスと、デイザデータ読み込みアドレスと、画像処理後の画像データ書込みアドレスを計算する。このとき、Y DDA処理装置302から変倍後のライン数を受け取り、読み込むデイザデータのライン数(データ数)と、処理後の画像を書き込むライン数(データ数)を計算し、メモリアドレスを生成していく。更に、MUX305は、メモリアービター103から読み込んだデータをデータの種類により、データ変換処理装置202と、ハーフトーン処理装置203への転送を切り換える。また、コントローラ306は、メモリアービターI/F201と図2の画像処理装置112をコントロールする。
【0041】
図10は図9の変倍率生成装置の構成を示すブロック図である。同図に示す変倍率生成装置は、減算器401,402、除算器403及びレジスタ404を含んで構成されている。このような構成を有する変倍率生成装置によれば、変倍される画像のソース画像の座標Y始点SYS及びY終点SYEと、変倍後のデイステイネーション画像の座標Y始点DYS及びY終点DYEからY方向の変倍率RATEYを求め、図9のY DDA処理装置302へ転送する。図10のように、RATEY=(SYE-SYS)/(DYE-DYS)の演算により、Y方向の変倍率(RATEY)を求め、ソース画像の座標Y始点SYS及びY終点SYE、デイステイネーション画像の座標Y始点DYS及びY終点DYEを求める。
【0042】
図11は図9のY DDA処理装置の構成を示すブロック図である。同図に示すY DDA処理装置は、MUX501、現在の処理中のY値を格納するレジスタ502、Y方向変倍率RATEYを格納するレジスタ503、加算器504、変倍後のY終点を格納するレジスタ505、変倍後のY始点を格納するレジスタ506、レジスタ505のY終点の正数部からY始点の正数部を減算して変倍後のライン数DYを求める減算器507を含んで構成されている。このような構成を有するY DDA処理装置によれば、図9の変倍率生成装置301からのY方向の変倍率とデイステイネーション画像の座標Y始点DYSを受け取り、図6の垂直方向の図中の○で示す拡大された画素のように、入力された画像の変倍後のY座標をDDA(デジタル微分解析)により、Y始点YSとY終点YEを求め、その差分(変倍後のライン数)DYを求め、図9のIYカウント処理装置303とメモリアドレス生成装置304へ転送される。
【0043】
図12は図9のIYカウンタ装置の構成を示すブロック図である。同図に示すIYカウント装置は、図9のY DDA処理装置302からの変倍後のY終点とデイステイネーション画像の座標Y終点DYEと比較し、結果YENDFLを図9のコントローラ306へ転送する比較器601、最初のみレジスタ603に図9のY DDA処理装置302からの変倍後のY始点を送り、その後順次加算されていく加算器604の出力を送るMUX602、現在の処理中のY値を格納するレジスタ603、図3のデータ変換処理装置202と図3のハーフトーン処理装置203の1ラインの処理が終了するごとにラインをカウントしていく加算器604、現在の処理中のY値と、図9のY DDA処理装置302からの変倍後のY終点とを比較し、結果IYENDFLを図9のコントローラ306へ転送する比較器605を含んで構成されている。このような構成を有するIYカウンタ装置によれば、図9のY DDA処理装置302から変倍後のY始点YSとY終点YEを受け取り、変倍後のY始点からY終点までを、図3のデータ変換処理装置202と、図3のハーフトーン処理装置203の1ラインの処理が終了するごとにラインをカウントし、コントロールし、デイステイネーション画像の座標Y終点と比較し、画像処理の終了をコントロールする。
【0044】
図13は図9のメモリアドレス生成装置の構成を示すブロック図である。同図に示すメモリアドレス生成装置は、初期値として図3のパラメータ格納装置204から画像先頭アドレスを設定され、図6のようにその後1ラインごと画像処理前の画像データのアドレスを読み込み、アドレスを生成していく画像データアドレス生成装置701、初期値として図3のパラメータ格納装置204からデイザ先頭アドレスを設定され、図9のY DDA処理装置302からの変倍後のライン数を受け取り、読み込むデイザデータのライン数(データ量)を計算し、図6のように、デイザデータの読み込みのアドレスを生成するデイズデータアドレス生成装置702、初期値として図3のパラメータ格納装置204から処理後画像先頭アドレスを設定され、図9のY DDA処理装置302からの変倍後のライン数を受け取り、書き込む処理後画像データのライン数(データ量)を計算し、図6のように、画像処理後データの書込みのアドレスを生成する処理後画像データアドレス生成装置703、MUX704を含んで構成されている。このような構成を有するメモリアドレス生成装置によれば、図2のメモリアービター103を介して図2のメモリ109をアクセスするためのメモリのアドレスである画像データよき込みアドレスと、デイザデータ読み込みアドレスと、画像処理後の画像データ書込みアドレスを計算する。このとき、図3のY DDA処理装置302から変倍後のライン数を受け取り、読み込むデイザデータのライン数(データ数)と、処理後の画像を書き込むライン数(データ数)を計算し、メモリアドレスを生成していく。
【0045】
図14は最近傍法の変倍処理装置の構成を示すブロック図である。同図に示す変倍処理装置は、元画素格納装置801、変倍率生成装置802、DDA処理装置803、IXカウント装置804、変倍画素係数生成装置805、変倍画素変換装置806、コントローラ807を含んで構成されている。
【0046】
また、元画素格納装置801は、ハーフトーン処理装置が並列に処理する画素分を蓄え、変倍画素変換装置806へ転送する。変倍率生成装置802は、変倍される画像のソース画像の座標X始点SXS、X終点SXE、変倍後のデイステイネーション画像の座標X始点DXS、X終点DXEからX方向の変倍率RATEXを求め、DDA処理装置803へ転送する。DDA処理装置803は、変倍率生成装置802からのX方向の変倍率とデイステイネーション画像の座標X始点DXSを受け取り、図61の図中○で示す拡大された画素のように、入力された画像の変倍後の座標をDDA(デジタル微分解析)により、随時求める。この例では、図8のように補間するため補間されるX始点XS、X終点XEを求め、IXカウント処理装置804と変倍画素係数生成装置805へ転送される。IXカウント装置804はDDA処理装置803からY方向の始点と終点を受け取り、図61の図中△で示す補間された画素のY座標を生成し、コントローラ807へ、X座標がX終点DXEと等しくなったことをXENDFL信号で知らせる。変倍画素係数生成装置805は、DDA処理装置803からの補間する方向の始点XSと変倍率生成装置802から変倍率RATEXを受け取り、変倍画素生成装置の出力する各画素の幅を出力し、変倍画素変換装置806にて画素に変倍処理を行う。この時、変倍画素変換装置806が出力するMAX数は、ハーフトーン処理装置が処理可能なMAXの画素値までである。また、変倍率が1倍があるため、変倍画素生成装置の出力も、ハーフトーン処理装置が処理可能なMAXの画素値まで対応している。そのため、変倍率が1倍以上の場合、複数クロックに渡ってハーフトーン処理装置が処理可能なMAXの画素値ごと出力しなければならない。変倍画素変換装置806は、変倍画素生成装置から変倍する画素を受け取り、変倍画素係数生成装置805から、変倍画素生成装置の出力する各画素の幅を受け取り、図15のように、変倍する画素を変倍画素生成装置からの幅に変更することにより、変倍処理を実行する。コントローラ807は、変倍処理装置の全体をコントロールする。
【0047】
図16は図14の変倍処理装置の動作を示すフローチャートである。同図において、先ず図14の変倍率生成装置802により変倍率を求める(ステップS201)。X方向のDDAの初期化を行う(ステップS202)。図14のDDA処理装置803により、X方向(水平方向)のDDA処理を行い、処理するX始点XSとX終点XEを求める(ステップS203)。変倍データを内部ラインメモリから読み込む(ステップS204)。図14の変倍画素係数生成装置805により、読み込んだ変倍処理される画素の幅を求める(ステップS205)。図14の変倍画素変換装置806により、変倍される画素を求めた幅に変換し、ハーフトーン処理装置のMAXの並列処理画素数に合わせて出力する(ステップS206)。XEが変倍されたデイステイネーション画像の座標X終点DXEを超えていない場合はステップS203へ処理を戻す(ステップS207;YES)。DXEと同じか、又は超えた場合は処理を終了する(ステップS207;NO)。
【0048】
図17は図14の元画素格納装置の構成を示すブロック図である。同図において、レジスタ901〜908は、順次データを格納し、ハーフトーン処理装置のMAX並列処理画素分の画素を格納する。ラインメモリ909は、レジスタ901〜908により、蓄えられた画像データをつなげて並列に格納し、メインメモリからの画像データの読み込みと画像処理が並列に処理可能とし、読み込み時にレジスタ901〜908の内容が並列に読み込みできるようにする。ラインメモリコントローラ910は、ラインメモリのアドレスの生成と、この元画素格納装置の全体のコントロールを行う。
【0049】
図18は図14の変倍率生成装置の構成を示すブロック図である。同図に示す変倍率生成装置は、減算器1001,1002、除算器1003、レジスタ1004を含んで構成されている。このような構成を有する変倍率生成装置によれば、前記のように変倍される画像のソース画像の座標X始点SXS及びX終点SXEと変倍後のデイステイネーション画像の座標X始点DXS及びX終点DXEからX方向の変倍率RATEXを求め、図14のDDA処理装置803へ転送する。つまり、図17のように、RATEX=(SXE-SXS)/(DXE-DXS)の演算により、X方向の変倍率(RATEX)を求め、ソース画像の座標X始点SXS及びX終点SXE、デイステイネーション画像の座標X始点DXS及びX終点DXEを求める。
【0050】
図19は図14のDDA処理装置の構成を示すブロック図である。同図に示すDDA処理装置は、最初のみレジスタ1102に初期値のデイステイネーション画像の座標X始点DXSを転送し、その後順次加算されていく加算器1104の出力を送るMUX1101、現在の処理中のX値を格納するレジスタ1102、X方向変倍率RATEXとハーフトーン処理装置のMAXの並列処理画素数を乗算し複数画素の分の微差分を求める乗算器1103、乗算器1103で求めた値を格納するレジスタ1104、加算器1105、補間するX終点を格納するレジスタ1106、補間するX始点を格納するレジスタ1107を含んで構成されている。図14の変倍率生成装置802からのX,Y方向の変倍率とデイステイネーション画像の座標X始点DXS及びY始点DYSを受け取り、図61の図中○で示す拡大された画素のように、入力された画像の変倍後の座標をDDA(デジタル微分解析)により、随時求める。この例では、図14のように補間するため補間されるX始点及びX終点を求め、図14のIXカウント処理装置804と変倍画素係数生成装置805へ転送される。この時、X方向においては、ハーフトーン処理装置のMAXの並列処理画素分のDDAを行う。そのため、X方向のDDA処理装置は図19のように現在のX座標に変倍率生成装置で求めたX方向変倍率RATEXにハーフトーン処理装置のMAXの並列処理画素数を乗算した値を順次加算していく構造である。
【0051】
図20は図14のIXカウント装置の構成を示すブロック図である。同図示すIXカウンタ装置は、比較器1201を有し、図14のDDA処理装置803からのXE値とデイステイネーション画像の座標X終点DXEを比較しX座標がX終点DXEと等しくなったことを示すXENDFL信号を生成する。
【0052】
図21は図14の変倍画素係数生成装置の構成を示すブロック図である。同図に示す変倍画素係数生成装置は、並列X幅生成装置1301及び出力X幅生成装置1302を含んで構成されている。並列X幅生成装置1301は、図14の元画像格納装置801が出力する画素数分のDDAにより、各画素のX座標を求め、そのX座標から各画素間のX幅を求め、出力X幅生成装置1302の出力するX幅の生成装置へ送る。また、出力X幅生成装置1302は、図14の変倍画素係数生成装置806が出力するハーフトーン処理装置の並列処理数に合せて分けて出力するための処理を行い、各画素のX幅の累積加算値と、その画素数を図14の変倍画素係数生成装置806へ送る。このような構成を有する変倍画素係数生成装置は、図14のDDA処理装置804からの補間するX方向の始点XSと図14の変倍率生成装置802により求めたX方向変倍率RATEXから並列X幅生成装置1301で元画像格納装置が出力する画素数分のDDAにより、各画素のX座標を求め、そのX座標から各画素間のX幅を求め、出力X幅生成装置1302により、図14の変倍画素係数生成装置806が出力するハーフトーン処理装置の並列処理数に合せて分けて出力するための処理を行い、各画素のX幅の累積加算値と、その画素数を図14の変倍画素係数生成装置806へ送る。
【0053】
図22は図21の並列X幅生成装置の構成を示す図である。同図に示す並列X幅生成装置は、加算器1401〜1408、減算器1409〜1416を含んで構成されている。加算器1401〜1408は、図14のDDA処理装置803により求めたX始点と、図14の変倍率生成装置802により求めたX方向変倍率RATEXを受け取り、複数画素のX値を求める。減算器1409〜1416は各画素間の幅を求める。
【0054】
図23は図21の出力X幅生成装置の構成を示すブロック図である。同図に示す出力X幅生成装置は、MUX1501〜1508、レジスタ1509〜1516、累積加算処理装置1517、XWIDTH更新処理装置1518、出力用XWIDTH生成処理装置1519、累積加算処理装置1520を含んで構成されている。このような構成を有する出力X幅生成装置によれば、図21の並列X幅生成装置1301からの各画素のX幅を受け取り、レジスタに格納し、受け取った全ての画素が処理し終わるまで、保持する。そして、XWIDTH更新処理装置1518により出力された画素分の各画素のX幅を画素番号の小さいレジスタから減算し、MUX1501〜1508を通しレジスタ1509〜1516を更新する。累積加算処理装置1517は、レジスタ1509〜1516に格納しているX幅を累積加算し、XWIDTH更新処理装置1518は、累積加算装置1517の出力する累積加算値を受け取り、各画素点での累積加算値からハーフトーン処理装置のMAX並列処理数を超える最初の累積加算点を求め、その画素までの更新値を生成し、MUX1501〜1508を通し、対応するレジスタ1509〜1516の値を更新する。出力用XWIDTH生成処理装置1519は、累積加算装置1517の出力する累積加算値を受け取り、各画素点での累積加算値からハーフトーン処理装置のMAX並列処理数を超える最初の累積加算点を求め、その画素までの出力するX幅を求めて累積加算処理装置1520へ転送する。累積加算処理装置1520は、図14の変倍画素変換装置806の処理に必要な累積加算を行う。
【0055】
図24は図23の累積加算処理装置の構成を示すブロック図である。同図に示す累積加算処理装置は、各画素までの累積加算値を求める加算器1601〜1607を有する。
【0056】
図25は図23のXWIDTH更新処理装置の処理を示すフローチャートである。同図において、先ず0番の画素のX幅がハーフトーン処理装置の並列処理数(この例では“8”である)以上あるか調べ、以上あれば0番目のX幅からハーフトーン処理装置の並列処理数を減算し、新たな0番目のX幅値を求める(ステップS301;YES、ステップS302)。次に、0〜1番目までの累積X幅がハーフトーン処理装置の並列処理数(この例では“8”である)以上あるか調べ、以上あれば0番目のX幅を“0”とし、1番目のX幅からハーフトーン処理装置の並列処理数から0番目のX幅を減算した値を減算し、新たな1番目のX幅値を求める(ステップS303;YES、ステップS304)。以下ステップS305〜S317において同様に処理を行う。
【0057】
図26は図23の出力XWIDTH生成処理装置の処理を示すフローチャートである。はじめに、出力する各画素のX幅の初期化を行う(ステップS401)。そして、0番の画素のX幅がハーフトーン処理装置の並列処理数(この例では“8”である)以上あるか調べ、以上あれば0番目の出力するX幅へハーフトーン処理装置の並列処理数をセットし、処理する画素数PNUMへハーフトーン処理装置の並列処理数をセットする(ステップS402;YES、ステップS403)。更に、0〜1番目までの累積X幅がハーフトーン処理装置の並列処理数(この例では“8”である)以上あるか調べ、以上あれば0番目の出力するX幅へ0番目のX幅XWIDTH0をセットし、1番目の出力するX幅へ、ハーフトーン処理装置の並列処理数から0番目のX幅を減算した値をセットし、処理する画素数PNUMへハーフトーン処理装置の並列処理数をセットする(ステップS404;YES、ステップS405)。そして、0〜2番目までの累積X幅がハーフトーン処理装置の並列処理数(この例では“8”である)以上あるか調べ、以上あれば0番目の出力するX幅へ0番目のX幅XWIDTH0をセットし、1番目の出力するX幅へ1番目のX幅XWIDTH1をセットし、2番目の出力するX幅へ、ハーフトーン処理装置の並列処理数から1番目のX幅までの累積加算値を減算した値をセットし、処理する画素数PNUMへハーフトーン処理装置の並列処理数をセットする(ステップS406;YES、ステップS407)。以下ステップS408〜S417において同様に処理され、ステップS418では、全ての画素のX幅の合計がハーフトーン処理装置の並列処理数の以下であるため、全ての画素の出力する画素のX幅を更新されてきた図23のレジスタ1509〜1516のX幅の値をセットし、全ての画素のX幅の合計を処理する画素数PNUMへセットする。
【0058】
図27は図23の累積加算処理装置の構成を示すブロック図である。同図に示す累積加算処理装置は、各画素での累積加算値を求める加算器1701〜1707を有している。
【0059】
図28は図14の変倍画素変換装置の出力画素の0番目の処理を示すフローチャートである。同図において、先ず図14の変倍画素係数生成装置805からの0番目の画素のX幅“DXWIDTH0"が“0”より大きい場合、出力画素0番目は図14の元画素格納装置801のDATA0の値をセットする(ステップS501;YES、ステップS502)。そして、図14の変倍画素係数生成装置805からの0番目〜1番目の画素のX幅の累積の“DXWIDTH1"が“0”より大きい場合、出力画素0番目は図14元画素格納装置801のDATA1の値をセットする(ステップS503;YES、ステップS504)。次に、図14の変倍画素係数生成装置805からの0番目〜2番目の画素のX幅の累積の“DXWIDTH2"が“0”より大きい場合、出力画素0番目は図14の元画素格納装置801のDATA2の値をセットする(ステップS505;YES、ステップS506)。また、図14の変倍画素係数生成装置805からの0番目〜3番目の画素のX幅の累積の“DXWIDTH3"が“0”より大きい場合、出力画素0番目は図14の元画素格納装置801のDATA3の値をセットする(ステップS507;YES、ステップS508)。更に、図14の変倍画素係数生成装置805からの0番目〜4番目の画素のX幅の累積の“DXWIDTH4"が“0”より大きい場合、出力画素0番目は図14の元画素格納装置801のDATA4の値をセットする(ステップS509;YES、ステップS510)。そして、図14の変倍画素係数生成装置805からの0番目〜5番目の画素のX幅の累積の“DXWIDTH5"が“0”より大きい場合、出力画素0番目は図14の元画素格納装置801のDATA5の値をセットする(ステップS511;YES、ステップS512)。また、図14の変倍画素係数生成装置805からの0番目〜6番目の画素のX幅の累積の“DXWIDTH6"が“0”より大きい場合、出力画素0番目は図14の元画素格納装置801のDATA6の値をセットする(ステップS513;YES,ステップS514)。更に、図14の変倍画素係数生成装置805からの0番目〜7番目の画素のX幅の累積の“DXWIDTH7"が“0”より大きい場合、出力画素0番目は図14の元画素格納装置801のDATA7の値をセットする(ステップS515;YES、ステップS516)。
【0060】
図29は図14の変倍画素変換装置の出力画素の1番目の処理を示すフローチャートである。同図において、先ず図14の変倍画素係数生成装置805からの0番目の画素のX幅“DXWIDTH0"が“1”より大きい場合、出力画素1番目は図14の元画素格納装置801のDATA0の値をセットする(ステップS601;YES、ステップS602)。そして、図14の変倍画素係数生成装置805からの0番目〜1番目の画素のX幅の累積の“DXWIDTH1"が“1”より大きい場合、出力画素1番目は図14の元画素格納装置801のDATA1の値をセットする(ステップS603;YES、ステップS604)。また、図14の変倍画素係数生成装置805からの0番目〜2番目の画素のX幅の累積の“DXWIDTH2"が“1”より大きい場合、出力画素1番目は図14の元画素格納装置801のDATA2の値をセットする(ステップS605;YES、ステップS606)。更に、図14の変倍画素係数生成装置805からの0番目〜3番目の画素のX幅の累積の“DXWIDTH3"が“1”より大きい場合、出力画素1番目は図14の元画素格納装置801のDATA3の値をセットする(ステップS607;YES、ステップS608)。また、図14の変倍画素係数生成装置805からの0番目〜4番目の画素のX幅の累積の“DXWIDTH4"が“1”より大きい場合、出力画素1番目は図14の元画素格納装置801のDATA4の値をセットする(ステップS609;YES、ステップS610)。更に、図14の変倍画素係数生成装置805からの0番目〜5番目の画素のX幅の累積の“DXWIDTH5"が“1”より大きい場合、出力画素1番目は図14の元画素格納装置801のDATA5の値をセットする(ステップS611;YES、ステップS612)。そして、図14の変倍画素係数生成装置805からの0番目〜6番目の画素のX幅の累積の“DXWIDTH6"が“1”より大きい場合、出力画素1番目は図14の元画素格納装置801のDATA6の値をセットする(ステップS613;YES、ステップS614)。図14の変倍画素係数生成装置805からの0番目〜7番目の画素のX幅の累積の“DXWIDTH7"が“1”より大きい場合、出力画素1番目は図14の元画素格納装置801のDATA7の値をセットする(ステップS615;YES、ステップS616)。
【0061】
以下、図30〜図35に図14の変倍画素変換装置の出力画素の2番目〜7番目の各処理フローを示すが、図28及び図29に示す0番目及び1番目の処理と同様であるのでここでは説明を省略する。
【0062】
このように、変倍画素変換装置では、ハーフトーン処理装置の並列処理画素分の画素を求めなければならず、この例では“8”であるため、上記のような例になる。
【0063】
次に、ハーフトーン処理装置について構成を示す図36を用いて詳細に説明する。同図に示すハーフトーン処理装置は、ライトアドレス生成装置1801、デイザパターン記憶装置1802、MUX1803、デイザパターンアドレス生成装置1804、比較パターン切り出し装置1805、並列比較装置1806、固定長データ生成装置1807、ラインメモリ1808、ラインメモリアドレス生成装置1809、コントローラ1810を含んで構成されている。また、ライトアドレス生成装置1801は、図3のメモリアービターI/F201から受け取ったデイザデータをデイザパターン記憶装置1802へ格納するためのアドレスを生成する。デイザパターン記憶装置1802は、図3のメモリアービターI/F201から受け取ったデイザデータを格納する。なお、後述する図41にデイザパターン記憶装置のデイザパターンメモリの32*8のサイズの例を示す。上述したように、図3のメモリアービターI/F201は垂直方向に変倍されるライン数ごとデイザパターンを転送し、このデイザパターン記憶装置1802へ格納する。図41のフォーマットのように、垂直方向の変倍率だけのデイザパターンを格納することができる。図41に示す例では、垂直方向に8倍までの例であるために、このように8ライン分のデイザパターンを格納することができる。また、デイザパターンの水平方向のパターン数はこの例では、MAX32ドットである。MUX1803は、図3のメモリアービターI/F201からのデイザデータの転送時にデイザパターン記憶装置1802のアドレスをライトアドレス生成装置1801へ渡す。デイザパターンアドレス生成装置1804は、図3のパラメータ格納装置204からデイザパターンの大きさなどを受け取り、デイザパターンメモリノアドレスを生成する。比較パターン切り出し装置1805は、デイザパターンメモリから図3のデータ変換処理装置202の水平方向に複数の画素の閾値マトリックスを読み込み、コントローラ1810から、現在処理する画素の数を受け取り、デイザパターンメモリから有効なパターンの先頭から図3のデータ変換処理装置202の水平方向に複数のデータを並列比較装置1806へ転送する。並列比較装置1806は、図3のデータ変換処理装置202で求めた水平方向に複数の変倍後の画素値と、比較パターン切り出し装置1805からの閾値マトリックスとを並列に比較する。固定長データ生成装置1807は、並列比較装置1806で求めた1/0の値をコントローラ1810が示す有効数分だけ、固定長のデータに加えていくことにより、固定長のデータを生成する。ラインメモリ1808は、固定長データ生成装置1807で生成された固定長のデータを垂直方向の変倍後のライン数分のデータを格納する。後述する図43に示すラインメモリフォーマットの例では、垂直方向に8倍までの処理装置の例であるために、8ライン分のデータを格納する。ラインメモリアドレス生成装置1809は固定長データ生成装置1807からのデータをラインメモリ1808へ格納するためのアドレスを生成する。コントローラ1810は、図3の変倍処理装置202から、水平補間された画素の有効数を受け取り、後述する図40のようなフローで図36のハーフトーン処理装置をコントロールする。
【0064】
次に、図37は図36の比較パターン切り出し装置の構成を示すブロック図である。同図に示す比較パターン切り出し装置は、レジスタ1901,1902,1904,1906、シフター1903、加算器1905を有している。また、レジスタ1901は、図36のデイザパターン記憶装置1802からの値を格納する。この例では、図3のデータ変換処理装置202の水平方向に8個処理しているため、1画素が8bitの閾値が8個必要であるため、64bitとなる。レジスタ1902は、レジスタ1901からの値を格納する。このレジスタ1901,1902により、データ変換処理装置の水平方向に2倍のパターンを生成し、シフター1903へ転送する。シフター1903は、レジスタ1901,1902からの図3のデータ変換処理装置202の水平方向に2倍のパターンを受け取り、図14の変倍画素変換装置806からの水平補間された画素の有効数から求めた現在の先頭値から、データ変換処理装置の水平方向に複数のデータをシフトして出力する。レジスタ1904は、シフター1903の値を格納する。加算器1905は、図3のデータ変換処理装置202からの有効数を受け取り、次の先頭値を求めるために現在のシフト値と加算処理を行う。レジスタ1906は、加算器1905で求めた値を格納する。
【0065】
図38は図36の並列比較装置の構成を示すブロック図である。同図に示す例では、図3のデータ変換処理装置202の水平方向の処理数が“8”であるため、比較装置も8個存在する。比較器2001〜2008は、図36の比較パターン切り出し装置1805により切り出された図3のデータ変換処理装置202の水平方向に複数個の閾値と各画素が比較される。
【0066】
図39は図36の固定長データ生成装置の構成を示すブロック図である。同図に示す固定長データ生成装置は、シフター2101、OR装置2102、レジスタ2103,2104,2106、加算器2105を有している。シフター2101は、図36の並列比較装置1806からの図3のデータ変換処理装置202の水平方向に複数個の“1/0”データを受け取り、現在作成中の固定長データの最終の値に合せるためのシフト処理を行う。OR装置2102は、シフター2101でシフトされた値を現在作成中の値とOR処理を行って入れ込む。レジスタ2103は、現在作成中の固定長データを格納し、OR装置2102の新たに入れ込まれた値を格納することにより更新される。レジスタ2104は、OR装置2102で生成される固定長データ幅を全て満たしたデータを格納し、図36のラインメモリ1808へ転送される。加算器2105は、図14の変倍画素変換装置806から有効数を受け取り、次のシフタの先頭値を求めるために、変倍画素変換装置806の現在の固定長データの最終値と加算処理する。レジスタ2106は、固定長データの最終値を格納し、シフター2101のシフタをコントロールする。
【0067】
図40は図36のハーフトーン処理装置の処理を示すフローチャートである。同図において、図36のデイザパターンアドレス生成装置1804が示すデイザパターンメモリより水平のMAX倍率分のデータを並列にリードする(ステップS1301)。そして、図36の比較パターン切り出し装置1805により比較する水平のMAX倍率分をSHFT値の示すアドレスからデイザパターンを切り出す(ステップS1302)。次に、図36の並列比較装置1806により水平のMAX倍率分を並列に比較する(ステップS1303)。その比較結果を図36の固定長データ生成装置1807で有効なドットのみ固定長データに追加していく(ステップS1304)。そして、図36のラインメモリアドレス生成は、図36のラインメモリ1808のアドレスを生成し、の固定長データ生成装置1807のデータをラインメモリ1808へ書き込む(ステップS1305)。その後、図36の比較パターン切り出し装置1805は、SHFT値に有効ドット数を加算し、次の処理に備える(ステップS1306)。全てのデイザパターンに対して処理が終了しているか否かを調べ、終了していないときはSHFT値は水平のMAX倍率以上か否かを調べて以上でない場合はステップS1302へ戻り、以上である場合はSHFT値から水平のMAX倍率を差し引いた値をSHFT値としてステップS1301へ戻って処理を繰り返す。
【0068】
図41は図36のデイザパターン記憶装置の32*8のサイズの例を示す。また、図42に図41のデイザテーブルを使用した処理の推移の例を示す。更に、図43に図36のラインメモリの例を示す。
【0069】
また、図44は図3のデータ変換処理装置202の変倍処理がバイリニア法である場合の全体のフローを示す。同図において、先ず図3のメモリアービターI/F201は、垂直方向の変倍率を求める処理を行う(ステップS1401)。図3のメモリアービターI/F201は、図2のメモリアービター103を介して図2のメモリ109から1ラインの画像データを読み込み、図3のデータ変換処理装置202へ送る(ステップS1402)。また、ステップS1402と同様に、図3のメモリアービターI/F201は、図2のメモリアービター103を介して図2のメモリ109から1ラインの画像データを読み込み、図3のデータ変換処理装置202へ送る(ステップS1403)。なお、バイリニア補間法では後述する図50のようにA,B,C,Dの4点から補間するため、A,Bを格納するラインメモリと、C,Dを格納するラインメモリが必要であり、最初に2ラインを読み込み、その後、C,DのラインをA,Bのラインとし、C,Dの1ラインを読み込んでいく。次に、図3のメモリアービターI/F201は、垂直方向に変倍後のライン数分のデイザデータを読み込み、図3のハーフトーン処理装置203へ送る(ステップS1404)。図3のメモリアービターI/F201はステップS1401で求めた垂直方向の変倍率とデイステイネーション画像の座標Y始点DYSから、垂直方向のDDA(デジタル微分解析)により、変倍後のY始点YSとY終点YEを求める(ステップS1405)。そして、図3のメモリアービターI/F201は変倍後の垂直方向のラインカウンタにステップS1404で求めたYSの値を設定する(ステップS1406)。図3のデータ変換装置202により1ラインの画像処理(変倍、色変換、フィルター処理など)を行う(ステップS1407)。次に、図3のハーフトーン処理装置203により、1ラインの画像処理後の画像データにハーフトーン処理を行う(ステップS1408)。また、図3のハーフトーン処理装置203はハーフトーン処理後の1ラインデータを内部ラインメモリに書き込む(ステップS1409)。更に、図3のメモリアービターI/F201は変倍後の垂直方向のラインカウンタをカウントアップする(ステップS1410)。そして、図3のメモリアービターI/F201は垂直方向のラインカウンタがステップS1404で求めた垂直方向の変倍後のY終点YEを超えているかいないかをチェックし、超えていない場合はステップS1407の処理へ移り(ステップS1411;YES)、超えた場合はステップS1412の処理へ移る(ステップS1411;NO)。図3のメモリアービターI/F201は書き込まれた内蔵ラインメモリから画像処理後のデータを図2のメモリアービター103を介して図2のメモリ109へ画像処理後の画像データを書き込む(ステップS1412)。そして、図3のメモリアービターI/F201は求めた垂直方向の変倍後のY終点YEがデイステイネーション画像の座標Y終点DYEを超えているかいないかをチェックし、超えている場合はステップS1403のフローへ移り(ステップS1413;YES)、等しいか又は超えた場合は処理を終了する(ステップS1413;NO)。
【0070】
図45は垂直方向に縮小する場合のタイミング例を示す図である。同図の(a)に示す例は、縮小倍率が0.5倍の例で、画像処理前の画像データを1つ飛ばしのラインを(奇数ラインのみ)読み込み、デイザパターンデータは順次1ラインごとに読み込み、そして画像処理後のデータを順次1ラインごと書き込んでいく。
ここでは図44のフローのように、最初は2ラインを続けて読み込む。また、この例では、画像データの読み込み処理と画像処理とが並列に処理される。同図の(b)に示す例は、縮小倍率が0.6666倍の例で、画像処理前の画像データを3ラインごと1ラインを飛ばして読み込み、デイザパターンデータは順次1ラインごとに読み込み、そして画像処理後のデータを順次1ラインごと書き込んでいく。ここでも図44のフローのように、最初は2ラインを続けて読み込む。また、この例でも、画像データの読み込み処理と画像処理とが並列に処理される。
【0071】
図46は垂直方向の等倍及び拡大の場合のタイミング例を示す図である。同図の(a)に示す例は、1倍の例で、画像処理前の画像データを順次1ラインごとに読み込み、デイザパターンデータを順次1ラインごとに読み込み、そして画像処理後のデータを順次1ラインごとに書き込んでいく。ここでも図44のフローのように、最初は2ラインを続けて読み込む。また、この例では、画像データの読み込み処理と画像処理とが並列に処理される。同図の(b)に示す例は、105倍の例で、画像処理前の画像データを順次1ラインごとに読み込み、デイザパターンデータを時々2ラインごとに読み込み、そして画像処理後のデータを時々2ラインごと書き込んでいく。ここでも図44のフローのように、最初は2ラインを続けて読み込む。また、この例では、画像データの読み込み処理と画像処理とが並列に処理され、時々2ラインの画像処理を行う。また、同図の(c)に示す例は、2倍の例で、画像処理前の画像データを順次1ラインごとに読み込み、デイザパターンデータを順次2ラインごとに読み込み、そして画像処理後のデータを順次2ライン後と書き込んでいく。ここでも図44のフローのように、最初は2ラインを続けて読み込む。また、この例では、画像データの読み込み処理と画像処理とが並列に処理され、2ラインの画像処理を行う。
【0072】
図47はバイリニア補間法の変倍処理装置の構成を示すブロック図である。同図に示す変倍処理装置は、パラメータ処理装置2201、拡大率生成装置2202、DDA処理装置2203、IX,IYカウンタ装置2204、補間係数生成装置2205、補間処理装置2206を含んで構成されている。また、パラメータ処理装置2201は、入力された画像データを順次、ラインメモリに蓄え2ライン蓄えたところで、バイリニア補間される4点のWCOLA,WCOLB,WCOLC,WCOLDを補間処理装置2206へ転送する。拡大率生成装置2202は、変倍される画像のソース画像の座標X始点SXS及びX終点SXE、Y始点SYS及びY終点SYEと変倍後のデイステイネーション画像の座標X始点DXS及びX終点DXE、Y始点DYS及びY終点DYEからX、Y方向の変倍率RATEX,RATEYを求め、DDA処理装置2203へ転送する。また、DDA処理装置2203は、拡大率生成装置2202からのX,Y方向の変倍率とデイステイネーション画像の座標X始点DXS及びY始点DYSを受け取り、図61の図中○で示す拡大された画素のように、入力された画像の変倍後の座標をDDA(デジタルデジタル微分解析)により、随時求める。この例では、後述する図50のように補間するため補間されるX始点、X終点、Y始点、Y終点を求め、IX,IYカウント処理装置2204と補間係数生成装置2205へ転送される。IX,IYカウント装置2204は、DDA処理装置2203からの補間する方向の始点と終点とY方向の始点と終点を受け取り、図61の図中△で示す補間された画素のX,Y座標を生成し、補間係数生成装置2205へ転送する。また、補間係数生成装置2205は、DDA処理装置2203からの補間する方向の始点と終点とY方向の始点と終点を受け取り、IX,IYカウント装置2204からの補間する画素のX,Y座標から、補間処理装置2206で補間するX,Y方向の補間係数(DRATEY,DRATEX)を求め、補間処理装置2206へ送る。更に、補間処理装置2206は、パラメータ処理装置2201から、補間するデータを受け取り、補間係数生成装置2205から補間する係数を受け取ることにより、パラメータ処理装置2201からのデータを補間することにより、図6のように、拡大された画素間を補間し埋めることにより、拡大画像を生成することにより、変倍処理を実行する。
【0073】
図48は図47の変倍処理装置の処理を示すフローチャートである。同図において、先ず拡大率生成処理装置により、拡大率を求める(ステップS1501)。そして、DDA処理装置により、Y方向(垂直方向)のDDA処理を行い、処理するY始点YSとY終点YEを求める(ステップS1502)。IX,IYカウント処理装置の処理するY座標(水平ライン)にYS座標を指定する(ステップS1503)。IX,IYカウント処理装置の処理するX座標をデイステイネーション画像の座標X始点DXSに初期化する(ステップS1504)。DDA処理装置により、X方向(水平方向)のDDA処理を行い、処理するX始点XSとX終点XEを求める(ステップS1505)。次に、補間データを読み込む補間係数生成処理装置により、現在処理する座標での補間係数を求める(ステップS1506,S1507)。補間処理装置により、拡大された画素間を補間することにより、変倍画像を生成する(ステップS1508)。XEが変倍されたデイステイネーション画像の座標X終点DXEを超えていない場合はステップS1505へ処理を戻す(ステップS1509;YES)。超えている場合はIX,IYカウント処理装置により、次に補間するY座標を求める(ステップS1509;NO、ステップS1510)。その値が補間するY値終点YEを超えていない場合はステップS1504へ処理を戻す(ステップS1511;YES)。YEが変倍されたデイステイネーション画像の座標Y終点DYEを超えていない場合はステップS1502へ処理を戻す(ステップS1512;YES)。
【0074】
図49は図47のパラメータ処理装置の構成を示すブロック図である。同図に示すパラメータ処理装置は、入力された画素の偶数番目の画素を蓄えるレジスタ2301、入力された画素の奇数番目の画素を蓄えるレジスタ2302、ライン分の画素を格納するラインメモリ2303〜2305、ラインメモリ2303〜2305に格納されたデータをコントロールして出力するセレクタ2306、コントローラ2307を含んで構成されている。例えば、現在、ラインメモリ2303、ラインメモリ2304のデータを出力する場合、以下のようにラインメモリ2303が補間される画素A,Bをラインメモリ2304が補間される画素C,Dを出力し、ラインメモリ2305には次の画素を蓄えさせる。
【0075】
このパラメータ処理装置は、図50のようにスキャンライン方向から順次入力された画像データを2ライン分蓄え、順次図51の補間される4点を図52のように出力する。この時(補間される4画素を出力している時)、入力される画素を3本目のラインメモリで順次受け取る。3本目のラインメモリがいっぱいになり、図52のような垂直の補間が全て終わらない場合は、入力される画素を送る装置に対してWAITをかける。そして、図52のように2ラインで蓄えた画素の垂直方向すべて終了すると、蓄えられた3本目の画素と先ほど処理した2ラインの画素の後半の1ラインとから、新たな2ラインの画素を形成し、前記と同様に図52のように、順次補間される4点の画素を出力していく。そして、空いている1ラインのメモリに対して、前記と同様に、3本目のラインメモリとして、入力される画素を順次蓄えていく。
【0076】
図53は図47の拡大率生成装置の構成を示すブロック図である。同図に示す拡大率生成装置は、減算器2401,2402,2405,2406、除算器2403,2407、レジスタ2404,2408を含んで構成されている。このような構成を有する拡大率生成装置は、変倍される画像のソース画像の座標X始点SXS及びX終点SXE、Y始点SYS及びY終点SYEと変倍後のデイステイネーション画像の座標X始点DXS及びX終点DXE、Y始点DYS及びY終点DYEからX、Y方向の変倍率RATEX,RATEYを求め、図47のDDA処理装置2203へ転送する。RATEX=(SXE−SXS)/(DXE−DXS)の演算により、X方向の変倍率(RATEX)を求め、(ソース画像の座標X始点SXS及びX終点SXE、デイステイネーション画像の座標X始点DXS及びX終点DXE)、RATEY=(SYE−SYS)/(DYE−DYS)の演算により、Y方向の変倍率(RATEY)を求め、(ソース画像の座標Y始点SYS、Y終点SYE、デイステイネーション画像の座標Y始点DYS、Y終点DYE)、を求める。
【0077】
図54は図47のDDA処理装置の構成を示すブロック図である。同図に示すDDA処理装置は、MUX2501,2507、レジスタ2502,2503,2505,2506,2508,2509,2511,2512、加算器2504,2510を含んで構成されている。また、MUX2501は、最初のみレジスタ2502に、初期値のデイステイネーション画像の座標X始点DXSを転送し、その後順次加算されていく加算器2504の出力を送る。レジスタ2502は、現在の処理中のX値を格納する。レジスタ2503は、変倍率生成装置で求めたX方向変倍率RATEXを格納する。レジスタ2505は、補間するX終点を格納する。レジスタ2506は、補間するX始点を格納する。MUX2507は、最初のみレジスタ2508に、初期値のデイステイネーション画像の座標Y始点DYSを転送し、その後順次加算されていく加算器2510の出力を送る。レジスタ2508は、現在の処理中のY値を格納する。レジスタ2509は、変倍率生成装置で求めたY方向変倍率RATEYを格納する。レジスタ2511は、補間するY終点を格納する。レジスタ2512は、補間するY始点を格納する。
【0078】
このような構成を有するDDA処理装置によれば、図47の拡大率生成装置2201からのX,Y方向の変倍率とデイステイネーション画像の座標X始点DXS、Y始点DYSを受け取り、図61の図中○で示す拡大された画素のように、入力された画像の変倍後の座標をDDA(デジタル微分解析)により、随時求める。この例では、図51のように補間するため補間されるX始点、X終点、Y始点、Y終点を求め、図47のIX,IYカウント処理装置2204と補間係数生成装置2205へ転送される。また、X方向DDA処理装置は図12のように現在のX座標に変倍率生成装置で求めたX方向変倍率RATEXを順次加算していく構造であり、Y方向DDA処理装置は図54のように現在のY座標に変倍率生成装置で求めたRATEYを順次加算していく構造である。
【0079】
図55は図47の補間係数生成装置の構成を示すブロック図である。同図に示す補間係数生成装置は、減算器2601,2602,2605,2606、除算器2603,2607,2608、レジスタ2604,2609を含んで構成されている。このような構成を有する補間係数生成装置は、図47のDDA処理装置2203からの補間するX方向の始点と終点とY方向の始点と終点を受け取り、図47のIX,IYカウント装置2204からの補間する画素のX,Y座標から、図47の補間処理装置2206で補間するX,Y方向の補間係数(DRATEY,DRATEX)を求め、補間処理装置2206へ送る。DRATEX=(IX‐XS)/(XE−XS)の演算により、X方向の補間係数(DRATEX)を求め、DDA処理装置2203により求めたX方向の始点と終点(XS,XE)、IX,IYカウント装置2204からの補間する画素のX座標(IX)、DRATEY=(IY‐YS)/(YE−YS)の演算により、Y方向の補間係数(DRATEY)を求め、DDA処理装置2203により求めたY方向の始点と終点(YS,YE)、IX,IYカウント装置2204からの補間する画素のY座標(IY)を求める。
【0080】
また、この時、本方式は図52のように順次水平ラインごと求めるため、DRATEYの演算は各ラインごと1回のみ必要なだけであり、演算量が少ない。また、ハードウェア量の減少とスピードの高速化を招く。
【0081】
図56は図47の補間処理装置の構成を示すブロック図である。同図に示す補間処理装置は、垂直補間処理装置2701、水平補間係数生成装置2702、水平補間処理装置2703を含んで構成されている。また、垂直補間処理装置2701は、図47の補間係数生成装置2205で求めた補間係数(DRATEY)により、Y始点から現在のライン(Y座標)の位置の差分値を求め、垂直補間された図51のAV,BVを求めることができる。水平補間係数生成装置2702は、図47の補間係数生成装置2205で求めた補間係数(DRATEX,1/DX)によりこの変倍処理装置が処理可能な水平方向のMAX拡大率まで、水平方向の補間係数を並列に求める。この例では、この変倍処理装置が水平方向に8倍までであるため、8個の水平方向の補間係数を並列に求めている。水平補間処理装置2703は、垂直補間処理装置2701で求めた垂直方向の補間点であるWCOLAV,WCOLBVを受け取り、この2点間を水平補間係数生成装置2702で求めた複数の補間係数から、複数の補間点の値を求める。この時、実際の補間すべき個数は、有効数カウント装置により、カウントされる。
【0082】
このような構成を有する補間処理装置は、図47のパラメータ処理装置2201から、補間するデータを受け取り、補間係数生成装置2205から補間する係数を受け取ることにより、パラメータ処理装置2201からのデータを補間することにより、図57のように、拡大された画素間を補間し埋めることにより、拡大画像を生成することにより、変倍処理を実行する。補間方法として、ここでは、バイリニア補間方法について例で示す。図51にバイリニア補間方法の例を示す。ここでは図52に示すように各ラインを水平方向に順次補間していく、このため、図51の(a)のように、A,C間とB,D間を垂直に補間し、AV,BVを求め、その後図51の(b)のようにAV,BV間を水平に補間し、Pを求める。この場合、ハードウェア構成によっては、求めたBVを次のAVとして再利用することが可能であり、補間演算の減少へつながり、かつハードウェア量の減少とスピードの高速化を招く。
【0083】
図58は図56の垂直補間処理装置の構成を示すブロック図である。なお、ここでの処理は図51の(a)の処理に相当する。同図に示す垂直補間処理装置は、パラメータ処理装置で求めた4点の画素データの左の2つの画素の差を求める減算器2801、補間係数生成装置で求めたDRATEYの値と減算器2801の差分を乗算することにより、差分ないでの位置を求める乗算器2802、乗算器2082で求め値と始点を加算することにより、左端の垂直方向に補間された値を求める加算器2803、加算器2803の値を格納するレジスタ2804、パラメータ処理装置で求めた4点の画素データの右2つの画素の差を求める減算器2805、補間係数生成装置で求めたDRATEYの値と減算器2805の差分を乗算することにより、差分ないでの位置を求める乗算器2806、乗算器2806で求め値と始点を加算することにより、右端の垂直方向に補間された値を求める加算器2807、加算器2807の値を格納するレジスタ2808を含んで構成されている。
【0084】
図59は図56の水平補間係数生成装置の構成を示すブロック図ある。同図に示す水平補間係数生成装置は、補間係数生成装置で求めたDRATEXの値と1/DXと加算することにより、補間係数生成装置で求めたDRATEXの次の水平方向に2つ目の補間係数を求める加算器2901、加算器2907で求めた水平方向に2つ目の補間係数の値と1/DXと加算することにより、補間係数生成装置で求めたDRATEXの次の水平方向に3つ目の補間係数を求める加算器2906、加算器2906で求めた水平方向に3つ目の補間係数の値と1/DXと加算することにより、補間係数生成装置で求めたDRATEXの次の水平方向に4つ目の補間係数を求める加算器2905、加算器2905で求めた水平方向に4つ目の補間係数の値と1/DXと加算することにより、補間係数生成装置で求めたDRATEXの次の水平方向に5つ目の補間係数を求める加算器2904、加算器2904で求めた水平方向に5つ目の補間係数の値と1/DXと加算することにより、補間係数生成装置で求めたDRATEXの次の水平方向に6つ目の補間係数を求める加算器2903、加算器2903で求めた水平方向に6つ目の補間係数の値と1/DXと加算することにより、補間係数生成装置で求めたDRATEXの次の水平方向に7つ目の補間係数を求める加算器2902、加算器2902で求めた水平方向に7つ目の補間係数の値と1/DXと加算することにより、補間係数生成装置で求めたDRATEXの次の水平方向に8つ目の補間係数を求める加算器2901、補間係数生成装置で求めたDRATEXの値を格納するレジスタ2915、加算器2907で求めた水平方向に2つ目の補間係数の値を格納するレジスタ2914、加算器2906で求めた水平方向に3つ目の補間係数の値を格納するレジスタ2913、加算器2905で求めた水平方向に4つ目の補間係数の値を格納するレジスタ2912、加算器2904で求めた水平方向に5つ目の補間係数の値を格納するレジスタ2911、加算器2903で求めた水平方向に6つ目の補間係数の値を格納するレジスタ2910、加算器2902で求めた水平方向に7つ目の補間係数の値を格納するレジスタ2909、加算器2901で求めた水平方向に8つ目の補間係数の値を格納するレジスタ2908を含んで構成されている。
【0085】
図60は図56の水平補間処理装置の構成を示すブロック図である。なお、ここでの処理は図51の(b)の処理に相当する。同図に示す水平補間処理装置は、垂直補間処理装置で求めた垂直方向に補間された2点の画素データの水平方向の差を求める減算器3025、減算器3025で求めた画素の差分と、水平補間係数生成装置で求めた水平方向に1つ目の補間係数とを乗算することにより、差分間での補完される値を求める乗算器3001、乗算器3001での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向補間された1つ目の画素値を求める加算器3009、加算器3009で求めた値を格納するレジスタ3017、減算器3025で求めた画素の差分と、水平補間係数生成装置で求めた水平方向に2つ目の補間係数とを乗算することにより、差分間での補完される値を求める乗算器3002、乗算器3002での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向補間された2つ目の画素値を求める加算器3010、加算器3010で求めた値を格納するレジスタ3018、減算器3025で求めた画素の差分と、水平補間係数生成装置で求めた水平方向に3つ目の補間係数とを乗算することにより、差分間での補完される値を求める乗算器3003、乗算器3003での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向補間された3つ目の画素値を求める加算器3011、加算器3011で求めた値を格納するレジスタ3019、減算器3025で求めた画素の差分と、水平補間係数生成装置で求めた水平方向に4つ目の補間係数とを乗算することにより、差分間での補完される値を求める乗算器3004、乗算器3004での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向補間された4つ目の画素値を求める加算器3012、加算器3012で求めた値を格納するレジスタ3020、減算器3025で求めた画素の差分と、水平補間係数生成装置で求めた水平方向に5つ目の補間係数とを乗算することにより、差分間での補完される値を求める乗算器3005、乗算器3005での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向補間された5つ目の画素値を求める加算器3013、加算器3013で求めた値を格納するレジスタ3021、減算器3025で求めた画素の差分と、水平補間係数生成装置で求めた水平方向に6つ目の補間係数とを乗算することにより、差分間での補完される値を求める乗算器3006、乗算器3006での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向補間された6つ目の画素値を求める加算器3014、加算器3014で求めた値を格納するレジスタ3022、減算器3025で求めた画素の差分と、水平補間係数生成装置で求めた水平方向に7つ目の補間係数とを乗算することにより、差分間での補完される値を求める乗算器3007、乗算器3007での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向補間された7つ目の画素値を求める加算器3015、加算器3015で求めた値を格納するレジスタ3023、減算器3025で求めた画素の差分と、水平補間係数生成装置で求めた水平方向に8つ目の補間係数とを乗算することにより、差分間での補完される値を求める乗算器3008、乗算器3008での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向補間された8つ目の画素値を求める加算器3016、加算器3016で求めた値を格納するレジスタ3024、水平方向に8個の補間係数がどの時点から“1.0”を超えているかを1番目の係数からカウントすることにより、有効数を求める有効数カウント装置3026を含んで構成されている。
【0086】
なお、本発明は上記実施例に限定されるものではなく、特許請求の範囲内の記載であれば多種の変形や置換可能であることは言うまでもない。
【0087】
【発明の効果】
以上説明したように、本発明の画像処理装置は、メモリアービターI/Fとデータ変換処理手段とハーフトーン処理手段とを有している。そして、メモリアービターI/Fは、1ラインの画像データをデータ変換処理手段へ転送し、かつ垂直方向に変倍後の所定ライン分のデイザデータをハーフトーン処理手段へ転送し、ハーフトーン処理手段によるハーフトーン処理後のデータを出力するとともに、垂直方向の変倍処理を管理している。また、データ変換処理手段は、メモリアービターI/Fから転送された画像データに対して水平方向の変倍処理、色変換処理、フィルタ処理等の画像処理を行い、水平方向の各ライン毎の画像処理後のデータをハーフトーン処理手段に転送する。更に、ハーフトーン処理手段は、メモリアービターI/Fからの各ラインの垂直方向の変倍処理後の所定ライン分のデイザデータと、データ変換処理手段からの水平方向の各ライン毎の画像処理後のデータとを受け取り、ハーフトーン処理を行う。よって、画像データの読み込み処理を中断することなく、画像データの読み込みと画像処理が並列に処理可能であり、高速化することができる。
【0089】
更に、データ変換処理手段は、最近傍法により変倍処理を行う変倍処理手段を有する。よって、画像を変倍後に直接ハーフトーン処理を行うために無駄なワークメモリの領域を必要とせず、かつ高速に処理が可能である。
【0090】
また、データ変換処理手段は、バイリニア補間法により変倍処理を行う変倍処理手段を有する。よって、画像を変倍後に直接ハーフトーン処理を行うために無駄なワークメモリの領域を必要とせず、かつ高速に処理が可能である。
【0091】
更に、変倍処理手段は、ハーフトーン処理手段の並列に処理する画素と同じ数の画素を並列に変倍処理することが可能な変倍画素係数生成手段を有している。よって、無駄なワークメモリの領域を必要とせず、高速に処理が可能であり、かつハーフトーン処理手段の並列処理数分の画素を常に変倍処理手段が生成することが可能であるためにより一層高速に処理することができる。
【0092】
また、変倍画素係数生成手段は、ハーフトーン処理手段の並列処理数と同じ数の画素のX幅を求めることが可能な並列X幅生成手段と、その複数のX幅を受け取り、ハーフトーン処理手段の並列処理数へ分けて出力する出力X幅生成手段とを有する。よって、水平方向に並列に変倍処理を行うために高速に処理が可能となる。
【0093】
更に、ハーフトーン処理手段は、水平方向に複数の画素を並列に比較する並列比較手段と、デイザパターンメモリから受け取った水平方向に複数の閾値マトリックスを現在の比較する画素から水平方向に複数の閾値マトリックスを切り出す比較パターン切り出し手段とを有する。よって、水平方向に並列にハーフトーン処理を行うために高速に処理が可能となる。
【0094】
また、比較パターン切り出し手段は、変倍処理手段から受け取った有効画素数に基づいて、デイザパターンメモリから受け取った水平方向に複数の閾値マトリックスを現在の比較する画素から水平方向に複数の閾値マトリックスを切り出す。よって、水平方向に並列にハーフトーン処理を行うために高速に処理が可能となる。
【0095】
更に、ハーフトーン処理手段は、列比較手段から受け取った水平方向に複数の画素を、変倍処理手段から受け取った有効画素数だけ、固定長のデータへ入れ込んでいく固定長生成手段を有する。よって、水平方向に並列にハーフトーン処理を行うために高速に処理が可能となる。
【0096】
また、変倍処理手段は、変倍される画素を所定の幅に変換し、ハーフトーン処理手段が処理可能な水平方向にMAXの並列処理画素数に合わせて出力する。よって、水平方向に並列に変倍処理を行うために高速に処理が可能となる。
【0097】
更に、変倍処理手段は、垂直方向の複数の補間点と、処理可能な水平方向にMAXの拡大率まで並列に求められた水平方向の複数の補間係数とに基づいて、水平方向の複数の補間点を求める水平補間手段と、実際に補間すべき画素の個数を求める有効数カウント手段とを有する。よって、水平方向に並列に変倍処理を行うために高速に処理が可能となる。
【図面の簡単な説明】
【図1】図1は本発明の画像処理装置を適用する多色画像形成装置の構成を示す断面図である。
【図2】図1の電装・制御装置の構成を示すブロック図である。
【図3】本発明の一実施例に係る画像処理装置の構成を示すブロック図である。
【図4】図3のデータ変換処理装置の構成を示す図である。
【図5】図3のデータ変換処理装置202の変倍処理が最近傍法である場合の動作を示すフローチャートである。
【図6】垂直方向に縮小する場合のタイミング例を示す図である。
【図7】垂直方向の等倍及び拡大の場合のタイミング例を示す図である。
【図8】図3のメモリアービターI/Fの詳細な周辺構成を示すブロック図である。
【図9】図3のメモリアービターI/Fの構成を示すブロック図である。
【図10】図9の変倍率生成装置の構成を示すブロック図である。
【図11】図9のY DDA処理装置の構成を示すブロック図である。
【図12】図9のIYカウンタ装置の構成を示すブロック図である。
【図13】図9のメモリアドレス生成装置の構成を示すブロック図である。
【図14】最近傍法の変倍処理装置の構成を示すブロック図である。
【図15】変倍する画素を変倍画素生成装置からの幅に変更する様子を示す図である。
【図16】図14の変倍処理装置の動作を示すフローチャートである。
【図17】図14の元画素格納装置の構成を示すブロック図である。
【図18】図14の変倍率生成装置の構成を示すブロック図である。
【図19】図14のDDA処理装置の構成を示すブロック図である。
【図20】図14のIXカウント装置の構成を示すブロック図である。
【図21】図14の変倍画素係数生成装置の構成を示すブロック図である。
【図22】図21の並列X幅生成装置の構成を示す図である。
【図23】図21の出力X幅生成装置の構成を示すブロック図である。
【図24】図23の累積加算処理装置の構成を示すブロック図である。
【図25】図23のXWIDTH更新処理装置の処理を示すフローチャートである。
【図26】図23の出力XWIDTH生成処理装置の処理を示すフローチャートである。
【図27】図23の累積加算処理装置の構成を示すブロック図である。
【図28】図14の変倍画素変換装置の出力画素の0番目の処理を示すフローチャートである。
【図29】図14の変倍画素変換装置の出力画素の1番目の処理を示すフローチャートである。
【図30】図14の変倍画素変換装置の出力画素の2番目の処理フローを示す図である。
【図31】図14の変倍画素変換装置の出力画素の3番目の処理フローを示す図である。
【図32】図14の変倍画素変換装置の出力画素の4番目の処理フローを示す図である。
【図33】図14の変倍画素変換装置の出力画素の5番目の処理フローを示す図である。
【図34】図14の変倍画素変換装置の出力画素の6番目の処理フローを示す図である。
【図35】図14の変倍画素変換装置の出力画素の7番目の処理フローを示す図である。
【図36】ハーフトーン処理装置の構成を示す図である。
【図37】図36の比較パターン切り出し装置の構成を示すブロック図である。
【図38】図36の並列比較装置の構成を示すブロック図である。
【図39】図36の固定長データ生成装置の構成を示すブロック図である。
【図40】図36のハーフトーン処理装置の処理を示すフローチャートである。
【図41】図36のデイザパターン記憶装置の32*8のサイズの例を示す図である。
【図42】図41のデイザテーブルを使用した処理の推移の例を示す図である。
【図43】図36のラインメモリの例を示す図である。
【図44】図3のデータ変換処理装置202の変倍処理がバイリニア法である場合の全体のフローを示す図である。
【図45】垂直方向に縮小する場合のタイミング例を示す図である。
【図46】垂直方向の等倍及び拡大の場合のタイミング例を示す図である。
【図47】バイリニア補間法の変倍処理装置の構成を示すブロック図である。
【図48】図47の変倍処理装置の処理を示すフローチャートである。
【図49】図47のパラメータ処理装置の構成を示すブロック図である。
【図50】スキャンライン方向から順次入力された画像データを示す図である。
【図51】補間された画像データを示す図である。
【図52】補間される様子を示す図である。
【図53】図47の拡大率生成装置の構成を示すブロック図である。
【図54】図47のDDA処理装置の構成を示すブロック図である。
【図55】図47の補間係数生成装置の構成を示すブロック図である。
【図56】図47の補間処理装置の構成を示すブロック図である。
【図57】拡大された画素間を補間した様子を示す図である。
【図58】図56の垂直補間処理装置の構成を示すブロック図である。
【図59】図56の水平補間係数生成装置の構成を示すブロック図ある。
【図60】図56の水平補間処理装置の構成を示すブロック図である。
【図61】ダイレクトメモリアクセス回路内に格納された画素の様子を示す図である。
【符号の説明】
103;メモリアービター、112;画像処理装置、
201;メモリアービターI/F、202;データ変換処理装置、
203;ハーフトーン処理装置、204;パラメータ格納装置。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus, and more particularly to a halftone processing apparatus and a halftone processing method for converting multivalued image data into a binary image, and more particularly to a high speed method on the controller side of a printer or the like.
[0002]
[Prior art]
Conventionally, in a page printer or the like, it has become difficult to satisfy this requirement only with the performance of the CPU due to the demand for increased resolution and higher speed. In particular, a color printer requires various processes such as various types of image processing, C, M, Y, and K image scaling processing, dither processing, and color conversion processing.
[0003]
In recent years, due to the development of semiconductor technology, it has become possible to perform part of processing performed by a CPU by hardware. Japanese Laid-Open Patent Publication No. 2000-90237 proposes a system in which the function can be changed by realizing the hardware accelerator in an FPGA. The image scaling processing technique is a technique required to obtain an output image having the same size as the input image when the resolutions of the images handled between the input device and the output device are different. As the scaling process, there are known a side method, a bilinear interpolation method and a cubic interpolation method. The nearest neighbor method is an algorithm that interpolates to the pixel closest to the point to be interpolated, and the bilinear interpolation method is a method for obtaining interpolation data by linear interpolation from four points around the point to be interpolated. From the points J, I, G, H, it is expressed by the following equation.
[0004]
F (Z) = f (J) (1-α) (1-β) + f (I) (α) (1-β) + f (G) (1-α) (β) + f (H) (α) (β)
The cubic interpolation method is expressed by the following arithmetic expression from 16 points around the point Z.
Here, C (t) is an approximate expression of the function SinπX / πX constituting the sampling theorem.
[0005]
F (Z) = f (G) C (Xg-Xz) C (Yg-Yz) + f (H) C (Xh-Xz) C (Yh-Yz) + ... + f (V) C (Xv-Xz ) C (Yv-Yz)
C (t) = 1-2t 2 + | t | 3 (0 ≦ | t | <1)
C (t) = 4-8 | t | +5 | t | 2- | t | 3 (1 ≦ | t | <2)
C (0) = 0 (2 ≦ | t |)
[0006]
When these processing methods are compared, the nearest neighbor method is light in processing, but the image quality is not so good. Processing in the bilinear interpolation method is normal, and image quality is normal. Although the processing in the cubic interpolation method is heavy, it is known that the image quality is good.
[0007]
As a conventional example for generating halftone data at high speed, there is JP-A-6-6606 (hereinafter referred to as Conventional Example 1). In Conventional Example 1, one line of the threshold matrix is alternately transferred to a plurality of high-speed memories separately from the threshold matrix data memory, and halftone processing is executed by reading the threshold data from the high-speed memory.
[0008]
[Problems to be solved by the invention]
However, the conventional example 1 is aimed at generating halftones at high speed with a small amount of high-speed memory. Basically, it cannot be expected to dramatically increase the processing speed.
[0009]
In JP-A-2000-92321 (hereinafter referred to as Conventional Example 2) and JP-A-2000-165672 (hereinafter referred to as Conventional Example 3), the threshold data read from the threshold matrix memory is reused until one scanning line is completed. All the threshold data to be applied to the processing is taken into the register as possible, and this is selectively output to a plurality of comparison means to execute parallel comparison processing. The threshold data set in the register is sequentially shifted and used repeatedly. However, in this system, in a system having one main memory (a system that does not have another memory for storing dither), a dither pattern for each scanning line in a system that performs scaling processing and halftone processing in parallel. In the reading of the image data, it is conceivable to stop the reading process of the image data necessary for the scaling process or to stop the halftone process, and as a result, the processing speed of the system cannot be increased.
[0010]
Japanese Patent Application Laid-Open No. 2001-150739 (hereinafter referred to as Conventional Example 4) has a magnification processing apparatus and a halftone processing apparatus using the nearest neighbor method, and a method of using a dither memory is disclosed in the halftone processing apparatus. ing. For example, when a 16 * 16 matrix dither pattern is employed, the amount of dither data is 16 lines. It is uneconomical to provide a memory in which all such a large number of threshold values are stored. In this case, it is preferable to provide a direct memory access circuit as shown by a broken line in FIG. 61 in which dither data is stored in the RAM and is received by being divided by a predetermined amount at a predetermined timing. It is also possible to control four binarized data by sequentially supplying four threshold values for one pixel of data. The data transfer clock after the binarization process may be quadrupled with respect to the data transfer clock before the binarization process.
[0011]
Furthermore, as described above, the nearest neighbor method, the bilinear interpolation method, the cubic interpolation method, and the like are known as the scaling processing methods. Conventionally, the scaling processing is performed on the source image in the CPU work area. After that, halftone processing was performed and the band buffer was written. However, this method requires a large work area of the CPU and a work area of the same size as the band memory, which is the size of the image MAX.
[0012]
The present invention is for solving these problems, and dither data is read in batches for the number of lines after scaling in the vertical direction, and the data after image processing is read in the line memory in the vertical direction. The number of lines after scaling is stored, and then written to the memory all at once, by performing parallel scaling processing and halftone processing in parallel without interrupting the image data reading process, An object of the present invention is to provide an image processing apparatus capable of reducing the memory cost and realizing high speed. In addition, in order to constantly supply pixels corresponding to the number of parallel processing pixels of the halftone processing device, an image processing device capable of speeding up the processing by performing parallel processing for the same parallel processing pixels in the scaling process The purpose is to provide.
[0013]
[Means for Solving the Problems]
In order to solve the above problems, the image processing apparatus of the present invention includes a memory arbiter I / F, data conversion processing means, and halftone processing means. Then, the memory arbiter I / F converts one line of image data to the data conversion processing means. Forward The dither data for a predetermined line after scaling in the vertical direction is transferred to the halftone processing means, Halftone processing by halftone processing means It outputs the subsequent data and manages the scaling process in the vertical direction. Further, the data conversion processing means performs image processing such as horizontal scaling processing, color conversion processing, filter processing, etc. on the image data transferred from the memory arbiter I / F, and performs image processing for each horizontal line. The processed data is transferred to the halftone processing means. Further, the halftone processing means outputs dither data for a predetermined line after the scaling process in the vertical direction of each line from the memory arbiter I / F, and image processing for each line in the horizontal direction from the data conversion processing means. Receive data and perform halftone processing. Therefore, reading of image data and image processing can be performed in parallel without interrupting the reading processing of image data, and the speed can be increased.
[0015]
In addition, data conversion processing The means includes scaling processing means for performing scaling processing by the nearest neighbor method. Therefore, since a halftone process is directly performed after scaling the image, a wasteful work memory area is not required and the process can be performed at high speed.
[0016]
Also data conversion processing The means includes scaling processing means for performing scaling processing by bilinear interpolation. Therefore, since a halftone process is directly performed after scaling the image, a wasteful work memory area is not required and the process can be performed at high speed.
[0017]
Further, the scaling processing means includes scaling pixel coefficient generation means capable of scaling the same number of pixels as the pixels processed in parallel of the halftone processing means. ing . Therefore, it is possible to perform processing at high speed without requiring a wasteful work memory area, and the scaling processing means can always generate pixels corresponding to the number of parallel processes of the halftone processing means. It can be processed at high speed.
[0018]
The scaling pixel coefficient generation means receives parallel X width generation means capable of obtaining the X width of the same number of pixels as the parallel processing number of the halftone processing means, and receives the plurality of X widths, and performs halftone processing. Output X width generating means for outputting the divided number of parallel processes. Therefore, since the scaling process is performed in parallel in the horizontal direction, the processing can be performed at high speed.
[0019]
Further, the halftone processing means includes a parallel comparison means for comparing a plurality of pixels in the horizontal direction in parallel, and a plurality of threshold matrixes in the horizontal direction received from the dither pattern memory, and a plurality of pixels in the horizontal direction from the current comparison pixels. A comparison pattern cutout means for cutting out the threshold matrix. Therefore, since halftone processing is performed in parallel in the horizontal direction, processing can be performed at high speed.
[0020]
In addition, the comparison pattern cut-out means obtains the number of effective pixels received from the scaling processing means. On the basis of the, A plurality of threshold matrixes in the horizontal direction received from the dither pattern memory are cut out in the horizontal direction from the current pixel to be compared. Therefore, since halftone processing is performed in parallel in the horizontal direction, processing can be performed at high speed.
[0021]
Furthermore, the halftone processing means common There is a fixed length generation means for inserting a plurality of pixels received from the column comparison means into fixed length data by the number of effective pixels received from the scaling processing means. Therefore, since halftone processing is performed in parallel in the horizontal direction, processing can be performed at high speed.
[0022]
The scaling processing means is The pixel to be scaled is converted to a predetermined width, and output in accordance with the number of parallel processing pixels of MAX in the horizontal direction that can be processed by the halftone processing means. . Therefore, since the scaling process is performed in parallel in the horizontal direction, the processing can be performed at high speed.
[0023]
Further, the scaling processing means is based on a plurality of interpolation points in the vertical direction and a plurality of interpolation coefficients in the horizontal direction obtained in parallel up to the enlargement ratio of MAX in the processable horizontal direction. Horizontal Horizontal interpolation means for obtaining a plurality of interpolation points and effective number counting means for obtaining the number of pixels to be actually interpolated. Therefore, since the scaling process is performed in parallel in the horizontal direction, the processing can be performed at high speed.
[0024]
DETAILED DESCRIPTION OF THE INVENTION
The image processing apparatus of the present invention includes a memory arbiter I / F, data conversion processing means, and halftone processing means. Then, the memory arbiter I / F converts one line of image data to the data conversion processing means. Forward The dither data for a predetermined line after scaling in the vertical direction is transferred to the halftone processing means, Halftone processing by halftone processing means It outputs the subsequent data and manages the scaling process in the vertical direction. Further, the data conversion processing means performs image processing such as horizontal scaling processing, color conversion processing, filter processing, etc. on the image data transferred from the memory arbiter I / F, and performs image processing for each horizontal line. The processed data is transferred to the halftone processing means. Further, the halftone processing means outputs dither data for a predetermined line after the scaling process in the vertical direction of each line from the memory arbiter I / F, and image processing for each line in the horizontal direction from the data conversion processing means. Receive data and perform halftone processing.
[0025]
【Example】
FIG. 1 is a sectional view showing the configuration of a multicolor image forming apparatus to which the image processing apparatus of the present invention is applied. According to the multicolor image forming apparatus shown in FIG. 1, a belt-like photosensitive member 1 as an image carrier is rotatably supported by rotating rollers 2 and 3, and an arrow is shown by driving the rotating rollers 2 and 3. It is rotated in the A direction. On the outer periphery of the photoreceptor 1, a charging device 4 as a charging unit, a static elimination lamp L, and a cleaning blade 15 </ b> A for the photoreceptor 1 are arranged. At the downstream position of the charging device 4, there is an optical writing unit that is irradiated with laser light emitted from a laser writing unit 5 that is optical writing means. A multi-color developing device 6 in which a plurality of developing units (developing means) are supported in a switchable manner is disposed downstream of the optical writing unit. The multicolor developing device 6 includes a yellow developing unit, a magenta developing unit, and a cyan developing unit for each toner color to be accommodated. Further, a black developing unit 7 containing black toner is provided on the upper part of the multicolor developing device 6. Any one of these development units moves to a developable position in synchronization with the development timing of the corresponding color. The multicolor developing device 6 has a function of selecting any developing unit by rotating 120 degrees on the circumference. When these developing units operate, the black developing unit 7 moves to a position separated from the photoreceptor 1. The movement is performed by the rotation of the cam 45. The laser writing unit 5 sequentially generates laser light according to image forming signals (writing information) of a plurality of colors from a laser light source (not shown), and periodically uses the polygon mirror 5B rotated by the polygon motor 5A. Then, the surface of the charged photoreceptor 1 is scanned through the fθ lens 5C and the mirror 5D, and an electrostatic latent image is formed on the surface.
[0026]
Then, the electrostatic latent image formed on the surface of the photoreceptor 1 is developed with toner from the corresponding developing unit, and a toner image is formed and held. The intermediate transfer belt 10 is adjacent to the photoreceptor 1 and is supported by rotating rollers 11 and 12 so as to be rotatable in the direction indicated by the arrow B. The toner image on the photoreceptor 1 is transferred onto the surface of the intermediate transfer belt 10 by a transfer brush (first transfer means) 13 on the back side of the intermediate transfer belt 10. The surface of the photoreceptor 1 is cleaned for each color by the cleaning blade 15A, and a toner image of a predetermined color is formed on the surface. Each time the intermediate transfer belt 10 is rotated, the toner image on the photosensitive member 1 is transferred to the same position on the surface, and a plurality of color toner images are superimposed and held on the intermediate transfer belt 10. The Thereafter, the toner image is transferred to a recording medium such as paper or plastic. At the time of transfer onto the paper, the paper stored in the paper feeding device (paper feeding cassette) 17 is fed out by the paper feeding roller 18 and transported by the transporting roller 19, and is temporarily applied to the registration roller pair 20. After being stopped, the toner image is transferred to the nip between the intermediate transfer belt 10 and the transfer roller (second transfer means) 14 at a timing so that the transfer position of the toner image becomes normal. Then, after the toner images of a plurality of colors on the intermediate transfer belt 10 are collectively transferred by the action of the transfer roller 14, the sheet is sent to the fixing device 50, where the toner image is fixed, and then the paper discharge roller pair 51. As a result, the paper is discharged to the paper discharge stack 52 at the top of the main body frame 9.
[0027]
The intermediate transfer belt 10 is provided with a cleaning device 16 for the intermediate transfer belt 10 at a portion of the rotation roller 11 so that the cleaning blade 16A can be contacted and separated via a cleaning blade contacting / separating arm 16C. In the process of receiving the toner image from the photoreceptor 1, the cleaning blade 16A is separated from the intermediate transfer belt 10 and comes into contact after the toner image is transferred from the intermediate transfer belt 10 to the paper. The residual toner after the toner is transferred is scraped off. As described above, the cleaning blade 16A is for the photoreceptor 1 and the intermediate transfer belt 10. Waste toner scraped by these blades is stored in a collection container 15. The collection container 15 is replaced as appropriate. An auger 16B provided inside the cleaning device 16 for the intermediate transfer belt 10 conveys waste toner scraped off by the cleaning blade 16A and sends it to the collection container 15 by a conveying means (not shown).
[0028]
The unitized process cartridge 31 includes a photosensitive member 1, a charging device 4, an intermediate transfer belt 10, a cleaning device 16, a conveyance guide 30 that forms a sheet conveyance path, and the like, and is configured so that it can be replaced at the end of its life. ing. In addition to the replacement of the process cartridge 31, the multi-color developing device 6, the black developing unit 7 and the like are also replaced at the end of their service life. However, in order to facilitate the interchangeability and processing of jammed paper, Has a structure that can be opened and closed about the support shaft 9A.
[0029]
In addition, an electrical / control device 60 is accommodated on the left side of FIG. Above that, a fan 58 is provided, which exhausts air to prevent the temperature inside the machine from rising excessively. On the right side of the figure, another relatively small paper feeder 59 is provided. In this embodiment, the intermediate transfer belt 10 is used as an intermediate transfer member, but an intermediate transfer drum can also be used.
[0030]
FIG. 2 is a block diagram showing the configuration of the electrical / control apparatus of FIG. In the figure, the electrical / control apparatus mainly has an image memory accelerator 101 for operating the image memory 109, is controlled by the CPU 107, receives image data from a host computer (not shown) via the network, and sends it to the memory 109. The image data is transferred to the engine controller 113 and printed out. At this time, communication with each host, control of the image memory 108, obtaining information operated from the panel 16, bus control with a peripheral such as a printer engine controller, and the like are performed. The bus controller 101 performs bus arbitration with each peripheral controller connected to the bus 117. The memory arbiter 103 performs arbitration between the memory 109 and various controllers. The local I / F 104 is an interface such as a ROM 105. The ROM 105 stores various programs and font information such as characters. A CPU I / F 106 is an interface of the CPU 107. A CPU 107 controls the entire printer apparatus. The memory controller 108 controls the memory 109 and is connected to various controllers and the CPU 107 via the memory arbiter 108. The memory 109 stores image data, code data thereof, a program of the CPU 107, and the like. The communication controller 110 is connected to a network, receives various data and commands from the network, and is connected to various controllers via the memory arbiter 103. The image processing apparatus 112 reads an image from the memory 109 according to a command from the CPU 107, and writes the image after image processing to the memory 109 after the image processing. The engine controller 113 is connected to the bus 117 and controls the printer engine 114. The panel controller 115 controls the panel 116. The panel 116 is a display device that notifies the printer device of operations from the user. A bus 117 connects the image memory accelerator 101 and various peripheral controllers. The DMA 111 performs direct memory access between the memory controller 108 and the engine controller 113 connected to the bus 117.
[0031]
FIG. 3 is a block diagram showing the configuration of the image processing apparatus according to an embodiment of the present invention. In the figure, the image processing device 112 includes a memory arbiter I / F 201, a data conversion processing device 202, a halftone processing device 203, and a parameter storage device 204.
[0032]
The memory arbiter I / F 201 arbitrates requests to the memory arbiter 103 for the image reading process of the image processing apparatus 112, the reading process of the dither data, and the writing process of the processed image, and sends the image data to the data conversion processing apparatus 202. The dither data is transferred to the halftone processing device 203, or the image-processed data from the halftone processing device 203 is received and transferred to the memory arbiter 103. It also manages the scaling process in the vertical direction, requests image data and dither data necessary for it through the memory arbiter 103, and transfers the processed image to the memory arbiter 103.
[0033]
The data conversion processing device 202 also receives horizontal line image data from the memory arbiter I / F 201, and performs horizontal scaling processing, color conversion processing, filter processing, and image code decoding when the image data is a code. Processing is performed, and after conversion to image data, the above scaling processing, color conversion processing, filter processing, and the like are executed, and the processing results are transferred to the halftone processing device 203. Here, the detailed configuration of the data conversion processing device 202 is shown in FIG.
[0034]
Further, the halftone processing device 203 receives dither data corresponding to the number of lines after scaling of each line in the vertical direction from the memory arbiter I / F 201, and receives the image processed data from the data conversion processing device 202 for each horizontal line. Receive and execute halftone processing.
[0035]
The parameter storage device 204 stores necessary parameters for the memory arbiter I / F 201, the data conversion processing device 202, and the halftone processing device 203 set by the CPU or the like.
[0036]
Next, the operation when the scaling process of the data conversion processing device 202 of FIG. 3 is the nearest neighbor method will be described with reference to FIG.
First, the memory arbiter I / F 201 in FIG. 3 performs processing for obtaining a scaling factor in the vertical direction (step S101). The memory arbiter I / F 201 reads one line of image data from the memory 109 in FIG. 2 via the memory arbiter 103 in FIG. 2 and sends it to the data conversion processing device 202 in FIG. 3 (step S102). The memory arbiter I / F 201 reads dither data for the number of lines after scaling in the vertical direction, and sends the dither data to the halftone processing device 203 in FIG. 3 (step S103). The memory arbiter I / F 201 obtains the Y start point YS and the Y end point YE after the scaling by the vertical DDA (digital differential analysis) from the obtained vertical scaling factor and the coordinate Y starting point DYS of the destination image (step) S104). Then, the memory arbiter I / F 201 sets the obtained YS value in the line counter in the vertical direction after scaling (step S105). Thereafter, the data conversion processing device 202 performs one-line image processing (magnification, color conversion, filter processing, etc.) (step S106). The halftone processing device 203 performs halftone processing on the image data after one-line image processing (step S107). Then, the halftone processing device 203 writes the one line data after the halftone processing into the internal line memory (step S108). The memory arbiter I / F 101 counts up the line counter in the vertical direction after scaling (step S109). Further, the memory arbiter I / F 201 checks whether or not the Y end point YE after the vertical scaling obtained by the vertical line counter is exceeded. If not, the process proceeds to step S106 (step S110). YES), if equal or exceeded, the image processed data is written from the built-in line memory written by the memory arbiter I / F 201 to the memory 109 via the memory arbiter 103 (step S110). NO, step S111). Then, the memory arbiter I / F 201 checks whether or not the obtained Y end point YE after scaling in the vertical direction exceeds the coordinate Y end point DYE of the destination image, and if so, the process proceeds to step S102 ( Step S112; YES), if equal or exceeded, the process is terminated (Step S112; NO).
[0037]
FIG. 6 is a diagram illustrating an example of timing in the case of reduction in the vertical direction. The example shown in (a) of the figure is an example in which the reduction ratio is 0.5 times, and a line skipping one image data before image processing is read (only odd lines), and dither pattern data is sequentially one line. In this example, data is read and data after image processing is sequentially written line by line. In this example, image data reading processing and image processing are performed in parallel. The example shown in (b) of the figure is an example of 0.6666 times, and the image data before image processing is read by skipping one line every three lines, and the dither pattern data is sequentially read line by line. In this example, the data after image processing is sequentially written for each line. Also in this example, image data reading processing and image processing are performed in parallel.
[0038]
FIG. 7 is a diagram illustrating an example of timing in the case of vertical scaling and enlargement. The example shown in (a) of the figure is an example of an equal magnification, in which image data before image processing is sequentially read line by line, dither pattern data is sequentially read line by line, and data after image processing is sequentially read. This is an example of writing every line. In this example, image data reading processing and image processing are performed in parallel. The example shown in FIG. 5B is an example of 1.5 times. Image data before image processing is sequentially read line by line, dither pattern data is sometimes read every two lines, and data after image processing is obtained. Is written every two lines. In this example, image data reading processing and image processing are processed in parallel, and two-line image processing is sometimes performed. The example of (c) in the figure is a double example. Image data before image processing is sequentially read for each line, dither pattern data is sequentially read for every two lines, and data after image processing is sequentially 2 This is an example of writing for each line. In this example, the image data reading process and the image process are processed in parallel, and two-line image processing is performed.
[0039]
Next, FIG. 8 is a block diagram showing a detailed peripheral configuration of the memory arbiter I / F of FIG. The memory arbiter I / F 201 is connected to the memory arbiter 103, and the memory arbiter 103 arbitrates memory access such as memory access from the CPU through the CPU I / F 106 in FIG. 2 and memory access from the local I / F 104 in FIG. When there is a memory access from the medium, a memory access right is given to the medium having a high priority, the memory access is performed, and another medium is subjected to a standby process. The memory arbiter I / F 201 is connected to the memory arbiter 103 as the image processing device 112 in FIG. 2, and as the image processing device, requests the memory arbiter 103 to access the memory 109 in FIG. The memory arbiter 103 is requested to read the image data, and the image data is read and transferred to the data conversion processing device 202. When the data conversion processing device 202 has an image code decoding processing device, the image data is subjected to the above processing as code data. Also, it requests the memory arbiter 103 to read dither data, reads the dither data, transfers it to the halftone processing device 203, and requests the memory arbiter 103 to write image data after the image processing of the halftone processing device 203. The subsequent data is transferred to the memory arbiter 103.
[0040]
FIG. 9 is a block diagram showing a configuration of the memory arbiter I / F of FIG. In the figure, the memory arbiter I / F 201 includes a scaling factor generation device 301, a Y DDA processing device 302, an IY counter device 303, a memory address generation device 304, a MUX 305, and a controller 306. The scaling factor generation apparatus 301 calculates the scaling factor RATEY in the Y direction from the coordinate Y start point SYS and Y end point SYE of the source image of the image to be scaled, and the coordinate Y start point DYS and Y end point DYE of the destination image after scaling. And transfer it to the Y DDA processor 302. Further, the Y DDA processing device 302 receives the scaling factor in the Y direction and the coordinate Y start point DYS of the destination image from the scaling factor generator 301, and looks like an enlarged pixel indicated by a circle in the vertical direction diagram of FIG. Then, the Y coordinate after scaling of the input image is obtained by DDA (digital differential analysis) to obtain the Y start point YS and the Y end point YE, the difference (number of lines after scaling) DY is obtained, and the IY count processing device 303 and the memory address generator 304. Further, the IY count unit 303 receives the Y start point YS and Y end point YE after scaling from the Y DDA processing unit 302, and the data conversion processing unit 202 and halftone processing unit from the Y start point after scaling to the Y end point. Each time the processing of one line 203 is completed, the line is counted and controlled, and compared with the coordinate Y end point of the destination image to control the end of the image processing. Further, the memory address generation device 304 has an image data read address, a dither data read address, and an image data write address after image processing, which are memory addresses for accessing the memory 109 of FIG. 2 via the memory arbiter 103. Calculate At this time, the number of lines after scaling is received from the Y DDA processor 302, the number of dither data lines (data number) to be read and the number of lines (data number) for writing the processed image are calculated, and a memory address is generated. To go. Further, the MUX 305 switches the transfer of data read from the memory arbiter 103 to the data conversion processing device 202 and the halftone processing device 203 according to the type of data. The controller 306 controls the memory arbiter I / F 201 and the image processing apparatus 112 shown in FIG.
[0041]
FIG. 10 is a block diagram showing a configuration of the scaling factor generating apparatus of FIG. The scaling factor generating apparatus shown in the figure includes subtracters 401 and 402, a divider 403, and a register 404. According to the scaling factor generating apparatus having such a configuration, the coordinate Y start point SYS and Y end point SYE of the source image of the image to be scaled, and the coordinate Y start point DYS and Y end point DYE of the destination image after scaling. 9 to obtain the scaling factor RATEY in the Y direction and transfer it to the Y DDA processing device 302 in FIG. As shown in FIG. 10, the scaling factor (RATEY) in the Y direction is obtained by the calculation of RATEY = (SYE-SYS) / (DYE-DYS), and the coordinates Y start point SYS and Y end point SYE of the source image, the detainment image The coordinates Y start point DYS and Y end point DYE are obtained.
[0042]
FIG. 11 is a block diagram showing the configuration of the Y DDA processing apparatus of FIG. The Y DDA processing apparatus shown in the figure includes a MUX 501, a register 502 for storing the Y value currently being processed, a register 503 for storing the Y-direction scaling ratio RATEY, an adder 504, and a register for storing the Y end point after scaling. 505, a register 506 for storing the Y start point after scaling, and a subtracter 507 for subtracting the positive number part of the Y start point from the positive end part of the Y end point of the register 505 to obtain the line number DY after scaling. Has been. According to the Y DDA processing apparatus having such a configuration, the Y-direction scaling factor and the coordinates Y start point DYS of the destination image are received from the scaling factor generating unit 301 in FIG. Like the enlarged pixel indicated by ○, the Y coordinate after scaling of the input image is obtained by DDA (digital differential analysis) to obtain the Y start point YS and the Y end point YE, and the difference (line after scaling) Number) DY is obtained and transferred to the IY count processor 303 and the memory address generator 304 in FIG.
[0043]
FIG. 12 is a block diagram showing the configuration of the IY counter device of FIG. 9 compares the Y end point after scaling from the Y DDA processing unit 302 in FIG. 9 with the coordinate Y end point DYE of the destination image, and transfers the result YENDFL to the controller 306 in FIG. Comparator 601, MUX 602 that sends the Y start point after scaling from Y DDA processor 302 of FIG. 9 to register 603 only at the beginning, and then sends the output of adder 604 that is sequentially added, Y value currently being processed 3, an adder 604 that counts a line each time processing of one line of the data conversion processing device 202 of FIG. 3 and the halftone processing device 203 of FIG. 3 is completed, and the Y value currently being processed 9 is compared with the Y end point after scaling from the Y DDA processing device 302 in FIG. 9 and the result IYENDFL is transferred to the controller 306 in FIG. It is configured to include a. According to the IY counter device having such a configuration, the Y start point YS and Y end point YE after scaling are received from the Y DDA processing unit 302 of FIG. 9, and the Y start point and Y end point after scaling are shown in FIG. The data conversion processing device 202 and the halftone processing device 203 of FIG. 3 each time the processing of one line is completed, the line is counted, controlled, and compared with the coordinate image Y end point of the destination image, and the image processing ends. Control.
[0044]
FIG. 13 is a block diagram showing the configuration of the memory address generation device of FIG. The memory address generation device shown in FIG. 3 is set with the image head address from the parameter storage device 204 of FIG. 3 as an initial value, and thereafter reads the address of the image data before image processing for each line as shown in FIG. The image data address generation device 701 to be generated, the dither data to which the dither head address is set from the parameter storage device 204 of FIG. 3 as the initial value, the line number after scaling from the Y DDA processing device 302 of FIG. The number of data lines (data amount) is calculated, and as shown in FIG. 6, a post-processing image head address is set from the parameter data storage device 204 of FIG. 3 as an initial value. And receiving the number of lines after scaling from the Y DDA processor 302 of FIG. As shown in FIG. 6, the post-processing image data address generation device 703 and the MUX 704 are generated to calculate the number of lines (data amount) of post-processing image data. Yes. According to the memory address generation device having such a configuration, an image data read address, which is a memory address for accessing the memory 109 of FIG. 2 via the memory arbiter 103 of FIG. 2, a dither data read address, The image data write address after image processing is calculated. At this time, the number of lines after scaling is received from the Y DDA processor 302 of FIG. 3, and the number of lines of dither data to be read (number of data) and the number of lines for writing the processed image (number of data) are calculated, and the memory address Will be generated.
[0045]
FIG. 14 is a block diagram showing the configuration of the nearest neighbor method magnification processing apparatus. The scaling processing device shown in the figure includes an original pixel storage device 801, a scaling factor generation device 802, a DDA processing device 803, an IX count device 804, a scaling pixel coefficient generation device 805, a scaling pixel conversion device 806, and a controller 807. It is configured to include.
[0046]
Further, the original pixel storage device 801 stores the pixels to be processed in parallel by the halftone processing device and transfers them to the scaling pixel conversion device 806. The scaling factor generation device 802 calculates the scaling factor RATEX in the X direction from the coordinates X start point SXS and X end point SXE of the source image of the image to be scaled, and the coordinate X start point DXS and X end point DXE of the destination image after scaling. It is obtained and transferred to the DDA processing device 803. The DDA processing device 803 receives the scaling factor in the X direction and the coordinate X start point DXS of the destination image from the scaling factor generation device 802 and inputs them as shown in the enlarged pixel indicated by a circle in FIG. The coordinates after scaling of the image are obtained as needed by DDA (digital differential analysis). In this example, as shown in FIG. 8, the X start point XS and X end point XE to be interpolated are obtained and transferred to the IX count processing device 804 and the scaling pixel coefficient generation device 805. The IX counting unit 804 receives the start point and end point in the Y direction from the DDA processing unit 803, generates the Y coordinate of the interpolated pixel indicated by Δ in FIG. 61, and sends the X coordinate equal to the X end point DXE to the controller 807. This is notified by the XENDFL signal. The scaling pixel coefficient generation device 805 receives the start point XS in the interpolation direction from the DDA processing device 803 and the scaling factor RATEX from the scaling factor generation device 802, and outputs the width of each pixel output by the scaling pixel generation device. The scaling pixel conversion device 806 performs scaling processing on the pixel. At this time, the MAX number output from the scaling pixel conversion device 806 is up to the MAX pixel value that can be processed by the halftone processing device. In addition, since the scaling factor is 1, the output of the scaling pixel generation device also corresponds to the pixel value of MAX that can be processed by the halftone processing device. For this reason, when the scaling factor is 1 or more, it is necessary to output each MAX pixel value that can be processed by the halftone processing device over a plurality of clocks. The scaling pixel conversion device 806 receives the pixels to be scaled from the scaling pixel generation device, receives the width of each pixel output from the scaling pixel generation device from the scaling pixel coefficient generation device 805, as shown in FIG. The scaling process is executed by changing the pixel to be scaled to the width from the scaled pixel generation device. The controller 807 controls the entire magnification processing apparatus.
[0047]
FIG. 16 is a flowchart showing the operation of the scaling processing apparatus of FIG. In the figure, first, a scaling factor is obtained by the scaling factor generator 802 of FIG. 14 (step S201). The DDA in the X direction is initialized (step S202). The DDA processing device 803 in FIG. 14 performs DDA processing in the X direction (horizontal direction) to obtain the X start point XS and the X end point XE to be processed (step S203). The magnification data is read from the internal line memory (step S204). The scaled pixel coefficient generation device 805 in FIG. 14 obtains the width of the read pixel to be scaled (step S205). The scaling pixel conversion device 806 in FIG. 14 converts the pixel to be scaled into the obtained width, and outputs it according to the number of parallel processing pixels of the MAX of the halftone processing device (step S206). If XE does not exceed the coordinate X end point DXE of the scaled destination image, the process returns to step S203 (step S207; YES). If it is the same as or exceeds DXE, the process is terminated (step S207; NO).
[0048]
FIG. 17 is a block diagram showing the configuration of the original pixel storage device of FIG. In the figure, registers 901 to 908 sequentially store data and store pixels corresponding to MAX parallel processing pixels of the halftone processing device. The line memory 909 connects and stores the stored image data in parallel by the registers 901 to 908 so that reading of the image data from the main memory and image processing can be performed in parallel, and the contents of the registers 901 to 908 are read at the time of reading. Can be read in parallel. The line memory controller 910 generates line memory addresses and controls the entire original pixel storage device.
[0049]
FIG. 18 is a block diagram showing a configuration of the variable magnification generation apparatus in FIG. The scaling factor generating apparatus shown in the figure includes subtracters 1001, 1002, a divider 1003, and a register 1004. According to the scaling factor generating apparatus having such a configuration, the coordinate X start point SXS and X end point SXE of the source image of the image to be scaled as described above, and the coordinate X start point DXS of the destination image after scaling, A magnification RATEX in the X direction is obtained from the X end point DXE and transferred to the DDA processing device 803 in FIG. That is, as shown in FIG. 17, the magnification in the X direction (RATEX) is obtained by the calculation of RATEX = (SXE-SXS) / (DXE-DXS), and the coordinates X start point SXS and X end point SXE of the source image, date stay The coordinates X start point DXS and X end point DXE of the nation image are obtained.
[0050]
FIG. 19 is a block diagram showing the configuration of the DDA processing apparatus of FIG. The DDA processing apparatus shown in FIG. 1 transfers the initial value X of the destination image DXS to the register 1102 only for the first time, and then sends the output of the adder 1104 which is sequentially added to the MUX 1101 which is currently being processed. A register 1102 for storing the X value, a multiplier 1103 for multiplying the parallel processing pixel number of the X-direction scaling ratio RATEX and the MAX of the halftone processing device to obtain a fine difference for a plurality of pixels, and a value obtained by the multiplier 1103 Register 1104, an adder 1105, a register 1106 for storing the X end point to be interpolated, and a register 1107 for storing the X start point to be interpolated. As shown in FIG. 61, an enlarged pixel indicated by a circle in FIG. 61 receives the magnifications in the X and Y directions and the coordinates X starting point DXS and Y starting point DYS of the destination image from the scaling factor generating device 802 in FIG. The coordinates after scaling of the input image are obtained as needed by DDA (digital differential analysis). In this example, the X start point and the X end point to be interpolated for interpolation as shown in FIG. 14 are obtained and transferred to the IX count processing device 804 and the scaling pixel coefficient generation device 805 in FIG. At this time, in the X direction, DDA is performed for the MAX parallel processing pixels of the halftone processing device. Therefore, as shown in FIG. 19, the X-direction DDA processing device sequentially adds a value obtained by multiplying the current X-coordinate by the X-direction scaling factor RATEX obtained by the scaling factor generator by the number of parallel processing pixels of the halftone processing unit MAX. It is a structure to do.
[0051]
FIG. 20 is a block diagram showing the configuration of the IX counting device of FIG. The IX counter device shown in the figure has a comparator 1201 and compares the XE value from the DDA processing device 803 in FIG. 14 with the coordinates X end point DXE of the destination image, and the X coordinate becomes equal to the X end point DXE. A XENDFL signal is generated.
[0052]
FIG. 21 is a block diagram showing a configuration of the scaling pixel coefficient generation device of FIG. The scaling pixel coefficient generation device shown in the figure includes a parallel X width generation device 1301 and an output X width generation device 1302. The parallel X width generation device 1301 obtains the X coordinate of each pixel based on the DDA for the number of pixels output from the original image storage device 801 in FIG. 14, obtains the X width between the pixels from the X coordinate, and outputs the output X width. The data is sent to the X width generating device output from the generating device 1302. Further, the output X width generation device 1302 performs a process for outputting separately according to the parallel processing number of the halftone processing device output by the scaling pixel coefficient generation device 806 in FIG. The cumulative addition value and the number of pixels are sent to the scaling pixel coefficient generation device 806 in FIG. The scaling pixel coefficient generating apparatus having such a configuration is configured to perform parallel X from the X-direction starting point XS to be interpolated from the DDA processing apparatus 804 in FIG. 14 and the X-direction scaling ratio RATEX obtained by the scaling ratio generating apparatus 802 in FIG. The X coordinate of each pixel is obtained by the DDA corresponding to the number of pixels output from the original image storage device in the width generation device 1301, the X width between the pixels is obtained from the X coordinate, and the output X width generation device 1302 performs FIG. 14 is performed in accordance with the number of parallel processes of the halftone processing device output from the variable magnification pixel coefficient generation device 806, and the cumulative addition value of the X width of each pixel and the number of pixels are shown in FIG. This is sent to the scaling pixel coefficient generation device 806.
[0053]
FIG. 22 is a diagram showing a configuration of the parallel X-width generation device of FIG. The parallel X width generation apparatus shown in the figure includes adders 1401-1408 and subtracters 1409-1416. The adders 1401 to 1408 receive the X start point obtained by the DDA processing device 803 in FIG. 14 and the X direction magnification RATEX obtained by the magnification generation device 802 in FIG. 14 and obtain X values of a plurality of pixels. Subtracters 1409 to 1416 obtain the width between the pixels.
[0054]
FIG. 23 is a block diagram showing a configuration of the output X width generation apparatus of FIG. The output X width generation apparatus shown in the figure includes MUXs 1501 to 1508, registers 1509 to 1516, a cumulative addition processing unit 1517, an XWIDTH update processing unit 1518, an output XWIDTH generation processing unit 1519, and a cumulative addition processing unit 1520. ing. According to the output X width generation device having such a configuration, the X width of each pixel from the parallel X width generation device 1301 of FIG. 21 is received, stored in a register, and until all the received pixels have been processed. Hold. Then, the X width of each pixel output by the XWIDTH update processing device 1518 is subtracted from the register with the smaller pixel number, and the registers 1509 to 1516 are updated through MUXs 1501 to 1508. The cumulative addition processing device 1517 cumulatively adds the X widths stored in the registers 1509 to 1516, and the XWIDTH update processing device 1518 receives the cumulative addition value output from the cumulative addition device 1517, and performs cumulative addition at each pixel point. The first cumulative addition point exceeding the MAX parallel processing number of the halftone processing device is obtained from the value, the update value up to that pixel is generated, the values of the corresponding registers 1509 to 1516 are updated through MUXs 1501 to 1508. The output XWIDTH generation processing device 1519 receives the cumulative addition value output from the cumulative addition device 1517, obtains the first cumulative addition point exceeding the MAX parallel processing number of the halftone processing device from the cumulative addition value at each pixel point, The X width to be output up to that pixel is obtained and transferred to the cumulative addition processor 1520. The cumulative addition processing device 1520 performs cumulative addition necessary for the processing of the scaling pixel conversion device 806 in FIG.
[0055]
FIG. 24 is a block diagram showing the configuration of the cumulative addition processing device of FIG. The cumulative addition processing device shown in the figure includes adders 1601 to 1607 that calculate cumulative addition values up to each pixel.
[0056]
FIG. 25 is a flowchart showing the process of the XWIDTH update processing apparatus of FIG. In the figure, first, it is checked whether or not the X width of the 0th pixel is equal to or greater than the number of parallel processes of the halftone processing device (in this example, “8”), and if so, from the 0th X width of the halftone processing device. The number of parallel processes is subtracted to obtain a new 0th X width value (step S301; YES, step S302). Next, it is checked whether the accumulated X width from 0 to 1 is equal to or greater than the number of parallel processes of the halftone processing device (in this example, “8”). If it is greater, the 0th X width is set to “0”. A value obtained by subtracting the 0th X width from the number of parallel processes of the halftone processing device is subtracted from the first X width to obtain a new first X width value (step S303; YES, step S304). Thereafter, the same processing is performed in steps S305 to S317.
[0057]
FIG. 26 is a flowchart showing processing of the output XWIDTH generation processing device of FIG. First, the X width of each pixel to be output is initialized (step S401). Then, it is checked whether the X width of the 0th pixel is equal to or greater than the number of parallel processes of the halftone processing device (in this example, “8”), and if so, the halftone processing device is parallelized to the 0th output X width. The processing number is set, and the parallel processing number of the halftone processing device is set to the pixel number PNUM to be processed (step S402; YES, step S403). Further, it is checked whether the accumulated X width from 0 to 1 is greater than or equal to the number of parallel processes of the halftone processing device (in this example, “8”), and if it is greater, the 0th X is output to the 0th output X width. Set the width XWIDTH0, set the first output X width to the value obtained by subtracting the 0th X width from the parallel processing number of the halftone processing device, and set the parallel processing of the halftone processing device to the number of pixels PNUM to be processed A number is set (step S404; YES, step S405). Then, it is checked whether the accumulated X width from 0 to 2 is equal to or greater than the number of parallel processes of the halftone processing device (in this example, “8”), and if so, the 0th X width is shifted to the 0th output X width. The width XWIDTH0 is set, the first X width XWIDTH1 is set to the first output X width, and the second output X width is accumulated from the number of parallel processes of the halftone processing device to the first X width. A value obtained by subtracting the added value is set, and the parallel processing number of the halftone processing device is set to the pixel number PNUM to be processed (step S406; YES, step S407). Thereafter, the same processing is performed in steps S408 to S417. In step S418, the total X width of all the pixels is equal to or less than the number of parallel processes of the halftone processing device, so that the X width of the pixels output by all the pixels is updated. The X width value of the registers 1509 to 1516 shown in FIG. 23 is set, and the sum of the X widths of all the pixels is set to the number of pixels PNUM to be processed.
[0058]
FIG. 27 is a block diagram showing a configuration of the cumulative addition processing device of FIG. The cumulative addition processing device shown in the figure has adders 1701 to 1707 for calculating cumulative addition values at each pixel.
[0059]
FIG. 28 is a flowchart showing the 0th process of the output pixel of the variable magnification pixel conversion apparatus of FIG. In the figure, first, when the X width “DXWIDTH0” of the 0th pixel from the scaling pixel coefficient generation device 805 of FIG. 14 is larger than “0”, the output pixel 0th is DATA0 of the original pixel storage device 801 of FIG. Is set (step S501; YES, step S502). When the accumulated X width “DXWIDTH1” of the 0th to 1st pixels from the scaling pixel coefficient generation device 805 in FIG. 14 is larger than “0”, the output pixel 0th is the original pixel storage device 801 in FIG. The value of DATA1 is set (step S503; YES, step S504). Next, when the accumulated X width “DXWIDTH2” of the 0th to 2nd pixels from the scaling pixel coefficient generation device 805 of FIG. 14 is larger than “0”, the output pixel 0th is stored in the original pixel of FIG. The value of DATA2 of the device 801 is set (step S505; YES, step S506). 14 is larger than “0”, the 0th output pixel is the original pixel storage device of FIG. 14 when the cumulative X width “DXWIDTH3” of the 0th to 3rd pixels from the scaling pixel coefficient generation device 805 of FIG. The value of DATA3 801 is set (step S507; YES, step S508). Furthermore, when the cumulative “DXWIDTH4” of the X-th width of the 0th to 4th pixels from the scaling pixel coefficient generation device 805 in FIG. 14 is greater than “0”, the output pixel 0th is the original pixel storage device in FIG. The value of DATA4 801 is set (step S509; YES, step S510). When the cumulative X width “DXWIDTH5” of the 0th to 5th pixels from the scaling pixel coefficient generation device 805 in FIG. 14 is larger than “0”, the output pixel 0th is the original pixel storage device in FIG. The value of DATA5 of 801 is set (step S511; YES, step S512). 14 is larger than “0”, the output pixel 0th is the original pixel storage device of FIG. 14 when the cumulative X width “DXWIDTH6” of the 0th to 6th pixels from the scaling pixel coefficient generation device 805 of FIG. The value of DATA6 801 is set (step S513; YES, step S514). Furthermore, when the cumulative “DXWIDTH7” of the Xth width of the 0th to 7th pixels from the scaling pixel coefficient generation device 805 in FIG. 14 is larger than “0”, the output pixel 0th is the original pixel storage device in FIG. A value of DATA7 of 801 is set (step S515; YES, step S516).
[0060]
FIG. 29 is a flowchart showing the first processing of the output pixel of the variable magnification pixel conversion apparatus of FIG. In the figure, first, when the X width “DXWIDTH0” of the 0th pixel from the scaling pixel coefficient generation device 805 in FIG. 14 is larger than “1”, the first output pixel is DATA0 of the original pixel storage device 801 in FIG. Is set (step S601; YES, step S602). Then, when the cumulative “DXWIDTH1” of the 0th to 1st pixels from the scaling pixel coefficient generation device 805 in FIG. 14 is larger than “1”, the first output pixel is the original pixel storage device in FIG. The value of DATA1 801 is set (step S603; YES, step S604). Further, when the cumulative “DXWIDTH2” of the X-width of the 0th to second pixels from the scaling pixel coefficient generation device 805 in FIG. 14 is larger than “1”, the first output pixel is the original pixel storage device in FIG. The value of DATA2 801 is set (step S605; YES, step S606). Further, when the cumulative “DXWIDTH3” of the X-th width of the 0th to 3rd pixels from the scaling pixel coefficient generation device 805 in FIG. 14 is larger than “1”, the first output pixel is the original pixel storage device in FIG. The value of DATA3 801 is set (step S607; YES, step S608). 14 is larger than “1”, the first output pixel is the original pixel storage device of FIG. 14 when the cumulative X width “DXWIDTH4” of the zeroth to fourth pixels from the scaling pixel coefficient generation device 805 of FIG. The value of DATA4 801 is set (step S609; YES, step S610). Furthermore, when the cumulative “DXWIDTH5” of the X width of the 0th to 5th pixels from the scaling pixel coefficient generation device 805 in FIG. 14 is larger than “1”, the first output pixel is the original pixel storage device in FIG. The value of DATA5 of 801 is set (step S611; YES, step S612). When the cumulative “DXWIDTH6” of the X-th pixel of the 0th to 6th pixels from the scaling pixel coefficient generation device 805 in FIG. 14 is larger than “1”, the first output pixel is the original pixel storage device in FIG. The value of DATA6 801 is set (step S613; YES, step S614). When the accumulated X width “DXWIDTH7” of the 0th to 7th pixels from the scaling pixel coefficient generation device 805 in FIG. 14 is larger than “1”, the first output pixel is the original pixel storage device 801 in FIG. The value of DATA7 is set (step S615; YES, step S616).
[0061]
In the following, FIGS. 30 to 35 show the second to seventh processing flows of the output pixels of the scaling pixel conversion apparatus of FIG. 14, which are the same as the zeroth and first processes shown in FIGS. 28 and 29. Since there is, explanation is omitted here.
[0062]
Thus, in the variable power pixel conversion device, pixels corresponding to the parallel processing pixels of the halftone processing device must be obtained. In this example, the number is “8”.
[0063]
Next, the halftone processing apparatus will be described in detail with reference to FIG. The halftone processing apparatus shown in the figure includes a write address generation device 1801, a dither pattern storage device 1802, a MUX 1803, a dither pattern address generation device 1804, a comparison pattern cutout device 1805, a parallel comparison device 1806, and a fixed length data generation device 1807. A line memory 1808, a line memory address generation device 1809, and a controller 1810. Further, the write address generation device 1801 generates an address for storing dither data received from the memory arbiter I / F 201 of FIG. 3 in the dither pattern storage device 1802. The dither pattern storage device 1802 stores dither data received from the memory arbiter I / F 201 of FIG. FIG. 41, which will be described later, shows an example of a 32 * 8 size of the dither pattern memory of the dither pattern storage device. As described above, the memory arbiter I / F 201 in FIG. 3 transfers the dither pattern for each number of lines that are scaled in the vertical direction, and stores the dither pattern in the dither pattern storage device 1802. As in the format of FIG. 41, dither patterns having only a vertical scaling factor can be stored. Since the example shown in FIG. 41 is an example of up to 8 times in the vertical direction, dither patterns for 8 lines can be stored in this way. The number of dither patterns in the horizontal direction is MAX32 dots in this example. The MUX 1803 transfers the address of the dither pattern storage device 1802 to the write address generation device 1801 when transferring dither data from the memory arbiter I / F 201 of FIG. The dither pattern address generation device 1804 receives the size of the dither pattern from the parameter storage device 204 of FIG. 3, and generates a dither pattern memory address. The comparison pattern cutout device 1805 reads a threshold matrix of a plurality of pixels in the horizontal direction of the data conversion processing device 202 in FIG. 3 from the dither pattern memory, receives the number of pixels to be processed from the controller 1810, and receives the dither pattern memory. A plurality of data are transferred from the head of the effective pattern to the parallel comparison device 1806 in the horizontal direction of the data conversion processing device 202 in FIG. The parallel comparison device 1806 compares the pixel values after scaling in the horizontal direction obtained by the data conversion processing device 202 in FIG. 3 with the threshold value matrix from the comparison pattern cutout device 1805 in parallel. The fixed-length data generation device 1807 generates fixed-length data by adding the 1/0 value obtained by the parallel comparison device 1806 to the fixed-length data by the effective number indicated by the controller 1810. The line memory 1808 stores data for the number of lines after scaling the fixed-length data generated by the fixed-length data generating device 1807 in the vertical direction. The example of the line memory format shown in FIG. 43 described later is an example of a processing device up to eight times in the vertical direction, and therefore stores data for eight lines. The line memory address generation device 1809 generates an address for storing the data from the fixed length data generation device 1807 in the line memory 1808. The controller 1810 receives the effective number of horizontally interpolated pixels from the scaling processing device 202 of FIG. 3, and controls the halftone processing device of FIG. 36 in a flow as shown in FIG.
[0064]
Next, FIG. 37 is a block diagram showing the configuration of the comparison pattern cutout device of FIG. The comparison pattern cutout apparatus shown in FIG. 1 includes registers 1901, 1902, 1904, 1906, a shifter 1903, and an adder 1905. The register 1901 stores a value from the dither pattern storage device 1802 of FIG. In this example, since eight data conversion processing devices 202 in FIG. 3 are processing in the horizontal direction, eight threshold values of 8 bits per pixel are necessary, and therefore 64 bits. Register 1902 stores the value from register 1901. The registers 1901 and 1902 generate a double pattern in the horizontal direction of the data conversion processing apparatus and transfer the pattern to the shifter 1903. The shifter 1903 receives the double pattern in the horizontal direction of the data conversion processing device 202 in FIG. 3 from the registers 1901 and 1902, and obtains it from the effective number of horizontally interpolated pixels from the scaling pixel conversion device 806 in FIG. A plurality of data are shifted in the horizontal direction of the data conversion processing device from the current leading value and output. The register 1904 stores the value of the shifter 1903. The adder 1905 receives the effective number from the data conversion processing device 202 in FIG. 3, and performs addition processing with the current shift value to obtain the next head value. The register 1906 stores the value obtained by the adder 1905.
[0065]
FIG. 38 is a block diagram showing the configuration of the parallel comparison device of FIG. In the example shown in the figure, since the number of processes in the horizontal direction of the data conversion processing device 202 in FIG. 3 is “8”, there are also eight comparison devices. Comparators 2001 to 2008 compare a plurality of threshold values with each pixel in the horizontal direction of the data conversion processing device 202 of FIG. 3 cut out by the comparison pattern cutting device 1805 of FIG.
[0066]
FIG. 39 is a block diagram showing a configuration of the fixed-length data generation apparatus of FIG. The fixed-length data generation device shown in FIG. 1 includes a shifter 2101, an OR device 2102, registers 2103, 2104, 2106, and an adder 2105. The shifter 2101 receives a plurality of “1/0” data in the horizontal direction of the data conversion processing device 202 of FIG. 3 from the parallel comparison device 1806 of FIG. 36, and matches the final value of the fixed-length data currently being created. Shift processing is performed. The OR device 2102 inserts the value shifted by the shifter 2101 by ORing the value currently being created. Register 2103 stores the fixed length data currently being created and is updated by storing the newly inserted value of OR device 2102. The register 2104 stores data satisfying all the fixed length data width generated by the OR device 2102 and is transferred to the line memory 1808 of FIG. The adder 2105 receives the effective number from the scaling pixel conversion device 806 in FIG. 14, and performs addition processing with the final value of the current fixed-length data of the scaling pixel conversion device 806 in order to obtain the start value of the next shifter. . The register 2106 stores the final value of the fixed length data, and controls the shifter of the shifter 2101.
[0067]
FIG. 40 is a flowchart showing processing of the halftone processing apparatus of FIG. In FIG. 36, the data corresponding to the horizontal MAX magnification is read in parallel from the dither pattern memory indicated by the dither pattern address generation device 1804 in FIG. 36 (step S1301). Then, a dither pattern is cut out from the address indicated by the SHFT value for the horizontal MAX magnification to be compared by the comparison pattern cutout device 1805 in FIG. 36 (step S1302). Next, the horizontal MAX magnification is compared in parallel by the parallel comparison device 1806 in FIG. 36 (step S1303). Only the effective dots are added to the fixed length data by the fixed length data generation device 1807 in FIG. 36 as the comparison result (step S1304). 36 generates the address of the line memory 1808 of FIG. 36, and writes the data of the fixed-length data generation device 1807 to the line memory 1808 (step S1305). Thereafter, the comparison pattern cutout device 1805 of FIG. 36 adds the number of effective dots to the SHFT value and prepares for the next processing (step S1306). It is checked whether or not processing has been completed for all dither patterns. If not, it is checked whether or not the SHFT value is equal to or greater than the horizontal MAX magnification. If not, the process returns to step S1302. If there is, the value obtained by subtracting the horizontal MAX magnification from the SHFT value is used as the SHFT value, and the process returns to step S1301 to repeat the process.
[0068]
FIG. 41 shows an example of the 32 * 8 size of the dither pattern storage device of FIG. FIG. 42 shows an example of processing transition using the dither table of FIG. FIG. 43 shows an example of the line memory of FIG.
[0069]
FIG. 44 shows an overall flow when the scaling process of the data conversion processing apparatus 202 of FIG. 3 is a bilinear method. In the figure, first, the memory arbiter I / F 201 in FIG. 3 performs a process of obtaining a vertical scaling factor (step S1401). The memory arbiter I / F 201 in FIG. 3 reads one line of image data from the memory 109 in FIG. 2 via the memory arbiter 103 in FIG. 2 and sends it to the data conversion processing device 202 in FIG. 3 (step S1402). Similarly to step S1402, the memory arbiter I / F 201 in FIG. 3 reads one line of image data from the memory 109 in FIG. 2 via the memory arbiter 103 in FIG. 2, and sends it to the data conversion processing device 202 in FIG. Send (step S1403). In the bilinear interpolation method, interpolation is performed from four points A, B, C, and D as shown in FIG. 50 described later. Therefore, a line memory for storing A and B and a line memory for storing C and D are necessary. First, two lines are read, and then C and D lines are set as A and B lines, and one line of C and D is read. Next, the memory arbiter I / F 201 in FIG. 3 reads dither data for the number of lines after scaling in the vertical direction and sends the dither data to the halftone processing device 203 in FIG. 3 (step S1404). The memory arbiter I / F 201 in FIG. 3 calculates the Y start point YS after scaling from the vertical scaling factor obtained in step S1401 and the coordinate Y starting point DYS of the destination image by vertical DDA (digital differential analysis). The Y end point YE is obtained (step S1405). Then, the memory arbiter I / F 201 in FIG. 3 sets the YS value obtained in step S1404 to the vertical line counter after scaling (step S1406). One-line image processing (magnification, color conversion, filter processing, etc.) is performed by the data conversion device 202 of FIG. 3 (step S1407). Next, halftone processing is performed on the image data after one-line image processing by the halftone processing device 203 in FIG. 3 (step S1408). Further, the halftone processing device 203 in FIG. 3 writes the one line data after the halftone processing into the internal line memory (step S1409). Further, the memory arbiter I / F 201 in FIG. 3 counts up the line counter in the vertical direction after scaling (step S1410). Then, the memory arbiter I / F 201 in FIG. 3 checks whether or not the vertical line counter exceeds the Y end point YE after the vertical scaling obtained in step S1404. If not, the process proceeds to step S1407. The process proceeds (step S1411; YES), and if exceeded, the process proceeds to step S1412 (step S1411; NO). The memory arbiter I / F 201 of FIG. 3 writes the image-processed data from the written internal line memory to the memory 109 of FIG. 2 via the memory arbiter 103 of FIG. 2 (step S1412). Then, the memory arbiter I / F 201 in FIG. 3 checks whether or not the obtained Y end point YE after scaling in the vertical direction exceeds the coordinate Y end point DYE of the destination image, and if so, step S1403. (Step S1413; YES), and if equal or exceeded, the process ends (step S1413; NO).
[0070]
FIG. 45 is a diagram illustrating an example of timing when the image is reduced in the vertical direction. The example shown in (a) of the figure is an example in which the reduction ratio is 0.5 times, and a line skipping one image data before image processing is read (only odd lines), and dither pattern data is sequentially one line. Each line is read, and the data after image processing is sequentially written line by line.
Here, as shown in the flow of FIG. 44, two lines are initially read continuously. In this example, image data reading processing and image processing are performed in parallel. The example shown in FIG. 5B is an example in which the reduction ratio is 0.6666, in which the image data before image processing is read by skipping one line every three lines, and the dither pattern data is sequentially read line by line. The data after image processing is sequentially written for each line. Again, as shown in the flow of FIG. 44, two lines are initially read continuously. Also in this example, image data reading processing and image processing are performed in parallel.
[0071]
FIG. 46 is a diagram showing an example of the timing in the case of normal magnification and enlargement in the vertical direction. The example shown in FIG. 5A is a 1 × example. Image data before image processing is sequentially read for each line, dither pattern data is sequentially read for each line, and data after image processing is read. Write one line at a time. Again, as shown in the flow of FIG. 44, two lines are initially read continuously. In this example, image data reading processing and image processing are performed in parallel. The example shown in FIG. 5B is an example of 105 times. Image data before image processing is sequentially read for each line, dither pattern data is sometimes read every two lines, and data after image processing is read. Sometimes every two lines are written. Again, as shown in the flow of FIG. 44, two lines are initially read continuously. In this example, image data reading processing and image processing are processed in parallel, and two-line image processing is sometimes performed. Further, the example shown in FIG. 5C is a double example, in which image data before image processing is sequentially read for each line, dither pattern data is sequentially read for every two lines, and after image processing. Data is written sequentially after 2 lines. Again, as shown in the flow of FIG. 44, two lines are initially read continuously. In this example, the image data reading process and the image process are processed in parallel, and two-line image processing is performed.
[0072]
FIG. 47 is a block diagram showing a configuration of a scaling processing apparatus of the bilinear interpolation method. The scaling processing device shown in the figure includes a parameter processing device 2201, an enlargement ratio generation device 2202, a DDA processing device 2203, an IX / IY counter device 2204, an interpolation coefficient generation device 2205, and an interpolation processing device 2206. . Also, the parameter processing device 2201 sequentially stores the input image data in the line memory and stores two lines, and then transfers the four points WCOLA, WCOLB, WCOLC, and WCOLD to be interpolated to the interpolation processing device 2206. The enlargement factor generating apparatus 2202 generates coordinates X start point SXS and X end point SXE, Y start point SYS and Y end point SYE of the image to be scaled, and coordinates X start point DXS and X end point DXE of the destination image after scaling. , The magnifications RATEX and RATEY in the X and Y directions are obtained from the Y start point DYS and the Y end point DYE, and transferred to the DDA processor 2203. Further, the DDA processing device 2203 receives the magnifications in the X and Y directions and the coordinates X start point DXS and Y start point DYS of the destination image from the enlargement factor generation device 2202, and has been enlarged as indicated by a circle in FIG. Like pixels, coordinates after scaling of the input image are obtained by DDA (Digital Digital Differential Analysis) as needed. In this example, as shown in FIG. 50 described later, an X start point, an X end point, a Y start point, and a Y end point to be interpolated are obtained and transferred to the IX and IY count processing unit 2204 and the interpolation coefficient generation unit 2205. The IX and IY counting unit 2204 receives the start point and end point of the interpolation direction from the DDA processing unit 2203, the start point and end point of the Y direction, and generates the X and Y coordinates of the interpolated pixel indicated by Δ in FIG. And transferred to the interpolation coefficient generator 2205. Further, the interpolation coefficient generation device 2205 receives the start point and end point of the interpolation direction from the DDA processing device 2203 and the start point and end point of the Y direction, and from the X and Y coordinates of the pixel to be interpolated from the IX and IY counting device 2204, Interpolation coefficients (DRATEY, DRATEX) in the X and Y directions to be interpolated by the interpolation processing device 2206 are obtained and sent to the interpolation processing device 2206. Further, the interpolation processing device 2206 receives the data to be interpolated from the parameter processing device 2201 and receives the coefficient to be interpolated from the interpolation coefficient generating device 2205, thereby interpolating the data from the parameter processing device 2201 to obtain the data shown in FIG. In this way, the scaling process is executed by generating an enlarged image by interpolating and filling in between the enlarged pixels.
[0073]
FIG. 48 is a flowchart showing the processing of the scaling processing apparatus of FIG. In the figure, first, an enlargement ratio is obtained by an enlargement ratio generation processing device (step S1501). Then, the DDA processing apparatus performs DDA processing in the Y direction (vertical direction), and obtains a Y start point YS and a Y end point YE to be processed (step S1502). The YS coordinate is designated as the Y coordinate (horizontal line) processed by the IX, IY count processing device (step S1503). The X coordinate processed by the IX, IY count processing device is initialized to the coordinate X start point DXS of the destination image (step S1504). The DDA processing apparatus performs DDA processing in the X direction (horizontal direction), and obtains an X start point XS and an X end point XE to be processed (step S1505). Next, an interpolation coefficient at the currently processed coordinates is obtained by an interpolation coefficient generation processing device that reads interpolation data (steps S1506 and S1507). A zoomed image is generated by interpolating between the enlarged pixels by the interpolation processing device (step S1508). If XE does not exceed the coordinate X end point DXE of the scaled destaining image, the process returns to step S1505 (step S1509; YES). If it exceeds, the Y coordinate to be interpolated next is obtained by the IX, IY count processing device (step S1509; NO, step S1510). If the value does not exceed the Y value end point YE to be interpolated, the process returns to step S1504 (step S1511; YES). If YE does not exceed the coordinate Y end point DYE of the changed destination image, the process returns to step S1502 (step S1512; YES).
[0074]
FIG. 49 is a block diagram showing the configuration of the parameter processing apparatus of FIG. The parameter processing apparatus shown in the figure includes a register 2301 that stores even-numbered pixels of input pixels, a register 2302 that stores odd-numbered pixels of input pixels, line memories 2303 to 2305 that store pixels for lines, It includes a selector 2306 and a controller 2307 that control and output data stored in the line memories 2303 to 2305. For example, when outputting data of the line memory 2303 and the line memory 2304 at present, the pixels A and B to be interpolated by the line memory 2303 are output as pixels C and D to be interpolated by the line memory 2304 as follows. The memory 2305 stores the next pixel.
[0075]
This parameter processing apparatus accumulates two lines of image data sequentially input from the scan line direction as shown in FIG. 50, and sequentially outputs the four points interpolated in FIG. 51 as shown in FIG. At this time (when four pixels to be interpolated are output), the input pixels are sequentially received by the third line memory. If the third line memory becomes full and all vertical interpolations as shown in FIG. 52 are not completed, WAIT is applied to the device that sends the input pixels. 52, when all the pixels stored in the two lines in the vertical direction are finished as shown in FIG. 52, a new two-line pixel is obtained from the stored third pixel and the latter one line of the two-line pixels processed earlier. As shown in FIG. 52, the four pixels that are sequentially interpolated are output. Then, in the same manner as described above, the input pixels are sequentially stored as the third line memory in the empty one line memory.
[0076]
FIG. 53 is a block diagram showing a configuration of the enlargement factor generating apparatus of FIG. The enlargement factor generating apparatus shown in the figure includes subtractors 2401, 4022, 2405, 2406, dividers 2403, 2407, and registers 2404, 2408. The enlargement ratio generating apparatus having such a configuration includes the coordinates X start point SXS and X end point SXE, Y start point SYS and Y end point SYE of the source image of the image to be scaled, and the coordinate X start point of the destination image after scaling. The magnifications RATEX and RATEY in the X and Y directions are obtained from the DXS and the X end point DXE, the Y start point DYS, and the Y end point DYE, and transferred to the DDA processor 2203 in FIG. By calculating RATEX = (SXE−SXS) / (DXE−DXS), a scaling factor (RATEX) in the X direction is obtained, and the coordinates X start point SXS and X end point SXE of the source image, the coordinate X start point DXS of the destination image And X end point DXE), and RATEY = (SYE−SYS) / (DYE−DYS), a scaling factor (RATEY) in the Y direction is obtained, and (source image coordinate Y start point SYS, Y end point SYE, day-stateation) Image coordinates Y start point DYS, Y end point DYE) are obtained.
[0077]
FIG. 54 is a block diagram showing the configuration of the DDA processing apparatus of FIG. The DDA processing apparatus shown in the figure includes MUXs 2501 and 2507, registers 2502, 2503, 2505, 2506, 2508, 2509, 2511 and 2512, and adders 2504 and 2510. Further, the MUX 2501 transfers the output of the adder 2504 that sequentially adds the coordinates X start point DXS of the initial value destination image to the register 2502 only at the beginning. The register 2502 stores the X value currently being processed. The register 2503 stores the X-direction scaling factor RATEX obtained by the scaling factor generator. The register 2505 stores the X end point to be interpolated. The register 2506 stores the X start point to be interpolated. The MUX 2507 transfers the output of the adder 2510 to which the initial value of the destination Y coordinate DYS of the destination image is transferred to the register 2508 only for the first time, and then sequentially added. The register 2508 stores the Y value currently being processed. The register 2509 stores the Y-direction scaling factor RATEY obtained by the scaling factor generator. The register 2511 stores the Y end point to be interpolated. The register 2512 stores the Y start point to be interpolated.
[0078]
According to the DDA processing apparatus having such a configuration, the magnifications in the X and Y directions and the coordinates X start point DXS and Y start point DYS of the destination image are received from the enlargement factor generation apparatus 2201 in FIG. Like the enlarged pixel indicated by ◯ in the figure, the coordinate after scaling of the input image is obtained by DDA (digital differential analysis) as needed. In this example, as shown in FIG. 51, the X start point, X end point, Y start point, and Y end point to be interpolated are obtained and transferred to the IX / IY count processing unit 2204 and the interpolation coefficient generation unit 2205 in FIG. Further, the X-direction DDA processing device has a structure in which the X-direction scaling factor RATEX obtained by the scaling factor generation device is sequentially added to the current X coordinate as shown in FIG. 12, and the Y-direction DDA processing device is as shown in FIG. Further, RATEY obtained by the scaling factor generation device is sequentially added to the current Y coordinate.
[0079]
FIG. 55 is a block diagram showing a configuration of the interpolation coefficient generation apparatus of FIG. The interpolation coefficient generating apparatus shown in the figure includes subtracters 2601, 2602, 2605, 2606, dividers 2603, 2607, 2608, and registers 2604, 2609. The interpolation coefficient generator having such a configuration receives the start point and end point in the X direction and the start point and end point in the Y direction to be interpolated from the DDA processing unit 2203 in FIG. 47, and receives from the IX and IY count unit 2204 in FIG. From the X and Y coordinates of the pixel to be interpolated, interpolation coefficients (DRATEY, DRATEX) in the X and Y directions to be interpolated by the interpolation processing device 2206 in FIG. 47 are obtained and sent to the interpolation processing device 2206. By calculating DRATEX = (IX−XS) / (XE−XS), the X direction interpolation coefficient (DRATEX) is obtained, and the start and end points (XS, XE), IX, IY in the X direction obtained by the DDA processor 2203 are obtained. The interpolation coefficient (DRATEY) in the Y direction is obtained by the calculation of the X coordinate (IX) and DRATEY = (IY−YS) / (YE−YS) of the pixel to be interpolated from the counting device 2204, and is obtained by the DDA processing device 2203. The start point and end point (YS, YE) in the Y direction and the Y coordinate (IY) of the pixel to be interpolated from the IX, IY counting device 2204 are obtained.
[0080]
At this time, since the present method sequentially obtains each horizontal line as shown in FIG. 52, the calculation of DRATEY is only required once for each line, and the amount of calculation is small. In addition, the amount of hardware is reduced and the speed is increased.
[0081]
FIG. 56 is a block diagram showing a configuration of the interpolation processing apparatus of FIG. The interpolation processing apparatus shown in the figure includes a vertical interpolation processing apparatus 2701, a horizontal interpolation coefficient generation apparatus 2702, and a horizontal interpolation processing apparatus 2703. Further, the vertical interpolation processing device 2701 obtains the difference value of the position of the current line (Y coordinate) from the Y start point using the interpolation coefficient (DRATEY) obtained by the interpolation coefficient generation device 2205 in FIG. 51 AV and BV can be obtained. The horizontal interpolation coefficient generation device 2702 performs horizontal interpolation up to the horizontal MAX enlargement ratio that can be processed by the scaling processing device based on the interpolation coefficient (DRATEX, 1 / DX) obtained by the interpolation coefficient generation device 2205 of FIG. Find coefficients in parallel. In this example, since this magnification processing apparatus is up to 8 times in the horizontal direction, eight horizontal direction interpolation coefficients are obtained in parallel. The horizontal interpolation processing device 2703 receives WCOLAV and WCOLBV which are interpolation points in the vertical direction obtained by the vertical interpolation processing device 2701, and a plurality of interpolation coefficients obtained by the horizontal interpolation coefficient generating device 2702 between the two points are used as a plurality of interpolation coefficients. Find the value of the interpolation point. At this time, the actual number to be interpolated is counted by an effective number counting device.
[0082]
The interpolation processing apparatus having such a configuration receives data to be interpolated from the parameter processing apparatus 2201 in FIG. 47 and receives the coefficient to be interpolated from the interpolation coefficient generation apparatus 2205, thereby interpolating the data from the parameter processing apparatus 2201. As a result, as shown in FIG. 57, the enlargement image is generated by interpolating and filling in the enlarged pixels, thereby executing the scaling process. Here, as an interpolation method, a bilinear interpolation method is shown as an example. FIG. 51 shows an example of the bilinear interpolation method. Here, as shown in FIG. 52, each line is sequentially interpolated in the horizontal direction. Therefore, as shown in FIG. 51A, between A and C and between B and D are interpolated vertically, and AV, BV is obtained, and then AV and BV are horizontally interpolated as shown in FIG. In this case, depending on the hardware configuration, the obtained BV can be reused as the next AV, leading to a decrease in interpolation calculation, and a decrease in hardware amount and an increase in speed.
[0083]
FIG. 58 is a block diagram showing the configuration of the vertical interpolation processing apparatus of FIG. Note that the processing here corresponds to the processing in FIG. The vertical interpolation processing device shown in the figure includes a subtracter 2801 for obtaining a difference between two left pixels of the four-point pixel data obtained by the parameter processing device, a DRATEY value obtained by the interpolation coefficient generating device, and a subtractor 2801. Multipliers 2802 for finding positions without differences by multiplying the differences, and adders 2803 and 2803 for obtaining values interpolated in the vertical direction at the left end by adding the obtained values and the start point by the multiplier 2082. Register 2804 for storing the values of the values, a subtracter 2805 for calculating the difference between the right two pixels of the four-point pixel data obtained by the parameter processing device, and the difference between the value of DRATEY obtained by the interpolation coefficient generating device and the difference of the subtractor 2805 Thus, a multiplier 2806 that obtains a position without a difference is interpolated in the vertical direction at the right end by adding the obtained value and the start point by the multiplier 2806. Adder 2807 for obtaining the value, is configured to include a register 2808 for storing the value of the adder 2807.
[0084]
FIG. 59 is a block diagram showing the configuration of the horizontal interpolation coefficient generation apparatus of FIG. The horizontal interpolation coefficient generation device shown in FIG. 11 adds the value of DRATEX obtained by the interpolation coefficient generation device and 1 / DX, thereby performing the second interpolation in the horizontal direction next to DRATEX obtained by the interpolation coefficient generation device. An adder 2901 for obtaining a coefficient adds three values in the horizontal direction obtained by the adder 2907 and the value of the second interpolation coefficient and 1 / DX in the horizontal direction next to DRATEX obtained by the interpolation coefficient generation device. An adder 2906 for obtaining the interpolation coefficient of the eye, and the horizontal direction next to DRATEX obtained by the interpolation coefficient generating device by adding the value of the third interpolation coefficient and 1 / DX in the horizontal direction obtained by the adder 2906 Adder 2905 for obtaining the fourth interpolation coefficient, and the value of the fourth interpolation coefficient and 1 / DX in the horizontal direction obtained by the adder 2905 are added to the DRAT obtained by the interpolation coefficient generation device. An adder 2904 for obtaining a fifth interpolation coefficient in the horizontal direction next to X, and an interpolation coefficient generation device by adding the value of the fifth interpolation coefficient and 1 / DX in the horizontal direction obtained by the adder 2904 An adder 2903 for obtaining the sixth interpolation coefficient in the horizontal direction next to DRATEX obtained in step (1), and adding the value of the sixth interpolation coefficient in the horizontal direction obtained by the adder 2903 and 1 / DX An adder 2902 that obtains the seventh interpolation coefficient in the horizontal direction next to DRATEX obtained by the coefficient generator, and the value of the seventh interpolation coefficient and 1 / DX in the horizontal direction obtained by the adder 2902 are added. Thus, an adder 2901 for obtaining the eighth interpolation coefficient in the horizontal direction next to DRATEX obtained by the interpolation coefficient generator, a register 2915 for storing the value of DRATEX obtained by the interpolation coefficient generator, and an adder 29 Obtained by the register 2914 storing the value of the second interpolation coefficient in the horizontal direction obtained in 7, the register 2913 storing the value of the third interpolation coefficient in the horizontal direction obtained by the adder 2906, and obtained by the adder 2905. A register 2912 for storing the value of the fourth interpolation coefficient in the horizontal direction, a register 2911 for storing the value of the fifth interpolation coefficient in the horizontal direction obtained by the adder 2904, and 6 in the horizontal direction obtained by the adder 2903. A register 2910 for storing the value of the first interpolation coefficient, a register 2909 for storing the value of the seventh interpolation coefficient in the horizontal direction obtained by the adder 2902, and an eighth interpolation in the horizontal direction obtained by the adder 2901 A register 2908 for storing coefficient values is included.
[0085]
FIG. 60 is a block diagram showing a configuration of the horizontal interpolation processing apparatus of FIG. Note that the processing here corresponds to the processing in FIG. The horizontal interpolation processing device shown in the figure includes a subtractor 3025 for obtaining a horizontal difference between two pixel data interpolated in the vertical direction obtained by the vertical interpolation processing device, a pixel difference obtained by the subtractor 3025, and By multiplying the first interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generation apparatus, the multiplication result in the multiplier 3001 and the multiplier 3001 for obtaining the value to be complemented in the difference and the vertical interpolation result are obtained. By adding a certain WCOLAV value, an adder 3009 for obtaining the first pixel value interpolated in the horizontal direction, a register 3017 for storing the value obtained by the adder 3009, and a pixel difference obtained by the subtractor 3025 By multiplying the second interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generation apparatus, the multiplication result in the multiplier 3002 and the multiplier 3002 for obtaining the value to be complemented in the difference, and the vertical interpolation are obtained. By adding the value of WCOLAV as a result, an adder 3010 for obtaining the second pixel value interpolated in the horizontal direction, a register 3018 for storing the value obtained by the adder 3010, and the pixel obtained by the subtractor 3025 By multiplying the difference and the third interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generation device, the multiplication result in the multiplier 3003 and the multiplier 3003 for obtaining the complemented value in the difference is vertical. By adding the value of WCOLAV as an interpolation result, an adder 3011 for obtaining the third pixel value interpolated in the horizontal direction, a register 3019 for storing the value obtained by the adder 3011, and a pixel obtained by the subtractor 3025 Is multiplied by the fourth interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generation apparatus, thereby obtaining a multiplier 3004 and a multiplier 300 for obtaining a complementary value for the difference. By adding the value of WCOLAV that is the result of vertical interpolation and the result of vertical interpolation, an adder 3012 that obtains the fourth pixel value interpolated in the horizontal direction, a register 3020 that stores the value obtained by the adder 3012, and subtraction Multipliers 3005 and multipliers for multiplying the difference between the pixels obtained by the multiplier 3025 and the fifth interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generation apparatus to obtain a complementary value for the difference An adder 3013 for obtaining the fifth pixel value horizontally interpolated by adding the value of WCOLAV which is the result of vertical interpolation and the result of multiplication in 3005, a register 3021 for storing the value obtained by the adder 3013, Multiplier 3 for finding a complementary value for the difference by multiplying the pixel difference obtained by subtractor 3025 by the sixth interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generation device. 006, adding the value obtained by the adder 3014 and the adder 3014 for obtaining the sixth pixel value interpolated in the horizontal direction by adding the value of WCOLAV as the result of vertical interpolation and the result of multiplication in the multiplier 3006 Multiplying the difference between the pixels obtained by the register 3022 and the subtracter 3025 by the seventh interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generation device to obtain a complementary value for the difference. The values obtained by the adder 3015 and the adder 3015 for obtaining the seventh pixel value interpolated in the horizontal direction are added by adding the value of WCOLAV that is the result of vertical interpolation and the multiplication result of the multiplier 3007 and multiplier 3007. The pixel difference obtained by the register 3023 and the subtracter 3025 to be stored is multiplied by the eighth interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generation device, thereby complementing the difference. A multiplier 3008 for obtaining a value obtained by adding the value of WCOLAV which is a result of vertical interpolation and the multiplication result obtained by the multiplier 3008, and an adder 3016 and an adder 3016 for obtaining an eighth pixel value subjected to horizontal interpolation. A register 3024 for storing the value obtained in step 1, and an effective number counting device for obtaining an effective number by counting from which point in time the eight interpolation coefficients in the horizontal direction exceed “1.0” from the first coefficient 3026 is included.
[0086]
In addition, this invention is not limited to the said Example, It cannot be overemphasized that various deformation | transformation and substitution are possible if it is description in a claim.
[0087]
【The invention's effect】
As described above, the image processing apparatus of the present invention includes the memory arbiter I / F, the data conversion processing unit, and the halftone processing unit. Then, the memory arbiter I / F converts one line of image data to the data conversion processing means. Forward The dither data for a predetermined line after scaling in the vertical direction is transferred to the halftone processing means, Halftone processing by halftone processing means It outputs the subsequent data and manages the scaling process in the vertical direction. Further, the data conversion processing means performs image processing such as horizontal scaling processing, color conversion processing, filter processing, etc. on the image data transferred from the memory arbiter I / F, and performs image processing for each horizontal line. The processed data is transferred to the halftone processing means. Further, the halftone processing means outputs dither data for a predetermined line after the scaling process in the vertical direction of each line from the memory arbiter I / F, and image processing for each line in the horizontal direction from the data conversion processing means. Receive data and perform halftone processing. Therefore, reading of image data and image processing can be performed in parallel without interrupting the reading processing of image data, and the speed can be increased.
[0089]
In addition, data conversion processing The means includes scaling processing means for performing scaling processing by the nearest neighbor method. Therefore, since a halftone process is directly performed after scaling the image, a wasteful work memory area is not required and the process can be performed at high speed.
[0090]
Also data conversion processing The means includes scaling processing means for performing scaling processing by bilinear interpolation. Therefore, since a halftone process is directly performed after scaling the image, a wasteful work memory area is not required and the process can be performed at high speed.
[0091]
Further, the scaling processing means includes scaling pixel coefficient generation means capable of scaling the same number of pixels as the pixels processed in parallel of the halftone processing means. ing . Therefore, it is possible to perform processing at high speed without requiring a wasteful work memory area, and the scaling processing means can always generate pixels corresponding to the number of parallel processes of the halftone processing means. It can be processed at high speed.
[0092]
The scaling pixel coefficient generation means receives parallel X width generation means capable of obtaining the X width of the same number of pixels as the parallel processing number of the halftone processing means, and receives the plurality of X widths, and performs halftone processing. Output X width generating means for outputting the divided number of parallel processes. Therefore, since the scaling process is performed in parallel in the horizontal direction, the processing can be performed at high speed.
[0093]
Further, the halftone processing means includes a parallel comparison means for comparing a plurality of pixels in the horizontal direction in parallel, and a plurality of threshold matrixes in the horizontal direction received from the dither pattern memory, and a plurality of pixels in the horizontal direction from the current comparison pixels. A comparison pattern cutout means for cutting out the threshold matrix. Therefore, since halftone processing is performed in parallel in the horizontal direction, processing can be performed at high speed.
[0094]
In addition, the comparison pattern cut-out means obtains the number of effective pixels received from the scaling processing means. On the basis of the, A plurality of threshold matrixes in the horizontal direction received from the dither pattern memory are cut out in the horizontal direction from the current pixel to be compared. Therefore, since halftone processing is performed in parallel in the horizontal direction, processing can be performed at high speed.
[0095]
Furthermore, the halftone processing means common There is a fixed length generation means for inserting a plurality of pixels received from the column comparison means into fixed length data by the number of effective pixels received from the scaling processing means. Therefore, since halftone processing is performed in parallel in the horizontal direction, processing can be performed at high speed.
[0096]
The scaling processing means is The pixel to be scaled is converted to a predetermined width, and output in accordance with the number of parallel processing pixels of MAX in the horizontal direction that can be processed by the halftone processing means. . Therefore, since the scaling process is performed in parallel in the horizontal direction, the processing can be performed at high speed.
[0097]
Further, the scaling processing means is based on a plurality of interpolation points in the vertical direction and a plurality of interpolation coefficients in the horizontal direction obtained in parallel up to the enlargement ratio of MAX in the processable horizontal direction. Horizontal Horizontal interpolation means for obtaining a plurality of interpolation points and effective number counting means for obtaining the number of pixels to be actually interpolated. Therefore, since the scaling process is performed in parallel in the horizontal direction, the processing can be performed at high speed.
[Brief description of the drawings]
FIG. 1 is a cross-sectional view showing a configuration of a multicolor image forming apparatus to which an image processing apparatus of the present invention is applied.
2 is a block diagram showing a configuration of the electrical / control apparatus of FIG. 1; FIG.
FIG. 3 is a block diagram illustrating a configuration of an image processing apparatus according to an embodiment of the present invention.
4 is a diagram showing a configuration of the data conversion processing device of FIG. 3;
5 is a flowchart showing an operation when the scaling process of the data conversion processing apparatus 202 in FIG. 3 is a nearest neighbor method.
FIG. 6 is a diagram illustrating an example of timing in the case of reduction in the vertical direction.
FIG. 7 is a diagram illustrating an example of timing in the case of vertical scaling and enlargement.
8 is a block diagram showing a detailed peripheral configuration of the memory arbiter I / F of FIG. 3. FIG.
9 is a block diagram showing a configuration of the memory arbiter I / F of FIG. 3. FIG.
10 is a block diagram showing a configuration of the variable magnification generation apparatus in FIG. 9;
11 is a block diagram showing the configuration of the Y DDA processing device of FIG. 9;
12 is a block diagram showing a configuration of the IY counter device of FIG. 9. FIG.
13 is a block diagram showing a configuration of the memory address generation device of FIG. 9;
FIG. 14 is a block diagram illustrating a configuration of a nearest neighbor method magnification processing apparatus;
FIG. 15 is a diagram illustrating a state in which a pixel to be scaled is changed to a width from a scaled pixel generation device.
16 is a flowchart showing the operation of the scaling processing apparatus of FIG.
17 is a block diagram illustrating a configuration of the original pixel storage device in FIG. 14;
18 is a block diagram showing a configuration of the variable magnification generation apparatus in FIG.
19 is a block diagram showing a configuration of the DDA processing device of FIG. 14;
20 is a block diagram showing a configuration of the IX counting device of FIG. 14;
21 is a block diagram illustrating a configuration of the scaling pixel coefficient generation device in FIG. 14;
22 is a diagram illustrating a configuration of the parallel X-width generation device in FIG. 21;
23 is a block diagram showing a configuration of the output X width generation device of FIG. 21. FIG.
24 is a block diagram showing a configuration of the cumulative addition processing device of FIG. 23. FIG.
25 is a flowchart showing processing of the XWIDTH update processing device of FIG. 23. FIG.
26 is a flowchart showing processing of the output XWIDTH generation processing device of FIG. 23. FIG.
27 is a block diagram illustrating a configuration of the cumulative addition processing device in FIG. 23;
28 is a flowchart showing a 0th process of an output pixel of the variable magnification pixel conversion apparatus in FIG.
FIG. 29 is a flowchart showing a first process of output pixels of the variable magnification pixel conversion apparatus of FIG. 14;
30 is a diagram showing a second processing flow of an output pixel of the variable magnification pixel conversion device in FIG. 14;
FIG. 31 is a diagram showing a third processing flow of output pixels of the variable magnification pixel conversion device of FIG. 14;
32 is a diagram showing a fourth processing flow of an output pixel of the variable magnification pixel conversion device in FIG. 14;
33 is a diagram showing a fifth processing flow of the output pixel of the variable magnification pixel conversion device in FIG. 14; FIG.
34 is a diagram showing a sixth processing flow of an output pixel of the variable magnification pixel conversion device in FIG. 14;
35 is a diagram showing a seventh processing flow of the output pixel of the variable magnification pixel conversion device in FIG. 14; FIG.
FIG. 36 is a diagram illustrating a configuration of a halftone processing device.
37 is a block diagram showing a configuration of the comparison pattern cutout device of FIG. 36. FIG.
38 is a block diagram showing a configuration of the parallel comparison device of FIG. 36. FIG.
39 is a block diagram showing a configuration of the fixed-length data generation device in FIG. 36. FIG.
40 is a flowchart showing processing of the halftone processing apparatus of FIG. 36. FIG.
41 is a diagram showing an example of a size of 32 * 8 in the dither pattern storage device of FIG. 36. FIG.
FIG. 42 is a diagram showing an example of processing transition using the dither table of FIG. 41;
43 is a diagram showing an example of the line memory of FIG. 36. FIG.
44 is a diagram showing an overall flow in the case where the scaling process of the data conversion processing apparatus 202 in FIG. 3 is a bilinear method.
FIG. 45 is a diagram illustrating a timing example in the case of reduction in the vertical direction.
FIG. 46 is a diagram illustrating an example of timing in the case of normal magnification and enlargement in the vertical direction.
FIG. 47 is a block diagram showing a configuration of a scaling processing apparatus of a bilinear interpolation method.
48 is a flowchart showing processing of the scaling processing apparatus of FIG. 47. FIG.
49 is a block diagram showing a configuration of the parameter processing device of FIG. 47. FIG.
FIG. 50 is a diagram illustrating image data sequentially input from a scan line direction.
FIG. 51 is a diagram showing interpolated image data.
FIG. 52 is a diagram illustrating a state of interpolation.
53 is a block diagram showing a configuration of an enlargement ratio generation device in FIG. 47. FIG.
54 is a block diagram showing a configuration of the DDA processing device of FIG. 47. FIG.
55 is a block diagram showing a configuration of the interpolation coefficient generation device of FIG. 47. FIG.
56 is a block diagram showing a configuration of the interpolation processing apparatus of FIG. 47. FIG.
FIG. 57 is a diagram illustrating a state where interpolation is performed between enlarged pixels.
58 is a block diagram showing a configuration of the vertical interpolation processing apparatus in FIG. 56. FIG.
59 is a block diagram showing a configuration of a horizontal interpolation coefficient generation device in FIG. 56. FIG.
60 is a block diagram showing a configuration of the horizontal interpolation processing apparatus in FIG. 56. FIG.
FIG. 61 is a diagram illustrating a state of pixels stored in a direct memory access circuit.
[Explanation of symbols]
103; Memory arbiter, 112; Image processing device,
201; memory arbiter I / F, 202; data conversion processing device,
203; Halftone processing device; 204; Parameter storage device.

Claims (10)

メモリアービターI/Fとデータ変換処理手段とハーフトーン処理手段とを有し、
前記メモリアービターI/Fは、1ラインの画像データを前記データ変換処理手段へ転送し、かつ垂直方向に変倍後の所定ライン分のデイザデータを前記ハーフトーン処理手段へ転送し、前記ハーフトーン処理手段によるハーフトーン処理後のデータを出力するとともに、垂直方向の変倍処理を管理し、
前記データ変換処理手段は、前記メモリアービターI/Fから転送された画像データに対して水平方向の変倍処理、色変換処理、フィルタ処理等の画像処理を行い、水平方向の各ライン毎の画像処理後のデータを前記ハーフトーン処理手段に転送し、
前記ハーフトーン処理手段は、前記メモリアービターI/Fからの各ラインの垂直方向の変倍処理後の所定ライン分のデイザデータと、前記データ変換処理手段からの水平方向の各ライン毎の前記画像処理後のデータとを受け取り、ハーフトーン処理を行うことを特徴とする画像処理装置。
A memory arbiter I / F, data conversion processing means, and halftone processing means;
The memory arbiter I / F transfers one line of image data to the data conversion processing means, and also transfers dither data for a predetermined line after scaling in the vertical direction to the halftone processing means. Output the data after halftone processing by means, and manage the scaling process in the vertical direction,
The data conversion processing means performs image processing such as horizontal scaling processing, color conversion processing, filter processing, etc. on the image data transferred from the memory arbiter I / F, and performs image processing for each line in the horizontal direction. Transfer the processed data to the halftone processing means,
The halftone processing means includes dither data for a predetermined line after the scaling process in the vertical direction of each line from the memory arbiter I / F, and the image processing for each horizontal line from the data conversion processing means. An image processing apparatus that receives later data and performs halftone processing.
前記データ変換処理手段は、最近傍法により変倍処理を行う変倍処理手段を有する請求項1記載の画像処理装置。  The image processing apparatus according to claim 1, wherein the data conversion processing unit includes a scaling processing unit that performs scaling processing by a nearest neighbor method. 前記データ変換処理手段は、バイリニア補間法により変倍処理を行う変倍処理手段を有する請求項1記載の画像処理装置。  The image processing apparatus according to claim 1, wherein the data conversion processing unit includes a scaling processing unit that performs scaling processing by a bilinear interpolation method. 前記変倍処理手段は、前記ハーフトーン処理手段の並列に処理する画素と同じ数の画素を並列に変倍処理することが可能な変倍画素係数生成手段を有する請求項2記載の画像処理装置。  The image processing apparatus according to claim 2, wherein the scaling processing means includes scaling pixel coefficient generation means capable of scaling the same number of pixels as the pixels processed in parallel by the halftone processing means. . 前記変倍画素係数生成手段は、前記ハーフトーン処理手段の並列処理数と同じ数の画素のX幅を求めることが可能な並列X幅生成手段と、その複数のX幅を受け取り、前記ハーフトーン処理手段の並列処理数へ分けて出力する出力X幅生成手段とを有する請求項4記載の画像処理装置。The scaling pixel coefficient generation means receives a parallel X width generating means capable of obtaining the X width of the same number of pixels as the number of parallel processing of the halftone processing unit, the plurality of X width, the half-tone The image processing apparatus according to claim 4, further comprising: an output X width generation unit that outputs the processing unit according to the number of parallel processes. 前記ハーフトーン処理手段は、水平方向に複数の画素を並列に比較する並列比較手段と、デイザパターンメモリから受け取った水平方向に複数の閾値マトリックスを現在の比較する画素から水平方向に複数の閾値マトリックスを切り出す比較パターン切り出し手段とを有する請求項記載の画像処理装置。The halftone processing means includes a parallel comparison means for comparing a plurality of pixels in the horizontal direction in parallel, and a plurality of threshold matrixes in the horizontal direction received from the dither pattern memory, and a plurality of threshold values in the horizontal direction. The image processing apparatus according to claim 2 , further comprising a comparison pattern cutout unit that cuts out the matrix. 前記比較パターン切り出し手段は、前記変倍処理手段から受け取った有効画素数に基づいて、デイザパターンメモリから受け取った水平方向に複数の閾値マトリックスを現在の比較する画素から水平方向に複数の閾値マトリックスを切り出す請求項記載の画像処理装置。The comparison pattern cutout unit is configured to convert a plurality of threshold matrixes in the horizontal direction received from the dither pattern memory based on the number of effective pixels received from the scaling processing unit to a plurality of threshold value matrices in the horizontal direction from the current pixel to be compared. 7. The image processing apparatus according to claim 6, wherein the image processing device is cut out. 前記ハーフトーン処理手段は、前記並列比較手段から受け取った水平方向に複数の画素を、前記変倍処理手段から受け取った有効画素数だけ、固定長のデータへ入れ込んでいく固定長生成手段を有する請求項2又は6記載の画像処理装置。  The halftone processing means includes fixed length generation means for inserting a plurality of pixels in the horizontal direction received from the parallel comparison means into fixed length data by the number of effective pixels received from the scaling processing means. The image processing apparatus according to claim 2 or 6. 前記変倍処理手段は、変倍される画素を所定の幅に変換し、前記ハーフトーン処理手段が処理可能な水平方向にMAXの並列処理画素数に合わせて出力する請求項2記載の画像処理装置。  3. The image processing according to claim 2, wherein the scaling processing unit converts a pixel to be scaled into a predetermined width, and outputs the pixel according to the number of parallel processing pixels of MAX in a horizontal direction that can be processed by the halftone processing unit. apparatus. 前記変倍処理手段は、垂直方向の複数の補間点と、処理可能な水平方向にMAXの拡大率まで並列に求められた水平方向の複数の補間係数とに基づいて、水平方向の複数の補間点を求める水平補間手段と、実際に補間すべき画素の個数を求める有効数カウント手段とを有する請求項3記載の画像処理装置。  The scaling processing means includes a plurality of horizontal interpolation points based on a plurality of interpolation points in the vertical direction and a plurality of interpolation coefficients in the horizontal direction obtained in parallel up to the maximum enlargement ratio in the processable horizontal direction. 4. An image processing apparatus according to claim 3, further comprising horizontal interpolation means for obtaining a point and effective number counting means for obtaining the number of pixels to be actually interpolated.
JP2002008514A 2002-01-17 2002-01-17 Image processing device Expired - Fee Related JP4118052B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002008514A JP4118052B2 (en) 2002-01-17 2002-01-17 Image processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002008514A JP4118052B2 (en) 2002-01-17 2002-01-17 Image processing device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005324237A Division JP4298695B2 (en) 2005-11-09 2005-11-09 Image processing device

Publications (2)

Publication Number Publication Date
JP2003208608A JP2003208608A (en) 2003-07-25
JP4118052B2 true JP4118052B2 (en) 2008-07-16

Family

ID=27646753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002008514A Expired - Fee Related JP4118052B2 (en) 2002-01-17 2002-01-17 Image processing device

Country Status (1)

Country Link
JP (1) JP4118052B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084224A (en) 2011-10-12 2013-05-09 Ricoh Co Ltd Image forming apparatus

Also Published As

Publication number Publication date
JP2003208608A (en) 2003-07-25

Similar Documents

Publication Publication Date Title
US8842328B2 (en) Image processing device
EP1471723B1 (en) Image processing method for superimposing high-resolution character data on low-resolution image data
US7009622B2 (en) Image processing apparatus, image processing method, and image processing program
JP2003008888A (en) Image processor and processing method therefor
JP2011135387A (en) Image processing apparatus and image forming apparatus
JP4118052B2 (en) Image processing device
KR20010051829A (en) Apparatus and method for processing images, and computer product
JP2003283775A (en) Image processing apparatus and image processing method
JP4298695B2 (en) Image processing device
EP1450214A1 (en) Data conversion system for image processing and image forming apparatus
JP2007180607A (en) Image processing apparatus and image processing method
JP5740991B2 (en) Image processing apparatus and image processing method
JP2008023959A (en) Image processor, image processing method and program
JP5662675B2 (en) Image forming apparatus and control method thereof
JP2004282239A (en) Image processor
JP3885282B2 (en) Print data processing apparatus and print data processing method
JP2020071410A (en) Image processing device, image forming device, program, and image processing method
JP2007313845A (en) Image processing apparatus, image processing method, and computer-readable recording medium
JP4675864B2 (en) Image forming apparatus
JP2004242213A (en) Image processing apparatus, image processing method, color conversion processing apparatus, color conversion processing method, and storage medium
JP3919430B2 (en) Image processing apparatus and method
JP7521311B2 (en) Reading device, image forming device, image processing method and program
JP2009169727A (en) Image processing apparatus, image processing method and program
JP4012833B2 (en) Image rotation processing apparatus, image rotation processing method, and storage medium
JP3793050B2 (en) Multiple arithmetic circuit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080331

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080422

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120502

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120502

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130502

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130502

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees