JP5455213B2 - 画像描画装置、画像描画方法およびプログラム - Google Patents

画像描画装置、画像描画方法およびプログラム Download PDF

Info

Publication number
JP5455213B2
JP5455213B2 JP2009262099A JP2009262099A JP5455213B2 JP 5455213 B2 JP5455213 B2 JP 5455213B2 JP 2009262099 A JP2009262099 A JP 2009262099A JP 2009262099 A JP2009262099 A JP 2009262099A JP 5455213 B2 JP5455213 B2 JP 5455213B2
Authority
JP
Japan
Prior art keywords
image
area
cache
pixels
reference image
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
Application number
JP2009262099A
Other languages
English (en)
Other versions
JP2011107965A (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.)
NEC Solution Innovators Ltd
Original Assignee
NEC System Technologies 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 NEC System Technologies Ltd filed Critical NEC System Technologies Ltd
Priority to JP2009262099A priority Critical patent/JP5455213B2/ja
Priority to EP10831599.5A priority patent/EP2503505A4/en
Priority to PCT/JP2010/070512 priority patent/WO2011062205A1/ja
Priority to US13/510,190 priority patent/US8805119B2/en
Publication of JP2011107965A publication Critical patent/JP2011107965A/ja
Application granted granted Critical
Publication of JP5455213B2 publication Critical patent/JP5455213B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/3877Image rotation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/606Rotation of whole images or parts thereof by memory addressing or mapping
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0252Improving the response speed
    • 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/121Frame memory handling using a cache memory
    • 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/363Graphics controllers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Generation (AREA)

Description

