実施形態1
図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、図14、図26、図27に示す各機能ブロックは、ハードウェア的には、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にも記載されているように周知であるから、本明細書ではこれ以上の詳細な説明を省略する。
図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が要求可能な、各画像の領域のサイズを決定する。
図11は、図10で示したデータ出力を複数のフレームで繰り返した様子を模式的に示している。縦軸は時間経過を示し、各時間ステップで出力されるデータを横に示している。時刻t0、t4、t6、t7はカメラの垂直同期のタイミングに対応し、その間に連続した画像フレームF0、F1、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デモザイク後画像のデータをつなげて出力することになる。
時刻t0からt1の時間に無効データが出力される画素数(合成画像における面積)と、時刻t4からt5の時間に出力される4/1デモザイク後画像の画素数が等しければ、次の画像フレームF1に対する1/1デモザイク後画像の出力開始時刻t5に、画像フレームF0の4/1デモザイク後画像のデータ出力が終了することになる。したがって、時刻t5以後は画像フレームF0の時刻t1以後と同様の構成で各画像のデータを出力すればよい。
4/1デモザイク後画像に許容される出力画素数は、上述のように合成画像におけるL字型の領域の面積によって定まる。4/1デモザイク後画像と1/1デモザイク後画像の要求された領域の位置が撮影画像上で上下に移動すると、当該L字型の領域も上下することになるが、面積は変化しないため、常に一定サイズの領域の4/1デモザイク後画像を出力することができる。このような出力を連続した画像フレームについて繰り返すことにより、カメラの撮影周期に合わせて、要求された画像データを低遅延に出力できる。
図12は、撮像装置12から送信された画像データに対するホスト端末20における処理を説明するための図である。ホスト端末20の情報処理部38は、自らが要求した各画像の領域のサイズや位置に基づき、合成画像352を個別の画像に切り分け、メインメモリ42の連続したアドレスに展開する。図10で示したように合成画像352において、複数種類の画像のデータがそれぞれ個別の領域354、356、358に配置されている。
そのうち4/1デモザイク後画像のデータの領域354は、ホスト端末20自身が要求した1/1デモザイク後画像の領域のサイズと、縦方向の位置によって定まっている。したがって領域354をそれらの情報に基づき特定し、当該領域内の画素値をラスタ順に読み出す。そして4/1デモザイク後画像について要求した領域の横方向の長さで画素列を分割し縦方向に並べることにより、4/1デモザイク後画像360を復元できる。同様に、1/1デモザイク後画像、1/4デモザイク後画像についても、合成画像352のうち対応する領域356、358からラスタ順に画素を読み出し、本来のサイズに並べていくことにより、送信されたデータを画像362、364として復元できる。
なお合成画像358は実際にはストリームとして送信されるため、情報処理部38はデータの到着順に、複数種類の画像のデータを並列して切り分けていく。あるいは情報処理部38は、メインメモリ42に合成画像352をそのまま展開し、画像処理等に使用する段階で区別するようにしてもよい。情報処理部38および画像処理部40は、分離した画像からさらに表示に用いる領域を切り出したり、表示装置16の表示方式に従って画像に加工を施したりする。あるいはゲームの進捗に合わせて画像上に3Dオブジェクトを描画したり、顔認識、ジェスチャ認識などの画像解析を行い、それに対応する情報処理を行ったりしてもよい。
図13は撮像装置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にも、左右の画像のデータが含まれており、その境界は当該領域の面積を2分割する線となる。
例えばそれぞれが2560×2560画素の解像度を有するステレオカメラを考える。その撮影画像を1/4倍に縮小した画像を1/1デモザイク後画像とし、そのうち1/4の領域が要求されたとすると、当該領域のサイズは640×640画素である(領域374a、374b)。一方、1/4デモザイク後画像は全体のサイズが640×640画素であるため、図9で示したように画素1行分を左右に分割して2行にわたって出力した場合、合成画像372における当該画像のデータの領域376a、376bのサイズはそれぞれ320×1280画素となる。
撮影周期内で送信できるデータ量、ひいては合成画像に許容される面積は、装置間の伝送速度と撮影時のフレームレートで決定される。60fpsのレートで撮影し、5Gbpsの伝送速度を有するUSB(Universal Serial Bus)3.0を用いることを想定した場合、合成画像のサイズは例えば2125×1280画素とできる。この合成画像の面積から1/1デモザイク後画像と1/4デモザイク後画像の面積を減算すると、4/1デモザイク後画像に割り当てられる領域378の面積が算出される。
それを左右の画像で分けた場合、1画像当たりおよそ734×734画素のデータを4/1デモザイク後画像として要求することができる。このサイズは、2560×2560画素の撮影画像の1/3×1/3程度と比較的大きな値であり、人が画像の精細さを感じ取ったりホスト端末20で何らかの画像解析を行ったりするのに十分な範囲と考えられる。つまり上記のような高い仕様で撮影を行っても、伝送帯域の拡張なく、仕様の高さが与える効果を十分に発揮することができる。
次に、同様の手法をホスト端末20から表示装置16への画像データの伝送に適用した場合について説明する。図14はこの場合のホスト端末20と表示装置16の構成を詳細に示している。なおホスト端末20のうち、図3で示したのと同様の機能を有するブロックには同じ符号を付している。
ホスト端末20は、ユーザからの指示入力を取得する指示入力部36、ホスト端末20および表示装置16を統括的に制御し、目的に応じた情報処理を行う情報処理部38、表示に用いる画像を生成する画像処理部40、送信用の画像データを生成する画像抽出部400、撮像装置12からの画像データを格納するメインメモリ42、および、撮像装置12および表示装置16と画像データや必要な情報の送受信を行うインターフェースである通信部44を含む。
指示入力部36、情報処理部38、画像処理部40、メインメモリ42、通信部44はそれぞれ、図2で説明した機能を有する。ただし画像処理部40が生成する、表示に用いる画像は、撮像装置12から送信された撮影画像であってもよいし、自らが生成した3Dグラフィックスなどでもよい。撮像装置12から撮影画像が複数の解像度で送信される場合は、それらに何らかの処理を施すのみでもよい。撮像装置12から単一の解像度の画像のみが送信される環境であったり、自らが3Dグラフィックスを描画したりする場合は、フレームごとに複数の解像度の画像を生成する。この処理は、カメラ22が行う縮小処理と同様でよい。
画像抽出部400は、表示装置16に表示すべき複数種類の画像で構成される合成画像のストリームを生成する。この合成画像は図10、図13を参照して説明したのと同様に、複数種類の画像データが個別の領域に配置された画像であり、行ごとに順次ストリームとして生成、出力される仮想的な画像である。通信部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のいずれかにそのデータを格納する。以後、図10で例示したように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デモザイク後画像の像のサイズに合わせる。なおホスト端末20から送信された合成画像のうち各解像度の画像のデータが含まれる領域、および元の撮影画像を復元する際に各解像度の画像を合成する位置に係る情報は、合成画像のデータとともにホスト端末20から取得する。
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倍ずつ拡大する。図15は拡大部410、414による画像の拡大処理の一例を説明するための図である。拡大部410、414の右側はFIFOバッファ408、412に格納された画素列426の一部を示している。画像を2×2倍に拡大する場合、1つの画素当たり、横方向、縦方向、斜め方向に1つずつ画素を追加する必要がある。
横方向、縦方向に追加する画素の値は、各方向における隣接する2つ画素値を平均した値とする。斜め方向に追加する画素の値は、横方向、縦方向、斜め方向に隣接する4つの画素値の平均値とする。図15において画素列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を構成するラインバッファの数は、採用する拡大手法に応じて決定する。
図14に戻り、FIFOバッファ416は、拡大部414が拡大した1/4デモザイク後画像の横一列分の画素値を保持する複数(図では2つ)のラインバッファで構成される。つまりFIFOバッファ416は1つのラインバッファにつきW個分の画素値を保持する。拡大部418は、FIFOバッファ416に格納されたデータを用いて画素を補間し、縦方向、横方向に2倍ずつ拡大する。拡大部418による拡大手法は図15を参照して上述したのと同様でよい。この場合、FIFOバッファ416は2つのラインバッファで構成する。
表示画像生成部420は、フレームメモリ406に格納した4/1デモザイク後画像と、拡大部410から出力された、4倍に拡大された1/1デモザイク後画像、拡大部418から出力された、16倍に拡大された1/4デモザイク後画像を合成して、一つの表示画像を生成する。各画像が表す領域の位置に基づき撮影画像を再構成するように合成することにより、画像中の領域によって詳細度の異なる表示画像を生成できる。
表示画像生成部420は表示画像の生成処理を行ごとに行い、表示部422に即時出力する。すなわち拡大部410、418から出力される行ごとのデータを取得すると、即時にその行の生成処理を行い表示部422における走査と同期するように出力する。これにより、通信部402による画像データの取得から、表示部422における表示までを低遅延に行える。このような構成を実現するために、本実施の形態の合成画像の構成が有効となる。
注視点検出部424は、そのようにして表示された画像のうち、ユーザがどの箇所を注視しているかを検出する。注視点の検出には実用化されている既存技術のいずれを採用してもよい。検出結果は通信部402を介してホスト端末20に通知する。これにより、ホスト端末20は、ユーザが注視している箇所を中心に最も解像度を高くすべき領域を決定し、さらにその周囲を2番目に解像度を高くすべき領域として決定できる。例えば前者の領域は4/1デモザイク後画像、後者の領域は1/1デモザイク後画像、全体領域として1/4デモザイク後画像を撮像装置12に要求すれば、それらを用いて、ユーザが注視している箇所に近いほど高解像度となる画像を表示できる。
ただし高解像度とする領域をこれに限る趣旨ではなく、被写体であるユーザの顔など、画像中で重要な領域を別の手段で特定してもよい。この場合、注視点検出部424の機能を省略し、ホスト端末20が画像解析により当該領域を特定してもよい。また上述のように、ホスト端末20自身が複数解像度の画像データを生成してもよい。なおホスト端末20は、ネットワーク18を介して別の情報処理システムのホスト端末に同様のデータを送信してもよい。
図16は表示装置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に格納する。そして1/1デモザイク後画像は4倍に、1/4デモザイク後画像は16倍に拡大され、それらを撮影画像における元の位置で合成することにより表示画像444が生成される。なお同図において表示画像444を縮小して示している。
結果として表示画像444は、4/1デモザイク後画像の領域446、1/1デモザイク後画像の領域448、1/4デモザイク後画像の領域450を合成した、顔など重要部分に近づくほど解像度が高い画像となる。なお同図の表示画像444では、4/1デモザイク後画像の領域446、1/1デモザイク後画像の領域448が、合成前の各画像をそのまま反映した矩形となっているが、アルファブレンドにより、より自然に見えるようにしてもよい。例えばそれらの画像の領域に内接し内部を透明、外部を不透明、境界を半透明とする円形または楕円形のアルファマスクを準備する。合成時に当該マスクを用いることにより、各領域が円形または楕円形となるとともに、その境界において徐々に詳細度が変化するような自然な画像を表示できる。
このような画像表示手順において、表示画像444が表示部422においてラスタ順に表示されることを考慮すると、1/1デモザイク後画像、1/4デモザイク後画像の対応する行が同時期に入力されることが望ましい。また全ての期間において均一なデータサイズで画像データが送信されることが望ましい。結果として撮像装置12において生成した合成画像と同じ配置で合成画像を生成し送信することが最も効率的である。これによりホスト端末20から送信されたストリームの入力順に処理を施し表示させることが可能となり、ホスト端末20からの送信に対し低遅延での表示が可能となる。
ただしこの表示のタイミングに合わせて、同一フレームの4/1デモザイク後画像を表示させるには、表示画像444において4/1デモザイク後画像の領域446を含む各行が出力されるタイミングで、当該4/1デモザイク後画像の各行のデータがフレームメモリ406に格納済みである必要がある。したがってこの場合における合成画像430は、撮像装置12が生成する合成画像と異なり、1/1デモザイク後画像のデータの領域434の上側に、同じフレームの4/1デモザイク後画像のデータの領域432が存在するようにする。
すなわち1/1デモザイク後画像や1/4デモザイク後画像の出力より先に4/1デモザイク後画像のデータが出力されるようにする。なおこのような場合も、先行して4/1デモザイク後画像を出力する期間cと、1/4デモザイク後画像のみを出力する期間dが等しくなるように、4/1デモザイク後画像の領域サイズを決定することにより、表示装置の出力レートに対応する周期で、各フレームの表示に必要な画像のデータを送信できることになる。
一方、場合によっては、ホスト端末20から送信する合成画像を、撮像装置12からホスト端末20への合成画像と同様の構成としてもよい。すなわち4/1デモザイク後画像の出力開始を1/1デモザイク後画像の出力開始と同時期とすることで後追いで送信するようにしてもよい。後述するように撮像装置12からの入力データを即時表示させる場合は、1/1デモザイク後画像、1/4デモザイク後画像の出力速度を優先させるため、後者の態様が有効となる。
図17は、撮像装置12にステレオカメラを設け、表示画像に左右の画像を用いる場合に、ホスト端末20から送信された画像データから表示画像を生成する様子を模式的に示している。なおこの態様は表示装置16をヘッドマウントディスプレイで実現し、表示画面を2分割してなる左右の領域に、ステレオカメラが撮影した画像に基づく、視差のある左右の画像を表示する場合を想定している。この場合、図14で示した表示装置16の機能ブロックのうち、フレームメモリ406、FIFOバッファ408、412、416、拡大部410、414、418を、左右の画像のそれぞれに対して設ける。また表示画像生成部420は、表示画面の左側の画像を出力後、右側の画像を出力する処理を行ごとに行う。
なお図示は省略しているが、この場合の画像は、ホスト端末20においてディスプレイの表示方式に対応するように画像処理が施されているとする。当該画像処理は実用化されているヘッドマウントディスプレイの技術を適宜、適用することができる。この態様における合成画像460は、4/1デモザイク後画像のデータの領域462、左右の1/1デモザイク後画像のデータの領域464a、464b、左右の1/4デモザイク後画像のデータの領域466a、466bで構成される。なお4/1デモザイク後画像のデータの領域462にも、左右の画像のデータが含まれており、その境界は当該領域の面積を2分割する線となる。
ホスト端末20から合成画像460がストリーム形式で送信されると、表示装置16のデータ分離部404は送信された順に、左右の画像のそれぞれにつき3種類の画像、合計6種類の画像のデータに分離する。そして1/1デモザイク後画像および1/4デモザイク後画像を、それぞれ4倍および16倍に拡大し、4/1デモザイク後画像と合成する処理を左右の画像ごとに行う。そして処理が完了した行ごとに、左右の画像データを横方向につなげて出力することにより、表示部422には表示画像468が表示される。
この場合も図16を参照して説明したのと同様、全体を表す1/4デモザイク後画像の拡大後のデータをラスタ順に出力していく過程において、1/1デモザイク後画像の領域に到達したら当該画像の拡大後のデータを、4/1デモザイク後画像の領域に到達したら当該画像のデータを、出力していくことにより、ホスト端末20からのデータ送信に対し低遅延で画像を表示させることができる。また表示装置16内で1/1デモザイク後画像、1/4デモザイク後画像の全体領域を展開する必要がないため、少ないラインバッファですむことになる。
表示部422の表示画面の解像度を左右の画像それぞれについて1920×2160画素とし、そこに1/4デモザイク後画像を用いて全体領域を表示させるとすると、合成画像460における1/4デモザイク後画像のデータの領域466a、466bのサイズはそれぞれ、240×1080画素となる。また1/1デモザイク後画像の表示時のサイズを1080×1080画素とすると、合成画像460における1/1デモザイク後画像のデータの領域464a、464bのサイズはそれぞれ、540×540画素となる。
表示装置16の表示レートを60fpsとし、ホスト端末20/撮像装置12間の伝送手段としてHDMI(High-Definition Multimedia Interface、登録商標)を用いることを想定した場合、合成画像のサイズは例えば1920×1080画素とできる。この面積から1/1デモザイク後画像と1/4デモザイク後画像の面積を減算し左右の画像で分けると、1画像当たりおよそ697×697画素の領域を、4/1デモザイク後画像の詳細な画像で表すことができる。人が意識して見ることのできる範囲は限定的なため、例えば注視点を中心とした当該サイズの領域が精細であれば、高解像度化の効果は十分得られると考えられる。
図18は注視点検出部424の構成例を示している。同図下段はヘッドマウントディスプレイ470とそれを装着したユーザの頭部472を上から見た様子を模式的に表している。ヘッドマウントディスプレイ470には上段で示したような表示画像476が表示され、ユーザが左右の目474a、474bでそれを見ている。ここで、注視点検出部424として、赤外線LED478a、478b、赤外線カメラまたはPSDセンサ480a、480b、および画像解析装置482を設ける。
赤外線LED478a、478bはそれぞれ、ユーザの左右の目474a、474bに赤外線を照射する。赤外線カメラまたはPSDセンサ480a、480bはそれぞれ、ユーザの左右の目474a、474bを撮影し、そのデータを画像解析装置482に供給する。画像解析装置482は、左右の目の撮影画像から、赤外線の角膜における反射位置と瞳孔の位置とを特定し、その位置関係からユーザの視線を特定する。この手法は角膜反射法として視線検出技術の分野で実用化されている。なお視線を検出する手法はこれに限らず、例えば可視光カメラで左右の目を撮影し、そのうち目頭と虹彩の位置関係から視線を特定する技術など一般的な手法のいずれを採用してもよい。
画像解析装置482は、そのように検出した視線と、表示画像476との交点484a、484bをユーザによる注視点とし、その位置座標を検出する。当該注視点の位置座標の情報をホスト端末20へ送信することにより、ホスト端末20では、4/1デモザイク後画像で表す領域、その周囲の1/1デモザイク後画像で表す領域、をそれぞれ決定することができる。そして上述した態様のように当該領域のデータのみを撮像装置12へ要求するか、ホスト端末20自身が複数解像度の撮影画像から切り出し処理を行うか、のいずれかにより、表示装置16へ当該領域を含む画像のデータを送信する。この処理を継続して行うことにより、注視点の動きに対応して高解像度の箇所が動く表示画像を低遅延で表示できる。
これまで述べた、撮像装置12からホスト端末20への画像データの伝送形態と、ホスト端末20から表示装置16への画像データの伝送形態は組み合わせて実施することもできる。図19は、双方の伝送経路で本実施の形態を実施した場合の、撮像装置12における撮影から表示装置16における画像表示までの処理手順を示すフローチャートである。このフローチャートは例えば、ホスト端末20においてユーザが処理の開始指示を入力することにより開始される。
なおこのフローチャートは、主に画像表示に係るデータの送受信について示しているが、特にホスト端末20は、表記していないゲームなどの各種情報処理を並行して行ってよい。まず撮像装置12が撮影を開始し、ホスト端末20に当該撮影画像のデータを送信する(S10)。ホスト端末20は当該データを用いて初期画像を生成し、表示装置16に送信する(S12)。
ここで送信される画像データは、初期画像用として一般的な構造を有していてよい。表示装置16は、当該データを表示部422に表示させる(S14)。これにより、撮影画像がそのまま表示画像として表示されるなどの初期状態となる。次に注視点検出部424は、ユーザの注視点の位置座標を検出し、当該情報をホスト端末20に送信する(S16)。なお顔検出などによりホスト端末20が別途、表示画像の重要部分を特定する態様においては、S16の処理は行わなくてよい。
ホスト端末20は注視点の情報に基づき、4/1デモザイク後画像として要求する領域、1/1デモザイク後画像として要求する領域を決定し、1/4デモザイク後画像とともに撮像装置12に要求する(S18)。ただし要求する画像の組み合わせはこれに限らず、1/4デモザイク後画像も一部の領域としたり、さらに1/16以下のデモザイク後画像を要求したりしてよい。撮像装置12は、要求を受信した直後に撮影を開始した画像フレームの各解像度の画像から、要求された領域を抽出しながら合成画像の行ごとにつなげ、送信する(S20)。
このとき4/1デモザイク後画像については、1/1デモザイク後画像の出力期間に応じて一度に出力するデータ量(画素数)を調整する。これを後続のフレームについても繰り返すことにより、均一なサイズのデータが途切れることなくホスト端末20に送信され続ける。ホスト端末20は、受信した画像データを画像の種類ごとに分離して、必要に応じた画像加工を行ったうえ(S22)、再び合成画像を生成しながら表示装置16に送信する(S24)。この場合は上述したように、4/1デモザイク後画像のデータを他のデータより先に送信するように構成すると、表示装置16における行ごとの表示に4/1デモザイク後画像のデータを間に合わせることできる。
ホスト端末20は、撮像装置12から送信された後続フレームの画像データについても同様に処理し、新たに形成した合成画像を送信し続けることにより、均一なサイズのデータが途切れることなく表示装置16に送信され続ける。表示装置16は、当該画像データを受信すると、それを画像の種類ごとに分離し、適宜拡大したあと撮影画像における元の位置に表示されるように合成して表示画像を生成し表示する(S26)。表示装置16は、ホスト端末20から送信された後続フレームの画像データについても同様に処理し、表示を更新し続けることにより、撮影された動画の動きに対応する動画を表示できる。
一方、表示装置16の注視点検出部424は、注視点検出処理を継続する(S16)。注視点が動いた場合、ホスト端末20はその結果に応じて撮像装置12へ要求する画像の領域を変化させる(S18)。これに従い、撮像装置12からホスト端末20へ送信する画像の領域、ひいてはホスト端末20から表示装置16へ送信する画像の領域を変化させることにより(S20、S22、S24、S26)、解像度の高い領域が注視点と連動する動画を表示できる。
図20は、図19で示した処理において、撮像装置12からホスト端末20へのデータ送信とホスト端末20から表示装置16へのデータ送信のタイミングの関係について説明するための図である。同図は縦方向に時間軸を表し、時間経過に応じて撮像装置12およびホスト端末20において生成、送信される合成画像の行の遷移を、それぞれ撮像装置12およびホスト端末20の領域に表している。なお同図では送信されるデータを左右のステレオ画像としているがそれに限る趣旨ではない。上述したように撮像装置12からホスト端末20へは、ホスト端末20が要求した画像データの1フレーム分の合成画像500が連続して送信される。
この合成画像の出力は、カメラにおける撮像と並列に行われるため、各フレームのデータの出力開始時刻T0、T2、・・・はカメラの垂直同期に対応するタイミングとなる。なお同図では着目しているフレームのデータを明確にするため、それ以外のデータに影をつけている。これまで述べた例のように1/4デモザイク後画像を全体領域とすると、時刻T0において1/4デモザイク画像の出力が開始され、その後、要求された領域の画素値が生成された時点で、1/1デモザイク後画像、4/1デモザイク後画像の出力が開始される。
1/1デモザイク後画像は1/4デモザイク後画像より領域が小さいうえ即時出力しているため、最も早いタイミングでデータ出力が完了する(時刻T1)。次いで時刻T2で1/4デモザイク後画像のデータ出力が完了し、時刻T3で4/1デモザイク後画像のデータ出力が完了する。ホスト端末20では送信された合成画像を4/1デモザイク後画像502、1/1デモザイク後画像504、1/4デモザイク後画像506に分離し、メインメモリ42に格納する。そして画像処理モジュール508に適宜入力したあと、加工後の画像データによる合成画像510の生成および出力を開始する。
なお画像処理モジュール508は図14の情報処理部38と画像処理部40の協働により実現し、ヘッドマウントディスプレイの表示方式に応じた画像加工、顔検出、3Dオブジェクトの描画など所定の処理を行う。画像処理モジュール508への入力は、一旦、メインメモリ42に各画像の領域全体を展開したあとで行ってもよいし、撮像装置12から送信された行ごとに即時に行ってもよい。また場合によっては画像処理を施さなくてもよいし、一部の画像のみ画像処理を施してもよい。
いずれにしろ合成画像510では、まず4/1デモザイク後画像の出力を開始したあと(時刻T4)、全体領域を表す1/4デモザイク後画像の出力を開始する(時刻T5)。1/1デモザイク後画像の出力開始タイミングは、要求された領域の高さ方向の位置によって、対応する行の1/4デモザイク後画像の出力タイミングに合わせることにより、自ずと決定される。各フレームの1/4デモザイク後画像の出力を開始する時刻T5、T6、・・・を表示装置の垂直同期に対応させることにより、ホスト端末20から送信された1/1デモザイク後画像および1/4デモザイク後画像は、行ごとに即時表示することが可能となる。
この態様においては、時刻T0から時刻T5までの時間Tdだけ、同一フレームの撮影開始から表示開始までの時間が遅延することになるが、その時間を利用して画像処理を許容できるとともに、4/1デモザイク後画像を他のデータより先に送信できるため、同一フレームの全ての解像度の画像を共に表示させることができる。遅延時間はホスト端末20における処理に必要な時間に応じ、かつ表示装置16の走査と同期するように調整する。
一方、撮影画像を可能な限り遅延なく表示させる態様も考えられる。図21は撮像から表示までの時間を短縮する態様におけるデータ送信のタイミングの関係について説明するための図である。図の表し方は図20と同様である。そして図20で示した態様と同様、撮像装置12からホスト端末20へは、カメラの垂直同期に対応するタイミングで各フレームの合成画像の生成および出力が開始される。一方、この態様においては、撮像装置12から送信された、1/1デモザイク後画像および1/4デモザイク後画像の行ごとのデータを、ホスト端末20はそのまま表示装置16へ送信する。
すなわち時刻T10で1/4デモザイク後画像が送信されたら、それをそのまま出力する(時刻T11)。このとき1/4デモザイク後画像の取得から送出までの時間(T11−T10)は、データ伝送およびメモリへの格納/読み出しに必要な微小時間となる。後続の行も、同じ微少時間の遅延で表示装置16へ送信することにより、1/1デモザイク後画像および1/4デモザイク後画像が撮影と並行して順次表示される。その結果、1/4デモザイク後画像の最終行のデータが撮像装置12から送信された時刻T12から微少時間の遅延で、ホスト端末20から表示装置16への、同一フレームの1/4デモザイク後画像の送信も完了する(時刻T13)。
ただしこの態様では、図20で示した場合と異なり、ホスト端末20は4/1デモザイク後画像のデータを、同一フレームの他の画像のデータより先に出力することができない。これは、1/4デモザイク後画像のデータを出力する時刻T11では、撮像装置12においても4/1デモザイク後画像の該当領域のデータが未生成のためである。そのためこの態様においては、4/1デモザイク後画像のデータを1フレーム分遅らせて出力する。すなわち合成画像512において、1/1デモザイク後画像のデータの領域514a、514bの下に、同じフレームの4/1デモザイク後画像のデータの領域516を配置する。
4/1デモザイク後画像が1フレーム分遅れることを除き、全体的な構成や出力周期は図20の合成画像510と同じとする。これにより、次のフレームの1/1デモザイク後画像、1/4デモザイク後画像の即時表示に合わせて前フレームの4/1デモザイク後画像を表示する。つまりこの態様では、広範囲を表す1/4デモザイク後画像、1/1デモザイク後画像の表示の即時性を優先させているといえる。このような表示形態は、撮像装置12、ホスト端末20、表示装置16をミラーレス一眼レフカメラとして一体的に実現した場合、視野の変化に対し電子ファインダにおける表示の遅延を軽減できる点で特に効果的である。
これまでの説明では主に、4/1デモザイク後画像の一部の領域、1/1デモザイク後画像の一部の領域、1/4デモザイク後画像の全体領域により合成画像を形成する場合について述べた。一方、合成画像の構成は、表示内容や情報処理の内容に応じてその組み合わせや領域を様々に変化させることができる。図22は合成画像の複数の構成例を示している。同図では、各合成画像のうち4/1デモザイク後画像の領域に「4/1」、1/1デモザイク後画像の領域に「1/1」、1/4デモザイク後画像の領域に「1/4」と記載して区別している。また左右のステレオ画像を送信対象とすることを想定している。
同図(A)の合成画像は、1/1デモザイク後画像と1/4デモザイク後画像で構成されている。図13で説明したのと同様、5Gbpsの伝送速度を有するUSB3.0を用いて60fpsのデータを送信することを想定した場合、図示するように、左右の1/1デモザイク後画像はそれぞれ742×1280画素、左右の1/4デモザイク後画像はそれぞれ320×1280画素のデータを、1フレームに対する合成画像に含めることができる。
同図(B)の合成画像は、4/1デモザイク後画像と1/4デモザイク後画像で構成されている。この場合、図示するように、左右の4/1デモザイク後画像は合計1485×1280画素、左右の1/4デモザイク後画像はそれぞれ320×1280画素のデータを1フレームに対する合成画像に含めることができる。4/1デモザイク後画像のデータ領域を左右の画像に分けた場合、それぞれ974×974画素の領域のデータを含めることができる。
同図(C)の合成画像は、左右の4/1デモザイク後画像のみで構成されている。この構成にすると、図示するように、それぞれ1250×1080画素のデータを1フレームに対する合成画像に含めることができる。伝送帯域や処理性能には限りがあるため、解像度の向上と画角の拡張は本来、トレードオフの関係にある。一方、図13で示した合成画像や図22の(A)や(B)の合成画像によれば、1/4デモザイク後画像で画角を拡張しつつ、4/1デモザイク後画像や1/1デモザイク後画像により重要な部分については高解像度で表すことにより、両立を図っている。
また合成画像として必要な部分のみを送信することにより、伝送帯域を圧迫せずに高解像度の領域を十分に確保することができる。このことは、4/1デモザイク後画像のみを送信する図22の(C)の合成画像についても当てはまる。なお図13や図22で示したような合成画像の構成を、時間経過とともに切り替えるようにしてもよい。例えばユーザの注視点が動く速度が所定のしきい値より大きい場合、ユーザが見たい箇所が定まっていないことが考えられるため、図22の(A)のように、4/1デモザイク後画像を送信しない代わりに1/1デモザイク後画像の広範囲の領域を送信する。
そして注視点の動く速度がしきい値以下となったら、見たい箇所が定まってきたと判定し、図13や図22の(B)の合成画像のように当該箇所を含む領域の4/1デモザイク後画像を送信する。また周辺領域の動きが乏しかったり重要度が低かったりする撮影環境においては、ユーザが注視している領域や重要な領域のみを高レートで更新するため図22の(C)の合成画像によって4/1デモザイク後画像のみを送信し、その周囲は静止画としたり低フレームレートで更新したりしてもよい。このように、撮影環境、表示内容、ユーザの視線の動きなどに応じて合成画像の構成を変化させることにより、状況に応じて必要なデータを効率的に送信することができる。
図23は、撮像および表示を120fpsで運用した場合のデータ構成を例示している。このとき撮像装置12からホスト端末20への伝送はUSB3.0、ホスト端末20から表示装置16への伝送はHDMIを用いるとする。また撮像装置12はそれぞれ2560×2560画素のステレオカメラを有するとする。そしてビニングにより1280×1280画素のステレオ画像520を120fpsで撮影する。この場合、撮像装置12からホスト端末20へ送信する際の合成画像522の面積は、60fpsの場合の半分以下とする必要がある。
そこで例えば、元のステレオ画像520をそれぞれ1/4倍に縮小した640×640画素の画像の1行分を左右に分割して2行にわたって出力しつつ、元のステレオ画像520のうちそれぞれ452×452画素の領域524を320画素ずつ出力すると、合成画像は960×1280画素となり要件を満たす。なおここではビニング後の画像を「1/1」、それを1/4倍に縮小した画像を「1/4」と表現している。ただし1/1デモザイク後画像は、図13などで説明した場合の4/1デモザイク後画像と同様の役割を有する。
つまり1/1デモザイク後画像のデータをフレームメモリ150に格納することにより、領域524のデータが生成されたタイミングに関わらず1280の時間ステップで徐々に出力されるようにする。このような画像データを受信したホスト端末20は、1/4デモザイク後画像を1/4倍に縮小して1/16デモザイク後画像を生成する。また元の1/4デモザイク後画像は必要領域のみを切り出し360×360画素の画像とする。その後、1/4デモザイク後画像と1/16デモザイク後画像は対応する行が同時期に出力されるようにし、1/1デモザイク後画像は先行して表示装置16のフレームメモリ406に格納されるようにすると、合成画像526は図示するように、1280×720画素のサイズとなる。
このような構成により、当該合成画像の面積は、図17で示した60fpsの場合の半分以下となっている。当該画像データを受信した表示装置16では、1/16デモザイク後画像を16倍、1/4デモザイク後画像を4倍し、1/1デモザイク後画像と合成することにより、1280×1280画素の左右の画像が復元され、領域によって解像度が高くなっている表示画像528を表示できる。このように120fpsの高フレームレートであっても、必要な伝送帯域を変化させずに遅延の少ない伝送形態を確立できる。
以上述べた本実施の形態によれば、表示や情報処理に用いる複数種類の画像データをストリーム形式で送信する際、ストリームとして、行ごと、または一行を分割した単位でつなげる画像と、行と関わりなくつなげる画像とを設ける。撮影時や表示時の走査に同期させるなど、前者の画像データの出力に拘束条件を課しても、後者の画像を単位時間当たりに出力するデータサイズの調整に用いることができるため、データ出力の即時性と伝送データサイズの定常化を両立させることができる。また、一部の領域のデータのみを選択的に送信できるとともに伝送データサイズをあらかじめ設定した値以下に収めることができる。
結果として、撮影や表示時のフレームレートや解像度が増加しても、限られた伝送帯域で最大限のデータを送信できるうえ、低遅延での伝送が可能となる。低解像度であってもより広い範囲を表した画像に時間的な拘束条件を課すことにより、表示画像全体として即時性があるような印象を与えることができる。また人が見ている部分や重要な部分については高解像度画像を表示することにより、見た目の精細さを損なうことなく伝送データサイズを抑えることができる。
さらに、視線の動きや撮影環境、表示内容などに応じて伝送する画像の種類やその領域を自由に変化させられるため、データサイズや時間的な拘束条件を満たしながら、状況の変化に応じた最適な表示を臨機応変に実現できる。
実施形態2
実施形態1では撮影画像のうち送信対象の領域を全て矩形としていたのに対し、本実施形態では円形または楕円形とする。この態様における撮像装置12、ホスト端末20、表示装置16の構成は、基本的には実施形態1で説明したのと同様でよい。また実施形態1と同様、撮像装置12からホスト端末20へのデータの伝送、およびホスト端末20から表示装置16へのデータの伝送はその形態を独立に設定できるため、例えばどちらか一方に実施形態2を適用し、他方に実施形態1を適用することも可能である。
図24は本実施の形態において、撮像装置12にステレオカメラを設けた場合に出力される合成画像の構成を説明するための図である。ただし撮像装置12を単眼のカメラで構成してもよい。同図上段は撮影画像610a、610bを、基準である1/1デモザイク後画像のサイズで表している。ここで図13と同様、ホスト端末20が、撮影画像610a、610bのうち、被写体である人の顔の領域612a、612bの4/1デモザイク後画像、その周囲を含めた領域614a、614bの1/1デモザイク後画像、および撮影画像612a、612b全体の1/4デモザイク後画像を要求するとする。
このとき本実施の形態では上述のように、4/1デモザイク後画像の領域612a、612bおよび1/1デモザイク後画像の領域614a、614bを円形または楕円形とする。したがってホスト端末20は、例えば撮影画像上での中心座標と半径等でこれらの領域を指定する。撮像装置12のデータ抽出部184は、FIFOバッファ170に格納された1/1デモザイク後画像の行のうち、領域614a、614bに含まれる画素以外の画素のデータを破棄しながら、各時間ステップにおいて左右の1/1デモザイク後画像の当該領域内の画素列と左右の1/4デモザイク後画像の1/2行分の画素列をこの順でつなげて出力する。
その結果、各時間ステップには、必要なデータを出力する時間以外に余剰時間が生じる。そこで当該時間を利用して、4/1デモザイク後画像の領域612a、612bのデータをフレームメモリ150から読み出して出力する。このとき4/1デモザイク後画像については、左右の撮影画像のうち一方の画像の要求された領域のデータ出力が完了したらそれに続けて他方の画像のデータを出力する。4/1デモザイク後画像および1/1デモザイク後画像のデータの出力開始のタイミングは、実施の形態1と同様、ホスト端末20から指定された領域のデータが生成されるタイミングに依存する。
結果として合成画像620は、図示するように、左右の画像の1/1デモザイク後画像のうち要求されたデータの領域624a、624b、左右の画像の1/4デモザイク後画像のデータの領域626a、626b、および4/1デモザイク後画像のうち要求されたデータの領域622で構成される。この例では、左右の1/1デモザイク後画像における抽出対象の円形領域の各行の画素列と、1/4デモザイク後画像の画素列が、どの時間ステップにおいても直接接続されるように、1/1デモザイク後画像の出力開始タイミングを調整している。
したがって合成画像620において1/1デモザイク後画像のデータの領域624a、624bは、全体としては図示するような半楕円形となる。一方、4/1デモザイク後画像のデータの領域622は、合成画像620のうち1/1デモザイク後画像のデータの半楕円形の領域624a、624bと1/4デモザイク後画像のデータの領域626a、626b以外の領域を埋めるように構成される。ここで領域622は、元の撮影画像における左右の円形領域612a、612bのデータを、面積を上下に2分割してなる各領域に含む。
なお合成画像における1/1デモザイク後画像のデータの領域は図示する形状に限らず、例えば元の撮影画像610a、610bにおける抽出対象の領域614a、614bの円または楕円の形状を保つように接続してもよい。この場合も、合成画像のうち左右の1/1デモザイク後画像のデータの領域である2つの円または楕円の周囲を埋めるように4/1デモザイク後画像のデータの領域を接続すればよい。
図25は本実施の形態において、撮像装置12にステレオカメラを設け、表示画像に左右の画像を用いる場合に、ホスト端末20から送信された画像データから表示画像を生成する様子を模式的に示している。なおこの態様は実施形態1において図17で説明したのと同様、表示装置16をヘッドマウントディスプレイで実現し、表示画面を2分割してなる左右の領域に、ステレオカメラが撮影した画像に基づく、視差のある左右の画像を表示する場合を想定している。
この場合、ホスト端末20は、図24で説明したのと同様の原理で、4/1デモザイク後画像のデータの領域642、左右の1/1デモザイク後画像のデータの領域644a、644b、左右の1/4デモザイク後画像のデータの領域646a、646bで構成される合成画像640を生成しながらラスタ順に表示装置16に出力する。すなわち1/1デモザイク後画像のデータの領域644a、644bは全体として半楕円形とし、その周囲を埋めるように4/1デモザイク後画像のデータの領域642を構成する。あるいは1/1デモザイク後画像のデータの領域を2つの円形または楕円形としてもよい。
4/1デモザイク後画像のデータの領域642は、その面積を上下に2等分してなる各領域が、左右の撮影画像における円形または楕円形の領域のデータを表す。このとき実施形態1と同様、出力されたデータを表示装置16においてラスタ順に即時に表示できるようにするため、1/1デモザイク後画像のデータの領域644a、644bの上側に、同じフレームの4/1デモザイク後画像のデータの領域642が存在するようにする。
すなわち1/1デモザイク後画像や1/4デモザイク後画像の出力より先に4/1デモザイク後画像のデータが出力されるようにする。なお場合によっては、ホスト端末20から送信する合成画像を、撮像装置12からホスト端末20への合成画像と同様の構成としてもよい。この場合は上述のように、4/1デモザイク後画像を1フレーム分遅れて表示する。
ホスト端末20から合成画像642がストリーム形式で送信されると、表示装置16のデータ分離部404は、送信された順に、左右の画像のそれぞれにつき3種類の画像、合計6種類の画像のデータに分離する。そして1/1デモザイク後画像および1/4デモザイク後画像を、それぞれ4倍および16倍に拡大し、4/1デモザイク後画像と合成する処理を左右の画像ごとに行う。4/1デモザイク後画像および1/1デモザイク後画像の領域のサイズや合成位置については、ホスト端末20から通知された情報を参照する。
これにより4/1デモザイク後画像および1/1デモザイク後画像の円形または楕円形の領域が、1行ずつ1/4デモザイク後画像の対応する行に合成されることになる。そして処理が完了した行ごとに、左右の画像データを横方向につなげて出力することにより、表示部422には、重要な箇所ほど高い詳細度で表された表示画像648が表示される。
本実施の形態によっても、実施形態1について上述したのと同様の効果が得られる。さらに、4/1デモザイク後画像や1/1デモザイク後画像など高解像度の画像のデータのうち必要な領域のみを厳選して伝送することにより、限られた伝送帯域でさらに効率的なデータ伝送を実現できる。具体的には、上述のように円形または楕円形のアルファマスクにより高解像度の画像を合成した画像を表示するような場合や、顔認識、表情認識など高解像度画像を用いた画像解析の対象領域が円形に近い形状である場合などにおいて、周囲の余分な領域のデータを伝送せずに済む。
また伝送する合成画像において、1/1デモザイク後画像など行単位の出力が必要な高解像度の画像データの面積が小さくなることにより、4/1デモザイク後画像など出力単位に拘束条件のない高解像度の画像データに割り当てられる面積が大きくなる。例えば前者を正方形で抽出した場合に比べ、それに内接する円形で抽出すれば、当該データの伝送効率は4/π倍向上するため、その分を後者に割り当てられる。結果として、元の撮影画像における4/1デモザイク後画像等の抽出領域を大きくしたり、抽出領域を変化させない場合は1フレーム当たりの出力完了のタイミングを早めたりすることが可能となる。
実施形態3
実施形態1および2では、撮像装置12やホスト端末20は基本的に、RAW画像またはそのデモザイク後画像のデータを構成する画素列を接続したもの、すなわち非圧縮のデータを出力した。本実施の形態ではそのうち、時間的拘束条件の緩い最高解像度のデータに圧縮処理を施してから出力する。出力時の各解像度の画像データの接続形態、すなわち合成画像の構成は、実施形態1や2と同様でよい。また本実施の形態は、撮像装置12からホスト端末20へのデータの伝送、およびホスト端末20から表示装置16へのデータの伝送で独立に適用できるため、どちらか一方に適用してもよいし、双方に適用してもよい。
図26は、本実施の形態を撮像装置12からホスト端末20へのデータの伝送に適用した場合の画像送出部の構成を示している。同図の画像送出部732は、実施の形態1における画像送出部32の代わりに撮像装置12に設けられるものであり、図5の画像送出部32と同じ機能を有するブロックには同じ符号を付し説明を省略する。
本実施の形態の画像送出部732は、カメラ22から入力され一旦フレームメモリ712に格納されたRAW画像またはn2/1デモザイク後画像のデータを圧縮する圧縮部710を含み、フレームメモリ712は圧縮後のデータを格納する領域を含む。以後、これまでの説明と同様、4/1デモザイク後画像を対象として説明する。圧縮部710は、カメラ22からフレームメモリ712に、4/1デモザイク後画像のうち圧縮単位のデータが格納される都度、順次圧縮してフレームメモリ712に格納し直す。
データ抽出部184は、フレームメモリ712に格納された圧縮後の画像データのうち、ホスト端末20から要求された領域のデータを読み出す。そして実施形態1または実施形態2で説明したように、生成・出力すべき合成画像のうち他の解像度の画像データの領域以外の領域を埋めるように接続して、行ごとにデータストリームとしてデータ形成部186へ供給する。結果として、出力されるストリームには、各画素が画像の画素としてその色情報を表す画素列と、画像の画素と必ずしも一対一に対応しない圧縮後の値を表す画素列とが混在する。
なお4/1デモザイク後画像の圧縮後のデータを他の画像のデータと接続できれば、圧縮部710が圧縮する対象は4/1デモザイク後画像全体でなくてもよく、データ抽出部184が抽出する領域のみを圧縮してもよい。圧縮方式は既存のいかなるものを採用してもよいが、所定数の画素のブロック単位で定率圧縮する手法を採用すると、合成画像において当該データに割り当て可能な領域と圧縮率に基づき、元の4/1デモザイク後画像における抽出可能な領域の画素数の上限を容易に見積もることができる。
出力対象の4/1デモザイク後画像を圧縮してから接続する以外、画像送出部732が行う処理は実施形態1と同様でよい。一方、ホスト端末20では、このようなデータを行ごとに取得すると、情報処理部38が、各種類の画像をメインメモリ42に展開する際、4/1デモザイク後画像については伸張処理を施しておく。これにより画像処理部40は、実施形態1と同様に画像処理を行うことができる。4/1デモザイク後画像について画像処理を実施する必要がないときは、圧縮後のデータを伸張することなく表示装置16へそのまま送信してもよい。
図27は、本実施の形態をホスト端末20から表示装置へのデータの伝送に適用した場合の表示装置の構成を示している。同図の表示装置は図1で示した表示装置16に対応するが、実施形態1と区別するために表示装置716としている。また図14で示した表示装置16と同じ機能を有するブロックには同じ符号を付し説明を省略する。ここで当該表示装置716にデータを送信するホスト端末20は、図14で示したものと同様の構成を有するが、当該データには上述のとおり、4/1デモザイク後画像の圧縮後のデータが含まれる。
このデータは、撮像装置12が圧縮したものでもよいし、ホスト端末20が圧縮したものでもよい。後者の場合、ホスト端末20の画像処理部40には、4/1デモザイク後画像の出力すべき領域のデータを圧縮する機能を設ける。表示装置716は、データ分離部404が分離した複数種類の画像のうち、4/1デモザイク後画像の圧縮後のデータを伸張する伸張部720を含む。伸張部720により伸張された画像のデータがフレームメモリ406に格納されれば、それ以外の処理は実施形態1の表示装置16と同様でよい。
本実施の形態によっても、実施形態1や2について上述したのと同様の効果が得られる。さらに、4/1デモザイク後画像など最高解像度の画像を圧縮してから他の解像度の画像のデータと接続し出力することにより、限られた伝送帯域でさらに効率的なデータ伝送を実現できる。結果として、元の撮影画像における4/1デモザイク後画像等の抽出領域を大きくしたり、抽出領域を変化させない場合は1フレーム当たりの出力完了のタイミングを早めたりすることが可能となる。
ここで4/1デモザイク後画像など最高解像度の画像は出力のタイミングに対する拘束条件が緩いため、圧縮処理や伸張処理が加えられても、その出力完了が低解像度画像の1フレーム分のデータ出力期間に間に合えば、実施形態1で説明した低遅延処理の流れを妨げることがない。抽出領域の位置や圧縮処理の手法によって1フレーム分のデータ出力期間に間に合わない場合は、最高解像度の画像のみ、他の解像度の画像より1フレーム分、出力を遅らせてもよい。このようにしても、その他の解像度のデータが低遅延で伝送されることにより、表示画像全体として即時性があるような印象を与えることができる。
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。