JP4438878B2 - 受信装置、クロック同期方法およびコンピュータプログラム - Google Patents

受信装置、クロック同期方法およびコンピュータプログラム Download PDF

Info

Publication number
JP4438878B2
JP4438878B2 JP2008068256A JP2008068256A JP4438878B2 JP 4438878 B2 JP4438878 B2 JP 4438878B2 JP 2008068256 A JP2008068256 A JP 2008068256A JP 2008068256 A JP2008068256 A JP 2008068256A JP 4438878 B2 JP4438878 B2 JP 4438878B2
Authority
JP
Japan
Prior art keywords
value
unit
time stamp
clock
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.)
Expired - Fee Related
Application number
JP2008068256A
Other languages
English (en)
Other versions
JP2009225173A (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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2008068256A priority Critical patent/JP4438878B2/ja
Priority to US12/381,749 priority patent/US7940805B2/en
Publication of JP2009225173A publication Critical patent/JP2009225173A/ja
Application granted granted Critical
Publication of JP4438878B2 publication Critical patent/JP4438878B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

本発明は、受信装置、クロック同期方法およびコンピュータプログラムに関し、より詳細には、ネットワークを介して受信したデータを安定して再生させる受信装置、クロック同期方法およびコンピュータプログラムに関する。
近年になって、インターネットに代表される通信媒体を介して、音声データや映像データを伝送して提供するサービスが広く提供されるようになっている。音声データや映像データの伝送方式は、通信速度の高速化やネットワーク回線容量の増大化に伴って、データの受信と並行して、受信したデータを基に音声や映像を再生するストリーミング形式の伝送方式が広く利用されている。
ストリーミング形式によって音声データや映像データを受信して、安定して再生するには、送信装置における信号処理クロックと、受信装置における信号処理クロックとを合わせる必要がある。従って、音声データや映像データを安定して再生するには、受信装置において信号処理クロックの周波数を制御する必要がある。
ストリーミング形式によって音声データや映像データを受信して再生する受信装置が、例えば特許文献1に開示されている。特許文献1には、ネットワークI/Fより、タイムスタンプとTS(Transport Stream)パケットとで構成される所定の単位が連続するパケットストリームを受信し、受信したパケットストリームに含まれるタイムスタンプを利用して、TSパケットごとにデマルチプレクサへ出力し、PCR(Program Clock Reference)を利用したクロック制御を行う技術が開示されている。特許文献1に記載された受信装置は、送信側と受信側とでのフロー制御を想定しており、ストリーム供給が適切に行われれば、バッファのオーバーフローやアンダーフローは発生せず、受信した音声データや映像データを安定してデコードすることができる。
特開2005−151434号公報 特開2000−332802号公報
特許文献1で開示された技術では、ストリーム供給が適切に行われれば、バッファのオーバーフローやアンダーフローは発生せず、受信した音声データや映像データを安定してデコードすることができる。一方、RTP/UDP転送でフロー制御を行わないシステムでは、送信側のクロックと受信側のクロックに差が生じる場合には、ある程度の容量を有するバッファを受信側に用意しておくことで、バッファがオーバーフローまたはアンダーフローするまでは、音声データや映像データを安定してデコードすることができる。
しかし、送信側のクロックと受信側のクロックの差が大きくなるほど、バッファがオーバーフローまたはアンダーフローするまでの時間が短くなり、音声データや映像データを安定してデコードできる時間が短くなってしまう。また、バッファがオーバーフローまたはアンダーフローすることで受信したデータの欠落が生じると正常にデコードできなくなってしまう。従って、長時間に渡って安定してデコード動作を行うためには、送信側と受信側のクロックの差を無くすようにクロックの制御を行う必要がある。
送信側と受信側のクロックを同期させる技術としては、例えば特許文献2がある。特許文献2には、送信側でパケットが伝送される瞬間の時刻情報をパケットに付加することで、送信側と受信側のクロックを同期させる技術が開示されている。つまり、特許文献2に開示された技術は、RTPのヘッダのタイムスタンプを使用することを想定したものとなっている。しかし、タイムスタンプとTSパケットとで構成される所定の単位が連続するパケットストリームを扱う特許文献1に記載の技術とはシステムが異なっており、特許文献2に開示された技術を特許文献1に記載の技術に適用することはできない。
また、ストリーミング形式によってネットワーク経由で受信した音声データや映像データは、比較的大きなジッタが生じうる。従って、TSパケットの到着時刻と、ストリーム中のPCRとを使用したクロック制御はできない。また、ネットワーク経由で受信した映像データや音声データにはパケットロスも生じうるので、ネットワークジッタやパケットロスの影響を受けずに安定してクロックを制御する必要がある。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、フロー制御を行わないような受信システムにおいても、ネットワークジッタやパケットロスの影響を受けずに長時間に渡って安定したクロックの制御が可能な、新規かつ改良された受信装置、クロック同期方法およびコンピュータプログラムを提供することにある。
上記課題を解決するために、本発明のある観点によれば、少なくともタイムスタンプとTS(Transport Stream)パケットとで構成される所定の単位が連続するパケットストリームを受信する受信部と、発振周波数が制御可能である発振部と、発振部が供給するクロックを分周して計測する計測部と、パケットストリームの受信開始時から、受信部が受信したパケットストリームから読み出した最新のタイムスタンプ及び計測部が計測する最新の計測値を所定の周期で読み出す取得部と、取得部が取得したタイムスタンプ及び計測値の累積値を算出する算出部と、算出部が算出したタイムスタンプの累積値と計測値の累積値との差分の絶対値と、ネットワークジッタに相当する値との大小を比較する比較部と、比較部で比較した結果、タイムスタンプの累積値と計測値の累積値との差分の絶対値の方が大きい場合に発振部の発振周波数を制御する周波数制御部と、を含むことを特徴とする、受信装置が提供される。
かかる構成によれば、発振部は発振周波数が制御可能であり、計測部は発振部が供給するクロックを分周して計測する。また、受信部は少なくともタイムスタンプとTSパケットとで構成される所定の単位が連続するパケットストリームを受信し、取得部は、パケットストリームの受信開始時から、受信部が受信したパケットストリームから読み出した最新のタイムスタンプ及び計測部が計測する最新の計測値を所定の周期で読み出し、算出部は取得部が取得したタイムスタンプの累積値及び計測値の累積値を算出する。そして、比較部は算出部が算出したタイムスタンプの累積値と計測値の累積値の差分の絶対値と、ネットワークジッタに相当する値との大小を比較し、周波数制御部は比較部で比較した結果、タイムスタンプの累積値と計測値の累積値との差分の絶対値の方が大きい場合に発振部の発振周波数を制御する。その結果、フロー制御を行わないような受信システムにおいても、パケットストリームから読み出したタイムスタンプと、受信開始時から計測を開始した計測値とに基づいて周波数を制御することで、ネットワークジッタやパケットロスの影響を受けずに長時間に渡って安定したクロックの制御が可能となる。
周波数制御部は、受信部でパケットストリームの受信を開始した時から大小比較するまでの時間と、タイムスタンプと計測値との差分との比率を用いて発振部の発振周波数を制御してもよい。
上記受信装置は、受信部で受信したパケットストリームに含まれるTSパケットを、制御部によって制御され発振部から供給されるクロックに同期してデコード及び再生する再生部をさらに含んでもよい。
算出部は、受信部が受信したパケットストリームから取得部が読み出した最新のタイムスタンプと、取得部が1つ前に読み出したタイムスタンプとを比較し、1つ前に読み出したタイムスタンプの方が小さい場合には1つ前に読み出したタイムスタンプを累積値の算出に用いてもよい。
取得部で読み出した最新のタイムスタンプが、所定の回数に渡って同一の値であるときは、周波数制御部での発振周波数の制御を行わないようにしてもよい。
取得部は、垂直同期信号の割り込みを受けることによって受信部が受信したパケットストリームから読み出した最新のタイムスタンプ及び計測部が計測する最新の計測値を読み出してもよい。
周波数制御部は、比較部がタイムスタンプ及び計測値の累積値の差分の絶対値の方が大きいと判定した場合に、タイムスタンプまたは計測値のどちらかが所定の回数連続して大きいときに初めて発振部の発振周波数を制御してもよい。
また、上記課題を解決するために、本発明の別の観点によれば、少なくともタイムスタンプとTSパケットとで構成される所定の単位が連続するパケットストリームを受信する受信ステップと、制御可能な発振周波数を有するクロックを供給するクロック供給ステップと、クロック供給ステップで供給するクロックを分周して計測する計測ステップと、パケットストリームの受信開始時から、受信ステップで受信したパケットストリームから読み出した最新のタイムスタンプ及び計測ステップが計測する最新の計測値を所定の周期で読み出す取得ステップと、取得ステップで取得したタイムスタンプの累積値及び計測値の累積値を算出する算出ステップと、算出ステップで算出したタイムスタンプの累積値と計測値の累積値との差分の絶対値と、ネットワークジッタに相当する値との大小を比較する比較ステップと、比較ステップで比較した結果、タイムスタンプの累積値と計測値の累積値との差分の絶対値の方が大きい場合に、クロック供給ステップで供給されるクロックの発振周波数を制御する周波数制御ステップと、を含むことを特徴とする、クロック同期方法が提供される。
かかる構成によれば、受信ステップは少なくともタイムスタンプとTSパケットとで構成される所定の単位が連続するパケットストリームを受信し、クロック供給ステップは制御可能な発振周波数を有するクロックを供給し、計測ステップはクロック供給ステップで供給するクロックを分周して計測する。取得ステップはパケットストリームの受信開始時から、受信ステップで受信したパケットストリームから読み出した最新のタイムスタンプ及び計測ステップが計測する最新の計測値を所定の周期で読出し、算出ステップは取得ステップで取得したタイムスタンプの累積値及び計測値の累積値を算出する。そして、比較ステップは算出ステップで算出したタイムスタンプの累積値と計測値の累積値との差分の絶対値と、ネットワークジッタに相当する値との大小を比較し、周波数制御ステップは比較ステップで比較した結果、タイムスタンプの累積値と計測値の累積値との差分の絶対値の方が大きい場合に、クロック供給ステップで供給されるクロックの発振周波数を制御する。その結果、フロー制御を行わないような受信システムにおいても、パケットストリームから読み出したタイムスタンプと、受信開始時から計測を開始した計測値とに基づいて周波数を制御することで、ネットワークジッタやパケットロスの影響を受けずに長時間に渡って安定したクロックの制御が可能となる。
また、上記課題を解決するために、本発明の別の観点によれば、少なくともタイムスタンプとTSパケットとで構成される所定の単位が連続するパケットストリームを受信する受信ステップと、制御可能な発振周波数を有するクロックを供給するクロック供給ステップと、クロック供給ステップで供給するクロックを分周して計測する計測ステップと、パケットストリームの受信開始時から、受信ステップで受信したパケットストリームから読み出した最新のタイムスタンプ及び計測ステップが計測する最新の計測値を所定の周期で読み出す取得ステップと、取得ステップで取得したタイムスタンプの累積値及び計測値の累積値を算出する算出ステップと、算出ステップで算出したタイムスタンプの累積値と計測値の累積値の差分の絶対値と、ネットワークジッタに相当する値との大小を比較する比較ステップと、比較ステップで比較した結果、タイムスタンプの累積値と計測値の累積値との差分の絶対値の方が大きい場合に、クロック供給ステップで供給されるクロックの発振周波数を制御する周波数制御ステップと、を含む処理をコンピュータに実行させることを特徴とする、コンピュータプログラムが提供される。
かかる構成によれば、受信ステップは少なくともタイムスタンプとTSパケットとで構成される所定の単位が連続するパケットストリームを受信し、クロック供給ステップは制御可能な発振周波数を有するクロックを供給し、計測ステップはクロック供給ステップで供給するクロックを分周して計測する。取得ステップはパケットストリームの受信開始時から、受信ステップで受信したパケットストリームから読み出した最新のタイムスタンプ及び計測ステップが計測する最新の計測値を所定の周期で読出し、算出ステップは取得ステップで取得したタイムスタンプの累積値及び計測値の累積値を算出する。そして、比較ステップは算出ステップで算出したタイムスタンプの累積値と計測値の累積値との差分の絶対値と、ネットワークジッタに相当する値との大小を比較し、周波数制御ステップは比較ステップで比較した結果、タイムスタンプの累積値と計測値の累積値の差分の絶対値の方が大きい場合に、クロック供給ステップで供給されるクロックの発振周波数を制御する。その結果、フロー制御を行わないような受信システムにおいても、パケットストリームから読み出したタイムスタンプと、受信開始時から計測を開始した計測値とに基づいて周波数を制御することで、ネットワークジッタやパケットロスの影響を受けずに長時間に渡って安定したクロックの制御が可能となる。
以上説明したように本発明によれば、フロー制御を行わないような受信システムにおいても、パケットストリームから読み出したタイムスタンプと、受信開始時から計測を開始した計測値とに基づいて周波数を制御することで、ネットワークジッタやパケットロスの影響を受けずに長時間に渡って安定したクロックの制御が可能な、新規かつ改良された受信装置、クロック同期方法およびコンピュータプログラムを提供することができる。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
まず、本発明の一実施形態にかかる受信装置の構成について説明する。図1は、本発明の一実施形態にかかる受信装置100の構成について説明する説明図である。以下、図1を用いて本発明の一実施形態にかかる受信装置100の構成について説明する。
図1に示したように、本発明の一実施形態にかかる受信装置100は、再生部110と、ネットワークI/F111と、通信キャッシュ112と、TS同期抽出部113と、TS同期クロックカウンタ114と、発振部127と、分周部128と、記録媒体130と、CPU131と、を含んで構成される。
再生部110は、受信装置100が受信した映像データや音声データをデコードして再生するものである。再生部110は、デマルチプレクサ116と、オーディオデコーダバッファ117と、ビデオデコーダバッファ118と、STCカウンタ119と、ES同期抽出部120、121と、オーディオデコーダ123と、ビデオデコーダ124と、AV同期制御部125と、を含んで構成される。
ネットワークI/F111は、インターネット等の外部の各種ネットワークとの間の通信インタフェースであり、例えばLAN(Local Area Network)カードや、ADSL(Asymmetric Digital Subscriber Line)モデム、FTTH(Fiber To The Home)用ONU(Optical Network Unit;光回線終端装置)等であってもよい。図1には図示しないが、ネットワークI/F111は、ストリームリソース(映像データや音声データがパケット化されたパケットストリーム)が保存されているコンテンツサーバにインターネット等の外部の各種ネットワークを介して接続されている。
ネットワークI/F111は、例えばHTTP(HyperText Transport Protocol)やTCP/IP(Transmission Control Protocol/Internet Protocol)等によって通信する。ネットワークI/F111が受信したデータは通信キャッシュ112に転送される。
ここで、ネットワークI/F111が通信キャッシュ112に供給するストリームリソースは、図2に示すようなタイムスタンプ付きのTSパケット(TTSパケット)である。TTSパケットは、188バイトのTSパケットに、4バイトのタイムスタンプが付加された192バイトのパケット長を有するパケットである。図2に示したTTSパケットにおいて、4バイトのタイムスタンプは、27MHzの精度を持つタイムスタンプである。TTSパケットが連続するストリームは、MPEG2−TSパケットストリームと称されている。
通信キャッシュ112は、ネットワークI/F111が受信したストリームリソースを一時的に保持(キャッシュ)しておくものである。通信キャッシュ112に一時的に保持したストリームリソースはTS同期抽出部113に供給される。通信キャッシュ112からTS同期抽出部113にストリームリソースを供給する際には、1つのTTSパケット(1TTSパケット)単位で供給する。
なお、通信キャッシュ112がTS同期抽出部113にストリームリソースを供給することによって通信キャッシュ112が記憶しているストリームリソースが少なくなると、ネットワークI/F111から適宜ストリームリソースが通信キャッシュに供給される。また、通信キャッシュ112は、コンテンツサーバから受信装置100に送信される際のルーティングや再送による遅れ(例えば再生時間にして30秒程度)を十分吸収できる量のストリームリソースを記憶できるだけの容量を有していることが望ましい。
TS同期抽出部113は、通信キャッシュ112から供給されるTTSパケットを保持し、TS同期クロックカウンタ114から供給されるカウント値に基づいて、保持しているTTSパケットのデマルチプレクサ116への出力を制御するものである。通信キャッシュ112から供給されるTTSパケットがストリームリソースの先頭のパケットである場合には、TS同期抽出部113はTTSパケットのタイムスタンプの値(タイムスタンプ値)をTS同期クロックカウンタ114に供給するとともに、TTSパケットからタイムスタンプを除去したパケットを抽出してデマルチプレクサに供給する。また、通信キャッシュ112から供給されるTTSパケットがストリームリソースの先頭以外のパケットである場合には、TS同期抽出部113は、TTSパケットのタイムスタンプ値がTS同期クロックカウンタ114から供給されるカウント値と同一の値であるか否かを判定する。TTSパケットのタイムスタンプ値がTS同期クロックカウンタ114から供給されるカウント値と同一の値であれば、TS同期抽出部113はTTSパケットからタイムスタンプを除去したパケットを抽出してデマルチプレクサに供給する。
なお、TS同期抽出部113が保持しているTTSパケットに含まれているTSパケットがデマルチプレクサ116に出力されると、次のTTSパケットが通信キャッシュ112からTS同期抽出部113に供給される。
また、TS同期抽出部113が保持しているTTSパケットに付加されているタイムスタンプ値は、CPU131によって読み出され、CPU131におけるクロックの周波数制御に用いられる。
TS同期クロックカウンタ114は、TS同期抽出部113から供給されたタイムスタンプ値を初期値とし、発振部127から供給される27MHzの周波数を有するクロックによってカウントアップされるタイムスタンプ値を保持するものである。TS同期クロックカウンタ114のカウント値はTS同期抽出部113に供給される。
デマルチプレクサ116は、TS同期抽出部113から供給される、映像データ、音声データ、PCR等が格納されたTSパケットを、映像データ、音声データ、PCR、その他のデータに分離する(フィルタリングする)ものである。デマルチプレクサ116でデータを分離すると、音声データはオーディオデコーダバッファ117に、映像データはビデオデコーダバッファ118にそれぞれ供給し、ストリームリソースの最初のPCRパケットに格納されているPCR上位33ビットをSTCカウンタ119に供給する。
また、図1には図示していないが、受信装置100を操作するための操作部をユーザが操作することにより、受信装置100が受信した映像データや音声データ(ネットワークI/F111を介して受信したストリームリソース)を記録媒体130に記録するようにユーザが指示した場合には、デマルチプレクサ116はTS同期抽出部113から供給されたデータを記録媒体130に供給する。
オーディオデコーダバッファ117は、デマルチプレクサ116から供給される音声データを一時的に蓄積するものである。オーディオデコーダバッファ117に蓄積される音声データはPESパケットとしてオーディオデコーダバッファ117に記憶される。オーディオデコーダバッファ117は、記憶したPESパケットまたはPESパケットのヘッダ部のみをES同期抽出部120に供給する。
ビデオデコーダバッファ118は、デマルチプレクサ116から供給される映像データを一時的に蓄積するものである。ビデオデコーダバッファ118に蓄積される映像データはPESパケットとしてビデオデコーダバッファ118に記憶される。ビデオデコーダバッファ118は、記憶したPESパケットまたはPESパケットのヘッダ部のみをES同期抽出部121に供給する。
STCカウンタ119は、デマルチプレクサ116から供給される、ストリームリソースの最初のPCRパケットに格納されているPCR上位33ビットを初期値とし、分周部128から供給される90kHzの周波数を有するクロックによってカウントアップされるSTCカウンタ値を保持するものである。STCカウンタ119のカウント値は、ES同期抽出部120、121に供給される。
また、STCカウンタ119のカウント値はCPU131によって読み出され、CPU131におけるクロックの周波数制御に用いられる。
ES同期抽出部120は、オーディオデコーダバッファ117からPESパケットの供給を受け、オーディオデコーダバッファ117に記憶されている音声データのPESパケットのヘッダ部を抽出する。そして、ES同期抽出部120はSTCカウンタ119から供給されるSTCカウンタ値に基づいて、オーディオデコーダバッファ117に記憶されている音声データのオーディオデコーダ123への供給を制御する。換言すると、ES同期抽出部120は、PESパケットのヘッダ部に記載されているPTS値が、STCカウンタ119から供給されるSTCカウンタ値と同一の値となった場合、先に抽出したPESパケットのヘッダ部を持つPESパケットをオーディオデコーダバッファ117から抽出し、オーディオデコーダ123に供給する。
ES同期抽出部121は、ビデオデコーダバッファ118からPESパケットの供給を受け、ビデオデコーダバッファ118に記憶されている映像データのPESパケットのヘッダ部を抽出する。そして、ES同期抽出部121はSTCカウンタ119から供給されるSTCカウンタ値に基づいて、ビデオデコーダバッファ118に記憶されている映像データのビデオデコーダ124への供給を制御する。換言すると、ES同期抽出部121は、PESパケットのヘッダ部に記載されているPTS値が、STCカウンタ119から供給されるSTCカウンタ値と同一の値となった場合、先に抽出したPESパケットのヘッダ部を持つPESパケットをビデオデコーダバッファ118から抽出し、ビデオデコーダ124に供給する。
オーディオデコーダ123は、ES同期抽出部120から供給されるPESパケットの音声データをデコードする。デコードした音声データは、AV同期制御部125から供給される27MHzの周波数のクロックに従って、スピーカ等の音声出力装置(図示せず)から音声として出力する。
ビデオデコーダ124は、ES同期抽出部121から供給されるPESパケットの映像データをデコードする。デコードした映像データは、AV同期制御部125から供給される27MHzの周波数のクロックに従って表示装置(図示せず)から映像として出力する。表示装置として、例えばCRT(Cathode Ray Tube)ディスプレイ、プラズマディスプレイ、液晶ディスプレイ、有機ELディスプレイ等を用いてもよい。
AV同期制御部125は、発振部127から供給される27MHzの周波数のクロックに基づいて、映像データと音声データとを同期させる27MHzの周波数のクロックを、オーディオデコーダ123およびビデオデコーダ124に供給する。
発振部127は、27MHzの周波数のクロックを生成し、生成したクロックを分周部128、TS同期クロックカウンタ114およびAV同期制御部125に供給する。発振部127は、例えばVCXO(Voltage Controlled Xtal Oscillator;電圧制御発振器)で構成することができる。VCXOは、電圧によって周波数を変更できる水晶発振器である。VCXOへの電圧の制御は、例えばPWM(Pulse Width Modulation)信号をローパスフィルタを通してVCXOに供給することによって行うことができ、PWM信号を制御することでVCXOの発振周波数を制御することができる。なお、発振部127の発振周波数を変更できる範囲は、送信装置におけるクロック周波数の変動範囲をカバーできる範囲であることが望ましい。
分周部128は、発振部127から供給される27MHzの周波数のクロックを300分の1の周波数に分周して、90kHzの周波数のクロックを生成するものである。分周部128で生成した90kHzの周波数のクロックはSTCカウンタ119に供給する。
記録媒体130は、例えばハードディスク等の磁気ディスク、CD−R、DVD−R、ブルーレイディスク等の光ディスク、MD等の光磁気ディスク、半導体メモリ等で構成される。記録媒体130には、受信装置100を制御するためのコンピュータプログラムを予め格納しておいてもよい。また、記録媒体130には、CPU131の制御によって、デマルチプレクサ116から供給される映像データや音声データが格納される。また、記録媒体130は、CPU131の制御によって、デマルチプレクサ116へ記録媒体130に記録された映像データや音声データを供給する。
CPU131は、受信装置100の各部を制御するものである。CPU131による受信装置100の各部の制御は、例えば記録媒体130に格納されたコンピュータプログラムを読み出して、読み出したコンピュータプログラムを順次実行することによって行ってもよい。
本実施形態においては、CPU131は、TS同期抽出部113からタイムスタンプ値を、STCカウンタ119からSTCカウンタ値を、所定の周期でそれぞれ取得し、取得した値に基づいて発振部127の発振周波数を制御するものである。所定の周期は、例えばAV同期制御部125からのV.Sync(垂直同期信号)の割り込みが行われる周期であってもよい。CPU131における発振部127の発振周波数の制御方法については後に詳述する。
図1に示したように受信装置100を構成することで、ネットワークI/F111を介してコンテンツサーバから送信されたストリームリソースから映像データと音声データを分離し、映像データと音声データとを同期して再生することができる。
そして、TS同期抽出部113からタイムスタンプ値を、STCカウンタ119からSTCカウンタ値を、所定の周期でそれぞれ取得し、取得した値に基づいて発振部127の発振周波数を制御する。発振部127の発振周波数を制御することによって、コンテンツサーバから送信された映像データや音声データを長時間に渡って安定してデコードし、再生することができる。
以上、図1を用いて本発明の一実施形態にかかる受信装置100の構成について説明した。次に、本発明の一実施形態にかかる受信装置100におけるクロック同期処理の概要について説明する。
図3は、本発明の一実施形態にかかる受信装置100におけるクロック同期処理の概要について説明する流れ図である。以下、図3を用いて本発明の一実施形態にかかる受信装置100におけるクロック同期処理の概要について説明する。
本発明の一実施形態にかかる受信装置100におけるクロック同期処理は、AV同期制御部125からのCPU131へのV.Sync(垂直同期信号)の割り込みが所定の周期で行われることによって開始される。CPU131は、AV同期制御部125からV.Syncの割り込みを受けると、TS同期抽出部113から最新のタイムスタンプ値を、STCカウンタ119から最新のSTCカウンタ値を、それぞれ取得する(ステップS101)。
続いて、CPU131でパケットストリームの受信開始か否かを判定する(ステップS102)。パケットストリームの受信開始とは、例えば受信装置100の電源がオンになったり、操作部(図示せず)によるチャンネルの切り替え操作による新たなストリームの受信が開始されたりすることをいう。パケットストリームの受信開始である場合には、受信装置100におけるクロック同期処理に関する初期設定を行い(ステップS103)、処理を終了する。一方、パケットストリームの受信開始でない場合には、続いてパケットストリームが正しく受信装置100に到達しているかどうか、ストリーム順序判定を行う(ステップS104)。
ストリーム順序判定には、1つ前のクロック同期処理においてTS同期抽出部113から取得したタイムスタンプ値と、上記ステップS101でTS同期抽出部113から取得したタイムスタンプ値との大小を比較する。上記ステップS101でTS同期抽出部113から取得したタイムスタンプ値の方が小さければ、受信装置100へのパケットの到達順序が異常であると判定し、補正処理を行う(ステップS105)。補正処理の詳細については後述する。一方、TS同期抽出部113から取得したタイムスタンプ値の方が小さくなければ、受信装置100へのパケットの到達順序に異常は無いとして、ステップS105の補正処理をスキップする。
続いて、CPU131で、受信装置100に到達する筈のパケットストリームが途絶しているかどうかのストリーム途絶判定を行う(ステップS106)。ストリーム途絶判定は、1つ前のクロック同期処理においてTS同期抽出部113から取得したタイムスタンプ値と、上記ステップS101でTS同期抽出部113から取得したタイムスタンプ値とを比較して、2つの値が所定の時間以上同じ値である場合には、パケットストリームが途絶していると判定する。そして、CPU131でパケットストリームが途絶していると判定すると、CPU131は受信装置100におけるクロック同期処理を異常終了させる。
図4は、本発明の一実施形態にかかる受信装置100における、TTS同期抽出部113が保持するタイムスタンプ値を用いた、ストリーム順序判定およびストリーム途絶判定の概要を示す説明図である。TTS同期抽出部113は、通信キャッシュ112から供給されるTTSパケットに記述されているタイムスタンプ値を保持しておく。そして、CPU131は所定の周期でTTS同期抽出部113に保持されているタイムスタンプ値を取得する。
図4に示した例では、3回目に取得したタイムスタンプ値と、4回目に取得したタイムスタンプ値とが“13”で一致している。従って、この間には受信装置100にパケットストリームが到達していないと判定する。このように、取得したタイムスタンプ値が所定の時間以上同じ値である場合には、ストリーム途絶判定においてパケットストリームが途絶していると判定する。
また、図4に示した例では、5回目に取得したタイムスタンプ値と、6回目に取得したタイムスタンプ値との間の大小関係が逆転している。これは、5回目にタイムスタンプ値“19”を取得した後に、TTS同期抽出部113に供給されたTTSパケットのタイムスタンプ値が“18”であったからであり、この場合にはストリーム順序判定において受信装置100へのパケットの到達順序が異常であると判定し、補正処理を行う。
ストリーム順序判定およびストリーム途絶判定を終えると、続いて、CPU131において上記ステップS101で取得したタイムスタンプ値の累積値AおよびSTCカウンタ値の累積値Bを計算する(ステップS107)。タイムスタンプ値の累積値AおよびSTCカウンタ値の累積値Bは、それぞれ1つ前のクロック同期処理において取得したタイムスタンプ値およびSTCカウンタ値との差分を加算していくことによって計算する。
CPU131において上記ステップS101で取得したタイムスタンプ値の累積値AおよびSTCカウンタ値の累積値Bを計算すると、累積値AとBとの間の大小を比較する(ステップS108)。そして、累積値AとBとの差に応じて、発振部127の発振周波数をCPU131で制御する。
累積値AとBとの間の大小を比較する際には、ネットワークジッタに相当する量(ネットワークジッタ量)Jを閾値として、累積値AとBとの差の絶対値がネットワークジッタ量Jより大きければ発振部127の発振周波数をCPU131で制御する。A−B>Jである場合、つまりタイムスタンプ値の累積値AからSTCカウンタ値の累積値Bを引いた値がネットワークジッタ量Jより大きい場合には、受信装置100が受信したパケットストリームにおけるTTSパケットのタイムスタンプ値がSTCカウンタ値よりも先行しているので、発振部127の発振周波数を上げるようにCPU131で制御する(ステップS109)。また、B−A>Jである場合、つまりSTCカウンタ値の累積値Bからタイムスタンプ値の累積値Aを引いた値がネットワークジッタ量Jより大きい場合には、STCカウンタ値の方が、受信装置100で受信したパケットストリームにおけるTTSパケットのタイムスタンプ値よりも先行しているので、発振部127の発振周波数を下げるようにCPU131で制御する(ステップS110)。なお、|A−B|≦Jである場合には、発振部127の発振周波数は制御しない(ステップS111)。
なお、ステップS108において累積値AとBとの間の大小を比較する際には、累積値AとBとの差の絶対値がネットワークジッタ量Jより大きいと、所定の回数連続して判定されるまでは、発振部127の発振周波数を制御しないようにしてもよい。
以上、図3を用いて本発明の一実施形態にかかる受信装置100におけるクロック同期処理の概要について説明した。次に、本発明の一実施形態にかかる受信装置100におけるクロック同期処理の詳細について説明する。
図5および図6は、本発明の一実施形態にかかる受信装置100を用いたクロック同期処理を詳細に説明する流れ図である。図5は、図3に示した流れ図におけるステップS101からステップS107までに相当するものであり、図6は、図3に示した流れ図におけるステップS108からステップS111までに相当するものである。以下、図5および図6を用いて、本発明の一実施形態にかかるクロック同期処理を詳細に説明する。
上述したように、本発明の一実施形態にかかる受信装置100におけるクロック同期処理は、AV同期制御部125からのCPU131へのV.Syncの割り込みが所定の周期で行われることによって開始される。CPU131へのV.Syncの割り込みが行われると、CPU131はTS同期抽出部113で保持している最新のタイムスタンプ値を取得して、変数TTS(n)に格納し(ステップS121)、次いでSTCカウンタ119から最新のSTCカウンタ値を取得して、変数STC(n)に格納する(ステップS122)。なお、ここでは、CPU131はTS同期抽出部113から最新のタイムスタンプ値を取得した後にSTCカウンタ119から最新のSTCカウンタ値を取得したが、本発明は係る例に限られないことは言うまでもなく、最新のSTCカウンタ値を取得した後に最新のタイムスタンプ値を取得してもよく、また2つの値を同時に取得してもよい。なお、以下の処理は特に断りが無い限りCPU131で実行する処理であるものとする。
続いて、CPU131でパケットストリームの受信開始か否かを判定する(ステップS123)。ステップS123における判定の結果、パケットストリームの受信開始である場合には、受信装置100におけるクロック同期処理に用いる変数の初期化を行う(ステップS124)。ここで、受信装置100におけるクロック同期処理に用いる変数を説明する。
A:タイムスタンプ値の累積値
B:STCカウンタ値の累積値
C:タイムスタンプ値が前回の値と同じ値だった回数
D:A−B>Jmaxと連続して判定された回数
E:B−A<Jmaxと連続して判定された回数
up:発振部127の発振周波数を上げる必要のある回数
down:発振部127の発振周波数を下げる必要のある回数
一方、ステップS123における判定の結果、パケットストリームの受信開始でない場合には、変数TTS(n)に格納されている値と、1つ前のクロック同期処理において格納した変数TTS(n−1)に格納されている値との大小を比較する(ステップS125)。変数TTS(n)の値が変数TTS(n−1)の値より大きくない場合は、パケットストリームが到達していない、またはパケットの到達順序が入れ替わっている場合である。比較した結果、変数TTS(n)の値が変数TTS(n−1)の値より大きくない場合には、変数TTS(n−1)の値を変数TTS(n)に格納する(ステップS126)。
続いて、変数TTS(n)に格納されている値と、変数TTS(n−1)に格納されている値とが同一の値であるかを判定する(ステップS127)。判定した結果、2つの値が同一の値である場合には、変数Cの値を1つインクリメントする(ステップS128)。なお、上記ステップS126において、変数TTS(n)の値が変数TTS(n−1)の値より大きくない場合には、変数TTS(n−1)の値を変数TTS(n)に格納している。従って、上記ステップS121で取得したタイムスタンプ値が、前回取得したタイムスタンプ値より小さい場合にも変数Cの値は1つインクリメントされることになる。
一方、変数TTS(n)に格納されている値と、変数TTS(n−1)に格納されている値とが同一の値で無いと判定した場合には、変数Cの値を0に設定する(ステップS129)。
続いて、変数Cの値が所定の閾値Cmax未満であるかどうかを判定する(ステップS130)。所定の閾値Cmaxは、所定の時間(例えば2秒間)に相当する値が設定されている。変数Cの値は、上記ステップS127において、変数TTS(n)に格納されている値と、変数TTS(n−1)に格納されている値とが同一の値であると連続して判定されている場合に限って、2以上の値を有することになる。つまり、変数Cの値が所定の閾値Cmax未満で無い場合、すなわちタイムスタンプ値を前回のタイムスタンプ値と比較し、Cmax回連続して(所定の時間連続して)同じ値であった場合には、パケットストリームが途絶しているものとして、クロック同期処理を異常終了する。
一方、変数Cの値が所定の閾値Cmax未満である場合には、変数Aおよび変数Bに対する計算を実行する(ステップS131)。変数Aには、変数TTS(n)の値から変数TTS(n−1)の値を引き、それまでの変数Aの値を加算した値が代入される。変数Bには、変数STC(n)の値から変数STC(n−1)の値を引き、それまでの変数Bの値を加算した値が代入される。なお、最初にタイムスタンプ値およびSTC値を取得した場合には、変数TTS(n−1)=TTS(n)および変数STC(n−1)=STC(n)であるものとして計算する。
続いて、次回のクロック同期処理に備えるために、変数TTS(n−1)に変数TTS(n)の値を、変数STC(n−1)に変数STC(n)の値を、それぞれ格納する(ステップS132)。なお、変数TTS(n−1)および変数STC(n−1)への値の格納は、以下で説明する変数Aと変数Bとの大小判定処理の後に行ってもよい。
変数Aおよび変数Bの計算を行うと、次に、変数Aと変数Bとの差分の絶対値(|B−A|)が、所定の閾値Jmaxより大きいかどうかを判定する(ステップS133)。Jmaxには、考慮すべきネットワークジッタの最大値に相当する値を設定する。
図7は、本発明の一実施形態にかかる受信装置100を用いたクロック同期処理において、タイムスタンプ値とSTCカウンタ値との差分およびジッタの関係を、グラフを用いて示す説明図である。図7に示したグラフは、横軸がSTCカウンタ値であり、縦軸がタイムスタンプ値を示している。そして、変数Aが最新のタイムスタンプ値TTS(n)からタイムスタンプ値の初期値TTS(0)の間の値を表しており、変数Bが最新のSTCカウンタ値STC(n)からSTCカウンタ値の初期値STC(0)の間の値を表している。
STCカウンタ値は、発振部127の発振周波数が一定なので、同じペースで増加していくが、タイムスタンプ値は必ずしも同じペースで増加していくとは限らず、ネットワークの状況によって増大するペースが変化する。そして、ある時点においてタイムスタンプ値とSTCカウンタ値との差分の値が、考慮すべきネットワークジッタの最大値に相当する値を超えると、受信装置100における安定したデコード動作ができなくなり、再生動作が破綻してしまう。そこで、タイムスタンプ値とSTCカウンタ値との差分の値が、考慮すべきネットワークジッタの最大値に相当する値を超えた時点で、発振周波数を制御してSTCカウンタ値の増加ペース(すなわち、図7に示したグラフの傾き)を変化させて、タイムスタンプ値とSTCカウンタ値との差分が考慮すべきネットワークジッタの最大値以内となるように制御する。このように発振周波数を制御することで、受信装置100は安定したデコード動作および再生動作が可能となる。
上記ステップS133における判定の結果、|B−A|≦Jmaxであった場合には、発振部127の発振周波数はそのままにして(ステップS143)、処理を終了する。一方|B−A|>Jmaxであった場合には、続いてB<Aであるか(すなわちタイムスタンプ値がSTCカウンタ値よりも先行して増加しているか)を判定する(ステップS134)。
ステップS134における判定の結果、B<Aである場合には、続いてGup=0であるかどうかを判定する(ステップS135)。上述したように、変数Gupは、発振部127の発振周波数を上げる必要のある回数である。変数Gupの役割については後に詳述する。ステップS135における判定の結果、Gup=0である場合には、続いて変数Dが所定の閾値Dmaxより大きいかどうかを判定する(ステップS136)。なお、Dmaxは1以上の整数である。変数Dが所定の閾値Dmaxより大きい場合には、発振部127の発振周波数を上げるように制御する(ステップS137)。一方、変数Dが所定の閾値Dmaxより大きくない場合には、発振部127の発振周波数は変化させない(ステップS138)。
上述したように、変数DはA−B>Jmaxと連続して判定された回数を表している。従って、ステップS134において、一度だけでは無く複数回連続してB<Aと判定されて、初めて発振部127の発振周波数を上げるように制御する。
また、ステップS134における判定の結果、A<Bである場合には、続いてGdown=0であるかどうかを判定する(ステップS139)。上述したように、変数Gdownは、発振部127の発振周波数を下げる必要のある回数である。変数Gdownの役割については後に詳述する。ステップS139における判定の結果、Gdown=0である場合には、続いて変数Eが所定の閾値Emaxより大きいかどうかを判定する(ステップS140)。なお、Emaxは1以上の整数である。変数Eが所定の閾値Emaxより大きい場合には、発振部127の発振周波数を下げるように制御する(ステップS141)。一方、変数Eが所定の閾値Emaxより大きくない場合には、発振部127の発振周波数は変化させない(ステップS142)。
上述したように、変数EはB−A>Jmaxと連続して判定された回数を表している。従って、ステップS134において、一度だけでは無く複数回連続してA>Bと判定されて、初めて発振部127の発振周波数を下げるように制御する。
このように、発振部127の発振周波数を上げるのか、下げるのか、そのままにするのかを決定して、CPU131から発振部127の発振周波数を制御することで、一連のクロック同期処理を終了する。以降は、CPU131は、AV同期制御部125からV.Syncの割り込みを受ける度に、図5および図6に示した処理を実行して、CPU131から発振部127の発振周波数を制御する。
ここで、ステップS137、ステップS138、ステップS141、ステップS142およびステップS143の各処理の詳細について説明する。
図8は、本発明の一実施形態にかかる受信装置100を用いたクロック同期処理において、図6のステップS137に示した発振部127の発振周波数を上げる処理の詳細について説明する流れ図である。
発振部127の発振周波数を上げる際には、まず、変数Gupの値がGup=0であるかどうかを判定する(ステップS151)。変数Gupの値がGup=0であれば、次に、|B−A|をBで割った値を計算し、計算結果を変数Fに格納する(ステップS152)。変数Fは、A−B>Jmaxと判定されるまでの経過時間と、値Aと値Bとの差分とから類推する、送信側と受信装置100との間のクロックの偏差に相当するものである。例えば、Bの値が60分に相当する値であり、A−Bの値が180ミリ秒に相当する値であれば、Fは50ppmに相当する値となる。
変数Fへの値の格納が完了すると、次に変数Fの値が所定の閾値Fmax未満であるかどうかを判定する(ステップS153)。所定の閾値Fmaxは、発振部127の発振周波数の可変範囲を大きく超える値を設定することが望ましい。所定の閾値Fmaxの例として、例えば100ppm(2700Hz相当)を設定することができる。ステップS153での判定の結果、F<Fmaxではないと判定した場合には、異常状態であるとして以降の処理は全てスキップする。一方、ステップS153での判定の結果、F<Fmaxであると判定した場合には、次に変数Fを設定変更値αで割り、得られた値を変数Gupに格納する(ステップS154)。なお、変数Fを設定変更値αで割った結果、割り切れなければ小数点以下は切り上げる。
なお、設定変更値αとは、1回のクロック同期処理あたりの発振部127の発振周波数の変化値を指す。例えば、設定変更値αを5ppm(135Hzに相当)に設定した場合に、変数Fの値が50ppmに相当する値であった場合には、変数Gupの値は50/5=10となる。つまり、この場合には発振部127の発振周波数を目的の発振周波数になるまで10回変更することになる。大きく一度に発振周波数を変更すると、受信したパケットストリームをデコードする際に画像や音声に乱れが生じるおそれがあるので、本実施形態においては、画像や音声の乱れを防ぐために少しずつ発振周波数を変化させる。
なお、上記ステップS151において、変数Gupの値がGup=0でないと判定した場合には、上記ステップS152〜ステップS154の処理はスキップする。
続いて、発振部127から発振される現在のクロック周波数の設定値Hを取得する(ステップS155)。発振部127から発振される現在のクロック周波数の設定値Hを取得すると、設定値Hに設定変更値αを加算して、発振部127から発振されるクロック周波数の設定値を再設定する(ステップS156)。具体的には、発振部127にVCXOを用いた場合には、VCXOに供給するPWM信号を制御することで、発振部127から発振されるクロック周波数を変更する。
ステップS156で発振部127から発振されるクロック周波数の設定値を再設定すると、変数Gupの値を1つデクリメントし、変数Gdown、D、Eの値をそれぞれ0に初期化する(ステップS157)。
図9は、本発明の一実施形態にかかる受信装置100を用いたクロック同期処理において、図6のステップS141に示した発振部127の発振周波数を下げる処理の詳細について説明する流れ図である。
発振部127の発振周波数を下げる際には、まず、変数Gdownの値がGdown=0であるかどうかを判定する(ステップS161)。変数Gdownの値がGdown=0であれば、次に、|B−A|をBで割った値を計算し、計算結果を変数Fに格納する(ステップS162)。変数Fは、ここではB−A>Jmaxと判定されるまでの経過時間と、値Aと値Bとの差分とから類推する、送信側と受信装置100との間のクロックの偏差に相当するものである。
変数Fへの値の格納が完了すると、次に変数Fの値が所定の閾値Fmax未満であるかどうかを判定する(ステップS163)。ステップS163での判定の結果、F<Fmaxではないと判定した場合には、異常状態であるとして以降の処理は全てスキップする。一方、ステップS163での判定の結果、F<Fmaxであると判定した場合には、次に変数Fを設定変更値αで割り、得られた値を変数Gdownに格納する(ステップS164)。
なお、上記ステップS161において、変数Gdownの値がGdown=0でないと判定した場合には、上記ステップS162〜ステップS164の処理はスキップする。
続いて、発振部127から発振される現在のクロック周波数の設定値Hを取得する(ステップS165)。発振部127から発振される現在のクロック周波数の設定値Hを取得すると、設定値Hから設定変更値αを減算して、発振部127から発振されるクロック周波数の設定値を再設定する(ステップS166)。
ステップS166で発振部127から発振されるクロック周波数の設定値を再設定すると、変数Gdownの値を1つデクリメントし、変数Gup、D、Eの値をそれぞれ0に初期化する(ステップS167)。
図10は、本発明の一実施形態にかかる受信装置100を用いたクロック同期処理において、図6のステップS143に示した発振部127の発振周波数をそのまま変化させない処理の詳細について説明する流れ図である。
まず。発振部127から発振される現在のクロック周波数の設定値Hを取得する(ステップS171)。発振部127から発振される現在のクロック周波数の設定値Hを取得すると、取得した設定値Hをそのまま発振部127から発振されるクロック周波数の設定値として再設定する(ステップS172)。
ステップS172で発振部127から発振されるクロック周波数の設定値を再設定すると、変数Gup、Gdown、D、Eの値をそれぞれ0に初期化する(ステップS173)。
なお、図6のステップS143では発振部127から発振される現在のクロック周波数を変化させないので、上記ステップS171およびステップS172の処理は、実行しなくてもよい。
図11は、本発明の一実施形態にかかる受信装置100を用いたクロック同期処理において、図6のステップS138に示した発振部127の発振周波数をそのまま変化させない処理の詳細について説明する流れ図である。
まず。発振部127から発振される現在のクロック周波数の設定値Hを取得する(ステップS181)。発振部127から発振される現在のクロック周波数の設定値Hを取得すると、取得した設定値Hをそのまま発振部127から発振されるクロック周波数の設定値として再設定する(ステップS182)。
ステップS182で発振部127から発振されるクロック周波数の設定値を再設定すると、変数Gup、Gdown、Eの値をそれぞれ0に初期化し、変数Dの値を1つインクリメントする(ステップS183)。図6のステップS138は、ステップS134でB<Aと判定した場合に実行される処理であるので、A−B>Jmaxであると連続して判定された回数を表す変数Dを1つインクリメントする。ここで変数Dの値が増加することで、図6のステップS136において、変数Dの値が所定の閾値Dmaxよりも大きくなった時点で、ステップS137における、発振部127から発振されるクロック周波数を増加させる処理を実行することができる。
なお、図6のステップS138では発振部127から発振される現在のクロック周波数を変化させないので、上記ステップS181およびステップS182の処理は、実行しなくてもよい。
図12は、本発明の一実施形態にかかる受信装置100を用いたクロック同期処理において、図6のステップS142に示した発振部127の発振周波数をそのまま変化させない処理の詳細について説明する流れ図である。
まず。発振部127から発振される現在のクロック周波数の設定値Hを取得する(ステップS191)。発振部127から発振される現在のクロック周波数の設定値Hを取得すると、取得した設定値Hをそのまま発振部127から発振されるクロック周波数の設定値として再設定する(ステップS192)。
ステップS192で発振部127から発振されるクロック周波数の設定値を再設定すると、変数Gup、Gdown、Dの値をそれぞれ0に初期化し、変数Eの値を1つインクリメントする(ステップS193)。図6のステップS142は、ステップS134でB>Aと判定した場合に実行される処理であるので、B−A>Jmaxであると連続して判定された回数を表す変数Eを1つインクリメントする。ここで変数Eの値が増加することで、図6のステップS140において、変数Eの値が所定の閾値Emaxよりも大きくなった時点で、ステップS141における、発振部127から発振されるクロック周波数を減少させる処理を実行することができる。
なお、図6のステップS142では発振部127から発振される現在のクロック周波数を変化させないので、上記ステップS191およびステップS192の処理は、実行しなくてもよい。
以上、本発明の一実施形態にかかる受信装置100を用いたクロック同期処理について説明した。
以上のように制御された発振部127の発振周波数によって、オーディオデコーダ123およびビデオデコーダ124が動作する。このとき、TS同期抽出部113からオーディオデコーダ123およびビデオデコーダ124へのパケットストリームの供給を、特許文献1に記載されているように、TS同期クロックカウンタのカウント値とタイムスタンプとの一致によって行うことができる。また、TS同期クロックカウンタを使用せず、オーディオデコーダバッファ117やビデオデコーダバッファ118に空きがあれば、TS同期抽出部113に対してデータを要求することで、オーディオデコーダ123およびビデオデコーダ124にデータを供給し、受信した映像データや音声データを再生することもできる。
以上説明したように本実施形態によれば、RTP/UDP転送でフロー制御を行わないようなシステムにおいて、受信装置100において、ネットワークジッタを考慮して受信装置100の発振部127の発振周波数を制御することで、ネットワークを経由して受信したパケットストリームを、長時間に渡って安定してデコードすることができる。また、ネットワーク経由で受信したパケットストリームをデコードして再生した後に、再度映像や音声をエンコードし、多重化して記録するようなシステムにおいて、バッファが破綻したときに生じる画像の乱れはそのまま記録されてしまう。従って、ネットワークジッタを考慮して受信装置100の発振部127の発振周波数を制御することで、バッファの破綻が起こりにくくなり、記録される映像に画像の乱れが生じる頻度を低減させる効果も生じる。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
本発明の一実施形態にかかる受信装置100の構成について説明する説明図である。 TTSパケットについて説明する説明図である。 本発明の一実施形態にかかる受信装置100におけるクロック同期処理の概要について説明する流れ図である。 ストリーム順序判定およびストリーム途絶判定の概要を示す説明図である。 本発明の一実施形態にかかる受信装置100を用いたクロック同期処理を説明する流れ図である。 本発明の一実施形態にかかる受信装置100を用いたクロック同期処理を説明する流れ図である。 タイムスタンプ値とSTCカウンタ値との差分およびジッタの関係を、グラフを用いて示す説明図である。 発振部の発振周波数を上げる処理の詳細について説明する流れ図である。 発振部の発振周波数を下げる処理の詳細について説明する流れ図である。 発振部の発振周波数をそのまま変化させない処理の詳細について説明する流れ図である。 発振部の発振周波数をそのまま変化させない処理の詳細について説明する流れ図である。 発振部の発振周波数をそのまま変化させない処理の詳細について説明する流れ図である。
符号の説明
100 受信装置
110 再生部
111 ネットワークI/F
112 通信キャッシュ
113 TS同期抽出部
114 TS同期クロックカウンタ
116 デマルチプレクサ
117 オーディオデコーダバッファ
118 ビデオデコーダバッファ
119 STCカウンタ
120 ES同期抽出部
121 ES同期抽出部
123 オーディオデコーダ
124 ビデオデコーダ
125 AV同期制御部
127 発振部
128 分周部
130 記録媒体
131 CPU

Claims (9)

  1. 少なくともタイムスタンプとTS(Transport Stream)パケットとで構成される所定の単位が連続するパケットストリームを受信する受信部と、
    発振周波数が制御可能である発振部と、
    前記発振部が供給するクロックを分周して計測する計測部と、
    前記パケットストリームの受信開始時から、前記受信部が受信した前記パケットストリームから読み出した最新の前記タイムスタンプ及び前記計測部が計測する最新の計測値を所定の周期で読み出す取得部と、
    前記取得部が取得した前記タイムスタンプの累積値及び前記計測値の累積値を算出する算出部と、
    前記算出部が算出した前記タイムスタンプの累積値と前記計測値の累積値との差分の絶対値と、ネットワークジッタに相当する値との大小を比較する比較部と、
    前記比較部で比較した結果、前記タイムスタンプの累積値と前記計測値の累積値との差分の絶対値の方が大きい場合に前記発振部の発振周波数を制御する周波数制御部と、
    を含むことを特徴とする、受信装置。
  2. 前記周波数制御部は、前記受信部で前記パケットストリームの受信を開始した時から大小比較するまでの時間と、前記タイムスタンプと前記計測値との差分との比率を用いて前記発振部の発振周波数を制御することを特徴とする、請求項1に記載の受信装置。
  3. 前記受信部で受信した前記パケットストリームに含まれる前記TSパケットを、前記制御部によって制御され前記発振部から供給されるクロックに同期してデコード及び再生する再生部をさらに含むことを特徴とする、請求項1に記載の受信装置。
  4. 前記算出部は、前記受信部が受信した前記パケットストリームから前記取得部が読み出した最新のタイムスタンプと、前記取得部が1つ前に読み出したタイムスタンプとを比較し、1つ前に読み出したタイムスタンプの方が小さい場合には1つ前に読み出したタイムスタンプを累積値の算出に用いることを特徴とする、請求項1に記載の受信装置。
  5. 前記取得部で読み出した最新の前記タイムスタンプが、所定の回数に渡って同一の値であるときは、前記周波数制御部での発振周波数の制御を行わないことを特徴とする、請求項1に記載の受信装置。
  6. 前記取得部は、垂直同期信号の割り込みを受けることによって前記受信部が受信した前記パケットストリームから読み出した最新の前記タイムスタンプ及び前記計測部が計測する最新の計測値を読み出すことを特徴とする、請求項1に記載の受信装置。
  7. 前記周波数制御部は、前記比較部が前記タイムスタンプの累積値と前記計測値の累積値との差分の絶対値の方が大きいと判定した場合に、前記タイムスタンプの累積値または前記計測値の累積値のどちらか一方が所定の回数連続して大きいときに初めて前記発振部の発振周波数を制御することを特徴とする、請求項1に記載の受信装置。
  8. 少なくともタイムスタンプとTSパケットとで構成される所定の単位が連続するパケットストリームを受信する受信ステップと、
    制御可能な発振周波数を有するクロックを供給するクロック供給ステップと、
    前記クロック供給ステップで供給するクロックを分周して計測する計測ステップと、
    前記パケットストリームの受信開始時から、前記受信ステップで受信した前記パケットストリームから読み出した最新の前記タイムスタンプ及び前記計測ステップが計測する最新の計測値を所定の周期で読み出す取得ステップと、
    前記取得ステップで取得した前記タイムスタンプの累積値及び前記計測値の累積値を算出する算出ステップと、
    前記算出ステップで算出した前記タイムスタンプの累積値と前記計測値の累積値との差分の絶対値と、ネットワークジッタに相当する値との大小を比較する比較ステップと、
    前記比較ステップで比較した結果、前記タイムスタンプの累積値と前記計測値の累積値との差分の絶対値の方が大きい場合に、前記クロック供給ステップで供給されるクロックの前記発振周波数を制御する周波数制御ステップと、
    を含むことを特徴とする、クロック同期方法。
  9. コンピュータに、
    少なくともタイムスタンプとTSパケットとで構成される所定の単位が連続するパケットストリームを受信する受信ステップと、
    制御可能な発振周波数を有するクロックを供給するクロック供給ステップと、
    前記クロック供給ステップで供給するクロックを分周して計測する計測ステップと、
    前記パケットストリームの受信開始時から、前記受信ステップで受信した前記パケットストリームから読み出した最新の前記タイムスタンプ及び前記計測ステップが計測する最新の計測値を所定の周期で読み出す取得ステップと、
    前記取得ステップで取得した前記タイムスタンプ及び前記計測値の累積値を算出する算出ステップと、
    前記算出ステップで算出した前記タイムスタンプの累積値と前記計測値の累積値との差分の絶対値と、ネットワークジッタに相当する値との大小を比較する比較ステップと、
    前記比較ステップで比較した結果、前記タイムスタンプの累積値と前記計測値の累積値との差分の絶対値の方が大きい場合に、前記クロック供給ステップで供給されるクロックの前記発振周波数を制御する周波数制御ステップと、
    を含む処理を実行させることを特徴とする、コンピュータプログラム。
JP2008068256A 2008-03-17 2008-03-17 受信装置、クロック同期方法およびコンピュータプログラム Expired - Fee Related JP4438878B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008068256A JP4438878B2 (ja) 2008-03-17 2008-03-17 受信装置、クロック同期方法およびコンピュータプログラム
US12/381,749 US7940805B2 (en) 2008-03-17 2009-03-16 Receiving device, clock synchronizing method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008068256A JP4438878B2 (ja) 2008-03-17 2008-03-17 受信装置、クロック同期方法およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2009225173A JP2009225173A (ja) 2009-10-01
JP4438878B2 true JP4438878B2 (ja) 2010-03-24

Family

ID=41117058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008068256A Expired - Fee Related JP4438878B2 (ja) 2008-03-17 2008-03-17 受信装置、クロック同期方法およびコンピュータプログラム

Country Status (2)

Country Link
US (1) US7940805B2 (ja)
JP (1) JP4438878B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011155099A1 (ja) * 2010-06-11 2011-12-15 三菱電機株式会社 映像表示装置
US8514329B2 (en) 2011-05-31 2013-08-20 Motorola Mobility Llc Jitter estimation for MPEG receivers
EP2866458B1 (en) * 2012-06-22 2019-07-31 Saturn Licensing LLC Reception device, and synchronous processing method therefor
JP5591892B2 (ja) * 2012-09-14 2014-09-17 株式会社東芝 コンテンツ配信サーバ装置及びその制御方法
JP5950021B2 (ja) * 2013-03-12 2016-07-13 日本電気株式会社 制御装置、通信システム、同期方法及びプログラム
US9307509B1 (en) * 2013-05-16 2016-04-05 Google Inc. Transmitting radio signals using simultaneous retransmission
JP6347204B2 (ja) * 2014-11-28 2018-06-27 サイレックス・テクノロジー株式会社 再生制御装置、再生制御方法、及び、プログラム
US9939838B1 (en) * 2015-01-22 2018-04-10 Invensense, Inc. Systems and methods for time stamping sensor data
US10638192B2 (en) * 2017-06-19 2020-04-28 Wangsu Science & Technology Co., Ltd. Live streaming quick start method and system
CN114205065A (zh) * 2020-09-02 2022-03-18 深圳市朗强科技有限公司 时钟频率同步方法、装置、设备及计算机存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5486864A (en) * 1993-05-13 1996-01-23 Rca Thomson Licensing Corporation Differential time code method and apparatus as for a compressed video signal
SG34287A1 (en) * 1994-10-28 1996-12-06 Hitachi Ltd Input-output circuit recording apparatus and reproduction apparatus for digital video signal
JPH10145345A (ja) * 1996-11-14 1998-05-29 Nippon Telegr & Teleph Corp <Ntt> 従属同期方法及びそのシステム
JP3433071B2 (ja) * 1997-10-29 2003-08-04 富士通株式会社 クロック周波数同期装置
JP2000332802A (ja) 1999-05-24 2000-11-30 Sony Corp 通信方法、通信システム、通信端末および中継装置
JP4612171B2 (ja) * 2000-10-27 2011-01-12 株式会社東芝 動画像復号再生モジュールと再生時刻管理プログラムとマルチメディア情報受信装置
JP3846578B2 (ja) * 2002-07-30 2006-11-15 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
JP4062504B2 (ja) * 2002-09-09 2008-03-19 ソニー株式会社 同期化方法、通信システムおよびデータ受信装置
JP4192766B2 (ja) 2003-11-19 2008-12-10 ソニー株式会社 受信装置および方法、記録媒体、並びにプログラム
JP4095559B2 (ja) * 2004-02-13 2008-06-04 株式会社東芝 H.264コーデックic、dvd再生装置、h.264コーデック方法
JP2007282093A (ja) * 2006-04-11 2007-10-25 Oki Electric Ind Co Ltd クロック信号発生装置及び方法
JP2007306497A (ja) * 2006-05-15 2007-11-22 Oki Electric Ind Co Ltd パケット伝送におけるクロック同期方法及び回路
JP4793247B2 (ja) * 2006-12-18 2011-10-12 株式会社日立製作所 記録装置、記録方法、再生装置及び再生方法
JP5167862B2 (ja) * 2008-02-27 2013-03-21 日本電気株式会社 クロック同期システム、クロック同期方法、プログラム、及び記録媒体

Also Published As

Publication number Publication date
US7940805B2 (en) 2011-05-10
US20090245124A1 (en) 2009-10-01
JP2009225173A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
JP4438878B2 (ja) 受信装置、クロック同期方法およびコンピュータプログラム
JP4361561B2 (ja) データ受信装置及びデータ受信方法
JP4793247B2 (ja) 記録装置、記録方法、再生装置及び再生方法
JP5616922B2 (ja) 同期信号調整装置、同期信号調整方法、映像表示装置、および同期信号発生装置
US11750675B2 (en) Low latency media streaming
JP2006186580A (ja) 再生装置およびデコード制御方法
JP6051847B2 (ja) 映像情報再生方法及びシステム
US8842740B2 (en) Method and system for fast channel change
US20240064359A1 (en) Transmitting method, receiving method, transmitting device, and receiving device
JP3846578B2 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP4874058B2 (ja) 受信装置およびクロック同期方法
JP3906712B2 (ja) データストリーム処理装置
JP4742836B2 (ja) 受信装置
JP4192766B2 (ja) 受信装置および方法、記録媒体、並びにプログラム
JP4224749B2 (ja) 通信装置、通信方法、および記録媒体
JP5958008B2 (ja) ストリーム処理装置、ストリーム処理方法およびストリーム処理プログラム
JP2007295491A (ja) ストリーミングデータ受信装置及びジッタ除去回路
JP4158075B2 (ja) 通信装置、通信方法、および記録媒体
JP4874272B2 (ja) 映像信号処理装置および映像信号処理方法
JP4212404B2 (ja) ストリーム受信機のシステムクロック制御装置及びシステムクロック制御方法
JP2001016210A (ja) 通信装置および方法、並びに媒体
JP2008067179A (ja) 受信装置および符号化データ再生方法
WO2010122626A1 (ja) 受信装置
JP2012016066A (ja) 映像信号処理装置および映像信号処理方法
JP4484718B2 (ja) データ受信装置及びデータ受信方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091209

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

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

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

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees