JP2014164551A - 画像処理lsi及び画像処理プログラム - Google Patents

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

Info

Publication number
JP2014164551A
JP2014164551A JP2013035459A JP2013035459A JP2014164551A JP 2014164551 A JP2014164551 A JP 2014164551A JP 2013035459 A JP2013035459 A JP 2013035459A JP 2013035459 A JP2013035459 A JP 2013035459A JP 2014164551 A JP2014164551 A JP 2014164551A
Authority
JP
Japan
Prior art keywords
graphics
image processing
lines
work area
intermediate data
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.)
Granted
Application number
JP2013035459A
Other languages
English (en)
Other versions
JP6009371B2 (ja
Inventor
Shinichi Asano
眞一 浅野
Osamu Nakamura
理 中村
Shinji Yamano
真嗣 山野
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2013035459A priority Critical patent/JP6009371B2/ja
Priority to CN201410064823.0A priority patent/CN104008560B/zh
Priority to US14/191,171 priority patent/US9672643B2/en
Publication of JP2014164551A publication Critical patent/JP2014164551A/ja
Application granted granted Critical
Publication of JP6009371B2 publication Critical patent/JP6009371B2/ja
Priority to US15/583,652 priority patent/US10096135B2/en
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
    • 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
    • G06T11/002D [Two Dimensional] image generation
    • 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/206Drawing of charts or graphs
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/127Updating a frame memory using a transfer of data from a source area to a destination area
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use of a frame buffer in a display terminal, inclusive of the display panel

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

【課題】入力されるベクタデータに基づいて複数のラインで構成される1フレーム内に描画される図形の表示データを算出するグラフィックス演算において、中間データを格納するワーク領域が割り付けられるRAMの記憶容量を低く抑える画像処理LSI及び画像処理プログラムを提供する。
【解決手段】グラフィックス演算を実行するときに、図形が表示されるフレームを複数のライン毎に複数の描画領域に分割し、中間データを格納するためのワーク領域は、全ての描画領域に対して同じ領域が割り付けられる。それぞれの描画領域の中間データを算出するグラフィックス演算は、前記同じワーク領域を繰り返し使って、順次実行される。1つのワーク領域が、分割された描画領域それぞれについての中間データを算出するグラフィックス演算に繰り返し使われるので、ワーク領域が割り付けられるRAMの記憶容量を低く抑えることができる。
【選択図】図1

Description

本発明は、グラフィックス演算を行う画像処理LSI(Large Scale Integrated circuit)及びそれを使って動作する画像処理プログラムに関し、特にグラフィックス演算に用いるRAM(Random Access Memory)のワーク領域を限られた記憶容量に抑えるために好適に利用できるものである。
画像処理LSIによるグラフィックス描画処理は、多数の線分や単純な図形の描画データを組合せることによって、所望の画像を合成して表示デバイスに表示する。描画の素になる線分や図形は、その頂点などの特徴点の座標や曲率などのベクタデータと呼ばれるパラメータによって表現されている。グラフィックス演算では、そのフレームの画像を構成する多数の線分や図形のそれぞれについて、ベクタデータから、フレーム内の個々の画素に描画すべき描画データを算出し、全ての線分や図形についての描画データを、フレームバッファ上で組合せることによって、表示デバイスに表示される表示データをフレーム毎に算出する。表示データは、表示デバイスの1フレームを構成する各画素の、3原色ごとの輝度、或いは輝度と色差であり、フレームバッファ上に格納される。
このようなグラフィックス描画処理を行う画像処理装置は、一般に、画像処理LSIに、ベクタデータを格納するROM(Read Only Memory)とフレームバッファが割り付けられるRAMを外付けして構成される。グラフィックス演算における中間データである描画データも、外付けされたRAMに割り付けられたワーク領域に格納される。
特許文献1には、複数の演算部を用いてラスタライズ処理を実行する際にメモリ使用量の増大を抑える技術が開示されている。ページ記述言語データに基づいてバンド単位で生成された中間データをラスタライズ処理する場合に、複数のコア(演算部)を備え、各中間データを構成するバンドを複数に分割して複数の分割領域を生成し、コア毎にラスタライズ処理を行う分割領域を割り当てる。
特開2011−158951号公報
特許文献1などについて本発明者が検討した結果、以下のような新たな課題があることがわかった。
上述のように、グラフィックス演算の中間データである描画データは、グラフィックス演算に用いるRAMのワーク領域に格納される。2Dベクターグラフィックスの業界標準API(Application Program Interface)の一つであるOpenVGの仕様を満たすための主な手段では、中間データは、各ラインにおける線分や図形の全てのエッジの座標を含んで構成される。中間データは、1フレーム内の複数の線分または図形ごとに、ワーク領域に格納される。1つの線分または図形の1フレーム分の中間データは、1ライン当たりのエッジ数の最大値で決められる1ライン当たりのデータ容量に、1フレームのライン数を乗じた記憶容量を持つ。OpenVGの仕様を満たすための主な手段では、1ライン当たりのサイズは、下に示す式1によって算出される。さらに、例えばアンチエイリアス処理を追加する場合の1フレーム当たりのワーク領域に必要な記憶容量は、式2によって算出される。
Figure 2014164551
Figure 2014164551
ここで、垂直ライン数とは、1フレームを構成するラインの数である。
表示する画像のサイズが、480×800のワイドVGAである場合、例えば最大エッジ数が68と仮定すると、1ライン当たりのサイズは144Byteである。ここで、RAMの構成から64Byte単位で割り付けられるとすると、1ライン当たりのサイズは192Byteとなる。ワイドVGAの垂直ライン数は480本であるから、ワーク領域に必要な記憶容量は368,640Byte(360KByte)となる。このワーク領域に必要な記憶容量は、表示する画像の高精細化に伴って増加する。
360KByte程度の記憶容量は、外付けRAMにとっては大きな問題にはならないが、このRAMを画像処理LSIと同一のオンチップに集積する場合に隘路となる。
特許文献1に記載される技術は、ラスタライズ処理におけるメモリ使用量の増加防止である。ラスタライズ処理とは、上記グラフィックス演算における中間データである描画データに基づいて、フレームバッファ上の画素の表示データを算出する処理である。このとき、複数のコア(演算部)を使って並列処理するために、1フレーム内を複数のラインで構成されるバンドに分割する。中間データがライン毎に算出されているので、フレームバッファ上の画素の表示データを、それに対応するライン毎に算出する。中間データ自体は、1フレーム全体で1つのワーク領域内に保持される。中間データを生成するためのベクタデータは、図形の特徴点の座標などであるから、中間データは1フレーム全体を一括して割り付けられたワーク領域に格納されるのが便宜である。図形の特徴点の座標はフレーム内で任意であるから、中間データが算出される順序は、中間データを算出するハードウェアまたはソフトウェアの実装方式、アルゴリズムに依存して変化するからである。
したがって、グラフィックス演算における中間データを格納する、ワーク領域の記憶容量を減らすことは容易ではない。
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
一実施の形態によれば、下記の通りである。
すなわち、入力されるベクタデータに基づいて複数のラインで構成される1フレーム内に描画される図形の表示データを算出するグラフィックス演算を実行するときに、図形が表示されるフレームを複数のライン毎に複数の描画領域に分割し、中間データを格納するためのワーク領域は、全ての描画領域に対して同じ領域が割り付けられる。それぞれの描画領域の中間データを算出するグラフィックス演算は、前記同じワーク領域を繰り返し使って、順次実行される。
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、1つのワーク領域が、分割された描画領域それぞれについての中間データを算出するグラフィックス演算に繰り返し使われるので、ワーク領域が割り付けられるRAMの記憶容量を低く抑えることができる。
図1は、一実施の形態に係る画像処理LSI及びそれを用いた画像処理装置の構成例を表すブロック図である。 図2は、線分を描画する動作を表す説明図である。 図3は、図2の一部拡大図である。 図4は、矩形を描画する動作を表す説明図である。 図5は、図4の一部拡大図である。 図6は、一実施の形態に係る画像処理プログラムの動作例を表すフローチャートである。 図7は、図6におけるワーク領域の変更例を表す説明図である。
1.実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕<画像処理LSI; 描画領域を分割し、同じワーク領域を再利用>
入力されるベクタデータ(12)に基づいて複数のラインで構成される1フレーム(20)内に描画される図形(22、23)の表示データを算出するグラフィックス演算を実行可能な画像処理LSI(1)であって、以下のように構成される。
前記グラフィックス演算を実行可能なグラフィックス演算部(2)と、前記グラフィックス演算の中間データを格納するためのワーク領域(13)を含み前記グラフィックス演算部からアクセス可能な記憶部(例えばRAM)(5)とを備える。
前記グラフィックス演算部は、前記図形が表示されるフレームを複数のライン毎の複数の描画領域(21)に分割し、前記複数の描画領域に含まれるそれぞれの描画領域の前記グラフィックス演算を順次実行する。
前記グラフィックス演算部は、前記複数の描画領域に含まれるそれぞれの描画領域の前記グラフィックス演算について、前記中間データを格納するために、全ての描画領域について、前記記憶部の同じワーク領域(13)を割り付ける。
これにより、記憶部におけるワーク領域に必要な記憶容量を、少なく抑えることができる。
〔2〕<ワーク領域のサイズに基づいて描画領域の分割サイズを規定>
項1において、前記グラフィックス演算部は、前記ワーク領域に割り付けられる所定の記憶容量に基づいて、前記描画領域を構成するラインの数を算出する。
これにより、画像処理LSIにオンチップ形成された記憶容量の限られた記憶部に、ワーク領域を割り付けることができる。
〔3〕<2Dベクターグラフィックス>
項1において、前記1フレームは複数の画素からなる複数のラインで構成され、前記中間データは、前記図形のライン毎の全てのエッジの位置を表す画素の座標データを含んで構成され、前記ワーク領域は、複数ラインの中間データを格納可能に構成される。
前記グラフィックス演算部は、前記記憶部内に前記ワーク領域として、ライン毎の前記エッジの数のうち前記1フレーム内の最大値と、記憶するラインの数の積に基づいて規定される記憶容量を割り付ける。
これにより、例えばOpenVGに準拠する2Dベクターグラフィックスにおけるワーク領域の記憶容量を正確に算出することができる。
〔4〕<2Dベクターグラフィックスにおける描画領域の分割サイズ>
項3において、前記グラフィックス演算部は、前記ワーク領域に割り付けられる所定の記憶容量に基づいて、前記描画領域を構成するラインの数を算出する(ステップ34)。
これにより、例えばOpenVGに準拠する2Dベクターグラフィックスにおいても、画像処理LSIにオンチップ形成された記憶容量の限られた記憶部に、ワーク領域を割り付けることができる。
〔5〕<グラフィックスエンジン+CPU(Central Processing Unit)>
項1乃至項4のいずれか1項において、前記グラフィックス演算部は、前記ベクタデータが入力され前記中間データを出力可能なグラフィックスエンジン(4)と、前記グラフィックスエンジンを制御可能なCPU(3)とを含んで構成される。
これにより、グラフィックス演算を高速に処理することができる。
〔6〕<画像処理プログラム; 描画領域を分割し、同じワーク領域を再利用>
グラフィックスエンジン(4)とCPU(3)と記憶部(例えばRAM)(5)を用いて、入力されるベクタデータ(12)に基づいて複数のラインで構成される1フレーム(20)内に描画される図形(22、23)の表示データを算出するグラフィックス演算を実行可能な画像処理プログラム(30)であって、以下のように構成される。
前記CPUで実行されることにより、前記記憶部に前記グラフィックス演算の中間データを格納するためのワーク領域(13)を割り付け、前記図形が表示されるフレームを複数のライン毎の複数の描画領域(21)に分割する。前記グラフィックスエンジンに前記ベクタデータを入力して前記複数の描画領域に含まれるそれぞれの描画領域の前記グラフィックス演算を順次実行させ、それぞれ描画領域についての前記グラフィックス演算によって出力される前記中間データを、全ての描画領域について同じ前記ワーク領域に格納する。
これにより、記憶部におけるワーク領域に必要な記憶容量を、少なく抑えることができる。
〔7〕<ワーク領域のサイズに基づいて描画領域の分割サイズを規定>
項6において、前記ワーク領域に割り付けられる所定の記憶容量に基づいて、前記描画領域を構成するラインの数を、前記CPUに算出させる(ステップ34)。
これにより、画像処理LSIにオンチップ形成された記憶容量の限られた記憶部にも、ワーク領域を割り付けることができる。
〔8〕<2Dベクターグラフィックス>
項6において、前記1フレームは複数の画素からなる複数のラインで構成され、前記中間データは、前記図形のライン毎の全てのエッジの位置を表す画素の座標データを含んで構成される。
前記ワーク領域は、複数ラインの中間データを格納可能であり、前記画像処理プログラムは、前記記憶部内に前記ワーク領域として、ライン毎の前記エッジの数のうち前記1フレーム内の最大値と、記憶するラインの数の積に基づいて規定される記憶容量を、前記CPUに割り付けさせる。
これにより、例えばOpenVGに準拠する2Dベクターグラフィックスにおけるワーク領域の記憶容量を正確に算出することができる。
〔9〕<2Dベクターグラフィックスにおける描画領域の分割サイズ>
項8において、前記ワーク領域に割り付けられる所定の記憶容量に基づいて、前記描画領域を構成するラインの数を、前記CPUに算出させる(ステップ34)。
これにより、例えばOpenVGに準拠する2Dベクターグラフィックスにおいても、画像処理LSIにオンチップ形成された記憶容量の限られた記憶部に、ワーク領域を割り付けることができる。
〔10〕<分割描画領域の高さ(ライン数)の算出>
項9において、前記画像処理プログラムは、前記図形のライン毎の前記エッジの数を算出する第1ステップ(ステップ32)と、前記第1ステップで算出したライン毎の前記エッジの数から、ライン当たりの最大エッジ数を求める第2ステップ(ステップ33)と、前記最大エッジ数に基づいて前記描画領域のライン数を算出する第3ステップ(ステップ34)を含む。
これにより、所定の記憶容量のワーク領域に適する分割描画領域の高さを、ライン数で算出することができる。
〔11〕<分割描画領域の高さの初期化と変更>
項9において、前記画像処理プログラムは、前記描画領域のライン数とライン毎のエッジの数とを仮決めする第4ステップ(ステップ31)と、前記図形のライン毎の前記エッジの数を算出する第1ステップ(ステップ32)と、前記第1ステップで算出したライン毎の前記エッジの数から、ライン当たりの最大エッジ数を求める第2ステップ(ステップ33)とを含む。前記画像処理プログラムは、さらに、前記最大エッジ数に基づいて前記仮決めした、前記描画領域のライン数を変更する第5ステップ(ステップ36)を含む。
これにより、所定の記憶容量のワーク領域に適する分割描画領域の高さ(ライン数)を、描画対象の図形ごとに、適切に調整することができる。
〔12〕<外接矩形の範囲内でエッジ数を算出>
項10または項11において、前記画像処理プログラムは、前記第3ステップの後、全ての前記描画領域のそれぞれについて、前記中間データを算出して前記ワーク領域に格納する第6ステップ(ステップ37)をさらに含み、前記第6ステップは、前記図形の外接矩形(24)の範囲内のみについて実行される。
これにより、画像処理の演算時間を短縮することができる。
2.実施の形態の詳細
実施の形態について更に詳述する。
〔実施形態1〕<画像処理LSI>
図1は、一実施の形態に係る画像処理LSI及びそれを用いた画像処理装置の構成例を表すブロック図である。
本実施形態1に係る画像処理LSI1は、入力されるベクタデータ12に基づいて複数のラインで構成される1フレーム内に描画される図形の表示データを算出するグラフィックス演算を実行可能に構成される。例えば、表示デバイス10と、外部バス11を介して、ベクタデータ12などが格納される不揮発メモリ(ROM)9が、それぞれ接続される。ROM9は、例えばフラッシュメモリ(登録商標)であってもよい。また、ROM9には、画像処理LSI1を動作させるためのプログラムがさらに格納されてもよい。画像処理LSI1は、グラフィックス演算部2と、例えばRAMなどの記憶部5と、システムインターフェース7とビデオインターフェース8が互いにバス6を介して接続されている。RAM5には、ワーク領域13とフレームバッファ14が割り付けられている。ビデオインターフェース8は、外部の表示デバイス10と接続するためのインターフェース回路である。グラフィックス演算部2は、入力されるベクタデータ12に基づいてグラフィックス演算を実行し、中間データをRAM5に割り付けられたワーク領域13に格納する。
グラフィックス演算部2は、ベクタデータ12で描画される図形が表示されるフレームを、複数のライン毎の複数の描画領域に分割する。全ての分割された描画領域について、同じワーク領域13が割り付けられている。グラフィックス演算部2は、分割されたそれぞれの描画領域のグラフィックス演算を順次実行するときに、同じワーク領域13を、それぞれの描画領域の中間データを格納するために、繰り返し利用する。
これにより、RAM5におけるワーク領域13に必要な記憶容量を、少なく抑えることができる。
本実施形態1に係る画像処理LSI1の動作原理を説明する。
図2は、線分を描画する動作を表す説明図であり、図3は、図2の一部拡大図である。フレーム20に複数の線分で構成された図形22を描画する場合が例示されている。縦軸はライン番号であり、横軸は画素番号である。「発明が解決しようとする課題」で説明したのと同様に、表示する画像のサイズが、480×800のワイドVGAである場合を例示する。このとき、既に説明したように、OpenVGの仕様を満たすための主な手段では、最大エッジ数に応じて、ワーク領域に必要な記憶容量が算出される。ここで、エッジとは、描画される線分とフレームを構成するラインの交点を指す。図3に例示されるように、描画される線分は、フレームを構成するラインと交差している。ライン番号101のエッジは87であり、ライン番号102のエッジも87である。ライン番号103〜105のエッジは86であり、以下、各ラインでエッジの位置が算出される。図2に示すように、1ライン当たりのエッジの数は、図形の複雑さによって変わる。OpenVGの仕様を満たすための主な手段では、1つの図形を描画するときに、1ライン当たりのエッジ数が最大となるラインにおけるエッジ数(最大エッジ数)に合わせて、フィールド内の全てのラインの中間データを格納するワーク領域の大きさが規定される。1ライン当たりのサイズは、前述の式1で算出され、1フィールド全体のワーク領域の記憶容量は式2で算出される。
本実施形態1によれば、フレーム20を複数の描画領域21に分割する。図2には、1つの描画領域あたり20ラインとし、フレーム20を24個の描画領域21_1〜21_24に分割した例が示されている。ワーク領域13としては、20ライン分の中間データを格納する記憶領域を、RAM5内に割り付ける。「発明が解決しようとする課題」で説明した例と同じく、最大エッジ数が68と仮定すると、1ライン当たりのサイズは、同じ192Byteとなる。しかし、本実施形態1によれば、1つの描画領域あたりに必要なワーク領域が20ライン分のみで良いので、ワーク領域13に必要な記憶容量は、15,360Byte(15KByte)となり、1フレーム全体を一括して割り付ける従来の368,640Byte(360KByte)の24分の1に抑えることができる。
描画すべき図形が、線ではなく2次元的な図形であっても、同様である。
図4は、矩形を描画する動作を表す説明図であり、図5は、図4の一部拡大図である。フレーム20に複数の2次元図形で構成された図形23を描画する場合が例示されている。縦軸はライン番号であり、横軸は画素番号である。描画すべき図形が幅を持たない線の場合は、ラインとの交点をエッジとした。これに対して、描画すべき図形が2次元で、幅を持つので、例えば、各ラインにおいて、画素番号の小さい画素から順に見たとき、描画データを反転させる座標を、エッジとすればよい。ライン番号101のラインでは、画素番号84までが白、85〜89が黒、90以降が再び白であるから、画素番号85と90をエッジとして中間データとすればよい。エッジの規定の仕方は、中間データから表示データを算出する演算プロセスとの間で整合していればよい。以上のように、描画される図形が、幅を持たない線であるか、幅のある2次元図形かによって、エッジの定義は多少調整する必要があるが、ワーク領域に必要な記憶容量は、どちらの場合も同様にエッジの数に基づいて、算出することができる。
以上、フレームの描画領域への分割数から、ワーク領域13の記憶容量を算出する例を示したが、逆に、ワーク領域13に割り付けることができるRAM5内の記憶容量を予め規定しておき、その記憶容量のワーク領域13に格納することができる中間データの量を逆算して、描画領域の分割数、即ち、分割後の描画領域21のライン数を、算出することができる。
これにより、画像処理LSI1にオンチップ形成された記憶容量の限られたRAM5に、ワーク領域13を割り付けることができる。
画像処理LSI1の具体的な実施形態について、さらに詳しく説明する。
画像処理LSI1は、特に制限されないが、例えば、公知のCMOS(Complementary Metal-Oxide-Semiconductor field effect transistor)LSIの製造技術を用いて、単一シリコン基板上に形成される。
グラフィックス演算部2は、ベクタデータ12が入力され中間データを算出可能なグラフィックスエンジン4と、グラフィックスエンジン4を制御可能なCPU3とを含んで構成することができる。これにより、グラフィックス演算を高速に処理することができる。CPU3は、MPU(Micro-Processing Unit)、MCU(Micro-Controller Unit)、その他如何なる形態のプロセッサでもよい。グラフィックスエンジン4は、例えば、ベクタデータ12から中間データを算出するハードウェアアクセラレータであり、これ自体がプログラマブルなプロセッサで構成されてもよい。
画像処理LSI1は、他の機能モジュールを含んで構成されてもよい。例えば、DMA(Direct Memory Access)コントローラを備えることにより、CPUによるプログラム動作のバックグラウンドで、表示データをフレームバッファ14からビデオインターフェース8へ転送し、表示デバイス10に表示させることができる。この場合、バス6のバス権を調停するバス調停回路も合わせて備える必要がある。
ROM9は、必ずしも外付けである必要はなく、画像処理LSI1の内部のバス6に接続されるオンチップROMとして構成しても良い。この場合には、システムインターフェース7を省略することにより回路規模を低減し、外部バスに接続するための端子を省略して端子数を減らし、画像処理LSI1を実装するパッケージのサイズを小さくすることができる。
一方、外部バス11にさらにRAMを接続し、その外部RAM上に、フレームバッファを割り付け、外部RAMから直接表示デバイス10へ、表示データを転送する構成とすることもできる。表示デバイスが高精細で、オンチップRAMにフレームバッファを割り付けることが、コスト面で負担となる場合には、このような構成とすることにより、コストを低減することができる。
〔実施形態2〕<画像処理プログラム>
グラフィックスエンジン4とCPU3と記憶部(例えばRAM)5を用いて、入力されるベクタデータ12に基づいて複数のラインで構成される1フレーム20内に描画される図形22、23の表示データを算出するグラフィックス演算を実行可能な画像処理プログラム30について説明する。
画像処理プログラム30は、CPU3で実行されることにより、RAM5にグラフィックス演算の中間データを格納するためのワーク領域13を割り付け、図形22、23が表示されるフレーム20を複数のライン毎の複数の描画領域21に分割する。グラフィックスエンジン4にベクタデータ12を入力して複数の描画領域21に含まれるそれぞれの描画領域21のグラフィックス演算を順次実行させる。それぞれ描画領域についてのグラフィックス演算によって出力される中間データを、全ての描画領域について同じワーク領域13に格納する。
これにより、記憶部におけるワーク領域に必要な記憶容量を、少なく抑えることができる。
本実施形態2に係る画像処理プログラム30の動作例についてさらに詳しく説明する。
図6は、一実施の形態に係る画像処理プログラムの動作例を表すフローチャートである。
描画領域のライン数(Height)とライン毎のエッジの数とを仮決めし、そのエッジ数に対応する中間データを格納可能な、1ライン当たりの記憶容量(Stride)を決めることにより、初期状態のワーク領域13を確保する(ステップ31)。次に、描画対象図形22、23のライン毎のエッジの数を算出する(ステップ32)。これは、例えば、グラフィックスエンジン4に、描画対象図形22、23のベクタデータ12を入力して算出させることができる。その結果に基づいて、ライン当たりの最大エッジ数、即ち、1ライン当たりのエッジ数が最大となるラインにおけるエッジ数を算出する(ステップ33)。次に、算出した最大エッジ数に基づいて描画領域のライン数を算出し、ステップ31で仮決めした描画領域のライン数(Height)を変更する(ステップ34)。これにより、描画対象の図形ごとに、適切なサイズ(記憶容量)のワーク領域13を確保することができる。2Dベクターグラフィックスにおいては、多数の描画対象の図形について順次、中間データを生成し、それらを組合せて表示データを合成するので、描画対象の図形が変わる度に、ラーク領域のサイズを適切に設定することができる。適切なワークサイズを確保した後に、分割された描画領域ごとのエッジ計算行う(ステップ37)。例えば、グラフィックスエンジン4に、描画対象図形22、23のベクタデータ12を入力して算出させることができる。
ここで、ベクタデータ12は、当然のことながら、領域分割されてはいない。そのため、従来のグラフィックスエンジンをそのまま用いれば、グラフィックスエンジン4は、1フレーム全体の全ての中間データを算出する。その場合には、処理対象の描画領域についての中間データのみを、ワーク領域13に格納する。それ以外の描画領域についての中間データは、破棄される。一方、グラフィックスエンジン4を、算出すべき領域として指定された領域についてのみ中間データを算出する演算を実行可能に構成することにより、より少ない演算量、より短い演算時間で、エッジ計算(ステップ37)を実行することができる。
分割された描画領域21の全てについて、エッジ計算処理(ステップ37)が完了した否かを判定し(ステップ38)、未了の描画領域21に処理領域を変更して(ステップ39)、エッジ計算処理(ステップ37)を繰り返すことにより、1フレーム20内の全領域の処理を完了して終了する。
ステップ34においては、ワーク領域13に割り付けることができる記憶容量を予め所定の記憶容量に制限しておき、その所定の記憶容量に基づいて、分割する各描画領域21を構成するラインの数を、算出することもできる。より具体的には、ステップ33で算出したライン当たりの最大エッジ数と、ステップ31で確保した1ライン当たりの記憶容量(Stride)に格納可能なエッジ数とを比較し(ステップ35)、前者の方が大きければ、1ライン当たりの記憶容量(Stride)を拡張し、合せて描画領域のライン数(Height)を縮小する(ステップ36)。1ライン当たりの記憶容量(Stride)と描画領域のライン数(Height)の積がワーク領域13の記憶容量となるので、これを、制限された所定の記憶容量に常に等しくなるように、調整すればよい。
ワーク領域13の変更例を、図7を引用して説明する。図7は、図6におけるワーク領域の変更例を表す説明図である。例えばステップ31で、(a)に示すように、64エッジ分のストライドS0と40ライン分の高さH0によって規定される、7,680Byte(7.5KByte)の領域がワーク領域として確保されたとする。ステップ33で算出した最大エッジ数が、想定した64を超え、例えば100個であった場合は、(b)に示すように、ストライドを2倍に拡張し(Stride=S1=S0×2)、これと反比例して高さ(描画領域のライン数)を1/2に縮小する(Height=H1=H0÷2)。変更後のワーク領域のサイズも、当初のサイズと同じく7,680Byte(7.5KByte)となる。
これにより、画像処理LSI1にオンチップ形成された記憶容量の限られた記憶部(RAM)5にも、適切にワーク領域13を割り付けることができる。
図6では、分割された描画領域21の全てについて、エッジ計算処理(ステップ37)を実行する実施形態について説明したが、例えば図4に示すように描画対象の図形23が小さくフレーム内の一部の領域にしか存在しない場合には、中間データを算出してワーク領域13に格納するステップ37を、図形23の外接矩形24を含む描画領域21_2〜21_7についてのみ、実行すればよい。これにより、画像処理の演算時間を短縮することができる。外接矩形24は、描画対象図形の、横方向(画素番号方向)と縦方向(ライン番号方向)の最大と最小の座標によって規定される。グラフィックエンジン4を、入力されるベクタデータ12から外接矩形24を算出可能に構成することができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、各種のサイズの表示デバイスに接続される画像処理LSIに適用することができる。接続される表示デバイスのサイズに応じて、ワーク領域13の1ライン当たりの記憶容量(Stride)と描画領域のライン数(Height)を調整すればよい。
1 画像処理LSI
2 グラフィックス演算部
3 CPU
4 グラフィックスエンジン
5 記憶部(RAM)
6 バス
7 システムインターフェース
8 ビデオインターフェース
9 不揮発性メモリ(ROM)
10 表示デバイス
11 外部バス
12 ベクタデータ
13 ワーク領域
14 フレームバッファ
20 フレーム
21 分割された描画領域
22 描画される線分
23 描画される図形
24 外接矩形
30 画像処理プログラム
31 ワーク領域を仮決めするステップ
32 描画対象図形のライン毎のエッジ数を算出するステップ
33 ライン当たりの最大エッジ数を算出するステップ
34 最大エッジ数に基づいて描画領域のライン数を算出するステップ
35 ライン当たりの最大エッジ数を評価するステップ
36 ワーク領域を変更するステップ
37 エッジ計算を行うステップ
38 未処理の描画領域の有無を判定するステップ
39 処理対象の描画領域を変更するステップ

Claims (12)

  1. 入力されるベクタデータに基づいて複数のラインで構成される1フレーム内に描画される図形の表示データを算出するグラフィックス演算を実行可能な画像処理LSIであって、
    前記グラフィックス演算を実行可能なグラフィックス演算部と、前記グラフィックス演算の中間データを格納するためのワーク領域を含み前記グラフィックス演算部からアクセス可能な記憶部とを備え、
    前記グラフィックス演算部は、前記図形が表示されるフレームを複数のライン毎の複数の描画領域に分割し、前記複数の描画領域に含まれるそれぞれの描画領域の前記グラフィックス演算を順次実行可能に構成され、
    前記グラフィックス演算部は、前記複数の描画領域に含まれるそれぞれの描画領域の前記グラフィックス演算について、前記中間データを格納するために、全ての描画領域について、前記記憶部の同じワーク領域を割り付け可能に構成される、画像処理LSI。
  2. 請求項1において、前記グラフィックス演算部は、前記ワーク領域に割り付けられる所定の記憶容量に基づいて、前記描画領域を構成するラインの数を算出可能に構成される、画像処理LSI。
  3. 請求項1において、前記1フレームは複数の画素からなる複数のラインで構成され、
    前記中間データは、前記図形のライン毎の全てのエッジの位置を表す画素の座標データを含んで構成され、
    前記ワーク領域は、複数ラインの中間データを格納可能であり、
    前記グラフィックス演算部は、前記記憶部内に前記ワーク領域として、ライン毎の前記エッジの数のうち前記1フレーム内の最大値と、記憶するラインの数の積に基づいて規定される記憶容量を割り付け可能に構成される、画像処理LSI。
  4. 請求項3において、前記グラフィックス演算部は、前記ワーク領域に割り付けられる所定の記憶容量に基づいて、前記描画領域を構成するラインの数を算出可能に構成される、画像処理LSI。
  5. 請求項1において、前記グラフィックス演算部は、前記ベクタデータが入力され前記中間データを出力可能なグラフィックスエンジンと、前記グラフィックスエンジンを制御可能なCPUとを含んで構成される、画像処理LSI。
  6. グラフィックスエンジンとCPUと記憶部を用いて、入力されるベクタデータに基づいて複数のラインで構成される1フレーム内に描画される図形の表示データを算出するグラフィックス演算を実行可能な画像処理プログラムであって、
    前記CPUで実行されることにより、前記記憶部に前記グラフィックス演算の中間データを格納するためのワーク領域を割り付け、前記図形が表示されるフレームを複数のライン毎の複数の描画領域に分割し、前記グラフィックスエンジンに前記ベクタデータを入力して前記複数の描画領域に含まれるそれぞれの描画領域の前記グラフィックス演算を順次実行させ、それぞれ描画領域についての前記グラフィックス演算によって出力される前記中間データを、全ての描画領域について同じ前記ワーク領域に格納する、画像処理プログラム。
  7. 請求項6において、前記ワーク領域に割り付けられる所定の記憶容量に基づいて、前記描画領域を構成するラインの数を、前記CPUに算出させる、画像処理プログラム。
  8. 請求項6において、前記1フレームは複数の画素からなる複数のラインで構成され、
    前記中間データは、前記図形のライン毎の全てのエッジの位置を表す画素の座標データを含んで構成され、
    前記ワーク領域は、複数ラインの中間データを格納可能であり、
    前記記憶部内に前記ワーク領域として、ライン毎の前記エッジの数のうち前記1フレーム内の最大値と、記憶するラインの数の積に基づいて規定される記憶容量を、前記CPUに割り付けさせる、画像処理プログラム。
  9. 請求項8において、前記ワーク領域に割り付けられる所定の記憶容量に基づいて、前記描画領域を構成するラインの数を、前記CPUに算出させる、画像処理プログラム。
  10. 請求項9において、前記図形のライン毎の前記エッジの数を算出する第1ステップと、前記第1ステップで算出したライン毎の前記エッジの数から、ライン当たりの最大エッジ数を求める第2ステップと、前記最大エッジ数に基づいて前記描画領域のライン数を算出する第3ステップを含む、画像処理プログラム。
  11. 請求項9において、前記描画領域のライン数とライン毎のエッジの数とを仮決めする第4ステップと、前記図形のライン毎の前記エッジの数を算出する第1ステップと、前記第1ステップで算出したライン毎の前記エッジの数から、ライン当たりの最大エッジ数を求める第2ステップと、前記最大エッジ数に基づいて前記仮決めした、前記描画領域のライン数を変更する第5ステップを含む、画像処理プログラム。
  12. 請求項10において、前記第3ステップの後、全ての前記描画領域のそれぞれについて、前記中間データを算出して前記ワーク領域に格納する第6ステップをさらに含み、前記第6ステップは、前記図形の外接矩形の範囲内のみについて実行される、画像処理プログラム。
JP2013035459A 2013-02-26 2013-02-26 画像処理lsi及び画像処理プログラム Active JP6009371B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013035459A JP6009371B2 (ja) 2013-02-26 2013-02-26 画像処理lsi及び画像処理プログラム
CN201410064823.0A CN104008560B (zh) 2013-02-26 2014-02-25 图像处理lsi和图像处理程序
US14/191,171 US9672643B2 (en) 2013-02-26 2014-02-26 Image processing LSI and image processing program
US15/583,652 US10096135B2 (en) 2013-02-26 2017-05-01 Image processing LSI and image processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013035459A JP6009371B2 (ja) 2013-02-26 2013-02-26 画像処理lsi及び画像処理プログラム

Publications (2)

Publication Number Publication Date
JP2014164551A true JP2014164551A (ja) 2014-09-08
JP6009371B2 JP6009371B2 (ja) 2016-10-19

Family

ID=51369200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013035459A Active JP6009371B2 (ja) 2013-02-26 2013-02-26 画像処理lsi及び画像処理プログラム

Country Status (3)

Country Link
US (2) US9672643B2 (ja)
JP (1) JP6009371B2 (ja)
CN (1) CN104008560B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019103881A (ja) * 2019-03-29 2019-06-27 株式会社ユニバーサルエンターテインメント 遊技機

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2893252B1 (fr) 2005-11-17 2008-02-15 Engelhard Lyon Sa Extraits vegetaux stimulant has2
CN106095139B (zh) * 2016-05-30 2018-10-12 安徽慧视金瞳科技有限公司 一种在投影交互系统中提升线条绘制速度的方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07137353A (ja) * 1993-11-19 1995-05-30 Canon Inc カラー印刷装置
JPH10151815A (ja) * 1996-11-22 1998-06-09 Fuji Xerox Co Ltd 印刷処理装置
JPH10337932A (ja) * 1997-06-05 1998-12-22 Fuji Xerox Co Ltd 印刷処理装置
JP2002334341A (ja) * 2001-05-11 2002-11-22 Fuji Xerox Co Ltd 画像処理装置
JP2002337398A (ja) * 2001-05-15 2002-11-27 Fuji Xerox Co Ltd 画像処理装置
JP2011053944A (ja) * 2009-09-02 2011-03-17 Ricoh Co Ltd 画像形成装置、画像形成方法及び制御プログラム
JP2011158951A (ja) * 2010-01-29 2011-08-18 Konica Minolta Business Technologies Inc 画像処理装置、プログラム及び画像処理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4035173B2 (ja) * 1993-01-18 2008-01-16 キヤノン株式会社 制御装置および制御方法
JP3792733B2 (ja) * 1993-01-18 2006-07-05 キヤノン株式会社 サーバー装置および制御方法
US7379609B2 (en) * 2002-07-19 2008-05-27 Samsung Electronics Co., Ltd. Image processing apparatus and method for conversion between raster and block formats
JP2006202211A (ja) * 2005-01-24 2006-08-03 Fujitsu Ltd 画像描画装置および画像描画方法
US7528837B2 (en) * 2005-02-23 2009-05-05 Panasonic Corporation Drawing apparatus, drawing method, drawing program and drawing integrated circuit
JP4987070B2 (ja) * 2007-04-11 2012-07-25 パナソニック株式会社 画像生成装置及び画像生成方法
US20120013938A1 (en) * 2010-07-14 2012-01-19 Hiroshi Nogawa Image processing device, hardware accelerator, and image processing method
JP5886583B2 (ja) * 2011-09-28 2016-03-16 キヤノン株式会社 データ処理装置、処理方法、制御方法、及びプログラム
CN102521178A (zh) * 2011-11-22 2012-06-27 北京遥测技术研究所 高可靠性嵌入式人机界面及其实现方法
JP2014002591A (ja) * 2012-06-19 2014-01-09 Canon Inc 画像処理装置、画像処理方法、コンピュータプログラム
JP6128782B2 (ja) * 2012-09-07 2017-05-17 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、プログラム、及び記憶媒体
US10169906B2 (en) * 2013-03-29 2019-01-01 Advanced Micro Devices, Inc. Hybrid render with deferred primitive batch binning
JP6175997B2 (ja) * 2013-08-30 2017-08-09 株式会社ソシオネクスト 画像処理方法、および画像処理装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07137353A (ja) * 1993-11-19 1995-05-30 Canon Inc カラー印刷装置
JPH10151815A (ja) * 1996-11-22 1998-06-09 Fuji Xerox Co Ltd 印刷処理装置
JPH10337932A (ja) * 1997-06-05 1998-12-22 Fuji Xerox Co Ltd 印刷処理装置
JP2002334341A (ja) * 2001-05-11 2002-11-22 Fuji Xerox Co Ltd 画像処理装置
JP2002337398A (ja) * 2001-05-15 2002-11-27 Fuji Xerox Co Ltd 画像処理装置
JP2011053944A (ja) * 2009-09-02 2011-03-17 Ricoh Co Ltd 画像形成装置、画像形成方法及び制御プログラム
JP2011158951A (ja) * 2010-01-29 2011-08-18 Konica Minolta Business Technologies Inc 画像処理装置、プログラム及び画像処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019103881A (ja) * 2019-03-29 2019-06-27 株式会社ユニバーサルエンターテインメント 遊技機

Also Published As

Publication number Publication date
CN104008560A (zh) 2014-08-27
US20170236310A1 (en) 2017-08-17
US9672643B2 (en) 2017-06-06
JP6009371B2 (ja) 2016-10-19
CN104008560B (zh) 2019-01-18
US20140240323A1 (en) 2014-08-28
US10096135B2 (en) 2018-10-09

Similar Documents

Publication Publication Date Title
JP6903183B2 (ja) 曲面ビューポート上に頂点の投影を近似することによる、グラフィックス処理における画面位置に基づく有効解像度の変化
US10614549B2 (en) Varying effective resolution by screen location by changing active color sample count within multiple render targets
US11880926B2 (en) Hybrid render with deferred primitive batch binning
EP3129976B1 (en) Varying effective resolution by screen location by altering rasterization parameters
US8704830B2 (en) System and method for path rendering with multiple stencil samples per color sample
US20170061680A1 (en) System, Method and Computer Program Product for Implementing Anti-Aliasing Operations Using a Programmable Sample Pattern Table
US7190366B2 (en) Method and system for a general instruction raster stage that generates programmable pixel packets
US20140185952A1 (en) System, method, and computer program product for implementing a spatially varying unsharp mask noise reduction filter
US9626762B2 (en) Stochastic rasterization using enhanced stencil operations on a graphics processing unit (GPU)
JP2015536500A5 (ja)
JP6320624B2 (ja) テクスチャマッピング装置、テクスチャマッピング方法及びプログラム
US10096135B2 (en) Image processing LSI and image processing program
US10373367B2 (en) Method of rendering 3D image and image outputting device thereof
US11302054B2 (en) Varying effective resolution by screen location by changing active color sample count within multiple render targets
US20160314615A1 (en) Graphic processing device and method for processing graphic images
US9367941B2 (en) Image output apparatus and method of rendering an image
JP2008299642A (ja) 図形描画装置
JP2017111774A (ja) 画像処理装置および画像処理方法
JP6266678B2 (ja) アビオニクス表示システム
US8411105B1 (en) Method and system for computing pixel parameters
KR101646194B1 (ko) 멀티 스레드 그래픽 처리 장치
JP2011180904A (ja) 描画処理装置、描画処理方法及びプログラム
JP2017068419A (ja) 図形描画装置および図形描画プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160803

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160914

R150 Certificate of patent or registration of utility model

Ref document number: 6009371

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150