説明

データ処理装置

【課題】FATファイルシステムが構築された記録媒体に書き込まれたコンテンツデータの途切れない再生を実現する。
【解決手段】データ処理装置は、FATの一部分である部分FATを読み出す再生部と、当該部分FATに基づいて、媒体に記録されたコンテンツのデータストリームの読み出しを再生部に指示する制御部と、データストリームに基づいてコンテンツを再生するデコード部とを備えている。第1部分FATに基づき所定量以上の第1データストリームの読み出しが完了した後、デコード部による再生処理が継続されている間に、再生部は第1部分FATに続く第2部分FATを読み出し、制御部は、第2部分FATに基づいて第2データストリームの読み出しを再生部に指示する。この「所定量」は、データストリームの読み出し中断時間にわたって再生されるべきデータストリームを確保するまで、継続した読み出しが必要となるデータ量である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、FATファイルシステムが構築された記録媒体に、コンテンツのデータストリームを記録し、コンテンツを再生する技術に関する。より具体的には、本発明は、記録媒体に記録されたデータストリームから動画や音声等のコンテンツを連続的に再生するための、データストリームの記録処理および再生処理に関する。
【背景技術】
【0002】
近年、DVD等の光ディスク、ハードディスク等の磁気ディスク、半導体メモリ等のメディアにコンテンツのデジタルデータを書き込み、保存できるデジタル機器(光ディスクレコーダ、カムコーダ等)の普及が進んでいる。このようなコンテンツは、例えば、放送された番組やカムコーダ等によって撮影された映像および音声である。
【0003】
近年はPCにもコンテンツの記録、再生および編集機能が実装されており、PCも上述のデジタル機器に含めることができる。PCでは、文書データなどのデータを記録するために、従来からハードディスク、光ディスク、半導体メモリ等のメディアが利用されている。したがって、そのようなメディアでは、PCと連携可能なデータ管理構造、例えばFAT(File Allocation Table)を用いたファイルシステムが採用されている。現在多く利用されているFAT32ファイルシステムでは、1個当たり最大4ギガバイトのサイズを有するファイルを取り扱うことができ、また最大記録可能容量が2テラバイトのメディアを管理できる。
【0004】
メディアの最大記録可能容量の増加に伴い、コンテンツの総記録時間が長くなっている。光ディスク、ハードディスク、半導体メモリ等はいわゆるランダムアクセスが可能なメディアであるため、そのようなメディアに長時間のコンテンツのデータストリームを格納するときには、コンテンツの任意の位置から再生できると便利である。
【0005】
例えば特許文献1では、データストリームの先頭から一定の時間間隔ごとに、再生時刻とその時刻に再生されるAVデータの格納アドレスとの対応を規定したタイムマップ情報を生成している。ユーザ指定された開始時刻、終了時刻それぞれを、タイムマップ情報を参照して開始アドレス、終了アドレスに変換し、そのアドレスに格納されているデータを読み出すことにより、その時刻からコンテンツを再生することができる。
【0006】
ところで、現在、FATファイルシステムが構築された記録媒体が多く販売されている。例えば取り外し可能な半導体メモリ(メモリカード)は、一般にFATファイルシステムによりファイル管理されている。
【0007】
半導体メモリにおいては、記録先アドレスはセクタと呼ばれる512バイト単位で指定される。各アドレスには1セクタを単位とする論理アドレスが割り振られる。
【0008】
一方、FATファイルシステムにおいては、記録領域はクラスタと呼ばれる単位で、使用/未使用の状況が管理される。例えば半導体メモリの記憶容量が2ギガバイト以下であれば、1クラスタのデータサイズは32セクタ(すなわち16キロバイト)である。このときはFAT16と呼ばれるファイルシステムが使われる。一方、半導体メモリの記憶容量が2Gバイトを超える場合であれば、1クラスタのデータサイズは64セクタ(すなわち32キロバイト)である。このときはFAT32とよばれるファイルシステムが使われる。
【0009】
このような半導体メモリに対してデータストリームを記録する際には、書き込み先の複数のセクタの連続性の程度に応じて、書き込み速度が変化する。たとえば書き込み先のセクタ番号がばらばらの場合には、書き込み速度が低下する。その理由は、例えばすでに書き込まれているセクタと新規に書き込むセクタが同一クラスタ内に混在する場合、いったん書き込み済みのデータを読み、その後で記録済みデータの再書き込みおよび新規データの書き込みの実施が必要となり、処理の遅延が発生するためである。
【0010】
逆に、複数の連続したセクタやクラスタに続けて書き込みを行えば、通常用途において想定されている書き込み速度よりも速い速度でデータを書き込むことができる。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開平11−155130号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
近年の記録媒体の大容量化に伴い、種々の問題が生じることが想定される。
【0013】
たとえば記録媒体の大容量化が進むと、その容量に応じてFATのデータサイズも大きくなる。記録容量が32ギガバイトになると、FATのデータサイズは4メガバイトにもなる。このようなデータサイズが大きいFATを装置が全て読み出して保持しなければならないとすると、それに見合う内部メモリが必要となり製造コストが大幅に増大する。また、すべて読み出す間はユーザを待たせることになり、ユーザの操作に対する機器のレスポンスが悪化する。よって、改善されたFATの読み出し方法が必要とされている。
【0014】
コストの問題を回避するために、FATの一部のみを読み出してキャッシュ用メモリに保持する方法が考えられる。しかし、この方法によれば、再生時にFATチェーンの追跡にしたがってキャッシュメモリに置くFATテーブルの入れ替えが負担となり、コンテンツを連続再生できない可能性が高くなる。具体的には、コンテンツデータの記録位置が途中で離れるとFATテーブルを読み出しキャッシュメモリへ再登録する処理を頻繁に行う必要が生じる。特にFATの読み出し期間中はコンテンツの読み出しは中断されるため、バッファに蓄えられた映像データ/音声データが再生され尽くされてしまう場合が考えられる。この時、動画のコマ落ち、音声の途切れが生じる。
【0015】
本発明の目的は、コンテンツ等の連続再生を可能にするために、FATファイルシステムが構築された記録媒体にデータを効率的に書き込む方法を提供すること、および、その方法を実行する装置を提供することである。また本発明の他の目的は、そのような方法および装置によって書き込まれたデータを読み出して、コンテンツを途切れなく再生することである。
【課題を解決するための手段】
【0016】
本発明によるデータ処理装置は、ファイル・アロケーション・テーブル(FAT)に基づいてデータの格納位置が規定される記録媒体に、コンテンツのデータストリームを書き込む。前記データ処理装置は、前記FATの一部分である部分FATの読み出し時間を少なくとも含む、データストリームの読み出し中断時間にわたって再生されるべき前記データストリームを確保するまで継続的に読み出す必要があるデータ量を決定する制御部と、1つの部分FATによって管理される部分領域内において、前記データ量のデータを格納可能な空き領域を検出する領域検出部と、前記空き領域に前記コンテンツのデータストリームを書き込む記録部とを備えている。それにより、前記部分FATに基づく前記データストリームの読み出しおよび前記コンテンツの再生を可能にする。
【0017】
前記記録媒体は、前記データストリームの再生速度以上の速度で読み出しが可能な所定の連続データ単位を有しており、前記部分領域は前記連続データ単位の集合である。前記領域検出部は、前記部分領域から1以上の前記連続データ単位を含む前記空き領域を検出してもよい。
【0018】
前記領域検出部は、いずれかの部分FATによって管理される部分領域内の空き領域を検出してもよい。
【0019】
前記領域検出部は、前記部分領域内に連続して存在する空き領域であって、その領域長が前記データ量以上の空き領域を検出してもよい。
【0020】
前記領域検出部は、前記部分領域内に離散的に存在する複数の空き領域であって、各空き領域の領域長の合計値が前記データ量以上の複数の空き領域を検出してもよい。
【0021】
前記連続記録単位から読み出されたデータの転送速度がVr、部分FATの読み出し時間をt、記録するデータストリームのビットレートをVoとすると、前記制御部は、継続した読み出しが必要となる前記データ量をVr×Vo×t/(Vr−Vo)以上に決定し、前記記録部は、前記データ量のデータを書き込んでもよい。
【0022】
前記領域検出部は、1つの部分FATによって管理される部分領域内に存在する空き領域であって、その領域長が合計して前記データ量の空き領域を検出してもよい。
【0023】
前記記録部は、前記コンテンツのデータストリームを前記空き領域の全部または一部に書き込んでもよい。
【0024】
前記記録部は、前記データストリームの先頭部分のデータおよび末尾部分のデータの少なくとも一方を、検出された空き領域の一部に書き込んでもよい。
【0025】
本発明による他のデータ処理装置は、ファイル・アロケーション・テーブル(FAT)に基づいてデータの格納位置が規定される記録媒体から、前記FATの一部分である部分FATを読み出す再生部と、前記部分FATに基づいて、前記記録媒体に記録されたコンテンツのデータストリームの読み出しを前記再生部に指示する制御部と、読み出されたデータストリームに基づいてコンテンツを再生するデコード部とを備えている。第1部分FATに基づき所定量以上の第1データストリームの読み出しが完了した後、前記デコード部による再生処理が継続されている間に、前記再生部は前記第1部分FATに続く第2部分FATを読み出し、前記制御部は、前記第2部分FATに基づいて第2データストリームの読み出しを前記再生部に指示する。前記所定量は、前記第2部分FATの読み出し時間を少なくとも含む、データストリームの読み出し中断時間にわたって再生されるべきデータストリームを確保するまで、継続した読み出しが必要となるデータ量である。
【0026】
前記記録媒体は、前記データストリームの再生速度以上の速度で読み出しが可能な所定の連続データ単位を有しており、前記第1部分FATおよび前記第2部分FATに基づいて管理される各部分領域は前記連続データ単位の集合である。前記制御部は、前記部分FATに基づいてデータストリームの読み出しを前記再生部に指示し、前記再生部は、前記データストリームの再生速度以上の速度で前記データストリームを読み出してもよい。
【発明の効果】
【0027】
本発明によれば、FATがその一部分を単位として読み出されることを想定して、記録媒体にデータを書き込む。すなわち、記録装置は、FATの一部分(部分FAT)の読み出しに要する時間にわたって再生されるコンテンツのデータ量を計算し、記録媒体の記録領域内において、そのデータ量のデータを格納可能な空き領域を検出する。そして、その空き領域にコンテンツのデータストリームを書き込む。空き領域は、1つの部分FATによって管理される部分領域の中で確保される。
【0028】
これにより、装置がFATの部分的な読み出しとデータストリームの読み出しとを交互に行っても、再生処理に必要なデータを確実に確保することができる。よってデータストリームからコンテンツを途切れなく連続的に再生できる。また、FATを少しずつ読み出しながら再生できるので、FATを保持するためのメモリ容量は、FATをメモリ上にすべて保持するためのデータ容量と比較すると極めて小さくてよい。これにより、装置に必要とされるバッファメモリのコストを抑えることができる。
【0029】
また、FATを全部一旦読み出してから再生処理を開始する場合と較べて、一部のFATを読み込めばよいので、ユーザの待ち時間を著しく減らすことができる。
【図面の簡単な説明】
【0030】
【図1】実施形態1によるレコーダ10の構成を示す図である。
【図2】メモリカード130のデータ管理構造を示す図である。
【図3】メモリカード130におけるFATファイルシステムのデータ管理を示す図である。
【図4】メモリカード130のファイルシステムの階層構造の例を示す図である。
【図5】データストリームファイル20のデータ構造を示す図である。
【図6】プログラムストリームの管理情報の例を示す図である。
【図7】バッファメモリ71およびデコーダ72を利用した、データストリームの再生モデルを示す図である。
【図8】図7に示す再生モデルを利用したときの、バッファメモリ71に蓄積されるデータ量の時間遷移を示す図である。
【図9】動画記録時において空き領域を確保するための条件の例を示す図である。
【図10】レコーダ10の起動時における、メモリカードに関する初期化処理の手順を示すフローチャートである。
【図11】レコーダ10の記録処理の手順を示すフローチャートである。
【図12】記録処理後のメモリカード130内のデータ配置の例を示す図である。
【図13】レコーダ10の再生処理の手順を示すフローチャートである。
【図14】各実施形態におけるデータの記録モデルを示す図である。
【図15】図14に示す記録モデルのバッファメモリ74上に蓄積されるデータ量の遷移例を示す図である。
【図16】実施形態2による記録制御部161の記録処理の手順を示すフローチャートである。
【図17】実施形態3によるデータストリームの記録位置、およびデータサイズ例を示す図である。
【図18】部分FATを格納するためのメモリを設けた構成を示す図である。
【図19】部分FATとメモリ空間の関係例を示す図である。
【図20】部分FATとメモリ空間の他の関係例を示す図である。
【発明を実施するための形態】
【0031】
以下、添付の図面を参照しながら、本発明によるデータ処理装置の実施形態を説明する。
【0032】
図1は、本実施形態によるレコーダ10の構成を示す。レコーダは、映像および音声を含む動画のデータストリーム(動画ストリーム)をメモリカード130に書き込む機能(録画機能)、メモリカード130に書き込まれた動画ストリームを読み出して、動画を再生する機能(再生機能)およびメモリカード130に書き込まれた動画ストリームを編集する機能(編集機能)を有する。レコーダ10は、たとえば持ち運び可能なカムコーダ、テレビ放送番組等を録画する据え置き型の記録装置である。
【0033】
以下、レコーダ10の構成要素を説明する。レコーダ10は、映像信号入力部100と、音声信号入力部102と、映像信号出力部110と、音声信号出力部112と、MPEGエンコーダ170と、MPEGデコーダ171と、メディア制御部175と、システム制御部180と、CPU181とを有している。
【0034】
レコーダ10には、メモリカード130が取り外し可能な形態で挿入され、メモリカード130に動画を録画できる。なお、メモリカード130はレコーダ10の必須の構成要素ではない。
【0035】
映像信号入力部100は、たとえばCCDカメラや、アンテナ(図示せず)と接続された映像入力端子(図示せず)である。音声信号入力部102は、たとえばマイクや、アンテナ(図示せず)と接続された音声入力端子(図示せず)である。
【0036】
MPEGエンコーダ170(以下「エンコーダ170」と記述する。)は映像圧縮部101と音声圧縮部103とシステムエンコード部104とを有している。映像圧縮部101は、映像信号入力部100から映像信号を受け取り、MPEG規格に基づいて圧縮符号化する。音声圧縮部103は、音声信号入力部102から映像信号を受け取り、MPEG規格に基づいて(圧縮)符号化する。その結果、ビデオデータおよびオーディオデータが出力される。
【0037】
システムエンコード部104は、ビデオデータおよびオーディオデータをインターリーブして動画ストリームを生成する。より具体的には、システムエンコード部104は、ビデオデータおよびオーディオデータをそれぞれ格納したパケットを生成し、そのパケットを配列して動画ストリームを生成する。このとき、さらに他のデータ(文字データ、管理情報など)もパケット化されて動画ストリームの一部として配列され得る。
【0038】
メディア制御部175は、記録部120および再生部121を有しており、それぞれ、メモリカード130に対する動画ストリームや他のデータの書き込みおよび読み出しを制御する。
【0039】
本実施形態においては、メモリカード130はSDメモリカードなどの規格に準拠した記録媒体であるとする。そして、メモリカード130に書き込まれる動画ストリームはMPEG2規格に準拠したプログラムストリームであるとする。プログラムストリームは、「パック」と呼ばれる固定長のデータ単位から構成される。「パック」はパケットの1つの例示的な形態として知られている。メモリカード130の構成、および、プログラムストリームのデータ構造は、図2〜図6を参照しながら、後に詳しく説明する。
【0040】
レコーダ10の他の構成要素を説明する。MPEGデコーダ171(以下「デコーダ171」と記述する。)は、映像伸長部111と音声伸長部113とシステムデコード部114とを有している。処理の順序で説明すると、システムデコード部114は動画ストリーム、すなわちプログラムストリームをパケットの種類に応じて分離し、ビデオデータのパケットを映像伸長部111に送り、オーディオデータのパケットを音声伸長部113に送る。映像伸長部111は、ビデオデータをMPEG規格に基づいて伸長し、映像信号出力部110に送る。音声伸長部113は、オーディオデータをMPEG規格等に基づいて伸長し、音声信号出力部112に送る。
【0041】
映像信号出力部110は、たとえばレコーダ10がカムコーダのときには液晶表示画面、録画機のときには映像信号を出力する端子である。音声信号出力部112は、たとえばスピーカや音声信号を出力する端子である。
【0042】
システム制御部180は、CPU181とROM182とRAM183とを有している。CPU181は、たとえばROM182に格納されたコンピュータプログラムを読み出し、RAM183上に展開して実行することにより、各種の機能を実現できる。たとえばCPU181は、連続データ領域検出部160、記録制御部161、再生制御部162、論理ブロック管理部163、編集制御部164として機能する。以下では、CPU181によって実現する各機能を独立した構成要素として取り扱う。各構成要素間のデータの授受は、プログラム間のデータの受け渡しに相当する。
【0043】
記録制御部161はプログラムストリームの記録を開始する前に、連続データ領域検出部(以下「領域検出部」と記述する。)160を起動して、空き領域を捜させる。領域検出部160はあらかじめメモリカード130から読み出したFATを利用して、初期化処理において作成した空き領域管理テーブルから連続した空き領域を探索する。そして探索の結果として検出された空き領域上にプログラムストリームの記録を開始する。そして、検出した空き領域へのプログラムストリームの書き込みが終わるまでに、次の空き領域を継続的に探索しプログラムストリームの記録を継続する。
【0044】
また、再生時は、ユーザが再生すべきコンテンツを選択すると、再生制御部162の制御により、再生部121を経由して、コンテンツに対応するプログラムストリームの管理情報を管理ファイルから読み出し、その管理ファイルに記載されたアドレス情報を参照して、さらにプログラムストリームを読み出す。このプログラムストリームをシステムデコード部114で映像信号と音声信号に分離し、各々を映像伸長部111及び音声伸長部113を介して、映像信号出力部110及び音声信号出力部112へ出力する。
【0045】
動画の編集時においては、編集制御部164は、たとえば記録済みのコンテンツの一部に対する編集指示をユーザから受け取る。このとき編集制御部164は、再生部121に指示して、データストリームの編集対象の部分やその管理データを読み出させる。たとえばコンテンツの一部を削除する編集においては、編集制御部164は、読み出されたデータのうちから削除するべき部分を特定し、その部分を削除する。編集制御部164は削除されずに残されたデータやその管理データをメモリカード130に書き込むよう、記録部120に指示する。
【0046】
ここで、図2および図3を参照しながら、メモリカード130におけるデータ管理構造および論理構造を説明する。その後、図4〜図6を参照しながら、メモリカード130に
書き込まれるデータストリームのデータ構造の例を説明する。
【0047】
図2は、メモリカード130のデータ管理構造を示す。本実施形態においては、メモリカード130は32ギガバイトの記録容量を持つとし、FAT32ファイルシステムによってファイルが管理されるとして説明する。
【0048】
メモリカード130において、データの書き込みおよび読み出しが可能な最小の単位はセクタ131である。各セクタ131にはアドレスが割り当てられており、アドレスを利用して一意にセクタを特定できる。各セクタ131のデータサイズは512バイトとする。
【0049】
複数のセクタ131をまとめて、論理ブロックと呼ばれるクラスタ132が構成される。クラスタ132は、空き領域の管理単位であり、かつ領域の書き込み/読み出し単位である。クラスタ132を構成するセクタの数、換言すれば、クラスタ132のデータサイズは、メモリカードの記録容量に応じて定められているとする。たとえばメモリカード130の記録容量が1Gバイト以下の場合には1クラスタのデータサイズは16キロバイトであり、1Gバイトを超える場合には32キロバイトであるとする。さらに本実施形態においては、1クラスタは64個のセクタから構成されており、そのデータサイズは32キロバイトとする。
【0050】
さらにメモリカード130には、連続記録単位133が規定されている。連続記録単位133は、メモリカード130がその書き込み性能値を達成可能な条件として指定した、連続したセクタ、もしくは連続したクラスタ領域としてアクセスすべきデータ単位である。連続記録単位133のデータサイズはあらかじめ決められており、たとえばカード内の所定のレジスタ(図示せず)に保持されているとする。本実施形態においては、連続記録単位133は連続する2つのクラスタによって構成され、そのデータサイズは64キロバイトであるとする。
【0051】
また、メモリカード130は、連続再生単位を規定しているとする。連続再生単位は、メモリカード130が、その読み出し性能値を達成可能な条件として指定した、連続したセクタ、もしくは連続したクラスタ領域としてアクセスすべきデータ単位である。連続再生単位のデータサイズはあらかじめ決められており、たとえばカード内の所定のレジスタ(図示せず)に保持されているか、あらかじめ決まっているとする。本実施形態においては、連続再生単位は連続のデータサイズは16キロバイトであるとする。なお、一般的に書き込み速度は読み出し速度よりも遅く、これにより連続記録単位は連続再生単位よりもデータサイズが大きい場合が多い。
【0052】
メモリカード130においては、任意の論理アドレスの4セクタ分または8セクタ分のデータ読み出し時間の値があらかじめ決まっており、たとえばカード内の所定レジスタに保持されているとする。これは、特にディレクトリエントリやFATの部分的な読み出し速度を保証するために必要である。
【0053】
また、メモリカード130は書き込み用バッファサイズの値もあらかじめ決まっており、同様にカード内の所定レジスタに保持されているとする。さらに、このバッファサイズ分のデータの書き込み処理が完了するまでの処理時間もあらかじめ決まっており、メモリカード内部のレジスタに保持されているとする。
【0054】
なお、少なくとも連続記録単位133のデータサイズ以上の連続したクラスタから構成されるメモリカード130の記録領域を、連続記録領域と呼ぶ。連続記録単位のデータサイズはメモリカードの性能に従って16キロバイトから2メガバイトまでの範囲の値をとり得るとする。
【0055】
図3は、メモリカード130におけるFAT16ファイルシステムのデータ管理を示す。まず、メモリカード130の記録領域の構成を説明する。メモリカード130は、ブートレコード領域135と、FAT領域136と、ディレクトリ管理領域137と、データ領域138とを有している。
【0056】
ブートレコード領域135には、たとえばOSのブートコードやパーティション毎のファイルシステム種別の情報などが格納されている。メモリカード上に記録される情報はあるディレクトリのファイルとして記録され、ディレクトリはルートディレクトリを頂点とする任意の木構造からなる階層構造を構成する。
【0057】
FAT領域136には、2つのFAT(FAT1およびFAT2)が存在する。FAT2はFAT1のコピーであり、予備として設けられている。各FATはクラスタ番号のテーブルとして規定される。FAT内に設定されるクラスタ番号をFATエントリと呼ぶ。
【0058】
ディレクトリ管理領域137には、ルートディレクトリのデータが記録される。サブディレクトリが存在する場合にはそのサブディレクトリのデータはデータ領域138内に記録される。図3に示すディレクトリデータ140を例に挙げて説明すると、ディレクトリデータ140は、1以上のディレクトリエントリのテーブルとして構成される。各ディレクトリエントリは、ファイル名、拡張子、ファイル属性、更新時間、ファイルサイズ、データの格納先クラスタ番号等をそれぞれ格納するフィールドが設けられている。図3には、書き込まれたデータの内容を表すエントリファイル名フィールド141と、先頭クラスタ番号フィールド142が示されている。
【0059】
最後に、メモリカード130のデータ領域138には、ルートより下位のディレクトリのディレクトリ管理領域や、ファイルの中身のデータが書き込まれる。
【0060】
以下、FATを利用してファイル“xxx.yyy”を読み出す手順を概説する。まず、ディレクトリ管理領域137の各ディレクトリデータを参照して、“xxx.yyy”が記述されているエントリファイル名フィールド141を特定する。そして、そのフィールド141に対応する先頭クラスタ番号フィールド142から値を読み出す。この例では、先頭クラスタ番号値は「2」である。この値によって、ファイル“xxx.yyy”の先頭部分のデータが、クラスタ「2」に書き込まれていることが示される。よって、そのクラスタからデータの読み出しが開始される。
【0061】
次に、FAT1が参照され、クラスタ2に対応するテーブル値が取得される。図3に示す例では、矢印によって示される位置のテーブル値が参照され、「3」が取得される。この値は、続きのデータが格納されたクラスタ番号値を示している。よって、次はクラスタ「3」のデータを読み出せばよい。その後もFAT1を参照して、クラスタ3に対応するテーブル値「4」が取得され、クラスタ「4」からデータが読み出される。所定のテーブル値(図3では「FFFF」)が現れたときには、そのクラスタがファイル“xxx.yyy”の最後のクラスタであることを示す。
【0062】
上述のように、FATをトレースすれば、ファイルのデータを格納したクラスタをどの順序で読み出せばよいかが特定される。すなわち、FATによって、複数のクラスタに分散されたデータのつながりが管理される。上述の説明から明らかなように、FATファイルシステムにおいては、ファイルはディレクトリとFATの2つを用いて管理される。
【0063】
次に、図4〜図6を参照しながら、メモリカード130に書き込まれるデータストリームのデータ構造の例を説明する。
【0064】
図4は、メモリカード130のファイルシステムの階層構造の例を示す。この例では、ルートディレクトリROOTの下に、サブディレクトリDVD_RTAVが設けられている。そして、そのサブディレクトリ中に管理ファイルおよびデータストリームファイルが格納されるとする。
【0065】
図4に示すように、たとえばデータストリームVRMOV001.MPGに関する管理ファイルがVRMAN001.IFOである。同様に、データストリームVRMOV002.MPGに関する管理ファイルがVRMAN002.IFOである。
【0066】
図4に示すディレクトリ構造は、図3で説明したメモリカード130のディレクトリ管理領域137に反映される。また、各ファイルを構成するデータがどの順序でクラスタに書き込まれているかは、FAT1に基づいて特定される。
【0067】
以下、図5を参照しながらデータストリームファイルのデータ構造を説明する。その後、図6を参照しながら管理ファイルのデータ構造を説明する。
【0068】
図5は、データストリームファイル20のデータ構造を示す。本実施形態においては、データストリームはMPEG2規格のプログラムストリームである。以下に説明するデータ構造は、たとえばDVD−RAM、DVD−RW等の光ディスクに動画を記録するためのDVDビデオレコーディング規格に準拠しているとする。なお、このDVDビデオレコーディング規格では、ストリームファイルおよびその管理ファイルはそれぞれ1個だけ規定されている。しかし、図4に示されるように、本実施形態においては、記録の開始および停止が行われる度に1個のストリームファイルおよびそれに対する管理ファイルが記録されるとする。
【0069】
データストリームファイル20は、たとえばMPEGプログラムストリーム21に示すようなVOB(VideoObject;ビデオオブジェクト)を複数含んでいる。そして各VOBは、1以上のビデオオブジェクトユニット(Video OBject UNIT:以下「VOBU」という。)から構成される。
【0070】
各VOBUは、2048バイト単位のMPEGプログラムストリームの下位階層であるパックから構成されており、映像の再生時間にして0.4〜1秒分のデータを含む。
【0071】
以下、VOBU22を例に挙げて説明する。VOBU22は、圧縮されたビデオデータが格納されたビデオパック(V_PCK)23と、圧縮されたオーディオデータが格納されたオーディオパック(A_PCK)24の2種類を含んでいる。VOBU22内の全ビデオパック(V_PCK)23のビデオデータを再生すると、上述の0.4〜1秒の映像になる。また、VOBU22内のオーディオデータは、各音声フレームの復号に利用される。1つの音声フレームのデータがVOBU境界をまたいで格納されることはない。
【0072】
なお、各VOBUの先頭にはリアルタイムデータ情報パック(RDI_PCK)が記録されてもよい。RDIパックには、再生を管理するための管理情報(たとえばレターボックス情報)が必要に応じて格納される。
【0073】
プログラムストリーム21には、システム時刻基準SCR、映像/音声の復号時刻情報(DTS)および出力時刻情報(PTS)等の時刻情報が格納されている。システム時刻基準SCRは、再生装置のSTCレジスタに基準値を設定するために利用される。この基準値に基づいて同期信号STCが生成され、同期信号STCの値とデコード時刻情報(DTS)の値とが一致するタイミングで映像および音声がそれぞれ復号化される。そして同期信号STCの値と出力時刻情報(PTS)の値とが一致するタイミングで、映像および音声がそれぞれ出力される。本実施形態においては、ひとつの連続したプログラムストリーム(VOB)中のシステム時刻基準SCR、映像の復号時刻情報(DTS)および出力時刻情報(PTS)の各値は所定の周期で連続的に変化しているとする。
【0074】
各VOBUの先頭のビデオパック23は、パックヘッダ25およびパックデータ(ビデオデータ)26を含んでいる。さらに、ビデオデータ26はシーケンスヘッダ28、GOPヘッダ29、および圧縮されたIピクチャデータ30を含んでいる。図においては、さらに他のPESヘッダおよびPピクチャフレームデータ31が示されている。
【0075】
なお、Iピクチャデータのデータサイズは一般に大きく、2048バイトを大きく超えることがある。よって、ビデオデータ26にはIピクチャデータの一部(たとえば先頭部分)しか格納されないことがほとんどである。
【0076】
Iピクチャ32からピクチャ33までの複数枚のピクチャが1つのグループ・オブ・ピクチャ(GOP)を構成している。GOPとは、単独で再生され得る映像フレームであるIピクチャ32と、次のIピクチャの直前のピクチャ33までの、Pピクチャおよび/またはBピクチャを含む複数の映像フレームをまとめた再生単位である。
【0077】
次に、図6を参照しながら管理ファイルのデータ構造を説明する。図6は、プログラムストリームの管理情報の例を示す。管理情報はVOBUごとに生成されている。図6によれば、各VOBUに対応して管理情報が存在することが示されている。
【0078】
管理情報として、各VOBUのVOBUデータサイズ、VOBUの先頭のIピクチャ終端を含むパックのアドレスオフセット値、およびVOBUに含まれる映像フィールド数が規定されている。なお図5から明らかなように、VOBが複数存在する場合には、図6に示す管理情報の組がVOBの数に応じて存在する。
【0079】
次に、レコーダ10の処理を説明する。本実施形態によるレコーダ10は、再生処理を考慮して動画のデータストリームをメモリカード130に書き込んでいる。そこで、以下ではまず再生処理を概説し、その後、そのような再生処理によってコンテンツの再生が途切れないようにするための記録処理を説明する。
【0080】
図7は、バッファメモリ71およびデコーダ72を利用した、データストリームの再生モデルを示す。なお、バッファメモリ71は図1に示す再生部121内のメモリに対応し、デコーダ72は、図1に示すデコーダ171に対応する。ただし、MPEGデコーダ171がバッファメモリ71に相当するメモリを内部に有していてもよい。
【0081】
いま、メモリカード130からバッファメモリ71へのデータ読み出し速度をVr、バッファメモリ71からデコーダ72への最大データ転送速度(最大再生速度)をVoとする。
【0082】
図8は、図7に示す再生モデルを利用したときの、バッファメモリ71に蓄積されるデータ量のワーストケースの時間遷移を示す。縦軸がデータ量を示し、横軸が時間を示す。
【0083】
本実施形態による再生処理は、再生開始時にメモリカード130からFATをすべて読み出すのではなく、その一部を読み出す。その理由は、例えば32ギガバイトのメモリカード130においてはFATのデータサイズは4メガバイトにもなるため、そのようなFATを保持するためのメモリをレコーダ10に設けるとコストが増大するためである。また、再生処理の起動時に、すべて読み出す間はユーザを待たせることになり、ユーザの操作に対する機器のレスポンスが悪化する。再生処理の起動時とは、たとえばユーザがレコーダ10の電源を投入し、モードスイッチ(図示せず)の選択により再生モードを選択した場合である(なお一方、記録処理の起動時は動画の圧縮処理と並行して、FATの全読み出しを想定している。記録処理の起動時は再生処理の起動時と比較して、カードアクセスが集中しないためである)。
【0084】
以下の説明では、読み出されるFATの一部を「部分FAT」と呼ぶ。部分FATのデータサイズは、たとえば4キロバイトである。なお4キロバイトは8セクタ相当分のデータ長である。
【0085】
再生処理では、4キロバイトの部分FATの読み出しと、その部分FATにより管理されるクラスタからのデータストリームの読み出しとが交互に行われる。そして、読み出されたデータストリームをデコーダ72が受け取って復号化することにより、映像、音声等が再生される。
【0086】
なお、4キロバイトの部分FATにより管理される記録領域は、メモリカードがFAT32で管理されること、および部分FATのデータサイズを4キロバイトとしていることから、1クラスタサイズ×(4キロバイト/4)=32キロバイト×1024=32メガバイトである。以下の説明では、この部分FATによって管理される記録領域をウインドウと呼び、そのサイズをウインドウサイズと呼ぶ。
【0087】
図8を参照すると、再生処理開始後の区間aはデコード開始前の部分FATの読み出し時間に対応する(区間a,c,eの最大値は等しく共にtFRとして示す)。その次の区間bは、部分FATに基づくデータストリームの読み出し時間に対応する。区間bの時間長をtsとして示す。
【0088】
区間bにおいては、バッファメモリ71はすでに蓄積されているデータストリームをデコーダ72に送り、それと同時に、メモリカード130からのデータストリームを蓄積する。よって、バッファメモリ71には、Vr−Voの速度でデータストリームが蓄積される。なお、メモリカード130から読み出されるデータストリームは、部分FATによって管理されるウインドウ内に格納されている。
【0089】
区間cは次の部分FATの読み出し時間に対応する。区間cの時間長は先の区間aの時間長と同じである。
【0090】
区間cにおいては、バッファメモリ71はデコーダ72に対してデータストリームを送るだけで、メモリカード130からのデータストリームを蓄積しない。よって、バッファメモリ71に蓄積されたデータ量はVoの速度で減少する。区間d、区間eおよびそれ以降は、区間b、区間cの繰り返しであり、それぞれtS、tFRの時間を要する。
【0091】
ここで、区間cに注目する。区間cではバッファメモリ71内のデータ量はVoの速度で減少するため、コンテンツの再生が途切れないようにするためには、区間cの終了と同時にバッファメモリ71のデータ量が0になり、またはデータ量が残っている必要がある。よって、区間cの開始時点(すなわち区間bの終了時点)で、バッファメモリ71は少なくとも(Vo×tFR)に相当するデータ量を蓄積している必要がある。そのためには、すでに読み出した部分FATによって管理されるウインドウ内に、そのデータ量のデータが連続的にまたは離散的に格納されていなければならない。
【0092】
数式を用いて説明すると、まずVo×tFRは、
Vo×tFR=(Vr−Vo)×tS (数1)
として求めることができる。これにより、
S=Vo×tFR/(Vr−Vo) (数2)
が得られる。よって、連続読み出しデータ量SRは、
SR=Vr×tS=Vr×Vo×tFR/(Vr−Vo) (数3)
で与えられる。
【0093】
この結果、データストリームの記録時においては、各部分FATによるウインドウ中に、少なくとも上述のデータ量SRの空き領域を確保して書き込めばよいといえる。本実施形態によるレコーダ10は、そのような空き領域を探し、データを書き込む。これにより、FATを部分FAT単位で読み出したとしても、コンテンツを途切れなく再生できる。
【0094】
空き領域の最小の構成単位は、上述した16キロバイトの連続再生単位である。本実施形態においては、このサイズの連続再生単位を確保してデータを書き込むとVrの読み出し速度が保証されるとする。
【0095】
以下、具体例を挙げて説明する。いま、図7および図8において、メモリカード130からバッファメモリ71への転送速度Vrを4メガバイト/秒とし、バッファメモリ71からデコーダ72への最大転送速度Voを30Mビット/秒とし、tSを4msとする。
【0096】
すると、数1〜数3によれば、SR=138キロバイトとなる。したがって、1ウインドウ領域内に少なくとも138キロバイト以上の空き領域が存在すれば、上述の条件の下ではコンテンツは途切れることなく再生可能である。ただし、本実施形態では処理の余裕を与えるため、1メガバイト以上の空き領域が残っていれば、データストリームを書き込んでよいとしている。
【0097】
図9は、動画記録時において空き領域を確保するための条件の例を示す。レコーダ10は、メモリカード130の記録領域(論理アドレス空間)において、32メガバイトサイズのウインドウ90中にデータを格納可能な領域が所定量(例えば合計1メガバイト)以上空いている場合には、書き込み可能であると判断してその領域に順次ストリームを書き込む。
【0098】
空き領域のサイズの合計が1メガバイトであれば、連続再生単位、もしくは連続記録単位のどちらで構成されていてもよい(このうち、図9は連続記録単位が合計1メガバイト以上を構成する例を示している)。またさらに、それぞれすべてが連続的に配置されていなくてもよい。つまり、図9の2つの空き領域91および92が示されるように、連続記録単位の集合がウインドウ内に離散的に存在してもよい。その理由は、部分FATによって管理されるウインドウ90内であれば、異なる部分FATを読み出す必要がなく、FATをたどるための処理遅延は実質的には生じないからである。
【0099】
メモリカードは多種存在するため、本実施形態のメモリカードよりも全般的に書き込み/読み出し速度が遅いものも存在する。そのようなメモリカードにおいて、実時間で毎秒4メガバイトの書き込み速度を保証するためには、上述の連続記録単位のデータ長(64キロバイト)よりも長いデータ長を採用する必要がある。たとえば連続記録単位の記録長(最小連続記録長)を640キロバイト程度にする必要がある。
【0100】
以下、本実施形態によるレコーダ10の記録時の具体的な処理を詳細に説明する。まず図10を参照しながらレコーダ10の起動処理を説明し、その後、図11を参照しながら記録処理を説明する。
【0101】
図10は、レコーダ10の記録処理の起動時における、メモリカードに関する初期化処理の手順を示す。記録処理の起動時とは、たとえばユーザがレコーダ10の電源を投入し、モードスイッチ(図示せず)の選択により記録モードを選択した場合である。
【0102】
レコーダ10の論理ブロック管理部163は、メモリカード130のFAT1を全て読み出すよう、再生部121に指示する。そして論理ブロック管理部163は、FAT1に基づいて、全クラスタに対する空き領域の状況を示す空き領域管理テーブルを生成する。より詳しくは、論理ブロック管理部163は、空きクラスタを値1、使用中のクラスタを0として、1クラスタ当たり1ビットに圧縮した空き領域管理テーブルを生成する。この生成処理は、部分FATを読み出しながら逐次行われる。この空き領域管理テーブルはRAM183に保持される。これにより、FAT1の全体サイズは1/32倍へ圧縮して保存される。動画記録時は、領域検出部160がこの空き領域管理テーブルを参照して、空き領域を検出する。
【0103】
次に、レコーダ10の記録処理を説明する。記録処理にあたっては、レコーダ10はあらかじめ、再生時に読み出される部分FATのサイズの情報、および、部分FATの読み出しに要する時間の情報はメモリカード130のレジスタから得られているとする。
【0104】
図11は、レコーダ10の記録処理の手順を示す。ユーザから動画記録開始の指示を受け取ると、記録制御部161および領域検出部160が動作して空き領域を検出する(S100)。具体的には記録制御部161は部分FATの読み出しに要する時間にわたって再生されるコンテンツのデータ量を計算する。そのデータ量は、これまで説明したように1メガバイトであるとする。すると領域検出部160は空き領域管理テーブルを検索して、1個のウインドウ(32メガバイト)内に、合計して1メガバイト以上の空き領域を含むウインドウを少なくとも1つ検出する(S100)。
【0105】
次に記録制御部161はMPEGエンコーダ170、および記録部120を起動し(S110)、検出された空き領域へのデータストリームの書き込みを開始する(S120)。なお、実際に書き込む処理は、記録制御部161からの指示に基づいて記録部120によって行われるが、以下では記載の便宜上、記録制御部161が書き込むとして記述する。
【0106】
ユーザが記録を継続していて(S130のNo)、かつ書き込み中の領域に追記可能であれば(S140のYes)、記録制御部161は引き続きその領域にデータストリームを書き込む(S120)。一方、追記可能でないと判断すると(S140のNo)、領域検出部160は次の空き領域の検出を行う(S150)。この時に検出すべき空き領域の条件はS100と同じである。記録制御部161は、新たに検出された空き領域を次の記録先として、データストリームを書き込む(S120)。
【0107】
ユーザが録画停止操作を行って停止が指示されると(S130のYes)、記録制御部161は書き込まれずにテンポラリメモリ上に残っているデータストリームをメモリカードに書き込む(S160)。
【0108】
そして、継続して、管理データファイルVRMAN001.IFOのデータをメモリカード130に書き込む(S170)。そして、VRMOV001.MPGおよびVRMAN001.IFOのデータファイルを書き込んだ領域に対応するFAT1を全て読み出す(S180)。例えば2Gバイトのデータストリームであれば、対応するFAT32ファイルシステムのFATは少なくとも256キロバイト分である。
【0109】
次に、データストリームが書き込まれて使用中となったクラスタの状況を反映するために、記録制御部161はFAT上にVRMOV001.MPG、およびVRMAN001.IFOに対応するFAT情報(FATチェーン)をFAT1、FAT2およびディレクトリエントリへ書き込む(S190)。これにより記録処理が完了する。
【0110】
図12は、記録処理後のメモリカード130内のデータ配置の例を示す。メモリカード130には、論理アドレスが小さい方から順に、ブートレコード、FAT1、FAT2、ルートディレクトリのデータ領域、およびDVD_RTAVディレクトリのデータ領域の順に格納されている。さらに、これ以降の論理アドレス上に、データストリームファイルおよびデータストリームの管理ファイルなどが記録されている。DVD_RTAVディレクトリにはVRMOV001.MPGファイル、VRMAN002.IFOファイル等のディレクトリエントリが格納される。
【0111】
メモリカード130のウインドウ#1として示す記録領域には、使用済み領域、動画ファイル(VRMOV001.MPG)の一部のデータ(#001)を格納した領域、および別の使用済み領域から構成される。動画ファイルのデータが格納された領域のデータサイズは1メガバイト以上である。上述のように、この領域はウインドウ#1内に離散的に存在していてもよい。
【0112】
また、ウインドウ#100として示す記録領域は、使用済み領域、動画ファイル(VRMOV001.MPG)の一部のデータ(#100)、VRMAN001.IFOファイル、および未使用領域から構成される。なお、動画ファイルのデータが#1から#100に分けて格納されているが、これは例である。この数はファイルサイズ(データストリームの全データ量)に応じて変化する。
【0113】
次に、上述の記録処理によってメモリカード130に書き込まれたデータストリームを読み出して、映像、音声等のコンテンツを再生する処理を説明する。
【0114】
図13は、レコーダ10の再生処理の手順を示す。まず再生制御部162は、ユーザが選択したデータストリームファイルのディレクトリエントリを読み出す(S300)。なお、実際に読み出す処理は、再生制御部162からの指示に基づいて再生部121によって行われるが、以下では記載の便宜上、再生制御部162が読み出すとして記述する。
【0115】
次に、再生制御部162は、4キロバイトの部分FATを読み出す(S310)。この部分FATは、読み出したディレクトリエントリに格納されているデータストリームの先頭部分を格納するクラスタを管理する。
【0116】
次に再生制御部162は、4キロバイト分のFATに対応するウインドウ領域内から、データストリームを格納する連続記録単位を所定の個数分だけ読み出してテンポラリメモリ上に格納する(S320)。そして、デコーダ171に再生を指示する(S330)。再生開始前に読み出すべきデータ量は、例えばVBVバッファサイズ分以上の映像データ量がテンポラリメモリ上に蓄積されるサイズ以上の量である。
【0117】
再生制御部162は、その部分FATが管理するウインドウ領域内において、データストリームが格納されている連続記録単位を1つ選択して読み出す。するとデコーダ171が復号化を開始し、それによりコンテンツの再生が開始される(S340)。
【0118】
続いて再生制御部162はさらにFATを参照してFATチェーンを追跡し、次の連続記録単位に対応するクラスタ番号を検出する(S350)。読み出し中のデータストリームの終端に達していなければ(S360のNo)、再生制御部162はウインドウ内にまだ読み出していない連続記録単位が残っているかどうか確認する(S370)。残ってい
れば(S370のNo)継続して読み出す(S340)。残っていなければ(S370のYes)、FATチェーンを追跡し、次の4キロバイト分の部分FATを読み出して(S380)、その部分FATによって管理されるウインドウ領域内において、データストリームが格納されている1つの連続記録単位を継続して読み出す(S340)。
【0119】
一方、データストリーム終端に達していて続きがなければ(S360のYes)、データの読み出しを終了する。そして、それまでに読み出したデータの再生処理が終了した後、再生処理を停止する(S390)。
【0120】
以上の再生処理によれば、レコーダ10がFATの部分的な読み出しとデータストリームの読み出しとを交互に行っても、再生処理に必要な所望の転送速度を確保することができる。これにより、データストリームからコンテンツを途切れなく連続的に再生できる。
【0121】
FATを少しずつ読み出しながら再生できるので、読み出したFATを保持するためのメモリ容量は、少なくともその読み出しサイズだけ確保されていればよい。よってFATをすべて保持するためのデータ容量と比較すると、きわめて小さいメモリ容量で十分である。例えば、32Gバイトのメモリカードの場合、4Mバイトに較べて512バイトという具合に減らすことできる。これにより、レコーダ10に必要とされるメモリのコストを抑えることができる。
【0122】
また、FATを全部一旦読み出してから再生処理を開始する場合と較べて、一部のFATを読み込めばよいので、ユーザの待ち時間を著しく減らすことができる。例えば、32Gバイトのメモリカードの場合、4MバイトのFATを3秒で読み出すのに比べて、0.01秒という具合に減らすことできる。
【0123】
上述の処理を採用すれば、再生装置はメーカを問わずコンテンツを途切れなく再生できる。また、大容量のメモリカード、または比較的低性能なメモリカードであっても、連続再生を実現しやすい。
【0124】
さらに、上述のウインドウ領域は任意のデータアドレス上に設定できる。そして、各ウインドウ領域内の空き領域の合計サイズに基づいて、データを書き込むか否かを判断するため、各ウインドウ領域内に空き領域が離散していてもそれらの領域を有効に活用できる。
【0125】
なお、本実施形態による処理は、複数のデータストリームの書き込みや再生に際しても適用可能である。ただし、そのときは書き込みに際してウインドウサイズ中に確保すべき空き領域の合計データサイズは大きくなることに留意する必要がある。計算方法は、上述の数1〜数3に準じる。
【0126】
本実施形態によるFATを部分FATに分けて読み出す方法は、FATをすべて読み出してから、動画ストリームの読み出しに着手する従来の方法とは根本的に相違している。装置は、本実施形態による読み出し方法、および、従来のFATファイルシステムによる読み出し方法の両方に対応できるように構成されていても良い。またこの時、装置がより適切な読み出し方法を採用できるように、識別情報を設けてもよい。たとえば、動画ストリームが本実施形態による再生方法を想定して記録されたときには、装置はそのことを示す識別情報を含む管理ファイルをカード内に別途記述すればよい。この方法により、再生装置は識別情報の有無に応じて、FATを部分的に読み出してコンテンツを再生するか、FATを一括して読み出してコンテンツを再生すればよいかを判断できる。また別途、想定する部分FATの読み出しサイズを記述してもよい。
【0127】
(実施形態2)
本実施形態と実施形態1との違いは、データストリームの記録中にFAT情報の書き込みを実施する点、および、ウインドウ領域中に必要な空き領域のサイズをより大きくする点である。後者については、実施形態1においては1メガバイトとしたが、本実施形態においては8メガバイトとしている。
【0128】
なお、本実施形態によるレコーダの構成は、特に説明がない場合には実施形態1によるレコーダ10と同じである。
【0129】
図14は、本実施形態におけるデータの記録モデルを示す。なお、エンコーダ73は図1に示すエンコーダ170に対応し、バッファメモリ74は、記録部120の内部に含まれているとする。ただし、エンコーダ170がバッファメモリ74に相当するメモリを内部に有していてもよい。なお、図14に示す記録モデルは、たとえばMPEG規格に基づく記録を行う実施形態1のレコーダ10も同様に満たしているとする。
【0130】
エンコーダ73が生成するデータストリームは最大速度Viでバッファメモリ74に入力される。そして、データストリームはバッファメモリ74から速度Vw以上でメモリカード130に書き込まれる。
【0131】
図15は、図14に示す記録モデルのバッファメモリ74上に蓄積されるデータ量の遷移例を示す。記録処理開始と同時にデータストリームは、少なくとも連続書き込み時間tsの間、メモリカードに書き込まれ(区間a)、その後、データストリームファイルの更
新が必要なFAT1の一部分(4キロバイト分)、およびディレクトリエントリ情報の一部分(4キロバイト分)を読み出す(区間b)。そして、データストリームファイルのFAT情報(FAT1の更新必要部分、FAT2の更新必要部分、およびディレクトリエントリ)を更新する(区間c)。もし、区間cの後のごく少量のデータストリームの書き込み(区間を図示していない)の直後にウインドウ境界を越える場合には区間d、eの様に、再びデータストリームファイルのFAT情報(FATの更新必要部分、FAT2の更新必要部分、およびディレクトリエントリ)を更新する。次の連続書き込み区間fには、バッファメモリ中のデータストリームはVw−Viの速度で減少する。その後も区間b〜fは繰り返し現れる。
【0132】
図16は、本実施形態による記録制御部161の記録処理の手順を示す。実施形態1に関する図11と比較すると、図16のステップS410、S420、S430、S440、S460、S470、S480およびS490は図11と同様である。一方、ステップS400およびS450では、32メガバイトのウインドウ領域中に8Mバイトの空き領域を検出している点が異なる。
【0133】
また、図16のステップS500からS550も、図11に示す処理と異なっている。具体的には、データストリームの書き込み(S420)の後で、8Mバイト分の連続書き込みが完了すると(S500のYes)、ウインドウ領域に対応するFAT1、およびディレクトリエントリ(DIR)を読み出す(S510)。次に、ステップS510で読み出したデータを利用して、メモリカードに記録済みのデータサイズ、記録時刻、およびFATチェーン等を反映してデータストリームファイル(VRMOV001.MPG)のFAT1、FAT2、およびディレクトリエントリを更新する(S520)。
【0134】
さらに、ウインドウ内に追記可能であれば(S440のYes)、書き込みを継続して行う。そして、ウインドウ内に追記不可であれば(S530のNo、S440のNo)、データストリームファイルのFAT情報をステップS510、S520と同様に更新する(S540、S550)。
【0135】
なお、ステップS500において8MBのデータが書き込まれたかどうかを判断するためには、ステップS510またはステップS540が完了した時点で、書き込み済みのデータストリームの累計をゼロにリセットすればよい。
【0136】
以上の構成において、ウインドウ領域内に最小限必要であるとしたデータサイズは、図16において、エンコーダからバッファメモリへの最大転送速度Vi=30Mビット/秒、バッファメモリからメモリカードへの転送速度Vw=4Mバイト/秒、4キロバイトあたりのFAT1、もしくはディレクトリエントリの読み出し速度tFR=4ミリ秒、FAT1、FAT2、およびディレクトリエントリの合計書き込み時間tFW=110ミリ秒、図15に示した様にデータストリームを最低限連続書き込みする時間をtS、連続書き込みデータサイズをSWとした時、次の関係が成り立つ。
【0137】
Vi×2×(tFW+2×tFR)=(Vw−Vi)×tS (数4)
これより、
S=2×Vi×(tFW+2×tFR)/(Vw−Vi) (数5)
よって、
Sw=tS×Vw=2×Vw×Vi×(tFW+2×tFR)/(Vw−Vi) (数6)
となる。これにより、Sw=7.96Mバイト<8Mバイトとなる。
【0138】
よって、1ウインドウ領域中で、8Mバイトだけ連続的に書き込み動作を行えばデータストリームのFAT情報を更新しながら、データストリームを書き込みできることになる。また、同時にウインドウサイズ中には実施の形態1の1Mバイト以上のデータストリームが存在することもなり、実施形態1と同じ再生処理により連続読み出しが可能になる。
【0139】
なお、本実施形態では、データストリームの記録中にFAT情報の更新を行うとしたが、これに限らずさらに別のデータストリームの書き込みや再生を行うことを前提としてもよい。また、複数のデータストリームの書き込みや再生であってもよい。だだし、この場合さらにウインドウサイズ中に確保すべき空き領域の合計データサイズは大きくなる。
【0140】
なお、連続的に書き込み処理を行うべきデータサイズSwが、カードの性能によって決定される転送速度Vwを保証するための連続記録単位よりも小さい場合、連続記録単位の値を、連続的に書き込み処理を行うべきデータサイズとすればよい。
【0141】
(実施形態3)
本実施形態においては、データの格納方法に関する変形例を説明する。特に説明のない点以外は、実施形態1によるレコーダまたは実施形態2によるレコーダのいずれを利用してもよい。
【0142】
図17は、本実施形態によるデータストリームの記録位置、およびデータサイズ例を示す。図17の(a)部分はウインドウ間のデータのつながりを規定するFATを示し、(b)の部分はウインドウ領域とその領域内のデータサイズの関係を示す。
【0143】
データストリームはウインドウ#1から#10に分割されて記録されている。ウインドウ#1には20キロバイトだけのデータストリームが含まれる。ウインドウ#1〜#9にはそれぞれ合計8Mバイト以上のデータストリームが記録されている。ウインドウ#10は50キロバイト分のデータストリームが格納されている。
【0144】
実施形態1および2においては、少なくとも連続記録単位はデータストリームを格納しているとした。しかし、本実施形態においては、データストリームファイルの先頭部分のデータを格納したウインドウに関しては、連続記録単位のすべてにデータが格納されている必要はない。例えば連続記録単位が64キロバイトの場合、ウインドウ#1は64キロバイトに満たない32キロバイトであってもよい。
【0145】
ただし、このようにデータストリーム先頭がウインドウ領域外に連続記録単位に満たない状態で存在する場合を想定すると、次の処理が必要となる。すなわち、再生処理のデータの復号開始前に、図14で示したバッファメモリ内にデータストリームを多く読み出しておく必要がある。その目的は、部分FATの1回分の読み出し時間中にバッファメモリがアンダーフローしないようにするためである。たとえば、復号開始前に実施形態1においてVo×tFR分のデータを読み出した後で、復号開始すればよい。
【0146】
データストリームファイルの先頭部分に関して、ウインドウ内の連続記録単位のすべてにデータが格納されている必要はないとして取り扱うと、以下のケースで好都合である。すなわち、データストリームファイルを2つのファイルに分割するケースや、前方削除するケースである。これらのケースにおいては、分割処理、前方削除処理によって分割点の前後のデータストリームが1ウインドウ領域中の合計データサイズを満たさなくなることがある。また、このうち分割処理においては、分割点を含むクラスタを、分割点の前部分のデータストリームファイル、または分割点の後部分のデータストリームファイルとして、分割点を含むクラスタの必要部分をコピーした後で、少なくともどちらかのファイル(分割点より前方部分、もしくは後方部分)の一部として含む必要がある。
【0147】
同様に、データストリームファイルの先頭部分を含むウインドウ領域が、所定量(実施形態1の1メガバイトや、実施形態2の8メガバイト)のデータを含まなくともよい。このときも、分割処理、前方削除処理を想定した場合には再生処理において何らかの対応が必要となる。すなわち、データの復号処理を開始する前に、1つの部分FATを読み出してもバッファメモリがアンダーフローしない程度に、図7で示したバッファメモリ内にデータストリームを多めに読み出しておく必要がある。
【0148】
以上の構成により、分割処理を容易に完了することが可能になると同時に、分割後のデータストリームファイルであっても、容易に連続再生を保証できる。
【0149】
なお、データストリームファイルの末尾部分のデータを格納したウインドウに関しても同様に、空き領域の連続記録単位のすべてにデータが格納されている必要はない。例えば、空き領域の途中以降にデータストリームが記録されていなくともよい。これはデータストリームのデータサイズは任意のデータサイズとなること、および後方削除処理が発生するからである。
【0150】
なお、上述の実施形態の説明においては、ウインドウサイズは32Mバイトであるとしたが、図13の再生処理のS310、およびS380において、4キロバイトではなく、たとえば16キロバイトの領域を管理する部分FATを読み出すとし、このときのウインドウサイズを128Mバイトとして空き領域を捜してもよい。ただしこの場合、数1、もしくは数4のtFRは4倍にする必要がある。
【0151】
さらに、4キロバイトではなく、たとえば8キロバイトの連続領域を管理する部分FATを読み出すとすると、メモリ領域をより有効に利用できる。より具体的には、部分FATによって管理されるメモリ領域の終端付近(4キロバイト目近傍)を有効に利用できる。その理由は、空き領域が、ある部分FATによって管理されるメモリ領域の終端付近と次の部分FATによって管理される次のメモリ領域の始端付近とにまたがっている場合には、それらを合算した値を空き領域の値として管理できるからである。
【0152】
また、実施形態の説明においては、部分FAT、および部分FATによって参照される各メモリ領域は、図19に示す様に重ならないことを想定した。しかし、部分FATは、データストリームファイルの先頭アドレスに対応するFATエントリから4キロバイト分の連続領域としてもよく、また、部分FATによって管理される各メモリ領域は重なってもよい。これは、部分FATが管理する領域、または、部分FATの先頭位置は図20に示す様に任意で決定され得ることを意味する。さらにこのことは、部分FATが管理する開始セクタは、セクタ境界と一致する例を示してきたが、一致しなくとも良いことも意味する。
【0153】
なお、上述の実施形態の説明においては、メモリカードインタフェースにおいて発生する処理遅延時間については言及しなかったが、処置遅延時間tohを考慮して、数1を数7に示すように変更してもよい。
Vo×(tFR+toh)=(Vr−Vo)×tS (数7)
【0154】
またさらに、メモリカードインタフェースにおいて発生する処理遅延時間を考慮して、例えばVrの80%程度にVoの最大値を若干小さく制限してもよい。
【0155】
上述の実施形態の説明においては、図7のモデルでは部分FATを格納するメモリを明示しなかった。図18は、部分FATを格納するためのメモリを設けた構成を示す。また、部分FATは連続したセクタから構成されるとしたが、例えば、4キロバイトの部分FATを単位として、離れた部分FATを選択してもよい。
【0156】
また、これまでは動画をリアルタイム圧縮して記録する処理を説明した。しかしながら、PCに接続されたメモリカードリーダへSDカードを装着し、非リアルタイムに動画データをウインドウ内のデータ領域に記録してもよい。この場合、例えば実施の形態1と比較して、ウインドウ内において連続再生単位の合計値が1メガバイト以上となる様に記録すれば良い。
【0157】
また、主として通常の再生処理時の動作を説明した。しかし、Iフレームのみを使った高速再生時において、Iフレームの更新速度を短縮化することもできる。
【0158】
上述の実施形態の説明においては、データストリームの転送速度Vi,Voは30Mbpsとしたが、より低い値であってもよい。ただし、この場合ウインドウ領域中に必要となる空き領域の合計量はより少なくてもよいし、30Mbps時と同じにしてもよい。
【0159】
上述の実施形態の説明においては、再生時においてデータストリームファイルの読み出しが中断される時間は、部分FATの読み出しを行う時間に等しいとしたが、例えば別のデータの読み出しや、別のデータの書き込みを行う時間等が含まれてもよい。すなわち、再生を行うデータストリームの読み出しが中断される時間であれば何の処理時間であってもよい。
【0160】
また、メモリカード130はリムーバブルであるとしたが、これは例である。上述したファイルシステムによりファイルを管理するメディアであれば、他の半導体記録媒体(たとえばFeRAM、MRAM)であってもよいし、光ディスク(たとえばDVD−RAM、MO、DVD−R、DVD−RW、DVD+RW、DVD+R、CD−R、CD−RW)であってもよい。さらにレコーダ10に内蔵されたハードディスクなどの非可換メディアであってもよい。
【0161】
また、FAT32ファイルシステムを例に挙げたが、FAT16やFAT12ファイルシステムであってもよい。さらに、FAT32/FAT16/FAT12と同様なファイル管理構造であれば異なるファイルシステムであってもよい。
【0162】
図1等の各機能ブロックは、典型的にはCPU181に代表される集積回路(Large Scale Integrated Circuit;LSI)のチップとして実現される。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。例えば、図1においては、MPEGエンコーダ部170とシステム制御部180とは別個の機能ブロックとして示されている。これらはそれぞれ別個の半導体チップとして実装されてもよいし、物理的に同一のチップによって実現してもよい。また、システム制御部180、MPEGエンコーダ170およびMPEGデコーダ171の機能を集積化して、1つのチップ回路として実現してもよい。ただし、例えば符号化または復号化の対象となるデータを格納するメモリのみを集積化の対象から除外してもよい。
【0163】
なお、上述の「LSI」は、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。集積回路化の手法はLSIに限られることはなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用してもよい。
【0164】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、その技術を用いて機能ブロックの集積化を行ってもよい。例えば、バイオテクノロジーを利用したいわゆるバイオ素子として集積化を行ってもよい。
【0165】
また、本明細書においては、データストリームはプログラムストリームであるとして説明した。しかし、トランスポートストリームやPESストリーム等のビットストリームであってもよい。また、映像はMPEG−2ビデオストリームを例としたが、MPEG−4ビデオストリームやMPEG−4AVCストリームであってもよい。また、音声もリニアPCMオーディオストリームやAC−3ストリーム等であってもよい。映像や音声以外の他の種類(グラフィックス情報や文字情報等)のマルチメディア情報を含んでいてもよい。
【0166】
なお、全プログラムストリーム(全VOB)が1個のデータストリームファイルに格納されるとしたが、それぞれ別々のデータストリームファイルとして分離されていてもよい。また、データストリームファイルに関する全管理データが1個の管理ファイルに格納されるとしたが、別々のデータストリームファイルの管理データファイルとして分離されてもよい。
【産業上の利用可能性】
【0167】
本発明による装置および方法を利用して記録媒体(たとえばメモリカード)にデータストリームを記録すると、再生時に所望の転送速度を容易に確保することができる。よってコンテンツを再生する際に、再生装置の処理がフリーズすることなく、かつ、動画のコマ落ち、音声の途切れが生じないように連続的に再生することができる。記録媒体の動作速度に応じてデータストリームを記録するため、その記録媒体に適切に読み出すことが可能な再生装置であれば、メーカが異なる再生装置間における連続再生の互換性確保が容易となる。また、大容量のメモリカード、または比較的低性能なメモリカードであっても、連続再生の互換性を実現しやすい。また、データストリームの転送レートを維持しながら、従来よりも小さな単位で空き領域をデータ領域の記録先として利用可能になる。
【符号の説明】
【0168】
10 レコーダ
100 映像信号入力部
101 映像圧縮部
102 音声信号入力部
103 音声圧縮部
104 システムエンコード部
110 映像信号出力部
111 映像伸長部
112 音声信号出力部
113 音声伸長部
114 システムデコード部
120 記録部
121 再生部
130 取り外し可能なメモリカード
160 連続データ領域検出部
161 記録制御部
162 再生制御部
163 論理ブロック管理部
164 編集制御部
170 MPEGエンコーダ
171 MPEGデコーダ
175 メディア制御部
180 システム制御部
181 CPU
182 ROM
183 RAM

