説明

動画像撮影装置、情報処理システム、情報処理装置、および画像データ処理方法

【課題】対象物の撮像から、そのデータを用いた画像表示までのレイテンシを抑制する。
【解決手段】撮像装置はステレオカメラを備え、左右のフレーム画像を段階的に縮小した複数のサイズのデモザイク後画像を生成する。さらに各画像の横一列の画素列を、所定の規則で循環して接続しストリームとすることで、接続が一巡したときの画素列を横一列分の画素列とする、複数のデモザイク後画像を含む仮想的な合成画像222を生成する。ホスト端末は、合成画像内の複数の領域を、縦方向の範囲を共通として指定するデータ要求信号を撮像装置に送信する。撮像装置は指定された領域を切り出し、切り出された領域のみからなる新たな合成画像240のストリームをホスト端末に送信する。ホスト端末はこれを個別の画像に切り分け、メインメモリ42の連続したアドレスに展開する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象物の動きに応じて情報処理を行う技術に関する。
【背景技術】
【0002】
従来、ユーザの頭部など体の一部をビデオカメラで撮影し、目、口、手などの所定の領域を抽出し、その領域を別の画像で置換してディスプレイに表示するゲームが知られている(例えば、特許文献1)。また、ビデオカメラで撮影された口や手の動きをアプリケーションの操作指示として受け取るユーザインタフェースシステムも知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】欧州特許出願公開第0999518号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のような技術では、ユーザの口や手などの所定の領域を抽出するために高解像度の画像が必要になる。しかしながら、ビデオカメラの撮像素子を高性能化するほど画像のデータ量が増大する。その結果、転送用の圧縮、伸張処理や認識、検出、計測処理等に必要な情報を適切なスケールで提供するフィルタリングやスケーリング、クロッピング等のデータマイニング処理コストが増え、カメラ入力から各処理出力までのレイテンシが増大してしまうという問題がある。また、カメラをユーザインタフェースとして使用する場合には、レイテンシの増大が使い勝手の著しい低下を招くという問題がある。このように、ビデオカメラの撮像素子の性能が向上しても、システム全体としての性能が悪化してしまうおそれがある。
【0005】
本発明はこうした課題に鑑みてなされたものであり、その目的は、高性能の撮像素子を使用しつつ、撮像から、そのデータを用いた画像表示までのレイテンシを抑制することができる画像処理技術を提供することにある。
【課題を解決するための手段】
【0006】
本発明のある態様は動画像撮影装置に関する。この動画像撮影装置は、対象物を撮影して得られる動画像の各フレーム画像から複数の画像のデータを生成し、横一列の画素ごとにストリームとして順次出力する画像データ生成部と、画像データ生成部から出力された複数の画像のデータを、画像の横一列分の画素列またはそれより小さい範囲の画素列ごとに循環して接続し、ストリームとして出力することにより、接続が一巡したときの画素列を横一列分の画素列とする、複数の画像を含む仮想的な合成画像を生成する画像合成部と、接続したホスト端末から、仮想的な合成画像における、縦方向の範囲を同じとした複数の矩形領域を指定するデータの送信要求を受け付け、画像合成部が出力した仮想的な合成画像の画素列ごとに、指定された領域を切り出して接続し、新たなストリームとしてホスト端末に送信する画像送出部と、を備えることを特徴とする。
【0007】
本発明のさらに別の態様は情報処理システムに関する。この情報処理システムは、対象物を撮影して動画像のデータを生成する動画像撮影装置と、当該動画像撮影装置から動画像のデータの一部を取得し、それを利用して所定の画像処理を行ったうえ画像を表示するホスト端末と、を備えた情報処理システムであって、動画像撮影装置は、動画像の各フレーム画像から複数の画像のデータを生成し、横一列の画素ごとにストリームとして順次出力する画像データ生成部と、画像データ生成部から出力された複数の画像のデータを、画像の横一列分の画素列またはそれより小さい範囲の画素列ごとに循環して接続し、ストリームとして出力することにより、接続が一巡したときの画素列を横一列分の画素列とする、複数の画像を含む仮想的な合成画像を生成する画像合成部と、接続したホスト端末から、仮想的な合成画像における、縦方向の範囲を同じとした複数の矩形領域を指定するデータの送信要求を受け付け、画像合成部が出力した仮想的な合成画像の画素列ごとに、指定された領域を切り出して接続し、新たなストリームとしてホスト端末に送信する画像送出部と、を備え、ホスト端末は、動画像撮影装置において生成される複数の画像のデータのうち少なくとも2つの画像のデータに対応する、仮想的な合成画像における矩形領域を、縦方向の範囲を同じとして指定してデータの送信を要求するデータ要求部と、動画像撮影装置から送信されたストリームを、指定した各矩形領域の横方向の長さに基づき個別の画像のデータに分別し、2次元の画像としてメモリに展開するデータ展開部と、を備えることを特徴とする。
【0008】
本発明のさらに別の態様は情報処理装置に関する。この情報処理装置は、対象物を撮影して得られる動画像の各フレーム画像から生成した複数の画像をそれぞれ所定の矩形領域に配置した合成画像を生成する動画像撮影装置に対し、少なくとも2つの画像のデータに対応する、合成画像における矩形領域を、縦方向の範囲を同じとして指定してデータの送信を要求するデータ要求部と、要求に従って動画像撮影装置から送信された、指定した複数の矩形領域の画素値を画素列ごとに循環して接続したストリームの状態の画像データを、指定した各矩形領域の横方向の長さに基づき個別の画像のデータに分別し、2次元の画像としてメモリに展開するデータ展開部と、2次元の画像を利用して所定の画像処理を行ったうえ画像を表示するデータ処理部と、を備えることを特徴とする。
【0009】
本発明のさらに別の態様は画像データ処理方法に関する。この画像データ処理方法は、動画像撮影装置が行う画像データ処理方法であって、対象物を撮影して得られる動画像の各フレーム画像から複数の画像のデータを生成し、横一列の画素ごとにストリームとして順次出力するステップと、出力された複数の画像のデータを、画像の横一列分の画素列またはそれより小さい範囲の画素列ごとに循環して接続し、ストリームとして出力することにより、接続が一巡したときの画素列を横一列分の画素列とする、複数の画像を含む仮想的な合成画像を生成するステップと、接続したホスト端末から、仮想的な合成画像における、縦方向の範囲を同じとした複数の矩形領域を指定するデータの送信要求を受け付け、仮想的な合成画像の画素列ごとに、指定された領域を切り出して接続し、新たなストリームとして前記ホスト端末に送信するステップと、を含むことを特徴とする。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によると、撮像から、そのデータを用いた画像の表示までのレイテンシを抑えることができる。
【図面の簡単な説明】
【0012】
【図1】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図2】本実施の形態におけるホスト端末と撮像装置の構成を示す図である。
【図3】本実施の形態における撮像装置の第1カメラの構成を詳細に示す図である。
【図4】本実施の形態における画像合成部および画像送出部の構成を詳細に示す図である。
【図5】本実施の形態の撮像装置およびホスト端末におけるデータの形態の基本的な変遷を模式的に示す図である。
【図6】本実施の形態における、1/4デモザイク後画像、1/16デモザイク後画像、1/64デモザイク後画像の画素値の、ピラミッドフィルタ部からの入力タイミングを示すタイムチャートである。
【図7】本実施の形態において画像合成部が複数の画像の画素列のデータをつなげた様子を模式的に示す図である。
【図8】図7を参照して説明した処理を、第1カメラ、第2カメラが出力する各画像データについて交互に繰り返したときに生成される合成画像を示す図である。
【図9】本実施の形態においてホスト端末からの要求に応じた画像データの流れを模式的に示す図である。
【図10】本実施の形態においてローリングシャッターを備えた第1カメラおよび第2カメラによって異なるフレームレートで撮影した場合に画像合成部が生成する合成画像の変遷を示す図である。
【図11】図10で示した撮影条件においてクロッピング部が切り出して生成する新たな合成画像とホスト端末のメインメモリに格納される画像を示す図である。
【図12】図10に示した撮影条件のうち、第2カメラのシャッタースピードを1/4倍にし、第1カメラが4フレーム撮影する時間をかけて第2カメラが1フレーム撮影する場合の合成画像の変遷を示す図である。
【図13】図12で示した撮影条件においてクロッピング部が切り出して生成する新たな合成画像とホスト端末のメインメモリに格納される画像を示す図である。
【図14】本実施の形態において第1カメラが、第2カメラより小さい画角を、第2カメラより高いフレームレートで撮影する場合の合成画像の変遷を示す図である。
【図15】図14で示した撮影条件においてクロッピング部が切り出して生成する新たな合成画像とホスト端末のメインメモリに格納される画像を示す図である。
【図16】本実施の形態においてホスト端末と撮像装置が協働して画像表示を行う処理手順の例を示すフローチャートである。
【発明を実施するための形態】
【0013】
700
図1は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム10は、ユーザ1などの対象物を撮影する2つのカメラを搭載した撮像装置12、撮影した画像に基づき、ユーザの要求に応じた情報処理を行うホスト端末20、ホスト端末20が処理した結果得られた画像データを出力する表示装置16を含む。またホスト端末20はインターネットなどのネットワーク18と接続可能とする。
【0014】
ホスト端末20と、撮像装置12、表示装置16、ネットワーク18とは、有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。撮像装置12、ホスト端末20、表示装置16のうちいずれか2つ、または全てが組み合わされて一体的に装備されていてもよい。また、撮像装置12は必ずしも表示装置16の上に設置されていなくてもよい。さらにユーザ1は人でなくてもよく、その数も限定されない。
【0015】
撮像装置12は、それぞれがCCD(Charge Coupled Device)またはCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を備えた、第1カメラ22a、第2カメラ22b、の2つのデジタルビデオカメラを既知の間隔で左右に配置した構成を有する。2つのデジタルビデオカメラはそれぞれ、同一空間に存在する対象物を左右の位置から同一、あるいは異なるフレームレートで撮影する。撮像装置12はさらに、撮影した結果得られた画像を用いて複数種類の画像データを生成する。
【0016】
撮像装置12が撮影、生成した画像のデータは後に述べるようなストリーム形式でホスト端末20に送信される。ホスト端末20は、送信された画像データを用いて必要な情報処理を行い出力画像を生成する。ここでホスト端末20が行う処理の内容は特に限定されず、ユーザが求める機能やアプリケーションの内容などによって適宜設定される。
【0017】
例えば対象物であるユーザ1の動作を反映させたキャラクタが登場するゲームや、ユーザ1の動きをコマンド入力に変換する情報処理などを行う場合、ホスト端末20は撮像装置12から取得した同じ時刻の左右の画像のデータに基づきステレオマッチングを行う。そしてカメラの視野に対する縦、横、奥行き、の3次元空間における対象物の位置座標を所定のレートで特定することにより位置座標の時間変化を取得し、その結果に基づき撮影された画像に所定の処理を施したり、あらかじめ準備した画像に反映させたりして出力画像を生成する。
【0018】
ビデオチャットアプリケーションの場合は、ユーザ1の画像をネットワーク18を介してリアルタイムでチャット相手に送信する。このときホスト端末20は顔検出処理を行い、その結果得られたユーザ1の顔の領域のみ高解像度で表すなどの加工を行ってもよい。ホスト端末20は、このような画像処理の他に、各種アプリケーションを実行するためのメニューやカーソル等のオブジェクト画像を合成してもよい。
【0019】
714
表示装置16は、ホスト端末20が行った処理の結果を、必要に応じて画像として表示する。表示装置16は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、例えば液晶テレビ、プラズマテレビ、PCディスプレイ等である。
【0020】
上述のように、情報処理システム10において撮像装置12が撮影した動画像を利用してなされる処理は様々考えられ、その内容は特に限定されない。本実施の形態ではいずれの処理を行う場合でも、撮像装置12は、動画像の撮影のみならず、それを用いて複数種類の画像データを生成する。そしてホスト端末20が指定する画像データのみを効率的に送信することにより、撮影から画像表示までのレイテンシが少なく、かつ高度な処理も可能な情報処理システムを実現する。撮像装置12が生成する画像の種類もアプリケーションなどに応じて適宜決定してよいが、以後、動画像の各フレームを複数の解像度で表した画像のデータを生成する場合について説明する。
【0021】
図2はホスト端末20と撮像装置12の構成を示している。図2および後に説明する図3、4に示す各機能ブロックは、ハードウェア的には、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、描画回路などの構成で実現でき、ソフトウェア的にはデータ入力機能、データ保持機能、画像解析機能、描画機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0022】
ホスト端末20は、ユーザからの指示入力を取得する指示入力部36、ホスト端末20および撮像装置12を統括的に制御し、目的に応じた情報処理を行う情報処理部38、出力画像を生成する画像処理部40、撮像装置12からの画像データを格納するメインメモリ42、および撮像装置12に対する画像データの要求および取得を行うインターフェースである通信部44を含む。
【0023】
指示入力部36は、ユーザからの指示入力を受け付け、それに応じた処理要求信号を生成して情報処理部38に送信する。指示入力部36は、ボタン、キーボード、マウス、トラックボール、タッチパネルなど一般的な入力装置と、当該入力装置になされた操作内容を解釈して処理要求信号を生成するプロセッサなどの協働により実現する。
【0024】
情報処理部38は、指示入力部36から取得した処理要求信号に応じて撮像装置12への画像データの要求、画像処理部40への画像処理の要求などを行う。また撮像装置12から送信された画像データを後に詳述するようにメインメモリ42に展開する。さらに情報処理システム10が実行する処理の内容によっては、撮像装置12から送信された画像データを用いてステレオマッチング、対象物のトラッキング、顔検出、ジェスチャ検出などの画像解析を行う。
【0025】
画像処理部40は、メインメモリ42に展開された画像を用いて、情報処理部38からの要求に応じた画像処理を行い、表示画像を生成する。生成した表示画像は図示しないフレームメモリに格納され、情報処理部38の制御のもと、表示装置16に順次表示される。通信部44は情報処理部38が生成した撮像装置12への画像データの要求信号を取得し、撮像装置12へ送信する。また、それに応じて撮像装置12から送信された画像データを取得し情報処理部38へ送る。
【0026】
撮像装置12は動画像を撮影したうえ複数種類の画像データを生成する第1カメラ22aおよび第2カメラ22b、複数種類の画像データを統合する画像合成部30、ホスト端末20が要求する画像データを抽出してパケット化する画像送出部32、およびホスト端末20からの画像データの要求信号の受信および画像データ送信を行うインターフェースである通信部34を含む。
【0027】
第1カメラ22aおよび第2カメラ22bは、同じ対象物を左右の視点から動画撮影する。そして撮影したフレーム画像を段階的に縮小することにより異なる解像度の複数の画像データを生成する。画像合成部30は、第1カメラ22a、第2カメラ22bが生成した画像データを統合し、後に述べるような仮想的な合成画像を生成する。
【0028】
画像送出部32は、第1カメラ22a、第2カメラ22bが撮影したRAW画像、および、画像合成部30が生成した仮想的な合成画像から、ホスト端末20が要求する画像データを抽出してパケット化する。このとき、仮想的な合成画像に含まれる画像データを要求された場合は、クロッピング処理により画像の切り出しを行う。
【0029】
通信部34は、ホスト端末20からの画像データの要求信号を受け付け、画像送出部32に通知するとともに、画像送出部32が生成した画像データのパケットを取得してホスト端末20に送信する。通信部34は、例えばUSB1.0/2.0/3.0等の所定のプロトコルにしたがって、パケットをホスト端末20に送出する。ホスト端末20との通信は有線に限らず、例えばIEEE802.11a/b/gなどの無線LAN通信、IrDAなどの赤外線通信、などの無線通信であってもよい。
【0030】
本実施の形態において撮像装置12が行う処理は、基本的には画像の横一列分の画素単位で行われ、当該単位で次の機能ブロックに供給される。このようにすることで撮像装置12の各機能ブロックが備えるメモリは最小限のラインバッファのみですみ、また、撮影からホスト端末20への画像データの送信までを低遅延に行える。
【0031】
図3は撮像装置12の第1カメラ22aの構成を詳細に示している。なお第2カメラ22bも同じ構成を有する。第1カメラ22aは、画像取得部102a、デモザイク部104a、ピラミッドフィルタ部135aを備える。画像取得部102aは、CCDまたはCMOS等の撮像素子で露光された画像を所定のフレームレートで読み出す。以下の説明では、この画像は横方向に画素W個分、縦方向に画素H個分の幅を有するものとする。この画像はいわゆるRAW画像である。画像取得部102aは、RAW画像の横一列分の露光が完了する毎に、これをデモザイク部104aおよび画像送出部32に送る。
【0032】
デモザイク部104aは、画素W個分の容量を有するFIFO(First In First Out)バッファ105と簡易デモザイク処理部106とを有する。FIFOバッファ105には、RAW画像の横一列分の画素情報が入力され、次の横一列分の画素がデモザイク部104aに入力されるまでそれを保持する。簡易デモザイク処理部106は、横二列分の画素を受け取ると、それらを用いて、各画素に対してその周辺画素に基づき色情報を補完してフルカラー画像を作り出すデモザイク(de-mosaic)処理を実行する。
【0033】
当業者には周知のように、このデモザイク処理には多数の手法が存在するが、ここでは横二列分の画素のみを利用する簡易なデモザイク処理で十分である。一例として、対応するYCbCr値を算出すべき画素がG値のみを有している場合は、R値は左右に隣接するR値を平均、G値は当該G値をそのまま使用、B値は上または下に位置するB値を使用してRGB値とし、これを所定の変換式に代入してYCbCr値を算出するなどである。このようなデモザイク処理は周知であるからこれ以上詳細な説明は省略する。なおデモザイク部104aおよび以後の処理で生成される画像データの色空間はYCbCrに限定されるものではない。
【0034】
簡易なデモザイク処理で十分な理由は、高品質の画像が必要な場合はRAW画像を用いることができるためである。簡易なデモザイク処理の変形例として、RGBの4画素から一画素のYCbCr値を構成する手法を用いてもよい。この場合は、RAW画像の1/4サイズのデモザイク後画像が得られるので、後述する第1フィルタ110aは不要になる。
【0035】
簡易デモザイク処理部106は、例えば図示のように、横2×縦2のRGBの4画素をYCbCrカラー信号に変換する。そして、この4画素からなるブロックは、画像合成部30に1/1デモザイク後画像として渡されるとともに、ピラミッドフィルタ部135aに送られる。
【0036】
ピラミッドフィルタ部135aは、ある画像を複数の解像度に階層化して出力する機能を有する。ピラミッドフィルタは、一般に必要とする解像度のレベルに応じた数の1/4縮小フィルタを備えるが、同図では第1フィルタ110a〜第3フィルタ130aの3階層のフィルタを有している。各フィルタは、相互に隣接する4個の画素をバイリニア補間して4画素の平均画素値を演算する処理を実行する。したがって、処理後の画像サイズは処理前の画像の1/4になる。なお本実施の形態は、3階層以外のフィルタ数であっても同様に実現できることは当業者には容易に理解されるところである。
【0037】
第1フィルタ110aの前段には、Y、Cb、Crのそれぞれの信号に対応して、画素W個分のFIFOバッファ112が一つずつ配置される。これらのFIFOバッファ112は、横一列分のYCbCr画素を、次の横一列分の画素が簡易デモザイク処理部106から出力されるまで保持する役割を有する。画素の保持時間は、撮像素子のラインスキャンの速度に応じて決まる。横二列分の画素が入力されると、第1フィルタ110aは、横2×縦2の4画素分のY、Cb、Crの画素値を平均する。この処理を繰り返すことによって、1/1デモザイク後画像は縦横それぞれ1/2の長さとなり、全体として1/4のサイズに変換される。変換された1/4デモザイク後画像は、画像合成部30に送られるとともに、次段の第2フィルタ120aに渡される。
【0038】
第2フィルタ120aの前段階には、Y、Cb,Crのそれぞれの信号に対応して、画素W/2個分のFIFOバッファ122が一つずつ配置される。これらのFIFOバッファ122も、横一列分のYCbCr画素を、次の横一列分の画素が第1フィルタ110aから出力されるまで保持する役割を有する。横二列分の画素が入力されると、第2フィルタ120aは、横2×縦2の4画素分のY、Cb、Crの画素値を平均する。この処理を繰り返すことによって、1/4デモザイク後画像は縦横それぞれ1/2の長さとなり、全体として1/16のサイズに変換される。変換された1/16デモザイク後画像は、画像合成部30に送られるとともに、次段の第3フィルタ130aに渡される。
【0039】
第3フィルタ130aについても、前段にW/4個分のFIFOバッファ132が配置される以外は、上記と同様の処理を繰り返す。そして画像合成部30に、1/64サイズのデモザイク後画像を出力する。なお、上記のようなピラミッドフィルタは、特許文献1にも記載されているように周知であるから、本明細書ではこれ以上の詳細な説明を省略する。
【0040】
このように、ピラミッドフィルタ部135aの各フィルタからは、1/4ずつ縮小された画像出力が画像合成部30に入力される。これから分かるように、ピラミッドフィルタ部135a内のフィルタを通過するほど、各フィルタの前段に必要となるFIFOバッファの大きさは小さくて済むようになる。なおフィルタの数は3つに限定されず、求められる解像度の幅に応じて適宜決定してよい。
【0041】
なお撮像装置12の第2カメラ22bも第1カメラ22aと同じ構造を有するため図示を省略するが、以後の説明において、第2カメラ22bの画像取得部、デモザイク部、ピラミッドフィルタ部、第1フィルタ、第2フィルタ、第3フィルタをそれぞれ、画像取得部102b、デモザイク部104b、ピラミッドフィルタ部135b、第1フィルタ110b、第2フィルタ120b、第3フィルタ130bと符号を付して記載する。
【0042】
図4は画像合成部30および画像送出部32の構成を詳細に示している。画像合成部30は第1カメラ22aおよび第2カメラ22bから送られた各サイズの画像データの、画像送出部32への出力タイミングを調整する出力タイミング調整部140、および、出力タイミング調整のためのFIFOバッファ172a、174a、176a、170b、172b、174b、176bを含む。なお図3においてはY、Cb、Crのデータを個別に表現し、そのそれぞれに対してデータ入出力のための矢印を示したが、以後は図が煩雑にならないよう、それらの要素を1セットで表す。
【0043】
FIFOバッファ172a、174a、176aはそれぞれ、第1カメラ22aの第1フィルタ110a、第2フィルタ120a、第3フィルタ130aから送られた、1/4、1/16、1/64デモザイク後画像の横一列分のYCbCr画素値を保持する。したがってFIFOバッファ172a、174a、176aはそれぞれ、W/2、W/4、W/8個分の画素値を保持するバッファである。
【0044】
FIFOバッファ170b、172b、174b、176bはそれぞれ、第2カメラ22bのデモザイク部104b、第1フィルタ110b、第2フィルタ120b、第3フィルタ130bから送られた、1/1、1/4、1/16、1/64デモザイク後画像の横一列分のYCbCr画素値を保持する。したがって170b、172b、174b、176bはそれぞれ、W、W/2、W/4、W/8個分の画素値を保持するバッファである。
【0045】
出力タイミング調整部140は、第1カメラ22aのデモザイク部104aから送られた1/1デモザイク後画像の横一列分の画素値を画像送出部32に出力した後、FIFOバッファ170bに格納した、第2カメラ22bの1/1デモザイク後画像の横一列分の画素値を出力する。その後、後に詳述するような規則で各画像の横一列分の画素列、あるいは一列分より小さい範囲の画素列を出力していくことで、Y、Cb、Crの画素値のそれぞれについて、1/1、1/4、1/16、1/64デモザイク後画像の画素列が循環して接続した新たな画素列が生成されるように出力タイミングを調整する。
【0046】
上述の通り、本実施の形態において撮像装置12が行う処理は、画像の左上を起点とし、左から右への処理を画像の下方向へ繰り返すラスタ順で実行され、横一列の画素を基本的な処理単位とする。そして各カメラから画像送出部32までの画像データの入出力、およびホスト端末20への画像データの送信は基本的に、画像の横一列の画素値を上から順につなげたストリーム形式とする。
【0047】
画像合成部30が出力するデータも、左右のフレーム画像をそれぞれ4つの解像度で表したデモザイク後画像の画素列が混在する一連の画素値のストリームである。したがって厳密には8つのデモザイク後画像をつなげた結果を2次元平面の画像として生成するものではない。しかしながら後に詳述するように、画像合成部30が出力するストリームに対し、各デモザイク後画像の接続が一巡したときの画素列の画素数を画像の横一列分の画素数として定義すれば、以後の処理は、画像合成部30を介さないRAW画像に対するものと同様となる。結果として画像合成部30は、実質的には1/1、1/4、1/16、1/64デモザイク後画像を合成した画像を生成していることになる。以後、この仮想的な画像を「合成画像」と呼ぶ。
【0048】
画像送出部32は、制御部142、データ選択部144、およびパケット化部146を有する。制御部142は、ホスト端末20からの要求信号に基づき、データ選択部144に、各種画像データのうちいずれをパケットとして送出するかを指示する。制御部142はさらに、ホスト端末20から撮影の開始や終了を要求する信号、撮影条件を指定する信号などを受信し、第1カメラ22a、第2カメラ22bの画像取得部102a、102bなどに適宜その情報を提供するが、ここでは一般的な技術を適用できるため詳細な説明を省略する。
【0049】
データ選択部144は、第1カメラ22aの画像取得部102a、第2カメラ22bの画像取得部102bから入力された左右のRAW画像の画素列、画像合成部30から入力された合成画像の画素列のデータを入力データとし、制御部142から指示されたデータを選択、抽出し、パケット化部146に送る。
【0050】
データ選択部144はストリーム選択部148とクロッピング部150を含む。ストリーム選択部148は、左右のRAW画像および合成画像のストリームの中から要求されたストリームを選択する。ホスト端末20がデモザイク後画像のいずれかを要求した場合、クロッピング部150は、ストリーム選択部148から合成画像のストリームを取得し、当該ストリームに含まれるデモザイク後画像の画素列のうち要求された画素列の切り出しを行う。
【0051】
複数のデモザイク後画像を要求された場合、クロッピング部150は当該複数の画像に対応する画素列の切り出しを同時に行う。そして切り出した画素列のデータをつなげることによりストリームを再構築してパケット化部146に送る。ホスト端末20がRAW画像を要求した場合、ストリーム選択部148はRAW画像のストリームを直接、パケット化部146に送る。
【0052】
パケット化部146はデータ選択部144から入力されたストリームを、通信部34のプロトコルに応じたサイズごとにパケット化し、内部のパケットバッファ(図示せず)に書き込む。例えばUSBの場合、ストリームをエンドポイントのサイズごとにパケット化する。通信部108は、当該パケットバッファ内のパケットを、所定の通信プロトコルにしたがってホスト端末20に転送する。
【0053】
図5は撮像装置12およびホスト端末20におけるデータの形態の基本的な変遷を模式的に示している。ここでは例として、横方向に画素W個分、縦方向に画素H個分の幅を有するフレーム画像200全体のデータを、撮像装置12からホスト端末20に送信する場合を考える。上述のように本実施の形態では画像データの生成、選択、送信を画素のラスタ順に行い、横一列分の画素列を順次つなげてストリームの形式で処理する。
【0054】
このような状況においてデータ選択部144が出力するデータがストリーム202である。同図においてストリーム202の横軸は時間経過を表しており、ストリーム202を構成する各矩形L1、L2、・・・、LHはそれぞれ、フレーム画像200の1列目、2列目、・・・、H列目の画素のデータを表す。1画素のデータサイズをdバイトとすると各矩形のデータサイズはW×dバイトである。
【0055】
パケット化部146は、ストリーム202を所定サイズごとにパケットにまとめ、パケットP1、P2、P3、P4、P5、・・・を生成する。これにより撮像装置12からホスト端末20へ、パケットP1、P2、P3、P4、P5、・・・の順に送信される。ホスト端末20はパケットP1、P2、P3、P4、P5、・・・を通信部44を介して受信すると、それぞれのデータを、情報処理部38の制御のもとメインメモリ42に格納する。
【0056】
このとき、本来のフレーム画像200の横方向の画素数Wを横幅とするように、メインメモリ42に各パケットのデータをラスタ順に並べていき、W×d×Hバイトの連続したアドレスにデータを展開することにより、フレーム画像200を復元した画像204を生成する。同図において画像204を構成する矩形は各パケットのデータを示している。画像処理部40は情報処理部38の制御のもと、メインメモリ42に展開された画像204に加工を施したり別の画像と合成したりして表示装置16に表示すべき画像を描画する。
【0057】
次に画像合成部30が解像度の異なるデモザイク後画像を合成する手法について説明する。なお図6、7では1/1、1/4、1/16、の3種のデモザイク後画像について示しているが、1/64以下のデモザイク後画像を加えても原理は同様である。図6は、1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像の画素値が、ピラミッドフィルタ部135aの各フィルタから入力されるタイミングを示すタイムチャートである。同図において時間ステップS1、S2、S3、S4、・・・はそれぞれ、1/1デモザイク後画像の1列目、2列目、3列目、4列目、・・・の画素値が入力される期間を表す。
【0058】
上記の1/1デモザイク後画像のように、合成画像に含まれる画像のうち最高解像度の画像は、ピラミッドフィルタ部135aにおけるデータの生成レートが最も高い。そこで当該画像の横一列分の画素値が入力される期間を基準の時間ステップとし、当該時間ステップを合成画像の横一列分の画素列と対応させる。すなわち、最高解像度の画像の横一列分の画素値が入力される期間を基準周期として、合成画像の横一列分のデータが生成される。
【0059】
図の上段、中段、下段はそれぞれ、1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像の入力タイミングを示しており、1つの矩形が1画素分の入力に対応する。まず時間ステップS1において、1/1デモザイク後画像の1列目の画素列L(1/1)1の画素値が左の画素から順に入力される。この時間ステップでは、1/4デモザイク後画像、1/16デモザイク後画像は生成されていないため入力されない。
【0060】
次の時間ステップS2では、1/1デモザイク後画像の2列目の画素列L(1/1)2の画素値が左の画素から順に入力される。このときピラミッドフィルタ部135aでは、1/1デモザイク画像の1列目の画素列L(1/1)1および2列目の画素列L(1/1)2の画素値を用いて1/4デモザイク後画像の1列目の画素列L(1/4)1が生成されるため、時間ステップS2では当該画素列の画素値も入力される。
【0061】
例えば1/4デモザイク後画像の1列目の画素列L(1/4)1の左端の期間210で入力される画素値は、1/1デモザイク後画像の1列目の画素列L(1/1)1のうち、期間206で入力される2つの画素の画素値、および2列目の画素列L(1/1)2のうち、期間208で入力される2つの画素の画素値を用いて生成される。このため時間ステップS2において、画素列L(1/4)1の画素値の入力タイミングは、画素列L(1/1)2の対応する画素の画素値の入力タイミングより少なくとも2画素分遅延する。
【0062】
次の時間ステップS3では、1/1デモザイク後画像の3列目の画素列L(1/1)3の画素値が入力される。この時間ステップでは、1/4デモザイク後画像の2列目の画素値が生成されておらず、1/16デモザイク後画像は生成されていないため、そのいずれも入力されない。次の時間ステップS4、すなわち1/1デモザイク画像の4列目の画素列L(1/1)4の画素値が入力される期間では、時間ステップS2と同様、1/4デモザイク後画像の2列目の画素列L(1/4)2の画素値も入力される。
【0063】
さらにピラミッドフィルタ部135aでは、1/4デモザイク画像の1列目の画素列L(1/4)1および2列目の画素列L(1/4)2の画素値を用いて1/16デモザイク後画像の1列目の画素列L(1/16)1が生成されるため、時間ステップS4では当該画素列の画素値も入力される。例えば1/16デモザイク後画像の1列目の画素列L(1/16)1のうち、最初の入力期間218で入力される画素値は、1/4デモザイク画像の1列目の画素列L(1/4)1のうち、期間210および期間212で入力される2つの画素の画素値、および2列目の画素列L(1/4)2のうち、期間214および期間216で入力される2つの画素の画素値を用いて生成される。
【0064】
このため時間ステップS4において、画素列L(1/16)1の入力タイミングは、画素列L(1/4)2の対応する画素の画素値の入力タイミングより少なくとも2画素分遅延する。以後、同様に各画像の画素値入力を繰り返すことにより、1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像の全画素値が画像合成部30へ入力される。
【0065】
このように各画像の画素値は、第1カメラ22aのピラミッドフィルタ部135a、第2カメラ22bのピラミッドフィルタ部135bの対応するフィルタから個別のストリームとしてラスタ順に入力される。画像合成部30はこれらをつなげて1つのストリームとなるようにして画像送出部32へ出力する。最も単純には、元の画像に関わらず、入力された時間順で画素値のデータをつなげていくことが考えられる。この場合、合成処理自体は容易であるが、後の処理で画像ごとに一列ずつデータを分類、抽出する必要が生じ、処理が煩雑化する。
【0066】
また各時間ステップにおいて画像ごとに画素値をまとめて画素列を生成し、それらを直列につなげることも考えられる。この場合、時間ステップS1やS3では、入力される画素値が1/1デモザイク後画像のデータのみであるのに対し、例えば時間ステップS4では1/1デモザイク画像、1/4デモザイク画像、1/16デモザイク画像の3つの画像のデータとなるなど、時間ステップによって出力されるデータ長が大きく変化する。そこで本実施の形態では、データが入力されない時間ステップがある画像については、その時間ステップを利用して、直前に入力された画素値の一部を出力するようにし、各時間ステップで出力されるデータ長をおよそ均等化する。
【0067】
図7は画像合成部30が複数の画像の画素列のデータをつなげた様子を模式的に示している。なお同図では理解を容易にするため、図6で示した3種のデモザイク後画像のみをつなげた様子を示しているが、実際には後述するように、左右のカメラからの画像データを交互につなげていく。図中、S0、S1、S2、S3、・・・は図6と同様の時間ステップであり、それぞれの期間に、1/1デモザイク後画像の一列分の画素値が入力される。
【0068】
同図では各時間ステップに出力される画素列を、画像ごとに異なる網掛け矩形で示している。図6を参照して説明したように、時間ステップS1では1/1デモザイク後画像の1列目の画素列L(1/1)1の画素値のみが入力されるため、画像合成部30はそれをそのまま出力する。元のRAW画像の横方向の画素数がWであるとすると、1/1デモザイク後画像の一列分の画素数も、同図に示すようにWである。
【0069】
次の時間ステップS2では、1/1デモザイク後画像の2列目の画素列L(1/1)2の画素値、および1/4デモザイク後画像の1列目の画素列L(1/4)1の画素値が図6に示すようなタイミングで並列に入力される。画像合成部30はそのうち、1/4デモザイク後画像の1列目の画素列L(1/4)1の画素値をFIFOバッファ172aに一時保存し、1/1デモザイク後画像の2列目の画素列L(1/1)2の画素値を連続して先に出力する。
【0070】
1/1デモザイク画像の2列目の画素列L(1/1)2の画素値が全て出力されたら、続けて、1/4デモザイク後画像の1列目の画素列L(1/4)1をFIFOバッファ172aから読み出し、出力する。このとき次の時間ステップS3で出力する分を考慮し、1/4デモザイク後画像の1列目の画素列L(1/4)1の全画素のうち前半部分(画像平面における左半分)の画素値のみ出力し、残りはFIFOバッファ172aに引き続き保存しておく。
【0071】
次の時間ステップS3では、1/1デモザイク後画像の3列目の画素列L(1/1)3の画素値のみが入力される。画像合成部30は、当該画素列の画素値をそのまま出力し、続けて、1/4デモザイク後画像の1列目の画素列L(1/4)1のうち未出力であった後半部分(画像平面における右半分)の画素値をFIFOバッファ172aから読み出し、出力する。
【0072】
次の時間ステップS4では、1/1デモザイク後画像の4列目の画素列L(1/1)4の画素値および1/4デモザイク後画像の2列目の画素列L(1/4)2、1/16デモザイク後画像の1列目の画素列L(1/16)1の画素値が図6に示すようなタイミングで並列に入力される。画像合成部30はそのうち、1/4デモザイク後画像の2列目の画素列L(1/4)2および1/16デモザイク後画像の1列目の画素列L(1/16)1の画素値をそれぞれFIFOバッファ172a、174aに一時保存し、1/1デモザイク後画像の4列目の画素列L(1/1)4の画素値を連続して先に出力する。
【0073】
1/1デモザイク画像の4列目の画素列L(1/1)4の画素値が全て出力されたら、続けて、1/4デモザイク後画像の2列目の画素列L(1/4)2の前半部分をFIFOバッファ172aから読み出し、出力する。次に1/16デモザイク後画像の1列目の画素列L(1/16)1を出力する。このとき次以降の3つの時間ステップS5、S6、S7で出力する分を考慮し、1/16デモザイク後画像の1列目の画素列L(1/16)1を4分の1分割し、その最初の部分の画素値のみ出力する。残りはFIFOバッファ174aに保存しておく。
【0074】
次の時間ステップS5では、1/1デモザイク後画像の5列目の画素列L(1/1)5の画素値のみが入力される。画像合成部30は、当該画素列の画素値をそのまま出力し、続けて、1/4デモザイク後画像の2列目の画素列L(1/4)2のうち未出力であった後半部分の画素値をFIFOバッファ172aから読み出し、出力する。さらに1/16デモザイク後画像の1列目の画素列L(1/16)1の未出力のデータのうち4分の1分割した2番目の部分の画素値を出力する。
【0075】
同様に、次の時間ステップS6では、1/1デモザイク後画像の6列目の画素列L(1/1)6の画素値、1/4デモザイク後画像の3列目の画素列L(1/4)3の前半部分の画素値、1/16デモザイク後画像の1列目の画素列L(1/16)1の未出力のデータのうち4分の1分割した3番目の部分の画素値を出力する。次の時間ステップS7では、1/1デモザイク後画像の7列目の画素列L(1/1)7の画素値、1/4デモザイク後画像の3列目の画素列L(1/4)3の後半部分の画素値、1/16デモザイク後画像の1列目の画素列L(1/16)1のうち4分の1分割した最後の部分の画素値を出力する。
【0076】
すなわち1/4デモザイク後画像の1列目の画素列L(1/4)1は、時間ステップS2およびS3の2つの時間ステップに半分ずつ出力される。また1/16デモザイク後画像の1列目の画素列L(1/16)1は、時間ステップS4、S5、S6、S7の4つの時間ステップに4分の1ずつ出力される。RAW画像の横方向の画素数がWであるとすると、1/4デモザイク後画像および1/16デモザイク後画像の横一列分の画素数はそれぞれW/2、W/4であるため、同図に示すように、時間ステップあたり(W/2)/2個、(W/4)/4個の画素のデータがそれぞれ出力される。
【0077】
以上の出力処理を画像の最下段の列まで繰り返す。このとき1/1デモザイク後画像の最下段の画素列のデータを出力した時点では、1/4デモザイク後画像の最下段の画素列の後半部分のデータ、および1/16デモザイク後画像の最下段の残り4分の3の画素のデータが未出力となる。そこで直後の時間ステップS(H+1)では、1/4デモザイク後画像の最下段の画素列の後半部分のデータ、および1/16デモザイク後画像の最下段の画素列を4分の1分割した2番目の部分のデータを出力する。
【0078】
このとき、それまで1/1デモザイク後画像のデータを出力していたW画素分のデータとして、まず無効データを出力し、続けて1/4デモザイク後画像、1/16デモザイク後画像のデータを出力する。続く2つの時間ステップS(H+2)、S(H+3)では、それまで1/1デモザイク後画像および1/4デモザイク後画像のデータを出力していたW+(W/2)/2画素分のデータとして、まず無効データを出力し、続けて1/16デモザイク後画像の最下段の画素列を4分の1分割した3番目の部分、4番目の部分のデータをそれぞれ出力する。
【0079】
このように出力すると同図に示すように、はじめの3つの時間ステップと終わりの3つの時間ステップを除く全ての時間ステップで、W+(W/2)/2+(W/4)/4=21W/16個の画素のデータが出力されることになる。また1列分の画素値を出力するのに、1/1デモザイク後画像は1時間ステップ、1/4デモザイク後画像は2時間ステップ、1/16デモザイク後画像は4時間ステップを要するため、1フレーム分の画像データを出力するのに要する時間ステップ数は、H=(H/2)×2=(H/4)×4と、全て等しくなる。結果として、3種の画像の1フレーム分のデータを出力するのに要する総時間ステップ数はH+3となる。
【0080】
上述のように画像合成部30が出力するデータは画素値の羅列であるが、各時間ステップに対応する画素の個数、すなわち21W/16を横一列分の画素の個数として与えておくことにより、画像送出部32ではRAW画像と同様、各時間ステップにおいて出力されるデータを画像の一列分のデータとして扱う。
【0081】
したがって各時間ステップを画像の縦方向の画素に対応させることができ、結果として、図7の全体的な矩形領域で表されるような合成画像220を生成していることになる。上述のように各時間ステップで出力する画素列において各画像のデータが占める範囲を固定することにより、合成画像220において1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像のデータは、それぞれまとまった矩形領域を構成する。そのため、その局所性を利用すれば、画像ごとのデータの切り出しが容易に行える。
【0082】
図8は図7を参照して説明した処理を、第1カメラ22a、第2カメラ22bが出力する各画像データについて交互に繰り返したときに生成される合成画像を示している。合成画像222は、第1カメラ22aによる1/1デモザイク後画像224、第2カメラ22bによる1/1デモザイク後画像226、第1カメラ22aによる1/4デモザイク後画像228、第2カメラ22bによる1/4デモザイク後画像230、第1カメラ22aによる1/16デモザイク後画像232、第2カメラ22bによる1/16デモザイク後画像234、第1カメラ22aによる1/64デモザイク後画像236、第2カメラ22bによる1/64デモザイク後画像238によって構成される。
【0083】
同図において1/1デモザイク後画像224、226には、左右から撮影したユーザ1の顔が表されている。その他のデモザイク後画像、すなわち1/4デモザイク後画像228と230、1/16デモザイク後画像232と234、1/64デモザイク後画像236と238はそれぞれ、当該1/1デモザイク後画像を1/4、1/16、1/64に縮小したうえ、横一列の画素列を1/2分割、1/4分割、1/8分割して縦方向に並べた画像となる。
【0084】
したがって各画像の上端に網掛けして示している通り、合成画像222において、1/1デモザイク後画像224および226の横1列の画素の領域は、1/4デモザイク後画像228および230の横2列の画素の領域、1/16デモザイク後画像232および234の横4列の画素の領域、1/64デモザイク後画像236および238の横8列の画素の領域と対応する。なお同図は説明のために画素1列の幅を実際より広く示している。そのため無効データの領域が広く表されているが、実際には図7で説明した原理により、無効データの領域は最大で7列分の画素であり、合成画像222の全面積の1%以下である。
【0085】
画像送出部32のクロッピング部150は、ホスト端末20が要求する画像データのみを合成画像222から切り出す。クロッピング部150が行う処理は、画像内の指定された矩形領域を切り出して余分な領域を除外する一般的なクロッピング処理と同様である。本実施の形態では処理対象が画像平面ではなく画素列単位となるが、合成画像の横一列分の画素数の情報を与えておけば、画像平面の二次元座標をストリームにおける一次元座標と対応づけることは容易であり、切り取る画素の特定は同様に行える。
【0086】
本実施の形態では、左右それぞれの1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像、1/64デモザイク後画像のデータを、図8に示すような合成画像上の矩形領域にまとめているため、このクロッピング処理によって画像の切り分けを容易に行える。
【0087】
図9はホスト端末20からの要求に応じた画像データの流れを模式的に示している。まずホスト端末20は、合成画像内の領域を指定するデータ要求信号を撮像装置12に送信する。ここでは例えば、合成画像222内の縦方向の画素の範囲と横方向の画素の範囲を指定する。
【0088】
図9の例では、縦方向(Y軸)が(最小値,最大値)=(Ys,Ye)の範囲であり、横方向(X軸)が(最小値,最大値)=(Xs1,Xe1)、(Xs2,Xe2)、(Xs3,Xe3)、(Xs4,Xe4)の範囲である4つの領域を指定している。(Xs1,Xe1)、(Xs2,Xe2)の範囲の画像は、左右のカメラの1/1デモザイク後画像の顔周辺の領域であり、(Xs3,Xe3)は一方のカメラの1/4デモザイク後画像全体、(Xs4,Xe4)は一方のカメラの1/16デモザイク後画像全体である。
【0089】
クロッピング部150は、画像合成部30が横一列の画素列ごとに入力した合成画像から指定された領域を切り取る。具体的にはYsの位置の画素列から、(Xs1,Xe1)、(Xs2,Xe2)、(Xs3,Xe3)、(Xs4,Xe4)の範囲の画素列のみを切り出し、パケット化部146に順次送出する。次にYs+1の画素列、Ys+2の画素列、・・・と同様に同じ範囲の画素列を切り出し、パケット化部146に送出する。パケット化部146は切り出された画素列をつなげてストリームとし、順次パケット化する。
【0090】
結果としてホスト端末20で受信する画像データは、切り出された領域のみからなる新たな合成画像240のストリームとなる。ホスト端末20の情報処理部38はこれを個別の画像に切り分け、メインメモリ42の連続したアドレスに展開する。その結果、メインメモリ42には、左右の1/1デモザイク画像のうち顔周辺の画像242、244、および1/4デモザイク後画像の全体画像246、1/16デモザイク後画像の全体画像248が格納される。あるいは情報処理部38は、メインメモリ42に合成画像240をそのまま展開し、画像処理等に使用する段階で区別するようにしてもよい。
【0091】
このようにホスト端末20は、複数の画像の種類、およびそのうちの特定の領域を、合成画像内の領域を指定することで同時に要求することができる。そしてクロッピング部150は、指定された範囲の画素値を画素の列ごとに抽出していくことにより、複数の画像データを同時に切り出し、必要な画像データのみからなる新たなストリームを生成する。
【0092】
この態様においてホスト端末20は、同時に指定する複数の領域の縦方向の範囲を共通とする。図9の例では、指定された4つの領域は全て、縦方向の範囲が(Ys,Ye)となっている。このようにすることで、クロッピング部150が合成画像の横方向の画素列単位で個別に画素値の抽出を行っても、全ての画素列で抽出する範囲が同じとなる。
【0093】
結果として、抽出した画素をつなげてストリームとしても、画素列によって抽出した画素数が多くなったり少なくなったりすることがなく、新たな合成画像240において、切り出した矩形領域の画像平面がそのまま保存された状態となる。これによりホスト端末20では、要求した各領域の横方向の画素数に基づき、取得したストリームを容易に個々の画像に展開することができる。
【0094】
次に、撮像装置12における撮影条件を様々に変化させたときの本実施の形態の適用例を示す。図10はローリングシャッターを備えた第1カメラ22aおよび第2カメラ22bによって、それぞれ60fpsおよび15fpsのフレームレートで撮影した場合に画像合成部30が生成する合成画像の変遷を示している。同図上段の太線は、各カメラのスキャンラインの位置を時間経過とともに示しており、第2カメラ22bは、第1カメラ22aが4フレーム撮影するごとに同じシャッタースピードで1フレーム撮影する。なおこのフレームレートは一例であり、第1カメラ22aが2以上の所定の数のフレームを撮影するごとに第2カメラ22bが1フレーム撮影する条件であればよい。
【0095】
この場合、第1カメラ22aのみが撮影を行う第1撮影周期(時刻t0からt1)、第2撮影周期(時刻t1からt2)、第3撮影周期(時刻t2からt3)では、同図に示すように、第1カメラ22aが撮影したフレームの1/1デモザイク後画像250、1/4デモザイク後画像252、1/16デモザイク後画像254、1/64デモザイク後画像256のみが順次、画像合成部30から出力される。そして第2カメラ22bも撮影を行う第4撮影周期(時刻t3からt4)において、両カメラが撮影したフレームの1/1デモザイク後画像258、260、1/4デモザイク後画像262、264、1/16デモザイク後画像266、268、1/64デモザイク後画像270、272が出力される。
【0096】
なお画像合成部30は、第2カメラ22bの各フィルタから画像データの入力がない期間も、各デモザイク後画像の分の無効データを、第2カメラ22bからのデータを出力するタイミングでストリームに加える。これにより同図に示すように、どの期間においても合成画像の横1列の画素数が変化せず、同じ位置に同じ種類の画像が配置されるようになる。結果的に画像データの種類と合成画像上の領域が一対一に対応し、ホスト端末20の領域指定を単純化できる。以後の期間においてもこのような画像データの送出が繰り返される。
【0097】
図11は、図10で示した撮影条件においてクロッピング部150が切り出して生成する新たな合成画像とホスト端末20のメインメモリ42に格納される画像を示している。ここでホスト端末20は、図9で示した領域を指定して画像データを要求したとする。なお縦軸に示した各時刻は、その元となるフレームが撮影された時刻を図10と対応させて表しており、切り出し処理やメインメモリ42への格納までの時間は省いている。
【0098】
第1撮影周期である時刻t0からt1では、第1カメラ22aが撮影したフレームの画像のみがクロッピング部150に入力されるため、当該フレームの1/1デモザイク後画像のうち顔周辺の領域の画像280、1/4デモザイク後画像の全体画像284、1/16デモザイク後画像の全体画像286のデータが1列ごとに抽出される。このときホスト端末20からは、画像データの有無にかかわらず第2カメラ22bが撮影したフレームの1/1デモザイク後画像の顔周辺の画像が入るべき合成画像上の領域も指定されるため、クロッピング部150は、元の合成画像で無効データであった部分282も同様に抽出する。
【0099】
ホスト端末20は、このような画像データをストリーム形式で受け取ると、それをメインメモリ42に展開する。このとき無効データであった部分を破棄すると、時刻t1においてメインメモリ42には、第1カメラ22aが撮影したフレームの1/1デモザイク後画像のうち顔周辺の領域の画像288、1/4デモザイク後画像の全体画像290、1/16デモザイク後画像の全体画像292の格納が完了する。第2撮影周期(時刻t1からt2)、第3撮影周期(時刻t2からt3)も同様である。
【0100】
そして第4撮影周期である時刻t3からt4において、両カメラが撮影したフレームの1/1デモザイク後画像のうち顔周辺の領域の画像294,296、第1カメラ22aが撮影したフレームの1/4デモザイク後画像の全体画像298、1/16デモザイク後画像の全体画像300のデータが順次抽出され、時刻t4においてメインメモリ42への展開が完了する。
【0101】
この態様は例えば、ホスト端末20において4フレームごとに1回、ステレオマッチングを行ってユーザ1などの対象物の位置を確認しつつ、顔領域のみ1/1デモザイク後画像を用いて解像度を上げた、1/4デモザイク後画像または1/16デモザイク後画像の全体画像を表示装置16に表示する、といった状況に利用できる。ステレオマッチングの結果は、撮像装置12に対する画像データ要求時の領域指定や、撮像装置12のズーム機構やパンチルタ制御機構などにフィードバックする。これにより、対象物が移動しても常にその付近のみを詳細に表した全体画像を、最小限の画像データ転送で表示できる。
【0102】
あるいは2つのカメラの露光時間を変化させ、露光時間が長く輝度が十分得られている画像を表示に用い、輝度が小さくフレームレートの高い画像を画像解析に用いるように、2つのカメラを使い分けてもよい。
【0103】
図12は図10に示した撮影条件のうち、第2カメラ22bのシャッタースピードを1/4倍にし、第1カメラ22aが4フレーム撮影する時間をかけて第2カメラ22bが1フレーム撮影する場合の合成画像の変遷を示している。この場合、第2カメラ22bから出力された1/1デモザイク後画像の1列分のデータは、第1カメラ22aから1/1デモザイク後画像の4列分のデータが出力されるまで変化しない。その他の解像度の画像も同様に、第2カメラ22bからのデータ出力は、第1カメラ22aのデータ出力の4倍の周期でなされる。なおこのフレームレートとシャッタースピードは一例であり、第2カメラ22bのフレームレートおよびシャッタースピードが第1カメラ22aの1/N(Nは2以上の自然数)であればよい。
【0104】
その結果同図に示すように、第2カメラ22bが撮影したフレームの1/1デモザイク後画像302は、時間経過が縦方向の画素に対応する合成画像において、縦方向に4倍引き延ばされた状態、厳密には、画素4列ごとに同じ画素値を有する画像となる。同図においては第1撮影周期(時刻t0からt1)ではユーザ1の頭部分、第2撮影周期(時刻t1からt2)では目の部分、第3撮影周期(時刻t2からt3)では口の部分、第4撮影周期(時刻t3からt4)では肩の部分が出力され、1/4デモザイク後画像、1/16デモザイク後画像、1/64デモザイク後画像も、各撮影周期でそれらを縮小した画像となる。
【0105】
図13は、図12で示した撮影条件においてクロッピング部150が切り出して生成する新たな合成画像とホスト端末20のメインメモリ42に格納される画像を示している。図の示し方は図11と同様である。この場合、第1撮影周期である時刻t0からt1では、第1カメラ22aが撮影したフレームの1/1デモザイク後画像のうち顔周辺の領域の画像304、第2カメラ22bが撮影したフレームの1/1デモザイク後画像のうち顔周辺の領域の一部306、第1カメラ22aが撮影したフレームの1/4デモザイク後画像の全体画像308、1/16デモザイク後画像の全体画像310のデータが1列ごとに抽出される。
【0106】
ホスト端末20は図11と同様にメインメモリ42に画像データを展開するが、撮像装置12から送信されたストリームのうち、第2カメラ22bが撮影したフレームの1/1デモザイク後画像の部分については、同じ画素値を保持する4列分のデータのうち3列分を破棄する。その結果、第4撮影周期終了時の時刻t4において、第2カメラ22bが撮影したフレームの1/1デモザイク後画像のうち顔周辺の領域の画像312の展開が完了する。なお図11、13、15におけるメインメモリ42内の画像は、展開が完了したもののみを完了したタイミングで示しているが、図13において第2カメラ22bが撮影したフレームの1/1デモザイク後画像は、実際には時刻t0の直後から徐々に格納されていく。メインメモリ42内のその他の画像は図11と同様である。
【0107】
図14は、第2カメラ22bのフレームレートを60fpsとし、第1カメラ22aは第2カメラ22bより小さい画角を、第2カメラ22bより高い240fpsのフレームレートで撮影する場合の合成画像の変遷を示している。同図の例で第1カメラ22aは、第2カメラ22bが1フレームを撮影する間に、ユーザ1の目の部分を4回撮影している。なおこれらの値は一例であり、第1カメラ22aの撮影範囲の縦方向の長さが第2カメラ22bの1/N(Nは2以上の自然数)のとき、第1カメラ22aのフレームレートを第2カメラ22bのN倍とすれば、同図に示すように2つのカメラの同期をとることができる。
【0108】
したがって第2カメラ22bの各撮影周期に対応する合成画像において、第1カメラ22aのフレームの1/1デモザイク後画像314は、同図に示すように、ユーザ1の目の部分の画像が縦方向に4つ連なった画像となる。第1カメラ22aのフレームの1/4デモザイク後画像、1/16デモザイク後画像、1/64デモザイク後画像も、各撮影周期でそれらを縮小した画像となる。
【0109】
図15は、図14で示した撮影条件においてクロッピング部150が切り出して生成する新たな合成画像とホスト端末20のメインメモリ42に格納される画像を示している。図の示し方は図11と同様である。ただし同図の場合、第1カメラ22aが撮影した高フレームレートの目の部分の1/1デモザイク後画像316、第2カメラが撮影したフレームの1/1デモザイク後画像318、および1/4デモザイク後画像320を切り出している。
【0110】
その結果、ホスト端末20のメインメモリ42には、各撮影周期の終了時刻に対応して、それらの画像の展開が完了する。この態様は例えば、目の部分の1/1デモザイク後画像を用いて目やまぶたの動きを高い時間分解能で高精度にトラッキングして表情やジェスチャを検出しつつ、顔領域のみ1/1デモザイク後画像を用いて解像度を上げた、1/4デモザイク後画像の全体画像を表示装置16に表示する、といった状況に利用できる。
【0111】
このとき、検出した表情やジェスチャに応じて表示画像に加工を加えることができる。当該画像をネットワークを介して別のユーザの表示装置に表示すれば、表情によって画像に装飾やアニメーションが出現するビデオチャットなども実現できる。図15の例では目の部分を高フレームレートで撮影したが、ユーザの手やユーザが保持するマーカーなどを撮影し、トラッキング対象としてもよい。この場合、手やマーカーの動きを情報処理の操作入力手段とすることもできる。
【0112】
図16は、ホスト端末20と撮像装置12が協働して画像表示を行う処理手順の例を示すフローチャートである。図16のフローチャートは、ユーザがホスト端末20にアプリケーションの起動指示を入力することによって開始される。また理解を容易にするため各ステップは直列に接続した矩形で表されているが、動画像を撮影している期間において、各画素列、各フレームに対しこれらのステップが並列に実行されるものとする。
【0113】
まずホスト端末20は、アプリケーションプログラムなどに設定されている、初期条件および必要な画像データを指定して、撮像装置12に対し撮影開始指示およびデータ送信要求を行う(S10)。初期条件とは撮像装置12の2つのカメラが撮影する動画像の解像度、フレームレート、シャッタースピード、画角などである。なおカメラが撮影する動画像の解像度やフレームレートは、撮像素子による露光自体の条件設定を変化させてもよいし、撮像素子からのデータを後段で間引くなどの調整を行うことにより変化させてもよい。
【0114】
必要な画像データは上述のとおり合成画像の領域によって指定するが、初期値としては、ユーザが存在すると考えられる領域の1/1デモザイク後画像や、いずれかの解像度の全体画像などを指定する。初期条件の指定および画像データ要求を受け付けた撮像装置12の第1カメラ22aおよび第2カメラ22bは、当該初期条件で動画像の撮影を開始する(S12)。
【0115】
各カメラで取得されたRAW画像は画素列ごとにデモザイク部104a、104b、ピラミッドフィルタ部135a、170bによって処理され、各時間ステップで出力される各階層のデモザイク後画像が画像合成部30によって合成される(S14)。続いて画像送出部32は、S10で指定された画像データのみを合成画像から切り出してストリームとしパケット化したうえホスト端末20へ送信する(S16、S18)。なおRAW画像のデータが要求された場合はS16の処理を省略してよい。
【0116】
データを受信したホスト端末20の情報処理部38は、送信されたストリームを、メインメモリ42に画像として展開する(S20)。情報処理部38は展開された画像を用いて、実行中のアプリケーションに応じた処理を行う(S22)。このとき必要に応じて画像処理部40に画像処理を要求し、画像処理部40はメインメモリ42から画像を読み出し、加工や合成を行う。メインメモリ42に展開された画像データは一般的な画像データと同様であるため、テクスチャとして読み出すことも可能である。
【0117】
情報処理部38はS22において、ステレオマッチング、トラッキング、顔検出、ジェスチャ検出などの画像解析処理を行いその結果を表示画像に反映させるようにしてもよい。このようにして表示画像を生成し、表示装置16に表示する(S24、S26)。情報処理部38はさらに、S22において上記の画像解析により対象物の領域などを特定し、要求する画像データを変更するようにしてもよい。この場合、撮像装置12のクロッピング部150は、新たな画像フレームを処理するタイミングで、切り出す領域を指定に従い変更する。S14からS26の処理を繰り返すことにより、撮像装置12が撮影した画像を用いた動画像を表示装置16に表示させることができる。
【0118】
以上述べた本実施の形態によれば、ユーザなどの動きを撮影する撮像装置と、それを利用して画像表示を行うホスト端末を含むシステムにおいて、撮影した動画像をカメラ内部で複数の解像度のデータとする。そして画像の種類および解像度ごとに、画素のラスタ順に画素値をつなげたストリームとする。そしてホスト端末の要求に従いその一部を送信し、ホスト端末のメモリにおいてフレーム画像を構築する。このように、カメラ内部ではフレーム画像として展開することなく画素列の状態で順次処理を行っていくことにより、カメラに設けるべきメモリサイズを最低限に抑えることができる。また撮影からホスト端末へ送信するまでの間、1フレーム分のデータが出揃うのを待つ必要が生じないため、システム全体として低遅延で動きに応じた画像表示を行える。
【0119】
また複数の解像度の画像データを、一列分の画素値ごとにつなげて1つのストリームに含ませる。このとき、解像度によって「一列分の画素値」が生成されるレートが異なるため、低いレートでデータが生成される低解像度の画像は、データが生成されない期間も含め、均等にストリームに含まれるように配分する。これにより、単位時間あたりに処理および送信すべきデータサイズがおよそ均等になり、出力までに要する時間、使用する伝送帯域、送信に要する時間の見積もりが容易となるうえ、突発的なデータサイズの増大によって伝送帯域を圧迫する可能性が低くなる。
【0120】
このようにして生成したストリームは、後段の処理において、1つの解像度の画像データのみからなるストリームと同等に扱えるため、実質的に、複数の解像度の画像からなる合成画像を生成していることになる。そして上述のようにつなげることにより、合成対象の画像がそれぞれ、合成画像中の矩形領域を構成するようになるため、合成画像内の領域を指定することで、クロッピングという一般的な画像処理によって、1つのストリームに混在する複数の画像のデータを容易に分別できる。
【0121】
またクロッピングによって合成画像のうち複数の領域を同時に切り出し、複数種類の画像データを混在させた状態でストリームとして送信する。このとき、複数の領域の縦方向の範囲を同じとすることにより、実際の処理は画素列単位であっても合成画像の矩形領域を維持した状態で切り出しを行えるため、ホスト端末において画像の区別が容易にできる。
【0122】
複数の画像データを混在させて同時に送信できるため、並列送信が可能な複数チャネルの送信機構を設けずに、多様な画像データを低遅延で送信し、画像処理に利用することができる。さらに合成画像と同様の原理で、送信するデータのストリームにおいても、各サイズの画像データの生成レートに応じてストリームに含まれるデータサイズが均等化されるため、ビットレートが増大することによる転送遅延が起こりにくくなる。
【0123】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0124】
例えば本実施の形態ではステレオ画像のフレームを異なる解像度で表した複数の画像データをストリームに混在させて仮想的な合成画像を生成した。この場合、データ生成レートの異なる画像の合成画像における配置を工夫することでビットレートを均等化できる、という点で特に効果的である。一方、合成画像に含まれる画像はこれに限らず、各時刻で生成される複数種類の画像であれば同様に合成し、切り出し、ホスト端末に送信することができる。
【0125】
例えば1つの解像度のステレオ画像の対のみでもよいし、対象物の奥行き方向の位置を画像平面上に表した奥行き画像、フレーム間差分画像などを混ぜてもよい。後者の場合、撮像装置にステレオマッチング処理やフレーム間差分処理を行う機構を設ける。またステレオ画像でなく単一のフレーム画像から生成された複数種類の画像でもよい。いずれの場合も、合成画像における縦方向の範囲を共通に複数の領域を指定することにより、複数種類の画像をクロッピング処理により同時に切り出し、ストリームに混在させてホスト端末に送信することができる。これによりホスト端末では、送信経路を複数チャンネル設けることなく複数種類の画像を領域指定のみで低遅延に取得することができる。
【符号の説明】
【0126】
10 情報処理システム、 12 撮像装置、 16 表示装置、 20 ホスト端末、 22a 第1カメラ、 22b 第2カメラ、 30 画像合成部、 32 画像送出部、 34 通信部、 36 指示入力部、 38 情報処理部、 40 画像処理部、 42 メインメモリ、 44 通信部、 102a 画像取得部、 104a デモザイク部、 110a 第1フィルタ、 120a 第2フィルタ、 130a 第3フィルタ、 135a ピラミッドフィルタ部、 140 出力タイミング調整部、 142 制御部、 144 データ選択部、 146 パケット化部、 148 ストリーム選択部、 150 クロッピング部。