本発明は、画像描画装置に関する。より詳しくは、参照画像を変換して表示画像上の描画領域に表示する画像描画装置、画像描画方法およびプログラムに関する。
コンピュータグラフィックスでは、参照画像を拡大/縮小、回転などの変換を施して、表示画像上の描画領域に表示することが行われている。動きのある場合などに画面の描画を速くするために、参照画像の変換を高速に行う技術が提案されている。
例えば特許文献1には、ラインベース形式で入力された画像データを、1画像分の画像データ容量よりも小さい容量のバッファメモリに一時記憶させブロックインターリーブ形式で出力する画像処理装置が記載されている。特許文献1の画像処理装置は、バンク単位回転画像データを前記バッファメモリに書き込んで、ブロックインターリーブ形式で出力する回転再配置回路を含む。バンク最終アドレス演算回路は、水平方向入力画素数および垂直方向MCU単位画素数に基づきバンク最終アドレスを求める。書き込み回路は、バンク最終アドレスを書き込み開始アドレスとして、バンク開始アドレス方向に書き込みアドレスをデクリメントさせて1バンク分の画像データを書き込む。読み出し回路は、バンク開始アドレスを読み出し開始アドレスとして最終アドレス方向に画像データを読み出す。
特許文献2の画像処理装置では、描画データ解析部は、ソースイメージを解析し、1ピクセルの幅もしくは高さのソースイメージを、そのライン方向に対して垂直方向に並べて拡大したイメージ処理であるかを判定する。描画処理部は、ソースイメージを格納するソースイメージバッファ、1ライン分の画像処理後のイメージを格納するラインバッファおよびデスティネーションイメージバッファを確保し、ラインバッファに1ライン分の描画処理結果を格納し、描画処理結果をライン単位でデスティネーションイメージバッファにコピーすることによりイメージを描画する。
特許文献3には、高速に回転処理する画像装置が提案されている。特許文献3の画像処理装置では、画像入力装置に入力された画像データは画像蓄積装置にデータバスを介して転送され、画像蓄積手段に転送された画像データは画像回転手段の入力バッファメモリにデータバスを介して転送される。入力バッファメモリに転送された画像データはライトアドレス生成手段が生成するライトアドレスに従って画像回転用メモリに入力された後、リードアドレス生成手段によって生成されるリードアドレスに従って出力され、出力バッファメモリに供給される。アドレス切換手段はライトアドレスおよびリードアドレスを切り替えて画像回転用メモリに供給する。出力バッファメモリから出力された画像データはデータバスを介して画像出力手段に転送される。
特許文献4には、原画像を回転を伴う座標変換により変換した仮想的な画像の全部または一部を出力画像として得るための、画像補間方法が記載されている。特許文献4の画像補間方法は、変換画像の第1方向に配置される参照画素の画素値を基礎として第1方向に補間することによって、中間画素の画素値を求める。複数の行に対して同様の動作を繰り返して、中間画素値配列を出力画素の第2方向に得る。そして、出力画素近傍の中間画素値配列の画素値を基礎として出力画素の第2方向について補間することによって、出力画素を得る。
また、特許文献5の2次元データ回転処理装置は、複数ブロックの回転処理を行う場合に、最初に被回転画像データの列方向のブロック書き込みを行い、それ以降は、回転画像データの行方向のブロック読み出しと同時に続くブロックの被回転画像データの列方向のブロック書き込み、回転画像データの列方向のブロック読み出しと同時に続くブロックの被回転画像データの行方向のブロックを書き込む。これらを交互に繰り返すことによって読み出しと書き込みを同時に、しかもブロック画像を連続的に回転処理する。
特開2005−228073号公報 特開2007−026285号公報 特開2008−236085号公報 特開平11−252353号公報 特開平11−306343号公報
画像の描画手順について、図2を参照して説明する。ここで、拡大・縮小などの座標変換をする前の元画像を、参照画像と呼ぶ。参照画像は外部メモリに置かれている。参照画像を表示画像に描画するには、図2に示すように、表示画像G上の描画領域Dの輪郭を生成し、生成した輪郭内部の画素Pの座標である出力座標(X,Y)を1画素ずつ走査しながら求めていく。この出力座標を1画素ずつ求める処理を画素生成と呼ぶ。次に、図2の座標変換tで示すように、画素生成で生成された出力座標(X,Y)毎に座標変換マトリクスをかけると、参照画像R上のある1点P’の座標、参照座標(X’,Y’)が求められる。このように、座標変換マトリクスには、出力座標(X,Y)から、参照座標(X’,Y’)を算出する値が設定される。座標変換マトリクスは、参照画像Rから表示したい画像の形状を求める画像変換のマトリクスの逆行列である。その後、描画処理fで示すように、参照画像Rの参照座標(X’,Y’)の位置の画像データを参照画像Rのある外部メモリから取得し、表示画像G上の出力座標(X,Y)の位置に描画する。以上の画素生成から表示画像への描画までの処理を描画領域D内部の画素全てに対して行なうと描画処理は完了する。
この画像描画手順において、描画処理fの操作時に、外部メモリから参照画像データを1画素ずつ取得するのでは、メモリからデータを転送する時間がかかり、描画速度が遅くなる。そこで、参照画像データを一時保存するためのキャッシュを用意してプリフェッチを行なうことで転送効率を上げたり、そのキャッシュサイズをメモリアドレスが連続にアクセスされるように変更することによって高速に描画ができるように対応していた。
しかし、上述の描画処理では、表示画像G上の画素生成の順は、描画領域Dの形状によらず、一定のブロック単位で、左上から右下へ向けて走査するように固定となっているため、画像の座標変換を行なわず単純に参照画像Rを表示画像Gへ1対1で描画した場合に比べて、画像を拡大・縮小・回転させた場合は、キャッシュのヒット率が極端に落ちたり、メモリアクセス量が増えることになる。すなわち画像の拡大・縮小、回転などの座標変換に依存して、キャッシュのヒット率が極端に落ちてしまうという問題点があった。これによって、座標変換の形態により、画像の描画速度が落ちてしまい、外部メモリアクセス量も増えてしまうという問題が生じていた。
本発明は、上述の事情に鑑みてなされたもので、キャッシュヒット率を向上し、描画速度を向上する画像描画装置、画像描画方法およびプログラムを提供することを目的とする。
本発明の第1の観点に係る画像描画装置は、
表示画像中に参照画像を変換して表示する領域である描画領域を指定する情報を取得する描画領域取得手段と、
前記描画領域に前記参照画像を変換して表示するための、前記描画領域から前記参照画像への座標変換の情報を取得する座標変換取得手段と、
前記描画領域を分割して被覆する矩形領域を、前記描画領域から前記参照画像への座標変換で座標変換した領域が、前記参照画像を読み出した画像データを蓄える所定の画像キャッシュの画像上の形に適合するように、前記矩形領域の縦と横の画素数を設定する設定手段と、
前記設定手段で設定した縦と横の画素数で前記描画領域を分割して被覆する1以上の前記矩形領域を生成する生成手段と、
所定の走査方向の順に前記矩形領域を選択し、該選択した矩形領域内の走査方向の順番に選択した画素から前記座標変換によって前記参照画像内の画素位置を算出する変換手段と、
前記変換手段で算出した画素位置の画像データを、前記参照画像を記憶しているメモリから読み出す画像取得手段と、
前記メモリから読み出した画像データを蓄える前記画像キャッシュと、
前記画像キャッシュから前記画像データを読み出して、前記描画領域の画素に変換する描画手段と、
を備える。
本発明の第2の観点に係る画像描画方法は、
表示画像中に参照画像を変換して表示する領域である描画領域を指定する情報を取得する描画領域取得ステップと、
前記描画領域に前記参照画像を変換して表示するための、前記描画領域から前記参照画像への座標変換の情報を取得する座標変換取得ステップと、
前記描画領域を分割して被覆する矩形領域を、前記描画領域から前記参照画像への座標変換で座標変換した領域が、前記参照画像を読み出した画像データを蓄える所定の画像キャッシュの画像上の形に適合するように、前記矩形領域の縦と横の画素数を設定する設定ステップと、
前記設定ステップで設定した縦と横の画素数で前記描画領域を分割して被覆する1以上の前記矩形領域を生成する生成ステップと、
所定の走査方向の順に前記矩形領域を選択し、該選択した矩形領域内の走査方向の順番に選択した画素から前記座標変換によって前記参照画像内の画素位置を算出する変換ステップと、
前記変換ステップで算出した画素位置の画像データを、前記参照画像を記憶しているメモリから読み出す画像取得ステップと、
前記メモリから読み出した画像データを前記画像キャッシュに蓄えるステップと、
前記画像キャッシュから前記画像データを読み出して、前記描画領域の画素に変換する描画ステップと、
を備える。
本発明の第3の観点に係るプログラムは、コンピュータに、
表示画像中に参照画像を変換して表示する領域である描画領域を指定する情報を取得する描画領域取得ステップと、
前記描画領域に前記参照画像を変換して表示するための、前記描画領域から前記参照画像への座標変換の情報を取得する座標変換取得ステップと、
前記描画領域を分割して被覆する矩形領域を、前記描画領域から前記参照画像への座標変換で座標変換した領域が、前記参照画像を読み出した画像データを蓄える所定の画像キャッシュの画像上の形に適合するように、前記矩形領域の縦と横の画素数を設定する設定ステップと、
前記設定ステップで設定した縦と横の画素数で前記描画領域を分割して被覆する1以上の前記矩形領域を生成する生成ステップと、
所定の走査方向の順に前記矩形領域を選択し、該選択した矩形領域内の走査方向の順番に選択した画素から前記座標変換によって前記参照画像内の画素位置を算出する変換ステップと、
前記変換ステップで算出した画素位置の画像データを、前記参照画像を記憶しているメモリから読み出す画像取得ステップと、
前記メモリから読み出した画像データを前記画像キャッシュに蓄えるステップと、
前記画像キャッシュから前記画像データを読み出して、前記描画領域の画素に変換する描画ステップと、
を実行させることを特徴とする。
本発明の画像描画装置によれば、キャッシュが効率的に使用できるようになることにより、キャッシュヒット率が向上し、参照画像を拡大・縮小、および/または回転して表示させる場合の描画速度が向上する。
本発明の実施の形態に係る画像描画装置の構成例を示すブロック図である。 画像の描画手順を説明する図である。 座標変換を説明する図である。 拡大率が1、回転角度が0度の場合の描画ブロックと画像キャッシュアクセスを説明する図である。 描画ブロックを変えずに参照画像を縮小する場合の画像キャッシュアクセスを説明する図である。 描画ブロックを変えずに参照画像を拡大する場合の画像キャッシュアクセスを説明する図である。 描画ブロックを変えずに参照画像を回転する場合の画像キャッシュアクセスを説明する図である。 実施の形態に係る画像キャッシュアクセスを説明する図である。 参照画像の縮小に合わせて描画ブロックを変更する場合の画像キャッシュアクセスを説明する図である。 参照画像の拡大に合わせて描画ブロックを変更する場合の画像キャッシュアクセスを説明する図である。 参照画像の回転に合わせて描画ブロックを変更する場合の画像キャッシュアクセスを説明する図である。 実施の形態1に係る描画ブロックサイズ設定の動作の一例を示すフローチャートである。 実施の形態1に係る画像生成の動作の一例を示すフローチャートである。 画像キャッシュ読み出しを説明する図である。 走査方向を一定にして参照画像を90度回転させる場合の画像キャッシュアクセスを説明する図である。 参照画像の90度回転に合わせて走査方向を変更する場合の画像キャッシュアクセスを説明する図である。 実施の形態2における描画領域の座標軸の座標変換と拡大率および回転角度の関係を示す図である。 回転角度が小さい場合の描画ブロックと画像キャッシュの関係を示す図である。 走査方向を変えずに参照画像を回転させる場合の画像キャッシュアクセスを説明する図である。 参照画像の回転角度に合わせて走査方向を変更する場合の画像キャッシュアクセスを説明する図である。 実施の形態2に係る描画ブロックサイズ設定の動作の一例を示すフローチャートである。 実施の形態2に係る画像生成の動作の一例を示すフローチャートである。 本発明の実施の形態に係る画像描画装置のハードウェア構成の例を示すブロック図である。
以下、本発明の実施の形態について図を参照して説明する。なお、図中同一または相当する部分には同じ符号を付す。
(実施の形態1)
図1は、本発明の実施の形態に係る画像描画装置の構成例を示すブロック図である。本発明の画像描画装置10は、図1に示すように、描画コマンド発生部11、輪郭生成部12、画素生成部13、座標変換部14、画像キャッシュ15、描画処理部16、表示部17、外部メモリ20、レジスタ21および描画ブロック設定部22を備える。描画装置1は、例えばマイクロコンピュータ、FPGA(Field Programmable Gate Array)、DSP(Digital Signal Processor)または専用の論理回路を備えるLSIで構成することができる。
描画コマンド発生部11は、表示画像中に表示する参照画像と、参照画像を変換して表示する領域である描画領域を指定する情報を受けて、描画の開始を指示する。描画コマンド発生部11は、参照画像から描画領域への変換の情報から、描画領域から参照画像へ座標変換する座標変換マトリクスを生成する。描画コマンド発生部11は、レジスタ21に座標変換マトリクスを設定し、描画開始命令を輪郭生成部12に発行することで、画像描画処理が開始される。
描画ブロック設定部22は、描画処理開始前に、レジスタ21に設定された座標変換マトリクスを用いて画素生成の描画ブロックの縦と横の画素数を設定する。描画ブロックは、描画領域を1または2以上に分割して被覆する矩形の領域である。描画ブロックが描画領域を被覆するとは、描画ブロックの画素の和集合が、描画領域の画素を含むことをいう。通常は、描画領域の全ての画素を含むが、参照画像に無効な画素がある場合など、描画領域の画素のうち描画ブロックに含まれない画素が存在することがあり得る。一般には、描画ブロック同士は画素が重複することなく描画領域を分割するが、画素が重複していても構わない。描画ブロックの縦と横は、表示画像の走査の方向に沿っている。描画ブロックのサイズの設定については後に詳述する。
輪郭生成部12は、描画コマンド発生部11から描画領域を指定する情報を受けて、表示画像上の描画したい領域の輪郭を生成する。輪郭生成部12は、画素生成部13に、輪郭座標を送る。画素生成部13は、輪郭内部の画素を走査して、表示画像中の出力座標を求める。画素生成部13は、描画ブロック設定部22が設定した、描画ブロックのサイズを受け取り、そのサイズに従って、1画素ずつ順番に輪郭座標内部の画素の座標を生成し、座標変換部14に、生成された出力座標データを1画素ずつ送る。
座標変換部14は、画素生成部13で生成された出力座標に座標変換マトリクスをかけて参照画像の対応する座標を算出する。また、参照画像の対応する座標の画像データを外部メモリ20から読み出しを行なう。座標変換部14は、画像キャッシュ15にある画像データをチェックし、その参照画像の対応する座標の画像データが画像キャッシュ15内に無ければ、外部メモリ20に対して、画像読み出しリクエストを発行する。また、描画処理部16に対しては、読み出した画像データが保存されるキャッシュ番号とそのキャッシュ内のアドレスで構成されたキャッシュ情報をそれぞれ発行する。
外部メモリ20は、参照画像の画像データを記憶し、座標変換部14の指令にしたがって、画像キャッシュ15に画像データを供給する。
画像キャッシュ15は、外部メモリ20から読み出された画像データを保持する。画像キャッシュ15は、参照画像において縦横が一定の画素数の形状を有するブロックから構成される。画像キャッシュ15は1または複数のブロックから構成される。画像キャッシュ15は、外部メモリ20から、ブロック単位で画像データを読み出して保持する。描画処理部16は、画像キャッシュ15から画像データを取り出して、表示する画素の並びを生成する。描画処理部16は、キャッシュ情報を元に、画像キャッシュ15をチェックし、画像キャッシュ15内に描画に必要な画像データがそろったことを確認後、参照画像データを読み出し、描画処理を行い、表示部17に表示開始命令を発行する。表示部17は、描画処理部16で生成された画素の並びを画面に表示する。
画素生成部13が、出力座標データを発行し、描画処理部16が描画処理を行なうまでの一連の処理を繰り返し、輪郭生成部12で生成された輪郭内の全ての画素分の走査が終わり、表示部17に描画する画像データが全て送られると描画処理を終了する。
前述のとおり、描画ブロック設定部22は、座標変換マトリクスから描画ブロックの縦と横の画素数を設定する。図3は、座標変換を説明する図である。本実施の形態で言う座標変換はアフィン変換を表し、拡大・縮小、回転および平行移動を組み合わせて1つの座標変換マトリクスで表される。図3に示すように変換前の座標(X,Y)に、座標変換マトリクスをかけることにより、変換後の座標(X’,Y’)を得る。座標変換マトリクスのa,b,c,dは、座標を拡大・縮小または回転するための要素であり、tx,tyは平行移動をするための要素である。この式を座標変換部14での座標変換にあてはめると、座標(X,Y)が出力座標(表示画像上の座標)であり、座標(X’,Y’)が参照画像の座標である。
図1の画素生成部13は、描画ブロック設定部22で設定された描画ブロックに従って、描画領域を描画ブロックに分割する。画素生成部13は、走査の方向に従って描画ブロックを選択し、選択した描画ブロックの中の画素を走査して、表示画像中の出力座標を求める。
本実施の形態の画像描画装置10では、描画ブロック設定部22は、描画領域から参照画像への座標変換マトリクスで座標変換した領域が、画像キャッシュ15の画像上の形に適合するように、描画ブロックの縦と横の画素数を設定する。
図4A〜図5Dは、描画ブロックと画像キャッシュの関係を説明する図である。図4A〜図5Dでは、図中(a)は座標変換マトリクスを表す。ここでは、座標変換の平行移動を省略している。図中、(b)は描画ブロックを示し、(c)は画像キャッシュ15のブロックを示す。なお、画像キャッシュ15の1つのブロックは、横16画素、縦4画素の長方形である。また、図4A〜図4Dでは、描画ブロックは、横16画素、縦16画素の正方形である。以下、画像キャッシュ15のブロックをキャッシュブロックという。
図4A〜図5Dの(b)と(c)に示す小さい正方形は、1つの画素を表す。画素中の番号は、キャッシュブロックから描画ブロックへ画像表示される画素の対応を示す。すなわち、例えばキャッシュブロックの“1”の画素は、描画ブロックの同じ番号“1”の画素の位置に表示されることを示す。画素中の番号は、描画ブロック内の走査の順序を示すものではない。描画ブロック内の主走査の方向は実線の矢印、副走査の方向は点線の矢印で示される。
図4Aは拡大率が1、回転角度が0度の場合の描画ブロックと画像キャッシュアクセスを説明する図である。図4Aは座標変換無しの場合であり、参照画像の画素と表示画像の画素が1対1に対応しており、キャッシュブロックが1つずつ効率よく使われていることが分かる。
図4Bは、描画ブロックを変えずに参照画像を縮小する場合の画像キャッシュアクセスを説明する図である。図4Bは、座標変換のX方向の拡大率が2.0の場合であり、参照画像は横方向に1/2に縮小されて表示されることになる。したがって、描画処理では1つのキャッシュブロック内のX方向16画素のうち、1つ飛びでしか使用されない。描画ブロックは横16画素であるので、描画ブロック内のX方向1ライン分が走査されるたびに、キャッシュブロックは、X方向に2つ使用されることになる。
図4Cは、描画ブロックを変えずに参照画像を拡大する場合の画像キャッシュアクセスを説明する図である。図4Cは、座標変換のX方向の拡大率が0.5の場合であり、参照画像は横方向に2倍に拡大されて表示されることになる。描画ブロックは横16画素であるので、1つのキャッシュブロック内のX方向16画素のうち、画素番号1〜8までの半分しか使用されず、残りは破棄されてしまう。その後、現在走査している描画ブロックの右隣の描画ブロックに画素生成処理が移ると、画素番号9〜16が使用されることになるが、このときには、すでに画像キャッシュ15から必要なデータが破棄されている可能性があるため、再度、同じ領域を外部メモリ20から画像キャッシュ15へ読み出す必要があり、メモリアクセスが増加する。
図4Dは、描画ブロックを変えずに参照画像を回転する場合の画像キャッシュアクセスを説明する図である。図4Dは、参照画像を反時計方向に90度回転した場合を示す。描画ブロック内の画素が横((b)の実線矢印)方向に走査されると、画像キャッシュ15内では、縦((c)の実線矢印)方向に走査されることになる。キャッシュブロックは、横方向の方が長いサイズであるため、縦方向に走査されると、描画ブロック内の横方向1ライン分が走査されるたびに、縦方向に4つのキャッシュブロックを使用することになる。
ここで、図4A〜図4Dの例について、本実施の形態の方法で走査方向、ブロックサイズを変更した場合の例を図5A〜図5Dに示す。図5Aは、実施の形態に係る画像キャッシュアクセスを説明する図である。図5Aは、拡大率が1、回転角度が0度の場合である。描画ブロックは、座標変換マトリクスが単位行列の場合にキャッシュブロックに適合するように決められる。したがって、参照画像の画素と表示画像の画素が1対1に対応しており、キャッシュブロックが1つずつ効率よく使われる。
図5Bは、参照画像の縮小に合わせて描画ブロックを変更する場合の画像キャッシュアクセスを説明する図である。図5Bは、座標変換のX方向の拡大率が2.0の場合であり、参照画像は横方向に1/2に縮小されて表示されることになる。そこで、描画ブロックの横画素数を半分の8にすれば、キャッシュブロックがX方向に2つ使用されることがなく、図5Aと同じように、キャッシュブロックが使用され、連続して効率よく読み出すことができるようになる。
図5Cは、参照画像の拡大に合わせて描画ブロックを変更する場合の画像キャッシュアクセスを説明する図である。図5Cは、座標変換のX方向の拡大率が0.5の場合であり、参照画像は横方向に2倍に拡大されて表示されることになる。そこで、描画ブロックの横画素数を2倍の32にすれば、画素番号1〜16までが無駄無く使用され、再度、同じ領域を読み出すようなメモリアクセスが行なわれず、連続して効率よく画像データ読み出すことができる。
図5Dは、参照画像の回転に合わせて描画ブロックを変更する場合の画像キャッシュアクセスを説明する図である。図5Dは、座標変換が時計方向に90度回転する場合を示す。図5Dの例では、描画ブロックを座標変換した領域が、キャッシュブロックに適合するように、横4画素、縦16画素に設定する。そうすると、描画ブロックの画素の走査は、キャッシュブロック内に収まるので、図4Dの場合のように、縦方向に2つ以上のキャッシュブロックを使用する必要がない。
以上より、座標変換の拡大・縮小を表す拡大率が小さいときは、ブロックサイズを大きく、拡大率が大きいときは、ブロックサイズを小さくする方が、画像キャッシュ15を効率よく使用できることが分かる。また、座標変換の回転に合わせて、描画ブロックの縦と横の画素数を設定すれば画像キャッシュ15を効率よく使用できる。
本実施の形態1では、図3の座標変換マトリクスの拡大・縮小・回転を表す要素であるa,b,c,dに着目し、ブロックサイズは、その要素のうちの座標変換の拡大・縮小を表す拡大率をみて、拡大率が小さいときは描画ブロックの画素数を大きく、拡大率が大きいときは描画ブロックの画素数を小さくする。また、座標変換の回転についても、描画ブロックを座標変換した領域が、キャッシュブロックに適合するように描画ブロックの縦と横の画素数を設定する。
座標変換の拡大率は、描画領域の座標軸X、Yの単位ベクトルを座標変換したベクトルから求めることができる。すなわち出力座標(X,Y)=(0,0)から、X方向に1単位、Y方向に1単位、それぞれ進んだときに、参照座標(X’,Y’)がどれだけ移動したかを調べることで、移動の比率が求まるため、拡大率として使用することができる。つまり、図3の座標変換式において、出力座標を(X,Y)=(1,0)としたときの参照座標(X’,Y’)を座標変換ベクトルX1、(X,Y)=(0,1)としたときの(X’,Y’)を座標変換ベクトルY1とすると、Xの拡大率は、ベクトルX1の大きさ、Yの拡大率は、ベクトルY1の大きさで表すことができる。ここで、図3の座標変換式に、(X,Y)=(1,0)、(X,Y)=(0,1)をそれぞれ代入すると、X1=(a,c)、Y1=(b,d)となるので、これらのベクトルの大きさから、Xの拡大率はa+c、Yの拡大率はb+dでそれぞれ求めることができる。
図6は、実施の形態1に係る描画ブロックサイズ設定の動作の一例を示すフローチャートである。描画コマンド発生部11は、参照画像と描画領域を指定する情報を取得すると(ステップS10)、座標変換マトリクスを生成する(ステップS11)。
描画ブロック設定部22は、座標変換マトリクスから座標変換ベクトルX1、Y1を計算する(ステップS12)。ここで、座標変換ベクトルX1、Y1は、描画領域の座標軸X、Yの単位ベクトルを座標変換したベクトルである。そして、座標変換ベクトルX1の大きさを求める。
求めたベクトルX1からX1の大きさを求めるが、平方根の処理を回避するため、2乗した値を使用し、描画ブロックの横方向の画素数Wを設定する。|X1|の大きさによって分岐する(ステップS13)。例として、ここではキャッシュブロックの横画素数が16の場合に、描画ブロックの横画素数Wを、4,8,16,32の4通りから選択可能としている。すなわち、|X1|が1より小さい場合は、W=32に(ステップS14)、|X1|が1以上4未満の場合は、W=16に(ステップS15)、|X1|が4以上9未満の場合は、W=8に(ステップS16)、|X1|が9以上の場合は、W=4に設定する(ステップS17)。
同様に、縦方向の画素数についても設定する。すなわち|Y1|の大きさによって分岐する(ステップS18)。例として、描画ブロックの縦画素数Hを、4,8,16,32の4通りから選択可能としている。すなわち、|Y1|が1より小さい場合は、H=32に(ステップS19)、|Y1|が1以上4未満の場合は、H=16に(ステップS20)、|Y1|が4以上9未満の場合は、H=8に(ステップS21)、|Y1|が9以上の場合は、H=4に設定する(ステップS22)。そして、描画ブロックサイズ設定を終了する。
描画ブロックの縦と横の画素数をどのように設定するかは、上述の例に限らない。それぞれの画素数の段階を少なくしてもよいし、多くしてもかまわない。さらに、座標変換ベクトルX1、Y1の大きさに合わせて連続的に設定してもよい。また、縦と横の画素数の段階を同じにしなくてもよい。なお、上述の図6の処理では、図5Dで説明したように、座標変換の回転角度に応じて、描画ブロックの縦と横の画素数を入れ替えたことになっている。
図7は、実施の形態1に係る画像生成の動作の一例を示すフローチャートである。描画ブロックサイズ設定を終了すると、描画処理に入る。輪郭生成部12で輪郭生成(ステップS30)した後、画素生成部13は画素生成を開始する。図7のフローチャートは、4つのループの入れ子構造になっている。
描画領域を分割して被覆する描画ブロックを設定し、描画ブロックを行ごとに選択して、Y方向(副走査方向)のブロック数分ループ処理(描画領域Yループ:最も外側のループ)を行う(ステップS31〜ステップS40のループ)。描画領域Yループの処理では、描画ブロックの1つの行について、主走査の方向に描画ブロックを選択して、X方向(主走査方向)のブロック数分ループ処理(描画領域Xループ:ブロック処理の内側のループ)を行う(ステップS32〜ステップS39のループ)。描画領域の形状と傾きによって、描画ブロックの行ごとの数(X方向のブロック数)は異なる場合がある。
描画領域Xループの処理では、描画ブロック内の画素を行ごとに選択して、Y方向(副走査方向)の画素数Hの分ループ処理(ブロック内Yループ:ブロック内処理の外側のループ)を行う(ステップS33〜ステップS38のループ)。ブロック内Yループの処理では、選択した1行の画素数Wの分ループ処理(ブロックXループ:最も内側のループ)を行う(ステップS34〜ステップS37)。すなわち、X方向(主走査方向)に画素を1つずつ選択し、座標変換して(ステップS35)、描画処理を行う(ステップS36)。これを1行の画素数W分行う。描画領域内の全ての画素数分のループが終わると、画素生成を終了し、描画が完了する。
以上説明したように、本実施の形態1に係る画像描画装置10によれば、以下に記載するような効果を奏する。第1の効果は、キャッシュが効率的に使用できるようになることにより、キャッシュヒット率が向上し、描画速度が向上することである。第2の効果は、キャッシュヒット率の向上により、キャッシュ更新回数が減り、メモリアクセス量が低減されることである。
(実施の形態2)
実施の形態2では、座標変換の回転角度に応じて、描画領域の走査の方向を変更する。実施の形態2の画像描画装置10の構成は、図1と同じであるが、描画ブロック設定部22は、描画ブロックのサイズの設定に加えて、描画領域の走査の方向を設定する。
図8は、画像キャッシュ読み出しを説明する図である。図8の(a)の4つの正方形は描画ブロックを表す。図8の(b)と(d)(中央の列)は、(a)の描画ブロックを座標変換した描画ブロックと画像キャッシュ15の関係を示す。図8の(c)と(e)(右の列)は、それぞれ(b)と(d)の座標変換に対応して、実際に描画される画像の向きを示す。(b)と(c)は、座標変換の回転が0度の場合、(d)と(e)は、座標変換の回転が時計方向に90度の場合である。図8では、描画ブロックの番号を角かっこ数字で表す。また、画像キャッシュ15のブロックの番号を丸かっこ数字で表す。
図8では、描画ブロックは横16画素、縦16画素のブロックサイズを想定している。また、キャッシュブロックは横16画素、縦8画素のブロックサイズを想定している。なお、描画ブロックの中の実線の矢印は描画ブロック中の主走査の方向を表し、点線の矢印は副走査の方向を表す。
図8の(b)、(c)は、拡大率が1、回転角度が0度の場合である。この場合は、番号[1]と[2]の描画ブロックを描画するときに、外部メモリ20から画像キャッシュ15へのデータ読み出しが、トータル6回(画像キャッシュ15の番号(1)〜(6)のブロック)で描画できる。それに対して、図8の(d)、(e)は、座標変換の拡大率が1であるが、回転角度が時計方向に90度の場合である。この場合は、番号[1]の描画ブロックを描画するときに、画像キャッシュ15の番号(1)〜(4)の4つのブロックを読み出すことになる。同じように番号[2]の描画ブロックを描画するときにも、4つのブロックを読み出すことになる。その結果、キャッシュのヒット率が落ち、番号[1]と[2]の描画ブロックを描画するときに、8回の読み出しを行なわなければならず、描画速度が落ちてしまう。
描画ブロック設定部22は、描画領域の水平方向を座標変換した方向と、画像キャッシュ15の水平方向のなす角度の小さい方が45度を超える場合に、描画領域の垂直方向を主走査方向、水平方向を副走査方向とする。その場合画素生成部13は、描画領域を被覆する描画ブロックを列ごとに順に選択し(副走査=水平方向)、かつ、選択した描画ブロック内の画素を垂直方向の列ごとに選択する(副走査=水平方向)。
図9Aおよび図9Bは、走査方向と画像キャッシュアクセスの関係を説明する図である。図9Aおよび図9Bは、図4A〜図5Dと同様に、(a)は座標変換マトリクス、(b)は描画ブロック、(c)は画像キャッシュ15の構成を示す。図9A、図9Bの(b)と(c)の小さい正方形は画素を表し、画素内の数字は描画ブロックと画像キャッシュ15の画素の対応を示す。また、実線矢印は主走査の方向を、点線矢印は副走査の方向を示す。なお、キャッシュブロックは、横16画素、縦4画素の長方形であり、描画ブロックは、横16画素、縦16画素の正方形である。
図9Aは、走査方向を一定にして参照画像を90度回転させる場合の画像キャッシュアクセスを説明する図である。図9Aは、図4Dと同じである。図9Aは、参照画像を反時計方向に90度回転した場合を示す。描画ブロック内の画素が横((b)の実線矢印)方向に走査されると、画像キャッシュ15内では、縦((c)の実線矢印)方向に走査されることになる。キャッシュブロックは、横方向の方が長いサイズであるため、縦方向に走査されると、描画ブロック内の横方向1ライン分が走査されるたびに、縦方向に4つのキャッシュブロックを使用することになる。
図9Bは、参照画像の90度回転に合わせて走査方向を変更する場合の画像キャッシュアクセスを説明する図である。座標変換の回転角度が90度の場合、描画領域の縦方向を主走査の方向、横方向を副走査の方向とする。描画ブロック内の画素が縦((b)の実線矢印)方向に走査されると、画像キャッシュ15内では、横((c)の実線矢印)方向に走査されることになる。そうすると、描画ブロックの画素の走査は、キャッシュブロック内に収まるので、図9Aの場合のように、縦方向に2つ以上のキャッシュブロックを使用する必要がない。
描画領域を走査する方向は、通常、主走査が水平方向で画面に向かって左から右へ、副走査が垂直方向で画面に向かって上から下へ向かう方向である。主走査の方向が右から左へ、または、副走査の方向が下から上へ向かう方向の場合もあり得る。走査方向を変更する場合は、図9Bに示すように、主走査と副走査の方向を入れ替えて、主走査を垂直方向で画面に向かって上から下へ、副走査を水平方向で画面に向かって左から右へ向かう方向にする。変更する場合の主走査の方向は垂直方向であれば、画面に向かって下から上へ向かう方向でもよい。また、副走査の方向は水平方向であれば、画面に向かって右から左へ向かう方向でもかまわない。
次に、座標変換マトリクスから、上記の判断を行なうための回転角を求める方法について説明する。実施の形態1で説明したように、座標変換の拡大率は、座標変換ベクトルX1、Y1の大きさによって求めることができる。座標変換の拡大率と同じように、描画領域の座標軸X、Yの単位ベクトルを座標変換したベクトルから求めることができる。図3の座標変換式を用いて、回転角は、座標変換の回転が0度の場合(a=d=1、b=c=0)のベクトル(1,0)と、座標変換後のベクトルX1=(a,c)との間の角で求められる。
回転角を求めるには、一般的にベクトルの内積などを使用して求める必要があるが、本実施の形態で決定したい走査方向はX方向、Y方向の2種類であるので、回転角(描画領域の水平方向を座標変換した方向と、画像キャッシュ15の水平方向のなす角度の小さい方)が45度以上または以下であることが分かればよい。45度以上か以下であることは、ベクトルX1(a,c)のaの絶対値|a|とcの絶対値|c|の比率によって決めることができる。|a|≧|c|でaの方が長ければ45度以下、|a|≦|c|でcの方が長ければ、45度以上となる。
図10は、実施の形態2における描画領域の座標軸の座標変換と拡大率および回転角度の関係を示す。図10の実線の円は単位円である。単位円の中心である原点は、(X,Y)=(0,0)のときの参照画像の座標(X’,Y’)である。拡大率が1.0で拡大縮小無しの場合、ベクトルX1,Y1は、図10の単位円上の点に向かうベクトルになるので、X1,Y1の大きさが拡大率を表すことが分かる。回転が0度の場合のベクトルX1=(a,0)は、X’軸上の点となる。そのため、X’軸とX1との間の角、図10のθが、画像の回転角を表すことが分かる。
図10に示されるように、X1は(a,c)であるので、回転角度を−180度〜180度の範囲として、|a|≧|c|のときは、
θ≦−135度、−45度≦θ≦45度 または 135度≦θ
となり、|a|<|c|のときは、
−135度<θ<−45度 または 45度<θ<135度
となる。したがって、|a|と|c|を比較することによって、45度を境とした走査方向を決定することができることが分かる。以上の操作に従って、描画ブロック設定部22では、座標変換ベクトルX1(a,c)、Y1(b,d)から描画ブロックの縦と横の画素数および走査方向を設定する。
図11〜図13は、座標変換が回転を含む場合の描画ブロックと画像キャッシュアクセスを説明する図である。図11〜図13において、(a)は、描画領域の描画ブロックを示す。実線の枠は描画領域を表す。破線の矩形は描画ブロックを表す。(b)と(c)は、(a)の描画ブロックを座標変換したものとキャッシュブロックの関係を示す。(b)と(c)の破線の矩形は座標変換した描画ブロックを表す。太い実線の矩形はキャッシュブロックを表す。細い実線の枠は参照画像を表す。図11〜図13では、角かっこ数字は描画ブロックの番号を示す。また、丸かっこ数字は画像キャッシュ15のブロックの番号を示す。なお、実線の矢印は主走査の方向、点線の矢印は副走査の方向を表す。
図11は、回転角度が小さい場合の描画ブロックと画像キャッシュの関係を示す図である。図11は、参照画像を反時計方向に10度回転させる場合の例を示す。図11(a)に示すように描画領域の描画ブロックの走査の順は、[1]→[4]の順である。描画ブロック内の画素の主走査方向は表示画像の水平方向である。
図11の(b)に示すように、番号[1]と[2]の描画ブロックを描画するために、(1)〜(5)のキャッシュブロックがその番号の順で読み込まれる。キャッシュブロックの読み込みは5回必要になっている。同様に、図11(c)を参照すると、番号[3]と[4]の描画ブロックを描画するために、(6)〜(10)のキャッシュブロックがその順で読み込まれる。番号[1]〜[4]の描画ブロックを描画するためにトータルで、10回のキャッシュブロックの読み込みが必要である。参照画像を時計方向に10度回転させる場合も同様である。
参照画像を10度回転させるときは、描画ブロックの主走査の方向を表示画像の水平方向とした場合と、垂直方向とした場合とで、画像キャッシュ15のヒット率は変わらない。本実施の形態2の画像描画装置10では、回転角度が45度以下の場合は、描画領域の走査方向を表示画像の水平方向とする。
図12は、走査方向を変えずに参照画像を回転させる場合の画像キャッシュアクセスを説明する図である。図12は、参照画像を反時計方向に80度回転させる場合の例を示す。図12(a)に示すように描画ブロックの走査の順は、主走査が水平の[1]→[4]の順である。描画ブロック内の画素の主走査方向は表示画像の水平方向である。
図12の(b)に示すように、番号[1]と[2]の描画ブロックを描画するために、(1)〜(7)のキャッシュブロックがその番号の順で読み込まれる。キャッシュブロックの読み込みが7回必要になっている。同様に、図12(c)を参照すると、番号[3]と[4]の描画ブロックを描画するために、(8)〜(12)のキャッシュブロックがその順で読み込まれる。
図12(c)の(8)〜(10)、(12)のキャッシュブロックは、(b)の(3)、(4)、(7)および(6)のキャッシュブロックと同じである。しかし、画像キャッシュ15のキャッシュブロックの最大数が4以下である場合、番号[3]の描画ブロックの描画を始めるときには、すでに(3)(=(8))のキャッシュブロックは廃棄されているので、改めて(8)のキャッシュブロックを読み込む必要がある。同様に(9)のキャッシュブロックが必要になるときには、(4)のキャッシュブロックは廃棄されているので、改めて読み込む必要がある。さらに(12)のキャッシュブロックが必要になるときには、(6)のキャッシュブロックは廃棄されているので、改めて読み込む必要がある。図12の例では、番号[1]〜[4]の描画ブロックを描画するためにトータルで、12回のキャッシュブロックの読み込みが必要である。その結果、図11の場合に比べて画像キャッシュ15のヒット率は低下する。
図13は、参照画像の回転角度に合わせて走査方向を変更する場合の画像キャッシュアクセスを説明する図である。図13は、参照画像を反時計方向に80度回転させる場合の例を示す。図13(a)に示すように描画ブロックの走査の順は、主走査が垂直の[1]→[4]の順である。描画ブロック内の画素の主走査方向は表示画像の垂直方向である。
図13の(b)に示すように、番号[1]と[2]の描画ブロックを描画するために、(1)〜(5)のキャッシュブロックがその番号の順で読み込まれる。キャッシュブロックの読み込みが5回必要になっている。同様に、図13(c)を参照すると、番号[3]と[4]の描画ブロックを描画するために、(6)〜(10)のキャッシュブロックがその順で読み込まれる。
図13(c)の(6)と(8)のキャッシュブロックは、(b)の(3)と(5)のキャッシュブロックと同じである。画像キャッシュ15のキャッシュブロックの最大数が4の場合、番号[3]の描画ブロックの描画を始めるときには、まだ(3)のキャッシュブロックが画像キャッシュ15に残っているので、改めて(6)のキャッシュブロックを読み込む必要がない場合がある。同様に(8)のキャッシュブロックが必要になるときには、(5)のキャッシュブロックが残っている可能性があり、改めて読み込む必要がない場合がある。
図13の例では、番号[1]〜[4]の描画ブロックを描画するためにトータルで、10回のキャッシュブロックの読み込みが必要である。画像キャッシュ15のキャッシュブロックの最大数が4以上の場合は、さらに読み込み回数が減少する。その結果、図12の場合に比べて画像キャッシュ15のヒット率が向上する。参照画像を時計方向に80度回転させる場合は、図12および図13が対称になるが同様に考えることができる。
図14は、実施の形態2に係る描画ブロックサイズ設定の動作の一例を示すフローチャートである。実施の形態2では、描画ブロックの縦と横の画素数を設定したのちに、座標変換の回転角度に応じて、描画領域の走査方向を設定する。図14のフローチャートは、ステップS10〜ステップS22までの動作は、図6のステップS10〜ステップS22の動作と同じである。
描画ブロックの縦と横の画素数を設定したのちに、ベクトルX1(a,c)のa,cの関係が、|a|≧|c|であるかどうかを判定する(ステップS23)。|a|≧|c|であれば(ステップS23;YES)、描画領域の水平方向(X方向)を主走査方向とする(ステップS24)。|a|<|c|であれば(ステップS23;NO)、描画領域の垂直方向(Y方向)を主走査方向として、描画ブロックサイズ設定を終了する。
図15は、実施の形態2に係る画像生成の動作の一例を示すフローチャートである。描画ブロックサイズ設定を終了すると、描画処理に入る。輪郭生成部12で輪郭生成(ステップS30)したのち、描画ブロックサイズ設定で設定した主走査の方向がX方向かY方向かを判定する(ステップS50)。主走査方向がX方向であれば(ステップS50;X)、描画領域内をY方向から先にループを回す(ステップS31〜ステップS40)。すなわち、図7のステップS31〜ステップS40と同様の処理を行う。
主走査方向がY方向であれば(ステップS50;Y)、描画領域内をX方向から先にループを回す(ステップS51〜ステップS60)。すなわち、ステップS31〜ステップS40の処理のX方向とY方向を入れ替える。ステップS51〜ステップS60の処理は、4つのループの入れ子構造になっている。
描画領域を分割して被覆する描画ブロックを設定し、描画ブロックを列ごとに選択して、X方向(副走査方向)のブロック数分ループ処理(描画領域Xループ:最も外側のループ)を行う(ステップS51〜ステップS60のループ)。描画領域Xループの処理では、描画ブロックの1つの列について、主走査(Y)の方向に描画ブロックを選択して、Y方向(主走査方向)のブロック数分ループ処理(描画領域Yループ:ブロック処理の内側のループ)を行う(ステップS52〜ステップS59のループ)。描画領域の形状と傾きによって、描画ブロックの列ごとの数(Y方向のブロック数)は異なっているかもしれない。
描画領域Yループの処理では、描画ブロック内の画素を列ごとに選択して、X方向(副走査方向)の画素数Wの分ループ処理(ブロック内Xループ:ブロック内処理の外側のループ)を行う(ステップS53〜ステップS58のループ)。ブロック内Xループの処理では、選択した1列の画素数Hの分ループ処理(ブロックYループ:最も内側のループ)を行う(ステップS54〜ステップS57)。すなわち、Y方向(主走査方向)に画素を1つずつ選択し、座標変換して(ステップS55)、描画処理を行う(ステップS56)。これを1列の画素数H分行う。描画領域内の全ての画素分のループが終わると、画素生成を終了し、描画が完了する。
以上説明したように、本実施の形態2の画像描画装置10によれば、参照画像を回転して表示する場合に、画像キャッシュが効率的に使用できるようになることにより、キャッシュヒット率が向上し、描画速度が向上する。そして、キャッシュヒット率の向上により、キャッシュ更新回数が減り、メモリアクセス量が低減される。
図16は、本発明の実施の形態に係る画像描画装置のハードウェア構成の例を示すブロック図である。画像描画装置10は、図16に示すように、制御部31、主記憶部32、外部記憶部33、操作部34、表示部35および送受信部36を備える。主記憶部32、外部記憶部33、操作部34、表示部35および送受信部36はいずれも内部バス30を介して制御部31に接続されている。
制御部31はCPU(Central Processing Unit)等から構成され、外部記憶部33に記憶されている制御プログラム39に従って、画像描画装置10の処理を実行する。
主記憶部32はRAM(Random−Access Memory)等から構成され、外部記憶部33に記憶されている制御プログラム39をロードし、制御部31の作業領域として用いられる。
外部記憶部33は、フラッシュメモリ、ハードディスク、DVD−RAM(Digital Versatile Disc Random−Access Memory)、DVD−RW(Digital Versatile Disc ReWritable)等の不揮発性メモリから構成され、上述の処理を制御部31に行わせるための制御プログラム39を予め記憶し、また、制御部31の指示に従って、制御プログラム39が記憶するデータを制御部31に供給し、制御部31から供給されたデータを記憶する。図1の外部メモリ20は、外部記憶部33に含まれる。
操作部34はキーボードおよびマウスなどのポインティングデバイス等と、キーボードおよびポインティングデバイス等を内部バス30に接続するインタフェース装置から構成されている。操作部34を介して、画像の表示、参照画像の指定、描画領域と座標変換の情報などの入力を受け付ける。
表示部35は、CRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)などから構成され、描画処理部16で生成した表示画像を表示する。
送受信部36は、通信装置、およびそれらと接続するシリアルインタフェースまたはLAN(Local Area Network)インタフェースから構成されている。送受信部37は、ネットワーク(図示せず)を通じてサーバ(図示せず)から、表示する画像を含むコンテンツを受信する。
図1の描画コマンド発生部11、輪郭生成部12、画素生成部13、座標変換部14、画像キャッシュ15、描画処理部16、表示部17、外部メモリ20、レジスタ21および描画ブロック設定部22の処理は、制御プログラム39が、制御部31、主記憶部32、外部記憶部33、操作部34、表示部35および送受信部36などを資源として用いて処理することによって実行する。
本発明の好適な変形として、以下の構成が含まれる。
本発明の第1の観点に係る画像描画装置について、
好ましくは、前記設定手段は、前記画像キャッシュのブロックサイズとブロック数に合わせて、少なくとも前記矩形領域に含まれる前記描画領域を座標変換した領域が、前記画像キャッシュの範囲に収まるように、前記矩形領域の縦と横の画素数を設定することを特徴とする。
好ましくは、前記設定手段は、前記座標変換の倍率に反比例して、前記矩形領域の縦と横の画素数を設定することを特徴とする。
好ましくは、前記変換手段は、前記描画領域の水平方向を座標変換した方向と、前記画像キャッシュの水平方向のなす角度の小さい方が45度を超える場合に、前記描画領域の垂直方向を主走査方向、水平方向を副走査方向として、前記描画領域を被覆する矩形領域を順に選択し、かつ、選択した矩形領域内を走査して画素を選択することを特徴とする。
本発明の第2の観点に係る画像描画方法について、
好ましくは、前記設定ステップは、前記画像キャッシュのブロックサイズとブロック数に合わせて、少なくとも前記矩形領域に含まれる前記描画領域を座標変換した領域が、前記画像キャッシュの範囲に収まるように、前記矩形領域の縦と横の画素数を設定することを特徴とする。
好ましくは、前記設定ステップは、前記座標変換の倍率に反比例して、前記矩形領域の縦と横の画素数を設定することを特徴とする。
好ましくは、前記変換ステップは、前記描画領域の水平方向を座標変換した方向と、前記画像キャッシュの水平方向のなす角度の小さい方が45度を超える場合に、前記描画領域の垂直方向を主走査方向、水平方向を副走査方向として、前記描画領域を被覆する矩形領域を順に選択し、かつ、選択した矩形領域内を走査して画素を選択することを特徴とする。
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更および修正が可能である。
制御部31、主記憶部32、外部記憶部33、操作部34、内部バス30などから構成される画像描画処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する画像描画装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで画像描画装置を構成してもよい。
また、画像描画装置の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
10 画像描画装置
11 描画コマンド発生部
12 輪郭生成部
13 画素生成部
14 座標変換部
15 画像キャッシュ
16 描画処理部
17 表示部
20 外部メモリ
21 レジスタ
22 描画ブロック設定部
31 制御部
32 主記憶部
33 外部記憶部
34 操作部
35 表示部
36 送受信部
39 制御プログラム

Claims (9)

  1. 表示画像中に参照画像を変換して表示する領域である描画領域を指定する情報を取得する描画領域取得手段と、
    前記描画領域に前記参照画像を変換して表示するための、前記描画領域から前記参照画像への座標変換の情報を取得する座標変換取得手段と、
    前記描画領域を分割して被覆する矩形領域を、前記描画領域から前記参照画像への座標変換で座標変換した領域が、前記参照画像を読み出した画像データを蓄える所定の画像キャッシュの画像上の形に適合するように、前記矩形領域の縦と横の画素数を設定する設定手段と、
    前記設定手段で設定した縦と横の画素数で前記描画領域を分割して被覆する1以上の前記矩形領域を生成する生成手段と、
    所定の走査方向の順に前記矩形領域を選択し、該選択した矩形領域内の走査方向の順番に選択した画素から前記座標変換によって前記参照画像内の画素位置を算出する変換手段と、
    前記変換手段で算出した画素位置の画像データを、前記参照画像を記憶しているメモリから読み出す画像取得手段と、
    前記メモリから読み出した画像データを蓄える前記画像キャッシュと、
    前記画像キャッシュから前記画像データを読み出して、前記描画領域の画素に変換する描画手段と、
    を備える画像描画装置。
  2. 前記設定手段は、前記画像キャッシュのブロックサイズとブロック数に合わせて、少なくとも前記矩形領域に含まれる前記描画領域を座標変換した領域が、前記画像キャッシュの範囲に収まるように、前記矩形領域の縦と横の画素数を設定することを特徴とする請求項1に記載の画像描画装置。
  3. 前記設定手段は、前記座標変換の倍率に反比例して、前記矩形領域の縦と横の画素数を設定することを特徴とする請求項1または2に記載の画像描画装置。
  4. 前記変換手段は、前記描画領域の水平方向を座標変換した方向と、前記画像キャッシュの水平方向のなす角度の小さい方が45度を超える場合に、前記描画領域の垂直方向を主走査方向、水平方向を副走査方向として、前記描画領域を被覆する矩形領域を順に選択し、かつ、選択した矩形領域内を走査して画素を選択することを特徴とする請求項1ないし3のいずれか1項に記載の画像描画装置。
  5. 表示画像中に参照画像を変換して表示する領域である描画領域を指定する情報を取得する描画領域取得ステップと、
    前記描画領域に前記参照画像を変換して表示するための、前記描画領域から前記参照画像への座標変換の情報を取得する座標変換取得ステップと、
    前記描画領域を分割して被覆する矩形領域を、前記描画領域から前記参照画像への座標変換で座標変換した領域が、前記参照画像を読み出した画像データを蓄える所定の画像キャッシュの画像上の形に適合するように、前記矩形領域の縦と横の画素数を設定する設定ステップと、
    前記設定ステップで設定した縦と横の画素数で前記描画領域を分割して被覆する1以上の前記矩形領域を生成する生成ステップと、
    所定の走査方向の順に前記矩形領域を選択し、該選択した矩形領域内の走査方向の順番に選択した画素から前記座標変換によって前記参照画像内の画素位置を算出する変換ステップと、
    前記変換ステップで算出した画素位置の画像データを、前記参照画像を記憶しているメモリから読み出す画像取得ステップと、
    前記メモリから読み出した画像データを前記画像キャッシュに蓄えるステップと、
    前記画像キャッシュから前記画像データを読み出して、前記描画領域の画素に変換する描画ステップと、
    を備える画像描画方法。
  6. 前記設定ステップは、前記画像キャッシュのブロックサイズとブロック数に合わせて、少なくとも前記矩形領域に含まれる前記描画領域を座標変換した領域が、前記画像キャッシュの範囲に収まるように、前記矩形領域の縦と横の画素数を設定することを特徴とする請求項5に記載の画像描画方法。
  7. 前記設定ステップは、前記座標変換の倍率に反比例して、前記矩形領域の縦と横の画素数を設定することを特徴とする請求項5または6に記載の画像描画方法。
  8. 前記変換ステップは、前記描画領域の水平方向を座標変換した方向と、前記画像キャッシュの水平方向のなす角度の小さい方が45度を超える場合に、前記描画領域の垂直方向を主走査方向、水平方向を副走査方向として、前記描画領域を被覆する矩形領域を順に選択し、かつ、選択した矩形領域内を走査して画素を選択することを特徴とする請求項5ないし7のいずれか1項に記載の画像描画方法。
  9. コンピュータに、
    表示画像中に参照画像を変換して表示する領域である描画領域を指定する情報を取得する描画領域取得ステップと、
    前記描画領域に前記参照画像を変換して表示するための、前記描画領域から前記参照画像への座標変換の情報を取得する座標変換取得ステップと、
    前記描画領域を分割して被覆する矩形領域を、前記描画領域から前記参照画像への座標変換で座標変換した領域が、前記参照画像を読み出した画像データを蓄える所定の画像キャッシュの画像上の形に適合するように、前記矩形領域の縦と横の画素数を設定する設定ステップと、
    前記設定ステップで設定した縦と横の画素数で前記描画領域を分割して被覆する1以上の前記矩形領域を生成する生成ステップと、
    所定の走査方向の順に前記矩形領域を選択し、該選択した矩形領域内の走査方向の順番に選択した画素から前記座標変換によって前記参照画像内の画素位置を算出する変換ステップと、
    前記変換ステップで算出した画素位置の画像データを、前記参照画像を記憶しているメモリから読み出す画像取得ステップと、
    前記メモリから読み出した画像データを前記画像キャッシュに蓄えるステップと、
    前記画像キャッシュから前記画像データを読み出して、前記描画領域の画素に変換する描画ステップと、
    を実行させることを特徴とするプログラム。
