JP4706458B2 - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
JP4706458B2
JP4706458B2 JP2005340117A JP2005340117A JP4706458B2 JP 4706458 B2 JP4706458 B2 JP 4706458B2 JP 2005340117 A JP2005340117 A JP 2005340117A JP 2005340117 A JP2005340117 A JP 2005340117A JP 4706458 B2 JP4706458 B2 JP 4706458B2
Authority
JP
Japan
Prior art keywords
block data
image
read
pixel
data storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005340117A
Other languages
English (en)
Other versions
JP2007150531A (ja
Inventor
三千男 吉竹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005340117A priority Critical patent/JP4706458B2/ja
Publication of JP2007150531A publication Critical patent/JP2007150531A/ja
Application granted granted Critical
Publication of JP4706458B2 publication Critical patent/JP4706458B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、画像処理装置において台形歪み補正を行う技術に関し、詳しくは、水平方向に生じた台形歪みの補正を行う技術に関する。
近年、画像をスクリーン上に拡大表示する画像処理装置として、プロジェクタが普及している。プロジェクタ等の画像処理装置によって画像をスクリーン上に投写表示を行う際には、その設置位置によっては、スクリーン上に画像が垂直方向あるいは水平方向に台形状に表示される場合がある。このような台形歪みを補正するため、従来、種々の補正方法が提案されている(下記特許文献1,2参照)。なお、台形歪みを補正することを、以下では「キーストーン補正」という。
特開2004−48368号公報 特開2004−32484号公報
キーストーン補正の手順は、座標変換処理と補間処理の2つの処理に分けて考えることができる。座標変換処理は、補正前の画像から画素データを台形状に読み込むための処理である。これに対して、補間処理は、座標変換によって補正前後の各画素の位置が一対一に対応しないために、補正後の画像の画素値を、補正前の画像の複数の画素の画素値から求める処理である。
一般的に、垂直方向に生じた台形歪みを補正する場合には、座標変換を行ったとしても、特許文献1の図5に記載されているように、フレームメモリから、X方向に連続的に画素データを読み出せばよいため、バースト転送などを利用することで、効率的にデータを読み出すことができる。そのため、補間処理も比較的効率的に行うことができる。
しかしながら、水平方向への台形歪み補正を行う場合には、特許文献2の図24に記載されているように、補正前の画像から斜め方向に画素データを読み込む必要があるため、データを効率的に読み込むことは困難である。また、補間を行うためには、予め複数のラインを斜め方向に読み込んでおくことが必要であり、この点でも、効率化の妨げになっていた。このような問題は、プロジェクタによって台形歪み補正を行う場合に限らず、コンピュータ等によって台形歪み補正を行う場合についても同様に発生する問題であった。
このような問題を考慮し、本発明が解決しようとする課題は、プロジェクタ等の画像処理装置において水平方向の台形歪み補正を高速に行うことにある。
上記課題を解決するため、本発明の画像処理装置を次のように構成した。すなわち、
画像を投写表示する際に生じる水平方向の台形歪みを補正して補正後の画像を表示する画像処理装置であって、
前記補正の対象となる補正前の画像を記憶するフレームメモリと、
前記フレームメモリから読み込まれた前記補正前の画像の一部を、N×M個の画素からなるブロックデータを単位として保持するブロックデータ記憶メモリと、
前記補正後の画像の水平方向の各ラインに対応する前記補正前の画像のラインを前記補正前の画像から読み込むための読込角度を、前記補正の程度および前記水平方向の各ラインの位置に応じて設定する角度設定手段と、
前記補正後の画像の各画素の位置に対応する前記補正前の画像における画素位置を、前記角度設定手段によって設定された読込角度を用いて前記ラインに沿って求める座標変換手段と、
前記座標変換手段によって求められた前記補正前の画素位置を包含するブロックデータが、前記ブロックデータ記憶メモリに保持されているか否かを判定する判定手段と、
前記判定手段による判定結果に応じて、前記補正前の画素位置を包含するブロックデータを、前記ブロックデータ記憶メモリおよび前記フレームメモリの少なくともいずれか一方から読み込むとともに、前記補正前の画素位置を包含するブロックデータが前記ブロックデータ記憶メモリに保持されていない場合には、前記フレームメモリから読み込んだブロックデータを前記ブロックデータ記憶メモリに書き込む読込制御手段と、
前記読込制御手段によって読み込んだ前記ブロックデータ内の画素の画素値を用いて、前記補正後の画像における各画素の画素値を前記ライン毎に求め、前記表示される補正後の画像を生成する表示画像生成手段と
前記読込角度は所定の角度範囲内において複数に区分されており、前記角度設定手段によって設定された読込角度の区分が変化した場合に、前記ブロックデータ記憶メモリをクリアする手段と、
前記ブロックデータ記憶メモリは、一または複数の前記ブロックデータを格納する一または複数のエントリから構成されており、前記角度設定手段によって設定された前記読込角度の前記区分に応じて、前記エントリの数と、1エントリあたりに格納可能な前記ブロックデータの数とを設定するキャッシュ構造設定手段とを備えることを要旨とする。
本発明の画像処理装置によれば、水平方向の台形歪みを補正する際に、斜め方向への画素データの読み込みを、角度設定手段によって設定した読込角度に応じて、ブロック単位で行うことができる。そのため、補正前の画像から効率的に画素データを読み込むことができる。また、ブロック単位でフレームメモリから読み出した画素データは、一旦、ブロックデータ記憶メモリに保持される。そのため、斜め方向に読み込みを行うラインの読込角度がいくらか変更されたとしても、ブロックデータ記憶メモリに既に記憶されたブロックデータを利用して、補正後の画像を生成することができる。この結果、補正後の画像生成時に用いるすべての画素データをフレームメモリから読み込む必要がなく、水平方向の台形歪み補正を高速に行うことが可能になる。なお、ブロックデータ記憶メモリとは、フレームメモリよりも高速なメモリである。例えば、フレームメモリとしては、SDR−SDRAMやDDR−SDRAMなどのDRAMを用いることができ、ブロックデータ記憶メモリとしては、これらのDRAMよりも高速なDRAMやSRAM等のメモリを用いることができる。
上記構成の画像処理装置において、
前記読込制御手段は、前記判定手段によって前記補正前の画素位置を包含するブロックデータが前記ブロックデータ記憶メモリに保持されていると判定された場合に、前記ブロックデータ記憶メモリから該ブロックデータを読み込み、前記判定手段によって前記補正前の画素位置を包含するブロックデータが前記ブロックデータ記憶メモリに保持されていないと判定された場合に、前記フレームメモリから該ブロックデータを読み込むとともに該読み込んだブロックデータを前記ブロックデータ記憶メモリに書き込むものとすることができる。
このような構成によれば、補正前の画素位置を包含するブロックデータがブロックデータ記憶メモリに保持されていると判定された場合には、このブロックデータ記憶メモリからブロックデータを読み込むことができるため、高速に画素の読み出しを行うことができる。なお、ブロックデータの読み出しの他の方法として、ブロックデータをフレームメモリとブロックデータ記憶メモリの両者から読み出し、その後、判定手段による判定結果に応じて、どちらのメモリから読み込んだブロックデータを利用するかを選択するものとしてもよい。
上記構成の画像処理装置において、
前記読込角度は所定の角度範囲内において複数に区分されており、前記角度設定手段によって設定された読込角度の区分が変化した場合に、前記ブロックデータ記憶メモリをクリアする手段を備えるものとしてもよい。
このような構成によれば、区分の変更を伴うような読込角度の大きな変更があった場合において、ブロックデータ記憶メモリの内容をクリアすることができる。そのため、補正後の画像の生成に利用することのできない不要なブロックデータをブロックデータ記憶メモリから削除することができ、ブロックデータ記憶メモリのデータ容量を節減することが可能になる。読込角度の区分数は、ブロックのサイズに応じて設定することができる。例えば、ブロックのサイズが大きければ、区分の数を少なく設定することができ、ブロックのサイズが小さければ、区分の数を多く設定することができる。大きなブロックサイズであれば、読み込み角度が大きく変化した場合でも、補正対象のラインがそのブロック内に収まるからである。
上記構成の画像処理装置において、
前記ブロックデータ記憶メモリは、一または複数の前記ブロックデータを格納する一または複数のエントリから構成されており、
前記角度設定手段によって設定された前記読込角度の前記区分に応じて、前記エントリの数と、1エントリあたりに格納可能な前記ブロックデータの数とを設定するキャッシュ構造設定手段を備えるものとしてもよい。
このような構成によれば、読込角度の区分に応じて設定されたエントリ毎にブロックデータ記憶メモリを管理することができるので、ブロックデータ記憶メモリにブロックデータを効率的に格納することができる。
上記構成の画像処理装置において、
前記キャッシュ構造設定手段は、前記読込角度の区分と前記エントリ数と前記ブロックデータの数とが対応付けて記録された所定のテーブルに基づき、前記読込角度の区分に応じて、前記エントリ数と前記ブロックデータの数とを設定するものとしてもよい。
このような構成によれば、予め用意されたテーブルに基づき、ブロックデータ記憶メモリのエントリ数と1エントリあたりに格納可能なブロックデータの数とを容易に設定することができる。
上記構成の画像処理装置において、
前記キャッシュ構造設定手段が参照する前記テーブルには、前記エントリ数が、前記区分に応じて前記補正前の画像から読み出される前記ブロックデータのY方向への数に応じて定義されており、前記ブロックデータの数が、前記区分に応じて前記補正前の画像から読み出される前記ブロックデータのX方向への1エントリあたりの最大個数に応じて定義されているものとしてもよい。
このような構成によれば、ブロックを斜め方向へ読み出す読込角度の区分に応じて最適なエントリ数とブロック数とを設定することができる。
上記構成の画像処理装置において、
前記ブロックデータ記憶メモリに記憶された前記ブロックデータの位置を管理するための管理用メモリを備え、
前記読込制御手段は、前記ブロックデータ記憶メモリから前記ブロックデータの読み込みを行う際に、前記管理用メモリを参照して、前記ブロックデータが記憶されている位置を検出し、該位置に基づき、前記ブロックデータ記憶メモリから、前記ブロックデータの読み込みを行うものとしてもよい。
このような構成によれば、ブロックデータ記憶メモリに直接アクセスしなくても、ブロックデータ記憶メモリの管理用に専用に用意されたメモリを参照することで、ブロックデータの記憶位置を検出することができる。そのため、ブロックデータ記憶メモリからブロックデータを容易に読み込むことが可能になる。管理用メモリとしては、例えば、タグRAMを用いることができる。
上記構成の画像処理装置において、
前記管理用メモリには、前記エントリ毎に、該エントリの有効性を表す識別子と、該エントリに記憶されているブロックデータの最小X座標と、該エントリに記憶されているブロックデータの最大X座標と、前記最小X座標のブロックデータが記憶されている前記ブロックデータ記憶メモリ内の実アドレスと、が対応付けて記憶されているものとしてもよい。
このような構成によれば、ブロックデータ記憶メモリ内に記憶されたブロックデータの位置を効率的に管理することが可能になる。
上記構成の画像処理装置において、
前記判定手段は、現在の補正前の画素位置のY座標に対応する前記ブロックデータ記憶メモリ内のエントリにおいて、前記識別子が有効である旨を表し、かつ、現在の補正前の画素位置のX座標が、前記最小X座標と前記最大X座標との範囲に含まれる場合に、該補正前の画素位置を包含するブロックデータが、前記ブロックデータ記憶メモリに保持されていると判定するものとしてもよい。
このような構成によれば、管理用メモリに記録された種々のパラメータを参照することで、ブロックデータ記憶メモリに目的のブロックデータが格納されているか否かを容易に判断することが可能になる。
上記構成の画像処理装置において、
前記読込制御手段は、前記判定手段によって前記補正前の画素位置を包含するブロックデータが前記ブロックデータ記憶メモリに保持されていないと判定された場合において、前記フレームメモリから読み込んだブロックデータを、前記読込角度が0以上の場合には、前記エントリ内のアドレスの低い順に書き込み、前記読込角度が0未満の場合には、前記エントリ内の、アドレスの高い順に書き込むものとしてもよい。
このような構成によれば、補正対象のラインの読込角度がプラスかマイナスかに応じてブロックデータの書き込み位置が可変されるため、ブロックデータ記憶メモリからのブロックデータの読み込みを効率的に行うことが可能になる。
上記構成の画像処理装置において、
前記表示画像生成手段は、前記ブロックデータ内の各画素の画素値と、N×Mの行列からなる所定の補間フィルタとを乗じることで、前記補正後の画像における各画素の画素値を求めるものとしてもよい。
このような構成によれば、ブロックデータを構成する画素データの数と補間フィルタの要素の数とが一致するため、単純な行列演算により、容易に補正後の画素の画素値を求めることが可能になる。
上記構成の画像処理装置において、
前記フレームメモリは、M個のバンクから構成されており、前記補正前の画像を、ライン毎に前記M個のバンクに割り振って記憶するものとしてもよい。
このような構成によれば、バンク切り替えを用いることで、フレームメモリから高速にブロックデータを読み出すことが可能になる。
なお、本発明は、上述した画像処理装置としての構成のほか、上述したいずれかの構成の画像処理装置を備えたプロジェクタや、画像処理方法、コンピュータプログラムとしても構成することができる。コンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、フレキシブルディスクやCD−ROM、DVD−ROM、光磁気ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態を実施例に基づき次の順序で説明する。
A.プロジェクタのハードウェア構成:
B.キーストーン補正の概念:
C.キャッシュメモリのデータ構造:
D.キャッシュ制御回路の詳細:
(D−1)ブロックデータ読み出し処理:
(D−2)タグRAM更新処理:
E.効果:
F.変形例:
A.プロジェクタのハードウェア構成:
図1は、本願の画像処理装置の実施例としてのプロジェクタ10のハードウェア構成を示す説明図である。図示するように、本実施例のプロジェクタ10は、画像信号入力回路110と、画像信号入力回路110に接続された画像処理回路120と、画像処理回路120に接続され、フレームメモリとして用いられるDRAM130と、DRAM130に接続され、キャッシュメモリ160を備えたキャッシュ制御回路150と、キャッシュ制御回路150に接続されたキーストーン補正回路140と、キーストーン補正回路140に接続された液晶ドライバ170と、液晶ドライバ170に接続された液晶パネル180と、液晶パネル180に形成された画像を照射する光源ランプ190と、光源ランプ190から射出され、液晶パネル180を透過した光を投写スクリーンSC上に拡大投写する光学系200と、画像処理回路120やキーストーン補正回路140に接続されたCPU210と、CPU210に接続された操作パネル220とを備えている。これらの回路のうち、キーストーン補正回路140は、本願の「角度設定手段」と「座標変換手段」と「表示画像生成手段」とに対応し、キャッシュ制御回路150は、本願の「判定手段」と「読込制御手段」とに対応する。
画像信号入力回路110は、DVDプレーヤやビデオデッキ、パーソナルコンピュータなどの外部機器からコンポジット信号やコンポーネント信号、RGB信号などの画像信号を入力する回路である。画像信号入力回路110は、同期分離回路112と、A/D変換回路114とを備えている。
同期分離回路112は、入力した画像信号から、垂直同期信号や水平同期信号等の同期信号を分離する回路である。なお、予め同期信号が分離された画像信号を入力する場合には、同期分離回路112を省略するものとしてもよい。
A/D変換回路114は、同期信号の分離されたアナログの画像信号をデジタルの画像信号に変換する回路である。A/D変換回路114は、デジタル画像信号を生成すると、このデジタル画像信号を、画像処理回路120に出力する。
画像処理回路120は、画像信号入力回路110から入力したデジタル画像信号を、画像データとしてDRAM130に1フレーム毎に書き込む。DRAM130としては、例えば、DDR−SDRAMを用いることができる。画像処理回路120は、CPU210からの指示に応じてDRAM130に書き込んだ画像データに対して、輝度や彩度の調整といった種々の色調補正を行うことができる。
キャッシュ制御回路150は、DRAM130から画像データを読み込み、読み込んだデータをキャッシュメモリ160に一時的に保持する回路である。キャッシュメモリ160は、本願の「ブロックデータ記憶メモリ」に対応する。キャッシュ制御回路150は、キーストーン補正回路140からデータのリード要求があると、要求されたデータが、キャッシュメモリ160に既に保持されているか否かを判断する。その結果、キャッシュメモリ160に既に保持されていれば、DRAM130から読み込みを行うことなく、要求されたデータをキャッシュメモリ160から読み込み、キーストーン補正回路140に出力する。一方、キャッシュメモリ160に保持されていなければ、DRAM130から目的のデータを読み出した上で、これをキャッシュメモリ160に書き込み、更に、そのデータを、キーストーン補正回路140に出力する。なお、キャッシュメモリ160としては、DRAM130よりも高速なアクセスが可能な他のDRAMやSRAMを用いることができる。
キーストーン補正回路140は、投写スクリーンSC上に表示された画像の台形歪みを補正するための回路である。キーストーン補正回路140は、本実施例では、プロジェクタ10を投写スクリーンSCに対して、左側あるいは右側に設置した場合に生じる水平方向の台形歪みの補正を行う。
図2は、投写スクリーンSC上に表示された画像に生じる台形歪みの例を示す説明図である。図2(a)には、投写スクリーンSCに対して左側から画像を投写した場合に生じる台形歪みを示した。プロジェクタ10は、投写スクリーンSCに対して拡大投写を行うため、プロジェクタ10と投写スクリーンSC間の距離が遠いほど、画像は拡大して表示されることになる。従って、図2(a)のように、投写スクリーンSCに対して左側から画像を投写すると、投写スクリーンSC上に表示された画像は、左端から右端にいくにつれ、画像の上下幅が広くなるように表示されることになる。
一方、図2(b)には、投写スクリーンSCに対して、右側から画像を投写した場合に生じる台形歪みを示した。図示するように、この場合には、投写スクリーンSC上に表示された画像は、右端から左端にいくにつれ、画像の上下幅が広くなるように表示されることになる。
説明を図1に戻す。キーストーン補正回路140は、図2に示した台形歪みを解消するための補正量(以下、「キーストーン補正量」という)をCPU210から入力し、かかるキーストーン補正量に基づき、DRAM130から入力した画像データに対してキーストーン補正を行う。キーストーン補正回路140は、キーストーン補正を行うと、補正後の画像データをフレーム単位で表示画像バッファ145に格納する。なお、キーストーン補正の具体的な方法については後述する。
液晶ドライバ170は、キーストーン補正回路140の表示画像バッファ145から1フレーム分の画像データを入力し、かかる画像データの画素値(RGB階調値)に応じて、液晶パネル180を駆動する回路である。液晶パネル180の駆動は、同期分離回路112から水平同期信号や垂直同期信号を入力して、これらの信号に同期して行う。
液晶パネル180は、液晶ドライバ170によって駆動され、出力画像の形成を行う。液晶パネル180によって形成された出力画像は、光源ランプ190によって照射され、光学系200を介して投写スクリーンSC上に拡大投写される。
CPU210は、操作パネル220を介してユーザからキーストーン補正量の入力を受け付け、かかる補正量をキーストーン補正回路140に出力する。ユーザは、投写スクリーンSC上に表示された画像に生じている台形歪みの程度に応じて、キーストーン補正量を調整することができる。CPU210は、また、操作パネル220を介して、ユーザから輝度や彩度を補正するための補正量の入力を受け付け、かかる補正量を画像処理回路120に出力する。なお、キーストーン補正量は、CPU210が、投写スクリーンSCに対するプロジェクタ10の設置角度を自動的に検出し、かかる検出結果に応じてCPU210が設定するものとしてもよい。
B.キーストーン補正の概念:
図3は、キーストーン補正回路140によって行われるキーストーン補正の概念を示す説明図である。図3(a)には、図2(a)に示したように、投写スクリーンSCに対して左側から画像を投写した場合に生じる台形歪みを補正する方法を示した。この場合、キーストーン補正回路140は、図2(a)に示した歪みと左右で逆の歪みを有する画像を補正後の画像として生成することにより台形歪みを補正する。なお、以下では、投写スクリーンSCに対して、左側から画像を投写した場合に生じる台形歪みを補正することを、「左投写補正」という場合がある。
一方、図3(b)には、図2(b)に示したように、投写スクリーンSCに対して右側から画像を投写した場合に生じる台形歪みを補正する方法を示した。この場合、キーストーン補正回路140は、図2(b)に示した歪みと左右で逆の歪みを有する画像を補正後の画像として生成することにより台形歪みを補正する。なお、以下では、投写スクリーンSCに対して、右側から画像を投写した場合に生じる台形歪みを補正することを、「右投写補正」という場合がある。
キーストーン補正回路140は、図3(a),(b)の右側に示した補正後の画像を生成するために、補正後の画像の水平方向の各ラインに対応する画素データを、補正前の画像データから、図3(a),(b)の左側に示した矢印のように読込角度を変化させつつ読み込む。読込角度Dは、例えば、次のように求めることができる。すなわち、CPU210によって設定されたキーストーン補正量Cに応じた読込角度の最大値をDm、1フレームあたりの最大ライン数をYm、読込角度を求めようとする現在のラインのY座標をYとすると、図3(a)に示した左投写補正の場合には、下記式(1)によって読込角度Dを求めることができる。また、図3(b)に示した右投写補正の場合には、下記式(2)によって読込角度Dを求めることができる。なお、読込角度Dは、下記式のように関数を用いて算出するものとしてもよいが、読込角度Dと、キーストーン補正量Cに応じた読込角度の最大値Dmと、補正前のラインのY座標との対応関係を定義した所定のテーブルを参照して求めるものとしてもよい。
D=−Dm+(2・Dm・Y/Ym) …(1)
D=Dm−(2・Dm・Y/Ym) …(2)
上記式(1),(2)において、CPU210によって設定されたキーストーン補正量Cと読込角度の最大値Dmとの関係は、キーストーン補正量Cが、0から100までの値をとり、読込角度の上限が45°であると仮定すれば、例えば、下記式(3)のように表すことができる。
Dm=0.45・C …(3)
ここで、上述した式(1),(2)によって算出された読込角度Dの値を用いれば、キーストーン補正回路140は、補正後の画像の座標X,Yに対応する補正前の画像の座標X2,Y2を、次式(4)〜(6)によって簡易的に求めることができる。なお、式(5)は、図3(a)に示した左投写補正を行う場合の座標Y2を表し、式(6)は、図3(b)に示した右投写補正を行う場合の座標Y2を表している。また、Xmとは、X座標の最大値を表している。
X2=X …(4)
Y2=Y−X・tan(D) …(5)
Y2=Y+(Xm−X)・tan(D) …(6)
キーストーン補正回路140は、画素データを斜め方向に読み込む際に、補正前の画像データから4×4画素のブロック単位で画素データを読み出す。こうすることで、上記式(4)〜(6)で求めた補正前の画素の位置が、その座標系の格子点上に存在しなくても、その位置を包含する周囲16画素の画素値を用いた補間処理によって、補正後の画素の画素値を求めることができる。なお、以下では、4×4画素からなる画素データを「ブロックデータ」と呼ぶ。
周囲16画素の画素値を用いた補間の手法として、キーストーン補正回路140は、補正前の画像から読み出した4×4画素のブロックデータと、4×4の行列によって規定された所定の補間フィルタとを積算することで、補正後の画素の画素値を求める。補間フィルタとしては、例えば、下記式(7)のようなフィルタFを用いることができる。
Figure 0004706458
補正前の画像データから読み込んだブロックデータの各画素値をr00,r01,r02,r03,r10,…,とすると、上記式(7)に示した補間フィルタFを用いて、下記式(8)によって補正後の画素値R2を求めることができる。かかる計算は、RGBの各色毎に行う。
Figure 0004706458
なお、ブロックデータは、4×4のサイズを有するものとしたため、補正前の画像の座標X,Yと、ブロックの位置を表すブロック座標XE,YEとは、次式(9),(10)の関係を有することになる。
XE=X/4 …(9)
YE=Y/4 …(10)
C.キャッシュメモリのデータ構造:
次に、DRAM130から読み込んだブロックデータをキャッシュするキャッシュメモリ160のデータ構造について、図4ないし図6に基づき説明する。
図4は、キーストーン補正回路140が、斜め方向に補正前の画像データをブロック単位で読み出した例を示す説明図である。図4(a)には、読込角度が0°の場合の例を示し、図4(b)には、読込角度が約+20°、図4(c)には、読込角度が約+25°、図4(d)には、読込角度が+45°の例を示した。図示するように、例えば、図4(b)では、1つのYE座標あたり、X軸方向に最大6ブロック分のブロックデータが読み込まれることになる。また、図4(c)では、1つのYE座標あたり、X軸方向に最大4ブロック分のブロックデータが読み込まれる。このように、斜め方向にブロックデータを読み出す場合には、その読込角度Dに応じて、1つのYE座標についてX軸方向に読み込まれるブロックデータの最大数が変化していくことになる。
キャッシュ制御回路150は、図4のように斜め方向に読み出しを行うライン単位でブロックデータをキャッシュメモリ160に保持する。そのため、最もキャッシュの容量が少なくなるのは、ブロックの数が最も少なくなる読込角度が0°の場合である(図4(a)参照)。
ここで、プロジェクタ10によって表示を行う画像の解像度を、最大1024×1024画素と仮定すると、読込角度が0°の場合のキャッシュ容量は、次のように計算することができる。すなわち、1画素あたりのRGB階調値が計32ビットであれば、1ブロック分のデータ容量は、64バイト(=32ビット×16画素)となり、下記式(11)によって16Kバイトと算出される。
(1024画素/4画素)×64バイト=16KB …(11)
これに対して、最もキャッシュの容量が多くなるのは、読込角度が45°の場合である(図4(d)参照)。このとき、キャッシュの容量は、下記式(12)によって67Kバイトと算出することができる。なお、1ブロック分の容量である64バイトに「3」を乗じているのは、図4(d)に示すように、角度45°で読み出しを行うと、読み出しライン上に位置する1つのブロックの周囲2ブロック分も同時に読み込まれるためである。
((1024画素/cos45°)/4画素)×64バイト×3=67KB …(12)
以上より、プロジェクタ10によって表示を行う画像の解像度が最大1024×1024画素であれば、キャッシュメモリ160の容量としては、最大67KB分の容量が必要となる。
図5は、キャッシュメモリ160のデータ構造を示す説明図である。図示するようにキャッシュメモリ160は、ブロック座標YEに対応する複数のエントリからなり、1つのエントリには、EL個分のブロックデータが記憶される。エントリ数Nと、1エントリあたりに記憶されるブロック数ELとは、キーストーン補正回路140によるブロックデータの読込角度Dに応じて可変される。つまり、図4に示したように、読込角度が0°の場合には、エントリ数Nは「1」で足り、ブロック数ELは「256」だけ必要となる。また、読込角度が45°の場合には、エントリ数Nは「256」となり、ブロック数ELは「3」となる。
図6は、読込角度Dに応じたブロック数ELとエントリ数Nの対応関係を定義したキャッシュ構造テーブルTBLを示す説明図である。図示するように、このキャッシュ構造テーブルTBLには、ブロックデータの読込角度Dに応じて、キャッシュメモリ160に確保するエントリ数Nと、ブロック数ELとが対応付けて記憶されている。キャッシュ制御回路150は、キーストーン補正回路140から読込角度Dの変更を受けると、このキャッシュ構造テーブルTBLに従い、エントリ数Nとブロック数ELとを可変させ、キャッシュメモリ160のデータ構造を変更する。ただし、図6に示すように、キャッシュ構造テーブルTBLには、0°から45°までの角度範囲内において、読込角度Dが、5°ずつ区分して定義されている。従って、読込角度Dが1区分内で変更されたとしてもキャッシュメモリ160の構造は変更されず、区分の変更を伴う読込角度Dの変化があった場合に、はじめて、キャッシュメモリ160の構造が変更されることになる。こうすることによって、一旦キャッシュされたブロックデータを効率的に利用することが可能になる。なお、本実施例では、読込角度Dの区分は5°であるものとしたが、ブロックデータのサイズに応じて、かかる区分の設定を変更してもよい。例えば、ブロックデータのサイズが、2×2などの比較的小さなサイズであれば、区分を2°や3°などに設定することができ、ブロックデータのサイズが、8×8等の比較的大きなサイズであれば、区分を10°などに設定することができる。
図7および図8は、キャッシュ制御回路150がキャッシュメモリ160にデータを書き込む順序を示す説明図である。図7には、読込角度Dがゼロ以上の場合の書込順序を示し、図8には、読込角度Dがマイナスの場合の書込順序を示した。
図7に示すように、読込角度Dがゼロ以上の場合にキャッシュミスが生じれば、キャッシュ制御回路150は、DRAM130から読み込んだブロックデータを、エントリ内のアドレスの低い順から書き込む。アドレスの低い順からブロックデータを書き込んだ結果、書き込みを行うブロックデータの数が、1エントリ内に入るブロック数ELを超えた場合には、再度、同じエントリの最も低いアドレスに対して書き込みを行う。
一方、図8に示すように、読込角度Dがマイナスの場合にキャッシュミスが生じれば、キャッシュ制御回路150は、DRAM130から読み込んだブロックデータを、エントリ内のアドレスの高い順から書き込む。アドレスの高い順からブロックデータを書き込んだ結果、書き込みを行うブロックデータの数が、1エントリ内に入るブロック数ELを超えた場合には、再度、同じエントリの最も高いアドレスに対して書き込みを行う。
以上で説明したキャッシュデータの書き込み順によれば、キーストーン補正時におけるブロックの読込角度Dがプラスかマイナスかに応じてブロックデータが最適な順でキャッシュメモリ160に格納されるので、キャッシュ制御回路150は、キーストーン補正回路140からの求めに応じて容易にキャッシュメモリ160から目的のブロックデータを読み出すことが可能になる。
D.キャッシュ制御回路の詳細:
図9は、キャッシュ制御回路150の詳細な構成を示す説明図である。図示するように、キャッシュ制御回路150は、X座標変換回路300と、Y座標変換回路310と、図6に示したキャッシュ構造テーブルTBLを保持するキャッシュ構造変更回路350と、キャッシュ構造変更回路350に接続されたライトポインタ制御回路320と、Y座標変換回路310およびキャッシュ構造変更回路350に接続されたタグRAM330と、タグRAM330およびX座標変換回路300に接続されたキャッシュ判定回路340と、キャッシュ判定回路340に接続されたDRAM制御回路360と、タグRAM330およびX座標変換回路300に接続された減算器370と、減算器370およびタグRAM330に接続された加算器380と、キャッシュ判定回路340、加算器380およびライトポインタ制御回路320に接続されたアドレス演算器390と、アドレス演算器390およびDRAM制御回路360に接続されたキャッシュメモリ160と、タグRAM330、キャッシュ判定回路340およびライトポインタ制御回路320に接続されたタグRAM更新回路400とを備えている。
図10は、図9中に示したタグRAM330の構造を示す説明図である。タグRAM330は、キャッシュメモリ160内にキャッシュされているブロックデータの位置を管理するための管理用メモリである。図示するように、タグRAM330には、キャッシュメモリ160の各エントリに対応して識別子VALIDと、X座標最小値MINXと、X座標最大値MAXXと、アドレスADRとが記憶されている。
識別子VALIDは、キャッシュメモリ160上の対応するエントリが有効であるか無効であるかを表す識別子である。この識別子VALIDの値が「1」の場合には、そのエントリは有効であり、「0」の場合には無効であることを表す。X座標最小値MINXは、そのエントリにキャッシュされているブロックデータのXE座標の最小値を表し、X座標最大値MAXXは、そのエントリにキャッシュされているブロックデータのXE座標の最大値を表す。また、アドレスADRは、X座標最小値MINXのデータがキャッシュされているキャッシュメモリ160上の実アドレスを表している。図11には、タグRAM330によって管理されるキャッシュメモリ160上のデータの格納状態を模式的に示した。かかる構造のタグRAMを用いれば、キャッシュメモリ160上に格納したブロックデータの位置の管理と、キャッシュのヒット判定を容易に行うことが可能になる。
(D−1)ブロックデータ読み出し処理:
図12は、キャッシュ制御回路150がキーストーン補正回路140からの求めに応じてブロックデータを読み出す手順を示すフローチャートである。キャッシュ制御回路150には、キーストーン補正回路140から補正後の画像の座標X,Yに対応する補正前の画像の座標X2,Y2がライン毎に順次走査されて入力される。そのため、図示するように、キャッシュ制御回路150は、まず、X座標変換回路300によって、キーストーン補正回路140から上記式(4)によって算出された座標X2を入力すると共に、Y座標変換回路310によって、キーストーン補正回路140から上記式(5)または式(6)によって算出された座標Y2を入力する。そして、更に、キャッシュ構造変更回路350によって、キーストーン補正回路140から上記式(1)または式(2)によって算出された読込角度Dを入力する(ステップS100)。
キャッシュ構造変更回路350は、読込角度Dを入力すると、読込角度Dの変化に伴い、キャッシュ構造テーブルTBL(図6)内の読込角度Dの区分が変更されたかを判定する。また、かかる判定とともに、左投写補正時において角度Dが最大であるか、もしくは右投写補正時において角度Dが最小であるかを判定する(ステップS110)。その結果、これらの条件を1つでも満たせば、読込角度Dの大きな変更や1フレーム分のキーストーン補正の完了により、キャッシュメモリ160に既にキャッシュされたブロックデータを利用することができなくなるため、キャッシュメモリ160およびライトポインタWPTRの初期化処理を行う(ステップS120)。
具体的な初期化処理としては、キャッシュ構造変更回路350は、図6に示したキャッシュ構造テーブルTBLに基づき、キャッシュメモリ160のエントリ数Nおよびブロック数ELの設定を変更し、更に、タグRAM330に記憶された識別子VALIDの値をすべてのエントリについて「0」とすることでキャッシュメモリ160の初期化を行う。また、キャッシュ構造変更回路350は、ライトポインタ制御回路320に指示を与えて、ライトポインタWPTRの値を、読込角度Dが0以上の場合は「WPTR=0」とし、マイナスの場合は「WPTR=EL」することでライトポインタWPTRの初期化を行う。ライトポインタWPTRとは、キャッシュメモリ160の1エントリ内で、ブロックデータの書き込みを行うべきアドレスを管理するカウンタである。
上記ステップS100ないしステップS120の処理が完了すると、キャッシュ制御回路150は、X座標変換回路300およびY座標変換回路310によって、キーストーン補正回路140から入力した補正後の座標X2,Y2をそれぞれ1/4にすることで、座標X2,Y2に対応するブロック座標XE,YEを求める(ステップS130)。
ブロック座標XE,YEが算出されると、Y座標変換回路310は、ブロック座標YEに対応するタグRAM330内のエントリをアクセスする(ステップS140)。すると、タグRAM330は、かかるアクセスを受けて、ブロック座標YEに対応したエントリから、識別子VALIDとX座標最小値MINXとX座標最大値MAXXとを、キャッシュ判定回路340に出力する。このとき、タグRAM330は、同時に、減算器370に対して、X座標最小値MINXの値を出力するとともに、加算器380に対して、アドレスADRの値を出力する。
キャッシュ判定回路340は、タグRAM330から識別子VALID、X座標最小値MINX、X座標最大値MAXX、アドレスADRの各値を入力し、更に、X座標変換回路300からブロック座標XEの値を入力すると、識別子VALIDが「1」であり、かつ、ブロック座標XEがX座標最小値MINX以上、X座標最大値MAXX以下の範囲に含まれるか否かを判定する(ステップS150)。
上記ステップS150において、識別子VALIDが「1」であり、かつ、ブロック座標XEがX座標最小値MINX以上、X座標最大値MAXX以下の範囲に含まれると判定された場合には(ステップS150:Yes)、キーストーン補正回路140から入力した座標X2,Y2に対応するブロックデータがキャッシュメモリ160にすでにキャッシュされていることになり、キャッシュヒットと判定される。そのため、この場合には、キャッシュ制御回路150は、キャッシュメモリ160からブロックデータを読み込むためのリードアドレスRDADRを算出する(ステップS160)。
リードアドレスRDADRは次のように算出される。すなわち、図9中の減算器370が、タグRAM330からX座標最小値MINXの値を入力するとともに、X座標変換回路300からブロック座標XEの値を入力する。そして、ブロック座標XEからX座標最小値MINXの値を減算することで、これらの値の差分を算出する。減算器370は、かかる差分の値を加算器380に出力すると、加算器380が、かかる差分の値とともに、タグRAM330からアドレスADRの値を入力し、これらの値を加算する。つまり、キャッシュ制御回路150は、減算器370と加算器380との働きにより、次式(13)と等価な演算を行うことになる。加算器380は、リードアドレスRDADRの値を算出すると、その値を、アドレス演算器390に出力する。
RDADR=ADR+(XE−MINX)) …(13)
アドレス演算器390は、リードアドレスRDADRの値を加算器380から入力すると、キャッシュメモリ160のそのアドレスRDADRに対してアクセスを行い、4×4画素のブロックデータをリードする(ステップS170)。すると、キャッシュメモリ160からは、キーストーン補正回路140に対して、補正後の座標X2,Y2に対応するブロックデータが出力される(ステップS230)。
上記ステップS150において、識別子VALIDが「0」であるか、もしくは、ブロック座標XEがX座標最小値MINX以上、X座標最大値MAXX以下の範囲に含まれないと判断された場合には(ステップS150:No)、座標X2,Y2に対応するブロックデータがキャッシュメモリ160にキャッシュされていないことになり、キャッシュミスと判定される。そのため、キャッシュ制御回路150は、DRAM制御回路360を用いてDRAM130にアクセスし(ステップS180)、ブロック座標XE,YEに対応する1ブロック分のデータを、DRAM130から読み込む(ステップS190)。そして、キャッシュメモリ160のライトアドレスWTADRに、このデータの書き込みを行う(ステップS200)。書き込みを行うライトアドレスWTADRは、アドレス演算器390によって、次式(14)のように算出される。すなわち、ライトアドレスWTADRは、ブロック座標YEにブロック数ELを乗じて、ライトポインタWPTRの値を加算したアドレスとなる。
WTADR=YE・EL+WPTR …(14)
キャッシュ制御回路150は、DRAM130から読み出したブロックデータをキャッシュメモリ160に書き込むと、新たに書き込んだブロックデータの位置を管理するため、タグRAM更新回路400によって、現在のブロック座標YEに対応するタグRAM330のエントリについて更新処理を行う(ステップS210)。かかる更新処理の詳細については後述する。
タグRAM330の更新処理が終了すると、キャッシュ制御回路150は、ライトポインタ制御回路320によって、ライトポインタWPTRの値を更新する(ステップS220)。具体的には、読込角度Dが0以上の場合には、ライトポインタWPTRの値を、インクリメントし(WPTR=WPTR+1)、マイナスの場合には、デクリメントする(WPTR=WPTR−1)。こうすることで、キャッシュミスが発生した場合に、次に書き込みを行うべきキャッシュメモリ160上のアドレスが、図7もしくは図8のように移動することになる。
ライトポインタWPTRを更新すると、キャッシュ制御回路150は、上記ステップS190においてDRAM130から読み込んだデータを、キャッシュメモリ160を介して、キーストーン補正回路140に出力する(ステップS230)。
以上で説明したブロックデータの読み出し手順によれば、キャッシュ制御回路150は、キーストーン補正回路140から順次入力した座標X2,Y2に応じて、その座標に対応したブロックデータを、キャッシュメモリ160またはDRAM130から読み込み、キーストーン補正回路140に対して出力する。キーストーン補正回路140は、キャッシュ制御回路150からブロックデータを入力すると、そのブロックデータを用いて、補正後の画像の各画素についてライン毎に画素値を補間し、補正後の画像を生成する。このように生成された補正後の画像は、表示画像バッファ145に1フレーム分記憶される。1フレーム分の画像の生成においては、キャッシュメモリ160に記憶されたブロックデータが適宜用いられるため、全ての画素データをDRAM130から読み込むよりも、全体として高速にキーストーン補正を行うことが可能になる。
(D−2)タグRAM更新処理:
図13は、図12のステップS210で示したタグRAM330の更新処理の手順を示すフローチャートである。この更新処理が実行されると、まず、タグRAM更新回路400は、現在のブロック座標YEに対応するタグRAM330内のエントリの識別子VALIDが「1」であるか否かを判定する(ステップS300)。その結果、識別子VALIDが「0」であれば(ステップS300:No)、そのエントリが上記ステップS120による初期化処理等によって無効化されており、その結果、キャッシュミスが発生したと判断できる。そこで、上記ステップS200によってDRAM130からキャッシュメモリ160に転送されたブロックデータの位置を管理するため、次のように、タグRAM330の各パラメータを更新する。すなわち、現在のブロック座標YEに対応するタグRAM330のエントリの識別子VALIDを「1」とすることで、そのエントリを有効化し、X座標最小値MINXの値とX座標最大値MAXXの値とを、両者とも現在のブロック座標XEの値とする。そして、X座標最小値MINXのブロックデータの格納位置を表すアドレスADRを、上記式(14)に示したライトアドレスWTADR(=YE・EL+WPTR)の値とする。
上記ステップS300によって、現在のブロック座標YEに対応するエントリの識別子VALIDが「1」であると判定された場合には(ステップS300:Yes)、そのエントリは有効であるが、現在のブロック座標XEが、X座標最小値MINXとX座標最大値MAXXとの間に存在しないと判断できる。そのため、かかるエントリ内の新たなアドレスに書き込まれたブロックデータの位置を管理するため、タグRAM更新回路400は、まず、読込角度Dが0以上であるかを判定する(ステップS320)。
上記ステップS320による判定の結果、読込角度Dが0以上であれば(ステップS320:Yes)、キャッシュメモリ160には、図7で示したように、新しいブロックデータは、エントリ内の大きいアドレスに向かって書き込まれている。そのため、タグRAM更新回路400は、X座標最小値MINXと識別子VALIDとアドレスADRの値を、現在のまま保持しつつ、X座標最大値MAXXの値を、現在のアドレスXEの値に置き換える。こうすることで、エントリ内の大きいアドレスに向かって書き込まれていくブロックデータの位置を管理することができる。
上記ステップS320による判定の結果、読込角度Dがマイナスの場合には(ステップS320:No)、キャッシュメモリ160には、図8で示したように、新しいブロックデータが、エントリ内の小さいアドレスに向かって書き込まれている。そのため、タグRAM更新回路400は、X座標最大値MAXXおよび識別子VALIDの値を、現在のまま保持しつつ、X座標最小値MINXの値を、現在のブロック座標XEの値に置き換え、更に、アドレスADRの値を、上記式(14)に示したライトアドレスWTADR(=YE・EL+WPTR)の値に置き換える。こうすることで、エントリ内の小さいアドレスに向かって書き込まれていくブロックデータの位置を管理することができる。
以上で説明したタグRAM330の更新処理によれば、キャッシュミスの発生によってDRAM130からキャッシュメモリ160に転送されたブロックデータの書き込み位置を的確に管理することが可能になる。
E.効果:
以上で説明した本実施例のプロジェクタ10によれば、水平方向の台形歪みを補正する際に、斜め方向への画素データの読み込みをブロック単位で行うことができる。そのため、補正前の画像から効率的に画素データを読み込むことができる。また、ブロック単位でDRAM130から読み出した画素データは、一旦、キャッシュメモリ160にキャッシュされる。そのため、斜め方向に読み込みを行うラインの読込角度Dが図6に示した1区分内で変更されたとしても、キャッシュメモリ160に既に記憶されたデータを利用して、補間を行うことができる。この結果、補間時に用いるすべての画素データをキャッシュメモリ160よりも低速なDRAM130から読み込む必要がなく、水平方向の台形歪み補正を高速に行うことが可能になる。
また、本実施例によれば、図6に示した読込角度Dの区分の変更を伴うような大きな読込角度Dの変化が発生した場合には、補間に利用することのできないブロックデータをキャッシュメモリ160上からクリアすることができる。そのため、キャッシュメモリ160のデータ容量を節減することが可能になる。
更に、本実施例では、斜め方向に読み込みを行うブロックデータのX方向およびY方向の数に応じて、キャッシュメモリ160のデータ構造を変更するものとした。そのため、キャッシュメモリ160の記憶領域を効率的に利用することができる。また、キャッシュメモリ160上に記憶されたブロックデータの位置を、キャッシュメモリ160を管理するために専用に用意したタグRAM330を用いて管理するものとしたため、目的のブロックデータがキャッシュメモリ160に格納されているか否かを、キャッシュメモリ160に直接アクセスすることなく、高速に判定することが可能になる。
F.変形例:
以上、本発明の種々の実施例について説明したが、本発明はこのような実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、以下のような変形が可能である。
(F−1)変形例1:
上記実施例では、DRAM130の連続したアドレス空間に画像データが記録されることを前提にキーストーン補正を行う例を示した。これに対して、本変形例では、DRAM130は、複数のバンクを有するものとする。
図14は、4つのバンクを有するDRAM130に、4×4画素の1つのブロックデータが記録された状態を模式的に示す説明図である。図示するように、本変形例では、DRAM130が、バンク0からバンク3までの4つのバンクを有するものとし、各バンクに対してライン毎に画素データ(RGBデータ)を記録するものとした。このとき、DRAM130のバースト長が16バイトだとすれば、各バンクから連続的に4画素分の画素データ(32ビット×4画素=16バイト)を読み出すことが可能である。
図15は、本変形例におけるDRAM130のアクセスタイミングを簡易的に示す説明図である。図15に示すように、DRAM130のアクセスサイクルは16クロックからなるものとする。本変形例において、キャッシュ制御回路150は、DRAM130からブロックデータを読み出す際に、まず、最初に、2クロックおきに各バンクに対して、バンクアクティブコマンドを発行して、各バンクを活性化する。そして、その後、1クロックおきに、各バンクに対して、リードコマンドを発行する。すると、計16バイト×8のデータが連続的にDRAM130から出力されることになる。リードコマンド発行の後には、プリチャージコマンドを発行することで、キャッシュ制御回路150は、DRAM130をプリチャージする。
一般に、DRAM130のバンク切り替えに必要な時間は、RASアドレスの切換に必要な時間よりも大幅に短い。そのため、本変形例のようにDRAM130を複数のバンクによって構成し、各バンクに跨って1ブロック分のデータを記憶させるものとすれば、連続的なアドレス空間からRASアドレスを切り換えつつブロックデータを読み込むよりも、格段にデータ転送を効率化することが可能になる。例えば、1クロックあたりのアクセス時間が7.5nsだとすると、XGAの解像度(1024×768)の1画面分をリードする時間は、下記式(15)のように、5.9msとなり、1フレーム表示時間(1/60秒)の35%程度の短時間で、1画面分の画素をリードすることが可能になる。
(1024/4)×(768/4)×7.5ns×16clk=5.9ms …(15)
(F−2)変形例2:
上記実施例では、プロジェクタ10が外部機器から入力した画像に対してキーストーン補正を行うものとした。しかし、キーストーン補正は、プロジェクタ10に限らず、コンピュータ等の他の画像処理装置によっても行うことができる。かかる場合には、上記実施例においてハードウェアによって実現した機能を、コンピュータに所定のコンピュータプログラムをインストールすることで、ソフトウェア的に実現するものとする。このような構成であれば、プロジェクタとコンピュータとを接続した投写システムにおいて、プロジェクタではなく、コンピュータによって、事前に画像をキーストーン補正することが可能になる。
(F−3)変形例3:
上記実施例では、4×4の補間フィルタを用いて単純な行列演算によって補間を行うものとしたが、その他にも、4×4の画素値にバイキュービック法を適用して、補正後の画素値を求めることができる。また、読み出しを行うブロックのサイズを2×2画素とし、最近傍法や線形補間法などによって補正後の画素値を求めるものとしてもよい。
また、上記実施例では、ブロックデータのサイズは、4×4である旨を記載した。しかし、ブロックデータのサイズは、これらのサイズに限らず、3×2や、3×3、4×1、4×2等の任意のN×Mのサイズとすることができる。ただし、ブロックデータのサイズをN×Mとする場合には、補間フィルタのサイズもN×Mのサイズを有するものとする。
プロジェクタ10のハードウェア構成を示す説明図である。 投写スクリーンSC上に表示された画像に生じる台形歪みの例を示す説明図である。 キーストーン補正の概念を示す説明図である。 画像データをブロック単位で斜め方向に読み出した例を示す説明図である。 キャッシュメモリ160のデータ構造を示す説明図である。 キャッシュ構造テーブルTBLを示す説明図である。 キャッシュ制御回路150がキャッシュメモリ160にデータを書き込む順序を示す説明図である。 キャッシュ制御回路150がキャッシュメモリ160にデータを書き込む順序を示す説明図である。 キャッシュ制御回路150の詳細な構成を示す説明図である。 タグRAM330の構造を示す説明図である。 タグRAM330によって管理されるキャッシュメモリ160上のデータの格納状態を模式的に示す説明図である。 キャッシュ制御回路150がキーストーン補正回路140からの求めに応じてブロックデータを読み出す手順を示すフローチャートである。 タグRAM330の更新処理の手順を示すフローチャートである。 4つのバンクを有するDRAM130に4×4画素の1つのブロックデータが記録された状態を模式的に示す説明図である。 DRAM130のアクセスタイミングを簡易的に示す説明図である。
符号の説明
10…プロジェクタ
110…画像信号入力回路
112…同期分離回路
114…A/D変換回路
120…画像処理回路
130…DRAM
140…キーストーン補正回路
145…表示画像バッファ
150…キャッシュ制御回路
160…キャッシュメモリ
170…液晶ドライバ
180…液晶パネル
190…光源ランプ
200…光学系
210…CPU
220…操作パネル
300…X座標変換回路
310…Y座標変換回路
320…ライトポインタ制御回路
330…タグRAM
340…キャッシュ判定回路
350…キャッシュ構造変更回路
360…DRAM制御回路
370…減算器
380…加算器
390…アドレス演算器
400…タグRAM更新回路
SC…投写スクリーン
TBL…キャッシュ構造テーブル

