以下、図面を参照しながら本発明の情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。なお、説明は、以下の項目順に行なう。
1.システム構成
2.データ・フォーマット
3.ファイナライズ処理
4.フォトムービー作成処理
5.メニュー作成処理
6.ファイナライズ状態判定処理
7.ファイナライズ状態解除処理
[1.システム構成]
図1は、本発明の一実施形態に係る情報処理装置100の構成示したブロック図である。図1には、本発明の情報処理装置の一例であるビデオカメラの構成を示している。図1に示すように情報処理装置100は、記録再生制御部110、媒体制御部(読み書き処理部)120、記録再生用ワークメモリ130、符号復号化部140、入出力信号制御部150を有する。記録再生制御部110は、主制御部(プロセッサ)111、ROM112、RAM113、入出力インタフェース114を有する。
情報処理装置100は、例えば、情報記録媒体(メディア)180を利用して動画像の記録再生を行なうとともに、静止画の記録も可能な構成を持つ。さらに情報記録媒体(メディア)180に記録された静止画に基づいて動画形式(例えばMPEG-4 Part 10 Advanced Video Coding(AVC)/H.264)のファイル、すなわちフォトムービーを生成して、情報記録媒体(メディア)180に再記録する処理を実行する。なお、情報記録媒体(メディア)180に対するデータ記録は、AVCHDフォーマットに従って実行される。AVCHDフォーマットに従ったデータ記録構成については、次の[2.データ・フォーマット]の項目において詳細に説明する。
データ記録処理に際しては、入出力信号制御部150から入力する動画像または静止画像データに対して、符号復号化部140において符号化を実行する。符号復号化部140では、たとえば、入力された動画像信号を構成するビデオストリームとオーディオストリームに対する符号化を行ない多重化したデータストリームを生成する。符号復号化部140において符号化されたデータは、記録再生用ワークメモリ130に格納された後、媒体制御部120の処理によって情報記録媒体(メディア)180に記録される。
符号復号化部140においてデータ記録処理の際に実行する符号化処理は、記録データが動画である場合と静止画である場合と異なり、情報記録媒体(メディア)180には、動画ファイルと静止画ファイルが記録される。
本発明に係る情報処理装置100は、情報記録媒体(メディア)に記録された静止画データを読み出し、読み出した静止画データに基づいて動画形式(例えばMPEG-4 Part 10 Advanced Video Coding(AVC)/H.264)のファイル、すなわちフォトムービーを生成して、情報記録媒体(メディア)180に再記録する処理を実行する。
このフォトムービー作成処理の詳細については後段で説明するが、概要は以下の通りである。まず、媒体制御部120の処理によって情報記録媒体(メディア)180に記録された静止画データを読み出して、記録再生用ワークメモリ130に格納し、符号復号化部140において静止画像信号を復号し、復号データを入出力信号制御部150を介して符号復号化部140に再入力して、入力データに基づいて動画形式の符号化データ(MPEG)、いわゆるフォトムービーを生成する。生成したフォトムービーは、記録再生用ワークメモリ130に格納された後、媒体制御部120の処理によって情報記録媒体(メディア)180に再記録される。
記録再生制御部110は、情報処理装置において実行するデータ記録、データ再生、フォトムービー生成処理などの各種の処理を制御する。記録再生制御部110は、主制御部(プロセッサ)111と,ROM112と,RAM113と,入出力インタフェース114と,これらを相互に接続するバス115とを備えている。
主制御部(プロセッサ)111は、例えば、符号復号化部140に符号復号化処理の開始・停止の指示を出す。また、媒体制御部120に情報記録媒体(メディア)180に対するデータの読み込み・書き込み処理の実行命令を出力する。さらに、入出力信号制御部150に対して、符号復号化部140からの入力信号をキャプチャし、キャプチャした入力信号を符号復号化部140へ出力する制御などを実行する。この処理は、例えば、上述した静止画データに基づくフォトムービーの生成処理に際して実行される。すなわち、フォトムービーの作成処理に際して、情報記録媒体(メディア)180に記録された静止画データが、符号復号化部140において復号され、その復号処理結果が、一旦、入出力信号制御部150側に出力され、入出力信号制御部150から、再度、符号復号化部140に静止画復号データが入力されて、動画形式の符号化データ(MPEG4−AVC)への符号化、すなわちフォトムービーの生成が実行される。
記録再生制御部110のROM112は、主制御部(プロセッサ)111において実行されるプログラムや各種パラメータ等を保持するメモリであり、例えば,フラッシュメモリ等のEEPROMにより実現される。RAM113は、主制御部(プロセッサ)111におけるプログラム実行に必要な作業データ等を保持するメモリであり,例えばSRAMやDRAM等により実現される。入出力インタフェース114は、例えばユーザ入力部や表示部、ネットワークなどに接続され、外部とのデータやコマンドの入出力を行うインタフェースである。例えば、ROM112内のプログラムを更新する等のためにも使用される。
[2.データ・フォーマット]
図2には、情報記録媒体(メディア)180にデータを記録するためのデータ構造の一例を示している。以下では、AVCHDフォーマットに従ったデータ記録構成について説明する。図示のように、ビデオカメラで撮影した動画像ストリームをMPEG2−TSストリームに符号化して記録する際に、インデックス(index)、ムービーオブジェクト(MovieObject)、プレイリスト(PlayList)、クリップ情報(ClipInformation)、クリップAVストリーム(ClipAVStream)の各ファイルが生成され記録される。また、所定データ単位のクリップAVストリームファイルと対応するクリップ情報ファイルをまとめて便宜上クリップと呼ぶ。以下、各ファイルの詳細について説明する表を示す。
インデックスのファイル種別レイヤで情報記録媒体180全体が管理されている。ユーザに見せるタイトル毎にインデックスファイルが作成され、ムービーオブジェクトとの対応関係を管理している。AVCHDフォーマットでは、本来ムービーオブジェクトファイルで管理すべきプレイリストの再生順をインデックスファイルのメタデータ内で管理している。情報記録媒体をプレーヤに装填した際にはまずインデックスが読み込まれ、ユーザはインデックスに記述されたタイトルを見ることができる。
ムービーオブジェクトは、再生されるプレイリストを管理しているファイルである。ムービーオブジェクトへの参照は、タイトルの入り口としてインデックスに列挙されている。但し、AVCHDフォーマットでは、ムービーオブジェクトファイルを参照せずに、インデックスファイルのメタデータによってプレイリストとタイトルの関係を管理するようになっている。
プレイリストは、ユーザに見せるタイトルに対応して設けられ、少なくとも1以上のプレイアイテムで構成される再生リストである。各プレイアイテムは、クリップに対する再生開始点(IN点)と再生終了点(OUT点)を持つことで、その再生区間を指定している。そして、プレイリスト内で複数のプレイアイテムを時間軸上に並べることで、それぞれの再生区間の再生順序を指定することができる。また、異なるクリップを参照するプレイアイテムを1つのプレイリストに含めることができる。
クリップとプレイリスト間の参照関係は、自由に設定することができる。例えば、1つのクリップに対する参照を、IN点及びOUT点の異なる2つのプレイリストから行なうことができる。さらに、タイトルとムービーオブジェクト間での参照関係も自由に設定することができる。プレイリストは、クリップとの参照関係に応じて、リアルプレイリスト(実プレイリスト)とバーチャルプレイリスト(仮想プレイリスト)の2種類に大別される。
リアルプレイリストは、オリジナル・タイトル用のプレイリストであり、ビデオカメラにより録画・撮影した映像ストリームについてのプレイアイテムを記録した順に記録している。
バーチャルプレイリストは、非破壊編集によりユーザ定義の再生リストを作成するためのプレイリストであり、バーチャルプレイリスト独自のクリップ(AVストリーム)を持たず、同リスト内のプレイアイテムはいずれかのリアルプレイリストに登録されているクリップ又はその一部の範囲を指している。すなわち、ユーザは複数のクリップから必要な再生区間のみを切り出して、これらを指す各プレイアイテムを取りまとめてバーチャルプレイリストを編集することができる。
クリップAVストリームは、MPEG−TS形式で情報記録媒体180に記録されたストリームが格納されているファイルである。画像データはこのファイル内に格納される。
クリップ情報は、クリップAVストリームファイルと対で存在し、実際のストリームを再生する上で必要となるストリームに関する情報が記載されたファイルである。
このように、AVCHDフォーマットにおいては、上述したように、インデックス(index)、ムービーオブジェクト(MovieObject)、プレイリスト(PlayList)、クリップ情報(ClipInformation)、AVストリーム(ClipAVStream)の各ファイルが生成され記録される。
なお、これらのファイルやデータの名称は一例であり、他の表現が使用される場合もある。各ファイル、データの実質的な内容は、以下のような対応となる。
(1)AVストリーム(ClipAVStream):コンテンツデータ
(2)クリップ情報(ClipInformation):AVストリームと1対1で対応し、対応するAVストリームの属性を定義するファイル。(例えば、coding,size,時間→アドレス変換、再生管理情報、タイムマップ等が含まれている。)
(3)プレイアイテム(PlayItem):クリップ情報(ClipInformation)に対する再生開始点と再生終了点で再生区間を指定するデータ。
(4)プレイリスト(PlayList):1以上のプレイアイテム(PlayItem)で構成される再生リスト。
(5)マーク(Mark):一般的には、プレイリスト(PlayList)中に存在し、再生コンテンツのある時間的位置を示すもの。一般的にマークとマークの間をチャプタという。
(6)ムービーオブジェクト(MovieObject):再生制御を行うためのコマンドの集合体。
(7)タイトル(Title):(ユーザが認識できる)再生リストの集合体。
なお、以下の説明では、上述の対応を持つデータやファイルについて、それぞれ、AVストリーム(ClipAVStream)、クリップ情報(ClipInformation)、プレイアイテム(PlayItem)、プレイリスト(PlayList)、マーク(Mark)、ムービーオブジェクト(MovieObject)、タイトル(Title)として説明するが、実質的に同じ内容のデータ、ファイル等を持つ構成についても本発明が適用可能である。
図3は、図2を参照して説明したプレイリスト(PlayList)、プレイアイテム(PlayItem)、クリップ(Clip)、クリップ情報(ClipInformation)、クリップAVストリーム(ClipAVStream)の関係を示すUML(Unified Modeling Language)図である。プレイリストは、1または複数のプレイアイテムに対応付けられ、プレイアイテムは、1のクリップに対応付けられる。1のクリップに対して、それぞれ開始点および/または終了点が異なる複数のプレイアイテムを対応付けることができる。1のクリップから1のクリップAVストリームファイルが参照される。同様に、1のクリップから1のクリップ情報ファイルが参照される。また、クリップAVストリームファイルとクリップ情報ファイルとは、1対1の対応関係を有する。このような構造を定義することにより、クリップAVストリームファイルを変更することなく、任意の部分だけを再生する、非破壊の再生順序指定を行うことが可能となる。
また、図4のように、複数のプレイリストから同一のクリップを参照することもできる。また、1のプレイリストから複数のクリップを指定することもできる。クリップは、プレイリスト中のプレイアイテムに示されるIN点およびOUT点により、参照される。図4の例では、クリップ200は、プレイリスト210のプレイアイテム220から参照されると共に、プレイリスト211を構成するプレイアイテム221および222のうちプレイアイテム221から、IN点およびOUT点で示される区間が参照される。また、クリップ201は、プレイリスト211のプレイアイテム222からIN点およびOUT点で示される区間が参照されると共に、プレイリスト212のプレイアイテム223および224のうち、プレイアイテム223のIN点およびOUT点で示される区間が参照される。
なお、プレイリストは、図5に一例が示されるように、主として再生されるプレイアイテムに対応するメインパスに対して、サブプレイアイテムに対応するサブパスを持つことができる。例えば、このプレイリストに付けられているアフレコオーディオ用のプレイアイテムをサブプレイアイテムとして、プレイリストに持たせることができる。詳細は省略するが、プレイリストは、所定の条件を満たす場合にだけ、サブプレイアイテムを持つことができる。
次に、情報記録媒体(メディア)に記録されるファイルの管理構造について、図6を用いて説明する。図2〜図4等を参照して説明したように、情報記録媒体(メディア)に記録されるデータには、ムービーオブジェクト(MovieObject)、プレイリスト(PlayList)、クリップ(Clip)があり、クリップ(Clip)には、クリップ情報(ClipInformation)、クリップAVストリーム(ClipAVStream)の各ファイルが含まれる。ファイルは、ディレクトリ構造により階層的に管理される。記録媒体上には、先ず、1つのディレクトリ(図6の例ではルート(root)ディレクトリ)が作成される。このディレクトリの下が、1つの記録再生システムで管理される範囲とする。
ルートディレクトリの下に、ディレクトリ[BDMV]、およびディレクトリ[AVCHDTN]が置かれる。ディレクトリ[AVCHDTN]には、例えばクリップの代表画像を所定サイズに縮小したサムネイルファイルが置かれる。ディレクトリ[BDMV]に、図2を用いて説明したデータ構造が格納される。
ディレクトリ[BDMV]の直下には、インデックスファイル[index.bdmv]およびムービーオブジェクトファイル[MovieObject.bdmv]の2つのみを置くことができる。また、BDMVディレクトリ[BDMV]の下に、プレイリストディレクトリ[PLAYLIST]、クリップ情報ディレクトリ[CLIPINF]、ストリームディレクトリ[STREAM]、およびディレクトリ[BACKUP]が置かれる。
インデックスファイル[index.bdmv]は、ディレクトリBDMVの内容について記述される。また、ムービーオブジェクトファイル[MovieObject.bdmv]は、1つ以上のムービーオブジェクトの情報が格納される。
プレイリストディレクトリ[PLAYLIST]は、プレイリストのデータベースが置かれるディレクトリである。すなわち、プレイリストディレクトリ[PLAYLIST]は、ムービープレイリストに関するファイルであるプレイリストファイル[xxxxx.mpls]を含む。プレイリストファイル[xxxxx.mpls]は、ムービープレイリストのそれぞれに対して作成されるファイルである。ファイル名において、[.](ピリオド)の前の[xxxxx]は、5桁の数字とされ、ピリオドの後ろの[mpls]は、このタイプのファイルに固定的とされた拡張子である。
クリップ情報ディレクトリ[CLIPINF]は、クリップのデータベースが置かれるディレクトリである。すなわち、クリップ情報ディレクトリ[CLIPINF]は、クリップAVストリームファイルのそれぞれに対するクリップ情報ファイル[zzzzz.clpi]を含む。ファイル名において、[.](ピリオド)の前の[zzzzz]は、5桁の数字とされ、ピリオドの後ろの[clpi]は、このタイプのファイルに固定的とされた拡張子である。
ストリームディレクトリ[STREAM]は、実体としてのAVストリームファイルが置かれるディレクトリである。すなわち、ストリームディレクトリ[STREAM]は、クリップ情報ファイルのそれぞれに対応するクリップAVストリームファイルを含む。クリップAVストリームファイルは、MPEG2(Moving Pictures Experts Group 2)のトランスポートストリーム(以下、MPEG2 TSと略称する)からなり、ファイル名が[zzzzz.m2ts]とされる。ファイル名において、ピリオドの前の[zzzzz]は、対応するクリップ情報ファイルと同一することで、クリップ情報ファイルとこのクリップAVストリームファイルとの対応関係を容易に把握することができる。
ディレクトリ[BACKUP]には、インデックスファイル[index.bdmv]、ムービーオブジェクトファイル[MovieObject.bdmv]、プレイリストディレクトリ[PLAYLIST]、クリップ情報ディレクトリ[CLIPINF]に対応するバックアップデータが置かれる。
ここでバックアップデータは、例えば、後述する図9のファイナライズ処理のシーケンスにおいてバックアップされるものであり、バックアップにより、ディレクトリ[BACKUP]には、/BDMV以下のindex.bdmvとMovieObject.bdmv、/BDMV/PLAYLIST以下のファイルの全て、/BDMV/CLIPINF以下のファイルの全てがコピーされることとなる。図6においてはバックアップデータが存在する場合のディレクトリ[BACKUP]の構造を示しており、もちろんバックアップされていない状態では、ディレクトリ[BACKUP]以下には、ファイル・ディレクトリが1つもない状態となる。つまり、ディレクトリ[BACKUP]について、例えば、以下の2通りの状態を取り得る。
1.BACKUPされている状態
/BDMV以下のindex.bdmvとMovieObject.bdmvのコピーが存在し、
/BDMV/PLAYLIST以下のファイルが全てコピーされていて、
/BDMV/CLIPINF以下のファイルが全てコピーされている状態。
2.BACKUPされていない状態
/BDMV/BACKUP以下にファイル・ディレクトリが1つもない。
なお、ディレクトリ[AVCHDTN]は、2種類のサムネイルファイルthumbnail.tidxおよびthumbnail.tdt2を置くことができる。サムネイルファイルthumbnail.tidxは、所定の方式で暗号化されたサムネイル画像が格納される。サムネイルファイルthumbnail.tdt2は、暗号化されていないサムネイル画像が格納される。例えばビデオカメラでユーザが撮影したクリップに対応するサムネイル画像は、コピーフリーであって暗号化する必要が無いと考えられるため、このサムネイルファイルthumbnail.tdt2に格納される。
続いて、ビデオカメラによる録画・撮影に従ってAVストリームのクリップとともにプレイリストが生成される手順について、図7〜図8を参照しながら説明する。
図7(a),(b)、図8(c),(d)は、(a)〜(d)の順にユーザが録画処理の開始、停止を繰り返し実行した場合のクリップおよびプレイリストの生成過程を示している。図7、図8から理解されるように、ユーザが録画開始してから録画停止する区間毎にプレイアイテムが1つずつ作成される。また、録画・撮影したストリームの区切りで1つのクリップAVストリームファイルとなり、これに伴ってクリップ情報ファイルも作成される。1つのクリップは連続同期再生すなわち実時間再生が保証された再生が必要な単位となる。
また、ユーザが録画を開始する度に、プレイアイテムの先頭には、エントリ・マーク(entry mark)としてのマーク(Mark)が付け加えられる(プレイリスト内のエントリ・マークを「プレイリスト・マーク(PLM)」とも呼ぶ)。1つのプレイリスト内では、プレイアイテムやマークには、連続的となるシーケンス番号が付与されている。動画像対応のプレイリストの先頭には必ずエントリ・マークが打たれるという制約があるが、所定の編集操作により時間軸上でエントリ・マークの位置を移動させることができる。
各エントリ・マークは、ユーザがストリームにアクセスするエントリ位置となる。したがって、隣接するエントリ・マーク間で仕切られる区間(並びに最後のマークから最後尾のプレイアイテムの終端の区間)がユーザから見える最小の編集単位すなわち「チャプタ」となる。プレイ項目を再生順に並べることと、エントリ・マークを再生順に並べることでプレイリストの再生順序が定義される。
[3.ファイナライズ処理]
次に、ファイナライズ処理について説明する。ファイナライズ処理は、図1に示す構成図において、情報記録媒体(メディア)180に対するデータ記録を止めて、情報記録媒体(メディア)に対する新たなデータの記録、すなわち追記を行なわないことを決定した場合、情報記録媒体(メディア)を追記禁止に設定するための処理である。例えば、図1に示す入出力インタフェース114を介してユーザからファイナライズ処理開始要求が入力された場合に、記録再生制御部110の制御のもとにファイナライズ処理が開始される。なお、一旦、ファイナライズを行っても、ファイナライズ解除処理を実行することで、追記可能状態に戻すことも可能である。
図9に示すフローチャートを参照して、ファイナライズ処理のシーケンスについて説明する。まず、ステップS101において、フォトムービーの作成要求の有無を判定する。この処理は、例えば、入出力インタフェース114を介して表示部にユーザ確認を求める表示を行い、その表示に対するユーザ入力に基づいて主制御部111が判定する。具体的には、図10に示すようなフォトムービーの作成要求の有無を確認する表示を実行し、ユーザの入力に基づいて判定する。図10(a)に示す画面は、ファイナライズの開始要求を行う際の画面であり、この画面において、[フォトムービーの有無]の指定を実行すると、図10(b)の画面に遷移し、ここで、ユーザはフォトムービーの作成を行なうか否かの指定を行なうことができる。
図9のフローに戻り、ファイナライズ処理のシーケンスについての説明を続ける。ステップS101において、フォトムービーの作成要求があると判定された場合は、ステップS102において、フォトムービーの作成処理を実行する。フォトムービーの作成処理の詳細については、後段の[4.フォトムービー作成処理]の項目において、詳細に説明する。
次に、ステップS103において、メニューなしファイナライズが指定されているか否かを判定する。ファイナライズ処理の態様としては、
(a)メニューありファイナライズ
(b)メニューなしファイナライズ
これらの態様がある。メニューとは、情報記録媒体(メディア)の再生時のオープニング画面に提示されるメニューであり、情報記録媒体(メディア)に格納された動画像の各コンテンツファイルのタイトルや代表画像などを提示するためのメニューである。ユーザは、ファイナライズ処理の際に、このメニューを作成するか否かを指定することができる。例えば、図10を参照して説明したと同様、表示部にメニューの有無を指定可能なデータを表示し、ユーザ入力を受領することで実行される。
ステップS103において、メニューなしファイナライズが指定されていない場合は、ステップS104に進み、メニューの作成処理が実行される。次にステップS105〜S107においてバックアップデータの記録処理がなされる。まず、ステップS105において、図6を参照して説明したディレクトリ構成におけるインデックスファイル[index.bdmv]と、ムービーオブジェクトファイル[MovieObject.bdmv]をバックアップデータの記録ディレクトリとして設定されるディレクトリ[BACKUP]中の、インデックスファイル[index.bdmv]、ムービーオブジェクトファイル[MovieObject.bdmv]にコピーする。
さらに、ステップS106において、クリップ情報ディレクトリ[CLIPINF]に記録されたクリップ情報ファイルを、ディレクトリ[BACKUP]中のディレクトリ[CLIPINF]にバックアップデータとして記録する。さらに、ステップS107において、プレイリストディレクトリ[PLAYLIST]に記録されたプレイリスト情報ファイルを、ディレクトリ[BACKUP]中のディレクトリ[PLAYLIST]にバックアップデータとして記録する。
次にステップS108においてパディング処理の要否が確認される。パディング処理は、情報記録媒体(メディア)、例えばディスクのデータ未記録領域に、ダミーデータを書き込む処理である。ディスクを再生する機器の一部は、ディスクのデータ記録領域が少ない場合、データ再生ができない構成を持つものがあるこのような事態を避けるため、データの未記録領域にダミーデータを書き込む処理を行なうのがパディング処理である。情報記録媒体(メディア)のデータ記録領域の状態を検出し、未記録領域が多い場合には、パディング処理が必要と判断し、ステップS109において、パディング処理を実行する。
次に、ステップS110においてファイルシステムの更新を実行する。ファイルシステムの更新は、例えば、情報記録媒体(メディア)に記録されたデータに応じた管理情報の更新処理である。次に、ステップS111において、ボーダークローズが必要か否かを判定する。ボーダークローズとは、情報記録媒体(メディア)、例えばディスクに対して、データ記録領域を示すリードイン、リードアウト領域を確認可能とするための情報記録媒体(メディア)に対する処理である。この処理は、情報記録媒体(メディア)の種類に応じて要否が判定される。ボーダークローズ処理が必要である場合は、ステップS112においてボーダークローズ処理が実行される。
このような処理によって、ファイナライズ処理が実行される。ファイナライズ処理によって、情報記録媒体(メディア)の追記は禁止された状態になる。しかし、前述したように、一旦、ファイナライズを行っても、ファイナライズ解除処理を実行することで、ファイナライズ状態を解除することが可能であり、この処理によって情報記録媒体(メディア)を追記可能状態に戻すことが可能である。
[4.フォトムービー作成処理]
次に、フォトムービー作成処理の詳細について説明する。前述したように、フォトムービーは、情報記録媒体(メディア)に記録された静止画データを読み出して復号した後、再度、動画形式の符号化データに符号化して情報記録媒体(メディア)に再書き込みを行なう処理である。フォトムービーの作成処理は、例えば、上述したファイナライズ処理に際して実行される。あるいはファイナライズと異なるタイミング、例えば、データ編集処理として実行することも可能である。例えば、図1に示す入出力インタフェース114を介してユーザからフォトムービー作成処理要求が入力された場合に、記録再生制御部110の制御のもとにフォトムービー作成処理が開始される。
フォトムービーの作成シーケンスについて、図11に示すフローチャートを参照して説明する。まず、ステップS201において、フォトムービー用のプレイリストをRAM上に作成する。これは、先に、[2.データ・フォーマット]の欄において説明したプレイリストであり、AVストリームとしてのコンテンツに対応する再生リストである。この場合は、フォトムービーに対応する再生リストとしてのプレイリストをRAM上に生成する。
次にステップS202において、フォトムービー用のクリップ情報をRAM上に作成する。クリップ情報は、先に説明したように、AVストリームの属性を定義するファイルであり、この場合は、フォトムービーに対応する属性定義ファイルとしてのクリップ情報をRAM上に生成する。
次に、ステップS203において、図1に示す符号復号化部140を静止画のデコード(復号)処理を行い外部出力する状態へ遷移させ、ステップS204において、入出力信号制御部150を符号復号化部140からの信号を入力する状態に設定し、ステップS205において、媒体制御部120を介して、情報記録媒体(メディア)180に記録済みの静止画のストリームを読み出す。
次に、ステップS206において、情報記録媒体(メディア)から読み出された静止画ストリームを符号復号化部140において復号(デコード)し、入出力信号制御部150に出力する。次に、ステップS207において、入出力信号制御部150は、入力されている静止画をキャプチャし、ステップS208においてキャプチャ画面を符号復号化部140へ出力する。
ステップS209では、符号復号化部140において、入出力信号制御部150から入力した静止画に基づいて、動画形式の符号化データ(例えばMPEG-4 Part 10 Advanced Video Coding(AVC)/H.264形式)にするエンコード処理を実行し、フォトムービーに対応するストリームを生成して記録再生用ワークメモリ130に格納する。
次に、ステップS210において、媒体制御部120が記録再生用ワークメモリ130に保存されているエンコードされたデータからIピクチャを情報記録媒体(メディア)180に記録する。IピクチャはMPEGデータを構成するIピクチャ、Pピクチャ、Bピクチャの構成要素であり、MPEG符号化データ中の重要ピクチャである。
次に、ステップS211において、符号化処理において生成されたIピクチャの数に相当するプレイアイテムをフォトムービー用のプレイリスト内に追加する処理を実行する。すなわちフォトムービーのプレイリストにはフォトムービーを構成するIピクチャ毎にプレイアイテムが設定される。
次に、ステップS212において、符号化処理において生成されたIピクチャごとの情報をフォトムービー用のクリップ情報内に追加する。クリップ情報は、AVストリームの属性を定義するファイルであり、例えば、coding,size,時間→アドレス変換、再生管理情報、タイムマップ等が含まれ、これらの情報を各Iピクチャに対応して生成し、クリップ情報内に記録する。
次に、ステップS213において、情報記録媒体(メディア)に記録された全ての静止画のフォトムービー変換処理が終了したか否かを確認し、終了していない場合は、ステップS203以下の処理を未処理データに対して実行する。ステップS213において、情報記録媒体(メディア)に記録された全ての静止画のフォトムービー変換処理が終了したと判定されると、ステップS214に進み、RAM上で生成したフォトムービー用のプレイリストを記録媒体に書き込む。
次に、ステップS215において、RAM上で生成したフォトムービー用のクリップ情報を記録媒体に書き込み、ステップS216において、ムービーオブジェクトファイルに対して、生成したフォトムービーに対応する情報を記録する更新処理を行って記録媒体に書き込む。ムービーオブジェクトは、再生制御を行うためのコマンドの集合体であり、新たに生成したフォトムービーに対応するコマンドをムービーオブジェクトに記録する更新を実行して記録媒体に書き込む。さらに、ステップS217において、インデックスファイルについても、フォトムービーに対応する情報の記録を行なった後、記録媒体に書き込む。
以上の処理によって、フォトムービーの作成、情報記録媒体(メディア)に対する記録処理が終了する。
[5.メニュー作成処理]
次に、メニュー作成処理の詳細について説明する。前述したように、メニューの作成処理は、例えば、上述したファイナライズ処理に際して実行される。あるいはファイナライズと異なるタイミング、例えば、データ編集処理として実行することも可能である。例えば、図1に示す入出力インタフェース114を介してユーザからメニュー作成処理要求が入力された場合に、記録再生制御部110の制御のもとにメニュー作成処理が開始される。
メニューの作成シーケンスについて、図12に示すフローチャートを参照して説明する。まず、ステップS251において、メニュー用のプレイリストをRAM上に作成する。これは、先に、[2.データ・フォーマット]の欄において説明したプレイリストであり、AVストリームとしてのコンテンツに対応する再生リストである。この場合は、メニューに対応する再生リストとしてのプレイリストをRAM上に生成する。
次にステップS252において、メニュー用のクリップ情報をRAM上に作成する。クリップ情報は、先に説明したように、AVストリームの属性を定義するファイルであり、この場合は、メニューに対応する属性定義ファイルとしてのクリップ情報をRAM上に生成する。
次に、ステップS253において、図1に示す符号復号化部140を動画のデコード(復号)処理を行い外部出力する状態へ遷移させ、ステップS254において、入出力信号制御部150を符号復号化部140からの信号を入力する状態に設定し、ステップS255において、媒体制御部120を介して、情報記録媒体(メディア)180に記録済みの動画の代表画、例えば各チャプタの先頭画像データのストリームを読み出す。
次に、ステップS256において、情報記録媒体(メディア)から読み出された代表画ストリームを符号復号化部140において復号(デコード)し、入出力信号制御部150に出力する。このステップS255、S256の処理は、1ページのチャプタ数分繰り返し実行される。すなわち、各チャプタ毎に代表画像が選択されメニューに表示される構成としたメニューが生成される。
次に、ステップS257において、入出力信号制御部150は、入力されている静止画をキャプチャし、ステップS258においてキャプチャ画面を符号復号化部140へ出力する。
ステップS259では、符号復号化部140において、入出力信号制御部150から入力した代表画に基づいて、動画形式の符号化データ(例えばMPEG-4 Part 10 Advanced Video Coding(AVC)/H.264形式)にするエンコード処理を実行し、メニューに対応するストリームを生成して記録再生用ワークメモリ130に格納する。
次に、ステップS260において、媒体制御部120が記録再生用ワークメモリ130に保存されているエンコードされたデータからIピクチャを情報記録媒体(メディア)180に記録する。IピクチャはMPEGデータを構成するIピクチャ、Pピクチャ、Bピクチャの構成要素であり、MPEG符号化データ中の重要ピクチャである。
次に、ステップS261において、符号化処理において生成されたIピクチャの数に相当するプレイアイテムをメニュー用のプレイリスト内に追加する処理を実行する。すなわちメニューのプレイリストにはメニューを構成するIピクチャ毎にプレイアイテムが設定される。
次に、ステップS262において、符号化処理において生成されたIピクチャごとの情報をメニュー用のクリップ情報内に追加する。クリップ情報は、AVストリームの属性を定義するファイルであり、例えば、coding,size,時間→アドレス変換、再生管理情報、タイムマップ等が含まれ、これらの情報を各Iピクチャに対応して生成し、クリップ情報内に記録する。
次に、ステップS263において、メニューを構成する全てのページに対応するメニュー生成処理が終了したか否かを確認し、終了していない場合は、ステップS253以下の処理を未処理データに対して実行する。ステップS263において、情報記録媒体(メディア)に記録されたコンテンツに対応するメニューページの生成処理が終了したと判定されると、ステップS264に進み、RAM上で生成したメニュー用のプレイリストを記録媒体に書き込む。
次に、ステップS265において、RAM上で生成したメニュー用のクリップ情報を記録媒体に書き込み、ステップS266において、ムービーオブジェクトファイルに対して、生成したメニューに対応する情報を記録する更新処理を行って記録媒体に書き込む。ムービーオブジェクトは、再生制御を行うためのコマンドの集合体であり、新たに生成したメニューに対応するコマンドをムービーオブジェクトに記録する更新を実行して記録媒体に書き込む。さらに、ステップS267において、インデックスファイルについても、メニューに対応する情報の記録を行なった後、記録媒体に書き込む。
以上の処理によって、メニューの作成、情報記録媒体(メディア)に対する記録処理が終了する。
[6.ファイナライズ状態判定処理]
次に、情報記録媒体(メディア)が追記処理の禁止されたファイナライズ状態にあるか否かを判定する処理について説明する。この判定処理は、図1に示す記録再生制御部110の制御のもとに、情報記録媒体(メディア)180から判定処理に必要なデータを検証して実行される。ファイナライズ状態判定処理シーケンスについて、図13に示すフローチャートを参照して説明する。
なお、図13に示すフローにおいて、それぞれ点線で囲った部分(a)〜(e)がそれぞれ独立したファイナライズ状態判定処理であり、システムや商品仕様に応じて判定処理(a)〜(e)から1つ以上の判定処理を組み合わせて実行する構成とすることが可能である。図13に示すフローチャートでは、判定処理(a)〜(e)のすべての判定処理を実行する構成例について説明する。
判定処理(a)
まず、ステップS301において、情報記録媒体に記録されたインデックスファイルを読み出してメモリに保持する。インデックスファイル[Index.bdmv]は、タイトルなどのインデックス情報が格納されたファイルである。例えば、ファイナライズ処理においてメニュー作成やフォトムービーの作成が行われた場合、メニューやフォトムービーに対応するタイトルなどのインデックス情報が記録されている。
ステップS302では、インデックスファイル[Index.bdmv]に設定されたプレイリストテーブルフィールド[TableOfPlayLists()]のトップメニュープレイリスト[TopMenuPlayLists()]内の登録プレイリスト数を確認し、ステップS303において、登録数が1以上であると判定した場合は、情報記録媒体(メディア)が追記処理の禁止されたファイナライズ状態にあると判定する。
判定処理(b)
次に、ステップS304では、インデックスファイル[Index.bdmv]に設定されたプレイリストテーブルフィールド[TableOfPlayLists()]のファーストプレイバックプレイリスト[FirstPlaybackPlayLists()]内の登録プレイリスト数を確認し、ステップS305において、登録数が1以上であると判定した場合は、情報記録媒体(メディア)が追記処理の禁止されたファイナライズ状態にあると判定する。
上記判定処理(a),(b)は、メニューが生成されているか否かについて、インデックスファイル[Index.bdmv]の記録情報に基づいて確認し、メニューが生成されている場合には、情報記録媒体(メディア)が追記処理の禁止されたファイナライズ状態にあると判定する処理に相当する。
先に、図12を参照して説明したメニュー作成処理において、ステップS267では、インデックスファイル[Index.bdmv]の更新がなされて、情報記録媒体に記録する処理が実行される。この更新処理において、インデックスファイル[Index.bdmv]には、メニューの作成処理に伴う情報が記録される。上記判定処理(a),(b)は、この記録情報に基づいてメニューが作成されているか否かを判定してメニューが作成されていると判定された場合は、情報記録媒体(メディア)が追記処理の禁止されたファイナライズ状態であると判定する処理である。
具体的なインデックスファイル[Index.bdmv]の構成について、図14以下を参照して説明する。図14は、インデックスファイルのシンタクスである。ここでは、シンタクスをコンピュータ装置などのプログラムの記述言語として用いられるC言語の記述法に基づき示す。これは、他のシンタクスを表す図において、同様である。
図14に示すように、インデックスファイル[Index.bdmv]には、このファイルがインデックスファイルであることを示すタイプ情報[TypeIndicator]が記録され、その後にバージョン情報、各実体データのスタートアドレス情報[IndexesStartAddress]〜[ExtensionStartAddress]が記録され、その後に、実体データとして、アプリケーション情報ブロック[ApplInfoBDMV()]、インデックス情報ブロック[Indexes()]、エクステンションデータブロック[blkExtensionData()]301が記録される。
図15は、図14に示すインデックスファイル[Index.bdmv]中のエクステンションデータブロック[blkExtensionData()]301のシンタクスである。このエクステンションデータブロックには、インデックス情報内の他のブロックに記述できない様々な拡張データを記録することが可能である。図に示す例では、拡張データとして、識別情報データフィールドとして設定されるID1フィールドに、記録データのフォーマット情報[AVCHD]を示す値を記録し、ID2フィールドにバージョン情報を記録した例を示している。さらに、データブロック310には、様々な拡張データを記録することができる。
データブロック310の例を図16に示す。データブロックには、メーカー独自のデータなどが記録可能であり、図16に示す例では、AVCHDにおけるUIアプリケーション情報ブロック[UIAppInfoAVCHD()]、プレイリストテーブル情報ブロック[TableOfPlayLists()]321、メーカープライベートデータブロック[MakersPrivateData()]が設定された構成となっている。
図17は、インデックス情報ファイルのエクステンションデータブロック中の図16に示すプレイリストテーブル情報ブロック[TableOfPlayLists()]321の構成例を示す図である。ここにはプレイリストに関する情報を記録する。図17に示すインデックス情報ファイルのエクステンションデータブロック中のプレイリストテーブル情報ブロック[TableOfPlayLists()]内のファーストプレイバックおよびトップメニュープレイリスト情報フィールド[FirstPlayback_PlayLists()],[TopMenu_PlayLists()]331には、ファーストプレイバックおよびトップメニューに対応するプレイリスト情報が記録される。ファーストプレイバック対応のプレイリストは、情報記録媒体(メディア)の起動時に呼び出され実行されるプレイリストであり、トップメニューに対応するプレイリストはメニュー表示処理に従って呼び出され実行されるプレイリストである。いずれもメニューが作成された場合に設定されるプレイリストであり、メニューが作成されていない場合には作成されないプレイリストである。
図18は、図17に示すインデックス情報ファイルのエクステンションデータブロック中のプレイリストテーブル情報ブロック[TableOfPlayLists()]内に含まれるファーストプレイバックおよびトップメニュープレイリスト情報フィールド331の構成例を示している。ファーストプレイバックおよびトップメニュープレイリスト情報フィールド331の構成は同一であるので、1つのシンタクスのみを示してある。
例えば、図18に示すシンタクスが、ファーストプレイバックプレイリストフィールド[FirstPlayback_PlayLists()]に対応するシンタクスである場合、ここには、ファーストプレイバック対応のプレイリスト、すなわち情報記録媒体(メディア)の起動時に呼び出され実行されるプレイリストに関する情報が記録される。具体的には、先に、図12を参照して説明したメニュー作成処理を実行した場合、図12のステップS267のインデックスファイルの更新処理に際して、作成したメニューに基づく情報が記録される。具体的には、メニュー対応のプレイリストが生成された場合は、図12のステップS267において、プレイリスト数フィールド[number of Playlist]341に[1]が設定される。生成されていない場合は[0]が設定される。
図13に示す判定処理(b)、すなわち、ステップS304〜S305の判定処理は、図18に示すファーストプレイバックプレイリストフィールド[FirstPlayback_PlayLists()]内のプレイリスト数フィールド[number of Playlist]341に[1]が設定されているか否かを確認する処理であり、[1]が設定されている場合は、ファーストプレイバック対応のプレイリスト、すなわち情報記録媒体(メディア)の起動時に呼び出され実行されるメニューに対応するプレイリストが生成されていると判断し、先に、図9を参照して説明したファイナライズ処理、すなわちメディアを追記禁止とする処理が実行されていると判断するものである。
また、図18に示すシンタクスが、トップメニュープレイリスト情報フィールド[TopMenu_PlayLists()]に対応するシンタクスである場合、ここには、トップメニューに対応するプレイリスト、すなわち、メニュー表示処理に従って呼び出され実行されるプレイリストに関する情報が記録される。具体的には、先に、図12を参照して説明したメニュー作成処理を実行した場合、図12のステップS267のインデックスファイルの更新処理に際して、作成したメニューに基づく情報が記録される。具体的には、メニュー対応のプレイリストが生成された場合は、図12のステップS267において、プレイリスト数フィールド[number of Playlist]341に[1]が設定される。生成されていない場合は[0]が設定される。
図13に示す判定処理(a)、すなわち、ステップS302〜S303の判定処理は、図18に示すファーストプレイバックプレイリストフィールド[FirstPlayback_PlayLists()]内のプレイリスト数フィールド[number of Playlist]341に[1]が設定されているか否かを確認する処理であり、[1]が設定されている場合は、トップメニュー対応のプレイリスト、すなわちメニュー表示処理に従って呼び出され実行されるプレイリストが生成されていると判断し、先に、図9を参照して説明したファイナライズ処理、すなわちメディアを追記禁止とする処理が実行されていると判断するものである。
図13に示すフローチャートに戻りファイナライズ判定処理の説明を続ける。
判定処理(c)
判定処理(c)は、ステップS306〜S308の処理ステップによって構成される。ステップS306では、先に図6を参照して説明したディレクトリ構成中のプレイリストディレクトリ[PLAYLIST]、およびバックアップ[BACKUP]ディレクトリに含まれるバックアップデータとしてのプレイリストディレクトリ[PLAYLIST]に保存されているプレイリストのタイトルを全て確認する。
さらに、ステップS307では、先に図14を参照して説明したインデックスファイル[Index.bdmv]のエクステンションデータブロック[blkExtensionData()]301(図15)内のデータブロック[data block]310に含まれるプレイリストテーブル情報ブロック[TableOfPlayLists()]321(図16)中のデータ、すなわち図17に示すデータ中のプレイリストペアタイトル情報フィールド[Title_PlayList_Pair()]322に登録されたプレイリストのタイトルを取得し、ステップS306において取得したプレイリストタイトルとの照合処理を実行する。図17に示すデータ中のプレイリストペアタイトル情報フィールド[Title_PlayList_Pair()]322には、これまでに撮影した画像コンテンツに対応する登録されたプレイリストのタイトル情報が記録されている。ペア[Pair]とはプレイリストとタイトルとのペアを意味する。
ステップS308において、ステップS306において、実存するプレイリストから取得したプレイリストタイトルと、ステップS307においてインデックスファイルのプレイリストペアタイトル情報フィールド[Title_PlayList_Pair()]322から取得した登録済みのプレイリストタイトルとを照合して、インデックスファイルのプレイリストペアタイトル情報フィールド[Title_PlayList_Pair()]322に登録されていないプレイリストの存在が確認された場合は、メディアを追記禁止としたファイナライズ状態にあるものと判断する。実存するプレイリストがすべて登録されている場合は、ステップS309に進む。
この判定処理(c)は、メディアに記録されたプレイリストのタイトルと、インデックスファイルのプレイリストペアタイトル情報フィールド[Title_PlayList_Pair()]322に登録されたプレイリストタイトルとの照合を行なうものである。プレイリストペアタイトル情報フィールド[Title_PlayList_Pair()]322に登録されないプレイリストは、前述したメニューに対応するプレイリストである可能性が高く、この場合は、図9を参照して説明したメニュー作成を伴うファイナライズ処理が実行されたと判定するものである。
判定処理(d)
判定処理(d)は、ステップS309〜S311の処理ステップによって構成される。この判定処理は、先に図11を参照して説明したフォトムービーの作成が実行されているか否かに基づいて追記を禁止するファイナライズ処理の実行の有無を判定する処理である。図9を参照して説明したように、フォトムービーの作成処理は、ファイナライズ処理に際して、メディアに記録済みの静止画を集積して動画データに変換して再記録する処理として実行される。従って、フォトムービーが作成されていれば、ファイナライズが実行済みであると判定するものである。
ステップS309では、先に図14を参照して説明したインデックスファイル[Index.bdmv]のエクステンションデータブロック[blkExtensionData()]301(図15)内のデータブロック[data block]310に含まれるプレイリストテーブル情報ブロック[TableOfPlayLists()]321(図16)中のデータ、すなわち図17に示すデータ中のプレイリストペアタイトル情報フィールド[Title_PlayList_Pair()]322に登録された最終プレイリストを読み込む。なお、ここでは、処理負担を考慮して最終プレイリストのみの確認構成として説明するが、例えば登録されたプレイリストの最後からn番目までを検証するといった処理やすべての登録プレイリストを検証する処理として実行してもよい。フォトムービーの作成はファイナライズ時に実行され、基本的には最終プレイリストとして登録されるので、最終登録プレイリストがフォトムービーに対応するプレイリストであるかを判断する処理のみで十分である。
ステップS310では、最終プレイリストのメーカープライベートデータ[MakersPrivateData()]のフォトムービー識別マークの有無を判定し、ステップS311において、フォトムービー識別マークがあれば、フォトムービーが生成済みでありファイナライズ状態にあると判断する。フォトムービー識別マークがなければ、ステップS312に進む。
個々のプレイリストファイルには、メーカープライベートデータ[MakersPrivateData()]が設定される。プレイリストがフォトムービー対応のプレイリストである場合、このメーカープライベートデータ[MakersPrivateData()]フィールドに、フォトムービー識別マークが記録される。プレイリストファイルのシンタクスを図19に示す。
プレイリストファイルには、図19に示すように、タイプ情報[TypeIndicator]が記録され、その後に各実体データのスタートアドレス情報[PlayListStartAddress]〜[ExtensionStartAddress]が記録され、その後に、プレイリストファイルに記録される実体データの記録フィールド[blkApplicationPlayList()]〜[blkExtensionData()]351が記録された構成を持つ。
図20は、プレイリストファイルに含まれるエクステンションデータブロック[ExtensionData()]のシンタクスを示す。プレイリストファイルのエクステンションデータブロック[ExtensionData()]には、データの種類を示す[type_indicator]、エクステンションデータブロック[ExtensionData()]に記録されるデータの開始アドレス[PlayListMarkExt_start_address]、[MakersPrivateData_start_address]、さらに、実質的なデータ記録領域として、ブロック[PlayListMeta()]、プレイリストマークエクステンションブロック[PlayListMarkExt()]、およびメーカープライベートデータブロック[MakersPrivateData()]361が記録される。
図20に示すプレイリストファイルのエクステンションデータブロック中のメーカープライベートデータブロック[MakersPrivateData()]361シンタクスを図21に示す。図21に示すように、プレイリストファイルに含まれるメーカープライベートデータブロック[MakersPrivateData()]は、データブロックの開始アドレスを示すデータブロックスタートアドレス[data_block_start_adress]、メーカーエントリ数[number_of_maker_entries]などのフィールドの他、実質的なデータ記録領域としてのデータブロック[data_block]371を有する。
このデータブロック[data_block]371に、このプレイリストが、フォトムービーに対応するプレイリストであることを記録する。例えばABC社製ビデオ機器において作成したフォトムービーであることを示すコードをASCIIコードなどで記録する。
ファイナライズ処理の後、ファイナライズを解除する場合、各プレイリストのエクステンションデータを参照することで、フォトムービー対応のプレイリストであるか否かを容易に判別することが可能であり、そのプレイリストに記録された情報に基づいて、フォトムービーに対応する実体コンテンツおよび属性データを容易に検索して削除することが可能となる。すなわち、図1に示す主制御部111は、情報記録媒体(メディア180)の追記禁止状態の解除処理に際して、プレイリストを参照して、プレイリストに記録された識別データに基づいて、静止画データに基づいて生成した動画形式の符号化データに対応する属性情報格納ファイル(プレイリスト)を検出し、静止画データに基づいて生成した動画形式の符号化データに対応するコンテンツおよび関連情報の削除を実行する。この処理によって、迅速なファイナライズ解除処理が可能となる。
図13に示すファイナライズ状態判定処理におけるステップS309〜S311の処理は、上述したようにプレイリストファイルを参照して、フォトムービーの作成が実行されているか否かに基づいて追記を禁止するファイナライズ処理の実行の有無を判定する処理である。図9を参照して説明したように、フォトムービーの作成処理は、ファイナライズ処理に際して、メディアに記録済みの静止画を集積して動画データに変換して再記録する処理として実行される。従って、フォトムービーが作成されていれば、ファイナライズが実行済みであると判定するものである。
判定処理(e)
判定処理(e)は、ステップS312〜S313の処理ステップによって構成される。この判定処理は、インデックスファイル[Index.bdmv]のメーカープライベートデータ[MakersPrivateData()]領域にファイナライズされていることを示す識別子が記録されているか否かを確認して、記録されている場合には、ファイナライズ状態にあると判定する処理である。
先に、図14を参照して説明したインデックスファイル[Index.bdmv]にも図16に示すようにメーカープライベートデータ[MakersPrivateData()]322が設定され、様々なデータを記録することができる。先に図9を参照して説明したファイナライズ処理が実行された場合、このメーカープライベートデータ[MakersPrivateData()]322にファイナライズがなされたことを示す識別子が記録される。
ステップS312では、このインデックスファイル[Index.bdmv]に含まれるメーカープライベートデータ[MakersPrivateData()]を読み出す。ステップS313において、このフィールドにファイナライズがなされたことを示す識別子が記録されていると判定した場合は、ファイナライズが実行済みであると判定する。識別子が記録されていないと判定した場合は、ファイナライズが実行されていないと判定する。
以上、説明したように、本発明の情報処理装置では、以下のいずれかの状態である場合には、情報記録媒体(メディア)が追記を禁止されたファイナライズ状態であると判定する。
(a)インデックスファイル[Index.bdmv]のトップメニュープレイリストフィールド[FirstPlayback_PlayLists()]内のプレイリスト数フィールド[number of Playlist]に[1]が設定されている。
(b)インデックスファイル[Index.bdmv]のファーストプレイバックプレイリストフィールド[FirstPlayback_PlayLists()]内のプレイリスト数フィールド[number of Playlist]に[1]が設定されている。
(c)インデックスファイル[Index.bdmv]のプレイリストペアタイトル情報フィールド[Title_PlayList_Pair()]に登録されないプレイリストが存在する。
(d)プレイリストファイルのメーカープライベートデータブロック[MakersPrivateData()]にフォトムービーに対応するプレイリストであることを示す情報が記録されている。
(e)インデックスファイル[Index.bdmv]のメーカープライベートデータブロック[MakersPrivateData()]にフアイナライズ処理済みであることを示す情報が記録されている。
上記(a)〜(e)のいずれかの1つでも該当する場合は、情報記録媒体(メディア)は、追記が禁止された状態、すなわちファイナライズ状態であると判定する。この場合、情報処理装置の表示部には、装着された情報記録媒体(メディア)がファイナライズ状態にありデータの追記ができない状態であることを通知するための識別情報の表示がなされる。表示例を図22に示す。
図22には2つの識別情報の表示例(1),(2)を示している。表示例(1)は、常時、表示する例であり、ファイナライズ状態表示アイコン381を常に画面(モニタ)に表示される処理構成である。表示例(2)は、例えば、ユーザがビデオカメラの撮影開始ボタンを操作した場合などのトリガに基づいて、画面(モニタ)に警告メッセージ382を表示する例である。ユーザはこれらの表示に基づいて、追記ができない状態であることを確認することができる。
情報処理装置を適用したデータ記録開始時のファイナライズ状態情報に基づく処理シーケンスについて、図23に示すフローを参照して説明する。この図23に示すフローチャートの処理は、図1に示す入出力インタフェース114を介するユーザの撮影ボタンの押下を主制御部111が検出し、主制御部111の制御の下に実行される。まず、ステップS401において、メモリ、例えば図1に示すRAM113に保持されたファイナライズ状態にあるか否かを示す情報を取得する。この情報は、先に図13に示すフローチャートを参照して説明したファイナライズ状態判定処理の結果として得られた情報である。なお、図13に示すファイナライズ状態判定処理は、情報記録媒体(メディア)の装着時や電源の入力時に実行され、判定情報がRAM113に格納される。なお、ファイナライズ状態にないメディアに対してファイナライズ処理が実行された場合には、RAM113の状態値は書き換えが実行される。
ステップS402において、メモリから取得したファイナライズ状態情報に基づいてファイナライズ状態にないと判定された場合は、ステップS403に進み、先に図6を参照して説明したディレクトリ構成におけるバックアップデータの格納ディレクトリであるBDMV/BACKUP以下のエントリ数(ファイル/ディレクトリ)を取得する。
次に、ステップS404において、ステップS403において取得したエントリ数が0でなく1つ以上存在するか否かを判定する、1つ以上存在すると判定されると、ステップS407に進み、記録禁止であることを表示し、ステップS408において警告音を鳴らしてユーザに警告する。一方、ステップS404において取得エントリ数が0であると判定された場合は、ステップS405に進み、通常の撮影処理を実行する。
また、ステップS402において、メモリから取得したファイナライズ状態情報に基づいてファイナライズ状態にあると判定された場合は、ステップS406、S408に進み、ファイナライズ状態にあり、追記ができないことを通知する表示や警告音を出力する。例えば、図22を参照して説明した表示がなされる。
なお、ステップS403においてディレクトリBDMV/BACKUP以下のエントリ数(ファイル/ディレクトリ)を取得し、ステップS404においてエントリ数=0でないと判定された場合、追記不可状態にあるが、この追記不可状態を解消するための処理として、特定ディレクトリBDMV/BACKUP以下のファイル。−、ディレクトリを削除して、BDMV/BACKUP以下のエントリ数(ファイル/ディレクトリ)を0として、追記可能状態に移行させる処理を実行する構成としてもよい。
[7.ファイナライズ状態解除処理]
先に図9に示すフローチャートを参照して説明したファイナライズ処理は、情報記録媒体(メディア)に対する追記を禁止する状態に設定する処理であるが、ファイナライズ状態は、解除することができ、解除処理によって、情報記録媒体(メディア)に対する追記を、再度可能にすることができる。このファイナライズ解除処理はアンファイナライズ処理とも呼ばれる。ファイナライズ解除処理のシーケンスについて、図24に示すフローチャートを参照して説明する。この処理は、図1に示す入出力インタフェース114を介するユーザのアンファイナライズ要求を主制御部111が検出し、主制御部111の制御の下に実行される。
まず、ステップS501において、情報記録媒体に記録されたインデックスファイルを読み出してメモリに保持する。インデックスファイル[Index.bdmv]は、タイトルなどのインデックス情報が格納されたファイルであり、先に、図14〜図18のシンタクスを参照して説明したデータ記録構造を持つ。
ステップS502では、インデックスファイル[Index.bdmv]に設定されたプレイリストテーブルフィールド[TableOfPlayLists()]のトップメニュープレイリスト[TopMenuPlayLists()]内の登録プレイリストを確認し、ステップS503において、登録プレイリストを削除する。この処理は、先に、図13のファイナライズ状態判定処理フローで説明した判定処理(a)に対応する処理であり、ファイナライズ時に設定されたメニュー対応のプレイリスト、すなわち、トップメニュープレイリストを削除する処理である。
次のステップS504では、インデックスファイル[Index.bdmv]に設定されたプレイリストテーブルフィールド[TableOfPlayLists()]のファーストプレイバックプレイリスト[FirstPlaybackPlayLists()]内の登録プレイリストを確認し、ステップS505において、登録プレイリストを削除する。この処理は、先に、図13のファイナライズ状態判定処理フローで説明した判定処理(b)に対応する処理であり、ファイナライズ時に設定されたメニュー対応のプレイリスト、すなわち、ファーストプレイバックプレイリストを削除する処理である。
次に、ステップS506において、インデックスファイル[Index.bdmv]のエクステンションデータブロック[blkExtensionData()]301(図15)内のデータブロック[data block]310に含まれるプレイリストテーブル情報ブロック[TableOfPlayLists()]321(図16)中のデータ、すなわち図17に示すデータ中のプレイリストペアタイトル情報フィールド[Title_PlayList_Pair()]322に登録されたプレイリストを確認し、ステップS507において、登録のないプレイリストを削除する。
この処理は、先に、図13のファイナライズ状態判定処理フローで説明した判定処理(c)に対応する処理であり、例えばファイナライズ時に設定されたメニュー対応のプレイリストや、登録の済んでないプレイリストを削除する処理である。
次に、ステップS508において、先に図14を参照して説明したインデックスファイル[Index.bdmv]のエクステンションデータブロック[blkExtensionData()]301(図15)内のデータブロック[data block]310に含まれるプレイリストテーブル情報ブロック[TableOfPlayLists()]321(図16)中のデータ、すなわち図17に示すデータ中のプレイリストペアタイトル情報フィールド[Title_PlayList_Pair()]322に登録された最終プレイリストを読み込む。
次に、ステップS509において、最終プレイリストのメーカープライベートデータ[MakersPrivateData()]のフォトムービー識別マークの有無を判定し、ステップS510において、フォトムービー識別マークがあれば、ステップS511において、その最終プレイリストを削除する。フォトムービー識別マークがなければ、ステップS512に進む。
この処理は、先に、図13のファイナライズ状態判定処理フローで説明した判定処理(d)に対応する処理であり、ファイナライズ時に設定されたフォトムービー対応のプレイリストを削除する処理である。
次に、ステップS512において、インデックスファイル[Index.bdmv]のメーカープライベートデータ[MakersPrivateData()]領域にファイナライズされていないことを示す識別子を記録する。あるいはファイナライズされていることを示す識別子を削除する。
なお、ステップS508〜S511の処理とステップS512の処理は、フォトムービー識別マークやファイナライズ識別子の記録を実行するサポート機器においてのみ実行すればよい、
次に、ステップS513において、インデックスファイル[Index.bdmv]とムービーオブジェクトファイル[MovieObject.bdmv]を機器の仕様に応じて作り直してメディア上に再記録する更新処理を行い、再後にステップS514において、メモリ上に保存されているファイナライズ状態情報をファイナライズ状態にないことを示す状態値に変更して処理を終了する。
この処理によって、情報記録媒体(メデイア)はデータの追記が可能な状態に設定される。この処理においてメニューが削除され、またフォトムービーも削除されており、先に図9を参照して説明したファイナライズ処理の実行前の状態と同様の状態に設定されることになる。
なお、図24に示すファイナライズ解除処理において、ステップS503、S505、S507、S511においてプレイリストの削除処理が実行される。このプレイリスト削除処理の詳細シーケンスについて、図25に示すフローチャートを参照して説明する。
まず、ステップS601において、削除対象のプレイリストファイルを情報記録媒体から取得して、メモリ(例えばRAM113)上に読み込む。ステップS602において、初期設定としてプレイアイテムID[PlayItem_id]を[0]に設定する。
ステップS603において、プレイアイテムID[PlayItem_id]が、削除対象のプレイリストファイルに記録されたプレイアイテム数[number_of_PlayItems]未満であるか否かを判定する。初期設定はプレイアイテムID[PlayItem_id]=0であるので、ステップS604に進む。
図26にプレイリストファイルのシンタクスを示す。プレイリストファイルには、図26に示すように、タイプ情報[TypeIndicator]が記録され、その後に各実体データのスタートアドレス情報[PlayListStartAddress]〜[ExtensionStartAddress]が記録され、その後に、プレイリストファイルに記録される実体データの記録フィールド[blkApplicationPlayList()]〜[blkExtensionData()]が記録された構成を持つ。実体データとして記録されるプレイリスト情報ブロック[PlayList()]401のシンタクスを図27に示す。
プレイリスト情報ブロックには、プレイリストに設定されたプレイアイテムに関する情報が記録される。プレイアイテムには、先に図5を参照して説明したように、主として再生されるプレイアイテムに対応するメインパスに対して、サブプレイアイテムに対応するサブパスを持つことが可能であり、これらのメインパスに対応するプレイアイテム情報[blkPlayItem()]、およびサブパスに対応するサブパス情報[blkSubPath()]が記録される。図27に示すプレイリスト情報ブロックのプレイアイテム数[NumberOfPlayItems]411にはプレイリスト中の登録プレイアイテム数が設定される。図25に示すフローのステップS603では、このフィールドの設定数の検証を実行している。
ステップS604では、プレイアイテムID[PlayItem_id]=(初期値0)に対応するクリップ情報ファイル名[Clip_Information_file_name[0]]を取得する。図27に示すプレイリスト情報ブロックのプレイアイテムブロック[blkPlayItem()]412に記録されたクリップ情報ファイル名[Clip_Information_file_name[0]]を取得する。
図27に示すプレイリスト情報ブロックのプレイアイテムブロック[blkPlayItem()]412のシンタクスを図28に示す。プレイアイテムブロックにはプレイリストに含まれるプレイアイテム対応のクリップ情報について記録されており、例えば、クリップ情報ファイル名[ClipInformationFileName]421に、プレイリストに対応するクリップ情報のファイル名が記録されている。図25のフローのステップS604では、このクリップ情報ファイル名[Clip_Information_file_name[0]]を取得する。ステップS605では、取得したクリップ情報ファイル名に拡張子[.clpi]を付加して、先に図6を参照して説明したディレクトリから、対応するファイルを検索して削除する。この処理によって、プレイリスト内の1つのプレイアイテムに対応するクリップ情報ファイルが削除されたことになる。さらに、ステップS606,S607において、図6を参照して説明したディレクトリ中のバックアップ[BACKUP]ディレクトリ中のバックアップ情報として記録されたクリップ情報を検索して削除する。この処理の終了後、ステップS608において、設定値であるプレイアイテムID[PlayItem_id]を1増加させて、ステップS603以下の処理を繰り返す。
このステップS603〜S608の処理を繰り返し実行し、削除対象のプレイリスト内のプレイアイテムに対応するクリップ情報がすべて削除されると、ステップS603の判定が[No]となり、ステップS609に進む。ステップS609〜S615の処理は、サブプレイアイテムに対応するクリップ情報ファイルの削除処理である。プレイアイテムには、先に図5を参照して説明したように、主として再生されるプレイアイテムに対応するメインパスに対して、サブプレイアイテムに対応するサブパスを持つことが可能であり、図27を参照して説明したようにプレイリスト情報として、メインパスに対応するプレイアイテム情報[blkPlayItem()]、およびサブパスに対応するサブパス情報[blkSubPath()]が記録される。ステップS609〜S615の処理は、この情報に基づいてプレイリストファイルから、サブプレイアイテム情報に対応するクリップ情報を取得して削除する処理である。
まず、ステップS609において、初期設定としてサブパスID[SubPath_id]を[0]に設定する。次に、ステップS610において、サブパスID[SubPath_id]が、削除対象のプレイリストファイルに記録されたサブパス数[number_of_SubPaths]未満であるか否かを判定する。初期設定はサブパスID[SubPath_id]=0であるので、ステップS611に進む。
ステップS611では、サブパスID[SubPath_id]=(初期値0)に対応するサブプレイアイテム[SubPlayItem()]内のクリップ情報ファイル名[Clip_Information_file_name[0]]を取得する。図27に示すプレイリスト情報ブロックのプレイアイテムブロック[blkPlayItem()]412に記録されたクリップ情報ファイル名[Clip_Information_file_name[0]]を取得する。
図27に示すプレイリスト情報ブロックのサブパスブロック[blkSubPath()]413のシンタクスを図29に示す。サブパスにおいては、図29に示すプレイアイテム数フィールド[NumberOfPlayItems]431の設定値は[1]に固定されている。すなわち、1つのサブパスに対応して1つのプレイアイテムが設定される。そのプレイアイテムの情報が、サブプレイアイテムフィールド[SubPlayItem(i)]432に記録されている。サブプレイアイテムブロック[SubPlayItem(i)]432のデータ構成例を図30に示す。サブプレイアイテムブロックにはプレイリストに含まれるサブプレイアイテム対応のクリップ情報について記録されており、例えば、クリップ情報ファイル名[ClipInformationFileName]441に、サブパス対応のクリップ情報のファイル名が記録されている。
図25のフローのステップS611では、このクリップ情報ファイル名[Clip_Information_file_name[0]]を取得する。ステップS612では、取得したクリップ情報ファイル名に拡張子[.clpi]を付加して、先に図6を参照して説明したディレクトリから、対応するファイルを検索して削除する。この処理によって、プレイリスト内の1つのサブパスに対応するクリップ情報ファイルが削除されたことになる。さらに、ステップS613,S614において、図6を参照して説明したディレクトリ中のバックアップ[BACKUP]ディレクトリ中のバックアップ情報として記録されたクリップ情報を検索して削除する。この処理の終了後、ステップS615において、設定値であるサブパスID[SubPath_id]を1増加させて、ステップS610以下の処理を繰り返す。
このステップS610〜S615の処理を繰り返し実行し、削除対象のプレイリスト内のサブパスに対応するクリップ情報がすべて削除されると、ステップS610の判定が[No]となり、処理を終了する。以上の処理によってプレイリストの削除が行われる。これらの処理が、図24を参照して説明したファイナライズ解除処理において、ステップS503、S505、S507、S511において実行され、メニューやフォトムービーなどファイナライズ処理に際して生成されたプレイリストの削除処理が実行され、ファイナライズ実行前と同様のメディア状態に復帰することができ、追記可能な状態とされる。この状態では、メニューが存在せず、新たなコンテンツを記録してもメニューとの不整合が生じることがない。またフォトムービーも削除されているので、新たな静止画を記録し、新たにファイナライズを実行することで、新規に記録した静止画を含むフォトムービーを作成することが可能となる。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。