JP2004282239A - Image processor - Google Patents

Image processor Download PDF

Info

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
Application number
JP2003068500A
Other languages
Japanese (ja)
Inventor
Naohito Shiraishi
尚人 白石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003068500A priority Critical patent/JP2004282239A/en
Publication of JP2004282239A publication Critical patent/JP2004282239A/en
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To realize processing at higher speed by making a wasteful work memory area for executing halftone processing after variably magnifying the image unnecessitated, and by supplying pixels equivalent to the number of parallel processing in the halftone processing after the variable magnification. <P>SOLUTION: The image processor is provided with: a halftone processor 107 which inputs a plurality of multi-valued data, and which executes the halftone processing to a plurality of the multi-valued data in parallel; and a processor 106 for the variable magnification which executes the variable magnification processing to the same number of pixels as those of processed in parallel by the halftone processor 107 in parallel, and which supplies them to the halftone processor 107. <P>COPYRIGHT: (C)2005,JPO&NCIPI

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から以下のような式で表される。

Figure 2004282239
【0005】
3次補間法は、点Zの周辺の16点から、以下に示すような演算式(数1)で表される。こここで、C(t)はサンプリング定理を構成する関数sinπx/πxの近似式である。
【0006】
【数1】
Figure 2004282239
【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. .
Figure 2004282239
[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)
Figure 2004282239
[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 data reading circuit 500 prior to halftoning of input multi-valued image data. The threshold data reading circuit 500 outputs the threshold data address signal THMA to the threshold matrix data memory 501, outputs desired threshold data four by four (32 bits each), and inputs the desired threshold data to the shift register 503 via the latch 502. . The threshold data read control circuit 500 repeats the output of the threshold data address signal THMA until the input of all threshold data for the scan line is completed, that is, 53 times.
[0010]
After all the threshold data for the scan line are input to the shift register 503, the threshold data select signal TDS output from the threshold data selection control circuit 504 and the shift signal ST2 cause the shift register 505 to output all thresholds for the scan line. Data is set. After all the threshold data is set in the shift register 503 as described above, the threshold data selected by the comparison data select signal CDS output from the threshold data selection control circuit 504 is compared with the predetermined multi-valued image data. Binarization is started. The magnitude comparison between the selection threshold data and the multi-valued image data of a predetermined pixel is executed in parallel by the comparators 507a to 507h, and is output to the buffer memory 510 controlled by the buffer memory write control circuit 508.
[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 read control circuit 511 and a threshold data fetch register 513 that collectively read all threshold data applied to a scan line for generating a halftone from a threshold matrix storage memory 512 that stores threshold matrix data. A threshold data selection control circuit 514, a crossbar switch 515, and a threshold data register 516 that select and output a plurality of threshold data corresponding to a plurality of pixel positions where a halftone is to be generated from the threshold data. And comparators 517a to 517h and an output register 518 for simultaneously executing a comparison process between a plurality of pixel data to be subjected to halftone generation and the plurality of threshold data selected and output, and simultaneously generating a plurality of halftone data. , Pixel data forming a multi-valued image Generating a half-tone data based on the pixels of the multivalued image data by comparing the value matrix 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 RAM 530, an input buffer 531, a data selection circuit 532, a scaling counter 533, a binarization circuit 534, a dither data circuit 535, and an output buffer 539.
[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 RAM 530, and a direct memory access circuit shown by a broken line frame is received at a predetermined timing by a predetermined amount. It is also possible to control such that four threshold values are sequentially supplied to data of one pixel, and four binary data are output. It is described that the data transfer clock after the binarization process should be quadrupled with respect to the data transfer clock before the binarization process.
[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 (pages 11 to 13, FIG. 6)
[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 Patent Documents 3 and 4, threshold data read from a threshold matrix memory is applied to processing so that it can be reused until the processing scan line ends. All the threshold data to be read are fetched into a register, selectively output to a plurality of comparing means, a parallel comparison process is performed, the threshold data set in the register is sequentially shifted, and this is repeated. Although used, as the threshold matrix size increases, selecting threshold data and matching it with the scaled data causes an increase in the number of gates.
[0017]
Further, in the print data processing apparatus disclosed in Patent Document 5, it is described that a dither data is stored in a RAM, and a direct memory access circuit is provided which divides and receives a predetermined amount at a predetermined timing. However, it is unknown at what timing and how to perform the halftone process. In addition, this print data processing apparatus is complicated in hardware because it is connected to a CPU, a memory, a ROM, and a printing apparatus via a bus.
[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 claim 1, a plurality of multi-value data is input, and a half-tone processing unit that performs a half-tone process on the plurality of multi-value 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 same to the halftone processing means.
[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 claim 2, the halftone processing unit includes a parallel comparison unit that compares all thresholds applied to a scan line and the plurality of multi-value data in parallel. A horizontal threshold matrix storing means for storing all threshold matrices applied to the scan lines; and a multi-value data shifting means for shifting the plurality of multi-value data to the positions of the threshold matrices. Things.
[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 claim 3, the halftone processing means further includes a plurality of pixels received from the parallel comparison means, the number of which is equal to the number of effective pixels, into a fixed-length data. It has a long data generating means.
[0025]
According to this invention, the halftone processing means according to claim 2 further comprises a fixed length data generation means for adding a plurality of pixels received from the parallel comparison means to the fixed length data by the number of effective pixels. Thus, it is possible to generate fixed-length data without requiring a large hardware configuration as in the related art.
[0026]
Further, in the image processing apparatus according to claim 4, the scaling processing unit performs scaling on each of horizontal pixels of the same number of original pixels as the number of pixels to be processed in parallel by the halftone processing unit. Scaled pixel coefficient generation means for determining the X width of the pixel; and scaled pixels for data conversion of the same number of horizontal pixels of the original image from the X width of each pixel after scaled by the scaled pixel coefficient generation means. Conversion means.
[0027]
According to the present invention, in the scaling processing means according to claim 1, each of the horizontal pixels of the same number of original pixels as the number of pixels to be processed in parallel by the halftone processing means in the scaling pixel coefficient generation means has been subjected to scaling. The X width of the pixel is determined, and the scaling process is performed in parallel in the horizontal direction by performing data conversion of the same number of pixels in the horizontal direction of the original image from the X width of each pixel after scaling. Can be performed at high speed.
[0028]
Further, in the image processing apparatus according to claim 5, the scaling pixel coefficient generation means includes a parallel X width generation means for obtaining an 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.
[0029]
According to this invention, in the variable pixel coefficient generation means of claim 4, the parallel X width generation means obtains the X widths of the same number of pixels as the number of parallel processes of the halftone processing means, and outputs the plurality of X widths. The X-width generation means receives the data, and outputs the data by dividing it into the number of parallel processings of the halftone processing means, thereby realizing parallel scaling processing in the horizontal direction (X direction).
[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 claim 7, the memory control means executes a scaling process in a vertical direction, selects necessary dither data according to a scaling factor in a vertical direction, and reads data. It has input means.
[0033]
According to the present invention, in claim 6, the memory control means executes a scaling process in the vertical direction (Y direction), and selects and reads necessary dither data according to the scaling ratio in the vertical direction. By having the means, it becomes possible to perform image reading and image processing in parallel.
[0034]
Further, in the image processing apparatus according to claim 8, the data conversion processing means executes a scaling process according to a nearest neighbor method.
[0035]
According to this invention, the data conversion processing means according to claim 6 executes the scaling process according to the nearest neighbor method, so that the halftone process is directly performed after the scaling process of the image. High-speed image processing is realized without requiring a memory area.
[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 claim 6 performs the scaling process according to the bilinear interpolation method, so that the halftone process is directly performed after the scaling process of the image. High-speed image processing is realized without requiring a memory area.
[0038]
Further, in the image processing device according to claim 10, the data conversion processing unit performs a scaling process in parallel on the same number of pixels as the pixels that the halftone processing unit processes in parallel, Supply.
[0039]
According to this invention, the data conversion processing means according to claim 8 performs the scaling processing in parallel with the same number of pixels as the pixels processed by the halftone processing means in parallel, and supplies the same to the halftone processing means. It is possible to always generate pixels for the number of parallel processes of the means.
[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 claim 8, each of the horizontal pixels of the same number of original pixels as the number of pixels to be parallel-processed by the halftone processing means in the scaling pixel coefficient generation means has been subjected to scaling. The X width of the pixel is determined, and the scaling process is performed in parallel in the horizontal direction by performing data conversion of the same number of pixels in the horizontal direction of the original image from the X width of each pixel after scaling. Can be performed at high speed.
[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 claim 10 is a parallel comparison means for comparing a plurality of pixels in parallel in a horizontal direction, and a horizontal threshold matrix storage means for storing all threshold matrices in a horizontal direction. And a multi-value data shift means for shifting a plurality of multi-value data to the position of the threshold value matrix, it is possible to perform halftone processing in parallel in the horizontal direction.
[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 claim 6 further comprises a fixed length data generation means for adding a plurality of pixels received from the parallel comparison means to the fixed length data by the number of effective pixels. Thus, it is possible to generate fixed-length data without requiring a large hardware configuration as in the related art.
[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 claim 9 includes the interpolation processing means for obtaining pixels in parallel in the horizontal direction by the magnification of MAX, the scaling processing can be performed in parallel in the horizontal direction. become.
[0048]
Further, in the image processing apparatus according to claim 15, the interpolation processing means calculates a pixel corresponding to the MAX magnification in parallel in the horizontal direction and interpolates the pixel, and a horizontal interpolation means for calculating the pixel by the horizontal interpolation means. Effective number counting means for obtaining an effective number.
[0049]
According to the present invention, the interpolation processing means according to claim 9 calculates the horizontal interpolation means for calculating and interpolating the pixels corresponding to the magnification of MAX in the horizontal direction in parallel and the effective number of pixels (the number to be actually interpolated). With the effective number counting means for obtaining, it is possible to perform scaling processing in parallel in the horizontal direction.
[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, reference numeral 101 denotes a storage device storing multi-valued image data, reference numeral 102 denotes a multi-valued image reading device for reading multi-valued image data from the storage device 101, reference numeral 103 denotes an image processing device described later, and reference numeral 104 denotes an image. A halftone-processed image writing device for writing the image data processed by the processing device 103 to a storage device at a subsequent stage. Reference numeral 105 stores the halftone-processed image data (binary, four-valued, sixteen-valued, etc.). Storage device.
[0053]
The image processing apparatus 103 is an accelerator for speeding up the printer, and performs halftone processing and the like using the respective threshold matrices after resolution conversion of each image data.
[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 image processing apparatus 103 in FIG. As shown, the image processing device 103 includes a scaling unit 106, a halftone processing unit 107, a threshold matrix memory 108, and a parameter storage unit 109.
[0056]
The scaling processing device 106 in FIG. 4 performs scaling processing on the data received from the multi-valued image reading device 102, and transfers the data to the subsequent halftone processing device. The halftone processing unit 107 performs halftone processing on the data received from the scaling unit 106, and transfers the data to the binary image writing unit 104 in the subsequent stage. The threshold matrix memory 108 stores a threshold matrix. The parameter storage device 109 stores various parameters of the scaling processing device 106 and the halftone processing device 107.
[0057]
Although various known scaling processing methods are used in the scaling processing device 106, the nearest neighbor method will be described here as an example. The nearest neighbor method is to copy the value of the original pixel as the width after scaling without interpolating the pixel value. The halftone processing device 107 will be described here by taking binarization halftone processing as an example. However, in addition to this, the halftone processing device 107 can be similarly applied to quaternization and 16-value conversion.
[0058]
FIG. 5 is a block diagram showing the configuration of the scaling processing device 106 in FIG. As shown, the scaling processing device 106 includes an original pixel storage device 110, a scaling factor generation device 111, a DDA processing device 112, an IX / IY counting device 113, a scaling pixel coefficient generation device 114, A scaling unit 115 includes a scaling unit 115 and a controller 116 for controlling the entire scaling unit 106.
[0059]
The original pixel storage device 110 in FIG. 5 stores the pixels to be processed in parallel by the halftone processing device 107 and transfers the pixels to the variable-magnification pixel conversion device 115 in the subsequent stage. The scaling factor generation device 111 calculates the coordinates X start point DXS, X end point DXE, and X end point DXE of the source image of the image to be scaled, and the coordinates X start point DXS and X end point DXE of the destination image after scaling. , And the Y start point DYS and the Y end point DYE, the scaling factors RATEX and RATEY in the X and Y directions are obtained, and are transferred to the DDA processing device 112 at the subsequent stage.
[0060]
Further, the DDA processing device 112 receives the scaling factors in the X and Y directions and the coordinates X starting point DXS and Y starting point DYS of the destination image from the scaling factor generating device 111, and outputs a circle (enlarged pixel) shown in FIG. As described above, the coordinates of the input image after scaling are obtained as needed by DDA (Digital Differential Analysis). In this example, in order to interpolate, an X start point XS, an X end point XE, a Y start point YS, and a Y end point YE to be interpolated are obtained, and transferred to the IX / IY counting device 113 and the variable pixel coefficient generating device 114.
[0061]
The IX / IY counting device 113 receives the coordinate values of the starting point and the ending point in the Y direction from the DDA processing device 112, generates the Y coordinate of △ (interpolated pixel) in FIG. 2, and sends the X coordinate to the controller. The XENDFL signal is used to notify that it has become equal to the X end point DXE, and the YENDFLL signal is used to notify that the Y coordinate has become equal to the Y end point DYE.
[0062]
Further, the scaling pixel coefficient generation unit 114 receives the starting point XS in the direction to be interpolated from the DDA processing unit 112 and the X-direction scaling ratio RATEX determined by the scaling ratio generation unit 111, and outputs each pixel output from the scaling ratio generation unit 111. Is output, and the scaling process of the pixel is performed by the scaling pixel converter 115. At this time, the number of MAXs output from the scaling pixel converter 115 is up to the MAX pixel value that can be processed by the halftone processor 107. In addition, since the scaling factor is one, the output of the scaling factor generating device 111 also corresponds to a pixel value of MAX that can be processed by the halftone processing device 107. Therefore, when the magnification is 1 or more, the halftone processing device 107 outputs each MAX pixel that can be processed over a plurality of clocks.
[0063]
The scaling pixel conversion device 115 receives a pixel to be scaled from the original pixel storage device 110, receives the width of each pixel output from the scaling pixel coefficient generation device 114, and as shown in FIG. The magnification process is performed by changing the width.
[0064]
Next, the operation of the variable magnification processing apparatus 106 configured as described above will be described with reference to the flowchart shown in FIG. This operation is performed by the controller 116 as a whole. First, a scaling factor is determined by the scaling factor generating device 111 (step S1001), and DDA processing in the Y direction (vertical direction) is performed by the DDA processing device 112 to determine a Y start point YS and a Y end point YE to be processed (step S1002). . Subsequently, the Y coordinate (horizontal line) to be processed by the IX / IY counting device 113 is designated as the YS coordinate (step S1003), and the DDA in the X direction is initialized (step S1004).
[0065]
Subsequently, the DDA processing unit 112 performs DDA processing in the X direction (horizontal direction) to obtain an X starting point XS and an X ending point XE to be processed (step S1005), and further reads scaling data (step S1006). Next, the width of the read pixel subjected to the scaling process is obtained by the scaling pixel coefficient generation device 114 (step S1007).
[0066]
Subsequently, the scaled pixel conversion unit 115 converts the scaled pixel into the determined width, and outputs the converted width in accordance with the number of MAX parallel processing pixels of the halftone processing unit 107 (step S1008). Next, it is determined whether or not the X end point XE has exceeded the coordinate X end point DXE of the scaled destination image (step S1009). If XE <DXESIZE, the process returns to step S1005. On the other hand, if XE> DXESIZE, the IX / IY count processing unit 113 obtains the next Y coordinate to be interpolated (step S1010).
[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 scaling processing device 106 will be described. FIG. 7 is a block diagram showing a configuration of the original pixel storage device 110 included in the scaling processing device 106 in FIG. The original pixel storage device 110 includes registers 116a to 116h. These eight registers 116a to 116h store data sequentially and store pixels for the pixels in the MAX parallel processing of the halftone processing device 107.
[0069]
FIG. 8 is a block diagram showing the configuration of the scaling factor generation device 111 included in the scaling process device 106 in FIG. This scaling factor generator 111 includes subtractors 117a to 117d, dividers 118a and 119b, and registers 119a and 119b. Further, the output values of the subtractors 117a and 117b are input to the divider 118a, and the output values of the subtractors 117c and 117d are input to the divider 118b. Also, the register 119a takes in the output of the divider 118a and stores the scaling factor in the X direction (RATEX). The register 119b takes in the output of the divider 118b and stores the scaling factor (RATEY) in the Y direction.
[0070]
As shown in FIG. 5, the scaling factor generation device 111 calculates the coordinates X of the source image of the image to be scaled, X start point XS, X end point SXE, Y start point SYS, Y end point SYE, and the coordinates of the destination image after scaling. From the X start point DXS, X end point DXE, Y start point DYS, and Y end point DYE, scaling factors RATEX and RATEY in the X and Y directions are obtained and transferred to the DDA processing device 112.
[0071]
That is, the scaling factor generating device 111 obtains the scaling factor (RATEX) in the X direction by the calculation of RATEX = (SXE-SXS) / (DXE-DXS). Further, the scaling factor generation device 111 obtains a scaling factor (RATEY) in the Y direction by calculating RATEY = (SYE-SYS) / (DYE-DYS).
[0072]
FIG. 9 is a block diagram showing a configuration of the DDA processing device 112 included in the scaling processing device 106 in FIG. In the figure, reference numeral 121 denotes a multiplexer (MUX) that transfers the coordinate X starting point DXS of the destination image of the initial value to the register 122 only at the beginning, and sends the output of the adder 125 that is sequentially added. . Reference numeral 122 denotes a register for storing the X value currently being processed, and reference numeral 123 denotes a multiplier. The multiplier 123 multiplies the X-direction scaling factor RATEX by the number of parallel processing pixels of MAX of the halftone processing device 107 to obtain a value corresponding to a plurality of pixels. Find the fine difference. Reference numeral 124 denotes a register for storing the value obtained by the multiplier 123, reference numeral 125 denotes an adder for adding the output values of the registers 122 and 124, reference numeral 126 denotes a register for storing the X end point to be interpolated, and reference numeral 127 denotes the interpolation. Is a register for storing the X start point to be executed.
[0073]
Reference numeral 128 denotes a multiplexer (MUX) that transfers the coordinate Y starting point DXS of the destination image of the initial value to the register 129 only at the beginning, and sends the output of the adder 131 that is sequentially added. Reference numeral 129 denotes a register for storing the Y value currently being processed, reference numeral 130 denotes a register for storing the Y-direction scaling factor RATEY obtained by the scaling factor generation device 111, and reference numeral 125 denotes the output value of each of the registers 129 and 130. Reference numeral 126 denotes a register for storing the Y end point to be interpolated, and reference numeral 127 denotes a register for storing the Y start point to be interpolated.
[0074]
The DDA processing device 112 receives the scaling factors (RATEX, RATEY) output from the scaling factor generating device 111 and the X start point DXS and the Y start point DYS of the destination image, and converts them into ○ (enlarged pixels) in FIG. As shown in the figure, the coordinates of the input image after scaling are obtained at any time by DDA (Digital Differential Analysis). In this example, as shown in FIG. 5, the DDA processing unit 112 obtains the X start point, the X end point, the Y start point, and the Y end point to be interpolated, and interpolates with the IX / IY count unit 113 and the variable pixel coefficient generation. Transfer to device 114.
[0075]
At this time, in the X direction, DDA for the MAX parallel processing pixels of the halftone processing device 107 is performed. Therefore, in the X-direction DDA process, as shown in FIG. 9, the current X-coordinate value is multiplied by the number of MAX parallel processing pixels of the halftone processing device 107 by the X-direction scaling factor RATEX obtained by the scaling factor generating device 111. In the Y direction, on the other hand, as shown in FIG. 9, the Y direction scaling factor RATEY obtained by the scaling factor generating device 111 is sequentially added to the current Y coordinate.
[0076]
FIG. 10 is a block diagram showing the configuration of the IX / IY counting device 113 included in the scaling processing device 106 in FIG. In the figure, reference numeral 135 denotes a comparator which compares the XE value from the DDA processing device 112 with the coordinate X end point DXE of the destination image, and generates a signal indicating that the X coordinate becomes equal to the X end point DXE as a XENDFL signal. . A comparator 136 compares the YE value from the DDA processing device 112 with the coordinate Y end point DYE of the destination image, and generates a YENDFL signal indicating that the Y coordinate has become equal to the Y end point DYE.
[0077]
Reference numeral 137 denotes a multiplexer (MUX) that transfers the initial value of the coordinate Y starting point SYS of the source image to the register 138 only at the beginning, and then sends the output of the adder 139 that is sequentially added. Reference numeral 138 is a register for storing the Y value currently being processed. Reference numeral 139 denotes an adder, and reference numeral 140 denotes a comparator, which compares the currently processed Y value with the YE value from the DDA processing unit 112, and outputs that the Y coordinate becomes equal to the Y end point YE as an IYENDFL signal. .
[0078]
FIG. 11 is a block diagram showing the configuration of the scaled pixel coefficient generator 114 included in the scaler 106 in FIG. The variable pixel coefficient generation device 114 receives a plurality of X widths from the parallel X width generation device 141 that obtains the X width of the same number of pixels as the number of parallel processes of the halftone processing device 107, And an output X width generation device 142 for dividing the output into the number of parallel processes and outputting the divided data.
[0079]
That is, the scaled pixel coefficient generation device 114 uses the parallel X width generation device 141 based on the start point XS in the X direction to be interpolated from the DDA processing device 112 and the X direction scaling ratio RATEX determined by the scale generation device 111. The X coordinate of each pixel is obtained by DDA for the number of pixels output from the image storage device 110, and the X width between each pixel is calculated from the X coordinate. Next, the output X width generation device 142 performs a process for outputting in accordance with the number of parallel processes of the halftone processing device 107, and calculates the cumulative addition value of the X width of each pixel and the number of pixels by a scaling pixel conversion device. Send to 115.
[0080]
FIG. 12 is a block diagram showing a configuration of the parallel X width generation device 141 in the variable-size pixel coefficient generation device 114 of FIG. The parallel X width generation device 141 includes adders 143a to 143f and subtracters 144a to 144f. The adders 143a to 143f receive the X starting point obtained by the DDA processing device 112 and the X-direction scaling factor RATEX obtained by the scaling factor generating device 111, and obtain X values of a plurality of pixels. The subtractors 144a to 144f calculate the width between each pixel.
[0081]
FIG. 13 is a block diagram showing the configuration of the output X width generation device 142 in the variable pixel coefficient generation device 114 of FIG. The output X width generation device 142 includes multiplexers (MUX) 145a to 145f, registers 146a to 146f, a cumulative addition processing device (A) 147, a WXWIDTH update processing device 148, an output XWIDTH generation processing device 149, And a cumulative addition processing device (B) 150.
[0082]
The output X width generation device 142 shown in FIG. 13 receives the X width of each pixel from the parallel X width generation device 141, stores the X width in the registers 146a to 146f, and holds the received X width until all the received pixels have been processed. Then, the WXWIDTH update processing device 148 subtracts the X width of each of the output pixels from the register having the smaller pixel number, and updates the registers 146a to 146f through the multiplexers 145a to 145f.
[0083]
The cumulative addition processing device (A) 147 cumulatively adds the X widths stored in the registers 146a to 146f. The WXWIDTH update processing device 148 receives the cumulative addition value output from the cumulative addition processing device (A) 147, and calculates the first cumulative addition point exceeding the MAX parallel processing number of the halftone processing device 107 from the cumulative addition value at each pixel point. , And an updated value up to the pixel is generated, and the values of the corresponding registers 146a to 146f are updated through the multiplexers 145a to 145f.
[0084]
The output XWIDTH generation processing device 149 receives the cumulative addition value output from the cumulative addition processing device (A) 147, and calculates the first cumulative value exceeding the MAX parallel processing number of the halftone processing device 107 from the cumulative addition value at each pixel point. An addition point is obtained, an X width to be output to the pixel is obtained, and the obtained X width is transferred to the cumulative addition processing device (B) 150. The accumulative addition processing device (B) 150 performs accumulative addition necessary for the processing of the variable magnification pixel conversion device 115.
[0085]
FIG. 14 is a block diagram showing a configuration of the cumulative addition processing device (A) 147 in the output X width generation device 142 of FIG. The cumulative addition processing device (A) 147 includes adders 151a to 151f for calculating a cumulative addition value up to each pixel.
[0086]
Next, the operation of the WXWIDTH update processing device 148 of FIG. 13 will be described with reference to the flowchart shown in FIG. First, it is determined whether or not the X width of the 0th pixel is equal to or greater than the number of parallel processes (in this example, “8”) of the halftone processing device 107 (step S1). Here, when it is determined that the 0th parallel processing number is 8 or more, the parallel processing number of the halftone processing device 107 is subtracted from the 0th X width to obtain a new 0th X width value (step). S2).
[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 halftone processing device 107, the 0th X width is set to 0 and the halftone processing device A value obtained by subtracting the 0th X width from the number of parallel processes of 107 is subtracted to obtain a new first X value (step S4). Hereinafter, a process of obtaining a new X width value between the corresponding pixels in the above operation order is executed (steps S5 to S17).
[0088]
Next, the operation of the output XWIDTH generation processing device 149 of FIG. 13 will be described with reference to the flowchart shown in FIG. First, the X width of each output pixel is initialized (step S21). Subsequently, it is determined whether or not the X width of the 0th pixel is equal to or greater than the number of parallel processes ("8" in this example) of the halftone processing device 107 (step S22). Here, if the X width of the 0th pixel is the parallel processing number 8 of the halftone processing device 107, the number of pixels to be processed is set by setting the number of parallel processing of the halftone processing device 107 to the 0th output X width. The parallel processing number of the halftone processing device 107 is set to PNUM (step S23).
[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 halftone processing device 107, the 0th X width WXWIDTH0 is set to the 0th output X width, and 1 is set. The value obtained by subtracting the 0th X width from the number of parallel processings of the halftone processing device 107 is set to the X-th output width, and the number of parallel processings of the halftone processing device 107 is set to the number of pixels to be processed PNUM ( Step S25).
[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 halftone processing device 107, the 0th X width WXWIDTH0 is set to the 0th output X width, and 1 The value obtained by subtracting the cumulative addition value from the number of parallel processings of the halftone processing device 107 to the first X width is set to the second output X width, and the parallel processing of the halftone processing device 107 is set to the number of pixels to be processed PNUM. The number is set (step S27).
[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 halftone processing device 107, the X widths of the registers 146a to 146f whose X widths of the pixels output by all the pixels have been updated have been updated. A value is set, and the sum of the X widths of all the pixels is set to the number of pixels PNUM to be processed (step S38).
[0092]
FIG. 17 is a block diagram showing the configuration of the cumulative addition processing device (B) 150 in the output X width generation device 142 of FIG. As shown, the cumulative addition processing device (B) 150 includes adders 152a to 152g for obtaining a cumulative addition value for each pixel.
[0093]
Next, the operation of the variable magnification pixel conversion device 115 will be described with reference to the flowcharts shown in FIGS. FIG. 18 is a flowchart showing the 0th processing operation of the output pixel of the scaling pixel conversion device 115. First, it is determined whether or not the X width “DXWIDTH0” of the 0th pixel is larger than “0” from the variable-size pixel coefficient generation device 114 (step S41). Here, when it is determined that the X width “DXWIDTH0” of the 0th pixel is larger than “0”, the value of DATA0 of the original pixel storage device 110 is set for the 0th output pixel (step S42).
[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 coefficient generation device 114 is larger than “0” (step S43). Here, when it is determined that the X width “DXWIDTH1” of the 0th pixel is larger than “0”, the value of DATA1 of the original pixel storage device 110 is set for the 0th output pixel (step S44).
[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 coefficient generation device 114 is larger than “0” (step S45). Here, if it is determined that the X width “DXWIDTH2” of the 0th pixel is larger than “0”, the value of DATA2 of the original pixel storage device 110 is set for the 0th output pixel (step S46).
[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 coefficient generation device 114 is larger than “0” (step S47). Here, when it is determined that the X width “DXWIDTH3” of the 0th pixel is larger than “0”, the value of DATA3 of the original pixel storage device 110 is set for the 0th output pixel (step S48).
[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 coefficient generation device 114 is larger than “0” (step S49). Here, when it is determined that the X width “DXWIDTH4” of the 0th pixel is larger than “0”, the value of DATA4 of the original pixel storage device 110 is set for the 0th output pixel (step S50).
[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 coefficient generation device 114 is larger than “0” (step S51). Here, when it is determined that the X width “DXWIDTH5” of the 0th pixel is larger than “0”, the value of DATA5 of the original pixel storage device 110 is set for the 0th output pixel (step S52).
[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 coefficient generation device 114 is larger than “0” (step S53). Here, when it is determined that the X width “DXWIDTH6” of the 0th pixel is larger than “0”, the value of DATA6 of the original pixel storage device 110 is set for the 0th output pixel (step S54).
[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 coefficient generation device 114 is larger than “0” (step S55). Here, when it is determined that the X width “DXWIDTH7” of the 0th pixel is larger than “0”, the value of DATA7 of the original pixel storage device 110 is set for the 0th output pixel (step S56).
[0101]
FIG. 19 is a flowchart showing a first processing operation of the output pixel of the variable-magnification pixel conversion device 115. First, it is determined whether or not the X width “DXWIDTH0” of the 0th pixel is larger than “1” from the variable pixel coefficient generation device 114 (step S61). Here, when it is determined that the X width “DXWIDTH0” of the 0th pixel is larger than “1”, the value of DATA0 of the original pixel storage device 110 is set for the first output pixel (step S62).
[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 coefficient generation device 114 is larger than “1” (step S63). Here, if it is determined that the X width “DXWIDTH1” of the 0th pixel is larger than “1”, the value of DATA1 of the original pixel storage device 110 is set for the first output pixel (step S64).
[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 coefficient generation device 114 is larger than “1” (step S65). Here, when it is determined that the X width “DXWIDTH2” of the 0th pixel is larger than “1”, the value of DATA2 of the original pixel storage device 110 is set for the first output pixel (step S66).
[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 coefficient generation device 114 is larger than “1” (step S67). Here, when it is determined that the X width “DXWIDTH3” of the 0th pixel is larger than “1”, the value of DATA3 of the original pixel storage device 110 is set for the first output pixel (step S68).
[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 coefficient generation device 114 is larger than "1" (step S69). Here, when it is determined that the X width “DXWIDTH4” of the 0th pixel is larger than “1”, the value of DATA4 of the original pixel storage device 110 is set for the first output pixel (step S70).
[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 coefficient generation device 114 is larger than “1” (step S71). Here, when it is determined that the X width “DXWIDTH5” of the 0th pixel is larger than “1”, the value of DATA5 of the original pixel storage device 110 is set for the first output pixel (step S72).
[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 coefficient generation device 114 is larger than “1” (step S73). Here, when it is determined that the X width “DXWIDTH6” of the 0th pixel is larger than “1”, the value of DATA6 of the original pixel storage device 110 is set for the first output pixel (step S74).
[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 coefficient generation device 114 is larger than “1” (step S75). Here, when it is determined that the X width “DXWIDTH7” of the 0th pixel is larger than “1”, the value of DATA7 of the original pixel storage device 110 is set for the first output pixel (step S76).
[0109]
As described above, the variable-magnification pixel conversion device 115 obtains pixels for the parallel processing pixels (“8” in this example) of the output device of the halftone processing device 107. Therefore, subsequent to the above-described FIGS. 18 and 19, the second and subsequent processes of the output pixel are executed according to the flowcharts shown in FIGS. That is, in FIG. 20, the second processing of the output pixel (steps S81 to S96), in FIG. 21, the third processing of the output pixel (steps S101 to S116), and in FIG. S136), FIG. 23 shows the fifth process of the output pixel (steps S141 to S156), FIG. 24 shows the sixth process of the output pixel (steps S161 to S176), and FIG. 25 shows the seventh process of the output pixel (step S181). To S196).
[0110]
Next, the halftone processing device 107 will be described in detail. FIG. 26 is a block diagram illustrating a configuration of the halftone processing device 107 of the image processing device 103 according to the embodiment of the present invention. This halftone processing device 107 shows a configuration example in the case where the horizontal matrix size is larger than the number of multi-value data to be compared in parallel.
[0111]
In FIG. 26, reference numeral 161 denotes a threshold matrix address generation device, reference numeral 162 denotes a horizontal threshold matrix storage device, reference numeral 163 denotes a multilevel data shift device, reference numeral 164 denotes a parallel comparison device, reference numeral 165 denotes an effective BIT generation device, Reference numeral 166 denotes a fixed-length data generation device, and reference numeral 167 denotes a controller that controls the entire halftone processing device 107.
[0112]
The threshold matrix address generation device 161 receives the size of the horizontal threshold matrix size from the parameter storage device 109 and generates an address of the threshold matrix memory 108. The horizontal threshold matrix storage unit 162 reads and stores all threshold matrices used for horizontal lines from the threshold matrix memory 108. The multi-level data shift unit 163 receives a plurality of multi-level data after scaling from the scaling unit 106 in the horizontal direction, and stores a multi-level data indicating a position corresponding to a threshold matrix in the horizontal threshold matrix storage unit 162. The multi-value data is shifted by the data start point.
[0113]
The parallel comparison device 164 compares the shift data shifted by the multi-level data shift device 163 and the threshold matrix from the horizontal threshold matrix storage device 162 in parallel. The valid BIT generation device 165 shifts the binary data obtained by the parallel comparison device 164 to the left as valid data and sends the number of valid data, which is the length of valid data, to the fixed-length data generation device 166, thereby converting the valid data. Easy to cut.
[0114]
The fixed-length data generator 166 adds fixed-length data to the fixed-length data by adding the binary data obtained by the valid BIT generator 165 by the effective number (the number of multi-valued data) indicated by the controller 167. Generate The controller 167 receives the effective number of horizontally interpolated pixels from the scaling processing device 106 and controls the entire halftone processing device 107.
[0115]
FIG. 27 is a block diagram showing a specific configuration example of the halftone processing device 107 in FIG. 26, showing an example in which the threshold matrix size (m) in the horizontal direction is 23 (24).
[0116]
FIG. 28 is a flowchart showing the operation of the halftone processing device 107 according to the embodiment of the present invention. The halftone processing device 107 is executed by the controller 167.
[0117]
28, first, a threshold matrix in the horizontal direction is read from the threshold matrix memory 108 indicated by the threshold matrix address generator 161 (step S201). The multi-value offset number is set as the multi-value data start point (step S202). Next, the horizontal threshold matrix read from the threshold matrix memory 108 is stored in the horizontal threshold matrix storage device 162 (step S203).
[0118]
Subsequently, the multi-value data shift device 163 shifts only the multi-value data start point (step S204). Further, the output of the multi-level data shift device 163 and the output of the horizontal threshold value matrix storage device 162 are compared by the parallel comparison device 164 to binarize the data (step S205). Next, the effective BIT generation device 165 shifts the binarized effective value to the top (step S206), and the fixed-length data generation device 166 adds the data cut out by the effective BIT generation device 165 to the fixed-length data. (Step S207).
[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 data shift device 163 in the halftone processing device 107 in FIG. 26 will be described with reference to the flowcharts shown in FIGS. In the flowcharts of FIGS. 29 to 34, a plurality of multivalued data (0 to 7 in this example) after scaling are received from the scaling processing unit 106, The multi-value data is shifted by a multi-value data start point indicating a position corresponding to the size (24 in this example).
[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 points 8 to 23, respectively.
[0123]
Next, each functional block constituting the halftone processing device 107 will be described. FIG. 35 is a block diagram showing a configuration of the parallel comparison device 164 in the halftone processing device 107 of FIG. Since the horizontal threshold matrix size of the parallel comparison device 164 is “24”, 24 comparators 170 (0) to 170 (23) are arranged. Here, the scaled data shifted by the multi-level data shift device 163 and a plurality of threshold values from the horizontal threshold matrix storage device 162 are compared for each pixel.
[0124]
Next, the operation of the effective BIT generation device 165 in the halftone processing device 107 of FIG. 26 will be described with reference to the flowcharts shown in FIGS. In the flowcharts of FIGS. 36 to 41, the binary data (0 to 23 in this example) obtained by the parallel comparison device 164 is shifted from the valid data to the left, and the length of the valid data is transmitted to the fixed-length data generating device 166. Is transmitted as valid binary data (0 to 7).
[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 data starting points 8 to 23, respectively.
[0126]
FIG. 42 is a block diagram showing a configuration of the fixed-length data generation device 166 in the halftone processing device 107 of FIG. The fixed-length data generation device 166 includes a shifter 171, an OR device 172, registers 173 and 174, an adder 175, and a register 176.
[0127]
The shifter 171 receives a plurality of binarized valid data from the valid BIT generation device 165 and performs a shift process to match the final value of the fixed-length data currently being created. The OR device 172 performs an OR process on the value shifted by the shifter 171 with the value currently being created, and inserts the result. The register 174 stores the fixed-length data currently being created, and updates by storing the value newly entered by the OR device 172.
[0128]
The adder 175 receives the number of multi-valued data, and performs an addition process with the final value of the fixed-length data in the register 176 in order to obtain the next leading value of the shifter 171. The register 176 stores the final value of the fixed-length data and controls the shifter 171. The register 173 stores data satisfying all the fixed-length data width generated by the OR device 172, and transfers the data to the binary image writing device 104 (see FIG. 1).
[0129]
FIG. 43 shows a format example of a 24 × 24 size in the threshold matrix storage device 108. FIG. 44 shows an example of transition of processing using the threshold matrix of FIG.
[0130]
FIG. 45 is a block diagram showing a configuration of the halftone processing device 107 different from that of FIG. That is, the halftone processing device 107 shows a configuration example in which the horizontal threshold matrix size is smaller than the number of multi-value data to be compared in parallel. 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.
[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 parallel comparison devices 164a and 164b are arranged in FIG. 45 in contrast to the configuration in FIG. The operations of the other components are basically the same as those in FIG. 26, and thus the same reference numerals are given and the description thereof will be omitted.
[0132]
FIG. 46 is a block diagram showing a specific configuration example of the halftone processing device 107 shown in FIG. 45. The number of halftone processes (n) of MAX in the horizontal direction is 15 (16), and the threshold matrix in the horizontal direction. The example when the size (m) is 7 (8) is shown.
[0133]
In the halftone device 107 configured as shown in FIG. 45 (FIG. 46), the overall process is performed in accordance with the process of FIG. 28 described above, but the parallel comparison process in step S205 is performed by the parallel comparison devices 164a and 164b. Execute. The operation of the multi-level data shift device 163 is performed in the same manner as in FIGS. 29 to 34, the parallel comparison process is performed in the device configuration shown in FIG. 35, and the operation of the effective BIT generating device 165 is performed in the same manner as in FIGS. The operation of the fixed-length data generating device 166 is also performed by the device shown in FIG.
[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 charger 4, a laser writing unit 5, a multi-color development unit 6, based on an electrophotographic process. , A black developing unit 7, an intermediate transfer belt 10, a cleaning unit (cleaning blade 15A), and a discharge lamp L. The image forming apparatus further includes a paper feeding device 17 that accommodates and feeds recording paper onto which the toner image is transferred, and a fixing device 50 that fixes the toner image on the recording paper after the transfer.
[0136]
The photoconductor 1 is rotatably supported by the rotating rollers 2 and 3, and is rotated at a predetermined speed in the direction of arrow A by the rotation of the rotating rollers 2 and 3. On the outer peripheral portion of the photoconductor 1, a charging charger 4, a discharging lamp L, and a cleaning blade 15A for the photoconductor are arranged.
[0137]
A laser writing unit 5 is provided below the charging charger 4. A multicolor developing unit 6 is arranged on the left side of the photoconductor 1, and a black developing unit 7 containing black toner is arranged above the multicolor developing unit 6. The multicolor developing unit 5 includes a yellow developing unit, a magenta developing unit, and a cyan developing unit arranged by a revolver method.
[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 unit 6 is configured such that any one of the developing units is selected by a rotation of 120 degrees on the circumference. When these developing units operate, the black developing unit 7 moves to a position separated from the photoconductor 1. This movement is performed by the rotation of the cam 45.
[0139]
The laser writing unit 5 includes a polygon motor 5A driven at a predetermined number of revolutions, a polygon mirror 5B driven by the polygon motor 5A to deflect and scan the laser light, and a laser beam scanned at a constant pitch on the photoconductor. An fθ lens 5C for optically correcting the light so as to be irradiated, and a mirror 5D for guiding the laser light to the photoconductor 1 are provided.
[0140]
The laser writing unit 5 modulates and outputs a laser beam corresponding to an image forming signal (write information) of a plurality of colors from a laser light source (not shown), and uses a polygon mirror 5B rotated by a polygon motor 5A to cycle the laser beam. Optical scanning is performed on the surface of the photoconductor 1 charged in advance through the fθ lens 5C and the mirror 5D, and an electrostatic latent image is formed on the photoconductor 1.
[0141]
The electrostatic latent image formed on the surface of the photoconductor 1 is developed by a toner from a corresponding developing unit, and is held on the photoconductor 1 as a visible image. The intermediate transfer belt 10 is disposed adjacent to the photoreceptor 1 and is supported by rotating rollers 11 and 12 so as to be rotatable in the direction of arrow B. The toner image on the photoconductor 1 is transferred to the surface of the intermediate transfer belt 10 by a transfer brush 13 provided on the back side of the intermediate transfer belt 10.
[0142]
The surface of the photoconductor 1 is cleaned for each color by the cleaning blade 15A, and a toner image of a predetermined color is formed on the surface. Each time, a plurality of color toner images are superimposed and held on the intermediate transfer belt 10. Thereafter, the toner image is transferred to a recording medium such as recording paper or plastic.
[0143]
When the transfer to the recording paper is performed, the recording paper stored in the paper feeding device 17 is fed out by the paper feeding roller 18, further conveyed by the conveyance roller 19, and abutted against the registration roller pair 20. , The toner image is transferred again to the nip between the intermediate transfer belt 10 and the transfer roller 14 at a timing such that the transfer position of the toner image becomes a normal position.
[0144]
The recording paper is transferred to the fixing device 50 after the toner images of a plurality of colors on the intermediate transfer belt 10 are collectively transferred by the action of the transfer roller 14, and the toner images are fixed. The paper is discharged to the paper discharge tray 52 above the main body frame 9 by the pair 51.
[0145]
The intermediate transfer belt 10 is provided with a cleaning device 16 for the intermediate transfer belt 10 at the position of the rotating roller 11, and the cleaning blade 16A is configured to be able to freely contact and separate via a cleaning blade contacting / separating arm 16C. In the step of receiving the toner image from the photoreceptor 1, the cleaning blade 16 </ b> A is configured to separate from the intermediate transfer belt 10 and to come into contact after the toner image is transferred from the intermediate transfer belt 10 to the recording paper. The residual toner after the image is transferred is scraped off.
[0146]
The waste toner scraped from the photoconductor 1 and the intermediate transfer belt 10 is stored in a collection container 15. Note that the collection container 15 is appropriately replaced. An auger 16B provided inside the cleaning device 16 for the intermediate transfer belt 10 transports the waste toner scraped by the cleaning blade 16A, and sends it to the collection container 15 by a transporting unit (not shown).
[0147]
Reference numeral 31 denotes a unitized process cartridge, which integrally incorporates the photoconductor 1, the intermediate transfer belt 10, the cleaning device 16, the transport guide 30 forming a paper transport path, and the like, and is configured to be replaceable at the end of its life. I have. In addition to replacing the process cartridge 31, the multi-color developing unit 6, the black developing unit 7, and the like are also replaced at the end of their service life. Is configured to be rotatable about a support shaft 9A so that it can be opened and closed.
[0148]
Reference numeral 60 denotes an electric device / control device, on which a fan 58 is provided. The fan 58 exhausts air in order to prevent a rise in temperature inside the apparatus. Reference numeral 59 denotes a sheet feeding device that performs a relatively small-scale sheet feeding.
[0149]
FIG. 48 is a block diagram showing a configuration of the electric device / control device 60 in the multicolor image forming apparatus of FIG. The electric device / control device 60 is roughly connected with an image memory accelerator 200, an engine controller 202, and a panel controller 203 on a bus 201.
[0150]
The image memory accelerator 200 includes a bus controller 206, a memory arbiter 207, a local I / F 208, a CPU I / F 209, a memory controller 210, a communication controller 211, a DMA 212, and an image processing device 215.
[0151]
A printer engine 204 is connected to the engine controller 202, and an operation panel 205 is connected to the panel controller 203. A ROM is connected to the local I / F 216, a CPU 217 is connected to the CPU I / F 209, and an image memory 218 is connected to the memory controller 210.
[0152]
The image memory accelerator 200 is controlled by the CPU 217, receives image data from a host computer (not shown) via a network, transfers the image data to the image memory 218, transfers the image data to the engine controller 202, and instructs print output. And so on. At this time, the communication with each host and the image memory 218 are controlled by the memory controller 210, the information specified by the operation panel 205 is obtained, and the bus control is executed for the engine controller 202 and the like.
[0153]
The bus controller 206 arbitrates buses with peripheral controllers connected to the bus 201. The memory arbiter 207 performs arbitration between the image memory 218 and various controllers. The local I / F 208 is an interface such as the ROM 216 and is connected to the image memory 218 and the CPU 217 via the memory arbiter 207.
[0154]
The ROM 216 stores various control programs and font information such as characters. The CPU I / F 209 is an interface of the CPU 217 and is connected to the image memory 218 and various controllers via the memory arbiter 207. The CPU 217 controls the entire multicolor image forming apparatus.
[0155]
The memory controller 210 controls the image memory 218, and is connected to various controllers and the CPU 217 via the memory arbiter 207. The image memory 218 stores image data, its code data, a program for the CPU 217, and the like. The communication controller 211 is connected to a network, receives various data and commands from the network, and is connected to various controllers via the memory arbiter 207.
[0156]
The image processing device 215 executes image processing according to the second embodiment. The image processing device 215 reads an image from the image memory 218 according to a command from the CPU 217, performs predetermined image processing, and stores the image data in the image memory 218. Write to.
[0157]
The panel controller 203 controls the operation panel 205. The operation panel 205 includes various keys and a panel so that an input operation or the like by a user is performed. The bus 201 connects the image memory accelerator 200 and various peripheral controllers. The DMA 212 executes a direct memory access between the memory controller 210 and the engine controller 202 connected to the bus 201.
[0158]
FIG. 49 is a block diagram showing a configuration of the image processing device 215 in FIG. The image processing device 215 includes a memory arbiter I / F 220, a data conversion processing device 221, a halftone processing device 222, and a parameter storage device 223.
[0159]
The memory arbiter I / F 220 performs image read processing of image data, read processing of dither data, and arbitration of a request to the memory arbiter 207 for write processing after the processing, and transmits the image data to the data conversion device 221 by halftone. The dither data is transferred to the processing device 222, the image-processed data from the halftone processing device 222 is received, and the data is transferred to the memory arbiter 207. Further, the memory arbiter I / F 220 manages the scaling process in the vertical direction, requests image data and dither data necessary for the process via the memory arbiter 207, and transfers the processed image to the memory arbiter 207.
[0160]
The data conversion processing device 221 receives horizontal line image data from the memory arbiter I / F 220, performs horizontal scaling, color conversion, and filtering, and decodes the image code if the image data is a code. Processing is performed, and after conversion into image data, scaling processing, color conversion processing, filter processing, and the like are performed, and the processing result is transferred to the halftone processing device 222.
[0161]
The halftone processing device 222 receives the dither data of the number of lines after scaling of each line in the vertical direction from the memory arbiter I / F 220, receives the data after image processing from the data conversion processing device 221 for each horizontal line, Perform tone processing.
[0162]
The parameter storage device 223 stores parameters necessary for the memory arbiter I / F 220, the data conversion processing device 221, and the halftone processing device 222 set by the CPU 217 and the like.
[0163]
Next, the scaling processing of the image processing device 215 in FIG. 49 will be described with reference to the flowchart shown in FIG. In this example, a scaling process by the nearest neighbor method will be described as an example.
[0164]
First, the memory arbiter I / F 220 performs processing for obtaining a scaling factor in the vertical direction (Y direction) (step S1101), reads one line of image data from the image memory 218 via the memory arbiter 207, and 221 (step S1102). Further, the memory arbiter I / F 220 reads dither data for the number of lines after scaling in the vertical direction (Y direction) from the image memory 218, and sends the dither data to the halftone processing device 222 (step S1103).
[0165]
Subsequently, the memory arbiter I / F 220 uses the vertical direction DDA (Digital Differential Analysis) based on the vertical magnification obtained in step S1101 and the coordinate Y starting point DYS of the destination image to obtain the Y after magnification. A start point YS and a Y end point YE are obtained (step S1104). Further, the memory arbiter I / F 220 sets the YS value in the vertical line counter after scaling (step S1105).
[0166]
Subsequently, one line of image processing (magnification, color conversion, filtering, etc.) is performed by the data conversion device 221 (step S1106), and the halftone processing device 222 converts the image data of the one line after the image processing. A halftone process is performed (step S1107). Further, the halftone processing device 222 writes the one-line data after the halftone processing into the internal line memory (step S1108).
[0167]
Subsequently, the memory arbiter I / F 220 counts up the vertical line counter after scaling (step S1109), and determines whether or not the Y end point YE after scaling in the vertical direction obtained in step S1104 is exceeded. (Step S1110). If it is determined that the number does not exceed the value, the process returns to step S1106. On the other hand, if the memory arbiter I / F 220 determines that the data has exceeded the limit, the memory arbiter I / F 220 writes the image-processed data from the internal line memory written in step S1108 to the image memory 218 via the memory arbiter 207 (step S1108). Step S1111).
[0168]
Subsequently, the memory arbiter I / F 220 determines whether the Y end point YE after scaling in the vertical direction obtained in step S1104 exceeds the coordinate Y point DYE of the destination image (step S1112). If it is determined that there is no data, the process returns to step S1102.
[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 / F 220 in FIG. The memory arbiter I / F 220 is connected to the memory arbiter 207. The memory arbiter 207 arbitrates an access such as a memory access from the CPU 217 and a memory access from the local I / F 208 through the CPU I / F 209, causes a memory access from a plurality of media, and causes another medium to perform a standby process.
[0175]
The memory arbiter I / F 220 is connected to the memory arbiter 207 as the image processing device 215, requests the memory arbiter 207 to access the image memory 218 as the image processing device 215, and sends the data conversion processing device 221 an image before image processing. It requests the memory arbiter 207 to read data, reads image data, and transfers it to the data conversion processing device 221. In the case where the data conversion processing device 221 has an image code decoding processing device, the above processing is performed on image data as code data.
[0176]
Further, the memory arbiter I / F 220 requests the memory arbiter 207 to read the dither data to the halftone processing device 222, reads the dither data and transfers the dither data to the halftone processing device 222. The memory arbiter 207 requests the memory arbiter 207 to write the image data of.
[0177]
FIG. 56 is a block diagram showing a detailed configuration of the memory arbiter I / F 220 in FIG. The memory arbiter I / F 220 includes a scaling factor generation device 225, a Y-DDA processing device 226, an IY counting device 227, a memory address generation device 228, a multiplexer (MUX) 229, and a controller 230. .
[0178]
The scaling factor generation device 225 in FIG. 56 calculates the scaling factor RATEY in the Y direction from the coordinate Y starting point SYS and Y ending point SYE of the source image to be scaled and the coordinate Y starting point DYS and Y ending point DYE of the destination image after scaling. And transfers it to the Y-DDA processing device 226.
[0179]
The Y-DDA processing device 226 receives the scaling factor in the Y direction from the scaling factor generating device 225 and the coordinate Y start point DYS of the destination image, and receives the vertical Y (enlarged pixel) shown in FIG. The Y coordinate of the input image after scaling is obtained by DDA (Digital Differential Analysis) to obtain the Y starting point YS and the Y ending point YE, and the difference (the number of lines after scaling) DY is obtained. Is transferred to the memory address generation device 228.
[0180]
The IY counting device 227 receives the scaled Y start point YS and Y end point YE from the Y-DDA processing device 226, and converts the scaled Y start point to the Y end point from the data conversion processing device 221 and the halftone processing device 222. Each time the processing of one line is completed, the line is counted and compared with the coordinate Y end point of the destination image to control the end of the image processing.
[0181]
The memory address generation device 228 calculates an image data read address, a dither data read address, and an image data write address after image processing, which are memory addresses for accessing the image memory 218 via the memory arbiter 207. At this time, the number of lines after scaling is received from the Y-DDA processing unit 226, and the number of lines of dither data to be read (the number of data) and the number of lines to write the processed image (the number of data) are calculated. Generate
[0182]
The multiplexer (MUX) 229 switches the transfer of the data read from the memory arbiter 207 to the data conversion processing device 221 and the halftone processing device 222 according to the type of data. The controller 230 controls the image processing device 215 as in the operation shown in FIG.
[0183]
FIG. 57 is a block diagram showing a configuration of the scaling factor generation device 225 in the memory arbiter I / F 220 of FIG. The scaling factor generation device 225 includes subtractors 231a and 231b, a divider 232, and a register 233 for storing a scaling factor (RATEY) in the Y direction.
[0184]
The scaling factor generation device 225 configured as described above performs the coordinate Y starting point SYS and the Y ending point SYE of the source image of the image to be scaled, and the coordinate Y starting point DYS and the Y ending point DIE of the destination image after scaling. , And obtains the scaling factor RATEY in the Y direction, and transfers it to the Y-DDA processing device 226. That is, as shown in FIG. 57, the scaling factor generation device 225 obtains a scaling factor (RATEY) in the Y direction by calculating RATEY = (SYE-SYS) / (DYE-DYS).
[0185]
FIG. 58 is a block diagram showing a configuration of the Y-DDA processing device 226 in the memory arbiter I / F 220 of FIG. The Y-DDA processing device 226 includes a multiplexer (MUX) 234, registers 235 and 236, adders 237, registers 238 and 239, and a subtractor 240.
[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 register 235 only at the beginning, and then sends the output of the adder 237 which is sequentially added. The register 235 stores the currently processed Y value. The register 236 stores the scaling factor RATEY in the Y direction. The register 238 stores the Y end point after scaling. The register 239 stores the Y starting point after scaling. The subtractor 240 subtracts the positive part of the Y end point to obtain the number of lines DY after scaling.
[0187]
The Y-DDA processing device 226 configured as described above receives the scaling factor in the Y direction from the scaling factor generating device 225 and the coordinate Y starting point DYS of the destination image, and receives the vertical ○ (FIG. 2). Like the enlarged pixel), the Y coordinate of the input image after scaling is obtained by DDA (Digital Differential Analysis) to determine the Y starting point YS and the Y ending point YE, and the difference (the number of lines after scaling) DY And transfers it to the IY counting device 227 and the memory address generating device 228.
[0188]
FIG. 59 is a block diagram showing a configuration of the IY counting device 227 in the memory arbiter I / F 220 of FIG. The IY counting device 227 includes a comparator 241, a multiplexer (MUX) 242, a register 243, an adder 244, and a comparator 245.
[0189]
The comparator 241 compares the scaled Y end point from the Y-DDA processing unit 226 with the coordinate Y end point DYE of the destination image, and transfers the YENDFL signal to the controller 230. The multiplexer (MUX) 229 sends the Y starting point after scaling from the Y-DDA processing unit 226 to the register 243 only at the beginning, and then sends the output of the adder 244 that is sequentially added.
[0190]
The register 243 stores the Y value currently being processed. The adder 244 counts the lines each time the data conversion processing device 221 and the halftone processing device 222 complete processing of one line. The comparator 245 compares the currently processed Y value with the Y end point after scaling from the Y-DDA processing unit 226, and transfers the IYENDFL signal that is the result to the controller 230.
[0191]
The IY counting device 227 configured as described above receives the scaled Y start point YS and Y end point YE from the Y-DDA processing device 226, and converts the scaled Y start point to Y end point from the data conversion processing device. Each time the processing of one line by the H.221 and the halftone processing device 222 is completed, the line is counted and compared with the coordinate Y end point of the destination image to control the end of the image processing.
[0192]
FIG. 60 is a block diagram showing a configuration of the memory address generation device 228 in the memory arbiter I / F 220 of FIG. The memory address generation device 228 includes an image data address generation device 246, a dither data address generation device 247, and a processed image data address generation device 248.
[0193]
The image data address generation device 246 of FIG. 60 is set with the image head address from the parameter storage device 223 as an initial value, and then reads the address of the image data before image processing line by line and generates an address. An address for reading image data is generated as shown in FIGS.
[0194]
The dither data address generation device 247 sets the dither head address from the parameter storage device 223 as an initial value, receives the number of lines after scaling from the Y-DDA treatment device 226, and reads the number of lines of dither data to be read ( (Data amount), and an address for reading dither data is generated as shown in FIGS.
[0195]
The post-processing image data address generation device 248 sets the post-processing image head address as an initial value from the parameter storage device 223, receives the scaled line number from the Y-DDA processing device 226, and writes the post-processing image data. The number of lines (data amount) is calculated, and an address for reading dither data is generated as shown in FIGS.
[0196]
The memory address generation device 228 calculates an image data read address, a dither data read address, and an image write address after image processing, which are addresses of a memory for accessing the image memory 218 via the memory arbiter 207. At this time, the number of lines after scaling is received from the Y-DDA treatment device 226, and the number of lines of data data to be read (the number of data) and the number of lines to write the processed image (the number of data) are calculated. Generate.
[0197]
FIG. 61 is a block diagram showing an input / output configuration of the data conversion processing device 221 in FIG. 49, and shows a case where only the scaling processing device is provided.
[0198]
FIG. 62 is a block diagram showing a detailed configuration of the data conversion processing device 221 in FIG. As shown in the figure, the scaling processing device 221 includes an original pixel storage device 250, a scaling factor generation device 251, a DDA processing device 253, an IX counting device 254, a scaling factor coefficient generation device 255, and a scaling factor. A pixel conversion device 256 and a controller 257 that controls the entire data conversion processing device 221 are provided.
[0199]
The original pixel storage device 250 in FIG. 62 stores the pixels to be processed in parallel by the halftone processing device 222 and transfers it to the subsequent-stage scaling pixel conversion device 256. The scaling factor generation device 251 calculates the scaling factor RATEX in the X direction from the coordinates X starting point SXS and Y starting point SYS of the source image of the image to be scaled and the coordinates X starting point DXS and X ending point DXE of the destination image after scaling. Then, it is transferred to the subsequent DDA processing device 253.
[0200]
In addition, the DDA processing device 253 receives the scaling factor in the X direction and the coordinate X starting point DXS of the destination image from the scaling factor generating device 251, and receives the input like ○ (enlarged pixel) shown in FIG. The coordinates of the image after scaling are obtained at any time by DDA (Digital Differential Analysis: digital differential analysis). In this example, in order to interpolate, an X start point XS and an X end point XE to be interpolated are obtained and transferred to the IX counting device 254 and the variable pixel coefficient generating device 255.
[0201]
Further, the IX counting device 254 receives the starting point and the ending point in the Y direction from the DDA processing device 253, generates the Y coordinate of △ (interpolated pixel) in FIG. 2, and sends the X coordinate equal to the X ending point DXE to the controller 257. Is notified by the XENDFL signal.
[0202]
Also, the scaling pixel coefficient generation device 225 receives the starting point XS in the direction to be interpolated from the DDA processing device 253 and the X-direction scaling factor RATEX obtained by the scaling pixel generation device 251, and outputs each of the outputs from the scaling factor generation device 251. The width of the pixel is output, and a scaling process of the pixel is performed by the scaling pixel converter 256. At this time, the number of MAXs output by the scaling pixel conversion device 256 is up to the MAX pixel value that can be processed by the halftone processing device 222. In addition, since the scaling factor is 1, the output of the scaling factor generating device 251 corresponds to the pixel value of MAX that can be processed by the halftone processing device 222. Therefore, when the scaling factor is 1 or more, the halftone processing unit 222 outputs every MAX pixel that can be processed over a plurality of clocks.
[0203]
The scaling pixel conversion device 256 receives a pixel to be scaled from the original pixel storage device 250, receives the width of each pixel output from the scaling pixel coefficient generation device 256, and as shown in FIG. The magnification process is performed by changing the width. The controller 257 controls the entire data conversion processing device 221.
[0204]
FIG. 63 is a flowchart showing the operation of the data conversion processing device 221, which is executed by the controller 257.
[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 DDA processing device 253 performs DDA processing in the X direction (horizontal direction) to obtain an X start point XS and an X end point XE to be processed (step S353).
[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 pixel conversion device 256 converts the scaled pixel to the obtained width, and outputs the converted width in accordance with the number of MAX parallel processing pixels of the halftone processing device 222 (step S356). Then, if XE does not exceed the coordinate X end point DXE of the scaled destination image, the process returns to step S353. If XE is equal to or exceeds DXE, the scaling process ends.
[0207]
FIG. 64 is a block diagram showing a configuration of the original pixel storage device 250 in the data conversion processing device 221 of FIG. The original pixel storage device 250 includes registers 260a to 260h, a line memory 261, and a line memory controller 262.
[0208]
The registers 260a to 260h sequentially store data and store pixels for the MAX parallel processing pixels of the halftone processing device 222. The line memory 261 connects the image data stored by the registers 260a to 260h and stores them in parallel, so that the reading of the image data from the image memory 218 and the image processing can be performed in parallel, and the contents of the registers 260a to 260h are read. Are configured to be read in parallel. The line memory controller 262 generates an address of the line memory 261 and controls the entire original pixel storage device 250.
[0209]
FIG. 65 is a block diagram showing a configuration of the scaling factor generation device 251 in the data conversion processing device 221 of FIG. The scaling factor generation device 251 includes subtractors 263 and 264, a divider 265, and a register 266 for storing a scaling factor (RATEX) in the X direction.
[0210]
The scaling factor generation device 251 calculates the scaling factor RATEX in the X direction from the coordinate X start point SXS and X end point SXE of the source image of the image to be scaled and the coordinate X start point DXS and X end point DXE of the destination image after scaling. Is obtained and transferred to the DDA processing device 253. That is, the scaling factor generation device 251 obtains the scaling factor (RATEX) in the X direction by calculating RATEX = (SXE-SXS) / (DXE-DXS).
[0211]
FIG. 66 is a block diagram showing a configuration of the DDA processing device 253 in the data conversion processing device 221 of FIG. In the figure, reference numeral 267 denotes a multiplexer (MUX) which transfers the coordinate X starting point DXS of the destination image of the initial value to the register 268 only at the beginning and sends the output of the adder 271 which is sequentially added. . Reference numeral 268 denotes a register for storing the X value currently being processed, and reference numeral 269 denotes a multiplier. The multiplier 269 multiplies the X-direction scaling factor RATEX by the number of parallel processing pixels of MAX of the halftone processing device 222 to obtain a plurality of pixels. Find the fine difference. Reference numeral 270 denotes a register for storing the value obtained by the multiplier 269, reference numeral 271 denotes an adder for adding the output values of the registers 268 and 270, reference numeral 272 denotes a register for storing the X end point to be interpolated, and reference numeral 273 denotes a register. This register stores the value of the X start point to be interpolated.
[0212]
The DDA processing device 253 receives the scaling factors (RATEX, RATEY) output from the scaling factor generating device 251 and the X start point DXS and the Y start point DYS of the destination image, and converts them into の (enlarged pixels) in FIG. As shown in the figure, the coordinates of the input image after scaling are obtained at any time by DDA (Digital Differential Analysis). In this example, as shown in FIG. 62, the DDA processing device 253 obtains the X start point, the X end point, the Y start point, and the Y end point to be interpolated, and performs IX counting device 254 and scaling pixel coefficient generation device 255. Transfer to
[0213]
At this time, in the X direction, DDA for the MAX parallel processing pixels of the halftone processing device 222 is performed. Therefore, in the X-direction DDA process, as shown in FIG. 66, the current X coordinate value is multiplied by the number of MAX parallel processing pixels of the halftone processing device 222 by the X-direction scaling factor RATEX obtained by the scaling factor generation device 251. The added values are sequentially added.
[0214]
FIG. 67 is a block diagram illustrating a configuration of the IX counting device 254 in the data conversion processing device 221 of FIG. 62, and includes a comparator 274. The comparator 274 compares the XE value from the DDA processing device 253 with the coordinate X start point DXE of the destination image, and generates a signal indicating that the X coordinate has become equal to the X end point DXE as an XENDFL signal.
[0215]
62. In the variable-magnification pixel coefficient generation device 255 in the data conversion processing device 221 in FIG. 62, the same figure numbers as those in FIG. Omitted. That is, the parallel X width generation device constituting the variable magnification pixel coefficient generation device 255 is the same as that of FIG. 12, and the output X width generation device is the same as that of FIG. Further, the cumulative addition processing device (A) constituting the output X width generation device is the same as FIG. 14, the operation of the WXWIDTH update processing device is the same as that of FIG. 15, and the operation of the output XWIDTH generation processing device is the same as that of FIG. . Further, the configuration of the accumulative addition processor (B) is the same as that of FIG. Further, the scaling pixel conversion device 256 of FIG. 62 is the same as the operation of FIGS. 18 to 25 described above.
[0216]
Next, the halftone processing device 222 will be described in detail. FIG. 68 is a block diagram illustrating a configuration of the halftone processing device 222 of the image processing device 215 according to the second embodiment of the present invention. The halftone processing device 222 includes a horizontal threshold matrix storage device 301, a multi-value data shift device 302, a parallel comparison device 303, an effective BIT generation device 304, a fixed length data generation device 305, and a line memory 306. , A line memory address generator 307, and a controller 308 for controlling the entire halftone processor 222.
[0219]
The horizontal threshold matrix storage device 301 reads and stores all threshold matrices used for horizontal lines from the threshold matrix memory. The multi-level data shift unit 302 receives a plurality of multi-value data after scaling in the horizontal direction from the data conversion processing unit 221 and multi-level data indicating a position corresponding to a threshold matrix of the horizontal threshold matrix storage unit 301. The multi-value data is shifted by the data start point. The operation of the multi-level data shift device 302 is performed in the same manner as in FIGS. 29 to 34 described above.
[0218]
The parallel comparison device 303 compares the shift data shifted by the multi-level data shift device 302 and the threshold matrix from the horizontal threshold matrix storage device 301 in parallel. The configuration of this parallel comparison device 303 is the same as that of FIG. The valid BIT generation device 304 shifts the binary data obtained by the parallel comparison device 303 to the left as valid data and sends the number of valid data, which is the length of valid data, to the fixed-length data generation device 305, thereby converting the valid data. Easy to cut. The operation of the effective BIT generation device 304 is performed in the same manner as in FIGS. 36 to 41 described above.
[0219]
The fixed-length data generator 305 adds fixed-length data to the fixed-length data by adding the binary data obtained by the valid BIT generator 304 by the effective number (the number of multi-valued data) indicated by the controller 308. Generate The configuration of the fixed-length data generation device 305 is the same as that of FIG.
[0220]
The line memory 306 stores the fixed-length data generated by the fixed-length data generating device 305. FIG. 72 shows a format example of the line memory 306. The line memory address generation device 307 generates an address for storing data from the fixed length data generation device 305 in the line memory 306.
[0221]
The controller 308 receives the effective number of horizontally interpolated pixels from the data conversion processing device 221, executes the same operation as in the flowchart shown in FIG. 28 described above, and controls the entire halftone processing device 222.
[0222]
FIG. 69 is a block diagram showing a specific configuration example of the halftone processing device 222 in FIG. 68. The number (n) of halftone processing of MAX in the horizontal direction is 7 (8), and An example in which the threshold matrix size (m) is 23 (24) is shown.
[0223]
FIG. 70 shows a format example of a 24 × 24 size in the threshold value matrix memory 108. A transition example of the process using the threshold matrix of FIG. 70 is the same as that of FIG.
[0224]
Next, the overall processing operation when the conversion processing of the data conversion processing device 221 is the bilinear method will be described with reference to the flowchart shown in FIG.
[0225]
In FIG. 71, first, the memory arbiter I / F 220 performs a process of obtaining a scaling factor in the vertical direction (Y direction) (step S1201), and reads one line of image data from the image memory 218 via the memory arbiter 207. The data is sent to the data conversion processing device 221 (step S1202). Further, the memory arbiter I / F 220 reads one line of image data from the image memory 218, reads dither data for the number of lines after scaling in the vertical direction (Y direction) from the image memory 218, and reads the data conversion processing device 221. (Step S1203).
[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 / F 220 reads the dither pattern data for the number of lines after the scaling in the vertical direction, and sends it to the halftone processing device 222 (step S1204). Further, from the vertical scaling factor obtained in step S1201 and the coordinate Y starting point DYS of the destination image, the Y starting point YS and the Y ending point YE after scaling are obtained by DDA (digital differential analysis) in the vertical direction ( Step S1205). Further, the memory arbiter I / F 220 sets the YS value in the vertical line counter after the scaling (step S1206).
[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-tone processing device 222 further processes the one-line image data after image processing. Is subjected to a halftone process (step S1208). Further, the halftone processing device 222 writes the one-line data after the halftone processing into the internal line memory (step S1209).
[0229]
Next, the memory arbiter I / F 220 counts up the vertical line counter after scaling (step S1210), and determines whether or not the vertical ending Y end point YE obtained in step S1204 has been exceeded. (Step S1211). Here, if it is determined that it has not exceeded, the process returns to step S1207. On the other hand, if the memory arbiter I / F 220 determines that the data has exceeded the limit, the memory arbiter I / F 220 writes the image-processed data from the internal line memory written in step S1208 to the image memory 218 via the memory arbiter 207 (step S1208). Step S1212).
[0230]
Subsequently, the memory arbiter I / F 220 determines whether or not the Y end point YE after scaling in the vertical direction obtained in step S1204 exceeds the coordinate Y point DYE of the destination image (step S1213). If it is determined that there is not, the process returns to step S1203. On the other hand, if it is determined that it has exceeded, this series of processing ends.
[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 conversion processing device 221 based on the bilinear interpolation method shown in FIG. 78 will be described.
[0237]
The data conversion processing device 221 shown in FIG. 78 includes a parameter processing device 311, an enlargement ratio generation device 312, a DDA processing device 313, an IX / IY counting device 314, an interpolation coefficient generation device 315, and an interpolation processing device 316. And
[0238]
The parameter processing device 311 sequentially stores the input image data in the line memory, and transfers the four points WCOLA, WCOLB, WCOLC, and WCOLL to the interpolation processing device 316 when the two lines are stored.
[0239]
The enlargement factor generation device 312 calculates the coordinates X start point DXS, X end point DXE, and X end point DXS, X end point SXE, Y start point SYS, and Y end point SYE of the source image of the image to be scaled and the coordinate X of the destination image after scaling. , Y starting point DYS and Y ending point DYE, X and Y scaling factors RATEX and RATEY are obtained and transferred to the DDA processing device 313.
[0240]
The DDA processing device 313 receives the magnification ratios in the X and Y directions and the coordinates X start point DXS and Y start point DYS of the destination image from the enlargement ratio generation device 312, and receives them as indicated by a circle (enlarged pixel) shown in FIG. The coordinates of the input image after scaling are obtained at any time by DDA (Digital Differential Analysis). In this example, in order to perform interpolation, an X start point, an X end point, a Y start point, and a Y end point to be interpolated are obtained, and are transferred to the IX / IY counting device 314 and the interpolation coefficient generating device 315.
[0241]
The IX / IY counting unit 314 receives the start point and the end point in the direction to be interpolated from the DDA processing unit 313 and the start point and the end point in the Y direction, and generates X and Y coordinates of △ (interpolated pixel) shown in FIG. , To the interpolation coefficient generation device 315.
[0242]
The interpolation coefficient generation unit 315 receives the start point and end point in the direction to be interpolated from the DDA processing unit 313 and the start point and end point in the Y direction, and performs an interpolation process from the X and Y coordinates of the pixel to be interpolated from the IX / IY count unit 314. The interpolation coefficients (DRATEY, DRATEX) in the X and Y directions to be interpolated by the device 316 are obtained and sent to the interpolation processing device 316.
[0243]
The interpolation processing device 316 receives data to be interpolated from the parameter processing device 311, and further receives coefficients to be interpolated from the interpolation coefficient generation device 315, thereby interpolating the parameter processing device 311 to enlarge the data as shown in FIG. An enlarged image is generated by interpolating and filling the interpolated pixels, and a scaling process is executed.
[0244]
Next, the operation of the data conversion processing device 221 configured as shown in FIG. 78 will be described with reference to the flowchart shown in FIG. First, an enlargement ratio is obtained by the enlargement ratio generator 312 (step S1301), and DDA processing in the Y direction (vertical direction) is performed by the DDA processor 313 to obtain a Y start point YS and a Y end point YE to be processed (step S1302). . Further, the Y coordinate (horizontal line) processed by the IX / IY counting device 314 is designated as the YS coordinate (step S1303), and the X coordinate processed by the IX / IY counting device 314 is initially set to the coordinate X starting point DXS of the destination image. (Step S1304).
[0245]
Subsequently, DDA processing in the X direction (horizontal direction) is performed by the DDA processing device 313, an X start point XS and an X end point XE to be processed are obtained (step S1305), and interpolation data is read (step S1306). Further, an interpolation coefficient at the coordinates currently processed is obtained by the interpolation coefficient generation device 315 (step S1307).
[0246]
Subsequently, the interpolation processing device 316 generates a scaled image by interpolating between the enlarged pixels (step S1308). Thereafter, it is determined whether or not XE has exceeded the coordinate X end point DXE of the scaled destination image (step S1309). If it is determined that XE does not exceed the coordinate X end point DXE of the scaled destination image, the process returns to step S1305, and if it does, the IX / IY counting device 314 interpolates next. A Y coordinate is obtained (step S1310).
[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 conversion processing device 221 in FIG. 78 will be described. FIG. 80 is a block diagram showing a configuration of the parameter processing device 311 in the data conversion processing device 222 of FIG. The parameter processing device 311 includes a register 321 for storing even-numbered pixels of input pixels, a register 322 for storing odd-numbered pixels of input pixels, and line memories 323 and 324 for storing pixels for lines. 325, a selector 326 for performing output processing of these memories, and a controller 327 for controlling the present apparatus.
[0249]
The selector 323 controls and outputs data stored in the line memories 323, 324, and 325. For example, when the data of the line memories 323 and 324 are currently output, the pixels A and B for which the line memory 323 is interpolated and the pixels C and D for which the line memory 324 is interpolated are output as follows. The next pixel is stored in the line memory 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]
The parameter processing device 311 configured as described above stores two lines B of image data sequentially input from the scan line direction as shown in FIG. 81, and sequentially interpolates the four points as shown in FIG. Is output as shown in FIG. When the four interpolated pixels are being output, the input pixels are sequentially received by the third line memory.
[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 ratio generating device 312 in the data conversion processing device 221 of FIG. This enlargement ratio generating device 312 calculates subtracters 331, 332, 335, 336, dividers 333, 337, a register 334 for storing an X-direction scaling factor (RATEX), and a Y-direction scaling factor (RATEY). And a register 338 for storing.
[0253]
The enlargement factor generating device 312 calculates the coordinates X start point DXS, X end point XS, X end point SXE, Y start point SYS, Y end point SYE of the source image of the image to be scaled, and the coordinates X start point DXS, X end point of the destination image after scaling. The scaling factors RATEX and RATEY in the X and Y directions are obtained from the DXE, the Y starting point DYS, and the Y ending point DYE, and are transferred to the DDA processing device 313.
[0254]
That is, as shown in FIG. 84, the enlargement ratio generating device 312 obtains the scaling factor (RATEX) in the X direction by the operation of RATEX = (SXE-SXS) / (DXE-DXS), and furthermore, RATEY = (SYE-SYS). ) / (DYE-DYS) is used to determine the scaling factor (RATEY) in the Y direction.
[0255]
FIG. 85 is a block diagram showing a configuration of the DDA processing device 313 in the data conversion processing device 221 of FIG. In the figure, reference numeral 341 denotes a multiplexer (MUX) that transfers the coordinate X starting point DXS of the destination image of the initial value to the register 342 only at the beginning, and sends the output of the adder 344 that is sequentially added. . Reference numeral 342 denotes a register for storing the X value currently being processed, reference numeral 343 denotes a register for storing the X-direction scaling factor RATEX obtained by the enlargement ratio generating device 312, and reference numeral 344 denotes an output value of the registers 342 and 343. 345 is a register for storing the X end point to be interpolated, and 346 is a register for storing the X start point to be interpolated.
[0256]
Reference numeral 347 denotes a multiplexer (MUX) that transfers the coordinate X starting point DXS of the destination image of the initial value to the register 348 only at the beginning, and sends the output of the adder 350 that is sequentially added. Reference numeral 348 denotes a register for storing the Y value currently being processed, reference numeral 349 denotes a register for storing the Y-direction scaling factor RATEY obtained by the enlargement ratio generator 312, and reference numeral 350 denotes an output value of each of the registers 348 and 349. 351 is a register for storing the Y end point to be interpolated, and 352 is a register for storing the Y start point to be interpolated.
[0257]
The DDA processing device 313 receives the magnification ratios in the X and Y directions and the coordinates X start point DXS and Y start point DYS of the destination image from the enlargement ratio generation device 312, and receives them as indicated by a circle (enlarged pixel) shown in FIG. And the coordinates of the input image after scaling are obtained as needed by DDA (Digital Differential Analysis). In this example, in order to interpolate as shown in FIG. 82, the X start point XS, X end point XE, Y start point YS, and Y end point to be interpolated are obtained and transferred to the IX / IY counting device 314 and the interpolation coefficient generating device 315.
[0258]
FIG. 86 is a block diagram showing a configuration of the interpolation coefficient generation device 315 in the data conversion processing device 221 of FIG. The interpolation coefficient generation device 315 includes a subtractor 355, 356, 359, 360, a divider 357, a register 358 for storing an X-direction interpolation coefficient (DRATEX), a divider 361 for calculating 1 / DX, 262 and a register 363 for storing an interpolation coefficient (DRATEY) in the Y direction.
[0259]
The interpolation coefficient generation device 315 configured as described above receives the start point and end point in the X direction and the start point and end point in the Y direction to be interpolated from the DDA processing device 313, and outputs the interpolation pixel from the IX / IY count device 314. From the X and Y coordinates, an interpolation coefficient (DRATEY, DRATEX) in the X and Y directions to be interpolated by the interpolation processing device 316 is obtained and sent to the interpolation processing device 316.
[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 DDA processing device 313, and IX and IY are the X and Y coordinates of the pixel to be interpolated from the IX / IY counting device 314. Further, at this time, since the present method obtains the horizontal line sequentially as shown in FIG. 83, the operation of DRATEY is required only once for each line, the amount of operation is small, and the amount of hardware is reduced. Higher processing speed is realized.
[0261]
FIG. 87 is a block diagram showing a configuration of the interpolation processing device 316 in the data conversion processing device 221 of FIG. The interpolation processing device 316 includes a vertical interpolation processing device 371, a horizontal interpolation coefficient generation device 372, and a horizontal interpolation processing device 373.
[0262]
The vertical interpolation processing device 371 obtains a difference value of the position of the current line (Y coordinate) from the Y start point based on the interpolation coefficient (DRATEY) obtained by the interpolation coefficient generation device 315, and obtains vertically interpolated AV and BV. The details will be described later.
[0263]
The horizontal interpolation coefficient generation unit 372 uses the interpolation coefficient (DRATEX, 1 / DX) obtained by the interpolation coefficient generation unit 315 to adjust the horizontal magnification up to the horizontal MAX enlargement ratio that can be processed by the scaling unit 316. Are obtained in parallel. In this example, since the scaling unit 316 is up to eight times in the horizontal direction, eight horizontal interpolation coefficients are obtained in parallel. The details will be described later.
[0264]
The horizontal interpolation processing device 373 receives the vertical interpolation points WCOLAV and WCOLBV obtained by the vertical interpolation processing device 371, and calculates a plurality of interpolation coefficients between the two points from the plurality of interpolation coefficients obtained by the horizontal interpolation coefficient generation device 372. Find the value of the interpolation point. At this time, the actual number to be interpolated is counted by an effective number counting device described later. The details will be described later.
[0265]
The interpolation processing device 316 configured as described above receives the data to be interpolated from the parameter processing device 311, and further receives and interpolates the coefficient to be interpolated from the interpolation coefficient generation device 315, thereby expanding the data as shown in FIG. 73. A scaling process for generating an enlarged image by interpolating and filling the interpolated pixels is executed.
[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 interpolation processing device 371 in the interpolation processing device 316 of FIG. The vertical interpolation processing device 371 includes subtractors 375, 379, multipliers 376, 380, adders 377, 381, and registers 378, 382.
[0268]
The subtracter 375 obtains the difference between the two left pixels of the four pixel data obtained by the parameter processing device 311. The multiplier 376 obtains a position within the difference by multiplying the value of the DRATEY obtained by the interpolation coefficient processing device 315 by the difference of the subtractor 375. The adder 377 obtains a value interpolated in the left vertical direction by adding the value obtained by the multiplier 376 and the starting point. The register 378 stores the value of the adder 377.
[0269]
Further, the subtractor 379 calculates a difference between two pixels on the right of the four pixel data obtained by the parameter processing device 311. The multiplier 380 obtains a position in the difference by multiplying the value of DRATEY obtained by the interpolation coefficient processing device 315 by the difference of the subtractor 379. The adder 381 obtains a value interpolated in the right vertical direction by adding the value obtained by the multiplier 380 and the starting point. Register 382 stores the value of adder 381.
[0270]
FIG. 89 is a block diagram showing a configuration of the horizontal interpolation processing device 372 in the interpolation processing device 316 of FIG. The horizontal interpolation processing device 372 includes adders 401 to 407 and registers 408 to 415.
[0271]
The adder 407 obtains a second interpolation coefficient in the horizontal direction next to the DRATEX obtained by the interpolation coefficient generation device 315 by adding the value of DRATEX obtained by the interpolation coefficient generation device 315 and 1 / DX. The adder 406 adds a second interpolation coefficient obtained by the adder 407 and 1 / DX to obtain a third interpolation coefficient in the horizontal direction next to the DRATEX obtained by the interpolation coefficient generation device 315. .
[0272]
The adder 405 adds the third interpolation coefficient in the horizontal direction obtained by the adder 406 and 1 / DX to thereby obtain the fourth interpolation coefficient in the horizontal direction next to the DRATEX obtained by the interpolation coefficient generation device 315. Find the coefficient. The adder 404 obtains a fifth interpolation coefficient in the horizontal direction next to the DRATEX obtained by the interpolation coefficient generation device 315 by adding the fourth interpolation coefficient obtained by the adder 405 and 1 / DX. .
[0273]
The adder 403 adds the fifth interpolation coefficient in the horizontal direction obtained by the adder 404 and 1 / DX to thereby obtain the sixth interpolation coefficient in the horizontal direction next to the DRATEX obtained by the interpolation coefficient generation device 315. Find the coefficient. The adder 402 obtains a seventh interpolation coefficient in the horizontal direction next to the DRATEX obtained by the interpolation coefficient generation device 315 by adding the sixth interpolation coefficient obtained by the adder 403 and 1 / DX. . The adder 401 obtains an eighth interpolation coefficient in the horizontal direction next to the DRATEX obtained by the interpolation coefficient generation device 315 by adding the seventh interpolation coefficient obtained by the adder 402 and 1 / DX. .
[0274]
The register 415 stores the value of DRATEX obtained by the interpolation coefficient generation device 315. The register 414 stores the value of the second interpolation coefficient in the horizontal direction obtained by the adder 407. The register 413 stores the value of the third interpolation coefficient in the horizontal direction obtained by the adder 406. The register 412 stores the value of the fourth interpolation coefficient in the horizontal direction obtained by the adder 405. The register 411 stores the value of the fifth interpolation coefficient in the horizontal direction obtained by the adder 404. The register 410 stores the value of the sixth interpolation coefficient in the horizontal direction obtained by the adder 403. The register 409 stores the value of the seventh interpolation coefficient in the horizontal direction obtained by the adder 402. The register 408 stores the value of the eighth interpolation coefficient in the horizontal direction obtained by the adder 401.
[0275]
FIG. 90 is a block diagram showing a configuration of the horizontal interpolation processing device 373 in the interpolation processing device 316 of FIG. The horizontal interpolation processing device 373 includes multipliers 421 to 428, adders 429 to 436, registers 437 to 444, a subtractor 445, and an effective number counting device 446.
[0276]
The subtractor 445 obtains a difference in the horizontal direction between two points of pixel data interpolated in the vertical direction obtained by the vertical interpolation processing device 371. The multiplier 421 multiplies the difference between the pixels obtained by the subtractor 445 and the first interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generator 372 to obtain a complemented value in the difference. Ask. The adder 429 obtains the first pixel value interpolated in the horizontal direction by adding the multiplication result of the multiplier 421 and the value of WCOLAV that is the result of vertical interpolation. The register 437 stores the value obtained by the adder 429.
[0277]
The multiplier 422 multiplies the difference between the pixels obtained by the subtractor 445 and the second interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generation device 372 to obtain the complemented value in the difference. Ask. The adder 430 obtains the second pixel value interpolated in the horizontal direction by adding the multiplication result of the multiplier 422 and the value of WCOLAV that is the vertical interpolation result. The register 438 stores the value obtained by the adder 430.
[0278]
The multiplier 423 multiplies the difference between the pixels obtained by the subtractor 445 and the third interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generator 372 to obtain a value to be complemented in the difference. Ask. The adder 431 obtains the third pixel value interpolated in the horizontal direction by adding the multiplication result of the multiplier 423 and the value of WCOLAV that is the result of vertical interpolation. The register 439 stores the value obtained by the adder 431.
[0279]
The multiplier 424 multiplies the difference between the pixels obtained by the subtractor 445 and the fourth interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generator 372 to obtain a complemented value in the difference. Ask. The adder 432 obtains the fourth pixel value interpolated in the horizontal direction by adding the multiplication result of the multiplier 424 and the value of WCOLAV that is the result of vertical interpolation. Register 440 stores the value obtained by adder 432.
[0280]
The multiplier 425 multiplies the difference between the pixels obtained by the subtractor 445 and the fifth interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generator 372 to obtain the complemented value in the difference. Ask. The adder 433 obtains the fifth pixel value interpolated in the horizontal direction by adding the multiplication result of the multiplier 425 and the value of WCOLAV that is the result of vertical interpolation. The register 441 stores the value obtained by the adder 433.
[0281]
The multiplier 426 multiplies the difference between the pixels obtained by the subtractor 445 and the sixth interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generator 372 to obtain a value to be complemented in the difference. Ask. The adder 434 obtains the sixth pixel value interpolated in the horizontal direction by adding the multiplication result of the multiplier 426 and the value of WCOLAV that is the result of vertical interpolation. The register 442 stores the value obtained by the adder 434.
[0282]
The multiplier 427 multiplies the difference between the pixels obtained by the subtractor 445 and the seventh interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generation device 372 to obtain the complemented value in the difference. Ask. The adder 435 obtains the seventh pixel value interpolated in the horizontal direction by adding the multiplication result of the multiplier 427 and the value of WCOLAV that is the result of vertical interpolation. The register 443 stores the value obtained by the adder 435.
[0283]
The multiplier 428 multiplies the difference between the pixels obtained by the subtractor 445 and the seventh interpolation coefficient in the horizontal direction obtained by the horizontal interpolation coefficient generator 372 to calculate the complemented value in the difference. Ask. The adder 436 obtains the eighth pixel value interpolated in the horizontal direction by adding the multiplication result of the multiplier 428 and the value of WCOLAV, which is the result of vertical interpolation. The register 444 stores the value obtained by the adder 436.
[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 image processing device 215 according to the second embodiment stores all thresholds applied to a scan line in a horizontal threshold matrix storage device 301 as shown in FIG. A plurality of multi-valued data are shifted so as to correspond to the respective threshold values and are subjected to a binarization process by a parallel comparison device 303 that compares all the values, and then an effective BIT generation process is performed by an effective BIT generation device 304. By extracting valid data and fixing it by the fixed-length data generation device 305, the threshold matrix is conventionally cut out for each multi-valued data. A parallel comparison device with the same number of data as the number of data is provided, and multi-valued data is shifted and passed through the parallel comparator. Implementing the configuration with a small gate without requiring Do selection device. Further, since the same number of pixels as the number of pixels of the parallel processing of the halftone processing device are always supplied, high-speed processing can be achieved by performing parallel processing of the same parallel processing pixels in the scaling processing.
[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 claim 2 further converts the plurality of pixels received from the parallel comparison means into data of a fixed length by the number of effective pixels. Since the apparatus has a fixed-length data generating means to be added, fixed-length data can be generated without using a conventional large hardware configuration.
[0289]
Further, according to the image processing apparatus of the present invention, in the scaling processing means of claim 1, the same number of original pixels as the number of pixels to be processed in parallel by the halftone processing means in the scaling pixel coefficient generation means. The X width of each pixel after scaling is calculated for the horizontal pixels of the above, and from the X width of each pixel after scaling, the scaling pixel conversion means converts the same number of horizontal pixels of the original image into data. Therefore, scaling processing can be performed at high speed in the horizontal direction in parallel.
[0290]
According to the image processing apparatus of the present invention (claim 5), in the scaled pixel coefficient generating means of claim 4, the number of pixels of the same number as the number of parallel processes of the halftone processing means in the parallel X width generating means is provided. The X width is obtained, and the plurality of X widths are received by the output X width generation means, and are output by dividing them into the number of parallel processes of the halftone processing means. Therefore, the parallel scaling process in the horizontal direction (X direction) is performed at high speed. Can be.
[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 claim 6, the memory control means executes the scaling process in the vertical direction (Y direction) and adjusts the scaling process in the vertical direction. And data input means for selecting and reading necessary dither data, image reading and image processing can be performed in parallel, realizing high-speed processing.
[0293]
According to the image processing apparatus of the present invention (claim 8), the data conversion processing means of claim 6 executes the scaling process according to the nearest neighbor method. It is possible to perform high-speed image processing without requiring a wasteful work memory area for performing halftone processing.
[0294]
Further, according to the image processing apparatus of the present invention (claim 9), the data conversion processing means of claim 6 executes the scaling process according to the bilinear interpolation method. Thus, high-speed image processing can be performed without requiring a useless work memory area for performing halftone processing.
[0295]
According to the image processing apparatus of the present invention (claim 10), the data conversion processing means of claim 8 performs parallel scaling processing on the same number of pixels as the halftone processing means processes in parallel, Since the pixels are supplied to the halftone means, the pixels for the number of parallel processes of the halftone processing means can always be generated and supplied.
[0296]
According to the image processing apparatus of the present invention, in the data conversion processing means of claim 8, the same number of original pixels as the number of pixels to be processed in parallel by the halftone processing means in the scaling pixel coefficient generation means. The X width of each pixel after scaling is calculated for the horizontal pixels of the above, and the scaling pixel conversion means converts the same number of horizontal pixels of the original image from the X width of each pixel after scaling. Therefore, scaling processing can be performed at high speed in the horizontal direction in parallel.
[0297]
According to the image processing apparatus of the present invention (claim 12), the halfton processing means of claim 10 includes a parallel comparison means for comparing a plurality of pixels in parallel in a horizontal direction, and all thresholds in a horizontal direction. Since there are a horizontal threshold matrix storage unit for storing a value matrix and a multi-value data shift unit for shifting a plurality of multi-value data to the position of the threshold matrix, halftone processing can be performed in parallel in the horizontal direction at high speed. Can be performed.
[0298]
According to the image processing device of the present invention (claim 13), the halftone processing means of claim 6 further converts the plurality of pixels received from the parallel comparison means into fixed-length data by the number of effective pixels. Because of the additional fixed-length data generation means, fixed-length data can be generated at high speed without requiring a large hardware configuration as in the related art.
[0299]
Further, according to the image processing apparatus of the present invention (claim 14), since the data conversion processing means of claim 9 has the interpolation processing means for obtaining pixels in parallel in the horizontal direction by the magnification of MAX, The scaling process can be performed at high speed in parallel in the horizontal direction.
[0300]
Further, according to the image processing apparatus of the present invention, the interpolation processing means of claim 9 calculates horizontal interpolation means for calculating pixels of the magnification of MAX in parallel in the horizontal direction; And an effective number counting means for obtaining the effective number (the number to be actually interpolated) of, so that the scaling process can be performed at high speed in the horizontal direction in parallel.
[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:
前記メモリ制御手段は、垂直方向に変倍処理を実行し、かつ垂直方向の変倍率に応じて必要なディザデータを選択し、読み込むデータ入力手段を有することを特徴とする請求項6に記載の画像処理装置。7. The data input unit according to claim 6, wherein the memory control unit executes a scaling process in a vertical direction, and selects and reads necessary dither data according to a scaling ratio in a vertical direction. Image processing device. 前記データ変換処理手段は、最近傍法にしたがって変倍処理を実行することを特徴とする請求項6に記載の画像処理装置。The image processing apparatus according to claim 6, wherein the data conversion processing unit executes a scaling process according to a nearest neighbor method. 前記データ変換処理手段は、バイリニア補間法にしたがって変倍処理を実行することを特徴とする請求項6に記載の画像処理装置。7. The image processing apparatus according to claim 6, wherein the data conversion processing unit executes a scaling process according to a bilinear interpolation method. 前記データ変換処理手段は、前記ハーフトーン処理手段が並列に処理する画素と同数の画素を並列に変倍処理し、前記ハーフトーン手段に供給することを特徴とする請求項6に記載の画像処理装置。7. The image processing apparatus according to claim 6, wherein the data conversion processing unit performs a scaling process on the same number of pixels as the pixels processed by the halftone processing unit in parallel, and supplies the same to the halftone unit. apparatus. 前記データ変換処理手段は、
前記ハーフトーン処理手段の並列処理数と同じ数の画素の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:
JP2003068500A 2003-03-13 2003-03-13 Image processor Pending JP2004282239A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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