JP2010045592A - タイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラム - Google Patents

タイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラム Download PDF

Info

Publication number
JP2010045592A
JP2010045592A JP2008208139A JP2008208139A JP2010045592A JP 2010045592 A JP2010045592 A JP 2010045592A JP 2008208139 A JP2008208139 A JP 2008208139A JP 2008208139 A JP2008208139 A JP 2008208139A JP 2010045592 A JP2010045592 A JP 2010045592A
Authority
JP
Japan
Prior art keywords
pcr
time stamp
packet
detected
value
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.)
Granted
Application number
JP2008208139A
Other languages
English (en)
Other versions
JP4609546B2 (ja
Inventor
Harukazu Komoriya
陽多 小森谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2008208139A priority Critical patent/JP4609546B2/ja
Priority to US12/462,703 priority patent/US7995587B2/en
Priority to CN2009101658972A priority patent/CN101651839B/zh
Publication of JP2010045592A publication Critical patent/JP2010045592A/ja
Application granted granted Critical
Publication of JP4609546B2 publication Critical patent/JP4609546B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4344Remultiplexing of multiplex streams, e.g. by modifying time stamps or remapping the packet identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling 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/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]

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)

Abstract

【課題】 TSパケットに付加されたタイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
【解決手段】 TSの先頭から各TSパケットを探索して得られたPMTを解析してPCR_PIDを検出するPCR_PID検出部108と、TSの先頭からPMTまでに含まれるPCRの値と当該PCRのTS内での位置情報と、PMTからTSの終端までの間の全てのPCRの値と当該各PCRのTS内での位置情報とを検出するPCR検出部109と、タイムスタンプを付加するための時間間隔とタイムスタンプの値とをPCR値に基づいて算出し、各TSパケットに付加するタイムスタンプ用時間間隔算出部110、タイムスタンプ付加部111とを備える。
【選択図】図1

Description

