JP2009205406A - ファイル構造解析装置、ファイル構造解析方法およびプログラム - Google Patents

ファイル構造解析装置、ファイル構造解析方法およびプログラム Download PDF

Info

Publication number
JP2009205406A
JP2009205406A JP2008046651A JP2008046651A JP2009205406A JP 2009205406 A JP2009205406 A JP 2009205406A JP 2008046651 A JP2008046651 A JP 2008046651A JP 2008046651 A JP2008046651 A JP 2008046651A JP 2009205406 A JP2009205406 A JP 2009205406A
Authority
JP
Japan
Prior art keywords
individual element
packet
unique identifier
external reference
element packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008046651A
Other languages
English (en)
Other versions
JP4513876B2 (ja
Inventor
Yoshiaki Shibata
賀昭 柴田
Nobuhiro Furutaka
伸浩 古高
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2008046651A priority Critical patent/JP4513876B2/ja
Priority to US12/372,155 priority patent/US8370325B2/en
Publication of JP2009205406A publication Critical patent/JP2009205406A/ja
Application granted granted Critical
Publication of JP4513876B2 publication Critical patent/JP4513876B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】構造化ファイルのヘッダメタデータのサイズや複雑度に関わらず、ファイル構造の解析をする。
【解決手段】複数の個別要素パケットを順次に入力する個別要素パケット入力部102と、参照先が未確定の個別要素パケットの外部参照子を一時的に保持する外部参照子保持部108と、参照元が未確定の個別要素パケットの固有識別子を一時的に保持する固有識別子保持部118と、個別要素パケット入力部に入力された複数の個別要素パケットの参照関係を順次に解析し、参照関係が確定した個別要素パケットの外部参照子および固有識別子を外部参照子保持部および固有識別子保持部からそれぞれ削除する参照関係解析部112と、を備えるファイル構造解析装置100が提供される。
【選択図】図1

Description

本発明は、ファイル構造解析装置、ファイル構造解析方法およびプログラムに関し、特に、ファイルの木構造を解析するファイル構造解析装置、ファイル構造解析方法およびプログラムに関する。
一般的に、映像素材は、ビデオテープなどのパッケージメディアに記録される。また、SDI(Single Document Interface)等の各種デジタルインタフェースを介して、サーバに取り込まれ転送される。いったんサーバ上に取り込まれた映像素材はファイルとして扱われることになり、ネットワークによって結合されたサーバ間で転送されたり、共有されたりする。近年のネットワーク伝送は、IP網に代表される非同期伝送路が一般的となってきており、このような場合に、データファイルの互換性が重要となってくる。
そこで、ファイル交換のためのフォーマットとして、例えばSMPTE377Mの規格に準拠したMXF(Material eXchange Format)などの互換性を意識したフォーマットが提案されている。MXFファイルは、ヘッダ部分、ボディ部分、フッタ部分から構成される構造化ファイルであり、必要に応じて様々なメタデータを、ヘッダ部分、ボディ部分、フッタ部分のいずれか、あるいはそれらのすべてに格納することができる。
ここでヘッダ部分に格納されるメタデータは特にヘッダメタデータと呼ばれ、それは映像の編集情報とともに、コンテンツの識別のためのメタデータ、シーンやショットの説明のためのメタデータなどから構成される。これらのメタデータは、プログラムの全体、もしくはシーンやショットを単位とした場面の説明などの情報を表すために用いられる。このように、ヘッダメタデータによってファイル全体の構造や内容を把握することができるため、ファイル本体と切り離されて、伝送されたり解析されたりされ得る。
すなわち、ファイルの転送等を行う際に、ヘッダメタデータを用いてファイル全体の構造や内容を解析することにより、ファイルの整合性を確認したり補修したりすることが可能となる。通常、MXFファイルはその詳細な論理構造が木構造として表現されている。ヘッダメタデータもまた、例えばコンテンツの識別のためのメタデータが木構造データとして格納されている。そして、当該木構造データを解析するためには、従来はヘッダメタデータを一括して内部メモリに展開する必要があった。従って、例えばイメージデータのようなデータサイズの大きな情報がヘッダメタデータの一部として格納されている場合などヘッダメタデータのサイズが大きい場合には、すべてのヘッダメタデータを内部メモリに展開することができず、当該木構造データの解析をすることができないという問題があった。
そこで、ヘッダメタデータの構造記述要素とデータ要素とを分離して、構造記述要素のみ内部メモリに展開して木構造解析を行うことにより、データ要素サイズに依存することなく木構造解析を行うことが可能な技術が開示されている(例えば、特許文献1)。
特開2007−148751号公報
しかし、特許文献1では、ヘッダメタデータの構造記述要素とデータ要素を分離するための処理が必要となる。また、木構造が複雑な場合には構造記述要素のすべてを内部メモリに展開することができず、ファイル構造の解析をすることができないという問題があった。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、構造化ファイルのヘッダメタデータのサイズや複雑度に関わらず、ファイル構造の解析をすることが可能な、新規かつ改良されたファイル構造解析装置、ファイル構造解析方法およびプログラムを提供することにある。
上記課題を解決するために、本発明のある観点によれば、複数の個別要素パケットが外部参照されることにより木構造を構成している構造化データ群を含むファイルを解析するファイル構造解析装置が提供される。上記個別要素パケットは、個別要素パケットを識別する固有識別子と、他の個別要素パケットを外部参照する場合に該他の個別要素パケットの固有識別子を用いて外部参照先を示す外部参照子とを含み、上記ファイル構造解析装置は、複数の個別要素パケットを順次に入力する個別要素パケット入力部と、参照先が未確定の個別要素パケットの外部参照子を一時的に保持する外部参照子保持部と、参照元が未確定の個別要素パケットの固有識別子を一時的に保持する固有識別子保持部と、個別要素パケット入力部に入力された複数の個別要素パケットの参照関係を順次に解析し、参照関係が確定した度に個別要素パケットの外部参照子および固有識別子を外部参照子保持部および固有識別子保持部からそれぞれ削除する参照関係解析部と、を備える。
また、上記参照関係解析部は、入力された個別要素パケットの外部参照子が固有識別子保持部に保持されている固有識別子と同一である場合に個別要素パケットの参照先が確定したとして、固有識別子保持部から該固有識別子を削除し、入力された個別要素パケットの固有識別子が外部参照子保持部に保持されている外部参照子と同一である場合に個別要素パケットの参照元が確定したとして、外部参照子保持部から該外部参照子を削除するようにしてもよい。
かかる構成によれば、複数の個別要素パケットを順次入力し、参照先が未確定の個別要素パケットの外部参照子を外部参照子保持部に保持する。また、参照元が未確定の個別要素パケットの固有識別子を固有識別子保持部に保持する。そして、入力された個別要素パケットの参照関係を順次解析して、参照関係が確定した度に個別要素パケットの外部参照子および固有識別子を外部参照子保持部および固有識別子保持部からそれぞれ削除する。
これにより、木構造により構造化されたファイルの参照関係を順次に解析するため、外部参照子や固有識別子のすべてを外部参照子保持部および固有識別子保持部に展開する必要がなくなる。したがって、入力ファイルのヘッダメタデータのサイズが大きい場合や構造が複雑な場合でも記憶容量の制限を考慮することなくファイル構造の解析をすることが可能となる。
また、外部参照子保持部は、外部参照子と、該外部参照子に対応した固有識別子とを対にして保持し、参照関係解析部は、個別要素パケットの参照元が確定した場合に、外部参照子保持部に外部参照子と対にして保持された固有識別子を、参照元の個別要素パケットの実効的な固有識別子に変更してもよい。ここで実効的な固有識別子とは、参照関係に基づいて個別要素パケットが合成された場合の上位の個別要素パケットの固有識別子をいう。また、外部参照子と対にして保持され、参照関係解析部により変更された個別要素パケットの実効的な固有識別子が該外部参照子と同一であった場合に、木構造のループエラーを検出するようにしてもよい。
かかる構成により、個別要素パケットの参照元が確定した場合に、外部参照子と対にして保持した固有識別子を、参照元の個別要素パケットの固有識別子に変更する。これにより、参照確定部分を抽象化して、複数パケットを合成し、合成パケットにおいて自己参照している場合にループエラーを検出することができる。よって、個別要素パケットの外部参照子や固有識別子のすべてを展開することなく、ファイルの木構造をより正確に解析することが可能となる。
また、参照関係解析部により削除された個別要素パケットを記憶する個別要素パケット記憶部を備えてもよい。かかる構成により、参照関係が確定した個別要素パケットを順次に記憶して、効率的にファイル構造の解析を行うことができる。
また、参照関係解析部は、複数の個別要素パケットのうちのいずれかをルート要素パケットとみなして参照関係を解析するようにしてもよい。かかる構成により、ルート要素が確定しないために参照関係の解析がエラーとなることを避けることが可能となり、より確実にファイル構造の解析をすることができる。
上記構造化データ群は、MXFファイルのヘッダメタデータであってもよい。MXFファイルにおいては、ルート要素が確定される構成となっているため、単純ループエラーが存在しない。したがって、より確実にファイル構造の解析をすることができる。
上記課題を解決するために、本発明の別の観点によれば、複数の個別要素パケットが外部参照されることにより木構造を構成している構造化データ群を含むファイルを解析するファイル構造解析方法であって、個別要素パケットは、個別要素パケットを識別する固有識別子と、他の個別要素パケットを外部参照する場合に該他の個別要素パケットの固有識別子を用いて外部参照先を示す外部参照子とを含み、複数の個別要素パケットを順次に入力するステップと、参照先が未確定の個別要素パケットの外部参照子を外部参照子保持部に一時的に保持するステップと、参照元が未確定の個別要素パケットの固有識別子を固有識別子保持部に一時的に保持するステップと、入力された複数の個別要素パケットの参照関係を順次に解析し、参照関係が確定した度に個別要素パケットの外部参照子および固有識別子を外部参照子保持部および固有識別子保持部からそれぞれ削除するステップと、を含むファイル構造解析方法が提供される。
上記課題を解決するために、本発明の別の観点によれば、コンピュータを、複数の個別要素パケットが外部参照されることにより木構造を構成している構造化データ群を含むファイルを解析するファイル構造解析装置であって、個別要素パケットは、個別要素パケットを識別する固有識別子と、他の個別要素パケットを外部参照する場合に該他の個別要素パケットの固有識別子を用いて外部参照先を示す外部参照子とを含み、複数の個別要素パケットを順次に入力する個別要素パケット入力部と、参照先が未確定の個別要素パケットの外部参照子を一時的に保持する外部参照子保持部と、参照元が未確定の個別要素パケットの固有識別子を一時的に保持する固有識別子保持部と、個別要素パケット入力部に入力された複数の個別要素パケットの参照関係を順次に解析し、参照関係が確定した度に個別要素パケットの外部参照子および固有識別子を外部参照子保持部および固有識別子保持部からそれぞれ削除する参照関係解析部と、を備えるファイル構造解析装置として機能させるための、プログラムが提供される。
かかるプログラムは、例えばCPU、ROMまたはRAMなどを含むコンピュータのハードウェア資源に、上記のようなファイル構造解析装置の各構成の機能を実行させることができる。すなわち、当該プログラムを用いるコンピュータを、上述のファイル構造解析装置として機能させることが可能である。
以上説明したように本発明によれば、構造化ファイルのヘッダメタデータのサイズや複雑度に関わらず、ファイル構造の解析をすることができる。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
(第1の実施形態)
まず、本発明の実施形態の目的について説明する。近年、ネットワーク伝送におけるファイル交換のためのフォーマットとして、例えばMXFファイルなどの互換性を意識したフォーマットが挙げられる。MXFファイルは、ヘッダ部分、ボディ部分、フッタ部分から構成される構造化ファイルであり、必要に応じヘッダ部分、ボディ部分、フッタ部分のいずれか、あるいはそれらすべてにメタデータを格納することができる。
ここでヘッダ部分に格納されるメタデータすなわちヘッダメタデータには、ファイル全体の構造や内容が格納されており、当該ヘッダメタデータを解析することにより、ファイルの整合性を確認したり補修したりすることが可能となる。従来、ヘッダメタデータに格納されている例えばコンテンツの識別のためのメタデータの木構造を解析するためには、ヘッダメタデータを一括して内部メモリに展開する必要があった。従って、例えばイメージデータのようなデータサイズの大きな情報がヘッダメタデータの一部として格納されている場合などヘッダメタデータのサイズが大きい場合には、すべてのヘッダメタデータを一括して内部メモリに展開することができず、当該木構造の解析をすることができなかった。
そこで、上記のような事情を一着眼点として、本発明の実施形態にかかるファイル構造解析装置100が創作されるに至った。本実施形態にかかるファイル構造解析装置100によれば、構造化ファイルのヘッダメタデータのサイズや複雑度に関わらず、ファイル構造の解析をすることが可能となる。以下、このようなファイル構造解析装置100の構成および動作を詳細に説明する。
なお、本実施形態において、ファイル構造解析装置100は、編集装置や再生装置等の映像機器を例示でき、撮像装置や映像記録装置とは別体の装置として構成したが、かかる例に限定されない。例えば、ファイル構造解析装置100を撮像装置と一体として構成したり、映像記録装置と一体として構成したりするようにしてもよい。本実施形態においては、ファイル構造解析装置100とは別体の撮像装置によって撮像された映像等が外部から入力される構成となっている。
次に、図1に基づいて、本実施形態にかかるファイル構造解析装置100の構成について説明する。図1は、本実施形態にかかるファイル構造解析装置100の機能構成を示すブロック図である。図1に示したように、ファイル構造解析装置100は、個別要素パケット入力部102、個別要素パケット解析部104、個別要素パケット一時記憶部106、外部参照保持部108、外部参照子管理部110、参照関係解析部112、固有識別子管理部114、固有識別子保持部118、ファイル生成/追記部120、ファイル121などを備える。
上記したように、ファイル構造解析装置100には、ファイル構造解析装置100とは別体の装置で撮影されたり記録されたりした映像等が入力ストリーム50として入力される。本実施形態において、入力ストリーム50は木構造で表現できる構造化されたファイルであって、例えばMXFファイルなどを例示できる。以下では、入力ストリーム50をMXFファイルとして説明するが、かかる例に限定されず、入力ストリーム50は木構造で表現できる構造化されたファイルであればよい。
ファイル構造解析装置100の機能構成の詳細を説明する前に、図2〜8に基づいて、MXFファイルのデータ構造について説明する。図2〜8は、MXFファイルのデータ構造について説明する説明図である。図2に示したように、MXFファイルは、ファイルヘッダ(File Header)201と、ファイルボディ(File Body)202と、ファイルフッタ(File Footer)203とから構成される。ファイルヘッダ201は、MXFファイルの先頭に常に位置し、データの先頭を表す情報や、ファイル構造の情報や後述する実データの内容説明の情報などのメタデータを含む。ファイルボディ202は、映像、音声、システム、データなどの1つ以上の実データが格納される。ファイルフッタ203は、MXFファイルの最後尾に位置し、データの終わりを表す情報などが格納されている。
なお、ファイルヘッダ201、ファイルボディ202、ファイルボディ203に格納されるデータは、SMPTE336Mの規格に準拠したKLV(Key、Length、Value)構造にコーディングされて配置されている。KLV構造とは、その先頭から、キー(Key)204、レングス(Length)205、バリュー(Value)206が順次配置された構造である。キー204は、データを識別するタグであって、バリュー206に配置されるデータがどのようなデータであるかを表す、SMPTE298Mの規格に準拠した16バイトのラベルが配置される。レングス205には、バリュー206に配置されるデータのデータ長が配置される。バリュー206には、実データが格納され、データ長は可変長である。
図3に示したように、ファイルヘッダ201には、パーティションパック(Partition Pack)210、ヘッダメタデータ(Header Metadata)が配置される。パーティションパック210には、ヘッダを特定するためのデータや、ファイルボディ202に配置されるデータの形式、ファイルフォーマットを表す情報などが配置される。ヘッダメタデータ211には、ファイル構造を記述するストラクチャーメタデータ(Structual Metadata)とファイル内容を記述するディスクリプティブメタデータ(Descriptiv Metadata)の2種類があり、ファイルの作成日やファイルボディ202に配置されたデータに関する情報などのファイル単位のメタデータが配置される。
ストラクチャーメタデータには、ファイルボディ202のデータ種類の情報を表すエッセンスコンテナ(Essence Container)212や、出力するタイムラインの情報を表すマテリアルパッケージ(Material Package)214や、入力する素材の情報を表すファイルパッケージ(File Package)215などが含まれる。ディスクリプティブメタデータ216は、ファイルボディ202に含まれる実データの内容を記述するメタデータであって、例えばSMPTE380Mの規格に準拠したDMS−1などが配置される。
ヘッダメタデータ211は、複数のメタデータセットのリンク構造としてその構造が表現される。すべてのメタデータセットには16バイトのインスタンスUID(Unique Identifier)が付けられ、各メタデータセットがそのUIDを互いに参照することで、メタデータセット間のリンク状態を表す。このリンク状態を解析することにより、MXFファイルの木構造を解析することが可能となる。
また、図4に示したように、ファイルボディ202には、システム(System Item)222、映像(Picture Item)223、音声(Sound Item)224、データ(Data Item)225などの1つ以上の実データを含む、複数のコンテンツパッケージ(Content Package)221が配置される。
次に、ディスクリプティブメタデータ(以降DMと称する)の詳細について説明する。本実施形態においては、DMのリンク状態を解析することによりMXFファイルの木構造を解析できる。DMの構成を示す一例としてSMPTE380Mに規定されたDMS−1(Descriptive Metadata Scheme−1)では、プロダクションフレームワーク(Production Framework)、シーンフレームワーク(Shene Framework)、クリップフレームワーク(Clip Framework)の3つのフレームワークが用意されている。プロダクションフレームワークは、コンテンツの識別と所有権の詳細情報を記述し、コンテンツ全体を対象とするものである。またシーンフレームワークは、コンテンツの個々のシーンに含まれる動作やイベントの情報を記述し、コンテンツの中の連続した部分を記述する。クリップフレームワークは、個々のクリップの撮影や制作の情報を記述する。
図5は、プロダクションフレームワークに基づくDMインスタンスの一例を説明する説明図である。図5に示したように、マテリアルパッケージ(Material Package)214はいくつかのDMトラック(DM Track)を含み、プロダクションフレームワークに基づくDMインスタンスは、その中のひとつのDMトラックをルートとした木構造として構成される。そして各DMトラックは1つのDMシーケンス(DM Sequence)を持ち、また各DMシーケンスはいくつかのDMセグメント(DM Segment)を持つ。そしてプロダクションフレームワークに基づくDMインスタンスの実データは、このDMセグメントから外部参照されるかたちで生成される。
ここで木構造を構成する個別要素パケットの参照方法について説明する。例えば図5においてDMトラックはDMシーケンスを外部参照しているが、これはDMシーケンスがもつ固有識別子をDMトラックに準備された外部参照子が参照することで実現される。同様にDMセグメントがもつ固有識別子をDMシーケンスに準備された外部参照子が参照することで、DMシーケンスからDMセグメントへの外部参照が実現される。このように、木構造を構成する各個別要素パケットがそれぞれ固有識別子を有し、これを他の個別要素パケットに準備された外部参照子によって参照することにより参照先や参照元との関係を表すことが可能となる。以上、MXFファイルのデータ構造について説明した。
図1に戻り、上記したように、MXFファイル等の構造化されたファイルが入力ストリーム50としてファイル構造解析装置100に入力される。入力ストリーム50は、例えば、図6に示したように、木構造で表現される複数のパケット300である。個別要素パケット入力部102は、入力ストリーム50の個別要素パケットが入力される順に受け付け、個別要素パケット一時記憶部106に提供する。
個別要素パケット一時記憶部106は、個別要素パケット入力部102により提供された個別要素パケットを一時的に記憶する機能を有し、例えば、EEPROM(Electrically Erasable Programmable Read−Only Memory)、EPROM(Erasable Programmable Read Only Memory)などの不揮発性メモリや、ハードディスクおよび円盤型磁性体ディスクなどの磁気ディスクや、CD−RW(Compact Disc ReWritable)、DVD(Digital Versatile Disc)−RW//+RW/RAM(Ramdam Access Memory)およびBD(Blu−ray Disc(登録商標))―REなどの光ディスクや、MO(Magneto Optical)ディスクなどの記憶媒体であってもよい。
個別要素パケット解析部104は、入力される個別要素パケットを識別する固有識別子(以降、パケットID、IDとも称する。)や、個別要素パケットに含まれる外部子を抽出する。外部参照子とは、個別要素パケットが他の個別要素パケットを外部参照している場合に、当該他の個別要素パケットの固有識別子を用いて外部参照先を示すものである。個別要素パケット解析部104は、個別要素パケットの解析結果を参照関係解析部112に提供する。
参照関係解析部112は、個別要素パケット一時記憶部106に記憶された個別要素パケットの参照関係を解析する機能を有する。個別要素パケット解析部104は、個別要素パケットの参照関係を解析し、参照関係が確定していない個別要素パケットの固有識別子を固有識別子管理部114に提供して、当該固有識別子を固有識別子リストに一時的に保持するよう固有識別子管理部114に指示する。また、当該個別要素パケットに参照関係が確定していない外部参照子が含まれている場合には、当該外部参照子を外部参照子管理部110に提供し、当該外部参照子を外部参照子リストに一時的に保持するよう外部参照子管理部に指示する。ここで、参照関係が確定するとは、抽出された固有識別子を参照する外部参照子が外部参照子リストに存在すること、または抽出された外部参照子が参照する固有識別子が固有識別子リストに存在することをいう。
そして、個別要素パケットの参照関係が確定した場合には、外部参照元が確定した個別要素パケットの固有識別子を固有識別子リストから削除し、外部参照先が確定した場合には、外部参照子を外部参照子リストから削除する。
ところで図6に示したように、木構造を構成する個別要素パケットには、ルート要素300a、ノード要素300b、リーフ要素300c、300dなどがある。ルート要素は、外部参照されない固有識別子を有しているか、固有識別子を有さず外部参照子のみを有している個別要素パケットである。あるいは木構造を解析するシステム等により、何らかの方法でルート要素と判別され得る個別要素パケットである場合もある。他方ノード要素は、外部参照される固有識別子を有し、外部参照子を有する。また、リーフ要素は外部参照される固有識別子を有し、外部参照子を有さない。なお、外部参照されない固有識別子を有し、それ自身は外部参照子を有さない孤立要素パケットも入力される個別要素パケットに含まれる可能性がある。
再び図1に戻り、参照関係解析部112は、図7に示す木構造化エラーを検出する。木構造化エラーとして検出すべき個別要素パケットは、例えば、図7(a)の孤立要素パケット、図7(b)のダングリングフック(参照先が未確定の外部参照子)、図7(c)および(d)のループ参照、図7(e)の重複参照などが例示できる。孤立要素パケットは、図7(a)に示したように、それ自身の固有識別子が外部参照されず、またそれ自身は外部参照子を有さない個別要素パケットである。当該個別要素パケットはエラーではないが、木構造を構成しないため、孤立要素パケットとして切り出しておく必要がある。
ダングリングフックは、図7(b)に示したように、存在しない外部参照先を指す外部参照子を有する個別要素パケットである。ループ参照は、図7(c)および図7(d)に示したように、下位ノードの外部参照子が、上位ノードの固有識別子を参照している場合を例示できる。重複参照は、図7(e)に示したように、固有識別子が複数の外部参照子から参照されている場合を例示できる。
図1に戻り、外部参照子管理部110は、参照関係解析部112の指示に基づき、外部参照子保持部108に、参照関係解析部112から提供された外部参照子を外部参照子リスト109に一時的に保持させる機能を有する。また、参照関係解析部112の指示に基づき、外部参照先が確定した外部参照子を外部参照子リスト109から削除する機能を有する。
外部参照子保持部108は、参照先が未確定の個別要素パケットの外部参照子を一時的に保持する外部参照子リスト109を有している。上記したように、外部参照子管理部110の管理の下、外部参照子リスト109に外部参照子を一時的に保持したり、外部参照子リスト109から外部参照子を削除したりする。外部参照子リスト109に保持される外部参照子は、入力された個別要素パケットの固有識別子と同一であるものが存在した場合に、入力された個別要素パケットの参照元が確定されたとして、外部参照子リスト109から当該外部参照子が削除される。このように、個別要素パケットが入力される都度参照関係が解析されるため、入力されるすべての個別要素パケットの外部参照子をまとめて外部参照子リスト109に展開する必要はない。
固有識別子管理部114は、参照関係解析部112の指示に基づき、固有識別子保持部118に、参照関係解析部112から提供された固有識別子を固有識別子リスト119に一時的に保持させる機能を有する。また、参照関係解析部112の指示に基づき、外部参照元が確定した個別要素パケットの固有識別子を固有識別子リスト119から削除する機能を有する。
固有識別子保持部118は、参照元が未確定の個別要素パケットの固有識別子を一時的に保持する固有識別子リスト119を有している。上記したように、固有識別子管理部114の管理の下、固有識別子リスト119に固有識別子を一時的に保持したり、固有識別子リスト119から固有識別子を削除したりする。固有識別子リスト119に保持される固有識別子は、入力された個別要素パケットの外部参照子と同一であるものが存在した場合に、入力された個別要素パケットの参照先が確定されたとして、固有識別子リスト119から当該固有識別子が削除される。このように、個別要素パケットが入力される都度参照関係が解析されるため、入力されるすべての個別要素パケットの固有識別子をまとめて固有識別子リスト119に展開する必要はない。
ファイル生成/追記部120は、ファイル121を生成したり、参照関係が確定した個別要素パケットをファイル121に追記したりする機能を有する。具体的には、ファイル生成/追記部120は、固有識別子リスト119から削除された固有識別子を有する個別要素パケットを個別要素パケット一時記憶部106から取得して、ファイル121に記録する。
ファイル121は、参照関係が確定した個別要素パケットを記憶する機能を有し、本発明の個別要素パケットの一例である。ファイル121は、例えば、EEPROM(Electrically Erasable Programmable Read−Only Memory)、EPROM(Erasable Programmable Read Only Memory)などの不揮発性メモリや、ハードディスクおよび円盤型磁性体ディスクなどの磁気ディスクや、CD−R(Compact Disc Recordable)/RW(ReWritable)、DVD−R(Digital Versatile Disc Recordable)/RW/+R/+RW/RAM(Ramdam Access Memory)およびBD(Blu−ray Disc(登録商標))―R/BD−REなどの光ディスクや、MO(Magneto Optical)ディスクなどの記憶媒体であってもよい。
本実施形態においては、ファイル構造解析装置100にファイル生成/追記部120およびファイル121を備える構成としているが、本発明はかかる例に限定されない。例えば、ファイル生成/追記部120およびファイル121をファイル構造解析装置100とは別体の装置としてもよい。以上、ファイル構造解析装置100の機能構成について説明した。次に、ファイル構造解析装置100におけるファイル構造解析方法について説明する。
図8は、本実施形態にかかるファイル構造解析装置100のファイル構造解析方法を示すフローチャートである。なお、図8のファイル構造解析方法の説明に際し、図9〜図15の具体例を適宜参照する。図9〜図15は、ファイル構造解析方法を具体的に説明する説明図である。なお、以下では、個別要素パケットを単にパケットと称し、固有識別子をIDと称し、固有識別子リストをパケットリストと称し、外部参照子をフックと称し、外部参照子リストをフックリストと称して説明する。また、出力ファイルは、ファイル121に記録されるファイルである。
図8に示したように、まず、パケットの読出しを行う(S102)。ステップS102において読み出されたパケットにフックがあるか否かを判定する(S104)。ステップS104において読み出されたパケットにフックがあると判定された場合に、当該フックを抽出する(S106)。次に、パケットリストにステップS106において抽出されたフックが参照するパケットがあるか否かを判定する(S108)。すなわち、ステップS108においては、ステップS106において抽出されたフックに対応したIDが、パケットリストにあるか否かを判定する。
ステップS108において、当該フックに対応したIDがパケットリストになかった場合には、フックをフックリストに登録する(S110)。そして、読み出されたパケットに他のフックがある場合には、ステップS106〜S114の処理を繰り返す。具体例としては、例えば図9に示したように、最初にパケット302が読み出され、パケット302のフック「C」および「D」が抽出されて、フック「C」および「D」がフックリスト109に登録される。
図8に戻り、次に入力されたパケットがルートパケットか否かを判定する(S116)。パケットがルートパケットであるか否かは、固有識別子が外部参照されていないか、固有識別子を有さず、外部参照子のみを有しているかにより判定される。また、木構造を解析するシステム等により、何らかの方法でルート要素と判定してもよい。
ステップS116において、パケットがルートパケットでなかった場合には、当該パケットのIDを抽出する(S120)。そしてステップS120において抽出したパケットのIDに対応するフックがフックリストにあるか否かを判定する(S122)。ステップS122において、パケットのIDに対応するフックがフックリストになかった場合には、当該パケットをパケットリストに保持する(S124)。図9に示したように、最初に読み出されたパケット302は、ルートパケットではないから、パケットのID「B」がパケットリスト119に保持される。
次に、図8および図10を参照して、2番目のパケット305が読み出された場合について説明する。まず、2番目のパケットが読み出される(S102)。2番目に読み出されたパケット305には、フックがないため、図8のステップS104においてパケットにフックがないと判断されて、ステップS116の判断がなされる。パケット305はルートパケットではないため(S116)、パケットのID「E」が抽出される(S120)。ステップS120において抽出されたID「E」はフックリスト109にないため(S122)、パケット305のID「E」をパケットリスト119に保持する(S124)。
次に、図8および図11を参照して、3番目のパケット304が読み出された場合について説明する。2番目に読み出されたパケット305と同様に、パケット304にはフックがなく(S104)、ルートパケットでもないから(S116)、パケット304のID「D」が抽出される(S120)。そして、ステップS120において抽出されたID「D」に対応するフックがフックリスト109にあるか否かが判定される(S122)。
フックリスト109には、最初に読み出されたパケット302のフック「D」が格納されている。したがって、ステップS122において、パケット304のID「D」に対応するフックがフックリスト109にあると判定されて、フック「D」がフックリストから削除される(S126)。これにより、パケット304の参照元が確定したこととなり、パケット304が出力ファイル121に追記される(S118)。そして、次のパケットがあれば(S128)、次のパケットが読み出される(S102)。
続いて図8、図12および図13を参照して、4番目のパケット301が読み出された場合について説明する。まず、パケット301にフックがあるか否かが判定されて(S104)、パケット301のフック「B」が抽出される(S106)。そして、ステップS106において抽出されたフック「B」がパケットリスト119にあるか否かが判定される(S108)。フック「B」とパケットリスト119に格納されているパケット302のID「B」が同一であるため、パケット301の参照先が確定したこととなる。したがって、パケットリスト119から、ID「B」のパケットを取り出して出力ファイル121に追記する(S112)。
そして、パケット301にフック「B」以外のフックがない場合には(S114)、パケット301がルートパケットであるか否かを判定する(S116)。パケット301は、ルートパケットであるため、パケット301(ID「A」)を出力ファイルへ追記する(S118)。そして、次のパケットがあれば(S128)、次のパケットが読み出される(S102)。
最後に図8、図14および図15を参照して、5番目のパケット303が読み出された場合について説明する。まず、パケット303にフックがあるか否かが判定されて(S104)、パケット303のフック「E」が抽出される(S106)。そして、ステップS106において抽出されたフック「E」がパケットリスト119にあるか否かが判定される(S108)。フック「E」とパケットリスト119に格納されているパケット305のID「E」が同一であるため、パケット303の参照先が確定したこととなる。したがって、パケットリスト119から、ID「E」のパケットを取り出して出力ファイル121に追記する(S112)。
そして、パケット303にフック「E」以外のフックがない場合には(S114)、パケット303がルートパケットであるか否かを判定する(S116)。パケット303はルートパケットではないため、パケット303のID「C」を抽出する(S120)。ステップS120において抽出したID「C」に対応するフックがフックリスト109にあるか否かを判定する(S122)。ステップS122において、ID「C」に対応するフックがフックリスト109にある場合には、対応するフックをフックリストから削除する(S126)。
図15に示したように、ID「C」に対応するフック「C」がフックリスト109にあったため、フックリスト109からフック「C」を削除する(S126)。これにより、パケット303の参照元が確定したこととなるため、パケット303を出力ファイル121に追記する(S118)。そして、次のパケットがない場合には(S128)、フックリストが空であるか否かを判定する(S130)。ステップS130において、フックリストが空でなかった場合には、参照関係が確定していないため、参照エラー通知をする(S132)。
次に、パケットリストが空であるか否かを判定する(S134)。ステップS134において、パケットリストが空でなかった場合には、孤立要素パケットとなるパケットまたはサブツリーがある旨通知する(S136)。以上、本実施形態にかかるファイル構造解析方法について説明した。
本実施形態にかかるファイル構造解析装置100によれば、複数の個別要素パケットを順次入力し、参照先が未確定の個別要素パケットの外部参照子を外部参照子保持部108の外部参照子リスト109に一時的に保持する。また、参照元が未確定の個別要素パケットの固有識別子を固有識別子保持部118の固有識別子リスト119に一時的に保持する。そして、入力された個別要素パケットの参照関係を順次解析して、参照関係が確定した度に個別要素パケットの外部参照子および固有識別子を外部参照子リスト109および固有識別子リスト119からそれぞれ削除する。
これにより、入力ファイルの木構造を解析する場合に、当該ファイルに含まれる外部参照子や固有識別子のすべてを外部参照子保持部109および固有識別子保持部119に展開する必要がなくなる。図9〜図15に示したように、例えば、5つの個別要素パケットでファイルが構成されている場合でも、外部参照子リスト109および固有識別子リスト119には高々二つ程度の外部参照子や固有識別子が格納されるだけで済む。このように、木構造により構造化されたファイル内部の参照関係を順次に解析するため、ファイルのヘッダメタデータのサイズが大きい場合や構造が複雑な場合でもファイル構造の解析をすることが可能となる。
本実施形態においては、上記したように、すべてのパケットの解析が終了した後に、パケットリストが空でない場合には、孤立パケットを確定したり、サブツリーの最上位パケットを確定したりすることができる。また、フックリストが空でない場合には、存在しない外部参照先を指すフックを有するダングリングフックの検出や、参照先が重複しているなどをエラーとして検出することができる。
(第2実施形態)
ところで、これまで説明した第1実施形態においては、何らかの方法でルート要素を確定させない限り図16(a)に示したような単純ループとなるエラーを検出することができない。上記したMXFファイルにおいては、木構造を解析するシステムのレベルでルート要素が確定できる構成となっているため、図16(a)に示したような単純ループエラーも検出可能であり、第1実施形態のままでも問題はない。しかし一般化された木構造化データ群を解析するファイル構造解析装置としてルート要素が確定されないデータが入力された場合には、図16(a)に示したような単純ループエラーが検出できず、正しくファイル構造を解析することができなくなってしまう。そこで、第2実施形態においては、木構造の参照確定部分を抽象化することにより、複数パケットを合成して、合成パケットにおいて後述する図16(c)に示したような自己参照している場合に単純ループエラーとしてエラー検出することができるようにした。
図16(b)は、複数の個別要素パケットの参照確定部分を抽象化して複数パケットを合成した場合の個別要素パケットを説明する説明図である。図16(b)に示したように、パケットA、B、C、Dを合成した結果、フック「E」〜「J」と実効ID「A」を有する合成パケットが生成される。すなわち、合成パケットの実行IDが上記した実効的な個別要素パケットの固有識別子となる。また、図16(c)は、合成パケットにおいて、単純ループエラーとして自己のパケットを参照してしまった場合の個別要素パケットを説明する説明図である。
本実施形態では、上記した単純ループエラーを検出するための処理を追加して、ルート要素が確定していない一般的な木構造化データ群が入力された場合でも、正しくファイル構造を解析することが可能なファイル構造解析装置100′について説明する。ファイル構造解析装置100′の機能構成は、第1実施形態にかかるファイル構造解析装置100とほぼ同様のため、詳細な説明を省略する。
本実施形態においては、フックリスト内のリスト項目に合成パケットの実効ID(以降、IDeffとも称する)を持たせ、参照関係が確定次第、パケットのフックのIDeffを適宜更新する。図17を参照して、ファイル構造解析装置100′のファイル構造解析方法において追加されるエラー処理について説明する。図17に示したように、追加される処理は、参照確定IDまたはフックをIDeffとするフックがフックリスト109にあるか否かを判定する(S142)。ステップS142において、参照確定IDまたはフックをIDeffとするフックがフックリスト109にある場合には、該当するIDeffを参照確定後のIDeffに更新する(S150)。
そして、IDeffとフックが同一であった場合(S148)には、図16(c)に示したように合成パケットとして自己のパケットを参照することに相当するのでループエラーである旨の通知をする(S146)。ステップS142において、参照確定IDまたはフックをIDeffとするフックがフックリストになかった場合には、該当パケットを出力ファイル121に追記する(S144)。なお、ステップS144における出力ファイル121への追記は、図8のステップS112及びS118に相当するものであって、当該エラー処理として新たに追加される処理ではない。
次に、図18に基づいて、本実施形態にかかるファイル構造解析装置100′のファイル構造解析方法を説明する。図18は、本実施形態にかかるファイル構造解析方法を示すフローチャートである。なお、図18のファイル構造解析方法の説明に際し、第1実施形態と同様の処理については、第1実施形態と同様の処理番号を付して説明を省略する。以下、ファイル構造解析方法の説明に際し、図19〜図29の具体例を適宜参照する。図19〜図29は、ファイル構造解析方法を具体的に説明する説明図である。
まず、図18および図19を参照して、1番目のパケット402が読み出された場合について説明する。まず、パケット402が読み出される(S102)。パケット402にフックがある場合に(S104)、当該フック「C」を抽出し(S106)、パケットリストに該フックを参照するパケットがあるか否かを判定する(S108)。ステップS108においてパケットリストに該フックを参照するパケットがない場合には、当該フック「C」をフックリストへ登録する(S110)。そして、パケット402のID「B」を抽出し(S212)、ステップS212において抽出したIDをIDeffとしてステップS210において登録した「C」と対にしてIDeff「B」を登録する(S214)。
パケット402に残りのフックがあるか否かを判定し(S114)、フック「D」についてもフック「C」と同様の処理を行う(S106〜S110、S212、S214、S114)。次に、パケット402がルートパケットであるか否かを判定する(S116)。パケット402はルートパケットではないため、パケット402のID「B」を抽出し、ID「B」に対応するフックがフックリストにあるか否かを判定する(S122)。ステップS232においてID「B」に対応するフックがフックリストにないと判定された場合には、パケット402をパケットリスト119に保持する(S124)。
次に、図18および図20を参照して、2番目のパケット405が読み出された場合について説明する。まず、2番目のパケット405が読み出され(S102)、フックがあるか否かが判定されて(S104)、パケット405のフック「A」が抽出される(S106)。そして、ステップS206において抽出されたフック「A」がパケットリスト119にないため(S108)、フック「A」をフックリスト109に登録する(S110)。そして、パケット405のID「E」を抽出し(S212)、ステップS212において抽出したIDをIDeffとしてステップS210において登録した「A」と対にしてIDeff「E」を登録する(S214)。そして、パケット405のID「E」についても、パケット402のID「B」と同様に、パケットリスト119に保持する(S124)。
次に、図18および図21を参照して、3番目のパケット404が読み出された場合について説明する。3番目に読み出されたパケット404にはフックがないため、図18のステップS204においてパケットのフックがないと判断されて、ステップS228の判断がなされる。パケット404はルートパケットではないため(S116)、パケットのID「D」が抽出される(S120)。そして、ステップS230において抽出されたID「D」に対応するフックがフックリスト109にあるか否かが判定される(S122)。
フックリスト109には、パケット402のフック「D」が格納されている。したがって、ステップS122において、パケット404のIDに対応するフックがフックリスト109にあると判定される。次に、ID「D」をIDeffとするフックがフックリストにあるか否かを判定する(S142)。ID「D」がIDeffとするフックはフックリストにないため、ID「D」に対応するフック「D(B)」をフックリストから削除する(S126)。これにより、パケット404の参照元が確定したこととなり、パケット404が出力ファイル121に追記される(S118)。そして、次のパケットがあれば(S128)、次のパケットが読み出される(S102)。
図18、図22〜26を参照して、4番目のパケット401が読み出された場合について説明する。まず、4番目のパケット401が読み出され(S102)、フックがあるか否かが判定されて(S104)、パケット401のフック「B」が抽出される(S106)。そして、ステップS206において抽出されたフック「B」に対応するIDがパケットリスト119にあるため(S108)、フック「B」をIDeffとするフックがフックリスト109にあるか否かを判定する(S142)。フックリスト109にIDeffを「B」とするフック「C(B)」があるため、IDeff「B」を読出しパケットのID「A」に更新する(S150)。図22は、フック「C」がもつIDeff「B」を読出しパケットの実効ID「A」に更新した場合を示す説明図である。
そして、IDeffとフックが同一か否かを判定する(S148)。ステップS226において更新したIDeffは「A」であり、フックは「C」であるから、再度ステップS142に移って次のフックのIDeffについての判定を行う。図22のフックリスト109においてはもはやフック「B」をIDeffとするフックは存在しない(S142)ので、パケット401の参照先であるパケット402をパケットリスト119から取り出して出力ファイル121に追記する(S112)。図23は、ID「B」のパケット402を出力ファイル121に追記した場合を示す説明図である。
そして、パケット401にフック「B」以外のフックがない場合には(S114)、 パケット401がルートパケットであるか否かを判定する(S116)。本実施形態においては、第1実施形態とは異なり、パケット401がルート要素であることを判別するいかなる方法も有しないため、ステップ116において、パケット401はルートパケットではないと判断されて、パケット401のID「A」を抽出する(S120)。ステップS230において抽出したID「A」に対応するフックがフックリスト109にあるか否かを判定する(S122)。フックリスト109にID「A」に対応するフックがあるため、次に、ID「A」をIDeffとするフックがフックリスト109にあるか否かを判定する(S142)。
フックリスト109にIDeffを「A」とするフック「C(A)」があるため、当該IDeff「A」を、パケット401のID「A」に対応するフック「A(E)」のIDeff「E」に更新して、「C(E)」とする(S150)。図24は、フックリスト109のフック「C(A)」のIDeffを「E」に変更してフック「C(E)」とした場合を示す説明図である。
そして、更新したIDeff「E」とフック「C」が同一か否かを判定する(S148)。ステップS244において更新したIDeffは「E」であり、フックは「C」であるから、再度ステップS142に移って次のフックのIDeffについての判定を行う。パケット401のID「A」をIDeffとするフックがフックリストになければ(S142)、パケット401のID「A」に対応するフック「A(E)」をフックリスト109から削除して(S126)、パケット401を出力ファイル121に追記する(S118)。図25は、ID「A」のパケット401を出力ファイル121に追記した場合を示す説明図である。そして、次のパケットがある場合には(S128)、次のパケットの読出しを行う(S202)。
図18、図26〜図29を参照して、5番目のパケット403が読み出された場合について説明する。まず、5番目のパケット403が読み出され(S102)、フックがあるか否かが判定されて(S104)、パケット403のフック「E」が抽出される(S106)。そして、ステップS206において抽出されたフック「E」がパケットリスト119にあるため(S108)、フック「E」をIDeffとするフックがフックリスト109にあるか否かを判定する(S142)。フックリスト109にIDeffを「E」とするフック「C(E)」があるため、IDeff「E」を読出しパケットのID「C」に更新する(S150)。図26は、パケットリスト403が読み出された場合の説明図であり、図27は、フック「C」のIDeff「E」を読出しパケットのID「C」に更新した場合を示す説明図である。
そして、IDeffとフックが同一か否かを判定する(S224)。ステップS226において更新したIDeffは「C」であり、フックは「C」で同一であるから、ループエラー通知をする(S222)。そして、他にパケット403のフック「E」をIDeffとするフックがフックリスト109になければ(S142)、パケット403の参照先であるパケット405をパケットリスト119から取り出して出力ファイル121に追記する(S112)。図28は、ID「E」のパケット405を出力ファイル121に追記した場合を示す説明図である。
そして、パケット403にフック「E」以外のフックがない場合には(S114)、パケット403がルートパケットであるか否かを判定する(S116)。パケット403はルートパケットではないため、パケット403のID「C」を抽出する(S120)。ステップS230において抽出したID「C」に対応するフックがフックリスト109にあるか否かを判定する(S122)。フックリスト109にID「C」に対応するフックがあるため、次にID「C」をIDeffとするフックがフックリスト109にあるか否かを判定する(S142)。
フックリスト109にIDeffを「C」とするフック「C(C)」があるが、自己参照フックは除かれるため(S142)、パケット403のID「C」に対応するフック「C(C)」をフックリストから削除して(S126)、ID「C」のパケット403を出力ファイル121に追記する(S118)。図29は、フックリスト109からフック「C(C)」が削除されて、出力ファイル121に追記された場合を示す説明図である。
そして、次のパケットがない場合には(S128)、フックリストが空であるか否かを判定する(S130)。ステップS250において、フックリストが空でなかった場合には、参照関係が確定していないため、参照エラーを通知する(S132)。次に、パケットリストが空であるか否かを判定する(S134)。ステップS254において、パケットリストが空でなかった場合には、孤立要素となるパケットまたはサブツリーがある旨通知する(S136)。以上、本実施形態にかかるファイル構造解析方法について説明した。
本実施形態にかかるファイル構造解析装置100′によれば、第1実施形態にかかるファイル構造解析装置100と同様に、複数の個別要素パケットを順次入力し、参照先が未確定の個別要素パケットの外部参照子を外部参照子保持部108の外部参照子リスト109に一時的に保持する。また、参照元が未確定の個別要素パケットの固有識別子を固有識別子保持部118の固有識別子リスト119に一時的に保持する。そして、入力された個別要素パケットの参照関係を順次解析して、参照関係が確定した度に個別要素パケットの外部参照子および固有識別子を外部参照子リスト109および固有識別子リスト119からそれぞれ削除する。
さらに、本実施形態においては、外部参照子保持部108の外部参照子リスト109に外部参照子と当該外部参照子を有する(合成された)実効的な個別要素パケットの固有識別子(実効的な固有識別子)とを対にして保持する。そして、参照関係が確定した場合に、外部参照子と対にして保持した実効的な固有識別子を、参照元の個別要素パケットの実効的な固有識別子に変更する。ここで実効的な固有識別子とは、参照関係に基づいて個別要素パケットが合成された場合の上位の個別要素パケットの固有識別子をいう。これにより、ルート要素を判別する方法が提供されていない場合においても、合成パケットにおいて自己参照している場合にループエラーを検出することができる。よって、個別要素パケットの外部参照子や固有識別子のすべてを展開することなく、ファイル内部の木構造をより正確に解析することが可能となる。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
本発明の第1の実施形態にかかるファイル構造解析装置の機能構成を示すブロック図である。 同実施形態にかかるMXFファイルのファイル構成について説明する説明図である。 同実施形態にかかるMXFファイルにおけるファイルヘッダのデータ構造について説明する説明図である。 同実施形態にかかるMXFファイルにおけるファイルボディのデータ構造について説明する説明図である。 同実施形態にかかるMXFファイルにおけるプロダクションフレームワークに基づくDMインスタンスの一例を説明する説明図である。 木構造を構成する個別要素パケットの種類について説明する説明図である。 木構造化エラーとして検出すべき個別要素パケットについて説明する説明図である。 同実施形態にかかるファイル構造解析方法を示すフローチャートである。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 本発明の第2の実施形態にかかる同実施形態にかかるループエラー検出方法について説明する説明図である。 同実施形態にかかるファイル構造解析方法において追加されるエラー処理を示すフローチャートである。 同実施形態にかかるファイル構造解析方法を示すフローチャートである。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。 同実施形態にかかるファイル構造解析方法を具体的に説明する説明図である。
符号の説明
100 ファイル構造解析装置
102 個別要素パケット(パケット)入力部
104 個別要素パケット(パケット)解析部
106 個別要素パケット(パケット)一時記憶部
108 外部参照子(フック)保持部
112 参照関係解析部
118 固有識別子(ID)保持部

Claims (9)

  1. 複数の個別要素パケットが外部参照されることにより木構造を構成している構造化データ群を含むファイルを解析するファイル構造解析装置であって、
    前記個別要素パケットは、前記個別要素パケットを識別する固有識別子と、前記他の個別要素パケットを外部参照する場合に該他の個別要素パケットの固有識別子を用いて外部参照先を示す外部参照子とを含み、
    前記複数の個別要素パケットを順次に入力する個別要素パケット入力部と、
    参照先が未確定の前記個別要素パケットの前記外部参照子を一時的に保持する外部参照子保持部と、
    参照元が未確定の前記個別要素パケットの固有識別子を一時的に保持する固有識別子保持部と、
    前記個別要素パケット入力部に入力された前記複数の個別要素パケットの参照関係を順次に解析し、前記参照関係が確定した度に前記個別要素パケットの前記外部参照子および前記固有識別子を前記外部参照子保持部および前記固有識別子保持部からそれぞれ削除する参照関係解析部と、
    を備えることを特徴とする、ファイル構造解析装置。
  2. 前記参照関係解析部は、
    前記入力された個別要素パケットの外部参照子が前記固有識別子保持部に保持されている前記固有識別子と同一である場合に前記個別要素パケットの参照先が確定したとして、前記固有識別子保持部から該固有識別子を削除し、
    前記入力された個別要素パケットの固有識別子が前記外部参照子保持部に保持されている前記外部参照子と同一である場合に前記個別要素パケットの参照元が確定したとして、前記外部参照子保持部から該外部参照子を削除する
    ことを特徴とする、請求項1に記載のファイル構造解析装置。
  3. 前記外部参照子保持部は、前記外部参照子と、該外部参照子に対応した前記固有識別子とを対にして保持し、
    前記参照関係解析部は、
    前記個別要素パケットの参照元が確定した場合に、前記外部参照子保持部に外部参照子と対にして保持された前記固有識別子を、前記参照元の個別要素パケットの実効的な固有識別子に変更することを特徴とする、請求項1に記載のファイル構造解析装置。
  4. 前記外部参照子と対にして保持され、前記参照関係解析部により変更された個別要素パケットの実効的な固有識別子が該外部参照子と同一であった場合に、木構造のループエラーを検出することを特徴とする、請求項3に記載のファイル構造解析装置。
  5. 前記参照関係解析部により削除された前記個別要素パケットを記憶する個別要素パケット記憶部を備えることを特徴とする、請求項1に記載のファイル構造解析装置。
  6. 前記参照解析部は、前記複数の個別要素パケットのうちのいずれかをルート要素パケットとみなして参照関係を解析することを特徴とする、請求項1に記載のファイル構造解析装置。
  7. 前記構造化データ群は、MXFファイルのヘッダメタデータであることを特徴とする、請求項1に記載のファイル構造解析装置。
  8. 複数の個別要素パケットが外部参照されることにより木構造を構成している構造化データ群を含むファイルを解析するファイル構造解析方法であって、
    前記個別要素パケットは、前記個別要素パケットを識別する固有識別子と、前記他の個別要素パケットを外部参照する場合に該他の個別要素パケットの固有識別子を用いて外部参照先を示す外部参照子とを含み、
    前記複数の個別要素パケットを順次に入力するステップと、
    参照先が未確定の前記個別要素パケットの前記外部参照子を外部参照子保持部に一時的に保持するステップと、
    参照元が未確定の前記個別要素パケットの固有識別子を固有識別子保持部に一時的に保持するステップと、
    前記入力された複数の個別要素パケットの参照関係を順次に解析し、前記参照関係が確定した度に前記個別要素パケットの前記外部参照子および前記固有識別子を前記外部参照子保持部および前記固有識別子保持部からそれぞれ削除するステップと、
    を含むことを特徴とする、ファイル構造解析方法。
  9. コンピュータを、
    複数の個別要素パケットが外部参照されることにより木構造を構成している構造化データ群を含むファイルを解析するファイル構造解析装置であって、
    前記個別要素パケットは、前記個別要素パケットを識別する固有識別子と、前記他の個別要素パケットを外部参照する場合に該他の個別要素パケットの固有識別子を用いて外部参照先を示す外部参照子とを含み、
    前記複数の個別要素パケットを順次に入力する個別要素パケット入力部と、
    参照先が未確定の前記個別要素パケットの前記外部参照子を一時的に保持する外部参照子保持部と、
    参照元が未確定の前記個別要素パケットの固有識別子を一時的に保持する固有識別子保持部と、
    前記個別要素パケット入力部に入力された前記複数の個別要素パケットの参照関係を順次に解析し、前記参照関係が確定した度に前記個別要素パケットの前記外部参照子および前記固有識別子を前記外部参照子保持部および前記固有識別子保持部からそれぞれ削除する参照関係解析部と、
    を備えるファイル構造解析装置として機能させるための、プログラム。
JP2008046651A 2008-02-27 2008-02-27 ファイル構造解析装置、ファイル構造解析方法およびプログラム Expired - Fee Related JP4513876B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008046651A JP4513876B2 (ja) 2008-02-27 2008-02-27 ファイル構造解析装置、ファイル構造解析方法およびプログラム
US12/372,155 US8370325B2 (en) 2008-02-27 2009-02-17 File structure analyzing apparatus, file structure analyzing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008046651A JP4513876B2 (ja) 2008-02-27 2008-02-27 ファイル構造解析装置、ファイル構造解析方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2009205406A true JP2009205406A (ja) 2009-09-10
JP4513876B2 JP4513876B2 (ja) 2010-07-28

Family

ID=40999352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008046651A Expired - Fee Related JP4513876B2 (ja) 2008-02-27 2008-02-27 ファイル構造解析装置、ファイル構造解析方法およびプログラム

Country Status (2)

Country Link
US (1) US8370325B2 (ja)
JP (1) JP4513876B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015042357A1 (en) * 2013-09-20 2015-03-26 Drexel University Design rule spaces and architecture root detection
US9665657B2 (en) 2013-09-24 2017-05-30 Google Inc. Dynamically picking content from social shares to display in a user interface

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005051632A (ja) * 2003-07-30 2005-02-24 Sony Corp プログラム、データ処理方法およびその装置
JP2007148751A (ja) * 2005-11-28 2007-06-14 Kddi Corp 構造化文書の符号化方法、符号化装置、符号化プログラム、復号装置及び符号化された構造化文書のデータ構造
JP2008035394A (ja) * 2006-07-31 2008-02-14 Sony Corp 記録装置、記録方法、再生装置、再生方法、記録再生装置、記録再生方法、撮像記録装置及び撮像記録方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5500860A (en) * 1991-06-14 1996-03-19 Digital Equipment Corporation Router using multiple hop redirect messages to enable bridge like data forwarding
GB2261799B (en) * 1991-11-23 1995-04-19 Dowty Communications Ltd Packet transmission system
US5610595A (en) * 1991-12-09 1997-03-11 Intermec Corporation Packet radio communication system protocol
US5862335A (en) * 1993-04-01 1999-01-19 Intel Corp. Method and apparatus for monitoring file transfers and logical connections in a computer network
JP2005242427A (ja) 2004-02-24 2005-09-08 Sony Corp 情報処理装置および方法、並びにプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005051632A (ja) * 2003-07-30 2005-02-24 Sony Corp プログラム、データ処理方法およびその装置
JP2007148751A (ja) * 2005-11-28 2007-06-14 Kddi Corp 構造化文書の符号化方法、符号化装置、符号化プログラム、復号装置及び符号化された構造化文書のデータ構造
JP2008035394A (ja) * 2006-07-31 2008-02-14 Sony Corp 記録装置、記録方法、再生装置、再生方法、記録再生装置、記録再生方法、撮像記録装置及び撮像記録方法

Also Published As

Publication number Publication date
US8370325B2 (en) 2013-02-05
JP4513876B2 (ja) 2010-07-28
US20090216810A1 (en) 2009-08-27

Similar Documents

Publication Publication Date Title
JP4885841B2 (ja) サイクリックレファレンシング管理方法及び装置並びにパージング方法及び装置
US7783685B2 (en) Information recording/reproducing apparatus, information recording/reproducing method, program storage medium, and program
JP5214969B2 (ja) 多国語を支援するメタデータを記録した情報記録媒体及びメタデータの処理方法とシステム
US20050234858A1 (en) Recording and reproducing apparatus, reproducing apparatus, recording and reproducing method, reproducing method, program and recording medium
CN101577137B (zh) 信息处理设备、信息处理方法
CN1734642B (zh) 信息记录系统和方法
JP4618687B2 (ja) 第1及び第2の記憶媒体からのデータ検索方法
CN1998050A (zh) 用于播放多媒体播放列表的方法和装置及其存储介质
JP5543983B2 (ja) ディスクの認識
US20040184775A1 (en) Recording/reproducing apparatus, recording/reproducing method, computer program providing medium, and recording medium
JP4306525B2 (ja) 情報処理装置および方法、並びにプログラム
US7305377B2 (en) Information processing apparatus for reproducing metadata and method, program, and recording medium
JP4513876B2 (ja) ファイル構造解析装置、ファイル構造解析方法およびプログラム
JP2005027316A (ja) データストリームを編集する方法および装置
US20050240626A1 (en) Method and apparatus for fixing up LastURL, and computer readable recording medium storing program for performing the method
RU2345428C2 (ru) Устройство и способ для отображения фотоданных и видеоданных
CN101352037A (zh) 信息处理设备、信息处理方法和计算机程序
CN100520940C (zh) 信息记录/再现装置和方法
CN112925746A (zh) 文件归档方法和装置
JP2004342302A (ja) 光記憶媒体の専用位置に格納されるメニューアイテムデータに関連する付加データを格納するための方法及びメニューアイテムデータ及びこのメニューアイテムデータに関連する付加データを有するメニュー関連データを格納又は光記憶媒体から検索するための装置
JP4830773B2 (ja) データ処理装置、方法、およびプログラム
CN101238516B (zh) 创建最后统一资源标识符的方法和设备
KR100643436B1 (ko) 기록 디지털 스트림의 파일 관리방법
JP5491072B2 (ja) 光ディスク再生装置および光ディスク再生方法
JP2016524753A (ja) ファイルの分類のための方法および装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100319

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100420

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100503

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees