JP7119682B2 - 画像処理装置及び画像処理プログラム - Google Patents

画像処理装置及び画像処理プログラム Download PDF

Info

Publication number
JP7119682B2
JP7119682B2 JP2018134083A JP2018134083A JP7119682B2 JP 7119682 B2 JP7119682 B2 JP 7119682B2 JP 2018134083 A JP2018134083 A JP 2018134083A JP 2018134083 A JP2018134083 A JP 2018134083A JP 7119682 B2 JP7119682 B2 JP 7119682B2
Authority
JP
Japan
Prior art keywords
pixel
pixels
area
triangle
micro
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.)
Active
Application number
JP2018134083A
Other languages
English (en)
Other versions
JP2020013250A (ja
Inventor
康英 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2018134083A priority Critical patent/JP7119682B2/ja
Priority to US16/512,476 priority patent/US10891767B2/en
Publication of JP2020013250A publication Critical patent/JP2020013250A/ja
Application granted granted Critical
Publication of JP7119682B2 publication Critical patent/JP7119682B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20192Edge enhancement; Edge preservation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Description

本開示は、スキャンラインコンバージョンにおいて画像のエッジに発生するジャギーをアンチエイリアシングするために、ピクセルの面積を算出する画像処理装置及び画像処理プログラムに関する。
スキャンラインコンバージョンにおいて画像のエッジに発生するジャギーをアンチエイリアシングするために、ピクセルの面積を算出する技術が知られている(特許文献1)。
特開平10-228537号公報
スキャンラインコンバージョンにおいて画像のエッジに発生するジャギーをアンチエイリアシングするために、ピクセルの面積を算出する際は、面積を高速に算出することが望ましい。
本開示の一形態に係る画像処理装置は、
スキャンライン方向に一列に連続する複数の長方形のピクセルを含むピクセル群であって、各前記複数のピクセルは前記スキャンライン方向及び前記スキャンライン方向に直交する方向である直交方向にマトリックス状に配置された複数の長方形のサブピクセルに分割され、前記ピクセル群の下辺及び上辺は前記スキャンライン方向に平行である前記ピクセル群の前記下辺と前記エッジ線とが交差する点である第1の点を検出し、
前記ピクセル群の前記上辺と描画すべき画像のエッジを示す線であるエッジ線とが交差する点である第2の点を検出し、
前記複数のサブピクセルのうち、前記第1の点を含むサブピクセルである第1のサブピクセルの下辺に位置する2つの頂点の1つである第1の頂点を選択し、
前記複数のサブピクセルのうち、前記第2の点を含むサブピクセルである第2のサブピクセルの上辺に位置する2つの頂点の1つである第2の頂点を選択し、
前記画像を含み前記第1の頂点から前記第2の頂点までの線分を斜辺とし前記ピクセル群の前記上辺又は前記下辺を第1の隣辺とする直角三角形を生成し、
前記第1のサブピクセル又は前記第2のサブピクセルに含まれる、前記画像を含み前記線分を斜辺とし前記直角三角形の前記第1の隣辺を隣辺とし前記第1のサブピクセル又は前記第2のサブピクセルの一辺を他の隣辺とし前記直角三角形と相似である第1のマイクロ三角形の面積を算出し、
各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる、それぞれ前記第1のマイクロ三角形と合同な複数のマイクロ三角形の数を算出し、
前記複数のマイクロ三角形の数と、前記第1のマイクロ三角形の前記面積とに基づき、各前記複数のピクセルの前記直角三角形がカバーする前記領域の面積を算出する
制御回路
を具備する。
これにより、複数のピクセルに含まれる複数のマイクロ三角形の数と、第1のマイクロ三角形の面積さえ解れば、各ピクセルの面積を算出できる。このため、演算の高速化が図れる。さらに、サブピクセルの分割数を増やしても、同じ算出方法で算出できるため、演算速度の低下を防止できる。
前記制御回路は、
初項=1、公差=2及び項数=前記直角三角形の前記第1の隣辺を構成する前記複数のサブピクセルの数、である等差数列に基づき、複数の前記マイクロ三角形の前記直交方向の数を算出し、
前記複数のマイクロ三角形の前記直交方向の前記数に基づき、各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる前記マイクロ三角形の前記数を算出し、
算出した前記マイクロ三角形の前記数と、前記第1のマイクロ三角形の前記面積とを乗算した値を、各前記複数のピクセルの前記直角三角形がカバーする前記領域の前記面積とする。
これにより、マイクロ三角形の数を容易に算出できる。
前記ピクセル群は、前記第1のマイクロ三角形を含むピクセルである初期ピクセルと、前記直角三角形の前記初期ピクセルと逆側の端のピクセルである最終ピクセルと、前記初期ピクセル及び前記最終ピクセルを除く複数の中間ピクセルとを含み、
前記制御回路は、
隣り合う2つの中間ピクセルの前記直角三角形がカバーする前記領域の面積の変化量と、前記初期ピクセルの前記直角三角形がカバーする前記領域の面積とで加算した値を、各前記複数の中間ピクセルの前記直角三角形がカバーする前記領域の面積とする。
これにより、中間ピクセルの直角三角形がカバーする領域の面積を容易に算出できる。
前記制御回路は、
前記第1のサブピクセルの前記下辺に位置する前記2つの頂点のうち、前記第1の点との距離が小さい方の頂点を、前記第1の頂点として選択し、
前記第2のサブピクセルの前記上辺に位置する前記2つの頂点のうち、前記第2の点との距離が小さい方の頂点を、前記第2の頂点として選択する。
これにより、面積が本来の面積にさらに近似する。
本開示の一形態に係る画像処理プログラムは、
画像処理装置の制御回路を、
スキャンライン方向に一列に連続する複数の長方形のピクセルを含むピクセル群であって、各前記複数のピクセルは前記スキャンライン方向及び前記スキャンライン方向に直交する方向である直交方向にマトリックス状に配置された複数の長方形のサブピクセルに分割され、前記ピクセル群の下辺及び上辺は前記スキャンライン方向に平行である前記ピクセル群の前記下辺と前記エッジ線とが交差する点である第1の点を検出し、
前記ピクセル群の前記上辺と描画すべき画像のエッジを示す線であるエッジ線とが交差する点である第2の点を検出し、
前記複数のサブピクセルのうち、前記第1の点を含むサブピクセルである第1のサブピクセルの下辺に位置する2つの頂点の1つである第1の頂点を選択し、
前記複数のサブピクセルのうち、前記第2の点を含むサブピクセルである第2のサブピクセルの上辺に位置する2つの頂点の1つである第2の頂点を選択し、
前記画像を含み前記第1の頂点から前記第2の頂点までの線分を斜辺とし前記ピクセル群の前記上辺又は前記下辺を第1の隣辺とする直角三角形を生成し、
前記第1のサブピクセル又は前記第2のサブピクセルに含まれる、前記画像を含み前記線分を斜辺とし前記直角三角形の前記第1の隣辺を隣辺とし前記第1のサブピクセル又は前記第2のサブピクセルの一辺を他の隣辺とし前記直角三角形と相似である第1のマイクロ三角形の面積を算出し、
各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる、それぞれ前記第1のマイクロ三角形と合同な複数のマイクロ三角形の数を算出し、
前記複数のマイクロ三角形の数と、前記第1のマイクロ三角形の前記面積とに基づき、各前記複数のピクセルの前記直角三角形がカバーする前記領域の面積を算出する
よう動作させる。
スキャンラインコンバージョンにおいて画像のエッジに発生するジャギーをアンチエイリアシングするために、ピクセルの面積を算出する際に、面積を高速に算出することができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
画像処理装置のハードウェア構成を示す。 ピクセルをカバーする画像の面積の算出方法の概要を模式的に説明する。 各ピクセルに含まれる複数のマイクロ三角形の面積及びそのバイトデータ値を示す。 一実装例として、固定小数点実装のコード例を示す。 画像処理装置が図4に示すコードを実行するときの動作フローを示す。 画像処理装置の動作を模式的に説明する。 画像処理装置の動作を模式的に説明する。 画像処理装置の動作を模式的に説明する。 画像処理装置の動作を模式的に説明する。 画像処理装置の動作を模式的に説明する。 画像処理装置の動作を模式的に説明する。 画像処理装置の動作を模式的に説明する。 画像処理装置の動作を模式的に説明する。 画像処理装置の動作を模式的に説明する。 画像処理装置の動作を模式的に説明する。 画像処理装置の動作を模式的に説明する。 画像処理装置の動作を模式的に説明する。
以下、図面を参照しながら、本開示の実施形態を説明する。
1.アンチエイリアシングの概要
典型的に、画像表示装置は、ピクセル単位で塗りつぶしたように画像を表示する。逆に言えば、画像表示装置は、画像を、ピクセル単位より細かく描画することは出来ない。このため、エイリアシングが発生する。エイリアシングの一例として、画像のエッジに発生するジャギーが挙げられる。
スキャンラインコンバージョンのアンチエイリアシングとは、画像のエッジを含むピクセルの色調や明度を、画像を含むがエッジを含まないピクセルの色調や明度と異ならせることにより、ジャギーを目立たなくさせるための処理である。画像のエッジを含むピクセルの色調や明度は、そのピクセルをカバーする画像の面積に基づき決定される。
例えば、ピクセルをカバーする画像の面積が、ピクセル内の画像以外(背景)の面積より大きければ、画像のエッジを含むピクセルの色調や明度と、画像を含むがエッジを含まないピクセルの色調や明度との差を小さくする。逆に、ピクセルをカバーする画像の面積が、ピクセル内の画像以外(背景)の面積より小さければ、画像のエッジを含むピクセルの色調や明度と、画像を含むがエッジを含まないピクセルの色調や明度との差を大きくする。
本実施形態では、画像のエッジに発生するジャギーをアンチエイリアシングするために、ピクセルの面積を算出する際に、面積を高速に算出することを図る。
2.画像処理装置のハードウェア構成
図1は、画像処理装置のハードウェア構成を示す。
画像処理装置20は、CPU21、ROM22、RAM23、記憶装置24、ネットワーク通信インターフェース25、操作装置26及び表示装置27と、これらを相互に接続するバス28とを有する。
CPU21、ROM22、及びRAM23は、制御回路200を構成する。CPU21は、ROM22が記憶する情報処理プログラムをRAM23にロードして実行する。ROM22は、CPU21が実行するプログラムやデータなどを固定的に記憶する。ROM22は、非一過性のコンピューター読み取り可能な記録媒体の一例である。制御回路200は、専用のハードウェア回路(図示せず)をさらに含んでもよい。
3.ピクセルをカバーする画像の面積の算出方法の概要
図2は、ピクセルをカバーする画像の面積の算出方法の概要を模式的に説明する。
ピクセル群1は、スキャンライン(走査線)方向(X方向)に一列に連続する複数(本例では4個)の長方形(本例では正方形)のピクセル10(10A、10B、10C、10D)を含む。ピクセル群1の下辺16及び上辺17はスキャンライン方向(X方向)に平行である。
エッジ線L(図中の破線)は、描画すべき画像のエッジを示す線である。エッジ線Lは、ピクセル群1の下辺16及び上辺17と交差する。ピクセル群1の下辺16とエッジ線Lとが交差する点である第1の点P1の実数座標を、(x,y)と称する。ピクセル群1の上辺17とエッジ線Lとが交差する点である第2の点P2の実数座標を、(x,y+1)と称する。
各ピクセル10は、スキャンライン方向(X方向)にa個(本例ではa=4)かつスキャンライン方向に直交する方向(Y方向)縦b個(本例ではb=4)のマトリックス状に、複数(本例では4×4=16個)の長方形(本例では正方形)のサブピクセル100に分割される。
本例では、描画すべき画像(図示せず)は、エッジ線L及びピクセル群1の下辺16を含む(上辺17を含まない)領域である。即ち、各ピクセル10において、エッジ線L及びピクセル群1の下辺16を含む(上辺17を含まない)領域の面積が、本来算出すべき面積である。言い換えれば、各ピクセル10において、描画すべき画像を含み第1の点P1から第2の点P2までのエッジ線Lを斜辺としピクセル群1の下辺16又は上辺17(本例では下辺16)を隣辺とする直角三角形がカバーする領域の面積が、本来算出すべき面積である。
各ピクセル10において、第1の点P1から第2の点P2までのエッジ線Lを斜辺とする直角三角形がカバーする領域の面積を算出するためには、第1の点P1のx実数座標(x)及び第2の点P2のx実数座標(x)を算出する必要がある。しかしながら、第1の点P1のx実数座標(x)及び第2の点P2のx実数座標(x)を算出するのは処理時間が掛かる。このため、第1の点P1x実数座標(x)及び第2の点P2のx実数座標(x)を、それぞれ、サブピクセル空間の整数座標に丸める(ラウンディング)。具体的には、以下の通りである。
第1のサブピクセル101は、第1の点P1を含む。第1のサブピクセル101の下辺16に位置する2つの頂点の1つである第1の頂点P3が選択される。第1の頂点P3の実数座標を、(sbx,y)と称する。典型的には、第1の頂点P3は、第1のサブピクセル101の下辺16に位置する2つの頂点のうち、第1の点P1との距離が小さい方の頂点である。これにより、面積が本来の面積にさらに近似する。第1の点P1は、第1の頂点P3に丸められる(ラウンディング)。
第2のサブピクセル102は、第2の点P2を含む。第2のサブピクセル102の上辺17に位置する2つの頂点の1つである第2の頂点P4が選択される。第2の頂点P4の実数座標を、(sbx,y+1)と称する。典型的には、第2の頂点P4は、第2のサブピクセル102の上辺17に位置する2つの頂点のうち、第2の点P2との距離が小さい方の頂点である。これにより、面積が本来の面積にさらに近似する。第2の点P2は、第2の頂点P4に丸められる(ラウンディング)。
上述のように、各ピクセル10において、描画すべき画像を含み第1の点P1から第2の点P2までのエッジ線Lを斜辺としピクセル群1の下辺16又は上辺17(本例では下辺16)を隣辺とする直角三角形がカバーする領域の面積が、本来算出すべき面積である。
しかしながら、この本来の直角三角形の代わりに、描画すべき画像を含み第1の頂点P3から第2の頂点P4までの線分L1(図中の実線)を斜辺としピクセル群1の下辺16又は上辺17(本例では下辺16)を隣辺(第1の隣辺と称する)とする近似的な直角三角形T(図中ハッチング)を生成する。そして、各ピクセル10において、描画すべき画像を含み第1の頂点P3から第2の頂点P4までの線分L1を斜辺としピクセル群1の下辺16又は上辺17(本例では下辺16)を第1の隣辺とする近似的な直角三角形Tがカバーする領域の面積を算出する。
4.ピクセルをカバーする画像の面積の算出方法の詳細
各ピクセル10の直角三角形Tがカバーする領域の面積を算出する方法を、以下にさらに具体的に説明する。
第1のマイクロ三角形MT1は、第1のサブピクセル101又は第2のサブピクセル102(本例では第1のサブピクセル101)に含まれる、描画すべき画像を含み線分L1を斜辺とし直角三角形Tの第1の隣辺である下辺16又は上辺17(本例では下辺16)を隣辺とし第1のサブピクセル101又は第2のサブピクセル102(本例では第1のサブピクセル101)の一辺を他の隣辺とし直角三角形Tと相似である。第1のマイクロ三角形MT1の底辺(下辺16)の、サブピクセル空間での長さ=1とする。第1のマイクロ三角形MT1の面積=sとする。
第1のマイクロ三角形MT1の面積(s)を算出した上で、各ピクセル10の直角三角形Tがカバーする領域に含まれる、それぞれ第1のマイクロ三角形MT1と合同な複数のマイクロ三角形MTの数が解れば、各ピクセル10の直角三角形Tがカバーする領域の面積を算出することができる。即ち、各ピクセル10の直角三角形Tがカバーする領域の面積=第1のマイクロ三角形MT1の面積(s)×マイクロ三角形MTの数である。
複数のマイクロ三角形MTの直交方向(Y方向)の数は、初項=1、公差=2及び項数=直角三角形Tの第1の隣辺(下辺16)を構成する複数のサブピクセル100の数、である等差数列(即ち、初項=1の奇数数列)に基づき算出できる。
本例では、第1のサブピクセル101に含まれるマイクロ三角形(第1のマイクロ三角形)MTの数=1である。第1のサブピクセル101からスキャンライン方向(X方向)に1つずれた位置にあるサブピクセル100に含まれるマイクロ三角形MTの数=3である。第1のサブピクセル101からスキャンライン方向(X方向)に2つずれた位置にあるサブピクセル100に含まれるマイクロ三角形MTの数=5である。第1のサブピクセル101からスキャンライン方向(X方向)に3つずれた位置にあるサブピクセル100に含まれるマイクロ三角形MTの数=7である(補助線で図示)。各ピクセル10の直角三角形Tがカバーする領域の面積の算出方法を、以下にさらに具体的に説明する。
上述のように、サブピクセル空間において、マイクロ三角形MTは、直角三角形Tと相似である。直角三角形Tの第1の頂点P3の実数座標は(sbx,y)であり、第2の頂点P4の実数座標は(sbx,y+1)である。従って、マイクロ三角形MTの面積sは、直角三角形Tの面積に基づき数1の比例式により算出される。数1において、bは、スキャンライン方向に直交する方向(Y方向)に並ぶ複数のサブピクセル100の数である。
Figure 0007119682000001
一方、サブピクセル空間のx実数座標(sbx)を基準として、Y方向にm+1番目からn番目(m<n、m及びnは正の整数)までの、マトリックス状に配置された複数のサブピクセル100に含まれる複数のマイクロ三角形MTの数numは、数2により算出される。
Figure 0007119682000002
一方、上述のように、複数のマイクロ三角形MTの直交方向(Y方向)の数は、初項=1、公差=2及び項数=直角三角形Tの第1の隣辺(下辺16)を構成する複数のサブピクセル100の数、である等差数列(即ち、初項=1の奇数数列)に基づき算出できる。
従って、サブピクセル空間のx実数座標(sbx)を基準として、x実数座標(sbx)を含むマイクロ三角形MTから、Y方向にk番目(kは任意の数)までのマイクロ三角形MTの数は、数3により算出される。
Figure 0007119682000003
δ=n-m(m<n)とすると、m=n-δである。すると、Y方向にm+1番目からn番目(m<n、m及びnは正の整数)までの、マトリックス状に配置された複数のサブピクセル100に含まれる複数のマイクロ三角形MTの数(数2で算出される)は、数4に置換される。
Figure 0007119682000004
従って、サブピクセル空間において、Y方向にm+1番目からn番目(m<n、m及びnは正の整数)までの、マトリックス状に配置された複数のサブピクセル100に含まれる複数のマイクロ三角形MTの総面積cは、数5により算出される。即ち、数5は、マイクロ三角形MTの数(数2で算出されるn-m又は数4で算出される2nδ-δ)とマイクロ三角形MTの面積sとを乗算した値である。
Figure 0007119682000005
ピクセル空間において、各ピクセル10に含まれる複数のマイクロ三角形MTの面積C(0.0-1.0)(カバー値とも称する)は、数6により算出される。数6を説明すると、各ピクセル10に含まれるY方向の端から端までのサブピクセル100を、m+1番目からn番目までのサブピクセル100とする。そうすると、1つのピクセル10に含まれる全てのサブピクセル100に含まれるマイクロ三角形MTの総面積cを、1つのピクセル10に含まれる全てのサブピクセル100の面積(縦×横=ab)で除算することで、1つのピクセル10に含まれるマイクロ三角形MTの総面積Cを算出することができる。なお、(0.0)は明度0%、(1.0)は明度100%を意味する。
Figure 0007119682000006
ところで、実装上は、1ピクセルの面積を1バイトのデータ(0-255)とすることが多い。従って、各ピクセル10に含まれる複数のマイクロ三角形MTの面積Cをバイトデータ値(0-255)で表現すると、実際の専有面積BCは、数7により算出される。
Figure 0007119682000007
5.ピクセルをカバーする画像の面積の算出方法の具体例
各ピクセル10の直角三角形Tがカバーする領域の面積を算出する方法の具体例を、以下に説明する。
本例では、a=4(1ピクセル10に含まれる複数のサブピクセル100のX方向の数)、b=4(1ピクセル10に含まれる複数のサブピクセル100のY方向の数)、sbx-sbx=13(第2の頂点P4から第1の頂点P3までの複数のサブピクセル100のX方向の数)とする。この場合、これらの数を数1に代入することで、マイクロ三角形MTの面積sは数8に示すバイトデータ値(2/13)と算出される。
Figure 0007119682000008
第1の頂点P3(sbx,y)を含むピクセル(初期ピクセルとも称する)10Aに含まれる複数のマイクロ三角形MTの面積Cは、数9により算出される。初期ピクセル10Aに含まれる複数のマイクロ三角形MTの面積Cは、初期ピクセル10AのY方向に1(=m+1)番目から3(=n)番目までの、複数のマイクロ三角形MTの面積Cである。従って、n=3、δ=3(m=0であるため)である。さらに、s=2/13である。これらの数を数6に代入することで、初期ピクセル10Aに含まれる複数のマイクロ三角形MTの面積Cは、数9に示すC=0.0865と算出される。
Figure 0007119682000009
初期ピクセル10Aに含まれる複数のマイクロ三角形MTの面積C=0.0865を、バイトデータ値(0-255)で表現する。数9で算出されたC=0.0865を数7に代入することで、初期ピクセル10Aに含まれる複数のマイクロ三角形MTの面積Cのバイトデータ値BCは、数10に示すBC=22と算出される。
Figure 0007119682000010
各ピクセル10B、10C、10Dについて、n及びδを数6に代入して、数9により各ピクセル10B、10C、10Dに含まれる複数のマイクロ三角形MTの面積Cが算出される。さらに、数9で算出されたCを数7に代入して、数10により各ピクセル10B、10C、10Dに含まれる複数のマイクロ三角形MTの面積Cのバイトデータ値BCが算出される。
図3は、各ピクセル10A、10B、10C、10Dに含まれる複数のマイクロ三角形MTの面積C及びそのバイトデータ値BCを示す。
初期ピクセル10Aの隣のピクセル10B(中間ピクセルとも称する)に含まれる複数のマイクロ三角形MTの面積Cは、中間ピクセル10BのY方向に4(=m+1)番目から7(=n)番目までの、複数のマイクロ三角形MTの面積Cである。従って、n=7、δ=4(m=3であるため)である。さらに、s=2/13である。これらの数を数6に代入することで、中間ピクセル10Bに含まれる複数のマイクロ三角形MTの面積Cは、図3に示すC=0.385と算出される。C=0.385を数7に代入することで、中間ピクセル10Bに含まれる複数のマイクロ三角形MTの面積Cのバイトデータ値BCは、図3に示すBC=98と算出される。
中間ピクセル10Bの隣のピクセル10C(中間ピクセルとも称する)に含まれる複数のマイクロ三角形MTの面積Cは、中間ピクセル10CのY方向に8(=m+1)番目から11(=n)番目までの、複数のマイクロ三角形MTの面積Cである。従って、n=11、δ=4(m=7であるため)である。さらに、s=2/13である。これらの数を数6に代入することで、中間ピクセル10Cに含まれる複数のマイクロ三角形MTの面積Cは、図3に示すC=0.692と算出される。C=0.692を数7に代入することで、中間ピクセル10Cに含まれる複数のマイクロ三角形MTの面積Cのバイトデータ値BCは、図3に示すBC=176と算出される。
中間ピクセル10Cの隣であって第2の頂点P4(sbx,y+1)を含むピクセル10D(最終ピクセルとも称する)に含まれる複数のマイクロ三角形MTの面積Cは、最終ピクセル10DのY方向に12(=m+1)番目から13(=n)番目までの、複数のマイクロ三角形MTの面積Cである。従って、n=13、δ=2(m=11であるため)である。さらに、s=2/13である。これらの数を数6に代入することで、最終ピクセル10Dに含まれる複数のマイクロ三角形MTの面積Cは、図3に示すC=0.462と算出される。C=0.462を数7に代入することで、最終ピクセル10Dに含まれる複数のマイクロ三角形MTの面積Cのバイトデータ値BCは、図3に示すBC=117と算出される。
6.実装例
上で説明した実装例の、画像処理装置20への実装例を説明する。
実装例において、a=bとする。初期ピクセル10Aに含まれる複数のマイクロ三角形MTの面積C(カバー値)は、数11により算出される。数11において、n=a-(sbx mod a)であり、n=δである。
Figure 0007119682000011
初期ピクセル10A及び最終ピクセル10Dを除くピクセル10B、10Cは、常に、δ=aである。従って、初期ピクセル10A及び最終ピクセル10Dを除くピクセル10B、10Cに含まれる複数のマイクロ三角形MTの面積C(カバー値)は、数12により算出される。
Figure 0007119682000012
n+aとnカバー値の差分、即ち、カバー値変化量Δは、数13により算出される。
Figure 0007119682000013
このため、初期ピクセル10A及び最終ピクセル10Dを除くピクセル10B、10Cに含まれる複数のマイクロ三角形MTの面積C(カバー値)は、数14の加算処理として随時算出される。
Figure 0007119682000014
aを2のべき乗(4,8,16・・・)にすると共に、固定小数点演算で実装する。これにより、数15及び数16に示すように、a倍は、logaのシフト演算に置換される。これにより、演算処理が高速化される。
Figure 0007119682000015
Figure 0007119682000016
7.コード例及び動作フロー
次に、実装例として、画像処理装置20が画像処理プログラムを実行することで、上で説明した実装例(加算処理)を実現する場合を説明する。
画像処理装置20の制御回路200のCPU21は、ROM22が記録する画像処理プログラムをRAM23にロードして実行することにより、以下に説明する方法で、ピクセルをカバーする画像の面積を算出する。
図4は、一実装例として、固定小数点実装のコード例を示す。図5は、画像処理装置が図4に示すコードを実行するときの動作フローを示す。図6乃至図17は、画像処理装置の動作を模式的に説明する。
制御回路200は、第1の点P1(x,y)及び第2の点P2(x,y+1)(図6)をサブピクセル空間の整数座標に変換する。具体的には、制御回路200は、第1の点P1(x,y)を含む第1のサブピクセル101の下辺16に位置する第1の頂点P3(sbx,y)を選択する(図7)。制御回路200は、第2の点P2(x,y+1)を含む第2のサブピクセル102の上辺17に位置する第2の頂点P4(sbx,y+1)を選択する(図7)。制御回路200は、描画すべき画像を含み第1の頂点P3から第2の頂点P4までの線分を斜辺としピクセル群1の下辺16又は上辺17(本例では下辺16)を隣辺とする直角三角形Tを生成する(ステップS101)。
制御回路200は、第1の点P1(x,y)を含むピクセル10から第2の点P2(x,y+1)を含むピクセル10までのピクセル10の数(Run長とも称する)(図8)を算出する(ステップS102)。制御回路200は、Run長=1か否かを判断する(ステップS103)。
制御回路200は、Run長=1(即ち、ピクセル群1に含まれるピクセル10は1つ)と判断すると(ステップS103、Yes)、マイクロ三角形を用いた演算は行わず、台形(図9)の面積を算出する(ステップS104)。
一方、制御回路200は、Run長=1でない(即ち、ピクセル群1に含まれるピクセル10は複数)と判断すると(ステップS103、No)、マイクロ三角形MT(図10)の面積を算出する(ステップS105)。
制御回路200は、第1の頂点P3(sbx,y)を含む初期ピクセル10Aに含まれる複数のマイクロ三角形MT(図11)の数を算出する(ステップS106)。制御回路200は、マイクロ三角形MTの面積(ステップS105)と、初期ピクセル10Aに含まれる複数のマイクロ三角形MTの数(ステップS106)とに基づき、初期ピクセル10Aのカバー値C(図12)を数11に基づき算出する(ステップS107)。
制御回路200は、初期ピクセル10Aの隣の中間ピクセル10Bのカバー値Cと、中間ピクセル10Bの隣の中間ピクセル10Cのカバー値Cとを、数12に基づき算出する。制御回路200は、中間ピクセル10Bのカバー値Cと、中間ピクセル10Cのカバー値Cとの差分、即ち、カバー値変化量Δ(図13)を、数13に基づき算出する(ステップS108)。
ところで、初期ピクセル10Aのカバー値Cにカバー値変化量Δを加算して、初期ピクセル10Aの隣の中間ピクセル10Bのカバー値Cを算出すると仮定する。しかしながら、初期ピクセル10Aのカバー値Cにカバー値変化量Δを加算すると、実際は、隣の中間ピクセル10Bのカバー値Cより大きい値となる(図14)。このため、制御回路200は、初期ピクセル10Aの隣の中間ピクセル10Bのカバー値Cを正確に算出するため、初期ピクセル10Aのカバー値Cを補正する(ステップS109)。論理的には、初期ピクセル10Aのカバー値Cを、「初期ピクセル10Aのカバー値C-(初期ピクセル10Aのカバー値C+カバー値変化量Δ-中間ピクセル10Bのカバー値C)」で補正する。実装的には、初期ピクセル10Aのカバー値Cを、「初期ピクセル10Aのカバー値C-(1つのピクセルに含まれるX方向のサブピクセル数-m)×マイクロ三角形MTの面積」で補正する。ここで「(1つのピクセルに含まれるX方向のサブピクセル数-m)」は、中間ピクセル10Bのカバー値Cより大きい部分(図14)に含まれるマイクロ三角形MTの数である。
制御回路200は、初期ピクセル10A及び最終ピクセル10Dを除く中間ピクセル10B、10Cについて(ステップS110、No)、一つ前のピクセル10のカバー値Cにカバー値変化量Δを加算して(ステップS111)、当ピクセル10のカバー値C(図15)を算出する(ステップS112)。
ところで、中間ピクセル10Cのカバー値Cにカバー値変化量Δを加算して、中間ピクセル10Cの隣の最終ピクセル10Dのカバー値Cを算出する(ステップS113)。しかしながら、中間ピクセル10Cのカバー値Cにカバー値変化量Δを加算(図16)すると、実際は、最終ピクセル10Dのカバー値Cより大きい値となる(図17)。このため、制御回路200は、中間ピクセル10Cの隣の最終ピクセル10Dのカバー値Cを正確に算出するため、最終ピクセル10Dのカバー値Cを補正して(ステップS114)、最終ピクセル10Dのカバー値Cを算出する(ステップS115)。実装的には、最終ピクセル10Dのカバー値Cを、「最終ピクセル10Dのカバー値C-(1つのピクセルに含まれるX方向のサブピクセル数-n)×マイクロ三角形MTの面積」で補正する。ここで「(1つのピクセルに含まれるX方向のサブピクセル数-m)」は、最終ピクセル10Dのカバー値Cより大きい部分(図17)に含まれるマイクロ三角形MTの数である。
8.結語
典型的に、スキャンラインコンバージョンのアンチエイリアシングでは、サブピクセル化した仮想空間上でマルチスキャンして平均化することにより面積近似を行う。一方、近似面積を実際の面積に近づけるように演算の精度を上げるためには、サブピクセルの分割数を増やす必要がある。ところが、サブピクセルの分割数を増やすと、スキャンする回数が増え、さらに、平均値の算出にも負荷がかかる。このため、演算を精度を上げると、却って、パフォーマンスが低下する。
ピクセルのカバー値を算出する方法としては、初期ピクセルのカバー値(面積)から、次のピクセルのカバー値(面積)を算出のための変化量を逐次加算する技術が考え得る。しかしながら、変化量を逐次加算する方法では、累積誤差の発生を防ぐ必要がある。累積誤差の発生を防ぐためには、高精度の有効桁数が必要となる。このため、ハードウェアの実装が必要となる。
これに対して、本実施形態によれば、ラウンディングで得られた第1の頂点P3から第2の頂点P4までの線分を斜辺とする直角三角形Tを生成し、1つのサブピクセル100に含まれる、直角三角形Tと相似である第1のマイクロ三角形MT1の面積を算出し、複数のピクセル10の直角三角形Tがカバーする領域に含まれる、それぞれ第1のマイクロ三角形MT1と合同な複数のマイクロ三角形MTの数を算出し、複数のマイクロ三角形MTの数と、第1のマイクロ三角形MT1の面積cとに基づき、各ピクセル10の直角三角形Tがカバーする領域の面積Cを算出する。
これにより、複数のピクセル10に含まれる複数のマイクロ三角形MTの数と、第1のマイクロ三角形MT1の面積cさえ解れば、各ピクセル10の面積Cを算出できる。このため、演算の高速化が図れる。さらに、サブピクセルの分割数を増やしても、同じ算出方法で算出できるため、演算速度の低下を防止できる。また、ソフトウェアによる実装も可能である。
制御回路200は、初項=1、公差=2及び項数=直角三角形Tの第1の隣辺を構成する複数のサブピクセル100の数、である等差数列に基づき、複数のマイクロ三角形MTの直交方向の数を算出できる。
これにより、マイクロ三角形MTの数を容易に算出できる。
実装例では、制御回路200は、隣り合う2つの中間ピクセル10B、10Cの直角三角形Tがカバーする領域の面積C(カバー値)の変化量Δと、初期ピクセル10Aの直角三角形Tがカバーする領域の面積C(カバー値)とで加算した値を、各中間ピクセル10B、10Cの直角三角形Tがカバーする領域の面積C(カバー値)とする。
これにより、中間ピクセル10B、10Cの直角三角形Tがカバーする領域の面積C(カバー値)を容易に算出できる。
本技術の各実施形態及び各変形例について上に説明したが、本技術は上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
1 ピクセル群
10(10A、10B、10C、10D) ピクセル
16 下辺
17 上辺
20 画像処理装置
100 サブピクセル
101 第1のサブピクセル
102 第2のサブピクセル
200 制御回路
L エッジ線
L1 線分
MT マイクロ三角形
P3 第1の頂点
P4 第2の頂点
T 直角三角形

Claims (5)

  1. スキャンライン方向に一列に連続する複数の長方形のピクセルを含むピクセル群であって、各前記複数のピクセルは前記スキャンライン方向及び前記スキャンライン方向に直交する方向である直交方向にマトリックス状に配置された複数の長方形のサブピクセルに分割され、前記ピクセル群の下辺及び上辺は前記スキャンライン方向に平行である前記ピクセル群の前記下辺と前記エッジ線とが交差する点である第1の点を検出し、
    前記ピクセル群の前記上辺と描画すべき画像のエッジを示す線であるエッジ線とが交差する点である第2の点を検出し、
    前記複数のサブピクセルのうち、前記第1の点を含むサブピクセルである第1のサブピクセルの下辺に位置する2つの頂点の1つである第1の頂点を選択し、
    前記複数のサブピクセルのうち、前記第2の点を含むサブピクセルである第2のサブピクセルの上辺に位置する2つの頂点の1つである第2の頂点を選択し、
    前記画像を含み前記第1の頂点から前記第2の頂点までの線分を斜辺とし前記ピクセル群の前記上辺又は前記下辺を第1の隣辺とする直角三角形を生成し、
    前記第1のサブピクセル又は前記第2のサブピクセルに含まれる、前記画像を含み前記線分を斜辺とし前記直角三角形の前記第1の隣辺を隣辺とし前記第1のサブピクセル又は前記第2のサブピクセルの一辺を他の隣辺とし前記直角三角形と相似である第1のマイクロ三角形の面積を算出し、
    各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる、それぞれ前記第1のマイクロ三角形と合同な複数のマイクロ三角形の数を算出し、
    前記複数のマイクロ三角形の数と、前記第1のマイクロ三角形の前記面積とに基づき、各前記複数のピクセルの前記直角三角形がカバーする前記領域の面積を算出する
    制御回路
    を具備する画像処理装置。
  2. 請求項1に記載の画像処理装置であって、
    前記制御回路は、
    初項=1、公差=2及び項数=前記直角三角形の前記第1の隣辺を構成する前記複数のサブピクセルの数、である等差数列に基づき、複数の前記マイクロ三角形の前記直交方向の数を算出し、
    前記複数のマイクロ三角形の前記直交方向の前記数に基づき、各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる前記マイクロ三角形の前記数を算出し、
    算出した前記マイクロ三角形の前記数と、前記第1のマイクロ三角形の前記面積とを乗算した値を、各前記複数のピクセルの前記直角三角形がカバーする前記領域の前記面積とする
    画像処理装置。
  3. 請求項1又は2に記載の画像処理装置であって
    前記ピクセル群は、前記第1のマイクロ三角形を含むピクセルである初期ピクセルと、前記直角三角形の前記初期ピクセルと逆側の端のピクセルである最終ピクセルと、前記初期ピクセル及び前記最終ピクセルを除く複数の中間ピクセルとを含み、
    前記制御回路は、
    隣り合う2つの中間ピクセルの前記直角三角形がカバーする前記領域の面積の変化量と、前記初期ピクセルの前記直角三角形がカバーする前記領域の面積とで加算した値を、各前記複数の中間ピクセルの前記直角三角形がカバーする前記領域の面積とする
    画像処理装置。
  4. 請求項1乃至3の何れか一項に記載の画像処理装置であって、
    前記制御回路は、
    前記第1のサブピクセルの前記下辺に位置する前記2つの頂点のうち、前記第1の点との距離が小さい方の頂点を、前記第1の頂点として選択し、
    前記第2のサブピクセルの前記上辺に位置する前記2つの頂点のうち、前記第2の点との距離が小さい方の頂点を、前記第2の頂点として選択する
    画像処理装置。
  5. 画像処理装置の制御回路を、
    スキャンライン方向に一列に連続する複数の長方形のピクセルを含むピクセル群であって、各前記複数のピクセルは前記スキャンライン方向及び前記スキャンライン方向に直交する方向である直交方向にマトリックス状に配置された複数の長方形のサブピクセルに分割され、前記ピクセル群の下辺及び上辺は前記スキャンライン方向に平行である前記ピクセル群の前記下辺と前記エッジ線とが交差する点である第1の点を検出し、
    前記ピクセル群の前記上辺と描画すべき画像のエッジを示す線であるエッジ線とが交差する点である第2の点を検出し、
    前記複数のサブピクセルのうち、前記第1の点を含むサブピクセルである第1のサブピクセルの下辺に位置する2つの頂点の1つである第1の頂点を選択し、
    前記複数のサブピクセルのうち、前記第2の点を含むサブピクセルである第2のサブピクセルの上辺に位置する2つの頂点の1つである第2の頂点を選択し、
    前記画像を含み前記第1の頂点から前記第2の頂点までの線分を斜辺とし前記ピクセル群の前記上辺又は前記下辺を第1の隣辺とする直角三角形を生成し、
    前記第1のサブピクセル又は前記第2のサブピクセルに含まれる、前記画像を含み前記線分を斜辺とし前記直角三角形の前記第1の隣辺を隣辺とし前記第1のサブピクセル又は前記第2のサブピクセルの一辺を他の隣辺とし前記直角三角形と相似である第1のマイクロ三角形の面積を算出し、
    各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる、それぞれ前記第1のマイクロ三角形と合同な複数のマイクロ三角形の数を算出し、
    前記複数のマイクロ三角形の数と、前記第1のマイクロ三角形の前記面積とに基づき、各前記複数のピクセルの前記直角三角形がカバーする前記領域の面積を算出する
    よう動作させる画像処理プログラム。
JP2018134083A 2018-07-17 2018-07-17 画像処理装置及び画像処理プログラム Active JP7119682B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018134083A JP7119682B2 (ja) 2018-07-17 2018-07-17 画像処理装置及び画像処理プログラム
US16/512,476 US10891767B2 (en) 2018-07-17 2019-07-16 Image processing apparatus and non-transitory computer readable recording medium for triangle-based pixel area calculations to perform anti-aliasing on edges in scan line conversions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018134083A JP7119682B2 (ja) 2018-07-17 2018-07-17 画像処理装置及び画像処理プログラム

Publications (2)

Publication Number Publication Date
JP2020013250A JP2020013250A (ja) 2020-01-23
JP7119682B2 true JP7119682B2 (ja) 2022-08-17

Family

ID=69163188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018134083A Active JP7119682B2 (ja) 2018-07-17 2018-07-17 画像処理装置及び画像処理プログラム

Country Status (2)

Country Link
US (1) US10891767B2 (ja)
JP (1) JP7119682B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6577307B1 (en) 1999-09-20 2003-06-10 Silicon Integrated Systems Corp. Anti-aliasing for three-dimensional image without sorting polygons in depth order
US6982723B1 (en) 1998-08-30 2006-01-03 Gmd-Forschungszentrum Informationstechnik Gmbh Method and apparatus for eliminating unwanted steps at edges in graphic representations in the line raster
JP4001872B2 (ja) 2004-02-23 2007-10-31 日本電信電話株式会社 ローマ字カナ変換装置、その方法及びそのプログラム
JP4057175B2 (ja) 1998-12-10 2008-03-05 古河電気工業株式会社 自動調芯接続装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH041872A (ja) * 1990-04-19 1992-01-07 Ricoh Co Ltd 図形処理装置
JPH0457175A (ja) * 1990-06-27 1992-02-24 Ricoh Co Ltd 図形処理装置
JPH10228537A (ja) * 1997-02-13 1998-08-25 Matsushita Electric Ind Co Ltd 画素面積計算装置
US6606093B1 (en) * 1998-05-19 2003-08-12 Microsoft Corporation Method and apparatus for antialiasing by gamma corrected area calculation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6982723B1 (en) 1998-08-30 2006-01-03 Gmd-Forschungszentrum Informationstechnik Gmbh Method and apparatus for eliminating unwanted steps at edges in graphic representations in the line raster
JP4057175B2 (ja) 1998-12-10 2008-03-05 古河電気工業株式会社 自動調芯接続装置
US6577307B1 (en) 1999-09-20 2003-06-10 Silicon Integrated Systems Corp. Anti-aliasing for three-dimensional image without sorting polygons in depth order
JP4001872B2 (ja) 2004-02-23 2007-10-31 日本電信電話株式会社 ローマ字カナ変換装置、その方法及びそのプログラム

Also Published As

Publication number Publication date
JP2020013250A (ja) 2020-01-23
US20200027255A1 (en) 2020-01-23
US10891767B2 (en) 2021-01-12

Similar Documents

Publication Publication Date Title
CA2743039C (en) Bezier curve drawing device, bezier curve drawing method, and recording medium
US6606093B1 (en) Method and apparatus for antialiasing by gamma corrected area calculation
JP4002871B2 (ja) デルタ構造ディスプレイでのカラー映像の表現方法及びその装置
US7006096B2 (en) Character display apparatus, character display method, and recording medium
KR20030074419A (ko) 픽셀 서브콤포넌트 지향형 화상의 하드웨어 향상 그래픽가속화
EP0592770B1 (en) Method for filling of interior pixels within a polygon
EP1385143A2 (en) Method and apparatus for improved transform functions for non gamma corrected graphics systems
US20070097145A1 (en) Method and system for supersampling rasterization of image data
JP4801088B2 (ja) 画素サンプリングの方法及び装置
JP7119682B2 (ja) 画像処理装置及び画像処理プログラム
JP5777726B2 (ja) 描画装置及び描画プログラム
US20160314615A1 (en) Graphic processing device and method for processing graphic images
US9217949B2 (en) Image variable magnification device and image variable magnification method
JP4698709B2 (ja) データ作成装置、データ作成方法、データ作成用プログラム、描画装置、描画方法、描画用プログラム、および、コンピュータ読取可能な記録媒体
JP4772604B2 (ja) ベクトル図形描画装置及びそのプログラム
KR20060030887A (ko) 문자 표시 장치, 문자 표시 방법, 문자 표시 프로그램 및 가독 기록 매체
JPH0756673B2 (ja) 分割空間フイルタによる画像処理方法
US9754162B2 (en) Image processing method and device for adaptive image enhancement
US10970817B2 (en) Image magnifying apparatus
US20130293566A1 (en) Method and apparatus for rasterization
US20090066699A1 (en) Vector image drawing circuit and method for vector image drawing
CN117252894A (zh) 曲线边缘渐变的处理方法及相关方法和装置
KR100657102B1 (ko) 휴대 단말기에서 도형의 계단 현상 제거 방법
CN115834854A (zh) 一种图像转换方法、装置及存储介质
CN117173048A (zh) 曲线边缘渐变的处理方法及相关方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210629

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220627

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220718

R150 Certificate of patent or registration of utility model

Ref document number: 7119682

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150