以下に、本願の開示する生成装置および生成方法の各実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[生成装置の構成]
実施例1に係る生成装置について説明する。図1は、実施例1に係る生成装置の構成の一例を示す図である。本実施例に係る生成装置10は、撮影位置が視差分異なる複数の映像信号を取り込む。また、本実施例に係る生成装置10は、映像信号のうち、少なくとも一方の映像信号から、注目時間を抽出する。また、本実施例に係る生成装置10は、抽出された注目時間について、撮影位置が視差分異なる複数の映像信号によって立体視映像信号を生成する。また、本実施例に係る生成装置10は、注目時間以外の時間について、撮影位置が視差分異なる映像信号のうち一方の映像信号を用いて、一定の奥行きの立体視映像信号を生成する。生成装置10は、第一の撮像装置17および第二の撮像装置18に接続されている。図1に示すように、生成装置10は、入力部11と、I/F(Inter Face)12と、出力部13と、クロック発生部14と、記憶部15と、制御部16とを有する。
入力部11は、制御部16に情報を入力する。例えば、入力部11は、ユーザからの指示を受け付けて、制御部16に、後述の生成処理を実行する指示を入力する。また、入力部11は、ユーザからの指示を受け付けて、制御部16に、後述の第一の立体視映像が表示される時間の開始時刻と終了時刻とを入力する。入力部11のデバイスの一例としては、キーボードやマウスなどが挙げられる。
I/F12は、第一の撮像装置17および第二の撮像装置18と、制御部16との通信を行うための通信インタフェースである。例えば、I/F12は、第一の撮像装置17および第二の撮像装置18から送信された画像データおよび音声データを受信し、受信した画像データおよび音声データを制御部16へ送信する。
出力部13は、情報を出力する。例えば、出力部13は、後述の生成部16gにより生成された立体視映像信号を、図示しない表示装置に送信する。これにより、表示装置では、立体視映像が表示される。
クロック発生部14は、クロック信号を発生する。例えば、クロック発生部14は、第一の撮像装置17から送信された画像データと、第二の撮像装置18から送信された画像データとの同期をとるためのクロック信号を発生し、制御部16へ送信する。かかるクロック信号の周波数の一例としては、27MHzが挙げられる。しかしながら、クロック信号の周波数は、これに限られず、任意の値を採用できる。
第一の撮像装置17および第二の撮像装置18は、所定の距離だけ離れた位置に設けられ、所定の視差分異なる2組の画像データを所定のフレームレートで取得する。また、第一の撮像装置17および第二の撮像装置18は、取得した画像データに対応する音声データを所定のフレームレートで取得する。そして、第一の撮像装置17および第二の撮像装置18は、取得した画像データおよび音声データを生成装置10に送信する。なお、生成装置10では、かかる画像データを、映像に用いる信号として扱うため、以下の説明では、「画像データ」を「映像信号」と表記する場合がある。
記憶部15は、制御部16で実行される各種プログラムを記憶する。また、記憶部15には、後述の取込部16aにより画像データ15aが記憶される。また、記憶部15は、管理テーブル15bを記憶する。また、記憶部15には、後述の取込部16aにより音声データ15cが記憶される。
画像データ15aについて説明する。画像データ15aには、第一の撮像装置17および第二の撮像装置18のそれぞれによって取得された画像データの他に、種々の情報が含まれる。図2は、画像データの一例を示す図である。図2の例では、画像データ15aに、画像データのサイズの情報である「サイズ情報」が含まれる場合が示されている。「サイズ情報」は、後述の取込部16aにより画像データのサイズが検出され、画像データに付加される。
また、図2の例では、画像データ15aに、第一の撮像装置17および第二の撮像装置18のそれぞれが画像データを取得するフレームレートの情報である「フレームレート情報」が含まれる場合が示されている。「フレームレート情報」は、取込部16aにより第一の撮像装置17および第二の撮像装置18のそれぞれのドライバから取得され、画像データに付加される。
また、図2の例では、画像データ15aに、画像データが示す画像の解像度の情報である「解像度情報」が含まれる場合が示されている。「解像度情報」は、取込部16aにより第一の撮像装置17および第二の撮像装置18のそれぞれのドライバから取得され、画像データに付加される。
また、図2の例では、画像データ15aに、画像データを取り込んだ時刻を示すクロックのカウント数である「CLKカウンタ情報」が含まれる場合が示されている。「CLKカウンタ情報」は、後述のクロック発生部14により発生されたクロックのカウント数が、取込部16aによりカウントされたものである。取込部16aにより、かかるカウント数が「CLKカウンタ情報」として、画像データに付加される。
管理テーブル15bについて説明する。管理テーブル15bは、画像中の各物体の奥行きが一定でない第一の立体視映像信号、または、各物体の奥行きが一定である第二の立体視映像信号の時間が登録されるテーブルである。図3は、管理テーブルの一例を示す図である。図3の例では、映像信号が示す映像の背景のうち、第一の立体視映像信号が表示される背景の時間が登録される「シーンチェンジ」の項目が管理テーブル15bに含まれる場合が示されている。図3の例では、「シーンチェンジ」の項目における時間の開始時刻を示す「start」と、終了時刻を示す「end」とが示されている。例えば、図3の例では、第一の立体視映像が表示される背景の時間が、「0」から「135」までの時間、および、「810」から「1200」までの時間である場合が示されている。なお、数値の一例としては、クロックのカウント数を採用できる。また、数値の単位の一例としては、1000000単位を採用できる。「シーンチェンジ」の「start」および「end」の項目は、後述のシーンチェンジ用抽出部16eにより登録される。
また、図3の例では、第二の立体視映像信号が表示される時間が登録される「動きベクトル」の項目が示されている。図3の例では、「動きベクトル」の項目における時間の開始時刻を示す「start」と、終了時刻を示す「end」とが示されている。例えば、図3の例では、第二の立体視映像が表示される時間が、「108」から「135」までの時間、および、「540」から「594」までの時間である場合が示されている。「動きベクトル」の「start」および「end」の項目は、後述の動きベクトル用抽出部16dにより登録される。
また、図3の例では、第一の立体視映像信号が表示される時間が登録される「音声」の項目が示されている。図3の例では、「音声」の項目における時間の開始時刻を示す「start」と、終了時刻を示す「end」とが示されている。例えば、図3の例では、第一の立体視映像が表示される時間が、「500」から「1000」までの時間である場合が示されている。「音声」の「start」および「end」の項目は、後述の音声用抽出部16fにより登録される。
また、図3の例では、第一の立体視映像信号が表示される時間が登録される「ユーザ指示」の項目が示されている。図3の例では、「ユーザ指示」の項目における時間の開始時刻を示す「start」と、終了時刻を示す「end」とが示されている。例えば、図3の例では、第一の立体視映像が表示される時間が、「1300」から「1600」までの時間である場合が示されている。「ユーザ指示」の「start」および「end」の項目は、後述の取込部16aにより登録される。
音声データ15cについて説明する。音声データ15cは、画像データとともに第一の撮像装置17および第二の撮像装置18により取得された音声を示すデータである。
記憶部15は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部15は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
図1の説明に戻り、制御部16は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部16は、取込部16aと、同期部16bと、解析部16cと、動きベクトル用抽出部16dと、シーンチェンジ用抽出部16eと、音声用抽出部16fと、生成部16gとを有する。
取込部16aは、撮影位置が視差分異なる複数の映像信号を取り込む。例えば、取込部16aは、第一の撮像装置17および第二の撮像装置18から送信される画像データを、I/F12を介して受信する。取込部16aは、受信した画像データのサイズを検出する。また、取込部16aは、画像データを送信した第一の撮像装置17または第二の撮像装置18のドライバからフレームレート情報を取得する。また、取込部16aは、画像データを送信した第一の撮像装置17または第二の撮像装置18のドライバから解像度情報を取得する。
また、取込部16aは、クロック発生部14から送信されるクロック信号をカウントする。例えば、取込部16aは、クロック信号の立ち上がりを検出し、立ち上がりを検出するたびに、カウンタの値を1つインクリメントする。
そして、取込部16aは、検出したサイズ、取得したフレームレート情報、解像度情報、画像データを受信したタイミングのカウンタの値を、画像データに付加する。そして、取込部16aは、サイズ、フレーム情報、解像度情報、カウンタの値が付加された画像データを記憶部15に格納する。なお、サイズ、フレーム情報、解像度情報、カウンタの値が付加された画像データは、上述した画像データ15aである。
また、取込部16aは、第一の撮像装置17および第二の撮像装置18から送信される音声データ15cを、I/F12を介して受信する。そして、取込部16aは、受信した音声データ15cを記憶部15に格納する。
また、取込部16aは、入力部11から入力された第一の立体視映像が表示される時間の開始時刻を、管理テーブル15bの「ユーザ指示」の「start」の項目に登録する。また、取込部16aは、入力部11から入力された第一の立体視映像が表示される時間の終了時刻を、管理テーブル15bの「ユーザ指示」の「end」の項目に登録する。これにより、第一の立体視映像が表示される時間が管理テーブル15bに登録される。
同期部16bは、第一の撮像装置17および第二の撮像装置18から送信される画像データの同期を取る。例えば、第一の撮像装置17をユーザの右目に対応する右の撮像装置、第二の撮像装置18をユーザの左目に対応する左の撮像装置とした場合に、同期部16bは、次のような処理を行う。すなわち、同期部16bは、付加された「CLKカウンタ情報」の値が、フレームに対して所定の係数を乗じた値、例えば、フレームの1/2の値以内となる左右の撮像装置から送信される画像データをステレオペアの画像データとする。
図4は、同期部の処理の一例を説明するための図である。図4の例では、第一の撮像装置17から受信した画像データ1Rに付加された「CLKカウンタ情報」の値が、「800000」である場合が示されている。また、図4の例では、第一の撮像装置17から受信した画像データ2Rに付加された「CLKカウンタ情報」の値が、「1700000」である場合が示されている。また、図4の例では、第一の撮像装置17から受信した画像データ3Rに付加された「CLKカウンタ情報」の値が、「2600000」である場合が示されている。また、図4の例では、第一の撮像装置17から受信した画像データ4Rに付加された「CLKカウンタ情報」の値が、「3500000」である場合が示されている。
また、図4の例では、第二の撮像装置18から受信した画像データ1Lに付加された「CLKカウンタ情報」の値が、「0」である場合が示されている。また、図4の例では、第二の撮像装置18から受信した画像データ2Lに付加された「CLKカウンタ情報」の値が、「900000」である場合が示されている。また、図4の例では、第二の撮像装置18から受信した画像データ3Lに付加された「CLKカウンタ情報」の値が、「1800000」である場合が示されている。また、図4の例では、第二の撮像装置18から受信した画像データ4Lに付加された「CLKカウンタ情報」の値が、「2700000」である場合が示されている。また、図4の例では、第二の撮像装置18から受信した画像データ5Lに付加された「CLKカウンタ情報」の値が、「3600000」である場合が示されている。これらの画像データ1R〜4R、1L〜5Lは、取込部16aにより、記憶部15に格納される。
図4の例において、クロックの周波数を27MHzとし、フレームレートを30fpsとした場合には、同期部16bは、次のような処理を行う。すなわち、同期部16bは、「CLKカウンタ情報」の値が、フレーム(27000000/30)に、1/2を乗じた値(450000)以内となる左右の撮像装置から送信される画像データの組をステレオペアの画像データとする。図4の例では、画像データ1Rと、画像データ2Lとの「CLKカウンタ情報」の差が、100000(900000−800000)であり、フレームに1/2を乗じた値以内であるため、同期部16bは、次のような処理を行う。すなわち、同期部16bは、画像データ1Rと画像データ2Lとをステレオペアの画像データとする。また、図4の例では、同期部16bは、「CLKカウンタ情報」の差が、フレームに1/2を乗じた値以内である画像データ2Rと画像データ3Lとをステレオペアの画像データとする。また、図4の例では、同期部16bは、「CLKカウンタ情報」の差が、フレームに1/2を乗じた値以内である画像データ3Rと画像データ4Lとをステレオペアの画像データとする。また、図4の例では、同期部16bは、「CLKカウンタ情報」の差が、フレームに1/2を乗じた値以内である画像データ4Rと画像データ5Lとをステレオペアの画像データとする。
解析部16cは、画像データを解析する。例えば、解析部16cは、第一の撮像装置17または第二の撮像装置18から送信される画像データを解析し、動きベクトルを検出する。また、解析部16cは、前後の画像データの動きベクトルの差分を検出する。また、解析部16cは、シーンチェンジを検出する。ここで、シーンチェンジとは、映像信号が示す映像の背景が切り替わったことを指す。
解析部16cが行う処理について具体例を挙げて説明する。図5A、図5B、図5C、図5Dは、解析部が行う処理の一例を説明するための図である。図5Aおよび図5Bの例では、画像データを複数のブロックMB1、MB2、MB3・・・に分割した場合が示されている。また、図5Cの例では、各ブロックの画素数が256である場合が示されている。また、図5Aおよび図5Bの例に示す画像データは、第一の撮像装置17または第二の撮像装置18のいずれか一方から送信される画像データである。また、図5Bの例に示す画像データは、図5Aの例に示す画像データの所定数のフレームの後、例えば1フレーム後に送信される画像データである。下記の説明では、図5Aの例に示す画像データを「前画像データ」と表記する場合がある。また、図5Bの例に示す画像データを「後画像データ」と表記する場合がある。
解析部16cは、後画像データの複数のブロックのうち未選択のブロックを一つ選択する。そして、解析部16cは、選択したブロックの複数の画素1〜256のそれぞれの画素値と、前画像データの複数のブロックのそれぞれの画素1´〜256´のそれぞれの画素値との差分を算出する。続いて、解析部16cは、算出した差分の総和を、前画像データのブロックごとに算出する。そして、解析部16cは、算出した総和が最も小さい、前画像データのブロックを特定する。そして、解析部16cは、後画像データで選択したブロックの位置と、前画像データで特定したブロックの位置との差分ベクトルを算出し、算出した差分ベクトルを動きベクトルとして検出する。
図5Dの例では、解析部16cが、前画像データでブロックMBnを特定した場合が示されている。また、図5Dの例では、解析部16cが、後画像データでブロックMB1を選択した場合が示されている。図5Dの例では、解析部16cは、差分ベクトル(x1−xn、y1−yn)を動きベクトルとして算出する。なお、図5Dの例では、前画像データにおけるブロックMBnの位置が(xn、yn)で表され、後画像データにおけるブロックMB1の位置が(x1、y1)で表されている。解析部16cは、このような動きベクトルを算出する処理を、後画像データの全てのブロックが選択されるまで繰り返し行う。そして、解析部16cは、このような動きベクトルを算出する処理を、同期部16bでステレオペアとされた画像データのうち、いずれか一方の全ての画像データに対して行う。
そして、解析部16cは、算出した動きベクトルの大きさを算出する。例えば、動きベクトルが(X、Y)で表される場合には、解析部16cは、動きベクトルの大きさSを下記の式(1)を用いて算出する。
S2=X2+Y2・・・式(1)
また、解析部16cは、第一の閾値超えカウンタと、第一の閾値内カウンタと、第一の状態フラグとを有する。第一の状態フラグが示す状態には、閾値超え状態と閾値内状態とがある。第一の状態フラグが示す初期状態は、閾値内状態とする。また、第一の閾値超えカウンタの初期状態の値は0である。また、第一の閾値内カウンタの初期状態の値は0である。解析部16cは、第一の状態フラグが示す状態が閾値内状態である場合に、動きベクトルの大きさが所定の閾値を超えたときには、第一の閾値超えカウンタの値を1つインクリメントする。また、解析部16cは、第一の状態フラグが示す状態が閾値内状態である場合に、動きベクトルの大きさが所定の閾値以下となったときには、第一の閾値超えカウンタの値をクリアする。解析部16cは、第一の閾値超えカウンタの値が1である時間が、所定の時間以上になった場合に、第一の閾値超えカウンタの値が1となった最初の画像データ15aに含まれる「CLKカウンタ情報」を取得する。また、解析部16cは、第一の閾値超えカウンタの値が1である時間が、所定の時間以上になった場合に、第一の閾値超えカウンタの値をクリアする。また、解析部16cは、第一の閾値超えカウンタの値が1である時間が、所定の時間以上になった場合に、第一の状態フラグが示す状態を、閾値超え状態に設定する。
また、解析部16cは、第一の状態フラグが示す状態が閾値超え状態である場合に、動きベクトルの大きさが所定の閾値以下となったときには、第一の閾値内カウンタの値を1つインクリメントする。また、解析部16cは、第一の状態フラグが示す状態が閾値超え状態である場合に、動きベクトルの大きさが所定の閾値を超えたときには、第一の閾値内カウンタの値をクリアする。解析部16cは、第一の閾値内カウンタの値が1である時間が、所定の時間以上になった場合に、第一の閾値内カウンタの値が1となった最初の画像データ15aに含まれる「CLKカウンタ情報」を取得する。また、解析部16cは、第一の閾値内カウンタの値が1である時間が、所定の時間以上になった場合に、第一の閾値内カウンタの値をクリアする。また、解析部16cは、第一の閾値内カウンタの値が1である時間が、所定の時間以上になった場合に、第一の状態フラグが示す状態を、閾値内状態に設定する。
また、解析部16cは、動きベクトルが算出された前画像データの各ブロックの動きベクトルのそれぞれと、動きベクトルが算出された後画像データの各ブロックの動きベクトルのそれぞれとの差分ベクトルを算出する。例えば、解析部16cは、前画像データのブロックMB1の動きベクトル(x10、y10)と、後画像データのブロックMB1の動きベクトル(x11、y11)との差分ベクトル(x10−x11、y10−y11)を算出する。そして、解析部16cは、ブロックごとに算出した差分ベクトルについて、差分ベクトルの大きさをブロックごとに算出する。この差分ベクトルの大きさの算出方法については、上述した動きベクトルの大きさの算出方法と同様である。そして、解析部16cは、ブロックごとに算出した差分ベクトルの大きさの平均値を算出する。例えば、1つの画像データが示す画像におけるブロックの数が50である場合には、解析部16cは、50個のブロックごとに算出した差分ベクトルの大きさの和を50で除することで、差分ベクトルの大きさの平均値を算出する。
また、解析部16cは、第二の閾値超えカウンタと、第二の閾値内カウンタと、第二の状態フラグとを有する。第二の状態フラグが示す状態には、閾値超え状態と閾値内状態とがある。第二の状態フラグが示す初期状態は、閾値内状態とする。また、第二の閾値超えカウンタの初期状態の値は0である。また、第二の閾値内カウンタの初期状態の値は0である。解析部16cは、第二の状態フラグが示す状態が閾値内状態である場合に、差分ベクトルの大きさの平均値が所定の閾値を超えたときには、第二の閾値超えカウンタの値を1つインクリメントする。また、解析部16cは、第二の状態フラグが示す状態が閾値内状態である場合に、差分ベクトルの大きさの平均値が所定の閾値以下となったときには、第二の閾値超えカウンタの値をクリアする。また、解析部16cは、第二の閾値超えカウンタの値が1である時間が、所定の時間以上になった場合に、次のような処理を行う。すなわち、解析部16cは、第二の閾値超えカウンタの値が1となった最初の差分ベクトルに対応する前後の画像データ15aのうち、前の画像データ15aに含まれる「CLKカウンタ情報」を取得する。ここで、この「CLKカウンタ情報」が示す時刻は、シーンチェンジが発生したタイミングとみなすことができる。また、解析部16cは、第二の閾値超えカウンタの値が1である時間が、所定の時間以上になった場合に、第二の閾値超えカウンタの値をクリアする。また、解析部16cは、第二の閾値超えカウンタの値が1である時間が、所定の時間以上になった場合に、第二の状態フラグが示す状態を、閾値超え状態に設定する。
また、解析部16cは、第二の状態フラグが示す状態が閾値超え状態である場合に、差分ベクトルの大きさの平均値が所定の閾値以下となったときには、第二の閾値内カウンタの値を1つインクリメントする。また、解析部16cは、第二の状態フラグが示す状態が閾値超え状態である場合に、差分ベクトルの大きさの平均値が所定の閾値を超えたときには、第二の閾値内カウンタの値をクリアする。また、解析部16cは、第二の閾値内カウンタの値が1である時間が、所定の時間以上になった場合に、第二の閾値内カウンタの値をクリアする。また、解析部16cは、第二の閾値内カウンタの値が1である時間が、所定の時間以上になった場合に、第二の状態フラグが示す状態を、閾値内状態に設定する。
また、解析部16cは、所定のフレームレートで取得した音声データ15cのそれぞれについて、音量の大きさを算出する。また、解析部16cは、所定のフレームレートで取得した音声データ15cのそれぞれについて、音程の大きさを算出する。
また、解析部16cは、第三の閾値超えカウンタと、第三の閾値内カウンタと、第三の状態フラグとを有する。第三の状態フラグが示す状態には、閾値超え状態と閾値内状態とがある。第三の状態フラグが示す初期状態は、閾値内状態とする。また、第三の閾値超えカウンタの初期状態の値は0である。また、第三の閾値内カウンタの初期状態の値は0である。解析部16cは、第三の状態フラグが示す状態が閾値内状態である場合に、音量および音程がそれぞれ所定の閾値を超えたときには、第三の閾値超えカウンタの値を1つインクリメントする。また、解析部16cは、第三の状態フラグが示す状態が閾値内状態である場合に、音量および音程の少なくとも一方が所定の閾値以下となったときには、第三の閾値超えカウンタの値をクリアする。解析部16cは、第三の閾値超えカウンタの値が1である時間が、所定の時間以上になった場合に、第三の閾値超えカウンタの値が1となった最初の音声データ15cに対応する画像データ15aに含まれる「CLKカウンタ情報」を取得する。また、解析部16cは、第三の閾値超えカウンタの値が1である時間が、所定の時間以上になった場合に、第三の閾値超えカウンタの値をクリアする。また、解析部16cは、第三の閾値超えカウンタの値が1である時間が、所定の時間以上になった場合に、第三の状態フラグが示す状態を、閾値超え状態に設定する。
また、解析部16cは、第三の状態フラグが示す状態が閾値超え状態である場合に、音量および音程の少なくとも一方が所定の閾値以下となったときには、第三の閾値内カウンタの値を1つインクリメントする。また、解析部16cは、第三の状態フラグが示す状態が閾値超え状態である場合に、音量および音程がそれぞれ所定の閾値を超えたときには、第三の閾値内カウンタの値をクリアする。解析部16cは、第三の閾値内カウンタの値が1である時間が、所定の時間以上になった場合に、第三の閾値内カウンタの値が1となった最初の音声データ15cに対応する画像データ15aに含まれる「CLKカウンタ情報」を取得する。また、解析部16cは、第三の閾値内カウンタの値が1である時間が、所定の時間以上になった場合に、第三の閾値内カウンタの値をクリアする。また、解析部16cは、第三の閾値内カウンタの値が1である時間が、所定の時間以上になった場合に、第三の状態フラグが示す状態を、閾値内状態に設定する。
動きベクトル用抽出部16dは、解析部16cにより解析された動きベクトルに基づいて、所定の閾値よりも大きな動きベクトルを有する画像が連続する時間を除いて、注目時間を抽出する。ここで、注目時間とは、第一の立体視映像が表示される時間である。大きさが所定の閾値を超えた動きベクトルを有する画像については、映像中の各物体の移動が所定値より大きいと判断することができる。このため、このような映像については、第一の立体視映像と比較して、視聴者などのユーザにとってより負担が小さい第二の立体視映像として生成されるように、動きベクトル用抽出部16dは、管理テーブル15bの第二の立体視映像が生成される時間を登録する。
例えば、動きベクトル用抽出部16dは、解析部16cにより取得された「CLKカウンタ情報」であって、第一の閾値超えカウンタの値が1となった最初の画像データ15aに含まれる「CLKカウンタ情報」を、第一の立体視映像の表示開始時刻として登録する。すなわち、動きベクトル用抽出部16dは、かかる「CLKカウンタ情報」を、管理テーブル15bの「動きベクトル」の「start」に登録する。
また、動きベクトル用抽出部16dは、解析部16cにより取得された「CLKカウンタ情報」であって、第一の閾値内カウンタの値が1となった最初の画像データ15aに含まれる「CLKカウンタ情報」を、第一の立体視映像の表示終了時刻として登録する。すなわち、動きベクトル用抽出部16dは、かかる「CLKカウンタ情報」を、管理テーブル15bの「動きベクトル」の「end」に登録する。
シーンチェンジ用抽出部16eは、解析部16cにより解析されたシーンチェンジに基づいて、注目時間を抽出する。例えば、大きさが所定の閾値を超えた差分ベクトルに対応する画像については、大きさが所定の閾値を超えたタイミングで、シーンチェンジが発生したと判断することができる。ここで、第一の立体視映像のほうが第二の立体視映像よりも臨場感あふれる映像であるがユーザの負担がかかるため、第一の立体視映像と第二の立体視映像とをユーザにとって違和感が少ないタイミングで切り替えることが望まれる。そこで、違和感がより少ないタイミングで第一の立体視映像と第二の立体視映像とを切り替えるため、シーンチェンジ用抽出部16eは、次のような処理を行う。すなわち、シーンチェンジ用抽出部16eは、シーンチェンジが発生したタイミングで第一の立体視映像と第二の立体視映像とが切り替わるように、各映像または一方の映像の表示時間を登録する。
例えば、シーンチェンジ用抽出部16eは、シーンチェンジが発生したタイミングでシーンが切り替わることを利用して、1番目のシーン、3番目のシーン、5番目のシーンなど奇数番目のシーンで第一の立体視映像が行われ、偶数番目のシーンで第二の立体視映像が行われるようにする。具体例を挙げて説明する。シーンチェンジ用抽出部16eは、解析部16cにより取得された「CLKカウンタ情報」であって、上述したような、シーンチェンジが発生したタイミングとみなすことができる「CLKカウンタ情報」が示す時刻をシーンチェンジが発生した時刻と判定する。なお、この「CLKカウンタ情報」は、第二の閾値超えカウンタの値が1となった最初の差分ベクトルに対応する前後の画像データ15aのうち、前の画像データ15aに含まれるものである。そして、シーンチェンジ用抽出部16eは、奇数番目のシーンの開始時刻と終了時刻とを「CLKカウンタ情報」に基づいて算出する。そして、シーンチェンジ用抽出部16eは、算出した奇数番目のシーンの開始時刻を、管理テーブル15bの「シーンチェンジ」の「start」に登録する。また、シーンチェンジ用抽出部16eは、算出した奇数番目のシーンの終了時刻を、管理テーブル15bの「シーンチェンジ」の「end」に登録する。なお、シーンチェンジ用抽出部16eは、偶数番目のシーンの開始時刻と終了時刻とを「CLKカウンタ情報」に基づいて算出し、それぞれ、管理テーブル15bの「シーンチェンジ」の「start」と「end」に登録することもできる。
音声用抽出部16fは、解析部16cにより解析された音声に基づいて、注目時間を抽出する。ここで、音量および音程がそれぞれの所定の閾値を超えた音声データ15cに対応する画像データ15aについては、映像の内容が盛り上がっていると判断することができる。このため、このような映像については、第二の立体視映像と比較して、より臨場感があふれる第一の立体視映像として生成されるように、音声用抽出部16fは、管理テーブル15bの第一の立体視映像が生成される時間を登録する。
例えば、音声用抽出部16fは、解析部16cにより取得され、かつ、第三の閾値超えカウンタの値が1となった最初の音声データ15cに対応する画像データ15aに含まれる「CLKカウンタ情報」を、第一の立体視映像の表示開始時刻として登録する。すなわち、音声用抽出部16fは、かかる「CLKカウンタ情報」を、管理テーブル15bの「音声」の「start」に登録する。
また、音声用抽出部16fは、解析部16cにより取得され、かつ、第三の閾値内カウンタの値が1となった最初の音声データ15cに対応する画像データ15aに含まれる「CLKカウンタ情報」を、第一の立体視映像の表示終了時刻として登録する。すなわち、音声用抽出部16fは、かかる「CLKカウンタ情報」を、管理テーブル15bの「音声」の「end」に登録する。
生成部16gは、注目時間について、撮影位置が視差分異なる複数の映像信号によって立体視映像信号を生成する。また、生成部16gは、注目時間以外の時間について、撮影位置が視差分異なる映像信号のうち一方の映像信号を用いて、一定の奥行きの立体視映像信号を生成する。
例えば、生成部16gは、注目時間については、同期部16bによりステレオペアとされた画像データを用いて、第一の立体視映像の信号を生成する。また、生成部16gは、注目時間以外の時間については、同期部16bによりステレオペアとされた画像データのうち、一方の画像データを用いて、第二の立体視映像の信号を生成する。
第一の立体視映像信号および第二の立体視映像信号の生成方法について、具体例を挙げて説明する。図6A、図6B、図7は、第一の立体視映像の信号を生成する生成方法の一例を説明するための図である。図6Aの例では、ステレオペアの画像データのうち、ユーザの左目に対応する画像データが示す画像が示されている。図6Aの例では、画像中に、人の顔20_L、太陽21_Lが含まれている場合が示されている。図6Bの例では、ステレオペアの画像データのうち、ユーザの右目に対応する画像データが示す画像が示されている。図6Bの例では、画像中に、人の顔20_R、太陽21_Rが含まれている場合が示されている。図7の例では、生成部16gは、これらのステレオペアの画像データを組み合わせて第一の立体視映像の信号を生成する。図7の例では、表示装置23からユーザの左目22Lおよび右目22Rが所定距離離れた場合が示されている。このような場合に、図7の例では、生成部16gは、表示装置23に表示された人の顔20_L、20_Rの視差aと、表示装置23に表示された太陽21_L、21_Rの視差bとが異なるように、第一の立体視映像の信号を生成する。このように、生成部16gは、視差を異ならせることで、表示される各物体の奥行きが異なる映像信号を生成することができる。
図8A、図8B、図9は、第二の立体視映像の信号を生成する生成方法の一例を説明するための図である。図8Aの例では、ステレオペアの画像データが示す画像のうち、一方の画像データであるユーザの左目に対応する画像データが示す画像が示されている。図8Aの例では、画像中に、人の顔20_L、太陽21_Lが含まれている場合が示されている。図8Bの例では、生成部16gが、図8Aの例における人の顔20_L、太陽21_Lを所定の視差a分ずらした人の顔20_L´、太陽21_L´を含む画像の画像データを生成する場合が示されている。図9の例では、生成部16gは、図8Aの例の画像データおよび、図8Bの例の画像データを組み合わせて第二の立体視映像の信号を生成する。図9の例では、表示装置23からユーザの左目22Lおよび右目22Rが所定距離離れた場合が示されている。このような場合に、図9の例では、生成部16gは、表示装置23に表示された人の顔20_L、20_L´の視差aと、表示装置23に表示された太陽21_L、21_L´の視差aとが同一となるように、第二の立体視映像の信号を生成する。このように、生成部16gは、視差を同一とすることで、表示される各物体の奥行きが同一となる映像信号を生成することができる。
生成部16gは、管理テーブル15bに登録された「シーンチェンジ」の「start」から「シーンチェンジ」の「end」までの時間の画像データを用いて、第一の立体視映像を生成する。また、生成部16gは、管理テーブル15bに登録された「音声」の「start」から「音声」の「end」までの時間の画像データを用いて、第一の立体視映像を生成する。また、生成部16gは、管理テーブル15bに登録された「ユーザ指示」の「start」から「ユーザ指示」の「end」までの時間の画像データを用いて、第一の立体視映像を生成する。ただし、生成部16gは、管理テーブル15bに登録された「動きベクトル」の「start」から「動きベクトル」の「end」までの時間については、第二の立体視映像を生成する。また、生成部16gは、「シーンチェンジ」の「start」〜「end」、「音声」の「start」〜「end」、「ユーザ指示」の「start」〜「end」以外の時間については、第二の立体視映像を生成する。
例えば、図3の管理テーブル15bの例では、「シーンチェンジ」の「start」〜「end」が「0」〜「135」、「810」〜「1200」である場合が示されている。また、図3の管理テーブル15bの例では、「動きベクトル」の「start」〜「end」が「108」〜「135」、「540」〜「594」である場合が示されている。また、図3の管理テーブル15bの例では、「音声」の「start」〜「end」が「500」〜「1000」である場合が示されている。また、図3の管理テーブル15bの例では、「ユーザ指示」の「start」〜「end」が「1300」〜「1600」である場合が示されている。図3の例の場合では、生成部16gは、第一の立体視映像信号を生成する時間は、「0」〜「107」、「500」〜「539」、「595」〜「1200」、「1300」〜「1600」であり、その他の時間については、第二の立体視映像信号を生成する。
図10は、生成部が生成する第一の立体視映像および第二の立体視映像の一例を説明するための図である。図10中左側の第一の立体視映像では、人の顔20_L、20_Rの視差aと、太陽21_L、21_Rの視差bとが異なるため、各物体の奥行きが異なる。一方、図10中右側の第二の立体視映像では、人の顔20_L、20_L´の視差aと、太陽21_L、21_Rの視差aとが同一であるため、各物体の奥行きが同一となる。また、生成部16gは、第一の立体視映像で用いた視差aを、第二の立体視映像を生成する際に用いているため、第一の立体視映像から第二の立体視映像に切り替わった際に、ユーザの焦点の移動がより少なくなる。このため、生成部16gは、ユーザの疲労度がより抑制される立体視映像を生成することができる。
そして、生成部16gは、生成した立体視映像信号を出力部13に送信する。なお、生成部16gは、シーンチェンジが発生したタイミングで、第一の立体視映像と第二の立体視映像とを切り替える際に、黒画面を挿入することができる。これにより、映像の切り替えの違和感を緩和することができる。
制御部16は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
[処理の流れ]
次に、本実施例に係る生成装置10の処理の流れを説明する。図11は、実施例1に係る生成処理の手順を示すフローチャートである。この生成処理の実行タイミングとしては様々なタイミングが考えられる。例えば、生成処理は、生成装置10の電源がONの間、第一の撮像装置17および第二の撮像装置18から画像データおよび音声データが送信されるたびに実行される。
図11に示すように、取込部16aは、画像データおよび音声データを取り込み、記憶部15に格納する(ステップS101)。同期部16bは、「CLKカウンタ情報」の値が、フレームに対して所定の係数を乗じた値となる左右の撮像装置から送信される画像データをステレオペアの画像データとする(ステップS102)。解析部16cは、画像データが示す画像における動きベクトルを検出する(ステップS103)。
解析部16cは、算出した動きベクトルの大きさを算出する(ステップS104)。動きベクトル用抽出部16dは、動きベクトルに基づいて、所定の閾値よりも大きな動きベクトルを有する画像が連続する時間を除いて、注目時間を抽出する(ステップS105)。解析部16cは、前画像データのブロックの動きベクトルと、後画像データのブロックの動きベクトルとの差分ベクトルの大きさの平均値を算出し、算出した平均値からシーンチェンジを検出する(ステップS106)。シーンチェンジ用抽出部16eは、シーンチェンジに基づいて、注目時間を抽出する(ステップS107)。音声用抽出部16fは、音声に基づいて、注目時間を抽出する(ステップS108)。生成部16gは、注目時間が第一の立体視映像であり、その他の時間が第二の立体視映像である立体視映像信号を生成し(ステップS109)、処理を終了する。
[実施例1の効果]
上述してきたように、本実施例に係る生成装置10は、第一の撮像装置17または第二の撮像装置18からの映像信号から、注目時間を抽出する。また、本実施例に係る生成装置10は、注目時間について、撮影位置が視差分異なる複数の映像信号によって立体視映像信号を生成し、注目時間以外の時間について、撮影位置が視差分異なる映像信号のうち一方の映像信号を用いて、一定の奥行きの立体視映像信号を生成する。したがって、本実施例に係る生成装置10によれば、注目時間以外の時間では、ユーザにとって疲労度がより少ない一定の奥行きの立体視映像を示す立体視映像信号が生成されるので、ユーザの負担をより軽減することができる。
また、本実施例に係る生成装置10は、映像信号が示す画像ごとに動きベクトルが所定の閾値よりも大きいか否かを判定し、所定の閾値よりも大きな動きベクトルを有する画像が連続する時間を除いて、第一の立体視映像が表示される注目時間を抽出する。よって、本実施例に係る生成装置10によれば、動きベクトルに基づいて、第一の立体視映像が表示される注目時間を抽出することができる。
また、本実施例に係る生成装置10は、映像信号が示す画像ごとにシーンチェンジが発生したか否か判定し、シーンチェンジが発生した画像に基づいて、第一の立体視映像が表示される注目時間の開始時刻または終了時刻を抽出する。よって、本実施例に係る生成装置10によれば、シーンチェンジに基づいて、第一の立体視映像が表示される注目時間を抽出することができる。
また、本実施例に係る生成装置10は、映像信号が示す画像ごとに音声が所定の閾値よりも大きいか否かを判定し、所定の閾値よりも大きな音声を有する画像が連続する時間を、注目時間として抽出する。よって、本実施例に係る生成装置10によれば、音声に基づいて、第一の立体視映像が表示される注目時間を抽出することができる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
たとえば、実施例1では、映像信号から解析される動きベクトル、シーンチェンジ、音声に基づいて、注目時間を抽出する場合について例示した。しかしながら、開示の装置はこれに限られない。例えば、開示の装置は、映像信号から解析される動きベクトル、シーンチェンジ、音声の少なくとも一つに基づいて、注目時間を抽出することができる。
また、実施例1において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。例えば、利用者などが、図示しない操作受付装置を介して、生成処理の実行指示を入力してもよい。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。例えば、ステップS106とステップS107での処理をまとめてもよい。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。例えば、ステップS106、107での処理と、ステップS108での処理との順番を変更してもよい。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取込部16aと、同期部16bとを統合して、新たな取込部とすることができる。また、解析部16cと、動きベクトル用抽出部16dと、シーンチェンジ用抽出部16eと、音声用抽出部16fとを統合して、新たな抽出部とすることができる。
[生成プログラム]
また、上記の実施例で説明した生成装置10の生成処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図12を用いて、上記の実施例1で説明した生成装置10と同様の機能を有する生成プログラムを実行するコンピュータの一例を説明する。
図12は、生成プログラムを実行するコンピュータを示す図である。図12に示すように、実施例2におけるコンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340を有する。これら300〜340の各部は、バス350を介して接続される。
ROM320には、上記の実施例1で示す取込部16a、同期部16b、解析部16c、動きベクトル用抽出部16d、シーンチェンジ用抽出部16e、音声用抽出部16f、生成部16gと同様の機能を発揮する生成プログラム320aが予め記憶される。なお、生成プログラム320aについては、適宜分離しても良い。例えば、同期部16b、解析部16cと同様の機能を発揮するプログラムと、取込部16a、動きベクトル用抽出部16d、シーンチェンジ用抽出部16e、音声用抽出部16f、生成部16gと同様の機能を発揮するプログラムとに分離しても良い。
そして、CPU310が、生成プログラム320aをROM320から読み出して実行する。
そして、HDD330には、画像データ、管理テーブル、音声データが設けられる。これら画像データ、管理テーブル、音声データのそれぞれは、画像データ15a、管理テーブル15b、音声データ15cのそれぞれに対応する。
そして、CPU310は、画像データ、管理テーブル、音声データを読み出してRAM340に格納する。さらに、CPU310は、RAM340に格納された画像データ、管理テーブル、音声データを用いて、生成プログラムを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納されなくともよく、全てのデータのうち処理に用いられるデータのみがRAM340に格納されれば良い。
なお、上記した生成プログラムについては、必ずしも最初からROM320に記憶させなくともよい。
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
(付記1)撮影位置が視差分異なる複数の映像信号を取り込む取込部と、
前記映像信号のうち、少なくとも一方の映像信号から、注目時間を抽出する抽出部と、
前記注目時間について、撮影位置が視差分異なる複数の映像信号によって立体視映像信号を生成し、前記注目時間以外の時間について、前記撮影位置が視差分異なる映像信号のうち一方の映像信号を用いて、一定の奥行きの立体視映像信号を生成する生成部と
を有することを特徴とする生成装置。
(付記2)前記抽出部は、前記映像信号から解析される動きベクトル、シーンチェンジ、音声のいずれか一つまたは複数に基づいて、前記注目時間を抽出することを特徴とする付記1に記載の生成装置。
(付記3)前記抽出部は、前記映像信号が示す画像ごとに動きベクトルが所定の閾値よりも大きいか否かを判定し、前記所定の閾値よりも大きな動きベクトルを有する画像が連続する時間を除いて、前記注目時間を抽出する付記1または2に記載の生成装置。
(付記4)前記抽出部は、前記映像信号が示す画像ごとにシーンチェンジが発生したか否か判定し、前記シーンチェンジが発生した画像に基づいて、前記注目時間の開始時刻または終了時刻を抽出する付記1、2または3に記載の生成装置。
(付記5)前記抽出部は、前記映像信号が示す画像ごとに音声が所定の閾値よりも大きいか否かを判定し、前記所定の閾値よりも大きな音声を有する画像が連続する時間を、前記注目時間として抽出する付記1から4のいずれか一つに記載の生成装置。
(付記6)撮影位置が視差分異なる複数の映像信号から立体視映像信号を生成するコンピュータが実行する生成方法であって、
撮影位置が視差分異なる複数の映像信号を取り込み、
前記撮影位置が視差分異なる映像信号のうち、少なくとも一方の映像信号から、注目時間を抽出し、
抽出された注目時間について、撮影位置が視差分異なる複数の映像信号によって立体視映像信号を生成し、前記注目時間以外の時間について、前記撮影位置が視差分異なる映像信号のうち、一方の映像信号を用いて、一定の奥行きの立体視映像信号を生成する
ことを特徴とする生成方法。
(付記7)前記注目時間を抽出する方法は、前記映像信号から解析される動きベクトル、シーンチェンジ、音声のいずれか一つまたは複数に基づいて、前記注目時間を抽出することを特徴とする付記6に記載の生成方法。
(付記8)前記注目時間を抽出する方法は、前記映像信号が示す画像ごとに動きベクトルが所定の閾値よりも大きいか否かを判定し、前記所定の閾値よりも大きな動きベクトルを有する画像が連続する時間を除いて、前記注目時間を抽出する付記6または7に記載の生成方法。
(付記9)前記注目時間を抽出する方法は、前記映像信号が示す画像ごとにシーンチェンジが発生したか否か判定し、前記シーンチェンジが発生した画像に基づいて、前記注目時間の開始時刻または終了時刻を抽出する付記6、7または8に記載の生成方法。
(付記10)前記注目時間を抽出する方法は、前記映像信号が示す画像ごとに音声が所定の閾値よりも大きいか否かを判定し、前記所定の閾値よりも大きな音声を有する画像が連続する時間を、前記注目時間として抽出する付記6から9のいずれか一つに記載の生成方法。