(57)【特許請求の範囲】
【請求項１】
対象物を撮影して得られる動画像の各フレームを多段階で縮小することにより異なる解像度の複数の画像のデータを、それぞれ所定の画素順に生成し、ストリームとして順次出力する画像データ生成部と、
前記画像データ生成部から出力された前記複数の画像のデータのうち所定の複数の画像のデータを、画像の一列分の画素列またはそれより小さい範囲の画素列ごとに接続してストリームとして出力することにより、前記所定の複数の画像を含む仮想的な合成画像を生成する画像合成部と、
接続したホスト端末からデータの送信要求を受け付け、前記画像データ生成部および前記画像合成部から出力された複数のストリームから、要求された画像および領域に含まれる画素のデータを抽出していくことにより送信すべきデータのストリームを生成し、前記ホスト端末に送信する画像送出部と、
を備えることを特徴とする動画像撮影装置。
【請求項２】
前記画像合成部は、合成対象の画像のうち最高解像度の画像の画素一列分のデータが生成される期間を基準周期として前記合成画像の画素一列分とすべきデータを出力し、当該基準周期より長い周期で一列分のデータが生成されるその他の解像度の画像は、当該生成周期において均等にデータが出力されるように、接続する画素列の範囲を調整することを特徴とする請求項１に記載の動画像撮影装置。
【請求項３】
前記画像送出部は、前記ホスト端末からデータの送信を要求された画像内の矩形領域を、ストリームを構成する画素列単位で切り出すクロッピング部を備え、
前記画像合成部は、合成対象の各画像が前記合成画像における矩形領域を構成するように各画像のデータを接続し、
前記クロッピング部は、前記ホスト端末からの要求に応じて、前記合成画像から合成対象の画像のうちのいずれかを画素列単位で切り出し、前記ホスト端末に送信することを特徴とする請求項１または２に記載の動画像撮影装置。
【請求項４】
前記異なる解像度の複数の画像のうち、所定の解像度の画像をフレーム間差分することにより当該解像度の差分画像を生成する差分画像生成部をさらに備え、
前記画像合成部は、前記差分画像も合成対象に含めることを特徴とする請求項１から３のいずれかに記載の動画像撮影装置。
【請求項５】
前記画像送出部は、画像データ生成部および前記画像合成部から出力された複数のストリームを並列に読み出し、それらのストリームのうち前記ホスト端末からの要求に応じて選択したストリームの少なくとも一部によって、送信すべきストリームを生成することを特徴とする請求項１から４のいずれかに記載の動画像撮影装置。
【請求項６】
前記画像送出部は、ホスト端末へデータ送信を行うための複数の出力チャンネルを備え、前記ホスト端末から複数の領域のデータを要求された場合に、当該データごとに生成したストリームを前記複数の出力チャンネルから並列に送信することを特徴とする請求項１から５のいずれかに記載の動画像撮影装置。
【請求項７】
前記複数の画像のいずれかに顔検出処理を施して、対象物である人の顔の領域を特定する顔検出部をさらに備え、
前記画像送出部は、前記ホスト端末からの要求に応じて、生成した画像データのストリームの所定の位置に、前記顔検出部が特定した顔の領域に係るデータをメタデータとして挿入したうえ、前記ホスト端末に送信することを特徴とする請求項１から６のいずれかに記載の動画像撮影装置。
【請求項８】
追跡対象の対象物の形状情報を前記ホスト端末から取得し、それに基づき当該対象物の追跡処理を行うトラッキング部をさらに備え、
前記画像送出部は、前記ホスト端末からの要求に応じて、生成した画像データのストリームの所定の位置に、前記トラッキング部が特定した対象物の位置に係るデータをメタデータとして挿入したうえ、前記ホスト端末に送信することを特徴とする請求項１から７のいずれかに記載の動画像撮影装置。
【請求項９】
左右の異なる視点から同じ対象物を撮影する一対のカメラを備えた動画像撮影装置であって、
前記一対のカメラはそれぞれ、
前記対象物を撮影して得られる動画像の各フレームを多段階で縮小することにより異なる解像度の複数の画像のデータを、それぞれ所定の画素順に生成し、ストリームとして順次出力する画像データ生成部と、
前記画像データ生成部から出力された前記複数の画像のデータのうち所定の複数の画像のデータを、画像の一列分の画素列またはそれより小さい範囲の画素列ごとに接続してストリームとして出力することにより、前記所定の複数の画像を含む仮想的な合成画像を生成する画像合成部と、
を備え、
前記動画像撮影装置はさらに、
前記一対のカメラが生成した視点の異なる画像のデータのうち、所定の解像度の画像のデータに対しステレオマッチングを行うことにより、前記対象物の３次元空間における位置を表す奥行き画像を所定の画素順に生成し、ストリームとして順次出力するステレオマッチング処理部と、
接続したホスト端末からデータの送信要求を受け付け、前記画像データ生成部、前記画像合成部、および前記ステレオマッチング処理部から出力された複数のストリームから、要求された画像および領域に含まれる画素のデータを抽出していくことにより送信すべきデータのストリームを生成し、前記ホスト端末に送信する画像送出部と、
を備えることを特徴とする動画像撮影装置。
【請求項１０】
対象物を撮影して動画像のデータを生成する動画像撮影装置と、当該動画像撮影装置から動画像のデータの一部を取得し、それを利用して所定の画像処理を行ったうえ画像を表示するホスト端末と、を備えた情報処理システムであって、
前記動画像撮影装置は、
撮影して得られた動画像の各フレームを多段階で縮小することにより異なる解像度の複数の画像のデータを、それぞれ所定の画素順に生成し、ストリームとして順次出力する画像データ生成部と、
前記画像データ生成部から出力された前記複数の画像のデータのうち所定の複数の画像のデータを、画像の一列分の画素列またはそれより小さい範囲の画素列ごとに接続してストリームとして出力することにより、前記所定の複数の画像を含む仮想的な合成画像を生成する画像合成部と、
前記画像データ生成部および前記画像合成部から出力された複数のストリームから、前記ホスト端末から要求された画像および領域に含まれる画素のデータを抽出していくことにより送信すべきデータのストリームを生成したうえ、前記ホスト端末に送信する画像送出部と、
を備えることを特徴とする情報処理システム。
【請求項１１】
対象物を撮影しているカメラに対し、解像度および画像内の領域を指定して動画像のフレームの画像データの送信を要求するデータ要求部と、
要求に従って前記カメラから送信された、指定した領域の画素値を画素列ごとに接続したストリームの状態の画像データを、メインメモリにおいて２次元の画像データとして展開するデータ展開部と、
前記２次元の画像データを利用して所定の画像処理を行ったうえ画像を表示するデータ処理部と、
を備え、
前記データ要求部は、前記カメラ内で生成される、動画像のフレームを多段階で縮小することにより得られる異なる解像度の複数の画像をそれぞれ所定の矩形領域に配置した合成画像を指定し、
前記データ展開部は、前記カメラから送信された前記合成画像を、合成対象の画像ごとに個別の２次元の画像データに展開することにより画像の分別を行うことを特徴とする情報処理装置。
【請求項１２】
動画像撮影装置が行う画像データ処理方法であって、
対象物を撮影して得られる動画像の各フレームを多段階で縮小することにより異なる解像度の複数の画像のデータを、それぞれ所定の画素順に生成し、ストリームとして順次出力するステップと、
前記出力するステップにおいて出力された前記複数の画像のデータのうち所定の複数の画像のデータを、画像の一列分の画素列またはそれより小さい範囲の画素列ごとに接続してストリームとして出力することにより、前記所定の複数の画像を含む仮想的な合成画像を生成するステップと、
接続したホスト端末からデータの送信要求を受け付け、前記出力するステップおよび生成するステップにおいて出力された複数のストリームから、要求された画像および領域に含まれる画素のデータを抽出していくことにより送信すべきデータのストリームを生成し、前記ホスト端末に送信するステップと、
を含むことを特徴とする画像データ処理方法。
【請求項１３】
撮像素子が対象物を撮影して得られる動画像の各フレームを多段階で縮小することにより異なる解像度の複数の画像のデータを、それぞれ所定の画素順に生成し、ストリームとして順次出力する機能と、
前記出力する機能において出力された前記複数の画像のデータのうち所定の複数の画像のデータを、画像の一列分の画素列またはそれより小さい範囲の画素列ごとに接続してストリームとして出力することにより、前記所定の複数の画像を含む仮想的な合成画像を生成する機能と、
接続したホスト端末からデータの送信要求を受け付け、前記出力する機能および生成する機能によって出力された複数のストリームから、要求された画像および領域に含まれる画素のデータを抽出していくことにより送信すべきデータのストリームを生成し、前記ホスト端末に送信する機能と、
をコンピュータに実現させるコンピュータプログラム。
【請求項１４】
撮像素子が対象物を撮影して得られる動画像の各フレームを多段階で縮小することにより異なる解像度の複数の画像のデータを、それぞれ所定の画素順に生成し、ストリームとして順次出力する機能と、
前記出力する機能において出力された前記複数の画像のデータのうち所定の複数の画像のデータを、画像の一列分の画素列またはそれより小さい範囲の画素列ごとに接続してストリームとして出力することにより、前記所定の複数の画像を含む仮想的な合成画像を生成する機能と、
接続したホスト端末からデータの送信要求を受け付け、前記出力する機能および生成する機能によって出力された複数のストリームから、要求された画像および領域に含まれる画素のデータを抽出していくことにより送信すべきデータのストリームを生成し、前記ホスト端末に送信する機能と、
をコンピュータに実現させるコンピュータプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物の動きに応じて情報処理を行う技術に関する。
【背景技術】
【０００２】
従来、ユーザの頭部など体の一部をビデオカメラで撮影し、目、口、手などの所定の領域を抽出し、その領域を別の画像で置換してディスプレイに表示するゲームが知られている（例えば、特許文献１）。また、ビデオカメラで撮影された口や手の動きをアプリケーションの操作指示として受け取るユーザインタフェースシステムも知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】欧州特許出願公開第０９９９５１８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような技術では、ユーザの口や手などの所定の領域を抽出するために高解像度の画像が必要になる。しかしながら、ビデオカメラの撮像素子を高性能化するほど高解像度化などデータ量が増大し、転送用の圧縮、伸張処理や認識、検出、計測処理等に必要な情報を適切なスケールで提供するフィルタリングやスケーリング、クロッピング等のデータマイニング処理コストが増大し、カメラ入力から各処理出力までのレイテンシが増大してしまうという問題がある。また、カメラをユーザインタフェースとして使用する場合には、レイテンシの増大は使い勝手を著しく低下させてしまうという問題がある。このように、ビデオカメラの撮像素子の性能が向上しても、システム全体としての性能が悪化してしまうおそれがある。
【０００５】
本発明はこうした課題に鑑みてなされたものであり、その目的は、高性能の撮像素子を使用しつつ、撮像から、そのデータを用いた画像表示までのレイテンシを抑制することができる画像処理技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は動画像撮影装置に関する。この動画像撮影装置は、対象物を撮影して得られる動画像の各フレームを多段階で縮小することにより異なる解像度の複数の画像のデータを、それぞれ所定の画素順に生成し、ストリームとして順次出力する画像データ生成部と、画像データ生成部から出力された複数の画像のデータのうち所定の複数の画像のデータを、画像の一列分の画素列またはそれより小さい範囲の画素列ごとに接続してストリームとして出力することにより、所定の複数の画像を含む仮想的な合成画像を生成する画像合成部と、接続したホスト端末からデータの送信要求を受け付け、画像データ生成部および画像合成部から出力された複数のストリームから、要求された画像および領域に含まれる画素のデータを抽出していくことにより送信すべきデータのストリームを生成し、ホスト端末に送信する画像送出部と、を備えることを特徴とする。
【０００７】
本発明の別の態様も動画像撮影装置に関する。この動画像撮影装置は、左右の異なる視点から同じ対象物を撮影する一対のカメラを備えた動画像撮影装置であって、一対のカメラはそれぞれ、対象物を撮影して得られる動画像の各フレームを多段階で縮小することにより異なる解像度の複数の画像のデータを、それぞれ所定の画素順に生成し、ストリームとして順次出力する画像データ生成部と、画像データ生成部から出力された複数の画像のデータのうち所定の複数の画像のデータを、画像の一列分の画素列またはそれより小さい範囲の画素列ごとに接続してストリームとして出力することにより、所定の複数の画像を含む仮想的な合成画像を生成する画像合成部と、を備え、動画像撮影装置はさらに、一対のカメラが生成した視点の異なる画像のデータのうち、所定の解像度の画像のデータに対しステレオマッチングを行うことにより、対象物の３次元空間における位置を表す奥行き画像を所定の画素順に生成し、ストリームとして順次出力するステレオマッチング処理部と、接続したホスト端末からデータの送信要求を受け付け、画像データ生成部、画像合成部、およびステレオマッチング処理部から出力された複数のストリームから、要求された画像および領域に含まれる画素のデータを抽出していくことにより送信すべきデータのストリームを生成し、ホスト端末に送信する画像送出部と、を備えることを特徴とする。
【０００８】
本発明のさらに別の態様は情報処理システムに関する。この情報処理システムは、対象物を撮影して動画像のデータを生成する動画像撮影装置と、当該動画像撮影装置から動画像のデータの一部を取得し、それを利用して所定の画像処理を行ったうえ画像を表示するホスト端末と、を備えた情報処理システムであって、動画像撮影装置は、撮影して得られた動画像の各フレームを多段階で縮小することにより異なる解像度の複数の画像のデータを、それぞれ所定の画素順に生成し、ストリームとして順次出力する画像データ生成部と、画像データ生成部から出力された複数の画像のデータのうち所定の複数の画像のデータを、画像の一列分の画素列またはそれより小さい範囲の画素列ごとに接続してストリームとして出力することにより、所定の複数の画像を含む仮想的な合成画像を生成する画像合成部と、画像データ生成部および画像合成部から出力された複数のストリームから、ホスト端末から要求された画像および領域に含まれる画素のデータを抽出していくことにより送信すべきデータのストリームを生成したうえ、ホスト端末に送信する画像送出部と、を備えることを特徴とする。
【０００９】
本発明のさらに別の態様は情報処理装置に関する。この情報処理装置は、対象物を撮影しているカメラに対し、解像度および画像内の領域を指定して動画像のフレームの画像データの送信を要求するデータ要求部と、要求に従ってカメラから送信された、指定した領域の画素値を画素列ごとに接続したストリームの状態の画像データを、メインメモリにおいて２次元の画像データとして展開するデータ展開部と、２次元の画像データを利用して所定の画像処理を行ったうえ画像を表示するデータ処理部と、を備え、データ要求部は、カメラ内で生成される、動画像のフレームを多段階で縮小することにより得られる異なる解像度の複数の画像をそれぞれ所定の矩形領域に配置した合成画像を指定し、データ展開部は、カメラから送信された合成画像を、合成対象の画像ごとに個別の２次元の画像データに展開することにより画像の分別を行うことを特徴とする。
【００１０】
本発明のさらに別の態様は画像データ処理方法に関する。この画像データ処理方法は、動画像撮影装置が行う画像データ処理方法であって、対象物を撮影して得られる動画像の各フレームを多段階で縮小することにより異なる解像度の複数の画像のデータを、それぞれ所定の画素順に生成し、ストリームとして順次出力するステップと、出力するステップにおいて出力された複数の画像のデータのうち所定の複数の画像のデータを、画像の一列分の画素列またはそれより小さい範囲の画素列ごとに接続してストリームとして出力することにより、所定の複数の画像を含む仮想的な合成画像を生成するステップと、接続したホスト端末からデータの送信要求を受け付け、出力するステップおよび生成するステップにおいて出力された複数のストリームから、要求された画像および領域に含まれる画素のデータを抽出していくことにより送信すべきデータのストリームを生成し、ホスト端末に送信するステップと、を含むことを特徴とする。
【００１１】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によると、撮像から、そのデータを用いた画像の表示までのレイテンシを抑えることができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係る低遅延カメラシステムの全体構成を示す図である。
【図２】実施の形態１に係るカメラの構成を示す図である。
【図３】実施の形態１におけるカメラの画像合成部および画像送出部の構成を詳細に示す図である。
【図４】実施の形態１におけるホスト端末の内部回路構成を示す図である。
【図５】実施の形態１のカメラおよびホスト端末におけるデータの形態の基本的な変遷を模式的に示す図である。
【図６】実施の形態１における、１／４デモザイク後画像、１／１６デモザイク後画像、１／６４デモザイク後画像の画素値の、ピラミッドフィルタ部からの入力タイミングを示すタイムチャートである。
【図７】実施の形態１において画像合成部が複数の画像の画素列のデータをつなげた様子を模式的に示す図である。
【図８】実施の形態１におけるホスト端末のデータ要求処理およびカメラのデータ送信処理に係る構成を示す図である。
【図９】実施の形態１における画像送出部の構成の変形例を示す図である。
【図１０】実施の形態２に係るカメラの構成を示す図である。
【図１１】実施の形態３に係るカメラの構成を示す図である。
【図１２】実施の形態３におけるホスト端末とステレオカメラが協働して画像処理を行う処理手順の例を示すフローチャートと、生成される画像例を示す図である。
【図１３】実施の形態３におけるホスト端末とステレオカメラが協働して画像処理を行う処理手順の別の例を示すフローチャートと、生成される画像例を示す図である。
【図１４】実施の形態３におけるホスト端末とステレオカメラが協働して画像処理を行う処理手順の別の例を示すフローチャートと、生成される画像例を示す図である。
【発明を実施するための形態】
【００１４】
実施の形態１
図１は、本実施形態に係る低遅延カメラシステム１０の全体構成を示す。このシステムでは、ユーザ６の動画像をカメラ１００で撮像し、そのデータに基づきホスト端末２０で画像処理を行い、ディスプレイ４にその結果を映し出したり、またはインターネット、ＬＡＮ（Local Area Network）等のネットワーク１２を介して所定の通信先に送信したりする。
【００１５】
カメラ１００は、ＣＣＤ（Charge Coupled Device）またはＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子を備えたデジタルビデオカメラであり、図示するように、ディスプレイ４の筐体の上部に設置される。ディスプレイ４は、例えば液晶テレビ、プラズマテレビ、ＰＣディスプレイ等であり、通常ユーザ６はディスプレイ４の前方に位置してカメラ１００によってユーザの全身または一部が撮像される。
【００１６】
ディスプレイ４に映る像は、低遅延カメラシステム１０で実行されるアプリケーションによって異なる。例えば、低遅延カメラシステム１０をユーザ６の動作や表情を認識して何らかの操作指示として解釈するユーザインタフェース（ＵＩ）として使用する場合、ディスプレイ４に映し出される像８はユーザ６の顔や手などの体の一部または全身である。低遅延カメラシステム１０をビデオチャットとして使用する場合、ディスプレイ４に映し出される像８はチャット相手の顔であり、ユーザ６自身の像はネットワーク１２を介してチャット相手のディスプレイ上に映し出される。
【００１７】
上記のような使用態様から、カメラ１００はディスプレイ４の上部に設置されるのが最適である。しかしながら、ユーザ６の全身または一部を撮像できる限り、ディスプレイ４の近傍以外、例えばホスト端末２０の近傍やユーザの周囲などに配置されてもよい。また、カメラ１００は単体の構成でなく、ディスプレイ４の筐体などに埋め込まれていてもよい。カメラ１００で撮像素子を使用する代わりに、アナログ画像をＡ／Ｄ変換して用いてもよい。
【００１８】
ホスト端末２０は、画像処理機能を備えたパーソナルコンピュータやゲーム装置などのコンピュータ端末である。ホスト端末２０は、ユーザ６をカメラ１００で撮影して得られた動画像の各フレーム、または各フレームから得られる各種データを時系列的に連続して取り込み、所定の画像処理を行う。ビデオチャットアプリケーションの場合は、ユーザ６の画像をネットワーク１２を介してリアルタイムでチャット相手に送信する。ユーザインタフェースアプリケーションの場合は、ユーザ６の画像、それから得られる各種データなどに基づき所定の情報処理を実施し、その結果をディスプレイ４に出力する。
【００１９】
例えばユーザ６の動きに応じて動くキャラクターの画像や、ユーザ６の手に剣などのアイテムを持たせた画像をリアルタイムでディスプレイ４に出力する。このようなアプリケーションにおいて必要となる、ユーザ６の顔検出処理や特定部位のトラッキング処理は、ホスト端末２０が行ってもよいし、後述するようにカメラ１００が行い、その結果を上記「各種データ」の一部としてホスト端末２０に送信するようにしてもよい。
【００２０】
なお上記のビデオチャットアプリケーションにおいても、顔検出処理の結果得られたユーザ６の顔の領域のみ高解像度で表すなどの加工を行ってもよい。ホスト端末２０は、上記の画像処理の他に、各種アプリケーションを実行するためのメニューやカーソル等のオブジェクト画像を合成してディスプレイ４に表示させることもできる。
【００２１】
このように、低遅延カメラシステム１０においてカメラ１００が撮影した動画像を利用してなされる処理は様々考えられ、その内容は特に限定されない。本実施の形態ではいずれの処理を行う場合でも、カメラ１００が、動画像の撮影のみならず、それを用いた何らかの処理を行い、複数種類のデータを生成する。カメラ１００が行う処理、ひいてはその構成もまた、アプリケーションや、カメラおよびホスト端末の処理能力などによって様々考えられる。
【００２２】
本実施の形態では、カメラ１００が、自らが撮影している映像を複数の解像度で表した動画像データを生成してゆき、ホスト端末２０からの要求に従い、そのうち必要なデータのみをリアルタイムにホスト端末２０に送出する。ここでホスト端末２０は、解像度、表色系やその要素など画像全体の表し方を指定できるほか、フレーム内の領域も指定できることとする。
【００２３】
例えば低解像度の全体画像のデータと、高解像度の画像のうち注目すべき領域のみの画像データをカメラ１００から取得し、それらの画像を画像平面上で合成することにより、データ伝送の負荷を抑えつつ、注目すべき領域については詳細に表現された動画像を表示することができる。この例は、ホスト端末２０において顔検出処理を行うことにより得られた顔の領域を注目すべき領域とすれば、ビデオチャットなどのアプリケーションに有効である。
【００２４】
図２は、本実施形態に係るカメラ１００の構成を示す。同図および後述の図３、４、８〜１１は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、描画回路などの構成で実現でき、ソフトウェア的にはデータ入力機能、データ保持機能、画像処理機能、描画機能などの諸機能を発揮するプログラムで実現される。これらの図では、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによって様々な形で実現できる。なお、図２中には、説明を容易にするために、各機能ブロックで処理される画像部分の模式図も含まれている。
【００２５】
カメラ１００は、画像取得部１０２、デモザイク部１０４、ピラミッドフィルタ部１７０、画像合成部１５６、画像送出部１５１、および通信部１０８を備える。画像取得部１０２は、ＣＣＤまたはＣＭＯＳ等の撮像素子で露光された画像を所定のタイミング（例えば、６０回／秒）で読み出す。以下の説明では、この画像は横方向に画素Ｗ個分、縦方向に画素Ｈ個分の幅を有するものとする。この画像はいわゆるＲＡＷ画像である。画像取得部１０２は、ＲＡＷ画像の横一列分の露光が完了する毎に、これをデモザイク部１０４および画像送出部１５１に送る。
【００２６】
デモザイク部１０４は、画素Ｗ個分の容量を有するＦＩＦＯ（First In First Out）バッファ１０５と簡易デモザイク処理部１０６とを有する。ＦＩＦＯバッファ１０５には、ＲＡＷ画像の横一列分の画素情報が入力され、次の横一列分の画素がデモザイク部１０４に入力されるまでそれを保持する。簡易デモザイク処理部１０６は、横二列分の画素を受け取ると、それらを用いて、各画素に対してその周辺画素に基づき色情報を補完してフルカラー画像を作り出すデモザイク（de-mosaic）処理を実行する。
【００２７】
当業者には周知のように、このデモザイク処理には多数の手法が存在するが、ここでは横二列分の画素のみを利用する簡易なデモザイク処理で十分である。一例として、対応するＹＣｂＣｒ値を算出すべき画素がＧ値のみを有している場合は、Ｒ値は左右に隣接するＲ値を平均、Ｇ値は当該Ｇ値をそのまま使用、Ｂ値は上または下に位置するＢ値を使用してＲＧＢ値とし、これを所定の変換式に代入してＹＣｂＣｒ値を算出するなどである。このようなデモザイク処理は周知であるからこれ以上詳細な説明は省略する。なおデモザイク部１０４および以後の処理で生成される画像データの色空間はＹＣｂＣｒに限定されるものではない。
【００２８】
簡易なデモザイク処理で十分な理由は、高品質の画像が必要な場合はＲＡＷ画像を用いることができるためである。簡易なデモザイク処理の変形例として、ＲＧＢの４画素から一画素のＹＣｂＣｒ値を構成する手法を用いてもよい。この場合は、ＲＡＷ画像の１／４サイズのデモザイク後画像が得られるので、後述する第１フィルタ１１０は不要になる。
【００２９】
簡易デモザイク処理部１０６は、例えば図示のように、横２×縦２のＲＧＢの４画素をＹＣｂＣｒカラー信号に変換する。そして、この４画素からなるブロックは、画像送出部１５１に１／１デモザイク画像として渡されるとともに、ピラミッドフィルタ部１７０に送られる。
【００３０】
ピラミッドフィルタ部１７０は、ある画像を複数の解像度に階層化して出力する機能を有する。ピラミッドフィルタは、一般に必要とする解像度のレベルに応じた数の１／４縮小フィルタを備えるが、本実施形態では第１フィルタ１１０〜第３フィルタ１３０の３階層のフィルタを有している。各フィルタは、相互に隣接する４個の画素をバイリニア補間して４画素の平均画素値を演算する処理を実行する。したがって、処理後の画像サイズは処理前の画像の１／４になる。なお本実施の形態は、３階層以外のフィルタ数であっても同様に適用できることは当業者には容易に理解されるところである。
【００３１】
第１フィルタ１１０の前段には、Ｙ、Ｃｂ、Ｃｒのそれぞれの信号に対応して、画素Ｗ個分のＦＩＦＯバッファ１１２が一つずつ配置される。これらのＦＩＦＯバッファ１１２は、横一列分のＹＣｂＣｒ画素を、次の横一列分の画素が簡易デモザイク処理部１０６から出力されるまで保持する役割を有する。画素の保持時間は、撮像素子のラインスキャンの速度に応じて決まる。横二列分の画素が入力されると、第１フィルタ１１０は、横２×縦２の４画素分のＹ、Ｃｂ、Ｃｒの画素値を平均する。この処理を繰り返すことによって、１／１デモザイク後画像は縦横それぞれ１／２の長さとなり、全体として１／４のサイズに変換される。変換された１／４デモザイク後画像は、画像合成部１５６に送られるとともに、次段の第２フィルタ１２０に渡される。
【００３２】
第２フィルタ１２０の前段階には、Ｙ、Ｃｂ，Ｃｒのそれぞれの信号に対応して、画素Ｗ／２個分のＦＩＦＯバッファ１２２が一つずつ配置される。これらのＦＩＦＯバッファ１２２も、横一列分のＹＣｂＣｒ画素を、次の横一列分の画素が第１フィルタ１１０から出力されるまで保持する役割を有する。横二列分の画素が入力されると、第２フィルタ１２０は、横２×縦２の４画素分のＹ、Ｃｂ、Ｃｒの画素値を平均する。この処理を繰り返すことによって、１／４デモザイク後画像は縦横それぞれ１／２の長さとなり、全体として１／１６のサイズに変換される。変換された１／１６デモザイク後画像は、画像合成部１５６に送られるとともに、次段の第３フィルタ１３０に渡される。
【００３３】
第３フィルタ１３０についても、前段にＷ／４個分のＦＩＦＯバッファ１３２が配置される以外は、上記と同様の処理を繰り返す。そして画像合成部１５６に、１／６４サイズのデモザイク後画像を出力する。なお、上記のようなピラミッドフィルタは、特許文献１にも記載されているように周知であるから、本明細書ではこれ以上の詳細な説明を省略する。
【００３４】
このように、ピラミッドフィルタ部１７０の各フィルタからは、１／４ずつ縮小された画像出力が画像合成部１５６に入力される。これから分かるように、ピラミッドフィルタ部１７０内のフィルタを通過するほど、各フィルタの前段に必要となるＦＩＦＯバッファの大きさは小さくて済むようになる。なおフィルタの数は３つに限定されず、求められる解像度の幅に応じて適宜決定してよい。
【００３５】
画像合成部１５６は、第１フィルタ１１０、第２フィルタ１２０、第３フィルタ１３０からそれぞれ１／４、１／１６、１／６４デモザイク後画像のＹＣｂＣｒ画素値を受け取る。そして各画像の横一列分の画素列、あるいは一列分より小さい範囲の画素列を所定の規則でつなげて、Ｙ、Ｃｂ、Ｃｒの画素値のそれぞれについて、１／４、１／１６、１／６４デモザイク後画像の画素列が接続した新たな画素列を生成する。生成された画素列は画像送出部１５１に送られる。
【００３６】
画像送出部１５１は、入力された複数種類の画像データのうち、ホスト端末２０から通信部１０８を介して受けたデータ要求に応じて必要なデータを選び出す。そして選び出したデータをパケット化して通信部１０８に送る。本実施の形態においてカメラ１００が行う処理は、画像の左上を起点とし、左から右への処理を画像の下方向へ繰り返すラスタ順で実行され、横一列の画素を基本的な処理単位とする。そして画像送出部１５１へ入力する各種画像のデータ形式、およびホスト端末２０へ送信される画像のデータ形式は基本的に、画像の横一列のデータを上から順につなげたストリームとする。
【００３７】
通信部１０８は、例えばＵＳＢ１．０／２．０等の所定のプロトコルにしたがって、パケットをホスト端末２０に送出する。ホスト端末２０との通信は有線に限らず、例えばＩＥＥＥ８０２．１１ａ／ｂ／ｇなどの無線ＬＡＮ通信、ＩｒＤＡなどの赤外線通信であってもよい。なお図２においてはＹ、Ｃｂ、Ｃｒのデータを個別に表現し、そのそれぞれに対してデータ入出力のための矢印を示したが、以後は図が煩雑になるのを防ぐため、それらの要素を１セットで表す。
【００３８】
本実施の形態において、画像合成部１５６が生成するデータは、３つのデモザイク後画像の画素列が混在する一連の画素値のストリームである。したがって厳密には３つのデモザイク後画像をつなげた結果を２次元平面の画像として生成するものではない。しかしながら後に詳述するように、画像合成部１５６が出力するストリームに対し、画像の横一列分の画素数に相当する画素数を定義すれば、以後の処理は、画像合成部１５６を介さないＲＡＷ画像や１／１画像のデータと同様となる。結果として画像合成部１５６は、実質的には１／４、１／１６、１／６４デモザイク後画像を合成した画像を生成していることになる。以後、この仮想的な画像を「合成画像」と呼ぶ。
【００３９】
図３はカメラ１００の画像合成部１５６および画像送出部１５１の構成を詳細に示している。画像合成部１５６は、第２フィルタ１２０および第３フィルタ１３０から取得した１／１６、１／６４デモザイク後画像の横一列分のデータをそれぞれ一時保存するＦＩＦＯバッファ１４９、１５０を有する。
【００４０】
そして後に詳述するように、第１フィルタ１１０からの１／４デモザイク後画像の横一列分の画素のデータに、第２フィルタ１２０からの１／１６デモザイク後画像の横一列分の画素列の半分の画素のデータと、第３フィルタ１３０からの１／６４デモザイク後画像の横一列分の画素列の４分の１の分の画素のデータをこの順でつなげて仮想的な合成画像の横一列分のデータとする。
【００４１】
画像送出部１５１はデータ選択部１５４、パケット化部１６２、および制御部１６４を有する。画像送出部１５１の制御部１６４は、ホスト端末２０からの要求に基づき、データ選択部１５４に、各種画像データのうちいずれをパケットとして送出するかを指示する。データ選択部１５４は、画像取得部１０２から入力されたＲＡＷ画像、デモザイク部１０４から入力された１／１デモザイク後画像、画像合成部１５６から入力された合成画像の画素列のデータを入力データとし、制御部１６４から指示されたデータを選択、抽出し、パケット化部１６２に送る。
【００４２】
このとき、ホスト端末２０からの要求によっては上述のとおり、ある画像データのストリームをそのまま送る場合と、注目すべき領域に含まれる一部の範囲のデータのみを送る場合がある。後者の場合、送る部分のデータをつなげることによりストリームを再構築する。パケット化部１６２はデータ選択部１５４から入力されたストリームを、通信部１０８のプロトコルに応じたサイズごとにパケット化し、内部のパケットバッファ（図示せず）に書き込む。例えばＵＳＢの場合、ストリームをエンドポイントのサイズごとにパケット化する。
【００４３】
通信部１０８は、当該パケットバッファ内のパケットを、所定の通信プロトコルにしたがってホスト端末２０に転送する。なお、ＲＡＷ画像、１／１デモザイク後画像、合成画像のデータのうち、複数の画像のデータが要求された場合、データ選択部１５４はそれらに対応する複数のストリームをパケット化部１６２に入力する。データ選択部１５４の出力、およびパケット化部１６２の入出力、通信部１０８の入出力に複数のチャンネルを設け、要求された複数のデータを並列に送信するようにすることで、より低遅延のデータ送出を実現してもよい。この場合については後に詳述する。
【００４４】
図４はホスト端末２０の内部回路構成を示している。ホスト端末２０は、ＣＰＵ（Central Processing Unit）５０、ＧＰＵ（Graphics Porcessing Unit)５２、表示制御部５４、記憶部５６、メインメモリ５８、および通信部６０を含む。ＣＰＵ５０は、オペレーティングシステムやアプリケーションなどのプログラムに基づいて、信号処理や内部構成要素を制御する。ＧＰＵ５２はＣＰＵ５０からの要求に従い画像処理を行う。表示制御部５４は、ＧＰＵ５２がフレームバッファ（図示せず）に描画した画像データをディスプレイ４に表示するためのビデオ信号を生成する。
【００４５】
記憶部５６はハードディスクドライブや不揮発性メモリなどで構成され、低遅延カメラシステム１０を動作させるためのプログラムや必要なデータが格納される。メインメモリ５８は、ＲＡＭ（ランダムアクセスメモリ）などで構成され、プログラムやデータのロードのほか、カメラ１００から送信されたデータを格納する。通信部６０はＵＳＢやＩＥＥＥ１３９４などの周辺機器インタフェースや、有線又は無線ＬＡＮのネットワークインタフェースであり、本実施の形態では特に、カメラ１００へのデータ要求信号の送信、カメラ１００から送信されたデータの受信を行う。これらの各部は、バス６２を介して相互に接続されている。なおＧＰＵ５２は、テクスチャデータなど処理に必要なデータを、バス６２を介してメインメモリ５８から直接読み出すことができる。
【００４６】
図５はカメラ１００およびホスト端末２０におけるデータの形態の基本的な変遷を模式的に示している。ここでは例として、横方向に画素Ｗ個分、縦方向に画素Ｈ個分の幅を有するフレーム画像２００全体のデータを、カメラ１００からホスト端末２０に送信する場合を考える。上述のように本実施の形態では画像データの生成、選択、送信を画素のラスタ順に行い、横一列分の画素列を順次つなげてストリームの形式で処理する。
【００４７】
このような状況においてデータ選択部１５４が出力するデータがストリーム２０２である。同図においてストリーム２０２の横軸は時間経過を表しており、ストリーム２０２を構成する各矩形Ｌ１、Ｌ２、・・・、ＬＨはそれぞれ、フレーム画像２００の１列目、２列目、・・・、Ｈ列目の画素のデータを表す。１画素のデータサイズをｄバイトとすると各矩形のデータサイズはＷ×ｄバイトである。
【００４８】
パケット化部１６２は、ストリーム２０２を所定サイズごとにパケットにまとめ、パケットＰ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、・・・を生成する。これによりカメラ１００からホスト端末２０へ、パケットＰ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、・・・の順に送信される。ホスト端末２０はパケットＰ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、・・・を通信部６０を介して受信すると、ＣＰＵ５０の制御のもとメインメモリ５８に格納する。
【００４９】
このとき、本来のフレーム画像２００の横方向の画素数Ｗを横幅とするようにメインメモリ５８にパケットのデータをラスタ順に並べていき、Ｗ×ｄ×Ｈバイトの連続したアドレスにデータを展開することにより、画像２０４を復元する。同図において画像２０４を構成する矩形は各パケットのデータを示している。ＧＰＵ５２はＣＰＵ５０の制御のもと、メインメモリ５８に展開された画像２０４に加工を施したり別の画像と合成したりしてディスプレイ４に表示すべき画像を描画する。
【００５０】
次に画像合成部１５６が１／４、１／１６、１／６４デモザイク後画像を合成する手法について説明する。図６は、１／４デモザイク後画像、１／１６デモザイク後画像、１／６４デモザイク後画像の画素値の、ピラミッドフィルタ部１７０の各フィルタからの入力タイミングを示すタイムチャートである。同図において時間ステップＳ１、Ｓ２、Ｓ３、Ｓ４、・・・はそれぞれ、１／４デモザイク後画像の１行目、２行目、３行目、４行目、・・・の画素値が入力される期間を表す。
【００５１】
上記の１／４デモザイク後画像のように、合成画像に含まれる画像のうち最高解像度の画像は、ピラミッドフィルタ部１７０におけるデータの生成レートが最も高い。そこで当該画像の横一列分の画素値が入力される期間を基準の時間ステップとし、当該時間ステップを合成画像の横一列分の画素列と対応させる。すなわち、最高解像度の画像の横一列分の画素値が入力される期間を基準周期として、合成画像の横一列分のデータが生成される。
【００５２】
図の上段、中段、下段はそれぞれ、１／４デモザイク後画像、１／１６デモザイク後画像、１／６４デモザイク後画像の入力タイミングを示しており、１つの矩形が１画素分の入力に対応する。まず時間ステップＳ１において、１／４デモザイク後画像の１列目の画素列Ｌ（１／４）１の画素値が左の画素から順に入力される。この時間ステップでは、１／１６デモザイク後画像、１／６４デモザイク後画像は生成されていないため入力されない。
【００５３】
次の時間ステップＳ２では、１／４デモザイク後画像の２列目の画素列Ｌ（１／４）２の画素値が左の画素から順に入力される。このときピラミッドフィルタ部１７０では、１／４デモザイク画像の１列目の画素列Ｌ（１／４）１および２列目の画素列Ｌ（１／４）２の画素値を用いて１／１６デモザイク後画像の１列目の画素列Ｌ（１／１６）１が生成されるため、時間ステップＳ２では当該画素列の画素値も入力される。
【００５４】
例えば１／１６デモザイク後画像の１列目の画素列Ｌ（１／１６）１の左端の期間２１０で入力される画素値は、１／４デモザイク後画像の１列目の画素列Ｌ（１／４）１のうち、期間２０６で入力される２つの画素の画素値、および２列目の画素列Ｌ（１／４）２のうち、期間２０８で入力される２つの画素の画素値を用いて生成される。このため時間ステップＳ２において、画素列Ｌ（１／１６）１の画素値の入力タイミングは、画素列Ｌ（１／４）２の対応する画素の画素値の入力タイミングより少なくとも２画素分遅延する。
【００５５】
次の時間ステップＳ３では、１／４デモザイク後画像の３列目の画素列Ｌ（１／４）３の画素値が入力される。この時間ステップでは、１／１６デモザイク後画像の２列目の画素値が生成されておらず、１／６４デモザイク後画像は生成されていないため、そのいずれも入力されない。次の時間ステップＳ４、すなわち１／４デモザイク画像の４列目の画素列Ｌ（１／４）４の画素値が入力される期間では、時間ステップＳ２と同様、１／１６デモザイク後画像の２列目の画素列Ｌ（１／16）２の画素値も入力される。
【００５６】
さらにピラミッドフィルタ部１７０では、１／１６デモザイク画像の１列目の画素列Ｌ（１／１６）１および２列目の画素列Ｌ（１／１６）２の画素値を用いて１／６４デモザイク後画像の１列目の画素列Ｌ（１／６４）１が生成されるため、時間ステップＳ４では当該画素列の画素値も入力される。例えば１／６４デモザイク後画像の１列目の画素列Ｌ（１／６４）１のうち、最初の入力期間２１８で入力される画素値は、１／１６デモザイク画像の１列目の画素列Ｌ（１／１６）１のうち、期間２１０および期間２１２で入力される２つの画素の画素値、および２列目の画素列Ｌ（１／１６）２のうち、期間２１４および期間２１６で入力される２つの画素の画素値を用いて生成される。
【００５７】
このため時間ステップＳ４において、画素列Ｌ（１／６４）１の入力タイミングは、画素列Ｌ（１／１６）２の対応する画素の画素値の入力タイミングより少なくとも２画素分遅延する。以後、同様に各画像の画素値入力を繰り返すことにより、１／４デモザイク後画像、１／１６デモザイク後画像、１／６４デモザイク後画像の全画素値が画像合成部１５６へ入力される。
【００５８】
このように各画像の画素値は、ピラミッドフィルタ部１７０の対応するフィルタから個別のストリームとしてラスタ順に入力される。画像合成部１５６はこれらをつなげて１つのストリームとなるようにして画像送出部１５１へ出力する。最も単純には、元の画像に関わらず、入力された時間順で画素値のデータをつなげていくことが考えられる。この場合、合成処理自体は容易であるが、後の処理で画像ごとに一列ずつデータを分類、抽出する必要が生じ、処理が煩雑化する。
【００５９】
また各時間ステップにおいて画像ごとに画素値をまとめて画素列を生成し、それらを直列につなげることも考えられる。この場合、時間ステップＳ１やＳ３では、入力される画素値が１／４デモザイク後画像のデータのみであるのに対し、例えば時間ステップＳ４では１／４デモザイク画像、１／１６デモザイク画像、１／６４デモザイク画像の３つの画像のデータとなるなど、時間ステップによって出力されるデータ長が大きく変化する。そこで本実施の形態では、データが入力されない時間ステップがある画像については、その時間ステップを利用して、直前に入力された画素値の一部を出力するようにし、各時間ステップで出力されるデータ長をおよそ均等化する。
【００６０】
図７は画像合成部１５６が複数の画像の画素列のデータをつなげた様子を模式的に示している。図中、Ｓ０、Ｓ１、Ｓ２、Ｓ３、・・・は図６と同様の時間ステップであり、それぞれの期間に、１／４デモザイク後画像の一列分の画素値が入力される。同図では各時間ステップにデータが出力される画素列を、画像ごとに異なる網掛け矩形で示している。図６を参照して説明したように、時間ステップＳ１では１／４デモザイク後画像の１列目の画素列Ｌ（１／４）１の画素値のみが入力されるため、画像合成部１５６はそれをそのまま出力する。元のＲＡＷ画像の横方向の画素数がＷであるとすると、１／４デモザイク後画像の一列分の画素数は、同図に示すようにＷ／２である。
【００６１】
次の時間ステップＳ２では、１／４デモザイク後画像の２列目の画素列Ｌ（１／４）２の画素値、および１／１６デモザイク後画像の１列目の画素列Ｌ（１／１６）１の画素値が図６に示すようなタイミングで並列に入力される。画像合成部１５６はそのうち、１／１６デモザイク後画像の１列目の画素列Ｌ（１／１６）１の画素値をＦＩＦＯバッファ１４９に一時保存し、１／４デモザイク後画像の２列目の画素列Ｌ（１／４）２の画素値を連続して先に出力する。
【００６２】
１／４デモザイク画像の２列目の画素列Ｌ（１／４）２の画素値が全て出力されたら、続けて、１／１６デモザイク後画像の１列目の画素列Ｌ（１／１６）１をＦＩＦＯバッファ１４９から読み出し、出力する。このとき次の時間ステップＳ３で出力する分を考慮し、１／１６デモザイク後画像の１列目の画素列Ｌ（１／１６）１の全画素のうち前半部分（画像平面における左半分）の画素値のみ出力し、残りはＦＩＦＯバッファ１４９に引き続き保存しておく。
【００６３】
次の時間ステップＳ３では、１／４デモザイク後画像の３列目の画素列Ｌ（１／４）３の画素値のみが入力される。画像合成部１５６は、当該画素列の画素値をそのまま出力し、続けて、１／１６デモザイク後画像の１列目の画素列Ｌ（１／１６）１のうち未出力であった後半部分（画像平面における右半分）の画素値を内部メモリから読み出し、出力する。
【００６４】
次の時間ステップＳ４では、１／４デモザイク後画像の４列目の画素列Ｌ（１／４）４の画素値および１／１６デモザイク後画像の２列目の画素列Ｌ（１／１６）２、１／６４デモザイク後画像の１列目の画素列Ｌ（１／６４）１の画素値が図６に示すようなタイミングで並列に入力される。画像合成部１５６はそのうち、１／１６デモザイク後画像の２列目の画素列Ｌ（１／１６）２および１／６４デモザイク後画像の１列目の画素列Ｌ（１／６４）１の画素値をそれぞれＦＩＦＯバッファ１４９、１５０に一時保存し、１／４デモザイク後画像の４列目の画素列Ｌ（１／４）４の画素値を連続して先に出力する。
【００６５】
１／４デモザイク画像の４列目の画素列Ｌ（１／４）４の画素値が全て出力されたら、続けて、１／１６デモザイク後画像の２列目の画素列Ｌ（１／１６）２の前半部分をＦＩＦＯバッファ１４９から読み出し、出力する。次に１／６４デモザイク後画像の１列目の画素列Ｌ（１／６４）１を出力する。このとき次以降の３つの時間ステップＳ５、Ｓ６、Ｓ７で出力する分を考慮し、１／６４デモザイク後画像の１列目の画素列Ｌ（１／１６）１を４分の１分割し、その最初の部分の画素値のみ出力する。残りはＦＩＦＯバッファ１５０に保存しておく。
【００６６】
次の時間ステップＳ５では、１／４デモザイク後画像の５列目の画素列Ｌ（１／４）５の画素値のみが入力される。画像合成部１５６は、当該画素列の画素値をそのまま出力し、続けて、１／１６デモザイク後画像の２列目の画素列Ｌ（１／１６）２のうち未出力であった後半部分の画素値をＦＩＦＯバッファ１４９から読み出し、出力する。さらに１／６４デモザイク後画像の１列目の画素列Ｌ（１／１６）１の未出力のデータのうち４分の１分割した２番目の部分の画素値を出力する。
【００６７】
同様に、次の時間ステップＳ６では、１／４デモザイク後画像の６列目の画素列Ｌ（１／４）６の画素値、１／１６デモザイク後画像の３列目の画素列Ｌ（１／１６）３の前半部分の画素値、１／６４デモザイク後画像の１列目の画素列Ｌ（１／６４）１の未出力のデータのうち４分の１分割した３番目の部分の画素値を出力する。次の時間ステップＳ７では、１／４デモザイク後画像の７列目の画素列Ｌ（１／４）７の画素値、１／１６デモザイク後画像の３列目の画素列Ｌ（１／１６）３の後半部分の画素値、１／６４デモザイク後画像の１列目の画素列Ｌ（１／６４）１のうち４分の１分割した最後の部分の画素値を出力する。
【００６８】
すなわち１／１６デモザイク後画像の１列目の画素列Ｌ（１／１６）１は、時間ステップＳ２およびＳ３の２つの時間ステップに半分ずつ出力される。また１／６４デモザイク後画像の１列目の画素列Ｌ（１／６４）１は、時間ステップＳ４、Ｓ５、Ｓ６、Ｓ７の４つの時間ステップに４分の１ずつ出力される。ＲＡＷ画像の横方向の画素数がＷであるとすると、１／１６デモザイク後画像および１／６４デモザイク後画像の横一列分の画素数はそれぞれＷ／４、Ｗ／８であるため、同図に示すように、時間ステップあたり（Ｗ／４）／２個、（Ｗ／８）／４個の画素のデータがそれぞれ出力される。
【００６９】
以上の出力処理を画像の最下段の列まで繰り返す。このとき１／４デモザイク後画像の最下段の画素列のデータを出力した時点では、１／１６デモザイク後画像の最下段の画素列の後半部分のデータ、および１／６４デモザイク後画像の最下段の残り４分の３の画素のデータが未出力となる。そこで直後の時間ステップＳ（Ｈ／２＋１）では、１／１６デモザイク後画像の最下段の画素列の後半部分のデータ、および１／６４デモザイク後画像の最下段の画素列を４分の１分割した２番目の部分のデータを出力する。
【００７０】
このとき、それまで１／４デモザイク後画像のデータを出力していたＷ／２画素分のデータとして、まず無効データを出力し、続けて１／１６デモザイク後画像、１／６４デモザイク後画像のデータを出力する。続く２つの時間ステップＳ（Ｈ／２＋２）、Ｓ（Ｈ／２＋３）では、それまで１／４デモザイク後画像および１／１６デモザイク後画像のデータを出力していたＷ／２＋（Ｗ／４）／２画素分のデータとして、まず無効データを出力し、続けて１／６４デモザイク後画像の最下段の画素列を４分の１分割した３番目の部分、４番目の部分のデータをそれぞれ出力する。
【００７１】
このように出力すると同図に示すように、はじめの３つの時間ステップと終わりの３つの時間ステップを除き、常時、Ｗ／２＋（Ｗ／４）／２＋（Ｗ／８）／４＝２１Ｗ／３２個の画素のデータが出力されることになる。また１列分の画素値を出力するのに、１／４デモザイク後画像は１時間ステップ、１／１６デモザイク後画像は２時間ステップ、１／６４デモザイク後画像は４時間ステップを要するため、１フレーム分の画像データを出力するのに要する時間ステップ数は、Ｈ／２＝（Ｈ／４）×２＝（Ｈ／８）×４と、全て等しくなる。結果として、３つの画像の１フレーム分のデータを出力するのに要する総時間ステップ数はＨ／２＋３となる。
【００７２】
上述のように画像合成部１５６が出力するデータは画素値の羅列であるが、各時間ステップに対応する画素の個数、すなわち２１Ｗ／３２を横一列分の画素の個数として与えておくことにより、画像送出部１５１ではＲＡＷ画像や１／１デモザイク後画像と同様、各時間ステップにおいて出力されるデータを画像の一列分のデータとして扱う。
【００７３】
したがって各時間ステップを画像の縦方向の画素に対応させることができ、結果として、図７の全体的な矩形領域で表されるような合成画像２２０を生成していることになる。上述のように各時間ステップで出力する画素列において各画像のデータが占める範囲を固定することにより、合成画像２２０において１／４デモザイク後画像、１／１６デモザイク後画像、１／６４デモザイク後画像のデータは、それぞれまとまった矩形領域を構成する。そのため、その局所性を利用すれば、画像ごとのデータの切り出しが容易に行える。
【００７４】
図８はホスト端末２０のデータ要求処理およびカメラ１００のデータ送信処理に係る構成を示している。なお同図において、図３および４で示した機能ブロックと重複するものには同じ符号を付し、その説明を一部省略する。またホスト端末２０とカメラ１００は上述のように互いの通信部を介して各種データの送受を行うが、同図では省略している。ホスト端末２０のＣＰＵ５０は、データ要求部６４、データ処理部６６、およびデータ展開部６８を有する。カメラ１００の画像送出部１５１のデータ選択部１５４は、ストリーム選択部１６６およびクロッピング部１６８を有する。
【００７５】
ＣＰＵ５０のデータ要求部６４は、カメラ１００に対し、送信を要求する画像およびその領域を指定するデータ要求信号を送信する。送信を要求する画像としては例えば、ＲＡＷ画像や各サイズのデモザイク後画像のいずれかを指定する。領域は例えば、画像平面における当該領域の左上の座標と横方向、縦方向の幅を指定する。ＣＰＵ５０のデータ要求部６４はそのほか、撮影の開始や終了を要求する信号、撮影条件を指定する信号などもカメラ１００に送信する。ここで撮影条件とは例えば、フレームレート、シャッタースピード、ホワイトバランス、画角などであり、カメラ１００が有する性能やＣＰＵ５０が実行しているアプリケーションなどに応じて決定される。
【００７６】
画像送出部１５１の制御部１６４は、データ要求部６４からのデータ要求信号を受信すると、データ選択部１５４にその情報を供給する。撮影の開始や終了を要求する信号、撮影条件を指定する信号などを受信した場合、制御部１６４は、カメラ１００の画像取得部１０２などに適宜その情報を提供するが、ここでは一般的な技術を適用できるため詳細な説明を省略する。
【００７７】
データ選択部１５４のストリーム選択部１６６は、画像取得部１０２、デモザイク部１０４、画像合成部１５６からそれぞれＲＡＷ画像、１／１デモザイク後画像、合成画像データのストリームを並列に読み出したうえ、データ要求信号で指定されている画像のデータのみを選択してクロッピング部１６８に出力する。クロッピング部１６８は、入力された画素のデータのうち、データ要求信号で指定されている矩形領域に含まれる画素のデータのみを抽出し、パケット化部１６２に出力する。
【００７８】
クロッピング部１６８が行う処理は、画像内の指定された矩形領域を切り出して余分な領域を除外する一般的なクロッピング処理と同様である。本実施の形態では処理対象が画像平面ではなく画素列単位となるが、元の画像の横一列分の画素数の情報を与えておけば、画像平面の２次元座標をストリームにおける一次元座標と対応づけることは容易であり、切り取る画素の特定は同様に行える。
【００７９】
本実施の形態では、１／４デモザイク後画像、１／１６デモザイク後画像、１／６４デモザイク後画像のデータを、図７に示すような合成画像上の矩形領域にまとめているため、このクロッピング処理によって３つの画像の切り分けを容易に行える。例えば図７に示した合成画像のうち、座標（Ｗ／２，１）を左上の頂点とする、横方向の幅Ｗ／８、縦方向の幅Ｈ／２の領域を指定すれば、１／１６デモザイク後画像の全体領域のみを切り出すことができる。
【００８０】
データ選択部１５４が以上の処理を繰り返すことにより、データ要求信号で指定された画像内の領域のデータが、画素列をつなげたストリーム形式でパケット化部１６２に連続して出力される。パケット化部１６２が受け取ったストリームはＦＩＦＯのポリシーで所定のサイズごとにパケット化され、順次ホスト端末２０に送信される。
【００８１】
ホスト端末２０のデータ展開部６８は、カメラ１００から受信したパケットを、図５に示すようにメインメモリ５８に画像平面として展開する。データ処理部６６は、展開された画像を用いて、実行中のアプリケーションに応じた処理を行う。このとき必要に応じてＧＰＵ５２に画像処理を要求し、ＧＰＵ５２はメインメモリ５８から画像を読み出し、加工や合成を行ってよい。メインメモリ５８に展開された画像データは一般的な画像データと同様であるため、テクスチャとして読み出すことも可能である。
【００８２】
データ処理部６６は、メインメモリ５８に展開された画像を解析して顔領域や追跡対象の位置を取得し、その領域の情報をデータ要求部６４に供給してもよい。このときデータ要求部６４は、当該領域を指定して新たなデータ要求信号をカメラ１００に送信してもよい。この場合、カメラ１００のクロッピング部１６８は、新たな画像フレームを処理するタイミングで、抽出する領域を指定に従い変更する。
【００８３】
図９は画像送出部の構成の変形例を示している。同図において、図８で示した機能ブロックと同様の機能を有するブロックには同じ符号を付し、その説明を一部省略する。この例では、画像送出部１５１の出力および通信部１０８の入出力が複数のチャンネルを有する。複数のチャンネルを設けることにより、異なる画像、異なる領域のデータを並列に抽出し、並列にホスト端末２０へ送信できる。
【００８４】
この場合、チャンネル数は特に限定されないが、同図においては３チャンネルを設けることにより、３種類のデータを同時に送信する。そのため画像送出部１５１は、第１データ選択部１５４ａ、第２データ選択部１５４ｂ、第３データ選択部１５４ｃの３つのデータ選択部と、第１パケット化部１６２ａ、第２パケット化部１６２ｂ、第３パケット化部１６２ｃの３つのパケット化部が設けられる。第１データ選択部１５４ａと第１パケット化部１６２ａ、第２データ選択部１５４ｂと第２パケット化部１６２ｂ、第３データ選択部１５４ｃと第３パケット化部１６２ｃがそれぞれ直列に接続され、担当するデータの選択、抽出、およびパケット化を行う。
【００８５】
したがって第１データ選択部１５４ａ、第２データ選択部１５４ｂ、第３データ選択部１５４ｃはそれぞれ、ストリーム選択部１６６ａとクロッピング部１６８ａ、ストリーム選択部１６６ｂとクロッピング部１６８ｂ、ストリーム選択部１６６ｃとクロッピング部１６８ｃのセットを有する。制御部１６４はホスト端末２０からのデータ要求信号に指定された最大３つの画像および領域の情報を、３つのデータ選択部にひとつずつ割り当てる。
【００８６】
ここで別のチャンネルに割り当てる画像および領域の情報は、全てが異なる画像でもよいし、同じ画像の異なる領域でもよい。各データ選択部およびパケット化部のセットが行う処理は、図８に示したデータ選択部１５４およびパケット化部１６２と同様である。このようにして画像送出部１５１から並列に出力された３つのストリームのパケットは、通信部１０８に設けられた３つのチャンネル、すなわち第１チャンネル１７２ａ、第２チャンネル１７２ｂ、第３チャンネル１７２ｃにそれぞれ入力され、ホスト端末２０へ並列に送信される。送信されたデータは、ホスト端末２０のメインメモリ５８に個別の画像として展開する。
【００８７】
以上述べた本実施の形態によれば、ユーザなどの動きを撮影するカメラと、それを利用して画像表示を行うホスト端末を含むシステムにおいて、撮影した動画像をカメラ内部で複数の解像度のデータとする。そして画像の種類および解像度ごとに、画素のラスタ順に画素値をつなげたストリームとする。そしてホスト端末の要求に従いその一部を送信し、ホスト端末のメモリにおいてフレーム画像を構築する。このように、カメラ内部ではフレーム画像として展開することなく画素列の状態で順次処理を行っていくことにより、カメラに設けるべきメモリサイズを最低限に抑えることができる。また撮影からホスト端末へ送信するまでの間、１フレーム分のデータが出揃うのを待つ必要が生じないため、システム全体として低遅延で動きに応じた画像表示を行える。
【００８８】
また複数の解像度の画像データを、一列分の画素値ごとにつなげて１つのストリームに含ませる。このとき、解像度によって「一列分の画素値」が生成されるレートが異なるため、低いレートでデータが生成される低解像度の画像は、データが生成されない期間も含め、均等にストリームに含まれるように配分する。これにより、単位時間あたりに処理および送信すべきデータサイズがおよそ均等になり、出力までに要する時間、使用する伝送帯域、送信に要する時間の見積もりが容易となるうえ、突発的なデータサイズの増大によって伝送帯域を圧迫する可能性が低くなる。
【００８９】
このようにして生成したストリームは、後段の処理において、１つの解像度の画像データのみからなるストリームと同等に扱えるため、実質的に、複数の解像度の画像からなる合成画像を生成していることになる。そして上述のようにつなげることにより、合成対象の画像がそれぞれ、合成画像中の矩形領域を構成するようになるため、合成画像内の領域を指定することで、クロッピングという一般的な画像処理によって、１つのストリームに混在する複数の画像のデータを容易に分別できる。
【００９０】
さらにカメラに、ホスト端末からの指定に応じたストリームの選択、一部のデータの抽出、パケット化を行う機構を複数設けることにより、複数のデータを並列に送信することができ、送信時間を短くすることができる。またそれぞれの機構が一つのストリームを担当し、ストリームごとにホスト端末に送信されるため、ホスト端末においてデータ分別の処理を省くことができる。
【００９１】
実施の形態２
実施形態１では、カメラ１００が、撮影した映像から複数の解像度の動画像データを生成し、ホスト端末２０からの要求に従い、そのうち必要なデータのみをリアルタイムにホスト端末２０に送出した。本実施の形態ではさらに、フレーム間の動き差分画像を生成してホスト端末２０の要求対象とする。さらにカメラ１００においていずれかの画像を解析し、その結果をメタデータとして、ホスト端末２０に送信する画像データに付加する。
【００９２】
本実施の形態は図１に示した低遅延カメラシステム１０と同様のシステムによって実現できる。またホスト端末２０も図４で示した構成と同様である。以後、主に実施の形態１と異なる点に着目して説明し、重複する部分についてはその説明を適宜省略する。
【００９３】
図１０は本実施に係るカメラの構成を示す。カメラ１００ａは、実施の形態１におけるカメラ１００と同様、画像取得部１０２、デモザイク部１０４、ピラミッドフィルタ部１７０、画像合成部１５６、画像送出部１５１ａ、および通信部１０８を備える。カメラ１００ａはさらに、差分画像生成部１７４および画像解析部１７６を有する。
【００９４】
画像取得部１０２、デモザイク部１０４、およびピラミッドフィルタ部１７０は、実施の形態１における対応する機能ブロックと同様に動作する。差分画像生成部１７４は、ピラミッドフィルタ部１７０が出力する所定の解像度の画像と、以前に出力された、同じ解像度の別のフレームの画像との差分画像を生成する。このため差分画像生成部１７４は、１フレーム分の画像データを一時保存する内部メモリ（図示せず）を備える。
【００９５】
そして新たにピラミッドフィルタ部１７０から出力される画素値と、当該内部メモリに保存した以前のフレームの対応する画素の画素値との差分をとり、その結果を差分画像の画素値として画像合成部１５６に出力する。この処理も画素のラスタ順で行うため出力されるデータは他の画像と同様のストリームである。
【００９６】
動きのある領域をおよそ見積もる場合など、ホスト端末２０が差分画像を用いる目的によっては、差分画像に高い解像度を求めない場合も多い。そこでピラミッドフィルタ部１７０が生成する最低解像度の画像から差分画像を生成し、画像合成部１５６による合成対象とする。差分画像を合成画像の一部とすれば、以後は画像送出部１５１ａおよび通信部１０８が実施の形態１で述べたのと同様に動作することにより、当該差分画像のデータをホスト端末２０へ送信することができる。
【００９７】
画像解析部１７６は、ピラミッドフィルタ部１７０が出力する所定の解像度の画像に対し所定の画像解析を行い、その結果を画像送出部１５１ａに渡す。なお同図では、差分画像生成部１７４と画像解析部１７６の処理対象を同じ解像度の画像としているが、本実施の形態をそれに限定する趣旨ではなく、互いの処理を独立に行ってよい。
【００９８】
画像解析部１７６が行う画像解析は、顔検出処理や、所定の形状を有する対象物のトラッキングなどである。したがって画像送出部１５１ａに渡す解析結果は、顔領域や対象物の領域の位置や大きさの情報と、検出／追跡精度を表す評価値などである。いかなる解析を行うか、および対象物の形状情報などの解析条件は、実行するアプリケーションに応じて、アプリケーション起動時などにホスト端末２０からカメラ１００へ通知しておく。
【００９９】
画像送出部１５１ａのパケット化部１６２（図３に図示）は、ホスト端末２０に送信する画像データの１フレーム分のストリームの直後、あるいは１フレーム分のストリーム中の所定の位置に、画像解析部１７６による画像解析の結果をメタデータとして挿入する。そして画像解析を行わない場合と同様に所定のサイズでパケット化する。
【０１００】
この場合ホスト端末２０は、カメラ１００から送信されたデータのうち画像データ部分を画像としてメインメモリに展開し、メタデータは当該画像の加工や合成などの処理に利用する。またメタデータを利用し、以降のフレームについてカメラ１００へ要求するデータの指定を新たに行ってもよい。画像データとメタデータの区別は、受信したストリームを全て画像とした場合の画像平面においてメタデータが付加されている領域をあらかじめ定めたり、メタデータ自体にそれを識別する情報を付加したりすることで可能となる。
【０１０１】
なお本実施の形態では、カメラ１００ａに差分画像生成部１７４と画像解析部１７６の双方を設けたが、どちらか一方のみを設けてもよい。またメタデータとして付加する情報は、画像解析の結果でなくてもよく、例えば元のＲＡＷ画像を取得したときのタイムスタンプなどでもよい。この場合、画像取得部１０２がフレームごとに生成したタイムスタンプの情報を、画像送出部１５１ａが直接取得し、上記と同様にストリームに挿入すればよい。
【０１０２】
以上述べた本実施の形態によれば、実施の形態１の構成に加え、カメラ内部に、差分画像を生成する機構を設ける。差分画像を利用して動きのある領域を検出する態様では、低解像度の画像でも十分機能する場合が多いため、例えば最低解像度の画像を対象とし、生成した差分画像を合成画像に含ませる。これにより、実施の形態１で述べた効果に加え、差分画像についてもクロッピング処理によって容易に分別できる。その結果、動きのある領域を検出したい場合でも、ホスト端末で行うべき処理を最小限とすることができる。
【０１０３】
さらにカメラ内部に、顔領域の検出や所定の形状の対象物をトラッキングする機構を設け、その結果をメタデータとして画像データのストリームにフレーム単位で挿入する。これにより、顔領域や対象物の領域に加工を施したり当該領域の詳細な情報を得たい場合などに、ホスト端末で行うべき処理を最小限とすることができる。
【０１０４】
実施の形態３
本実施の形態では、図１に示した低遅延カメラシステム１０のカメラ１００を、左右の異なる視点から同じ対象物を撮影する一対のカメラを含むステレオカメラで構成する。そして当該ステレオカメラにおいて、左右から撮影した２つの動画像のフレームを用いてステレオマッチングを行い、対象物の奥行き方向の位置を表す奥行き画像を生成する。当該奥行き画像は他の画像と同様に、ホスト端末２０からの要求に応じて随時送信する。ここでホスト端末２０は実施の形態１と同様の構成でよい。以後、主に実施の形態１および２と異なる点に着目して説明し、重複する部分についてはその説明を省略する。
【０１０５】
図１１は本実施に係るカメラの構成を示す。ステレオカメラ１００ｂは第１カメラ１９０ａ、第２カメラ１９０ｂ、ステレオマッチング処理部１９２、画像送出部１５１ｂ、および通信部１０８を含む。第１カメラ１９０ａおよび第２カメラ１９０ｂはそれぞれ、実施の形態１で示したカメラ１００や実施の形態２で示したカメラ１００ａとおよそ同様の構成を有するが、画像送出部１５１ｂおよび通信部１０８については、第１カメラ１９０ａ、第２カメラ１９０ｂ、及びステレオマッチング処理部１９２で共有する。
【０１０６】
第１カメラ１９０ａは、画像取得部１０２ａ、デモザイク部１０４ａ、ピラミッドフィルタ部１７０ａ、画像合成部１５６ａ、画像解析部１７６ａを有する。同様に第２カメラ１９０ｂは、画像取得部１０２ｂ、デモザイク部１０４ｂ、ピラミッドフィルタ部１７０ｂ、画像合成部１５６ｂ、画像解析部１７６ｂを有する。画像取得部１０２ａおよび画像取得部１０２ｂにそれぞれ設けられる撮像素子は、左右の異なる視点から同じ対象物を撮像する。当該撮像素子のハードウェアとしての構成は、一般的なステレオカメラと同様でよい。
【０１０７】
また第１カメラ１９０ａ、第２カメラ１９０ｂが有する上記の機能ブロックは、実施の形態１および２で説明した対応する機能ブロックと同様に動作する。ステレオマッチング処理部１９２は、所定の解像度の左右の動画像フレームの一方を、第１カメラ１９０ａのデモザイク部１０４ａまたはピラミッドフィルタ部１７０ａから、もう一方を第２カメラ１９０ｂのデモザイク部１０４ｂまたはピラミッドフィルタ部１７０ｂから所定のレートで取得する。
【０１０８】
そして同じタイミングで取得した左右の画像を利用してステレオマッチングを行い、奥行き画像を生成する。奥行き画像は、対象物の奥行き方向の位置を表す値を画像平面上の画素値とする画像であり、対象物の３次元空間での位置情報を表す。ここで実施するステレオマッチング処理は、これまでに提案されている様々な手法のいずれを用いてもよい。例えば左右の画像の一方に相関窓を設定し、他方の画像の探索窓を動かしながら相関窓の画像との相互相関係数を算出することにより対応点を取得したうえ、これらの対応点の視差に基づき三角測量の原理を用いて３次元の位置情報を求める面積相関法などを用いることができる。
【０１０９】
いずれの場合も、入力された左右の画像データを一列ずつ処理して奥行き画像の画素値をラスタ順に決定していき順次、画像送出部１５１ｂへ出力する。画像送出部１５１ｂは当該データとともに、第１カメラ１９０ａおよび第２カメラ１９０ｂから、左右のＲＡＷ画像、１／１デモザイク後画像、合成画像のデータを取得する。
【０１１０】
また第１カメラ１９０ａの画像解析部１７６ａおよび第２カメラ１９０ｂの画像解析部１７６ｂから、実施の形態２で説明したのと同様の画像解析の結果を受け取る。そして実施の形態１で説明したのと同様、ホスト端末２０から要求されたデータを選択し、必要に応じて要求された領域のみを抽出してパケット化する。このとき実施の形態２で説明したように、ホスト端末２０の要求によっては、画像解析部１７６ａ、１７６ｂから取得した画像解析の結果をメタデータとして挿入する。
【０１１１】
通信部１０８が行う処理はこれまで説明したのと同様である。なお同図では画像送出部１５１ｂの出力および通信部１０８の入出力がそれぞれ１つの矢印で示されているが、図９に示すように複数のチャンネルを設け、複数のデータを並列に送信するようにしてもよい。
【０１１２】
次にこれまでに述べた構成によって実現できる、低遅延カメラシステム１０の動作例を示す。ここで示す動作例は主に実施の形態３で説明したステレオカメラ１００ｂを含むシステムによって実現できるが、実施の形態１や２で述べた構成についても適宜組み合わせている。
【０１１３】
図１２は、ホスト端末２０とステレオカメラ１００ｂが協働して画像処理を行う処理手順の例を示すフローチャートと、生成される画像例を示している。図１２〜１４のフローチャートは、ユーザがホスト端末２０にアプリケーションの起動指示を入力することによって開始される。また理解を容易にするため各ステップは直列に接続した矩形で表されているが、動画像を撮影している期間において、各画素列、各フレームに対しこれらのステップが繰り返し、かつ並列に実行されるものとする。
【０１１４】
まずホスト端末２０は、アプリケーションプログラムなどに設定されている、初期条件および必要なデータを指定して、ステレオカメラ１００ｂに対し撮影開始指示およびデータ送信要求を行う（Ｓ１０）。初期条件とはステレオカメラ１００ｂの２つのカメラが撮影する動画像の解像度やフレームレート、ステレオマッチング処理部１９２がステレオマッチングを行う画像の解像度やフレームレート、追跡対象の形状情報などである。なおカメラが撮影する動画像の解像度やフレームレートは、撮像素子による露光自体の条件設定を変化させてもよいし、撮像素子からのデータを後段で間引くなどの調整を行うことにより変化させてもよい。
【０１１５】
ここでは例えば次のように指定する。
第１カメラ：解像度１２８０×７２０、フレームレート６０ｆｐｓ
第２カメラ：解像度１２８０×７２０、フレームレート６０ｆｐｓ
ステレオマッチング：解像度１２８０×７２０、フレームレート６０ｆｐｓ
【０１１６】
必要なデータの指定とは上述のように、画像の種類、解像度、画像内の領域を指定するほか、メタデータを指定してもよい。ここでは例えば次のように３つのデータを指定する。
データ１：（左画像, ＹＵＶ４２２：１６ｂｉｔ，０，０，１２８０，７２０）
データ２： (左合成画像, ＹＵＶ４２２：１６ｂｉｔ，０，０，８５０，３６７， 顔領域，対象物領域，タイムスタンプ)
データ３： (奥行き画像、Ｚ：１６ｂｉｔ，０，０，１２８０，７２０）
【０１１７】
データ１は、ステレオカメラ１００ｂのうち左側のカメラが撮影した画像の１／１デモザイク後画像（ＹＵＶ４２２：１６ビット）における、左上の座標が（０，０）、横方向および縦方向の幅が（１２８０，７２０）の領域である。この領域は、上記初期条件で指定された解像度を考慮すると、撮影された画像の全領域であることがわかる。
【０１１８】
データ２は、左側のカメラが撮影した画像の合成画像（ＹＵＶ４２２：１６ビット）における、左上の座標が（０，０）、横方向および縦方向の幅が（８５０，３５７）の領域である。図１２〜１４の例での合成画像は、図７で示した１／４デモザイク後画像、１／１６デモザイク後画像、１／６４デモザイク後画像に、さらに、１／２５６デモザイク後画像のフレーム間差分を行った結果として得られる差分画像を含むものとする。この差分画像は、（Ｗ／１６）／８×Ｈ／２の画像領域として図７の合成画像の右端に他と同様の規則で加えられる。
【０１１９】
上記データ２で指定される領域は、この合成画像の全領域である。データ２ではさらに、顔検出処理を行った結果得られる顔の領域、トラッキング処理を行った結果得られる対象物の領域、合成画像の元の画像を撮影したときのタイムスタンプを、メタデータとして合成画像に付加するように指定している。データ３は、ステレオマッチング処理部１９２が生成する奥行き画像（奥行き方向の１６ビットの位置情報を画素とする）における、左上の座標が（０，０）、横方向および縦方向の幅が（１２８０，７２０）の領域、すなわち全領域である。
【０１２０】
初期条件の指定およびデータ要求を受け付けたステレオカメラ１００ｂの第１カメラ１９０ａおよび第２カメラ１９０ｂは、当該初期条件で動画像の撮影を開始する（Ｓ１２）。第１カメラ１９０ａ、第２カメラ１９０ｂ、ステレオマッチング処理部１９２が、撮影された画像フレームを用いて上記のとおり処理を行うことにより、左側のＲＡＷ画像および１／１デモザイク後画像２３０、左側の合成画像２３２、奥行き画像２３４、右側のＲＡＷ画像および１／１デモザイク後画像２３６、左側の合成画像２３８のデータが生成される（Ｓ１４）。
【０１２１】
なお同図では各画像の全領域を表しているが、実際の画像データは画素値のストリームの状態で順次、画像送出部１５１ｂに入力される。図１３、図１４も同様である。続いて画像送出部１５１ｂは、Ｓ１０で指定されたデータのみを選択、抽出してストリームとしパケット化することで送信データを生成し、送信する（Ｓ１６）。
【０１２２】
データを受信したホスト端末２０は、メインメモリ５８に画像を展開する。その結果、メインメモリ５８には、１／１デモザイク後画像の全領域２４０、１／４デモザイク後画像の全領域２４２、１／１６デモザイク後画像の全領域２４４、１／６４デモザイク後画像の全領域２４６、１／２５６デモザイク後画像の差分画像２４８、顔の領域、対象物の領域、タイムスタンプを含むメタデータ２５０、奥行き画像２５２が格納される。
【０１２３】
ホスト端末２０のＣＰＵ５０およびＧＰＵ５２は、これらのデータを用いて、表示すべき画像を生成し、ディスプレイ４に表示する（Ｓ１８、Ｓ２０）。例えば、動き差分画像２４８から動きのある領域を検出し、その部分における対象物の奥行き情報を奥行き画像２５２から取得する。これを複数フレーム分続けることにより被写体であるユーザのジェスチャを認識する。そして１／１デモザイク後画像の全領域２４０のうち顔領域などに、ジェスチャに応じた所定の加工を施した画像を表示する。
【０１２４】
この実施例においてステレオカメラ１００ｂからホスト端末２０へ送信される単位時間当たりのデータサイズは、
データ１：１２８０×７２０画素×６０ｆｐｓ×１６ｂｉｔ＝８８５Ｍｂｐｓ
データ２：８５０×３７０画素×６０ｆｐｓ×１６ｂｉｔ＝３００Ｍｂｐｓ
データ３：１２８０×７２０画素×６０ｆｐｓ×１６ｂｉｔ＝８８５Ｍｂｐｓ
であるから、合計２．１Ｇｂｐｓとなる。
【０１２５】
図１３は、ホスト端末２０とステレオカメラ１００ｂが協働して画像処理を行う処理手順の別の例を示すフローチャートと、生成される画像例を示している。まず図１２と同様、ホスト端末２０は初期条件および必要なデータを指定して、ステレオカメラ１００ｂに対し撮影開始指示およびデータ送信要求を行う（Ｓ２２）。
【０１２６】
この例における初期条件は図１２の例と同じとする。必要なデータとして、次のように１つのデータを指定する。
データ１： (左合成画像, ＹＵＶ４２２：１６ｂｉｔ，０，０，８５０，３６７， 顔領域，対象物領域，タイムスタンプ)
このデータは図１２の例のデータ２と同じである。
【０１２７】
初期条件の指定およびデータ要求を受け付けたステレオカメラ１００ｂの第１カメラ１９０ａおよび第２カメラ１９０ｂは当該初期条件で動画像の撮影を開始し（Ｓ２４）、第１カメラ１９０ａ、第２カメラ１９０ｂ、ステレオマッチング処理部１９２がそれぞれ画像データを生成する（Ｓ２６）。このときの画像データは図１２のＳ１４で生成される画像データと同じである。
【０１２８】
続いて画像送出部１５１ｂは、Ｓ２２で指定されたデータのみを選択、抽出してストリームとしパケット化することで送信データを生成し、送信する（Ｓ２８）。データを受信したホスト端末２０は、メインメモリ５８に画像を展開する。その結果、メインメモリ５８には、１／４デモザイク後画像の全領域２４２、１／１６デモザイク後画像の全領域２４４、１／６４デモザイク後画像の全領域２４６、１／２５６デモザイク後画像の差分画像２４８、顔の領域、対象物の領域、タイムスタンプを含むメタデータ２５０が格納される。
【０１２９】
ホスト端末２０のＣＰＵ５０は、差分画像２４８から特定した動きのある領域や、メタデータ２５０に含まれる顔の領域または対象物の領域を含む所定範囲の領域を、注目領域として決定する（Ｓ３０）。そして当該注目領域を指定して新たにデータ要求を行う（Ｓ３２）。ここでは例えば次のように２つのデータを指定する。
データ２：（左画像，ＲＡＷ：１６ｂｉｔ，Ｆｘ，Ｆｙ，Ｆｗ，Ｆｈ）
データ３：（奥行き画像，Ｚ：８ｂｉｔ，Ｈｘ，Ｈｙ，Ｈｗ，Ｈｈ）
【０１３０】
データ２は、ステレオカメラ１００ｂのうち左側のカメラが撮影したＲＡＷ画像（１６ビット）のうち、顔の領域を含む注目領域として決定した、左上の座標が（Ｆｘ，Ｆｙ）、横方向および縦方向の幅が（Ｆｗ，Ｆｈ）の領域である。データ３は、ステレオマッチング処理部１９２が生成する奥行き画像（奥行き方向の８ビットの位置情報を画素とする）における、対象物の領域を含む注目領域として決定した、左上の座標が（Ｈｘ，Ｈｙ）、横方向および縦方向の幅が（Ｈｗ，Ｈｈ）の領域である。
【０１３１】
ステレオカメラ１００ｂの画像送出部１５１ｂは、各画像の新たなフレームが入力したタイミングで、ＲＡＷ画像および奥行き画像のうち指定された領域のデータを抽出して、ストリームとしパケット化することで送信データを生成し、送信する（Ｓ３４）。データを受信したホスト端末２０は、メインメモリ５８に画像を展開する。その結果、メインメモリ５８には、顔を含む領域のＲＡＷ画像２５４および対象物を含む領域の奥行き画像２５６が格納される。
【０１３２】
ホスト端末２０のＣＰＵ５０およびＧＰＵ５２は、これらのデータを用いて、表示すべき画像を生成し、ディスプレイ４に表示する（Ｓ３６、Ｓ３８）。例えば、１／４デモザイク後画像２４２を背景とし、顔を含む領域のＲＡＷ画像２５４を合成することにより、データサイズを抑えつつ表情の変化などを表す顔領域のみ鮮明な画像を表示する。さらに対象物の奥行き情報を奥行き画像２５６から取得してユーザのジェスチャを認識し、それに応じた所定の加工を施してもよい。
【０１３３】
Ｓ３０〜Ｓ３８の処理を繰り返すことにより、顔や対象物が移動しても、それらに係る必要なデータを無駄なく定常的に取得して画像表示に反映させることができる。結果として、ステレオカメラ１００ｂからホスト端末２０へ送信すべきデータのサイズを抑えることができる。
【０１３４】
上記のデータ指定において、（Ｆｗ，Ｆｈ）＝（４００，６００）、（Ｈｗ，Ｈｈ）＝（３２０，４５０）と仮定すると、この実施例においてステレオカメラ１００ｂからホスト端末２０へ送信される単位時間当たりのデータサイズは、
データ１：８５０×３７０画素×６０ｆｐｓ×１６ｂｉｔ＝３００Ｍｂｐｓ
データ２：４００×６００画素×６０ｆｐｓ×１６ｂｉｔ＝２３０Ｍｂｐｓ
データ３：３２０×４５０画素×６０ｆｐｓ×８ｂｉｔ＝７０Ｍｂｐｓ
となり、合計６００Ｍｂｐｓとなる。
【０１３５】
図１４は、ホスト端末２０とステレオカメラ１００ｂが協働して画像処理を行う処理手順の別の例を示すフローチャートと、生成される画像例を示している。まず図１２と同様、ホスト端末２０は初期条件および必要なデータを指定して、ステレオカメラ１００ｂに対し撮影開始指示およびデータ送信要求を行う（Ｓ４０）。
【０１３６】
この例における初期条件は次のように指定する。
第１カメラ：解像度１２８０×７２０、フレームレート３０ｆｐｓ
第２カメラ：解像度１２８０×７２０、フレームレート１５ｆｐｓ
ステレオマッチング：解像度３２０×１８０、フレームレート１５ｆｐｓ
【０１３７】
必要なデータは次のように指定する。
データ１：(左合成画像, Ｙ（動き差分）：８ｂｉｔ，８４０，８，１０，３６０，タイムスタンプ)
データ２： (左合成画像, ＹＵＶ４２２：１６ｂｉｔ，８００，４，４０，３６０， 顔領域，タイムスタンプ)
データ３： (奥行き画像、Ｚ：８ｂｉｔ，２０，１５，２８０，１５０，タイムスタンプ）
【０１３８】
データ１は、左側のカメラが撮影した画像の合成画像のうち、Ｙ画像における差分画像の領域、すなわち左上の座標が（８４０，８）、横方向および縦方向の幅が（１０，３６０）の領域である。さらにデータ１には、元の画像を撮影したときのタイムスタンプをメタデータとして付加するように指定している。
【０１３９】
データ２は、左側のカメラが撮影した画像の合成画像（ＹＵＶ４２２：１６ビット）における、左上の座標が（８００，４）、横方向および縦方向の幅が（４０，３６０）の領域、すなわち１／６４デモザイク後画像の領域である。さらにデータ２には、顔検出処理を行った結果得られる顔の領域、元の画像を撮影したときのタイムスタンプをメタデータとして付加するように指定している。データ１やデータ２で指定される、合成画像に含まれる各画像の領域情報は、図７で示した配置の規則に従い特定できる。
【０１４０】
データ３は、ステレオマッチング処理部１９２が生成する奥行き画像（奥行き方向の８ビットの位置情報を画素とする）における、左上の座標が（２０，１５）、横方向および縦方向の幅が（２８０，１５０）の領域である。この領域は、奥行き画像の上端下端をそれぞれ１５画素分、左端右端をそれぞれ２０画素分、切り落としたものであり、奥行きの情報として意味を有する領域とも考えられる。このようにしてもデータサイズを抑えることができる。さらにデータ３には、元の画像を撮影したときのタイムスタンプをメタデータとして付加するように指定している。
【０１４１】
初期条件の指定およびデータ要求を受け付けたステレオカメラ１００ｂの第１カメラ１９０ａおよび第２カメラ１９０ｂは、当該初期条件で動画像の撮影を開始し（Ｓ４２）、第１カメラ１９０ａ、第２カメラ１９０ｂ、ステレオマッチング処理部１９２がそれぞれ画像データを生成する（Ｓ４４）。このときの画像は、画像のサイズ、色空間、およびフレームレートなどの点で、図１２および図１３の例と比較して簡易的である。
【０１４２】
続いて画像送出部１５１ｂは、Ｓ４０で指定されたデータのみを選択、抽出してストリームとしパケット化することで送信データを生成し、送信する（Ｓ４６）。データを受信したホスト端末２０は、メインメモリ５８に画像を展開する。その結果、メインメモリ５８には、１／２５６デモザイク後画像の差分画像２６０、その元の画像のタイムスタンプ２６２、１／６４デモザイク後画像の全領域２６０、顔の領域、タイムスタンプを含むメタデータ２６６、周囲を切り落とした奥行き画像２６８およびその元の画像のタイムスタンプ２７０が格納される。
【０１４３】
ホスト端末２０のＣＰＵ５０およびＧＰＵ５２は、これらのデータを用いて、表示すべき画像を生成し、ディスプレイ４に表示する（Ｓ４８、Ｓ５０）。例えば、差分画像２６０から動きのある領域を検出し、その部分における対象物の奥行き情報を奥行き画像２６８から取得する。これにより被写体であるユーザのジェスチャを認識し、１／６４デモザイク後画像の全領域２６０のうち、メタデータ２６６から得られる顔領域などに、ジェスチャに応じた所定の加工を施した画像を表示する。
【０１４４】
この例では、フレームレートを低くしたり解像度の低い画像のみを送信するようにして、領域全体を送信対象、処理対象としつつも、伝送帯域を含むリソースの消費量を抑えている。領域全体を送信するため、図１３の例で示した適応的な領域指定のステップを省くことができる。またこのように、送信する３つのデータの１フレーム当たりのデータサイズが異なっていて、１フレーム分のデータがホスト端末２０へ到着するタイミングがデータによってずれていても、元の画像の撮影時のタイムスタンプをフレームごとに付加することにより、データの対応関係を容易に特定できる。
【０１４５】
この実施例においてステレオカメラ１００ｂからホスト端末２０へ送信される単位時間当たりのデータサイズは、
データ１：１０×３６０画素×３０ｆｐｓ×８ｂｉｔ＝８６４Ｋｂｐｓ
データ２：１６０×９０画素×１５ｆｐｓ×１６ｂｉｔ＝３．５Ｍｂｐｓ
データ３：２８０×１５０画素×１５ｆｐｓ×８ｂｉｔ＝５Ｍｂｐｓ
となり、合計９．５Ｍｂｐｓとなる。
【０１４６】
以上述べた本実施の形態によれば、実施の形態１および２の特徴をステレオカメラに適用する。そして当該ステレオカメラに、ステレオマッチングを行う機構を設ける。この場合、各カメラが生成するＲＡＷ画像、１／１デモザイク後画像、合成画像および、ステレオマッチングの結果得られる奥行き画像、顔検出の結果得られた顔領域の情報、トラッキング処理の結果得られた対象物の領域の情報といった多様なデータの中から、ホスト端末が指定するデータを低遅延で送信することができる。そのためホスト端末の処理の負荷が軽減され、カメラからのデータ送信の効率化との相乗効果で、被写体の動きに低遅延で追随する画像表示が可能となる。
【０１４７】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０１４８】
４  ディスプレイ、  １０  低遅延カメラシステム、  ２０  ホスト端末、５０  ＣＰＵ、  ５２  ＧＰＵ、  ５８  メインメモリ、  ６０  通信部、  ６４  データ要求部、  ６６  データ処理部、  ６８  データ展開部、  １００  カメラ、  １０４  デモザイク部、  １０８  通信部、  １４９  ＦＩＦＯバッファ、  １５０  ＦＩＦＯバッファ、  １５１  画像送出部、  １５６  画像合成部、  １５４  データ選択部、  １６２  パケット化部、  １６４  制御部、  １６６  ストリーム選択部、  １６８  クロッピング部、  １７０  ピラミッドフィルタ部、  １７２ａ  第１チャンネル、  １７２ｂ  第２チャンネル、  １７２ｃ  第３チャンネル、  １７４  差分画像生成部、  １７６  画像解析部、  １９０ａ  第１カメラ、  １９０ｂ  第２カメラ、  １９２  ステレオマッチング処理部。
【図１】
0005629642.tif 000002
【図２】
0005629642.tif 000003
【図３】
0005629642.tif 000004
【図４】
0005629642.tif 000005
【図５】
0005629642.tif 000006
【図６】
0005629642.tif 000007
【図８】
0005629642.tif 000008
【図９】
0005629642.tif 000009
【図１０】
0005629642.tif 000010
【図１１】
0005629642.tif 000011
【図７】
0005629642.tif 000012
【図１２】
0005629642.tif 000013
【図１３】
0005629642.tif 000014
【図１４】
0005629642.tif 000015