JP2006067427A - データ処理装置およびデータ処理方法 - Google Patents
データ処理装置およびデータ処理方法 Download PDFInfo
- Publication number
- JP2006067427A JP2006067427A JP2004249910A JP2004249910A JP2006067427A JP 2006067427 A JP2006067427 A JP 2006067427A JP 2004249910 A JP2004249910 A JP 2004249910A JP 2004249910 A JP2004249910 A JP 2004249910A JP 2006067427 A JP2006067427 A JP 2006067427A
- Authority
- JP
- Japan
- Prior art keywords
- data
- counter
- amount
- packet
- time stamp
- 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.)
- Pending
Links
Images
Landscapes
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Time-Division Multiplex Systems (AREA)
Abstract
【課題】大量のストリームデータを伝送する際に、適切に時刻情報としてのタイムスタンプを付加することができるデータ処理装置およびデータ処理方法を提供する。
【解決手段】コンテンツデータC_Dataからタイムスタンプ付きMPEG−TSデータを生成する際に、カウンタを含むタイムスタンプ付加部11と、カウンタに対して、システム内のデータ転送レートに応じたカウントアップ量を算出するCPU20と、を有し、カウンタ112は、当該カウントアップ量に基づいてパケット毎にカウントアップし、かつ、システム内を転送されるMPEG−TSデータは、パケット毎にカウンタ値をタイムスタンプとして付加される。
【選択図】図2
【解決手段】コンテンツデータC_Dataからタイムスタンプ付きMPEG−TSデータを生成する際に、カウンタを含むタイムスタンプ付加部11と、カウンタに対して、システム内のデータ転送レートに応じたカウントアップ量を算出するCPU20と、を有し、カウンタ112は、当該カウントアップ量に基づいてパケット毎にカウントアップし、かつ、システム内を転送されるMPEG−TSデータは、パケット毎にカウンタ値をタイムスタンプとして付加される。
【選択図】図2
Description
画像、音声等の様々なコンテンツデータをストリームデータとして処理するデータ処理装置およびデータ処理方法に関する。
昨今、インターネット通信など、様々な通信媒体を介した画像、音声データ等のデータ転送が盛んに行われている。特に、近年においては、インターネット上のデータ転送において、従来から利用されているダウンロード型伝送方式に加えて、ストリーム型伝送方式によるサービスが増加してきている。
ストリーム型伝送方式は、送信側から受信端末にデータ送信が行われている間に、並列して受信データの再生処理を実行するものであり、インターネット電話・遠隔テレビ会議や、たとえばビデオオンデマンド(VOD)等、様々なコンテンツをストリーミング映像配信によって行うサービスに利用されている。
ストリーム型伝送方式は、送信側から受信端末にデータ送信が行われている間に、並列して受信データの再生処理を実行するものであり、インターネット電話・遠隔テレビ会議や、たとえばビデオオンデマンド(VOD)等、様々なコンテンツをストリーミング映像配信によって行うサービスに利用されている。
また、放送・通信・蓄積といったすべてのアプリケーションに対して汎用的に使用できる動画像圧縮方式として、MPEG(Moving Picture Experts Group)が知られている。
上記ストリーム型伝送方式では、MPEGによるトランスポートストリーム(以下、MPEG−TSという)を、イーサネット(登録商標)コントローラあるいはIEEE802.11に準拠した無線コントローラにより伝送することが行われている。たとえば、MPEG−TSは、RTP(Real-time Transport Protocol)/UDP(User Datagram Protocol)やHTTP(HyperText Transfer Protocol) /TCP(Transport Control Protocol)などのプロトコルに従ってパケット単位で伝送される。
上記ストリーム型伝送方式では、MPEGによるトランスポートストリーム(以下、MPEG−TSという)を、イーサネット(登録商標)コントローラあるいはIEEE802.11に準拠した無線コントローラにより伝送することが行われている。たとえば、MPEG−TSは、RTP(Real-time Transport Protocol)/UDP(User Datagram Protocol)やHTTP(HyperText Transfer Protocol) /TCP(Transport Control Protocol)などのプロトコルに従ってパケット単位で伝送される。
その際、上述した各プロトコルでは、時刻情報を入れるフィールドがないため、ネットワークでパケットの時系列上の順序が狂ってしまった場合には、受信側で正しくMPEG−TSパケットを再生することができない。
したがって、受信側で確実にMPEG−TSパケットを再生することを可能にするため、送信側においてMPEG−TSパケットに時間管理値であるタイムスタンプを付加することが行われる。また、そのタイムスタンプを処理してMPEG−TSデータを適切に再生する技術についても開示されている(たとえば、下記特許文献1参照)。
なお、ARIB(社団法人電波産業会)では、188バイト/パケットのMPEG−TSデータに対して、先頭に4バイトのタイムスタンプ(27MHzクロックのカウンタ値)を付加したTS(Timed TS)の規格化が検討されている。
したがって、受信側で確実にMPEG−TSパケットを再生することを可能にするため、送信側においてMPEG−TSパケットに時間管理値であるタイムスタンプを付加することが行われる。また、そのタイムスタンプを処理してMPEG−TSデータを適切に再生する技術についても開示されている(たとえば、下記特許文献1参照)。
なお、ARIB(社団法人電波産業会)では、188バイト/パケットのMPEG−TSデータに対して、先頭に4バイトのタイムスタンプ(27MHzクロックのカウンタ値)を付加したTS(Timed TS)の規格化が検討されている。
ところで、MEPG−TSデータに対してタイムスタンプを付加する処理としては、
〔1〕付加対象のMPEG−TSデータを外部から入力してタイムスタンプを付加する処理
〔2〕アナログ映像信号等をMPEGエンコーダによりMPEG−TSデータを生成して、生成されたMPEG−TSデータに対してタイムスタンプを付加する処理
の2通りの処理がある。
〔1〕付加対象のMPEG−TSデータを外部から入力してタイムスタンプを付加する処理
〔2〕アナログ映像信号等をMPEGエンコーダによりMPEG−TSデータを生成して、生成されたMPEG−TSデータに対してタイムスタンプを付加する処理
の2通りの処理がある。
上記処理〔1〕では、外部からMPEG−TSデータの先頭バイト(SOP)が到着した時刻における27MHzクロックのカウンタ値(4バイト)をラッチ等し、タイムスタンプとして後段のバッファに書き込む前に付加する。すなわち、MPEG−TSデータの各パケットが外部から到着した時刻を基準としてタイムスタンプを付加すればよい。
一方、上記処理〔2〕では、MPEGエンコーダにより生成されたMPEG−TSデータは、CPUを経由してメモリに格納される。その際、伝送効率の観点から、データ転送としてDMA転送などのバースト転送が用いられるのが一般的である。
しかしながら、処理〔1〕の場合と同様に、アナログ映像信号等が入力された時刻に応じてタイムスタンプを付加すると、バースト転送されたMPEG−TSのタイムスタンプの値はどれも同じ値になり、正しくタイムスタンプが付加できないという問題がある。
しかしながら、処理〔1〕の場合と同様に、アナログ映像信号等が入力された時刻に応じてタイムスタンプを付加すると、バースト転送されたMPEG−TSのタイムスタンプの値はどれも同じ値になり、正しくタイムスタンプが付加できないという問題がある。
かかる問題を回避するため、MPEGエンコーダから1TS単位でデータをCPUに入力することも考えられるが、データ伝送効率が著しく悪いうえ、CPUが入力データの伝送レートを正しく制御しなければならないなど、新たな問題が招来する。
本発明はかかる事情に鑑みてなされたものであり、その目的は、効率的にデータ転送を行いつつ、適切に時刻情報としてのタイムスタンプを付加することができるデータ処理装置およびデータ処理方法を提供することにある。
上記目的を達成するための本発明の第1の観点は、コンテンツデータを符号化して、第1のクロックに基づいた時刻情報を含むパケットからなるストリームデータを生成するストリームデータ生成部と、制御部と、パケット毎に、前記制御部により指定されたカウントアップ量をもって計数するカウンタと、前記カウンタの値をタイムスタンプとして、前記ストリームデータの各パケットに付加するタイムスタンプ付加部と、を有し、前記制御部は、前記ストリームデータのうち、少なくとも2つのパケットの時刻情報に基づいて、単位パケット当りの時刻情報の変化量を算出し、当該変化量を前記ストリームデータに対するカウントアップ量として指定するデータ処理装置である。
好適には、前記制御部は、外部から取得したストリームデータに対し、前記第1のクロックに同期して前記カウンタを動作させる第1の動作モードと、前記ストリームデータ生成部により生成されたストリームデータに対し、パケット毎に前記カウントアップ量をもって、前記カウンタを動作させる第2の動作モードと、を含み、前記第1および第2の動作モードのいずれかを選択する選択手段を有する。
好適には、前記制御部は、前記2つのパケットの時刻情報を取得するまでは、前記パケット単位のデータ量、前記第1のクロックの周波数、および前記コンテンツデータの転送レートから、パケット単位での前記カウンタのカウントアップ量を算出する。
上記目的を達成するための本発明の第2の観点は、コンテンツデータを符号化して、第1のクロックに基づいた時刻情報を含むパケットからなるストリームデータを生成するステップと、前記ストリームデータのうち、少なくとも2つのパケットの時刻情報に基づいて、単位パケット当りの時刻情報の変化量を算出するステップと、前記変化量を前記ストリームデータに対するカウントアップ量として、カウンタを動作させるステップと、前記カウンタの値をタイムスタンプとして、前記ストリームデータの各パケットに付加するステップとを有するデータ処理方法である。
本発明の第1の観点に係るデータ処理装置の作用は、以下の通りである。
すなわち、ストリームデータ生成部は、コンテンツデータを符号化して、第1のクロックに基づいた時刻情報を含むパケットからなるストリームデータを生成する。
制御部は、前記ストリームデータのうち、少なくとも2つのパケットの時刻情報に基づいて、単位パケット当りの時刻情報の変化量を算出し、当該変化量を前記ストリームデータに対するパケット単位のカウントアップ量として、前記カウンタを動作させる。
タイムスタンプ付加部は、前記カウンタの値をタイムスタンプとして、前記ストリームデータの各パケットに付加する。
すなわち、ストリームデータ生成部は、コンテンツデータを符号化して、第1のクロックに基づいた時刻情報を含むパケットからなるストリームデータを生成する。
制御部は、前記ストリームデータのうち、少なくとも2つのパケットの時刻情報に基づいて、単位パケット当りの時刻情報の変化量を算出し、当該変化量を前記ストリームデータに対するパケット単位のカウントアップ量として、前記カウンタを動作させる。
タイムスタンプ付加部は、前記カウンタの値をタイムスタンプとして、前記ストリームデータの各パケットに付加する。
したがって、本発明に係るデータ処理装置内で、ストリームデータについてまとまった単位でデータ転送を行った場合でも、そのデータ転送レートがカウンタのカウントアップ量に反映される結果、まとまった単位で転送されたデータに対して、適切にタイムスタンプを付加することができる。
すなわち、本発明によれば、効率的にデータ転送を行いつつ、適切に時刻情報としてのタイムスタンプを付加することが可能となる。
すなわち、本発明によれば、効率的にデータ転送を行いつつ、適切に時刻情報としてのタイムスタンプを付加することが可能となる。
実施の形態
以下、本発明のデータ処理装置の一実施形態としてのデータ送信装置1について、添付図面に関連付けて説明する。
データ送信装置1は、音楽、映画等の様々なコンテンツのデータ(以下、コンテンツデータ)を、タイムスタンプを付加したMPEG−TSデータの形で所定のプロトコルに従って送信するための装置である。
データ送信装置1は、
(1)コンテンツデータをタイムスタンプが付加されていないMPEG−TSデータとして入力し、タイムスタンプを付加する処理(外部入力)、
(2)コンテンツデータを内部でMPEG−TSデータに符号化し、その後にタイムスタンプを付加する処理、
のいずれの処理をも実行することが可能である。データ送信装置1は、両者のいずれかを選択して処理を行う。
また、データ送信装置1は、MPEG−TSデータについて、DMA転送などのバースト転送を可能とするため、タイムスタンプを付加する処理に特徴があり、特にこの点について、本発明の実施の形態を説明する。
以下、本発明のデータ処理装置の一実施形態としてのデータ送信装置1について、添付図面に関連付けて説明する。
データ送信装置1は、音楽、映画等の様々なコンテンツのデータ(以下、コンテンツデータ)を、タイムスタンプを付加したMPEG−TSデータの形で所定のプロトコルに従って送信するための装置である。
データ送信装置1は、
(1)コンテンツデータをタイムスタンプが付加されていないMPEG−TSデータとして入力し、タイムスタンプを付加する処理(外部入力)、
(2)コンテンツデータを内部でMPEG−TSデータに符号化し、その後にタイムスタンプを付加する処理、
のいずれの処理をも実行することが可能である。データ送信装置1は、両者のいずれかを選択して処理を行う。
また、データ送信装置1は、MPEG−TSデータについて、DMA転送などのバースト転送を可能とするため、タイムスタンプを付加する処理に特徴があり、特にこの点について、本発明の実施の形態を説明する。
図1は、実施形態に係るデータ送信装置1が扱うMPEG−TSデータのタイミングチャートであり、(a)はタイムスタンプを付加する前のMPEG−TSデータを、(b)はタイムスタンプを付加した後のMPEG−TSデータを、それぞれ示す。
図1において、(a−1)および(b−1)は27MHzのクロック信号を、(a−2)および(b−2)は同期パルスを、(a−3)および(b−3)はデータ有効(Data Valid)パルスを、(a−4)および(b−4)はMPEG−TSデータを、それぞれ示す。
図1において、(a−1)および(b−1)は27MHzのクロック信号を、(a−2)および(b−2)は同期パルスを、(a−3)および(b−3)はデータ有効(Data Valid)パルスを、(a−4)および(b−4)はMPEG−TSデータを、それぞれ示す。
図1(a)に示すように、MPEG−TSデータは、188バイトの固定長パケットにより構成され、各パケットは、同期バイト(Sync:0x47)から開始するヘッダと、それに続くペイロード(データ部分)からなる。各パケットの信号の同期は、(a−1)に示す27MHzのクロック信号に基づいて行われる。
図1(b)に示すように、後述するデータ送信装置1の処理によって、各パケットのヘッダの先頭に4バイトのタイムスタンプ(TM)が付加される。
図1(b)に示すように、後述するデータ送信装置1の処理によって、各パケットのヘッダの先頭に4バイトのタイムスタンプ(TM)が付加される。
データ送信装置1の全体構成
次に、データ送信装置1の構成について説明する。
図2は、実施形態に係るデータ送信装置1の構成を示すブロック図である。
図2に示すように、データ送信装置1は、MPEG−TSを処理するためのTS処理部10と、システム全体を統括するCPU20と、MPEGエンコーダ50により生成されるMPEG−TSデータを格納するメモリ(MEM)30と、送信処理のためのイーサネットコントローラ(ETH)40と、コンテンツデータC_DataからMPEG−TSデータを生成するMPEGエンコーダ(MPEG_ENC)50からなる。これらの構成要素間のデータ転送には、システムバス900が用いられる。
なお、MPEGエンコーダ50は、本発明のストリームデータ生成部の一実施形態である。以下では、MPEGによる符号化を一例としてMPEG−TS(トランスポートストリーム)データの場合を説明するが、パケット毎の時刻情報を含むストリームデータであれば、MPEG−TSデータ以外のストリームデータに適用可能である。後述するように、MPEG−TSデータには、時刻情報としてのPCR(Program Clock Reference) が含まれている。
次に、データ送信装置1の構成について説明する。
図2は、実施形態に係るデータ送信装置1の構成を示すブロック図である。
図2に示すように、データ送信装置1は、MPEG−TSを処理するためのTS処理部10と、システム全体を統括するCPU20と、MPEGエンコーダ50により生成されるMPEG−TSデータを格納するメモリ(MEM)30と、送信処理のためのイーサネットコントローラ(ETH)40と、コンテンツデータC_DataからMPEG−TSデータを生成するMPEGエンコーダ(MPEG_ENC)50からなる。これらの構成要素間のデータ転送には、システムバス900が用いられる。
なお、MPEGエンコーダ50は、本発明のストリームデータ生成部の一実施形態である。以下では、MPEGによる符号化を一例としてMPEG−TS(トランスポートストリーム)データの場合を説明するが、パケット毎の時刻情報を含むストリームデータであれば、MPEG−TSデータ以外のストリームデータに適用可能である。後述するように、MPEG−TSデータには、時刻情報としてのPCR(Program Clock Reference) が含まれている。
TS処理部10は、タイムスタンプの付加を始めとしてMPEG−TSデータに対して様々な処理を行う。かかる処理は、外部からMPEG−TSを入力する場合と、内部でMPEG−TSを生成する場合のいずれの場合に対しても実行される。
図2に示すように、TS処理部10は、タイムスタンプ付加部(TM_A)11、FIFOバッファ(FIFO)12、著作権情報設定部(CRS)13および暗号化処理部(ENCP)14を含んで構成される。
図2に示すように、TS処理部10は、タイムスタンプ付加部(TM_A)11、FIFOバッファ(FIFO)12、著作権情報設定部(CRS)13および暗号化処理部(ENCP)14を含んで構成される。
タイムスタンプ付加部(TM_A)11は、MPEG−TSの各パケットに対し、27MHzのクロック信号に同期してタイムスタンプを付加する処理を行う。
外部からのMPEG−TSデータは、タイムスタンプ付加部11に直接入力され、また、MPEGエンコーダ50により生成されたMPEG−TSデータは、システムバス900を介してタイムスタンプ付加部11に入力される。
タイムスタンプ付加部11の具体的な構成については、後述する。
外部からのMPEG−TSデータは、タイムスタンプ付加部11に直接入力され、また、MPEGエンコーダ50により生成されたMPEG−TSデータは、システムバス900を介してタイムスタンプ付加部11に入力される。
タイムスタンプ付加部11の具体的な構成については、後述する。
FIFOバッファ(FIFO)12は、タイムスタンプが付加されたMPEG−TSを一時的に格納し、入力した順序で出力する記憶領域である。
著作権情報設定部(CRS)13は、MPEG−TSデータに対して、コンテンツの著作権に関する情報の設定、たとえば、コンテンツを利用する際の使い方に関する権利、パーミッション等の設定を行う。
暗号化処理部(ENCP)14は、MPEG−TSデータに対して、コンテンツの保護のための暗号化処理を行う。
暗号化処理されたMPEG−TSデータは、システムバス900を介してイーサネットコントローラ40に供給され、RTP(Real-time Transport Protocol)/UDP(User Datagram Protocol)やHTTP(HyperText Transfer Protocol) /TCP(Transport Control Protocol)などのプロトコルに従ってパケット単位で伝送される。
暗号化処理部(ENCP)14は、MPEG−TSデータに対して、コンテンツの保護のための暗号化処理を行う。
暗号化処理されたMPEG−TSデータは、システムバス900を介してイーサネットコントローラ40に供給され、RTP(Real-time Transport Protocol)/UDP(User Datagram Protocol)やHTTP(HyperText Transfer Protocol) /TCP(Transport Control Protocol)などのプロトコルに従ってパケット単位で伝送される。
MPEGエンコーダ50は、コンテンツデータC_Dataを符号化してMPEG−TSデータを生成する。
その際、各パケットには、90kHzをカウントする33ビットの上位ビットと、27MHzへの拡張部分である9ビットの下位ビットからなる42ビットのPCRが含まれる。すなわち、PCRは、27MHzのクロックと同期をとることが可能な構成となっている。したがって、PCRは、27MHzのクロック(本発明の第1のクロック)に基づいて付された時刻情報であるということができる。
その際、各パケットには、90kHzをカウントする33ビットの上位ビットと、27MHzへの拡張部分である9ビットの下位ビットからなる42ビットのPCRが含まれる。すなわち、PCRは、27MHzのクロックと同期をとることが可能な構成となっている。したがって、PCRは、27MHzのクロック(本発明の第1のクロック)に基づいて付された時刻情報であるということができる。
メモリ30には、MPEGエンコーダ50により生成されたMPEG−TSデータを格納するための記憶領域である。MPEG−TSデータが、システムバス900およびCPU20を介してメモリ30に格納される。
タイムスタンプ付加部11の構成
次に、タイムスタンプ付加部11の構成について、図3に関連付けて説明する。
タイムスタンプ付加部11は、タイムスタンプの値を算出するためのカウンタ(CTR)を含み、このカウンタのカウントアップ量を、コンテンツデータC_Dataのシステム内での転送レートに基づいて設定する点に特徴がある。
次に、タイムスタンプ付加部11の構成について、図3に関連付けて説明する。
タイムスタンプ付加部11は、タイムスタンプの値を算出するためのカウンタ(CTR)を含み、このカウンタのカウントアップ量を、コンテンツデータC_Dataのシステム内での転送レートに基づいて設定する点に特徴がある。
図3において、カウンタ112は、27MHzのクロックCLK(本発明の第1のクロック)に基づいて計数する32ビットカウンタである。カウンタ112は、下記の2つの動作モードによって動作し、動作モードの選択がカウントモード選択部111により行われる。
なお、カウントモード選択部(MODE)111は、本発明の選択手段の一実施形態である。データ書込み部(DW)120は、本発明のタイムスタンプ付加部の一実施形態である。CPU20、カウントモード選択部(MODE)111およびレジスタ(REG)113は、本発明の制御部の一実施形態を構成する。
なお、カウントモード選択部(MODE)111は、本発明の選択手段の一実施形態である。データ書込み部(DW)120は、本発明のタイムスタンプ付加部の一実施形態である。CPU20、カウントモード選択部(MODE)111およびレジスタ(REG)113は、本発明の制御部の一実施形態を構成する。
〔1〕第1の動作モード
第1の動作モードでは、27MHzのクロックCLKに基づいて計数し、32ビットのカウント値Cntを出力する。第1の動作モードは、主として、外部から入力したMPEG−TSデータを処理する際に選択される。
〔2〕第2の動作モード
第2の動作モードでは、27MHzのクロックCLKに基づいて計数するのではなく、レジスタ113にロードされた値をカウントアップ量により、各パケットの先頭バイトの受信をトリガとしてカウントし、32ビットのカウント値Cntを出力する。第2の動作モードは、主として、MPEGエンコーダ50により生成したMPEG−TSデータを処理する際に選択される。
第1の動作モードでは、27MHzのクロックCLKに基づいて計数し、32ビットのカウント値Cntを出力する。第1の動作モードは、主として、外部から入力したMPEG−TSデータを処理する際に選択される。
〔2〕第2の動作モード
第2の動作モードでは、27MHzのクロックCLKに基づいて計数するのではなく、レジスタ113にロードされた値をカウントアップ量により、各パケットの先頭バイトの受信をトリガとしてカウントし、32ビットのカウント値Cntを出力する。第2の動作モードは、主として、MPEGエンコーダ50により生成したMPEG−TSデータを処理する際に選択される。
カウントモード選択部111は、MPEG−TSデータの各パケットの先頭バイト(SOP)をトリガとして、各パケット毎にモードを選択してカウントイネーブル信号CEをカウンタ112に与える。たとえば、第1の動作モードが選択されていれば、カウントイネーブル信号CEはHレベル(アクティブ)となっている。
また、カウントモード選択部111に対する制御信号mode_sのレベル変化により、カウンタ112は第2の動作モードを選択する。これにより、カウントイネーブル信号CEは、たとえばLレベルとなり、クロックCLKに基づくカウントを停止し、レジスタ113にロードされたΔTTSをカウントアップ量としてカウントが行われる。各パケットの先頭バイト(SOP)を受信したタイミングでのみ、ΔTTSをカウントアップ量としたカウントをパケット毎に行う。
また、カウントモード選択部111に対する制御信号mode_sのレベル変化により、カウンタ112は第2の動作モードを選択する。これにより、カウントイネーブル信号CEは、たとえばLレベルとなり、クロックCLKに基づくカウントを停止し、レジスタ113にロードされたΔTTSをカウントアップ量としてカウントが行われる。各パケットの先頭バイト(SOP)を受信したタイミングでのみ、ΔTTSをカウントアップ量としたカウントをパケット毎に行う。
カウンタ112により生成される32ビットのカウント値Cntは、データ書込み部(DW)120に与えられる。
タイミングジェネレータ(TG)130は、各パケットの先頭バイト(SOP)の受信に応じて、制御信号としての入力切替信号SELおよびライトイネーブル信号WEを、それぞれデータ書込み部(DW)120およびFIFOバッファ(FIFO)12に与える。
これにより、データ書込み部120は、MPEG−TSデータとカウント値Cntを選択的に取り込み、MPEG−TSデータの先頭に32ビット(4バイト)のカウント値Cntを書き込む。具体的には、図1(b)の(b−4)に示したように、カウント値Cntを先頭4バイトのタイムスタンプ(TM)として各パケットに書き込む。
タイミングジェネレータ(TG)130は、各パケットの先頭バイト(SOP)の受信に応じて、制御信号としての入力切替信号SELおよびライトイネーブル信号WEを、それぞれデータ書込み部(DW)120およびFIFOバッファ(FIFO)12に与える。
これにより、データ書込み部120は、MPEG−TSデータとカウント値Cntを選択的に取り込み、MPEG−TSデータの先頭に32ビット(4バイト)のカウント値Cntを書き込む。具体的には、図1(b)の(b−4)に示したように、カウント値Cntを先頭4バイトのタイムスタンプ(TM)として各パケットに書き込む。
タイムスタンプが書き込まれたMPEG−TSデータは、ライトイネーブル信号WEに同期したタイミングで、順にFIFOバッファ12に格納される。
ΔTTSの算出方法
次に、第2の動作モードで必要となるΔTTSの算出方法について説明する。
第2の動作モードにおけるカウンタ112のカウントアップ量は、CPU20により以下の通り算出されて、レジスタ113にロードされる。
メモリ30から転送されるMPEG−TSデータの各パケットには、時刻情報としての42ビットのPCR(Program Clock Reference) が含まれているので、転送レートに応じたパケット間の時間関係がわかる。
すなわち、n−1番目のパケットTS_NO(n−1)のPCRをPCR(n−1)、n番目のパケットTS_NO(n)のPCRをPCR(n)とすると、パケット間でカウントアップすべき量ΔTTSは、下記(1)式の通りとなる。
ΔTTS={PCR(n)−PCR(n−1)}/{TS_NO(n)−TS_NO(n−1)} … (1)
上記(1)式によれば、実際の転送レートに応じた正確なカウントアップ量を算出することが可能であるが、少なくとも2つのパケットのPCRが得られないと、ΔTTSを算出することはできない。たとえば、各パケットの転送は30〜100ms程度であるので、最悪200ms経過しなければ、ΔTTSを算出することができない。
次に、第2の動作モードで必要となるΔTTSの算出方法について説明する。
第2の動作モードにおけるカウンタ112のカウントアップ量は、CPU20により以下の通り算出されて、レジスタ113にロードされる。
メモリ30から転送されるMPEG−TSデータの各パケットには、時刻情報としての42ビットのPCR(Program Clock Reference) が含まれているので、転送レートに応じたパケット間の時間関係がわかる。
すなわち、n−1番目のパケットTS_NO(n−1)のPCRをPCR(n−1)、n番目のパケットTS_NO(n)のPCRをPCR(n)とすると、パケット間でカウントアップすべき量ΔTTSは、下記(1)式の通りとなる。
ΔTTS={PCR(n)−PCR(n−1)}/{TS_NO(n)−TS_NO(n−1)} … (1)
上記(1)式によれば、実際の転送レートに応じた正確なカウントアップ量を算出することが可能であるが、少なくとも2つのパケットのPCRが得られないと、ΔTTSを算出することはできない。たとえば、各パケットの転送は30〜100ms程度であるので、最悪200ms経過しなければ、ΔTTSを算出することができない。
一方、システム内で、MPEG−TSデータを転送する場合には、通常転送レートTR〔Mbps〕がCPU20より指定されるので、この転送レートを用いて、下記(2)式のように算出することもできる。
ΔTTS=(パケット単位のデータ量)×(クロックの周波数)/(転送レートTR)
=(188×8)〔ビット〕×27〔MHz〕/TR〔Mbps〕
= 40608/TR … (2)
上記(2)式によれば、実際のデータ転送を待たずとも、予め転送レートに基づいて算出することができる。しかし、上記(2)式は理論的には正しい値であるものの、実際にデータが転送される際の転送レートはシステムの状態に応じて変化するため、正確な転送レートを反映していない場合がある。
ΔTTS=(パケット単位のデータ量)×(クロックの周波数)/(転送レートTR)
=(188×8)〔ビット〕×27〔MHz〕/TR〔Mbps〕
= 40608/TR … (2)
上記(2)式によれば、実際のデータ転送を待たずとも、予め転送レートに基づいて算出することができる。しかし、上記(2)式は理論的には正しい値であるものの、実際にデータが転送される際の転送レートはシステムの状態に応じて変化するため、正確な転送レートを反映していない場合がある。
タイムスタンプ付加部11の動作
次に、タイムスタンプ付加部11の動作について説明する。
〔1〕コンテンツデータC_Dataを外部からTSとして入力する場合の動作
外部からMPEG−TSデータを入力する場合は、TS処理部10にMPEG−TSデータの各パケットが到着した時刻に応じて、タイムスタンプの値を決定することができる。具体的には、MPEG−TSデータの各パケットを入力したタイミングで、27MHzで動作するカウンタをラッチ等してそのカウント値を各パケットに書き込む。
次に、タイムスタンプ付加部11の動作について説明する。
〔1〕コンテンツデータC_Dataを外部からTSとして入力する場合の動作
外部からMPEG−TSデータを入力する場合は、TS処理部10にMPEG−TSデータの各パケットが到着した時刻に応じて、タイムスタンプの値を決定することができる。具体的には、MPEG−TSデータの各パケットを入力したタイミングで、27MHzで動作するカウンタをラッチ等してそのカウント値を各パケットに書き込む。
図3に関連付けて、外部からTSを入力する場合の動作を説明する。
外部からMPEG−TSデータを入力する場合、カウントモード選択部111は、制御信号mode_sに応じて第1の動作モードを選択する。すなわち、カウンタ112は、27MHzのクロックCLKに応じてカウントする。
MPEG−TSデータの各パケットの先頭バイト(SOP)を受信する毎に、カウンタ112の32ビットのカウント値Cntがラッチされ、その値がデータ書込み部120に順次取り込まれる。データ書込み部120は、順次カウント値Cntを各パケットの先頭にタイムスタンプとして書き込む。
タイムスタンプ付きMPEG−TSデータは、ライトイネーブル信号WEに応じて、順次FIFOバッファ12に格納される。
外部からMPEG−TSデータを入力する場合、カウントモード選択部111は、制御信号mode_sに応じて第1の動作モードを選択する。すなわち、カウンタ112は、27MHzのクロックCLKに応じてカウントする。
MPEG−TSデータの各パケットの先頭バイト(SOP)を受信する毎に、カウンタ112の32ビットのカウント値Cntがラッチされ、その値がデータ書込み部120に順次取り込まれる。データ書込み部120は、順次カウント値Cntを各パケットの先頭にタイムスタンプとして書き込む。
タイムスタンプ付きMPEG−TSデータは、ライトイネーブル信号WEに応じて、順次FIFOバッファ12に格納される。
〔2〕コンテンツデータC_Data基づいて内部でTSを生成する場合の動作
コンテンツデータC_Dataは、MPEGエンコーダ50によりMPEG−TSデータの形に符号化され、そのデータは、DMA転送によってCPU20を介してメモリ30に格納される。さらに、イーサネットコントローラ40経由で伝送する場合には、メモリ30内のMPEG−TSデータは、CPU20を介したDMA転送によりTS処理部10へ転送が行われ、タイムスタンプが付加される。
すなわち、画像等を含むコンテンツデータC_Dataは、たとえば、画像のGOP(Group Of Picture)単位毎にシステムバス900によって転送するのが一般的であり、その際、DMA転送等の効率的なデータ転送が利用される。
コンテンツデータC_Dataは、MPEGエンコーダ50によりMPEG−TSデータの形に符号化され、そのデータは、DMA転送によってCPU20を介してメモリ30に格納される。さらに、イーサネットコントローラ40経由で伝送する場合には、メモリ30内のMPEG−TSデータは、CPU20を介したDMA転送によりTS処理部10へ転送が行われ、タイムスタンプが付加される。
すなわち、画像等を含むコンテンツデータC_Dataは、たとえば、画像のGOP(Group Of Picture)単位毎にシステムバス900によって転送するのが一般的であり、その際、DMA転送等の効率的なデータ転送が利用される。
図3に関連付けて、内部でTSを生成する場合のタイムスタンプ付加部11の動作を説明する。
メモリ30からTS処理部10に対してMPEG−TSデータが転送される際には、予めCPU20によって、前述した(1)式または(2)式に基づいて、ΔTTSが算出され、レジスタ113にその値がロードされる。
カウントモード選択部111は、制御信号mode_sに応じて第2の動作モードを選択する。すなわち、カウンタ112は、クロックCLKによってカウントせずに、レジスタ113にロードされたΔTTSをカウントアップ量として、パケット毎にカウントアップする。
MPEG−TSデータの各パケットの先頭バイト(SOP)を受信する毎に、カウンタ112は、ΔTTSだけカウントアップし、そのカウント値がデータ書込み部120に順次取り込まれる。データ書込み部120では、順次カウント値Cntが各パケットの先頭にタイムスタンプとして書き込まれる。
タイムスタンプ付きMPEG−TSデータは、ライトイネーブル信号WEに応じて、順次FIFOバッファ12に格納される。
メモリ30からTS処理部10に対してMPEG−TSデータが転送される際には、予めCPU20によって、前述した(1)式または(2)式に基づいて、ΔTTSが算出され、レジスタ113にその値がロードされる。
カウントモード選択部111は、制御信号mode_sに応じて第2の動作モードを選択する。すなわち、カウンタ112は、クロックCLKによってカウントせずに、レジスタ113にロードされたΔTTSをカウントアップ量として、パケット毎にカウントアップする。
MPEG−TSデータの各パケットの先頭バイト(SOP)を受信する毎に、カウンタ112は、ΔTTSだけカウントアップし、そのカウント値がデータ書込み部120に順次取り込まれる。データ書込み部120では、順次カウント値Cntが各パケットの先頭にタイムスタンプとして書き込まれる。
タイムスタンプ付きMPEG−TSデータは、ライトイネーブル信号WEに応じて、順次FIFOバッファ12に格納される。
〔3〕ΔTTSが算出されるまでの動作
前述したように、ΔTTSは、(1)式によってPCRの値に基づくΔTTSを算出することが精度上望ましい一方で、(1)式によってΔTTSを算出するためには、少なくとも2つのパケットのPCRを取得するまで(最悪200ms程度)待たなくてはならない。そこで、実施形態に係るデータ送信装置1では、PCRの値に基づくΔTTSが算出できるまでの間、(2)式によって転送レートTRに基づくΔTTSを算出する。
具体的には、予めCPU20により上記(2)式によって転送レートに基づくΔTTSを算出してレジスタ113にその値をロードする。メモリ30よりデータを転送し、カウンタ112は、レジスタ113上のΔTTSをカウントアップ量としてカウント値を算出する。その後、CPU20により(1)式によってΔTTSを算出した時点で、レジスタ113のΔTTSを更新し、カウンタ112は、更新されたΔTTSをカウントアップ量としてカウント値を算出するように構成する。
前述したように、ΔTTSは、(1)式によってPCRの値に基づくΔTTSを算出することが精度上望ましい一方で、(1)式によってΔTTSを算出するためには、少なくとも2つのパケットのPCRを取得するまで(最悪200ms程度)待たなくてはならない。そこで、実施形態に係るデータ送信装置1では、PCRの値に基づくΔTTSが算出できるまでの間、(2)式によって転送レートTRに基づくΔTTSを算出する。
具体的には、予めCPU20により上記(2)式によって転送レートに基づくΔTTSを算出してレジスタ113にその値をロードする。メモリ30よりデータを転送し、カウンタ112は、レジスタ113上のΔTTSをカウントアップ量としてカウント値を算出する。その後、CPU20により(1)式によってΔTTSを算出した時点で、レジスタ113のΔTTSを更新し、カウンタ112は、更新されたΔTTSをカウントアップ量としてカウント値を算出するように構成する。
また、(1)式によってΔTTSを算出するまでの間、メモリ30より1TSパケット単位でデータ転送を行い、タイムスタンプ付加部11では第1の動作モードとして処理してもよい。すなわち、カウンタ112を27MHzのクロックCLKに基づいてカウントし、各パケットが転送される毎にカウンタ112のカウント値をラッチしてタイムスタンプとして付加する。
その後、CPU20により(1)式によってΔTTSを算出した時点で、カウントモード選択部111は第2の動作モードを選択し、レジスタ113へΔTTSをロードする。そして、カウンタ112は、そのΔTTSをカウントアップ量としてカウント値を算出する。
その後、CPU20により(1)式によってΔTTSを算出した時点で、カウントモード選択部111は第2の動作モードを選択し、レジスタ113へΔTTSをロードする。そして、カウンタ112は、そのΔTTSをカウントアップ量としてカウント値を算出する。
上述したように、本実施形態に係るデータ送信装置1によれば、コンテンツデータC_Dataからタイムスタンプ付きMPEG−TSデータを生成する際に、カウンタ112と、当該カウンタ112に対して、システム内のデータ転送レートに応じたカウントアップ量ΔTTSを算出するCPU20と、データ転送に先立ってΔTTSがロードされるレジスタ113と、を有し、カウンタ112は、レジスタ113のΔTTSに基づいてパケット毎にカウントアップし、かつ、システム内を転送されるMPEG−TSデータは、パケット毎にカウンタ112のカウント値をタイムスタンプとして付加される構成としたので、以下の効果を得ることができる。
すなわち、レジスタ113にΔTTSが一旦ロードされると、CPU20はMPEG−TSデータのデータ転送に対してレート制御する必要がなく、DMA転送などのバースト転送によってシステム内での効率的なデータ転送を行うことができる。バースト転送を行っても、各パケットのタイムスタンプがすべて同一となることはなく、適切にタイムスタンプが付加される。
すなわち、レジスタ113にΔTTSが一旦ロードされると、CPU20はMPEG−TSデータのデータ転送に対してレート制御する必要がなく、DMA転送などのバースト転送によってシステム内での効率的なデータ転送を行うことができる。バースト転送を行っても、各パケットのタイムスタンプがすべて同一となることはなく、適切にタイムスタンプが付加される。
本実施形態に係るデータ送信装置1によれば、カウントモード選択部111を有し、カウンタ112が27MHzのクロックに同期してカウントする第1の動作モードと、カウンタ112のカウントアップ量がパケット毎にレジスタ113にロードされたΔTTSによって規定される第2の動作モード、を選択可能な構成としたので、外部からのMPEG−TSデータにタイムスタンプを付加する処理と、内部で生成したMPEG−TSデータにタイムスタンプを付加する処理と、を選択的に実行することができる。
本実施形態に係るデータ送信装置1によれば、CPU20は、内部で生成したMPEG−TSデータに対するΔTTSに対して、PCRに基づく第1の算出方法と、転送レートTRに基づく第2の算出方法、により算出することができ、第2の算出方法より正確なΔTTSを算出可能な第1の算出方法によりΔTTSが算出するまでは、第2の算出方法によりΔTTSを算出するように構成した。
したがって、最初から、効率的なデータ転送を行いつつ、第1の算出方法によるΔTTSが算出される以前でも、第2の算出方法による比較的精度が高いタイムスタンプを付加することができる。
したがって、最初から、効率的なデータ転送を行いつつ、第1の算出方法によるΔTTSが算出される以前でも、第2の算出方法による比較的精度が高いタイムスタンプを付加することができる。
なお、より正確な第1の算出方法によりΔTTSが算出するまでは、1TSパケット毎にデータ転送して第1の動作モードによってタイムスタンプを付加するように構成することもできる。かかる場合は、第1の算出方法によりΔTTSが算出するまでは、効率的なデータ転送を行うことはできないが、最初から精度が高いタイムスタンプを付加することができる。
本発明は、上述した内容に拘泥せず、本発明の要旨を変更しない範囲で様々な改変を行うことが可能である。
たとえば、上述した実施形態の内容では、外部からのMPEG−TSデータは、第1の動作モードによって動作することとしたが、第2の動作モードによって動作するように構成してもよい。その際には、図2のTS処理部10内に、入力したMPEG−TSデータから各パケットのPCRを検出するためのPCR検出手段を設け、検出されたPCRに基づいてCPU20がΔTTSを算出するように構成する。
これにより、外部からのMPEG−TSデータがレート制御されていない場合や、入力部のバッファ等の存在によりデータ入力時のカウンタの値が正確なタイムスタンプを反映しない場合でも、適切なタイムスタンプを付加することができる。
たとえば、上述した実施形態の内容では、外部からのMPEG−TSデータは、第1の動作モードによって動作することとしたが、第2の動作モードによって動作するように構成してもよい。その際には、図2のTS処理部10内に、入力したMPEG−TSデータから各パケットのPCRを検出するためのPCR検出手段を設け、検出されたPCRに基づいてCPU20がΔTTSを算出するように構成する。
これにより、外部からのMPEG−TSデータがレート制御されていない場合や、入力部のバッファ等の存在によりデータ入力時のカウンタの値が正確なタイムスタンプを反映しない場合でも、適切なタイムスタンプを付加することができる。
1…データ送信装置、10…TS処理部、11…タイムスタンプ付加部、110…カウンタ制御部、111…カウントモード選択部(MODE)、112…カウンタ(CTR)、113…レジスタ、120…データ書込み部(DW)、130…タイミングジェネレータ(TG)、12…FIFOバッファ(FIFO)、13…著作権情報設定部(CRS)、14…暗号化処理部(ENCP)、20…CPU、30…メモリ(MEM)、40…イーサネットコントローラ(ETH)、50…MPEGエンコーダ(MPEG_ENC)、900…システムバス。
Claims (7)
- コンテンツデータを符号化して、第1のクロックに基づいた時刻情報を含むパケットからなるストリームデータを生成するストリームデータ生成部と、
制御部と、
パケット毎に、前記制御部により指定されたカウントアップ量をもって計数するカウンタと、
前記カウンタの値をタイムスタンプとして、前記ストリームデータの各パケットに付加するタイムスタンプ付加部と、を有し、
前記制御部は、前記ストリームデータのうち、少なくとも2つのパケットの時刻情報に基づいて、単位パケット当りの時刻情報の変化量を算出し、当該変化量を前記ストリームデータに対するカウントアップ量として指定する
データ処理装置。 - 前記制御部は、
前記パケット単位のデータ量、前記第1のクロックの周波数、および前記コンテンツデータの転送レートから、パケット単位での前記カウンタのカウントアップ量を算出して指定する
請求項1記載のデータ処理装置。 - 前記制御部は、
外部から取得したストリームデータに対し、前記第1のクロックに同期して前記カウンタを動作させる第1の動作モードと、
前記ストリームデータ生成部により生成されたストリームデータに対し、パケット毎に前記カウントアップ量をもって、前記カウンタを動作させる第2の動作モードと、を含み、
前記第1および第2の動作モードのいずれかを選択する選択手段を有する
請求項1記載のデータ処理装置。 - 前記タイムスタンプ付加部は、
前記2つのパケットの時刻情報を取得するまでは、前記カウンタが前記第1のクロックに同期して計数する値を読み取って、1パケット毎にタイムスタンプを付加する
請求項1記載のデータ処理装置。 - 前記制御部は、
前記2つのパケットの時刻情報を取得するまでは、前記パケット単位のデータ量、前記第1のクロックの周波数、および前記コンテンツデータの転送レートから、パケット単位での前記カウンタのカウントアップ量を算出する
請求項1記載のデータ処理装置。 - 前記選択手段が第1の動作モードを選択した場合、
外部から取得したストリームデータのうち、少なくとも2つのパケットの時刻情報が得られた後は、単位パケット当りの時刻情報の変化量を算出し、当該変化量だけ前記カウンタをカウントアップさせたカウンタの値をタイムスタンプとして、前記ストリームデータの最初のパケットに対して付加する
請求項3記載のデータ処理装置。 - コンテンツデータを符号化して、第1のクロックに基づいた時刻情報を含むパケットからなるストリームデータを生成するステップと、
前記ストリームデータのうち、少なくとも2つのパケットの時刻情報に基づいて、単位パケット当りの時刻情報の変化量を算出するステップと、
前記変化量を前記ストリームデータに対するカウントアップ量として、カウンタを動作させるステップと、
前記カウンタの値をタイムスタンプとして、前記ストリームデータの各パケットに付加するステップと
を有するデータ処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004249910A JP2006067427A (ja) | 2004-08-30 | 2004-08-30 | データ処理装置およびデータ処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004249910A JP2006067427A (ja) | 2004-08-30 | 2004-08-30 | データ処理装置およびデータ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006067427A true JP2006067427A (ja) | 2006-03-09 |
Family
ID=36113473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004249910A Pending JP2006067427A (ja) | 2004-08-30 | 2004-08-30 | データ処理装置およびデータ処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006067427A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010045592A (ja) * | 2008-08-12 | 2010-02-25 | Sony Corp | タイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラム |
-
2004
- 2004-08-30 JP JP2004249910A patent/JP2006067427A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010045592A (ja) * | 2008-08-12 | 2010-02-25 | Sony Corp | タイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラム |
JP4609546B2 (ja) * | 2008-08-12 | 2011-01-12 | ソニー株式会社 | タイムスタンプ付加装置、タイムスタンプ付加方法、及びタイムスタンプ付加プログラム |
US7995587B2 (en) | 2008-08-12 | 2011-08-09 | Sony Corporation | Time stamp adding device, time stamp adding method, and time stamp adding program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2548355B1 (en) | Media stream filtering and routing in accordance with a recovered media clock | |
TWI419565B (zh) | 緩衝媒體流之封包的方法、緩衝媒體流之系統、用於傳送之裝置與晶片組、伺服器、以及電腦程式產品 | |
KR100709484B1 (ko) | 컨텐츠 수신기 및 컨텐츠 송신기 | |
US20060007958A1 (en) | Multiplexing method and apparatus to generate transport stream | |
KR20100050516A (ko) | 네트워크에서의 데이터 콘텐츠 스트리밍 | |
JP5380862B2 (ja) | Ipストリーム送受信システム、ipストリーム受信装置及びそれらに用いる受信処理タイミング同期化方法 | |
JP2005534219A (ja) | ウォールクロックを持つシステムに対するジッタ補正方法 | |
US7321602B2 (en) | Apparatus and method for inserting null packet in digital broadcasting transmission system | |
JP6232870B2 (ja) | 無線通信システム、無線通信方法、プログラム、及び記録媒体 | |
US8514945B2 (en) | IP stream tramsmitting/receiving system, IP stream receiving device and receiving process timing synchronization method used for the same | |
JP2003249922A (ja) | データ受信装置、および受信データ処理方法、並びにコンピュータ・プログラム | |
JP4092705B2 (ja) | ストリーム送信装置および受信装置、ならびに送受信方法 | |
US6735223B1 (en) | Method of controlling offset of time stamp and apparatus for transmitting packet using the same | |
JP2006067427A (ja) | データ処理装置およびデータ処理方法 | |
JP2008035197A (ja) | クロック回路、映像処理装置およびクロック調整方法 | |
JP4612688B2 (ja) | 受信装置 | |
JP5239405B2 (ja) | Ts受信装置及びそれに用いるタイミング再生方法 | |
WO2007004611A1 (ja) | 出力回路、制御プログラム製品および制御方法 | |
JP6484403B2 (ja) | 通信装置、通信プログラム、通信方法 | |
JP5441650B2 (ja) | メディア受信装置 | |
JP2008035198A (ja) | 映像処理装置およびパケット処理方法 | |
KR0154005B1 (ko) | 시스템 부호화기를 위한 재생시간정보 발생장치 | |
JP2005110055A (ja) | 受信装置及び受信データ制御方法 | |
JP2006080715A (ja) | トランスポート・ストリーム送信装置および受信装置 | |
JP2008199516A (ja) | データ処理装置 |