本発明の実施の形態について、図面を用いて詳細に説明する。ただし、本発明は以下の説明に限定されず、その形態および詳細を様々に変更し得ることは、当業者であれば容易に理解される。また、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。なお、図面を用いて発明の構成を説明するにあたり、同じものを指す符号は異なる図面間でも共通して用いる。なお、同様のものを指す際にはハッチパターンを同じくし、特に符号を付さない場合がある。
図において、大きさ、膜(層)の厚さ、または領域は、明瞭化のために誇張されている場合がある。
第1、第2として付される序数詞は便宜的に用いるものであり、工程順または積層順を示すものではない。そのため、例えば、「第1の」を「第2の」又は「第3の」などと適宜置き換えて説明することができる。また、本明細書等に記載されている序数詞と、本発明の一態様を特定するために用いられる序数詞は一致しない場合がある。
本明細書において、要素Xを、単にXと省略して記載する場合がある。数量Yを、単にYと省略して記載する場合がある。要素とは、例えば、配線、信号線、電源線、回路、素子、導電体、絶縁体、膜等である。数量とは、例えば、変数、関数、パラメータ等である。例えば、照度illumを単にillumと記載する場合がある。関数normを単にnormと記載する場合がある。信号線SLを単にSLと記載する場合がある。
(実施の形態1)
本実施の形態では、本発明の一態様に係るプログラムおよび情報処理装置について図面を参照して説明する。
図1および図2を参照して、本発明の一態様に係る情報処理装置の構成例を説明する。
図1(A)は、情報処理装置(information processing device)180Aの構成を説明するブロック図である。
図1(A)に示す情報処理装置180Aは、実行ユニット(execution unit)101と、記憶部(memory)102とを有する。情報処理装置180Aには、外部にある光検出部から出力される2種類のセンサイメージが入力される。つまり、外部にあるライトユニットが点灯状態におけるセンサイメージ(sensor image (light unit=on))と、上記ライトユニットが消灯状態におけるセンサイメージ(sensor image (light unit=off))である。情報処理装置180Aは、外部にある表示部へ入力される表示画像(display image)を出力する。記憶部102は、センサイメージを処理する、本願発明の一態様に係るプログラムが格納されている。実行ユニット101は、上記プログラムを実行する。
実行ユニット101は、例えば、ALU(Arithmetic logic unit)である。記憶部102は、例えば、キャッシュメモリである。または、実行ユニット101は、CPU(Central processing unit)であってもよい。記憶部102は、主記憶部であってもよい。
情報処理装置180Aは、例えば、光学式タッチパネルと接続され、記憶部102に格納されたプログラムを用いて、タッチ位置等のタッチデータを計算することが可能な情報処理装置である。
図1(B)は、情報処理装置180Bの構成を説明するブロック図である。図1(B)に示す情報処理装置180Bは、図1(A)に示す情報処理装置180Aと、表示画像の入出力が異なるのみである。従って、他の構成は、図1(A)に示す情報処理装置180Aの説明を適宜参照することができる。図1(A)に示す情報処理装置180Aは、表示画像を出力するのに対し、図1(B)に示す情報処理装置180Bは、表示画像が入力される。つまり、図1(A)に示す情報処理装置180Aは、表示画像を生成しているのに対し、図1(B)に示す情報処理装置180Bは、表示画像を生成していない。本願発明の一態様に係るプログラムは、表示画像を参照するため、情報処理装置180Bが表示画像を生成していない場合には、外部から表示画像を入力する構成となる。
図2は、情報処理装置190Aの構成を説明するブロック図である。
図2に示す情報処理装置190Aは、表示部および光検出部(display & PS unit)120Aと、情報処理ユニット(information processing unit)110と、を有する。表示部および光検出部120Aは、光検出部(photosensor unit)121と、表示部(display)122と、ライトユニット(light unit)123と、を有する。情報処理ユニット110は、実行ユニット(execution unit)101と、記憶部(memory)102とを有する。情報処理ユニット110には、光検出部121から出力される2種類のセンサイメージが入力される。つまり、ライトユニット123が点灯状態におけるセンサイメージと、ライトユニットが消灯状態におけるセンサイメージである。情報処理ユニット110は、表示部122へ入力される表示画像を出力する。記憶部102は、センサイメージを処理する、本願発明の一態様に係るプログラムが格納されている。実行ユニット101は、上記プログラムを実行する。
光検出部121は、2次元的に配置されたセルを有する。各セルは、例えば、フォトダイオードを有し、入射する光の照度に応じた電圧を生成する機能を有する。表示部122は、2次元的に配置された画素を有する。各画素は、例えば、赤、緑、青をそれぞれ表示する副画素を有する。各副画素は、例えば、液晶素子を有する。ライトユニット123は、例えば、液晶表示部のバックライトとして機能する。
表示部122は、液晶素子のほか、例えば、発光素子を有していてもよい。発光素子は、電流又は電圧によって輝度が制御される素子である。発光素子としては、エレクトロルミネセンス素子(EL素子又は電界発光素子ともいう)などを用いることができる。
本明細書において、ライトユニットとは、光源を備え、該光源が発光することにより点灯する機能を有する発光ユニットである。例えば、表示部が液晶素子を有する場合などに用いられるバックライトは、ライトユニットである。上記ライトユニットは、白色発光ダイオードや、複数の色の発光ダイオードを光源とすることができる。例えば、表示部が発光素子を有する場合、表示部自体が光源を備えるため、ライトユニットである。そのような場合、表示部とは別にライトユニットが設けられていなくても良い。
情報処理装置190Aは、例えば、光学式タッチパネルを備えた情報処理装置であり、記憶部102に格納されたプログラムを用いて、タッチ位置等のタッチデータを計算することが可能な情報処理装置である。
次に、図3乃至図8、および図18を参照して、本発明の一態様に係るプログラムの一例を説明する。
図3(A)および(B)は、本発明の一態様に係るプログラムを説明するフローチャートの一例である。図3(A)は、タッチ位置等のタッチデータを計算することが可能なプログラムP1を説明するフローチャートの一例である。図3(B)は、環境光の下での照度を見積もることが可能なプログラムP2を説明するフローチャートの一例である。プログラムP1を用いてタッチ位置等のタッチデータを計算する際に、環境光の下での照度を用いる。当該照度には、プログラムP2を用いて計算した照度を用いることができる。
図3(A)に示すフローチャートは、ステップS1、S2、S3、およびS4を備える。
ステップS1は、ライトユニットが点灯状態におけるセンサイメージと、ライトユニットが消灯状態におけるセンサイメージと、を取得するステップである。
ステップS2は、取得した2種類のセンサイメージを、キャリブレーションするステップである。上記キャリブレーションは、2種類のセンサイメージそれぞれに対して行われる。上記キャリブレーションは、キャリブレーション用のセンサイメージを用いて行われる。上記キャリブレーションは、各セルに対して、異なる基準値を用いて行われる。
ステップS3は、キャリブレーションが行われた2種類のセンサイメージを用いて、タッチレベルを含むイメージを計算するステップである。上記計算は、照度および表示画像を用いて行われる。上記照度は、環境光の下での照度、またはその見積もり値を用いる。
ステップS4は、タッチレベルを含むイメージを用いて、タッチ位置等のタッチデータを計算するステップである。
以上のステップに従って情報処理を行うことで、タッチ位置等のタッチデータを計算することが可能となる。ライトユニットが点灯状態におけるセンサイメージとライトユニットが消灯状態におけるセンサイメージに加えて、環境光の下での照度や表示画像を用いて情報処理を行うことで、より安定してタッチデータの計算を行うことができる。
図3(B)に示すフローチャートは、ステップT1、T2,およびT3を備える。
ステップT1は、ライトユニットが消灯状態におけるセンサイメージを取得するステップである。
ステップT2は、取得したセンサイメージからバックグラウンドとなるセンサイメージを差し引くステップである。
バックグラウンドとなるセンサイメージは、最も暗い環境光のもとで黒表示状態かつライトユニットが消灯状態で取得したセンサイメージとすることができる。ステップT2の処理を行うことで、光検出部が有する欠陥やばらつきの影響を低減することができる。
ステップT3は、バックグラウンドとなるイメージを差し引いたセンサイメージを用いて、環境光の下での照度の見積もり値を計算するステップである。
以上のステップに従って情報処理を行うことで、環境光の下での照度を見積もることが可能となる。
図3(A)および図3(B)に示すフローチャートについて、さらに詳細に説明する。
図4は、ステップS2(キャリブレーション)を説明するフローチャートの一例である。図4に示すフローチャートは、ステップS2−1A、S2−1Bを備える。
ステップS2では、スタート時点において、ライトユニットが点灯状態におけるセンサイメージと、ライトユニットが消灯状態におけるセンサイメージと、を取得した状態となっている。ライトユニットが点灯状態におけるセンサイメージは、各セルにおけるセンサ入力値si_on(c)の集合によって表される。ライトユニットが消灯状態におけるセンサイメージは、各セルにおけるセンサ入力値si_off(c)の集合によって表される。なお、センサ入力はセルから読み出されるデータである。センサ入力値はその値である。引数cはセルの座標を示す。
ステップS2−1Aでは、キャリブレーション用のセンサイメージを用いて、ライトユニットが消灯状態におけるセンサイメージをノーマライズ(規格化)する。
キャリブレーション用のセンサイメージは、例えば、2種類の環境光のもとで取得した、ライトユニットが消灯状態かつ白表示状態でのセンサイメージである。2種類の環境光は、例えば、使用環境を想定した最も明るい環境光(以下、単に、最も明るい環境光とも記す)と、最も暗い環境光(以下、単に、最も暗い環境光とも記す)とすることができる。最も明るい環境光のもとで取得した上記センサ入力値をsi_off_l(c)、最も暗い環境光のもとで取得した上記センサ入力値をsi_off_d(c)とする。以下では、正常なセルでは、si_off_d(c)<si_off_l(c)であるとして説明する。
ノーマライズ(規格化)に用いる関数の一例を説明する。ノーマライズに用いる関数は、si_off(c)を引数として、s0以上、s1以下の値を返す(s0、s1は実数)。例えば、si_off(c)がsi_off_d(c)以上si_off_l(c)以下である区間は、増加関数であり、si_off(c)がsi_off_d(c)と同じであればs0を返し、si_off(c)がsi_off_l(c)と同じであれば、s1を返す関数である。
fn(x)が増加関数であるとは、x1<x2であれば、fn(x1)≦fn(x2)が成り立つ関数である。fn(x)が減少関数であるとは、x1<x2であれば、fn(x1)≧fn(x2)が成り立つ関数である。
所定のセルにおいて、si_off(c)がsi_off_d(c)より小さい場合は、そのセルを欠陥セルとラベリングしても良い。そのような場合、例えば、タッチデータの計算において欠陥セルを区別、あるいは除外できるようにしても良い。si_off(c)がsi_off_d(c)より小さい場合、関数はs0を返してもよい。
所定のセルにおいて、si_off(c)がsi_off_l(c)より大きい場合は、そのセルを欠陥セルとラベリングしても良い。そのような場合、例えば、タッチデータの計算において欠陥セルを区別、あるいは除外できるようにしても良い。例えば、si_off(c)がsi_off_l(c)より大きい場合、関数はs1を返しても良い。
ノーマライズ(規格化)に用いる関数の具体的な例を示す。ノーマライズに用いる関数は、数式(1)に示す関数norm1において、x、x0、x1、をそれぞれ、si_off(c)、si_off_d(c)、si_off_l(c)と置き換えた関数とすることができる。
ここで、関数fは、例えば、恒等関数である。関数fは、0以上1以下の値を、0以上1以下の値に変換する非線形の増加関数であっても良い。
ノーマライズ(規格化)に用いる関数の別の具体的な例を示す。ノーマライズに用いる関数は、数式(2)に示す関数norm2において、x、x0、x1、をそれぞれ、si_off(c)、si_off_d(c)、si_off_l(c)と置き換えた関数とすることができる。
ここで、関数fは、例えば、恒等関数である。関数fは、0以上1以下の値を、0以上1以下の値に変換する非線形の増加関数であっても良い。
例えば、s0を0としても良い。例えば、s1を1としてもよい。
ステップS2−1Bは、キャリブレーション用のセンサイメージとして、ライトユニットが点灯状態でのセンサイメージを用いる。この点の相違を除き、ステップS2−1Aと同様の処理を行えばよい。
以上のようにして、キャリブレーションが行われたセンサイメージが計算される。
また、ステップS2−1Aにおいて、それぞれ、キャリブレーション用のセンサイメージとして、例えば、2種類の環境光のもとで黒い画像と白い画像を表示した状態で取得した4種類のセンサイメージを用い、2種類のキャリブレーションが行われたセンサイメージを得ることができる。2種類の環境光は、例えば、最も明るい環境光と、最も暗い環境光とすることができる。
例えば、最も明るい環境光のもとで黒画像を表示した状態で取得した上記センサ入力値をsi_off_lb(c)とし、最も明るい環境光のもとで白画像を表示した状態で取得したセンサ入力値をsi_off_lw(c)とする。最も暗い環境光のもとで黒画像を表示した状態で取得したセンサ入力値をsi_off_db(c)とし、最も暗い環境光のもとで白画像を表示した状態で取得したセンサ入力値をsi_off_dw(c)とする。
正常なセルでは、si_off_dw(c)<si_off_lw(c)かつsi_off_db(c)<si_off_lb(c)であるとして、上掲の計算を行えばよい。si_off_lb(c)およびsi_off_db(c)を用いて、キャリブレーションの行われたセンサイメージcalib_off_blackを生成する。同様に、si_off_lw(c)およびsi_off_dw(c)を用いて、キャリブレーションの行われたセンサイメージcalib_off_whiteを生成する。
また、ステップS2−1BもステップS1−1Aと同様であり、それぞれ、キャリブレーション用のセンサイメージとして、最も明るい環境光および最も暗い環境光のもとで、黒い画像と白い画像を表示した状態で取得した4種類のセンサイメージを用い、2種類のキャリブレーションが行われたセンサイメージを生成することができる。
ステップS2−1Bでは、最も明るい環境光のもとで黒画像を表示した状態で取得したセンサ入力値をsi_on_lb(c)とし、最も明るい環境光のもとで白画像を表示した状態で取得したセンサ入力値をsi_on_lw(c)とする。最も暗い環境光のもとで黒画像を表示した状態で取得したセンサ入力値をsi_on_db(c)とし、最も暗い環境光のもとで白画像を表示した状態で取得したセンサ入力値をsi_on_dw(c)とする。
正常なセルでは、si_on_dw(c)<si_on_lw(c)かつsi_on_db(c)<si_on_lb(c)であるとして、上掲の計算を行えばよい。si_on_lb(c)およびsi_on_db(c)を用いて、キャリブレーションの行われたセンサイメージcalib_on_blackを生成し、si_on_lw(c)およびsi_on_dw(c)を用いてキャリブレーションの行われたセンサイメージcalib_on_whiteを生成する。
上記は、正常なセルでは、si_off_d(c)<si_off_l(c)であるとして説明した。この大小関係は、センサイメージの読み出し方法等に依存する。勿論、不等号が逆の場合でも、同様な考え方で、キャリブレーションを行うことができる。
正常なセルにおいて、si_off_d(c)>si_off_l(c)となる場合の例を示す。この場合、ノーマライズ(規格化)に用いる関数は、例えば、数式(3)に示す関数norm3において、x、x0、x1、をそれぞれ、si_off(c)、si_off_d(c)、si_off_l(c)と置き換えた関数とすることができる。
ここで、関数fは、例えば、恒等関数である。関数fは、0以上1以下の値を、0以上1以下の値に変換する非線形の増加関数であっても良い。
上記のようなステップS2の処理を行うことで、キャリブレーション用のセンサイメージを用いて、セルごとに異なる基準値を用いたキャリブレーションを行うことができる。その結果、光検出部が欠陥セルを有する場合に、欠陥セルをラベリングし、その後の処理に影響を与えないようにすることができる。また、光検出部が有するセルの特性ばらつきの影響を低減することができる。
上記のようなステップS2の処理を行うことで、使用環境に合わせたキャリブレーションを行うことができる。その結果、より高い精度で、または、より安定してタッチデータを計算することができるプログラムを実現することができる。
上記のようなステップS2の処理では、ライトユニットが消灯状態でのセンサイメージのキャリブレーションと、ライトユニットが点灯状態でのセンサイメージのキャリブレーションと、をそれぞれ行う。その結果、より高い精度で、または、より安定してタッチデータを計算することができるプログラムを実現することができる。
なお、ステップS2は、キャリブレーション用のセンサイメージをもとに、各セルにおけるセンサ入力の最大値、および/またはセンサ入力の最小値を決めるステップと、当該最大値、および/または最小値を用いて各セルのセンサ入力値をノーマライズ(規格化)するステップと、に分けることができる場合がある。
なお、ステップS2は、キャリブレーション用のセンサイメージをもとに、欠陥セルをラベリングする処理するステップと、欠陥セルのセンサ入力値を処理するステップと、欠陥セル以外のセル(正常セルとも呼ぶ)のセンサ入力値を処理するステップに分けることができる場合がある。
図18は、ステップS3(タッチレベルを含むイメージの計算)を説明するフローチャートの一例である。
図18に示すフローチャートは、ステップS3C−1A、S3C−1B、S3C−1C、S3C−3、S3C−4、S3C−5を備える。
ステップS3では、スタート時点において、キャリブレーションが行われたライトユニットが点灯状態におけるセンサイメージと、キャリブレーションが行われたライトユニットが消灯状態におけるセンサイメージと、が生成された状態となっている。表示画像が白であれば、環境光の照度によらず、上記2種類のキャリブレーションが行われたセンサイメージを用いて、所定の計算を行うことで、タッチレベル(タッチの度合を表す量)が得られる。表示画像が黒であれば、ライトユニットからの光が画素によって遮断されるため、指によって反射されるライトユニットからの光の量が少ない。つまり、ライトユニットが点灯状態におけるセンサイメージに含まれるタッチレベルの情報が減少する。一方、ライトユニットが消灯状態におけるセンサイメージに含まれるタッチレベルの情報は、環境光が明るければ多く、環境光が暗ければ少ない。これは、環境光が明るければ、指の有無(タッチの有無)による遮光の差が大きいためである。このように、タッチレベルの情報を抽出するためには、照度を考慮することが有効となる。ステップS3では、このように、環境光の下での照度および表示画像を考慮して、タッチレベルの情報を抽出する。
ステップS3C−1Aでは、キャリブレーションが行われた2種類のセンサイメージの全体もしくは一部を用いて、白表示時のタッチレベルを計算する計算方法を用いて、タッチレベルを含むイメージを計算する。
上記タッチレベルを含むイメージは、各セルにおけるタッチレベルtl_w(c)の集合によって表される。タッチレベルは、タッチの度合を表す量である。引数のcはセルの座標を示す。例えば、基準となるタッチしている状態(フルタッチの状態)で0、基準となるタッチしていない状態(ノータッチの状態)で1となる量とすることができる。フルタッチの状態は、例えば、実際の環境下で実際にタッチした状態であっても良い。ノータッチの状態は、例えば、実際の環境下で実際にタッチしていない状態であっても良い。いずれの状態も、パラメータを適宜調整することで決まる、仮想的な状態であっても良い。
ステップS3C−1Bでは、キャリブレーションが行われた2種類のセンサイメージの全体もしくは一部を用いて、最も明るい環境光のもとでの黒表示時のタッチレベルを計算する計算方法を用いて、タッチレベルを含むイメージを計算する。上記タッチレベルを含むイメージは、各セルにおけるタッチレベルtl_bl(c)の集合によって表される。
ステップS3C−1Cでは、キャリブレーションが行われた2種類のセンサイメージの全体もしくは一部を用いて、最も暗い環境光のもとでの黒表示時のタッチレベルを計算する計算方法を用いて、タッチレベルを含むイメージを計算する。上記タッチレベルを含むイメージは、各セルにおけるタッチレベルtl_bd(c)の集合によって表される。
ステップS3C−3では、表示画像を取得する。
ステップS3C−4では、取得した表示画像をグレイスケールに変換する。
表示画像は、各画素に出力する表示出力値の集合によって表される。各画素が、赤、緑、青の副画素を有する場合、表示出力値は、(do_red(p)、do_green(p)、do_blue(p))と表すことができる。do_red(p)、do_green(p)、do_blue(p)はそれぞれ、赤、緑、青の副画素の表示出力値である。pは画素の座標を示す。8ビット階調を有する場合、do_red(p)、do_green(p)、do_blue(p)はそれぞれ0以上、255以下の整数となる。
グレイスケールへの変換は、色ごとの適切な重みを用いてもよい。例えば、画素の表示出力値をグレイスケールに変換した値gdo(p)は、gdo(p)=w_red・do_red(p)+w_green・do_green(p)+w_blue・do_blue(p)と表すことができる。w_red、w_green、およびw_blueは、それぞれ、グレイスケールへの変換における赤、緑、青の重みである。
ステップS3C−5では、照度illum、およびグレイスケールに変換された表示画像に従って、ステップS3C−1Aで計算したタッチレベルを含むイメージと、ステップS3C−1Bで計算したタッチレベルを含むイメージと、ステップS3C−1Cで計算したタッチレベルを含むイメージと、の加重平均をとる。照度illumは、環境光の下での照度、またはその見積もり値を用いる。その結果、実際の環境光および表示画像を考慮したタッチレベルを含むイメージが計算される。
グレイスケールに変換された表示画像はセルによって値が変わるため、セルごとに異なる重み付けが行われる。
ステップS3では、照度illumは、図3(B)に示すプログラムP2を用いて計算した、環境光の下での照度の見積もり値を用いることができる。光検出部の近傍に照度センサが設けられている場合は、照度センサから取得したデータを用いても良い。
例えば、指でタッチ動作を行う際に、光検出部(あるいは照度センサ等)が手などの影となることで、一時的に、照度が小さくなる場合がある。ステップS3で用いる照度を安定させるために、過去の照度を保存しておき、最近のある一定期間の照度の中で最大値のものを使用してもよい。例えば、照度を0.5秒間隔で取得し、最新の5つ照度の中で最大のものを用いてもよい。
ステップS3では、キャリブレーションが行われた複数のセンサイメージを用い、表示中の画像と、実際の環境光の下での照度を考慮して、タッチレベルを含むイメージの計算を行う。その結果、環境光や表示画像の影響をより抑えることができ、タッチレベルを含むイメージを、より高い精度で、または、より安定して、計算することができる。
図5は、ステップS3(タッチレベルを含むイメージの計算)を説明する、より具体的なフローチャートの一例である。図5に示すフローチャートは、ステップS3−1A、S3−1B、S3−1C、S3−2、S3−3、S3−4、S3−5を備える。
ステップS3−1A、S3−1BおよびS3−1Cは、図18に示すフローチャートにおけるステップS3C−1A、S3C−1BおよびS3C−1Cと、それぞれ同じ処理を行えばよい。従って、図18に示すフローチャートの説明を参照することができる。
ステップS3−2では、照度illumに従って、ステップS3−1Bで計算したタッチレベルを含むイメージと、ステップS3−1Cで計算したタッチレベルを含むイメージの加重平均をとる。照度illumは、環境光の下での照度、またはその見積もり値を用いる。その結果、実際の環境光を考慮した黒表示時のタッチレベルを計算する計算方法を用いて、タッチレベルを含むイメージを計算することができる。上記タッチレベルを含むイメージは、各セルにおけるタッチレベルtl_b(c)の集合によって表される。
加重平均に用いる関数の一例を説明する。最も明るい環境光の下での照度をillum_l、最も暗い環境光の下での照度をillum_dとする。加重平均に用いる関数mix1(tl_bd(c)、tl_bl(c);illum)は、照度illumに従って、tl_bd(c)とtl_bl(c)の間の値を返す。例えば、関数mix1は、照度illumの増加関数または減少関数であり、照度illumがillum_dと同じであれば、tl_bd(c)を返し、照度illumがillum_lと同じであれば、tl_bl(c)を返す関数である。
ステップS3−3およびS3−4は、図18に示すフローチャートにおけるステップS3C−3およびS3C−4と、それぞれ同じ処理を行えばよい。従って、図18に示すフローチャートの説明を参照することができる。
ステップS3−5では、グレイスケールに変換された表示画像に従って、ステップS3−1Aで計算したタッチレベルを含むイメージと、ステップS3−2で計算したタッチレベルを含むイメージの加重平均をとる。その結果、実際の環境光および表示画像を考慮したタッチレベルを含むイメージが計算される。
所定のセル(座標c)におけるグレイスケールに変換した値gdoa(c)は、上記所定のセルに最も近い一つ画素の表示出力値をグレイスケールに変換した値、または、上記所定のセルに近い複数の画素の表示出力値をグレイスケールに変換した値の平均値でもよい。gdoa(c)は、黒表示時にgdo_b、白表示時にgdo_wとなるとする。
加重平均に用いる関数の一例を説明する。加重平均に用いる関数mix2(tl_w(c)、tl_b(c);gdoa(c))は、gdoa(c)に従って、tl_w(c)とtl_b(c)の間の値を返す。例えば、関数mix2は、gdoa(c)の増加関数または減少関数であり、gdoa(c)がgdo_wと同じであれば、tl_w(c)を返し、gdoa(c)がgdo_bと同じであれば、tl_b(c)を返す関数である。
加重平均に用いる関数mix2は、白表示部では、tl_w(c)を返し、黒表示部ではtl_b(c)を返す。つまり、白表示部ではtl_w(c)およびtl_b(c)の重みはそれぞれ1および0であり、黒表示部ではtl_w(c)およびtl_b(c)の重みはそれぞれ0および1となるように、加重平均をとる。
加重平均に用いる関数の具体的な例を示す。加重平均に用いる関数は、数式(4)に示す関数mixにおいて、y0、y1、x、x0、x1、をそれぞれ、tl_b(c)、tl_w(c)、gdoa(c)、gdo_b、gdo_wと置き換えた関数とすることができる。
ここで、関数fは、例えば、恒等関数である。関数fは、0以上1以下の値を、0以上1以下の値に変換する非線形の増加関数であっても良い。
以上のようにして、タッチレベルを含むイメージが計算される。
上記のようなステップS3では、キャリブレーションが行われた2種類のセンサイメージを用い、表示中の画像と、実際の環境光下での照度を考慮して計算を行う。その結果、環境光や表示画像の影響をより抑えられたタッチレベルを含むイメージを、より高い精度で、または、より安定して、計算することができる。
図6は、ステップS3(タッチレベルを含むイメージの計算)を説明する、さらに具体的なフローチャートの一例である。図6に示すフローチャートは、ステップS3B−1A、S3B−1B、S3B−1C、S3B−2、S3B−3、S3B−4、S3B−5を備える。
ステップS3B−1Aでは、キャリブレーションが行われたライトユニットが点灯状態でのセンサ入力値ci_on(c)と、キャリブレーションが行われたライトユニットが消灯状態でのセンサ入力値ci_off(c)との差Δci(c)、つまり(ci_on(c)―ci_off(c))を計算し、これをノーマライズ(規格化)する。
白表示時のフルタッチの状態で、タッチしている場所にあるセルにおいて、Δci(c)はΔci_fullとなり、ノータッチの状態でΔci(c)はΔci_noとなるとする。このときの環境光は、例えば、最も明るい状態とする。セルの位置によって、フルタッチの状態のΔci(c)やノータッチの状態のΔci(c)が異なる場合は、例えば、正常なセルにおけるΔci(c)が全てΔci_fullとΔci_noの間に含まれるように、Δci_fullとΔci_noを決めてもよい。
ノーマライズ(規格化)に用いる関数の一例を説明する。ノーマライズに用いる関数は、Δci(c)を引数として、c0以上、c1以下の値を返す(c0、c1は実数)。例えば、Δci(c)がΔci_noとΔci_fullの間の区間では、増加関数または減少関数であり、Δci(c)がΔci_noと同じであればc1を返し、Δci(c)がΔci_fullと同じであれば、c0を返す関数である。
Δci(c)がΔci_fullとΔci_noの間に入らず、Δci_fullの外側であればc0を返しても良い。Δci(c)がΔci_fullとΔci_noの間に入らず、Δci_noの外側であればc1を返しても良い。
ノーマライズ(規格化)に用いる関数の具体的な例を示す。Δci_no<Δci_fullとする。ノーマライズに用いる関数は、数式(5)に示す関数norm4において、x、x0、x1、をそれぞれ、Δci(c)、Δci_full、Δci_noと置き換えた関数とすることができる。
ここで、関数fは、例えば、恒等関数である。関数fは、0以上1以下の値を、0以上1以下の値に変換する非線形の増加関数であっても良い。これにより、コントラストを変えることができる。その結果、タッチレベルの計算精度を向上できる場合がある。
例えば、c0を0としてもよい。例えば、c1を1としてもよい。
Δci_noおよびΔci_fullは、パラメータとして、適宜変更することができる。その結果、タッチレベルの計算精度を向上できる場合がある。特に、Δci_no=0としてもよい。
例えば、c0を0、c1を1として、Δci_noを0、関数fを恒等関数とした場合、1/Δci_fullをkと表すと、ノーマライズ(規格化)に用いる関数は、数式(6)に示す関数norm5において、xをΔci(c)と置き換えた関数とすることができる。
ステップS3B−1Aは、図18に示すステップS3C−1Aに対応する。ステップS3B−1Aの処理は、白表示時にタッチレベルを計算できる計算方法の一例である。Δci(c)は、白表示時にタッチレベルを表す場合がある。Δci(c)を上記のようにノーマライズ(規格化)することで、タッチレベルの計算精度を向上することができる。
ステップS3B−2では、照度illumが、あるしきい値となる照度illum_tより小さいかどうかを判断する。照度illumは、環境光の下での照度、またはその見積もり値を用いる。illumがillum_tより小さければ、ステップS3B−1Bを処理し、それ以外では、ステップS3B−1Cを処理する。
ステップS3B−2は、図5に示すステップS3−2に対応する。照度illumとあるしきい値となる照度illum_tとの大小関係によって、2種類のタッチレベルのいずれか一方を選択する処理は、2種類のタッチレベルの加重平均の一種である。この方式では、2種類のタッチレベルの両方を計算する必要がなく、選択する一方のタッチレベルのみを計算すればよいので、計算量を減らすことができ好ましい。
ステップS3B−1Bでは、キャリブレーションが行われたライトユニットが点灯状態でのセンサ入力値ci_on(c)をノーマライズ(規格化)する。
最も暗い環境光のもとで黒表示時のフルタッチの状態で、タッチしている場所にあるセルにおいて、ci_on(c)はci_on_fullとなり、ノータッチの状態でci_on(c)はci_on_noとなるとする。セルの位置によって、フルタッチの状態のci_on(c)やノータッチの状態のci_on(c)が異なる場合は、例えば、正常なセルにおけるci_on(c)が全てci_on_fullとci_on_noの間に含まれるように、ci_on_fullとci_on_noを決めてもよい。
ノーマライズ(規格化)に用いる関数の一例を説明する。ノーマライズに用いる関数は、ci_on(c)を引数として、c0以上、c1以下の値を返す(c0、c1は実数)。例えば、ci_on(c)がci_on_noとci_on_fullの間の区間では、増加関数または減少関数であり、ci_on(c)がci_on_noと同じであればc1を返し、ci_on(c)がci_on_fullと同じであれば、c0を返す関数である。
ci_on(c)がci_on_fullとci_on_noの間に入らず、ci_on_fullの外側であればc0を返しても良い。ci_on(c)がci_on_fullとci_on_noの間に入らず、ci_on_noの外側であればc1を返しても良い。
ノーマライズ(規格化)に用いる関数の具体的な例を示す。ci_on_no<ci_on_fullとする。ノーマライズに用いる関数は、数式(5)に示す関数norm4において、x、x0、x1、をそれぞれ、ci_on(c)、ci_on_full、ci_on_noと置き換えた関数とすることができる。
ここで、関数fは、例えば、恒等関数である。関数fは、0以上1以下の値を、0以上1以下の値に変換する非線形の増加関数であっても良い。これにより、コントラストを変えることができる。その結果、タッチレベルの計算精度を向上できる場合がある。
例えば、c0を0としてもよい。例えば、c1を1としてもよい。
ci_on_noおよびci_on_fullは、パラメータとして、適宜変更することができる。その結果、タッチレベルの計算精度を向上できる場合がある。
ステップS3B−1Bは、図18に示すステップS3C−1Bに対応する。ステップS3B−1Bの処理は、最も暗い環境光のもとで黒表示時にタッチレベルを計算できる計算方法の一例である。ci_on(c)は、最も暗い環境光のもとで黒表示時にタッチレベルを表す場合がある。ci_on(c)を上記のようにノーマライズ(規格化)することで、タッチレベルの計算精度を向上することができる。
ステップS3B−1Cでは、キャリブレーションが行われたライトユニットが消灯状態でのセンサ入力値ci_off(c)をノーマライズ(規格化)する。
最も明るい環境光のもとで黒表示時にフルタッチの状態で、タッチしている場所にあるセルにおいて、ci_off(c)はci_off_fullとなり、ノータッチの状態でci_off(c)はci_off_noとなるとする。セルの位置によって、フルタッチの状態のci_off(c)やノータッチの状態のci_off(c)が異なる場合は、例えば、正常なセルにおけるci_off(c)が全てci_off_fullとci_off_noの間に含まれるように、ci_off_fullとci_off_noを決めればよい。
ノーマライズ(規格化)に用いる関数の一例を説明する。ノーマライズに用いる関数は、ci_off(c)を引数として、c0以上、c1以下の値を返す(c0、c1は実数)。例えば、ci_off(c)がci_off_noとci_off_fullの間の区間では、増加関数または減少関数であり、ci_off(c)がci_off_noと同じであればc1を返し、ci_on(c)がci_on_fullと同じであれば、c0を返す関数である。
ci_off(c)がci_off_fullとci_off_noの間に入らず、ci_off_fullの外側であればc0を返しても良い。ci_off(c)がci_off_fullとci_off_noの間に入らず、ci_off_noの外側であればc1を返しても良い。
ノーマライズ(規格化)に用いる関数の具体的な例を示す。ci_off_full<ci_off_noとする。ノーマライズに用いる関数は、数式(7)に示す関数norm6において、x、x0、x1、をそれぞれ、ci_off(c)、ci_off_full、ci_off_noと置き換えた関数とすることができる。
ここで、関数fは、例えば、恒等関数である。関数fは、0以上1以下の値を、0以上1以下の値に変換する非線形の増加関数であっても良い。これにより、コントラストを変えることができる。その結果、タッチレベルの計算精度を向上できる場合がある。
例えば、c0を0としてもよい。例えば、c1を1としてもよい。
ci_off_noおよびci_off_fullは、パラメータとして、適宜変更することができる。その結果、タッチレベルの計算精度を向上できる場合がある。
ステップS3B−1Cは、図18に示すステップS3C−1Cに相当する。ステップS3B−1Cの処理は、最も明るい環境光のもとで黒表示時にタッチレベルを計算できる計算方法の一例である。ci_off(c)は、最も明るい環境光のもとで黒表示時にタッチレベルを表す場合がある。ci_off(c)を上記のようにノーマライズ(規格化)することで、タッチレベルの計算精度を向上することができる。
ステップS3B−3、S3B−4およびS3B−5は、図18に示すステップS3C−3、S3C−4、および図5に示すステップS3−5と、それぞれ同じ処理を行えばよい。従って、図5および図18に示すフローチャートの説明を参照することができる。
以上のようにして、タッチレベルを含むイメージが計算される。
上記のようなステップS3では、ライトユニットが点灯状態でのセンサイメージと、ライトユニットが消灯状態でのセンサイメージの2種類のセンサイメージを用い、表示中の画像と、実際の環境光下での照度を考慮して計算を行う。その結果、環境光や表示画像の影響がより抑えられたタッチレベルを含むイメージを計算することができる。
図7は、ステップT3(照度の計算)を説明するフローチャートの一例である。図7に示すフローチャートは、ステップT3−1、T3−2、T3−3A、T3−3B、T3−4、T3−5、T3−6を備える。
ステップT3では、スタート時点において、バックグラウンドとなるセンサイメージを差し引いたセンサイメージが生成された状態となっている。
ステップT3−1では、ライトユニットが消灯状態でのセンサイメージのスムージングを行う。
スムージングは、例えば、隣接するセルのセンサ入力値を平均化する処理である。例えば、m行n列のセルアレイを有する場合、センサイメージは、m×n個のセンサ入力値を有する。スムージングは、例えば、(x0、y0)、(x0+1、y0)、(x0、y0+1)、(x0+1、y0+1)に位置する4つのセルのセンサ入力値を平均する処理である(x0は1以上n以下の奇数、y0は1以上、m以下の奇数)。ここで、(x、y)はx列目かつy行目のセルの座標を示す。その結果、スムージングを行ったセンサイメージは、m×n/4個の平均化されたセンサ入力値となる。上記の例では平均化するセル数を4としたが、これに限らない。例えば、16セルを平均化してもよい。スムージングにより、点欠陥やノイズの影響を低減することができる。
ステップT3−2では、スムージングを行ったセンサイメージを用いて、最も明るい場所を見つける。このセンサ入力値は、環境光の下での照度を反映した値となる場合がある。
ステップT3−3Aでは、最も明るい場所のセンサ入力値を用いて、照度illum_wを取得する。白表示状態における環境光とセンサ入力値との関係を示す関数、或いはテーブルを参照して、照度illum_wを取得する。照度illum_wは、取得したセンサイメージが白表示であった場合に推定される環境光の下での照度を表す。上記関数、或いはテーブルは、予め測定しておいたデータに基づいて、準備しておけばよい。
ステップT3−3Bでは、最も明るい場所のセンサ入力値を用いて、照度illum_bを取得する。黒表示状態における環境光とセンサ入力値との関係を示す関数、或いはテーブルを参照して、照度illum_bを取得する。照度illum_bは、取得したセンサイメージが黒表示であった場合に推定される環境光の下での照度を表す。上記関数、或いはテーブルは、予め測定しておいたデータに基づいて、準備しておけばよい。
ステップT3−4では、表示画像を取得する。
ステップT3−5では、取得した表示画像をグレイスケールに変換する。図5に示すフローチャートにおけるステップS3−4と同様の処理を行えばよく、図5に示すフローチャートの説明を参照することができる。
ステップT3−6では、グレイスケールに変換された表示画像に従って、ステップT3−3Aで計算した照度illum_wと、ステップT3−3Bで計算した照度illum_bの加重平均をとる。その結果、実際の環境光の下での照度の見積もり値illumが計算される。
ステップT3−2で見つけた最も明るい場所におけるグレイスケールに変換した値gdorは、当該場所に近い一つ画素の表示出力値をグレイスケールに変換した値、または、当該場所を含む複数の画素の表示出力値をグレイスケールに変換した値の平均値でもよい。gdorは、黒表示時にgdo_b、白表示時にgdo_wとなるとする。
加重平均に用いる関数の一例を説明する。加重平均に用いる関数mix3(illum_w、illum_b;gdor)は、gdorに従って、illum_wとillum_bの間の値を返す。例えば、関数mix3は、gdorの増加関数または減少関数であり、gdorがgdo_wと同じであれば、illum_wを返し、gdorがgdo_bと同じであれば、illum_bを返す関数である。
加重平均に用いる関数の具体的な例を示す。加重平均に用いる関数は、数式(4)に示す関数mixにおいて、y0、y1、x、x0、x1、をそれぞれ、illum_b、illum_w、gdor、gdo_b、gdo_wと置き換えた関数とすることができる。
ここで、関数fは、例えば、恒等関数である。関数fは、0以上1以下の値を、0以上1以下の値に変換する非線形の増加関数であっても良い。
以上のようにして、環境光の下での照度の見積もり値が計算される。
上記のようなステップT3の処理を行うことで、照度センサが設けられていなくても、環境光の下での照度の見積もり値を取得することができる。タッチするパネル上での照度の見積もり値を取得することができる。
図8は、ステップS4(タッチデータの計算)を説明するフローチャートの一例である。図8に示すフローチャートは、ステップS4−1、S4−2、S4−3を備える。
ステップS4では、スタート時点において、タッチレベルを含むイメージが生成された状態となっている。
ステップS4−1では、ブロブ検出(blob detection)を行う。例えば、スレッショルディング(thresholding)、数理形態学(mathematical morphology)を用いた手法、イメージセグメンテーション(image segmentation)を用いて、ブロブ検出を行うことができる。ブロブ検出は、これらの手法に限定されず、その他の輪郭検出の手法などを用いても良い。
ステップS4−2では、ブロブが1つ以上検出されたかどうかを判断する。ブロブが1つ以上検出されれば、ステップS4−3へ進む。ブロブが1つも検出されなければ、処理を終了する。
ステップS4−3では、タッチ位置等のタッチデータを計算する。例えば、重心の計算や、タッチ位置の座標の計算等を行う。
以上のようにして、本発明の一態様に係るプログラムは、タッチ位置等のタッチデータを計算することができる。ライトユニットが点灯状態でのセンサイメージと、ライトユニットが消灯状態でのセンサイメージの2種類のセンサイメージを用い、表示中の画像と、環境光の下での照度を考慮して計算を行うことで、より安定してタッチデータの計算を行うことができる。また、より高い精度でタッチデータの計算を行うことができる。このようなプログラムを記憶部に備えることで、より利便性に優れた情報処理装置を実現できる。
なお、照度の見積もり値の取得の頻度と、タッチ位置等のタッチデータを計算する頻度と、は同じであってもよいが、異なっていても良い。環境光の下での照度は頻繁には変化しない場合が多いため、照度の見積もり値の取得頻度をタッチデータの計算頻度より少なくしても良い。例えば、照度の見積もり値の取得頻度を、タッチデータの計算頻度の1/60倍乃至1倍とすることができる。例えば、タッチデータの計算頻度を、表示画像の更新頻度の1/10倍乃至1倍とすることができる。
なお、本実施の形態は、本明細書で示す他の実施の形態と適宜組み合わせることができる。
(実施の形態2)
本実施の形態では、本発明の一態様に係る情報処理装置について図面を参照して説明する。
図9を参照して、本発明の一態様に係る情報処理装置の構成の一例を説明する。
図9は、情報処理装置190Bの構成を説明するブロック図である。
図9に示す情報処理装置190Bは、プロセッサ100と、記憶部103と、表示部および光検出部120Bと、センサユニット140と、通信ユニット160と、コントローラ130、コントローラ150、およびコントローラ170と、を有する。プロセッサ100は、実行ユニット101と、記憶部102と、を有する。表示部および光検出部120Bは、光検出部121と、表示部122と、ライトユニット123と、を有する。コントローラ130は、記憶部131、記憶部132を有する。プロセッサ100と、記憶部103と、コントローラ130、コントローラ150、およびコントローラ170と、はバスを介して接続されている。
プロセッサ100は、センサイメージを処理するプログラム等、各種プログラムを実行する。記憶部102は、センサイメージを処理する、本願発明の一態様に係るプログラムが格納されている。実行ユニット101は、上記プログラムを実行する。記憶部103は、表示画像等を格納する。記憶部103は記憶部102より記憶容量が大きい。
表示部および光検出部120Bは、表示部122において画像を表示し、光検出部121においてタッチ位置等のタッチデータを入力することができる。光検出部121は、タッチパネルの機能を有しても良い。
コントローラ130は、光検出部121、表示部122、およびライトユニット123の制御を行う。記憶部131は、光検出部から出力されるセンサイメージを格納しても良い。記憶部132は表示部122に出力する表示画像を格納しても良い。
センサユニット140として、温度センサや照度センサ等が設けられていても良い。コントローラ150は、センサユニット140を制御する。例えば、温度センサから温度を取得する。例えば、照度センサから照度を取得する。プロセッサ100は、取得した温度や照度に応じた処理を行うことができる。温度が高い場合には動作電圧を下げる、照度が高い場合にはライトユニットの輝度を高くする、といった処理を行っても良い。本発明の一態様のプログラムP1において、センサユニット140が有する照度センサから照度を取得しても良い。
通信ユニット160は、例えば、無線通信を行うユニットである。コントローラ170は、通信ユニット160を制御する。
情報処理装置190Bは、例えば、光学式タッチパネル付きの無線通信可能な情報処理装置であり、記憶部102に格納されたプログラムを用いて、タッチ位置などのタッチデータを計算することが可能な情報処理装置である。
なお、本実施の形態は、本明細書で示す他の実施の形態と適宜組み合わせることができる。
(実施の形態3)
本実施の形態では、本発明の一態様に係る情報処理装置について図面を参照して説明する。
本発明の一態様に係る情報処理装置として、例えば、テレビジョン装置(テレビ、またはテレビジョン受信機ともいう)、コンピュータ、デジタルビデオカメラ、デジタルフォトフレーム、携帯電話機(携帯電話、携帯電話装置ともいう)、携帯型ゲーム機、携帯情報端末、ゲーム機などが挙げられる。これらの電子機器の具体例を以下に示す。
図10(A)は、テレビジョン装置の一例を示している。テレビジョン装置は、筐体411に表示部413が組み込まれている。また、ここでは、取り付け具415により筐体411を壁面に支持できる構成を示している。表示部413により、映像を表示することが可能である。また、表示部413と重なる領域に光検出部が設けられている。
テレビジョン装置は、プロセッサや記憶部を有し、記憶部に格納された本発明の一態様に係るプログラムを用いて、タッチ位置などのタッチデータを計算することができる。その結果、様々な周囲の照度や表示画像においても、安定して、タッチデータを計算することができる。その結果、チャンネルや音量の操作、あるいは映像の操作を、安定して行うことができる。
テレビジョン装置の操作は、筐体411が備える操作スイッチや、別体のリモコン操作機401によっても行うことができる。リモコン操作機401が備える操作キー403により、テレビジョン装置を操作することができる。また、リモコン操作機401に表示部402を設ける構成としてもよい。
図10(B1)はコンピュータであり、本体421、筐体422、表示部423、キーボード424、外部接続ポート425、ポインティングデバイス426等を含む。なお、このコンピュータは、表示部423と重なる領域に光検出部が設けられている。
コンピュータは、図10(B2)のような形態であっても良い。図10(B2)に示すコンピュータは、キーボード424、ポインティングデバイス426の代わりに表示部430が設けられている。
表示部423、および表示部430と重なる領域に光検出部が設けられている。すなわち、表示部423、および表示部430は、光学式タッチパネル式となっており、表示部423、および表示部430に表示された入力用の表示を指やペンで操作することによって入力を行うことができる。また、表示部423、および表示部430は入力用表示だけでなく、その他の画像を表示することも可能である。表示部423、または表示部430のどちらか一方が光学式タッチパネルであっても良い。
コンピュータは、プロセッサや記憶部を有し、記憶部に格納された本発明の一態様に係るプログラムを用いて、タッチ位置などのタッチデータを計算することができる。その結果、様々な周囲の照度や表示画像においても、安定して、タッチデータを計算することができる。その結果、コンピュータの操作を、安定して行うことができる。
図10(C)は携帯型遊技機であり、筐体431と筐体432の2つの筐体で構成されており、連結部433により、開閉可能に連結されている。筐体431には、表示部434が組み込まれ、筐体432には表示部435が組み込まれている。
表示部434および表示部435と重なる領域に光検出部が設けられ、光学式タッチパネル式となっている。携帯型遊技機は、プロセッサや記憶部を有し、記憶部に格納された本発明の一態様に係るプログラムを用いて、タッチ位置などのタッチデータを計算することができる。その結果、様々な周囲の照度や表示画像においても、安定して、タッチデータを計算することができる。その結果、携帯型遊技機の操作を、安定して行うことができる。
また、図10(C)に示す携帯型遊技機は、スピーカ部436、記録媒体挿入部437、LEDランプ438、入力手段(操作キー439、接続端子440、センサ441(力、変位、位置、速度、加速度、角速度、回転数、距離、光、液、磁気、温度、化学物質、音声、時間、硬度、電場、電流、電圧、電力、放射線、流量、湿度、傾度、振動、におい又は赤外線を測定する機能を含むもの)、マイクロフォン442)等を備えている。図10(C)に示す携帯型遊技機は、記録媒体に記録されているプログラム又はデータを読み出して表示部に表示する機能や、他の携帯型遊技機と無線通信を行って情報を共有する機能を有する。なお、図10(C)に示す携帯型遊技機が有する機能はこれに限定されず、様々な機能を有することができる。
図10(D)は、携帯電話機の一例を示している。携帯電話機は、筐体451に組み込まれた表示部452の他、操作ボタン453、外部接続ポート454、スピーカ455、マイク456などを備えている。
図10(D)に示す携帯電話機は、表示部452と重なる領域に光検出部が設けられ、光学式タッチパネル式となっている。よって、表示部452を指などで触れることで、情報を入力することができる構成とすることもできる。この場合、電話を掛ける、或いはメールを作成するなどの操作は、表示部452を指などで触れることにより行うことができる。
携帯電話機は、プロセッサや記憶部を有し、記憶部に格納された本発明の一態様に係るプログラムを用いて、タッチ位置などのタッチデータを計算することができる。その結果、様々な周囲の照度や表示画像においても、安定して、タッチデータを計算することができる。その結果、携帯電話機の操作を、安定して行うことができる。
表示部452と重なる領域に設けられた光検出部で信号を検知し、表示部452のタッチ操作による入力が一定期間ない場合には、画面のモードを切り替えるように制御してもよい。
表示部452は、イメージセンサとして機能させることもできる。例えば、表示部452に掌や指で触れ、掌紋、指紋等を撮像することで、本人認証を行うことができる。また、表示部に近赤外光を発光するバックライトまたは近赤外光を発光するセンシング用光源を用いれば、指静脈、掌静脈などを撮像することもできる。
なお、本実施の形態は、本明細書で示す他の実施の形態と適宜組み合わせることができる。
なお、本明細書において半導体装置とは、半導体特性を利用することで機能しうる装置全般を指す。半導体素子(トランジスタ、ダイオード等)を含む回路、同回路を有する装置等を含む。例えば、電子回路、電子回路を備えたチップは、半導体装置の一例である。記憶装置、表示装置、発光装置、照明装置、電気光学装置、および電子機器等は、半導体装置を有している場合がある。
トランジスタは、ゲート、ソース、およびドレインと呼ばれる3つのノード(端子)を有する。ゲートは、トランジスタの導通状態を制御する制御ノードとして機能するノードである。ソースまたはドレインとして機能する一対の入出力ノードは、トランジスタのチャネル型及び各ノード(端子)に与えられる電位の高低によって、一方がソースとなり他方がドレインとなる。一般的に、nチャネル型トランジスタでは、低い電位が与えられるノードがソースと呼ばれ、高い電位が与えられるノードがドレインと呼ばれる。逆に、pチャネル型トランジスタでは、低い電位が与えられるノードがドレインと呼ばれ、高い電位が与えられるノードがソースと呼ばれる。
本明細書では、回路構成やその動作の理解を容易にするため、トランジスタの2つの入出力ノードの一方をソースに、他方をドレインに限定して説明する場合がある。もちろん、駆動方法によっては、トランジスタの3つの端子に印加される電位の大小関係が変化し、ソースとドレインが入れ替わる場合がある。したがって、本発明の一形態において、トランジスタのソースとドレインの区別は、明細書および図面での記載に限定されるものではない。
トランジスタのゲートとして機能する導電体をゲート電極、トランジスタのソースとして機能する導電体をソース電極、トランジスタのドレインとして機能する導電体をドレイン電極、トランジスタのソースとして機能する領域をソース領域、トランジスタのドレインとして機能する領域をドレイン領域、と呼ぶ。本明細書では、ゲート電極をゲート、ドレイン電極またはドレイン領域をドレイン、ソース電極またはソース領域をソース、と記す場合がある。
電圧は、ある電位と、基準の電位(例えば接地電位(GND)またはソース電位)との電位差のことを示す場合が多い。よって、電圧を電位と言い換えることが可能である。
図面における各回路ブロックの配置は、説明のため位置関係を特定するものであり、異なる回路ブロックで別々の機能を実現するよう図面で示していても、実際の回路や領域では、同じ回路ブロック内で別々の機能を実現しうるように設けられている場合もある。また図面における各回路ブロックの機能は、説明のため機能を特定するものであり、一つの回路ブロックとして示していても、実際の回路や領域では、一つの回路ブロックで行う処理を複数の回路ブロックで行うよう設けられている場合もある。
本明細書において接続とは、電気的な接続を意味しており、電流、電圧または電位が、供給可能、或いは伝送可能な状態にすることができるような回路構成であることに相当する。従って、接続している回路構成とは、直接接続している回路構成を必ずしも指すわけではなく、電流、電圧または電位が、供給可能、或いは伝送可能であるように、素子(例えば、スイッチ、トランジスタ、容量素子、インダクタ、抵抗素子、ダイオード、表示素子、発光素子、負荷など)が例えば、配線、抵抗、ダイオード、トランジスタなどの回路素子を介して間接的に接続している回路構成も、その範疇に含む。
本明細書において、回路図上は独立している構成要素どうしが接続されている場合であっても、実際には、例えば配線の一部が電極としても機能する場合など、一の導電体が、複数の構成要素の機能を併せ持っている場合もある。本明細書において接続とは、このような、一の導電体が、複数の構成要素の機能を併せ持っている場合も、その範疇に含める。
なお、ある一つの実施の形態の中で述べる内容(一部の内容でもよい)は、その実施の形態で述べる別の内容(一部の内容でもよい)、及び/又は、一つ若しくは複数の別の実施の形態で述べる内容(一部の内容でもよい)に対して、適用、組み合わせ、又は置き換えなどを行うことが出来る。
なお、実施の形態の中で述べる内容とは、各々の実施の形態において、様々な図を用いて述べる内容、又は明細書に記載される文章を用いて述べる内容のことである。
なお、ある一つの実施の形態において述べる図(一部でもよい)は、その図の別の部分、その実施の形態において述べる別の図(一部でもよい)、及び/又は、一つ若しくは複数の別の実施の形態において述べる図(一部でもよい)に対して、組み合わせることにより、さらに多くの図を構成させることが出来る。
なお、明細書の中の図面や文章において規定されていない内容について、その内容を除くことを規定した発明の一態様を構成することが出来る。または、ある値について、上限値と下限値などで示される数値範囲が記載されている場合、その範囲を任意に狭めることで、または、その範囲の中の一点を除くことで、その範囲を一部除いた発明の一態様を規定することができる。これらにより、例えば、従来技術が本発明の一態様の技術的範囲内に入らないことを規定することができる。
具体例としては、ある回路において、第1乃至第5のトランジスタを用いている回路図が記載されているとする。その場合、その回路が、第6のトランジスタを有していないことを発明として規定することが可能である。または、その回路が、容量素子を有していないことを規定することが可能である。さらに、その回路が、ある特定の接続構造をとっているような第6のトランジスタを有していない、と規定して発明を構成することができる。または、その回路が、ある特定の接続構造をとっている容量素子を有していない、と規定して発明を構成することができる。例えば、ゲートが第3のトランジスタのゲートと接続されている第6のトランジスタを有していない、と発明を規定することが可能である。または、例えば、第1の電極が第3のトランジスタのゲートと接続されている容量素子を有していない、と発明を規定することが可能である。
なお、本明細書等においては、能動素子(トランジスタ、ダイオードなど)、受動素子(容量素子、抵抗素子など)などが有するすべての端子について、その接続先を特定しなくても、当業者であれば、発明の一態様を構成することは可能な場合がある。つまり、接続先を特定しなくても、発明の一態様が明確であると言える。そして、接続先が特定された内容が、本明細書等に記載されている場合、接続先を特定しない発明の一態様が、本明細書等に記載されていると判断することが可能な場合がある。特に、端子の接続先が複数のケース考えられる場合には、その端子の接続先を特定の箇所に限定する必要はない。したがって、能動素子(トランジスタ、ダイオードなど)、受動素子(容量素子、抵抗素子など)などが有する一部の端子についてのみ、その接続先を特定することによって、発明の一態様を構成することが可能な場合がある。
なお、本明細書等においては、ある回路について、少なくとも接続先を特定すれば、当業者であれば、発明を特定することが可能な場合がある。または、ある回路について、少なくとも機能を特定すれば、当業者であれば、発明を特定することが可能な場合がある。つまり、機能を特定すれば、発明の一態様が明確であると言える。そして、機能が特定された発明の一態様が、本明細書等に記載されていると判断することが可能な場合がある。したがって、ある回路について、機能を特定しなくても、接続先を特定すれば、発明の一態様として開示されているものであり、発明の一態様を構成することが可能である。または、ある回路について、接続先を特定しなくても、機能を特定すれば、発明の一態様として開示されているものであり、発明の一態様を構成することが可能である。
なお、本明細書等においては、ある一つの実施の形態において述べる図または文章において、その一部分を取り出して、発明の一態様を構成することは可能である。したがって、ある部分を述べる図または文章が記載されている場合、その一部分の図または文章を取り出した内容も、発明の一態様として開示されているものであり、発明の一態様を構成することが可能であるものとする。そして、その発明の一態様は明確であると言える。そのため、例えば、能動素子(トランジスタ、ダイオードなど)、配線、受動素子(容量素子、抵抗素子など)、導電層、絶縁層、半導体層、有機材料、無機材料、部品、装置、動作方法、製造方法などが単数もしくは複数記載された図面または文章において、その一部分を取り出して、発明の一態様を構成することが可能であるものとする。例えば、N個(Nは整数)の回路素子(トランジスタ、容量素子等)を有して構成される回路図から、M個(Mは整数で、M<N)の回路素子(トランジスタ、容量素子等)を抜き出して、発明の一態様を構成することは可能である。別の例としては、N個(Nは整数)の層を有して構成される断面図から、M個(Mは整数で、M<N)の層を抜き出して、発明の一態様を構成することは可能である。さらに別の例としては、N個(Nは整数)の要素を有して構成されるフローチャートから、M個(Mは整数で、M<N)の要素を抜き出して、発明の一態様を構成することは可能である。さらに別の例としては、「Aは、B、C、D、E、または、Fを有する」と記載されている文章から、一部の要素を任意に抜き出して、「Aは、BとEとを有する」、「Aは、EとFとを有する」、「Aは、CとEとFとを有する」、または、「Aは、BとCとDとEとを有する」などの発明の一態様を構成することは可能である。
なお、本明細書等においては、ある一つの実施の形態において述べる図または文章において、少なくとも一つの具体例が記載される場合、その具体例の上位概念を導き出すことは、当業者であれば容易に理解される。したがって、ある一つの実施の形態において述べる図または文章において、少なくとも一つの具体例が記載される場合、その具体例の上位概念も、発明の一態様として開示されているものであり、発明の一態様を構成することが可能である。そして、その発明の一態様は、明確であると言える。
なお、本明細書等においては、少なくとも図に記載した内容(図の中の一部でもよい)は、発明の一態様として開示されているものであり、発明の一態様を構成することが可能である。したがって、ある内容について、図に記載されていれば、文章を用いて述べていなくても、その内容は、発明の一態様として開示されているものであり、発明の一態様を構成することが可能である。同様に、図の一部を取り出した図についても、発明の一態様として開示されているものであり、発明の一態様を構成することが可能である。そして、その発明の一態様は明確であると言える。
本実施例では、本発明の一態様に係るプログラムおよび情報処理装置について図面を用いて説明する。
図14に示す情報処理装置190Cを用いて、タッチ位置の計算を行った。
図14に示す情報処理装置190Cは、表示部および光検出部を有するモジュール120Cと、ボード130Cと、コンピュータ180Cと、を有する。表示部および光検出部を有するモジュール120Cは、光検出部121と、表示部122と、バックライト123Bと、を有する。ボード130Cは、記憶部131、コントローラ133、コントローラ134、及び135を有する。コンピュータ180Cは、プロセッサ100と記憶部103とを有する。プロセッサ100は、実行ユニット101と記憶部102とを有する。
コントローラ133は、光検出部121からセンサイメージを取得して、記憶部131に取得したセンサイメージを格納する。コントローラ134は、記憶部131に格納されたセンサイメージを読み出して、コンピュータ180Cに供給する。コントローラ135は、コンピュータ180Cから、表示画像を取得して、表示部122に取得した表示画像を供給する。記憶部102は、センサイメージを処理する、本願発明の一態様に係るプログラムが格納されている。実行ユニット101は、上記プログラムを実行する。
表示部および光検出部を有するモジュール120Cの構成について説明する。
評価では、酸化物半導体(好ましくはIn、Ga、及びZnを含む酸化物)をチャネル形成領域に含むトランジスタ(以下、酸化物半導体トランジスタとも呼ぶ)を用いたインセル型光学式タッチパネルを用いた。このパネルは、フォトダイオードを有するセルが4副画素ごとに設けられている。このパネルは、60fps(frame per second)で書き換えを行う、解像度768(H)×1024(V)の6インチの液晶である。
図11は、表示部および光検出部を有するモジュール120Cの構成例を示すブロック図である。
図11に示すモジュール120Cは、表示選択信号出力回路(DSELOUT)301と、表示データ信号出力回路(DDOUT)302と、リセット信号出力回路(RSTOUT)303aと、読み出し選択信号出力回路(RSELOUT)303bと、ライトユニット304と、768×1024個の画素(PIXEL)305p及び384×512個のセル(CELL)305cが設けられた領域305と、読み出し回路306と、データ出力回路307と、を具備する。
表示選択信号出力回路301と、表示データ信号出力回路302と、画素305pは、表示部122が有していても良い。リセット信号出力回路303aと、読み出し選択信号出力回路303bと、セル305cは、光検出部121が有していても良い。表示部122と光検出部121とは、互いに重なる領域に設けられている。ライトユニット304は、バックライト123Bに対応する。
表示選択信号出力回路301は、複数の表示選択信号を出力する機能を有する。表示データ信号出力回路302には、画像信号が入力される。表示データ信号出力回路302は、入力された画像信号を元に表示データ信号を生成し、生成した表示データ信号を出力する機能を有する。リセット信号出力回路303aは、リセット信号を出力する機能を有する。読み出し選択信号出力回路303bは、読み出し選択信号を出力する機能を有する。ライトユニット304は、光源として白色LEDを備え、光源が発光することにより点灯する機能を有する。
画素305pは、例えば選択用トランジスタ及び液晶素子を備える。液晶素子は、電圧が印加されることにより光の透過率が変化する素子である。選択用トランジスタは、表示選択信号に応じてオン状態又はオフ状態になる。液晶素子は、表示データ信号に応じた表示状態になる機能を有する。
セル305cは、入射する光の照度に応じた電圧を生成する機能を有する。セル305cには、リセット信号及び読み出し選択信号が入力される。セル305cは、リセット信号に従ってリセット状態になる機能を有する。セル305cは、読み出し選択信号に従ってデータ信号を出力する機能を有する。
読み出し回路306は、セル305cを選択し、選択したセル305cからデータ信号を読み出す機能を有する。読み出し回路306は、読み出されたデータ信号をデータ出力回路307に供給する機能を有する。データ出力回路307は、入力されたデータ信号を、外部に出力する機能を有する。
図11に示す表示部および光検出部を有するモジュール120Cの駆動方法は、センサ入力動作及び表示動作に分けられる。
センサ入力動作では、例えば、ライトユニット304が点灯状態あるいは消灯状態になり、セル305cによりデータ信号を出力して、読み出し回路306によりデータ信号を読み出し、データ出力回路307において読み出されたデータ信号を出力する。本発明の一態様のプログラムで用いるように、ライトユニット304が点灯状態及び消灯状態になり、それぞれの状態のときにセル305cによりデータ信号を出力してもよい。
表示動作では、例えば、ライトユニット304が点灯状態になり、表示選択信号に従って選択用トランジスタがオン状態になる。このとき、液晶素子に表示データ信号に応じた電圧が印加され、液晶素子は、印加される電圧に応じた表示状態になる。その後、表示選択信号に従って選択用トランジスタがオフ状態になる。
図12に、画素305p及びセル305cの回路構成の一例を示す。図12では、4つの副画素305spと、1つのセル305cが示されている。
副画素305spは、液晶素子222と、選択用トランジスタ223と、容量素子224とを有する。選択用トランジスタ223のゲートは、走査線GLに接続されて、ソースまたはドレインの一方は信号線SLに、他方は液晶素子222に接続されている。容量素子224が有する一対の電極は、一方が液晶素子222に接続され、他方は配線COMに接続されている。
走査線GLには、上記表示選択信号が与えられる。信号線SLには、上記表示データ信号が与えられる。
セル305cは、フォトダイオード202と、トランジスタ204と、トランジスタ205と、トランジスタ206と、を有している。フォトダイオード202は、半導体の接合部に光があたると電流が発生する性質を有する光電変換素子である。フォトダイオード202の陽極が、配線PRに接続されている。フォトダイオード202の陰極が、トランジスタ204のソースとドレインの一方に接続されている。トランジスタ204のソースとドレインの他方がトランジスタ205のゲートに接続されている。トランジスタ204のゲートは、配線TXと接続されている。トランジスタ205のソースとドレインの一方は、ハイレベルの電源電位VDDが与えられている配線VRに接続されている。トランジスタ205のソースとドレインの他方は、トランジスタ206のソースとドレインの一方に接続されている。トランジスタ206のソースとドレインの他方は、配線OUTに接続されている。トランジスタ206のゲートは、配線SEに接続されており、配線SEにはトランジスタ206のスイッチングを制御する信号の電位が与えられる。
配線PRには、上記リセット信号が与えられる。配線SEには、上記読み出し選択信号が与えられる。
トランジスタ205のゲートが接続されているノードFDに蓄積される電荷の量によって、配線OUTに出力する信号の電位が決まる。ノードFDにおいて電荷をより確実に保持するために、トランジスタ204は、オフ電流の小さいトランジスタを用いることが好ましい。本実施例では、酸化物半導体トランジスタを用いることで、小さいオフ電流を実現している。
セル305cの動作について説明する。図13に、セル305cに与えられる各種電位のタイミングチャートの一例を示す。
図13に示すタイミングチャートでは、配線TXには、ハイレベルの電位HTXと、ローレベルの電位LTXが与えられるものとし、配線SEには、ハイレベルの電位HSEと、ローレベルの電位LSEが与えられるものとし、配線PRには、ハイレベルの電位HPRと、ローレベルの電位LPRが与えられるものとする。
まず、時刻t1において、配線TXの電位を、電位LTXから電位HTXに変化させる。配線TXの電位が電位HTXになると、トランジスタ204はオンになる。なお、時刻t1において、配線SEには電位LSEが与えられ、配線PRには電位LPRが与えられている。
次いで、時刻t2において、配線PRの電位を、電位LPRから電位HPRに変化させる。また、時刻t2において、配線TXの電位は電位HTXのままであり、配線SEの電位は電位LSEのままである。よって、ノードFDには配線PRの電位HPRが与えられるため、ノードFDに保持されている電荷の量はリセットされる。
次いで、時刻t3において、配線PRの電位を、電位HPRから電位LPRに変化させる。時刻t3の直前まで、ノードFDの電位は電位HPRに保たれているため、配線PRの電位が電位LPRになると、フォトダイオード202に逆方向バイアスの電圧が印加されることになる。そして、フォトダイオード202に逆方向バイアスの電圧が印加された状態で、フォトダイオード202に光が入射すると、フォトダイオード202の陰極から陽極に向かって電流が流れる。上記電流値は、フォトダイオード202に入射する光の強度が高いほど高くなり、ノードFDからの電荷の流出も大きくなる。よって、ノードFDの電位は、光の強度が高いほど変化が大きい。
次いで、時刻t4において、配線TXの電位を電位HTXから電位LTXに変化させると、トランジスタ204はオフになる。よって、ノードFDからフォトダイオード202への電荷の移動が止まるため、ノードFDの電位が定まる。
次いで、時刻t5において、配線SEの電位を電位LSEから電位HSEに変化させると、トランジスタ206はオンになる。すると、ノードFDの電位に応じて配線VRから配線OUTへと電荷が移動する。
次いで、時刻t6において、配線SEの電位を電位HSEから電位LSEに変化させると、配線VRから配線OUTへの電荷の移動が停止し、配線OUTの電位が決定する。この配線OUTの電位が、セル305cの出力信号の電位に相当する。
上記一連の動作は、リセット動作、蓄積動作、読み出し動作に分類することができる。すなわち、時刻t2から時刻t3までの動作がリセット動作、時刻t3から時刻t4までの動作が蓄積動作、時刻t5から時刻t6までの動作が読み出し動作に相当する。リセット動作、蓄積動作、読み出し動作を行うことで、センサ入力値を取得することができる。
評価では、フレームごとに2つのセンサイメージを取り込んだ。1つはライトユニットがオンの状態のセンサイメージ、もう1つはライトユニットがオフの状態のセンサイメージである。以下に説明するように、本願発明の一態様に係るプログラムの手順(以下、アルゴリズムとも呼ぶ)に従って、これら2つのセンサイメージは、ホストシステムに送信され、タッチポイント検出のために画像処理された。
図19は、表示部および光検出部を有するモジュール120の模式図を示す。モジュール120は1フレームごとに2つのセンサイメージを取得することができる。1つのイメージはライトユニットがオンのときに取得され、もう1つのイメージはライトユニットがオフときに取得される。
全セルで蓄積動作を一斉に行う方式を、グローバルシャッタ方式、セルにおける蓄積動作を、行ごとに順次行う方式を、ローリングシャッタ方式を言う。本評価では、グローバルシャッタ方式を採用した。グローバルシャッタ方式は、ローリングシャッタ方式よりも、全セルにおいて蓄積動作を完了させるまでの期間が短く、高速なセンサイメージの取得が可能である。フレームごとに2つのセンサイメージを取り込む本評価では、特に有効な方式である。さらに、高速で移動する被写体を撮像する場合、ローリングシャッタ方式では歪みの大きい被写体のセンサイメージが取得されるのに対し、グローバルシャッタ方式では、歪みの小さい被写体のセンサイメージを取得することができる。
一方、いずれの方式においても読み出し動作はセルの行ごとに行うため、読み出し期間が開始されるタイミングはセルの行ごとに異なる。このため、グローバルシャッタ方式では、蓄積期間が終了してから、読み出し期間が開始されるまでの期間(電荷保持期間とも呼ぶ)の長さが、セルの行ごとに異なる。このため、セル内のノードFDに蓄積されている電荷が時間の経過と共にリークしてしまうと、セルの出力信号の電位が行ごとに異なってしまい、行ごとにその階調数が変化した画像データが得られてしまう場合がある。本実施例では、図12に示すセル305cにおいて、トランジスタ204として、オフ電流の小さい酸化物半導体トランジスタを用いた。その結果、グローバルシャッタ方式においても、電荷保持期間が異なることに起因する画像データの階調の変化を小さく抑え、撮像された画像の品質を向上させることができた。
評価に用いたアルゴリズムの概要を、図15に示す。アルゴリズムは、タッチポイントの検知と計算の際に周囲照度とパネル上の画素出力値を考慮している。本実施例では、画素出力値は0から1までの浮動小数点数で表し、1が白表示で0が黒表示を示す。
白画像を映した状態で最も暗いときと最も明るいときに予め撮像した2つの校正用イメージ(以下、暗い校正用イメージと明るい校正用イメージと呼ぶ)を用いて、センサイメージをセルごとに校正する(図15のブロック3)。セルごとのセンサ入力値は暗い校正用イメージとの差分を求めて、それから暗い校正用イメージと明るい校正用イメージの差分で割ることで、0から1の範囲に収まるように変換される。
黒画像を映した状態で最も暗い条件下で、第三の校正用イメージを予め取得する。ライトユニットオフで撮像したセンサイメージは、センサイメージのオフセットを調整するためにこの校正用イメージとの差分を計算する(図15のブロック6)。この差分を取ったイメージは照度の見積もりで利用される(図15のブロック7)。表示画像をグレイスケールに変換し(図15のブロック5)、見積もった照度と共に、図15のブロック8(選択的な正規化)に入力される。ブロック8では、校正後のセンサイメージは、この入力に依存して異なる方法で正規化される。
最後に、タッチの輪郭を一般的なブロブ検出方法で判別し(図15のブロック9)、タッチデータを求める(図15のブロック10)。
照度の見積もりについて説明する。照度見積もりの概要を、図16に示す。誤検出されたセンサ入力値を除外するため、センサイメージにスムージングを掛けた後(図16のブロック2)、センサ入力の最大値を求める(図16のブロック3)。この最大値は2つの別々の関数の引数として与えられる。2つの関数は黒表示画像と白表示画像に対応するものである。これらの関数は予め測定しておいたデータに基づいて近似して求めた。これらの関数はセンサ入力値を2つの照度に変換する(図16のブロック4)。最後に、図16のブロック3で検出した点(センサ入力が最大となる点)を用いて、表示している画像の画素出力値を調べる。その画素出力値を用いて、図16のブロック4で得られた2つの照度の加重平均を求める(図16のブロック6)。
さらに、ユーザがディスプレイを使用しているときに照度を安定させるために、過去の照度を保存しておき、その中で最大値のものを使用した。実験では、照度を0.5秒間隔で取得し、最新の5つ照度を用いた。
図15のブロック8の処理では、校正後のセンサ入力値ionとioff(前者はライトユニットをオン、後者はライトユニットをオフ)を正規化して、0はフルタッチの状態、1はノータッチの状態とする。表示画像の白い画素に対する処理は単純である。すなわち、1−|ion−ioff|を計算し、それから線形にスケールを変更する。
表示画像の黒い画素では、ライトユニットから光が画素に吸収されるため指で反射するライトユニットの光の量が少ない。そのため照度を考慮することが有効となる。照度が固定パラメータγより大きければ、遮光による差が大きいためioffのみを使用する。他方、照度がγより小さければ、ライトユニットから光の反射が充分に大きいのでionのみを使用する。黒い画素上に生じるセンサ入力値はタッチ以外の影を除外するためにコントラストを大きくすることによって鮮明になる。最終的には、黒い画素と白い画素用の2つの正規化された値は、表示画像の画素出力値を用いて加重平均化が為される。
上記アルゴリズムは、GPUを活用せずとも60fpsで動作した。照度の見積もりは、タッチパネル使用時における実際の照度から15%以上外れることはなかった。
図17に、上記アルゴリズムを用いた本願発明の一態様に係るプログラムに従って、画像処理を行った結果を示す。つまり、図17に示すのは、情報処理によって得られたタッチレベルを含むイメージである。図17(A)は、周囲が明るく白表示画像の場合の結果である。図17(B)は、周囲が暗く白表示画像の場合の結果である。図17(C)は、周囲が明るく黒表示画像の場合の結果である。図17(D)は、周囲が暗く黒表示画像の場合の結果である。図17(E)は、明るい状態で表示画像のグレイスケールを変化させて撮像した6つのセンサイメージの画像処理の結果である。
図17に見られるように、表示画像が白のときは、照度に関わらず鮮明なタッチ領域を判別できる。黒表示画像でも周囲が明るいときはタッチ領域がはっきり確認できる。照度が小さい場合、黒表示画像におけるタッチ領域ははっきりしているが、ノイズがあり模様がみられる。ダイナミックレンジも低くなる。全体的に見て、上記アルゴリズムは白表示画像以外の画像を表示した状態でも動作することから、周囲の光や表示画像を考慮しない場合と比較して、性能を改善することができた。
8通りの明るさについて、図16に示すアルゴリズムに従って照度を見積もった。図20は照度の見積もりの結果と、照度計で測定した照度とを示す。黒表示画像の場合と、白画像表示の場合について、それぞれ、照度を見積もった。ここでは、校正用のイメージとして第4の校正用センサイメージも取得しておいて、第1乃至第4の校正用イメージを用いて照度を見積もっている。第4の校正用センサイメージは、黒画像を映した状態で最も明るい条件下で取得したものである。
比較例として、バックライトがオンとオフのときのセンサイメージの差分のみを用いるタッチ検出手法でタッチポイントを検出した。図21は、比較例のタッチ検出方法のフローチャートを示す。図22は、ライトユニットがオンとオフそれぞれの一行のセンサ値、およびセンサ値の差分を示す。差分の曲線において、一点鎖線で囲まれているピークは、タッチ部分が存在していることを示唆している。実際のタッチポイントは点線で示している。
図15に示す本実施例のタッチ検出方法と図21に示す比較例のタッチ検出方法とにより、128点のタッチポイントを検出するテストを行った。両方の手法において、実際のタッチ検出には同じアルゴリズム、静的しきい値法および連結成分法が用いられた。このテストにおいて、本実施例のタッチ検出方法では、第1乃至第4の校正用イメージを用いて照度を見積もっている。
本実施例のアルゴリズムは105点の正しいタッチポイントを検出することができた。それに対して比較例では、検出することができた正しいタッチポイントは58点であった。また、本実施例のアルゴリズムでは、誤って検出したタッチポイントは18点であったのに対して、比較例では58点を誤って検出した。この結果は、黒表示画像、白表示画像それぞれに関して、0から1600ルクスにわたっている128点のタッチポイントについてものである。
本実施例で示したように、上記アルゴリズムを用いた本願発明の一態様に係るプログラムは、照度の見積もり値と表示画像とを考慮することで、より安定して、またより正確にタッチデータの計算を行うことができた。