Claims (11)

  1. 画像を投写表示する際に生じる水平方向の台形歪みを補正して補正後の画像を表示する画像処理装置であって、
    前記補正の対象となる補正前の画像を記憶するフレームメモリと、
    前記フレームメモリから読み込まれた前記補正前の画像の一部を、N×M個の画素からなるブロックデータを単位として保持するブロックデータ記憶メモリと、
    前記補正後の画像の水平方向の各ラインに対応する前記補正前の画像のラインを前記補正前の画像から読み込むための読込角度を、前記補正の程度および前記水平方向の各ラインの位置に応じて設定する角度設定手段と、
    前記補正後の画像の各画素の位置に対応する前記補正前の画像における画素位置を、前記角度設定手段によって設定された読込角度を用いて前記ラインに沿って求める座標変換手段と、
    前記座標変換手段によって求められた前記補正前の画素位置を包含するブロックデータが、前記ブロックデータ記憶メモリに保持されているか否かを判定する判定手段と、
    前記判定手段による判定結果に応じて、前記補正前の画素位置を包含するブロックデータを、前記ブロックデータ記憶メモリおよび前記フレームメモリの少なくともいずれか一方から読み込むとともに、前記補正前の画素位置を包含するブロックデータが前記ブロックデータ記憶メモリに保持されていない場合には、前記フレームメモリから読み込んだブロックデータを前記ブロックデータ記憶メモリに書き込む読込制御手段と、
    前記読込制御手段によって読み込んだ前記ブロックデータ内の画素の画素値を用いて、前記補正後の画像における各画素の画素値を前記ライン毎に求め、前記表示される補正後の画像を生成する表示画像生成手段と
    前記読込角度は所定の角度範囲内において複数に区分されており、前記角度設定手段によって設定された読込角度の区分が変化した場合に、前記ブロックデータ記憶メモリをクリアする手段と、
    前記ブロックデータ記憶メモリは、一または複数の前記ブロックデータを格納する一または複数のエントリから構成されており、前記角度設定手段によって設定された前記読込角度の前記区分に応じて、前記エントリの数と、1エントリあたりに格納可能な前記ブロックデータの数とを設定するキャッシュ構造設定手段と、
    を備える画像処理装置。
  2. 請求項1に記載の画像処理装置であって、
    前記読込制御手段は、前記判定手段によって前記補正前の画素位置を包含するブロックデータが前記ブロックデータ記憶メモリに保持されていると判定された場合に、前記ブロックデータ記憶メモリから該ブロックデータを読み込み、前記判定手段によって前記補正前の画素位置を包含するブロックデータが前記ブロックデータ記憶メモリに保持されていないと判定された場合に、前記フレームメモリから該ブロックデータを読み込むとともに該読み込んだブロックデータを前記ブロックデータ記憶メモリに書き込む
    画像処理装置。
  3. 請求項1または請求項2に記載の画像処理装置であって、
    前記キャッシュ構造設定手段は、前記読込角度の区分と前記エントリ数と前記ブロックデータの数とが対応付けて記録された所定のテーブルに基づき、前記読込角度の区分に応じて、前記エントリ数と前記ブロックデータの数とを設定する
    画像処理装置。
  4. 請求項に記載の画像処理装置であって、
    前記キャッシュ構造設定手段が参照する前記テーブルには、前記エントリ数が、前記区分に応じて前記補正前の画像から読み出される前記ブロックデータのY方向への数に応じて定義されており、前記ブロックデータの数が、前記区分に応じて前記補正前の画像から読み出される前記ブロックデータのX方向への1エントリあたりの最大個数に応じて定義されている
    画像処理装置。
  5. 請求項1ないし請求項4のいずれかに記載の画像処理装置であって、
    前記読込制御手段は、前記判定手段によって前記補正前の画素位置を包含するブロックデータが前記ブロックデータ記憶メモリに保持されていないと判定された場合において、前記フレームメモリから読み込んだブロックデータを、前記読込角度が0以上の場合には、前記エントリ内のアドレスの低い順に書き込み、前記読込角度が0未満の場合には、前記エントリ内の、アドレスの高い順に書き込む
    画像処理装置。
  6. 請求項1ないし請求項のいずれかに記載の画像処理装置であって、
    前記表示画像生成手段は、前記ブロックデータ内の各画素の画素値と、N×Mの行列からなる所定の補間フィルタとを乗じることで、前記補正後の画像における各画素の画素値を求める
    画像処理装置。
  7. 請求項1ないし請求項のいずれかに記載の画像処理装置であって、
    前記フレームメモリは、M個のバンクから構成されており、前記補正前の画像を、ライン毎に前記M個のバンクに割り振って記憶する
    画像処理装置。
  8. 請求項1ないし請求項のいずれかに記載の画像処理装置を備えたプロジェクタ。
  9. 画像処理装置が、画像を投写表示する際に生じる水平方向の台形歪みを補正して補正後の画像を表示する画像処理方法であって、
    前記画像処理装置は、前記補正の対象となる補正前の画像を記憶するフレームメモリと、前記フレームメモリから読み込まれた前記補正前の画像の一部を、N×M個の画素からなるブロックデータを単位として保持するブロックデータ記憶メモリとを備えており、
    前記補正後の画像の水平方向の各ラインに対応する前記補正前の画像のラインを前記補正前の画像から読み込むための読込角度を、前記補正の程度および前記水平方向の各ラインの位置に応じて設定し、
    前記補正後の画像の各画素の座標に対応する前記補正前の画像における画素位置を、前記設定された読込角度を用いて前記ラインに沿って求め、
    前記求められた前記補正前の画素位置を包含するブロックデータが、前記ブロックデータ記憶メモリに保持されているか否かを判定し、
    前記判定の結果に応じて、前記補正前の画素位置を包含するブロックデータを、前記ブロックデータ記憶メモリおよび前記フレームメモリの少なくともいずれか一方から読み込むとともに、前記補正前の画素位置を包含するブロックデータが前記ブロックデータ記憶メモリに保持されていない場合には、前記フレームメモリから読み込んだブロックデータを前記ブロックデータ記憶メモリに書き込み、
    前記読み込んだブロックデータ内の画素の画素値を用いて、前記補正後の画像における各画素の画素値を前記ライン毎に求め、前記表示される補正後の画像を生成し、
    前記読込角度は所定の角度範囲内において複数に区分されており、前記設定された読込角度の区分が変化した場合に、前記ブロックデータ記憶メモリをクリアし、
    前記ブロックデータ記憶メモリは、一または複数の前記ブロックデータを格納する一または複数のエントリから構成されており、前記設定された読込角度の前記区分に応じて、前記エントリの数と、1エントリあたりに格納可能な前記ブロックデータの数とを設定する
    画像処理方法。
  10. コンピュータが、画像を投写表示する際に生じる水平方向の台形歪みを補正して補正後の画像を表示するためのコンピュータプログラムであって、
    前記コンピュータは、前記補正の対象となる補正前の画像を記憶するフレームメモリと、前記フレームメモリから読み込まれた前記補正前の画像の一部を、N×M個の画素からなるブロックデータを単位として保持するブロックデータ記憶メモリとを備えており、
    前記補正後の画像の水平方向の各ラインに対応する前記補正前の画像のラインを前記補正前の画像から読み込むための読込角度を、前記補正の程度および前記水平方向の各ラインの位置に応じて設定する機能と、
    前記補正後の画像の各画素の位置に対応する前記補正前の画像における画素位置を、前記設定された読込角度を用いて前記ラインに沿って求める機能と、
    前記求められた前記補正前の画素位置を包含するブロックデータが、前記ブロックデータ記憶メモリに保持されているか否かを判定する機能と、
    前記判定の結果に応じて、前記補正前の画素位置を包含するブロックデータを、前記ブロックデータ記憶メモリおよび前記フレームメモリの少なくともいずれか一方から読み込むとともに、前記補正前の画素位置を包含するブロックデータが前記ブロックデータ記憶メモリに保持されていない場合には、前記フレームメモリから読み込んだブロックデータを前記ブロックデータ記憶メモリに書き込む機能と、
    前記読み込んだブロックデータ内の画素の画素値を用いて、前記補正後の画像における各画素の画素値を前記ライン毎に求め、前記表示される補正後の画像を生成する機能と
    前記読込角度は所定の角度範囲内において複数に区分されており、前記設定された読込角度の区分が変化した場合に、前記ブロックデータ記憶メモリをクリアする機能と、
    前記ブロックデータ記憶メモリは、一または複数の前記ブロックデータを格納する一または複数のエントリから構成されており、前記設定された読込角度の前記区分に応じて、前記エントリの数と、1エントリあたりに格納可能な前記ブロックデータの数とを設定する機能と
    をコンピュータに実現させるためのコンピュータプログラム。
  11. 請求項10に記載のコンピュータプログラムを記録したコンピュータ読取可能な記録媒体。