本発明は、MPEG2−TS(MPEG2−Transport Stream)方式で伝送されるタイムスタンプが付加されていないTSパケットに対して、タイムスタンプを付加するタイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラムに関する。
従来、ビデオ符号器で圧縮符号化されたビデオストリームに復号再生時刻情報であるタイムスタンプを付加するとともに前記ビデオストリームを伝送システムに送出するタイムスタンプ付加装置が知られている(特許文献1参照)。
特許第2872104号
しかしながら、かかるタイムスタンプ付加装置は、既に偽のタイムスタンプが付加されたビデオストリームのタイムスタンプを真のタイムスタンプに置換する装置であり、コンテンツを配信する放送機関等で、何らタイムスタンプが付加されていないビデオストリームに新たにタイムスタンプを付加する場合にかかる技術をそのまま適用することは難しい。
かかるビデオストリームを構成するMPEG2−TSは、データレートがハイビジョンのコンテンツであれば15〜25Mbpであり、コンテンツの時間が長ければデータ転送の処理量が増大する可能性がある。
かかる膨大なデータ量を有するビデオストリームを高速に処理するため、ビデオストリームを構成するMPEG2−TSにタイムスタンプを付加するハードウェア規模も大型化する傾向がある。
本発明者のMPEG2−TSに対するタイムスタンプの付加に関する詳細な考察によれば、MPEG2−TSの先頭付近にタイムスタンプが付加されない可能性があるので、MPEG2−TSを構成するTSパケットに付加されたタイムスタンプの正確性が損なわれる可能性がある。
そこで、本発明は、MPEG2−TSを構成するTSパケットに付加されたタイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にするタイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラムを提供することを目的とする。
本発明の骨子は、「TS(Transport Stream)の先頭から検出されたPCR_PID(Program Clock Reference Packet Identifier)までの間に含まれるTSパケットを解析することによって、TSの先頭から検出されたPCR_PIDまでの間に含まれるPCR(Program Clock Reference)を検出すると共に、検出されたPCR_PIDからTSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とを検出」する構成により、MPEG2−TSを構成するTSパケットに付加されたタイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にするという本願に特有の優れた効果を達成することにある。
さて、以上のような本発明の骨子は、具体的には、以下のような手段を講じることにより、実現される。
第1の発明は、外部から入力されたMPEG2−TS方式で伝送されるタイムスタンプが付加されていない複数のTSパケットを含むTSの先頭から、当該TSに含まれる各TSパケットを探索し、当該探索の結果、得られたPMT(Program Map Table)を解析することにより、当該PMTに含まれるPCR_PIDを検出するPCR_PID検出手段と、TSの先頭からPMTまでの間に含まれる各TSパケットを解析することによって、TSの先頭からPMTまでの間に含まれるPCRの値と当該PCRのTS内での位置情報とを検出すると共に、PMTからTSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とを検出するPCR検出手段と、PCR検出手段により検出されたPCR値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出手段と、時間間隔算出手段により算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各TSパケットに、時間間隔算出手段によって算出されたタイムスタンプを付加するタイムスタンプ付加手段とを備えたタイムスタンプ付加装置である。
これにより、外部から入力されたMPEG2−TS方式で伝送されるタイムスタンプが付加されていない複数のTSパケットを含むTSの先頭から、当該TSに含まれる各TSパケットが探索し、当該探索の結果、得られたPMTが解析されることにより、当該PMTに含まれるPCR_PIDがPCR_PID検出手段によって検出され、TSの先頭からPMTまでの間に含まれる各TSパケットが解析されることによって、TSの先頭からPMTまでの間に含まれるPCRの値と当該PCRのTS内での位置情報とが検出されると共に、PMTからTSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とがPCR検出手段によって検出され、PCR検出手段により検出されたPCR値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とが時間間隔算出手段によって算出され、時間間隔算出手段により算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各TSパケットに、時間間隔算出手段によって算出されたタイムスタンプがタイムスタンプ付加手段によって付加されるので、タイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
第2の発明は、外部から入力されたMPEG2−TS方式で伝送されるタイムスタンプが付加されていない複数のTSパケットを含むTSの先頭から、当該TSに含まれる各TSパケットを探索し、当該探索の結果、得られたPMTを解析することにより、当該PMTに含まれるPCR_PIDを検出するPCR_PID検出工程と、TSの先頭からPMTまでの間に含まれる各TSパケットを解析することによって、TSの先頭からPMTまでの間に含まれるPCRの値と当該PCRのTS内での位置情報とを検出すると共に、PMTからTSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とを検出するPCR検出工程と、PCR検出工程で検出されたPCR値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出工程と、時間間隔算出工程で算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各TSパケットに、時間間隔算出工程で算出されたタイムスタンプを付加するタイムスタンプ付加工程とを含むタイムスタンプ付加方法である。
これにより、外部から入力されたMPEG2−TS方式で伝送されるタイムスタンプが付加されていない複数のTSパケットを含むTSの先頭から、当該TSに含まれる各TSパケットが探索され、当該探索の結果、得られたPMTが解析されることにより、当該PMTに含まれるPCR_PIDが検出され、TSの先頭からPMTまでの間に含まれる各TSパケットが解析されることによって、TSの先頭からPMTまでの間に含まれるPCRの値と当該PCRのTS内での位置情報とが検出され、PMTからTSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とが検出され、検出されたPCR値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とが算出され、算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各TSパケットに、算出されたタイムスタンプが付加されるので、タイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
第3の発明は、MPEG2−TS方式で伝送されるタイムスタンプが付加されていないTSパケットを含むTSに対してタイムスタンプを付加するタイムスタンプ付加装置のコンピュータにインストールされたタイムスタンプ付加プログラムであって、タイムスタンプ付加装置のコンピュータに、外部から入力されたMPEG2−TS方式で伝送されるタイムスタンプが付加されていない複数のTSパケットを含むTSの先頭から、当該TSに含まれる各TSパケットを探索し、当該探索の結果、得られたPMTを解析することにより、当該PMTに含まれるPCR_PIDを検出するPCR_PID検出手順、TSの先頭からPMTまでの間に含まれる各TSパケットを解析することによって、TSの先頭からPMTまでの間に含まれるPCRの値と当該PCRのTS内での位置情報とを検出すると共に、PMTからTSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とを検出するPCR検出手順、PCR検出手順で検出されたPCR値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出手順、時間間隔算出手順で算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各TSパケットに、時間間隔算出手順で算出されたタイムスタンプを付加するタイムスタンプ付加手順を実現させるためのタイムスタンプ付加プログラムである。
これにより、外部から入力されたMPEG2−TS方式で伝送されるタイムスタンプが付加されていない複数のTSパケットを含むTSの先頭から、当該TSに含まれる各TSパケットが探索され、当該探索の結果、得られたPMTが解析されることにより、当該PMTに含まれるPCR_PIDが検出され、TSの先頭からPMTまでの間に含まれる各TSパケットが解析されることによって、TSの先頭からPMTまでの間に含まれるPCRの値と当該PCRのTS内での位置情報とが検出され、PMTからTSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とが検出され、検出されたPCR値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とが算出され、算出された時間間隔に基づいて、外部から入力されたタイムスタンプが付加されていない各TSパケットに、算出されたタイムスタンプが付加されるので、タイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
本発明によれば、MPEG2−TSを構成するTSパケットに付加されたタイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
以下、本発明に係るタイムスタンプ付加装置1の最良の形態に関して、図面を参照しながら詳細に説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係るタイムスタンプ付加装置1の構成例を示すブロック図である。
本実施の形態に係るタイムスタンプ付加装置1は、図2に示すように、当該タイムスタンプ付加装置1本体に内蔵された半導体メモリ103に記憶された、タイムスタンプを付加されていない188バイトのMPEG2−TS方式で送信される各TSパケットに対して、PCRと同様に27MHzクロックを基準とした4バイトのデータから成るタイムスタンプを付加して、タイムスタンプを付加したTSパケットを生成し、生成したタイムスタンプを付加したTSパケットを外部に出力する装置である。
本実施の形態に係るタイムスタンプ付加装置1は、図1に示すように、システムバス101に接続されたメモリコントローラを内蔵したバスインターフェース102と、バスインターフェース102に内蔵されたメモリコントローラによってデータの読出し/書き込みが可能な半導体メモリ103と、バスインターフェース102に接続されたCPU112と、バスインターフェース102にシステムバス101を介して接続されたTTS化処理部104とから構成される。
TTS化処理部104は、DMAインターフェース105と、DATAFIFO部106と、TSパケット解析部107と、タイムスタンプ用時間間隔算出部110と、タイムスタンプ付加部111とから構成される。
DMAインターフェース105は、半導体メモリからバスインターフェース102によって読み出され、システムバスを介して送信されたTSのデータを一時的に記憶するDMAバッファ105Aを内蔵している。
また、TSパケット解析部107は、PCR_PID検出部108と、PCR検出部109とから構成されており、このTSパケット解析部107は、DMAインターフェース105内に内蔵されたDMAバッファ105AにMPEG2−TSのデータがバスインターフェース102から転送されてきたかを判定する処理を実行する。
半導体メモリ103には、タイムスタンプを付加する処理対象のタイムスタンプの付加されていないMPEG2−TSのデータが記憶されている。
図3は、本実施の形態に係るタイムスタンプ付加装置1の処理対象であるタイムスタンプの付加されていないMPEG2−TSのデータの一例を示す模式図である。
本実施の形態に係るタイムスタンプ付加装置1の処理対象であるタイムスタンプの付加されていないMPEG2−TSには、TSパケット数(N0+N1)で、MPEG2−TSの先頭から見て、最初に出現するPCRのパケット(α)と、PMTのパケット(β)とが含まれている処理ブロックU1と、TSパケット数N2でPCRのパケットが含まれている処理ブロックU2と、TSパケット数N3でPCRのパケットが含まれている処理ブロックU3と、TSパケット数N3でPCRのパケットが含まれている処理ブロックU4とが含まれる。
本実施の形態に係るタイムスタンプ付加装置1は、かかるMPEG2−TSのデータが当該タイムスタンプ付加装置1本体に入力されると、PCR_PID検出部によって、PCR_PIDのデータが取得され、当該PCR_PIDのデータからPMTのデータが検出される。
しかる後、PCR検出部109によって、ストリームの先端のデータからPMTまでのデータを検索し、当該検索の結果、PCRのデータが検出される。
本実施の形態に係るタイムスタンプ付加装置1は、図3のようなTSのデータが入力されると、検出したPCRの位置を基準として、TSのデータを処理ブロックU1、処理ブロックU2、処理ブロックU3、及び処理ブロックU4にそれぞれ分割する。
本実施の形態に係るタイムスタンプ付加装置1では、CPU112は、図示しないメインメモリからTSパケット付加プログラムを読み出し、読み出したTSパケット付加プログラムによって半導体メモリからMPEG2−TSを読み出させるための読出し命令をDMAインターフェースに送信する機能と、MPEG2−TSのアドレスをDMAディスクリプタに記述することによって、DMAインターフェースとバスインターフェース102との間のDMA転送を可能にする機能とを有している。
バスインターフェース102は、タイムスタンプ付加装置1本体内部におけるデータの伝送を行うためのシステムバス101に接続されており、図示しない内蔵のメモリコントローラによって半導体メモリ103からのデータの読出し、及び半導体メモリ103へのデータの書き込みを制御している。
本実施の形態に係るバスインターフェース102は、半導体メモリ103からMPEG2−TSパケットのデータを読み出し、読み出したMPEG2−TSパケットのデータをDMAインターフェース105に転送する機能と、DMAインターフェース105から転送されたタイムスタンプが付加されたMPEG2−TSパケットのデータを半導体メモリに書き込む機能と、全てのTSパケットに関してDMA転送が終了した場合に、CPU112に対して割り込みを実行したり、レジスタにフラグビットを立てる等の手段を用いてDMAの転送が終了したことを通知する機能とを有している。
DMAインターフェース105は、DMA転送されてきたTSパケットのデータを一時的に記憶させるDMAバッファ105Aを内蔵したインターフェースであり、DMAバスマスタとして動作し、半導体メモリ103からバスインターフェース102を介してDMA転送されてきたTSパケットのデータを内蔵するDMAバッファ105Aに一時的に記憶させる機能と、タイムスタンプ付加部111から出力されたタイムスタンプを付加済みのTSパケットをDMA転送によってバスインターフェース102に出力する機能とを有する。
DMAバッファ105Aは、DMA転送されてきたTSパケットのデータを一時的に記憶するDMA転送されてきたTSパケットのデータを取り込むためのDMAインタフェース105に内蔵されたバッファである。
PCR_PID検出部108は、半導体メモリ103からDMAインターフェース105に内蔵されたDMAバッファ105AにTSパケットが転送されているかを判定し、当該判定の結果、TSパケットがDMAインターフェース105に内蔵されたDMAバッファ105Aに転送されている場合に、DMAバッファ105Aに記憶されているTSパケットのデータを読み出す機能と、DMAバッファ105Aから読み出したTSパケット内のPCR_PIDが既知であるかを判定する機能と、当該判定の結果、PCR_PIDが未知である場合には、DMAバッファ105Aから読み出したMPEG2−TSの先頭から、読み出したMPEG2−TSに含まれるPMTを解析することにより、PMTに含まれるPCR_PIDを検出する機能と、検出されたPCR_PIDの値と等しいPCR_PIDの値を有するTSパケットをTSの中から検出した後、当該検出したTSパケットを解析することによってPCRの値と当該TSパケットのTS内での位置情報とを取得する機能と、DMAバッファ105Aから読み出したTSパケットのデータをDATAFIFO部106に転送する機能と、後述するDATAFIFO部106の第2の出力ポートを基準としたデータ量の出力がゼロである場合に、DMAインターフェース105内に内蔵されたDMAバッファ105AからTSパケットのデータを読み出し、読み出したTSパケットのデータをDATAFIFO部106に転送する機能とを有する。
DATAFIFO部106は、半導体メモリ103から読み出されて、DMAバッファ105Aに記憶されたTSパケットのデータをFIFO(First−In First−Out:先入れ先出し)法に従って記憶されるメモリである。
本実施の形態に係るDATAFIFO部106は、外部からTSパケットのデータを入力するための入力ポートと、入力ポートから入力されたTSパケットをタイムスタンプ付加部111に出力する第1の出力ポートと、入力ポートから入力されたTSパケット内にPCRが含まれるかを検査するための出力ポートであって、入力ポートから入力されたTSパケットをPCR検出部109に出力する第2の出力ポートとを備えている。
入力ポートは、DMAインターフェース105内のDMAバッファ105Aから読み出されたTSパケットのデータが入力されるポートである。
本実施の形態に係るDATAFIFO部106の第1の出力ポートは、例えば図4に示すように、DMAバッファ105Aから読み出された7個のTSパケットが入力ポートから入力されて記憶されている場合、DATAFIFO部106に記憶されるTSパケットのデータ量が7個であることを示す出力を有する。
第1の出力ポートは、かかる状態で図4に示すように、第2の出力ポートから2個のデータ量に該当するTSパケットがPCR検出部109に読み出された場合であっても、実際にDATAFIFO部106に記憶されるTSパケットのデータは削除されないので、当該第1のポートを基準としてDATAFIFO部106内に記憶されたTSパケットのデータ量である、DATAFIFO部106に記憶されるTSパケットのデータ量が7個であることを示す出力を有する。
本実施の形態に係るDATAFIFO部106の第2の出力ポートは、例えば図4に示すように、DMAバッファ105Aから読み出された7個のTSパケットが入力ポートから入力されて記憶されている場合、DATAFIFO部106に記憶されるTSパケットのデータ量が7個であることを示す出力を有する。
第2の出力ポートは、かかる状態で第2の出力ポートから2個のデータ量に該当するTSパケットが読み出された場合には、当該第2のポートを基準としてDATAFIFO部106内に記憶されたTSパケットのデータ量である、DATAFIFO部106に記憶されるTSパケットのデータ量が7個からPCR検出部109に出力したTSパケットのデータ量である2個のTSパケットを差し引いた結果、DATAFIFO部106に記憶されるPCRが含まれるかに関する検査がおわっていないTSパケットのデータ量が5個であることを示す出力をPCR検出部109に出力する。
すなわち、第2の出力ポートは、DATAFIFO部106内に記憶されたTSパケットのデータ内にPCRが含まれているかに関して、PCR検出部109が検査するための出力ポートである。
本実施の形態にかかるDATAFIFO部106は、入力ポートから入力された全てのTSパケットに関して、当該TSパケットにPCRが含まれるかに関する検査を開始する場合には、入力ポートからのTSパケットの入力を停止した状態でDATAFIFO部106内に記憶されたTSパケットのデータをPCR検出部109に出力すると共に、入力ポートから入力された全てのTSパケットに関してPCRが含まれるかに関する検査が終了した場合には、入力ポートからのTSパケットの入力を再開する処理であるFIFO処理を実行する。
PCR検出部109は、DATAFIFO部106内にPCRが含まれるかに関する検査が終了していないTSパケットが記憶されている場合に、DATAFIFO部106の第2の出力ポートからDATAFIFO部106に一時的に記憶されたTSパケットのデータを読み出す機能と、TSの先頭からPMTまでの間に含まれる各TSパケットを解析することによって、TSの先頭からPMTまでの間に含まれるPCRの値と当該PCRのTS内での位置情報とを検出する機能と、PMTからTSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とを検出する機能と、TS内からPCRのデータを検出する度に、TS内からPCRのデータを検出したことを示すPCR検出通知と、検出した各PCRの値と当該各PCRのTS内での位置情報とをタイムスタンプ用時間間隔算出部110に出力する機能とを有する。
なお、本実施の形態に係るPCR検出部109は、ハードウェアで実現してもよいし、ソフトウェアで実現してもよいし、ソフトウェアとハードウェアとの組み合わせで実現してもよいことは言うまでもない。
タイムスタンプ用時間間隔算出部110は、TS内からPCRのデータを検出したことを示すPCR検出通知を受け取ると、受け取った各PCRの値と、当該各PCRのTS内での位置情報とから、TSの先頭から最初に検出されたPCRまでの間に存在する第1の付加対象ブロックに含まれる各TSパケットに関しては、当該最初に検出されたPCRの値と、当該最初に検出されたPCRの次に検出されたPCRの値と、当該最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間に存在するTSパケットの数とから、最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間の時間間隔を算出する。
また、タイムスタンプ用時間間隔算出部110は、TS内からPCRのデータを検出したことを示すPCR検出通知を受け取ると、受け取った各PCRの値と、当該各PCRのTS内での位置情報とから、最初に検出されたPCRの次に検出されたPCRからTS内の最後のPCRまでの間に存在する、複数の処理ブロックを含む第2の付加対象ブロックに含まれる各TSパケットに関しては、各処理ブロックの先頭に含まれるPCRの値と、当該PCRの次に検出されたPCRの値と、各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間に存在するTSパケットの数とから、各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間の時間間隔を算出する。
更に、タイムスタンプ用時間間隔算出部110は、TS内からPCRのデータを検出したことを示すPCR検出通知を受け取ると、受け取った各PCRの値と、当該各PCRのTS内での位置情報とから、TS内の最後のPCRからTSの終端までの間に存在する第3の付加対象ブロックに含まれる各TSパケットに関しては、最後のPCRの値と、最後のPCRの直前に検出されたPCRの値と、最後のPCRと最後のPCRの直前に検出されたPCRとの間に存在するTSパケットの数とから、最後に検出されたPCRと当該最後に検出されたPCRの直前に検出されたPCRとの間の時間間隔を算出する。
より、具体的には、タイムスタンプ用時間間隔算出部110は、2回目以降のPCR検出通知があった場合に、PCR検出部から出力されたPCRの値、PCRの位置の報告に基づいて、入力されたMPEG2−TSのデータを、入力されたMPEG2−TSの先頭から最初のPCRまでのTSパケットの処理ブロック(U1)と、PCR−PCR間のTSパケットの処理ブロック(U2、U3)と、入力されたMPEG2−TSの最後のPCRから入力されたMPEG2−TSの最後までのTSパケットの処理ブロック(U4)とに分割し、分割した結果、得られた処理ブロック毎にTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)とを下記式(1)〜式(4)に従って算出する機能と、算出した処理ブロック毎のTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)とをタイムスタンプ付加部111に出力する機能とを有する。
Figure 2010045592
例えば、処理ブロックU1では、処理ブロックU1のTSパケット間の時間間隔Q1、処理ブロックU1のTSパケット間の時間間隔の剰余R1、処理ブロックU1の先頭TSパケットのタイムスタンプ値のキャリーオーバC1、処理ブロックU1内に含まれるPCRと、当該PCRの次に検出されたPCRとの間に存在するTSパケット数N1とし、入力されたTSの先頭からPCRまでのTSパケット数をN0とすると、以下のようになる。なお、処理ブロックU1では、V1の値は、任意の値に設定可能になっている。
Figure 2010045592
また、処理ブロックU2では、処理ブロックU2のTSパケット間の時間間隔Q2、処理ブロックU2のTSパケット間の時間間隔の剰余R2、処理ブロックU2の先頭TSパケットのタイムスタンプ値のキャリーオーバC2、処理ブロックU2内に含まれるPCRと、当該PCRのに検出されたPCRとの間に存在するTSパケット数N2とし、入力されたTSの先頭からPCRまでのTSパケット数をN0とすると、以下のようになる。
Figure 2010045592
なお、本実施の形態に係るタイムスタンプ付加装置1では、タイムスタンプ用時間間隔算出部110は、ハードウェアとして設けているが、除算回路の設置スペースを削減して回路規模のより一層の小型化を図る観点から、ソフトウェアによって実現してもよいことは言うまでもない。
タイムスタンプ付加部111は、TSの先頭から最初に検出されたPCRまでの間に存在する第1の付加対象ブロックに含まれる各TSパケットに関しては、タイムスタンプの初期値と、タイムスタンプ用時間間隔算出部110によって算出された最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間の時間間隔とから各TSパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をTSの先頭から最初に検出されたPCRまでの間に存在する第1の付加対象ブロックに含まれる各TSパケットに付加した後、タイムスタンプを付加したTSパケットを、DMAバッファ105Aを含むDMAインターフェース105に出力する。
また、タイムスタンプ付加部111は、最初に検出されたPCRの次に検出されたPCRからTS内の最後のPCRまでの間に存在する、複数の処理ブロックを含む第2の付加対象ブロックに含まれる各TSパケットに関しては、各処理ブロックの直前の処理ブロックの先頭に存在するTSパケットに付加されたタイムスタンプの値と、各処理ブロックの先頭に含まれるPCRの値と当該PCRの次に検出されたPCRの値とから、各処理ブロックの先頭に存在するTSパケットに付加するタイムスタンプの値を算出し、かつ、当該算出された各処理ブロックの先頭に存在するTSパケットに付加するタイムスタンプの値と、算出された各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間の時間間隔とから前記各処理ブロックに含まれる各TSパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値を最初に検出されたPCRの次に検出されたPCRからTS内の最後のPCRまでの間に存在する、複数の処理ブロックを含む第2の付加対象ブロックに含まれる各TSパケットに付加した後、タイムスタンプを付加したTSパケットを、DMAバッファ105Aを含むDMAインターフェース105に出力する。
更に、タイムスタンプ付加部111は、TS内の最後のPCRからTSの終端までの間に存在する第3の付加対象ブロックに含まれる各TSパケットに関しては、最後のPCRの値と、最後に検出されたPCRと当該最後に検出されたPCRの直前に検出されたPCRとの間の時間間隔とから各TSパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をTS内の最後のPCRからTSの終端までの間に存在する第3の付加対象ブロックに含まれる各TSパケットに付加した後、タイムスタンプを付加したTSパケットを、DMAバッファ105Aを含むDMAインターフェース105に出力する。
より具体的には、タイムスタンプ付加部111は、タイムスタンプ用時間間隔算出部110から出力された処理ブロック毎のTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)とを受け取ると、DATAFIFO部106の第1の出力ポートからDATAFIFO部106に記憶されたTSパケットのデータを読み出し、下記式(5)〜式(8)に従って、タイムスタンプを、DATAFIFO部106の第1の出力ポートから読み出した各TSパケットに付加する処理を実行する機能と、タイムスタンプを付加したTSパケットを、DMAバッファ105Aを含むDMAインターフェース105に出力する機能とを有する。
Figure 2010045592
次に、以上のように構成されたタイムスタンプ付加装置1の実行処理に関して、図面を参照して説明する。
図5は、本実施の形態に係るタイムスタンプ付加装置1の実行処理を説明するためのシーケンス図である。
始めに、CPU112は、図示しないメインメモリからTSパケット付加プログラムを読み出し、読み出したTSパケット付加プログラムによって半導体メモリからMPEG2−TSを読み出させるための読出し命令をDMAインターフェースに送信すると共に、MPEG2−TSのアドレスをDMAディスクリプタに記述することによって、DMAインターフェース105とバスインターフェース102との間のDMA転送を可能にする(A1)。
次の工程A2では、DMAインターフェース105は、バスインターフェース102によって半導体メモリ103から読み出された後、バスインターフェース102から出力されたタイムスタンプが付加されていないMPEG2−TSのデータを受け取り、内蔵するDMAバッファ105Aに受け取ったMPEG2−TSのデータを記憶させる。
次の工程A3では、TSパケット解析部107は、DMAインターフェース105内に内蔵されたDMAバッファ105AにMPEG2−TSのデータがバスインターフェース102から転送されてきたかを判定する。
PCR_PID検出部108は、前述した工程A3でDMAインターフェース105内に内蔵されたDMAバッファ105AにMPEG2−TSのデータがバスインターフェース102から転送されてきたと判定した場合(A3:Yes)、DMAバッファ105AからMPEG2−TSのデータを読み出し、読み出したMPEG2−TSのデータをDMAバッファ105Aから読み出すと同時にDATAFIFO部106に出力する(A4)。
PCR_PID検出部108は、DMAバッファ105Aから読み出したPCR_PIDが未知であるタイムスタンプの付加されていないMPEG2−TSの先頭から、読み出したMPEG2−TSに含まれるPMTを解析することにより、PMTに含まれるPCR_PIDを検出する(A5)。
例えば、前述した図3に示すようなMPEG2−TSのデータが、半導体メモリ103から読み出されてDMAバッファ105Aに転送されてきた場合には、PCR_PID検出部108は、MPEG2−TSのデータを検索し、位置βでPMTを検出し、検出したPMTを解析することによって、PCR_PIDを検出することになる。
次の工程では、PCR検出部109は、PCR_PID検出部108によって検出されたPCR_PIDを用いて、以下のような一連の処理からなるPCRの検出処理を開始する。
具体的には、PCR検出部109は、PID=PCR_PIDであるかを判定する(A6)。
PCR検出部109は、前述した工程A6でPID=PCR_PIDであると判定した場合には(A6:Yes)、adaptation_tableの値が存在するか、換言すればadaptation_tableの値が10又は11で、かつ、adaptation_table_lengthの値が0でないかに関して判定する(A7)。
一方、PCR検出部109は、前述した工程A6でPID=PCR_PIDではないと判定した場合には(A6:No)、TSパケットがMPEG2−TSの終端であるかに関する判定処理を実行する。
PCR検出部109は、前述した工程A7でadaptation_tableの値が存在する、換言すればadaptation_tableの値が10又は11で、かつ、adaptation_table_lengthの値が0ではないと判定した場合には(A7:Yes)、当該TSパケットのTS全体における位置、例えば該当するTSパケットが先頭のTSパケットから何パケット目かという位置情報を検出して、検出したTSパケットのTS全体における位置をタイムスタンプ用時間間隔算出部110に出力した後、PCR_flag=1であるかを判定する(A8)。
PCR検出部109は、前述した工程A7でadaptation_tableの値が存在しない、換言すればadaptation_tableの値が10又は11でないか、又はadaptation_table_lengthの値が0であるかの何れかと判定した場合には(A7:No)、TSパケットがMPEG2−TSの終端であるかに関する判定処理を実行する。
PCR検出部109は、前述した工程A8でPCR_flag=1であると判定した場合には(A8:Yes)、PCRの値を取得し、取得したPCRの値をタイムスタンプ用時間間隔算出部110に出力する(A9)。
PCR検出部109は、前述した工程でPCR_flag=1ではないと判定した場合(A8:No)、TSパケットがMPEG2−TSの終端であるかを判定する(A10)。
PCR検出部109は、前述した工程A10でCPUから出力されたTSパケットがMPEG2−TSの終端であると判定された場合には(A10:Yes)、そのまま実行処理を終了する。
PCR検出部109は、DATAFIFO部106内に記憶された全てのTSパケットに関して、PCRが含まれるかに関する検査が終了した場合に、PCR_PID検出部108によってDMAバッファ105Aから読み出されたTSパケットの次のTSパケットのデータに関して、前述したPCR検出処理(工程A4乃至工程A10の処理)を処理対象のTSパケットがTSに含まれる最終パケットになるまで繰り返す。
かかる処理を実行することによって、DATAFIFO部106には、PCR_PID検出部108によって読み出されたTSパケットのデータが記憶されるので、DMAバッファ105Aを経由したMPEG2−TSパケットのデータは、1パケットも残らず、かつ、重複することなくDATAFIFO部106に記憶されることになる。
次の工程A11では、タイムスタンプ用時間間隔算出部110は、2つめ以降のPCR検出通知があった場合に、PCR検出部109から出力されたPCRの値、PCRの位置の報告に基づいて、入力されたMPEG2−TSのデータを、入力されたMPEG2−TSの先頭から最初のPCRまでのTSパケットの処理ブロック(U1)と、PCR−PCR間のTSパケットの処理ブロック(U2、U3)と、入力されたMPEG2−TSの最後のPCRから入力されたMPEG2−TSの最後までのTSパケットの処理ブロック(U4)とに分割し、分割した結果、得られた処理ブロック毎にTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)とを下記式(1)〜式(4)に従って算出する。
Figure 2010045592
次の工程A12では、タイムスタンプ用時間間隔算出部110は、算出した処理ブロック毎のTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)とをタイムスタンプ付加部111に出力する。
次の工程A13では、タイムスタンプ付加部111は、タイムスタンプ用時間間隔算出部110から出力された処理ブロック毎のTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)とを受け取ると、DATAFIFO部106の第1の出力ポートからDATAFIFO部106に記憶されたTSパケットのデータを読み出し、下記式(5)〜式(8)に従って、各TSパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をDATAFIFO部106から読み出した全てのTSパケットに付加する処理を実行する。
Figure 2010045592
次の工程A14では、タイムスタンプ付加部111は、タイムスタンプを付加したTSパケットを、DMAバッファ105Aを内蔵するDMAインターフェース105に出力する。
次の工程A15では、DMAインターフェース105は、タイムスタンプ付加部111から出力されたタイムスタンプを付加済みのTSパケットをDMA転送によってバスインターフェース102に出力する。
これによって、バスインターフェース102は、DMAインターフェース105から受け取ったタイムスタンプを付加したTSパケットのデータを半導体メモリに記憶させる。
以上のような一連の処理により、本実施の形態に係るタイムスタンプ付加装置1は、全ての実行処理を終了する。
上述したように、本実施の形態によれば、DMAバッファ105Aによって記憶されたTSパケットを含むTSの先頭から、当該TSに含まれる各TSパケットを探索し、当該探索の結果、得られたPMTが解析されることにより、PCR_PID検出部108によってPMTに含まれるPCR_PIDが検出され、PCR_PID検出部108により検出されたPCR_PIDの値と等しいPCR_PIDの値を有するTSパケットがDMAバッファ105Aによって記憶されたTSの中から検出された後、当該検出されたTSパケットが解析されることによってPCRの値と当該TSパケットのTS内での位置情報とがPCR検出部109によって取得され、PCR検出部109により検出されたPCR値に基づいて、タイムスタンプを付加するための時間間隔がタイムスタンプ用時間間隔算出部110によって算出され、タイムスタンプ用時間間隔算出部110により算出された時間間隔に基づいて、DATAFIFO部106に記憶されたTSパケットにタイムスタンプがタイムスタンプ付加部111によって付加されるので、タイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
また、本実施の形態によれば、DMAバッファ105Aに記憶されたTSの先頭から最初のPCRを検出するまでのTSパケット、及びDMAバッファ105Aに記憶されたTSの最後のPCRからTSの終端までのTSパケットの何れのTSパケットに対しても、タイムスタンプを付加することが可能になる。
更に、本実施の形態によれば、キャリーオーバを考慮することによって、実際のPCRの値と、各TSパケットに付加されるタイムスタンプの値との間のずれを最少にすることが可能である。
また、本実施の形態によれば、CPU112からデータバスへのデータの転送回数を削減することが出来るので、他のコンテンツの録画や再生を行う場合に生じるバスの輻輳を防止することが可能になる。
この結果、録画や再生等の他の同時のデータ処理を妨げる可能性を低減することが可能になる。
(第2の実施の形態)
図6は、本発明の第2の実施の形態に係るタイムスタンプ付加装置2の構成例を示すブロック図である。
本実施の形態に係るタイムスタンプ付加装置2は、第1の実施の形態に係るタイムスタンプ付加装置2と同様に、当該タイムスタンプ付加装置本体に内蔵された半導体メモリに記憶された、タイムスタンプを付加されていない188バイトのMPEG2−TS方式で送信されるTSパケットに対して、PCRと同様に27MHzクロックを基準とした4バイトのデータから成るタイムスタンプを付加して、タイムスタンプを付加したTSパケットを生成し、生成したタイムスタンプを付加したTSパケットを外部に出力する装置である。
本実施の形態に係るタイムスタンプ付加装置2は、図6に示すように、システムバス201に接続されたCPU207と、CPU207によってデータの読出し書き込み可能な半導体メモリ208と、TSパケット解析部204と、タイムスタンプ付加部209とから構成される。
半導体メモリ208には、前述した第1の実施の形態に係るタイムスタンプ付加装置1と同様に、TSパケット数(N0+N1)で、MPEG2−TSの先頭から見て、最初に出現するPCRのパケット(α)と、PMTのパケット(β)とが含まれている処理ブロックU1と、TSパケット数N2でPMTのパケットが含まれている処理ブロックU2と、TSパケット数N3でPMTのパケットが含まれている処理ブロックU3と、TSパケット数N3でPMTのパケットが含まれている処理ブロックU4とが含まれる、タイムスタンプを付加する処理対象のタイムスタンプの付加されていないMPEG2−TSのデータが記憶されている。
本実施の形態に係るタイムスタンプ付加装置1は、かかるMPEG2−TSのデータが当該タイムスタンプ付加装置1本体に入力されると、PCR_PID検出部202によって、PCR_PIDのデータが取得され、当該PCR_PIDのデータからPMTのデータが検出される。
しかる後、PCR検出部203によって、ストリームの先端のデータからPMTまでのデータを検索し、当該検索の結果、PCRのデータが検出される。
本実施の形態に係るタイムスタンプ付加装置1は、図3のようなTSのデータが入力されると、検出したPCRの位置を基準として、入力されたTSのデータを処理ブロックU1、処理ブロックU2、処理ブロックU3、及び処理ブロックU4にそれぞれ分割する。
本実施の形態に係るCPU207は、本実施の形態のタイムスタンプ付加装置2全体を制御するユニットであり、図示しないメインメモリからTSパケット付加プログラムを読み出し、読み出したTSパケット付加プログラムによって各実行処理が実現されるTSパケット解析制御部205と、タイムスタンプ用時間間隔算出部206とを有している。
TSパケット解析制御部205は、半導体メモリ208に記憶されたMPEG2−TSのデータを読み出し、読み出したMPEG2−TSのデータを用いて、後述するPCR_PID検出処理、PCR検出処理、タイムスタンプ用時間間隔算出処理、およびタイムスタンプ付加処理を実行可能なように、半導体メモリ208、PCR_PID検出部202、PCR検出部203、タイムスタンプ用時間間隔算出部206、タイムスタンプ付加部209をそれぞれ制御する機能を有している。
タイムスタンプ用時間間隔算出部206は、TSの先頭から最初に検出されたPCRまでの間に存在する第1の付加対象ブロックに含まれる各TSパケットに関しては、当該最初に検出されたPCRの値と、当該最初に検出されたPCRの次に検出されたPCRの値と、当該最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間に存在するTSパケットの数とから、最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間の時間間隔を算出する。
また、タイムスタンプ用時間間隔算出部206は、最初に検出されたPCRの次に検出されたPCRからTS内の最後のPCRまでの間に存在する、複数の処理ブロックを含む第2の付加対象ブロックに含まれる各TSパケットに関しては、各処理ブロックの先頭に含まれるPCRの値と、当該PCRの次に検出されたPCRの値と、各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間に存在するTSパケットの数とから、各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間の時間間隔を算出する。
更に、タイムスタンプ用時間間隔算出部206は、TS内の最後のPCRからTSの終端までの間に存在する第3の付加対象ブロックに含まれる各TSパケットに関しては、最後のPCRの値と、最後のPCRの直前に検出されたPCRの値と、最後のPCRと最後のPCRの直前に検出されたPCRとの間に存在するTSパケットの数とから、最後に検出されたPCRと当該最後に検出されたPCRの直前に検出されたPCRとの間の時間間隔を算出する。
より具体的には、タイムスタンプ用時間間隔算出部206は、2回目以降のPCR検出通知があった場合に、PCR検出部から出力されたPCRの値、PCRの位置の報告に基づいて、入力されたMPEG2−TSのデータを、入力されたMPEG2−TSの先頭から最初のPCRまでのTSパケットの処理ブロック(U1)と、PCR−PCR間のTSパケットの処理ブロック(U2、U3)と、入力されたMPEG2−TSの最後のPCRから入力されたMPEG2−TSの最後までのTSパケットの処理ブロック(U4)とに分割し、分割した結果、得られた処理ブロック毎にTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)とを下記式(1)〜式(4)に従って算出する機能と、算出した処理ブロック毎のTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)とをシステムバス201を介してタイムスタンプ付加部209に出力する機能とを有する。
Figure 2010045592
例えば、処理ブロックU1では、処理ブロックU1のTSパケット間の時間間隔Q1、処理ブロックU1のTSパケット間の時間間隔の剰余R1、処理ブロックU1の先頭TSパケットのタイムスタンプ値のキャリーオーバC1、処理ブロックU1内に含まれるPCRと、当該PCRの次に検出されたPCRとの間に存在するTSパケット数N1とし、入力されたTSの先頭からPCRまでのTSパケット数をN0とすると、以下のようになる。なお、処理ブロックU1では、V1の値は、任意の値に設定可能になっている。
Figure 2010045592
また、処理ブロックU2では、処理ブロックU2のTSパケット間の時間間隔Q2、処理ブロックU2のTSパケット間の時間間隔の剰余R2、処理ブロックU2の先頭TSパケットのタイムスタンプ値のキャリーオーバC2、処理ブロックU2内に含まれるPCRと、当該PCRの次に検出されたPCRとの間に存在するTSパケット数N2とし、処理ブロックU2のPCR−PCR間のTSパケット数N2とし、入力されたTSの先頭からPCRまでのTSパケット数をN0とすると、以下のようになる。
Figure 2010045592
TSパケット解析部204は、PCR_PID検出部202と、PCR検出部203とを有している。
PCR_PID検出部202は、CPU207に内蔵されたTSパケット解析制御部205によって半導体メモリ208から読み出されたTSパケットのデータがCPU207からシステムバス201を介して転送されてきたかを判定し、当該判定の結果、TSパケットのデータがCPU207からシステムバス201を介して転送されてきている場合に、CPU207から転送されたTSパケット内のPCR_PIDが既知であるかを判定する機能と、当該判定の結果、PCR_PIDが未知である場合には、半導体メモリ208から読み出したMPEG2−TSの先頭から、読み出したMPEG2−TSに含まれるPMTを解析することにより、PMTに含まれるPCR_PIDを検出する機能と、検出されたPCR_PIDの値と等しいPCR_PIDの値を有するTSパケットをTSの中から検出した後、当該検出したTSパケットを解析することによってPCRの値と当該TSパケットのTS内での位置情報とを取得する機能と、PCR_PIDを検出したことを示すPCR_PID検出通知をCPU207に送信する機能とを有する。
PCR検出部203は、システムバス201を介して送信されたMPEG2−TSのデータをCPU207から受け取り、受け取ったMPEG2−TSのデータに関して、TSの先頭からPMTまでの間に含まれる各TSパケットを解析することによって、前記TSの先頭から前記PMTまでの間に含まれるPCRの値と当該PCRのTS内での位置情報とを検出すると共に、PMTからTSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とを検出する後述のPCR検出処理を実行する機能と、TSパケットからPCRのデータを検出する度に、TSパケットからPCRのデータを検出したことを示すPCR検出通知と、検出したPCRの値と、各PCRのTS内での位置情報とをCPU207に出力する機能とを有する。
なお、本実施の形態に係るタイムスタンプ付加装置2では、PCR_PID検出部202と、PCR検出部203とをTSパケット解析部204に内蔵されるハードウェア機能ブロックとして設けているが、PCR_PID検出部202と、PCR検出部203とを物理的に別々のハードウェア機能ブロックとして設けてもよいことは言うまでもない。
また、本実施の形態に係るタイムスタンプ付加装置2では、PCR_PID検出部202と、PCR検出部203とをTSパケット解析部204に内蔵されるハードウェア機能ブロックとして設けているが、図示しないメインメモリに記憶され、CPU207によってメインメモリから読み出されて実行されるプログラムの実現する機能ブロックとして設けてもよいことは言うまでもない。
タイムスタンプ付加部209は、TSの先頭から最初に検出されたPCRまでの間に存在する第1の付加対象ブロックに含まれる各TSパケットに関しては、タイムスタンプの初期値と、タイムスタンプ用時間間隔算出部206によって算出された最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間の時間間隔とから各TSパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をTSの先頭から最初に検出されたPCRまでの間に存在する第1の付加対象ブロックに含まれる各TSパケットに付加した後、タイムスタンプを付加したTSパケットをCPU207に出力する。
また、タイムスタンプ付加部209は、最初に検出されたPCRの次に検出されたPCRからTS内の最後のPCRまでの間に存在する、複数の処理ブロックを含む第2の付加対象ブロックに含まれる各TSパケットに関しては、各処理ブロックの直前の処理ブロックの先頭に存在するTSパケットに付加されたタイムスタンプの値と、各処理ブロックの先頭に含まれるPCRの値と当該PCRの次に検出されたPCRの値とから、各処理ブロックの先頭に存在するTSパケットに付加するタイムスタンプの値を算出し、かつ、当該算出された各処理ブロックの先頭に存在するTSパケットに付加するタイムスタンプの値と、算出された各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間の時間間隔とから前記各処理ブロックに含まれる各TSパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値を最初に検出されたPCRの次に検出されたPCRからTS内の最後のPCRまでの間に存在する、複数の処理ブロックを含む第2の付加対象ブロックに含まれる各TSパケットに付加した後、タイムスタンプを付加したTSパケットをCPU207に出力する。
更に、タイムスタンプ付加部209は、TS内の最後のPCRからTSの終端までの間に存在する第3の付加対象ブロックに含まれる各TSパケットに関しては、最後のPCRの値と、最後に検出されたPCRと当該最後に検出されたPCRの直前に検出されたPCRとの間の時間間隔とから各TSパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をTS内の最後のPCRからTSの終端までの間に存在する第3の付加対象ブロックに含まれる各TSパケットに付加した後、タイムスタンプを付加したTSパケットをCPU207に出力する。
より具体的には、タイムスタンプ付加部209は、タイムスタンプ用時間間隔算出部206から出力された処理ブロック毎のTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)と、CPUから送信されたタイムスタンプの付加対象であるMPEG2−TSのデータとを受け取り、下記式(5)〜式(8)に従って、タイムスタンプを、CPU207から受け取ったTSパケットに付加する処理を実行する機能と、タイムスタンプを付加したTSパケットをCPU207に出力する機能とを有する。
Figure 2010045592
次に、以上のように構成されたタイムスタンプ付加装置2の実行する実行処理に関して、図面を参照して説明する。
図7は、本実施の形態に係るタイムスタンプ付加装置2の実行処理を説明するためのシーケンス図である。
また、図8及び図9は、本実施の形態に係るタイムスタンプ付加装置2の実行処理を説明するためのフローチャートである。
本実施の形態に係るタイムスタンプ付加装置2は、PCR_PID検出処理、PCR検出処理、タイムスタンプ用時間間隔算出処理、タイムスタンプ付加処理を順次実行する。
[PCR_PID検出処理]
始めに、PCR_PID検出部202は、CPU207から転送されてきたTSに含まれるPMT_PIDが既知であるかを判定する(B1)。
PCR_PID検出部202は、前述した工程B1でCPUから転送されてきたTSに含まれるPMT_PIDが既知であると判定した場合には(B1:Yes)、PID=PMT_PIDであるかを判定する(B2)。
一方、PCR_PID検出部202は、前述した工程B1で、CPUから転送されてきたTSに含まれるPMT_PIDが未知であると判定した場合には(B1:No)、PATのデータを検出し、検出されたPATに含まれるPIDのデータがPID=13‘b0を満たすかを判定する(B3)。
PCR_PID検出部202は、前述した工程B2でPID=PMT_PIDであると判定した場合には(B2:Yes)、PCR_PIDを検出したことを示すPCR_PID検出通知をCPUに出力した後(B4)、実行処理を終了する。
PCR_PID検出部202は、前述した工程B3で検出されたPATに含まれるPIDのデータがPID=13‘b0(PAT)を満たすと判定した場合には(B3:Yes)、CPU207からシステムバス201を介して出力されたTSに含まれるPMT_PIDのデータを検出した後(B5)、後述する工程B6の処理を実行する。
PCR_PID検出部202は、前述した工程B3で検出されたPATに含まれるPIDのデータがPID=13‘b0(PAT)を満たさないと判定した場合には(B3:No)、CPU207から出力されたTSパケットがMPEG2−TSの終端であるかを判定する(B6)。
一方、PCR_PID検出部202は、前述した工程B2でPID=PMT_PIDではないと判定した場合には(B2:No)、前述した工程B6と同様のCPU207からシステムバス201を介して出力されたTSパケットがMPEG2−TSの終端であるかに関する判定処理を実行する。
PCR_PID検出部202は、前述した工程B6でCPU207からシステムバス201を介して出力されたTSパケットがMPEG2−TSの終端であると判定された場合には(B6:Yes)、そのまま実行処理を終了する。
PCR_PID検出部202は、前述した工程B6でCPU207からシステムバス201を介して出力されたTSパケットがMPEG2−TSの終端ではないと判定された場合には(B6:No)、次のTSパケットの先頭へ移動し(B7)、前述した工程A1乃至工程A6の実行処理を、処理対象のTSパケットがTSに含まれる最終パケットになるまで繰り返す。
以上のような一連の処理により、本実施の形態に係るPCR_PID検出部202は実行処理を終了する。
[PCR検出処理]
始めに、PCR検出部203は、PID=PCR_PIDであるかを判定する(C1)。
PCR検出部203は、前述した工程C1でPID=PCR_PIDであると判定した場合には(C1:Yes)、adaptation_tableの値が存在するか、換言すればadaptation_tableの値が10又は11で、かつ、adaptation_table_lengthの値が0でないかに関して判定する(C2)。
一方、PCR検出部203は、前述した工程C1でPID=PCR_PIDではないと判定した場合には(C1:No)、後述する工程C5の判定処理を実行する。
PCR検出部203は、前述した工程C2でadaptation_tableの値が存在する、換言すればadaptation_tableの値が10又は11で、かつ、adaptation_table_lengthの値が0ではないと判定した場合には(C2:Yes)、当該TSパケットのTS全体における位置を検出して、検出したTSパケットのTS全体における位置をCPU207に出力した後、PCR_flag=1であるかを判定する(C3)。
PCR検出部203は、前述した工程B2でadaptation_tableの値が存在しない、換言すればadaptation_tableの値が10又は11でないか、又はadaptation_table_lengthの値が0であるかの何れかと判定した場合には(C2:No)、後述する工程C5の判定処理を実行する。
PCR検出部202は、前述した工程C3でPCR_flag=1であると判定した場合(C3:Yes)、PCRの値を取得し、取得したPCRの値をCPUに出力する(C4)。
PCR検出部202は、前述した工程C3でPCR_flag=1ではないと判定した場合(C3:No)、CPU207から出力されたTSパケットがMPEG2−TSの終端であるかを判定する(C5)。
PCR検出部202は、前述した工程C5でCPU207から出力されたTSパケットがMPEG2−TSの終端であると判定された場合には(C5:Yes)、そのまま実行処理を終了する。
PCR検出部202は、前述した工程C5でCPU207からシステムバス201を介して出力されたTSパケットがMPEG2−TSの終端ではないと判定された場合には(C5:No)、次のTSパケットの先頭へ移動し(C6)、前述した工程C1乃至工程C5の実行処理を、処理対象のTSパケットがTSに含まれる最終パケットになるまで繰り返す。
以上のような一連の処理により、本実施の形態に係るPCR検出部203は実行処理を終了する。
[タイムスタンプ用時間間隔算出処理]
始めに、タイムスタンプ用時間間隔算出部206は、2つめ以降のPCR検出通知があった場合に、PCR検出部203から出力されたPCRの値、PCRの位置の報告に基づいて、入力されたMPEG2−TSのデータを、入力されたMPEG2−TSの先頭から最初のPCRまでのTSパケットの処理ブロック(U1)と、PCR−PCR間のTSパケットの処理ブロック(U2、U3)と、入力されたMPEG2−TSの最後のPCRから入力されたMPEG2−TSの最後までのTSパケットの処理ブロック(U4)とに分割し、分割した結果、得られた処理ブロック毎にTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)とを下記式(1)〜式(4)に従って算出する(D1)。
Figure 2010045592
換言すれば、タイムスタンプ用時間間隔算出部206は、TSの先頭から最初に検出されたPCRまでの間に存在する第1の付加対象ブロックに含まれる各TSパケットに関しては、当該最初に検出されたPCRの値と、当該最初に検出されたPCRの次に検出されたPCRの値と、当該最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間に存在するTSパケットの数とから、最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間の時間間隔を算出する。
また、タイムスタンプ用時間間隔算出部206は、最初に検出されたPCRの次に検出されたPCRからTS内の最後のPCRまでの間に存在する、複数の処理ブロックを含む第2の付加対象ブロックに含まれる各TSパケットに関しては、各処理ブロックの先頭に含まれるPCRの値と、当該PCRの次に検出されたPCRの値と、各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間に存在するTSパケットの数とから、各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間の時間間隔を算出する。
更に、タイムスタンプ用時間間隔算出部206は、TS内の最後のPCRからTSの終端までの間に存在する第3の付加対象ブロックに含まれる各TSパケットに関しては、最後のPCRの値と、最後のPCRの直前に検出されたPCRの値と、最後のPCRと最後のPCRの直前に検出されたPCRとの間に存在するTSパケットの数とから、最後に検出されたPCRと当該最後に検出されたPCRの直前に検出されたPCRとの間の時間間隔を算出する。
次の工程D2では、タイムスタンプ用時間間隔算出部206は、算出した処理ブロック毎のTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)とをタイムスタンプ付加部209に出力する。
以上のような一連の処理により、本実施の形態に係るタイムスタンプ用時間間隔算出部206は実行処理を終了する。
[タイムスタンプ付加処理]
始めに、タイムスタンプ付加部209は、タイムスタンプ用時間間隔算出部206から出力された処理ブロック毎のTSパケット間の時間間隔(Qn)と、処理ブロックの先頭パケットのタイムスタンプ値(Vn)と、CPUから送信されたタイムスタンプの付加対象であるMPEG2−TSのデータとを受け取り、下記式(5)〜式(8)に従って、タイムスタンプを、CPU207からシステムバス201を介して受け取ったTSパケットに付加する処理を実行する(E1)。
Figure 2010045592
換言すれば、タイムスタンプ付加部209は、TSの先頭から最初に検出されたPCRまでの間に存在する第1の付加対象ブロックに含まれる各TSパケットに関しては、タイムスタンプの初期値と、タイムスタンプ用時間間隔算出部110によって算出された最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間の時間間隔とから各TSパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をTSの先頭から最初に検出されたPCRまでの間に存在する第1の付加対象ブロックに含まれる各TSパケットに付加した後、タイムスタンプを付加したTSパケットをCPU207に出力する。
また、タイムスタンプ付加部209は、最初に検出されたPCRの次に検出されたPCRからTS内の最後のPCRまでの間に存在する、複数の処理ブロックを含む第2の付加対象ブロックに含まれる各TSパケットに関しては、各処理ブロックの直前の処理ブロックの先頭に存在するTSパケットに付加されたタイムスタンプの値と、各処理ブロックの先頭に含まれるPCRの値と当該PCRの次に検出されたPCRの値とから、各処理ブロックの先頭に存在するTSパケットに付加するタイムスタンプの値を算出し、かつ、当該算出された各処理ブロックの先頭に存在するTSパケットに付加するタイムスタンプの値と、算出された各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間の時間間隔とから前記各処理ブロックに含まれる各TSパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値を最初に検出されたPCRの次に検出されたPCRからTS内の最後のPCRまでの間に存在する、複数の処理ブロックを含む第2の付加対象ブロックに含まれる各TSパケットに付加した後、タイムスタンプを付加したTSパケットをCPU207に出力する。
更に、タイムスタンプ付加部111は、TS内の最後のPCRからTSの終端までの間に存在する第3の付加対象ブロックに含まれる各TSパケットに関しては、最後のPCRの値と、最後に検出されたPCRと当該最後に検出されたPCRの直前に検出されたPCRとの間の時間間隔とから各TSパケットに付加するタイムスタンプの値を算出し、算出したタイムスタンプの値をTS内の最後のPCRからTSの終端までの間に存在する第3の付加対象ブロックに含まれる各TSパケットに付加した後、タイムスタンプを付加したTSパケットをCPU207に出力する。
次の工程E2では、タイムスタンプ付加部209は、タイムスタンプを付加したTSパケットをCPU207に出力する。
これにより、タイムスタンプを付加したTSパケットがCPU207によって半導体メモリ208に書き込まれる。
以上のような一連の処理により、本実施の形態に係るタイムスタンプ付加部209は実行処理を終了する。
上述したように本実施の形態によれば、半導体メモリ208によって記憶されたTSパケットを含むTSの先頭から、PMTが解析されることにより、PCR_PID検出部202によってPMTに含まれるPCR_PIDが検出され、PCR_PID検出部202により検出されたPCR_PIDの値と等しいPCR_PIDの値を有するTSパケットが半導体メモリによって記憶されたTSの中から検出された後、当該検出されたTSパケットが解析されることによってPCRの値と当該TSパケットのTS内での位置情報とがPCR検出部203によって取得され、PCR検出部203により検出されたPCR値に基づいて、タイムスタンプを付加するための時間間隔がタイムスタンプ用時間間隔算出部206によって算出され、タイムスタンプ用時間間隔算出部206により算出された時間間隔に基づいて、半導体メモリ208に記憶されたTSパケットにタイムスタンプがタイムスタンプ付加部209によって付加されるので、タイムスタンプの正確性を向上させると共に、ハードウェア規模の小型化を図ることを可能にする。
本発明の第1の実施の形態に係るタイムスタンプ付加装置1の構成例を示すブロック図である。 本発明の第1の実施の形態に係るタイムスタンプ付加装置1が実行する実行処理の概要を説明するための模式図である。 本実施の形態に係るタイムスタンプ付加装置1の処理対象であるタイムスタンプの付加されていないMPEG2−TSのデータの一例を示す模式図である。 本実施の形態に係るタイムスタンプ付加装置1内のDATAFIFO部106を説明するための模式図である。 本実施の形態に係るタイムスタンプ付加装置1の実行処理を説明するためのシーケンス図である。 本発明の第2の実施の形態に係るタイムスタンプ付加装置2の構成例を示すブロック図である。 本実施の形態に係るタイムスタンプ付加装置2の実行処理を説明するためのシーケンス図である。 本実施の形態に係るタイムスタンプ付加装置2の実行処理を説明するためのフローチャートである。 本実施の形態に係るタイムスタンプ付加装置2の実行処理を説明するためのフローチャートである。
符号の説明
1 タイムスタンプ付加装置、101 システムバス、102 バスインターフェース、103 半導体メモリ、104 TTS化処理部、105 DMAインターフェース、105A DMAバッファ、106 DATAFIFO部、107 TSパケット解析部、108 PCR_PID検出部、109 PCR検出部、110 タイムスタンプ用時間間隔算出部、111 タイムスタンプ付加部、112 CPU、2 タイムスタンプ付加装置、201 システムバス、202 PCR_PID検出部、203 PCR検出部、204 TSパケット解析部、205 TSパケット解析制御部、206 タイムスタンプ用時間間隔算出部、207 CPU、208 半導体メモリ、209 タイムスタンプ付加部

