(57)【特許請求の範囲】
【請求項１】
第１のクロックレートから導出されるAと第２のクロックレートから導出されるBとの間の比率がB/Aであるとして、第１のクロックレートに基づく第１のデータパケットタイムスタンプPATAを第２のクロックレートに基づく第２のデータパケットタイムスタンプPATBに変換する方法であって、
(i)は現在のタイムスタンプ（Ｍ１）を表わし、(i−1)は前のタイムスタンプ（Ｍ２）を表わし、「／」は整数の除算を表わし、Rは丸め誤差の累積を回避するために用いられる剰余であり、PAT_Mは前記第１のクロックレートのタイムスタンプカウンタのラップアラウンド値であるとして、
PATAタイムスタンプのラップアラウンドが行われない場合は、
D(i)＝((PATA(i)−PATA(i−1))*B＋R(i−1))／A
R(i)＝((PATA(i)−PATA(i−1))*B＋R(i−1))  mod  A
を計算し、
i−1とiの間でPATAタイムスタンプのラップアラウンドが行われる場合は、
D(i)＝((PATA(i)＋PAT_M−PATA(i−1))*B＋R(i−1))／A
R(i)＝((PATA(i)＋PAT_M−PATA(i−1))*B＋R(i−1))  mod  A
を計算する段階を含み、ここで、
PATB(i)＝PATB(i−1)＋D(i)
とする、ことを特徴とする方法。
【請求項２】
前記第２のデータパケットタイムスタンプPATBの初期値PATB(0)はゼロである、請求項１記載の方法。
【請求項３】
前記第２のデータパケットタイムスタンプPATBは、基本部PATBAと拡張部PATEXとから構成され、
PATEX(i)＝(PATEX(i−1)＋D(i))  mod  300
PATBA(i)＝PATBA(i−1)＋(PATEX(i−1)＋D(i))／300
に従って計算される、請求項１又は２記載の方法。
【請求項４】
前記第１のデータパケットタイムスタンプのビット長と前記第２のデータパケットタイムスタンプのビット長は異なる、請求項１乃至３のうちいずれか一項記載の方法。
【請求項５】
前記第１のタイムスタンプは例えばＩＥＥＥ１３９４インタフェースといったインタフェース（ＩＦ）から生じ、前記第２のタイムスタンプは前記インタフェースを含んだレコーダ（ＳＴＲ）上にデータパケットを記録するために使用される、請求項１乃至４のうちいずれか一項記載の方法。
【請求項６】
第１のクロックレートから導出されるAと第２のクロックレートから導出されるBとの間の比率がB/Aであるとして、第１のクロックレートに基づく第１のデータパケットタイムスタンプPATAを第２のクロックレートに基づく第２のデータパケットタイムスタンプPATBに変換する手段（ＴＳＰ，Ｍ１，Ｍ２，μＰ）を用いてデータパケットを記録又は再生するデータレコーダ（ＳＴＲ）であって、
(i)は現在のタイムスタンプ（Ｍ１）を表わし、(i−1)は前のタイムスタンプ（Ｍ２）を表わし、「／」は整数の除算を表わし、Rは丸め誤差の累積を回避するために用いられる剰余であり、PAT_Mは前記第１のクロックレートのタイムスタンプカウンタのラップアラウンド値であるとして、
PATAタイムスタンプのラップアラウンドが行われない場合は、
D(i)＝((PATA(i)−PATA(i−1))*B＋R(i−1))／A
R(i)＝((PATA(i)−PATA(i−1))*B＋R(i−1))  mod  A
を計算し、
i−1とiの間でPATAタイムスタンプのラップアラウンドが行われる場合は、
D(i)＝((PATA(i)＋PAT_M−PATA(i−1))*B＋R(i−1))／A
R(i)＝((PATA(i)＋PAT_M−PATA(i−1))*B＋R(i−1))  mod  A
を計算し、ここで、
PATB(i)＝PATB(i−1)＋D(i)
とする、機能を含むことを特徴とするデータレコーダ。
【請求項７】
前記第２のデータパケットタイムスタンプPATBの初期値PATB(0)はゼロである、請求項６記載のデータレコーダ。
【請求項８】
前記第２のデータパケットタイムスタンプＰＡＴＢは、基本部ＰＡＴＢＡと拡張部ＰＡＴＥＸとから構成され、
PATEX(i)＝(PATEX(i−1)＋D(i))  mod  300
PATBA(i)＝PATBA(i−1)＋(PATEX(i−1)＋D(i))／300
に従って計算される、請求項６又は７記載のデータレコーダ。
【請求項９】
前記第１のデータパケットタイムスタンプのビット長と前記第２のデータパケットタイムスタンプのビット長は異なる、請求項６乃至８のうちいずれか一項記載のデータレコーダ。
【請求項１０】
前記第１のタイムスタンプは例えばＩＥＥＥ１３９４インタフェースといったインタフェース（ＩＦ）から生じ、前記第２のタイムスタンプは前記インタフェースを含んだレコーダ（ＳＴＲ）上にデータパケットを記録するために使用される、請求項６乃至９のうちいずれか一項記載のデータレコーダ。
【発明の詳細な説明】
【０００１】
本発明は、ビットストリームの記録及び再生のための第１のクロックレートに基づく第１のデータパケットタイムスタンプを第２のクロックレートに基づく第２のデータパケットタイムスタンプに変換する方法及びデータレコーダに関する。
【０００２】
［背景］
ＤＶＤ（ディジタル・バーサタイル・ディスク）ストリームの記録については、近々最終的に仕様が決まることとなっており、例えばＩＳＯ／ＩＥＣ１１１７２，１３８１８又は１４４９６で仕様が決められたＭＰＥＧデータパケットを含むディジタルビットストリームを記録及び再生するためのＤＶＤ書換可能／再記録可能ディスクについて考える。例えばＤＶＢ−Ｓ標準ＥＴＳ３００４２１に従って記憶されたＭＰＥＧ−２搬送パケットを正しくリアルタイムで再生することを可能とするために、記録されるべき各データパケットに時間情報が追加されるべきである。
【０００３】
本願の出願人による国際特許出願第００／１４９５２号では、ＤＶＤストリームレコーダにおいても元のＩＥＥＥ１３９４タイムスタンプを使用することが提案されている。
【０００４】
［本発明］
記録の際、ＤＶＤストリーマーは、アプリケーション装置からデータストリームを受信する。再生の際、ストリーマーは、そのアプリケーション装置又は他のアプリケーション装置へ再生されたデータストリームを出力する。本発明は、記録されたデータパケットの再生のために必要とされる参照時間情報を効率的に提供することを目的とする。この目的は、請求項１に記載の方法によって達成される。
【０００５】
かかる方法を用いるデータレコーダは、請求項６に記載されている。
【０００６】
ＤＶＤストリーマーは、インタフェースを介してアプリケーション装置に接続される。例えばＩＥＥＥ１３９４インタフェースを用いた家庭ネットワーク環境では、インタフェースのタイミングの発生又はタイムスタンプ操作と、対応するインタフェース時間参照の再発生は、特別なＩＥＥＥ１３９４形式で実行される。
【０００７】
独立のストリーマー専用タイムスタンプを更に発生する代わりに、かかるインタフェースで発生されたタイムスタンプがＤＶＤストリームストリーム記録動作にも使用されうる。しかしながら、必要とされるＤＶＤストリーマータイムスタンプ形式は上述のＩＥＥＥ１３９４タイムスタンプ形式とは異なるため、ＤＶＤストリーム記録動作を行うためには、タイムスタンプ形式の変換を行わねばならない。ＤＶＤストリーム記録タイムスタンプ形式は、書換可能／再記録可能ディスクのためのＤＶＤ仕様、第５部ストリーム記録（DVD Specifications for Rewritable/Re-recordable Discs, Part 5 Stream Recording）に準拠する２７．０００ＭＨｚクロック周波数を用いる４８ビット形式である。本発明によれば、連続するインタフェースタイムスタンプ間の差が決定され記録用のＤＶＤストリームレコーダタイムスタンプを計算するために使用される形式変換が行われる。有利には、ラップアラウンドが課せられたＩＥＥＥ１３９４タイムスタンプは、ＤＶＤストリーム記録形式へ変換されうるため、非常に長い整数データ型に対する除算演算又は浮動小数点演算を回避できる。
【０００８】
原理的には、本発明の方法は、第１のクロックレートから導出されるＡと第２のクロックレートから導出されるＢとの間の比率がＢ／Ａであるとしたとき、第１のクロックレートに基づく第１のデータパケットタイムスタンプＰＡＴＡを第２のクロックレートに基づく第２のデータパケットタイムスタンプＰＡＴＢに変換するのに適しており、この方法は、
(i)は現在のタイムスタンプを表わし、(i-1)は前のタイムスタンプを表わし、「／」は整数の除算を表わし、Ｒは丸め誤差の累積を回避するために用いられる剰余であり、PAT_Mは第１のクロックレートのタイムスタンプカウンタのラップアラウンド値であり、
PATB(i) = PATB(i-1) + D(i)
であるとすると、
ＰＡＴタイムスタンプのラップアラウンドが行われない場合は、
D(i) = ((PATA(i)‐PATA(i-1))*B + R(i-1))/A
R(i) = ((PATA(i)‐PATA(i-1))*B + R(i-1)) mod A
を計算する段階と、
ｉ−１とｉの間でＰＡＴタイムスタンプのラップアラウンドが行われる場合は、
D(i) = ((PATA(i) +PAT_M‐PATA(i-1))*B + R(i-1))/A
R(i) = ((PATA(i) +PAT_M‐PATA(i-1))*B + R(i-1)) mod A
を計算する段階とを含む。
【０００９】
このＰＡＴ＿Ｍラップアラウンド値は、ＰＡＴAを「１」でインクリメントしたときの可能な最大値である。
【００１０】
本発明の方法の有利な更なる実施例については、従属する各請求項に開示されている。
【００１１】
原理的には、データレコーダは、第１のクロックレートから導出されるＡと第２のクロックレートから導出されるＢとの間の比率がＢ／Ａであるとしたとき、第１のクロックレートに基づく第１のデータパケットタイムスタンプＰＡＴＡを第２のクロックレートに基づく第２のデータパケットタイムスタンプＰＡＴＢに変換する手段を用いてデータパケットを記録又は再生するのに適しており、このデータレコーダは、
(i)は現在のタイムスタンプを表わし、(i-1)は前のタイムスタンプを表わし、「／」は整数の除算を表わし、Ｒは丸め誤差の累積を回避するために用いられる剰余であり、PAT_Mは第１のクロックレートのタイムスタンプカウンタのラップアラウンド値であり、
PATB(i) = PATB(i-1) + D(i)
であるとすると、
ＰＡＴタイムスタンプのラップアラウンドが行われない場合は、
D(i) = ((PATA(i)‐PATA(i-1))*B + R(i-1))/A
R(i) = ((PATA(i)‐PATA(i-1))*B + R(i-1)) mod A
を計算する手段、
ｉ−１とｉの間でＰＡＴタイムスタンプのラップアラウンドが行われる場合は、
D(i) = ((PATA(i) +PAT_M‐PATA(i-1))*B + R(i-1))/A
R(i) = ((PATA(i) +PAT_M‐PATA(i-1))*B + R(i-1)) mod A
を計算する手段とを含む。
【００１２】
本発明の装置の有利な更なる実施例については、従属する各請求項に開示されている。
【００１３】
［典型的な実施例］
本発明の典型的な実施例について、以下添付の図面を参照して説明する。図１中、アプリケーション装置ＡＰＰＤは、インタフェースＩＦを介してＤＶＤストリーマーユニットＳＴＲＵに接続される。ＡＰＰＤには、ＡＰＰＤから来るデータパケットをＩＦへ渡す前にタイムスタンプ操作を行いバッファ操作を行うタイムスタンプ・バッファ操作段ＴＳＢＩと、ＩＦからデータパケットを受信し、中間のバッファ操作を行い、データパケットをＡＰＰＤへ時間的に正しく搬送するバッファ・タイムスタンプ操作処理段ＢＴＳＨＩとを含むインタフェース回路が設けられる。
【００１４】
リアルタイム記録モードでは、ＤＶＤストリーマーは、ＩＥＥＥ１３９４インタフェースＩＦを介して１以上のプログラムのための例えばＭＰＥＧ−２搬送パケットを受信する。これらのパケットは、更なるバッファ・タイムスタンプ操作処理段ＢＴＳＨＳと更なるタイムスタンプ・バッファ操作段ＴＳＢＳとを通りストリーマーユニットＳＴＲＵへ送られる。ＳＴＲＵから来る再生されたデータパケットは、バッファ・タイミング操作再発生段ＢＴＲＳと更なるバッファ・タイムスタンプ操作処理段ＢＴＳＳとを通ってＩＦへ送られる。
【００１５】
破線Ａ−Ａは、ＴＳＢＳ，ＢＴＲＳ及びＳＴＲＵを含むストリーマー関連の段／ユニットＳＴＲＲＳと、ＴＳＢＩ，ＢＴＳＨＳ，ＢＴＳＳ，ＢＴＳＨＩ及びＩＦを含むインタフェース関連の段／ユニットＩＦＲＳとの間の機能上の境界である。
【００１６】
影付きのボックスとして示されるＤＶＤストリーマーＳＴＲは、ＳＴＲＵ，ＢＴＳＨＳ，ＴＳＢＳ，ＢＴＲＳ及びＢＴＳＳといったユニット／段を含む。
【００１７】
ＩＥＥＥ１３９４に従うタイムスタンプ形式は、２４．５７６ＭＨｚクロックを基礎とし、２つのラップアラウンドカウンタを含む。第１のカウンタの出力は、「０」から「３０７１」までを計数する１２ビットのcycle_offsetであり、第２のカウンタの出力は、「０」から「７９９９」までを計数する１３ビットのcycle_countである。カウンタの上限を超えると、ゼロへ戻るラップアラウンドが実行される。第１のカウンタcycle_offsetのラップアラウンドにより、第２のcycle_countフィールドへ移る。cycle_countに対して一回のラップアラウンドを生じさせる完全な時間は、ちょうど１秒である。
【００１８】
ＤＶＤストリーマーにおけるリアルタイムのデータパケット処理のために、各ＤＢＤ搬送パケットはそれ自身のタイムスタンプを持たねばならない。通常は、ＤＶＤストリーマーはそれ自身のタイムスタンプを記録されたデータパケットと共に発生し記録する。かかるＤＶＤストリーマータイムスタンプは、その後、再生モードにおいて、記録時の元の時間的な位置でデータパケットを出力するために使用される。
【００１９】
しかしながら、ＤＶＤストリーマーは、ＩＥＥＥ１３９４インタフェースを含む。従って、ＩＥＥＥ１３９４タイムスタンプは、それらの形式はＤＶＤストリームの記録のためには適していないが、既にＤＶＤストリーマーの中に存在している。特に、異なるクロック周波数２４．５７６ＭＨｚ及び２７．０００ＭＨｚの場合は、一方から他方への精度の高い変換は取るに足らないものではないため、問題を生じうる。これらの問題にも関わらず、ＩＥＥＥ１３９４タイムスタンプを使用することができれば、別のＤＶＤタイムスタンプクロックを使用することは不必要でありうる。従って、本発明によりＤＶＤストリーム記録のためにＩＥＥＥ１３９４タイムスタンプが使用される場合は、３２ビット／２４．５７６ＭＨｚ形式は、ＰＡＴがパケット到着時間を示す図２に示される上述の４８ビット／２７．０００ＭＨｚのＤＶＤ形式に変換されねばならない。
【００２０】
ＰＡＴは、３９ビット長のPAT_baseと、９ビット長のPAT_extensionとから構成される。ＰＡＴは、ストリームオブジェクト情報のために使用される。ビット０．．．ビット３１は各アプリケーションパケットに加えられ、ビット０．．．ビット４０はＤＶＤストリーム記録におけるシステムクロック参照のために使用される。
【００２１】
ＤＶＤストリーマー装置のためのPATDVDstreamerは、
PAT_base(i) = ((system_clock*t(i))/300 mod 239
PAT_exten(i) = (system_clock*t(i)) mod 300
PATDVDstreamer(i) = PAT_base(i)*300 + PAT_exten(i)
、式中、「／」は整数の除算を示し、「ｉ」は現在のデータパケットを示し、system_clockは２７．０００ＭＨｚの値を有する。
【００２２】
ＩＥＥＥ１３９４形式からＤＶＤストリーマー形式へのタイムスタンプ変換については、以下の２つの問題について考慮せねばならない。
・２４．５６７ＭＨｚから２７．０００ＭＨｚへのシステムクロック変換により、例えば３３７５／３０７２のユーザフレンドリーでない因数が生ずる。また、１１２５／１０２４といった他のユーザフレンドリーでない因数も生じうる。
・ＩＥＥＥ１３９４タイムスタンプカウンタの１秒ラップアラウンド。
【００２３】
現在の殆どのプロセッサプラットフォームにおける整数計算におけるビット制限は、３２ビットである。しかしながら、上述のように、４８ビットのタイムスタンプ形式を処理せねばならない。ビット長が非常に大きい整数データ型の除算演算又は浮動小数点演算を回避するために、以下の本発明による方法が提案される。式はＣで記述され、「％」はモジュロ関数を示す。
【００２４】
計算は、連続するＩＥＥＥ１３９４タイムスタンプ間の差に基づく。
【００２５】
ｉ＝０のとき、PATDVDstreamer(0)=0であり、即ち、PATstartはゼロであることが有利である。しかしながら、PATstartは任意の他の開始値を有しうる。「ｉ」の全ての他の値について、連続するＩＥＥＥ１３９４タイムスタンプ間の時間的な差は、
【数１】
0004785331.tif 000002
、但し、PAT_MAXIEEE1394=24576000及びremainder(0)=0、に従ってＤＶＤストリーマー形式に変換される。
【００２６】
有利に、剰余の計算を含むことにより、丸め誤差の累積が防止される。
【００２７】
計算は、「ＢＬ」を整数計算のビット長、即ち「ＢＬ」は殆どの現在のプロセッサプラットフォームにおいて「３２」の値を有する、とすると、
PATIEEE1394(i)‐PATIEEE1394(i-1)) * 3375 < 2BL
である、という仮定のもとに行われる。
【００２８】
得られるＰＡＴは、ＤＶＤストリーマー形式では、
PATDVDstreamer(i) = PATDVDstreamer(i-1) + delta_27(i)
である。
【００２９】
PATDVDstreamer(i)のための２つの要素は、
PAT_exten(i) = (PAT_exten(i-1) + delta_27 (i)) % 300
PAT_base(i) = PAT_base(i-1) + (PAT_exten(i-1) + delta_27 (i)) /300
によって計算されうる。これにより、有利に、４８ビット整数に対する除算演算が回避される。
【００３０】
図３において、タイムスタンプ分離器ＴＳＰは、インタフェースＩＦ及び段ＢＴＳＨＳを通るビットストリームから必要なＩＥＥＥ１３９４タイムスタンプを集める。ＩＥＥＥ１３９４ＰＡＴタイムスタンプは、メモリ手段Ｍ１及びＭ２、例えばPATIEEE1394(i)及びPATIEEE1394(i-1)を保持するシフトレジスタ、へ順次に入力される。いずれの場合も、２つの現在必要とされるPATIEEE1394値は、Ｍ１及びＭ２から読み出され、上述の式に従ってPATDVDstreamerタイムスタンプを計算する計算機又はマイクロプロセッサμＰへ入力される。
【００３１】
４８ビットＤＶＤストリーム記録タイムスタンプ形式の計算のために上述の処理を用いることは、特にリアルタイムシステムにおける適用を考えると効率的である。非常に長い整数データ型に対する除算演算又は浮動小数点演算を回避できる。
【００３２】
本発明は、任意の他の種類のインタフェース及び例えばＣＤ関連のデータストリームレコーダ等の任意の他の種類のデータストリームレコーダのために使用されうる。与えられた数は、他の適用のために対応するよう適合されうる。
【図面の簡単な説明】
【図１】  インタフェースを介したＤＶＤストリーム記録について示す簡単なブロック図である。
【図２】  ＤＶＤストリーム記録仕様に準拠したタイムスタンプ形式を示す図である。
【図３】  ＤＶＤストリーム記録ＰＡＴ計算機について示す簡単なブロック図である。
【図１】
0004785331.tif 000003
【図２】
0004785331.tif 000004
【図３】
0004785331.tif 000005