JP2005340117A 2005-11-25 2005-11-25 画像処理装置および画像処理方法 Active JP4706458B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005340117A JP4706458B2 (ja) 2005-11-25 2005-11-25 画像処理装置および画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005340117A JP4706458B2 (ja) 2005-11-25 2005-11-25 画像処理装置および画像処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010291414A Division JP5387558B2 (ja) 2010-12-28 2010-12-28 画像処理装置および画像処理方法

Publications (2)

Publication Number Publication Date
JP2007150531A JP2007150531A (ja) 2007-06-14
JP4706458B2 true JP4706458B2 (ja) 2011-06-22

Family

ID=38211433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005340117A Active JP4706458B2 (ja) 2005-11-25 2005-11-25 画像処理装置および画像処理方法

Country Status (1)

Country Link
JP (1) JP4706458B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5012590B2 (ja) * 2008-03-10 2012-08-29 セイコーエプソン株式会社 画像処理装置、プロジェクタおよび画像処理方法
JP5217537B2 (ja) * 2008-03-18 2013-06-19 セイコーエプソン株式会社 プロジェクタ、電子機器、および、プロジェクタの制御方法
JP5348022B2 (ja) * 2010-03-05 2013-11-20 セイコーエプソン株式会社 プロジェクターおよび射影変換処理装置
JP5353772B2 (ja) * 2010-03-09 2013-11-27 セイコーエプソン株式会社 プロジェクター
JP5348035B2 (ja) * 2010-03-19 2013-11-20 セイコーエプソン株式会社 プロジェクター
JP5533109B2 (ja) * 2010-03-24 2014-06-25 セイコーエプソン株式会社 画像表示装置、プロジェクター、および、画像表示装置におけるデータの取得方法
JP5606341B2 (ja) * 2011-01-19 2014-10-15 株式会社東芝 画像処理装置及び画像処理システム
JP5708072B2 (ja) * 2011-03-14 2015-04-30 大日本印刷株式会社 画像変形装置および命令付加装置
JP5958079B2 (ja) * 2012-05-22 2016-07-27 株式会社Jvcケンウッド 投射装置、画像補正方法およびプログラム
JP6306834B2 (ja) * 2013-07-24 2018-04-04 キヤノン株式会社 画像処理装置および画像処理方法
JP2016103169A (ja) * 2014-11-28 2016-06-02 株式会社リコー 画像処理装置、画像処理方法および電子機器
JP6373904B2 (ja) * 2016-07-07 2018-08-15 株式会社メガチップス データ転送装置およびデータ転送方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612489A (ja) * 1992-06-29 1994-01-21 Fujitsu Ltd 画像処理装置及び画像処理方法
WO2004034326A1 (ja) * 2002-10-08 2004-04-22 Sony Corporation 画像変換装置、画像変換方法、および、画像投射装置
JP2004349979A (ja) * 2003-05-21 2004-12-09 Sony Corp 画像処理装置、画像処理方法および画像投射装置
JP2005012407A (ja) * 2003-06-18 2005-01-13 Sony Corp 画像投射装置および画像処理方法
JP2005222180A (ja) * 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd 画像データ配置方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612489A (ja) * 1992-06-29 1994-01-21 Fujitsu Ltd 画像処理装置及び画像処理方法
WO2004034326A1 (ja) * 2002-10-08 2004-04-22 Sony Corporation 画像変換装置、画像変換方法、および、画像投射装置
JP2004349979A (ja) * 2003-05-21 2004-12-09 Sony Corp 画像処理装置、画像処理方法および画像投射装置
JP2005012407A (ja) * 2003-06-18 2005-01-13 Sony Corp 画像投射装置および画像処理方法
JP2005222180A (ja) * 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd 画像データ配置方法

