(57)【要約】【課題】  ＴＳパケットに付加されたタイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。【解決手段】  ＴＳの先頭から各ＴＳパケットを探索して得られたＰＭＴを解析してＰＣＲ＿ＰＩＤを検出するＰＣＲ＿ＰＩＤ検出部108と、ＴＳの先頭からＰＭＴまでに含まれるＰＣＲの値と当該ＰＣＲのＴＳ内での位置情報と、ＰＭＴからＴＳの終端までの間の全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とを検出するＰＣＲ検出部109と、タイムスタンプを付加するための時間間隔とタイムスタンプの値とをＰＣＲ値に基づいて算出し、各ＴＳパケットに付加するタイムスタンプ用時間間隔算出部110、タイムスタンプ付加部111とを備える。【選択図】図１
2010045592.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力されたＭＰＥＧ２−ＴＳ（ＭＰＥＧ２−Ｔｒａｎｓｐｏｒｔ Ｓｔｒｅａｍ）方式で伝送されるタイムスタンプが付加されていない複数のＴＳパケットを含むＴＳ（Ｔｒａｎｓｐｏｒｔ Ｓｔｒｅａｍ）の先頭から、当該ＴＳに含まれる各ＴＳパケットを探索し、当該探索の結果、得られたＰＭＴ（Ｐｒｏｇｒａｍ Ｍａｐ Ｔａｂｌｅ）を解析することにより、当該ＰＭＴに含まれるＰＣＲ＿ＰＩＤ（Ｐｒｏｇｒａｍ Ｃｌｏｃｋ Ｒｅｆｅｒｅｎｃｅ Ｐａｃｋｅｔ Ｉｄｅｎｔｉｆｉｅｒ）を検出するＰＣＲ＿ＰＩＤ検出手段と、
前記ＴＳの先頭から前記ＰＭＴまでの間に含まれる各ＴＳパケットを解析することによって、前記ＴＳの先頭から前記ＰＭＴまでの間に含まれるＰＣＲ（Ｐｒｏｇｒａｍ Ｃｌｏｃｋ Ｒｅｆｅｒｅｎｃｅ）の値と当該ＰＣＲのＴＳ内での位置情報とを検出すると共に、前記ＰＭＴから前記ＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とを検出するＰＣＲ検出手段と、
前記ＰＣＲ検出手段により検出されたＰＣＲ値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出手段と、
前記時間間隔算出手段により算出された時間間隔に基づいて、前記外部から入力されたタイムスタンプが付加されていない各ＴＳパケットに、前記時間間隔算出手段によって算出されたタイムスタンプを付加するタイムスタンプ付加手段とを備えたタイムスタンプ付加装置。
【請求項２】
ＭＰＥＧ２−ＴＳ方式で伝送されるタイムスタンプが付加されていない複数のＴＳパケットを含むＴＳが記憶された第１の記憶手段を更に備え、
前記タイムスタンプ付加手段は、
前記時間間隔算出手段により算出された時間間隔に基づいて、前記第１の記憶手段に記憶された各ＴＳパケットにタイムスタンプを付加する請求項１に記載のタイムスタンプ付加装置。
【請求項３】
前記第１の記憶手段から読み出されたＴＳパケットが先入れ先出し法に従って一時的に記憶される第２の記憶手段を更に備え、
前記第２の記憶手段は、
外部からＴＳパケットのデータを入力するための入力ポートと、
前記入力ポートから入力されたＴＳパケットを前記タイムスタンプ付加手段に出力する第１の出力ポートと、
前記入力ポートから入力されたＴＳパケット内にＰＣＲが含まれるかを検査するための出力ポートであって、前記入力ポートから入力されたＴＳパケットを前記ＰＣＲ検出手段に出力する第２の出力ポートとを備え、
前記入力ポートから入力された全てのＴＳパケットに関して、当該ＴＳパケットにＰＣＲが含まれるかに関する検査を開始する場合には、前記入力ポートからのＴＳパケットの入力を停止し、前記入力ポートから入力された全てのＴＳパケットに関してＰＣＲが含まれるかに関する検査が終了した場合に、前記入力ポートからのＴＳパケットの入力を再開する請求項２に記載のタイムスタンプ付加装置。
【請求項４】
前記第２の記憶手段は、
前記ＰＣＲ検出手段によって前記第１の記憶手段から読み出されたデータが入力ポートから入力される請求項３に記載のタイムスタンプ付加装置。
【請求項５】
前記ＰＣＲ検出手段は、
ＰＣＲ＿ＰＩＤが未知である場合には、前記第１の記憶手段から読み出したＴＳパケットを前記ＰＣＲ＿ＰＩＤ検出手段に対して出力し、
ＰＣＲ＿ＰＩＤが既知である場合には、前記第２の記憶手段の有する第２の出力ポートからＴＳパケットのデータを読み出して、読み出したＴＳパケットのデータを前記ＰＣＲ＿ＰＩＤ検出手段に対して出力し、
前記第２の記憶手段の有する第２の出力ポートから、前記入力ポートから前記第２の記憶手段に入力された全てのＴＳパケットを読み出して、当該全てのＴＳパケットに関してＴＳパケットにＰＣＲが含まれるかに関する検査が終了した場合に、前記第１の記憶手段からＴＳパケットを読み出して、読み出したＴＳパケットをＰＣＲ＿ＰＩＤ検出手段に対して出力する請求項３に記載のタイムスタンプ付加装置。
【請求項６】
前記ＰＣＲ＿ＰＩＤ検出手段は、
前記ＭＰＥＧ２−ＴＳからＰＡＴ（Ｐｒｏｇｒａｍ Ａｓｓｏｃｉａｔｉｏｎ Ｔａｂｌｅ）を検出し、検出したＰＡＴを解析することにより、ＰＭＴ＿ＰＩＤ（Ｐｒｏｇｒａｍ Ｍａｐ Ｔａｂｌｅ Ｐａｃｋｅｔ Ｉｄｅｎｔｉｆｉｅｒ）を取得し、取得したＰＭＴ＿ＰＩＤからＰＭＴを検出し、検出したＰＭＴを解析することにより、ＰＣＲ＿ＰＩＤを取得し、取得したＰＣＲ＿ＰＩＤを出力する請求項１に記載のタイムスタンプ付加装置。
【請求項７】
前記時間間隔算出手段は、
ＴＳの先頭から最初に検出されたＰＣＲまでの間に存在する第１の付加対象ブロックに含まれる各ＴＳパケットに関しては、当該最初に検出されたＰＣＲの値と、当該最初に検出されたＰＣＲの次に検出されたＰＣＲの値と、当該最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間の時間間隔を算出し、かつ、前記タイムスタンプの初期値と、最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間の時間間隔とから各ＴＳパケットに付加するタイムスタンプの値を算出し、
前記最初に検出されたＰＣＲの次に検出されたＰＣＲから前記ＴＳ内の最後のＰＣＲまでの間に存在する、複数の処理ブロックを含む第２の付加対象ブロックに含まれる各ＴＳパケットに関しては、前記各処理ブロックの先頭に含まれるＰＣＲの値と、当該ＰＣＲの次に検出されたＰＣＲの値と、前記各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、前記各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間の時間間隔を算出し、かつ、前記各処理ブロックの直前の処理ブロックの先頭に存在するＴＳパケットに付加されたタイムスタンプの値と、前記各処理ブロックの先頭に含まれるＰＣＲの値と当該ＰＣＲの次に検出されたＰＣＲの値とから、前記各処理ブロックの先頭に存在するＴＳパケットに付加するタイムスタンプの値を算出し、当該算出された各処理ブロックの先頭に存在するＴＳパケットに付加するタイムスタンプの値と、算出された各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間の時間間隔とから前記各処理ブロックに含まれる各ＴＳパケットに付加するタイムスタンプの値を算出し、
前記ＴＳ内の最後のＰＣＲから前記ＴＳの終端までの間に存在する第３の付加対象ブロックに含まれる各ＴＳパケットに関しては、前記最後のＰＣＲの値と、前記最後のＰＣＲの直前に検出されたＰＣＲの値と、前記最後のＰＣＲと前記最後のＰＣＲの直前に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、最後に検出されたＰＣＲと当該最後に検出されたＰＣＲの直前に検出されたＰＣＲとの間の時間間隔を算出し、かつ、前記最後のＰＣＲの値と、最後に検出されたＰＣＲと当該最後に検出されたＰＣＲの直前に検出されたＰＣＲとの間の時間間隔とから各ＴＳパケットに付加するタイムスタンプの値を算出する請求項１に記載のタイムスタンプ付加装置。
【請求項８】
前記第１の記憶手段は、ＴＳパケットのＤＭＡ(Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ)転送のためのインターフェースであるＤＭＡインターフェースに内蔵されている
請求項２に記載のタイムスタンプ付加装置。
【請求項９】
外部から入力されたＭＰＥＧ２−ＴＳ方式で伝送されるタイムスタンプが付加されていない複数のＴＳパケットを含むＴＳの先頭から、当該ＴＳに含まれる各ＴＳパケットを探索し、当該探索の結果、得られたＰＭＴを解析することにより、当該ＰＭＴに含まれるＰＣＲ＿ＰＩＤを検出するＰＣＲ＿ＰＩＤ検出工程と、
前記ＴＳの先頭から前記ＰＭＴまでの間に含まれる各ＴＳパケットを解析することによって、前記ＴＳの先頭から前記ＰＭＴまでの間に含まれるＰＣＲの値と当該ＰＣＲのＴＳ内での位置情報とを検出すると共に、前記ＰＭＴから前記ＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とを検出するＰＣＲ検出工程と、
前記ＰＣＲ検出工程で検出されたＰＣＲ値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出工程と、
前記時間間隔算出工程で算出された時間間隔に基づいて、前記外部から入力されたタイムスタンプが付加されていない各ＴＳパケットに、前記時間間隔算出工程で算出されたタイムスタンプを付加するタイムスタンプ付加工程とを含むタイムスタンプ付加方法。
【請求項１０】
ＭＰＥＧ２−ＴＳ方式で伝送されるタイムスタンプが付加されていないＴＳパケットを含むＴＳに対してタイムスタンプを付加するタイムスタンプ付加装置のコンピュータにインストールされたタイムスタンプ付加プログラムであって、
前記タイムスタンプ付加装置のコンピュータに、
外部から入力されたＭＰＥＧ２−ＴＳ方式で伝送されるタイムスタンプが付加されていない複数のＴＳパケットを含むＴＳの先頭から、当該ＴＳに含まれる各ＴＳパケットを探索し、当該探索の結果、得られたＰＭＴを解析することにより、当該ＰＭＴに含まれるＰＣＲ＿ＰＩＤを検出するＰＣＲ＿ＰＩＤ検出手順、
前記ＴＳの先頭から前記ＰＭＴまでの間に含まれる各ＴＳパケットを解析することによって、前記ＴＳの先頭から前記ＰＭＴまでの間に含まれるＰＣＲの値と当該ＰＣＲのＴＳ内での位置情報とを検出すると共に、前記ＰＭＴから前記ＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とを検出するＰＣＲ検出手順、
前記ＰＣＲ検出手順で検出されたＰＣＲ値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出手順、
前記時間間隔算出手順で算出された時間間隔に基づいて、前記外部から入力されたタイムスタンプが付加されていない各ＴＳパケットに、前記時間間隔算出手順で算出されたタイムスタンプを付加するタイムスタンプ付加手順を実現させるためのタイムスタンプ付加プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＰＥＧ２−ＴＳ（ＭＰＥＧ２−Ｔｒａｎｓｐｏｒｔ Ｓｔｒｅａｍ）方式で伝送されるタイムスタンプが付加されていないＴＳパケットに対して、タイムスタンプを付加するタイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラムに関する。
【背景技術】
【０００２】
従来、ビデオ符号器で圧縮符号化されたビデオストリームに復号再生時刻情報であるタイムスタンプを付加するとともに前記ビデオストリームを伝送システムに送出するタイムスタンプ付加装置が知られている（特許文献１参照）。
【特許文献１】特許第２８７２１０４号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、かかるタイムスタンプ付加装置は、既に偽のタイムスタンプが付加されたビデオストリームのタイムスタンプを真のタイムスタンプに置換する装置であり、コンテンツを配信する放送機関等で、何らタイムスタンプが付加されていないビデオストリームに新たにタイムスタンプを付加する場合にかかる技術をそのまま適用することは難しい。
【０００４】
かかるビデオストリームを構成するＭＰＥＧ２−ＴＳは、データレートがハイビジョンのコンテンツであれば１５〜２５Ｍｂｐであり、コンテンツの時間が長ければデータ転送の処理量が増大する可能性がある。
【０００５】
かかる膨大なデータ量を有するビデオストリームを高速に処理するため、ビデオストリームを構成するＭＰＥＧ２−ＴＳにタイムスタンプを付加するハードウェア規模も大型化する傾向がある。
【０００６】
本発明者のＭＰＥＧ２−ＴＳに対するタイムスタンプの付加に関する詳細な考察によれば、ＭＰＥＧ２−ＴＳの先頭付近にタイムスタンプが付加されない可能性があるので、ＭＰＥＧ２−ＴＳを構成するＴＳパケットに付加されたタイムスタンプの正確性が損なわれる可能性がある。
そこで、本発明は、ＭＰＥＧ２−ＴＳを構成するＴＳパケットに付加されたタイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にするタイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の骨子は、「ＴＳ（Ｔｒａｎｓｐｏｒｔ Ｓｔｒｅａｍ）の先頭から検出されたＰＣＲ＿ＰＩＤ（Ｐｒｏｇｒａｍ Ｃｌｏｃｋ Ｒｅｆｅｒｅｎｃｅ Ｐａｃｋｅｔ Ｉｄｅｎｔｉｆｉｅｒ）までの間に含まれるＴＳパケットを解析することによって、ＴＳの先頭から検出されたＰＣＲ＿ＰＩＤまでの間に含まれるＰＣＲ（Ｐｒｏｇｒａｍ Ｃｌｏｃｋ Ｒｅｆｅｒｅｎｃｅ）を検出すると共に、検出されたＰＣＲ＿ＰＩＤからＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とを検出」する構成により、ＭＰＥＧ２−ＴＳを構成するＴＳパケットに付加されたタイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にするという本願に特有の優れた効果を達成することにある。
【０００８】
さて、以上のような本発明の骨子は、具体的には、以下のような手段を講じることにより、実現される。
【０００９】
第１の発明は、外部から入力されたＭＰＥＧ２−ＴＳ方式で伝送されるタイムスタンプが付加されていない複数のＴＳパケットを含むＴＳの先頭から、当該ＴＳに含まれる各ＴＳパケットを探索し、当該探索の結果、得られたＰＭＴ（Ｐｒｏｇｒａｍ Ｍａｐ Ｔａｂｌｅ）を解析することにより、当該ＰＭＴに含まれるＰＣＲ＿ＰＩＤを検出するＰＣＲ＿ＰＩＤ検出手段と、ＴＳの先頭からＰＭＴまでの間に含まれる各ＴＳパケットを解析することによって、ＴＳの先頭からＰＭＴまでの間に含まれるＰＣＲの値と当該ＰＣＲのＴＳ内での位置情報とを検出すると共に、ＰＭＴからＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とを検出するＰＣＲ検出手段と、ＰＣＲ検出手段により検出されたＰＣＲ値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出手段と、時間間隔算出手段により算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各ＴＳパケットに、時間間隔算出手段によって算出されたタイムスタンプを付加するタイムスタンプ付加手段とを備えたタイムスタンプ付加装置である。
【００１０】
これにより、外部から入力されたＭＰＥＧ２−ＴＳ方式で伝送されるタイムスタンプが付加されていない複数のＴＳパケットを含むＴＳの先頭から、当該ＴＳに含まれる各ＴＳパケットが探索し、当該探索の結果、得られたＰＭＴが解析されることにより、当該ＰＭＴに含まれるＰＣＲ＿ＰＩＤがＰＣＲ＿ＰＩＤ検出手段によって検出され、ＴＳの先頭からＰＭＴまでの間に含まれる各ＴＳパケットが解析されることによって、ＴＳの先頭からＰＭＴまでの間に含まれるＰＣＲの値と当該ＰＣＲのＴＳ内での位置情報とが検出されると共に、ＰＭＴからＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とがＰＣＲ検出手段によって検出され、ＰＣＲ検出手段により検出されたＰＣＲ値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とが時間間隔算出手段によって算出され、時間間隔算出手段により算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各ＴＳパケットに、時間間隔算出手段によって算出されたタイムスタンプがタイムスタンプ付加手段によって付加されるので、タイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
【００１１】
第２の発明は、外部から入力されたＭＰＥＧ２−ＴＳ方式で伝送されるタイムスタンプが付加されていない複数のＴＳパケットを含むＴＳの先頭から、当該ＴＳに含まれる各ＴＳパケットを探索し、当該探索の結果、得られたＰＭＴを解析することにより、当該ＰＭＴに含まれるＰＣＲ＿ＰＩＤを検出するＰＣＲ＿ＰＩＤ検出工程と、ＴＳの先頭からＰＭＴまでの間に含まれる各ＴＳパケットを解析することによって、ＴＳの先頭からＰＭＴまでの間に含まれるＰＣＲの値と当該ＰＣＲのＴＳ内での位置情報とを検出すると共に、ＰＭＴからＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とを検出するＰＣＲ検出工程と、ＰＣＲ検出工程で検出されたＰＣＲ値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出工程と、時間間隔算出工程で算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各ＴＳパケットに、時間間隔算出工程で算出されたタイムスタンプを付加するタイムスタンプ付加工程とを含むタイムスタンプ付加方法である。
【００１２】
これにより、外部から入力されたＭＰＥＧ２−ＴＳ方式で伝送されるタイムスタンプが付加されていない複数のＴＳパケットを含むＴＳの先頭から、当該ＴＳに含まれる各ＴＳパケットが探索され、当該探索の結果、得られたＰＭＴが解析されることにより、当該ＰＭＴに含まれるＰＣＲ＿ＰＩＤが検出され、ＴＳの先頭からＰＭＴまでの間に含まれる各ＴＳパケットが解析されることによって、ＴＳの先頭からＰＭＴまでの間に含まれるＰＣＲの値と当該ＰＣＲのＴＳ内での位置情報とが検出され、ＰＭＴからＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とが検出され、検出されたＰＣＲ値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とが算出され、算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各ＴＳパケットに、算出されたタイムスタンプが付加されるので、タイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
【００１３】
第３の発明は、ＭＰＥＧ２−ＴＳ方式で伝送されるタイムスタンプが付加されていないＴＳパケットを含むＴＳに対してタイムスタンプを付加するタイムスタンプ付加装置のコンピュータにインストールされたタイムスタンプ付加プログラムであって、タイムスタンプ付加装置のコンピュータに、外部から入力されたＭＰＥＧ２−ＴＳ方式で伝送されるタイムスタンプが付加されていない複数のＴＳパケットを含むＴＳの先頭から、当該ＴＳに含まれる各ＴＳパケットを探索し、当該探索の結果、得られたＰＭＴを解析することにより、当該ＰＭＴに含まれるＰＣＲ＿ＰＩＤを検出するＰＣＲ＿ＰＩＤ検出手順、ＴＳの先頭からＰＭＴまでの間に含まれる各ＴＳパケットを解析することによって、ＴＳの先頭からＰＭＴまでの間に含まれるＰＣＲの値と当該ＰＣＲのＴＳ内での位置情報とを検出すると共に、ＰＭＴからＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とを検出するＰＣＲ検出手順、ＰＣＲ検出手順で検出されたＰＣＲ値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出手順、時間間隔算出手順で算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各ＴＳパケットに、時間間隔算出手順で算出されたタイムスタンプを付加するタイムスタンプ付加手順を実現させるためのタイムスタンプ付加プログラムである。
【００１４】
これにより、外部から入力されたＭＰＥＧ２−ＴＳ方式で伝送されるタイムスタンプが付加されていない複数のＴＳパケットを含むＴＳの先頭から、当該ＴＳに含まれる各ＴＳパケットが探索され、当該探索の結果、得られたＰＭＴが解析されることにより、当該ＰＭＴに含まれるＰＣＲ＿ＰＩＤが検出され、ＴＳの先頭からＰＭＴまでの間に含まれる各ＴＳパケットが解析されることによって、ＴＳの先頭からＰＭＴまでの間に含まれるＰＣＲの値と当該ＰＣＲのＴＳ内での位置情報とが検出され、ＰＭＴからＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とが検出され、検出されたＰＣＲ値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とが算出され、算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各ＴＳパケットに、算出されたタイムスタンプが付加されるので、タイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
【発明の効果】
【００１５】
本発明によれば、ＭＰＥＧ２−ＴＳを構成するＴＳパケットに付加されたタイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
【発明を実施するための最良の形態】
【００１６】
以下、本発明に係るタイムスタンプ付加装置１の最良の形態に関して、図面を参照しながら詳細に説明する。
（第１の実施の形態）
【００１７】
図１は、本発明の第１の実施の形態に係るタイムスタンプ付加装置１の構成例を示すブロック図である。
【００１８】
本実施の形態に係るタイムスタンプ付加装置１は、図２に示すように、当該タイムスタンプ付加装置１本体に内蔵された半導体メモリ１０３に記憶された、タイムスタンプを付加されていない１８８バイトのＭＰＥＧ２−ＴＳ方式で送信される各ＴＳパケットに対して、ＰＣＲと同様に２７ＭＨｚクロックを基準とした４バイトのデータから成るタイムスタンプを付加して、タイムスタンプを付加したＴＳパケットを生成し、生成したタイムスタンプを付加したＴＳパケットを外部に出力する装置である。
【００１９】
本実施の形態に係るタイムスタンプ付加装置１は、図１に示すように、システムバス１０１に接続されたメモリコントローラを内蔵したバスインターフェース１０２と、バスインターフェース１０２に内蔵されたメモリコントローラによってデータの読出し／書き込みが可能な半導体メモリ１０３と、バスインターフェース１０２に接続されたＣＰＵ１１２と、バスインターフェース１０２にシステムバス１０１を介して接続されたＴＴＳ化処理部１０４とから構成される。
【００２０】
ＴＴＳ化処理部１０４は、ＤＭＡインターフェース１０５と、ＤＡＴＡＦＩＦＯ部１０６と、ＴＳパケット解析部１０７と、タイムスタンプ用時間間隔算出部１１０と、タイムスタンプ付加部１１１とから構成される。
【００２１】
ＤＭＡインターフェース１０５は、半導体メモリからバスインターフェース１０２によって読み出され、システムバスを介して送信されたＴＳのデータを一時的に記憶するＤＭＡバッファ１０５Ａを内蔵している。
【００２２】
また、ＴＳパケット解析部１０７は、ＰＣＲ＿ＰＩＤ検出部１０８と、ＰＣＲ検出部１０９とから構成されており、このＴＳパケット解析部１０７は、ＤＭＡインターフェース１０５内に内蔵されたＤＭＡバッファ１０５ＡにＭＰＥＧ２−ＴＳのデータがバスインターフェース１０２から転送されてきたかを判定する処理を実行する。
【００２３】
半導体メモリ１０３には、タイムスタンプを付加する処理対象のタイムスタンプの付加されていないＭＰＥＧ２−ＴＳのデータが記憶されている。
【００２４】
図３は、本実施の形態に係るタイムスタンプ付加装置１の処理対象であるタイムスタンプの付加されていないＭＰＥＧ２−ＴＳのデータの一例を示す模式図である。
【００２５】
本実施の形態に係るタイムスタンプ付加装置１の処理対象であるタイムスタンプの付加されていないＭＰＥＧ２−ＴＳには、ＴＳパケット数（Ｎ０＋Ｎ１）で、ＭＰＥＧ２−ＴＳの先頭から見て、最初に出現するＰＣＲのパケット（α）と、ＰＭＴのパケット（β）とが含まれている処理ブロックＵ１と、ＴＳパケット数Ｎ２でＰＣＲのパケットが含まれている処理ブロックＵ２と、ＴＳパケット数Ｎ３でＰＣＲのパケットが含まれている処理ブロックＵ３と、ＴＳパケット数Ｎ３でＰＣＲのパケットが含まれている処理ブロックＵ４とが含まれる。
【００２６】
本実施の形態に係るタイムスタンプ付加装置１は、かかるＭＰＥＧ２−ＴＳのデータが当該タイムスタンプ付加装置１本体に入力されると、ＰＣＲ＿ＰＩＤ検出部によって、ＰＣＲ＿ＰＩＤのデータが取得され、当該ＰＣＲ＿ＰＩＤのデータからＰＭＴのデータが検出される。
【００２７】
しかる後、ＰＣＲ検出部１０９によって、ストリームの先端のデータからＰＭＴまでのデータを検索し、当該検索の結果、ＰＣＲのデータが検出される。
【００２８】
本実施の形態に係るタイムスタンプ付加装置１は、図３のようなＴＳのデータが入力されると、検出したＰＣＲの位置を基準として、ＴＳのデータを処理ブロックＵ１、処理ブロックＵ２、処理ブロックＵ３、及び処理ブロックＵ４にそれぞれ分割する。
【００２９】
本実施の形態に係るタイムスタンプ付加装置１では、ＣＰＵ１１２は、図示しないメインメモリからＴＳパケット付加プログラムを読み出し、読み出したＴＳパケット付加プログラムによって半導体メモリからＭＰＥＧ２−ＴＳを読み出させるための読出し命令をＤＭＡインターフェースに送信する機能と、ＭＰＥＧ２−ＴＳのアドレスをＤＭＡディスクリプタに記述することによって、ＤＭＡインターフェースとバスインターフェース１０２との間のＤＭＡ転送を可能にする機能とを有している。
【００３０】
バスインターフェース１０２は、タイムスタンプ付加装置１本体内部におけるデータの伝送を行うためのシステムバス１０１に接続されており、図示しない内蔵のメモリコントローラによって半導体メモリ１０３からのデータの読出し、及び半導体メモリ１０３へのデータの書き込みを制御している。
【００３１】
本実施の形態に係るバスインターフェース１０２は、半導体メモリ１０３からＭＰＥＧ２−ＴＳパケットのデータを読み出し、読み出したＭＰＥＧ２−ＴＳパケットのデータをＤＭＡインターフェース１０５に転送する機能と、ＤＭＡインターフェース１０５から転送されたタイムスタンプが付加されたＭＰＥＧ２−ＴＳパケットのデータを半導体メモリに書き込む機能と、全てのＴＳパケットに関してＤＭＡ転送が終了した場合に、ＣＰＵ１１２に対して割り込みを実行したり、レジスタにフラグビットを立てる等の手段を用いてＤＭＡの転送が終了したことを通知する機能とを有している。
【００３２】
ＤＭＡインターフェース１０５は、ＤＭＡ転送されてきたＴＳパケットのデータを一時的に記憶させるＤＭＡバッファ１０５Ａを内蔵したインターフェースであり、ＤＭＡバスマスタとして動作し、半導体メモリ１０３からバスインターフェース１０２を介してＤＭＡ転送されてきたＴＳパケットのデータを内蔵するＤＭＡバッファ１０５Ａに一時的に記憶させる機能と、タイムスタンプ付加部１１１から出力されたタイムスタンプを付加済みのＴＳパケットをＤＭＡ転送によってバスインターフェース１０２に出力する機能とを有する。
【００３３】
ＤＭＡバッファ１０５Ａは、ＤＭＡ転送されてきたＴＳパケットのデータを一時的に記憶するＤＭＡ転送されてきたＴＳパケットのデータを取り込むためのＤＭＡインタフェース１０５に内蔵されたバッファである。
【００３４】
ＰＣＲ＿ＰＩＤ検出部１０８は、半導体メモリ１０３からＤＭＡインターフェース１０５に内蔵されたＤＭＡバッファ１０５ＡにＴＳパケットが転送されているかを判定し、当該判定の結果、ＴＳパケットがＤＭＡインターフェース１０５に内蔵されたＤＭＡバッファ１０５Ａに転送されている場合に、ＤＭＡバッファ１０５Ａに記憶されているＴＳパケットのデータを読み出す機能と、ＤＭＡバッファ１０５Ａから読み出したＴＳパケット内のＰＣＲ＿ＰＩＤが既知であるかを判定する機能と、当該判定の結果、ＰＣＲ＿ＰＩＤが未知である場合には、ＤＭＡバッファ１０５Ａから読み出したＭＰＥＧ２−ＴＳの先頭から、読み出したＭＰＥＧ２−ＴＳに含まれるＰＭＴを解析することにより、ＰＭＴに含まれるＰＣＲ＿ＰＩＤを検出する機能と、検出されたＰＣＲ＿ＰＩＤの値と等しいＰＣＲ＿ＰＩＤの値を有するＴＳパケットをＴＳの中から検出した後、当該検出したＴＳパケットを解析することによってＰＣＲの値と当該ＴＳパケットのＴＳ内での位置情報とを取得する機能と、ＤＭＡバッファ１０５Ａから読み出したＴＳパケットのデータをＤＡＴＡＦＩＦＯ部１０６に転送する機能と、後述するＤＡＴＡＦＩＦＯ部１０６の第２の出力ポートを基準としたデータ量の出力がゼロである場合に、ＤＭＡインターフェース１０５内に内蔵されたＤＭＡバッファ１０５ＡからＴＳパケットのデータを読み出し、読み出したＴＳパケットのデータをＤＡＴＡＦＩＦＯ部１０６に転送する機能とを有する。
【００３５】
ＤＡＴＡＦＩＦＯ部１０６は、半導体メモリ１０３から読み出されて、ＤＭＡバッファ１０５Ａに記憶されたＴＳパケットのデータをＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ Ｆｉｒｓｔ−Ｏｕｔ:先入れ先出し）法に従って記憶されるメモリである。
【００３６】
本実施の形態に係るＤＡＴＡＦＩＦＯ部１０６は、外部からＴＳパケットのデータを入力するための入力ポートと、入力ポートから入力されたＴＳパケットをタイムスタンプ付加部１１１に出力する第１の出力ポートと、入力ポートから入力されたＴＳパケット内にＰＣＲが含まれるかを検査するための出力ポートであって、入力ポートから入力されたＴＳパケットをＰＣＲ検出部１０９に出力する第２の出力ポートとを備えている。
【００３７】
入力ポートは、ＤＭＡインターフェース１０５内のＤＭＡバッファ１０５Ａから読み出されたＴＳパケットのデータが入力されるポートである。
【００３８】
本実施の形態に係るＤＡＴＡＦＩＦＯ部１０６の第１の出力ポートは、例えば図４に示すように、ＤＭＡバッファ１０５Ａから読み出された７個のＴＳパケットが入力ポートから入力されて記憶されている場合、ＤＡＴＡＦＩＦＯ部１０６に記憶されるＴＳパケットのデータ量が７個であることを示す出力を有する。
【００３９】
第１の出力ポートは、かかる状態で図４に示すように、第２の出力ポートから２個のデータ量に該当するＴＳパケットがＰＣＲ検出部１０９に読み出された場合であっても、実際にＤＡＴＡＦＩＦＯ部１０６に記憶されるＴＳパケットのデータは削除されないので、当該第１のポートを基準としてＤＡＴＡＦＩＦＯ部１０６内に記憶されたＴＳパケットのデータ量である、ＤＡＴＡＦＩＦＯ部１０６に記憶されるＴＳパケットのデータ量が７個であることを示す出力を有する。
【００４０】
本実施の形態に係るＤＡＴＡＦＩＦＯ部１０６の第２の出力ポートは、例えば図４に示すように、ＤＭＡバッファ１０５Ａから読み出された７個のＴＳパケットが入力ポートから入力されて記憶されている場合、ＤＡＴＡＦＩＦＯ部１０６に記憶されるＴＳパケットのデータ量が７個であることを示す出力を有する。
【００４１】
第２の出力ポートは、かかる状態で第２の出力ポートから２個のデータ量に該当するＴＳパケットが読み出された場合には、当該第２のポートを基準としてＤＡＴＡＦＩＦＯ部１０６内に記憶されたＴＳパケットのデータ量である、ＤＡＴＡＦＩＦＯ部１０６に記憶されるＴＳパケットのデータ量が７個からＰＣＲ検出部１０９に出力したＴＳパケットのデータ量である２個のＴＳパケットを差し引いた結果、ＤＡＴＡＦＩＦＯ部１０６に記憶されるＰＣＲが含まれるかに関する検査がおわっていないＴＳパケットのデータ量が５個であることを示す出力をＰＣＲ検出部１０９に出力する。
【００４２】
すなわち、第２の出力ポートは、ＤＡＴＡＦＩＦＯ部１０６内に記憶されたＴＳパケットのデータ内にＰＣＲが含まれているかに関して、ＰＣＲ検出部１０９が検査するための出力ポートである。
【００４３】
本実施の形態にかかるＤＡＴＡＦＩＦＯ部１０６は、入力ポートから入力された全てのＴＳパケットに関して、当該ＴＳパケットにＰＣＲが含まれるかに関する検査を開始する場合には、入力ポートからのＴＳパケットの入力を停止した状態でＤＡＴＡＦＩＦＯ部１０６内に記憶されたＴＳパケットのデータをＰＣＲ検出部１０９に出力すると共に、入力ポートから入力された全てのＴＳパケットに関してＰＣＲが含まれるかに関する検査が終了した場合には、入力ポートからのＴＳパケットの入力を再開する処理であるＦＩＦＯ処理を実行する。
【００４４】
ＰＣＲ検出部１０９は、ＤＡＴＡＦＩＦＯ部１０６内にＰＣＲが含まれるかに関する検査が終了していないＴＳパケットが記憶されている場合に、ＤＡＴＡＦＩＦＯ部１０６の第２の出力ポートからＤＡＴＡＦＩＦＯ部１０６に一時的に記憶されたＴＳパケットのデータを読み出す機能と、ＴＳの先頭からＰＭＴまでの間に含まれる各ＴＳパケットを解析することによって、ＴＳの先頭からＰＭＴまでの間に含まれるＰＣＲの値と当該ＰＣＲのＴＳ内での位置情報とを検出する機能と、ＰＭＴからＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とを検出する機能と、ＴＳ内からＰＣＲのデータを検出する度に、ＴＳ内からＰＣＲのデータを検出したことを示すＰＣＲ検出通知と、検出した各ＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とをタイムスタンプ用時間間隔算出部１１０に出力する機能とを有する。
【００４５】
なお、本実施の形態に係るＰＣＲ検出部１０９は、ハードウェアで実現してもよいし、ソフトウェアで実現してもよいし、ソフトウェアとハードウェアとの組み合わせで実現してもよいことは言うまでもない。
【００４６】
タイムスタンプ用時間間隔算出部１１０は、ＴＳ内からＰＣＲのデータを検出したことを示すＰＣＲ検出通知を受け取ると、受け取った各ＰＣＲの値と、当該各ＰＣＲのＴＳ内での位置情報とから、ＴＳの先頭から最初に検出されたＰＣＲまでの間に存在する第１の付加対象ブロックに含まれる各ＴＳパケットに関しては、当該最初に検出されたＰＣＲの値と、当該最初に検出されたＰＣＲの次に検出されたＰＣＲの値と、当該最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間の時間間隔を算出する。
【００４７】
また、タイムスタンプ用時間間隔算出部１１０は、ＴＳ内からＰＣＲのデータを検出したことを示すＰＣＲ検出通知を受け取ると、受け取った各ＰＣＲの値と、当該各ＰＣＲのＴＳ内での位置情報とから、最初に検出されたＰＣＲの次に検出されたＰＣＲからＴＳ内の最後のＰＣＲまでの間に存在する、複数の処理ブロックを含む第２の付加対象ブロックに含まれる各ＴＳパケットに関しては、各処理ブロックの先頭に含まれるＰＣＲの値と、当該ＰＣＲの次に検出されたＰＣＲの値と、各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間の時間間隔を算出する。
【００４８】
更に、タイムスタンプ用時間間隔算出部１１０は、ＴＳ内からＰＣＲのデータを検出したことを示すＰＣＲ検出通知を受け取ると、受け取った各ＰＣＲの値と、当該各ＰＣＲのＴＳ内での位置情報とから、ＴＳ内の最後のＰＣＲからＴＳの終端までの間に存在する第３の付加対象ブロックに含まれる各ＴＳパケットに関しては、最後のＰＣＲの値と、最後のＰＣＲの直前に検出されたＰＣＲの値と、最後のＰＣＲと最後のＰＣＲの直前に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、最後に検出されたＰＣＲと当該最後に検出されたＰＣＲの直前に検出されたＰＣＲとの間の時間間隔を算出する。
【００４９】
より、具体的には、タイムスタンプ用時間間隔算出部１１０は、２回目以降のＰＣＲ検出通知があった場合に、ＰＣＲ検出部から出力されたＰＣＲの値、ＰＣＲの位置の報告に基づいて、入力されたＭＰＥＧ２−ＴＳのデータを、入力されたＭＰＥＧ２−ＴＳの先頭から最初のＰＣＲまでのＴＳパケットの処理ブロック（Ｕ１）と、ＰＣＲ−ＰＣＲ間のＴＳパケットの処理ブロック（Ｕ２、Ｕ３）と、入力されたＭＰＥＧ２−ＴＳの最後のＰＣＲから入力されたＭＰＥＧ２−ＴＳの最後までのＴＳパケットの処理ブロック（Ｕ４）とに分割し、分割した結果、得られた処理ブロック毎にＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）とを下記式（１）〜式（４）に従って算出する機能と、算出した処理ブロック毎のＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）とをタイムスタンプ付加部１１１に出力する機能とを有する。  
【００５０】
【数１】
2010045592.tif 000003
【００５１】
例えば、処理ブロックＵ１では、処理ブロックＵ１のＴＳパケット間の時間間隔Ｑ１、処理ブロックＵ１のＴＳパケット間の時間間隔の剰余Ｒ１、処理ブロックＵ１の先頭ＴＳパケットのタイムスタンプ値のキャリーオーバＣ１、処理ブロックＵ１内に含まれるＰＣＲと、当該ＰＣＲの次に検出されたＰＣＲとの間に存在するＴＳパケット数Ｎ１とし、入力されたＴＳの先頭からＰＣＲまでのＴＳパケット数をＮ０とすると、以下のようになる。なお、処理ブロックＵ１では、Ｖ１の値は、任意の値に設定可能になっている。  
【００５２】
【数２】
2010045592.tif 000004
【００５３】
また、処理ブロックＵ２では、処理ブロックＵ２のＴＳパケット間の時間間隔Ｑ２、処理ブロックＵ２のＴＳパケット間の時間間隔の剰余Ｒ２、処理ブロックＵ２の先頭ＴＳパケットのタイムスタンプ値のキャリーオーバＣ２、処理ブロックＵ２内に含まれるＰＣＲと、当該ＰＣＲのに検出されたＰＣＲとの間に存在するＴＳパケット数Ｎ２とし、入力されたＴＳの先頭からＰＣＲまでのＴＳパケット数をＮ０とすると、以下のようになる。  
【００５４】
【数３】
2010045592.tif 000005
【００５５】
なお、本実施の形態に係るタイムスタンプ付加装置１では、タイムスタンプ用時間間隔算出部１１０は、ハードウェアとして設けているが、除算回路の設置スペースを削減して回路規模のより一層の小型化を図る観点から、ソフトウェアによって実現してもよいことは言うまでもない。
【００５６】
タイムスタンプ付加部１１１は、ＴＳの先頭から最初に検出されたＰＣＲまでの間に存在する第１の付加対象ブロックに含まれる各ＴＳパケットに関しては、タイムスタンプの初期値と、タイムスタンプ用時間間隔算出部１１０によって算出された最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間の時間間隔とから各ＴＳパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をＴＳの先頭から最初に検出されたＰＣＲまでの間に存在する第１の付加対象ブロックに含まれる各ＴＳパケットに付加した後、タイムスタンプを付加したＴＳパケットを、ＤＭＡバッファ１０５Ａを含むＤＭＡインターフェース１０５に出力する。
【００５７】
また、タイムスタンプ付加部１１１は、最初に検出されたＰＣＲの次に検出されたＰＣＲからＴＳ内の最後のＰＣＲまでの間に存在する、複数の処理ブロックを含む第２の付加対象ブロックに含まれる各ＴＳパケットに関しては、各処理ブロックの直前の処理ブロックの先頭に存在するＴＳパケットに付加されたタイムスタンプの値と、各処理ブロックの先頭に含まれるＰＣＲの値と当該ＰＣＲの次に検出されたＰＣＲの値とから、各処理ブロックの先頭に存在するＴＳパケットに付加するタイムスタンプの値を算出し、かつ、当該算出された各処理ブロックの先頭に存在するＴＳパケットに付加するタイムスタンプの値と、算出された各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間の時間間隔とから前記各処理ブロックに含まれる各ＴＳパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値を最初に検出されたＰＣＲの次に検出されたＰＣＲからＴＳ内の最後のＰＣＲまでの間に存在する、複数の処理ブロックを含む第２の付加対象ブロックに含まれる各ＴＳパケットに付加した後、タイムスタンプを付加したＴＳパケットを、ＤＭＡバッファ１０５Ａを含むＤＭＡインターフェース１０５に出力する。
【００５８】
更に、タイムスタンプ付加部１１１は、ＴＳ内の最後のＰＣＲからＴＳの終端までの間に存在する第３の付加対象ブロックに含まれる各ＴＳパケットに関しては、最後のＰＣＲの値と、最後に検出されたＰＣＲと当該最後に検出されたＰＣＲの直前に検出されたＰＣＲとの間の時間間隔とから各ＴＳパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をＴＳ内の最後のＰＣＲからＴＳの終端までの間に存在する第３の付加対象ブロックに含まれる各ＴＳパケットに付加した後、タイムスタンプを付加したＴＳパケットを、ＤＭＡバッファ１０５Ａを含むＤＭＡインターフェース１０５に出力する。
【００５９】
より具体的には、タイムスタンプ付加部１１１は、タイムスタンプ用時間間隔算出部１１０から出力された処理ブロック毎のＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）とを受け取ると、ＤＡＴＡＦＩＦＯ部１０６の第１の出力ポートからＤＡＴＡＦＩＦＯ部１０６に記憶されたＴＳパケットのデータを読み出し、下記式（５）〜式（８）に従って、タイムスタンプを、ＤＡＴＡＦＩＦＯ部１０６の第１の出力ポートから読み出した各ＴＳパケットに付加する処理を実行する機能と、タイムスタンプを付加したＴＳパケットを、ＤＭＡバッファ１０５Ａを含むＤＭＡインターフェース１０５に出力する機能とを有する。  
【００６０】
【数４】
2010045592.tif 000006
【００６１】
次に、以上のように構成されたタイムスタンプ付加装置１の実行処理に関して、図面を参照して説明する。
【００６２】
図５は、本実施の形態に係るタイムスタンプ付加装置１の実行処理を説明するためのシーケンス図である。
【００６３】
始めに、ＣＰＵ１１２は、図示しないメインメモリからＴＳパケット付加プログラムを読み出し、読み出したＴＳパケット付加プログラムによって半導体メモリからＭＰＥＧ２−ＴＳを読み出させるための読出し命令をＤＭＡインターフェースに送信すると共に、ＭＰＥＧ２−ＴＳのアドレスをＤＭＡディスクリプタに記述することによって、ＤＭＡインターフェース１０５とバスインターフェース１０２との間のＤＭＡ転送を可能にする（Ａ１）。
【００６４】
次の工程Ａ２では、ＤＭＡインターフェース１０５は、バスインターフェース１０２によって半導体メモリ１０３から読み出された後、バスインターフェース１０２から出力されたタイムスタンプが付加されていないＭＰＥＧ２−ＴＳのデータを受け取り、内蔵するＤＭＡバッファ１０５Ａに受け取ったＭＰＥＧ２−ＴＳのデータを記憶させる。
【００６５】
次の工程Ａ３では、ＴＳパケット解析部１０７は、ＤＭＡインターフェース１０５内に内蔵されたＤＭＡバッファ１０５ＡにＭＰＥＧ２−ＴＳのデータがバスインターフェース１０２から転送されてきたかを判定する。
【００６６】
ＰＣＲ＿ＰＩＤ検出部１０８は、前述した工程Ａ３でＤＭＡインターフェース１０５内に内蔵されたＤＭＡバッファ１０５ＡにＭＰＥＧ２−ＴＳのデータがバスインターフェース１０２から転送されてきたと判定した場合（Ａ３：Ｙｅｓ）、ＤＭＡバッファ１０５ＡからＭＰＥＧ２−ＴＳのデータを読み出し、読み出したＭＰＥＧ２−ＴＳのデータをＤＭＡバッファ１０５Ａから読み出すと同時にＤＡＴＡＦＩＦＯ部１０６に出力する（Ａ４）。
【００６７】
ＰＣＲ＿ＰＩＤ検出部１０８は、ＤＭＡバッファ１０５Ａから読み出したＰＣＲ＿ＰＩＤが未知であるタイムスタンプの付加されていないＭＰＥＧ２−ＴＳの先頭から、読み出したＭＰＥＧ２−ＴＳに含まれるＰＭＴを解析することにより、ＰＭＴに含まれるＰＣＲ＿ＰＩＤを検出する（Ａ５）。  
【００６８】
例えば、前述した図３に示すようなＭＰＥＧ２−ＴＳのデータが、半導体メモリ１０３から読み出されてＤＭＡバッファ１０５Ａに転送されてきた場合には、ＰＣＲ＿ＰＩＤ検出部１０８は、ＭＰＥＧ２−ＴＳのデータを検索し、位置βでＰＭＴを検出し、検出したＰＭＴを解析することによって、ＰＣＲ＿ＰＩＤを検出することになる。  
【００６９】
次の工程では、ＰＣＲ検出部１０９は、ＰＣＲ＿ＰＩＤ検出部１０８によって検出されたＰＣＲ＿ＰＩＤを用いて、以下のような一連の処理からなるＰＣＲの検出処理を開始する。
【００７０】
具体的には、ＰＣＲ検出部１０９は、ＰＩＤ＝ＰＣＲ＿ＰＩＤであるかを判定する（Ａ６）。
【００７１】
ＰＣＲ検出部１０９は、前述した工程Ａ６でＰＩＤ＝ＰＣＲ＿ＰＩＤであると判定した場合には（Ａ６：Ｙｅｓ）、ａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が存在するか、換言すればａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が１０又は１１で、かつ、ａｄａｐｔａｔｉｏｎ_ｔａｂｌｅ＿ｌｅｎｇｔｈの値が０でないかに関して判定する（Ａ７）。
【００７２】
一方、ＰＣＲ検出部１０９は、前述した工程Ａ６でＰＩＤ＝ＰＣＲ＿ＰＩＤではないと判定した場合には（Ａ６：Ｎｏ）、ＴＳパケットがＭＰＥＧ２−ＴＳの終端であるかに関する判定処理を実行する。
【００７３】
ＰＣＲ検出部１０９は、前述した工程Ａ７でａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が存在する、換言すればａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が１０又は１１で、かつ、ａｄａｐｔａｔｉｏｎ_ｔａｂｌｅ＿ｌｅｎｇｔｈの値が０ではないと判定した場合には（Ａ７：Ｙｅｓ）、当該ＴＳパケットのＴＳ全体における位置、例えば該当するＴＳパケットが先頭のＴＳパケットから何パケット目かという位置情報を検出して、検出したＴＳパケットのＴＳ全体における位置をタイムスタンプ用時間間隔算出部１１０に出力した後、ＰＣＲ＿ｆｌａｇ＝１であるかを判定する（Ａ８）。
【００７４】
ＰＣＲ検出部１０９は、前述した工程Ａ７でａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が存在しない、換言すればａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が１０又は１１でないか、又はａｄａｐｔａｔｉｏｎ_ｔａｂｌｅ＿ｌｅｎｇｔｈの値が０であるかの何れかと判定した場合には（Ａ７：Ｎｏ）、ＴＳパケットがＭＰＥＧ２−ＴＳの終端であるかに関する判定処理を実行する。
【００７５】
ＰＣＲ検出部１０９は、前述した工程Ａ８でＰＣＲ＿ｆｌａｇ＝１であると判定した場合には（Ａ８：Ｙｅｓ）、ＰＣＲの値を取得し、取得したＰＣＲの値をタイムスタンプ用時間間隔算出部１１０に出力する（Ａ９）。
【００７６】
ＰＣＲ検出部１０９は、前述した工程でＰＣＲ＿ｆｌａｇ＝１ではないと判定した場合（Ａ８：Ｎｏ）、ＴＳパケットがＭＰＥＧ２−ＴＳの終端であるかを判定する（Ａ１０）。
【００７７】
ＰＣＲ検出部１０９は、前述した工程Ａ１０でＣＰＵから出力されたＴＳパケットがＭＰＥＧ２−ＴＳの終端であると判定された場合には（Ａ１０：Ｙｅｓ）、そのまま実行処理を終了する。
【００７８】
ＰＣＲ検出部１０９は、ＤＡＴＡＦＩＦＯ部１０６内に記憶された全てのＴＳパケットに関して、ＰＣＲが含まれるかに関する検査が終了した場合に、ＰＣＲ＿ＰＩＤ検出部１０８によってＤＭＡバッファ１０５Ａから読み出されたＴＳパケットの次のＴＳパケットのデータに関して、前述したＰＣＲ検出処理（工程Ａ４乃至工程Ａ１０の処理）を処理対象のＴＳパケットがＴＳに含まれる最終パケットになるまで繰り返す。
【００７９】
かかる処理を実行することによって、ＤＡＴＡＦＩＦＯ部１０６には、ＰＣＲ＿ＰＩＤ検出部１０８によって読み出されたＴＳパケットのデータが記憶されるので、ＤＭＡバッファ１０５Ａを経由したＭＰＥＧ２−ＴＳパケットのデータは、１パケットも残らず、かつ、重複することなくＤＡＴＡＦＩＦＯ部１０６に記憶されることになる。
【００８０】
次の工程Ａ１１では、タイムスタンプ用時間間隔算出部１１０は、２つめ以降のＰＣＲ検出通知があった場合に、ＰＣＲ検出部１０９から出力されたＰＣＲの値、ＰＣＲの位置の報告に基づいて、入力されたＭＰＥＧ２−ＴＳのデータを、入力されたＭＰＥＧ２−ＴＳの先頭から最初のＰＣＲまでのＴＳパケットの処理ブロック（Ｕ１）と、ＰＣＲ−ＰＣＲ間のＴＳパケットの処理ブロック（Ｕ２、Ｕ３）と、入力されたＭＰＥＧ２−ＴＳの最後のＰＣＲから入力されたＭＰＥＧ２−ＴＳの最後までのＴＳパケットの処理ブロック（Ｕ４）とに分割し、分割した結果、得られた処理ブロック毎にＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）とを下記式（１）〜式（４）に従って算出する。  
【００８１】
【数５】
2010045592.tif 000007
【００８２】
次の工程Ａ１２では、タイムスタンプ用時間間隔算出部１１０は、算出した処理ブロック毎のＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）とをタイムスタンプ付加部１１１に出力する。
【００８３】
次の工程Ａ１３では、タイムスタンプ付加部１１１は、タイムスタンプ用時間間隔算出部１１０から出力された処理ブロック毎のＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）とを受け取ると、ＤＡＴＡＦＩＦＯ部１０６の第１の出力ポートからＤＡＴＡＦＩＦＯ部１０６に記憶されたＴＳパケットのデータを読み出し、下記式（５）〜式（８）に従って、各ＴＳパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をＤＡＴＡＦＩＦＯ部１０６から読み出した全てのＴＳパケットに付加する処理を実行する。  
【００８４】
【数６】
2010045592.tif 000008
【００８５】
次の工程Ａ１４では、タイムスタンプ付加部１１１は、タイムスタンプを付加したＴＳパケットを、ＤＭＡバッファ１０５Ａを内蔵するＤＭＡインターフェース１０５に出力する。
【００８６】
次の工程Ａ１５では、ＤＭＡインターフェース１０５は、タイムスタンプ付加部１１１から出力されたタイムスタンプを付加済みのＴＳパケットをＤＭＡ転送によってバスインターフェース１０２に出力する。  
【００８７】
これによって、バスインターフェース１０２は、ＤＭＡインターフェース１０５から受け取ったタイムスタンプを付加したＴＳパケットのデータを半導体メモリに記憶させる。
【００８８】
以上のような一連の処理により、本実施の形態に係るタイムスタンプ付加装置１は、全ての実行処理を終了する。
【００８９】
上述したように、本実施の形態によれば、ＤＭＡバッファ１０５Ａによって記憶されたＴＳパケットを含むＴＳの先頭から、当該ＴＳに含まれる各ＴＳパケットを探索し、当該探索の結果、得られたＰＭＴが解析されることにより、ＰＣＲ＿ＰＩＤ検出部１０８によってＰＭＴに含まれるＰＣＲ＿ＰＩＤが検出され、ＰＣＲ＿ＰＩＤ検出部１０８により検出されたＰＣＲ＿ＰＩＤの値と等しいＰＣＲ＿ＰＩＤの値を有するＴＳパケットがＤＭＡバッファ１０５Ａによって記憶されたＴＳの中から検出された後、当該検出されたＴＳパケットが解析されることによってＰＣＲの値と当該ＴＳパケットのＴＳ内での位置情報とがＰＣＲ検出部１０９によって取得され、ＰＣＲ検出部１０９により検出されたＰＣＲ値に基づいて、タイムスタンプを付加するための時間間隔がタイムスタンプ用時間間隔算出部１１０によって算出され、タイムスタンプ用時間間隔算出部１１０により算出された時間間隔に基づいて、ＤＡＴＡＦＩＦＯ部１０６に記憶されたＴＳパケットにタイムスタンプがタイムスタンプ付加部１１１によって付加されるので、タイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
【００９０】
また、本実施の形態によれば、ＤＭＡバッファ１０５Ａに記憶されたＴＳの先頭から最初のＰＣＲを検出するまでのＴＳパケット、及びＤＭＡバッファ１０５Ａに記憶されたＴＳの最後のＰＣＲからＴＳの終端までのＴＳパケットの何れのＴＳパケットに対しても、タイムスタンプを付加することが可能になる。
【００９１】
更に、本実施の形態によれば、キャリーオーバを考慮することによって、実際のＰＣＲの値と、各ＴＳパケットに付加されるタイムスタンプの値との間のずれを最少にすることが可能である。
【００９２】
また、本実施の形態によれば、ＣＰＵ１１２からデータバスへのデータの転送回数を削減することが出来るので、他のコンテンツの録画や再生を行う場合に生じるバスの輻輳を防止することが可能になる。
【００９３】
この結果、録画や再生等の他の同時のデータ処理を妨げる可能性を低減することが可能になる。
（第２の実施の形態）
【００９４】
図６は、本発明の第２の実施の形態に係るタイムスタンプ付加装置２の構成例を示すブロック図である。
【００９５】
本実施の形態に係るタイムスタンプ付加装置２は、第１の実施の形態に係るタイムスタンプ付加装置２と同様に、当該タイムスタンプ付加装置本体に内蔵された半導体メモリに記憶された、タイムスタンプを付加されていない１８８バイトのＭＰＥＧ２−ＴＳ方式で送信されるＴＳパケットに対して、ＰＣＲと同様に２７ＭＨｚクロックを基準とした４バイトのデータから成るタイムスタンプを付加して、タイムスタンプを付加したＴＳパケットを生成し、生成したタイムスタンプを付加したＴＳパケットを外部に出力する装置である。
【００９６】
本実施の形態に係るタイムスタンプ付加装置２は、図６に示すように、システムバス２０１に接続されたＣＰＵ２０７と、ＣＰＵ２０７によってデータの読出し書き込み可能な半導体メモリ２０８と、ＴＳパケット解析部２０４と、タイムスタンプ付加部２０９とから構成される。
【００９７】
半導体メモリ２０８には、前述した第１の実施の形態に係るタイムスタンプ付加装置１と同様に、ＴＳパケット数（Ｎ０＋Ｎ１）で、ＭＰＥＧ２−ＴＳの先頭から見て、最初に出現するＰＣＲのパケット（α）と、ＰＭＴのパケット（β）とが含まれている処理ブロックＵ１と、ＴＳパケット数Ｎ２でＰＭＴのパケットが含まれている処理ブロックＵ２と、ＴＳパケット数Ｎ３でＰＭＴのパケットが含まれている処理ブロックＵ３と、ＴＳパケット数Ｎ３でＰＭＴのパケットが含まれている処理ブロックＵ４とが含まれる、タイムスタンプを付加する処理対象のタイムスタンプの付加されていないＭＰＥＧ２−ＴＳのデータが記憶されている。
【００９８】
本実施の形態に係るタイムスタンプ付加装置１は、かかるＭＰＥＧ２−ＴＳのデータが当該タイムスタンプ付加装置１本体に入力されると、ＰＣＲ＿ＰＩＤ検出部２０２によって、ＰＣＲ＿ＰＩＤのデータが取得され、当該ＰＣＲ＿ＰＩＤのデータからＰＭＴのデータが検出される。
【００９９】
しかる後、ＰＣＲ検出部２０３によって、ストリームの先端のデータからＰＭＴまでのデータを検索し、当該検索の結果、ＰＣＲのデータが検出される。
【０１００】
本実施の形態に係るタイムスタンプ付加装置１は、図３のようなＴＳのデータが入力されると、検出したＰＣＲの位置を基準として、入力されたＴＳのデータを処理ブロックＵ１、処理ブロックＵ２、処理ブロックＵ３、及び処理ブロックＵ４にそれぞれ分割する。
【０１０１】
本実施の形態に係るＣＰＵ２０７は、本実施の形態のタイムスタンプ付加装置２全体を制御するユニットであり、図示しないメインメモリからＴＳパケット付加プログラムを読み出し、読み出したＴＳパケット付加プログラムによって各実行処理が実現されるＴＳパケット解析制御部２０５と、タイムスタンプ用時間間隔算出部２０６とを有している。
【０１０２】
ＴＳパケット解析制御部２０５は、半導体メモリ２０８に記憶されたＭＰＥＧ２−ＴＳのデータを読み出し、読み出したＭＰＥＧ２−ＴＳのデータを用いて、後述するＰＣＲ＿ＰＩＤ検出処理、ＰＣＲ検出処理、タイムスタンプ用時間間隔算出処理、およびタイムスタンプ付加処理を実行可能なように、半導体メモリ２０８、ＰＣＲ_ＰＩＤ検出部２０２、ＰＣＲ検出部２０３、タイムスタンプ用時間間隔算出部２０６、タイムスタンプ付加部２０９をそれぞれ制御する機能を有している。
【０１０３】
タイムスタンプ用時間間隔算出部２０６は、ＴＳの先頭から最初に検出されたＰＣＲまでの間に存在する第１の付加対象ブロックに含まれる各ＴＳパケットに関しては、当該最初に検出されたＰＣＲの値と、当該最初に検出されたＰＣＲの次に検出されたＰＣＲの値と、当該最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間の時間間隔を算出する。
【０１０４】
また、タイムスタンプ用時間間隔算出部２０６は、最初に検出されたＰＣＲの次に検出されたＰＣＲからＴＳ内の最後のＰＣＲまでの間に存在する、複数の処理ブロックを含む第２の付加対象ブロックに含まれる各ＴＳパケットに関しては、各処理ブロックの先頭に含まれるＰＣＲの値と、当該ＰＣＲの次に検出されたＰＣＲの値と、各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間の時間間隔を算出する。
【０１０５】
更に、タイムスタンプ用時間間隔算出部２０６は、ＴＳ内の最後のＰＣＲからＴＳの終端までの間に存在する第３の付加対象ブロックに含まれる各ＴＳパケットに関しては、最後のＰＣＲの値と、最後のＰＣＲの直前に検出されたＰＣＲの値と、最後のＰＣＲと最後のＰＣＲの直前に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、最後に検出されたＰＣＲと当該最後に検出されたＰＣＲの直前に検出されたＰＣＲとの間の時間間隔を算出する。
【０１０６】
より具体的には、タイムスタンプ用時間間隔算出部２０６は、２回目以降のＰＣＲ検出通知があった場合に、ＰＣＲ検出部から出力されたＰＣＲの値、ＰＣＲの位置の報告に基づいて、入力されたＭＰＥＧ２−ＴＳのデータを、入力されたＭＰＥＧ２−ＴＳの先頭から最初のＰＣＲまでのＴＳパケットの処理ブロック（Ｕ１）と、ＰＣＲ−ＰＣＲ間のＴＳパケットの処理ブロック（Ｕ２、Ｕ３）と、入力されたＭＰＥＧ２−ＴＳの最後のＰＣＲから入力されたＭＰＥＧ２−ＴＳの最後までのＴＳパケットの処理ブロック（Ｕ４）とに分割し、分割した結果、得られた処理ブロック毎にＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）とを下記式（１）〜式（４）に従って算出する機能と、算出した処理ブロック毎のＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）とをシステムバス２０１を介してタイムスタンプ付加部２０９に出力する機能とを有する。  
【０１０７】
【数７】
2010045592.tif 000009
【０１０８】
例えば、処理ブロックＵ１では、処理ブロックＵ１のＴＳパケット間の時間間隔Ｑ１、処理ブロックＵ１のＴＳパケット間の時間間隔の剰余Ｒ１、処理ブロックＵ１の先頭ＴＳパケットのタイムスタンプ値のキャリーオーバＣ１、処理ブロックＵ１内に含まれるＰＣＲと、当該ＰＣＲの次に検出されたＰＣＲとの間に存在するＴＳパケット数Ｎ１とし、入力されたＴＳの先頭からＰＣＲまでのＴＳパケット数をＮ０とすると、以下のようになる。なお、処理ブロックＵ１では、Ｖ１の値は、任意の値に設定可能になっている。  
【０１０９】
【数８】
2010045592.tif 000010
【０１１０】
また、処理ブロックＵ２では、処理ブロックＵ２のＴＳパケット間の時間間隔Ｑ２、処理ブロックＵ２のＴＳパケット間の時間間隔の剰余Ｒ２、処理ブロックＵ２の先頭ＴＳパケットのタイムスタンプ値のキャリーオーバＣ２、処理ブロックＵ２内に含まれるＰＣＲと、当該ＰＣＲの次に検出されたＰＣＲとの間に存在するＴＳパケット数Ｎ２とし、処理ブロックＵ２のＰＣＲ−ＰＣＲ間のＴＳパケット数Ｎ２とし、入力されたＴＳの先頭からＰＣＲまでのＴＳパケット数をＮ０とすると、以下のようになる。  
【０１１１】
【数９】
2010045592.tif 000011
【０１１２】
ＴＳパケット解析部２０４は、ＰＣＲ＿ＰＩＤ検出部２０２と、ＰＣＲ検出部２０３とを有している。
【０１１３】
ＰＣＲ＿ＰＩＤ検出部２０２は、ＣＰＵ２０７に内蔵されたＴＳパケット解析制御部２０５によって半導体メモリ２０８から読み出されたＴＳパケットのデータがＣＰＵ２０７からシステムバス２０１を介して転送されてきたかを判定し、当該判定の結果、ＴＳパケットのデータがＣＰＵ２０７からシステムバス２０１を介して転送されてきている場合に、ＣＰＵ２０７から転送されたＴＳパケット内のＰＣＲ＿ＰＩＤが既知であるかを判定する機能と、当該判定の結果、ＰＣＲ＿ＰＩＤが未知である場合には、半導体メモリ２０８から読み出したＭＰＥＧ２−ＴＳの先頭から、読み出したＭＰＥＧ２−ＴＳに含まれるＰＭＴを解析することにより、ＰＭＴに含まれるＰＣＲ＿ＰＩＤを検出する機能と、検出されたＰＣＲ＿ＰＩＤの値と等しいＰＣＲ＿ＰＩＤの値を有するＴＳパケットをＴＳの中から検出した後、当該検出したＴＳパケットを解析することによってＰＣＲの値と当該ＴＳパケットのＴＳ内での位置情報とを取得する機能と、ＰＣＲ＿ＰＩＤを検出したことを示すＰＣＲ_ＰＩＤ検出通知をＣＰＵ２０７に送信する機能とを有する。
【０１１４】
ＰＣＲ検出部２０３は、システムバス２０１を介して送信されたＭＰＥＧ２−ＴＳのデータをＣＰＵ２０７から受け取り、受け取ったＭＰＥＧ２−ＴＳのデータに関して、ＴＳの先頭からＰＭＴまでの間に含まれる各ＴＳパケットを解析することによって、前記ＴＳの先頭から前記ＰＭＴまでの間に含まれるＰＣＲの値と当該ＰＣＲのＴＳ内での位置情報とを検出すると共に、ＰＭＴからＴＳの終端までの間のＴＳパケットに含まれる全てのＰＣＲの値と当該各ＰＣＲのＴＳ内での位置情報とを検出する後述のＰＣＲ検出処理を実行する機能と、ＴＳパケットからＰＣＲのデータを検出する度に、ＴＳパケットからＰＣＲのデータを検出したことを示すＰＣＲ検出通知と、検出したＰＣＲの値と、各ＰＣＲのＴＳ内での位置情報とをＣＰＵ２０７に出力する機能とを有する。
【０１１５】
なお、本実施の形態に係るタイムスタンプ付加装置２では、ＰＣＲ＿ＰＩＤ検出部２０２と、ＰＣＲ検出部２０３とをＴＳパケット解析部２０４に内蔵されるハードウェア機能ブロックとして設けているが、ＰＣＲ＿ＰＩＤ検出部２０２と、ＰＣＲ検出部２０３とを物理的に別々のハードウェア機能ブロックとして設けてもよいことは言うまでもない。
【０１１６】
また、本実施の形態に係るタイムスタンプ付加装置２では、ＰＣＲ＿ＰＩＤ検出部２０２と、ＰＣＲ検出部２０３とをＴＳパケット解析部２０４に内蔵されるハードウェア機能ブロックとして設けているが、図示しないメインメモリに記憶され、ＣＰＵ２０７によってメインメモリから読み出されて実行されるプログラムの実現する機能ブロックとして設けてもよいことは言うまでもない。
【０１１７】
タイムスタンプ付加部２０９は、ＴＳの先頭から最初に検出されたＰＣＲまでの間に存在する第１の付加対象ブロックに含まれる各ＴＳパケットに関しては、タイムスタンプの初期値と、タイムスタンプ用時間間隔算出部２０６によって算出された最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間の時間間隔とから各ＴＳパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をＴＳの先頭から最初に検出されたＰＣＲまでの間に存在する第１の付加対象ブロックに含まれる各ＴＳパケットに付加した後、タイムスタンプを付加したＴＳパケットをＣＰＵ２０７に出力する。
【０１１８】
また、タイムスタンプ付加部２０９は、最初に検出されたＰＣＲの次に検出されたＰＣＲからＴＳ内の最後のＰＣＲまでの間に存在する、複数の処理ブロックを含む第２の付加対象ブロックに含まれる各ＴＳパケットに関しては、各処理ブロックの直前の処理ブロックの先頭に存在するＴＳパケットに付加されたタイムスタンプの値と、各処理ブロックの先頭に含まれるＰＣＲの値と当該ＰＣＲの次に検出されたＰＣＲの値とから、各処理ブロックの先頭に存在するＴＳパケットに付加するタイムスタンプの値を算出し、かつ、当該算出された各処理ブロックの先頭に存在するＴＳパケットに付加するタイムスタンプの値と、算出された各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間の時間間隔とから前記各処理ブロックに含まれる各ＴＳパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値を最初に検出されたＰＣＲの次に検出されたＰＣＲからＴＳ内の最後のＰＣＲまでの間に存在する、複数の処理ブロックを含む第２の付加対象ブロックに含まれる各ＴＳパケットに付加した後、タイムスタンプを付加したＴＳパケットをＣＰＵ２０７に出力する。
【０１１９】
更に、タイムスタンプ付加部２０９は、ＴＳ内の最後のＰＣＲからＴＳの終端までの間に存在する第３の付加対象ブロックに含まれる各ＴＳパケットに関しては、最後のＰＣＲの値と、最後に検出されたＰＣＲと当該最後に検出されたＰＣＲの直前に検出されたＰＣＲとの間の時間間隔とから各ＴＳパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をＴＳ内の最後のＰＣＲからＴＳの終端までの間に存在する第３の付加対象ブロックに含まれる各ＴＳパケットに付加した後、タイムスタンプを付加したＴＳパケットをＣＰＵ２０７に出力する。
【０１２０】
より具体的には、タイムスタンプ付加部２０９は、タイムスタンプ用時間間隔算出部２０６から出力された処理ブロック毎のＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）と、ＣＰＵから送信されたタイムスタンプの付加対象であるＭＰＥＧ２−ＴＳのデータとを受け取り、下記式（５）〜式（８）に従って、タイムスタンプを、ＣＰＵ２０７から受け取ったＴＳパケットに付加する処理を実行する機能と、タイムスタンプを付加したＴＳパケットをＣＰＵ２０７に出力する機能とを有する。  
【０１２１】
【数１０】
2010045592.tif 000012
【０１２２】
次に、以上のように構成されたタイムスタンプ付加装置２の実行する実行処理に関して、図面を参照して説明する。
【０１２３】
図７は、本実施の形態に係るタイムスタンプ付加装置２の実行処理を説明するためのシーケンス図である。
【０１２４】
また、図８及び図９は、本実施の形態に係るタイムスタンプ付加装置２の実行処理を説明するためのフローチャートである。
【０１２５】
本実施の形態に係るタイムスタンプ付加装置２は、ＰＣＲ＿ＰＩＤ検出処理、ＰＣＲ検出処理、タイムスタンプ用時間間隔算出処理、タイムスタンプ付加処理を順次実行する。
［ＰＣＲ＿ＰＩＤ検出処理］
【０１２６】
始めに、ＰＣＲ＿ＰＩＤ検出部２０２は、ＣＰＵ２０７から転送されてきたＴＳに含まれるＰＭＴ_ＰＩＤが既知であるかを判定する（Ｂ１）。
【０１２７】
ＰＣＲ＿ＰＩＤ検出部２０２は、前述した工程Ｂ１でＣＰＵから転送されてきたＴＳに含まれるＰＭＴ_ＰＩＤが既知であると判定した場合には（Ｂ１：Ｙｅｓ）、ＰＩＤ＝ＰＭＴ_ＰＩＤであるかを判定する（Ｂ２）。
【０１２８】
一方、ＰＣＲ＿ＰＩＤ検出部２０２は、前述した工程Ｂ１で、ＣＰＵから転送されてきたＴＳに含まれるＰＭＴ_ＰＩＤが未知であると判定した場合には（Ｂ１：Ｎｏ）、ＰＡＴのデータを検出し、検出されたＰＡＴに含まれるＰＩＤのデータがＰＩＤ=１３‘ｂ０を満たすかを判定する（Ｂ３）。
【０１２９】
ＰＣＲ＿ＰＩＤ検出部２０２は、前述した工程Ｂ２でＰＩＤ＝ＰＭＴ_ＰＩＤであると判定した場合には（Ｂ２：Ｙｅｓ）、ＰＣＲ＿ＰＩＤを検出したことを示すＰＣＲ_ＰＩＤ検出通知をＣＰＵに出力した後（Ｂ４）、実行処理を終了する。
【０１３０】
ＰＣＲ＿ＰＩＤ検出部２０２は、前述した工程Ｂ３で検出されたＰＡＴに含まれるＰＩＤのデータがＰＩＤ=１３‘ｂ０（ＰＡＴ）を満たすと判定した場合には（Ｂ３：Ｙｅｓ）、ＣＰＵ２０７からシステムバス２０１を介して出力されたＴＳに含まれるＰＭＴ_ＰＩＤのデータを検出した後（Ｂ５）、後述する工程Ｂ６の処理を実行する。
【０１３１】
ＰＣＲ＿ＰＩＤ検出部２０２は、前述した工程Ｂ３で検出されたＰＡＴに含まれるＰＩＤのデータがＰＩＤ=１３‘ｂ０（ＰＡＴ）を満たさないと判定した場合には（Ｂ３：Ｎｏ）、ＣＰＵ２０７から出力されたＴＳパケットがＭＰＥＧ２−ＴＳの終端であるかを判定する（Ｂ６）。
【０１３２】
一方、ＰＣＲ＿ＰＩＤ検出部２０２は、前述した工程Ｂ２でＰＩＤ＝ＰＭＴ_ＰＩＤではないと判定した場合には（Ｂ２：Ｎｏ）、前述した工程Ｂ６と同様のＣＰＵ２０７からシステムバス２０１を介して出力されたＴＳパケットがＭＰＥＧ２−ＴＳの終端であるかに関する判定処理を実行する。
【０１３３】
ＰＣＲ＿ＰＩＤ検出部２０２は、前述した工程Ｂ６でＣＰＵ２０７からシステムバス２０１を介して出力されたＴＳパケットがＭＰＥＧ２−ＴＳの終端であると判定された場合には（Ｂ６：Ｙｅｓ）、そのまま実行処理を終了する。
【０１３４】
ＰＣＲ＿ＰＩＤ検出部２０２は、前述した工程Ｂ６でＣＰＵ２０７からシステムバス２０１を介して出力されたＴＳパケットがＭＰＥＧ２−ＴＳの終端ではないと判定された場合には（Ｂ６：Ｎｏ）、次のＴＳパケットの先頭へ移動し（Ｂ７）、前述した工程Ａ１乃至工程Ａ６の実行処理を、処理対象のＴＳパケットがＴＳに含まれる最終パケットになるまで繰り返す。
【０１３５】
以上のような一連の処理により、本実施の形態に係るＰＣＲ＿ＰＩＤ検出部２０２は実行処理を終了する。
［ＰＣＲ検出処理］
【０１３６】
始めに、ＰＣＲ検出部２０３は、ＰＩＤ＝ＰＣＲ＿ＰＩＤであるかを判定する（Ｃ１）。
【０１３７】
ＰＣＲ検出部２０３は、前述した工程Ｃ１でＰＩＤ＝ＰＣＲ＿ＰＩＤであると判定した場合には（Ｃ１：Ｙｅｓ）、ａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が存在するか、換言すればａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が１０又は１１で、かつ、ａｄａｐｔａｔｉｏｎ_ｔａｂｌｅ＿ｌｅｎｇｔｈの値が０でないかに関して判定する（Ｃ２）。
【０１３８】
一方、ＰＣＲ検出部２０３は、前述した工程Ｃ１でＰＩＤ＝ＰＣＲ＿ＰＩＤではないと判定した場合には（Ｃ１：Ｎｏ）、後述する工程Ｃ５の判定処理を実行する。
【０１３９】
ＰＣＲ検出部２０３は、前述した工程Ｃ２でａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が存在する、換言すればａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が１０又は１１で、かつ、ａｄａｐｔａｔｉｏｎ_ｔａｂｌｅ＿ｌｅｎｇｔｈの値が０ではないと判定した場合には（Ｃ２：Ｙｅｓ）、当該ＴＳパケットのＴＳ全体における位置を検出して、検出したＴＳパケットのＴＳ全体における位置をＣＰＵ２０７に出力した後、ＰＣＲ＿ｆｌａｇ＝１であるかを判定する（Ｃ３）。
【０１４０】
ＰＣＲ検出部２０３は、前述した工程Ｂ２でａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が存在しない、換言すればａｄａｐｔａｔｉｏｎ_ｔａｂｌｅの値が１０又は１１でないか、又はａｄａｐｔａｔｉｏｎ_ｔａｂｌｅ＿ｌｅｎｇｔｈの値が０であるかの何れかと判定した場合には（Ｃ２：Ｎｏ）、後述する工程Ｃ５の判定処理を実行する。
【０１４１】
ＰＣＲ検出部２０２は、前述した工程Ｃ３でＰＣＲ＿ｆｌａｇ＝１であると判定した場合（Ｃ３：Ｙｅｓ）、ＰＣＲの値を取得し、取得したＰＣＲの値をＣＰＵに出力する（Ｃ４）。
【０１４２】
ＰＣＲ検出部２０２は、前述した工程Ｃ３でＰＣＲ＿ｆｌａｇ＝１ではないと判定した場合（Ｃ３：Ｎｏ）、ＣＰＵ２０７から出力されたＴＳパケットがＭＰＥＧ２−ＴＳの終端であるかを判定する（Ｃ５）。
【０１４３】
ＰＣＲ検出部２０２は、前述した工程Ｃ５でＣＰＵ２０７から出力されたＴＳパケットがＭＰＥＧ２−ＴＳの終端であると判定された場合には（Ｃ５：Ｙｅｓ）、そのまま実行処理を終了する。
【０１４４】
ＰＣＲ検出部２０２は、前述した工程Ｃ５でＣＰＵ２０７からシステムバス２０１を介して出力されたＴＳパケットがＭＰＥＧ２−ＴＳの終端ではないと判定された場合には（Ｃ５：Ｎｏ）、次のＴＳパケットの先頭へ移動し（Ｃ６）、前述した工程Ｃ１乃至工程Ｃ５の実行処理を、処理対象のＴＳパケットがＴＳに含まれる最終パケットになるまで繰り返す。
【０１４５】
以上のような一連の処理により、本実施の形態に係るＰＣＲ検出部２０３は実行処理を終了する。
［タイムスタンプ用時間間隔算出処理］
【０１４６】
始めに、タイムスタンプ用時間間隔算出部２０６は、２つめ以降のＰＣＲ検出通知があった場合に、ＰＣＲ検出部２０３から出力されたＰＣＲの値、ＰＣＲの位置の報告に基づいて、入力されたＭＰＥＧ２−ＴＳのデータを、入力されたＭＰＥＧ２−ＴＳの先頭から最初のＰＣＲまでのＴＳパケットの処理ブロック（Ｕ１）と、ＰＣＲ−ＰＣＲ間のＴＳパケットの処理ブロック（Ｕ２、Ｕ３）と、入力されたＭＰＥＧ２−ＴＳの最後のＰＣＲから入力されたＭＰＥＧ２−ＴＳの最後までのＴＳパケットの処理ブロック（Ｕ４）とに分割し、分割した結果、得られた処理ブロック毎にＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）とを下記式（１）〜式（４）に従って算出する（Ｄ１）。  
【０１４７】
【数１１】
2010045592.tif 000013
【０１４８】
換言すれば、タイムスタンプ用時間間隔算出部２０６は、ＴＳの先頭から最初に検出されたＰＣＲまでの間に存在する第１の付加対象ブロックに含まれる各ＴＳパケットに関しては、当該最初に検出されたＰＣＲの値と、当該最初に検出されたＰＣＲの次に検出されたＰＣＲの値と、当該最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間の時間間隔を算出する。
【０１４９】
また、タイムスタンプ用時間間隔算出部２０６は、最初に検出されたＰＣＲの次に検出されたＰＣＲからＴＳ内の最後のＰＣＲまでの間に存在する、複数の処理ブロックを含む第２の付加対象ブロックに含まれる各ＴＳパケットに関しては、各処理ブロックの先頭に含まれるＰＣＲの値と、当該ＰＣＲの次に検出されたＰＣＲの値と、各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間の時間間隔を算出する。
【０１５０】
更に、タイムスタンプ用時間間隔算出部２０６は、ＴＳ内の最後のＰＣＲからＴＳの終端までの間に存在する第３の付加対象ブロックに含まれる各ＴＳパケットに関しては、最後のＰＣＲの値と、最後のＰＣＲの直前に検出されたＰＣＲの値と、最後のＰＣＲと最後のＰＣＲの直前に検出されたＰＣＲとの間に存在するＴＳパケットの数とから、最後に検出されたＰＣＲと当該最後に検出されたＰＣＲの直前に検出されたＰＣＲとの間の時間間隔を算出する。
【０１５１】
次の工程Ｄ２では、タイムスタンプ用時間間隔算出部２０６は、算出した処理ブロック毎のＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）とをタイムスタンプ付加部２０９に出力する。  
【０１５２】
以上のような一連の処理により、本実施の形態に係るタイムスタンプ用時間間隔算出部２０６は実行処理を終了する。
［タイムスタンプ付加処理］
【０１５３】
始めに、タイムスタンプ付加部２０９は、タイムスタンプ用時間間隔算出部２０６から出力された処理ブロック毎のＴＳパケット間の時間間隔（Ｑｎ）と、処理ブロックの先頭パケットのタイムスタンプ値（Ｖｎ）と、ＣＰＵから送信されたタイムスタンプの付加対象であるＭＰＥＧ２−ＴＳのデータとを受け取り、下記式（５）〜式（８）に従って、タイムスタンプを、ＣＰＵ２０７からシステムバス２０１を介して受け取ったＴＳパケットに付加する処理を実行する（Ｅ１）。  
【０１５４】
【数１２】
2010045592.tif 000014
【０１５５】
換言すれば、タイムスタンプ付加部２０９は、ＴＳの先頭から最初に検出されたＰＣＲまでの間に存在する第１の付加対象ブロックに含まれる各ＴＳパケットに関しては、タイムスタンプの初期値と、タイムスタンプ用時間間隔算出部１１０によって算出された最初に検出されたＰＣＲと当該最初に検出されたＰＣＲの次に検出されたＰＣＲとの間の時間間隔とから各ＴＳパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をＴＳの先頭から最初に検出されたＰＣＲまでの間に存在する第１の付加対象ブロックに含まれる各ＴＳパケットに付加した後、タイムスタンプを付加したＴＳパケットをＣＰＵ２０７に出力する。
【０１５６】
また、タイムスタンプ付加部２０９は、最初に検出されたＰＣＲの次に検出されたＰＣＲからＴＳ内の最後のＰＣＲまでの間に存在する、複数の処理ブロックを含む第２の付加対象ブロックに含まれる各ＴＳパケットに関しては、各処理ブロックの直前の処理ブロックの先頭に存在するＴＳパケットに付加されたタイムスタンプの値と、各処理ブロックの先頭に含まれるＰＣＲの値と当該ＰＣＲの次に検出されたＰＣＲの値とから、各処理ブロックの先頭に存在するＴＳパケットに付加するタイムスタンプの値を算出し、かつ、当該算出された各処理ブロックの先頭に存在するＴＳパケットに付加するタイムスタンプの値と、算出された各処理ブロックの先頭に含まれるＰＣＲと当該ＰＣＲの次に検出されたＰＣＲとの間の時間間隔とから前記各処理ブロックに含まれる各ＴＳパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値を最初に検出されたＰＣＲの次に検出されたＰＣＲからＴＳ内の最後のＰＣＲまでの間に存在する、複数の処理ブロックを含む第２の付加対象ブロックに含まれる各ＴＳパケットに付加した後、タイムスタンプを付加したＴＳパケットをＣＰＵ２０７に出力する。
【０１５７】
更に、タイムスタンプ付加部１１１は、ＴＳ内の最後のＰＣＲからＴＳの終端までの間に存在する第３の付加対象ブロックに含まれる各ＴＳパケットに関しては、最後のＰＣＲの値と、最後に検出されたＰＣＲと当該最後に検出されたＰＣＲの直前に検出されたＰＣＲとの間の時間間隔とから各ＴＳパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をＴＳ内の最後のＰＣＲからＴＳの終端までの間に存在する第３の付加対象ブロックに含まれる各ＴＳパケットに付加した後、タイムスタンプを付加したＴＳパケットをＣＰＵ２０７に出力する。
【０１５８】
次の工程Ｅ２では、タイムスタンプ付加部２０９は、タイムスタンプを付加したＴＳパケットをＣＰＵ２０７に出力する。
これにより、タイムスタンプを付加したＴＳパケットがＣＰＵ２０７によって半導体メモリ２０８に書き込まれる。
【０１５９】
以上のような一連の処理により、本実施の形態に係るタイムスタンプ付加部２０９は実行処理を終了する。
【０１６０】
上述したように本実施の形態によれば、半導体メモリ２０８によって記憶されたＴＳパケットを含むＴＳの先頭から、ＰＭＴが解析されることにより、ＰＣＲ＿ＰＩＤ検出部２０２によってＰＭＴに含まれるＰＣＲ＿ＰＩＤが検出され、ＰＣＲ＿ＰＩＤ検出部２０２により検出されたＰＣＲ＿ＰＩＤの値と等しいＰＣＲ＿ＰＩＤの値を有するＴＳパケットが半導体メモリによって記憶されたＴＳの中から検出された後、当該検出されたＴＳパケットが解析されることによってＰＣＲの値と当該ＴＳパケットのＴＳ内での位置情報とがＰＣＲ検出部２０３によって取得され、ＰＣＲ検出部２０３により検出されたＰＣＲ値に基づいて、タイムスタンプを付加するための時間間隔がタイムスタンプ用時間間隔算出部２０６によって算出され、タイムスタンプ用時間間隔算出部２０６により算出された時間間隔に基づいて、半導体メモリ２０８に記憶されたＴＳパケットにタイムスタンプがタイムスタンプ付加部２０９によって付加されるので、タイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
【図面の簡単な説明】
【０１６１】
【図１】本発明の第１の実施の形態に係るタイムスタンプ付加装置１の構成例を示すブロック図である。
【図２】本発明の第１の実施の形態に係るタイムスタンプ付加装置１が実行する実行処理の概要を説明するための模式図である。
【図３】本実施の形態に係るタイムスタンプ付加装置１の処理対象であるタイムスタンプの付加されていないＭＰＥＧ２−ＴＳのデータの一例を示す模式図である。
【図４】本実施の形態に係るタイムスタンプ付加装置１内のＤＡＴＡＦＩＦＯ部１０６を説明するための模式図である。
【図５】本実施の形態に係るタイムスタンプ付加装置１の実行処理を説明するためのシーケンス図である。
【図６】本発明の第２の実施の形態に係るタイムスタンプ付加装置２の構成例を示すブロック図である。
【図７】本実施の形態に係るタイムスタンプ付加装置２の実行処理を説明するためのシーケンス図である。
【図８】本実施の形態に係るタイムスタンプ付加装置２の実行処理を説明するためのフローチャートである。
【図９】本実施の形態に係るタイムスタンプ付加装置２の実行処理を説明するためのフローチャートである。
【符号の説明】
【０１６２】
１  タイムスタンプ付加装置、１０１  システムバス、１０２  バスインターフェース、１０３  半導体メモリ、１０４  ＴＴＳ化処理部、１０５  ＤＭＡインターフェース、１０５Ａ  ＤＭＡバッファ、１０６  ＤＡＴＡＦＩＦＯ部、１０７  ＴＳパケット解析部、１０８  ＰＣＲ_ＰＩＤ検出部、１０９  ＰＣＲ検出部、１１０  タイムスタンプ用時間間隔算出部、１１１  タイムスタンプ付加部、１１２  ＣＰＵ、２  タイムスタンプ付加装置、２０１  システムバス、２０２  ＰＣＲ_ＰＩＤ検出部、２０３  ＰＣＲ検出部、２０４  ＴＳパケット解析部、２０５  ＴＳパケット解析制御部、２０６  タイムスタンプ用時間間隔算出部、２０７  ＣＰＵ、２０８  半導体メモリ、２０９  タイムスタンプ付加部
【図１】
2010045592.tif 000015
【図２】
2010045592.tif 000016
【図３】
2010045592.tif 000017
【図４】
2010045592.tif 000018
【図５】
2010045592.tif 000019
【図６】
2010045592.tif 000020
【図７】
2010045592.tif 000021
【図８】
2010045592.tif 000022
【図９】
2010045592.tif 000023