(57)【特許請求の範囲】
【請求項１】
ディスク上に格納されるファイルにおける実データの記録位置を示す領域識別子をディスク再生時に読み出す領域識別子読み出し手段と、
前記領域識別子読み出し手段により読み出された領域識別子の中から、連続するエクステントを指す複数の領域識別子を取りまとめて１つの領域識別子に置き換え、その領域識別子にて表わされるバイト数をロジカルブロックサイズ(ＬＢＳ)数に変換する置き換え手段と、
前記変換を行う前の領域識別子を格納するために必要となる容量より小さく、かつ前記変換を行った後の前記領域識別子を格納することが可能な容量の領域に、前記置き換え手段により置き換えられた前記領域識別子を格納する格納手段と、
を備えることを特徴とするディスク再生装置。
【請求項２】
前記領域識別子は、ファイルにおける実データの記録位置を示すアロケーションディスクリプタ(ＡＤ)であることを特徴とする請求項１記載のディスク再生装置。
【請求項３】
前記置き換え手段により領域識別子が取りまとめられる前記連続するエクステントは、ディスク再生時に呼び出される順番が連続しており、かつ、当該ディスク上の連続する領域に格納されていることを特徴とする請求項１記載のディスク再生装置。
【請求項４】
ディスク上に格納されるファイルにおける実データの記録位置を示す領域識別子をディスク再生時に読み出す領域識別子読み出し手段と、
前記領域識別子読み出し手段により読み出された領域識別子のサイズを圧縮し、その領域識別子にて表わされるバイト数をロジカルブロックサイズ(ＬＢＳ)数に変換して、前記変換を行う前の領域識別子を格納するために必要となる容量より小さく、かつ前記変換を行った後の前記領域識別子を格納することが可能な容量の領域に、一時的に格納する圧縮格納手段と、
前記圧縮格納手段によりサイズを圧縮して格納された領域識別子に基づいて前記ディスク上に格納されているファイルの実データを読み出す実データ読み出し手段と、
を備えたことを特徴とするディスク再生装置。
【請求項５】
前記圧縮格納手段は、連続するエクステントを指す複数の領域識別子を取りまとめて１つの領域識別子に置き換えることを特徴とする請求項４記載のディスク再生装置。
【請求項６】
ディスク上に格納されるファイルにおける実データの記録位置を示すアロケーションディスクリプタ(ＡＤ)をＵＤＦ(Universal Disk Format)経由で読み出すＡＤ読み出し手段と、
前記ＡＤ読み出し手段により読み出されたＡＤに記録されているバイト数で示されるエクステント長を、ロジカルブロックサイズ(ＬＢＳ)数に変換する変換手段と、
前記変換手段により変換された前記エクステント長で示されるＡＤを格納する格納手段と、
を備え、
前記変換手段は、前記ＡＤ読み出し手段により読み出されたＡＤに記録されているエクステントのロケーションにおけるバイト数を切り詰め、
前記格納手段は、バイト数が切り詰められたＡＤを格納する
ことを特徴とするディスク再生装置。
【請求項７】
前記ＡＤ読み出し手段は、ＤＶＤ-ＶＲディスクのＶＲ_ＭＯＶＩＥ.ＶＲＯファイルのＡＤを読み出すことを特徴とする請求項６記載のディスク再生装置。
【請求項８】
ディスク上に格納されるファイルを再生するコンピュータ装置に対して、
前記ファイルにおける実データの記録位置を示す領域識別子をディスク再生時に読み出す領域識別子読み出し手段と、
前記領域識別子読み出し手段により読み出された領域識別子の中から、連続するエクステントを指す複数の領域識別子を取りまとめて１つの領域識別子に置き換え、その領域識別子にて表わされるバイト数をロジカルブロックサイズ(ＬＢＳ)数に変換する置き換え手段と、
前記置き換え手段により置き換えられた前記領域識別子を、前記変換を行う前の領域識別子を格納するために必要となる容量より小さく、かつ前記変換を行った後の前記領域識別子を格納することが可能な容量の領域に、一時的に格納する格納手段と、
を備えるものとして当該コンピュータ装置を機能させるためのプログラム。
【請求項９】
ディスク上に格納されるファイルを再生するコンピュータ装置に対して、
前記ファイルにおける実データの記録位置を示す領域識別子をディスク再生時に読み出す領域識別子読み出し手段と、
前記領域識別子読み出し手段により読み出された領域識別子のサイズを圧縮し、その領域識別子にて表わされるバイト数をロジカルブロックサイズ(ＬＢＳ)数に変換してメモリの、前記変換を行う前の領域識別子を格納するために必要となる容量より小さく、かつ前記変換を行った後の前記領域識別子を格納することが可能な容量の領域に格納する圧縮格納手段と、
前記メモリに格納された領域識別子に基づいて前記ディスク上に格納されているファイルの実データを読み出す実データ読み出し手段と、
を備えるものとして当該コンピュータ装置を機能させるためのプログラム。
【請求項１０】
ディスク上に格納されるファイルを読み出すファイル読み出し方法であって、
前記ファイルにおける実データの記録位置を示す領域識別子を読み出し、
読み出された前記領域識別子の中から、連続するエクステントを指す複数の領域識別子を取りまとめて１つの領域識別子に置き換え、その領域識別子にて表わされるバイト数をロジカルブロックサイズ(ＬＢＳ)数に変換し、
置き換えられた前記領域識別子を一時的にメモリの、前記変換を行う前の領域識別子を格納するために必要となる容量より小さく、かつ前記変換を行った後の前記領域識別子を格納することが可能な容量の領域に格納し、
前記メモリに格納された前記領域識別子に基づいて前記ファイルの実データを読み出すことを特徴とするファイル読み出し方法。
【請求項１１】
ディスク上に格納されるファイルを読み出すファイル読み出し方法であって、
前記ファイルにおける実データの記録位置を示すアロケーションディスクリプタ(ＡＤ)をＵＤＦ(Universal Disk Format)経由で読み出し、
読み出された前記ＡＤに記録されているバイト数で示されるエクステント長をロジカルブロックサイズ(ＬＢＳ)数に変換し、
変換された前記エクステント長を示すＡＤを一時的にメモリの、前記変換を行う前の領域識別子を格納するために必要となる容量より小さく、かつ前記変換を行った後の前記領域識別子を格納することが可能な容量の領域に格納し、
前記メモリに格納されたＡＤを用いて前記ファイルの実体を読み出すことを特徴とするファイル読み出し方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスクからファイルの実体を読み出すディスク再生装置等に係り、特に、ファイルシステムにおけるファイル情報保持スペースを節約することができるディスク再生装置等に関する。
【０００２】
【従来の技術】
近年、動画、音声、データなどをデジタル記憶することが可能である大容量光ディスクとして、ＤＶＤ(Digital Versatile Disk)が注目されている。このＤＶＤでは、論理フォーマットとして、一般的に、ＩＳＯ１３３４６をベースとするＵＤＦ(Universal Disk Format)が利用されている。このＵＤＦは、例えば、ＤＶＤ-ＲＯＭ、ＤＶＤ-ＲＡＭ等にて採用されているほか、ＣＤ-ＲＯＭ用に規格化したファイルシステムであるＣＤ-ＵＤＦにも採用されており、各種ディスクに対して用いることができる。また、例えば、ビデオレコーディング(ＶＲ)のフォーマットであるＤＶＤ-ＶＲプレーヤにおいても、ディスクに記録されているファイルを読むときに利用されている。
【０００３】
ここで、例えば、システムであるパーソナルコンピュータ(ＰＣ)やＤＶＤプレーヤなどでファイルを読み出す場合に、ＵＤＦに記録されているファイルの実データ(実際のデータ)を指す１個または複数個のアロケーションディスクリプタ(Allocation Descriptors)を一時的にシステム側に保持する必要がある。即ち、領域指定子であるアロケーションディスクリプタにはファイルにおける実データのディスク上の配置が記録されており、システムであるＰＣやＤＶＤプレーヤは、ファイルデータにアクセスするために、アロケーションディスクリプタの内容を一時的にシステム側に保持するメモリなどの記憶領域を備えている。このとき、一般的に、ファイルの実データがメディア(ＨＤＤ、ＤＶＤ-ＲＡＭなど)の連続領域に記録されていた場合であっても、複数のアロケーションディスクリプタを用いて配置が記録されていることがあり得る。
【０００４】
【発明が解決しようとする課題】
ここで、通常、ファイルデータを追うことを想定すると、アロケーションディスクリプタに記録されているエリアに対して直接アクセスするか、またはシステムは、そのファイルのアロケーションディスクリプタを全て取り込むことになる。しかしながら、アロケーションディスクリプタは、膨大な数になる場合があり、特に、アロケーションディスクリプタに記録されているエリアに対して直接アクセスする場合には、メディアへのアクセスが頻繁になることから、データ読み出しのスピード低下を招いてしまう。また、システムがファイルのアロケーションディスクリプタを全て取り込む場合であっても、アロケーションディスクリプタの個数が多くなると記憶領域の確保が保証できず、結果的にはメディアに対して直接アクセスせざるを得なくなる。これはデータアクセス速度の著しい低下を招くこととなり、システムに対して多大な負荷をかけることになる。
【０００５】
ここで、例えば、データがメディア上のある連続領域に記録されており、この領域がＮ個のアロケーションディスクリプタで記述されているとすると、システムが保持しなければならない記憶領域はアロケーションディスクリプタのＮ個分となる。連続領域に記録されている場合には、実際には１個のアロケーションディスクリプタでも記述できることを考えると、非常に冗長なものと言える。
【０００６】
また、ＤＶＤ-ＶＲ規格で記録できるメディアとしては、現在、ＤＶＤ-ＲＡＭ、ＤＶＤ-ＲＷが存在する。アロケーションディスクリプタのタイプは、short_adまたはlong_adと規定されているが、その個数に関する制限は存在していない。このため、プレーヤの設計時において、ファイルを扱う際に必要となる記憶領域の容量(バイト数)は、基本的に最大値以外は特定できず、この値は実装上、現実的でない大きさである。例えば、メディア上に４.７ギガバイト(Gbytes)のデータファイルが存在するとする。このファイルのアロケーションディスクリプタがＤＶＤ-ＲＡＭおよびＤＶＤ-ＲＷのロジカルブロックサイズ(Logical Block Size、以下「ＬＢＳ」と略す)、ＬＢＳ＝２ｋバイト単位で記述されてしまうと、このファイルにおけるアロケーションディスクリプタの個数は、2,294,921個ということになる。仮に、アロケーションディスクリプタがshort_adとすると、１個のshort_adのサイズは８バイトなので、18,359,368バイト(約１８Ｍバイト)ものメモリが必要となる。long_adでは１個のサイズが１６バイトであり、更にその２倍のメモリが必要となってしまう。無論、容量に余裕があればこのまま取り込むことも可能であるが、実装を考慮すると現実的ではない。また、実際の使用状況を加味すると、データが冗長となる面もある。
【０００７】
本発明は、このような技術的課題を解決するためになされたものであって、その目的とするところは、システムにおけるメモリ等のファイル情報保持スペースを節約することにある。
また、他の目的は、ファイルシステムにおけるデータへのアクセスを高速化することにある。
更に、他の目的は、ＤＶＤプレーヤの設計時に、固定容量の確保を可能とすることで、機能の実装を容易化することにある。
【０００８】
【課題を解決するための手段】
かかる目的のもと、本発明が適用されるディスク再生装置は、ＵＤＦ上でファイルの実データの記録位置を示す領域識別子であるアロケーションディスクリプタを読み出してメモリに保持する際に、連続領域を指す複数のアロケーションディスクリプタを取りまとめて１個のアロケーションディスクリプタに置き換えて扱い、さらに、そのアロケーションディスクリプタにて表わされるバイト数をロジカルブロックサイズ(ＬＢＳ)数に変換し、連続するエクステントレコードを合体して、全体のメモリサイズを圧縮することを特徴としている。また、このアロケーションディスクリプタで指されるエクステント長をＬＢＳで表現する等、ＤＶＤ-ＶＲのファイルに関する制約を利用することで、ファイル読み込みのためのメモリを既知の固定サイズで、かつ小さく持たせ、アロケーションディスクリプタの個々のサイズを圧縮することを特徴としている。
【０００９】
即ち、本発明が適用されるディスク再生装置は、ディスク上に格納されるファイルにおける実データの記録位置を示す、アロケーションディスクリプタ(ＡＤ)等の領域識別子をディスク再生時に読み出す領域識別子読み出し手段と、読み出された領域識別子の中から、ディスク再生時に呼び出される順番が連続しており、かつ、このディスク上の連続する領域に格納されている、連続するエクステントを指す複数の領域識別子を取りまとめて１つの領域識別子に置き換え、その領域識別子にて表わされるバイト数をロジカルブロックサイズ(ＬＢＳ)数に変換する置き換え手段と、変換を行う前の領域識別子を格納するために必要となる容量より小さく、かつ変換を行った後の領域識別子を格納することが可能な容量の領域に、置き換えられた領域識別子を格納する格納手段とを備えたことを特徴としている。
【００１１】
また、本発明は、領域識別子読み出し手段により読み出された領域識別子のサイズを圧縮し、その領域識別子にて表わされるバイト数をロジカルブロックサイズ(ＬＢＳ)数に変換して、変換を行う前の領域識別子を格納するために必要となる容量より小さく、かつ変換を行った後の領域識別子を格納することが可能な容量の領域に、一時的に格納する圧縮格納手段と、サイズを圧縮して格納された領域識別子に基づいてディスク上に格納されているファイルの実データを読み出す実データ読み出し手段とを備えたことを特徴としている。
【００１２】
ここで、この圧縮格納手段は、連続するエクステントを指す複数の領域識別子を取りまとめて１つの領域識別子に置き換えることを特徴とすれば、複数の領域識別子を格納するメモリ全体としてサイズを圧縮することができる点で好ましい。
【００１３】
更に本発明が適用されるディスク再生装置は、ＤＶＤ-ＶＲディスクのＶＲ_ＭＯＶＩＥ.ＶＲＯファイルのＡＤを読み出すＡＤ読み出し手段と、読み出されたＡＤに記録されているバイト数で示されるエクステント長をロジカルブロックサイズ(ＬＢＳ)数に変換すると共に、読み出されたＡＤに記録されているエクステントのロケーションにおけるバイト数を切り詰める変換手段と、変換されたエクステント長および切り詰められたバイト数で示されるＡＤを格納する格納手段とを備えたことを特徴としている。
【００１４】
一方、本発明は、ディスク上に格納されるファイルを再生するコンピュータ装置に対して、上記の各手段を備えるものとして機能させるためのプログラムとして把握することができる。このプログラムは、プログラム伝送装置からインターネット等のネットワークを介して供給される場合の他、ＣＤ-ＲＯＭ等の記憶媒体を介して提供される場合がある。また、本発明は、ディスク上に格納されるファイルを読み出すファイル読み出し方法として把握することも可能である。
【００１５】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいてこの発明を詳細に説明する。
◎  実施の形態１
図１は、本実施の形態が適用されるシステムの構成を示した図である。ここでは、ＤＶＤメディア１１等のディスクからデータを読み込むデータ読み込み系１０と、システムをコントロールするＰＣ(パーソナルコンピュータ)やＤＶＤプレーヤ等からなるコントロール系２０とを備えている。データ読み込み系１０としては、例えば、ＤＶＤメディア１１からデータを読み込むＤＶＤドライブ１２、ＨＤＤ(ハードディスクドライブ)１３等から構成される。ＤＶＤドライブ１２としては、例えば、ＤＶＤ-ＲＡＭドライブやＤＶＤ-ＲＷドライブ等がある。また、コントロール系２０は、データを取得すると共にシステムをコントロールするＣＰＵ２１、データアクセス用の情報を保持する記憶領域を提供するＲＡＭ、ＨＤＤ等、各種メモリで構成される記憶装置２２を備えている。
【００１６】
図２は、ＵＤＦ(Universal Disk Format)のファイル構造を説明するための図である。あるメディア(ＨＤＤ、ＤＶＤ-ＲＡＭ等)上でファイルシステムにＵＤＦを採用する場合、ＤＶＤ-ＲＡＭ、ＤＶＤ-ＲＷ上でＵＤＦを読む場合、ファイルは、ＦＩＤ(File Identifier Descriptor)３１と、ファイルエントリ(File Entry)３２の対で記録される。ＦＩＤ３１では、ファイル名などが記録される。また、ファイルエントリ３２では、ファイルサイズや実体であるメディア上のレイアウトが形成される。この実データのメディア上でのレイアウトは、ファイルエントリ３２の中の領域指定子であるアロケーションディスクリプタ(Allocation Descriptors)３３に記録されて管理される。このアロケーションディスクリプタ３３は、メディア上のどこに実際のデータが書かれているかを示すものであり、メディアの記録領域３４の中における１つの領域であるエクステント(Extent)において、その先頭アドレスと、その領域のサイズとが記録されている。図２に示す例では、メディアの記録領域３４で示されるＢ→Ｃ→Ｄ→Ａの順にデータが書かれていることが、アロケーションディスクリプタ３３によって示される。
【００１７】
通常、ファイルデータの構成要素である１個の領域であるエクステントは１個のアロケーションディスクリプタ３３で指し示されるが、ファイルの一部削除や追加、修正などによって、実際には連続で存在するデータ領域を複数のアロケーションディスクリプタ３３によって記述されることが起こり得る。例えば、図２に示されるＢ→Ｃでは、２個のアロケーションディスクリプタ３３によって連続する領域が記述されている。このような場合には、アロケーションディスクリプタ３３の保持領域が無駄になると共に、連続する領域に対して複数回、ドライブへのアクセスが必要となり、その度にヘッドやピックアップの移動が起こり、データ取得のスピードが低下してしまう。
【００１８】
そこで、本実施の形態では、例えば、図２に示されるように、ＢとＣの２つに分けてメディアに記録されていたアロケーションディスクリプタ３３を、実際にファイル処理する際には１個のアロケーションディスクリプタ３３として処理することで、メモリ等の記憶装置２２におけるアロケーションディスクリプタ３３の保持領域を節約し、かつデータアクセス速度の低下を抑制している。
【００１９】
図３(ａ),(ｂ)は、上述した連続するエクステントのレコードを合体して表現した場合の例を示した図である。図３(ａ)に示すように、メディアの記録領域３４のＢとＣの２つのレコードが、アロケーションディスクリプタ３３の３３−１および３３−２の２つによって指されている。図３(ｂ)に示すように、本実施の形態では、この連続する２つのエクステントを１つのエクステントと見なし、２個のアロケーションディスクリプタ３３(３３−１および３３−２)によって示されるエクステントを内部的に１個のアロケーションディスクリプタ３３(３３−３)で指すことを可能としている。即ち、メディアの記録領域３４のＢとＣの２つのレコードは、１つのレコードであるＢ'として扱われ、図２に示したファイルの実データは、Ｂ'→Ｃ→Ａで構成されると見なされる。即ち、ファイルを記録するために確保された領域であるエクステントに対し、連続するこのエクステントのレコードを合体することで、アロケーションディスクリプタ３３のサイズを圧縮することが可能となる。
【００２０】
アロケーションディスクリプタ３３には、パーティション(Partition)内の相対アドレスを表すための、エクステントのロケーション(Location)であるＬＢＮ(以下、「ＬＯＣ」とも略記する)と、エクステントの長さであるバイト(Bytes)で表されるレングス(Length)(以下、「ＬＥＮ」と略記する)とが、最低限、記録されている。
【００２１】
図４は、エクステントのレコードを合体する際の処理の流れを示したフローチャートである。まず、ＣＰＵ２１などのシステム制御部は、アロケーションディスクリプタ(ＡＤ)３３の中から対象となるファイルのＡＤを順次、読み込む(ステップ１０１)。次に、ｉ番目(ｉ＝２,３,…)のＡＤ(ＡＤi)に対して、
ＬＯＣi＋ＬＥＮi＋１＝ＬＯＣi+1
か否かが判断される(ステップ１０２)。ここで、ＬＯＣおよびＬＥＮの添え字「ｉ」は、各々、ｉ番目のＡＤ(ＡＤi)のレングス、ロケーションを表しており、ＬＯＣi+1は、ｉ＋１番目のＡＤ(ＡＤi+1)のロケーションを表している。
【００２２】
このステップ１０２の式を満たせば、ＡＤiに対してＡＤi+1の情報を統合して記憶させる(ステップ１０３)。一方、ステップ１０２の式を満たさなければ、ＡＤiの次にＡＤi+1の情報を記憶させる(ステップ１０４)。これらの一連の処理によって、連続するエクステントレコードが存在する場合に、１個のＡＤとして処理することが可能となる。
【００２３】
図５〜図１０は、以上説明した処理を更に詳述したフローチャートであり、連続するエクステントレコードの合体に際して、アロケーションディスクリプタ３３をメモリに取り込む際の、アロケーションディスクリプタ３３の書き換え手法を示している。
【００２４】
図５は、ファイルエントリ３２の処理を示した図である。ファイルエントリ３２では、アロケーションディスクリプタ(ＡＤ)３３取得のために、ＵＤＦで規定されるshort_adかlong_adかを認識するためのフラグである、ICB Tag / Flagと、アロケーションディスクリプタ３３の全体の長さ(Length of Allocation Descriptors)である「L_AD」の情報が必要となる。
【００２５】
ファイルエントリ３２では、まず、フラグビット０〜２(flags b0-2)から、個々のアロケーションディスクリプタ３３のサイズであるSize of AD(S_AD)が設定される(ステップ２０１)。例えば、ICB Tag / Flags bitを０とすることで、short_ad(S_AD = 8 [bytes])が設定され、ICB Tag / Flags bitを１とすることで、long_ad(S_AD = 16 [bytes])が設定される。次に、アロケーションディスクリプタ３３の数を求めるために、Number of ADs (N_AD) = L_AD / S_ADが実行される(ステップ２０２)。そして、「x=0, flags b0-2,N_AD」である初期値が設定され(ステップ２０３)、次に示すアロケーションディスクリプタ３３に対してなされる処理(アロケーションディスクリプタ処理)の処理ブロックへ移行する(ステップ２０４)。
【００２６】
図６は、アロケーションディスクリプタ処理を示したフローチャートである。まず、繰り返し処理のスタートポジションと、Ｎ_ＡＤ回数、同じ処理を繰り返すために、「i=0 ；i < N_AD ; i++  x;」が設定される(ステップ３０１)。その後、メディアに記録されているＵＤＦのファイルエントリ(ＦＥ)または拡張したAllocation Descriptorsフィールドに記録されているｉ番目のアロケーションディスクリプタ３３であるＡＤ(i)が取得される(ステップ３０２)。取得されるＡＤ(i)としては、例えば、short_ad(８バイト)の場合には、エクステント長(Extent Length)として４バイト、ＬＢＮのエクステント位置(Extent Position in LBN)として４バイトである。このExtent Length(４bytes)では、ビット３１〜３０(b31-30)にて、記録と割り当ての許可/不許可や次のエクステントのＡＤを示すためのエクステントタイプ(type of extent)が取得され、ビット２９〜０(b29-0)にてバイト長(Length of byte)が取得される。このＡＤ(i)の取得の後に、後述するアロケーションディスクリプタ書き換え処理が実行され(ステップ３０３)、ステップ３０１に戻り、これらの処理がＮ_ＡＤ回数、繰り返される。
【００２７】
図７は、アロケーションディスクリプタ書き換えの処理ブロックを示したフローチャートである。ステップ４０１では、ＡＤ(i)に記録されているビット３１〜３０の値が０であるか否かが判断される。０である場合には、ステップ４０２に移行する。ここで示されるＡＤｍ(x)は、今までに読み込んだＡＤ(1)〜ＡＤ(i-1)を変換、加工して保存したアロケーションディスクリプタ３３の最後尾ｘ番目のアロケーションディスクリプタ３３を示している。このステップ４０２では、ＡＤｍ(x)とＡＤ(i)とが連続しているか否かが判断される。Ｙｅｓの場合には、４バイトの長さで合体しようとした場合に、桁あふれとなるか否かが判断される(ステップ４０３)。桁あふれとならない場合には、ＡＤｍ(x)のレングスにＡＤ(i)のレングスを加えて合体される(ステップ４０５)。ステップ４０２およびステップ４０３で“Ｎｏ”の場合には、ｘをインクリメント(ｘ+1)し、次のアロケーションディスクリプタ３３として、ＡＤｍ(x)にＡＤ(i)を保存する。ステップ４０１にて“Ｎｏ”の場合には、ＡＤ(i)レングスのビット３１−３０が３か否かが判断され(ステップ４０７)、３である場合には、別のところに置かれている次のエクステントを指すアロケーションディスクリプタ３３を取り出し(ステップ４０８)、図６に示したアロケーションディスクリプタ処理の処理ブロックに再帰する(ステップ４０９)。ステップ４０７にてＡＤ(i)レングスのビット３１−３０が３でない場合には、ＡＤ(i)を意味のないものとする(ステップ４１０)。
【００２８】
このように、本実施の形態によれば、アロケーションディスクリプタ３３をまとめることにより、アロケーションディスクリプタ３３の保持領域(メモリ)を必要最小限に抑制することが可能となる。これによって、アロケーションディスクリプタ３３全体として、メモリに一時的に格納されるサイズを圧縮することが可能となる。また、実データを取得する際に必要であった複数回(連続領域を指すアロケーションディスクリプタ３３の数)のドライブへのアクセスが１回で済むようになり、ヘッドやピックアップの移動を減らすことで、データ取得のスピード低下を抑制することが可能となる。
【００２９】
◎  実施の形態２
実施の形態１では、ディスク再生時にアロケーションディスクリプタ３３を読み出してメモリに保持する際に、連続するエクステントレコードを合体させて、アロケーションディスクリプタ３３のサイズを圧縮することを特徴とした。実施の形態２では、ディスク再生時にアロケーションディスクリプタ３３のエクステント長をＬＢＳで表現し、また、エクステントポジションの上位１バイトを切り詰めることにより、アロケーションディスクリプタ３３のサイズを圧縮することを特徴としている。尚、実施の形態１と同様の符号については、同様の符号を用い、ここではその詳細な説明を省略する。
【００３０】
本実施の形態では、ＤＶＤ-ＶＲ discのＶＲ_ＭＯＶＩＥ.ＶＲＯファイル(以下、「.ＶＲＯファイル」と略記する)のアロケーションディスクリプタ３３をメモリに取り込む際に、アロケーションディスクリプタ３３を書き換えている。
ここで、まず、ＤＶＤ-ＶＲの制約を考慮すると、ＤＶＤ-ＶＲでは、ＤＶＤビデオレコーディング規格で定められている.ＶＲＯファイルに関して、
「１個の連続領域：ＣＤＡ(Contiguous Data Area)のサイズは、最低２ＭＢである。」
という制約が存在する。即ち、メディア上に記録されているアロケーションディスクリプタ３３の個数に関係なく、.ＶＲＯファイルのレイアウトを記述するのに必要なアロケーションディスクリプタ３３の個数の上限は、２ＭＢあたり１個でよいことから、以下の計算で求めることができる。
4,700,000,000 / 2,048,000 ＝ 約 2294 個  ……  ▲１▼式
この計算では、ディスクにおけるユーザデータ領域の全てを使用しており、実際にはこれより少なくなる。従って、前述したアルゴリズムを用いることで、取り込みに必要なアロケーションディスクリプタ３３の最大個数は、2294個となる。
【００３１】
また、上述したＬＥＮはNumber of Bytes、ＬＯＣはＬＢＮを表している。ここで、ＬＥＮは、.ＶＲＯファイルの場合、常にＬＢＳの整数倍なので、バイト(Bytes)ではなく、ＬＢＳ(Logical Block Size)で表すことが可能となる。１個のエクステント(アロケーションディスクリプタ３３で指される連続領域)の最大値は、1,073,741,823 バイトであり、
MAX number of LBS ＝ 1,073,741,823 / 2,048 ＝ 524,287 (7FFFFh)
となる。
また、ＬＯＣは、ＤＶＤ-ＲＡＭ、ＤＶＤ-ＲＷの容量より、
MAX number of LBS ＝ 4,700,000,000 / 2,048 ＝ 2,294,921 (230489h)
となる。
【００３２】
従って、ＬＥＮ、ＬＯＣ共に、オリジナルでは共に４バイトであったものが、３バイトで表記できることになる。
これと、上述した▲１▼式とを組み合わせると、アロケーションディスクリプタ３３を取り込むのに必要な容量は、
６バイト(ＡＤ：ＬＥＮ,ＬＯＣ) ＊ 2,294 ＝ 13,764 (バイト)
以下で十分である。この値は、アロケーションディスクリプタ３３がshort_adとした場合の、従来のワーストケースである18,359,368バイト(約１８Ｍバイト)と比較してかなり現実的な値であり、トータルで３/４０００メモリを節約できたことに相当する。
【００３３】
尚、ＤＶＤでは、１パーティション(Partition)なので、Long_adの場合でもＬＥＮ、ＬＯＣ以外の情報は不要となる。従って、これらの不要となる情報を無視することで、上記short_adの例と同様の結果を得ることができる。１個のLong_adのサイズは１６バイトなので、short_adに対し、更に２倍の容量圧縮、節約を達成したことに相当する。
【００３４】
図８〜図１０は、以上説明した処理を更に詳述したフローチャートであり、図８は、ファイルエントリ３２の処理を示している。実施の形態２におけるファイルエントリ３２では、まず、実施の形態１で示したアロケーションディスクリプタ３３を合体させるマージ手法(ＡＤのmerge手法)を実行している(ステップ５０１)。その後、実施の形態２に示すアロケーションディスクリプタ３３の置き換えによるサイズ圧縮の手法(ＡＤのcompress手法)を実行している(ステップ５０２)。
【００３５】
図９は、アロケーションディスクリプタ３３がshort_adである場合の圧縮手法を示したフローチャートである。まず、マージされたアロケーションディスクリプタ３３に対して、繰り返し処理のスタートポジションを設定するために、また、Ｎ_ＡＤ回数、同じ処理を繰り返すために、「i=0 ；i < N_AD ; i++」が設定される(ステップ６０１)。次に、ｉ番目のアロケーションディスクリプタ３３であるＡＤｍ(ｉ)に記録されているエクステント長の値である４バイトのＡＤｍ(ｉ).LengthをＬＢＳで割り、３バイトのＬＢＳ単位に変換する(ステップ６０２)。その後、４バイトであるＡＤｍ(ｉ).Positionの上位１バイトを切り詰め、３バイトとする(ステップ６０３)。そして、ステップ６０１に戻り、この処理をＮ_ＡＤ回数繰り返す。
【００３６】
図１０は、アロケーションディスクリプタ３３がLong_adである場合の圧縮手法を示したフローチャートである。まず、図９に示したshort_adと同様に、マージされたアロケーションディスクリプタ３３に対して、繰り返し処理のスタートポジションを設定するために、また、Ｎ_ＡＤ回数、同じ処理を繰り返すために、「i=0 ；i < N_AD ; i++」を設定する(ステップ７０１)。次に、ｉ番目のアロケーションディスクリプタ３３であるＡＤｍ(ｉ)に記録されているエクステント長の値である４バイトのＡＤｍ(ｉ).LengthをＬＢＳで割り、３バイトのＬＢＳ単位に変換する(ステップ７０２)。その後、６バイトであるＡＤｍ(ｉ).Locationの中からＬＢＮを示す４ビットの上位１バイト切り詰め、３バイトのＡＤｍ(ｉ).Locationとする(ステップ７０３)。そして、Long_adに含まれているアロケーションディスクリプタ３３の配置とは関係のない情報であるImplementation Useの６バイトを削除し(ステップ７０４)、ステップ７０１に戻り、この処理をＮ_ＡＤ回数繰り返す。
【００３７】
このように、実施の形態２によれば、ＤＶＤ-ＶＲ再生に関する.ＶＲＯファイルの制約を利用することにより、即ち、ＣＤＡ＝２ＭＢの制約により、アロケーションディスクリプタ３３の個数の上限を制約なしのときの１/１０００とすることができる。また、ファイルサイズがＬＢＳの整数倍であることを利用し、バイト数をＬＢＳ数に変換することで、short_adのときに６/８以下に、Long_adのときに６/１６以下に、アロケーションディスクリプタ３３に対する１個あたりの容量を圧縮することが可能となる。
【００３８】
また、実施の形態１と実施の形態２とを単体に、または組み合わせて使用することにより、ディスク再生時に、ディスク上のアロケーションディスクリプタ３３を直接アクセスする必要がないことから、ピックアップの移動回数を少なくすることが可能となり、データ取得のスピード低下を抑制することができる。また、アロケーションディスクリプタ３３の保持領域(メモリ)を必要最小限とすることができ、実装向きの再生装置を提供することができる。より具体的には、実装メモリの容量は、最悪のケースをサポートする場合であっても、３/４０００程度とすることが可能となる。
【００３９】
【発明の効果】
以上、詳述したように、本発明によれば、システムにおけるメモリ等のファイル情報保持スペースを節約することができる。
【図面の簡単な説明】
【図１】  本実施の形態が適用されるシステムの構成を示した図である。
【図２】  ＵＤＦ(Universal Disk Format)のファイル構造を説明するための図である。
【図３】  (ａ),(ｂ)は、上述した連続するエクステントのレコードを合体して表現した場合の例を示した図である。
【図４】  エクステントのレコードを合体する際の処理の流れを示したフローチャートである。
【図５】  ファイルエントリ３２の処理を示した図である。
【図６】  アロケーションディスクリプタ処理を示したフローチャートである。
【図７】  アロケーションディスクリプタ書き換えの処理ブロックを示したフローチャートである。
【図８】  ファイルエントリ３２の処理を示した図である。
【図９】  アロケーションディスクリプタ３３がshort_adである場合の圧縮手法を示したフローチャートである。
【図１０】  アロケーションディスクリプタ３３がLong_adである場合の圧縮手法を示したフローチャートである。
【符号の説明】
１０…データ読み込み系、１１…ＤＶＤメディア、１２…ＤＶＤドライブ、１３…ＨＤＤ(ハードディスクドライブ)、２０…コントロール系、２１…ＣＰＵ、２２…記憶装置、３１…ＦＩＤ(File Identifier Descriptor)、３２…ファイルエントリ(File Entry)、３３…アロケーションディスクリプタ(Allocation Descriptors)、３４…メディアの記録領域
【図１】
0004815680.tif 000002
【図２】
0004815680.tif 000003
【図３】
0004815680.tif 000004
【図４】
0004815680.tif 000005
【図５】
0004815680.tif 000006
【図６】
0004815680.tif 000007
【図７】
0004815680.tif 000008
【図８】
0004815680.tif 000009
【図９】
0004815680.tif 000010
【図１０】
0004815680.tif 000011