説明

トランスポートストリーム再生装置、およびデータ記録媒体

【課題】 トランスポートストリームを効率よく読み出して再生する。
【解決手段】 188バイトのトランスポートパケットに4バイトのTP_extra_Headerを付加してソースパケットを生成し、192バイトのソースパケットを32個まとめて、3セクタ分のデータ報量(6144バイト)に相当するアラインドユニットを生成し、アラインドユニット単位でデータ記録媒体に記録し、また再生する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トランスポートストリーム再生装置、トランスポートストリーム再生方法、およびプログラム記録媒体に関し、特に、ディジタル多チャンネル放送信号として送信されるトランスポートストリームがデータ記録媒体に記録されたものを再生する場合に用いて好適なトランスポートストリーム再生装置、トランスポートストリーム再生方法、およびプログラム記録媒体に関する。
【背景技術】
【0002】
日本国内および欧米における衛星ディジタル放送や地上ディジタル放送等には、MPEG(Moving Picture Experts Group)2トランスポートストリームが用いられている。トランスポートストリームには、プログラムの映像や音声に対応するMPEGビデオパケットやMPEGオーディオパケットが時分割多重化されている。1つのトランスポートパケットのデータ長は、188バイトである。
【0003】
プログラムに対応するトランスポートストリームを、受信側においてディジタル信号の状態で記録することができれば、画質や音質を全く劣化させることなく、高品質のAVプログラムを随時繰り返して視聴することが可能となる。
【0004】
また、プログラムに対応するトランスポートストリームを、例えば、ハードディスクや光ディスクのようなランダムアクセス可能なデータ記録媒体に記録するようにすれば、ユーザのコマンドに対して即応性が高いランダムアクセス再生が実現される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、ハードディスクや光ディスクのようなランダムアクセス可能なデータ記録媒体は、通常、FAT(File Allocation Table)やUDF(Universal Disk Format)等のファイルシステムに基づいて、セクタと呼ばれる2048バイトのロジカルブロック単位にフォーマットされて、そこにデータが読み書きされる。
【0006】
したがって、即応性が高いランダムアクセス再生を実現するためには、トランスポートストリームに含まれるAVデータを、セクタ単位(またはセクタの整数倍単位)で記録する必要があるが、上述したように、トランスポートパケットは188バイトであり、セクタは2048バイトであるので、両者の適合性は良好であるとはいえず、現状ではトランスポートストリームに含まれるAVデータを、セクタ単位(またはセクタの整数倍単位)で記録することができない。
【0007】
さらに、AVデータをセクタ単位(またはセクタの整数倍単位)で記録できたとしても、即応性が高いランダムアクセス再生を実現するためには、記録されたAVデータのアドレス管理が面倒であった。
【0008】
本発明はこのような状況に鑑みてなされたものであり、データ記録媒体に記録されたトランスポートパケットを効率よく読み出して、再生できるようにするものである。
【課題を解決するための手段】
【0009】
本発明のトランスポートストリーム再生装置は、再生開始位置を指定する指定手段と、指定された再生開始位置に対応するデータ記録媒体上のアドレスを演算する演算手段と、演算手段が演算したデータ記録媒体上のアドレスからトランスポートパケットの読み出しを開始する読み出し手段とを含む。
【0010】
本発明のトランスポートストリーム再生装置は、データ記録媒体からエントリポイントマップを取得する取得手段と、指定された再生開始位置とエントリポイントマップに記述されているPTSを比較して、指定された再生開始位置に隣接したエントリポイントを検索する検索手段とをさらに含むことができ、前記演算手段には、エントリポイントマップに記述されているカウント値を用いて、エントリポイントに対応するトランスポートパケットが記録されているデータ記録媒体上のアドレスを演算させることができる。
【0011】
本発明のトランスポートストリーム再生装置は、指定された消去範囲をアラインドユニット単位のデータ領域に変換する変換手段と、変換手段が変換したアラインドユニット単位のデータ領域に記録されているトランスポートストリームを消去する消去手段とをさらに含むことができる。
【0012】
本発明のトランスポートストリーム再生方法は、再生開始位置を指定する指定ステップと、指定された再生開始位置に対応するデータ記録媒体上のアドレスを演算する演算ステップと、演算ステップの処理で演算されたデータ記録媒体上のアドレスからトランスポートパケットの読み出しを開始する読み出しステップとを含む。
【0013】
本発明のプログラム記録媒体は、再生開始位置を指定する指定ステップと、指定された再生開始位置に対応するデータ記録媒体上のアドレスを演算する演算ステップと、演算ステップの処理で演算されたデータ記録媒体上のアドレスからトランスポートパケットの読み出しを開始する読み出しステップとを含む処理をトランスポートストリーム再生装置のコンピュータに実行させるプログラムが記録されている。
【0014】
本発明においては、再生開始位置が指定され、指定された再生開始位置に対応するデータ記録媒体上のアドレスが演算され、演算されたデータ記録媒体上のアドレスからトランスポートパケットの読み出しが開始される。
【発明の効果】
【0015】
本発明によれば、トランスポートパケットを効率よく読み出して再生することが可能となる。
【図面の簡単な説明】
【0016】
【図1】本発明を適用した記録装置10の構成例を示すブロック図である。
【図2】記録装置10で順次処理されるトランスポートパケットについて説明する図である。
【図3】ソースパケットのシンタクスを示す図である。
【図4】トランスポートエクストラヘッダのシンタクスを示す図である。
【図5】アラインドユニットのデータ構造を示す図である。
【図6】アラインドユニットとセクタの関係を説明するための図である。
【図7】記録装置10のトランスポートストリーム記録処理を説明するフローチャートである。
【図8】アライバルタイムスタンプを発生する過程を説明するフローチャートである。
【図9】記録装置10のエントリポイントマップ記録処理を説明するフローチャートである。
【図10】エントリポイントマップに記述するパケット番号とPTSの関係を説明するための図である。
【図11】エントリポイントマップの一例を示す図である。
【図12】本発明を適用した記録装置30の構成例を示すブロック図である。
【図13】アラインドユニットのデータ構造を示す図である。
【図14】本発明を適用した再生装置40の構成例を示すブロック図である。
【図15】再生装置40の再生処理を説明するフローチャートである。
【図16】再生装置40の部分消去処理を説明するフローチャートである。
【図17】アラインドユニット単位で消去されるデータを示す図である。
【図18】セクタサイズが65536バイトであるデータ記録媒体21にアラインドユニットを記録する方法を説明するための図である。
【図19】記録の先頭におけるアラインドユニットとセクタの関係を示す図である。
【図20】セクタに記録されていたアラインドユニットを消去した例を示す図である。
【図21】セクタに記録されていたアラインドユニットを消去した例を示す図である。
【図22】セクタに記録されていたアラインドユニットを消去した例を示す図である。
【発明を実施するための形態】
【0017】
本発明のトランスポートストリーム記録装置の一実施の形態である記録装置の第1の構成例について、図1を参照して説明する。この記録装置10は、ディジタル放送信号を受信するセットトップボックスから、図2(A)に示すように不規則な間隔で記録装置10に入力される1つのプログラムのトランスポートストリームの各トランスポートパケットに、図2(B)に示すように、トランスポートパケットエクストラヘッダを付加してソースパケット化し、図2(C)に示すように、ソースパケットを前詰めして生成したDVRトランスポートストリームを、セクタ単位にフォーマットされたデータ記録媒体21に記録するものである。なお、図2(A)および図2(B)の横軸は、トランスポートパケットの記録装置10への到着時刻の時間軸を示している。
【0018】
記録装置10のストリーム解析部11は、順次入力されるトランスポートパケットのPIDを参照することにより、PAT(Program Association Table)、PMT(Program Map Table)、およびPCR(Program Clock Reference)が格納されたパケットを順次読み出して、PCRをPLL(Phase Locked Loop)部12に出力する。ストリーム解析部11はまた、順次入力されるトランスポートパケットの数をカウントし、そのカウント値をパケット番号としてヌルパケット(Null packet)発生部14に出力する。
【0019】
ストリーム解析部11はさらに、入力されるトランスポートストリームのランダムアクセス再生を開始することができる時間軸上の位置(エントリポイント)を検出し、エントリポイントを特定する情報(エントリポイントデータ)をストリームデータベース作成部16に出力する。具体的には、エントリポイントデータとして、MPEG2で規定されているIピクチャのデータの先頭が記述されているトランスポートパケットが検出され、当該トランスポートパケットのパケット番号と、当該IピクチャのPTS(Presentation Time Stamp)がストリームデータベース作成部16に供給される。PTSは、MPEG2システムズ規格のPESパケットのヘッダに含まれる情報であり、プログラムの再生開始時刻を基準とする当該Iピクチャの再生時刻(基準時刻からの経過時間)を示している。
【0020】
PLL部12は、ストリーム解析部11から入力されるPCRを用いて、27メガヘルツのシステムクロック信号を整合し、カウンタ13に出力する。カウンタ13は、PLL部12から入力されるシステムクロック信号に同期して、トランスポートパケットの記録装置10への入力時刻を示すアライバルタイムクロック(arrival_time_clock)をカウントアップし、同時に、アライバルタイムクロックのサンプル値であるアライバルタイムスタンプ(arrival_time_stamp)をトランスポートパケットエクストラヘッダ(TP_extra_header)付加部15に出力する。ここで、アライバルタイムクロックは、プログラムの先頭のトランスポートパケットが入力されたとき、0に初期化されるものとする。
【0021】
例えば、カウンタ13が27メガヘルツのクロックパルスをカウントするバイナリカウンタである場合、アライバルタイムスタンプのビット長がNであれば、カウント値のLSB(Least Significant Bit)のNビットをアライバルタイムスタンプとして出力する。
【0022】
すなわち、時刻tにおける27メガヘルツのクロックパルスをカウントするバイナリカウンタの値をarrival_time_clock(t) 、アライバルタイムスタンプのビット長をNとすれば、時刻tにおけるアライバルタイムスタンプATS(t)は、次式(1)により計算される。
ATS(t)=arrival_time_clock(t)%2N ・・・(1)
ただし、式(1)において記号「%」は、正の整数の剰余を計算する演算子である。
【0023】
図3は、ソースパケットのシンタクスを示している。TP_extra_header()は、4バイト長のトランスポートパケットエクストラヘッダを示す。tansport_packet()は、ISO/IEC13818-1で規定される188バイト長のMPEG2トランスポートパケットを示す。
【0024】
図4は、アライバルタイムスタンプを30ビット長とした場合のトランスポートパケットエクストラヘッダのシンタクスを示している。
【0025】
copy permission indicatorは、トランスポートパケットのペイロードのコピー制限(copy free,no more copy,copy once、またはcopy prohibited)のいずれかに対応する整数である。arrival_time_stampは、式(1)においてN=30としたとき、ATS(t)によって指定される値を持つ整数値である。
【0026】
ヌルパケット発生部14は、ストリーム解析部11から入力される最後のパケット番号に対応して、情報としては意味をなさないヌルパケット(188バイト)を発生してトランスポートパケットエクストラヘッダ付加部15に出力する。すなわち、記録装置10に入力される一連のプログラムを構成するトランスポートパケットの総数(最後に入力されるパケット番号に相当する)が32の倍数ではない場合、最後に入力されるパケット番号と、その値よりも大きくて最も近い32の倍数との差の数だけヌルパケットが発生されてトランスポートパケットエクストラヘッダ付加部15に出力される。
【0027】
したがって、トランスポートパケットエクストラヘッダ付加部15には、外部からのトランスポートパケットとヌルパケット発生部14からのヌルパケットを合わせて、32の整数倍の数のパケットが入力されることになる。ここで、ヌルパケットとは、トランスポートパケットのパケットID(PID)の値が、16進数で0x1FFFであり、ペイロードに意味のあるデータを持たないパケットである。
【0028】
トランスポートパケットエクストラヘッダ付加部15は、外部から入力されるトランスポートパケット(188バイト)、または、ヌルパケット発生部14から入力されるヌルパケットに、パケットの入力と同時にカウンタ13から入力されるアライバルタイムスタンプを含むトランスポートパケットエクストラヘッダ(4バイト)を付加して図5(C)に示すような192バイトのソースパケットを生成し、ファイルシステム部17に出力する。
【0029】
ストリームデータベース作成部16は、ストリーム解析部11から入力されるエントリポイントデータ(IピクチャのPTSと、当該Iピクチャのデータが格納されているトランスポートパケットのパケット番号)を用いてエントリポイントマップを生成し、ファイルシステム部17に出力する。
【0030】
ファイルシステム部17は、図5(B)に示すように、トランスポートパケットエクストラヘッダ付加部15から入力されるソースパケット(192バイト)を32個毎に区切り、32個のソースパケットを論理的なデータ単位であるアラインドユニット(Aligned unit)(6144バイト)としてファイル化し、図5(A)に示すように、アラインドユニットを連続的に配置したDVRトランスポートストリームを誤り訂正部18に出力する。ファイルシステム部17はまた、ストリームデータベース作成部16から入力されるエントリポイントマップをファイル化してエントリポイントマップファイルを生成し、誤り訂正部18に出力する。
【0031】
誤り訂正部18は、ファイルシステム部17から入力されるファイルに誤り訂正用の情報を付加して変調部19に出力する。変調部19は、誤り訂正部18からのファイルを所定の方法で変調して書き込み部20に出力する。書き込み部20は、1個のアラインドユニット(6144バイト)を、データ記録媒体21の3セクタ(6144バイト=(2048*3))に記録する。すなわち、図6に示すように、M番目のアラインドユニットは、データ記録媒体21の(3*M)乃至((3*M)+2)番目のセクタに記録され、連続する(M+1)番目のアラインドユニットは、(3*(M+1))乃至(3*(M+1)+2)番目のセクタに記録される。書き込み部20はまた、エントリポイントマップをデータ記録媒体21の所定の位置に記録する。
【0032】
データ記録媒体21は、ランダムアクセス可能であって、且つ、データ記録領域がセクタ単位でフォーマットされた、例えば、ハードディスク、光ディスク、光磁気ディスク、半導体メモリ等の記録媒体である。
【0033】
制御部22は、ドライブ23を制御して、磁気ディスク24、光ディスク25、光磁気ディスク26、または半導体メモリ27等のプログラム記録媒体に記憶されている制御用プログラムを読み出し、読み出した制御用プログラム、および、ユーザから入力されるコマンド等に基づいて記録装置10の各部を制御する。
【0034】
次に、記録装置10のトランスポートストリーム記録処理について、図7のフローチャートを参照して説明する。このトランスポートストリーム記録処理は、ユーザからの記録開始コマンドに対応して開始される。
【0035】
ステップS1において、ストリーム解析部11は、パケット番号TPNを0に初期化する。ステップS2において、ストリーム解析部11は、外部からトランスポートパケットが入力されたか否かを判定し、外部からトランスポートパケットが入力されたと判定するまで待機する。外部からトランスポートパケットが入力されたと判定された場合、ステップS3に進む。
【0036】
ステップS3において、トランスポートパケットエクストラヘッダ付加部15は、外部から入力されたトランスポートパケット(188バイト)に、カウンタ13から入力されたアライバルタイムスタンプを含むトランスポートパケットエクストラヘッダ(4バイト)を付加して、192バイトのソースパケットを生成し、ファイルシステム部17に出力する。
【0037】
ここで、トランスポートパケットエクストラヘッダに含まれるアライバルタイムスタンプが生成される処理について、図8のフローチャートを参照して説明する。
【0038】
ストリーム解析部11では、ステップS11において、入力されたトランスポートストリームのPATが格納された、PIDが0x0000であるPATパケットが検出され、PATに記述されているPMTが格納されたパケット(以下、PMTパケットと記述する)のPIDが取得される。ステップS12において、ステップS11で取得されたPMTパケットのPIDに基づいて、PMTが検出され、PMTに記述されているPCRが格納されたパケット(以下、PCRパケットと記述する)のPIDが取得される。ステップS13において、ステップS12で取得されたPCRパケットのPIDに基づいて、PCRが抽出される。抽出されたPCRは、PLL部12に供給される。
【0039】
PLL部12では、ステップS14において、ストリーム解析部11から入力されたPCRを用いてシステムクロック信号が整合され、カウンタ13に供給される。カウンタ13では、ステップS15において、PLL部12からのシステムクロック信号に同期してアライバルタイムカウンタがカウントアップされ、同時にそのサンプリング値がアライバルタイムスタンプとしてトランスポートパケットエクストラヘッダ付加部15に出力される。
【0040】
図7に戻る。ステップS4において、ストリーム解析部11は、パケット番号TPNを1だけインクリメントして、ヌルパケット発生部14に出力する。
【0041】
ステップS5において、ストリーム解析部11は、外部からのトランスポートパケットの入力が終了したか否かを判定する。外部からのトランスポートパケットの入力が終了していないと判定された場合、ステップS2に戻り、それ以降の処理が繰り返される。
【0042】
なお、ステップS2乃至S5の処理が繰り返されている間において、ファイルシステム部17に出力されたソースパケットは、32個毎に区切られてアラインドユニットとされ、アラインドユニットが前詰めされたDVRトランスポートストリームファイルは、誤り訂正部18で誤り訂正用の情報が付加され、変調部19で変調された後、書き込み部20によってデータ記録媒体21に記録される。
【0043】
ステップS5において、外部からのトランスポートパケットの入力が終了したと判定された場合、ステップS6に進む。
【0044】
ステップS6において、ヌルパケット発生部14は、ストリーム解析部11から最後に入力されたパケット番号TPNが32の倍数であるか否かを判定し、最後に入力されたパケット番号TPNが32の倍数ではないと判定した場合、ステップS7に進む。このとき、アラインドユニットとしてファイル化されていない32個未満のソースパケットが存在する。
【0045】
ステップS7において、ヌルパケット発生部14は、最後に入力されたパケット番号TPNと、その値よりも大きく、且つ、最も近い32の倍数との差の数だけ、ヌルパケットを発生して、トランスポートパケットエクストラヘッダ付加部15に出力する。ステップS8において、トランスポートパケットエクストラヘッダ付加部15は、ヌルパケット発生部14から入力されたヌルパケットにトランスポートパケットエクストラヘッダを付加してソースパケットを生成し、ファイルシステム部17に出力する。
【0046】
ファイルシステム部17は、先程、32個未満であったためにアラインドユニット化できなかったソースパケットと、ヌルパケットのソースパケットとを合わせた32個のソースパケットをアラインドユニットとして後段に出力する。以降、同様に、誤り訂正部18で誤り訂正用の情報が付加され、変調部19で変調された後、書き込み部20によってデータ記録媒体21に記録される。
【0047】
以上説明したように、記録装置10によれば、入力された1つのプログラムを構成するトランスポートパケットの総数が32の倍数ではなかったとしても、32の倍数に対して不足する数だけヌルパケットを発生するようにしたので、全てのトランスポートパケットを、3セクタ分のデータ量に相当するアラインドユニットとしてデータ記録媒体21に記録することができる。したがって、セクタ単位でデータを管理するデータ記録媒体21から、それらのデータを読み出すことが可能となる。
【0048】
次に、上述したトランスポートストリーム記録処理と並行して実行されるエントリポイントマップ記録処理について、図9のフローチャートを参照して説明する。このエントリポイントマップ記録処理は、上述したトランスポートストリーム記録処理と同時に開始される。
【0049】
ステップS21において、ストリーム解析部11は、外部からトランスポートパケットが入力されたか否かを判定し、外部からトランスポートパケットが入力されたと判定するまで待機する。外部からトランスポートパケットが入力されたと判定された場合、ステップS22に進む。
【0050】
ステップS22において、ストリーム解析部11は、トランスポートパケットのトランスポートパケットヘッダに含まれるペイロードユニットスタートインジケータ(payload_unit_start_indicator)に1が記述されているか否かを検出することにより、当該トランスポートパケットのペイロードがPESパケットの第1バイト目から開始しているか否かを判定する。ペイロードユニットスタートインジケータに1が記述されていることが検出されて、トランスポートパケットのペイロードがPESパケットの第1バイト目から開始していると判定された場合、ステップS23に進む。
【0051】
ステップS23において、ストリーム解析部11は、トランスポートパケットのペイロードに記述されているPESパケットの先頭にMPEGビデオのシーケンスヘッダコード(sequence_header_code)である0x000001B3が記述されているか否かを判定する。MPEGビデオのシーケンスヘッダコードが記述されていると判定された場合、当該トランスポートパケットのペイロードには、Iピクチャのデータが記述されていると判断してステップS24に進む。
【0052】
ステップS24において、ストリーム解析部11は、当該トランスポートパケットがエントリポイントであると判断し、当該トランスポートパケットに格納されているIピクチャのPTSと、当該トランスポートパケットのパケット番号を、当該プログラムの識別情報(video_PID)とともにエントリポイントデータとしてストリームデータベース作成部16に出力する。
【0053】
ステップS25において、ストリームデータベース作成部16は、ストリーム解析部11から入力されたエントリポイントデータをエントリポイントマップに記述する。
【0054】
例えば、図10に示すように、パケット番号が(32*M+4)であるトランスポートパケットのペイロードに、Iピクチャのデータが記述されていると判断された場合、図11に示すように、エントリポイントマップには、パケット番号(32*M+4)とそのPTS(=pts1)が対応付けて記述される。また、パケット番号が(32*(M+1)+5)であるトランスポートパケットのペイロードに、Iピクチャのデータが記述されていると判断された場合、エントリポイントマップには、パケット番号(32*(M+1)+5)とそのPTS(=pts2)が対応付けて記述される。
【0055】
なお、図11のエントリポイントマップにおいて、Iピクチャのデータが格納されているパケットのパケット番号は、I_start_packet_Noと表示されている。また、エントリポイントマップにおいて、オフセットソースパケットナンバ(offset_source_packet_number)とは、当該プログラムの先頭のパケットに付せられたパケット番号であり、初期値は0である。
【0056】
ステップS26において、ストリーム解析部11は、外部からのトランスポートパケットの入力が終了したか否かを判定する。外部からのトランスポートパケットの入力が終了していないと判定された場合、ステップS21に戻り、それ以降の処理が繰り返され、ステップS26において、外部からのトランスポートパケットの入力が終了したと判定された場合、ステップS27に進む。
【0057】
ステップS27において、ストリームデータベース作成部16は、作成したエントリポイントマップをファイルシステム部17に出力する。ファイルシステム部17は、入力されたエントリポイントマップをファイル化して後段に出力する。以降、誤り訂正部18で誤り訂正用の情報が付加され、変調部19で変調された後、書き込み部20によってデータ記録媒体21に記録される。
【0058】
上述したようにデータ記録媒体21に記録されたエントリポイントマップは、後述する再生処理において利用される。
【0059】
なお、エントリポイントマップには、エントリポイントの位置を特定する情報としてパケット番号を記述するようにしているので、エントリポイントの位置をバイト精度のアドレスを用いて表現する場合に比べて、必要なビット量を小さくすることができる。
【0060】
次に、図12は、本発明のトランスポートストリーム記録装置の一実施の形態である記録装置の第2の構成例を示している。この記録装置30は、図1に示した第1の構成例である記録装置10からヌルパケット発生部14を削除したものであり、その他の構成ブロックは記録装置10と共通である。
【0061】
図13は、記録装置30によって生成されるDVRトランスポートストリームを示している。記録装置10によって生成されるDVRトランスポートストリーム(図5)との相異は、図13(D)に示すように、終端部分のソースパケットが32個に満たない場合、ヌルパケットは追加されずに、そのまま記録されることである。なお、終端部分の32個に満たないソースパケットの数(Nx+1)は、次式(2)によって計算される。
Npacket=ファイルサイズ/192
Nx=Npacket%32 ・・・(2)
【0062】
ここで、Npacketとは、DVRトランスポートストリームを構成するソースパケットの総数である。ファイルサイズとは、ファイルシステム部17で管理されるDVRトランスポートストリームファイルのデータ量(バイト量)である。記号「/」は商の小数点以下を切り捨てる除算を演算子であり、記号「%」は剰余の演算子である。
【0063】
ストリームデータベース作成部16で、DVRトランスポートストリームを構成するソースパケットの総数Npacketをストリームデータベースに記述するようにすれば、再生装置40(後述)において、Nxを演算することが可能となる。
【0064】
次に、図14は、本発明のトランスポートストリーム再生装置の一実施の形態である再生装置の構成例を示している。この再生装置40は、記録装置10または記録装置30により、DVRトランスポートストリームファイルとエントリポイントマップファイルが記録されたデータ記録媒体21から当該DVRトランスポートストリームファイルに対応するAV信号を再生するものである。
【0065】
また、再生装置40は、記録されているDVRトランスポートストリームファイルを部分的に消去する機能も有している。
【0066】
読み出し部41は、制御部49から入力される読み出し制御信号に対応して、データ記録媒体21からDVRトランスポートストリームファイルまたはエントリポイントマップファイルに対応する信号を読み出して復調部42に出力する。復調部42は、読み出し部41から入力された信号に、記録装置10,30の変調部19に対応する復調を施して誤り訂正部43に出力する。誤り訂正部43は、記録装置10,30の誤り訂正部18で付与された誤り訂正用の情報に基づいて信号の誤り訂正を実行し、得られたDVRトランスポートストリームファイルまたはエントリポイントマップファイルをファイルシステム部44に出力する。
【0067】
ファイルシステム部44は、誤り訂正部43から入力されるDVRトランスポートストリームファイルをソースパケットに分離して比較器45に出力する。ファイルシステム部44はまた、誤り訂正部43から入力されるエントリポイントマップを制御部49に供給する。
【0068】
クロック発振器48は、27メガヘルツのアライバルタイムクロックを発生してカウンタ60に出力する。カウンタ60は、DVRトランスポートストリームの1番目のソースパケットのアライバルタイムスタンプの値を初期値として、27メガヘルツクロックをカウントし、そのクロックカウンタ値に基づいた時間を計算して比較器45に出力する。
【0069】
比較器45は、ソースパケットのトランスポートパケットエクストラヘッダに含まれるアライバルタイムスタンプが、カウンタ60から入力される現在の時刻と等しいタイミングにおいて、当該ソースパケットからトランスポートパケットエクストラヘッダを除去したトランスポートパケットをデマルチプレクサ46に出力する。
【0070】
例えば、カウンタ60で発生された時刻が27メガヘルツクロックパルスをカウントするバイナリカウンタの値で表され、かつ、アライバルタイムスタンプが27メガヘルツ精度のNビット長の時刻で表される場合、カウンタ60で発生される時刻のLSB側のNビットとアライバルタイムスタンプが等しいタイミングにおいて、当該ソースパケットからトランスポートパケットエクストラヘッダが除去されたトランスポートパケットが、比較器45からデマルチプレクサ46に出力される。
【0071】
デマルチプレクサ46は、比較器45から入力されるトランスポートパケットから、ユーザが指定するプログラムに対応するビデオとオーディオの各トランスポートパケットを抽出してAVデコーダ47に出力する。AVデコーダ47は、デマルチプレクサ46からのビデオとオーディオの各トランスポートパケットをデコードして、得られるビデオ信号およびオーディオ信号を後段に出力する。
【0072】
制御部49は、ドライブ51を制御して、磁気ディスク52、光ディスク53、光磁気ディスク54、または半導体メモリ55等のプログラム記録媒体に記憶されている制御用プログラムを読み出し、読み出した制御用プログラム、および、ユーザから入力されるコマンド等に基づいて再生装置40の各部を制御する。
【0073】
書き込み部50は、データ記録媒体21に記録されているDVRトランスポートストリームファイルが部分的に消去されるとき、制御部49から供給されるエントリポイントマップを、所定の方法(後述)に従って更新し、データ記録媒体21に記録する。
【0074】
次に、再生装置40の再生処理について、図15のフローチャートを参照して説明する。この再生処理は、再生するプログラムの指定、および再生開始のコマンドがユーザから入力されたときに開始される。
【0075】
ステップS31において、データ記録媒体21から再生するプログラムに対応するエントリポイントマップが、読み出し部41によって読み出され、復調部42乃至ファイルシステム部44によって処理された後、制御部49に供給される。ステップS32において、プログラムの再生開始位置(プログラムの先頭からの経過時間を用いて示す)がユーザにより制御部49に入力される。
【0076】
ステップS33において、制御部49は、ステップS32で入力された再生開始位置と、ステップS31で得たエントリポイントマップに記述されているPTSを比較し、入力された再生開始位置に最も近いPTSの値をもつエントリポイントのパケット番号(I_start_packet_No)を用いてDVRトランスポートストリームの読み出し開始アドレスを決定する。
【0077】
具体的には、エントリポイントのソースパケットが含まれるアラインユニットの番号AUNEP、AUNEPで示されるアラインユニットの先頭からエントリポイントのソースパケットまでのオフセットパケット数OFTEP、さらに、AUNEPで示されるアラインユニットの先頭が記録されているセクタの番号SNAUが読み出し開始アドレスとして次式(3)のように演算される。
AUNEP=(I_start_packet_No−offset_source_packet_number)/32
OFTEP=(I_start_packet_No−offset_source_packet_number)%32
SNAU=AUNEP*3 ・・・(3)
ここで、記号「/」は商の小数点以下を切り捨てる除算の演算子であり、記号「%」は剰余の演算子である。
【0078】
例えば、図11に示すエントリポイントマップのPTSがpts1であるエントリポイントから再生を開始する場合、パケット番号(I_start_packet_No)は32*M+4であるので、その読み出し開始アドレスは式(3)を用いて以下のように演算される。
AUNEP=M
OFTEP=4
SNAU =3M
【0079】
ステップS34において、読み出し部41は、制御部49の制御に基づいて、データ記録媒体21の、ステップS33で決定された読み出し開始アドレスからDVRトランスポートストリームの読み出しを開始する。読み出されたDVRトランスポートストリームは、復調部42乃至デマルチプレクサ46によって適宜処理され、ビデオとオーディオの各ストリームとしてAVデコーダ47に入力される。
【0080】
ステップS35において、AVデコーダ47は、デマルチプレクサ46からのビデオとオーディオの各トランスポートパケットをデコードして、得られたビデオ信号およびオーディオ信号を例えばモニタ(不図示)に出力する。
【0081】
ステップS36において、制御部49は、ユーザから、例えばランダムアクセス再生などの再生位置の変更が指示されたか否かを判定する。再生位置の変更が指示されたと判定された場合、ステップS33に戻り、再び、読み出し開始アドレスが決定され、それ以降の処理が繰り返される。
【0082】
ステップS36において、再生位置の変更が指示されていないと判定された場合、ステップS37に進む。ステップS37において、制御部49は、ユーザから再生終了が指示されたか否かを判定する。再生終了が指示されていないと判定された場合、ステップS34に戻り、それ以降の処理が繰り返される。その後、再生終了が指示されたと判定された場合、この再生処理は終了される。
【0083】
上述したように、再生処理においては、エントリポイントマップに記述されているエントリポイントから再生を開始するようになされており、そのエントリポイントのデータが記録されているデータ記録媒体21上のアドレスは単純な演算により容易に求めることができるので、読み出し位置の制御を容易、且つ、迅速に実行することが可能となる。
【0084】
次に、再生装置40による、データ記録媒体21に記録されているDVRトランスポートストリームファイルを部分的に消去する処理について、図16のフローチャートを参照して説明する。この部分消去処理は、部分的に消去したいプログラムの指定と、部分消去開始のコマンドがユーザから入力されたときに開始される。
【0085】
ステップS41において、指定されたプログラムに対応するエントリポイントマップが、データ記録媒体21から読み出し部41によって読み出され、復調部42乃至ファイルシステム部44によって適宜処理された後、制御部49に供給される。ステップS42において、プログラムの消去する範囲(プログラムの先頭からの経過時間を用いて示す)がユーザにより制御部49に入力される。
【0086】
ステップS43において、制御部49は、ステップS42で入力された消去範囲と、ステップS41で得たエントリポイントマップを比較して、消去範囲をアラインドユニット単位に変換し、消去範囲のアドレスを、図15のステップS33における演算と同様の方法で演算する。
【0087】
例えば、図17(A)に示すように、ユーザによって、プログラムの先頭からM+1番目のアラインドユニット内のPTSがpts3であるソースパケットまでが消去範囲とされた場合、実際に消去する範囲は、プログラムの先頭からM番目のアラインドユニットまでに変換され、そのアドレスが演算される。
【0088】
ステップS44において、制御部49は、ステップS43でアラインドユニット単位とした消去範囲に基づいて、図17(B)に示すように消去範囲の記録をデータ記録媒体21から消去させる。
【0089】
ステップS45において、制御部49は、エントリポイントマップを更新して書き込み部50に出力し、データ記録媒体21に書き込ませる。具体的には、図17に示した例の場合、オフセットソースパケットナンバを(M+1)*32に書き換えて、さらに、プログラムの消去した範囲に存在していたエントリポイントのデータを消去して、書き込み部50に出力し、データ記録媒体21に書き込ませる。
【0090】
以上のように、部分消去処理においても、アラインドユニット単位でDVRトランスポートストリームファイルを消去するようにしたので、消去されない部分はアラインドユニット単位で記録されている状態が維持される。
【0091】
なお、本実施の形態においては、記録装置10、記録装置30、および再生装置40の構成例を個々に独立したものとして示したが、記録装置10(または記録装置30)と再生装置40を組み合わせて1個の装置として構成するようにしてもよい。
【0092】
また、以上の説明において、セクタサイズが2048バイトであるとして、本発明を適用した記録装置10,30に、アラインドユニットをセクタの整数倍のエリア(いまの場合、3セクタのエリア、すなわち、2048バイト*3)に記録させるようにしたが、記録の方法はそれに限定されるものではない。
【0093】
例えば、セクタサイズが65536(=64*1024)バイトであるデータ記録媒体に記録する方法について説明する。図18は、32個のアラインドユニットを3セクタのエリア(65536バイト*3)に記録する例を示している。
【0094】
図18において、□は1個のアラインドユニットを示し、□の中の数字(0乃至31)は、3セクタ分のエリアに記録されているアラインドユニットの番号を示す。第10番目のアラインドユニットおよび第21番目のアラインドユニットは、2個のセクタにまたがって記録されている。アラインドユニットを示す□の下の数字(0乃至9)は、全データがそろっているアラインドユニットのセクタ内におけるオフセット番号である。
【0095】
図18に示すように、記録の始めにおいて、先頭のアラインドユニットは、セクタにアラインされているものとする。第K番目(Kは正の整数)のセクタには、第0番目乃至第9番目のアラインドユニットおよび第10番目のアラインドユニットの前半の4096(=6144−2048)バイトが記録され、第(K+1)番目のセクタには、第10番目のアラインドユニットの後半の2048バイト、第11番目乃至第20番目のアラインドユニット、および第21番目のアラインドユニットの前半の2048(=6144−4096)バイトが記録され、第(K+2)番目のセクタには、第21番目のアラインドユニットの後半の4096バイト、および第22番目乃至第31番目のアラインドユニットが記録される。
【0096】
なお、ファイルシステムがFATやUDFである場合(すなわち、セクタサイズが2048バイトである場合)、ファイルの開始点のデータはセクタの開始位置にアラインしていなければならないが、セクタサイズが65536バイトである場合には、ファイルの開始点のデータは、セクタの途中から開始してもよい。その場合、ファイルシステムがファイルの開始点のセクタ内での位置を示すセクタスタートオフセットを管理する。
【0097】
セクタサイズが65536バイトである場合における、ファイルの先頭部分のデータを消去する方法について説明する。
【0098】
この場合、ファイルの先頭部分のデータを消去する場合において説明する。まず、図19に示すように、記録の始めにおいては、最初のアラインドユニットはセクタにアラインされているとする。
【0099】
図20は、第0番目のセクタに記録されているデータの途中までアラインドユニット単位で消去した例を示している。この例では、ファイルの開始点でのセクタ内での位置を示すセクタスタートオフセットは、6144*i(iは9以下の整数)バイトの値を示す。
【0100】
図21は、第1番目のセクタに記録されているデータの途中までアラインドユニット単位で消去した例を示している。この場合、ファイルの開始点のセクタ内での位置を示すセクタスタートオフセットは、2048+6144*iバイトの値を示す。
【0101】
図22は、第2番目のセクタに記録されているデータの途中までアラインドユニット単位で消去した例を示している。この場合、ファイルの開始点のセクタ内での位置を示すセクタスタートオフセットは、4096+6144*iバイトの値を示す。
【0102】
この場合においても、ファイルの先頭部分を消去した後に、エントリポイントマップに記述されているエントリポイントを示すパケット番号に対するオフセットのパケット番号(図11のoffset_source_packet_number)を更新するとともに、アラインドユニットが消去されたことによって参照するエントリポイントが無くなったエントリポイントのデータをエントリポイントマップから消去する。
【0103】
このよう記録されているDVRトランスポートストリームを再生する場合、エントリポイントマップに記述されているエントリポイントを示すパケット番号に基づいてDVRトランスポートストリームの読み出し開始アドレスを決定する。
【0104】
具体的には、以下に示す(1)乃至(6)の処理の演算によって、DVRトランスポートストリームの読み出し開始アドレスが決定される。
【0105】
(1)の処理では、ファイルの開始点のデータを含むセクタから指定されるエントリポイントを含むセクタまでのオフセットのセクタ番号OFT_SCT_NUMが次式(4)を用いて演算されれる。OFT_SCT_NUMは、図18に示したK、K+1、またはK+2の値を与える。
TMP_ALU_NO=TMP1/6144
TMP_OCN=TMP_ALU_NO*6144/65536
OFT_SCT_NUM=TMP_OCN-XN ・・・(4)
【0106】
ただし、
TMP1=(I_start_packet_No−offset_source_packet_number)*192+TMP2
であって、
sector_start_offset%6144=0である場合、
TMP2=sector_start_offset
XN=0
であり、
sector_start_offset%6144=2048である場合、
TMP2=sector_start_offset+65536
XN=1
であり、
sector_start_offset%6144=4096である場合、
TMP2=sector_start_offset+65536*2
XN=2
である。
【0107】
(2)の処理では、エントリポイントを含むアラインドユニットについて、図18に示す第0番目乃至第31番目のアラインドユニットに対応するREF_ALU_NOが次式(5)を用いて演算される。
REF_ALU_NO=TMP_ALU_NO%32 ・・・(5)
【0108】
(3)の処理では、REF_ALU_NOが10または21であるか否かが判定され、REF_ALU_NOが10または21であると判定された場合、エントリポイントを含む当該アラインドユニットは、OFT_SCT_NUMで示されるセクタと、その次のセクタにまたがっていると判断される。
【0109】
REF_ALU_NOが10および21のいずれでもないと判定された場合、(4)の処理では、OFT_SCT_NUMによって示されるセクタの開始位置から、最初の全データがそろっているアラインドユニットまでのオフセットバイト数OST_FST_ALUが次式(6)を用いて演算される。ST_FST_ALUは、図18に示す2048バイトまたは4096バイトの値を与える。
OST_FST_ALU=(TMP_OCN%3)*2048 ・・・(6)
【0110】
(5)の処理では、上記の最初の全データがそろっているアラインドユニットから、エントリポイントを含むアラインドユニットまでのオフセットのアラインドユニット数OFT_ALU_NUMが次式(7)を用いて演算される。OFT_ALU_NUMは、図18に示すセクタ内での全データがそろっているアラインドユニットのオフセット番号(0乃至9)のいずれかを示す。
OFT_ALU_NUM=REF_ALU_NO-XNUM ・・・(7)
ただし、
TMP_OCN%3=0である場合、
XNUM=0
であり、
TMP_OCN%3=1である場合、
XNUM=11
であり、
TMP_OCN%3=2である場合、
XNUM=22
である。
【0111】
(6)の処理では、OFT_ALU_NUMによって示されるアラインドユニットの中で、または(3)の処理でREF_ALU_NOが10また21であるアラインドユニットの中で、先頭のソースパケットからエントリポイントのソースパケットまでのオフセットパケット数OFTEPが次式(8)を用いて演算される。
【0112】
OFTEP=(I_start_packet_No−offset_source_packet_number)%32)
・・・(8)
【0113】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0114】
このプログラム記録媒体は、例えば図1に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク24(フロッピディスクを含む)、光ディスク25(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク26(MD(Mini Disc)を含む)、もしくは半導体メモリ27などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMハードディスクなどで構成される。
【0115】
なお、本明細書において、プログラム記録媒体に記録されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0116】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【符号の説明】
【0117】
10 記録装置, 11 ストリーム解析部, 13 カウンタ, 15 トランスポートパケットエクストラヘッダ付加部, 16 ストリームデータベース作成部, 17 ファイルシステム部, 21 データ記録媒体, 22 制御部, 23 ドライブ, 24 磁気ディスク, 25 光ディスク, 26 光磁気ディスク, 27 半導体メモリ, 30 記録装置, 40 再生装置, 44 ファイルシステム部, 45 比較器, 49 制御部, 50 書き込み部, 52 磁気ディスク, 53 光ディスク, 54 光磁気ディスク, 55 半導体メモリ

【特許請求の範囲】
【請求項1】
アラインドユニット単位で記録されているトランスポートストリームをデータ記録媒体から再生するトランスポートストリーム再生装置において、
再生開始位置を指定する指定手段と、
指定された前記再生開始位置に対応する前記データ記録媒体上のアドレスを演算する演算手段と、
前記演算手段が演算した前記データ記録媒体上のアドレスから前記トランスポートパケットの読み出しを開始する読み出し手段と
を含むトランスポートストリーム再生装置。
【請求項2】
前記データ記録媒体からエントリポイントマップを取得する取得手段と、
指定された前記再生開始位置と前記エントリポイントマップに記述されているPTSを比較して、前記指定された再生開始位置に隣接したエントリポイントを検索する検索手段と
をさらに含み、
前記演算手段は、前記エントリポイントマップに記述されているカウント値を用いて、前記エントリポイントに対応するトランスポートパケットが記録されている前記データ記録媒体上のアドレスを演算する
請求項1に記載のトランスポートストリーム再生装置。
【請求項3】
指定された消去範囲を前記アラインドユニット単位のデータ領域に変換する変換手段と、
前記変換手段が変換した前記アラインドユニット単位のデータ領域に記録されている前記トランスポートストリームを消去する消去手段と
をさらに含む請求項1に記載のトランスポートストリーム再生装置。
【請求項4】
アラインドユニット単位で記録されているトランスポートストリームをデータ記録媒体から再生するトランスポートストリーム再生装置のトランスポートストリーム再生方法において、
再生開始位置を指定する指定ステップと、
指定された前記再生開始位置に対応する前記データ記録媒体上のアドレスを演算する演算ステップと、
前記演算ステップの処理で演算された前記データ記録媒体上のアドレスから前記トランスポートパケットの読み出しを開始する読み出しステップと
を含むトランスポートストリーム再生方法。
【請求項5】
アラインドユニット単位で記録されているトランスポートストリームをデータ記録媒体から再生するトランスポートストリーム再生装置の制御用のプログラムであって、
再生開始位置を指定する指定ステップと、
指定された前記再生開始位置に対応する前記データ記録媒体上のアドレスを演算する演算ステップと、
前記演算ステップの処理で演算された前記データ記録媒体上のアドレスから前記トランスポートパケットの読み出しを開始する読み出しステップと
を含む処理をトランスポートストリーム再生装置のコンピュータに実行させるプログラムが記録されているプログラム記録媒体。

【図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

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2011−28841(P2011−28841A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2010−225155(P2010−225155)
【出願日】平成22年10月4日(2010.10.4)
【分割の表示】特願2008−223749(P2008−223749)の分割
【原出願日】平成12年7月28日(2000.7.28)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】