Claims (10)

  1. 外部から入力されたMPEG2−TS(MPEG2−Transport Stream)方式で伝送されるタイムスタンプが付加されていない複数のTSパケットを含むTS(Transport Stream)の先頭から、当該TSに含まれる各TSパケットを探索し、当該探索の結果、得られたPMT(Program Map Table)を解析することにより、当該PMTに含まれるPCR_PID(Program Clock Reference Packet Identifier)を検出するPCR_PID検出手段と、
    前記TSの先頭から前記PMTまでの間に含まれる各TSパケットを解析することによって、前記TSの先頭から前記PMTまでの間に含まれるPCR(Program Clock Reference)の値と当該PCRのTS内での位置情報とを検出すると共に、前記PMTから前記TSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とを検出するPCR検出手段と、
    前記PCR検出手段により検出されたPCR値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出手段と、
    前記時間間隔算出手段により算出された時間間隔に基づいて、前記外部から入力されたタイムスタンプが付加されていない各TSパケットに、前記時間間隔算出手段によって算出されたタイムスタンプを付加するタイムスタンプ付加手段とを備えたタイムスタンプ付加装置。
  2. MPEG2−TS方式で伝送されるタイムスタンプが付加されていない複数のTSパケットを含むTSが記憶された第1の記憶手段を更に備え、
    前記タイムスタンプ付加手段は、
    前記時間間隔算出手段により算出された時間間隔に基づいて、前記第1の記憶手段に記憶された各TSパケットにタイムスタンプを付加する請求項1に記載のタイムスタンプ付加装置。
  3. 前記第1の記憶手段から読み出されたTSパケットが先入れ先出し法に従って一時的に記憶される第2の記憶手段を更に備え、
    前記第2の記憶手段は、
    外部からTSパケットのデータを入力するための入力ポートと、
    前記入力ポートから入力されたTSパケットを前記タイムスタンプ付加手段に出力する第1の出力ポートと、
    前記入力ポートから入力されたTSパケット内にPCRが含まれるかを検査するための出力ポートであって、前記入力ポートから入力されたTSパケットを前記PCR検出手段に出力する第2の出力ポートとを備え、
    前記入力ポートから入力された全てのTSパケットに関して、当該TSパケットにPCRが含まれるかに関する検査を開始する場合には、前記入力ポートからのTSパケットの入力を停止し、前記入力ポートから入力された全てのTSパケットに関してPCRが含まれるかに関する検査が終了した場合に、前記入力ポートからのTSパケットの入力を再開する請求項2に記載のタイムスタンプ付加装置。
  4. 前記第2の記憶手段は、
    前記PCR検出手段によって前記第1の記憶手段から読み出されたデータが入力ポートから入力される請求項3に記載のタイムスタンプ付加装置。
  5. 前記PCR検出手段は、
    PCR_PIDが未知である場合には、前記第1の記憶手段から読み出したTSパケットを前記PCR_PID検出手段に対して出力し、
    PCR_PIDが既知である場合には、前記第2の記憶手段の有する第2の出力ポートからTSパケットのデータを読み出して、読み出したTSパケットのデータを前記PCR_PID検出手段に対して出力し、
    前記第2の記憶手段の有する第2の出力ポートから、前記入力ポートから前記第2の記憶手段に入力された全てのTSパケットを読み出して、当該全てのTSパケットに関してTSパケットにPCRが含まれるかに関する検査が終了した場合に、前記第1の記憶手段からTSパケットを読み出して、読み出したTSパケットをPCR_PID検出手段に対して出力する請求項3に記載のタイムスタンプ付加装置。
  6. 前記PCR_PID検出手段は、
    前記MPEG2−TSからPAT(Program Association Table)を検出し、検出したPATを解析することにより、PMT_PID(Program Map Table Packet Identifier)を取得し、取得したPMT_PIDからPMTを検出し、検出したPMTを解析することにより、PCR_PIDを取得し、取得したPCR_PIDを出力する請求項1に記載のタイムスタンプ付加装置。
  7. 前記時間間隔算出手段は、
    TSの先頭から最初に検出されたPCRまでの間に存在する第1の付加対象ブロックに含まれる各TSパケットに関しては、当該最初に検出されたPCRの値と、当該最初に検出されたPCRの次に検出されたPCRの値と、当該最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間に存在するTSパケットの数とから、最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間の時間間隔を算出し、かつ、前記タイムスタンプの初期値と、最初に検出されたPCRと当該最初に検出されたPCRの次に検出されたPCRとの間の時間間隔とから各TSパケットに付加するタイムスタンプの値を算出し、
    前記最初に検出されたPCRの次に検出されたPCRから前記TS内の最後のPCRまでの間に存在する、複数の処理ブロックを含む第2の付加対象ブロックに含まれる各TSパケットに関しては、前記各処理ブロックの先頭に含まれるPCRの値と、当該PCRの次に検出されたPCRの値と、前記各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間に存在するTSパケットの数とから、前記各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間の時間間隔を算出し、かつ、前記各処理ブロックの直前の処理ブロックの先頭に存在するTSパケットに付加されたタイムスタンプの値と、前記各処理ブロックの先頭に含まれるPCRの値と当該PCRの次に検出されたPCRの値とから、前記各処理ブロックの先頭に存在するTSパケットに付加するタイムスタンプの値を算出し、当該算出された各処理ブロックの先頭に存在するTSパケットに付加するタイムスタンプの値と、算出された各処理ブロックの先頭に含まれるPCRと当該PCRの次に検出されたPCRとの間の時間間隔とから前記各処理ブロックに含まれる各TSパケットに付加するタイムスタンプの値を算出し、
    前記TS内の最後のPCRから前記TSの終端までの間に存在する第3の付加対象ブロックに含まれる各TSパケットに関しては、前記最後のPCRの値と、前記最後のPCRの直前に検出されたPCRの値と、前記最後のPCRと前記最後のPCRの直前に検出されたPCRとの間に存在するTSパケットの数とから、最後に検出されたPCRと当該最後に検出されたPCRの直前に検出されたPCRとの間の時間間隔を算出し、かつ、前記最後のPCRの値と、最後に検出されたPCRと当該最後に検出されたPCRの直前に検出されたPCRとの間の時間間隔とから各TSパケットに付加するタイムスタンプの値を算出する請求項1に記載のタイムスタンプ付加装置。
  8. 前記第1の記憶手段は、TSパケットのDMA(Direct Memory Access)転送のためのインターフェースであるDMAインターフェースに内蔵されている
    請求項2に記載のタイムスタンプ付加装置。
  9. 外部から入力されたMPEG2−TS方式で伝送されるタイムスタンプが付加されていない複数のTSパケットを含むTSの先頭から、当該TSに含まれる各TSパケットを探索し、当該探索の結果、得られたPMTを解析することにより、当該PMTに含まれるPCR_PIDを検出するPCR_PID検出工程と、
    前記TSの先頭から前記PMTまでの間に含まれる各TSパケットを解析することによって、前記TSの先頭から前記PMTまでの間に含まれるPCRの値と当該PCRのTS内での位置情報とを検出すると共に、前記PMTから前記TSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とを検出するPCR検出工程と、
    前記PCR検出工程で検出されたPCR値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出工程と、
    前記時間間隔算出工程で算出された時間間隔に基づいて、前記外部から入力されたタイムスタンプが付加されていない各TSパケットに、前記時間間隔算出工程で算出されたタイムスタンプを付加するタイムスタンプ付加工程とを含むタイムスタンプ付加方法。
  10. MPEG2−TS方式で伝送されるタイムスタンプが付加されていないTSパケットを含むTSに対してタイムスタンプを付加するタイムスタンプ付加装置のコンピュータにインストールされたタイムスタンプ付加プログラムであって、
    前記タイムスタンプ付加装置のコンピュータに、
    外部から入力されたMPEG2−TS方式で伝送されるタイムスタンプが付加されていない複数のTSパケットを含むTSの先頭から、当該TSに含まれる各TSパケットを探索し、当該探索の結果、得られたPMTを解析することにより、当該PMTに含まれるPCR_PIDを検出するPCR_PID検出手順、
    前記TSの先頭から前記PMTまでの間に含まれる各TSパケットを解析することによって、前記TSの先頭から前記PMTまでの間に含まれるPCRの値と当該PCRのTS内での位置情報とを検出すると共に、前記PMTから前記TSの終端までの間のTSパケットに含まれる全てのPCRの値と当該各PCRのTS内での位置情報とを検出するPCR検出手順、
    前記PCR検出手順で検出されたPCR値に基づいて、タイムスタンプを付加するための時間間隔と、付加するタイムスタンプの値とを算出する時間間隔算出手順、
    前記時間間隔算出手順で算出された時間間隔に基づいて、前記外部から入力されたタイムスタンプが付加されていない各TSパケットに、前記時間間隔算出手順で算出されたタイムスタンプを付加するタイムスタンプ付加手順を実現させるためのタイムスタンプ付加プログラム。
