以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
図1は、本発明を適用したシンク機器の一実施の形態の構成例を示すブロック図である。
図1において、シンク機器11は、3つのHDMI端子12(1)乃至HDMI端子12(3)、信号処理部13、メモリ14、および制御部15から構成される。
HDMI端子12(1)乃至HDMI端子12(3)は、HDMI規格に準拠した接続手段であり、図示しないHDMIケーブルを介して、図示しないソース機器をシンク機器11にそれぞれ接続する。
信号処理部13は、制御部15の制御に従って、HDMI端子12(1)乃至HDMI端子12(3)にそれぞれ接続されているソース機器との間で送受信される信号を処理する。例えば、信号処理部13は、コンテンツのデータを伝送する信号であるTMDS(Transition Minimized Differential Signaling)信号がソース機器から送信されてくると、TMDS信号を受信し、図示しない後段の回路(例えば、復号回路や表示回路など)に供給する。また、信号処理部13は、HDMI端子12(1)乃至HDMI端子12(3)を介してソース機器に出力する制御信号のHigh/Lowを切り替える制御を行う。
また、信号処理部13は、スイッチング機能を備えており、HDMI端子12(1)乃至HDMI端子12(3)を介して接続される複数のソース機器のうちの任意のソース機器が、シンク機器11にコンテンツを供給するように入力の切り替えを行う。つまり、信号処理部13がスイッチング機能を備えることにより、シンク機器11は、複数のHDMI端子を搭載することができる。
メモリ14は、制御部15からのリード/ライトが可能な不揮発性のフラッシュメモリ(例えば、EEPROM(Electronically Erasable and Programmable Read Only Memory))などからなる。メモリ14は、制御部15が実行するプログラムや、制御部15の処理に必要なデータを記憶する。
例えば、メモリ14は、シンク機器11にコンテンツを入力するソース機器を切り替える入力切替処理(後述する図4の処理)でホットプラグ信号をLowにして待機する待機期間を示す情報(以下、適宜、ホットプラグ信号のLow期間T_LOWと称する)を、HDMI端子12(1)乃至HDMI端子12(3)ごとに記憶している。即ち、メモリ14は、HDMI端子12(1)乃至HDMI端子12(3)それぞれに対応付けて、ホットプラグ信号のLow期間T_LOW(1)乃至Low期間T_LOW(3)を記憶している。
また、メモリ14には、ホットプラグ信号のLow期間T_LOWをHDMI端子ごとに最適化するLow期間最適化処理(後述する図3の処理)が行われる前の初期状態において用いられるホットプラグ信号のLow期間T_LOWの初期値t(init)が記憶されている。初期値t(init)としては、十分に長い時間(例えば、1000msec)が設定されている。
制御部15は、CPU(Central Processing Unit)、ROM(Read Only Memory),RAM(Random Access Memory)などを内蔵している。制御部15では、CPUが、ROMに記憶されているプログラム、あるいは、メモリ14から読み出してRAMにロードしたプログラムを実行することにより、シンク機器11の各部を制御する処理が行われる。
例えば、制御部15は、シンク機器11にコンテンツを入力するソース機器を切り替える入力切替処理において、信号処理部13を制御して、HDMI端子のホットプラグ信号の出力(High/Low)を切り替えさせる。
具体的には、ユーザが、図示しない操作部を操作して、例えば、HDMI端子12(2)に接続されているソース機器がシンク機器11にコンテンツを供給するように、HDMI端子を選択する操作を行ったとする。このとき、制御部15は、HDMI端子12(2)に対応付けてメモリ14に記憶されているホットプラグ信号のLow期間T_LOW(2)msecだけ、HDMI端子12(2)のホットプラグ信号の出力をLowとするように信号処理部13を制御する。
図2は、入力切替処理においてHDMI端子12(2)が選択されたときの、ホットプラグ信号の変化を示す図である。
図2には、HDMI端子12(1)乃至HDMI端子12(3)においてそれぞれ出力されるホットプラグ信号Hotplug(1)乃至ホットプラグ信号Hotplug(3)が示されている。制御部15は、HDMI端子12(1)乃至HDMI端子12(3)それぞれに接続されているソース機器のEDIDを常時読み出すことができるようにするため、全てのHDMI端子のホットプラグ信号を常時Highにしている。
そして、ユーザがコンテンツの入力先としてHDMI端子12(2)を選択する操作を行うと、制御部15は、その操作に応じ、信号処理部13を制御し、HDMI端子12(2)のホットプラグ信号Hotplug(2)をHighからLowに切り替えさせる。そして、制御部15は、HDMI端子12(2)に対応付けられてメモリ14に記憶されているLow期間T_LOW(2)を読み出して、HDMI端子12(2)のホットプラグ信号Hotplug(2)をLowにしてから、Low期間T_LOW(2)が経過するまで処理を待機する。その後、Low期間T_LOW(2)が経過したタイミングで、制御部15は、信号処理部13を制御して、HDMI端子12(2)のホットプラグ信号Hotplug(2)をLow からHighに切り替えさせる。
これにより、HDMI端子12(2)のホットプラグ信号Hotplug(2)が、Low期間T_LOW(2)msecだけ、Lowとなる。即ち、信号処理部13は、HDMI端子12(2)を介して接続されているソース機器に出力するホットプラグ信号Hotplug(2)をLow期間T_LOW(2)msecだけ、HighからLowに変化させる。
ここで、HDMI端子12(2)に接続されているソース機器の反応時間(ホットプラグ信号がLowにされたことをソース機器が検出して反応するまでの時間)よりも、Low期間T_LOW(2)msec が長ければ、そのソース機器において認証リセットが行われる。そして、ソース機器は、認証リセットを行った結果、シンク機器11に送信すべきデータを含むレスポンスをシンク機器11に送信する。
また、上述したように、ソース機器の反応時間は、機器ごとに異なる長さとなっている。そこで、シンク機器11は、HDMI端子12(1)乃至HDMI端子12(3)それぞれに接続されているソース機器に対して、ホットプラグ信号のLow期間を最適化するLow期間最適化処理を行う。そして、メモリ14には、Low期間最適化処理において求められたLow期間が、HDMI端子12(1)乃至HDMI端子12(3)それぞれに対応付けて記憶される。
Low期間最適化処理は、例えば、シンク機器11の各種の設定を行う際に、シンク機器11から出力される映像を表示するディスプレイ(図示せず)に表示されるメニュー画面の1項目として登録されている。ユーザは、操作部を操作して、ディスプレイにメニュー画面を表示させ、Low期間最適化処理を実行するように指示することができる。
次に、図3は、ホットプラグ信号のLow期間を最適化するLow期間最適化処理を説明するフローチャートである。
ユーザによりLow期間最適化処理を実行するように指示されると処理が開始され、ステップS11において、制御部15は、HDMI端子12を識別するための設定値nを、初期値としての1にセットし、処理はステップS12に進む。
ステップS12において、制御部15は、Low期間最適化処理において暫定的に用いられるホットプラグ信号のLow期間である試行Low期間tと、Low期間最適化処理で最終的に結果として求めるLow期間である最終結果resとを初期化する。即ち、制御部15は、ホットプラグ信号のLow期間の初期値t(init)(例えば、1000msecなどの十分に長い時間)をメモリ14から読み出して、試行Low期間tに初期値t(init)をセットし、最終結果resに試行Low期間tをセットする。
ステップS12の処理後、処理はステップS13に進み、制御部15は、Low期間最適化処理で用いるパラメータmを初期値としての、例えば、0にセットして処理はステップS14に進む。
ステップS14において、制御部15は、信号処理部13を制御し、n番目のHDMI端子12(n)のホットプラグ信号Hotplug(n)をHighからLowに切り替え、処理はステップS15に進む。
ステップS15において、制御部15は、ステップS12で初期化した試行Low期間t、または、後述するステップS20で更新される試行Low期間tだけ処理を待機する。そして、ステップS14でホットプラグ信号Hotplug(n)をLowに切り替えてから試行Low期間tが経過すると、処理はステップS16に進む。
ステップS16において、制御部15は、信号処理部13を制御し、HDMI端子12(n)のホットプラグ信号Hotplug(n)をLowからHighに切り替る。即ち、ステップS14乃至S16の処理により、HDMI端子12(n)のホットプラグ信号Hotplug(n)が、試行Low期間tだけLowとされる。
ステップS16の処理後、ステップS17に進み、制御部15は、ステップS14乃至S16でHDMI端子12(n)のホットプラグ信号Hotplug(n)を試行Low期間tだけLowとしたことにより、HDMI端子12(n)に接続されているソース機器において認証リセットが発生したか否かを判定する。例えば、試行Low期間tが、ソース機器の反応時間より長ければ、ソース機器は、ホットプラグ信号がLowとなったことを検出し、認証リセットを行うとともに、そのレスポンスをシンク機器11に送信する。従って、シンク機器11は、ソース機器からレスポンスが送信されてきたか否かを判定する。
ステップS17において、制御部15が、認証リセットが発生していないと判定した場合、処理はステップS22に進み、一方、認証リセットが発生したと判定した場合、処理はステップS18に進む。
ステップS18において、制御部15は、パラメータmを1だけインクリメントして、処理はステップS19に進む。
ステップS19において、制御部15は、ステップS18でインクリメントしたパラメータmが、認証リセットの発生を確認する回数として予め設定されている回数m(max)未満であるか否かを判定する。
ステップS19において、制御部15が、パラメータmが回数m(max)未満であると判定した場合、処理はステップS14に戻り、以下、同様の処理が繰り返される。即ち、制御部15は、認証リセットの発生を回数m(max)確認するまで、または、ステップS17で認証リセットが発生していないと判定するまで、認証リセットの発生を確認する処理を繰り返す。このように、認証リセットの発生を回数m(max)確認することにより、ソース機器の応答が安定的であるか否かを判定することができる。
一方、ステップS19において、制御部15が、パラメータmが回数m(max)未満でない(回数m(max)より大である)と判定した場合、処理はステップS20に進む。
ステップS20において、制御部15は、最終結果resを、現在の試行Low期間t(即ち、直前のステップS14で処理を待機した試行Low期間t)とするとともに、現在の試行Low期間tから100msecを減算した値を、新たな試行Low期間tとする。即ち、制御部15は、現在の試行Low期間tで、HDMI端子12(n)に接続されているソース機器に認証リセットを安定的に(確実に)発生させることができるので、HDMI端子12(n)に接続されているソース機器が安定的に応答可能な最も短いLow期間を求めるために、試行Low期間tを、より短い期間に更新する。例えば、現在の試行Low期間tが500msecであるとき、制御部15は、最終結果resを500msecとするとともに、新たな試行Low期間tを400msecとする。
ステップS20の処理後、処理はステップS21に進み、制御部15は、直前のステップS20で更新した試行Low期間tが、ホットプラグ信号のLow期間として最小の値として規定されている最小値t(min)より大であるか否かを判定する。例えば、HDMI規格では、最小値t(min)は、100msecと規定されている。
ステップS21において、制御部15が、試行Low期間tが最小値t(min)より大であると判定した場合、処理はステップS13に戻り、以下、同様の処理が繰り返される。即ち、HDMI端子12(n)に接続されているソース機器が最小値t(min)でも確実に応答すると判定されるまで、または、ステップS17で認証リセットが発生していないと判定されるまで、処理が繰り返される。
一方、ステップS21において、制御部15が、新たなLow期間tが最小値t(min)より大でない(即ち、最小値t(min)以下である)と判定した場合、処理はステップS22に進む。即ち、この場合、HDMI端子12(n)に接続されているソース機器は、最小値t(min)でも確実に応答する。
ステップS22において、制御部15は、最終結果resを、HDMI端子12(n)に接続されているソース機器に対して最適化されたホットプラグ信号Hotplug(n)のLow期間T_LOW(n)として、HDMI端子12(n)に対応付けてメモリ14に記憶(格納)させる。
例えば、ステップS21において、ステップS20で更新した試行Low期間tが最小値t(min)より大でないと判定されて、処理がステップS22に進んだとする。この場合には、そのときの最終結果resである最小値t(min)が、HDMI端子12(n)に接続されているソース機器に認証リセットを安定的に発生させることができる最も短いLow期間である。即ち、この場合、最小値t(min)が、最適化されたLow期間である。
一方、例えば、ステップS17において、認証リセットが発生していないと判定されて、処理がステップS22に進んだとする。この場合には、その直前のステップS15における試行Low期間tでは、HDMI端子12(n)に接続されているソース機器に認証リセットが発生しないことが確認されている。従って、この場合、現在の最終結果res(即ち、最後にソース機器に認証リセットが安定的に発生すると判定された試行Low期間t)が、HDMI端子12(n)に接続されているソース機器に、認証リセットを安定的に発生させることができる最も短いLow期間である。即ち、この場合、現在の最終結果resが、最適化されたLow期間である。
ステップS22の処理後、処理はステップS23に進み、制御部15は、HDMI端子12を識別するための設定値nが、シンク機器11に搭載されているHDMI端子の個数N(図1の例では、N=3)以上となっているか否かを判定する。即ち、シンク機器11に搭載されている全てのHDMI端子が処理の対象となったか否か、図1の例では、HDMI端子12(1)乃至HDMI端子12(3)が処理の対象となったか否かを判定する。
ステップS23において、制御部15が、設定値nが個数N以上となっていないと判定した場合、まだ処理の対象となっていないHDMI端子があり、処理はステップS24に進み、制御部15は、設定値nを1だけインクリメントする。そして、次のHDMI端子を処理の対象として、処理はステップS12に戻り、以下、同様の処理が繰り返される。
一方、ステップS23において、制御部15が、設定値nが個数N以上となっていると判定した場合、シンク機器11に搭載されている全てのHDMI端子が処理の対象とされており、Low期間最適化処理は終了する。
以上のように、シンク機器11は、Low期間最適化処理において、HDMI端子12(1)乃至HDMI端子12(3)ごとに、それぞれに接続されているソース機器が安定的に応答することができる最も短いLow期間を求めることができる。即ち、ソース機器ごとに、Low期間を最適化することができる。
従って、シンク機器11にコンテンツを入力するソース機器を切り替える入力切替処理において、HDMI端子12(1)乃至HDMI端子12(3)ごとに最適化されたLow期間を用いて処理を行うことができる。
次に、図4は、シンク機器11にコンテンツを入力するソース機器を切り替える入力切替処理を説明するフローチャートである。
例えば、ユーザが、n番目のHDMI端子12(n)を指定(選択)し、HDMI端子12(n)に接続されているソース機器がシンク機器11にコンテンツを入力するように、図示しない操作部を操作すると、処理が開始される。ステップS31において、制御部15は、ユーザの操作に応じて操作部から供給される信号に基づいて、ユーザにより指定されたHDMI端子12(n)を介して供給されるコンテンツが出力されるように、信号処理部13を制御する。信号処理部13は、制御部15の制御に従って、HDMI端子12(n)と、図示しない後段の回路とが接続されるように、接続の切り替え(スイッチング)を行う。
ステップS31の処理後、処理はステップS32に進み、制御部15は、信号処理部13を制御し、HDMI端子12(n)のホットプラグ信号Hotplug(n)をHighからLowに切り替え、処理はステップS33に進む。
ステップS33において、制御部15は、HDMI端子12(n)に対応付けて記憶されているLow期間T_LOW(n)、即ち、HDMI端子12(n)に接続されているソース機器に対して最適化されているLow期間T_LOW(n)をメモリ14から読み出す。そして、制御部15は、ステップS32でホットプラグ信号Hotplug(n)をLowに切り替えてからLow期間T_LOW(n)が経過するまで処理を待機し、Low期間T_LOW(n)が経過すると、処理はステップS34に進む。
ステップS34において、制御部15は、信号処理部13を制御し、HDMI端子12(n)のホットプラグ信号Hotplug(n)をLowからHighに切り替る。即ち、ステップS32乃至S34の処理により、HDMI端子12(n)のホットプラグ信号Hotplug(n)が、Low期間T_LOW(n)だけLowとされ、HDMI端子12(n)に接続されているソース機器に認証リセットが要求される。
ステップS34の処理後、処理はステップS35に進み、信号処理部13は、シンク機器11からの要求に対してソース機器が認証リセットを行って送信するレスポンスを受信し、制御部15に供給する。
また、認証リセットを行ったソース機器は、認証リセットのレスポンスの他、例えば、解像度情報、色空間情報、および音声情報を含むデータ信号を、所定の間隔で送信し、制御部15は、信号処理部13を介して、そのデータ信号を受信する。そして、制御部15は、ソース機器から送信されてくるデータ信号が安定するまで処理を待機し、データ信号が安定すると(例えば、同一内容のデータ信号が、所定回数、送信されてくると)、データ信号に含まれる解像度情報、色空間情報、および音声情報に基づいて、シンク機器11が備えるディスプレイおよびスピーカ(いずれも図示せず)の設定を行う。これにより、シンク機器11は、ソース機器から供給されるコンテンツを、正常に出力することができる。
ステップS35の処理後、処理はステップS36に進み、信号処理部13は、ソース機器から供給されるコンテンツのデータを後段の回路に出力し、制御部15は、ディスプレイおよびアンプのミュートを解除して、コンテンツの出力を開始する。即ち、ディスプレイに映像を表示し、スピーカから音声を出力する。ステップS36の処理後、入力切替処理は終了する。
以上のように、シンク機器11では、入力切替処理において、Low期間最適化処理において求められたLow期間だけ、ホットプラグ信号をLowにして待機するので、不必要に長時間、待機することがない。従って、ソース機器の選択を切り替える操作が行われてからコンテンツを出力するまでの時間を、従来よりも短縮することができる。
即ち、従来のシンク機器では、反応時間が長いソース機器に合わせてLow期間が設定されていたため、反応時間が短いソース機器に対しては、不必要に長い時間、処理を待機することになり、コンテンツの出力に時間がかかっていた。
これに対し、シンク機器11は、ソース機器に対してLow期間を最適化し、それぞれのソース機器ごとに求められたLow期間を用いるので、反応時間が短いソース機器に対して処理を待機する時間が不必要に長くなることがない。従って、ソース機器の反応時間に応じて、適切な待機時間で、コンテンツを出力することができる。これにより、ユーザが待たされる時間を短縮することができ、操作に対して良好に応答することができる。即ち、シンク機器11の操作性を向上させることができる。
また、反応時間が長いソース機器が接続されている場合であっても、Low期間最適化処理において、そのソース機器が安定的に反応することができるLow期間が求められるので、シンク機器11では、どのようなソース機器との接続においても、確実にソース機器を制御することができる。
また、制御部15は、メモリ14などに予め記憶されているプログラムを実行するだけでなく、例えば、図示しない通信装置を介してメモリ14にダウンロードしてインストール(更新)されたプログラムを実行することができる。従って、Low期間最適化処理および入力切替処理は、制御部15が実行するプログラムを更新することで実現することができ、特別なハードウエアを必要としない。
なお、シンク機器11では、制御部15が、信号処理部13を介して、HDMI端子12(1)乃至HDMI端子12(3)から出力される信号を操作する他、制御部15が、直接的に信号を操作することができる。
また、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。また、プログラムは、1のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。