昨今、インターネットなどの種々のネットワーク(通信媒体)を介して、オーディオデータまたはビデオデータを伝送して提供するサービスが一般に行われている。特に、近年、ダウンロード型の伝送方式のサービスに加えて、ストリーム型の伝送方式のサービスがより多く提供されるようになってきた。
ダウンロード型の伝送方式のサービスにおいては、受信装置が、送信装置から送信された画像または音声のデータを格納するファイルを受信し、受信したファイルを自分の記録媒体に記録する。受信装置は、ファイルの記録が完了した後、記録したファイルを基に、画像または音声を再生する。ダウンロード型の伝送方式のサービスにおいては、ファイルの記録が完了するまでは、再生することができないので、ダウンロード型の伝送方式のサービスは、長時間の再生またはリアルタイムの再生には適さない。
一方、ストリーム型の伝送方式のサービスにおいては、受信装置が、送信装置から送信されてくるデータを受信するとともに、これに並行して、受信されたデータを基に画像または音声を再生する。ストリーム型の伝送方式は、インターネット電話、遠隔テレビ会議、またはビデオオンデマンド(Video On Demand)などのインターネットサービスに利用されている。
ストリーム型の伝送方式において、送信装置から送信されてくるデータを、一般に、ストリーミングデータと称する。
ストリーム型の伝送方式は、ディジタル放送の放送番組を放送する放送局と、衛星等を介して、放送局からのディジタル放送の放送番組等を受信する受信装置等で構成されるディジタル放送の放送システムにおいても採用されている。
ディジタル放送の放送システムでは、複数の種類のディジタルデータ(ビデオデータやオーディオデータ)を多重することが可能なストリームであるトランスポートストリームとして、放送番組等のオーディオデータやビデオデータ、EPG(Electronic Program Guide),EIT(Event Information Table),PMT(Program Map Table)等の番組情報のデータが伝送される。トランスポートストリームは、TS(Transport Stream:トランスポートストリーム)パケットと称される、固定長のパケットを複数有して構成するものである。
図1は、ディジタル放送の放送システムの構成例を示している。
放送局設備1は、例えば、所定のプログラム(テレビジョン放送番組、EPGなど)のオーディオデータとビデオデータがMPEGエンコードされたディジタルデータを、トランスポートストリームとして、衛星等の伝送路2を介して、受信側設備3に送信する。受信側設備3は、放送局設備1から送信されたトランスポートストリームを受信し、受信したオーディオデータとビデオデータをMPEGデコード等行うことにより得られる、放送番組等の所定のプログラムの音声と画像を、図示せぬディスプレイやスピーカ等に出力する。
また、図1のディジタル放送の放送システムでは、所定のプログラムのオーディオデータとビデオデータがビット列として伝送される。ここで、オーディオデータとビデオデータのビット列が、放送局設備1のバッファメモリ15を出力してから、伝送路2上を伝送されて、受信側設備3のバッファメモリ24に入力されるまでの間、オーディオデータとビデオデータのビット列は、同一の伝送クロック(伝送レート)で伝送される。
送信側となる放送局設備1の発振部11は、27MHzのクロック(信号処理クロック)を生成し、STC(System Time Clock)発生部12とエンコーダ13に供給する。STC発生部12は、発振部11から供給される27MHzを送信側の基準クロックであるSTCとして、受信側設備3において送信側のSTCの値にセットまたは補正するための、42ビットの時刻参照値であるPCR(Program Clock Reference)を生成する。また、STC発生部12は、生成したPCRをTSパケットとして、伝送路2を介して、受信側設備3に出力する。なお、PCRが格納されているTSパケット(以下、PCRパケットと称する)は、一定周期(MPEG2の規格では、100msec以内の間隔)で放送局設備から受信側設備3に出力される。
エンコーダ13は、発振部11から供給される27MHzのビットレートで、放送局が受信側設備3に送信する所定のプログラムのオーディオデータやビデオデータ(ビット列)を、MPEG等によりエンコードし、PES(Packetized Elementary Stream)生成部14に供給する。
PES生成部14は、エンコーダ13から供給されるMPEGエンコードされたオーディオデータやビデオデータ等のエレメンタリストリーム(Elementary Stream,以下、ESと称する)をパケット化し、PESパケットを生成する。PESパケットは、ヘッダ部とデータ部で構成される。
また、PES生成部14は、PESパケットを生成する際、STC発生部12から供給されるSTCに基づいて、そのオーディオデータやビデオデータを再生する時刻を示すタイムスタンプであるPTS(Presentation Time Stamp)を、PESパケットのヘッダ部に付加する。PTSは、90kHzのクロック値で、33ビットで表される。PESパケットの(データの)長さは、一般的には、TSパケットよりも長いため、PES生成部14は、生成したPESパケットを分割し、複数のTSパケットにしてバッファメモリ15に供給する。
バッファメモリ15は、PES生成部14から供給されたTSパケットを、適宜バッファリング(一時記憶)しながら、伝送路2を介して、受信側設備3に出力する。ビデオデータの符号化においては、一般的に、可変長符号化が行われるので、画像として撮影される物体の動きや、画像の精細さによって、符号化データの情報量は、逐次変化することとなるが、上述したように、伝送路2上では、同一の伝送レートでオーディオデータやビデオデータを伝送するために、バッファメモリ15は、伝送路2上にオーディオデータやビデオデータのビット列を出力する流量の制御(流量制御)を行う。
受信側設備3の発振部21は、27MHzのクロック(信号処理クロック)を生成し、STC再生部22に供給する。STC再生部22は、伝送路2を介して、放送局設備1から送信されてくるPCRパケットを取得する。STC再生部22は、発振部21から供給される27MHzのクロック、および、内蔵するPLL(Phase Locked Loop)回路(図示せず)から得られるカウンタ値と、放送局設備1から送信されてきたPCRパケットのPCRから得られるSTCを比較し、その差が0になるように制御を行う(STCを補正する)。
また、STC再生部22は、送信側である放送局設備1のSTCと同期するように補正されたSTCを提示制御部23に供給する。
提示制御部23は、バッファメモリ24を制御して(バッファメモリ24に制御信号を供給して)、バッファメモリ24にバッファリングされているオーディオデータやビデオデータをデコーダ25に供給させる。
バッファメモリ24には、放送局設備1のバッファメモリ15で出力された伝送レートと同一の伝送レートで、オーディオデータやビデオデータのビット列が入力される。バッファメモリ24がデータを記憶可能な容量は、放送局設備1のバッファメモリ15と同一の容量であるものとする。バッファメモリ24は、伝送路2を介して、放送局設備1から供給される(トランスポートストリームの)TSパケットのオーディオデータやビデオデータ(ビット列)をバッファリングし、提示制御部23の制御の下、デコーダ25に出力する。
提示制御部23は、PESパケットに記録されているPTSをデコーダ25から取り出す。また、提示制御部23は、デコーダ25を制御し、オーディオデータやビデオデータをデコードすることにより得られる音声や画像を、取り出したPTSに従って、外部の装置(図示せず)に出力(再生)させる。
デコーダ25は、提示制御部23の制御の下、バッファメモリ24から供給されるTSパケットのオーディオデータやビデオデータをデコードし、デコードすることにより得られる音声や画像を外部の装置に出力(再生)する。
図2は、TSパケットの構成例を示している。
TSパケットには、図2に示すように、ノーマルデータパケット(Normal data packet)、PCR付きパケット(PCR付き packet)、ヌルパケット(Null packet)の3種類がある。ノーマルデータパケット、PCR付きパケット、ヌルパケットのいずれも、1つのTSパケットは、188バイトで構成される。ノーマルデータパケット、PCR付きパケット、ヌルパケットのいずれも、TSパケットの先頭の4バイトは、TPヘッダを有する。なお、TPヘッダの詳細な構成については、図3で後述する。
ノーマルデータパケットのTSパケットは、4バイトのTPヘッダと、データが格納される184バイトのペイロード(データ部)から構成される。PCR付きパケット(PCRパケット)のTSパケットは、4バイトのTPヘッダ、アダプテーションフィールド、ペイロードから構成される。アダプテーションフィールドには、上述したPCRが42ビットで表されて記録される。また、ペイロードに格納したデータが184バイトに満たない場合には、アダプテーションフィールドに、デコーダでは使用されないスタッフィングデータが記録され、TSパケットが184バイトになるように調整される。ヌルパケットのTSパケットは、ペイロードのデータが全て1であるTSパケットである。
図3は、TSパケットのTPヘッダの構成例を示している。
TPヘッダは、8ビットのシンクバイト(sync_byte)、1ビットのトランスポートエラーインジケータ(transport_error_indicator)、1ビットのペイロードユニットスタートインジケータ(payload_unit_start_indicator)、1ビットのトランスポートプライオリティ(transport_priority)、13ビットのパケット識別子(PID)、2ビットのスクランブル制御(transport_scrambling_control)、2ビットのアダプテーションフィールド制御(adaptation_field_control)、および4ビットのコンティニュイティカウンタ(continuity_counter)で構成される。
シンクバイトは、TSパケットの先頭を表している。トランスポートエラーインジケータは、当該TSパケット中のビットエラーの有無を表している。ペイロードユニットスタートインジケータは、当該TSパケットのペイロードにPESパケットの先頭が記録されているかどうかを表している。パケットプライオリティは、当該TSパケットの重要度を表している。パケット識別子は、当該TSパケットの個別ストリームの属性を表している。スクランブル制御は、当該TSパケットのペイロードのスクランブルの有無および種類を表している。アダプテーションフィールド制御は、アダプテーションフィールドの有無、および、ペイロードの有無を表している。コンティニュイティカウンタは、同一のパケット識別子を有する複数のTSパケットの順序を表している。
図4は、オーディオデータやビデオデータ等のESとトランスポートストリームとの関係、即ち、オーディオデータやビデオデータ等のESから生成される、連続するTSパケットで構成されるトランスポートストリーム(TS)を示している。
図4に示すように、ビデオデータV1のESがあるとする。このビデオデータV1は、例えば、所定のチャンネルのひとつの画像を表すデータである。
ビデオデータV1のESが所定の数に分割され、分割されたESのデータそれぞれにPESパケットヘッダが付加されて、PESパケットが構成される。なお、PESパケットのPESパケットヘッダを除くデータの長さとしては、例えば、ESがビデオデータである場合には、1PESパケットのデータ部が、1ビデオフレームで構成される。また、ESがオーディオデータである場合には、1PESパケットのデータ部が、1オーディオフレームで構成される。なお、図4のPESパケットでは、ビデオデータV1のESのうちの先頭の1ビデオフレームの部分(先頭のPESパケット)が示されている。
PESパケットヘッダは、例えば、14バイトで構成される。PESパケットヘッダには、PESパケットのデータ部に格納されているESの種類を特定するストリームID(stream_id)や、上述したPTS等が記録される。
そして、上述したように、PESパケットの(データの)長さは、一般的には、TSパケットよりも長いため、1つのPESパケットが、複数の184バイトのTSパケットのペイロードに埋め込まれ、複数の、188バイトのTSパケットが連続するトランスポートストリームとなる。
図4では、184バイトに分割された先頭のPESパケットが、データV1−1,V1−2,V1−3,V1−4,・・・とされ、データV1−1乃至V1−6それぞれが、トランスポートストリームのTPパケットのペイロードに格納されている。
また、上述したように、1つのESを構成する複数のPESパケットのなかの、先頭のPESパケットのデータが格納されているTSパケットの、TPヘッダのペイロードユニットスタートインジケータは、1となり、それ以外のTSパケットのTPヘッダのペイロードユニットスタートインジケータは、0となる。
図4のトランスポートストリームは、1つの(種類の)ESが格納されている複数のTSパケットであるが、実際には、複数の種類のESが多重されたトランスポートストリームが、放送局設備1から受信側設備3に送信される。
そこで、図5は、図4のようにして生成された1種類のトランスポートストリームを構成するTSパケットが、複数の種類多重されたトランスポートストリームの例を示している。
図5では、先頭のTSパケットは、図4と同一のビデオデータV1のESの一部のデータV1−3が格納されたTSパケットである。2番目のTSパケットは、オーディオデータA1のESの一部のデータA1−5が格納されたTSパケットである。3番目のTSパケットは、ビデオデータV1と異なるビデオデータV2のESの一部のデータV2−2が格納されたTSパケットである。4番目のTSパケットは、放送局設備1から送信されるオーディオデータ、ビデオデータなどのストリームのPIDが指定されているPMTが格納されたTSパケットである。
このように、放送局設備1から出力されるトランスポートストリームには、さまざまな種類のデータが多重されて、受信側設備3に送信されてくる。
上述したディジタル放送の放送システムでは、放送局設備1のバッファメモリ15において、オーディオデータやビデオデータのビット列を出力する流量の制御が行われ、オーディオデータやビデオデータのビット列が、放送局設備1のバッファメモリ15を出力してから、伝送路2上を伝送されて、受信側設備3のバッファメモリ24に入力されるまでの間、オーディオデータとビデオデータのビット列は、同一の伝送クロック(伝送レート)で伝送されるため、受信側設備3は、安定したオーディオデータやビデオデータの再生をすることができる。即ち、受信側設備3において、オーディオデータやビデオデータの再生が破綻することはない。ここで、オーディオデータやビデオデータの再生が破綻するとは、受信側設備3において、オーディオデータやビデオデータを再生しているうちに、バッファメモリ24において、データのオーバーフローまたはアンダーフローが発生することを意味する。
特許文献1では、上述したようなディジタル放送システムにおいて、ディジタルデータを受信して、そのディジタルデータを記録または再生する装置が開示されている。
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。本明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。
本発明によれば受信装置が提供される。この受信装置は、放送局から放送波により送信されてくる、トランスポートストリームを受信するトランスポートストリーム受信手段(例えば、図6のフロントエンド部115)と、少なくともタイムスタンプと1以上のTS(Transport Stream)パケットで構成される所定の単位が連続するパケットストリームのストリーミングデータを、所定のネットワークを介して受信するパケットストリーム受信手段(例えば、図6のネットワークI/F111)と、パケットストリームの中の先頭の所定の単位の、タイムスタンプを初期値として、所定のクロックをカウントするカウント手段(例えば、図6のTS同期クロックカウンタ114)と、カウント手段のカウント値に基づいて、所定の単位中のTSパケットを出力する第1の出力手段(例えば、図6のTS同期抽出部113)と、トランスポートストリーム受信手段で受信されたトランスポートストリーム中のTSパケット、および第1の出力手段が出力するTSパケットを再生する再生手段(例えば、図6の再生部110)とを備え、再生手段は、供給されるTSパケットを、オーディオデータが格納されたTSパケット、ビデオデータが格納されたTSパケット、PCRが格納されたTSパケットに分離し、PCRが格納されたTSパケットであるPCRパケットのなかから最初のPCRパケットを検出するPCRパケット検出手段(例えば、図6のデマルチプレクサ116)と、最初のPCRパケットに格納されている値の一部を初期値としてSTCをカウントするSTCカウント手段(例えば、図6のSTCカウンタ119)と、STCカウント手段のカウント値に基づいて、オーディオデータまたはビデオデータをデコーダに出力する第2の出力手段(例えば、図6のES同期抽出部120)とを有する。
本発明によれば、受信方法が提供される。この受信方法は、放送局から放送波により送信されてくる、トランスポートストリームを受信するトランスポートストリーム受信ステップと、少なくともタイムスタンプと1以上のTS(Transport Stream)パケットで構成される所定の単位が連続するパケットストリームのストリーミングデータを、所定のネットワークを介して受信するパケットストリーム受信ステップ(例えば、図8のステップS1)と、パケットストリームの中の先頭の所定の単位の、タイムスタンプを初期値として、所定のクロックをカウントするカウントステップ(例えば、図8のステップS4)と、カウント手段のカウント値に基づいて、所定の単位中のTSパケットを出力する第1の出力ステップ(例えば、図8のステップS7)と、トランスポートストリーム受信手段で受信されたトランスポートストリーム中のTSパケット、および第1の出力ステップの処理が出力するTSパケットを再生する再生ステップ(例えば、図9のステップS29)とを含み、再生ステップの処理は、供給されるTSパケットを、オーディオデータが格納されたTSパケット、ビデオデータが格納されたTSパケット、PCRが格納されたTSパケットに分離し、PCRが格納されたTSパケットであるPCRパケットのなかから最初のPCRパケットを検出するPCRパケット検出ステップ(例えば、図9のステップS21)と、最初のPCRパケットに格納されている値の一部を初期値としてSTCをカウントするSTCカウントステップと、STCカウントステップによるカウント値に基づいて、オーディオデータまたはビデオデータをデコーダに出力する第2の出力ステップ(例えば、図9のステップS28)とを有する。
また、本発明によれば、プログラムが提供される。このプログラムは、放送局から放送波により送信されてくる、トランスポートストリームを受信するトランスポートストリーム受信ステップと、少なくともタイムスタンプと1以上のTS(Transport Stream)パケットで構成される所定の単位が連続するパケットストリームのストリーミングデータを、所定のネットワークを介して受信するパケットストリーム受信ステップ(例えば、図8のステップS1)と、パケットストリームの中の先頭の所定の単位の、タイムスタンプを初期値として、所定のクロックをカウントするカウントステップ(例えば、図8のステップS4)と、カウント手段のカウント値に基づいて、所定の単位中のTSパケットを出力する第1の出力ステップ(例えば、図8のステップS7)と、トランスポートストリーム受信手段で受信されたトランスポートストリーム中のTSパケット、および第1の出力ステップの処理が出力するTSパケットを再生する再生ステップ(例えば、図9のステップS29)とを含み、再生ステップの処理は、供給されるTSパケットを、オーディオデータが格納されたTSパケット、ビデオデータが格納されたTSパケット、PCRが格納されたTSパケットに分離し、PCRが格納されたTSパケットであるPCRパケットのなかから最初のPCRパケットを検出するPCRパケット検出ステップ(例えば、図9のステップS21)と、最初のPCRパケットに格納されている値の一部を初期値としてSTCをカウントするSTCカウントステップと、STCカウントステップによるカウント値に基づいて、オーディオデータまたはビデオデータをデコーダに出力する第2の出力ステップ(例えば、図9のステップS28)とを有する処理をコンピュータに実行させる。
このプログラムは、記録媒体に記録することができる。
図6は、本発明を適用した受信装置101の第1実施の形態の構成例を示している。
再生部110は、デマルチプレクサ116、オーディオデコーダバッファ117、ビデオデコーダバッファ118、STCカウンタ119、ES同期抽出部120および121、オーディオデコーダ123、ビデオデコーダ124、AV同期制御部125で構成されている。
再生部110は、後述するフロントエンド部115またはTS同期抽出部113から供給されるオーディオデータやビデオデータのTSパケットを、画像や音声として外部の装置(図示せず)に出力(再生)する。
ネットワークI/F(InterFace)111は、例えば、ADSL(Asymmetric Digital Subscriber Line)モデムや、LAN (Local Area Network)カード等で構成され、インターネットなどの各種のネットワークとの間の通信インタフェースとして機能する。ネットワークI/F111は、ネットワークを介してストリームリソース(コンテンツデータがパケット化されたパケットストリーム)が保存されているコンテンツサーバ(図示せず)に接続されている。
ネットワークI/F111は、HTTP (HyperText Transfer Protocol)またはTCP/IP (Transmission Control Protocol/Internet Protocol)で通信を行うことにより、通信キャッシュ112が記憶しているデータ量に応じて、コンテンツサーバに保存されているストリームリソースを受信し、通信キャッシュ112に供給(転送)する。
即ち、通信キャッシュ112が、TS同期抽出部113にストリームリソースを供給(出力)することにより、通信キャッシュ112が記憶しているストリームリソースが少なくなると、適宜、ネットワークI/F111が、通信キャッシュ112にストリームリソースを供給する。
ここで、ネットワークI/F111が、通信キャッシュ112に供給するストリームリソースのストリームは、図7で後述するタイムスタンプ(Time Stamp)付きのTSパケット(以下、TTSパケットとも称する)が連続するストリーム(MPEG2−TSパケットストリーム)である。
通信キャッシュ112は、ネットワークI/F111から供給されるストリームリソースを記憶する。また、通信キャッシュ112は、記憶しているストリームリソースを1つのタイムスタンプ付きTSパケット(以下、1TTSパケットとも称する)単位でTS(Transport Stream)同期抽出部113に供給する。なお、通信キャッシュ112は、コンテンツサーバから受信装置101に送信されてくるときのルーティングによる遅れ(誤差)や再送による遅れを十分吸収できる量(例えば、ストリーミングデータによる再生時間で30秒程度)のストリームリソースを記憶することができる。
TS同期抽出部113は、通信キャッシュ112から供給される(1TTSパケット分の)TTSパケットを保持し、TS同期クロックカウンタ114から供給されるカウント値に基づいて、保持しているTTSパケットのデマルチプレクサ116への出力を制御する。
具体的には、通信キャッシュ112から供給されるTTSパケットが、ストリームリソースの先頭のTTSパケットである場合には、TS同期抽出部113は、そのTTSパケットのタイムスタンプの値(以下、タイムスタンプ値とも称する)をTS同期クロックカウンタ114に供給(転送)するとともに、そのTTSパケットから、タイムスタンプが除去されたTSパケットを抽出し、デマルチプレクサ116に出力する。
また、通信キャッシュ112から供給されるTTSパケットが、ストリームリソースの先頭以外のTTSパケットである場合には、TS同期抽出部113は、TTSパケットのタイムスタンプ値が、TS同期クロックカウンタ114から供給されるカウント値と同一の値であるかを判定する。そして、TTSパケットのタイムスタンプ値が、TS同期クロックカウンタ114から供給されるカウント値と同一の値であると判定された場合、TS同期抽出部113は、TTSパケットから、タイムスタンプが除去されたTSパケットを抽出し、デマルチプレクサ116に出力する。TS同期抽出部113が保持しているTTSパケットのTSパケットがデマルチプレクサ116に出力されると、次のTTSパケットが、通信キャッシュ112からTS同期抽出部113に供給される。
TS同期クロックカウンタ114には、ストリームリソースの先頭のTTSパケットに付加されているタイムスタンプの値がTS同期抽出部113から供給される。また、TS同期クロックカウンタ114には、発振部127から27MHzの周波数のクロックが供給される。
TS同期クロックカウンタ114は、TS同期抽出部113から供給されたタイムスタンプ値を初期値として設定し、発振部127から供給される27MHzのクロックでカウントして、そのカウント値をTS同期抽出部113に供給する。
フロントエンド部115は、図5に示したトランスポートストリームとして、図示せぬアンテナから供給される、放送局(図示せず)から放送波により送信されてくる所定のプログラム(放送番組等のオーディオデータやビデオデータ、番組情報のデータなど)のデータを受信する。また、フロントエンド部115は、受信したトランスポートストリームを、QPSK(Quadrature Phase Shift Keying)復調し、エラーの検出および訂正を行う。さらに、フロントエンド部115は、QPSK復調され、エラーの検出および訂正がされたトランスポートストリームをデマルチプレクサ116に供給する。
デマルチプレクサ116は、フロントエンド部115またはTS同期抽出部113から供給される、オーディオデータ、ビデオデータ、またはPCR等が格納されたTSパケットを、オーディオデータ、ビデオデータ、PCR、その他のデータに分離する(フィルタリングする)。そして、デマルチプレクサ116は、オーディオデータをオーディオデコーダバッファ117に、ビデオデータをビデオデコーダバッファ118に、それぞれ供給(出力)する。また、デマルチプレクサ116は、ストリームリソースの最初のPCRパケットに格納されているPCRの上位33ビットを、STCカウンタ119に供給(出力)する。
ユーザが、図示せぬ操作部を操作することにより、受信装置101が受信した各種のコンテンツデータ(ネットワークI/F111を介して受信したストリームリソースやフロントエンド部115で受信した所定のプログラム)を記録媒体130に記録する指示を受信装置101に対して行った場合には、デマルチプレクサ116は、フロントエンド部115またはTS同期抽出部113から供給されるデータを記録媒体130に供給する。
また、記録媒体130からオーディオデータまたはビデオデータがデマルチプレクサ116に供給された場合、デマルチプレクサ116は、そのオーディオデータをオーディオデコーダバッファ117に、ビデオデータをビデオデコーダバッファ118に、それぞれ供給する。
オーディオデコーダバッファ117は、デマルチプレクサ116から供給される(TSパケットの)オーディオデータを一時的に蓄積してPESパケットとして記憶する。また、オーディオデコーダバッファ117は、PESパケットまたはPESパケットのヘッダ部のみをES(Elementary Stream)同期抽出部120に供給する。
ビデオデコーダバッファ118は、デマルチプレクサ116から供給される(TSパケットの)ビデオデータを一時的に蓄積してPESパケットとして記憶する。また、ビデオデコーダバッファ118は、PESパケットまたはPESパケットのヘッダ部のみをES同期抽出部121に供給する。
STCカウンタ119には、ストリームリソースの最初のPCRパケットに格納されているPCRの上位33ビットが、デマルチプレクサ116から供給される。また、STCカウンタ119には、分周部128から90kHzの周波数のクロックが供給される。
STCカウンタ119は、デマルチプレクサ116から供給されたPCRの上位33ビットをSTCカウンタの初期値として設定し、分周部128から供給される90kHzのクロックでカウントして、そのカウント値をSTCカウンタ値として、ES同期抽出部120および121に供給する。
ES同期抽出部120は、オーディオデコーダバッファ117に記憶されているオーディオデータのPESパケットのヘッダ部を抽出する(ES同期抽出部120に供給させる)。そして、ES同期抽出部120は、STCカウンタ119から供給されるSTCカウント値に基づいて、オーディオデコーダバッファ117に記憶されているオーディオデータのPESパケットのオーディオデコーダ123への出力を制御する。即ち、ES同期抽出部120は、PESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値となった場合、ES同期抽出部120は、先に抽出したPESパケットのヘッダ部を持つPESパケットをオーディオデコーダバッファ117から抽出し、オーディオデコーダ123に供給する(PESパケットをオーディオデコーダ123に転送する)。
一方、ES同期抽出部121は、ビデオデコーダバッファ118に記憶されているビデオデータのPESパケットのヘッダ部を抽出する(ES同期抽出部121に供給させる)。また、ES同期抽出部121は、STCカウンタ119から供給されるSTCカウント値に基づいて、ビデオデコーダバッファ118に記憶されているビデオデータのPESパケットのビデオデコーダ124への出力を制御する。即ち、ES同期抽出部121は、PESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値となった場合、ES同期抽出部121は、先に抽出したPESパケットのヘッダ部を持つPESパケットをビデオデコーダバッファ118から抽出し、ビデオデコーダ124に供給する(PESパケットをビデオデコーダ124に転送する)。
オーディオデコーダ123は、ES同期抽出部120から供給されるPESパケットのオーディオデータをMPEGデコードし、AV同期制御部125から供給される27MHzのクロックに従って、図示せぬ外部の装置(例えば、スピーカなど)に音声として出力する。
ビデオデコーダ124は、ES同期抽出部121から供給されるPESパケットのビデオデータをMPEGデコードし、AV同期制御部125から供給される27MHzのクロックに従って、図示せぬ外部の装置(例えば、LCD(Liquid Crystal Display)など)に画像として出力する。
AV同期制御部125は、発振部127から供給される27MHzのクロックに基づいて、オーディオデータとビデオデータを同期させる27MHzのクロックを、オーディオデコーダ123およびビデオデコーダ124に供給する。
発振部127は、VCO(Voltage Controlled Oscillator)等で構成され、27MHzの周波数のクロックを生成し、そのクロックをTS同期クロックカウンタ114、AV同期制御部125、および分周部128に供給する。分周部128は、発振部127から供給される27MHzのクロックを300分の1(1/300)の周波数に分周して、90kHzのクロックを生成し、その90kHzのクロックをSTCカウンタ119に供給する。
記録媒体130は、例えば、ハードディスク等の磁気ディスク、CD-R(Compact Disk-Recordable),DVD(Digital Versatile Disk),ブルーレイディスク(Blu-ray Disk)等の光ディスク、MD(Mini-Disk)等の光磁気ディスク、半導体メモリなどで構成される。
記録媒体130には、受信装置101を制御するための制御用プログラムが予め記憶されている。また、記録媒体130は、CPU131の制御の下、デマルチプレクサ116から供給されるビデオデータやオーディオデータ等を記憶する。さらに、記録媒体130は、CPU131の制御の下、自身が記憶するビデオデータやオーディオデータ等をデマルチプレクサ116に供給する。
CPU(Central Processing Unit)131は、記録媒体130に記憶されている制御用プログラムを実行することにより、受信装置101の各部を制御する。なお、CPU131と各部との制御線の図示は、省略されている。
以上のように構成される受信装置101では、ネットワークI/F111を介してコンテンツサーバから供給されたストリームリソースが、通信キャッシュ112に記憶される。そして、ストリームリソースを構成するTTSパケットのタイムスタンプの値に同期して、TSパケットがデマルチプレクサ116に出力される。デマルチプレクサ116により分離されたオーディオデータとビデオデータがデコードされ、画像と音声として外部の装置に出力される。即ち、受信装置101は、コンテンツサーバのストリームリソースをHTTP擬似ストリーミング再生することができる。
また、受信装置101では、フロントエンド部115で受信された、放送局から放送波により送信されてくる所定のプログラム(テレビジョン放送番組等)のトランスポートストリームがデマルチプレクサ116に供給される。そして、デマルチプレクサ116により分離されたオーディオデータとビデオデータが、画像と音声として外部の装置に出力される。
さらに、受信装置101は、ネットワークI/F111とフロントエンド部115の両方で受信したオーディオデータとビデオデータを再生部110に供給し、再生部110において、安定した再生を行う。
図7は、図6の受信装置101がコンテンツサーバから受信するストリーム(MPEG2−TSパケットストリーム)を示している。
図7のストリームは、188バイトのTSパケットに4バイトのタイムスタンプが付加された202バイトのタイムスタンプ付きTSパケット(TTSパケット)が繰り返し送信されるストリームである。4バイトのタイムスタンプは、27MHzの精度をもつタイムスタンプである。図7に示すようなストリームは、MPEG2−TSパケットストリームと称される。
図8のフローチャートを参照して、図6の受信装置101が、TS同期クロックカウンタ114のカウント値に同期して、受信したTTSパケットからTSパケットを抽出してデマルチプレクサ116に出力する、TS同期出力処理について説明する。なお、図8のTS同期出力処理は、ネットワークI/F111にストリームリソースが入力されている間、繰り返し実行される。
初めに、ステップS1において、ネットワークI/F111は、ネットワークを介して、コンテンツサーバからストリームリソースを受信し、通信キャッシュ112に供給する。通信キャッシュ112は、ネットワークI/F111から供給されるストリームリソースを記憶して、ステップS2に進む。
ステップS2において、TS同期抽出部113は、通信キャッシュ112から供給されるTTSパケット(1TTSパケット)を保持して、ステップS3に進む。
ステップS3において、TS同期抽出部113は、通信キャッシュ112から供給され、保持しているTTSパケット(以下、保持TTSパケットとも称する)が、ストリームリソースの先頭のTTSパケットであるか否かを判定する。
ステップS3で、保持TTSパケットが、ストリームリソースの先頭のTTSパケットであると判定された場合、ステップS4に進み、TS同期抽出部113は、保持TTSパケットのタイムスタンプ値をTS同期クロックカウンタ114に供給(転送)する。またステップS3では、TS同期クロックカウンタ114は、TS同期抽出部113から供給されたタイムスタンプ値を初期値として設定し、発振部127から供給される27MHzのクロックでカウントして、そのカウント値をTS同期抽出部113に供給することを開始して、ステップS5に進む。
ステップS5において、TS同期抽出部113は、保持TTSパケットから、タイムスタンプが除去されたTSパケットを抽出し、デマルチプレクサ116に出力して、ステップS3に戻る。
一方、ステップS3で、保持TTSパケットが、ストリームリソースの先頭のTTSパケットではないと判定された場合、ステップS6に進み、TS同期抽出部113は、保持TTSパケットのタイムスタンプ値が、TS同期クロックカウンタ114から供給されるカウント値と同一の値であるか否かを判定する。ステップS6では、保持TTSパケットのタイムスタンプ値が、TS同期クロックカウンタ114から供給されるカウント値と同一の値であると判定されるまで、処理が繰り返される。
ステップS6で、保持TTSパケットのタイムスタンプ値が、TS同期クロックカウンタ114から供給されるカウント値と同一の値であると判定された場合、ステップS7に進み、TS同期抽出部113は、保持TTSパケットからタイムスタンプが除去されたTSパケットを抽出し、デマルチプレクサ116に出力して、処理を終了する。
以上のように、図8のTS同期出力処理によれば、コンテンツサーバから受信したMEPG2−TSパケットストリームのうちのTSパケットを、TTSパケットのタイムスタンプの値に同期させて、デマルチプレクサ116に出力するようにしたので、ストリーミングデータを安定して再生(出力)させることができる。
次に、図9のフローチャートを参照して、図6の受信装置101が、デマルチプレクサ116に入力されるオーディオデータやビデオデータ(ES)を、STCカウンタ値に同期して外部の装置に出力する、ES同期出力処理について説明する。なお、図8のES同期出力処理は、デマルチプレクサ116にオーディオデータやビデオデータが入力されている間、繰り返し実行される。
初めに、ステップS21において、デマルチプレクサ116は、TS同期抽出部113またはフロントエンド部115から供給される、オーディオデータ、ビデオデータ、またはPCR等が格納されたTSパケットを、オーディオデータ、ビデオデータ、PCR、その他のデータに分離して、ステップS22に進む。
ステップS22において、デマルチプレクサ116は、オーディオデータ、ビデオデータ、PCR、その他のデータ等に分離することにより得られたデータが、ストリームソースの最初のPCRであるか否かを判定する。換言すれば、ステップS22では、デマルチプレクサ116は、TS同期抽出部113またはフロントエンド部115から供給されるTSパケットが、ストリームソースの最初のPCRパケットであるか否かを判定する。
ステップS22で、分離することにより得られたデータが、ストリームソースの最初のPCRであると判定された場合、ステップS23に進み、デマルチプレクサ116は、ストリームリソースの最初のPCRパケットに格納されている値の一部を、STCカウンタ119に出力して、ステップS24に進む。即ち、ステップS23では、デマルチプレクサ116は、ストリームリソースの最初のPCRパケットのPCRの上位33ビットを、STCカウンタ119に出力する。
ステップS24において、STCカウンタ119は、デマルチプレクサ116から供給されたPCRの上位33ビットをSTCカウンタの初期値として設定し、分周部128から供給される90kHzのクロックでカウントして、そのカウント値をSTCカウンタ値として、ES同期抽出部120および121に供給することを開始し、ステップS22に戻る。
一方、ステップS22において、分離することにより得られたデータが、ストリームソースの最初のPCRではないと判定された場合、ステップS25に進み、デマルチプレクサ116は、オーディオデータをオーディオデコーダバッファ117に、ビデオデータをビデオデコーダバッファ118に、それぞれ出力して、ステップS26に進む。
ステップS26において、ES同期抽出部120は、オーディオデコーダバッファ117に記憶されているオーディオデータのPESパケットのヘッダ部をオーディオデコーダバッファ117から抽出する。また、ES同期抽出部121は、ビデオデコーダバッファ118に記憶されているビデオデータのPESパケットのヘッダ部をビデオデコーダバッファ118から抽出して、ステップS27に進む。
ステップS27において、ES同期抽出部120および121は、PESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値であるか否かを判定する。ステップS27では、PESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値と判定されるまで、処理が繰り返される。
一方、ステップS27において、PESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値であると判定された場合、ステップS28に進み、そのPESパケットがオーディオデコーダバッファ117またはビデオデコーダバッファ118からオーディオデコーダ123またはビデオデコーダ124に供給される。
即ち、ES同期抽出部120がオーディオデコーダバッファ117から抽出したPESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値であると判定された場合、ES同期抽出部120は、そのヘッダ部を有するPESパケットをオーディオデコーダバッファ117から抽出し、オーディオデコーダ123に供給する。
また、ES同期抽出部121がビデオデコーダバッファ118から抽出したPESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値であると判定された場合、ES同期抽出部121は、そのヘッダ部を有するPESパケットをビデオデコーダバッファ118から抽出し、ビデオデコーダ124に供給して、ステップS29に進む。
ステップS29において、オーディオデコーダ123は、ES同期抽出部120から供給されるオーディオデータをMPEGデコードし、AV同期制御部125から供給される27MHzのクロックに従って、外部の装置に音声として出力する。また、ステップS29では、ビデオデコーダ124は、ES同期抽出部121から供給されるビデオデータをMPEGデコードし、AV同期制御部125から供給される27MHzのクロックに従って、外部の装置に画像として出力し、処理を終了する。
以上のように、図9のES同期出力処理によれば、コンテンツサーバから受信したMEPG2−TSパケットストリームを、PCRパケットに格納されているPCRの上位33ビットをSTCカウンタの初期値として設定したSTCカウント値に同期させて、出力するようにしたので、ストリーミングデータを安定して再生(画像や音声を出力)させることができる。
図10は、本発明を適用した受信装置101の第2実施の形態の構成例を示している。
再生部110は、デマルチプレクサ116、オーディオデコーダバッファ117、ビデオデコーダバッファ118、STCカウンタ119、ES同期抽出部120および121、オーディオデコーダ123、ビデオデコーダ124、AV同期制御部125で構成されている。
再生部110は、後述するフロントエンド部115またはTS同期抽出部153から供給されるオーディオデータやビデオデータのTSパケットを、画像や音声として外部の装置(図示せず)に出力(再生)する。
ネットワークI/F(InterFace)151は、例えば、ADSL(Asymmetric Digital Subscriber Line)モデムや、LAN (Local Area Network)カード等で構成され、インターネットなどの各種のネットワークとの間の通信インタフェースとして機能する。ネットワークI/F151は、ネットワークを介してストリームリソース(コンテンツデータがパケット化されたパケットストリーム)が保存されているコンテンツサーバ(図示せず)に接続されている。
ネットワークI/F151は、RTP(Realtime Transport Protocol)、UDP(User Datagram Protocol)、またはIP(Internet Protocol)で通信を行うことにより、通信バッファ152が記憶しているデータ量に応じて、コンテンツサーバに保存されているストリームリソースを受信し、通信バッファ152に供給(転送)する。
即ち、通信バッファ152が、TS同期抽出部153にストリームリソースを供給(出力)することにより、通信バッファ152が記憶しているストリームリソースが少なくなると、適宜、ネットワークI/F151が、通信バッファ152にストリームリソースを供給する。
ここで、ネットワークI/F151が、通信バッファ152に供給するストリームリソースのストリームは、タイムスタンプが格納されたRTPヘッダと複数のTSパケットで構成されるRTPパケット(図11で後述する)が連続するストリーム(RTPパケットストリーム)である。
通信バッファ152は、ネットワークI/F151から供給されるストリームリソースを記憶する。また、通信バッファ152は、記憶しているストリームリソースを1つのRTPパケット(以下、1RTPパケットとも称する)単位でTS(Transport Stream)同期抽出部153に供給する。なお、通信バッファ152は、コンテンツサーバから受信装置101に送信されてくるときのルーティングによる遅れ(誤差)を十分吸収できる量(例えば、ストリーミングデータによる再生時間で数秒程度)のストリームリソースを記憶することができる。
TS同期抽出部153は、通信バッファ152から供給される(1RTPパケット分の)RTPパケットを保持し、TS同期クロックカウンタ114から供給されるカウント値に基づいて、保持しているRTPパケットのデマルチプレクサ116への出力を制御する。
具体的には、通信バッファ152から供給されるRTPパケットが、ストリームリソースの先頭のRTPパケットである場合には、TS同期抽出部153は、そのRTPパケットのRTPヘッダに格納されているタイムスタンプ値をTS同期クロックカウンタ114に供給(転送)するとともに、そのRTPパケットから複数のTSパケットを抽出し、デマルチプレクサ116に出力する。
また、通信バッファ152から供給されるRTPパケットが、ストリームリソースの先頭以外のRTPパケットである場合には、TS同期抽出部153は、RTPパケットのRTPヘッダに格納されているタイムスタンプ値が、TS同期クロックカウンタ114から供給されるカウント値と同一の値であるかを判定する。そして、RTPパケットのRTPヘッダに格納されているタイムスタンプ値が、TS同期クロックカウンタ114から供給されるカウント値と同一の値であると判定された場合、TS同期抽出部153は、そのRTPパケットから、複数のTSパケットを抽出し、デマルチプレクサ116に出力する。TS同期抽出部153が保持しているRTPパケットの複数のTSパケットがデマルチプレクサ116に出力されると、次のRTPパケット(1RTPパケット)が、通信バッファ152からTS同期抽出部153に供給される。
TS同期クロックカウンタ114には、ストリームリソースの先頭のRTPパケットのRTPヘッダに格納されていたタイムスタンプの値がTS同期抽出部153から供給される。また、TS同期クロックカウンタ114には、分周部128から90kHzの周波数のクロックが供給される。
TS同期クロックカウンタ114は、TS同期抽出部153から供給されたタイムスタンプ値を初期値として設定し、分周部128から供給される90kHzのクロックでカウントして、そのカウント値をTS同期抽出部153に供給する。
フロントエンド部115は、図示せぬアンテナ等を介して、放送局(図示せず)から放送波により送信されてくる所定のプログラム(放送番組等のオーディオデータやビデオデータ、番組情報のデータなど)が多重されたトランスポートストリームを受信する。また、フロントエンド部115は、受信したトランスポートストリームを、QPSK(Quadrature Phase Shift Keying)復調し、エラーの検出および訂正を行う。さらに、フロントエンド部115は、QPSK復調され、エラーの検出および訂正がされたトランスポートストリームをデマルチプレクサ116に供給する。
デマルチプレクサ116は、フロントエンド部115またはTS同期抽出部153から供給される、オーディオデータ、ビデオデータ、またはPCR等が格納されたTSパケットを、オーディオデータ、ビデオデータ、PCR、その他のデータに分離する(フィルタリングする)。そして、デマルチプレクサ116は、オーディオデータをオーディオデコーダバッファ117に、ビデオデータをビデオデコーダバッファ118に、それぞれ供給(出力)する。また、デマルチプレクサ116は、ストリームリソースの最初のPCRパケットのPCRの上位33ビットを、STCカウンタ119に供給(出力)する。
ユーザが、図示せぬ操作部を操作することにより、受信装置101が受信した各種のコンテンツデータ(ネットワークI/F151を介して受信したストリームリソースやフロントエンド部115で受信した所定のプログラム)を記録媒体130に記録する指示を受信装置101に対して行った場合には、デマルチプレクサ116は、フロントエンド部115またはTS同期抽出部153から供給されるデータを記録媒体130に供給する。
また、記録媒体130からオーディオデータまたはビデオデータがデマルチプレクサ116に供給された場合、デマルチプレクサ116は、そのオーディオデータをオーディオデコーダバッファ117に、ビデオデータをビデオデコーダバッファ118に、それぞれ供給する。
オーディオデコーダバッファ117は、デマルチプレクサ116から供給される(TSパケットの)オーディオデータを一時的に蓄積してPESパケットとして記憶する。また、オーディオデコーダバッファ117は、PESパケットまたはPESパケットのヘッダ部のみをES(Elementary Stream)同期抽出部120に供給する。
ビデオデコーダバッファ118は、デマルチプレクサ116から供給される(TSパケットの)ビデオデータを一時的に蓄積してPESパケットとして記憶する。また、ビデオデコーダバッファ118は、PESパケットまたはPESパケットのヘッダ部のみをES同期抽出部121に供給する。
STCカウンタ119には、ストリームリソースの最初のPCRパケットに格納されているPCRの上位33ビットが、デマルチプレクサ116から供給される。また、STCカウンタ119には、分周部128から90kHzの周波数のクロックが供給される。
STCカウンタ119は、デマルチプレクサ116から供給されたPCRの上位33ビットをSTCカウンタの初期値として設定し、分周部128から供給される90kHzのクロックでカウントして、そのカウント値をSTCカウンタ値として、ES同期抽出部120および121に供給する。
ES同期抽出部120は、オーディオデコーダバッファ117に記憶されているオーディオデータのPESパケットのヘッダ部を抽出する(ES同期抽出部120に供給させる)。そして、ES同期抽出部120は、STCカウンタ119から供給されるSTCカウント値に基づいて、オーディオデコーダバッファ117に記憶されているオーディオデータのPESパケットのオーディオデコーダ123への出力を制御する。即ち、ES同期抽出部120は、PESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値となった場合、ES同期抽出部120は、先に抽出したPESパケットのヘッダ部を持つPESパケットをオーディオデコーダバッファ117から抽出し、オーディオデコーダ123に供給する(PESパケットをオーディオデコーダ123に転送する)。
一方、ES同期抽出部121は、ビデオデコーダバッファ118に記憶されているビデオデータのPESパケットのヘッダ部を抽出する(ES同期抽出部121に供給させる)。また、ES同期抽出部121は、STCカウンタ119から供給されるSTCカウント値に基づいて、ビデオデコーダバッファ118に記憶されているビデオデータのPESパケットのビデオデコーダ124への出力を制御する。即ち、ES同期抽出部121は、PESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値となった場合、ES同期抽出部121は、先に抽出したPESパケットのヘッダ部を持つPESパケットをビデオデコーダバッファ118から抽出し、ビデオデコーダ124に供給する(PESパケットをビデオデコーダ124に転送する)。
オーディオデコーダ123は、ES同期抽出部120から供給されるPESパケットのオーディオデータをMPEGデコードし、AV同期制御部125から供給される27MHzのクロックに従って、図示せぬ外部の装置(例えば、スピーカなど)に音声として出力する。
ビデオデコーダ124は、ES同期抽出部121から供給されるPESパケットのビデオデータをMPEGデコードし、AV同期制御部125から供給される27MHzのクロックに従って、図示せぬ外部の装置(例えば、LCD(Liquid Crystal Display)など)に画像として出力する。
AV同期制御部125は、発振部127から供給される27MHzのクロックに基づいて、オーディオデータとビデオデータを同期させる27MHzのクロックを、オーディオデコーダ123およびビデオデコーダ124に供給する。
発振部127は、VCO(Voltage Controlled Oscillator)等で構成され、27MHzの周波数のクロックを生成し、そのクロックをAV同期制御部125および分周部128に供給する。分周部128は、発振部127から供給される27MHzのクロックを300分の1(1/300)の周波数に分周して、90kHzのクロックを生成し、その90kHzのクロックをTS同期クロックカウンタ114およびSTCカウンタ119に供給する。
記録媒体130は、例えば、ハードディスク等の磁気ディスク、CD-R(Compact Disk-Recordable),DVD(Digital Versatile Disk),ブルーレイディスク(Blu-ray Disk)等の光ディスク、MD(Mini-Disk)等の光磁気ディスク、半導体メモリなどで構成される。
記録媒体130には、受信装置101を制御するための制御用プログラムが予め記憶されている。また、記録媒体130は、CPU131の制御の下、デマルチプレクサ116から供給されるビデオデータやオーディオデータ等を記憶する。さらに、記録媒体130は、CPU131の制御の下、自身が記憶するビデオデータやオーディオデータ等をデマルチプレクサ116に供給する。
CPU(Central Processing Unit)131は、記録媒体130に記憶されている制御用プログラムを実行することにより、受信装置101の各部を制御する。なお、CPU131と各部との制御線の図示は、省略されている。
以上のように構成される受信装置101では、ネットワークI/F151を介してコンテンツサーバから供給されたストリームリソースが、通信バッファ152に記憶される。そして、RTPパケットのRTPヘッダに格納されているタイムスタンプの値に同期して、ストリームリソースを構成するRTPパケットの複数のTSパケットがデマルチプレクサ116に出力される。デマルチプレクサ116により分離されたオーディオデータとビデオデータがデコードされ、画像と音声として外部の装置に出力される。即ち、受信装置101は、コンテンツサーバのストリームリソースをRTPストリーミング再生することができる。
また、受信装置101では、フロントエンド部115で受信された、放送局から放送波により送信されてくる所定のプログラム(テレビジョン放送番組等)のトランスポートストリームがデマルチプレクサ116に供給される。そして、デマルチプレクサ116により分離されたオーディオデータとビデオデータが、画像と音声として外部の装置に出力される。
さらに、受信装置101は、ネットワークI/F151とフロントエンド部115の両方で受信したオーディオデータとビデオデータを再生部110に供給し、再生部110において、安定した再生を行う。
図11は、図10の受信装置101がコンテンツサーバから受信するストリーム(RTPパケットストリーム)を示している。
図11のストリームは、188バイトを有するTSパケット7個に、タイムスタンプが格納されている16バイトのRTPヘッダが付加された1332バイトのRTPパケットが繰り返し送信されるストリームである。16バイトのRTPヘッダに格納されるタイムスタンプは、90kHzの精度をもつタイムスタンプである。図11に示すようなストリームは、RTPパケットストリームと称される。なお、図10の実施の形態では、1RTPパケットを構成するTSパケットは、7個のTSパケットで構成されるものとしたが、1RTPパケットに含まれるTSパケットの数は、7個以外の任意の数としてもよい。
図12のフローチャートを参照して、図10の受信装置101が、TS同期クロックカウンタ114のカウント値に同期して、受信したRTPパケットからTSパケットを抽出してデマルチプレクサ116に出力する、TS同期出力処理について説明する。なお、図12のTS同期出力処理は、ネットワークI/F151にストリームリソースが入力されている間、繰り返し実行される。
初めに、ステップS41において、ネットワークI/F151は、ネットワークを介して、コンテンツサーバからストリームリソースを受信し、通信バッファ152に供給する。通信バッファ152は、ネットワークI/F151から供給されるストリームリソースを記憶して、ステップS42に進む。
ステップS42において、TS同期抽出部153は、通信バッファ152から供給されるRTPパケット(1RTPパケット)を保持して、ステップS43に進む。
ステップS43において、TS同期抽出部153は、通信バッファ152から供給され、保持しているRTPパケット(以下、保持RTPパケットとも称する)が、ストリームリソースの先頭のRTPパケットであるか否かを判定する。
ステップS43で、保持RTPパケットが、ストリームリソースの先頭のRTPパケットであると判定された場合、ステップS44に進み、TS同期抽出部153は、保持RTPパケットのRTPヘッダに格納されているタイムスタンプ値をTS同期クロックカウンタ114に供給(転送)する。また、ステップS43では、TS同期クロックカウンタ114は、TS同期抽出部153から供給されたタイムスタンプ値を初期値として設定し、分周部128から供給される90kHzのクロックでカウントして、そのカウント値をTS同期抽出部153に供給することを開始して、ステップS45に進む。
ステップS45において、TS同期抽出部153は、保持RTPパケットから、複数のTSパケットを抽出し、デマルチプレクサ116に出力して、ステップS43に戻る。
一方、ステップS43で、保持RTPパケットが、ストリームリソースの先頭のRTPパケットではないと判定された場合、ステップS46に進み、TS同期抽出部153は、保持RTPパケットのRTPヘッダに格納されているタイムスタンプ値が、TS同期クロックカウンタ114から供給されるカウント値と同一の値であるか否かを判定する。ステップS46では、保持RTPパケットのRTPヘッダに格納されているタイムスタンプ値が、TS同期クロックカウンタ114から供給されるカウント値と同一の値であると判定されるまで、処理が繰り返される。
ステップS46で、保持RTPパケットのRTPヘッダに格納されているタイムスタンプ値が、TS同期クロックカウンタ114から供給されるカウント値と同一の値であると判定された場合、ステップS47に進み、TS同期抽出部153は、保持RTPパケットから複数のTSパケットを抽出し、デマルチプレクサ116に出力して、処理を終了する。
以上のように、図12のTS同期出力処理によれば、コンテンツサーバから受信したRTPパケットストリームのうちの複数のTSパケットを、RTPパケットのRTPヘッダに格納されているタイムスタンプの値に同期させて、デマルチプレクサ116に出力するようにしたので、ストリーミングデータを安定して再生(出力)させることができる。
次に、図13のフローチャートを参照して、図10の受信装置101が、デマルチプレクサ116に入力されるオーディオデータやビデオデータ(ES)を、STCカウンタ値に同期して外部の装置に出力する、ES同期出力処理について説明する。なお、図13のES同期出力処理は、デマルチプレクサ116にオーディオデータやビデオデータが入力されている間、繰り返し実行される。
初めに、ステップS61において、デマルチプレクサ116は、フロントエンド部115またはTS同期抽出部153から供給される、オーディオデータ、ビデオデータ、またはPCR等が格納されたTSパケットを、オーディオデータ、ビデオデータ、PCR、その他のデータに分離して、ステップS62に進む。
ステップS62において、デマルチプレクサ116は、ステップS61でTSパケットを、オーディオデータ、ビデオデータ、PCR、その他のデータ等に分離することにより得られたデータが、ストリームソースの最初のPCRであるか否かを判定する。換言すれば、ステップS62では、デマルチプレクサ116は、フロントエンド部115またはTS同期抽出部153から供給されるTSパケットが、ストリームソースの最初のPCRパケットであるか否かを判定する。
ステップS62で、分離することにより得られたデータが、ストリームソースの最初のPCRであると判定された場合、ステップS63に進み、デマルチプレクサ116は、ストリームリソースの最初のPCRパケットに格納されている値の一部を、STCカウンタ119に出力して、ステップS64に進む。即ち、ステップS64では、デマルチプレクサ116は、ストリームリソースの最初のPCRパケットのPCRの上位33ビットを、STCカウンタ119に出力する。
ステップS64において、STCカウンタ119は、デマルチプレクサ116から供給されたPCRの上位33ビットをSTCカウンタの初期値として設定し、分周部128から供給される90kHzのクロックでカウントして、そのカウント値をSTCカウンタ値として、ES同期抽出部120および121に供給することを開始し、ステップS62に戻る。
一方、ステップS62において、分離することにより得られたデータが、ストリームソースの最初のPCRではないと判定された場合、ステップS65に進み、デマルチプレクサ116は、オーディオデータをオーディオデコーダバッファ117に、ビデオデータをビデオデコーダバッファ118に、それぞれ出力して、ステップS66に進む。
ステップS66において、ES同期抽出部120は、オーディオデコーダバッファ117に記憶されているオーディオデータのPESパケットのヘッダ部をオーディオデコーダバッファ117から抽出する。また、ES同期抽出部121は、ビデオデコーダバッファ118に記憶されているビデオデータのPESパケットのヘッダ部をビデオデコーダバッファ118から抽出して、ステップS67に進む。
ステップS67において、ES同期抽出部120および121は、ステップS66で抽出したPESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値であるか否かを判定する。ステップS67では、PESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値と判定されるまで、処理が繰り返される。
一方、ステップS67において、PESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値であると判定された場合、ステップS68に進み、そのPESパケットがオーディオデコーダバッファ117またはビデオデコーダバッファ118からオーディオデコーダ123またはビデオデコーダ124に供給される。
即ち、ES同期抽出部120がオーディオデコーダバッファ117から抽出したPESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値であると判定された場合、ES同期抽出部120は、そのヘッダ部を有するPESパケットをオーディオデコーダバッファ117から抽出し、オーディオデコーダ123に供給する。
また、ES同期抽出部121がビデオデコーダバッファ118から抽出したPESパケットのヘッダ部に記載されているPTSの値(PTS値)が、STCカウンタ119から供給されるSTCカウンタ値と同一の値であると判定された場合、ES同期抽出部121は、そのヘッダ部を有するPESパケットをビデオデコーダバッファ118から抽出し、ビデオデコーダ124に供給して、ステップS69に進む。
ステップS69において、オーディオデコーダ123は、ES同期抽出部120から供給されるオーディオデータをMPEGデコードし、AV同期制御部125から供給される27MHzのクロックに従って、外部の装置に音声として出力する。また、ステップS69では、ビデオデコーダ124は、ES同期抽出部121から供給されるビデオデータをMPEGデコードし、AV同期制御部125から供給される27MHzのクロックに従って、外部の装置に画像として出力し、処理を終了する。
以上のように、図13のES同期出力処理によれば、コンテンツサーバから受信したRTPパケットストリームを、PCRパケットに格納されているPCRの上位33ビットをSTCカウンタの初期値として設定したSTCカウント値に同期させて、出力するようにしたので、ストリーミングデータを安定して再生(画像や音声を出力)させることができる。
上述した第1および第2の実施の形態では、PCRは、オーディオデータやビデオデータが格納されたTSパケットとは別の、PCRパケットとして、コンテンツサーバから送信されてくるものとしたが、PCRは、オーディオデータやビデオデータが格納されているTSパケットに埋め込まれて、コンテンツサーバから送信されてくるようにすることもできる。その場合、受信装置101のデマルチプレクサ116は、1つのTSパケットのオーディオデータやビデオデータとPCRとを分離して、PCRをSTCカウンタ119に供給するようにすることができる。
また、第1および第2の実施の形態では、STCカウンタ119は、PCRパケットに格納されているPCRの上位33ビットを初期値として、STCをカウントするようにしたが、STCカウンタ119は、オーディオデータまたはビデオデータが格納されているTSパケットに含まれるPTS値を初期値として、STCをカウントするようにしてもよい。この場合、デマルチプレクサ116からSTCカウンタ119にPTS値が初期値として供給される。
また、図6と図10の受信装置101において、デマルチプレクサ116以降のデコードの同期を取る際の構成としては、PCRを基にしたPLL(Phase Locked Loop)回路を採用することもできる。
図6と図10の受信装置101は、オンデマンド配信などのような、コンテンツサーバに保存されているストリームリソースを、ネットワークを介して受信することができる。また、受信装置101が行うストリーミング再生としては、HTTP擬似ストリーミング再生とRTPストリーミング再生の2種類がある。ここで、QoSが保証されていないネットワーク環境では、HTTP擬似ストリーミング再生を採用して、QoSが保証されていないネットワーク環境では、RTPストリーミング再生を採用することができる。
さらに、図6と図10の受信装置101は、フロントエンド部115を有することにより、放送局から放送波として送信されてくるトランスポートストリームを受信し、ディジタル放送の各種のプログラム(放送番組など)を出力(再生)することができる。
ストリーミング再生(HTTP擬似ストリーミング再生およびRTPストリーミング再生)と、ディジタル放送の再生(出力)では、図6と図10の受信装置101は、受信したオーディオデータやビデオデータのデコード出力処理(図9や図13のES同期出力処理)を、共通の構成で行うことができるため、ディジタル放送受信装置とネット受信装置との共用化を可能とするとともに、共用化された受信装置の低廉化に寄与することができる。
上述した一連の処理は、専用のハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアによって行う場合、例えば、その一連の処理は、図14に示されるような(パーソナル)コンピュータにプログラムを実行させることにより実現することができる。
図14において、CPU(Central Processing Unit)301は、ROM(Read Only Memory)302に記憶されているプログラム、または記憶部308からRAM(Random Access Memory)303にロードされたプログラムに従って図8のTS同期出力処理、図9のES同期出力処理等の、各種の処理を実行する。RAM303にはまた、CPU301が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU301、ROM302、およびRAM303は、バス304を介して相互に接続されている。このバス304にはまた、入出力インタフェース305も接続されている。
入出力インタフェース305には、キーボード、マウスなどよりなる入力部306、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部307、ハードディスクなどより構成される記憶部308、モデム、ターミナルアダプタなどより構成される通信部309が接続されている。通信部309は、受信装置101のネットワークI/F111に相当し、インターネットなどのネットワークを介しての通信処理を行う。
入出力インタフェース305にはまた、必要に応じてドライブ310が接続され、磁気ディスク321、光ディスク322、光磁気ディスク323、或いは半導体メモリ324などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部308にインストールされる。
なお、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
101 受信装置, 110 再生部, 111 ネットワークI/F, 113 TS同期抽出部, 114 TS同期クロックカウンタ, 115 フロントエンド部, 119 STCカウンタ, 120,121 ES同期抽出部, 151 ネットワークI/F, 153 TS同期抽出部