JP2009015248A - 画像生成装置、画像生成方法および画像生成プログラム - Google Patents

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

Info

Publication number
JP2009015248A
JP2009015248A JP2007180085A JP2007180085A JP2009015248A JP 2009015248 A JP2009015248 A JP 2009015248A JP 2007180085 A JP2007180085 A JP 2007180085A JP 2007180085 A JP2007180085 A JP 2007180085A JP 2009015248 A JP2009015248 A JP 2009015248A
Authority
JP
Japan
Prior art keywords
buffer
read
image
reading
frame
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
JP2007180085A
Other languages
English (en)
Other versions
JP4776592B2 (ja
JP2009015248A5 (ja
Inventor
Shingo Tanaka
中 信 吾 田
Shinya Murai
井 信 哉 村
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007180085A priority Critical patent/JP4776592B2/ja
Priority to US12/169,169 priority patent/US8665282B2/en
Publication of JP2009015248A publication Critical patent/JP2009015248A/ja
Publication of JP2009015248A5 publication Critical patent/JP2009015248A5/ja
Application granted granted Critical
Publication of JP4776592B2 publication Critical patent/JP4776592B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/399Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/04Partial updating of the display screen
    • 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/0261Improving the quality of display appearance in the context of movement of objects on the screen or movement of the observer relative to the screen

Landscapes

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

Abstract

【課題】ダブルバッファ構造において書き込んだ画像のバッファ間でのコピーの必要を無くして、フレームバッファへのメモリアクセスを減らすことにより、消費電力を削減する。
【解決手段】
1フレームの全部または一部に相当する各領域の画像を書き込むべきバッファを第1および第2のバッファから前記画像の領域毎に選択して書き込み、1フレームの各領域における画像を読み出すべきバッファを前記第1および第2のバッファから前記領域毎に選択して読み出すことにより画像フレームを生成する。ここで、書き込みバッファ選択では、現在のフレームの読み出し期間で読み出されるバッファとは異なるバッファを前記画像の領域毎に選択し、読み出しバッファ選択では、1つ前のフレームの読み出し期間で書き込みが行われた領域に対してはそのときに書き込みが行われたバッファを選択し書き込みが行われなかった領域に対してはそのときに読み出しされたバッファと同じバッファを選択する。
【選択図】図11

Description

本発明は、画像データを記憶媒体に一旦記憶し、記憶された画像データを所定のタイミングで読み出して画像フレームを生成する画像生成装置、画像生成方法、および画像生成プログラムに関する。
パソコンやテレビなど、ディスプレイに画面を表示するために映像信号を出力する装置では、内部処理が画像を生成するタイミングと、ディスプレイが要求する画像信号のタイミングが必ずしも一致しないので、一般に出力画像の情報(画面を構成する画素データの集合)をメモリ上に保存したフレームバッファとよばれるバッファを持つ。フレームバッファは、図 1のように描画する映像が通常は上から下に順次書き込まれ、さらに、映像信号出力のために一定の周期で上から下に順次読み出される。ディスプレイは通常動画表示なのでこの動作が繰り返し行なわれ、随時更新されるフレームバッファに合わせて画面が更新されていく。例えば通常のディスプレイだとリフレッシュレートは60Hzなどなので、読み出しは毎秒60回の周期で行う。書き込みのタイミングは処理系に依存する。
しかしながら、単一のフレームバッファに単純にこのようなアクセスを行うと、書き込みの途中で読み出しが行われる問題がある。すなわち、読み出しのスキャンと書き込みのスキャンの速度が必ずしも一致しないので、例えば読み出しスキャンが書き込みスキャンを追い抜いてしまったり、あるいは、逆に書き込みスキャンが読み出しスキャンを追い抜いてしまったりなどの現象が発生する。図 2は前者の場合を示しているが、このとき、出力画面上には追い抜きが発生した時点から一つ前の画像フレームが読み込まれて表示されることになるので、画面上に異なる時間のフレームが混在してしまう。すると例えば右に動いている物体が画面に表示されているとき、物体が切れたような表示になり、ティアリングと呼ばれる画面が破綻する現象が起こってしまう。
この問題を解決するため、従来では図 3のようにフレームバッファをダブルバッファ構成とし、書き込みを交互に行い、読み出しは常に書き込みを行っていないバッファから読み出すように動作する(特開2005−338498号公報)。このようにすることで追い抜きが発生しなくなり、画面の破綻を防ぐことが出来る。
特開2005−338498号公報
テレビの画面は毎フレームごとに画面全体が更新されるが、例えばパソコンの画面は動いていない部分が多いので、画面は部分的に更新されることが多い。例えば、図 4のように文字を打ったときにはその文字が表示されている領域のみが更新され、図 5のように文書のスクロールをしたときはその文書が表示されている領域のみが更新される。動画を表示している場合も同様にその動画を表示している領域のみが更新される。動画を画面全体に表示している場合は画面全体が更新されることになる。このように、パソコンなどの画面では、画面更新が必要な部分だけ画面の更新が行なわれることが多い。これを前述したフレームバッファの動作で説明すると、読み出しはディスプレイのリフレッシュレートに従って、例えば60Hzという一定の周期で全体を読み出すが、書き込みは任意のタイミングで図6のように画面の更新が必要な領域だけ部分的にフレームバッファに書き込まれる。
書き込みが部分的であっても、書き込まれるタイミングはあくまでも読み出しの周期と一致しているわけではないので、前述した追い越し問題は同様に発生する。よって、これにダブルバッファ方式を適用したいが、次のような問題がある。まずシングルバッファでは図 7のような更新が行なわれるとする。すなわち、まず左に星(1)が描画され、その次に右に星(2)が描画され、最終的に二つの星(1)、星(2)が描画された画面になる。これを単純にダブルバッファで行なうと、図 8のようにまず書き込みバッファである左のバッファに星(1)が書き込まれる。その後にバッファ切り替えが起こったとすると、次の書き込みバッファである右のバッファに星(2)を書き込むことになる。このとき、読み出しは左のバッファから読み出すので、先ほど描画した星(1)が適切に読み出される。しかし、その後にバッファ切り替えが起こると、今度は右のバッファから読み出すことになるが、右のバッファには星(2)のみが書かれており、星(1)が書かれていないので、画面には星(2)しか表示されなくなってしまう。これは、書き込まれる画像が部分的であるがために発生する問題である。
これを単純に回避するためには図 9のような動作になる。すなわち、まず書き込みバッファである左のバッファに星(1)が書き込まれる。その後にバッファ切り替えが起こる際に、書き込みバッファであった左のバッファに更新があった領域、すなわち星(1)を次の書き込みバッファである右のバッファにコピーする。その後に右のバッファに星(2)が書き込まれる。すると、次に右のバッファが読み出しバッファになったとき、右のバッファから星(1)と星(2)が書き込まれた画像フレームを読み出すことが出来る。
このように、部分的な書き込みで画像フレームが更新されるような場合にダブルバッファ方式を適用するには、片方のバッファに更新領域を書き込んだとき、双方のバッファ間で整合性を取るため、バッファ切り替え後に他方のバッファに同じものを書き込んでから、他方のバッファに新たな更新領域を書き込むという動作になる。しかしながら、これはシングルバッファ方式と比べると、バッファ切り替え時にバッファ間のコピーが発生する分、メモリアクセスが増加してしまう。これにより、消費電力が増加するなどの課題がある。
このように従来方式では、部分的な書き込みで画像フレームが更新されるようなシステムにダブルバッファ方式を適用する際に、メモリアクセスが増加してしまう問題がある。
本発明は、書き込んだ画像のバッファ間でのコピーの必要を無くして、フレームバッファへのメモリアクセスを減らすことにより、消費電力を削減するようにした画像生成装置、画像生成方法および画像生成プログラムを提供する。
本発明の一態様としての画像生成装置は、
各々1フレームの画像を記憶可能な第1および第2のバッファを有する記憶手段と、
1フレームの全部または一部における各領域の画像を書き込むべきバッファを前記第1および第2のバッファから前記領域毎に選択する書込バッファ選択手段と、
前記1フレームの全部または一部における各領域の画像を前記書込バッファ選択手段に選択された前記各領域に応じたバッファに書き込む書き込み手段と、
1フレームにおける各領域の画像を読み出すべきバッファを前記第1および第2のバッファから前記領域毎に選択する読出バッファ選択手段と、
一定周期ごとに前記1フレームの各領域における画像を前記バッファ選択手段により選択された前記各領域に応じたバッファから読み出して画像フレームを生成する読み出し手段と、
を備え、
前記書込バッファ選択手段は、前記読み出し手段によるフレームのある読み出し期間において前記書き込み手段により書き込もうとする前記1フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記読み出し手段により前記各領域から読み出されるバッファとは異なるバッファを選択し、
前記読出バッファ選択手段は、前記読み出し手段による前記ある読み出し期間において前記読み出し手段により読み出そうとする前記1フレームの各領域のうち、
前記読み出し手段による1つ前のフレームの読み出し期間における読み出しのときに前記書き込み手段による書き込みが行われた領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに前記書き込み手段による書き込みが行われたバッファを選択し、
前記読み出し手段による前記1つ前のフレームの読み出し期間における読み出しのときに前記書き込み手段による書き込みが行われなかった領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに前記読み出し手段により読み出されたバッファと同じバッファを選択する、
ことを特徴とする。
本発明の一態様としての画像生成方法は、
1フレームの全部または一部に相当する各領域の画像を書き込むべきバッファを、各々1フレームの画像を記憶可能な第1および第2のバッファから前記画像の領域毎に選択する書込バッファ選択ステップと、
前記1フレームの全部または一部における各領域の画像を前記各領域に対応して選択されたバッファにそれぞれ書き込む書き込みステップと、
1フレームの各領域における画像を読み出すべきバッファを前記第1および第2のバッファから前記領域毎に選択する読出バッファ選択ステップと、
一定周期ごとに前記1フレームの各領域における画像を前記領域毎に選択されたバッファから読み出して画像フレームを生成する読み出しステップと、を備え、
前記書込バッファ選択ステップは、フレームのある読み出し期間において書き込もうとする前記1フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記各領域から読み出されるバッファとは異なるバッファを選択し、
前記読出バッファ選択ステップは、前記ある読み出し期間において読み出そうとする前記1フレームの各領域のうち、
前記ある読み出し期間の1つ前のフレームの読み出し期間における読み出しのときに書き込みが行われた領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われたバッファを選択し、
前記1つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われなかった領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに読み出されたバッファと同じバッファを選択する、
ことを特徴とする。
本発明の一態様としての画像生成プログラムは、
1フレームの全部または一部に相当する画像を書き込むべきバッファを、各々1フレームの画像を記憶可能な第1および第2のバッファから前記画像の領域毎に選択する書込バッファ選択ステップと、
前記1フレームの全部または一部における各領域の画像を前記領域毎に選択されたバッファにそれぞれ書き込む書き込みステップと、
1フレームの各領域における画像を読み出すべきバッファを前記第1および第2のバッファから前記領域毎に選択する読出バッファ選択ステップと、
一定周期ごとに前記1フレームの各領域における画像を前記領域毎に選択されたバッファから読み出して画像フレームを生成する読み出しステップと、を備え、
前記書込バッファ選択ステップは、フレームのある読み出し期間において書き込もうとする前記1フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記各領域から読み出されるバッファとは異なるバッファを選択し、
前記読出バッファ選択ステップは、前記ある読み出し期間において読み出そうとする前記1フレームの各領域のうち、
前記ある読み出し期間の1つ前のフレームの読み出し期間における読み出しのときに書き込みが行われた領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われたバッファを選択し、
前記1つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われなかった領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに読み出されたバッファと同じバッファを選択する、
ことを特徴とするコンピュータに実行させる。
本発明により、書き込んだ画像のバッファ間でのコピーが必要なくなり、フレームバッファへのメモリアクセスを減らすことが出来る。これにより、消費電力を削減することが出来る。
(第一の実施の形態)
本発明の第一の実施の形態を図 10に示す。図 10は画像をディスプレイに出力する機器(例えばPC:Personal Computer)の一部であり、画像フレームを2面のバッファ(ダブルバッファ)で記憶するフレームメモリ11と、フレームメモリ11に画面の更新領域の画像を任意のタイミングで任意の領域に書き込む書き込み部12、ディスプレイに画面を出力するためにフレームメモリ11から一定のタイミングで画像全体を読み出す読み出し部13を備える。以下、読み出し部13がフレームの上端から下端までスキャンして画像フレームを1回読み出す間の期間を「読み出しフレーム期間」と呼ぶこととする。現在の読み出しフレーム期間とは、現在読み出し部13が行っているスキャンの開始から終了までの期間を意味し、次の読み出しフレーム期間とは、そのスキャンが終了し、次のフレームを読み出すべく、再びフレームの上端からスキャンを開始して、それが下端まで行くまでの期間を意味する。
画像フレームは例えば解像度XGA(横1024ピクセル縦768ピクセル)であり、ピクセル情報は16ビット(赤5ビット、緑6ビット、青5ビット)で表されるとする。すると、フレームメモリ11には1ピクセル16ビットが横1024ピクセル縦768ピクセル分あり、さらにこれが2面あるので、少なくとも16×1024×768×2=25165824ビットの記憶領域を持つことになる。フレームメモリ11は例えばSDRAMやSRAMなどで実現される。なお、これらのピクセル数や記憶媒体はほんの一例であり、本発明はこれに限らない。
本発明ではさらに、書き込み部12が画像をいずれのバッファに書き込むかを、画像領域毎(たとえばピクセル毎)に選択する領域毎書込バッファ選択部14と、読み出し部13がいずれのバッファから読み出すかを、画像領域毎(たとえばピクセル毎)に選択する領域毎読出バッファ選択部15で構成される。これらの領域毎書込バッファ選択部14と領域毎読出バッファ選択部15の詳細な処理内容は後の実施の形態で述べるので、本実施の形態ではこれらによる本発明の動作概要を基本的な例で示しながら説明する。
まず、最もシンプルな図 11の例から説明する。動作手順を図 12に示す。図 11では、上の二つのフレームバッファ0、1がダブルバッファのそれぞれのバッファを示しており、左上から右下方向への斜線が施されているフレームバッファ0は現在の読み出しバッファであることを示している。フレームの読み出しが開始し(S11)、フレームバッファ0の斜線領域内の点線で囲まれた領域(点線領域)に新たな更新画像を書き込みたいとき、領域毎書込バッファ選択部14は、その部分画像を現在の読み出しバッファとは別のフレームバッファ1に書き込むようにバッファを選択し、書き込み部12は、更新画像を図のようにフレームバッファ1の右上から左下方向への斜線が施された領域に書き込む(S12)。書き込みが完了し、さらにフレームバッファ0からのフレームの読み出しが終了すると(S13)、次の読み出しフレーム期間に移行する(S14)。今度は図の下のように、先ほど更新画像を書き込んだ領域だけフレームバッファ1から読み出し、それ以外の領域はフレームバッファ0から読み出すよう領域毎読出バッファ選択部15は領域毎に読み出しバッファを選択し、読み出し部13はそれに従い読み出しを行う(S15)。フレームの読み出しが完了すると(S16)、次のフレームの読み出しに移る。なお、S14〜S16のフレームの読み出し期間内に書き込み画像が発生すればS12と同様にS14〜S16のフレーム読み出しと並行して本発明にしたがってバッファの選択および更新画像のバッファへの書き込みが行われる。
以上のように動作することで、書き込みと読み出しが異なるバッファにアクセスされるので、追い抜きが発生しなくなる。さらに、書き込み後の新たなフレームの読み出しでは、書き込んだ領域だけ書き込んだバッファから読み出すので、書き込んだ画像の領域だけ更新された画像フレームを読み出すことが出来る。
次に、図 11が終了した状態からさらに更新画像を書き込む場合を示したのが図 13である。図 13では、先ほどの更新領域と重なる形で、少し左下に新たな更新画像が書かれる例を示している。基本原理は先と同様で、やはり読み出しバッファとは別のバッファに書き込む。ただし、それを領域毎に行う。すなわち、今回の更新領域(図中の点線領域)は、フレームバッファ0を読み出しバッファとしている領域(点線領域内左下のL字型領域)と、フレームバッファ1を読み出しバッファとしている領域(点線領域内右上の矩形領域)が存在するが、それぞれの領域において読み出しバッファとは別のバッファに書き込むので、それぞれフレームバッファ1、フレームバッファ0に書き込むことになる。書き込みが完了し、現在の読み出しがフレームの下端まで読み出し、次のフレームの読み出しを行うときは、今回の更新画像を書き込んだ領域内について、今回書き込んだ画像を読み出すべく、それぞれの領域毎に読み出しバッファを反転させる。つまり、結果的には読み出しバッファは図 13の下のようになる。
このように、読み出しバッファが二つのバッファに散らばっている場合でも、領域毎に読み出しバッファをみて、領域毎に異なるバッファに書き込むので、やはり追い越しが発生しなくなる。また、書き込み後の新たなフレームの読み出しでは、書き込んだ領域内の読み出しバッファを領域毎に反転させるので、書き込んだ更新画像を反映した画像フレームを読み出すことが出来る。
更新画像を連続して書き込む場合は図 14のようになる。基本的には前述の動作を連続して行う。今回は更新領域が2つで、左上→左下の順に書き込まれる。それぞれの更新領域において、更新領域内の読み出し領域毎に読み出しバッファをみて、領域毎に別のバッファを選択して書き込む。2つめの更新領域は1つめ更新領域を単純に上書きするようにして、同様に書き込まれる。そして書き込み終了後に読み出しが新たなフレームを読み出すとき、書き込んだ領域では書き込んだ画像を読み出すべく、書き込んだ領域内の読み出しバッファを領域毎に反転させる。
また、従来例で述べた図 9の場合を本発明で行うと図 15のようになる。左上から右下方向への斜線が施された領域は同様に読み出し領域を示す。まず、読み出しバッファがフレームバッファ1だったとすると、星(1)はフレームバッファ0に書き込まれる。星(1)が書き終わると、次の読み出しフレームは星(1)が書かれた領域に関してはフレームバッファ0から読み出し、それ以外の領域はフレームバッファ1から読み出す。その後に星(2)が書き込まれるが、星(2)の領域はやはりフレームバッファ1から読み出されているので、星(2)はフレームバッファ0に書き込まれる。そして星(2)が書き終わると、次の読み出しフレームは、星(1)と星(2)の領域に関してはフレームバッファ0から読み出され、それ以外の領域に関してはフレームバッファ1から読み出される。
以上が本発明の最も基本的な動作である。このような動作を行うことで、書き込みは読み出しとは領域毎に別のバッファにアクセスするので追い抜きが発生せず、さらに、書き込み終了後の新たなフレームの読み出しでは、書き込んだ領域だけ別のバッファから読み出すように動作するので、バッファ間の整合性を考慮してバッファ間で更新領域のコピーをするという動作が不要となる。コピーが不要なのでメモリアクセスを抑えることができ、ひいては消費電力を削減することができる。
(第二の実施の形態)
先の実施の形態では常に追い越しを回避するように動作したが、実際には読み出しバッファと同じバッファに書き込んだ場合でも、追い越しが発生しない場合がある。例えば書き込みスキャンが読み出しスキャンより遅い場合、図 16の場合は追い越しが発生するが、図 17の場合は発生しない。発生しない場合は読み出しバッファと同じバッファに書き込んでも良い。読み出しバッファと別のバッファに書き込むと、書き込んだ画像が読み出されるのは次の読み出しフレームになってしまうが、特に図 17のような場合、読み出しバッファと同じバッファに書き込むと、書き込んだ直後に読み出しが行われるので、画像が読み出されるまでの遅延が小さくなる。よって、画像を書き込む際に追い越しが発生するかの判定をして、発生しない場合は読み出しバッファと同じバッファに書き込んだ方が好ましい。本発明の第二の実施の形態では、このような動作も含めた動作概要を説明する。
図 18は本実施の形態の構成図である。先の実施の形態の図 10に追い越し判定部16が加わっている。まず、更新画像を書き込む前に、追い越し判定部16が書き込みスキャン速度、書き込み開始位置、書き込み終了位置、読み出しスキャン速度、読み出し開始位置、読み出し終了位置などの情報から、画像を書き終わるまでに追い越しが発生するかどうかを判定する。追い越しとは、書き込みスキャンによる読み出しスキャンの追い越しと、読み出しスキャンによる書き込みスキャンの追い越しの両方を含む。
前述の図 11と同様の条件で画像を書き込むときの動作手順を図 19に示す。フレームの読み出しが開始し(S21)、書き込み画像が発生すると(S22)、画像を書き込む前に追い越し判定が行われ(S23)、追い越しが発生しないと判定した場合は(S24のNO)図 20のように動作する。図 20は先と同じく左上から右下方向への斜線が施された領域が読み出し領域を示しており、右上から左下方向へ斜線が施された領域が更新画像の書き込み領域を示している。図 11と異なり、書き込みを読み出し領域に行っている(S25)。読み出し領域に書き込むので、書き込みが終了し、さらにフレームの読み出しが終了した後(S27)、読み出しが新たなフレームを読み出すときも(S28)、読み出しバッファはそのままで変わらない(S29)。画像を書き込むとき、追い越し判定部16が追い越しが発生すると判定した場合は(S24のYES)、第一の実施の形態と同様に図11のように画像の書き込みおよび次のフレームの読み出しが動作する(S26〜S29)。フレームの読み出しが完了すると(S30)、次のフレームの読み出しに移る。なお、S27〜S30のフレームの読み出し期間内に書き込み画像が発生すればS23〜S26のフローにしたがってフレーム読み出しと並行してバッファの選択および書き込み画像のバッファへの書き込みが行われる。
次に、図 13の追い越しが発生しない場合が図 21である。やはり図 13と異なるのは、読み出し領域毎に読み出しバッファを選択して書き込んでいる点である。領域毎にバッファが選択されても、あくまで読み出しバッファを選択して書き込んでいるので、書き込みが終了して読み出しが新たなフレームを読み出す際も、読み出しバッファは変わらない。この場合も、追い越しが発生すると判定された場合は図 13の様に動作する。
次に、図 14に対応して連続して画像が書き込まれる場合を示したのが図 22である。図 22は2つの更新画像が書き込まれるが、一つ目の左上に書き込まれる画像は追い越しが発生すると判定され、二つ目の左下に書き込まれる画像は追い越しが発生しないと判定された場合である。この場合、追い越しが判定された左上の画像は図 14と同様に領域毎に読み出しバッファとは別のバッファに書き込まれ、追い越しが判定されない左下の画像は読み出しバッファと同じバッファに書き込まれる。左上画像の次に左下画像が上書きされているので、書き込みが終了して読み出しが新たなフレームを読み出すときは、左上画像の領域は読み出しバッファが反転されているが、左下画像に関しては反転されておらず、特に、双方が重なっている領域に関しては、上書きされた方が優先される。すなわち、重なっている部分に関しては、読み出しバッファが反転されない。
以上、本実施の形態では、追い抜きが発生するかどうかを画像を書き込む前に判定し、追い抜かない場合は領域毎に読み出しバッファと同じバッファに書き込み、追い抜く場合は領域毎に読み出しバッファとは異なるバッファに書き込む動作を示した。これにより、追い抜きが発生しない場合に、書き込んだ画像をより少ない遅延で読み出すことができる。
(第三の実施の形態)
第二の実施の形態までは本発明の動作概要を示したが、第三の実施の形態では領域毎にバッファを選択する処理の具体的な動作を説明する。本発明の第三の実施の形態を図 23に示す。図 18に加え、図 23は読出バッファBITMAP(読出バッファ保持手段)18と、バッファ反転BITMAP(読出バッファ反転保持手段)19と、BITMAP更新部(読出バッファ更新手段)20を備える。読出バッファBITMAP18は画像フレームの各ピクセルに1ビットが対応しているビットマップ情報である。すなわち、解像度XGA(横1024ピクセル縦768ピクセル)の画像フレームの場合、1024×768=786432ビットの領域を持つ。各ビット情報(読出情報)は、対応するピクセルをダブルバッファのうちいずれのフレームバッファから読み出すかを示しており、例えば0がセットされているピクセルはフレームバッファ0から読み出し、1がセットされているピクセルはフレームバッファ1から読み出すことを意味する。バッファ反転BITMAP19は、読出バッファBITMAP18と1対1で対応した同じサイズの記憶領域をもち、それぞれのビットは画像フレームのピクセルに対応している。例えばここに1(反転情報)が書き込まれているピクセルは、書き込み部12が更新画像を書き込んだ後に読み出し部13が新たなフレームを読み出すとき、読み出しバッファを反転させることを意味する。BITMAP更新部20は、このバッファ反転BITMAP19の情報を用いた読出バッファBITMAP18の反転処理を行い、かつ、バッファ反転BITMAP19を全て0でリセットするというBITMAP更新処理を行う。なお、読出バッファBITMAP18とバッファ反転BITMAP19は例えばSDRAMやSRAMなどの記憶媒体で実現されるが、特にこれらに限るものではない。
動作手順を図 24に示す。具体的な動作は次のようになる。図 11の動作に関して述べると、読出バッファBITMAP18とバッファ反転BITMAP19は図 25のようになる。それぞれのBITMAPは、図の斜線領域には1が書かれており、それ以外には0が書かれていることを意味する。まず、図 11は画像フレームの全領域の読み出しバッファが0の状態から始まるが、これは読出バッファBITMAP18の全てが0であり、これを領域毎読出バッファ選択部15が読み出して、いずれの領域も0であることから、いずれの領域もフレームバッファ0を選択するという動作で実現される。
第二の実施の形態で述べたように、図 11は追い越し判定部16が追い越しを判定したときの動作である。すなわちフレームの読み出しが開始し(S41)、書き込み画像が発生すると(S42)、画像を書き込む前に追い越し判定が行われ(S43)、追い越しが発生すると判定される(S44のYES)。追い越しが発生すると判定されたため、画像の書き込みはフレームバッファ1に対して行われる(S46)。より詳しくは、まず書き込み部12が画像を書き込むときに、領域毎書込バッファ選択部14が読出バッファBITMAP18から書き込む領域に相当する読出バッファ情報を参照し、そこに0がセットされていることから、読み出しバッファはフレームバッファ0と判断する。そして、追い越しが判定されているので、書き込みバッファとして読み出しバッファとは別のバッファであるフレームバッファ1を選択し、書き込み部12がそれに従って画像を書き込むという動作になる。
バッファ反転BITMAP19も全領域0の状態から始まるが、書き込み部12による画像のフレームバッファ1への書き込みが行われると、図 25の中段右の様に領域毎書込バッファ選択部14はバッファ反転BITMAP19の対応する領域に1(更新情報)をセットする(S46)。そして画像の書き込みが終了した後、現在のフレームの読み出しが終了し(S47)、次のフレームの読み出し開始するまでの間(例えば生成する画像の垂直ブランク期間)に、BITMAP更新部20がバッファ反転BITMAP19の全ての情報を読み出し、読出バッファBITMAP18のうち、対応するバッファ反転BITMAP19が1となっている全てのビットを反転する(S48)。具体的には、新たな読出ビット=[読出ビット XOR 反転ビット]という計算を、読出バッファBITMAP18とバッファ反転BITMAP19の対応するビット同士で、全ビットに対して行う。また同時にバッファ反転BITMAP19を全て0(非更新情報)にリセットする(S48)。こうすることで、読出バッファBITMAP18が図 25の左下のようになり、新たなフレームの読み出しが開始すると(S49)、更新後の読出バッファBITMAP18に基づき、更新画像が書かれた部分だけフレームバッファ1から読み出されそれ以外はフレームバッファ0から読み出されるようになる(S50)。フレームの読み出しが完了すると(S51)、次のフレームの読み出しに移る。
図 20のように追い越しが判定されなかった場合は(S44のNO)、読み出しバッファと同じバッファに画像の書き込みが行われ、バッファ反転BITMAP19には1がセットされず全て0のままである(S45)。そして現在のフレームの読み出しが終了し(S47)、次のフレームの読み出しが開始するまでの間に、BITMAP更新処理を行い(S48)、新たなフレームの読み出しが開始する(S49)。バッファ反転BITMAP19には1がセットされておらず全て0のままであるので、新たなフレームの読み出しが開始しても、読出バッファBITMAP18が前回のフレームの読み出しのときから変化しないということになる。
なお、S49〜S51のフレームの読み出し期間内に書き込み画像が発生すればS43〜S46のフローにしたがってフレーム読み出しと並行してバッファ選択および書き込み画像のバッファへの書き込みが(S46が行われる場合はバッファ反転BITMAP19への1のセットも)行われる。
図 13の場合の読出バッファBITMAP18とバッファ反転BITMAP19は図 26のようになる。画像フレームの真ん中あたりの領域はフレームバッファ1から読み出し、それ以外の領域はフレームバッファ0から読み出すという動作は、読出バッファBITMAP18が図 26の左上のようになっていることで実現される。画像の書き込みが行われると、先と同様に対応するバッファ反転BITMAP19に1がセットされ、画像の書込み終了後に次の読み出しフレームに移行する際に、バッファ反転BITMAP19の情報で読出バッファBITMAP18の情報が反転され、結果的に読出バッファBITMAP18は図 26の左下の様になり、図 13の下のように読み出しバッファが選択されるようになる。
図 21のように追い越しが発生しない場合は、画像書き込みが行われて次の読み出しフレームに移行しても、読出バッファBITMAP18とバッファ反転BITMAP19が図 26の上の状態で変化しない。
図 14の場合の読出バッファBITMAP18とバッファ反転BITMAP19は図 27、図 22の場合の読出バッファBITMAP18とバッファ反転BITMAP19は図 28のようになる。連続して更新画像が発生しても、バッファ反転BITMAP19は単純に最初にセットされた情報を後にセットする方で上書きする。例えば図 28の場合、最初に左上の追い越しが発生する画像が書き込まれたときにバッファ反転BITMAP19の相当領域に1がセットされるが、その後に左下の追い越しが発生しない画像が書き込まれたときに相当領域に上書きして0がセットされる。このような動作で、書き込みが終了した後の読み出しフレームでは、前述のように両方の画像が重なった部分は、後に書き込まれた追い越しが起こらない画像が優先されて反転されなくなる。
ここで、BITMAP更新処理を行う際、直前のフレームの読み出し期間中に、書き込み部12から一度もバッファ反転BITMAP19にアクセスすることがなかった場合、バッファ反転BITMAP19は全て0であることがわかっているので、更新処理をスキップしてもよい。これは、読み出しバッファとは別のバッファに書き込まれる画像の書き込みの終了があったかどうかを検知することで実現できる。このような書き込み終了検知部21を備える構成を図 29に示す。このような検知を行い、書き込み終了を検知したときのみBITMAP更新を行い、BITMAP情報へのメモリアクセス量を抑え、それにより消費電力を削減することができ、ひいては本発明の効果をより顕著にすることが出来る。
なお、領域毎の読出バッファ情報と、領域毎の反転バッファ情報をBITMAP情報で管理する例を示したが、本発明はこれに限ることはなく、画像が矩形であれば、矩形の左上のX座標、Y座標、縦幅、横幅などのベクトル形式の情報の集合として管理しても良い。
(第四の実施の形態)
画像は読み出しフレーム期間を跨いで書き込まれる場合がある。すなわち、BITMAP更新部20によるBITMAPの更新処理を行う際、未だ画像の書き込みが終了しておらず、書き込み途中である場合がある。本実施の形態ではこのような場合にも対応するいくつかの構成について述べる。
まず、追い越し判定を行わない場合の基本的な構成を図 30に示す。図 30は図 23と比べて書き込み中検知部22を備える。書き込み中検知では、現在画像を書き込んでいる最中かどうかを検知する。BITMAP更新部20は書き込み中検知部22が書き込み中を検知している場合はBITMAP更新処理を行わない。
動作手順を図 31に、フレームバッファの具体的な動作を図 32に示す。画像の書き込みを行うとき、領域毎書込バッファ選択部14が読み出しバッファとは別のバッファであるフレームバッファ1を選択し、書き込み部12がフレームバッファ1に画像の書き込みを行う(S61〜S63)。BITMAP更新部20は最初の読み出しフレーム期間と2つ目の読み出しフレーム期間の間では画像の書き込み中であるため、書き込み中検知部22が書き込みを検知し(S64のYES)、BITMAP更新を行わない。3つ目の読み出しフレーム期間に移行するときには画像の書き込みが終了しているため(S69のNO)BITMAP更新を行い(S70)、3つ目の読み出しフレーム期間では書き込んだ画像を正しく読み出すことが出来る(S72)。
次に、追い越し判定を行う場合について述べる。追い越し判定を行うと、例えば2つの読み出しフレーム期間に跨った画像の場合、次の読み出しフレーム期間で追い越しが発生する場合は次の読み出しフレーム期間では読み出すことが出来ないので、図 32と同様の動作になり、書き込んだ画像は2つ先のフレーム読み出しで読み出されることになる。しかし、現在の読み出しフレーム期間で追い越しが発生しても、次の読み出しフレーム期間で追い越しが発生しない場合は、次のフレームの読み出しで書き込んだ画像を読み出すことが可能である。このように現在の読み出しフレーム期間での追い越しが発生するかどうかと、次の読み出しフレーム期間で追い越しが発生するかどうかの両方に応じて動作するための構成を図 33に示す。図 33は図 30に加えて追い越し判定部16と次追い越し判定部24と再判定指示部23を備え、BITMAP更新部20が次追い越し判定部24の結果に基づいて更新するかどうかの判断をするところが異なる。追い越し判定部16は前述の通り現在の読み出しフレーム期間で現在書き込んでいる画像で追い越しが発生するかどうかを判定し、次追い越し判定部24は次の読出しフレーム期間で現在書き込んでいる画像の残りの書き込みで追い越しが発生するかどうかを判定する。再判定指示部23は、画像が複数の読み出しフレーム期間に跨って書き込まれる場合に、新たな読み出しフレーム期間になるたびに、追い越し判定部16にはその新たな読み出しフレーム期間で追い越しが発生するか、次追い越し判定部24には新たな読み出しフレーム期間の次の読み出しフレーム期間で追い越しが発生するか、の再判定を指示する。BITMAP更新部20は、書き込み中検知部22が書き込みの途中であることを検知しても、次追い越し判定部24が次の読み出しフレーム期間で追い越しが発生しないことを判定していた場合、BITMAPの更新を行う。そして、領域毎書込バッファ選択部14と、領域毎読出バッファ選択部15は、これら更新された読出バッファBITMAP18情報と追い越し判定情報、次追い越し判定情報に基づいてバッファ選択を行うようにする。
動作手順を図 34に示す。まず、図 32の動作を説明すると、図 32は次の読み出しフレーム期間で追い越しが発生するので(S85のYES)、次追い越し判定部24が追い越しを判定し、現在の読み出しフレーム期間であっても読み出しバッファとは別のフレームバッファ1に書き込まれる(S87)。その後、フレームの読み出しが終了し(S88)、読み出しフレームが次に移行するが、その際、画像は書き込み中であり(S89のYES)、また、次追い越し判定部24は追い越しを判定しているので(S90のYES)、BITMAP更新部20はBITMAP更新を行わず、読み出しバッファはそのままである。次の読み出しフレーム期間になると(S92)、再判定指示部23が追い越し判定部16と次追い越し判定部24に再判定の指示を行い(S93)、それぞれ、追い越しあり(S94のYES)、追い越し無し(画像の書き込みは現在の読み出しフレーム期間で終了するため)の判定を行う。書き込み部12はこの結果に従い、画像の残りの領域を読み出しバッファとは別のフレームバッファ1に書き込む(S97)。そして、読み出しフレーム期間が終了すると(S98)、今度は書き込みが終了しているので(S99のNO)、BITMAP更新部20はBITMAP更新を行う(S101)。読み出しバッファは書き込んだ画像を読み出すように反転され、次の読み出しフレーム期間では書き込んだ画像を読み出せるようになる(S102〜S104)。
次に、2つめの読み出しフレーム期間では追い越しが発生しない場合についてのフレームバッファの具体的な動作を図 35に示す。図 35で書き込まれる画像は、まず現在の読み出しフレーム期間で追い越しが発生するので、追い越し判定部16が追い越しを判定し(S84のYES)、領域毎読出バッファ選択部15は読み出しバッファとは異なるフレームバッファ1を選択し、書き込み部12はフレームバッファ1に画像を書き込む(S87)。その後、現在の読み出しフレーム期間が終了するが(S88)、画像の書き込みが完了していないため、書き込み中検知部22が画像の書き込み最中であることを検知する(S89のYES)。ただし、今回は次追い越し判定部24が追い越しを判定していないので(S90のNO)、前述の動作に従いBITMAP更新処理を行う(S91)。すると、次の読み出しフレーム期間では先ほどの読み出しフレーム期間に書き込んだ領域は読み出しバッファになるので、読み出すことが出来る。さらに、ここで再判定指示部23が追い越し判定部16および次追い越し判定部24に再判定の指示を行い、追い越し判定部16が今回の読み出しフレームでは追い越しが発生しないことを判定し(S94のNO)、次追い越し判定部24も追い越し無し(画像の書き込みは現在の読み出しフレーム期間で終了するため)の判定を行う(S95のNO)。これにより領域毎書込バッファ選択部14は書き込みバッファを読み出しバッファと同じフレームバッファ0を選択して、書き込み部12はフレームバッファ0に書き込み(S96)、画像の残りの領域もこの読み出しフレーム期間で読み出すことが可能となる。なお、追い越し判定部16の再判定結果は、実際は前の読み出しフレーム期間での次追い越し判定部24の判定結果と同じなので、その情報を流用してもよい。
また、図 34のBITMAP更新処理をするかどうかの判定に、第三の実施の形態の最後で述べた書き込み終了の検知がなかった場合は更新をスキップする判定を組み合わせたものを図 36に示す。すなわち図34のS88〜S92、およびS98〜S102は、図36のフローに置換することが可能である。図 34と比べると、書き込み中でなく(S112のNO)、かつ、書き込み終了を検知しなかった場合に(S114のNO)、BITMAP更新処理を行わないところが異なる。
画像の書き込みが3つ以上の読み出しフレーム期間に跨ぐときでも、新たな読み出しフレームにかわるたびに上記の動作を繰り返すことで同様に処理することが出来る。
このように前述までの実施の形態に従うと、画像が複数の読み出しフレーム期間を跨いで書き込まれる場合、次の読み出しフレーム期間で追い越しが発生しない場合でも、書き込んだ画像は2つ先のフレームで読み出されることになるが、本実施の形態に従うと、次の読み出しフレーム期間で追い越しが発生しない場合では、書き込んだ画像を1つ先のフレームで読み出すことができるようになり、画像の読み出しの遅延を低減することが出来る。
(第五の実施の形態)
第四の実施の形態では、読み出しフレーム期間を跨いで画像の書き込みが行われる場合について述べた。第五の実施の形態では、同じく読み出しフレーム期間を跨いで画像の書き込みが行われる場合に、同じ読み出しフレーム期間に既に書き込まれた画像をより早く読み出すための形態について述べる。
例えば図 37のような場合、まず左上に追い越しが発生する画像が、読み出しバッファであるフレームバッファ1とは別のフレームバッファ0に書き込まれる。その後に、同じ読み出しフレーム期間の間にその右側に画像が書き込まれる。この画像は読み出しフレーム期間を跨いで書き込まれ、跨いだ後の読み出しフレームで追い越しが発生するので、読み出しバッファとは別のフレームバッファ0に書き込まれ、2つ先の読み出しフレームで読み出されることとなる。このとき問題となるのは最初に書き込まれた画像で、この画像は最初の読み出しフレーム期間で書き込みが終了しているので、次の読み出しフレーム期間、すなわち、1つ先の読み出しフレーム期間で読み出すことが可能なはずである。しかし、前述までの実施の形態だと、2つ目の画像と同じく2つ先の読み出しフレームで読み出されることになり、遅延が生じてしまう。
これを解決するには図 38のような構成をとる。図 38は図 33と比べ、図 29で述べた書き込み終了検知部21と、反転リセットBITMAP(更新反転/非反転情報保持手段)25を備える。BITMAP更新部20がバッファ反転BITMAP19を更新する際、前述までの実施の形態ではバッファ反転BITMAP19を全て0にリセットしたが、今回は反転リセットBITMAP25の内容をコピーする形でバッファ反転BITMAP19の情報を更新する。また同時に今度は反転リセットBITMAP25の情報を全て0(更新非反転情報)にリセットする。またBITMAP更新部20は、書き込み終了検知部21が画像の書き込み終了を検知していると、たとえ画像の書き込み中であっても、さらには、その画像が次の読み出しフレーム期間で追い越されることを次追い越し判定部24が判定していても、BITMAP更新を行う。この部分に関する動作手順を図 39に示す。これは図 34のBITMAP更新処理の判定部分の置き換えとなる。すなわち図34のS88〜S92、およびS98〜S102は、図39のフローに置換される。また、図 39のBITMAP更新処理をするかどうかの判定に、第三の実施の形態の最後で述べた書き込み終了の検知がなかった場合は更新をスキップする判定を組み合わせたものを図 40に示す。図 39と比べると、書き込み終了を検知しなく(S132のNO)かつ書き込み中でない場合に(S133のNO)、BITMAP更新処理を行わないところが異なる。
フレームバッファの動作の手順を図 41、読出バッファBITMAP18とバッファ反転BITMAP19と反転リセットBITMAP25の動作の手順を図 42に示す。まず、図 37と同様に図 41のように左上に画像が書き込まれ、次に、その右側に読み出しフレーム期間を跨いで書き込まれる画像が書き込まれる。そのとき、書き込み終了検知部21が現在の読み出しフレーム期間で既に別の画像の書き込み終了があったことを検知すると、2つめの画像に関してはバッファ反転BITMAP19に1をセットするのではなく、反転リセットBITMAP25に1(更新反転情報)をセットする。次に、BITMAP更新部20は、書き込み終了検知部21が画像の書き込み終了を検知しているので、前述の様にBITMAP更新を行う。すると、まず読出バッファBITMAP18はバッファ反転BITMAP19の情報により、1つめの画像を読み出すように読み出しバッファが反転される。同時に、バッファ反転BITMAP19は反転リセットBITMAP25の情報がコピーされるので、現在書き込んでいる2つめの画像をさらにその次の読み出しフレーム期間で読み出すべく、既に書き込んだ領域に関して1がセットされる。そして画像の残りの領域の書き込みが終了し、その部分のバッファ反転BITMAP19へのセットも終了し、次の読み出しフレーム期間に移行する際にBITMAP更新が行われると、2つめに書いた画像の領域のバッファ反転BITMAP19に1がセットされているので、その領域が読み出されるように読み出しバッファが反転され、次の読み出しフレーム期間では2つめの画像を読み出すことが出来る。
ただし、1つめの画像と2つめの画像が重なっている場合は、2つめの画像が1つめの画像を上書きしてしまう。すると、次の読み出しフレームで2つめの画像の上書きした部分が読み出されてしまうという問題がある。このような場合にも対処する構成を図 43に示す。図 43は図 38と比べ、領域毎書込バッファ選択部14がバッファ反転BITMAP19も参照してバッファ選択を行うことと、書き込み部12に書き込みの待ちを要求する書き込み待ち要求部28を備えることが異なる。画像フレームの動作の手順を図 44、読出バッファBITMAP18とバッファ反転BITMAP19と反転リセットBITMAP25の動作の手順を図 45に示す。まず、先ほどと同じように左側に1つめの追い越しが発生する画像が書き込まれる。次にその右側に、読み出しフレーム期間を跨いで書き込まれ、さらに次の読み出しフレーム期間で追い抜きが発生する、2つめの画像が書き込まれる。そのとき、2つ目の画像の書き込み領域を選択する際、領域毎書込バッファ選択部14はバッファ反転BITMAP19も参照し、次の読み出しフレーム期間での読み出しフレームとは別のフレームを選択する。つまり、現在の読み出しフレームは読出バッファBITMAP18を参照すればよいが、次の読み出しフレーム期間の読み出しフレームは[読出バッファBITMAP18のビット XOR バッファ反転BITMAP19のビット]で表されるので、領域毎書込バッファ選択部14はこの計算を行い、求められたバッファとは別のバッファを選択する。こうすることにより、先ほどの1つめの画像と2つめの画像に重なりがない場合はバッファ反転BITMAP19には0が入っているので、先ほどと同じく現在の読み出しバッファとは別のバッファであるフレームバッファ0を選択することになるが、重なりがある場合は反転ビットが1なので、それとは別のバッファ、すなわち、現在の読出しバッファであるフレームバッファ1を選択することになる。そして、重なりがある部分について書き込み部12はフレームバッファ1に、重なりがない部分についてフレームバッファ0に書き込み、さらに、先と同じようにバッファ反転BITMAP19ではなく反転リセットBITMAP25の2つ目の画像の領域に反転情報を書き込む。
これは、本来ならば第三のフレームバッファを設けて第三のフレームバッファに書き込むべきものを、読み出しバッファである第一のバッファに書き込み、第三のバッファを第一のバッファで代用しているために必要となる処理である。つまり、現在の読み出しフレーム期間では読み出し部13はもともと読み出しバッファに書き込まれている画像を読み出すべきであり、ここに今から書き込まれる2つ目の画像を読み出すべきではない。そこで、この2つ目の画像が書き込まれる領域、すなわち、1つ目の画像と2つ目の画像が重なった領域を、読み出しスキャンが通り過ぎるまで書き込み部12が書き込みを待つように、書き込み待ち要求部28が書き込み部12に待ち要求を出す。書き込み部12はそれに従って書き込みを待ち、読み出しスキャンが通り過ぎたら書き込みを開始する。こうすることによって、読み出し部13が現在のフレーム期間で2つめの画像を読み出してしまうことはなくなる。その後の処理は先ほどの場合と同様で、次のBITMAP更新にてバッファ反転BITMAP19によって読出バッファBITMAP18が更新され、次の読み出しフレーム期間では1つめの画像が読み出される。さらに、反転リセットBITMAP25によってバッファ反転BITMAP19が更新されるので既に画像が書き込まれた部分は反転ビットがセットされており、残りの領域の書き込みで残りの領域にもセットされるので、その次の読出しフレーム期間では2つ目の画像が読み出される。
以上、本実施の形態により、読み出しフレームを跨いで画像の書き込みが行われる場合に、同じ読み出しフレーム期間で既に書き込まれた画像を次のフレームで読み出すことが可能となり、画像の読み出しの遅延を低減することが出来る。
なお、上記では簡単のため反転リセットBITMAP25をビットマップ形式で保存する例を示したが、前述の様にBITMAP情報はベクトル形式などで情報を保存してもよい。特に反転リセットBITMAP25は単一画像の領域情報のみ保存すればよいので、ベクトル形式で情報を記憶する方がよりビット情報を少なくすることができ、好ましい。
(第六の実施の形態)
第三の実施の形態では領域毎にバッファを選択する具体的な動作を説明したが、本実施の形態ではそのもう1つの方法を説明する。本実施の形態を図 46に示す。図 18に加え、図 46は読出バッファBITMAP18と、次読出バッファBITMAP(次読出バッファ保持手段)32と、BITMAP更新部31を備える。読出バッファBITMAP18は画像フレームの各ピクセルに1ビットが対応しているビットマップ情報である。すなわち、解像度XGA(横1024ピクセル縦768ピクセル)の画像フレームの場合、1024×768=786432ビットの領域を持つ。各ビット情報(読出情報)は、対応するピクセルをダブルバッファのうちいずれのフレームバッファから読み出すかを示しており、例えば0がセットされているピクセルはフレームバッファ0から読み出し、1がセットされているピクセルはフレームバッファ1から読み出すことを意味する。次読出バッファBITMAP32は、読出バッファBITMAP18と1対1で対応した同じサイズの記憶領域をもち、それぞれのビットは画像フレームのピクセルに対応している。それぞれのビット(読出情報)は次の読出しフレーム期間で対応するピクセルをダブルバッファのうちいずれのフレームバッファから読み出すかを示している。BITMAP更新部31は、この次読出バッファBITMAP32の情報を読出バッファBITMAP18にコピーすることでBITMAP更新処理を行う。なお、読出バッファBITMAP18と次読出バッファBITMAP32は例えばSDRAMやSRAMなどの記憶媒体で実現されるが、特にこれらに限るものではない。
動作手順を図 24に示す。具体的な動作は次のようになる。図 11の動作に関して述べると、読出バッファBITMAP18と次読出バッファBITMAP32は図 47のようになる。それぞれのBITMAPは、図の斜線領域には1が書かれており、それ以外には0が書かれていることを意味する。まず、図 11は画像フレームの全領域の読み出しバッファが0の状態から始まるが、これは読出バッファBITMAP18の全てが0であり、これを領域毎読出バッファ選択部15が読み出して、いずれの領域も0であることから、いずれの領域もフレームバッファ0を選択するという動作で実現される。
第二の実施の形態で述べたように、図 11は追い越し判定部16が追い越しを判定したときの動作であり、画像の書き込みはフレームバッファ1に対して行われる。これは、まず書き込み部12が画像を書き込むときに、領域毎書込バッファ選択部14が読出バッファBITMAP18から書き込む領域に相当する読出バッファ情報を参照し、そこに0がセットされていることから、読み出しバッファはフレームバッファ0と判断する。次に、追い越しが判定されている場合はその別のバッファであるフレームバッファ1を選択し、書き込み部12がそれに従って画像を書き込むという動作になる。
次読出バッファBITMAP32も全領域0の状態から始まるが、書き込み部12による画像のフレームバッファ1への書き込みが行われると、図 47の中段右の様に書き込み部12は次読出バッファBITMAP32の対応する領域(図 47の中段左の点線部)に、読出バッファBITMAP18の対応する領域の値を反転した値、すなわち1をセットする。そして画像の書き込みが終了した後、現在のフレームの読み出しが終了し、次のフレームの読み出し開始するまでの間(例えば生成する画像の垂直ブランク期間)に、BITMAP更新部31が次読出バッファBITMAP32の全ての情報を読み出し、対応する読出バッファBITMAP18にコピーする。こうすることで、読出バッファBITMAP18が図 47の左下のようになり、新たなフレームの読み出しは、更新画像が書かれた部分だけフレームバッファ1から読み出すようになる。
図 20のように追い越しが判定されなかった場合は、次読出バッファBITMAP32の値が更新されないので、次の読み出しフレームに移行しても読出バッファBITMAP18が変化しないということになる。
図 13の場合の読出バッファBITMAP18と次読出バッファBITMAP32は図 48のようになる。画像フレームの真ん中あたりの領域はフレームバッファ1から読み出し、それ以外の領域はフレームバッファ0から読み出すという動作は、読出バッファBITMAP18が図 48の左上のようになっていることで実現される。画像の書き込みが行われると、先と同様に対応する次読出バッファBITMAP32に読出BITMAPの対応する領域の値を反転した値がセットされ、画像の書込み終了後に次の読み出しフレームに移行する際に、BITMAP更新部31によって次読出バッファBITMAP32の情報が読出バッファBITMAP18にコピーされ、結果的に読出バッファBITMAP18は図 48の左下の様になり、図 13の下のように読み出しバッファが選択されるようになる。
図 21のように追い越しが発生しない場合は、画像書き込みが行われて次の読み出しフレームに移行しても、読出バッファBITMAP18と次読出バッファBITMAP32が図 48の上の状態で変化しない。
図 14の場合の読出バッファBITMAP18と次読出バッファBITMAP32は図 49、図 22の場合の読出バッファBITMAP18と次読出バッファBITMAP32は図 50のようになる。連続して更新画像が発生しても、次読出バッファBITMAP32は単純に最初にセットされた情報を後にセットする方で上書きする。例えば図 50の場合、最初に左上の追い越しが発生する画像が書き込まれたときに次読出バッファBITMAP32の相当領域に読出バッファBITMAP18の相当領域の値を反転した値がセットされるが、その後にそのすぐ右下に追い越しが発生しない画像が書き込まれると、その部分は読出バッファBITMAP18の相当領域の値で上書きされる。このような動作で、書き込みが終了した後の読み出しフレームでは、前述のように両方の画像が重なった部分は、後に書き込まれた追い越しが起こらない画像が優先される。
ここで、BITMAP更新処理を行う際、直前のフレームの読み出し期間中に、書き込み部12から一度も次読出バッファBITMAP32にアクセスすることがなかった場合、次読出バッファBITMAP32は値が変わっていないことがわかっているので、更新処理をスキップしてもよい。これは、読み出しバッファとは別のバッファに書き込まれる画像の書き込みの終了があったかどうかを検知することで実現できる。このような書き込み終了検知部21を備える構成を図 51に示す。このような検知を行い、書き込み終了を検知したときのみBITMAP更新を行い、BITMAP情報へのメモリアクセス量を抑え、それにより消費電力を削減することができ、ひいては本発明の効果をより顕著にすることが出来る。
なお、領域毎の読出バッファ情報と、領域毎の次読出しバッファ情報をBITMAP情報で管理する例を示したが、本発明はこれに限ることはなく、画像が矩形であれば、矩形の左上のX座標、Y座標、縦幅、横幅などのベクトル形式の情報の集合として管理しても良い。
(第七の実施の形態)
画像は読み出しフレーム期間を跨いで書き込まれる場合がある。すなわち、BITMAP更新部31によるBITMAPの更新処理を行う際、未だ画像の書き込みが終了しておらず、書き込み途中である場合がある。本実施の形態ではこのような場合にも対応するいくつかの構成について述べる。
ます、追い越し判定を行わない場合の基本的な構成を図 52に示す。図 52は図 46と比べて書き込み中検知部22を備える。書き込み中検知部22では、現在画像を書き込んでいる最中かどうかを検知する。BITMAP更新部31は書き込み中検知部22が書き込み中を検知している場合はBITMAP更新処理を行わない。
動作手順を図 31に、フレームバッファの具体的な動作を図 32に示す。画像の書き込みを行うとき、領域毎書込バッファ選択部14が読み出しバッファとは別のバッファであるフレームバッファ1を選択し、書き込み部12がフレームバッファ1に画像の書き込みを行う。BITMAP更新部31は最初の読み出しフレーム期間と2つ目の読み出しフレーム期間の間では画像の書き込み中であるため、書き込み中検知部22が書き込み中であることを検知し、BITMAP更新を行わない。3つ目の読み出しフレーム期間に移行するときには画像の書き込みが終了しているためBITMAP更新を行うので、3つ目の読み出しフレーム期間では書き込んだ画像を正しく読み出すことが出来る。
次に、追い越し判定を行う場合について述べる。追い越し判定を行うと、例えば2つの読み出しフレーム期間に跨った画像の場合、次の読み出しフレーム期間で追い越しが発生する場合は次の読み出しフレーム期間では読み出すことが出来ないので、図 32と同様の動作になり、書き込んだ画像は2つ先のフレーム読み出しで読み出されることになる。しかし、現在の読み出しフレーム期間で追い越しが発生しても、次の読み出しフレーム期間で追い越しが発生しない場合は、次のフレームの読み出しで書き込んだ画像を読み出すことが可能である。このように現在の読み出しフレーム期間での追い越しが発生するかどうかと、次の読み出しフレーム期間で追い越しが発生するかどうかの両方に応じて動作するための構成を図 53に示す。図 53は図 52に加えて追い越し判定部16と次追い越し判定部24と再判定指示部23を備え、BITMAP更新部31が次追い越し判定部24の結果に基づいて更新するかどうかの判断をするところが異なる。追い越し判定部16は前述の通り現在の読み出しフレーム期間で現在書き込んでいる画像で追い越しが発生するかどうかを判定し、次追い越し判定部24は次の読出しフレーム期間で現在書き込んでいる画像の残りの書き込みで追い越しが発生するかどうかを判定する。再判定指示部23は、画像が複数の読み出しフレーム期間に跨って書き込まれる場合に、新たな読み出しフレーム期間になるたびに、追い越し判定部16にはその新たな読み出しフレーム期間で追い越しが発生するか、次追い越し判定部24には新たな読み出しフレーム期間の次の読み出しフレーム期間で追い越しが発生するか、の再判定を指示する。BITMAP更新部31は、書き込み中検知部22が書き込みの途中であることを検知しても、次追い越し判定部24が次の読み出しフレーム期間で追い越しが発生しないことを判定した場合、BITMAPの更新を行う。そして、領域毎書込バッファ選択部14と、領域毎読出バッファ選択部15は、これら更新された読出バッファBITMAP18と追い越し判定情報、次追い越し判定情報に基づいてバッファ選択を行うようにする。
動作手順を図 34に示す。まず、図 32の動作を説明すると、図 32は次の読み出しフレーム期間で追い越しが発生するので、次追い越し判定部24が追い越しを判定し、現在の読み出しフレーム期間であっても読み出しバッファとは別のフレームバッファ0に書き込まれる。その後、読み出しフレームが次に移行するが、その際、画像は書き込み中であり、また、次追い越し判定部24は追い越しを判定しているので、BITMAP更新部31はBITMAP更新を行わず、読み出しバッファはそのままである。次の読み出しフレーム期間になると、再判定指示部23が追い越し判定部16と次追い越し判定部24に再判定の指示を行い、それぞれ、追い越しあり、追い越し無し(画像の書き込みは現在の読み出しフレーム期間で終了するため)の判定を行う。書き込み部12はこの結果に従い、画像の残りの領域を読み出しバッファとは別のフレームバッファ0に書き込む。そして、読み出しフレーム期間が終了すると、今度は書き込みが終了しているので、BITMAP更新部31はBITMAP更新を行う。読み出しバッファは書き込んだ画像を読み出すように反転され、次の読み出しフレーム期間では書き込んだ画像を読み出せるようになる。
次に、2つめの読み出しフレーム期間では追い越しが発生しない場合についてのフレームバッファの具体的な動作を図 35に示す。図 35で書き込まれる画像は、まず現在の読み出しフレーム期間で追い越しが発生するので、追い越し判定部16が追い越しを判定し、領域毎読出バッファ選択部15は読み出しバッファとは異なるフレームバッファ1を選択し、書き込み部12はフレームバッファ1に画像を書き込む。その後、現在の読み出しフレーム期間が終了するが、画像の書き込みが完了していないため、書き込み中検知部22が画像の書き込み最中であることを検知する。ただし、今回は次追い越し判定部24が追い越しを判定しないので、前述の動作に従いBITMAP更新処理を行う。すると、次の読み出しフレーム期間では先ほどの読み出しフレーム期間に書き込んだ領域は読み出しバッファになるので、読み出すことが出来る。さらに、ここで再判定指示部23が追い越し判定部16に再判定の指示を行うので、追い越し判定部16が今回の読み出しフレームでは追い越しが発生しないことを判定し、領域毎書込バッファ選択部14は書き込みバッファを読み出しバッファと同じフレームバッファ0を選択し、書き込み部12はフレームバッファ0に書き込み、画像の残りの領域もこの読み出しフレーム期間で読み出すことが可能となる。なお、追い越し判定部16の再判定結果は、実際は前の読み出しフレーム期間での次追い越し判定部24の判定結果と同じなので、その情報を流用してもよい。
また、図 34のBITMAP更新処理をするかどうかの判定に、第三の実施の形態の最後で述べた書き込み終了の検知がなかった場合は更新をスキップする判定を組み合わせたものを図 36に示す。図 34と比べると、書き込み中でなく、かつ、書き込み終了を検知しなかった場合に、BITMAP更新処理を行わないところが異なる。
画像の書き込みが3つ以上の読み出しフレーム期間に跨ぐときでも、新たな読み出しフレームにかわるたびに上記の動作を繰り返すことで同様に処理することが出来る。
このように前述までの実施の形態に従うと、画像が複数の読み出しフレーム期間を跨いで書き込まれる場合、次の読み出しフレーム期間で追い越しが発生しない場合でも、書き込んだ画像は2つ先のフレームで読み出されることになるが、本実施の形態に従うと、次の読み出しフレーム期間で追い越しが発生しない場合では、書き込んだ画像を1つ先のフレームで読み出すことができるようになり、画像の読み出しの遅延を低減することが出来る。
(第八の実施の形態)
第七の実施の形態では、読み出しフレーム期間を跨いで画像の書き込みが行われる場合について述べた。本実施の形態では、同じく読み出しフレーム期間を跨いで画像の書き込みが行われる場合に、同じ読み出しフレーム期間に既に書き込まれた画像をより早く読み出すための形態について述べる。
例えば図 37のような場合、まず左上に追い越しが発生する画像が読み出しバッファであるフレームバッファ1とは別のフレームバッファ0に書き込まれる。その後に、同じ読み出しフレーム期間の間にその右側に画像が書き込まれる。この画像は読み出しフレーム期間を跨いで書き込まれ、跨いだ後の読み出しフレームで追い越しが発生するので、読み出しバッファとは別のフレームバッファ0に書き込まれ、2つ先の読み出しフレームで読み出されることとなる。このとき問題となるのは最初に書き込まれた画像で、この画像は最初の読み出しフレーム期間で書き込みが終了しているので、次の読み出しフレーム期間、すなわち、1つ先の読み出しフレーム期間で読み出すことが可能なはずである。しかし、前述までの実施の形態だと、2つ目の画像と同じく2つ先の読み出しフレームで読み出されることになり、遅延が生じてしまう。
これを解決するには図 54のような構成をとる。図 54は図 53と比べ、図 29で述べた書き込み終了検知部21と、バッファリセットBITMAP(次読出バッファ反転保持手段)33を備える。BITMAP更新部31は、次読出バッファBITMAP32を更新する際、次読出バッファBITMAP32の値を読出バッファBITMAP18にコピーすると共に、バッファリセットBITMAP33の1(反転情報)となっている領域に関して、次読出BITMAPの対応する領域の値を反転することで更新を行う。また同時に今度はバッファリセットBITMAP33の情報を全て0(非反転情報)にリセットする。またBITMAP更新部31は、書き込み終了検知部21が画像の書き込み終了を検知していると、たとえ画像の書き込み中であっても、さらには、その画像が次の読み出しフレーム期間で追い越されることを次追い越し判定部24が判定していても、BITMAP更新を行う。この部分に関する動作手順を図 39に示す。これは図 34のBITMAP更新処理の判定部分の置き換えとなる。また、図 39のBITMAP更新処理をするかどうかの判定に、第三の実施の形態の最後で述べた書き込み終了の検知がなかった場合は更新をスキップする判定を組み合わせたものを図 40に示す。図 39と比べると、書き込み中でなく、かつ、書き込み終了を検知しなかった場合に、BITMAP更新処理を行わないところが異なる。
フレームバッファの動作の手順を図 41、読出バッファBITMAP18と次読出バッファBITMAP32とバッファリセットBITMAP33の動作の手順を図 55に示す。まず、図 37と同様に図 41のように左上に画像が書き込まれ、次に、その右側に読み出しフレーム期間を跨いで書き込まれる画像が書き込まれる。そのとき、書き込み終了検知部21が現在の読み出しフレーム期間で既に別の画像の書き込み終了があったことを検知すると、2つめの画像に関しては次読出バッファBITMAP32に値をセットするのではなく、バッファリセットBITMAP33に1をセットする。次に、BITMAP更新部31は、書き込み終了検知部21が画像の書き込み終了を検知しているので、前述の様にBITMAP更新を行う。すると、まず読出バッファBITMAP18は次読出バッファBITMAP32の情報により、1つ目の画像を読み出すように読み出しバッファが更新され、この段階で1つ目の画像を読み出すことが出来る。同時に、次読出バッファBITMAP32はバッファリセットBITMAP33の1となっている領域の値が反転されるので、現在書き込んでいる2つ目の画像をさらにその次の読み出しフレーム期間で読み出すべく、2つ目の画像の既に書き込んだ領域に関して1がセットされる。そして画像の残りの領域の書き込みが終了し、その部分の次読出バッファBITMAP32への値のセットも終了し、次の読み出しフレーム期間に移行する際にBITMAP更新が行われると、2つ目に書いた画像が読み出されるように読出バッファBITMAP18が更新され、次の読み出しフレーム期間では2つ目の画像を読み出すことが出来る。
ただし、1つ目の画像と2つ目の画像が重なっている場合は、2つ目の画像が1つ目の画像を上書きしてしまう。すると、次の読み出しフレームで2つ目の画像の上書きした部分が読み出されてしまうという問題がある。このような場合にも対処する構成を図 56に示す。図 56は図 54と比べ、領域毎書込バッファ選択部14が次読出バッファBITMAP32も参照してバッファ選択を行うことと、書き込み部12に書き込みの待ちを要求する書き込み待ち要求部28を備えることが異なる。画像フレームの動作の手順を図 44、読出バッファBITMAP18と次読出バッファBITMAP32とバッファリセットBITMAP33の動作の手順を図 57に示す。まず、先ほどと同じように左側に1つ目の追い越しが発生する画像が書き込まれる。次にその右側に、読み出しフレーム期間を跨いで書き込まれ、さらに次の読み出しフレーム期間で追い抜きが発生する、2つ目の画像が書き込まれる。そのとき、2つ目の画像の書き込み領域を選択する際、領域毎書込バッファ選択部14は次読出バッファBITMAP32も参照し、次の読み出しフレーム期間での読み出しフレームとは別のフレームを選択する。つまり、現在の読み出しフレームは読出バッファBITMAP18を参照すればよいが、次の読み出しフレーム期間の読み出しフレームは次読出バッファBITMAP32で表されるので、領域毎書込バッファ選択部14はその値とは別のバッファを選択する。こうすることにより、先ほどの1つ目の画像と2つ目の画像に重なりがない場合は次読出バッファBITMAP32には0が入っているので、先ほどと同じく現在の読み出しバッファとは別のバッファであるフレームバッファ0を選択することになるが、重なりがある場合は別のバッファであるフレームバッファ1を選択することになる。そして、書き込み部12は重なりがある部分についてフレームバッファ1に、重なりがない部分についてフレームバッファ0に書き込み、さらに、先と同じように次読出バッファBITMAP32ではなくバッファリセットBITMAP33の2つ目の画像の領域に反転情報を書き込む。
これは、本来ならば第三のフレームバッファを設けて第三のフレームバッファに書き込むべきものを、読み出しバッファである第一のバッファに書き込み、第三のバッファを第一のバッファで代用しているために必要となる処理である。つまり、現在の読み出しフレーム期間では読み出し部13はもともと読み出しバッファに書き込まれている画像を読み出すべきであり、ここに今から書き込まれる2つ目の画像を読み出すべきではない。そこで、この2つ目の画像が書き込まれる領域、すなわち、1つ目の画像と2つ目の画像が重なった領域を、読み出しスキャンが通り過ぎるまで書き込み部12が書き込みを待つように、書き込み待ち要求部28が書き込み部12に待ち要求を出す。書き込み部12はそれに従って書き込みを待ち、読み出しスキャンが通り過ぎたら書き込みを開始する。こうすることによって、読み出し部13が現在のフレーム期間で2つ目の画像を読み出してしまうことはなくなる。その後の処理は先ほどの場合と同様で、次のBITMAP更新にて次読出バッファBITMAP32によって読出バッファBITMAP18が更新され、次の読み出しフレーム期間では1つ目の画像が読み出される。さらに、バッファリセットBITMAP33によって次読出バッファBITMAP32が更新されるので、次読出バッファBITMAP32の既に画像が書き込まれた部分は読出バッファBITMAP18の反転された値がセットされており、残りの領域の書き込みで残りの領域にも反転された値がセットされるので、その次の読出しフレーム期間では2つ目の画像が読み出される。
以上、本実施の形態により、読み出しフレームを跨いで画像の書き込みが行われる場合に、同じ読み出しフレーム期間で既に書き込まれた画像を次のフレームで読み出すことが可能となり、画像の読み出しの遅延を低減することが出来る。
なお、上記では簡単のためバッファリセットBITMAP33をビットマップ形式で保存する例を示したが、前述の様にBITMAP情報はベクトル形式などで情報を保存してもよい。特にバッファリセットBITMAP33は単一画像の領域情報のみ保存すればよいので、ベクトル形式で情報を記憶する方がよりビット情報を少なくすることができ、好ましい。
(第九の実施の形態)
本実施の形態では、より具体的な実装の形態について述べる。従来技術と比べた本発明の主な効果は、既に述べたようにフレームバッファへのメモリアクセス量を削減することにあるが、一方で、読出バッファBITMAP18とバッファ反転BITMAP19へのアクセスが加わるという問題がある。第三の実施の形態の終わりにてそのアクセス量を低減する方法を述べたが、もう1つの有効な方法を以下に述べる。
前述までの実施の形態ではBITMAP情報が画像フレームのピクセルと1対1で対応している例を示した。しかし、図 58のように画像フレームを例えば16×16ピクセルのブロックに分け、各ブロックにつき1ビットを割り当てるようにしても良い。この場合、例えばXGA(横1024ピクセル縦768ピクセル)の場合は、横1024 / 16 = 64ブロック、縦768 / 16 = 48ブロックで、BITMAPのビット数は64×48 = 3072ビットとなり、ピクセルに1対1で対応させた場合に比べてして読出バッファBITMAP18のメモリ量を16×16 = 256分の1に大幅に削減でき、BITMAPへのメモリアクセス量も大幅に削減することが出来る。これにより消費電力を削減でき、ひいては本発明の効果をより顕著にすることが出来る。
なお、このとき書き込まれる画像もX座標、Y座標、縦幅、横幅ともに16ピクセル単位であれば、画像フレームのアクセスが全て16ピクセル単位になるので特に問題なくBITMAP情報へのマッピングが可能である。16ピクセル単位でない場合は図 60のようになる。図 60は追い越しが発生する画像を読み出しバッファとは別のバッファに書き込んだ例を示している。バッファの読み出しはあくまで16ピクセル単位で行われるので、16ピクセル単位で区切った場合に不足する残りの領域を補う必要がある。この画像は最新のフレームバッファである読み出しバッファにあるので、画像の書き込みを行うとともに読出しバッファからこの不足している残りの領域のコピーを行う。そして、次のフレームの読み出しのときに、書き込まれた領域を含むブロックを読み出しバッファにすれば、書き込んだ画像と残りの領域共に正しく読み出すことが出来る。この場合の構成を図 61に示す。新たに加わった不足領域コピー部34がこのコピー処理を行う。もともと本発明の趣旨はフレームバッファ間のコピーを行わないことがポイントであり、今回の動作は一見その趣旨とは異なるようにみえるが、書き込んだ画像そのもののコピーは行わずに不足領域のみのコピーを行うので、本発明の趣旨に反するものではない。なお、以上では画像フレームを16ピクセルで区切る場合を示したが、区切るピクセル数は16に限らない。また、縦幅と横幅が異なっていてもよい。
また、BITMAP用のメモリをフレームバッファ用のメモリとは物理的に別のメモリとして実装することで、フレームバッファへのメモリアクセスを減らすことが出来る。フレームバッファのアクセスは帯域が大きくなるので、しばしばシステムのボトルネックになる。そのような場合にBITMAP用のメモリを別メモリに実装することで、ボトルネックを圧迫することがなくなり、システムの性能の低下を防ぐことが出来る。また、メモリアクセスの制御を単純化することが出来る。
また、ダブルバッファの実際の物理的なマッピングに関して、フレームバッファは例えばSDRAMを使用するが、SDRAMの特徴として、列アドレスの変更は1クロックサイクルごとに高速に行うことが可能だか、行アドレスの変更には数クロックサイクルの遅延(オーバーヘッド)がかかるという問題がある。よって、ダブルバッファのそれぞれのバッファを単純に異なるメモリ領域に確保した場合、本発明のように双方のバッファを頻繁に切り替えながらアクセスすると、行アドレスの変更が頻繁に発生し、アクセス時間のオーバーヘッドが大きくなり、結果的に性能が低下するという問題が生じる。
そこで、ダブルバッファの双方のバッファの同じ行を、SDRAM上の同じ行にマッピングすればよい。特に、ダブルバッファのSDRAM上のマッピングを図 59のようにすると容易である。図 59はX座標0〜3、Y座標0〜3の間のピクセルのダブルバッファのマッピングを示しており、例えば(X0, Y0, B0)はX座標0、Y座標0、フレームバッファ0のピクセル、(X1, Y2, B1)はX座標1、Y座標2、フレームバッファ1のピクセルを表している。見てわかるように、2つのバッファの対応するピクセルが横に並ぶように縞状に配置している。こうすることにより、2つのバッファの切り替えは列アドレスの1ビット目を変更するだけでよくなるので、少ないオーバーヘッドで2つのバッファを高速に切り替えながらアクセスをすることができ、性能の低下を防ぐことが出来る。
以上、本発明の実施の形態をいくつか例示したが、本発明はこれらの実施の形態を任意に組み合わせてもよく、またこれらに限るものではない。フレームバッファに書き込まれる画像は簡単のために矩形の場合を示したが、本発明では画像が矩形である必要はなく、形状は何でもよい。発明を構成する各部は、例えばASICやFPGAなどの回路や、ソフトウェア(画像生成プログラム)で動作するCPUなどで実現されるが、実装の形態はこれらに限らない。
描画する映像が上から下に順次書き込まれまた読み出される様子を示す図。 読み出しスキャンが書き込みスキャンを追い抜い抜く様子を示す図。 ダブルバッファ構造を説明する図。 画面が部分的に更新される例を示す図。 画面が部分的に更新される例を示す図。 画面更新が必要な部分だけ画面の更新を行う例を示す図。 画面更新が必要な部分だけ画面の更新を行う例を示す図。 ダブルバッファ構造で図7と同一の更新を行うときに生じる問題を説明する図。 図8の問題を回避する単純な解決策の一例を示す図。 本発明の第一の実施の形態としての画像生成装置の構成を示す図。 本発明の第一の実施の形態にかかる図10の装置の動作を説明する最もシンプルな例を示す図。 本発明の第一の実施の形態にかかる図10の装置の動作手順を説明するフローチャート。 本発明の第一の実施の形態にかかる図10の装置の動作を説明する他の例を示す図。 本発明の第一の実施の形態にかかる図10の装置の動作を説明する他の例を示す図。 本発明の第一の実施の形態にかかる図7と同一の画面更新に対して第一の実施の形態を適用する例を示す図。 本発明の第二の実施の形態にかかる追い越しが発生する例を示す図。 本発明の第二の実施の形態にかかる追い越しが発生しない例を示す図。 本発明の第二の実施の形態としての画像生成装置の構成を示す図。 本発明の第二の実施の形態にかかる図18の装置の動作手順を説明するフローチャート。 本発明の第二の実施の形態にかかる図18の装置の動作を説明する最もシンプルな例を示す図。 本発明の第二の実施の形態にかかる図18の装置の動作を説明する他の例を示す図。 本発明の第二の実施の形態にかかる図18の装置の動作を説明する他の例を示す図。 本発明の第三の実施の形態としての画像生成装置の構成を示す図 本発明の第三の実施の形態にかかる図23の装置の動作を説明するフローチャート 本発明の第三の実施の形態にかかる図11の例の場合の読出バッファBITMAPとバッファ反転BITMAPの内容を示す図。 本発明の第三の実施の形態にかかる図13の例の場合の読出バッファBITMAPとバッファ反転BITMAPの内容を示す図。 本発明の第三の実施の形態にかかる図14の例の場合の読出バッファBITMAPとバッファ反転BITMAPの内容を示す図。 本発明の第三の実施の形態にかかる図22の例の場合の読出バッファBITMAPとバッファ反転BITMAPの内容を示す図。 本発明の第三の実施の形態にかかる図23の装置に書き込み終了検知部を追加した構成を示す図。 本発明の第四の実施の形態としての画像生成装置の構成を示す図。 本発明の第四の実施の形態にかかる図30の装置の動作を説明するフローチャート。 本発明の第四の実施の形態にかかるフレームバッファの動作例を示す図。 本発明の第四の実施の形態としての画像生成装置の図30とは別の構成を示す図。 本発明の第四の実施の形態にかかる図33の装置の動作を説明するフローチャート。 本発明の第四の実施の形態にかかるフレームバッファの動作例を示す図。 本発明の第四の実施の形態にかかる図33の動作手順に書き込み終了検知がなかった場合にBITMAPの更新をスキップする処理を追加した例を示す。 本発明の第五の実施の形態の目的を説明する図。 本発明の第五の実施の形態としての画像生成装置の構成を示す図。 本発明の第五の実施の形態にかかる図38の装置の要部動作を説明するフローチャート。 本発明の第五の実施の形態にかかる図38の装置の動作に書き込み終了検知がなかった場合にBITMAPの更新をスキップする処理を追加した例を示す図。 本発明の第五の実施の形態にかかるフレームバッファの動作の手順を示す図。 本発明の第五の実施の形態にかかる読出バッファBITMAPとバッファ反転BITMAPと反転リセットBITMAPの動作の手順を示す図。 本発明の第五の実施の形態としての画像生成装置の図38とは別の構成を示す図。 本発明の第五の実施の形態にかかる画像フレームの動作の手順を示す図。 本発明の第五の実施の形態にかかる読出バッファBITMAPとバッファ反転BITMAPと反転リセットBITMAPの動作の手順を示す図。 本発明の第六の実施の形態としての画像生成装置の構成を示す図。 本発明の第六の実施の形態にかかる図11の例の場合における読出バッファBITMAPと次読出バッファBITMAPの例を示す図。 本発明の第六の実施の形態にかかる図13の例の場合における読出バッファBITMAPと次読出バッファBITMAPの例を示す図。 本発明の第六の実施の形態にかかる図14の例の場合における読出バッファBITMAPと次読出バッファBITMAPの例を示す図。 本発明の第六の実施の形態にかかる図22の例の場合における読出バッファBITMAPと次読出バッファBITMAPの例を示す図。 本発明の第六の実施の形態にかかる図46の装置に書き込み終了検知部を追加した構成を示す図。 本発明の第七の実施の形態としての画像生成装置の構成を示す図。 本発明の第七の実施の形態としての画像生成装置の図52とは別の構成を示す図。 本発明の第八の実施の形態としての画像生成装置の構成を示す図。 本発明の第八の実施の形態にかかる読出バッファBITMAPと次読出バッファBITMAPとバッファリセットBITMAPの動作の手順を示す図。 本発明の第八の実施の形態としての画像生成装置の図54とは別の構成を示す図。 本発明の第八の実施の形態にかかる読出バッファBITMAPと次読出バッファBITMAPとバッファリセットBITMAPの動作の手順を示す図。 本発明の第九の実施の形態にかかる画像フレームをブロックに分け、各ブロックにつきBITMAP情報(1ビット)を割り当てる例を示す図。 本発明の第九の実施の形態にかかるダブルバッファのSDRAM上のマッピング例を示す図。 本発明の第九の実施の形態にかかる図61の不足領域コピー部の動作を説明する図。 本発明の第九の実施の形態としての画像生成装置の構成を示す図。
符号の説明
11:フレームメモリ(記憶手段)
12:書き込み部(書き込み手段)
13:読み出し部(読み出し手段)
14:領域毎書込バッファ選択部(書込バッファ選択手段)
15:領域毎読出バッファ選択部(読出バッファ選択手段)
16:追い越し判定部(追い越し判定手段)
18:読出バッファBITMAP(読出バッファ保持手段)
19:バッファ反転BITMAP(読出バッファ反転保持手段)
20:BITMAP更新部(読出バッファ更新手段)
21:書き込み終了検知部(書き込み終了検知手段)
22:書き込み中検知部(書き込み中検知手段)
23:再判定指示部(再判定指示手段)
24:次追い越し判定部(次追い越し判定手段)
25:反転リセットBITMAP(更新反転/非反転情報保持手段)
28:書き込み待ち要求部(書き込み待ち要求手段)
31:BITMAP更新部(読出バッファ更新手段)
32:次読出バッファBITMAP(次読出バッファ保持手段)
33:バッファリセットBITMAP(次読出バッファ反転保持手段)
34:不足領域コピー部(不足領域コピー手段)

Claims (21)

  1. 各々1フレームの画像を記憶可能な第1および第2のバッファを有する記憶手段と、
    1フレームの全部または一部における各領域の画像を書き込むべきバッファを前記第1および第2のバッファから前記領域毎に選択する書込バッファ選択手段と、
    前記1フレームの全部または一部における各領域の画像を前記書込バッファ選択手段に選択された前記各領域に応じたバッファに書き込む書き込み手段と、
    1フレームにおける各領域の画像を読み出すべきバッファを前記第1および第2のバッファから前記領域毎に選択する読出バッファ選択手段と、
    一定周期ごとに前記1フレームの各領域における画像を前記バッファ選択手段により選択された前記各領域に応じたバッファから読み出して画像フレームを生成する読み出し手段と、
    を備え、
    前記書込バッファ選択手段は、前記読み出し手段によるフレームのある読み出し期間において前記書き込み手段により書き込もうとする前記1フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記読み出し手段により前記各領域から読み出されるバッファとは異なるバッファを選択し、
    前記読出バッファ選択手段は、前記読み出し手段による前記ある読み出し期間において前記読み出し手段により読み出そうとする前記1フレームの各領域のうち、
    前記読み出し手段による1つ前のフレームの読み出し期間における読み出しのときに前記書き込み手段による書き込みが行われた領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに前記書き込み手段による書き込みが行われたバッファを選択し、
    前記読み出し手段による前記1つ前のフレームの読み出し期間における読み出しのときに前記書き込み手段による書き込みが行われなかった領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに前記読み出し手段により読み出されたバッファと同じバッファを選択する、
    ことを特徴とする画像生成装置。
  2. 前記ある読み出し期間において前記書き込み手段による画像の書き込みの間に書き込みのスキャンが読み出しのスキャンを追い越す、または、読み出しのスキャンが書き込みのスキャンを追い越す追い越しが発生するかどうかを判定する追い越し判定手段をさらに備え、
    前記書込バッファ選択手段は、バッファ選択の前に前記書き込み手段による画像の書き込みの最中に前記追い越しが発生するかどうかを前記追い越し判定手段を用いて判定し、前記追い越しの発生が判定されたとき、前記書き込み手段により書き込もうとする画像の各領域のそれぞれについて前記読み出し手段により読み出されているバッファとは異なるバッファを選択し、前記追い越しの発生が判定されなかったとき、前記読み出し手段により読み出されているバッファと同じバッファを選択し、
    前記読出バッファ選択手段は、
    前記1つ前の読み出し期間における前記書込バッファ選択手段によるバッファ選択の際に前記追い越し判定手段により追い越しの発生が判定されたときは、前記1つ前の読み出し期間において前記書き込み手段により書き込まれた各領域について前記1つ前の読み出し期間における読み出しのときとは異なるバッファを選択し、前記1つ前の読み出し期間において前記書き込み手段により書き込まれなかった領域については前記1つ前の読み出し期間における読み出しのときと同じバッファを選択し、
    前記1つ前の読み出し期間における前記書込バッファ選択手段によるバッファ選択の際に前記追い越し判定手段により追い越しの発生が判定されなかったとき、前記読み出し手段により読み出そうとする前記1フレームの各領域について前記1つ前の読み出し期間における読み出しのときと同じバッファを選択する、
    ことを特徴とする請求項1記載の画像生成装置。
  3. 前記読み出し手段が1フレームの各領域における画像を前記第1および第2のバッファのいずれから読み出すかを表す読出情報を前記1フレームにおける領域毎に保持する読出バッファ保持手段と、
    前記読み出し手段による前記ある読み出し期間における1フレームの読み出しが終了した後、次のフレームの読み出し期間における読み出しが開始する前に、前記ある読み出し期間において前記書き込み手段により書き込まれた画像の各領域について前記ある読み出し期間とは異なるバッファを表す読出情報を保持するように前記読出バッファ保持手段を更新する、読出バッファ更新手段と、をさらに備え、
    前記書込バッファ選択手段は、前記書き込み手段により書き込もうとする画像の各領域について前記読み出し手段により読み出されるバッファが第1および第2のバッファのいずれであるかの情報を前記読出バッファ保持手段から取得し、
    前記読出バッファ選択手段は、前記1フレームの各領域について前記読み出し手段により読み出すべきバッファが前記第1および第2のバッファのいずれであるかの情報を前記読出バッファ保持手段から取得する、
    ことを特徴とする請求項1に記載の画像生成装置。
  4. 前記読み出し手段が1フレームの各領域における画像を前記第1および第2のバッファのいずれから読み出すかを表す読出情報を前記1フレームにおける領域毎に保持する読出バッファ保持手段と、
    前記書込バッファ選択手段が前記書き込み手段により書き込もうとする画像の各領域について前記読み出し手段により読み出されるバッファとは異なるバッファを選択したとき、前記読み出し手段による前記ある読み出し期間における1フレームの読み出しが終了した後、次のフレームの読み出し期間における読み出しが開始する前に、前記書き込み手段により書き込もうとする画像の各領域について前記ある読み出し期間とは異なるバッファを表す読出情報を保持するように前記読出バッファ保持手段を更新する、読出バッファ更新手段と、をさらに備え、
    前記書込バッファ選択手段は、前記書き込み手段により書き込もうとする画像の各領域について前記読み出し手段により読み出されるバッファが第1および第2のバッファのいずれであるかの情報を前記読出バッファ保持手段から取得し、
    前記読出バッファ選択手段は、前記1フレームの各領域について前記読み出し手段により読み出すべきバッファが前記第1および第2のバッファのいずれであるかの情報を前記読出バッファ保持手段から取得する、
    ことを特徴とする請求項2に記載の画像生成装置。
  5. 前記読み出し手段により読み出すバッファとは異なるバッファへの、前記書き込み手段による画像の書き込みの終了を検知する、書き込み終了検知手段をさらに備え、
    前記読出バッファ更新手段は、前記読み出し手段による1フレームの画像の読み出しの間に、前記書き込み終了検知手段により前記書き込み手段による画像の書き込みの終了が検知されなかったとき、前記読出バッファ保持手段の更新を行わない、
    ことを特徴とする請求項4記載の画像生成装置。
  6. 前記書き込み手段が画像の書き込み中であることを検知する、書き込み中検知手段をさらに備え、
    前記読出バッファ更新手段は、前記読み出し手段による1フレームの画像の読み出しが終了しても、前記書き込み手段が画像の書き込み中であることが前記書き込み中検知手段により検知されているときは、前記読出バッファ保持手段の更新を行わない、
    ことを特徴とする請求項4に記載の画像生成装置。
  7. 前記書き込み手段が画像の書き込み中であることを検知する、書き込み中検知手段をさらに備え、
    前記読出バッファ更新手段は、前記読み出し手段による1フレームの読み出しが終了しても、前記書き込み手段が画像の書き込み中であることが前記書き込み中検知手段により検知されているときは、前記読出バッファ保持手段の更新を行わない、
    ことを特徴とする請求項5に記載の画像生成装置。
  8. 前記読み出し手段が前記ある読み出し期間の次の読み出し期間でフレームを読み出すときに前記書き込み手段が前記ある読み出し期間で書き込んでいる画像の残りを継続して書き込む場合、前記読み出し手段が前記次の読み出し期間でフレームを読み出している間に、前記書き込み手段による残りの画像の書き込みのスキャンが読み出しのスキャンを追い越す、または、前記読み出しのスキャンが前記書き込みのスキャンを追い越す追い越しが発生するかどうかを判定する、次追い越し判定手段と、
    前記読み出し手段による各フレームの読み出し期間での読み出しを行うときに前記書き込み手段が前記各読み出し期間の1つ前の読み出し期間で書き込んでいる画像の残りを継続して書き込んでいる場合、前記追い越し判定手段と前記次追い越し判定手段に追い越しの発生の有無の再判定を指示する、再判定指示手段と、
    をさらに備え、
    前記書込バッファ選択手段は、前記追い越し判定手段が追い越しの発生を判定したとき、または前記次追い越し手段が追い越しの発生を判定したとき、前記書き込み手段により書き込む画像の各領域について、前記読み出し手段により読み出されているバッファとは異なるバッファを選択し、前記追い越し判定手段が追い越しを判定しないときかつ前記次追い越し手段が追い越しを判定しないとき、前記読み出し手段により読み出されているバッファと同じバッファを選択し、
    前記読出バッファ更新手段は、前記書き込み中検知手段が書き込み中を検知していても、前記次追い越し手段が追い越しを判定しないときは、前記読出バッファ保持手段を更新する、
    ことを特徴とする請求項7に記載の画像生成装置。
  9. 前記読出バッファ保持手段に保持されている、前記1フレームおける各領域の読出情報を反転または反転させないことを表す反転情報または非反転情報を前記1フレームにおける領域毎に保持する読出バッファ反転保持手段をさらに備え、
    前記書込バッファ選択手段は、前記書き込み手段により書き込もうとする各領域の画像を書き込むべきバッファとして前記読み出し手段により読み出しされているバッファとは異なるバッファを選択したときは、前記読出バッファ反転保持手段における前記書き込み手段により書き込もうとする各領域に対して前記反転情報をセットし、
    前記読出バッファ更新手段は、前記読出バッファ保持手段の更新として前記読出バッファ保持手段における1フレームの各領域の読出情報を前記読出バッファ反転保持手段に保持された1フレームの各領域の反転情報および非反転情報をもとに更新し、さらに前記読出バッファ反転保持手段における1フレームの各領域を全て前記更新非反転情報にセットする、
    ことを特徴とする請求項3乃至8のいずれか一項に記載の画像生成装置。
  10. 前記読出バッファ保持手段に保持されている前記1フレームおける各領域の読出情報を反転または反転させないことを表す反転情報または非反転情報を前記1フレームにおける領域毎に保持する読出バッファ反転保持手段と、
    前記読出バッファ反転保持手段における1フレームの各領域を反転情報および非反転情報にセットすることを指示する更新反転情報および更新非反転情報を保持する更新反転/非反転情報保持手段と、をさらに備え、
    前記書込バッファ選択手段は、
    前記書き込み手段により書き込もうとする第1の画像の各領域について前記読み出し手段が読み出しているバッファとは異なるバッファが選択され、また前記読み出し手段により1フレームの画像の読み出しが行われているときに前記書き込み終了検知手段が前記書き込み手段による第1の画像の書き込みの終了を検知しないとき、前記読出バッファ反転保持手段において、前記第1の画像の各領域における書き込みが行われた領域に対して反転情報をセットし、
    前記書き込み手段により書き込もうとする第1の画像の各領域について前記読み出し手段が読み出しているバッファとは異なるバッファが選択され、また前記読み出し手段によりフレームの読み出しを行っているときに前記書き込み終了検知手段が前記書き込み手段による前記第1の画像の書き込みの終了を検知し、また前記第1の画像の書き込みと同じフレームの読み出し期間において前記第1の画像に続いて前記書き込み手段により書き込む第2の画像の各領域に対して前記読み出し手段が読み出しているバッファとは異なるバッファを選択したときは、前記第1の画像の書き込みと同じフレームの読み出し期間において前記更新反転/非反転情報保持手段における、前記第2の画像の各領域における書き込みが行われた領域に対して更新反転情報をセットし、
    前記読出バッファ更新手段は、前記書き込み終了検知手段により前記第1の画像の書き込みの終了が検知されたときは、前記書き込み中検知手段が前記第1の画像の書き込みにおけるフレームの読み出し期間が終了したときに前記第2の画像の書き込み中を検知し、前記次追い越し判定手段が前記第1の画像の書き込みにおけるフレーム読み出し期間の次の読み出し期間での追い越しの発生を判定していても、前記読出バッファ保持手段の更新として前記読出バッファ保持手段における1フレームの各領域を前記読出バッファ反転保持手段における1フレームの各領域の反転情報および非反転情報に基づいて更新し、その後、前記読出バッファ反転保持手段における1フレームの各領域を前記更新反転/非反転情報保持手段における1フレームの各領域の更新反転情報および更新非反転情報に基づき更新し、その後、前記更新反転/非反転情報保持手段の1フレームの各領域を全て前記非更新反転情報にセットする、
    ことを特徴とする請求項8に記載の画像生成装置。
  11. 前記書き込み手段に対して画像の書き込みの開始待ちを要求する書き込み待ち要求手段をさらに備え、
    前記書込バッファ選択手段は、
    前記第1の画像の書き込みと同じフレームの読み出し期間において前記書き込み手段により前記第1の画像に引き続き書き込む前記第2の画像の各領域に対して前記読み出し手段により読み出されているバッファとは異なるバッファを選択したときは、前記読出バッファ反転保持手段を参照し、
    前記第2の画像の各領域のうち前記読出バッファ反転保持手段に前記非反転情報がセットされている第1の領域に対してはそのまま前記読み出し手段により読み出されているバッファと異なるバッファを選択し、
    前記第2の画像の各領域のうち前記読出バッファ反転保持手段に前記反転情報がセットされている第2の領域に対しては前記読み出し手段により読み出されているバッファと同じバッファを選択し、
    前記書き込み待ち要求手段は、前記書き込み手段により書き込もうとする前記第2の画像において前記反転情報がセットされている前記第2の領域における画像と、前記第1の画像の書き込みと同じフレームの読み出し期間において前記読み出し手段によって読み出される画像とが重なる同じバッファ内の領域について、前記書き込み手段による前記第2の画像の書き込みが行われる前に前記読み出し手段による読み出しが行われるように、前記書き込み手段に対して前記第2の画像の書き込みの開始の待ちを要求する、
    ことを特徴とする請求項10に記載の画像生成装置。
  12. 前記読み出し手段による前記次の読み出しの期間において、前記読み出し手段が1フレームの各領域における画像を前記第1および第2のバッファのいずれから読み出すかを表す読出情報を前記1フレームにおける領域毎に保持する次読出バッファ保持手段をさらに備え、
    前記書込バッファ選択手段は、前記書き込み手段により書き込もうとする各領域の画像を書き込むバッファとして前記読み出し手段により読み出しされているバッファとは異なるバッファを選択したときは、前記書き込み手段により書き込もうとする各領域に対応する前記読出バッファ保持手段の読出情報とは異なるバッファを指定する読出情報を前記次読出バッファ保持手段に対してセットし、
    前記読出バッファ更新手段は、前記読出バッファ保持手段の更新として前記読出バッファ保持手段における各領域の読出情報を前記次読出バッファ保持手段に保持された各領域の読出情報によって上書きする、
    ことを特徴とする請求項3乃至7のいずれか一項に記載の画像生成装置。
  13. 前記読み出し手段による前記次の読み出しの期間において、前記読み出し手段が1フレームの各領域における画像を前記第1および第2のバッファのいずれから読み出すかを表す読出情報を前記1フレームにおける領域毎に保持する次読出バッファ保持手段と、
    前記次読出バッファ保持手段の各領域を反転または非反転することを指示する反転情報および非反転情報を保持する次読出バッファ反転保持手段と、を備え、
    前記書込バッファ選択手段は、
    前記書き込み手段により書き込もうとする第1の画像の各領域について前記読み出し手段が読み出しているバッファとは異なるバッファが選択され、また前記読み出し手段により1フレームの画像の読み出しが行われているときに前記書き込み終了検知手段が前記書き込み手段による第1の画像の書き込みの終了を検知しないとき、前記次読出バッファ保持手段おける、前記第1の画像の各領域における書き込みが行われた領域に対して前記読出バッファ保持手段とは異なるバッファを指定する読出情報をセットし、
    前記書き込み手段により書き込もうとする第1の画像の各領域について前記読み出し手段が読み出しているバッファとは異なるバッファが選択され、また前記読み出し手段により1フレームの画像の読み出しを行っているときに前記書き込み終了検知手段が前記書き込み手段による前記第1の画像の書き込みの終了を検知し、また前記第1の画像の書き込みと同じフレームの読み出し期間において前記第1の画像に続いて前記書き込み手段により書き込む第2の画像の各領域に対して前記読み出し手段が読み出しているバッファとは異なるバッファを選択したときは、前記第1の画像の書き込みと同じフレームの読み出し期間において前記次読出バッファ反転保持手段における、前記第2の画像の各領域における書き込みが行われた領域に対してに対して反転情報をセットし、
    前記読出バッファ更新手段は、前記書き込み終了検知手段により前記第1の画像の書き込みの終了が検知されたときは、前記書き込み中検知手段が前記第1の画像の書き込みにおけるフレームの読み出し期間が終了したときに前記第2の画像の書き込み中を検知し、前記次追い越し判定手段が前記第1の画像の書き込みにおけるフレームの読み出し期間の次の読み出し期間での追い越しの発生を判定していても、前記読出バッファ保持手段の更新として前記読出バッファ保持手段における1フレームの各領域の読出情報を前記次読出バッファ保持手段における1フレームの各領域の読出情報に基づき上書きし、その後、前記次読出バッファ保持手段における1フレームの各領域を前記次読出バッファ反転保持手段における1フレームの各領域の反転情報および非反転情報に基づき更新し、その後、前記次読出バッファ反転保持手段における1フレームの各領域をすべて非反転情報にセットする、
    ことを特徴とする請求項8に記載の画像生成装置。
  14. 前記書き込み手段に対して画像の書き込みの開始待ちを要求する書き込み待ち要求手段をさらに備え、
    前記書込バッファ選択手段は、
    前記第1の画像の書き込みと同じフレームの読み出し期間において前記書き込み手段により前記第1の画像に引き続き書き込む前記第2の画像の各領域に対して前記読み出し手段により読み出されているバッファとは異なるバッファを選択したときは、前記次読出バッファ保持手段を参照し、
    前記第2の画像の各領域のうち前記読出バッファ保持手段と同一のバッファを指定する読出情報が前記次読出バッファ保持手段に保持されている第1の領域に対してはそのまま前記読み出し手段により読み出されているバッファとは異なるバッファを選択し、
    前記第2の画像の各領域のうち前記読出バッファ保持手段と異なるバッファを指定する読出情報が前記次読出バッファ保持手段に保持されている第2の領域に対しては前記読み出し手段により読み出されているバッファと同じバッファを選択し、
    前記書き込み待ち要求手段は、前記書き込み手段により書き込もうとする前記第2の画像において前記第2の領域の画像と、前記第1の画像の書き込みと同じフレームの読み出し期間において前記読み出し手段によって読み出される画像とが重なる同じバッファ内の領域について、前記書き込み手段による前記第2の画像の書き込みが行われる前に前記読み出し手段による読み出しが行われるように、前記書き込み手段に対して前記第2の画像の書き込みの開始の待ちを要求する、
    ことを特徴とする請求項13に記載の画像生成装置。
  15. 前記読出バッファ保持手段は、1フレームを一定サイズに区切った区画領域ごとに1つの読出情報を保持し、
    前記読出バッファ更新手段は、前記読み出し手段により読み出されるバッファとは異なるバッファが前記書込バッファ選択手段により選択されたとき前記書き込み手段により書き込む画像の各領域を少なくとも一部に含む各区画領域に対して前記ある読み出し期間とは異なるバッファを表す読出情報を保持するように前記読出バッファ保持手段を更新する、
    ことを特徴とする請求項3乃至14のいずれか一項に記載の画像生成装置。
  16. 前記書込バッファ選択手段により選択された、前記読み出し手段により読み出されるバッファとは異なるバッファに前記書き込み手段により前記1フレームの全部または一部の画像が書き込まれたとき、前記読み出し手段により読み出されたバッファとは異なるバッファに書き込まれた画像を一部に含む前記異なるバッファにおける各区画領域において、前記画像が書き込まれた領域以外の領域における前記読み出し手段により読み出されているバッファの画像を、前記異なるバッファにコピーする、不足領域コピー手段をさらに備えたことを特徴とする請求項15に記載の画像生成装置。
  17. 前記読出バッファ保持手段は、前記第1および第2のバッファを有する前記記憶手段とは物理的に異なる記憶装置である、
    ことを特徴とする請求項3乃至16のいずれか一項に記載の画像生成装置。
  18. 前記記憶手段は、前記第1のバッファと前記第2のバッファの同じ行を、記憶装置の物理的に同じ行に割り当てる、
    ことを特徴とする請求項1乃至17のいずれか一項に記載の画像生成装置。
  19. 前記記憶手段は、前記第1のバッファと前記第2のバッファの同じ座標を、記憶装置の物理的に同じ行の隣り合う列に割り当てる、
    ことを特徴とする請求項1乃至18のいずれか一項に記載の画像生成装置。
  20. 1フレームの全部または一部に相当する各領域の画像を書き込むべきバッファを、各々1フレームの画像を記憶可能な第1および第2のバッファから前記画像の領域毎に選択する書込バッファ選択ステップと、
    前記1フレームの全部または一部における各領域の画像を前記各領域に対応して選択されたバッファにそれぞれ書き込む書き込みステップと、
    1フレームの各領域における画像を読み出すべきバッファを前記第1および第2のバッファから前記領域毎に選択する読出バッファ選択ステップと、
    一定周期ごとに前記1フレームの各領域における画像を前記領域毎に選択されたバッファから読み出して画像フレームを生成する読み出しステップと、を備え、
    前記書込バッファ選択ステップは、フレームのある読み出し期間において書き込もうとする前記1フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記各領域から読み出されるバッファとは異なるバッファを選択し、
    前記読出バッファ選択ステップは、前記ある読み出し期間において読み出そうとする前記1フレームの各領域のうち、
    前記ある読み出し期間の1つ前のフレームの読み出し期間における読み出しのときに書き込みが行われた領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われたバッファを選択し、
    前記1つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われなかった領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに読み出されたバッファと同じバッファを選択する、
    ことを特徴とする画像生成方法。
  21. 1フレームの全部または一部に相当する画像を書き込むべきバッファを、各々1フレームの画像を記憶可能な第1および第2のバッファから前記画像の領域毎に選択する書込バッファ選択ステップと、
    前記1フレームの全部または一部における各領域の画像を前記領域毎に選択されたバッファにそれぞれ書き込む書き込みステップと、
    1フレームの各領域における画像を読み出すべきバッファを前記第1および第2のバッファから前記領域毎に選択する読出バッファ選択ステップと、
    一定周期ごとに前記1フレームの各領域における画像を前記領域毎に選択されたバッファから読み出して画像フレームを生成する読み出しステップと、を備え、
    前記書込バッファ選択ステップは、フレームのある読み出し期間において書き込もうとする前記1フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記各領域から読み出されるバッファとは異なるバッファを選択し、
    前記読出バッファ選択ステップは、前記ある読み出し期間において読み出そうとする前記1フレームの各領域のうち、
    前記ある読み出し期間の1つ前のフレームの読み出し期間における読み出しのときに書き込みが行われた領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われたバッファを選択し、
    前記1つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われなかった領域に対しては前記1つ前の読み出し期間におけるフレームの読み出しのときに読み出されたバッファと同じバッファを選択する、
    ことを特徴とするコンピュータに実行させるための画像生成プログラム。
JP2007180085A 2007-07-09 2007-07-09 画像生成装置、画像生成方法および画像生成プログラム Expired - Fee Related JP4776592B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007180085A JP4776592B2 (ja) 2007-07-09 2007-07-09 画像生成装置、画像生成方法および画像生成プログラム
US12/169,169 US8665282B2 (en) 2007-07-09 2008-07-08 Image generating apparatus and image generating method and reading of image by using plural buffers to generate computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007180085A JP4776592B2 (ja) 2007-07-09 2007-07-09 画像生成装置、画像生成方法および画像生成プログラム

Publications (3)

Publication Number Publication Date
JP2009015248A true JP2009015248A (ja) 2009-01-22
JP2009015248A5 JP2009015248A5 (ja) 2011-03-31
JP4776592B2 JP4776592B2 (ja) 2011-09-21

Family

ID=40252719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007180085A Expired - Fee Related JP4776592B2 (ja) 2007-07-09 2007-07-09 画像生成装置、画像生成方法および画像生成プログラム

Country Status (2)

Country Link
US (1) US8665282B2 (ja)
JP (1) JP4776592B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012169404A1 (ja) * 2011-06-08 2012-12-13 ソニー株式会社 表示制御装置、表示制御方法、及びプログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2865761A1 (en) 2010-03-03 2015-04-29 E. I. Du Pont de Nemours and Company Plant seeds with altered storage compound levels, related constructs and methods involving genes encoding oxidoreductase motif polypeptides
JP5613249B2 (ja) * 2010-09-16 2014-10-22 株式会社東芝 画像生成装置およびその方法
CN104114707A (zh) 2011-12-22 2014-10-22 纳幕尔杜邦公司 使用大豆蔗糖合酶启动子来增加植物种子脂质含量
CN103035031B (zh) * 2012-11-15 2016-03-02 北京科东电力控制系统有限责任公司 面向电网运行监控的三维人机交互显示控制方法
US9595083B1 (en) * 2013-04-16 2017-03-14 Lockheed Martin Corporation Method and apparatus for image producing with predictions of future positions
KR102261961B1 (ko) * 2015-05-19 2021-06-07 삼성전자주식회사 디스플레이 구동 회로 및 이를 포함하는 디스플레이 장치
CN111325655A (zh) * 2018-12-14 2020-06-23 中强光电股份有限公司 影像处理系统及其影像处理方法
GB2590926B (en) * 2020-01-06 2023-04-12 Displaylink Uk Ltd Managing display data
CN113450733A (zh) * 2021-06-11 2021-09-28 上海跳与跳信息技术合伙企业(有限合伙) 一种屏幕刷新的方法与显示系统、用户设备
US11775695B2 (en) * 2021-08-03 2023-10-03 International Business Machines Corporation Image redaction for a display device
JP7431791B2 (ja) * 2021-12-01 2024-02-15 株式会社日立製作所 ストレージシステム及びデータ処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005338498A (ja) * 2004-05-27 2005-12-08 Mitsubishi Electric Corp 表示メモリ装置
JP2007060388A (ja) * 2005-08-25 2007-03-08 Toshiba Corp 映像処理装置、映像処理方法およびプログラム
WO2007032487A1 (ja) * 2005-09-16 2007-03-22 Sharp Kabushiki Kaisha データ入出力制御システムおよび移動体搭載用表示システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5001469A (en) * 1988-06-29 1991-03-19 Digital Equipment Corporation Window-dependent buffer selection
JP3568555B2 (ja) * 1993-06-28 2004-09-22 富士通株式会社 ディスプレイ装置
US5850232A (en) * 1996-04-25 1998-12-15 Microsoft Corporation Method and system for flipping images in a window using overlays
US6157751A (en) * 1997-12-30 2000-12-05 Cognex Corporation Method and apparatus for interleaving a parallel image processing memory
TW509879B (en) * 2001-01-29 2002-11-11 Silicon Integrated Sys Corp Method and apparatus for minimizing the idle time of a graphics engine by using rendering control before flipping frame buffer
KR100440405B1 (ko) * 2001-11-19 2004-07-14 삼성전자주식회사 더블 버퍼링을 이용한 화상 데이터 출력 제어장치
US7038689B2 (en) * 2002-02-19 2006-05-02 Intel Corporation Sparse refresh double-buffering
JP4158462B2 (ja) * 2002-09-04 2008-10-01 ソニー株式会社 画面表示処理装置及び画面表示処理方法、並びにコンピュータ・プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005338498A (ja) * 2004-05-27 2005-12-08 Mitsubishi Electric Corp 表示メモリ装置
JP2007060388A (ja) * 2005-08-25 2007-03-08 Toshiba Corp 映像処理装置、映像処理方法およびプログラム
WO2007032487A1 (ja) * 2005-09-16 2007-03-22 Sharp Kabushiki Kaisha データ入出力制御システムおよび移動体搭載用表示システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012169404A1 (ja) * 2011-06-08 2012-12-13 ソニー株式会社 表示制御装置、表示制御方法、及びプログラム

Also Published As

Publication number Publication date
JP4776592B2 (ja) 2011-09-21
US20090015591A1 (en) 2009-01-15
US8665282B2 (en) 2014-03-04

Similar Documents

Publication Publication Date Title
JP4776592B2 (ja) 画像生成装置、画像生成方法および画像生成プログラム
JP2637920B2 (ja) コンピュータ・グラフィック・システム及びフレーム・バッファ使用方法
US5512918A (en) High speed method and apparatus for generating animation by means of a three-region frame buffer and associated region pointers
JPH09245179A (ja) コンピュータグラフィックス装置
US20140125685A1 (en) Method and Apparatus for Displaying Images
JP2005092742A (ja) ビデオ出力コントローラ及びビデオカード
KR100773850B1 (ko) 화상신호 처리회로 및 화상표시장치
JP2010081024A (ja) 画像補間処理装置
JP2006251000A (ja) 重畳表示可能なディスプレイコントローラ
JP4779389B2 (ja) 画像処理回路、画像処理方法、電気光学装置
JPH06149533A (ja) 表示領域外セグメントの描画処理を削減したセグメント高速描画方式
JP4050605B2 (ja) 表示制御装置およびナビゲーションシステム
JP2006349733A (ja) 描画表示装置
JP3297475B2 (ja) 表示制御装置及び方法
JP4191774B2 (ja) マイクロコンピュータおよび表示制御装置
JP5418078B2 (ja) 画像プロセッサ
JPS6373478A (ja) 表示マツプによるマルチ・ウインドウ表示方式
JP2006261887A (ja) 画像処理回路、画像処理方法、電気光学装置
JPS63111584A (ja) 画像処理装置
JPH04137188A (ja) 多角形内部のアドレス発生回路
JP2001166767A (ja) 描画処理装置及び描画処理方法
JPH05158450A (ja) 走査型ディスプレイの表示制御装置
JP2014010520A (ja) 画像処理装置
JPH1011047A (ja) 画像表示制御装置
JPH09160748A (ja) グラフィック制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110215

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110215

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110518

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110628

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees