(57)【特許請求の範囲】
【請求項１】
ファイル・アロケーション・テーブル（ＦＡＴ）に基づいてデータの格納位置が規定される記録媒体から、前記ＦＡＴの一部分である部分ＦＡＴを読み出す再生部と、
前記部分ＦＡＴに基づいて、前記記録媒体に記録されたコンテンツのデータストリームの読み出しを前記再生部に指示する制御部と、
読み出されたデータストリームに基づいてコンテンツを再生するデコード部と
を備え、第１部分ＦＡＴに基づき所定量以上の第１データストリームの読み出しが完了した後、前記デコード部による再生処理が継続されている間に、前記再生部は前記第１部分ＦＡＴに続く第２部分ＦＡＴを読み出し、
前記制御部は、前記第２部分ＦＡＴに基づいて第２データストリームの読み出しを前記再生部に指示し、
前記所定量は、前記第２部分ＦＡＴの読み出し時間を少なくとも含む、データストリームの読み出し中断時間にわたって再生されるべきデータストリームを確保するまで、継続した読み出しが必要となるデータ量である、データ処理装置。
【請求項２】
前記記録媒体は、前記データストリームの再生速度以上の速度で読み出しが可能な所定の連続データ単位を有しており、
前記第１部分ＦＡＴおよび前記第２部分ＦＡＴに基づいて管理される各部分領域は前記連続データ単位の集合であり、
前記制御部は、前記部分ＦＡＴに基づいてデータストリームの読み出しを前記再生部に指示し、
前記再生部は、前記データストリームの再生速度以上の速度で前記データストリームを読み出す、請求項１に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＡＴファイルシステムが構築された記録媒体に、コンテンツのデータストリームを記録し、コンテンツを再生する技術に関する。より具体的には、本発明は、記録媒体に記録されたデータストリームから動画や音声等のコンテンツを連続的に再生するための、データストリームの記録処理および再生処理に関する。
【背景技術】
【０００２】
近年、ＤＶＤ等の光ディスク、ハードディスク等の磁気ディスク、半導体メモリ等のメディアにコンテンツのデジタルデータを書き込み、保存できるデジタル機器（光ディスクレコーダ、カムコーダ等）の普及が進んでいる。このようなコンテンツは、例えば、放送された番組やカムコーダ等によって撮影された映像および音声である。
【０００３】
近年はＰＣにもコンテンツの記録、再生および編集機能が実装されており、ＰＣも上述のデジタル機器に含めることができる。ＰＣでは、文書データなどのデータを記録するために、従来からハードディスク、光ディスク、半導体メモリ等のメディアが利用されている。したがって、そのようなメディアでは、ＰＣと連携可能なデータ管理構造、例えばＦＡＴ（File  Allocation Table）を用いたファイルシステムが採用されている。現在多く利用されているＦＡＴ３２ファイルシステムでは、１個当たり最大４ギガバイトのサイズを有するファイルを取り扱うことができ、また最大記録可能容量が２テラバイトのメディアを管理できる。
【０００４】
メディアの最大記録可能容量の増加に伴い、コンテンツの総記録時間が長くなっている。光ディスク、ハードディスク、半導体メモリ等はいわゆるランダムアクセスが可能なメディアであるため、そのようなメディアに長時間のコンテンツのデータストリームを格納するときには、コンテンツの任意の位置から再生できると便利である。
【０００５】
例えば特許文献１では、データストリームの先頭から一定の時間間隔ごとに、再生時刻とその時刻に再生されるＡＶデータの格納アドレスとの対応を規定したタイムマップ情報を生成している。ユーザ指定された開始時刻、終了時刻それぞれを、タイムマップ情報を参照して開始アドレス、終了アドレスに変換し、そのアドレスに格納されているデータを読み出すことにより、その時刻からコンテンツを再生することができる。
【０００６】
ところで、現在、ＦＡＴファイルシステムが構築された記録媒体が多く販売されている。例えば取り外し可能な半導体メモリ（メモリカード）は、一般にＦＡＴファイルシステムによりファイル管理されている。
【０００７】
半導体メモリにおいては、記録先アドレスはセクタと呼ばれる５１２バイト単位で指定される。各アドレスには１セクタを単位とする論理アドレスが割り振られる。
【０００８】
一方、ＦＡＴファイルシステムにおいては、記録領域はクラスタと呼ばれる単位で、使用／未使用の状況が管理される。例えば半導体メモリの記憶容量が２ギガバイト以下であれば、１クラスタのデータサイズは３２セクタ（すなわち１６キロバイト）である。このときはＦＡＴ１６と呼ばれるファイルシステムが使われる。一方、半導体メモリの記憶容量が２Ｇバイトを超える場合であれば、１クラスタのデータサイズは６４セクタ（すなわち３２キロバイト）である。このときはＦＡＴ３２とよばれるファイルシステムが使われる。
【０００９】
このような半導体メモリに対してデータストリームを記録する際には、書き込み先の複数のセクタの連続性の程度に応じて、書き込み速度が変化する。たとえば書き込み先のセクタ番号がばらばらの場合には、書き込み速度が低下する。その理由は、例えばすでに書き込まれているセクタと新規に書き込むセクタが同一クラスタ内に混在する場合、いったん書き込み済みのデータを読み、その後で記録済みデータの再書き込みおよび新規データの書き込みの実施が必要となり、処理の遅延が発生するためである。
【００１０】
逆に、複数の連続したセクタやクラスタに続けて書き込みを行えば、通常用途において想定されている書き込み速度よりも速い速度でデータを書き込むことができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平１１−１５５１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
近年の記録媒体の大容量化に伴い、種々の問題が生じることが想定される。
【００１３】
たとえば記録媒体の大容量化が進むと、その容量に応じてＦＡＴのデータサイズも大きくなる。記録容量が３２ギガバイトになると、ＦＡＴのデータサイズは４メガバイトにもなる。このようなデータサイズが大きいＦＡＴを装置が全て読み出して保持しなければならないとすると、それに見合う内部メモリが必要となり製造コストが大幅に増大する。また、すべて読み出す間はユーザを待たせることになり、ユーザの操作に対する機器のレスポンスが悪化する。よって、改善されたＦＡＴの読み出し方法が必要とされている。
【００１４】
コストの問題を回避するために、ＦＡＴの一部のみを読み出してキャッシュ用メモリに保持する方法が考えられる。しかし、この方法によれば、再生時にＦＡＴチェーンの追跡にしたがってキャッシュメモリに置くＦＡＴテーブルの入れ替えが負担となり、コンテンツを連続再生できない可能性が高くなる。具体的には、コンテンツデータの記録位置が途中で離れるとＦＡＴテーブルを読み出しキャッシュメモリへ再登録する処理を頻繁に行う必要が生じる。特にＦＡＴの読み出し期間中はコンテンツの読み出しは中断されるため、バッファに蓄えられた映像データ／音声データが再生され尽くされてしまう場合が考えられる。この時、動画のコマ落ち、音声の途切れが生じる。
【００１５】
本発明の目的は、コンテンツ等の連続再生を可能にするために、ＦＡＴファイルシステムが構築された記録媒体にデータを効率的に書き込む方法を提供すること、および、その方法を実行する装置を提供することである。また本発明の他の目的は、そのような方法および装置によって書き込まれたデータを読み出して、コンテンツを途切れなく再生することである。
【課題を解決するための手段】
【００１６】
本発明によるデータ処理装置は、ファイル・アロケーション・テーブル（ＦＡＴ）に基づいてデータの格納位置が規定される記録媒体に、コンテンツのデータストリームを書き込む。前記データ処理装置は、前記ＦＡＴの一部分である部分ＦＡＴの読み出し時間を少なくとも含む、データストリームの読み出し中断時間にわたって再生されるべき前記データストリームを確保するまで継続的に読み出す必要があるデータ量を決定する制御部と、１つの部分ＦＡＴによって管理される部分領域内において、前記データ量のデータを格納可能な空き領域を検出する領域検出部と、前記空き領域に前記コンテンツのデータストリームを書き込む記録部とを備えている。それにより、前記部分ＦＡＴに基づく前記データストリームの読み出しおよび前記コンテンツの再生を可能にする。
【００１７】
前記記録媒体は、前記データストリームの再生速度以上の速度で読み出しが可能な所定の連続データ単位を有しており、前記部分領域は前記連続データ単位の集合である。前記領域検出部は、前記部分領域から１以上の前記連続データ単位を含む前記空き領域を検出してもよい。
【００１８】
前記領域検出部は、いずれかの部分ＦＡＴによって管理される部分領域内の空き領域を検出してもよい。
【００１９】
前記領域検出部は、前記部分領域内に連続して存在する空き領域であって、その領域長が前記データ量以上の空き領域を検出してもよい。
【００２０】
前記領域検出部は、前記部分領域内に離散的に存在する複数の空き領域であって、各空き領域の領域長の合計値が前記データ量以上の複数の空き領域を検出してもよい。
【００２１】
前記連続記録単位から読み出されたデータの転送速度がＶｒ、部分ＦＡＴの読み出し時間をｔ、記録するデータストリームのビットレートをＶｏとすると、前記制御部は、継続した読み出しが必要となる前記データ量をＶｒ×Ｖｏ×ｔ／（Ｖｒ−Ｖｏ）以上に決定し、前記記録部は、前記データ量のデータを書き込んでもよい。
【００２２】
前記領域検出部は、１つの部分ＦＡＴによって管理される部分領域内に存在する空き領域であって、その領域長が合計して前記データ量の空き領域を検出してもよい。
【００２３】
前記記録部は、前記コンテンツのデータストリームを前記空き領域の全部または一部に書き込んでもよい。
【００２４】
前記記録部は、前記データストリームの先頭部分のデータおよび末尾部分のデータの少なくとも一方を、検出された空き領域の一部に書き込んでもよい。
【００２５】
本発明による他のデータ処理装置は、ファイル・アロケーション・テーブル（ＦＡＴ）に基づいてデータの格納位置が規定される記録媒体から、前記ＦＡＴの一部分である部分ＦＡＴを読み出す再生部と、前記部分ＦＡＴに基づいて、前記記録媒体に記録されたコンテンツのデータストリームの読み出しを前記再生部に指示する制御部と、読み出されたデータストリームに基づいてコンテンツを再生するデコード部とを備えている。第１部分ＦＡＴに基づき所定量以上の第１データストリームの読み出しが完了した後、前記デコード部による再生処理が継続されている間に、前記再生部は前記第１部分ＦＡＴに続く第２部分ＦＡＴを読み出し、前記制御部は、前記第２部分ＦＡＴに基づいて第２データストリームの読み出しを前記再生部に指示する。前記所定量は、前記第２部分ＦＡＴの読み出し時間を少なくとも含む、データストリームの読み出し中断時間にわたって再生されるべきデータストリームを確保するまで、継続した読み出しが必要となるデータ量である。
【００２６】
前記記録媒体は、前記データストリームの再生速度以上の速度で読み出しが可能な所定の連続データ単位を有しており、前記第１部分ＦＡＴおよび前記第２部分ＦＡＴに基づいて管理される各部分領域は前記連続データ単位の集合である。前記制御部は、前記部分ＦＡＴに基づいてデータストリームの読み出しを前記再生部に指示し、前記再生部は、前記データストリームの再生速度以上の速度で前記データストリームを読み出してもよい。
【発明の効果】
【００２７】
本発明によれば、ＦＡＴがその一部分を単位として読み出されることを想定して、記録媒体にデータを書き込む。すなわち、記録装置は、ＦＡＴの一部分（部分ＦＡＴ）の読み出しに要する時間にわたって再生されるコンテンツのデータ量を計算し、記録媒体の記録領域内において、そのデータ量のデータを格納可能な空き領域を検出する。そして、その空き領域にコンテンツのデータストリームを書き込む。空き領域は、１つの部分ＦＡＴによって管理される部分領域の中で確保される。
【００２８】
これにより、装置がＦＡＴの部分的な読み出しとデータストリームの読み出しとを交互に行っても、再生処理に必要なデータを確実に確保することができる。よってデータストリームからコンテンツを途切れなく連続的に再生できる。また、ＦＡＴを少しずつ読み出しながら再生できるので、ＦＡＴを保持するためのメモリ容量は、ＦＡＴをメモリ上にすべて保持するためのデータ容量と比較すると極めて小さくてよい。これにより、装置に必要とされるバッファメモリのコストを抑えることができる。
【００２９】
また、ＦＡＴを全部一旦読み出してから再生処理を開始する場合と較べて、一部のＦＡＴを読み込めばよいので、ユーザの待ち時間を著しく減らすことができる。
【図面の簡単な説明】
【００３０】
【図１】実施形態１によるレコーダ１０の構成を示す図である。
【図２】メモリカード１３０のデータ管理構造を示す図である。
【図３】メモリカード１３０におけるＦＡＴファイルシステムのデータ管理を示す図である。
【図４】メモリカード１３０のファイルシステムの階層構造の例を示す図である。
【図５】データストリームファイル２０のデータ構造を示す図である。
【図６】プログラムストリームの管理情報の例を示す図である。
【図７】バッファメモリ７１およびデコーダ７２を利用した、データストリームの再生モデルを示す図である。
【図８】図７に示す再生モデルを利用したときの、バッファメモリ７１に蓄積されるデータ量の時間遷移を示す図である。
【図９】動画記録時において空き領域を確保するための条件の例を示す図である。
【図１０】レコーダ１０の起動時における、メモリカードに関する初期化処理の手順を示すフローチャートである。
【図１１】レコーダ１０の記録処理の手順を示すフローチャートである。
【図１２】記録処理後のメモリカード１３０内のデータ配置の例を示す図である。
【図１３】レコーダ１０の再生処理の手順を示すフローチャートである。
【図１４】各実施形態におけるデータの記録モデルを示す図である。
【図１５】図１４に示す記録モデルのバッファメモリ７４上に蓄積されるデータ量の遷移例を示す図である。
【図１６】実施形態２による記録制御部１６１の記録処理の手順を示すフローチャートである。
【図１７】実施形態３によるデータストリームの記録位置、およびデータサイズ例を示す図である。
【図１８】部分ＦＡＴを格納するためのメモリを設けた構成を示す図である。
【図１９】部分ＦＡＴとメモリ空間の関係例を示す図である。
【図２０】部分ＦＡＴとメモリ空間の他の関係例を示す図である。
【発明を実施するための形態】
【００３１】
以下、添付の図面を参照しながら、本発明によるデータ処理装置の実施形態を説明する。
【００３２】
図１は、本実施形態によるレコーダ１０の構成を示す。レコーダは、映像および音声を含む動画のデータストリーム（動画ストリーム）をメモリカード１３０に書き込む機能（録画機能）、メモリカード１３０に書き込まれた動画ストリームを読み出して、動画を再生する機能（再生機能）およびメモリカード１３０に書き込まれた動画ストリームを編集する機能（編集機能）を有する。レコーダ１０は、たとえば持ち運び可能なカムコーダ、テレビ放送番組等を録画する据え置き型の記録装置である。
【００３３】
以下、レコーダ１０の構成要素を説明する。レコーダ１０は、映像信号入力部１００と、音声信号入力部１０２と、映像信号出力部１１０と、音声信号出力部１１２と、ＭＰＥＧエンコーダ１７０と、ＭＰＥＧデコーダ１７１と、メディア制御部１７５と、システム制御部１８０と、ＣＰＵ１８１とを有している。
【００３４】
レコーダ１０には、メモリカード１３０が取り外し可能な形態で挿入され、メモリカード１３０に動画を録画できる。なお、メモリカード１３０はレコーダ１０の必須の構成要素ではない。
【００３５】
映像信号入力部１００は、たとえばＣＣＤカメラや、アンテナ（図示せず）と接続された映像入力端子（図示せず）である。音声信号入力部１０２は、たとえばマイクや、アンテナ（図示せず）と接続された音声入力端子（図示せず）である。
【００３６】
ＭＰＥＧエンコーダ１７０（以下「エンコーダ１７０」と記述する。）は映像圧縮部１０１と音声圧縮部１０３とシステムエンコード部１０４とを有している。映像圧縮部１０１は、映像信号入力部１００から映像信号を受け取り、ＭＰＥＧ規格に基づいて圧縮符号化する。音声圧縮部１０３は、音声信号入力部１０２から映像信号を受け取り、ＭＰＥＧ規格に基づいて（圧縮）符号化する。その結果、ビデオデータおよびオーディオデータが出力される。
【００３７】
システムエンコード部１０４は、ビデオデータおよびオーディオデータをインターリーブして動画ストリームを生成する。より具体的には、システムエンコード部１０４は、ビデオデータおよびオーディオデータをそれぞれ格納したパケットを生成し、そのパケットを配列して動画ストリームを生成する。このとき、さらに他のデータ（文字データ、管理情報など）もパケット化されて動画ストリームの一部として配列され得る。
【００３８】
メディア制御部１７５は、記録部１２０および再生部１２１を有しており、それぞれ、メモリカード１３０に対する動画ストリームや他のデータの書き込みおよび読み出しを制御する。
【００３９】
本実施形態においては、メモリカード１３０はＳＤメモリカードなどの規格に準拠した記録媒体であるとする。そして、メモリカード１３０に書き込まれる動画ストリームはＭＰＥＧ２規格に準拠したプログラムストリームであるとする。プログラムストリームは、「パック」と呼ばれる固定長のデータ単位から構成される。「パック」はパケットの１つの例示的な形態として知られている。メモリカード１３０の構成、および、プログラムストリームのデータ構造は、図２〜図６を参照しながら、後に詳しく説明する。
【００４０】
レコーダ１０の他の構成要素を説明する。ＭＰＥＧデコーダ１７１（以下「デコーダ１７１」と記述する。）は、映像伸長部１１１と音声伸長部１１３とシステムデコード部１１４とを有している。処理の順序で説明すると、システムデコード部１１４は動画ストリーム、すなわちプログラムストリームをパケットの種類に応じて分離し、ビデオデータのパケットを映像伸長部１１１に送り、オーディオデータのパケットを音声伸長部１１３に送る。映像伸長部１１１は、ビデオデータをＭＰＥＧ規格に基づいて伸長し、映像信号出力部１１０に送る。音声伸長部１１３は、オーディオデータをＭＰＥＧ規格等に基づいて伸長し、音声信号出力部１１２に送る。
【００４１】
映像信号出力部１１０は、たとえばレコーダ１０がカムコーダのときには液晶表示画面、録画機のときには映像信号を出力する端子である。音声信号出力部１１２は、たとえばスピーカや音声信号を出力する端子である。
【００４２】
システム制御部１８０は、ＣＰＵ１８１とＲＯＭ１８２とＲＡＭ１８３とを有している。ＣＰＵ１８１は、たとえばＲＯＭ１８２に格納されたコンピュータプログラムを読み出し、ＲＡＭ１８３上に展開して実行することにより、各種の機能を実現できる。たとえばＣＰＵ１８１は、連続データ領域検出部１６０、記録制御部１６１、再生制御部１６２、論理ブロック管理部１６３、編集制御部１６４として機能する。以下では、ＣＰＵ１８１によって実現する各機能を独立した構成要素として取り扱う。各構成要素間のデータの授受は、プログラム間のデータの受け渡しに相当する。
【００４３】
記録制御部１６１はプログラムストリームの記録を開始する前に、連続データ領域検出部（以下「領域検出部」と記述する。）１６０を起動して、空き領域を捜させる。領域検出部１６０はあらかじめメモリカード１３０から読み出したＦＡＴを利用して、初期化処理において作成した空き領域管理テーブルから連続した空き領域を探索する。そして探索の結果として検出された空き領域上にプログラムストリームの記録を開始する。そして、検出した空き領域へのプログラムストリームの書き込みが終わるまでに、次の空き領域を継続的に探索しプログラムストリームの記録を継続する。
【００４４】
また、再生時は、ユーザが再生すべきコンテンツを選択すると、再生制御部１６２の制御により、再生部１２１を経由して、コンテンツに対応するプログラムストリームの管理情報を管理ファイルから読み出し、その管理ファイルに記載されたアドレス情報を参照して、さらにプログラムストリームを読み出す。このプログラムストリームをシステムデコード部１１４で映像信号と音声信号に分離し、各々を映像伸長部１１１及び音声伸長部１１３を介して、映像信号出力部１１０及び音声信号出力部１１２へ出力する。
【００４５】
動画の編集時においては、編集制御部１６４は、たとえば記録済みのコンテンツの一部に対する編集指示をユーザから受け取る。このとき編集制御部１６４は、再生部１２１に指示して、データストリームの編集対象の部分やその管理データを読み出させる。たとえばコンテンツの一部を削除する編集においては、編集制御部１６４は、読み出されたデータのうちから削除するべき部分を特定し、その部分を削除する。編集制御部１６４は削除されずに残されたデータやその管理データをメモリカード１３０に書き込むよう、記録部１２０に指示する。
【００４６】
ここで、図２および図３を参照しながら、メモリカード１３０におけるデータ管理構造および論理構造を説明する。その後、図４〜図６を参照しながら、メモリカード１３０に
書き込まれるデータストリームのデータ構造の例を説明する。
【００４７】
図２は、メモリカード１３０のデータ管理構造を示す。本実施形態においては、メモリカード１３０は３２ギガバイトの記録容量を持つとし、ＦＡＴ３２ファイルシステムによってファイルが管理されるとして説明する。
【００４８】
メモリカード１３０において、データの書き込みおよび読み出しが可能な最小の単位はセクタ１３１である。各セクタ１３１にはアドレスが割り当てられており、アドレスを利用して一意にセクタを特定できる。各セクタ１３１のデータサイズは５１２バイトとする。
【００４９】
複数のセクタ１３１をまとめて、論理ブロックと呼ばれるクラスタ１３２が構成される。クラスタ１３２は、空き領域の管理単位であり、かつ領域の書き込み／読み出し単位である。クラスタ１３２を構成するセクタの数、換言すれば、クラスタ１３２のデータサイズは、メモリカードの記録容量に応じて定められているとする。たとえばメモリカード１３０の記録容量が１Ｇバイト以下の場合には１クラスタのデータサイズは１６キロバイトであり、１Ｇバイトを超える場合には３２キロバイトであるとする。さらに本実施形態においては、１クラスタは６４個のセクタから構成されており、そのデータサイズは３２キロバイトとする。
【００５０】
さらにメモリカード１３０には、連続記録単位１３３が規定されている。連続記録単位１３３は、メモリカード１３０がその書き込み性能値を達成可能な条件として指定した、連続したセクタ、もしくは連続したクラスタ領域としてアクセスすべきデータ単位である。連続記録単位１３３のデータサイズはあらかじめ決められており、たとえばカード内の所定のレジスタ（図示せず）に保持されているとする。本実施形態においては、連続記録単位１３３は連続する２つのクラスタによって構成され、そのデータサイズは６４キロバイトであるとする。
【００５１】
また、メモリカード１３０は、連続再生単位を規定しているとする。連続再生単位は、メモリカード１３０が、その読み出し性能値を達成可能な条件として指定した、連続したセクタ、もしくは連続したクラスタ領域としてアクセスすべきデータ単位である。連続再生単位のデータサイズはあらかじめ決められており、たとえばカード内の所定のレジスタ（図示せず）に保持されているか、あらかじめ決まっているとする。本実施形態においては、連続再生単位は連続のデータサイズは１６キロバイトであるとする。なお、一般的に書き込み速度は読み出し速度よりも遅く、これにより連続記録単位は連続再生単位よりもデータサイズが大きい場合が多い。
【００５２】
メモリカード１３０においては、任意の論理アドレスの４セクタ分または８セクタ分のデータ読み出し時間の値があらかじめ決まっており、たとえばカード内の所定レジスタに保持されているとする。これは、特にディレクトリエントリやＦＡＴの部分的な読み出し速度を保証するために必要である。
【００５３】
また、メモリカード１３０は書き込み用バッファサイズの値もあらかじめ決まっており、同様にカード内の所定レジスタに保持されているとする。さらに、このバッファサイズ分のデータの書き込み処理が完了するまでの処理時間もあらかじめ決まっており、メモリカード内部のレジスタに保持されているとする。
【００５４】
なお、少なくとも連続記録単位１３３のデータサイズ以上の連続したクラスタから構成されるメモリカード１３０の記録領域を、連続記録領域と呼ぶ。連続記録単位のデータサイズはメモリカードの性能に従って１６キロバイトから２メガバイトまでの範囲の値をとり得るとする。
【００５５】
図３は、メモリカード１３０におけるＦＡＴ１６ファイルシステムのデータ管理を示す。まず、メモリカード１３０の記録領域の構成を説明する。メモリカード１３０は、ブートレコード領域１３５と、ＦＡＴ領域１３６と、ディレクトリ管理領域１３７と、データ領域１３８とを有している。
【００５６】
ブートレコード領域１３５には、たとえばＯＳのブートコードやパーティション毎のファイルシステム種別の情報などが格納されている。メモリカード上に記録される情報はあるディレクトリのファイルとして記録され、ディレクトリはルートディレクトリを頂点とする任意の木構造からなる階層構造を構成する。
【００５７】
ＦＡＴ領域１３６には、２つのＦＡＴ（ＦＡＴ１およびＦＡＴ２）が存在する。ＦＡＴ２はＦＡＴ１のコピーであり、予備として設けられている。各ＦＡＴはクラスタ番号のテーブルとして規定される。ＦＡＴ内に設定されるクラスタ番号をＦＡＴエントリと呼ぶ。
【００５８】
ディレクトリ管理領域１３７には、ルートディレクトリのデータが記録される。サブディレクトリが存在する場合にはそのサブディレクトリのデータはデータ領域１３８内に記録される。図３に示すディレクトリデータ１４０を例に挙げて説明すると、ディレクトリデータ１４０は、１以上のディレクトリエントリのテーブルとして構成される。各ディレクトリエントリは、ファイル名、拡張子、ファイル属性、更新時間、ファイルサイズ、データの格納先クラスタ番号等をそれぞれ格納するフィールドが設けられている。図３には、書き込まれたデータの内容を表すエントリファイル名フィールド１４１と、先頭クラスタ番号フィールド１４２が示されている。
【００５９】
最後に、メモリカード１３０のデータ領域１３８には、ルートより下位のディレクトリのディレクトリ管理領域や、ファイルの中身のデータが書き込まれる。
【００６０】
以下、ＦＡＴを利用してファイル“ｘｘｘ．ｙｙｙ”を読み出す手順を概説する。まず、ディレクトリ管理領域１３７の各ディレクトリデータを参照して、“ｘｘｘ．ｙｙｙ”が記述されているエントリファイル名フィールド１４１を特定する。そして、そのフィールド１４１に対応する先頭クラスタ番号フィールド１４２から値を読み出す。この例では、先頭クラスタ番号値は「２」である。この値によって、ファイル“ｘｘｘ．ｙｙｙ”の先頭部分のデータが、クラスタ「２」に書き込まれていることが示される。よって、そのクラスタからデータの読み出しが開始される。
【００６１】
次に、ＦＡＴ１が参照され、クラスタ２に対応するテーブル値が取得される。図３に示す例では、矢印によって示される位置のテーブル値が参照され、「３」が取得される。この値は、続きのデータが格納されたクラスタ番号値を示している。よって、次はクラスタ「３」のデータを読み出せばよい。その後もＦＡＴ１を参照して、クラスタ３に対応するテーブル値「４」が取得され、クラスタ「４」からデータが読み出される。所定のテーブル値（図３では「ＦＦＦＦ」）が現れたときには、そのクラスタがファイル“ｘｘｘ．ｙｙｙ”の最後のクラスタであることを示す。
【００６２】
上述のように、ＦＡＴをトレースすれば、ファイルのデータを格納したクラスタをどの順序で読み出せばよいかが特定される。すなわち、ＦＡＴによって、複数のクラスタに分散されたデータのつながりが管理される。上述の説明から明らかなように、ＦＡＴファイルシステムにおいては、ファイルはディレクトリとＦＡＴの２つを用いて管理される。
【００６３】
次に、図４〜図６を参照しながら、メモリカード１３０に書き込まれるデータストリームのデータ構造の例を説明する。
【００６４】
図４は、メモリカード１３０のファイルシステムの階層構造の例を示す。この例では、ルートディレクトリＲＯＯＴの下に、サブディレクトリＤＶＤ＿ＲＴＡＶが設けられている。そして、そのサブディレクトリ中に管理ファイルおよびデータストリームファイルが格納されるとする。
【００６５】
図４に示すように、たとえばデータストリームＶＲＭＯＶ００１．ＭＰＧに関する管理ファイルがＶＲＭＡＮ００１．ＩＦＯである。同様に、データストリームＶＲＭＯＶ００２．ＭＰＧに関する管理ファイルがＶＲＭＡＮ００２．ＩＦＯである。
【００６６】
図４に示すディレクトリ構造は、図３で説明したメモリカード１３０のディレクトリ管理領域１３７に反映される。また、各ファイルを構成するデータがどの順序でクラスタに書き込まれているかは、ＦＡＴ１に基づいて特定される。
【００６７】
以下、図５を参照しながらデータストリームファイルのデータ構造を説明する。その後、図６を参照しながら管理ファイルのデータ構造を説明する。
【００６８】
図５は、データストリームファイル２０のデータ構造を示す。本実施形態においては、データストリームはＭＰＥＧ２規格のプログラムストリームである。以下に説明するデータ構造は、たとえばＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ等の光ディスクに動画を記録するためのＤＶＤビデオレコーディング規格に準拠しているとする。なお、このＤＶＤビデオレコーディング規格では、ストリームファイルおよびその管理ファイルはそれぞれ１個だけ規定されている。しかし、図４に示されるように、本実施形態においては、記録の開始および停止が行われる度に１個のストリームファイルおよびそれに対する管理ファイルが記録されるとする。
【００６９】
データストリームファイル２０は、たとえばＭＰＥＧプログラムストリーム２１に示すようなＶＯＢ（ＶｉｄｅｏＯｂｊｅｃｔ；ビデオオブジェクト）を複数含んでいる。そして各ＶＯＢは、１以上のビデオオブジェクトユニット（Ｖｉｄｅｏ  ＯＢｊｅｃｔ  ＵＮＩＴ：以下「ＶＯＢＵ」という。）から構成される。
【００７０】
各ＶＯＢＵは、２０４８バイト単位のＭＰＥＧプログラムストリームの下位階層であるパックから構成されており、映像の再生時間にして０．４〜１秒分のデータを含む。
【００７１】
以下、ＶＯＢＵ２２を例に挙げて説明する。ＶＯＢＵ２２は、圧縮されたビデオデータが格納されたビデオパック（Ｖ＿ＰＣＫ）２３と、圧縮されたオーディオデータが格納されたオーディオパック（Ａ＿ＰＣＫ）２４の２種類を含んでいる。ＶＯＢＵ２２内の全ビデオパック（Ｖ＿ＰＣＫ）２３のビデオデータを再生すると、上述の０．４〜１秒の映像になる。また、ＶＯＢＵ２２内のオーディオデータは、各音声フレームの復号に利用される。１つの音声フレームのデータがＶＯＢＵ境界をまたいで格納されることはない。
【００７２】
なお、各ＶＯＢＵの先頭にはリアルタイムデータ情報パック（ＲＤＩ＿ＰＣＫ）が記録されてもよい。ＲＤＩパックには、再生を管理するための管理情報（たとえばレターボックス情報）が必要に応じて格納される。
【００７３】
プログラムストリーム２１には、システム時刻基準ＳＣＲ、映像／音声の復号時刻情報（ＤＴＳ）および出力時刻情報（ＰＴＳ）等の時刻情報が格納されている。システム時刻基準ＳＣＲは、再生装置のＳＴＣレジスタに基準値を設定するために利用される。この基準値に基づいて同期信号ＳＴＣが生成され、同期信号ＳＴＣの値とデコード時刻情報（ＤＴＳ）の値とが一致するタイミングで映像および音声がそれぞれ復号化される。そして同期信号ＳＴＣの値と出力時刻情報（ＰＴＳ）の値とが一致するタイミングで、映像および音声がそれぞれ出力される。本実施形態においては、ひとつの連続したプログラムストリーム（ＶＯＢ）中のシステム時刻基準ＳＣＲ、映像の復号時刻情報（ＤＴＳ）および出力時刻情報（ＰＴＳ）の各値は所定の周期で連続的に変化しているとする。
【００７４】
各ＶＯＢＵの先頭のビデオパック２３は、パックヘッダ２５およびパックデータ（ビデオデータ）２６を含んでいる。さらに、ビデオデータ２６はシーケンスヘッダ２８、ＧＯＰヘッダ２９、および圧縮されたＩピクチャデータ３０を含んでいる。図においては、さらに他のＰＥＳヘッダおよびＰピクチャフレームデータ３１が示されている。
【００７５】
なお、Ｉピクチャデータのデータサイズは一般に大きく、２０４８バイトを大きく超えることがある。よって、ビデオデータ２６にはＩピクチャデータの一部（たとえば先頭部分）しか格納されないことがほとんどである。
【００７６】
Ｉピクチャ３２からピクチャ３３までの複数枚のピクチャが１つのグループ・オブ・ピクチャ（ＧＯＰ）を構成している。ＧＯＰとは、単独で再生され得る映像フレームであるＩピクチャ３２と、次のＩピクチャの直前のピクチャ３３までの、Ｐピクチャおよび／またはＢピクチャを含む複数の映像フレームをまとめた再生単位である。
【００７７】
次に、図６を参照しながら管理ファイルのデータ構造を説明する。図６は、プログラムストリームの管理情報の例を示す。管理情報はＶＯＢＵごとに生成されている。図６によれば、各ＶＯＢＵに対応して管理情報が存在することが示されている。
【００７８】
管理情報として、各ＶＯＢＵのＶＯＢＵデータサイズ、ＶＯＢＵの先頭のＩピクチャ終端を含むパックのアドレスオフセット値、およびＶＯＢＵに含まれる映像フィールド数が規定されている。なお図５から明らかなように、ＶＯＢが複数存在する場合には、図６に示す管理情報の組がＶＯＢの数に応じて存在する。
【００７９】
次に、レコーダ１０の処理を説明する。本実施形態によるレコーダ１０は、再生処理を考慮して動画のデータストリームをメモリカード１３０に書き込んでいる。そこで、以下ではまず再生処理を概説し、その後、そのような再生処理によってコンテンツの再生が途切れないようにするための記録処理を説明する。
【００８０】
図７は、バッファメモリ７１およびデコーダ７２を利用した、データストリームの再生モデルを示す。なお、バッファメモリ７１は図１に示す再生部１２１内のメモリに対応し、デコーダ７２は、図１に示すデコーダ１７１に対応する。ただし、ＭＰＥＧデコーダ１７１がバッファメモリ７１に相当するメモリを内部に有していてもよい。
【００８１】
いま、メモリカード１３０からバッファメモリ７１へのデータ読み出し速度をＶｒ、バッファメモリ７１からデコーダ７２への最大データ転送速度（最大再生速度）をＶｏとする。
【００８２】
図８は、図７に示す再生モデルを利用したときの、バッファメモリ７１に蓄積されるデータ量のワーストケースの時間遷移を示す。縦軸がデータ量を示し、横軸が時間を示す。
【００８３】
本実施形態による再生処理は、再生開始時にメモリカード１３０からＦＡＴをすべて読み出すのではなく、その一部を読み出す。その理由は、例えば３２ギガバイトのメモリカード１３０においてはＦＡＴのデータサイズは４メガバイトにもなるため、そのようなＦＡＴを保持するためのメモリをレコーダ１０に設けるとコストが増大するためである。また、再生処理の起動時に、すべて読み出す間はユーザを待たせることになり、ユーザの操作に対する機器のレスポンスが悪化する。再生処理の起動時とは、たとえばユーザがレコーダ１０の電源を投入し、モードスイッチ（図示せず）の選択により再生モードを選択した場合である（なお一方、記録処理の起動時は動画の圧縮処理と並行して、ＦＡＴの全読み出しを想定している。記録処理の起動時は再生処理の起動時と比較して、カードアクセスが集中しないためである）。
【００８４】
以下の説明では、読み出されるＦＡＴの一部を「部分ＦＡＴ」と呼ぶ。部分ＦＡＴのデータサイズは、たとえば４キロバイトである。なお４キロバイトは８セクタ相当分のデータ長である。
【００８５】
再生処理では、４キロバイトの部分ＦＡＴの読み出しと、その部分ＦＡＴにより管理されるクラスタからのデータストリームの読み出しとが交互に行われる。そして、読み出されたデータストリームをデコーダ７２が受け取って復号化することにより、映像、音声等が再生される。
【００８６】
なお、４キロバイトの部分ＦＡＴにより管理される記録領域は、メモリカードがＦＡＴ３２で管理されること、および部分ＦＡＴのデータサイズを４キロバイトとしていることから、１クラスタサイズ×（４キロバイト／４）＝３２キロバイト×１０２４＝３２メガバイトである。以下の説明では、この部分ＦＡＴによって管理される記録領域をウインドウと呼び、そのサイズをウインドウサイズと呼ぶ。
【００８７】
図８を参照すると、再生処理開始後の区間ａはデコード開始前の部分ＦＡＴの読み出し時間に対応する（区間ａ，ｃ，ｅの最大値は等しく共にｔFRとして示す）。その次の区間ｂは、部分ＦＡＴに基づくデータストリームの読み出し時間に対応する。区間ｂの時間長をｔsとして示す。
【００８８】
区間ｂにおいては、バッファメモリ７１はすでに蓄積されているデータストリームをデコーダ７２に送り、それと同時に、メモリカード１３０からのデータストリームを蓄積する。よって、バッファメモリ７１には、Ｖｒ−Ｖｏの速度でデータストリームが蓄積される。なお、メモリカード１３０から読み出されるデータストリームは、部分ＦＡＴによって管理されるウインドウ内に格納されている。
【００８９】
区間ｃは次の部分ＦＡＴの読み出し時間に対応する。区間ｃの時間長は先の区間ａの時間長と同じである。
【００９０】
区間ｃにおいては、バッファメモリ７１はデコーダ７２に対してデータストリームを送るだけで、メモリカード１３０からのデータストリームを蓄積しない。よって、バッファメモリ７１に蓄積されたデータ量はＶｏの速度で減少する。区間ｄ、区間ｅおよびそれ以降は、区間ｂ、区間ｃの繰り返しであり、それぞれｔS、ｔFRの時間を要する。
【００９１】
ここで、区間ｃに注目する。区間ｃではバッファメモリ７１内のデータ量はＶｏの速度で減少するため、コンテンツの再生が途切れないようにするためには、区間ｃの終了と同時にバッファメモリ７１のデータ量が０になり、またはデータ量が残っている必要がある。よって、区間ｃの開始時点（すなわち区間ｂの終了時点）で、バッファメモリ７１は少なくとも（Ｖｏ×ｔFR）に相当するデータ量を蓄積している必要がある。そのためには、すでに読み出した部分ＦＡＴによって管理されるウインドウ内に、そのデータ量のデータが連続的にまたは離散的に格納されていなければならない。
【００９２】
数式を用いて説明すると、まずＶｏ×ｔFRは、
Ｖｏ×ｔFR＝（Ｖｒ−Ｖｏ）×ｔS        （数１）
として求めることができる。これにより、
ｔS＝Ｖｏ×ｔFR／（Ｖｒ−Ｖｏ）      （数２）
が得られる。よって、連続読み出しデータ量ＳＲは、
ＳＲ＝Ｖｒ×ｔS＝Ｖｒ×Ｖｏ×ｔFR／（Ｖｒ−Ｖｏ）    （数３）
で与えられる。
【００９３】
この結果、データストリームの記録時においては、各部分ＦＡＴによるウインドウ中に、少なくとも上述のデータ量ＳＲの空き領域を確保して書き込めばよいといえる。本実施形態によるレコーダ１０は、そのような空き領域を探し、データを書き込む。これにより、ＦＡＴを部分ＦＡＴ単位で読み出したとしても、コンテンツを途切れなく再生できる。
【００９４】
空き領域の最小の構成単位は、上述した１６キロバイトの連続再生単位である。本実施形態においては、このサイズの連続再生単位を確保してデータを書き込むとＶｒの読み出し速度が保証されるとする。
【００９５】
以下、具体例を挙げて説明する。いま、図７および図８において、メモリカード１３０からバッファメモリ７１への転送速度Ｖｒを４メガバイト／秒とし、バッファメモリ７１からデコーダ７２への最大転送速度Ｖｏを３０Ｍビット／秒とし、ｔSを４ｍｓとする。
【００９６】
すると、数１〜数３によれば、ＳＲ＝１３８キロバイトとなる。したがって、１ウインドウ領域内に少なくとも１３８キロバイト以上の空き領域が存在すれば、上述の条件の下ではコンテンツは途切れることなく再生可能である。ただし、本実施形態では処理の余裕を与えるため、１メガバイト以上の空き領域が残っていれば、データストリームを書き込んでよいとしている。
【００９７】
図９は、動画記録時において空き領域を確保するための条件の例を示す。レコーダ１０は、メモリカード１３０の記録領域（論理アドレス空間）において、３２メガバイトサイズのウインドウ９０中にデータを格納可能な領域が所定量（例えば合計１メガバイト）以上空いている場合には、書き込み可能であると判断してその領域に順次ストリームを書き込む。
【００９８】
空き領域のサイズの合計が１メガバイトであれば、連続再生単位、もしくは連続記録単位のどちらで構成されていてもよい（このうち、図９は連続記録単位が合計１メガバイト以上を構成する例を示している）。またさらに、それぞれすべてが連続的に配置されていなくてもよい。つまり、図９の２つの空き領域９１および９２が示されるように、連続記録単位の集合がウインドウ内に離散的に存在してもよい。その理由は、部分ＦＡＴによって管理されるウインドウ９０内であれば、異なる部分ＦＡＴを読み出す必要がなく、ＦＡＴをたどるための処理遅延は実質的には生じないからである。
【００９９】
メモリカードは多種存在するため、本実施形態のメモリカードよりも全般的に書き込み／読み出し速度が遅いものも存在する。そのようなメモリカードにおいて、実時間で毎秒４メガバイトの書き込み速度を保証するためには、上述の連続記録単位のデータ長（６４キロバイト）よりも長いデータ長を採用する必要がある。たとえば連続記録単位の記録長（最小連続記録長）を６４０キロバイト程度にする必要がある。
【０１００】
以下、本実施形態によるレコーダ１０の記録時の具体的な処理を詳細に説明する。まず図１０を参照しながらレコーダ１０の起動処理を説明し、その後、図１１を参照しながら記録処理を説明する。
【０１０１】
図１０は、レコーダ１０の記録処理の起動時における、メモリカードに関する初期化処理の手順を示す。記録処理の起動時とは、たとえばユーザがレコーダ１０の電源を投入し、モードスイッチ（図示せず）の選択により記録モードを選択した場合である。
【０１０２】
レコーダ１０の論理ブロック管理部１６３は、メモリカード１３０のＦＡＴ１を全て読み出すよう、再生部１２１に指示する。そして論理ブロック管理部１６３は、ＦＡＴ１に基づいて、全クラスタに対する空き領域の状況を示す空き領域管理テーブルを生成する。より詳しくは、論理ブロック管理部１６３は、空きクラスタを値１、使用中のクラスタを０として、１クラスタ当たり１ビットに圧縮した空き領域管理テーブルを生成する。この生成処理は、部分ＦＡＴを読み出しながら逐次行われる。この空き領域管理テーブルはＲＡＭ１８３に保持される。これにより、ＦＡＴ１の全体サイズは1/32倍へ圧縮して保存される。動画記録時は、領域検出部１６０がこの空き領域管理テーブルを参照して、空き領域を検出する。
【０１０３】
次に、レコーダ１０の記録処理を説明する。記録処理にあたっては、レコーダ１０はあらかじめ、再生時に読み出される部分ＦＡＴのサイズの情報、および、部分ＦＡＴの読み出しに要する時間の情報はメモリカード１３０のレジスタから得られているとする。
【０１０４】
図１１は、レコーダ１０の記録処理の手順を示す。ユーザから動画記録開始の指示を受け取ると、記録制御部１６１および領域検出部１６０が動作して空き領域を検出する（Ｓ１００）。具体的には記録制御部１６１は部分ＦＡＴの読み出しに要する時間にわたって再生されるコンテンツのデータ量を計算する。そのデータ量は、これまで説明したように１メガバイトであるとする。すると領域検出部１６０は空き領域管理テーブルを検索して、１個のウインドウ（３２メガバイト）内に、合計して１メガバイト以上の空き領域を含むウインドウを少なくとも１つ検出する（Ｓ１００）。
【０１０５】
次に記録制御部１６１はＭＰＥＧエンコーダ１７０、および記録部１２０を起動し（Ｓ１１０）、検出された空き領域へのデータストリームの書き込みを開始する（Ｓ１２０）。なお、実際に書き込む処理は、記録制御部１６１からの指示に基づいて記録部１２０によって行われるが、以下では記載の便宜上、記録制御部１６１が書き込むとして記述する。
【０１０６】
ユーザが記録を継続していて（Ｓ１３０のＮｏ）、かつ書き込み中の領域に追記可能であれば（Ｓ１４０のＹｅｓ）、記録制御部１６１は引き続きその領域にデータストリームを書き込む（Ｓ１２０）。一方、追記可能でないと判断すると（Ｓ１４０のＮｏ）、領域検出部１６０は次の空き領域の検出を行う（Ｓ１５０）。この時に検出すべき空き領域の条件はＳ１００と同じである。記録制御部１６１は、新たに検出された空き領域を次の記録先として、データストリームを書き込む（Ｓ１２０）。
【０１０７】
ユーザが録画停止操作を行って停止が指示されると（Ｓ１３０のＹｅｓ）、記録制御部１６１は書き込まれずにテンポラリメモリ上に残っているデータストリームをメモリカードに書き込む（Ｓ１６０）。
【０１０８】
そして、継続して、管理データファイルＶＲＭＡＮ００１．ＩＦＯのデータをメモリカード１３０に書き込む（Ｓ１７０）。そして、ＶＲＭＯＶ００１．ＭＰＧおよびＶＲＭＡＮ００１．ＩＦＯのデータファイルを書き込んだ領域に対応するＦＡＴ１を全て読み出す（Ｓ１８０）。例えば２Ｇバイトのデータストリームであれば、対応するＦＡＴ３２ファイルシステムのＦＡＴは少なくとも２５６キロバイト分である。
【０１０９】
次に、データストリームが書き込まれて使用中となったクラスタの状況を反映するために、記録制御部１６１はＦＡＴ上にＶＲＭＯＶ００１．ＭＰＧ、およびＶＲＭＡＮ００１．ＩＦＯに対応するＦＡＴ情報（ＦＡＴチェーン）をＦＡＴ１、ＦＡＴ２およびディレクトリエントリへ書き込む（Ｓ１９０）。これにより記録処理が完了する。
【０１１０】
図１２は、記録処理後のメモリカード１３０内のデータ配置の例を示す。メモリカード１３０には、論理アドレスが小さい方から順に、ブートレコード、ＦＡＴ１、ＦＡＴ２、ルートディレクトリのデータ領域、およびＤＶＤ＿ＲＴＡＶディレクトリのデータ領域の順に格納されている。さらに、これ以降の論理アドレス上に、データストリームファイルおよびデータストリームの管理ファイルなどが記録されている。ＤＶＤ＿ＲＴＡＶディレクトリにはＶＲＭＯＶ００１．ＭＰＧファイル、ＶＲＭＡＮ００２．ＩＦＯファイル等のディレクトリエントリが格納される。
【０１１１】
メモリカード１３０のウインドウ＃１として示す記録領域には、使用済み領域、動画ファイル（ＶＲＭＯＶ００１．ＭＰＧ）の一部のデータ（＃００１）を格納した領域、および別の使用済み領域から構成される。動画ファイルのデータが格納された領域のデータサイズは１メガバイト以上である。上述のように、この領域はウインドウ＃１内に離散的に存在していてもよい。
【０１１２】
また、ウインドウ＃１００として示す記録領域は、使用済み領域、動画ファイル（ＶＲＭＯＶ００１．ＭＰＧ）の一部のデータ（＃１００）、ＶＲＭＡＮ００１．ＩＦＯファイル、および未使用領域から構成される。なお、動画ファイルのデータが＃１から＃１００に分けて格納されているが、これは例である。この数はファイルサイズ（データストリームの全データ量）に応じて変化する。
【０１１３】
次に、上述の記録処理によってメモリカード１３０に書き込まれたデータストリームを読み出して、映像、音声等のコンテンツを再生する処理を説明する。
【０１１４】
図１３は、レコーダ１０の再生処理の手順を示す。まず再生制御部１６２は、ユーザが選択したデータストリームファイルのディレクトリエントリを読み出す（Ｓ３００）。なお、実際に読み出す処理は、再生制御部１６２からの指示に基づいて再生部１２１によって行われるが、以下では記載の便宜上、再生制御部１６２が読み出すとして記述する。
【０１１５】
次に、再生制御部１６２は、４キロバイトの部分ＦＡＴを読み出す（Ｓ３１０）。この部分ＦＡＴは、読み出したディレクトリエントリに格納されているデータストリームの先頭部分を格納するクラスタを管理する。
【０１１６】
次に再生制御部１６２は、４キロバイト分のＦＡＴに対応するウインドウ領域内から、データストリームを格納する連続記録単位を所定の個数分だけ読み出してテンポラリメモリ上に格納する（Ｓ３２０）。そして、デコーダ１７１に再生を指示する（Ｓ３３０）。再生開始前に読み出すべきデータ量は、例えばＶＢＶバッファサイズ分以上の映像データ量がテンポラリメモリ上に蓄積されるサイズ以上の量である。
【０１１７】
再生制御部１６２は、その部分ＦＡＴが管理するウインドウ領域内において、データストリームが格納されている連続記録単位を１つ選択して読み出す。するとデコーダ１７１が復号化を開始し、それによりコンテンツの再生が開始される（Ｓ３４０）。
【０１１８】
続いて再生制御部１６２はさらにＦＡＴを参照してＦＡＴチェーンを追跡し、次の連続記録単位に対応するクラスタ番号を検出する（Ｓ３５０）。読み出し中のデータストリームの終端に達していなければ（Ｓ３６０のＮｏ）、再生制御部１６２はウインドウ内にまだ読み出していない連続記録単位が残っているかどうか確認する（Ｓ３７０）。残ってい
れば（Ｓ３７０のＮｏ）継続して読み出す（Ｓ３４０）。残っていなければ（Ｓ３７０のＹｅｓ）、ＦＡＴチェーンを追跡し、次の４キロバイト分の部分ＦＡＴを読み出して（Ｓ３８０）、その部分ＦＡＴによって管理されるウインドウ領域内において、データストリームが格納されている１つの連続記録単位を継続して読み出す（Ｓ３４０）。
【０１１９】
一方、データストリーム終端に達していて続きがなければ（Ｓ３６０のＹｅｓ）、データの読み出しを終了する。そして、それまでに読み出したデータの再生処理が終了した後、再生処理を停止する（Ｓ３９０）。
【０１２０】
以上の再生処理によれば、レコーダ１０がＦＡＴの部分的な読み出しとデータストリームの読み出しとを交互に行っても、再生処理に必要な所望の転送速度を確保することができる。これにより、データストリームからコンテンツを途切れなく連続的に再生できる。
【０１２１】
ＦＡＴを少しずつ読み出しながら再生できるので、読み出したＦＡＴを保持するためのメモリ容量は、少なくともその読み出しサイズだけ確保されていればよい。よってＦＡＴをすべて保持するためのデータ容量と比較すると、きわめて小さいメモリ容量で十分である。例えば、３２Ｇバイトのメモリカードの場合、４Ｍバイトに較べて５１２バイトという具合に減らすことできる。これにより、レコーダ１０に必要とされるメモリのコストを抑えることができる。
【０１２２】
また、ＦＡＴを全部一旦読み出してから再生処理を開始する場合と較べて、一部のＦＡＴを読み込めばよいので、ユーザの待ち時間を著しく減らすことができる。例えば、３２Ｇバイトのメモリカードの場合、４ＭバイトのＦＡＴを３秒で読み出すのに比べて、０．０１秒という具合に減らすことできる。
【０１２３】
上述の処理を採用すれば、再生装置はメーカを問わずコンテンツを途切れなく再生できる。また、大容量のメモリカード、または比較的低性能なメモリカードであっても、連続再生を実現しやすい。
【０１２４】
さらに、上述のウインドウ領域は任意のデータアドレス上に設定できる。そして、各ウインドウ領域内の空き領域の合計サイズに基づいて、データを書き込むか否かを判断するため、各ウインドウ領域内に空き領域が離散していてもそれらの領域を有効に活用できる。
【０１２５】
なお、本実施形態による処理は、複数のデータストリームの書き込みや再生に際しても適用可能である。ただし、そのときは書き込みに際してウインドウサイズ中に確保すべき空き領域の合計データサイズは大きくなることに留意する必要がある。計算方法は、上述の数１〜数３に準じる。
【０１２６】
本実施形態によるＦＡＴを部分ＦＡＴに分けて読み出す方法は、ＦＡＴをすべて読み出してから、動画ストリームの読み出しに着手する従来の方法とは根本的に相違している。装置は、本実施形態による読み出し方法、および、従来のＦＡＴファイルシステムによる読み出し方法の両方に対応できるように構成されていても良い。またこの時、装置がより適切な読み出し方法を採用できるように、識別情報を設けてもよい。たとえば、動画ストリームが本実施形態による再生方法を想定して記録されたときには、装置はそのことを示す識別情報を含む管理ファイルをカード内に別途記述すればよい。この方法により、再生装置は識別情報の有無に応じて、ＦＡＴを部分的に読み出してコンテンツを再生するか、ＦＡＴを一括して読み出してコンテンツを再生すればよいかを判断できる。また別途、想定する部分ＦＡＴの読み出しサイズを記述してもよい。
【０１２７】
（実施形態２）
本実施形態と実施形態１との違いは、データストリームの記録中にＦＡＴ情報の書き込みを実施する点、および、ウインドウ領域中に必要な空き領域のサイズをより大きくする点である。後者については、実施形態１においては１メガバイトとしたが、本実施形態においては８メガバイトとしている。
【０１２８】
なお、本実施形態によるレコーダの構成は、特に説明がない場合には実施形態１によるレコーダ１０と同じである。
【０１２９】
図１４は、本実施形態におけるデータの記録モデルを示す。なお、エンコーダ７３は図１に示すエンコーダ１７０に対応し、バッファメモリ７４は、記録部１２０の内部に含まれているとする。ただし、エンコーダ１７０がバッファメモリ７４に相当するメモリを内部に有していてもよい。なお、図１４に示す記録モデルは、たとえばＭＰＥＧ規格に基づく記録を行う実施形態１のレコーダ１０も同様に満たしているとする。
【０１３０】
エンコーダ７３が生成するデータストリームは最大速度Ｖｉでバッファメモリ７４に入力される。そして、データストリームはバッファメモリ７４から速度Ｖｗ以上でメモリカード１３０に書き込まれる。
【０１３１】
図１５は、図１４に示す記録モデルのバッファメモリ７４上に蓄積されるデータ量の遷移例を示す。記録処理開始と同時にデータストリームは、少なくとも連続書き込み時間ｔsの間、メモリカードに書き込まれ（区間ａ）、その後、データストリームファイルの更
新が必要なＦＡＴ１の一部分（４キロバイト分）、およびディレクトリエントリ情報の一部分（４キロバイト分）を読み出す(区間ｂ)。そして、データストリームファイルのＦＡＴ情報（ＦＡＴ１の更新必要部分、ＦＡＴ２の更新必要部分、およびディレクトリエントリ）を更新する（区間ｃ）。もし、区間ｃの後のごく少量のデータストリームの書き込み（区間を図示していない）の直後にウインドウ境界を越える場合には区間ｄ、ｅの様に、再びデータストリームファイルのＦＡＴ情報（ＦＡＴの更新必要部分、ＦＡＴ２の更新必要部分、およびディレクトリエントリ）を更新する。次の連続書き込み区間ｆには、バッファメモリ中のデータストリームはＶｗ−Ｖｉの速度で減少する。その後も区間ｂ〜ｆは繰り返し現れる。
【０１３２】
図１６は、本実施形態による記録制御部１６１の記録処理の手順を示す。実施形態１に関する図１１と比較すると、図１６のステップＳ４１０、Ｓ４２０、Ｓ４３０、Ｓ４４０、Ｓ４６０、Ｓ４７０、Ｓ４８０およびＳ４９０は図１１と同様である。一方、ステップＳ４００およびＳ４５０では、３２メガバイトのウインドウ領域中に８Ｍバイトの空き領域を検出している点が異なる。
【０１３３】
また、図１６のステップＳ５００からＳ５５０も、図１１に示す処理と異なっている。具体的には、データストリームの書き込み（Ｓ４２０）の後で、８Ｍバイト分の連続書き込みが完了すると（Ｓ５００のＹｅｓ）、ウインドウ領域に対応するＦＡＴ１、およびディレクトリエントリ（ＤＩＲ）を読み出す（Ｓ５１０）。次に、ステップＳ５１０で読み出したデータを利用して、メモリカードに記録済みのデータサイズ、記録時刻、およびＦＡＴチェーン等を反映してデータストリームファイル（ＶＲＭＯＶ００１．ＭＰＧ）のＦＡＴ１、ＦＡＴ２、およびディレクトリエントリを更新する（Ｓ５２０）。
【０１３４】
さらに、ウインドウ内に追記可能であれば（Ｓ４４０のＹｅｓ）、書き込みを継続して行う。そして、ウインドウ内に追記不可であれば（Ｓ５３０のＮｏ、Ｓ４４０のＮｏ）、データストリームファイルのＦＡＴ情報をステップＳ５１０、Ｓ５２０と同様に更新する（Ｓ５４０、Ｓ５５０）。
【０１３５】
なお、ステップＳ５００において８ＭＢのデータが書き込まれたかどうかを判断するためには、ステップＳ５１０またはステップＳ５４０が完了した時点で、書き込み済みのデータストリームの累計をゼロにリセットすればよい。
【０１３６】
以上の構成において、ウインドウ領域内に最小限必要であるとしたデータサイズは、図１６において、エンコーダからバッファメモリへの最大転送速度Ｖｉ＝３０Ｍビット／秒、バッファメモリからメモリカードへの転送速度Ｖｗ＝４Ｍバイト／秒、４キロバイトあたりのＦＡＴ１、もしくはディレクトリエントリの読み出し速度ｔＦＲ＝４ミリ秒、ＦＡＴ１、ＦＡＴ２、およびディレクトリエントリの合計書き込み時間ｔＦＷ＝１１０ミリ秒、図１５に示した様にデータストリームを最低限連続書き込みする時間をｔS、連続書き込みデータサイズをＳＷとした時、次の関係が成り立つ。
【０１３７】
Ｖｉ×２×（ｔFW＋２×ｔFR）＝(Ｖｗ−Ｖｉ)×ｔS      （数４）
これより、
ｔS＝２×Ｖｉ×（ｔFW＋２×ｔFR）／（Ｖｗ−Ｖｉ）    （数５）
よって、
Ｓｗ＝ｔS×Ｖｗ＝２×Ｖｗ×Ｖｉ×（ｔFW＋２×ｔFR）／（Ｖｗ−Ｖｉ）  （数６）
となる。これにより、Ｓｗ＝７．９６Ｍバイト＜８Ｍバイトとなる。
【０１３８】
よって、１ウインドウ領域中で、８Ｍバイトだけ連続的に書き込み動作を行えばデータストリームのＦＡＴ情報を更新しながら、データストリームを書き込みできることになる。また、同時にウインドウサイズ中には実施の形態１の１Ｍバイト以上のデータストリームが存在することもなり、実施形態１と同じ再生処理により連続読み出しが可能になる。
【０１３９】
なお、本実施形態では、データストリームの記録中にＦＡＴ情報の更新を行うとしたが、これに限らずさらに別のデータストリームの書き込みや再生を行うことを前提としてもよい。また、複数のデータストリームの書き込みや再生であってもよい。だだし、この場合さらにウインドウサイズ中に確保すべき空き領域の合計データサイズは大きくなる。
【０１４０】
なお、連続的に書き込み処理を行うべきデータサイズＳｗが、カードの性能によって決定される転送速度Ｖｗを保証するための連続記録単位よりも小さい場合、連続記録単位の値を、連続的に書き込み処理を行うべきデータサイズとすればよい。
【０１４１】
（実施形態３）
本実施形態においては、データの格納方法に関する変形例を説明する。特に説明のない点以外は、実施形態１によるレコーダまたは実施形態２によるレコーダのいずれを利用してもよい。
【０１４２】
図１７は、本実施形態によるデータストリームの記録位置、およびデータサイズ例を示す。図１７の（ａ）部分はウインドウ間のデータのつながりを規定するＦＡＴを示し、（ｂ）の部分はウインドウ領域とその領域内のデータサイズの関係を示す。
【０１４３】
データストリームはウインドウ＃１から＃１０に分割されて記録されている。ウインドウ＃１には２０キロバイトだけのデータストリームが含まれる。ウインドウ＃１〜＃９にはそれぞれ合計８Ｍバイト以上のデータストリームが記録されている。ウインドウ＃１０は５０キロバイト分のデータストリームが格納されている。
【０１４４】
実施形態１および２においては、少なくとも連続記録単位はデータストリームを格納しているとした。しかし、本実施形態においては、データストリームファイルの先頭部分のデータを格納したウインドウに関しては、連続記録単位のすべてにデータが格納されている必要はない。例えば連続記録単位が６４キロバイトの場合、ウインドウ＃１は６４キロバイトに満たない３２キロバイトであってもよい。
【０１４５】
ただし、このようにデータストリーム先頭がウインドウ領域外に連続記録単位に満たない状態で存在する場合を想定すると、次の処理が必要となる。すなわち、再生処理のデータの復号開始前に、図１４で示したバッファメモリ内にデータストリームを多く読み出しておく必要がある。その目的は、部分ＦＡＴの１回分の読み出し時間中にバッファメモリがアンダーフローしないようにするためである。たとえば、復号開始前に実施形態１においてＶｏ×ｔFR分のデータを読み出した後で、復号開始すればよい。
【０１４６】
データストリームファイルの先頭部分に関して、ウインドウ内の連続記録単位のすべてにデータが格納されている必要はないとして取り扱うと、以下のケースで好都合である。すなわち、データストリームファイルを２つのファイルに分割するケースや、前方削除するケースである。これらのケースにおいては、分割処理、前方削除処理によって分割点の前後のデータストリームが１ウインドウ領域中の合計データサイズを満たさなくなることがある。また、このうち分割処理においては、分割点を含むクラスタを、分割点の前部分のデータストリームファイル、または分割点の後部分のデータストリームファイルとして、分割点を含むクラスタの必要部分をコピーした後で、少なくともどちらかのファイル（分割点より前方部分、もしくは後方部分）の一部として含む必要がある。
【０１４７】
同様に、データストリームファイルの先頭部分を含むウインドウ領域が、所定量（実施形態１の１メガバイトや、実施形態２の８メガバイト）のデータを含まなくともよい。このときも、分割処理、前方削除処理を想定した場合には再生処理において何らかの対応が必要となる。すなわち、データの復号処理を開始する前に、１つの部分ＦＡＴを読み出してもバッファメモリがアンダーフローしない程度に、図７で示したバッファメモリ内にデータストリームを多めに読み出しておく必要がある。
【０１４８】
以上の構成により、分割処理を容易に完了することが可能になると同時に、分割後のデータストリームファイルであっても、容易に連続再生を保証できる。
【０１４９】
なお、データストリームファイルの末尾部分のデータを格納したウインドウに関しても同様に、空き領域の連続記録単位のすべてにデータが格納されている必要はない。例えば、空き領域の途中以降にデータストリームが記録されていなくともよい。これはデータストリームのデータサイズは任意のデータサイズとなること、および後方削除処理が発生するからである。
【０１５０】
なお、上述の実施形態の説明においては、ウインドウサイズは３２Ｍバイトであるとしたが、図１３の再生処理のＳ３１０、およびＳ３８０において、４キロバイトではなく、たとえば１６キロバイトの領域を管理する部分ＦＡＴを読み出すとし、このときのウインドウサイズを１２８Ｍバイトとして空き領域を捜してもよい。ただしこの場合、数１、もしくは数４のｔFRは４倍にする必要がある。
【０１５１】
さらに、４キロバイトではなく、たとえば８キロバイトの連続領域を管理する部分ＦＡＴを読み出すとすると、メモリ領域をより有効に利用できる。より具体的には、部分ＦＡＴによって管理されるメモリ領域の終端付近（４キロバイト目近傍）を有効に利用できる。その理由は、空き領域が、ある部分ＦＡＴによって管理されるメモリ領域の終端付近と次の部分ＦＡＴによって管理される次のメモリ領域の始端付近とにまたがっている場合には、それらを合算した値を空き領域の値として管理できるからである。
【０１５２】
また、実施形態の説明においては、部分ＦＡＴ、および部分ＦＡＴによって参照される各メモリ領域は、図１９に示す様に重ならないことを想定した。しかし、部分ＦＡＴは、データストリームファイルの先頭アドレスに対応するＦＡＴエントリから４キロバイト分の連続領域としてもよく、また、部分ＦＡＴによって管理される各メモリ領域は重なってもよい。これは、部分ＦＡＴが管理する領域、または、部分ＦＡＴの先頭位置は図２０に示す様に任意で決定され得ることを意味する。さらにこのことは、部分ＦＡＴが管理する開始セクタは、セクタ境界と一致する例を示してきたが、一致しなくとも良いことも意味する。
【０１５３】
なお、上述の実施形態の説明においては、メモリカードインタフェースにおいて発生する処理遅延時間については言及しなかったが、処置遅延時間ｔohを考慮して、数１を数７に示すように変更してもよい。
Ｖｏ×（ｔFR＋ｔoh）＝（Ｖｒ−Ｖｏ）×ｔS        （数７）
【０１５４】
またさらに、メモリカードインタフェースにおいて発生する処理遅延時間を考慮して、例えばＶｒの８０％程度にＶｏの最大値を若干小さく制限してもよい。
【０１５５】
上述の実施形態の説明においては、図７のモデルでは部分ＦＡＴを格納するメモリを明示しなかった。図１８は、部分ＦＡＴを格納するためのメモリを設けた構成を示す。また、部分ＦＡＴは連続したセクタから構成されるとしたが、例えば、４キロバイトの部分ＦＡＴを単位として、離れた部分ＦＡＴを選択してもよい。
【０１５６】
また、これまでは動画をリアルタイム圧縮して記録する処理を説明した。しかしながら、ＰＣに接続されたメモリカードリーダへＳＤカードを装着し、非リアルタイムに動画データをウインドウ内のデータ領域に記録してもよい。この場合、例えば実施の形態１と比較して、ウインドウ内において連続再生単位の合計値が１メガバイト以上となる様に記録すれば良い。
【０１５７】
また、主として通常の再生処理時の動作を説明した。しかし、Ｉフレームのみを使った高速再生時において、Ｉフレームの更新速度を短縮化することもできる。
【０１５８】
上述の実施形態の説明においては、データストリームの転送速度Ｖｉ，Ｖｏは３０Ｍｂｐｓとしたが、より低い値であってもよい。ただし、この場合ウインドウ領域中に必要となる空き領域の合計量はより少なくてもよいし、３０Ｍｂｐｓ時と同じにしてもよい。
【０１５９】
上述の実施形態の説明においては、再生時においてデータストリームファイルの読み出しが中断される時間は、部分ＦＡＴの読み出しを行う時間に等しいとしたが、例えば別のデータの読み出しや、別のデータの書き込みを行う時間等が含まれてもよい。すなわち、再生を行うデータストリームの読み出しが中断される時間であれば何の処理時間であってもよい。
【０１６０】
また、メモリカード１３０はリムーバブルであるとしたが、これは例である。上述したファイルシステムによりファイルを管理するメディアであれば、他の半導体記録媒体（たとえばＦｅＲＡＭ、ＭＲＡＭ）であってもよいし、光ディスク（たとえばＤＶＤ−ＲＡＭ、ＭＯ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、ＤＶＤ＋Ｒ、ＣＤ−Ｒ、ＣＤ−ＲＷ）であってもよい。さらにレコーダ１０に内蔵されたハードディスクなどの非可換メディアであってもよい。
【０１６１】
また、ＦＡＴ３２ファイルシステムを例に挙げたが、ＦＡＴ１６やＦＡＴ１２ファイルシステムであってもよい。さらに、ＦＡＴ３２／ＦＡＴ１６／ＦＡＴ１２と同様なファイル管理構造であれば異なるファイルシステムであってもよい。
【０１６２】
図１等の各機能ブロックは、典型的にはＣＰＵ１８１に代表される集積回路（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ；ＬＳＩ）のチップとして実現される。これらは個別に１チップ化されてもよいし、一部または全てを含むように１チップ化されてもよい。例えば、図１においては、ＭＰＥＧエンコーダ部１７０とシステム制御部１８０とは別個の機能ブロックとして示されている。これらはそれぞれ別個の半導体チップとして実装されてもよいし、物理的に同一のチップによって実現してもよい。また、システム制御部１８０、ＭＰＥＧエンコーダ１７０およびＭＰＥＧデコーダ１７１の機能を集積化して、１つのチップ回路として実現してもよい。ただし、例えば符号化または復号化の対象となるデータを格納するメモリのみを集積化の対象から除外してもよい。
【０１６３】
なお、上述の「ＬＳＩ」は、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。集積回路化の手法はＬＳＩに限られることはなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用してもよい。
【０１６４】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、その技術を用いて機能ブロックの集積化を行ってもよい。例えば、バイオテクノロジーを利用したいわゆるバイオ素子として集積化を行ってもよい。
【０１６５】
また、本明細書においては、データストリームはプログラムストリームであるとして説明した。しかし、トランスポートストリームやＰＥＳストリーム等のビットストリームであってもよい。また、映像はＭＰＥＧ−２ビデオストリームを例としたが、ＭＰＥＧ−４ビデオストリームやＭＰＥＧ−４ＡＶＣストリームであってもよい。また、音声もリニアＰＣＭオーディオストリームやＡＣ−３ストリーム等であってもよい。映像や音声以外の他の種類（グラフィックス情報や文字情報等）のマルチメディア情報を含んでいてもよい。
【０１６６】
なお、全プログラムストリーム（全ＶＯＢ）が１個のデータストリームファイルに格納されるとしたが、それぞれ別々のデータストリームファイルとして分離されていてもよい。また、データストリームファイルに関する全管理データが１個の管理ファイルに格納されるとしたが、別々のデータストリームファイルの管理データファイルとして分離されてもよい。
【産業上の利用可能性】
【０１６７】
本発明による装置および方法を利用して記録媒体（たとえばメモリカード）にデータストリームを記録すると、再生時に所望の転送速度を容易に確保することができる。よってコンテンツを再生する際に、再生装置の処理がフリーズすることなく、かつ、動画のコマ落ち、音声の途切れが生じないように連続的に再生することができる。記録媒体の動作速度に応じてデータストリームを記録するため、その記録媒体に適切に読み出すことが可能な再生装置であれば、メーカが異なる再生装置間における連続再生の互換性確保が容易となる。また、大容量のメモリカード、または比較的低性能なメモリカードであっても、連続再生の互換性を実現しやすい。また、データストリームの転送レートを維持しながら、従来よりも小さな単位で空き領域をデータ領域の記録先として利用可能になる。
【符号の説明】
【０１６８】
１０  レコーダ
１００  映像信号入力部
１０１  映像圧縮部
１０２  音声信号入力部
１０３  音声圧縮部
１０４  システムエンコード部
１１０  映像信号出力部
１１１  映像伸長部
１１２  音声信号出力部
１１３  音声伸長部
１１４  システムデコード部
１２０  記録部
１２１  再生部
１３０  取り外し可能なメモリカード
１６０  連続データ領域検出部
１６１  記録制御部
１６２  再生制御部
１６３  論理ブロック管理部
１６４  編集制御部
１７０  ＭＰＥＧエンコーダ
１７１  ＭＰＥＧデコーダ
１７５  メディア制御部
１８０  システム制御部
１８１  ＣＰＵ
１８２  ＲＯＭ
１８３  ＲＡＭ
【図１】
0005303023.tif 000002
【図２】
0005303023.tif 000003
【図３】
0005303023.tif 000004
【図４】
0005303023.tif 000005
【図５】
0005303023.tif 000006
【図６】
0005303023.tif 000007
【図７】
0005303023.tif 000008
【図８】
0005303023.tif 000009
【図９】
0005303023.tif 000010
【図１０】
0005303023.tif 000011
【図１１】
0005303023.tif 000012
【図１２】
0005303023.tif 000013
【図１３】
0005303023.tif 000014
【図１４】
0005303023.tif 000015
【図１５】
0005303023.tif 000016
【図１６】
0005303023.tif 000017
【図１７】
0005303023.tif 000018
【図１８】
0005303023.tif 000019
【図１９】
0005303023.tif 000020
【図２０】
0005303023.tif 000021