Also Published As

Publication number Publication date
JP2007150531A (ja) 2007-06-14

Similar Documents

Publication Publication Date Title
JP4706458B2 (ja) 画像処理装置および画像処理方法
JP5348022B2 (ja) プロジェクターおよび射影変換処理装置
US8300978B2 (en) Projector, electronic apparatus, and method of controlling projector
JP2005114773A (ja) コントローラドライバ,表示装置,及びそれらの動作方法
JP5387558B2 (ja) 画像処理装置および画像処理方法
JP5348035B2 (ja) プロジェクター
JP2006065869A (ja) 元の画像から拡大画像を作成することにより表示用に画像データを拡張する画像処理方法、表示用に画像データを拡張する画像処理装置、及び表示用に画像データを拡張するためのコンピュータ・システム
JP4487959B2 (ja) 画像処理装置および画像処理方法、並びにプログラム
JP5569312B2 (ja) メモリアクセス判定回路、メモリアクセス判定方法、キャッシュ制御装置および電子機器
JP5533109B2 (ja) 画像表示装置、プロジェクター、および、画像表示装置におけるデータの取得方法
JP2011211274A (ja) 画像表示装置、プロジェクター、および、画像表示装置におけるデータの取得方法
JP2016134005A (ja) 画像処理装置
JP5131986B2 (ja) 画像処理装置
JP5353772B2 (ja) プロジェクター
US20040183805A1 (en) Memory access control apparatus
JP2007333892A (ja) メモリ制御装置、バス制御装置及び表示デバイス制御システム
JP5413265B2 (ja) 画像表示装置およびプロジェクター
US20230022878A1 (en) Cache-based warp engine
JP7485821B1 (ja) 映像処理装置および映像処理方法
JP5708072B2 (ja) 画像変形装置および命令付加装置
JP2018197799A (ja) 画像処理装置、方法およびプログラム
US20060268014A1 (en) System and method for efficiently supporting image deformation procedures in an electronic device
JP2015069272A (ja) 画像変形装置および画像変形方法
TW201740719A (zh) 扭曲畫面校正裝置及方法
JP2011199463A (ja) プロジェクター

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110228

R150 Certificate of patent or registration of utility model

Ref document number: 4706458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350