(57)【要約】【課題】不連続な箇所があるＭＰＥＧ２−ＴＳの再生時に破綻を生じさせないことが可能な、新規かつ改良された技術を提供する。【解決手段】情報処理装置１００は、ＭＰＥＧ２−ＴＳからＰＣＲを検出し、ＰＣＲの値であるＰＣＲ値を取得するとともに、ＰＣＲを持つＴＳパケットのＭＰＥＧ２−ＴＳにおける位置を示すＰＣＲ位置情報を取得するＰＣＲ検出部１０２と、ＴＳパケットから検出したｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値からＭＰＥＧ２−ＴＳにおける不連続位置を示す不連続位置情報を取得するｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部１０３と、ＰＣＲ検出部１０２が取得したＰＣＲ値およびＰＣＲ位置情報と、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部１０３が検出したｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値と、に基づいて、ＭＰＥＧ２−ＴＳの各ＴＳパケット間の時間間隔を算出するタイムスタンプ用時間間隔算出部１０５とを備える。【選択図】図２
2010183336.tif 000002
【特許請求の範囲】
【請求項１】
ＭＰＥＧ２−ＴＳを記憶する記憶部と、
前記記憶部が記憶する前記ＭＰＥＧ２−ＴＳからＰＣＲを検出し、前記ＰＣＲの値であるＰＣＲ値を取得するとともに、前記ＰＣＲを持つＴＳパケットの前記ＭＰＥＧ２−ＴＳにおける位置を示すＰＣＲ位置情報を取得するＰＣＲ検出部と、
ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値検出のために指定されたＰＩＤを保持し、前記記憶部が記憶する前記ＭＰＥＧ２−ＴＳから前記ＰＩＤを持つＴＳパケットを検出し、検出した前記ＴＳパケットからｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値を検出し、検出した前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値から前記ＭＰＥＧ２−ＴＳにおける不連続位置を示す不連続位置情報を取得するｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部と、
前記ＰＣＲ検出部が取得した前記ＰＣＲ値および前記ＰＣＲ位置情報と、前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部が検出した前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値とに基づいて、前記記憶部が記憶する前記ＭＰＥＧ２−ＴＳの各ＴＳパケット間の時間間隔を算出するタイムスタンプ用時間間隔算出部と、
前記タイムスタンプ用時間間隔算出部が算出した前記タイムスタンプ用時間間隔に基づいて、前記記憶部が記憶する前記ＭＰＥＧ２−ＴＳの各ＴＳパケットにタイムスタンプを付加するタイムスタンプ付加部と、
を備える、情報処理装置。
【請求項２】
前記ＰＣＲ検出部は、
前記記憶部が記憶する前記ＭＰＥＧ２−ＴＳからＰＡＴを取得し、取得した前記ＰＡＴを解析することでＰＭＴ＿ＰＩＤを検出し、検出した前記ＰＭＴ＿ＰＩＤに基づいて前記記憶部が記憶する前記からＭＰＥＧ２−ＴＳからＰＭＴを取得し、取得した前記ＰＭＴを解析することでＰＣＲ＿ＰＩＤを検出し、検出した前記ＰＣＲ＿ＰＩＤと等しいＰＩＤをもつＴＳパケットが前記ＰＣＲを持つＴＳパケットであると認識する、
請求項１に記載の情報処理装置。
【請求項３】
前記ＰＣＲ検出部は、
前記ＰＣＲ位置情報として、前記ＭＰＥＧ２−ＴＳの先頭から最初に存在するＰＣＲの次のＰＣＲまでのＴＳパケットの数と、前記ＭＰＥＧ２−ＴＳに存在する前記ＰＣＲ間のＴＳパケットの数と、前記ＭＰＥＧ２−ＴＳの最後のＰＣＲから前記ＭＰＥＧ２−ＴＳの終わりまでのＴＳパケットの数とを取得する、
請求項１に記載の情報処理装置。
【請求項４】
前記ＰＣＲ検出部は、
前記ＰＣＲ位置情報として、前記ＭＰＥＧ２−ＴＳに存在する各ＰＣＲについて、前記ＭＰＥＧ２−ＴＳの先頭からのバイト数または前記ＭＰＥＧ２−ＴＳの先頭からのＴＳパケットの数を取得する、
請求項１に記載の情報処理装置。
【請求項５】
前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部は、
前記ＰＩＤを持つ前記ＴＳパケットから前回取得したｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値を保持値として保持しており、前記保持値と前記ＰＩＤを持つ前記ＴＳパケットから今回取得した前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値とを比較することで前記ＭＰＥＧ２−ＴＳの不連続を検出する、
請求項１に記載の情報処理装置。
【請求項６】
前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部は、
前記不連続位置情報として、前記ＭＰＥＧ２−ＴＳの先頭からのバイト数または前記ＭＰＥＧ２−ＴＳの先頭からのＴＳパケットの数を取得する、
請求項１に記載の情報処理装置。
【請求項７】
前記タイムスタンプ用時間間隔算出部は、
前記ＰＣＲ間のＴＳパケットの時間間隔としては、当該ＴＳパケットの前後のＰＣＲ値に基づいて、ＴＳパケット毎に均等に算出して割り付け、前記ＭＰＥＧ２−ＴＳの先頭から最初に存在するＰＣＲの次のＰＣＲまでのＴＳパケットの時間間隔としては、その直後のＰＣＲ間のＴＳパケットの時間間隔を使用し、前記ＭＰＥＧ２−ＴＳの最後のＰＣＲから前記ＭＰＥＧ２−ＴＳの終わりまでのＴＳパケットの時間間隔としては、その直前のＰＣＲ間のＴＳパケットの時間間隔を使用する、
請求項１に記載の情報処理装置。
【請求項８】
前記タイムスタンプ用時間間隔算出部は、
前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部が前記ＭＰＥＧ２−ＴＳに不連続を検出した場合には、不連続な位置に存在するとされたＴＳパケットの直前に存在するＰＣＲを持つＴＳパケットから不連続な位置に存在するとされたＴＳパケットまでのＴＳパケット群の時間間隔としては、直前のＰＣＲ間のＴＳパケットの時間間隔を使用し、不連続な位置に存在するとされたＴＳパケットから次のＰＣＲまでのＴＳパケット群の時間間隔としては、直後のＰＣＲ間のＴＳパケットの時間間隔を使用する、
請求項１に記載の情報処理装置。
【請求項９】
前記タイムスタンプ用時間間隔算出部は、
前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部が前記ＭＰＥＧ２−ＴＳに不連続を検出した場合には、不連続な位置に存在するとされたＴＳパケットが含まれるＰＣＲ間のＴＳパケットの時間間隔としては、直前のＰＣＲ間のＴＳパケットの時間間隔を使用する、
請求項１に記載の情報処理装置。
【請求項１０】
ＭＰＥＧ２−ＴＳを記憶する記憶部と、ＰＣＲ検出部と、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部と、タイムスタンプ用時間間隔算出部と、タイムスタンプ付加部と、を備える、情報処理装置が、
前記ＰＣＲ検出部により、前記記憶部が記憶する前記ＭＰＥＧ２−ＴＳからＰＣＲを検出し、前記ＰＣＲの値であるＰＣＲ値を取得するとともに、前記ＰＣＲを持つＴＳパケットの前記ＭＰＥＧ２−ＴＳにおける位置を示すＰＣＲ位置情報を取得するステップと、
前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部により、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値検出のために指定されたＰＩＤを保持し、前記記憶部が記憶する前記ＭＰＥＧ２−ＴＳから前記ＰＩＤを持つＴＳパケットを検出し、検出した前記ＴＳパケットからｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値を検出し、検出した前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値から前記ＭＰＥＧ２−ＴＳにおける不連続位置を示す不連続位置情報を取得するステップと、
前記タイムスタンプ用時間間隔算出部により、前記ＰＣＲ検出部が取得した前記ＰＣＲ値および前記ＰＣＲ位置情報と、前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部が検出した前記ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値とに基づいて、前記記憶部が記憶する前記ＭＰＥＧ２−ＴＳの各ＴＳパケット間の時間間隔を算出するステップと、
前記タイムスタンプ付加部により、前記タイムスタンプ用時間間隔算出部が算出した前記タイムスタンプ用時間間隔に基づいて、前記記憶部が記憶する前記ＭＰＥＧ２−ＴＳの各ＴＳパケットにタイムスタンプを付加するステップと、
を含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法に関する。詳細には、ＭＰＥＧ２−ＴＳをネットワークに送信する際のタイムスタンプ付加システムに関する。
【背景技術】
【０００２】
近年、テレビ放送をハードディスク等の記録媒体に記録し、後から視聴を行うことが可能なテレビ放送受信機やパーソナルコンピュータ等のデジタル機器が多く出回っている。日本の放送においては、圧縮・伸張方式の国際標準規格であるＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）の中でも通信システムや放送システムへの適用が考慮されているＭＰＥＧ２システムが規格として採用されている。その中でも伝送時に誤りの発生する環境での伝送・蓄積に適したＭＰＥＧ２−ＴＳ（ＭＰＥＧ２  トランスポートストリーム）と呼ばれる形式が用いられている。ＭＰＥＧ２−ＴＳには送信側が意図したとおりに受信側で再生可能となるようにシステムの基準参照値プログラムクロックリファレンス（ＰＣＲ）が埋め込まれて送信される。同様に、再生時に参照される時刻管理情報プログラムタイムスタンプ（ＰＴＳ）、デコード時に参照される時刻管理情報デコーディングタイムスタンプ（ＤＴＳ）などのデータも埋め込まれて送信される。
【０００３】
放送波を受信する受信機では、入力されるトランスポートストリーム（ＴＳ）からプログラムアソシエーションテーブル（ＰＡＴ）／プログラムマップテーブル（ＰＭＴ）を取得し、目的のプログラム識別子（ＰＩＤ）を判別する。受信機は、判別したＰＩＤを持つＴＳパケットを取得し、映像、音声、ＰＣＲ等に分離する。受信機は、受信したＰＣＲを使用してシステムタイムクロック（ＳＴＣ）の初期値を設定し、定期的に受信されるＰＣＲの値とＳＴＣの値とを比較し、デコードのタイムベースとなる２７ＭＨｚのシステムクロック周波数の誤差を調節する。
【０００４】
一般に、放送局などの送信側の装置から送出されたＴＳパケットに対して、受信側の装置において映像および音声のデコード処理がなされる。その際に、受信側の装置は、ＴＳパケットなどを一時的に蓄積する受信バッファのアンダーフローおよびオーバフローが発生せず、かつ、映像と音声との間の同期処理が正常になるように実装される。
【０００５】
しかしながら、ＩＰＴＶなどのネットワークを経由してＭＰＥＧ２−ＴＳを用いた映像コンテンツが伝送される場合や、ＤＬＮＡなどを利用したホームネットワーク環境下でＭＰＥＧ２−ＴＳで記録された映像コンテンツの視聴を行う場合がある。これらの場合には、送信側装置がＴＳパケットの出力タイミングを制御したとしても、ネットワーク内においてパケットが異なる経路を通過する可能性があり、またネットワーク内の中継機器が他の通信も同時に制御するため、ＴＳパケットの到達時間が送信間隔に従うとは限らない。また、時刻情報であるＰＣＲは、全てのＴＳパケットに含まれるわけではなく、約１００ｍｓ毎にしか含まれないため、送信側装置によって期待されるタイミングでネットワークを経由してＴＳパケットを受信することが難しい。
【０００６】
よって、ネットワークを経由してＴＳパケットが伝送される場合においては、伝送する側の装置がＴＳパケットにタイムスタンプを付加し、受信機がＴＳパケットに付加されているタイムスタンプを使用して、当該ＴＳパケットをデコーダに出力するタイミングを制御する方法が有効である。例えば、ＴＳパケットにタイムスタンプを付加する技術としては様々なものが開示されている（例えば、特許文献１参照）。また、例えば、タイムスタンプが付加されていないＭＰＥＧ２−ＴＳからＰＣＲを検出し、ＭＰＥＧ２−ＴＳの中でＰＣＲを持つＴＳパケットの位置情報をもとにＴＳパケットに対してハードウェア処理で高速にタイムスタンプを付加することができる。これによって、組み込み機器においてもＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を占有せずに、小さいハードウェアブロックによって低コストでＭＰＥＧ２−ＴＳに対するタイムスタンプ付加処理を行うことが可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−６１１５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
一方、ユーザによる編集によって、ＭＰＥＧ２−ＴＳに対してシーンのカットやシーン順序の入れ替えが行われた場合、ＰＣＲ値の連続性が失われ、ＰＣＲ値のジャンプが生じる可能性がある。例えば、シーンのカットが行われた場合、カットが行われた前後のＰＣＲ−ＰＣＲ間に注目すると、カットが行われた分だけＴＳパケット数が減少する。このために、ＰＣＲ−ＰＣＲ間の時間間隔が編集前よりも短くなっているにもかかわらず、ＰＣＲ値は大きく増加していることとなる。ここで、例えばＰＣＲのみを参照してタイムスタンプを付加して行った場合、ネットワークを経由して再生する際にＭＰＥＧ２−ＴＳのカットの前後にあるＰＣＲ−ＰＣＲ間においては、デコーダへの入力タイミングが著しく早くなる可能性があった。また、シーン順が逆になった場合においてはデコーダへの入力タイミングが遅くなる可能性があった。また、デコーダへの入力タイミングがずれると、映像の乱れを生じる可能性があるという問題があった。
【０００９】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、不連続な箇所があるＭＰＥＧ２−ＴＳの再生時に破綻を生じさせないことが可能な、新規かつ改良された技術を提供しようとするものである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明のある観点によれば、ＭＰＥＧ２−ＴＳを記憶する記憶部と、記憶部が記憶するＭＰＥＧ２−ＴＳからＰＣＲを検出し、ＰＣＲの値であるＰＣＲ値を取得するとともに、ＰＣＲを持つＴＳパケットのＭＰＥＧ２−ＴＳにおける位置を示すＰＣＲ位置情報を取得するＰＣＲ検出部と、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値検出のために指定されたＰＩＤを保持し、記憶部が記憶するＭＰＥＧ２−ＴＳからＰＩＤを持つＴＳパケットを検出し、検出したＴＳパケットからｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値を検出し、検出したｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値からＭＰＥＧ２−ＴＳにおける不連続位置を示す不連続位置情報を取得するｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部と、ＰＣＲ検出部が取得したＰＣＲ値およびＰＣＲ位置情報と、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部が検出したｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値とに基づいて、記憶部が記憶するＭＰＥＧ２−ＴＳの各ＴＳパケット間の時間間隔を算出するタイムスタンプ用時間間隔算出部と、タイムスタンプ用時間間隔算出部が算出したタイムスタンプ用時間間隔に基づいて、記憶部が記憶するＭＰＥＧ２−ＴＳの各ＴＳパケットにタイムスタンプを付加するタイムスタンプ付加部と、を備える、情報処理装置が提供される。
【００１１】
上記したＰＣＲ検出部は、記憶部が記憶するＭＰＥＧ２−ＴＳからＰＡＴを取得し、取得したＰＡＴを解析することでＰＭＴ＿ＰＩＤを検出し、検出したＰＭＴ＿ＰＩＤに基づいて記憶部が記憶するからＭＰＥＧ２−ＴＳからＰＭＴを取得し、取得したＰＭＴを解析することでＰＣＲ＿ＰＩＤを検出し、検出したＰＣＲ＿ＰＩＤと等しいＰＩＤをもつＴＳパケットがＰＣＲを持つＴＳパケットであると認識することとしても良い。
【００１２】
上記したＰＣＲ検出部は、ＰＣＲ位置情報として、ＭＰＥＧ２−ＴＳの先頭から最初に存在するＰＣＲの次のＰＣＲまでのＴＳパケットの数と、ＭＰＥＧ２−ＴＳに存在するＰＣＲ間のＴＳパケットの数と、ＭＰＥＧ２−ＴＳの最後のＰＣＲからＭＰＥＧ２−ＴＳの終わりまでのＴＳパケットの数とを取得することとしても良い。
【００１３】
上記したＰＣＲ検出部は、ＰＣＲ位置情報として、ＭＰＥＧ２−ＴＳに存在する各ＰＣＲについて、ＭＰＥＧ２−ＴＳの先頭からのバイト数またはＭＰＥＧ２−ＴＳの先頭からのＴＳパケットの数を取得することとしても良い。
【００１４】
上記したｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部は、ＰＩＤを持つＴＳパケットから前回取得したｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値を保持値として保持しており、保持値とＰＩＤを持つＴＳパケットから今回取得したｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値とを比較することでＭＰＥＧ２−ＴＳの不連続を検出することとしても良い。
【００１５】
上記したｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部は、不連続位置情報として、ＭＰＥＧ２−ＴＳの先頭からのバイト数またはＭＰＥＧ２−ＴＳの先頭からのＴＳパケットの数を取得することとしても良い。
【００１６】
上記したタイムスタンプ用時間間隔算出部は、ＰＣＲ間のＴＳパケットの時間間隔としては、ＴＳパケットの前後のＰＣＲ値に基づいて、ＴＳパケット毎に均等に算出して割り付け、ＭＰＥＧ２−ＴＳの先頭から最初に存在するＰＣＲの次のＰＣＲまでのＴＳパケットの時間間隔としては、その直後のＰＣＲ間のＴＳパケットの時間間隔を使用し、ＭＰＥＧ２−ＴＳの最後のＰＣＲからＭＰＥＧ２−ＴＳの終わりまでのＴＳパケットの時間間隔としては、その直前のＰＣＲ間のＴＳパケットの時間間隔を使用することとしても良い。
【００１７】
上記したタイムスタンプ用時間間隔算出部は、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部がＭＰＥＧ２−ＴＳに不連続を検出した場合には、不連続な位置に存在するとされたＴＳパケットの直前に存在するＰＣＲを持つＴＳパケットから不連続な位置に存在するとされたＴＳパケットまでのＴＳパケット群の時間間隔としては、直前のＰＣＲ間のＴＳパケットの時間間隔を使用し、不連続な位置に存在するとされたＴＳパケットから次のＰＣＲまでのＴＳパケット群の時間間隔としては、直後のＰＣＲ間のＴＳパケットの時間間隔を使用することとしても良い。
【００１８】
上記したタイムスタンプ用時間間隔算出部は、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部がＭＰＥＧ２−ＴＳに不連続を検出した場合には、不連続な位置に存在するとされたＴＳパケットが含まれるＰＣＲ間のＴＳパケットの時間間隔としては、直前のＰＣＲ間のＴＳパケットの時間間隔を使用することとしても良い。
【発明の効果】
【００１９】
以上説明したように本発明によれば、不連続な箇所があるＭＰＥＧ２−ＴＳの再生時に破綻を生じさせないことが可能である。
【図面の簡単な説明】
【００２０】
【図１】本実施形態により実現するＭＰＥＧ２−ＴＳに対するタイムスタンプ付加の概念図である。
【図２】本実施形態にかかる情報処理装置の機能構成図である。
【図３】本実施形態にかかる情報処理装置が実行する処理の流れを示すフローチャートである。
【図４】ＰＣＲ検出部・ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部が実行する処理の流れを示すフローチャートである。
【図５】ＣＰＵによるソフトウェア処理での時間間隔算出の処理ブロック図である。
【図６】ＴＳパケットに付加されるタイムスタンプ時刻を説明するための図を示す。
【発明を実施するための形態】
【００２１】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。なお、説明は以下の順序で行う。
【００２２】
１．    第１実施形態
１−１．  情報処理装置の概要
１−２．  情報処理装置の詳細説明
２．    本実施形態の変形例
３．    まとめ
【００２３】
＜１．第１実施形態＞
本発明の第１実施形態について説明する。
【００２４】
［１−１．情報処理装置の概要］
本発明の実施形態にかかる情報処理装置の概要について説明する。本実施形態では、ＭＰＥＧ２−ＴＳのｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒに注目する。ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒは、ＭＰＥＧ２−ＴＳの各ＴＳパケットに含まれる４ｂｉｔのカウンタであり、同一のＰＩＤをもつＴＳパケットである場合、ストリームの先頭から順に１ずつ加算された値を持つ。ただし、ａｄａｐｔａｔｉｏｎ＿ｆｉｅｌｄ＿ｃｏｎｔｒｏｌが００もしくは１０である場合、もしくはｄｕｐｌｉｃａｔｅ  ｐａｃｋｅｔである場合には、前のＴＳパケットと同じ値を持つ。ゆえに、任意のＰＩＤのｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒを参照し、保持している値との差分が０もしくは１以外のとき、ＭＰＥＧ２−ＴＳの不連続を認識できる。この情報をタイムスタンプ付加に用いることにより、ネットワークを介しても再生時に破綻を生じないタイムスタンプ付加システムを、ＣＰＵへの負担が小さく、小規模なハードウェアで実現する。
【００２５】
本実施形態にかかる情報処理装置は、タイムスタンプが無いＭＰＥＧ２−ＴＳに対し、ＭＰＥＧ２−ＴＳからＰＣＲを検出し、ストリーム中のＰＣＲを持つＴＳパケットの位置情報を取得する機能を有するＰＣＲ検出部を備える。また、情報処理装置は、任意のＰＩＤのｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値を検出し、保持しているｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値と比較し、ＭＰＥＧ２−ＴＳの不連続を検出して報告するｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部を備える。また、情報処理装置は、ＣＰＵ上のソフトウェアによるＴＳパケット間の時間間隔を算出するタイムスタンプ用時間間隔算出部を備える。タイムスタンプ用時間間隔算出部によって、ハードウェアによるタイムスタンプ付加処理をサポートすることができる。また、情報処理装置は、タイムスタンプ用時間間隔算出部によって得られた時間間隔に基づいて、ＴＳパケットに対してハードウェア処理で高速にタイムスタンプを付加する機能を有するタイムスタンプ付加部を供える。
【００２６】
本実施形態にかかる情報処理装置は、ＰＣＲ−ＰＣＲ間のＴＳパケットに対しては、ＰＣＲを基にして均等にタイムスタンプの割り付けを行う。情報処理装置は、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部によりＭＰＥＧ２−ＴＳの不連続が検出された場合、その不連続点に該当するＴＳパケットまでのＴＳパケットには直前のＰＣＲ−ＰＣＲ間のＴＳパケットと同様にタイムスタンプを付加し、不連続点に該当するＴＳパケットから次のＰＣＲまでのＴＳパケットには直後のＰＣＲ−ＰＣＲ間のＴＳパケットと同様にタイムスタンプを付加する。
【００２７】
［１−２．情報処理装置の詳細説明］
本発明の実施形態にかかる情報処理装置として、編集により不連続な点が生じているＭＰＥＧ２−ＴＳのストリーム（情報処理装置のメモリ中に存在）に対して、ＰＣＲ検出を行い、タイムスタンプを付加するまでの機能について説明する。
【００２８】
図１に、本実施形態により実現するＭＰＥＧ２−ＴＳに対するタイムスタンプ付加の概念図を示す。図１に示すように、本実施形態にかかる情報処理装置は、１８８バイトのＭＰＥＧ２−ＴＳパケットに対し、ＰＣＲと同様に２７ＭＨｚクロックを基準とするタイムスタンプを４バイト付加し、タイムスタンプ付きＭＰＥＧ２−ＴＳを作り出すものである。
【００２９】
図２に、本実施形態にかかる情報処理装置の機能構成図を示す。また、図３に、本実施形態にかかる情報処理装置が実行する処理の流れを示すフローチャートを示す。図２において、情報処理装置（１００）内のシステムバス（１０１）に、ＰＣＲ検出部（１０２）およびｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）が一体となったハードウェア機能ブロックが接続されている。また、システムバス（１０１）に、タイムスタンプ付加部（１０７）、ＰＣＲが含まれないＴＳパケットのタイムスタンプ用時間間隔算出部（１０５）をソフトウェアの機能として持つＣＰＵ（１０４）が接続されている。ＣＰＵ（１０４）は、演算処理装置および制御装置として機能し、メモリ（１０６）に記録された各種プログラムに従って、情報処理装置（１００）内の動作全般またはその一部を制御する。ＣＰＵ（１０４）には、ＭＰＥＧ２−ＴＳが含まれる記憶部の一例としてのメモリ（１０６）がつながっている。メモリ（１０６）は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等により構成され、ＣＰＵ（１０４）の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。
【００３０】
初期状態として、メモリ（１０６）中にタイムスタンプの付いていないＭＰＥＧ２−ＴＳがあるとする（ステップＳ２００）。
【００３１】
ＣＰＵ（１０４）は、ＰＣＲ検出部（１０２）およびｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）が一体となったハードウェア機能ブロックにメモリ（１０６）中のＭＰＥＧ２−ＴＳを渡す（ステップＳ２０１）。本実施形態では、ＰＣＲ検出部（１０２）とｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）とを同じハードウェア機能ブロックとして示しているが、それぞれ別のハードウェア機能ブロックとしても良い。また、ＰＣＲ検出部（１０２）、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、ハードウェアブロックによって実現されることとしてもよいが、ソフトウェアによって実現されることとしてもよい。ＰＣＲ検出部（１０２）、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）の機能をハードウェアによって実現する場合、ＣＰＵ（１０４）がＤＭＡディスクリプタにＭＰＥＧ２−ＴＳのアドレス等を記述することによってＰＣＲ検出部（１０２）に直接メモリ（１０６）からＭＰＥＧ２−ＴＳの受け渡しをすることが高速化のために望ましい。この場合には、例えば、図２には未記載であるＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）  Ｉｎｔｅｒｆａｃｅを介してメモリ（１０６）・ＣＰＵ（１０４）・ローカルバスを接続する。
【００３２】
ＰＣＲ検出部（１０２）は、受け取ったＭＰＥＧ２−ＴＳを解析し、ストリームからＰＣＲを検出する。また、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、そのＴＳパケットのｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値の不連続を検出する（ステップＳ２０２）。
【００３３】
図４に、ＰＣＲ・ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出動作（ステップＳ２０２）の処理フローを示す。ここでは、ＰＣＲ＿ＰＩＤが既知であり、ＰＣＲ検出部（１０２）に設定されているとする。その他の例として、ＰＣＲ検出部（１０２）がＰＡＴを解析することでＰＭＴ＿ＰＩＤを取得し、取得したＰＭＴ＿ＰＩＤに基づいてＰＭＴを検出し、検出したＰＭＴを解析することでＰＣＲ＿ＰＩＤを取得することとしても良い。また、ＰＭＴ＿ＰＩＤが既知であり、ＰＣＲ検出部（１０２）が、既知のＰＭＴ＿ＰＩＤに基づいてＰＭＴを検出し、検出したＰＭＴを解析することでＰＣＲ＿ＰＩＤを取得しても良い。
【００３４】
また、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、ＰＩＤに所定の値が設定されているＴＳパケットについて、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値の連続性のチェック対象とする。ＰＩＤに設定される所定の値は、例えば、ｖｉｄｅｏを識別するためのＰＩＤとし、ｖｉｄｅｏを識別するためのＰＩＤが既知であり、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）に設定されていることとする。しかし、これに限定されず、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）がＰＭＴを解析し、ＰＭＴのＰｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅに含まれるｓｔｒｅａｍ＿ｔｙｐｅ等から所望のＰＩＤを検出し、検出したＰＩＤを設定することとしても良い。
【００３５】
また、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、ｖｉｄｅｏのみならず、ａｕｄｉｏ等を識別するためのＰＩＤを設定することとしても良い。さらに、本実施形態では、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒの連続性チェック対象となるＴＳパケットのＰＩＤは１種類であるとしているが、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、複数のＰＩＤを設定し、ＰＩＤ毎にｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒを保存し、連続性をチェックすることとしても良い。例えば、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、複数のＰＩＤを設定することにより、編集があっても偶然にｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値の連続性が生じる可能性を低くすることができる。
【００３６】
本実施形態においては、先に記したとおり、ＰＣＲ検出部（１０２）とｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）とを同一のハードウェアによって構成されることとしている。このため、ＰＣＲ検出部（１０２）とｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）とは、各ＴＳパケットのＰＩＤに対する判定結果を共有しているとする。これにより、ハードウェアに対するストリームの転送回数を削減することができ、回路規模を縮小することができる。当然ながら、ＰＣＲ検出部（１０２）とｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）とが、それぞれ各ＴＳパケットのＰＩＤに対する判定を行うこととしても良い。
【００３７】
本実施形態においては、情報処理装置（１００）が、入力されたストリームをＴＳパケットごとに解析していき、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）がＴＳパケットに対してｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出の動作を行い、その後にＰＣＲ検出部（１０２）がＰＣＲ検出動作を行うこととする。しかし、この順序については限定されるものではない。
【００３８】
ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、チェック対象のＴＳパケットのＰＩＤがｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値をチェックするために指定したＰＩＤ（ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出用指定＿ＰＩＤ）であるか否かを判断する（ステップＳ３０１）。ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、チェック対象のＴＳパケットのＰＩＤがｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値をチェックするために指定したＰＩＤであると判断した場合には（ステップＳ３０１で「Ｙｅｓ」）、ステップＳ３０２に進む。ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、チェック対象のＴＳパケットのＰＩＤがｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値をチェックするために指定したＰＩＤではないと判断した場合には（ステップＳ３０１で「Ｎｏ」）、ステップＳ３０６に進む。
【００３９】
ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値の保持値が存在するか否かを判断する（ステップＳ３０２）。ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、保持値が存在しないと判断した場合には（ステップＳ３０２で「Ｎｏ」）、ステップＳ３０５に進む。ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、保持値が存在すると判断した場合には（ステップＳ３０２で「Ｙｅｓ」）、保持値とチェック対象のＴＳパケットのｃｏｕｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値とが等しい、もしくは、保存値＋１がｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値と等しいか否かを判断する（ステップＳ３０３）。
【００４０】
ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、保持値とチェック対象のＴＳパケットのｃｏｕｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値とが等しい、もしくは、保存値＋１がｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値と等しいと判断した場合には（ステップＳ３０３で「Ｙｅｓ」）、ステップＳ３０５に進む。ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、保持値とチェック対象のＴＳパケットのｃｏｕｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値とが等しくない、かつ、保存値＋１がｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値と等しくないと判断した場合には（ステップＳ３０３で「Ｎｏ」）、ＭＰＥＧ２−ＴＳに不連続が生じたと判定し、現在のＴＳパケットの位置情報をタイムスタンプ用時間間隔算出部（１０５）に報告する（ステップＳ３０４）。ここでは、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、位置情報として直前のＰＣＲからのパケット数を報告するとする。
【００４１】
ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、保存値をそのｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値で上書きする（ステップＳ３０５）。ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、入力されたＭＰＥＧ２−ＴＳにおいて指定されたＰＩＤをもつＴＳパケットのうちで最初のパケットであった場合、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値を保存する。
【００４２】
これらの処理後、ＰＣＲ検出部（１０２）は、チェック対象のＴＳパケットのＰＩＤがＰＣＲ＿ＰＩＤと等しいか否かを判断する（ステップＳ３０６）。ＰＣＲ検出部（１０２）は、ＰＩＤがＰＣＲ＿ＰＩＤと等しくないと判断した場合には（ステップＳ３０６で「Ｎｏ」）、ステップＳ３１０に進む。ＰＣＲ検出部（１０２）は、ＰＩＤがＰＣＲ＿ＰＩＤと等しいと判断した場合には（ステップＳ３０６で「Ｙｅｓ」）、ＴＳパケットにａｄａｐｔａｔｉｏｎ＿ｆｉｅｌｄがあるか否か（「ａｄａｐｔａｔｉｏｎ＿ｆｉｅｌｄ＿ｃｏｎｔｒｏｌが１０または１１」、かつ、「ａｄａｐｔａｔｉｏｎ＿ｆｉｅｌｄ＿ｌｅｎｇｔｈが０でない」が成立するか否か）を判断する（ステップＳ３０７）。
【００４３】
ＰＣＲ検出部（１０２）は、ＴＳパケットにａｄａｐｔａｔｉｏｎ＿ｆｉｅｌｄがないと判断した場合には（ステップＳ３０７で「ｙｅｓ」）、ステップＳ３１０に進む。ＰＣＲ検出部（１０２）は、ＴＳパケットにａｄａｐｔａｔｉｏｎ＿ｆｉｅｌｄがあると判断した場合には（ステップＳ３０７で「ｙｅｓ」）、ＰＣＲ＿ｆｌａｇが１であるか否かを判断する（ステップＳ３０８）。ＰＣＲ検出部（１０２）は、ＰＣＲ＿ｆｌａｇが１ではないと判断した場合には（ステップＳ３０８で「Ｎｏ」）、ステップＳ３１０に進む。ＰＣＲ検出部（１０２）は、ＰＣＲ＿ｆｌａｇが１であると判断した場合には（ステップＳ３０８で「Ｙｅｓ」）、ＰＣＲ値、ＰＣＲ位置を取得し、タイムスタンプ用時間間隔算出部（１０５）に報告する。
【００４４】
ＰＣＲ検出部（１０２）は、チェック対象のＴＳパケットでストリームが終わりであるか否かを判断する（ステップＳ３１０）。ＰＣＲ検出部（１０２）は、チェック対象のＴＳパケットでストリームが終わりでないと判断した場合には（ステップＳ３１０で「Ｎｏ」）、次のパケットの先頭に移動し（ステップＳ３１１）、ステップＳ３０１に戻る。ＰＣＲ検出部（１０２）は、チェック対象のＴＳパケットでストリームが終わりであると判断した場合には（ステップＳ３１０で「Ｙｅｓ」）、ステップＳ２０２を終了する。
【００４５】
図４に示した例では、ＰＣＲ検出部（１０２）は、ＰＣＲ値を得た場合、ＰＣＲ位置報告をするとあるが、報告される位置は、例えば、入力ストリームの先頭からＰＣＲが存在する位置までのバイト数であっても良い。また、例えば、入力ストリームの先頭からＰＣＲが存在する位置までのＴＳパケット数であっても良く、ＰＣＲ−ＰＣＲ間のＴＳパケット数であっても良い。ここでは、ＰＣＲ検出部（１０２）は、位置情報として、入力ストリームの先頭から最初の次のＰＣＲを含むＴＳパケットまでのＴＳパケット数、以降は、ＰＣＲから次のＰＣＲまでのＴＳパケット数を報告し、ストリーム終了時においては、最後のＰＣＲからストリーム終わりまでのＴＳパケット数を報告することとする。また、ＣＰＵ（１０４）にとって、ＰＣＲ検出部（１０２）に入力したストリームの長さは既知であり、ストリームに存在する最後のＰＣＲからストリームが終わるまでのＴＳパケット数はわかるものとする。
【００４６】
ＰＣＲ検出部（１０２）およびｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）は、ストリームの処理が完了したらＣＰＵ（１０４）に対して検証完了通知を行う（ステップＳ２０３）。図３においては、ストリーム全体の検出完了後に検出完了通知を出すとしているが、ＰＣＲ値、ＰＣＲ位置報告、不連続の位置報告はストリームの全パケットの解析が終了してから通知してもよいし、ＰＣＲ値を取得する毎に、または、不連続を発見する毎に行ってもよい。
【００４７】
図５に、ＣＰＵによるソフトウェア処理での時間間隔算出の処理ブロック図を示す。ここでは、図５において、γで示すＰＩＤ＝ｖｉｄｅｏであるＴＳパケットの直前に、ユーザによるＭＰＥＧ２−ＴＳの編集に伴うカットが入り、ストリーム連続性が失われているとする。
【００４８】
上記したＰＣＲ・ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｔｎｅｒ検出動作（ステップＳ２０２）によると、ＰＩＤ＝ｖｉｄｅｏ（本実施形態のＭＰＥＧ２−ＴＳにおいてｖｉｄｅｏのＰＩＤを指すとする）であるαβの両パケットにおいてはｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒが連続している。しかし、γのｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値＝１２と直前の同一ＰＩＤのＴＳパケットであるβのｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値＝保存値＝８とは等しくなく、保存値＋１＝８＋１≠１２である。そのため、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）によって、タイムスタンプ用時間間隔算出部（１０５）に不連続の位置報告が行われる。
【００４９】
ＣＰＵ（１０４）上のタイムスタンプ用時間間隔算出部（１０５）は、ＰＣＲ検出・ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出が完了した場合、もしくはＰＣＲ値、ＰＣＲ位置報告、不連続の位置報告を受けた場合、ＴＳパケットの時間間隔算出を行う（ステップＳ２０４）。
【００５０】
ＣＰＵ（１０４）上のタイムスタンプ用時間間隔算出部（１０５）は、得られたＰＣＲ値、ＰＣＲ位置報告、不連続位置報告をもとに、入力ストリームを以下のように処理ブロックに分割する。
【００５１】
入力ストリームの先頭から最初の次のＰＣＲまでに存在するＴＳパケットによって構成される処理ブロック（Ｕ１）、
ＰＣＲ−ＰＣＲ間に存在するＴＳパケットによって構成される処理ブロック（Ｕ２）、
不連続位置報告によって不連続位置であるとされたＴＳパケットまでのＴＳパケットを含む処理ブロック（Ｕ３）、
不連続位置報告によって不連続位置であるとされたＴＳパケットから新しいタイムベースでのＰＣＲ−ＰＣＲ間のＴＳパケットによって構成される処理ブロック（Ｕ１’）、
入力ストリームに存在する最後のＰＣＲからストリームの終わりまでのＴＳパケットによって構成される処理ブロック（Ｕ２’）
【００５２】
タイムスタンプ用時間間隔算出部（１０５）は、例えば、図５に示したＭＰＥＧ２−ＴＳにおいては、γの位置を示す位置情報によって不連続位置報告を受ける。そのために、タイムスタンプ用時間間隔算出部（１０５）は、不連続位置報告で示されたＴＳパケットまでを同一の処理ブロック（Ｕ３）として扱い、そのＴＳパケット以降を、直後のＰＣＲ−ＰＣＲ間と同じタイムベースで処理する処理ブロック（Ｕ１’）として扱う。つまり、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値の不連続が検出されたＴＳパケットは、前後の処理ブロック（Ｕ３、Ｕ１’）に含まれることとなる。
【００５３】
また、タイムスタンプ用時間間隔算出部（１０５）は、処理ブロック毎に、ＴＳパケット間の時間間隔（Ｑ）、先頭パケットのタイムスタンプ値（Ｖ）を算出する。タイムスタンプ付加処理をハードウェアで行うため、Ｖ，Ｑは整数として扱うものとし、タイムスタンプ用時間間隔算出部（１０５）は、Ｖ，Ｑを算出するために、以下の設定値を計算するものとする。
【００５４】
Ｖｎｕｍ：処理ブロックＵｎｕｍにおける先頭ＴＳパケットに付与されるタイムスタンプ値
Ｑｎｕｍ：処理ブロックＵｎｕｍにおけるＴＳパケット間の時間間隔
Ｒｎｕｍ：処理ブロックＵｎｕｍにおけるＴＳパケット間の時間間隔の余剰
Ｃｎｕｍ：処理ブロックＵｎｕｍにおける先頭ＴＳパケットでのタイムスタンプ値のキャリーオーバ
Ｎｎｕｍ：処理ブロックＵｎｕｍにおけるＰＣＲ−ＰＣＲ間のＴＳパケット数（最初のＰＣＲを含む）。
【００５５】
Ｕ１ブロックにおいては、各設定値をそれぞれＶ１，Ｑ１，Ｒ１，Ｃ１，Ｎ１、また、図５に示すように、入力ストリームの先頭パケットからＰＣＲ直前のパケットまでのＴＳパケット数をＮ０とすると、
Ｑ１＝（ＰＣＲ２−ＰＣＲ１）／Ｎ１
Ｒ１＝（ＰＣＲ２−ＰＣＲ１）  ｍｏｄ  Ｎ１
Ｃ１＝（−Ｒ１×Ｎ０）  ｍｏｄ  Ｎ１
となる。
【００５６】
Ｖ１は、ストリームの先頭においては任意の値に設定可能である。また、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部（１０３）によって不連続報告が行われ、新たに処理ブロックが分けられる場合において、タイムスタンプ用時間間隔算出部（１０５）は、直前のブロックの最後のパケットのタイムスタンプ値をＶ１とする。つまり、Ｕ１’においては、Ｕ３でγにつけたタイムスタンプ値をＶ１として扱う。
【００５７】
また、Ｕ２ブロックにおいては各設定値をそれぞれＶ２，Ｑ２，Ｒ２，Ｃ２，Ｎ２とすると、
Ｑ２＝（ＰＣＲ３−ＰＣＲ２）／Ｎ２
Ｒ２＝（ＰＣＲ３−ＰＣＲ２）  ｍｏｄ  Ｎ２
Ｃ２＝０
であり、
Ｖ２＝Ｖ１＋Ｑ１（Ｎ０＋Ｎ１）＋（Ｒ１（Ｎ０＋Ｎ１）＋Ｃ１）／Ｎ１
＝Ｖ１＋（（ＰＣＲ２−ＰＣＲ１）×（Ｎ０＋Ｎ１）＋Ｃ１）／Ｎ１
となる。
【００５８】
一般化すると、Ｕｎ（ｎ＞＝２）ブロックにおいては、
Ｑｎ＝（ＰＣＲｎ＋１−ＰＣＲｎ）／Ｎｎ
Ｒｎ＝（ＰＣＲｎ＋１−ＰＣＲｎ）  ｍｏｄ  Ｎｎ
Ｃｎ＝０
Ｖｎ＝Ｖｎ−１＋（ＰＣＲｎ−ＰＣＲｎ−１）
となる。
【００５９】
以上により、タイムスタンプ用時間間隔算出部（１０５）は、ＴＳパケット間の時間間隔を算出する。これにより、ストリームの先頭から最初の次のＰＣＲを得るまで、また、最後のＰＣＲからストリームが終わるまでの夫々のＴＳパケットにおいてもタイムスタンプを付加することが可能となる。
【００６０】
図６に、ＴＳパケットに付加されるタイムスタンプ時刻を説明するための図を示す。図６に示すように、ＰＣＲ付きのＴＳパケットについては、そのＰＣＲ時刻に従ってタイムスタンプ時刻が付与される。また、ＰＣＲ付きではないＴＳパケットについては、その前後に存在するＰＣＲ付きパケットのＰＣＲ時刻の増加分をＴＳパケット数で除して得られる値（図６に示したグラフの傾き）に従ってタイムスタンプ時刻が付与される。ストリームの先頭から最初の次のＰＣＲを含むＴＳパケットまでのＴＳパケットについては、その直後の傾きに従ってタイムスタンプ時刻が付与される。ストリームに存在する最後のＰＣＲからストリームが終わるまでについては、その直前の傾きに従ってタイムスタンプ時刻が付与される。
【００６１】
また、不連続が検出されたＴＳパケットをストリームの基点として再度タイムスタンプ付加処理を行う。これにより、ＭＰＥＧ２−ＴＳのストリームが不連続になることでＰＣＲのタイムベースに切り替わりが生じても、同等のタイムスタンプ用時間間隔を算出することが可能となり、一定の間隔のタイムスタンプを割り付けることができる。
【００６２】
ＣＰＵ（１０４）は、タイムスタンプ用時間間隔算出処理後、タイムスタンプ付加部（１０７）に時間間隔算出結果とＭＰＥＧ２−ＴＳとを渡す（ステップＳ２０５）。タイムスタンプ付加部（１０７）は、処理ブロックごとにソフトウェアによる時間間隔の算出で得られた値を利用し、下の式に従ってタイムスタンプの付加を行う（ステップＳ２０６）。
【００６３】
各処理ブロックのＴＳパケットのタイムスタンプ値は、
Ｖｎ［ｍ］：処理ブロックＵｎのｍ番目のパケットのタイムスタンプ値
Ｃｎ［ｍ］：処理ブロックＵｎのｍ番目のパケットでのタイムスタンプ値のキャリーオーバとすると、
Ｖｎ［１］＝Ｖｎ、Ｃｎ［１］＝Ｃｎとし、
ｍ＞＝２のとき、
Ｖｎ［ｍ］＝Ｖｎ［ｍ−１］＋Ｑｎ＋１（但し、（Ｃｎ［ｍ−１］＋Ｒｎ）＞＝Ｎｎであるとき）
Ｖｎ［ｍ］＝Ｖｎ［ｍ−１］＋Ｑｎ（但し、（Ｃｎ［ｍ−１］＋Ｒｎ）＜Ｎｎであるとき）
Ｃｎ［ｍ］＝Ｃｎ［ｍ−１］＋Ｒｎ−Ｎｎ（但し、（Ｃｎ［ｍ−１］＋Ｒｎ）＞＝Ｎｎであるとき）
＝Ｃｎ［ｍ−１］＋Ｒｎ  （但し、（Ｃｎ［ｍ−１］＋Ｒｎ）＜Ｎｎであるとき）
となる。
【００６４】
これにより、キャリーオーバを考慮することで実際のＰＣＲ値と各ＴＳパケットに付加するタイムスタンプ値のずれを最小にすることが可能である。また、このタイムスタンプ付加処理は、値を参照し、比較して付加タイムスタンプ値を決定するのみであり、非常に小さなハードウェア規模で実現可能である。
【００６５】
タイムスタンプ付加部（１０７）は、タイムスタンプを付加したＭＰＥＧ２−ＴＳをメモリ（１０６）に書き戻す（ステップＳ２０７）。ここで、ハードウェア処理の高速化のためにＤＭＡを用い、ＣＰＵ（１０４）がＤＭＡディスクリプタにＭＰＥＧ２−ＴＳのアドレス等を記述することでタイムスタンプ付加部（１０７）にＭＰＥＧ２−ＴＳの受け渡しがなされることが望ましい。同様に、タイムスタンプ付加部（１０７）からメモリ（１０６）にタイムスタンプ付きＭＰＥＧ２−ＴＳを書き戻す際においても、ＤＭＡを用いて処理されることが望ましい。
【００６６】
以上の実施形態に拠れば、タイムスタンプが無く、不連続な箇所があるＭＰＥＧ２−ＴＳに対し、情報処理装置（１００）は、ストリーム中のＰＣＲを持つＴＳパケットおよびｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ値の不連続な点を検出することができる。また、情報処理装置（１００）は、検出した点に相当するＴＳパケットの位置情報を取得し、ＰＣＲ値と不連続な点であるとしたＴＳパケットの位置情報とを参照することができる。これによって、ＭＰＥＧ２−ＴＳに不連続が生じてもネットワークを介しても再生時に破綻を生じないタイムスタンプ付加システム（情報処理装置（１００））を、ＣＰＵ（１０４）上への負担を小さく、小規模なハードウェア規模で実現できる。
【００６７】
＜２．本実施形態の変形例＞
なお、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００６８】
＜３．まとめ＞
本実施形態によれば、情報処理装置は、タイムスタンプが無く、不連続な箇所があるＭＰＥＧ２−ＴＳに対し、ストリーム中のＰＣＲを持つＴＳパケットおよび任意のＰＩＤのＴＳパケットのｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒが不連続であるＴＳパケットの位置情報を取得することができる。そして、情報処理装置は、ＰＣＲ値と不連続なＴＳパケットの位置情報とを参照することでＰＣＲの不連続が生じてもネットワークを介しても再生時に破綻を生じないタイムスタンプ付加システムを実現することができる。
【００６９】
情報処理装置は、ＰＣＲ−ＰＣＲ間のＴＳパケットに対しては、ＰＣＲを基にして均等にタイムスタンプの割り付けを行う。また、情報処理装置は、ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部によりＭＰＥＧ２−ＴＳの不連続が検出された場合、不連続を検出したＴＳパケットまでのＴＳパケットには直前のＰＣＲ−ＰＣＲ間のＴＳパケットと同様にタイムスタンプを付加する。また、情報処理装置は、不連続を検出したＴＳパケットから次のＰＣＲまでのＴＳパケットには直後のＰＣＲ−ＰＣＲ間のＴＳパケットと同様にタイムスタンプを付加する。これにより、ＣＰＵ上のソフトウェアへの負担を小さくし、小規模なハードウェアでＭＰＥＧ２−ＴＳに対するタイムスタンプ付加処理を実現することができる。
【符号の説明】
【００７０】
１００  情報処理装置
１０２  ＰＣＲ検出部
１０３  ｃｏｎｔｉｎｕｉｔｙ＿ｃｏｕｎｔｅｒ検出部
１０４  ＣＰＵ
１０５  タイムスタンプ用時間間隔算出部
１０６  メモリ（記憶部）
１０７  タイムスタンプ付加部
【図１】
2010183336.tif 000003
【図２】
2010183336.tif 000004
【図３】
2010183336.tif 000005
【図４】
2010183336.tif 000006
【図５】
2010183336.tif 000007
【図６】
2010183336.tif 000008