(57)【特許請求の範囲】
【請求項１】
各々１フレームの画像を記憶可能な第１および第２のバッファを有する記憶手段と、
１フレームの全部または一部における各領域の画像を書き込むべきバッファを前記第１および第２のバッファから前記領域毎に選択する書込バッファ選択手段と、
前記１フレームの全部または一部における各領域の画像を前記書込バッファ選択手段に選択された前記各領域に応じたバッファに書き込む書き込み手段と、
１フレームにおける各領域の画像を読み出すべきバッファを前記第１および第２のバッファから前記領域毎に選択する読出バッファ選択手段と、
一定周期ごとに前記１フレームの各領域における画像を前記読出バッファ選択手段により選択された前記各領域に応じたバッファから読み出して画像フレームを生成する読み出し手段と、
を備え、
前記書込バッファ選択手段は、前記読み出し手段によるフレームのある読み出し期間において前記書き込み手段により書き込もうとする前記１フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記読み出し手段により前記各領域から読み出されるバッファとは異なるバッファを選択し、
前記読出バッファ選択手段は、前記読み出し手段による前記ある読み出し期間において前記読み出し手段により読み出そうとする前記１フレームの各領域のうち、
前記読み出し手段による１つ前のフレームの読み出し期間における読み出しのときに前記書き込み手段による書き込みが行われた領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに前記書き込み手段による書き込みが行われたバッファを選択し、
前記読み出し手段による前記１つ前のフレームの読み出し期間における読み出しのときに前記書き込み手段による書き込みが行われなかった領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに前記読み出し手段により読み出されたバッファと同じバッファを選択する、
ことを特徴とする画像生成装置。
【請求項２】
前記読み出し手段が１フレームの各領域における画像を前記第１および第２のバッファのいずれから読み出すかを表す読出情報を前記１フレームにおける領域毎に保持する読出バッファ保持手段と、
前記読み出し手段による前記ある読み出し期間における１フレームの読み出しが終了した後、次のフレームの読み出し期間における読み出しが開始する前に、前記ある読み出し期間において前記書き込み手段により書き込まれた画像の各領域について前記ある読み出し期間とは異なるバッファを表す読出情報を保持するように前記読出バッファ保持手段を更新する、読出バッファ更新手段と、をさらに備え、
前記書込バッファ選択手段は、前記書き込み手段により書き込もうとする画像の各領域について前記読み出し手段により読み出されるバッファが第１および第２のバッファのいずれであるかの情報を前記読出バッファ保持手段から取得し、
前記読出バッファ選択手段は、前記１フレームの各領域について前記読み出し手段により読み出すべきバッファが前記第１および第２のバッファのいずれであるかの情報を前記読出バッファ保持手段から取得する、
ことを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記読出バッファ保持手段に保持されている、前記１フレームおける各領域の読出情報を反転または反転させないことを表す反転情報または非反転情報を前記１フレームにおける領域毎に保持する読出バッファ反転保持手段をさらに備え、
前記書込バッファ選択手段は、前記書き込み手段により書き込もうとする各領域の画像を書き込むべきバッファとして前記読み出し手段により読み出しされているバッファとは異なるバッファを選択したときは、前記読出バッファ反転保持手段における前記書き込み手段により書き込もうとする各領域に対して前記反転情報をセットし、
前記読出バッファ更新手段は、前記読出バッファ保持手段の更新として前記読出バッファ保持手段における１フレームの各領域の読出情報を前記読出バッファ反転保持手段に保持された１フレームの各領域の反転情報および非反転情報をもとに更新し、さらに前記読出バッファ反転保持手段における１フレームの各領域を全て前記更新非反転情報にセットする、
ことを特徴とする請求項２に記載の画像生成装置。
【請求項４】
前記読出バッファ保持手段は、１フレームを一定サイズに区切った区画領域ごとに１つの読出情報を保持し、
前記読出バッファ更新手段は、前記読み出し手段により読み出されるバッファとは異なるバッファが前記書込バッファ選択手段により選択されたとき前記書き込み手段により書き込む画像の各領域を少なくとも一部に含む各区画領域に対して前記ある読み出し期間とは異なるバッファを表す読出情報を保持するように前記読出バッファ保持手段を更新する、
ことを特徴とする請求項２に記載の画像生成装置。
【請求項５】
前記書込バッファ選択手段により選択された、前記読み出し手段により読み出されるバッファとは異なるバッファに前記書き込み手段により前記１フレームの全部または一部の画像が書き込まれたとき、前記読み出し手段により読み出されたバッファとは異なるバッファに書き込まれた画像を一部に含む前記異なるバッファにおける各区画領域において、前記画像が書き込まれた領域以外の領域における前記読み出し手段により読み出されているバッファの画像を、前記異なるバッファにコピーする、不足領域コピー手段をさらに備えたことを特徴とする請求項４に記載の画像生成装置。
【請求項６】
前記ある読み出し期間において前記書き込み手段による画像の書き込みの間に書き込みのスキャンが読み出しのスキャンを追い越す、または、読み出しのスキャンが書き込みのスキャンを追い越す追い越しが発生するかどうかを判定する追い越し判定手段をさらに備え、
前記書込バッファ選択手段は、バッファ選択の前に前記書き込み手段による画像の書き込みの最中に前記追い越しが発生するかどうかを前記追い越し判定手段を用いて判定し、前記追い越しの発生が判定されたとき、前記書き込み手段により書き込もうとする画像の各領域のそれぞれについて前記読み出し手段により読み出されているバッファとは異なるバッファを選択し、前記追い越しの発生が判定されなかったとき、前記読み出し手段により読み出されているバッファと同じバッファを選択し、
前記読出バッファ選択手段は、
前記１つ前の読み出し期間における前記書込バッファ選択手段によるバッファ選択の際に前記追い越し判定手段により追い越しの発生が判定されたときは、前記１つ前の読み出し期間において前記書き込み手段により書き込まれた各領域について前記１つ前の読み出し期間における読み出しのときとは異なるバッファを選択し、前記１つ前の読み出し期間において前記書き込み手段により書き込まれなかった領域については前記１つ前の読み出し期間における読み出しのときと同じバッファを選択し、
前記１つ前の読み出し期間における前記書込バッファ選択手段によるバッファ選択の際に前記追い越し判定手段により追い越しの発生が判定されなかったとき、前記読み出し手段により読み出そうとする前記１フレームの各領域について前記１つ前の読み出し期間における読み出しのときと同じバッファを選択し、
前記読出バッファ更新手段は、前記書込バッファ選択手段が、前記ある読み出し期間において前記書き込み手段により書き込もうとする画像の各領域について前記読み出し手段により読み出されるバッファとは異なるバッファを選択したとき、前記読み出し手段による前記ある読み出し期間における１フレームの読み出しが終了した後、次のフレームの読み出し期間における読み出しが開始する前に、前記ある読み出し期間において前記書き込み手段により書き込まれた画像の各領域について、前記ある読み出し期間とは異なるバッファを表す読出情報を保持するように前記読出バッファ保持手段を更新する、
ことを特徴とする請求項２に記載の画像生成装置
【請求項７】
前記読み出し手段により読み出すバッファとは異なるバッファへの、前記書き込み手段による画像の書き込みの終了を検知する、書き込み終了検知手段をさらに備え、
前記読出バッファ更新手段は、前記読み出し手段による１フレームの画像の読み出しの間に、前記書き込み終了検知手段により前記書き込み手段による画像の書き込みの終了が検知されなかったとき、前記読出バッファ保持手段の更新を行わない、
ことを特徴とする請求項６に記載の画像生成装置。
【請求項８】
前記書き込み手段が画像の書き込み中であることを検知する、書き込み中検知手段をさらに備え、
前記読出バッファ更新手段は、前記読み出し手段による１フレームの画像の読み出しが終了しても、前記書き込み手段が画像の書き込み中であることが前記書き込み中検知手段により検知されているときは、前記読出バッファ保持手段の更新を行わない、
ことを特徴とする請求項６に記載の画像生成装置。
【請求項９】
前記読み出し手段が前記ある読み出し期間の次の読み出し期間でフレームを読み出すときに前記書き込み手段が前記ある読み出し期間で書き込んでいる画像の残りを継続して書き込む場合、前記読み出し手段が前記次の読み出し期間でフレームを読み出している間に、前記書き込み手段による残りの画像の書き込みのスキャンが読み出しのスキャンを追い越す、または、前記読み出しのスキャンが前記書き込みのスキャンを追い越す追い越しが発生するかどうかを判定する、次追い越し判定手段と、
前記読み出し手段による各フレームの読み出し期間での読み出しを行うときに前記書き込み手段が前記各読み出し期間の１つ前の読み出し期間で書き込んでいる画像の残りを継続して書き込んでいる場合、前記追い越し判定手段と前記次追い越し判定手段に追い越しの発生の有無の再判定を指示する、再判定指示手段と、
をさらに備え、
前記書込バッファ選択手段は、前記追い越し判定手段が追い越しの発生を判定したとき、または前記次追い越し手段が追い越しの発生を判定したとき、前記書き込み手段により書き込む画像の各領域について、前記読み出し手段により読み出されているバッファとは異なるバッファを選択し、前記追い越し判定手段が追い越しを判定しないときかつ前記次追い越し手段が追い越しを判定しないとき、前記読み出し手段により読み出されているバッファと同じバッファを選択し、
前記読出バッファ更新手段は、前記書き込み中検知手段が書き込み中を検知していても、前記次追い越し手段が追い越しを判定しないときは、前記読出バッファ保持手段を更新する、
ことを特徴とする請求項８に記載の画像生成装置。
【請求項１０】
前記読出バッファ保持手段に保持されている前記１フレームおける各領域の読出情報を反転または反転させないことを表す反転情報または非反転情報を前記１フレームにおける領域毎に保持する読出バッファ反転保持手段と、
前記読出バッファ反転保持手段における１フレームの各領域を反転情報および非反転情報にセットすることを指示する更新反転情報および更新非反転情報を保持する更新反転／非反転情報保持手段と、をさらに備え、
前記書込バッファ選択手段は、
前記書き込み手段により書き込もうとする第１の画像の各領域について前記読み出し手段が読み出しているバッファとは異なるバッファが選択され、また前記読み出し手段により１フレームの画像の読み出しが行われているときに前記書き込み終了検知手段が前記書き込み手段による第１の画像の書き込みの終了を検知しないとき、前記読出バッファ反転保持手段において、前記第１の画像の各領域における書き込みが行われた領域に対して反転情報をセットし、
前記書き込み手段により書き込もうとする第１の画像の各領域について前記読み出し手段が読み出しているバッファとは異なるバッファが選択され、また前記読み出し手段によりフレームの読み出しを行っているときに前記書き込み終了検知手段が前記書き込み手段による前記第１の画像の書き込みの終了を検知し、また前記第１の画像の書き込みと同じフレームの読み出し期間において前記第１の画像に続いて前記書き込み手段により書き込む第２の画像の各領域に対して前記読み出し手段が読み出しているバッファとは異なるバッファを選択したときは、前記第１の画像の書き込みと同じフレームの読み出し期間において前記更新反転／非反転情報保持手段における、前記第２の画像の各領域における書き込みが行われた領域に対して更新反転情報をセットし、
前記読出バッファ更新手段は、前記書き込み終了検知手段により前記第１の画像の書き込みの終了が検知されたときは、前記書き込み中検知手段が前記第１の画像の書き込みにおけるフレームの読み出し期間が終了したときに前記第２の画像の書き込み中を検知し、前記次追い越し判定手段が前記第１の画像の書き込みにおけるフレーム読み出し期間の次の読み出し期間での追い越しの発生を判定していても、前記読出バッファ保持手段の更新として前記読出バッファ保持手段における１フレームの各領域を前記読出バッファ反転保持手段における１フレームの各領域の反転情報および非反転情報に基づいて更新し、その後、前記読出バッファ反転保持手段における１フレームの各領域を前記更新反転／非反転情報保持手段における１フレームの各領域の更新反転情報および更新非反転情報に基づき更新し、その後、前記更新反転／非反転情報保持手段の１フレームの各領域を全て前記非更新反転情報にセットする、
ことを特徴とする請求項９に記載の画像生成装置。
【請求項１１】
前記書き込み手段に対して画像の書き込みの開始待ちを要求する書き込み待ち要求手段をさらに備え、
前記書込バッファ選択手段は、
前記第１の画像の書き込みと同じフレームの読み出し期間において前記書き込み手段により前記第１の画像に引き続き書き込む前記第２の画像の各領域に対して前記読み出し手段により読み出されているバッファとは異なるバッファを選択したときは、前記読出バッファ反転保持手段を参照し、
前記第２の画像の各領域のうち前記読出バッファ反転保持手段に前記非反転情報がセットされている第１の領域に対してはそのまま前記読み出し手段により読み出されているバッファと異なるバッファを選択し、
前記第２の画像の各領域のうち前記読出バッファ反転保持手段に前記反転情報がセットされている第２の領域に対しては前記読み出し手段により読み出されているバッファと同じバッファを選択し、
前記書き込み待ち要求手段は、前記書き込み手段により書き込もうとする前記第２の画像において前記反転情報がセットされている前記第２の領域における画像と、前記第１の画像の書き込みと同じフレームの読み出し期間において前記読み出し手段によって読み出される画像とが重なる同じバッファ内の領域について、前記書き込み手段による前記第２の画像の書き込みが行われる前に前記読み出し手段による読み出しが行われるように、前記書き込み手段に対して前記第２の画像の書き込みの開始の待ちを要求する、
ことを特徴とする請求項１０に記載の画像生成装置。
【請求項１２】
前記読み出し手段による前記次の読み出しの期間において、前記読み出し手段が１フレームの各領域における画像を前記第１および第２のバッファのいずれから読み出すかを表す読出情報を前記１フレームにおける領域毎に保持する次読出バッファ保持手段と、
前記次読出バッファ保持手段の各領域を反転または非反転することを指示する反転情報および非反転情報を保持する次読出バッファ反転保持手段と、を備え、
前記書込バッファ選択手段は、
前記書き込み手段により書き込もうとする第１の画像の各領域について前記読み出し手段が読み出しているバッファとは異なるバッファが選択され、また前記読み出し手段により１フレームの画像の読み出しが行われているときに前記書き込み終了検知手段が前記書き込み手段による第１の画像の書き込みの終了を検知しないとき、前記次読出バッファ保持手段おける、前記第１の画像の各領域における書き込みが行われた領域に対して前記読出バッファ保持手段とは異なるバッファを指定する読出情報をセットし、
前記書き込み手段により書き込もうとする第１の画像の各領域について前記読み出し手段が読み出しているバッファとは異なるバッファが選択され、また前記読み出し手段により１フレームの画像の読み出しを行っているときに前記書き込み終了検知手段が前記書き込み手段による前記第１の画像の書き込みの終了を検知し、また前記第１の画像の書き込みと同じフレームの読み出し期間において前記第１の画像に続いて前記書き込み手段により書き込む第２の画像の各領域に対して前記読み出し手段が読み出しているバッファとは異なるバッファを選択したときは、前記第１の画像の書き込みと同じフレームの読み出し期間において前記次読出バッファ反転保持手段における、前記第２の画像の各領域における書き込みが行われた領域に対して反転情報をセットし、
前記読出バッファ更新手段は、前記書き込み終了検知手段により前記第１の画像の書き込みの終了が検知されたときは、前記書き込み中検知手段が前記第１の画像の書き込みにおけるフレームの読み出し期間が終了したときに前記第２の画像の書き込み中を検知し、前記次追い越し判定手段が前記第１の画像の書き込みにおけるフレームの読み出し期間の次の読み出し期間での追い越しの発生を判定していても、前記読出バッファ保持手段の更新として前記読出バッファ保持手段における１フレームの各領域の読出情報を前記次読出バッファ保持手段における１フレームの各領域の読出情報に基づき上書きし、その後、前記次読出バッファ保持手段における１フレームの各領域を前記次読出バッファ反転保持手段における１フレームの各領域の反転情報および非反転情報に基づき更新し、その後、前記次読出バッファ反転保持手段における１フレームの各領域をすべて非反転情報にセットする、
ことを特徴とする請求項９に記載の画像生成装置。
【請求項１３】
前記書き込み手段に対して画像の書き込みの開始待ちを要求する書き込み待ち要求手段をさらに備え、
前記書込バッファ選択手段は、
前記第１の画像の書き込みと同じフレームの読み出し期間において前記書き込み手段により前記第１の画像に引き続き書き込む前記第２の画像の各領域に対して前記読み出し手段により読み出されているバッファとは異なるバッファを選択したときは、前記次読出バッファ保持手段を参照し、
前記第２の画像の各領域のうち前記読出バッファ保持手段と同一のバッファを指定する読出情報が前記次読出バッファ保持手段に保持されている第１の領域に対してはそのまま前記読み出し手段により読み出されているバッファとは異なるバッファを選択し、
前記第２の画像の各領域のうち前記読出バッファ保持手段と異なるバッファを指定する読出情報が前記次読出バッファ保持手段に保持されている第２の領域に対しては前記読み出し手段により読み出されているバッファと同じバッファを選択し、
前記書き込み待ち要求手段は、前記書き込み手段により書き込もうとする前記第２の画像において前記第２の領域の画像と、前記第１の画像の書き込みと同じフレームの読み出し期間において前記読み出し手段によって読み出される画像とが重なる同じバッファ内の領域について、前記書き込み手段による前記第２の画像の書き込みが行われる前に前記読み出し手段による読み出しが行われるように、前記書き込み手段に対して前記第２の画像の書き込みの開始の待ちを要求する、
ことを特徴とする請求項１２に記載の画像生成装置。
【請求項１４】
前記読み出し手段による前記次の読み出しの期間において、前記読み出し手段が１フレームの各領域における画像を前記第１および第２のバッファのいずれから読み出すかを表す読出情報を前記１フレームにおける領域毎に保持する次読出バッファ保持手段をさらに備え、
前記書込バッファ選択手段は、前記書き込み手段により書き込もうとする各領域の画像を書き込むバッファとして前記読み出し手段により読み出しされているバッファとは異なるバッファを選択したときは、前記書き込み手段により書き込もうとする各領域に対応する前記読出バッファ保持手段の読出情報とは異なるバッファを指定する読出情報を前記次読出バッファ保持手段に対してセットし、
前記読出バッファ更新手段は、前記読出バッファ保持手段の更新として前記読出バッファ保持手段における各領域の読出情報を前記次読出バッファ保持手段に保持された各領域の読出情報によって上書きする、
ことを特徴とする請求項２に記載の画像生成装置。
【請求項１５】
前記読出バッファ保持手段は、前記第１および第２のバッファを有する前記記憶手段とは物理的に異なる記憶装置である、
ことを特徴とする請求項２に記載の画像生成装置。
【請求項１６】
前記記憶手段は、前記第１のバッファと前記第２のバッファの同じ行を、記憶装置の物理的に同じ行に割り当てる、
ことを特徴とする請求項１に記載の画像生成装置。
【請求項１７】
前記記憶手段は、前記第１のバッファと前記第２のバッファの同じ座標を、記憶装置の物理的に同じ行の隣り合う列に割り当てる、
ことを特徴とする請求項１に記載の画像生成装置。  
【請求項１８】
１フレームの全部または一部に相当する各領域の画像を書き込むべきバッファを、各々１フレームの画像を記憶可能な第１および第２のバッファから前記画像の領域毎に選択する書込バッファ選択ステップと、
前記１フレームの全部または一部における各領域の画像を前記各領域に対応して選択されたバッファにそれぞれ書き込む書き込みステップと、
１フレームの各領域における画像を読み出すべきバッファを前記第１および第２のバッファから前記領域毎に選択する読出バッファ選択ステップと、
一定周期ごとに前記１フレームの各領域における画像を前記領域毎に前記読出バッファ選択ステップで選択されたバッファから読み出して画像フレームを生成する読み出しステップと、を備え、
前記書込バッファ選択ステップは、フレームのある読み出し期間において書き込もうとする前記１フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記各領域から読み出されるバッファとは異なるバッファを選択し、
前記読出バッファ選択ステップは、前記ある読み出し期間において読み出そうとする前記１フレームの各領域のうち、
前記ある読み出し期間の１つ前のフレームの読み出し期間における読み出しのときに書き込みが行われた領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われたバッファを選択し、
前記１つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われなかった領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに読み出されたバッファと同じバッファを選択する、
ことを特徴とする画像生成方法。
【請求項１９】
１フレームの全部または一部に相当する画像を書き込むべきバッファを、各々１フレームの画像を記憶可能な第１および第２のバッファから前記画像の領域毎に選択する書込バッファ選択ステップと、
前記１フレームの全部または一部における各領域の画像を前記領域毎に選択されたバッファにそれぞれ書き込む書き込みステップと、
１フレームの各領域における画像を読み出すべきバッファを前記第１および第２のバッファから前記領域毎に選択する読出バッファ選択ステップと、
一定周期ごとに前記１フレームの各領域における画像を前記領域毎に前記読出バッファ選択ステップで選択されたバッファから読み出して画像フレームを生成する読み出しステップと、を備え、
前記書込バッファ選択ステップは、フレームのある読み出し期間において書き込もうとする前記１フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記各領域から読み出されるバッファとは異なるバッファを選択し、
前記読出バッファ選択ステップは、前記ある読み出し期間において読み出そうとする前記１フレームの各領域のうち、
前記ある読み出し期間の１つ前のフレームの読み出し期間における読み出しのときに書き込みが行われた領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われたバッファを選択し、
前記１つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われなかった領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに読み出されたバッファと同じバッファを選択する、
ことを特徴とするコンピュータに実行させるための画像生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを記憶媒体に一旦記憶し、記憶された画像データを所定のタイミングで読み出して画像フレームを生成する画像生成装置、画像生成方法、および画像生成プログラムに関する。
【背景技術】
【０００２】
パソコンやテレビなど、ディスプレイに画面を表示するために映像信号を出力する装置では、内部処理が画像を生成するタイミングと、ディスプレイが要求する画像信号のタイミングが必ずしも一致しないので、一般に出力画像の情報（画面を構成する画素データの集合）をメモリ上に保存したフレームバッファとよばれるバッファを持つ。フレームバッファは、図 1のように描画する映像が通常は上から下に順次書き込まれ、さらに、映像信号出力のために一定の周期で上から下に順次読み出される。ディスプレイは通常動画表示なのでこの動作が繰り返し行なわれ、随時更新されるフレームバッファに合わせて画面が更新されていく。例えば通常のディスプレイだとリフレッシュレートは60Hzなどなので、読み出しは毎秒60回の周期で行う。書き込みのタイミングは処理系に依存する。
【０００３】
しかしながら、単一のフレームバッファに単純にこのようなアクセスを行うと、書き込みの途中で読み出しが行われる問題がある。すなわち、読み出しのスキャンと書き込みのスキャンの速度が必ずしも一致しないので、例えば読み出しスキャンが書き込みスキャンを追い抜いてしまったり、あるいは、逆に書き込みスキャンが読み出しスキャンを追い抜いてしまったりなどの現象が発生する。図 2は前者の場合を示しているが、このとき、出力画面上には追い抜きが発生した時点から一つ前の画像フレームが読み込まれて表示されることになるので、画面上に異なる時間のフレームが混在してしまう。すると例えば右に動いている物体が画面に表示されているとき、物体が切れたような表示になり、ティアリングと呼ばれる画面が破綻する現象が起こってしまう。
【０００４】
この問題を解決するため、従来では図 3のようにフレームバッファをダブルバッファ構成とし、書き込みを交互に行い、読み出しは常に書き込みを行っていないバッファから読み出すように動作する（特開２００５−３３８４９８号公報）。このようにすることで追い抜きが発生しなくなり、画面の破綻を防ぐことが出来る。
【特許文献１】特開２００５−３３８４９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
テレビの画面は毎フレームごとに画面全体が更新されるが、例えばパソコンの画面は動いていない部分が多いので、画面は部分的に更新されることが多い。例えば、図 4のように文字を打ったときにはその文字が表示されている領域のみが更新され、図 5のように文書のスクロールをしたときはその文書が表示されている領域のみが更新される。動画を表示している場合も同様にその動画を表示している領域のみが更新される。動画を画面全体に表示している場合は画面全体が更新されることになる。このように、パソコンなどの画面では、画面更新が必要な部分だけ画面の更新が行なわれることが多い。これを前述したフレームバッファの動作で説明すると、読み出しはディスプレイのリフレッシュレートに従って、例えば60Hzという一定の周期で全体を読み出すが、書き込みは任意のタイミングで図6のように画面の更新が必要な領域だけ部分的にフレームバッファに書き込まれる。
【０００６】
書き込みが部分的であっても、書き込まれるタイミングはあくまでも読み出しの周期と一致しているわけではないので、前述した追い越し問題は同様に発生する。よって、これにダブルバッファ方式を適用したいが、次のような問題がある。まずシングルバッファでは図 7のような更新が行なわれるとする。すなわち、まず左に星(1)が描画され、その次に右に星(2)が描画され、最終的に二つの星(1)、星(2)が描画された画面になる。これを単純にダブルバッファで行なうと、図 8のようにまず書き込みバッファである左のバッファに星(1)が書き込まれる。その後にバッファ切り替えが起こったとすると、次の書き込みバッファである右のバッファに星(2)を書き込むことになる。このとき、読み出しは左のバッファから読み出すので、先ほど描画した星(1)が適切に読み出される。しかし、その後にバッファ切り替えが起こると、今度は右のバッファから読み出すことになるが、右のバッファには星(2)のみが書かれており、星(1)が書かれていないので、画面には星(2)しか表示されなくなってしまう。これは、書き込まれる画像が部分的であるがために発生する問題である。
【０００７】
これを単純に回避するためには図 9のような動作になる。すなわち、まず書き込みバッファである左のバッファに星(1)が書き込まれる。その後にバッファ切り替えが起こる際に、書き込みバッファであった左のバッファに更新があった領域、すなわち星(1)を次の書き込みバッファである右のバッファにコピーする。その後に右のバッファに星(2)が書き込まれる。すると、次に右のバッファが読み出しバッファになったとき、右のバッファから星(1)と星(2)が書き込まれた画像フレームを読み出すことが出来る。
【０００８】
このように、部分的な書き込みで画像フレームが更新されるような場合にダブルバッファ方式を適用するには、片方のバッファに更新領域を書き込んだとき、双方のバッファ間で整合性を取るため、バッファ切り替え後に他方のバッファに同じものを書き込んでから、他方のバッファに新たな更新領域を書き込むという動作になる。しかしながら、これはシングルバッファ方式と比べると、バッファ切り替え時にバッファ間のコピーが発生する分、メモリアクセスが増加してしまう。これにより、消費電力が増加するなどの課題がある。
【０００９】
このように従来方式では、部分的な書き込みで画像フレームが更新されるようなシステムにダブルバッファ方式を適用する際に、メモリアクセスが増加してしまう問題がある。
【００１０】
本発明は、書き込んだ画像のバッファ間でのコピーの必要を無くして、フレームバッファへのメモリアクセスを減らすことにより、消費電力を削減するようにした画像生成装置、画像生成方法および画像生成プログラムを提供する。
【課題を解決するための手段】
【００１１】
本発明の一態様としての画像生成装置は、
各々１フレームの画像を記憶可能な第１および第２のバッファを有する記憶手段と、
１フレームの全部または一部における各領域の画像を書き込むべきバッファを前記第１および第２のバッファから前記領域毎に選択する書込バッファ選択手段と、
前記１フレームの全部または一部における各領域の画像を前記書込バッファ選択手段に選択された前記各領域に応じたバッファに書き込む書き込み手段と、
１フレームにおける各領域の画像を読み出すべきバッファを前記第１および第２のバッファから前記領域毎に選択する読出バッファ選択手段と、
一定周期ごとに前記１フレームの各領域における画像を前記読出バッファ選択手段により選択された前記各領域に応じたバッファから読み出して画像フレームを生成する読み出し手段と、
を備え、
前記書込バッファ選択手段は、前記読み出し手段によるフレームのある読み出し期間において前記書き込み手段により書き込もうとする前記１フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記読み出し手段により前記各領域から読み出されるバッファとは異なるバッファを選択し、
前記読出バッファ選択手段は、前記読み出し手段による前記ある読み出し期間において前記読み出し手段により読み出そうとする前記１フレームの各領域のうち、
前記読み出し手段による１つ前のフレームの読み出し期間における読み出しのときに前記書き込み手段による書き込みが行われた領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに前記書き込み手段による書き込みが行われたバッファを選択し、
前記読み出し手段による前記１つ前のフレームの読み出し期間における読み出しのときに前記書き込み手段による書き込みが行われなかった領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに前記読み出し手段により読み出されたバッファと同じバッファを選択する、
ことを特徴とする。
【００１２】
本発明の一態様としての画像生成方法は、
１フレームの全部または一部に相当する各領域の画像を書き込むべきバッファを、各々１フレームの画像を記憶可能な第１および第２のバッファから前記画像の領域毎に選択する書込バッファ選択ステップと、
前記１フレームの全部または一部における各領域の画像を前記各領域に対応して選択されたバッファにそれぞれ書き込む書き込みステップと、
１フレームの各領域における画像を読み出すべきバッファを前記第１および第２のバッファから前記領域毎に選択する読出バッファ選択ステップと、
一定周期ごとに前記１フレームの各領域における画像を前記領域毎に前記読出バッファ選択ステップで選択されたバッファから読み出して画像フレームを生成する読み出しステップと、を備え、
前記書込バッファ選択ステップは、フレームのある読み出し期間において書き込もうとする前記１フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記各領域から読み出されるバッファとは異なるバッファを選択し、
前記読出バッファ選択ステップは、前記ある読み出し期間において読み出そうとする前記１フレームの各領域のうち、
前記ある読み出し期間の１つ前のフレームの読み出し期間における読み出しのときに書き込みが行われた領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われたバッファを選択し、
前記１つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われなかった領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに読み出されたバッファと同じバッファを選択する、
ことを特徴とする。
【００１３】
本発明の一態様としての画像生成プログラムは、
１フレームの全部または一部に相当する画像を書き込むべきバッファを、各々１フレームの画像を記憶可能な第１および第２のバッファから前記画像の領域毎に選択する書込バッファ選択ステップと、
前記１フレームの全部または一部における各領域の画像を前記領域毎に選択されたバッファにそれぞれ書き込む書き込みステップと、
１フレームの各領域における画像を読み出すべきバッファを前記第１および第２のバッファから前記領域毎に選択する読出バッファ選択ステップと、
一定周期ごとに前記１フレームの各領域における画像を前記領域毎に前記読出バッファ選択ステップで選択されたバッファから読み出して画像フレームを生成する読み出しステップと、を備え、
前記書込バッファ選択ステップは、フレームのある読み出し期間において書き込もうとする前記１フレームの全部または一部の画像の各領域に対して、前記ある読み出し期間において前記各領域から読み出されるバッファとは異なるバッファを選択し、
前記読出バッファ選択ステップは、前記ある読み出し期間において読み出そうとする前記１フレームの各領域のうち、
前記ある読み出し期間の１つ前のフレームの読み出し期間における読み出しのときに書き込みが行われた領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われたバッファを選択し、
前記１つ前の読み出し期間におけるフレームの読み出しのときに書き込みが行われなかった領域に対しては前記１つ前の読み出し期間におけるフレームの読み出しのときに読み出されたバッファと同じバッファを選択する、
ことを特徴とするコンピュータに実行させる。
【発明の効果】
【００１４】
本発明により、書き込んだ画像のバッファ間でのコピーが必要なくなり、フレームバッファへのメモリアクセスを減らすことが出来る。これにより、消費電力を削減することが出来る。
【発明を実施するための最良の形態】
【００１５】
（第一の実施の形態）
本発明の第一の実施の形態を図 10に示す。図 10は画像をディスプレイに出力する機器（例えばＰＣ：Personal Computer）の一部であり、画像フレームを２面のバッファ（ダブルバッファ）で記憶するフレームメモリ１１と、フレームメモリ１１に画面の更新領域の画像を任意のタイミングで任意の領域に書き込む書き込み部１２、ディスプレイに画面を出力するためにフレームメモリ１１から一定のタイミングで画像全体を読み出す読み出し部１３を備える。以下、読み出し部１３がフレームの上端から下端までスキャンして画像フレームを1回読み出す間の期間を「読み出しフレーム期間」と呼ぶこととする。現在の読み出しフレーム期間とは、現在読み出し部１３が行っているスキャンの開始から終了までの期間を意味し、次の読み出しフレーム期間とは、そのスキャンが終了し、次のフレームを読み出すべく、再びフレームの上端からスキャンを開始して、それが下端まで行くまでの期間を意味する。
【００１６】
画像フレームは例えば解像度XGA（横1024ピクセル縦768ピクセル）であり、ピクセル情報は16ビット(赤5ビット、緑6ビット、青5ビット)で表されるとする。すると、フレームメモリ１１には1ピクセル16ビットが横1024ピクセル縦768ピクセル分あり、さらにこれが2面あるので、少なくとも16×1024×768×2=25165824ビットの記憶領域を持つことになる。フレームメモリ１１は例えばSDRAMやSRAMなどで実現される。なお、これらのピクセル数や記憶媒体はほんの一例であり、本発明はこれに限らない。
【００１７】
本発明ではさらに、書き込み部１２が画像をいずれのバッファに書き込むかを、画像領域毎（たとえばピクセル毎）に選択する領域毎書込バッファ選択部１４と、読み出し部１３がいずれのバッファから読み出すかを、画像領域毎（たとえばピクセル毎）に選択する領域毎読出バッファ選択部１５で構成される。これらの領域毎書込バッファ選択部１４と領域毎読出バッファ選択部１５の詳細な処理内容は後の実施の形態で述べるので、本実施の形態ではこれらによる本発明の動作概要を基本的な例で示しながら説明する。
【００１８】
まず、最もシンプルな図 11の例から説明する。動作手順を図 12に示す。図 11では、上の二つのフレームバッファ0、1がダブルバッファのそれぞれのバッファを示しており、左上から右下方向への斜線が施されているフレームバッファ0は現在の読み出しバッファであることを示している。フレームの読み出しが開始し（Ｓ１１）、フレームバッファ0の斜線領域内の点線で囲まれた領域（点線領域）に新たな更新画像を書き込みたいとき、領域毎書込バッファ選択部１４は、その部分画像を現在の読み出しバッファとは別のフレームバッファ1に書き込むようにバッファを選択し、書き込み部１２は、更新画像を図のようにフレームバッファ1の右上から左下方向への斜線が施された領域に書き込む（Ｓ１２）。書き込みが完了し、さらにフレームバッファ0からのフレームの読み出しが終了すると（Ｓ１３）、次の読み出しフレーム期間に移行する（Ｓ１４）。今度は図の下のように、先ほど更新画像を書き込んだ領域だけフレームバッファ1から読み出し、それ以外の領域はフレームバッファ0から読み出すよう領域毎読出バッファ選択部１５は領域毎に読み出しバッファを選択し、読み出し部１３はそれに従い読み出しを行う（Ｓ１５）。フレームの読み出しが完了すると（Ｓ１６）、次のフレームの読み出しに移る。なお、Ｓ１４〜Ｓ１６のフレームの読み出し期間内に書き込み画像が発生すればＳ１２と同様にＳ１４〜Ｓ１６のフレーム読み出しと並行して本発明にしたがってバッファの選択および更新画像のバッファへの書き込みが行われる。
【００１９】
以上のように動作することで、書き込みと読み出しが異なるバッファにアクセスされるので、追い抜きが発生しなくなる。さらに、書き込み後の新たなフレームの読み出しでは、書き込んだ領域だけ書き込んだバッファから読み出すので、書き込んだ画像の領域だけ更新された画像フレームを読み出すことが出来る。
【００２０】
次に、図 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に追い越し判定部１６が加わっている。まず、更新画像を書き込む前に、追い越し判定部１６が書き込みスキャン速度、書き込み開始位置、書き込み終了位置、読み出しスキャン速度、読み出し開始位置、読み出し終了位置などの情報から、画像を書き終わるまでに追い越しが発生するかどうかを判定する。追い越しとは、書き込みスキャンによる読み出しスキャンの追い越しと、読み出しスキャンによる書き込みスキャンの追い越しの両方を含む。
【００２６】
前述の図 11と同様の条件で画像を書き込むときの動作手順を図 19に示す。フレームの読み出しが開始し（Ｓ２１）、書き込み画像が発生すると（Ｓ２２）、画像を書き込む前に追い越し判定が行われ（Ｓ２３）、追い越しが発生しないと判定した場合は（Ｓ２４のＮＯ）図 20のように動作する。図 20は先と同じく左上から右下方向への斜線が施された領域が読み出し領域を示しており、右上から左下方向へ斜線が施された領域が更新画像の書き込み領域を示している。図 11と異なり、書き込みを読み出し領域に行っている（Ｓ２５）。読み出し領域に書き込むので、書き込みが終了し、さらにフレームの読み出しが終了した後（Ｓ２７）、読み出しが新たなフレームを読み出すときも（Ｓ２８）、読み出しバッファはそのままで変わらない（Ｓ２９）。画像を書き込むとき、追い越し判定部１６が追い越しが発生すると判定した場合は（Ｓ２４のＹＥＳ）、第一の実施の形態と同様に図11のように画像の書き込みおよび次のフレームの読み出しが動作する（Ｓ２６〜Ｓ２９）。フレームの読み出しが完了すると（Ｓ３０）、次のフレームの読み出しに移る。なお、Ｓ２７〜Ｓ３０のフレームの読み出し期間内に書き込み画像が発生すればＳ２３〜Ｓ２６のフローにしたがってフレーム読み出しと並行してバッファの選択および書き込み画像のバッファへの書き込みが行われる。
【００２７】
次に、図 13の追い越しが発生しない場合が図 21である。やはり図 13と異なるのは、読み出し領域毎に読み出しバッファを選択して書き込んでいる点である。領域毎にバッファが選択されても、あくまで読み出しバッファを選択して書き込んでいるので、書き込みが終了して読み出しが新たなフレームを読み出す際も、読み出しバッファは変わらない。この場合も、追い越しが発生すると判定された場合は図 13の様に動作する。
【００２８】
次に、図 14に対応して連続して画像が書き込まれる場合を示したのが図 22である。図 22は2つの更新画像が書き込まれるが、一つ目の左上に書き込まれる画像は追い越しが発生すると判定され、二つ目の左下に書き込まれる画像は追い越しが発生しないと判定された場合である。この場合、追い越しが判定された左上の画像は図 14と同様に領域毎に読み出しバッファとは別のバッファに書き込まれ、追い越しが判定されない左下の画像は読み出しバッファと同じバッファに書き込まれる。左上画像の次に左下画像が上書きされているので、書き込みが終了して読み出しが新たなフレームを読み出すときは、左上画像の領域は読み出しバッファが反転されているが、左下画像に関しては反転されておらず、特に、双方が重なっている領域に関しては、上書きされた方が優先される。すなわち、重なっている部分に関しては、読み出しバッファが反転されない。
【００２９】
以上、本実施の形態では、追い抜きが発生するかどうかを画像を書き込む前に判定し、追い抜かない場合は領域毎に読み出しバッファと同じバッファに書き込み、追い抜く場合は領域毎に読み出しバッファとは異なるバッファに書き込む動作を示した。これにより、追い抜きが発生しない場合に、書き込んだ画像をより少ない遅延で読み出すことができる。
【００３０】
（第三の実施の形態）
第二の実施の形態までは本発明の動作概要を示したが、第三の実施の形態では領域毎にバッファを選択する処理の具体的な動作を説明する。本発明の第三の実施の形態を図 23に示す。図 18に加え、図 23は読出バッファBITMAP（読出バッファ保持手段）１８と、バッファ反転BITMAP（読出バッファ反転保持手段）１９と、BITMAP更新部（読出バッファ更新手段）２０を備える。読出バッファBITMAP１８は画像フレームの各ピクセルに1ビットが対応しているビットマップ情報である。すなわち、解像度XGA（横1024ピクセル縦768ピクセル）の画像フレームの場合、1024×768=786432ビットの領域を持つ。各ビット情報（読出情報）は、対応するピクセルをダブルバッファのうちいずれのフレームバッファから読み出すかを示しており、例えば0がセットされているピクセルはフレームバッファ0から読み出し、1がセットされているピクセルはフレームバッファ1から読み出すことを意味する。バッファ反転BITMAP１９は、読出バッファBITMAP１８と1対1で対応した同じサイズの記憶領域をもち、それぞれのビットは画像フレームのピクセルに対応している。例えばここに1（反転情報）が書き込まれているピクセルは、書き込み部１２が更新画像を書き込んだ後に読み出し部１３が新たなフレームを読み出すとき、読み出しバッファを反転させることを意味する。BITMAP更新部２０は、このバッファ反転BITMAP１９の情報を用いた読出バッファBITMAP１８の反転処理を行い、かつ、バッファ反転BITMAP１９を全て0でリセットするというBITMAP更新処理を行う。なお、読出バッファBITMAP１８とバッファ反転BITMAP１９は例えばSDRAMやSRAMなどの記憶媒体で実現されるが、特にこれらに限るものではない。
【００３１】
動作手順を図 24に示す。具体的な動作は次のようになる。図 11の動作に関して述べると、読出バッファBITMAP１８とバッファ反転BITMAP１９は図 25のようになる。それぞれのBITMAPは、図の斜線領域には1が書かれており、それ以外には0が書かれていることを意味する。まず、図 11は画像フレームの全領域の読み出しバッファが0の状態から始まるが、これは読出バッファBITMAP１８の全てが0であり、これを領域毎読出バッファ選択部１５が読み出して、いずれの領域も0であることから、いずれの領域もフレームバッファ0を選択するという動作で実現される。
【００３２】
第二の実施の形態で述べたように、図 11は追い越し判定部１６が追い越しを判定したときの動作である。すなわちフレームの読み出しが開始し（Ｓ４１）、書き込み画像が発生すると（Ｓ４２）、画像を書き込む前に追い越し判定が行われ（Ｓ４３）、追い越しが発生すると判定される（Ｓ４４のＹＥＳ）。追い越しが発生すると判定されたため、画像の書き込みはフレームバッファ1に対して行われる（Ｓ４６）。より詳しくは、まず書き込み部１２が画像を書き込むときに、領域毎書込バッファ選択部１４が読出バッファBITMAP１８から書き込む領域に相当する読出バッファ情報を参照し、そこに0がセットされていることから、読み出しバッファはフレームバッファ0と判断する。そして、追い越しが判定されているので、書き込みバッファとして読み出しバッファとは別のバッファであるフレームバッファ1を選択し、書き込み部１２がそれに従って画像を書き込むという動作になる。
【００３３】
バッファ反転BITMAP１９も全領域0の状態から始まるが、書き込み部１２による画像のフレームバッファ1への書き込みが行われると、図 25の中段右の様に領域毎書込バッファ選択部１４はバッファ反転BITMAP１９の対応する領域に1（更新情報）をセットする（Ｓ４６）。そして画像の書き込みが終了した後、現在のフレームの読み出しが終了し（Ｓ４７）、次のフレームの読み出し開始するまでの間（例えば生成する画像の垂直ブランク期間）に、BITMAP更新部２０がバッファ反転BITMAP１９の全ての情報を読み出し、読出バッファBITMAP１８のうち、対応するバッファ反転BITMAP１９が1となっている全てのビットを反転する（Ｓ４８）。具体的には、新たな読出ビット＝［読出ビット XOR 反転ビット］という計算を、読出バッファBITMAP１８とバッファ反転BITMAP１９の対応するビット同士で、全ビットに対して行う。また同時にバッファ反転BITMAP１９を全て0（非更新情報）にリセットする（Ｓ４８）。こうすることで、読出バッファBITMAP１８が図 25の左下のようになり、新たなフレームの読み出しが開始すると（Ｓ４９）、更新後の読出バッファBITMAP１８に基づき、更新画像が書かれた部分だけフレームバッファ1から読み出されそれ以外はフレームバッファ０から読み出されるようになる（Ｓ５０）。フレームの読み出しが完了すると（Ｓ５１）、次のフレームの読み出しに移る。
【００３４】
図 20のように追い越しが判定されなかった場合は（Ｓ４４のＮＯ）、読み出しバッファと同じバッファに画像の書き込みが行われ、バッファ反転BITMAP１９には1がセットされず全て0のままである（Ｓ４５）。そして現在のフレームの読み出しが終了し（Ｓ４７）、次のフレームの読み出しが開始するまでの間に、BITMAP更新処理を行い（Ｓ４８）、新たなフレームの読み出しが開始する（Ｓ４９）。バッファ反転BITMAP１９には1がセットされておらず全て0のままであるので、新たなフレームの読み出しが開始しても、読出バッファBITMAP１８が前回のフレームの読み出しのときから変化しないということになる。
【００３５】
なお、Ｓ４９〜Ｓ５１のフレームの読み出し期間内に書き込み画像が発生すればＳ４３〜Ｓ４６のフローにしたがってフレーム読み出しと並行してバッファ選択および書き込み画像のバッファへの書き込みが（Ｓ４６が行われる場合はバッファ反転BITMAP１９への１のセットも）行われる。
【００３６】
図 13の場合の読出バッファBITMAP１８とバッファ反転BITMAP１９は図 26のようになる。画像フレームの真ん中あたりの領域はフレームバッファ1から読み出し、それ以外の領域はフレームバッファ0から読み出すという動作は、読出バッファBITMAP１８が図 26の左上のようになっていることで実現される。画像の書き込みが行われると、先と同様に対応するバッファ反転BITMAP１９に1がセットされ、画像の書込み終了後に次の読み出しフレームに移行する際に、バッファ反転BITMAP１９の情報で読出バッファBITMAP１８の情報が反転され、結果的に読出バッファBITMAP１８は図 26の左下の様になり、図 13の下のように読み出しバッファが選択されるようになる。
【００３７】
図 21のように追い越しが発生しない場合は、画像書き込みが行われて次の読み出しフレームに移行しても、読出バッファBITMAP１８とバッファ反転BITMAP１９が図 26の上の状態で変化しない。
【００３８】
図 14の場合の読出バッファBITMAP１８とバッファ反転BITMAP１９は図 27、図 22の場合の読出バッファBITMAP１８とバッファ反転BITMAP１９は図 28のようになる。連続して更新画像が発生しても、バッファ反転BITMAP１９は単純に最初にセットされた情報を後にセットする方で上書きする。例えば図 28の場合、最初に左上の追い越しが発生する画像が書き込まれたときにバッファ反転BITMAP１９の相当領域に1がセットされるが、その後に左下の追い越しが発生しない画像が書き込まれたときに相当領域に上書きして0がセットされる。このような動作で、書き込みが終了した後の読み出しフレームでは、前述のように両方の画像が重なった部分は、後に書き込まれた追い越しが起こらない画像が優先されて反転されなくなる。
【００３９】
ここで、BITMAP更新処理を行う際、直前のフレームの読み出し期間中に、書き込み部１２から一度もバッファ反転BITMAP１９にアクセスすることがなかった場合、バッファ反転BITMAP１９は全て0であることがわかっているので、更新処理をスキップしてもよい。これは、読み出しバッファとは別のバッファに書き込まれる画像の書き込みの終了があったかどうかを検知することで実現できる。このような書き込み終了検知部２１を備える構成を図 29に示す。このような検知を行い、書き込み終了を検知したときのみBITMAP更新を行い、BITMAP情報へのメモリアクセス量を抑え、それにより消費電力を削減することができ、ひいては本発明の効果をより顕著にすることが出来る。
【００４０】
なお、領域毎の読出バッファ情報と、領域毎の反転バッファ情報をBITMAP情報で管理する例を示したが、本発明はこれに限ることはなく、画像が矩形であれば、矩形の左上のX座標、Y座標、縦幅、横幅などのベクトル形式の情報の集合として管理しても良い。
【００４１】
（第四の実施の形態）
画像は読み出しフレーム期間を跨いで書き込まれる場合がある。すなわち、BITMAP更新部２０によるBITMAPの更新処理を行う際、未だ画像の書き込みが終了しておらず、書き込み途中である場合がある。本実施の形態ではこのような場合にも対応するいくつかの構成について述べる。
【００４２】
まず、追い越し判定を行わない場合の基本的な構成を図 30に示す。図 30は図 23と比べて書き込み中検知部２２を備える。書き込み中検知では、現在画像を書き込んでいる最中かどうかを検知する。BITMAP更新部２０は書き込み中検知部２２が書き込み中を検知している場合はBITMAP更新処理を行わない。
【００４３】
動作手順を図 31に、フレームバッファの具体的な動作を図 32に示す。画像の書き込みを行うとき、領域毎書込バッファ選択部１４が読み出しバッファとは別のバッファであるフレームバッファ1を選択し、書き込み部１２がフレームバッファ1に画像の書き込みを行う（Ｓ６１〜Ｓ６３）。BITMAP更新部２０は最初の読み出しフレーム期間と2つ目の読み出しフレーム期間の間では画像の書き込み中であるため、書き込み中検知部２２が書き込みを検知し（Ｓ６４のＹＥＳ）、BITMAP更新を行わない。3つ目の読み出しフレーム期間に移行するときには画像の書き込みが終了しているため（Ｓ６９のＮＯ）BITMAP更新を行い（Ｓ７０）、3つ目の読み出しフレーム期間では書き込んだ画像を正しく読み出すことが出来る（Ｓ７２）。
【００４４】
次に、追い越し判定を行う場合について述べる。追い越し判定を行うと、例えば2つの読み出しフレーム期間に跨った画像の場合、次の読み出しフレーム期間で追い越しが発生する場合は次の読み出しフレーム期間では読み出すことが出来ないので、図 32と同様の動作になり、書き込んだ画像は2つ先のフレーム読み出しで読み出されることになる。しかし、現在の読み出しフレーム期間で追い越しが発生しても、次の読み出しフレーム期間で追い越しが発生しない場合は、次のフレームの読み出しで書き込んだ画像を読み出すことが可能である。このように現在の読み出しフレーム期間での追い越しが発生するかどうかと、次の読み出しフレーム期間で追い越しが発生するかどうかの両方に応じて動作するための構成を図 33に示す。図 33は図 30に加えて追い越し判定部１６と次追い越し判定部２４と再判定指示部２３を備え、BITMAP更新部２０が次追い越し判定部２４の結果に基づいて更新するかどうかの判断をするところが異なる。追い越し判定部１６は前述の通り現在の読み出しフレーム期間で現在書き込んでいる画像で追い越しが発生するかどうかを判定し、次追い越し判定部２４は次の読出しフレーム期間で現在書き込んでいる画像の残りの書き込みで追い越しが発生するかどうかを判定する。再判定指示部２３は、画像が複数の読み出しフレーム期間に跨って書き込まれる場合に、新たな読み出しフレーム期間になるたびに、追い越し判定部１６にはその新たな読み出しフレーム期間で追い越しが発生するか、次追い越し判定部２４には新たな読み出しフレーム期間の次の読み出しフレーム期間で追い越しが発生するか、の再判定を指示する。BITMAP更新部２０は、書き込み中検知部２２が書き込みの途中であることを検知しても、次追い越し判定部２４が次の読み出しフレーム期間で追い越しが発生しないことを判定していた場合、BITMAPの更新を行う。そして、領域毎書込バッファ選択部１４と、領域毎読出バッファ選択部１５は、これら更新された読出バッファBITMAP１８情報と追い越し判定情報、次追い越し判定情報に基づいてバッファ選択を行うようにする。
【００４５】
動作手順を図 34に示す。まず、図 32の動作を説明すると、図 32は次の読み出しフレーム期間で追い越しが発生するので（Ｓ８５のＹＥＳ）、次追い越し判定部２４が追い越しを判定し、現在の読み出しフレーム期間であっても読み出しバッファとは別のフレームバッファ1に書き込まれる（Ｓ８７）。その後、フレームの読み出しが終了し（Ｓ８８）、読み出しフレームが次に移行するが、その際、画像は書き込み中であり（Ｓ８９のＹＥＳ）、また、次追い越し判定部２４は追い越しを判定しているので（Ｓ９０のＹＥＳ）、BITMAP更新部２０はBITMAP更新を行わず、読み出しバッファはそのままである。次の読み出しフレーム期間になると（Ｓ９２）、再判定指示部２３が追い越し判定部１６と次追い越し判定部２４に再判定の指示を行い（Ｓ９３）、それぞれ、追い越しあり（Ｓ９４のＹＥＳ）、追い越し無し（画像の書き込みは現在の読み出しフレーム期間で終了するため）の判定を行う。書き込み部１２はこの結果に従い、画像の残りの領域を読み出しバッファとは別のフレームバッファ1に書き込む（Ｓ９７）。そして、読み出しフレーム期間が終了すると（Ｓ９８）、今度は書き込みが終了しているので（Ｓ９９のＮＯ）、BITMAP更新部２０はBITMAP更新を行う（Ｓ１０１）。読み出しバッファは書き込んだ画像を読み出すように反転され、次の読み出しフレーム期間では書き込んだ画像を読み出せるようになる（Ｓ１０２〜Ｓ１０４）。
【００４６】
次に、2つめの読み出しフレーム期間では追い越しが発生しない場合についてのフレームバッファの具体的な動作を図 35に示す。図 35で書き込まれる画像は、まず現在の読み出しフレーム期間で追い越しが発生するので、追い越し判定部１６が追い越しを判定し（Ｓ８４のＹＥＳ）、領域毎読出バッファ選択部１５は読み出しバッファとは異なるフレームバッファ1を選択し、書き込み部１２はフレームバッファ1に画像を書き込む（Ｓ８７）。その後、現在の読み出しフレーム期間が終了するが（Ｓ８８）、画像の書き込みが完了していないため、書き込み中検知部２２が画像の書き込み最中であることを検知する（Ｓ８９のＹＥＳ）。ただし、今回は次追い越し判定部２４が追い越しを判定していないので（Ｓ９０のＮＯ）、前述の動作に従いBITMAP更新処理を行う（Ｓ９１）。すると、次の読み出しフレーム期間では先ほどの読み出しフレーム期間に書き込んだ領域は読み出しバッファになるので、読み出すことが出来る。さらに、ここで再判定指示部２３が追い越し判定部１６および次追い越し判定部２４に再判定の指示を行い、追い越し判定部１６が今回の読み出しフレームでは追い越しが発生しないことを判定し（Ｓ９４のＮＯ）、次追い越し判定部２４も追い越し無し（画像の書き込みは現在の読み出しフレーム期間で終了するため）の判定を行う（Ｓ９５のＮＯ）。これにより領域毎書込バッファ選択部１４は書き込みバッファを読み出しバッファと同じフレームバッファ0を選択して、書き込み部１２はフレームバッファ0に書き込み（Ｓ９６）、画像の残りの領域もこの読み出しフレーム期間で読み出すことが可能となる。なお、追い越し判定部１６の再判定結果は、実際は前の読み出しフレーム期間での次追い越し判定部２４の判定結果と同じなので、その情報を流用してもよい。
【００４７】
また、図 34のBITMAP更新処理をするかどうかの判定に、第三の実施の形態の最後で述べた書き込み終了の検知がなかった場合は更新をスキップする判定を組み合わせたものを図 36に示す。すなわち図34のＳ８８〜Ｓ９２、およびＳ９８〜Ｓ１０２は、図３６のフローに置換することが可能である。図 34と比べると、書き込み中でなく（Ｓ１１２のＮＯ）、かつ、書き込み終了を検知しなかった場合に（Ｓ１１４のＮＯ）、BITMAP更新処理を行わないところが異なる。
【００４８】
画像の書き込みが3つ以上の読み出しフレーム期間に跨ぐときでも、新たな読み出しフレームにかわるたびに上記の動作を繰り返すことで同様に処理することが出来る。
【００４９】
このように前述までの実施の形態に従うと、画像が複数の読み出しフレーム期間を跨いで書き込まれる場合、次の読み出しフレーム期間で追い越しが発生しない場合でも、書き込んだ画像は2つ先のフレームで読み出されることになるが、本実施の形態に従うと、次の読み出しフレーム期間で追い越しが発生しない場合では、書き込んだ画像を1つ先のフレームで読み出すことができるようになり、画像の読み出しの遅延を低減することが出来る。
【００５０】
（第五の実施の形態）
第四の実施の形態では、読み出しフレーム期間を跨いで画像の書き込みが行われる場合について述べた。第五の実施の形態では、同じく読み出しフレーム期間を跨いで画像の書き込みが行われる場合に、同じ読み出しフレーム期間に既に書き込まれた画像をより早く読み出すための形態について述べる。
【００５１】
例えば図 37のような場合、まず左上に追い越しが発生する画像が、読み出しバッファであるフレームバッファ1とは別のフレームバッファ0に書き込まれる。その後に、同じ読み出しフレーム期間の間にその右側に画像が書き込まれる。この画像は読み出しフレーム期間を跨いで書き込まれ、跨いだ後の読み出しフレームで追い越しが発生するので、読み出しバッファとは別のフレームバッファ0に書き込まれ、2つ先の読み出しフレームで読み出されることとなる。このとき問題となるのは最初に書き込まれた画像で、この画像は最初の読み出しフレーム期間で書き込みが終了しているので、次の読み出しフレーム期間、すなわち、1つ先の読み出しフレーム期間で読み出すことが可能なはずである。しかし、前述までの実施の形態だと、2つ目の画像と同じく2つ先の読み出しフレームで読み出されることになり、遅延が生じてしまう。
【００５２】
これを解決するには図 38のような構成をとる。図 38は図 33と比べ、図 29で述べた書き込み終了検知部２１と、反転リセットBITMAP（更新反転／非反転情報保持手段）２５を備える。BITMAP更新部２０がバッファ反転BITMAP１９を更新する際、前述までの実施の形態ではバッファ反転BITMAP１９を全て0にリセットしたが、今回は反転リセットBITMAP２５の内容をコピーする形でバッファ反転BITMAP１９の情報を更新する。また同時に今度は反転リセットBITMAP２５の情報を全て0（更新非反転情報）にリセットする。またBITMAP更新部２０は、書き込み終了検知部２１が画像の書き込み終了を検知していると、たとえ画像の書き込み中であっても、さらには、その画像が次の読み出しフレーム期間で追い越されることを次追い越し判定部２４が判定していても、BITMAP更新を行う。この部分に関する動作手順を図 39に示す。これは図 34のBITMAP更新処理の判定部分の置き換えとなる。すなわち図34のＳ８８〜Ｓ９２、およびＳ９８〜Ｓ１０２は、図３９のフローに置換される。また、図 39のBITMAP更新処理をするかどうかの判定に、第三の実施の形態の最後で述べた書き込み終了の検知がなかった場合は更新をスキップする判定を組み合わせたものを図 40に示す。図 39と比べると、書き込み終了を検知しなく（Ｓ１３２のＮＯ）かつ書き込み中でない場合に（Ｓ１３３のＮＯ）、BITMAP更新処理を行わないところが異なる。
【００５３】
フレームバッファの動作の手順を図 41、読出バッファBITMAP１８とバッファ反転BITMAP１９と反転リセットBITMAP２５の動作の手順を図 42に示す。まず、図 37と同様に図 41のように左上に画像が書き込まれ、次に、その右側に読み出しフレーム期間を跨いで書き込まれる画像が書き込まれる。そのとき、書き込み終了検知部２１が現在の読み出しフレーム期間で既に別の画像の書き込み終了があったことを検知すると、2つめの画像に関してはバッファ反転BITMAP１９に1をセットするのではなく、反転リセットBITMAP２５に1（更新反転情報）をセットする。次に、BITMAP更新部２０は、書き込み終了検知部２１が画像の書き込み終了を検知しているので、前述の様にBITMAP更新を行う。すると、まず読出バッファBITMAP１８はバッファ反転BITMAP１９の情報により、1つめの画像を読み出すように読み出しバッファが反転される。同時に、バッファ反転BITMAP１９は反転リセットBITMAP２５の情報がコピーされるので、現在書き込んでいる2つめの画像をさらにその次の読み出しフレーム期間で読み出すべく、既に書き込んだ領域に関して1がセットされる。そして画像の残りの領域の書き込みが終了し、その部分のバッファ反転BITMAP１９へのセットも終了し、次の読み出しフレーム期間に移行する際にBITMAP更新が行われると、2つめに書いた画像の領域のバッファ反転BITMAP１９に1がセットされているので、その領域が読み出されるように読み出しバッファが反転され、次の読み出しフレーム期間では2つめの画像を読み出すことが出来る。
【００５４】
ただし、1つめの画像と2つめの画像が重なっている場合は、2つめの画像が1つめの画像を上書きしてしまう。すると、次の読み出しフレームで2つめの画像の上書きした部分が読み出されてしまうという問題がある。このような場合にも対処する構成を図 43に示す。図 43は図 38と比べ、領域毎書込バッファ選択部１４がバッファ反転BITMAP１９も参照してバッファ選択を行うことと、書き込み部１２に書き込みの待ちを要求する書き込み待ち要求部２８を備えることが異なる。画像フレームの動作の手順を図 44、読出バッファBITMAP１８とバッファ反転BITMAP１９と反転リセットBITMAP２５の動作の手順を図 45に示す。まず、先ほどと同じように左側に1つめの追い越しが発生する画像が書き込まれる。次にその右側に、読み出しフレーム期間を跨いで書き込まれ、さらに次の読み出しフレーム期間で追い抜きが発生する、2つめの画像が書き込まれる。そのとき、2つ目の画像の書き込み領域を選択する際、領域毎書込バッファ選択部１４はバッファ反転BITMAP１９も参照し、次の読み出しフレーム期間での読み出しフレームとは別のフレームを選択する。つまり、現在の読み出しフレームは読出バッファBITMAP１８を参照すればよいが、次の読み出しフレーム期間の読み出しフレームは［読出バッファBITMAP１８のビット XOR バッファ反転BITMAP１９のビット］で表されるので、領域毎書込バッファ選択部１４はこの計算を行い、求められたバッファとは別のバッファを選択する。こうすることにより、先ほどの1つめの画像と2つめの画像に重なりがない場合はバッファ反転BITMAP１９には0が入っているので、先ほどと同じく現在の読み出しバッファとは別のバッファであるフレームバッファ0を選択することになるが、重なりがある場合は反転ビットが1なので、それとは別のバッファ、すなわち、現在の読出しバッファであるフレームバッファ1を選択することになる。そして、重なりがある部分について書き込み部１２はフレームバッファ1に、重なりがない部分についてフレームバッファ0に書き込み、さらに、先と同じようにバッファ反転BITMAP１９ではなく反転リセットBITMAP２５の2つ目の画像の領域に反転情報を書き込む。
【００５５】
これは、本来ならば第三のフレームバッファを設けて第三のフレームバッファに書き込むべきものを、読み出しバッファである第一のバッファに書き込み、第三のバッファを第一のバッファで代用しているために必要となる処理である。つまり、現在の読み出しフレーム期間では読み出し部１３はもともと読み出しバッファに書き込まれている画像を読み出すべきであり、ここに今から書き込まれる2つ目の画像を読み出すべきではない。そこで、この2つ目の画像が書き込まれる領域、すなわち、1つ目の画像と2つ目の画像が重なった領域を、読み出しスキャンが通り過ぎるまで書き込み部１２が書き込みを待つように、書き込み待ち要求部２８が書き込み部１２に待ち要求を出す。書き込み部１２はそれに従って書き込みを待ち、読み出しスキャンが通り過ぎたら書き込みを開始する。こうすることによって、読み出し部１３が現在のフレーム期間で2つめの画像を読み出してしまうことはなくなる。その後の処理は先ほどの場合と同様で、次のBITMAP更新にてバッファ反転BITMAP１９によって読出バッファBITMAP１８が更新され、次の読み出しフレーム期間では1つめの画像が読み出される。さらに、反転リセットBITMAP２５によってバッファ反転BITMAP１９が更新されるので既に画像が書き込まれた部分は反転ビットがセットされており、残りの領域の書き込みで残りの領域にもセットされるので、その次の読出しフレーム期間では2つ目の画像が読み出される。
【００５６】
以上、本実施の形態により、読み出しフレームを跨いで画像の書き込みが行われる場合に、同じ読み出しフレーム期間で既に書き込まれた画像を次のフレームで読み出すことが可能となり、画像の読み出しの遅延を低減することが出来る。
【００５７】
なお、上記では簡単のため反転リセットBITMAP２５をビットマップ形式で保存する例を示したが、前述の様にBITMAP情報はベクトル形式などで情報を保存してもよい。特に反転リセットBITMAP２５は単一画像の領域情報のみ保存すればよいので、ベクトル形式で情報を記憶する方がよりビット情報を少なくすることができ、好ましい。
【００５８】
（第六の実施の形態）
第三の実施の形態では領域毎にバッファを選択する具体的な動作を説明したが、本実施の形態ではそのもう1つの方法を説明する。本実施の形態を図 46に示す。図 18に加え、図 46は読出バッファBITMAP１８と、次読出バッファBITMAP（次読出バッファ保持手段）３２と、BITMAP更新部３１を備える。読出バッファBITMAP１８は画像フレームの各ピクセルに1ビットが対応しているビットマップ情報である。すなわち、解像度XGA（横1024ピクセル縦768ピクセル）の画像フレームの場合、1024×768=786432ビットの領域を持つ。各ビット情報（読出情報）は、対応するピクセルをダブルバッファのうちいずれのフレームバッファから読み出すかを示しており、例えば0がセットされているピクセルはフレームバッファ0から読み出し、1がセットされているピクセルはフレームバッファ1から読み出すことを意味する。次読出バッファBITMAP３２は、読出バッファBITMAP１８と1対1で対応した同じサイズの記憶領域をもち、それぞれのビットは画像フレームのピクセルに対応している。それぞれのビット（読出情報）は次の読出しフレーム期間で対応するピクセルをダブルバッファのうちいずれのフレームバッファから読み出すかを示している。BITMAP更新部３１は、この次読出バッファBITMAP３２の情報を読出バッファBITMAP１８にコピーすることでBITMAP更新処理を行う。なお、読出バッファBITMAP１８と次読出バッファBITMAP３２は例えばSDRAMやSRAMなどの記憶媒体で実現されるが、特にこれらに限るものではない。
【００５９】
動作手順を図 24に示す。具体的な動作は次のようになる。図 11の動作に関して述べると、読出バッファBITMAP１８と次読出バッファBITMAP３２は図 47のようになる。それぞれのBITMAPは、図の斜線領域には1が書かれており、それ以外には0が書かれていることを意味する。まず、図 11は画像フレームの全領域の読み出しバッファが0の状態から始まるが、これは読出バッファBITMAP１８の全てが0であり、これを領域毎読出バッファ選択部１５が読み出して、いずれの領域も0であることから、いずれの領域もフレームバッファ0を選択するという動作で実現される。
【００６０】
第二の実施の形態で述べたように、図 11は追い越し判定部１６が追い越しを判定したときの動作であり、画像の書き込みはフレームバッファ1に対して行われる。これは、まず書き込み部１２が画像を書き込むときに、領域毎書込バッファ選択部１４が読出バッファBITMAP１８から書き込む領域に相当する読出バッファ情報を参照し、そこに0がセットされていることから、読み出しバッファはフレームバッファ0と判断する。次に、追い越しが判定されている場合はその別のバッファであるフレームバッファ1を選択し、書き込み部１２がそれに従って画像を書き込むという動作になる。
【００６１】
次読出バッファBITMAP３２も全領域0の状態から始まるが、書き込み部１２による画像のフレームバッファ1への書き込みが行われると、図 47の中段右の様に書き込み部１２は次読出バッファBITMAP３２の対応する領域（図 47の中段左の点線部）に、読出バッファBITMAP１８の対応する領域の値を反転した値、すなわち1をセットする。そして画像の書き込みが終了した後、現在のフレームの読み出しが終了し、次のフレームの読み出し開始するまでの間（例えば生成する画像の垂直ブランク期間）に、BITMAP更新部３１が次読出バッファBITMAP３２の全ての情報を読み出し、対応する読出バッファBITMAP１８にコピーする。こうすることで、読出バッファBITMAP１８が図 47の左下のようになり、新たなフレームの読み出しは、更新画像が書かれた部分だけフレームバッファ1から読み出すようになる。
【００６２】
図 20のように追い越しが判定されなかった場合は、次読出バッファBITMAP３２の値が更新されないので、次の読み出しフレームに移行しても読出バッファBITMAP１８が変化しないということになる。
【００６３】
図 13の場合の読出バッファBITMAP１８と次読出バッファBITMAP３２は図 48のようになる。画像フレームの真ん中あたりの領域はフレームバッファ1から読み出し、それ以外の領域はフレームバッファ0から読み出すという動作は、読出バッファBITMAP１８が図 48の左上のようになっていることで実現される。画像の書き込みが行われると、先と同様に対応する次読出バッファBITMAP３２に読出BITMAPの対応する領域の値を反転した値がセットされ、画像の書込み終了後に次の読み出しフレームに移行する際に、BITMAP更新部３１によって次読出バッファBITMAP３２の情報が読出バッファBITMAP１８にコピーされ、結果的に読出バッファBITMAP１８は図 48の左下の様になり、図 13の下のように読み出しバッファが選択されるようになる。
【００６４】
図 21のように追い越しが発生しない場合は、画像書き込みが行われて次の読み出しフレームに移行しても、読出バッファBITMAP１８と次読出バッファBITMAP３２が図 48の上の状態で変化しない。
【００６５】
図 14の場合の読出バッファBITMAP１８と次読出バッファBITMAP３２は図 49、図 22の場合の読出バッファBITMAP１８と次読出バッファBITMAP３２は図 50のようになる。連続して更新画像が発生しても、次読出バッファBITMAP３２は単純に最初にセットされた情報を後にセットする方で上書きする。例えば図 50の場合、最初に左上の追い越しが発生する画像が書き込まれたときに次読出バッファBITMAP３２の相当領域に読出バッファBITMAP１８の相当領域の値を反転した値がセットされるが、その後にそのすぐ右下に追い越しが発生しない画像が書き込まれると、その部分は読出バッファBITMAP１８の相当領域の値で上書きされる。このような動作で、書き込みが終了した後の読み出しフレームでは、前述のように両方の画像が重なった部分は、後に書き込まれた追い越しが起こらない画像が優先される。
【００６６】
ここで、BITMAP更新処理を行う際、直前のフレームの読み出し期間中に、書き込み部１２から一度も次読出バッファBITMAP３２にアクセスすることがなかった場合、次読出バッファBITMAP３２は値が変わっていないことがわかっているので、更新処理をスキップしてもよい。これは、読み出しバッファとは別のバッファに書き込まれる画像の書き込みの終了があったかどうかを検知することで実現できる。このような書き込み終了検知部２１を備える構成を図 51に示す。このような検知を行い、書き込み終了を検知したときのみBITMAP更新を行い、BITMAP情報へのメモリアクセス量を抑え、それにより消費電力を削減することができ、ひいては本発明の効果をより顕著にすることが出来る。
【００６７】
なお、領域毎の読出バッファ情報と、領域毎の次読出しバッファ情報をBITMAP情報で管理する例を示したが、本発明はこれに限ることはなく、画像が矩形であれば、矩形の左上のX座標、Y座標、縦幅、横幅などのベクトル形式の情報の集合として管理しても良い。
【００６８】
（第七の実施の形態）
画像は読み出しフレーム期間を跨いで書き込まれる場合がある。すなわち、BITMAP更新部３１によるBITMAPの更新処理を行う際、未だ画像の書き込みが終了しておらず、書き込み途中である場合がある。本実施の形態ではこのような場合にも対応するいくつかの構成について述べる。
【００６９】
ます、追い越し判定を行わない場合の基本的な構成を図 52に示す。図 52は図 46と比べて書き込み中検知部２２を備える。書き込み中検知部２２では、現在画像を書き込んでいる最中かどうかを検知する。BITMAP更新部３１は書き込み中検知部２２が書き込み中を検知している場合はBITMAP更新処理を行わない。
【００７０】
動作手順を図 31に、フレームバッファの具体的な動作を図 32に示す。画像の書き込みを行うとき、領域毎書込バッファ選択部１４が読み出しバッファとは別のバッファであるフレームバッファ1を選択し、書き込み部１２がフレームバッファ1に画像の書き込みを行う。BITMAP更新部３１は最初の読み出しフレーム期間と2つ目の読み出しフレーム期間の間では画像の書き込み中であるため、書き込み中検知部２２が書き込み中であることを検知し、BITMAP更新を行わない。3つ目の読み出しフレーム期間に移行するときには画像の書き込みが終了しているためBITMAP更新を行うので、3つ目の読み出しフレーム期間では書き込んだ画像を正しく読み出すことが出来る。
【００７１】
次に、追い越し判定を行う場合について述べる。追い越し判定を行うと、例えば2つの読み出しフレーム期間に跨った画像の場合、次の読み出しフレーム期間で追い越しが発生する場合は次の読み出しフレーム期間では読み出すことが出来ないので、図 32と同様の動作になり、書き込んだ画像は2つ先のフレーム読み出しで読み出されることになる。しかし、現在の読み出しフレーム期間で追い越しが発生しても、次の読み出しフレーム期間で追い越しが発生しない場合は、次のフレームの読み出しで書き込んだ画像を読み出すことが可能である。このように現在の読み出しフレーム期間での追い越しが発生するかどうかと、次の読み出しフレーム期間で追い越しが発生するかどうかの両方に応じて動作するための構成を図 53に示す。図 53は図 52に加えて追い越し判定部１６と次追い越し判定部２４と再判定指示部２３を備え、BITMAP更新部３１が次追い越し判定部２４の結果に基づいて更新するかどうかの判断をするところが異なる。追い越し判定部１６は前述の通り現在の読み出しフレーム期間で現在書き込んでいる画像で追い越しが発生するかどうかを判定し、次追い越し判定部２４は次の読出しフレーム期間で現在書き込んでいる画像の残りの書き込みで追い越しが発生するかどうかを判定する。再判定指示部２３は、画像が複数の読み出しフレーム期間に跨って書き込まれる場合に、新たな読み出しフレーム期間になるたびに、追い越し判定部１６にはその新たな読み出しフレーム期間で追い越しが発生するか、次追い越し判定部２４には新たな読み出しフレーム期間の次の読み出しフレーム期間で追い越しが発生するか、の再判定を指示する。BITMAP更新部３１は、書き込み中検知部２２が書き込みの途中であることを検知しても、次追い越し判定部２４が次の読み出しフレーム期間で追い越しが発生しないことを判定した場合、BITMAPの更新を行う。そして、領域毎書込バッファ選択部１４と、領域毎読出バッファ選択部１５は、これら更新された読出バッファBITMAP１８と追い越し判定情報、次追い越し判定情報に基づいてバッファ選択を行うようにする。
【００７２】
動作手順を図 34に示す。まず、図 32の動作を説明すると、図 32は次の読み出しフレーム期間で追い越しが発生するので、次追い越し判定部２４が追い越しを判定し、現在の読み出しフレーム期間であっても読み出しバッファとは別のフレームバッファ0に書き込まれる。その後、読み出しフレームが次に移行するが、その際、画像は書き込み中であり、また、次追い越し判定部２４は追い越しを判定しているので、BITMAP更新部３１はBITMAP更新を行わず、読み出しバッファはそのままである。次の読み出しフレーム期間になると、再判定指示部２３が追い越し判定部１６と次追い越し判定部２４に再判定の指示を行い、それぞれ、追い越しあり、追い越し無し（画像の書き込みは現在の読み出しフレーム期間で終了するため）の判定を行う。書き込み部１２はこの結果に従い、画像の残りの領域を読み出しバッファとは別のフレームバッファ0に書き込む。そして、読み出しフレーム期間が終了すると、今度は書き込みが終了しているので、BITMAP更新部３１はBITMAP更新を行う。読み出しバッファは書き込んだ画像を読み出すように反転され、次の読み出しフレーム期間では書き込んだ画像を読み出せるようになる。
【００７３】
次に、2つめの読み出しフレーム期間では追い越しが発生しない場合についてのフレームバッファの具体的な動作を図 35に示す。図 35で書き込まれる画像は、まず現在の読み出しフレーム期間で追い越しが発生するので、追い越し判定部１６が追い越しを判定し、領域毎読出バッファ選択部１５は読み出しバッファとは異なるフレームバッファ1を選択し、書き込み部１２はフレームバッファ1に画像を書き込む。その後、現在の読み出しフレーム期間が終了するが、画像の書き込みが完了していないため、書き込み中検知部２２が画像の書き込み最中であることを検知する。ただし、今回は次追い越し判定部２４が追い越しを判定しないので、前述の動作に従いBITMAP更新処理を行う。すると、次の読み出しフレーム期間では先ほどの読み出しフレーム期間に書き込んだ領域は読み出しバッファになるので、読み出すことが出来る。さらに、ここで再判定指示部２３が追い越し判定部１６に再判定の指示を行うので、追い越し判定部１６が今回の読み出しフレームでは追い越しが発生しないことを判定し、領域毎書込バッファ選択部１４は書き込みバッファを読み出しバッファと同じフレームバッファ0を選択し、書き込み部１２はフレームバッファ0に書き込み、画像の残りの領域もこの読み出しフレーム期間で読み出すことが可能となる。なお、追い越し判定部１６の再判定結果は、実際は前の読み出しフレーム期間での次追い越し判定部２４の判定結果と同じなので、その情報を流用してもよい。
【００７４】
また、図 34のBITMAP更新処理をするかどうかの判定に、第三の実施の形態の最後で述べた書き込み終了の検知がなかった場合は更新をスキップする判定を組み合わせたものを図 36に示す。図 34と比べると、書き込み中でなく、かつ、書き込み終了を検知しなかった場合に、BITMAP更新処理を行わないところが異なる。
【００７５】
画像の書き込みが3つ以上の読み出しフレーム期間に跨ぐときでも、新たな読み出しフレームにかわるたびに上記の動作を繰り返すことで同様に処理することが出来る。
【００７６】
このように前述までの実施の形態に従うと、画像が複数の読み出しフレーム期間を跨いで書き込まれる場合、次の読み出しフレーム期間で追い越しが発生しない場合でも、書き込んだ画像は2つ先のフレームで読み出されることになるが、本実施の形態に従うと、次の読み出しフレーム期間で追い越しが発生しない場合では、書き込んだ画像を1つ先のフレームで読み出すことができるようになり、画像の読み出しの遅延を低減することが出来る。
【００７７】
（第八の実施の形態）
第七の実施の形態では、読み出しフレーム期間を跨いで画像の書き込みが行われる場合について述べた。本実施の形態では、同じく読み出しフレーム期間を跨いで画像の書き込みが行われる場合に、同じ読み出しフレーム期間に既に書き込まれた画像をより早く読み出すための形態について述べる。
【００７８】
例えば図 37のような場合、まず左上に追い越しが発生する画像が読み出しバッファであるフレームバッファ1とは別のフレームバッファ0に書き込まれる。その後に、同じ読み出しフレーム期間の間にその右側に画像が書き込まれる。この画像は読み出しフレーム期間を跨いで書き込まれ、跨いだ後の読み出しフレームで追い越しが発生するので、読み出しバッファとは別のフレームバッファ0に書き込まれ、2つ先の読み出しフレームで読み出されることとなる。このとき問題となるのは最初に書き込まれた画像で、この画像は最初の読み出しフレーム期間で書き込みが終了しているので、次の読み出しフレーム期間、すなわち、1つ先の読み出しフレーム期間で読み出すことが可能なはずである。しかし、前述までの実施の形態だと、2つ目の画像と同じく2つ先の読み出しフレームで読み出されることになり、遅延が生じてしまう。
【００７９】
これを解決するには図 54のような構成をとる。図 54は図 53と比べ、図 29で述べた書き込み終了検知部２１と、バッファリセットBITMAP（次読出バッファ反転保持手段）３３を備える。BITMAP更新部３１は、次読出バッファBITMAP３２を更新する際、次読出バッファBITMAP３２の値を読出バッファBITMAP１８にコピーすると共に、バッファリセットBITMAP３３の1（反転情報）となっている領域に関して、次読出BITMAPの対応する領域の値を反転することで更新を行う。また同時に今度はバッファリセットBITMAP３３の情報を全て0（非反転情報）にリセットする。またBITMAP更新部３１は、書き込み終了検知部２１が画像の書き込み終了を検知していると、たとえ画像の書き込み中であっても、さらには、その画像が次の読み出しフレーム期間で追い越されることを次追い越し判定部２４が判定していても、BITMAP更新を行う。この部分に関する動作手順を図 39に示す。これは図 34のBITMAP更新処理の判定部分の置き換えとなる。また、図 39のBITMAP更新処理をするかどうかの判定に、第三の実施の形態の最後で述べた書き込み終了の検知がなかった場合は更新をスキップする判定を組み合わせたものを図 40に示す。図 39と比べると、書き込み中でなく、かつ、書き込み終了を検知しなかった場合に、BITMAP更新処理を行わないところが異なる。
【００８０】
フレームバッファの動作の手順を図 41、読出バッファBITMAP１８と次読出バッファBITMAP３２とバッファリセットBITMAP３３の動作の手順を図 55に示す。まず、図 37と同様に図 41のように左上に画像が書き込まれ、次に、その右側に読み出しフレーム期間を跨いで書き込まれる画像が書き込まれる。そのとき、書き込み終了検知部２１が現在の読み出しフレーム期間で既に別の画像の書き込み終了があったことを検知すると、2つめの画像に関しては次読出バッファBITMAP３２に値をセットするのではなく、バッファリセットBITMAP３３に1をセットする。次に、BITMAP更新部３１は、書き込み終了検知部２１が画像の書き込み終了を検知しているので、前述の様にBITMAP更新を行う。すると、まず読出バッファBITMAP１８は次読出バッファBITMAP３２の情報により、1つ目の画像を読み出すように読み出しバッファが更新され、この段階で1つ目の画像を読み出すことが出来る。同時に、次読出バッファBITMAP３２はバッファリセットBITMAP３３の1となっている領域の値が反転されるので、現在書き込んでいる2つ目の画像をさらにその次の読み出しフレーム期間で読み出すべく、2つ目の画像の既に書き込んだ領域に関して1がセットされる。そして画像の残りの領域の書き込みが終了し、その部分の次読出バッファBITMAP３２への値のセットも終了し、次の読み出しフレーム期間に移行する際にBITMAP更新が行われると、2つ目に書いた画像が読み出されるように読出バッファBITMAP１８が更新され、次の読み出しフレーム期間では2つ目の画像を読み出すことが出来る。
【００８１】
ただし、1つ目の画像と2つ目の画像が重なっている場合は、2つ目の画像が1つ目の画像を上書きしてしまう。すると、次の読み出しフレームで2つ目の画像の上書きした部分が読み出されてしまうという問題がある。このような場合にも対処する構成を図 56に示す。図 56は図 54と比べ、領域毎書込バッファ選択部１４が次読出バッファBITMAP３２も参照してバッファ選択を行うことと、書き込み部１２に書き込みの待ちを要求する書き込み待ち要求部２８を備えることが異なる。画像フレームの動作の手順を図 44、読出バッファBITMAP１８と次読出バッファBITMAP３２とバッファリセットBITMAP３３の動作の手順を図 57に示す。まず、先ほどと同じように左側に1つ目の追い越しが発生する画像が書き込まれる。次にその右側に、読み出しフレーム期間を跨いで書き込まれ、さらに次の読み出しフレーム期間で追い抜きが発生する、2つ目の画像が書き込まれる。そのとき、2つ目の画像の書き込み領域を選択する際、領域毎書込バッファ選択部１４は次読出バッファBITMAP３２も参照し、次の読み出しフレーム期間での読み出しフレームとは別のフレームを選択する。つまり、現在の読み出しフレームは読出バッファBITMAP１８を参照すればよいが、次の読み出しフレーム期間の読み出しフレームは次読出バッファBITMAP３２で表されるので、領域毎書込バッファ選択部１４はその値とは別のバッファを選択する。こうすることにより、先ほどの1つ目の画像と2つ目の画像に重なりがない場合は次読出バッファBITMAP３２には0が入っているので、先ほどと同じく現在の読み出しバッファとは別のバッファであるフレームバッファ0を選択することになるが、重なりがある場合は別のバッファであるフレームバッファ1を選択することになる。そして、書き込み部１２は重なりがある部分についてフレームバッファ1に、重なりがない部分についてフレームバッファ0に書き込み、さらに、先と同じように次読出バッファBITMAP３２ではなくバッファリセットBITMAP３３の2つ目の画像の領域に反転情報を書き込む。
【００８２】
これは、本来ならば第三のフレームバッファを設けて第三のフレームバッファに書き込むべきものを、読み出しバッファである第一のバッファに書き込み、第三のバッファを第一のバッファで代用しているために必要となる処理である。つまり、現在の読み出しフレーム期間では読み出し部１３はもともと読み出しバッファに書き込まれている画像を読み出すべきであり、ここに今から書き込まれる2つ目の画像を読み出すべきではない。そこで、この2つ目の画像が書き込まれる領域、すなわち、1つ目の画像と2つ目の画像が重なった領域を、読み出しスキャンが通り過ぎるまで書き込み部１２が書き込みを待つように、書き込み待ち要求部２８が書き込み部１２に待ち要求を出す。書き込み部１２はそれに従って書き込みを待ち、読み出しスキャンが通り過ぎたら書き込みを開始する。こうすることによって、読み出し部１３が現在のフレーム期間で2つ目の画像を読み出してしまうことはなくなる。その後の処理は先ほどの場合と同様で、次のBITMAP更新にて次読出バッファBITMAP３２によって読出バッファBITMAP１８が更新され、次の読み出しフレーム期間では1つ目の画像が読み出される。さらに、バッファリセットBITMAP３３によって次読出バッファBITMAP３２が更新されるので、次読出バッファBITMAP３２の既に画像が書き込まれた部分は読出バッファBITMAP１８の反転された値がセットされており、残りの領域の書き込みで残りの領域にも反転された値がセットされるので、その次の読出しフレーム期間では2つ目の画像が読み出される。
【００８３】
以上、本実施の形態により、読み出しフレームを跨いで画像の書き込みが行われる場合に、同じ読み出しフレーム期間で既に書き込まれた画像を次のフレームで読み出すことが可能となり、画像の読み出しの遅延を低減することが出来る。
【００８４】
なお、上記では簡単のためバッファリセットBITMAP３３をビットマップ形式で保存する例を示したが、前述の様にBITMAP情報はベクトル形式などで情報を保存してもよい。特にバッファリセットBITMAP３３は単一画像の領域情報のみ保存すればよいので、ベクトル形式で情報を記憶する方がよりビット情報を少なくすることができ、好ましい。
【００８５】
（第九の実施の形態）
本実施の形態では、より具体的な実装の形態について述べる。従来技術と比べた本発明の主な効果は、既に述べたようにフレームバッファへのメモリアクセス量を削減することにあるが、一方で、読出バッファBITMAP１８とバッファ反転BITMAP１９へのアクセスが加わるという問題がある。第三の実施の形態の終わりにてそのアクセス量を低減する方法を述べたが、もう1つの有効な方法を以下に述べる。
【００８６】
前述までの実施の形態ではBITMAP情報が画像フレームのピクセルと1対1で対応している例を示した。しかし、図 58のように画像フレームを例えば16×16ピクセルのブロックに分け、各ブロックにつき1ビットを割り当てるようにしても良い。この場合、例えばXGA（横1024ピクセル縦768ピクセル）の場合は、横1024 / 16 = 64ブロック、縦768 / 16 = 48ブロックで、BITMAPのビット数は64×48 = 3072ビットとなり、ピクセルに1対1で対応させた場合に比べてして読出バッファBITMAP１８のメモリ量を16×16 = 256分の1に大幅に削減でき、BITMAPへのメモリアクセス量も大幅に削減することが出来る。これにより消費電力を削減でき、ひいては本発明の効果をより顕著にすることが出来る。
【００８７】
なお、このとき書き込まれる画像もX座標、Y座標、縦幅、横幅ともに16ピクセル単位であれば、画像フレームのアクセスが全て16ピクセル単位になるので特に問題なくBITMAP情報へのマッピングが可能である。16ピクセル単位でない場合は図 60のようになる。図 60は追い越しが発生する画像を読み出しバッファとは別のバッファに書き込んだ例を示している。バッファの読み出しはあくまで16ピクセル単位で行われるので、16ピクセル単位で区切った場合に不足する残りの領域を補う必要がある。この画像は最新のフレームバッファである読み出しバッファにあるので、画像の書き込みを行うとともに読出しバッファからこの不足している残りの領域のコピーを行う。そして、次のフレームの読み出しのときに、書き込まれた領域を含むブロックを読み出しバッファにすれば、書き込んだ画像と残りの領域共に正しく読み出すことが出来る。この場合の構成を図 61に示す。新たに加わった不足領域コピー部３４がこのコピー処理を行う。もともと本発明の趣旨はフレームバッファ間のコピーを行わないことがポイントであり、今回の動作は一見その趣旨とは異なるようにみえるが、書き込んだ画像そのもののコピーは行わずに不足領域のみのコピーを行うので、本発明の趣旨に反するものではない。なお、以上では画像フレームを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などで実現されるが、実装の形態はこれらに限らない。
【図面の簡単な説明】
【００９２】
【図１】描画する映像が上から下に順次書き込まれまた読み出される様子を示す図。
【図２】読み出しスキャンが書き込みスキャンを追い抜い抜く様子を示す図。
【図３】ダブルバッファ構造を説明する図。
【図４】画面が部分的に更新される例を示す図。
【図５】画面が部分的に更新される例を示す図。
【図６】画面更新が必要な部分だけ画面の更新を行う例を示す図。
【図７】画面更新が必要な部分だけ画面の更新を行う例を示す図。
【図８】ダブルバッファ構造で図７と同一の更新を行うときに生じる問題を説明する図。
【図９】図８の問題を回避する単純な解決策の一例を示す図。
【図１０】本発明の第一の実施の形態としての画像生成装置の構成を示す図。
【図１１】本発明の第一の実施の形態にかかる図１０の装置の動作を説明する最もシンプルな例を示す図。
【図１２】本発明の第一の実施の形態にかかる図１０の装置の動作手順を説明するフローチャート。
【図１３】本発明の第一の実施の形態にかかる図１０の装置の動作を説明する他の例を示す図。
【図１４】本発明の第一の実施の形態にかかる図１０の装置の動作を説明する他の例を示す図。
【図１５】本発明の第一の実施の形態にかかる図７と同一の画面更新に対して第一の実施の形態を適用する例を示す図。
【図１６】本発明の第二の実施の形態にかかる追い越しが発生する例を示す図。
【図１７】本発明の第二の実施の形態にかかる追い越しが発生しない例を示す図。
【図１８】本発明の第二の実施の形態としての画像生成装置の構成を示す図。
【図１９】本発明の第二の実施の形態にかかる図１８の装置の動作手順を説明するフローチャート。
【図２０】本発明の第二の実施の形態にかかる図１８の装置の動作を説明する最もシンプルな例を示す図。
【図２１】本発明の第二の実施の形態にかかる図１８の装置の動作を説明する他の例を示す図。
【図２２】本発明の第二の実施の形態にかかる図１８の装置の動作を説明する他の例を示す図。
【図２３】本発明の第三の実施の形態としての画像生成装置の構成を示す図
【図２４】本発明の第三の実施の形態にかかる図２３の装置の動作を説明するフローチャート
【図２５】本発明の第三の実施の形態にかかる図１１の例の場合の読出バッファBITMAPとバッファ反転BITMAPの内容を示す図。
【図２６】本発明の第三の実施の形態にかかる図１３の例の場合の読出バッファBITMAPとバッファ反転BITMAPの内容を示す図。
【図２７】本発明の第三の実施の形態にかかる図１４の例の場合の読出バッファBITMAPとバッファ反転BITMAPの内容を示す図。
【図２８】本発明の第三の実施の形態にかかる図２２の例の場合の読出バッファBITMAPとバッファ反転BITMAPの内容を示す図。
【図２９】本発明の第三の実施の形態にかかる図２３の装置に書き込み終了検知部を追加した構成を示す図。
【図３０】本発明の第四の実施の形態としての画像生成装置の構成を示す図。
【図３１】本発明の第四の実施の形態にかかる図３０の装置の動作を説明するフローチャート。
【図３２】本発明の第四の実施の形態にかかるフレームバッファの動作例を示す図。
【図３３】本発明の第四の実施の形態としての画像生成装置の図３０とは別の構成を示す図。
【図３４】本発明の第四の実施の形態にかかる図３３の装置の動作を説明するフローチャート。
【図３５】本発明の第四の実施の形態にかかるフレームバッファの動作例を示す図。
【図３６】本発明の第四の実施の形態にかかる図３３の動作手順に書き込み終了検知がなかった場合にBITMAPの更新をスキップする処理を追加した例を示す。
【図３７】本発明の第五の実施の形態の目的を説明する図。
【図３８】本発明の第五の実施の形態としての画像生成装置の構成を示す図。
【図３９】本発明の第五の実施の形態にかかる図３８の装置の要部動作を説明するフローチャート。
【図４０】本発明の第五の実施の形態にかかる図３８の装置の動作に書き込み終了検知がなかった場合にBITMAPの更新をスキップする処理を追加した例を示す図。
【図４１】本発明の第五の実施の形態にかかるフレームバッファの動作の手順を示す図。
【図４２】本発明の第五の実施の形態にかかる読出バッファBITMAPとバッファ反転BITMAPと反転リセットBITMAPの動作の手順を示す図。
【図４３】本発明の第五の実施の形態としての画像生成装置の図３８とは別の構成を示す図。
【図４４】本発明の第五の実施の形態にかかる画像フレームの動作の手順を示す図。
【図４５】本発明の第五の実施の形態にかかる読出バッファBITMAPとバッファ反転BITMAPと反転リセットBITMAPの動作の手順を示す図。
【図４６】本発明の第六の実施の形態としての画像生成装置の構成を示す図。
【図４７】本発明の第六の実施の形態にかかる図１１の例の場合における読出バッファBITMAPと次読出バッファBITMAPの例を示す図。
【図４８】本発明の第六の実施の形態にかかる図１３の例の場合における読出バッファBITMAPと次読出バッファBITMAPの例を示す図。
【図４９】本発明の第六の実施の形態にかかる図１４の例の場合における読出バッファBITMAPと次読出バッファBITMAPの例を示す図。
【図５０】本発明の第六の実施の形態にかかる図２２の例の場合における読出バッファBITMAPと次読出バッファBITMAPの例を示す図。
【図５１】本発明の第六の実施の形態にかかる図４６の装置に書き込み終了検知部を追加した構成を示す図。
【図５２】本発明の第七の実施の形態としての画像生成装置の構成を示す図。
【図５３】本発明の第七の実施の形態としての画像生成装置の図５２とは別の構成を示す図。
【図５４】本発明の第八の実施の形態としての画像生成装置の構成を示す図。
【図５５】本発明の第八の実施の形態にかかる読出バッファBITMAPと次読出バッファBITMAPとバッファリセットBITMAPの動作の手順を示す図。
【図５６】本発明の第八の実施の形態としての画像生成装置の図５４とは別の構成を示す図。
【図５７】本発明の第八の実施の形態にかかる読出バッファBITMAPと次読出バッファBITMAPとバッファリセットBITMAPの動作の手順を示す図。
【図５８】本発明の第九の実施の形態にかかる画像フレームをブロックに分け、各ブロックにつきBITMAP情報（1ビット）を割り当てる例を示す図。
【図５９】本発明の第九の実施の形態にかかるダブルバッファのSDRAM上のマッピング例を示す図。
【図６０】本発明の第九の実施の形態にかかる図６１の不足領域コピー部の動作を説明する図。
【図６１】本発明の第九の実施の形態としての画像生成装置の構成を示す図。
【符号の説明】
【００９３】
１１：フレームメモリ（記憶手段）
１２：書き込み部（書き込み手段）
１３：読み出し部（読み出し手段）
１４：領域毎書込バッファ選択部（書込バッファ選択手段）
１５：領域毎読出バッファ選択部（読出バッファ選択手段）
１６：追い越し判定部（追い越し判定手段）
１８：読出バッファBITMAP（読出バッファ保持手段）
１９：バッファ反転BITMAP（読出バッファ反転保持手段）
２０：BITMAP更新部（読出バッファ更新手段）
２１：書き込み終了検知部（書き込み終了検知手段）
２２：書き込み中検知部（書き込み中検知手段）
２３：再判定指示部（再判定指示手段）
２４：次追い越し判定部（次追い越し判定手段）
２５：反転リセットBITMAP（更新反転／非反転情報保持手段）
２８：書き込み待ち要求部（書き込み待ち要求手段）
３１：BITMAP更新部（読出バッファ更新手段）
３２：次読出バッファBITMAP（次読出バッファ保持手段）
３３：バッファリセットBITMAP（次読出バッファ反転保持手段）
３４：不足領域コピー部（不足領域コピー手段）
【図１】
0004776592.tif 000002
【図２】
0004776592.tif 000003
【図３】
0004776592.tif 000004
【図４】
0004776592.tif 000005
【図５】
0004776592.tif 000006
【図６】
0004776592.tif 000007
【図７】
0004776592.tif 000008
【図８】
0004776592.tif 000009
【図９】
0004776592.tif 000010
【図１０】
0004776592.tif 000011
【図１１】
0004776592.tif 000012
【図１２】
0004776592.tif 000013
【図１３】
0004776592.tif 000014
【図１４】
0004776592.tif 000015
【図１５】
0004776592.tif 000016
【図１６】
0004776592.tif 000017
【図１７】
0004776592.tif 000018
【図１８】
0004776592.tif 000019
【図１９】
0004776592.tif 000020
【図２０】
0004776592.tif 000021
【図２１】
0004776592.tif 000022
【図２２】
0004776592.tif 000023
【図２３】
0004776592.tif 000024
【図２４】
0004776592.tif 000025
【図２５】
0004776592.tif 000026
【図２６】
0004776592.tif 000027
【図２７】
0004776592.tif 000028
【図２８】
0004776592.tif 000029
【図２９】
0004776592.tif 000030
【図３０】
0004776592.tif 000031
【図３１】
0004776592.tif 000032
【図３２】
0004776592.tif 000033
【図３３】
0004776592.tif 000034
【図３４】
0004776592.tif 000035
【図３５】
0004776592.tif 000036
【図３６】
0004776592.tif 000037
【図３７】
0004776592.tif 000038
【図３８】
0004776592.tif 000039
【図３９】
0004776592.tif 000040
【図４０】
0004776592.tif 000041
【図４１】
0004776592.tif 000042
【図４２】
0004776592.tif 000043
【図４３】
0004776592.tif 000044
【図４４】
0004776592.tif 000045
【図４５】
0004776592.tif 000046
【図４６】
0004776592.tif 000047
【図４７】
0004776592.tif 000048
【図４８】
0004776592.tif 000049
【図４９】
0004776592.tif 000050
【図５０】
0004776592.tif 000051
【図５１】
0004776592.tif 000052
【図５２】
0004776592.tif 000053
【図５３】
0004776592.tif 000054
【図５４】
0004776592.tif 000055
【図５５】
0004776592.tif 000056
【図５６】
0004776592.tif 000057
【図５７】
0004776592.tif 000058
【図５８】
0004776592.tif 000059
【図５９】
0004776592.tif 000060
【図６０】
0004776592.tif 000061
【図６１】
0004776592.tif 000062