JP2004171067A - データ管理方法およびデータ管理装置、データ管理プログラムならびにこれを記録した記録媒体 - Google Patents

データ管理方法およびデータ管理装置、データ管理プログラムならびにこれを記録した記録媒体 Download PDF

Info

Publication number
JP2004171067A
JP2004171067A JP2002332837A JP2002332837A JP2004171067A JP 2004171067 A JP2004171067 A JP 2004171067A JP 2002332837 A JP2002332837 A JP 2002332837A JP 2002332837 A JP2002332837 A JP 2002332837A JP 2004171067 A JP2004171067 A JP 2004171067A
Authority
JP
Japan
Prior art keywords
sample
information
atom
entry
time
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.)
Withdrawn
Application number
JP2002332837A
Other languages
English (en)
Inventor
Hirotoshi Iwano
裕利 岩野
Takayoshi Yamaguchi
孝好 山口
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2002332837A priority Critical patent/JP2004171067A/ja
Publication of JP2004171067A publication Critical patent/JP2004171067A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】QuickTimeファイルフォーマット等で記録された情報に対するランダムアクセス時における再生開始までの時間を短縮して、効率よく管理情報の読み出しを行うことができるデータ管理方法およびデータ管理装置、データ管理プログラムならびにこれを記録した記録媒体を提供する。
【解決手段】Track atomにおけるUser defined data atomの下位テーブルであるAccess Table atomの下位テーブルとして、複数の補助アクセステーブル(Time to sample access atom,Sample to Chunk access atom,Sync Sample accessatom)を形成する。例えば、Time to sample atomから、補助アクセステーブルであるTime to sample access atomの情報に基づいて、Time to sample tableにおける目的のエントリに含まれる情報を1回のロードで読み出す。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、例えば、QuickTime(登録商標)ファイルに記録された情報に対して、ランダムアクセスにより再生を行う場合でも、効率よく管理情報の読み出しを行うことができるデータ管理方法およびデータ管理装置、データ管理プログラムならびにこれを記録した記録媒体に関するものである。
【0002】
【従来の技術】
オーディオやビデオ等の複数のマルチメディアデータを同期して再生するための管理方法として、PC(パーソナルコンピュータ)やデジカメなどにおいて、広くQuickTime(登録商標)ファイルフォーマットが利用されている(特許文献1・2を参照)。
【0003】
QuickTimeファイルフォーマットとは、Apple社が開発したマルチメディアデータ管理用フォーマットであり、PCの世界で広く用いられている。また、QuickTimeファイルフォーマットをベースとして、MPEG4やMotion JPEG2000などで採用されているファイルフォーマットであるISO base media file formatが規格化されている。
【0004】
QuickTimeファイルフォーマットは、ビデオデータやオーディオデータ等(これらを総称してメディアデータという)と管理情報とで構成される。ここでは、この両者を合わせて「QuickTimeムービー」と称する。なお、このマルチメディアデータと管理情報とは、同じファイル中に存在しても、別々のファイルに存在してもよい。
【0005】
例えば、管理情報とマルチメディアデータとを同じファイル中に格納した場合には、図20に示すように、各種情報はatomという共通の構造に格納される。具体的には、管理情報はMovie atomという構造に格納され、メディアデータはMovie data atomという構造に格納される。
【0006】
なお、Movie atom中の管理情報には、メディアデータ中の任意の時間に対応するメディアデータのファイル中での相対位置を導くためのテーブルや、メディアデータの属性情報や、後述する外部参照情報等が含まれている。
【0007】
一方、管理情報とメディアデータとを別々のファイルに格納した場合には、管理情報はMovie atomという構造に格納されるが、メディアデータはatomに格納される必要はない。この場合、Movie atomはメディアデータを格納したファイルを「外部参照」している、という。
【0008】
この外部参照は、複数のAVストリームファイルに対して行うことが可能であり、この仕組みにより、AVストリーム自体を物理的に移動させることなく、見かけ上編集を行ったように見せる、いわゆる「ノンリニア編集」や「非破壊編集」が可能になる。
【0009】
ここで、図20〜図35を用いて、QuickTimeファイルにおける管理情報が格納されている構造について説明する。
【0010】
まず、共通の情報格納構造であるatomについて説明する。
【0011】
atomの先頭には、そのatomのサイズであるAtom size、そのatomの種別情報であるTypeが必ず存在する。Typeは4文字で区別され、例えば、Movie atomでは’moov’、Movie data atomでは’mdat’となっている。
【0012】
ここで、atomの先頭にあるAtom sizeとTypeとの列を、atom headerと呼ぶことにすると、QuickTimeムービーは、必ずこの複数のatom構造によって構成される。そして、注目しているatom headerの先頭からatom headerで管理されるatom size(バイト数)だけ先に次のatomが存在することになる。そして、各atomは別のatomを含むことができ、atom間に階層構造を形成することが可能である。
【0013】
Movie atomはコンテナatomであって、Movie header atom、任意の数のTrack atom、User defined data atomを備えている。なお、コンテナatomとは、任意の数のatomを格納するための入れ物的な役割を果たすものであり、コンテナatom自体は情報を管理しない。
【0014】
Movie header atomは、そのMovie atomが管理するムービーの全体的な属性を管理する。
【0015】
Track atomは、そのムービーに含まれるビデオやオーディオ等のトラックに関する情報を格納する。
【0016】
User defined data atomの中には、独自に定義可能なatomを配置することが可能であって、QuickTimeフォーマットで定義されてない独自情報を任意個数格納することができる。1個の独自情報は1個のエントリで管理され、1個のエントリはSizeとTypeとUser dataとで構成される。Sizeはそのエントリ自体のサイズを表し、Typeは独自情報をそれぞれ区別するための識別情報、User dataは実際のデータを表す。
【0017】
さらに、上記Track atomはコンテナatomであり、Track Header atom、Edit atom、Media atom、User defined data atomを備えている。一般的に、QuickTimeムービーにおいては、オーディオおよびビデオの2つのトラックが存在することが多いが、字幕を表示するテキストトラックや、複数のオーディオやビデオ等、任意の数のトラックを管理することが可能である。
【0018】
Track header atomは、そのトラックの全体的な属性を管理する。
【0019】
Edit atomは、メディアデータのどの区間を、ムービーのどのタイミングで再生するかを管理する。
【0020】
Media atomは、実際のビデオやオーディオといったデータを管理する。さらに、このMedia atomはコンテナatomであり、Media header atom、Handler reference atom、(Video/Audio) Media Information atom、User Defined data atomを備えている。
【0021】
Media header atomは、そのMedia atomが管理するメディアデータに関する全体的な属性等を管理する。
【0022】
Handler reference atomは、メディアデータをどのデコーダでデコードするかを示す情報を格納する。
【0023】
Media information atomは、ビデオやオーディオ等のメディア固有の属性情報を管理する。さらに、このMedia information atomはコンテナatomであって、Media Information Header atom、Handler Reference atom、Data Reference atom、Sample table atomを備えている。
【0024】
Media information header atomは、ビデオやオーディオ等メディア固有の属性情報を管理する。
【0025】
Handler reference atomは、Media atomの項で説明した通りである。
【0026】
Data information atomは、そのQuickTimeムービーが参照するメディアデータを含むファイルの名前を管理するatomであるData reference atomを含んでいる。
【0027】
Sample table atomは、データのサイズや再生時間等を管理している。
【0028】
次に、このSample table atomについて、図21を用いて説明するが、その前に、QuickTimeにおけるデータの管理方法について、図22を用いて説明する。
【0029】
QuickTimeにおいて、データの最小単位(例えば、ビデオフレーム)はサンプルと呼ばれる。個々のトラック毎に、サンプルには再生時間順に1から始まる連続した番号(サンプル番号)が付されている。
【0030】
また、同一トラックに属するサンプルが再生時間順にファイル中で連続的に配置された領域をチャンクと呼ぶ。チャンクにも再生時間順に、1から始まる連続した番号(チャンク番号)が付されている。
【0031】
このように、QuickTimeにおいては、サンプル番号とチャンク番号とを付して、データ管理を行っている。
【0032】
Sample table atomは、個々のサンプルの再生時間長およびデータサイズ、個々のチャンクのファイル先頭からのアドレスおよび個々のチャンクが含むサンプル数などを管理しており、これらの情報に基づいて、任意の時間に対応するサンプルの情報を求めることが可能となっている。
【0033】
Sample table atomは、図21に示すように、Sample description atom、Timeto sample atom、Sync sample atom、Sample−to−chunk atom、Sample size atomおよびChunk offset atomを備えている。
【0034】
Sample description atomは、個々のチャンクのデータフォーマット(Data format)やサンプルが格納されているファイルのIndex番号等を管理する。
【0035】
Time to sample atomは、図23に示すように、個々のサンプルの再生時間長を管理する。なお、ここでは、各サンプルの再生時間長を全て管理するとデータ量が膨大になるため、再生時間長が同じSampleが続いた場合には、その繰り返し数を管理することによって情報量を圧縮している。
【0036】
Sample−countでは、同じ再生時間が繰り返されるサンプルの数が管理され、Sample−deltaでは、繰り返されるsampleの再生時間長が管理される。
【0037】
図22に示したサンプル構造の例に対応するSample−countとSample−deltaのテーブル(Time to sample table)は、図24に示すように、1つ目のエントリではsample−countが2、sample−deltaが100となっており、再生時間長が100のサンプルが2個並んでいることがわかる。2つ目のエントリでは、sample−countが1、sample−deltaが95になっており、再生時間長が95のサンプルが1回だけ続いていることを表している。なお、図22における数字は、各サンプルの再生時間長を示すものである。
【0038】
Sample to chunk atomは、図25に示すように、個々のチャンクに含まれるサンプル数を管理する。なお、ここでも、各チャンクに含まれるサンプル数を全て管理していたのではデータ量が膨大になるため、チャンクに含まれる同じサンプル数が続いた場合に、その繰り返し数を管理することによって情報量を圧縮している。
【0039】
First chunkにはチャンク内のサンプル数が繰り返される先頭のチャンク番号、samples−per−chunkにはチャンク中のサンプル数、Sample−description−indexには注目しているチャンクが対応するSample description情報のインデックス番号がそれぞれ示される。
【0040】
図22に示したチャンク構造の例に対応するFirst Chunk、Sample per chunk、Sample−description−indexのテーブル(Sample to chunk table)は、図26に示すように、例えば、3つ目のエントリにおいては、First chunkには3、Sample−per−chunkには2、Sample−description−indexには1がセットされている。
【0041】
また、次の4つ目のエントリにおいては、それぞれ、6,3,1がセットされている。これにより、チャンク番号3からチャンク番号5までのチャンクは、サンプル数2で構成されていることがわかる。
【0042】
Sync sample atomは、図27に示すように、個々のサンプルのうち、単独でデコード可能なサンプルを管理する。そして、Sample−numberは、単独でデコード可能なサンプル番号を管理する。
【0043】
図22に示したサンプル構造の例に対応するSample numberのテーブル(Sync sample table)は、図28に示すように、サンプル1,3,4,6,8,・・・が単独でデコード可能なサンプルであることがわかる。なお、図22に示す★印が付されたサンプルが単独でデコード可能なサンプルを示している。
【0044】
Sample size atomは、図29に示すように、個々のサンプルのサイズを管理する。なお、トラック中の全サンプルが同一のサイズの場合には、sample−sizeフィールドにそのデータサイズを記録することによって、テーブルを作成する必要はない。よって、各サンプルのデータサイズを示すSample−sizeテーブル(Sample size table)は、例えば、図30に示すように、このatomでは、全てのサンプルのデータサイズが同一の場合を除いて、トラック中の全サンプルのデータサイズをそれぞれテーブルの1エントリとして管理している。
【0045】
Chunk offset atomは、図31に示すように、個々のチャンクのファイル先頭からのアドレスを管理する。
【0046】
各チャンクのファイルの先頭からのアドレスを示すChunk offsetテーブル(Chunk offset table)は、例えば、図32に示すように、このatomでは、トラック中の全チャンクのアドレスをそれぞれテーブルの1エントリとして管理している。
【0047】
ここで、図33に示すようなサンプル、チャンク構成を有するQuickTimeムービーにおいて、ムービーの先頭を時刻0とした場合に、再生時刻1.Timeを与えたときに再生するために読み出すべきサンプル情報の取得方法について説明する。なお、図33においては、再生時刻1.Timeに相当するサンプルは、2.Sample #nであり、このサンプルは3.Chunk #mに含まれているものとする。
サンプル情報は、上述したSample Table atom内で定義される各atomの情報を組み合わせて取得される。ここで、各atomを利用したサンプル情報を取得する処理の流れについて、図34を用いて説明する。
【0048】
<サンプルの再生時間長の取得>
まず、サンプルの再生時間長を取得するために、Time to sample atom100において、再生時刻からその時刻に再生すべきサンプルのサンプル番号(2.sample #n)と、そのサンプルの再生時間長(9.duration)とを取得する。
<サンプルのデータサイズの取得>
次に、サンプルのデータサイズを取得するために、Time to sample atom100によって取得したサンプル番号(2.sample #n)から、Sample size atom102より目的のサンプルのデータサイズ(6.sample size #k)を取得する。
<サンプルが単独でデコード可能か否か>
次に、サンプルが単独でデコード可能か否かを示す情報を取得するために、Time to sample atom100によって取得したサンプル番号(2.sample #n)から、Sync sample atom103より指定したサンプルが単独でデコード可能かどうか(Sync Sampleかどうか)(10.Sync Sample or Not)を取得する。
【0049】
<サンプルのアドレス取得>
次に、サンプルのアドレスを取得するために、Time to sample atom100によって取得したサンプル番号(2.sample #n)から、Sample to chunk atom101よりサンプルを含むチャンクのチャンク番号(3.Chunk #m)とチャンクの先頭のサンプル番号(Sample #n−2)、チャンク中のサンプルがどのようなメディア種別なのかを管理するテーブルのインデックス番号を管理する11.Sample Description indexを取得する。
【0050】
取得したチャンク番号(3.Chunk #m)より、Chunk offset atom104を用いて注目しているチャンクの先頭アドレス(7.Chunk offset #j)を取得する。そして、チャンクの先頭アドレスに、チャンクの先頭のサンプルから目的のサンプルまでのサイズを足し合わせて、目的のサンプルのアドレスを取得する。つまり、取得した7.Chunk offset #jにsample #n−2、Sample #n−1のサイズを足し合わせ、8.Sample addressを取得する。なお、Sample #n−2およびSample #n−1のサイズは、上述した<サンプルのデータサイズの取得>により取得したものを用いることができる。
【0051】
このように、QuickTimeにおいては、QuickTimeムービーを再生するために必要なサンプル情報を、複数の管理テーブルの情報を組み合わせることで取得することができる。
【0052】
【特許文献1】
特開2001−176195号公報(2001年6月29日公開)
【0053】
【特許文献2】
特開2002−247488号公報(2002年8月30日公開)
【0054】
【発明が解決しようとする課題】
しかしながら、上記従来のデータ管理方法では、以下に示すような問題点を有している。
【0055】
すなわち、従来、マルチメディアデータは、メモリ資源やCPUパワーの豊富なPCにおいて取り扱うことが一般的であった。しかし、近年では、メモリ資源やCPUパワーに制限のある、PDA(パーソナルデジタルアシスタント)、ディスクビデオレコーダ、カムコーダと言ったAV機器、携帯電話などの民生用機器でもマルチメディアデータを取り扱うようになってきている。
【0056】
また、QuickTimeファイルフォーマットは、広く普及している管理方式であるため、様々なプラットフォームにおいて利用されている。
【0057】
QuickTimeムービーを記録する記録媒体に関しても記録容量が増大しており、長時間の記録が可能となっている。上述したように、QuickTimeでは再生に必要なサンプル情報は、Sample Table atomによって管理されているが、記録時間が長くなると、これに比例してSample Table atomのデータ量は増加する。
【0058】
これに対して、メモリ資源等が限られている民生用機器においては、例えば、記録再生できるQuickTimeムービーの時間長の上限を設けるなどの運用規定を設けることが一般的である。このような場合でも、メモリを増やす、再生に必要な管理情報を逐次記録媒体からメモリに読み出す等して、想定している時間以上のQuickTimeムービーを再生可能とすることは可能である。
【0059】
しかし、メモリの増設は、コストが増える上、記録時間によっては確実に対応できるものではない。一方、記録媒体からメモリへの読み出しについては、メモリには管理情報の一部分しか格納できないため、再生を継続するために再生途中で記録媒体からメモリに管理情報をロードする必要がある。
【0060】
例えば、ムービーの先頭から順番に再生を開始する場合には、再生するのに必要な管理情報が無くなった段階で、続きの情報をメモリに読み込むことによって再生を継続することができる。しかし、ムービーの任意時間から再生開始を行うようなランダムアクセスを行う場合には、上述したSample Table atom以下の各atomの内容を組み合わせて情報を取得する必要がある。
【0061】
このとき、Sample Size atomに関しては、テーブルの1エントリ=1サンプルサイズ、Chunk Offset atomに関しては、テーブルの1エントリ=1チャンクオフセットと1対1の関係になっているため、任意の情報を取得する場合に、どこを読み出せば良いか明確であり、問題は生じない。
【0062】
しかし、Time to sample atom、Sample to chunk atom、Sync Sample atomに関しては、管理情報量を圧縮するために、サンプルの再生時間長の繰り返しやチャンク中のサンプル数の繰り返しを省略している。また、Sync Sample atomに関しては、単独でデコード可能なサンプル番号のリストを管理している。
【0063】
このため、このようなデータ管理装置における任意の情報にアクセスするためには、管理テーブルの先頭から順番に見ていかなければ目的の情報がどのエントリなのかを把握することができない。
【0064】
例えば、図35に示すように、Time to sample atom中の網掛け部分にある情報を取得する場合を例にあげて説明すれば、以下の通りである。なお、図35のTime to sample table中の1つの四角は、1回のアクセスでメモリに読み込める量であることを示している。
【0065】
ここでは、管理情報が全てメモリに存在する場合には、テーブルの先頭から順次情報を読み出しても、毎回計算を行わなければならないということ以外に、特に大きな問題はない。しかし、管理情報が全てメモリに存在しない場合には、図35に示すように、テーブルの先頭から順番に目的の情報にたどり着くまでに何回も、記録媒体からメモリ上に管理情報を分割して読み出す必要がある。
【0066】
図35に示す例では、テーブルの先頭から5回の読み出しを経て、目的の情報をメモリに格納している。このように、任意時間から再生を開始する場合には、ランダムアクセスを行うための情報を取得するまでに、記録媒体に記録されたQuickTimeファイルから何回も管理情報を読み出してからでないと再生を開始できない。
【0067】
実際に、このような処理を行う必要があるのは、Time to sample atom、Sample to chunk atom、Sync Sample atomの3つのatomに対してであって、それぞれのatomについて同様の処理を行わなければならない。
【0068】
このため、任意の時間から再生を開始する、いわゆるランダムアクセスを行う際には、このような処理を行う必要があり、再生指示を出してから、実際に絵や音が表示画面等から出力されてムービーの再生が開始されるまでにかなりの時間を要するため、ユーザを待たせることになり、好ましくない。
【0069】
また、光ディスク等のシーク時間(アクセス時間)やデータの読み出しレートの遅い記録媒体から再生を行う場合には、上記の問題はより顕著に現れる。
【0070】
そして、上述した任意の時間からの再生についてのみならず、逆再生や早送り、逆早送りなどの特殊再生を行う場合についても、この問題は同様に発生する。
【0071】
さらに、録画中の電源遮断等に対応するために導入された概念であるFragmented movieは、QuickTime フォーマットの1アプリケーションであるMotion JPEG2000で導入された概念であり、上述のSample table atomに相当する情報を、部分的なAVストリーム毎に管理することが可能である。つまり、Fragmented Movieは、管理情報を分散して管理することを可能とする仕組みである。
【0072】
このため、Fragmented Movieについては、1つのムービーを複数のFragmentに分割し、それぞれのFragment毎に管理情報を持つため、Fragment単位のメディアデータとそれを管理する管理情報とは、ペアでムービーファイルに複数記録されることになる。よって、任意の時間に相当するサンプルが含まれるFragmentを取得するためには、各Fragmentの管理情報を順番に見ていく必要があり、上記と同様の問題を有する。
【0073】
本発明は、上記の問題点に鑑みなされたものであり、その目的は、QuickTimeファイルフォーマット等で記録された情報に対するランダムアクセス時における再生開始までの時間を短縮して、効率よく管理情報の読み出しを行うことができるデータ管理方法およびデータ管理装置、データ管理プログラムならびにこれを記録した記録媒体を提供することにある。
【0074】
【課題を解決するための手段】
本発明のデータ管理装置は、上記の課題を解決するために、複数のデータ毎の情報を管理する主の管理テーブルを用いて、該主の管理テーブルに含まれるエントリを一定の規則に従うことなく記録した記録媒体から、必要な情報の読み出しを行うデータ管理方法において、上記記録媒体から必要な情報を読み出す際には、上記主の管理テーブルに含まれる複数のエントリ分の累積情報を個々のエントリで管理する補助管理テーブルを用いることを特徴としている。
【0075】
上記のデータ管理方法によれば、記録媒体の主の管理テーブルに格納された情報を再生する場合には、補助管理テーブルを介して直接的に所望の情報へアクセスし、該所望の情報を効率よく読み出すことで、再生指示を受けてから実際に再生が開始されるまでの時間を短縮できる。
【0076】
すなわち、上記補助管理テーブルにおいては、主の管理テーブルのエントリを複数個ごとに区切り、該複数個ごとに区切られたエントリの累積情報を1個ずつのエントリで管理している。また、主の管理テーブルは、格納する情報量をできる限り小さくするために、情報の圧縮、繰り返しの情報を省略する等して管理しているため、一定の規則に従って格納されていない。
【0077】
このため、主の管理テーブルに格納された情報について再生指示があった場合には、主の管理テーブルの所望の情報にアクセスするために、まず、この補助管理テーブルにおける、所望の情報が含まれる累積情報を管理するエントリにアクセスする。そして、当該補助管理テーブルのエントリに対応する主の管理テーブルのエントリを、再生を行う装置等のメモリに対して読み出している。
【0078】
例えば、主の管理テーブルが時間に関する情報を管理するテーブルである場合には、補助管理テーブルにおいて累積時間情報が管理されているため、任意の時間から処理を開始する、いわゆるランダムアクセスを行う場合でも、この任意の時間が含まれる累積時間情報を有する補助管理テーブルのエントリにアクセスし、このエントリを介して主の管理テーブルの情報を取得する。
【0079】
これにより、従来のように、主の管理テーブルが有する各テーブルの先頭から順番にアクセスして所望の情報を探し出す必要はなく、補助管理テーブルを介して効率的に所望の情報を取得することで、ユーザから再生指示を受けてから実際に再生が開始されるまでに要する時間を短縮することができる。
【0080】
なお、本発明のデータ管理方法は、再生指示を受けた所望の情報が記録されている記録媒体が、シーク時間(アクセス時間)やデータの読み出しレートが遅いという特性を有する光ディスク等の記録媒体である場合に特に有効である。
【0081】
上記補助管理テーブルが備えている各エントリは、上記主の管理テーブルの分割読み出しを行う複数のエントリ分の累積情報を管理していることがより好ましい。
【0082】
これにより、主の管理テーブルから分割読み出しする単位と、補助管理テーブルの1つのエントリに管理されている主の管理テーブルのエントリ数とを一致させることができるため、主の管理テーブルから再生を行う装置等のメモリに対して、さらに効率よく読み出しを行うことができる。
【0083】
上記補助管理テーブルの各エントリは、上記累積情報が略等間隔で増加していくように、上記主の管理テーブルのエントリ数を区切って形成されていることがより好ましい。
【0084】
これにより、補助管理テーブルにおける1エントリの間隔をできる限り等間隔になるように設定することで、おおよその見当をつけて所望の情報が含まれるエントリに対してアクセスすることができる。
【0085】
よって、所望の情報が含まれるエントリにより効率よくアクセスすることができ、再生開始までに要する時間をより短縮できる。
【0086】
上記主の管理テーブルが分割読み出しの対象となっており、かつ該分割読み出しを行うエントリに対応する補助管理テーブルが存在しない場合には、補助管理テーブルを生成することがより好ましい。
【0087】
これにより、分割読み出しを行う主の管理テーブルのエントリに対応する補助管理テーブルが存在していない場合に補助管理テーブルを作成することで、補助管理テーブルの作成を必要最小限にでき、記録する情報量の増大を抑制できる。
【0088】
上記主の管理テーブルは、QuickTimeファイルフォーマットであることがより好ましい。
【0089】
これにより、ビデオデータやオーディオデータ等のメディアデータと管理情報とを備えているQuickTimeファイルフォーマットのうち、管理情報について補助管理テーブルを形成し、該補助管理テーブルを介して所望の情報を含むエントリにアクセスすることで、効率よく所望の情報を取得できる。
【0090】
上記補助管理テーブルは、時間に関する累積情報を管理していることがより好ましい。
【0091】
これにより、任意の時間から再生を開始する、いわゆるランダムアクセスを行う場合でも、主の管理テーブルのエントリに1つずつアクセスして所望の情報を探し出す必要はなく、補助管理テーブルの各エントリに管理されている累積時間情報の中から上記任意の時間が含まれるエントリにアクセスすることで、直接的に所望の情報を取得できる。
【0092】
上記補助管理テーブルは、サンプルおよびチャンクに関する累積情報を管理していることがより好ましい。
【0093】
これにより、任意のサンプル番号に対応するチャンク情報を取得する場合において、補助管理テーブルの各エントリに管理されている累積サンプル情報の中から、所望のサンプルが含まれるエントリを選択してアクセスすることで、直接的に所望の情報を取得できる。
【0094】
なお、チャンクとは、同一トラックに記録されたデータの最小単位であるサンプルが、再生時間順にファイル中で連続的に配置された領域をいう。
【0095】
上記補助管理テーブルは、単独でデコード可能なサンプルに関する情報を管理していることがより好ましい。
【0096】
これにより、任意のサンプルが単独でデコードできるか否かについて調べる場合において、補助管理テーブルの各エントリに管理されている累積情報の中から、所望のサンプルが含まれるエントリを選択してアクセスすることで、直接的に所望のデコード可能なサンプル情報を取得できる。
【0097】
本発明のデータ管理装置は、上記の課題を解決するために、複数のデータ毎の情報を管理する主の管理テーブルを用いて、該主の管理テーブルに含まれるエントリを一定の規則に従うことなく記録された記録媒体から、必要な情報の読み出しを行うデータ管理装置において、上記記録媒体から必要な情報を読み出す際には、上記主の管理テーブルに含まれる複数のエントリ分の累積情報を個々のエントリで管理する補助管理テーブルを用いることを特徴としている。
【0098】
上記の構成によれば、記録媒体の主の管理テーブルに格納された情報を再生する場合には、補助管理テーブルを介して直接的に所望の情報へアクセスし、該所望の情報を効率よく読み出すことで、再生指示を受けてから実際に再生が開始されるまでの時間を短縮できる。
【0099】
すなわち、上記補助管理テーブルにおいては、主の管理テーブルのエントリを複数個ごとに区切り、該複数個ごとに区切られたエントリの累積情報を1個ずつのエントリでそれぞれ管理している。また、主の管理テーブルは、格納する情報量をできる限り小さくするために、情報の圧縮、繰り返しの情報を省略して管理しており、一定の規則に従って格納されていない。
【0100】
このため、主の管理テーブルに格納された情報について再生指示があった場合には、主の管理テーブルの所望の情報にアクセスするために、まず、この補助管理テーブルにおける、所望の情報が含まれる累積情報を管理するエントリにアクセスする。そして、当該補助管理テーブルのエントリに対応する主の管理テーブルのエントリを、再生を行う装置等のメモリに対して読み出している。
【0101】
例えば、主の管理テーブルが時間に関する情報を管理するテーブルである場合には、補助管理テーブルにおいて累積時間情報が管理されているため、任意の時間から処理を開始する、いわゆるランダムアクセスを行う場合でも、この任意の時間が含まれる累積時間情報を有する補助管理テーブルのエントリにアクセスし、このエントリを介して主の管理テーブルの情報を取得する。
【0102】
これにより、従来のように、主の管理テーブルが有する各テーブルの先頭から順番にアクセスして所望の情報を探し出す必要はなく、補助管理テーブルを介して効率的に所望の情報を取得することで、ユーザから再生指示を受けてから実際に再生が開始されるまでに要する時間を短縮することができる。
【0103】
なお、本発明のデータ管理装置は、再生指示を受けた所望の情報が記録されている記録媒体が、シーク時間(アクセス時間)やデータの読み出しレートが遅いという特性を有する光ディスク等の記録媒体である場合に特に有効である。
【0104】
上記補助管理テーブルが備えている各エントリは、上記主の管理テーブルの分割読み出しを行う複数のエントリ分の累積情報を管理していることがより好ましい。
【0105】
これにより、主の管理テーブルから分割読み出しする単位と、補助管理テーブルの1つのエントリに管理されている主の管理テーブルのエントリ数とを一致させることができるため、主の管理テーブルから再生機器等のメモリに対して、さらに効率よく情報の読み出しを行うことができる。
【0106】
上記補助管理テーブルの各エントリは、上記累積情報が略等間隔で増加していくように、上記主の管理テーブルのエントリ数を区切って形成されていることがより好ましい。
【0107】
これにより、補助管理テーブルにおける1エントリの間隔をできる限り等間隔になるように設定することで、おおよその見当をつけて所望の情報が含まれるエントリに対してアクセスすることができる。
【0108】
よって、より効率よく、所望の情報が含まれるエントリにアクセスすることができ、再生開始までに要する時間を短縮できる。
【0109】
上記主の管理テーブルが分割読み出しの対象となっており、かつ該分割読み出しを行うエントリに対応する補助管理テーブルが存在しない場合には、補助管理テーブルを生成することがより好ましい。
【0110】
これにより、分割読み出しを行う主の管理テーブルのエントリに対応する補助管理テーブルが存在していない場合に補助管理テーブルを作成することで、補助管理テーブルの作成を必要最小限にでき、情報量の増大を抑制できる。
【0111】
上記主の管理テーブルは、QuickTimeファイルフォーマットであることがより好ましい。
【0112】
これにより、ビデオデータやオーディオデータ等のメディアデータと管理情報とを備えているQuickTimeファイルフォーマットのうち、管理情報について補助管理テーブルを形成し、該補助管理テーブルを介して所望の情報を含むエントリにアクセスすることで、効率よく所望の情報を取得できる。
【0113】
本発明のデータ管理プログラムは、上記の課題を解決するために、上記データ管理方法を、コンピュータに実行させることを特徴としている。
【0114】
上記のプログラムによれば、本発明のデータ管理プログラムをコンピュータに実行させることにより、記録媒体の主の管理テーブルに格納された情報を再生する際に、補助管理テーブルを介して直接的に所望の情報へアクセスし、該所望の情報を効率よく読み出すことで、再生指示を受けてから実際に再生が開始されるまでの時間を短縮できる。
【0115】
本発明のデータ管理プログラムを記録した記録媒体は、上記の課題を解決するために、上記データ管理プログラムを記録したことを特徴としている。
【0116】
上記の構成によれば、本発明の記録媒体をコンピュータに読み取らせることにより、記録媒体の主の管理テーブルに格納された情報を再生する際に、補助管理テーブルを介して直接的に所望の情報へアクセスし、該所望の情報を効率よく読み出すことで、再生指示を受けてから実際に再生が開始されるまでの時間を短縮できる。
【0117】
【発明の実施の形態】
本発明のデータ管理方法およびデータ管理装置、データ管理プログラムおよびこれを記録した記録媒体に係る一実施形態について、図1〜図19を用いて詳しく説明すれば以下の通りである。
【0118】
本実施形態のデータ管理方法は、メモリ資源やCPU資源に制限のある民生用機器により、QuickTimeファイルに長時間に渡って記録されたデータを効率的に再生可能とするものである。
【0119】
本実施形態のデータ管理方法では、図1に示すように、Track atomにおけるUser defined data atomの下位テーブルであるAccess Table atomの下位テーブルとして、複数の補助アクセステーブル(補助管理テーブル)(Time to sample access atom,Sample to Chunk access atom,Sync Sample access atom)を備えている。
【0120】
これにより、これらの補助アクセステーブルを用いて、容易に所望の情報を見つけることができるため、全ての管理情報が機器内のメモリに格納できない場合であっても、任意の時間から再生を開始する際に、毎回管理テーブルの先頭から順次所望の情報を見つけるまで、繰り返し読み出しを行う必要がなく、再生指示を受けてから再生開始までに要する時間を短縮できる。
【0121】
ここで、本実施形態のデータ管理方法において形成される上記各補助アクセステーブル(Time to sample access atom,Sample to Chunk access atom,Sync Sample access atom)の構造について説明する。
【0122】
<Time to sample access atomの構造>
Time to sample atomに対応する補助アクセステーブルTime to sample accessatomは、図2に示すような構造を有しており、Time to sample atomのTime to sample tableにおける複数のエントリの累積情報を1つ1つのエントリで管理するものである。
【0123】
本実施形態のデータ管理方法においては、Time to sample tableのうち、一回のアクセスでメモリに格納できるテーブルのエントリ数を基準として、補助アクセステーブルを構築する。
【0124】
Time to sample access atomは、entry count数分のエントリで構成されるテーブルTime to sample access tableを持つ。各エントリは、Time to sample atomにおける累積情報を管理する範囲における最後のエントリ+1を管理するentry num(範囲の先頭は常にエントリ番号1)、その範囲における先頭のサンプルからのサンプル数の累積合計を示すcount、その範囲における先頭からのサンプルの再生累積時間長を管理するdeltaを備えている。
【0125】
図3に、図22に示したサンプル、チャンク構造に対応するTime to sample atomとTime to sample access atomとのテーブル部分の内容を示す。なお、この例では、説明を簡略化するため、Time to sample tableにおいて一度にメモリに格納できるエントリ数を3エントリと想定している。実際には、このエントリ数はメモリの大きさに依存し、例えば、1000エントリといった数になる。
【0126】
Time to sample access tableの1エントリ目では、Time to sample tableのエントリ1〜3までの累積情報を管理している。つまり、エントリ1においては、累積5サンプル、累積再生時間長480、次のTime to sample tableのエントリが4であることを示す。
【0127】
同様に、エントリ2では、Time to sample tableのエントリ1〜6までの累積情報を管理する。つまり、エントリ2においては、累積12サンプル、累積再生時間長1135、次のTime to sample tableのエントリが7であることを示す。
【0128】
本実施形態のデータ管理方法では、以上のような構成の補助アクセステーブルTime to sample access atomを用いることによって、Time to sample access tableのdeltaのフィールドから目的の時間が含まれるエントリを探し出し、そのテーブルのエントリの情報からダイレクトにTime to sample tableの任意のエントリからの一連の情報をメモリに格納することで、任意の時間に対応するサンプル情報を取得できる。
【0129】
これにより、Time to sample atomのテーブルの先頭から順番に情報を読み出す必要がなくなり、処理時間を大幅に短縮することが可能となる。
【0130】
<Sample to chunk access atomの構造>
Sample to chunk atomに対応する補助アクセステーブルSample to chunk access atomは、図4に示すような構造を有しており、Sample to chunk atomにおけるテーブルの複数エントリの累積情報を1つのエントリで管理するものである。
【0131】
本実施形態では、Sample to chunk tableを一回のアクセスでメモリに格納できるテーブルのエントリ数を基準として、補助アクセステーブルを構築する。
【0132】
Sample to chunk access atomは、entry count数分のエントリで構成されるテーブル(Sample to chunk access table)を持つ。各エントリは、Sample to chunk tableにおける累積情報を管理する範囲における最後のエントリ+1を管理するentry num(最初は常にエントリ番号1)、累積情報を求めた範囲の次のチャンク番号を管理するchunk、その範囲におけるサンプル1からの累積合計サンプル数を示すcountで構成される。
【0133】
図5に、図22で示すサンプル、チャンク構造に対応するSample to chunk atomとSample to chunk access atomとのテーブル部分の内容を示す。なお、ここでも、説明を簡略化するために、Sample to chunk tableにおいて一度にメモリに格納できるエントリ数を3エントリと想定している。実際には、このエントリ数はメモリの大きさに依存し、例えば、1000エントリといった数になる。
【0134】
Sample to chunk access tableの1エントリ目では、Sample to chunk tableのエントリ1〜3までの累積情報を管理している。つまり、エントリ1においては、累積情報を管理している範囲の次のチャンク番号6、チャンク1からチャンク5までの累積サンプル数9、次のSample to chunk tableのエントリが4であることを示す。
【0135】
同様に、エントリ2では、Sample to chunk tableのエントリ1〜6までの累積情報を管理する。つまり、次のチャンクが9、累積15サンプル、次のSample
to chunk tableのエントリは7であることを示す。
【0136】
本実施形態のデータ管理方法では、以上のような構成の補助アクセステーブルSample to chunk access atomを用いることによって、任意のサンプル番号に対応するチャンク情報を取得する際には、テーブルのcountのフィールドから目的のサンプルが含まれるエントリを探し出し、そのテーブルのエントリの情報に基づいて、ダイレクトにSample to chunk tableの任意のエントリからの一連の情報をメモリに格納することができる。
【0137】
これにより、Sample to chunk atomのテーブルの先頭から順番に情報を読み出す必要が無くなり、処理時間を大幅に短縮することが可能となる。
【0138】
<Sync sample access atomの構造>
Sync sample atomに対応する補助アクセステーブルSync sample access atomは、図6に示すような構造を有しており、Sync sample tableにおいて一定間隔の情報を抜き出し管理するものである。
【0139】
本実施形態のデータ管理方法においては、Sync sample atomを一回のアクセスでメモリに格納できるテーブルのエントリ数を基準として、補助アクセステーブルを構築する。
【0140】
Sync sample access atomは、entry count数分のエントリで構成されるテーブル(Sync sample access table)を持つ。各エントリは、Sync sample tableのエントリ番号を管理するentry num、Sync sample tableにおけるentry num番目のsync sample numberを管理するsync num、Sync sample tableにおけるentry num−1番目のsync sample numberを管理するprev sync numで構成される。
【0141】
図7に、図22で示すサンプル、チャンク構造に対応するSync sample atomおよびSync sample access atomのテーブル部分の内容を示す。なお、ここでも、説明を簡略化するために、Sync sample atomにおいて一度にメモリに格納できるエントリ数を3エントリと想定している。実際には、このエントリ数はメモリの大きさに依存し、例えば、1000エントリといった値になる。
【0142】
Sync numには、Sync sample tableのエントリ1のSample numberである1、prev sync numには、1つ前のエントリが存在しないためにnull、entry numには、エントリ1に注目しているので1がそれぞれ格納されている。
【0143】
同様に、エントリ2では、Sync sample tableのエントリ4の情報を管理する。つまり、エントリ4においては、sync numには6、prev sync numには1つ前のエントリ(エントリ3)のSample numberである4、entry numにはエントリ4に注目しているので4がそれぞれ格納される。
【0144】
本実施形態のデータ管理方法では、以上のような構成のSync sample to access atomを用いることにより、テーブルのsync numのフィールドから目的のサンプルが含まれるエントリを探し出し、そのテーブルのエントリの情報からダイレクトにSync sample tableの任意のエントリからの一連の情報をメモリに格納するため、任意のサンプルが単独でデコードできるか否かについて調べることができる。
【0145】
これにより、Sync sample atomのテーブルの先頭から順番に情報を読み出す必要が無くなり、処理時間を大幅に短縮することが可能となる。
【0146】
本実施形態のデータ管理方法では、以上のように、各種の補助アクセステーブルを用いることによって、例えば、図8に示すTime to sample atomから、補助アクセステーブルであるtime to sample access atomの情報に基づいて、Time to sample tableにおける目的のエントリが含まれる情報を1回のロードで読み出すことが可能となる。これにより、各テーブルの先頭から順番に情報を読み出して所望の情報を探す必要はなく、補助アクセステーブルを介して直接的に所望の情報を読み出して、再生指示を受けてから実際に再生が開始されるまでの時間を短縮できる。
【0147】
<QuickTimeファイルの管理情報の一般的な読み込み>
ここで、以上のような構成の補助アクセステーブルを用いて、実際にメモリに対して管理情報を読み込む際の一般的な処理について、図9を用いて説明すれば以下の通りである。
【0148】
まず、ステップ(以下、Sと示す)1000において、再生する情報を記録した目的のQuickTimeファイルをオープンする。
【0149】
まず、S1001において、現在位置より8byteのデータ(atom header)を記録媒体から読み出す。
【0150】
S1002においては、現在位置がファイルの終端であるか否かについて確認し、ファイルの終端である場合には、ステップS1008において、QuickTimeファイルにおける必須atomがメモリにロードできたか否かについて確認する。ここで、QuickTimeファイルでないファイルをオープンしていた場合は、この段階で無効ファイルであることが判定される。S1008において、必須atomが全て存在する場合には正常終了し、必須atomが全て存在していなかった場合には、S1009においてエラー処理を行い、処理を終了する。
【0151】
一方、S1002において、現在位置がファイルの終端でないと判断された場合には、S1003において、読み出した8byte(atom header)からatomのサイズとatomの種別を把握する。
【0152】
S1004において、現在処理対象のatomが、例えば、Movie atom、Track atom、Media atom等のコンテナタイプのatomと判定された場合には、S1001に戻り、次の8byteを記録媒体から読み出して、処理を継続する。
【0153】
一方、S1004において、コンテナタイプのatomと判定されなかった場合には、S1005において、データを読み出す必要のあるatomタイプであるか否かについての判定が行われる。
【0154】
ここで、読み出す必要のないatom(例えば、未知のatomなど)と判定された場合には、S1007において、現在位置を次ぎのatom headerの位置までシークし、S1001に戻って次の8byteを読み出し、処理を継続する。なお、次のatom headerの位置までのシークは、現在のatom headerの先頭から、atomのサイズ分シークすることによって実現できる。
【0155】
一方、S1005において、読み出す必要のあるatomタイプと判定された場合には、S1006において、atom情報を記録媒体から適切なメモリ空間に読み出す。読み出すデータ量は、現在のatom headerの先頭から、atomのサイズ分のデータを読み出すことになる。そして、S1001に戻り、次の8byteを読み出して、処理を継続する。
【0156】
上述した図9に示す処理は、QuickTimeファイルの管理情報を読み出す際の一般的な処理の流れの概要であるが、本発明のSample Table情報を分割読み出しする場合には、図9に示すS1006におけるatom情報を記録媒体から読み出し、メモリに格納する処理を行う際に特別な処理を行う必要がある。
【0157】
<Sample Tableの分割読み出し処理>
そこで、この図9に示したS1006に関し、本実施形態のデータ管理方法を適用した場合の処理について、図10を用いて説明すれば以下の通りである。
【0158】
S1100において、アクセスを行っているatomが、分割読み出しの対象としてのatomであるか否かについて判定を行う。ここで、分割読み出しの対象でない場合には、S1103においてatom情報を記録媒体から読み出し処理を終了する。つまり、図9におけるS1006と同じ処理を行う。一方、S1100において、分割読み出し対象のatomと判定された場合、つまり、Time to sample atom、Sample to chunk atom、Sync Sample atomの何れかのatomにアクセスしている場合には、S1101において、atom headerで示されるサイズ情報より全てのテーブル情報がメモリにロードできるか否かについて判定を行う。
【0159】
ここで、全てのテーブルに対応する情報をメモリにロードできる場合には、S1102において、管理情報を全てメモリに読み出したことを示すために、メモリモードを一括モードにセットし、S1103において、atomに格納された情報を全てメモリに読み出し、処理を終了する。
【0160】
一方、S1101において、全てのテーブルの内容をメモリにロードできないと判定された場合、つまり、atom headerのサイズ情報が、確保されているメモリ量よりも多い場合には、S1104において、補助アクセステーブルが存在するか否かについて調べる。ここで、補助アクセステーブルが存在しない場合には、S1108において、後段にて詳述する補助アクセステーブルの生成を行う。一方、補助アクセステーブルが存在している場合には、S1105へ進む。
【0161】
なお、S1104およびS1108における処理については、Sample Table情報を読み出す際に、アクセステーブルの存在を把握していなければならない。例えば、この補助アクセステーブルがSample Tableよりもファイルの後に記録されているような場合には、判定を行うことができない。よって、このような場合には、全ての管理情報を読み終わった段階で、分割読み込みの対象となったatomが存在する場合において対応する補助アクセステーブルが存在するか否かについて調べ、ここで存在しない場合に補助アクセステーブルを生成する処理を行えばよい。
【0162】
S1105においては、分割読み出しを行うテーブルの内、メモリに格納できる分だけをロードする。
【0163】
S1106においては、管理情報が全てメモリに読み出せなかったことを示すために、メモリモードを分割モードにセットする。
【0164】
S1107においては、次のatom headerの位置までシークして、処理を終了する。つまり、読み出せなかったテーブルのデータ量分だけシークすることによって、次のatom headerの位置にシークすることが可能である。
【0165】
本実施形態のデータ管理方法では、以上のような処理を行うことにより、Sample Table情報を分割して読み出すことができる。
【0166】
<Time to sample access atomの生成>
続いて、Time to sample access atomを生成する際の処理の流れについて、図11を用いて説明すれば以下の通りである。
【0167】
S1200においては、分割読み出しする単位nを決定する。nは一度にメモリにロードするテーブルのエントリ数を指す。例えば、一度に100エントリをメモリに格納する場合にはn=100になる。Time to sample tableの1エントリに必要なメモリ量は8バイトであるから、テーブルをロードするのに必要なメモリ量は8バイト×nになる。
【0168】
S1201においては、Time to sample atomの基本部分、具体的には、atom headerの次に格納された情報からTime to sample tableまでの情報を読み出す。
【0169】
S1202においては、変数の初期化を行う。
【0170】
S1203においては、変数kがTime to sample tableのエントリ数を超えたか否かについて判定を行う。ここで、変数kがTime to sample tableのエントリ数を超えている場合には、Time to sample access atomの情報を全て生成したことを意味しているため、このまま処理を終了する。なお、生成したTime to sample access atomは、Track atom下のUser defined data atom内にAccess table atomの一部として記録される。
【0171】
一方、S1203において、変数kがTime to sample tableのエントリ数を超えていない場合、つまり、全てのTime to sample access tableのエントリ生成が完了していない場合には、S1204において、次のnエントリ分のTime to sample tableの情報を読み出す。
【0172】
S1205においては、Counttmpおよびdeltatmp変数を初期化する。
【0173】
S1206においては、ロードしたTime to sample tableの全てのエントリに対して、繰り返しが完了したか否かについて判定を行い、繰り返しが完了していない場合には、S1207において、counttmpの値に現在注目しているTime to sample tableのI番目のエントリのsample count値を加算する。S1208において、同様にdeltatmpにsample deltaの値を加算する。すなわち、S1207およびS1208においては、メモリにロードしたTime to sample tableの累積情報を生成している。
【0174】
一方、S1206において、繰り返しが完了したと判定された場合には、S1209において、Time to sample access tableのエントリのcountを生成する。具体的には、ひとつ前のエントリのcount値(一つ前までの累積値)に、メモリにロードしたTime to sample table情報の累積合計値counttmpを加算する。
【0175】
S1210においては、同様に、Time to sample access tableのエントリのdeltaを生成する。具体的には、ひとつ前のエントリのdelta値(一つ前までの累積値)に、メモリにロードしたTime to sample table情報の累積合計値deltatmpを加算する。
【0176】
S1211においては、現在注目しているTime to sample access tableのエントリ番号を表すjに1を加算し、現在注目しているTime to sample tableのエントリ番号を示すkにメモリに読み出したエントリ数nを加算する。
【0177】
S1212においては、Time to sample access tableのentry numにtime to sample tableのエントリ番号kに1を加算した値を代入し、S1203に戻って処理を繰り返す。
【0178】
以上のように、Time to sample access atomの情報を全て生成したことが分かるまで繰り返し図11に示す処理を行うことで、Time to sample access atomを生成できる。
【0179】
<Sample to chunk access atomの生成>
続いて、Sample to chunk access atomを生成する際の処理の流れについて、図12を用いて説明すれば、以下の通りである。
【0180】
S1300においては、分割読み出しする単位nを決定する。なお、nは一度にメモリにロードするテーブルのエントリ数を指す。例えば、一度に100エントリをメモリに格納する場合にはn=100となる。Sample to chunk tableの1エントリに必要なメモリ量は12バイトなので、テーブルをロードするのに必要なメモリ量は12バイト×nになる。
【0181】
S1301においては、Sample to Chunk atomの基本部分、具体的には、atomheaderの次に格納された情報から、Sample to chunk tableまでの情報を読み出す。
【0182】
S1302においては、変数の初期化を行う。
【0183】
S1303においては、変数kがSample to chunk tableのエントリ数を超えたか否かについて判定を行う。ここで、変数kがSample to chunk tableのエントリ数を超えている場合には、Sample to chunk access atomの情報を全て生成したことを意味するため、そのまま処理を終了する。なお、生成したSample to chunk access atomは、Track atom下のUser defined data atom内にAccess table atomの一部として記録する。
【0184】
一方、S1303において、変数kがSample to chunk tableのエントリ数を超えていない場合、つまり、全てのSample to chunk access atomのエントリ生成が完了していない場合には、S1304において、次のnエントリ分のSample
to chunk tableの情報を読み出す。
【0185】
S1305においては、Counttmp変数を初期化する。
【0186】
S1306においては、ロードしたSample to chunk tableの全てのエントリに対して繰り返しが完了したか否かについて判定を行う。ここで、繰り返しが完了していない場合には、S1307において、counttmpの値に現在注目しているSample to chunk tableのエントリと次のエントリのfirst chunkの値の差、つまりチャンク数を求めたものに、チャンク中のサンプル数を管理しているsamples per chunkの値を掛け合わせたものを足し合わせる。すなわち、S1307においては、メモリにロードしたSample to chunk tableの累積情報を生成している。
【0187】
一方、S1306において繰り返しが完了したと判定された場合には、S1308において、Sample to chunk access tableのエントリのcountを生成する。具体的には、ひとつ前のエントリのcount値(一つ前までの累積値)に、メモリにロードしたSample to chunk table情報の累積合計値counttmpを足し合わせる。
【0188】
S1309においては、現在注目しているSample to chunk access tableのエントリ番号を表わすjに1を加算し、該Sample to chunk tableのエントリ番号を示すkにメモリに読み出したエントリ数nを加算する。
【0189】
S1310においては、Sample to chunk access tableのentry numにSample to chunk tableのエントリ番号kに1を加算した値を代入する。
【0190】
S1311においては、Sample to chunk access tableのchunkにSample to chunk tableにおけるentry num番目のエントリのfirst chunkの値を代入した後、S1303に戻って、処理を繰り返す。
【0191】
以上のように、Sample to chunk access atomの情報を全て生成したことが分かるまで、繰り返し図12に示すような処理を行うことで、Sample to chunk access atomを生成できる。
【0192】
<Sync sample access atomの生成>
続いて、Sync sample access atomを生成する際の処理の流れについて、図13を用いて説明すれば、以下の通りである。
【0193】
S1400においては、分割読み出しする単位nを決定する。nは一度にメモリにロードするテーブルのエントリ数を指す。例えば、一度に100エントリをメモリに格納する場合においては、n=100となる。Sync sample tableの1エントリに必要なメモリ量は4バイトなので、テーブルをロードするのに必要なメモリ量は4バイト×nである。
【0194】
S1401においては、Sync sample atomの基本部分、具体的には、atom headerの次に格納された情報からSync sample tableまでの情報を読み込む。
【0195】
S1402においては、変数の初期化を行う。
【0196】
S1403においては、変数kがSync sample tableのエントリ数を超えたか否かについて判定を行う。ここで、変数kがSync sample tableのエントリ数を超えている場合には、Sync sample access atomの情報を全て生成したことを意味するため、このまま処理を終了する。なお、生成したSync sample access atomはTrack atom下のUser defined data atom内にAccess Table atomの一部として記録する。
【0197】
一方、S1403において、変数kがSync sample tableのエントリ数を超えていない場合、つまり、全てのSync sample access atomのエントリ生成が完了していないと判定された場合には、S1404に進む。
【0198】
S1404においては、k−1が1以上であるか否かについて判定を行う。ここで、Kが1の場合には、一番先頭のテーブルを検出するための処理を行うため、S1411において、Sync sample access tableのエントリprev sync numに前のsync sample情報がないことを示すnullを代入して、S1407へ進む。
【0199】
一方、S1404において、Kが1以外である場合には、S1405において、(K−1)番目のSync sample tableのエントリを読み出し、S1406において、prev sync numに読み出した(K−1)番目のエントリの情報を代入する。
【0200】
S1407においては、K番目のSync sample tableのエントリを読み出す。
【0201】
S1408においては、読み出したK番目のエントリをsync numに代入する。
【0202】
S1409においては、Sync sample access tableのエントリentry numにKを代入する。
【0203】
S1410においては、現在注目しているSync sample access tableのエントリ番号を表わすjに1を加算し、現在注目しているSync sample tableのエントリ番号を示すKにnを加算し、次にアクセスするエントリ番号を更新する。
【0204】
以上のように、Sync sample access atomの情報を全て生成したことが分かるまで、繰り返し図12に示すような処理を行うことで、Sync sample access atomを生成できる。
【0205】
<補助アクセス情報の記録>
本実施形態のデータ管理方法では、図11〜図13に示すような補助アクセステーブルの生成方法に従って生成した各補助アクセステーブルについて、この補助アクセステーブルの生成処理はトラック単位で行われるため、図1に示す補助アクセステーブルは、トラック毎にTrack atomの下層のUser defined data atomの中にそれぞれ記録される。
【0206】
Time to sample access atom、Sample to chunk access atom、Sync sample access atomにそれぞれ生成した補助アクセステーブルは、コンテナatomであるAccess Table atomに格納され、User defined data atom内に記録される。
【0207】
次に、以上のように、補助アクセス情報が記録された補助アクセステーブルを備えたQuickTimeファイルに対して、任意の時間から再生を開始するランダムアクセスを行う際の処理について説明すれば、以下の通りである。
【0208】
<Time to sample atomからの情報の取得方法>
まず、本発明のデータ管理方法における、Time to sample atomから必要な情報を取得する処理について、図16を用いて説明する。Time to sample atomは、図34を用いて説明したように、指定した再生時刻に対応したサンプル番号とそのサンプルの再生時間長を取得するための管理情報とを格納している。
【0209】
S1500においては、変数smpnum、time、jを初期化する。
【0210】
S1501においては、注目しているトラックのUser defined data atom内のAccess table atomに、Time to sample access atomが存在するか否かについて調べる。
【0211】
これは、分割読み出しモードでは、必ずTime to sample access atomが存在することを前提とした処理であり、存在するか否かについて調べているのは、Timeto sample atomのテーブル部分が小さい場合に、全ての情報をメモリにロードできているか否かについて調べるためである。なお、Time to sample atomの情報が全てメモリにロードできない状況であって、かつTime to sample access atomが存在しないような場合には、図11に示すフローチャートに従って補助アクセステーブルを生成してもよい。
【0212】
上記S1501において、補助アクセステーブルが存在しない場合は、S1505へ進む。一方、補助アクセステーブルが存在する場合には、S1502において、Time to sample access tableのエントリ数に相当する分だけ繰り返し処理を行う。
【0213】
このとき、全エントリについて調査が終了した場合には、目的のエントリが探し出せなかったことを意味するため、S1512においてエラー処理を行い、処理を終了する。
【0214】
一方、全てのエントリについて調査が終わっていない場合には、S1503において、指定した再生時刻intimeとTime to sample access tableのエントリのdeltaとを比較する。ここで、deltaの方がintimeより小さい場合には、S1502に戻って処理を繰り返す。一方、deltaがintimeより大きい場合には、S1504へ進む。
【0215】
S1504においては、変数timeにTime to sample access tableにおける1つ前のエントリのdeltaを、変数smpnumにtime to sample access tableにおける1つ前のエントリのcountを、jにtime to sample access tableにおける1つ前のエントリのentry numの値をそれぞれ代入する。
【0216】
S1505においては、Time to sample tableのj番目のエントリがメモリ上に存在するか否かについて調べる。ここで、Time to sample tableのj番目のエントリがメモリ上に存在する場合にはS1507へ進む。一方、存在しない場合には、S1506において、Time to sample tableから、Time to sample access tableのentry num[i−1]番目からentry num[i]番目のエントリを記録媒体から読み出して、メモリにロードする。
【0217】
S1507においては、注目しているTime to sample tableのj番目のエントリのsample countだけ処理を繰り返し、繰り返しが完了するとS1510へ進む。なお、繰り返しが完了していない場合には、S1508において、指定した再生時刻intimeが変数timeにTime to sample tableのj番目のエントリのsample deltaを足した値より小さいか否かについて判定を行い、小さいと判定された場合には、目的のサンプルが見つかったことを意味するため、ここで処理を終了する。このとき、指定した再生時刻intimeに対応するサンプル番号は、変数smpnumの値であり、サンプルの再生時間長は、Time to sample tableのj番目のエントリのsample delta値である。
【0218】
一方、S1508において、指定した再生時刻intimeが変数timeにTime to sample tableのj番目のエントリのsample deltaを足した値より大きいと判定された場合には、S1509において、変数timeにj番目のエントリのsample deltaの値を加算し、変数smpnumに1を加算し、S1507に戻って処理を繰り返す。
【0219】
S1510においては、現在注目しているTime to sample tableのエントリ番号であるjに1を加算する。
【0220】
S1511においては、jがTime to sample tableの総エントリ数を超えているか否かについて判定を行い、総エントリ数を超えている場合には、指定した時間の情報が無かったことを意味するため、S1512においてエラー処理を行い、処理を終了する。一方、S1511において、総エントリ数を超えていない場合には、S1507に戻って処理を繰り返す。
【0221】
以上のように、本実施形態のデータ管理方法では、QuickTimeファイルのTime to sample atomに格納された情報を効率よく取得することができる。
【0222】
<Sample to chunk atomからの情報の取得方法>
続いて、本実施形態のデータ管理方法により、Sample to chunk atomから必要な情報を取得する処理の流れについて、図15を用いて説明すれば以下の通りである。
【0223】
Sample to chunk atomは、図34を用いて説明したように、指定したサンプル番号に対応したチャンク番号とそのチャンク中のサンプル数などを取得するための管理情報である。
【0224】
S1600においては、変数i、chktmp、smptmpを初期化する。
【0225】
S1601においては、注目しているトラックのUser defined data atom内のAccess table atomにSample to chunk access atomが存在するか否かについて調べる。
【0226】
なお、これは、分割読み出しモードでは、必ずSample to chunk access atomが存在することを前提とした処理であって、存在するか否かについて調べているのは、Sample to chunk atomのテーブル部分が小さい場合に、全てメモリにロードできているか否かについて調べるためである。また、Sample to chunk atomの情報が全てメモリにロードできない状況であって、かつ、Sample to chunk access atomが存在しないような場合においては、図12に示した方法により補助アクセステーブルを生成してもよい。
【0227】
上記S1601において、補助アクセステーブルが存在しない場合には、S1605へ進む。一方、補助アクセステーブルが存在する場合には、S1602において、Sample to chunk access tableのエントリ数分繰り返し処理を行う。
【0228】
ここで、全エントリについて調査が終わってしまった場合には、目的のエントリが探せなかったことを意味するため、S1612においてエラー処理を行い、処理を終了する。一方、全てのエントリについて調査が終わっていない場合には、S1603において、指定したサンプル番号smpnumと、Sample to chunk access tableのエントリのcountとを比較する。ここで、countの方がsmpnumより小さい場合には、S1602に戻って処理を繰り返す。一方、countがsmpnumより大きい場合には、S1604へ進む。
【0229】
S1604においては、変数chktmpにSample to chunk access tableにおける1つ前のエントリのchunkを、変数smptmpにSample to chunk access tableにおける1つ前のエントリのcountを、jにSample to chunk access tableにおける1つ前のエントリentry numの値をそれぞれ代入する。
【0230】
S1605においては、Sample to chunk tableのj番目のエントリがメモリ上に存在するか否かについて調べる。ここで、存在する場合にはS1607に進み、存在しない場合には、S1606において、Sample to chunk tableから、Sample to chunk access tableのentry num[i−1]番目からentry num[i]番目のエントリを記録媒体から読み出してメモリにロードする。
【0231】
S1607においては、注目しているSample to chunk tableのj番目のエントリのfirst chunkからj+1番目のエントリのfirst chunkの値まで処理を繰り返し、繰り返しが完了した場合には、S1610へ進む。一方、繰り返しが完了していない場合には、S1608において、指定したサンプル番号が、変数smptmpにSample to chunk tableのj番目のエントリのsample per chunkの値を加算した値より小さいか否かについて判定を行う。
【0232】
ここで、指定したサンプル番号が、変数smptmpにSample to chunk tableのj番目のエントリのsample per chunkの値を加算した値より小さいと判定された場合には、目的のチャンク情報が見つかったことを意味するため、このまま処理を終了する。このとき、指定したサンプル番号に対応するチャンク番号は変数Kの値であり、チャンク中のサンプル数はSample to chunk tableのj番目のエントリのsamples per chunkの値である。一方、大きいと判定された場合には、S1609において変数smptmpの値にj番目のエントリのsamples per chunkの値を足し合わせ、S1607に戻って処理を繰り返す。
【0233】
S1610においては、現在注目しているSample to chunk tableのエントリ番号であるjに1を加算する。
【0234】
S1611においては、jがSample to chunk tableの総エントリ数を超えているか否かについて判定を行う。ここで、jがSample to chunk tableの総エントリ数を超えていると判定された場合には、指定したサンプルの情報が無かったことを意味するため、S1612においてエラー処理を行って処理を終了する。一方、S1611において、jがSample to chunk tableの総エントリ数を超えていないと判定された場合には、S1607に戻って処理を繰り返す。
【0235】
本実施形態のデータ管理方法においては、以上のような処理を行うことにより、QuickTimeファイルのSample to chunk atomに格納された情報を効率よく取得できる。
【0236】
<Sync sample atomからの情報の取得方法>
本実施形態のデータ管理方法におけるSync Sample atomから必要な情報を取得する処理について、図16を用いて説明すれば以下の通りである。
【0237】
なお、Sync sample atomは、図34を用いて説明したように、指定したサンプル番号のサンプルが単独でデコード可能か否かについて調べるための管理情報である。
【0238】
S1700においては、変数iを初期化する。
【0239】
S1701においては、注目しているトラックのUser defined data atom内のAccess table atomにSync sample access atomが存在するか否かについて調べる。ここでは、分割読み出しモードの場合には、必ずSync sample access atomが存在することを前提にしており、存在するか否かについて調べているのは、Syncsample atomのテーブル部分が小さく全てメモリにロードできているかどうかを調べるためである。なお、処理によっては、Sync sample atomの情報が全てメモリにロードできない状況であって、かつ、Sync sample access atomが存在しない場合に、上述した図13に示す方法により補助アクセステーブルを生成してもよい。
【0240】
ここで、注目しているトラックのUser defined data atom内のAccess table atomにSync sample access atomが存在しない場合には、S1705へ進む。
【0241】
一方、注目しているトラックのUser defined data atom内のAccess table atomにSync sample access atomが存在する場合には、S1702において、Sync sample access tableのエントリ数分繰り返し処理を行う。
【0242】
このとき、全エントリについて調査が終わってしまった場合には、目的のエントリが探し出せなかったことを意味するため、S1711においてエラー処理を行って処理を終了する。一方、全てのエントリについて調査が終わっていない場合には、S1703において、指定したサンプル番号smpnumとSync sample access tableのエントリのsync numとを比較する。
【0243】
比較した結果、sync numの方がsmpnumより小さい場合には、S1702に戻って処理を繰り返す。一方、sync numがsmpnumより大きい場合には、S1704に進む。
【0244】
S1704においては、Sync sample access tableにおける1つ前のエントリのentry numの値をjに代入する。
【0245】
S1705においては、Sync sample tableのj番目のエントリがメモリ上に存在するか否かについて調べ、存在する場合にはS1707に進む。一方、存在しない場合は、S1706において、Sync sample tableから、Sync sample access tableのentry num[i−1]からentry num[i]番目のエントリを記録媒体より読み出し、メモリにロードする。
【0246】
S1707においては、指定したサンプル番号smpnumがSync sample tableのj番目のエントリのsample numberと一致するか否かについて判定を行う。
【0247】
ここで、一致する場合には、指定したサンプルが単独でデコード可能であることを意味するため処理を終了する。一方、一致しない場合には、S1708において、指定したサンプルのサンプル番号smpnumとSync Sample tableのj番目のエントリのsample numberとを比較する。ここで、smpnumの方が小さい場合には、指定したサンプルは単独でデコードできないことを意味するため、処理を終了する。一方、大きい場合には、S1709において、注目しているエントリ番号jに1を足し合わせる。
【0248】
S1710においては、jがSync sample tableの総エントリ数を超えているか否かについて判定を行う。ここで、超えている場合には、指定したサンプルの情報が無かったことを意味するため、S1710においてエラー処理を行って処理を終了する。一方、超えていない場合には、S1707に戻って処理を繰り返す。
【0249】
本実施形態のデータ管理方法では、以上のような処理を行うことにより、QuickTimeファイルのSync sample atomに格納された情報を効率よく取得できる。
【0250】
本実施形態のデータ管理方法は、以上のように、Time to sample access atom、Sample to chunk access atom、Sync sample access atomのような補助アクセステーブルを設けることによって、任意の時間から再生を開始するランダムアクセスを行う際に、Time to sample table、Sample to chunk table、Sync sampletableのそれぞれにおいて、テーブルの先頭から順番に目的の情報を探し出すまで、繰り返し読み出す必要がなくなる。よって、再生開始までの処理時間を大幅に短縮することが可能となる。また、読み出す管理情報が記録されている記録媒体が、光ディスクなどシーク時間(アクセス時間)やデータの読み出しレートの遅い媒体においては、さらに効果が大きくなる。
【0251】
また、Time to sample access table、Sample to chunk access table、Sync sample access tableの各エントリについて、それぞれ、Time to sample table、Sample to chunk table、Sync Sample tableを、再生機器のメモリに分割ロードする単位で生成することによって、補助アクセステーブルの1つのエントリが格納している累積情報と、主のテーブルの分割読み出しする単位と一致するため、再生機器等メモリへ効率よく読み出しを行うことが可能となる。
【0252】
<バリエーション>
本実施形態のデータ管理方法では、上述したように、補助アクセステーブルにおけるtable情報のエントリは、主の管理テーブルを分割読み出しする単位を基準に生成されている。
【0253】
例えば、図3(図5,図7も同様)に示すように、Time to sample tableを3エントリ単位で記録媒体から分割読み出しするような場合には、Time to sampleaccess tableではTime to sample tableの3エントリ単位でテーブルの先頭からの累積情報を管理している。
【0254】
このような構成にすることによって、補助アクセステーブルに格納する情報の単位(エントリ数)が、分割読み出しする単位(エントリ数)と一致するため、効率よく情報の分割読み出しを行うことができる。
【0255】
ここで、補助アクセステーブルにおけるtable情報のエントリ生成方法として、主の管理テーブルにアクセスするためのインデックス情報ができるだけ等間隔に配置されるように設定する方法について説明する。
【0256】
<Time to sample access atomのバリエーション>
まず、Time to sample access atomとTime to sample tableとの関係について、図17を用いて説明すれば以下の通りである。
【0257】
ここでは、約500time unit毎に対応するTime to sample tableのエントリにアクセスできるように、Time to sample access tableのエントリを生成している。
【0258】
Time to sample access tableのdeltaは、先頭からの累積再生時間長を表すフィールドであるため、約500time unit単位で数字が増えている。ただし、上記deltaは500time unitぴったりで区切れないため、500time unitに一番近い時間情報が格納されている。Entry numには、対応するTime to sample tableのエントリ番号、countには、先頭からの累積サンプル数が管理されている。
【0259】
例えば、Time to sample access tableの1エントリ目では、累積再生時間長delta=480に対応する、Time to sample tableのエントリ番号はentry num=4、エントリ番号1〜3までに、累積5サンプル存在することを表している。また、2エントリ目では、累積再生時間長delta=865に対応する、Time to sample tableのエントリ番号はentry num=6、エントリ番号1〜5までに累積9サンプル存在することを表している。
【0260】
なお、補助テーブルの作成方法やアクセス方法については、既に説明した方法と基本的な考えは同一であるため、説明を省略する。
【0261】
<Sample to chunk access atomのバリエーション>
次に、Sample to chunk access atomとSample to chunk tableとの関係について、図18を用いて説明すれば以下の通りである。
【0262】
ここでは、約5サンプル毎に対応するSample to chunk tableのエントリにアクセスできるように、Sample to chunk access tableのエントリを生成している。
【0263】
Sample to chunk access tableのcountは、先頭からの累積サンプル数を表すフィールドであるため、約5サンプル単位で数字が増えている。ただし、countは、5サンプルぴったりで区切れないため、5サンプルに一番近い情報が格納されている。Entry numには、対応するSample to chunk tableのエントリ番号、chunkには対応するSample to chunk tableのfirst chunkの値を管理している。
【0264】
例えば、Sample to chunk access tableの1エントリ目では、累積サンプル数=3に対応する、Sample to chunk tableのエントリ番号はentry num=3、対応するfirst chunkの値であるchunkには3を管理している。
【0265】
また、2エントリ目では、累積サンプル数=12に対応する、Sample to chunk tableのエントリ番号はentry num=5、対応するfirst chunkの値であるchunkには7を管理している。
【0266】
なお、補助テーブルの作成方法やアクセス方法については、既に説明した方法と基本的な考えは同一であるため、上記と同様に説明を省略する。
【0267】
<Sync sample access atomのバリエーション>
さらに、Sync sample access atomとSync sample tableとの関係について、図19を用いて説明すれば以下の通りである。
【0268】
ここでは、約5サンプル毎に対応するSync sample tableのエントリにアクセスできるように、Sync sample access tableのエントリを生成している。
【0269】
Sync sample access tableのsync numは、約5サンプル単位で数字が増えている。ただし、5サンプルぴったりで区切れないため、5サンプルに一番近い情報が格納されている。Entry numには、対応するSync sample tableのエントリ番号、prev sync numには1つ前のsyncサンプルの番号を管理している。
【0270】
例えば、Sync sample access tableの1エントリ目では、sync numには1、Sync sample tableのエントリ番号はentry num=1、prev sync numの値は存在しないことを表すnullを管理している。また、2エントリ目では、sync numには6、Sync sample tableのエントリ番号はentry num=4、prev sync numの値は4であることを管理している。
【0271】
なお、補助テーブルの作成方法やアクセス方法については、既に説明した方法と基本的な考えは同一であるため、上記と同様に説明を省略する。
【0272】
本実施形態のデータ管理方法では、図17〜図19に示すように、主の管理テーブルにアクセスするための補助アクセステーブルによる各エントリを極力等間隔になるように設定しているため、補助アクセステーブルのテーブルにアクセスする際に、先頭から順番にエントリをアクセスしなくても、おおよその見当をつけて目的のエントリにアクセスすることが可能となる。よって、より効率よく所望の情報の読み出しが可能になる。
【0273】
すなわち、例えば、1エントリ10秒単位で管理しているとすれば、100秒に対応するエントリにアクセスしたければ、10エントリ目にアクセスすればよい。
【0274】
これにより、再生しようとする所望の情報に対応する管理情報を早急に探し出すことができ、再生開始までの所要時間を短縮することができる。
【0275】
<整合の検出>
主の管理情報テーブルは解釈でき、本実施形態における補助アクセステーブルを解釈できない実装が、編集処理を行うと主の管理テーブルと補助アクセステーブルとの整合が保てなくなり問題がある。不整合を検出するために、補助アクセステーブルTime to sample access atom、Sample to chunk access atom、Sync sample access atomのそれぞれに、日時を管理するフィールドを追加してもよい。このフィールドには、補助アクセステーブルを作成した時点でのMedia headeratomで管理する変更日時情報を格納するようにする。メディア情報に変更が発生すると、Media Header atomの変更日時情報が書き換わるため、補助アクセステーブルで管理する日時と一致しないことで、不整合を検出することが可能になる。
【0276】
あるいは、各補助アクセステーブルに、対応する主の管理テーブルのエントリ数を管理させてもよい。主の管理テーブルに新たな情報が追加されたり、削除された場合には、主の管理テーブルのエントリ数が変更されるため、補助アクセステーブルで管理するエントリ数と一致しないことで、不整合を検出することが可能になる。
<Fragmented movieへの応用>
録画中の電源遮断等に対応するために導入された概念であるFragmented Movieは、管理情報を分散して管理することを可能とする仕組みである。この機能を用いた場合、Fragmentごとに管理情報を分散記録するが、このときのFragmentの再生時間長に決まりはなく、Fragmentごとに可変であってもよい。このとき、Fragmented Movieファイルの先頭に配置される基本管理情報に、補助アクセステーブルを置く。この補助アクセステーブルでは、各Fragmentと累積再生時間とFragmentの記録位置との対応を管理する。このような補助アクセステーブルを用意することによって、任意の時刻に対応するFragmentを特定し、そのFragmentの記録位置を瞬時に特定することが可能となる。なお、補助テーブルの作成方法やアクセス方法については、既に説明した方法と基本的な考えは同一であるため、上記と同様に説明を省略する。
【0277】
なお、本実施形態では、QuickTimeファイルフォーマットを用いた管理方法について説明したが、本発明はこれに限定されるものではない。例えば、メディアデータにアクセスするための管理情報テーブルにおいて、基準となる時刻等、テーブル中の任意のエントリが何に対応するかを計算などで一意に求められないような構造のファイル等に対しても適用可能である。
【0278】
また、本発明のデータ管理方法は、複数のデータ毎の情報を管理する主の管理テーブルの各エントリが、情報の省略などによって一定の規則に従って構成されないデータ管理方法において、上記主の管理テーブルの各エントリに効率よくアクセスする補助管理テーブルを用意することを特徴とするデータ管理方法と表現することもできる。
【0279】
【発明の効果】
本発明のデータ管理方法は、以上のように、記録媒体から必要な情報を読み出す際には、上記主の管理テーブルに含まれる複数のエントリ分の累積情報を個々のエントリで管理する補助管理テーブルを用いる管理方法である。
【0280】
それゆえ、記録媒体の主の管理テーブルに格納された情報を再生する場合には、補助管理テーブルを介して直接的に所望の情報へアクセスし、該所望の情報を効率よく読み出すことで、再生指示を受けてから実際に再生が開始されるまでの時間を短縮できるという効果を奏する。
【0281】
上記補助管理テーブルが備えている各エントリは、上記主の管理テーブルの分割読み出しを行う複数のエントリ分の累積情報を管理していることがより好ましい。
【0282】
それゆえ、主の管理テーブルから分割読み出しする単位と、補助管理テーブルの1つのエントリに管理されている主の管理テーブルのエントリ数とを一致させることができるため、主の管理テーブルから再生を行う装置等のメモリに対して、さらに効率よく読み出しを行うことができるという効果を奏する。
【0283】
上記補助管理テーブルの各エントリは、上記累積情報が略等間隔で増加していくように、上記主の管理テーブルのエントリ数を区切って形成されていることがより好ましい。
【0284】
それゆえ、補助管理テーブルにおける1エントリの間隔をできる限り等間隔になるように設定することで、おおよその見当をつけて所望の情報が含まれるエントリに対してアクセスすることができる。よって、所望の情報が含まれるエントリにより効率よくアクセスすることができ、再生開始までに要する時間をより短縮できるという効果を奏する。
【0285】
上記主の管理テーブルが分割読み出しの対象となっており、かつ該分割読み出しを行うエントリに対応する補助管理テーブルが存在しない場合には、補助管理テーブルを生成することがより好ましい。
【0286】
それゆえ、分割読み出しを行う主の管理テーブルのエントリに対応する補助管理テーブルが存在していない場合に補助管理テーブルを作成することで、補助管理テーブルの作成を必要最小限にでき、記録する情報量の増大を抑制できるという効果を奏する。
【0287】
上記主の管理テーブルは、QuickTimeファイルフォーマットであることがより好ましい。
【0288】
それゆえ、ビデオデータやオーディオデータ等のメディアデータと管理情報とを備えているQuickTimeファイルフォーマットのうち、管理情報について補助管理テーブルを形成し、該補助管理テーブルを介して所望の情報を含むエントリにアクセスすることで、効率よく所望の情報を取得できるという効果を奏する。
【0289】
上記補助管理テーブルは、時間に関する累積情報を管理していることがより好ましい。
【0290】
それゆえ、任意の時間から再生を開始する、いわゆるランダムアクセスを行う場合でも、主の管理テーブルのエントリに1つずつアクセスして所望の情報を探し出す必要はなく、補助管理テーブルの各エントリに管理されている累積時間情報の中から上記任意の時間が含まれるエントリにアクセスすることで、直接的に所望の情報を取得できるという効果を奏する。
【0291】
上記補助管理テーブルは、サンプルおよびチャンクに関する累積情報を管理していることがより好ましい。
【0292】
それゆえ、任意のサンプル番号に対応するチャンク情報を取得する場合において、補助管理テーブルの各エントリに管理されている累積サンプル情報の中から、所望のサンプルが含まれるエントリを選択してアクセスすることで、直接的に所望の情報を取得できるという効果を奏する。
【0293】
上記補助管理テーブルは、単独でデコード可能なサンプルに関する情報を管理していることがより好ましい。
【0294】
それゆえ、任意のサンプルが単独でデコードできるか否かについて調べる場合において、補助管理テーブルの各エントリに管理されている累積情報の中から、所望のサンプルが含まれるエントリを選択してアクセスすることで、直接的に所望のデコード可能なサンプル情報を取得できるという効果を奏する。
【0295】
本発明のデータ管理装置は、以上のように、記録媒体から必要な情報を読み出す際には、上記主の管理テーブルに含まれる複数のエントリ分の累積情報を個々のエントリで管理する補助管理テーブルを用いる構成である。
【0296】
それゆえ、記録媒体の主の管理テーブルに格納された情報を再生する場合には、補助管理テーブルを介して直接的に所望の情報へアクセスし、該所望の情報を効率よく読み出すことで、再生指示を受けてから実際に再生が開始されるまでの時間を短縮できるという効果を奏する。
【0297】
上記補助管理テーブルが備えている各エントリは、上記主の管理テーブルの分割読み出しを行う複数のエントリ分の累積情報を管理していることがより好ましい。
【0298】
それゆえ、主の管理テーブルから分割読み出しする単位と、補助管理テーブルの1つのエントリに管理されている主の管理テーブルのエントリ数とを一致させることができるため、主の管理テーブルから再生機器等のメモリに対して、さらに効率よく情報の読み出しを行うことができるという効果を奏する。
【0299】
上記補助管理テーブルの各エントリは、上記累積情報が略等間隔で増加していくように、上記主の管理テーブルのエントリ数を区切って形成されていることがより好ましい。
【0300】
それゆえ、補助管理テーブルにおける1エントリの間隔をできる限り等間隔になるように設定することで、おおよその見当をつけて所望の情報が含まれるエントリに対してアクセスすることができる。よって、より効率よく、所望の情報が含まれるエントリにアクセスすることができ、再生開始までに要する時間を短縮できるという効果を奏する。
【0301】
上記主の管理テーブルが分割読み出しの対象となっており、かつ該分割読み出しを行うエントリに対応する補助管理テーブルが存在しない場合には、補助管理テーブルを生成することがより好ましい。
【0302】
それゆえ、分割読み出しを行う主の管理テーブルのエントリに対応する補助管理テーブルが存在していない場合に補助管理テーブルを作成することで、補助管理テーブルの作成を必要最小限にでき、情報量の増大を抑制できるという効果を奏する。
【0303】
上記主の管理テーブルは、QuickTimeファイルフォーマットであることがより好ましい。
【0304】
それゆえ、ビデオデータやオーディオデータ等のメディアデータと管理情報とを備えているQuickTimeファイルフォーマットのうち、管理情報について補助管理テーブルを形成し、該補助管理テーブルを介して所望の情報を含むエントリにアクセスすることで、効率よく所望の情報を取得できるという効果を奏する。
【0305】
本発明のデータ管理プログラムは、以上のように、上記データ管理方法を、コンピュータに実行させる構成である。
【0306】
それゆえ、本発明のデータ管理プログラムをコンピュータに実行させることにより、記録媒体の主の管理テーブルに格納された情報を再生する際に、補助管理テーブルを介して直接的に所望の情報へアクセスし、該所望の情報を効率よく読み出すことで、再生指示を受けてから実際に再生が開始されるまでの時間を短縮できるという効果を奏する。
【0307】
本発明のデータ管理プログラムを記録した記録媒体は、以上のように、上記データ管理プログラムを記録した構成である。
【0308】
それゆえ、本発明の記録媒体をコンピュータに読み取らせることにより、記録媒体の主の管理テーブルに格納された情報を再生する際に、補助管理テーブルを介して直接的に所望の情報へアクセスし、該所望の情報を効率よく読み出すことで、再生指示を受けてから実際に再生が開始されるまでの時間を短縮できるという効果を奏する。
【図面の簡単な説明】
【図1】QuickTimeファイルにおける、Access table atomの配置位置を示す図である。
【図2】Time to sample access atomの構造を示す図である。
【図3】3エントリずつテーブルを読み出す場合のTime to sample access tableとTime to sample tableの関係を示す図である。
【図4】Sample to chunk access atomの構造を示す図である。
【図5】3エントリずつテーブルを読み出す場合のSample to chunk access tableとSample to chunk tableとの関係を示す図である。
【図6】Sync sample access atomの構造を示す図である。
【図7】3エントリずつテーブルを読み出す場合のSync sample access tableとSync sample tableとの関係を示す図である。
【図8】補助アクセステーブルを利用した場合のデータの読み出す様子を示す図である。
【図9】QuickTimeファイルの管理情報を読み込む処理の流れを示す図である。
【図10】分割読み出し対象のatomの管理情報を読み出す際の詳細な処理の流れを示す図である。
【図11】Time to sample atomにおいて、管理情報の分割読み出しを行う処理の流れを示す図である。
【図12】Sample to chunk atomにおいて、管理情報を分割読み出しを行う処理の流れを示す図である。
【図13】Sync sample atomにおいて、管理情報を分割読み出しを行う処理の流れを示す図である。
【図14】Time to sample atomにおいて、サンプル情報を取得する処理の流れを示す図である。
【図15】Sample to chunk atomにおいて、サンプル情報を取得する処理の流れを示す図である。
【図16】Sync sample atomにおいて、サンプル情報を取得する処理の流れを示す図である。
【図17】500time unit単位で補助アクセステーブルを生成する場合のTime to sample access tableとTime to sample tableとの関係を示す図である。
【図18】5サンプル単位で補助アクセステーブルを生成する場合のSample to chunk access tableとSample to chunk tableの関係を示す図である。
【図19】5サンプル単位で補助アクセステーブルを生成する場合のSync sample accesstableとSync sample tableの関係を示す図である。
【図20】従来のQuickTimeファイルの構造を示す図である。
【図21】従来のSample table atomの構造を示す図である。
【図22】従来のサンプルとチャンク構造の例を示す図である。
【図23】従来のTime to sample atomの構造を示す図である。
【図24】従来のTime to sample tableの例を示す図である。
【図25】従来のSample to chunk atomの構造を示す図である。
【図26】従来のSample to chunk tableの例を示す図である。
【図27】従来のSync Sample atomの構造を示す図である。
【図28】従来のSync sample tableの構造を示す図である。
【図29】従来のSample size atomの構造を示す図である。
【図30】従来のSample size tableの例を示す図である。
【図31】従来のChunk offset atomの構造を示す図である。
【図32】従来のChunk offset tableの例を示す図である。
【図33】従来のサンプルとチャンク構造の例を示す図である。
【図34】従来のサンプル情報を取得する際の処理の流れを示す図である。
【図35】従来の管理情報の分割読み出し処理の様子を示す図である。
【符号の説明】
100 Time to sample atom
101 Sample to chunk atom
102 Sample size atom
103 Sync sample atom
104 Chunk offset atom

Claims (15)

  1. 複数のデータ毎の情報を管理する主の管理テーブルを用いて、該主の管理テーブルに含まれるエントリを一定の規則に従うことなく記録した記録媒体から、必要な情報の読み出しを行うデータ管理方法において、
    上記記録媒体から必要な情報を読み出す際には、上記主の管理テーブルに含まれる複数のエントリ分の累積情報を個々のエントリで管理する補助管理テーブルを用いることを特徴とするデータ管理方法。
  2. 上記補助管理テーブルが備えている各エントリは、上記主の管理テーブルの分割読み出しを行う複数のエントリ分の累積情報を管理していることを特徴とする請求項1に記載のデータ管理方法。
  3. 上記補助管理テーブルの各エントリは、上記累積情報が略等間隔で増加していくように、上記主の管理テーブルのエントリ数を区切って形成されていることを特徴とする請求項1に記載のデータ管理方法。
  4. 上記主の管理テーブルが分割読み出しの対象となっており、かつ該分割読み出しを行うエントリに対応する補助管理テーブルが存在しない場合には、補助管理テーブルを生成することを特徴とする請求項1に記載のデータ管理方法。
  5. 上記主の管理テーブルは、QuickTimeファイルフォーマットであることを特徴とする請求項1〜4の何れか1項に記載のデータ管理方法。
  6. 上記補助管理テーブルは、時間に関する累積情報を管理していることを特徴とする請求項1〜5の何れか1項に記載のデータ管理方法。
  7. 上記補助管理テーブルは、サンプルおよびチャンクに関する累積情報を管理していることを特徴とする請求項1〜6の何れか1項に記載のデータ管理方法。
  8. 上記補助管理テーブルは、単独でデコード可能なサンプルに関する情報を管理していることを特徴とする請求項1〜7の何れか1項に記載のデータ管理方法。
  9. 複数のデータ毎の情報を管理する主の管理テーブルを用いて、該主の管理テーブルに含まれるエントリを一定の規則に従うことなく記録された記録媒体から、必要な情報の読み出しを行うデータ管理装置において、
    上記記録媒体から必要な情報を読み出す際には、上記主の管理テーブルに含まれる複数のエントリ分の累積情報を個々のエントリで管理する補助管理テーブルを用いることを特徴とするデータ管理装置。
  10. 上記補助管理テーブルが備えている各エントリは、上記主の管理テーブルの分割読み出しを行う複数のエントリ分の累積情報を管理していることを特徴とする請求項9に記載のデータ管理装置。
  11. 上記補助管理テーブルの各エントリは、上記累積情報が略等間隔で増加していくように、上記主の管理テーブルのエントリ数を区切って形成されていることを特徴とする請求項9に記載のデータ管理装置。
  12. 上記主の管理テーブルが分割読み出しの対象となっており、かつ該分割読み出しを行うエントリに対応する補助管理テーブルが存在しない場合には、補助管理テーブルを生成することを特徴とする請求項9に記載のデータ管理装置。
  13. 上記主の管理テーブルは、QuickTimeファイルフォーマットであることを特徴とする請求項9〜12の何れか1項に記載のデータ管理装置。
  14. 請求項1〜8の何れか1項に記載のデータ管理方法を、コンピュータに実行させることを特徴とするデータ管理プログラム。
  15. 請求項14のデータ管理プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
JP2002332837A 2002-11-15 2002-11-15 データ管理方法およびデータ管理装置、データ管理プログラムならびにこれを記録した記録媒体 Withdrawn JP2004171067A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002332837A JP2004171067A (ja) 2002-11-15 2002-11-15 データ管理方法およびデータ管理装置、データ管理プログラムならびにこれを記録した記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002332837A JP2004171067A (ja) 2002-11-15 2002-11-15 データ管理方法およびデータ管理装置、データ管理プログラムならびにこれを記録した記録媒体

Publications (1)

Publication Number Publication Date
JP2004171067A true JP2004171067A (ja) 2004-06-17

Family

ID=32697743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002332837A Withdrawn JP2004171067A (ja) 2002-11-15 2002-11-15 データ管理方法およびデータ管理装置、データ管理プログラムならびにこれを記録した記録媒体

Country Status (1)

Country Link
JP (1) JP2004171067A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013034226A (ja) * 2012-09-26 2013-02-14 Canon Inc 情報送信装置、その制御方法及びプログラム
CN111209305A (zh) * 2019-11-19 2020-05-29 华为技术有限公司 查询数据的方法、数据节点、分布式数据库、计算设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013034226A (ja) * 2012-09-26 2013-02-14 Canon Inc 情報送信装置、その制御方法及びプログラム
CN111209305A (zh) * 2019-11-19 2020-05-29 华为技术有限公司 查询数据的方法、数据节点、分布式数据库、计算设备
CN111209305B (zh) * 2019-11-19 2023-07-18 华为云计算技术有限公司 查询数据的方法、数据节点、分布式数据库、计算设备

Similar Documents

Publication Publication Date Title
TWI310545B (en) Storage medium storing search information and reproducing apparatus
EP1204974B1 (en) A digital video processing and interface system for video, audio and ancillary data
TWI223801B (en) Apparatus and method for recording data to an information recording medium, and apparatus and method for reproducing data from an information recording medium
US6493504B1 (en) Storage medium, recording apparatus, playback apparatus, recording method, and computer-readable storage medium
US20020108112A1 (en) System and method for thematically analyzing and annotating an audio-visual sequence
WO2001015168A1 (en) A user interface and processing system for digital video, audio and ancillary data
US6925245B1 (en) Method and medium for recording video information
JP2003061041A (ja) 異なるフォーマットで記憶されたコンテンツセグメントの選択を指定するための方法とシステム
CN1998050A (zh) 用于播放多媒体播放列表的方法和装置及其存储介质
JP2001028722A (ja) 動画像管理装置及び動画像管理システム
CN101132508A (zh) 记录与再现设备及方法,影像捕获与记录设备及方法
US8224819B2 (en) Apparatus, method, and program for processing information
JP3152651B2 (ja) 情報記録媒体、情報記録媒体に情報を記録、再生する装置および方法
CN101154427B (zh) 记录和再现装置及记录和再现方法
JP3285029B2 (ja) 記録媒体
KR20080019013A (ko) 저속 검색 저장 장치로부터의 그래픽 검색
JP3164111B2 (ja) 記録方法、記録装置およびコンピュータ読み取り可能な記録媒体
JP3164107B2 (ja) 記録媒体
KR20050041856A (ko) 검색을 위한 메타 정보가 포함된 저장 매체, 재생 장치 및그 재생 방법
JP2002281433A (ja) 動画像検索閲覧編集装置および記録媒体
WO2004112030A1 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
KR100878528B1 (ko) 동영상편집방법 및 그 장치
JP2004171067A (ja) データ管理方法およびデータ管理装置、データ管理プログラムならびにこれを記録した記録媒体
JP3139497B1 (ja) 再生装置、再生方法、およびコンピュータ読み取り可能な記録媒体
JP3329338B1 (ja) 記録方法、記録装置およびコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060207