画像処理装置、電子機器
【課題】 拡張性が高い手法で、ホストCPUに負担をかけずにテーブル値をダイナミックに変更できる画像処理装置等を提供する。
【解決手段】 入力画像の補正を画素毎に行う画像処理装置10であって、ルックアップテーブル40−1〜40−Nを含み、前記ルックアップテーブル40−1〜40−Nを用いて前記入力画像の注目画素の画素値204を補正して補正値220を生成する画像補正部と、前記ルックアップテーブルのテーブル値の生成を指示するコマンド200を一時的に保持する記憶部20と、前記記憶部20からのコマンド230に従って、前記テーブル値を生成するジェネレーター50と、を含む。
【解決手段】 入力画像の補正を画素毎に行う画像処理装置10であって、ルックアップテーブル40−1〜40−Nを含み、前記ルックアップテーブル40−1〜40−Nを用いて前記入力画像の注目画素の画素値204を補正して補正値220を生成する画像補正部と、前記ルックアップテーブルのテーブル値の生成を指示するコマンド200を一時的に保持する記憶部20と、前記記憶部20からのコマンド230に従って、前記テーブル値を生成するジェネレーター50と、を含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、電子機器等に関する。
【背景技術】
【0002】
LCD等のディスプレイ装置において所望の再現特性が得られるように、入力画像の階調補正を行う画像処理装置がある。階調補正は、例えば明るさ補正、コントラスト補正、カラーバランス補正等である。これらの補正は入力画像の特性(例えば明るさ)に応じてダイナミックに行われる。例えば、階調補正は補正曲線(トーンカーブ)に基づいて行われるが、補正曲線を1フレーム又は数フレーム毎に動的に変化させる。
【0003】
ここで、補正曲線は3次以上の式で表されることが多い。そこで、積和演算の負担軽減、演算時間短縮のために補正曲線に対応したルックアップテーブルを用いることが多い。このとき、ルックアップテーブルのテーブル値をダイナミックに変更することで、入力画像の特性に応じた階調補正を行う。例えば、引用文献1の発明では雛形のテーブル値をROMに格納し、CPUがテーブル値をテーブルメモリーに書き込む際に、経路上にある変換モジュールがテーブル値を適切な値に書き換える。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−293827号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、CPUがROMにアクセスしてテーブル値を一度読み込む処理は、CPUに負荷をかけることになる。さらに、テーブル値をダイナミックに変更するので、CPUは時間のかかる画像の解析を頻繁に行う必要がある。その結果、システム全体の処理速度が大幅に低下する恐れがある。
【0006】
本発明はこのような問題点に鑑みてなされたものである。本発明のいくつかの態様によれば、拡張性が高い手法で、ホストCPUに負担をかけずにテーブル値をダイナミックに変更できる画像処理装置等を提供する。
【課題を解決するための手段】
【0007】
(1)本発明は、入力画像の補正を画素毎に行う画像処理装置であって、ルックアップテーブルを含み、前記ルックアップテーブルを用いて前記入力画像の注目画素の画素値を補正して補正値を生成する画像補正部と、前記ルックアップテーブルのテーブル値の生成を指示するコマンドを一時的に保持する記憶部と、前記記憶部からの前記コマンドに従って、前記テーブル値を生成するジェネレーターと、を含む。
【0008】
本発明によれば、画像処理装置はコマンドに従ってルックアップテーブルのテーブル値を生成するジェネレーターを含む。例えばホストCPUは、自らテーブル値を生成しなくてもコマンドをジェネレーターに渡せばテーブル値の変更が可能である。よって、ダイナミックにテーブル値を変更しても、ホストCPUにはあまり負担がかからない。
【0009】
さらに、画像処理装置はコマンドを一時的に保持する記憶部を含む。そのため、ホストCPUは、コマンドを出力するタイミングを制限されることはない。よって、ホストCPUにはあまり負担がかからない。
【0010】
本発明では、コマンドに応じた様々なテーブル値の生成をホストCPUに負荷をかけずに実現できる。例えばコマンド命令を複数用意することで、多様性、拡張性の高いテーブル値の生成ができる。ここで、コマンドとは、例えばオペコード(命令)と必要な制御情報(オペランドに相当)で構成される。
【0011】
(2)この画像処理装置において、前記ジェネレーターは、前記入力画像の垂直ブランキング期間に、前記記憶部に保持された前記コマンドを、前記コマンドが含む第1の制御情報が所定の値になるまで読み出し、読み出された前記コマンドに従って、前記テーブル値を生成してもよい。
【0012】
本発明によれば、ジェネレーターは、垂直ブランキング期間に記憶部からコマンドを読み出し、フレームに同期して処理を行う。このとき、1フレームの処理において複数のコマンドを連続して実行することができる。よって、多様なテーブル値の生成ができるために拡張性が高く、処理効率が高まる。
【0013】
ここで、記憶部に一時的に保持された各コマンドは第1の制御情報(コマンド読み出しコントロール)を含む。例えば第1の制御情報は1ビットの値である。ジェネレーターは、例えば読み出したコマンドの第1の制御情報が1の場合には次のコマンドの読み出しを行い、0の場合には次のコマンドの読み出しを停止してもよい。このような制御により、1フレームでの処理において所望の数のコマンドを実行することができる。
【0014】
(3)この画像処理装置において、前記ジェネレーターは、前記記憶部からの前記コマンドが含む第2の制御情報に基づいて、特定の色について前記テーブル値を生成してもよい。
【0015】
本発明によれば、コマンドが含む第2の制御情報(RGBマスク)に基づいてテーブル値を生成する色を選択できるので、無駄がなく効率的なテーブル値の生成ができる。
【0016】
例えば画素値がRGBの3色の情報を含むとする。このとき、例えば第2の制御情報は3ビットの値であって、RGBそれぞれに対応するマスクビットで構成されていてもよい。例えばジェネレーターは、読み出したコマンドの第2の制御情報が“101”の場合には、グリーン(G)のみについてテーブル値を生成してもよい。
【0017】
なお、画素値はRGBではなく、例えばYUVといった別の色空間に基づく表現で与えられてもよい。
【0018】
(4)この画像処理装置において、前記入力画像の統計的な解析に基づいて、補正曲線の係数であるテーブルパラメーターを出力する統計解析部を含み、前記ジェネレーターは、前記記憶部からの前記コマンドが含む第3の制御情報が第1の値である場合に、前記統計解析部からの前記テーブルパラメーターに基づいて、前記補正曲線に応じたテーブル値を生成してもよい。
【0019】
本発明によれば、ジェネレーターは、テーブル値を生成するための補正曲線の係数(テーブルパラメーター)を、例えばホストCPUではなく統計解析部から受け取る。このとき、補正曲線の係数は各フレームの入力画像の統計的な解析に基づいて定められるが、ホストCPUは解析を行う必要がない。よって、ホストCPUに負担をかけずにテーブル値をダイナミックに変更できる。
【0020】
本発明によれば、コマンドが含む第3の制御情報(テーブルパラメーター選択)によって、テーブルパラメーターの選択ができる。例えば第3の制御情報は1ビットの値であって、例えば第1の値とは1である。ジェネレーターは、例えば読み出したコマンドの第3の制御情報が1の場合には統計解析部からテーブルパラメーターを受け取り、0の場合にはコマンドに含まれるテーブルパラメーターを用いる。コマンドに含まれるテーブルパラメーターとは、例えばホストCPUがオペコードと共に出力したテーブルパラメーターである。
【0021】
本発明によれば、ジェネレーターが統計解析部からテーブルパラメーターを受け取るようにコマンドで指定することにより、例えばホストCPUのアクセスがなくても、自動的にテーブル値の更新を行うことが可能になる。
【0022】
(5)この画像処理装置において、前記ジェネレーターは、前記コマンドのオペコードが第1のコマンドである場合に、生成したテーブル値を、前記コマンドが含む第4の制御情報が指定する前記ルックアップテーブルに書き込んでもよい。
【0023】
(6)この画像処理装置において、前記ジェネレーターは、前記コマンドのオペコードが第2のコマンドである場合に、前記コマンドが含む第5の制御情報が指定する前記ルックアップテーブルのテーブル値を読み出し、生成したテーブル値に基づくゲインを乗じて、前記第4の制御情報が指定する前記ルックアップテーブルに書き戻してもよい。
【0024】
(7)この画像処理装置において、前記画像補正部は、前記ルックアップテーブルを複数含み、前記ジェネレーターは、前記コマンドが含む第6の制御情報が所定の値である場合に、前記第4の制御情報が指定する前記ルックアップテーブルのテーブル値を読み出し、第5の制御情報が指定する前記ルックアップテーブルを経由して、書き戻してもよい。
【0025】
これらの発明では、ジェネレーターは、コマンドは第4の制御情報(デスティネーション)と必要ならば第5の制御情報(ソース)とに基づいて、指定されたルックアップテーブルへの書き込み、読み出しを行う。このとき、複数のルックアップテーブルを扱うことができる。これらの発明によると、多様で柔軟なテーブル値の生成ができる。
【0026】
例えばジェネレーターは、コマンドのオペコードが第1のコマンド(ライト)である場合に、生成したテーブル値を、デスティネーションであるルックアップテーブルに書き込む。
【0027】
また、例えばジェネレーターは、コマンドのオペコードが第2のコマンド(リードモディファイライト)である場合に、ソースであるルックアップテーブルから読み出した値に、生成したテーブル値に基づくゲインを乗じて、デスティネーションであるルックアップテーブルに書き込む。ここで、変数“x”を用いてテーブル値に対応する補正曲線が“f(x)”であるとすると、生成したテーブル値に基づくゲインは、例えば“f(x)/x”である。第2のコマンドによって、2つの補正を1つのルックアップテーブルで実現することが可能になる。
【0028】
そして、例えばジェネレーターは、テーブルパラメーターを受け取ることなく、2つのルックアップテーブルを用いてテーブル値を更新することもできる。コマンドが含む第6の制御情報(インデックスリード)が所定の値(例えば1)である場合、デスティネーションであるルックアップテーブルの値を、ソースであるルックアップテーブルによって変換して、デスティネーションであるルックアップテーブルに書き戻す。
【0029】
コマンドのオペコードと制御情報との組み合わせによって、これらの例のように多様で柔軟なテーブル値の生成ができ、更にコマンドを拡張することも可能である。
【0030】
(8)この画像処理装置において、前記ジェネレーターは、前記第3の制御情報が前記第1の値である前記コマンドを、起動時に受け取ってもよい。
【0031】
(9)この画像処理装置において、所与のフレーム間隔で、前記統計解析部からの前記テーブルパラメーターに基づいて、前記補正曲線に応じたテーブル値を生成してもよい。
【0032】
これらの発明では、ジェネレーターは、第3の制御情報(テーブルパラメーター選択)を第1の値(例えば1)とするコマンドを起動時に受け取る。テーブルパラメーターは、統計解析部がジェネレーターに供給するので、例えばホストCPUのアクセスがなくても、自動的にダイナミックなテーブル値の更新を行うことができる。
【0033】
このとき、統計解析部は所与のフレーム間隔でテーブルパラメーターを出力してもよい。所与のフレーム間隔とは、例えば毎フレームであってもよいし、数フレーム毎であってもよい。例えば、コマンドのオペコードとしてNOP(ノーオペレーション)が含まれていてもよい。NOPはテーブル値を生成しないが、NOPを挿入することで、このフレーム間隔を調整することができる。
【0034】
(10)この画像処理装置において、前記記憶部は、保持されている前記コマンドの数が所与の条件を満たした場合に、新たな前記コマンドを要求するための割り込み信号を発生してもよい。
【0035】
本発明によれば、記憶部は例えばFIFOであって、保持されているコマンドの数が所与の条件を満たした場合に割り込み信号を発生し、例えばホストCPUにコマンドの書き込みを要求する。ホストCPUは、割り込み信号による要求がある場合にだけコマンドを出力すればよいので負担がかからない。
【0036】
ここで、所与の条件とは、記憶部に保持されているコマンドの数が無いこと(0であること)でもよい。また、所与の条件とは、記憶部に保持されているコマンドが残り数個(例えば2つ)となったことでもよい。
【0037】
(11)本発明は、前記のいずれかに記載の画像処理装置を含む電子機器である。
【0038】
本発明によれば、ホストCPUに負担をかけずにテーブル値をダイナミックに変更できる画像処理装置を含むので、全体として効率的な処理を行う電子機器を提供することができる。
【図面の簡単な説明】
【0039】
【図1】第1実施形態の画像処理装置のブロック図。
【図2】補正曲線を説明する図。
【図3】ルックアップテーブルの構成例を説明する図。
【図4】第1実施形態の画像補正部の構成例を示す図。
【図5】図5(A)はコマンドセットを説明する図。図5(B)は割り込み発生タイミングを説明する図。
【図6】コマンドの構成の具体例を示す図。
【図7】ライト命令の動作を説明する図。
【図8】リードモディファイライト命令の動作を説明する図。
【図9】図8に続くリードモディファイライト命令の動作を説明する図。
【図10】インデックスリードモードの動作を説明する図。
【図11】図10に続くインデックスリードモードの動作を説明する図。
【図12】適用例の電子機器のブロック図。
【図13】図13(A)は電子機器の例である携帯電話の図。図13(B)は電子機器の例である携帯型ゲーム装置の図。図13(C)は電子機器の例であるパーソナルコンピューターの図。
【発明を実施するための形態】
【0040】
以下、本発明の実施形態について図面を参照して説明する。
【0041】
1.第1実施形態
本発明の第1実施形態について図1〜図11を参照して説明する。
【0042】
1.1.第1実施形態の画像処理装置の構成
図1は本実施形態の画像処理装置10のブロック図である。画像処理装置10は、記憶部20、画像補正部30、ジェネレーター50を含む。画像補正部30はルックアップテーブル(LUT)40−1〜40−Nを含む。Nは自然数であり、例えばN=1の場合には、図1のルックアップテーブル40−1と40−Nとは同じルックアップテーブルとなる。
【0043】
画像処理装置10は、画素値204を受け取って、画像補正部30で補正を行って補正値220を出力する。このとき、ルックアップテーブル40−1〜40−Nが補正に用いられる。
【0044】
ジェネレーター50は、記憶部20に一時的に保持されたコマンド200を所定の期間に読み出す。そして、読み出したコマンド230に従って、ルックアップテーブル40−1〜40−Nのテーブル値212を生成する。
【0045】
本実施形態の画像処理装置10は、統計解析部60を含んでいてもよい。統計解析部60は、テーブルパラメーター260を出力する。テーブルパラメーターはテーブル値を定める補正関数の係数である。ジェネレーター50は、コマンド230とテーブルパラメーター260に基づいてテーブル値212を生成してもよい。
【0046】
画像処理装置10は、ルックアップテーブル40−1〜40−Nを用いて補正を行うが、この補正には動的補正(ダイナミック補正)が含まれる。例えば明るさ補正、コントラスト補正、カラーバランス補正等の階調補正は、入力画像の特性(例えば明るさ)に応じた動的補正である。そのため、ルックアップテーブル40−1〜40−Nのテーブル値を動的に変化させる必要がある。
【0047】
画像処理装置10は、記憶部20、ジェネレーター50を含むことで、例えば外部のホストCPUの負担を軽減することができる。また、ホストCPUに代わってテーブルパラメーター260を出力する統計解析部60を含むことで、更に負担を軽減することが可能である。
【0048】
ここで、画素値204は画像処理装置10への入力画像における注目画素の値である。入力画像のデータは走査方式で入力され、注目画素は、例えば画像処理装置10のシステムクロックに同期して順次変化するものとする。入力画像とは静止画であってもよいが、本実施形態では動画の1フレームの画像を指す。
【0049】
なお、本実施形態では、コマンド200、画素値204は画像処理装置10の外部から与えられるものとする。そのうち、コマンド200は、画像処理装置10の外部のホストCPUから供給されるとする。補正値220は、例えば表示インターフェース(図外)を介して、LCD等のディスプレイ装置に出力されてもよい。
【0050】
1.2.画像補正部
画像補正部30は、画素値204を受け取って、ルックアップテーブル40−1〜40−Nを用いて変換した値である補正値220を出力する。ルックアップテーブル40−1〜40−Nのそれぞれは、例えば、明るさ補正、コントラスト補正といった補正に対応するテーブル値を含む。
【0051】
本実施形態では、画像補正部30は2つのルックアップテーブルを含む(N=2)として説明する。つまり、ルックアップテーブル40−1、40−2だけが存在するとして説明する。そのうち、少なくとも一方は動的補正を行うためのルックアップテーブルであって、テーブル値を動的に変化させる必要があるものとする。なお、画像補正部30が例えば3つ以上のルックアップテーブルを使用する場合でも、1つのルックアップテーブルを含む場合であっても、以下に説明する機能を実現できる。
【0052】
なお、ジェネレーター50からのテーブル値212以外に、外部のホストCPUから直接テーブル値を与えることが可能であってもよい(図外)。しかし、データサイズの大きいテーブル値を、ホストCPUが計算して書き込むことは処理の負担が大きい。そのため、ジェネレーター50だけがテーブル値212を生成することが好ましい。
【0053】
1.3.ジェネレーター
ジェネレーター50は、例えば動的補正を行うためのルックアップテーブルの新たなテーブル値212を生成することができる。例えば、ホストCPUがテーブル値を計算する必要がないので、ホストCPUに負担がかからない。そのため、システム全体での処理の効率が向上する。
【0054】
ジェネレーター50は、例えば垂直ブランキング期間といった所定の期間に、記憶部20に一時的に保持されたコマンド230を受け取る。そして、コマンド230に従ってテーブル値212を生成する。このとき、ホストCPUに負担をかけずに、コマンド230に応じた多様なテーブル値の生成を行うことができる。
【0055】
例えば、コマンド230が指定するルックアップテーブルのテーブル値をソースリードデータ222として読み出し、その値に補正曲線に基づいたゲインを乗じて、コマンド230が指定するルックアップテーブルに書き込むことが可能である。
【0056】
このとき、ジェネレーター50は、ルックアップテーブル40−1、40−2の入出力を制御する制御信号210をコマンド230に従って出力する。制御信号210は例えば、画像補正部30が含むセレクターの選択信号であってもよい。
【0057】
なお、ジェネレーター50は、リクエスト信号232を用いて、記憶部20からのコマンド230の出力を要求してもよい。また、コマンド230は1つ、又は複数のコマンドの集合であるコマンドセットとして受け取ってもよい。
【0058】
1.4.記憶部
記憶部20は、ホストCPUが出力するコマンド200を一時的に保持する。ここで、ジェネレーター50は例えば垂直ブランキング期間にコマンドを受け取る必要がある。記憶部20がない場合には、ホストCPUは垂直ブランキング期間にコマンドを出力しなければならない。しかし、記憶部20が存在することによって、ホストCPUは出力のタイミングを気にする必要はない。よって、記憶部20は、ホストCPUの負担を軽減することができる。
【0059】
本実施形態の記憶部20はFIFOであるとする。そして、一時的に保持されたコマンド200の数が一定の条件になった場合に割り込み信号250をホストCPUに出力する。このとき、ホストCPUは割り込み信号250が発生した場合にのみコマンドを出力すればよく、処理の効率が高まる。なお、一定の条件とは、例えば記憶部20に一時的に保持されたコマンド200の数が0(エンプティ)になることでもよく、コマンドセットが残り1つになることでもよい。
【0060】
なお、記憶部20はFIFO構造をとる必要はなく、例えばランダムアクセス可能な一般的なメモリーであってもよい。
【0061】
1.5.ルックアップテーブルについて
1.5.1.補正関数
本実施形態のルックアップテーブル40−1、40−2のテーブル値は、それぞれ補正関数に従って決定される。本実施形態では、補正関数として例えばパラメーターG0とDとで定まる数1のような補正曲線を用いる。
【0062】
【数1】
ここで、式(1)の“x”は正規化された画素値204に対応し、“f(x)”は正規化された補正値220に対応する。
【0063】
本実施形態では入力画像のデータは走査方式で画像処理装置10に入力され、画素値204は入力画像の各画素に対応する。本実施形態の画素値204はRGB各成分を例えば10ビットで表現するデータである。式(1)によると、例えば画素値204のR成分が0(x=0)のとき、補正値220のR成分は0(f(x)=0)である。また、例えば画素値204のR成分が1023(x=1)のとき、補正値220のR成分は1023(f(x)=1)である。なお、前記のR成分をG成分、B成分としても同じである。
【0064】
図2は補正曲線f(x)の例であり、Dの値の変化に伴う曲線の変化を示している。ここで、式(1)の一階微分である“f´(x)”は数2のようになる。
【0065】
【数2】
式(2)でx=0および1を代入すると、数3のように係数G0、Dが得られる。すなわち、係数G0、Dは、それぞれx=0、1における接線の傾きで与えられる。
【0066】
【数3】
【0067】
図2において、例えばD=G0とした場合には補正曲線220Aが得られるが、D=0とすると補正曲線220Cのようになる。また、Dを適宜選択することで補正曲線220Bのような曲線を得ることもできる。
【0068】
ジェネレーターは、例えば入力画像の特性に応じた係数(テーブルパラメーター)G0、Dを得て、ルックアップテーブルのテーブル値を生成する。例えばジェネレーターは、動的補正を行うためのテーブル値を、あるフレームでは補正曲線220Aに従って生成し、次のフレームでは補正曲線220Bに従って生成する。
【0069】
テーブルパラメーター(具体的にはG0、D)は、ホストCPUからコマンドの一部として与えられてもよいし、統計解析部から受け取ってもよい。
【0070】
図2の例では、画素値204(図1参照)はRGB各成分が10ビットの値であり、0〜1023の値をとり得る。よって、式(1)の“x”に正規化した0〜1023の値のそれぞれを代入して、得られる”f(x)“に基づいてテーブル値を作成できる。
【0071】
なお、後述するように、ジェネレーターはある係数の式(1)に従ったテーブル値を読み出して、別の係数の式(1)に基づくゲインを乗じることで、数4のような高次の曲線“g(x)”に従ったテーブル値を生成できる。
【0072】
【数4】
ここで、式(5)でn=2の場合、読み出されるテーブル値は”f1(x)“に対応し、式(1)に基づくゲインとは、”f2(x)/x“である。このとき、例えば”f1(x)“が明るさ補正を行う式であり、”f2(x)“がコントラスト補正を行う式であるとすると、“g(x)”は両補正を同時に実行するための式を与える。
【0073】
1.5.2.ルックアップテーブルの構成
図3は、ルックアップテーブルの構成例を説明する図である。本実施形態の画像補正部が含むルックアップテーブルは、式(1)の補正曲線に対応している。ルックアップテーブルを参照することで、例えば乗算器等によって計算することなく、直ちに画素値を補正値に変換することができる。ルックアップテーブルは、例えば書き換え可能なSRAM等のメモリーで構成される。
【0074】
図3では、第1のルックアップテーブル40−1(図1参照)を例にして説明するが、第2のルックアップテーブル等についても同じである。画素値204(図1参照)が、RGBの各成分を含むとする。このとき、第1のルックアップテーブル40−1は、RGBの各成分を変換するための3面分のメモリーで構成される(LUT(R)、LUT(G)、LUT(B))。よって、本実施形態の第1、第2のルックアップテーブル40−1、40−2(図1参照)は合わせて6面分のメモリーで構成されている。ここで、1面とは1つの色について必要なルックアップテーブルのメモリー量を表す。
【0075】
本実施形態では、6面分のメモリーの種類や制御方法は同じである。よって、図3のR成分(LUT(R))のみについて説明する。LUT(R)は、書き換え可能なメモリーであってアドレスA、入力データD、出力データQのポートを含む。LUT(R)は補正曲線(式(1)参照)に対応したテーブル値を記憶している。なお、クロックとライトイネーブルについては記載を省略しているが、これらの信号についても適宜制御が行われるものとする。
【0076】
まず、画素値を補正値に変換する場合には、LUT(R)はリードモード(ライトイネーブルはオフ)で使用される。このとき、ジェネレーター50(図1参照)からの制御信号210−1Rによって、R成分の画素値204RがアドレスAに入力される。そして、アドレスを画素値204Rとする記憶領域に保存されたテーブル値を出力テーブル値240−1Rとして出力する。
【0077】
そして、テーブル値が書き込まれる場合には、LUT(R)はライトモード(ライトイネーブルはオン)で使用される。このとき、制御信号210−1Rによって、R成分の新しいテーブル値(アドレス)202ARがアドレスAに入力される。また、R成分の新しいテーブル値(データ)202DRが入力データDに入力される。
【0078】
このように、ルックアップテーブルは書き換え可能なメモリーによって実現できる。なお、本実施形態のルックアップテーブルを構成する6面分のメモリーは、それぞれが例えば物理的に異なるメモリーであってもよいし、論理的に区分されているメモリーブロックであってもよい。
【0079】
1.6.本実施形態の動作の例
本実施形態におけるテーブル値を生成する際の動作の例について、図4〜図11を参照して説明する。なお、図1〜図3と同じ要素には同じ符号を付しており、その説明を省略する。
【0080】
1.6.1.画像補正部の構成例
図4は、本実施形態の画像補正部30の構成例を示す図である。制御信号210−1〜210−6は図1の制御信号210に対応する。制御信号210−1〜210−6は、画像補正部30のセレクターの選択信号として機能する。ここで、ジェネレーター50からのテーブル値212(図1参照)は、テーブル値(アドレス)212Aと、テーブル値(データ)212Dに分けて表記されている。第1のルックアップテーブル40−1の出力テーブル値240−1と、第2のルックアップテーブル40−2の出力テーブル値240−2の一方が選択されて補正値220として出力される。
【0081】
そして、出力テーブル値240−1と出力テーブル値240−2は、第1のルックアップテーブル40−1および第2のルックアップテーブル40−2のアドレスA、データDに入力することが可能である。さらに、ジェネレーター50は、この信号をソースリードデータ222として読むことができる。
【0082】
本実施形態では、このような構成の画像補正部30やソースリードデータ222といった信号によって、コマンドに応じて多様なテーブル値を生成できる。なお、図4では、説明に必要の無い図1の一部の信号(例えば、割り込み信号等)について図示を省略している。また、図4はデータの流れを説明するためのものであり、詳細な物理的結線を示すものではない。
【0083】
1.6.2.コマンド
図5〜図6は、本実施形態に用いるコマンドの具体例を示す図である。まず、図5(A)は、FIFOである記憶部20に格納されたコマンドA〜コマンドFを示している。それぞれのコマンドは、オペコードと、オペランドに相当する制御情報とで構成されている。なお、制御情報は、オペコードの種類によって一部が有効であったり、無効であったりする。
【0084】
本実施形態に用いるコマンドは、第1の制御情報としてコマンド読み出しコントロールを含む。コマンド読み出しコントロールは1ビットの値であって、その値が1の場合には次のコマンドの読み出しを行い、0の場合には次のコマンドの読み出しを停止する。ここで、次のコマンドとは、FIFOのアドレスで、読み出されたコマンドの次のアドレスの記憶領域に保持されているコマンドである。
【0085】
例えば、第Nフレーム(Nは自然数)の表示期間終了後の垂直ブランキング期間にジェネレーター50(図4参照)はコマンドAを受け取る。コマンドAのコマンド読み出しコントロールの値は1であるため、ジェネレーター50は次のコマンドBを受け取る。コマンドBのコマンド読み出しコントロールの値も1であるため、ジェネレーター50は次のコマンドCを受け取る。そして、コマンドCのコマンド読み出しコントロールの値が0であるため、この垂直ブランキング期間におけるコマンドの読み出しを停止する。
【0086】
ジェネレーター50は、垂直ブランキング期間に記憶部からコマンドを読み出し、フレームに同期して処理を行う。このとき、コマンドが第1の制御情報(コマンド読み出しコントロール)を含むことによって、1フレームでの処理において複数のコマンドを連続して実行することができる。このことにより、多様なテーブル値の生成ができ、処理の効率も高まる。
【0087】
このとき、記憶部20は、1つの垂直ブランキング期間に読み出されるコマンドの集合をコマンドセットとして管理する。この例では、コマンドセット1はコマンドA〜Cを含み、コマンドセット2はコマンドD、Eを含み、コマンドセット3はコマンドFのみを含む。そして、全てのコマンドセットが読み出された場合(FIFOのエンプティ状態)に、記憶部20は割り込み信号を発生してもよい。ホストCPUは、割り込み信号による要求がある場合にだけコマンドを出力すればよいので一層負担がかからない。
【0088】
図5(B)は、コマンドセットの状態と、割り込み発生のタイミングを表す図である。第Nフレームの表示期間に、図5(A)のようにホストCPUがコマンドを記憶部20に出力したとする。その後の垂直ブランキング期間に、ジェネレーター50は、コマンドセット1、コマンドセット2、コマンドセット3を読み出して実行する。ここで、記憶部20は、一時的に保持しているコマンドセット(FIFO コマンドセット残数)が0となるときに、割り込み信号250(図1参照)をアクティブにする。
【0089】
本実施形態では、第1の制御情報(コマンド読み出しコントロール)の他にも複数の制御情報を含むコマンドを用いることができる。そして、複数の命令(オペコード)も選択できる。よって、本実施形態は、拡張性の高い手法を採用しており、多様なテーブル値の生成が可能である。
【0090】
図6は、本実施形態における、いくつかのコマンドのコード例を示すものである。なお、図に示したコードは一例である。例えば制御情報の各ビットは、オペコードに依存することなく、値を設定することが可能である。
【0091】
コマンドは命令(オペコード)として、例えばNOP、ライト、リードモディファイライトを選択できる。NOPはテーブル値を生成しないが、NOPを挿入することで、テーブル値を生成するフレーム間隔を調整することができる。ライトは生成したテーブル値を、デスティネーションであるルックアップテーブルに書き込むことができる。リードモディファイライトはソースであるルックアップテーブルから読み出した値に、“f(x)/x”(式(1)に基づくゲイン)を乗じて、デスティネーションであるルックアップテーブルに書き込む。
【0092】
コマンドは、制御情報として、第1の制御情報(コマンド読み出しコントロール)、第2の制御情報(RGBマスク)、第3の制御情報(テーブルパラメーター選択)、第4の制御情報(デスティネーション)、第5の制御情報(ソース)、第6の制御情報(インデックスリード)を含む。
【0093】
なお、テーブルパラメーター選択が0であって、ホストがコマンドとしてテーブルパラメーターを与える場合には、制御情報にテーブルパラメーター(式(1)のG0、D)が含まれるが、図6では省略している。また、コマンドの命令がNOPの場合には、コマンド読み出しコントロール以外の制御情報は無視される。命令によって無視される制御情報は図6で“−”で示している。また、コマンド読み出しコントロールについては、前記の通りであり説明を省略する。
【0094】
RGBマスクは、どの色のルックアップテーブルのテーブル値に対して命令を実行するかを指定する。RGBマスクは3ビットの値であって、RGBそれぞれに対応するマスクビットで構成されている。例えば、RGBマスクが“011”の場合には、レッド(R)のテーブル値だけを生成し、“000”の場合には、全ての色についてテーブル値を生成する。RGBマスクによって色を選択できるので、無駄がなく効率的なテーブル値の生成ができる。
【0095】
テーブルパラメーター選択は、ジェネレーターが、テーブルパラメーターを受け取る対象を指定する。例えば、テーブルパラメーター選択は1ビットであって、値が0であればホストCPUからコマンドとして受け取り、1であれば統計解析部から受け取る。
【0096】
補正曲線の係数は各フレームの入力画像の統計的な解析に基づいて定められる。統計解析部からテーブルパラメーターを受け取る場合、ホストCPUは解析を行う必要がない。よって、ホストCPUに負担をかけずにテーブル値をダイナミックに変更できる。
【0097】
また、この場合には、コマンドを起動時にだけ受け取ってもよい。テーブルパラメーターは、統計解析部がジェネレーターに供給するので、例えばホストCPUのアクセスがなくても、自動的にダイナミックなテーブル値の更新を行うことができる。
【0098】
このとき、記憶部が受け取ったコマンドを繰り返しジェネレーターに供給するように設定し、割り込み信号も発生しないように設定する必要がある。これらの設定も、制御情報としてコマンドを拡張することで容易に実現可能である。なお、NOPを挿入することによって、毎フレームでなく、数フレーム毎にテーブル値が変更されるように調整してもよい。このとき、NOPはウェイトする(テーブル値を変更しない)フレーム数を、オペランドとして指定できてもよい。NOPを挿入することで、補正値に基づく表示画像において、視覚的な変化を緩やかにすることが可能になる。
【0099】
デスティネーションとソースは、ルックアップテーブルを指定する。デスティネーションはジェネレーターが生成したテーブル値を書き込むルックアップテーブルを、ソースはジェネレーターが値を読み出すルックアップテーブルを指定する。デスティネーションとソースは複数ビットの値であってもよいが、本実施形態では2つのルックアップテーブルしかないため1ビットでよい。つまり、0の場合には第1のルックアップテーブル40−1(図1参照)を、1の場合には第2のルックアップテーブル40−2(図2参照)を表す。
【0100】
インデックスリードは、所定の値(ここでは1)にセットされた場合に、インデックスリードモードを実行する。インデックスリードモードとは、デスティネーションであるルックアップテーブルの値を、ソースであるルックアップテーブルによって変換して、デスティネーションであるルックアップテーブルに書き戻すことをいう。
【0101】
インデックスリードモードでは、2つのルックアップテーブルを用いる必要がある。本実施形態では、2つのルックアップテーブルしかないため、例えばソースの指定が無視されて、デスティネーションとは反対のルックアップテーブルが自動的に選択されてもよい。なお、インデックスリードモードでは、テーブルパラメーターは不要である。
【0102】
1.6.3.コマンドに対応する動作の例
1.6.3.1.ライト
図7は、図6のライト命令に対応する動作を説明する図である。なお、画像処理装置10の構成は図4と同じであり説明を省略する。
【0103】
図6のライトは、ホストからコマンドとして与えられたテーブルパラメーター(図外)に基づいてテーブル値を生成し、第1のルックアップテーブル40−1のR(レッド)成分に書き込む指示である。
【0104】
図7のように、記憶部20はコマンド200を一時的に保持し、ジェネレーター50は垂直ブランキング期間にコマンド230を受け取る。そして、ジェネレーター50は、テーブルパラメーターに基づいてテーブル値を生成する。
【0105】
ジェネレーター50は、制御信号210−5によって、テーブル値(アドレス)212Aを第1のルックアップテーブル40−1のアドレスAに入力する。また、ジェネレーター50は、制御信号210−3によって、テーブル値(データ)212Dを第1のルックアップテーブル40−1のデータDに入力する。このとき、第1のルックアップテーブル40−1のR(レッド)成分のライトイネーブルはオンであって、ライトモードで使用されている。よって、第1のルックアップテーブル40−1のテーブル値は更新される。
【0106】
1.6.3.2.リードモディファイライト
図8〜図9は、図6のリードモディファイライト命令に対応する動作を説明する図である。なお、画像処理装置10の構成は図4と同じであり説明を省略する。
【0107】
図6のリードモディファイライト命令は、統計解析部60からのテーブルパラメーター260に基づいてテーブル値を生成し、そのテーブル値に基づくゲインを、第1のルックアップテーブル40−1から読み出した値に乗じて、第2のルックアップテーブル40−2のG(グリーン)成分に書き込む指示である。
【0108】
図8のように、記憶部20はコマンド200を一時的に保持し、ジェネレーター50は垂直ブランキング期間にコマンド230を受け取る。そして、ジェネレーター50は、統計解析部60からのテーブルパラメーター260に基づいてテーブル値を生成し、そのゲインを得る。
【0109】
ジェネレーター50は、制御信号210−5によって、テーブル値(アドレス)212Aを第1のルックアップテーブル40−1のアドレスAに入力する。そして、制御信号210−2によって、出力テーブル値240−1をソースリードデータ222として読みこむ。このとき、第1のルックアップテーブル40−1のライトイネーブルはオフであって、リードモードで使用されている。
【0110】
その後、図9のように、ジェネレーター50はソースリードデータ222にゲインを乗じてテーブル値(データ)212Dとする。ジェネレーター50は、制御信号210−6によって、テーブル値(アドレス)212Aを第2のルックアップテーブル40−2のアドレスAに入力する。また、ジェネレーター50は、制御信号210−4によって、テーブル値(データ)212Dを第2のルックアップテーブル40−2のデータDに入力する。このとき、第2のルックアップテーブル40−2のG(グリーン)成分のライトイネーブルはオンであって、ライトモードで使用されている。よって、第2のルックアップテーブル40−2のテーブル値は更新される。
【0111】
1.6.3.3.インデックスリードモード
図10〜図11は、図6のインデックスリードモードのコマンドに対応する動作を説明する図である。なお、画像処理装置10の構成は図4と同じであり説明を省略する。
【0112】
図6のインデックスリードモードのコマンドは、第1のルックアップテーブル40−1のB(ブルー)成分から読み出した値を、第2のルックアップテーブル40−2を経由して、第1のルックアップテーブル40−1に書き戻す指示である。
【0113】
図10のように、記憶部20はコマンド200を一時的に保持し、ジェネレーター50は垂直ブランキング期間にコマンド230を受け取る。そして、ジェネレーター50は、制御信号210−5によって、テーブル値(アドレス)212Aを第1のルックアップテーブル40−1のアドレスAに入力する。そして、制御信号210−2、210−6によって、出力テーブル値240−1を第2のルックアップテーブル40−2のアドレスAに入力する。
【0114】
その後、図11のように、制御信号210−2、210−3によって、出力テーブル値240−2を第1のルックアップテーブル40−1のデータDに書き戻す。このとき、第1のルックアップテーブル40−1のB(ブルー)成分のライトイネーブルはオンであって、ライトモードで使用されている。よって、第1のルックアップテーブル40−1のテーブル値は更新される。
【0115】
このように、本実施形態の画像処理装置は、ジェネレーターによってテーブル値をダイナミックに変更できる。このとき、ホストCPUはコマンドを出力するだけでよく、ホストCPUに負担がかかることはない。また、前記の例のように、コマンドの命令と制御情報によって多様なテーブル値の生成が可能であって拡張性も高い。
【0116】
2.適用例
本発明の電子機器への適用例について図12〜図13を参照にして説明する。なお、第1実施形態と同じ要素には同一符号を付しており、その説明を省略する。
【0117】
図12は適用例に係る電子機器1のブロック図である。電子機器1は、CPU2、入力部3、記憶部4、表示部5、画像処理部10を含む。電子機器1は、さらに音声を出力する音声出力部(図外)を含んでもよい。
【0118】
CPU2は、他のブロックを制御し様々な演算や処理を行う。CPU2は、例えば記憶部4からプログラムを読み込み、プログラムに従って画像処理部10に画像処理を実行させてもよい。例えば、CPU2は画像処理部10に対してコマンドを出力する。
【0119】
入力部3は、電子機器1の内部又は外部からデータなどを受け取る。入力部3は、例えば入力画像のデータを受け取り、画像処理部10が受け取るのに適したフォーマットの画素値へと変換してもよい。
【0120】
記憶部4は、例えばDRAMやSRAMなどのメモリーであってもよいし、ROMを含んでいてもよい。CPU2が使用するプログラムは、例えば記憶部4が含むROMに書かれていてもよい。
【0121】
表示部5は、画像処理部10が表示する画像を出力するためのものである。例えばLCDや電気泳動表示装置であってもよい。
【0122】
例えば電子機器1において、CPU2はリセット後にプログラムを記憶部4から読み込み、コマンドによって画像処理部10に画像処理を自動実行させる。そして、画像処理部10は、入力部3から受け取った画素値をルックアップテーブルで変換し、補正値を表示部5に出力する。
【0123】
このとき、CPU2はコマンドを出力するだけでよく、テーブル値を直接計算する必要はない。電子機器1は、CPU2に負担をかけずにテーブル値をダイナミックに変更できる画像処理装置10を含み、全体として効率的な処理を行うことが可能である。
【0124】
図13(A)に、電子機器1の1つである携帯電話950の外観図の例を示す。この携帯電話950は、ダイヤルボタン952やスピーカー956と共に、表示部5として機能するLCD954を備える。
【0125】
図13(B)に、電子機器1の1つである携帯型ゲーム装置960の外観図の例を示す。この携帯型ゲーム装置960は、操作ボタン962、十字キー964やスピーカー968と共に、表示部5として機能するLCD966を備える。
【0126】
図13(C)に、電子機器1の1つであるパーソナルコンピューター970の外観図の例を示す。このパーソナルコンピューター970は、キーボード972やスピーカー976と共に、表示部5として文字、数字、グラフィックなどを表示するLCD974を備える。
【0127】
本実施形態の画像処理装置は、これらの例のように、画像を表示させる様々な電子機器に適用可能である。いずれの場合にも、CPU2に負担をかけずに、画像処理装置がテーブル値をダイナミックに変更して、入力画像に応じた補正を行う。そのため、全体として効率的な処理を行いながら、見栄えのよい表示を行う電子機器を提供できる。
【0128】
これらの例示に限らず、本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法および結果が同一の構成、あるいは目的および効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【0129】
1…電子機器、2…CPU、3…入力部、4…記憶部、5…表示部、10…画像処理装置、20…記憶部、30…画像補正部、40−1〜40−N…ルックアップテーブル(LUT)、50…ジェネレーター、60…統計解析部、200…コマンド、204、204R、204G、204B…画素値、210、210−1〜210−6、210−1R、210−1G、210−1B…制御信号、212…テーブル値、212A、212AR、212AG、212AB…テーブル値(アドレス)、212D、212DR、212DG、212DB…テーブル値(データ)、220…補正値、220A…補正曲線、220B…補正曲線、220C…補正曲線、222…ソースリードデータ、230…コマンド、232…リクエスト信号、240−1、240−2、240−1R、240−1G、240−1B…出力テーブル値、250…割り込み信号、260…テーブルパラメーター、950…携帯電話、952…ダイヤルボタン、954…LCD、956…スピーカー、960…携帯型ゲーム装置、962…操作ボタン、964…十字キー、966…LCD、968…スピーカー、970…パーソナルコンピューター、972…キーボード、974…LCD、976…音出力部
【技術分野】
【0001】
本発明は、画像処理装置、電子機器等に関する。
【背景技術】
【0002】
LCD等のディスプレイ装置において所望の再現特性が得られるように、入力画像の階調補正を行う画像処理装置がある。階調補正は、例えば明るさ補正、コントラスト補正、カラーバランス補正等である。これらの補正は入力画像の特性(例えば明るさ)に応じてダイナミックに行われる。例えば、階調補正は補正曲線(トーンカーブ)に基づいて行われるが、補正曲線を1フレーム又は数フレーム毎に動的に変化させる。
【0003】
ここで、補正曲線は3次以上の式で表されることが多い。そこで、積和演算の負担軽減、演算時間短縮のために補正曲線に対応したルックアップテーブルを用いることが多い。このとき、ルックアップテーブルのテーブル値をダイナミックに変更することで、入力画像の特性に応じた階調補正を行う。例えば、引用文献1の発明では雛形のテーブル値をROMに格納し、CPUがテーブル値をテーブルメモリーに書き込む際に、経路上にある変換モジュールがテーブル値を適切な値に書き換える。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−293827号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、CPUがROMにアクセスしてテーブル値を一度読み込む処理は、CPUに負荷をかけることになる。さらに、テーブル値をダイナミックに変更するので、CPUは時間のかかる画像の解析を頻繁に行う必要がある。その結果、システム全体の処理速度が大幅に低下する恐れがある。
【0006】
本発明はこのような問題点に鑑みてなされたものである。本発明のいくつかの態様によれば、拡張性が高い手法で、ホストCPUに負担をかけずにテーブル値をダイナミックに変更できる画像処理装置等を提供する。
【課題を解決するための手段】
【0007】
(1)本発明は、入力画像の補正を画素毎に行う画像処理装置であって、ルックアップテーブルを含み、前記ルックアップテーブルを用いて前記入力画像の注目画素の画素値を補正して補正値を生成する画像補正部と、前記ルックアップテーブルのテーブル値の生成を指示するコマンドを一時的に保持する記憶部と、前記記憶部からの前記コマンドに従って、前記テーブル値を生成するジェネレーターと、を含む。
【0008】
本発明によれば、画像処理装置はコマンドに従ってルックアップテーブルのテーブル値を生成するジェネレーターを含む。例えばホストCPUは、自らテーブル値を生成しなくてもコマンドをジェネレーターに渡せばテーブル値の変更が可能である。よって、ダイナミックにテーブル値を変更しても、ホストCPUにはあまり負担がかからない。
【0009】
さらに、画像処理装置はコマンドを一時的に保持する記憶部を含む。そのため、ホストCPUは、コマンドを出力するタイミングを制限されることはない。よって、ホストCPUにはあまり負担がかからない。
【0010】
本発明では、コマンドに応じた様々なテーブル値の生成をホストCPUに負荷をかけずに実現できる。例えばコマンド命令を複数用意することで、多様性、拡張性の高いテーブル値の生成ができる。ここで、コマンドとは、例えばオペコード(命令)と必要な制御情報(オペランドに相当)で構成される。
【0011】
(2)この画像処理装置において、前記ジェネレーターは、前記入力画像の垂直ブランキング期間に、前記記憶部に保持された前記コマンドを、前記コマンドが含む第1の制御情報が所定の値になるまで読み出し、読み出された前記コマンドに従って、前記テーブル値を生成してもよい。
【0012】
本発明によれば、ジェネレーターは、垂直ブランキング期間に記憶部からコマンドを読み出し、フレームに同期して処理を行う。このとき、1フレームの処理において複数のコマンドを連続して実行することができる。よって、多様なテーブル値の生成ができるために拡張性が高く、処理効率が高まる。
【0013】
ここで、記憶部に一時的に保持された各コマンドは第1の制御情報(コマンド読み出しコントロール)を含む。例えば第1の制御情報は1ビットの値である。ジェネレーターは、例えば読み出したコマンドの第1の制御情報が1の場合には次のコマンドの読み出しを行い、0の場合には次のコマンドの読み出しを停止してもよい。このような制御により、1フレームでの処理において所望の数のコマンドを実行することができる。
【0014】
(3)この画像処理装置において、前記ジェネレーターは、前記記憶部からの前記コマンドが含む第2の制御情報に基づいて、特定の色について前記テーブル値を生成してもよい。
【0015】
本発明によれば、コマンドが含む第2の制御情報(RGBマスク)に基づいてテーブル値を生成する色を選択できるので、無駄がなく効率的なテーブル値の生成ができる。
【0016】
例えば画素値がRGBの3色の情報を含むとする。このとき、例えば第2の制御情報は3ビットの値であって、RGBそれぞれに対応するマスクビットで構成されていてもよい。例えばジェネレーターは、読み出したコマンドの第2の制御情報が“101”の場合には、グリーン(G)のみについてテーブル値を生成してもよい。
【0017】
なお、画素値はRGBではなく、例えばYUVといった別の色空間に基づく表現で与えられてもよい。
【0018】
(4)この画像処理装置において、前記入力画像の統計的な解析に基づいて、補正曲線の係数であるテーブルパラメーターを出力する統計解析部を含み、前記ジェネレーターは、前記記憶部からの前記コマンドが含む第3の制御情報が第1の値である場合に、前記統計解析部からの前記テーブルパラメーターに基づいて、前記補正曲線に応じたテーブル値を生成してもよい。
【0019】
本発明によれば、ジェネレーターは、テーブル値を生成するための補正曲線の係数(テーブルパラメーター)を、例えばホストCPUではなく統計解析部から受け取る。このとき、補正曲線の係数は各フレームの入力画像の統計的な解析に基づいて定められるが、ホストCPUは解析を行う必要がない。よって、ホストCPUに負担をかけずにテーブル値をダイナミックに変更できる。
【0020】
本発明によれば、コマンドが含む第3の制御情報(テーブルパラメーター選択)によって、テーブルパラメーターの選択ができる。例えば第3の制御情報は1ビットの値であって、例えば第1の値とは1である。ジェネレーターは、例えば読み出したコマンドの第3の制御情報が1の場合には統計解析部からテーブルパラメーターを受け取り、0の場合にはコマンドに含まれるテーブルパラメーターを用いる。コマンドに含まれるテーブルパラメーターとは、例えばホストCPUがオペコードと共に出力したテーブルパラメーターである。
【0021】
本発明によれば、ジェネレーターが統計解析部からテーブルパラメーターを受け取るようにコマンドで指定することにより、例えばホストCPUのアクセスがなくても、自動的にテーブル値の更新を行うことが可能になる。
【0022】
(5)この画像処理装置において、前記ジェネレーターは、前記コマンドのオペコードが第1のコマンドである場合に、生成したテーブル値を、前記コマンドが含む第4の制御情報が指定する前記ルックアップテーブルに書き込んでもよい。
【0023】
(6)この画像処理装置において、前記ジェネレーターは、前記コマンドのオペコードが第2のコマンドである場合に、前記コマンドが含む第5の制御情報が指定する前記ルックアップテーブルのテーブル値を読み出し、生成したテーブル値に基づくゲインを乗じて、前記第4の制御情報が指定する前記ルックアップテーブルに書き戻してもよい。
【0024】
(7)この画像処理装置において、前記画像補正部は、前記ルックアップテーブルを複数含み、前記ジェネレーターは、前記コマンドが含む第6の制御情報が所定の値である場合に、前記第4の制御情報が指定する前記ルックアップテーブルのテーブル値を読み出し、第5の制御情報が指定する前記ルックアップテーブルを経由して、書き戻してもよい。
【0025】
これらの発明では、ジェネレーターは、コマンドは第4の制御情報(デスティネーション)と必要ならば第5の制御情報(ソース)とに基づいて、指定されたルックアップテーブルへの書き込み、読み出しを行う。このとき、複数のルックアップテーブルを扱うことができる。これらの発明によると、多様で柔軟なテーブル値の生成ができる。
【0026】
例えばジェネレーターは、コマンドのオペコードが第1のコマンド(ライト)である場合に、生成したテーブル値を、デスティネーションであるルックアップテーブルに書き込む。
【0027】
また、例えばジェネレーターは、コマンドのオペコードが第2のコマンド(リードモディファイライト)である場合に、ソースであるルックアップテーブルから読み出した値に、生成したテーブル値に基づくゲインを乗じて、デスティネーションであるルックアップテーブルに書き込む。ここで、変数“x”を用いてテーブル値に対応する補正曲線が“f(x)”であるとすると、生成したテーブル値に基づくゲインは、例えば“f(x)/x”である。第2のコマンドによって、2つの補正を1つのルックアップテーブルで実現することが可能になる。
【0028】
そして、例えばジェネレーターは、テーブルパラメーターを受け取ることなく、2つのルックアップテーブルを用いてテーブル値を更新することもできる。コマンドが含む第6の制御情報(インデックスリード)が所定の値(例えば1)である場合、デスティネーションであるルックアップテーブルの値を、ソースであるルックアップテーブルによって変換して、デスティネーションであるルックアップテーブルに書き戻す。
【0029】
コマンドのオペコードと制御情報との組み合わせによって、これらの例のように多様で柔軟なテーブル値の生成ができ、更にコマンドを拡張することも可能である。
【0030】
(8)この画像処理装置において、前記ジェネレーターは、前記第3の制御情報が前記第1の値である前記コマンドを、起動時に受け取ってもよい。
【0031】
(9)この画像処理装置において、所与のフレーム間隔で、前記統計解析部からの前記テーブルパラメーターに基づいて、前記補正曲線に応じたテーブル値を生成してもよい。
【0032】
これらの発明では、ジェネレーターは、第3の制御情報(テーブルパラメーター選択)を第1の値(例えば1)とするコマンドを起動時に受け取る。テーブルパラメーターは、統計解析部がジェネレーターに供給するので、例えばホストCPUのアクセスがなくても、自動的にダイナミックなテーブル値の更新を行うことができる。
【0033】
このとき、統計解析部は所与のフレーム間隔でテーブルパラメーターを出力してもよい。所与のフレーム間隔とは、例えば毎フレームであってもよいし、数フレーム毎であってもよい。例えば、コマンドのオペコードとしてNOP(ノーオペレーション)が含まれていてもよい。NOPはテーブル値を生成しないが、NOPを挿入することで、このフレーム間隔を調整することができる。
【0034】
(10)この画像処理装置において、前記記憶部は、保持されている前記コマンドの数が所与の条件を満たした場合に、新たな前記コマンドを要求するための割り込み信号を発生してもよい。
【0035】
本発明によれば、記憶部は例えばFIFOであって、保持されているコマンドの数が所与の条件を満たした場合に割り込み信号を発生し、例えばホストCPUにコマンドの書き込みを要求する。ホストCPUは、割り込み信号による要求がある場合にだけコマンドを出力すればよいので負担がかからない。
【0036】
ここで、所与の条件とは、記憶部に保持されているコマンドの数が無いこと(0であること)でもよい。また、所与の条件とは、記憶部に保持されているコマンドが残り数個(例えば2つ)となったことでもよい。
【0037】
(11)本発明は、前記のいずれかに記載の画像処理装置を含む電子機器である。
【0038】
本発明によれば、ホストCPUに負担をかけずにテーブル値をダイナミックに変更できる画像処理装置を含むので、全体として効率的な処理を行う電子機器を提供することができる。
【図面の簡単な説明】
【0039】
【図1】第1実施形態の画像処理装置のブロック図。
【図2】補正曲線を説明する図。
【図3】ルックアップテーブルの構成例を説明する図。
【図4】第1実施形態の画像補正部の構成例を示す図。
【図5】図5(A)はコマンドセットを説明する図。図5(B)は割り込み発生タイミングを説明する図。
【図6】コマンドの構成の具体例を示す図。
【図7】ライト命令の動作を説明する図。
【図8】リードモディファイライト命令の動作を説明する図。
【図9】図8に続くリードモディファイライト命令の動作を説明する図。
【図10】インデックスリードモードの動作を説明する図。
【図11】図10に続くインデックスリードモードの動作を説明する図。
【図12】適用例の電子機器のブロック図。
【図13】図13(A)は電子機器の例である携帯電話の図。図13(B)は電子機器の例である携帯型ゲーム装置の図。図13(C)は電子機器の例であるパーソナルコンピューターの図。
【発明を実施するための形態】
【0040】
以下、本発明の実施形態について図面を参照して説明する。
【0041】
1.第1実施形態
本発明の第1実施形態について図1〜図11を参照して説明する。
【0042】
1.1.第1実施形態の画像処理装置の構成
図1は本実施形態の画像処理装置10のブロック図である。画像処理装置10は、記憶部20、画像補正部30、ジェネレーター50を含む。画像補正部30はルックアップテーブル(LUT)40−1〜40−Nを含む。Nは自然数であり、例えばN=1の場合には、図1のルックアップテーブル40−1と40−Nとは同じルックアップテーブルとなる。
【0043】
画像処理装置10は、画素値204を受け取って、画像補正部30で補正を行って補正値220を出力する。このとき、ルックアップテーブル40−1〜40−Nが補正に用いられる。
【0044】
ジェネレーター50は、記憶部20に一時的に保持されたコマンド200を所定の期間に読み出す。そして、読み出したコマンド230に従って、ルックアップテーブル40−1〜40−Nのテーブル値212を生成する。
【0045】
本実施形態の画像処理装置10は、統計解析部60を含んでいてもよい。統計解析部60は、テーブルパラメーター260を出力する。テーブルパラメーターはテーブル値を定める補正関数の係数である。ジェネレーター50は、コマンド230とテーブルパラメーター260に基づいてテーブル値212を生成してもよい。
【0046】
画像処理装置10は、ルックアップテーブル40−1〜40−Nを用いて補正を行うが、この補正には動的補正(ダイナミック補正)が含まれる。例えば明るさ補正、コントラスト補正、カラーバランス補正等の階調補正は、入力画像の特性(例えば明るさ)に応じた動的補正である。そのため、ルックアップテーブル40−1〜40−Nのテーブル値を動的に変化させる必要がある。
【0047】
画像処理装置10は、記憶部20、ジェネレーター50を含むことで、例えば外部のホストCPUの負担を軽減することができる。また、ホストCPUに代わってテーブルパラメーター260を出力する統計解析部60を含むことで、更に負担を軽減することが可能である。
【0048】
ここで、画素値204は画像処理装置10への入力画像における注目画素の値である。入力画像のデータは走査方式で入力され、注目画素は、例えば画像処理装置10のシステムクロックに同期して順次変化するものとする。入力画像とは静止画であってもよいが、本実施形態では動画の1フレームの画像を指す。
【0049】
なお、本実施形態では、コマンド200、画素値204は画像処理装置10の外部から与えられるものとする。そのうち、コマンド200は、画像処理装置10の外部のホストCPUから供給されるとする。補正値220は、例えば表示インターフェース(図外)を介して、LCD等のディスプレイ装置に出力されてもよい。
【0050】
1.2.画像補正部
画像補正部30は、画素値204を受け取って、ルックアップテーブル40−1〜40−Nを用いて変換した値である補正値220を出力する。ルックアップテーブル40−1〜40−Nのそれぞれは、例えば、明るさ補正、コントラスト補正といった補正に対応するテーブル値を含む。
【0051】
本実施形態では、画像補正部30は2つのルックアップテーブルを含む(N=2)として説明する。つまり、ルックアップテーブル40−1、40−2だけが存在するとして説明する。そのうち、少なくとも一方は動的補正を行うためのルックアップテーブルであって、テーブル値を動的に変化させる必要があるものとする。なお、画像補正部30が例えば3つ以上のルックアップテーブルを使用する場合でも、1つのルックアップテーブルを含む場合であっても、以下に説明する機能を実現できる。
【0052】
なお、ジェネレーター50からのテーブル値212以外に、外部のホストCPUから直接テーブル値を与えることが可能であってもよい(図外)。しかし、データサイズの大きいテーブル値を、ホストCPUが計算して書き込むことは処理の負担が大きい。そのため、ジェネレーター50だけがテーブル値212を生成することが好ましい。
【0053】
1.3.ジェネレーター
ジェネレーター50は、例えば動的補正を行うためのルックアップテーブルの新たなテーブル値212を生成することができる。例えば、ホストCPUがテーブル値を計算する必要がないので、ホストCPUに負担がかからない。そのため、システム全体での処理の効率が向上する。
【0054】
ジェネレーター50は、例えば垂直ブランキング期間といった所定の期間に、記憶部20に一時的に保持されたコマンド230を受け取る。そして、コマンド230に従ってテーブル値212を生成する。このとき、ホストCPUに負担をかけずに、コマンド230に応じた多様なテーブル値の生成を行うことができる。
【0055】
例えば、コマンド230が指定するルックアップテーブルのテーブル値をソースリードデータ222として読み出し、その値に補正曲線に基づいたゲインを乗じて、コマンド230が指定するルックアップテーブルに書き込むことが可能である。
【0056】
このとき、ジェネレーター50は、ルックアップテーブル40−1、40−2の入出力を制御する制御信号210をコマンド230に従って出力する。制御信号210は例えば、画像補正部30が含むセレクターの選択信号であってもよい。
【0057】
なお、ジェネレーター50は、リクエスト信号232を用いて、記憶部20からのコマンド230の出力を要求してもよい。また、コマンド230は1つ、又は複数のコマンドの集合であるコマンドセットとして受け取ってもよい。
【0058】
1.4.記憶部
記憶部20は、ホストCPUが出力するコマンド200を一時的に保持する。ここで、ジェネレーター50は例えば垂直ブランキング期間にコマンドを受け取る必要がある。記憶部20がない場合には、ホストCPUは垂直ブランキング期間にコマンドを出力しなければならない。しかし、記憶部20が存在することによって、ホストCPUは出力のタイミングを気にする必要はない。よって、記憶部20は、ホストCPUの負担を軽減することができる。
【0059】
本実施形態の記憶部20はFIFOであるとする。そして、一時的に保持されたコマンド200の数が一定の条件になった場合に割り込み信号250をホストCPUに出力する。このとき、ホストCPUは割り込み信号250が発生した場合にのみコマンドを出力すればよく、処理の効率が高まる。なお、一定の条件とは、例えば記憶部20に一時的に保持されたコマンド200の数が0(エンプティ)になることでもよく、コマンドセットが残り1つになることでもよい。
【0060】
なお、記憶部20はFIFO構造をとる必要はなく、例えばランダムアクセス可能な一般的なメモリーであってもよい。
【0061】
1.5.ルックアップテーブルについて
1.5.1.補正関数
本実施形態のルックアップテーブル40−1、40−2のテーブル値は、それぞれ補正関数に従って決定される。本実施形態では、補正関数として例えばパラメーターG0とDとで定まる数1のような補正曲線を用いる。
【0062】
【数1】
ここで、式(1)の“x”は正規化された画素値204に対応し、“f(x)”は正規化された補正値220に対応する。
【0063】
本実施形態では入力画像のデータは走査方式で画像処理装置10に入力され、画素値204は入力画像の各画素に対応する。本実施形態の画素値204はRGB各成分を例えば10ビットで表現するデータである。式(1)によると、例えば画素値204のR成分が0(x=0)のとき、補正値220のR成分は0(f(x)=0)である。また、例えば画素値204のR成分が1023(x=1)のとき、補正値220のR成分は1023(f(x)=1)である。なお、前記のR成分をG成分、B成分としても同じである。
【0064】
図2は補正曲線f(x)の例であり、Dの値の変化に伴う曲線の変化を示している。ここで、式(1)の一階微分である“f´(x)”は数2のようになる。
【0065】
【数2】
式(2)でx=0および1を代入すると、数3のように係数G0、Dが得られる。すなわち、係数G0、Dは、それぞれx=0、1における接線の傾きで与えられる。
【0066】
【数3】
【0067】
図2において、例えばD=G0とした場合には補正曲線220Aが得られるが、D=0とすると補正曲線220Cのようになる。また、Dを適宜選択することで補正曲線220Bのような曲線を得ることもできる。
【0068】
ジェネレーターは、例えば入力画像の特性に応じた係数(テーブルパラメーター)G0、Dを得て、ルックアップテーブルのテーブル値を生成する。例えばジェネレーターは、動的補正を行うためのテーブル値を、あるフレームでは補正曲線220Aに従って生成し、次のフレームでは補正曲線220Bに従って生成する。
【0069】
テーブルパラメーター(具体的にはG0、D)は、ホストCPUからコマンドの一部として与えられてもよいし、統計解析部から受け取ってもよい。
【0070】
図2の例では、画素値204(図1参照)はRGB各成分が10ビットの値であり、0〜1023の値をとり得る。よって、式(1)の“x”に正規化した0〜1023の値のそれぞれを代入して、得られる”f(x)“に基づいてテーブル値を作成できる。
【0071】
なお、後述するように、ジェネレーターはある係数の式(1)に従ったテーブル値を読み出して、別の係数の式(1)に基づくゲインを乗じることで、数4のような高次の曲線“g(x)”に従ったテーブル値を生成できる。
【0072】
【数4】
ここで、式(5)でn=2の場合、読み出されるテーブル値は”f1(x)“に対応し、式(1)に基づくゲインとは、”f2(x)/x“である。このとき、例えば”f1(x)“が明るさ補正を行う式であり、”f2(x)“がコントラスト補正を行う式であるとすると、“g(x)”は両補正を同時に実行するための式を与える。
【0073】
1.5.2.ルックアップテーブルの構成
図3は、ルックアップテーブルの構成例を説明する図である。本実施形態の画像補正部が含むルックアップテーブルは、式(1)の補正曲線に対応している。ルックアップテーブルを参照することで、例えば乗算器等によって計算することなく、直ちに画素値を補正値に変換することができる。ルックアップテーブルは、例えば書き換え可能なSRAM等のメモリーで構成される。
【0074】
図3では、第1のルックアップテーブル40−1(図1参照)を例にして説明するが、第2のルックアップテーブル等についても同じである。画素値204(図1参照)が、RGBの各成分を含むとする。このとき、第1のルックアップテーブル40−1は、RGBの各成分を変換するための3面分のメモリーで構成される(LUT(R)、LUT(G)、LUT(B))。よって、本実施形態の第1、第2のルックアップテーブル40−1、40−2(図1参照)は合わせて6面分のメモリーで構成されている。ここで、1面とは1つの色について必要なルックアップテーブルのメモリー量を表す。
【0075】
本実施形態では、6面分のメモリーの種類や制御方法は同じである。よって、図3のR成分(LUT(R))のみについて説明する。LUT(R)は、書き換え可能なメモリーであってアドレスA、入力データD、出力データQのポートを含む。LUT(R)は補正曲線(式(1)参照)に対応したテーブル値を記憶している。なお、クロックとライトイネーブルについては記載を省略しているが、これらの信号についても適宜制御が行われるものとする。
【0076】
まず、画素値を補正値に変換する場合には、LUT(R)はリードモード(ライトイネーブルはオフ)で使用される。このとき、ジェネレーター50(図1参照)からの制御信号210−1Rによって、R成分の画素値204RがアドレスAに入力される。そして、アドレスを画素値204Rとする記憶領域に保存されたテーブル値を出力テーブル値240−1Rとして出力する。
【0077】
そして、テーブル値が書き込まれる場合には、LUT(R)はライトモード(ライトイネーブルはオン)で使用される。このとき、制御信号210−1Rによって、R成分の新しいテーブル値(アドレス)202ARがアドレスAに入力される。また、R成分の新しいテーブル値(データ)202DRが入力データDに入力される。
【0078】
このように、ルックアップテーブルは書き換え可能なメモリーによって実現できる。なお、本実施形態のルックアップテーブルを構成する6面分のメモリーは、それぞれが例えば物理的に異なるメモリーであってもよいし、論理的に区分されているメモリーブロックであってもよい。
【0079】
1.6.本実施形態の動作の例
本実施形態におけるテーブル値を生成する際の動作の例について、図4〜図11を参照して説明する。なお、図1〜図3と同じ要素には同じ符号を付しており、その説明を省略する。
【0080】
1.6.1.画像補正部の構成例
図4は、本実施形態の画像補正部30の構成例を示す図である。制御信号210−1〜210−6は図1の制御信号210に対応する。制御信号210−1〜210−6は、画像補正部30のセレクターの選択信号として機能する。ここで、ジェネレーター50からのテーブル値212(図1参照)は、テーブル値(アドレス)212Aと、テーブル値(データ)212Dに分けて表記されている。第1のルックアップテーブル40−1の出力テーブル値240−1と、第2のルックアップテーブル40−2の出力テーブル値240−2の一方が選択されて補正値220として出力される。
【0081】
そして、出力テーブル値240−1と出力テーブル値240−2は、第1のルックアップテーブル40−1および第2のルックアップテーブル40−2のアドレスA、データDに入力することが可能である。さらに、ジェネレーター50は、この信号をソースリードデータ222として読むことができる。
【0082】
本実施形態では、このような構成の画像補正部30やソースリードデータ222といった信号によって、コマンドに応じて多様なテーブル値を生成できる。なお、図4では、説明に必要の無い図1の一部の信号(例えば、割り込み信号等)について図示を省略している。また、図4はデータの流れを説明するためのものであり、詳細な物理的結線を示すものではない。
【0083】
1.6.2.コマンド
図5〜図6は、本実施形態に用いるコマンドの具体例を示す図である。まず、図5(A)は、FIFOである記憶部20に格納されたコマンドA〜コマンドFを示している。それぞれのコマンドは、オペコードと、オペランドに相当する制御情報とで構成されている。なお、制御情報は、オペコードの種類によって一部が有効であったり、無効であったりする。
【0084】
本実施形態に用いるコマンドは、第1の制御情報としてコマンド読み出しコントロールを含む。コマンド読み出しコントロールは1ビットの値であって、その値が1の場合には次のコマンドの読み出しを行い、0の場合には次のコマンドの読み出しを停止する。ここで、次のコマンドとは、FIFOのアドレスで、読み出されたコマンドの次のアドレスの記憶領域に保持されているコマンドである。
【0085】
例えば、第Nフレーム(Nは自然数)の表示期間終了後の垂直ブランキング期間にジェネレーター50(図4参照)はコマンドAを受け取る。コマンドAのコマンド読み出しコントロールの値は1であるため、ジェネレーター50は次のコマンドBを受け取る。コマンドBのコマンド読み出しコントロールの値も1であるため、ジェネレーター50は次のコマンドCを受け取る。そして、コマンドCのコマンド読み出しコントロールの値が0であるため、この垂直ブランキング期間におけるコマンドの読み出しを停止する。
【0086】
ジェネレーター50は、垂直ブランキング期間に記憶部からコマンドを読み出し、フレームに同期して処理を行う。このとき、コマンドが第1の制御情報(コマンド読み出しコントロール)を含むことによって、1フレームでの処理において複数のコマンドを連続して実行することができる。このことにより、多様なテーブル値の生成ができ、処理の効率も高まる。
【0087】
このとき、記憶部20は、1つの垂直ブランキング期間に読み出されるコマンドの集合をコマンドセットとして管理する。この例では、コマンドセット1はコマンドA〜Cを含み、コマンドセット2はコマンドD、Eを含み、コマンドセット3はコマンドFのみを含む。そして、全てのコマンドセットが読み出された場合(FIFOのエンプティ状態)に、記憶部20は割り込み信号を発生してもよい。ホストCPUは、割り込み信号による要求がある場合にだけコマンドを出力すればよいので一層負担がかからない。
【0088】
図5(B)は、コマンドセットの状態と、割り込み発生のタイミングを表す図である。第Nフレームの表示期間に、図5(A)のようにホストCPUがコマンドを記憶部20に出力したとする。その後の垂直ブランキング期間に、ジェネレーター50は、コマンドセット1、コマンドセット2、コマンドセット3を読み出して実行する。ここで、記憶部20は、一時的に保持しているコマンドセット(FIFO コマンドセット残数)が0となるときに、割り込み信号250(図1参照)をアクティブにする。
【0089】
本実施形態では、第1の制御情報(コマンド読み出しコントロール)の他にも複数の制御情報を含むコマンドを用いることができる。そして、複数の命令(オペコード)も選択できる。よって、本実施形態は、拡張性の高い手法を採用しており、多様なテーブル値の生成が可能である。
【0090】
図6は、本実施形態における、いくつかのコマンドのコード例を示すものである。なお、図に示したコードは一例である。例えば制御情報の各ビットは、オペコードに依存することなく、値を設定することが可能である。
【0091】
コマンドは命令(オペコード)として、例えばNOP、ライト、リードモディファイライトを選択できる。NOPはテーブル値を生成しないが、NOPを挿入することで、テーブル値を生成するフレーム間隔を調整することができる。ライトは生成したテーブル値を、デスティネーションであるルックアップテーブルに書き込むことができる。リードモディファイライトはソースであるルックアップテーブルから読み出した値に、“f(x)/x”(式(1)に基づくゲイン)を乗じて、デスティネーションであるルックアップテーブルに書き込む。
【0092】
コマンドは、制御情報として、第1の制御情報(コマンド読み出しコントロール)、第2の制御情報(RGBマスク)、第3の制御情報(テーブルパラメーター選択)、第4の制御情報(デスティネーション)、第5の制御情報(ソース)、第6の制御情報(インデックスリード)を含む。
【0093】
なお、テーブルパラメーター選択が0であって、ホストがコマンドとしてテーブルパラメーターを与える場合には、制御情報にテーブルパラメーター(式(1)のG0、D)が含まれるが、図6では省略している。また、コマンドの命令がNOPの場合には、コマンド読み出しコントロール以外の制御情報は無視される。命令によって無視される制御情報は図6で“−”で示している。また、コマンド読み出しコントロールについては、前記の通りであり説明を省略する。
【0094】
RGBマスクは、どの色のルックアップテーブルのテーブル値に対して命令を実行するかを指定する。RGBマスクは3ビットの値であって、RGBそれぞれに対応するマスクビットで構成されている。例えば、RGBマスクが“011”の場合には、レッド(R)のテーブル値だけを生成し、“000”の場合には、全ての色についてテーブル値を生成する。RGBマスクによって色を選択できるので、無駄がなく効率的なテーブル値の生成ができる。
【0095】
テーブルパラメーター選択は、ジェネレーターが、テーブルパラメーターを受け取る対象を指定する。例えば、テーブルパラメーター選択は1ビットであって、値が0であればホストCPUからコマンドとして受け取り、1であれば統計解析部から受け取る。
【0096】
補正曲線の係数は各フレームの入力画像の統計的な解析に基づいて定められる。統計解析部からテーブルパラメーターを受け取る場合、ホストCPUは解析を行う必要がない。よって、ホストCPUに負担をかけずにテーブル値をダイナミックに変更できる。
【0097】
また、この場合には、コマンドを起動時にだけ受け取ってもよい。テーブルパラメーターは、統計解析部がジェネレーターに供給するので、例えばホストCPUのアクセスがなくても、自動的にダイナミックなテーブル値の更新を行うことができる。
【0098】
このとき、記憶部が受け取ったコマンドを繰り返しジェネレーターに供給するように設定し、割り込み信号も発生しないように設定する必要がある。これらの設定も、制御情報としてコマンドを拡張することで容易に実現可能である。なお、NOPを挿入することによって、毎フレームでなく、数フレーム毎にテーブル値が変更されるように調整してもよい。このとき、NOPはウェイトする(テーブル値を変更しない)フレーム数を、オペランドとして指定できてもよい。NOPを挿入することで、補正値に基づく表示画像において、視覚的な変化を緩やかにすることが可能になる。
【0099】
デスティネーションとソースは、ルックアップテーブルを指定する。デスティネーションはジェネレーターが生成したテーブル値を書き込むルックアップテーブルを、ソースはジェネレーターが値を読み出すルックアップテーブルを指定する。デスティネーションとソースは複数ビットの値であってもよいが、本実施形態では2つのルックアップテーブルしかないため1ビットでよい。つまり、0の場合には第1のルックアップテーブル40−1(図1参照)を、1の場合には第2のルックアップテーブル40−2(図2参照)を表す。
【0100】
インデックスリードは、所定の値(ここでは1)にセットされた場合に、インデックスリードモードを実行する。インデックスリードモードとは、デスティネーションであるルックアップテーブルの値を、ソースであるルックアップテーブルによって変換して、デスティネーションであるルックアップテーブルに書き戻すことをいう。
【0101】
インデックスリードモードでは、2つのルックアップテーブルを用いる必要がある。本実施形態では、2つのルックアップテーブルしかないため、例えばソースの指定が無視されて、デスティネーションとは反対のルックアップテーブルが自動的に選択されてもよい。なお、インデックスリードモードでは、テーブルパラメーターは不要である。
【0102】
1.6.3.コマンドに対応する動作の例
1.6.3.1.ライト
図7は、図6のライト命令に対応する動作を説明する図である。なお、画像処理装置10の構成は図4と同じであり説明を省略する。
【0103】
図6のライトは、ホストからコマンドとして与えられたテーブルパラメーター(図外)に基づいてテーブル値を生成し、第1のルックアップテーブル40−1のR(レッド)成分に書き込む指示である。
【0104】
図7のように、記憶部20はコマンド200を一時的に保持し、ジェネレーター50は垂直ブランキング期間にコマンド230を受け取る。そして、ジェネレーター50は、テーブルパラメーターに基づいてテーブル値を生成する。
【0105】
ジェネレーター50は、制御信号210−5によって、テーブル値(アドレス)212Aを第1のルックアップテーブル40−1のアドレスAに入力する。また、ジェネレーター50は、制御信号210−3によって、テーブル値(データ)212Dを第1のルックアップテーブル40−1のデータDに入力する。このとき、第1のルックアップテーブル40−1のR(レッド)成分のライトイネーブルはオンであって、ライトモードで使用されている。よって、第1のルックアップテーブル40−1のテーブル値は更新される。
【0106】
1.6.3.2.リードモディファイライト
図8〜図9は、図6のリードモディファイライト命令に対応する動作を説明する図である。なお、画像処理装置10の構成は図4と同じであり説明を省略する。
【0107】
図6のリードモディファイライト命令は、統計解析部60からのテーブルパラメーター260に基づいてテーブル値を生成し、そのテーブル値に基づくゲインを、第1のルックアップテーブル40−1から読み出した値に乗じて、第2のルックアップテーブル40−2のG(グリーン)成分に書き込む指示である。
【0108】
図8のように、記憶部20はコマンド200を一時的に保持し、ジェネレーター50は垂直ブランキング期間にコマンド230を受け取る。そして、ジェネレーター50は、統計解析部60からのテーブルパラメーター260に基づいてテーブル値を生成し、そのゲインを得る。
【0109】
ジェネレーター50は、制御信号210−5によって、テーブル値(アドレス)212Aを第1のルックアップテーブル40−1のアドレスAに入力する。そして、制御信号210−2によって、出力テーブル値240−1をソースリードデータ222として読みこむ。このとき、第1のルックアップテーブル40−1のライトイネーブルはオフであって、リードモードで使用されている。
【0110】
その後、図9のように、ジェネレーター50はソースリードデータ222にゲインを乗じてテーブル値(データ)212Dとする。ジェネレーター50は、制御信号210−6によって、テーブル値(アドレス)212Aを第2のルックアップテーブル40−2のアドレスAに入力する。また、ジェネレーター50は、制御信号210−4によって、テーブル値(データ)212Dを第2のルックアップテーブル40−2のデータDに入力する。このとき、第2のルックアップテーブル40−2のG(グリーン)成分のライトイネーブルはオンであって、ライトモードで使用されている。よって、第2のルックアップテーブル40−2のテーブル値は更新される。
【0111】
1.6.3.3.インデックスリードモード
図10〜図11は、図6のインデックスリードモードのコマンドに対応する動作を説明する図である。なお、画像処理装置10の構成は図4と同じであり説明を省略する。
【0112】
図6のインデックスリードモードのコマンドは、第1のルックアップテーブル40−1のB(ブルー)成分から読み出した値を、第2のルックアップテーブル40−2を経由して、第1のルックアップテーブル40−1に書き戻す指示である。
【0113】
図10のように、記憶部20はコマンド200を一時的に保持し、ジェネレーター50は垂直ブランキング期間にコマンド230を受け取る。そして、ジェネレーター50は、制御信号210−5によって、テーブル値(アドレス)212Aを第1のルックアップテーブル40−1のアドレスAに入力する。そして、制御信号210−2、210−6によって、出力テーブル値240−1を第2のルックアップテーブル40−2のアドレスAに入力する。
【0114】
その後、図11のように、制御信号210−2、210−3によって、出力テーブル値240−2を第1のルックアップテーブル40−1のデータDに書き戻す。このとき、第1のルックアップテーブル40−1のB(ブルー)成分のライトイネーブルはオンであって、ライトモードで使用されている。よって、第1のルックアップテーブル40−1のテーブル値は更新される。
【0115】
このように、本実施形態の画像処理装置は、ジェネレーターによってテーブル値をダイナミックに変更できる。このとき、ホストCPUはコマンドを出力するだけでよく、ホストCPUに負担がかかることはない。また、前記の例のように、コマンドの命令と制御情報によって多様なテーブル値の生成が可能であって拡張性も高い。
【0116】
2.適用例
本発明の電子機器への適用例について図12〜図13を参照にして説明する。なお、第1実施形態と同じ要素には同一符号を付しており、その説明を省略する。
【0117】
図12は適用例に係る電子機器1のブロック図である。電子機器1は、CPU2、入力部3、記憶部4、表示部5、画像処理部10を含む。電子機器1は、さらに音声を出力する音声出力部(図外)を含んでもよい。
【0118】
CPU2は、他のブロックを制御し様々な演算や処理を行う。CPU2は、例えば記憶部4からプログラムを読み込み、プログラムに従って画像処理部10に画像処理を実行させてもよい。例えば、CPU2は画像処理部10に対してコマンドを出力する。
【0119】
入力部3は、電子機器1の内部又は外部からデータなどを受け取る。入力部3は、例えば入力画像のデータを受け取り、画像処理部10が受け取るのに適したフォーマットの画素値へと変換してもよい。
【0120】
記憶部4は、例えばDRAMやSRAMなどのメモリーであってもよいし、ROMを含んでいてもよい。CPU2が使用するプログラムは、例えば記憶部4が含むROMに書かれていてもよい。
【0121】
表示部5は、画像処理部10が表示する画像を出力するためのものである。例えばLCDや電気泳動表示装置であってもよい。
【0122】
例えば電子機器1において、CPU2はリセット後にプログラムを記憶部4から読み込み、コマンドによって画像処理部10に画像処理を自動実行させる。そして、画像処理部10は、入力部3から受け取った画素値をルックアップテーブルで変換し、補正値を表示部5に出力する。
【0123】
このとき、CPU2はコマンドを出力するだけでよく、テーブル値を直接計算する必要はない。電子機器1は、CPU2に負担をかけずにテーブル値をダイナミックに変更できる画像処理装置10を含み、全体として効率的な処理を行うことが可能である。
【0124】
図13(A)に、電子機器1の1つである携帯電話950の外観図の例を示す。この携帯電話950は、ダイヤルボタン952やスピーカー956と共に、表示部5として機能するLCD954を備える。
【0125】
図13(B)に、電子機器1の1つである携帯型ゲーム装置960の外観図の例を示す。この携帯型ゲーム装置960は、操作ボタン962、十字キー964やスピーカー968と共に、表示部5として機能するLCD966を備える。
【0126】
図13(C)に、電子機器1の1つであるパーソナルコンピューター970の外観図の例を示す。このパーソナルコンピューター970は、キーボード972やスピーカー976と共に、表示部5として文字、数字、グラフィックなどを表示するLCD974を備える。
【0127】
本実施形態の画像処理装置は、これらの例のように、画像を表示させる様々な電子機器に適用可能である。いずれの場合にも、CPU2に負担をかけずに、画像処理装置がテーブル値をダイナミックに変更して、入力画像に応じた補正を行う。そのため、全体として効率的な処理を行いながら、見栄えのよい表示を行う電子機器を提供できる。
【0128】
これらの例示に限らず、本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法および結果が同一の構成、あるいは目的および効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【0129】
1…電子機器、2…CPU、3…入力部、4…記憶部、5…表示部、10…画像処理装置、20…記憶部、30…画像補正部、40−1〜40−N…ルックアップテーブル(LUT)、50…ジェネレーター、60…統計解析部、200…コマンド、204、204R、204G、204B…画素値、210、210−1〜210−6、210−1R、210−1G、210−1B…制御信号、212…テーブル値、212A、212AR、212AG、212AB…テーブル値(アドレス)、212D、212DR、212DG、212DB…テーブル値(データ)、220…補正値、220A…補正曲線、220B…補正曲線、220C…補正曲線、222…ソースリードデータ、230…コマンド、232…リクエスト信号、240−1、240−2、240−1R、240−1G、240−1B…出力テーブル値、250…割り込み信号、260…テーブルパラメーター、950…携帯電話、952…ダイヤルボタン、954…LCD、956…スピーカー、960…携帯型ゲーム装置、962…操作ボタン、964…十字キー、966…LCD、968…スピーカー、970…パーソナルコンピューター、972…キーボード、974…LCD、976…音出力部
【特許請求の範囲】
【請求項1】
入力画像の補正を画素毎に行う画像処理装置であって、
ルックアップテーブルを含み、前記ルックアップテーブルを用いて前記入力画像の注目画素の画素値を補正して補正値を生成する画像補正部と、
前記ルックアップテーブルのテーブル値の生成を指示するコマンドを一時的に保持する記憶部と、
前記記憶部からの前記コマンドに従って、前記テーブル値を生成するジェネレーターと、を含む画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記ジェネレーターは、
前記入力画像の垂直ブランキング期間に、前記記憶部に保持された前記コマンドを、前記コマンドが含む第1の制御情報が所定の値になるまで読み出し、
読み出された前記コマンドに従って、前記テーブル値を生成する画像処理装置。
【請求項3】
請求項1乃至2のいずれかに記載の画像処理装置において、
前記ジェネレーターは、
前記記憶部からの前記コマンドが含む第2の制御情報に基づいて、特定の色について前記テーブル値を生成する画像処理装置。
【請求項4】
請求項1乃至3のいずれかに記載の画像処理装置において、
前記入力画像の統計的な解析に基づいて、補正曲線の係数であるテーブルパラメーターを出力する統計解析部を含み、
前記ジェネレーターは、
前記記憶部からの前記コマンドが含む第3の制御情報が第1の値である場合に、前記統計解析部からの前記テーブルパラメーターに基づいて、前記補正曲線に応じたテーブル値を生成する画像処理装置。
【請求項5】
請求項1乃至4のいずれかに記載の画像処理装置において、
前記ジェネレーターは、
前記コマンドのオペコードが第1のコマンドである場合に、生成したテーブル値を、前記コマンドが含む第4の制御情報が指定する前記ルックアップテーブルに書き込む画像処理装置。
【請求項6】
請求項5に記載の画像処理装置において、
前記ジェネレーターは、
前記コマンドのオペコードが第2のコマンドである場合に、前記コマンドが含む第5の制御情報が指定する前記ルックアップテーブルのテーブル値を読み出し、生成したテーブル値に基づくゲインを乗じて、前記第4の制御情報が指定する前記ルックアップテーブルに書き戻す画像処理装置。
【請求項7】
請求項6に記載の画像処理装置において、
前記画像補正部は、
前記ルックアップテーブルを複数含み、
前記ジェネレーターは、
前記コマンドが含む第6の制御情報が所定の値である場合に、前記第4の制御情報が指定する前記ルックアップテーブルのテーブル値を読み出し、第5の制御情報が指定する前記ルックアップテーブルを経由して、書き戻す画像処理装置。
【請求項8】
請求項4に記載の画像処理装置において、
前記ジェネレーターは、
前記第3の制御情報が前記第1の値である前記コマンドを、起動時に受け取る画像処理装置。
【請求項9】
請求項8に記載の画像処理装置において、
所与のフレーム間隔で、前記統計解析部からの前記テーブルパラメーターに基づいて、前記補正曲線に応じたテーブル値を生成する画像処理装置。
【請求項10】
請求項2に記載の画像処理装置において、
前記記憶部は、
保持されている前記コマンドの数が所与の条件を満たした場合に、新たな前記コマンドを要求するための割り込み信号を発生する画像処理装置。
【請求項11】
請求項1乃至10のいずれかに記載の画像処理装置を含む電子機器。
【請求項1】
入力画像の補正を画素毎に行う画像処理装置であって、
ルックアップテーブルを含み、前記ルックアップテーブルを用いて前記入力画像の注目画素の画素値を補正して補正値を生成する画像補正部と、
前記ルックアップテーブルのテーブル値の生成を指示するコマンドを一時的に保持する記憶部と、
前記記憶部からの前記コマンドに従って、前記テーブル値を生成するジェネレーターと、を含む画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記ジェネレーターは、
前記入力画像の垂直ブランキング期間に、前記記憶部に保持された前記コマンドを、前記コマンドが含む第1の制御情報が所定の値になるまで読み出し、
読み出された前記コマンドに従って、前記テーブル値を生成する画像処理装置。
【請求項3】
請求項1乃至2のいずれかに記載の画像処理装置において、
前記ジェネレーターは、
前記記憶部からの前記コマンドが含む第2の制御情報に基づいて、特定の色について前記テーブル値を生成する画像処理装置。
【請求項4】
請求項1乃至3のいずれかに記載の画像処理装置において、
前記入力画像の統計的な解析に基づいて、補正曲線の係数であるテーブルパラメーターを出力する統計解析部を含み、
前記ジェネレーターは、
前記記憶部からの前記コマンドが含む第3の制御情報が第1の値である場合に、前記統計解析部からの前記テーブルパラメーターに基づいて、前記補正曲線に応じたテーブル値を生成する画像処理装置。
【請求項5】
請求項1乃至4のいずれかに記載の画像処理装置において、
前記ジェネレーターは、
前記コマンドのオペコードが第1のコマンドである場合に、生成したテーブル値を、前記コマンドが含む第4の制御情報が指定する前記ルックアップテーブルに書き込む画像処理装置。
【請求項6】
請求項5に記載の画像処理装置において、
前記ジェネレーターは、
前記コマンドのオペコードが第2のコマンドである場合に、前記コマンドが含む第5の制御情報が指定する前記ルックアップテーブルのテーブル値を読み出し、生成したテーブル値に基づくゲインを乗じて、前記第4の制御情報が指定する前記ルックアップテーブルに書き戻す画像処理装置。
【請求項7】
請求項6に記載の画像処理装置において、
前記画像補正部は、
前記ルックアップテーブルを複数含み、
前記ジェネレーターは、
前記コマンドが含む第6の制御情報が所定の値である場合に、前記第4の制御情報が指定する前記ルックアップテーブルのテーブル値を読み出し、第5の制御情報が指定する前記ルックアップテーブルを経由して、書き戻す画像処理装置。
【請求項8】
請求項4に記載の画像処理装置において、
前記ジェネレーターは、
前記第3の制御情報が前記第1の値である前記コマンドを、起動時に受け取る画像処理装置。
【請求項9】
請求項8に記載の画像処理装置において、
所与のフレーム間隔で、前記統計解析部からの前記テーブルパラメーターに基づいて、前記補正曲線に応じたテーブル値を生成する画像処理装置。
【請求項10】
請求項2に記載の画像処理装置において、
前記記憶部は、
保持されている前記コマンドの数が所与の条件を満たした場合に、新たな前記コマンドを要求するための割り込み信号を発生する画像処理装置。
【請求項11】
請求項1乃至10のいずれかに記載の画像処理装置を含む電子機器。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図12】
【図13】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図12】
【図13】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−181664(P2012−181664A)
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【出願番号】特願2011−43981(P2011−43981)
【出願日】平成23年3月1日(2011.3.1)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【出願日】平成23年3月1日(2011.3.1)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]