JP2008208139A 2008-08-12 2008-08-12 タイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラム Expired - Fee Related JP4609546B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008208139A JP4609546B2 (ja) 2008-08-12 2008-08-12 タイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラム
US12/462,703 US7995587B2 (en) 2008-08-12 2009-08-07 Time stamp adding device, time stamp adding method, and time stamp adding program
CN2009101658972A CN101651839B (zh) 2008-08-12 2009-08-12 时间戳添加设备以及时间戳添加方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008208139A JP4609546B2 (ja) 2008-08-12 2008-08-12 タイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラム

Publications (2)

Publication Number Publication Date
JP2010045592A true JP2010045592A (ja) 2010-02-25
JP4609546B2 JP4609546B2 (ja) 2011-01-12

Family

ID=41673921

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008208139A Expired - Fee Related JP4609546B2 (ja) 2008-08-12 2008-08-12 タイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラム

Country Status (3)

Country Link
US (1) US7995587B2 (ja)
JP (1) JP4609546B2 (ja)
CN (1) CN101651839B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727502B2 (en) * 2013-07-26 2017-08-08 Infineon Technologies Ag System and method for direct memory access transfers
CN106909953B (zh) * 2017-03-02 2020-03-13 重庆砖家宝网络科技发展有限公司 时间戳标签打印方法及系统
CN108631900B (zh) * 2018-07-24 2020-10-30 北京新宇航星科技有限公司 高精度时间戳的前置打戳方法及系统
CN111092588A (zh) * 2019-12-27 2020-05-01 中国科学院电工研究所 一种电机数据流的控制系统
US11099966B2 (en) * 2020-01-09 2021-08-24 International Business Machines Corporation Efficient generation of instrumentation data for direct memory access operations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005223914A (ja) * 2004-02-04 2005-08-18 Samsung Electronics Co Ltd Mpeg−2データの伝送速度調節方法及び装置
JP2006067427A (ja) * 2004-08-30 2006-03-09 Sony Corp データ処理装置およびデータ処理方法
JP2006067568A (ja) * 2004-07-30 2006-03-09 Sharp Corp データ処理装置、プログラムおよび記録媒体
JP2007104085A (ja) * 2005-09-30 2007-04-19 Toshiba Corp 通信回線を用いるデジタル放送方法およびその装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2872104B2 (ja) 1996-05-14 1999-03-17 株式会社グラフィックス・コミュニケーション・ラボラトリーズ タイムスタンプ付加装置および方法、並びにそれを用いた動画像圧縮伸張伝送システムおよび方法
US6351474B1 (en) * 1998-01-14 2002-02-26 Skystream Networks Inc. Network distributed remultiplexer for video program bearing transport streams
JP4407007B2 (ja) * 2000-05-02 2010-02-03 ソニー株式会社 データ送信装置及び方法
US7693222B2 (en) * 2003-08-13 2010-04-06 Ericsson Television Inc. Method and system for re-multiplexing of content-modified MPEG-2 transport streams using PCR interpolation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005223914A (ja) * 2004-02-04 2005-08-18 Samsung Electronics Co Ltd Mpeg−2データの伝送速度調節方法及び装置
JP2006067568A (ja) * 2004-07-30 2006-03-09 Sharp Corp データ処理装置、プログラムおよび記録媒体
JP2006067427A (ja) * 2004-08-30 2006-03-09 Sony Corp データ処理装置およびデータ処理方法
JP2007104085A (ja) * 2005-09-30 2007-04-19 Toshiba Corp 通信回線を用いるデジタル放送方法およびその装置

