JP3829908B2 - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP3829908B2 JP3829908B2 JP30471599A JP30471599A JP3829908B2 JP 3829908 B2 JP3829908 B2 JP 3829908B2 JP 30471599 A JP30471599 A JP 30471599A JP 30471599 A JP30471599 A JP 30471599A JP 3829908 B2 JP3829908 B2 JP 3829908B2
- Authority
- JP
- Japan
- Prior art keywords
- pattern
- matrix
- binary
- word
- color
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Color Image Communication Systems (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、色及び座標から構成される図形のエッジ情報からディザ処理を施した2値画像としてビットマップメモリに展開する画像処理装置に関するものである。
【0002】
【従来の技術】
従来、カラー複写機やカラープリンタ等では、色分解された光像により像を感光体上に形成して色材料により現像し、各色成分を重ねあわせて印刷する手法がある。このような多色重ね合わせによる印刷方法では、各色の重ね合わせによるモアレの発生を防止するために、各色毎に、網点用のスクリーンの角度を変える手法が一般的に取られている。
【0003】
複写機やプリンタ等において上述のようなスクリーンをデジタル的に掛ける手法として、ディザ法によって網点形成を行う手法がある。特公平5−68911号公報(以降、文献1と呼ぶ)では、角度を持ったスクリーン処理を行うにあたり、ディザ処理を、L行K列の閾値マトリクスを用意し、K列毎に閾値マトリクスの読み出し位置を変えることによって実現する手法が示されている。この手法は、有理正接角でスクリーン処理に使用される角度をもったスクリーンセルは、L行K列の矩形セルを敷き詰めて表現できる性質を利用している。この結果、ディザ法を使用して網点画像を得る際に、有理正接角の範囲内であれば、この手法によって自由なスクリーン角度を設定することができる。
【0004】
文献1に記載されている方式では、各色毎にマトリクスに設定された閾値と、入力とする色値とを比較して、閾値より大きい場合は値“1”を結果とし、小さい場合は値“0”を結果とする比較演算を行う。文献1では、このように1ピクセルごとに処理を行うため、網点化処理に時間がかかり、処理速度が低下するという問題があった。
【0005】
これに対し、例えば特開平9−171564号公報(以降、文献2と呼ぶ)には、グラフィックス等の図形データでは、ある一定領域の色値が同じ値である性質を利用して、高速に網点画像を得る手法が示されている。文献2の手法では、予め閾値マトリクスから、色値に対する網点化処理後のパターンをテーブルとして記憶しておく。そして、グラフィックスデータ等をラン長と、端点部の座標によるエッジ情報に分解した後、各々のエッジ情報に対して網点処理を行う。この時、先に生成したテーブルからパターンを取り出しておいて、エッジの端部については、パターンから必要なピクセル位置までをマスク処理によって取り出して描画し、端部以外の中央部では、そのままパターンを格納することによって描画を行っている。この処理では、描画時点で閾値との比較演算が必要ないことから、高速に網点化処理を実行することができる。また、パターンやマスク処理は、全てCPUで扱われるワード長で表現するため、実現が容易であり、更に高速に処理できる。
【0006】
しかし、CPUで扱われるワード長で処理することを前提としており、設定できる閾値マトリクスの幅がワード長でなければならないという制約がある。この結果、角度をもったスクリーンを自由に設定できないため、文献1の手法に比べて画像品質に問題が生じていた。
【0007】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、色及び座標から構成される図形のエッジ情報をディザ処理して2値画像としてビットマップメモリに展開するにあたり、自由なスクリーン角度を設定することができ、かつ、高速に処理することが可能な画像処理装置を提供することを目的とするものである。
【0008】
【課題を解決するための手段】
本発明は、色及び座標から構成される図形のエッジ情報からディザ処理を施した2値画像としてビットマップメモリに展開する画像処理装置において、N行K列の閾値マトリクスに基づいて色値とディザ処理後の2値パターンの対応で表現されるテーブルとともに列に関するシフト量Sを格納したシフトテーブルを作成するテーブル作成手段と、作成されたテーブルおよびシフトテーブルを格納するテーブル格納手段と、前記エッジ情報から得られるランの長さ及び前記座標及び前記色の情報に基づいて前記テーブルおよび前記シフトテーブル内のデータを用いて2値パターンデータを生成するパターンデータ生成手段と、前記パターンデータ生成手段によって生成された2値パターンデータを前記ビットマップメモリに2値画像として展開するパターン展開手段を有することを特徴とするものである。
【0009】
さらに、L行K列の閾値から成る基本閾値マトリクスを指定するマトリクス指定手段と、前記基本閾値マトリクスの大きさをLとデータアクセス長との最小公倍数をNとしN行K列の閾値マトリクスへ変換するマトリクス変換手段を設けることができる。
【0010】
上述のように、任意の角度でスクリーン処理を行う場合には、ディザ処理を、L行K列の閾値マトリクスを用いて行えばよい。これを基本閾値マトリクスとして指定し、この基本閾値マトリクスを、Lとデータアクセス長との最小公倍数をNとしたN行K列の大きさの閾値マトリクスに変換した後、各色値ごとに2値パターンを作成してテーブル化するとともに各列に関するシフト量Sを格納したシフトテーブルを作成している。このテーブル及びシフトテーブルを用いてディザ処理された2値画像を得ることによって、自由な角度のスクリーン処理を行うことができる。また、エッジ情報に対応するディザ処理後の2値パターンをテーブルから得るので、各ピクセルごとの色値と閾値との比較処理を排除することができ、高速に網点化処理を行うことが可能になる。
【0011】
また、マトリクス変換手段による変換後の閾値マトリクスの行方向の大きさNをビットマップメモリにアクセスするCPUのワード長のA倍(Aは自然数)とし、またパターンデータ生成装置が生成する2値パターンデータをワード長とすることによって、容易に実現可能となる。
【0012】
【発明の実施の形態】
図1は、本発明の画像処理装置の実施の一形態を示すブロック図である。図中、1はテーブル管理部、2は2値画像変換部、3はパターンテーブル格納部、4はビットマップメモリ、11はディザマトリクス指定部、12はディザマトリクス変換部、13はパターンテーブル生成部、14はパターンデータ生成部、21はエッジ情報入力部、22はビットマップメモリ展開部である。図1に示した画像処理装置は、テーブル管理部1、2値画像変換部2、パターンテーブル格納部3、ビットマップメモリ4から構成されている。
【0013】
テーブル管理部1は、主に画像処理装置の初期化時点においてパターンテーブルを生成する処理を行う。テーブル管理部1は、ディザマトリクス指定部11、ディザマトリクス変換部12、パターンテーブル生成部13、パターンデータ生成部14から構成されている。
【0014】
ディザマトリクス指定部11は、予め設定された角度のスクリーン処理を行うためのL行K列の閾値から成る基本閾値マトリクスを指定する。
【0015】
ディザマトリクス変換部12は、ディザマトリクス指定部11で指定した基本閾値マトリクスの大きさをN行M列へ変換する。このとき、変換後の閾値マトリクスの行方向の大きさNは、前記ビットマップメモリにアクセスするCPUのワード長のA倍(Aは自然数)としておくとよい。
【0016】
パターンテーブル生成部13は、ディザマトリクス変換部12でN行M列に変換された閾値マトリクスに基づいて、色値とディザ処理後の2値パターンの対応で表現されるパターンテーブルを作成する。作成するパターンテーブルは、取りうる全ての色値をインデックスとして、それぞれの色ごとにディザパターンを対応付けておくとよい。作成したパターンテーブルはパターンテーブル格納部3に格納される。
【0017】
パターンデータ生成部14は、2値画像変換部2からエッジの座標やランの長さ、色の情報等を受け取り、パターンテーブル格納部3に格納されているパターンテーブルのデータを用いて2値パターンデータを生成して2値画像変換部2に返す。2値パターンデータを生成する際には、ワード長に合わせておくことによって、2値画像変換部2によるビットマップメモリ4のアクセスを容易に行うことができるようになる。
【0018】
2値画像変換部2は、エッジ情報として入力された画像を2値パターンデータへ変換してビットマップメモリ4に描画する処理を行う。2値画像変換部2は、エッジ情報入力部21、ビットマップメモリ展開部22で構成されている。
【0019】
エッジ情報入力部21は、色及び座標から構成される図形のエッジ情報を受け取る。図2は、エッジ情報の説明図である。以下の説明においてエッジとは、ビットマップメモリに、描画のために定義される座標系において、x軸に平行な、幅1の線分である。エッジは、その開始点のx座標及びy座標、エッジのランレングス長run、及び色の値colorの4つの情報によって表される。また、エッジの開始点とは、エッジの2つの端点のうち、x座標の座標値が小さいほうを開始点と呼ぶ。
【0020】
ビットマップメモリ展開部22は、エッジ情報入力部21に入力されたエッジ情報をもとに、テーブル管理部1のパターンデータ生成部14によって生成された2値パターンデータを、ビットマップメモリ4に2値画像として展開する。すべてのエッジ情報について展開することによって、ビットマップメモリ4にディザ処理が施された2値画像が描画される。
【0021】
次に、本発明の画像処理装置における動作の一例について説明する。まず、画像処理装置の初期化時点でのテーブル管理部1におけるパターンテーブル生成処理の動作を説明する。
【0022】
ディザマトリクス指定部11では、外部に記憶されたディザマトリクスを読み込む処理を行う。図3は、ディザマトリクスの一形態の説明図である。図3では、角度18.5度のスクリーンを表現したものを示している。内部に記された値は全部で40あり、これらの値は中心から周囲に広がるように配置され、面積にして40画素域の領域に対して「0」から「41」までの階調を表現する。18.5度とは、図中に示される傾いた四角形のもつ角度であり、x軸上を正の方向に6画素分進むにつれ、y軸上を正の方向に2画素分進む角度であって、tanθ=1/3を満たす角度である。また、このように画素の増分関係の単位で表現される角度を一般に有理正接角と呼ぶ。
【0023】
図4は、画像中における閾値配列の一例の説明図である。図3に示すような18.5度の角度をもった閾値配列を画像中に敷き詰めた場合を図4に示している。上述の文献1によれば、このように有理正接角をもったディザマトリクスは、全て矩形で表現できることが知られている。図4では、太線の四角で囲んだ領域の繰り返しによって表現されるのが分かる。このとき、矩形は、y軸上を正の方向に矩形の縦方向の大きさ分進むごとに、x方向の矩形の開始点が、ある一定量ずつずれて配置される。このずれ量をシフト量と呼ぶ。
【0024】
図5は、基本閾値マトリクスの指定データ形式の一例の説明図である。ディザマトリクス指定部11は、外部に記憶されたディザマトリクスを読み込む処理を行う際に、例えば図5に示すような情報を読み込む。上記のとおり、有理正接角で表現される全てのマトリクスは矩形で表され、それぞれの矩形は所定のシフト量だけずれて配置される。これを利用し、(1)マトリクスの行方向の大きさ(以下この値をLとする)、(2)マトリクスの列方向の大きさ(以下この値をKとする)、(3)シフト量(以下この値をSとする)、(4)K×L個の閾値データ、によって基本閾値マトリクスを特定することができる。ディザマトリクス指定部11は、この4つのデータの読み込み処理を行う。例えば図4に示したようなスクリーン角度が18.5度のディザマトリクスの場合には、図5に示すように、矩形マトリクスの行方向の大きさL=20、同じく列方向の大きさK=2、シフト量S=6となる。そして、閾値データ列としてK×L=40個の閾値データが並ぶことになる。
【0025】
次にディザマトリクス変換部12の動作を説明する。図4にも太線で示したように、ディザマトリクス指定部11により読み込まれた基本閾値マトリクスを画像中に敷き詰めることが可能である。図6は、基本閾値マトリクスの画像への配置態様の一例の説明図である。図中の各矩形がK行L列の基本閾値マトリクスを示している。図6に示すように、y軸方向にK列ごとに基本閾値マトリクスが配置される。このとき、y軸方向に並ぶ基本閾値マトリクスはS%L、2S%L、3S%L、...といった具合にy軸からのシフト量が決定される。ここで、“%”は除算の剰余とする演算子とする。
【0026】
このようにy軸方向に繰り返して基本閾値マトリクスを敷き詰めたとすると、再びシフト量が0の部分、つまりx座標が、ハッチングを施して示した矩形と同様な位置となる基本閾値マトリクスが周期的に現れる。この結果、ディザマトリクス指定部11で指定されたL行K列でシフト量Sの基本閾値マトリクスは、N行M列でシフト量0の矩形のマトリクスに変換することができる。
【0027】
ここで、ディザマトリクス変換部12では、基本閾値マトリクスを、以下に示す2つの形式のマトリクスのどちらかに変換する。
[形式1]N行M列、シフト量0
[形式2]N行K列、シフト量S
【0028】
図7は、マトリクス変換部による変換後の閾値マトリクスの一例の説明図である。図7では、上述の「形式1」の変換結果を、太線枠で囲って示している。値Mの算出方法は、y軸上にシフト量0となるマトリクスが現れるまでの回数に、基本閾値マトリクスの列サイズKを掛け合わせたものとし、以下の式で表される。
シフト量Sが0の場合
M=K
シフト量Sが0でない場合
M=(LCM(L,S)/S)×K
(LCM(a,b)はaとbの最小公倍数の結果を表す)
値Nは、計算機がもっとも効率よく処理可能なデータアクセス長(以下ワード長と呼ぶ)との最小公倍数であり、以下の式で表される。
N=LCM(L,WC)
(WCはワード長を表す)
図7に示した例では、図5で指定された基本閾値マトリクスについてワード長WCを8とした場合を示している。この場合は、Mは20、Nは40という値をとる。
【0029】
図8は、マトリクス変換部による変換後の閾値マトリクスの別の例の説明図である。図8では、上述の「形式2」の変換結果を、太線枠で囲って示している。形式2では、列方向は、初めに指定された大きさと同じ値Kとし、行方向をワード長との最小公倍数LCM(L、WC)で表現する。図8も、図5で指定され基本閾値たマトリクスについてワード長WCが8の場合を示している。この場合、Kは2、Nは40となる。
【0030】
次にパターンテーブル生成部13の処理を説明する。パターンテーブル生成部13は、ディザマトリクス変換部12によって、「形式1」または「形式2」に変換された閾値マトリクスを受け取る。図9は、パターンテーブルのデータ形式の一例の説明図である。図9は、上述の「形式1」の閾値マトリクスに対応するパターンテーブルの形式の例を示している。パターンテーブルは、要素の単位をワード長として構成し、3次元の配列PT[256][M][NW]で実現することができる。初めの256のインデックス数は、入力色値が1画素あたり8bitで表現されている場合を示しており、256の色の値に対応する。Mは形式1のマトリクスの列サイズを表し、NWは、形式1のマトリクスの行方向のワード数を表す。また、ワード数NWが1の場合は、2次元の配列PT[256][M]で実現することができる。
【0031】
このように定義されたパターンテーブルには、2値化後のパターンを格納する。図10は、ディザマトリクスの別の形態の説明図、図11は、パターンテーブルに格納される2値のパターンの一例の説明図である。上述の例では、スクリーン角度18.5度の場合を示しているが、ここでは簡単のためスクリーン角度0度とした図10に示すようなK=4、L=4の基本閾値マトリクスを考える。図11では、図10に示す基本閾値マトリクスから、マトリクス変換処理によって、M=4、N=8に変換された場合のパターンテーブルを示している。図11(B)〜(D)は、それぞれ、色の値が250、150、50の場合に対応する2値のパターンデータを例示したものである。それぞれの色の値に応じて、このような2値のパターンデータをパターンテーブルに登録しておくことになる。
【0032】
図12は、パターンテーブルのデータ形式の別の例の説明図、図13は、シフトテーブルの具体例の説明図である。図12(A)は、上述の「形式2」の閾値マトリクスに対応するパターンテーブルの形式の例を示している。パターンテーブルは、K×N×256の3次元テーブルとなり、テーブルの要素の単位をワード長とすると、配列PT[256][K][NW]で実現できる。また、ワード数NWが1の場合は、2次元の配列PT[256][K]で実現できる。「形式2」では、このパターンテーブルの他に、図12(B)に示すようなシフトテーブルも生成する。シフトテーブルは、単純な1次元の表形式であり、y(0)〜y(M−1)に対するシフト量Shiftを格納する。ここで、Mは、「形式1」に変換した場合の列サイズを表している。つまり、シフトテーブルは、マトリクスをy軸方向に繰り返し配置した場合に、再びシフト量が0となるまでの全ての行のシフト量を格納している。図5で示した基本閾値マトリクスについてのシフトテーブルの値を図13に例示している。
【0033】
以上の処理が、画像処理装置の初期化の時点で実施される。ディザマトリクス変換部12で「形式1」に変換した場合にはパターンテーブルが、「形式2」に変換した場合にはパターンテーブルとシフトテーブルが、それぞれパターンテーブル格納部3に格納される。
【0034】
次に、2値画像変換部2の動作を説明する。2値画像変換部2では、まず、画像処理装置の外部または内部で生成したエッジ情報をエッジ情報入力部21によって入力し、ビットマップメモリ展開部22に送信する。ビットマップメモリ展開部22では、ディザ処理に必要な情報をテーブル管理部1内のパターンデータ生成部14から取得して、生成したディザ処理後の2値画像をビットマップメモリ4に描画する。
【0035】
図14ないし図16は、ビットマップメモリ展開部22の処理の一例を示すフローチャートである。S31において、エッジ情報からrun,x,y,colorを得る。runはエッジのラン長を、x,yはエッジの左端点の座標を、colorはエッジに着色する色の値を表す。またS32において、パターンテーブルの行方向ワード数NWを得る。パターンテーブルの行方向ワード数NWは、例えば図9や図12(A)に示すパターンテーブルの場合、値“5”を表している。
【0036】
エッジ情報に従って描画を行う場合には、ワード長単位に分割して描画を行うことができる。例えば上述の図2に示した例では、エッジ情報に基づいて図2(B)に示すように4つのワードに分割して描画を行うことができる。ここで、NWが0である場合、パターンテーブルはワード単位の2次元配列として実現されていることを示す。この場合、図2(B)に示す例では、4つのワード部分を描画するにあたり、パターンテーブルからワード長単位の2値のパターン(図中、ハッチングを施した部分)を1回生成して、4つの部分に適用できる。一方、NWが0でない場合、パターンテーブルは複数ワード構成の3次元配列として実現されていることを示す。この場合、連続したワードに同じパターンを適用することができないため、図2(B)に示す例では、パターンテーブルからワード長単位の2値のパターンを4回生成して、それぞれに適用する。この処理の違いから、以下の処理を分ける。
【0037】
S33において、NWが0であるかを検査する。0である場合、▲1▼に進み、図15に示す処理を実施する。また、0でない場合、▲2▼に進み、図16に示す処理を実施する。図15又は図16に示す処理の終了により、エッジ情報の描画を終了する。
【0038】
図15に示す処理について説明する。S41において、y,colorをもとに処理FUNC1によってパターンTを得る。処理FUNC1はテーブル管理部1内のパターンデータ生成部14に定義されており、その処理については後述する。この呼び出しによって、y,colorからパターンテーブルを検索して、2値のパターンTを得る。
【0039】
S42において、描画開始点のワード位置swとワード内のビット位置sb、及び、描画終了点のワード位置ewとワード内のビット位置ebを求める。すなわち“%”を除算の剰余とする演算子とし、ワード長をCWとすれば、以下のように計算できる。
sb=x%CW
eb=(run+x)%CW
sw=x/CW
ew=(run+x)/CW
【0040】
S43において、描画開始点のワード位置swと描画終了点のワード位置ewを比較する。swとewが等しい場合には、同じワード内に描画開始点と終了点が存在することを示す。この場合、S44へ処理を進める。また、描画開始点のワード位置swが描画終了点のワード位置ewより小さい、すなわち描画開始点と描画終了点が別のワードに属している場合には、S45へ処理を進める。
【0041】
S44において、ワード長の2値のパターンTのうち、描画開始点のビット位置sbから描画終了点のビット位置ebまでのビットパターンを、マスクを表す変数であるMskによって取り出す。そして、変数Bの描画位置に対して、同じマスク値の反転(演算子“〜”)との論理積によって0クリアした後、論理和をとることで描画する。変数Bはビットマップメモリ4にアクセスするための変数であり、y座標と描画開始(または描画終了)位置におけるワード位置からなる2次元配列で表現される。ビット位置sbからebまでのマスクとは、ワード内の0からCW−1までのビットにおいて、0からsb−1とeb+1からCW−1までが値“0”で表され、sbからebまでが値“1”で表される。このマスクはMsk[sb][eb]によって表される。
【0042】
描画開始点と描画終了点が別のワードに属している場合には、描画開始点を含むワード、描画終了点を含むワード、その他2つのワードの間に存在するワード、の3つのパートに分けて描画する。まず、初めのパートの描画を行う。S45において、描画開始点のビット位置sbからそのワードの終わりまでに、2値のパターンをビットマップメモリ4を示す変数Bに書き込む。ビットマップメモリ4を示す変数Bへの2値のパターンTの書き込みは、ビット位置sbからワードの終わりであるCW−1までをマスクMsk[sb][CW−1]でマスクし、変数B[y][sb]を、同じマスク値の反転によって0クリアを行った後、論理和をとって描画する。
【0043】
次にS46において、エッジ中央部分のパートの描画を行う。描画開始点を含むワードと描画終了点を含むワードとの間に存在するワードに、2値パターンを書き込む。ビットマップメモリ4を示す変数Bへの2値のパターンTの書き込みは、2値のパターンTを変数B[y][I]にそのまま格納する。Iは、sw+1からwe−1をとる。この処理は、エッジの端点にあたらないため、マスク処理を必要としない。
【0044】
最後にS47において、終端部分のパートの描画を行う。描画終了点を含むワードの最初からebのビット位置までに2値のパターンを書き込む。ビットマップメモリ4を示す変数Bへの2値のパターンTの書き込みは、2値のパターンTのうち、ワードの初めであるビット位置0からビット位置ebまでをマスクMsk[0][eb]でマスクし、変数B[y][ew]を、同じマスク値の反転によって0クリアを行った後、論理和をとって描画する。
【0045】
図16に示す処理について説明する。S51において、描画開始点のワード位置swとワード内のビット位置sb、及び、描画終了点のワード位置ewとワード内のビット位置ebを求める。すなわち“%”を除算の剰余とする演算子とし、ワード長をCWとすれば、以下のように計算できる。
sb=x%CW
eb=(run+x)%CW
sw=x/CW
ew=(run+x)/CW
【0046】
S52において、描画開始点のワード位置swと描画終了点のワード位置ewを比較する。swとewが等しい場合には、同じワード内に描画開始点と終了点が存在することを示す。この場合にはS53に進む。描画開始点のワード位置swが描画終了点のワード位置ewより小さい、すなわち描画開始点と描画終了点が別のワードに属している場合には、S54に進む。
【0047】
同じワード内に描画開始点と終了点が存在する場合には、S53において、y,color、及び、描画点のワード位置swから、2値のパターンTを処理FUNC2によって得る。処理FUNC2は、テーブル管理部1内のパターンデータ生成部14に定義されている。処理FUNC2については後述する。この処理FUNC2の呼び出しによって、y,color,swからパターンテーブルを検索して、2値のパターンTを得る。ワード長の2値のパターンTのうち、描画開始点のビット位置sbから描画終了点のビット位置ebまでのビットパターンを、マスクを表す変数であるMskによって取り出す。そして、描画位置におけるビットマップメモリ4を示す変数Bに、同じマスク値の反転との論理積によって0クリアした後、論理和をとることで描画する。変数BおよびマスクMskについては図15と同様である。
【0048】
描画開始点と描画終了点が別のワードに属している場合には、描画開始点を含むワード、描画終了点を含むワード、その他2つのワードの間に存在するワード、の3つのパートに分けて描画する。まずS54において、初めの描画開始点を含むのワードの描画を行う。描画開始点のビット位置sbからそのワードの終わりまでに、2値のパターンをビットマップメモリ4に書き込む。y,color、及び、描画点のワード位置sw、から2値のパターンTを処理FUNC2によって得る。ビットマップメモリ4を示す変数Bへの2値のパターンTの書き込みは、ビット位置sbからワードの終わりであるCW−1までをマスクMsk[sb][CW−1]でマスクし、変数B[y][sb]を、同じマスクの反転によって0クリアを行った後、論理和をとって描画する。
【0049】
次にS55において、中央部分のパートの描画を行う。描画開始点を含むワードと描画終了点を含むワードとの間に存在するワードに、2値のパターンを書き込む。ビットマップメモリ4を示す変数Bへの2値のパターンTの書き込みにおいて、y,color、及び、描画点のワード位置Iから、2値のパターンTを処理FUNC2によって取得し、2値のパターンTを変数B[y][I]にそのまま格納する。Iは、sw+1からwe−1をとる。この処理は、エッジの端点にあたらないため、マスク処理を必要としない。
【0050】
最後にS56において、終端部分のパートの描画を行う。描画終了点を含むワードの最初からebのビット位置までに、2値のパターンを書き込む。y,color、及び、描画点のワード位置ewから、2値のパターンTを処理FUNC2によって取得する。ビットマップメモリ4を示す変数Bへの2値のパターンTの書き込みは、2値のパターンTのうち、ワードの初めであるビット位置0からビット位置ebまでをマスクMsk[0][eb]でマスクし、変数B[y][ew]を、同じマスク値の反転によって0クリアを行った後、論理和をとって描画する。
【0051】
以上、説明したビットマップメモリ展開部22の動作において、パターンテーブルのアクセスを行う際に、パターンデータ生成部14内の処理FUNC1、及び処理FUNC2の2つの処理を起動する。以下、これらの処理について説明する。
【0052】
図17は、パターンデータ生成部14における処理FUNC1の動作の一例を示すフローチャートである。S61において、エッジのy座標、及び色の値colorを得る。S62において、パターンテーブルのテーブル形式Fを得る。Fは、1または2をとる値であり、1はパターンテーブル生成部13の説明で述べた「形式1」を表し、2は「形式2」を表す。「形式2」の場合は、パターンテーブル格納部3には、パターンテーブルの他に、列毎のシフト量を格納したシフトテーブルが格納されている。
【0053】
S63において、テーブル形式Fが1であるか2であるかを検査する。1である場合、S64において、パターンテーブルから2値のパターンを取得する。テーブルは「形式1」なので、パターンテーブルをPT、テーブルの列方向の大きさをMとし、“%”を除算の剰余とする演算子とした場合、PT[color][y%M]によって取り出すことができる。
【0054】
テーブル形式Fが2である場合、S65において、パターンテーブルから2値のパターンを取得する。テーブルは「形式2」なので、パターンテーブルPTから取り出した2値のパターンを、シフトテーブルSTから取り出したシフト量でシフト処理を実施する。これは、パターンテーブルの列方向の大きさをMとし、“<<”を左にnビットシフトする演算子、“>>”を右にnビットシフトする演算子、とした場合、以下の計算によって取り出すことができる。ただしシフト演算によって、もともと存在しない部分のビット位置の値は、全て値“0”になるものとする。
(PT[color][y%M]<<(CW−ST[y%M]))│(PT[color][y%M]>>ST[y%M])
【0055】
このようにして、パターンテーブルが2次元配列で構成されている場合に、指定されたy座標および色の値colorに対応する1ワードの2値のパターンを生成して、ビットマップメモリ展開部22に返すことができる。
【0056】
図18は、パターンデータ生成部14における処理FUNC2の動作の一例を示すフローチャートである。S71において、エッジのy座標、色の値color、及び、描画点のワード位置wを得る。またS72において、パターンテーブルのテーブル形式Fを得る。テーブル形式Fの値は、図17と同様である。
【0057】
S73において、テーブル形式Fが1であるか2であるか検査する。テーブル形式Fが1である場合、S74において、パターンテーブルから2値のパターンを取得する。テーブルは「形式1」なので、パターンテーブルをPT、テーブルの列方向の大きさをM、行方向のワード数をNWとし、“%”を除算の剰余とする演算子とした場合、PT[color][y%M][w%NW]によって取り出すことができる。
【0058】
テーブル形式Fが2である場合、テーブルは「形式2」なので、S75において、パターンテーブルから2値のパターンを取得するとともに、シフトテーブルからシフト量を取得する。そして、パターンテーブルPTから取り出したパターンを、シフトテーブルSTから取り出したシフト量でシフト処理を実施する。これは、テーブルの列方向の大きさをMとし、行方向のワード数をNWとした場合、描画点のワード位置wの存在する、パターンテーブルの行方向のインデックスw1と、その一つ左に位置するインデックスw2を、以下の計算で求める。
w1=w%NW
w2=(w1+NW−1)%NW
このインデックス値は、シフト演算によって足りなくなるビット位置の値を取得するために、隣り合う2つの2値のパターンを取り出すために使用される。この2つの行方向のインデックスから、目的とする場所の2値パターンは、以下の計算によって求めることができる。
(PT[color][y%M][w2]<<(CW−ST[y%M]))|(PT[color][y%M][w1]>>ST[y%M])
【0059】
このようにして、パターンテーブルが3次元配列で構成されている場合に、指定されたy座標、色の値color、描画点のワード位置wに対応する1ワードの2値のパターンを生成して、ビットマップメモリ展開部22に返すことができる。
【0060】
【発明の効果】
以上の説明から明らかなように、本発明によれば、色及び座標から構成される図形のエッジ情報をディザ処理して2値のビットマップメモリに展開するにあたり、自由なスクリーン角度を設定することができ、かつ、高速に処理することが可能となるという効果がある。
【図面の簡単な説明】
【図1】 本発明の画像処理装置の実施の一形態を示すブロック図である。
【図2】 エッジ情報の説明図である。
【図3】 ディザマトリクスの一形態の説明図である。
【図4】 画像中における閾値配列の一例の説明図である。
【図5】 基本閾値マトリクスの指定データ形式の一例の説明図である。
【図6】 基本閾値マトリクスの画像への配置態様の一例の説明図である。
【図7】 マトリクス変換部による変換後の閾値マトリクスの一例の説明図である。
【図8】 マトリクス変換部による変換後の閾値マトリクスの別の例の説明図である。
【図9】 パターンテーブルのデータ形式の一例の説明図である。
【図10】 ディザマトリクスの別の形態の説明図である。
【図11】 パターンテーブルに格納される2値のパターンの一例の説明図である。
【図12】 パターンテーブルのデータ形式の別の例の説明図である。
【図13】 シフトテーブルの具体例の説明図である。
【図14】 ビットマップメモリ展開部22の処理の一例を示すフローチャートである。
【図15】 ビットマップメモリ展開部22の処理の一例を示すフローチャート(続き)である。
【図16】 ビットマップメモリ展開部22の処理の一例を示すフローチャート(続き)である。
【図17】 パターンデータ生成部14における処理FUNC1の動作の一例を示すフローチャートである。
【図18】 パターンデータ生成部14における処理FUNC2の動作の一例を示すフローチャートである。
【符号の説明】
1…テーブル管理部、2…2値画像変換部、3…パターンテーブル格納部、4…ビットマップメモリ、11…ディザマトリクス指定部、12…ディザマトリクス変換部、13…パターンテーブル生成部、14…パターンデータ生成部、21…エッジ情報入力部、22…ビットマップメモリ展開部。
Claims (3)
- 色及び座標から構成される図形のエッジ情報からディザ処理を施した2値画像としてビットマップメモリに展開する画像処理装置において、N行K列の閾値マトリクスに基づいて色値とディザ処理後の2値パターンの対応で表現されるテーブルとともに列に関するシフト量Sを格納したシフトテーブルを作成するテーブル作成手段と、作成されたテーブルおよびシフトテーブルを格納するテーブル格納手段と、前記エッジ情報から得られるランの長さ及び前記座標及び前記色の情報に基づいて前記テーブルおよび前記シフトテーブル内のデータを用いて2値パターンデータを生成するパターンデータ生成手段と、前記パターンデータ生成手段によって生成された2値パターンデータを前記ビットマップメモリに2値画像として展開するパターン展開手段を有することを特徴とする画像処理装置。
- L行K列の閾値から成る基本閾値マトリクスを指定するマトリクス指定手段と、前記基本閾値マトリクスの大きさをLとデータアクセス長との最小公倍数をNとしN行K列の閾値マトリクスへ変換するマトリクス変換手段をさらに有することを特徴とする請求項1に記載の画像処理装置。
- 前記マトリクス変換手段による変換後の閾値マトリクスの行方向の大きさNは、前記ビットマップメモリにアクセスするCPUのワード長のA倍(Aは自然数)であり、前記テーブル生成手段が生成するテーブルは、取りうる全ての色値をインデックスとするディザパターン結果であり、前記パターンデータ生成手段が生成する2値パターンデータは前記ワード長であることを特徴とする請求項2に記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30471599A JP3829908B2 (ja) | 1999-10-26 | 1999-10-26 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30471599A JP3829908B2 (ja) | 1999-10-26 | 1999-10-26 | 画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001128015A JP2001128015A (ja) | 2001-05-11 |
JP3829908B2 true JP3829908B2 (ja) | 2006-10-04 |
Family
ID=17936349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30471599A Expired - Fee Related JP3829908B2 (ja) | 1999-10-26 | 1999-10-26 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3829908B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5459084B2 (ja) * | 2009-07-23 | 2014-04-02 | コニカミノルタ株式会社 | 閾値マトリクス作成装置及び閾値マトリクスの作成方法 |
JP5747553B2 (ja) * | 2011-02-23 | 2015-07-15 | 富士ゼロックス株式会社 | 画像処理システム及びプログラム |
CN113660388B (zh) * | 2021-07-21 | 2023-04-07 | 西安电子科技大学 | 快速调幅加网的方法、计算机设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0568911A (ja) * | 1991-09-17 | 1993-03-23 | Toshiba Corp | 電気集塵機 |
JPH06118935A (ja) * | 1992-10-08 | 1994-04-28 | Tokyo Electric Co Ltd | 文字データ発生装置 |
JPH06253159A (ja) * | 1993-02-24 | 1994-09-09 | Seiko Epson Corp | カラープリンタ |
JP3085175B2 (ja) * | 1995-12-20 | 2000-09-04 | 富士ゼロックス株式会社 | 描画装置 |
JP3620945B2 (ja) * | 1997-03-12 | 2005-02-16 | コニカミノルタビジネステクノロジーズ株式会社 | 階調再現装置及び画像形成装置 |
JP3394693B2 (ja) * | 1997-08-29 | 2003-04-07 | 株式会社沖データ | ディザリング装置 |
-
1999
- 1999-10-26 JP JP30471599A patent/JP3829908B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001128015A (ja) | 2001-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH04227584A (ja) | ビットマップイメージの解像度変換方法 | |
US5161035A (en) | Digital image processing device for enlarging original image with high fidelity | |
US4887228A (en) | Method for filling surface parts of an image with a surface pattern | |
JPH03214271A (ja) | テキストの画素イメージの質を改善する方法 | |
EP0583101A2 (en) | Character pattern forming method and apparatus | |
JPH0693741B2 (ja) | 網伏せにおける画像整形方法 | |
JPH04296167A (ja) | デジタル中間調印刷装置 | |
JP3829908B2 (ja) | 画像処理装置 | |
JP3111639B2 (ja) | 連続模様印刷システム | |
US5233441A (en) | Method for representing halftone dots with dot envelope parameters | |
JP4063918B2 (ja) | 表示のためのグラフィックス情報を含むイメージを作成する装置と方法 | |
JP3045008B2 (ja) | ハーフトーン画像の圧縮方式 | |
JPH05284359A (ja) | 画像の中間調網点化のための網点生成 | |
JP3777414B2 (ja) | 混成ハーフトーンスクリーン生成法 | |
JPH03127187A (ja) | コンピユータ・グラフイツクス装置および方法 | |
JP7109529B2 (ja) | 印刷装置、印刷データ作成方法、及びプログラム | |
JP3636891B2 (ja) | カラー画像出力方法 | |
JP4129934B2 (ja) | 画像生成装置 | |
JP3964704B2 (ja) | 画像処理装置、画像形成装置、画像出力システム及び画像処理方法 | |
JP2727667B2 (ja) | 描画装置 | |
JP2637921B2 (ja) | 文字記号発生装置 | |
JP2583515B2 (ja) | 画像処理装置 | |
JP3060569B2 (ja) | 印刷装置 | |
JP2596204B2 (ja) | 画像データの高速レイアウト装置 | |
JP2000184197A (ja) | 画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040219 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060329 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060526 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060621 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060704 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100721 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110721 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110721 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120721 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130721 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |