(57)【要約】【課題】処理負荷を低減した画像処理技術を提供する。【解決手段】画像処理装置は、画像のうちｋ行分のデータ（ｋは、Ｏｍａｘ＜ｋ＜ｒを満たす自然数であり、Ｏｍａｘは表示部に対してあらかじめ設定されたオフセット最大値である）に相当する記憶領域を有する記憶部と、記憶部に記憶されているデータのうち第１カウンターにより指定される行に属する画素のデータに対して、当該画素に対応するオフセットベクトルで指定される位置関係にある画素のデータを用いた補正をする補正部と、補正部により補正されたデータを出力する出力部と、画像のうち第２カウンターで指定される行のデータを、記憶部のうち対応する記憶領域に書き込む書き込み部とを有する。【選択図】図２
2015227913.tif 000002
【特許請求の範囲】
【請求項１】
ｒ行ｃ列の画素を有する表示部に表示される画像を処理する画像処理装置であって、
前記画像のうちｋ行分のデータ（ｋは、Ｏｍａｘ＜ｋ＜ｒを満たす自然数であり、Ｏｍａｘは前記表示部に対してあらかじめ設定されたオフセット最大値である）に相当する記憶領域を有する記憶部と、
前記記憶領域のうちデータ読み出しの基準となる行を指定する第１カウンターを記憶する第１カウンター記憶部と、
前記記憶領域のうちデータ書き込みの基準となる行を指定するカウンターであって、前記第１カウンターの値に所定値を加算した値を有する第２カウンターを記憶する第２カウンター記憶部と、
前記記憶部に記憶されているデータのうち前記第１カウンターにより指定される行に属する画素のデータに対して、当該画素に対応するオフセットベクトルで指定される位置関係にある画素のデータを用いた補正をする補正部と、
前記補正部により補正されたデータを出力する出力部と、
前記画像のうち前記第２カウンターで指定される行のデータを、前記記憶部のうち対応する記憶領域に書き込む書き込み部と
を有する画像処理装置。
【請求項２】
前記表示部に対して、正方向側のオフセット最大値および負方向側のオフセット最大値がそれぞれ個別に設定されており、
前記ｏｍａｘは、前記正方向側のオフセット最大値および前記負方向側のオフセット最大値のうち大きい方の値を有する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記所定値は、少なくとも前記正方向側のオフセット最大値より大きい
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記補正部は、前記オフセットベクトルで指定される位置関係にあるｍ行ｎ列の画素のデータを用いて前記補正を行い、
（Ｏｍａｘ＋ｍ／２）＜ｋ＜ｒである
ことを特徴とする請求項１ないし３のいずれか一項に記載の画像処理装置。
【請求項５】
前記補正部は、前記ｍ行ｎ列の画素のデータを補間したデータを用いて前記補正を行う
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
ｒ行ｃ列の画素を有し、画像を表示する表示部と、
前記画像のうちｋ行分のデータ（ｋは、Ｏｍａｘ＜ｋ＜ｒを満たす自然数であり、ｏｍａｘは前記表示部に対してあらかじめ設定されたオフセット最大値である）に相当する記憶領域を有する記憶部と、
前記記憶領域のうちデータ読み出しの基準となる行を指定する第１カウンターを記憶する第１カウンター記憶部と、
前記記憶領域のうちデータ書き込みの基準となる行を指定するカウンターであって、前記第１カウンターの値に所定値を加算した値を有する第２カウンターを記憶する第２カウンター記憶部と、
前記記憶部に記憶されているデータのうち前記第１カウンターにより指定される行に属する画素のデータに対して、当該画素に対応するオフセットベクトルで指定される位置関係にある画素のデータを用いた補正をする補正部と、
前記補正部により補正されたデータを出力する出力部と、
前記画像のうち前記第２カウンターで指定される行のデータを、前記記憶部のうち対応する記憶領域に書き込む書き込み部と
を有する表示装置。
【請求項７】
ｒ行ｃ列の画素を有する表示部と、前記表示部に表示される画像のうちｋ行分のデータ（ｋは、Ｏｍａｘ＜ｋ＜ｒを満たす自然数であり、ｏｍａｘは前記表示部に対してあらかじめ設定されたオフセット最大値である）に相当する記憶領域を有する記憶部と、前記記憶領域のうちデータ読み出しの基準となる行を指定する第１カウンターを記憶する第１カウンター記憶部と、前記記憶領域のうちデータ書き込みの基準となる行を指定するカウンターであって、前記第１カウンターの値に所定値を加算した値を有する第２カウンターを記憶する第２カウンター記憶部とを有する表示装置における画像処理方法であって、
前記記憶部に記憶されているデータのうち前記第１カウンターにより指定される行に属する画素のデータに対して、当該画素に対応するオフセットベクトルで指定される位置関係にある画素のデータを用いた補正をするステップと、
前記補正されたデータを出力するステップと、
前記画像のうち前記第２カウンターで指定される行のデータを、前記記憶部のうち対応する記憶領域に書き込むステップと
を有する画像処理方法。
【請求項８】
ｒ行ｃ列の画素を有する表示部と、前記表示部に表示される画像のうちｋ行分のデータ（ｋは、Ｏｍａｘ＜ｋ＜ｒを満たす自然数であり、Ｏｍａｘは前記表示部に対してあらかじめ設定されたオフセット最大値である）に相当する記憶領域を有する記憶部と、前記記憶領域のうちデータ読み出しの基準となる行を指定する第１カウンターを記憶する第１カウンター記憶部と、前記記憶領域のうちデータ書き込みの基準となる行を指定するカウンターであって、前記第１カウンターの値に所定値を加算した値を有する第２カウンターを記憶する第２カウンター記憶部とを有するコンピューターに、
前記記憶部に記憶されているデータのうち前記第１カウンターにより指定される行に属する画素のデータに対して、当該画素に対応するオフセットベクターで指定される位置関係にある画素のデータを用いた補正をするステップと、
前記補正されたデータを出力するステップと、
前記画像のうち前記第２カウンターで指定される行のデータを、前記記憶部のうち対応する記憶領域に書き込むステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を補正する技術に関する。
【背景技術】
【０００２】
プロジェクターにおいては、スクリーンと投写系との位置関係が理想的な状態からずれると、スクリーンに投写される画像が歪む。この歪みを解消するため、入力映像に対してこれと逆の歪みを与える画像処理が用いられている。この画像処理は入力映像のデータに対しランダムアクセスを必要とする。そのため、一般にはフレームバッファー（フレームメモリー）に１フレーム分の入力映像を記憶させ、フレームバッファーに記憶されたデータを用いて画像処理が行われる。しかし、フレームバッファーを用いると、大容量のメモリーが必要になりコストが増加してしまうという問題がある。この問題に対処するため、フレームバッファーではなくラインバッファーを用いる技術が知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−６６１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術においては、補正に用いられる画素を含む行を選択してラインバッファーに記憶しており、処理の負荷が大きいという問題があった。
【０００５】
これに対し本発明は、より処理負荷を低減した画像処理技術を提供する。
【課題を解決するための手段】
【０００６】
本発明は、ｒ行ｃ列の画素を有する表示部に表示される画像を処理する画像処理装置であって、前記画像のうちｋ行分のデータ（ｋは、Ｏｍａｘ＜ｋ＜ｒを満たす自然数であり、Ｏｍａｘは前記表示部に対してあらかじめ設定されたオフセット最大値である）に相当する記憶領域を有する記憶部と、前記記憶領域のうちデータ読み出しの基準となる行を指定する第１カウンターを記憶する第１カウンター記憶部と、前記記憶領域のうちデータ書き込みの基準となる行を指定するカウンターであって、前記第１カウンターの値に所定値を加算した値を有する第２カウンターを記憶する第２カウンター記憶部と、前記記憶部に記憶されているデータのうち前記第１カウンターにより指定される行に属する画素のデータに対して、当該画素に対応するオフセットベクトルで指定される位置関係にある画素のデータを用いた補正をする補正部と、前記補正部により補正されたデータを出力する出力部と、前記画像のうち前記第２カウンターで指定される行のデータを、前記記憶部のうち対応する記憶領域に書き込む書き込み部とを有する画像処理装置を提供する。
【０００７】
この画像処理装置によれば、補正に用いられる画素を含む行を選択してラインバッファーにデータを書き込む場合と比較して処理を軽減することができる。
【０００８】
前記表示部に対して、正方向側のオフセット最大値および負方向側のオフセット最大値がそれぞれ個別に設定されており、前記ｏｍａｘは、前記正方向側のオフセット最大値および前記負方向側のオフセット最大値のうち大きい方の値を有してもよい。
【０００９】
この画像処理装置によれば、記憶部が正方向側のオフセット最大値および負方向側のオフセット最大値のうち大きい方よりも少ない行数の記憶領域を有する場合と比較して、より適切に補正を行うことができる。
【００１０】
前記所定値は、少なくとも前記正方向側のオフセット最大値より大きくてもよい。
【００１１】
この画像処理装置によれば、所定値が正方向側のオフセット最大値以下である場合と比較して、より適切に補正を行うことができる。
【００１２】
前記補正部は、前記オフセットベクトルで指定される位置関係にあるｍ行ｎ列の画素のデータを用いて前記補正を行い、（Ｏｍａｘ＋ｍ／２）＜ｋ＜ｒであってもよい。
【００１３】
この画像処理装置によれば、ｍ行ｎ列の画素のデータを用いて補正を行うことができる。
【００１４】
前記補正部は、前記ｍ行ｎ列の画素のデータを補間したデータを用いて前記補正を行ってもよい。
【００１５】
この画像処理装置によれば、ｍ行ｎ列の画素のデータを補間したデータを用いて補正を行うことができる。
【００１６】
また、本発明は、ｒ行ｃ列の画素を有し、画像を表示する表示部と、前記画像のうちｋ行分のデータ（ｋは、Ｏｍａｘ＜ｋ＜ｒを満たす自然数であり、ｏｍａｘは前記表示部に対してあらかじめ設定されたオフセット最大値である）に相当する記憶領域を有する記憶部と、前記記憶領域のうちデータ読み出しの基準となる行を指定する第１カウンターを記憶する第１カウンター記憶部と、前記記憶領域のうちデータ書き込みの基準となる行を指定するカウンターであって、前記第１カウンターの値に所定値を加算した値を有する第２カウンターを記憶する第２カウンター記憶部と、前記記憶部に記憶されているデータのうち前記第１カウンターにより指定される行に属する画素のデータに対して、当該画素に対応するオフセットベクトルで指定される位置関係にある画素のデータを用いた補正をする補正部と、前記補正部により補正されたデータを出力する出力部と、前記画像のうち前記第２カウンターで指定される行のデータを、前記記憶部のうち対応する記憶領域に書き込む書き込み部とを有する表示装置を提供する。
【００１７】
この表示装置によれば、補正に用いられる画素を含む行を選択してラインバッファーにデータを書き込む場合と比較して処理を軽減することができる。
【００１８】
さらに、本発明は、ｒ行ｃ列の画素を有する表示部と、前記表示部に表示される画像のうちｋ行分のデータ（ｋは、Ｏｍａｘ＜ｋ＜ｒを満たす自然数であり、ｏｍａｘは前記表示部に対してあらかじめ設定されたオフセット最大値である）に相当する記憶領域を有する記憶部と、前記記憶領域のうちデータ読み出しの基準となる行を指定する第１カウンターを記憶する第１カウンター記憶部と、前記記憶領域のうちデータ書き込みの基準となる行を指定するカウンターであって、前記第１カウンターの値に所定値を加算した値を有する第２カウンターを記憶する第２カウンター記憶部とを有する表示装置における画像処理方法であって、前記記憶部に記憶されているデータのうち前記第１カウンターにより指定される行に属する画素のデータに対して、当該画素に対応するオフセットベクトルで指定される位置関係にある画素のデータを用いた補正をするステップと、前記補正されたデータを出力するステップと、前記画像のうち前記第２カウンターで指定される行のデータを、前記記憶部のうち対応する記憶領域に書き込むステップとを有する画像処理方法を提供する。
【００１９】
この画像処理方法によれば、補正に用いられる画素を含む行を選択してラインバッファーにデータを書き込む場合と比較して処理を軽減することができる。
【００２０】
さらに、本発明は、ｒ行ｃ列の画素を有する表示部と、前記表示部に表示される画像のうちｋ行分のデータ（ｋは、Ｏｍａｘ＜ｋ＜ｒを満たす自然数であり、Ｏｍａｘは前記表示部に対してあらかじめ設定されたオフセット最大値である）に相当する記憶領域を有する記憶部と、前記記憶領域のうちデータ読み出しの基準となる行を指定する第１カウンターを記憶する第１カウンター記憶部と、前記記憶領域のうちデータ書き込みの基準となる行を指定するカウンターであって、前記第１カウンターの値に所定値を加算した値を有する第２カウンターを記憶する第２カウンター記憶部とを有するコンピューターに、前記記憶部に記憶されているデータのうち前記第１カウンターにより指定される行に属する画素のデータに対して、当該画素に対応するオフセットベクターで指定される位置関係にある画素のデータを用いた補正をするステップと、前記補正されたデータを出力するステップと、前記画像のうち前記第２カウンターで指定される行のデータを、前記記憶部のうち対応する記憶領域に書き込むステップとを実行させるためのプログラムを提供する。
【００２１】
このプログラムによれば、補正に用いられる画素を含む行を選択してラインバッファーにデータを書き込む場合と比較して処理を軽減することができる。
【図面の簡単な説明】
【００２２】
【図１】一実施形態に係る表示装置１の構成を示すブロック図。
【図２】コントローラー１２の構成を示す図。
【図３】投写される画像の歪みを例示する図。
【図４】補正後の目標となる図形１８４を例示する図。
【図５】表示装置１の動作を示すフローチャート
【図６】補正に用いられる画素を例示する図。
【図７】Ｃｒ＝１およびＣｗ＝１２１の状態を示す図。
【図８】Ｃｒ＝１２０およびＣｗ＝２４１の状態を示す図。
【図９】Ｃｒ＝２００およびＣｗ＝３２１の状態を示す図。
【発明を実施するための形態】
【００２３】
１．構成
図１は、一実施形態に係る表示装置１の構成を示すブロック図である。表示装置１は、例えば、自動車、電車、または飛行機のフロントガラスに画像を投写する投写型の表示装置、いわゆるＨＵＤ（Head-Up Display）である。表示装置１が自動車に用いられる場合、投写される画像は、例えば、カーナビゲーションの画面または各種計器（例えば速度計や回転計）の測定結果を示す画像である。
【００２４】
表示装置１は、ホスト装置１１と、コントローラー１２と、投写ユニット１３と、記憶部１４と、ＩＦ部１５と、操作パネル１６とを有する。
【００２５】
ホスト装置１１は、表示装置１の他の構成要素を制御する。ホスト装置１１は、ＣＰＵ（Central Processing Unit）１１１と、ＲＯＭ（Read Only Memory）１１２と、ＲＡＭ（Random Access Memory）１１３とを有する。ＣＰＵ１１１は、表示装置１の各部を制御する制御装置である。ＲＯＭ１１２は、各種プログラムおよびデータを記憶した不揮発性の記憶装置である。ＲＡＭ１１３は、データを記憶する揮発性の記憶装置であり、ＣＰＵ１１１が処理を実行する際のワークエリアとして機能する。
【００２６】
コントローラー１２は、投写ユニット１３を制御する装置である。この例で、コントローラー１２は、入力された映像信号（以下「入力映像信号」という）に所定の画像処理を施す画像処理装置として機能する。コントローラー１２は、画像処理を施した映像信号を、投写ユニット１３に出力する。
【００２７】
投写ユニット１３は、画像処理が施された映像信号に従って、スクリーンに画像を投写する。投写ユニット１３は、光源、光変調器１３１、および光学系、並びにこれらの駆動回路を有する（光変調器１３１以外は図示略）。光源は、高圧水銀ランプ、ハロゲンランプ、若しくはメタルハライドランプなどのランプ、またはＬＥＤ（Light Emitting Diode）若しくはレーザーダイオードなどの固体光源である。光変調器１３１は、光源から照射された光を映像信号に応じて変調する装置であり、例えば液晶パネルまたはＤＭＤ（Digital Mirror Device）等の表示部を有する。光変調器１３１は、ｒ行ｃ列の画素を有し、画素毎に光を変調する。光学系は、光変調器により変調された光をスクリーンに投写する素子であり、例えばレンズおよびプリズムを有する。
【００２８】
記憶部１４は、データおよびプログラムを記憶する不揮発性の記憶装置、例えばＨＤＤ（Hard Disk Drive）またはＳＳＤ（Solid State Drive）である。記憶部１４は、例えば、カーナビゲーションを実行するためのプログラムおよび地図データを記憶している。ホスト装置１１は、記憶部１４に記憶されているプログラムおよびデータを用いてカーナビゲーションの画像を生成し、後段の回路に出力する。
【００２９】
ＩＦ部１５は、外部装置（例えば各種計器）と信号またはデータの送受信を仲介するインターフェースである。ＩＦ部１５は、外部装置と信号またはデータの送受信をするための端子を有する。
【００３０】
操作パネル１６は、ユーザーが表示装置１に対し指示を入力するための入力装置であり、例えば、キーパッド、ボタン、またはタッチパネルを含む。
【００３１】
図２は、コントローラー１２の構成を示す図である。コントローラー１２は、ＶＲＡＭ（Video RAM）１２１と、アービター１２２と、映像入力部１２３と、書き込みＩＦ１２４と、読み出しアドレス生成部１２５と、補正部１２６と、映像出力部１２７と、オフセットテーブル１２８とを有する。
【００３２】
ＶＲＡＭ１２１は、ｋ行分の画像データを記憶する記憶領域を有するメモリー（記憶部）である。ここで、ｋは、
Ｏｍａｘ＜ｋ＜ｒ  …（１）
を満たす自然数である。Ｏｍａｘは、用いられる光変調器１３１に応じてあらかじめ設定されたオフセット最大値である。オフセット最大値については後述する。
【００３３】
なおＶＲＡＭ１２１は、必ずしもｋ行ｃ列の記憶領域を有していなくてもよい。ＶＲＡＭ１２１はｋ行ｃ列よりもより多くの記憶領域を有していてもよい。この場合、ＶＲＡＭ１２１の一部の記憶領域をブロック分割して用いることができる。また、図２ではコントローラー１２がＶＲＡＭ１２１を内蔵している例を示したが、ＶＲＡＭ１２１はコントローラー１２の外部に設けられていてもよい。
【００３４】
アービター１２２は、ＶＲＡＭ１２１へアクセスする権利を調停する回路である。この例でＶＲＡＭ１２１は４バンクに分割されており、最大で４つのアドレスに対し同時に書き込みまたは読み出しが可能である（図２でアービター１２２の入出力が４本の矢印で示されているのはこのためである）。
【００３５】
映像入力部１２３は、ホスト装置１１から映像信号（「入力映像信号」という）を受け付ける。映像入力部１２３は、入力映像信号を、書き込みＩＦ１２４に出力する。
【００３６】
書き込みＩＦ１２４は、入力映像信号をデータとしてＶＲＡＭ１２１に書き込む。このとき、書き込みＩＦ１２４は、ＶＲＡＭ１２１の記憶領域のうち、ライトカウンターで指定される行に対応する記憶領域にデータを書き込む。ライトカウンターは、データの書き込みが行われる行を指定するパラメーターである。書き込みＩＦ１２４は、ライトカウンターを記憶するためのレジスター（第２カウンター記憶部）を有している（図示略）。
【００３７】
読み出しアドレス生成部１２５は、処理対象画素のデータの補正に用いられるデータが記憶されている記憶領域を示すアドレス（以下「読み出しアドレス」という）を生成する。読み出しアドレス生成部１２５は、リードカウンターおよびオフセットベクトルを用いて読み出しアドレスを生成する。リードカウンターは、データ読み出しの基準となる行を指定するパラメーターである。読み出しアドレス生成部１２５は、リードカウンターを記憶するためのレジスター（第１カウンター記憶部）を有している（図示略）。オフセットベクトルは、オフセットテーブル１２８から得られる。オフセットテーブル１２８は、オフセットベクトルが記録されたテーブルを記憶したメモリーである。オフセットベクトルについては後述する。
【００３８】
補正部１２６は、データの補正を行う。補正部１２６は、ＶＲＡＭ１２１に記憶されているデータのうち読み出しアドレス生成部が生成したアドレスで指定される記憶領域に記憶されているデータを用いて補正する。補正の具体的方法については後述する。
【００３９】
映像出力部１２７は、補正部１２６により補正されたデータを、映像信号として、後段の投写ユニット１３に出力する。
【００４０】
なお、図示は省略したが、コントローラー１２はこれ以外にも、ホスト装置１１との間でデータおよび命令の送受信をするインターフェースを有する。
【００４１】
２．歪み補正の概要
図３は、投写される画像の歪みを例示する図である。図３（Ａ）は光変調器１３１に表示される画像を、図３（Ｂ）はスクリーンＳｃに投写される画像を例示している。光変調器１３１は、表示領域１８１を有する。この例では、表示領域１８１に長方形１８２が表示されている。表示領域１８１に表示されている長方形１８２に応じて、スクリーンＳｃには図形１８３が投写されている。投写ユニット１３の光学系とスクリーンとの位置関係が理想的であれば図形１８３は長方形になるはずであるが、この例では光学系とスクリーンとの位置関係が理想状態からずれており、図形１８３は長方形から歪んでいるが、長方形１８２の頂点に対応する点１８３１、１８３２、１８３３、および１８３４を有する。以下、この歪みを解消する方法の概要を説明する。
【００４２】
図４は、補正後の目標となる図形１８４を例示する図である。図４（Ａ）はスクリーンＳｃ上における図形１８４を示している。スクリーンＳｃ上において、図形１８４は、例えば、（ｉ）所定の向き（例えば、鉛直方向および水平方向）の辺を有し、（ｉｉ）長方形１８２と同じ縦横比を有し、かつ（ｉｉｉ）図形１８４の基準位置と図形１８３の基準位置が所定の位置関係にある（例えば、図形１８４の重心と図形１８３の重心とが一致する）という条件を満たす図形である。図形１８４は、頂点１８４１、１８４２、１８４３、および１８４４を有する。なお図形１８４は、補正後の画像の面積を最大にする観点から、さらに（ｉｖ）図形１８３に内接する、という条件を満たすことが好ましい。図４の例では、図形１８３および図形１８４を見やすくするため、条件（ｉｖ）は満たしていない。
【００４３】
説明を簡単にするため、まず図形１８３の点１８３１、１８３２、１８３３、および１８３４だけを考える。補正後の形状を図形１８４とするには、これらの点を、それぞれ、頂点１８４１、１８４２、１８４３、および１８４４に移動すればよい。すなわち、補正後の頂点１８４１のデータ（例えば階調値）は、点１８３１のデータを参照すればよい。ここで、補正後の点（例えば頂点１８４１）を基準としたときに、参照すべき補正前の点（例えば点１８３１）を示すベクトルをオフセットベクトル（オフセットベクター）という。頂点１８４１、１８４２、１８４３、および１８４４は、それぞれ異なる点１８３１、１８３２、１８３３、および１８３４を参照するので、オフセットベクトルは各点で定義される。
【００４４】
この考え方は図形１８４の頂点だけでなく、表示領域１８１の全ての点（すなわち全ての画素）について適用できる。例えば、単なる長方形ではなく格子状のパターンを投写すれば、各格子のずれを用いてオフセットベクトルを定義することができる。
【００４５】
オフセットベクトルは、投写ユニット１３の光学系とスクリーンとの位置関係が決まれば一意に定まる。例えば、投写ユニット１３に所定のテストパターンを投写させ、投写された画像をカメラで撮影して解析することにより、オフセットベクトルを決定することができる。例えば自動車のＨＵＤとして用いる場合のように、投写ユニット１３を設置すればスクリーンとの位置関係がその後変わらないときは、決定されたオフセットベクトルをメモリーに記憶しておき、補正の時はこれを参照すればよい。
【００４６】
図４（Ｂ）は、光変調器１３１上における図形１８５を示している。このように、図形１８３と逆の歪みを与えた画像を表示すれば、歪みが補正された図形１８４がスクリーンＳｃに表示される。
【００４７】
ここで、表示領域１８１上の画素Ｐ（ｘ，ｙ）におけるオフセットベクトルをＶｏｓ（ｘ，ｙ）と表す。画素Ｐ（ｘ，ｙ）の補正後のデータＤｒ（Ｐ）は、補正前のデータＤｏを用いて以下のように表される。
Ｄｒ（Ｐ（ｘ，ｙ））＝Ｄｏ（Ｐ（ｘ，ｙ）＋Ｖｏｓ（ｘ，ｙ））  …（２）
【００４８】
なお画素Ｐ（ｘ，ｙ）は現実の画素なのでｘおよびｙは整数であるが、オフセットベクトルＶｏｓの成分は整数でなくてもよい。オフセットベクトルＶｏｓの成分が整数でない場合、オフセットベクトルＶｏｓが指す位置は画素そのものではなく、複数の画素の間の点である。この場合、オフセットベクトルＶｏｓが指す位置に最も近い画素のデータを用いて補正後のデータが得られる。なおオフセットベクトルＶｏｓが指す位置と補正に用いる画素との関係はこの限りではないが、これ以外の例は後述する。
【００４９】
オフセットベクトルの大きさをオフセット量という。ｘ方向およびｙ方向のそれぞれにおけるオフセットベクトルの大きさを、ｘ方向のオフセット量およびｙ方向のオフセット量という。オフセットベクトルの向きによって、オフセット量は正負いずれの値も取り得る。
【００５０】
オフセット量は光学系とスクリーンとの位置関係によって決まるが、例えば自動車向けのように用途が決められている場合、オフセット量の取り得る範囲はある程度限定される。想定されるオフセット量の最大値を、オフセット最大値という。オフセット最大値は正負両方向に対してそれぞれ個別に設定されてもよいし、単一のオフセット最大値が正負両方向に共通に設定されてもよい。
【００５１】
なおオフセット最大値がリードカウンターの進行方向に対して正方向および負方向の双方について個別に設定されていた場合、式（１）におけるＯｍａｘは、これら２つの値のうち大きい方の値を有する。
【００５２】
３．動作
以下、表示装置１の動作例を説明する。ここでは、光変調器１３１が、ＷＶＧＡ相当の解像度を有する例を用いて説明する。すなわち、光変調器１３１は、画素が、４８０行８００列に配置されている（ｒ＝４８０、ｃ＝８００）。オフセット最大値は１２０に設定されている（Ｏｍａｘ＝１２０）。ＶＲＡＭ１２１は、２４１行分のデータを記憶するための記憶領域を有する。なお、２４１行分とは、オフセット最大値（この例では１２０行）の２倍に、処理対象画素（この例では１行）の記憶領域を加算した値である。オフセットベクトルメモリー１６６は、各画素のオフセットベクトルを記憶している。
【００５３】
３−１．概要
図５は、表示装置１の動作を示すフローチャートである。
【００５４】
ステップＳ１０１において、書き込みＩＦ１２４は、画像データの一部を、ＶＲＡＭ１２１に書き込む。ここで書き込まれるデータは、オフセット最大値の行数分のデータ、この例では、１２０行分のデータである。すなわち、書き込みＩＦ１２４は、画像データのうち第１行から第１２０行までのデータを、ＶＲＡＭ１２１に書き込む。
【００５５】
ＶＲＡＭ１２１は、第１〜２４１行の記憶領域を有している。ステップＳ１０１においては、第１〜１２０行の記憶領域に画像データが書き込まれる。
【００５６】
ステップＳ１０２において、読み出しアドレス生成部１２５および書き込みＩＦ１２４は、それぞれ、リードカウンターＣｒおよびライトカウンターＣｗを初期化する。この例では、Ｃｒ＝１、Ｃｗ＝Ｏｍａｘ＋Ｃｒ＝１２１に初期化される。リードカウンターＣｒおよびライトカウンターＣｗは、画像データ上の行の位置を示すカウンターであり、この例では、いずれも１〜４８０の値をとる。なお、ライトカウンターＣｗとリードカウンターＣｒとの差は、少なくとも正方向側のオフセット最大値よりも大きい。
【００５７】
ステップＳ１０３において、読み出しアドレス生成部１２５および補正部１２６はｘカウンターＣｘを初期化する。ｘカウンターＣｘは、処理対象の画素を特定するためのパラメーターである。読み出しアドレス生成部１２５および補正部１２６はそれぞれ個別にカウンターＣｘを保持しているが、これらは同期信号で同期している。この例では、Ｃｘ＝１に初期化される。以下、補正対象の画素を画素Ｐｃと表す。画素Ｐｃの座標は、（Ｃｘ，Ｃｒ）である。
【００５８】
ステップＳ１０４において、読み出しアドレス生成部１２５は、読み出しアドレスを生成する。読み出しアドレスにより指定される画素すなわち補正に用いられる画素を、画素Ｐｄと表す。画素Ｐｄの座標は、次式（３）で表される。
Ｐｄ＝Ｐｃ＋Ｖｏｓ  …（３）
画素Ｐｄ（ｘｄ，ｙｄ）のデータは、ＶＲＡＭ１２１において、第ｋｄ行の記憶領域に記憶されている。読み出しアドレス生成部１２５は、次式（４）を用いて読み出しアドレスｋｄを計算する。
ｋｄ＝ｙｄ（ｍｏｄ  ｋ）  …（４）
例えば、ｋ＝２４１の場合においてｙｄ＝１〜２４１のときは、ｋｄ＝ｙｄである。ｙｄ＝２４３の場合、ｋｄ＝２である。
【００５９】
読み出しアドレス生成部１２５は、データの読み出し要求を、アービター１２２を介してＶＲＡＭ１２１に出力する。この読み出し要求には、第ｋｄ行ｘｄ列の記憶領域を指定するアドレスが含まれている。ＶＲＡＭ１２１は、指定されたアドレスの記憶領域からデータを読み出し、アービター１２２を介して補正部１２６に出力する。
【００６０】
ステップＳ１０５において、補正部１２６は、式（２）を用いて画素Ｐｃのデータを補正する。
【００６１】
図６は、補正に用いられる画素を例示する図である。この例では、Ｐｃ＝Ｐ（１４，１２）であり、Ｖｏｓ（１４，１２）＝（−８，−１０）である。式（３）から、
Ｐｄ＝（６，２）  …（５）
である。式（２）とあわせて、
Ｄｒ（１４，１２）＝Ｄｏ（６，２）  …（６）
が得られる。
【００６２】
再び図５を参照する。ステップＳ１０６において、映像出力部１２７は、補正部１２６により補正された画素Ｐｃのデータを後段の回路（例えば光変調器１３１の駆動回路）に出力する。
【００６３】
ステップＳ１０７において、読み出しアドレス生成部１２５および補正部１２６は、カウンターＣｘをインクリメントする。
【００６４】
ステップＳ１０８において、補正部１２６は、１行分の処理が完了したか、すなわち、Ｃｘ＝８０１となったか判断する。まだ１行分の処理が完了していないと判断された場合（Ｓ１０８：ＮＯ）、補正部１２６は、処理をステップＳ１０４に移行する。１行分の処理が完了したと判断された場合（Ｓ１０８：ＹＥＳ）、補正部１２６は、処理をステップＳ１０９に移行する。
【００６５】
ステップＳ１０９において、書き込みＩＦ１２４は、ライトカウンターＣｗで指定される行のデータを、ＶＲＡＭ１２１に書き込む。ライトカウンターＣｗで指定される行のデータは、ＶＲＡＭ１２１において第ｋｗ行の記憶領域に書き込まれる。ｋｗは次式（７）により計算される。
ｋｗ＝Ｃｗ（ｍｏｄ  ｋ）  …（７）
例えば、ｋ＝２４１の場合においてＣｗ＝１〜２４１のときは、ｋｗ＝Ｃｗである。Ｃｗ＝２４３の場合、ｋｗ＝２である。
【００６６】
ステップＳ１１０において、読み出しアドレス生成部１２５および書き込みＩＦ１２４は、カウンターＣｒおよびＣｗをインクリメントする。
【００６７】
ステップＳ１１１において、読み出しアドレス生成部１２５は、全ての行について処理が完了したか、すなわち、Ｃｒ＝４８０となったか判断する。まだ全ての行について処理が完了していないと判断された場合（Ｓ１１１：ＮＯ）、読み出しアドレス生成部１２５は、処理をステップＳ１０３に移行する。全ての行について処理が完了したと判断された場合、コントローラー１２は、図５の処理を終了する。
【００６８】
なおここでは１枚（１フレーム）の画像のみを処理する例を説明したが、動画を処理する場合、複数フレームの画像を連続して処理してもよい。例えば、第ｉフレームについて処理をしている場合において、Ｃｗ＞ｒとなったときは、ライトカウンターＣｗを初期化し、第（ｉ＋１）フレームのデータをＶＲＡＭ１２１に書き込んでもよい。この場合において、Ｃｒ＞ｒとなったときは、リードカウンターＣｒを初期化し、第（ｉ＋１）フレームのデータの処理を開始する。
【００６９】
以上で説明したように、本実施形態によれば、補正に用いられる画素を含む行を選択してラインバッファーに記憶する構成と比較して、処理の負荷を低減することができる。また、リードカウンターとライトカウンターとは同じスピードで行送りされるので、リードがライトを追い越す（書き込みが終わる前の画像データを誤って読み出してしまう）ことはない。
【００７０】
また、本実施形態によれば、本発明を用いない構成（図１の例でコントローラー１２を有さない構成）に対し、ホスト装置１１と投写ユニット１３（光変調器１３１）との間に本実施形態に係るコントローラー１２を設ければよく、歪み補正に対応していないシステムに簡単に低コストで歪み補正の機能を導入することができる。
【００７１】
３−２．動作例
以下、より具体的な動作例を説明する。
【００７２】
図７は、Ｃｒ＝１およびＣｗ＝１２１の状態（ステップＳ１０７）を示す図である。図は、ＶＲＡＭ１２１の状態を示している。ハッチングされた部分は、第１〜１２０行のデータが記憶されていることを示している。白抜きの部分は、データが記憶されていない（ヌル値が記憶されている）ことを示している。
【００７３】
この例で、オフセットベクトルＶｏｓ（Ｐｃ）のｘ成分およびｙ成分はともに負である。すなわち、画素Ｐｄは元の画像データにおいて存在しない画素である。この場合、補正部１２６は、補正後のデータを所定の値（例えばヌル値または黒に相当する階調）にする。図７では便宜的に、ＶｏｓおよびＰｄを破線で示し、元の画像データにおいて存在しない画素を参照していることを示している。画素Ｐｄが元の画像データにおいて存在しない画素である場合、補正部１２６は、自身が有するレジスター（図示略）内に記憶されている所定値のデータを読み出し、読み出したデータを補正後のデータとする。
【００７４】
図８は、Ｃｒ＝１２０およびＣｗ＝２４１の状態（ステップＳ１０７）を示す図である。このとき、ＶＲＡＭ１２１の第１〜２４１行の記憶領域には、画像の第１〜２４１行のデータが記憶されている。この状態では、リードカウンターＣｒにより示される行に対して、リードカウンターＣｒの進行方向（ｙ方向）の正側および負側の双方に、最大オフセット分のデータが記憶されている。したがって、オフセットベクトルＶｏｓのｙ成分が正であっても負であっても、また、たとえオフセットベクトルのｙ成分が最大オフセットであっても、画素ＰｄのデータはＶＲＡＭ１２１に記憶されている。この場合、次の図９で説明するような計算をしなくても、画素Ｐｄのデータを読み出すことができる。
【００７５】
図９は、Ｃｒ＝２００およびＣｗ＝３２１の状態（ステップＳ１０７）を示す図である。このとき、ＶＲＡＭ１２１の第１〜８０行の記憶領域には、画像の第２４２〜３２１行のデータが記憶されている。ＶＲＡＭ１２１の第８１〜２４１行の記憶領域には、画像の第８１〜２４１行のデータが記憶されている。この例で、Ｐｃ＝（３００，２００）、Ｖｏｓ（Ｐｃ）＝（２０，１００）である。これらを式（３）に代入して
Ｐｄ＝（３２０，３００）  …（８）
が得られる。式（４）から
ｋｄ＝５９  …（９）
であるので、画素Ｐｄのデータは、ＶＲＡＭ１２１の第５９行の記憶領域に記憶されている。ＶＲＡＭ１２１は、常に、ライトカウンターＣｗが示す行からカウンターの進行方向の負方向に２４１行分のデータしか記憶できない。画素ＰｃにおいてオフセットベクトルＶｏｓのｙ成分が、カウンターの進行方向におけるＶＲＡＭ１２１の残り記憶領域の行数よりも大きい場合、すなわち、ｙ＞（ｋ−ｋｄ）である場合、ＶＲＡＭ１２１の残り記憶領域の行数を超える画素のデータは、ＶＲＡＭ１２１の第１行の記憶領域から順に記憶されている。したがって、画素Ｐｄのｙ座標が３００の場合、そのデータは、ＶＲＡＭ１２１の第５９行の記憶領域に記憶されている。なお、ＶＲＡＭ１２１はｘ方向においては光変調器１３１と同じ画素数を有しているので、ｘ座標にはそのまま３２０である。
【００７６】
ＶＲＡＭ１２１においては、リードカウンターの進行方向に対し正方向および負方向の双方において、オフセット最大値分の行数のデータが記憶されているので、補正に用いるデータを読み出すことができる。
【００７７】
また、特許文献１の技術ではバッファーメモリーの構成が複雑であるところ、本実施形態のフレームバッファーはより簡単な構成を有している。さらに、特許文献１ではレンズ歪みのみを補正の対象としているところ、本実施形態では、レンズ歪み以外の歪みも補正することができる。さらに、特許文献１では回路規模が大きく処理負荷が重くなるところ、補実施形態ではより負荷の軽い処理で補正を行うことができる。
【００７８】
４．変形例
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例のうち２つ以上のものが組み合わせて用いられてもよい。
【００７９】
４−１．変形例１
オフセットベクトルＶｏｓは、理論的には全ての画素Ｐ（ｘ，ｙ）について定義することが可能であるが全ての画素Ｐ（ｘ，ｙ）についてオフセットベクトルを記憶すると多くのメモリー容量が必要になる場合には、記憶しておくオフセットベクトルを間引いてもよい。例えば、行方向および列方向ともに２画素毎にオフセットベクトルをオフセットテーブル１２８に記憶しておくと、３行３列の９個の画素のうち４隅の画素のみオフセットベクトルが記憶されていることになる。このとき、オフセットベクトルが記憶されていない画素に関しては、近接する、オフセットベクトルが記憶されている画素のオフセットベクトルを用いた補間により、その画素のオフセットベクトルを算出する。
【００８０】
例えば、Ｖｏｓ（１，１）＝（ｐ１，ｑ１）およびＶｏｓ（１，３）＝（ｐ２，ｑ２）がオフセットテーブル１２８に記憶されており、Ｖｏｓ（１，２）がオフセットテーブル１２８に記憶されていないときは、
Ｖｏｓ（１，２）＝｛Ｖｏｓ（１，１）＋Ｖｏｓ（１，３）｝／２
＝［｛（ｐ１＋ｐ２）／２｝，｛（ｑ１＋ｑ２）／２｝］  …（１０）
によりＶｏｓ（１，２）が算出される。
【００８１】
４−２．変形例２
オフセットベクトルＶｏｓの成分が整数でない場合の処理は実施形態で説明したものに限定されない。オフセットベクトルＶｏｓの成分が整数でない場合、オフセットベクトルＶｏｓが指す位置の周辺の複数の画素（ｍ行ｎ列の画素）のデータを用いて（例えば補間により）補正後のデータを得てもよい。なおこの場合において、ｋは次式（１１）を満たしてもよい。
（Ｏｍａｘ＋ｍ／２）＜ｋ＜ｒ  …（１１）
【００８２】
４−４．変形例４
ＶＲＡＭ１２１の記憶容量は、実施形態で説明したものに限定されない。例えば、オフセット最大値がリードカウンターの進行方向に対して正方向および負方向の双方について個別に設定されていた場合、正方向のオフセット最大値、負方向のオフセット最大値、および処理対象画素の記憶領域を加算した値に相当する行数の記憶領域を有していてもよい。具体的には、正方向のオフセット最大値Ｏ+ｍａｘ＝１２０、負方向のオフセット最大値Ｏーｍａｘ＝８０、処理対象の画素数が１の場合、ＶＲＡＭ１２１は、２０１（＝１２０＋８０＋１）行分の記憶領域を有していればよい。このとき、ライトカウンターＣｗの値は、次式（１２）のように、リードカウンターＣｒに対して、負方向のオフセット最大値分ずらしておけばよい。
Ｃｗ＝Ｃｒ＋Ｏーｍａｘ  …（１２）
【００８３】
４−５．他の変形例
表示装置１はＨＵＤに限定されない。表示装置１は、いわゆる通常のプロジェクターであってもよい。この場合において、プロジェクターのキーストーン補正に本発明が適用されてもよい。特に、いわゆるピコプロジェクターのような小型のプロジェクターにおいて有効である。
【００８４】
表示装置１および表示装置１の各部の構成は、図１および図２で例示したものに限定されない。実施形態では、ハードウェア（コントローラー１２）が図５のフローを実行する例を説明したが、ホスト装置１１のＣＰＵ１１１が、プログラムに従って図５のフローを実行してもよい。この場合、コントローラー１２は無くてもよい。また、実施形態においてはリードカウンターおよびライトカウンターが読み出しアドレス生成部１２５および書き込みＩＦ１２４のレジスターに記憶される例を説明したが、これらのカウンターはＶＲＡＭ１２１等、他の記憶装置に記憶されてもよい。
【００８５】
ＣＰＵ１１１が実行するプログラムは、磁気記録媒体（磁気テープ、磁気ディスク（ＨＤＤ、ＦＤ（Flexible Disk））など）、光記録媒体（光ディスク（ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk））など）、光磁気記録媒体、半導体メモリ（フラッシュＲＯＭなど）などのコンピューター読取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、インターネットのようなネットワーク経由でダウンロードされてもよい。
【００８６】
本発明は、表示装置以外の電子機器、例えば撮像装置に適用されてもよい。例えば、デジタルスチルカメラ、デジタルビデオカメラ、ドライブレコーダーにおける補正に、本発明が適用されてもよい。
【符号の説明】
【００８７】
１…表示装置、１１…ホスト装置、１２…コントローラー、１３…投写ユニット、１４…記憶部、１５…ＩＦ部、１６…操作パネル、１１１…ＣＰＵ、１１２…ＲＯＭ、１１３…ＲＡＭ、１３１…光変調器、１２１…ＶＲＡＭ、１２２…アービター、１２３…映像入力部、１２４…書き込みＩＦ、１２５…読み出しアドレス生成部、１２６…補正部、１２７…映像出力部、１２８…オフセットテーブル、１８１…表示領域、１８２…長方形、１８２１〜１８２４…頂点、１８３…図形、１８３１〜１８３４…点、１８４…図形、１８４１〜１８４４…点、１８５…図形、１８５１〜１８５４…点
【図１】
2015227913.tif 000003
【図２】
2015227913.tif 000004
【図３】
2015227913.tif 000005
【図４】
2015227913.tif 000006
【図５】
2015227913.tif 000007
【図６】
2015227913.tif 000008
【図７】
2015227913.tif 000009
【図８】
2015227913.tif 000010
【図９】
2015227913.tif 000011