【特許請求の範囲】
【請求項1】
ファイル・アロケーション・テーブル(FAT)に基づいてデータの格納位置が規定される記録媒体から、前記FATの一部分である部分FATを読み出す再生部と、
前記部分FATに基づいて、前記記録媒体に記録されたコンテンツのデータストリームの読み出しを前記再生部に指示する制御部と、
読み出されたデータストリームに基づいてコンテンツを再生するデコード部と
を備え、第1部分FATに基づき所定量以上の第1データストリームの読み出しが完了した後、前記デコード部による再生処理が継続されている間に、前記再生部は前記第1部分FATに続く第2部分FATを読み出し、
前記制御部は、前記第2部分FATに基づいて第2データストリームの読み出しを前記再生部に指示し、
前記所定量は、前記第2部分FATの読み出し時間を少なくとも含む、データストリームの読み出し中断時間にわたって再生されるべきデータストリームを確保するまで、継続した読み出しが必要となるデータ量である、データ処理装置。
【請求項2】
前記記録媒体は、前記データストリームの再生速度以上の速度で読み出しが可能な所定の連続データ単位を有しており、
前記第1部分FATおよび前記第2部分FATに基づいて管理される各部分領域は前記連続データ単位の集合であり、
前記制御部は、前記部分FATに基づいてデータストリームの読み出しを前記再生部に指示し、
前記再生部は、前記データストリームの再生速度以上の速度で前記データストリームを読み出す、請求項1に記載のデータ処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2012−94242(P2012−94242A)
【公開日】平成24年5月17日(2012.5.17)
【国際特許分類】
【出願番号】特願2011−257044(P2011−257044)
【出願日】平成23年11月25日(2011.11.25)
【分割の表示】特願2006−520624(P2006−520624)の分割
【原出願日】平成18年3月2日(2006.3.2)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】