JP2009262099A 2009-11-17 2009-11-17 画像描画装置、画像描画方法およびプログラム Expired - Fee Related JP5455213B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009262099A JP5455213B2 (ja) 2009-11-17 2009-11-17 画像描画装置、画像描画方法およびプログラム
EP10831599.5A EP2503505A4 (en) 2009-11-17 2010-11-17 IMAGE DISPLAY DEVICE, IMAGE PRESENTATION METHOD AND RECORDING MEDIUM
PCT/JP2010/070512 WO2011062205A1 (ja) 2009-11-17 2010-11-17 画像描画装置、画像描画方法および記録媒体
US13/510,190 US8805119B2 (en) 2009-11-17 2010-11-17 Image rendering device, image rendering method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009262099A JP5455213B2 (ja) 2009-11-17 2009-11-17 画像描画装置、画像描画方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2011107965A JP2011107965A (ja) 2011-06-02
JP5455213B2 true JP5455213B2 (ja) 2014-03-26

Family

ID=44059682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009262099A Expired - Fee Related JP5455213B2 (ja) 2009-11-17 2009-11-17 画像描画装置、画像描画方法およびプログラム

Country Status (4)

Country Link
US (1) US8805119B2 (ja)
EP (1) EP2503505A4 (ja)
JP (1) JP5455213B2 (ja)
WO (1) WO2011062205A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5708051B2 (ja) * 2011-03-07 2015-04-30 株式会社リコー 映像処理装置、映像処理システム、テレビ会議システム、遠方監視システム、映像処理方法、及び撮像装置
JP5739723B2 (ja) * 2011-05-10 2015-06-24 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
CN103034465B (zh) * 2011-09-29 2016-04-27 腾讯科技(深圳)有限公司 图像浏览方法及浏览系统
JP6708127B2 (ja) 2014-09-22 2020-06-10 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
JP6808419B2 (ja) * 2016-09-26 2021-01-06 キヤノン株式会社 画像処理システム及びその制御方法
CN107123078A (zh) * 2017-04-25 2017-09-01 北京小米移动软件有限公司 显示图像的方法及装置
CN113741835B (zh) * 2020-05-29 2024-05-24 北京嗨动视觉科技有限公司 走马灯效果实现方法和走马灯效果实现装置
CN111754918B (zh) * 2020-07-30 2023-09-29 京东方科技集团股份有限公司 圆形显示面板的扫描修正方法及显示装置
CN115796119B (zh) * 2023-02-02 2023-04-18 合肥高维数据技术有限公司 基于渲染效果的字体校准方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0228891A (ja) * 1988-07-19 1990-01-30 Sanyo Electric Co Ltd 図形回転処理装置
JP2845946B2 (ja) * 1989-06-14 1999-01-13 株式会社日立製作所 画像データ変換装置
US5359677A (en) * 1990-12-11 1994-10-25 Sharp Kabushiki Kaisha Image reader and facsimile machine using such image reader
US5428546A (en) * 1992-10-16 1995-06-27 Mobile Information Systems Method and apparatus for tracking vehicle location
US5742924A (en) * 1994-12-02 1998-04-21 Nissan Motor Co., Ltd. Apparatus and method for navigating mobile body using road map displayed in form of bird's eye view
JP3865165B2 (ja) * 1996-10-30 2007-01-10 株式会社沖データ 画像データの拡大/縮小方法
US6366287B1 (en) * 1997-05-28 2002-04-02 U.S. Philips Corporation Display device including a cache memory having a plurality of memory segments
US7295221B2 (en) * 1997-10-23 2007-11-13 Canon Kabushiki Kaisha Image processing apparatus and method, and computer-readable memory
JPH11252353A (ja) 1998-03-05 1999-09-17 Dainippon Screen Mfg Co Ltd 画像補間方法および画像補間装置
JPH11306343A (ja) 1998-04-17 1999-11-05 Toshiba Corp 2次元データ回転処理装置
US6330374B1 (en) * 1998-11-13 2001-12-11 Ricoh Company, Ltd. Image manipulation for a digital copier which operates on a block basis
US6674443B1 (en) * 1999-12-30 2004-01-06 Stmicroelectronics, Inc. Memory system for accelerating graphics operations within an electronic device
JP4447865B2 (ja) * 2003-08-01 2010-04-07 ソニー株式会社 地図表示システム、地図データ加工装置、地図表示装置及び地図表示方法
CA2550842A1 (en) * 2003-12-30 2005-07-21 The Trustees Of The Stevens Institute Of Technology Three-dimensional imaging system using optical pulses, non-linear optical mixers and holographic calibration
JP2005228073A (ja) 2004-02-13 2005-08-25 Seiko Epson Corp 画像処理装置、マイクロコンピュータ及び電子機器
JP2007026285A (ja) 2005-07-20 2007-02-01 Kyocera Mita Corp 画像処理装置および画像処理プログラム
JP5079341B2 (ja) * 2006-06-01 2012-11-21 株式会社リコー 印刷データ処理装置
JP2008236085A (ja) 2007-03-16 2008-10-02 Ricoh Co Ltd 画像処理装置
JP4678404B2 (ja) * 2007-12-27 2011-04-27 ソニー株式会社 撮像装置、その制御方法およびプログラム

