(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-02
(45)【発行日】2024-08-13
(54)【発明の名称】画像処理装置、画像処理方法、及び、プログラム
(51)【国際特許分類】
H04N 5/92 20060101AFI20240805BHJP
H04N 5/93 20060101ALI20240805BHJP
H04N 7/18 20060101ALI20240805BHJP
G06T 1/00 20060101ALI20240805BHJP
G06T 19/00 20110101ALI20240805BHJP
G06F 16/78 20190101ALI20240805BHJP
【FI】
H04N5/92 010
H04N5/93 050
H04N7/18 U
G06T1/00 200A
G06T19/00 A
G06F16/78
(21)【出願番号】P 2022205952
(22)【出願日】2022-12-22
(62)【分割の表示】P 2018172675の分割
【原出願日】2018-09-14
【審査請求日】2023-01-18
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】前田 充
【審査官】鈴木 順三
(56)【参考文献】
【文献】国際公開第2018/043225(WO,A1)
【文献】特開2004-260868(JP,A)
【文献】特開2017-220703(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/76 - 5/956
H04N 7/18
G06T 1/00
G06T 19/00 - 19/20
G06F 16/00 - 16/958
(57)【特許請求の範囲】
【請求項1】
複数の撮影装置によって撮影された映像データに基づいて生成された仮想視点映像を取得する取得手段と、
前記仮想視点映像に、当該仮想視点映像の
生成に関する権利の情報を付与する付与手段と
を有することを特徴とする画像処理装置。
【請求項2】
前記付与手段は、取得された前記仮想視点映像のフレーム単位で前記
仮想視点映像の生成に関する権利の情報を付与することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記
仮想視点映像の生成に関する権利の情報は、
当該仮想視点映像の生成に関する権利を有する権利者の数を示す情報を含む
ことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記
仮想視点映像の生成に関する権利の情報は、
当該仮想視点映像の生成に関する権利を有する権利者の名称を示す情報を含む
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記付与手段は、前記仮想視点映像に、仮想視点映像の生成システムに関する情報を付与する
ことを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
【請求項6】
前記仮想視点映像の生成システムに関する情報は、仮想視点映像の生成システムの名称を示す情報を含むことを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記仮想視点映像に付与される情報は、ISOBMFFを用いて付与される
ことを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項8】
前記仮想視点映像に付与される情報は、Exifを用いて付与される
ことを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項9】
前記仮想視点映像に付与される情報は、H.265符号化方式を用いて符号化された仮想視点映像のビットストリームに付与される
ことを特徴とする請求項1乃至8のいずれか1項に記載の画像処理装置。
【請求項10】
複数の撮影装置によって撮影された映像データに基づいて生成された仮想視点映像及び当該仮想視点映像の生成に用いた3Dモデルを取得する取得手段と、
前記仮想視点映像及び前記3Dモデルを含む映像ファイルを生成する生成手段と、
を有し、
前記生成手段は、前記映像ファイルに前記3Dモデル単位の、撮影される対象に関する情報を付与する、ことを特徴とする画像処理装置。
【請求項11】
前記撮影される対象に関する情報は、撮影される対象の名称、撮影される対象群の名称の少なくとも1つを含む、ことを特徴とする請求項10に記載の画像処理装置。
【請求項12】
複数の撮影装置によって撮影された映像データに基づいて生成された仮想視点映像を取得する取得工程と、
前記仮想視点映像に、当該仮想視点映像の
生成に関する権利の情報を付与する付与工程と
を含むことを特徴とする画像処理方法。
【請求項13】
前記付与工程にて、取得された前記仮想視点映像のフレーム単位で前記
仮想視点映像の生成に関する権利の情報を付与することを特徴とする請求項
12に記載の画像処理方法。
【請求項14】
前記
仮想視点映像の生成に関する権利の情報は、
当該仮想視点映像の生成に関する権利を有する権利者の数を示す情報を含む
ことを特徴とする請求項
12又は
13に記載の画像処理方法。
【請求項15】
前記
仮想視点映像の生成に関する権利の情報は、
当該仮想視点映像の生成に関する権利を有する権利者の名称を示す情報を含む
ことを特徴とする請求項
12乃至
14のいずれか1項に記載の画像処理方法。
【請求項16】
前記付与工程にて、前記仮想視点映像に、仮想視点映像の生成システムに関する情報を付与する
ことを特徴とする請求項
12乃至
15のいずれか1項に記載の画像処理方法。
【請求項17】
前記仮想視点映像の生成システムに関する情報は、仮想視点映像の生成システムの名称を示す情報を含むことを特徴とする請求項
16に記載の画像処理方法。
【請求項18】
複数の撮影装置によって撮影された映像データに基づいて生成された仮想視点映像及び当該仮想視点映像の生成に用いた3Dモデルを取得する取得工程と、
前記仮想視点映像及び前記3Dモデルを含む映像ファイルを生成する生成工程と、
を含み、
前記生成工程にて、前記映像ファイルに前記3Dモデル単位の、撮影される対象に関する情報を付与する、ことを特徴とする画像処理方法。
【請求項19】
前記撮影される対象に関する情報は、撮影される対象の名称、撮影される対象群の名称の少なくとも1つを含む、ことを特徴とする請求項18に記載の画像処理方法。
【請求項20】
コンピュータを、請求項1乃至
11のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想視点映像を生成する画像処理装置に関する。
【背景技術】
【0002】
昨今、複数のカメラを異なる位置に設置して、複数視点で同期撮影し、当該撮影により得られた複数視点画像を用いて仮想視点映像を生成する技術が注目されている。上記のようにして複数視点画像から仮想視点映像を生成する技術によれば、例えば、サッカーやバスケットボールのハイライトシーンを様々な角度から視聴することが出来るため、通常の映像と比較してユーザに高臨場感を与えることが出来る。
【0003】
非特許文献1には、複数の視点(カメラ)で対象シーンを撮影した画像から任意の視点位置の画像を合成する方法について記載されている。この中で、Model Based Rendering技術が紹介されている。この方式でも対象を取り囲むように多数のカメラが配置される。この方式によって3次元モデルを復元することで、任意の視点からの映像の合成が可能になるとともに、選手の位置や動きを再現できるのでスポーツ分析にも有用である。
【先行技術文献】
【非特許文献】
【0004】
【文献】稲本他、「視点位置の内挿に基づく3次元サッカー映像の仮想視点鑑賞システム」映像情報メディア学会 Vol.58 No.4 pp529-539 2004
【文献】Rec. ITU-T H.265 V3 (04/2015)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1に記載の技術では、仮想視点映像を生成するための映像データはそれぞれの装置内部で管理、保管、処理されるため、当該映像データを相互利用することは困難であった。
【0006】
本発明は、上記課題に鑑みてなされたものであり、その目的は、仮想視点映像を生成するための映像データの相互利用を容易にすることにある。
【課題を解決するための手段】
【0007】
本発明の一実施形態において、複数の撮影装置によって撮影された映像データに基づいて生成された仮想視点映像を取得する取得手段と、前記仮想視点映像に、当該仮想視点映像の生成に関する権利の情報を付与する付与手段とを有する。
【発明の効果】
【0008】
本発明によれば、仮想視点映像を生成するための映像データの相互利用を容易にすることが可能になる。
【図面の簡単な説明】
【0009】
【
図1】第1の実施形態における画像処理装置100を含むシステムの構成例を示す構成図である。
【
図2】第1の実施形態におけるISOBMFFファイルの構造の一例を示す図である。
【
図3】第1の実施形態におけるEXIFファイルの構造の一例を示す図である。
【
図4】第1の実施形態におけるFVVI IFDのタグ情報の構成の一例を示す図である。
【
図5】第1の実施形態における映像ファイル生成処理のフローチャートである。
【
図6】第1の実施形態における別の映像ファイル生成処理のフローチャートである。
【
図7】第1の実施形態における画像処理装置100を含むシステムの別の構成例を示す構成図である。
【
図8】第2の実施形態における画像処理装置400を含むシステムの構成例を示す構成図である。
【
図9】第2の実施形態におけるH.265符号化方式のビットストリームの構成例を示す図である。
【
図10】第2の実施形態におけるVUI Parametersの構成例vui_parameters()を示す図である。
【
図11】第2の実施形態におけるSEI messageの構成例sei_payload()を示す図である。
【
図12】第2の実施形態におけるfree_viewpoint_video_info(payloadSize)の構成例を示す図である。
【
図13】第2の実施形態におけるfree_viewpoint_video_info(payloadSize)の構成例を示す図である。
【
図14】第2の実施形態におけるfree_viewpoint_video_info(payloadSize)の構成例を示す図である。
【
図15】第2の実施形態におけるfree_viewpoint_video_info(payloadSize)の構成例を示す図である。
【
図16】第2の実施形態におけるPPSの構造の一例を示す図である。
【
図17】第2の実施形態におけるpic_free_viewpoint_info()の詳細を示す図である。
【
図18】第2の実施形態におけるpic_free_viewpoint_info()の詳細を示す図である。
【
図19】第2の実施形態におけるpic_free_viewpoint_info()の詳細を示す図である。
【
図20】第2の実施形態におけるビットストリーム生成処理を表すフローチャートである。
【
図21】第3の実施形態における画像処理装置500を含むシステムの構成例を示す構成図である。
【
図22】第3の実施形態における表示画面の例を表す図である。
【
図23】各実施形態における画像処理装置に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0010】
以下、添付の図面を参照して、本発明の実施形態について詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【0011】
(第1の実施形態)
図1は、第1の実施形態における画像処理装置100を含むシステムの構成例を示す。本システムでは、競技場(スタジアム)やコンサートホールなどの施設に複数のカメラを設置し、撮影が行われる。
【0012】
画像処理装置100は、カメラ101a~z、入力部102、環境情報取得部103、端末104、ファイル生成部105、メタ情報付与部106、出力部107、保存部108を有する。
【0013】
カメラ101a~zは、被写体を囲むように配置され、同期をとって撮影が行われる。ただし、カメラの台数、配置は限定されない。カメラ101a~zは、ネットワークを介して画像処理装置100の入力部102に接続されている。
【0014】
入力部102は、カメラ101a~zで撮影された映像データの入力を受け付け、ファイル生成部105に出力する。
【0015】
端末104は、ユーザから映像データに関するメタ情報の入力を受け付け、入力されたメタ情報をメタ情報付与部106に出力する。入力されるメタ情報は、例えば、撮影設定情報、撮影状況情報、撮影対象情報、及び撮影権利情報の少なくとも1つを含む。メタ情報の詳細は後述する。
【0016】
環境情報取得部103は、環境情報を取得するセンサー等からなり、例えば、撮影当日の気象情報等を取得し、メタ情報付与部106に出力する。なお、環境情報の取得方法はこれに限定されず、例えば、インターネット等を通じて外部から入手してもよい。
【0017】
ファイル生成部105は、入力された映像データに対してファイル化に必要なヘッダデータを付与し、映像ファイルを生成する。以下では、ISO/IEC 14496-12(MPEG-4 Part12) ISO base media format(以下、ISOBMFF)規格を例として用い、映像ファイルのフォーマットについて説明する。ただし、映像ファイルのフォーマットはこれに限定されない。
【0018】
図2は、本実施形態におけるISO BMFFファイルの構成例を示す。
【0019】
図2(a)において、ISO BMFFファイル200は、ftyp(File Type Compatibility Box)201、moov(Movie Box)202のボックスを含む。また、ISO BMFFファイル200は、meta(metadata)203、mdat(Media Data Box)204のボックスを含む。ボックスftyp201には、ファイルフォーマットの情報が含まれ、例えばファイルがISO BMFFファイルであることや、ボックスのバージョン、映像ファイルを作成したメーカ名称等が記載される。ボックスmoov202には、メディアデータ(映像データ)を管理するための時間軸や、アドレスなどの情報が含まれる。ボックスmeta203には、映像データのメタ情報が含まれる。ボックスmeta203に含まれるメタ情報については後述する。ボックスmdat204には、実際に動画として再生されるメディアデータ(映像データ)が含まれる。
【0020】
図1に戻り、メタ情報付与部106は、環境情報取得部103や端末104から受け取った情報に基づいて、メタ情報を示すボックスmeta203を生成する。ファイル生成部105は、ボックスmeta203を用いて、映像ファイルにメタ情報を付与することができる。ボックスmeta203の構成例を、以下に示す。
aligned(8) class MetaBox (handler_type)extends FullBox(‘meta‘, version = 0, 0) {
HandlerBox(handler_type) theHandler;
PrimaryItemBox primary_resource; // optional
DataInformationBox file_locations; // optional
ItemLocationBox item_locations; // optional
ItemProtectionBox protections; // optional
ItemInfoBox item_infos; // optional
IPMPControlBox IPMP_control; // optional
ItemReferenceBox item_refs; // optional
ItemDataBox item_data; // optional
Filming_scene_information;// optional
Filming_condition; // optional
Filming_object; // optional
Filming_right_holder; // optionl
Box other_boxes[]; // optional
}
Filming_scene_informationが撮影設定情報を、Filming_conditionが撮影状況情報を、Filming_objectが撮影対象情報を、Filming_right_holderが撮影権利情報を表す。
【0021】
撮影設定情報を表すFilming_scene_informationボックスの構成を以下に示す。
Box Type: ‘ffsi‘
Container: Meta box (‘meta‘)
Mandatory: No
Quantity: Zero or one
【0022】
また、そのシンタックスを以下に示す。
aligned(8) class ItemLocationBox extends FullBox(‘ffsi‘,version,0) {
unsigned int(32) offset_size;
unsigned int(32) length_size;
unsigned int(32) base_offset_size;
if (version == 1)
unsigned int(32) index_size;
else
unsigned int(32) reserved;
unsigned int(16)num_free_viewpoint_original_video_info;
for (i=0; i<num_free_viewpoint_original_video_info; i++)
unsigned char(8) free_viewpoint_original_video_info[i];
unsigned int(32) category_code;
unsigned int(64) filming_date_time_code;
unsigned int(16) num_char_place_name;
for (i=0; i<num_char_place_name;i++)
unsigned char(8) place_name[i];
unsigned int(16) num_char_convention_name;
for (i=0; i<num_char_convention_name;i++)
unsigned char(8) convention_name[i];
unsigned int(16) num_char_event_name;
for (i=0; i<num_char_event_name;i++)
unsigned char(8) event_name[i];
unsigned int(16) num_char_stage_name;
for (i=0; i<num_char_stage_name;i++)
unsigned char(8) stage_name[i];
unsigned int(16) num_char_place_name;
for (i=0; i<num_char_place_name;i++)
unsigned char(8) place_name[i];
unsigned char(8) free_viewpoint_filming_info_code
if (free_viewpoint_filming_info_code && 0x01) { // システム有無
unsigned int(16) num_char_filming_system_info_minus1;
for (i=0; i<=num_char_ filming_system_info_minus1;i++)
unsigned char(8) filming_system_information[i];
} // システム有無
if (free_viewpoint_filming_info_code && 0x02) { // 0x02
unsigned int(16) max_num_target_point_minus1;
unsigned int(16) num_target_point_minus1;
for (i=0; i<=num_target_point_minus1;i++) { // 注視点
unsigned int(16) target_point_name_length;
for (j=0; j<target_point_name_length;j++)
unsigned char(8) target_point_name[i][j];
for (j=0; j<3)
signed int(16) target_point_location[i][j];
unsigned int(16) num_camera_minus1;
unsigned int(16) max_camera_name_length;
unsigned int(16) camera_name_length;
for (j=0; j<=num_camera_minus1;j++){ // カメラ
for (k=0; k<camera_name_length;k++)
unsigned int(16) camera_name[i][j][k];
for (k=0; k<3)
unsigned int(16) camera_location[i][j][k];
for (k=0; k<4)
unsigned int(16) camera_attitude[i][j][k];
unsigned int(16) num_char_camera_type_info;
for (k=0; k<num_char_camera_type;k++)
unsigned char(8) camera_type_information[i][j][k];
unsigned int(16) num_char_lenz_type_info;
for (k=0; k<num_char_lenz_type;k++)
unsigned char(8) lenz_type_information[i][j][k];
unsigned int(16) focus_distance[i][j];
} // カメラ
} // 注視点
} // 0x02
}
【0023】
上記シンタックスにおいて、offset_size、length_size、base_offset_size、index_size、reservedは上記規格の規格書に記載されており、ボックスの大きさ等に関係する符号である。
【0024】
num_free_viewpoint_original_video_infoは、仮想視点映像生成に必要な映像データ等に関する情報の文字列の長さを表す符号である。free_viewpoint_original_video_infoは、素材データに関する情報の文字列を格納する配列である。
【0025】
category_codeは撮影の対象を表すコードであり、スポーツ、エンタメ、監視などの撮影の目的の分類を表す。例えば、スポーツは0x0001、エンタメは0x0002等となる。
【0026】
filming_date_time_codeは撮影日時を表す符号であり、撮影開始時刻等を表す。撮影日時は、例えば、W3C-DTFのフォーマットで表す。撮影日時は、例えば、西暦年、月、日、時、分、秒、ミリ秒で表す。撮影日時は、例えば、UTC(協定世界時=グリニッジ標準時)との時差(時、分)で表す。filming_date_time_codeは、このような撮影日時を表すビット列に、予備のビットを加えて統合したビット列として符号とする。
【0027】
num_char_place_nameは、撮影場所を表す文字列の長さを表す符号である。place_nameは撮影場所の名称を表す文字列であり、例えば、“東京サッカースタジアム”といった文字列である。なお、撮影場所の情報は文字列に限定されない。また、言語を表すためのコードを付加してもよい。
【0028】
num_char_convemtion_nameは、撮影の概要、すなわち、大会や講演の名称等を表す文字列の長さを表す符号である。convention_nameは撮影イベントの名称を表す文字列であり、例えば、“第xxx回オリンピック”といった文字列である。なお、撮影イベントの情報は文字列に限定されない。また、言語を表すためのコードを付加してもよい。
【0029】
num_char_event_nameは、撮影内容の詳細に関する情報の文字列の長さを表す符号である。撮影内容の詳細とは、例えば、競技種目であったり、ミュージカルやコンサートのような内容の種類であったりする。event_nameは撮影内容の詳細を表す文字列であり、例えば、“サッカー”、“卓球”、“100m背泳ぎ”、”ミュージカル“、“コンサート”、“マジックショー”といった文字列である。
【0030】
num_char_stage_nameは、撮影対象の段階の詳細に関する情報の文字列の長さを表す符号である。stage_nameは撮影段階の詳細を表す文字列であり、例えば、“予選”、“1回戦”、“準決勝”、”決勝“、“リハーサル”、“本番”、“第xx回講演”といった文字列である。
【0031】
free_viewpoint_filming_info_codeは、撮影システム等に関する情報を表す符号である。例えば、1ビット目が1であれば、撮影システムに関する情報があり、2ビット目が1であれば、カメラに関する情報があるといったことを表す。
【0032】
num_char_filming_system_info_minus1は、撮影システムの名称を表す文字列の長さを表す符号である。filming_system_informationは撮影システムの名称を表す文字列である。
【0033】
max_num_target_point_minus1は、本撮影システムで使用するカメラの向く注視点の数の最大値を表す値である。num_target_point_minus1は本撮影システムで使用するカメラの向く注視点の数を表す符号である。
【0034】
target_point_name_lengthは、注視点を識別するための名称等を表す文字列の長さを表す符号である。注視点を識別するための名称等を設定しない場合は文字列の長さを0にする。target_point_nameはそれぞれの注視点を識別するための名称等を表す。
【0035】
target_point_locationは注視点の位置を3次元座標で表すための符号である。
【0036】
num_camera_minus1は、本撮影システムで使用するカメラの台数を表す符号である。max_camera_name_lengthはそれぞれのカメラを識別するための名称等を付与するための文字列の長さの最大値を表す符号である。camera_name_lengthはカメラを識別するための名称等を表す文字列の長さを表す符号である。camera_nameはカメラを識別するための名称等を表す。また、単にカメラを識別するための番号であってもよい。
【0037】
camera_locationは当該カメラの位置を3次元の位置で表す。camera_attitudeはカメラの姿勢を表す符号である。
【0038】
num_char_camera_type_infoはカメラ自体の情報、例えば、会社名や機種名を表す文字列の長さを表す符号である。camera_type_informationはカメラ自体の情報、例えば、会社名や機種名を表す文字列である。
【0039】
num_char_lenz_type_infoはカメラに装着されているレンズの情報、例えば、会社名や機種名を表す文字列の長さを表す符号である。lenz_type_informationはレンズ自体の情報、例えば、会社名や機種名を表す文字列である。focus_distanceはレンズの撮影時の画角を表すための焦点距離を表す符号である。
【0040】
次に、撮影状況情報を表すFilming_conditionボックスの構成を以下に示す。
Box Type: ‘ffci‘
Container: Meta box (‘meta‘)
Mandatory: No
Quantity: Zero or one
【0041】
また、そのシンタックスを以下に示す。
aligned(8) class ItemLocationBox extends FullBox(‘ffci‘,version,0) {
unsigned int(32) offset_size;
unsigned int(32) length_size;
unsigned int(32) base_offset_size;
if (version == 1)
unsigned int(32) index_size;
else
unsigned int(32) reserved;
unsigned int(8) room_code;
signed int(16) illuminant_code;
if (illuminant_code > 0) {
if (illuminant_code == 1 ){
unsigned int(16) sun_direction;
unsigned int(8) sun_altituude;
}
unsigned int(32) weather_code;
signed int(16) templature_C_value;
unsigned int(8) humidity_value;
unsigned int(8) wind_direction;
unsigned int(8) wind_force;
}
}
【0042】
上記シンタックスにおいて、room_codeは、場所の屋内外等の情報を表す符号である。例えば、その値が0であれば状況が不明であることを表す。また、その値が1であれば屋外であり、2であればドームであり、3であれば屋内であるといったことを表す。
【0043】
illuminant_codeは、光源に関する情報を表す符号である。例えば、太陽光であれば、その値を1とする。また、蛍光灯などの屋内照明には光源ごとにそのコードを割り当てる。また、その値が0であれば光源に関する情報はないことを表す。
【0044】
sun_directionは太陽(光源)の方向を表す符号である。例えば、北を0とし、その方位を360度で表す値でも良い。sun_altituudeは太陽の高度を表す値である。例えば、水平方向に対する角度で表すこともできる。
【0045】
weather_codeは天候を表す符号である。例えば、その値が0であれば晴天を表し、1から10の値は雲量を表してもよい。また、その上の桁に雨や雪などの情報を割り当てても良い。
【0046】
templature_C_valueは気温を表し、例えば、摂氏で表すものとする。また、気温が計測されていない場合には0xFFFFとすることで、気温が計測されている場合と計測されていない場合を区別することができる。humidity_valueは湿度を%で表す。
【0047】
wind_directionは風向を表し、例えば、北を0とし、その方位を360度で表した場合の値でもよい。wind_forceは風力を表す値である。または、風速を表しても良い。
【0048】
次に、撮影対象情報を表すFilming_objectボックスの構成を以下に示す。
Box Type: ‘ffoi‘
Container: Meta box (‘meta‘)
Mandatory: No
Quantity: Zero or one
【0049】
また、そのシンタックスを以下に示す。
aligned(8) class ItemLocationBox extends FullBox(‘ffoi‘,version,0) {
unsigned int(32) offset_size;
unsigned int(32) length_size;
unsigned int(32) base_offset_size;
if (version == 1)
unsigned int(32) index_size;
else
unsigned int(32) reserved;
unsigned int(16) max_num_object;
unsigned int(16) num_object;
for (i=0; i<=num_object;i++) {
unsigned int(16) num_char_object_info;
for (j=0; j<num_char_object_info;j++)
unsigned char(8) object_information[j][i];
}
}
【0050】
上記シンタックスにおいて、max_num_objectは、撮影された対象の数の最大値を表す値である。num_objectはフレーム単位や、映像のクリップ単位、映像全体を単位として、実際に撮影されている対象の数である。
【0051】
num_char_object_infoは対象を表す文字列の長さを表す値である。object_informationは対象を表す文字列である。
【0052】
次に、撮影権利情報を表すFilming_right_holderボックスの構成を以下に示す。
Box Type: ‘ffri‘
Container: Meta box (‘meta‘)
Mandatory: No
Quantity: Zero or one
【0053】
また、そのシンタックスを以下に示す。
aligned(8) class ItemLocationBox extends FullBox(‘ffri‘,version,0) {
unsigned int(32) offset_size;
unsigned int(32) length_size;
unsigned int(32) base_offset_size;
if (version == 1)
unsigned int(32) index_size;
else
unsigned int(32) reserved;
unsigned int(16) max_num_right_holder;
unsigned int(16) num_right_holder;
for (i=0; i<num_right_holder; i++) {
unsigned int(16) num_char_right_holder;
for (j=0; j<num_char_right_holder_info;j++)
unsigned char(8) right_holder_information[i][j]
}
}
【0054】
上記シンタックスにおいて、max_num_right_holderは、撮影に関する権利を有する個人、団体(以下、権利者と総称する)の数の最大値を表す値である。num_right_holderはフレーム単位や、映像のクリップ単位、映像全体を単位として、実際に権利を有する権利者の数である。
【0055】
num_char_right_holderは権利者の名称等を表す文字列の長さを表す値である。
【0056】
right_holder_informationは権利者の名称等を表す文字列である。
【0057】
以上説明したように、ファイル生成部105は、メタ情報付与部106が生成したボックスmeta203を使用して、ISO BMFFファイル200にメタ情報を付与することができる。
【0058】
また、
図2(b)に示すように、一般的なボックスmeta203の代わりに、専用のボックスを新たに設けてもよい。例えば、fvvi(Free Viewpoint Video Info)205といったボックスタイプを新たに設けることができる。
【0059】
上記のボックスfvvi205は、映像(シーケンス)全体、複数フレームからなる映像クリップ単位、またはフレーム単位に付与することができる。すなわち、
図2(c)に示すように、ボックスfvvi205をボックスmoov202に付与してもよい。また、ボックスmoov202の中にさらなるボックスmoovが含まれている場合には、ボックスfvvi205をその中のボックスmoovに付与してもよい。さらには、
図2(d)に示すように、ボックスfvvi205を複数に分けて付与してもよい。
【0060】
図1に戻り、出力部107は、メタ情報が付加された映像ファイルを外部に出力する。保存部108は、メタ情報が付加された映像ファイルを記憶媒体に保存する。
【0061】
なお、ファイルフォーマットはISO BMFFに限定されない。例えば、静止画を格納する「カメラ映像機器工業会規格 DC-008-2012 デジタルスチルカメラ用画像ファイルフォーマット規格 Exif2.3」(以下、Exif規格)を用いることも可能である。
図3は、本実施形態におけるExif規格を用いたファイル(EXIFファイル)のフォーマットの例を示す。ファイルフォーマット300では、仮想視点映像に関するメタ情報が、Free Viewpoint Video Information Image File Directory(以下、FVVI IFD)301として定義される。FVVI IFD301は、撮影設定情報、撮影状況情報、撮影対象情報、撮影権利情報を格納している。
図4は、本実施形態におけるFVVI IFD301のタグ情報の構成の一例を示す。FVVI IFD301には、上述したISO BMFFの各符号がそれぞれのタグに格納されている。
【0062】
図5は、本実施形態における映像ファイル生成処理のフローチャートを示す。フローチャートに示される一連の処理は、後述するように、画像処理装置100のCPU801がROM803に格納されている制御プログラムをRAM802に読み込み、実行することにより行われる。あるいはまた、フローチャートにおけるステップの一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。各処理の説明における記号「S」は、当該フローチャートにおけるステップを意味する。その他のフローチャートについても同様である。
【0063】
まず、S1000において、メタ情報付与部106は、端末104からユーザが入力した撮影設定情報を取得する。撮影設定情報は、撮影場所、撮影日時、イベント内容、カメラ情報の少なくとも1つを含む。また、カメラ情報は、カメラの注視点の位置、カメラの台数、カメラの配置、カメラの姿勢、焦点距離の少なくとも1つを含む。
【0064】
S1001において、メタ情報付与部106は、端末104からユーザが入力した撮影権利情報を取得する。撮影権利情報は、撮影に関する権利者の情報を含む。
【0065】
S1002において、メタ情報付与部106は、端末104からユーザが入力した撮影対象情報を取得する。撮影対象情報は、撮影される対象に関する情報、例えば、選手名やチーム内の役割を含む。すなわち、撮影対象情報は、撮影される対象の名称、対象群の名称の少なくとも1つを含む。
【0066】
S1003において、メタ情報付与部106は、環境情報取得部103から、環境情報取得部103が取得した撮影状況情報、例えば、光源、気温、湿度、風向、風力の情報を取得する。すなわち、撮影状況情報は、撮影時の気象情報を含む。
【0067】
なお、S1000からS1003の順序は限定されるものではなく、任意の順序でよい。また、S1000からS1003のうちの少なくとも1つのステップを実行して、撮影設定情報、撮影権利情報、撮影対象情報、及び撮影状況情報のうちの少なくとも1つをメタ情報付与部106が取得するようにしてもよい。
【0068】
S1004において、ファイル生成部105は、映像ファイルのヘッダデータを生成する。例えば、ファイル生成部105は、ISO BMFFではボックスftyp201を生成し、Exifでは、0thIFDを生成する。生成されたヘッダデータはメタ情報付与部106に入力され、ファイル生成部105でファイルに格納される。
【0069】
S1005において、メタ情報付与部106は、取得された撮影設定情報、撮影権利情報、撮影対象情報、撮影状況情報の少なくとも1つをメタ情報として、ファイルに付与する。ファイル生成部105は、付与されたメタ情報をファイルに格納する。なお、メタ情報は、ISO BMFFではボックスmetaやボックスffviを使用して付与される。また、ExifではFVVI IFDを使用して付与される。
【0070】
S1006において、入力部102は、カメラ101a~zから映像データの入力を受け付け、ファイル生成部105に入力する。
【0071】
S1007において、ファイル生成部105は、入力部102を介して入力された映像データをファイルに格納する。例えば、ISO BMFFでは、ファイル生成部105は、映像データをボックスmdatとして、必要な符号を付与してファイルに格納する。また、Exifでは、ファイル生成部105は、映像データをImage Dataとしてファイルに格納する。さらに、映像データを格納したファイルは、出力部107で外部に出力されたり、保存部108で保存されたりする。なお、ファイル生成部105は、映像データを符号化してもよい。
【0072】
S1008において、カメラ101a~zからの映像データの入力が終了したり、端末104から終了の指示が入力されたりした場合には、処理を終了する。そうでない場合はS1006に戻り、次の映像データの処理を行う。
【0073】
以上説明したように、本実施形態における映像ファイル生成処理が行われる。本実施形態によると、ISOBMFFやExifを利用して、映像データにメタ情報を付与し、映像ファイルを生成することができる。
【0074】
図6は、本実施形態における別の映像ファイル生成処理のフローチャートを示す。以下では、時刻ごとに変化する撮影状況情報をフレーム単位で映像データに付与する例を説明する。なお、
図5のフローチャートにおけるステップと同じ処理が実行されるステップについては同じ番号を付し、詳細な説明は省略する。
【0075】
図6のフローチャートでは、S1006で入力部102が映像データをファイル生成部105に出力すると、S1013に進む。
【0076】
S1013において、メタ情報付与部106は、環境情報取得部103から撮影状況情報、例えば、光源、気温、湿度、風向、風力を取得する。
【0077】
S1014において、メタ情報付与部106は、取得した撮影状況情報からメタ情報を生成し、映像ファイルに付与する。メタ情報は、ISO BMFFではボックスmetaやボックスffviを使用して映像ファイルに付与することができる。また、ExifではFVVI IFDを使用して付与することができる。
【0078】
このように、
図6に示した映像ファイル生成処理では、時刻ごとに変化する撮影状況情報をフレーム単位で付与することができる。また、別のメタ情報もフレーム単位で付与してもよい。例えば、カメラが被写体に追従して動くシステムにおいては、その注視点が移動することになり、これを撮影設定情報として映像ファイルに付与することができる。また、撮影対象情報は、映像に移っている対象のみに限定してフレーム単位で付与することができる。
【0079】
以上説明したように、本実施形態によると、生成した映像ファイルを共通の映像ファイルとして相互利用できるようにして、撮影設定情報、撮影権利情報、撮影対象情報、撮影状況情報のうち少なくとも1つをメタ情報として付与することができる。これにより、映像データの検索、取得を効率よく行うことができる。
【0080】
なお、本実施形態における画像処理装置100は、
図1で説明した物理的な構成に限定されず、論理的に構成されてもよい。
【0081】
また、本実施形態では、データを暗号化して保存してもよい。その場合、データが暗号化されているか否かを判別する符号を含んでもよい。
【0082】
また、本実施形態では、撮影設定情報のうちカメラの設置情報を、ファイル生成部105が、例えばカメラ101a~zのそれぞれから、カメラのID等の番号と共に映像データと合わせて入力部102を介して取得してもよい。
【0083】
また、本実施形態では、ファイル生成部105は、入力された映像データをそのままファイルに格納したが、符号化して格納するようにしてもよい。
【0084】
また、本実施形態では、メタ情報付与部106は、入力されたメタ情報をそのままファイルに格納したが、符号化して格納してもよい。
【0085】
また、
図7に示すように、3Dモデル生成部110が仮想視点映像を生成するために必要な処理を行った映像ファイルにメタ情報を付与してもよい。なお、同図において、
図1と同様の構成要素については同じ番号を付し、説明を省略する。例えば、3Dモデル生成部110は、入力部102から入力された複数の映像データから対象が映っている領域をそれぞれ切り出し、3Dモデルを生成する。ファイル生成部115は、入力部102から入力された映像データに加えて、3Dモデル生成部110から取得した3Dモデルを映像ファイルに加える。また、ファイル生成部115は、3Dモデル単位のメタ情報(撮影対象情報)をメタ情報付与部106から取得し、映像ファイルに付与する。このように、本実施形態では、3Dモデルを利用する場合にも、仮想視点映像の生成時や表示時に簡単に撮影対象情報を多重化して表示することが可能になる。
【0086】
(第2の実施形態)
第2の実施形態では、メタ情報を用いて映像データを検索し、検索結果を用いて仮想視点映像を生成する画像処理について説明する。
【0087】
図8は、本実施形態における画像処理装置400を含むシステムの構成例を示す。画像処理装置400は、外部の保存装置401に接続されている。保存装置401は、例えば第1の実施形態の
図1に記載されている保存部108と同じように、メタ情報が付与された映像ファイルを格納している。本実施形態は、説明を容易にするために、ISOBMFFで記述された映像ファイルを例として説明する。
【0088】
画像処理装置400は、インターフェース(I/F)部402、端末403、メタ情報比較部404、ファイル選択部405を有する。さらに、画像処理装置400は、ファイル解析部406、メタ情報バッファ407、仮想視点映像生成部408、メタ情報付与部409、出力部410、保存部411を有する。画像処理装置400は、保存装置401から所望の映像データを読出し、仮想視点映像を生成する。
【0089】
端末403は、ユーザから、仮想視点映像を生成するための映像データに関する検索条件の入力を受け付ける。端末403は、例えば、「○○大会の決勝戦のデータ」といったキーワードを検索条件として受け付ける。端末403は、受け付けたキーワードをメタ情報比較部404に入力する。
【0090】
端末403から検索の開始が発せられると、I/F部402は、保存装置401に格納されている映像ファイルのヘッダデータから、ボックスmeta203のデータ(すなわち、メタ情報)を映像ファイル単位で読み込む。読み込まれたボックスmeta203のデータは、メタ情報比較部404に入力される。
【0091】
メタ情報比較部404は、I/F部402から入力されたメタ情報と、端末403から入力されたキーワードを比較する。メタ情報比較部404は、キーワードに合致するメタ情報がある場合、ファイル選択部405に、当該メタ情報を有する映像ファイルの情報、例えば、ファイルパスやファイル名を通知する。
【0092】
ファイル選択部405は、通知された映像ファイルの情報に基づいて仮想視点映像の生成に使用する映像ファイルを選択し、I/F部402を介して保存装置401にアクセスする。保存装置401は、アクセスにしたがって選択された映像ファイルを読出し、I/F部402を介して、ファイル解析部406に入力する。
【0093】
ファイル解析部406は入力された映像ファイルを解析し、映像ファイルからメタ情報を分離して、分離したメタ情報をメタ情報バッファ407に格納し、仮想視点映像の生成に必要な映像データを仮想視点映像生成部408に入力する。
【0094】
仮想視点映像生成部408は、入力された映像データを使用して、ユーザによって指定された仮想視点からの映像(すなわち、仮想視点映像)を生成する。仮想視点映像生成部408は、生成された仮想視点映像を符号化する。ここでは、H.265符号化方式を用いて符号化する例を説明するが、これに限定されない。例えば、H.264や、MPEG-1,2、4などの符号化方式でもよい。MPEG-1,2、4では例えば、user_data()に格納してもよいし、新たなヘッダを定義してもよい。H.265符号化方式で符号化された仮想視点映像のビットストリームは、メタ情報付与部409に入力される。
【0095】
メタ情報付与部409は、メタ情報バッファ407に格納された元の映像データのメタ情報を読出し、入力されたビットストリームに付与する。また、メタ情報付与部409は、生成された映像ファイル(ビットストリーム)が仮想視点映像であることを示すメタ情報を追加して付与する。さらには、メタ情報付与部409は、仮想視点映像を生成したシステムの情報やその権利者に関する情報も付加することができる。
【0096】
出力部410は、メタ情報が付与された仮想視点映像のビットストリームを外部に出力する。保存部411は、メタ情報が付与された仮想視点映像のビットストリームを記憶媒体に保存する。
【0097】
図9は、本実施形態におけるH.265符号化方式で符号化されたビットストリーム900の構成例を表す図である。
【0098】
ビットストリーム900は、先頭にシーケンス全体を表すシーケンスヘッダ(seq_parameter_set_rbsp()、以下SPS)901を含む。SPS901の中には、画像に対して便利な情報を付与するVUI(Video Usability Information) Parameters902が含まれる。
図10は、本実施形態におけるVUI Parameters902の構成例vui_parameters()を示す。なお、aspect_ratio_info_present_flg符号からlog2_max_mv_length_vertical符号までの詳細な説明は、非特許文献2に記載されているので省略する。本実施形態では、log2_max_mv_length_vertical符号に続けて、以下の符号が付与される。
【0099】
free_viewpoint_video_flag符号は本ビットストリームが仮想視点映像であるか否かを表すフラグである。その値が1であれば、本ビットストリームの映像は仮想視点映像であることを示し、0であれば、通常のカメラ等で撮影された映像であることを示す。なお、本実施形態が適用されないビットストリームではこのフラグは存在しないので、その場合はその値は0とされる。
【0100】
free_viewpoint_original_video_info_flag符号は本ビットストリームの仮想視点映像を生成した元の素材となる映像データが存在するか否かを表すフラグである。その値が1であれば、本ビットストリームの仮想視点映像を生成した素材となる映像データが存在することを示し、0であれば、その素材となる映像データが無いか、あるいはアクセスできないことを表す。
【0101】
free_viewpoint_filming_scene_info_flag符号は本ビットストリームの仮想視点映像を生成した元の素材となる映像データの撮影時の設定に関する撮影設定情報に関するメタ情報が存在するか否かを表すフラグである。その値が1であれば、本ビットストリームの仮想視点映像を生成した元の素材となる映像データを撮影した時の撮影設定情報がメタ情報として存在することを示す。0であれば、そのメタ情報は存在しないことを表す。
【0102】
free_viewpoint_filming_condition_info_flag符号は本ビットストリームの仮想視点映像を生成した元の素材となる映像データ撮影時の状況に関する撮影状況情報のメタ情報が存在するか否かを表すフラグである。その値が1であれば、本ビットストリームの仮想視点映像を生成した元の素材となる映像データを撮影した時の撮影状況情報がメタ情報として存在することを示す。0であれば、そのメタ情報は存在しないことを表す。
【0103】
free_viewpoint_filmed_object_info_flag符号は本ビットストリームの仮想視点映像を生成した元の素材となる映像データの撮影時の対象に関する撮影対象情報に関するメタ情報が存在するか否かを表すフラグである。その値が1であれば、本ビットストリームの仮想視点映像を生成した元の素材となる映像データを撮影した時の撮影対象情報がメタ情報として存在することを示す。0であれば、そのメタ情報は存在しないことを表す。
【0104】
free_viewpoint_right_holder_info_flag符号は本ビットストリームの仮想視点映像を生成した元の素材となる映像データの撮影時の権利者に関する撮影権利情報に関するメタ情報が存在するか否かを表すフラグである。その値が1であれば、本ビットストリームの仮想視点映像を生成した元の素材となる映像データを撮影した時の撮影権利者情報がメタ情報として存在することを示す。0であれば、そのメタ情報は存在しないことを表す。
【0105】
図9に戻り、本実施形態におけるビットストリーム900は、さらに、付加拡張情報(Supplemental enhancement information:以下、SEIと略す)message903を含むことができる。
図11は、本実施形態におけるSEI message903の構成例sei_payload()を示す。その種類(payloadType)とその大きさ(payloadSize)によって内容が決定される。なお、alternative_depth_info(payloadSize)までの詳細は、非特許文献2の7.3.5章 Supplemental enhancement information message syntaxを参照されたい。
【0106】
本実施形態では、メタ情報のpayloadTypeを「201」と定義する。payloadTypeが「201」の場合に、free_viewpoint_video_info(payloadSize)によって、payloadSizeが表す大きさのメタ情報が読み出される。
【0107】
図12~
図15は、free_viewpoint_video_info(payloadSize)の構成例を表す。本実施形態では、ISO BMFFに記載された符号と同じ符号は同様の意味を持つので、詳細な説明は省略する。
【0108】
図12は、free_viewpoint_video_info(payloadSize)の符号のうち、以下の符号を示す。
【0109】
free_viewpoint_original_video_info_flag符号は、
図10に示した上記VUI Parameters902の同名の符号と同様に機能する。その値が1であれば、本ビットストリームの仮想視点映像を生成した元の素材となる映像データが存在することを示し、0であれば、その素材となる映像データが無いか、あるいはアクセスできないことを表す。その値が0であれば、num_free_viewpoint_original_video_info_minus1符号や、free_viewpoint_original_video_info符号は省略される。
【0110】
free_viewpoint_filming_scene_info_flag符号は、
図10に示した上記VUI Parameters902の同名の符号と同様に機能する。その値が1であれば、本ビットストリームの仮想視点映像を生成した元の素材となる映像データを撮影した時の設定に関する撮影設定情報に関するメタ情報が存在することを示す。その値が0であれば、続くcategory_code以下の撮影設定情報は存在しない。なお、図面を簡易にするため
図12では、num_char_place_name_minus1以下の撮影設定情報に関するメタ情報は省略されている。
【0111】
free_viewpoint_filming_condition_info_flag符号は、
図10に示した上記VUI Parameters902の同名の符号と同様に機能する。その値が1であれば、本ビットストリームの仮想視点映像を生成した元の素材となる映像データを撮影した時の状況に関する撮影状況情報に関するメタ情報が存在することを示す。その値が0であれば、続くilluminant_code以下の撮影状況情報は存在しない。
【0112】
図13及び
図14は、free_viewpoint_video_info(payloadSize)の符号のうち、
図12に示した符号に続く以下の符号を示す。
【0113】
free_viewpoint_filmed_object_info_flag符号は、
図10に示した上記VUI Parameters902の同名の符号と同様に機能する。その値が1であれば、本ビットストリームの仮想視点映像を生成した元の素材となる映像データを撮影した時の対象に関する撮影対象情報に関するメタ情報が存在することを示す。その値が0であれば、続くmax_num_object_minus1以下の撮影状況情報は存在しない。なお、図面を簡易にするため
図13では、object_information以下の撮影状況情報に関するメタ情報は省略されている。
【0114】
free_viewpoint_filming_right_holder_info_flag符号は、
図10に示した上記VUI Parameters902の同名の符号と同様に機能する。その値が1であれば、本ビットストリームの仮想視点映像を生成した元の素材となる映像データを撮影した時の権利者に関する撮影権利者情報に関するメタ情報が存在することを示す。その値が0であれば、続くmax_num_right_holder_minus1以下の撮影権利情報は存在しない。
【0115】
free_viewpoint_filming_camera_info_flag符号は本ビットストリームの仮想視点映像の素材となる映像データを撮影した時のカメラの設定に関する撮影設定情報に関するメタ情報が存在するか否かを表すフラグである。その値が1であれば、本ビットストリームの仮想視点映像を生成した元の素材となる映像データを撮影した時のカメラの設定に関する撮影設定情報がメタ情報として、存在することを示す。0であれば、そのメタ情報は存在しないことを表す。すなわち、free_viewpoint_filming_system_info_flag以下の符号は存在しない。
【0116】
free_viewpoint_filming_system_info_flag符号は本ビットストリームの仮想視点映像の素材となる映像データを撮影した時のシステムに関する撮影設定情報に関するメタ情報が存在するか否かを表すフラグである。その値が1であれば、本ビットストリームの仮想視点映像を生成した元の素材となる撮影した時のシステムに関する撮影設定情報がメタ情報として、存在することを示す。0であれば、そのメタ情報は存在しないことを表す。すなわち、num_char_filming_system_info_minus1以下の符号は存在しない。
【0117】
図15は、free_viewpoint_video_info(payloadSize)の符号のうち、
図14に示した符号に続く以下の符号を示す。
【0118】
free_viewpoint_pruduct_info_flag符号は本ビットストリームの仮想視点映像を生成した時に関する生成設定情報に関するメタ情報が存在するか否かを表すフラグである。生成設定情報は、生成したシステムや生成された映像データの権利者に関する情報を含むが、これに限定されない。その値が1であれば、本ビットストリームの仮想視点映像を生成した時の生成設定情報がメタ情報として存在することを示す。0であれば、そのメタ情報は存在しないことを表す。すなわち、free_viewpoint_product_system_info_flag以下の符号は存在しない。
【0119】
free_viewpoint_product_system_info_flag符号は本ビットストリームの仮想視点映像を生成した時に使用したシステムに関するメタ情報が存在するか否かを表すフラグである。この値が1であれば、本ビットストリームの仮想視点映像を生成した時の生成システム情報がメタ情報として存在することを示す。0であれば、そのメタ情報は存在しないことを表す。すなわち、num_char_product_system_info_minus1以下の符号は存在しない。
【0120】
num_char_product_system_info_minus1は、仮想視点映像を生成したシステムの名称を表す文字列の長さを表す符号である。
【0121】
product_system_informationは、仮想視点映像を生成したシステムの名称を表す。なお、仮想視点映像を生成したシステムに関する情報は名称に限定されず、型番やバージョンであっても良い。
【0122】
free_viewpoint_product_right_holder_info_flag符号は本ビットストリームの仮想視点映像を生成した時の権利者に関する生成権利情報に関するメタ情報が存在するか否かを表すフラグである。その値が1であれば、本ビットストリームの仮想視点映像を生成した時の権利者に関する生成権利情報に関するメタ情報が存在することを示す。その値が0であれば、続くmax_num_product_right_holder_minus1以下の生成権利情報は存在しない。
【0123】
max_num_product_right_holder_minus1は、仮想視点映像生成に関する権利を有する権利者の数の最大値を表す値である。num_product_right_holder_minus1は、フレーム単位や、映像のクリップ単位、または映像全体を単位として、実際に権利を有する権利者の数を表す。
【0124】
num_char_product_right_holder_info_minus1は、仮想視点映像生成に関する権利者の名称等を表す文字列の長さを表す値である。
【0125】
product_right_holder_informationは、仮想視点映像生成に関する権利者の名称等の文字列を表す。
【0126】
図9に戻り、実際の仮想視点映像の映像データの符号が続き、ビットストリームを完結する。
【0127】
図20は、本実施形態におけるビットストリーム生成処理のフローチャートを示す。
【0128】
S2000において、メタ情報比較部404は、端末104から、ユーザが入力した検索条件であるキーワードを取得する。
【0129】
S2001において、I/F部402は、保存装置401に格納された映像ファイルのヘッダデータから、ボックスmeta203のデータ(すなわち、メタ情報)を映像ファイル単位で取得する。取得したデータは、メタ情報比較部404に入力される。
【0130】
S2002において、メタ情報比較部404は、I/F部402から入力されたメタ情報と端末403から取得したキーワード(すなわち、検索条件)を比較する。メタ情報比較部404は、キーワードに合致するメタ情報がある場合、ファイル選択部405に当該メタ情報を有する映像ファイルの情報を通知する。
【0131】
S2003において、ファイル選択部405は、通知された映像ファイルの情報に基づいて仮想視点映像の生成に使用する映像ファイルを選択し、I/F部402を介して保存装置401にアクセスする。保存装置401は、アクセスにしたがって選択された映像ファイルを読出し、I/F部402を介してファイル解析部406に入力する。
【0132】
S2004において、ファイル解析部406は、入力された映像ファイルを解析してメタ情報を分離し、分離したメタ情報をメタ情報バッファ407に格納する。また、ファイル解析部406は、入力された映像ファイルの映像データを仮想視点映像生成部408に入力する。
【0133】
S2005において、メタ情報付与部409は、メタ情報バッファ407に格納された元の映像のメタ情報を読出し、ビットストリームのヘッダに付与する。
【0134】
S2006において、仮想視点映像生成部408は、ユーザ等から指定された仮想視点からの映像(すなわち、仮想視点映像)を生成する。
【0135】
S2007において、仮想視点映像生成部408は、生成された仮想視点映像を符号化し、ビットストリームに格納する。
【0136】
S2008において、映像データの入力が終了したり、端末403から終了の指示が入力されたりした場合に処理を終了する。そうでなければS2006に戻り、次の映像データを処理する。
【0137】
以上説明したように、本実施形態によると、仮想視点映像を共通のビットストリームとして相互利用できるようにして、撮影設定情報、撮影権利情報、撮影対象情報、撮影状況情報のうち少なくとも1つをメタ情報として付与することができる。これにより、仮想視点映像の検索、取得を効率よく行うことができる。また、ビットストリームが仮想視点映像であるか否かの情報を付与することで、仮想視点映像を対象とした検索機能も実現が可能になる。
【0138】
なお、複数の映像ファイルを保存装置401から読み出して仮想視点映像を生成した場合、各映像ファイルに対応する仮想視点映像にそれぞれのメタ情報を付与しても良いし、複数の映像ファイルのメタ情報をまとめて1つのメタ情報として付与してもよい。
【0139】
また、第1の実施形態の
図6のフローチャートのように、フレーム単位でメタ情報を付与することも可能である。例えば、フレーム単位を表すピクチャのヘッダに映像データが仮想視点映像であるか否かの情報を付与することも可能である。
【0140】
図9に戻り、本実施形態におけるビットストリーム900は、ピクチャのヘッダ(pic_parameter_set_rbsp()、以下PPS)904を含むことができる。
図16は、本実施形態におけるPPS904の構造の一例を示す。
【0141】
pic_free_viewpoint_info_flag符号は、ピクチャ単位で、仮想視点映像の撮影、生成に関するメタ情報があるか否かを表す。その値が1であれば、pic_free_viewpoint_info()に仮想視点映像の撮影、生成に関するメタ情報が含まれていることを示す。
図17~
図19は、本実施形態におけるpic_free_viewpoint_info()の詳細を示す。基本的には、
図12~
図15の内容をフレームごとに設定できるように、フレーム単位で判定が必要なフラグに関してはpic_の接頭詞を付与して、同じ内容を符号化してビットストリームに付与される。これらによってフレーム単位でメタ情報の更新が可能になる。
【0142】
また、各フレームに付与されるpic_free_viewpoint_info_flag符号を、シーケンスや複数フレームで構成されるチャプタのような単位で纏めてVUI parameterの部分に含めても良い。それにより、シーケンス内の一部が仮想視点映像であった場合、各フレームを復号しなくても当該情報を取得することができる。
【0143】
また、本ビットストリームをボックスmdatに格納してISO BMFFファイルを構成してもよい。
【0144】
(第3の実施形態)
本実施形態では、メタ情報によるビットストリームの検索を行い、検索結果を表示する画像処理装置について説明する。
【0145】
図21は、本実施形態における画像処理装置500を含むシステムの構成例を示す。画像処理装置500は、外部の保存装置550、及び保存装置551に接続されている。保存装置550は、例えば、第2の実施形態の
図8に記載されている保存装置401と同じように、仮想視点映像を生成するために必要な映像ファイルを格納している。保存装置551は、例えば、第2の実施形態の
図8に記載されている保存部411と同じように、仮想視点映像の映像ファイルやビットストリームを格納している。本実施形態では、保存装置550に格納された映像ファイルから生成された仮想視点映像を、H.265符号化方式で符号化したビットストリームを例にとって説明する。
【0146】
画像処理装置500は、インターフェース(I/F)部502、メタ情報比較部505、データ選択部506、ビットストリーム解析部507、メタ情報バッファ508、復号部509、表示部520を有する。画像処理装置500は、保存装置550から所望の映像ファイルを読出し、表示を行うとともに、別途、仮想視点映像を表示する。
【0147】
端末503は、ユーザから、仮想視点映像のビットストリームに関する検索条件(例えば、キーワード)の入力を受け付け、メタ情報比較部505に出力する。
【0148】
端末503から検索の開始が発せられると、I/F部502は保存装置551から、ビットストリームのヘッダ情報とメタ情報を読出し、メタ情報比較部505に入力する。さらに、本実施形態で生成されていない他のH.265符号化方式で符号化されたビットストリームも含まれるものとする。
【0149】
メタ情報比較部505は、I/F部502から入力されたメタ情報と、端末503から入力されたキーワードを比較する。メタ情報比較部505は、端末503から入力されたキーワードに合致するメタ情報が存在する場合、データ選択部506に、当該メタ情報を有するビットストリームの情報、例えば、データパスやビットストリーム名を通知する。
【0150】
データ選択部506は、通知されたビットストリームの情報に基づいて、表示するビットストリームを選択し、I/F部502を介して保存装置551にアクセスする。保存装置551は、アクセスにしたがって目的のビットストリームを読出す。読み出されたビットストリームはI/F部502を介して、ビットストリーム解析部507に入力される。
【0151】
ビットストリーム解析部507は、入力されたビットストリームのヘッダを復号して解析し、ヘッダからメタ情報を分離して、メタ情報バッファ508に格納する。また、ビットストリーム解析部507は、映像データのビットストリームを復号部509に入力する。復号部509は、入力されたビットストリームを復号して、表示部520に入力する。また、復号部509は、選択されたビットストリームが複数存在する場合はそれぞれのビットストリームを復号し、表示部520に入力する。表示部520は、復号された1または複数のビットストリームを表示する。
【0152】
また、ビットストリーム解析部507は、分離したメタ情報から当該映像データが仮想視点映像であることが判明した場合、これを表示部520に通知する。表示部520は通知に応じて、表示されている映像が仮想視点映像であることを表示する。
【0153】
図22は、本実施形態における表示部520の表示画面を示す。表示画面600において、ユーザは端末503を用いて、検索条件となるキーワードをキーワードウィンドウ603a~cに入力し、検索ボタン604を押下して映像(ビットストリーム)の検索を行う。
【0154】
表示部520は、検索結果として選択された複数の映像601a~dを、候補ウィンドウ602に表示する。さらに、表示部520は、候補ウィンドウ602に表示されている複数の映像の中から、ユーザが端末503を用いて選択した1つの映像を、表示ウィンドウ605に表示する。表示ウィンドウ605は表示バー606を有する。表示バー606は、フレーム単位で当該映像が仮想視点映像である部分を太線で示す。映像が仮想視点映像であるか否かは、ストリーム単位ではVUI Parameters902のfree_viewpoint_video_flag符号の有無や、SEI_message903を参照することで判断することができる。また、フレーム単位ではPPS904のpic_free_viewpoint_info_flag符号の値で判断することができる。
【0155】
映像のうち、仮想視点映像である部分が再生される場合、表示部520は表示ウィンドウ605に、表示されている映像が仮想視点映像であることを示すマーカ607を表示する。マーカ607は、候補ウィンドウ602において、複数の映像601a~dのうち、仮想視点映像を含むものに表示してもよい。
【0156】
以上説明したように、本実施形態における画像処理装置500は、メタ情報によるビットストリームの検索を行い、検索結果を表示することができる。
【0157】
また、本実施形態における画像処理装置500を含むシステムでは、検索結果として表示中の映像について、ユーザの指示に応じて再度、メタ情報を用いて仮想視点映像の生成を行うことができる。データ選択部506は、仮想視点映像を再生成する映像データに対応するメタ情報を、メタ情報バッファ508から読み出す。データ選択部506は、ビットストリームのfree_viewpoint_original_video_info_flag符号の値を参照し、本ビットストリームの仮想視点映像を生成した素材となる映像データが存在するか判定する。上述したように、free_viewpoint_original_video_info_flag符号の値が1であれば、素材となる映像データが存在することを示し、0であれば、素材となる映像データが無いか、あるいはアクセスできないことを示す。映像データが存在する場合、free_viewpoint_original_video_info_flag符号やpic_free_viewpoint_original_video_info符号を参照して、映像データの保存場所を特定する。
【0158】
データ選択部506は、I/F部502を介して保存装置550の特定された保存場所にアクセスし、仮想視点映像を生成した素材となる映像データを読出し、画像処理装置400に入力する。画像処理装置400は、入力された映像データを使用して仮想視点映像を再生成し、I/F部502を介して画像処理装置500に入力する。すなわち、画像処理装置400は、
図8のI/F部402を介して入力された映像データを使用して、仮想視点映像を再生成する。また、画像処理装置400は、生成した仮想視点映像のビットストリームを出力部410を介して、
図21のI/F部502に入力する。画像処理装置500は、入力されたビットストリームをビットストリーム解析部507、復号部509によって処理し、表示部520に表示する。
【0159】
なお、上記実施形態では、画像処理装置500が、素材となる映像データを取得して画像処理装置400に入力したが、画像処理装置500は、画像処理装置400に映像データの保存場所を通知するだけでもよい。その場合、画像処理装置400が当該保存場所に保存された映像データを取得して、仮想視点映像を再生成することができる。
【0160】
このように、本実施形態における画像処理装置500を含むシステムでは、検索結果として表示中の映像について、仮想視点映像を再生成することができる。
【0161】
以上説明したように、本実施形態によると、仮想視点映像を共通のビットストリームとして利用できるようにして、付与された撮影設定情報、撮影権利情報、撮影対象情報、撮影状況情報、生成設定情報のうち少なくとも1つを検索に用いることができる。これにより、メタ情報による仮想視点映像のビットストリームの検索を効率よく行うことができる。また、本実施形態によると、検索結果として表示中の映像について、再度、仮想視点映像を生成することができる。
【0162】
図23は、上記各実施形態に係る画像処理装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
【0163】
CPU801は、RAM802やROM803に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像処理装置の各処理を実行する。即ち、CPU801は、上述した画像処理装置の各処理部として機能する。
【0164】
RAM802は、外部記憶装置806からロードされたコンピュータプログラムやデータ、I/F(インターフェース)807を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、RAM802は、CPU801が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM802は、例えば、画像データを記憶するためのフレームメモリとして割り当てたり、その他の各種のエリアを適宜提供したりすることができる。
【0165】
ROM803は、コンピュータの設定データや、ブートプログラムなどを格納している。操作部804は、キーボードやマウスなどを含む。ユーザは、操作部804を用いて、各種の指示をコンピュータに入力することができる。出力部805は、CPU801による処理結果を表示する。出力部805は、例えば液晶ディスプレイとすることができる。
【0166】
外部記憶装置806は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置806は、OS(オペレーティングシステム)や、上述した画像処理装置の各処理部の機能をCPU801に実現させるためのコンピュータプログラムを保存している。更に、外部記憶装置806は、処理対象としての画像データを保存しても良い。
【0167】
外部記憶装置806に保存されているコンピュータプログラムやデータは、CPU801による制御に従って適宜、RAM802にロードされ、CPU801によって処理される。I/F807は、LANやインターネット等のネットワーク、投影装置や表示装置などの他の機器と接続するために使用される。コンピュータは、I/F807を介して様々な情報を取得したり、送出したりすることができる。バス808は、上述したコンピュータの各構成要素を相互に通信可能に接続する。
【0168】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0169】
また、上述した実施形態で説明したメタ情報を示す符号をデータ名として利用してもよい。例えば、ファイル名を、いくつかのメタ情報を「_」で結んだ名称に統一することで、データの検索を行うことができる。例えば、データ名として用いるメタ情報は、filming_date_time_code、convention_name、event_name、stage_name、free_viewpoint_filming_info_code等である。
【符号の説明】
【0170】
100 画像処理装置
101a~101z カメラ
102 入力部
103 環境情報取得部
104 端末
105 ファイル生成部
106 メタ情報付与部
107 出力部
108 保存部