JP2017016511A - 歪み補正画像処理装置及びプログラム - Google Patents
歪み補正画像処理装置及びプログラム Download PDFInfo
- Publication number
- JP2017016511A JP2017016511A JP2015134419A JP2015134419A JP2017016511A JP 2017016511 A JP2017016511 A JP 2017016511A JP 2015134419 A JP2015134419 A JP 2015134419A JP 2015134419 A JP2015134419 A JP 2015134419A JP 2017016511 A JP2017016511 A JP 2017016511A
- Authority
- JP
- Japan
- Prior art keywords
- lut
- correction
- coordinate
- value
- distortion
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims description 100
- 238000012937 correction Methods 0.000 claims abstract description 166
- 230000006835 compression Effects 0.000 claims abstract description 52
- 238000007906 compression Methods 0.000 claims abstract description 52
- 238000006243 chemical reaction Methods 0.000 claims abstract description 43
- 238000003702 image correction Methods 0.000 claims abstract description 18
- 238000011161 development Methods 0.000 claims description 9
- 230000015654 memory Effects 0.000 description 30
- 230000003287 optical effect Effects 0.000 description 18
- 238000000034 method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000001914 filtration Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 241000226585 Antennaria plantaginifolia Species 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Landscapes
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
- Studio Devices (AREA)
Abstract
【課題】歪み補正用のLUTを効率的に圧縮して情報量を低減させる装置及びプログラムを提供する。
【解決手段】画像処理装置は,画像データの歪みを補正する画像補正手段10を備える。画像補正手段は,補正値記憶部11,LUT展開部12,及び座標変換部13を有する。補正値記憶部は,オフセットコードテーブル11aと圧縮LUT11bを記憶している。オフセットコードテーブルは,歪み補正前の座標値と歪み補正後の座標値とのオフセット値を,所定のオフセットコードと対応付ける。圧縮LUTは,オフセットコードを,当該オフセットコードに対応するオフセット値を参照して圧縮された座標値と対応付ける。LUT展開部は,オフセットコードテーブルと圧縮LUTとに基づいて,歪み補正前の座標値と歪み補正後の座標値とを対応付けた補正用LUT11cを生成する。座標変換部は,補正用LUTに基づいて,画像データの座標値を補正する。
【選択図】図1
【解決手段】画像処理装置は,画像データの歪みを補正する画像補正手段10を備える。画像補正手段は,補正値記憶部11,LUT展開部12,及び座標変換部13を有する。補正値記憶部は,オフセットコードテーブル11aと圧縮LUT11bを記憶している。オフセットコードテーブルは,歪み補正前の座標値と歪み補正後の座標値とのオフセット値を,所定のオフセットコードと対応付ける。圧縮LUTは,オフセットコードを,当該オフセットコードに対応するオフセット値を参照して圧縮された座標値と対応付ける。LUT展開部は,オフセットコードテーブルと圧縮LUTとに基づいて,歪み補正前の座標値と歪み補正後の座標値とを対応付けた補正用LUT11cを生成する。座標変換部は,補正用LUTに基づいて,画像データの座標値を補正する。
【選択図】図1
Description
本発明は,画像データの歪みを補正するための機能を有する画像処理装置及びプログラムに関する。具体的に説明すると,本発明は,ピクセル単位で歪み補正を行うためのLUT(Look Up Table:ルックアップテーブル)を予め作成しておき,画像データが入力されたときにこのLUTを参照して画像の歪み補正処理を行う装置及びプログラムに関するものである。
一般的な光学レンズには収差が存在するため,光学レンズによって取得された画像データ(写真及び動画)には,その光学レンズの光学的形状に応じた歪みが発生することが知られている。光学的形状に応じた歪みとしては,糸巻形状や樽形状の歪みが知られている。また,光学レンズには個体差があり,光学レンズ毎に画像データに生じる歪みの形状が異なることがある。このため,光学レンズによって取得された画像データをフラットなディスプレイに表示する場合には,歪みを持つ画像データを,本来のフラットな形状に戻す処理を行う必要がある。他方で,歪みを持ったディスプレイ,例えば車載型のカーナビゲーション装置に用いられる透過ヘッドアップディスプレイに対して,GPU(Graphics Processing Unit)によって生成された歪みのない画像データ(コンピュータグラフィックス)を表示させる場合もある。この場合には,GPUで生成された画像データに対して,そのディスプレイに応じた歪みを与える補正処理を行うことで,歪みをもったディスプレイであっても,使用者に歪みを感じさせないように画像を表示することが可能となる。このように,歪みを持たない画像データを,歪ませる補正処理を行うこともある。
ここで,従来から,画像データの歪みを補正する処理において,LUTを利用することが知られている(特許文献1)。歪み補正用のLUTは,ピクセル毎に,歪み補正前のデータの座標値と歪み補正後の座標値とを対応付けて記憶している。このため,歪みが発生している領域内のピクセルを処理するときに,このLUTを参照すれば,量産時に発生するレンズ歪みの個体差を1ピクセル単位で補正することができる。このようにして,LUTを設定することで,光学レンズ等の光学的形状に応じた画像の歪みを補正し,歪みが解消された座標値を得ることができる。
しかしながら,LUTを利用して歪み補正を行う場合,ピクセルごとに補正後の座標値を定義する必要がある。従って,歪み補正用のLUTは,その情報量(データ量)が大きくなり,メモリの記憶空間を圧迫するという問題があった。また,LUTの情報量が大きいと,そのLUTを読み出すのに時間が掛かるため,画像処理装置全体において処理の遅延や性能の低下を招くおそれがある。そこで,本発明は,歪み補正用のLUTを効率的に圧縮して情報量の低減を図り,LUTの読み出し性能や,画像処理装置全体の処理速度及び処理性能を向上させることを目的としている。
本発明の発明者らは,従来発明の問題点を解決する手段について鋭意検討した結果,歪み補正前後の座標値のオフセット値(差分値)を,所定のオフセットコードと対応付けておき,このオフセットコードを利用して歪み補正用のLUTを圧縮するという知見を得た。このようにLUTを圧縮することで,LUTの情報量を効率的に低減させることができるため,画像処理装置の処理速度及び処理性能を向上させることが可能である。また,LUTを圧縮することで,その圧縮によって生じた余剰空間に,その他のピクセルごとの処理情報(例えば,切り出しに関わるマスク情報や,画像ID,輝度調整用の情報)を格納することもできるようになる。そして,本発明者らは,上記知見に基づけば,従来発明の問題を解決できることに想到し,本発明を完成させた。具体的に説明すると,本発明は以下の構成を有する。
本発明の第1の側面は,画像処理装置に関する。
本発明に係る画像処理装置は,画像データの歪みを補正する画像補正手段10を備える。
画像補正手段10は,補正値記憶部11と,LUT展開部12と,座標変換部13とを有する。
補正値記憶部11は,オフセットコードテーブル11aと圧縮LUT11bを記憶している。オフセットコードテーブル11aは,歪み補正前の座標値と歪み補正後の座標値とのオフセット値を,所定のオフセットコードと対応付けている。圧縮LUT11bは,オフセットコードを,当該オフセットコードに対応するオフセット値を参照して圧縮された座標値と対応付けている。つまり,オフセットコードを利用することにより,圧縮LUT11b内の圧縮された座標値は,通常の歪み補正後の座標値と比較して,その情報量が低減されたものとなっている。
LUT展開部12は,オフセットコードテーブル11aと圧縮LUT11bとに基づいて,歪み補正前の座標値と歪み補正後の座標値とを対応付けた補正用LUT11cを生成する。つまり,補正用LUT11cは,オフセットコードに基づいて圧縮されて,圧縮LUT11bとなっている。このため,LUT展開部12は,必要なときに,圧縮LUT11bをオフセットコードに基づいて解凍し,補正用LUT11cを生成する。このような意味において,圧縮LUT11bは可逆圧縮されたものであるといえる。
座標変換部13は,補正用LUT11cに基づいて,画像データの座標値を補正する。
本発明に係る画像処理装置は,画像データの歪みを補正する画像補正手段10を備える。
画像補正手段10は,補正値記憶部11と,LUT展開部12と,座標変換部13とを有する。
補正値記憶部11は,オフセットコードテーブル11aと圧縮LUT11bを記憶している。オフセットコードテーブル11aは,歪み補正前の座標値と歪み補正後の座標値とのオフセット値を,所定のオフセットコードと対応付けている。圧縮LUT11bは,オフセットコードを,当該オフセットコードに対応するオフセット値を参照して圧縮された座標値と対応付けている。つまり,オフセットコードを利用することにより,圧縮LUT11b内の圧縮された座標値は,通常の歪み補正後の座標値と比較して,その情報量が低減されたものとなっている。
LUT展開部12は,オフセットコードテーブル11aと圧縮LUT11bとに基づいて,歪み補正前の座標値と歪み補正後の座標値とを対応付けた補正用LUT11cを生成する。つまり,補正用LUT11cは,オフセットコードに基づいて圧縮されて,圧縮LUT11bとなっている。このため,LUT展開部12は,必要なときに,圧縮LUT11bをオフセットコードに基づいて解凍し,補正用LUT11cを生成する。このような意味において,圧縮LUT11bは可逆圧縮されたものであるといえる。
座標変換部13は,補正用LUT11cに基づいて,画像データの座標値を補正する。
上記構成のように,オフセットコードを利用して補正用のLUTを圧縮してメモリ(補正値記憶部11)に記憶しておくことで,メモリ内の記憶空間を有効活用することができる。LUTを圧縮することで生じた余剰空間にその他のピクセル単位の処理情報を格納することもできる。また,LUTの情報量を軽減させることで,LUTの読み出し性能が向上し,ひいては,画像処理装置全体の処理速度及び処理性能を向上させることができる。
本発明の画像処理装置において,オフセットコードテーブル11aは,歪み補正前の座標値の整数部と歪み補正後の座標値の整数部とのオフセット値を,所定のオフセットコードと対応付けたものであってもよい。また,圧縮LUT11bは,オフセットコードを,当該オフセットコードに対応するオフセット値を減算した座標値の小数部と対応付けたものであってもよい。これにより,画像の座標値は,その整数部がオフセットコードによって示され,その小数部のみが圧縮LUT11bに保持される。このように,小数点を境界として整数部と小数部に分け,その符号化の方式(圧縮方式)を変えることで,オフセットコードを小さい情報量で定義できる。また,圧縮LUT11bを解凍して補正用LUT11cを生成しやすくなる。
本発明の画像処理装置において,圧縮LUT11bには,圧縮された座標値及びオフセットコードに加えて,当該座標値における画像処理に利用される処理情報を指示する拡張コードが対応付けられていることが好ましい。本発明によれば,少ない情報量で圧縮LUT11bを構築できるため,情報量が圧縮された分メモリ空間内に他の処理情報を格納することが可能となる。
本発明の画像処理装置において,歪み補正後の画像データが上下対称又は左右対称である場合に,補正用LUT11cは,対称軸を境界とした上下一方のみ又は左右一方のみの座標値を保持することとしてもよい。上下又は左右の一方の座標値を保持しておき,他方の座標値を簡単な演算によって導くようにすることで,メモリに記憶する情報量を半分に低減させることができる。
本発明において,座標変換部13は,補正用LUT11cに保持されている歪み補正後の座標値と,画像データの座標値に対して所定の歪み補正式を適用して求められた座標値とに基づいて,画像データの座標値を補正することとしてもよい。このように,LUT値と歪み補正式の両方を利用して座標値を補正することで,複雑な演算であっても高速に処理することができる。また,歪み補正の精度を高めることができる。
本発明の第2の側面は,画像データの歪み補正用のコンピュータプログラムに関する。本発明に係るプログラムは,汎用的なコンピュータの一部の機能を,上記した第1の側面に係る画像処理装置として機能させるものである。
本発明によれば,歪み補正用のLUTを効率的に圧縮して,その情報量を低減させることができる。また,LUTの情報量を低減させることで,画像処理装置によるLUTの読み出し性能や,画像処理装置全体の処理速度及び処理性能を向上させることができる。
以下,図面を用いて本発明を実施するための形態について説明する。本発明は,以下に説明する形態に限定されるものではなく,以下の形態から当業者が自明な範囲で適宜変更したものも含む。
本発明は,画像データの歪みを補正するための機能を有する画像処理装置及びプログラムに関する。本願明細書において,画像データの歪みを補正するための処理には,歪みのないフラットなディプレイに合わせて,歪みを持つ画像データの歪みを解消する処理と,歪んだディプレイに合わせて,歪みを持たない画像データを歪ませる処理の両方が含まれる。このため,“歪み補正”や“補正”という処理は,表示画像とディスプレイの形状を適合させるための画像処理であるということができる。
図1は,本発明に係る画像処理装置100の概要を示したブロック図である。本発明の画像処理装置100は,画像データの歪みを補正するため機能を有するものである。図1に示されるように,画像処理装置100は,画像補正手段10,画像データ入力部20,ラインバッファ30,フィルタ部40,画像出力部50,及び制御部60を備えている。制御部60は,画像処理装置100を構成する各要素の全体的な制御を行う。また,ラインバッファ30は,画像処理装置100の外部に設けられた外部メモリで代用することもできる。
図1に示されるように,カメラや外部メモリなどの入力装置200から,画像処理装置100に画像データが入力される。この画像データは,画像の歪みを含むものである。例えば,一般的な光学レンズには収差が存在するため,カメラから入力される画像データ(写真及び動画)には,その光学レンズの光学的形状に応じた歪みが発生している。光学的形状に応じた歪みとしては,糸巻形状や樽形状の歪みが知られている。また,逆に,歪みを持ったディスプレイ,例えば透過ヘッドアップディスプレイに対して,GPUによって生成された歪みのない画像データ(コンピュータグラフィックス)を表示させる場合もある。このように,光学レンズから得られた歪みが残ったままの画像を,平面ディスプレイなどの出力表示300に出力する場合や,GPUで得られた歪みのない画像データを,歪みを持つディスプレイなどの出力装置300に出力すると,その歪みに応じて画像が伸縮して映し出されることとなる。そこで,本発明の画像処理装置100は,このような歪みを含む画像データを本来のフラットな形状に戻す補正処理や,逆にフラットな画像データを歪ませる補正処理を行う機能を持つ。
画像処理装置100は,入力装置200から入力された画像データを,画像データ入力部20で受け取る。画像データ入力部20は,受け取った画像データを,装置内部のラインバッファ30に一時的に記憶する。また,画像データ入力部20は,受け取った画像データを,装置外部の外部メモリ30に展開してもよい。ラインバッファ30(又は外部メモリ30)に記憶された画像データは,画像補正手段10(特に座標変換部13)によって適宜読み出されて,ピクセル単位での歪みの補正が行われる。なお,画像補正手段10は,歪み補正処理が完了したピクセルを一時的にラインバッファ30に書き込むこととしてもよい。このように,ラインバッファ30は,画像補正手段10が歪み補正処理を行う際にデータの読み書きを行う作業用メモリとして利用される。画像補正手段10の具体的構成については後述する。
画像補正手段10によって歪みの補正処理が行われた画像データは,フィルタ部40へ送出される。フィルタ部40では,補正後の画像データの座標値を参照しながら,テクスチャマッピングで行われるフィルタ手法と同様に,ピクセルの補間処理を行う。例えば,フィルタ部40は,ピクセルの補間処理として,色値の補間や,透明度の補間,ぼかし値の補間などを行えばよい。ピクセルの補間処理で用いられるフィルタ手法としては,例えば,バイリニアフィルタリングや,トリリニアフィルタリング,異方性フィルタリング,あるいはバイキュービックフィルタリングが挙げられる。その他公知のフィルタ手法を採用することも可能である。
フィルタ部40での補間処理が完了した画像データは,画像出力部50を介して,外部のメモリやディスプレイなどの出力装置300へと転送される。この出力装置300に転送される画像データは,ディスプレイ等の形状に合せて歪みの補正処理が完了したものである。歪み補正後の画像データは,そのまま直接ディスプレイに映し出すこともできるし,外部メモリに格納してその後の別処理に利用することも可能である。
なお,本発明の画像処理装置100において,フィルタ部40は任意の構成であり,省略可能である。つまり,画像補正手段10は,歪み補正を行った画像データを,外部メモリやディスプレイ等の出力装置300に直接転送してもよい。
続いて,画像補正手段10について詳しく説明する。図1に示されるように,画像補正手段10は,補正値記憶部11と,LUT展開部12と,座標変換部13とを有している。補正値記憶部11には,オフセットコードテーブル11aと圧縮LUT11bとが記憶されている。LUT展開部12は,必要に応じて,圧縮LUT11bを補正値記憶部11から読み出し,オフセットコードテーブル11aに記憶されているオフセットコードに基づいて,この圧縮LUT11bを解凍し,補正用LUT11cを生成する。圧縮LUT11bと補正用LUT11cは実質的に同一の情報を記憶しており,互いに可逆的な関係にある。ただし,圧縮LUT11bの情報量は,補正用LUT11cの情報量よりも小さくなっている。座標変換部13は,ラインバッファ30等に格納されている画像データを読み出し,LUT展開部12によって生成された補正用LUT11cに基づいて,ピクセル単位で歪み補正のための座標変換処理を行う。
図2は,歪み補正のための座標変換処理に利用される補正用LUTの概要を示している。図2の上図では,入力画像と歪み後の画像を示しており,図2の下図では,補正用LUTの例を示している。図2に示されているように,入力画像におけるP0点の座標値(x0,y0)を,歪み後の画像におけるP0’点の(x0’,y0’)座標値に変換する必要がある。従って,このような変換前後のピクセルの座標情報を,補正用LUTに対応づけて記録しておくことで,この補正用LUTを入力画像から歪み画像を作成する際に用いることができる。図2の下図は,補正用LUT(圧縮前)の情報である。補正用LUTには,歪み補正前の座標値と歪み補正後の座標値とが対応付けて記録されている。この補正用LUTのように変換前後の座標一覧を予め作成しておくことで,この情報を用いて歪み後画像を瞬時に作成することができる。ただし,このような補正用LUTは,ピクセル毎に,変換前の座標値と変換後の座標値を記録しておく必要があり,情報量(データ量)が大きいものである。このような補正用LUTをそのままの状態でメモリに格納しておくと,必要に応じて補正用LUTをメモリから読み出す際に時間が掛かり,また貴重なメモリ空間を圧迫する。そこで,本発明は,補正用LUTを圧縮した圧縮LUTを生成して,情報量の小さい圧縮LUTをメモリに格納しておく。そして,必要に応じて圧縮LUTを解凍して補正用LUTをメモリ上に展開し,この補正用LUTを画像データの歪み補正処理に利用する。
図3は,補正用LUTの圧縮に利用するオフセットコードテーブルの例を示している。また,図4は,補正用LUTを圧縮した圧縮LUTと,その圧縮ビットの構成例を示している。図3及び図4では,補正用LUTの1ピクセル当たりの情報量を,圧縮LUTにおいて16ビット/ピクセルの情報量に圧縮する例を示している。
図3に示されるように,オフセットコードテーブルは,歪み補正前の座標値と歪み補正後の座標値とのオフセット値(差分値)を,所定のオフセットコードと対応付けて記録している。例えば,本例において,オフセットコードテーブルの内容部分には,X座標とY座標のそれぞれについて,変換前後の座標の整数部の値を比較し,その値のオフセット値(差分値)が情報として記録されている。また,オフセットコードテーブルにおいては,各オフセット値に,所定のオフセットコードが割り当てられている。例えば,オフセットコードは,4bitの情報として設定されている。ただし,オフセットコードのサイズは,4bitに限定されず,適宜最適なサイズに調整できる。また,オフセットコードテーブルの内容部分には,オフセットコードと対応付けて,X座標,Y座標,又はその両方を無効にするための情報を記録することもできる。
図4に示されるように,補正用LUTは,図3に示されたオフセットコードテーブルの値を利用して圧縮され,圧縮LUTへと変換される。つまり,圧縮LUTは,オフセットコードを,当該オフセットコードに対応するオフセット値を参照して圧縮された座標値と対応付けて記録した構成となっている。具体的に説明すると,本実施形態においては,図3に示したオフセットコードテーブルにおいて,歪み補正前の座標値の整数部と歪み補正後の座標値の整数部とのオフセット値に対して,所定のオフセットコードが割り当てられている。このため,図4に示した圧縮LUTでは,オフセットコードが,当該オフセットコードに対応するオフセット値を減算した座標値の小数部(x’frac,y’frac)と対応付けられている。なお,図に示した“frac”は,小数部(fraction part)を意味している。
補正用LUTから圧縮LUTへの変換方法について,図2から図4を参照してさらに具体的に説明する。
[1] 圧縮前の補正用LUTを見ると,座標値(x,y)=(0,0)を座標値(x’,y’)=(0,0)に変換する部分において,整数部のオフセット値は(+0,+0)である。(+0,+0)のオフセット値は,オフセットコードテーブルにおいて,オフセットコード=3と定義されている。また,(x,y)=(0,0)から(x’,y’)=(0,0)の変換において,小数点以下の値に差は生じていない。従って,圧縮LUTにおいては,(x’frac,y’frac,オフセットコード)=(0,0,3)として記録される。
[2] 圧縮前の補正用LUTを見ると,座標値(x,y)=(1,0)を座標値(x’,y’)=(1.2,0)に変換する部分において,整数部のオフセット値は(+0,+0)である。(+0,+0)のオフセット値は,オフセットコードテーブルにおいて,オフセットコード=3と定義されている。また,(x,y)=(1,0)から(x’,y’)=(1.2,0)の変換において,小数点以下の値はx座標値にのみ0.2の差が生じており,y座標値には生じていない。従って,圧縮LUTにおいては,(x’frac,y’frac,オフセットコード)=(0.2,0,3)として記録される。
[3]圧縮前の補正用LUTを見ると,座標値(x,y)=(2,0)を座標値(x’,y’)=(3.0,1.1)に変換する部分において,整数部のオフセット値は(+1,+1)である。(+1,+1)のオフセット値は,オフセットコードテーブルにおいて,オフセットコード=11と定義されている。また,(x,y)=(2,0)から(x’,y’)=(3.0,1.1)の変換において,小数点以下の値はy座標値にのみ0.1の差が生じており,x座標値には生じていない。従って,圧縮LUTにおいては,(x’frac,y’frac,オフセットコード)=(0.0,0.1,11)として記録される。
上記のように,補正用LUTは,オフセットコードテーブルの値を利用して圧縮されて,圧縮LUTへと変換される。補正用LUTでは,変換前と変換後のそれぞれにについて,x座標とy座標の座標値が,整数部と小数部を含んだまま記録されている。これに対して,圧縮LUTでは,変換前後の座標値の整数部の差が4bitのオフセットコード値で表され,変換後のx座標とy座標の小数部の値のみが,当該オフセットコード値と対応付けて記録されている。従って,圧縮LUTの情報量は,補正用LUTの情報量と比較して,圧倒的に小さくなっているといえる。
また,図4には,圧縮LUTにおける圧縮ビットの構成例が示されている。圧縮ビットは,例えば,0〜5までの6bit(下位ビット)を,変換後のx座標の小数部のデータとし,6〜11までの6bit(下位ビット)を,変換後のy座標の小数部のデータとし,12〜15までの4bit(上位ビット)を,オフセットコード値としている。このように,合計16bitのデータとして構成できる。つまり,圧縮LUTにおいては,歪み補正に利用する1ピクセル当たりの情報量を,16ビットに圧縮することができる。このように歪み補正に利用するLUTの情報量を圧縮することで,その圧縮によって生じたメモリの余剰空間には,他の処理で利用する情報(例えば,切り出しに関わるマスク情報や,画像ID,輝度調整用の情報)を格納することが可能となる。
なお,本実施形態では,一例として,16ビット/ピクセルの情報例を示した。ただし,圧縮ビットを構成する各ビットフィールド(x座標,y座標,オフセットコード)のサイズや,圧縮ビット全体のサイズについては,アプリケーションごとに最適なサイズの選択を行うことが可能である。
図1に示されるように,上記のようにして作成された圧縮LUT11bは,オフセットコードテーブル11aとともに,補正値記憶部11に記憶される。図1において,補正値記憶部11は,1つの記憶装置(メモリ)によって構築されているように描画されているが,補正値記憶部11は,複数の記憶装置(メモリ)によって構築されていてもよい。このため,オフセットコードテーブル11aと圧縮LUT11bは必ずしも同じ記憶装置内に格納されている必要はなく,物理的には別々の記憶装置内に格納されていてもよい。
LUT展開部12は,補正値記憶部11に記憶されている圧縮LUT11b及びオフセットコードテーブル11aに基づいて,補正用LUT11cする。LUT展開部12は,補正用LUT11cを補正値記憶部11(メモリ)に展開してもよいし,その他の内部メモリに展開してもよいし,外部メモリに展開してもよい。また,LUT展開部12は,補正用LUT11cをラインバッファ又は外部メモリ30に展開することもできる。具体的に説明すると,圧縮LUT11bには,上述したとおり,1ピクセルごとに,x座標の小数部,y座標の小数部,及びオフセットコードが対応付けて記録されている。LUT展開部12は,圧縮LUT11b内のオフセットコードに基づいて,オフセットコードテーブル11aを参照し,当該オフセットコードに対応付けられている座標のオフセット値(座標の整数部)を読み出す。そして,LUT展開部12は,オフセットコードテーブル11aから読み出した座標のオフセット値(整数部)を,x座標の小数部とy座標の小数部に加算する演算処理を行う。これにより,圧縮LUT11bを,オフセットコードテーブル11aの値に基づいて解凍し,補正用LUT11cを生成することができる。
必要な画像入力が終わった時点で,制御部60から歪み補正処理のスタートが指示され,LUT展開部12は,補正値記憶部11から圧縮LUT11bを読み出してこれを解凍し,補正用LUT11cを展開するとともに,この補正用LUT11cの値を座標変換部13に入力する。座標変換部13は,LUT展開部12によって生成された補正用LUT11cを参照して,ラインバッファ30(又は外部メモリ)に格納されている画像データに対して,1ピクセル単位で,歪み補正処理を実行する。つまり,座標変換部13は,補正用LUT11cを参照して,補正前の入力画像の各ピクセルの座標値を,歪み補正後の座標値に変換する演算を行う。座標変換部13は,各ピクセルについて歪み補正処理が完了した段階で,その補正後の座標の情報と共にピクセルの情報をフィルタ部40に送出する。
また,座標変換部13は,画像データの歪み補正処理において,歪み補正式の演算を行うこともできる。具体的には,座標変換部13では,下記(1)(2)の式の演算を行う。
(1)xd=歪み補正式で求められたx値+展開された補正用LUTのx値
(2)yd=歪み補正式で求められたy値+展開された補正用LUTのy値
ここでの歪み補正式としては,公知の補正式を用いることができる。例えば,歪み補正式としては,公知のBrown-Conradyモデルを利用すればよい。より具体的に説明すると,座標変換部13には,下記の数式を演算するためのアルゴリズムが実装される。
(1)xd=歪み補正式で求められたx値+展開された補正用LUTのx値
(2)yd=歪み補正式で求められたy値+展開された補正用LUTのy値
ここでの歪み補正式としては,公知の補正式を用いることができる。例えば,歪み補正式としては,公知のBrown-Conradyモデルを利用すればよい。より具体的に説明すると,座標変換部13には,下記の数式を演算するためのアルゴリズムが実装される。
上記の式に基づく演算が終了すると,座標変換部13は,補正後の座標の情報とともに,ピクセルの情報をフィルタ部40に入力する。フィルタ部40では,上述したとおり,補正後の座標値を参照しながら,テクスチャマッピングで行われるフィルタ手法と同様にバイリニアフィルタなどによるピクセルの補間処理を行う。その後,フィルタ部40で演算された結果は,画像出力部50を通して,ディスプレイ又は出力画像データを格納するためのメモリに格納される。また,同様の演算を画像出力解像度分行い,歪み後の画像が生成される。
なお,本願の図2及び図4に示した例では,補正用LUTにおいて,変換前の座標値に歪み補正式の適用していないが,この変換前の座標値に,上記歪み補正式を組み合わせることも可能である。その場合,補正用LUTにおける変換前の座標値として,上記歪み補正式を適用した(xd,yd)の値が格納され,変換後の座標値として,(xd’,yd’)が格納されることとなり。このような場合でも,その後の圧縮LUTの生成やこれの解凍処理は,上述したものと同様に行うことができる。
続いて,図5を参照して,画像処理装置100における制御部60の処理フローについて説明する。制御部60は,まず,画像データの入力開始前に,圧縮LUTを作成する前処理を行う(ステップS1)。画像処理装置100にカメラ入力デバイス等の入力装置200が接続されると,制御部60は,入力装置200が備える光学レンズの歪みを,チェッカボードによる画像処理や3D計測によって検出し,歪みマップを作成する。光学レンズの歪みマップとは,歪みのないフラットな画像に対して,光学レンズから入力された画像がどの領域でどの程度歪みを生じているのかを表したマップである。他方,画像処理装置100に透過型のヘッドアップディスプレイ等の出力装置300が接続されると,制御部60は,ヘッドアップディスプレイ上の歪みを検出し,ディスプレイの歪みマップを作成してもよい。ディスプレイの歪みマップとは,歪みのないフラットな画像に対して,ヘッドアップディスプレイの表示画面がどの領域でどの程度歪みを生じているのかを表したマップである。このような意味において,画像処理装置100の制御部60は,入力装置200や出力装置300の歪み検出部を有するといえる。また,制御部60は,歪みマップに基づいて,圧縮前の補正用LUTを作成する。また,補正値記憶部11には,上述したオフセットコードテーブルが既に作成されて記憶されている。そこで,制御部60は,既成のオフセットコードテーブルの値に基づいて,補正用LUTを圧縮した圧縮LUTを作成し,オフセットコードテーブルと共に補正値記憶部11に記憶する。補正用LUTから圧縮LUTを作成する方法は,上述したとおりである。
その後,画像処理装置100に対して,画像データの入力が開始される(ステップS2)。画像データが入力されると処理に必要なピクセル画像を準備した後に,出力ピクセル分のループに入る。ループ内では,まず,入力されたピクセルの座標に応じて,対応する座標変換後の値を圧縮LUTから補正用LUTに展開し,この補正用LUTに基づいて座標変換を実施する(ステップ3)。その後,ラインバッファ又は外部メモリ30から必要な画像データを読み込み,出力ピクセル分を準備し,フィルタ部40に入力を行う(ステップS4)。その後,フィルタ部40でバイリニアフィルタリング等のフィルタ処理が行われた後,このフィルタ処理後の画像を画像出力部50に送り,この画像出力部50を通じて,歪み補正後の画像データを外部メモリに格納したり,ディスプレイに表示したりする処理を行う(ステップS5)。同様の処理を画像出力解像度分ループさせて行い,歪み後の画像を生成する。
続いて,図6を参照して,圧縮テーブルの拡張内容の例について説明する。図4を用いて説明したように,圧縮テーブルを構成する1ピクセル当たりの圧縮ビットは,0〜5までの下位6bitに変換後のx座標の小数部を割り当て,6〜11までの下位6bitに変換後のy座標の小数部を割り当て,12〜15までの上位4bitにオフセットコード値を割り当てて,合計16bitで構成されている。このように圧縮ビットは,情報量の小さいデータであるあるため,これを格納するメモリには余剰空間が生じる。従って,圧縮ビットを拡張して,その他の有用な情報を格納することができる。
例えば,図6の上図に示されるように,圧縮ビットを0〜31の32bitのデータに拡張し,16〜31までの16bitに拡張コードを割り当てる。拡張コードは,ピクセルごとの画像処理に利用される処理情報を指示するものであり,拡張コードの定義例は図6の下図に示されている。例えば,拡張コードによって指示される処理情報としては,切り出しに関わるマスク情報(1ピクセルごとに出力の有無を制御可能)や,画像ID(ステッチング用。複数入力画像を組み合わせて表示させる場合,領域ごとにどの入力画像を使うか選択可能),あるいは輝度調整用の情報(車載用途などで時間帯やライトのON/OFFの状況に応じ,色味や輝度を変えることで可視性をあげることが可能)などを挙げることができる。例えば,図6の下図に示されるように,16〜19bitに切り出しマスク(透過度設定)の処理情報を割り当て,20〜23bitに画像IDを割り当て,24〜31に輝度オフセットを割り当てることができる。このように,ピクセル単位での処理に有用な処理情報を圧縮ビットの拡張部分に割り当てることで,画像描画処理の効率化及び高速化を実現できる。
続いて,図7を参照して,補正用LUTの他の圧縮方法について説明する。図7には,歪み補正後の画像の形状が左右対称である場合に,この補正用LUTの情報量を半分にすることができる例が示されている。図7に示されるように,補正後の画像形状が左右対称である場合,例えば,補正用LUTは,変換後画像の左半分のみ(x=0から画像中心(width/2)まで)作成しておけば,変換後画像の右半分は省略できる。つまり,変換後の右半分については,(width−x)という単純な演算を行うことで,その演算値を右半分のx値として使用することができる。なお,図7では,変換後画像が左右対称である場合を説明したが,変換後画像が上下対称である場合も同じようにして,補正用LUTの情報量を半分にすることができる。
以上,本願明細書では,本発明の内容を表現するために,図面を参照しながら本発明の実施形態の説明を行った。ただし,本発明は,上記実施形態に限定されるものではなく,本願明細書に記載された事項に基づいて当業者が自明な変更形態や改良形態を包含するものである。
本発明は,画像データの歪みを補正するための機能を有する画像処理装置及びプログラムに関する。本発明に係る装置及びプログラムは,画像処理のためのコンピュータや,デジタルカメラ,あるいはヘッドアップディスプレイ等に適用することができる。従って,本発明はコンピュータ関連産業や,ゲーム関連産業,医療関連産業,車載関連産業において好適に利用しうる。
10…画像補正手段 11…補正値記憶部
11a…オフセットコードテーブル 11b…圧縮LUT
11c…補正用LUT 12…LUT展開部
13…座標変換部 20…画像データ入力部
30…ラインバッファ又は外部メモリ 40…フィルタ部
50…画像出力部 60…制御部
100…画像処理装置 200…入力装置
300…出力装置
11a…オフセットコードテーブル 11b…圧縮LUT
11c…補正用LUT 12…LUT展開部
13…座標変換部 20…画像データ入力部
30…ラインバッファ又は外部メモリ 40…フィルタ部
50…画像出力部 60…制御部
100…画像処理装置 200…入力装置
300…出力装置
Claims (6)
- 画像データの歪みを補正する画像補正手段(10)を備える画像処理装置であって,
前記画像補正手段(10)は,
補正値記憶部(11)と,ルックアップテーブル(LUT)展開部(12)と,座標変換部(13)とを有するものであり,
前記補正値記憶部(11)は,
歪み補正前の座標値と歪み補正後の座標値とのオフセット値を,所定のオフセットコードと対応付けたオフセットコードテーブル(11a)と,
前記オフセットコードを,当該オフセットコードに対応するオフセット値を参照して圧縮された座標値と対応付けた圧縮LUT(11b)と,を記憶しており,
前記LUT展開部(12)は,
前記オフセットコードテーブル(11a)と前記圧縮LUT(11b)とに基づいて,歪み補正前の座標値と歪み補正後の座標値とを対応付けた補正用LUT(11c)を生成し,
前記座標変換部(13)は,
前記補正用LUT(11c)に基づいて,前記画像データの座標値を補正する
画像処理装置。 - 前記オフセットコードテーブル(11a)は,歪み補正前の座標値の整数部と歪み補正後の座標値の整数部とのオフセット値を,所定のオフセットコードと対応付けたものであり,
前記圧縮LUT(11b)は,前記オフセットコードを,当該オフセットコードに対応するオフセット値を減算した座標値の小数部と対応付けたものである
請求項1に記載の画像処理装置。 - 前記圧縮LUT(11b)には,前記圧縮された座標値及び前記オフセットコードに加えて,当該座標値における画像処理に利用される処理情報を指示する拡張コードが対応付けられている
請求項1又は請求項2に記載の画像処理装置。 - 歪み補正後の画像データが上下対称又は左右対称である場合,前記補正用LUT(11c)は,対称軸を境界とした上下一方のみ又は左右一方のみの座標値を保持する
請求項1から請求項3のいずれかに記載の画像処理装置。 - 前記座標変換部(13)は,前記補正用LUT(11c)に保持されている歪み補正後の座標値と,前記画像データの座標値に対して所定の歪み補正式を適用して求められた座標値とに基づいて,画像データの座標値を補正する
請求項1から請求項4のいずれかに記載の画像処理装置。 - コンピュータを,画像データの歪みを補正する画像補正手段(10)を備える画像処理装置として機能させるためのプログラムであって,
前記画像補正手段(10)は,
補正値記憶部(11)と,LUT展開部(12)と,座標変換部(13)とを有するものであり,
前記補正値記憶部(11)は,
歪み補正前の座標値と歪み補正後の座標値とのオフセット値を,所定のオフセットコードと対応付けたオフセットコードテーブル(11a)と,
前記オフセットコードを,当該オフセットコードに対応するオフセット値を参照して圧縮された座標値と対応付けた圧縮LUT(11b)と,を記憶しており,
前記LUT展開部(12)は,
前記オフセットコードテーブル(11a)と前記圧縮LUT(11b)とに基づいて,歪み補正前の座標値と歪み補正後の座標値とを対応付けた補正用LUT(11c)を生成し,
前記座標変換部(13)は,
前記補正用LUT(11c)に基づいて,前記画像データの座標値を補正する
プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015134419A JP2017016511A (ja) | 2015-07-03 | 2015-07-03 | 歪み補正画像処理装置及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015134419A JP2017016511A (ja) | 2015-07-03 | 2015-07-03 | 歪み補正画像処理装置及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2017016511A true JP2017016511A (ja) | 2017-01-19 |
Family
ID=57830849
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015134419A Pending JP2017016511A (ja) | 2015-07-03 | 2015-07-03 | 歪み補正画像処理装置及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2017016511A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111130554A (zh) * | 2019-12-09 | 2020-05-08 | 深圳市兴之佳科技有限公司 | 一种文件压缩方法、装置、电子设备及可读取存储介质 |
| US11024015B2 (en) | 2019-03-14 | 2021-06-01 | Kabushiki Kaisha Toshiba | Image processing apparatus and distortion correction coefficient calculation method |
-
2015
- 2015-07-03 JP JP2015134419A patent/JP2017016511A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11024015B2 (en) | 2019-03-14 | 2021-06-01 | Kabushiki Kaisha Toshiba | Image processing apparatus and distortion correction coefficient calculation method |
| CN111130554A (zh) * | 2019-12-09 | 2020-05-08 | 深圳市兴之佳科技有限公司 | 一种文件压缩方法、装置、电子设备及可读取存储介质 |
| CN111130554B (zh) * | 2019-12-09 | 2023-08-04 | 深圳市兴之佳科技有限公司 | 一种文件压缩方法、装置、电子设备及可读取存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102910920B1 (ko) | 데이터 처리 시스템 | |
| KR101785027B1 (ko) | 화면 왜곡 보정이 가능한 디스플레이 장치 및 이를 이용한 화면 왜곡 보정 방법 | |
| US11908107B2 (en) | Method and apparatus for presenting image for virtual reality device, device and non-transitory computer-readable storage medium | |
| JP4018601B2 (ja) | 内蔵形システムのデジタル画像スケーリング方法 | |
| CN113538271B (zh) | 图像显示方法、装置、电子设备和计算机可读存储介质 | |
| TWI382755B (zh) | 影像處理電路及其方法 | |
| TW200937346A (en) | Image distortion correction | |
| JP3833212B2 (ja) | 画像処理装置、画像処理プログラムおよび可読記録媒体 | |
| US20190027120A1 (en) | Method of and data processing system for providing an output surface | |
| US20240221245A1 (en) | Display apparatus and image processing method thereof for applying random patches to pixel block | |
| CN106716322A (zh) | 显示装置、显示系统和显示控制程序 | |
| CN103390260A (zh) | 一种处理图像的方法及图像处理装置 | |
| CN105378645A (zh) | 用于多监视器环境的虚拟化应用 | |
| US10713757B2 (en) | Image processing apparatus, control method thereof, and storage medium | |
| JP2017016511A (ja) | 歪み補正画像処理装置及びプログラム | |
| CN107211105A (zh) | 图像处理装置、图像处理方法和显示装置 | |
| US11176720B2 (en) | Computer program, image processing method, and image processing apparatus | |
| CN115617288B (zh) | 录屏方法、装置、存储介质及电子设备 | |
| JP5387276B2 (ja) | 画像処理装置及び画像処理方法 | |
| JP6326914B2 (ja) | 補間装置及び補間方法 | |
| CN113516946A (zh) | Oled面板的亮度补偿方法及装置、驱动芯片、存储介质 | |
| JP2015128263A (ja) | 画像処理装置、画像処理方法、画像処理用プログラム、および、撮像装置 | |
| JP5085589B2 (ja) | 画像処理装置および方法 | |
| JP2008116812A (ja) | 表示装置、プロジェクタおよび表示方法 | |
| JP2004240910A (ja) | 画像処理装置および画像処理方法 |
