"画像データの入力手段と、前記画像データを記憶するフレームメモリと、レーザー光を照射するレーザー発振器と、スクリーン上のレーザー光の包絡線が所定形状となるよう、反射光学素子を互いに略直交する2つの軸を中心に振動させる偏向方向可変手段と、レーザー光の照射中心方向が照射面に対し垂直でない投射角を有する場合に、前記反射光学素子の角度から三角関数を用いずにレーザー光の照射位置を求める多項式の係数情報が記憶された係数情報記憶手段と、前記係数情報記憶手段に記憶された前記係数情報に演算を施して求めた係数、及び、前記反射光学素子の角度を前記多項式に適用することで、レーザー光の照射位置を演算する照射位置演算手段と、前記照射位置演算手段が演算した照射位置に対応する前記フレームメモリのアドレスを演算するアドレス演算手段と、前記アドレスの画素情報を読み出すメモリ制御手段と、前記画素情報に応じた輝度で前記レーザー発振器を発振させるレーザー駆動手段と、を有することを特徴とする画像投影装置。前記照射位置演算手段が演算した照射位置が、前記入力手段から入力された前記画像データのアスペクト比を維持する矩形内又は所定の矩形内か否かが登録された判定テーブルを有し、レーザー光の照射中心方向が照射面に対し垂直でないため前記所定形状が歪む場合であって、前記照射位置が前記画像データのアスペクト比を維持する矩形内又は所定の矩形内であると前記判定テーブルにより判定されない場合、前記アドレス演算手段は、輝度が黒レベルの画素情報を前記メモリ制御手段に出力する、ことを特徴とする請求項1記載の画像投影装置。前記アドレス演算手段は、前記照射位置が前記画像データのアスペクト比を維持する矩形内又は所定の矩形内であると前記判定テーブルにより判定される場合にのみ、前記照射位置に対応する前記フレームメモリのアドレスを演算する、ことを特徴とする請求項2記載の画像投影装置。前記入力手段から入力された前記画像データのアスペクト比を維持する矩形内又は所定の矩形内の前記照射位置を、前記照射位置演算手段が演算した前記照射位置に対応づける座標変換テーブルを有し、前記照射位置が前記画像データのアスペクト比を維持する矩形内又は所定の矩形内である場合、前記アドレス演算手段は、前記座標変換テーブルを参照して変換後の前記照射位置に対応する前記フレームメモリのアドレスを演算する、ことを特徴とする請求項2記載の画像投影装置。前記反射光学素子が第1の方向及び前記第1の方向と略直交する第2の方向にそれぞれ振動する場合、前記多項式は、前記第1の方向の前記反射光学素子の水平角度を固定した場合に、前記第2の方向の振動範囲を前記該反射光学素子が走査した場合のレーザー光の照射位置を近似する第1の多項式、及び、前記第2の方向の前記該反射光学素子の垂直角度を固定した場合に、前記第1の方向の振動範囲を前記該反射光学素子が走査した場合のレーザー光の照射位置を近似する第2の多項式である、ことを特徴とする請求項1~4いずれか1項記載の画像投影装置。前記第1の多項式は垂直角度に対する1次の多項式であり、前記第2の多項式は水平角度に対する2次の多項式である、ことを特徴とする請求項5記載の画像投影装置。前記第1の多項式の前記係数は垂直角度に応じて異なり、前記照射位置演算手段は垂直角度に対する2次の近似式に前記係数情報を適用して垂直角度毎に前記係数を求め、前記第2の多項式の前記係数は水平角度に応じて異なり、前記照射位置演算手段は水平角度に対する2次の近似式に前記係数情報を適用して水平角度毎に前記係数を求める、ことを特徴とする請求項5記載の画像投影装置。連続アクセス時に非連続アクセス時よりも高速なデータの読み出し及び書き込みが可能なフレームメモリのメモリ制御装置であって、入力側からの画像データを一時的に記憶し、前記フレームメモリに記憶する入力バッファと、読出しアドレスを生成するアドレス生成手段から、同じアドレスに対し連続した読み出し要求があるか否か、及び、描画対象外の画像データが記憶されたブランクアドレスに対する読み出し要求であるか否か、を判定する判定手段と、同じアドレスに対する連続した読み出し要求でなく、かつ、ブランクアドレスに対する読み出し要求でない場合に、前記フレームメモリに読み出し要求を出力する読み出し要求出力手段と、前記フレームメモリから画像データを取得する画像データ取得手段と、前記フレームメモリから読み出されなかった前記画像データ及びブランクアドレスの画像データを再生するデータ再生手段と、を有することを特徴とするメモリ制御装置。前記判定手段は、同じアドレスに対する連続した読み出し要求の前記連続読み出し要求数をカウントして前記データ再生手段に通知し、前記データ再生手段は、前記判定手段により同じアドレスに対する連続した読み出し要求でないと判定されるまでの前記連続読み出し要求数に応じて前記フレームメモリから読み出された画像データを複製する、ことを特徴とする請求項8記載のメモリ制御装置。前記判定手段は、アドレスが異なっていてもブランクアドレスに対する連続した読み出し要求の前記連続読み出し要求数をカウントして前記データ再生手段に通知し、前記データ再生手段は前記連続読み出し要求数に応じて、予め定められたブランクの画像データを複製する、ことを特徴とする請求項8又は9項記載のメモリ制御装置。前記画像データ取得手段が取得した画像データ及び前記データ再生手段が再生した画像データを一時的に記憶する出力バッファと、前記入力バッファと前記出力バッファの状態フラグを取得して、前記フレームメモリに対する書き込みのみ、又は、前記フレームメモリからの読み込みのみの連続転送が起こるように、前記入力バッファから書き込み要求と前記出力バッファから読み込み要求を調停する調停手段と、を有することを特徴とする請求項8~10いずれか1項記載のメモリ制御装置。前記調停手段は、前記出力バッファの容量の半分以上になるまで連続して前記フレームメモリから書き込みが生じ、前記入力バッファが空になるまで連続して前記フレームメモリに対して書き込みが生じるように、書き込み要求と読み込み要求を調停する、ことを特徴とする請求項11記載のメモリ制御装置。前記判定手段は、前記アドレス生成手段が生成した現在のアドレスと1つ前のアドレスがブランクアドレスの場合、又は、現在のアドレスと1つ前のアドレスが同じで、現在のアドレスと1つ前のアドレスの少なくともどちらかがブランクアドレスでない場合に、同じアドレスに対する連続した読み出し要求であると判定する、ことを特徴とする請求項8~12いずれか1項記載のメモリ制御装置。前記読み出し要求手段は、前記判定手段が同じアドレスに対する連続した読み出し要求であると判定しても、同じアドレスに対する連続した読み出し要求が所定回数以上連続すると、前記フレームメモリに読み出し要求を出力する、ことを特徴とする請求項13記載のメモリ制御装置。請求項8~14いずれか1項記載のメモリ制御装置と、連続アクセス時に非連続アクセス時よりも高速なデータの読み出し及び書き込みが可能なフレームメモリと、レーザー発振器、共振型MEMSミラー、及び、レンズを有する光学エンジンと、を有するレーザープロジェクタ。連続アクセス時に非連続アクセス時よりも高速なデータの読み出し及び書き込みが可能なフレームメモリのメモリアクセス方法であって、入力バッファが、入力側からの画像データを一時的に記憶し、前記フレームメモリに記憶するステップと、判定手段が、読出しアドレスを生成するアドレス生成手段から、同じアドレスに対し連続した読み出し要求があるか否か、又は、描画対象外の画像データが記憶されたブランクアドレスに対する読み出し要求であるか否か、を判定するステップと、読み出し要求出力手段が、同じアドレスに対する連続した読み出し要求でなく、かつ、ブランクアドレスに対する読み出し要求でない場合に、前記フレームメモリに読み出し要求を出力するステップと、画像データ取得手段が、前記フレームメモリから画像データを取得するステップと、データ再生手段が、前記フレームメモリから読み出されなかった前記画像データ及びブランクアドレスの画像データを再生するステップと、を有することを特徴とするメモリアクセス方法。しかしながら、特許文献1に開示されているように、振動ミラーの振幅を縦軸の位置によって制御することは、振動ミラーが共振状態で振動していることを考慮すると、その振幅制御は非常に難しく、現実的ではない。また、特許文献2では、レーザー光を照射するタイミングを制御しているが、共振状態の振動ミラーが描く光線の軌跡は三角関数や逆算各関数を含んだ実数演算なので、リアルタイムに光線の描画位置を演算しながらレーザー光を照射するタイミングを補正することは計算が追いつかないという問題がある。また、特許文献3には、非描画位置の計算方法や計算後のレーザー光の制御について具体的な制御が開示されておらず、実現にはなお多くの課題がふくまれていると推測される。本発明は、上記課題に鑑み、斜め投射時に発生する投影画像の歪みを偏向光学素子への入力段階で施さず、また、実用的な制御負荷にて補正可能なプロジェクタを提供することを目的とする。上記課題に鑑み、本発明は、画像データの入力手段と、前記画像データを記憶するフレームメモリと、レーザー光を照射するレーザー発振器と、レーザー光を反射する1つ以上の反射光学素子と、スクリーン上のレーザー光の包絡線が所定形状となるよう前記反射光学素子を互いに直交する2つの軸を中心に振動させる偏向方向可変手段と、レーザー光の照射中心方向が照射面に対し垂直でない投射角を有する場合に、前記反射光学素子の角度からレーザー光の照射位置を三角関数を用いずに求める多項式の係数情報が記憶された係数情報記憶手段と、前記係数情報記憶手段に記憶された前記係数情報に演算を施して求めた係数、及び、前記反射光学素子の角度を前記多項式に適用することで、レーザー光の照射位置を演算する照射位置演算手段と、前記照射位置演算手段が演算した照射位置に対応する前記フレームメモリのアドレスを演算するアドレス演算手段と、前記アドレスの画素情報を読み出すメモリ制御手段と、前記画素情報に応じた輝度で前記レーザー発振器を発振させるレーザー駆動手段と、を有することを特徴とする画像投影装置を提供する。斜め投射時に発生する投影画像の歪みを偏向光学素子への入力段階で施さず、また、実用的な制御負荷にて補正可能な画像投影装置を提供することを目的とする。以下、本発明を実施するための形態について図面を参照しながら説明する。図1は、レーザープロジェクタと入力端末の概略構成図の一例である。入力端末は画像データをレーザープロジェクタ200に入力する端末で、例えばPCPersonalComputerやテレビ受像器、BDプレーヤ、又は、画像データを記憶した記憶媒体である。プロジェクタは画像データからレーザー光を生成して、2Dスキャナに反射させてスクリーンに投射画像を形成する。レンズなどの光学系を有さない場合、常に焦点が合うようになっている。また、図では、レーザー光の照射部が、投射画像の中央になるように投射画面が形成されるが、レーザー光の照射部が投射画像の下端付近になるように投射画像を形成することもできる。投射画面のサイズはLPJ200とスクリーンとの間の投射距離によって変わるが、例えば対角線が30~300cmの広範囲で変倍される。また、LPJ200がズーム機構及びレンズを備えていればLPJ200が同じ位置でも投射画像のサイズを変更できる。図2は、LPJ200の構成図の一例を示す。LPJ200は、画像入力系回路49、画像出力系回路48、フレームメモリ58、2Dスキャナ53、及び、レーザー発振器60を有する。画像入力系回路49は、いくつかのVideo入力の入力インタフェースを有する。入力インタフェースは、デジタルの画像データを入力するためのDVI、HDMI端子、アナログの画像データを接続するためのD-Sub、S-Video端子等である。また、フラッシュメモリなどの記憶手段と接続するためのUSB端子等も入力インタフェースとなる。入力される画像データの映像信号はRGB信号であるが、YUV信号の場合はLPJ200がVideo入力前にRGB信号に変換する。画像データは、WXGA、XGA、SVGA、VGA等の所定の解像度で入力される。なお、画像入力系回路49はVideo入力がアナログ信号ならA/D変換してメモリ制御ブロック100に出力する。メモリ制御ブロック100は、画像入力系回路49から入力された画像データをいったんフレームメモリ58に記憶して、フレームメモリ58から読み出して画像出力系回路48に出力する。図3は、フレームメモリ58に記憶される画像データを模式的に説明する図の一例である。フレームメモリ58は後述する外部メモリ15の一部の領域アドレス範囲に設けられている。外部メモリにはフレームメモリ58の他、プログラム等が記憶されている。画像データは1画素がR8bitG8bitB8bitの計24bit3Byteで表される。図では1つのマスが8bitである。メモリ制御ブロック100は、2Dスキャナ53の投射位置に対応したアドレスの画像データを読み出し、レーザードライバ59に出力する。なお、メモリ制御ブロック100については実施例2にて詳述する。図2に戻り、画像出力系回路48は、2次元スキャナ駆動タイミング生成器51、タイミング補正指示器54、描画位置演算器57、スキャナ角度演算器55、スキャナドライバ52、ADC56、及び、レーザードライバ59を有する。本実施形態のLPJ200はレーザー光を光源とするためRGB各色のレーザー光を1つに重ねて出力するレーザー発振器60を有する。レーザードライバ59はレーザー発振器60を駆動する回路であり、RGB各色毎にLDレーザーダイオード60r~60bを駆動するためRGB各色のレーザードライバ59r~59bを有する。レーザードライバ59rはある画素のRの画像データに基づき赤LD60rを駆動する赤LD駆動波形を生成し、レーザードライバ59gはGの画像データに基づき緑LD60gを駆動する緑LD駆動波形を生成し、レーザードライバ59bはBの画像データに基づき青LD60bを駆動する青LD駆動波形を生成する。これにより赤LD、緑LD、及び、青LDは、画像データに基づく強度で発振し、レーザー発振器60は画像データに対応した輝度色のレーザー光を照射する。2Dスキャナ53はこのレーザー光を2次元にスキャンして投射画像を投射する。2Dスキャナ53については後述するが、2Dスキャナ53は2軸のMEMSスキャナである。2軸のMEMSスキャナにはMEMSミラーの振れ角を検出するセンサー角度検出器が配置されており、角度検出器はMEMSミラーの振れ角に応じた電圧をADCAnalogtoDigitalConverter56に出力する。ADC56は振れ角に応じた電圧をデジタルの振れ角に変換する。2次元スキャナ駆動タイミング生成器51は、MEMSミラー駆動波形の元情報となるクロックカウントを描画位置演算器57に出力する。MEMSミラーは低エネルギーで大きな振れ角が得られるように、共振周波数で駆動される。共振周波数はMEMSミラーや梁部それぞれの材質、形状、寸法で決まってくるので、例えば開発者にとっておよその値は既知である。または、MEMSミラーの周波数を検出するセンサを配置すればより精度良く求めることができる。共振周波数は図示されないマイコンなどの外部機器によって2次元スキャナ駆動タイミング生成器51に設定される。2次元スキャナ駆動タイミング生成器51は設定された共振周波数とシステムクロック周波数に基づき、主走査、副走査それぞれの1周期に相当するクロック数をカウントする。例えば、水平方向の共振周波数:1000Hz1周期は1msシステムクロック周波数:100MHz10μsとすると、1msをカウントするために100カウントが必要なので、クロックカウントは最大100回となる。同様に、垂直方向の共振周波数から垂直方向の最大のクロックカウントも決まっている。2次元スキャナ駆動タイミング生成器51は、水平方向のクロックカウント例えば、100回に到達すると1に戻り、再度100までの増大することを繰り返すと垂直方向のクロックカウントをカウントし、タイミング補正指示器54と描画位置演算器57に出力する。なお、クロックカウントを水平方向と垂直方向に分けることなく、1つの画面に1つのクロックカウントとしてもよい。以下では、水平方向と垂直方向を区別せずにクロックカウントという。また、2次元スキャナ駆動タイミング生成器51は、クロックカウントを用いてMEMSミラーが共振周波数で振動するようにMEMSミラーの駆動波形を生成しスキャナドライバ52に出力する。駆動波形は矩形波、PWM、正弦波、三角波など一般的な波形を用いればよく、本実施形態では主走査側を矩形波、副走査側をPWMとする。クロックカウントはMEMSミラーを駆動するための駆動波形の元情報だが、諸々遅延要素スキャナドライバ52の遅延、MEMSミラーの物理的応答特性等のために実際のMEMSミラーの動作とはズレが生じる。また、MEMSミラーは温度変化や経時変化で共振周波数が変わるため、同じ駆動波形で振動していても振幅に変化が生じる。これを補正するために、スキャナ角度演算器55は、共振周波数から既知のMEMSミラーの最大振れ角時タイミングを駆動波形から検出し、ADC56が出力する振れ角をサンプリングする。振れ角はタイミング補正指示器54に入力される。タイミング補正指示器54は、スキャナ角度演算器55から入力された実角度と、駆動波形が期待する振れ角に差異があるか否かを判定し、所定以上の差異があれば、補正量を演算し、2次元スキャナ駆動タイミング生成器51に入力する。これにより、2次元スキャナ駆動タイミング生成器51は、補正量に応じてクロックカウントを補正するので、駆動波形の周波数又は駆動電圧が調整され、MEMSミラーの振れ角が所望の角度に調整される。また、タイミング補正指示器54は、MEMSミラー駆動タイミング最大振幅時と実際のMEMSミラー振幅の位相差を描画位置演算器57へ出力する。位相差はクロック数クロック補正分で表される。次いで、描画位置演算器57について説明する。図4は描画位置演算器57のブロック図の一例を示す。描画位置演算器57は補正済クロックカウント演算器61、スクリーン座標計算器62、歪補正パラメータ保存器63、及び、メモリアドレス計算器64を有する。描画位置演算器57はMEMSミラーがある振れ角であった場合に、スクリーン上のどの点にレーザー光が照射されるかを計算する。描画位置演算器57は主に以下の2つの動作を行う。動作1:タイミング補正指示器54から受け取ったクロック補正分と、クロックカウントに基づき、描画位置を特定するための補正済クロックカウントを演算する。主に補正済クロックカウント演算器61により演算される。動作2:補正済クロックカウントに基づきスクリーン座標を計算する。また、スクリーン座標に基づき描画すべき画素のデータアドレスを特定し、メモリ制御ブロック100へ読み出すよう指示する。主にスクリーン座標計算器62とメモリアドレス計算器64により処理される。補正済クロックカウント演算器61は、2次元スキャナ駆動タイミング生成器51が出力するクロックカウントに、タイミング補正指示器54が出力するクロック補正分遅延時間を加えて、また、さらに定数を乗じるなどの演算を行い、補正済クロックカウントを演算する。2Dスキャナ53はクロックカウントにより走査位置が決まるので、クロックカウントによりスクリーン上の座標も一意に定まる。このため、スクリーン座標計算器62は、補正済クロックカウントから幾何学的な演算により一意にスクリーン座標を計算できる。計算方法については後に詳述する。ここで、LPJ200の出射光軸がスクリーンと垂直でない場合、そのなす角以下、投射角というにより、投射画像が台形状に歪むが、この場合でもある瞬間にレーザー光がスクリーン上のどこを照射するのかは、投射角を用いれば計算することができる。このため、スクリーン座標計算器62には歪補正パラメータ保存器63から投射角に応じたパラメータが供給される。歪補正パラメータ保存器63には、ある投射角の時にスクリーン座標を演算するための多項式の係数が記述されている。パラメータについては後述するが、パラメータを用いて演算することで演算時間や処理負荷を低減して1クロック毎のスクリーン座標の演算が可能になる。また、2Dスキャナ53が台形状の範囲をスキャンしても、1クロック毎のスクリーン座標を演算できる。なお、投射角はセンサや設定により取得されるので、描画位置演算器57にとって投射角は既知である。メモリアドレス計算器64は、スクリーン座標から描画すべき画素のデータアドレスを算出し、メモリ制御ブロック100に出力する。フレームメモリ58の全領域のアドレスとスクリーン上の座標X,Yは1対1に対応する。このため、クロックカウント実際には補正済クロックカウントが分かれば、フレームメモリ58のアドレスを一意に特定できる。すなわち、メモリアドレス計算器は、予め定められた変換演算を行ったり、変換テーブルを参照することで、クロックカウントをフレームメモリ58のデータアドレスに変換することができる。正面投射の場合と斜め投射の場合とではスクリーン座標とアドレスの対応関係が異なるので、メモリアドレス計算機64は投射角によって異なる変換演算を行ったり、異なる変換テーブルを参照して、クロックカウントをデータアドレスに変換する。これについては後述する。なお、画像データの解像度フルHD、WXGA、XGA、SVGA、VGA等によっては、画素値が格納されていないアドレスが存在することになるが、このアドレスは実施例2で説明するブランク扱いとなる。2Dスキャナ2Dスキャナ53について説明する。本実施形態の2Dスキャナ53は一般的なものであればよく、下記の構成は一例である。図5aは、MEMSミラー70の平面図の一例を示す。ミラー基板531、2本のねじり梁532、546、及び、ねじり梁を外側から固定している上部フレーム547は、低抵抗の単結晶シリコン基板で一体成形されている。ミラー基板531は同軸上に設けられた2本のねじり梁531、532でその一辺の中央部分を支持されており、ミラー基板531上にはレーザー光の波長に対して十分な反射率をもつ金属薄膜533が形成されている。ミラー基板531と2本のねじり梁532、546の各部寸法は、必要とする共振周波数が得られるように設計されている。上部フレーム547は絶縁膜548を介して下部フレーム549に接合されている。下部フレーム549はミラー基板531が振動する部分が除去されている。上部フレーム547、ねじり梁532、546、及び、ミラー基板531は、同一基板を貫通エッチングすることによって一体成形されている。エッチングの際、ミラー基板531のねじり梁が結合されていない側面は、櫛歯形状に加工形成されている。ミラー基板531の櫛歯形状には静電引力による駆動のための可動電極541、535が形成されている。可動電極541、535に対向する櫛歯形状の両側面には、駆動用の固定電極543、537が形成されている。この固定電極543、537が形成されている上部フレーム547の一部は、スリット534、538、545、540によりねじり梁が結合されている上部フレーム領域からは絶縁分離されている。上部フレーム547の表面にはスパッタ法でマスク成膜したAl薄膜による電極パット542、536、539が形成されている。電極パットとしてはAu等の他の材料も適用可能である。電極パット542、536から、固定電極543、537に同時に電圧を印加すると、微小ギャップを介して向かい合った固定電極543、537と可動電極541、535の間に静電引力が働く。両電極間に微少量の初期位置ずれがあった場合、両者が最短距離となるようにミラー基板531に回転のモーメントが働く。初期位置ずれは静電引力の印加により、共振振動を生じさせ振れ角を増大していく。なお、ここではミラー基板を共振振動させるための駆動力として静電引力を用いた場合を説明したが、電磁力を駆動に用いてもよい。図5bは、圧電素子を用いたMEMSミラー70の構成図の一例を示す。第1ミラー支持部563aは連結点Qa、Qbにおいて第1梁部567aのほぼ中央と連結している。第2ミラー支持部563bと第2梁部567bも同様である。第1圧電体565aは第1梁部567aと第1固定部561aとに、第2圧電体565bは第1梁部567aと第2固定部561bとにそれぞれ跨って導電性接着剤により固定されている。同様に、第3圧電体565cと第4圧電体565dも、第2梁部567bと第3固定部561c及び第2梁部567bと第4固定部561dにそれぞれ跨って導電性接着剤により固定されている。第1圧電体565aと第3圧電体565cには、第1配線571a、共通配線569及び導電性材料からなる枠部564を介して駆動回路570から交流電圧が印加される。同様に、第2圧電体565bと第4圧電体565dとには、第2配線571b、共通配線569及び枠部564を介して駆動回路570から上記交流電圧とは逆相の交流電圧が印加される。各圧電体565a~565dは駆動回路570からの交流電圧により振動し、第1梁部567aと第2梁部567bに対してこの振動を伝達する。第1梁部567a及び第2梁部567bの振動により、第1ミラー支持部563a及び第2ミラー支持部563bに回転トルクが与えられ捻れ変位が発生する。このため、各ミラー支持部を揺動軸としてミラー部562に揺動振動が発生する。このミラー部562の揺動振動の周波数は、高周波な共振周波数となる。図5abのMEMSミラーはいずれも1軸のMEMSミラーのため1つの走査方向にしか走査できないので、振動方向が90度異なるように2つのMEMSミラーを組み合わせることで、2Dスキャナを構成する。また、90度異なる2つの軸を中心に独立に振動する1つのミラーを備えた2軸のMEMSミラーにより2Dスキャナを構成してもよい。MEMSミラーの振れ角とレーザー光が投光されるスクリーン座標図6は、MEMSミラーが反射するレーザー光の座標位置を説明する図の一例である。説明を容易にするため、レーザー発振器60が照射したレーザー光はMEMSミラーが静止していると仮定した面に垂直に入射するものとする。また、拡大光学系としてのレンズは省略した。レーザー光はMEMSミラーにより反射され、スクリーン状の1点X,Yに到達する。主走査方向y軸を中心に回転のミラーの振れ角をθ副走査方向x軸を中心に回転のミラーの振れ角をψMEMSミラーとスクリーンの距離をdとすると、スクリーン上のレーザー光の座標X,Yは、√dsinθcosφ,√dsinφとなる。しかし、図7に示すように、実際のMEMSミラーは二つの回転軸の中心が一致しない。2つの回転軸の中心が一致するなら、円の中心と2つの直線の交点が一致するが、実際のMEMSミラーは図示するように他方の図では垂直の回転軸が円の中心からずれる。この様に二つの回転軸が存在すると座標X,Yは上記の三角関数では表すことができず、次の様になる。dtanφ,dtanarctanしかしながら解析的にはこの様に数式で表現できても、描画位置演算器57がこの三角関数の計算を行うには非常に長い時間がかかり、例えば100MHzの1クロック毎にこれを計算することは困難である。クロックカウントとX,Yの対応テーブルを予め用意しておき、参照すれば1クロック毎の計算も可能だが、上式には逆三角関数が入っているため、逆三角関数のためのテーブルが必要になるなど、この方法も実現は困難である。また、上記の数式はMEMSミラーの後段に拡大用のレンズが入っていない構成で求められているが、拡大用のレンズを入れた光学系の場合、上記の解析式以上に複雑な式になる。そこで、本実施形態のLPJ200は、φとθを用いた多項式によりスクリーン座標を算出する。モデル式図8は、本実施例のLPJ200が想定する投射画像の歪み例の一例を示す。この図では、MEMSミラーの主走査方向の振れ角が横軸、副走査方向の振れ角が縦軸となっている。投射画像の形状はレーザ光の走査範囲の包絡線である。図8では、MEMSミラー面がスクリーン面と並行でないことを想定している。このため、図39bに示したように、投射画像が台形状に変形している。また、図8の投射画像は、像面拡大用のレンズを用いたLPJ200が投射したため、包絡線が湾曲するという特徴的な歪みを示している。以下では、このような特徴的な歪みの投射画像を矩形に補正するため、所定の投射角の際に、MEMSミラーの演算上の振れ角φ、θから、スクリーン座標X,Yをどのように表すかについて説明する。スクリーンとの距離が変わっても、投射画像の形状は変わらない互いに相似ので、スクリーンとの距離は規定する必要はないが、一般的な距離を想定すればよい。まず、多項式をモデル化するため、開発者が、所定の投射角の場合、MEMSミラーの振れ角φ、θの時に拡大光学系を通過したレーザー光が到達するスクリーン座標X,Yをシミュレーションソフトを利用して計算する。MEMSミラーの運動状態は以下の様に表現できると仮定する。Mx=φ=Asinωtα...1MY=θ=Bsinωtβ...2すなわち、角度φ、θの変化が時間の1次関数で表現できる単振動運動とモデリングする。次に、開発者実際の処理はシミュレーションソフトが行うは、主走査方向の振れ角φをいくつかに固定して、副走査方向の振れ角θを振った場合のレーザー光の軌跡を求める。図9は、主走査方向の各振れ角φが1~7度の時に副走査方向の振れ角θを振ることで得られるレーザー光の軌跡を示す図の一例である。主走査方向の振れ角φが固定で副走査方向の振れ角θを変化させたので、軌跡は上下方向に描画される。所定の投射角を図39bのように上向きに設定しているため、主走査方向の振れ角φが大きいほどMEMSミラーからスクリーン面までの距離が伸びるため、副走査方向の振れ角θの変化量が同じでも、主走査方向の振れ角φが大きいほど軌跡が外側図では左側に広がる。図9の各ラインは完全には直線ではないが、概ね直線の様な形状をしているので、スクリーン座標系の座標Xは、MEMSミラーの振れ角θの一次式により表すことができる。スクリーン座標系X,Yを、MEMSミラー座標系で表すため、振れ角φをx、θをyとする。Xxy=axybx...3すなわち、振れ角φ毎に、振れ角θが決まればXx、yが決まるaxとbxが存在することになり。後述する方法でaxとbxを求めればXx、yを求めることができる。なお、図9では振れ角φを1~7度としたが、振れ角φを正側の1~7度としても、同様に式3によりXx、yを定めることができる。次に、開発者は、副走査方向の振れ角θをいくつかに固定して、主走査査方向の振れ角φを振った場合のレーザー光の軌跡を求める。図10aは、副走査方向の各振れ角θが1~5度の時に主走査方向の振れ角φを振ることで得られるレーザー光の軌跡を示す図の一例である。副走査方向の振れ角θが固定で主走査方向の振れ角φを変化させたので、軌跡は左右方向に描画される。図10aでは、湾曲の程度が分かりにくいので、副走査査方向の振れ角θが1度の軌跡のみをピックアップした図が図10bである。図10bより、各軌跡は概ね放物線の様な形状をしているとしてよい。したがって、スクリーン座標のYは、MEMSミラーの振れ角φにより表すことができる。スクリーン座標系X,Yを、MEMSミラー座標系で表すため、振れ角φをx、θをyとする。Yxy=cyx2dyxey...4すなわち、振れ角θ毎に、振れ角φが決まればYx、yが決まるcy、dy及びeyが存在することになる。後述する方法でcy、dy及びeyを求めればYx、yを求めることができる。この様に式12を近似可能な多項式によりX,Yを求めることは、最終的に次のax~eyを数値的に決定する問題に帰着する。ax、bxはxφの関数であり、cy、dy、eyはyθの関数であるので、5つの関数を求めることになる。5つの関数の求め方5つの関数の数値解を求める方法について説明する。axとbxは振れ角φにより異なり、cy、dy及びeyは振れ角θにより異なる。よって、axとbxが振れ角φに応じてどのように変化するかが分かれば、振れ角φからaxとbxを求めることができる。また、cy、dy及びeyが振れ角θに応じてどのように変化するかが分かれば振れ角θからcy、dy及びeyを求めることができる。本実施形態では、最小二乗法を使用してaxとbx、cy、dy及びeyを求める。まず、シミュレーションソフトが算出した図9の各直線から、最小二乗法によりaxとbxを求める。これと同じことを主走査の振れ角φの全範囲例えば、0.01度~0.1度間隔で行うと、主走査の振れ角φの全範囲に渡るaxとbxを求めることができる。なお、フィッティング対象の多項式は直線式3である必要はなく、二次以上の多項式や、双曲線X2xy2ax-y22ax=1でもよい。また、振れ角φの全範囲に同じ多項式を用いるのでなく、振れ角φに応じてフィッティング対象の多項式を変える例えば、3度<振れ角φ<3度では直線に、振れ角φ≦3度又は3度≦振れ角φでは曲線にそれぞれフィッティングすることもできる。ただし、字数の少ない多項式の方が計算時間が短くて済むので、本実施例では直線にフィッティングする。図11aは、副走査方向の振れ角θとaxの関係を、図11bは、副走査方向の振れ角θとbxの関係を、示す図の一例である。いずれもおおむね曲線とみなすことができる。また、図11aは無理関数ax=√{xb}cの形状の一部とも類似しているし、図11bは指数関数bx=exfの形状の一部とも類似している。また、開発者は、シミュレーションソフトが算出した図10の各曲線から、最小二乗法によりcy、dy及びeyを求める。これと同じことを副走査の振れ角θの全範囲例えば、0.01度~0.1度間隔で行うと、副走査方向の振れ角θの全範囲に渡るcy、dy及びeyを求めることができる。なお、フィッティング対象の多項式は式4の曲線に限られるものではなく、極小値を示す曲線4次以下の多項式を用いることもできる。ただし、字数の少ない多項式の方が計算時間が短くて済むので、二次の多項式にフィッティングする。図12aは、主走査方向の振れ角φとcyの関係を、図12bは、主走査方向の振れ角φとdyの関係を、図12cは、主走査方向の振れ角φとeyの関係を示す図の一例である。いずれもおおむね曲線とみなすことができる。図12aとcは下に凸の放物線、図12bは上の凸の放物線二次の多項式の形状の一部と類似しているし、三次以上の多項式の一部とみなすこともできる。したがって、以上の結果から、ax~eyの全てを曲線の式で近似する事が可能であることが分かる。ここでは計算量を考慮するのと、計算を容易にするため、ax~eyに共通に、最も簡単な曲線の式として2次の多項式で近似する。すなわち、以下の様な2次の多項式の係数dを最小二乗法で数値的に求めれば、振れ角φ、θからax~eyを求めることができる。ax=dy1x2dy2xdy3bx=dy4x2dy5xdy6cy=dx1y2dx2ydx3dy=dx4y2dx5ydx6ey=dx7y2dx8ydx9...5このようにして求められた計15個の係数dは、マイコンの不揮発メモリに記憶されており、LPJ200が起動するとマイコンが不揮発メモリから読み出して描画位置演算器57の例えばレジスタに設定する。このレジスタが上記の歪補正パラメータ保存器63に相当する。描画位置演算器57は式5によりある振れ角φ、θの時のax~eyを求め、axbxと式3からスクリーン座標のXを、cydyeyと式4からスクリーン座標のYを算出することができる。このように、本実施形態のLPJ200は、スクリーン座標を演算する際に、三角関数を用いない多項式に近似して計算を簡素化することで、描画位置演算器57の回路規模を小さくするという特徴部を備えるということができる。なお、図9や10はLPJ200が所定の投射角の場合のスクリーン座標の一例なので、投射角がほぼゼロの場合は15個の係数dも変わってくる。しかし、投射角がほぼゼロの場合、描画位置演算器57はスクリーン座標を演算しなくてもクロックカウントからフレームメモリのアドレスを1対1に特定できる。振れ角φ、θとクロックカウントの関係これまで振れ角φ、θをパラメータにすることで、MEMSミラーの運動が単純な2軸の単振動の重ね合わせで表現できると説明したが、これは、角度の変化は時間の一次関数で近似できることを意味する。描画位置演算器57には同期のためのクロックカウントが入力されるが、クロックカウントと時間とは等価である。上記のように、角度をパラメータとして座標を表すことと、時間をパラメータとして座標を表すことが等価であることを考慮すると、描画位置演算器57に入力されるクロックのカウントを利用して座標X,Yを表すことが可能である。全体的な動作手順図13は、画像出力系回路48の全体的な動作手順を示すシーケンス図の一例である。S1:2次元スキャナ駆動タイミング生成器51は、システムクロック周波数に基づきカウントした主走査方向と副走査方向のクロックカウントを補正済クロックカウント演算器61に出力する。S2:タイミング補正指示器54が、スキャナ角度演算器55から入力された実角度と、駆動波形が期待する振れ角の差異に基づき補正量を演算しクロック補正量を補正済クロックカウント演算器61に出力する。S3:補正済クロックカウント演算器61はクロックカウントにクロック補正量を加えて補正済クロックカウントを演算する。S4:スクリーン座標計測器62は歪み補正パラメータから15個の係数dを読み出す。なお、係数dが固定であるならS4までに読み出しておけばよい。S5:スクリーン座標計測器62は係数dを式5に適用してax~eyを求め、さらにaxbyを式3に、cy~eyを式4にそれぞれ適用して、スクリーン座標X、スクリーン座標Yを計算する。S6:メモリアドレス計算器64はスクリーン座標から描画対象の画像データのデータアドレスを算出し、メモリ制御ブロック100に出力する。この後は、実施例2にて説明されるフレームメモリ58からの読み出し処理になる。係数dの演算手順図14は、シミュレーションによるX、Yのデータから計15個の係数dを求めるまでの手順を示すフローチャート図の一例である。シミュレーションを行うのは開発者が操作するコンピュータである。まず、コンピュータは、シミュレーションソフトが作成したデータを読み込むS10。コンピュータは、MEMSミラーの実振れ角の範囲内のデータのみを抜き出すS20。シミュレーションでは、MEMSミラーが振れることのできない範囲もシミュレートすることができるためである。シミュレート範囲を予め実振れ角の範囲内に制限することもできる。コンピュータは、MEMSミラーの振れ角φ、θをクロックカウントに変換するS30。コンピュータは、主走査位置が同じクロックカウントのX、Yを取り出して、副走査のクロックカウントでソートしたデータに分割するS40。これにより、図9のような軌跡が得られる。コンピュータは、主走査位置毎にS40で分割したデータの集まり毎に、直線の係数であるaとbを、最小二乗法により算出するS50。コンピュータは、各主走査位置のaとbを2次の多項式にフィッティングした際の係数を最小二乗法で求めるS60。これにより、dy1~dy6が求まる。コンピュータは、副走査位置が同じクロックカウントのX、Yを取り出して、主走査のクロックカウントでソートしたデータに分割するS70。コンピュータは、副走査位置毎にS70で分割したデータの集まり毎に、曲線の係数であるc、d、eyを、最小二乗法により算出するS80。コンピュータは、各副走査位置のc、d、eyを2次の多項式にフィッティングした際の係数を最小二乗法で求めるS90。以上により、コンピュータはdy1~dx9を求めることができるので、歪み補正パラメータ保存器63に記憶させる。図15は、シミュレーションソフトがdy1~dx9を利用してax~eyを求め、ax~eyから演算したスクリーン座標の軌跡の一例を示す図である。横方向に往復している曲線が軌跡を、曲線の包絡線が投射画像を、矩形が投射角がゼロの場合の理想的な投射画像を、それぞれ示す。まず、図15によると、実際のレーザー光線の軌跡と同様の軌跡が得られるため、上述した数値計算的なレーザー光線の座標計算が適切であることが確認できる。また、これまで説明したように、LPJ200が上向きに所定の投射角で傾いて設定されているため、投射画像が理想的な投射画像よりも大きくなりかつ歪んでいる。具体的には矩形外のレーザー光は本来、矩形内に照射されるべきである。本実施形態のLPJ200は、矩形内でのみレーザー光を照射させるため、メモリ制御ブロック100が選択的に画像データをレーザードライバ59に送る様に制御する。これにより歪みが解像度を落とすことなく補正される。歪み補正上述したように所定の投射角が分かれば投射画像がどのくらい歪むかは容易に算出できる。例えば、台形の上辺と下辺の比率は投射角度に依存する。矩形の理想的な投射画像の縦横の長さの比率いわゆるアスペクト比は、Video入力される画像データのアスペクト比をそのまま維持することが好ましいと考えられる。よって、歪んだ投射画像を元の画像データのアスペクト比が維持されるように、歪んだ投射画像のレーザー光の照射位置を所定のアスペクト比の領域に対応づけることで、画素を落とすことなく歪みを補正することができる。なお、必ずしもVideo入力される画像データのアスペクト比と同一とする必要はなく、矩形であればよい。図16は歪み補正を説明する図の一例である。描画位置検算器57はVideo入力される画像データのアスペクト比を検知しておく。そしてメモリアドレス計算器64は、以下の2つの動作を行う。各アスペクト比毎に用意された、各スクリーン座標がアスペクト比を維持する矩形内の座標か否かを登録された判定テーブルを参照し、スクリーン座標がアスペクト比を維持する矩形内の座標でない場合は、ブランク画素であることをメモリ制御ブロック100に通知する。この場合、メモリ制御ブロック100は輝度が黒レベルのレーザー光を表示するレーザー光を照射しないと表現することもできる。スクリーン座標がアスペクト比を維持する矩形内の座標の場合は、スクリーン座標からデータアドレステーブルを演算し、メモリ制御ブロック100に出力する。ここで、図16aの歪んだ投射画像のレーザー光を図16bの所定のアスペクト比の投射画像に投射するには、符号1のレーザー光は符号1のレーザー光に、...、符号13のレーザー光は符号13のレーザー光に投射タイミングを調整する必要がある。このため、メモリアドレス計算器64は各アスペクト比毎に用意された、歪みのあるスクリーン座標をアスペクト比を維持する領域内にマッピングするマッピングテーブルを有する。例えば、レーザー光1のスクリーン座標の時にスクリーン座標1に対応したフレームメモリのデータアドレスを生成する。こうすることで、歪んだレーザー光が欠けることなく矩形領域にマッピングされる。以上のように、メモリアドレス計算器64は、MEMSミラーが矩形領域外にレーザー光を照射する角度の場合、ブランク画素を出力するようメモリ制御ブロック100に通知し、MEMSミラーの角度が入力された画像データのアスペクト比を保ちつつ表示する角度の場合、メモリアドレス計算器64は、フレームメモリ58から読み出すアドレスを調整する。このように、選択的にレーザードライバ59を駆動する事により歪みを解消して、かつ、画素を捨てることなく、表示を行うことができる。なお、本実施例の歪み補正は傾斜による歪みだけでなく光学系の歪みにも対応できる。図17は糸巻き型歪みと歪み補正の結果を模式的に示す図の一例である。投影画角を大きくするために拡大光学系を用いると糸巻き型歪み又は樽型歪みが生じることがある。一般には光学系を設計することで正面投射では歪みが目立たない歪みレベルに抑制することができる。しかし、正面投射では歪みが目立たない状態でも斜めに投射すると糸巻き型歪み等がより顕著に表れることがある。本実施例のLPJ200は、このような場合にも光学系を調整することなくレーザー照射のタイミングを調整することで歪みを補正することができる。また、さらに描画位置演算器57とメモリ制御ブロック100を高速に例えば、従来は60MHzであったものを200MHz等動かすことにより、画素値を補間することなどが可能になり、1画素以下この例では約13の高精細な描画が可能になる。以上説明したように、本実施例のLPJ200は、スクリーン座標を複雑な式を用いずに近似多項式により求めることで高速な演算を可能にし、アスペクト比を維持するようにレーザー照射のタイミングを補正するので、LPJ200が傾斜していても画像が歪まないようにすることができる。実施例1にて説明したように、共振型MEMSを用いたLPJ200では、メモリ制御ブロック100はスクリーン座標に応じてフレームメモリをスキャンする。しかしながら、このようなスキャン方法ではフレームメモリのアドレス順に画素を読み出すとは限らないため、メモリからの読み出しが間に合わなくなるおそれがある。そこで、本実施例では、このような課題に対応した、LPJ200のメモリアクセスについて詳細に説明する。以下、本実施例のメモリアクセスをフリースキャンという。フリースキャンはラスタースキャンと対比するための用語であり、アクセスされるアドレスが連続とは限らないことをいう。まず、フリースキャンでは、入力画像と出力画像のタイミングを合わせることができず、投射用画像データを一時保存しておくフレームメモリ58が必要になる。図18は、フリースキャンを説明する図の一例である。図18aは説明の対比のため、ラスタースキャンを模式的に示す図である。ラスタースキャンでは、入力画像上の原点からX方向へ入力画素を読み出していってX方向の終端まで到達すると、次にY方向に1つラインを移って、そのラインについてX方向の終端まで入力画素を読み出す。これ対し、フリースキャンでは、X方向に走査しながらY方向にも走査するので、入力画素を連続アドレスで読み出すことができず、途切れ途切れのアクセスになる。したがって、投射用画像データがフリースキャンできるように投射用画像データを一時保存しておくフレームメモリ58が必要になる。図示するように、フレームメモリ58へのアクセスでは、連続アドレスのアクセスが出来ず、またアクセスアドレスの予測による先読みやデータ格納時の適正な並べ替えもできない。このため、バーストアクセスが基本のDDRDDR2DDR3などのSDRAMでは余分なアクセスが発生する。この不都合を解決して必要なアクセス帯域を確保するには、高価なDualPortSRAMを使用するか、安価ではあるが消費電力の大きい必要以上に高速なSDRAMを使用しなければならないという問題がある。ここで、メモリへのアクセス効率を高める技術が考案されている例えば、特許文献4参照。。特許文献4には、映像データをメモリへ格納する際に複数画素をデータ圧縮して格納し、読出し要求によって読み出した圧縮データを複数画素に復号してバッファキャッシュに格納し、次の読み出し時にはキャッシュされたデータを使用することによってメモリとデータ転送量を軽減する方法が開示されている。しかしながら、特許文献4に開示されているように、映像データを圧縮/復号化することでアクセス帯域は確保できても上記の問題は解決できない。すなわち、フリースキャンの場合はアクセスアドレスがスキャン毎に違っており、読み出すデータは特定の連続アドレスに格納されないので、読み出した圧縮データを復号した複数画素を利用できるとは限らない。このため、結局は再読み込みが必要となり、メモリとデータ転送量の軽減という問題を解消することはできない。本実施例では、この課題を鑑みて、フレームメモリ58へのアクセスをより効率的に行うメモリ制御装置について説明する。このメモリ制御装置は実施例1のメモリ制御ブロックに相当するので、メモリ制御装置とメモリ制御ブロックの符号はいずれも100とした。図19は、本実施形態のLPJ200のメモリアクセスの特徴を簡略化して模式的に説明する図の一例である。まず、LPJ200は、読み出すデータのアドレスの重複チェックを常に行い、読み出し先が同じであればフレームメモリ58にアクセスせずに、再生する同じデータを複製する。また、LPJ200は、歪み補正することを利用して、読み出すデータがブランクか否かのチェックを行い、ブランクの場合にはフレームメモリ58にアクセスしない。この2つによって、連続アドレスが基本のフレームメモリ58に対し、同じアドレスに連続してアクセスすることや、不要にアクセスすることを抑制できる。また、LPJ200は、入力側バッファと出力側バッファのデータの残量を把握しており、可能な限り連続アクセスになるように、入力側バッファと出力側バッファの状態に応じて、入力側バッファからの書き込みと出力側バッファへの読み出しの優先度を調停する。これにより、フレームメモリ58に対して集中的に書き込み、集中的に読み出すことが可能になる。DRAMについてまず、フレームメモリ58に一般的に使用されるDRAMについて説明する。フレームメモリ58に使用される記憶素子は、以下のような理由でDRAMメモリが多いとされている。価格が安いPCパーソナルコンピュータで大量に使用されるため低価格化が早い高速アクセスが可能DDRの動作周波数333MHz、DDR3は1333MHz等調達が安定している記憶容量が大きい128Mbits、512Mbits等低価格の組み込み機器においてLSIコストは製品全体のコストのうち大きな比重を占めるため、特に価格が安いことは製品への搭載を決定する上で重要で、安い記憶素子を選択することが必須になっている。また、フレームメモリ58に必要な記憶容量は、画像サイズに応じて変わってくる。図20は、画像サイズとメモリ容量の関係の一例を示す。例えば、VGAでは約7.1Mbits、FullHDでは約45Mbitsのメモリ容量が必要である。なお、メモリ容量の括弧内の数値は1ピクセルの階調値であり、32bitで階調を表すとVGAでは約9.4Mbits、FullHDでは約60Mbitsのメモリ容量が必要になる。例えば、HD用にSRAMを選択するとなると、27.3Mbitsの記憶が可能な32Mbit品が必要だが、1個当たり数千円のコストが必要になり、製品の価格にもよるが、事実上選択対象から除外せざるを得ない。これに対し、DDRDDR2/DDR3を採用したSDRAMであれば512Mbitでも1個あたり500円以下で調達可能である。しかしながら、DRAMにはアクセスレイテンシ遅延が大きいという不都合な特徴がある。例えば、DDR3メモリでは1回の読み出しアクセスでプリチャージから読み出し終了まで最大33Cycleかかることがある。図21は、リードサイクルのシーケンス図の一例を示す。図21の上段はCASレイテンシCL=2であり、下段はCL=2.5である。メモリコントローラは、ACTと共に、Rowロウアドレス及びバンクアドレスを入力して該当バンクの特定ロウアドレスをアクティブにする。ACTを入力してからtRCD後、カラムアドレス、バンクアドレス、及びREADリードコマンドを入力する。リードコマンドを入力してからCASレイテンシ後に上記で指定したアドレスから始まるバーストデータ出力が開始される。ACTを入力してからtRAS後、メモリコントローラがPREを入力する。メモリは、DQS信号データストローブ信号と、DQS信号に同期するDQ信号データ信号を出力する。メモリコントローラは、DQS信号の立ち上がり/立ち下がりエッジを参照してDQ信号を取り込む。このようなレイテンシを隠蔽するためにSDRAM系のメモリでは連続アクセスが基本になる。図22は、連続アクセスの際のリードサイクルのシーケンス図の一例を示す図である。図22では、CASレイテンシCL=2とした。連続アクセスでは、最初の1回図22のREADaだけ、上記の全ての手順を踏み、2回目以降のアクセスについてはカラムアドレスの指示図22のREADbだけでアクセスする。すなわち、メモリコントローラは、2回目のアクセスでは、ACT、バンクアドレス、及び、ロウアドレスの出力を省略し、さらにプリチャージ図21のPREを省略する。これによって、レイテンシは大きくともスループットは高いアクセスを実現することができる。図22はカラムアドレスの指示を2回続けて行った場合のシーケンスだが、2回目のリードコマンドREADbの直後からデータの読み出しが可能になっている。このように、DDRメモリへのアクセスにて高いスループットを実現するためには、バンクアドレス及びロウアドレスを変更せず連続アクセスではバンクアドレス、及び、ロウアドレスが省略されるため、カラムアドレスの変更のみで連続アクセスする必要がある。ラスタースキャン図23は、ラスタースキャンを説明する図の一例である。フレームメモリ58への書き込みや読み出しとしてはラスタースキャンが知られている。ラスタースキャンの一例としては映像などをPCのディスプレイに表示することが挙げられるが、ラスタースキャンとは元の映像の走査線の一列がデータに戻され、走査時と同じ順番で表示するスキャン方法である。共振型MEMSミラーを用いたLPJ200のフレームメモリ58においても、PCや携帯電話本体からLPJへ入力された画像データはフレームメモリ58に記憶される。LPJはPCから取得した画像データを記録する際は、一般的にライン順次のラスタースキャンで記憶する。水平方向へライン順次のラスタースキャンでは、入力画像上の原点0,0から入力が始まり、x方向へ入力画素が進んでいってx方向の終端まで画像データを記憶する。次に、LPJはy方向に1つラインを移って、そのラインについてx方向へ入力画像を記憶しておき、x方向の終端まで画像入力する。この繰り返しで1つのフレーム画像が入力完了する。ここで、特徴的なのは、データはx方向に連続したアドレスに記憶されるため、フレームメモリ58への書き込みも連続書込みすることができることである。フリースキャン図24は、フリースキャンを模式的に説明する図の一例である。LPJでは共振型のMEMSミラーを使用するため、x方向の振動周波数とy方向の振動周波数を特定の値にすることが非常に困難になる。このため、x方向の走査周波数とy方向の走査周波数が任意MEMSミラーの物理特性製造ばらつき依存になる。x方向の走査周波数とy方向の走査周波数が特定の周波数であれば、その周波数でスキャンした際にラスタースキャンとなるように、画像データを記憶することもできる。しかしながら、x方向の走査周波数とy方向の走査周波数が任意だと、予め決まった順番で画像データをフレームメモリ58に書き込むことができないので、その結果、LPJの画像出力はフリースキャンとなる。図示するように、LPJはフリースキャンにおいてx方向に走査しながらy方向にも走査する走査線が斜めになっている。このためx方向1ラインは連続アドレスでのアクセスは出来ず、ある程度x方向に連続して読みとったら、y方向に移動してX方向への読み取りを再開するため、フレームメモリ58へのアクセスが途切れ途切れになる。アクセスが途切れるため、アクセスのオーバーヘッドが増加してしまう。歪み補正図25は、歪み補正を模式的に説明する図の一例である。LPJでは小さい光学エンジンレーザー発振器、MEMSミラー、レンズ等を有するから大きな画面を投影するために拡大レンズを使用する。拡大レンズは投影画像の歪みを低減するように設計されるが、LPJでは正面投射だけでなく斜め投射も想定して、いずれの場合でも歪みが少なくなるように拡大レンズが設計される。しかし、両方の投影方法を実装すると、例えば正面投射に合わせて拡大レンズを作り込んだ場合には斜め投射では歪みが大きくなり、斜め投射に合わせて拡大レンズを作り込んだ場合には正面投射では歪みが大きくなる。図25aはレンズ歪みがある正面投射時の歪みを、図25bはレンズ歪みがある斜め投射時の歪みの一例をそれぞれ示す。図では枠線が実際にレーザー走査される歪み時の映像の外縁を示し、枠線の中の映像は歪み補正によって補正された映像を示している。歪み補正では、歪みのある映像が正面投射時のように投射されるように、歪みのある映像と正面投射時の映像をマッピングして、投射位置をずらす処理を行う。本実施形態ではフリースキャンによりフレームメモリ58へアクセスするので、フリースキャン時のアクセス順を歪み補正に応じて調整する。このため図25cに示すように、フリースキャン時のアクセスがアクセス位置によっては湾曲するようになるが、こうすることによって、LPJがフリースキャンした際に、レンズ歪みがあっても正面投射時のように映像を表示できる。また、歪み補正によりブランク画素が生じることになる。図25aや図25bにおいて、枠線がLPJのレーザー光の走査範囲であるのに対し、映像としては正面投射の範囲でレーザー光を照射すればよい。このため、正面投射時の映像と枠線の間の画像データは投射されないブランク画素となる。ブランク画素はフレームメモリ58から読み出す必要がないので、LPJはフレームメモリ58からの読み出しを省略できることになる。構成図26は、メモリ制御ブロック100の全体ブロック図の一例を示す。メモリ制御ブロック100は、ASICなどのICを実体とする。メモリ制御ブロック100は、入力側バッファ11、アービタ13、メモリコントローラ14、及び、出力側バッファ12を有する。なお、以下では、画像データと各種の信号を区別せずにデータという場合、書き込み時の画像データを入力データ、読み出し時の画像データを出力データという場合がある。入力側バッファ11はVideo入力から入力された画像データを一時的に記憶する。アービタ13は、入力側バッファ11からメモリコントローラ14への画像データの入力要求と出力側バッファ12からの画像データの出力要求を調停選択する。メモリコントローラ14は外部メモリフレームメモリに相当する15にACT、READ、PRE、及び、各種のアドレスを出力して、外部メモリ15を操作し画像データを読み書きする。出力側バッファ12は、読出しアドレス生成部16から入力されたデータアドレスを一時保管すると共に、アービタ13に画像データの読み出しを要求し、Video出力へ出すための画像データを一時的に記憶する。この読出しアドレス生成部16は、実施例1の少なくとも描画位置演算器57又は描画位置演算器57に必要な画像出力系回路48となる。データアドレスを以下、読出しアドレスという。データの流れは下記のようになる。データ入力:メモリ制御ブロック100はVideo入力から入力される画像データを外部メモリ15へ保存する。Video入力→入力側バッファ11→アービタ13調停器→メモリコントローラ14→外部メモリ15データ出力:メモリ制御ブロック100は、読出しアドレス生成部16から指示された読出しアドレスに従い、外部メモリ15から画像データを読出し、Video出力へ出力する。読出しアドレス:読出しアドレス生成部16→出力側バッファ12→アービタ13調停器→メモリコントローラ14→外部メモリ15画像データ:外部メモリ15→メモリコントローラ14→アービタ13調停器→出力側バッファ12→Video出力本実施形態のメモリ制御ブロック100は、以下のような特徴を有する。入力側バッファ11は、1ライン~数ライン程度の画像データの保持が可能で、アービタ13調停器の指示に従って連続的に書込みデータ画像データを渡す。アービタ13調停器は、後述するように、入力データが出来るだけ連続アクセスになるように工夫されている。出力側バッファ12は、同じ読出しアドレスに対して複数回連続で読出し要求があった場合に、外部メモリ15の読出しを1回だけにして、2回目以降はコピーした画像データを使用する。出力側バッファ12は、描画領域外の画像データブランクを要求された場合に、外部メモリ15の読出しは行わず、ブランク値をVideo出力へ渡す。<入力側バッファ>図27は、入力側バッファ11のブロック図の一例を示す。図27以下では、信号の流れを黒線で、データの流れを白線で示す。入力側バッファ11は、Video入力から入力される画像データを2PortFIFO21に一度ため込み、アービタ13からの要求に応じて、画像データにアドレスを付加してアービタ13に渡す動作を行う。外部メモリ15へのバーストライトをX走査の1/4ラインから1/2ライン程度とするならば、2PortFIFO21に蓄積できるデータ量はX走査の1ライン程度が適切と考えられる。アドレス生成部22は、基本的には単純増加のアドレスを生成し、pixinvsync入力画像の垂直同期が入力された時にゼロクリアする。入力側バッファ11は、2PortFIFO21のステータスを示す信号flaginをアービタ13へ渡す。アービタ13ではこの信号を元にアービトレーションデータパスの調停を行う。flaginは、flaginemptyflaginhalm、flaginfull、又は、flaginoverrunerrのいずれかである。なお、入力側バッファ11は、一般的な入力画像の非同期吸収バッファであり、特に特別な構造は不要である。信号の内容は以下のとおりである。pixin230:入力データclkpixin:入力データの1画素のクロックpixinen:入力データの受け付けを要求する時に1となるpixinsizex:入力データのx方向のサイズpixinsizey:入力データのy方向のサイズpixinvsync:入力データの垂直同期信号flaginempty:2PortFIFOが空である時に1になるフラグflaginhalf:2PortFIFOに半分以上データがある時に1になるフラグflaginfull:2PortFIFOが満タン例えば90以上である時に1になるフラグflaginoverrunerr:2PortFIFOの読み出しが間に合わず、入力データがあふれてしまった時に1となるフラグmemwrreq:2PortFIFOへの書き込み要求memwrdata230:2PortFIFOがアービタに書き込む画像データmemwraddr0:アドレス生成部22が生成したアドレス<出力側バッファ>図28は出力側バッファ12のブロック図の一例を示す。出力側バッファ12は外部メモリ15への読出し要求と、出力された画像データの一時保存、及び、Video出力への出力を行う。出力側バッファ12は機能的にアドレス部31とデータ部32の2つに分けられる。アドレス部31は、チェック部33、2PortFIFO34、及び、FIFO制御部35を有し、データ部32は2PortFIFO36、重複ブランク再生部37、及び、2PortFIFO38を有する。<<出力側バッファのアドレス部>>図29は、出力側バッファ12のアドレス部31のブロック図の一例を示す。チェック部33は、重複チェック、ブランクチェックを行う。重複チェック:同じアドレスに対し連続して複数回の読出し要求があるか否かをチェックする。ここの説明では最大4連続までチェックするとして説明するが、実装に合わせて変更してもよい。ブランクチェック:LPJで歪み補正有りの場合に絵を描画しない領域が存在する。読出しアドレス生成部16は描画する座標から読出しアドレスを計算するが、描画しない座標についてはpixoutaddren0を出力して描画しない事を出力側バッファ12に通知する。チェック部33は、この信号を認識して該当のタイミングではブランクを描画すると判断する。ブランクについても重複チェックは行われるが、ブランクの重複チェックについて、アドレスは無視される。信号の内容は以下のとおりである。pixoutaddr0:読出しアドレス生成部16が生成した読出しアドレスclkpixout:読出しアドレス生成部16が読み出し要求する際のクロックpixoutaddren:読出しアドレスがブランクである時に0になるflagoutaddrempty:2PortFIFO34に読み出し対象のアドレスのデータが記憶されていない時に1になるmemrdaddrduplicationinfo10:重複回数が格納されるmemrdaddrblank:ブランクの場合に1になるmemrdaddrparamen:2PortFIFO34に読み出し対象のアドレス等が記憶されている時に1になるmemrdreq:アービタが出力側バッファを選択すると1になるmemrdaddr0:アービタに読み出し要求するアドレスmemrdaddren:アービタに読み出し要求がある時に1になる図30は、アドレス部31へ読出しアドレスが入力されてから2PortFIFO34へ書き込まれるまでの流れを示すフローチャート図の一例である。なお、読出しアドレス生成部16からの入力は毎クロック入力され、入力信号サンプリングからブランクチェック、重複チェック、2PortFIFO34への書込み、及び、後処理までは1クロックで処理される。フローチャート図で使用される変数の意味は下記のとおりである。overlappingcount重複回数が格納される変数prepixaddr前回入力された読出しアドレスが格納される変数prepixblank前回入力された読出しアドレスがブランクの時1が格納される変数newpixaddr今回入力された読出しアドレスが格納される変数newpixblank今回入力された読出しアドレスがブランクの時1が格納される変数まず、アドレス部31は変数を初期化するS10。overlappingcount0prepixaddr0prepixblank0次に、アドレス部31は、入力信号をサンプリングする。pixoutaddrとpixoutaddrenを1クロック毎にサンプリングするS20。チェック部33は、pixoutaddren0か否かを判定するS30。pixoutaddren0の場合、その読出しアドレスの画像データがブランクであることを示すので、チェック部33はnewpixblankに1を設定するS40。また、チェック部33は、newpixaddrに任意のアドレスを設定する。任意のアドレスとしたのは、画像データがブランクの場合、アドレス部31は外部メモリ15にはアクセスしないためである。pixoutaddren0でない場合、その読出しアドレスがブランクでないことを示すので、チェック部33は、prepixblankに0を設定するS50。また、チェック部33は、newpixaddrに今回の読出しアドレスを設定する。次に、チェック部33は、重複があるか否かを判定するS60。この判定は次式で現すことができる。if1or0:重複しているelse:重複してないすなわち、現在の読出しアドレスと1つ前の読出しアドレスの両方の画像データがブランク、又は、現在の読出しアドレスと1つ前の読出しアドレスが同じで、現在の読出しアドレスと1つ前の読出しアドレスのどちらかがブランクでない場合に、連続した読出しアドレスが重複していると判定される。現在の読出しアドレスと1つ前の読出しアドレスの画像データが共にブランクの場合にアドレスの一致を問題としないので、重複を多く検出できる。なお、図30のフローチャート図では2つの連続したアドレスが読み込まれた後、重複の是非が判定され、判定結果に応じて2PortFIFO34への書き込みの有無が定まる点に注意されたい。連続した読出しアドレスが重複している場合、チェック部33はoverlappingcountを1つ大きくするS70。連続した読出しアドレスが重複している場合は、チェック部33は2PortFIFO34に何も書き込まないので、FIFO制御部35がアービタ13に読み出し要求することもない。しかし、連続した読出しアドレスが重複していても、チェック部33はoverlappingcountが3になったか否かを判定するS80。overlappingcount重複回数が3になるまでは、チェック部33はprepixblankにnewpixblankを複写し、prepixaddrにnewpixaddrを複写するS90。連続した読出しアドレスが重複していない場合、画像データを読み出すため、チェック部33は2PortFIFO34に、overlappingcount、prepixblank及びprepixaddrを書き込むS100。prepixblank及びprepixaddrなので、読み込まれた2つの連続した読出しアドレスのうち、先の読出しアドレスの重複情報やブランク情報が2PortFIFO34に書き込まれる。そして、overlappingcountを初期化するS110。この場合も、チェック部33はprepixblankにnewpixblankを複写し、prepixaddrにnewpixaddrを複写するS90。このような処理により、連続して読出しアドレスが重複しても3回までは、2PortFIFO34に、重複回数、前回入力された読出しアドレスがブランクかどうか、及び、前回入力された読出しアドレスが書き込まれないので、同じ読出しアドレスへのメモリアクセスを抑制できる。なお、3回としたのは一例であり、4回以上でもよい。図31は、FIFO制御部35が2PortFIFO34に保存されたデータをアービタ13又はデータ部32に渡すまでの流れを説明するフローチャート図の一例である。まず、FIFO制御部35がアービタ13にアドレスデータを渡す条件は下記のようになる。アービタ13からmemrdreq1が出力されていて、アドレス部31の2PortFIFO34のテータスとしてflagoutaddrempty0読み出し先のアドレスが記憶されていることが出力されていて、2PortFIFO34にブランクでない読出しアドレスが記憶されているため、FIFO制御部35が出力するmemrdaddrblank0になっている、こと。また、FIFO制御部35がデータ部32に重複情報、ブランク情報を渡す条件は下記のようになる。2PortFIFO34のテータスとしてflagoutaddrempty0が出力されている。まず、FIFO制御部35は自身の使う変数等を初期化するS210。次に、FIFO制御部35はflagoutaddrempty0か否かを判定するS220。flagoutaddrempty0であることは、2PortFIFO34にアドレス等が記憶されていることを意味するので、FIFO制御部35は2PortFIFO34から1ワードを読み出すS230。なお、1ワードとは一連の情報が記憶されたひとかたまりのデータをいう例えば32ビットである。次に、FIFO制御部35は読み出したデータを一時保管用のFFにセットするS240。すなわち、memaddrduplicationinfoにoverlappingcountを、memrdaddrblankにprepixblankを、memrdaddrにprepixaddrを、それぞれ設定する。次に、FIFO制御部35はデータ部32にデータを渡すS250。すなわち、FIFO制御部35は、memaddrduplicationinfoとmemrdaddrblankをデータ部32に出力する。なお、この時、memrdaddrparamenは1となる。次に、FIFO制御部35はmemrdaddrblank1か否かを判定するS260。memrdaddrblank1の場合、読出しアドレスはブランクなので処理はステップS220に戻る。memrdaddrblank1でない場合、読出しアドレスはブランクでないので、FIFO制御部35はmemrdreq1になるまで待機するS270。memrdreq1の場合、アービタ13が出力側バッファ12を選択可能なことを意味するので、FIFO制御部35は、アービタ13にデータを出力するS280。すなわち、FIFO制御部35は、memrdaddrをアービタ13に出力する。なお、この時、memrdaddrenは1となる。このように、ステップS260において、memrdaddrblank1の場合、読出しアドレスがブランクであるとして外部メモリ15にアクセスしないことで、不要なアクセスを抑制できる。<<出力側バッファのデータ部>>続いてデータ部32について説明する。図32は、データ部32のブロック図の一例である。出力側バッファ12のデータ部32は下記の3つのブロックを有する。2PortFIFO36:重複情報とブランク情報を一時蓄積する重複ブランク再生部37:重複した読出しアドレスとブランクの読出しアドレスの画像データを再生する2PortFIFO38:出力データを一時的に保存する重複情報とブランク情報の一時蓄積、及び、2PortFIFO36の動作について説明する。2PortFIFO36は、memrdaddrparamen1を条件に、アドレス部31からデータをどんどん受け取り、蓄積する。次段へデータを渡すタイミングは下記のとおりである。次に渡すべきデータがブランクmemrdaddrblank1だったら、そのまま重複ブランク再生部37に渡すブランクでなかったらmemrdaddrblank0、アービタ13からの画像データの入力を待って、重複ブランク再生部37に渡す。図33は、データ部32が重複情報ブランク情報の書き込みと読み出しを制御する手順を示すフローチャート図の一例である。図33aはFIFO制御部35が重複情報ブランク情報を書き込む手順の一例を示す。まず、データ部32は2PortFIFO36を初期化するS310。次に、データ部32はmemrdaddrparamen1か否かを判定するS320。memrdaddrparamen1の場合、アドレス部31がアドレス等を保持しているので、2PortFIFO36はアドレス部31からmemrdaddrduplicationinfo重複回数とmemrdaddrblankブランク情報の書き込みを受け付けるS330。memrdaddrparamen1でない場合、アドレス部31がデータを保持していないので、2PortFIFO36は待機する。図33bは重複ブランク再生部37が2PortFIFO36からデータを読み込み手順の一例を示す。まず、重複ブランク再生部37は必要であれば重複ブランク再生部37を初期化するS410。次に、重複ブランク再生部37は2PortFIFO36が空か否かを判定するS420。空の場合は、データを読み出す必要がないので重複ブランク再生部37は待機する。空でない場合、重複ブランク再生部37は2PortFIFO36から1ワード重複情報ブランク情報を読み出すS430。次に、2PortFIFO36はmemrdaddrblankブランク情報に基づき読み出される対象の画像データがブランクか否かを判定するS440。読み出される対象の画像データがブランクの場合S440のYes、アービタ13に読出しアドレスも渡されておらず外部メモリ15から画像データを読み出す必要がないので、重複情報とブランク情報を重複ブランク再生部37に書き込むS450。読み出される対象の画像データがブランクでない場合S440のNo、2PortFIFO36はmemrddataen1か否かを判定するS460。memrddataen1の場合、アービタ13が渡す画像データを保持していることを意味するので、重複ブランク再生部37がアービタ13からmemrddataによる画像データを受け取った後、重複ブランク再生部37が2PortFIFO38に画像データを書き込むS450。このように、画像データがブランクでない場合にだけ、重複ブランク再生部37はアービタ13から画像データを取得することができる。出力バッファにおける重複ブランクの再生図34は重複ブランク再生部37のブロック図の一例を示す。重複ブランク再生部37はバッファ制御部371と一時バッファ372を有する。バッファ制御部371はブランク又は重複した画像データの再生を行う。上記のように、重複ブランク再生部37は、前段の2PortFIFO36から重複情報とブランク情報を受け取る。重複ブランク再生部37は、memrddataen1のときのみアービタ13から出力されるmemrddataを取り込む。重複ブランク再生部37は、重複情報に従い最大4画素を再生する。再生した画像データを出力データ側の2PortFIFO38に書込む。なお、図34のparam0duplicationinfoにはmemrdduplicationinfo重複情報が設定され、param0blankにはmemrdaddrblankブランク情報が設定され、param0enにはmemrdaddrparamenが設定されている。図35は、重複ブランク再生部37が重複ブランクを再生する手順を示すフローチャート図の一例である。まず、重複ブランク再生部37は必要であれば一時バッファ372を初期化するS510。重複ブランク再生部37は、param0en1か否かを判定するS520。param0en1でなければ、2PortFIFO36はデータを保持していないので、重複ブランク再生部37は待機する。param0en1の場合、2PortFIFO36がデータを保持しているので、重複ブランク再生部37は、param0blank1か否かを判定するS530。param0blank1の場合、書き込み値はブランク値であるS540。なお、ブランク値とは、例えば輝度がゼロとなるような画像データであり、RGB値ではブラックの0,0,0となる画像データである。param0blank1でない場合、書き込み値はアービタ13から取得したmemrddata画像データであるS550。次に、重複ブランク再生部37は一時バッファ0~7の空きをチェックするS560。一時バッファ0~7には、1画素毎に2PortFIFO38に出力されたか否かに応じてフラグがオン/オフするなどして、空きか否かが登録されている。重複ブランク再生部37は空いている一時バッファ0~7のいずれかに、param0duplicationinfo1回、書き込み値を書くS570。すなわち、重複回数1回、ブランク値又はmemrddataを書き込む。図30のステップS60の判定では、2つの連続した読出しアドレスが重複した時に重複回数は1回、3つの連続した読出しアドレスが重複した時に重複回数は2回、4つの連続した読出しアドレスが重複した時に重複回数は3回、となる。このため図35のステップS570では、バッファ制御部371が重複回数1回、ブランク値又はmemrddataを書き込む。なお、図30のS60にて、重複回数が1又は2回の場合で、次に連続した読出しアドレスが重複していないと判定された場合、2PortFIFO34に書き込まれるのは重複しないと判定された読出しアドレスの直前の画像データのアドレスなので、重複しないと判定された読出しアドレスの画像データは考慮しなくてよい。重複しないと判定された読出しアドレスの画像データが2PortFIFO34に書き込まれるのは、最短でも次のクロックである。以上から、バッファ制御部371は、重複回数1回、ブランク値又はmemrddataを一時バッファ0~7に複写する。次に、バッファ制御部371は、埋まった一時バッファの数が4個以上か否かを判定するS580。これは、ある程度画像データが溜まったら書き込むためである。埋まった一時バッファ0~7の数が4個以上の場合、後段の2PortFIFO38に画像データを書き込むS590。また、バッファ制御部371は、4画素分の一時バッファをアドレスのゼロ側に詰めるS600。例えば、すでに3個の画像データが一時バッファ0~7に記憶された状態で、2つ以上の画像データが複製されると、4個以上の画像データが格納されることになるため、4個の画像データを後段の2PortFIFO38に書き込んだ後、後段の2PortFIFO38に書き込まれなかった画像データを読出しアドレスの小さい側に詰めるためである。また、一時バッファ0~7は8個あるので、すでに3個の画像データが一時バッファ0~7に記憶された状態で、4つの画像データが複製されても、1個余裕がある計算になる。出力側の2PortFIFO出力側の2PortFIFO38の動作は一般的な2PortFIFOと同様である。入力ポートと出力ポートはデータ幅が異なる。入力ポートは重複ブランク再生部37から4画素分を受け取る。出力ポートはVideo出力に対して1画素分ずつ出力する。データ残量を示すステータスフラグを持っている。データ残量が無い:flagoutemptyデータ残量が半分以上:flagouthalfデータ残量がおおよそ満タン:flagoutalmostfull満タンとは2PortFIFO38の容量の約90程度である。アービタ13に既に渡してしまっている読出しアドレスに対応出来るだけの残量が必要となるためである。これらのステータスフラグはアービタ13に出力される。アービタ図36はアービタ13に入出力される信号の一例を示す図である。アービタ13は入力側バッファIFと出力側バッファIFから入力されるバッファのステータスフラグの状態を元に、入力側出力側どちらのバッファからの要求を受け付けるかを選択する。アービトレーションポリシーは下記の通りである。入力側2PortFIFO21を満タンにしてはいけない2PortFIFO21はなるべく半分以下を保つ2PortFIFO21が空ならアクセス不要アクセスするならなるべく連続アクセスになるようにする出力側2PortFIFO38を空にしてはいけない2PortFIFO38はなるべく半分以上を保つ2PortFIFO38が満タンならアクセス不要図37は、このアービトレーションポリシーに基づき生成されたアービトレーションテーブルの一例を示す。図37のステータスフラグの組み合わせでは、組み合わせた2つのフラグ2つあればが1であるとする。なお、アービタ13が入力側を選択するとはmemwrreqを1にすることを、出力側を選択するとはmemrdreqを1にすることをいう。No1:Flaginemptyが1であるため入力側はアクセス不要であり、Flagoutemptyが1なのでに着目して出力側を優先する。No2:Flaginemptyが1であるためA3により入力側はアクセス不要であり、出力側にはフラグがないが出力側を優先する。No3:Flaginemptyが1であるため入力側はアクセス不要であり、Flagouthalfが1であるがさらに画像データを蓄積するよう出力側を優先する。No4:Flaginemptyが1であるため入力側はアクセス不要であり、Flagoutalmostfullなのでアクセス不要だが出力側を優先して出力側を選択する。No5:入力側はフラグがないが、Flagoutemptyが1なのでに着目して出力側を優先する。No6:入力側も出力側もフラグがないので、B2に着目して出力側を優先して出力側を選択する。No7:入力側はフラグがないが、Flagouthalfが1なのでA2とに着目してさらに画像データを蓄積するよう出力側を優先する。No8:入力側はフラグがないが、Flagoutalmostfullが1なのでB3に着目して入力側を優先する。Flaginemptyがでるまで選択先を入力バッファ側11に固定することで、入力側バッファ11が空になるまで転送することができる。No9:Flaginhalfが1であるため入力側画像データは半分以上であり、Flagoutemptyが1なのでに着目して、出力側を優先する。Flagouthalf又はFlagoutaddremptyがでるまで出力側バッファに固定することで、出力側バッファ12が半分以上になるまで転送することができる。No10:Flaginhalfが1であるため入力側画像データは半分以上であり、出力側にはフラグがない出力側データが半分以下のでB2に着目して出力側を優先する。Flagouthalf又はFlagoutaddremptyがでるまで出力側に固定することで、出力側バッファ12が半分以上になるまで転送することができる。No11:Flaginhalfが1であるため入力側画像データは半分以上であり、Flagouthalfが1なので画像データが半分以上であるので、A2に着目して入力側を優先する。Flaginemptyがでるまで入力側に固定することで、入力側バッファ11が空になるまで転送することができる。No12:Flaginhalfが1であるため入力側画像データは半分以上であり、Flagoutalmostfullが1なので、出力側は画像データが必要でないため、A2に着目して入力側を優先する。Flaginemptyがでるまで入力側に固定することで、入力側バッファ11が空になるまで転送することができる。No13:FlaginfullかつFlagoutemptyなので、入力側も出力側もエラーとなるが、先に出力側バッファ12を満たすため出力側を選択する。No14:Flaginfullなので入力側のエラーとなり入力側を選択する。No15:Flaginfullなので入力側のエラーとなるため、Flagouthalfでも入力側を選択する。No16:Flaginfullなので入力側のエラーとなり、かつ、Flagoutalmostfullなので出力側は画像データが必要でないため、入力側を選択する。このようにアービタ13が入力側と出力側を選択することで連続転送が起こりやすくなる。例えば、No9及びNo10では、出力側バッファ12が半分以上になるまで転送し、No8、No11及びNo12では、入力側バッファ11が空になるまで転送する。したがって、読み込みのみ又は書込みのみの連続転送が起こることが期待できる。以上説明したように、本実施形態のLPJ200は、同じ読出しアドレスの連続読み出しを抑制し、読み出し不要な描画領域については不要な読み出しを抑制するので、画像データの読み出しを高速にすることができる。また、入力側バッファへの画像データの書き込みと、出力側バッファからの画像データの読み出しが継続するようにアービタが調停するので連続アクセスを生じやすくできる。"