(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
(実施の形態1)
以下、図面を参照して本発明の実施の形態1について説明する。
【0012】
図1は、本実施の形態に係る画像表示装置100の構成を示している。画像表示装置100は、レーザー光を光スキャナにより反射させ、垂直方向及び水平方向に往復走査することにより投影面に画像を表示(描画)するレーザースキャン方式の画像表示装置である。例えば、画像表示装置100は、自動車のウィンドシールドやコンバイナなど画像表示面である投影面に投影画像300を投影し表示する。
【0013】
図1に示すように、画像表示装置100は、映像入力部101、FPGA(Field Programmable Gate Array)110、マイコン120、フラッシュメモリ131及び132、DDR(Double Data Rate)メモリ133、レーザードライバ140、V軸スキャナドライバ150、H軸スキャナドライバ160、コンパレータ170、RGBレーザーダイオード200、垂直スキャナ210、水平スキャナ220を備えている。なお、表示する画像の垂直方向(縦方向、Y方向)をV(Vertical)軸方向とも称し、画像の水平方向(横方向、X方向)をH(Horizontal)軸方向とも称する。
【0014】
映像入力部101は、投影面に表示する映像データが入力され、入力された映像データはFPGA110に送出される。この映像データには、R(赤)G(緑)B(青)の3色の色信号が含まれている。例えば、映像入力部101は、カーナビゲーション装置など他の装置で生成された映像が入力されてもよいし、映像入力部101が映像データを生成してもよい。
【0015】
FPGA110及びマイコン120は、画像表示装置100の制御部102を構成し、画像表示に必要な各種制御を行う。FPGA110及びマイコン120により、レーザードライバ140、V軸スキャナドライバ150、H軸スキャナドライバ160を介して、RGBレーザーダイオード200、垂直スキャナ210、水平スキャナ220の動作を制御し、投影画像300を描画する。なお、FPGA110及びマイコン120の制御動作は、ハードウェア又はソフトウェアのいずれか、もしくはその両方によって実現されてもよい。
【0016】
FPGA110は、入力される映像データに基づいて、RGBの画像データを1ラインずつ出力し、また、垂直スキャナ210の往復動作を制御するためのV軸駆動信号を生成し、生成したV軸駆動信号を出力する。本実施の形態に係るFPGA110は、後述するように、コンパレータ170から得られる水平スキャナ220のH軸検出パルス信号に基づき、ライン毎の画像のずれを抑えるように画像の描画位置を設定し、設定した位置でレーザードライバ140を駆動させ描画を行う。
【0017】
マイコン120は、水平スキャナ220の往復動作を制御するためのH軸駆動信号を生成し、生成したH軸駆動信号を出力する。フラッシュメモリ131及び132は、それぞれFPGA110及びマイコン120の動作に必要なデータやプログラムなどを記憶する不揮発性記憶部である。
【0018】
DDR(Double Data Rate)メモリ133は、FPGA110に入力される映像データを一時的に保存するフレームバッファである。DDRメモリ133は、DDR2やDDR3、その他のSDRAMでもよい。
【0019】
レーザードライバ140は、FPGA110から供給される画像データに応じて、RGBレーザーダイオード200を駆動する。レーザードライバ140は、FPGA110が決定した画像表示位置に対応するタイミングで、画像データに基づきRGBレーザーダイオード200を駆動する光源駆動部である。RGBレーザーダイオード200は、レーザードライバ140の駆動により、RGBの3色のレーザー光を発光する。RGBレーザーダイオード200は、光束であるレーザー光を出力する光源部である。
【0020】
V軸スキャナドライバ150は、FPGA110から供給されるV軸駆動信号に応じて、垂直スキャナ210を往復駆動する。H軸スキャナドライバ160は、マイコン120から供給されるH軸駆動信号に応じて、水平スキャナ220を往復駆動する。
【0021】
垂直スキャナ210または水平スキャナ220は、垂直または水平方向に往復動作を繰り返す走査部である。垂直スキャナ210は、RGBレーザーダイオード200から照射されたレーザー光を反射し、V軸スキャナドライバ150の駆動により垂直方向に往復動作する光スキャナである。水平スキャナ220は、RGBレーザーダイオード200から照射されたレーザー光を反射し、H軸スキャナドライバ160の駆動により水平方向に往復動作する光スキャナである。また、水平スキャナ220は、水平方向の往復動作を検出する走査検出部202を含み、検出した往復動作を示すH軸検出アナログ信号を出力する。走査検出部202は、往復動作の往路または復路のラインである走査単位ごとに水平スキャナ220の動作範囲を検出する。
【0022】
この例では、水平スキャナ220が、RGBレーザーダイオード200からのレーザー光を反射し、垂直スキャナ210が、水平スキャナ220からの反射光をさらに反射することで、投影面へ投影画像300を描画している。垂直スキャナ210及び水平スキャナ220が、垂直方向及び水平方向に往復走査する光スキャナ201を構成しているとも言える。例えば、垂直スキャナ210と水平スキャナ220を1つの2軸(2次元)光スキャナとしてもよい。
【0023】
コンパレータ170は、水平スキャナ220が出力したH軸検出アナログ信号を、FPGA110で処理可能なH軸検出パルス信号に変換する信号変換部である。
【0024】
図2及び
図3は、水平スキャナ220の構成例であり、水平スキャナ220をミラー側から見た正面図である。なお、垂直スキャナ210についても水平スキャナ220と同様に構成してもよい。
【0025】
水平スキャナ220(及び垂直スキャナ210)である光スキャナは、MEMS(Micro Electro Mechanical Systems)技術により作成されたMEMS素子である。例えば、水平スキャナ220は、PZT(チタン酸ジルコン酸鉛)膜などの圧電膜を含むSOI(Silicon On Insulator)基板をエッチングして形成されている。
【0026】
図2及び
図3に示すように、水平スキャナ220は、本体の枠を構成する枠体221、枠体221の枠内において枠体221から離間した状態で支持された揺動片部222、枠体221の内縁と揺動片部222とを繋ぐ4つのL型梁部223a〜223d、揺動片部222の表面に形成されたMEMSミラー224を備えている。MEMSミラー224は、反射率の高い金属(例えばAlやAu)を蒸着することにより形成されている。
【0027】
L型梁部223a〜223dは、揺動片部222の水平方向中央に近接した位置において揺動片部222と連結されており、この連結部を揺動軸として揺動片部222及びMEMSミラー224が水平方向に揺動可能となっている。L型梁部223a〜223dは、揺動片部222を揺動可能に支持するトーションバーを構成しているとも言える。
【0028】
さらに、4つL型梁部223a〜233dにおいて、水平方向に延びる複数の圧電膜が配置されている。例えば、圧電膜は、下部電極と上部電極との間に圧電体膜を挟んだ積層構造である。
【0029】
図2の例では、L型梁部223a及び223bに、H軸駆動信号が供給される駆動用圧電膜225a及び225bがそれぞれ配置され、L型梁部223a及び223bと対向するL型梁部223c及び223dに、MEMSミラー224(揺動片部222)の動作を検出する検出用圧電膜226a及び226bがそれぞれ配置されている。
【0030】
また、
図3の例では、L型梁部223a〜223dに、駆動用圧電膜及び検出用圧電膜のペア(225a及び226a、225b及び226b、225c及び226c、225d及び226d)がそれぞれ配置されている。
【0031】
図2の駆動用圧電膜225a及び225b、または
図3の駆動用圧電膜225a〜225dにH軸駆動信号を供給すると、H軸駆動信号に応じて駆動用圧電膜225a及び225b、または225a〜225dが振動し、この振動がL型梁部223a及び223b、または223a〜223dを介して揺動片部222に伝達され、揺動片部222及びMEMSミラー224が揺動する。
【0032】
また
図2の、検出用圧電膜226a及び226b、または
図3の検出用圧電膜226a〜226dは、走査検出部202であり、揺動片部222及びMEMSミラー224の振動を検出し、検出する振動に応じたH軸検出アナログ信号を出力する。検出用圧電膜226a及び226b、または226a〜226dから得られるH軸検出アナログ信号に対して所定の位相差をもったH軸駆動信号を駆動用圧電膜225a及び225b、または225a〜225dにフィードバックすることにより、揺動片部222及びMEMSミラー224を共振駆動させることができる。
【0033】
図4は、本実施の形態に係るFPGA110の機能ブロックを示している。
図4に示すように、FPGA110は、入力インタフェース111、DDRインタフェース112、画像処理部113、映像出力部114、PLL(Phase Locked Loop)115、描画位置制御部116、V軸駆動処理部117を備えている。
【0034】
入力インタフェース111は、映像入力部101との間のインタフェースであり、映像入力部101から入力された映像データを受け取り、受け取った映像データをDDRインタフェース112へ出力する。
【0035】
DDRインタフェース112は、DDRメモリ133との間のインタフェースであり、入力インタフェース111が受け取った映像データをDDRメモリ133に一時的に保存し、さらに、DDR133に保存した映像データを内部クロックに従って取り出す。
【0036】
DDRインタフェース112は、DDRメモリ133へ映像データ(画像データ)をフレーム単位に書き込み、内部クロックと同期してDDRメモリ133から1フレームに含まれる水平方向の1ラインずつ読み出す。また、水平スキャナ220の往復動作における往路及び復路で描画を行うため、DDRインタフェース112は、往路で描画する往路ラインの場合、順方向のアドレス順に画像データを読み出し、復路で描画する復路ラインの場合、逆方向のアドレス順に画像データを読み出すことで、往路及び復路の画像データの並び替えを行う。
【0037】
画像処理部113は、DDRインタフェース112がDDR133から取り出した画像データに対し、アスペクト比の変更やブライトコントロールなど、必要な画像処理を行う。映像出力部(画像出力部)114は、画像処理部113により画像処理された画像データをレーザードライバ140へ出力する。映像出力部114は、H軸検出波形とV軸駆動信号より生成された描画位置クロック(ピクセルクロック)、HSync(H軸同期信号)とVSync(V軸同期信号)を利用して描画位置を決定し、決定した描画位置のタイミングで、画像データを1ラインずつ出力する。
【0038】
PLL115は、外部クロック180が入力され、この外部クロック180に基づいて内部クロックを生成し、生成した内部クロックを各ブロックへ供給する。
【0039】
描画位置制御部(クロック生成部)116は、水平スキャナ220とレーザー描画の同期とるため、PLL115が生成した内部クロックに基づいて、ピクセルクロックを生成する。例えば、ピクセルクロックは、後述のピクセルカウンタに同期したクロックである。描画位置制御部116は、H軸検出パルス信号とV軸駆動信号に基づいて描画位置を決定するピクセルクロック、HSync、VSyncを生成する。描画位置制御部116は、H軸検出パルス信号のエッジ位置からカウンタのカウントを開始し、カウントしたカウンタ値により描画エリアを決定する。描画位置制御部116は、走査検出部202により検出された水平スキャナ220の動作範囲と基準範囲とのずれに基づいて、ラインごとに画像表示位置を決定する表示位置決定部である。
【0040】
V軸駆動処理部117は、HSync及びVSyncに基づいてV軸駆動信号を生成し、生成したV軸駆動信号をV軸スキャナドライバ150へ出力する。例えば、VGA(Video Graphics Array)で表示する場合、垂直走査周波数は60Hzであり、60Hzで垂直スキャナ210を垂直方向に揺動させるようにV軸駆動信号を出力する。
【0041】
図5は、本実施の形態に係るH軸検出アナログ信号及びH軸検出パルス信号の一例を示している。H軸検出アナログ信号は、水平方向の両側で駆動する水平スキャナ220に配置された片側の圧電膜(例えば、
図2の226a及び226b、または
図3の226a〜226d)によって検出された波形である。
【0042】
図5に示すように、H軸検出アナログ信号は、水平スキャナ220のMEMSミラー224の向きに応じたアナログ波形である。このため、そのままではFPGA110でH軸検出アナログ信号を処理することができない。そこで、本実施の形態では、コンパレータ170等を利用してH軸検出アナログ信号をパルス状の矩形波に変換し、H軸検出パルス信号としてFPGA110へ入力している。
【0043】
本実施の形態では、MEMSミラー224が最大角度振った位置にエッジがくるようにH軸検出パルス信号を生成する。例えば、H軸検出アナログ信号の最小値(最小ピーク時)及び最大値(最大ピーク時)ごとに立ち上り/立ち下りを繰り返すようにH軸検出パルス信号を生成する。そして、H軸パルス信号のエッジに挟まれたエッジ間の領域に、水平方向の描画エリアを設定する。
【0044】
次に、本実施の形態の主要な特徴である描画位置制御方法について説明する。
【0045】
レーザースキャン方式の画像表示装置では、描画を行う時に、圧電膜などの検出回路から出力されるMEMSミラー224の動作を検出したH軸検出波形(H軸検出パルス信号)をFPGA110に取り込み描画タイミングの基準信号として利用をしている。
【0046】
しかし、振動や電気的な影響によりMEMSミラー224の動作が変化した場合、H軸検出パルス信号も同様に変化する事になる。FPGA110では、H軸検出パルス信号のエッジ間隔をカウントしているため、このH軸検出パルス信号の周波数変化によって、FPGA110内のカウント数がずれる事で描画タイミングにずれが生じて、描画される投影画像300のライン毎のずれに繋がる。本実施の形態では、この問題を以下で説明するように改善する。
【0047】
まず、
図6A及び
図6Bを用いて、MEMSミラーの動作が変化しない場合の理想的な検出パルス信号の動作について説明する。例えば、
図6A及び
図6Bは、参考例の動作であり、
図1〜
図3、
図5と同様の構成による例である。
【0048】
図6A及び
図6Bに示すように、理想的には、H軸検出パルス信号は常に一定周期の検出波形、すなわち、同じエッジ間隔(立ち上りエッジと次の立ち下りエッジまでの間隔、立ち下りエッジと次の立ち上りエッジまでの間隔)でHigh/Lowを繰り返す矩形波である。
【0049】
FPGA110は、H軸検出パルス信号のエッジ間隔をドット(ピクセル)に同期した内部クロックでカウントしており、H軸検出パルス信号が一定周期のため、クロックカウンタ(clk_cnt)のカウンタ値は一定の値となる。ここでは、一例として、エッジ間隔を20カウントとし、カウンタ値=1〜20が繰り返される。なお、説明簡略化のため、カウンタ値=1からカウントを開始するが、カウンタ値=0からカントを開始してもよい(以下でも同様)。
【0050】
ここでは、一例として、カウンタ値6〜15の間を描画エリアとして設定する。そうすると、描画エリアを設定するHSyncは、往路及び復路のラインのそれぞれでカウンタ値6のタイミングで立ち上り、カウンタ値15のタイミングで立ち下りを繰り返す波形となる。
【0051】
その結果、この往路ライン及び復路ラインの繰り返しにより描画される投影画像300の描画エリアはA1の領域となる。
図6A及び
図6Bでは、H軸検出パルス信号が一定周期であり、HSyncも一定周期であるため、描画エリアA1は、ラインごとに描画位置がずれることはなく、垂直方向の縦ラインは一直線となる。
【0052】
次に、
図7A及び
図7Bを用いて、本実施の形態の適用前の参考例における、MEMSミラーの動作が変化する場合の検出パルス信号の例について説明する。例えば、
図7A及び
図7Bは、参考例の動作であり、
図1〜
図3、
図5と同様の構成による例である。
【0053】
図7A及び
図7Bに示すように、MEMSミラー224の動作が一定ではない場合、H軸検出パルス信号は周波数(エッジ間隔)が一定ではなく変化した波形となる。このH軸検出パルス信号をFPGA110に取り込みエッジ間隔をカウントすると、エッジ間隔ごとにクロックカウンタのカウンタ値が変動する。
【0054】
MEMSミラー224の振れが理想的な基準よりも足りない場合、H軸検出パルス信号のエッジ間隔が狭くなるため、カウンタ値が小さくなり、また、MEMSミラー224が理想的な基準よりも振れすぎた場合、H軸検出パルス信号のエッジ間隔が広くなるため、カウンタ値が大きくなる。例えば、往路ライン1は20カウント、復路ライン2は18カウント、往路ライン3は22カウント、復路ライン4は20カウントである。
【0055】
カウンタ値6〜15の間を描画エリアとして設定すると、描画エリアを設定するHSyncは、エッジ間隔(カウント数)が変動する往路及び復路のラインごとに、カウンタ値6のタイミングで立ち上り、カウンタ値15のタイミングで立ち下りを繰り返す波形となる。
【0056】
その結果、この往路ライン及び復路ラインの繰り返しにより描画される投影画像300の描画エリアはA2の領域となる。
図7A及び
図7Bでは、H軸検出パルス信号の周期(エッジ間隔)が変動し、HSyncの周期も変動するため、描画エリアA2は、ラインごとに描画位置がずれてしまう。実施の形態適用前では、H軸検出パルス信号のカウンタ値を基準に描画するタイミング波形(HSync)を生成し描画を行っているため、往路ラインと復路ラインでのカウント数が異なった場合、描画エリアの縦のラインにずれが生じてしまう。
【0057】
次に、
図8A及び
図8Bを用いて、本実施の形態の適用後における、MEMSミラーの動作が変化する場合の検出パルス信号の例について説明する。
図8A及び
図8Bは、
図1〜
図5で説明した本実施の形態の構成における動作である。
【0058】
本実施の形態では、H軸検出パルス信号のエッジ間隔(1ライン)の基準となるライン基準値を設定する。カウンタ値がライン基準値より小さい場合、次のラインでカウントを開始するスタートカウンタ値として、ライン基準値から算出した値を利用する。また、カウンタ値がライン基準値より大きい場合、余分にカウントした分を次のラインでもカウントを続け、または、カウントを停止し、ライン基準値のカウントのスタート位置と同じ位置からカウントをスタートする。
【0059】
ライン基準値は、理想とするMEMSミラー224の振れ幅であり、ここでは、複数のラインをカウントしたカウント数(またはカウンタ値)の平均値である。例えば、画像データ表示前のブランキングエリア内でMEMSミラー224からのH軸検出パルス信号のエッジ間隔をカウントし、8ライン分を平均してライン基準値を設定する。
【0060】
例えば、1ライン=20カウント、2ライン=18カウント、3ライン=22カウント、4ライン=20カウント、5ライン=18カウント、6ライン=20カウント、7ライン=20カウント、9ライン=22カウントの場合、平均値である20カウントを1フレーム内のライン基準値とする。そして、10ライン以降は、このライン基準値に基づいてカウンタ値を設定する。
【0061】
図8A及び
図8Bでは、
図7A及び
図7Bと同様に、H軸検出パルス信号の周波数(エッジ間隔)が一定ではなく変化した波形となっている。このH軸検出パルス信号のエッジ間隔を内部クロックに合わせてカウントすると、エッジ間隔ごとにクロックカウンタ(clk_cnt)のカウンタ値が変動する。このため、本実施の形態では、ライン基準値を設定し、次のラインに移った時のスタートカウントがライン基準値のカウントと同じ位置となるように、スタートカウンタ値を設定する。
【0062】
H軸検出パルス信号を常にカウンタ値=1からカウントするクロックをクロックカウンタ(clk_cnt)と称し、ライン基準値に基づいて設定されたスタートカウンタ値からカウントするクロックをピクセルカウンタ(pix_cnt)と称する。
【0063】
図8A及び
図8Bでは、
図7A及び
図7Bと同様に、例えば、往路ライン1は20カウント(clk_cnt=1〜20)、復路ライン2は18カウント(clk_cnt=1〜18)、往路ライン3は22カウント(clk_cnt=1〜22)、復路ライン4は20カウント(clk_cnt=1〜20)である。
【0064】
MEMSミラー224の振れが基準値よりも足りない例として、例えば、復路ライン2では、18カウントのため、ライン基準値の20カウントよりも小さく、MEMSミラー224の振れが足りない。この例では、水平方向の左端がライン基準値よりも短い。この場合、ライン基準値の20カウントからピクセルカウンタのカウンタ値(pix_cnt=18)を差し引いて差分値(20−18=2)を求める。次のラインでは、この差分値のドット分(基準値より不足した分)だけタイミングをずらすために、カウンタの最小値=1にこの差分値を加えた値(1+2=3)を、次の往路ライン3のスタートカウンタ値とする。すなわち、カウンタ値がライン基準値よりも小さい場合、カウンタ値とライン基準値との差分に基づいてカウンタ値を増加させることで、次のラインのエッジから描画エリアまでの間隔を短くする。これにより、復路ライン2のカウンタ値6〜15と、往路ライン3のカウンタ値6〜15とで、垂直方向の位置が等しくなる。
【0065】
また、MEMSミラー224が基準値よりも振れすぎている例として、往路ライン3では、22カウントのため、ライン基準値の20カウントよりも大きく、MEMSミラー224が振れすぎている。この例では、水平方向の右端がライン基準値よりも長い。この場合、ピクセルカウンタがエッジまでカウントしたカウンタ値(pix_cnt=24)からライン基準値の20カウントを差し引いて差分値(24−20=4)を求める。次のラインでは、この差分値のドット分(基準値を超えた分)だけタイミングをずらすために、次の復路ライン4で、差分値のカウント分の次の位置(4+1=5カウント目)からカウントを開始する。すなわち、カウンタ値がライン基準値よりも大きい場合、カウンタ値とライン基準値との差分に基づいてカウントの開始を遅らせることで、次のラインのエッジから描画エリアまでの間隔を長くする。これにより、往路ライン3のカウンタ値6〜15と、復路ライン4のカウンタ値6〜15とで、垂直方向の位置が等しくなる。
【0066】
例えば、このとき、差分値のカウント分の間はカウンタ値を進めず、次のラインに移ってからも、止めたカウント値の4カウント分、カウント値を1のままで停止した後、通常のカウントを1から始める。また、次のラインでカウントを開始するまで、カウンタを止めずにカウントし続けてもよい。
【0067】
このような制御により、描画エリアを設定するHSyncは、エッジ間隔(カウント数)が変動する往路及び復路のラインごとに、補正されたカウンタ値6のタイミングで立ち上り、補正されたカウンタ値15のタイミングで立ち下りを繰り返す波形となる。
【0068】
その結果、この往路ライン及び復路ラインの繰り返しにより描画される投影画像300の描画エリアはA3の領域となる。
図8A及び
図8Bでは、H軸検出パルス信号のエッジ間隔と基準値との差分に基づいてカウンタを制御することにより、先のラインの描画エリアから終端までの距離と、次のラインの先頭から描画エリアまでの距離を等しくできる。すなわち、本実施の形態では、縦のラインにおいて描画エリアが一致するように、基準とするカウンタ値とMEMSミラーの検出パルス信号からのカウント値に基づいて、カウント値を制御する事で、描画エリア範囲を一定に保つ事ができ、縦ラインのずれを無くす事ができる。
【0069】
ここで、ライン基準値の設定値についてさらに説明する。上記では、複数のラインをカウントした平均値によりライン基準値を決定した。例えば、1フレーム内の8ラインの平均値をライン基準値とした。しかし、ライン基準値が奇数であると、1ドットの描画ずれが起きてしまう為、ライン基準値は常に偶数になるよう決定することが好ましい。
【0070】
図9は、ライン基準値を奇数に設定した例を示している。
図9は、ライン基準値を21とし、カウンタ値6〜15の間を描画エリアとした例である。この場合、往路ライン及び復路ラインの繰り返しにより描画される投影画像300の描画エリアはA4の領域となる。
【0071】
図9のように、ライン基準値を奇数に設定すると、往路ラインにおける描画位置(カウンタ値6〜15)と、復路ラインにおける描画位置(カウンタ値6〜15)とが1ドットずれてしまい、往路と復路が互い違いになってしまう。このため、本実施の形態では、ライン基準値を常に偶数に設定することで、往路と復路のずれを防止する。例えば、平均値が21の場合、基準値を20または22に設定する。
【0072】
次に、
図8A及び
図8Bで説明した、本実施の形態の動作を実現するための構成例について説明する。
図10は、描画位置制御部116の機能ブロックの一例であり、
図11は描画位置制御部116のフローチャートの一例である。なお、その他の構成により
図8A及び
図8Bの動作を実現してもよい。
【0073】
図10に示すように、描画位置制御部116は、カウンタ11、ライン基準値設定部12、描画位置決定部13、ラインずれ判定部14、ラインずれ補正部15を備えている。
【0074】
カウンタ11は、H軸検出パルス信号のエッジ間隔をカウントするカウンタである。カウンタ11は、
図8A及び
図8Bのクロックカウンタ及びピクセルカウンタを含んでいる。ライン基準値設定部12、1ラインのカウンタの基準値となるライン基準値を設定する。
【0075】
描画位置決定部13は、カウンタ11の値に基づいて、描画位置(描画エリア)を決定する。ラインずれ判定部14、カウンタ11の値とライン基準値とを比較しラインのずれを判定する。ラインずれ補正部15、判定されたラインのずれを補正するため、
図8A及び
図8Bのようにスタートカウンタ値を補正やカウンタの停止を行う。
【0076】
図11に示すように、描画位置制御部116に、H軸検出パルス信号の入力が開始されると(S101)、まず、ライン基準値設定部12がライン基準値を設定する。上記のように、カウンタ11がH軸検出パルス信号のエッジ間隔を複数回カウントした後、ライン基準値設定部12は、カウンタ値の平均値を求めてライン基準値を設定する。特に、ライン基準値設定部12は、上記のようにライン基準値が偶数となるように設定する。
【0077】
続いて、カウンタ11は、MEMSミラーの走査範囲をカウントする(S103)。カウンタ11は、内部クロックに同期して、
図8A及び
図8Bのように、クロックカウンタ(clk_cnt)、ピクセルカウンタ(pix_cnt)により、H軸検出パルス信号のエッジ間隔をカウントする。
【0078】
続いて、描画位置決定部13は、カウンタ値に基づいて描画位置を決定する。例えば、描画位置決定部13は、カウンタ値5〜14の間を描画エリアとして設定し、カウンタ値5のタイミングで立ち上り、カウンタ値14のタイミングで立ち下りを繰り返すHSyncを生成する。
【0079】
続いて、ラインずれ判定部14は、カウンタ値とライン基準値とを比較する(S105)。カウンタ値とライン基準値とが等しい場合は、ラインにずれは無いため、そのままカウント及び描画位置決定を行う(S103、S104)。
【0080】
カウンタ値がライン基準値よりも小さい場合、
図8A及び
図8Bのように、ライン基準値とカウンタ値の差分に基づいて、描画エリアの位置を補正するようにスタートカウンタ値を設定する(S106)。その後、設定したスタートカウンタ値により、カウントを開始し、描画位置を決定する(S103、S104)。
【0081】
カウンタ値がライン基準値よりも大きい場合、
図8A及び
図8Bのように、カウンタ値とライン基準値との差分に基づいて、描画エリアの位置を補正するようにカウントの開始を待つ(S107)。その後、ライン基準値と差がない場合のタイミングに合わせて、カウントを開始し、描画位置を決定する(S103、S104)。
【0082】
以上のように、本実施の形態では、レーザースキャン方式の画像表示装置において、光スキャナに設けられた圧電膜によりMEMSミラーの動作を検出し、この検出した動作範囲と基準範囲とのずれに基づいて、描画位置を補正することとした。これにより、MEMSミラーの動作変動による検出波形の変化がもたらす描画位置のずれを補正し、常に一定の場所に描画エリアを設定する事でライン毎の描画ずれを防止することができる。特に、描画位置を設定するカウント値を常に一定ではなく、基準に対して一定になるように設定することで、ライン毎の描画位置のずれを無くし、描画ずれを防止することができる。
【0083】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。