図1は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム10は、対象物を撮影する撮像装置12、撮影した画像に基づき、ユーザの要求に応じた情報処理を行うホスト端末20、ホスト端末20が処理した結果得られた画像を表示する表示装置16を含む。ホスト端末20はインターネットなどのネットワーク18と接続可能としてもよい。
ホスト端末20と、撮像装置12、表示装置16、ネットワーク18とは、有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。撮像装置12、ホスト端末20、表示装置16のうちいずれか2つ、または全てが組み合わされて一体的に装備されてもよい。例えばそれらを装備したカメラや携帯端末などで情報処理システム10を実現してもよい。いずれにしろ撮像装置12、ホスト端末20、表示装置16の外観形状は図示するものに限らない。
撮像装置12は、対象物を所定のフレームレートで撮影するカメラと、その出力データをデモザイク処理、縮小処理することで複数種類の画像データをフレームごとに生成する機構とを有する。カメラはCCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサなど、一般的なデジタルカメラ、デジタルビデオカメラで利用されている可視光センサを備える。赤外線照射手段と赤外線センサとを組み合わせた距離画像センサと、一般的な可視光センサとを組み合わせたものでもよい。
撮像装置12は、2つのカメラを既知の間隔で左右に配置したいわゆるステレオカメラを有していてもよい。撮像装置12が撮影、生成した画像のデータは後に述べるようなストリーム形式でホスト端末20に送信される。ホスト端末20は、送信された画像データを用いて必要な情報処理を行い、表示に用いる画像のデータを生成する。ここでホスト端末20が行う処理の内容は特に限定されず、ユーザが求める機能やアプリケーションの内容などによって適宜設定される。
ホスト端末20は例えば、撮影画像に対し一般的な顔検出やトラッキング処理を施すことにより、対象物であるユーザの動作を反映させたキャラクタが登場するゲームを進捗させたり、ユーザの動きをコマンド入力に変換して情報処理を行ったりする。撮影画像に3次元オブジェクトを描画して表示することにより仮想現実(AR)を実現してもよい。この場合、撮影対象はユーザに限らず、ユーザ側から見た室内などでもよい。
表示装置16は、ホスト端末20が行った処理の結果を画像として表示する。表示装置16は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビでよく、例えば液晶テレビ、プラズマテレビ、PCディスプレイ等である。あるいは表示装置16は、ユーザの頭に装着してその眼前に画像を表示するヘッドマウントディスプレイでもよい。
このとき撮像装置12にはステレオカメラを設け、撮影した左右の視点からの画像に、表示方式やアプリケーションに応じた加工を施し、表示装置16の画面を左右に2分割した領域にそれぞれ表示させて立体視を実現してもよい。あるいは表示装置16は、携帯端末やタブレット端末の表示機構、カメラの電子ファインダなどで実現することにより、撮像装置12、ホスト端末20と一体的であってもよい。
このように本実施の形態の情報処理システム10は、様々な態様への適用が可能であるため、各装置の構成や外観形状もそれに応じて適宜決定してよい。本実施の形態では、いずれの態様であっても、装置間のデータ伝送および伝送に係る内部処理を効率化することにより、解像度やフレームレートの増加に対し処理や表示の即時性、応答性が損なわれにくいシステムを実現する。以後は特に、画像データの伝送メカニズムに主眼を置き説明する。画像データの伝送経路として、撮像装置12からホスト端末20への伝送、ホスト端末20から表示装置16への伝送、が考えられる。本実施の形態は各経路において独立に適用できるため、まず撮像装置12からホスト端末20へのデータ伝送手法について説明する。
図2はホスト端末20と撮像装置12の構成を示している。図2および後に説明する図3〜5、図13に示す各機能ブロックは、ハードウェア的には、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、描画回路、撮像素子などの構成で実現でき、ソフトウェア的には、記録媒体などからメモリにロードした、データ入力機能、データ保持機能、画像処理機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
ホスト端末20は、ユーザからの指示入力を取得する指示入力部36、ホスト端末20および撮像装置12を統括的に制御し、目的に応じた情報処理を行う情報処理部38、表示に用いる画像を生成する画像処理部40、撮像装置12からの画像データを格納するメインメモリ42、撮像装置12および表示装置16と画像データや必要な情報の送受信を行うインターフェースである通信部44を含む。
指示入力部36は、ユーザからの指示入力を受け付け、それに応じた処理要求信号を生成して情報処理部38に送信する。指示入力部36は、コントローラ、ボタン、キーボード、マウス、トラックボール、タッチパネルなど一般的な入力装置と、当該入力装置になされた操作内容を解釈して処理要求信号を生成するプロセッサなどの協働により実現する。
情報処理部38は、指示入力部36から取得した処理要求信号に応じて撮像装置12への画像データの送信要求、画像処理部40への画像処理の要求などを行う。また撮像装置12から送信された画像データを後に詳述するようにメインメモリ42に展開する。さらに情報処理システム10が実行する処理の内容によっては、撮像装置12から送信された画像データを用いてステレオマッチング、対象物のトラッキング、顔検出、ジェスチャ検出などの画像解析を行う。これらの画像解析には一般的な技術を適用できる。
画像処理部40はメインメモリ42に展開された画像を用いて、情報処理部38からの要求に応じた画像処理を行い、表示に用いる画像を生成する。当該画像のデータは情報処理部38の制御のもと、通信部44を介して表示装置16に順次出力され、表示される。通信部44は、情報処理部38が要求する画像データに係る情報を撮像装置12へ送信する。また、それに応じて撮像装置12から送信された画像データを取得し情報処理部38へ送る。さらに、表示に用いる画像のデータを表示装置16へ送信する。
撮像装置12は、動画像を撮影したうえ複数種類の画像データを生成するカメラ22、ホスト端末20から要求された画像データを抽出し、送信用の画像データを生成する画像送出部32、および、ホスト端末20とのデータ送受信のインターフェースである通信部34を含む。カメラ22は、対象物を所定のフレームレートで撮影する。そして当該撮影画像を段階的に縮小することにより、複数解像度の画像データをフレームごとに生成する。
画像送出部32は、カメラ22が生成した画像データのうち、ホスト端末20が要求する画像データを抽出したうえで統合し、後に述べるような仮想的な合成画像を生成する。これによりホスト端末20が、画像の種類のみならずそのうちの一部の領域を指定し、該当データのみを受け取ることができるようにする。ホスト端末20と撮像装置12との通信方式によっては、画像送出部32はさらに、抽出した画像データを適宜パケット化する。
通信部34は、ホスト端末20からの画像データの要求信号を受け付け、画像送出部32に通知するとともに、画像送出部32が生成した送信用の画像データをホスト端末20に送信する。通信部34は、例えばUSB3.0等の所定のプロトコルにしたがって、パケットをホスト端末20に送出する。ホスト端末20との通信は有線に限らず、例えばIEEE802.11a/b/gなどの無線LAN通信、IrDAなどの赤外線通信であってもよい。
本実施の形態において撮像装置12が行う処理は、基本的には画像の横一列分の画素列単位で行われ、当該単位で次の機能ブロックに供給される。このようにすることで撮像装置12の各機能ブロックが備えるメモリ容量は最小限ですみ、また、撮影からホスト端末20への画像データの送信までを低遅延に行える。
図3は撮像装置12のカメラ22の構成を詳細に示している。カメラ22は、画像取得部102、デモザイク部104、サイズ調整部108、ピラミッドフィルタ部135を備える。画像取得部102は、撮像素子で露光された画像を所定のレートで読み出す。この画像はいわゆるRAW画像である。
画像取得部102は、RAW画像の横一列分の画素列の露光が完了するごとに、これをデモザイク部104および画像送出部32に送る。以下の説明では、nを自然数として、画像取得部102が取得するRAW画像が、横方向にnW画素、縦方向にnH画素の幅を有するものとする。これは、後述するピラミッドフィルタ部135に入力する縮小前の画像の横方向の画素数をW、縦方向の画素数をHと定め、それを基準とするためである。最も単純にはn=1とし、カメラの解像度によって定まるRAW画像のサイズに合わせてピラミッドフィルタ部135を準備すればよい。
一方、本実施の形態では、カメラの解像度が技術革新などによりいかに変化しても、ピラミッドフィルタ部135の構成をそのまま利用できるようにすることで拡張性を高めるとともに、解像度によらず各処理を同様に行えるようにしている。したがって自然数nは、導入するカメラの解像度に応じて決定する。あるいは想定し得る範囲でnの最大値を決定し、バッファメモリの容量などをそれに応じて準備しておいてもよい。この場合、画像取得部102が、接続された撮像素子から実際のnの値を求め、他のブロックに通知することにより、処理内容に反映させたり、バッファメモリの使用範囲を決定したりする。
デモザイク部104は、画素nW個分の容量を有するFIFO(First In First Out)バッファ105と簡易デモザイク処理部106とを有する。FIFOバッファ105には、RAW画像の横一列分の画素データが入力され、次の横一列分の画素データがデモザイク部104に入力されるまでそれを保持する。簡易デモザイク処理部106は、横二列分の画素データを受け取ると、それらを用いて、各画素に対してその周辺画素に基づき色情報を補完してフルカラー画像を作り出すデモザイク(de-mosaic)処理を実行する。
当業者には周知のように、このデモザイク処理には多数の手法が存在するが、ここでは横二列分の画素のみを利用する簡易なデモザイク処理で十分である。一例として、対応するYCbCr値を算出すべき画素がG値のみを有している場合は、R値は左右に隣接するR値を平均、G値は当該G値をそのまま使用、B値は上または下に位置するB値を使用してRGB値とし、これを所定の変換式に代入してYCbCr値を算出するなどである。このようなデモザイク処理は周知であるからこれ以上詳細な説明は省略する。なおデモザイク部104および以後の処理で生成される画像データの色空間はYCbCrに限定されるものではない。
簡易なデモザイク処理で十分な理由は、高品質の画像が必要な場合はRAW画像を用いることができるためである。簡易なデモザイク処理の変形例として、RGBの4画素から一画素のYCbCr値を構成する手法を用いてもよい。この場合は、RAW画像の1/4サイズのデモザイク後画像が得られるので、後述するピラミッドフィルタ部135の第1フィルタ137は不要になる。
簡易デモザイク処理部106は、例えば図示のように、横2×縦2のRGBの4画素を、4画素分のYCbCrカラー信号に変換し、画像送出部32およびサイズ調整部108に送信する。この処理を、入力されたRAW画像全体に対して繰り返すことにより、デモザイク部104は、1つのRAW画像に対し、横方向にnW画素、縦方向にnH画素の幅を有するデモザイク後画像を生成することになる。この画像は、基準とする横方向W画素、縦方向H画素の画像を、縦横双方向にn倍したサイズを有するため、以後、n2/1デモザイク後画像と呼ぶ。
サイズ調整部108は、画像取得部102が取得したRAW画像、および、デモザイク部104が生成したn2/1デモザイク後画像を、横方向、縦方向にそれぞれ1/n倍に縮小し、基準の画像サイズにする。そのためサイズ調整部108は、画素nW個分の容量を有するFIFOバッファ112、114、および、縮小処理部110を有する。FIFOバッファ112は、RAW画像の横一列分の画素データをそれぞれ保持する1つまたは複数のFIFOバッファからなる。これらのFIFOバッファは、一度の縮小処理に必要な所定数の行のうち最後の行の画素データが画像取得部102から入力されるまで、それ以外の行の画素データを保持する役割を有する。
縮小処理部110は、所定数の行分のRAW画像の画素データが画像取得部102から入力された時点で、それを用いて縮小処理を行う。縮小処理にはバイリニア補間など一般的な手法を用いることができる。FIFOバッファ112を構成するFIFOバッファの数は、適用する縮小処理の手法に応じて決定する。例えば横n×縦n画素のブロックごとの画素値の平均値を1つの画素値とする場合、縮小画像を1行生成するためには、n行分の画素データが必要となるため、FIFOバッファの数はn−1となる。図3の例ではFIFOバッファを2つ以上記載しているが、1/2倍に縮小する場合は1つでよい。
FIFOバッファ114も同様に、Y、Cb、Crのそれぞれの信号に対応して、n2/1デモザイク後画像の横一列分の画素データをそれぞれ保持する1つまたは複数のFIFOバッファで構成する。縮小処理部110は、所定数の行分のn2/1デモザイク後画像の画素データがデモザイク部104から入力された時点で、それを用いて上述と同様に縮小処理を行う。縮小処理の結果として、縮小処理部110は、横方向にW画素、縦方向にH画素の幅を有する縮小RAW画像および縮小後のY、Cb、Cr画像の画素データを1行ごとに出力する。
サイズ調整部108はそれらのデータを順次、画像送出部32に送信するとともに、Y、Cb、Cr画像のデータについてはピラミッドフィルタ部135にも送信する。このときのY、Cb、Cr画像は基準のサイズを有するため、以後、1/1デモザイク後画像と呼ぶ。なおカメラの解像度によってn=1となる場合は、サイズ調整部108による縮小処理を省略してよい。ピラミッドフィルタ部135は、画像を段階的に縮小して出力する機能を有する。これにより生成された複数の解像度のY、Cb、Cr画像の画素データは、1行ごとに画像送出部32に送信される。
図4はピラミッドフィルタ部135の詳細を示している。ピラミッドフィルタ部135は基本的に、必要とする解像度のレベルに応じた数の1/4縮小フィルタを備える。同図では第1フィルタ137、第2フィルタ141、第3フィルタ145の3階層のフィルタを有している。各フィルタは、相互に隣接する4個の画素をバイリニア補間して4画素の平均画素値を演算する処理を実行する。したがって、処理後の画像サイズは処理前の画像の1/4になる。なお本実施の形態は、3階層以外のフィルタ数であっても同様に実現できることは当業者には容易に理解されるところである。
第1フィルタ137の前段には、Y、Cb、Crのそれぞれの信号に対応して、画素W個分のFIFOバッファ139が一つずつ配置される。これらのFIFOバッファ139は、横一列分のYCbCrの画素データを、次の横一列分の画素データがサイズ調整部108から入力されるまで保持する役割を有する。横二列分の画素データが入力されると、第1フィルタ137は、横2×縦2の4画素分のY、Cb、Crの画素値を平均する。この処理を繰り返すことによって、1/1デモザイク後画像は縦横それぞれ1/2の長さとなり、全体として1/4のサイズに変換される。変換された1/4デモザイク後画像は、画像送出部32に送られるとともに、次段の第2フィルタ141に渡される。
第2フィルタ141の前段階には、Y、Cb,Crのそれぞれの信号に対応して、画素W/2個分のFIFOバッファ143が一つずつ配置される。これらのFIFOバッファ143も、横一列分のYCbCrの画素データを、次の横一列分の画素データが第1フィルタ137から入力されるまで保持する役割を有する。横二列分の画素データが入力されると、第2フィルタ141は、横2×縦2の4画素分のY、Cb、Crの画素値を平均する。この処理を繰り返すことによって、1/4デモザイク後画像は縦横それぞれ1/2の長さとなり、全体として1/16のサイズに変換される。変換された1/16デモザイク後画像は、画像送出部32に送られるとともに、次段の第3フィルタ145に渡される。
第3フィルタ145についても、前段にW/4個分のFIFOバッファ147が配置される以外は、上記と同様の処理を繰り返す。そして画像送出部32に、1/64サイズのデモザイク後画像を出力する。このように、ピラミッドフィルタ部135の各フィルタからは、1/4ずつ縮小された画像データが画像送出部32に入力される。なお、上記のようなピラミッドフィルタは、特許文献1にも記載されているように周知であるから、本明細書ではこれ以上の詳細な説明を省略する。
なお図示した例では、カメラ22は複数種類の画像として、撮像素子の構成を反映する最高解像度のRAW画像、それを基準の解像度に縮小した縮小RAW画像、および、それ以下の複数の解像度のデモザイク後画像を生成している。一方、カメラ22では最高解像度のRAW画像をデモザイク処理せずに複数の解像度に縮小してホスト端末20に送信し、ホスト端末20で各解像度のRAW画像をデモザイク処理してもよい。この場合、撮像装置12においてデモザイク部104を省略できるが、それ以外の構成は同様でよい。
図5は画像送出部32の構成を詳細に示している。画像送出部32は、カメラ22から送られたRAW画像またはn2/1デモザイク後画像のデータをフレーム単位で保持するフレームメモリ150と、縮小RAW画像または1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像、1/64デモザイク後画像をそれぞれ行単位で保持するFIFOバッファ170、172、174、176を含む。なお図3、図4においてはY、Cb、Crのデータ信号を個別に表現し、各信号に対して入力線の矢印を示したが、以後はそれらの要素を1セットとして1つの矢印で表す。
画像送出部32はさらに、ホスト端末20から要求された画像データに係る情報を通信部34を介して取得する制御部182、要求された画像データを抽出するデータ抽出部184、および、送信データを形成するデータ形成部186を有する。フレームメモリ150は、カメラ22の画像取得部102から送られたRAW画像、またはデモザイク部104から送られたn2/1デモザイク後画像のデータをフレーム単位で保持する。
FIFOバッファ170は、カメラ22のサイズ調整部108から送られた、縮小RAW画像または1/1デモザイク後画像の横一列分の画素値を保持する。FIFOバッファ172、174、176はそれぞれ、カメラ22の第1フィルタ137、第2フィルタ141、第3フィルタ145から送られた、1/4デモザイク後画像、1/16デモザイク後画像、1/64デモザイク後画像の横一列分の画素値を保持する。
したがってFIFOバッファ170、172、174、176はそれぞれ、W、W/2、W/4、W/8個分の画素値を保持するバッファである。なおFIFOバッファの数は、カメラ22のピラミッドフィルタ部135におけるフィルタ数に応じて決定する。制御部182は、ホスト端末20からの要求信号に基づき、送出すべき画像データに係る情報をデータ抽出部184に通知する。制御部182はさらに、ホスト端末20から撮影の開始や終了を要求する信号、撮影条件を指定する信号などを受信し、カメラ22の画像取得部102などに適宜その情報を提供することにより撮影処理を制御するが、一般的な技術を適用できるためここでは詳細な説明を省略する。
データ抽出部184は、ホスト端末20が要求する画像データに係る情報を制御部182から取得すると、FIFOバッファ170、172、174、176およびフレームメモリ150に格納された各画像データのうち要求されたデータを抽出する。上述のとおりカメラ22からは、RAW画像、n2/1デモザイク後画像、縮小RAW画像、1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像、1/64デモザイク後画像が、生成された順に画像送出部32に入力される。
このとき画像サイズが小さくなるほどカメラ22における生成頻度、ひいては画像送出部32への入力頻度が低くなる。データ抽出部184は、そのように様々な頻度で入力される画像データのうち要求されたデータが、より低い遅延で滞りなく出力されるように、各画像の入力タイミングや頻度に係る特性を考慮して出力タイミングを決定する。具体的には、FIFOバッファ170に格納された縮小RAW画像または1/1デモザイク後画像1行分が生成される周期を基準周期とし、要求された複数種類の画像データを当該周期で循環して出力する。詳細は後述する。
本実施の形態において撮像装置12が行う処理は、画像の左上を起点とし、左から右への処理を画像の下方向へ繰り返すラスタ順である。そのような処理の結果を低遅延に出力するため、カメラ22から画像送出部32への入力、および撮像装置12からホスト端末20への送信は、行を構成する画素列を順につなげたストリーム形式とする。したがってデータ抽出部184が出力するデータも、カメラ22が取得、生成した各種画像のデータが混在する一連の画素値のストリームである。
なお図5では、カメラ22の画像取得部102から入力可能なRAW画像、および、デモザイク部104から入力可能なn2/1デモザイク後画像のいずれか一方を送信対象とすることを想定している。さらにカメラ22のサイズ調整部108から入力可能な、縮小RAW画像および1/1デモザイク後画像のいずれか一方を送信対象とすることを想定している。そのためそれらの入力線は1つのみ示している。これは多くの場合、RAW画像またはn2/1デモザイク後画像のいずれか一方、縮小RAW画像または1/1デモザイク後画像のいずれか一方があれば表示や情報処理には十分であると考えられるためである。
どちらを選択するかは、ホスト端末20からの要求に応じて切り替えてもよいし、固定としてもよい。前者の場合、カメラの出力側、あるいは画像送出部32の入力側にマルチプレクサ等の回路を設け、ホスト端末20からの要求に応じて制御部182が切り替え制御を行ってもよい。あるいは全てのデータをフレームメモリやFIFOバッファで保持できるようにしておき、データ抽出部184によって必要なデータのみを抽出するようにしてもよい。以後の説明では主に、フレームメモリ150にn2/1デモザイク後画像を、FIFOバッファ170に1/1デモザイク後画像を格納するとする。
データ抽出部184は、複数種類の画像データが混在する画素列のデータストリームを、生成順にデータ形成部186に供給する。データ形成部186は、データ抽出部184から供給されたストリームを、ホスト端末20との通信プロトコルに応じたフォーマットに変換することにより送出可能なデータ形式とする。通信部34はそのように形成されたデータをホスト端末20へ送信する。例えばデータ形成部186は、ストリームをUSBのエンドポイントのサイズごとにパケット化し、内部のパケットバッファ(図示せず)に書き込む。そして通信部34が、当該パケットバッファ内のパケットをホスト端末20に順次、転送する。
図6は撮像装置12およびホスト端末20におけるデータの形態の基本的な変遷を模式的に示している。ここでは最も単純な例として、横方向にW画素、縦方向にH画素の幅を有するフレーム画像200全体のデータを、撮像装置12からホスト端末20に送信する場合を考える。上述のように本実施の形態では画像データの生成、抽出、送信を画素のラスタ順に行い、行単位の画素データを順次つなげてストリームの形式で処理する。
このような状況においてデータ抽出部184が出力するデータが、ストリーム202に対応する。同図においてストリーム202の横軸は時間経過を表しており、ストリーム202を構成する各矩形L1、L2、・・・、LHはそれぞれ、元のフレーム画像200の1行目、2行目、・・・、H行目の画素のデータを表す。1画素のデータサイズをdバイトとすると各矩形のデータサイズはW×dバイトである。
データ形成部186は例えば、ストリーム202を所定サイズごとにパケットにまとめ、パケットP1、P2、P3、P4、P5、・・・を生成する。これにより撮像装置12からホスト端末20へ、パケットP1、P2、P3、P4、P5、・・・の順に送信される。ホスト端末20はパケットP1、P2、P3、P4、P5、・・・を通信部44を介して受信すると、それぞれのデータを、情報処理部38の制御のもとメインメモリ42に格納する。
このとき、本来のフレーム画像200の横方向の画素数Wを横幅とするように、各パケットのデータをラスタ順に並べていき、W×d×Hバイトの連続したアドレスにデータを展開することにより、フレーム画像200を復元した画像204を生成する。同図において画像204を構成する矩形は各パケットのデータを示している。パケットのデータサイズによっては、1つのパケットに含まれる画素データが画像204の行の末尾と次の行の先頭に渡る場合がある。画像処理部40は情報処理部38の制御のもと、メインメモリ42に展開された画像204に加工を施したり別の画像と合成したりして、表示装置16に表示すべき画像を生成する。
図7はサイズ調整部108が行う画像の縮小処理前後の画素の関係を模式的に示している。まず画像310はRAW画像またはn2/1デモザイク後画像であり、横方向にnW画素、縦方向にnH画素のサイズを有する。画像310内部に示した最小単位の矩形が各画素であり、画像左上の横n×縦n個の画素に1からnまでの行番号、列番号をそれぞれ示している。このような画像の画素データが、RAW画像の場合は画像取得部102から、デモザイク後画像の場合はデモザイク部104から、1行ごとにサイズ調整部108に入力される。
サイズ調整部108は、縮小処理に必要な所定数の行の画素データが全て入力し終わるまで、先に入力された行の画素データをFIFOバッファ112、114に保持しておく。画像310の横n×縦n画素のブロックを用いて縮小後の1つの画素を生成するとすると、n行目のデータが入力された時点で、サイズ調整部108はFIFOバッファに格納しておいた1行目からn−1行目までの画素データを読み出し、ブロックごとに画素値を平均するなどして1つの画素値を算出する。図7の画像310において太線で囲まれた矩形が、縮小RAW画像または1/1デモザイク後画像の1画素に対応する。これを行の末尾まで繰り返すことにより、横幅がW画素の縮小RAW画像または1/1デモザイク後画像の1行分の画素データが生成される。
さらにこの処理を画像310の縦方向に繰り返すことにより、縦横双方向に1/n倍に縮小した縮小RAW画像または1/1デモザイク後画像全体を生成できる。サイズ調整部108は画素データを1行生成するごとに、順次、画像送出部32およびピラミッドフィルタ部135に入力する。以後、このようにして生成される1/1デモザイク後画像を、1行目から順にL(1/1)1、L(1/1)2、L(1/1)3、・・・と表記する。なお上述の通り1/1デモザイク後画像は、後の処理において同サイズの縮小RAW画像に置き換えることができる。
図8は、1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像の画素データが、サイズ調整部108およびピラミッドフィルタ部135の各フィルタから画像送出部32へ入力されるタイミングを示すタイムチャートである。なお同図は縮小画像として1/16デモザイク後画像までを示しているが、1/64以下のデモザイク後画像を加えても原理は同様である。同図において時間ステップS1、S2、S3、S4、・・・はそれぞれ、1/1デモザイク後画像の1行目、2行目、3行目、4行目、・・・の画素データが画像送出部32へ入力される期間を表す。
本実施の形態では上述のとおり、1/1デモザイク後画像の1行分の画素データが入力される期間を基準の時間ステップとし、各時間ステップにおいて、要求された複数の画像データを循環して接続し、出力する。なお図7で説明したように、サイズ調整部108は、n−1行分のn2/1デモザイク後画像の画素データがFIFOバッファに格納され、さらにn行目のn2/1デモザイク後画像が入力されると同時に、行の先頭から1/1デモザイク後画像の画素データを生成していく。
したがって画像送出部32には、1/1デモザイク後画像の各行の画素データが入力される各時間ステップにおいて、太線矢印で示した期間に、少なくともn−1行分のn2/1デモザイク後画像の画素データが入力されるが、図8ではその期間の時間軸を短縮して示している。いずれにしろ各時間ステップS1、S2、S3、S4、・・・は、n2/1デモザイク後画像の画素データがn行分、入力される期間にも対応している。入力データとしてRAW画像を選択した場合も同様である。
図の上段、中段、下段はそれぞれ、1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像の入力タイミングを示しており、1つの矩形が1画素分の入力に対応する。まず時間ステップS1において、1/1デモザイク後画像の1行目の画素列L(1/1)1の画素データが、行の先頭の画素から順に入力される。この時間ステップでは、1/4デモザイク後画像、1/16デモザイク後画像は生成されていないため入力されない。
次の時間ステップS2では、1/1デモザイク後画像の2行目の画素列L(1/1)2の画素データが、行の先頭の画素から順に入力される。このときピラミッドフィルタ部135では、1/1デモザイク後画像の1行目の画素列L(1/1)1および2行目の画素列L(1/1)2の画素データを用いて1/4デモザイク後画像の1行目の画素列L(1/4)1が生成されるため、時間ステップS2では当該画素列の画素データも入力される。
例えば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画素分遅延する。
次の時間ステップ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の画素データも入力される。
さらにピラミッドフィルタ部135では、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つの画素の画素値を用いて生成される。
このため時間ステップS4において、画素列L(1/16)1の入力タイミングは、画素列L(1/4)2の対応する画素の画素値の入力タイミングより少なくとも2画素分遅延する。以後、同様に各画像の画素データの入力を繰り返すことにより、1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像の全画素データが画像送出部32へ入力される。
このように各画像の画素データは、カメラ22の各ブロックおよび各フィルタから個別のストリームとしてラスタ順に入力される。データ抽出部184は、これらのうちホスト端末20から要求された画像およびそのうちの要求された領域のデータのみをつなげて1つのストリームとなるようにしてデータ形成部186へ出力する。このときデータの種類に関わりなく、入力された時間順で該当領域の画素のデータをつなげると、合成処理自体は容易であるが、後にホスト端末20が画像データを分類する際、画素ごとにデータを抽出する必要が生じ、処理が煩雑化する。
そこで各時間ステップ内で入力されたデータを、画像の種類ごとにまとめたうえでつなげることも考えられる。この場合、例えば時間ステップS1やS3では、n2/1デモザイク後画像および1/1デモザイク後画像の画素データのみが入力されるのに対し、時間ステップS4ではさらに1/4デモザイク後画像、1/16デモザイク後画像の画素データが入力されるため、時間ステップによって出力すべきデータのサイズが変動する。さらにホスト端末20から要求されたデータにn2/1デモザイク後画像が含まれているか否かやその範囲などによっても、時間ステップごとに出力すべきデータサイズが大きく変化する。
そこで本実施の形態では、1/4デモザイク後画像や1/16デモザイク後画像のようにデータが入力されない時間ステップがある画像については、その時間ステップを利用して、直前に入力された画素データの一部を出力するようにする。さらに各時間ステップにおいて、FIFOバッファに格納されたデータの一部のみを出力することにより生じた余剰時間を利用して、フレームメモリ150に格納されたn2/1デモザイク後画像を、その時間ステップに入力されたか否かに関わりなく出力していく。これらの工夫により、各時間ステップで出力されるデータのサイズをおよそ均等化する。
まず理解を容易にするため、FIFOバッファに格納された画像のみを出力対象とした場合について説明する。図9は、データ抽出部184がFIFOバッファに格納されたデータをつなげて出力する規則を説明するための図である。同図は最も基本的な例として、1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像の全体領域を出力する場合を示している。図中、S0、S1、S2、S3、・・・は、図8で説明した時間ステップであり、それぞれの期間に、1/1デモザイク後画像の1行分の画素データがFIFOバッファ170に入力される。
同図では各時間ステップにおいてデータ抽出部184から出力される画素列を、画像の種類ごとに異なる網掛け矩形で示している。図8を参照して説明したように、時間ステップS1では1/1デモザイク後画像の1行目の画素列L(1/1)1の画素データのみがFIFOバッファ170に格納される。データ抽出部184はそれを読み出して出力する。なお上述のとおり1/1デモザイク後画像の各行は、同図に示すようにW画素で構成される。
次の時間ステップS2では、1/1デモザイク後画像の2行目の画素列L(1/1)2の画素データ、および1/4デモザイク後画像の1行目の画素列L(1/4)1の画素データが図8に示すようなタイミングでFIFOバッファ170、172に並列に格納される。データ抽出部184はまず、1/1デモザイク後画像の2行目の画素列L(1/1)2の画素データをFIFOバッファ170から読み出し、出力する。
1/1デモザイク後画像の2行目の画素列L(1/1)2の画素値を全て出力したら、データ抽出部184は続けて、1/4デモザイク後画像の1行目の画素列L(1/4)1をFIFOバッファ172から読み出し、出力する。このとき次の時間ステップS3で出力する分を考慮し、1/4デモザイク後画像の1行目の画素列L(1/4)1の全画素のうち前半部分(画像平面における左半分)の画素データのみ出力し、残りはFIFOバッファ172に引き続き保存しておく。
次の時間ステップS3では、1/1デモザイク後画像の3行目の画素列L(1/1)3の画素データのみがFIFOバッファ170に入力されるため、データ抽出部184はまず、それを読み出して出力する。続いてデータ抽出部184は、1/4デモザイク後画像の1行目の画素列L(1/4)1のうち未出力であった後半部分(画像平面における右半分)の画素データをFIFOバッファ172から読み出し、出力する。
次の時間ステップS4では、1/1デモザイク後画像の4行目の画素列L(1/1)4の画素データおよび1/4デモザイク後画像の2行目の画素列L(1/4)2、1/16デモザイク後画像の1行目の画素列L(1/16)1の画素データが図8に示すようなタイミングで、FIFOバッファ170、172、174に並列に入力される。データ抽出部184はまず、1/1デモザイク後画像の4行目の画素列L(1/1)4の画素データをFIFOバッファ170から読み出し、出力する。
1/1デモザイク後画像の4行目の画素列L(1/1)4の画素データを全て出力したら、データ抽出部184は続けて、1/4デモザイク後画像の2行目の画素列L(1/4)2の前半部分をFIFOバッファ172から読み出し、出力する。次に1/16デモザイク後画像の1行目の画素列L(1/16)1をFIFOバッファ174から読み出し、出力する。このとき次以降の3つの時間ステップS5、S6、S7で出力する分を考慮し、1/16デモザイク後画像の1行目の画素列L(1/16)1を4分の1分割し、その最初の部分の画素データのみ出力する。残りはFIFOバッファ174に保存しておく。
次の時間ステップS5では、1/1デモザイク後画像の5行目の画素列L(1/1)5の画素データのみがFIFOバッファ170に入力されるため、データ抽出部184はまず、それを読み出して出力する。続いてデータ抽出部184は、1/4デモザイク後画像の2行目の画素列L(1/4)2のうち未出力であった後半部分の画素データをFIFOバッファ172から読み出し、出力する。さらに1/16デモザイク後画像の1行目の画素列L(1/16)1の未出力のデータのうち4分の1分割した2番目の部分の画素データを出力する。
同様に、次の時間ステップ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分割した最後の部分の画素データを出力する。
すなわち1/4デモザイク後画像の1行目の画素列L(1/4)1は、時間ステップS2およびS3の2つの時間ステップに半分ずつ出力される。また1/16デモザイク後画像の1行目の画素列L(1/16)1は、時間ステップS4、S5、S6、S7の4つの時間ステップに4分の1ずつ出力される。1/1デモザイク後画像の横方向の画素数がWであるとき、1/4デモザイク後画像および1/16デモザイク後画像の1行分の画素数はそれぞれW/2、W/4であるため、同図に示すように、一時間ステップあたり(W/2)/2個、(W/4)/4個の画素のデータがそれぞれ出力される。
以上の出力処理を画像の最下段の行まで繰り返す。このとき1/1デモザイク後画像の最下段の行の画素データを出力した時点では、1/4デモザイク後画像の最下段の行の後半部分の画素データ、および1/16デモザイク後画像の最下段の行の残り4分の3の画素データが未出力となっている。データ抽出部184は、未出力のデータを出力し終わるまで画素データの出力を続行する。具体的には、1/1デモザイク後画像の全行の出力を完了した直後の時間ステップS(H+1)において、1/4デモザイク後画像の最下段の行の後半部分の画素データ、および1/16デモザイク後画像の最下段の行を4分の1分割した2番目の部分の画素データを出力する。
このとき、それまで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番目の部分の画素データをそれぞれ出力する。
このように出力すると、はじめの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となる。
上述のようにデータ抽出部184が出力するデータは画素データの羅列であるが、各時間ステップに出力する画素データを、図示するように縦方向に並べた2次元データ322では、複数種類の画像のデータがそれぞれ矩形領域を構成することになる。各時間ステップにおいて当該2次元データ322が1行ずつ送信され、その後の処理は図6で示したフレーム画像200と同等であることに鑑みると、データ抽出部184は実質的に2次元データ322のような画像を生成していることになる。以後、この仮想的な2次元データを「合成画像」と呼ぶ。合成画像322における各種画像のデータの局所性を利用すれば、ホスト端末20において画像の種類ごとにデータを分離することが容易になる。
図9で説明したように、FIFOバッファに格納された画素列を、画像の種類に応じた規則でつなげて可能な限り即時出力することにより、バッファの構成を最小限にできると同時に、撮影からデータ送信までのレイテンシを最小限に抑えることができる。ただし同図の例では、1/1デモザイク後画像、1/4デモザイク後画像、1/16デモザイク後画像の領域全体を合成画像に含めることを前提にしていた。
一方、本実施の形態では、ホスト端末20から要求された領域のみを送信できるようにするとともに、そのようにしてできた合成画像内の空き領域に、n2/1デモザイク後画像のデータを組み込む。図10はデータ抽出部184が、フレームメモリ150に格納したデータと、FIFOバッファに格納したデータを混在させて合成画像を生成する様子を模式的に示している。なお以後の説明では図の煩雑化を避けるため、n2/1デモザイク後画像を4/1デモザイク後画像とし、当該画像と、1/1デモザイク後画像、1/4デモザイク後画像を出力対象とするが、本実施の形態をそれに限る趣旨ではない。
まず同図上段は撮影画像340を、基準である1/1デモザイク後画像のサイズで表している。カメラ22からは、当該基準の4倍のサイズを有する4/1デモザイク後画像がフレームメモリ150に、基準サイズの1/1デモザイク後画像がFIFOバッファ170に、基準の1/4倍のサイズを有する1/4デモザイク後画像がFIFOバッファ172に、画素値が生成された順に入力される。
ここでホスト端末20から、被写体である人の顔の領域342の4/1デモザイク後画像346、その周囲を含めた領域344の1/1デモザイク後画像348、撮影画像340全体の1/4デモザイク後画像350が要求されたとする。この場合、1/1デモザイク後画像のうち要求された領域344以外の領域については出力する必要がないため、入力データを破棄する。そのうえで、図9で示したのと同様に、各時間ステップにおいて1/1デモザイク後画像の領域344の1行分と1/4デモザイク後画像の1/2行分のデータをつなげて出力する。
その結果、各時間ステップには、必要なデータを出力する時間以外に余剰時間が生じる。そこで当該時間を利用して、4/1デモザイク後画像のデータを出力する。具体的には合成画像352において、1/1デモザイク後画像の領域を1/4デモザイク後画像の領域に接するように配置したうえ、その左側と下側を、4/1デモザイク後画像346の領域とする。出力されるストリームとして捉えると、出力すべき1/1デモザイク後画像のデータが存在する時間ステップでは、4/1デモザイク後画像346のデータ、1/1デモザイク後画像348のデータ、1/4デモザイク後画像350のデータ、をこの順で循環してつなげ出力する。出力すべき1/1デモザイク後画像が存在しない時間ステップでは、4/1デモザイク後画像346のデータと1/4デモザイク後画像350のデータをつなげて出力する。
つまり1/1デモザイク後画像および1/4デモザイク後画像は原則として、生成された時間ステップまたは直後の時間ステップでほぼ同時期に、各行のデータが出力されるのに対し、4/1デモザイク後画像のデータ出力にはそのような拘束条件を設けない。これによりカメラの撮影周期を無駄なく利用してデータを出力できるとともに、各時間ステップにおける出力データサイズを最適化できる。
なお撮影画像のうち、4/1デモザイク後画像として要求されている領域342より上の行のデータが生成されている段階では、領域342の4/1デモザイク後画像346のデータは未生成であるため、出力すべきデータがない。したがって同図の合成画像352において、当該期間aに対応する領域は黒塗りの無効領域としている。ところが連続した画像フレームで考えると、当該期間を、前の画像フレームの4/1デモザイク後画像のデータ出力に利用することができる。
つまり撮影画像のうち最終行の生成が完了し、次の画像フレームの生成が開始されても、4/1デモザイク後画像を所定期間、出力し続ける。この期間bを、データが未生成で4/1デモザイク後画像のデータを出力できない期間aと等しくすることにより、連続したフレームが撮影されている全期間において、無駄なくデータを出力し続けることができる。
このとき一フレームあたりに送信できる4/1デモザイク後画像のデータサイズは、合成画像352において当該画像が占めるL字型の領域の面積に相当する。合成画像352のサイズは、カメラの撮影レートと、ホスト端末20との通信において許容される伝送帯域幅に応じて決定する。その結果に基づき、合成画像における各画像の領域の面積を適宜分配することにより、ホスト端末20が要求可能な、各画像の領域のサイズを決定する。
ここで表示装置16を、撮像装置12を装着したヘッドマウントディスプレイとし、それを装着したユーザがディスプレイを透かして実世界を見ているように撮影画像を即時表示する態様を考える。このような状況を違和感なく実現するためには、ユーザのいかなる動きに対しても、撮影画像をそれに追随するように表示させることが求められる。そのためには、画像の撮影およびその出力を可能な限り高フレームレート化することが望ましい。
しかしながら、例えば撮像装置12や表示装置16のフレームレートを2倍にできても、定性的には撮像装置12から表示装置16までの伝送帯域を2倍にできなければ、表示までに遅延やコマ落ちが生じることになる。これまで述べたように本実施の形態では、1つのフレームを表す複数種類の画像を合成画像352内で組み合わせて送信するため、当該組み合わせを変更したり、各種類の画像の送信態様を独立に調整したりすることができる。この特性を利用し、上述のように低遅延性を維持しながら、さらに伝送時の効率性を追求することにより、必要な伝送帯域を大きく拡張せずとも実際の視野の変化と同等に変化する画像を表示できるようにする。
具体的には、時間的な拘束条件の緩い最高解像度の画像データについては、撮像フレームレートで取得される全フレームのうち所定数N(Nは自然数)おきのフレームのみを伝送対象とする。そして他の種類の画像データが1行あるいはそれを分割してなる画素列ごとに、生成された順に出力されるのに対し、最高解像度の画像データはそれらのN+1フレーム分で1フレーム分が出力されるように接続して出力する。これにより、最高解像度の画像データに割り当てるべき伝送帯域を小さくできる。
すなわち合成画像352で考えると、4/1デモザイク後画像のデータが占める領域の面積を1/Nにすることができ、撮影画像1フレーム当たりの合成画像352の面積、ひいては必要な総伝送帯域を抑えることができる。このとき最高解像度の画像の出力順として次の2通りが考えられる。
(1)要求された領域を左上からラスタ順に出力していく
(2)要求された領域をN行おきに出力するのを、行をずらしながらN+1回繰り返す
上記(1)は、フレームレートが他の種類の画像の1/(N+1)倍になるが、画像伝送や表示の同時性を優先する場合に有効である。(2)はN行おきではあるがフレームレートが他の種類の画像と同じになるため、低遅延性を優先する場合に有効である。両者はなすべき情報処理や表示すべき画像の内容に応じて使い分けてもよいし、状況に応じて途中で切り替えてもよい。このようにしても、少なくとも画像全体を表す1/4デモザイク後画像のデータは高フレームレートで送信され続けるため、上述のようなヘッドマウントディスプレイにおける表示形態では特に、視野変化に対する表示の即時性が損なわれない。
また視野のうち相手の顔など重要な箇所については、低遅延で伝送される1/1デモザイク後画像や、上記のように特有の形態で伝送される4/1デモザイク後画像で詳細度を保障できるため、顔認識や視覚追跡などの画像処理を高精度に行ったり、注視に耐えうる高品質な画像を表示させたりすることも可能となる。なお最高解像度の画像データのうち送信対象のフレームの抽出処理は、画像送出部32のフレームメモリ150へのデータ格納時に、前段に設けたスイッチ等を制御することにより実施してもよいし、データ抽出部184が行ってもよい。
図11は、4/1デモザイク後画像をN=1フレームおきに出力する態様において、撮像装置12から出力される複数フレーム分のデータの構成を模式的に示している。縦軸は時間経過を示し、各時間ステップで出力される画素列の構成を横方向に示している。時刻t0、t4、t6、t7、t9はカメラの垂直同期のタイミングに対応し、その間に連続した画像フレームF0、F1、F2のデータが生成されるとする。
このような時間推移に対し、1/1デモザイク後画像のうち要求された領域のデータ、および1/4デモザイク後画像の全体領域のデータは、図10で説明したのと同様に、生成されたのとほぼ同じタイミングで出力される。すなわち、画像フレームF0、F1、F2のデータが、それぞれ時刻t0〜t4、t4〜t7、t7〜t9の時間範囲内に、行ごと、あるいは1/2行ごとに出力される。一方、4/1デモザイク後画像については、例えば画像フレームF0およびF1に対応する期間に、画像フレームF0の要求された領域のデータを出力する。
すなわち太線枠で囲まれた領域600に対応するタイミングおよび画素数で、画像フレームF0の要求された領域の画像602、あるいは画像604a、604bのデータを出力する。ここで画像602は上記(1)のとおり、領域600にわたりラスタ順に出力されることを示している。画像604a、604bは上記(2)のとおり、領域600の前半に奇数行(画像604a)、後半に偶数行(画像604b)が出力されることを示している。後続の画像フレームF2およびF3(図示せず)に対応する期間には、画像フレームF2の要求された領域のデータを同様に出力する。
詳細にみると、撮影開始直後の画像フレームF0の場合、時刻t0からt1の期間は出力すべき4/1デモザイク後画像、1/1デモザイク後画像が存在しないため、図10で示した通り無効データと1/4デモザイク後画像を出力する。時刻t1で、データ生成が1/1デモザイク後画像の要求された領域に到達したら、1/1モザイク後画像の出力を開始する。その直後にデータ生成が4/1デモザイク後画像の要求された領域に到達するため、4/1デモザイク後画像の出力も開始する。1/1デモザイク後画像の要求された領域のデータ出力が完了する時刻t3までは、4/1デモザイク後画像、1/1デモザイク後画像、1/4デモザイク後画像を循環して出力する。
なお4/1デモザイク後画像の出力を開始できる時刻は、厳密には1/1デモザイク後画像の要求される領域との位置関係によるが、同図では時刻t1とほぼ同じとしている。時刻t3以後は、4/1デモザイク後画像と1/4デモザイク後画像とをつなげて出力する。時刻t4で1/4デモザイク後画像の最終行の出力が完了した後も、4/1デモザイク後画像については出力を継続する。一方、時刻t4で次の画像フレームF1のデータ生成が開始されるため、フレームF1の1/4デモザイク後画像の出力を開始する。結果として、画像フレームF0の4/1デモザイク後画像と、画像フレームF1の1/4デモザイク後画像のデータをつなげて出力することになる。
続いて、時刻t5で、データ生成が画像フレームF1の1/1デモザイク後画像の要求された領域に到達したら、画像フレームF0の4/1デモザイク後画像、画像フレームF1の1/1デモザイク後画像、画像フレームF1の1/4デモザイク後画像を循環して出力する。1/1デモザイク後画像の要求された領域のデータ出力が時刻t6で完了したら、再び画像フレームF0の4/1デモザイク後画像と、画像フレームF1の1/4デモザイク後画像のデータをつなげて出力する。
時刻t7で次の画像フレームF2のデータ生成が開始されるため、画像フレームF0の4/1デモザイク後画像と、画像フレームF2の1/4デモザイク後画像のデータをつなげて出力する。時刻t0からt1の時間に無効データが出力される画素数(合成画像における面積)と、時刻t7からt8の時間に出力される4/1デモザイク後画像の画素数が等しければ、画像フレームF2に対する4/1デモザイク後画像の出力開始時刻、同図では1/1デモザイク後画像の出力開始時刻t8とほぼ等しい時刻に、画像フレームF0の4/1デモザイク後画像のデータ出力が終了することになる。
したがって、時刻t8以後は画像フレームF0の時刻t1以後と同様の構成で各画像のデータを出力すればよい。このような処理を繰り返すことにより、各時刻で送信されるデータの総量を常に一定としつつ、最高解像度の画像のみ、継続して1フレームおきにデータを出力することができる。ここで4/1デモザイク後画像に許容される出力画素数は、同図の太線で囲まれた領域600の面積によって定まる。
したがって、伝送帯域の許容値、画像全体のサイズ、1/1デモザイク後画像の要求される領域のサイズなどに応じて領域600の面積を導出し、それに応じて4/1デモザイク後画像の要求する領域のサイズを決定すれば、伝送帯域を無駄なく使用して最大限のデータを送信できる。なお図示した例はN=1フレームおきに4/1デモザイク後画像のデータを出力する場合であったが、Nの値はこれに限らない。定性的には、Nを増やすほど伝送帯域に対するフレームレートの割合を増加させることができる。
図12は、撮像装置12から送信された画像データに対するホスト端末20における処理を説明するための図である。ホスト端末20の情報処理部38は、自らが要求した各画像の領域のサイズや位置に基づき、送信された合成画像のデータストリームを個別の画像に切り分け、メインメモリ42の連続したアドレスに展開する。図11で示したように、撮影画像1フレームに対応する1単位の合成画像605において、複数種類の画像のデータがそれぞれ個別の領域606、608、610に配置されている。
そのうち4/1デモザイク後画像のデータの領域606は、ホスト端末20自身が要求した1/1デモザイク後画像の領域のサイズと、上下方向の位置によって定まっている。したがって領域606をそれらの情報に基づき特定し、当該領域内の画素値をラスタ順に読み出す。そして4/1デモザイク後画像について要求した、撮影画像上での領域の横方向の長さで画素列を分割し縦方向に並べることにより、4/1デモザイク後画像360を復元できる。
ただし上述のとおり、撮影画像の各フレームに対応する1単位の合成画像605に含まれる4/1デモザイク後画像のデータは、1フレーム分の一部、具体的には1/(N+1)である。図示する例ではN=1とし、4/1デモザイク後画像360のうち奇数行または偶数行のみが展開されている様子を示している。送信態様によっては4/1デモザイク後画像のうち上半分または下半分となる。1/1デモザイク後画像、1/4デモザイク後画像については、合成画像605のうち対応する領域608、610からラスタ順に画素を読み出し、本来のサイズに並べていくことにより、送信されたデータを画像362、364として復元できる。
なお合成画像605は実際にはストリームとして送信されるため、情報処理部38はデータの到着順に、複数種類の画像のデータを並行して切り分けていく。あるいは情報処理部38は、メインメモリ42に合成画像605をそのまま展開し、画像処理等に使用する段階で区別するようにしてもよい。情報処理部38および画像処理部40は、分離した画像からさらに表示に用いる領域を切り出したり、表示装置16の表示方式に従って画像に加工を施したりする。あるいはゲームの進捗に合わせて画像上に3Dオブジェクトを描画したり、顔認識、ジェスチャ認識などの画像解析を行い、それに対応する情報処理を行ったりしてもよい。このとき、4/1デモザイク後画像に対する処理を必要とする場合は、他の種類の画像より低いレートで行うことになる。
次に、同様の手法をホスト端末20から表示装置16への画像データの伝送に適用した場合について説明する。図13は、この場合のホスト端末20と表示装置16の構成を詳細に示している。なおホスト端末20のうち、図3で示したのと同様の機能を有するブロックには同じ符号を付している。
ホスト端末20は、ユーザからの指示入力を取得する指示入力部36、ホスト端末20および表示装置16を統括的に制御し、目的に応じた情報処理を行う情報処理部38、表示に用いる画像を生成する画像処理部40、送信用の画像データを生成する画像抽出部400、撮像装置12からの画像データを格納するメインメモリ42、および、撮像装置12および表示装置16と画像データや必要な情報の送受信を行うインターフェースである通信部44を含む。
指示入力部36、情報処理部38、画像処理部40、メインメモリ42、通信部44はそれぞれ、図3で説明した機能を有する。ただし画像処理部40が生成する画像は、撮像装置12から送信された撮影画像を利用したものでもよいし、3Dグラフィックスなどにより新たに生成したものでもよい。撮像装置12から撮影画像のデータを複数の解像度で取得する場合は、それらに何らかの処理を施すのみでもよい。撮像装置12から単一の解像度の画像のみが送信される環境であったり、自らが3Dグラフィックスを描画したりする場合は、フレームごとに複数種類の画像を生成する。この処理は、カメラ22が行う縮小処理と同様でもよい。
画像抽出部400は、表示装置16に表示すべき複数種類の画像で構成される合成画像のストリームを生成する。この合成画像は図10を参照して説明したのと同様に、複数種類の画像データが個別の領域に配置された画像であり、行ごとに順次ストリームとして生成、出力される仮想的な画像である。また図11を参照して説明したように、4/1デモザイク後画像など最高解像度の画像については、動画として表示すべきフレームのうち、所定数N(Nは自然数)おきのフレームのみを伝送対象とする。そしてN+1フレーム分の合成画像にわたって1フレーム分のデータが含まれるようにする。
このときの最高解像度の画像の出力順も、上述の(1)または(2)のどちらか一方、あるいは両者を状況に応じて切り替える。通信部44は、そのようにしてなる合成画像のストリームを表示装置16に送信する。なおホスト端末20における画像処理の内容によっては、出力準備が完了するタイミングが撮像装置12と異なる場合があるため、それに応じて合成画像の構成を変化させてもよい。
表示装置16は、ホスト端末20から画像データや必要な情報の送受信を行うインターフェースである通信部402、ホスト端末20から送信された画像データを画像の種類ごとに分離するデータ分離部404、分離した画像データの一部、あるいはその拡大画像のデータを行単位で保持するFIFOバッファ408、412、416、それぞれのFIFOバッファに格納されたデータを補間して拡大画像のデータを出力する拡大部410、414、418を含む。表示装置16はさらに、データ分離部404が分離した画像データの一部をフレーム単位で保持するフレームメモリ406、各種類の画像を用いて表示画像を生成する表示画像生成部420、生成された表示画像を表示する表示部422、表示画像のうちユーザが注視している箇所を検出する視線検出部424を含む。
通信部402は、ホスト端末20から送信された画像データをストリーム形式で受信する。また視線検出部424が検出した、ユーザが注視している箇所に係る情報をホスト端末20に送信する。データ分離部404は、送信された画像データを構成する複数種類の画像を分離し、FIFOバッファ408、412、およびフレームメモリ406のいずれかにそのデータを格納する。
以後、図11で例示したように4/1デモザイク後画像、1/1デモザイク後画像、1/4デモザイク後画像、の3種類の画像が合成画像に含まれる場合を想定して説明するが、本実施の形態をそれに限る趣旨ではない。この場合、4/1デモザイク後画像をフレームメモリ406に、1/1デモザイク後画像をFIFOバッファ408に、1/4デモザイク後画像をFIFOバッファ412に格納する。そして1/1デモザイク後画像は4倍、1/4デモザイク後画像は16倍に拡大することにより、それらに表れる像のサイズを4/1デモザイク後画像の像のサイズに合わせる。
FIFOバッファ408、412はそれぞれ、1/1デモザイク後画像、1/4デモザイク後画像の横一列分の画素値をそれぞれ保持する複数(図では2つ)のラインバッファで構成される。つまり1/1デモザイク後画像の横一列の画素数をWとしたとき、FIFOバッファ408は1つのラインバッファにつきW個分、FIFOバッファ412は1つのラインバッファにつきW/2個分の画素値を保持する。
拡大部410、414は、FIFOバッファ408、412に格納されたデータを用いて画素を補間し縦横双方向に2倍ずつ拡大する。図14は拡大部410、414による画像の拡大処理の一例を説明するための図である。拡大部410、414の右側はFIFOバッファ408、412に格納された画素列426の一部を示している。画像を2×2倍に拡大する場合、1つの画素当たり、横方向、縦方向、斜め方向に1つずつ画素を追加する必要がある。
横方向、縦方向に追加する画素の値は、各方向における隣接する2つ画素値を平均した値とする。斜め方向に追加する画素の値は、横方向、縦方向、斜め方向に隣接する4つの画素値の平均値とする。図14において画素列426のうち「1」で示された画素を対象とした場合、図示するように、当該「1」の右に隣接する「2」の画素との間に、それらの画素値の平均値を画素値とする画素「A」を追加する。また「1」の下に隣接する「3」の画素との間に、それらの画素値の平均値を画素値とする画素「B」を追加する。さらに「1」の右下に隣接する「4」の画素との間に、「2」、「3」、「4」の画素値の平均値を画素値とする画素「C」を追加する。
これを画素列426の各画素について繰り返すことにより、4倍に拡大された画像の画素列428が生成される。この手法では2行分の画素列からその間の1行分の画素列が生成されることから、FIFOバッファ408、412はそれぞれ2つのラインバッファで構成する。ただし画像の拡大手法についてはその他の一般的な技術のいずれを採用してもよい。FIFOバッファ408、412を構成するラインバッファの数は、採用する拡大手法に応じて決定する。
図13に戻り、FIFOバッファ416は、拡大部414が拡大した1/4デモザイク後画像の横一列分の画素値を保持する複数(図では2つ)のラインバッファで構成される。つまりFIFOバッファ416は1つのラインバッファにつきW個分の画素値を保持する。拡大部418は、FIFOバッファ416に格納されたデータを用いて画素を補間し、縦方向、横方向に2倍ずつ拡大する。拡大部418による拡大手法は図14を参照して上述したのと同様でよい。この場合、FIFOバッファ416は2つのラインバッファで構成する。
表示画像生成部420は、フレームメモリ406に格納した4/1デモザイク後画像と、拡大部410から出力された、4倍に拡大された1/1デモザイク後画像、拡大部418から出力された、16倍に拡大された1/4デモザイク後画像を合成して、一つの表示画像を生成する。各画像が表す領域の位置およびサイズに基づき元の画像を再構成するように合成することにより、画像中の領域によって詳細度の異なる表示画像を生成できる。
表示画像生成部420は表示画像の生成処理を行ごとに行い、表示部422に即時出力する。すなわち拡大部410、418から出力される行ごとのデータを取得すると、即時にその行の生成処理を行い表示部422における走査と同期するように出力する。これにより、通信部402による画像データの取得から、表示部422における表示までを低遅延に行える。
ここで上述の(1)のように、表示画像のN+1フレームに対し4/1デモザイク後画像の1フレーム分のデータをラスタ順に取得する場合、表示画像生成部420は、4/1デモザイク後画像を用いて表すべき領域を、表示画像のNフレームおきに更新する。例えばN=1とした場合、表示画像のフレームF0、F1、F2、F3、・・・のうち、F1、F3、・・・を生成する際に、フレームF0、F2、・・・の対応する行のデータをフレームメモリ406から読み出し、対応する領域に合成する。
一方、上述の(2)のように、表示画像の各フレームに対し、4/1デモザイク後画像のデータをN行おきに取得する場合、表示画像生成部420は、4/1デモザイク後画像を用いて表すべき領域のうち対象行を、表示画像の毎フレームで更新する。例えばN=1とした場合、表示画像のフレームF0、F1、F2、F3、・・・を生成する際に、フレームF0の奇数行、フレームF0の偶数行、フレームF2の奇数行、フレームF2の偶数行、・・・をフレームメモリ406から読み出し、対応する領域に合成する。(1)と(2)のいずれの態様とするかは、受信したストリームの構造から判断してもよいし、そのいずれかを指定する識別情報を、ホスト端末20がストリームに含めてもよい。
視線検出部424は、そのようにして表示された画像のうち、ユーザがどの箇所を注視しているかを検出する。検出結果は通信部402を介してホスト端末20に通知する。これにより、ホスト端末20は、ユーザが注視している箇所を中心に最も解像度を高くすべき領域を決定し、さらにその周囲を2番目に解像度を高くすべき領域として決定できる。例えば前者の領域は4/1デモザイク後画像、後者の領域は1/1デモザイク後画像、全体領域として1/4デモザイク後画像を撮像装置12に要求すれば、それらを用いて、ユーザが注視している箇所に近いほど詳細度の高い画像を表示できる。
ただし詳細度を高くする領域をこれに限る趣旨ではなく、被写体であるユーザの顔など、画像中で重要な領域を別の手段で特定してもよい。この場合、視線検出部424の機能を省略し、ホスト端末20が画像解析により当該領域を特定してもよい。また上述のように、ホスト端末20自身が複数解像度の画像データを生成してもよい。なおホスト端末20は、ネットワーク18を介して別の情報処理システムのホスト端末に同様のデータを送信してもよい。
図15は表示装置16において、ホスト端末20から送信された画像データを用いて表示画像を生成する様子を模式的に示している。まず同図上段はホスト端末20が生成する合成画像430である。当該合成画像430は基本的には撮像装置12が生成する合成画像と同様の構成を有し、4/1デモザイク後画像の領域432、1/1デモザイク後画像の領域434、1/4デモザイク後画像の領域436が個別に配置されている。
当該合成画像430は、ホスト端末20から表示装置16へラスタ順に送信される。データ分離部404は、そのうち4/1デモザイク後画像438のデータをフレームメモリ406に、1/1デモザイク後画像440および1/4デモザイク後画像442のデータを、それぞれFIFOバッファ408およびFIFOバッファ412に格納する。ただし図12で説明したのと同様、4/1デモザイク後画像のデータは、他の解像度の画像のN+1フレーム分のデータ対して1フレーム分のデータが送信されるため、各表示フレームに対応する1単位の合成画像430に含まれるのは1/(N+1)フレーム分となる。
図示する例ではN=1とし、4/1デモザイク後画像のうち奇数行または偶数行のみがフレームメモリ406に格納されている様子を示している。送信態様によっては4/1デモザイク後画像のうち上半分または下半分となる。そして1/1デモザイク後画像は拡大部410により4倍に、1/4デモザイク後画像は拡大部414、418により16倍に拡大され、表示画像生成部420がそれらを元の位置で合成することにより表示画像444が生成される。なお同図においては表示画像444を縮小して示している。
結果として表示画像444は、4/1デモザイク後画像のデータを用いた領域446、1/1デモザイク後画像のデータを用いた領域448、1/4デモザイク後画像のデータを用いた領域450により構成される、顔など重要部分に近づくほど詳細度が高い画像となる。ただし4/1デモザイク後画像のデータを用いた領域446は、それ以外の領域448、450の1/(N+1)倍の更新レートで、あるいは同じレートでN行おきに、更新される。
なお同図の表示画像444では、4/1デモザイク後画像のデータを用いた領域446、および1/1デモザイク後画像のデータを用いた領域448が、合成前の各画像438、440をそのまま反映した矩形となっているが、アルファブレンドにより、より自然に見えるようにしてもよい。例えばそれらの画像の領域に内接し内部を透明、外部を不透明、境界を半透明とする円形または楕円形のアルファマスクを準備する。合成時に当該マスクを用いることにより、各領域が円形または楕円形となるとともに、その境界において徐々に詳細度が変化するような自然な画像を表示できる。
このような画像表示手順において、表示画像444が表示部422においてラスタ順に表示されることを考慮すると、1/1デモザイク後画像、1/4デモザイク後画像の対応する行が同時期に入力されることが望ましい。また全ての期間において均一なデータサイズで画像データが送信されることが望ましい。結果として撮像装置12において生成した合成画像と同じ配置で合成画像を生成し送信することが最も効率的である。これによりホスト端末20から送信されたストリームの入力順に処理を施し表示させることが可能となり、ホスト端末20からの送信に対し低遅延での表示が可能となる。
一方、4/1デモザイク後画像を更新するタイミングにおいて、極力同じフレームの表示にデータ出力を間に合わせるためには、表示対象の行のデータがフレームメモリ406に格納済みである必要がある。したがってホスト端末20から送信する合成画像430は図示するように、新たなフレームを表す4/1デモザイク後画像のデータの領域432が、同じフレームの1/1デモザイク後画像の領域434の上側に位置するようにする。
すなわち、あるフレームの1/1デモザイク後画像や1/4デモザイク後画像の送信を開始するより先に、同じフレームの4/1デモザイク後画像のデータの送信を開始する。なおこの場合も、表示画像N+1フレーム分の合成画像内で、1フレーム分のデータの領域が完結するように、4/1デモザイク後画像のデータを用いて表す領域446のサイズを決定すれば、大局的には常時、対応するフレームの画像を合成できることになる。
一方、場合によっては、ホスト端末20から送信する合成画像を、撮像装置12からホスト端末20への合成画像と同様の構成としてもよい。すなわち4/1デモザイク後画像の送信開始を、1/1デモザイク後画像の出力開始と同時期とすることで、後追いで送信するようにしてもよい。上述のヘッドマウントディスプレイのように、撮像装置12による撮影画像を即時表示させたい場合、ホスト端末20は撮像装置12から送信された順で各種データを送信することにより、1/1デモザイク後画像、1/4デモザイク後画像の表示速度を優先できる。この場合、4/1デモザイク後画像は1フレーム分、表示が遅れる可能性があるが、上述のように視野全体の動きが十分追随していれば違和感を与える可能性は低い。
図16は、撮像装置12にステレオカメラを設けた場合に出力される画像データの構成を説明するための図である。この場合、2つのカメラはそれぞれ、図3、4で示した構造を有し、それぞれが、生成した画像データを画像送出部32に送信する。画像送出部32には、図5で示したフレームメモリ150、FIFOバッファ170、172、174、176を、各カメラに対応させて2つずつ設ける。
同図上段は撮影画像370a、370bを、基準である1/1デモザイク後画像のサイズで表している。データ抽出部184によるデータ出力順に係るポリシーは基本的に単眼カメラの場合と同様であるが、1/1デモザイク後画像の出力時に、左右の画像データの1行分をつなげて出力する。また1/4デモザイク後画像の出力時に、左右の画像データの1/2行分をつなげて出力する。4/1デモザイク後画像については、一方の画像の要求された領域のデータ出力が完了したら、それに続けて他方の画像のデータを出力する。
結果として、図10で示したのと同様の領域が要求された場合、合成画像372は図示するように、左右の画像の1/1デモザイク後画像のデータの領域374a、374b、左右の画像の1/4デモザイク後画像のデータの領域376a、376b、および4/1デモザイク後画像のデータの領域378で構成される。4/1デモザイク後画像のデータの領域378にも、左右の画像のデータが含まれている。また他の解像度の画像のN+1フレーム分のデータに対し、4/1デモザイク後画像の1フレーム分のデータを送信することにより、1単位の合成画像372には、そのうちの1/(N+1)のデータが含まれている。
表示装置16をヘッドマウントディスプレイとし、表示画面を2分割してなる左右の領域に、ステレオカメラが撮影した画像に基づく、視差のある左右の画像を表示する場合に、ホスト端末20から表示装置16へ送信する画像データも同様の構成でよい。この場合、図13で示した表示装置16の機能ブロックのうち、フレームメモリ406、FIFOバッファ408、412、416、拡大部410、414、418を、左右の画像のそれぞれに対して設ける。また表示画像生成部420は、表示画面の左側の画像、右側の画像、の順で出力する処理を行ごとに行う。
そしてホスト端末20から合成画像372がストリーム形式で送信されると、表示装置16のデータ分離部404は、送信された順に、左右の画像のそれぞれにつき3種類の画像、すなわち合計6種類の画像のデータに分離する。そして1/1デモザイク後画像および1/4デモザイク後画像を、それぞれ4倍および16倍に拡大し、4/1デモザイク後画像と合成する処理を左右の画像ごとに行う。そして処理が完了した行ごとに、左右の画像データを横方向につなげて出力することにより、表示部422には、画像370a、370bを左右に接続した表示画像が表示される。
この場合も図15を参照して説明したのと同様、全体を表す1/4デモザイク後画像の拡大後のデータをラスタ順に出力していく過程において、1/1デモザイク後画像の領域に到達したら当該画像の拡大後のデータを出力していく。4/1デモザイク後画像の場合は、更新タイミングが到来した時点で、当該データが表す領域の行に到達したらデータを出力する。これにより、少なくとも全体領域についてはホスト端末20からのデータ送信に対し低遅延で画像を表示させることができる。また表示装置16内で1/1デモザイク後画像、1/4デモザイク後画像の全体領域を展開する必要がないため、少ないラインバッファですむことになる。
なお図示は省略しているが、ホスト端末20においてディスプレイの表示方式に対応するように画像処理を施してもよい。例えばヘッドマウントディスプレイの場合、装着したときにユーザの目前に位置するようにレンズを設けることにより、視野を広げつつ表示画像を立体視させ没入感を演出することが考えられる。この場合、ホスト端末20は、レンズを介したときに元の画像が適切に見えるように表示画像に歪み補正を施しておく。また、図15を参照して説明したように、4/1デモザイク後画像のデータ送信の開始を、同じフレームの他の解像度の画像より先としてもよい。
いずれにしろこのように左右の視差画像のデータを送信する態様においては、単眼の画像の場合と比較し送信すべきデータ量が増大する。したがってこれまで述べたように最高解像度の画像のデータ送信をNフレームおきとすることにより、単位時間あたりのデータ送信量、すなわち送信する合成画像における当該データの占める面積を低く抑えることが特に有効となる。この場合も、適切な画素数単位で他の種類の画像データと循環して接続し、順次送信していくことにより、データ送信の即時性を保ちつつ伝送帯域を最大限に活用できる。
図17は視線検出部424の構成例を示している。同図下段はヘッドマウントディスプレイ470とそれを装着したユーザの頭部472を上から見た様子を模式的に表している。ヘッドマウントディスプレイ470には上段で示したような表示画像476が表示され、ユーザが左右の目474a、474bでそれを見ている。ここで、視線検出部424として、赤外線LED478a、478b、赤外線カメラまたはPSD(Position Sensitive Detector)センサ480a、480b、および画像解析装置482を設ける。
赤外線LED478a、478bはそれぞれ、ユーザの左右の目474a、474bに赤外線を照射する。赤外線カメラまたはPSDセンサ480a、480bはそれぞれ、ユーザの左右の目474a、474bを撮影し、そのデータを画像解析装置482に供給する。画像解析装置482は、左右の目の撮影画像から、赤外線の角膜における反射位置と瞳孔の位置とを特定し、その位置関係からユーザの視線を特定する。この手法は角膜反射法として視線検出技術の分野で実用化されている。なお視線を検出する手法はこれに限らず、例えば可視光カメラで左右の目を撮影し、そのうち目頭と虹彩の位置関係から視線を特定する技術など一般的な手法のいずれを採用してもよい。
画像解析装置482は、そのように検出した視線と、表示画像476との交点484a、484bの位置座標を検出し、その情報をホスト端末20へ送信する。ホスト端末20の情報処理部38は、撮影画像のうち当該位置座標を含む所定範囲の領域を4/1デモザイク後画像で表す領域、その周囲の所定範囲の領域を1/1デモザイク後画像で表す領域としてそれぞれ決定する。そして決定に従ったデータ送信を撮像装置12へ要求するか、ホスト端末20の画像抽出部400自身が切り出し処理を行うか、のいずれかにより、表示装置16へ画像のデータを送信する。この処理を継続して行うことにより、注視点の動きに対応して詳細度の高い箇所が動く表示画像を低遅延で表示できる。
ここでホスト端末20の情報処理部38は、画像解析装置482が取得した視線の動きに基づき、表示画像に用いる画像データの種類の組み合わせや送信態様を切り替えてもよい。例えば表示画像全体が動いている状況においては、それに含まれる個々の物体の詳細より画角自体の動きが重要となる。一方、表示画像の一箇所を見つめている状況においては、当該箇所の詳細度が重要となる。ユーザの視野に対応するように画角を動かしながら画像を表示させるヘッドマウントディスプレイでは、これらの状況が頻繁に入れ替わることが考えられる。
そこで情報処理部38は、ユーザが対象物を注視しているか否かを視線の動きに基づき判定する。そして注視していると判定したときは上述のとおり、その注視点を中心とする所定領域について、4/1デモザイク後画像など最高解像度のデータで表すように送信対象のデータを決定する。注視していないと判定したときは、最高解像度のデータを送信対象から除外する。あるいは表示画像を生成する際に、注視している場合に限り最高解像度の画像を合成するように表示装置16に要求する。なおそれらの態様を組み合わせてもよい。また注視しているか否かの判定を、表示装置16の視線検出部424が行ってもよい。
図18は、視線の動きに応じて表示画像に用いる画像データの種類を切り替える様子を模式的に示している。図の縦方向は時間軸を示しており、各時間ステップにおいて撮像装置12が備えるステレオカメラが水平走査で取得するデータを右端に、それに対応して生成され送信される合成画像を中央に、表示装置16を構成するヘッドマウントディスプレイが合成画像に基づき出力する表示画像を左端に、それぞれ示している。
なお同図は撮影画像を表示装置16に即時表示する態様を想定している。このときホスト端末20は、撮像装置12から送信されたデータストリームをその順で表示装置16に出力する。したがって上述のとおり4/1デモザイク後画像は、他の解像度の画像データを用いて表示された画像より1フレーム分、遅れて表示される。ただし視線の動きに基づく利用データの切り替えは、4/1デモザイク後画像の送信タイミングや表示タイミングによらず実現できる。また4/1デモザイク後画像のデータをNフレームおきに出力する態様においては、さらに対応する領域の更新レートが他の領域より長くなるか、N行おきの更新となる。
まず、あるフレームの撮影期間T1とそれ以前において、ユーザが表示画像の一箇所に注視していることが判定されたとする。図では、人の顔のバツ印の箇所に注視点が検出されたことを示している。人の視線は物を注視しているときでも、「固視微動」と呼ばれる80Hz程度の微小振動をしている。固視微動以外の視線の動きとして、動く対象物を目で追う際の滑動性眼球運動(Smooth Pursuit)、別の対象物へ視線を移す際の跳躍性眼球運動(Saccade)、自分の頭や周囲の動きに対する反射運動である前庭動眼反射(VOR:Vestibulo-ocular reflex)や視運動性眼球運動(OKR:Optokinetic Response)などがある。
表示画像上の一箇所を注視していることを判定するには、固視微動とそれ以外の視線の動きとを切り分ける必要がある。そこで、例えば表示画像における視線との交点が、ある座標から所定範囲内の領域に所定時間以上滞留しているとき、当該座標の位置が注視されていると判定する。この場合、送信する合成画像502には、当該注視点を含み合成画像の面積等で定まるサイズの、4/1デモザイク後画像の領域のデータを含める。その結果、表示装置16においては、当該注視点を含む領域の詳細度が高い表示画像516が表示される。
なお撮影期間T1に撮影されたフレームの画像は、その他の解像度のデータを用いて、1つ前のフレームの表示画像514として即時表示されている。この表示画像514の注視点付近は、撮影期間T1の1つ前の期間に撮影されたフレームの4/1デモザイク後画像のデータを用いて表示されている。次のフレームの撮影期間T2においても同様の箇所に注視していることが判定されたら、対応する合成画像504には、当該領域の4/1デモザイク後画像のデータを含める。
一方、その直後のフレームの撮影期間T3において、太線矢印で示すように視線が動いたことが判定されたら、表示装置16の表示画像生成部420は、撮影期間T2に撮影されたフレームの4/1デモザイク後画像を合成対象から除外する。すなわち撮影期間T3に撮影されたフレームの1/1デモザイク後画像および1/4デモザイク後画像のデータのみを用いて、表示画像518を表示する。ここで「視線が動いた」とは固視微動以外の動きが生じたことを指し、上述のような固視微動の検出条件を満たしていない場合に判定される。
注視しているか否かの判定結果を表示装置16における表示画像の合成処理に反映させるようにすると、4/1デモザイク後画像のデータが送信されてから表示されるまでに1フレーム分の時間差があっても、表示画像の生成直前で合成の是非を制御できる。ユーザが視線を大きく動かしたり、頭を動かして画角が大きく変化したりする場合、表示画像において詳細度の高い領域を形成することが無駄になることが考えられる。注視の有無によってそのような変化が生じたか否かを判断することにより、表示装置16において無駄な合成処理を行わないようにできる。
撮影期間T3においては上述のように視線が動いているため、そのフレームの4/1デモザイク後画像のデータを送信対象から除外する。このとき、送信する合成画像506に4/1デモザイク後画像のデータを含めなくてもよいし、ホスト端末20で当該データを除外するなど、伝送経路のいずれかでデータを省いてもよい。前者の場合、伝送帯域を変化させない範囲で、1/1デモザイク後画像などその他の種類の画像で表す領域を大きくし、より広い範囲が中程度の詳細度で表されるようにしてもよい。
いずれにしろ表示装置16では、撮影期間T4に撮影されたフレームの1/1デモザイク後画像および1/4デモザイク後画像のデータのみを用いて、表示画像520が表示される。撮影期間T4でも視線が動いていれば同様に、そのフレームの4/1デモザイク後画像のデータを、合成画像508など送信対象から除外する。その結果、表示装置16では、撮影期間T5に撮影されたフレームの1/1デモザイク後画像および1/4デモザイク後画像のデータのみを用いて、表示画像522が表示される。
このように視線が動いた結果、撮影期間T5で再びユーザが一箇所に注視していることが判定されたら、当該注視点を含む領域の4/1デモザイク後画像のデータを、合成画像510に含めるなどして送信対象とする。これにより表示装置16では、撮影期間T6のフレームに対応する画像のうち、注視点を含む領域の詳細度を高くした表示画像524が表示される。なおユーザが注視しているか否かの判定に基づく切り替えは、最高解像度のデータを送信するか否か、に限らない。
例えば上述のとおり最高解像度のデータをNフレームおきに送信する態様において、その出力順を上記(1)とするか(2)とするかを切り替えてもよい。例えばユーザが画像上の一箇所に注視しているときは、視野の動きも含め表示画像全体の動きが小さいと考えられるため、フレームレートより表示の同時性を優先し(1)を選択する。一方、ユーザが視線を動かしているときは、その動きに追随するように表示の即時性を優先し(2)を選択する。さらに、最高解像度のデータを送信しない態様を組み合わせてもよい。また、その他の解像度の画像の組み合わせを変化させたり、画像上の領域のサイズを変化させたりしてもよい。
図19は、撮像装置12/ホスト端末20間、およびホスト端末20/表示装置16間で本実施の形態を適用した場合の、撮影から画像表示までの処理手順を示すフローチャートである。このフローチャートは例えば、ホスト端末20においてユーザが処理の開始指示を入力することにより開始される。なお同図では、主に画像表示に係るデータの送受信について示しているが、特にホスト端末20は、表記していないゲームなどの各種情報処理を並行して行ってよい。
まず撮像装置12が撮影を開始し、ホスト端末20に当該撮影画像のデータを送信する(S10)。ホスト端末20は当該データを用いて初期画像を生成し、表示装置16に送信する(S12)。ここで送信される画像データは、初期画像用として一般的な構造を有していてよい。表示装置16は、当該データを表示部422に表示させる(S14)。これにより、撮影画像がそのまま表示画像として表示されるなどの初期状態となる。次に視線検出部424はユーザの視線を検出し、それと表示画像との交点の位置座標の情報をホスト端末20に送信する(S16)。
ホスト端末20は当該位置座標の情報に基づき、ユーザが表示画像の一箇所を注視しているか否かを判定する(S18)。そしてその結果に基づき、4/1デモザイク後画像のデータを要求するか否か、要求する場合にその画像上での領域や出力順などを決定し、他の解像度の画像データとともに撮像装置12に要求する(S20)。なお1/1デモザイク後画像については、ユーザが注視していればその箇所を中心とした、4/1デモザイク後画像より広い所定範囲の領域を要求し、注視していなければ表示画像の中心や、主な対象物が存在する領域などを適宜特定し、要求してよい。
また要求する画像の組み合わせはこれに限らず、1/4デモザイク後画像も一部の領域としたり、さらに1/16以下のデモザイク後画像を要求したりしてよい。撮像装置12は、要求を受信した直後に撮影を開始した画像フレームの各解像度の画像から、要求された領域を抽出しながら合成画像の行ごとにつなげ、送信する(S22)。このとき、4/1デモザイク後画像については、合成画像において他の種類の画像が矩形領域を形成した残りの領域を埋めるように、かつ、設定した出力順で撮影画像N+1フレーム分に対し1フレーム分の出力が完了するように、一度につなげる画素列の数を調整していく。
S22の処理を後続のフレームについても繰り返すことにより、均一なサイズのデータが途切れることなくホスト端末20に送信され続ける。ホスト端末20は、受信した画像データを画像の種類ごとに分離して、必要に応じた画像加工を行ったうえ(S24)、再び同様の構成で合成画像を生成しながら表示装置16に送信する(S26)。ホスト端末20は、撮像装置12から送信された後続フレームの画像データについても同様に処理し、新たに形成した合成画像を送信し続けることにより、均一なサイズのデータが途切れることなく表示装置16に送信され続ける。
表示装置16は、当該画像データを受信すると、それを画像の種類ごとに分離し、適宜拡大したあと、撮影画像における元の位置に表示されるように合成して表示画像を生成し表示する(S28)。ただし4/1デモザイク後画像を利用する領域については、設定された出力順に応じて、他より更新レートを小さくするか、所定数の行おきに更新する。またユーザの視線に動きがある場合は、4/1デモザイク後画像のデータを受信したとしても合成対象から除外する。
表示装置16の視線検出部424は、視線の検出を継続する(S16)。これに応じてホスト端末20は、注視の有無や、注視している場合はその注視点を特定し、その結果に応じて撮像装置12への要求内容を適宜、変化させる(S18、S20)。S16〜S28の処理を繰り返すことにより、ヘッドマウントディスプレイを装着したユーザの頭の動きに追随して画角が変化し、また視線の変化に対し適応的かつ必要十分な詳細度で表現された動画像を表示させることができる。なおS16、S18の処理に代えて、ホスト端末20が顔検出処理や視覚追跡など表示画像中で詳細度を高くすべき領域を別の手法で特定してもよい。
以上述べた本実施の形態によれば、動画像を構成する各フレームのデータを複数の解像度で表した画像データを所定の画素列単位でつなげストリームの形式で伝送させ、情報処理を行ったり表示したりする。このとき解像度の低い画像データはカメラやディスプレイにおける走査に対応するタイミングで出力する一方、最高解像度の画像データはその余剰帯域で出力するとともに、あらかじめ設定された自然数Nフレームおきのデータを出力する。このとき他の解像度の画像データN+1フレーム分の出力に対し1フレーム分の出力が完了するように出力量を調整する。
このようにすることで、複数解像度の画像データの生成タイミングによらず、単位時間当たりのデータ出力量を一定に保つことができるとともに、伝送帯域の大幅な拡張がなくとも必要な領域については情報処理に用いる解像度を最大限、高くしたり、詳細度の高い画像を表示したりすることができる。結果としてカメラやディスプレイの性能を十分に活かした高度な情報処理や高精細な画像表示を実現できる。このようにしても、低い解像度の画像データは走査ラインレベルの低遅延で伝送できるため、撮影から表示、あるいは画像データ作成から表示までの即時性は保障される。
このことは、ヘッドマウントディスプレイのように、ユーザの動きに応じて画角が変化する撮影画像を即時表示させる態様においては特に有用である。ヘッドマウントディスプレイでは、ユーザの動きによる画角の変化を表示画像に即時に反映させることが重要となる場面と、ユーザが一箇所を注視しておりその部分の詳細度が重要となる場面が激しく入れ替わることもあり得る。本実施の形態では、そのような場面の入れ替わりを、視線と表示画像との交点の動きによって検出し、それに応じて送信する画像データの組み合わせや送信態様を切り替える。これにより、状況に応じて必要とされるデータを優先的に伝送させることができるため、伝送帯域をさらに効率的に使用することができる。
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
例えば本実施の形態では、図11などに示すように、N行おきの画素列のデータをまず出力し、同じフレームで行を1つずらしてN行おきに出力することをN+1回、繰り返すことにより、他の解像度の画像のN+1フレーム分の出力に対し、最高解像度の1フレーム分の出力を完了させる態様を示した。一方、N行おきにデータを出力したら、行をずらす際は、他の解像度の画像と同様、次のフレームから画素列を抽出するようにしてもよい。すなわち最高解像度の画像のみ、N行おきの伝送となるものの、表されるフレームは他の解像度の画像のフレームと常に対応するようにしてもよい。
この場合、他の解像度の画像の1フレーム分に対し、最高解像度の画像の1/(N+1)分のデータのみが伝送されることになるため、データを取得した表示装置等でそれを補間することにより、フレーム単位で最高解像度の画像を完成させてもよい。このようにしても見かけ上の影響や伝送帯域の増大を抑えつつ、必要な領域については情報処理に用いる解像度を最大限、高くしたり、詳細度の高い画像を表示したりすることができる。最高解像度の画像データの伝送態様の選択は、表示内容や各装置において許容される処理の負荷等によって適宜、決定してよい。