JP2004282239A - Image processor - Google Patents
Image processor Download PDFInfo
- Publication number
- JP2004282239A JP2004282239A JP2003068500A JP2003068500A JP2004282239A JP 2004282239 A JP2004282239 A JP 2004282239A JP 2003068500 A JP2003068500 A JP 2003068500A JP 2003068500 A JP2003068500 A JP 2003068500A JP 2004282239 A JP2004282239 A JP 2004282239A
- Authority
- JP
- Japan
- Prior art keywords
- data
- image
- parallel
- processing
- pixels
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 721
- 230000015654 memory Effects 0.000 claims abstract description 187
- 238000000034 method Methods 0.000 claims description 169
- 230000008569 process Effects 0.000 claims description 130
- 238000006243 chemical reaction Methods 0.000 claims description 129
- 239000011159 matrix material Substances 0.000 claims description 82
- 238000010586 diagram Methods 0.000 description 114
- 238000012546 transfer Methods 0.000 description 48
- 230000001186 cumulative effect Effects 0.000 description 34
- 238000004458 analytical method Methods 0.000 description 11
- 238000004140 cleaning Methods 0.000 description 11
- 230000009467 reduction Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000032258 transport Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 108091008695 photoreceptors Proteins 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000005956 quaternization reaction Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Landscapes
- Color, Gradation (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
- Facsimile Image Signal Circuits (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、たとえばカラー画像形成装置などのプリンタコントローラに利用され、多値画像データを2値画像に変換するハーフトーン処理装置を備え、高速処理が可能な画像処理装置に関する。
【0002】
【従来の技術】
昨今のページプリンタなどの画像形成装置において高解像度化および高速出力の要求が強くなってきており、この画像処理をCPUの性能のみでは実現することが困難になってきている。特に、カラープリンタでは、各種の画像処理と、C(シアン),M(マゼンタ),Y(イエロー),K(ブラック)版の変倍処理、ディザ処理、色変換処理など多くの処理を必要とする。近年、半導体技術の進歩によりCPUで行なわれた処理の1部をハードウエアで行なうことが可能となってきている。たとえば、ハードウェアアクセラレータをFPGA(field programmable gate array:大規模PLD)で実現するシステムが開示されている(たとえば、特許文献1参照。)。
【0003】
ところで、画像の変倍処理技術は、入力機器および出力機器間で取り扱われる画像の解像度が異なる場合に入力画像と同サイズの出力画像を得るために必要とされる技術である。この変倍処理の方法としては、最近傍法やバイリニア補間法、3次補間法などが知られている。そして、従来、CPUのワーク領域にソース画像を解像度変換を行なったものを展開し、その後、ハートーン処理を行ないバンドバッファに書込んでいた。
【0004】
最近傍法は、補間したい点に最も近い画素に補間するアリゴリズムである。バイリニア補間法は、補間対象の点の周囲4点から、線形補間によって補間データを求める方法であり、点Zの周辺の4点J,I,G,Hから以下のような式で表される。
【0005】
3次補間法は、点Zの周辺の16点から、以下に示すような演算式(数1)で表される。こここで、C(t)はサンプリング定理を構成する関数sinπx/πxの近似式である。
【0006】
【数1】
【0007】
これらの補間法を比較すると、最近傍法は処理が軽いがそれほど良好ではなく、バイリニア補間法は処理容量などは一般的であり、普通の画質である。3次補間法は処理が複雑であるが、その分、良好な画質が得られる。
【0008】
さて、ハーフトーンデータを高速に生成する装置として、しきい値マトリクッスデータのメモリとは別にしきい値マトリックス分を複数の高速メモリに交互に転送し、ハーフトーン処理は高速メモリからしきい値データを読み出すことで実行されることが開示されている(たとえば、特許文献2参照。)。しかしながら、この装置は、少ないメモリで高速にハーフトーン生成を行なうことを狙いとしたもので、基本的に飛躍的な高速処理を実現するものではなかった。
【0009】
図91に従来におけるハーフトーン生成装置の構成を示す(たとえば、特許文献3参照。)。図91において、まず、入力される多値画像データのハーフトーン化に先だって、画像データ走査信号SCANYが閾値データ読み出し回路500に読み込まれる。閾値データ読み出し回路500は、閾値データアドレス信号THMAを閾値マトリクスデータメモリ501に出力し、ここから所望の閾値データを4つづつ(32bitづつ)出力し、ラッチ502を介してシフトレジスタ503に入力する。閾値データ読み出し制御回路500は、当該走査ラインに対する全ての閾値データの入力が終了するまで、すなわち53回閾値データアドレス信号THMAの出力を繰り返す。
【0010】
シフトレジスタ503に当該走査ラインに対する全ての閾値データが入力された後、閾値データ選択制御回路504から出力される閾値データセレクト信号TDSとシフト信号ST2により、シフトレジスタ505に当該走査ラインに対する全ての閾値データがセットされる。シフトレジスタ503に上記のように全ての閾値データがセットされた後、閾値データ選択制御回路504から出力される比較データセレクト信号CDSにより選択される閾値データと所定の多値画像データの大小比較による2値化が開始される。これらの選択閾値データと所定の画素の多値画像データの大小比較は、コンパレータ507a〜507hによって並列的に実行され、バッファメモリ書き込み制御回路508で制御されるバッファメモリ510に出力される。
【0011】
図92に従来におけるハーフトーン生成装置の構成を示す(たとえば、特許文献4参照。)。このハーフトーン生成装置は、閾値マトリクスデータを記憶する閾値マトリクス格納メモリ512からハーフトーンを生成する走査ラインに適用する全ての閾値データを一括して読み出す閾値データ読み出し制御回路511・閾値データフェッチレジスタ513と、当該閾値データの中から、ハーフトーンを生成すべき複数の画素の位置に対応する複数の閾値データを選択して出力する閾値データ選択制御回路514・クロスバスイッチ515・閾値データデータレジスタ516と、ハーフトーン生成対象の複数の画素データと上記選択出力された複数の閾値データとの比較処理を並列に実行し、複数のハーフトーンデータを同時に生成するコンパレータ517a〜517h・出力レジスタ518とを備え、多値画像を形成する画素データを閾値マトリクスデータと比較することにより多値画像の画素データに基づくハーフトーンデータを生成する
【0012】
図93に従来における印刷データ生成装置(データ処理部)の構成を示す(たとえば、特許文献5参照。)。この装置は、RAM530、入力バッファ531、データ選択回路532、拡大縮小カウンタ533、ニ値化回路534、ディザデーダ回路535、出力バッファ539を備えている。
【0013】
特に、図93において、ディザメモリの使用方法として、たとえば16×16マトリクスのディザパターンを採用する場合には、ディザデータのデータ量が16ライン分となる。このような大量の閾値を全て格納しておくようなメモリを内蔵するのは不経済である。この場合には、ディザデータをRAM530に格納しておき、所定のタイミングで所定量づつ分割して受け入れる破線枠で図示するダイレクトメモリアクセス回路を設ける。1画素分のデータに対して4個の閾値を順番に供給し、4個のニ値化データを出力するような制御もできる。ニ値化処理以前のデータ転送クロックに対してニ値化処理後のデータ転送クロックを4倍にすればよいと記述されている。
【0014】
【特許文献1】
特開2000−90237号公報
【特許文献2】
特開平6−6606号公報
【特許文献3】
特開2000−92321号公報(図3)
【特許文献4】
特開2000―165672号公報(図2)
【特許文献5】
特開2001―150739号公報(第11−13頁、図6)
【0015】
【発明が解決しようとする課題】
しかしながら、上記に示されるような従来における各技術においては以下のような問題点があった。まず、CPUのワーク領域にソース画像を解像度変換を行なったものを展開し、ハートーン処理後にバンドバッファに書込む方法にあっては、CPUのワーク領域を大きく使用し、かつ画像の最大の大きさであるバンドバッファ(メモリ)と同じサイズのワーク領域を必要とする。
【0016】
また、特許文献3および特許文献4に開示されている装置にあっては、しきい値マトリックスメモリから読み出されるしきい値データを処理走査ラインが終了するまで、再利用可能なように処理に適用する全しきい値データをレジスタに取り込み、これを選択的に複数の比較手段に出力し、並列的な比較処理を実行し、レジスタにセットされたしきい値データを順次シフトし、これを繰り返し使用するものの、しきい値マトリックスサイズが大きくなるにしたがって、しきい値データを選択し、変倍データに合わせることはゲート数の増大を招来させることになる。
【0017】
また、特許文献5に開示されている印刷データ処理装置にあっては、ディザデーダをRAMに格納しておき、所定のタイミングで所定量づつ分割し受け入れるダイレクトメモリアクセス回路を設けることが記述されているが、どのようなタイミングでどのようにハーフトーン処理を行なうかが不明である。また、この印刷データ処理装置は、バスを介してCPU、メモリ、ROM、印刷装置と接続されているなどの構成のため、ハードウエア面において複雑であった。
【0018】
本発明は、上記に鑑みてなされたものであって、画像変倍後にハーフトーン処理を行なうための無駄なワークメモリ領域を不要にし、かつハーフトーン処理における並列処理数分の画素を変倍後に供給することにより、高速処理を実現することを第1の目的とする。
【0019】
また、画像データの読み込み処理を中断することなく、画像データの読み込み処理と画像処理とを並列に処理可能とすることにより、高速処理を実現することを第2の目的とする。
【0020】
【課題を解決するための手段】
上記の目的を達成するために、請求項1にかかる画像処理装置にあっては、複数の多値データを入力し、この複数の多値データを並列にハーフトーン処理するハーフトーン処理手段と、前記ハーフトーン処理手段が並列に処理する画素と同数の画素を並列に変倍処理し、前記ハーフトーン処理手段に供給する変倍処理手段と、を備えたものである。
【0021】
この発明によれば、処理対象の複数の多値データを変倍処理手段に入力し、このとき、変倍処理手段はハーフトーン手段が並列に処理する画素数分の画素を常に供給することにより、最小限のハードウエアでの高速処理が実現する。
【0022】
また、請求項2にかかる画像処理装置にあっては、前記ハーフトーン処理手段は、走査ラインに適用するすべてのしきい値と、前記複数の多値データとを並列に比較する並列比較手段と、走査ラインに適用するすべてのしきい値マトリックスを記憶する水平しきい値マトリックス記憶手段と、前記複数の多値データを前記しきい値マトリックスの位置へシフトさせる多値データシフト手段と、を有するものである。
【0023】
この発明によれば、請求項1のハーフトーン処理装置において、しきい値マトリックス記憶手段から読み出されるしきい値データを処理走査ラインが終了するまで、再利用可能なように処理に適用する全しきい値データを取り込み、複数の変倍データを対応するしきい値と比較するためにシフトさせ、複数の変倍データと並列に比較することにより、複数ドットの2値化処理を高速に行なうことが可能になる。
【0024】
また、請求項3にかかる画像処理装置にあっては、前記ハーフトーン処理手段は、さらに、前記並列比較手段から受け取った複数の画素を、有効画素数だけ固定長のデータに入れ込んでいく固定長データ生成手段を有するものである。
【0025】
この発明によれば、請求項2のハーフトーン処理手段において、さらに、並列比較手段から受け取った複数の画素を、有効画素数だけ固定長のデータに加えていく固定長データ生成手段を有することにより、従来のような大きなハードウエア構成を必要とせずに固定長データを生成することが可能になる。
【0026】
また、請求項4にかかる画像処理装置にあっては、前記変倍処理手段は、前記ハーフトーン処理手段の並列処理する画素と同じ数の元画素の水平方向の画素に対し変倍後の各画素のX幅を求める変倍画素係数生成手段と、前記変倍画素係数生成手段による変倍後の各画素のX幅から、同じ数の元画像の水平方向の画素をデータ変換する変倍画素変換手段と、を有するものである。
【0027】
この発明によれば、請求項1の変倍処理手段において、変倍画素係数生成手段でハーフトーン処理手段の並列処理する画素と同じ数の元画素の水平方向の画素に対し変倍後の各画素のX幅を求め、その変倍後の各画素のX幅から、変倍画素変換手段が同じ数の元画像の水平方向の画素をデータ変換することにより、水平方向に並列に変倍処理を高速に行なうことが可能になる。
【0028】
また、請求項5にかかる画像処理装置にあっては、前記変倍画素係数生成手段は、前記ハーフトーン処理手段の並列処理数と同じ数の画素のX幅を求める並列X幅生成手段と、前記並列X幅生成手段から複数のX幅を受け取り、前記ハーフトーン処理手段の並列処理数へ分けて出力する出力X幅生成手段と、を有するものである。
【0029】
この発明によれば、請求項4の変倍画素係数生成手段において、並列X幅生成手段でハーフトーン処理手段の並列処理数と同じ数の画素のX幅を求め、この複数のX幅を出力X幅生成手段が受け取り、ハーフトーン処理手段の並列処理数へ分けて出力することにより、水平方向(X方向)の並列変倍処理が実現する。
【0030】
また、請求項6にかかる画像処理装置にあっては、複数の多値データを入力し、この複数の多値データを並列にハーフトーン処理するハーフトーン処理手段と、水平方向に画像変換処理を行なうデータ変換処理手段と、前記データ変換処理手段と前記ハーフトーン処理手段とが必要とするデータと、前記ハーフトーン手段によるハーフトーン処理後のメモリのリード/ライトを制御するメモリ制御手段と、を備えたものである。
【0031】
この発明によれば、複数の多値データを入力し、この複数の多値データを並列にハーフトーン処理するハーフトーン処理手段と、水平方向に画像変換処理を行なうデータ変換処理手段と、を備え、メモリ制御手段が、データ変換処理手段とハーフトーン処理手段とが必要とするデータと、ハーフトーン手段によるハーフトーン処理後のメモリのリード/ライトを制御する構成とすることにより、最小限のハードウエア構成で、画像データの読み込み処理を中断することなく画像処理を並列に行なうことが可能になる。
【0032】
また、請求項7にかかる画像処理装置にあっては、前記メモリ制御手段は、垂直方向に変倍処理を実行し、かつ垂直方向の変倍率に応じて必要なディザデータを選択し、読み込むデータ入力手段を有するものである。
【0033】
この発明によれば、請求項6において、メモリ制御手段は、垂直方向(Y方向)に変倍処理を実行し、かつ垂直方向の変倍率に応じて必要なディザデータを選択し、読み込むデータ入力手段を有することにより、画像の読み込みと画像処理を並列に行なうことが可能になる。
【0034】
また、請求項8にかかる画像処理装置にあっては、前記データ変換処理手段は、最近傍法にしたがって変倍処理を実行するものである。
【0035】
この発明によれば、請求項6のデータ変換処理手段が、最近傍法にしたがって変倍処理を実行することにより、画像を変倍処理した後に、直接にハーフトーン処理を行なうための無駄なワークメモリの領域を必要とせずに、高速の画像処理が実現する。
【0036】
また、請求項9にかかる画像処理装置にあっては、前記データ変換処理手段は、バイリニア補間法にしたがって変倍処理を実行するものである。
【0037】
この発明によれば、請求項6のデータ変換処理手段が、バイリニア補間法にしたがって変倍処理を実行することにより、画像を変倍処理した後に、直接にハーフトーン処理を行なうための無駄なワークメモリの領域を必要とせずに、高速の画像処理が実現する。
【0038】
また、請求項10にかかる画像処理装置にあっては、前記データ変換処理手段は、前記ハーフトーン処理手段が並列に処理する画素と同数の画素を並列に変倍処理し、前記ハーフトーン手段に供給するものである。
【0039】
この発明によれば、請求項8のデータ変換処理手段は、ハーフトーン処理手段が並列に処理する画素と同数の画素を並列に変倍処理し、ハーフトーン手段に供給することにより、ハーフトーン処理手段の並列処理数分の画素を常に生成することが可能になる。
【0040】
また、請求項11にかかる画像処理装置にあっては、前記データ変換処理手段は、前記ハーフトーン処理手段の並列処理数と同じ数の画素のX幅を求める並列X幅生成手段と、前記並列X幅生成手段から複数のX幅を受け取り、前記ハーフトーン処理手段の並列処理数へ分けて出力する出力X幅生成手段と、を有するものである。
【0041】
この発明によれば、請求項8のデータ変換処理手段において、変倍画素係数生成手段でハーフトーン処理手段の並列処理する画素と同じ数の元画素の水平方向の画素に対し変倍後の各画素のX幅を求め、その変倍後の各画素のX幅から、変倍画素変換手段が同じ数の元画像の水平方向の画素をデータ変換することにより、水平方向に並列に変倍処理を高速に行なうことが可能になる。
【0042】
また、請求項12にかかる画像処理装置にあっては、前記ハーフトーン処理手段は、水平方向に複数の画素を並列に比較する並列比較手段と、水平方向にすべてのしきい値マトリックスを記憶する水平しきい値マトリックス記憶手段と、前記複数の多値データを前記しきい値マトリックスの位置へシフトさせる多値データシフト手段と、を有するものである。
【0043】
この発明によれば、請求項10のハーフトン処理手段が、水平方向に複数の画素を並列に比較する並列比較手段と、水平方向にすべてのしきい値マトリックスを記憶する水平しきい値マトリックス記憶手段と、複数の多値データをしきい値マトリックスの位置へシフトさせる多値データシフト手段と、を有することにより、水平方向に並列にハーフトーン処理を行なうことが可能になる。
【0044】
また、請求項13にかかる画像処理装置にあっては、前記ハーフトーン処理手段は、さらに、前記並列比較手段から受け取った水平方向に複数の画素を、有効画素数だけ固定長のデータに入れ込んでいく固定長データ生成手段を有するものである。
【0045】
この発明によれば、請求項6のハーフトーン処理手段において、さらに、並列比較手段から受け取った複数の画素を、有効画素数だけ固定長のデータに加えていく固定長データ生成手段を有することにより、従来のような大きなハードウエア構成を必要とせずに固定長データを生成することが可能になる。
【0046】
また、請求項14にかかる画像処理装置にあっては、前記データ変換処理手段は、水平方向にMAXの倍率分、並列に画素を求める補間処理手段を有するものである。
【0047】
この発明によれば、請求項9のデータ変換処理手段が、水平方向にMAXの倍率分、並列に画素を求める補間処理手段を有することにより、水平方向に並列に変倍処理を行なうことが可能になる。
【0048】
また、請求項15にかかる画像処理装置にあっては、前記補間処理手段は、水平方向にMAXの倍率分の画素を並列に計算し補間する水平補間手段と、前記水平補間手段での画素の有効数を求める有効数カウント手段と、を有するものである。
【0049】
この発明によれば、請求項9の補間処理手段が、水平方向にMAXの倍率分の画素を並列に計算し補間する水平補間手段と、この画素の有効数(実際に補間すべき個数)を求める有効数カウント手段と、を有することにより、水平方向に並列に変倍処理を行なうことが可能になる。
【0050】
【発明の実施の形態】
以下、本発明にかかる画像処理装置の好適な実施の形態について添付図面を参照し、詳細に説明する。なお、本発明はこの実施の形態に限定されるものではない。
【0051】
(実施の形態1)
この実施の形態1における画像処理装置は、ハーフトーン処理装置の並列処理画素数分の画素を常に供給するために、解像度変換処理において、同じ並列処理画素分の並列処理を行なうことにより、処理の高速化を図ると共に、ハーフトーン処理装置において、しきい値マトリックスメモリから読み出されるしきい値データを処理走査ラインが終了するまで、再利用可能なように処理に適用する全しきい値データをレジスタに取り込み、複数の変倍データを対応するしきい値と比較するためにシフトさせ、複数の変倍データと比較処理することにより、複数ドットの2値化処理を高速に行なうものである。以下、具体的に説明する。
【0052】
図1は、本発明の実施の形態1にかかる画像処理装置を用いたシステム構成を示すブロック図である。図において、符号101は多値画像データが格納されている記憶装置、符号102は記憶装置101から多値画像データを読み込む多値画像読取装置、符号103は後述する画像処理装置、符号104は画像処理装置103で処理された画像データを後段の記憶装置に書きこむためのハーフトーン処理後画像書き込み装置、符号105はハーフトーン処理後の画像データ(2値、4値、16値など)が格納される記憶装置である。
【0053】
画像処理装置103は、プリンタを高速化するためのアクセラレータであり、各画像データの解像度変換後にそれぞれのしきい値マトリックスを使用し、ハーフトーン処理などを行なうものである。
【0054】
図2に拡大された画素および補間された画素の例を示し、図3の拡大・縮小の画像例を示す。これらの図については後述する。
【0055】
図4は、図1における画像処理装置103の構成を示すブロック図である。この画像処理装置103は、図示するように、変倍処理装置106と、ハーフトーン処理装置107と、しきい値マトリックスメモリ108と、パラメータ格納装置109と、を備える。
【0056】
図4の変倍処理装置106は、多値画像読み取り装置102から受け取ったデータを変倍処理し、後段のハーフトーン処理装置へ転送する。ハーフトーン処理装置107は、変倍処理装置106から受け取ったデータをハーフトーン処理し、後段の2値画像書き込み部104に転送する。しきい値マトリックスメモリ108は、しきい値マトリックスを格納する。パラメータ格納装置109は、変倍処理装置106、ハーフトーン処理装置107の各種パラメータを格納するものである。
【0057】
なお、変倍処理装置106に用いられる変倍処理方法としては各種知られているが、ここでは最近傍法を例にとって説明する。最近傍法は、画素値を補間せずに元画素の値を変倍後の幅としてコピーするものである。また、ハーフトーン処理装置107は、ここでは2値化のハーフトーン処理を例にとって説明するが、この他に、4値化、16値化にも同様に適用可能である。
【0058】
図5は、図4における変倍処理装置106の構成を示すブロック図である。この変倍処理装置106は、図示するように、元画素格納装置110と、変倍率生成装置111と、DDA処理装置112と、IX・IYカウント装置113と、変倍画素係数生成装置114と、変倍画素変換装置115と、この変倍処理装置106全体を制御するコントローラ116と、を備える。
【0059】
図5の元画素格納装置110は、ハーフトーン処理装置107が並列に処理する画素分を蓄え後段の変倍画素変換装置115に転送する。変倍率生成装置111は、変倍される画像のソース画像の座標X始点SXS、X終点SXE、Y始点SYS、Y終点SYEと変倍後のディステイネーション画像の座標X始点DXS、X終点DXE、Y始点DYS、Y終点DYEからX,Y方向の変倍率RATEX、RATEYを求め、後段のDDA処理装置112に転送する。
【0060】
また、DDA処理装置112は、変倍率生成装置111からX,Y方向の変倍率とディステイネーション画像の座標X始点DXS、Y始点DYSを受け取り、図2に示す○(拡大された画素)のように、入力された画像の変倍後の座標をDDA(Digtal Diffential Analyze:デジタル微分解析)により随時求める。この例では、補間するために、補間されるX始点XS、X終点XE、Y始点YS、Y終点YEを求め、IX・IYカウント装置113、変倍画素係数生成装置114へ転送する。
【0061】
また、IX・IYカウント装置113は、DDA処理装置112からY方向の始点と終点の各座標値を受け取り、図2の△(補間された画素)のY座標を生成し、コントローラへX座標がX終点DXEと等しくなったことをXENDFL信号で知らせ、Y座標がY終点DYEと等しくなったことをYENDFL信号で知らせる。
【0062】
また、変倍画素係数生成装置114は、DDA処理装置112からの補間する方向の始点XSと変倍率生成装置111により求めたX方向変倍率RATEXを受け取り、変倍率生成装置111の出力する各画素の幅を出力し、変倍画素変換装置115にて画素の変倍処理を行なう。このとき、変倍画素変換装置115の出力するMAX数は、ハーフトーン処理装置107が処理可能なMAXの画素値までである。また、変倍率が1倍があるため、変倍率生成装置111の出力もハーフトーン処理装置107が処理可能なMAXの画素値までとして対応している。そのため、変倍率が、1倍以上の場合、複数クロックにわたってハーフトーン処理装置107が処理可能なMAXの画素ごと出力する。
【0063】
変倍画素変換装置115は、元画素格納装置110から変倍する画素を受け取り、変倍画素係数生成装置114の出力する各画素の幅を受け取り、図3に示すように、変倍する画素の幅を変更することにより、変倍処理を実行する。
【0064】
つぎに、以上のように構成された変倍処理装置106の動作について図6に示すフローチャートを参照し、説明する。この動作はコントローラ116により統括的に実行される。まず、変倍率生成装置111により変倍率を求め(ステップS1001)、さらにDDA処理装置112によりY方向(垂直方向)のDDA処理を行ない、処理するY始点YSとY終点YEを求める(ステップS1002)。続いて、IX・IYカウント装置113の処理するY座標(水平ライン)をYS座標として指定し(ステップS1003)、X方向のDDAの初期化を行なう(ステップS1004)。
【0065】
続いて、DDA処理装置112により、X方向(水平方向)のDDA処理を行ない、処理するX始点XSとX終点XEを求め(ステップS1005)、さらに変倍データを読み込む(ステップS1006)。続いて、変倍画素係数生成装置114により、読み込んだ変倍処理される画素の幅を求める(ステップS1007)。
【0066】
続いて、変倍画素変換装置115により、変倍される画素を求めた幅に変換し、ハーフトーン処理装置107のMAXの並列処理画素数に合わせて出力する(ステップS1008)。ついで、X終点XEが変倍されたディステイネーション画像の座標X終点DXEを超えたか否かを判断する(ステップS1009)。ここで、XE<DXESIZEである場合には、ステップS1005に戻り、一方、XE>DXESIZEであれば、IX・IYカウント処理装置113により、つぎに補間するY座標を求める(ステップS1010)。
【0067】
続いて、その値が補間するY値終点YEを超えたか否かを判断する(ステップS1011)。ここで、IYがY値終点YEを超えていないと判断した場合にはステップS1004に戻り、一方、IYがY値終点YEを超えたと判断した場合には、さらにYEが変倍されたディステイネーション画像の座標Y終点DYEを超えたか否かを判断する(ステップS1012)。ここで、YEがDYEを超えていないと判断した場合にはステップS1002に戻り、一方、YEがDYEを超えたと判断した場合にはこの変倍処理を終了する。
【0068】
つぎに、上述した変倍処理装置106を構成する各機能ブロックについて説明する。図7は、図5における変倍処理装置106に含まれる元画素格納装置110の構成を示すブロック図である。この元画素格納装置110は、レジスタ116a〜116hで構成されている。これら8つのレジスタ116a〜116hは、順次データを格納し、ハーフトーン処理装置107のMAX並列処理の画素分の画素を格納する。
【0069】
図8は、図5における変倍処理装置106に含まれる変倍率生成装置111の構成を示すブロック図である。この変倍率生成装置111は、減算器117a〜117dと、除算器118a,119bと、レジスタ119a,119bと、を備えている。さらに、除算器118aには減算器117a,117bの出力値が入力され、除算器118bには減算器117c,117dの出力値が入力される。また、レジスタ119aは、除算器118aの出力を取り込み、X方向の変倍率(RATEX)を格納する。レジスタ119bは、除算器118bの出力を取り込み、Y方向の変倍率(RATEY)を格納する。
【0070】
図5に示すように、変倍率生成装置111は、変倍される画像のソース画像の座標X始点SXS、X終点SXE、Y始点SYS、Y終点SYEと変倍後のディステイネーション画像の座標X始点DXS、X終点DXE、Y始点DYS、Y終点DYEからX,Y方向の変倍率RATEX,RATEYを求め、DDA処理装置112に転送する。
【0071】
すなわち、変倍率生成装置111は、RATEX=(SXE−SXS)/(DXE−DXS)の演算により、X方向の変倍率(RATEX)を求める。さらに、変倍率生成装置111は、RATEY=(SYE−SYS)/(DYE−DYS)の演算により、Y方向の変倍率(RATEY)を求める。
【0072】
図9は、図5における変倍処理装置106に含まれるDDA処理装置112の構成を示すブロック図である。図において、符号121はマルチプレクサ(MUX)であり、最初のみレジスタ122に初期値のディステイネーション画像の座標X始点DXSを転送し、その順次加算されていく加算器125の出力を送るものである。また、符号122は現在処理中のX値を格納するレジスタ、符号123は乗算器であり、X方向変倍率RATEXとハーフトーン処理装置107のMAXの並列処理画素数を乗算し複数画素の分の微差分を求める。また、符号124は乗算器123で求めた値を格納するレジスタ、符号125はレジスタ122,124それぞれの出力値を加算する加算器、符号126は補間するX終点を格納するレジスタ、符号127は補間するX始点を格納するレジスタである。
【0073】
また、符号128はマルチプレクサ(MUX)であり、最初のみレジスタ129に初期値のディステイネーション画像の座標Y始点DXSを転送し、その順次加算されていく加算器131の出力を送るものである。また、符号129は現在処理中のY値を格納するレジスタ、符号130は変倍率生成装置111で求めたY方向変倍率RATEYを格納するレジスタ、符号125はレジスタ129,130それぞれの出力値を加算する加算器、符号126は補間するY終点を格納するレジスタ、符号127は補間するY始点を格納するレジスタである。
【0074】
このDDA処理装置112は、変倍率生成装置111から出力された変倍率(RATEX、RATEY)とディステイネーション画像のX始点DXS、Y始点DYSを受け取り、図2の○(拡大された画素)に示すように、入力された画像の変倍後の座標をDDA(デジタル微分解析)により随時求める。この例では、DDA処理装置112は、図5に示すように、補間するため、補間されるX始点、X終点、Y始点、Y終点を求め、IX・IYカウント装置113と変倍画素係数生成装置114へ転送する。
【0075】
このとき、X方向においては、ハーフトーン処理装置107のMAXの並列処理画素分のDDAを行なう。そのため、X方向のDDA処理は、図9に示すように、現在のX座標値に変倍率生成装置111で求めたX方向変倍率RATEXにハーフトーン処理装置107のMAXの並列処理画素数を乗算した値を順次加算し、一方、Y方向においては、図9に示すように、現在のY座標に変倍率生成装置111で求めたY方向変倍率RATEYを順次、加算する。
【0076】
図10は、図5における変倍処理装置106に含まれるIX・IYカウント装置113の構成を示すブロック図である。図において、符号135は比較器であり、DDA処理装置112からのXE値とディステイネーション画像の座標X終点DXEを比較し、X座標がX終点DXEと等しくなったことをXENDFL信号として生成する。符号136は比較器であり、DDA処理装置112からのYE値とディステイネーション画像の座標Y終点DYEを比較し、Y座標がY終点DYEと等しくなったことをYENDFL信号として生成する。
【0077】
また、符号137はマルチプレクサ(MUX)であり、最初のみレジスタ138に、初期値のソース画像の座標Y始点SYSを転送し、その後、順次加算されていく加算器139の出力を送る。符号138は現在処理中のY値を格納するレジスタである。符号139は加算器、符号140は比較器であり、現在処理中のY値とDDA処理装置112からのYE値を比較し、Y座標がY終点YEと等しくなったことをIYENDFL信号として出力する。
【0078】
図11は、図5における変倍処理装置106に含まれる変倍画素係数生成装置114の構成を示すブロック図である。この変倍画素係数生成装置114は、ハーフトーン処理装置107の並列処理数と同じ数の画素のX幅を求める並列X幅生成装置141と、その複数のX幅を受け取りハーフトーン処理装置107の並立処理数へ分けて出力する出力X幅生成装置142と、から構成されている。
【0079】
すなわち、この変倍画素係数生成装置114は、DDA処理装置112からの補間するX方向の始点XSと変倍率生成装置111により求めたX方向変倍率RATEXとから、並列X幅生成装置141で元画像格納装置110が出力する画素数分のDDAにより、各画素のX座標を求め、さらにそのX座標から、各画素間のX幅を算出する。ついで、出力X幅生成装置142により、ハーフトーン処理装置107の並列処理数に合わせて出力するための処理を行ない、各画素のX幅の累積加算値と、その画素数を変倍画素変換装置115に送る。
【0080】
図12は、図11の変倍画素係数生成装置114における並列X幅生成装置141の構成を示すブロック図である。この並列X幅生成装置141は、加算器143a〜143fと、減算器144a〜144fと、を備えている。加算器143a〜143fは、DDA処理装置112により求めたX始点と変倍率生成装置111により求めたX方向変倍率RATEXを受け取り、複数画素のX値を求める。減算器144a〜144fは、各画素間の幅を求める。
【0081】
図13は、図11の変倍画素係数生成装置114における出力X幅生成装置142の構成を示すブロック図である。この出力X幅生成装置142は、マルチプレクサ(MUX)145a〜145fと、レジスタ146a〜146fと、累積加算処理装置(A)147と、WXWIDTH更新処理装置148と、出力用XWIDTH生成処理装置149と、累積加算処理装置(B)150と、を備えている。
【0082】
図13に示す出力X幅生成装置142は、並列X幅生成装置141からの各画素のX幅を受け取ってレジスタ146a〜146fに格納し、受け取ったすべての画素が処理し終わるまで保持する。そして、WXWIDTH更新処理装置148により、出力された画素分の各画素のX幅を画素番号の小さいレジスタから減算し、マルチプレクサ145a〜145fを通し、レジスタ146a〜146fを更新する。
【0083】
累積加算処理装置(A)147は、レジスタ146a〜146fに格納しているX幅を累積加算する。WXWIDTH更新処理装置148は、累積加算処理装置(A)147の出力する累積加算値を受け取り各画素点での累積加算値から、ハーフトーン処理装置107のMAX並列処理数を超える最初の累積加算点を求め、その画素までの更新値を生成し、マルチプレクサ145a〜145fを通し、対応するレジスタ146a〜146fの値を更新する。
【0084】
出力用XWIDTH生成処理装置149は、累積加算処理装置(A)147の出力する累積加算値を受け取り各画素点での累積加算値から、ハーフトーン処理装置107のMAX並列処理数を超える最初の累積加算点を求め、その画素までの出力するX幅を求め、累積加算処理装置(B)150へ転送する。累積加算処理装置(B)150は、変倍画素変換装置115の処理に必要な累積加算を行なう。
【0085】
図14は、図13の出力X幅生成装置142における累積加算処理装置(A)147の構成を示すブロック図である。この累積加算処理装置(A)147は、各画素までの累積加算値を求める加算器151a〜151fを備える。
【0086】
つぎに、図13のWXWIDTH更新処理装置148の動作について図15に示すフローチャートを参照し、説明する。まず、0番の画素のX幅がハーフトーン処理装置107の並列処理数(この例では「8」である)以上であるか否かを判断する(ステップS1)。ここで、0番目の並列処理数が8以上であると判断した場合、0番目のX幅からハーフトーン処理装置107の並列処理数を減算し、新たな0番目のX幅値を求める(ステップS2)。
【0087】
ステップS1において0番目の並列処理数が8未満であると判断した場合、0〜1番目までの累積X幅がハーフトーン処理装置107の並列処理数8以上であるか否かを判断する(ステップS3)。ここで、0〜1番目までの累積X幅がハーフトーン処理装置107の並列処理数8以上であると判断した場合、0番目のX幅を0とし、1番目のX幅からハーフトーン処理装置107の並列処理数から0番目のX幅を減算した値を減算し、新たな1番目のX値を求める(ステップS4)。以下、以上の動作順序で該当する各画素間の新たなX幅値を求める処理を実行する(ステップS5〜S17)。
【0088】
つぎに、図13の出力用XWIDTH生成処理装置149の動作について図16に示すフローチャートを参照し説明する。まず、出力する各画素のX幅の初期化を行なう(ステップS21)。続いて、0番目の画素のX幅がハーフトーン処理装置107の並列処理数(この例では「8」である)以上であるか否かを判断する(ステップS22)。ここで、0番目の画素のX幅がハーフトーン処理装置107の並列処理数8であれば、0番目の出力するX幅へハーフトーン処理装置107の並列処理数をセットし、処理する画素数PNUMへハーフトーン処理装置107の並列処理数をセットする(ステップS23)。
【0089】
続いて、0〜1番目までの累積X幅がハーフトーン処理装置107の並列処理数8以上であるか否かを判断する(ステップS24)。ここで、0〜1番目までの累積X幅がハーフトーン処理装置107の並列処理数8以上であると判断した場合、0番目の出力するX幅へ0番目のX幅WXWIDTH0をセットし、1番目の出力するX幅へ、ハーフトーン処理装置107の並列処理数から0番目のX幅を減算した値をセットし、処理する画素数PNUMへハーフトーン処理装置107の並列処理数をセットする(ステップS25)。
【0090】
続いて、0〜2番目までの累積X幅がハーフトーン処理装置107の並列処理数8以上であるか否かを判断する(ステップS26)。ここで、0〜2番目までの累積X幅がハーフトーン処理装置107の並列処理数8以上であると判断した場合、0番目の出力するX幅へ0番目のX幅WXWIDTH0をセットし、1番目の出力するX幅へ、ハーフトーン処理装置107の並列処理数から1番目のX幅までの累積加算値を減算した値をセットし、処理する画素数PNUMへハーフトーン処理装置107の並列処理数をセットする(ステップS27)。
【0091】
以下、同様の手順による動作を実行する(ステップS28〜S37)。続いて、すべての画素のX幅の合計がハーフトーン処理装置107の並列処理数の以下であるため、すべての画素の出力する画素のX幅を更新されてきたレジスタ146a〜146fのX幅の値をセットし、すべての画素のX幅の合計を処理する画素数PNUMへセットする(ステップS38)。
【0092】
図17は、図13の出力X幅生成装置142における累積加算処理装置(B)150の構成を示すブロック図である。この累積加算処理装置(B)150は、図示するように、各画素での累積加算値を求める加算器152a〜152gを備えている。
【0093】
つぎに、変倍画素変換装置115の動作について図18〜図25に示すフローチャートを参照し、説明する。図18は、変倍画素変換装置115の出力画素の0番目の処理動作を示すフローチャートである。まず、変倍画素係数生成装置114から0番目の画素のX幅“DXWIDTH0”が“0”より大きいか否かを判断する(ステップS41)。ここで、0番目の画素のX幅“DXWIDTH0”が“0”より大きいと判断した場合、出力画素0番目は元画素格納装置110のDATA0の値をセットする(ステップS42)。
【0094】
続いて、変倍画素係数生成装置114から出力される0番目〜1番目の画素のX幅の累積の“DXWIDTH1”が“0”より大きいか否かを判断する(ステップS43)。ここで、0番目の画素のX幅“DXWIDTH1”が“0”より大きいと判断した場合、出力画素0番目は元画素格納装置110のDATA1の値をセットする(ステップS44)。
【0095】
続いて、変倍画素係数生成装置114から出力される0番目〜2番目の画素のX幅の累積の“DXWIDTH2”が“0”より大きいか否かを判断する(ステップS45)。ここで、0番目の画素のX幅“DXWIDTH2”が“0”より大きいと判断した場合、出力画素0番目は元画素格納装置110のDATA2の値をセットする(ステップS46)。
【0096】
続いて、変倍画素係数生成装置114から出力される0番目〜3番目の画素のX幅の累積の“DXWIDTH3”が“0”より大きいか否かを判断する(ステップS47)。ここで、0番目の画素のX幅“DXWIDTH3”が“0”より大きいと判断した場合、出力画素0番目は元画素格納装置110のDATA3の値をセットする(ステップS48)。
【0097】
続いて、変倍画素係数生成装置114から出力される0番目〜4番目の画素のX幅の累積の“DXWIDTH4”が“0”より大きいか否かを判断する(ステップS49)。ここで、0番目の画素のX幅“DXWIDTH4”が“0”より大きいと判断した場合、出力画素0番目は元画素格納装置110のDATA4の値をセットする(ステップS50)。
【0098】
続いて、変倍画素係数生成装置114から出力される0番目〜5番目の画素のX幅の累積の“DXWIDTH5”が“0”より大きいか否かを判断する(ステップS51)。ここで、0番目の画素のX幅“DXWIDTH5”が“0”より大きいと判断した場合、出力画素0番目は元画素格納装置110のDATA5の値をセットする(ステップS52)。
【0099】
続いて、変倍画素係数生成装置114から出力される0番目〜6番目の画素のX幅の累積の“DXWIDTH6”が“0”より大きいか否かを判断する(ステップS53)。ここで、0番目の画素のX幅“DXWIDTH6”が“0”より大きいと判断した場合、出力画素0番目は元画素格納装置110のDATA6の値をセットする(ステップS54)。
【0100】
続いて、変倍画素係数生成装置114から出力される0番目〜7番目の画素のX幅の累積の“DXWIDTH7”が“0”より大きいか否かを判断する(ステップS55)。ここで、0番目の画素のX幅“DXWIDTH7”が“0”より大きいと判断した場合、出力画素0番目は元画素格納装置110のDATA7の値をセットする(ステップS56)。
【0101】
図19は、変倍画素変換装置115の出力画素の1番目の処理動作を示すフローチャートである。まず、変倍画素係数生成装置114から0番目の画素のX幅“DXWIDTH0”が“1”より大きいか否かを判断する(ステップS61)。ここで、0番目の画素のX幅“DXWIDTH0”が“1”より大きいと判断した場合、出力画素1番目は元画素格納装置110のDATA0の値をセットする(ステップS62)。
【0102】
続いて、変倍画素係数生成装置114から出力される0番目〜1番目の画素のX幅の累積の“DXWIDTH1”が“1”より大きいか否かを判断する(ステップS63)。ここで、0番目の画素のX幅“DXWIDTH1”が“1”より大きいと判断した場合、出力画素1番目は元画素格納装置110のDATA1の値をセットする(ステップS64)。
【0103】
続いて、変倍画素係数生成装置114から出力される0番目〜2番目の画素のX幅の累積の“DXWIDTH2”が“1”より大きいか否かを判断する(ステップS65)。ここで、0番目の画素のX幅“DXWIDTH2”が“1”より大きいと判断した場合、出力画素1番目は元画素格納装置110のDATA2の値をセットする(ステップS66)。
【0104】
続いて、変倍画素係数生成装置114から出力される0番目〜3番目の画素のX幅の累積の“DXWIDTH3”が“1”より大きいか否かを判断する(ステップS67)。ここで、0番目の画素のX幅“DXWIDTH3”が“1”より大きいと判断した場合、出力画素1番目は元画素格納装置110のDATA3の値をセットする(ステップS68)。
【0105】
続いて、変倍画素係数生成装置114から出力される0番目〜4番目の画素のX幅の累積の“DXWIDTH4”が“1”より大きいか否かを判断する(ステップS69)。ここで、0番目の画素のX幅“DXWIDTH4”が“1”より大きいと判断した場合、出力画素1番目は元画素格納装置110のDATA4の値をセットする(ステップS70)。
【0106】
続いて、変倍画素係数生成装置114から出力される0番目〜5番目の画素のX幅の累積の“DXWIDTH5”が“1”より大きいか否かを判断する(ステップS71)。ここで、0番目の画素のX幅“DXWIDTH5”が“1”より大きいと判断した場合、出力画素1番目は元画素格納装置110のDATA5の値をセットする(ステップS72)。
【0107】
続いて、変倍画素係数生成装置114から出力される番目〜6番目の画素のX幅の累積の“DXWIDTH6”が“1”より大きいか否かを判断する(ステップS73)。ここで、0番目の画素のX幅“DXWIDTH6”が“1”より大きいと判断した場合、出力画素1番目は元画素格納装置110のDATA6の値をセットする(ステップS74)。
【0108】
続いて、変倍画素係数生成装置114から出力される0番目〜7番目の画素のX幅の累積の“DXWIDTH7”が“1”より大きいか否かを判断する(ステップS75)。ここで、0番目の画素のX幅“DXWIDTH7”が“1”より大きいと判断した場合、出力画素1番目は元画素格納装置110のDATA7の値をセットする(ステップS76)。
【0109】
このように、この変倍画素変換装置115は、ハーフトーン処理装置107の出力装置の並列処理画素分(この例では「8」)の画素を求める。したがって、上述した図18、図19に続いて出力画素の2番目以降の処理を図20〜図25に示すフローチャートにしたがって実行する。すなわち、図20では出力画素の2番目の処理(ステップS81〜S96)、図21では出力画素の3番目の処理(ステップS101〜S116)、図22では出力画素の4番目の処理(ステップS121〜S136)、図23では出力画素の5番目の処理(ステップS141〜S156)、図24では出力画素の6番目の処理(ステップS161〜S176)、図25では出力画素の7番目の処理(ステップS181〜S196)、を実行する。
【0110】
つぎに、ハーフトーン処理装置107について詳述する。図26は、本発明の実施の形態にかかる画像処理装置103のハーフトーン処理装置107の構成を示すブロック図である。このハーフトーン処理装置107は、水平マトリックスサイズが、並列に比較される多値データの数より大きい場合の構成例について示している。
【0111】
図26において、符号161はしきい値マトリックスアドレス生成装置、符号162は水平しきい値マトリックス記憶装置、符号163は多値データシフト装置、符号164は並列比較装置、符号165は有効BIT生成装置、符号166は固定長データ生成装置、符号167はこのハーフトーン処理装置107全体を制御するコントローラである。
【0112】
しきい値マトリックスアドレス生成装置161は、パラメータ格納装置109から水平しきい値マトリックスサイズの大きさなどを受け取り、しきい値マトリックスメモリ108のアドレスを生成する。水平しきい値マトリックス記憶装置162は、しきい値マトリックスメモリ108から水平ラインで使用されるすべてのしきい値マトリックスを読み込み記憶する。多値データシフト装置163は、変倍処理装置106から水平方向に複数の変倍後の多値データを受け取り、水平しきい値マトリックス記憶装置162のしきい値マトリックスに対応する位置を示す多値データ始点により、多値データをシフトさせる。
【0113】
並列比較装置164は、多値データシフト装置163によりシフトされたシフトデータと水平しきい値マトリック記憶装置162からのしきい値マトリックスとを並列に比較する。有効BIT生成装置165は、並列比較装置164で求めた2値データを有効データとして左シフトさせ、固定長データ生成装置166へ有効データの長さである有効データ数を送ることにより、有効データを切りだしやすくする。
【0114】
固定長データ生成装置166は、有効BIT生成装置165で求めた2値データをコントローラ167が示す有効数(多値データ数)分だけ、固定長のデータに加えていくことにより、固定長のデータを生成する。コントローラ167は、変倍処理装置106から、水平補間された画素の有効数を受け取り、このハーフトーン処理装置107全体を制御する。
【0115】
図27は、図26のハーフトーン処理装置107の具体的構成例を示すブロック図であり、水平方向のしきい値マトリックスサイズ(m)が23(24個)の場合の例について示している。
【0116】
図28は、本発明の実施の形態にかかるハーフトーン処理装置107の動作を示すフローチャートである。このハーフトーン処理装置107はコントローラ167によって実行される。
【0117】
図28において、まず、しきい値マトリックスアドレス生成装置161が示すしきい値マトリックスメモリ108より水平方向のしきい値マトリックスを読み込み(ステップS201)。多値データ始点に多値オフセット数をセットする(ステップS202)。ついで、水平しきい値マトリックス記憶装置162にしきい値マトリックスメモリ108から読み込んだ水平方向のしきい値マトリックスを記憶する(ステップS203)。
【0118】
続いて、多値データシフト装置163により、多値データ始点だけシフトする(ステップS204)。さらに並列比較装置164により、多値データシフト装置163の出力と水平しきい値マトリックス記憶装置162の出力との比較を行ない、2値化する(ステップS205)。ついで有効BIT生成装置165により、2値化された有効値を先頭にシフトし(ステップS206)、固定長データ生成装置166により、有効BIT生成装置165で切り出されたデータを固定長データに追加していく(ステップS207)。
【0119】
続いて、多値データ始点=(多値データ始点+多値有効数)の処理を実行し(ステップS208)、その多値データ始点が水平しきい値マトリックスサイズ以上であるか否かを判断する(ステップS209)。ここで、多値データ始点が水平しきい値マトリックスサイズ以上であると判断した場合(判断、Yes)、多値データ始点=(多値データ始点―水平しきい値マトリックスサイズ)とする(ステップS210)。
【0120】
ステップS209で多値データ始点が水平しきい値マトリックスサイズ以上ではないと判断した場合、あるいはステップS210を実行すると、さらに水平方向にすべて上述の処理が終了したか否かを判断し(ステップS211)、終了していなければステップS204に戻り、終了したならば、さらに垂直方向にすべて終了した否かを判断する(ステップS212)。ここで、垂直方向にすべて終了していなければステップS201に戻り、垂直方向においてもすべて終了したと判断した場合、すなわち、水平・垂直方向においてすべて終了したならば、このハーフトーン処理を終了する。
【0121】
つぎに、図26のハーフトーン処理装置107における多値データシフト装置163の動作について図29〜図34に示すフロチャートを参照し説明する。これらの図29〜図34のフローチャートでは、変倍処理装置106から変倍後の複数の多値データ(本例では0〜7)を受け取り、水平しきい値マトリックス記憶装置162のしきい値マトリックスサイズ(本例では24個)に対応する位置を示す多値データ始点により、多値データをシフトさせる。
【0122】
図29に示すフローチャートでは、多値データ始点が0、1、2、3であるか否かをそれぞれ判断し(ステップS221、S223、S225、S227)、多値データ始点が該当する値であれば、多値データをそれぞれシフトさせる(ステップS222、S224、S226、S228)。続いて、図30に示すように、多値データ始点が4、5、6、7であるか否かをそれぞれ判断し(ステップS229、S231、S233、S235)、多値データ始点が該当する値であれば、多値データをそれぞれシフトさせる(ステップS230、S232、S234、S36)。以下、同様に図31〜図34に示すように、多値データ始点8〜23についてそれぞれ多値データのシフトを実行する。
【0123】
つぎに、ハーフトーン処理装置107を構成する各機能ブロックについて説明する。図35は、図27のハーフトーン処理装置107における並列比較装置164の構成を示すブロック図である。この並列比較装置164は、水平方向のしきい値マトリクッスサイズが“24個”であるため、24個の比較器170(0)〜170(23)が配列されている。ここでは、多値データシフト装置163によりシフトされた変倍データと水平しきい値マトリックス記憶装置162から複数個のしきい値とが各画素で比較する。
【0124】
つぎに、図26のハーフトーン処理装置107における有効BIT生成装置165の動作について図36〜図41に示すフロチャートを参照し説明する。これらの図36〜図41のフローチャートでは、並列比較装置164で求めた2値データ(本例では0〜23)を有効データを左シフトさせ、固定長データ生成装置166へ、有効データの長さである有効2値データ(0〜7)を送る。
【0125】
図36に示すフローチャートでは、多値データ始点が0、1、2、3であるか否かをそれぞれ判断し(ステップS271、S273、S275、S277)、多値データ始点が該当する値であれば、図示するように、2値データそれぞれに対応する有効2値データをセットする(ステップS272、S274、S276、S278)。続いて、図37に示すように、多値データ始点が4、5、6、7であるか否かをそれぞれ判断し(ステップS279、S281、S283、S285)、多値データ始点が該当する値であれば、図示するように、2値データそれぞれに対応する有効2値データをセットする(ステップS280、S282、S284、S286)。以下、同様に図38〜図41に示すように、多値データ始点8〜23についてそれぞれ図示するような値をセットする。
【0126】
図42は、図27のハーフトーン処理装置107における固定長データ生成装置166の構成を示すブロック図である。この固定長データ生成装置166は、シフタ171と、OR装置172と、レジスタ173,174と、加算器175と、レジスタ176とを備えている。
【0127】
シフタ171は、有効BIT生成装置165から複数の2値化後の有効データを受け取り、現在作成中の固定長データの最終の値に合わせるためのシフト処理を行なう。OR装置172は、シフタ171でシフトされた値を現在作成中の値とOR処理を行ない、この結果を入れ込んでいく。レジスタ174は、現在作成中の固定長データを格納し、OR装置172によって新たに入れ込まれた値を格納することにより更新する。
【0128】
加算器175は、多値データ数を受け取り、つぎのシフタ171の先頭値を求めるために、レジスタ176の固定長データの最終値と加算処理する。レジスタ176は、固定長データの最終値を格納し、シフタ171を制御する。レジスタ173は、OR装置172で生成される固定長データ幅をすべて満たしたデータを格納し、2値画像書き込み装置104(図1参照)へ転送する。
【0129】
図43にしきい値マトリックス記憶装置108における24×24のサイズのフォーマット例を示す。図44に図43のしきい値マトリックスを使用した処理の推移例を示す。
【0130】
図45は、図26とは異なるハーフトーン処理装置107の構成を示すブロック図である。すなわち、このハーフトーン処理装置107は、水平しきい値マトリックスサイズが、並列に比較される多値データの数より小さい場合の構成例について示している。したがって、この例では、水平マトリックスサイズと同じサイズの並列比較装置が複数あり、その複数の並列比較装置により、水平しきい値マトリックスサイズを超える複数の多値データを、同様に比較する。
【0131】
したがって、この例では、水平マトリックスサイズと同じサイズの並列比較装置が複数あり、その複数の並列比較装置により、水平しきい値マトリックスサイズを超える複数の多値データを、同様に比較する。このため、図26の構成に対し、図45では並列比較装置164a,164bを配置している。なお、他の構成要素の動作は基本的に図26と同様であるので同一符号を付し、その説明は省略する。
【0132】
図46は、図45のハーフトーン処理装置107の具体的構成例を示すブロック図であり、水平方向のMAXのハーフトーン処理数(n)が15(16個)、水平方向のしきい値マトリックスサイズ(m)が7(8個)の場合の例について示している。
【0133】
上記図45(図46)のように構成されたハーフトーン装置107において、全体的な処理は前述した図28の処理にしたがって行なわれるが、ステップS205における並列比較処理は並列比較装置164a,164bで実行する。また、多値データシフト装置163の動作は図29〜図34と同様に、並列比較処理は図35に示す装置構成で行なわれ、有効BIT生成装置165の動作は図36〜図41と同様に行ない、さらに固定長データ生成装置166の動作も図42の装置で実行される。
【0134】
(実施の形態2)
この実施の形態2の画像処理装置は、しきい値マトリックスメモリから読み出されるしきい値データを処理走査ラインが終了するまで、再利用可能なように処理に適用する全しきい値データをレジスタに取り込み、複数の変倍データを対応するしきい値と比較するために、シフトさせ、複数の変倍データと比較処理することにより、複数ドットの2値化処理の高速化を図るものである。以下、具体的に説明する。
【0135】
図47は、この実施の形態2にかかる画像処理装置を搭載した多色画像形成装置の構成を示す説明図である。この多色画像形成装置は、大きくは、電子写真プロセスに基づいて、像担持体であるベルト状感光体(以下、感光体という)1、帯電チャージャ4、レーザ書き込みユニット5、多色現像ユニット6、ブラック現像ユニット7、中間転写ベルト10、クリーニングユニット(クリーニングブレード15A)、除電ランプL、を備えている。また、トナー像が転写される記録紙を収容し給紙する給紙装置17、転写後の記録紙上のトナー像を定着する定着装置50を備えている。
【0136】
感光体1は、回転ローラ2,3によって回転可能に支持され、回転ローラ2,3の回転により矢印A方向に所定速度で回動される。感光体1の外周部には、帯電チャージャ4、除電ランプL、感光体用のクリーニングブレード15Aが配置されている。
【0137】
帯電チャージャ4の下方には、レーザ書き込みユニット5が設けられている。この感光体1の左側には多色現像ユニット6が配置され、さらにその上部には黒色トナーを収容したブラック現像ユニット7が配置されている。多色現像ユニット5は、レボルバー方式により、イエロー現像ユニット、マゼンタ現像ユニット、シアン現像ユニットが配置されている。
【0138】
上述した各現像ユニットのいずれか1つが対応する色の現像タイミングに同期し、現像可能な位置に移動する。多色現像ユニット6は、円周上120度の回転によっていずれかの現像ユニットが選択されるように構成されている。そして、これらの現像ユニットが動作するときには、ブラック現像ユニット7は感光体1より離間した位置に移動する。この移動はカム45の回転によって行なわれる。
【0139】
レーザ書き込みユニット5は、所定の回転数で駆動されるポリゴンモータ5Aと、ポリゴンモータ5Aで駆動され、レーザ光を偏向走査するポリゴンミラー5Bと、走査されたレーザ光を感光体上で等ピッチで照射されるように光学補正するfθレンズ5Cと、レーザ光を感光体1に導くミラー5Dと、を備えている。
【0140】
レーザ書き込みユニット5は、レーザ光源(不図示)から複数色の画像形成信号(書き込み情報)に応じたレーザ光を変調出力させ、ポリゴンモータ5Aによって回転されるポリゴンミラー5Bを用い、レーザ光を周期的に偏向させ、fθレンズ5Cおよびミラー5Dなどを経て、あらかじめ帯電された感光体1の表面に光走査し、感光体1上に静電潜像を形成する。
【0141】
感光体1の表面に形成される静電潜像は、対応する現像ユニットからのトナーによって現像され、可視像として感光体1に保持される。中間転写ベルト10は、感光体1に隣接して配置され、回転ローラ11,12により矢印B方向に回動可能に支持されている。感光体1上のトナー像は、中間転写ベルト10の裏側に設けれた転写ブラシ13により、その中間転写ベルト10の表面に転写される。
【0142】
感光体1の表面は1色ごとにクリーニングブレード15Aによってクリーニングされ、その表面に所定色のトナー像が形成される。そして、その都度、中間転写ベルト10上に複数色のトナー像が重ね合わせられて保持される。その後、そのトナー像は記録紙あるいはプラスチックなどの記録媒体に転写される。
【0143】
記録紙への転写を行う場合、給紙装置17に収納されている記録紙は、給紙ローラ18によって1枚繰り出され、さらに搬送ローラ19により搬送され、レジストローラ対20に突き当てられた状態で一旦停止された後、トナー像の転写位置が正規の位置となるようにタイミングがとられ、中間転写ベルト10と転写ローラ14のニップに再搬送される。
【0144】
そして、この記録紙は、転写ローラ14の作用により中間転写ベルト10上の複数色のトナー像が一括転写された後、定着装置50に送られてそのトナー像が定着された後、排紙ローラ対51により本体フレーム9の上部の排紙トレイ52に排紙される。
【0145】
中間転写ベルト10には、回転ローラ11の部位に中間転写ベルト10用のクリニング装置16が設けられ、クリーニングブレード16Aがクリーニングブレード接離用アーム16Cを介して接離自在の構成になっている。このクリーニングブレード16Aは、感光体1からトナー像を受け取る工程では、中間転写ベルト10から離れ、中間転写ベルト10より記録紙にトナー像が転写された後に接触するように構成され、記録紙にトナー像が転写された後の残留トナーをかきとる。
【0146】
感光体1および中間転写ベルト10からかきとった廃トナーは、回収容器15に収容される。なお、回収容器15は適宜交換される。中間転写ベルト10用のクリーニング装置16の内部に設けれたオーガ16Bが、クリーニングブレード16Aでかきとった廃トナーを搬送し、搬送手段(不図示)で回収容器15に送る。
【0147】
符号31はユニット化されたプロセスカートリッジであり、感光体1、中間転写ベルト10、クリーニング装置16、用紙搬送路を形成する搬送ガイド30などを一体に組み込み、寿命到来時に交換できるように構成されている。プロセスカートリッジ31の交換の他に、多色現像ユニット6、ブラック現像ユニット7なども寿命到来時に交換するが、その交換性やジャム紙の処理を容易にするため、本体の一部の前フレーム8は支軸9Aを中心に開閉可能に回動できるように構成されている。
【0148】
また、符号60は、電装・制御装置であり、その上部にはファン58が設けられている。このファン58は、機内の温度上昇防止のために排風する。また、符号59は比較的小規模な給紙を行なう給紙装置である。
【0149】
図48は、図47の多色画像形成装置における電装・制御装置60の構成を示すブロック図である。この電装・制御装置60は、大きくは、バス201上に、画像メモリアクセラレータ200、エンジンコントローラ202、パネルコントローラ203、が接続されている。
【0150】
画像メモリアクセラレータ200は、バスコントローラ206、メモリアービター207、ローカルI/F208、CPUI/F209、メモリコントローラ210、通信コントローラ211、DMA212、画像処理装置215を備えている。
【0151】
エンジンコントローラ202にはプリンタエンジン204が接続され、パネルコントローラ203には操作パネル205が接続されている。また、ローカルI/F216にはROM、CPUI/F209にはCPU217、メモリコントローラ210には画像メモリ218がそれぞれ接続されている。
【0152】
画像メモリアクセラレータ200は、CPU217によって制御され、ネットワークを介してホストコンピュータ(不図示)から画像データを受け取って画像メモリ218に転送し、また、その画像データをエンジンコントローラ202へ転送しプリント出力の指示などを行なう。このとき、各ホストとの通信や画像メモリ218をメモリコントローラ210で制御させたり、操作パネル205から指示された情報を取得し、さらにエンジンコントローラ202などに対し、バス制御を実行する。
【0153】
バスコントローラ206は、バス201とつながる各周辺コントローラとのバスの調停を行なう。メモリアービター207は、画像メモリ218と各種のコントローラ間の調停を行なう。ローカルI/F208は、ROM216などのインタフェースであり、メモリアービター207を介して画像メモリ218やCPU217と接続されている。
【0154】
ROM216は、各種の制御プログラムや、文字などのフォント情報を格納している。CPUI/F209は、CPU217のインタフェースであり、メモリアービーター207を介して画像メモリ218や各種コントローラに接続されている。CPU217は、この多色画像形成装置全体の制御を実行する。
【0155】
メモリコントローラ210は、画像メモリ218を制御し、メモリアービター207を介して各種コントローラやCPU217と接続されている。画像メモリ218は、画像データやその符号データ、CPU217のプログラムなどを格納している。通信コントローラ211は、ネットワークに接続されており、ネットワークからの各種データやコマンドを受け取り、また、メモリアービター207を介して各種コントローラに接続されている。
【0156】
画像処理装置215は、この実施の形態2による画像処理を実行するものであり、CPU217からの命令により画像メモリ218から画像を読み込み、所定の画像処理を行なった後、その画像データを画像メモリ218に書き込む。
【0157】
パネルコントローラ203は、操作パネル205を制御する。操作パネル205は、ユーザによる入力操作などが行なわれるように各種キー群やパネルなどを備えている。バス201は、画像メモリアクセラレータ200と各種周辺コントローラとを接続する。DMA212は、メモリコントローラ210とバス201に接続されたエンジンコントローラ202間のダイレクトメモリアクセスを実行する。
【0158】
図49は、図48における画像処理装置215の構成を示すブロック図である。この画像処理装置215は、メモリアービターI/F220と、データ変換処理装置221と、ハーフトーン処理装置222と、パラメータ格納装置223と、を備えている。
【0159】
メモリアービターI/F220は、画像データの画読み込み処理と、ディザデータの読み込み処理と、処理後の書き込み処理のメモリアービター207への要求の調停を行ない、データ変換装置221へ画像データを、ハーフトーン処理装置222へディザデータを転送し、ハーフトーン処理装置222からの画像処理後のデータを受け取り、メモリアービター207に転送する。また、メモリアービターI/F220は、垂直方向の変倍処理を管理し、それに必要な画像データとディザデーダをメモリアービター207を介して要求し、処理後の画像をメモリアービター207へ転送する。
【0160】
データ変換処理装置221は、メモリアービターI/F220から水平ラインの画像データを受け取り、水平方向の変倍処理、色変換処理、フォルタ処理を行ない、画像データが符号である場合は、画像符号のデコード処理を行ない、画像データへの変換後に、変倍処理、色変換処理、フィルタ処理などを実行し、処理結果をハーフトーン処理装置222に転送する。
【0161】
ハーフトーン処理装置222は、メモリアービターI/F220から垂直方向の各ラインの変倍後のライン数分のディザデータを受け取り、データ変換処理装置221から画像処理後のデータを水平ラインごと受け取り、ハーフトーン処理を実行する。
【0162】
パラメータ格納装置223は、CPU217などから設定されたメモリアービターI/F220、データ変換処理装置221、ハーフトーン処理装置222に必要なパラメータを格納する。
【0163】
つぎに、図49における画像処理装置215の変倍処理について図50に示すフローチャートを参照し、説明する。なお、この例では最近傍法による変倍処理を例にとって説明する。
【0164】
まず、メモリアービターI/F220は、垂直方向(Y方向)の変倍率を求める処理を行ない(ステップS1101)、メモリアービター207を介して画像メモリ218から1ラインの画像データを読み込み、データ変換処理装置221に送る(ステップS1102)。さらに、メモリアービターI/F220は、垂直方向(Y方向)の変倍後のライン数分のディザデータを画像メモリ218から読み込み、ハーフトーン処理装置222へ送る(ステップS1103)。
【0165】
続いて、メモリアービターI/F220は、ステップS1101で求めた垂直方向の変倍率と、ディステイネーション画像の座標Y始点DYSとから、垂直方向のDDA(デジタル微分解析)により、変倍後のY始点YSとY終点YEを求める(ステップS1104)。さらに、メモリアービターI/F220は、変倍後の垂直方向のラインカウンタに上記YSの値を設定する(ステップS1105)。
【0166】
続いて、データ変換装置221により1ラインの画像処理(変倍、色変換、フィルタ処理など)を行ない(ステップS1106)、さらにハーフトーン処理装置222により、上記1ラインの画像処理後の画像データにハーフトーン処理を行なう(ステップS1107)。さらにハーフトーン処理装置222は、ハーフトーン処理後の1ラインデータを内部ラインメモリに書き込む(ステップS1108)。
【0167】
続いて、メモリアービターI/F220は、変倍後の垂直方向のラインカウンタをカウントアップし(ステップS1109)、ステップS1104で求めた垂直方向の変倍後のY終点YEを超えたか否かを判断する(ステップS1110)。ここで、超えていないと判断した場合は、ステップS1106に戻る。一方、超えたと判断した場合、メモリアービターI/F220は、ステップS1108で書き込まれた内部ラインメモリから画像処理後のデータをメモリアービター207を介して画像メモリ218へ画像処理後の画像データを書き込む(ステップS1111)。
【0168】
続いて、メモリアービターI/F220は、ステップS1104で求めた垂直方向の変倍後のY終点YEがディステイネーション画像の座標Y点DYEを超えた否かを判断し(ステップS1112)、超えていないと判断した場合にはステップS1102に戻り、一方、超えたと判断した場合にはこの一連の処理を終了する。
【0169】
図51は、垂直方向(Y方向)に縮小する場合のタイミング例を示す説明図であり、(a)は0.5倍の例、(b)は0.6666倍の例である。(a)に示す0.5倍の例では、画像処理前の画像データを1つ飛ばしのライン(奇数ラインのみ)を読み込み、ディザパターンデータは順次1ラインごと読み込み、そして、画像処理後のデータを順次1ラインごと書き込んでいく。また、この例では、画像データの読み込み処理と画像処理とが並列に処理される。
【0170】
(b)に示す0.6666倍の例では、画像処理前の画像データを3ラインごと1ラインを飛ばして読み込み、ディザパターンデータは順次1ラインごと読み込み、そして、画像処理後のデータを順次1ラインごと書き込んでいく。また、この例では、画像データの読み込み処理と画像処理とが並列に処理される。
【0171】
図52は、垂直方向(Y方向)に1倍拡大する場合のタイミング例を示す説明図である。この例では、画像処理前の画像データを1ラインごと読み込み、ディザパターンデータは順次1ラインごと読み込み、そして、画像処理後のデータを順次1ラインごと書き込んでいく。また、この例では、画像データの読み込み処理と画像処理とが並列に処理される。
【0172】
図53は、垂直方向(Y方向)に1.5倍拡大する場合のタイミング例を示す説明図である。この例では、画像処理前の画像データを1ラインごと読み込み、ディザパターンデータを画像処理後、読み込み(この例では、画像処理前データの読み込みを中断しディザパターンを読み込む)、そして、画像処理後のデータを順次1ラインごと書き込んでいく。また、この例では、画像データの読み込み処理と画像処理とが並列に処理され、時々、2ラインの画像処理を行なう。
【0173】
図54は、垂直方向(Y方向)に2倍拡大する場合のタイミング例を示す説明図である。この例では、画像処理前の画像データを1ラインごと読み込み、ディザパターンデータを画像処理後、読み込み(この例では、画像処理前データの読み込みを中断しディザパターンを読み込む)、そして、画像処理後のデータを順次1ラインごと書き込んでいく。また、この例では、画像データの読み込み処理と画像処理とが並列に処理され、2ラインの画像処理を行なう。
【0174】
図55は、図49におけるメモリアービターI/F220の構成を示すブロック図である。メモリアービターI/F220は、メモリアービター207に接続されている。メモリアービター207はCPUI/F209を通してCPU217からのメモリアクセス、ローカルI/F208からのメモリアクセスなどのアクセスを調停し、複数の媒体からのメモリアクセスを行なわせ、他の媒体に待機処理を行なわせる。
【0175】
メモリアービターI/F220は、メモリアービター207へ画像処理装置215として接続され、画像処理装置215として画像メモリ218へのアクセス権をメモリアービター207へ要求し、データ変換処理装置221へ画像処理前の画像データの読み込みをメモリアービター207へ要求し、画像データを読み込んでデータ変換処理装置221へ転送する。データ変換処理装置221が画像符号のデコード処理装置を有する場合、画像データは符号データとして上記処理を行なう。
【0176】
また、メモリアービターI/F220は、ハーフトーン処理装置222へディザデータの読み込みをメモリアービター207へ要求し、ディザデータを読み込んでハーフトーン処理装置222へ転送し、ハーフトーン処理装置222の画像処理後の画像データの書き込みをメモリアービター207へ要求し、画像処理後のデータをメモリアービター207へ転送する。
【0177】
図56は、図49におけるメモリアービターI/F220の詳細構成を示すブロック図である。このメモリアービターI/F220は、変倍率生成装置225と、Y‐DDA処理装置226と、IYカウント装置227と、メモリアドレス生成装置228と、マルチプレクサ(MUX)229と、コントローラ230とを備えている。
【0178】
図56の変倍率生成装置225は、変倍されるソース画像の座標Y始点SYS、Y終点SYE、変倍後のディステイネーション画像の座標Y始点DYS、Y終点DYEからY方向の変倍率RATEYを求め、Y‐DDA処理装置226へ転送する。
【0179】
Y‐DDA処理装置226は、変倍率生成装置225からのY方向の変倍率と、ディステイネーション画像の座標Y始点DYSを受け取り、図2に示す垂直方向の○(拡大された画素)のように、入力された画像の変倍後のY座標をDDA(デジタル微分解析)により、Y始点YSとY終点YEを求め、その差分(変倍後のライン数)DYを求め、IYカウント装置227とメモリアドレス生成装置228へ転送する。
【0180】
IYカウント装置227は、Y‐DDA処理装置226から変倍後のY始点YSとY終点YEを受け取り、変倍後のY始点からY終点までを、データ変換処理装置221とハーフトーン処理装置222の1ラインの処理が終了するごとに、ラインをカウントし、ディステイネーション画像の座標Y終点と比較し、画像処理の終了を制御する。
【0181】
メモリアドレス生成装置228は、メモリアービター207を介して画像メモリ218をアクセスするためのメモリアドレスである画像データ読み込みアドレスと、ディザデータ読み込みアドレスと、画像処理後の画像データ書込みアドレスを計算する。このとき、Y‐DDA処理装置226から変倍後のライン数を受け取り、読み込むディザデータのライン数(データ数)と、処理後の画像を書込むライン数(データ数)を計算し、メモリアドレスを生成する。
【0182】
マルチプレクサ(MUX)229は、メモリアービター207から読み込んだデータを、データの種類により、データ変換処理装置221とハーフトーン処理装置222への転送を切り換える。コントローラ230は、図50で示した動作のように、画像処理装置215を制御する。
【0183】
図57は、図56のメモリアービターI/F220における変倍率生成装置225の構成を示すブロック図である。この変倍率生成装置225は、減算器231a,231bと、除算器232と、Y方向の変倍率(RATEY)を格納するレジスタ233と、を備えている。
【0184】
以上のように構成された変倍率生成装置225は、変倍される画像のソース画像の座標Y始点SYS、Y終点SYEと、変倍後のディステイネーション画像の座標Y始点DYS、Y終点DYEからY方向の変倍率RATEYを求め、Y‐DDA処理装置226へ転送する。すなわち、変倍率生成装置225は、図57に示すように、RATEY=(SYE−SYS)/(DYE−DYS)の演算により、Y方向の変倍率(RATEY)を求める。
【0185】
図58は、図56のメモリアービターI/F220におけるY‐DDA処理装置226の構成を示すブロック図である。このY‐DDA処理装置226は、マルチプレクサ(MUX)234と、レジスタ235,236と、加算器237と、レジスタ238,239と、減算器240と、を備えている。
【0186】
図58のマルチプレクサ(MUX)234は、最初のみレジスタ235に、初期値のディステイネーション画像の座標Y始点DYSを転送し、その後、順次加算されていく加算器237の出力を送る。レジスタ235は、現在処理中のY値を格納する。レジスタ236は、Y方向の変倍率RATEYを格納する。レジスタ238は、変倍後のY終点を格納する。レジスタ239は変倍後のY始点を格納する。減算器240は、Y終点の正数部を減算し、変倍後のライン数DYを求める。
【0187】
以上のように構成されたY‐DDA処理装置226は、変倍率生成装置225からのY方向の変倍率と、ディステイネーション画像の座標Y始点DYSを受け取り、図2に示す垂直方向の○(拡大された画素)のように、入力された画像の変倍後のY座標をDDA(デジタル微分解析)により、Y始点YSとY終点YEを求め、その差分(変倍後のライン数)DYを求め、これをIYカウント装置227とメモリアドレス生成装置228に転送する。
【0188】
図59は、図56のメモリアービターI/F220におけるIYカウント装置227の構成を示すブロック図である。このIYカウント装置227は、比較器241と、マルチプレクサ(MUX)242と、レジスタ243と、加算器244と、比較器245と、を備えている。
【0189】
比較器241は、Y‐DDA処理装置226からの変倍後のY終点と、ディステイネーション画像の座標Y終点DYEと比較し、その結果であるYENDFL信号をコントローラ230に転送する。マルチプレクサ(MUX)229は、最初のみレジスタ243に、Y‐DDA処理装置226からの変倍後のY始点を送り、その後、順次加算されていく加算器244の出力を送る。
【0190】
レジスタ243は、現在処理中のY値を格納する。加算器244は、データ変換処理装置221とハーフトーン処理装置222の1ラインの処理が終了するごとにラインをカウントしていく。比較器245は、現在処理中のY値とY‐DDA処理装置226からの変倍後のY終点とを比較し、その結果であるIYENDFL信号をコントローラ230に転送する。
【0191】
以上のように構成されたIYカウント装置227は、Y‐DDA処理装置226から変倍後のY始点YSとY終点YEを受け取り、変倍後のY始点からY終点までを、データ変換処理装置221とハーフトーン処理装置222の1ラインの処理が終了するごとに、ラインをカウントし、ディステイネーション画像の座標Y終点と比較し、画像処理の終了を制御する。
【0192】
図60は、図56のメモリアービターI/F220におけるメモリアドレス生成装置228の構成を示すブロック図である。このメモリアドレス生成装置228は、画像データアドレス生成装置246と、ディザデータアドレス生成装置247と、処理後画像データアドレス生成装置248と、を備えている。
【0193】
図60の画像データアドレス生成装置246は、初期値として、パラメータ格納装置223から画像先頭アドレスを設定され、その後、1ラインごと画像処理前の画像データのアドレスを読み込み、アドレスを生成していく。図51〜図54のように画像データの読み込みのアドレスを生成する。
【0194】
また、ディザデータアドレス生成装置247は、初期値として、パラメータ格納装置223からディザ先頭アドレスを設定され、Y‐DDA処置装置226からの変倍後のライン数を受け取り、読み込むディザデータのライン数(データ量)を計算し、図51〜図54のようにディザデータの読み込みのアドレスを生成する。
【0195】
処理後画像データアドレス生成装置248は、初期値として、パラメータ格納装置223から処理後画像先頭アドレスを設定され、Y‐DDA処置装置226からの変倍後のライン数を受け取り、書き込む処理後画像データのライン数(データ量)を計算し、図51〜図54のようにディザデータの読み込みのアドレスを生成する。
【0196】
以上のメモリアドレス生成装置228は、メモリアービター207を介して画像メモリ218をアクセスするためのメモリのアドレスである画像データ読み込みアドレスと、ディザデーダ読み込みアドレスと、画像処理後の画像書込みアドレスを計算する。このとき、Y‐DDA処置装置226から変倍後のライン数を受け取り、読み込むデーザデータのライン数(データ数)と、処理後の画像を書込むライン数(データ数)を計算し、メモリアドレスを生成していく。
【0197】
図61は、図49のデータ変換処理装置221の入出力の構成を示すブロック図であり、変倍処理装置のみを有する場合について示している。
【0198】
図62は、図49におけるデータ変換処理装置221の詳細構成を示すブロック図である。この変倍処理装置221は、図示するように、元画素格納装置250と、変倍率生成装置251と、DDA処理装置253と、IXカウント装置254と、変倍画素係数生成装置255と、変倍画素変換装置256と、このデータ変換処理装置221全体を制御するコントローラ257と、を備える。
【0199】
図62の元画素格納装置250は、ハーフトーン処理装置222が並列に処理する画素分を蓄え後段の変倍画素変換装置256に転送する。変倍率生成装置251は、変倍される画像のソース画像の座標X始点SXS、Y始点SYS、変倍後のディステイネーション画像の座標X始点DXS、X終点DXEからX方向の変倍率RATEXを求め、後段のDDA処理装置253に転送する。
【0200】
また、DDA処理装置253は、変倍率生成装置251からX方向の変倍率とディステイネーション画像の座標X始点DXSを受け取り、図2に示す○(拡大された画素)のように、入力された画像の変倍後の座標をDDA(DigtalDiffential Analyze:デジタル微分解析)により随時求める。この例では、補間するために、補間されるX始点XS、X終点XEを求め、IXカウント装置254、変倍画素係数生成装置255へ転送する。
【0201】
また、IXカウント装置254は、DDA処理装置253からY方向の始点と終点を受け取り、図2の△(補間された画素)のY座標を生成し、コントローラ257へX座標がX終点DXEと等しくなったことをXENDFL信号で知らせ、る。
【0202】
また、変倍画素係数生成装置225は、DDA処理装置253からの補間する方向の始点XSと変倍率画素生成装置251により求めたX方向変倍率RATEXを受け取り、変倍率生成装置251の出力する各画素の幅を出力し、変倍画素変換装置256にて画素の変倍処理を行なう。このとき、変倍画素変換装置256の出力するMAX数は、ハーフトーン処理装置222が処理可能なMAXの画素値までである。また、変倍率が1倍があるため、変倍率生成装置251の出力もハーフトーン処理装置222が処理可能なMAXの画素値までとして対応している。そのため、変倍率が、1倍以上の場合、複数クロックにわたってハーフトーン処理装置222が処理可能なMAXの画素ごと出力する。
【0203】
変倍画素変換装置256は、元画素格納装置250から変倍する画素を受け取り、変倍画素係数生成装置256の出力する各画素の幅を受け取り、図3に示すように、変倍する画素の幅を変更することにより、変倍処理を実行する。コントローラ257は、このデータ変換処理装置221の全体を制御する。
【0204】
図63は、データ変換処理装置221の動作を示すフローチャートであり、コントローラ257によって実行される。
【0205】
図63において、まず、変倍率生成装置251により変倍率を求め(ステップS351)、X方向のDDAの初期化を行なう(ステップS352)。さらにDDA処理装置253により、X方向(水平方向)のDDA処理を行ない、処理するX始点XSとX終点XEを求める(ステップS353)。
【0206】
続いて、変倍データを内部ラインメモリから読み込み(ステップS354)、変倍画素係数生成装置255により、読み込んだ変倍処理される画素の幅を求める(ステップS355)。さらに変倍画素変換装置256により、変倍される画素を求めた幅に変換し、ハーフトーン処理装置222のMAXの並列処理画素数に合わせて出力する(ステップS356)。ついで、XEが変倍されたディステイネーション画像の座標X終点DXEを超えていない場合、ステップS353に戻り、DXEと同じか超えた場合には、この変倍処理を終了する。
【0207】
図64は、図62のデータ変換処理装置221における元画素格納装置250の構成を示すブロック図である。この元画素格納装置250は、レジスタ260a〜260hと、ラインメモリ261と、ラインメモリコントローラ262と、を備えている。
【0208】
レジスタ260a〜260hは、順次データを格納し、ハーフトーン処理装置222のMAX並列処理画素分の画素を格納する。ラインメモリ261は、レジスタ260a〜260hにより蓄えられた画像データをつなげて並列に格納し、画像メモリ218からの画像データの読み込みと画像処理が並列に処理可能とし、読み出し時にレジスタ260a〜260hの内容が並列に読み込みできるように構成されている。ラインメモリコントローラ262は、ラインメモリ261のアドレスの生成と、この元画素格納装置250全体の制御を行なう。
【0209】
図65は、図62のデータ変換処理装置221における変倍率生成装置251の構成を示すブロック図である。この変倍率生成装置251は、減算器263,264と、除算器265と、X方向の変倍率(RATEX)を格納するレジスタ266と、を備えている。
【0210】
この変倍率生成装置251は、変倍される画像のソース画像の座標X始点SXS、X終点SXEと変倍後のディステイネーション画像の座標X始点DXS、X終点DXEからX方向の変倍率RATEXを求め、DDA処理装置253へ転送する。すなわち、変倍率生成装置251は、RATEX=(SXE−SXS)/(DXE−DXS)の演算によりX方向の変倍率(RATEX)を求める。
【0211】
図66は、図62のデータ変換処理装置221におけるDDA処理装置253の構成を示すブロック図である。図において、符号267はマルチプレクサ(MUX)であり、最初のみレジスタ268に初期値のディステイネーション画像の座標X始点DXSを転送し、その順次加算されていく加算器271の出力を送るものである。また、符号268は現在処理中のX値を格納するレジスタ、符号269は乗算器であり、X方向変倍率RATEXとハーフトーン処理装置222のMAXの並列処理画素数を乗算し複数画素の分の微差分を求める。また、符号270は乗算器269で求めた値を格納するレジスタ、符号271はレジスタ268,270それぞれの出力値を加算処理する加算器、符号272は補間するX終点を格納するレジスタ、符号273は補間するX始点の値を格納するレジスタである。
【0212】
このDDA処理装置253は、変倍率生成装置251から出力された変倍率(RATEX、RATEY)とディステイネーション画像のX始点DXS、Y始点DYSを受け取り、図2の○(拡大された画素)に示すように、入力された画像の変倍後の座標をDDA(デジタル微分解析)により随時求める。この例では、DDA処理装置253は、図62に示すように、補間するため、補間されるX始点、X終点、Y始点、Y終点を求め、IXカウント装置254と変倍画素係数生成装置255へ転送する。
【0213】
このとき、X方向においては、ハーフトーン処理装置222のMAXの並列処理画素分のDDAを行なう。そのため、X方向のDDA処理は、図66に示すように、現在のX座標値に変倍率生成装置251で求めたX方向変倍率RATEXにハーフトーン処理装置222のMAXの並列処理画素数を乗算した値を順次加算する。
【0214】
図67は、図62のデータ変換処理装置221におけるIXカウント装置254の構成を示すブロック図であり、比較器274を備えている。この比較器274は、DDA処理装置253からのXE値とディステイネーション画像の座標X始点DXEとを比較し、X座標がX終点DXEと等しくなったことをXENDFL信号として生成する。
【0215】
なお、図62のデータ変換処理装置221における変倍率画素係数生成装置255は、前述した実施の形態1の図11と同構成である部分については対応する図番を記述し、ここでの説明は省略する。すなわち、変倍率画素係数生成装置255を構成する並列X幅生成装置は図12と同一であり、出力X幅生成装置は図13と同一である。また、出力X幅生成装置を構成する累積加算処理装置(A)は図14と同一であり、WXWIDTH更新処理装置の動作が図15と、出力XWIDTH生成処理装置の動作が図16と同じである。さらに累積加算処理装置(B)の構成は図17と同一である。また、図62の変倍画素変換装置256は前述した図18〜図25の動作と同一である。
【0216】
つぎに、ハーフトーン処理装置222について詳述する。図68は、本発明の実施の形態2にかかる画像処理装置215のハーフトーン処理装置222の構成を示すブロック図である。このハーフトーン処理装置222は、水平しきい値マトリックス記憶装置301と、多値データシフト装置302と、並列比較装置303と、有効BIT生成装置304と、固定長データ生成装置305と、ラインメモリ306と、ラインメモリアドレス生成装置307と、このハーフトーン処理装置222全体を制御するコントローラ308と、を備えている。
【0217】
水平しきい値マトリックス記憶装置301は、しきい値マトリックスメモリから水平ラインで使用されるすべてのしきい値マトリックスを読み込み記憶する。多値データシフト装置302は、データ変換処理装置221から水平方向に複数の変倍後の多値データを受け取り、水平しきい値マトリックス記憶装置301のしきい値マトリックスに対応する位置を示す多値データ始点により、多値データをシフトさせる。この多値データシフト装置302の動作は前述した図29〜図34と同様に行なわれる。
【0218】
並列比較装置303は、多値データシフト装置302によりシフトされたシフトデータと水平しきい値マトリック記憶装置301からのしきい値マトリックスとを並列に比較する。この並列比較装置303の構成は前述した図35と同様である。有効BIT生成装置304は、並列比較装置303で求めた2値データを有効データとして左シフトさせ、固定長データ生成装置305へ有効データの長さである有効データ数を送ることにより、有効データを切りだしやすくする。この有効BIT生成装置304の動作は前述した図36〜図41と同様に行なわれる。
【0219】
固定長データ生成装置305は、有効BIT生成装置304で求めた2値データをコントローラ308が示す有効数(多値データ数)分だけ、固定長のデータに加えていくことにより、固定長のデータを生成する。この固定長データ生成装置305の構成は前述した図42と同様である。
【0220】
ラインメモリ306は、固定長データ生成装置305で生成された固定長のデータを格納する。このラインメモリ306のフォーマット例を図72に示す。ラインメモリアドレス生成装置307は、固定長データ生成装置305からのデータをラインメモリ306へ格納するためのアドレスを生成する。
【0221】
コントローラ308は、データ変換処理装置221から、水平補間された画素の有効数を受け取り、前述した図28に示したフローチャートと同様の動作を実行し、このハーフトーン処理装置222全体を制御する。
【0222】
なお、図69は、図68のハーフトーン処理装置222の具体的構成例を示すブロック図であり、水平方向のMAXのハーフトーン処理数(n)が7(8個)であり、水平方向のしきい値マトリックスサイズ(m)が23(24個)の場合の例について示している。
【0223】
図70にしきい値マトリックスメモリ108における24×24のサイズのフォーマット例を示す。なお、図70のしきい値マトリックスを使用した処理の推移例は図44と同様である。
【0224】
つぎに、データ変換処理装置221の変換処理がバイリニア法である場合の全体的な処理動作を図71に示すフローチャートを参照し、説明する。
【0225】
図71において、まず、メモリアービターI/F220は、垂直方向(Y方向)の変倍率を求める処理を行ない(ステップS1201)、メモリアービター207を介して画像メモリ218から1ラインの画像データを読み込み、データ変換処理装置221に送る(ステップS1202)。さらに、メモリアービターI/F220は、画像メモリ218から1ラインの画像データを読み込み、垂直方向(Y方向)の変倍後のライン数分のディザデータを画像メモリ218から読み込み、データ変換処理装置221へ送る(ステップS1203)。
【0226】
なお、バイリニア補間法では、図73に示すように、A,B,C,Dの4点から補間するためのA,Bを格納するラインメモリと、C,Dを格納するラインメモリが必要であり、まず最初に2ラインを読み込み、その後、C,DのラインをA,Bのラインとし、C,Dのラインを読み込んでいく。この動作については後述する。
【0227】
続いて、メモリアービターI/F220は、垂直方向に変倍後のライン数分のディザパターンデータを読み込み、ハーフトーン処理装置222へ送る(ステップS1204)。さらにステップS1201で求めた垂直方向の変倍率と、ディステイネーション画像の座標Y始点DYSとから、垂直方向のDDA(デジタル微分解析)により、変倍後のY始点YSとY終点YEを求める(ステップS1205)。さらに、メモリアービターI/F220は、変倍後の垂直方向のラインカウンタに上記YSの値を設定する(ステップS1206)。
【0228】
続いて、データ変換処理装置221により1ラインの画像処理(変倍、色変換、フィルタ処理など)を行ない(ステップS1207)、さらにハーフトーン処理装置222により、上記1ラインの画像処理後の画像データにハーフトーン処理を行なう(ステップS1208)。さらにハーフトーン処理装置222は、ハーフトーン処理後の1ラインデータを内部ラインメモリに書き込む(ステップS1209)。
【0229】
続いて、メモリアービターI/F220は、変倍後の垂直方向のラインカウンタをカウントアップし(ステップS1210)、ステップS1204で求めた垂直方向の変倍後のY終点YEを超えたか否かを判断する(ステップS1211)。ここで、超えていないと判断した場合は、ステップS1207に戻る。一方、超えたと判断した場合、メモリアービターI/F220は、ステップS1208で書き込まれた内部ラインメモリから画像処理後のデータをメモリアービター207を介して画像メモリ218へ画像処理後の画像データを書き込む(ステップS1212)。
【0230】
続いて、メモリアービターI/F220は、ステップS1204で求めた垂直方向の変倍後のY終点YEがディステイネーション画像の座標Y点DYEを超えた否かを判断し(ステップS1213)、超えていないと判断した場合にはステップS1203に戻り、一方、超えたと判断した場合にはこの一連の処理を終了する。
【0231】
図74は、垂直方向(Y方向)に縮小する場合のタイミング例を示す説明図であり、(a)は0.5倍の例、(b)は0.6666倍の例である。(a)に示す0.5倍の例では、画像処理前の画像データを1つ飛ばしのライン(奇数ラインのみ)を読み込み、ディザパターンデータは順次1ラインごと読み込み、そして、画像処理後のデータを順次1ラインごと書き込んでいく。なお、最初は2ラインを続けて読み込む。また、この例では、画像データの読み込み処理と画像処理とが並列に処理される。
【0232】
(b)に示す0.6666倍の例では、画像処理前の画像データを3ラインごと1ラインを飛ばして読み込み、ディザパターンデータは順次1ラインごと読み込み、そして、画像処理後のデータを順次1ラインごと書き込んでいく。なお、最初は2ラインを続けて読み込む。また、この例では、画像データの読み込み処理と画像処理とが並列に処理される。
【0233】
図75は、垂直方向(Y方向)に1倍拡大する場合のタイミング例を示す説明図である。この例では、画像処理前の画像データを順次1ラインごと読み込み、そして、画像処理後のデータを順次1ラインごと書き込んでいく。なお、最初は2ラインを続けて読み込む。また、この例では、画像データの読み込み処理と画像処理とが並列に処理される。
【0234】
図76は、垂直方向(Y方向)に1.5倍拡大する場合のタイミング例を示す説明図である。この例では、画像処理前の画像データを順次1ラインごと読み込み、そして、画像処理後のデータを順次1ラインごと書き込んでいく。なお、最初は2ラインを続けて読み込む。また、この例では、画像データの読み込み処理と画像処理とが並列に処理され、時々、2ラインの画像処理を行なう。
【0235】
図77は、垂直方向(Y方向)に2倍拡大する場合のタイミング例を示す説明図である。この例では、画像処理前の画像データを順次1ラインごと読み込み、そして、画像処理後のデータを順次1ラインごと書き込んでいく。なお、最初は2ラインを続けて読み込む。また、この例では、画像データの読み込み処理と画像処理とが並列に処理され、2ラインの画像処理を行なう。
【0236】
つぎに、図78に示すバイリニア補間法に基づくデータ変換処理装置221の構成・動作について説明する。
【0237】
この図78に示すデータ変換処理装置221は、パラメータ処理装置311と、拡大率生成装置312と、DDA処理装置313と、IX・IYカウント装置314と、補間係数生成装置315と、補間処理装置316と、を備えている。
【0238】
パラメータ処理装置311は、入力された画像データを順次、ラインメモリに蓄え、2ライン蓄えたところで、バイリニア補間される4点のWCOLA,WCOLB,WCOLC,WCOLDを補間処理装置316へ転送する。
【0239】
拡大率生成装置312は、変倍される画像のソース画像の座標X始点SXS、X終点SXE、Y始点SYS、Y終点SYEと変倍後のディステイネーション画像の座標X始点DXS、X終点DXE、Y始点DYS、Y終点DYEからX,Y方向の変倍率RATEX,RATEYを求め、DDA処理装置313へ転送する。
【0240】
DDA処理装置313は、拡大率生成装置312からX,Y方向の変倍率とディステイネーション画像の座標X始点DXS、Y始点DYSを受け取り、図2に示す○(拡大された画素)のように、入力された画像の変倍後の座標をDDA(デジタル微分解析)により、随時求める。この例では、補間するために、補間されるX始点、X終点、Y始点、Y終点を求め、これをIX・IYカウント装置314と補間係数生成装置315へ転送する。
【0241】
IX・IYカウント装置314は、DDA処理装置313からの補間する方向の始点と終点とY方向の始点と終点を受け取り、図2に示す△(補間された画素)のX,Y座標を生成し、補間係数生成装置315へ転送する。
【0242】
補間係数生成装置315は、DDA処理装置313からの補間する方向の始点と終点とY方向の始点と終点を受け取り、IX・IYカウント装置314からの補間する画素のX,Y座標から、補間処理装置316で補間するX,Y方向の補間係数(DRATEY,DRATEX)を求め、補間処理装置316へ送る。
【0243】
補間処理装置316は、パラメータ処理装置311から補間するデータを受け取り、さらに補間係数生成装置315から補間する係数を受け取ることにより、パラメータ処理装置311を補間することで、図2に示すように拡大された画素間を補間し埋めて拡大画像を生成し、変倍処理を実行する。
【0244】
つぎに、図78のように構成されたデータ変換処理装置221の動作について図79に示すフローチャートを参照し、説明する。まず、拡大率生成装置312により拡大率を求め(ステップS1301)、DDA処理装置313により、Y方向(垂直方向)のDDA処理を行ない、処理するY始点YSとY終点YEを求める(ステップS1302)。さらにIX・IYカウント装置314の処理するY座標(水平ライン)をYS座標を指定し(ステップS1303)、IX・IYカウント装置314の処理するX座標をディステイネーション画像の座標X始点DXSに初期化する(ステップS1304)。
【0245】
続いて、DDA処理装置313によりX方向(水平方向)のDDA処理を行ない、処理するX始点XSとX終点XEを求め(ステップS1305)、補間データを読み込む(ステップS1306)。さらに、補間係数生成装置315により現在処理する座標での補間係数を求める(ステップS1307)。
【0246】
続いて、補間処理装置316により、拡大された画素間を補間することにより、変倍画像を生成する(ステップS1308)。その後、XEが変倍されたディステイネーション画像の座標X終点DXEを超えたか否かを判断する(ステップS1309)。ここで、XEが変倍されたディステイネーション画像の座標X終点DXEを超えていないと判断した場合、ステップS1305に戻り、超えた場合には、IX・IYカウント装置314により、つぎに補間するY座標を求める(ステップS1310)。
【0247】
続いて、上記Y座標の値が補間するY値終点YEを超えたか否かを判断する(ステップS1311)。ここで、上記Y座標の値が補間するY値終点YEを超えていないと判断した場合、ステップS1304に戻り、超えたと判断した場合には、さらにYEが変倍されたディステイネーション画像の座標Y終点DXEを超えたか否かを判断する(ステップS1312)。ここで、YEが変倍されたディステイネーション画像の座標Y終点DXEを超えていないと判断した場合、ステップS1302に戻り、超えたと判断した場合、この一連の処理を終了する。
【0248】
つぎに、図78のデータ変換処理装置221を構成する各部の構成・動作について説明する。図80は、図78のデータ変換処理装置222におけるパラメータ処理装置311の構成を示すブロック図である。このパラメータ処理装置311は、入力された画素の偶数番目の画素を蓄えるレジスタ321と、入力された画素の奇数番目の画素を蓄えるレジスタ322と、ライン分の画素を格納するラインメモリ323,324,325と、これらメモリの出力処理を行なうセレクタ326と、本装置を制御するコントローラ327と、を備えている。
【0249】
セレクタ323は、ラインメモリ323,324,325に格納されたデータを制御し、出力する。たとえば、現在、ラインメモリ323、ラインメモリ324のデータを出力する場合、以下のようにラインメモリ323が補間される画素A,Bを、ラインメモリ324が補間される画素C,Dを出力し、ラインメモリ325にはつぎの画素を蓄えさせる。
+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+
+A+B+A+B+A+B+A+B+A+B+A+B+A+B+A+B+
+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+
+C+D+C+D+C+D+C+D+C+D+C+D+C+D+C+D+
+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+
【0250】
以上のように構成されたパラメータ処理装置311は、図81に示すように、スキャンライン方向から順次入力された画像データを2ラインB蓄え、順次、図82に示すように、補間される4点を図51のように出力する。この補間される4画素を出力しているとき、入力される画素を3本目のラインメモリで順次受け取る。
【0251】
3本目のラインメモリがいっぱいになり、図83に示すような垂直の補間がすべて終わらない場合は、入力される画素を送る装置に対してWAITをかける。そして、図83に示すように2ラインで蓄えた画素の垂直方向すべて終了すると、蓄えられた3本目の画素と、さきほど処理した2ラインの画素の後半の1ラインとから、新たな2ラインの画素を形成し、前述と同様に図83に示すごとく、順次、補間される4点の画素を出力していく。そして、空いている1ラインのメモリに対して、前述と同様に3本目のラインメモリとして入力される画素を順次蓄えていく。
【0252】
図84は、図78のデータ変換処理装置221における拡大率生成装置312の構成を示すブロック図である。この拡大率生成装置312は、減算器331,332,335,336と、除算器333,337と、X方向の変倍率(RATEX)を格納するレジスタ334と、Y方向の変倍率(RATEY)を格納するレジスタ338と、を備えている。
【0253】
この拡大率生成装置312は、変倍される画像のソース画像の座標X始点SXS、X終点SXE、Y始点SYS、Y終点SYEと変倍後のディステイネーション画像の座標X始点DXS、X終点DXE、Y始点DYS、Y終点DYEからX,Y方向の変倍率RATEX,RATEYを求め、DDA処理装置313へ転送する。
【0254】
すなわち、拡大率生成装置312は図84に示すように、RATEX=(SXE−SXS)/(DXE−DXS)の演算により、X方向の変倍率(RATEX)を求め、さらにRATEY=(SYE−SYS)/(DYE−DYS)の演算により、Y方向の変倍率(RATEY)を求める。
【0255】
図85は、図78のデータ変換処理装置221におけるDDA処理装置313の構成を示すブロック図である。図において、符号341はマルチプレクサ(MUX)であり、最初のみレジスタ342に初期値のディステイネーション画像の座標X始点DXSを転送し、その順次加算されていく加算器344の出力を送るものである。また、符号342は現在処理中のX値を格納するレジスタ、符号343は拡大率生成装置312で求めたX方向変倍率RATEXを格納するレジスタ、符号344はレジスタ342,343それぞれの出力値を加算する加算器、符号345は補間するX終点を格納するレジスタ、符号346は補間するX始点を格納するレジスタである。
【0256】
また、符号347はマルチプレクサ(MUX)であり、最初のみレジスタ348に初期値のディステイネーション画像の座標X始点DXSを転送し、その順次加算されていく加算器350の出力を送るものである。また、符号348は現在処理中のY値を格納するレジスタ、符号349は拡大率生成装置312で求めたY方向変倍率RATEYを格納するレジスタ、符号350はレジスタ348,349それぞれの出力値を加算する加算器、符号351は補間するY終点を格納するレジスタ、符号352は補間するY始点を格納するレジスタである。
【0257】
DDA処理装置313は、拡大率生成装置312からX,Y方向の変倍率とディステイネーション画像の座標X始点DXS、Y始点DYSを受け取り、図2に示す○(拡大された画素)のように、入力された画像の変倍後の座標をDDA(Digtal Diffential Analyze:デジタル微分解析)により随時求める。この例では、図82のように補間するために、補間されるX始点XS、X終点XE、Y始点YS、Y終点を求め、IX・IYカウント装置314、補間係数生成装置315へ転送する。
【0258】
図86は、図78のデータ変換処理装置221における補間係数生成装置315の構成を示すブロック図である。この補間係数生成装置315は、減算器355,356,359,360と、除算器357と、X方向の補間係数(DRATEX)を格納するレジスタ358と、1/DXを求める除算器361と、乗算器262と、Y方向の補間係数(DRATEY)を格納するレジスタ363と、を備えている。
【0259】
以上のように構成された補間係数生成装置315は、DDA処理装置313からの補間するX方向の始点と終点とY方向の始点と終点を受け取り、IX・IYカウント装置314からの補間する画素のX,Y座標から補間処理装置316で補間するX,Y方向の補間係数(DRATEY,DRATEX)を求め、補間処理装置316に送る。
【0260】
すなわち、図86に示すように、DRATEX=(IX−XS)/(XE−XS)の演算により、X方向の補間係数(DRATEX)を求め、さらに、DRATEY=(IY−YS)/(YE−YS)の演算により、Y方向の補間係数(DRATEY)を求める。なお、XS,XEは、DDA処理装置313により求めたX方向の始点と終点、IX,IYは、IX・IYカウント装置314からの補間する画素のX,Y座標である。また、このとき、本方式は図83に示すように、順次水平ラインごと求めるため、DRATEYの演算は各ラインごと1回のみ必要なだけであり、演算量は少なく、かつハードウエア量の減少と処理速度の高速化が実現する。
【0261】
図87は、図78のデータ変換処理装置221における補間処理装置316の構成を示すブロック図である。この補間処理装置316は、大きくは、垂直補間処理装置371と、水平補間係数生成装置372と、水平補間処理装置373と、を備えている。
【0262】
垂直補間処理装置371は、補間係数生成装置315で求めた補間係数(DRATEY)により、Y始点から現在のライン(Y座標)の位置の差分値を求め、垂直補間されたAV,BVを求める。この詳細については後述する。
【0263】
水平補間係数生成装置372は、補間係数生成装置315で求めた補間係数(DRATEX,1/DX)により、この変倍処理装置316が処理することが可能な水平方向のMAX拡大率まで、水平方向の補間係数を並列に求める。この例では、この変倍処理装置316が水平方向に8倍までであるため、8個の水平方向の補間係数を並列に求めている。この詳細については後述する。
【0264】
水平補間処理装置373は、垂直補間処理装置371で求めた垂直方向の補間点であるWCOLAV,WCOLBVを受け取り、この2点間を水平補間係数生成装置372で求めた複数の補間係数から、複数の補間点の値を求める。このとき、実際の補間すべき個数は、後述する有効数カウント装置によりカウントされる。この詳細については後述する。
【0265】
以上のように構成された補間処理装置316は、パラメータ処理装置311から補間するデータを受け取り、さらに補間係数生成装置315から補間する係数を受け取って補間することにより、図73に示すように、拡大された画素間を補間し埋めることで拡大画像を生成する変倍処理を実行する。
【0266】
なお、ここでは補間方法としてはバイリニア補間方法を例にとって説明する。図82は、バイリニア補間方法を用いた補間処理の例である。ここでは、図83に示すように、各ラインを水平方向に順次補間していく。このため図82(a)に示すように、A,C間とB,D間を垂直に補間し、AV,BVを求め、その後図82(b)に示すように、AV,BV間を水平に補間し、Pを求める。この場合、ハードウェア構成によっては、求めたBVをつぎのAVとして再利用することが可能であり、補間演算の減少へつながり、かつハードウエア量の減少と処理速度が向上する。
【0267】
図88は、図87の補間処理装置316における垂直補間処理装置371の構成を示すブロック図である。この垂直補間処理装置371は、減算器375,379と、乗算器376,380と、加算器377,381と、レジスタ378,382と、を備えている。
【0268】
減算器375は、パラメータ処理装置311で求めた4点の画素データの左の2つの画素の差を求める。乗算器376は、補間係数処理装置315で求めたDRATEYの値と減算器375の差分を乗算することにより、差分内での位置を求める。加算器377は、乗算器376で求めた値と始点を加算することにより、左側の垂直方向に補間された値を求める。レジスタ378は、加算器377の値を格納する。
【0269】
また、減算器379は、パラメータ処理装置311で求めた4点の画素データの右の2つの画素の差を求める。乗算器380は、補間係数処理装置315で求めたDRATEYの値と減算器379の差分を乗算することにより、差分内での位置を求める。加算器381は、乗算器380で求めた値と始点を加算することにより、右側の垂直方向に補間された値を求める。レジスタ382は、加算器381の値を格納する。
【0270】
図89は、図87の補間処理装置316における水平補間処理装置372の構成を示すブロック図である。この水平補間処理装置372は、加算器401〜407と、レジスタ408〜415と、を備えている。
【0271】
加算器407は、補間係数生成装置315で求めたDRATEXの値と1/DXと加算することにより、補間係数生成装置315で求めたDRATEXのつぎの水平方向に2つ目の補間係数を求める。加算器406は、加算器407で求めた2つ目の補間係数と1/DXと加算することにより、補間係数生成装置315で求めたDRATEXのつぎの水平方向に3つ目の補間係数を求める。
【0272】
加算器405は、加算器406で求めた水平方向に3つ目の補間係数と1/DXと加算することにより、補間係数生成装置315で求めたDRATEXのつぎの水平方向に4つ目の補間係数を求める。加算器404は、加算器405で求めた4つ目の補間係数と1/DXと加算することにより、補間係数生成装置315で求めたDRATEXのつぎの水平方向に5つ目の補間係数を求める。
【0273】
加算器403は、加算器404で求めた水平方向に5つ目の補間係数と1/DXと加算することにより、補間係数生成装置315で求めたDRATEXのつぎの水平方向に6つ目の補間係数を求める。加算器402は、加算器403で求めた6つ目の補間係数と1/DXと加算することにより、補間係数生成装置315で求めたDRATEXのつぎの水平方向に7つ目の補間係数を求める。加算器401は、加算器402で求めた7つ目の補間係数と1/DXと加算することにより、補間係数生成装置315で求めたDRATEXのつぎの水平方向に8つ目の補間係数を求める。
【0274】
レジスタ415は、補間係数生成装置315で求めたDRATEXの値を格納する。レジスタ414は、加算器407で求めた水平方向に2つ目の補間係数の値を格納する。レジスタ413は、加算器406で求めた水平方向に3つ目の補間係数の値を格納する。レジスタ412は、加算器405で求めた水平方向に4つ目の補間係数の値を格納する。レジスタ411は、加算器404で求めた水平方向に5つ目の補間係数の値を格納する。レジスタ410は、加算器403で求めた水平方向に6つ目の補間係数の値を格納する。レジスタ409は、加算器402で求めた水平方向に7つ目の補間係数の値を格納する。レジスタ408は、加算器401で求めた水平方向に8つ目の補間係数の値を格納する。
【0275】
図90は、図87の補間処理装置316における水平補間処理装置373の構成を示すブロック図である。この水平補間処理装置373は、乗算器421〜428と、加算器429〜436と、レジスタ437〜444と、減算器445と、有効数カウント装置446と、を備えている。
【0276】
減算器445は、垂直補間処理装置371で求めた垂直方向に補間された2点の画素データの水平方向の差を求める。乗算器421は、減算器445で求めた画素の差分と、水平補間係数生成装置372で求めた水平方向に1つ目の補間係数とを乗算することにより、差分間での補完される値を求める。加算器429は、乗算器421での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向に補間された1つ目の画素値を求める。レジスタ437は、加算器429で求めた値を格納する。
【0277】
乗算器422は、減算器445によって求めた画素の差分と、水平補間係数生成装置372で求めた水平方向に2つ目の補間係数とを乗算することにより、差分間での補完される値を求める。加算器430は、乗算器422での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向に補間された2つ目の画素値を求める。レジスタ438は、加算器430で求めた値を格納する。
【0278】
乗算器423は、減算器445によって求めた画素の差分と、水平補間係数生成装置372で求めた水平方向に3つ目の補間係数とを乗算することにより、差分間での補完される値を求める。加算器431は、乗算器423での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向に補間された3つ目の画素値を求める。レジスタ439は、加算器431で求めた値を格納する。
【0279】
乗算器424は、減算器445によって求めた画素の差分と、水平補間係数生成装置372で求めた水平方向に4つ目の補間係数とを乗算することにより、差分間での補完される値を求める。加算器432は、乗算器424での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向に補間された4つ目の画素値を求める。レジスタ440は、加算器432で求めた値を格納する。
【0280】
乗算器425は、減算器445によって求めた画素の差分と、水平補間係数生成装置372で求めた水平方向に5つ目の補間係数とを乗算することにより、差分間での補完される値を求める。加算器433は、乗算器425での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向に補間された5つ目の画素値を求める。レジスタ441は、加算器433で求めた値を格納する。
【0281】
乗算器426は、減算器445によって求めた画素の差分と、水平補間係数生成装置372で求めた水平方向に6つ目の補間係数とを乗算することにより、差分間での補完される値を求める。加算器434は、乗算器426での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向に補間された6つ目の画素値を求める。レジスタ442は、加算器434で求めた値を格納する。
【0282】
乗算器427は、減算器445によって求めた画素の差分と、水平補間係数生成装置372で求めた水平方向に7つ目の補間係数とを乗算することにより、差分間での補完される値を求める。加算器435は、乗算器427での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向に補間された7つ目の画素値を求める。レジスタ443は、加算器435で求めた値を格納する。
【0283】
乗算器428は、減算器445によって求めた画素の差分と、水平補間係数生成装置372で求めた水平方向に7つ目の補間係数とを乗算することにより、差分間での補完される値を求める。加算器436は、乗算器428での乗算結果と垂直補間結果であるWCOLAVの値を加算することにより、水平方向に補間された8つ目の画素値を求める。レジスタ444は、加算器436で求めた値を格納する。
【0284】
有効数カウント装置は、水平方向に8個の補間係数が、どの時点から“1.0”を超えたかを1番目の係数からカウントすることにより、有効数を求める。
【0285】
したがって、この実施の形態2の画像処理装置215は、たとえば、図68に示すように、水平しきい値マトリックス記憶装置301に走査ラインに適用される全てのしきい値を格納し、そのしきい値すべて比較する並列比較装置303に複数の多値データをそれぞれのしきい値に対応させるようにシフトさせて2値化処理を行ない、その後、有効BIT生成装置304によって有効BIT生成処理を行なって有効データを切りだし、固定長データ生成装置305にて固定化することにより、従来においてしきい値マトリックスを多値データごとに切り出しているのに対し、本発明では、しきい値マトリックスの水平方向のデータ数と同じ数の並列に比較する装置を備え、その並列比較器に多値データをシフトして流すため、従来のような大きな選択装置を必要とせずに小さいゲートによる構成が実現する。また、ハーフトーン処理装置の並列処理の画素数分の画素を常に供給するため、変倍処理において、同じ並列処理の画素分の並列処理を行なうことにより、高速処理を図ることができる。
【0286】
【発明の効果】
以上説明したように、本発明にかかる画像処理装置(請求項1)によれば、処理対象の複数の多値データを変倍処理手段に入力し、このとき、変倍処理手段はハーフトーン手段が並列に処理する画素数分の画素を常に供給する構成としたので、画像を変倍処理した後、直接にハーフトーン処理を行なうための無駄なワークメモリ領域を必要とせず、かつハーフトーン処理手段における並列処理数分の画素を常に変倍処理手段が生成するため、高速な画像処理を行なうことができる。
【0287】
また、本発明にかかる画像処理装置(請求項2)によれば、請求項1のハーフトーン処理装置において、しきい値マトリックス記憶手段から読み出されるしきい値データを処理走査ラインが終了するまで、再利用可能なように処理に適用する全しきい値データを取り込み、複数の変倍データを対応するしきい値と比較するためにシフトさせ、複数の変倍データと並列に比較する構成であるため、複数ドットの2値化処理を高速に行なうことができる。
【0288】
また、本発明にかかる画像処理装置(請求項3)によれば、請求項2のハーフトーン処理手段において、さらに、並列比較手段から受け取った複数の画素を、有効画素数だけ固定長のデータに加えていく固定長データ生成手段を有するので、従来のような大きなハードウエア構成によらずに固定長データを生成することができる。
【0289】
また、本発明にかかる画像処理装置(請求項4)によれば、請求項1の変倍処理手段において、変倍画素係数生成手段でハーフトーン処理手段の並列処理する画素と同じ数の元画素の水平方向の画素に対し変倍後の各画素のX幅を求め、その変倍後の各画素のX幅から、変倍画素変換手段が同じ数の元画像の水平方向の画素をデータ変換するため、水平方向に並列に変倍処理を高速に行なうことができる。
【0290】
また、本発明にかかる画像処理装置(請求項5)によれば、請求項4の変倍画素係数生成手段において、並列X幅生成手段でハーフトーン処理手段の並列処理数と同じ数の画素のX幅を求め、この複数のX幅を出力X幅生成手段が受け取り、ハーフトーン処理手段の並列処理数へ分けて出力するので、水平方向(X方向)の並列変倍処理を高速に行なうことができる。
【0291】
また、本発明にかかる画像処理装置(請求項6)によれば、複数の多値データを入力し、この複数の多値データを並列にハーフトーン処理するハーフトーン処理手段と、水平方向に画像変換処理を行なうデータ変換処理手段と、を備え、メモリ制御手段が、データ変換処理手段とハーフトーン処理手段とが必要とするデータと、ハーフトーン手段によるハーフトーン処理後のメモリのリード/ライトを制御する構成としたので、最小限のハードウエア構成で、画像データの読み込み処理を中断することなく画像処理を並列に行なうことで高速の処理を行なうことができる。
【0292】
また、本発明にかかる画像処理装置(請求項7)によれば、請求項6において、メモリ制御手段は、垂直方向(Y方向)に変倍処理を実行し、かつ垂直方向の変倍率に応じて必要なディザデータを選択し、読み込むデータ入力手段を有するので、画像の読み込みと画像処理が並列に行なえ、高速処理が実現する。
【0293】
また、本発明にかかる画像処理装置(請求項8)によれば、請求項6のデータ変換処理手段が、最近傍法にしたがって変倍処理を実行するので、画像を変倍処理した後に、直接にハーフトーン処理を行なうための無駄なワークメモリの領域を必要とせずに、高速の画像処理を行なうことができる。
【0294】
また、本発明にかかる画像処理装置(請求項9)によれば、請求項6のデータ変換処理手段が、バイリニア補間法にしたがって変倍処理を実行するので、画像を変倍処理した後に、直接にハーフトーン処理を行なうための無駄なワークメモリの領域を必要とせずに、高速の画像処理を行なうことができる。
【0295】
また、本発明にかかる画像処理装置(請求項10)によれば、請求項8のデータ変換処理手段は、ハーフトーン処理手段が並列に処理する画素と同数の画素を並列に変倍処理し、ハーフトーン手段に供給するため、ハーフトーン処理手段の並列処理数分の画素を常に生成し、供給することができる。
【0296】
また、本発明にかかる画像処理装置(請求項11)によれば、請求項8のデータ変換処理手段において、変倍画素係数生成手段でハーフトーン処理手段の並列処理する画素と同じ数の元画素の水平方向の画素に対し変倍後の各画素のX幅を求め、その変倍後の各画素のX幅から、変倍画素変換手段が同じ数の元画像の水平方向の画素をデータ変換するため、水平方向に並列に変倍処理を高速に行なうことができる。
【0297】
また、本発明にかかる画像処理装置(請求項12)によれば、請求項10のハーフトン処理手段が、水平方向に複数の画素を並列に比較する並列比較手段と、水平方向にすべてのしきい値マトリックスを記憶する水平しきい値マトリックス記憶手段と、複数の多値データをしきい値マトリックスの位置へシフトさせる多値データシフト手段と、を有するので、水平方向に並列にハーフトーン処理を高速に行なうことができる。
【0298】
また、本発明にかかる画像処理装置(請求項13)によれば、請求項6のハーフトーン処理手段において、さらに、並列比較手段から受け取った複数の画素を、有効画素数だけ固定長のデータに加えていく固定長データ生成手段を有するため、従来のような大きなハードウエア構成を必要とせずに固定長データを高速に生成することができる。
【0299】
また、本発明にかかる画像処理装置(請求項14)によれば、請求項9のデータ変換処理手段が、水平方向にMAXの倍率分、並列に画素を求める補間処理手段を有する構成のため、水平方向に並列に変倍処理を高速で行なうことができる。
【0300】
また、本発明にかかる画像処理装置(請求項15)によれば、請求項9の補間処理手段が、水平方向にMAXの倍率分の画素を並列に計算し補間する水平補間手段と、この画素の有効数(実際に補間すべき個数)を求める有効数カウント手段と、を有する構成であるので、水平方向に並列に変倍処理を高速に行なうことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1にかかる画像処理装置を用いたシステム構成を示すブロック図である。
【図2】本発明の実施の形態の画像処理における拡大画素および補間画素の例を示す説明図である。
【図3】本発明の実施の形態の画像処理における拡大および縮小例を示す説明図である。
【図4】図1における画像処理装置の構成を示すブロック図である。
【図5】図4における変倍処理装置の構成を示すブロック図である。
【図6】図4における変倍処理装置の全体動作を示すフローチャートである。
【図7】図5における変倍処理装置に含まれる元画素格納装置の構成を示すブロック図である。
【図8】図5における変倍処理装置に含まれる変倍率生成装置の構成を示すブロック図である。
【図9】図5における変倍処理装置に含まれるDDA処理装置の構成を示すブロック図である。
【図10】図5における変倍処理装置に含まれるIX・IYカウント装置の構成を示すブロック図である。
【図11】図5における変倍処理装置に含まれる変倍画素係数生成装置の構成を示すブロック図である。
【図12】図11の変倍画素係数生成装置における並列X幅生成装置の構成を示すブロック図である。
【図13】図11の変倍画素係数生成装置における出力X幅生成装置の構成を示すブロック図である。
【図14】図13の出力X幅生成装置における累積加算処理装置(A)の構成を示すブロック図である。
【図15】図13の出力X幅生成装置におけるWXWIDTH更新処理装置の動作を示すフローチャートである。
【図16】図13の出力X幅生成装置における出力用XWIDTH生成処理装置動作を示すフローチャートである。
【図17】図13の出力X幅生成装置における累積加算処理装置(B)の構成を示すブロック図である。
【図18】図5の変倍画素変換装置における出力画素の0番目の処理動作を示すフローチャートである。
【図19】図5の変倍画素変換装置における出力画素の1番目の処理動作を示すフローチャートである。
【図20】図5の変倍画素変換装置における出力画素の2番目の処理動作を示すフローチャートである。
【図21】図5の変倍画素変換装置における出力画素の3番目の処理動作を示すフローチャートである。
【図22】図5の変倍画素変換装置における出力画素の4番目の処理動作を示すフローチャートである。
【図23】図5の変倍画素変換装置における出力画素の5番目の処理動作を示すフローチャートである。
【図24】図5の変倍画素変換装置における出力画素の6番目の処理動作を示すフローチャートである。
【図25】図5の変倍画素変換装置における出力画素の7番目の処理動作を示すフローチャートである。
【図26】本発明の実施の形態にかかる画像処理装置のハーフトーン処理装置の構成を示すブロック図である。
【図27】図26のハーフトーン処理装置の具体的構成例を示すブロック図であり、水平方向のしきい値マトリックスサイズ(m)が23(24個)の場合の例について示している。
【図28】本発明の実施の形態1にかかるハーフトーン処理装置の動作を示すフローチャートである。
【図29】図26のハーフトーン処理装置における多値データシフト装置の動作(1)を示すフローチャートである。
【図30】図26のハーフトーン処理装置における多値データシフト装置の動作(2)を示すフローチャートである。
【図31】図26のハーフトーン処理装置における多値データシフト装置の動作(3)を示すフローチャートである。
【図32】図26のハーフトーン処理装置における多値データシフト装置の動作(4)を示すフローチャートである。
【図33】図26のハーフトーン処理装置における多値データシフト装置の動作(5)を示すフローチャートである。
【図34】図26のハーフトーン処理装置における多値データシフト装置の動作(6)を示すフローチャートである。
【図35】図27のハーフトーン処理装置における並列比較装置の構成を示すブロック図である。
【図36】図26のハーフトーン処理装置における有効BIT生成装置の動作(1)を示すフローチャートである。
【図37】図26のハーフトーン処理装置における有効BIT生成装置の動作(2)を示すフローチャートである。
【図38】図26のハーフトーン処理装置における有効BIT生成装置の動作(3)を示すフローチャートである。
【図39】図26のハーフトーン処理装置における有効BIT生成装置の動作(4)を示すフローチャートである。
【図40】図26のハーフトーン処理装置における有効BIT生成装置の動作(5)を示すフローチャートである。
【図41】図26のハーフトーン処理装置における有効BIT生成装置の動作(6)を示すフローチャートである。
【図42】図27のハーフトーン処理装置における固定長データ生成装置の構成を示すブロック図である。
【図43】この実施の形態1にかかるハートーン処理装置のしきい地マトリックスメモリのフォーマット例を示す図表である。
【図44】図43のしきい値マトリックスを使用した処理の推移例を示す図表である。
【図45】図26とは異なるハーフトーン処理装置の構成を示すブロック図である。
【図46】図45のハーフトーン処理装置の具体的構成例を示すブロック図であり、水平方向のMAXのハーフトーン処理数(n)が15(16個)、水平方向のしきい値マトリックスサイズ(m)が7(8個)の場合の例について示すものである。
【図47】この実施の形態2にかかる画像処理装置を搭載した多色画像形成装置の構成を示す説明図である。
【図48】図47の多色画像形成装置における電装・制御装置の構成を示すブロック図である。
【図49】図48における画像処理装置の構成を示すブロック図である。
【図50】この実施の形態2にかかる画像処理装置の全体動作を示すフローチャートである。
【図51】垂直方向(Y方向)に縮小する場合のタイミング例を示す説明図であり、(a)は0.5倍の例、(b)は0.6666倍の例である。
【図52】垂直方向(Y方向)に1倍拡大する場合のタイミング例を示す説明図である。
【図53】垂直方向(Y方向)に1.5倍拡大する場合のタイミング例を示す説明図である。
【図54】垂直方向(Y方向)に2倍拡大する場合のタイミング例を示す説明図である。
【図55】図49におけるメモリアービターI/Fの構成を示すブロック図である。
【図56】図49におけるメモリアービターI/Fの詳細構成を示すブロック図である。
【図57】図56のメモリアービターI/Fにおける変倍率生成装置の構成を示すブロック図である。
【図58】図56のメモリアービターI/FにおけるY‐DDA処理装置の構成を示すブロック図である。
【図59】図56のメモリアービターI/FにおけるIYカウント装置の構成を示すブロック図である。
【図60】図56のメモリアービターI/Fにおけるメモリアドレス生成装置の構成を示すブロック図である。
【図61】図49のデータ変換処理装置の入出力の構成を示すブロック図であり、変倍処理装置のみを有する場合について示している。
【図62】図49におけるデータ変換処理装置の詳細構成を示すブロック図である。
【図63】図49におけるデータ変換処理装置の動作を示すフローチャートである。
【図64】図62のデータ変換処理装置における元画素格納装置の構成を示すブロック図である。
【図65】図62のデータ変換処理装置における変倍率生成装置の構成を示すブロック図である。
【図66】図62のデータ変換処理装置におけるDDA処理装置の構成を示すブロック図である。
【図67】図62のデータ変換処理装置におけるIXカウント装置の構成を示すブロック図である。
【図68】本発明の実施の形態にかかる画像処理装置のハーフトーン処理装置の構成を示すブロック図である。
【図69】図68のハーフトーン処理装置の具体的構成例を示すブロック図であり、水平方向のMAXのハーフトーン処理数(n)が7(8個)であり、水平方向のしきい値マトリックスサイズ(m)が23(24個)の場合の例について示している。
【図70】しきい値マトリックスメモリにおける24×24のサイズのフォーマット例を示す説明図である。
【図71】図49のデータ変換処理装置のバイリニア補間法による変倍処理を示すフローチャートである。
【図72】図68、図67のラインメモリのフォーマット例を示す説明図である。
【図73】拡大された画素間を補間し埋める例を示す説明図である。
【図74】垂直方向(Y方向)に縮小する場合のタイミング例を示す説明図であり、(a)は0.5倍の例、(b)は0.6666倍の例である。
【図75】垂直方向(Y方向)に1倍拡大する場合のタイミング例を示す説明図である。
【図76】垂直方向(Y方向)に1.5倍拡大する場合のタイミング例を示す説明図である。
【図77】垂直方向(Y方向)に2倍拡大する場合のタイミング例を示す説明図である。
【図78】バイリニア補間法に基づくデータ変換処理装置の構成を示すブロック図である。
【図79】図78のデータ変換処理装置における全体動作を示すフローチャートである。
【図80】図78のデータ変換処理装置におけるパラメータ処理装置の構成を示すブロック図である。
【図81】この実施の形態2にかかるスキャンラインでの画像データ例を示す説明図である。
【図82】この実施の形態2にかかる画像データの補間方法を示す説明図である。
【図83】この実施の形態2にかかる画像データの補間時における出力例を示す説明図である。
【図84】図78のデータ変換処理装置におけるパラメータ処理装置の構成を示すブロック図である。
【図85】図78のデータ変換処理装置におけるDDA処理装置の構成を示すブロック図である。
【図86】図78のデータ変換処理装置における補間係数生成装置の構成を示すブロック図である。
【図87】図78のデータ変換処理装置における補間処理装置の構成を示すブロック図である。
【図88】図87の補間処理装置における垂直補間処理装置の構成を示すブロック図である。
【図89】図87の補間処理装置における水平補間処理装置の構成を示すブロック図である。
【図90】図87の補間処理装置における水平補間処理装置の構成を示すブロック図である。
【図91】従来におけるカラー画像処理装置の構成を示すブロック図である。
【図92】従来におけるハーフトーン生成装置の構成を示すブロック図である。
【図93】従来における印刷データ生成装置の構成を示すブロック図である。
【符号の説明】
103,215 画像処理装置
106 変倍処理装置
107,222 ハーフトーン処理装置
108 しきい値マトリックスメモリ
114 変倍画素係数生成装置
115 変倍画素変換装置
116,167,230,308 コントローラ
141 並列X幅生成装置
142 出力X幅生成装置
162,301 水平しきい値マトリックス記憶装置
163,302 多値データシフト装置
164,303 並列比較装置
165,304 有効BIT生成装置
166,305 固定長データ生成装置
220 メモリアービターI/F
221 データ変換処理装置
306 ラインメモリ
316 補間処理装置
371 垂直補間処理装置
372 水平補間係数生成装置
373 水平補間処理装置
446 有効数カウント装置
316 補間処理装置
371 垂直補間処理装置
373 水平補間処理装置
446 有効数カウント装置[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image processing apparatus which is used in a printer controller such as a color image forming apparatus, includes a halftone processing apparatus for converting multi-value image data into a binary image, and is capable of high-speed processing.
[0002]
[Prior art]
In recent years, demands for higher resolution and higher speed output have been increasing in image forming apparatuses such as page printers, and it has become difficult to realize this image processing only by the performance of the CPU. In particular, a color printer requires various image processing and many processing such as magnification processing of C (cyan), M (magenta), Y (yellow), and K (black) plates, dither processing, and color conversion processing. I do. In recent years, with the progress of semiconductor technology, it has become possible to perform part of the processing performed by the CPU using hardware. For example, a system has been disclosed in which a hardware accelerator is realized by an FPGA (field programmable gate array: large-scale PLD) (for example, see Patent Document 1).
[0003]
Incidentally, the image scaling processing technique is a technique required to obtain an output image of the same size as the input image when the resolution of the image handled between the input device and the output device is different. As the method of the scaling processing, a nearest neighbor method, a bilinear interpolation method, a cubic interpolation method, and the like are known. Conventionally, a source image obtained by subjecting a source image to resolution conversion is developed in a work area of a CPU, and thereafter, a hearton process is performed and the result is written in a band buffer.
[0004]
The nearest neighbor method is an algorithm for interpolating a pixel closest to a point to be interpolated. The bilinear interpolation method is a method of obtaining interpolation data by linear interpolation from four points around a point to be interpolated, and is expressed by the following equation from four points J, I, G, and H around a point Z. .
[0005]
The cubic interpolation method is represented by the following arithmetic expression (Equation 1) from 16 points around the point Z. Here, C (t) is an approximate expression of the function sinπx / πx that constitutes the sampling theorem.
[0006]
(Equation 1)
[0007]
Comparing these interpolation methods, the nearest neighbor method is light in processing but not so good, and the bilinear interpolation method has a general processing capacity and the like, and has a normal image quality. Although the cubic interpolation method is complicated in processing, good image quality can be obtained.
[0008]
Now, as a device for generating halftone data at high speed, the threshold matrix data is alternately transferred to a plurality of high-speed memories separately from the memory of the threshold matrix data, and the halftone processing is performed by the high-speed memory. It is disclosed that the operation is performed by reading data (for example, see Patent Document 2). However, this apparatus aims at generating halftone at high speed with a small memory, and does not basically realize a dramatic high-speed processing.
[0009]
FIG. 91 shows a configuration of a conventional halftone generation device (for example, see Patent Document 3). In FIG. 91, first, the image data scanning signal SCANY is read into the threshold
[0010]
After all the threshold data for the scan line are input to the
[0011]
FIG. 92 shows a configuration of a conventional halftone generation device (for example, see Patent Document 4). This halftone generation device includes a threshold data
[0012]
FIG. 93 shows a configuration of a conventional print data generation device (data processing unit) (for example, see Patent Document 5). This device includes a
[0013]
In particular, in FIG. 93, when a dither pattern of, for example, a 16 × 16 matrix is used as a method of using the dither memory, the data amount of the dither data is 16 lines. It is uneconomical to include a memory that stores all such a large number of thresholds. In this case, the dither data is stored in the
[0014]
[Patent Document 1]
JP 2000-90237 A
[Patent Document 2]
JP-A-6-6606
[Patent Document 3]
JP-A-2000-92321 (FIG. 3)
[Patent Document 4]
JP-A-2000-165672 (FIG. 2)
[Patent Document 5]
JP-A-2001-150739 (
[0015]
[Problems to be solved by the invention]
However, each of the conventional techniques as described above has the following problems. First, in a method of developing a source image obtained by performing a resolution conversion of a source image in a work area of a CPU and writing the converted image to a band buffer after the hearton processing, a work area of the CPU is used largely and a maximum size of the image is used. Requires a work area of the same size as the band buffer (memory).
[0016]
Further, in the devices disclosed in
[0017]
Further, in the print data processing apparatus disclosed in
[0018]
The present invention has been made in view of the above, makes unnecessary use of a work memory area for performing halftone processing after image scaling, and reduces the number of pixels for parallel processing in halftone processing after scaling. A first object is to realize high-speed processing by supplying.
[0019]
It is a second object of the present invention to realize high-speed processing by enabling image data reading processing and image processing to be performed in parallel without interrupting image data reading processing.
[0020]
[Means for Solving the Problems]
In order to achieve the above object, in the image processing apparatus according to
[0021]
According to the present invention, a plurality of multivalued data to be processed are input to the scaling processing means, and at this time, the scaling processing means always supplies pixels of the number of pixels to be processed in parallel by the halftone means. High-speed processing with minimal hardware is realized.
[0022]
Further, in the image processing apparatus according to
[0023]
According to the present invention, in the halftone processing apparatus according to the first aspect, the threshold data read from the threshold matrix storage means is applied to the processing so that it can be reused until the processing scan line is completed. High-speed binarization processing of multiple dots by capturing threshold data, shifting multiple scaled data for comparison with corresponding thresholds, and comparing multiple scaled data in parallel Becomes possible.
[0024]
Further, in the image processing apparatus according to
[0025]
According to this invention, the halftone processing means according to
[0026]
Further, in the image processing apparatus according to
[0027]
According to the present invention, in the scaling processing means according to
[0028]
Further, in the image processing apparatus according to
[0029]
According to this invention, in the variable pixel coefficient generation means of
[0030]
In the image processing apparatus according to the sixth aspect, a plurality of multi-valued data is input, and a halftone processing unit that performs a halftone process on the plurality of the multivalued data in parallel, and performs an image conversion process in a horizontal direction. Data conversion processing means, data required by the data conversion processing means and the halftone processing means, and memory control means for controlling read / write of a memory after the halftone processing by the halftone means. It is provided.
[0031]
According to the present invention, there are provided halftone processing means for inputting a plurality of multivalued data and halftone processing the plurality of multivalued data in parallel, and data conversion processing means for performing image conversion processing in a horizontal direction. The memory control means controls the data required by the data conversion processing means and the halftone processing means and the read / write of the memory after the halftone processing by the halftone means, so that the minimum hardware With the hardware configuration, image processing can be performed in parallel without interrupting the reading of image data.
[0032]
Further, in the image processing apparatus according to
[0033]
According to the present invention, in
[0034]
Further, in the image processing apparatus according to
[0035]
According to this invention, the data conversion processing means according to
[0036]
In the image processing apparatus according to the ninth aspect, the data conversion processing means executes a scaling process according to a bilinear interpolation method.
[0037]
According to the present invention, the data conversion processing means according to
[0038]
Further, in the image processing device according to
[0039]
According to this invention, the data conversion processing means according to
[0040]
In the image processing apparatus according to the eleventh aspect, the data conversion processing unit includes a parallel X width generation unit that calculates an X width of the same number of pixels as the number of parallel processes of the halftone processing unit; Output X width generating means for receiving a plurality of X widths from the X width generating means, and outputting the divided X widths divided by the number of parallel processes of the halftone processing means.
[0041]
According to the present invention, in the data conversion processing means of
[0042]
In the image processing apparatus according to the twelfth aspect, the halftone processing means stores a plurality of threshold value matrices in a horizontal direction and a parallel comparison means for comparing a plurality of pixels in a horizontal direction. A horizontal threshold matrix storage unit; and a multi-value data shift unit for shifting the plurality of multi-value data to the position of the threshold matrix.
[0043]
According to this invention, the halfton processing means according to
[0044]
In the image processing apparatus according to the thirteenth aspect, the halftone processing unit further inserts a plurality of pixels in the horizontal direction received from the parallel comparison unit into fixed-length data by the number of effective pixels. It has a fixed length data generating means.
[0045]
According to this invention, the halftone processing means of
[0046]
Further, in the image processing apparatus according to the fourteenth aspect, the data conversion processing means has an interpolation processing means for obtaining pixels in parallel in a horizontal direction by a magnification of MAX.
[0047]
According to the present invention, since the data conversion processing means of
[0048]
Further, in the image processing apparatus according to
[0049]
According to the present invention, the interpolation processing means according to
[0050]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, a preferred embodiment of an image processing apparatus according to the present invention will be described in detail with reference to the accompanying drawings. The present invention is not limited to this embodiment.
[0051]
(Embodiment 1)
The image processing apparatus according to the first embodiment performs the parallel processing for the same parallel processing pixels in the resolution conversion processing in order to always supply the pixels for the parallel processing pixels of the halftone processing apparatus. In the halftone processing device, the threshold data read from the threshold matrix memory is registered in the halftone processing device so that all threshold data applied to the processing can be reused until the processing scan line ends. Then, a plurality of scaled data are shifted for comparison with a corresponding threshold value, and are compared with the plurality of scaled data, whereby the binarization processing of a plurality of dots is performed at high speed. This will be specifically described below.
[0052]
FIG. 1 is a block diagram illustrating a system configuration using the image processing apparatus according to the first embodiment of the present invention. In the figure,
[0053]
The
[0054]
FIG. 2 shows an example of enlarged pixels and interpolated pixels, and shows an example of an enlarged / reduced image of FIG. These figures will be described later.
[0055]
FIG. 4 is a block diagram showing a configuration of the
[0056]
The scaling
[0057]
Although various known scaling processing methods are used in the
[0058]
FIG. 5 is a block diagram showing the configuration of the
[0059]
The original
[0060]
Further, the
[0061]
The IX /
[0062]
Further, the scaling pixel
[0063]
The scaling
[0064]
Next, the operation of the variable
[0065]
Subsequently, the
[0066]
Subsequently, the scaled
[0067]
Subsequently, it is determined whether or not the value has exceeded the Y value end point YE to be interpolated (step S1011). If it is determined that IY has not exceeded the Y-value end point YE, the process returns to step S1004. On the other hand, if it is determined that IY has exceeded the Y-value end point YE, the distorted YE is further scaled. It is determined whether or not the coordinate Y end point DYE of the nation image has been exceeded (step S1012). Here, if it is determined that YE does not exceed DYE, the process returns to step S1002, while if it is determined that YE exceeds DYE, the scaling process ends.
[0068]
Next, each functional block that constitutes the above-described
[0069]
FIG. 8 is a block diagram showing the configuration of the scaling
[0070]
As shown in FIG. 5, the scaling
[0071]
That is, the scaling
[0072]
FIG. 9 is a block diagram showing a configuration of the
[0073]
[0074]
The
[0075]
At this time, in the X direction, DDA for the MAX parallel processing pixels of the
[0076]
FIG. 10 is a block diagram showing the configuration of the IX /
[0077]
[0078]
FIG. 11 is a block diagram showing the configuration of the scaled
[0079]
That is, the scaled pixel
[0080]
FIG. 12 is a block diagram showing a configuration of the parallel X
[0081]
FIG. 13 is a block diagram showing the configuration of the output X
[0082]
The output X
[0083]
The cumulative addition processing device (A) 147 cumulatively adds the X widths stored in the registers 146a to 146f. The WXWIDTH
[0084]
The output XWIDTH
[0085]
FIG. 14 is a block diagram showing a configuration of the cumulative addition processing device (A) 147 in the output X
[0086]
Next, the operation of the WXWIDTH
[0087]
If it is determined in step S1 that the 0th parallel processing number is less than 8, it is determined whether the 0th to 1st cumulative X widths are equal to or greater than 8 in the halftone processing device 107 (step S1). S3). Here, when it is determined that the accumulated X widths from 0 to 1 are equal to or greater than 8 in the number of parallel processes of the
[0088]
Next, the operation of the output XWIDTH
[0089]
Subsequently, it is determined whether or not the accumulated X widths from the 0th to the 1st are equal to or greater than the number of parallel processes of the halftone processing device 107 (step S24). Here, when it is determined that the accumulated X widths from 0 to 1 are equal to or more than 8 in the number of parallel processes of the
[0090]
Subsequently, it is determined whether the 0th to 2nd cumulative X widths are equal to or greater than the number of parallel processes of the halftone processing device 107 (step S26). Here, when it is determined that the accumulated X width from the 0th to the 2nd is equal to or more than 8 in the number of parallel processes of the
[0091]
Hereinafter, the operation according to the same procedure is executed (steps S28 to S37). Subsequently, since the sum of the X widths of all the pixels is equal to or smaller than the number of parallel processes of the
[0092]
FIG. 17 is a block diagram showing the configuration of the cumulative addition processing device (B) 150 in the output X
[0093]
Next, the operation of the variable magnification
[0094]
Subsequently, it is determined whether or not the “DXWIDTH1” of the accumulated X width of the 0th to 1st pixels output from the variable pixel
[0095]
Subsequently, it is determined whether or not “DXWIDTH2” of the accumulated X width of the 0th to 2nd pixels output from the variable pixel
[0096]
Subsequently, it is determined whether or not “DXWIDTH3” of the cumulative X width of the 0th to 3rd pixels output from the variable pixel
[0097]
Subsequently, it is determined whether or not “DXWIDTH4” of the cumulative X width of the 0th to 4th pixels output from the variable pixel
[0098]
Subsequently, it is determined whether or not “DXWIDTH5” of the accumulated X width of the 0th to 5th pixels output from the variable pixel
[0099]
Subsequently, it is determined whether or not “DXWIDTH6” of the cumulative X width of the 0th to 6th pixels output from the variable pixel
[0100]
Subsequently, it is determined whether or not “DXWIDTH7” of the cumulative X width of the 0th to 7th pixels output from the variable pixel
[0101]
FIG. 19 is a flowchart showing a first processing operation of the output pixel of the variable-magnification
[0102]
Subsequently, it is determined whether or not the cumulative “DXWIDTH1” of the X width of the 0th to 1st pixels output from the variable pixel
[0103]
Subsequently, it is determined whether or not “DXWIDTH2” of the accumulation of the X width of the 0th to 2nd pixels output from the variable pixel
[0104]
Subsequently, it is determined whether or not “DXWIDTH3” of the cumulative X width of the 0th to 3rd pixels output from the variable pixel
[0105]
Subsequently, it is determined whether or not the cumulative "DXWIDTH4" of the X width of the 0th to 4th pixels output from the variable pixel
[0106]
Subsequently, it is determined whether or not “DXWIDTH5” of the cumulative X width of the 0th to 5th pixels output from the variable pixel
[0107]
Subsequently, it is determined whether or not “DXWIDTH6” of the accumulated X width of the sixth to sixth pixels output from the variable pixel
[0108]
Subsequently, it is determined whether or not “DXWIDTH7” of the cumulative X width of the 0th to 7th pixels output from the variable pixel
[0109]
As described above, the variable-magnification
[0110]
Next, the
[0111]
In FIG. 26,
[0112]
The threshold matrix
[0113]
The
[0114]
The fixed-
[0115]
FIG. 27 is a block diagram showing a specific configuration example of the
[0116]
FIG. 28 is a flowchart showing the operation of the
[0117]
28, first, a threshold matrix in the horizontal direction is read from the
[0118]
Subsequently, the multi-value
[0119]
Subsequently, a process of multi-value data start point = (multi-value data start point + multi-value effective number) is executed (step S208), and it is determined whether or not the multi-value data start point is equal to or larger than the horizontal threshold matrix size. (Step S209). Here, when it is determined that the multi-value data start point is equal to or larger than the horizontal threshold matrix size (determination, Yes), the multi-value data start point = (multi-value data start point−horizontal threshold matrix size) (step S210). ).
[0120]
If it is determined in step S209 that the start point of the multi-value data is not equal to or larger than the horizontal threshold matrix size, or if step S210 is executed, it is further determined whether or not the above processing has been completed in the horizontal direction (step S211). If not, the process returns to step S204, and if completed, it is determined whether or not all the processes have been completed in the vertical direction (step S212). Here, if all the operations have not been completed in the vertical direction, the process returns to step S201. If it is determined that all the operations have been completed in the vertical direction, that is, if all the operations have been completed in the horizontal and vertical directions, this halftone process is ended.
[0121]
Next, the operation of the multi-level
[0122]
In the flowchart shown in FIG. 29, it is determined whether or not the multi-value data start point is 0, 1, 2, or 3 (steps S221, S223, S225, and S227). , And shifts the multi-value data (steps S222, S224, S226, S228). Subsequently, as shown in FIG. 30, it is determined whether or not the start points of the multi-valued data are 4, 5, 6, and 7 (steps S229, S231, S233, and S235). If so, the multi-value data is shifted (steps S230, S232, S234, S36). Hereinafter, similarly, as shown in FIGS. 31 to 34, the shift of the multivalued data is performed for the multivalued data start
[0123]
Next, each functional block constituting the
[0124]
Next, the operation of the effective
[0125]
In the flowchart shown in FIG. 36, it is determined whether or not the multi-value data start point is 0, 1, 2, or 3 (steps S271, S273, S275, and S277). As shown, effective binary data corresponding to each of the binary data is set (steps S272, S274, S276, S278). Subsequently, as shown in FIG. 37, it is determined whether or not the multi-value data start points are 4, 5, 6, and 7 (steps S279, S281, S283, S285), and the multi-value data start point corresponds to the corresponding value. If so, valid binary data corresponding to each of the binary data is set as shown (steps S280, S282, S284, S286). Hereinafter, similarly, as shown in FIGS. 38 to 41, values as shown are set for the multi-value
[0126]
FIG. 42 is a block diagram showing a configuration of the fixed-length
[0127]
The
[0128]
The
[0129]
FIG. 43 shows a format example of a 24 × 24 size in the threshold
[0130]
FIG. 45 is a block diagram showing a configuration of the
[0131]
Therefore, in this example, there are a plurality of parallel comparison devices having the same size as the horizontal matrix size, and the plurality of parallel comparison devices similarly compare a plurality of multi-value data exceeding the horizontal threshold matrix size. For this reason, the
[0132]
FIG. 46 is a block diagram showing a specific configuration example of the
[0133]
In the
[0134]
(Embodiment 2)
The image processing apparatus according to the second embodiment stores, in a register, all threshold data to be applied to processing so that the threshold data read from the threshold matrix memory can be reused until the processing scan line ends. The speed of the binarization process of a plurality of dots is improved by shifting the captured data and comparing it with a plurality of scaled data in order to compare the plurality of scaled data with a corresponding threshold value. This will be specifically described below.
[0135]
FIG. 47 is an explanatory diagram illustrating a configuration of a multicolor image forming apparatus equipped with the image processing apparatus according to the second embodiment. The multi-color image forming apparatus mainly includes a belt-shaped photoconductor (hereinafter, referred to as a photoconductor) 1, which is an image carrier, a charging
[0136]
The
[0137]
A
[0138]
Any one of the developing units described above moves to a developable position in synchronization with the developing timing of the corresponding color. The multicolor developing
[0139]
The
[0140]
The
[0141]
The electrostatic latent image formed on the surface of the
[0142]
The surface of the
[0143]
When the transfer to the recording paper is performed, the recording paper stored in the
[0144]
The recording paper is transferred to the fixing
[0145]
The
[0146]
The waste toner scraped from the
[0147]
[0148]
[0149]
FIG. 48 is a block diagram showing a configuration of the electric device /
[0150]
The
[0151]
A
[0152]
The
[0153]
The
[0154]
The
[0155]
The
[0156]
The
[0157]
The
[0158]
FIG. 49 is a block diagram showing a configuration of the
[0159]
The memory arbiter I /
[0160]
The data
[0161]
The
[0162]
The
[0163]
Next, the scaling processing of the
[0164]
First, the memory arbiter I /
[0165]
Subsequently, the memory arbiter I /
[0166]
Subsequently, one line of image processing (magnification, color conversion, filtering, etc.) is performed by the data conversion device 221 (step S1106), and the
[0167]
Subsequently, the memory arbiter I /
[0168]
Subsequently, the memory arbiter I /
[0169]
FIGS. 51A and 51B are explanatory diagrams showing an example of timing when the image is reduced in the vertical direction (Y direction). FIG. 51A is an example of 0.5 times and FIG. 51B is an example of 0.6666 times. In the example of 0.5 times shown in (a), the image data before image processing is read by skipping one line (only odd lines), the dither pattern data is sequentially read one line at a time, and the data after image processing is read. Are sequentially written line by line. In this example, the image data reading process and the image process are performed in parallel.
[0170]
In the example of 0.6666 magnification shown in (b), image data before image processing is read by skipping one line every three lines, dither pattern data is sequentially read one line at a time, and data after image processing is sequentially read by one line. Write in every line. In this example, the image data reading process and the image process are performed in parallel.
[0171]
FIG. 52 is an explanatory diagram showing an example of timing in the case of magnifying one time in the vertical direction (Y direction). In this example, image data before image processing is read line by line, dither pattern data is sequentially read line by line, and data after image processing is sequentially written line by line. In this example, the image data reading process and the image process are performed in parallel.
[0172]
FIG. 53 is an explanatory diagram showing an example of timing when the image is enlarged 1.5 times in the vertical direction (Y direction). In this example, the image data before the image processing is read for each line, the dither pattern data is read after the image processing (in this example, the reading of the data before the image processing is interrupted and the dither pattern is read), and the image data after the image processing is read. Are sequentially written line by line. In this example, the image data reading processing and the image processing are performed in parallel, and two-line image processing is sometimes performed.
[0173]
FIG. 54 is an explanatory diagram showing a timing example when the image is enlarged twice in the vertical direction (Y direction). In this example, image data before image processing is read line by line, dither pattern data is read after image processing (in this example, reading of data before image processing is interrupted and a dither pattern is read), and after image processing Are sequentially written line by line. In this example, image data reading processing and image processing are performed in parallel, and two-line image processing is performed.
[0174]
FIG. 55 is a block diagram showing a configuration of memory arbiter I /
[0175]
The memory arbiter I /
[0176]
Further, the memory arbiter I /
[0177]
FIG. 56 is a block diagram showing a detailed configuration of the memory arbiter I /
[0178]
The scaling
[0179]
The Y-
[0180]
The
[0181]
The memory
[0182]
The multiplexer (MUX) 229 switches the transfer of the data read from the
[0183]
FIG. 57 is a block diagram showing a configuration of the scaling
[0184]
The scaling
[0185]
FIG. 58 is a block diagram showing a configuration of the Y-
[0186]
The multiplexer (MUX) 234 shown in FIG. 58 transfers the coordinate Y starting point DYS of the destination image of the initial value to the
[0187]
The Y-
[0188]
FIG. 59 is a block diagram showing a configuration of the
[0189]
The
[0190]
The
[0191]
The
[0192]
FIG. 60 is a block diagram showing a configuration of the memory
[0193]
The image data
[0194]
The dither data address
[0195]
The post-processing image data address
[0196]
The memory
[0197]
FIG. 61 is a block diagram showing an input / output configuration of the data
[0198]
FIG. 62 is a block diagram showing a detailed configuration of the data
[0199]
The original
[0200]
In addition, the
[0201]
Further, the
[0202]
Also, the scaling pixel
[0203]
The scaling
[0204]
FIG. 63 is a flowchart showing the operation of the data
[0205]
In FIG. 63, first, a scaling factor is obtained by the scaling factor generating device 251 (step S351), and DDA in the X direction is initialized (step S352). Further, the
[0206]
Then, the scaled data is read from the internal line memory (step S354), and the width of the read scaled pixel is obtained by the scaled pixel coefficient generator 255 (step S355). Further, the scaled
[0207]
FIG. 64 is a block diagram showing a configuration of the original
[0208]
The registers 260a to 260h sequentially store data and store pixels for the MAX parallel processing pixels of the
[0209]
FIG. 65 is a block diagram showing a configuration of the scaling
[0210]
The scaling
[0211]
FIG. 66 is a block diagram showing a configuration of the
[0212]
The
[0213]
At this time, in the X direction, DDA for the MAX parallel processing pixels of the
[0214]
FIG. 67 is a block diagram illustrating a configuration of the
[0215]
62. In the variable-magnification pixel
[0216]
Next, the
[0219]
The horizontal threshold
[0218]
The
[0219]
The fixed-
[0220]
The
[0221]
The controller 308 receives the effective number of horizontally interpolated pixels from the data
[0222]
FIG. 69 is a block diagram showing a specific configuration example of the
[0223]
FIG. 70 shows a format example of a 24 × 24 size in the threshold
[0224]
Next, the overall processing operation when the conversion processing of the data
[0225]
In FIG. 71, first, the memory arbiter I /
[0226]
In the bilinear interpolation method, as shown in FIG. 73, a line memory for storing A and B for interpolating from four points A, B, C and D and a line memory for storing C and D are required. Yes, first, two lines are read, and then the C and D lines are set as A and B lines, and the C and D lines are read. This operation will be described later.
[0227]
Subsequently, the memory arbiter I /
[0228]
Subsequently, one-line image processing (magnification, color conversion, filter processing, etc.) is performed by the data conversion processing device 221 (step S1207), and the half-
[0229]
Next, the memory arbiter I /
[0230]
Subsequently, the memory arbiter I /
[0231]
FIGS. 74A and 74B are explanatory diagrams showing an example of the timing when the image is reduced in the vertical direction (Y direction). FIG. 74A is an example of 0.5 times and FIG. 74B is an example of 0.6666 times. In the example of 0.5 times shown in (a), the image data before image processing is read by skipping one line (only odd lines), the dither pattern data is sequentially read one line at a time, and the data after image processing is read. Are sequentially written line by line. At first, two lines are continuously read. In this example, the image data reading process and the image process are performed in parallel.
[0232]
In the example of 0.6666 magnification shown in (b), image data before image processing is read by skipping one line every three lines, dither pattern data is sequentially read one line at a time, and data after image processing is sequentially read by one line. Write in every line. At first, two lines are continuously read. In this example, the image data reading process and the image process are performed in parallel.
[0233]
FIG. 75 is an explanatory diagram showing an example of timing in a case where the image is enlarged by one time in the vertical direction (Y direction). In this example, the image data before the image processing is sequentially read line by line, and the data after the image processing is sequentially written line by line. At first, two lines are continuously read. In this example, the image data reading process and the image process are performed in parallel.
[0234]
FIG. 76 is an explanatory diagram showing an example of timing in the case of 1.5 times magnification in the vertical direction (Y direction). In this example, the image data before the image processing is sequentially read line by line, and the data after the image processing is sequentially written line by line. At first, two lines are continuously read. In this example, the image data reading processing and the image processing are performed in parallel, and two-line image processing is sometimes performed.
[0235]
FIG. 77 is an explanatory diagram showing a timing example when the image is enlarged twice in the vertical direction (Y direction). In this example, the image data before the image processing is sequentially read line by line, and the data after the image processing is sequentially written line by line. At first, two lines are continuously read. In this example, image data reading processing and image processing are performed in parallel, and two-line image processing is performed.
[0236]
Next, the configuration and operation of the data
[0237]
The data
[0238]
The
[0239]
The enlargement
[0240]
The
[0241]
The IX /
[0242]
The interpolation
[0243]
The
[0244]
Next, the operation of the data
[0245]
Subsequently, DDA processing in the X direction (horizontal direction) is performed by the
[0246]
Subsequently, the
[0247]
Subsequently, it is determined whether or not the value of the Y coordinate has exceeded the Y value end point YE to be interpolated (step S1311). If it is determined that the value of the Y coordinate does not exceed the Y value end point YE to be interpolated, the process returns to step S1304, and if it is determined that the value has exceeded, the coordinates of the destination image in which YE is scaled further. It is determined whether or not the Y end point DXE has been exceeded (step S1312). Here, if it is determined that YE does not exceed the coordinate Y end point DXE of the scaled destination image, the process returns to step S1302, and if it is determined that YE has exceeded, this series of processing ends.
[0248]
Next, the configuration and operation of each unit constituting the data
[0249]
The selector 323 controls and outputs data stored in the
+ − + − + − + − + − + − + − + − + − + − + − + − + − + − + − + − +
+ A + B + A + B + A + B + A + B + A + B + A + B + A + B + A + B +
+ − + − + − + − + − + − + − + − + − + − + − + − + − + − + − + − +
+ C + D + C + D + C + D + C + D + C + D + C + D + C + D + C + D +
+ − + − + − + − + − + − + − + − + − + − + − + − + − + − + − + − +
[0250]
The
[0251]
If the third line memory becomes full and all vertical interpolation as shown in FIG. 83 is not completed, a WAIT is applied to a device for transmitting input pixels. Then, as shown in FIG. 83, when all the pixels stored in two lines in the vertical direction are completed, a new two lines are obtained from the stored third pixel and the latter half of the two lines of pixels processed previously. Pixels are formed, and four interpolated pixels are sequentially output as shown in FIG. 83 in the same manner as described above. Then, the pixels input as the third line memory are sequentially stored in the empty one-line memory in the same manner as described above.
[0252]
FIG. 84 is a block diagram showing a configuration of the enlargement
[0253]
The enlargement
[0254]
That is, as shown in FIG. 84, the enlargement
[0255]
FIG. 85 is a block diagram showing a configuration of the
[0256]
[0257]
The
[0258]
FIG. 86 is a block diagram showing a configuration of the interpolation
[0259]
The interpolation
[0260]
That is, as shown in FIG. 86, the interpolation coefficient (DRATEX) in the X direction is obtained by the operation of DRATEX = (IX-XS) / (XE-XS), and further, DRATEY = (IY-YS) / (YE- YS), an interpolation coefficient (DRATEY) in the Y direction is obtained. Note that XS and XE are the start and end points in the X direction obtained by the
[0261]
FIG. 87 is a block diagram showing a configuration of the
[0262]
The vertical
[0263]
The horizontal interpolation
[0264]
The horizontal
[0265]
The
[0266]
Here, a bilinear interpolation method will be described as an example of the interpolation method. FIG. 82 shows an example of the interpolation processing using the bilinear interpolation method. Here, as shown in FIG. 83, each line is sequentially interpolated in the horizontal direction. Therefore, as shown in FIG. 82 (a), the space between A and C and between B and D are vertically interpolated to obtain AV and BV, and thereafter, as shown in FIG. 82 (b), the space between AV and BV is horizontal. To obtain P. In this case, depending on the hardware configuration, it is possible to reuse the obtained BV as the next AV, which leads to a reduction in interpolation calculation, and a reduction in the amount of hardware and an improvement in processing speed.
[0267]
FIG. 88 is a block diagram showing a configuration of the vertical
[0268]
The
[0269]
Further, the
[0270]
FIG. 89 is a block diagram showing a configuration of the horizontal
[0271]
The
[0272]
The
[0273]
The
[0274]
The
[0275]
FIG. 90 is a block diagram showing a configuration of the horizontal
[0276]
The
[0277]
The
[0278]
The
[0279]
The
[0280]
The
[0281]
The
[0282]
The
[0283]
The
[0284]
The effective number counting device obtains an effective number by counting from the first coefficient from which point in time the eight interpolation coefficients have exceeded “1.0” in the horizontal direction.
[0285]
Therefore, the
[0286]
【The invention's effect】
As described above, according to the image processing apparatus of the present invention (claim 1), a plurality of multi-value data to be processed are input to the scaling processing means, and at this time, the scaling processing means is the halftone means Is always configured to supply the number of pixels to be processed in parallel, so no unnecessary work memory area is needed for directly performing halftone processing after scaling the image, and halftone processing is not required. Since the scaling processing means always generates pixels for the number of parallel processes in the means, high-speed image processing can be performed.
[0287]
Further, according to the image processing apparatus of the present invention, in the halftone processing apparatus of the first aspect, the threshold data read from the threshold matrix storage means is stored until the processing scan line ends. In this configuration, all threshold data to be applied to the processing are fetched so that they can be reused, multiple scaled data are shifted for comparison with the corresponding threshold, and the data are compared in parallel with the multiple scaled data. Therefore, binarization processing of a plurality of dots can be performed at high speed.
[0288]
According to the image processing device of the present invention (claim 3), the halftone processing means of
[0289]
Further, according to the image processing apparatus of the present invention, in the scaling processing means of
[0290]
According to the image processing apparatus of the present invention (claim 5), in the scaled pixel coefficient generating means of
[0291]
According to the image processing apparatus of the present invention, a plurality of multi-valued data is input, and the half-tone processing means for performing a half-tone process on the plurality of multi-valued data in parallel is provided. Data conversion processing means for performing conversion processing, wherein the memory control means reads and writes data required by the data conversion processing means and the halftone processing means, and reads / writes the memory after the halftone processing by the halftone means. Since control is performed, high-speed processing can be performed by performing image processing in parallel with a minimum hardware configuration without interrupting image data reading processing.
[0292]
According to the image processing device of the present invention (claim 7), in
[0293]
According to the image processing apparatus of the present invention (claim 8), the data conversion processing means of
[0294]
Further, according to the image processing apparatus of the present invention (claim 9), the data conversion processing means of
[0295]
According to the image processing apparatus of the present invention (claim 10), the data conversion processing means of
[0296]
According to the image processing apparatus of the present invention, in the data conversion processing means of
[0297]
According to the image processing apparatus of the present invention (claim 12), the halfton processing means of
[0298]
According to the image processing device of the present invention (claim 13), the halftone processing means of
[0299]
Further, according to the image processing apparatus of the present invention (claim 14), since the data conversion processing means of
[0300]
Further, according to the image processing apparatus of the present invention, the interpolation processing means of
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a system configuration using an image processing apparatus according to a first embodiment of the present invention;
FIG. 2 is an explanatory diagram illustrating an example of enlarged pixels and interpolated pixels in the image processing according to the embodiment of the present invention.
FIG. 3 is an explanatory diagram showing an example of enlargement and reduction in image processing according to the embodiment of the present invention.
FIG. 4 is a block diagram illustrating a configuration of the image processing apparatus in FIG. 1;
FIG. 5 is a block diagram showing a configuration of a scaling processing device in FIG. 4;
FIG. 6 is a flowchart showing an overall operation of the scaling processing apparatus in FIG. 4;
FIG. 7 is a block diagram showing a configuration of an original pixel storage device included in the scaling processing device in FIG. 5;
FIG. 8 is a block diagram showing a configuration of a scaling factor generation device included in the scaling process device in FIG. 5;
FIG. 9 is a block diagram illustrating a configuration of a DDA processing device included in the scaling processing device in FIG. 5;
FIG. 10 is a block diagram showing a configuration of an IX / IY counting device included in the scaling processing device in FIG.
FIG. 11 is a block diagram illustrating a configuration of a scaling pixel coefficient generation device included in the scaling processing device in FIG. 5;
12 is a block diagram showing a configuration of a parallel X width generation device in the variable pixel coefficient generation device of FIG. 11;
13 is a block diagram illustrating a configuration of an output X width generation device in the variable pixel coefficient generation device of FIG. 11;
14 is a block diagram illustrating a configuration of a cumulative addition processing device (A) in the output X width generation device of FIG. 13;
FIG. 15 is a flowchart showing an operation of a WXWIDTH update processing device in the output X width generation device of FIG.
16 is a flowchart showing an operation of an output XWIDTH generation processing device in the output X width generation device of FIG. 13;
17 is a block diagram illustrating a configuration of a cumulative addition processing device (B) in the output X width generation device of FIG. 13;
18 is a flowchart showing a 0-th processing operation of an output pixel in the variable magnification pixel conversion device of FIG. 5;
FIG. 19 is a flowchart showing a first processing operation of an output pixel in the variable-magnification pixel conversion device of FIG. 5;
FIG. 20 is a flowchart showing a second processing operation of the output pixel in the variable-magnification pixel conversion device of FIG. 5;
21 is a flowchart showing a third processing operation of an output pixel in the variable-magnification pixel conversion device of FIG. 5;
FIG. 22 is a flowchart showing a fourth processing operation of the output pixel in the variable magnification pixel conversion device of FIG. 5;
FIG. 23 is a flowchart illustrating a fifth processing operation of the output pixel in the variable-magnification pixel conversion device of FIG. 5;
24 is a flowchart showing a sixth processing operation of the output pixel in the variable-magnification pixel conversion device of FIG. 5;
FIG. 25 is a flowchart showing a seventh processing operation of an output pixel in the variable magnification pixel conversion device of FIG. 5;
FIG. 26 is a block diagram illustrating a configuration of a halftone processing device of the image processing device according to the embodiment of the present invention;
27 is a block diagram illustrating a specific configuration example of the halftone processing device of FIG. 26, illustrating an example in which the threshold matrix size (m) in the horizontal direction is 23 (24).
FIG. 28 is a flowchart showing an operation of the halftone processing device according to the first embodiment of the present invention;
FIG. 29 is a flowchart showing an operation (1) of the multi-level data shift device in the halftone processing device of FIG. 26;
FIG. 30 is a flowchart showing an operation (2) of the multi-level data shift device in the halftone processing device of FIG. 26;
FIG. 31 is a flowchart showing an operation (3) of the multi-level data shift device in the halftone processing device of FIG. 26;
FIG. 32 is a flowchart illustrating an operation (4) of the multi-level data shift device in the halftone processing device of FIG. 26;
FIG. 33 is a flowchart showing an operation (5) of the multi-level data shift device in the halftone processing device of FIG. 26;
FIG. 34 is a flowchart showing an operation (6) of the multi-level data shift device in the halftone processing device of FIG. 26;
FIG. 35 is a block diagram illustrating a configuration of a parallel comparison device in the halftone processing device of FIG. 27;
FIG. 36 is a flowchart showing an operation (1) of the effective BIT generation device in the halftone processing device of FIG. 26;
FIG. 37 is a flowchart showing an operation (2) of the effective BIT generation device in the halftone processing device of FIG. 26;
FIG. 38 is a flowchart showing an operation (3) of the effective BIT generation device in the halftone processing device of FIG. 26;
39 is a flowchart showing an operation (4) of the effective BIT generation device in the halftone processing device of FIG. 26;
40 is a flowchart showing an operation (5) of the effective BIT generation device in the halftone processing device of FIG. 26;
FIG. 41 is a flowchart showing an operation (6) of the effective BIT generation device in the halftone processing device of FIG. 26;
FIG. 42 is a block diagram illustrating a configuration of a fixed-length data generation device in the halftone processing device of FIG. 27;
FIG. 43 is a chart showing a format example of a threshold matrix memory of the Harton processing apparatus according to the first embodiment;
FIG. 44 is a chart showing an example of transition of processing using the threshold matrix of FIG. 43;
FIG. 45 is a block diagram illustrating a configuration of a halftone processing device different from that of FIG. 26;
46 is a block diagram showing a specific configuration example of the halftone processing device of FIG. 45, where the number (n) of halftone processing of MAX in the horizontal direction is 15 (16), and the threshold matrix size in the horizontal direction is This shows an example in which (m) is 7 (8).
FIG. 47 is an explanatory diagram illustrating a configuration of a multicolor image forming apparatus equipped with the image processing apparatus according to the second embodiment;
FIG. 48 is a block diagram illustrating a configuration of an electric device / control device in the multicolor image forming apparatus in FIG. 47.
FIG. 49 is a block diagram illustrating a configuration of the image processing apparatus in FIG. 48.
FIG. 50 is a flowchart showing an overall operation of the image processing apparatus according to the second embodiment;
FIGS. 51A and 51B are explanatory diagrams showing an example of timing when the image is reduced in the vertical direction (Y direction). FIG. 51A is an example of 0.5 times and FIG. 51B is an example of 0.6666 times.
FIG. 52 is an explanatory diagram showing an example of timing when magnifying one time in the vertical direction (Y direction).
FIG. 53 is an explanatory diagram showing a timing example in the case of 1.5 times magnification in the vertical direction (Y direction).
FIG. 54 is an explanatory diagram showing a timing example in the case where the image is enlarged twice in the vertical direction (Y direction).
FIG. 55 is a block diagram showing a configuration of a memory arbiter I / F in FIG. 49.
FIG. 56 is a block diagram showing a detailed configuration of a memory arbiter I / F in FIG. 49;
FIG. 57 is a block diagram showing a configuration of a scaling factor generation device in the memory arbiter I / F of FIG. 56;
FIG. 58 is a block diagram showing a configuration of a Y-DDA processing device in the memory arbiter I / F of FIG. 56;
59 is a block diagram showing a configuration of an IY counting device in the memory arbiter I / F of FIG. 56.
FIG. 60 is a block diagram showing a configuration of a memory address generation device in the memory arbiter I / F of FIG. 56;
FIG. 61 is a block diagram showing an input / output configuration of the data conversion processing device of FIG. 49, showing a case where only a scaling processing device is provided.
FIG. 62 is a block diagram illustrating a detailed configuration of a data conversion processing device in FIG. 49.
63 is a flowchart showing an operation of the data conversion processing device in FIG. 49.
FIG. 64 is a block diagram illustrating a configuration of an original pixel storage device in the data conversion processing device of FIG. 62;
FIG. 65 is a block diagram illustrating a configuration of a scaling factor generating device in the data conversion processing device of FIG. 62;
FIG. 66 is a block diagram showing a configuration of a DDA processing device in the data conversion processing device of FIG. 62;
FIG. 67 is a block diagram illustrating a configuration of an IX counting device in the data conversion processing device of FIG. 62.
FIG. 68 is a block diagram showing a configuration of a halftone processing device of the image processing device according to the embodiment of the present invention;
69 is a block diagram illustrating a specific configuration example of the halftone processing device of FIG. 68, in which the number (n) of halftone processing of MAX in the horizontal direction is 7 (8), and the threshold value in the horizontal direction is 7; An example in which the matrix size (m) is 23 (24) is shown.
FIG. 70 is an explanatory diagram showing a format example of a 24 × 24 size in the threshold value matrix memory;
FIG. 71 is a flowchart showing a scaling process by the bilinear interpolation method of the data conversion processing device of FIG. 49;
FIG. 72 is an explanatory diagram showing a format example of the line memories of FIGS. 68 and 67;
FIG. 73 is an explanatory diagram showing an example of interpolating and filling between enlarged pixels.
FIGS. 74A and 74B are explanatory diagrams showing timing examples in the case of reduction in the vertical direction (Y direction), where FIG. 74A is an example of 0.5 times and FIG. 74B is an example of 0.6666 times.
FIG. 75 is an explanatory diagram showing an example of timing when magnifying one time in the vertical direction (Y direction);
FIG. 76 is an explanatory diagram showing a timing example in the case of 1.5 times magnification in the vertical direction (Y direction).
FIG. 77 is an explanatory diagram showing a timing example in the case where the image is enlarged twice in the vertical direction (Y direction).
FIG. 78 is a block diagram illustrating a configuration of a data conversion processing device based on a bilinear interpolation method.
FIG. 79 is a flowchart showing an overall operation in the data conversion processing device of FIG. 78;
FIG. 80 is a block diagram showing a configuration of a parameter processing device in the data conversion processing device of FIG. 78;
FIG. 81 is an explanatory diagram showing an example of image data on a scan line according to the second embodiment;
FIG. 82 is an explanatory diagram showing an image data interpolation method according to the second embodiment;
FIG. 83 is an explanatory diagram showing an output example at the time of interpolation of image data according to the second embodiment;
FIG. 84 is a block diagram showing a configuration of a parameter processing device in the data conversion processing device of FIG. 78;
85 is a block diagram illustrating a configuration of a DDA processing device in the data conversion processing device of FIG. 78.
86 is a block diagram illustrating a configuration of an interpolation coefficient generation device in the data conversion processing device of FIG. 78.
87 is a block diagram illustrating a configuration of an interpolation processing device in the data conversion processing device of FIG. 78.
FIG. 88 is a block diagram showing a configuration of a vertical interpolation processing device in the interpolation processing device of FIG. 87.
89 is a block diagram illustrating a configuration of a horizontal interpolation processing device in the interpolation processing device of FIG. 87.
90 is a block diagram illustrating a configuration of a horizontal interpolation processing device in the interpolation processing device of FIG. 87.
FIG. 91 is a block diagram illustrating a configuration of a conventional color image processing apparatus.
FIG. 92 is a block diagram illustrating a configuration of a conventional halftone generation device.
FIG. 93 is a block diagram illustrating a configuration of a conventional print data generation device.
[Explanation of symbols]
103,215 Image processing device
106 Magnification processing unit
107,222 Halftone processing device
108 threshold matrix memory
114 Variable Pixel Coefficient Generator
115 Variable magnification pixel conversion device
116, 167, 230, 308 Controller
141 Parallel X width generator
142 Output X width generator
162,301 horizontal threshold matrix storage
163,302 Multi-level data shift device
164,303 Parallel comparison device
165,304 Effective BIT generator
166,305 Fixed-length data generator
220 Memory Arbiter I / F
221 Data conversion processor
306 line memory
316 interpolation processor
371 Vertical interpolation processor
372 Horizontal interpolation coefficient generator
373 horizontal interpolation processor
446 Effective number counting device
316 interpolation processor
371 Vertical interpolation processor
373 horizontal interpolation processor
446 Effective number counting device
Claims (15)
前記ハーフトーン処理手段が並列に処理する画素と同数の画素を並列に変倍処理し、前記ハーフトーン処理手段に供給する変倍処理手段と、
を備えたことを特徴とする画像処理装置。Halftone processing means for inputting a plurality of multivalued data and halftone processing the plurality of multivalued data in parallel;
Scaling processing means for performing scaling processing in parallel with the same number of pixels as the pixels processed by the halftone processing means in parallel, and supplying the halftone processing means to the halftone processing means;
An image processing apparatus comprising:
走査ラインに適用するすべてのしきい値と、前記複数の多値データとを並列に比較する並列比較手段と、
走査ラインに適用するすべてのしきい値マトリックスを記憶する水平しきい値マトリックス記憶手段と、
前記複数の多値データを前記しきい値マトリックスの位置へシフトさせる多値データシフト手段と、
を有することを特徴とする請求項1に記載の画像処理装置。The halftone processing means,
All thresholds to be applied to the scan line, and a parallel comparison means for comparing the plurality of multi-value data in parallel,
Horizontal threshold matrix storage means for storing all threshold matrices applied to a scan line;
Multi-level data shift means for shifting the plurality of multi-level data to the position of the threshold value matrix,
The image processing apparatus according to claim 1, further comprising:
前記並列比較手段から受け取った複数の画素を、有効画素数だけ固定長のデータに入れ込んでいく固定長データ生成手段を有することを特徴とする請求項2に記載の画像処理装置。The halftone processing means further includes:
3. The image processing apparatus according to claim 2, further comprising a fixed-length data generating unit that inserts a plurality of pixels received from the parallel comparing unit into fixed-length data by the number of effective pixels.
前記ハーフトーン処理手段の並列処理する画素と同じ数の元画素の水平方向の画素に対し変倍後の各画素のX幅を求める変倍画素係数生成手段と、
前記変倍画素係数生成手段による変倍後の各画素のX幅から、同じ数の元画像の水平方向の画素をデータ変換する変倍画素変換手段と、
を有することを特徴とする請求項1に記載の画像処理装置。The variable magnification processing means,
Scaled pixel coefficient generation means for calculating the X width of each pixel after scaling for the same number of original pixels in the horizontal direction as the number of pixels to be processed in parallel by the halftone processing means;
Scaling pixel conversion means for converting the same number of horizontal pixels of the original image from the X width of each pixel after scaling by the scaling pixel coefficient generation means,
The image processing apparatus according to claim 1, further comprising:
前記ハーフトーン処理手段の並列処理数と同じ数の画素のX幅を求める並列X幅生成手段と、
前記並列X幅生成手段から複数のX幅を受け取り、前記ハーフトーン処理手段の並列処理数へ分けて出力する出力X幅生成手段と、
を有することを特徴とする請求項4に記載の画像処理装置。The variable pixel coefficient generation means includes:
Parallel X width generation means for calculating the X width of the same number of pixels as the number of parallel processing of the halftone processing means;
Output X width generation means for receiving a plurality of X widths from the parallel X width generation means, and outputting the divided X widths divided by the number of parallel processes of the halftone processing means;
The image processing apparatus according to claim 4, comprising:
水平方向に画像変換処理を行なうデータ変換処理手段と、
前記データ変換処理手段と前記ハーフトーン処理手段とが必要とするデータと、前記ハーフトーン手段によるハーフトーン処理後のメモリのリード/ライトを制御するメモリ制御手段と、
を備えたことを特徴とする画像処理装置。Halftone processing means for inputting a plurality of multivalued data and halftone processing the plurality of multivalued data in parallel;
Data conversion processing means for performing image conversion processing in the horizontal direction;
Data required by the data conversion processing means and the halftone processing means, and memory control means for controlling read / write of a memory after the halftone processing by the halftone means;
An image processing apparatus comprising:
前記ハーフトーン処理手段の並列処理数と同じ数の画素のX幅を求める並列X幅生成手段と、
前記並列X幅生成手段から複数のX幅を受け取り、前記ハーフトーン処理手段の並列処理数へ分けて出力する出力X幅生成手段と、
を有することを特徴とする請求項10に記載の画像処理装置。The data conversion processing means,
Parallel X width generation means for calculating the X width of the same number of pixels as the number of parallel processing of the halftone processing means;
Output X width generation means for receiving a plurality of X widths from the parallel X width generation means, and outputting the divided X widths divided by the number of parallel processes of the halftone processing means;
The image processing apparatus according to claim 10, further comprising:
水平方向に複数の画素を並列に比較する並列比較手段と、
水平方向にすべてのしきい値マトリックスを記憶する水平しきい値マトリックス記憶手段と、
前記複数の多値データを前記しきい値マトリックスの位置へシフトさせる多値データシフト手段と、
を有することを特徴とする請求項6に記載の画像処理装置。The halftone processing means,
Parallel comparing means for comparing a plurality of pixels in parallel in the horizontal direction;
Horizontal threshold matrix storage means for storing all threshold matrices in the horizontal direction;
Multi-level data shift means for shifting the plurality of multi-level data to the position of the threshold value matrix,
The image processing apparatus according to claim 6, comprising:
前記並列比較手段から受け取った水平方向に複数の画素を、有効画素数だけ固定長のデータに入れ込んでいく固定長データ生成手段を有することを特徴とする請求項6に記載の画像処理装置。The halftone processing means further includes:
7. The image processing apparatus according to claim 6, further comprising a fixed-length data generating unit that inserts a plurality of pixels in the horizontal direction received from the parallel comparing unit into fixed-length data by the number of effective pixels.
水平方向にMAXの倍率分、並列に画素を求める補間処理手段を有することを特徴とする請求項9に記載の画像処理装置。The data conversion processing means,
The image processing apparatus according to claim 9, further comprising an interpolation processing unit that obtains pixels in parallel in a horizontal direction at a magnification of MAX.
水平方向にMAXの倍率分の画素を並列に計算し補間する水平補間手段と、
前記水平補間手段での画素の有効数を求める有効数カウント手段と、
を有することを特徴とする請求項14に記載の画像処理装置。The interpolation processing means,
Horizontal interpolation means for calculating and interpolating pixels in the horizontal direction for a magnification of MAX in parallel;
Effective number counting means for obtaining the effective number of pixels in the horizontal interpolation means,
The image processing apparatus according to claim 14, comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003068500A JP2004282239A (en) | 2003-03-13 | 2003-03-13 | Image processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003068500A JP2004282239A (en) | 2003-03-13 | 2003-03-13 | Image processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004282239A true JP2004282239A (en) | 2004-10-07 |
Family
ID=33285815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003068500A Pending JP2004282239A (en) | 2003-03-13 | 2003-03-13 | Image processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004282239A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8842328B2 (en) | 2011-10-12 | 2014-09-23 | Ricoh Company, Limited | Image processing device |
CN113411611A (en) * | 2021-06-30 | 2021-09-17 | 脸萌有限公司 | Video image processing method and device and electronic device |
-
2003
- 2003-03-13 JP JP2003068500A patent/JP2004282239A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8842328B2 (en) | 2011-10-12 | 2014-09-23 | Ricoh Company, Limited | Image processing device |
CN113411611A (en) * | 2021-06-30 | 2021-09-17 | 脸萌有限公司 | Video image processing method and device and electronic device |
CN113411611B (en) * | 2021-06-30 | 2023-06-20 | 脸萌有限公司 | Video image processing method and device and electronic device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0949586B1 (en) | Apparatus and method for image data interpolation | |
JPH11175710A (en) | Picture forming device | |
US7009622B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JP3927776B2 (en) | Image processing apparatus and processing method thereof | |
US20020075532A1 (en) | Method of and apparatus for encoding, method of and apparatus for decoding, and image forming apparatus | |
JP2004304404A (en) | Method and apparatus for image processing | |
JP4058583B2 (en) | PRINT CONTROL DEVICE, PRINT CONTROL METHOD, AND MEDIUM RECORDING PRINT CONTROL PROGRAM | |
JP2008067044A (en) | Image processor, image reader, image processing method, and image processing program | |
JP2004282239A (en) | Image processor | |
JPH0965114A (en) | Variable power controller for image processor | |
JP3912971B2 (en) | Image processing apparatus and method | |
JP3950647B2 (en) | Image processing apparatus and processing method thereof | |
JP3063754B2 (en) | Image data interpolation device, image data interpolation method, medium recording image data interpolation program | |
JP4118052B2 (en) | Image processing device | |
JP3963260B2 (en) | Image processing apparatus and image forming apparatus | |
JP4977434B2 (en) | Image writing apparatus and image forming apparatus | |
JP4336470B2 (en) | Drawing control apparatus, drawing control method and program | |
JP2829931B2 (en) | Image processing device | |
JP4298695B2 (en) | Image processing device | |
JP2007180607A (en) | Image processing apparatus and image processing method | |
JP2004242213A (en) | Image processing apparatus, image processing method, color conversion processing apparatus, color conversion processing method, and storage medium | |
JP4012833B2 (en) | Image rotation processing apparatus, image rotation processing method, and storage medium | |
JP4125025B2 (en) | Image processing device | |
JP2007313845A (en) | Image processing apparatus, image processing method, and computer-readable recording medium | |
JP2006196958A (en) | Image processing apparatus, image processing method, image forming apparatus, image forming method, and image processing program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050627 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070413 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070807 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071005 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080408 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080605 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080826 |