次に本発明の実施の形態について図面を参照して詳細に説明する。
図1は、本発明の実施の形態における撮像装置100の構成を示すブロック図である。この撮像装置100は、大きく分けると、カメラ部110と、カメラDSP(Digital Signal Processor)120と、SDRAM(Synchronous Dynamic Random Access Memory)121と、制御部130と、操作部140と、媒体インタフェース(以下、媒体I/Fという。)150と、LCD(Liquid Crystal Display)コントローラ161と、LCD162と、外部インタフェース(以下、外部I/Fという。)163と、通信インタフェース(以下、通信I/Fという。)164とを備える。なお、媒体インタフェース150と接続される記録媒体170については、撮像装置100に内蔵するようにしてもよく、撮像装置100から着脱可能とするようにしてもよい。
記録媒体170は、半導体メモリを用いたいわゆるメモリカード、記録可能なDVD(Digital Versatile Disc)、記録可能なCD(Compact Disc)等の光記録媒体、磁気ディスク、HDD(Hard Disk Drive)等の種々のものを用いるようにすることが考えられる。
カメラ部110は、光学ブロック111、CCD(Charge Coupled Device)112、前処理回路113、光学ブロック用ドライバ114、CCD用ドライバ115、および、タイミング生成回路116を備えるものである。ここで、光学ブロック111は、レンズ、フォーカス機構、シャッター機構、および、絞り(アイリス)機構などを備えるものである。
また、制御部130は、CPU(Central Processing Unit)141、RAM(Random Access Memory)142、フラッシュROM(Read Only Memory)143、および、時計回路144が、システムバス145を通じて接続されて構成されている。制御部130は、例えば、汎用の組み込み型のマイクロコンピュータまたは専用のシステムLSI(Large Scale Integrated circuit)などからなる。また、制御部130は、撮像装置100の各部を制御するものである。
ここで、RAM142は、処理の途中結果を一時記憶する等、主に作業領域として用いられるものである。また、フラッシュROM143は、CPU141において実行される種々のプログラムや、処理に必要になるデータなどを記憶したものである。また、時計回路144は、現在年月日、現在曜日、現在時刻を提供するとともに、撮影日時等を提供するものである。
そして、画像の撮影時においては、光学ブロック用ドライバ114は、制御部130からの制御に応じて、光学ブロック111を動作させるようにする駆動信号を形成し、これを光学ブロック111に供給して、光学ブロック111を動作させるようにする。光学ブロック用ドライバ114からの駆動信号に応じて、光学ブロック111のフォーカス機構、シャッター機構、および、絞り機構が制御される。光学ブロック111は、被写体の光学的な画像を取り込んで、これをCCD112に結像させる。
CCD112は、光学ブロック111からの光学的な画像を光電変換して、変換により得られた画像の電気信号を出力する。すなわち、CCD112は、CCD用ドライバ115からの駆動信号に応じて動作し、光学ブロック111からの光学的な被写体の画像を取り込むとともに、制御部130によって制御されるタイミング生成回路116からのタイミング信号に基づいて、取り込んだ被写体の画像(画像情報)を電気信号として前処理回路113に供給する。なお、CCD112の代わりに、CMOS(Complementary Metal-Oxide Semiconductor)センサなどの光電変換デバイスを用いるようにしてもよい。
また、上述のように、タイミング生成回路116は、制御部130からの制御に応じて、所定のタイミングを提供するタイミング信号を形成するものである。また、CCDドライバ115は、タイミング生成回路116からのタイミング信号に基づいて、CCD112に供給する駆動信号を形成するものである。
前処理回路113は、CCD112から供給された電気信号の画像情報に対して、CDS(Correlated Double Sampling)処理を行って、S/N比を良好に保つようにするとともに、AGC(Automatic Gain Control)処理を行って、利得を制御し、そして、A/D(Analog/Digital)変換を行って、デジタル信号とされた画像データを形成する。
前処理回路113においてデジタル信号とされた画像データは、カメラDSP120に供給される。カメラDSP120は、これに供給された画像データに対して、AF(Auto Focus)、AE(Auto Exposure)、および、AWB(Auto White Balance)などのカメラ信号処理を施す。このようにして種々の調整がされた画像データは、例えば、JPEG(Joint Photographic Experts Group)またはJPEG2000などの所定の符号化方式で符号化され、システムバス145および媒体I/F150を通じて記録媒体170に供給され、記録媒体170にファイルとして記録される。また、カメラDSP120は、MPEG4−AVC規格に基づいて、データ圧縮処理およびデータ伸長処理を行う。
また、記録媒体170に記録された画像データは、タッチパネルやコントロールキーなどからなる操作部140を通じて受け付けたユーザからの操作入力に応じて、目的とする画像データが媒体I/F150を通じて記録媒体170から読み出され、これがカメラDSP120に供給される。
カメラDSP120は、記録媒体170から読み出され、媒体I/F150を通じて供給された符号化されている画像データを復号し、復号後の画像データをシステムバス145を通じてLCDコントローラ161に供給する。LCDコントローラ161は、これに供給された画像データからLCD162に供給する画像信号を形成し、これをLCD162に供給する。これにより、記録媒体170に記録されている画像データに応じた画像が、LCD162の表示画面に表示される。なお、カメラDSP120は、前処理回路113または記録媒体170から供給された画像データに含まれる顔を検出して、検出された顔に関する情報を制御部130に出力する。
また、撮像装置100には、外部I/F163が設けられている。この外部I/F163を通じて、例えば外部のパーソナルコンピュータと接続して、パーソナルコンピュータから画像データの供給を受けて、これを撮像装置100に装着された記録媒体170に記録したり、また、撮像装置100に装着された記録媒体170に記録されている画像データを外部のパーソナルコンピュータ等に供給したりすることもできるものである。
また、通信I/F164は、いわゆるネットワークインターフェースカード(NIC)などからなり、ネットワークに接続して、ネットワークを通じて種々の画像データやその他の情報を取得する。
また、外部のパーソナルコンピュータやネットワークを通じて取得し、記録媒体170に記録された画像データ等の情報についても、上述したように、撮像装置100において読み出して再生し、LCD162に表示してユーザが利用することもできる。
なお、通信I/F164は、IEEE(Institute of Electrical and Electronic Engineers)1394またはUSB(Universal Serial Bus)などの規格に準拠した有線用インタフェースとして設けることも可能であり、また、IEEE802.11a、IEEE802.11b、IEEE802.11g、または、ブルートゥースの規格に準拠した光や電波による無線インタフェースとして設けることも可能である。すなわち、通信I/F164は、有線または無線の何れのインタフェースであってもよい。
このように、撮像装置100は、被写体の画像を撮影して、撮像装置100に装填された記録媒体170に記録することができるとともに、記録媒体170に記録された画像データを読み出して、これを再生し、利用することができるものである。また、外部のパーソナルコンピュータやネットワークを通じて、画像データの提供を受けて、これを撮像装置100に装填された記録媒体170に記録したり、また、読み出して再生したりすることもできる。
次に、本発明の実施の形態で用いる動画コンテンツファイルについて図面を詳細に説明する。
図2は、撮像装置100で撮影された画像データがMPEG4−AVC(MPEG-4 part10:AVC)で符号化された、ビデオ信号の所定フレームを模式的に示す図である。
本発明の実施の形態では、MPEG4−AVCで符号化されたビデオ信号の何れかのフレームに含まれる人間の顔を検出し、検出された顔に対応する顔メタデータを記録する記録方法について説明する。
MPEG4−AVC規格では、動画像符号化処理を扱うVCL(Video Coding Layer)と、符号化された情報を伝送、蓄積する下位システムとの間にNAL(Network Abstraction Layer)が存在する。また、シーケンスやピクチャのヘッダ情報に相当するパラメータセットをVCLで生成された情報と分離して扱うことができる。さらに、MPEG−2システムなどの下位システムへのビットストリームの対応付けは、NALの一区切りである「NALユニット」を単位として行われる。
ここでは、主なNALユニットについて説明する。SPS(Sequence Parameter Set)NALユニットには、プロファイル、レベル情報等シーケンス全体の符号化に関わる情報が含まれる。後述するAU(Access Unit)において、SPS NALユニットが挿入されているAU区間が、一般的には1シーケンスとされる。そして、この1シーケンスを編集単位として、ストリームの部分消去、結合等の編集が行われる。PPS(Picture Parameter Set)NALユニットには、エントロピー符号化モード、ピクチャ単位の量子化パラメータ等のピクチャ全体の符号化モードに関する情報が含まれる。
Coded Slice of an IDR picture NALユニットには、IDR(Instantaneous Decoder Refresh)ピクチャの符号化データが格納される。Coded Slice of a non IDR picture NALユニットには、IDRピクチャでない、その他のピクチャの符号化データが格納される。
SEI(Supplemental Enhancement Information)NALユニットには、VCLの符号に必須でない付加情報が格納される。例えば、ランダムアクセスを行うのに便利な情報、ユーザが独自に定義する情報等が格納される。AUD(Access Unit Delimiter) NALユニットは、後述するアクセスユニット(AU)の先頭に付加される。このAUD NALユニットには、アクセスユニットに含まれるスライスの種類を示す情報が含まれる。その他、シーケンスの終了を示すEOS(End Of Sequence)NALユニット、および、ストリームの終了を示すEOST(End Of Stream)NALユニットが定義されている。
ビットストリーム中の情報をピクチャ単位にアクセスするために、いくつかのNALユニットをまとめたものをアクセスユニット(AU)と呼ぶ。アクセスユニットには、ピクチャのスライスに相当するNALユニット(Coded Slice of an IDR picture NALユニットまたはCoded Slice of a non IDR picture NALユニット)が必ず含まれる。本発明の実施の形態では、あるSPS NALユニットを含むAUを始点とし、EOS NALユニットを含むAUを終点とした一連のAUの括りを1シーケンスとして定義する。さらにSPSを含むAUは、IDRピクチャまたはIピクチャのスライスに相当されるNALユニットを含むものとする。つまり、1シーケンスの復号化順における先頭には他のピクチャに依存せずに復号可能なIDRピクチャまたはIピクチャを有することになるため、1シーケンスをランダムアクセスの単位、または編集における編集単位とすることが可能となる。
例えば、図2に示すように、SPSを含むAU180には、SEI NALユニット181が含まれ、SPSを含むAU190には、SEI NALユニット191が含まれているものとする。このSEI NALユニット181およびSEI NALユニット191については、本発明の実施の形態の変形例において詳細に説明する。
なお、本発明の実施の形態では、動画コンテンツから人間の顔を抽出する際、その検出の単位をこの1シーケンスとする。すなわち、1シーケンス内において、このシーケンスに含まれる1フレームのみから顔を検出し、他のフレームからは顔を検出しない。ただし、所定シーケンス間隔おきに顔を検出するようにしてもよく、IDRを含むシーケンスおきに顔を検出するようにしてもよい。
次に、記録媒体170に記録されている実ファイルについて図面を参照して詳細に説明する。
図3は、ファイルシステム(File System)上に登録されている実ファイルのファイル構造を概略的に示す図である。本発明の実施の形態では、動画または静止画コンテンツファイルとこれらのコンテンツファイルに関する顔メタデータとについて、実ディレクトリとは異なる仮想的なエントリ構造で管理する。具体的には、動画または静止画コンテンツファイル以外に、これらのファイルと顔メタデータとを管理するコンテンツ管理ファイル340が記録媒体170に記録される。
ルートディレクトリ300には、動画コンテンツフォルダ310と、静止画コンテンツフォルダ320と、コンテンツ管理フォルダ330とが属する。
動画コンテンツフォルダ310は、撮像装置100で撮像された動画データである動画コンテンツファイル311および312が属する動画コンテンツフォルダである。なお、この例では、動画コンテンツファイル311および312が動画コンテンツフォルダ310に属するものと想定している。
静止画コンテンツフォルダ320は、撮像装置100で撮像された静止画データである静止画コンテンツファイル321および322が属する静止画コンテンツフォルダである。なお、この例では、静止画コンテンツファイル321および322が静止画コンテンツフォルダ320に属するものと想定している。
コンテンツ管理フォルダ330は、コンテンツ管理ファイル340が属するコンテンツ管理フォルダである。コンテンツ管理ファイル340は、動画コンテンツフォルダ310および静止画コンテンツフォルダ320に属する各コンテンツファイルを仮想的な階層エントリで管理するファイルであり、プロパティファイル400とサムネイルファイル500とで構成されている。プロパティファイル400は、各コンテンツファイルを仮想的に管理するための管理情報と、各コンテンツファイルの作成日時等のコンテンツ属性情報と、顔メタデータ等の各コンテンツファイルに付随するメタデータとが記録されているファイルである。また、サムネイルファイル500は、各コンテンツファイルの代表サムネイル画像が格納されているファイルである。なお、プロパティファイル400およびサムネイルファイル500の詳細については、図4乃至図8等を参照して詳細に説明する。
ここで、動画コンテンツフォルダ310に属する各動画コンテンツファイル、および、静止画コンテンツフォルダ320に属する各静止画コンテンツファイルは、ユーザに可視である。すなわち、ユーザからの操作入力によって、これらのコンテンツファイルに対応する画像をLCD162に表示させることが可能である。
一方、コンテンツ管理ファイル340については、コンテンツ管理ファイル340の内容がユーザに改変されることを避けるため、ユーザに不可視とする。コンテンツ管理ファイル340の内容を不可視とする具体的な設定方法として、例えば、ファイルシステムの対象となるコンテンツ管理フォルダ330を不可視にするフラグをオンにすることによってコンテンツ管理ファイル340の内容を不可視とすることができる。さらに、不可視にするタイミングとして、例えば、撮像装置100がUSB(Universal Serial Bus)経由でPC(パーソナルコンピュータ)と接続された場合(マスストレージ接続)において、撮像装置100が接続を感知したとき(接続が正しく行えたという信号をPC(ホスト)から受信したとき)に、上記フラグをオンにするようにしてもよい。
次に、プロパティファイル400の仮想的なエントリ構造について図面を参照して詳細に説明する。
図4は、プロパティファイル400が管理する仮想フォルダおよび仮想ファイルの構成例を示す図である。
プロパティファイル400は、上述したように、記録媒体170に記録されている動画または静止画コンテンツファイルを管理するものであり、アプリケーションに応じた柔軟性のある管理方法が可能である。例えば、動画または静止画コンテンツファイルが撮像装置100に記録された日時に応じて管理することができる。また、動画または静止画の種別に応じて管理することができる。ここでは、記録された日時に応じて動画コンテンツファイルを分類して管理する管理方法について説明する。また、各エントリ内に示す数字は、エントリ番号を示す数字である。なお、エントリ番号については、図7を参照して詳細に説明する。
ルートエントリ407は、階層型エントリ構造における最上階層のエントリである。この例では、ルートエントリ407には、動画フォルダエントリ410および静止画フォルダエントリ409が属する。また、プロファイルエントリ408(エントリ番号:#150)は、各ファイルエントリのコーデック情報(符号化フォーマット、画サイズ、ビットレート等)を一括して保存するエントリである。なお、プロファイルエントリ408については、図7(c)を参照して詳細に説明する。静止画フォルダエントリ409は、静止画に関する日付フォルダエントリを下位の階層で管理するエントリである。動画フォルダエントリ410(エントリ番号:#1)は、日付フォルダエントリを下位の階層で管理するエントリである。この例では、動画フォルダエントリ410には、日付フォルダエントリ411および日付フォルダエントリ416が属する。
日付フォルダエントリ411(エントリ番号:#3)および日付フォルダエントリ416(エントリ番号:#5)は、記録媒体170に記録されている動画コンテンツファイルを日付毎に分類して管理するエントリであり、分類された動画コンテンツファイルを下位の階層で管理するエントリである。この例では、日付フォルダエントリ411は、「2006/1/11」に記録された動画コンテンツファイルを管理するエントリとし、日付フォルダエントリ411には動画ファイルエントリ412および動画ファイルエントリ414が属する。また、日付フォルダエントリ416は、「2006/7/28」に記録された動画コンテンツファイルを管理するエントリとし、日付フォルダエントリ416には動画ファイルエントリ417および動画ファイルエントリ419が属する。なお、フォルダエントリの詳細については、図5を参照して詳細に説明する。
動画ファイルエントリ412(エントリ番号:#7)、動画ファイルエントリ414(エントリ番号:#28)、動画ファイルエントリ417(エントリ番号:#14)、動画ファイルエントリ419(エントリ番号:#21)には、記録媒体170に記録されている各動画コンテンツファイルを仮想的に管理するための管理情報と、各動画コンテンツファイルの作成日時等のコンテンツ属性情報とが格納されている。なお、ファイルエントリの詳細については、図5を参照して詳細に説明する。
メタデータエントリ413(エントリ番号:#10)、メタデータエントリ415(エントリ番号:#31)、メタデータエントリ418(エントリ番号:#17)、メタデータエントリ420(エントリ番号:#24)は、それぞれ連結されている動画ファイルエントリが管理する動画コンテンツファイルに付随するメタデータを格納するメタデータエントリである。メタデータとして、この例では、動画コンテンツファイルから抽出された顔データが格納される。この顔データは、動画コンテンツファイルから抽出された顔に関する各種データであり、例えば、図11に示すように、顔検出時刻情報、顔基本情報、顔スコア、笑顔スコア等のデータである。なお、メタデータエントリの詳細については、図5乃至図16を参照して詳細に説明する。
次に、コンテンツ管理ファイルとコンテンツファイルとの関係について図面を参照して詳細に説明する。
図5は、コンテンツ管理ファイル340を構成するプロパティファイル400およびサムネイルファイル500と、動画コンテンツフォルダ310に属する動画コンテンツファイル311乃至316との関係を概略的に示す図である。ここでは、図4に示す日付フォルダエントリ411、動画ファイルエントリ414、メタデータエントリ415と、代表サムネイル画像502と、動画コンテンツファイル312との関係について説明する。
日付フォルダエントリ411は、実コンテンツファイルの日付を仮想的に管理するフォルダエントリであり、「エントリ種別」、「親エントリリスト」、「親エントリ種別」、「子エントリリスト」、「子エントリ種別」、「スロット有効フラグ」、「スロットチェーン」等の情報が格納されている。
なお、エントリ番号は、各エントリを識別するための識別番号であり、日付フォルダエントリ411のエントリ番号として「#3」が割り当てられる。なお、このエントリ番号の割り当て方法については、図7および図8を参照して説明する。
「エントリ種別」は、このエントリの種類を示すものであり、エントリの種類に応じて「動画フォルダエントリ」、「日付フォルダエントリ」、「動画ファイルエントリ」、「静止画ファイルエントリ」、「メタデータエントリ」等が格納される。例えば、日付フォルダエントリ411の「エントリ種別」には「日付フォルダエントリ」が格納される。
「親エントリリスト」には、このエントリが属する上位の階層エントリである親エントリに対応するエントリ番号が格納される。例えば、日付フォルダエントリ411の「親エントリリスト」には「#1」が格納される。
「親エントリ種別」は、「親エントリリスト」に格納されているエントリ番号に対応する親エントリの種類を示すものであり、親エントリの種類に応じて「動画フォルダエントリ」、「日付フォルダエントリ」、「動画ファイルエントリ」、「静止画ファイルエントリ」等が格納される。例えば、日付フォルダエントリ411の「親エントリ種別」には「動画フォルダエントリ」が格納される。
「子エントリリスト」は、このエントリに属する下位階層のエントリである子エントリに対応するエントリ番号が記録される。例えば、日付フォルダエントリ411の「子エントリリスト」には「#7」および「#28」が格納される。
「子エントリ種別」は、「子エントリリスト」に格納されているエントリ番号に対応する子エントリの種類を示すものであり、子エントリの種類に応じて「動画フォルダエントリ」、「日付フォルダエントリ」、「動画ファイルエントリ」、「静止画ファイルエントリ」、「メタデータエントリ」等が記録される。例えば、日付フォルダエントリ411の「子エントリ種別」には「動画ファイルエントリ」が格納される。
「スロット有効フラグ」は、このエントリを構成する各スロットが有効であるか無効であるかを示すフラグである。「スロットチェーン」は、このエントリを構成する各スロットに関するリンクや連結等の情報である。なお、「スロット有効フラグ」および「スロットチェーン」については、図7(b)を参照して詳細に説明する。
動画ファイルエントリ414は、実コンテンツファイルを仮想的に管理するファイルエントリであり、仮想管理情報401およびコンテンツ属性情報402が格納されている。仮想管理情報401には、「エントリ種別」、「コンテンツ種別」、「コンテンツアドレス」、「親エントリリスト」、「親エントリ種別」、「子エントリリスト」、「子エントリ種別」、「スロット有効フラグ」、「スロットチェーン」等の情報が格納されている。なお、「エントリ種別」、「親エントリリスト」、「親エントリ種別」、「子エントリリスト」、「子エントリ種別」、「スロット有効フラグ」、「スロットチェーン」については、日付フォルダエントリ411で示したものと同様であるため、ここでの説明は省略する。
「コンテンツ種別」は、このファイルエントリに対応するコンテンツファイルの種類を示すものであり、ファイルエントリに対応するコンテンツファイルの種類に応じて、「動画コンテンツファイル」、「静止画コンテンツファイル」等が記録される。例えば、動画ファイルエントリ414の「コンテンツ種別」には「動画コンテンツファイル」が格納される。
「コンテンツアドレス」は、記録媒体170に記録されている動画コンテンツファイルの記録位置を示す情報であり、この記録位置情報によって記録媒体170に記録されている動画コンテンツファイルへのアクセスが可能となる。例えば、動画ファイルエントリ414の「コンテンツアドレス」には、動画コンテンツファイル312のアドレスを示す「A312」が格納される。
コンテンツ属性情報402は、仮想管理情報401に格納されているコンテンツファイルの属性情報であり、「作成日時」、「更新日時」、「区間情報」、「サイズ情報」、「サムネイルアドレス」、「プロファイル情報」等の情報が格納されている。
「作成日時」には、このファイルエントリに対応するコンテンツファイルが作成された日時が格納される。「更新日時」には、このファイルエントリに対応するコンテンツファイルが更新された日時が格納される。なお、「更新日時」を用いて、メタデータの不整合が判別される。「区間情報」には、このファイルエントリに対応するコンテンツファイルの時間の長さを示す情報が格納される。「サイズ情報」は、このファイルエントリに対応するコンテンツファイルのサイズを示す情報が格納される。
「サムネイルアドレス」は、サムネイルファイル500に格納されている代表サムネイル画像の記録位置を示す情報であり、この位置情報によってサムネイルファイル500に格納されている代表サムネイル画像へのアクセスが可能となる。例えば、動画ファイルエントリ414の「サムネイルアドレス」には、動画コンテンツファイル312の代表画像である代表サムネイル画像502のサムネイルファイル500内部におけるエントリ番号が格納される。
「プロファイル情報」には、プロファイルエントリ408内部に格納されているビデオ・オーディオエントリ(video audio entry)のエントリ番号が記録されている。なお、ビデオ・オーディオエントリについては、図7(c)を参照して詳細に説明する。
メタデータエントリ415には、「エントリ種別」、「親エントリリスト」、「親エントリ種別」、「スロット有効フラグ」、「スロットチェーン」、「メタデータ」等の情報が格納されている。なお、「エントリ種別」、「親エントリリスト」、「親エントリ種別」「スロット有効フラグ」、「スロットチェーン」については、日付フォルダエントリ411で示したものと同様であるため、ここでの説明は省略する。
「メタデータ」は、このメタデータエントリが属する上位の階層ファイルエントリである親エントリに対応するコンテンツファイルから取得された各種属性情報(メタデータ)である。この「メタデータ」に格納される各種情報については、図9乃至図16を参照して詳細に説明する。
サムネイルファイル500は、各コンテンツファイルの代表画像である代表サムネイル画像が格納されるサムネイルファイルである。例えば、図5に示すように、動画コンテンツフォルダ310に属する動画コンテンツファイル311乃至316の代表画像として、代表サムネイル画像501乃至506がサムネイルファイル500に格納されている。なお、サムネイルファイル500に格納されている各サムネイル画像については、プロパティファイル400に含まれるコンテンツ属性情報402の「サムネイルアドレス」に基づいてアクセスすることができる。また、各コンテンツファイルについては、プロパティファイル400に含まれる仮想管理情報401の「コンテンツアドレス」に基づいてアクセスすることができる。
次に、プロパティファイルに格納されている各エントリの親子関係について図面を参照して詳細に説明する。
図6は、図4に示す動画フォルダエントリ410と、日付フォルダエントリ411と、動画ファイルエントリ412および414と、メタデータエントリ413および415との親子関係を概略的に示す図である。
動画フォルダエントリ410(エントリ番号:#1)には、「子エントリリスト」等の情報が格納されている。例えば、「子エントリリスト」には「#3」および「#5」が格納される。
日付フォルダエントリ411(エントリ番号:#3)には、「親エントリリスト」、「子エントリリスト」等の情報が格納されている。例えば、「親エントリリスト」には「#1」が格納され、「子エントリリスト」には「#7」および「#28」が格納される。
動画ファイルエントリ412(エントリ番号:#7)および414(エントリ番号:#28)には、「親エントリリスト」、「子エントリリスト」、「コンテンツアドレス」、「サムネイルアドレス」等の情報が格納されている。例えば、動画ファイルエントリ412において、「親エントリリスト」には「#3」が格納され、「子エントリリスト」には「#10」が格納され、「コンテンツアドレス」には「A311」が格納され、「サムネイルアドレス」には「#1」が格納される。なお、「サムネイルアドレス」に格納される「#1」は、サムネイルファイル500におけるエントリ番号であり、プロパティファイル400に格納されている各エントリのエントリ番号とは異なる。なお、「サムネイルアドレス」については、図7を参照した説明において詳細する。
メタデータエントリ413(エントリ番号:#10)および415(エントリ番号:#31)には、「親エントリリスト」等の情報が格納されている。例えば、メタデータエントリ413において、「親エントリリスト」には「#7」が格納される。これらの親子関係については、図6において、各エントリの親子関係について、「親エントリリスト」または「子エントリリスト」からの矢印で示す。また、図4に示す動画フォルダエントリ410と、日付フォルダエントリ416と、動画ファイルエントリ417および419と、メタデータエントリ418および420とについても、同様の親子関係が成立している。
なお、図4および図6に示すプロパティファイル400においては、1つのファイルエントリに1つのメタデータエントリを関連付けた構成例を示すが、1つのファイルエントリに複数のメタデータエントリを関連付けるようにしてもよい。すなわち、1つの親ファイルエントリに複数の子メタデータエントリを対応させることができる。
例えば、動画ファイルエントリ412の子メタデータエントリとして、顔メタデータを格納するメタデータエントリ413とともに、GPS情報を格納するメタデータエントリ(エントリ番号:#40)(図示せず)を対応させ、動画ファイルエントリ412の子エントリリストに「#10」および「#40」を記録する。この場合には、子エントリリストの格納順序をメタデータの種類に応じて予め決めておくようにする。これにより、1つのファイルエントリに複数のメタデータを格納する場合において、メタデータの数が増加した場合でも、データ管理が煩雑になることを防止して、所望のメタデータの抽出時間を短縮することができる。なお、ここでのメタデータの種類とは、単なるデータの種類(顔メタ、GPS等の種類)でもよく、メタデータがバイナリデータかテキストデータかというコーディングの種類でもよい。
図7(a)は、プロパティファイル400の基本構造の一例を示す図であり、図7(b)は、各エントリを構成するスロットの構造を示す図であり、図7(c)は、プロファイルエントリに含まれる情報の一例を示す図であり、図7(d)は、ヘッダ部430に含まれる情報のうちで、コンテンツ管理ファイル340が管理するコンテンツの種別を示す情報の一例を示す図である。また、図8は、図4に示すプロパティファイル400の全体構造を概略的に示す図である。
プロパティファイル400は、図7(a)に示すように、ヘッダ部430およびエントリ部440の基本構造を有するファイルであり、これらの各エントリが1つの仮想フォルダや仮想ファイル等を示す単位となる。
エントリ部440を構成する各エントリは、1または複数のスロットで構成されている。なお、各エントリに格納されるデータの容量に応じて、各エントリには1または複数のスロットが割り当てられる。また、各エントリを構成するスロットは、プロパティファイルやサムネイルファイル等のファイル毎に決められた固定長のデータブロックとして定義されている。ただし、エントリによっては、構成されるスロット数が異なるため、スロットの整数倍で各エントリが可変長となる。
例えば、図7(a)に示すように、動画フォルダエントリ410には、格納されるデータ451のデータ容量に応じて2つのスロット441および442が割り当てられる。また、日付フォルダエントリ411には、格納されるデータ452のデータ容量に応じて2つのスロット443および444が割り当てられる。
なお、スロットが固定長であるため、スロットの全ての領域が有効データで埋められることがない場合があり、データ的にロスが発生する場合があるものの、スロットを固定長とすることによるデータアクセス性やデータ管理性を重視するため、このような構造とすることが好ましい。
また、エントリ部440を構成する各エントリは、図4および図6で示すように、エントリ番号で管理される。このエントリ番号は、エントリを構成する先頭のスロットが、プロパティファイル400の全体を構成するスロットの先頭から何番目のスロットに該当するかに応じて割り当てられる。例えば、図7(a)および図8に示すように、動画フォルダエントリ410は、このエントリ内の先頭のスロットが、プロパティファイル400の全体を構成するスロットの先頭から数えて1番目のスロットとなるため、エントリ番号として「#1」が割り当てられる。また、日付フォルダエントリ411は、このエントリ内の先頭のスロットが、プロパティファイル400の全体を構成するスロットの先頭から数えて3番目のスロットとなるため、エントリ番号として「#3」が割り当てられる。また、日付フォルダエントリ416は、このエントリ内の先頭のスロットが、プロパティファイル400の全体を構成するスロットの先頭から数えて5番目のスロットとなるため、エントリ番号として「#5」が割り当てられる。なお、他の各エントリに割り当てられるエントリ番号についても同様である。これらのエントリ番号に基づいて、各エントリが管理されるとともに各エントリの親子関係が管理される。なお、エントリをサーチする場合には、エントリ部440を構成するスロットを最初からカウントして対象となるエントリをサーチする。
各エントリを構成するスロットは、図7(b)に示すように、スロットヘッダ部460および実データ部470の構造を有するスロットである。スロットヘッダ部460は、スロットが有効であるか無効であるかを示す有効/無効フラグ461と、チェーン462とで構成されている。
有効/無効フラグ461には、対応するコンテンツファイルが有効に存在する場合には有効フラグが立てられ、対応するコンテンツファイルが削除された場合には無効フラグが立てられる。このように、対応するコンテンツファイルが削除された場合には有効/無効フラグ461に無効フラグを立てることによって、この削除されたコンテンツファイルに対応するスロット内部の情報を削除する処理を発生させずに、このスロットが見かけ上存在しないことを示すことができる。仮に、有効/無効フラグ461がない場合には、対応するコンテンツファイルが削除されると、この削除されたコンテンツファイルに対応するスロット内部の情報を削除する処理が必要であるとともに、削除されたスロットの物理的に後ろに存在するスロット内部の情報を前につめる必要があるため、処理が煩雑になる。
チェーン462には、各スロットを連結するためのリンクや連結等の情報が格納される。このチェーン462に格納される情報により、複数のスロットが連結されて1つのエントリが構成される。また、実データ部470には、各エントリの実データが格納されている。
プロファイルエントリ408には、各コンテンツファイルのビデオおよびオーディオに関するコーデック情報が1対となった100種類程度のデータが記録されている。ビデオに関するコーデック情報として、ビデオエントリ(video entry)には、「符号化フォーマット(codec type)」、「画サイズ(visual size)」、「ビットレート(bit rate)」等が格納されている。また、オーディオに関するコーデック情報として、オーディオエントリ(audio entry)には、「符号化フォーマット(codec type)」、「サンプリングレート(sampling rate)」等が格納されている。また、各ビデオ・オーディオエントリには、エントリ番号が割り当てられている。このエントリ番号として、プロファイルエントリ408内部における記録順序を示す番号が割り当てられる。例えば、図7(c)に示すように、最初のビデオ・オーディオエントリ471には「#1」が割り当てられ、2番目のビデオ・オーディオエントリ472には「#2」が割り当てられる。なお、このビデオ・オーディオエントリのエントリ番号が、ファイルエントリの「プロファイル情報」(図5に示す)に記録される。そして、「プロファイル情報」に記録されているエントリ番号に基づいて、ファイルエントリに対応するコンテンツファイルのコーデック情報が読み出される。
サムネイルファイル500(図5に示す)は、基本的な構造はプロパティファイル400と同様であり、各エントリが1または複数のスロットで構成されている。これらの各エントリが1つの代表サムネイル画像を示す単位となる。ただし、サムネイルファイル500にはヘッダ部が存在しない。各スロットは、ファイル内で固定長であり、この1スロットの固定長に関するスロットサイズは、プロパティファイル400のヘッダ部430に記録されている。また、サムネイルファイル500の各エントリの対応関係は、プロパティファイル400に格納されている。なお、サムネイルファイル500のスロットサイズは、プロパティファイル400のスロットサイズとは異なる。
サムネイルファイル500のスロットの容量は、サムネイルファイル毎に設定することができ、この容量はプロパティファイル400のヘッダ部430に記録される。また、ヘッダ部430にはサムネイルファイル500のサムネイルファイル名が記録されている。
サムネイルファイル500には、コンテンツファイルの代表画像である代表サムネイル画像が、コンテンツファイルに対応するファイルエントリ毎に1枚記録されている。コンテンツファイルの代表画像は、例えば、コンテンツファイルが動画の場合には、その先頭画像である画面全体の画像とすることができる。また、通常のサムネイルファイルの場合には、1つのファイルエントリについて1つのスロットが対応する。また、サムネイルファイル500を構成する各エントリには、エントリ番号が割り当てられている。このサムネイルファイルのエントリ番号は、サムネイルファイル内を1エントリに1スロットを対応させる構成とする場合には、スロット番号となる。また、このサムネイルファイルのエントリ番号が、各ファイルエントリの「サムネイルアドレス」(図5に示す)に格納される。
ヘッダ部430には、各エントリを管理する各種情報が記録されている。例えば、図7(d)に示すように、コンテンツ管理ファイル340が管理するコンテンツファイルの種別を示す情報がヘッダ部430に格納されている。なお、図7(d)に示す例では、コンテンツ管理ファイル340が管理するコンテンツファイルは、HD動画およびSD動画となり、静止画は管理しないことになる。これは、動画および静止画を記録することができるコンテンツ記録装置であっても、静止画はコンテンツ管理ファイル340で管理しない場合があるからである。図7(d)に示すようにヘッダ部430に記録されている場合には、静止画は、通常のファイルシステムに基づいて管理されることになる。なお、動画についても、通常のファイルシステムで管理されているため、コンテンツ管理ファイルを理解することができないコンテンツ再生装置等では、ファイルシステムの情報に基づいてコンテンツの再生が実行される。また、撮像装置100を他のコンテンツ再生装置に接続する場合や、着脱可能な記録媒体を他のコンテンツ再生装置に移動させて再生する場合等において、他のコンテンツ再生装置がコンテンツ管理ファイルを理解することができる場合には、コンテンツ管理ファイルに基づいてコンテンツファイルの読み出し等が実行される。また、ヘッダ部430には、プロファイルエントリ408(エントリ番号:#150)のエントリ番号が記録されている。これにより、エントリ部440を構成する各エントリの中からプロファイルエントリの位置を特定することができる。
図8には、図4に示すプロパティファイル400を構成する各エントリと、各エントリに対応するスロットと、各スロットに格納されるデータとの関係を概略的に示す。なお、各エントリの名称については省略してエントリ番号を記載する。
図9は、メタデータエントリ600の内部構成を概略的に示す図である。なお、メタデータエントリ600は、図4または図6等に示すメタデータエントリ413、415、418、420に対応する。また、本発明の実施の形態では、1つの動画コンテンツファイル毎に顔メタデータが記録されるものとする。
メタデータエントリ600は、1または複数のメタデータユニット(Meta_Data_Unit)から構成されている。また、メタデータユニット610は、データユニットサイズ(data_unit_size)611と、言語(language)612と、符号化形式(encoding_type)613と、メタデータの種類(data_type_ID)614と、メタデータ615とから構成されている。
データユニットサイズ611には、メタデータユニット610に格納されているメタデータのサイズが記録される。言語612には、メタデータユニット610に格納されているメタデータの言語が記録される。符号化形式613には、メタデータユニット610に格納されているメタデータの符号化形式が記録される。メタデータの種類614には、個々のメタデータの種類を識別するための識別情報が記録される。
なお、メタデータ615には、顔メタデータ620が記録されるとともに、顔メタデータ以外のメタデータである他のメタデータ650が記録される。例えば、他のメタデータ650として、コンテンツファイルのタイトル情報やジャンル情報等の情報が格納される。
顔メタデータ620は、ヘッダ部630と顔データ部640とから構成されている。ヘッダ部630には、顔メタデータを管理する情報が格納される。また、ヘッダ部630は動画コンテンツ毎に固定長とする。顔データ部640には、動画コンテンツファイルから検出された顔について顔メタデータとして記録される顔毎に顔データが記録される。例えば、顔データ部640には、顔データ621乃至623等が格納される。この顔データは、図11に示すように、顔検出時刻情報、顔基本情報、顔スコア、笑顔スコア等のデータである。また、顔データ部640は、1つの動画コンテンツファイルで固定長とする。このように、ヘッダ部630および顔データ部640が固定長であるため、顔データへのアクセスを容易に行うことができる。
また、他のメタデータ650の構成についても、顔メタデータ620の構成と同様である。
なお、本発明の実施の形態においては、1フレーム内において検出された顔のうちで、顔データ部に記録すべき顔データの値を規定する。例えば、1フレーム内において検出された顔の大きさや顔スコアの上位の顔等の所定の条件に基づいて、顔データ部に記録する顔データの最大値を規定して制限することができる。このように制限することによって、1フレーム内において不必要な顔(条件の悪い顔、顔らしくない顔等)を顔データ部に記録することによる記録媒体170の容量圧迫を防止することができる。
また、動画コンテンツファイルを記録媒体170に記録する場合において、顔検出エンジンにより検出された全ての顔毎に顔データが作成された場合には、作成された顔データの容量が莫大なものになる。また、顔を検出する時間間隔が小さい場合には、さらに容量が増加する。このため、例えば、時刻t0のフレームに対して記録すべき顔の顔データの個数が、次の検出時刻である時刻t1のフレームに対して記録すべき顔の顔データの個数が同数である場合には、時刻t1で検出した顔に対する顔データを顔データ部に記録しないようにする。これは、検出された顔の個数が同数であるため、同じ顔に関するメタデータが記録される可能性が高いためである。つまり、顔を検出する時刻の前後で記録すべき顔データの個数に変化がある場合にのみ、顔データを記録することによって記録媒体に不必要な重複顔データの記録を防ぐことができる。このように、本発明の実施の形態においては、1フレーム内において検出された顔の全てについて顔データを作成する必要はない。
図10は、ヘッダ部630に格納される各種情報の概略を示す図である。
ヘッダ部630には、ヘッダサイズ631と、メタデータバージョン632と、コンテンツ更新日時633と、顔データ構造フラグ660と、タイムスケール634と、顔データ個数635と、顔データサイズ636と、顔検出エンジンバージョン637と、コンテンツ画像サイズ638と、誤り検出符号値639とが格納される。なお、これらの格納単位は、図10の「サイズ」に示すように、バイトで規定される。
ヘッダサイズ631には、ヘッダ部630のデータサイズが格納される。このヘッダサイズ631によって、顔データ部640にアクセスする場合に、ヘッダ部630をジャンプして即座にアクセスすることが可能である。また、データサイズとして2バイトが規定されている。
メタデータバージョン632には、ヘッダ部630に対応する顔データ部640に記録されている顔メタデータのバージョン情報が格納される。コンテンツ再生装置でコンテンツファイルを再生する場合には、メタデータバージョン632に格納されている内容を確認することによって、そのコンテンツ再生装置が対応可能なデータであるか否かを装置自体が確認することが可能となる。本発明の実施の形態では、例えば、「1.00」が記録されるものとする。また、データサイズとして2バイトが規定され、上位8ビットがメジャーバージョンを示し、下位8ビットがマイナーバージョンを示す。なお、将来、顔メタデータフォーマットが拡張された場合には、更新されたバージョン情報が格納される。
コンテンツ更新日時633には、動画コンテンツファイルに記録される更新日時が格納される。例えば、撮像装置100で撮影された動画コンテンツファイルが他の装置に移動して編集された後に、この編集された動画コンテンツファイルが撮像装置100に再度記録されたような場合には、編集後の動画コンテンツファイルと顔メタデータと間で不整合が発生する。具体的には、以下で示す(1)乃至(3)のステップで動画コンテンツファイルが移動する場合が考えられる。このような場合に、これらの不整合を検出して、動画コンテンツファイルBから顔メタデータを再検出させ、編集後の動画コンテンツファイルと顔メタデータと間で発生した不整合を修正することが可能となる。
(1)ステップ1
コンテンツ記録装置Aで動画コンテンツファイルAが記録され、動画コンテンツファイルAに対応する顔メタデータが生成される。この場合には、動画コンテンツファイルAの作成日時および更新日時と、顔メタデータのコンテンツ更新日時とが同じ値となる。
(2)ステップ2
動画コンテンツファイルAがコンテンツ再生装置Bに移動された後に、コンテンツ再生装置Bで編集されて、動画コンテンツファイルBとなる。この場合には、動画コンテンツファイルBの更新日時が編集時の日時に更新される。
(3)ステップ3
動画コンテンツファイルBがコンテンツ記録装置Aに戻される。この場合には、動画コンテンツファイルBと、顔メタデータのコンテンツ更新日時との値が異なる。
顔データ構造フラグ660には、顔データ部640に格納される顔データで定義されたメタデータの有無を示すフラグが格納される。なお、顔データ構造フラグ660については、図12乃至図16を参照して詳細に説明する。
タイムスケール634には、顔データ部で使用される時刻情報のタイムスケール(1秒あたりのユニット数を表す値)が格納される。すなわち、動画コンテンツファイルから顔が検出された時刻を示す情報(顔検出時刻情報)が顔データとして顔データ部に記録されるが、その時刻情報のタイムスケールがタイムスケール634に格納される。なお、単位はHzである。
顔データ個数635は、ヘッダ部630に続いて記録される顔データの個数を示す情報が格納される。顔を検出しなかった場合には、「0」が記録される。
顔データサイズ636には、ヘッダ部630に続いて記録される1つの顔データのデータサイズを示す情報が格納される。この顔データサイズ636に格納される情報に基づいて個々の顔データ間をジャンプすることが可能となる。なお、顔が検出されなかった場合には、「0」が記録される。
顔検出エンジンバージョン637には、動画コンテンツファイルから顔を検出する顔検出エンジンに関する情報が記録される。これは、顔メタデータの再生時において、自機よりも性能の低い顔検出エンジンで検出された顔メタデータであることを認識した場合に、顔メタデータを再検出するか否かの指標として使用される。顔検出エンジンに関する情報は、例えば、ASCIIコードで記述される。
例えば、メタデータバージョンが「1.00」の場合には、図11に示すデータの順序で顔データ部640に各データが記録される。このため、コンテンツ再生装置がメタデータバージョンを「1.00」であると認識した場合には、それぞれのデータが固定長に、かつ予め決められた位置に配置されているため、顔データ部640の所望のデータの位置まで迅速にアクセスすることが可能となる。
コンテンツ画像サイズ638には、顔が検出された画像の高さおよび幅を示す情報が記録される。また、誤り検出符号値639には、顔が検出された画像において所定範囲で計算された誤り検出符号値(エラー訂正符号値)を示す情報が記録される。例えば、誤り検出符号値639には、顔メタデータの作成時において、対応する画像データから計算されたチェックサムの値が記録される。なお、誤り検出符号値としては、チェックサム以外に、CRC(Cyclic Redundancy Check:巡回冗長検査)やハッシュ関数を用いたハッシュ値等を用いることが可能である。
コンテンツ画像サイズ638および誤り検出符号値639は、コンテンツ更新日時633と同様に、動画コンテンツファイルと顔メタデータとの間で発生する不整合を検出するために用いられる。この不整合発生のメカニズムは、上述した(1)ステップ1乃至(3)ステップ3と同様である。例えば、静止画コンテンツファイルについては、静止画編集ソフトが数多く存在しているものの、これらの静止画編集ソフトの中には、静止画が編集された場合でもコンテンツ内部のコンテンツ日時情報が更新されないものが存在する。このような場合においては、コンテンツ更新日時の比較とともに、このコンテンツ画像サイズを用いた比較をすることによって、さらに確実な不整合を検出することが可能である。
図11は、顔データ部640に格納される顔データの概略を示す図である。なお、顔データ部640には、ヘッダ部630の顔データ構造フラグ660でビットアサインされた順序で各顔データが格納される。
顔データ部640には、顔検出時刻情報641と、顔基本情報642と、顔スコア643と、笑顔スコア644と、顔重要度645とが記録される。なお、これらの格納単位は、バイトで規定される。ここでは、上述したように、メタデータバージョンが「1.00」の場合における顔データとして定義されるメタデータを例にして説明する。
顔検出時刻情報641には、対応する動画コンテンツファイルの先頭を「0」として、この顔データが検出されたフレームの時刻が記録される。なお、顔検出時刻情報641には、ヘッダ部630のタイムスケール634に格納されたタイムスケールの整数倍の値が格納される。
顔基本情報642には、動画コンテンツファイルを構成する各フレームから検出された顔の位置および大きさが格納される。顔基本情報642として、顔位置情報が上位4バイトで規定され、顔サイズ情報が下位4バイトで規定される。また、顔位置情報は、例えば、顔が検出された画像における左上部分から検出された顔の左上部分までの差の値であり、上位16ビットで横軸の位置の値が規定され、下位16ビットで縦軸の位置の値が規定される。また、顔サイズ情報は、例えば、検出された顔の画像サイズを示す値であり、上位16ビットで顔の幅を示す値が規定され、下位16ビットで顔の高さを示す値が規定される。なお、顔基本情報642は、顔メタデータを利用するアプリケーションとしては最も重要なメタデータである。
顔スコア643には、検出された顔の顔らしさを表すスコアに関する情報が格納される。
笑顔スコア644には、検出された顔がどのくらい笑っているかに関するスコア情報が格納される。
顔重要度645には、同一時刻で検出された画像の優先順位(重要度)を示す情報が格納される。これは、例えば、1フレーム中で複数の顔が検出された場合において、画面の中心に近い顔から高い優先順位を割り当てたり、フォーカスされている顔に高い優先順位を割り当てることができる。格納される情報としては、例えば、小さい値ほど重要度が大きいと規定して、「1」を最大重要度と規定することができる。これにより、例えば、画像を表示する表示部が小さいモバイル機器を使用する場合でも、全ての顔画像を小さく表示する代わりに、優先順位の高い顔のみを大きく表示させることが可能となる。
本発明の実施の形態では、顔データを検出された時刻順序に記録する。これにより、時間順で検索する場合に迅速に行うことができる。さらに、同一の動画コンテンツファイルにおいては、全ての顔データに含まれるメタデータの種別は同じものとし、図11に示す順序で顔データを記録する。ただし、図11に示す全てのデータを記録する必要はないものの、同一の動画コンテンツファイルで同種のメタデータを記録する。これにより、全ての顔データが固定長となり、顔データへのアクセス性を向上させることができる。また、同一の動画コンテンツファイルで同種のメタデータが格納されているため、所定のメタデータへのアクセスを向上させることができる。
図12は、図10に示すヘッダ部630の顔データ構造フラグ660のデータ構造を示す図である。図13乃至図16は、顔データ構造フラグ660に格納されたビットと、顔データ部640に格納された顔データとの関係を示す図である。
本発明の実施の形態では、図11に示すように、顔データ部640において5個のメタデータが定義されているため、顔データ構造フラグ660のLSB(Least Significant Bit)から順番に、顔データ部640の順序に従って、0−4ビットにそれぞれのデータが割り当てられる。そして、顔データ構造フラグ660の各ビットには、顔メタデータのデータフィールドのデータの有無が格納される。すなわち、顔データ構造フラグ660の各ビットには、顔メタデータのデータフィールドにデータが存在する場合には「1」が格納され、データが存在しない場合には「0」が格納される。このように、顔データ部640に存在するメタデータが存在する場合には、対応するビットに「1」が設定される。なお、6ビット目以降は将来の顔データ内部のデータの拡張のための予約領域となる。
具体的には、例えば、図13(a)に示すように、顔データ部640には、メタデータバージョンが「1.00」で規定されたデータが格納されているとする。この場合には、図13(b)に示すように、LSBから0−4ビットのそれぞれには「1」が格納される。なお、コンテンツ記録装置は定義された全てのデータを記録する必要はなく、必要なデータのみを記録することができる。これにより、顔メタデータを利用するアプリケーションに応じた柔軟な顔メタデータの記録が可能となり、データ量を削減することも可能となる。
また、図14(a)に示すように、顔データ部640には、メタデータバージョンが「1.00」で規定された5つのデータのうちの3つのデータが、他のコンテンツ記録装置によって格納されているとする。この場合には、記録される顔データの順序は、図11に示す順序となり、記録されないデータの分はつめて記録される。図14(b)は、上記他のコンテンツ記録装置によって記録された顔データ構造フラグ660の実データの例を示すものであり、顔データとして存在するデータフィールドに割り当てられたフラグに「1」が格納される。このように、メタデータバージョンが「1.00」で規定された範囲内であれば、コンテンツ記録装置は、何れのメタデータでも記録することができる。また、顔メタデータを再生するコンテンツ再生装置は、他のコンテンツ記録装置により異なるメタデータが記録されていたとしても、ヘッダ部の情報を参照することによって顔データ内部のメタデータの有無を確認することができる。また、顔データが固定長であるため、所望のメタデータへのアクセスを高速に行うことが可能となる。
次に、本発明の実施の形態における顔データ部640に格納される顔データの拡張方法について図面を参照して説明する。
将来的に顔検出技術が向上した場合や検出された顔の結果を新たなアプリケーションで利用する場合等において、メタデータバージョンが「1.00」で規定された顔メタデータのみでは不十分な場合が想定される。
図15(a)に拡張された顔データの例を示す。ここでは、検出された顔の性別度合いを示す「性別スコア」と、フレーム上の顔の傾き度合いを示す「角度情報」とが拡張された顔データとして示されている。これらを追加した顔メタデータのメタデータバージョンが「1.10」として定義され、ヘッダ部のメタデータバージョンフィールドには「1.10」が記録される。メタデータの拡張の方法は、前バージョンで定義されたデータ下に新規メタデータを追加する形で行われる。具体的には、データを記録媒体170に記録する際には、顔データ単位でバージョン「1.00」で規定されたデータが記録された物理アドレスに連続する物理アドレスからバージョン「1.10」で規定されたデータを記録する。そして、バージョン「1.10」規定のメタデータが記録された物理アドレスに連続するアドレスに同様に次の顔データ単位のメタデータの記録が開始される。
図16(b)には、バージョン「1.10」で定義されたメタデータのうち、ある記録機によって記録されたメタデータを示す。例えば、図15(a)に示す拡張された顔データが記録される場合でも、図15(a)に示す顔データの全てが記録される必要はない。ただし、このように記録されない顔データが存在する場合には、図15(a)に示す顔データのうちの所定の顔データが図16(a)に示す順序で記録されるとともに、顔データが記録されないフィールド分はつめて記録される。
さらに、バージョン「1.10」へのバージョンアップにともない顔データ構造フラグも拡張され、バージョン「1.00」時には予約領域だったビットに、図15(a)で定義されたフィールド順序に従い新規ビットが割り当てられ、顔データ部にデータが存在するビットには、図15(b)のように「1」がセットされる。これにより、バージョン「1.10」に対応した再生機では、ヘッダ部の顔データ構造フラグのビット列を確認することにより、顔データ部のデータ構造を理解可能となり、個々の顔データは固定長となるため所望のメタデータまで迅速にアクセス可能となる。
さらに、バージョン「1.10」に対応する記録機によって、着脱可能な記録媒体に顔メタデータが記録され、この記録媒体がバージョン「1.00」にのみ対応する再生機に移動された場合を考える。この場合において、この再生機はヘッダ部の顔データ構造フラグの0−4ビットまでは認識可能である。また、顔データサイズの仕様が変わっていないため、バージョン「1.00」で想定されていない顔データが格納されていたとしても、この再生機は、バージョン「1.00」で規定されている顔データを認識することが可能である。例えば、図16に示す例では、この再生機は、「顔検出時刻情報」、「顔基本情報」、「顔スコア」、「顔重要度」を理解することができる。このため、この再生機は、これらのメタデータへのアクセスが可能である。このように、メタデータエントリは、アクセス性に優れているデータ構造であるとともに、記録機または再生機のバージョンが変更された場合でも、この変更に対応することが可能である。
次に、本発明の実施の形態における撮像装置100の機能構成例について図面を参照して説明する。
図17は、本発明の実施の形態における撮像装置100の機能構成例を示すブロック図である。この撮像装置100は、コンテンツ管理ファイル記憶部210と、コンテンツ入力部211と、顔検出部212と、顔メタデータ作成部213と、仮想管理情報作成部214と、代表サムネイル画像抽出部215と、コンテンツ属性情報作成部216と、記録制御部217とを備える。
コンテンツ管理ファイル記憶部210は、仮想的な階層構造により構成される階層エントリを記録するコンテンツ管理ファイル340を記憶するものである。なお、コンテンツ管理ファイル340の詳細については、図3乃至図9等に示す。
コンテンツ入力部211は、コンテンツファイルを入力するものであり、入力されたコンテンツファイルを、顔検出部212、顔メタデータ作成部213、仮想管理情報作成部214、代表サムネイル画像抽出部215およびコンテンツ属性情報作成部216に出力する。具体的には、カメラ部110で撮影されたフレームがコンテンツ入力部211から順次入力される。
顔検出部212は、コンテンツ入力部211から入力されたコンテンツファイルに含まれる顔を検出するものであり、検出された顔の出現時刻および位置等を顔メタデータ作成部213に出力する。なお、同一時刻の画像から複数の顔が検出された場合には、検出された各顔についての出現時刻および位置等を顔メタデータ作成部213に出力する。
顔メタデータ作成部213は、コンテンツ入力部211から入力されたコンテンツファイルに基づいて顔メタデータを作成するものであり、作成された顔メタデータを記録制御部217に出力する。この顔メタデータ作成部213は、顔データ作成部218およびヘッダ情報作成部219を含む。顔データ作成部218は、顔検出部212により検出された顔の出現時刻および位置等に基づいてその顔に関する顔データ(図11の顔データ部640の各データ)を作成するものである。また、ヘッダ情報作成部219は、顔データ作成部218により作成された顔データを管理するヘッダ情報(図10のヘッダ部630の各情報)を作成するものである。これら顔データ作成部218により作成された顔データおよびヘッダ情報作成部219により作成されたヘッダ情報は、記録制御部217に出力される。また、顔データ作成部218は、所定間隔で検出された顔のうちで所定条件を満たさない顔については、顔に関する顔データを作成しないようにしてもよい。
仮想管理情報作成部214は、コンテンツ入力部211から入力されたコンテンツファイルを仮想的に管理するための仮想管理情報401(図5)を、そのコンテンツファイルに基づいて作成するものであり、作成された仮想管理情報を記録制御部217に出力する。
代表サムネイル画像抽出部215は、コンテンツ入力部211から入力されたコンテンツファイルから、そのコンテンツファイルの代表サムネイル画像501乃至506(図5)を抽出するものであり、抽出された代表サムネイル画像をコンテンツ属性情報作成部216および記録制御部217に出力する。
コンテンツ属性情報作成部216は、コンテンツ入力部211から入力されたコンテンツファイルに関するコンテンツ属性情報402(図5)を、そのコンテンツファイルに基づいて作成するものであり、作成されたコンテンツ属性情報を記録制御部217に出力する。また、コンテンツ属性情報作成部216は、代表サムネイル画像抽出部215により抽出された代表サムネイル画像に対応するコンテンツファイルに関するコンテンツ属性情報にその代表サムネイル画像のサムネイルファイル500における記録位置(サムネイルアドレス)を含めて属性情報を作成する。
記録制御部217は、仮想管理情報作成部214により作成された仮想管理情報401とコンテンツ属性情報作成部216により作成されたコンテンツ属性情報402とを含む動画ファイルエントリ414をプロパティファイル400としてコンテンツ管理ファイル記憶部210に記録するものである。また、記録制御部217は、顔メタデータ作成部213により作成された顔メタデータを含むメタデータエントリ415を、その顔メタデータが作成されたコンテンツファイルに対応する動画ファイルエントリ414のプロパティファイル400における下位の階層としてコンテンツ管理ファイル記憶部210に記録する。さらに、記録制御部217は、代表サムネイル画像抽出部215により抽出された代表サムネイル画像をサムネイルファイル500としてコンテンツ管理ファイル記憶部210に記録する。
図18は、本発明の実施の形態における撮像装置100の機能構成例を示すブロック図である。この撮像装置100は、コンテンツ管理ファイル記憶部210と、操作受付部221と、コンテンツ記憶部223と、選択部224と、抽出部225と、描画部226と、表示部227とを備える。
コンテンツ管理ファイル記憶部210は、記録制御部217(図17)によって記録されたコンテンツ管理ファイル340を記憶するものである。そして、コンテンツ管理ファイル340に記録されている各エントリを選択部224および抽出部225に出力する。
操作受付部221は、各種入力キーを備え、これらの入力キーから操作入力を受け付けると、受け付けた操作入力の内容を選択部224に出力するものである。なお、操作受付部221の少なくとも一部と表示部227とをタッチパネルとして一体化して構成するようにしてもよい。
コンテンツ記憶部223は、動画や静止画等のコンテンツファイルを記憶するものであり、記憶されているコンテンツファイルを抽出部225および描画部226に出力する。
選択部224は、操作受付部221から入力された操作入力に応じた選択処理を実行し、この選択結果を抽出部225に出力するものである。具体的には、選択部224は、表示部227に表示されている代表サムネイル画像のうちから1つの代表サムネイル画像を選択する旨の操作入力を操作受付部221から入力すると、その操作入力に応じて、選択された代表サムネイル画像に対応するファイルエントリを選択して、その選択されたファイルエントリのエントリ番号を抽出部225に出力する。また、選択部224は、表示部227に表示されている顔サムネイル画像のうちから1つの顔サムネイル画像を選択する旨の操作入力を操作受付部221から入力すると、その操作入力に応じて、選択された顔サムネイル画像に対応する顔データを選択して、その選択された顔データの顔検出時刻情報641を抽出部225に出力する。すなわち、選択部224は、コンテンツ管理ファイル記憶部210に記憶されているコンテンツ管理ファイルに記録されているファイルエントリの中から所望のファイルエントリを選択するものであり、また、メタデータエントリに含まれる顔メタデータの顔データの中から、所望する顔データを選択するものである。
抽出部225は、選択部224から入力されたファイルエントリのエントリ番号に基づいて、コンテンツ記憶部223に記憶されているコンテンツファイルを抽出するものである。また、抽出部225は、選択部224から入力されたエントリ番号に対応するファイルエントリの下位階層に記録されているメタデータエントリに含まれる顔データを抽出し、この顔データに含まれる顔の時刻および位置等に基づいて、この顔データに対応する顔サムネイル画像をコンテンツファイルから抽出する。さらに、抽出部225は、選択部224から入力された選択された顔データの顔検出時刻情報641が含まれるメタデータエントリの上位階層に記録されているファイルエントリに基づいてコンテンツファイルを抽出する。また、抽出部225は、選択部224から入力された顔検出時刻情報641に対応する記録時間以降に記録された動画を、コンテンツ記憶部223に記憶されているコンテンツファイルから抽出する。なお、抽出部225は、これらの抽出した結果を描画部226に出力する。なお、これらの選択および抽出については、図19および図20を参照して詳細に説明する。
また、抽出部225は、コンテンツ記憶部223に記憶されているコンテンツファイルに対応する画像とこの画像に対応する顔データとについて所定の条件を満たすか否かを確認して、所定の条件を満たす画像に含まれる顔に関する顔データについて、所望の要素情報の各顔データにおける先頭からの記録オフセット値を算出し、この算出された記録オフセット値に基づいて顔データから所望の要素情報を読み出す。また、抽出部225は、所定の条件を満たさない場合には、所定の条件を満たさないと判断された画像とは異なる画像に対応する顔データおよび顔データ管理情報を検索する。なお、これらの要素情報の読出しは、図26、図27、図31、図32を参照して詳細に説明する。
描画部226は、抽出部225から入力された抽出結果に基づいて、コンテンツ記憶部223に記憶されているコンテンツファイルから抽出された顔サムネイル画像、コンテンツ記憶部223に記憶されているコンテンツファイルから抽出された動画等を描画するものである。また、描画部226は、コンテンツ管理ファイル記憶部210のサムネイルファイル500に記憶されている代表サムネイル画像を描画するものである。
表示部227は、描画部226により描画された画像を表示するものである。
次に、プロパティファイルと、サムネイルファイルと、動画コンテンツファイルとの関係について図面を参照して詳細に説明する。
図19は、動画ファイルエントリ414と、メタデータエントリ415と、サムネイルファイル500と、動画コンテンツファイル312との関係を概略的に示す図である。
例えば、図19に示すように、動画ファイルエントリ414には、動画コンテンツファイル312のコンテンツアドレスを示す「A312」と、動画コンテンツファイル312に対応する代表サムネイル画像502のサムネイルアドレスを示す「#2」が格納されている。また、動画ファイルエントリ414の子エントリリストには、動画コンテンツファイル312に関するメタデータが格納されているメタデータエントリ415のエントリ番号「#31」が格納されている。また、メタデータエントリ415の親エントリリストには、動画ファイルエントリ414のエントリ番号「#28」が格納されている。さらに、メタデータエントリ415の顔メタデータには、図9および図11に示すように、検出された顔に関する各種の顔メタデータが格納されている。この顔メタデータのうちの顔検出時刻情報および顔基本情報に基づいて、動画コンテンツファイル312の各フレームのうちから、1つのフレームを特定することができる。なお、これらの関係を矢印で示す。
このように各エントリの内容を関連付けて管理することによって、コンテンツファイルのサーチを迅速に行うことができる。
例えば、2006年1月11日に撮影された動画像の一覧を表示する場合には、プロパティファイル400の各エントリの中で、動画コンテンツファイルを管理する動画フォルダエントリ410がサーチされ、サーチされた動画フォルダエントリ410の中の子エントリリストに格納された日付フォルダエントリ411および416の中から、2006年1月11日の日付に対応するファイルを管理する日付フォルダエントリ411がサーチされる。続いて、サーチされた日付フォルダエントリ411の子エントリリストに格納された動画ファイルエントリ412および414がサーチされ、各動画ファイルエントリ412および414に記録されたサムネイルファイル500のサムネイルアドレス(エントリ参照情報)が抽出される。続いて、サムネイルファイル500がオープンされ、抽出されたサムネイルアドレスに基づいてサムネイルファイル500から代表サムネイル画像が抽出され、抽出された代表サムネイル画像が表示される。
なお、コンテンツ管理ファイル340を用いずに、2006年1月11日に撮影された動画像の一覧を表示する場合には、各コンテンツファイルをサーチするために、全ての実コンテンツファイルのオープンおよびクローズが必要となり、処理に時間を要する。さらに、代表サムネイル画像を表示する場合には、実コンテンツファイルに対応する画像を縮小して表示するという処理が必要になるため、さらに処理時間を要することになる。
また、例えば、2006年1月11日に記録された動画像に登場する人物の顔を表示する場合には、表示されている代表サムネイル画像502に基づいて、動画ファイルエントリ414およびメタデータエントリ415が抽出され、動画ファイルエントリ414が管理する動画コンテンツファイル312にアクセスされ、メタデータエントリ415に記憶されている顔メタデータ(顔検出時刻情報641、顔基本情報642)に基づいて動画コンテンツファイル312から顔画像が抽出され、抽出された顔画像を表示させることができる。
図20は、コンテンツ管理ファイル340を用いたアプリケーションの一例を示す図である。ここでは、動画コンテンツファイル312に関する各種画像をLCD162に表示させ、動画コンテンツファイル312に対応する画像を所望の時刻から再生する場合について説明する。
最初に、図19で示したように、サムネイルファイル500がオープンされ、サムネイルファイル500に格納されている代表サムネイル画像501乃至506の一覧がLCD162に表示される。例えば、表示画面710に示すように、代表サムネイル画像501乃至503が表示される。また、選択マーク715が付されている代表サムネイル画像502の右側には、代表サムネイル画像502に対応する動画コンテンツファイル312の記録日時714が表示されている。また、上ボタン711または下ボタン712を押下することによって、スクロールバー713を上下に移動させ、表示画面710に表示される代表サムネイル画像を上下に移動させ、他の代表サムネイル画像を表示させることができる。また、代表サムネイル画像は、例えば、記録日時の順番で上から表示させることができる。
表示画面710において、代表サムネイル画像502を選択する旨の操作入力がされると、代表サムネイル画像502に対応する動画ファイルエントリ414に格納されているコンテンツアドレスに基づいて、動画ファイルエントリ414に対応する動画コンテンツファイル312が抽出される。そして、動画ファイルエントリ414に格納されている子エントリリストに基づいて、動画ファイルエントリ414に対応するメタデータエントリ415が抽出される。続いて、メタデータエントリ415に格納されている顔メタデータに基づいて、動画コンテンツファイル312から顔サムネイル画像が抽出され、抽出された顔サムネイル画像の一覧がLCD162に表示される。この顔サムネイル画像は、例えば、表示画面720に示すように、一人の顔を含む矩形画像である。また、例えば、表示画面720に示すように、表示画面710で選択された代表サムネイル画像502が左側に表示されるとともに、右側の顔サムネイル画像表示領域725には、抽出された顔サムネイル画像730乃至732が表示される。また、選択されている顔サムネイル画像には、選択マーク726が付される。また、表示画面710で選択された代表サムネイル画像502に対応する動画コンテンツファイル312の記録日時724が表示されている。また、左ボタン721または右ボタン722を押下することによって、スクロールバー723を左右に移動させ、表示画面720に表示される顔サムネイル画像を左右に移動させ、他の顔サムネイル画像を表示させることができる。また、顔サムネイル画像は、例えば、記録日時の順番で左から表示させることができる。
表示画面720において、例えば、顔サムネイル画像731を選択する旨の操作入力がされると、メタデータエントリ415に格納されている顔メタデータの顔検出時刻情報の中から、顔サムネイル画像731に対応する顔検出時刻情報が抽出される。この場合に、選択された顔サムネイル画像731についての先頭から順番に基づいて、メタデータエントリ415に格納されている顔メタデータから、顔サムネイル画像731に対応する顔データが特定され、この顔データに含まれる顔検出時刻情報が抽出される。続いて、抽出された顔検出時刻情報に基づいて、動画コンテンツファイル312のうちの顔検出時刻情報に対応する時刻からの再生画像がLCD162に表示される。例えば、図19に示すように、動画コンテンツファイル312のフレーム704から動画が再生される。そして、表示画面740に示すように、その再生画像が表示されるとともに、右上部分には再生画像の記録日時741が表示される。このように、所定の人物(例えば、本人)が出現する時刻から動画を再生させたい場合には、その人物に関する顔サムネイル画像を選択することによって、その時刻からの再生を容易に行うことができる。なお、同一時刻の画像から複数の顔が検出された場合には、同一時刻の複数の顔データが作成される。この場合には、それぞれの顔データに基づいて顔サムネイル画像が抽出される。このため、同一時刻の顔サムネイル画像が複数表示される場合がある。このように、同一時刻の顔サムネイル画像が複数表示されている場合においては、同一時刻の顔サムネイル画像の何れかが選択された場合でも、同一時刻からの動画が再生される。
このように、仮想ファイル構造であるエントリから実ファイル構造への連結情報(コンテンツアドレス)が格納されているため、ファイルエントリ内の何らかの情報(例えば、記録日時に関する情報)からコンテンツファイルを検索して再生する場合には、その日時が記録されているファイルエントリを検索し、そのファイルエントリ内のコンテンツアドレスに基づいてコンテンツファイルを再生することができる。このように、全てのコンテンツファイルをオープンさせずにプロパティファイルのみをオープンさせればよく、さらに、スロットによる固定長管理(エントリ番号管理)であるため、迅速な処理が可能となる。
仮に、仮想ファイル管理をしない場合において、同様の検索を行う場合には、実際にコンテンツファイルをオープンさせた後に、その内部の情報(例えば、記録日時情報)を読み出し、ファイルクローズし、さらに次のコンテンツファイルをオープンするという処理が必要となり検索に莫大な時間を要する。また、記録媒体の記録容量が大きくなれば、記録されるコンテンツ数も増加するため、問題がさらに顕著になる。
次に、本発明の実施の形態における撮像装置100の動作について図面を参照して説明する。
図21は、撮像装置100によるプロパティファイル400の記録処理の処理手順を示すフローチャートである。なお、ここでは、コンテンツファイルとして、撮像された画像データに対応する動画コンテンツファイルが入力された場合について説明する。
最初に、カメラ部110で撮像された画像が符号化され、符号化された画像データであるストリームがコンテンツ入力部211に入力される(ステップS901)。
続いて、入力されたストリームを構成するフレームが、シーケンスの先頭のIピクチャまたはIDRピクチャであるか否かが順次判断される(ステップS902)。入力されたストリームを構成するフレームが、IピクチャおよびIDRピクチャの何れでもなければ(ステップS902)、ストリームの入力が継続される(ステップS901)。
一方、入力されたストリームを構成するフレームが、IピクチャまたはIDRピクチャであれば(ステップS902)、そのフレームから顔検出部212が顔を検出する(ステップS903)。続いて、検出された顔が所定条件の範囲内の顔であるか否かが判断される(ステップS904)。顔が検出されなかった場合、または、検出された顔が所定条件の範囲内の顔でなかった場合には(ステップS904)、ステップS903に戻り、フレームからの顔の検出を繰り返す。
一方、検出された顔が所定条件の範囲内の顔であった場合には(ステップS904)、検出された顔に基づいて顔データが作成され、作成された顔データがメモリに記録される(ステップS905)。続いて、1つのフレーム内において顔の検出が終了したか否かが判断される(ステップS906)。つまり、1フレーム内の全ての領域で顔検出を行う。1つのフレーム内において顔の検出が終了していなければ(ステップS906)、ステップS903に戻り、フレームからの顔の検出を繰り返す。
一方、1つのフレーム内において顔の検出が終了していれば(ステップS906)、ストリームの入力が終了したか否かが判断される(ステップS907)。つまり、1つのまとまった画像コンテンツの入力が終了したか否かが判断される(ステップS907)。ストリームの入力が終了していなければ(ステップS907)、ステップS901に戻り、ストリームの入力を継続する。
ストリームの入力が終了していれば(ステップS907)、メモリに記録されている顔データに基づいて顔メタデータのヘッダ部630(図10)に記録されるヘッダ情報が作成される(ステップS908)。
続いて、作成されたヘッダ情報を記録するヘッダ部と、検出された顔に対応する顔データを記録する顔データ部とを含むメタデータエントリが作成される(ステップS909)。続いて、入力されたストリームに対応する動画コンテンツファイルを管理するファイルエントリが作成される(ステップS910)。
続いて、プロパティファイル400がオープンされ(ステップS911)、作成されたメタデータエントリおよびファイルエントリについてのエントリ番号が計算され、この計算された結果に基づいて、作成されたメタデータエントリおよびファイルエントリがプロパティファイル400に割り当てられる(ステップS912)。つまり、複数のエントリがスロット番号順にプロパティファイル400に割り当てられる。
続いて、プロパティファイル400に割り当てられたファイルエントリの子エントリリストに、このファイルエントリに属するメタデータエントリのエントリ番号が記録され、また、このメタデータエントリの親エントリリストに、このメタデータエントリが属するファイルエントリのエントリ番号が記録される(ステップS913)。
続いて、プロパティファイル400に割り当てられたファイルエントリが属するフォルダエントリの子エントリリストに、このファイルエントリのエントリ番号が記録され、また、このファイルエントリの親エントリリストに、このフォルダエントリのエントリ番号が記録される(ステップS914)。続いて、プロパティファイル400がクローズされて(ステップS915)、プロパティファイル400の記録処理の処理手順が終了する。
なお、ステップS901で入力されたストリームを構成するフレームが、先頭のフレームである場合には、代表画像である代表サムネイル画像が抽出され(ステップS903)、この代表サムネイル画像がサムネイルファイル500に格納されるとともに、この代表サムネイル画像のサムネイルアドレスが、対応するファイルエントリのサムネイルアドレスに記録される(ステップS912)。また、入力されたストリームに対応するコンテンツファイルのコンテンツアドレスが、対応するファイルエントリのコンテンツアドレスに格納される(ステップS912)。
次に、動画コンテンツファイルを再生する場合に、所望する撮影時刻から再生させる場合における動作について図面を参照して説明する。
図22乃至図24は、撮像装置100による動画コンテンツファイルの再生処理の処理手順を示すフローチャートである。
操作部140からの操作入力を監視して、動画コンテンツファイルの一覧表示を指示する旨の操作入力がされたか否かが判断される(ステップS921)。コンテンツ一覧表示を指示する旨の操作入力がされなければ(ステップS921)、操作入力の監視を継続する。
コンテンツ一覧表示を指示する旨の操作入力がされると(ステップS921)、プロパティファイル400をオープンさせ(ステップS922)、プロパティファイル400から動画コンテンツファイルを管理するフォルダエントリが抽出される(ステップS923)。続いて、抽出されたフォルダエントリに記録されている子エントリリストから、日付フォルダエントリのエントリ番号が抽出され、抽出されたエントリ番号に基づいて日付フォルダエントリが抽出される(ステップS924)。
続いて、抽出された日付フォルダエントリに記録されている子エントリリストから、動画ファイルエントリのエントリ番号が抽出され、抽出されたエントリ番号に基づいて動画ファイルエントリが抽出される(ステップS925)。続いて、抽出されたファイルエントリのエントリ番号がメモリに順次記録される(ステップS926)。続いて、メモリに記録されたエントリ番号に対応するファイルエントリに記録されているサムネイルアドレスがメモリに順次記録される(ステップS927)。
続いて、1つの日付フォルダエントリに属するファイルエントリに記録されているサムネイルアドレスの抽出が全て終了したか否かが判断される(ステップS928)。終了していなければ、ステップS927に戻り、抽出処理を繰り返す。
一方、サムネイルアドレスの抽出が全て終了していれば(ステップS928)、全ての日付フォルダエントリについての抽出が終了したか否かが判断される(ステップS929)。全ての日付フォルダエントリについての抽出が終了していなければ(ステップS929)、ステップS925に戻り、抽出処理を繰り返す。
全ての日付フォルダエントリについての抽出が終了していれば(ステップS929)、プロパティファイル400をクローズさせ(ステップS930)、サムネイルファイル500をオープンさせる(ステップS931)。続いて、ステップS927においてメモリに記録されたサムネイルアドレスに基づいて、サムネイルファイル500から代表サムネイル画像が読み出され、読み出された代表サムネイル画像がメモリに順次記録される(ステップS932)。続いて、サムネイルファイル500をクローズさせる(ステップS933)。続いて、ステップS932においてメモリに記録された代表サムネイル画像がLCD162に表示される(ステップS934)。例えば、図20の表示画面710に示すように表示される。
続いて、LCD162に表示されているサムネイル画像の中から、1つのサムネイル画像を選択する旨の操作入力が操作部140からされたか否かが判断される(ステップS935)。この操作入力がなければ(ステップS935)、操作入力の監視を継続する。
代表サムネイル画像を選択する旨の操作入力がされると(ステップS935)、選択された代表サムネイル画像の順番に基づいて、ステップS926においてメモリに記録されたファイルエントリのエントリ番号が抽出される(ステップS936)。続いて、プロパティファイル400がオープンされ(ステップS937)、抽出されたエントリ番号に対応するファイルエントリがプロパティファイル400から抽出される(ステップS938)。
続いて、抽出されたファイルエントリに記録されている子エントリリストからメタデータエントリのエントリ番号が抽出され、抽出されたメタデータエントリのエントリ番号がメモリに記録される(ステップS939)。続いて、メモリに記録されたエントリ番号に対応するメタデータエントリがプロパティファイルから抽出される(ステップS940)。続いて、抽出されたメタデータエントリから顔メタデータが抽出され(ステップS941)、抽出された顔メタデータのヘッダ部の情報が確認される(ステップS942)。
続いて、ヘッダ部の情報に基づいて顔データが順次読み出され(ステップS943)、読み出された顔データに含まれる顔基本情報がメモリに順次記録される(ステップS944)。続いて、全ての顔データの読み出しが終了したか否かが判断される(ステップS945)。全ての顔データの読み出しが終了していなければ(ステップS945)、顔データの読み出しおよびメモリへの記録を継続する(ステップS943およびステップS944)。全ての顔データの読み出しが終了していれば(ステップS945)、プロパティファイル400をクローズさせ(ステップS946)、ステップS944においてメモリに記録された顔基本情報に基づいて、動画コンテンツファイルから顔サムネイル画像が作成され、作成された顔サムネイル画像がメモリに順次記録される(ステップS947)。続いて、ステップS947においてメモリに記録された顔サムネイル画像がLCD162に表示される(ステップS948)。例えば、図20の表示画面720に示すように表示される。
続いて、LCD162に表示されている顔サムネイル画像の中から、1つの顔サムネイル画像を選択する旨の操作入力が操作部140からされたか否かが判断される(ステップS949)。この操作入力がなければ(ステップS949)、操作入力の監視を継続する。
顔サムネイル画像を選択する旨の操作入力がされると(ステップS949)、選択された顔サムネイル画像の表示順に応じた番号がメモリに記録される(ステップS950)。続いて、プロパティファイル400がオープンされ(ステップS951)、ステップS939においてメモリに記録されたメタデータエントリのエントリ番号に基づいて、このメタデータエントリがプロパティファイル400から抽出される(ステップS952)。
続いて、抽出されたメタデータエントリから顔メタデータが抽出され(ステップS953)、抽出された顔メタデータから、ステップS950においてメモリに記録された番号に対応する顔データが抽出される(ステップS954)。続いて、抽出された顔データから顔検出時刻情報が抽出され、抽出された顔検出時刻情報がメモリに記録される(ステップS955)。
続いて、メモリにエントリ番号が記録されているメタデータエントリの親エントリリストに対応するファイルエントリのエントリ番号が抽出され(ステップS956)、抽出されたエントリ番号に対応するファイルエントリがプロパティファイル400から抽出される(ステップS957)。続いて、抽出されたファイルエントリに記録されているコンテンツアドレスが抽出され、抽出されたコンテンツアドレスがメモリに記録される(ステップS958)。そして、プロパティファイル400がクローズされる(ステップS959)。
続いて、ステップS957において抽出されたコンテンツアドレスに対応するコンテンツファイルについて、ステップS955においてメモリに記録された顔検出時刻情報に対応する時刻から再生を開始させる(ステップS960)。
図25は、図9に示すメタデータエントリ600に含まれる顔メタデータ620の構成を概略的に示す図である。ここでは、顔データに記録されているデータをデータ1乃至6として、顔データの読出処理における顔データのオフセット値の計算方法について説明する。
顔メタデータ620のヘッダサイズaは、顔メタデータ620のヘッダ部630のヘッダサイズ631に記録されている。また、顔メタデータ620の顔データサイズbは、顔メタデータ620のヘッダ部630の顔データサイズ636に記録されている。cは、1つの顔データの所望データまでの距離を示す。顔メタデータ620から必要なデータを読み出す場合には、各顔データの先頭からのオフセット値を、以下に示す式1を用いて計算し、計算して求められたオフセット値を用いてデータを読み出す。これにより、顔データに記録されているデータから所望のデータを読み出す場合に、読出処理を迅速に行うことができる。例えば、図25には、必要なデータ(所望データ)がデータ3である場合を示す。
a+c+n×b(n:0以上の整数)[byte]……(式1)
図26は、撮像装置100による顔データの読出処理の処理手順を示すフローチャートである。この処理手順は、例えば、図23に示すステップS941乃至ステップS943に対応する。ここでは、図10に示すヘッダ部630を参照して説明する。
最初に、メタデータエントリから顔メタデータが読み出される(ステップS971)。続いて、読み出された顔メタデータのヘッダ部630の情報が読み出される(ステップS972)。続いて、読み出されたヘッダ部630のメタデータバージョン632に記録されている顔メタデータのバージョン情報に基づいて、撮像装置100が対応可能な顔メタデータのバージョンであるか否かが判断される(ステップS973)。なお、ここでは、所望するデータが存在する顔メタデータのバージョンであるか否かも判断される。例えば、バージョン「1.10」から付加された顔メタデータを使用する場合において、バージョン「1.00」が確認された場合には、ステップS980に進む。
対応可能な顔メタデータのバージョンではない場合には(ステップS973)、ステップS980に進み、コンテンツ記憶部223に記憶されている全てのコンテンツについて顔データの読出処理が終了したか否かが判断される(ステップS980)。
対応可能な顔メタデータのバージョンである場合には(ステップS973)、対応する動画コンテンツファイルの更新日時と、ヘッダ部630のコンテンツ更新日時633に記録されている更新日時とが同じであるか否かが判断される(ステップS974)。
動画コンテンツファイルの更新日時と、ヘッダ部630のコンテンツ更新日時633に記録されている更新日時とが同じでない場合には(ステップS974)、顔の再検出を行う設定であるか否かが判断される(ステップS982)。顔の再検出を行う設定である場合には、更新日時が同じでないと判断された動画コンテンツファイルについて、ステップS900のプロパティファイルの記録処理を実行して(ステップS900)、ステップS971に戻る。そして、プロパティファイルの記録処理が実行された動画コンテンツファイルに対応するメタデータエントリから顔メタデータが読み出される(ステップS971)。
動画コンテンツファイルの更新日時と、ヘッダ部630のコンテンツ更新日時633に記録されている更新日時とが同じある場合には(ステップS974)、対応する動画コンテンツファイルの画像サイズと、ヘッダ部630のコンテンツ画像サイズ638に記録されている画像サイズとが同じであるか否かが判断される(ステップS975)。動画コンテンツファイルの画像サイズと、ヘッダ部630のコンテンツ画像サイズ638に記録されている画像サイズとが同じでない場合には(ステップS975)、ステップS982に進み、上述した処理を繰り返す。
動画コンテンツファイルの画像サイズと、ヘッダ部630のコンテンツ画像サイズ638に記録されている画像サイズとが同じである場合には(ステップS975)、ヘッダ部630の顔データ個数635に「0」が記録されているか否かが判断される(ステップS976)。顔データ個数635に「0」が記録されている場合には(ステップS976)、対象となる動画コンテンツファイルから顔が検出されず、顔データが存在しない場合であるため、ステップS980に進む。
顔データ個数635に「0」が記録されていない場合には(ステップS976)、ヘッダ部630の顔データ構造フラグ660の記録に基づいて、必要なデータが顔データとして記録されているか否かが判断される(ステップS977)。これは、バージョンが同じでも、必要なデータが含まれていない可能性があるために行うものである。必要なデータが顔データとして記録されていない場合には(ステップS977)、ステップS980に進む。
必要なデータが顔データとして記録されている場合には(ステップS977)、顔データ構造フラグ660の記録に基づいて、式1を用いて顔データ内の必要なデータまでのオフセット値が計算される(ステップS978)。これは、必要なデータが顔データ内で先頭から何バイト目から始まるかを求めるためのものである。また、顔データがどのような構造であるかを検索するためのものである。続いて、計算して求められたオフセット値に基づいて、顔データを読み出す(ステップS979)。続いて、コンテンツ記憶部223に記憶されている全てのコンテンツについて顔データの読出処理が終了したか否かが判断される(ステップS980)。コンテンツ記憶部223に記憶されている全てのコンテンツについて顔データの読出処理が終了した場合には(ステップS980)、顔データの読出処理を終了する。
一方、コンテンツ記憶部223に記憶されている全てのコンテンツについて顔データの読出処理が終了していない場合には(ステップS980)、コンテンツ記憶部223に記憶されているコンテンツの中で、顔データの読出処理が終了していないコンテンツに対応するメタデータエントリから顔メタデータが選択され(ステップS981)、顔データの読出処理を繰り返す(ステップS971乃至ステップS979)。なお、この例では、コンテンツ記憶部223に記憶されている全てのコンテンツについて、顔データの読出処理を実行する場合について説明したが、コンテンツ記憶部223に記憶されているコンテンツの中の所望のコンテンツについてのみ顔データの読出処理を実行する場合についても、この例を適用することができる。
このように、コンテンツ更新日時の比較とともに、コンテンツ画像サイズを用いた比較をすることによって、さらに確実な不整合を検出することが可能である。
図27は、撮像装置100による顔データの読出処理の処理手順を示すフローチャートである。この処理手順は、チェックサムを用いて不整合を検出する処理手順であり、図26に示す処理手順において、ステップS974およびステップS975の代わりに、ステップS983およびステップS984の処理を行うものである。このため、ステップS983およびステップS984について詳細に説明し、他の処理についての説明を省略する。また、ここでは、図10に示すヘッダ部630を参照して説明する。
ステップS972で読み出されたヘッダ部630のメタデータバージョン632に記録されている顔メタデータのバージョン情報に基づいて、撮像装置100が対応可能な顔メタデータのバージョンであるか否かが判断される(ステップS973)。そして、対応可能な顔メタデータのバージョンである場合には(ステップS973)、対応する動画コンテンツファイルの画像データからチェックサムが計算される(ステップS983)。このチェックサムの計算を行う場合において、対応する全ての画像データに基づいてチェックサムの計算を行うと、多くの処理時間を要すると考えられる。このため、対応する画像データのうちから、記録再生処理に支障がない程度の画像データを抽出して、この抽出された画像データを用いてチェックサムを計算するようにしてもよい。例えば、画像データの開始から100バイトまでの値を用いてチェックサムを計算することができる。この場合には、ヘッダ部630の誤り検出符号値639に記録されているチェックサムの値についても、画像データの開始から100バイトまでの値を用いて計算されている。
続いて、計算して求められたチェックサムの値と、ヘッダ部630の誤り検出符号値639に記録されているチェックサムの値とが同じであるか否かが判断される(ステップS984)。
計算して求められたチェックサムの値と、ヘッダ部630の誤り検出符号値639に記録されているチェックサムの値とが同じである場合には(ステップS984)、顔メタデータが信頼できるものであると判断することができるため、ステップS976に進む。一方、計算して求められたチェックサムの値と、ヘッダ部630の誤り検出符号値639に記録されているチェックサムの値とが同じでない場合には(ステップS984)、ステップS982に進む。ここで、誤り検出符号値として、CRCやハッシュ関数を用いたハッシュ値を用いる場合についても同様にこの処理手順を適用することができる。また、図26および図27で示したコンテンツ更新日時の比較(ステップS974)、コンテンツ画像サイズの比較(ステップS975)、チェックサムの比較(ステップS983およびステップS984)のうちの少なくとも2つを組み合わせて不整合を検出するようにしてもよい。
次に本発明の実施の形態の変形例について図面を参照して詳細に説明する。
ここでは、コンテンツファイルが動画コンテンツファイルである場合において、この動画コンテンツファイルに基づいて作成された顔メタデータを含むメタデータエントリをコンテンツ管理ファイル340に記録するとともに、この動画コンテンツファイル内部にも記録を行う例について説明する。この例では、顔メタデータを、図2に示すAU(アクセスユニット)に含まれるSEI NALユニットの付加情報として記録する場合について説明する。
図2を参照して説明したように、本発明の実施の形態において、MPEG4−AVCで符号化された動画ストリームに含まれる顔を検出するタイミングは、IDR AUまたはnon−IDR−I AUが出現するタイミングである。このため、例えば、IDR AUに対応するフレームから顔が検出された場合には、この検出された顔に関する顔メタデータが、そのIDR AUの中に含まれるSEI NALユニットの付加情報として記録される。例えば、図2に示すように、AU180に対応するフレームから顔が検出された場合には、この検出された顔に関する顔メタデータが、AU180に含まれるSEI NALユニット181の付加情報として記録される。また、AU190に対応するフレームから顔が検出された場合には、この検出された顔に関する顔メタデータが、AU190に含まれるSEI NALユニット191の付加情報として記録される。
ここで、SEI NALユニット(以下、SEIと称する。)に記録される顔メタデータは、例えば、図10に示すヘッダ部630および図11に示す顔データ部640から構成される顔メタデータ620である。なお、図13乃至図16等を参照して説明したように、顔データ部640については、必要な情報のみとすることができる。
ここで、SEIに記録される顔データが満たすべき所定の条件について図28を参照して詳細に説明する。上述したように、コンテンツ管理ファイル340において顔データ部に顔データの値を記録する場合には、例えば、所定の条件(顔の大きさ、位置、直前に検出された顔の個数の増減等)に基づいて、1フレーム内において検出された顔のうちで、顔データ部に記録すべき顔データを規定して制限していた。これに対して、SEIに顔データを記録する場合には、1フレーム内において検出された顔に関する顔メタデータを極力記録するものとする。すなわち、SEIに顔データを記録する場合には、コンテンツ管理ファイル340に顔データを記録する場合における所定の条件よりも緩和された条件に基づいて記録するものとする。
例えば、SEIに格納する顔の個数の上限値を予め決めておき、検出された顔が上限値を超えた場合にのみ、検出された顔の大きさや位置等に基づいて、SEIに記録される顔メタデータを制限する。ここで、図28を参照して顔データの記録方法の一例を説明する。
図28は、動画コンテンツファイルを構成するフレーム823乃至828において検出された顔と、顔データ部640に記録される顔データ811乃至822との関係を示す図である。なお、図28では、フレーム823乃至828において検出された顔が四角の枠で囲まれている状態を示す。また、フレーム823または824では1人の顔が検出され、フレーム825または827では2人の顔が検出され、フレーム826または828では3人の顔が検出されたものとする。
例えば、検出時刻t1のフレーム823において検出された顔の数と、検出時刻t2のフレーム824において検出された顔の数とが同数である場合においても、検出された顔の数が上限値を超えていなければ、検出時刻t1のフレーム823および検出時刻t2のフレーム824において検出された顔の顔データを顔データ部640に記録する。また、同様に、時刻t5のフレーム827において検出された顔の数は、時刻t4のフレーム826において検出された顔の数よりも少ないものの、検出された顔の数が上限値を超えていなければ、検出時刻t4のフレーム826および検出時刻t5のフレーム827において検出された顔の顔データを顔データ部640に記録する。
これに対して、コンテンツ管理ファイル340に顔データを記録する場合における所定の条件は、例えば、ある検出時刻のフレームにおいて検出された顔の個数と、次の検出時刻のフレームにおいて検出された顔の個数とが同数である場合には、次の検出時刻で検出された顔に関する顔データを顔データ部に記録しないとする条件である。これは、検出された顔の個数が同数であるため、同じ顔に関するメタデータが記録される可能性が高いためである。また、ある検出時刻のフレームにおいて検出された顔の個数よりも、次の検出時刻のフレームにおいて検出された顔の個数が少ない場合についても、同様に、次の検出時刻で検出された顔に関する顔データを顔データ部に記録しないようにすることができる。
例えば、図28に示すように、検出時刻t1のフレーム823において検出された顔の数と、検出時刻t2のフレーム824において検出された顔の数とが同数である場合において、コンテンツ管理ファイル340に顔データを記録する場合には、検出時刻t2のフレーム824において検出された顔の顔データは、顔データ部640に記録されない。また、検出時刻t5のフレーム827において検出された顔の数は、検出時刻t4のフレーム826において検出された顔の数よりも少ない。このため、検出時刻t5のフレーム825において検出された顔の顔データは、顔データ部640に記録されない。
このように、SEIに顔データを記録する場合には、コンテンツ管理ファイルに顔メタデータを記録する場合における条件よりも緩和された条件に基づいて、顔メタデータの記録の是非を判定するようにする。これにより、顔データが記録されているSEIを含むコンテンツファイルが、この顔データが記録された記録機器から他の機器に移動された場合でも、このコンテンツファイルを移動先の機器におけるアプリケーションに広く対応させることができる。
例えば、検出された顔に関する顔メタデータが記録機器の所定条件に基づいて記録された場合において、この移動元の記録機器の所定条件により記録された顔メタデータが移動先の機器において有用だとは限らない。そこで、移動先の機器におけるアプリケーションに広く対応させることができるように、SEIに顔データを記録する場合における条件を緩和して比較的多数の顔データを記録しておく。これにより、顔メタデータの取捨選択の幅を持たせておくことができる。
しかしながら、コンテンツ管理ファイルと動画ストリームとの両方に顔メタデータを記録する場合においては、同じ顔メタデータをそれぞれに記録する必要はない。例えば、コンテンツ管理ファイルと動画ストリームとの両方に顔メタデータを記録する場合において、コンテンツ管理ファイルに顔検出時刻情報が記録されている場合でも、SEIを含むAUにおける他のNALユニットに時刻情報が記録されているため、SEIには顔検出時刻情報を記録しないようにすることができる。これにより、顔メタデータの容量を削減することが可能となる。また、顔が検出されたAUは、通常は編集点となるAUである。このため、動画ストリームが途中で削除された場合でも顔検出時刻情報については正しい値を保持することができる。また、動画ストリームを編集する場合において、コンテンツ管理ファイル内の顔メタデータをメンテナンスする場合にも、SEIを含むAUの他のNALユニットに記録されている時刻情報を利用することが可能となる。
さらに、コンテンツ管理ファイルを備えた記録機器において、ストリーム内部に顔メタデータを記録することによって、コンテンツ管理ファイルが何らかの事情で破壊された場合には、ストリーム内部の顔メタデータを用いて迅速にコンテンツ管理ファイルの顔メタデータの再構築を行うことができる。これにより、全てのストリームから顔を検出して顔メタデータの補修を行うよりも、迅速にコンテンツ管理ファイルの顔メタデータの再構築を行うことができる。
コンテンツ管理ファイルを備えていない記録機器の場合には、動画ストリームの所定AUにおけるSEI NALユニットにのみ顔メタデータが記録されることになる。この場合には、この動画ストリーム内部に記録された顔メタデータを使用することによって、迅速にアプリケーションを実行することができる。これに対して、顔メタデータが記録されていない動画ストリームについて顔メタデータを用いるアプリケーションを実行する場合には、動画ストリームから顔を検出する必要があるため、アプリケーションの実行を迅速に行うことができない場合がある。
次に、コンテンツファイルが静止画コンテンツファイルである場合において、この静止画コンテンツファイルに基づいて作成された顔メタデータを、コンテンツ管理ファイル340に記録せずに、この静止画コンテンツファイル内部に記録する例について説明する。
図29は、DCF(Design rule for Camera File system)規格により記録される静止画ファイルのファイル構造の概略を示す図である。DCFは、デジタルスチルカメラやプリンタ等の機器間で、記録媒体を介して画像の相互利用を実現するためのファイルシステム規格であり、Exif(Exchangeable image file format)をベースにして記録媒体に記録する場合におけるファイル名の付け方やフォルダの構成が規定されている。このExifは、画像ファイルの中に画像データおよびカメラ情報を付加するための規格であり、画像ファイルを記録するための形式(ファイルフォーマット)を規定するものである。
静止画ファイル800は、DCF規格により記録される静止画ファイルであり、図29(a)に示すように、付属情報801および画像情報802から構成されている。画像情報802は、例えば、カメラ部110により撮像された被写体の画像データである。
付属情報801は、図29(b)に示すように、属性情報803およびメーカーノート(maker note)804から構成されている。属性情報803は、静止画ファイル800に関する属性情報等であり、例えば、撮影更新日時、画サイズ、色空間情報、メーカー名等が含まれる。また、属性情報803には、画像の回転の有無を示す回転情報(TAGID=274、Orientation)が含まれる。なお、この回転情報については、Exif情報として画像の回転情報を記録しない設定(すなわち、回転情報をタグに記録しない設定)をすることができる。この設定がされている場合には、無効値として「0」が記録される。
メーカーノート804は、一般的にユーザ独自のデータが記録される領域であり、各メーカーが自由に情報を記録することができる拡張領域である(TAGID=37500、MakerNote)。この例では、図29(c)に示すように、このメーカーノート804に顔メタデータが記録される。すなわち、メーカーノート804は、顔メタデータ807等の1または複数の顔メタデータを記録する顔メタデータ記録領域805と、他の独自メタデータ等を記録する記録領域806とから構成されている。このように、顔メタデータを静止画ファイルに記録する場合には、Exifで規定されたメーカーノート804の内部に顔メタデータが記録される。
ここで、メーカーノート804に記録される顔メタデータについて説明する。メーカーノート804に記録される顔メタデータは、例えば、図10に示すヘッダ部630および図11に示す顔データ部640から構成される顔メタデータ620である。ここで、顔データ部640については、図13乃至図16等を参照して説明したように、必要な情報のみとすることができる。ただし、静止画の場合は、ヘッダ部630に記録される各情報のうちでタイムスケール635が必要ないものの、静止画のタイムスケール635には「0」が記録される。これは、動画または静止画に応じて異なるメタデータ量にするよりも、同じメタデータ量とする方がヘッダ部630を固定長とすることができるため、データのアクセスを容易にすることができる。また、動画または静止画において、異なるメタデータを記録することは、記録機器のシステム的に負荷が重い。このため、動画または静止画で検出された顔に関する顔メタデータを作成する場合には、それぞれ同様のメタデータとすることによって、負荷を軽減することが可能となる。
図30は、本発明の実施の形態の変形例における撮像装置100の機能構成例を示すブロック図である。この撮像装置100は、コンテンツ管理ファイル記憶部210と、コンテンツ入力部211と、顔検出部212と、顔メタデータ作成部213と、仮想管理情報作成部214と、代表サムネイル画像抽出部215と、コンテンツ属性情報作成部216と、記録制御部230と、コンテンツ記憶部223とを備える。ここでは、コンテンツ管理ファイル記憶部210と、コンテンツ入力部211と、記録制御部230と、コンテンツ記憶部223とについて、図17に示すものと異なる部分を詳細に説明して、他の構成については、ここでの説明を省略する。
コンテンツ管理ファイル記憶部210は、仮想的な階層構造により構成される階層エントリを記録するコンテンツ管理ファイル340を記憶するものである。なお、この変形例では、コンテンツ管理ファイル記憶部210には、静止画に関する階層エントリを記録しにしない。
コンテンツ入力部211は、コンテンツファイルを入力するものであり、入力されたコンテンツファイルを、顔検出部212、顔メタデータ作成部213、仮想管理情報作成部214、代表サムネイル画像抽出部215、コンテンツ属性情報作成部216および記録制御部230に出力する。具体的には、動画の場合には、カメラ部110で撮影されたフレームがコンテンツ入力部211から順次入力される。静止画の場合には、カメラ部110で撮影された画像がコンテンツ入力部211から順次入力される。
記録制御部230は、顔メタデータ作成部213により作成された顔メタデータを、この顔メタデータに対応するコンテンツファイルに記録する。また、記録制御部230は、動画コンテンツファイルに関して、IDRピクチャまたはIピクチャ毎に作成された顔メタデータを、この顔メタデータに対応するIDRピクチャまたはIピクチャを含むAUにおけるSEIに記録する。さらに、記録制御部230は、動画コンテンツファイルに関して所定間隔で作成された顔メタデータを動画コンテンツファイルに記録する場合には、コンテンツ管理ファイル340に顔メタデータを記録する場合における記録条件よりも緩和された記録条件を用いて、動画コンテンツファイルに顔メタデータを記録する。また、記録制御部230は、静止画に関する顔メタデータについては、コンテンツ管理ファイル340に記録しない。
コンテンツ記憶部223は、顔メタデータが記録された動画や静止画等のコンテンツファイルを記憶するものである。
ここで、静止画および動画の利用環境等について簡単に説明する。
一般的に、静止画は、記録媒体に記録されて機器間を移動することが多く、動画に比べて可搬性が高いと考えられる。このように静止画が移動される場合においては、移動先の機器においてコンテンツ管理ファイルを理解することができない市販の画像管理アプリケーションソフトウェアが利用されている可能性が高いと考えられる。このため、静止画については、コンテンツ管理ファイルで管理しなくてもよいと考えられる。
また、静止画の場合は、静止画ファイルをPC上で編集可能なPCアプリケーションソフトウェアが多く存在している。これらのPCアプリケーションソフトウェアの中には、静止画がトリミングや回転処理された場合においても、Exifのメーカーノート以外のカメラ情報(更新日時や回転情報等)を正しくメンテナンスしないものも多い。そのようなPCアプリケーションソフトウェアで編集された静止画ファイルが、顔が検出された記録機器に戻される場合がある。この場合において、例えば、顔位置を示す顔データを用いて静止画から顔を切り出す処理を実行しても、顔が正しく切り出されていないということが生じ得る。
このような場合を極力避けるために、静止画コンテンツ内にある更新日時情報とともに、画像サイズ情報等を用いることによって、不整合検出の可能性を高めることができる。
一方、動画については、AVCHD(Advanced Video Codec High Definition)、BD(Blu-ray Disc:ブルーレイディスク)等の再生環境が整っていない段階では、動画が撮影された撮像装置に付属するPCアプリケーションソフトウェアでないと再生できない可能性が高い。このため、動画については、コンテンツ管理ファイルを理解することができるPCアプリケーションソフトウェアをユーザが使用する可能性が高く、メタデータへのアクセス性等のメリットを考えてコンテンツ管理ファイルで動画コンテンツを管理する。また、動画コンテンツのメタデータもコンテンツ管理ファイルに記録する。
動画ファイルが編集される場合には、上述したように、動画対応フォーマットに対応する編集アプリケーションが少なければ、独自ファイルであるコンテンツ管理ファイルや動画ファイルに記録される更新日時情報が、その独自ファイルに対応するPCアプリケーションソフトウェアにより確実にメンテナンスされる可能性が高い。
以上で示したように、静止画および動画の使用環境が異なるため、この変形例では、動画コンテンツファイルと、この動画コンテンツファイルから検出されたメタデータ(顔メタデータに限定されず)とをコンテンツ管理ファイルで管理する。一方、静止画コンテンツファイルについては、コンテンツ管理ファイルで管理せずに、通常のファイルシステムで管理して、この静止画コンテンツファイルに含まれるメタデータを、この静止画ファイル内(すなわち、Exifのメーカーノート)に記録する。
次に、本発明の実施の形態の変形例における顔データの読出処理について図面を参照して詳細に説明する。
図31および図32は、撮像装置100による顔データの読出処理の処理手順を示すフローチャートである。この例では、メーカーノート804に顔メタデータが記録されている静止画について、コンテンツ更新日時、コンテンツ画像サイズ、コンテンツ回転情報を用いて、静止画とメタデータとの不整合を検出する処理手順を示す。この処理手順は、図26に示す処理手順において、ステップS975とステップS976との処理の間に、ステップS985の処理を行うものである。このため、ステップS985について詳細に説明し、他の処理についての説明を省略する。また、ここでは、図10に示すヘッダ部630を参照して説明する。
ステップS972で読み出されたヘッダ部630のメタデータバージョン632に記録されている顔メタデータのバージョン情報に基づいて、撮像装置100が対応可能な顔メタデータのバージョンであるか否かが判断される(ステップS973)。そして、対応可能な顔メタデータのバージョンである場合において(ステップS973)、対応する静止画コンテンツファイルの更新日時と、ヘッダ部630のコンテンツ更新日時633に記録されている更新日時とが同じでない場合(ステップS974)、または、対応する静止画コンテンツファイルの画像サイズと、ヘッダ部630のコンテンツ画像サイズ638に記録されている画像サイズとが同じでない場合には(ステップS975)、対応する静止画コンテンツファイルの画像がトリミングや解像度変換等の処理を施されている可能性が高いため、ステップS982に進み、上述した処理を繰り返す。
一方、対応する静止画コンテンツファイルの更新日時と、ヘッダ部630のコンテンツ更新日時633に記録されている更新日時とが同じであり(ステップS974)、かつ、対応する静止画コンテンツファイルの画像サイズと、ヘッダ部630のコンテンツ画像サイズ638に記録されている画像サイズとが同じである場合には(ステップS975)、対応する静止画コンテンツファイルの回転情報が存在し、かつ、この回転情報に無効値が記録されていないか否かが判断される(ステップS985)。対応する静止画コンテンツファイルの回転情報が存在し、かつ、この回転情報に無効値が記録されていない場合には(ステップS985)、ステップS976に進む。
一方、対応する静止画コンテンツファイルの回転情報が存在しない場合、または、この回転情報に無効値が記録されている場合には(ステップS985)、画像が回転処理されている可能性が高いため、ステップS982に進み、上述した処理を繰り返す。これらにより、静止画ファイルの編集において比較的多く用いられる画像の回転、トリミング、解像度変換等を考慮して不整合検出の可能性を高めることができる。なお、図26、図27、図31で示したコンテンツ更新日時の比較、コンテンツ画像サイズの比較、チェックサムの比較、回転情報の確認のうちの少なくとも2つを組み合わせて不整合を検出するようにしてもよい。
次に、顔メタデータを利用したアプリケーションの実行例について図面を参照して詳細に説明する。
図33は、静止画コンテンツファイルについてのスライドショーが実行される場合における表示例を示す図である。図33(a)は、顔851を含む画像が表示部850に表示されている状態を示す図である。顔851については、静止画ファイル内のメーカーノートに顔データが記録されており、この顔データにより顔851を含む領域852を認識することが可能である。
従来では、1枚の画像をスライドショーによって表示させる場合には、例えば、1枚の画像の真中部分を上下に切り分け、この切り分けられた画像の上部分を画面上の右側から進入させるとともに、画像の下部分を画面上の左側から進入させていき、一枚の画像を再生するトランジション効果によって表示させるスライドショーが行われている。
例えば、図33(a)に示す画像についてトランジション効果によりスライドショー表示させる場合には、図33(a)に示す点線853で示す真中部分で画像を上下に切り分けて、図33(b)に示すように、上部分の画像を矢印855方向に順次移動させるとともに、下部分の画像を矢印856方向に順次移動させていき、この画像全体を表示させることができる。しかしながら、このように点線853で示す部分で画像を上下に切り分けた場合には、この画像に含まれる顔851が上下に分かれてしまうため、上下に分かれた画像が組み合わされるまでの間は、顔851の全体を閲覧することができない。
そこで、顔を含む画像についてトランジション効果によりスライドショー表示させる場合には、トランジションをかける前に、メーカーノートに記録されている顔メタデータに含まれる顔基本情報に基づいて、顔の位置を把握して、画像の上下を区切る位置を調節することができる。これにより、領域852に含まれる顔851が切り分けられないようにすることができる。例えば、領域852に含まれる顔851が切り分けられないように、図33(a)に示す点線854で示す部分で画像を上下に切り分けることができる。これにより、図33(c)に示すように、上下に区切られた画像が移動中であっても、顔851の全体を閲覧することができる。
また、図33(a)に示すように、メーカーノートに顔データが記録されている画像については、上述したトランジション効果とは異なるトランジション効果によりスライドショー表示させることができる。例えば、顔が含まれる画像については、画像に含まれる顔のズームから、通常の顔の大きさに戻す等のように、画像に含まれる顔が切り分けられないようなトランジション効果を用いることができる。顔が含まれる画像と顔が含まれない画像とについて、トランジションを切り替えることによって、画像に含まれる顔を効果的に表示させることができるスライドショーを実行することができる。
次に、デジタルスチルカメラやデジタルビデオカメラ等の記録装置により撮像された画像データに付加された顔メタデータを、ビデオプレイヤーのような再生装置が利用する例について図面を参照して詳細に説明する。
図34は、着脱可能な記録媒体831を接続することが可能な画像記録装置830および画像再生装置834を示す図である。ここでは、顔メタデータがコンテンツファイル内に内包される場合における顔メタデータの利用例について説明する。なお、画像記録装置830および画像再生装置834の構成は、図17、図18および図30に示す撮像装置100の構成とほぼ同様である。
図34(a)に示すように、画像記録装置830に記録媒体831が接続されている状態で被写体の撮像が行われ、これにより撮像された画像データおよびこの画像データにより作成された顔メタデータが記録媒体831にコンテンツファイル832として記録される。そして、コンテンツファイル832を画像再生装置834によって再生させる場合には、図34(b)に示すように、画像記録装置830から記録媒体831を取り外し、図34(c)に示すように、画像再生装置834に記録媒体831を接続することによって、記録媒体831に記録されているコンテンツファイル832を画像再生装置834に入力して再生させることができる。
このように画像記録装置830により付加されたメタデータを画像再生装置834が利用することができるため、画像再生装置834が顔検出機能を有しない場合でも、顔メタデータを用いた再生を画像再生装置834が行うことができる。これにより、モバイル機器のように大きな再生負荷をかけることができない機器の場合においても高度な再生アプリケーションを実現することが可能となる。また、顔検出機能を有する再生機器においても、再生時に顔を検索する必要がないため、再生処理に要する時間を大幅に短縮することが可能となる。
図35は、画像記録装置870および画像再生装置880で構成されている画像処理システム860の概略を示すシステム構成図である。画像記録装置870および画像再生装置880は、USBケーブル等の装置間インタフェースで接続される。
画像記録装置870は、デジタルスチルカメラやデジタルビデオカメラ等の画像記録装置であり、撮像された画像データをコンテンツファイルとしてコンテンツファイル記憶部872に記憶するとともに、このコンテンツファイルに関する顔メタデータをコンテンツ管理ファイル871に記録する画像記録装置である。
画像再生装置880は、送信要求出力部881と、再生制御部882と、表示部883とを備え、装置間インタフェースで接続されている画像記録装置870のコンテンツファイル記憶部872に記憶されているコンテンツファイルを読み出し、読み出されたコンテンツファイルを表示部883に表示して再生する画像再生装置である。なお、画像記録装置870の構成は、図17、図18および図30に示す撮像装置100の構成とほぼ同様であるため、その他の構成に関する図示および説明は省略する。
送信要求出力部881は、画像記録装置870のコンテンツ管理ファイル871に記録されているメタデータエントリに含まれるメタデータの中から所望のメタデータを抽出するための送信要求を、信号線884に出力するものである。この信号線884に出力された送信要求に応答して、コンテンツ管理ファイル871に記録されているメタデータエントリに含まれるメタデータの中から所望のメタデータが抽出されるとともに、この抽出されたメタデータを含むメタデータエントリの上位階層に記録されているファイルエントリに含まれる仮想管理情報に基づいてコンテンツファイル記憶部872に記録されているコンテンツファイルが抽出される。そして、コンテンツ管理ファイル871から抽出されたメタデータが信号線885に出力されるとともに、コンテンツファイル記憶部872から抽出されたコンテンツファイルが信号線886に出力される。
再生制御部882は、コンテンツ管理ファイル871から信号線885に出力されたメタデータを用いて、コンテンツファイル記憶部872から信号線886に出力されて表示部883に表示されるコンテンツファイルの再生を制御する再生制御部である。
このように、画像再生装置880は、画像記録装置870に記録されているコンテンツ管理ファイル871を読み出し、読み出されたコンテンツ管理ファイル871の中から必要なメタデータを抽出して、抽出されたメタデータをコンテンツファイルの再生時に用いる。これにより、例えば、図33を参照して説明したように、画像記録装置870に記録されているコンテンツ管理ファイル871のメタデータを用いて、コンテンツファイル記憶部872に記憶されているコンテンツファイルを表示部883に表示することができる。
ここでは、画像記録装置870および画像再生装置880を接続する接続手段としてUSBケーブル等の装置間インタフェースを用いた例について説明したが、有線回線または無線回線を用いたネットワーク等の他の接続手段を用いるようにしてもよい。
このように、本発明の実施の形態によれば、所望のメタデータを迅速に検索することができ、対応するコンテンツファイルを迅速にサーチすることができる。このため、所望のアプリケーションを迅速に実行することができる。また、コンテンツファイルに関するメタデータを迅速に利用することができる。
また、現在では、顔メタデータを利用するアプリケーションが多数開発されており、顔メタデータを利用するアプリケーションは今後も種々多様化するものと考えられる。このため、将来は、顔メタデータのフォーマット拡張が予想される。このような顔メタデータのフォーマットが拡張された場合であっても、本発明の実施の形態によれば、そのフォーマットの拡張に対して再生機器において互換性を確保することができるため、コンテンツファイルに関するメタデータを迅速に利用することができる。
このように、本発明の実施の形態によれば、コンテンツファイルを迅速に利用することができる。
なお、本発明の実施の形態では、メタデータとして、人の顔に関する顔メタデータを一例として示したが、他のメタデータについても本発明の実施の形態を適用することができる。例えば、動物またはペット認識アルゴリズムを用いて画像に含まれる動物等を検出し、検出された動物の顔等に関する情報に対応するメタデータについて、本発明の実施の形態を適用することができる。例えば、顔検出エンジンの代わりに、ペット検出エンジンを設け、このペット検出エンジンによって検出されたペットに関するメタデータを用いて、本発明の実施の形態を適用することができる。また、人物または動物等の行動を認識し、この認識された行動が所定の記述により記録されたメタデータについても、本発明の実施の形態を適用することができる。また、本発明の実施の形態では、コンテンツ記録装置の一例として撮像装置について説明したが、コンテンツファイルを記録する携帯端末装置等の他のコンテンツ記録装置に本発明の実施の形態を適用することができる。また、本発明の実施の形態では、コンテンツ再生装置の一例として撮像装置について説明したが、コンテンツを再生するDVD(Digital Versatile Disc)レコーダ等の他のコンテンツ再生装置に本発明の実施の形態を適用することができる。
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、以下に示すように特許請求の範囲における発明特定事項とそれぞれ対応関係を有するが、これに限定されるものではなく本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
なお、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。