パーソナルコンピュータ等の映像出力装置から出力されたアナログ映像信号101は、その映像出力装置内部のビデオクロックに従って生成されている。従って、そのビデオクロックの周期で信号レベルが変化している。このアナログ映像信号101を用いて表示素子3に映像を表示するための信号処理や、映像信号101をメモリに書込むための信号処理を行うためには、映像出力装置内のビデオクロックの周波数と同じ周波数を有するドットクロック(サンプリングクロックとも呼ばれる)が必要になる。しかし、パーソナルコンピュータ等のコンピュータシステムでは、映像信号の出力端子にはビデオクロックは出力されていない。そこで、図40に示すように、水平同期信号102の周波数をPLL回路7でNd倍に逓倍することによって、参照クロック信号200を生成し、さらに、遅延回路10によって遅延を与えることによってドットクロック201が再生される。この時、PLL回路7における逓倍数Ndを、映像出力装置内部でビデオクロックから水平同期信号102を生成する際に使用される分周数に一致するように設定すれば、元のビデオクロックと周波数が等しいドットクロック201を得ることができる。
図41は、映像信号101とドットクロック201の関係を示すタイミングチャートである。映像信号101には、映像信号の本来の情報を持つ安定領域121だけでなく、映像出力装置の出力回路や接続ケーブルの影響によって生じたリンギングやなまりを含む過渡領域122が存在する。そのため、図41(b)のドットクロック201Aのように、安定領域121で立ち上がるクロックを使用すれば、表示素子3には映像信号が正常に表示される。一方、図41(c)のドットクロック201Bのように、過渡領域122で立ち上がるクロックを使用すれば、A/Dコンバータ1は本来の情報ではないところをサンプリングするために、映像にノイズが表れたり、鮮鋭度が悪い映像が表示されてしまう。
図42は、水平同期信号102と参照クロック200とドットクロック201との関係を示すタイミングチャートである。PLL回路7から出力される参照クロック200は、水平同期信号102と位相の合ったクロックである。しかし、一般に、水平同期信号102と映像信号101の位相関係は規定されていないので、映像信号101と参照クロック200の立ち上がりの位相関係は不定である。このため、ドットクロック201の立ち上がりが過渡領域122(図41(a))にかかってしまうことがある。
従来は、図42(c)に示すドットクロック201の遅延時間φ(すなわち、その位相)をユーザーが表示素子の画面を見ながら手動で調整し、ノイズが出たり鮮鋭度が悪くなったりしないような最適な状態に設定していた。しかし、この手動操作は煩雑であり、また、調整の必要性が理解されにくいために、表示装置の性能不良や故障があるとの誤解を招くことがあった。
ドットクロック201の位相の調整を自動化する方法として、特許文献1に開示された方法が知られている。この方法ではドットクロックの位相をずらして2つのメモリに書き込み、読み出したデータが一致するようにすることによって最適位相を求める方法が記述されている。しかし、映像信号にリンギングやなまりが生じている場合には、安定領域が狭く、位相がわずかにずれただけでもデータが異なってしまう。また、潜在的な雑音によってデータがわずかに異なってしまう。このため、位相をずらしたドットクロックで得られた2つのデータは一致しにくく、実際には最適位相を得るのが困難であるという問題があった。また、高速な映像信号に対応するためには高速なラインメモリを2つ使用する必要があり、装置のコストが高くなるという問題もあった。
特開平4−276791号公報
一方、PLL回路7の逓倍数Nd(図40)の調整(すなわちドットクロックの周波数調整)に関しては、以下のような問題があった。図43は、映像信号101のタイミングを2次元的に表わした説明図である。通常の映像信号は、各走査線上の画像を表す一次元的な信号であり、左上から始まって水平方向に1ライン分の走査が終了すると、次のラインの左から走査を再度実行する、という走査を繰返し、右下まで走査することによって1枚の画面を構成する。水平同期信号102は、映像信号101の水平方向の走査タイミングを合わせるための信号であり、垂直同期信号103は、垂直方向の走査のタイミングを合わせるための信号である。ここで、CRTディスプレイでは電子ビームが右から左へ戻るための時間と、また下から上へ戻るための時間とが必要なので、水平方向と垂直方向とにそれぞれブランキング302の時間が設けられている。従って、実際に映像が表示できるのは、ブランキング302の領域を除く有効信号領域301である。ブランキング302と有効信号領域301の水平方向のタイミングは、ドットクロックのパルス数に相当する画素数で表わすことができる。一方、垂直方向のタイミングは、走査線数で表わすことができるが、一般には水平方向と統一して画素数で表わすことが多い。
パーソナルコンピュータでは、有効信号領域301のサイズは、いくつかの標準値に集約されてきている。代表的な規格としては、VGA(水平640画素×垂直480画素)、SVGA(水平800画素×垂直600画素)、XGA(水平1024画素×垂直768画素)、SXGA(水平1280画素×垂直1024画素)などがある。映像信号がこれらの規格のいずれに従っているかは、映像信号の垂直同期信号と水平同期信号の周波数からほぼ決定することができる。
ところが、上記の規格は、図43の有効信号領域301の画素数を示すものであり、ブランキング302まで含んだ1ラインの総画素数については規定されていない。実際に、1ラインの総画素数としては機種によって種々の任意の値が用いられている。このため、有効信号領域301の画素数を決定できた場合にも、ブランキング302の画素数を含めた1ラインの総画素数が不明であり、通常は、PLL回路7に設定すべき最適な逓倍数Ndが不明であった。
図44は、映像信号101とドットクロック201およびデジタル映像信号110の関係を示すタイミングチャートである。なお、デジタル映像信号110は説明上、アナログ信号に戻した形態で示している。ここで、図44(a−1)〜(a−3)は、PLL回路7の逓倍数Ndが、映像信号101を生成した映像出力装置の内部においてビデオクロックから水平同期信号を生成する際に使用された分周比と等しい場合を示している。この場合には、映像信号101の変化点とドットクロック201の位相は一定となる。この結果、デジタル映像信号110は映像信号101をうまく再現した出力になり、表示素子3には映像が正常に表示される。
ところが、映像出力装置の内部の分周比と、PLL回路7の逓倍数Ndが異なると、図44(b−1)〜(b−3)に示すように、映像信号101とドットクロック201の位相関係が水平方向の位置によって異なることになる。この場合には、デジタル映像信号110の振幅は画素位置によって異なり、ビートを含むものになってしまう。このような状態では、表示素子3にはビートの振幅の小さい部分に縦線が現れて非常に見にくくなるだけでなく、映像の情報の一部が欠落することがある。
そこで、従来の映像表示装置では、市場の代表的なパーソナルコンピュータの機種に対する適切な逓倍数Ndをあらかじめ登録しておく。そして、水平同期信号102と垂直同期信号103の周波数や極性などから、映像出力装置の機種を特定し、これに応じて逓倍数Ndを読出してPLL回路7に設定していた。しかし、逓倍数Ndが登録されてない機種が使用された場合には、適切な逓倍数Ndを設定できないため、ユーザが表示素子の画面を見ながら手動で調整していた。
未知の逓倍数Ndの決定を自動化する方法としては、特許文献2に開示された方法と、特許文献3に開示された方法が知られている。
特開平3−295367号公報
特開平5−66752号公報
特許文献2に開示された方法は、サンプリングした映像信号を圧縮して記憶しておき、複数回の入力に対してデータが安定しているか否かを調べることによって、逓倍数のずれを検出する。
しかし、この方法では、逓倍数がずれていることが検出可能なだけで、どの程度のずれかが全く検出できない。このため、逓倍数を変えながら比較することを繰り返さなければならず、最適逓倍数を求めるのに時間がかかるという問題があった。また、ドットクロックの位相(すなわち遅延回路10の遅延量φ)が不適当であれば、最適逓倍数を検出できないという問題があった。
また、特許文献3に記載された方法は、映像信号のエッジからドット周期を検出すると共に、水平同期信号から走査周期を検出し、両者の比からPLLの逓倍数を求めている。
しかし、この方法では、ドット周期の測定のために、ドットクロックよりはるかに高い周波数のクロックが必要となるので、総画素数の多い信号ではドットクロック周波数が高くなり実現が困難であるという問題があった。
この発明は、従来技術における上述の課題を解決するためになされたものであり、映像信号のためのドットクロックを適切に容易に調整することができる技術を提供することを目的とする。
上述の課題の少なくとも一部を解決するため、この発明の第1のドットクロック調整方法は、映像信号のためのドットクロック信号の位相を調整する方法であって、
(a)前記映像信号との位相関係が互いに異なるものと考え得る複数組のドットクロック信号に従って前記映像信号をサンプリングすることによって、複数組の画像データを取得する工程と、
(b)各組の画像データに関して所定の演算をそれぞれ行うことによって、前記位相関係を示す位相関係指標を前記各組の画像データに関して算出するとともに、前記複数組の画像データに関する前記位相関係指標に基づいて、前記ドットクロック信号に適用すべき望ましい位相を決定する工程と、
(c)前記望ましい位相を有するように前記ドットクロック信号の遅延量を設定する工程と、
を備えることを特徴とする。
第1のドットクロック調整方法では、各ドットクロック信号でサンプリングされた画像データから、各ドットクロック信号と映像信号との位相関係を示す位相関係指標が求められる。各ドットクロック信号に対する位相関係指標はドットクロック信号と映像信号との位相関係の適否を示しているので、この位相関係指標から望ましい位相を決定することができる。そして、ドットクロック信号の遅延量を調整することによって、ドットクロック信号がこの望ましい位相を有するように調整することができる。
上記第1のドットクロック調整方法において、前記工程(a)は、
互いに異なる複数の遅延量を与えて複数のドットクロック信号を生成し、各ドットクロック信号に応じて前記映像信号をサンプリングすることによって、画面の同一位置における画像をそれぞれ表す前記複数組の画像データを取得する工程を備え、
前記工程(b)は、
(1)前記複数組の画像データの鮮鋭度を表す関数の値を、前記複数の遅延量に対する前記位相関係指標としてそれぞれ求める工程と、
(2)前記複数の遅延量に対する前記関数値の極値を決定する工程と、
(3)前記複数の遅延量の中で、前記関数値の極値に関連づけられた遅延量を、前記望ましい位相を得るための遅延量として選択する工程と、
を備えることが好ましい。
映像信号とドットクロック信号の位相関係の適否は、得られる画像データの鮮鋭度によって判定することができる。従って、画像データの鮮鋭度を表す関数値を位相関係指標として用いることができる。遅延量が異なり、従って映像信号との位相関係が異なるドットクロック信号に対しては、この関数値も異なる値となる。この関数値は、望ましい位相関係に対応する遅延量において極値を示すはずである。従って、この関数値の極値を求めることによって、望ましい位相を得るための遅延量を得ることができる。
上記第1のドットクロック調整方法において、前記複数の遅延量の範囲は、少なくとも2πの位相に相当する範囲であることが好ましい。
遅延量の調整範囲を少なくとも2πに相当する範囲にすれば、望ましい位相を有する適切な遅延量を調整することができる。
また、前記複数の遅延量は相互に一定の差分を有することが好ましい。
こうすれば、常に一定の精度でドットクロック信号の位相を調整することができる。
上記第1のドットクロック調整方法において、前記遅延量を順次変更する度に、前記工程(1)と前記工程(2)とを実行し、前記関数値の極値が得られた時点で前記工程(a)ないし(c)の処理を終了することが好ましい。
こうすれば、全ての遅延量に関して関数値を求める必要が無いので、処理時間を短縮することが可能である。
上記第1のドットクロック調整方法において、前記工程(a)は、
前記映像信号の水平同期信号の周波数を逓倍することによってドットクロック信号を生成する際に用いられる適切な第2の逓倍数とは異なる第1の逓倍数を用いて前記水平同期信号の周波数を逓倍することによって、前記複数組のドットクロック信号と考え得る複数の信号位相を有する第1のドットクロック信号を生成する工程と、
前記第1のドットクロック信号に応じて前記映像信号をサンプリングすることによって、画面の同一ライン上の第1の画像データを取得する工程と、を備え、
前記工程(b)は、
前記第1の画像データを、第1の複数組の画像データブロックに分割する工程と、
前記第1の複数組の画像データブロックの鮮鋭度を表す関数の値を、前記第1の複数組の画像データブロックに対する前記位相関係指標としてそれぞれ求める工程と、
前記第1の複数組の画像データブロックに対する前記関数値の極値を決定する工程と、
前記関数値の極値に関連づけられた関連画像データブロックに相当する遅延量を、前記望ましい位相を得るための遅延量として選択する工程と、
を備えることが好ましい。
このように、適切な第2の逓倍数とは異なる第1の逓倍数を用いて得られた第1のドットクロック信号を用いて映像信号をサンプリングすると、1ライン分の画像データの中に、映像信号と位相が一致している部分と、位相がずれている部分とが含まれる。そこで、少なくとも1ライン分の画像データを複数の画像データブロックに分けて、各画像データブロックの鮮鋭度を表す関数値を求めれば、その関数値の極値から望ましい位相を得るための遅延量を決定することができる。
上記第1のドットクロック調整方法において、前記関数値の極値に関連づけられた画像データブロックに相当する遅延量は、前記第1と第2の逓倍数の差分と、前記第1の複数組の画像データブロック中における前記関連画像データブロックの位置とに基づいて決定されることが好ましい。
また、前記工程(c)は、所定の最小遅延差の単位で前記ドットクロック信号の遅延量を調整することが可能であり、
前記工程(b)は、1ライン全体に渡る画像データを前記第1の複数組の画像データブロックに分割し、前記分割における分割数は、前記第1と第2の逓倍数の差分を、前記第1のドットクロック信号の周波数と前記最小遅延差との積で除した値の整数倍に等しく設定されることが好ましい。
こうすれば、画像データブロックの位置から、望ましい位相を得るための遅延量を容易に決定することができる。
上記第1のドットクロック調整方法において、前記第1と第2の逓倍数の差分は+2または−2であることが好ましい。
こうすれば、1ライン分の画像データの中に、4πの位相のずれが含まれるので、映像信号のブランキングの部分に影響されることなく、1ライン分の画像データの中から望ましい位相を有する画像データブロックを検出することができる。
上記第1のドットクロック調整方法において、前記工程(a)は、さらに、
前記映像信号の水平同期信号の周波数を前記第2の逓倍数で逓倍することによって第2のドットクロック信号を生成する工程と、
前記第2のドットクロック信号に応じて前記映像信号をサンプリングすることによって、前記画面の同一ライン上の第2の画像データを取得する工程と、を備え、
前記工程(b)は、さらに、
前記第2の画像データを、前記第1の画像データの前記分割と同様に、第2の複数組の画像データブロックに分割する工程と、
前記第2の複数組の画像データブロックの鮮鋭度をそれぞれ表す関数の値を求める工程と、
前記第1の複数組の画像データブロックに関する前記関数値を、前記第2の複数組の画像データブロックに関する前記関数値によってブロック毎にそれぞれ除算することによって、前記除算で得られた値を前記第1の複数組の画像データブロックに対する前記位相関係指標としてそれぞれ求める工程と、
を備えることが好ましい。
こうすれば、適切な第2の逓倍数を用いて得られた第2のドットクロック信号は、1ラインの全体に渡って映像信号との位相関係が一定である。従って、この第2のドットクロック信号で映像信号をサンプリングして得られた第2の画像データは、映像信号の内容を表しているものと見ることができる。そこで、第1の画像データの複数組のブロックに対する関数値を、第2の画像データの複数組のブロックに対する関数値で除算すれば、その除算結果は、第1の画像データの複数組のブロックの映像内容に無関係に、その鮮鋭度を表している。従って、この除算で得られた値を位相関係指標として用いるようにすれば、望ましい位相をより高精度に決定することができる。
上記第1のドットクロック調整方法において、前記工程(b)は、さらに、
前記第1の複数組の画像データブロックの中に前記関数値が所定の閾値未満である画像データブロックが存在する場合には、前記除算の前に、前記関数値が前記所定の閾値未満である画像データブロックの位置に関して、前記第1と第2の複数組の画像データブロックに対する前記関数値にそれぞれ補間演算を実行する工程、を備えることが好ましい。
こうすれば、第1の複数組の画像データブロックの中に、関数値が極めて小さいブロックが含まれている場合にも、適切な位相関係指標を得ることができる。
上記第1のドットクロック調整方法において、前記関数は、隣接する画素位置における画像データ値の差分の2乗の和に対して一義的かつ単調な関数であることが好ましい。
前記関数は、隣接する画素位置における画像データ値の差分の絶対値の和とすることができる。
あるいは、前記関数は、前記画像データの統計的な分散に対して一義的かつ単調な関数であるとすることができる。
これらの関数の関数値によって、画像データの鮮鋭度を表すことができる。
上記第1のドットクロック調整方法において、前記極値を決定する工程は、
前記関数値の一次元配列に関してローパスフィルタによるフィルタリング処理を適用する工程と、
前記フィルタリング処理で得られた処理済み関数値の一次元配列から、前記極値を求める工程と、を備えることが好ましい。
こうすれば、局所的な画像データの変動の影響を除外して、高い鮮鋭度が得られる位相を決定することができる。
この発明の第1のドットクロック調整装置は、映像信号のためのドットクロック信号の位相を調整する装置であって、
前記映像信号との位相関係が互いに異なるものと考え得る複数組のドットクロック信号に従って前記映像信号をサンプリングすることによって、複数組の画像データを取得するサンプリング手段と、
各組の画像データに関して所定の演算をそれぞれ行うことによって、前記位相関係を示す位相関係指標を前記各組の画像データに関して算出するとともに、前記複数組の画像データに関する前記位相関係指標に基づいて、前記ドットクロック信号に適用すべき望ましい位相を決定する位相決定手段と、
前記望ましい位相を有するように前記ドットクロック信号の遅延量を設定する遅延量設定手段と、を備えることを特徴とする。
第1のドットクロック調整装置によれば、第1のドットクロック調整方法と同様に、望ましい位相を有するドットクロック信号を得ることができる。
請求項1に記載されたこの発明の第2のドットクロック調整方法は、映像信号のためのドットクロック信号の周波数を調整する方法であって、
(a)前記映像信号の水平同期信号の周波数を第1の逓倍数で逓倍することによって第1のドットクロック信号を生成する工程と、
(b)前記第1のドットクロック信号に従って前記映像信号をサンプリングすることによって画像データを取得する工程と、
(c)前記画像データを分析することによって、前記画像データの1ライン上の有効信号領域の長さの第1の値を求める工程と、
(d)前記有効信号領域の長さの前記第1の値と、前記有効信号領域の長さの既知の第2の値とを用いた演算によって、望ましい第2の逓倍数を求める工程と、
(e)前記水平同期信号の周波数を前記第2の逓倍数で逓倍することによって、望ましい第2のドットクロック信号を生成する工程と、
を備えることを特徴とする。
画像データの有効信号領域の長さ(第1の値)は、画像データを分析することによって決定できる。有効信号領域の真の長さ(第2の値)が既知であれば、第1の値と第2の値から、有効信号領域の長さが所定の第2の値を有するようにするための望ましい第2の逓倍数を決定することができる。そして、この第2の逓倍数を用いて望ましい第2のドットクロック信号を生成することができる。
上記第2のドットクロック調整方法において、前記工程(c)は、
前記有効信号領域の開始位置と終了位置とをそれぞれ求める工程と、
前記終了位置と開始位置との差分から前記有効信号領域の長さの前記第1の値を求める工程と、を備えることが好ましい。
有効信号領域の開始位置と終了位置とを求めれば、有効信号領域の全体を調べることなく、その長さの第1の値を得ることができる。
上記第2のドットクロック調整方法において、前記開始位置と終了位置とを求める工程は、
前記画像データのレベル変化の大きな変化点を前記開始位置および終了位置として決定する工程を備える、ことが好ましい。
こうすれば、開始位置と終了位置とを容易に決定することができる。
上記第2のドットクロック調整方法において、前記変化点から開始位置と終了位置とを求める工程は、
前記画像データの1ライン上の隣接画素における画像データ値の差分が所定の閾値を越える点を、前記変化点として選択する工程を備える、ことが好ましい。
こうすれば、開始位置と終了位置とを容易に決定することができる。
上記第2のドットクロック調整方法は、さらに、
前記第1のドットクロック信号を用いて得られた前記画像データの前記有効信号領域の前記開始位置から、前記第2のドットクロック信号を用いて得られる画像データの有効信号領域の開始位置を求める工程を備える、ことが好ましい。
こうすれば、画像データの有効信号領域を正しく再現することができる。
上記第2のドットクロック調整方法において、前記工程(d)の演算は、
前記第1の逓倍数に、前記有効信号領域の長さの前記第2の値と前記第1の値との比を乗ずる乗算を含む、ことが好ましい。
こうすれば、望ましい第2の逓倍数を容易に求めることができる。
また、上記第2のドットクロック調整方法において、前記工程(d)の演算は、さらに、
前記乗算の結果を丸める演算を含む、ことが好ましい。
こうすれば、第2の逓倍数をより望ましい値に設定することができる。
上記第2のドットクロック調整方法において、前記工程(c)は、複数ライン分の前記画像データに関して同番目のデータ毎に最大値を求め、前記最大値で構成される画像データを前記分析の対象とする工程を含む、ことが好ましい。
こうすれば、1ライン分の画像データではレベル変化が明瞭でない場合にも、複数ライン分の画像データの同番目のデータ毎の最大値をとることによって、レベル変化を容易に検出することができる。
上記第2のドットクロック調整方法において、前記工程(b)は、前記有効信号領域の開始位置および終了位置を含み、かつ、1ライン上の全部は含まない範囲について前記画像データを取得する、ことが好ましい。
こうすれば、有効信号領域の全部の範囲について画像データを取得しないので、この画像データを記憶するためのメモリ量や、この画像データを分析するための処理時間を低減することができる。
請求項10に記載されたこの発明の第2のドットクロック調整装置は、映像信号のためのドットクロック信号の周波数を調整する装置であって、
前記映像信号の水平同期信号の周波数を第1の逓倍数で逓倍することによって第1のドットクロックを生成するドットクロック生成手段と、
前記第1のドットクロック信号に従って前記映像信号をサンプリングすることによって画像データを取得するサンプリング手段と、
前記画像データを分析することによって、前記画像データの1ライン上の有効信号領域の長さの第1の値を求める第1の演算手段と、
前記有効信号領域の長さの前記第1の値と、前記有効信号領域の長さの既知の第2の値とを用いた演算によって、望ましい第2の逓倍数を求める第2の演算手段と、
前記ドットクロック生成手段に前記第2の逓倍数を設定し、これによって、前記水平同期信号の周波数を前記第2の逓倍数で逓倍して望ましい第2のドットクロック信号を生成させる逓倍数設定手段と、
を備えることを特徴とする。
第2のドットクロック調整装置によれば、第2のドットクロック調整方法と同様に、望ましいドットクロック信号を生成することができる。
請求項11に記載されたこの発明の第3のドットクロック調整方法は、映像信号のためのドットクロック信号の周波数を調整する方法であって、
(a)前記映像信号の水平同期信号の周波数を第1の逓倍数で逓倍することによって第1のドットクロックを生成する工程と、
(b)前記第1のドットクロック信号に従って前記映像信号をサンプリングすることによって画像データを取得する工程と、
(c)前記画像データの1ラインにわたるビート数を求める工程と、
(d)前記第1の逓倍数を前記ビート数で補正することによって、望ましい第2の逓倍数を求める工程と、
(e)前記水平同期信号の周波数を前記第2の逓倍数で逓倍することによって、ビートのない画像データをサンプリングし得る第2のドットクロック信号を生成する工程と、
を備えることを特徴とする。
適切な周波数を有していない第1のドットクロック信号で映像信号をサンプリングすると、得られる画像データにビート(うなり)が生じる。従って、この画像データの1ラインにわたるビート数を求め、このビート数で第1の逓倍数を補正することによって、望ましい第2の逓倍数を求めることができる。そして、この第2の逓倍数を用いて、ビートの無い画像をサンプリングし得る第2のドットクロック信号を生成することができる。但し、この第2のドットクロック信号は、必ずしも映像信号をサンプリングするために使用する必要はなく、他の目的のために使用することが可能である。
上記第3のドットクロック調整方法において、前記工程(c)は、
(i)前記画像データを変換するための変換関数であって、出力レベルが所定の入力レベルを中心として両側に対称で単調な変換関数を用いて、前記画像データを変換後画像データに変換する工程と、
(ii)前記変換後画像データから前記ビート数を求める工程と、を備えることが好ましい。
画像データ中のビート成分は、映像信号の成分が含まれているため、必ずしも連続値にはならず、ローパスフィルタで取り出すことは困難である。上記の方法によれば、ビート成分と映像信号の成分を所定の入力レベルを中心とした一方の側にまとめた変換後画像データを得ることができる。従って、この変換後画像データから、ビート数を比較的容易に求めることができる。
前記変換関数は、前記所定の入力レベルの両側でそれぞれ非線形な関数である、ことが好ましい。
また、前記変換関数は二次関数である、ことが好ましい。
こうすれば、例えばビート成分が正弦波である場合に、変換後画像データに不要な高調波が現れるのを防止することができる。
上記第3のドットクロック調整方法において、前記工程(i)は、前記変換関数による前記変換の前に、ハイパスフィルタを用いたフィルタリング処理を行う工程を含み、
前記工程(ii)は、前記ビート数を求める前に、前記変換画像データにローパスフィルタを用いたフィルタリング処理を行う工程を含む、ことが好ましい。
こうすれば、ハイパスフィルタによってビート成分よりも低周波の成分を除去できるので、変換後画像データにビート成分が顕著に現れるようにすることができる。また、変換後画像データにローパスフィルタを施すことによって、高周波成分による影響を除去できるので、ビート数を正確に求めることができる
上記第3のドットクロック調整方法において、前記工程(ii)は、前記変換後画像データを周波数分析することによって前記ビート数を求める工程を備える、ことが好ましい。
変換後画像データには、ビート成分が顕著に現れているので、変換後画像データの周波数分析を行えば、ビート数を求めることができる。
上記第3のドットクロック調整方法において、前記周波数分析は、前記変換後画像データの高速フーリエ変換を行うことによって、前記ビートの周波数を求める工程を含む、ことが好ましい。
あるいは、前記周波数分析は、前記変換後画像データを複数のコムフィルタでフィルタリングし、前記複数のコムフィルタを通過する周波数から前記ビートの周波数を求める工程を含むことが好ましい
高速フーリエ変換やコムフィルタ等を用いることによって、ビート成分の周波数を求めることができる。
上記第3のドットクロック調整方法において、前記工程(b)は、
互いに異なる第1と第2の位相をそれぞれ有する2種類の前記第1のドットクロック信号を用いて第1と第2の画像データをそれぞれ取得する工程を備え、
前記工程(c)は、
前記第1と第2の画像データの相関演算を行うことによって、前記ビート数を求める工程を備える、ことが好ましい。
位相が異なる2種類の第1のドットクロック信号で得られた第1と第2の画像データでは、1ライン上において、ビートが現れる位置がずれている。そこで、この第1と第2の画像データの相関演算を行うことによって、1ラインにわたるビート数を求めることができる。
上記第3のドットクロック調整方法において、前記第1と第2の位相の差は、前記第1のドットクロック信号の1周期の約1/2である、ことが好ましい。
こうすれば、第1と第2の画像データにおいて、映像信号との位相関係がドットクロック信号の1周期の約1/2ずれた位置に現れるので、2つの画像データの相関演算によって、ビート数を求めることができる。
上記第3のドットクロック調整方法において、前記相関演算を行う工程は、
(i)前記第1と第2の画像データの差が比較的大きな画素位置に対して第1の値を割り当てるとともに、前記第1と第2の画像データの差が比較的小さな画素位置に対して第2の値を割り当てることによって、前記第1と第2の値で構成される2値データを生成する工程と、
(ii)前記2値データを処理することによって前記ビート数を求める工程と、
を備えることが好ましい。
こうすれば、第1と第2の画像データの相関を2値データで表すことができるので、この2値データからビート数を容易に求めることができる。
上記第3のドットクロック調整方法において、前記工程(i)は、
前記第2の画像データの画素位置を1画素前にシフトさせて得られる、前シフトされた第2の画像データと、前記第1の画像データとの差が比較的大きな画素位置に対して、前記第1の値が割り当てられるとともに、前記前シフトされた第2の画像データと、前記第1の画像データとの差が比較的小さな画素位置に対して、前記第2の値が割り当てられた第1の2値データと、
シフトされない第2の画像データと前記第1の画像データとの差が比較的大きな画素位置に対して、前記第1の値が割り当てられるとともに、シフトされない第2の画像データと前記第1の画像データとの差が比較的小さな画素位置に対して、前記第2の値が割り当てられた第2の2値データと、
前記第2の画像データの画素位置を1画素後にシフトさせて得られる後シフトされた第2の画像データと、前記第1の画像データとの差が比較的大きな画素位置に対して、前記第1の値が割り当てられるとともに、前記後シフトされた第2の画像データと、前記第1の画像データとの差が比較的小さな画素位置に対して、前記第2の値が割り当てられた第3の2値データと、を含む3つの2値データの少なくとも一つを生成する工程を含み、
前記工程(ii)は、前記第1ないし第3の2値データの少なくとも一つを用いて前記ビート数を求める工程を含む、ことが好ましい。
第1と第2の画像データにおける映像信号との位相関係のずれは、1画素程度ずれている場合もある。上記方法によれば、このような場合にも、第1と第2の画像データの相関を表す2値データを得ることができる。
上記第3のドットクロック調整方法において、前記工程(ii)は、
前記第1と第2の2値データで構成される第1組の2値データ対と、前記第2と第3の2値データで構成される第2組の2値データ対のそれぞれに関して、各2値データ対の一方の立ち上がりと各2値データ対の他方の立ち上がりとを用いたトグル操作を行うことによって、2つのトグルされた2値データを作成する工程と、
前記2つのトグルされた2値データのうちから平均値が0.5に近い方の2値データを選択する工程と、
前記選択された2値データの1ライン分に含まれるパルス数を測定することによって前記ビート数を求める工程と、を備えることが好ましい。
トグルされた2値データでは、各2値データにおける細かなレベル変動が除去されているので、ビートを正しく反映している可能性が高い。一方、ビートを正しく反映している場合には、トグルされた2値データの平均値は約0.5に近くなると考えられる。従って、2つのトグルされた2値データのうちで、その平均値が0.5に近い方の2値データを選択することによって、ビートを正しく反映した2値データを得ることができる。また、これを用いてビート数を求めるようにすれば、ビート数を正確に得ることができる。
上記第3のドットクロック調整方法において、前記パルス数を測定する工程は、
前記トグルされた2値データについてデータの変化点間の平均距離を求め、前記平均距離から前記パルス数を求める工程を含む、ことが好ましい。
こうすれば、トグルされた2値データのレベルの変動位置に多少の誤差があっても、ビート数を正確に求めることができる。
上記第3ののドットクロック調整方法において、
前記パルス数を測定する工程は、
前記選択された2値データの立ち上がりと立ち下がりの間隔が一定値未満である間隔を削除することによって、修正2値データを求める工程と、
前記修正2値データの1ライン分に含まれるパルス数を測定することによって前記ビートの数を求める工程と、を備えることが好ましい。
あるいは、上記第3のドットクロック調整方法において、
前記工程(ii)は、
前記3つの2値データの少なくとも1つを選択するとともに、選択された2値データの立ち上がりと立ち下がりの間隔が一定値未満である間隔を削除することによって、修正2値データを求める工程と、
前記修正2値データのうちで平均値が0.5に近い少なくとも1つの2値データを選択する工程と、
選択された修正2値データの1ライン分に含まれるパルス数を測定することによって前記ビートの数を求める工程と、を備えることが好ましい。
こうすれば、修正された2値データからビート数を正確に求めることができる。
また、前記修正2値データを求める工程は、
前記選択された2値データの1ライン分に対して、前記第1と第2の値の一方の値に関して所定の幅で一次元の太らせ処理を行う工程と、
前記太らせ処理された2値データに対して、前記第1と第2の値の一方の値に関して前記所定の幅で一次元の細らせ処理を行う工程と、を備えることが好ましい。
こうすれば、選択された2値データの細かなレベル変動を除去することができるので、ビート数を正確に求めることができる。
上記第3のドットクロック調整方法において、前記パルス数を測定する工程は、
前記修正された2値データについてデータの変化点間の平均距離を求め、前記平均距離から前記パルス数を求める工程を含む、ことが好ましい。
こうすれば、修正された2値データのレベルの変動位置に多少の誤差があっても、ビート数を正確に求めることができる。
上記第3のドットクロック調整方法において前記2値データを作成する演算は、
前記2値データの作成に用いられる2つの画像データを2値化し、2値化された前記2つの画像データの排他的論理和を取る演算である、ことが好ましい。
あるいは、前記2値データを求める演算は、
前記2値データの作成に用いられる2つの画像データの差分を求め、前記差分を所定の閾値で2値化する演算である、ことが好ましい。
これらの演算によれば、第1と第2の画像データの相関を表す2値データを得ることができる。
請求項31に記載されたこの発明の第3のドットクロック調整装置は、映像信号のためのドットクロック信号の周波数を調整する装置であって、
前記映像信号の水平同期信号の周波数を第1の逓倍数で逓倍することによって第1のドットクロックを生成するドットクロック生成手段と、
前記第1のドットクロック信号に従って前記映像信号をサンプリングすることによって画像データを取得するサンプリング手段と、
前記画像データの1ラインにわたるビート数を求める第1の演算手段と、
前記第1の逓倍数に前記ビート数を補正することによって、望ましい第2の逓倍数を求める第2の演算手段と、
前記ドットクロック生成手段に前記第2の逓倍数を設定することによって、前記ドットクロック生成手段に、前記水平同期信号の周波数を前記第2の逓倍数で逓倍させ、これによって、ビートのない画像データをサンプリングし得る第2のドットクロック信号を生成させる逓倍数設定手段と、
を備えることを特徴とする。
第3のドットクロック調整装置によれば、第3のドットクロック調整方法と同様に、ビートの無い画像をサンプリングし得る望ましい第2のドットクロック信号を生成することができる。
この発明の第1のドットクロック再生回路は、映像信号を標本化するサンプリング回路に与えるためのドットクロック信号を再生するドットクロック再生回路であって、
前記映像信号の水平同期信号の周波数を所定の逓倍数で逓倍して参照クロック信号を生成するPLL回路と、
前記参照クロック信号を所定の時間遅延することによって、前記ドットクロック信号を生成する遅延回路と、
前記サンプリング回路から出力される少なくとも1ライン分の画像データを記憶する記憶手段と、
前記記憶手段における前記画像データの書込みを制御するとともに、前記記憶手段に記憶されたデータを読み出して所定の演算を実行し、該演算結果に基づき、前記映像信号と前記ドットクロック信号との間の位相関係が望ましいものになるように前記遅延回路の遅延時間を設定する遅延時間設定手段と、
を備えたことを特徴とする。
上記第1のドットクロック再生回路によれば、遅延時間設定手段が、ドットクロック信号でサンプリングされた画像データに所定の演算を実行することによって、映像信号とドットクロック信号との間の位相関係が望ましいものになるようにドットクロック信号の遅延時間を設定するので、ドットクロック信号の位相を適切に調整することができる。
上記第1のドットクロック再生回路において、前記遅延時間設定手段は、1ライン分の画像データを前記記憶手段に記憶した後に読み出して前記演算を実行することを前記遅延回路の遅延時間を変えるごとに繰り返し、得られた前記演算結果から前記ドットクロックに最適位相を与える遅延時間を決定することが好ましい。
このように、異なる遅延時間を有するドットクロック信号でサンプリングされた画像データに基づいてそれぞれ演算を行うことによって、最適なドットクロックの位相を求めることができる。
上記第1のドットクロック再生回路は、さらに、
前記逓倍数を所定の値だけ増減してオフセットを与える加算手段を備え、
前記遅延時間設定手段は、増減された逓倍数に関してそれぞれ前記演算を実行することが好ましい。
逓倍数を変更すれば、映像信号とドットクロック信号との位相関係も変わるので、異なる逓倍数で得られたドットクロック信号を用いてサンプリングされた画像データを演算することによって、映像信号とドットクロック信号との位相関係を調べることができる。
上記第1のドットクロック再生回路において、前記遅延時間設定手段は、
前記加算手段を用いて前記PLL回路に第1の逓倍数を設定して前記記憶手段に書き込んだ後に読み出した第1の画像データと、前記PLL回路に第2の逓倍数を設定して前記記憶手段に書き込んだ後に読み出した第2の画像データとを用いて前記所定の演算を行うことによって、前記最適位相を与える遅延時間を決定する手段を備えることが好ましい。
異なる第1と第2の逓倍数で得られたドットクロック信号を用いてそれぞれサンプリングされた第1と第2の画像データを用いた演算を実行することによって、映像信号とドットクロック信号との位相関係を調べることができる。従って、ドットクロック信号に最適位相を与えることができる。
上記第1のドットクロック再生回路において、前記遅延時間設定手段は、
前記第1の画像データの中で、画像データ値が一定レベル以下の画素位置に対して、前記第1と第2の画像データに関してそれぞれ補間演算を施す手段を備えることが好ましい。
こうすれば、一定レベル以下の画像データ値が、演算結果に大きな変動を与えないようにすることができる。
上記第1のドットクロック再生回路において、前記所定の演算は、前記1ライン分の画像データを複数のブロックに分割して実行され、前記分割における分割数は、前記第1と第2の逓倍数の差分を前記ドットクロック信号の周波数と前記遅延回路の最少遅延差との積で除した値の整数倍に等しく設定されることが好ましい。
こうすれば、1ライン分の画像データの複数のブロックに対する演算結果から、最適位相を求めることができる。
上記第1のドットクロック再生回路において、前記第1と第2の逓倍数の差は、+2または−2である。
こうすれば、第1と第2の画像データの位相のずれが4πになるので、1ライン分の画像データの中から望ましい位相を有するブロックを検出することができる。
上記第1のドットクロック再生回路において、前記所定の演算は、前記記憶手段から読み出された前記画像データにおける隣接する画素位置のデータの差分の二乗を求める演算であることが好ましい。
こうすれば、画像データに含まれる高調波成分の影響を除去することができるので、位相のずれを容易に検出することができる。
あるいは、前記所定の演算は、前記記憶手段から読み出された前記画像データにおける隣接する画素位置のデータの差分の絶対値を求める演算であることが好ましい。
こうすれば、画像データに含まれる直流成分の影響を除去することができるので、位相のずれを容易に検出することができる。
請求項32に記載されたこの発明の第1の映像信号表示装置は、少なくとも映像信号を標本化するサンプリング手段と、
水平同期信号を所定の分周数で逓倍し所定のドットクロックを生成するクロック発生手段と、
前記サンプリング手段の出力を処理するための駆動手段と、
前記駆動手段の出力を表示するための表示素子と、
前記表示素子の表示タイミングを制御する表示タイミング手段と、
前記サンプリング手段の出力の1ラインのデータを記憶する記憶手段と、
前記記憶手段に書込みイネーブル信号を送る書込みタイミング手段と、
所定のラインのデータを前記記憶手段に書込むために、前記書込みタイミング手段に書込みアーム信号を送り、該記憶手段に書込まれたデータを読出して演算し、該演算結果に基づき前記クロック発生手段の逓倍数を設定する制御手段と、
を備えることを特徴とする。
第1の映像信号表示装置によれば、適切な逓倍数で逓倍されたドットクロックで映像信号をサンプリングして表示することができるので、ビートのない映像を表示することができる。
上記第1の映像表示装置において、前記記憶手段の記憶容量は前記表示素子の水平方向の画素数より多くないようにしてもよい。
こうすれば、処理に必要な記憶容量を削減できると共に、処理時間も短縮することができる。
請求項34に記載されたこの発明の第2のドットクロック再生方法は、少なくとも映像信号を標本化するサンプリング手段と、水平同期信号を所定の分周数で逓倍し所定のドットクロックを生成するPLL回路を含むクロック発生手段と、前記サンプリング手段の出力を処理するための駆動手段と、前記駆動手段の出力を表示するための表示素子と、前記表示素子の表示タイミングを制御する表示タイミング手段と、前記サンプリング手段の出力の1ラインのデータを記憶する記憶手段と、前記記憶手段に書込みイネーブル信号を送る書込みタイミング手段と、さらに所定のラインのデータを前記記憶手段に書込むために、前記書込みタイミング手段に書込みアーム信号を送り、該記憶手段に書込まれたデータを読出して演算し、該演算結果に基づき前記クロック発生手段の逓倍数を設定する制御手段を備えた映像信号表示装置のドットクロック再生方法において、
前記PLL回路に仮逓倍数を設定して前記記憶手段にデータを記憶した後、前記記憶手段から読出したデータの隣接アドレス間の差分値と、所定のスレッシュホールド値との比較により、前記映像信号の有効信号領域の、前記記憶手段における開始アドレスと終了アドレスを求め、該開始アドレスと該終了アドレスの差と、前記仮逓倍数とから、演算により前記映像信号の1ラインのドットクロックの数を求め、求めたドットクロックの数を前記クロック発生手段に逓倍数として設定すること、を特徴とする。
第2のドットクロック再生方法によれば、映像信号の有効信号領域の開始アドレスと終了アドレスの差が解るので、この差と有効信号領域の既知の長さとの関係から、1ラインのドットクロックの数を求めることができる。従って、このドットクロックの数を逓倍数としてクロック発生手段に設定することにより、望ましい周波数を有するドットクロックを再生することができる。
上記第2のドットクロック再生方法において、
前記記憶手段にデータを記憶した後、前記記憶手段からデータを読出すこと、を前記映像信号の複数のラインに対して実行し、前記記憶手段の同一アドレスにおける最大値で構成したデータにより、前記有効信号領域の開始および終了アドレスを求めることが好ましい。
こうすれば、1ライン分のデータのみを用いる場合に比べて、有効信号領域の開始アドレスと終了アドレスをより高精度に決定することができる。
上記第2のドットクロック再生方法において、
前記有効信号領域の開始アドレスと、前記演算結果により求めた逓倍数から、前記表示素子に表示する画面の水平表示位置の最適値を求めて、前記表示タイミング手段に設定することが好ましい。
こうすれば、有効信号領域を正しく表示することができる。
請求項37に記載されたこの発明の第3のドットクロック再生方法は、少なくとも映像信号を標本化するサンプリング手段と、水平同期信号を所定の分周数で逓倍し所定のドットクロックを生成するクロック発生手段と、前記サンプリング手段の出力を処理するための駆動手段と、前記駆動手段の出力を表示するための表示素子と、前記表示素子の表示タイミングを制御する表示タイミング手段と、前記サンプリング手段の出力の1ラインのデータを記憶する記憶手段と、前記記憶手段に書込みイネーブル信号を送る書込みタイミング手段と、所定のラインのデータを前記記憶手段に書込むために、前記書込みタイミング手段に書込みアーム信号を送り、該記憶手段に書込まれたデータを読出して演算し、該演算結果に基づき前記クロック発生手段の逓倍数を設定する制御手段と、を備えた映像信号表示装置のドットクロック再生方法において、
前記記憶手段から読出したデータにハイパスフィルタ演算を施し、さらに非線形演算した後、高速フーリエ変換を実行し、該変換で得られた結果のピークを求めることによりビート成分の周波数を求め、該ビート成分の周波数がゼロになるように前記クロック発生手段の逓倍数を設定すること、を特徴とする。
第3のドットクロック再生方法によれば、サンプリングされたデータに含まれるビート成分の周波数を高速フーリエ変換によって求めることができる。そして、このビート成分の周波数がゼロになるように、クロック発生手段の逓倍数を設定するので、ビートのない映像を表示するためのドットクロックを再生することができる。
請求項38に記載されたこの発明の第4のドットクロック再生方法は、少なくとも映像信号を標本化するサンプリング手段と、水平同期信号を所定の分周数で逓倍し所定のドットクロックを生成するクロック発生手段と、前記サンプリング手段の出力を処理するための駆動手段と、前記駆動手段の出力を表示するための表示素子と、前記表示素子の表示タイミングを制御する表示タイミング手段と、前記サンプリング手段の出力の1ラインのデータを記憶する記憶手段と、前記記憶手段に書込みイネーブル信号を送る書込みタイミング手段と、所定のラインのデータを前記記憶手段に書込むために、前記書込みタイミング手段に書込みアーム信号を送り、該記憶手段に書込まれたデータを読出して演算し、該演算結果に基づき前記クロック発生手段の逓倍数を設定する制御手段と、を備えた映像信号表示装置のドットクロック再生方法において、
前記記憶手段から読出したデータにハイパスフィルタ演算を施し、さらに非線形演算した後、複数のコムフィルタで演算し、該演算結果の積分値の組合わせによりビート成分の周波数を求め、該ビート成分の周波数がゼロになるように前記クロック発生手段の逓倍数を設定すること、を特徴とする。
第4のドットクロック再生方法によれば、サンプリングされたデータに含まれるビート成分の周波数を複数のコムフィルタを用いた演算によって求めることができる。そして、このビート成分の周波数がゼロになるように、クロック発生手段の逓倍数を設定するので、ビートのない映像を表示するためのドットクロックを再生することができる。
上記第3または第4のドットクロック再生方法において、
前記非線形演算が二乗演算であることが好ましい。
こうすれば、データに含まれる高調波成分の影響を除去することができるので、ビートの成分を容易に求めることができる。
請求項40に記載されたこの発明の第5のドットクロック再生方法は、少なくとも映像信号を標本化するサンプリング手段と、水平同期信号を所定の分周数で逓倍し所定のドットクロックを生成するPLL回路を含むクロック発生手段と、前記ドットクロックの位相を制御する位相制御手段と、前記サンプリング手段の出力を処理するための駆動手段と、前記駆動手段の出力を表示するための表示素子と、前記表示素子の表示タイミングを制御する表示タイミング手段と、前記サンプリング手段の出力の1ラインのデータを記憶する記憶手段と、前記記憶手段に書込みイネーブル信号を送る書込みタイミング手段とを備え、さらに所定のラインのデータを前記記憶手段に書込むために、前記書込みタイミング手段に書込みアーム信号を送り、該記憶手段に書込まれたデータを読出して演算し、該演算結果に基づき前記クロック発生手段の逓倍数を設定する制御手段と、を備えた映像信号表示装置のドットクロック再生方法において、
前記PLL回路に仮逓倍数を設定して前記記憶手段にデータを記憶した後、前記記憶手段から第1のデータを読出し、
前記位相制御手段に設定する位相制御値を変化させ、前記記憶手段にデータを記憶した後、前記記憶手段から第2のデータを読出し、
前記第1のデータと前記第2のデータの相関演算を行い、該相関演算の結果から前記映像信号の1ラインの総画素数を求める逓倍数演算を行い、該逓倍数演算により求めた総画素数を前記クロック発生手段に逓倍数として設定すること、
を特徴とする。
第5のドットクロック再生方法によれば、1ラインの画素数、即ち水平方向のブランキングと表示領域の画素数の合計が不明な場合にも、その総画素数を求めることができる。この総画素数を逓倍数としてクロック発生手段に設定することによって、ビートの無い映像を表示するためのドットクロックを再生することができる。
上記第5のドットクロック再生方法において、
前記相関演算は、
前記第1のデータを2値化した第3のデータと、前記第2のデータを2値化した第4のデータとの排他的論理和により第5のデータを求める演算であるとすることができる。
こうすれば、簡単な演算で相関演算を実現することができる。
上記第5のドットクロック再生方法において、
前記相関演算は、
前記第1のデータと前記第2のデータの差分により第3のデータを得て、前記第3のデータを2値化して第4のデータを求める演算であるとしてもよい。
この方法によっても、簡単な演算で相関演算を実現することができる。
上記第5のドットクロック再生方法において、
前記逓倍数演算は、
前記相関演算の結果のデータの並びの変化点間の平均距離を求め、
前記PLL回路に設定した前記仮逓倍数を該平均距離の2倍の値で除した後に整数化することにより、1ラインのビート数を求め、
前記PLL回路に設定した前記仮逓倍数と該ビート数の和、または差により1ラインの総画素数を求めることが好ましい。
このように、相関演算の結果のデータの変化点間の平均距離から1ラインのビート数を求めるようにすれば、映像信号で表される映像の内容に起因するビート数の誤差を低減することができる。
上記第5のドットクロック再生方法において、
第1のデータと第2のデータの間で行う前記相関演算は、
前記第2のデータのアドレスが、前記第1のデータのアドレスより1少ない第1の演算と、
前記第2のデータのアドレスが、前記第1のデータのアドレスと等しい第2の演算と、
前記第2のデータのアドレスが、前記第1のデータより1多い第3の演算と、を行い、
前記第1の演算結果と前記第2の演算結果の並びの変化点により、仮想レジスタを反転させて第3のデータを生成し、
前記第2の演算結果と前記第3の演算結果の並びの変化点により、仮想レジスタを反転させて第4のデータを生成し、
前記第3のデータの平均値と、前記第4のデータの平均値とにおいて、前記第3のデータおよび前記第4のデータの最大値の1/2の値に近い方を第5のデータとして求め、
前記逓倍数演算は、前記第5のデータの並びの変化点間の平均距離と、前記PLL手段に設定した仮逓倍数とから前記映像信号の1ラインの総画素数を求めることが好ましい。
こうすれば、映像信号とドットクロックとに位相のずれがあっても、正しい総画素数を求めることができる。
この発明は、以下のような他の態様も含んでいる。第1の態様は、上記のドットクロック調整方法または装置で調整されたドットクロック信号でサンプリングされた映像信号に従って、映像を出力デバイスに出力する映像出力装置である。出力デバイスとしては、表示デバイスやプリンタなどを用いることができる。
第2の態様は、コンピュータに上記の発明の各工程または各手段の機能を実行させるコンピュータプログラムを記録した記録媒体である。記録媒体としては、フレキシブルディスクやCD−ROMなどのコンピュータが読取り可能な携帯型の記憶媒体や、コンピュータシステムの内部記憶装置(RAMやROMなどのメモリ)および外部記憶装置、あるいは、これ以外のコンピュータプログラムが記録された媒体であってコンピュータシステムが読取り可能な種々の媒体を利用できる。
A.第1実施例:
次に、本発明の実施の形態を実施例に基づき説明する。図1は本発明の第1の実施例によるドットクロックの位相調整を行う映像表示装置を示すブロック図である。
この映像表示装置は、A/Dコンバータ1と、駆動回路2と、表示素子3と、ラインメモリ4と、表示タイミング制御回路5と、書込タイミング制御回路6と、PLL回路7と、CPU8と、RAM9と、遅延回路10と、メインメモリ12と、不揮発性メモリ14とを備えている。
PLL回路7は、アナログ映像信号101に関連する水平同期信号102の周波数を一定の逓倍数Ndで逓倍することによって参照クロック200を生成する。遅延回路10は、この参照クロック200に遅延φを与えることによって、ドットクロック201(ドットクロック信号)を生成する。アナログ映像信号101は、A/Dコンバータ1においてドットクロック201の立ち上がりでサンプリングされてデジタル映像信号110に変換される。駆動回路2は、デジタル映像信号110に対して、表示素子3に対応した信号処理を行ない、表示素子3に処理済みの映像信号を供給することによって映像を表示する。なお、ドットクロック信号201は、駆動回路2と表示素子3とラインメモリ4と表示タイミング制御回路5と書込タイミング制御回路6にも供給されている。また、表示タイミング制御回路5と書込タイミング制御回路6には水平同期信号102が供給されている。表示タイミング制御回路5は、水平同期信号102とドットクロック201に応じて表示素子3の表示タイミングを制御している。書込タイミング制御回路6は、水平同期信号102とドットクロック201とに応じてラインメモリ4への書込タイミングを制御している。
CPU8は、メインメモリ12に記憶されたコンピュータプログラムを実行することによって、位相決定手段15および遅延量設定手段16としての機能を実現する。位相決定手段15は、ラインメモリ4に格納された画像データに対して所定の演算を行って、ドットクロック201に望ましい位相を与える遅延量φを決定する機能を有する。遅延量設定手段16は、遅延量φを遅延回路10に設定する機能を有する。位相決定手段15と遅延量設定手段16の機能の詳細については、さらに後述する。
表示素子3としては、液晶ディスプレイやプラズマディスプレイのようなマトリクス構造の表示デバイスを使用することができる。駆動回路2は、ガンマ補正、増幅、多相展開、交流反転などの各種の処理を行う。
A/Dコンバータ1の出力110は、ラインメモリ4に接続されている。ラインメモリ4は、CPU8に接続されており、少なくとも1ライン分の画像データを記憶する容量を有している。ラインメモリ4には、少なくとも1ライン分のディジタル映像信号が格納される。ラインメモリ4に記憶された画像データは、CPU8により読み出すことができる。
不揮発性メモリ14には、ドットクロックの調整に用いられる種々の規格値や初期設定値が記憶されている。不揮発性メモリ14としては、フラッシュメモリや、EEPROM、メモリーカード等の種々の固体記憶素子を用いることができる。
図2は、PLL回路7の構成を示すブロック図である。PLL回路7は、位相周波数比較回路(PFD)61と、ローバスフィルタ(LPF)62と、電圧制御発振器(VCO)63と、分周器64とを備えている。水平同期信号102は、分周器64の出力とともに位相周波数比較回路61に入力される。位相周波数比較回路61は、分周器64からの入力と、水平同期信号102とに関して位相と周波数とを比較し、これらの差に対応する電圧レベルを有する信号を出力する。位相周波数比較回路61の出力は、ローバスフィルタ62を通してVCO63に与えられる。VCO63の出力は、参照クロック200として出力されるとともに、分周器64に入力される。分周器64は、逓倍数設定信号703によって設定された逓倍数Ndまでパルス数のカウントを行うカウンタであり、設定された逓倍数Ndで参照クロック200を分周する。このような構成により、VCO63の出力としては、水平同期信号102の周波数を分周器64に設定した逓倍数Nd(分周比1/Ndの逆数)で逓倍した参照クロック200が得られる。
なお、第1実施例においては、参照クロック200とドットクロック201を得るための適切な逓倍数Ndは既知であるものと仮定する。従って、遅延回路10における遅延量φ(図1)を調整することによって、望ましい位相を有する適切なドットクロック201を得ることができる。
図3は、遅延回路10の構成を示すブロック図である。参照クロック200は、多段に直列接続された複数のゲート素子31に入力される。各ゲート素子31の出力は、マルチプレクサ32に接続されている。マルチプレクサ32は、CPU8(図1)から与えられる遅延制御信号105に応じて入力を選択し、ドットクロック201として出力する。
図4は、位相決定手段15と遅延量設定手段16が行う処理の手順を示すフローチャートである。本発明の各実施例では、水平方向の表示画素数が800、表示画素数とブランキング期間に相当する画素数の合計である水平1ラインの総画素数が1040、映像信号101のビデオクロックが50MHzの、SVGAと呼称されるパーソナルコンピュータの代表的な映像信号に従って画像を表示する場合を説明する。第1実施例において、PLL回路7の逓倍数Ndにはあらかじめ水平の総画素数である1040が設定されている。参照クロック200の周波数は、アナログ映像信号101を出力する映像出力装置のビデオクロックの周波数に等しい50MHzになっている。
図4のステップS1では、CPU8から遅延回路10に遅延制御信号105を出力し、遅延回路10の遅延時間φをゼロに設定する。
次にステップS2では、CPU8から書込タイミング制御回路6に、画像データの書込みを指示するための書き込みアーム信号701を送り、書込タイミング制御回路6にラインメモリ4への1ライン分の画像データの書込みを実行させる。書込タイミング制御回路6とラインメモリ4は、アーム信号701に応じて書き込み待機状態になる。書込タイミング制御回路6は、内蔵するラインカウンタ(図示せず)を用いて水平同期信号102のパルス数(すなわちライン数)をカウントする。書込タイミング制御回路6には、書き込みを行うべき所定のライン位置が予め設定されている。書込タイミング制御回路6は、映像信号のライン位置が所定のライン位置に達した時に、ラインメモリ4における書込みを許可する。ラインメモリ4には、ドットクロック201のタイミングに従って1ライン分のデジタル映像信号110が書き込まれる。なお、ラインメモリ4は、少なくとも1ライン分の画像データを記憶する容量があればよいが、複数ライン分の画像データを記憶する容量を有するようにしてもよい。
次にステップS3では、ラインメモリ4に書き込まれた画像データをCPU8が読み出し、一旦CPU8内部のRAM9に蓄えた後に、次の数式1に示す演算を実行して、位相関係指標V1 (φ)を算出する。
ここで、PD(i)はi番目のアドレス(画素位置)の画像データ(画素データとも呼ぶ)、NdはPLL回路7における逓倍数(すなわち1ラインの総画素数)、φは遅延回路10に設定された遅延量である。すなわち、数式1で定義される位相関係指標V1 (φ)は、同一ライン上の隣接画素位置における画像データの差分の二乗の和である。この値を「位相関係指標」と呼ぶ理由は、この値がアナログ映像信号101とドットクロック201との位相関係を示しているからである。なお、位相関係指標V1 (φ)の値は、遅延回路10における遅延量φに依存する。
図5は、数式1で与えられる位相関係指標V1 を算出する手順を示すフローチャートである。まず、ステップS31では、CPU8内の加算値レジスタをリセットし、ステップS32ではRAM9の現在のアドレスiにおける画像データPD(i)と、1つ後のアドレス(i+1)における画像データPD(i+1)との差分をとる。ステップS33ではこの差分結果を二乗し、ステップS34で加算値レジスタに加算する。こうして、ステップS32からステップS34までの処理を、ステップS35で終了と判断されるまで1ラインの画像データPD(i)について繰り返した後に、加算値レジスタの加算結果を位相関係指標V1 として出力する。
図6は、ステップS32からステップS34までの処理を実現する等価回路を示すブロック図である。この回路は、1クロック分(すなわち1画素分)の遅延を与える遅延素子401と、減算を行うための加算器402と、減算結果を二乗するための乗算器403とで構成されている。このような等価回路をハートウェア回路で実現する場合には、図1におけるラインメモリ4を省略することも可能である。
なお、数式1の代わりに、次の数式2に従って位相関係指標V2 を算出するようにしてもよい。
この位相関係指標V2 (φ)は、同一ライン上の隣接画素位置における画像データの差分の絶対値の和である。一般に、位相関係指標を表す関数は、隣接する画素位置における画像データ値の差分の2乗の和に対して一義的かつ単調な関数を使用することができる。なお、数式2を使用する場合には、図6の回路の乗算器403が、差分の絶対値を得るための符号変換器に置き換えられる。
図7は、図6の回路の周波数特性を示すグラフである。第1の特性404は数式1における二乗の値{PD(i+1)−PD(i)}2 の特性であり、第2の特性405は数式2における絶対値|PD(i+1)−PD(i)|の特性である。これらの特性は、ドットクロック201の周波数f201 の1/2のところ、即ち、アナログ映像信号101の最高周波数のところに最大通過域を持つ、一種のハイパスフィルタ特性を示していることが解る。
図8および図9は、ステップS3において位相関係指標V1 を求める処理を実際の波形に即して示すタイミングチャートである。図8は、ドットクロック201の位相とA/Dコンバータの出力110(すなわちデジタル映像信号)の関係を示している。図8(b)に示すように、ドットクロック201aが、映像信号101の安定領域で立ち上がる位相を有している場合には、A/Dコンバータ1の出力110aは、図8(c)に示すものになり、この波形のデータがラインメモリ4に記憶される。なお、ラインメモリ4の入出力は実際にはディジタル信号であるが、ここでは解りやすいようにアナログ信号に戻して示している。一方、図8(d)に示すように、ドットクロック201bが映像信号101の過渡領域で立ち上がる位相を有している場合には、A/Dコンバータ1の出力110bは図8(e)に示すものになり、この波形がラインメモリ4に記憶される。
図9は、こうして記憶された画像データを用いた演算過程を示している。図9(a)のラインメモリ出力110aは、図8(c)に示すA/Dコンバータ出力110aをラインメモリ4に書き込んだ後に、ラインメモリ4から読み出されたものである。図9(b)の信号221aは、図9(a)の信号を1クロック遅延させたものである。また、図9(c)の信号222aは、図9(a)と(b)の差分であり、図9(d)の信号223aは、この信号222aを二乗したものである。なお、ラインメモリ出力110aと1クロック遅延させた信号221aの差分をとるのは、図5のステップS32において現在のアドレスiのデータと、1つ後のアドレス(i+1)のデータとの差分をとるのと等価である。
一方、図9(e)のラインメモリ出力110bは、図8(e)に示すA/Dコンバータ出力110bをラインメモリ4に書き込んだ後に、ラインメモリ4から読み出されたものである。図9(f)〜(h)に示す各信号は、この信号110bから得られた信号であり、図9(b)〜(d)にそれぞれ対応している。
ここで、図示した波形の範囲において、図9(d)に示す信号223aの信号値を加算すると、その加算値は「4」となる。一方、図9(h)の信号223bの信号値の加算値は「1.5」となる。すなわち、安定領域で映像信号101をサンプリングして得られたA/Dコンバータ出力110aを用いた方が、隣接画素データの差分の二乗の和(すなわち位相関係指標V1 )の値が大きいことが解る。
図10は、ドットクロック201の位相と位相関係指標V1 (またはV2 )との関係を示すグラフである。ここでは、安定領域のもっともピークにおいてサンプリングを行うときのドットクロック201の位相を最適位相としている。横軸は、この最適位相と実際の位相とのずれを示し、縦軸は、位相関係指標V1 (またはV2 )を示している。図10に示す特性の形状は、映像信号101のなまり等によっていくらか変化し、また、映像信号のレベル変化の頻度等によって位相関係指標V1 (またはV2 )の絶対レベルは異なる。しかし、同じ映像を示す映像信号101についてドットクロック201の位相(すなわち遅延量φ)を変化させた場合には、図10に示す特性において山(ピーク、最大値、極大値)と谷(最小値、極小値)が表れ、ピークとなるようなサンプリング位相が最適である。すなわち、この最適位相を有するドットクロック201を用いることによって、鮮鋭度が最も高く、ノイズが最も少ない映像を表す画像データをサンプリングすることができる。
なお、図9(a)と(e)に示すラインメモリ出力110a,110bを比較すれば解るように、エッジ成分は図9(a)に示す出力110aの方が明らかに大きく、これに応じて関係指標指標V1 (またはV2 )の値も大きくなる。すなわち、位相関係指標V1 (またはV2 )を求める処理は、図6で示したようにハイパスフィルタの特性を有することがわかる。ラインメモリ出力110のエッジ成分は、サンプリングされた映像の鮮鋭度が高いほど大きい。従って、位相関係指標V1 (またはV2 )は、サンプリングされた映像の鮮鋭度を表す指標であるとも考えることができる。
このように、1つの遅延量φに関し、1ライン分の画像データを用いて算出された位相関係指標V1 (φ)(またはV2 (φ))は、CPU8内部のRAM9に保存される。
図4のステップS4では、すべての遅延時間φについて位相関係指標V1 (またはV2 )を求める処理が終了したかか否かを確認し、終了してない場合には、ステップS5に移行する。ステップS5では、CPU8から遅延回路10に遅延制御信号105を与えて、遅延時間φを1遅延ステップ分(すなわち、図3の1個のゲート素子31に相当する単位遅延量)だけ増加させ、再度ステップS2からステップS4までの処理を繰り返す。ステップS2〜S4の繰り返しは、ドットクロック201の1周期以上の範囲(すなわち、2π以上の位相の範囲)に相当する遅延量φの範囲に対して実行すればよい。なお、本実施例では前述のように、ドットクロック201の周波数が50MHzであり、その1周期が20nsであると想定している。従って、遅延回路10における1遅延ステップが1nsである場合には、ステップS2〜S4の処理を20回以上繰り返せばよい。
図11は、ドットクロック201の遅延時間φと、位相関係指標V1 との関係の一例を示すグラフである。横軸は遅延時間φ、縦軸は位相関係指標V1 である。図11(A)の位相関係指標V1 には映像信号の内容等に起因するノイズが含まれている。そこで、図4のステップS6では、フィルタ処理を行って、その低域成分だけを取り出す。このフィルタリング処理は、一次元のローパスフィルタを用いたコンボリューション演算によって実現できる。図11(B)は、このようにして得られたフィルタ済みの位相関係指標V1aを示している。なお、ステップS6のフィルタ処理は省略することも可能である。しかし、フィルタ処理を行うようにすれば、ドットクロック201に最適な位相を与える遅延時間を、より高精度に決定することができる。
図4のピーク検出ステップS7では、図11(B)のグラフのピーク位置241(すなわち、最大値、極大値の位置)を求める。このピーク位置241に対応する遅延時間φopだけドットクロック201を遅延させれば、最適位相で映像信号101をサンプリングできる。そこで、ステップS8では、CPU8が遅延回路10に遅延制御信号105を与えて、この遅延時間φopを設定する。
なお、図11(B)に示すように、ピーク位置は、ドットクロックの1周期だけ離れた遅延時間φにおいて繰り返し表れるが、これらはドットクロックに等価な位相を与えるものである。従って、これらのピーク位置の遅延時間の中で、対応する遅延時間が最も短いものを選ぶことができる。
以上のように、第1実施例によれば、映像信号101がなまっていたり、歪んだりしていても、もっとも安定なサンプリング結果が得られる最適位相を有するように、ドットクロック201の遅延量φを自動的に調整することができる。
なお、本実施例のラインメモリ4は、駆動回路2にメモリを使用する場合にはこれと兼用することができ、特別にラインメモリとして備える必要がないことは明らかである。また、ラインメモリ4はドットクロック201の周波数で動作するので、本実施例では20ns以下のサイクルタイムが必要である。しかし、CPU8による演算処理はドットクロックとは全く無関係な速度で処理ができるので、CPU8には低速のものを使うことができる。
また、CPU8は前述の制御、演算の専用である必要はなく、表示装置の画面調整用等の目的で設けられているマイクロプロセッサを利用することも可能である。
なお、上述した第1実施例においては、予め決められた複数の遅延量φに関して位相関係指標を全て求めた後に、そのピーク値を決定するようにしたが、この代わりに、各遅延量φに関して位相関係指標が得られる度にピーク値を決定する処理を実行し、ピーク値が得られた時点で処理を中止するようにしてもよい。こうすれば、全ての遅延量に関して処理を行わなくてもよいので、処理時間を短縮することが可能である。
また、1ライン分の全ての画像データを処理対象とする必要はなく、1ラインの一部を処理対象とするようにしてもよい。こうすれば、処理時間を短縮することが可能である。逆に、複数ライン分の画像データを処理対象としてもよい。こうすれば、位相調整の精度を向上させることができる。
B.第2実施例:
図12は本発明の第2の実施例によるドットクロックの位相調整を行う映像表示装置の構成を示すブロック図である。図1と同じ部分は同じ記号で示している。この映像表示装置は、図1の装置のPLL回路7の内部構成を変更したものである。CPU8からPLL回路7aには、逓倍数Ndの加算または減算を指示するための加算信号106が与えられる。
図13は、第2実施例に使用されるPLL回路7aの構成の一例を示す図である。このPLL回路7aは、図2に示すPLL回路7に加算回路65を追加したものである。加算回路65に加算信号106が入力されると、分周器64の分周数Nd(すなわちPLL回路7aの逓倍数)に所定のオフセット値Noff が加算または減算される。
図14は、第2実施例においてドットクロックの最適位相を決定する方法を示す説明図である。図14の横軸は1ライン分に相当する時間(またはアドレス)を示し、縦軸は、適切な逓倍数Nd(=1040)にオフセット値Noff (例えば+2)を加算した逓倍数(=1042)を用いて得られるドットクロックの位相のずれを示している。ここで、まず、適切な逓倍数Nd(=1040)を用いて得られる第1のドットクロックを考える。この第1のドットクロックは、アナログ映像信号101を出力する映像出力装置におけるビデオクロックと同じ周波数を有するので、第1のドットクロックの各パルスは、映像信号に対する絶対的な位相は不定であるが、互いに同じ位相関係を有しているはずである。図14の基準位相(位相ずれゼロ)は、このような第1のドットクロックと映像信号の位相関係を意味している。一方、オフセット値が加算された逓倍数(Nd+2)を用いて得られる第2のドットクロックの各パルスは、映像信号に対する位相関係が水平1ラインの上で徐々に変化する。1クロックパルスは2πの位相に相当するので、2クロックパルスは4πに相当する。従って、この第2のドットクロックは、水平1ライン上において、基準位相からの位相のズレが0〜4πの範囲で徐々に変化する。但し、2π〜4πの範囲は0〜2πの範囲と等価なので、図14では、0〜2πの範囲の位相ズレが2回繰り返される波形が実線で描かれている。
なお、逓倍数のオフセット値Noff を+1とすれば、位相の変化は2πまで、即ちクロックの1周期分に相当する変化になる。また、オフセット値Noff が負の場合には、図14の波形と傾きが逆になる。
図14の横軸は、水平1ライン分に相当するので、映像信号と第2のドットクロックとの位相関係は、同一ライン上の位置に応じて直線的に変化していることが解る。そこで、第2実施例では、1ライン分の画像データを複数のブロック(#1〜#40の40個のブロック)に分割し、各ブロック毎に、第1実施例で用いたものと同様な位相関係指標を算出する。各ブロックでは、映像信号と第2のドットクロックの位相関係が異なるので、位相関係指標も異なる値を示す。すなわち、位相関係指標のピーク値を有するブロック(例えばブロック#j)では、第2のドットクロックが最適な位相を有していると考えることができる。このブロック#jの位相が、基準位相(1ラインの初期の位相)からどの程度ずれているかは、図14の関係からブロック#jの位置に基づいて容易に算出できる。従って、このブロック#jの位置から、最適位相を与える遅延量を決定することができる。
図15は、第2実施例における位相決定手段15と遅延量設定手段16の処理の手順を示すフローチャートである。まずステップS101では、CPU8より遅延制御信号105を出力し、遅延回路10の遅延時間φを0に設定する。なお、初期の遅延時間φとしては、0以外の任意の値を設定することができる。ステップS102では、CPU8が加算信号106を加算回路65(図13)に供給し、逓倍数Ndにオフセット値Noff として2を加算する。前述したように、ドットクロック201を生成するための適切な周波数Ndの値は1040であり、これに応じて分周器64の分周値も1040に初期設定されている。従って、ステップS102では、分周器64の分周値Ndが加算回路65によって1042に設定される。この結果、PLL回路7aは、適切な周波数よりも高い周波数を有するドットクロックを生成する。
次にステップS103では、CPU8より書込タイミング制御回路6に書き込みアーム信号701を送り、ラインメモリ4に1ライン分のデータを記憶させる。前述した図14は、こうしてサンプリングされた1ライン分の画像データにおける位相ずれを示している。なお、図14の横軸は時間軸であるが、ラインメモリ4のアドレスにも対応している。すなわち、ラインメモリ4に書き込まれた画像データは、アドレスの進みに従ってドットクロック201の位相を変化させながら映像信号をサンプリングして得られたものになっている。
図15のステップS104では、ラインメモリ4に書き込まれたデータをCPU8が順に読み出し、一旦CPU8内部のRAM9に蓄えた後に、以下に説明する演算処理を実行する。
この演算処理にあたっては、まず1ラインの既知の総画素数Nd(=1040)にわたる画像データを、位相調整で必要な分解能に合わせて複数のブロックに分割する。位相調整で必要な最低分解能は、典型的には、遅延回路10における1遅延ステップ(最小遅延差)に対応している。例えば遅延回路10の1遅延ステップを1nsとすれば、位相調整の分解能は1nsまたはその整数分の一に設定することができる。ところで、ドットクロックの周波数は50MHzなので、その1周期は20nsである。また、第2実施例では、ドットクロックを2周期変化させているので、1ライン分の位相のずれ(図14に示す4πのずれ)は40nsに相当する。1ラインを40ブロックに分割すれば、その1ブロックが最低必要分解能である1nsに相当する。このとき、各ブロックの画素数は、1040/40=26となる。なお、1ラインの分割数を40の整数倍の値(例えば80,120)にすれば、1ブロックが最低必要分解能の整数分の1に相当することになる。
換言すれば、1ラインの分割数は、逓倍数のオフセット値Noff (例えば2)を、クロック周波数(例えば50MHz)と遅延回路の最小ステップ(例えば1ns)の積で除した結果を丸めた値の整数倍に等しく設定することが好ましい。こうすれば、遅延回路における最小ステップに対して1個以上の整数個のブロックが対応するので、最適位相に対応する遅延量を正確に設定することができる。
図15のステップS104では、以下に示す数式3に従って 各ブロックに関する位相関係指標V3を算出する。
ここで、#kはブロックの番号、PD(j)はk番目のブロック内のj番目の画素位置の画像データ、Mbはk番目のブロックの画素数である。上記の例では、1ラインが40ブロックに分割されるので、kは1〜40の範囲をとり、また、Mbは約26である。この位相関係指標V3 は、前述した数式1で与えられる位相関係指標V1 を各ブロック毎に求めたものに相当する。従って、この位相関係指標V3 を求めるための処理手順は、前述した図4に示すものと同じである。
なお、数式3の代わりに、次の数式4を用いて、第1実施例の第2の位相関係指標V2 に対応する位相関係指標V4 を求めるようにしてもよい。
このようにして得られた各ブロックの位相関係指標V3 (またはV4 )を、以下では「実データ」とも呼ぶ。各ブロックの位相関係指標V3 は、CPU8内部のRAM9に保存される。
図16(A)は、1ライン上の40個のブロック#1〜#40について得られた位相関係指標V3 の一例を示すグラフである。図16の横軸のブロック番号#1〜#40は、前述した図14の横軸にも示すように、ラインメモリ4のアドレスの範囲(0〜1041)にも対応しいる。すなわち、図16(A)に示す各ブロックの位相関係指標V3 (実データ81)は、図14で示したように、位相が直線的に変化している1ライン分の映像を40個に分割したときの、各映像部分における位相ずれの情報を有するデータとなっている。
仮に、映像信号101が、2つの画像レベル(例えば白黒)が周期的に交代するような縞模様の画像を示している場合には、図16(A)における各ブロック間の位相関係指標V3 の差異は、各ブロックの映像における位相ずれのみに依存する。ところが、映像信号101の内容がこのような縞模様ではない場合には、各ブロックの位相関係指標V3 も、映像信号101の内容による影響を含むことになる。そこで、第2実施例では、このような場合を考慮して、以下に説明するように、図16(B)に示す補正用データを求め、この補正用データを用いて、図16(A)に示す実データを補正することによって、映像信号101の内容による影響を除去している。なお、アナログ映像信号101として、2つの画像レベルが周期的に交代するような縞模様の画像を表すものを使用した場合には、以下に説明する補正用データによる補正処理は不要であ。この場合には、上述した位相関係指標V3 から直接に最適な位相を与える遅延量φを決定することができる。
図15のステップS105では、図13に示す加算信号106をゼロに戻すことにより分周器64の逓倍数を元の適切な値Nd(=1040)に戻す。ステップS106では、ステップS103と同様にラインメモリ4に映像信号を書き込む。ステップS107では、ステップS104と全く同様に、ブロックごとに位相関係指標V3 を演算する。この結果、図16(B)に示す補正用データ82が得られる。
図16(B)に示す補正用データ82(位相関係指標V3')では、映像信号のビデオクロックとドットクロック201の周波数は一致している。このため、映像信号101とドットクロック201の位相関係は不定であるが、1ラインに渡って位相は一定であり、また、最適位相からのずれも一定である。従って、補正用データ82には、映像信号101で表される画像の内容の変化による成分と、位相ずれによる成分とが含まれることになる。しかし、位相ずれによる成分は1ラインに渡って同じなので無視することができる。すなわち、この補正用データ82は、映像の内容による成分だけが含まれたデータである。
なお、映像信号101が、信号レベルの変化のないベタの画像部分を含む場合には、図16(A),(B)に示す無出力部分311、312のように、実データ81と補正用データ82に、出力レベルがほぼゼロの部分が生じてしまう。これらの部分では補正用データ82を用いた補正演算ができない。そこで、ステップS108では、まず、補正用データ82のレベルが所定の閾値以下である無出力部分312を検出する。そして、実データ81の無出力部分311と補正用データ82の無出力部分312を、それぞれ前後のデータから補間して、値がゼロでないデータをそれぞれ求める。なお、この補間演算には、直線補間や任意の非線形補間を用いることができる。
次にステップS109では、補間済の実データを、補間済みの補正用データで除算することによって、最適位相からのずれの情報だけを持った補正済データを求める。
こうして得られた補正済データにはノイズが含まれているため、ステップS110ではフィルタ処理により、ノイズ成分を除去してその低域成分だけを取り出す。これは通常のローパスフィルタを用いたコンボリューション演算で実現できる。図16(C)はこのようにして得られた補正済みデータ83を示している。図16(C)に示す補正済みデータ83は、各ブロックにおける位相ずれの程度を示す位相関係指標として使用できる。なお、ステップS110のフィルタ処理は省略することも可能である。しかし、フィルタ処理を行うようにすれば、最適な位相を示す遅延時間をより高精度で決定することができる。
図15のピーク検出ステップS111では、補正済みデータ83がピークとなるブロックを求める。前述のように、ブロック番号と位相との関係は、図14に示すように直線的なので、最適位相を与える位相ズレθopをブロック番号から決定することができる。例えば、図16(C)に示すように、j番目のブロックにピークがあれば、図14におけるブロック番号#jから、最適位相を与える位相ずれθopを以下の数式5に従って得ることができる。
図15のステップS112では、求めた位相ズレθopから、遅延回路10に設定する遅延量φop[ns]を求める。例えば、ドットクロックの1周期、すなわち2πの位相が20nsに相当する場合には、遅延量φopは、以下の数式6で与えられる。
もちろん、位相関係指標がピークを与えるブロックのブロック番号jから、数式5,6で与えられる遅延量φopを直接算出することも可能である。この遅延量φopだけドットクロック201を遅延させれば、最適位相で映像信号101をサンプリングできることになる。図15のステップS113では、CPU8から遅延制御信号105を出力して、この遅延量φopを遅延回路10に設定する。この結果、遅延回路10からは、最適位相を有するドットクロック201が出力される。
なお、この実施例では、加算信号106によって加算される逓倍数を+2としているので、図16(C)に示す補正済みデータ83には、ピークが潜在的に2点生じることになる。従って、ピークの一方が映像信号のブランキング部分にかかってしまった場合にも、他方は必ずブランキング以外の部分に存在する。従って、最適な位相を与える遅延量を確実に求めることが可能である。
なお、以上では逓倍数のオフセット値を+2とした場合について説明したが、−2としても同様である。さらに、オフセット値を+1または−1とした場合にも、最適位相を与える遅延量を同様にして求めることができる。この場合に、ピークがブランキングにかかって検出できないようなときには、あらかじめ遅延時間にバイアスを設けてピーク位置をずらすことによってピーク位置を特定する。そして、求めた遅延時間からバイアス分を取り除くことによって、最適位相を与える遅延時間を求めることができる。
なお、逓倍数のオフセット値の絶対値を2以上の整数とすれば、ブランキング部分以外のところに補正済みデータ83のピークが必ず現れるので、上述したようなバイアスの調整は不要である。この意味ではオフセット値の絶対値を2以上の整数とすることが好ましい。但し、オフセット値を+2または−2とすれば、各ブロックに含まれる画素数を比較的多く保つことができるので、補正済みデータ83(すなわち位相評価指標)を比較的精度よく求めることができるという利点がある。従って、オフセット値としては+2または−2とすることが最も好ましい。なお、補正済みデータ83にピークが2点以上表れる場合には、例えば最も短い遅延時間を選択すればよい。
上述の第2実施例によれば、映像信号がなまっていたり、歪んだりしていても、もっとも安定なサンプリング結果が得られるように、ドットクロックの位相を自動的に調整することができる。
なお、上述した第1および第2の実施例は、例えば次のように変形することも可能である。
位相関係指標は、数式1〜4で与えられるものに限らず、一般に、画像データの鮮鋭度を示す指標であればよい。例えば、数式1〜4で与えられる位相関係指標の代わりに、画像データの統計的な分散や標準偏差を位相関係指標として使用することも可能である。
なお、ドットクロック201を生成する際に使用される適切な逓倍数Ndが未知の場合には、以下に説明する実施例に従って適切な逓倍数Ndを最初に決定した後に、上述した第1または第2実施例に従って位相を調整するようにすればよい。こうすれば、ドットクロックの周波数と位相の両方を自動的に調整することができる。
C.第3実施例:
図17は本発明の第3の実施例によるドットクロックの周波数調整を行う映像表示装置の構成を示すブロック図である。この映像表示装置は、図1に示す第1実施例の装置における位相決定手段15と遅延量設定手段16を、演算手段17と逓倍数設定手段18で置き換えた構成を有している。これらの手段17,18の機能も、メインメモリ12に記憶されたコンピュータプログラムをCPU8が実行することによって実現される。
第3実施例は、ドットクロック201の周波数(すなわちPLL回路7の逓倍数Nd)を適切な値に自動的に設定することを目的としている。図18は、第3実施例において適切な逓倍数Ndを求める処理内容を示す説明図である。図18(a)は水平同期信号102を示し、図18(b)は映像信号101の水平1ライン分の波形を示している。
ここで求めたいのは、水平同期信号102の周波数を逓倍するための望ましい逓倍数Nd(水平1ラインの総画素数)である。そこで、まず、PLL回路7に仮の逓倍数Nkを設定して、映像信号101をサンプリングする。そして、サンプリングされた映像信号を分析して、有効信号領域の長さΔADkを求める。この長さΔADkは、有効信号領域の開始位置のアドレスADsと、終了位置のアドレスADtとの差分から得られる。なお、有効信号領域の開始位置と終了位置は、映像信号のレベル変化が所定の閾値以上になる位置として検出される。
仮の逓倍数Nkと、これに応じて得られた有効信号領域の長さΔADkは、望ましい逓倍数Ndおよび有効信号領域の真の長さΔADと、次の数式7で与えられる比例関係を有している。
ここで、有効信号領域の真の長さΔADは既知である。例えば、VGAではΔAD=640[画素]、SVGAではΔAD=800[画素]、XGAではΔAD=1024[画素]、SXGAではΔAD=1280[画素]である。従って、数式7を変形すれば、望ましい逓倍数Ndは、次の数式8から与えられる。
すなわち、仮に設定された逓倍数Nkに、有効信号領域の既知の長さΔADと、測定された長さΔADkとの比を乗ずることによって、望ましい逓倍数Ndを求めることができる。
図19は、演算手段17および逓倍数設定手段18によって実行される処理の手順を示すフローチャートである。まずステップT1では、CPU8からPLL回路7に逓倍数設定信号703を供給することによって、仮の逓倍数Nkを設定する。この際、市場の代表的なパーソナルコンピュータ等の映像出力装置の種々の機種に対する複数の逓倍数をあらかじめ不揮発性メモリ14に登録しておき、映像表示装置に接続されている映像出力装置の機種に応じて、登録されている逓倍数を選択し、これを仮の逓倍数Nkとして使用することができる。映像表示装置に接続されている映像出力装置の機種は、水平同期信号と垂直同期信号の周波数や極性を分析することによって判別することができる。
ステップT2では、CPU8内部のRAM9がクリアされる。このRAM9のアドレスは、ラインメモリ4のアドレスと1対1に対応付けられている。
ステップT3では、CPU8が、書込みタイミング制御回路6に対して、ラインメモリ4にどのライン番号のデジタル映像信号110を書込むかを設定する。
ステップT4では、CPU8より書込みタイミング制御回路6に書き込みアーム信号701を送る。書込みタイミング制御回路6は、デジタル映像信号110のライン位置が、ステップT3で設定したライン番号に一致したタイミングで書込みイネーブル信号502を出力して、ラインメモリ4における書込みを開始させる。これに応じて、ラインメモリ4に1ライン分の画像データが記憶される。
ステップT5では、複数ラインの画像データに関して、画素位置毎に最大値を求めて保存する。そして、ステップT6では、所定数のラインに関してステップT3〜T5の処理が終了したか否かを判断し、終了していなければステップT3に戻る。
図20は、ステップT3〜T6の処理内容を示す説明図である。ステップT3〜T6では、複数ライン分の画像データに関して、同番目のデータ毎に(すなわち、複数ラインにわたって同じアドレス位置毎に)最大値が求められている。最大値を求める範囲は、図20(b)に示すように、1ラインの有効信号領域の開始アドレスADsを含む第1の範囲(アドレスADa〜ADbの範囲)と、有効信号領域の終了アドレスADtを含む第2の範囲(アドレスADc〜ADdの範囲)である。このように、最大値を求める演算の対象範囲を限定している理由は、最終的に求めたいものが開始アドレスADsと終了アドレスADtであり、この付近だけを処理すればよいからである。有効信号領域の開始アドレスADsと終了アドレスADtの位置は、予め正確に知ることはできないが、有効信号領域の既知の長さΔADからほぼ推定することができる。従って、ステップT3〜T6の処理では、この推定された開始アドレスと終了アドレスの位置をそれぞれ含むように、第1の範囲ADa〜ADbと第2の範囲ADc〜ADdが決定される。
この第3実施例では複数ライン分の画像データを用いているが、原理的には、1ライン分の画像データのレベル変化から、有効信号領域を判別することも可能である。しかし、有効信号領域の開始アドレスADsと終了アドレスADtの付近におけるレベル変化が明瞭でない場合には、1ライン分の画像データのみから開始アドレスADsと終了アドレスADtとを精度良く決定することが困難な場合がある。そこで、第3実施例では、図20(c),(d)に示すように、複数ライン分の画像データに関して、各画素位置の最大値を求めている。こうすれば、有効信号領域の開始アドレスADsと終了アドレスADtにおけるレベル変化を容易に見いだせるようなデータが得られる。
なお、1ライン分の画像データによって有効信号領域の開始アドレスADsと終了アドレスADtとを判別できる場合には、複数ラインの画像データに関して同番目のデータ毎に最大値を求める処理を省略することができる。
図21は、ステップT3〜T6の処理の詳細手順を示すフローチャートである。なお、破線は、繰り返しの範囲を示している。
まずステップT51では、開始アドレスADsと終了アドレスADtの検出の対象とする範囲を示すアドレスADa,ADb,ADc,ADdを設定し、これらのアドレスで規定される2つの範囲について処理を繰り返すように設定する。例えば、映像信号101の1ラインの画素の番号を0から1039として、ラインメモリ4のアドレスも0から始まっているとすれば、例えば第1の範囲(ADa〜ADb)として0から250の範囲が設定され、第2の範囲(ADc〜ADd)として800から1040の範囲が設定される。これらのアドレスADa,ADb,ADc,ADdの値は、有効信号領域の既知の長さΔADに応じた適切な値が不揮発性メモリ14に予め登録されている。従って、演算手段17は、映像信号101の水平同期信号および垂直同期信号から、映像信号101が従っている規格(VGA,SVGA等)を決定し、この規格に応じたアドレスADa,ADb,ADc,ADdの値を不揮発性メモリ14から読み出す。
次にステップT52ではラインメモリ4に記憶されている画像データをCPU8が1画素ずつ順に読み出す。ステップT53では、CPU8内部のRAM9に記憶されている最大値データと、ラインメモリ4内の対応するアドレスの画像データとを比較し、大きい方をステップT54でRAM9の同じアドレスに上書きする。これを所定数(例えば5本)のラインに関してくり返し実行することによって、各画素毎に最大値を求めることができる。
図19のステップT6では、所定数のラインに関する処理が終了したか否かが判定される。このライン数は予め設定されており、ステップT6の判定では、このライン数を満たせば終了と判定する。終了していない場合には、再びステップT3に戻り、ステップT3〜ステップT6を繰り返す。
このように、ステップT3において異なるライン番号を順次設定しながら、ステップT3〜ステップT6を複数回繰り返すようにすれば、有効信号領域の開始アドレスADsと終了アドレスADtを精度良く検出できるデータを得ることができる。例えば、黒白の市松模様(チェッカーフラグパターン)の映像を表す映像信号では、ラインによって黒と白の位置が異なるので、最終的にRAM9に記憶される最大値データは、有効信号領域においてほとんどの画素が白を示すデータになる。また、幾何学的な模様の背景の中に窓状に特定の映像を表示するような映像信号の場合には、ラインによっては有効信号領域の左端(開始位置)または右端(終了位置)付近の1画素以上が黒の場合がある。この場合にも、複数ラインの中で画面の左端または右端が黒レベル以外のラインが存在すれば、最終的にRAM9に記憶される最大値データとしては、有効信号領域の左右の端部がいずれも黒レベル(ゼロレベル)では無いデータを得ることができる。従って、このような最大値データから、以下に示す手順に従って、有効信号領域の開始アドレスADsと終了アドレスADtとを容易に検出することができる。
図19のステップT7では、RAM9から読出した最大値データを基に、有効信号領域の水平方向の開始位置(開始アドレスADs)を検出する。図22は、図19のステップT7の詳細手順を示すフローチャートである。
ステップT71では、RAM9のアドレスを開始アドレスの検出対象となる第1の範囲ADa〜ADb(図20参照)の始点ADaから終点ADbまで順次インクリメントすることが設定される。例えば、始点ADaは0であり、終点ADbは250である。なお、RAM9のアドレスは、前述のようにラインメモリ4のアドレスと一致している。
ステップT72では、右側隣接データ(即ち次のアドレスから読出したデータ)から、現在のアドレスから読出したデータを差し引いて、差分値を求める。この差分値は、現在のアドレスよりも次のアドレスのデータの方が大きければ正になり、さらにデータの変化が大きいほど大きくなる。
ステップT73では、この差分値と、あらかじめ設定しておいたスレッシュホールド値(閾値)とを比較し、差分値の方が小さければ映像信号101のブランキング302(図43)またはノイズと判定し、再びステップT71へ戻る。逆に差分値の方が大きければ、有効信号領域301が始まったと判断して、次のステップT74において、現在のアドレスAsを開始位置のアドレスADsとしてCPU8の開始位置レジスタ(図示せず)に記憶する。このように、図22の手順では、RAM9に記憶されている最大値データにおける隣接画素の差分値が一定のスレッシュホールド値以上になった位置を、有効信号領域の開始位置として判断している。換言すれば、画像データのレベル変化が一定のスレッシュホールド値以上となる位置を、有効信号領域の開始位置と判断している。
図19のステップT8では、ステップT7と同様に、RAM9から読出した最大値データを基に、有効信号領域301の終了位置が検出される。図23は、ステップT8の詳細手順を示すフローチャートである。
ステップT81ではRAM9のアドレスをADfからADgまでデクリメントしていく。ここでアドレスADfとADgは、例えば、ステップT7で求めた開始位置のアドレスADsに、有効信号領域の水平方向の画素数800の1割(=80)程度の余裕を持たせた数を加算した値とすることもできる。例えば、ADf=ADs+880、ADg=ADs+720と設定すればよい。
なお、ステップT81で設定されるアドレスの範囲ADf〜ADgは、図20(b)に示す第2の範囲ADc〜ADdと同じ範囲に設定してもよい。但し、上述のように、有効信号領域の開始アドレスADsから推定した範囲のみを処理するようにすれば、処理対象となる範囲を小さくすることができ、処理時間を短縮することができる。
図23のステップT82では、左側隣接データ(即ち1つ小さいアドレスから読出したデータ)から、現在のアドレスから読出したデータを差し引いて、差分値を求める。この差分値は、現在よりも1つ小さいアドレスのデータの方が大きければ正になり、さらにデータの変化が大きいほど大きくなる。
ステップT83では、差分値とあらかじめ設定しておいたスレッシュホールド値を比較し、差分値の方が小さければ映像信号101のブランキング302またはノイズと判定して再びステップT81へ戻る。逆に差分値の方が大きければ、有効信号領域301の終わりの点と判断して、ステップT84で現在のアドレスAeを終了位置ADtとしてCPU8の終了レジスタに記憶する。
このように、第3実施例では、画像データのレベル変化が一定のスレッシュホールド値以上となる位置を検出することによって、有効信号領域の開始位置および終了位置を特定している。
図19のステップT9では、こうして得られた有効信号領域の開始位置ADsおよび終了位置ADtから、PLL回路7に設定すべき最適逓倍数Ndが算出される。
ここで上述の処理の結果を整理すると、水平方向の有効信号領域の画素数が800の映像信号101に対して、仮の逓倍数Nkでサンプリングしてラインメモリ4に書込んだ画像データから、有効信号領域の開始アドレスADsと終了アドレスADtとが決定された。これらのアドレスADs,ADtから算出される有効信号領域の幅は、(Ae−As+1)[画素]である。一方、この映像信号に対する真の有効信号領域の幅(画素数)は、800画素であることが予め知られている。
従って、映像信号101の水平1ライン分の総画素数Ndは、次の数式9によって算出される。
ここで、演算子INTは小数点以下を切り捨てる演算を示す。この数式9は、前述した数式8と等価である。但し、数式9においては、右辺のかっこ内に0.5を加えているので、小数点以下を四捨五入する丸め演算を含んでいる。なお、この丸め演算を省略することも可能である。但し、通常は、丸め演算を行う方が総画素数Ndの精度をより高めることができる。
数式9は有効信号領域の画素数が800の場合についての式であるが、一般に、有効信号領域の画素数がΔADの場合には、次の数式10を使用することができる。
ここで得られた値Ndは映像信号101の水平総画素数に相当する。この値NdをPLL回路7の逓倍数Ndとして設定すれば、表示素子3にビートに起因する縦縞の無い映像を表示することができる。
図19のステップT10では、CPU8からPLL回路7に逓倍数設定信号703を与えることによって、ステップT9で求めた望ましい水平総画素数Ndを逓倍数として設定する。
ステップT11では、有効信号領域の開始アドレスADsから、有効信号領域の実際の開始位置を求める。開始アドレスADsは仮の逓倍数Nkに対して得られた開始位置のアドレスであるから、真の逓倍数Ndを用いる場合には補正が必要になる。即ち、真の逓倍数Ndを用いた場合の有効信号領域の開始位置のアドレスADpは、次の数式11に従って算出される。
すなわち、望ましい開始位置のアドレスADpは、仮の逓倍数Nkを用いて得られた開始位置のアドレスADsに、望ましい逓倍数Ndと仮の逓倍数Nkとの比(Nd/Nk)を乗じることによって得られる。この時、数式11のように四捨五入による丸め演算を行えば、より精度が向上する。
ステップT12では、このように求めた開始位置ADpを表示タイミング手段である表示タイミング制御回路5に設定する。これによって、表示素子3において映像信号101で表される映像が、水平方向に最適な位置に表示されることになる。
なお、第3実施例のラインメモリ4は、駆動回路2にメモリを使用する場合にはこれと兼用することができ、専用のラインメモリとして備える必要がないことは明らかである。
また、第3実施例では、有効信号領域301の水平方向の開始位置と終了位置とが検出できればよいので、ラインメモリの記憶容量としては表示素子3の水平方向の画素数よりは少なくてもよい。すなわち、少なくとも図20(b)に示す第1の範囲ADa〜ADbと、第2の範囲ADc〜ADdの画像データを記憶できる容量があればよい。従って、RAM9を、別の回路と一緒にLSIに集積することが容易である。
また、図19における種々の演算処理はクロック201と非同期に行うことができるので、CPU8には低速のものを使うことができる。
また、CPU8は、前記の演算処理や逓倍数の設定処理のための専用のプロセッサである必要はなく、表示装置の明るさやコントラスト等の画面調整用の目的で設けられたマイクロプロセッサを兼用することも可能である。
なお、上記第3実施例では、有効信号領域の開始位置と終了位置とから、有効信号領域の長さ(幅)を求めていたが、開始位置と終了位置のアドレスを独立に求めることなく有効信号領域の長さを直接求めるようにしてもよい。例えば、1ライン上の各画素のレベル変化を順次調べてゆき、有効信号領域の開始位置から画素数をカウントアップを始め、終了位置においてカウントアップを停止することによって、有効信号領域の長さを求めることも可能である。
上述の第3実施例によれば、特別な専用のハードウエアを用意することなく、水平方向のブランキングと有効信号領域の画素数の合計の水平総画素数Ndが不明な場合にも、サンプリングされた画像データを分析することによって、水平総画素数Ndを自動的に求めることができる。そして、この総画素数Ndを用いて水平同期信号の周波数を逓倍することによって、ビートによる縦線が現れないように映像をサンプリングするためのドットクロックを生成することができる。
D.第4実施例:
図24は本発明の第4の実施例における処理手順を示すフローチャートである。第4実施例では、第3実施例と同じ図17の映像表示装置を利用する。まずステップT101では、CPU8がPLL回路7内の分周器64に仮逓倍数Nkを設定する。仮逓倍数Nkは、市場の代表的なパーソナルコンピュータ等の機種の複数の値をあらかじめプリセットしておき、水平同期信号と垂直同期信号の周波数や極性を判別して、接続された機種を特定してプリセット値を読出すことにより実施すればよい。
ステップT102では、CPU8が書込タイミング制御回路6に指示を与えて、ラインメモリ4にどのライン番号のデジタル映像信号110を書込むかを設定する。
ステップT103では、CPU8より書込みタイミング制御回路6に書き込みアーム信号701を送る。書込みタイミング制御回路6からは、デジタル映像信号110がステップT102で設定したライン番号に一致したタイミングで、書込みイネーブル信号502が出力され、これに応じてラインメモリ4に1ライン分のデータが記憶される。
ステップT104では、ラインメモリ4に記憶された画像データを読出し、ハイパスフィルタをかけて低域成分を除去することによって、画像データからビートの周波数成分を分離しやすくなるようにする。フィルタ処理後の画像データは、RAM9の対応するアドレスに書込まれる。このハイパスフィルタはコンボリューション演算で実現でき、例えば(−0.25、0.5、−0.25)というフィルタ係数を用いることができる。このコンボリューション演算は、現在のアドレスの画像データに係数0.5を掛け、前後のアドレスの画像データには係数−0.25を掛けて3つのデータの和をとり、現在のアドレスの新たな画像データとすることを意味する。
ステップT105では、RAM9に記憶された画像データに対して以下に説明する非線形演算を実行する。図25は、非線形演算の内容を示す説明図である。図25(a)の黒丸は、アナログ映像信号101が2画素ごとに白と黒に交互に変化する画像を表す信号である場合に、適切な周波数とは異なる周波数のドットクロック201でサンプリングした画像データを示している。図25(a)の垂直方向の細線は画素の繋がりを示し、太線は表示素子3に表示された画像において観察されるビート801を示している。なお、図25のデータレベルは、わかりやすいようにアナログに変換して示している。
実際の画像データは、サンプリングデータ802の黒丸を順次たどるような変化をしているが、表示素子3に表示すると、ビート801の太線で示されるような大きな周期の輝度分布が目立ってしまう。
図25(a)のビート801の波の数は、適切なドットクロック201を再生するための望ましい逓倍数Ndと、仮の逓倍数Nkとの差に等しい。従って、図25(a)のサンプリングデータ802から、ビート801の数(または周波数)を抽出したい。
ところが、図25(a)を見ればわかるように、ビート801を生じさせているのは隣接した画素位置のデータではなく、離れた画素位置にあるデータである。従って、サンプリングデータ802に単純にローパスフィルタをかけると、サンプリングデータ802が有している高周波成分が低減するとともに、ビート801の成分も低減してしまう。
そこで、ステップT105では、図25(a)に示すサンプリングデータ802に非線形演算を行って、図25(b)に示すような、ビートの検出をしやすいデータを生成している。図26は、ステップT105の非線形演算に用いられる関数を示すグラフである。図26(a)は、以下の数式12に示す関数を示している。
ここで、yは出力(演算後のデータ)、xは入力(演算前のデータ)である。数式12による非線形演算は、各データのレベルを2倍にするとともに、マイナスレベルのデータの符号をプラスに変更する処理を意味している。なお、数式12は、入力0の片側では入出力関係がそれぞれ直線的であるが、全体としては直線的ではない。この明細書において「非線形」とは、このように入出力関係が全体として非直線的であることを言う。図25(b)に示す非線形演算後のデータ(黒丸で示す)は、数式12による非線形演算を行った結果である。
図25(b)に示す非線形演算後のデータに対して、ステップT106でローパスフィルタをかけることにより、図25(b)に平均値803として示したようなビート成分を取り出すことができる。このローパスフィルタは、前記のステップT104の場合のハイパスフィルタと同様に、コンボリューション演算で実現できる。図25(b)において平均値803で示されるビート成分は、図25(a)におけるビート801の群の数(波の数)に一致しており、周波数としてはビート801の2倍となっている。
ステップT105における非線形演算には、次の数式13および図26(b)で与えられる二次関数を用いることもできる。
図25(a)に示すビート801の2つの波形の一方がx=cosθで表される場合には、数式13の関数を用いた非線形演算後のデータは、y=2(1+cos2θ)となる。すなわち、二次関数を用いた非線形演算後のデータyには、ビート801の2倍の周波数成分が含まれるだけであり、不要な高調波成分が現れないという利点がある。
なお、図25(a)に示すサンプリングデータ802を変換するための非線形演算に使用される変換関数は、所定の入力レベルを中心として出力レベルが両側に対称で単調な種々の変換関数を用いることができる。数式12および図26(a)に示される第1の変換関数と、数式13および図26(b)に示される第2の変換関数は、いずれのゼロレベルの両側に対称で単調な関数である。なお、変換関数の対称の中心となる入力レベルは、ゼロレベル以外のレベルにも設定することが可能である。例えば、サンプリングデータ802の最大値および最小値の平均を、変換関数の対称の中心とすることも可能である。
この第4実施例では、後述するように、図25(b)に示すデータを高速フーリエ変換することによって、ビート成分の周波数(ビート数)を求める。ビート数は、アナログ映像信号101の水平総画素数NdとステップT101で設定された仮逓倍数Nkとの差に等しい。仮逓倍数Nkの値は、代表的な機種についてプリセットしてあるので、ビート数は通常は約20〜30以下の値である。高速フーリエ変換(FFT)によってビート数を求める場合には、ビート数の2倍以上のデータを用いてFFTを行えばよい。ビート数が20〜30程度の場合には、FFTでの演算データの数は64または128あれば十分である。そこで、図24のステップT107では、図25(b)のデータをサブサンプリングして、データ点数を、ビート数を求めることができる程度のデータ数に低減する。アナログ映像信号101をサンプリングした際のデータ数(すなわち仮逓倍数Nk)は約1040個である。1040個のデータを16:1の割合でサブサンプリングすれば、65個のデータが得られ、また、8:1の割合でサブサンプリングすれば、130個のデータが得られる。従って、この実施例では、16:1または8:1の割合でサブサンプリングを行えば、FFTでビート数を求めるために十分なデータ数が得られる。なお、サブサンプリングは必ずしも行う必要はないが、サブサンプリングを行うことによって、FFTの演算時間を短縮することができる。
図24のステップT108では、サブサンプリングしたデータに対してFFT演算を行う。ここでのFFTの出力は、2の整数乗を1周期とする単位で現れる。この実施例においては、FFTの出力は、1024画素を1周期とする単位で現れるが、元のアナログ映像信号101は1040画素を1周期としているので、FFT出力は1024/1040だけずれている。しかし、このずれは、わずかなので無視できる。なお、VGA等の信号の場合には、このずれを補正すればよい。
ステップT109では、FFTのスペクトルが最大となる周波数を求める。この周波数は、ビート数Nb(水平1ラインの総画素数Ndと仮逓倍数Nkとの差)の2倍の値を示している。
ステップT110では、逓倍数設定手段18が仮逓倍数Nkをビート数Nbによって補正することにより最適逓倍数を求める。そして、逓倍数設定信号703をPLL回路7の分周器64に与えることによって最適逓倍数を設定する。ここで、「最適逓倍数」とは、ビートのない画像データをサンプリングする望ましいドットクロック201を生成するための逓倍数を意味している。
なお、仮逓倍数Nkは、最適逓倍数に対してどちらにずれているかは不明である。すなわち、ステップT109で求めたビート数Nbを、仮逓倍数Nkに加算すべきなのか、または、減算すべきなのかは不明である。そこで、例えばまず、仮逓倍数Nkにビート数Nbを加算した逓倍数(Nk+Nb)を分周器64に設定し、ステップT108、ステップT109を再度実施する。この逓倍数(Nk+Nb)が最適逓倍数でなければ、始めに求めたビート数Nbの2倍に相当する周波数にFFTのスペクトルのピークが現れる。この場合には、仮逓倍数Nkからビート数Nbを減算した数(Nk−Nb)を最適逓倍数として分周器64に設定すればよい。
このように、第4実施例では、仮逓倍数Nkを用いて生成されたドットクロックでサンプリングされた画像データに生じているビート数(すなわちビートの周波数)を高速フーリエ変換で求めることによって、ビートが発生しない望ましい、画像データをサンプリングするための逓倍数Ndを求めている。この結果、ビートによる縦縞の無い画像を表示素子3に表示することができる。
E.第5実施例:
図27は、第5実施例の手順を示すフローチャートである。第5実施例では、第3実施例および第4実施例と同じ図17の映像表示装置を利用する。図27のステップT101〜T106は、図24に示す第4実施例の手順と同じである。第5実施例では、高速フーリエ変換の代わりに、ステップT121においてコムフィルタ(くし形フィルタ)を用いた周波数分析を行うことによってビート数を求めている。
図28は、ステップT121で使用されるコムフィルタ群の等価回路を示すブロック図である。このコムフィルタ群は、5つのコムフィルタを有しており、遅延量がC(j)(j=0〜3)の4つの遅延回路820〜823と、4つの加算回路830〜833とを備えている。
j番目のコムフィルタの遅延量C(j)は、Nを自然数とすると、次の数式14で与えられる。
このコムフィルタは、コンボリューション演算で実現することができる。なお、自然数Nの値は、最大の遅延量C(3)が1ライン分のサンプリングデータのデータ数(すなわち仮逓倍数Nk)の半分以下になるように設定される。第5実施例ではサンプリングデータのデータ数は1040なので、N=65に設定される。また、通過帯域のピーク周波数は、仮逓倍数Nkを遅延量C(j)の2倍で除した値となる。
ステップT122では、各コムフィルタの出力Q(0)〜Q(3)を積分し、どのコムフィルタに出力が現れているかを検出して、ビート数Nbを求める。なお、第5実施例では2の整数倍の通過帯域を有するコムフィルタを組み合わせて使用したが、他の仕様のコムフィルタを組み合わせてもよい。ここで求めたビート数Nbが、最適逓倍数Ndと仮逓倍数Nkの差となる。
以上のように、第5実施例では、コムフィルタを用いて1ライン分のサンプリングデータに含まれるビート数(すなわちビートの周波数)を求め、このビート数Nbで仮逓倍数Nkを補正することによって、望ましい逓倍数Ndを決定する。この結果、第4実施例と同様に、ビートの無い画像を表示素子3に表示することが可能である。
なお、上述した第4実施例では高速フーリエ変換を用いて周波数分析を行い、また、第5実施例ではコムフィルタを用いて周波数分析を行ったが、他の種々の周波数分析手法を用いてサンプリングデータ中のビート数を決定するようにすることも可能である。
F.第6実施例:
図29は、第6実施例によるドットクロックの周波数調整を行う映像表示装置を示すブロック図である。この映像表示装置は、図17に示す映像表示装置の遅延回路10の後段に位相制御回路20を追加した構成を有している。
図30は、位相制御回路20の最も簡単な一例を示すブロック図である。この位相制御回路20は、1つのEX−OR回路11で構成されている。EX−OR回路11の片側の入力には遅延回路10から出力されたクロック201が接続されており、他方の入力にはCPU8から与えられた位相制御信号704が接続されている。位相制御信号704の入力が0の場合には、入力クロック201がそのまま出力クロック202として出力される。一方、位相制御信号704の入力が1の場合には、入力クロック201が反転して出力クロック202として出力される。換言すれば、位相制御信号704によって、出力クロック202の位相がπだけ変更される。この出力クロック202が、図29の映像表示装置におけるドットクロックとして使用される。
図31は、第6実施例における演算手段17と逓倍数設定手段18による処理の手順を示すフローチャートである。ステップU1からステップU3は、第4実施例(図24)のステップT101〜T103と同じである。すなわち、ステップU1では、分周回路64に仮逓倍数Nkが設定される。ステップU2では、ラインメモリ4に書き込まれるラインのライン番号が書込みタイミング制御回路6に設定される。ステップU3では、ラインメモリ4に1ラインの画像データが記憶される。
ステップU4では、ラインメモリ4から画像データPD(AD)を読み出してRAM9に記憶する。ここで、ADはラインメモリ4のアドレスである。RAM9は、ラインメモリ4のアドレスと1:1に対応するアドレスを有している。ラインメモリ4に記憶されている画像データPD(AD)は、望ましい逓倍数とは異なる仮の逓倍数Nkで得られたドットクロックを用いてサンプリングされたデータである。従って、この画像データPD(AD)は、望ましいドットクロックを用いてサンプリングされた望ましい画像データからは、位相がずれたデータが存在するはずである。
図32は、ラインメモリ4のアドレスADと、画像データPD(AD)の位相のずれとの関係を示すグラフである。ここでは、アナログ映像信号101に対応する真のドットクロックの1ライン当たりの総画素数(すなわちPLL回路7に設定すべき望ましい逓倍数Nd)は1040であると仮定し、また、PLL回路7に設定された仮逓倍数Nkを1034と仮定する。仮逓倍数Nkと望ましい逓倍数Ndとに差がある時には、望ましいドットクロックで得られる望ましい画像データと、実際のドットクロック202で得られた画像データPD(AD)との相対的な位相は、図32に示すように、画像データPD(AD)のアドレスADに比例して変化する。この実施例では、望ましい逓倍数Nd(=1040)と仮逓倍数Nk(=1034)との差が6なので、望ましい画像データと実際の画像データPD(AD)との相対的な位相は、1ラインで6周期分(12π)だけずれることになる。なお、図32はアドレス0における位相のずれを基準として描いている。
図33(a)は、図32の位相のずれを、アドレスのずれに置き換えたグラフである。ここで、2πの位相が、1アドレスに相当する。図33(a)の縦軸は、望ましい画像データの仮想的なアドレスと、実際の画像データPD(AD)のアドレスとの間のずれを意味している。ラインメモリ4のアドレスADが0から始まっているとすると、0から1033の実際のアドレスに、本来ならば0から1039のアドレスに書き込まれるべき画像データが書込まれている。従って、図33(a)において実線で示すように、実際のアドレスADに比例して、アドレスの相対的なずれが0から6まで変化する。
図34は、第6実施例において処理される種々の画像データを示す説明図である。図34(a)は、図31のステップU4においてRAM9に記憶された画像データPD(AD)のレベル変化を示している。この画像データPD(AD)は、実際のパーソナルコンピュータが生成した文字を表示するためのデータをサンプリングしたものであり、ビートが生じていることがわかる。このビートは、望ましい逓倍数Ndと仮逓倍数Nkとの差の数だけ生じるが、図34(a)では有効信号領域の部分だけが見えている。ブランキングまで含んだビートの数を調べることによって、水平方向の総画素数、すなわち最適逓倍数Ndを決定することができる。
図31のステップU5では、CPU8から位相制御回路20に位相制御信号704を送り、ドットクロック202の位相を反転させる。ステップU6ではステップU3と全く同様に、ラインメモリ4に1ラインの画像データを記憶させる。次にステップU7では、ステップU4と同様に、ラインメモリ4から画像データPE(AD)を読み出してRAM9に記憶する。図34(b)は、ステップU7でRAM9に記憶された画像データPE(AD)のレベル変化を示している。
図33(b)には、ステップU7で得られた画像データPE(AD)に関するアドレスのずれが示されている。同じアドレスADs1で比較すると、図33(a)の点203における画像データPD(AD)は、図35(b)のドットクロックの立ち上がりにおいて、映像信号101の安定領域をサンプリングして得られたデータである。一方、図33(b)の点204における画像データPE(AD)は、図35のドットクロックの立ち上がりにおいて、映像信号101の過渡領域をサンプリングして得られたデータである。図33(a),(b)に示す他のアドレスADs2では、上述とは逆に、図33(a)の点205における画像データPD(AD)が映像信号101の過渡領域をサンプリングして得られたデータであり、図33(b)の点206における画像データPE(AD)が安定領域をサンプリングして得られたデータである。
図34(a)に示す画像データPD(AD)において、データレベルが交差しているように見えるのは、図33(a)の点205のように、映像信号101の過渡領域をサンプリングしているので、振幅が低下しているからである。図34(b)の画像データPE(AD)についても同様である。データレベルが交差している部分は、表示素子3では縦線のようなノイズとして見える。
図31のステップU8では、前記の2つの画像データPD(AD),PE(AD)の相関演算により、1ライン中のビート数を求める。図36は、ステップU8の詳細手順を示すフローチャートである。
ステップU21では、2つの画像データPD(AD),PE(AD)をそれぞれ2値化して、2値データPF(AD),PG(AD)を生成する。この2値化処理は、例えば画像データの最大振幅の1/2のところにスレシュホールドを設け、これを越えた画像データに1を割り当て、これ未満の画像データに0を割り当てることによって実行できる。
ステップU22では、これら2つの2値データPF(AD),PG(AD)の排他的論理和(EX−OR)をとる。すなわち、各アドレスADについて、2つの2値データPF(AD),PG(AD)が一致していれば0が出力され、異なれば1が出力される。つまり、アナログ映像信号101の同じ画素のデータが画像データPD(AD),PE(AD)において同じアドレス位置に書込まれていれば、そのアドレスにおける排他的論理和出力は0となる。一方、別のアドレスに書込まれている場合には、排他的論理和出力は1となる。但し、後者の場合にも、アナログ映像信号の隣接画素のデータが偶然に一致している時には、その排他的論理和出力は0となる。
図37は、2つの2値データPF(AD),PG(AD)のレベル変化と、それらの排他的論理和出力との関係を示す説明図である。図37(a)は前述した図32と同じように、位相のずれとアドレスADとの関係を示すグラフであるが、図37(a)では位相が0〜2πの範囲だけを示している。図37(b)はアナログ映像信号101のレベル変化を示している。ここでは、安定領域におけるレベルが比較的高い(すなわち、輝度が高い)画像の例を用いている。図37(c)は、画像データPD(AD)のサンプリングタイミング(クロックの立ち上がり)と、この画像データPD(AD)を2値化して得られた2値データPF(AD)の値とを示している。
図37(c),(d)に示されている2つのドットクロック波形は、位相がπだけずれている。図37(e)の最初の排他的論理和出力は、映像信号の異なる画素をサンプリングして得られた2値データPF(AD),PG(AD)から得られているので、その値は1となる。一方、図37(e)の2番目の排他的論理和出力は、同じ画素をサンプリングして得られた2値データPF(AD),PG(AD)から得られているので、その値は0となる。図37(e)の3番目の排他的論理和出力も同様である。図37(b)と(c)を比較すれば解るように、映像信号101の位相と、ドットクロックの位相とは、アドレスADに比例して次第にずれてゆく。従って、2値データPF(AD),PG(AD)の相関(この例では排他的論理和出力)も、アドレスADとともに次第に変化する。図37(a)に示すような、2πの位相ずれに相当するアドレス範囲の始点と終点では、映像信号101(図37(b))とドットクロック(図37(c),(d))の相対関係が一致しており、一方、その間のアドレスでは両者の相対関係がアドレスADとともに直線的に変化する。従って、図37(e)に示す排他的論理和出力の1と0のパターンは、映像信号のパターンによって異なるが、少なくとも画像データPD(AD)(またはPE(AD))に含まれているビート成分を含むように現れる。
なお、映像信号101と水平同期信号102の位相関係は不定であるので、水平同期信号102から生成されるドットクロック202とデジタル映像信号110の相対的な位相も不定である。従って、画像データPD(AD),PE(AD)のアドレスのずれは、前述した図33(a),(b)に破線で示したように、前後に1だけずれることがある。
そこで、図36のステップU22においては、2つの2値データPF(AD),PG(AD)の排他的論理和を取る際に、第2の2値データPG(AD)として、第1の2値データPF(AD)と同じアドレスのデータPG(AD)と、1つ前のアドレスのデータPG(AD−1)と、1つ後のアドレスのデータPG(AD+1)とを使用する。すなわち、以下の数式15に示す3つの排他的論理和出力A(AD),B(AD)C(AD)が求められる。
なお、これらの排他的論理和出力A(AD),B(AD)C(AD)は、2つの画像データPD(AD),PE(AD)の相関を示すデータなので、以下では「相関データ」とも呼ぶ。
図34(c)〜(e)には、これらの3種類の排他的論理和出力A(AD),B(AD),C(AD)の一例が示されている。図34(c)の出力A(AD)では、図34(a),(b)に示す画像データPD(AD)、PE(AD)のビートとは無関係なデータになっており、画像データPD(AD)、PE(AD)が偶然に一致したところでのみ0レベルが出力されている。
一方、図34(d),(e)に示す出力B(AD),C(AD)では、画像データPD(AD),PE(AD)のビートに対応した位置に、0レベルになる部分が現れている。1レベルの部分は、0レベルと同じ周期で出る傾向にはあるが、偶然にデータが一致するところがあるので必ずしも連続した部分としては現れず、1レベルの部分の途中に0レベルが時々現れている。
2つの画像データPD(AD),PE(AD)に含まれるビートの数は、図34(d),(e)に示す2つの排他的論理和出力B(AD),C(AD)の少なくとも一方を分析して、その0レベルと1レベルの出現の周期(または回数)を求めることによって決定できる。特に、2つの排他的論理和出力B(AD),C(AD)の両方を用いると、以下のように比較的簡単にビートの数(周波数)を検出することができる。
図36のステップU23では、CPU8内の図示しないレジスタを使用し、2つの排他的論理和出力B(AD),C(AD)を用いたトグル操作を行った結果をレジスタに登録する。すなわち、アドレスADを0からインクリメントしていき、2つの排他的論理和出力B(AD),C(AD)の一方が立上がったらレジスタをセットし、他方が立上がったらレジスタをリセットすることによって、ビートの検出を行う。
ところで、一般には、前述したステップU22で得られた3つの排他的論理和出力A(AD)、B(AD)、C(AD)のうちで、いずれがビートに対応する0と1のパターンを有するかは不明である。そこで、トグル操作の結果を登録するためのレジスタとしては、2つのレジスタを準備することが好ましい。図34(f)に示す第1のレジスタ出力Q1(AD)は、第1と第2の排他的論理和出力A(AD),B(AD)の立上がりで交互に反転する。一方、図34(g)に示す第2のレジスタ出力Q2(AD)は、第2と第3の排他的論理和出力B(AD),C(AD)の立上がりで交互に反転する。
図34(g)に示すように、第2のレジスタ出力Q2(AD)にはビートに対応するパターンを有するデータが得られている。図36のステップU24では、2つのレジスタQ1出力(AD),Q2(AD)のデータレベルの反転点の周期から、ビートの周期を決定する。
図38は、第2のレジスタ出力Q2(AD)においてレベルが反転したアドレスを示す説明図である。反転点は#1〜#11の11箇所であるが、最初の反転点#1は有効信号領域の始まりのために反転したものであり、無効な反転点であるので除外し、残りの10箇所の反転点の相互の距離の平均値を求める。即ち、図38の例では、反転点の距離の平均値は(853−87)/9=85.1となる。この値は、ビートの半周期に相当する。
ところで、図34(f),(g)の2つのレジスタ出力Q1(AD),Q2(AD)のうちで、いずれがビートに対応したパターンを有しているか、を決定する必要がある。図34(f),(g)を観察すれば理解できるように、レジスタ出力の波形の特徴として、ビートの周期で変化するレベルパターンを有している場合には、レベルの平均値が0.5に近くなる。一方、ビートに無関係なパターンを有している場合には、レジスタのセットまたはリセットのいずれかが非常に多く入るので、レベルの平均値は1または0に近い値となる。
そこで、図36のステップU25では、2つのレジスタ出力Q1(AD),Q2(AD)についてレベルの平均値をそれぞれ求め、0.5に近い方のレジスタ出力を採用する。図34(f),(g)に示す例では、第1のレジスタ出力Q1(AD)ではレベルの平均値が0.91であり、第2のレジスタ出力Q2(AD)ではレベルの平均値は0.51になる。従って、第2のレジスタ出力Q2(AD)が、ビートに対応したレベルパターンを有しているものと決定される。そして、第2のレジスタ出力Q2(AD)の反転点の距離の平均値(85.1)がビートの1/2周期を示しているものとして採用される。
なお、レジスタ出力Q1(AD)またはQ2(AD)にビートの周期に対応する波形が現れている場合にも、アドレスのずれが生じる過渡的な部分において、ビートの周期の1/10以下程度の周期でレベル反転が生じるときがある。そのような場合を考慮して、ステップU24で仮に反転点の間の距離の平均値を求め、その1/5程度より短いアドレスの差分ではレジスタのセット、リセットの動作を無効にするようなマスクを設定し、再度ステップU23、ステップU24を実施すればよい。こうすることにより、ビート周期の誤検出を避けることができる。
図31のステップU9では最適逓倍数Ndを演算する。この実施例では、仮逓倍数Nkは1034であり、ステップU8で求めた反転点間の距離の平均値は、85.1である。反転間の距離の平均値はビートの半周期に相当するアドレスの差分である。従って、水平総画素数に相当する1周期(すなわち水平1ライン)でのビート数は、1034/(85.1*2)=6.08となる。但し、ビート数は必ず整数となるから、求めるビート数は6である。一般には、最適逓倍数Ndは、以下の数式16で求められる。
ここで、Nbはビート数、Lavは反転点間の距離の平均値である。また、INT[]はかっこ内を整数化(切り捨て)する演算を示している。かっこ内の0.5は、四捨五入の演算を行うために付加されている。なお、四捨五入を行わずに、単に切り捨てによる整数化を行っても良い。
望ましい逓倍数Ndは、仮逓倍数Nk(=1034)をビート数Nb(=6)で補正(加算または減算)することによって得られる。上記の例では、望ましい逓倍数は1040または1028となる。ステップU10では、このようにして求めた最適逓倍数NdをPLL回路7の分周回路64に設定する。
なお、ステップU9では、望ましい逓倍数Ndに対して2つの値(1028,1040)が得られるので、まず、いずれか一方をPLL回路7に設定して、ステップU2〜ステップU9を再度実施する。この時、逓倍数が不適当であれば、ビート数が2倍になるので、どちらが正しい値であるのかの判別は容易である。一方の逓倍数の値が不適当な場合には、他方の逓倍数の値をPLL回路7に設定すればよい。
上述したように、第6実施例によれば、位相を反転させた2つのドットクロックでそれぞれサンプリングされた2つの画像データの相関演算を行うことによって、1ラインに含まれるビート数(ビート周期)を得ることができる。このビート数で仮逓倍数を補正することによって、映像信号101をサンプリングする適切なドットクロックを得るための望ましい逓倍数Ndを決定することができる。
G.第7実施例:
第7実施例は、図31に示すステップU1〜ステップU7,U9の処理内容は第6実施例と同じであり、ステップU8の詳細手順が異なるだけである。前述したように、ステップU8では、互いに位相の異なる2種類のドットクロックでそれぞれサンプリングされた2つの画像データPD(AD),PE(AD)の相関演算を行うことによって、ビート周期のアドレスの数を求めている。
図39は、第7実施例におけるステップU8の詳細手順を示すフローチャートである。ステップU31では、2つの画像データPD(AD),PE(AD)の差分の絶対値をとる。すなわち、各アドレスADにおいて、2つの画像データPD(AD),PE(AD)の値が一致していれば0が出力され、一致していなければ、最大でデジタル映像信号110のフルスケールの値が出力される。前述した図33(a),(b)を比較すればわかるように、アドレスのずれの階段状の変化は、2つの画像データPD(AD),PE(AD)において異なる位置に生じている(具体的には、アドレスのずれの1/2に相当する期間だけずれている)。また、両者のアドレスのずれ量が一致する部分が、ビートの周期と同じ周期で現れる。従って、2つの画像データPD(AD),PE(AD)の差分は、ビートの周期で0になる。
なお、第6実施例においても述べたように、アナログ映像信号101と水平同期信号102の位相関係は不定であるので、ドットクロック202とデジタル映像信号110の相対的な位相も不定である。従って、画像データPD(AD),PE(AD)のアドレスのずれは、図33(a),(b)に破線で示したように、前後に1だけずれることがある。
そこで、図39のステップU31では、2つの画像データPD(AD),PE(AD)の差分を取る際に、第2の画像データPE(AD)として、第1の画像データPD(AD)と同じアドレスのデータPE(AD)と、1つ前のアドレスのデータPE(AD−1)と、1つ後のアドレスのデータPE(AD+1)とを使用する。すなわち、以下の数式17に示す3つの差分データF(AD),G(AD),H(AD)が得られる。
次にステップU32ではステップU31で求めた3つの差分データF(AD),G(AD),H(AD)のデータを2値化して、3つの2値データA’(AD),B’(AD),C’(AD)を求める。
こうして得られた3つの差分データA’(AD),B’(AD),C’(AD)は、第6実施例で得られた3つの排他的論理和出力データA(AD),B(AD),C(AD)と等価な相関データである。すなわち、3つの差分データA’(AD),B’(AD),C’(AD)は、前述した図34(c),(d),(e)に示すものとほぼ同じパターンを有している。
図39のステップU33,U34,U35は、図36に示す第6実施例のステップU23,U24,U25と同じである。すなわち、2組の差分データ{A’(AD),B’(AD)},{B’(AD),C’(AD)}のそれぞれでトグル操作を行ない、2つのレジスタにその結果を記憶する。そして、レジスタ出力Q1(AD),Q2(AD)のデータパターンの反転点の距離の平均値から、ビート数Nbを決定する。
以上の説明から解るように、第7実施例は、ステップU31において、2つの画像データPD(AD),PE(AD)の相関(すなわち差分)を取った後で、相関を示すデータF(AD),G(AD),H(AD)を2値化しているのに対して、前述した第6実施例(図36)では2つの画像データの2値化処理(ステップU21)の後で、2つの2値データの相関を取る演算(ステップU22の排他的論理和)を行っている。換言すれば、第6実施例と第7実施例とは、相関演算(差分や排他的論理和などの狭義の相関演算)と、2値化処理との順序を逆にしたものであり、ほぼ等価な相関演算処理(2値化を含めた広義の相関演算)を実現していると見ることができる。この例からも解るように、2つの画像データPD(AD),PE(AD)の相関を取る演算としては、上述したもの以外の種々の処理を採用することができる。但し、上述した排他的論理和や差分を用いた相関演算は、演算が単純なので、短時間で演算結果を得ることができるという利点がある。
また、第6および第7実施例では、図34(c),(d),(e)に示す3つの相関データA(AD),B(AD),C(AD)の2つの組合せを用いてビート数Nbを決定していたが、3つの相関データA(AD),B(AD),C(AD)のうちの少なくとも1つを用いてビート数Nbを決定することも可能である。
例えば、まず、第1の相関データA(AD)を1ライン分の2値画像データと見なして、1レベルの画素を所定の幅(例えば10画素)だけ太らせ処理した後に、同じ幅で細らせ処理を行うことによって、細かなレベル変動を消去することができる。こうして得られた相関データに基づいて、前述した図36のステップU24と同様にレベルの反転点間の平均距離を求めることによって、ビート数Nbを決定することができる。第2および第3の相関データB(AD),C(AD)についても、同様にしてビート数Nbを求めることができる。この時、第1の相関データA(AD)から確からしいビート数Nbが得られる場合(例えば、太らせ処理および細らせ処理後の相関データの平均値が約0.5である場合)には、第2と第3の相関データB(AD),C(AD)についての処理を省略することができる。
ビート数Nbを求める他の方法では、まず、第1の相関データA(AD)において、所定の間隔(例えば10画素)以下のレベル変動を無視することによって、この所定の間隔以上のレベル変動のみを抽出する。この処理は、広義のフィルタリング処理の一種である。こうして得られた相関データに基づいて、前述した図36のステップU24と同様にレベルの反転点間の平均距離を求めることによっても、ビート数Nbを決定することができる。
上述した第6および第7実施例によれば、1ラインの総画素数(即ち水平方向のブランキングと表示領域の画素数の合計の水平総画素数)が不明でも、画像データを処理することによって最適逓倍数を自動的に決定し、この最適逓倍数を用いて望ましいドットクロックを生成することができる。このドットクロックを用いてアナログ映像信号101をサンプリングすれば、ビートによる縦線が現れたり情報が欠落したりすることのない画像を表示することができる。
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
(1)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
(2)この発明は、映像信号101に応じて表示素子3に映像を表示する際に使用されるドットクロックの調整に限らず、一般に、映像信号のためのドットクロック信号の調整を行う種々の場合に適用することができる。例えば、映像信号をメモリに記憶する際に使用されるドットクロック信号の調整にも適用することができ、また、映像信号に応じて映像をプリンタに出力する際に使用されるドットクロック信号の調整にも適用することができる。
(3)第1実施例および第2実施例で説明したドットクロックの位相調整処理と、第3実施例ないし第7実施例で説明したドットクロックの周波数調整処理は、それぞれ別個に実行することもでき、また、組み合わせて実行することもできる。位相調整処理と周波数調整処理とを組合せる場合には、まず、周波数調整処理を行って望ましい周波数を有するドットクロックを生成し、その後、位相調整処理を行うことが好ましい。こうすれば、ドットクロックでサンプリングされた画像データに基づいて、ドットクロックの適切な周波数と位相とをそれぞれ自動的に設定することができる。
(4)なお、ドットクロックの望ましい位相は、装置の環境(温度等)に依存する。特に、装置の起動時には装置環境が変化しやすいので、ドットクロックの望ましい位相もこれに応じて変化する。従って、装置の起動後の一定時間(例えば30分間)は、位相調整処理を一定時間(例えば10分間)毎に自動的に行うようにしてもよい。こうすれば、装置環境の変化に応じてドットクロックの位相を自動的に再調整することができる。