JP4475336B2 - タイムスタンプ付加装置およびタイムスタンプ付加方法、並びにプログラム - Google Patents
タイムスタンプ付加装置およびタイムスタンプ付加方法、並びにプログラム Download PDFInfo
- Publication number
- JP4475336B2 JP4475336B2 JP2008028541A JP2008028541A JP4475336B2 JP 4475336 B2 JP4475336 B2 JP 4475336B2 JP 2008028541 A JP2008028541 A JP 2008028541A JP 2008028541 A JP2008028541 A JP 2008028541A JP 4475336 B2 JP4475336 B2 JP 4475336B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- pcr
- packets
- time stamp
- discontinuity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23608—Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Signal Processing For Recording (AREA)
Description
本発明は、タイムスタンプ付加装置およびタイムスタンプ付加方法、並びにプログラムに関し、特に、MPEG2-TSの再生が正常に行われるようなタイムスタンプをTSパケットに付加することができるようにしたタイムスタンプ付加装置およびタイムスタンプ付加方法、並びにプログラムに関する。
近年、テレビジョン放送されている番組をハードディスクなどの記録媒体に記録し、その後、記録媒体に記録されている番組を再生して、ユーザが視聴することができるディジタル機器の普及が拡大している。このようなディジタル機器としては、ハードディスクレコーダや、パーソナルコンピュータ、録画機能を備えたテレビジョン放送受像機などがある。
日本のテレビジョン放送における規格としては、国際標準規格であるMPEG(Moving Picture Experts Group)の中でも、通信システムや放送システムへの適用が考慮されているMPEG-2システムが採用されている。さらに、MPEG-2システムの中でも、伝送時に誤りが発生する環境での伝送や蓄積などに適したMPEG2-TSと呼ばれる形式が採用されている。
MPEG2-TSでは、送信側の装置は、MPEG-2で符号化された映像および音声を、TS(Transport Stream:トランスポートストリーム)パケットと呼ばれるパケットに分割し、TSパケットを順次送信する。
また、MPEG2-TSでは、送信側が意図したとおりに受信側で番組を再生することができるように、TSパケットには、27MHzのシステムクロック周波数を基準としたPCR(Program Clock Reference:プログラムクロックリファレンス)が埋め込まれる。同様に、TSパケットには、再生時に参照される時刻管理情報であるPTS(Program Time Stamp:プログラムタイムスタンプ)や、デコード時に参照される時刻管理情報であるDTS(Decoding Time Stamp:デコーディングタイムスタンプ)などのデータも埋め込まれる。
上述したようなディジタル機器などの受信側の装置は、TSパケットを受信し、そのTSパケットから、PAT(Program Association Table:プログラムアソシエーションテーブル)、およびPMT(Program Map Table:プログラムマップテーブル)を取得する。受信側の装置は、PATおよびPMTに基づいて、PID(Packet Identifier:パケット識別子)を判別することができ、所定のPIDを持つTSパケットを、映像や、音声、PCRなどに分離する。
また、受信側の装置は、TSパケットから取得したPCRを使用して、STC(System Time Clock:システムタイムクロック)の初期値を設定する。また、受信側の装置は、定期的に受信されるPCRの値と、STCとを比較し、デコードのタイムベースとなる27MHzのシステムクロック周波数の誤差を調節する。
一般に、放送局などの送信側の装置から送出されたTSパケットが、受信側の装置において映像および音声のデコード処理時に、TSパケットなどを一時的に蓄積する受信バッファのアンダーフローおよびオーバフローが発生せず、かつ、映像と音声との間の同期処理が正常になるように、受信側の装置は実装される。
ところで、MPEG2-TSを用いた映像コンテンツは、IPTV(Internet Protocol Television)などのネットワークを経由した配信が行われる場合があり、またDLNA(Digital Living Network Alliance)などに代表されるホームネットワーク環境下での配信が行われる場合もある。
このようなネットワークを介した映像コンテンツの配信において、送信側の装置が、TSパケットの出力タイミングを正確に制御したとしても、ネットワーク内で、TSパケットが異なる経路を通過する可能性があり、TSパケットの到着時間が、送信間隔に従わないことがある。また、ネットワーク内の中継機器が、MPEG2-TSの処理とは全く関係ない他の通信処理を同時に行うようなときも、TSパケットの到着時間が、送信間隔に従わないことがある。
また、時刻情報であるPCRは、100ms以内に最低1つ含まれるものと規定されており、全てのTSパケットに含まれるわけではない。よって、受信側の装置が、ネットワークを介して伝送されるTSパケットのPCRのみを参照して、送信側の装置が期待するタイミングで受信したTSパケットを、デコーダへ入力することは困難である。
従って、ネットワークを介した映像コンテンツの配信では、送信側の装置が、個々のTSパケットにタイムスタンプ(デコーダへの入力タイミング)を付加し、受信側の装置が、TSパケットに付加されているタイムスタンプを使用して、そのTSパケットをデコードするタイミングを制御する方法が、有効である。
ここで、例えば、テレビジョン放送されたコンテンツを、録画機器などにおいてMPEG2-TSで記録し、そのMPEG2-TSに対し、ユーザが編集を行って、シーンのカットやシーン順序の入れ替えなどが行われた場合、PCR値の連続性が失われることがある。
例えば、シーンのカットが行われたTSパケットの前後のPCRが含まれているTSパケットの時間間隔とPCR値との変化について説明すると、シーンがカットされた分だけTSパケットの数が減少しているので、その前後のTSパケットの時間間隔は、シーンがカットされる前よりも短くなっているにもかかわらず、その前後のTSパケットのPCR値は大きく増加(ジャンプ)することになる。
従って、例えば、個々のTSパケットにタイムスタンプを付加する処理でPCR値のみを参照した場合において、シーンがカットされたMPEG2-TSをネットワークを介して配信する際には、カットされたシーンの前後のPCRが含まれているTSパケットどうしの間では、デコーダへの入力タイミングが、著しく早くなってしまう。また、シーンの順番が入れ替えられたMPEG2-TSをネットワークを介して再生する際には、デコーダへの入力タイミングが遅くなったりする。このように、デコーダへの入力タイミングが早くなったり、遅くなったりすると、MPEG2-TSを正常に再生することができず、映像に乱れが生じてしまう。
ここで、特許文献1には、時刻情報の連続性および周期性を保ち、様々な伝送速度に対応したトランスポートストリームを発生させる技術が開示されている。
また、特許文献2には、非同期の複数のトランスポートストリームの多重時に発生する遅延揺らぎを防止する技術が開示されている。
上述したように、例えば、MPEG2-TSのTSパケットにタイムスタンプを付加する処理において、MPEG2-TSがユーザにより編集されていた場合には、PCRの値の連続性が失われており、不適切な入力タイミングを表すタイムスタンプが付加されることがあった。これにより、ネットワークを介して配信されるMPEG2-TSを再生する際に、MPEG2-TSのデコーダへの入力タイミングが、適切なタイミングと異なるものとなり、MPEG2-TSの再生が正常に行われないことがあった。
本発明は、このような状況に鑑みてなされたものであり、MPEG2-TSの再生が正常に行われるようなタイムスタンプをTSパケットに付加することができるようにするものである。
本発明の一側面のタイムスタンプ付加装置は、MPEG2-TSに含まれる複数のTSパケットに、前記MPEG2-TSをデコードするデコーダへの入力タイミングを表すタイムスタンプをそれぞれ付加するタイムスタンプ付加装置であって、前記TSパケットに含まれているアダプテーションフィールドに記述されている不連続インジケータが、所定のシステムクロック周波数を基準としたPCRが不連続になることを表している場合、前記不連続インジケータが含まれているTSパケットの位置情報を取得する不連続検出手段と、前記TSパケットに含まれているアダプテーションフィールドに前記PCRが埋め込まれている場合、前記TSパケットからPCRの値を抽出するとともに、前記PCRが埋め込まれているTSパケットの位置情報を取得するPCR検出手段と、前記不連続検出手段が取得した前記PCRが不連続になることを表している不連続インジケータが含まれているTSパケットの位置情報、前記PCR検出手段が抽出した前記PCRの値、および前記PCR検出手段が取得した前記PCRが埋め込まれているTSパケットの位置情報を用いて、隣り合うTSパケット同士の入力タイミングの間隔を算出する時間間隔算出手段と、前記TSパケット同士の入力タイミングの間隔に基づいて、前記TSパケットの入力タイミングを算出し、前記入力タイミングを表すタイムスタンプを複数の前記TSパケットにそれぞれ付加するタイムスタンプ算出手段とを備える。
本発明の一側面のタイムスタンプ付加方法またはプログラムは、MPEG2-TSに含まれる複数のTSパケットに、前記MPEG2-TSをデコードするデコーダへの入力タイミングを表すタイムスタンプをそれぞれ付加するタイムスタンプ付加方法、または、MPEG2-TSに含まれる複数のTSパケットに、前記MPEG2-TSをデコードするデコーダへの入力タイミングを表すタイムスタンプをそれぞれ付加する処理をコンピュータに実行させるプログラムであって、前記TSパケットに含まれているアダプテーションフィールドに記述されている不連続インジケータが、所定のシステムクロック周波数を基準としたPCRが不連続になることを表している場合、前記不連続インジケータが含まれているTSパケットの位置情報を取得し、前記TSパケットに含まれているアダプテーションフィールドに前記PCRが埋め込まれている場合、前記TSパケットからPCRの値を抽出するとともに、前記PCRが埋め込まれているTSパケットの位置情報を取得し、前記PCRが不連続になることを表している不連続インジケータが含まれているTSパケットの位置情報、前記PCRの値、および前記PCRが埋め込まれているTSパケットの位置情報を用いて、隣り合うTSパケット同士の入力タイミングの間隔を算出し、前記TSパケット同士の入力タイミングの間隔に基づいて、前記TSパケットの入力タイミングを算出し、前記入力タイミングを表すタイムスタンプを複数の前記TSパケットにそれぞれ付加するステップを含む。
本発明の一側面においては、TSパケットに含まれているアダプテーションフィールドに記述されている不連続インジケータが、所定のシステムクロック周波数を基準としたPCRが不連続になることを表している場合、不連続インジケータが含まれているTSパケットの位置情報が取得される。また、TSパケットに含まれているアダプテーションフィールドにPCRが埋め込まれている場合、TSパケットからPCRの値が抽出されるとともに、PCRが埋め込まれているTSパケットの位置情報が取得される。そして、PCRが不連続になることを表している不連続インジケータが含まれているTSパケットの位置情報、PCRの値、およびPCRが埋め込まれているTSパケットの位置情報を用いて、隣り合うTSパケット同士の入力タイミングの間隔が算出される。さらに、TSパケット同士の入力タイミングの間隔に基づいて、TSパケットの入力タイミングが算出され、入力タイミングを表すタイムスタンプが複数のTSパケットにそれぞれ付加される。
本発明の一側面によれば、MPEG2-TSの再生が正常に行われるようなタイムスタンプをTSパケットに付加することができる。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
図1は、本発明を適用したタイムスタンプ付加装置の一実施の形態の構成例を示すブロック図である。
図1において、タイムスタンプ付加装置11は、メモリ12、CPU(Central Processing Unit)13、パケット解析部14、時間間隔算出部15、タイムスタンプ算出部16、およびシステムバス17から構成される。
CPU13には、メモリ12が接続されており、CPU13、パケット解析部14、およびタイムスタンプ算出部16が、システムバス17を介して互いに接続されている。また、CPU13が、ソフトウェアを実行することにより、時間間隔算出部15の機能が実現される。
メモリ12には、タイムスタンプを付加する処理の対象となるMPEG2-TS(以下、適宜、タイムスタンプ無しMPEG2-TSと称する)が、あらかじめ記憶されている。また、メモリ12には、タイムスタンプ無しMPEG2-TSにタイムスタンプを付加する処理が施され、その結果得られるタイムスタンプ付きMPEG2-TSが記憶される。
CPU13は、タイムスタンプ無しMPEG2-TSをメモリ12から読み出し、システムバス17を介して、パケット解析部14に供給する。
パケット解析部14は、不連続検出部18およびPCR検出部19を備えて構成されるハードウェア機能ブロックであり、パケット解析部14において、CPU13から供給されるMPEG2-TSのTSパケットが、先頭から順次解析される。
例えば、パケット解析部14は、MPEG2-TSの所定のTSパケット(PIDが0であるTSパケット)に示されているPATを解析して、PMTが含まれているTSパケットのPIDを検出し、このPIDにより識別されるTSパケットに含まれているPMTを解析して、PCRが埋め込まれる属性のTSパケットであることを示すPID(PCR_PID)を検出する。
または、例えば、メモリ12に、PMTが含まれているTSパケットのPIDや、PCRが埋め込まれているTSパケットのPIDが、あらかじめ記憶されているときには、パケット解析部14は、それらのPIDに基づいて、PCRが埋め込まれているTSパケットを検出する。なお、メモリ12に記憶されるPMTやPCRが含まれているTSパケットのPIDは、例えば、ユーザが任意に設定したり、CPU13により実行される他のアプリケーションが任意に設定したりすることができる。
そして、パケット解析部14は、PCRが埋め込まれる属性のTSパケットであることを示すPIDにより識別されるTSパケット(PID=PCR_PIDであるTSパケット)を解析し、そのTSパケットに、MPEG2-TSに関する付加情報などが記述されているアダプテーションフィールドがあるか否か(adaptation_field_controlが10または11であり、かつ、adaptation_field_lengthが0であるか否か)を判定する。
また、パケット解析部14は、CPU13から供給されるMPEG2-TSの全てのTSパケットの解析が完了すると、その旨を表す解析完了通知を、システムバス17を介して、CPU13に供給する。
不連続検出部18は、パケット解析部14によりアダプテーションフィールドがあると判定されたTSパケットに対して処理を行い、そのアダプテーションフィールドに含まれている不連続インジケータ(discontinuity indicator)が1である場合、そのTSパケットの位置情報を取得する。不連続インジケータが1であるTSパケットの位置情報としては、例えば、直前にPCRが検出されたTSパケットから不連続インジケータが1であるTSパケットまでのパケット数を用いることができる。
また、不連続検出部18は、不連続インジケータが1であるTSパケットの位置情報を、システムバス17を介して、CPU13に供給する。例えば、不連続検出部18は、不連続インジケータが1であるTSパケットを検出するたびに、そのTSパケットの位置情報をCPU13に供給することができる。また、不連続検出部18は、MPEG2-TSの全てのTSパケットの解析後、パケット解析部14からCPU13に供給される解析完了通知とともに、不連続インジケータが1であるTSパケットの位置情報をCPU13に供給することができる。
なお、MPEG2-TSでは、PCRの不連続が生じる場合、例えば、その次にPCRを含むTSパケットにおいてPCR値がリセットされている場合、不連続インジケータを1にすることが規定されている(ISO/IEC 1318-1:2000(E)参照)。例えば、MPEG2-TSにおいて、PCRが埋め込まれているTSパケットの不連続インジケータが1である場合、新しいタイムベースとなるPCRが埋め込まれているTSパケットが現れるまで、デコーダは、直前のPCRが埋め込まれているTSパケット間で得られた時間を用いてデコードを行う。また、新しいタイムベースとなるPCRが埋め込まれているTSパケットが現れるまで、不連続インジケータは1のままとする。
PCR検出部19は、パケット解析部14によりアダプテーションフィールドがあると判定されたTSパケットに対して処理を行い、TSパケットのアダプテーションフィールドのオプショナルフィールドにPCR値が記述されているか否かを表すフラグ(PCR_flag)が、PCR値が記述されていることを表す1である場合、そのTSパケットからPCR値を抽出するとともに、そのTSパケットの位置情報を取得する。TSパケットの位置情報としては、例えば、先頭のTSパケットから最初にPCRが検出されたTSパケットまでのパケット数、PCRが検出されたTSパケット間のパケット数、および最後にPCRが検出されたTSパケットから最後尾のTSパケットまでのパケット数を用いることができる。
また、PCR検出部19は、TSパケットから抽出したPCR値と、PCR_flagが1であるTSパケットの位置情報を、システムバス17を介して、CPU13に供給する。例えば、PCR検出部19は、PCR_flagが1であるTSパケットを検出するたびに、そのTSパケットの位置情報とPCR値とをCPU13に供給することができる。また、不連続検出部18は、MPEG2-TSの全てのTSパケットの解析後、パケット解析部14からCPU13に供給される解析完了通知とともに、TSパケットの位置情報とPCR値とをCPU13に供給することができる。
時間間隔算出部15は、不連続検出部18がCPU13に供給した不連続インジケータが1であるTSパケットの位置情報、並びに、PCR検出部19がCPU13に供給したPCR_flagが1であるTSパケット位置情報およびPCR値に基づいて、隣り合うTSパケット同士の時間間隔(例えば、MPEG2-TSをデコードするデコーダへTSパケットが入力される入力タイミング(時刻)の間隔)などを算出し、その時間間隔を含む時間間隔データを取得する。CPU13は、時間間隔算出部15が取得する時間間隔データと、メモリ12から読み出したタイムスタンプ無しMPEG2-TSとを、システムバス17を介して、タイムスタンプ算出部16に供給する。
タイムスタンプ算出部16は、CPU13から供給される時間間隔データを用い、所定の式を演算して各TSパケットの入力タイミングを表す、例えば、4バイトのタイプスタンプを算出する。そして、タイムスタンプ算出部16は、そのタイムスタンプを、CPU13から供給されるタイムスタンプ無しMPEG2-TSのTSパケットにそれぞれ付加し、タイムスタンプ付きMPEG2-TSを取得する。その後、タイムスタンプ算出部16は、タイムスタンプ付きMPEG2-TSを、システムバス17を介してCPU13に供給し、CPU13は、タイムスタンプ付きMPEG2-TSをメモリ12に記憶させる。
次に、図2は、MPEG2-TSの構成例を示す図である。
図2の上側には、タイムスタンプ付加装置11に入力されるタイムスタンプ無しMPEG2-TSが示されており、下側には、タイムスタンプを付加する処理が施されて出力されるタイムスタンプ付きMPEG2-TSが示されている。
タイムスタンプ無しMPEG2-TSは、188バイトのTSパケットが、複数、連続して構成されている。タイムスタンプ付きMPEG2-TSは、各TSパケットの先頭に、4バイトのタイムスタンプが付加された192バイトのタイムスタンプ付きTSパケットが、複数、連続して構成される。
次に、図3は、図1のタイムスタンプ付加装置11が、MPEG2-TSにタイムスタンプを付加する処理を説明するフローチャートである。
初期状態として、メモリ12には、タイムスタンプ無しMPEG2-TSが記憶されており、ステップS11において、CPU13は、メモリ12からタイムスタンプ無しMPEG2-TSを読み出し、処理はステップS12に進む。
ステップS12において、CPU13は、ステップS11でメモリ12から読み出したタイムスタンプ無しMPEG2-TSを、パケット解析部14に供給する。その後、CPU13は、パケット解析部14から解析完了通知が送信されてくるまで処理を待機し、解析完了通知が送信されてくると、処理はステップS13に進む。
ステップS13において、CPU13は、パケット解析部14から送信される解析完了通知を受信する。また、上述したように、CPU13には、解析完了通知とともに、不連続インジケータが1であるTSパケットの位置情報が不連続検出部18から供給され、PCR_flagが1であるTSパケットの位置情報およびPCR値がPCR検出部19から供給される。
ステップS13の処理後、処理はステップS14に進み、CPU13では、時間間隔算出部15が、ステップS13で解析完了通知とともに供給される不連続インジケータが1であるTSパケットの位置情報、並びに、PCR_flagが1であるTSパケットの位置情報およびPCR値を用いて、隣り合うTSパケット同士の時間間隔などを算出し、その時間間隔を含む時間間隔データを取得する。
ステップS14の処理後、処理はステップS15に進み、CPU13は、ステップS14で時間間隔算出部15が取得した時間間隔データと、メモリ12から読み出したタイムスタンプ無しMPEG2-TSとをタイムスタンプ算出部16に供給する。その後、CPU13は、タイムスタンプ算出部16からタイムスタンプ付きMPEG2-TSが送信されてくるまで、処理を待機し、タイムスタンプ付きMPEG2-TSが送信されてくると、処理はステップS16に進む。
ステップS16において、CPU13は、タイムスタンプ算出部16から送信されてくるタイムスタンプ付きMPEG2-TSを受信し、処理はステップS17に進む。
ステップS17において、CPU13は、ステップS16で受信したタイムスタンプ付きMPEG2-TSをメモリ12に記憶させ、CPU13での処理は終了する。
一方、パケット解析部14は、ステップS12でCPU13が、タイムスタンプ無しMPEG2-TSを送信すると、ステップS21において、そのタイムスタンプ無しMPEG2-TSを受信する。
ステップS21の処理後、処理はステップS22に進み、パケット解析部14は、タイムスタンプ無しMPEG2-TSを解析するパケット解析処理(後述する図4のフローチャートの処理)を行う。パケット解析処理では、不連続検出部18が、不連続インジケータが1であるTSパケットの位置情報を取得し、PCR検出部19が、PCR_flagが1であるTSパケットからPCR値を抽出するとともに、そのTSパケットの位置情報を取得する。
ステップS22のPCR検出処理の処理後、処理はステップS23に進み、パケット解析部14は、解析完了通知とともに、不連続インジケータが1であるTSパケットの位置情報、並びに、PCR_flagが1であるTSパケットの位置情報およびPCR値を、CPU13に送信し、パケット解析部14での処理は終了する。
一方、タイムスタンプ算出部16は、ステップS15でCPU13が、タイムスタンプ無しMPEG2-TSと時間間隔データとを送信すると、ステップS31において、そのタイムスタンプ無しMPEG2-TSと時間間隔データとを受信する。
ステップS31の処理後、処理はステップS32に進み、タイムスタンプ算出部16は、ステップS31で受信した時間間隔データを用い、所定の式を演算して各TSパケットのタイプスタンプを算出する。そして、タイムスタンプ算出部16は、図2に示したように、各TSパケットの先頭にタイムスタンプを付加し、タイムスタンプ付きMPEG2-TSを取得して、処理はステップS33に進む。
ステップS33において、タイムスタンプ算出部16は、ステップS32で取得したタイムスタンプ付きMPEG2-TSをCPU13に供給し、タイムスタンプ算出部16での処理は終了する。
次に、図4は、図3のステップS22のパケット解析処理を説明するフローチャートである。
パケット解析処理では、パケット解析部14は、CPU13から供給されるMPEG2-TSの先頭のTSパケットから、順次、処理の対象として解析を行い、ステップS41において、処理の対象となっているTSパケットのPIDが、PCRが埋め込まれる属性のTSパケットであることを示すPCR_PIDであるか否かを判定する。
ステップS41において、パケット解析部14が、TSパケットのPIDがPCR_PIDであると判定した場合、処理はステップS42に進む。
ステップS42において、パケット解析部14は、ステップS41で解析したTSパケットにアダプテーションフィールド(adaptation_field)があるか否かをし、TSパケットにアダプテーションフィールドがあると判定した場合、処理はステップS43に進む。
ステップS43において、不連続検出部18は、ステップS42でパケット解析部14によりアダプテーションフィールドがあると判定されたTSパケットにおいて、そのアダプテーションフィールドに含まれている不連続インジケータ(discontinuity indicator)が1であるか否かを判定する。
ステップS43において、不連続検出部18が、TSパケットのアダプテーションフィールドに含まれている不連続インジケータが1であると判定した場合、処理はステップS44に進む。
ステップS44において、不連続検出部18は、不連続インジケータが1であるTSパケットの位置情報を取得する。例えば、不連続検出部18は、直前にPCR_flagが1であったTSパケットからのパケット数をカウントし、カウントを開始してから不連続インジケータが1であるTSパケットまでのパケット数を、不連続インジケータが1であるTSパケットの位置情報として取得する。
ステップS44の処理後、または、ステップS43において、不連続検出部18が、TSパケットのアダプテーションフィールドに含まれている不連続インジケータが1でないと判定した場合、処理はステップS45に進む。
ステップS45において、PCR検出部19は、ステップS42で、ステップS42でパケット解析部14によりアダプテーションフィールドがあると判定されたTSパケットにおいて、そのアダプテーションフィールドのオプショナルフィールドにPCR値が記述されているか否かを表すフラグ(PCR_flag)が、PCR値が記述されていることを表す1であるか否かを判定する。
ステップS45において、PCR検出部19が、フラグが1であると判定した場合、処理はステップS46に進み、TSパケットのアダプテーションフィールドのオプショナルフィールドに記述されているPCR値を抽出し、処理はステップS47に進む。
ステップS47において、PCR検出部19は、PCR_flagが1であるTSパケットの位置情報を取得する。例えば、PCR検出部19は、直前にPCR_flagが1であったTSパケットからのパケット数をカウントし、カウントを開始してからPCR_flagが1であるTSパケットまでのパケット数を、PCR_flagが1であるTSパケットの位置情報として取得する。
ステップS47の処理後、処理はステップS48に進む。また、ステップS41において、パケット解析部14が、TSパケットのPIDがPCR_PIDでないと判定した場合、ステップS42において、パケット解析部14が、TSパケットにアダプテーションフィールドがないと判定した場合、または、ステップS45において、PCR検出部19が、フラグが1でないと判定した場合、処理はステップS48に進む。
ステップS48において、パケット解析部14は、MPEG2-TSが終了したか否かを判定する。例えば、MPEG2-TSの先頭のTSパケットから順に処理の対象としている場合、最後尾のTSパケットが処理の対象とされたか否かを判定する。
ステップS48において、パケット解析部14が、MPEG2-TSが終了していないと判定した場合、処理はステップS49に進む。
ステップS49において、パケット解析部14は、現在処理の対象となったTSパケットの次のTSパケットを処理の対象とし、処理はステップS41に戻り、新たに処理の対象となったTSパケットに対して、以下、同様の処理が繰り返される。
一方、ステップS48において、パケット解析部14が、MPEG2-TSが終了したと判定した場合、処理は終了される。
次に、図5を参照して、時間間隔およびタイムスタンプ値を算出する処理について説明する。
図5には、処理の対象となるMPEG2-TSが示されており、MPEG2-TSは、複数のTSパケットが連続して構成されている。
図5において、斜線でハッチングが施されているTSパケットは、パケット解析部14によりPIDがPCR_PIDであると判定されたTSパケット、即ち、PIDが埋め込まれる属性のTSパケットを表している。図5のMPEG2-TSでは、8つのTSパケットPCR1乃至PCR8が、PIDが埋め込まれる属性であるとされている。また、図5において、TSパケットPCR4とPCR5との間においてドットでハッチングが施されているTSパケットαは、その直前のTSパケットとの間に、例えば、ユーザによるMPEG2-TSの編集に伴うシーンのカットが入り、TSパケットαにおいて、シーンが切り替わっていることを表している。
このように、TSパケットαでシーンが切り替わっていることにより、TSパケットαの前にPCR値が記述されているTSパケットPCR4の不連続インジケータ(discontinuity indicator)は1となる。
また、図5の例では、TSパケットPCR5は、PCR_flagが0であり、TSパケットPCR5にはPCR値が記述されていないので、TSパケットαの次にPCR値が記述されているTSパケットはTSパケットPCR6となる。そして、TSパケットαでシーンが切り替わっているので、TSパケットPCR6のPCR値は、TSパケットPCR4までのPCR値に対して、不連続となっている。なお、TSパケットPCR5は、PIDがPCR_PIDであるが、PCR_flagが0であるため、不連続インジケータが1となっている。
そして、時間間隔算出部15は、MPEG2-TSを所定の処理ブロックで分割し、その処理ブロックごとに、隣り合うTSパケット同士の時間間隔を算出する処理を行う。図5の例では、処理ブロックU1乃至U5ごとに処理が行われる。
例えば、時間間隔算出部15は、基本的に、PIDが埋め込まれる属性のTSパケットにより処理ブロックを区切るが、先頭の処理ブロックU1には、最初のTSパケットPCR1より前のTSパケットが含まれ、最後尾の処理ブロックU5には、最後のTSパケットPCR8より後のTSパケットが含まれる。
また、不連続インジケータが1であるTSパケットは、処理ブロックの区切りとしては用いられず、図5に示すように、処理ブロックU3は、TSパケットPCR3から、TSパケットPCR3の次に不連続インジケータが1でないTSパケットであるTSパケットPCR6の直前のTSパケットまでのTSパケットが含まれる。
そして、時間間隔算出部15は、処理ブロックU1乃至U5ごとに、隣り合うTSパケット同士の時間間隔を算出する処理を行う。
例えば、時間間隔算出部15は、先頭の処理ブロックU1において、TSパケットPCR1のPCR値、TSパケットPCR2のPCR値、およびTSパケットPCR2の位置情報(即ち、TSパケットPCR1とTSパケットPCR2との間のパケット数N1(但し、TSパケットPCR1を含む))に基づいて、処理ブロックU1の各TSパケット間の時間間隔データを求める。即ち、先頭のTSパケットからTSパケットPCR1まで各TSパケットの時間間隔は、TSパケットPCR1からTSパケットPCR2までの各TSパケットの時間間隔と同様の値となる。
また、時間間隔算出部15は、不連続インジケータが1であるTSパケットを含まない処理ブロックにおいては、その処理ブロックを区切るTSパケットのPCR値と、その処理ブロックの直後のTSパケットの位置情報に基づいて時間間隔データを求める。例えば、時間間隔算出部15は、処理ブロックU2において、TSパケットPCR2のPCR値、TSパケットPCR3のPCR値、およびTSパケットPCR3の位置情報(即ち、TSパケットPCR2とTSパケットPCR3との間のパケット数N2(但し、TSパケットPCR2を含む))に基づいて時間間隔データを求める。同様に、処理ブロックU4において、TSパケットPCR6のPCR値、TSパケットPCR7のPCR値、およびTSパケットPCR7の位置情報に基づいて時間間隔データを求める。
また、時間間隔算出部15は、不連続インジケータが1であるTSパケットを含む処理ブロックにおいて、その処理ブロックの先頭のTSパケットのPCR値と、そのTSパケットの次にPCR値が抽出されたTSパケットのPCR値と、このTSパケットの位置情報に基づいて時間間隔データを求める。例えば、時間間隔算出部15は、処理ブロックU3において、TSパケットPCR3のPCR値、TSパケットPCR4のPCR値、およびTSパケットPCR4の位置情報(即ち、TSパケットPCR3とTSパケットPCR4との間のパケット数(但し、TSパケットPCR3を含む))に基づいて時間間隔データを求める。即ち、TSパケットPCR4からTSパケットPCR6まで各TSパケットの時間間隔は、TSパケットPCR3からTSパケットPCR4までの各TSパケットの時間間隔と同様の値となる。
また、時間間隔算出部15は、最後尾の処理ブロックU6において、TSパケットPCR7のPCR値、TSパケットPCR8のPCR値、およびTSパケットPCR8の位置情報(即ち、TSパケットPCR7とTSパケットPCR8との間のパケット数N5(但し、TSパケットPCR7を含む))に基づいて、処理ブロックU5の各TSパケット間の時間間隔データを求める。即ち、TSパケットPCR8から最後のTSパケットまで各TSパケットの時間間隔は、TSパケットPCR7からTSパケットPCR8までの各TSパケットの時間間隔と同様の値となる。
上述したように、PCR検出部19により、PCR値と位置情報とが取得され、時間間隔算出部15が、PCR値とパケット数に基づいて、時間間隔データを算出する。
n番目の処理ブロックUn(図5の例では、n=1〜5)において、TSパケットPCRnのPCR値をPCRnとし、隣り合うTSパケット同士の時間間隔(整数値)をQnとすると、時間間隔Qnは、次の式(1)で表される。
Qn=(PCRn+1−PCRn)/Nn
・・・(1)
・・・(1)
ただし、Nnは、n番目の処理ブロックUnにおいて、時間間隔の算出に用いられるパケット数である。また、処理ブロックUnにおいて、隣り合うTSパケット同士の時間間隔Qnの余剰をRnとすると、余剰Rnは、次の式(2)で表される。
Rn=(PCRn+1−PCRn)modNn
・・・(2)
・・・(2)
ただし、式(2)において、modは、(PCRn+1−PCRn)をパケット数Nnで除算し、その演算結果として余剰を返す演算子である。
ここで、処理ブロックUnのm番目のTSパケットのタイムスタンプ値をVn[m]とする。
まず、1番目の処理ブロックU1の先頭のTSパケットについてのタイムスタンプ値V1[1]は、任意の値に設定される。なお、1番目の処理ブロックU1における時間間隔Q1は、(PCR2−PCR1)/N1であり、処理ブロックU1における余剰R1は、(PCR2−PCR1)modN1である。
そして、2番目の処理ブロックU2の先頭のTSパケットについてのタイムスタンプ値V2[1]は、次の式(3)で表される。
V2[1]=V1[1]+Q1(N0+N1)+(R1(N0+N1)+C1[1])/N1
=V1[1]+((PCR2−PCR1)×(N0+N1)+C1[1])/N1
・・・(3)
=V1[1]+((PCR2−PCR1)×(N0+N1)+C1[1])/N1
・・・(3)
ただし、式(3)においてC1[1]は、処理ブロックU1の先頭のTSパケットについてのタイムスタンプ値V1[1]のキャリーオーバを表し、次の式(4)で表される。
C1[1]=(−R1×N0)modN1
・・・(4)
・・・(4)
なお、処理ブロックU2以降において、各処理ブロックUn(n≧2)の先頭のTSパケットについてのタイムスタンプ値Vn[1]のキャリーオーバCn[1]は、0である。また、2番目の処理ブロックU2における時間間隔Q2は、(PCR3−PCR2)/N2であり、処理ブロックU2における余剰R2は、(PCR3−PCR2)modN2である。
そして、3番目以降の処理ブロックUn(n≧3)の先頭のTSパケットについてのタイムスタンプ値Vn[1]は、次の式(5)で表される。
Vn[1]=Vn-1[1]+(PCRn−PCRn-1)
・・・(5)
・・・(5)
時間間隔算出部15は、式(1)乃至式(5)を演算することにより、処理ブロックUnにおける時間間隔Qn、時間間隔Qnの余剰Rn、および処理ブロックUnの先頭のTSパケットのタイムスタンプ値Vn[1]を算出する。そして、時間間隔算出部15は、時間間隔Qn、余剰Rn、およびタイムスタンプ値Vn[1]を、時間間隔データとして取得し、タイムスタンプ算出部16に供給する。
このように時間間隔算出部15が時間間隔データを算出することにより、MPEG2-TSの先頭のTSパケットから、最初のPCR値を取得するまでのTSパケット(図5のTSパケットPCR1)までの各TSパケット、および、最後のPCR値を取得したTSパケット(図5のTSパケットPCR8)から、最後尾のTSパケットまでの各TSパケットに適切なタイムスタンプを付加することができる。
また、PCR値が不連続になることによりタイムベースの切り替わりが生じる箇所を含む処理ブロック(図5のTSパケットαを含む処理ブロックU3)においても、その直前のPCR値が抽出されたTSパケットどうしの間の時間間隔と同様に、例えば、図5を参照して説明したように、TSパケットPCR4からTSパケットPCR6まで各TSパケットの時間間隔を、TSパケットPCR3からTSパケットPCR4までの各TSパケットの時間間隔と同様の値とすることにより、適切なタイムスタンプを付加することができる。即ち、TSパケットPCR6のPCR値がTSパケットPCR4のPCR値より著しく大きく(もしくは小さく)なる場合においても、処理ブロックU3では、TSパケットPCR3のPCR値とTSパケットPCR6のPCR値とを用いるのではなく、TSパケットPCR3のPCR値とTSパケットPCR4のPCR値を用いて時間間隔を算出するので、一定の間隔の適切なタイムスタンプを付加することができる。また、処理ブロックU3では、TSパケットPCR4の位置情報(即ち、PCRが不連続になることを表している不連続インジケータが含まれているTSパケットの位置情報)、つまり、TSパケットPCR3からTSパケットPCR4までのパケット数が、時間間隔の算出に用いられる。
このような時間間隔データが、時間間隔算出部15からタイムスタンプ算出部16に供給され、タイムスタンプ算出部16は、時間間隔データを用いて、各処理ブロックの各TSパケットのタイムスタンプ値を算出して、それぞれのTSパケットに付加する。
処理ブロックUnのm番目のTSパケットのタイムスタンプ値Vn[m]は、(Cn[m-1]+Rn)≧Nnであるとき、次の式(6)で表され、(Cn[m-1]+Rn)<Nnであるとき、次の式(7)で表される。
Vn[m]=Vn[m-1]+Qn+1
・・・(6)
Vn[m]=Vn[m-1]+Qn
・・・(7)
・・・(6)
Vn[m]=Vn[m-1]+Qn
・・・(7)
また、処理ブロックUnのm番目のTSパケットについてのタイムスタンプ値Vn[m]のキャリーオーバCn[m]は、(Cn[m-1]+Rn)≧Nnであるとき、次の式(8)で表され、(Cn[m-1]+Rn)<Nnであるとき、次の式(9)で表される。
Cn[m]=Cn[m-1]+Rn−Nn
・・・(8)
Cn[m]=Cn[m-1]+Rn
・・・(9)
・・・(8)
Cn[m]=Cn[m-1]+Rn
・・・(9)
ただし、式(6)乃至式(9)において、m>2である。
タイムスタンプ算出部16は、時間間隔算出部15から時間間隔データとして供給される時間間隔Qn、余剰Rn、およびタイムスタンプ値Vn[1]を用いて、式(6)乃至式(9)を演算することにより、タイムスタンプ値Vn[m]を算出し、処理ブロックUnのm番目のTSパケットに付加する。
ここで、例えば、キャリーオーバCn[m]を考慮せずに、時間間隔Qnを単に加算することによりタイムスタンプ値を算出する場合には、余剰が積み重なることにより、PCR値とタイムスタンプ値とのズレが大きくなる。これに対し、キャリーオーバCn[m]を考慮することにより、このズレを最小にすることができる。
即ち、キャリーオーバCn[m]がパケット数Nnより大となるときには、タイムスタンプ値Vn[m]が、キャリーオーバCn[m]がパケット数Nn未満であるときよりも、1だけ多くなるようにするとともに、キャリーオーバCn[m]からパケット数Nnを減算することで、PCR値とタイムスタンプ値とのズレが、1以上に大きくなることが回避され、タイムスタンプを均等に割り付けることができる。
また、式(6)乃至式(9)に示すように、タイムスタンプ算出部16が行う処理は、キャリーオーバと時間間隔とを比較して、直前のタイムスタンプ値に時間間隔を加算し、新たなキャリーオーバを算出するだけの処理である。従って、タイムスタンプ算出部16をハードウェアで実現すると、その回路は、例えば、除算などを行う必要がある処理を実行する回路などに比べて、ステップ数を少なくし、非常に小さなハードウェアで構成することができるとともに、高速でタイムスタンプを付加することができる。
即ち、タイムスタンプ算出部16をハードウェアで実現し、CPU13が、ソフトウェアを実行することにより、時間間隔算出部15の機能を実現することで、時間間隔や、その余剰などを算出する処理は、CPU13で行い、キャリーオーバと時間間隔とを比較して、直前のタイムスタンプ値に時間間隔を加算し、新たなキャリーオーバを算出する処理は、タイムスタンプ算出部16で行うというように、ハードウェアとソフトウェアとで、効率よく処理を分担して行うことができる。
また、タイムスタンプ算出部16をハードウェアで実現することで、CPUにかかる負担が大きくなることを回避することができ、例えば、ハードディスクレコーダなどの組み込み機器に搭載されている処理能力の低いCPUでも、処理に占有されることを回避することができるので、高性能なCPUを搭載してタイムスタンプを付加する処理の負担が大きくなることを解決する場合に比べて、コストを低減させることができる。
そして、以上のようにタイムスタンプをTSパケットに付加する処理を行うことにより、例えば、テレビジョン放送されたコンテンツを、録画機器などにおいてMPEG2-TSで記録し、そのコンテンツをホームネットワークへ送出しても、タイムスタンプに基づいた入力タイミングでデコーダにTSパケットが入力されるので、映像に乱れ(破綻)が生じることなく、MPEG2-TSを正常に再生することができる。即ち、ユーザにより編集されてPCR値が不連続になっても、MPEG2-TSを正常に再生することができるような適切なタイムスタンプをTSパケットに付加することができる。
なお、本実施の形態では、CPU13が、メモリ12からMPEG2-TSを読み出してタイムスタンプ算出部16に供給するとしたが、例えば、CPU13が、MPEG2-TSが記憶されているメモリ12のアドレスをタイムスタンプ算出部16に供給し、タイムスタンプ算出部16がメモリ12からMPEG2-TSを読み出すとともに、タイムスタンプを付加したMPEG2-TSをメモリ12に書き込むDMA(Direct Memory Access)により処理を行うようにしてもよい。DMAにより処理を行うことで、より高速にタイムスタンプを付加する処理を行うことができる。
なお、PCRが検出されたTSパケットの位置情報として用いられる、最後にPCRが検出されたTSパケットから最後尾のTSパケットまでのパケット数は、パケット解析部14からCPU13に供給しなくてもよい。即ち、CPU13にとって、ストリーム長が既知であるので、CPU13は、ストリーム長から、最後にPCRが検出されたTSパケットから最後尾のTSパケットまでのパケット数(図6のパケット数N6)を取得することができる。
また、パケット解析部14が、不連続検出部18とPCR検出部19とを、別々のハードウェア機能ブロックとして備える構成の他に、不連続検出部18がPCR検出部19に含まれるような1つのハードウェア機能ブロックとして構成されていてもよい。この場合、PCR検出部19が、PID=PCR_PIDの判定、および、アダプテーションフィールドの有無の判定を行うことができる。即ち、不連続検出部18とPCR検出部19とで、PID=PCR_PIDの判定、および、アダプテーションフィールドの有無の判定を共有するように構成されていればよい。
このように、不連続検出部18とPCR検出部19とで、PID=PCR_PIDの判定、および、アダプテーションフィールドの有無の判定を共有することにより、それぞれの判定を別々のハードウェア機能ブロックが行う場合より、処理の負担を軽くすることができる。もちろん、不連続検出部18とPCR検出部19とが、PID=PCR_PIDの判定、および、アダプテーションフィールドの有無の判定をそれぞれに行ってもよい。
また、PCRが検出されたTSパケットの位置情報としては、上述したようなPCRが検出されたTSパケット間のパケット数などの他、PCRが検出されたTSパケットの先頭からのバイト数や、先頭からのパケット数などを用いることができる。同様に、不連続インジケータが1であるTSパケットの位置情報として、不連続インジケータが1であるTSパケットの先頭からのバイト数や、先頭からのパケット数などを用いることができる。なお、不連続検出部18とPCR検出部19とは、TSパケットの位置情報としては、同様の種類のものを用いる。
なお、上述した実施の形態では、時間間隔算出部15の機能は、CPU13がソフトウェアを実行することにより実現し、パケット解析部14やタイムスタンプ算出部16の機能は、それぞれハードウェアにより実行するとしたが、パケット解析部14やタイムスタンプ算出部16の機能も、CPU13がソフトウェアを実行することにより実現することができる。
一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図6は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)101,ROM(Read Only Memory)102,RAM(Random Access Memory)103は、バス104により相互に接続されている。
バス104には、さらに、入出力インタフェース105が接続されている。入出力インタフェース105には、キーボード、マウス、マイクロホンなどよりなる入力部106、ディスプレイ、スピーカなどよりなる出力部107、ハードディスクや不揮発性のメモリなどよりなる記憶部108、ネットワークインタフェースなどよりなる通信部109、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア111を駆動するドライブ110が接続されている。
以上のように構成されるコンピュータでは、CPU101が、例えば、記憶部108に記憶されているプログラムを、入出力インタフェース105及びバス104を介して、RAM103にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU101)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア111に記録して、あるいは、ローカルエリアネットワーク、インタネット、ディジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア111をドライブ110に装着することにより、入出力インタフェース105を介して、記憶部108にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部109で受信し、記憶部108にインストールすることができる。その他、プログラムは、ROM102や記憶部108に、あらかじめインストールしておくことができる。
また、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。また、プログラムは、1のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
11 タイムスタンプ付加装置, 12 メモリ, 13 CPU, 14 パケット解析部, 15 時間間隔算出部, 16 タイムスタンプ算出部, 17 システムバス, 18 不連続検出部, 19 PCR検出部
Claims (9)
- MPEG2-TS(Moving Picture Experts Group 2 Transport Stream)に含まれる複数のTS(Transport Stream)パケットに、前記MPEG2-TSをデコードするデコーダへの入力タイミングを表すタイムスタンプをそれぞれ付加するタイムスタンプ付加装置において、
前記TSパケットに含まれているアダプテーションフィールドに記述されている不連続インジケータが、所定のシステムクロック周波数を基準としたPCR(Program Clock Reference)が不連続になることを表している場合、前記不連続インジケータが含まれているTSパケットの位置情報を取得する不連続検出手段と、
前記TSパケットに含まれているアダプテーションフィールドに前記PCRが埋め込まれている場合、前記TSパケットからPCRの値を抽出するとともに、前記PCRが埋め込まれているTSパケットの位置情報を取得するPCR検出手段と、
前記不連続検出手段が取得した前記PCRが不連続になることを表している不連続インジケータが含まれているTSパケットの位置情報、前記PCR検出手段が抽出した前記PCRの値、および前記PCR検出手段が取得した前記PCRが埋め込まれているTSパケットの位置情報を用いて、隣り合うTSパケット同士の入力タイミングの間隔を算出する時間間隔算出手段と、
前記TSパケット同士の入力タイミングの間隔に基づいて、前記TSパケットの入力タイミングを算出し、前記入力タイミングを表すタイムスタンプを複数の前記TSパケットにそれぞれ付加するタイムスタンプ算出手段と
を備えるタイムスタンプ付加装置。 - 前記時間間隔算出手段は、
前記PCRが不連続になることを表している不連続インジケータが含まれているTSパケットの位置情報に基づいて、前記PCRが不連続になることを表している不連続インジケータが含まれているTSパケットを間に挟み、前記PCRが含まれているTSパケット間における前記入力タイミングの間隔として、
前記PCRが不連続になることを表している不連続インジケータが含まれているTSパケットの直前の前記PCRが含まれているTSパケット間における前記入力タイミングの間隔を用いる
請求項1に記載のタイムスタンプ付加装置。 - 前記時間間隔算出手段は、
前記PCRが含まれている2つのTSパケット間における前記入力タイミングの間隔を、前記2つのTSパケットから抽出されたPCRの値に基づいて算出し、
先頭のTSパケットから、最初に前記PCRが含まれているTSパケットまでの間における前記入力タイミングの間隔を、最初に前記PCRが含まれているTSパケットから抽出されたPCRの値と、最初に前記PCRが含まれているTSパケットの次の前記PCRが含まれているTSパケットから抽出されたPCRの値とに基づいて算出し、
最後に前記PCRが含まれているTSパケットから、最後尾のTSパケットまでにおける前記入力タイミングの間隔を、最後に前記PCRが含まれているTSパケットから抽出されたPCRの値と、最後に前記PCRが含まれているTSパケットの前の前記PCRが含まれているTSパケットから抽出されたPCRの値とに基づいて算出する
請求項1に記載のタイムスタンプ付加装置。 - 複数の前記TSパケットには、それぞれを識別するPID(Packet Identifier)が含まれており、
前記PCR検出手段は、
前記TSパケットのPIDのリストが記述されているPMT(Program Map Table)を伝送するTSパケットのPIDが記述されているPAT(Program Association Table)を解析して、前記PMTを伝送するTSパケットのPIDを検出し、
前記PMTを伝送するTSパケットのPIDにより識別されるTSパケットのPMTを解析して、前記PCRが埋め込まれる属性のTSパケットのPIDを検出し、
前記PCRが埋め込まれる属性のTSパケットのPIDにより識別されるTSパケットにアダプテーションフィールドが含まれているか否かの判定を行い、
前記アダプテーションフィールドが含まれていると判定された前記TSパケットを解析することにより、前記PCRの値を抽出するとともに、前記PCRが埋め込まれているTSパケットの位置情報を取得する
請求項1に記載のタイムスタンプ付加装置。 - 前記不連続検出手段は、前記PCR検出手段により前記アダプテーションフィールドが含まれていると判定された前記TSパケットを解析することにより、前記PCRが不連続になることを表している不連続インジケータが含まれているTSパケットの位置情報を取得する
請求項4に記載のタイムスタンプ付加装置。 - 前記PCR検出手段は、先頭のTSパケットから、最初に前記PCRが含まれているTSパケットの直前のTSパケットまでのパケット数と、前記PCRが含まれているTSパケットの次に前記PCRが含まれているTSパケットの直前のTSパケットまでのパケット数と、最後に前記PCRが含まれているTSパケットから、最後尾のTSパケットまでのパケット数とを前記位置情報として取得し、
前記不連続検出手段は、直前の前記PCRが含まれているTSパケットから、前記PCRが不連続になることを表している不連続インジケータが含まれているTSパケットまでのパケット数を前記位置情報として取得する
請求項1に記載のタイムスタンプ付加装置。 - 前記PCR検出手段は、前記PCRが含まれているTSパケットの前記MPEG2-TSの先頭からのバイト数またはパケット数を、前記位置情報として取得し、
前記不連続検出手段は、前記PCRが不連続になることを表している不連続インジケータが含まれているTSパケットの前記MPEG2-TSの先頭からのバイト数またはパケット数を、前記位置情報として取得する
請求項1に記載のタイムスタンプ付加装置。 - MPEG2-TS(Moving Picture Experts Group 2 Transport Stream)に含まれる複数のTS(Transport Stream)パケットに、前記MPEG2-TSをデコードするデコーダへの入力タイミングを表すタイムスタンプをそれぞれ付加するタイムスタンプ付加方法において、
前記TSパケットに含まれているアダプテーションフィールドに記述されている不連続インジケータが、所定のシステムクロック周波数を基準としたPCR(Program Clock Reference)が不連続になることを表している場合、前記不連続インジケータが含まれているTSパケットの位置情報を取得し、
前記TSパケットに含まれているアダプテーションフィールドに前記PCRが埋め込まれている場合、前記TSパケットからPCRの値を抽出するとともに、前記PCRが埋め込まれているTSパケットの位置情報を取得し、
前記PCRが不連続になることを表している不連続インジケータが含まれているTSパケットの位置情報、前記PCRの値、および前記PCRが埋め込まれているTSパケットの位置情報を用いて、隣り合うTSパケット同士の入力タイミングの間隔を算出し、
前記TSパケット同士の入力タイミングの間隔に基づいて、前記TSパケットの入力タイミングを算出し、前記入力タイミングを表すタイムスタンプを複数の前記TSパケットにそれぞれ付加する
ステップを含むタイムスタンプ付加方法。 - MPEG2-TS(Moving Picture Experts Group 2 Transport Stream)に含まれる複数のTS(Transport Stream)パケットに、前記MPEG2-TSをデコードするデコーダへの入力タイミングを表すタイムスタンプをそれぞれ付加する処理をコンピュータに実行させるプログラムにおいて、
前記TSパケットに含まれているアダプテーションフィールドに記述されている不連続インジケータが、所定のシステムクロック周波数を基準としたPCR(Program Clock Reference)が不連続になることを表している場合、前記不連続インジケータが含まれているTSパケットの位置情報を取得し、
前記TSパケットに含まれているアダプテーションフィールドに前記PCRが埋め込まれている場合、前記TSパケットからPCRの値を抽出するとともに、前記PCRが埋め込まれているTSパケットの位置情報を取得し、
前記PCRが不連続になることを表している不連続インジケータが含まれているTSパケットの位置情報、前記PCRの値、および前記PCRが埋め込まれているTSパケットの位置情報を用いて、隣り合うTSパケット同士の入力タイミングの間隔を算出し、
前記TSパケット同士の入力タイミングの間隔に基づいて、前記TSパケットの入力タイミングを算出し、前記入力タイミングを表すタイムスタンプを複数の前記TSパケットにそれぞれ付加する
ステップを含む処理をコンピュータに実行させるプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008028541A JP4475336B2 (ja) | 2008-02-08 | 2008-02-08 | タイムスタンプ付加装置およびタイムスタンプ付加方法、並びにプログラム |
US12/352,416 US20090201998A1 (en) | 2008-02-08 | 2009-01-12 | Time-stamp addition apparatus, time-stamp addition method and time-stamp addition program |
EP09001447A EP2088781A1 (en) | 2008-02-08 | 2009-02-03 | Time-stamp addition apparatus, time-stamp addition method and time-stamp addition program |
CN2009100062401A CN101505417B (zh) | 2008-02-08 | 2009-02-06 | 时戳附加装置、时戳附加方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008028541A JP4475336B2 (ja) | 2008-02-08 | 2008-02-08 | タイムスタンプ付加装置およびタイムスタンプ付加方法、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009188863A JP2009188863A (ja) | 2009-08-20 |
JP4475336B2 true JP4475336B2 (ja) | 2010-06-09 |
Family
ID=40671271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008028541A Active JP4475336B2 (ja) | 2008-02-08 | 2008-02-08 | タイムスタンプ付加装置およびタイムスタンプ付加方法、並びにプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20090201998A1 (ja) |
EP (1) | EP2088781A1 (ja) |
JP (1) | JP4475336B2 (ja) |
CN (1) | CN101505417B (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9237294B2 (en) * | 2010-03-05 | 2016-01-12 | Sony Corporation | Apparatus and method for replacing a broadcasted advertisement based on both heuristic information and attempts in altering the playback of the advertisement |
KR20130098184A (ko) * | 2010-08-17 | 2013-09-04 | 엘지전자 주식회사 | 디지털 수신기 및 디지털 수신기에서의 컨텐트 처리 방법 |
CN102387486B (zh) * | 2010-09-06 | 2015-02-04 | 中国移动通信集团河北有限公司 | Gprs分割话单的计费方法及装置 |
EP2629530B1 (en) * | 2010-10-16 | 2016-09-07 | LG Electronics Inc. | Digital receiver and method for processing 3d contents in digital receiver |
US9832528B2 (en) | 2010-10-21 | 2017-11-28 | Sony Corporation | System and method for merging network-based content with broadcasted programming content |
US8863198B2 (en) | 2012-08-17 | 2014-10-14 | Flextronics Ap, Llc | Television having silos that animate content source searching and selection |
US11368760B2 (en) | 2012-08-17 | 2022-06-21 | Flextronics Ap, Llc | Applications generating statistics for user behavior |
US20160119675A1 (en) | 2012-09-06 | 2016-04-28 | Flextronics Ap, Llc | Programming user behavior reporting |
JP6320012B2 (ja) * | 2013-12-04 | 2018-05-09 | 株式会社日立情報通信エンジニアリング | 通信装置、通信プログラム、通信方法 |
WO2018151202A1 (ja) * | 2017-02-17 | 2018-08-23 | 日本電信電話株式会社 | センシングシステムおよびタイムスタンプ補正方法 |
JP2020145682A (ja) * | 2020-04-15 | 2020-09-10 | 松野 桂子 | 信号処理装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3400681B2 (ja) | 1997-07-16 | 2003-04-28 | 株式会社日立製作所 | データパケット再多重方法及び再多重装置 |
JP2001285233A (ja) | 2000-03-30 | 2001-10-12 | Matsushita Electric Ind Co Ltd | トランスポートストリーム発生装置 |
GB0007868D0 (en) * | 2000-03-31 | 2000-05-17 | Koninkl Philips Electronics Nv | Methods and apparatus for editing digital video recordings and recordings made by such methods |
US20030066094A1 (en) * | 2001-09-29 | 2003-04-03 | Koninklijke Philips Electronics N.V. | Robust method for recovering a program time base in MPEG-2 transport streams and achieving audio/video sychronization |
KR101151303B1 (ko) * | 2004-12-29 | 2012-06-08 | 엘지전자 주식회사 | 데이터 패킷의 도착시각을 결정하는 방법 및 장치 |
JP4129694B2 (ja) | 2006-07-19 | 2008-08-06 | ソニー株式会社 | 情報処理装置および方法、プログラム、並びに記録媒体 |
JP2008283472A (ja) * | 2007-05-10 | 2008-11-20 | Toshiba Corp | ストリーム再生装置 |
-
2008
- 2008-02-08 JP JP2008028541A patent/JP4475336B2/ja active Active
-
2009
- 2009-01-12 US US12/352,416 patent/US20090201998A1/en not_active Abandoned
- 2009-02-03 EP EP09001447A patent/EP2088781A1/en not_active Withdrawn
- 2009-02-06 CN CN2009100062401A patent/CN101505417B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101505417A (zh) | 2009-08-12 |
CN101505417B (zh) | 2011-08-03 |
US20090201998A1 (en) | 2009-08-13 |
JP2009188863A (ja) | 2009-08-20 |
EP2088781A1 (en) | 2009-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4475336B2 (ja) | タイムスタンプ付加装置およびタイムスタンプ付加方法、並びにプログラム | |
JP7036962B2 (ja) | 再生方法および再生装置 | |
US11849166B2 (en) | Transmitting method, receiving method, transmitting device, and receiving device | |
EP2665261A1 (en) | Content reproduction device, content reproduction method, delivery system, content reproduction program, recording medium, and data structure | |
JP6617809B2 (ja) | 復号装置、復号方法、および復号用プログラム | |
JP2005073253A (ja) | 高信頼復号化装置及び方法 | |
JP6753500B2 (ja) | 受信機器、および復号・提示方法 | |
JP6957186B2 (ja) | 情報処理装置、情報処理方法、プログラム、および記録媒体製造方法 | |
US20240064359A1 (en) | Transmitting method, receiving method, transmitting device, and receiving device | |
US20080232782A1 (en) | Recording apparatus, image reproducing apparatus, and special reproduction method therefor | |
JP4763589B2 (ja) | 再生装置、および、その再生方法 | |
JP2009060324A (ja) | タイムスタンプ付加装置およびタイムスタンプ付加方法、並びにプログラム | |
JP5016335B2 (ja) | 再生装置、および、再生方法 | |
JP6684433B2 (ja) | 送信装置、送信方法、並びに、プログラム | |
JP2010183336A (ja) | 情報処理装置および情報処理方法 | |
JP2017017382A (ja) | データ処理装置、データ処理方法、並びに、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100209 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100216 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100301 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 3 |