【特許請求の範囲】
【請求項1】
対象物を撮影して得られる動画像の各フレーム画像から複数の画像のデータを生成し、横一列の画素ごとにストリームとして順次出力する画像データ生成部と、
前記画像データ生成部から出力された前記複数の画像のデータを、画像の横一列分の画素列またはそれより小さい範囲の画素列ごとに循環して接続し、ストリームとして出力することにより、接続が一巡したときの画素列を横一列分の画素列とする、前記複数の画像を含む仮想的な合成画像を生成する画像合成部と、
接続したホスト端末から、前記仮想的な合成画像における、縦方向の範囲を同じとした複数の矩形領域を指定するデータの送信要求を受け付け、前記画像合成部が出力した前記仮想的な合成画像の画素列ごとに、指定された領域を切り出して接続し、新たなストリームとして前記ホスト端末に送信する画像送出部と、
を備えることを特徴とする動画像撮影装置。
【請求項2】
前記動画像撮影装置は、対象物を既知の距離を隔てた左右の視点から撮影する2つのカメラをさらに備え、
前記画像データ生成部は、前記2つのカメラが撮影した左右のフレーム画像をそれぞれ多段階で縮小することにより、異なる解像度の複数の画像のデータを左右のフレーム画像について生成することを特徴とする請求項1に記載の動画像撮影装置。
【請求項3】
前記2つのカメラのうち第2のカメラは、第1のカメラが2以上の所定の数のフレームを撮影するごとに同じシャッタースピードで1フレーム撮影し、
前記画像合成部は、前記第1のカメラが撮影したフレーム画像から生成された画像のデータのみが前記画像データ生成部から出力される期間、前記第2のカメラが撮影したフレーム画像から生成された画像のデータに代えて無効データを接続してストリームに加え、
前記画像送出部は、無効データの有無に関わらず指定された領域を切り出すことを特徴とする請求項2に記載の動画像撮影装置。
【請求項4】
前記2つのカメラのうち第2のカメラは、第1のカメラのフレームレートおよびシャッタースピードの1/N(Nは2以上の自然数)のフレームレートおよびシャッタースピードで撮影し、
前記画像合成部は、前記第1のカメラが撮影したフレーム画像から生成された画像のデータの横N列の画素列のぞれぞれに対し、前記第2のカメラが撮影したフレーム画像から生成された画像のデータの横一列の画素列をN回接続することを特徴とする請求項2に記載の動画像撮影装置。
【請求項5】
前記2つのカメラのうち第1のカメラは、縦方向の長さが第2のカメラの1/N(Nは2以上の自然数)の撮影範囲をN倍のフレームレートで撮影し、
前記画像合成部は、前記第2のカメラが撮影した1フレーム分の画像のデータの画素列に対し、前記第2のカメラが撮影したNフレーム分の画像のデータの画素列をそれぞれ接続することを特徴とする請求項2に記載の動画像撮影装置。
【請求項6】
対象物を撮影して動画像のデータを生成する動画像撮影装置と、当該動画像撮影装置から動画像のデータの一部を取得し、それを利用して所定の画像処理を行ったうえ画像を表示するホスト端末と、を備えた情報処理システムであって、
前記動画像撮影装置は、
動画像の各フレーム画像から複数の画像のデータを生成し、横一列の画素ごとにストリームとして順次出力する画像データ生成部と、
前記画像データ生成部から出力された前記複数の画像のデータを、画像の横一列分の画素列またはそれより小さい範囲の画素列ごとに循環して接続し、ストリームとして出力することにより、接続が一巡したときの画素列を横一列分の画素列とする、前記複数の画像を含む仮想的な合成画像を生成する画像合成部と、
接続したホスト端末から、前記仮想的な合成画像における、縦方向の範囲を同じとした複数の矩形領域を指定するデータの送信要求を受け付け、前記画像合成部が出力した前記仮想的な合成画像の画素列ごとに、指定された領域を切り出して接続し、新たなストリームとして前記ホスト端末に送信する画像送出部と、を備え、
前記ホスト端末は、
前記動画像撮影装置において生成される複数の画像のデータのうち少なくとも2つの画像のデータに対応する、前記仮想的な合成画像における矩形領域を、縦方向の範囲を同じとして指定してデータの送信を要求するデータ要求部と、
前記動画像撮影装置から送信されたストリームを、指定した各矩形領域の横方向の長さに基づき個別の画像のデータに分別し、2次元の画像としてメモリに展開するデータ展開部と、
を備えることを特徴とする情報処理システム。
【請求項7】
対象物を撮影して得られる動画像の各フレーム画像から生成した複数の画像をそれぞれ所定の矩形領域に配置した合成画像を生成する動画像撮影装置に対し、少なくとも2つの画像のデータに対応する、前記合成画像における矩形領域を、縦方向の範囲を同じとして指定してデータの送信を要求するデータ要求部と、
要求に従って前記動画像撮影装置から送信された、指定した複数の矩形領域の画素値を画素列ごとに循環して接続したストリームの状態の画像データを、指定した各矩形領域の横方向の長さに基づき個別の画像のデータに分別し、2次元の画像としてメモリに展開するデータ展開部と、
前記2次元の画像を利用して所定の画像処理を行ったうえ画像を表示するデータ処理部と、
を備えることを特徴とする情報処理装置。
【請求項8】
動画像撮影装置が行う画像データ処理方法であって、
対象物を撮影して得られる動画像の各フレーム画像から複数の画像のデータを生成し、横一列の画素ごとにストリームとして順次出力するステップと、
前記出力された前記複数の画像のデータを、画像の横一列分の画素列またはそれより小さい範囲の画素列ごとに循環して接続し、ストリームとして出力することにより、接続が一巡したときの画素列を横一列分の画素列とする、前記複数の画像を含む仮想的な合成画像を生成するステップと、
接続したホスト端末から、前記仮想的な合成画像における、縦方向の範囲を同じとした複数の矩形領域を指定するデータの送信要求を受け付け、前記仮想的な合成画像の画素列ごとに、指定された領域を切り出して接続し、新たなストリームとして前記ホスト端末に送信するステップと、
を含むことを特徴とする画像データ処理方法。
【請求項9】
対象物を撮影して得られた動画像の各フレーム画像から複数の画像のデータを生成し、横一列の画素ごとにストリームとして順次出力する撮像装置のコンピュータに、
前記出力された前記複数の画像のデータを、画像の横一列分の画素列またはそれより小さい範囲の画素列ごとに循環して接続し、ストリームとして出力することにより、接続が一巡したときの画素列を横一列分の画素列とする、前記複数の画像を含む仮想的な合成画像を生成する機能と、
接続したホスト端末から、前記仮想的な合成画像における、縦方向の範囲を同じとした複数の矩形領域を指定するデータの送信要求を受け付け、前記仮想的な合成画像の画素列ごとに、指定された領域を切り出して接続し、新たなストリームとして前記ホスト端末に送信する機能と、
を実現させることを特徴とするコンピュータプログラム。
【請求項10】
対象物を撮影して得られた動画像の各フレーム画像から複数の画像のデータを生成し、横一列の画素ごとにストリームとして順次出力する撮像装置のコンピュータに、
前記出力された前記複数の画像のデータを、画像の横一列分の画素列またはそれより小さい範囲の画素列ごとに循環して接続し、ストリームとして出力することにより、接続が一巡したときの画素列を横一列分の画素列とする、前記複数の画像を含む仮想的な合成画像を生成する機能と、
接続したホスト端末から、前記仮想的な合成画像における、縦方向の範囲を同じとした複数の矩形領域を指定するデータの送信要求を受け付け、前記仮想的な合成画像の画素列ごとに、指定された領域を切り出して接続し、新たなストリームとして前記ホスト端末に送信する機能と、
を実現させることを特徴とするコンピュータプログラムを記録した記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2013−26978(P2013−26978A)
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2011−162334(P2011−162334)
【出願日】平成23年7月25日(2011.7.25)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】