Also Published As

Publication number Publication date
US7995587B2 (en) 2011-08-09
CN101651839B (zh) 2012-06-20
CN101651839A (zh) 2010-02-17
US20100040083A1 (en) 2010-02-18
JP4609546B2 (ja) 2011-01-12

Similar Documents

Publication Publication Date Title
US7447164B2 (en) Communication apparatus, transmission apparatus and reception apparatus
JP4609546B2 (ja) タイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラム
CN110418186B (zh) 音视频播放方法、装置、计算机设备和存储介质
JPH10276227A (ja) データ・ストリームの処理方法及びデータ処理システム
WO2022205734A1 (zh) 图像时间同步方法、装置、电子设备及存储介质
CN104216959B (zh) 一种ts文件的定位方法及装置
CN115312072B (zh) 音频路由管理方法、系统及电子设备
WO2025007738A1 (zh) 音画同步检测方法、装置、设备和存储介质
CN116610608B (zh) 直接内存访问描述符处理方法、系统、装置、设备及介质
CN113573088B (zh) 一种为直播视频流同步绘制识别对象的方法与设备
JP2007124495A (ja) ストリームデータ処理装置
JP3731283B2 (ja) 信号処理回路およびその方法
JP2005222446A (ja) オンボードデバッグ装置および半導体回路装置
US7797700B2 (en) Method of executing concurrent tasks by a subsystem managed by a central processor
US20070223538A1 (en) System and method for using generic comparators with firmware interface to assist video/audio decoders in achieving frame sync
CN115904774A (zh) 通信时间检测方法、装置、电子设备以及存储介质
US20110119465A1 (en) Data processing system
WO2025185615A1 (zh) 用于播放流媒体数据的方法、装置、设备和介质
CN115514949B (zh) 数据串流方法及系统
US20070011129A1 (en) Program handling data, method thereof, and device thereof
JP5093986B2 (ja) プロセッサ間通信方法及びプロセッサ間通信装置
CN118605692A (zh) 时钟域转换电路、方法及相关装置
KR100848904B1 (ko) 오디오 및 비디오 립싱크를 위한 실시간 pes 디코딩 방법
CN116567288A (zh) 信息生成方法和装置
JP2009278374A (ja) スタートコード検出装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100629

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: 20100914

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: 20100927

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees