(57)【要約】【課題】カメラ入力とディスプレイ出力を同期動作させる。【解決手段】ホスト端末２０のずれ時間監視部３４は、撮像装置１２からのフレームデータの入力タイミングと、ディスプレイ１６の出力周波数から得られる当該フレームデータの理想的な入力タイミングとのずれを監視する。動作周期調整部３６は、入力タイミングのずれの大きさに応じて、撮像装置１２における１フレームあたりの動作周期を調整する要求信号を送信する。撮像装置１２のＨカウンタ部４２は、撮像装置１２における垂直同期信号を起点として水平同期信号の出力をカウントし、所定の走査ラインで信号を発生させる。ＶＳｙｎｃ調整カウンタ部４４は、Ｈカウンタ部４２からの信号を起点としてピクセルクロックをカウントし、ピクセルクロックに対し設定された値で垂直同期信号を発生させる。【選択図】図５
2013034039.tif 000002
【特許請求の範囲】
【請求項１】
撮像素子が撮像した動画像の各フレームデータを垂直同期信号の周波数で走査ライン順に出力する出力制御部と、
前記出力制御部が出力するフレームデータの出力時刻と、動画像を即時表示するディスプレイにおける出力周波数に基づく基準出力時刻とのずれが所定のしきい値を超えたとき、垂直同期信号の発生タイミングの設定を変更する垂直同期信号調整部と、
を備えたことを特徴とする撮像装置。
【請求項２】
前記垂直同期信号調整部は、フレームの最終走査ラインにおいて、画素値の出力周波数を有するピクセルクロックのエッジの数をピクセルカウント値としてカウントし、垂直同期信号を発生させるピクセルカウント値の設定を変化させることを特徴とする請求項１に記載の撮像装置。
【請求項３】
フレームの各走査ラインの走査周期を表すピクセルカウント値と、フレームの走査ラインの数は、前記ディスプレイにおける出力周波数に基づく１フレームあたりの走査時間の基準終了時刻が、前記撮像装置におけるフレームの最終走査ラインの走査期間中に到来するように設定されていることを特徴とする請求項２に記載の撮像装置。
【請求項４】
前記垂直同期信号調整部は、前記フレームデータの出力時刻と前記基準出力時刻の前後関係によって、あらかじめ定められた、前記ディスプレイにおける出力周波数に基づく１フレームあたりの走査時間の基準終了時刻より遅いタイミングのピクセルカウント値と、当該基準終了時刻より早いタイミングのピクセルカウント値を、垂直同期信号を発生させるピクセルカウント値として切り替えて設定することを特徴とする請求項１または２に記載の撮像装置。
【請求項５】
接続した撮像装置から順次入力される各フレームデータの入力時刻を取得し、当該フレームデータの出力先のディスプレイにおける出力周波数に基づく基準入力時刻からのずれを監視するずれ時間監視部と、
前記ずれが所定のしきい値を超えたとき、前記撮像装置における垂直同期信号の発生タイミングを調整する要求信号を前記撮像装置に送信する動作周期調整部と、
を備えたことを特徴とする情報処理装置。
【請求項６】
動画像を撮影する撮像装置と、当該動画像のフレームデータを順次取得しディスプレイに出力する情報処理装置と、を備えた情報処理システムであって、
前記情報処理装置は、
前記撮像装置から入力される各フレームデータの入力時刻を取得し、前記ディスプレイにおける出力周波数に基づく基準入力時刻からのずれを監視するずれ時間監視部と、
前記ずれが所定のしきい値を超えたとき、前記撮像装置における垂直同期信号の発生タイミングを調整する要求信号を前記撮像装置に送信する動作周期調整部と、
を備え、前記撮像装置は、
フレームの最終走査ラインにおいて、画素値の出力周波数を有するピクセルクロックのエッジの数をピクセルカウント値としてカウントし、前記要求信号を取得した際、垂直同期信号を発生させるピクセルカウント値の設定を変更する垂直同期信号調整部を備えたことを特徴とする情報処理システム。
【請求項７】
撮像装置が、撮影した動画像を即時表示するディスプレイにおけるフレームデータ出力処理と、自らのフレームデータ出力処理を同期させる方法であって、
各フレームデータを垂直同期信号の周波数で走査ライン順に出力するステップと、
出力するフレームデータの出力時刻と、前記ディスプレイにおける出力周波数に基づく基準出力時刻とのずれが所定のしきい値を超えたとき、前記垂直同期信号の発生タイミングの設定を変更するステップと、
を含むことを特徴とするフレームデータ出力同期化方法。
【請求項８】
接続した撮像装置から順次入力される各フレームデータの入力時刻を取得し、当該フレームデータの出力先のディスプレイにおける出力周波数に基づく基準入力時刻からのずれを監視する機能と、
前記ずれが所定のしきい値を超えたとき、前記撮像装置における垂直同期信号の発生タイミングを調整する要求信号を前記撮像装置に送信する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項９】
接続した撮像装置から順次入力される各フレームデータの入力時刻を取得し、当該フレームデータの出力先のディスプレイにおける出力周波数に基づく基準入力時刻からのずれを監視する機能と、
前記ずれが所定のしきい値を超えたとき、前記撮像装置における垂直同期信号の発生タイミングを調整する要求信号を前記撮像装置に送信する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラを入力インターフェースに用いる情報処理技術に関する。
【背景技術】
【０００２】
近年、ウェブカメラなど、撮影した映像のデータをリアルタイムに転送し、ディスプレイに表示する技術が幅広い分野で利用されている。例えば、ビデオチャットや監視カメラのように、撮影した映像をそのまま表示するもののほか、ユーザの頭部など体の一部をビデオカメラで撮影し、目、口、手などの所定の領域を抽出して別の画像で置換し、ディスプレイに表示するゲームなどもある（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】欧州特許出願公開第０９９９５１８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような技術において、カメラとディスプレイが非同期である場合、カメラとディスプレイを中継するホスト端末において同期用バッファを準備し、フレーム単位で出力タイミングを調整していた。この態様においては、調整によって余ったフレームを破棄したり、同じフレームを２回表示したりする必要がある。このような同期処理によって不安定で大きなレイテンシが生じ、カメラ入力から表示までの応答性を低下させるほか、同期用バッファが必要不可欠となり記憶領域を圧迫するなどの問題があった。インターフェースが非同期でクロックを共有できないＵＳＢカメラにおいては特に、同期処理が困難であった。
【０００５】
本発明はこうした課題に鑑みてなされたものであり、その目的は、カメラ入力とディスプレイ出力を容易に同期動作させることのできる画像処理技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は撮像装置に関する。この撮像装置は、撮像素子が撮像した動画像の各フレームデータを垂直同期信号の周波数で走査ライン順に出力する出力制御部と、出力制御部が出力するフレームデータの出力時刻と、動画像を即時表示するディスプレイにおける出力周波数に基づく基準出力時刻とのずれが所定のしきい値を超えたとき、垂直同期信号の発生タイミングの設定を変更する垂直同期信号調整部と、を備えたことを特徴とする。
【０００７】
本発明の別の態様は情報処理装置に関する。この情報処理装置は、接続した撮像装置から順次入力される各フレームデータの入力時刻を取得し、当該フレームデータの出力先のディスプレイにおける出力周波数に基づく基準入力時刻からのずれを監視するずれ時間監視部と、ずれが所定のしきい値を超えたとき、撮像装置における垂直同期信号の発生タイミングを調整する要求信号を撮像装置に送信する動作周期調整部と、を備えたことを特徴とする。
【０００８】
本発明のさらに別の態様は情報処理システムに関する。この情報処理システムは、動画像を撮影する撮像装置と、当該動画像のフレームデータを順次取得しディスプレイに出力する情報処理装置と、を備えた情報処理システムであって、情報処理装置は、撮像装置から入力される各フレームデータの入力時刻を取得し、ディスプレイにおける出力周波数に基づく基準入力時刻からのずれを監視するずれ時間監視部と、ずれが所定のしきい値を超えたとき、撮像装置における垂直同期信号の発生タイミングを調整する要求信号を撮像装置に送信する動作周期調整部と、を備え、撮像装置は、フレームの最終走査ラインにおいて、画素値の出力周波数を有するピクセルクロックのエッジの数をピクセルカウント値としてカウントし、要求信号を取得した際、垂直同期信号を発生させるピクセルカウント値の設定を変更する垂直同期信号調整部を備えたことを特徴とする。
【０００９】
本発明のさらに別の態様はフレームデータ出力同期化方法に関する。このフレームデータ出力同期化方法は、撮像装置が、撮影した動画像を即時表示するディスプレイにおけるフレームデータ出力処理と、自らのフレームデータ出力処理を同期させる方法であって、各フレームデータを垂直同期信号の周波数で走査ライン順に出力するステップと、出力するフレームデータの出力時刻と、ディスプレイにおける出力周波数に基づく基準出力時刻とのずれが所定のしきい値を超えたとき、垂直同期信号の発生タイミングの設定を変更するステップと、を含むことを特徴とする。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によると、カメラ入力とディスプレイ出力を容易に同期動作させることができる。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図２】カメラ入力とビデオ出力の同期処理を実現する従来技術におけるシステム構成を示す図である。
【図３】図２で示した構成によってフレームデータ出力タイミングの調整を行うときの、撮像装置からの出力データ、同期用バッファにおけるデータ、フレームメモリにおけるデータの変遷を示す図である。
【図４】撮像装置とディスプレイが同期している場合の撮像装置からの出力データ、入力バッファにおけるデータ、フレームメモリにおけるデータの変遷を示す図である。
【図５】本実施の形態における撮像装置とホスト端末の構成を示す図である。
【図６】本実施の形態の撮像装置において発生させる信号を説明するための図である。
【図７】本実施の形態の撮像装置における垂直同期信号の発生タイミングの調整原理を説明するための図である。
【図８】本実施の形態において撮像装置からの１フレームあたりの入力周期を調整する処理の手順を示すフローチャートである。
【図９】本実施の形態において撮像装置からの入力周期を調整した場合における、撮像装置からの出力データ、入力バッファにおけるデータ、フレームメモリにおけるデータの変遷を示す図である。
【図１０】ホスト端末に同期用バッファを設けた状態で本実施の形態の撮像装置を接続した場合の、撮像装置からの出力データ、同期用バッファにおけるデータ、フレームメモリにおけるデータの変遷を示す図である。
【発明を実施するための形態】
【００１３】
図１は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム１０は、ユーザ１などの対象物をビデオ撮影する撮像装置１２、撮影した動画像データの表示を制御するホスト端末２０、動画像を表示するディスプレイ１６を含む。撮像装置１２、ホスト端末２０、ディスプレイ１６のうちいずれか２つ、または全てが組み合わされて一体的に装備されていてもよい。また、撮像装置１２は必ずしもディスプレイ１６の上に設置されていなくてもよい。さらにユーザ１は人でなくてもよく、その数も限定されない。
【００１４】
撮像装置１２は、ＣＣＤ（Charge Coupled Device）またはＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子を備えたデジタルビデオカメラである。撮像装置１２が撮影した動画像のフレームデータは逐次、ホスト端末２０に送信される。ホスト端末２０は、送信されたフレームデータを、ディスプレイ１６の出力タイミングに合わせてディスプレイ１６に出力する。なおホスト端末２０はフレームデータを用いて画像出力制御以外の所定の処理を行ってもよい。例えばユーザ１の姿をキャラクタ化して仮想世界の画像を生成しディスプレイ１６に表示させることによりゲームなどを実現することができるが、このような技術は一般的なものを適用できるためここでは言及しない。
【００１５】
ディスプレイ１６は、ホスト端末２０の制御のもと入力されたフレームデータを画像として表示する。ディスプレイ１６は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、例えば液晶テレビ、プラズマテレビ、ＰＣディスプレイ等である。
【００１６】
本実施の形態では、このような情報処理システム１０において撮像装置１２によるカメラ入力とディスプレイ１６によるビデオ出力とが非同期である場合に、低コストかつ容易に同期をとる。まず本実施の形態の効果を明らかにするために、このような場合に適用できる同期処理の既存手法について説明する。
【００１７】
図２はカメラ入力とビデオ出力の同期処理を実現する従来技術におけるシステム構成を示している。なお同図は従来技術における構成を示しているため、撮像装置１２ａ、ホスト端末２０ａとして本実施の形態の各装置と区別するが、接続形態は図１で示したのと同様である。ホスト端末２０ａは、撮像装置１２ａから、撮像装置の出力周波数で入力されるフレームデータを、ディスプレイ１６の出力周波数で出力する必要がある。
【００１８】
そのためホスト端末２０ａには、ディスプレイ１６の出力周波数に合わせて書き換えられるフレームメモリ２６の他に、撮像装置１２ａとフレームメモリ２６との間でフレームデータをバッファしてタイミング調整を行うための同期用バッファ２２を備える必要がある。さらにホスト端末２０ａは、フレームメモリ２６からディスプレイ１６へのフレームデータの出力を制御する表示制御部２４を備える。
【００１９】
図３は図２で示した構成によってフレームデータ出力タイミングの調整を行うときの、撮像装置１２ａからの出力データ（上段）、同期用バッファ２２におけるデータ（中段３列）、フレームメモリ２６におけるデータ（下段２列）の変遷を示している。例えば撮像装置１２ａは６０ｆｐｓのフレームレートで撮影およびデータ入力を行い、ディスプレイ１６は５９．９４ｆｐｓのフレームレートで動画表示を行うとする。この場合、撮像装置１２ａからホスト端末２０ａへのフレームデータ入力周期は１フレームあたり１６．０ｍｓｅｃ、ホスト端末２０ａからディスプレイ１６への出力周期は１フレームあたり１６．７ｍｓｅｃである。
【００２０】
同図は横軸に時間経過を示し、１フレーム分に対応する期間を１つの矩形で表している。矩形内の文字はフレーム番号を表す。同図上端の凡例にあるように、矩形内の実線および点線の斜線はそれぞれ、走査ラインを走査することによるデータの出力期間（scan out)、および入力期間(scan in)を表している。また網掛けで示された矩形はデータの保持期間を表している。
【００２１】
まず撮像装置１２ａでは、時刻ｔ０において、第ｎフレームの撮像および出力が開始される。するとホスト端末２０ａにおける同期用バッファ２２の第１バッファ２２ａには、時刻ｔ１から、撮像が終了した走査ライン順に第ｎフレームのデータが格納される。第ｎフレームのデータを全て格納し終える時刻ｔ２までの時間は上述の通り１６．０ｍｓｅｃである。表示制御部２４は、その前のフレーム、すなわち第（ｎ−１）フレームのデータをフレームメモリ２６へ格納し終えた時刻ｔ３から、フレームメモリ２６の第１領域２６ａへ第ｎフレームのデータを格納し始める。
【００２２】
なお同期用バッファ２２の矩形列の下に示されるΔｔの幅を有するマーカーは、直上の矩形が表すフレームデータの読み出し期間を示している。第ｎフレームの読み出し期間、すなわち時刻ｔ３からΔｔの間は、当該バッファへの別のデータの書き込みはできない。フレームメモリ２６の第１領域２６ａへ書き出された第ｎフレームのデータは、その前の第（ｎ−１）フレームの表示が終了した時刻ｔ４から、ディスプレイ１６へ出力され、画像が表示される。第ｎフレームの表示開始時刻ｔ４から終了時刻ｔ５までの時間は上述の通り１６．７ｍｓｅｃである。
【００２３】
このような処理を、撮像装置１２ａにおける撮影の進捗に応じて取得された各フレームデータに対して同様に行う。すなわち撮像装置１２ａおよび同期用バッファ２２は、１６．０ｍｓｅｃを１フレームあたりの処理周期として動作し、フレームメモリ２６およびディスプレイ１６は、１６．７ｍｓｅｃを１フレームあたりの処理周期として動作する。同図に示すようにフレームメモリ２６は、ディスプレイ１６へ出力中のフレームデータを格納する領域と、その次のフレームを格納する領域とを分け、第１領域２６ａ、第２領域２６ｂを交互に使用することにより、円滑な画像表示を行う。
【００２４】
一方、同期用バッファ２２は、あるフレームのデータを格納し終えたタイミングと、それを読み出すタイミングが、撮像装置１２ａとディスプレイ１６の動作周波数の違いによってずれていく。結果としてほとんどの期間において、フレームデータを格納する際に、その２つ前のフレームデータの読み出しが完了していない状況となる。例えば第（ｎ＋２）フレームのデータの格納が開始される時刻Ｔでは、２つ前の第ｎフレームのデータが読み出し中である。
【００２５】
このため、第ｎフレームのデータを格納している第１バッファ２２ａを、第（ｎ＋２）フレームのデータの格納先とはできない。このように、あるフレームデータの格納開始時に、２つ前のフレームのデータの読み出しが完了していない状況が発生する環境においては、同期用バッファ２２として、第１バッファ２２ａ、第２バッファ２２ｂ、第３バッファ２２ｃ、の３つのバッファを用意し、循環して使用する必要がある。
【００２６】
３つのバッファを使用した場合、基本的には各フレームのデータ保持期間は、格納処理の期間を除くと２周期分となる。つまり同期用バッファ２２に同じフレームのデータを保持できる期間は、バッファの数に依存して有限である。しかしディスプレイ１６側の動作周期が撮像装置１２ａ側の動作周期より長い場合、同期用バッファ２２における各フレームデータの保持期間に対し、それを読み出す期間が徐々に後へずれていく。そしてやがては読み出し期間がデータ保持期間を超過してしまうことになる。このようにして、データが同期用バッファ２２に格納されているにも関わらずディスプレイ１６に表示しきれないフレームが発生する。この場合、当該フレームデータを破棄し、その次のフレームデータを読み出して表示せざるを得なくなる。
【００２７】
図３の例では、第（ｎ＋６）フレームの読み出しを終えた時刻ｔ６の次にあるべき、第（ｎ＋７）フレームを読み出す期間が、第（ｎ＋７）フレームのデータ保持期間を超えてしまう。そのため第７フレームをとばし、時刻ｔ７において、格納済みの第（ｎ＋８）フレームのデータ読み出しを開始している。この例ではディスプレイ１６側の動作周期が撮像装置１２ａ側の基本周期より長いため、余ったフレームデータが消費されずに破棄されたが、動作周期の大小関係が逆であれば、表示に必要なフレームデータが不足し、同じフレームを２周期分表示せざるを得なくなる。
【００２８】
このように、撮像装置１２ａとディスプレイ１６が非同期に動作する場合、同期用バッファ２２におけるフレームデータの保持期間と、それを読み出す期間とを比較し、その結果によってデータの破棄や２回表示など複雑な処理を発生させる必要がある。また、動作周期の差によって同期用バッファとして必要なバッファ領域の数が増える。
【００２９】
さらに、ディスプレイ１６の周波数に同期させてホスト端末が画像処理を行う場合、処理対象となるフレームが１つ破棄されてしまうとことによって生じる不具合も考えられる。例えば被写体の一部をトラッキングする場合、前のフレームとの時間間隔が開いてしまうと、可動範囲が増大するため探索領域を広げる必要が生じる。そのためトラッキング処理に要する時間が増え、レイテンシ増加の要因となる。
【００３０】
撮像装置とディスプレイの設定動作周波数がたとえ同じであっても、内蔵する発振回路の精度によって同様のずれが生じる可能性もある。そこで本実施の形態では、撮像装置１２内部の垂直同期信号のタイミングをピクセルカウント単位で調整することにより、撮像装置１２からのデータ入力とディスプレイ１６へのデータ出力の周期のずれを所定の範囲に収め、少なくとも１フレーム分の時間差が生じないようにする。
【００３１】
図４は撮像装置とディスプレイが同期している場合の撮像装置からの出力データ（上段）、入力バッファにおけるデータ（中段２列）、フレームメモリにおけるデータ（下段２列）の変遷を示している。図の表し方は図３と同様であるが、この場合、撮像装置からの入力データを格納するメモリは、「同期用バッファ」ではなく、ホスト端末２０内部の処理に用いるための「入力バッファ」として機能する。撮像装置とディスプレイの動作周期は例えば、いずれも１６．０ｍｓｅｃであったとする。
【００３２】
この場合、同図に示すように、フレームデータのフレームメモリへの読み出しは、常時、入力バッファへの当該データの格納が完了した直後から開始でき、その２つの時刻がずれることはない。結果として入力バッファもフレームメモリと同様に、撮像装置から入力されたフレームデータを書き込むためのバッファと、フレームメモリへ読み出すためのバッファのみで構成できる。また上述のように、ずれが蓄積していくことによるフレーム単位の調整が必要ないため、処理を単純化でき突発的なレイテンシの増大を抑えることができる。
【００３３】
本実施の形態では、撮像装置とディスプレイの動作周波数が異なっていても、図４で示した同期動作に近い状況を作り出す。具体的には撮像装置１２において、１フレーム分として定義される時間、すなわち垂直同期信号（ＶＳｙｎｃ）の間隔を、ピクセルカウント単位で調整し、ディスプレイにおける１フレームの表示周期を目標にした動作周期の合わせ込みを行う。この態様は発振回路の精度に起因したずれに対しても有効である。図５は本実施の形態における撮像装置１２とホスト端末２０の構成を示している。
【００３４】
図５に示す各機能ブロックは、ハードウェア的には、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、カウンタ回路などの構成で実現でき、ソフトウェア的にはデータ入出力機能、データ保持機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３５】
ホスト端末２０は、撮像装置１２から入力されたフレームデータを一時格納する入力バッファ３２、ディスプレイ１６に出力するフレームデータを一時格納するフレームメモリ３８、入力バッファ３２からフレームメモリ３８へのフレームデータの書き出し、フレームメモリ２６からディスプレイ１６へのフレームデータの出力を制御する表示制御部４０を含む。
【００３６】
入力バッファ３２、フレームメモリ３８、および表示制御部４０は、図２で示したホスト端末２０ａにおける同期用バッファ２２、フレームメモリ２６、および表示制御部２４と同様の機能を有する。ただし図４について説明したのと同様、本実施の形態も同期用バッファを用いた調整を行う必要がないため、同期用バッファ２２に代えて入力バッファ３２を備える。入力バッファ３２は図４に示したのと同様、２つのバッファ領域を備えればよい。
【００３７】
ホスト端末２０はさらに、撮像装置１２からのフレームデータの入力タイミングと、ディスプレイ１６の出力周波数から得られる当該フレームデータの理想的な入力タイミングとのずれを監視するずれ時間監視部３４、入力タイミングのずれの大きさに応じて、撮像装置１２における１フレームあたりの動作周期を調整する要求信号を送信する動作周期調整部３６を含む。
【００３８】
撮像装置１２は、撮像素子３１とブリッジ部３０を含む。撮像素子３１は上記のとおりＣＣＤまたはＣＭＯＳ等のセンサである。ブリッジ部３０は、フレームデータのホスト端末２０への出力を制御する出力制御部４１、撮像装置１２における垂直同期信号を起点として水平同期信号（ＨＳｙｎｃ）の出力をカウントし、所定の走査ラインで信号を発生させるＨカウンタ部４２、Ｈカウンタ部４２からの信号を起点としてピクセルクロックをカウントし、ピクセルクロックに対し設定された値で垂直同期信号を発生させるＶＳｙｎｃ調整カウンタ部４４を含む。
【００３９】
出力制御部４１は、撮像素子３１が撮影した結果得られたフレームのデータを、ＵＳＢなどのインターフェースを介して、走査ライン順にホスト端末２０へ送出する。さらにフレームデータに含まれる各種同期信号の情報を分離し、Ｈカウンタ部４２、ＶＳｙｎｃ調整カウンタ部４４に適宜供給する。出力制御部４１が行う処理は一般的な技術を適用できるため詳細には言及しない。Ｈカウンタ部４２およびＶＳｙｎｃ調整カウンタ部４４と、ホスト端末２０のずれ時間監視部３４および動作周期調整部３６の詳細な動作は後に述べる。
【００４０】
次に図５で示した構成によって、撮像装置１２からの入力とディスプレイ１６への出力を同期させる原理を説明する。図６は撮像装置１２において発生させる信号を説明するための図である。なおこれらの信号は一般的な撮像装置で発生される信号であり、本実施の形態ではそれを利用することができる。同図において右方向が、各走査ラインにおける画素単位の時間経過を、下方向が、走査ライン単位の時間経過を示している。同図中央の矩形のうち白抜きの領域が画素値の入出力期間を表し、網掛けの領域が水平帰線期間（ＨＢｌａｎｋ）および垂直帰線期間（ＶＢｌａｎｋ）を示している。
【００４１】
まず横方向に表された、各走査ラインにおける時間経過は、図の上端に示すように、ピクセルクロック（ＰＣＬＫ）の立ち上がりエッジ周期ＰＴ（＝１／ＰＣＬＫ）を１単位とする。ピクセルクロックは画素値の出力周波数を有する。そして走査ラインごとに、画素値の出力期間を表すデータイネーブル信号（ＤＥ）、走査ラインの終点のタイミングを表す水平同期信号（ＨＳｙｎｃ）が発生する。図の縦方向に表された、走査ライン単位の時間経過は、水平同期信号の出力周期を１単位とする。そしてフレームごとに、値を持つ走査ラインの出力期間を表すデータイネーブル信号（ＤＥ）、フレームの終点のタイミングを表す垂直同期信号（ＶＳｙｎｃ）が発生する。
【００４２】
ここで、水平帰線期間を含めた次の走査ラインまでのピクセルクロックのカウント値をＨＴｏｔａｌ、垂直帰線期間を含めた次のフレームまでの走査ラインのカウント値をＶＴｏｔａｌとすると、撮像装置１２で撮影されホスト端末２０へ入力されるフレームのフレームレートＲ（ｆｐｓ）は、
R(fps)＝PCLK(Hz)/(HTotal×VTotal)
である。すなわち１フレームあたりの入力周期Ｔｉｎｔ（ｓｅｃ）は、
Tint(sec)=1/R(fps)=(HTotal×VTotal)/PCLK(Hz)=HTotal×VTotal×PT(sec)
である。
【００４３】
本実施の形態では、撮像装置１２から入力されるフレームデータの１フレームあたりの入力周期Ｔｉｎｔを、ディスプレイ１６における１フレームあたりの出力周期に合わせることにより同期動作に近い状況を作り出す。そこで本実施の形態ではまず、ＨＴｏｔａｌおよびＶＴｏｔａｌを調整して走査ライン数単位で大まかな合わせ込みを行った後、実際の時間のずれを監視して、調整の結果決定した、フレームの最後の走査ラインの入力期間におけるピクセルカウントの単位で微調整を行う。
【００４４】
走査ライン数単位での調整は、ディスプレイ１６における出力フレームレートをターゲットフレームレートＴＡとしたとき、次の式を満足するようにＨＴｏｔａｌおよびＶＴｏｔａｌを定めることによって行う。
PCLK/(HTotal×VTotal) < TA < PCLK/HTotal×(VTotal-1)
上式の各項の逆数をとり、周期で比較すると次の式となる。
PT×HTotal×(VTotal-1) < 1/TA < PT × HTotal×VTotal
【００４５】
すなわち、垂直同期信号直後のフレームの始点から、最後から２番目の走査ラインの走査完了までに要するピクセルクロック単位の時間「PT×HTotal×(VTotal-1)」と、当該始点から最後の走査ラインの走査完了までに要する時間「PT × HTotal×VTotal」の間に、ディスプレイ１６の１フレームあたりの出力周期が入るように、ＨＴｏｔａｌおよびＶＴｏｔａｌを調整する。これにより、ピクセルカウント単位の微調整は最後の走査ラインの走査時間内に限定することができる。
【００４６】
図７は撮像装置１２における垂直同期信号の発生タイミングの調整原理を説明するための図である。同図における矩形は図６と同様、水平同期信号、垂直同期信号を含めた、１フレームの入力期間を表している。そして当該矩形を左から右に横切る矢印は、走査ラインを模式的に示している。ここで、ディスプレイ１６において１フレームの表示が終了する時刻が線５０に対応するとすると、上記の式により決定した最後の走査ライン上、厳密にはＶＴｏｔａｌ−１のカウントとＶＴｏｔａｌのカウントの間の時間に、線５０が位置することになる。
【００４７】
ＨＴｏｔａｌおよびＶＴｏｔａｌの調整は走査ライン単位のものであるため、ディスプレイ１６の出力周波数に応じてあらかじめ決定しておく。例えば撮像装置１２やホスト端末２０の内部メモリに、ディスプレイの出力周波数と、適切なＨＴｏｔａｌおよびＶＴｏｔａｌの値を対応づけたテーブルを準備しておき、ディスプレイ１６が接続されたときに実際の出力周波数に応じてテーブルを参照したうえ決定してもよい。場合によってはピクセルクロック自体を上式による調整対象としてもよい。
【００４８】
このようにＨＴｏｔａｌおよびＶＴｏｔａｌを決定したら、その後は実際の時間のずれを監視しながらピクセルカウント単位の微調整を行う。この調整は定性的には、最後の走査ライン上にあるべき当該フレームとしての終点、すなわち図７における最後の矢印５２の先端を、線５０に近づける調整となる。調整によって得られた終点で垂直同期信号を発生させ、次のフレームの撮像を開始すれば、撮像装置１２からの１フレームあたりの入力周期と、ディスプレイ１６への１フレームあたりの出力周期がおよそ等しくなる。
【００４９】
ピクセルカウント単位での時間計測では厳密な計測時間に対し丸め誤差が発生すること、撮像装置やディスプレイの周波数にはそれぞれ揺らぎがあること、処理の負荷などを考慮すると、時間のずれが所定量蓄積した時点で、矢印５２の長さ、すなわち最後の走査ラインにおいて垂直同期信号を発生させるまでのピクセルカウント値を調整するのが効率的である。以後、このようなピクセルカウント値を「最終ライン期間」と呼ぶ。
【００５０】
実際の調整処理は、最後の走査ラインにおいて線５０までの距離より短い最終ライン期間ＭＦ、および線５０までの距離より長い最終ライン期間ＭＳをあらかじめ決定しておき、それらを切り替えることによって行う。短い方の最終ライン期間ＭＦおよび長い方の最終ライン期間ＭＳは次の式を満足する値である。
PT×(HTotal×(VTotal-1)+ MF) < 1/TA < PT ×(HTotal×(VTotal-1)+ MS)
そして撮像装置１２からの入力がディスプレイ１６への出力より早すぎる場合は長い最終ライン期間ＭＳを、遅すぎる場合は短い最終ライン期間ＭＦを設定することにより、撮像装置１２からの１フレームあたりの入力周期を調整する。
【００５１】
２つの最終ライン期間ＭＦおよびＭＳを、線５０で示された、ディスプレイ１６による１フレームの出力終了時刻を挟む直近の整数値とすると、ＭＦおよびＭＳは以下の式から決定できる。
MF = floor(FIT/PT - HTotal (VTotal -1 ))
MS = ceil(FIT/PT - HTotal (VTotal -1))
ここでfloor(x)はｘ以下の最大の整数、ceil(x)はｘ以上の最小の整数を出力する関数である。またＦＩＴは１／ＴＡで与えられる、ディスプレイ１６の１フレームの表示周期である。
【００５２】
さらに撮像装置１２およびディスプレイ１６における動作周波数の揺らぎをの幅を考慮し、２つの最終ライン期間ＭＦおよびＭＳを以下のように決定して両者の差を大きくしてもよい。
MF = floor(FIT/PT - HTotal (VTotal -1 ))- dz/2
MS = ceil(FIT/PT - HTotal (VTotal -1))+ dz/2
ここでｄｚは揺らぎの幅を考慮した補正値であり、あらかじめ決定しておく。
【００５３】
次に、以上のような調整を図５に示した構成によって実現するときの処理手順を示す。図８は本実施の形態において撮像装置１２からの１フレームあたりの入力周期を調整する処理の手順を示すフローチャートである。同フローチャートはユーザがホスト端末２０に対し、動画像の撮影とそれを用いた画像の表示を含む機能の実行を指示し、ホスト端末２０が撮像装置１２に撮影の開始を要求したときに処理が開始される。
【００５４】
まず撮像装置１２において、最終ライン期間Ｍに初期値Ｍ０を設定する（Ｓ１０）。初期値Ｍ０は０からＨＴｏｔａｌまでのいずれの値でもよく、ＭＦまたはＭＳでもよい。次に撮像装置１２は動画撮影を開始する（Ｓ１２）。そして出力制御部４１は、フレーム番号Ｎに０を代入したうえ（Ｎ１４）、第０番目のフレームのデータを走査ライン順にホスト端末２０へ入力していく（Ｓ１６）。このときＨカウンタ部４２は、垂直同期信号の発生を受けてカウント値を０とした後、水平同期信号の出力をカウントしていくことで入力済みの走査ラインの数Ｈを監視する。
【００５５】
撮像装置１２から入力されたデータをホスト端末２０が取得し、ディスプレイ１６への出力を開始することにより、ディスプレイ１６に動画像が表示される（Ｓ１８）。撮像装置１２では、ホスト端末２０へ入力済みの走査ラインの数ＨがＶＴｏｔａｌ−１に達しない間は、各走査ラインのデータ出力を継続する（Ｓ２０のＮ、Ｓ１６）。出力済みの走査ラインの数ＨがＶＴｏｔａｌ−１に達したら（Ｓ２０のＹ）、最後の走査ラインＶＴｏｔａｌのデータをホスト端末２０へ入力していく。このときＶＳｙｎｃ調整カウンタ部４４は、走査ラインの数ＨがＶＴｏｔａｌ−１に達したことをＨカウンタ部４２から受けてカウント値を０とした後、ピクセルクロックの立ち上がりエッジをカウントしていく。
【００５６】
ピクセルカウント値Ｐが最終ライン期間Ｍに達しない間は、データ入力を継続する（Ｓ２４のＮ、Ｓ２２）。ピクセルカウント値Ｐが、最終ライン期間Ｍに達したら（Ｓ２４のＹ）、  ＶＳｙｎｃ調整カウンタ部４４は、垂直同期信号を撮像素子３１およびＨカウンタ部４２に出力する（Ｓ２６）。
【００５７】
ホスト端末２０のずれ時間監視部３４は、１フレーム分のデータが撮像装置１２から入力される都度、受信時のタイムスタンプを取得する。そして、第０フレームのデータ入力開始から第Ｎフレームのデータ入力完了までの実際の時間と、ディスプレイ１６の出力周波数で入力動作がなされたときの想定時間との差、すなわちずれが、あらかじめ準備したしきい値を超えたか否かを判定する（Ｓ３０）。しきい値を超えている場合は（Ｓ３０のＹ）、撮像装置１２のＶＳｙｎｃ調整カウンタ部４４が保持している最終ライン期間Ｍに、ＭＦまたはＭＳの値を設定し直す（Ｓ３２）。
【００５８】
ずれ量Ｄは例えば次の式で求められる。
D = |time_stump(N)- FIT×N|
ここでtime_stump(N)は、第０フレームの入力開始から第Ｎフレームの入力完了までのタイムスタンプの差である。このタイムスタンプを、ホスト端末２０が出力するビデオクロック由来の周波数制御用電圧ＶＣＴにより計測することで、ホスト端末２０内で制御がなされるＦＩＴの実際の時間に基づき正確に比較することができる。
【００５９】
上述のようにずれ量Ｄがしきい値ｄｗより大きければ、最終ライン期間Ｍを設定し直す。このとき、time_stump(N)- FIT×Nが正の値であれば撮像装置１２からの入力が遅いため短い方の最終ライン期間ＭＦを設定する。負の値であれば撮像装置１２からの入力が速いため長い方の最終ライン期間ＭＦを設定する。撮像装置１２における最終ライン期間の更新は、実際には最後の走査ライン以外のデータをホスト端末２０へ入力しているＳ１６、Ｓ２０の処理ステップの期間中に行ってよい。ずれ量Ｄがしきい値ｄｗを超えていない場合は、そのままの設定を維持する（Ｓ３０のＮ）。
【００６０】
ユーザからの指示入力などにより処理を終了する必要が生じない間は（Ｓ３４のＮ、Ｓ３８のＮ）、撮像装置１２においてフレーム番号をインクリメントしながら（Ｓ３６）、以上の処理を繰り返す。この間、撮像装置１２における撮影、ホスト端末２０へのフレームデータ入力、ディスプレイ１６へのフレームデータ出力、およびディスプレイ１６における動画像の表示は継続して行われているものとする。処理終了の必要が生じたら、撮像装置１２、ホスト端末２０の双方で処理を終了する（Ｓ３４のＹ、Ｓ３８のＹ）。
【００６１】
図９は本実施の形態によって撮像装置１２からの入力周期を調整した場合における、撮像装置１２からの出力データ（上段）、入力バッファ３２におけるデータ（中段２列）、フレームメモリ３８におけるデータ（下段２列）の変遷を示している。図の表し方は図４と同様である。また同図では、撮像装置１２における出力対象のフレームを表す各矩形の上に、当該フレームに対する最終ライン期間Ｍの設定値を示している。
【００６２】
まず撮像装置１２から第ｎフレームが出力される時刻ｔ０において、最終ライン期間Ｍには、短い方の最終ライン期間ＭＦが設定されている。この設定により、撮像装置１２からの１フレームあたりのデータ入力周期は、ディスプレイ１６への１フレームあたりのデータ出力周期よりわずかに短い状態となっている。
【００６３】
図４で説明したように、撮像装置１２からの入力とディスプレイ１６への出力が完全に同期していると、入力バッファ３２への格納が完了したフレームデータは直後にディスプレイ１６に出力される。本実施の形態でも上記のとおりＶＴｏｔａｌ、ＨＴｏｔａｌを調整したうえで、ピクセルカウント単位でディスプレイの出力周波数への合わせ混みを行っているため、図４に近い状態が得られている。
【００６４】
一方、フレーム処理が進捗していくと、撮像装置１２からの入力周期とディスプレイ６への出力周期の微妙なずれが蓄積していく。同図では、各フレームのデータが入力バッファ３２に格納し終えた時刻と、当該データのフレームメモリ３８への読み出しが開始される時刻とのずれ時間をＤ０、Ｄ１、Ｄ２、・・・として表している。例えば第ｎ＋１フレームのデータを入力バッファ３２に格納し終えた時刻ｔ１から、当該データの読み出し開始時刻ｔ２までの時間のずれがＤ１である。
【００６５】
この時間のずれは、撮像装置１２からの１フレームあたりの入力周期とディスプレイ１６への１フレームあたりの出力周期の差に起因するものであり、ひいては、ずれ時間監視部３４がしきい値判定をする値に対応する。上述のとおり最終ライン期間Ｍとして小さい方の値ＭＦが設定されている場合、撮像装置１２からの入力周期がディスプレイ１６への出力周期より短いため、データの入力が完了する時刻がその読み出しを開始する時刻より前にずれていき、Ｄ０、Ｄ１、Ｄ２、Ｄ３、とその値が増えていく。そしてＤ４でしきい値ｄｗを超える。
【００６６】
動作周期調整部３６はこの結果を受け、ＶＳｙｎｃ調整カウンタ部４４が保持する最終ライン期間Ｍを、長い方の最終ライン期間ＭＳに設定し直すように要求信号を送信する（Ｓ４０）。この設定により撮像装置１２からの入力周期がディスプレイ１６への出力周期より長くなるため、ずれ時間はその後のＤ５で減少に転じ、Ｄ６、Ｄ７、Ｄ８、Ｄ９と減少していく。さらにフレーム処理が進捗すると、やがてずれ時間は撮像装置１２からの入力が遅れる方向に増えていきくため、しきい値ｄｗを超えた時点で最終ライン期間Ｍを、短い方の最終ライン期間ＭＦに設定し直す（図示せず）。
【００６７】
このようにすることで、撮像装置１２からのフレームデータの格納が完了する時刻と、ディスプレイ１６への出力が開始される時刻との差が最大でもしきい値ｄｗ程度に抑えられるため、１フレーム分のデータの余りや不足が生じることがなくなる。結果として、つじつまを合わせるためにデータを破棄したり同じフレームを２回表示したりする必要がなくなり、不安定なレイテンシの発生を抑制できる。さらに図９に示したように入力バッファ３２は２つのバッファ領域のみで充足する。
【００６８】
本実施の形態の撮像装置１２は、最終ライン期間Ｍの設定を更新しなければ、既存の非同期の撮像装置と同様に動作する。したがって用途に合わせて同期／非同期を切り替えるようにしてもよい。図１０は、図２で示したようにホスト端末２０に同期用バッファ２２を設けた状態で本実施の形態の撮像装置１２を接続した場合の、撮像装置１２からの出力データ（上段）、同期用バッファ２２におけるデータ（中段３列）、フレームメモリ２６におけるデータ（下段２列）の変遷を示している。
【００６９】
図３で示したように、同期用バッファ２２のみでの運用では、ディスプレイ１６側の動作周期が撮像装置１２側のそれより長い場合、同期用バッファ２２における各フレームのデータの保持期間に対し、それを読み出す期間が徐々に後にずれていく。逆に短い場合は、徐々に前にずれていく。本実施の形態を導入し、最終ライン期間Ｍを適切に設定することにより、同図に示すように、同期用バッファ２２におけるデータ保持期間のうちおよそ前半の期間で各フレームのデータを読み出すことができる。
【００７０】
結果として、ディスプレイ１６の周波数に合わせたデータ読み出しが行われても、本来のフレーム順で確実にデータへアクセスでき、余分な処理の必要が生じない。また表示しきれないフレームのデータを破棄するような事態が生じないため、フレームの時間間隔が一定に保たれる。これにより、読み出されたフレームデータを用いてトラッキングなどの処理を行う場合でも、フレームを破棄したことに起因する処理の負荷や精度の変動が発生しない。
【００７１】
以上述べた本実施の形態によれば、撮像装置で撮影した動画をリアルタイムでディスプレイに表示するシステムにおいて、撮像装置からホスト端末へのフレームデータの入力周期を、ホスト端末からディスプレイへの出力周期に近づけるように、垂直同期信号の発生タイミングを調整する。このためまず、走査ラインの長さおよび数による調整を事前に行っておき、実際の時間のずれを監視しながら、最後の走査ラインにおける垂直同期信号の発生タイミングをピクセルカウント単位で調整する。
【００７２】
これによりピクセルクロックの立ち上がりエッジ周期レベル、すなわちディスプレイの出力周期の１００万分の１程度での時間調整を低コストで実現できる。走査ラインの数のみを調整する場合、フレームによって撮影時間の変動が比較的大きくなり、ローリングシャッターを有する撮像素子において露出の変動を引き起こす可能性があるが、本実施の形態のように微少時間での調整によれば、露出への影響は無視できるレベルとなる。
【００７３】
また調整は、時間のずれが所定量、累積した時点で、設定値を更新し直すのみであるため、処理コストへの影響が少ない。さらに、２つの最終ライン期間の差分や、時間のずれに対するしきい値によって、装置自体が持つ動作周波数の揺らぎを吸収したタイミングでの調整が可能であるため、高頻度に無駄な調整を行い余計に処理の負荷がかかるといった不都合が発生しない。結果として、低コストかつ処理の負荷への影響を少なく、動画撮影から表示までを低レイテンシで応答性よく実行できる。
【００７４】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７５】
例えば本実施の形態における撮像装置は一眼の撮像素子からなっていたが、ステレオカメラなど複数のカメラを備えた構成としてもよい。この場合、ＶＳｙｎｃ調整カウンタ部から発生させた垂直同期信号を全てのカメラに与えることにより、複数のカメラからの映像をディスプレイの出力と同期させることが容易にできる。
【符号の説明】
【００７６】
１０  情報処理システム、  １２  撮像装置、  １６  ディスプレイ、  ２０  ホスト端末、  ３０  ブリッジ部、  ３２  入力バッファ、  ３４  ずれ時間監視部、  ３６  動作周期調整部、  ３８  フレームメモリ、  ４０  表示制御部、  ４１  出力制御部、  ４２  Ｈカウンタ部、  ４４  ＶＳｙｎｃ調整カウンタ部。
【図１】
2013034039.tif 000003
【図２】
2013034039.tif 000004
【図３】
2013034039.tif 000005
【図４】
2013034039.tif 000006
【図５】
2013034039.tif 000007
【図６】
2013034039.tif 000008
【図７】
2013034039.tif 000009
【図８】
2013034039.tif 000010
【図９】
2013034039.tif 000011
【図１０】
2013034039.tif 000012