Also Published As

Publication number Publication date
EP2503505A1 (en) 2012-09-26
JP2011107965A (ja) 2011-06-02
WO2011062205A1 (ja) 2011-05-26
US8805119B2 (en) 2014-08-12
EP2503505A4 (en) 2015-05-27
US20120230607A1 (en) 2012-09-13

Similar Documents

Publication Publication Date Title
JP5455213B2 (ja) 画像描画装置、画像描画方法およびプログラム
CN102460503B (zh) 显示源图像的变形版本的设备和方法
Gribbon et al. A novel approach to real-time bilinear interpolation
JP4713591B2 (ja) 画素サンプリングによるアンチエイリアシングのための方法及びシステム
US5428725A (en) System for performing coordinate transformation of source image data
TW389857B (en) Image drawing apparatus
JP2007249796A (ja) 画像処理装置および画像処理方法、並びにプログラム
JPH1049666A (ja) 断片発生器および断片発生方法
JP2004032484A (ja) 投影型画像表示装置および画像変換方法
US6577776B1 (en) Transforming video images
JPH0481231B2 (ja)
JP4325812B2 (ja) ベクター画像描画回路およびベクター画像描画方法
JP4504861B2 (ja) 画像処理方法及び画像処理装置
JPH11154237A (ja) テクスチャマッピング用メモリ装置
JPH07220059A (ja) 画像メモリアクセス方式と画像処理システム
US5305431A (en) Method and system for rendering polygons on a raster display
JP2913635B2 (ja) ビツトマツプデイスプレイシステムにおける描画方法
JP2015069272A (ja) 画像変形装置および画像変形方法
JP3580229B2 (ja) 表示制御装置
JP6562687B2 (ja) 画像変形装置、画像処理方法、およびプログラム
JPH0525143B2 (ja)
JP2014013278A (ja) 画像処理装置
JP2001244818A (ja) 動画像再生装置および動画像再生方法ならびに情報記録媒体
JPH07129460A (ja) 画像処理方法及びその装置
CN115967785A (zh) 基于fpga仿射逆变换的数据加速处理系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140106

R150 Certificate of patent or registration of utility model

Ref document number: 5455213

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees