JPWO2005067252A1 - データ受信装置 - Google Patents

データ受信装置 Download PDF

Info

Publication number
JPWO2005067252A1
JPWO2005067252A1 JP2005516870A JP2005516870A JPWO2005067252A1 JP WO2005067252 A1 JPWO2005067252 A1 JP WO2005067252A1 JP 2005516870 A JP2005516870 A JP 2005516870A JP 2005516870 A JP2005516870 A JP 2005516870A JP WO2005067252 A1 JPWO2005067252 A1 JP WO2005067252A1
Authority
JP
Japan
Prior art keywords
unit
time information
data
time
packet
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
JP2005516870A
Other languages
English (en)
Other versions
JP4694969B2 (ja
Inventor
太田 良隆
良隆 太田
濱本 康男
康男 濱本
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2005516870A priority Critical patent/JP4694969B2/ja
Publication of JPWO2005067252A1 publication Critical patent/JPWO2005067252A1/ja
Application granted granted Critical
Publication of JP4694969B2 publication Critical patent/JP4694969B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • 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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本発明のデータ受信装置は、データパケットに含まれる複数のパケットを格納するための受信データバッファ部と、受信データバッファ部に格納されているデータの量を計測する受信データ量計測部と、周波数が可変なクロックを生成する可変クロック生成部と、可変クロック生成部が生成するクロックの周波数に応じてカウントされる第2の時間情報を出力する時間情報出力部と、パケットに付加されている第1の時間情報と時間情報出力部から出力される第2の時間情報とを比較して、受信データバッファ部に格納されているパケットを出力するタイミングを制御する第1の時間情報比較部とを備える。受信データ量計測部は、可変クロック生成部が生成するクロックの周波数を受信データ量計測部による計測値に応じて制御する。

Description

本発明は、有線回線や無線回線を介して伝送されてくるMPEG2−TS等の映像信号や音響信号等を受信するためのデータ受信装置に関し、より特定的には、伝送される映像信号や音響信号等の同期を確保することができるデータ受信装置に関する。
従来、IEEE802.11に代表される無線ローカルエリアネットワーク等の無線回線を介して、映像信号や音響信号等を伝送するために、送信側と受信側との間で信号の同期を実現する技術が存在する(例えば、特許文献1参照)。
図11は、特許文献1に記載されている従来の送信側の無線親機900の機能的構成を示すブロック図である。図12は、特許文献1に記載されている従来の受信側の無線子機920の機能的構成を示すブロック図である。図13は、特許文献1に記載されている従来の送信側の無線親局から送信されるデータパケット990のフレーム構造を示す図である。以下、図11,図12,および図13を参照しながら、特許文献1に記載されている無線親機900および無線子機920の動作について説明する。
無線親機900において、MPEG2−TSエンコード部901に入力した映像信号は、MPEG2−TSパケット950に変換されて出力される。タイムスタンプ付加部902は、MPEG2−TSパケット950がMPEG2−TSエンコード部901から出力される時間に応じたタイムスタンプ951を、MPEG2−TSパケット950に付加する。ここで付加されるタイムスタンプ951は、ビーコン用タイマ部908からのタイマ値を含む。
通信プロトコル処理部903は、タイムスタンプ951が付加されたMPEG2−TSパケット950を一つのデータブロック941とし、データブロック941と複数のデータブロック942〜94Nとを結合して、データヘッダ980を付加して出力する。MAC処理部904のフレーム組み立て部909は、通信プロトコル処理部903からの出力に対して、MACヘッダ970を付加して、出力する。RF部905は、フレーム組み立て部909からの出力に対して、物理層ヘッダ960を付加して出力する。アンテナ906は、RF部905からの出力を無線信号として、無線通信回線路に放射する。
クロック生成部907は、クロックを生成して、ビーコン用タイマ部908に入力する。ビーコン用タイマ部908は、クロックに基づいて、現在のタイマ値(たとえば、現在時刻)を設定して出力する。ビーコン生成部910は、ビーコン用タイマ部908からのタイマ値を含むビーコンを生成する。フレーム組み立て部909は、ビーコン生成部910が生成したビーコンに対して、MACヘッダを付加して出力する。RF部905は、フレーム組み立て部909からの出力に対して、物理層ヘッダ960を付加して出力する。アンテナ906は、RF部905からの出力をビーコン信号として、無線通信回線路に放射する。
無線子機920において、無線通信回線路を介して伝送された無線信号は、アンテナ921で受信される。アンテナ921で受信された無線信号は、RF部922を介して、MAC処理部923のフレーム解析部925に入力される。フレーム解析部925は、受信した信号が自機器宛であるか否か解析する。自機器宛である場合、フレーム解析部925は、受信した信号を受信データ処理部927に入力する。受信データ処理部927は、受信した信号がデータパケット990である場合、当該データパケット990を通信プロトコル処理部924に入力する。一方、受信した信号がビーコン信号である場合、受信データ処理部927は、当該ビーコン信号をビーコン用タイマ部926に入力する。
通信プロトコル処理部924は、受信したデータパケット990の物理層ヘッダ960,MACヘッダ970,データヘッダ980を解析して、データブロック941〜94Nを抽出して、抽出したデータブロック941〜94Nを受信データバッファ部933に格納する。
ビーコン用タイマ部926は、クロック生成部928から出力されるクロックに基づいて、現在のタイマ値(たとえば、現在時刻)を設定する。ビーコン用タイマ部926は、受信データ処理部927からビーコン信号が入力された場合、当該ビーコン信号に含まれるタイマ値と一致するように、現在のタイマ値を設定し直す。これにより、無線親機900におけるビーコン用タイマ部908と無線子機920におけるビーコン用タイマ部926とが同期する。
PLL処理部929は、ビーコン用タイマ部926からのタイマ値をPLL処理して、PLL処理したタイマ値をタイマ部930に入力する。タイマ部930は、PLL処理された現在のタイマ値をタイムスタンプ比較部931に入力する。タイムスタンプ抽出部932は、受信データバッファ部933に格納されているデータブロックに含まれるタイムスタンプを抽出する。タイムスタンプ比較部931は、タイムスタンプ抽出部932が抽出したタイムスタンプに含まれるタイマ値とタイマ部930から入力される現在のタイマ値とが一致するか否かを判断する。刻々と変化する現在のタイマ値に対して、タイムスタンプに含まれるタイマ値が一致した場合、タイムスタンプ比較部931は、タイマ値が一致したタイムスタンプを含むデータブロック内のMPEG2−TSパケットを、受信データバッファ部933に出力させる。MPEG2−TSデコーダ部934は、受信データバッファ部933から出力されるMPEG2−TSパケットをデコードして、映像信号を出力する。
このようにして、無線子機920は、MPEG2−TSデコード部934に入力させるMPEG2−TSパケット間の時間間隔を、無線親機900のMPEG2−TSエンコード部901から出力されたMPEG2−TSパケット間の時間間隔と一致させることができる。
ところで、MPEG2−TSパケットには、MPEG2−TSエンコード部901におけるシステムクロック情報(PCR:Program Clock Reference)が含まれている。MPEG2−TSデコード部934は、このシステムクロック情報に基づいて、MPEG2−TSエンコード部901のシステムクロックを再現している。
しかし、システムクロックを再現するためには、それぞれのMPEG2−TSパケットが伝送される際の伝送時間ばらつきが、充分小さくなければならない。ISO/IEC13818 Part9(MPEG2 Extention for real time interface)では、伝送時間ばらつきの値を25マイクロ秒以内と規定している。
上述したように、従来のデータ伝送システムでは、送信側の無線親機900は、MPEG2−TSパケットにビーコン用タイマ値に基づいたタイムスタンプを付加する。受信側の無線子機920は、無線親機900と同期したビーコン用タイマ値を利用し、MPEG2−TSパケットのタイムスタンプに基づいてMPEG2−TSパケットの出力タイミングを制御する。これによって、無線パケットに複数のMPEG2−TSパケットを結合した際の時間軸上のずれと、伝送回線上で生じた伝送時間のばらつきとを補正することができる。したがって、受信側は、MPEG2−TSパケット間における元々の時間間隔を再現することができ、伝送する映像・音響信号を送信側と受信側とで同期させることが可能となる。
特開2003−60652号公報
しかし、例えばEthernet(登録商標)のように、ビーコン信号が送受信されないシステムでは、従来の技術を用いて、MPEG2−TSパケット間の時間間隔のずれを補正することはできない。
それゆえ、本発明の目的は、Ethernet(登録商標)等、送信側と受信側との間でビーコン信号等によってタイマ値を同期しないシステムにおいても、パケット間の時間間隔のずれを補正し、送信側でのパケットの間隔を受信側で再現することができ、伝送される映像・音響信号等を送信側と受信側とで同期させることができるデータ受信装置を提供することである。
上記目的を達成するために、本発明は、以下のような特徴を有する。本発明は、複数のパケットを含んでいるデータパケットを受信するためのデータ受信装置であって、複数のパケットには、それぞれ、パケット生成時の時間に関する情報である第1の時間情報が付加されており、データパケットに含まれる複数のパケットを格納するための受信データバッファ部と、受信データバッファ部に格納されているデータの量を計測する受信データ量計測部と、周波数が可変なクロックを生成する可変クロック生成部と、可変クロック生成部が生成するクロックの周波数に応じてカウントされる第2の時間情報を出力する時間情報出力部と、パケットに付加されている第1の時間情報と時間情報出力部から出力される第2の時間情報とを比較して、受信データバッファ部に格納されているパケットを出力するタイミングを制御する第1の時間情報比較部とを備え、受信データ量計測部は、可変クロック生成部が生成するクロックの周波数を受信データ量計測部による計測値に応じて制御する。
本発明によれば、蓄積されたデータ量に応じて、クロックの周波数が制御されることとなるので、送信側と受信側との間でビーコン信号等によってタイマ値を同期しないシステムにおいても、データパケット間の時間間隔のずれを補正し、送信側でのデータパケットの間隔を受信側で再現することができ、伝送される映像・音響信号等を送信側と受信側とで同期させることができるデータ受信装置が提供されることとなる。
好ましくは、時間情報比較部が出力する第2の時間情報は、所定のオフセット時間だけ遅れているとよい。
これにより、データパケットが遅延して届いたとしても、データ受信装置は、パケットを出力することができる。
好ましくは、時間情報出力部は、可変クロック生成部が生成するクロックの周波数に応じてカウントされる第3の時間情報を出力するタイマ部と、受信データバッファ部に格納されるパケットに付加されている第1の時間情報を抽出する時間情報抽出部と、タイマ部が出力する第3の時間情報を時間情報抽出部が抽出した第1の時間情報に一致させる初期設定部と、タイマ部が出力する第3の時間情報を所定のオフセット時間だけ遅らせることによって第2の時間情報を出力するオフセット部とを備えるとよい。
これにより、初期設定がなされるので、送信側での時間情報と受信側での時間情報とがほぼ一致することとなる。さらに、第2の時間情報は、オフセット時間だけ遅らされているので、データパケットが遅延して届いたとしても、データ受信装置は、パケットを出力することができる。
好ましくは、オフセット部は、データ受信装置が接続される伝送路の状態に応じて、所定のオフセット時間を変化させるとよい。
これにより、遅延量が変化したとしても、データ受信装置は、パケットを出力することができる。
好ましくは、オフセット部は、受信データバッファ部に蓄積されているデータの量に応じて、所定のオフセット時間を変化させるとよい。
これにより、遅延量が変化したとしても、データ受信装置は、パケットを出力することができる。
好ましくは、オフセット部は、通信プロトコルの種類に応じて、所定のオフセット時間を変化させるとよい。
これにより、遅延量が変化したとしても、データ受信装置は、パケットを出力することができる。
好ましくは、さらに、タイマ部が出力する第3の時間情報と時間情報抽出部が抽出する第1の時間情報とを比較し、比較結果に応じて、可変クロック生成部が生成するクロックの周波数を制御する第2の時間情報比較部を備えるとよい。
これにより、タイマ部が出力する第3の時間情報と送信側での時間情報とをほぼ一致させることができ、パケットの間隔のずれが補正されることとなる。
好ましくは、データパケットの受信を開始した時点から所定の時間が経過するまで、可変クロック生成部が生成するクロックの周波数は、第2の時間情報比較部によって制御され、所定の時間の経過後、可変クロック生成部が生成するクロックの周波数は、受信データ量計測部によって制御されるとよい。
これにより、パケットがある程度蓄積されるまでの間は、時間差を用いてクロックの周波数が制御されることとなり、パケットがある程度蓄積された後は、蓄積されているデータ量に応じてクロックの周波数が制御されることとなるので、安定したクロックの制御が可能となる。
好ましくは、受信データ量計測部は、所定の時間経過後に、可変クロック生成部が生成するクロックの周波数の制御を開始するとよい。
これにより、安定したクロックの制御が可能となる。
好ましくは、受信データ量計測部は、受信データバッファ部に蓄積されているデータの量の平均値を計測値とし、計測値に応じて、可変クロック生成部が生成するクロックの周波数を制御するとよい。
これにより、安定したクロックの制御が可能となる。
たとえば、データパケットに含まれるパケットは、MPEG2−TSパケットである。
たとえば、データパケットは、映像および/または音声信号をエンコードして複数のMPEG2−TSパケットを生成して、各MPEG2−TSパケットに対して、エンコード時の時間に関する情報を第1の時間情報として付加して、第1の時間情報が付加された複数のMPEG2−TSパケットを結合して、データパケットを生成するデータ送信装置から送信されている。
また、本発明は、複数のパケットを含んでいるデータパケットを受信するための集積回路であって、複数のパケットには、それぞれ、パケット生成時の時間に関する情報である第1の時間情報が付加されており、集積回路に接続されるデータパケットに含まれる複数のパケットを格納するための受信データバッファ部に格納されているデータの量を計測する受信データ量計測部と、周波数が可変なクロックを生成する可変クロック生成部と、可変クロック生成部が生成するクロックの周波数に応じてカウントされる第2の時間情報を出力する時間情報出力部と、パケットに付加されている第1の時間情報と時間情報出力部から出力される第2の時間情報とを比較して、受信データバッファ部に格納されているパケットを出力するタイミングを制御する第1の時間情報比較部とを備え、受信データ量計測部は、可変クロック生成部が生成するクロックの周波数を受信データ量計測部による計測値に応じて制御する。
本発明に係るデータ受信装置は、非同期の伝送路を介した映像・音声信号等のストリーム伝送において、送信側でのパケットの送信間隔を受信側で再現することができるため、MPEG2−TSパケット等を非同期の伝送路を介して伝送した場合にも、受信側で正しく再生することができる。
本発明のこれらおよび他の目的、特徴、局面、効果は、添付図面と照合して、以下の詳細な説明から一層明らかになるであろう。
図1は、本発明の第1の実施形態に係るデータ送信装置1の機能的構成を示すブロック図である。 図2Aは、MPEG2−TSエンコード部100から出力される複数のMPEG2−TSパケットのデータ構造を示す図である。 図2Bは、タイムスタンプ付加部101から出力されるタイムスタンプ201が付加された複数のMPEG2−TSパケット200のデータ構造を示す図である。 図3は、通信プロトコル処理部104によってIPパケット化されたデータパケット(IPパケット)2のデータ構造の一例を示す図である。 図4は、通信プロトコル処理部104によってIPパケット化されたデータパケット(IPパケット)2aのデータ構造の他の例を示す図である。 図5は、本発明の第1の実施形態に係るデータ受信装置3の機能的構成を示すブロック図である。 図6は、データ受信装置3の動作の流れを示すフローチャートである。 図7は、本発明の第2の実施形態に係るデータ受信装置4の機能的構成を示すブロック図である。 図8は、本発明の第2の実施形態に係るデータ受信装置4の動作を示すフローチャートである。 図9は、本発明の第3の実施形態に係るデータ受信装置5の機能的構成を示すブロック図である。 図10は、第3の実施形態に係るデータ受信装置5の動作を示すフローチャートである。 図11は、特許文献1に記載されている従来の送信側の無線親機900の機能的構成を示すブロック図である。 図12は、特許文献1に記載されている従来の受信側の無線子機920の機能的構成を示すブロック図である。 図13は、特許文献1に記載されている従来の送信側の無線親局から送信されるデータパケット990のフレーム構造を示す図である。
符号の説明
1 データ送信装置
3,4,5 データ受信装置
100 MPEG2−TSエンコード部
101 タイムスタンプ付加部
102 クロック生成部
103 タイマ部
104,301 通信プロトコル処理部
105,300 通信部
200 MPEG2−TSパケット
201 タイムスタンプ
2,2a IPパケット
302 受信データバッファ部
303 MPEG2−TSデコード部
304 第1の時間情報抽出部
305 初期設定部
306 受信データ量計測部
307 可変クロック生成部
308 タイマ部
309 オフセット部
310 第2の時間情報抽出部
311 第1の時間情報比較部
312 時間情報出力部
400 第2の時間情報比較部
500 切り替え制御部
以下、本発明の実施の形態について、図面を参照しながら説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態に係るデータ送信装置1の機能的構成を示すブロック図である。図1において、データ送信装置1は、MPEG2−TSエンコード部100と、タイムスタンプ付加部101と、クロック生成部102と、タイマ部103と、通信プロトコル処理部104と、通信部105とを備える。
MPEG2−TSエンコード部100は、入力する映像および/または音声信号をMPEG2−TSパケットに変換して出力する。図2Aは、MPEG2−TSエンコード部100から出力される複数のMPEG2−TSパケットのデータ構造を示す図である。図2Aに示すように、MPEG2−TSエンコード部100から、複数のMPEG2−TSパケット200が出力される。
クロック生成部102は、独立したクロックを生成して出力する。クロック生成部102によって生成されるクロックは、ISO/IEC13818 Part9(MPEG2 Extention for real time interface)で規定されたPCRジッタ許容値である25マイクロ秒以内に対して、十分な分解能を有する。なお、クロックとして、MPEG2−TSエンコード部100におけるシステムクロック(STC:System Time Clock)が用いられてもよい。
タイマ部103は、クロック生成部102が出力するクロックを計数(パルスの数を数えることをいう。以下同様)して、計数結果を時間情報として出力する。時間情報として現在時刻が用いられてもよいし、現在の総カウント数が用いられてもよい。時間に関する情報であれば、時間情報は、上記の例に限られない。
タイムスタンプ付加部101は、MPEG2−TSエンコード部100からMPEG2−TSパケットが入力されると、入力された時点における時間情報をタイマ部103から取得し、取得した時間情報を第1の時間情報とし、当該第1の時間情報を含むタイムスタンプをMPEG2−TSパケットに付加し、タイムスタンプが付加されたパケットとして、MPEG2−TSパケットを出力する。このように、第1の時間情報は、パケット生成時の時間に関する情報である。
図2Bは、タイムスタンプ付加部101から出力されるタイムスタンプ201が付加された複数のMPEG2−TSパケット200のデータ構造を示す図である。図2Bに示すように、タイムスタンプ付加部101から、タイムスタンプ201が付加された複数のMPEG2−TSパケット200が出力される。
第1の実施形態におけるデータ送信装置1では、タイマ部103が出力する時間情報を基準とする時間軸が想定されている。上述のように、MPEG2−TSエンコード部100がMPEG2−TSパケットを出力するタイミングにおける時間情報が、タイムスタンプとして、MPEG2−TSパケットに付加される。したがって、MPEG2−TSエンコード部100がMPEG2−TSパケットを出力するタイミングを基準として、タイマ部103の出力する時間情報が、MPEG2−TSパケットに、第1の時間情報として付加されることになる。
通信プロトコル処理部104は、タイムスタンプ付加部101から出力されたタイムスタンプが付加された複数のMPEG2−TSパケットを結合して、IPパケット化し、通信部105に入力する。
図3は、通信プロトコル処理部104によってIPパケット化されたデータパケット(IPパケット)2のデータ構造の一例を示す図である。図3では、通信プロトコルとして、RTP(Realtime Tranport Protocol)を用いた場合の例が示されている。通信プロトコル処理部104に入力されたタイムスタンプ201が付加されたMPEG2−TSパケット200は、データブロック211となる。通信プロトコル処理部104に入力されたタイムスタンプ201が付加された他のMPEG2−TSパケット200は、それぞれ、データブロック212〜21Nとなる。これは、複数のデータブロックをまとめて伝送することによって、通信上の冗長性を小さくするためである。複数のデータブロック211〜21Nには、著作権情報221が付加される。著作権情報221は、MPEG2−TSパケットが著作権保護等の目的で暗号化されている場合に用いられる情報であって、たとえばコピーの可否、暗号化に関する情報等である。たとえば、著作権情報221は、DTCP(Digital Transmission Content Protection)で規定されるDTCP−IPのためのヘッダである。さらに、複数のデータブロック211〜21Nには、RTPヘッダ222、UDPヘッダ223、IPヘッダ224が付加される。なお、RTPヘッダ内にはタイムスタンプを格納する領域がある。MPEG2−TSパケットをRTPで伝送する際には、MPEG2−TSパケットのPCR(Program Clock Reference)の値とRTPヘッダ内のタイムスタンプ値とを一致させなければならない場合がある。しかし、本発明では、RTPヘッダ内のタイムスタンプは用いないので、MPEG2−TSパケットのPCRの値とRTPヘッダ内のタイムスタンプ値とは、一致させなくてもよいものとする。
図4は、通信プロトコル処理部104によってIPパケット化されたデータパケット(IPパケット)2aのデータ構造の他の例を示す図である。図4では、通信プロトコルとして、HTTP(Hyper Text Transfer Protocol)を用いた場合の例が示されている。通信プロトコル処理部104に入力されたタイムスタンプ201が付加されたMPEG2−TSパケット200は、図3に示したRTPの例と同様に、データブロック211となる。また、通信プロトコル処理部104に入力されたタイムスタンプ201が付加された他のMPEG2−TSパケット200は、それぞれ、データブロック212〜21Nとなる。さらに、複数のデータブロック211〜21Nには、著作権情報221、HTTPヘッダ232、TCPヘッダ233、IPヘッダ234が付加される。
なお、通信プロトコル処理部104で結合されるデータブロックの数が多くなる程、伝送時の冗長性が低くなる。通常、通信プロトコル処理部104は、IPプロトコルを用いて伝送する際、IPヘッダ224以下のデータの総バイト数、すなわち、図3の例では、UDPヘッダ223、RTPヘッダ222、著作権情報221、およびデータブロック211〜21Nの総バイト数が、1500バイト以下の最も大きいバイト数となるように、データブロックの数を設定する。また、通信プロトコル処理部104は、IPヘッダ224以下のデータの総バイト数、すなわち、TCPヘッダ233、HTTPヘッダ232、著作権情報221、およびデータブロック211〜21Nの総バイト数が、1500バイト以下の最も大きいバイト数となるように、データブロックの数を設定する。
通信プロトコル処理部104は、図3、図4に示したようなIPパケット化を行うと共に、所定の通信プロトコル処理を実行する。
通信プロトコル処理部104から出力されたパケットは、通信部105に入力される。通信部105は、たとえば、Ethernet(登録商標)のMAC層および物理層に相当する処理を行い、処理後の信号を伝送路に出力する。
図5は、本発明の第1の実施形態に係るデータ受信装置3の機能的構成を示すブロック図である。図5において、データ受信装置3は、通信部300と、通信プロトコル処理部301と、受信データバッファ部302と、MPEG2−TSデコード部303と、第1の時間情報抽出部304と、初期設定部305と、受信データ量計測部306と、可変クロック生成部307と、タイマ部308と、オフセット部309と、第2の時間情報抽出部310と、第1の時間情報比較部311とを備える。初期設定部305と、タイマ部308と、オフセット部309と、第2の時間情報抽出部310とによって、時間情報出力部312が構成される。
伝送路からの信号は、通信部300に入力される。通信部300は、入力する信号に対して、Ethernet(登録商標)のMAC層および物理層に相当する処理を行い、処理後の信号を通信プロトコル処理部301に入力する。
通信プロトコル処理部301は、所定の通信プロトコル処理を行うと共に、受信した信号に含まれるデータブロックを抽出して、抽出したデータブロックを受信データバッファ部302に格納する。
受信データバッファ部302には、複数のデータブロックが蓄積される。
受信データ量計測部306は、受信データバッファ部302に蓄積された複数のデータブロックの総データ量の平均値(以下、蓄積データ平均値という)を計測し、計測値である蓄積データ平均値の増減に応じた制御信号を可変クロック生成部307に入力する。
可変クロック生成部307は、受信データ量計測部306からの制御信号に基づいて、生成するクロックの周波数を増減する。
受信データ量計測部306は、蓄積データ平均値が増加した場合、可変クロック生成部307が生成するクロックの周波数が上がるような制御信号を出力する。一方、蓄積データ平均値が減少した場合、受信データ量計測部306は、可変クロック生成部307が生成するクロックの周波数が下がるような制御信号を出力する。また一方、蓄積データ平均値が変化していない場合、受信データ量計測部306は、可変クロック生成部307が生成するクロックの周波数を変化させない。
タイマ部308は、可変クロック生成部307が出力するクロックを計数することによって第2の時間情報を出力する。クロックの計数に基づく時間情報として、現在時刻が用いられてもよいし、現在の総カウント数が用いられてもよい。時間に関する情報であれば、時間情報は、上記の例に限られない。
オフセット部309は、タイマ部308が出力する時間情報で表されている時間を遅らせるように、タイマ部308が出力する時間情報に対して、所定のオフセット時間を減算する。以下、オフセット部309から出力される時間情報を第2の時間情報という。所定のオフセット時間を減算することによって遅らせる時間は、おおよそ、伝送遅延時間とバッファリングに要する時間との和である。第2の時間情報は、可変クロック生成部307が生成するクロックの周波数に応じてカウントされる時間情報である。なお、タイマ部308から出力される時間情報を第3の時間情報という。第3の時間情報も可変クロック生成部307が生成するクロックの周波数に応じてカウントされる時間情報である。第2の時間情報と第3の時間情報との違いは、第2の時間情報の方が、所定のオフセット時間だけ、遅れている点である。
第1の時間情報抽出部304は、受信データバッファ部302を参照して、次に出力すべきMPEG2−TSパケット、すなわち、受信データバッファ部302に蓄積されたMPEG2−TSパケットの内、時間的に最も古い時点で蓄積された(最も前に蓄積された)MPEG2−TSパケットに付随するタイムスタンプ内の第1の時間情報を抽出する。
第1の時間情報比較部311は、第1の時間情報抽出部304によって抽出された第1の時間情報とオフセット部309から出力される第2の時間情報とが一致するか否かを判断する。第2の時間情報が刻々とカウントされる中、第1の時間情報比較部311は、第1の時間情報抽出部304からの第1の時間情報とオフセット部309から出力される第2の時間情報とが一致した時点において、MPEG2−TSパケットの出力を受信データバッファ部302に指示するための制御信号を受信データバッファ部302に入力する。
受信データバッファ部302は、第1の時間情報比較部311からの制御信号が入力されれば、蓄積されたMPEG2−TSパケットの内、時間的に最も古い時点で蓄積されたデータブロック内のMPEG2−TSパケットを抜き出し、MPEG2−TSデコード部303に入力する。
受信データバッファ部302によってMPEG2−TSパケットが出力された後、次に出力すべきデータブロックに付随するタイムスタンプ内の第1の時間情報が、第1の時間情報抽出部304によって抽出される。第1の時間情報抽出部304によって抽出された第1の時間情報は、第1の時間情報比較部311において、第2の時間情報と比較される。当該第1の時間情報と第2の時間情報とが一致した時点で、受信データバッファ部302は、次のMPEG2−TSパケットを出力する。このようにして、受信データバッファ部302から、MPEG2−TSパケットが順次出力される。
MPEG2−TSデコード部303は、受信データバッファ部302から出力されるデータブロックを映像および/または音声信号に変換して、出力する。
第2の時間情報抽出部310は、通信プロトコル処理部301が出力するデータブロックからタイムスタンプを抽出し、抽出したタイムスタンプ内から第1の時間情報を抽出し、抽出した第1の時間情報を初期設定部305に入力する。
初期設定部305は、初期設定として、タイマ部308が出力する第3の時間情報を第2の時間情報抽出部310が抽出した第1の時間情報に一致させる。
これにより、データ送信装置1のタイマ部103に設定されている時間情報とデータ受信装置3のタイマ部308に設定されている時間情報とが、伝送路上の遅延を無視すれば、一致することとなる。初期設定部305における初期設定は、データ送信装置1とデータ受信装置3との間で、データが送受信される最初の段階で行われる。こうして、データ受信装置3のタイマ部308の時間情報は、初期設定部305によって初期設定が行われた時点で、伝送路上の遅延を無視すれば、データ送信装置1のタイマ部103の時間情報と一致する。
図6は、データ受信装置3の動作の流れを示すフローチャートである。以下、図6を参照しながら、データ受信装置3の動作の流れについて説明する。
データパケットであるIPパケットの受信を開始する際、第2の時間情報抽出部310は、受信したIPパケット中のデータブロックに含まれる第1の時間情報を抽出する(ステップS101)。
次に、初期設定部305は、タイマ部308が出力する第3の時間情報を第2の時間情報抽出部310が抽出した第1の時間情報に一致させ、初期値設定する(ステップS102)。
次に、可変クロック生成部307は、デフォルトの周波数を有するクロックを生成する(ステップS103)。なお、デフォルトの周波数は、データ送信装置1のクロック生成部102が生成するクロックの周波数とほぼ一致する。ただし、誤差の影響や、精度の違いがあるので、二つの周波数は完全には一致していない場合が多い。
次に、受信データ量計測部306は、受信データバッファ部302を参照して、蓄積データ平均値を計測する(ステップS104)。
次に、受信データ量計測部306は、計測した蓄積データ平均値が前回計測した蓄積データ平均値と比べて増加しているか、減少しているか、それとも変化が無いか否かを判断する(ステップS105)。なお、ステップS104において、初めて蓄積データ平均値を計測した場合、ステップS105,S106,S107の処理は、省略される。
蓄積データ平均値が増加している場合、受信データ量計測部306は、所定の値だけ、または増加量に応じた値だけ、クロックの周波数を上げるように可変クロック生成部307を制御して(ステップS106)、ステップS108の動作に進む。一方、蓄積データ平均値が減少している場合、受信データ量計測部306は、所定の値だけ、または減少量に応じた値だけ、クロックの周波数を下げるように可変クロック生成部307を制御して(ステップS107)、ステップS108の動作に進む。これにより、クロックの周波数が変化して、タイマ部308から出力される第3の時間情報が進むまたは遅れる。また一方、蓄積データ平均値が変化していない場合、データ受信装置3は、そのままステップS108の動作に進む。蓄積データ平均値に変化がないということは、送信側でのMPEG2−TSパケットの時間間隔と出力するMPEG2−TSパケットの時間間隔とが一致していることを示しているので、クロックの周波数を変化させなくてもよい。
ステップS108において、オフセット部309は、タイマ部308からの第3の時間情報からオフセット時間を減算して、タイマ部308からの第3の時間情報を遅らせ、第2の時間情報を出力する。
次に、第1の時間情報抽出部304は、次にデコードすべきMPEG2−TSパケットに対応するタイムスタンプ内の第1の時間情報を受信データバッファ部302から抽出する(ステップS109)。
次に、第1の時間情報比較部311は、第1の時間情報抽出部304が抽出した第1の時間情報と第2の時間情報とが一致するか否かを判断する(ステップS110)。一致する場合、第1の時間情報比較部311は、受信データバッファ部302に、当該第1の時間情報に対応するMPEG2−TSパケットを出力させ、ステップS111の動作に進む。一方、一致しない場合、第1の時間情報比較部311は、第1の時間情報と第2の時間情報とが一致するまで、ステップS110の動作を繰り返す。なお、蓄積データ平均値を求める処理時間がMPEG2−TSパケット間の時間間隔よりも短いならば、ステップS110において一致しないと判断された場合、データ受信装置3は、ステップS104の動作に戻ってもよい。
ステップS111において、第1の時間情報比較部311は、今回送信されてきたIPパケットに含まれる全てのMPEG2−TSパケットを受信データバッファ部302に出力させたか否かを判断する。全てのMPEG2−TSパケットを出力させていない場合、データ受信装置3は、ステップS104の動作に戻る。一方、全てのMPEG2−TSパケットを出力させている場合、データ受信装置3は、処理を終了する。
以上の処理から分かるように、一つのIPパケットを受信している間、可変クロック生成部307、タイマ部308、オフセット部309、第1の時間情報比較部311、第1の時間情報抽出部304、受信データバッファ部302、および受信データ量計測部306によって、閉ループが形成される。
次に、第1の実施形態に係るデータ受信装置3が、送信側でのMPEG2−TSパケットの間隔を再現することができる理由について説明する。
まず、理想的な状況として、以下の条件を満たす状況を考える。
(1)データ送信装置1のクロック生成部102が出力するクロックの周波数と、データ受信装置3の可変クロック生成部307が出力するデフォルトのクロックの周波数とが完全に一致している。
(2)伝送路上で生じる遅延は、常に一定である。
(3)オフセット部309におけるオフセット時間は、伝送路上で生じる遅延およびMPEG2−TSパケットを結合した際に生じる時間軸上のずれを考慮して適切な値に設定されている。
最初のMPEG2−TSパケットに付随するタイムスタンプ内の第1の時間情報がタイマ部308の初期値として設定される。したがって、上記のような理想的な状態の場合、上記(1)の条件より、データ送信装置1のタイマ部103の時間情報とデータ受信装置3のタイマ部308の第3の時間情報とは同期することとが分かる。さらに、上記(3)の条件より、オフセット部309から出力される第2の時間情報は、受信データバッファ部302に格納されるMPEG2−TSパケットに付随しているタイムスタンプ内の時間情報よりも先走っていることはないことが分かる。ゆえに、上記のような理想的な状態の場合、可変クロック生成部307から出力されるクロックの周波数を変化させなくても、第1の時間情報比較部311は、データ送信装置1でエンコードされたMPEG2−TSパケットの時間間隔と同じ間隔で受信データバッファ部302に格納されているMPEG2−TSパケットを、受信データバッファ部302に出力させることができる。
しかし、実際は、上記(1),(2)の理想的な条件は、満たされていない。したがって、単に、初期設定部305において、初期設定を行っただけでは、出力するMPEG2−TSパケットの時間間隔を送信側の時間間隔と一致させることはできない。そこで、第1の実施形態では、受信データバッファ部302の蓄積データ平均値に基づいて、クロックの周波数を変化させていくことによって、出力するMPEG2−TSパケットの時間間隔を送信側の時間間隔と一致させることを実現する。以下、出力するMPEG2−TSパケットの時間間隔と送信側の時間間隔とが一致する理由について説明する。
上記(1)の条件が満たされない場合、すなわち、データ送信装置1のクロック生成部102が出力するクロックの周波数と、データ受信装置3の可変クロック生成部307が出力するデフォルトのクロックの周波数とが完全に一致しない場合を考える。
たとえば、可変クロック生成部307が出力するクロックの周波数が、クロック生成部102が出力するクロックの周波数に比べて遅い場合、受信データバッファ部302から出力されるMPEG2−TSパケットの時間間隔は、送信側においてタイムスタンプが付加されたときの時間間隔に比べて、大きくなってしまう。このような場合、出力されずに受信データバッファ部302に格納されたままとなるMPEG2−TSパケットが増加していくので、蓄積データ平均値は、増加することとなる。蓄積データ平均値が増加した場合、可変クロック生成部307から出力されるクロックの周波数は上げられる。クロックの周波数が上げられれば、タイマ部308から出力される第3の時間情報が進み、オフセット部309から出力される第2の時間情報が進むこととなる。第2の時間情報が進めば、第1の時間情報比較部311における時間情報の比較処理が早く進んでいくので、出力されるMPEG2−TSパケットの時間間隔は、狭くなっていき、送信側においてタイムスタンプが付加されたときの時間間隔に近づいていくこととなる。クロック周波数制御のための閉ループによって、出力されるMPEG2−TSパケットの時間間隔は、ある値に収束していき、送信側においてタイムスタンプが付加されたときの時間間隔と一致することとなる。
逆に、可変クロック生成部307が出力するクロックの周波数が、クロック生成部102が出力するクロックの周波数に比べて早い場合、受信データバッファ部302から出力されるMPEG2−TSパケットの時間間隔は、送信側においてタイムスタンプが付加されたときの時間間隔に比べて、狭くなってしまう。このような場合、受信データバッファ部302に格納されたMPEG2−TSパケットは徐々に減少していくので、蓄積データ平均値は、減少することとなる。蓄積データ平均値が減少した場合、可変クロック生成部307から出力されるクロックの周波数は下げられる。クロックの周波数が下げられれば、タイマ部308から出力される第3の時間情報が遅れ、オフセット部309から出力される第2の時間情報が遅れることとなる。第2の時間情報が遅れれば、第1の時間情報比較部311における時間情報の比較処理がゆっくり進んでいくので、出力されるMPEG2−TSパケットの時間間隔は、広くなっていき、送信側においてタイムスタンプが付加されたときの時間間隔に近づいていくこととなる。クロック周波数制御のための閉ループによって、出力されるMPEG2−TSパケットの時間間隔は、ある値に収束していき、送信側においてタイムスタンプが付加されたときの時間間隔と一致することとなる。
次に、上記(2)の条件が満たされない場合、すなわち、伝送路上で生じる遅延が変化している場合について考える。
たとえば、伝送路上での遅延が増大した場合、受信データバッファ部302に格納されているMPEG2−TSパケットは次々に出力されていってしまうので、蓄積データ平均値は、減少する。蓄積データ平均値が減少傾向にあるにもかかわらず、クロックの周波数を下げずに処理を続けると、第2の時間情報が受信データバッファ部302に蓄積されるMPEG2−TSパケットに対応する第1の時間情報よりも先走ってしまうこととなる。結果、出力すべきMPEG2−TSパケットが枯渇してしまう。そのため、蓄積データ平均値データが減少した場合、受信データ量計測部306は、可変クロック生成部307が出力するクロックの周波数を下げる。これによって、第2の時間情報が遅れることとなるので、第2の時間情報が先走ってしまうことがなくなる。結果、受信データバッファ部302内において出力すべきMPEG2−TSパケットが枯渇する事態を回避できる。この場合、出力されるMPEG2−TSパケットの時間間隔は広くなっていく。逆に、もし、伝送路上での遅延が減少してきたら、受信データバッファ部302に格納されているMPEG2−TSパケットは徐々に蓄積されていくこととなり、蓄積データ平均値は、増大する。蓄積データ平均値が増大すれば、クロックの周波数が上げられるので、第2の時間情報が進み、第1の時間情報比較部311における時間情報の比較処理が早く進んでいく。結果、出力されるMPEG2−TSパケットの時間間隔は、狭くなっていく。したがって、伝送路上での遅延に変動があったとしても、データ受信装置3から出力されるMPEG2−TSパケットの時間間隔は、平均的には、送信側においてタイムスタンプが付加されたときの時間間隔と一致することとなる。
実際の状況では、(1)および(2)の条件は、複雑に絡み合っている。しかし、データ受信装置3は、蓄積データ平均値を用いて、可変クロック生成部307が出力するクロックの周波数を制御することとなるので、データ受信装置3から出力されるMPEG2−TSパケットの時間間隔は、平均的には、送信側においてタイムスタンプが付加されたときの時間間隔と一致することとなる。
次に、受信データバッファ部302に蓄積されているデータの平均値を用いて、クロックの周波数を制御する理由について説明する。
データ送信装置1のMPEG2−TSエンコード部100が出力するMPEG2−TSパケットは、パケットの時間間隔が完全に等間隔の場合もあれば、パケットの間隔が等間隔でなく間欠的である場合もある。パケットの間隔が間欠的である場合、受信データバッファ部302に蓄積されるデータ量は、変動することになる。また、MPEGのエンコードの方法には、一定の符号発生量となる固定ビットレート(CBR)と、符号発生量が変動する可変ビットレート(VBR)とがある。VBRの場合も、受信データバッファ部302に蓄積されるデータ量は、変動する。パケットの間隔が間欠的であるエンコード方法を用いる場合であっても、ある単位時間あたりのパケットの間隔の平均は、一定である。また、VBRを用いる場合であっても、ある単位時間あたりの符号発生量の平均は、一定である。したがって、上記のように、蓄積されるデータの量が局所的には変動する場合であっても、受信データバッファ部302に蓄積されるデータ量のある単位時間あたりの平均は、一定である。
したがって、蓄積データ平均値に応じてクロックの周波数が制御されることによって、クロックの周波数を平均的には送信側のクロックの周波数と一致させることができる。したがって、データ受信装置3から出力されるMPEG2−TSパケットの時間間隔は、平均的には、送信側においてタイムスタンプが付加されたときの時間間隔と一致することとなる。
なお、ここでは、受信データ量計測部306は、蓄積データ平均値に応じてクロックの周波数を制御されることとしたが、受信データバッファ部302における瞬時の蓄積データ量に応じてクロックの周波数を制御してもよい。ただし、この場合、受信データ量計測部306は、クロックの周波数の変化が、受信データバッファ部302に蓄積されるデータ量の瞬時的な変動に対して、十分に遅くなるように、クロックの周波数を制御する。
また、オフセット部309によって、タイマ部308の第3の時間情報に所定のオフセット時間が加算される理由は、伝送路による遅延を考慮するためである。上述のように、伝送路上での遅延を無視すれば、データ送信装置1のタイマ部103の時間情報とデータ受信装置3のタイマ部308の第3の時間情報とは一致している。しかし、実際には、伝送路によって遅延が生じているので、データ受信装置3のタイマ部308の第3の時間情報が示す時刻に、MPEG2−TSパケットが届かない場合がある。オフセット時間を加算することによって、受信データバッファ部302から出力されるMPEG2−TSパケットの出力時間に遅延を持たせることができる。したがって、伝送路上での遅延が生じていたために、タイムスタンプに含まれている第1の時間情報がデータ受信装置3内で既に過ぎてしまって、MPEG2−TSパケットがデコードされないといった事態を回避することができる。なお、MPEG2−TSパケットを出力する時間の遅延は、小さいほど望ましい。しかし、あまり小さすぎると、出力すべきデータが受信側に届いていない状況が発生するので、出力するデータが枯渇する場合が発生する。以上のようなことを考慮して、オフセット時間は適切に設定されるべきである。
たとえば、伝送路の状態によっては、伝送されるデータの遅延が大きくなる場合がある。たとえば、Ethernet(登録商標)等を用いて、広域のネットワークを介して、データを伝送する場合、データの遅延のばらつきが大きくなる。また、IEEE802.11の無線LANを介してデータを伝送する場合、伝送誤りがあれば、MAC層において、データの再送が発生する。データの再送が発生すると、データの伝送遅延が大きくなる。データの伝送遅延が大きくなった場合、受信データバッファ部302に蓄積されるべきデータが到着せず、必要な時間に出力すべきデータがなくなる場合が発生する。しかし、オフセット部309において、所定のオフセット時間を加算すれば、このような状態を回避することができる。伝送路の状態が悪化し伝送遅延が大きい場合、オフセット時間の加算によって、第1の時間情報比較部311での比較に用いられる第2の時間情報を時間的に遅らせることができ、受信データバッファ部302に所定の時間分のデータが蓄積されることとなる。結果、データが枯渇する状態を回避することができる。
なお、オフセット部309は、所定のオフセット時間を、受信データバッファ部302に蓄積されているデータ量に応じて、変化させてもよい。具体的には、オフセット部309は、所定のオフセット時間を、受信データバッファ部302に蓄積されているデータ量が多い場合に小さくなるようにし、受信データバッファ部302に蓄積されているデータ量が少ない場合に大きくなるように制御するとよい。これにより、受信データバッファ部302に保持されるデータ量を最小限に保ちながら、受信データが枯渇しないように制御することができる。ただし、受信データ量計測部306による閉ループ制御に影響を与えないように、オフセット時間は、制御されなければならない。
また、伝送に使用する物理層、またはMAC層等の種類を示す通信プロトコルの種類に応じて、伝送遅延量はばらつく。したがって、オフセット部309は、通信プロトコルの種類に応じて、所定のオフセット時間を変更するようにしても、受信データバッファ部302に保持されるデータ量を最適化することができる。
また、オフセット部309は、伝送路の状態に応じて、所定のオフセット時間を変化させてもよい。例えば、無線LANの場合、伝送路誤りがあるとデータが再送される。再送回数を計測することによって、伝送路の状態を知ることができる。再送回数が多い場合には、伝送遅延が増えるため、オフセット部309は、オフセット時間を大きくする。
なお、第1の実施形態において、図5に示した各機能ブロックの動作は、並行に行われてもよいことは言うまでもない。
なお、バッファ量を計測してクロックの周波数を制御する第1の実施形態に係る方法では、IPパケットを受信した当初、すなわち受信データバッファ部302に所定量以上のデータが蓄積されるまで、バッファ量によるフィードバックが得られないため、開ループとなってしまい、誤作動が生じるおそれがある。このように、IPパケットの受信を開始した時点から所定の期間の間、受信データ量計測部306は、可変クロック生成部307から出力されるクロックの周波数をデフォルト値に固定させるとよい。これによって、開ループによる誤動作を回避することができる。すなわち、受信データ量計測部306は、所定の時間経過後に、クロックの周波数の制御を開始するとよい。
(第2の実施形態)
第2の実施形態において、データ送信装置の構造およびMPEG2−TSパケットを含むIPパケットの構造は、第1の実施形態と同様であるので、図1〜4を援用することとする。
図7は、本発明の第2の実施形態に係るデータ受信装置4の機能的構成を示すブロック図である。図7において、第1の実施形態におけるデータ受信装置3と同様の機能を有する部分については、同一の参照符号を付し、詳しい説明を省略することとする。
図7において、データ受信装置4は、通信部300と、通信プロトコル処理部301と、受信データバッファ部302と、MPEG2−TSデコード部303と、第1の時間情報抽出部304と、初期設定部305と、可変クロック生成部307と、タイマ部308と、オフセット部309と、第2の時間情報抽出部310と、第1の時間情報比較部311と、第2の時間情報比較部400とを備える。
図7に示すように、第2の実施形態に係るデータ受信装置4には、第1の実施形態に係る受信データ量計測部306の代わりに、第2の時間情報比較部400が設けられている。
第2の時間情報抽出部310は、通信プロトコル処理部301が出力するデータブロックからタイムスタンプを抽出して、当該タイムスタンプに含まれる第1の時間情報を抽出して、当該第1の時間情報を初期設定部305に入力すると共に、第2の時間情報比較部400に入力する。
第2の時間情報比較部400は、第2の時間情報抽出部310が抽出した第1の時間情報と、タイマ部308が出力する第3の時間情報とを比較し、時間差に応じた制御信号を可変クロック生成部307に入力する。可変クロック生成部307は、第2の時間情報比較部400からの制御信号に応じて、生成するクロックの周波数を増減する。第2の時間情報抽出部310が抽出した第1の時間情報がタイマ部308が出力する第3の時間情報より遅れている場合、第2の時間情報比較部400は、可変クロック生成部307の生成するクロックの周波数が上がるような制御信号を出力する。一方、第2の時間情報抽出部310が抽出した第1の時間情報がタイマ部308が出力する第3の時間情報より進んでいる場合、第2の時間情報比較部400は、可変クロック生成部307の生成するクロックの周波数が下がるような制御信号を出力する。なお、第2の時間情報抽出部310が抽出した第1の時間情報とタイマ部308が出力する第3の時間情報とが一致している場合、第2の時間情報比較部400は、可変クロック生成部307の生成するクロックの周波数を変化させない。
図8は、本発明の第2の実施形態に係るデータ受信装置4の動作を示すフローチャートである。以下、図8を参照しながら、本発明の第2の実施形態に係るデータ受信装置4の動作について説明する。
IPパケットの受信を開始する際、第2の時間情報抽出部310は、受信したIPパケット中のデータブロックに含まれるタイムスタンプ内の第1の時間情報を抽出する(ステップS201)。
次に、初期設定部305は、タイマ部308が出力する第3の時間情報を第2の時間情報抽出部310が抽出した第1の時間情報に一致させ、初期設定する(ステップS202)。
次に、可変クロック生成部307は、デフォルトの周波数を有するクロックを生成する(ステップS203)。
次に、データ受信装置4は、通信プロトコル処理部301によって受信されたデータが存在するか否かを判断する(ステップS204)。データが存在しない場合、データ受信装置4は、ステップS211の動作に進む。一方、データが存在する場合、データ受信装置4は、ステップS205の動作に進む。
ステップS205において、第2の時間情報抽出部310は、通信プロトコル処理部301が受信したデータから第1の時間情報を抽出する。
次に、第2の時間情報比較部400は、タイマ部308が出力する第3の時間情報と第2の時間情報抽出部310がステップS205において抽出した第1の時間情報とを比較する(ステップS206)。タイマ部308が出力する第3の時間情報が遅れている場合、第2の時間情報比較部400は、クロックの周波数を上げるように可変クロック生成部307を制御し(ステップS207)、ステップS209の動作に進む。一方、タイマ部308が出力する第3の時間情報が進んでいる場合、第2の時間情報比較部400は、クロックの周波数を下げるように可変クロック生成部307を制御し(ステップS208)、ステップS209の動作に進む。また一方、時間情報が一致している場合、第2の時間情報比較部400は、クロックの周波数を変化させることなく、ステップS209の動作に進む。
ステップS209において、オフセット部309は、タイマ部308からの第3の時間情報からオフセット時間を減算して、タイマ部308からの第3の時間情報を遅らせ、第2の時間情報を出力する。
次に、第1の時間情報抽出部304は、次にデコードすべきMPEG2−TSパケットに対応するタイムスタンプを受信データバッファ部302から抽出する(ステップS210)。
次に、第1の時間情報比較部311は、第1の時間情報抽出部304が抽出したタイムスタンプに含まれる第1の時間情報と第2の時間情報とが一致するか否かを判断する(ステップS211)。一致する場合、第1の時間情報比較部311は、受信データバッファ部302に抽出した第1の時間情報に対応するMPEG2−TSパケットを出力させ、ステップS212の動作に進む。一方、一致しない場合、第1の時間情報比較部311は、ステップS204の動作に戻る。
ステップS212において、第1の時間情報比較部311は、今回送信されてきたIPパケットに含まれる全てのMPEG2−TSパケットを受信データバッファ部302に出力させたか否かを判断する。全てのMPEG2−TSパケットを出力させていない場合、データ受信装置4は、ステップS204の動作に戻る。一方、全てのMPEG2−TSパケットを出力させている場合、データ受信装置4は、処理を終了する。
以上の処理から分かるように、可変クロック生成部307と、タイマ部308と、第2の時間情報比較部400によって、閉ループが形成される。
このように、第2の時間情報比較部400によって、第2の時間情報抽出部310からの第1の時間情報と、タイマ部308の出力する第3の時間情報とが比較され、時間差に応じて、可変クロック生成部307の出力するクロックの周波数が制御される。もし、タイマ部308の第3の時間情報が受信したMPEG2−TSパケットに付随する第1の時間情報よりも遅れている場合、クロックの周波数が低いことを意味するので、第2の時間情報比較部400によってクロックの周波数が上げられることによって、可変クロック生成部307の生成するクロックの周波数は、図1のデータ送信装置1におけるクロック生成部102の発生するクロックの周波数と一致する方向に変化する。一方、もし、タイマ部308の第3の時間情報が受信したMPEG2−TSパケットに付随する第1の時間情報よりも進んでいる場合、クロックの周波数が高いことを意味するので、第2の時間情報比較部400によってクロックの周波数が下げられることによって、可変クロック生成部307の生成するクロックの周波数は、図1のデータ送信装置1におけるクロック生成部102の発生するクロックの周波数と一致する方向に変化する。
従って、データ受信装置4のタイマ部308が出力する第3の時間情報とデータ送信装置1のタイマ部103が出力する時間情報とは、同期することになる。
データ送信装置1のタイマ部103とデータ受信装置4のタイマ部308とが同期することによって、データ送信装置1のMPEG2−TSエンコード部100が出力したMPEG2−TSパケットの時間間隔と、受信データバッファ部302からMPEG2−TSデコード部303に入力されるMPEG2−TSパケットの時間間隔とは、一致することとなる。
ここで、第2の時間情報比較部400は、クロックの周波数の変化が、比較した時間差の変動に対して、十分遅くなるように、クロックの周波数を制御するものとする。たとえば、第2の時間情報比較部400は、ある単位時間あたりにおける時間差の平均値を算出し、時間差の平均値に基づいて、タイマ部308の第3の時間情報が進んでいるかそれとも遅れているかを求めて(ステップS206)、クロックの制御を行う(ステップS207,S208)。データ送信装置1は、MPEG2−TSパケットを結合して、IPパケット化する際、タイムスタンプに含まれる時間情報によって示される時間から時間軸上でずれるように、MPEG2−TSパケットを結合する場合がある。したがって、データ受信装置4にIPパケットが届いた瞬間のタイマ部308が出力する第3の時間情報とタイムスタンプに含まれる第1の時間情報とが一致しない場合がある。そのため、時間情報の時間差がゼロにならず、時間差が大きく変動する場合がある。しかし、MPEG2−TSパケットを結合するときのずれは、平均的には、一定である。ゆえに、第2の時間情報比較部400が上述のようにクロックの周波数を制御することによって、データ受信装置4のタイマ部308が出力する第3の時間情報とデータ送信装置1のタイマ部103が出力する第1の時間情報とを一致させることができる。
なお、時間差の平均値を求める場合、平均値を求める期間の長さによっては、ステップS211において、時間情報が一致するまで処理を繰り返すようにするとよい。
なお、第2の時間情報比較部400は、第2の時間情報抽出部310が抽出した全てのタイムスタンプ値を用いて、時間差を求めなくてもよい。たとえば、第2の時間情報比較部400は、複数のデータブロックの内、IPパケットの最初の位置にあるデータブロック211に含まれる第1の時間情報のみをタイマ部308の出力する第3の時間情報と比較してもよい。また、第2の時間情報比較部400は、定期的に時間情報を比較するようにしてもよい。
(第3の実施形態)
第3の実施形態において、データ送信装置の構造およびMPEG2−TSパケットを含むIPパケットの構造は、第1の実施形態と同様であるので、図1〜4を援用することとする。
図9は、本発明の第3の実施形態に係るデータ受信装置5の機能的構成を示すブロック図である。図9において、第1および第2の実施形態におけるデータ受信装置3,4と同様の機能を有する部分については、同一の参照符号を付し、詳しい説明を省略することとする。
図9において、データ受信装置5は、通信部300と、通信プロトコル処理部301と、受信データバッファ部302と、MPEG2−TSデコード部303と、第1の時間情報抽出部304と、初期設定部305と、受信データ量計測部306と、バッファ量可変クロック生成部307と、タイマ部308と、オフセット部309と、第2の時間情報抽出部310と、第1の時間情報比較部311と、第2の時間情報比較部400と、切り替え制御部500とを備える。
切り替え制御部500は、データの受信開始時から所定の期間、第2の時間情報比較部400にクロックの周波数を制御させる。当該所定の期間の後、切り替え制御部500は、受信データ量計測部306にクロックの周波数を制御させる。
図10は、第3の実施形態に係るデータ受信装置5の動作を示すフローチャートである。以下、図10を参照しながら、第3の実施形態に係るデータ受信装置5の動作について説明する。
IPパケットの受信を開始する際、第2の時間情報抽出部310は、受信したIPパケット中のデータブロックに含まれるタイムスタンプを抽出する(ステップS301)。
次に、初期設定部305は、第2の時間情報抽出部310が抽出したタイムスタンプに含まれる時間情報を、タイマ部308の初期値に設定する(ステップS302)。
次に、可変クロック生成部307は、デフォルトの周波数を有するクロックを生成する(ステップS303)。
次に、切り替え制御部500は、IPパケットの受信から所定の時間が経過したか否か(または受信データバッファ部302に所定量以上のデータが蓄積されたか否か)を判断する(ステップS304)。所定の時間が経過していない場合(所定量以上のデータが蓄積されていない場合)、データ受信装置5は、ステップS305の動作に進む。一方、所定の時間が経過している場合(所定量以上のデータが蓄積されている場合)、データ受信装置5は、ステップS306の動作に進む。
ステップS305において、データ受信装置5は、第2の時間情報比較部400を用いて、クロックの周波数を制御するために、図8に示すステップS204〜S211と同様の処理を実行する。ステップS305の処理が終了すれば、データ受信装置5は、ステップS304の動作に戻る。
ステップS306において、データ受信装置5は、受信データ量計測部306を用いて、クロックの周波数を制御するために、図6に示すステップS104〜S110と同様の処理を実行する。ステップS306の処理が終了すれば、データ受信装置5は、ステップS307の動作に進む。
ステップS307において、第1の時間情報比較部311は、今回送信されてきたIPパケットに含まれる全てのMPEG2−TSパケットを受信データバッファ部302に出力させたか否かを判断する。全てのMPEG2−TSパケットを出力させていない場合、データ受信装置5は、ステップS304の動作に戻る。一方、全てのMPEG2−TSパケットを出力させている場合、データ受信装置5は、処理を終了する。
第1の実施形態でも指摘したように、IPパケットを受信した当初、開ループによって、誤作動が生じるおそれがある。しかし、第3の実施形態のように、IPパケットの受信開始時には、データ受信装置5は、第2の時間情報比較部400を用いて、クロックの周波数を制御することによって、クロックの周波数を送信側に追従させることができる。所定の時間の経過後(または受信バッファに所定の量の受信データが溜まった後)、データ受信装置5は、バッファ量計測によるフィードバック制御に切り替える。第3の実施形態では、データの受信開始時、クロックが早急に収束して効果的である。また、バッファ量計測によるフィードバックの方が、タイムスタンプ抽出によるフィードバックよりも、変動の積分値をフィードバックすることができるので、定常時には、安定的に時間間隔を一致させることができる。
なお、第1〜第3のデータ受信装置3,4,および5は、汎用のコンピュータ装置であってもよい。この場合、図6,図8,または図10の動作を当該コンピュータ装置の中央演算装置に実行させるためのプログラムが、コンピュータ読み取り可能な記録媒体に格納されているとよい。そして、当該プログラムは、中央演算装置に読み込まれる。当該プログラムを読み込んだ中央演算装置は、データ受信装置であるコンピュータ装置を図6,図8,または図10に示すように動作させる。
なお、図5,図7,および図9に示した各機能ブロックは、集積回路であるLSIとして実現されてもよい。これらの機能ブロックは、1チップ化されていてもよいし、一部又は全てを含むように1チップ化されていてもよい。典型的には、受信データバッファ部302は、集積回路の外部に設けられた記憶装置となる。ここでは、LSIといったが、集積度の違いによっては、IC、システムLSI、スーパーLSI、ウルトラLSIと称呼されることもある。また、集積回路化の手法は、LSIに限られるものではなく、専用回路または汎用プロセッサで集積回路化を行ってもよい。また、LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを用いてもよい。さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックを集積化してもよい。バイオ技術の適応等が可能性としてあり得る。
なお、第1〜第3の実施形態では、通信部300は、Ethernet(登録商標)のMAC層および物理層を処理するものとしたが、これに限定されるものではない。たとえば、通信部300は、IEEE802.11など、如何なるMAC層および物理層を処理してもよい。また、通信プロトコル処理部301は、RTP,HTTPを用いることとしたが、これに限定されるものではない。本発明は特定の通信プロトコルに限定されるものではない。また、送受信されるデータパケットは、IPパケットに限定されるものではない。また、第1〜第3の実施形態では、送受信されるデータパケット内のデータブロックに含まれるパケットはMPEG2−TSパケットであるとしたが、データブロックに含まれるパケットはこれに限定されるものではない。
なお、第1の時間情報抽出部304と第2の時間情報抽出部とは、一体化され、一つの時間情報抽出部となっていてもよい。
なお、初期設定部305は、最初に受信するMPEG2−TSパケット以外のMPEG2−TSパケットに付随する第1の時間情報を用いて、タイマ部308から出力される第3の時間情報の初期値を設定してもよい。
なお、第3の実施形態における第2の時間情報比較部400および受信データ量計測部306によるクロックの周波数の制御は、第3の実施形態で示したタイミング以外で行われてもよい。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
本発明に係るデータ受信装置は、データパケットに含まれるパケットの時間間隔を再現することができ、Ethernet(登録商標)やIEEE802.11等の非同期の伝送路を介してMPEG2−TS等のパケットを伝送する映像配信や映像伝送等の用途に有用である。
本発明は、有線回線や無線回線を介して伝送されてくるMPEG2−TS等の映像信号や音響信号等を受信するためのデータ受信装置に関し、より特定的には、伝送される映像信号や音響信号等の同期を確保することができるデータ受信装置に関する。
従来、IEEE802.11に代表される無線ローカルエリアネットワーク等の無線回線を介して、映像信号や音響信号等を伝送するために、送信側と受信側との間で信号の同期を実現する技術が存在する(例えば、特許文献1参照)。
図11は、特許文献1に記載されている従来の送信側の無線親機900の機能的構成を示すブロック図である。図12は、特許文献1に記載されている従来の受信側の無線子機920の機能的構成を示すブロック図である。図13は、特許文献1に記載されている従来の送信側の無線親局から送信されるデータパケット990のフレーム構造を示す図である。以下、図11,図12,および図13を参照しながら、特許文献1に記載されている無線親機900および無線子機920の動作について説明する。
無線親機900において、MPEG2−TSエンコード部901に入力した映像信号は、MPEG2−TSパケット950に変換されて出力される。タイムスタンプ付加部902は、MPEG2−TSパケット950がMPEG2−TSエンコード部901から出力される時間に応じたタイムスタンプ951を、MPEG2−TSパケット950に付加する。ここで付加されるタイムスタンプ951は、ビーコン用タイマ部908からのタイマ値を含む。
通信プロトコル処理部903は、タイムスタンプ951が付加されたMPEG2−TSパケット950を一つのデータブロック941とし、データブロック941と複数のデータブロック942〜94Nとを結合して、データヘッダ980を付加して出力する。MAC処理部904のフレーム組み立て部909は、通信プロトコル処理部903からの出力に対して、MACヘッダ970を付加して、出力する。RF部905は、フレーム組み立て部909からの出力に対して、物理層ヘッダ960を付加して出力する。アンテナ906は、RF部905からの出力を無線信号として、無線通信回線路に放射する。
クロック生成部907は、クロックを生成して、ビーコン用タイマ部908に入力する。ビーコン用タイマ部908は、クロックに基づいて、現在のタイマ値(たとえば、現在時刻)を設定して出力する。ビーコン生成部910は、ビーコン用タイマ部908からのタイマ値を含むビーコンを生成する。フレーム組み立て部909は、ビーコン生成部910が生成したビーコンに対して、MACヘッダを付加して出力する。RF部905は、フレーム組み立て部909からの出力に対して、物理層ヘッダ960を付加して出力する。アンテナ906は、RF部905からの出力をビーコン信号として、無線通信回線路に放射する。
無線子機920において、無線通信回線路を介して伝送された無線信号は、アンテナ921で受信される。アンテナ921で受信された無線信号は、RF部922を介して、MAC処理部923のフレーム解析部925に入力される。フレーム解析部925は、受信した信号が自機器宛であるか否か解析する。自機器宛である場合、フレーム解析部925は、受信した信号を受信データ処理部927に入力する。受信データ処理部927は、受信した信号がデータパケット990である場合、当該データパケット990を通信プロトコル処理部924に入力する。一方、受信した信号がビーコン信号である場合、受信データ処理部927は、当該ビーコン信号をビーコン用タイマ部926に入力する。
通信プロトコル処理部924は、受信したデータパケット990の物理層ヘッダ960,MACヘッダ970,データヘッダ980を解析して、データブロック941〜94Nを抽出して、抽出したデータブロック941〜94Nを受信データバッファ部933に格納する。
ビーコン用タイマ部926は、クロック生成部928から出力されるクロックに基づいて、現在のタイマ値(たとえば、現在時刻)を設定する。ビーコン用タイマ部926は、受信データ処理部927からビーコン信号が入力された場合、当該ビーコン信号に含まれるタイマ値と一致するように、現在のタイマ値を設定し直す。これにより、無線親機900におけるビーコン用タイマ部908と無線子機920におけるビーコン用タイマ部926とが同期する。
PLL処理部929は、ビーコン用タイマ部926からのタイマ値をPLL処理して、PLL処理したタイマ値をタイマ部930に入力する。タイマ部930は、PLL処理された現在のタイマ値をタイムスタンプ比較部931に入力する。タイムスタンプ抽出部932は、受信データバッファ部933に格納されているデータブロックに含まれるタイムスタンプを抽出する。タイムスタンプ比較部931は、タイムスタンプ抽出部932が抽出したタイムスタンプに含まれるタイマ値とタイマ部930から入力される現在のタイマ値とが一致するか否かを判断する。刻々と変化する現在のタイマ値に対して、タイムスタンプに含まれるタイマ値が一致した場合、タイムスタンプ比較部931は、タイマ値が一致したタイムスタンプを含むデータブロック内のMPEG2−TSパケットを、受信データバッファ部933に出力させる。MPEG2−TSデコード部934は、受信データバッファ部933から出力されるMPEG2−TSパケットをデコードして、映像信号を出力する。
このようにして、無線子機920は、MPEG2−TSデコード部934に入力させるMPEG2−TSパケット間の時間間隔を、無線親機900のMPEG2−TSエンコード部901から出力されたMPEG2−TSパケット間の時間間隔と一致させることができる。
ところで、MPEG2−TSパケットには、MPEG2−TSエンコード部901におけるシステムクロック情報(PCR:Program Clock Reference)が含まれている。MPEG2−TSデコード部934は、このシステムクロック情報に基づいて、MPEG2−TSエンコード部901のシステムクロックを再現している。
しかし、システムクロックを再現するためには、それぞれのMPEG2−TSパケットが伝送される際の伝送時間ばらつきが、充分小さくなければならない。ISO/IEC13818 Part9(MPEG2 Extention for real time interface)では、伝送時間ばらつきの値を25マイクロ秒以内と規定している。
上述したように、従来のデータ伝送システムでは、送信側の無線親機900は、MPEG2−TSパケットにビーコン用タイマ値に基づいたタイムスタンプを付加する。受信側の無線子機920は、無線親機900と同期したビーコン用タイマ値を利用し、MPEG2−TSパケットのタイムスタンプに基づいてMPEG2−TSパケットの出力タイミングを制御する。これによって、無線パケットに複数のMPEG2−TSパケットを結合した際の時間軸上のずれと、伝送回線上で生じた伝送時間のばらつきとを補正することができる。したがって、受信側は、MPEG2−TSパケット間における元々の時間間隔を再現することができ、伝送する映像・音響信号を送信側と受信側とで同期させることが可能となる。
特開2003−60652号公報
しかし、例えばEthernet(登録商標)のように、ビーコン信号が送受信されないシステムでは、従来の技術を用いて、MPEG2−TSパケット間の時間間隔のずれを補正することはできない。
それゆえ、本発明の目的は、Ethernet(登録商標)等、送信側と受信側との間でビーコン信号等によってタイマ値を同期しないシステムにおいても、パケット間の時間間隔のずれを補正し、送信側でのパケットの間隔を受信側で再現することができ、伝送される映像・音響信号等を送信側と受信側とで同期させることができるデータ受信装置を提供することである。
上記目的を達成するために、本発明は、以下のような特徴を有する。本発明は、複数のパケットを含んでいるデータパケットを受信するためのデータ受信装置であって、複数のパケットには、それぞれ、パケット生成時の時間に関する情報である第1の時間情報が付加されており、データパケットに含まれる複数のパケットを格納するための受信データバッファ部と、受信データバッファ部に格納されているデータの量を計測する受信データ量計測部と、周波数が可変なクロックを生成する可変クロック生成部と、可変クロック生成部が生成するクロックの周波数に応じてカウントされる第2の時間情報を出力する時間情報出力部と、パケットに付加されている第1の時間情報と時間情報出力部から出力される第2の時間情報とを比較して、受信データバッファ部に格納されているパケットを出力するタイミングを制御する第1の時間情報比較部とを備え、受信データ量計測部は、可変クロック生成部が生成するクロックの周波数を受信データ量計測部による計測値に応じて制御する。
本発明によれば、蓄積されたデータ量に応じて、クロックの周波数が制御されることとなるので、送信側と受信側との間でビーコン信号等によってタイマ値を同期しないシステムにおいても、データパケット間の時間間隔のずれを補正し、送信側でのデータパケットの間隔を受信側で再現することができ、伝送される映像・音響信号等を送信側と受信側とで同期させることができるデータ受信装置が提供されることとなる。
好ましくは、時間情報比較部が出力する第2の時間情報は、所定のオフセット時間だけ遅れているとよい。
これにより、データパケットが遅延して届いたとしても、データ受信装置は、パケットを出力することができる。
好ましくは、時間情報出力部は、可変クロック生成部が生成するクロックの周波数に応じてカウントされる第3の時間情報を出力するタイマ部と、受信データバッファ部に格納されるパケットに付加されている第1の時間情報を抽出する時間情報抽出部と、タイマ部が出力する第3の時間情報を時間情報抽出部が抽出した第1の時間情報に一致させる初期設定部と、タイマ部が出力する第3の時間情報を所定のオフセット時間だけ遅らせることによって第2の時間情報を出力するオフセット部とを備えるとよい。
これにより、初期設定がなされるので、送信側での時間情報と受信側での時間情報とがほぼ一致することとなる。さらに、第2の時間情報は、オフセット時間だけ遅らされているので、データパケットが遅延して届いたとしても、データ受信装置は、パケットを出力することができる。
好ましくは、オフセット部は、データ受信装置が接続される伝送路の状態に応じて、所定のオフセット時間を変化させるとよい。
これにより、遅延量が変化したとしても、データ受信装置は、パケットを出力することができる。
好ましくは、オフセット部は、受信データバッファ部に蓄積されているデータの量に応じて、所定のオフセット時間を変化させるとよい。
これにより、遅延量が変化したとしても、データ受信装置は、パケットを出力することができる。
好ましくは、オフセット部は、通信プロトコルの種類に応じて、所定のオフセット時間を変化させるとよい。
これにより、遅延量が変化したとしても、データ受信装置は、パケットを出力することができる。
好ましくは、さらに、タイマ部が出力する第3の時間情報と時間情報抽出部が抽出する第1の時間情報とを比較し、比較結果に応じて、可変クロック生成部が生成するクロックの周波数を制御する第2の時間情報比較部を備えるとよい。
これにより、タイマ部が出力する第3の時間情報と送信側での時間情報とをほぼ一致させることができ、パケットの間隔のずれが補正されることとなる。
好ましくは、データパケットの受信を開始した時点から所定の時間が経過するまで、可変クロック生成部が生成するクロックの周波数は、第2の時間情報比較部によって制御され、所定の時間の経過後、可変クロック生成部が生成するクロックの周波数は、受信データ量計測部によって制御されるとよい。
これにより、パケットがある程度蓄積されるまでの間は、時間差を用いてクロックの周波数が制御されることとなり、パケットがある程度蓄積された後は、蓄積されているデータ量に応じてクロックの周波数が制御されることとなるので、安定したクロックの制御が可能となる。
好ましくは、受信データ量計測部は、所定の時間経過後に、可変クロック生成部が生成するクロックの周波数の制御を開始するとよい。
これにより、安定したクロックの制御が可能となる。
好ましくは、受信データ量計測部は、受信データバッファ部に蓄積されているデータの量の平均値を計測値とし、計測値に応じて、可変クロック生成部が生成するクロックの周波数を制御するとよい。
これにより、安定したクロックの制御が可能となる。
たとえば、データパケットに含まれるパケットは、MPEG2−TSパケットである。
たとえば、データパケットは、映像および/または音声信号をエンコードして複数のMPEG2−TSパケットを生成して、各MPEG2−TSパケットに対して、エンコード時の時間に関する情報を第1の時間情報として付加して、第1の時間情報が付加された複数のMPEG2−TSパケットを結合して、データパケットを生成するデータ送信装置から送信されている。
また、本発明は、複数のパケットを含んでいるデータパケットを受信するための集積回路であって、複数のパケットには、それぞれ、パケット生成時の時間に関する情報である第1の時間情報が付加されており、集積回路に接続されるデータパケットに含まれる複数のパケットを格納するための受信データバッファ部に格納されているデータの量を計測する受信データ量計測部と、周波数が可変なクロックを生成する可変クロック生成部と、可変クロック生成部が生成するクロックの周波数に応じてカウントされる第2の時間情報を出力する時間情報出力部と、パケットに付加されている第1の時間情報と時間情報出力部から出力される第2の時間情報とを比較して、受信データバッファ部に格納されているパケットを出力するタイミングを制御する第1の時間情報比較部とを備え、受信データ量計測部は、可変クロック生成部が生成するクロックの周波数を受信データ量計測部による計測値に応じて制御する。
本発明に係るデータ受信装置は、非同期の伝送路を介した映像・音声信号等のストリーム伝送において、送信側でのパケットの送信間隔を受信側で再現することができるため、MPEG2−TSパケット等を非同期の伝送路を介して伝送した場合にも、受信側で正しく再生することができる。
本発明のこれらおよび他の目的、特徴、局面、効果は、添付図面と照合して、以下の詳細な説明から一層明らかになるであろう。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態に係るデータ送信装置1の機能的構成を示すブロック図である。図1において、データ送信装置1は、MPEG2−TSエンコード部100と、タイムスタンプ付加部101と、クロック生成部102と、タイマ部103と、通信プロトコル処理部104と、通信部105とを備える。
MPEG2−TSエンコード部100は、入力する映像および/または音声信号をMPEG2−TSパケットに変換して出力する。図2Aは、MPEG2−TSエンコード部100から出力される複数のMPEG2−TSパケットのデータ構造を示す図である。図2Aに示すように、MPEG2−TSエンコード部100から、複数のMPEG2−TSパケット200が出力される。
クロック生成部102は、独立したクロックを生成して出力する。クロック生成部102によって生成されるクロックは、ISO/IEC13818 Part9(MPEG2 Extention for real time interface)で規定されたPCRジッタ許容値である25マイクロ秒以内に対して、十分な分解能を有する。なお、クロックとして、MPEG2−TSエンコード部100におけるシステムクロック(STC:System Time Clock)が用いられてもよい。
タイマ部103は、クロック生成部102が出力するクロックを計数(パルスの数を数えることをいう。以下同様)して、計数結果を時間情報として出力する。時間情報として現在時刻が用いられてもよいし、現在の総カウント数が用いられてもよい。時間に関する情報であれば、時間情報は、上記の例に限られない。
タイムスタンプ付加部101は、MPEG2−TSエンコード部100からMPEG2−TSパケットが入力されると、入力された時点における時間情報をタイマ部103から取得し、取得した時間情報を第1の時間情報とし、当該第1の時間情報を含むタイムスタンプをMPEG2−TSパケットに付加し、タイムスタンプが付加されたパケットとして、MPEG2−TSパケットを出力する。このように、第1の時間情報は、パケット生成時の時間に関する情報である。
図2Bは、タイムスタンプ付加部101から出力されるタイムスタンプ201が付加された複数のMPEG2−TSパケット200のデータ構造を示す図である。図2Bに示すように、タイムスタンプ付加部101から、タイムスタンプ201が付加された複数のMPEG2−TSパケット200が出力される。
第1の実施形態におけるデータ送信装置1では、タイマ部103が出力する時間情報を基準とする時間軸が想定されている。上述のように、MPEG2−TSエンコード部100がMPEG2−TSパケットを出力するタイミングにおける時間情報が、タイムスタンプとして、MPEG2−TSパケットに付加される。したがって、MPEG2−TSエンコード部100がMPEG2−TSパケットを出力するタイミングを基準として、タイマ部103の出力する時間情報が、MPEG2−TSパケットに、第1の時間情報として付加されることになる。
通信プロトコル処理部104は、タイムスタンプ付加部101から出力されたタイムスタンプが付加された複数のMPEG2−TSパケットを結合して、IPパケット化し、通信部105に入力する。
図3は、通信プロトコル処理部104によってIPパケット化されたデータパケット(IPパケット)2のデータ構造の一例を示す図である。図3では、通信プロトコルとして、RTP(Realtime Tranport Protocol)を用いた場合の例が示されている。通信プロトコル処理部104に入力されたタイムスタンプ201が付加されたMPEG2−TSパケット200は、データブロック211となる。通信プロトコル処理部104に入力されたタイムスタンプ201が付加された他のMPEG2−TSパケット200は、それぞれ、データブロック212〜21Nとなる。これは、複数のデータブロックをまとめて伝送することによって、通信上の冗長性を小さくするためである。複数のデータブロック211〜21Nには、著作権情報221が付加される。著作権情報221は、MPEG2−TSパケットが著作権保護等の目的で暗号化されている場合に用いられる情報であって、たとえばコピーの可否、暗号化に関する情報等である。たとえば、著作権情報221は、DTCP(Digital Transmission Content Protection)で規定されるDTCP−IPのためのヘッダである。さらに、複数のデータブロック211〜21Nには、RTPヘッダ222、UDPヘッダ223、IPヘッダ224が付加される。なお、RTPヘッダ内にはタイムスタンプを格納する領域がある。MPEG2−TSパケットをRTPで伝送する際には、MPEG2−TSパケットのPCR(Program Clock Reference)の値とRTPヘッダ内のタイムスタンプ値とを一致させなければならない場合がある。しかし、本発明では、RTPヘッダ内のタイムスタンプは用いないので、MPEG2−TSパケットのPCRの値とRTPヘッダ内のタイムスタンプ値とは、一致させなくてもよいものとする。
図4は、通信プロトコル処理部104によってIPパケット化されたデータパケット(IPパケット)2aのデータ構造の他の例を示す図である。図4では、通信プロトコルとして、HTTP(Hyper Text Transfer Protocol)を用いた場合の例が示されている。通信プロトコル処理部104に入力されたタイムスタンプ201が付加されたMPEG2−TSパケット200は、図3に示したRTPの例と同様に、データブロック211となる。また、通信プロトコル処理部104に入力されたタイムスタンプ201が付加された他のMPEG2−TSパケット200は、それぞれ、データブロック212〜21Nとなる。さらに、複数のデータブロック211〜21Nには、著作権情報221、HTTPヘッダ232、TCPヘッダ233、IPヘッダ234が付加される。
なお、通信プロトコル処理部104で結合されるデータブロックの数が多くなる程、伝送時の冗長性が低くなる。通常、通信プロトコル処理部104は、IPプロトコルを用いて伝送する際、IPヘッダ224以下のデータの総バイト数、すなわち、図3の例では、UDPヘッダ223、RTPヘッダ222、著作権情報221、およびデータブロック211〜21Nの総バイト数が、1500バイト以下の最も大きいバイト数となるように、データブロックの数を設定する。また、通信プロトコル処理部104は、IPヘッダ224以下のデータの総バイト数、すなわち、TCPヘッダ233、HTTPヘッダ232、著作権情報221、およびデータブロック211〜21Nの総バイト数が、1500バイト以下の最も大きいバイト数となるように、データブロックの数を設定する。
通信プロトコル処理部104は、図3、図4に示したようなIPパケット化を行うと共に、所定の通信プロトコル処理を実行する。
通信プロトコル処理部104から出力されたパケットは、通信部105に入力される。通信部105は、たとえば、Ethernet(登録商標)のMAC層および物理層に相当する処理を行い、処理後の信号を伝送路に出力する。
図5は、本発明の第1の実施形態に係るデータ受信装置3の機能的構成を示すブロック図である。図5において、データ受信装置3は、通信部300と、通信プロトコル処理部301と、受信データバッファ部302と、MPEG2−TSデコード部303と、第1の時間情報抽出部304と、初期設定部305と、受信データ量計測部306と、可変クロック生成部307と、タイマ部308と、オフセット部309と、第2の時間情報抽出部310と、第1の時間情報比較部311とを備える。初期設定部305と、タイマ部308と、オフセット部309と、第2の時間情報抽出部310とによって、時間情報出力部312が構成される。
伝送路からの信号は、通信部300に入力される。通信部300は、入力する信号に対して、Ethernet(登録商標)のMAC層および物理層に相当する処理を行い、処理後の信号を通信プロトコル処理部301に入力する。
通信プロトコル処理部301は、所定の通信プロトコル処理を行うと共に、受信した信号に含まれるデータブロックを抽出して、抽出したデータブロックを受信データバッファ部302に格納する。
受信データバッファ部302には、複数のデータブロックが蓄積される。
受信データ量計測部306は、受信データバッファ部302に蓄積された複数のデータブロックの総データ量の平均値(以下、蓄積データ平均値という)を計測し、計測値である蓄積データ平均値の増減に応じた制御信号を可変クロック生成部307に入力する。
可変クロック生成部307は、受信データ量計測部306からの制御信号に基づいて、生成するクロックの周波数を増減する。
受信データ量計測部306は、蓄積データ平均値が増加した場合、可変クロック生成部307が生成するクロックの周波数が上がるような制御信号を出力する。一方、蓄積データ平均値が減少した場合、受信データ量計測部306は、可変クロック生成部307が生成するクロックの周波数が下がるような制御信号を出力する。また一方、蓄積データ平均値が変化していない場合、受信データ量計測部306は、可変クロック生成部307が生成するクロックの周波数を変化させない。
タイマ部308は、可変クロック生成部307が出力するクロックを計数することによって第2の時間情報を出力する。クロックの計数に基づく時間情報として、現在時刻が用いられてもよいし、現在の総カウント数が用いられてもよい。時間に関する情報であれば、時間情報は、上記の例に限られない。
オフセット部309は、タイマ部308が出力する時間情報で表されている時間を遅らせるように、タイマ部308が出力する時間情報に対して、所定のオフセット時間を減算する。以下、オフセット部309から出力される時間情報を第2の時間情報という。所定のオフセット時間を減算することによって遅らせる時間は、おおよそ、伝送遅延時間とバッファリングに要する時間との和である。第2の時間情報は、可変クロック生成部307が生成するクロックの周波数に応じてカウントされる時間情報である。なお、タイマ部308から出力される時間情報を第3の時間情報という。第3の時間情報も可変クロック生成部307が生成するクロックの周波数に応じてカウントされる時間情報である。第2の時間情報と第3の時間情報との違いは、第2の時間情報の方が、所定のオフセット時間だけ、遅れている点である。
第1の時間情報抽出部304は、受信データバッファ部302を参照して、次に出力すべきMPEG2−TSパケット、すなわち、受信データバッファ部302に蓄積されたMPEG2−TSパケットの内、時間的に最も古い時点で蓄積された(最も前に蓄積された)MPEG2−TSパケットに付随するタイムスタンプ内の第1の時間情報を抽出する。
第1の時間情報比較部311は、第1の時間情報抽出部304によって抽出された第1の時間情報とオフセット部309から出力される第2の時間情報とが一致するか否かを判断する。第2の時間情報が刻々とカウントされる中、第1の時間情報比較部311は、第1の時間情報抽出部304からの第1の時間情報とオフセット部309から出力される第2の時間情報とが一致した時点において、MPEG2−TSパケットの出力を受信データバッファ部302に指示するための制御信号を受信データバッファ部302に入力する。
受信データバッファ部302は、第1の時間情報比較部311からの制御信号が入力されれば、蓄積されたMPEG2−TSパケットの内、時間的に最も古い時点で蓄積されたデータブロック内のMPEG2−TSパケットを抜き出し、MPEG2−TSデコード部303に入力する。
受信データバッファ部302によってMPEG2−TSパケットが出力された後、次に出力すべきデータブロックに付随するタイムスタンプ内の第1の時間情報が、第1の時間情報抽出部304によって抽出される。第1の時間情報抽出部304によって抽出された第1の時間情報は、第1の時間情報比較部311において、第2の時間情報と比較される。当該第1の時間情報と第2の時間情報とが一致した時点で、受信データバッファ部302は、次のMPEG2−TSパケットを出力する。このようにして、受信データバッファ部302から、MPEG2−TSパケットが順次出力される。
MPEG2−TSデコード部303は、受信データバッファ部302から出力されるデータブロックを映像および/または音声信号に変換して、出力する。
第2の時間情報抽出部310は、通信プロトコル処理部301が出力するデータブロックからタイムスタンプを抽出し、抽出したタイムスタンプ内から第1の時間情報を抽出し、抽出した第1の時間情報を初期設定部305に入力する。
初期設定部305は、初期設定として、タイマ部308が出力する第3の時間情報を第2の時間情報抽出部310が抽出した第1の時間情報に一致させる。
これにより、データ送信装置1のタイマ部103に設定されている時間情報とデータ受信装置3のタイマ部308に設定されている時間情報とが、伝送路上の遅延を無視すれば、一致することとなる。初期設定部305における初期設定は、データ送信装置1とデータ受信装置3との間で、データが送受信される最初の段階で行われる。こうして、データ受信装置3のタイマ部308の時間情報は、初期設定部305によって初期設定が行われた時点で、伝送路上の遅延を無視すれば、データ送信装置1のタイマ部103の時間情報と一致する。
図6は、データ受信装置3の動作の流れを示すフローチャートである。以下、図6を参照しながら、データ受信装置3の動作の流れについて説明する。
データパケットであるIPパケットの受信を開始する際、第2の時間情報抽出部310は、受信したIPパケット中のデータブロックに含まれる第1の時間情報を抽出する(ステップS101)。
次に、初期設定部305は、タイマ部308が出力する第3の時間情報を第2の時間情報抽出部310が抽出した第1の時間情報に一致させ、初期値設定する(ステップS102)。
次に、可変クロック生成部307は、デフォルトの周波数を有するクロックを生成する(ステップS103)。なお、デフォルトの周波数は、データ送信装置1のクロック生成部102が生成するクロックの周波数とほぼ一致する。ただし、誤差の影響や、精度の違いがあるので、二つの周波数は完全には一致していない場合が多い。
次に、受信データ量計測部306は、受信データバッファ部302を参照して、蓄積データ平均値を計測する(ステップS104)。
次に、受信データ量計測部306は、計測した蓄積データ平均値が前回計測した蓄積データ平均値と比べて増加しているか、減少しているか、それとも変化が無いか否かを判断する(ステップS105)。なお、ステップS104において、初めて蓄積データ平均値を計測した場合、ステップS105,S106,S107の処理は、省略される。
蓄積データ平均値が増加している場合、受信データ量計測部306は、所定の値だけ、または増加量に応じた値だけ、クロックの周波数を上げるように可変クロック生成部307を制御して(ステップS106)、ステップS108の動作に進む。一方、蓄積データ平均値が減少している場合、受信データ量計測部306は、所定の値だけ、または減少量に応じた値だけ、クロックの周波数を下げるように可変クロック生成部307を制御して(ステップS107)、ステップS108の動作に進む。これにより、クロックの周波数が変化して、タイマ部308から出力される第3の時間情報が進むまたは遅れる。また一方、蓄積データ平均値が変化していない場合、データ受信装置3は、そのままステップS108の動作に進む。蓄積データ平均値に変化がないということは、送信側でのMPEG2−TSパケットの時間間隔と出力するMPEG2−TSパケットの時間間隔とが一致していることを示しているので、クロックの周波数を変化させなくてもよい。
ステップS108において、オフセット部309は、タイマ部308からの第3の時間情報からオフセット時間を減算して、タイマ部308からの第3の時間情報を遅らせ、第2の時間情報を出力する。
次に、第1の時間情報抽出部304は、次にデコードすべきMPEG2−TSパケットに対応するタイムスタンプ内の第1の時間情報を受信データバッファ部302から抽出する(ステップS109)。
次に、第1の時間情報比較部311は、第1の時間情報抽出部304が抽出した第1の時間情報と第2の時間情報とが一致するか否かを判断する(ステップS110)。一致する場合、第1の時間情報比較部311は、受信データバッファ部302に、当該第1の時間情報に対応するMPEG2−TSパケットを出力させ、ステップS111の動作に進む。一方、一致しない場合、第1の時間情報比較部311は、第1の時間情報と第2の時間情報とが一致するまで、ステップS110の動作を繰り返す。なお、蓄積データ平均値を求める処理時間がMPEG2−TSパケット間の時間間隔よりも短いならば、ステップS110において一致しないと判断された場合、データ受信装置3は、ステップS104の動作に戻ってもよい。
ステップS111において、第1の時間情報比較部311は、今回送信されてきたIPパケットに含まれる全てのMPEG2−TSパケットを受信データバッファ部302に出力させたか否かを判断する。全てのMPEG2−TSパケットを出力させていない場合、データ受信装置3は、ステップS104の動作に戻る。一方、全てのMPEG2−TSパケットを出力させている場合、データ受信装置3は、処理を終了する。
以上の処理から分かるように、一つのIPパケットを受信している間、可変クロック生成部307、タイマ部308、オフセット部309、第1の時間情報比較部311、第1の時間情報抽出部304、受信データバッファ部302、および受信データ量計測部306によって、閉ループが形成される。
次に、第1の実施形態に係るデータ受信装置3が、送信側でのMPEG2−TSパケットの間隔を再現することができる理由について説明する。
まず、理想的な状況として、以下の条件を満たす状況を考える。
(1)データ送信装置1のクロック生成部102が出力するクロックの周波数と、データ受信装置3の可変クロック生成部307が出力するデフォルトのクロックの周波数とが完全に一致している。
(2)伝送路上で生じる遅延は、常に一定である。
(3)オフセット部309におけるオフセット時間は、伝送路上で生じる遅延およびMPEG2−TSパケットを結合した際に生じる時間軸上のずれを考慮して適切な値に設定されている。
最初のMPEG2−TSパケットに付随するタイムスタンプ内の第1の時間情報がタイマ部308の初期値として設定される。したがって、上記のような理想的な状態の場合、上記(1)の条件より、データ送信装置1のタイマ部103の時間情報とデータ受信装置3のタイマ部308の第3の時間情報とは同期することとが分かる。さらに、上記(3)の条件より、オフセット部309から出力される第2の時間情報は、受信データバッファ部302に格納されるMPEG2−TSパケットに付随しているタイムスタンプ内の時間情報よりも先走っていることはないことが分かる。ゆえに、上記のような理想的な状態の場合、可変クロック生成部307から出力されるクロックの周波数を変化させなくても、第1の時間情報比較部311は、データ送信装置1でエンコードされたMPEG2−TSパケットの時間間隔と同じ間隔で受信データバッファ部302に格納されているMPEG2−TSパケットを、受信データバッファ部302に出力させることができる。
しかし、実際は、上記(1),(2)の理想的な条件は、満たされていない。したがって、単に、初期設定部305において、初期設定を行っただけでは、出力するMPEG2−TSパケットの時間間隔を送信側の時間間隔と一致させることはできない。そこで、第1の実施形態では、受信データバッファ部302の蓄積データ平均値に基づいて、クロックの周波数を変化させていくことによって、出力するMPEG2−TSパケットの時間間隔を送信側の時間間隔と一致させることを実現する。以下、出力するMPEG2−TSパケットの時間間隔と送信側の時間間隔とが一致する理由について説明する。
上記(1)の条件が満たされない場合、すなわち、データ送信装置1のクロック生成部102が出力するクロックの周波数と、データ受信装置3の可変クロック生成部307が出力するデフォルトのクロックの周波数とが完全に一致しない場合を考える。
たとえば、可変クロック生成部307が出力するクロックの周波数が、クロック生成部102が出力するクロックの周波数に比べて遅い場合、受信データバッファ部302から出力されるMPEG2−TSパケットの時間間隔は、送信側においてタイムスタンプが付加されたときの時間間隔に比べて、大きくなってしまう。このような場合、出力されずに受信データバッファ部302に格納されたままとなるMPEG2−TSパケットが増加していくので、蓄積データ平均値は、増加することとなる。蓄積データ平均値が増加した場合、可変クロック生成部307から出力されるクロックの周波数は上げられる。クロックの周波数が上げられれば、タイマ部308から出力される第3の時間情報が進み、オフセット部309から出力される第2の時間情報が進むこととなる。第2の時間情報が進めば、第1の時間情報比較部311における時間情報の比較処理が早く進んでいくので、出力されるMPEG2−TSパケットの時間間隔は、狭くなっていき、送信側においてタイムスタンプが付加されたときの時間間隔に近づいていくこととなる。クロック周波数制御のための閉ループによって、出力されるMPEG2−TSパケットの時間間隔は、ある値に収束していき、送信側においてタイムスタンプが付加されたときの時間間隔と一致することとなる。
逆に、可変クロック生成部307が出力するクロックの周波数が、クロック生成部102が出力するクロックの周波数に比べて早い場合、受信データバッファ部302から出力されるMPEG2−TSパケットの時間間隔は、送信側においてタイムスタンプが付加されたときの時間間隔に比べて、狭くなってしまう。このような場合、受信データバッファ部302に格納されたMPEG2−TSパケットは徐々に減少していくので、蓄積データ平均値は、減少することとなる。蓄積データ平均値が減少した場合、可変クロック生成部307から出力されるクロックの周波数は下げられる。クロックの周波数が下げられれば、タイマ部308から出力される第3の時間情報が遅れ、オフセット部309から出力される第2の時間情報が遅れることとなる。第2の時間情報が遅れれば、第1の時間情報比較部311における時間情報の比較処理がゆっくり進んでいくので、出力されるMPEG2−TSパケットの時間間隔は、広くなっていき、送信側においてタイムスタンプが付加されたときの時間間隔に近づいていくこととなる。クロック周波数制御のための閉ループによって、出力されるMPEG2−TSパケットの時間間隔は、ある値に収束していき、送信側においてタイムスタンプが付加されたときの時間間隔と一致することとなる。
次に、上記(2)の条件が満たされない場合、すなわち、伝送路上で生じる遅延が変化している場合について考える。
たとえば、伝送路上での遅延が増大した場合、受信データバッファ部302に格納されているMPEG2−TSパケットは次々に出力されていってしまうので、蓄積データ平均値は、減少する。蓄積データ平均値が減少傾向にあるにもかかわらず、クロックの周波数を下げずに処理を続けると、第2の時間情報が受信データバッファ部302に蓄積されるMPEG2−TSパケットに対応する第1の時間情報よりも先走ってしまうこととなる。結果、出力すべきMPEG2−TSパケットが枯渇してしまう。そのため、蓄積データ平均値データが減少した場合、受信データ量計測部306は、可変クロック生成部307が出力するクロックの周波数を下げる。これによって、第2の時間情報が遅れることとなるので、第2の時間情報が先走ってしまうことがなくなる。結果、受信データバッファ部302内において出力すべきMPEG2−TSパケットが枯渇する事態を回避できる。この場合、出力されるMPEG2−TSパケットの時間間隔は広くなっていく。逆に、もし、伝送路上での遅延が減少してきたら、受信データバッファ部302に格納されているMPEG2−TSパケットは徐々に蓄積されていくこととなり、蓄積データ平均値は、増大する。蓄積データ平均値が増大すれば、クロックの周波数が上げられるので、第2の時間情報が進み、第1の時間情報比較部311における時間情報の比較処理が早く進んでいく。結果、出力されるMPEG2−TSパケットの時間間隔は、狭くなっていく。したがって、伝送路上での遅延に変動があったとしても、データ受信装置3から出力されるMPEG2−TSパケットの時間間隔は、平均的には、送信側においてタイムスタンプが付加されたときの時間間隔と一致することとなる。
実際の状況では、(1)および(2)の条件は、複雑に絡み合っている。しかし、データ受信装置3は、蓄積データ平均値を用いて、可変クロック生成部307が出力するクロックの周波数を制御することとなるので、データ受信装置3から出力されるMPEG2−TSパケットの時間間隔は、平均的には、送信側においてタイムスタンプが付加されたときの時間間隔と一致することとなる。
次に、受信データバッファ部302に蓄積されているデータの平均値を用いて、クロックの周波数を制御する理由について説明する。
データ送信装置1のMPEG2−TSエンコード部100が出力するMPEG2−TSパケットは、パケットの時間間隔が完全に等間隔の場合もあれば、パケットの間隔が等間隔でなく間欠的である場合もある。パケットの間隔が間欠的である場合、受信データバッファ部302に蓄積されるデータ量は、変動することになる。また、MPEGのエンコードの方法には、一定の符号発生量となる固定ビットレート(CBR)と、符号発生量が変動する可変ビットレート(VBR)とがある。VBRの場合も、受信データバッファ部302に蓄積されるデータ量は、変動する。パケットの間隔が間欠的であるエンコード方法を用いる場合であっても、ある単位時間あたりのパケットの間隔の平均は、一定である。また、VBRを用いる場合であっても、ある単位時間あたりの符号発生量の平均は、一定である。したがって、上記のように、蓄積されるデータの量が局所的には変動する場合であっても、受信データバッファ部302に蓄積されるデータ量のある単位時間あたりの平均は、一定である。
したがって、蓄積データ平均値に応じてクロックの周波数が制御されることによって、クロックの周波数を平均的には送信側のクロックの周波数と一致させることができる。したがって、データ受信装置3から出力されるMPEG2−TSパケットの時間間隔は、平均的には、送信側においてタイムスタンプが付加されたときの時間間隔と一致することとなる。
なお、ここでは、受信データ量計測部306は、蓄積データ平均値に応じてクロックの周波数を制御されることとしたが、受信データバッファ部302における瞬時の蓄積データ量に応じてクロックの周波数を制御してもよい。ただし、この場合、受信データ量計測部306は、クロックの周波数の変化が、受信データバッファ部302に蓄積されるデータ量の瞬時的な変動に対して、十分に遅くなるように、クロックの周波数を制御する。
また、オフセット部309によって、タイマ部308の第3の時間情報に所定のオフセット時間が加算される理由は、伝送路による遅延を考慮するためである。上述のように、伝送路上での遅延を無視すれば、データ送信装置1のタイマ部103の時間情報とデータ受信装置3のタイマ部308の第3の時間情報とは一致している。しかし、実際には、伝送路によって遅延が生じているので、データ受信装置3のタイマ部308の第3の時間情報が示す時刻に、MPEG2−TSパケットが届かない場合がある。オフセット時間を加算することによって、受信データバッファ部302から出力されるMPEG2−TSパケットの出力時間に遅延を持たせることができる。したがって、伝送路上での遅延が生じていたために、タイムスタンプに含まれている第1の時間情報がデータ受信装置3内で既に過ぎてしまって、MPEG2−TSパケットがデコードされないといった事態を回避することができる。なお、MPEG2−TSパケットを出力する時間の遅延は、小さいほど望ましい。しかし、あまり小さすぎると、出力すべきデータが受信側に届いていない状況が発生するので、出力するデータが枯渇する場合が発生する。以上のようなことを考慮して、オフセット時間は適切に設定されるべきである。
たとえば、伝送路の状態によっては、伝送されるデータの遅延が大きくなる場合がある。たとえば、Ethernet(登録商標)等を用いて、広域のネットワークを介して、データを伝送する場合、データの遅延のばらつきが大きくなる。また、IEEE802.11の無線LANを介してデータを伝送する場合、伝送誤りがあれば、MAC層において、データの再送が発生する。データの再送が発生すると、データの伝送遅延が大きくなる。データの伝送遅延が大きくなった場合、受信データバッファ部302に蓄積されるべきデータが到着せず、必要な時間に出力すべきデータがなくなる場合が発生する。しかし、オフセット部309において、所定のオフセット時間を加算すれば、このような状態を回避することができる。伝送路の状態が悪化し伝送遅延が大きい場合、オフセット時間の加算によって、第1の時間情報比較部311での比較に用いられる第2の時間情報を時間的に遅らせることができ、受信データバッファ部302に所定の時間分のデータが蓄積されることとなる。結果、データが枯渇する状態を回避することができる。
なお、オフセット部309は、所定のオフセット時間を、受信データバッファ部302に蓄積されているデータ量に応じて、変化させてもよい。具体的には、オフセット部309は、所定のオフセット時間を、受信データバッファ部302に蓄積されているデータ量が多い場合に小さくなるようにし、受信データバッファ部302に蓄積されているデータ量が少ない場合に大きくなるように制御するとよい。これにより、受信データバッファ部302に保持されるデータ量を最小限に保ちながら、受信データが枯渇しないように制御することができる。ただし、受信データ量計測部306による閉ループ制御に影響を与えないように、オフセット時間は、制御されなければならない。
また、伝送に使用する物理層、またはMAC層等の種類を示す通信プロトコルの種類に応じて、伝送遅延量はばらつく。したがって、オフセット部309は、通信プロトコルの種類に応じて、所定のオフセット時間を変更するようにしても、受信データバッファ部302に保持されるデータ量を最適化することができる。
また、オフセット部309は、伝送路の状態に応じて、所定のオフセット時間を変化させてもよい。例えば、無線LANの場合、伝送路誤りがあるとデータが再送される。再送回数を計測することによって、伝送路の状態を知ることができる。再送回数が多い場合には、伝送遅延が増えるため、オフセット部309は、オフセット時間を大きくする。
なお、第1の実施形態において、図5に示した各機能ブロックの動作は、並行に行われてもよいことは言うまでもない。
なお、バッファ量を計測してクロックの周波数を制御する第1の実施形態に係る方法では、IPパケットを受信した当初、すなわち受信データバッファ部302に所定量以上のデータが蓄積されるまで、バッファ量によるフィードバックが得られないため、開ループとなってしまい、誤作動が生じるおそれがある。このように、IPパケットの受信を開始した時点から所定の期間の間、受信データ量計測部306は、可変クロック生成部307から出力されるクロックの周波数をデフォルト値に固定させるとよい。これによって、開ループによる誤動作を回避することができる。すなわち、受信データ量計測部306は、所定の時間経過後に、クロックの周波数の制御を開始するとよい。
(第2の実施形態)
第2の実施形態において、データ送信装置の構造およびMPEG2−TSパケットを含むIPパケットの構造は、第1の実施形態と同様であるので、図1〜4を援用することとする。
図7は、本発明の第2の実施形態に係るデータ受信装置4の機能的構成を示すブロック図である。図7において、第1の実施形態におけるデータ受信装置3と同様の機能を有する部分については、同一の参照符号を付し、詳しい説明を省略することとする。
図7において、データ受信装置4は、通信部300と、通信プロトコル処理部301と、受信データバッファ部302と、MPEG2−TSデコード部303と、第1の時間情報抽出部304と、初期設定部305と、可変クロック生成部307と、タイマ部308と、オフセット部309と、第2の時間情報抽出部310と、第1の時間情報比較部311と、第2の時間情報比較部400とを備える。
図7に示すように、第2の実施形態に係るデータ受信装置4には、第1の実施形態に係る受信データ量計測部306の代わりに、第2の時間情報比較部400が設けられている。
第2の時間情報抽出部310は、通信プロトコル処理部301が出力するデータブロックからタイムスタンプを抽出して、当該タイムスタンプに含まれる第1の時間情報を抽出して、当該第1の時間情報を初期設定部305に入力すると共に、第2の時間情報比較部400に入力する。
第2の時間情報比較部400は、第2の時間情報抽出部310が抽出した第1の時間情報と、タイマ部308が出力する第3の時間情報とを比較し、時間差に応じた制御信号を可変クロック生成部307に入力する。可変クロック生成部307は、第2の時間情報比較部400からの制御信号に応じて、生成するクロックの周波数を増減する。第2の時間情報抽出部310が抽出した第1の時間情報がタイマ部308が出力する第3の時間情報より遅れている場合、第2の時間情報比較部400は、可変クロック生成部307の生成するクロックの周波数が上がるような制御信号を出力する。一方、第2の時間情報抽出部310が抽出した第1の時間情報がタイマ部308が出力する第3の時間情報より進んでいる場合、第2の時間情報比較部400は、可変クロック生成部307の生成するクロックの周波数が下がるような制御信号を出力する。なお、第2の時間情報抽出部310が抽出した第1の時間情報とタイマ部308が出力する第3の時間情報とが一致している場合、第2の時間情報比較部400は、可変クロック生成部307の生成するクロックの周波数を変化させない。
図8は、本発明の第2の実施形態に係るデータ受信装置4の動作を示すフローチャートである。以下、図8を参照しながら、本発明の第2の実施形態に係るデータ受信装置4の動作について説明する。
IPパケットの受信を開始する際、第2の時間情報抽出部310は、受信したIPパケット中のデータブロックに含まれるタイムスタンプ内の第1の時間情報を抽出する(ステップS201)。
次に、初期設定部305は、タイマ部308が出力する第3の時間情報を第2の時間情報抽出部310が抽出した第1の時間情報に一致させ、初期設定する(ステップS202)。
次に、可変クロック生成部307は、デフォルトの周波数を有するクロックを生成する(ステップS203)。
次に、データ受信装置4は、通信プロトコル処理部301によって受信されたデータが存在するか否かを判断する(ステップS204)。データが存在しない場合、データ受信装置4は、ステップS211の動作に進む。一方、データが存在する場合、データ受信装置4は、ステップS205の動作に進む。
ステップS205において、第2の時間情報抽出部310は、通信プロトコル処理部301が受信したデータから第1の時間情報を抽出する。
次に、第2の時間情報比較部400は、タイマ部308が出力する第3の時間情報と第2の時間情報抽出部310がステップS205において抽出した第1の時間情報とを比較する(ステップS206)。タイマ部308が出力する第3の時間情報が遅れている場合、第2の時間情報比較部400は、クロックの周波数を上げるように可変クロック生成部307を制御し(ステップS207)、ステップS209の動作に進む。一方、タイマ部308が出力する第3の時間情報が進んでいる場合、第2の時間情報比較部400は、クロックの周波数を下げるように可変クロック生成部307を制御し(ステップS208)、ステップS209の動作に進む。また一方、時間情報が一致している場合、第2の時間情報比較部400は、クロックの周波数を変化させることなく、ステップS209の動作に進む。
ステップS209において、オフセット部309は、タイマ部308からの第3の時間情報からオフセット時間を減算して、タイマ部308からの第3の時間情報を遅らせ、第2の時間情報を出力する。
次に、第1の時間情報抽出部304は、次にデコードすべきMPEG2−TSパケットに対応するタイムスタンプを受信データバッファ部302から抽出する(ステップS210)。
次に、第1の時間情報比較部311は、第1の時間情報抽出部304が抽出したタイムスタンプに含まれる第1の時間情報と第2の時間情報とが一致するか否かを判断する(ステップS211)。一致する場合、第1の時間情報比較部311は、受信データバッファ部302に抽出した第1の時間情報に対応するMPEG2−TSパケットを出力させ、ステップS212の動作に進む。一方、一致しない場合、第1の時間情報比較部311は、ステップS204の動作に戻る。
ステップS212において、第1の時間情報比較部311は、今回送信されてきたIPパケットに含まれる全てのMPEG2−TSパケットを受信データバッファ部302に出力させたか否かを判断する。全てのMPEG2−TSパケットを出力させていない場合、データ受信装置4は、ステップS204の動作に戻る。一方、全てのMPEG2−TSパケットを出力させている場合、データ受信装置4は、処理を終了する。
以上の処理から分かるように、可変クロック生成部307と、タイマ部308と、第2の時間情報比較部400によって、閉ループが形成される。
このように、第2の時間情報比較部400によって、第2の時間情報抽出部310からの第1の時間情報と、タイマ部308の出力する第3の時間情報とが比較され、時間差に応じて、可変クロック生成部307の出力するクロックの周波数が制御される。もし、タイマ部308の第3の時間情報が受信したMPEG2−TSパケットに付随する第1の時間情報よりも遅れている場合、クロックの周波数が低いことを意味するので、第2の時間情報比較部400によってクロックの周波数が上げられることによって、可変クロック生成部307の生成するクロックの周波数は、図1のデータ送信装置1におけるクロック生成部102の発生するクロックの周波数と一致する方向に変化する。一方、もし、タイマ部308の第3の時間情報が受信したMPEG2−TSパケットに付随する第1の時間情報よりも進んでいる場合、クロックの周波数が高いことを意味するので、第2の時間情報比較部400によってクロックの周波数が下げられることによって、可変クロック生成部307の生成するクロックの周波数は、図1のデータ送信装置1におけるクロック生成部102の発生するクロックの周波数と一致する方向に変化する。
従って、データ受信装置4のタイマ部308が出力する第3の時間情報とデータ送信装置1のタイマ部103が出力する時間情報とは、同期することになる。
データ送信装置1のタイマ部103とデータ受信装置4のタイマ部308とが同期することによって、データ送信装置1のMPEG2−TSエンコード部100が出力したMPEG2−TSパケットの時間間隔と、受信データバッファ部302からMPEG2−TSデコード部303に入力されるMPEG2−TSパケットの時間間隔とは、一致することとなる。
ここで、第2の時間情報比較部400は、クロックの周波数の変化が、比較した時間差の変動に対して、十分遅くなるように、クロックの周波数を制御するものとする。たとえば、第2の時間情報比較部400は、ある単位時間あたりにおける時間差の平均値を算出し、時間差の平均値に基づいて、タイマ部308の第3の時間情報が進んでいるかそれとも遅れているかを求めて(ステップS206)、クロックの制御を行う(ステップS207,S208)。データ送信装置1は、MPEG2−TSパケットを結合して、IPパケット化する際、タイムスタンプに含まれる時間情報によって示される時間から時間軸上でずれるように、MPEG2−TSパケットを結合する場合がある。したがって、データ受信装置4にIPパケットが届いた瞬間のタイマ部308が出力する第3の時間情報とタイムスタンプに含まれる第1の時間情報とが一致しない場合がある。そのため、時間情報の時間差がゼロにならず、時間差が大きく変動する場合がある。しかし、MPEG2−TSパケットを結合するときのずれは、平均的には、一定である。ゆえに、第2の時間情報比較部400が上述のようにクロックの周波数を制御することによって、データ受信装置4のタイマ部308が出力する第3の時間情報とデータ送信装置1のタイマ部103が出力する第1の時間情報とを一致させることができる。
なお、時間差の平均値を求める場合、平均値を求める期間の長さによっては、ステップS211において、時間情報が一致するまで処理を繰り返すようにするとよい。
なお、第2の時間情報比較部400は、第2の時間情報抽出部310が抽出した全てのタイムスタンプ値を用いて、時間差を求めなくてもよい。たとえば、第2の時間情報比較部400は、複数のデータブロックの内、IPパケットの最初の位置にあるデータブロック211に含まれる第1の時間情報のみをタイマ部308の出力する第3の時間情報と比較してもよい。また、第2の時間情報比較部400は、定期的に時間情報を比較するようにしてもよい。
(第3の実施形態)
第3の実施形態において、データ送信装置の構造およびMPEG2−TSパケットを含むIPパケットの構造は、第1の実施形態と同様であるので、図1〜4を援用することとする。
図9は、本発明の第3の実施形態に係るデータ受信装置5の機能的構成を示すブロック図である。図9において、第1および第2の実施形態におけるデータ受信装置3,4と同様の機能を有する部分については、同一の参照符号を付し、詳しい説明を省略することとする。
図9において、データ受信装置5は、通信部300と、通信プロトコル処理部301と、受信データバッファ部302と、MPEG2−TSデコード部303と、第1の時間情報抽出部304と、初期設定部305と、受信データ量計測部306と、バッファ量可変クロック生成部307と、タイマ部308と、オフセット部309と、第2の時間情報抽出部310と、第1の時間情報比較部311と、第2の時間情報比較部400と、切り替え制御部500とを備える。
切り替え制御部500は、データの受信開始時から所定の期間、第2の時間情報比較部400にクロックの周波数を制御させる。当該所定の期間の後、切り替え制御部500は、受信データ量計測部306にクロックの周波数を制御させる。
図10は、第3の実施形態に係るデータ受信装置5の動作を示すフローチャートである。以下、図10を参照しながら、第3の実施形態に係るデータ受信装置5の動作について説明する。
IPパケットの受信を開始する際、第2の時間情報抽出部310は、受信したIPパケット中のデータブロックに含まれるタイムスタンプを抽出する(ステップS301)。
次に、初期設定部305は、第2の時間情報抽出部310が抽出したタイムスタンプに含まれる時間情報を、タイマ部308の初期値に設定する(ステップS302)。
次に、可変クロック生成部307は、デフォルトの周波数を有するクロックを生成する(ステップS303)。
次に、切り替え制御部500は、IPパケットの受信から所定の時間が経過したか否か(または受信データバッファ部302に所定量以上のデータが蓄積されたか否か)を判断する(ステップS304)。所定の時間が経過していない場合(所定量以上のデータが蓄積されていない場合)、データ受信装置5は、ステップS305の動作に進む。一方、所定の時間が経過している場合(所定量以上のデータが蓄積されている場合)、データ受信装置5は、ステップS306の動作に進む。
ステップS305において、データ受信装置5は、第2の時間情報比較部400を用いて、クロックの周波数を制御するために、図8に示すステップS204〜S211と同様の処理を実行する。ステップS305の処理が終了すれば、データ受信装置5は、ステップS304の動作に戻る。
ステップS306において、データ受信装置5は、受信データ量計測部306を用いて、クロックの周波数を制御するために、図6に示すステップS104〜S110と同様の処理を実行する。ステップS306の処理が終了すれば、データ受信装置5は、ステップS307の動作に進む。
ステップS307において、第1の時間情報比較部311は、今回送信されてきたIPパケットに含まれる全てのMPEG2−TSパケットを受信データバッファ部302に出力させたか否かを判断する。全てのMPEG2−TSパケットを出力させていない場合、データ受信装置5は、ステップS304の動作に戻る。一方、全てのMPEG2−TSパケットを出力させている場合、データ受信装置5は、処理を終了する。
第1の実施形態でも指摘したように、IPパケットを受信した当初、開ループによって、誤作動が生じるおそれがある。しかし、第3の実施形態のように、IPパケットの受信開始時には、データ受信装置5は、第2の時間情報比較部400を用いて、クロックの周波数を制御することによって、クロックの周波数を送信側に追従させることができる。所定の時間の経過後(または受信バッファに所定の量の受信データが溜まった後)、データ受信装置5は、バッファ量計測によるフィードバック制御に切り替える。第3の実施形態では、データの受信開始時、クロックが早急に収束して効果的である。また、バッファ量計測によるフィードバックの方が、タイムスタンプ抽出によるフィードバックよりも、変動の積分値をフィードバックすることができるので、定常時には、安定的に時間間隔を一致させることができる。
なお、第1〜第3のデータ受信装置3,4,および5は、汎用のコンピュータ装置であってもよい。この場合、図6,図8,または図10の動作を当該コンピュータ装置の中央演算装置に実行させるためのプログラムが、コンピュータ読み取り可能な記録媒体に格納されているとよい。そして、当該プログラムは、中央演算装置に読み込まれる。当該プログラムを読み込んだ中央演算装置は、データ受信装置であるコンピュータ装置を図6,図8,または図10に示すように動作させる。
なお、図5,図7,および図9に示した各機能ブロックは、集積回路であるLSIとして実現されてもよい。これらの機能ブロックは、1チップ化されていてもよいし、一部又は全てを含むように1チップ化されていてもよい。典型的には、受信データバッファ部302は、集積回路の外部に設けられた記憶装置となる。ここでは、LSIといったが、集積度の違いによっては、IC、システムLSI、スーパーLSI、ウルトラLSIと称呼されることもある。また、集積回路化の手法は、LSIに限られるものではなく、専用回路または汎用プロセッサで集積回路化を行ってもよい。また、LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを用いてもよい。さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックを集積化してもよい。バイオ技術の適応等が可能性としてあり得る。
なお、第1〜第3の実施形態では、通信部300は、Ethernet(登録商標)のMAC層および物理層を処理するものとしたが、これに限定されるものではない。たとえば、通信部300は、IEEE802.11など、如何なるMAC層および物理層を処理してもよい。また、通信プロトコル処理部301は、RTP,HTTPを用いることとしたが、これに限定されるものではない。本発明は特定の通信プロトコルに限定されるものではない。また、送受信されるデータパケットは、IPパケットに限定されるものではない。また、第1〜第3の実施形態では、送受信されるデータパケット内のデータブロックに含まれるパケットはMPEG2−TSパケットであるとしたが、データブロックに含まれるパケットはこれに限定されるものではない。
なお、第1の時間情報抽出部304と第2の時間情報抽出部とは、一体化され、一つの時間情報抽出部となっていてもよい。
なお、初期設定部305は、最初に受信するMPEG2−TSパケット以外のMPEG2−TSパケットに付随する第1の時間情報を用いて、タイマ部308から出力される第3の時間情報の初期値を設定してもよい。
なお、第3の実施形態における第2の時間情報比較部400および受信データ量計測部306によるクロックの周波数の制御は、第3の実施形態で示したタイミング以外で行われてもよい。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
本発明に係るデータ受信装置は、データパケットに含まれるパケットの時間間隔を再現することができ、Ethernet(登録商標)やIEEE802.11等の非同期の伝送路を介してMPEG2−TS等のパケットを伝送する映像配信や映像伝送等の用途に有用である。
本発明の第1の実施形態に係るデータ送信装置1の機能的構成を示すブロック図 MPEG2−TSエンコード部100から出力される複数のMPEG2−TSパケットのデータ構造を示す図 タイムスタンプ付加部101から出力されるタイムスタンプ201が付加された複数のMPEG2−TSパケット200のデータ構造を示す図 通信プロトコル処理部104によってIPパケット化されたデータパケット(IPパケット)2のデータ構造の一例を示す図 通信プロトコル処理部104によってIPパケット化されたデータパケット(IPパケット)2aのデータ構造の他の例を示す図 本発明の第1の実施形態に係るデータ受信装置3の機能的構成を示すブロック図 データ受信装置3の動作の流れを示すフローチャート 本発明の第2の実施形態に係るデータ受信装置4の機能的構成を示すブロック図 本発明の第2の実施形態に係るデータ受信装置4の動作を示すフローチャート 本発明の第3の実施形態に係るデータ受信装置5の機能的構成を示すブロック図 第3の実施形態に係るデータ受信装置5の動作を示すフローチャート 特許文献1に記載されている従来の送信側の無線親機900の機能的構成を示すブロック図 特許文献1に記載されている従来の受信側の無線子機920の機能的構成を示すブロック図 特許文献1に記載されている従来の送信側の無線親局から送信されるデータパケット990のフレーム構造を示す図
符号の説明
1 データ送信装置
3,4,5 データ受信装置
100 MPEG2−TSエンコード部
101 タイムスタンプ付加部
102 クロック生成部
103 タイマ部
104,301 通信プロトコル処理部
105,300 通信部
200 MPEG2−TSパケット
201 タイムスタンプ
2,2a IPパケット
302 受信データバッファ部
303 MPEG2−TSデコード部
304 第1の時間情報抽出部
305 初期設定部
306 受信データ量計測部
307 可変クロック生成部
308 タイマ部
309 オフセット部
310 第2の時間情報抽出部
311 第1の時間情報比較部
312 時間情報出力部
400 第2の時間情報比較部
500 切り替え制御部

Claims (13)

  1. 複数のパケットを含んでいるデータパケットを受信するためのデータ受信装置であって、
    前記複数のパケットには、それぞれ、パケット生成時の時間に関する情報である第1の時間情報が付加されており、
    前記データパケットに含まれる複数のパケットを格納するための受信データバッファ部と、
    前記受信データバッファ部に格納されているデータの量を計測する受信データ量計測部と、
    周波数が可変なクロックを生成する可変クロック生成部と、
    前記可変クロック生成部が生成する前記クロックの周波数に応じてカウントされる第2の時間情報を出力する時間情報出力部と、
    前記パケットに付加されている前記第1の時間情報と前記時間情報出力部から出力される前記第2の時間情報とを比較して、前記受信データバッファ部に格納されている前記パケットを出力するタイミングを制御する第1の時間情報比較部とを備え、
    前記受信データ量計測部は、前記可変クロック生成部が生成する前記クロックの周波数を前記受信データ量計測部による計測値に応じて制御する、データ受信装置。
  2. 前記時間情報比較部が出力する前記第2の時間情報は、所定のオフセット時間だけ遅れている、請求項1に記載のデータ受信装置。
  3. 前記時間情報出力部は、
    前記可変クロック生成部が生成する前記クロックの周波数に応じてカウントされる第3の時間情報を出力するタイマ部と、
    前記受信データバッファ部に格納されるパケットに付加されている第1の時間情報を抽出する時間情報抽出部と、
    前記タイマ部が出力する前記第3の時間情報を前記時間情報抽出部が抽出した前記第1の時間情報に一致させる初期設定部と、
    前記タイマ部が出力する前記第3の時間情報を前記所定のオフセット時間だけ遅らせることによって前記第2の時間情報を出力するオフセット部とを備える、請求項2に記載のデータ受信装置。
  4. 前記オフセット部は、前記データ受信装置が接続される伝送路の状態に応じて、前記所定のオフセット時間を変化させる、請求項3に記載のデータ受信装置。
  5. 前記オフセット部は、前記受信データバッファ部に蓄積されているデータの量に応じて、前記所定のオフセット時間を変化させる、請求項3に記載のデータ受信装置。
  6. 前記オフセット部は、通信プロトコルの種類に応じて、前記所定のオフセット時間を変化させる、請求項3に記載のデータ受信装置。
  7. さらに、前記タイマ部が出力する前記第3の時間情報と前記時間情報抽出部が抽出する前記第1の時間情報とを比較し、比較結果に応じて、前記可変クロック生成部が生成する前記クロックの周波数を制御する第2の時間情報比較部を備える、請求項3に記載のデータ受信装置。
  8. 前記データパケットの受信を開始した時点から所定の時間が経過するまで、前記可変クロック生成部が生成する前記クロックの周波数は、前記第2の時間情報比較部によって制御され、
    前記所定の時間の経過後、前記可変クロック生成部が生成する前記クロックの周波数は、前記受信データ量計測部によって制御される、請求項7に記載のデータ受信装置。
  9. 前記受信データ量計測部は、所定の時間経過後に、前記可変クロック生成部が生成する前記クロックの周波数の制御を開始する、請求項3に記載のデータ受信装置。
  10. 前記受信データ量計測部は、前記受信データバッファ部に蓄積されているデータの量の平均値を前記計測値とし、前記計測値に応じて、前記可変クロック生成部が生成する前記クロックの周波数を制御する、請求項1に記載のデータ受信装置。
  11. 前記データパケットに含まれる前記パケットは、MPEG2−TSパケットである、請求項1に記載のデータ受信装置。
  12. 前記データパケットは、映像および/または音声信号をエンコードして複数のMPEG2−TSパケットを生成して、各前記MPEG2−TSパケットに対して、エンコード時の時間に関する情報を前記第1の時間情報として付加して、前記第1の時間情報が付加された前記複数のMPEG2−TSパケットを結合して、前記データパケットを生成するデータ送信装置から送信されている、請求項1に記載のデータ受信装置。
  13. 複数のパケットを含んでいるデータパケットを受信するための集積回路であって、
    前記複数のパケットには、それぞれ、パケット生成時の時間に関する情報である第1の時間情報が付加されており、
    前記集積回路に接続される前記データパケットに含まれる複数のパケットを格納するための受信データバッファ部に格納されているデータの量を計測する受信データ量計測部と、
    周波数が可変なクロックを生成する可変クロック生成部と、
    前記可変クロック生成部が生成する前記クロックの周波数に応じてカウントされる第2の時間情報を出力する時間情報出力部と、
    前記パケットに付加されている前記第1の時間情報と前記時間情報出力部から出力される前記第2の時間情報とを比較して、前記受信データバッファ部に格納されている前記パケットを出力するタイミングを制御する第1の時間情報比較部とを備え、
    前記受信データ量計測部は、前記可変クロック生成部が生成する前記クロックの周波数を前記受信データ量計測部による計測値に応じて制御する、集積回路。
JP2005516870A 2004-01-07 2005-01-05 データ受信装置 Expired - Fee Related JP4694969B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005516870A JP4694969B2 (ja) 2004-01-07 2005-01-05 データ受信装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004002431 2004-01-07
JP2004002431 2004-01-07
JP2005516870A JP4694969B2 (ja) 2004-01-07 2005-01-05 データ受信装置
PCT/JP2005/000033 WO2005067252A1 (ja) 2004-01-07 2005-01-05 データ受信装置

Publications (2)

Publication Number Publication Date
JPWO2005067252A1 true JPWO2005067252A1 (ja) 2007-12-27
JP4694969B2 JP4694969B2 (ja) 2011-06-08

Family

ID=34747039

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005516870A Expired - Fee Related JP4694969B2 (ja) 2004-01-07 2005-01-05 データ受信装置

Country Status (4)

Country Link
US (1) US7561582B2 (ja)
JP (1) JP4694969B2 (ja)
CN (1) CN1906909B (ja)
WO (1) WO2005067252A1 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1613016A1 (en) * 2004-07-01 2006-01-04 Thomson Licensing Method for transmitting packets in a transmission system
US7848227B2 (en) * 2005-01-26 2010-12-07 Cisco Technology, Inc. Retransmit timeout suppression in large scale networks
JP4612688B2 (ja) * 2005-11-24 2011-01-12 富士通セミコンダクター株式会社 受信装置
US7995143B2 (en) * 2006-02-10 2011-08-09 Qualcomm Incorporated Wireless video link synchronization
JP2007266875A (ja) * 2006-03-28 2007-10-11 Toshiba Corp 映像データの処理方法及び無線通信装置
JP2008034905A (ja) * 2006-07-26 2008-02-14 Tektronix Japan Ltd デジタル伝送装置及び方法
US7813271B2 (en) * 2006-09-25 2010-10-12 Futurewei Technologies, Inc. Aggregated link traffic protection
US8660152B2 (en) * 2006-09-25 2014-02-25 Futurewei Technologies, Inc. Multi-frame network clock synchronization
US8295310B2 (en) 2006-09-25 2012-10-23 Futurewei Technologies, Inc. Inter-packet gap network clock synchronization
US7986700B2 (en) 2006-09-25 2011-07-26 Futurewei Technologies, Inc. Multiplexed data stream circuit architecture
US8976796B2 (en) * 2006-09-25 2015-03-10 Futurewei Technologies, Inc. Bandwidth reuse in multiplexed data stream
US8494009B2 (en) 2006-09-25 2013-07-23 Futurewei Technologies, Inc. Network clock synchronization timestamp
US8340101B2 (en) 2006-09-25 2012-12-25 Futurewei Technologies, Inc. Multiplexed data stream payload format
US7961751B2 (en) * 2006-09-25 2011-06-14 Futurewei Technologies, Inc. Multiplexed data stream timeslot map
US7809027B2 (en) 2006-09-25 2010-10-05 Futurewei Technologies, Inc. Network clock synchronization floating window and window delineation
US7675945B2 (en) * 2006-09-25 2010-03-09 Futurewei Technologies, Inc. Multi-component compatible data architecture
US8588209B2 (en) 2006-09-25 2013-11-19 Futurewei Technologies, Inc. Multi-network compatible data architecture
CN101578794B (zh) * 2007-01-26 2012-12-12 华为技术有限公司 数据通信装置及网络组件
JP5092493B2 (ja) * 2007-03-28 2012-12-05 富士通株式会社 受信プログラム、受信装置、通信システム、及び、通信方法
EP2053821B1 (en) * 2007-10-22 2013-05-15 Nokia Siemens Networks Oy Method, apparatus and computer program product for service decomposition in IP-broadcast networks
JP4874272B2 (ja) * 2008-01-22 2012-02-15 住友電気工業株式会社 映像信号処理装置および映像信号処理方法
US8391419B2 (en) * 2008-03-17 2013-03-05 Synaptics, Inc. Circuit for recovering an output clock from a source clock
JP2010021804A (ja) * 2008-07-10 2010-01-28 Univ Nagoya 通信装置、通信システム及び通信方法
JP5177004B2 (ja) * 2009-02-19 2013-04-03 富士通株式会社 動作モード変更装置および通信装置
WO2010126068A1 (ja) * 2009-04-27 2010-11-04 日本電気株式会社 受信装置、受信方法およびプログラム
US20110193970A1 (en) * 2010-02-11 2011-08-11 Analogix Semiconductor, Inc. Reducing Jitter in a Recovered Data Stream Clock of a Video DisplayPort Receiver
US20140369222A1 (en) * 2012-01-26 2014-12-18 Electronics And Telecommunications Research Institute Method for estimating network jitter in apparatus for transmitting coded media data
JP6232870B2 (ja) 2013-09-11 2017-11-22 株式会社リコー 無線通信システム、無線通信方法、プログラム、及び記録媒体
JP6320012B2 (ja) * 2013-12-04 2018-05-09 株式会社日立情報通信エンジニアリング 通信装置、通信プログラム、通信方法
DE102013020954A1 (de) * 2013-12-12 2015-06-18 Northrop Grumman Litef Gmbh Verfahren und Vorrichtung zum Übertragen von Daten an asynchronen Übergängen zwischen Domänen mit unterschiedlichen Taktfrequenzen
CN103826084A (zh) * 2014-02-17 2014-05-28 宁波公众信息产业有限公司 一种音频编码方法
JP6484403B2 (ja) * 2014-03-28 2019-03-13 株式会社日立情報通信エンジニアリング 通信装置、通信プログラム、通信方法
JP6335775B2 (ja) * 2014-12-24 2018-05-30 三菱電機株式会社 メディア受信装置
WO2017072887A1 (ja) * 2015-10-28 2017-05-04 富士機械製造株式会社 ユニット固有情報管理システム
US9974112B2 (en) * 2016-03-08 2018-05-15 Seiko Epson Corporation Wireless communication apparatus and wireless communication method
JP6252615B2 (ja) * 2016-03-25 2017-12-27 住友電気工業株式会社 クロック再生装置、ストリーム処理装置、クロック再生方法およびクロック再生プログラム
CN110166894B (zh) * 2018-02-11 2021-05-25 北京小鸟听听科技有限公司 一种数据处理方法、输出设备和计算机存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000332802A (ja) * 1999-05-24 2000-11-30 Sony Corp 通信方法、通信システム、通信端末および中継装置
JP2001144774A (ja) * 1999-11-12 2001-05-25 Matsushita Electric Ind Co Ltd パケット受信装置
JP2001244969A (ja) * 2000-02-28 2001-09-07 Matsushita Electric Ind Co Ltd データ受信方法およびデータ受信装置
JP2002281077A (ja) * 2001-03-21 2002-09-27 Hitachi Ltd 信号受信装置及び信号受信方法
JP2003060652A (ja) * 2001-04-27 2003-02-28 Matsushita Electric Ind Co Ltd 無線伝送装置
JP2003519448A (ja) * 1999-02-12 2003-06-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 等時性データ通信用の方法及び装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3976362B2 (ja) * 1996-10-16 2007-09-19 ローム株式会社 移動体通信の受信回路
JP3080805B2 (ja) * 1993-02-26 2000-08-28 株式会社東芝 デジタル・フェイズ・ロックド・ループ回路
US5822317A (en) * 1995-09-04 1998-10-13 Hitachi, Ltd. Packet multiplexing transmission apparatus
US5966387A (en) * 1995-09-25 1999-10-12 Bell Atlantic Network Services, Inc. Apparatus and method for correcting jitter in data packets
US5640388A (en) * 1995-12-21 1997-06-17 Scientific-Atlanta, Inc. Method and apparatus for removing jitter and correcting timestamps in a packet stream
US5680076A (en) * 1996-01-05 1997-10-21 International Business Machines Corporation Phase-lock indicator circuit with phase-only detection
JP4110588B2 (ja) * 1997-03-19 2008-07-02 ソニー株式会社 データ受信装置および受信方法
US6100736A (en) * 1997-06-05 2000-08-08 Cirrus Logic, Inc Frequency doubler using digital delay lock loop
US6400683B1 (en) * 1998-04-30 2002-06-04 Cisco Technology, Inc. Adaptive clock recovery in asynchronous transfer mode networks
US6404711B1 (en) * 1998-05-19 2002-06-11 Sony Corporation System including comparing a separated time stamp to a generated timing signal and controlling a timing signal on the basis of continuity of time stamps
JP3660517B2 (ja) * 1999-03-01 2005-06-15 三菱電機株式会社 データ受信装置、これに用いられるソースクロック再生方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US6581164B1 (en) * 2000-01-03 2003-06-17 Conexant Systems, Inc. System for adjusting clock frequency based upon amount of unread data stored in sequential memory when reading a new line of data within a field of data
US6574225B2 (en) * 2000-04-07 2003-06-03 Omneon Video Networks Clock recovery in a packet-based data network
JP4407007B2 (ja) * 2000-05-02 2010-02-03 ソニー株式会社 データ送信装置及び方法
EP1204276A3 (en) * 2000-10-10 2007-01-03 Matsushita Electric Industrial Co., Ltd. Apparatus for processing a digital Audio Video signal
JP2003061088A (ja) * 2001-08-08 2003-02-28 Nec Corp データ分離・復号装置
JP3922047B2 (ja) 2002-02-26 2007-05-30 ソニー株式会社 データ受信装置、および受信データ処理方法、並びにコンピュータ・プログラム
AU2003244983A1 (en) * 2002-07-19 2004-02-09 Koninklijke Philips Electronics N.V. Jitter compensation method for systems having wall clocks
JP4062504B2 (ja) * 2002-09-09 2008-03-19 ソニー株式会社 同期化方法、通信システムおよびデータ受信装置
JP3757933B2 (ja) * 2002-11-28 2006-03-22 ソニー株式会社 通信装置
JP3737800B2 (ja) * 2002-12-25 2006-01-25 株式会社東芝 同期化回路
JP2005167414A (ja) * 2003-11-28 2005-06-23 Toshiba Corp データ受信装置およびデータ受信方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003519448A (ja) * 1999-02-12 2003-06-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 等時性データ通信用の方法及び装置
JP2000332802A (ja) * 1999-05-24 2000-11-30 Sony Corp 通信方法、通信システム、通信端末および中継装置
JP2001144774A (ja) * 1999-11-12 2001-05-25 Matsushita Electric Ind Co Ltd パケット受信装置
JP2001244969A (ja) * 2000-02-28 2001-09-07 Matsushita Electric Ind Co Ltd データ受信方法およびデータ受信装置
JP2002281077A (ja) * 2001-03-21 2002-09-27 Hitachi Ltd 信号受信装置及び信号受信方法
JP2003060652A (ja) * 2001-04-27 2003-02-28 Matsushita Electric Ind Co Ltd 無線伝送装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
大盛 雄司 他: "IP網MPEG2伝送におけるジッタ吸収方式の提案", 電子情報通信学会2001年通信ソサイエティ大会講演論文集2, JPN6010056806, 29 August 2001 (2001-08-29), pages 322, ISSN: 0001739598 *

Also Published As

Publication number Publication date
CN1906909B (zh) 2010-06-02
WO2005067252A1 (ja) 2005-07-21
CN1906909A (zh) 2007-01-31
JP4694969B2 (ja) 2011-06-08
US7561582B2 (en) 2009-07-14
US20070121661A1 (en) 2007-05-31

Similar Documents

Publication Publication Date Title
JP4694969B2 (ja) データ受信装置
CN109906613B (zh) 音频和视频的多模式同步渲染
US7664145B2 (en) Jitter correcting apparatus capable of ensuring synchronism between transmitter apparatus and receiver apparatus
JP5101016B2 (ja) 無線環境におけるマルチメディア配信のためのシステム及び方法
JP4361561B2 (ja) データ受信装置及びデータ受信方法
US7778277B2 (en) Timing recovery method and system thereof
JP2005534219A (ja) ウォールクロックを持つシステムに対するジッタ補正方法
KR20110022664A (ko) 미디어 스트림 구성요소들의 동기화
KR20150055031A (ko) 재생 동기화
JP3922047B2 (ja) データ受信装置、および受信データ処理方法、並びにコンピュータ・プログラム
KR101180540B1 (ko) 스트리밍 서비스 송/수신 장치 및 방법
JP6232870B2 (ja) 無線通信システム、無線通信方法、プログラム、及び記録媒体
JP4346557B2 (ja) タイミングの検出装置、表示装置、タイミングの検出プログラム、タイミングの検出プログラムを記録したコンピュータ読取可能な記録媒体
JP2009033326A (ja) パケット伝送装置及び方法
KR20210055009A (ko) 상이한 블루투스 회로들의 오디오 재생 동기화를 유지할 수 있는 다중 멤버 블루투스 장치
JP4425115B2 (ja) クロック同期装置およびプログラム
JP4612688B2 (ja) 受信装置
JP2009239375A (ja) Ip伝送映像データ受信装置及びそれに用いるip伝送映像データ受信方法
JP5082715B2 (ja) 受信装置、受信方法およびコンピュータプログラム
JP5958008B2 (ja) ストリーム処理装置、ストリーム処理方法およびストリーム処理プログラム
KR20210055011A (ko) 상이한 블루투스 회로들의 오디오 재생 동기화를 유지할 수 있는 다중 멤버 블루투스 장치의 메인 블루투스 회로 및 보조 블루투스 회로
JP4282399B2 (ja) 無線親機及び無線子機
JP2005354542A (ja) 受信装置
JP2008022326A (ja) 非同期ネットワークのデータ伝送方法およびシステム
JP2004350066A (ja) トランスポートストリーム切替装置およびトランスポートストリーム切替プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101130

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

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

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

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees