再生装置およびデコード制御方法
【課題】ネットワークを介して転送されるリアルタイムストリームおよび非リアルタイムストリームの双方を正しく再生可能な再生装置を実現する。
【解決手段】再生装置は、ネットワーク10を介してサーバ11から転送される、再生対象データのストリームを受信する。受信されたストリームはMPEGデコーダ24内のバッファに格納される。MPEGデコーダ24は、再生クロック発生器26からの再生クロックに同期して、受信されたストリームをバッファから読み出してデコードするデコード処理を実行する。受信されたストリームがサーバ11からリアルタイムに送出されるリアルタイムストリームである場合、再生クロックの周波数はバッファのフィルレベルに応じて制御される。一方、受信されたストリームが、蓄積メディア13から読み出される非リアルタイムストリームである場合には、再生クロックの周波数は固定値に設定される。
【解決手段】再生装置は、ネットワーク10を介してサーバ11から転送される、再生対象データのストリームを受信する。受信されたストリームはMPEGデコーダ24内のバッファに格納される。MPEGデコーダ24は、再生クロック発生器26からの再生クロックに同期して、受信されたストリームをバッファから読み出してデコードするデコード処理を実行する。受信されたストリームがサーバ11からリアルタイムに送出されるリアルタイムストリームである場合、再生クロックの周波数はバッファのフィルレベルに応じて制御される。一方、受信されたストリームが、蓄積メディア13から読み出される非リアルタイムストリームである場合には、再生クロックの周波数は固定値に設定される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は圧縮符号化されたデータを再生する再生装置および同再生装置に適用されるデコード制御方法に関する。
【背景技術】
【0002】
近年、デジタル圧縮符号化されたオーディオ・ビデオ(AV)のようなデータストリームをネットワークを介してサーバからクライアントに伝送するシステムが開発されている。このシステムにおいては、たとえば、放送データのようなリアルタイムストリームが、ネットワークを介してサーバからクライアントに伝送される。
【0003】
また、最近では、放送データのようなリアルタイムストリームのみならず、蓄積メディアから任意の速度で読み出し可能な非リアルタイムストリームをネットワークを介してサーバからクライアントに伝送することも要求されている。
【0004】
特許文献1には、チューナから出力されるトランスポートストリームと蓄積メディアから読み出されるプログラムストリームの双方をデコードすることが可能なデジタル信号処理装置が開示されている。このデジタル信号処理装置においては、トランスポートストリームをデコードする場合には、デコード処理は、当該トランスポートストリームに含まれるプログラムクロックリファレンス(PCR)によって調整されたクロックに同期して実行される。一方、プログラムストリームをデコードする場合には、デコード処理は、別の安定したクロックに同期して実行される。
【特許文献1】特開2003−134468公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、上記特許文献1のデジタル信号処理装置においては、トランスポートストリーム/プログラムストリームの種別に応じてクロック制御方法が変更されるので、チューナから出力されるストリームと蓄積メディアから読み出されるストリームとが共にトランスポートストリームである場合には、それに対応することができない。
【0006】
たとえば、トランスポートストリームから構成される放送番組データを蓄積メディアに記録した場合には、蓄積メディアから読み出されるストリームもトランスポートストリームとなる。
【0007】
また上記特許文献1のデジタル信号処理装置はそのデジタル信号処理装置にそれぞれ設けられたチューナおよび蓄積メディアからのストリームをデコードするように設計されており、ネットワークを介してサーバから伝送されるトランスポートストリーム/プログラムストリームをデコードすることについては何等考慮されていない。
【0008】
ネットワークを介してストリームを伝送するシステムにおいては、ストリームを伝送する送信装置側のクロックと、ストリームをデコードする受信装置側のクロックとは互いに独立している。このため、受信装置側のクロックを送信装置側のクロックに同期させるためのクロック制御処理を実行することが必要となる。しかし、上述のプログラムクロックリファレンス(PCR)を利用した時刻合わせを利用することは実際上困難である。ネットワークを介したデータ伝送においては、遅延揺らぎにより、PCRを含むパケット毎に遅延時間が異なるというPCRジッタが発生するからである。
【0009】
このため、ネットワークを介してストリームを伝送するシステムにおいては、受信装置に設けられたバッファのフィルレベル(満ち具合)に応じて受信装置側のクロックを調整するというクロック制御処理を実行することが必要となる。バッファのフィルレベルが一定値よりも多い場合には受信装置側のクロック速度は早められ、逆にバッファのフィルレベルが一定値よりも少ない場合には受信装置側のクロック速度は遅くされる。
【0010】
もし、このクロック制御処理を実行しなかったならば、放送データのようなリアルタイムストリームについては、送信装置側のデータ送出速度と受信装置側のデコード速度との間にズレが生じ、これによって受信装置で画像および音声を正常にデコードおよび再生することができなくなる。
【0011】
たとえば、送信装置側のクロックと受信装置側のクロックとの間の誤差がMPEG(Moving Picture Experts Group)規格で許容されている30ppm(parts per million)である場合には、1000秒(16分)で1フレーム分(30msec)の画像ずれおよび音声ずれが生じることになる。
【0012】
一方、もしこのようなクロック制御処理を常に実行すると、今度は、蓄積メディアから読み出されるAVコンテンツを正常に再生することができなくなる。
【0013】
すなわち、蓄積メディアにはAVコンテンツを構成する全てのデータが予め存在しているので、受信装置側のバッファに空きがある限り、データは、そのAVコンテンツの本来の伝送レートよりも高速に送信装置側から受信装置側に転送される。このため、受信装置側のバッファは、常にある一定量を超えるデータが蓄積された状態となる。この場合、受信装置側のクロック速度はどんどん加速されていくので、受信装置側のクロックは、その発振可能周波数の最大値で発振するように制御されてしまい、これによりAVコンテンツが異常に早い速度で再生されてしまうことになる。
【0014】
本発明は上述の事情を考慮してなされたものであり、ネットワークを介して転送されるリアルタイムストリームおよび非リアルタイムストリームの双方を正しく再生することが可能な再生装置およびデコード制御方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
上述の課題を解決するため、本発明は、圧縮符号化されたデータを含むストリームを再生する再生装置において、前記ストリームの転送を指示するリクエストをネットワークを介してサーバに送信する手段と、前記ネットワークを介して前記サーバから転送される前記ストリームを受信する受信手段と、前記受信されたストリームを格納するバッファと、前記受信されたストリームを前記バッファから読み出してデコード処理を実行するデコーダと、前記デコード処理の速度を規定するクロック信号を発生するクロック発生器と、前記受信されたストリームが、当該ストリームに対応する伝送レートで前記サーバからリアルタイムに送出されるリアルタイムストリーム、および前記サーバの蓄積メディアに格納され、当該ストリームに対応する伝送レートよりも高速に前記サーバから送出される非リアルタイムストリームのいずれであるかを判別する判別手段と、前記受信されたストリームが前記リアルタイムストリームであることが判別された場合、前記バッファのフィルレベルに応じて前記クロック信号の周波数を変化させるクロック制御処理を実行し、前記受信されたストリームが前記非リアルタイムストリームであることが判別された場合、前記クロック信号の周波数を固定値に設定する処理を実行するクロック制御手段と具備することを特徴とする。
【発明の効果】
【0016】
本発明によれば、ネットワークを介して転送されるストリームがリアルタイムストリームおよび非リアルタイムストリームのいずれであるかに応じて自動的にクロック制御方法が変更されるので、ネットワークを介して転送されるリアルタイムストリームおよび非リアルタイムストリームの双方を正しく再生することが可能となる。
【発明を実施するための最良の形態】
【0017】
以下、図面を参照して、本発明の実施形態を説明する。
図1には、本発明の一実施形態に係る再生装置の構成が示されている。この再生装置は、ネットワークサーバ11との通信を実行可能なネットワーククライアント21として実現されている。ネットワークサーバ11およびネットワーククライアント21は、例えば家庭内のLAN(Local Area Network)のようなネットワーク10にそれぞれ接続されている。ネットワークサーバ11はホームネットワークシステムのサーバとして機能し、ネットワーククライアント21はホームネットワークシステムのクライアント端末として機能する。
【0018】
ネットワークサーバ11は、図示のように、放送受信部12、蓄積メディア13、およびネットワークサーバ処理部14から構成されている。放送受信部12は、TV番組のような放送番組データを受信する受信装置である。この放送受信部12は、例えば地上波デジタル放送のようなデジタル放送信号を受信し、そのデジタル放送信号からあるチャンネルの放送番組データに対応するトランスポートストリーム(TS)を取り出す。トランスポートストリームは、圧縮符号化された放送番組データを含む。このトランスポートストリームを構成するTSパケット群は、放送局から送信されるタイミングと同じタイミングで、放送受信部12からネットワークサーバ処理部14にリアルタイムに送出される。つまり、放送受信部12から出力されるトランスポートストリームは、その再生速度(フレームレート)に対応する伝送レートでネットワーク10を介してネットワーククライアント21にリアルタイムに転送されるリアルタイムストリームである。
【0019】
蓄積メディア13は圧縮符号化されたAVコンテンツを格納するストレージデバイスであり、例えば、ハードディスクドライブ(HDD)、DVD(Digital Versatile Disc)ドライブ等から構成されている。放送受信部12によって受信された放送番組データを蓄積メディア13に記録することも可能である。蓄積メディア13に格納されたAVコンテンツのストリームは、その再生速度に対応する本来の伝送レートとは関係なく蓄積メディア13から任意の速度で読み出し可能な非リアルタイムストリームである。ネットワーククライアント21からの要求を受けた場合、蓄積メディア13に格納されたAVコンテンツのストリームは、そのAVコンテンツの本来の伝送レートよりも高速にネットワーク10を介してネットワーククライアント21に伝送される。
【0020】
ネットワークサーバ処理部14は、例えばHTTP(Hyper Text Transfer Protocol)サーバとして機能する。このネットワークサーバ処理部14は、ネットワーククライアント21からのリクエストに従って、放送受信部12によって受信された現在放送中のコンテンツまたは蓄積メディア13に格納されているコンテンツをネットワーク10を介してネットワーククライアント21に転送する。
【0021】
ネットワーククライアント21からのリクエストは、再生対象コンテンツのストリームの転送をあるデータサイズ単位で要求する。現在放送中のコンテンツの転送が要求された場合、ネットワークサーバ処理部14は、放送受信部12からTSパケットを受信する度に、そのTSパケットをネットワーク10上に送出する。これにより、TSパケット群の各々は、放送局から送信されるタイミングと同じタイミングで、リアルタイムにネットワーク10上に送出される。この送出処理は、例えば、送出済みの総TSパケットのデータサイズが要求されたデータサイズに一致するまで、繰り返し実行される。
【0022】
一方、蓄積メディア13に格納されているコンテンツが要求された場合、ネットワークサーバ処理部14は、要求されたコンテンツのストリーム(トランスポートストリームTSまたはプログラムストリームPS)を蓄積メディア13から読み出す。プログラムストリームとしては、例えば、ビデオ・レコーディングフォーマット(VRフォーマット)を使用することができる。要求されたコンテンツのストリームを構成するパケット群(TSパケットまたはPSパケット)の全てが蓄積メディア13にすでに存在しているので、要求されたデータサイズ分のパケット群がネットワークサーバ処理部14に即座に読み出される。ネットワークサーバ処理部14は、読み出されたパケット群をネットワーク10を介してネットワーククライアント21に順次転送する。これにより、転送が要求されたストリームを構成するパケット群は、それらパケット群の各々の再生タイミングとは無関係に、即座にネットワーククライアント21に転送される。
【0023】
ネットワーク10を介して伝送される各パケットは、IPパケットである。このため、各TS/PSパケットは、IPパケットに変換される。IPパケットのペイロード部にはTS/PSパケットが収容される。
【0024】
以下では、蓄積メディア13から読み出されるストリームが、トランスポートストリームである場合を想定する。
【0025】
ネットワーククライアント21は、圧縮符号化されたAVデータを含むストリームを再生する装置である。このネットワーククライアント21は、システム制御部22、ネットワーククライアント処理部23、MPEG(Moving Picture Experts Group)デコーダ(#1)24、発振周波数制御電圧発生器25、発振周波数制御スイッチ27、および再生クロック発生器26から構成されている。
【0026】
システム制御部22は、ネットワーククライアント21の動作を制御する。このシステム制御部22は、ネットワークサーバ11から転送されるストリームが放送データのようなリアルタイムストリームおよびネットワークサーバ11の蓄積メディア13から読み出される非リアルタイムストリームのいずれであるかを判別する機能を有している。さらに、システム制御部22は、リアルタイムストリーム/非リアルタイムストリームの判別結果に応じて、再生クロック発生器26の制御方法を切り替える機能を有している。
【0027】
ネットワーククライアント処理部23は、ネットワーク10を介してネットワークサーバ11との通信を実行する。ネットワークサーバ11から転送されるストリームは、ネットワーククライアント処理部23によって受信される。MPEGデコーダ(#1)24は、ネットワーククライアント処理部23によって受信されたストリームをデコードする。このMPEGデコーダ(#1)24は、受信されたストリームを一時的に格納するバッファと、そのバッファからストリームを読み出してデコードするデコード処理ユニットとを備えている。
【0028】
発振周波数制御電圧発生器25は、MPEGデコーダ(#1)24内のバッファのフィルレベル(FILL Level)に応じて、再生クロック発生器26に供給すべき発振周波数制御電圧を生成する。バッファのフィルレベルは、例えば、システム制御部22によって検出される。バッファのフィルレベルは、バッファが受信されたストリームによって満たされている程度を示す値である。バッファのフィルレベルは、バッファがどの程度の割合で満たされているかを示す相対値、あるいはバッファの残容量を示す絶対値によって表すことができる。また、バッファの残容量の代わりに、バッファに蓄積されているデータ量を示す絶対値をフィルレベルとして用いることもできる。
【0029】
バッファのフィルレベルが基準値を超えると、発振周波数制御電圧発生器25から出力される発振周波数制御電圧の値は上昇する。一方、バッファのフィルレベルが基準値を下回ると、発振周波数制御電圧発生器25から出力される発振周波数制御電圧の値は低下する。
【0030】
発振周波数制御スイッチ27は、システム制御部22の制御の下、再生クロック発生器26に供給される発振周波数制御電圧を、発振周波数制御電圧発生器25からの出力値と固定値との間で切り替える。再生クロック発生器26は、MPEGデコーダ(#1)24のデコード動作の速度を規定するクロック信号(再生クロック)を発生する。この再生クロック発生器26は、電圧制御水晶発振器(VCXO: Voltage Controlled Crystal Oscillator)を用いて構成されている。再生クロック発生器26の発振周波数は、再生クロック発生器26に入力される発振周波数制御電圧の値によって変化する。発振周波数制御電圧の値が高くなるほど、再生クロック発生器26の発振周波数は高くなり、これによりクロック信号(再生クロック)の周波数は増加する。
【0031】
受信したストリームが放送受信部12からのリアルタイムストリームである場合には、発振周波数制御スイッチ27は、システム制御部22の制御の下、発振周波数制御電圧発生器25の出力値を選択する。これにより、再生クロックの周波数は、バッファのフィルレベルがある一定の範囲内に保たれるように現在のバッファのフィルレベルに応じて調整されるので、ネットワークサーバ11からのリアルタイムストリームの送出タイミングとMPEGデコーダ(#1)24のデコード動作タイミングとの間の同期を実現することができる。
【0032】
一方、受信したストリームが蓄積メディア13からの非リアルタイムストリームである場合には、発振周波数制御スイッチ27は、システム制御部22の制御の下、固定値を選択する。これにより、再生クロックの周波数は、バッファのフィルレベルによらずに、常に一定値に維持される。よって、たとえバッファのフィルレベルが基準値を超えても再生クロックの周波数は増加しないので、MPEGデコーダ(#1)24のデコード動作速度がどんどん加速されていくという不具合の発生を防止することができる。
【0033】
このように、本実施形態においては、ネットワーク10を介して転送されるストリームが、現在放送中の放送番組データのように当該データに対応する伝送レートでリアルタイムにサーバ11から送出されるリアルタイムストリーム、および蓄積メディアに格納され、当該データに対応する伝送レートよりも高速にサーバ11から送出される非リアルタイムストリームのいずれであるかに応じて自動的にクロック制御方法が変更される。したがって、リアルタイムストリームおよび非リアルタイムストリームの双方を正しく再生することが可能となる。
【0034】
図2には、ネットワーククライアント処理部23の構成例が示されている。
【0035】
ネットワーククライアント処理部23は、受信部231、受信バッファ232、およびリクエスト送出部233を備えている。受信部231は、ネットワーク10からIPパケットを受信する。この場合、受信部231は、受信したIPパケットのヘッダを解析して、その受信したIPパケットが、ネットワーククライアント21に割り当てられたIPアドレスを転送先アドレスとして含むIPパケットであるか否かを判別する。ネットワーククライアント21に割り当てられたIPアドレスを転送先アドレスとして含むIPパケットであれば、受信部231は、そのIPパケットのペイロード部に含まれるTSパケットを受信バッファ232に格納する。リクエスト送出部233は、再生対象データの転送を指示するリクエストをネットワーク10を介してネットワークサーバ11に送信する。このリクエストには、再生対象データのコンテンツ名を指定する情報、転送データサイズを指定する情報等が含まれている。リクエストは、例えば、受信バッファ232に所定の空き容量がある場合に送出される。
【0036】
図3には、MPEGデコーダ(#1)24の構成例が示されている。
【0037】
このMPEGデコーダ(#1)24は、バッファ読取り部241、デマルチプレクサ(TS Demux)242、ビデオバッファ243、ビデオデコーダ244、オーディオバッファ245、およびオーディオデコーダ246を備えている。
【0038】
バッファ読取り部241は、ネットワーククライアント処理部23の受信バッファ241からトランスポートストリームを読み出し、デマルチプレクサ(TS Demux)242に送出する。受信バッファ241からのトランスポートストリームの読み出しは、例えば、オーディオバッファ245およびオーディオデコーダ246それぞれに所定の空き容量がある場合に実行される。
【0039】
デマルチプレクサ(TS Demux)242は、トランスポートストリームをビデオデータ(ビデオストリーム)とオーディオデータ(オーディオストリーム)とに分離する処理を実行する。この分離処理は、例えば、TSパケット単位で実行される。ビデオデータはビデオバッファ243に格納され、またオーディオデータはオーディオバッファ245に格納される。
【0040】
ビデオデコーダ244は、ビデオバッファ243からビデオデータを読み出してデコードする。このビデオデコーダ244は、上述の再生クロックとしてビデオクロックを受信し、そのビデオクロックに同期してビデオデータのデコード処理を実行する。ビデオデコーダ244には、ビデオクロックに同期してカウント動作を実行するSTC(System Time Clock)カウンタ247が設けられている。ビデオデコーダ244のデコード処理のタイミングは、STCカウンタ247のカウンタ値によって制御される。
【0041】
オーディオデコーダ246は、オーディオバッファ245からオーディオデータを読み出してデコードする。このオーディオデコーダ246は、上述の再生クロックとしてオーディオクロックを受信し、そのオーディオクロックに同期してオーディオデータのデコード処理を実行する。オーディオデコーダ246には、オーディオクロックに同期してカウント動作を実行するSTC(System Time Clock)カウンタ248が設けられている。オーディオデコーダ246のデコード処理のタイミングは、STCカウンタ248のカウンタ値によって制御される。
【0042】
この図3のMPEGデコーダ(#1)24においては、ビデオバッファ243およびオーディオバッファ245は、ネットワーク10から受信したトランスポートストリームを一時格納するための上述のバッファとしてそれぞれ機能する。本実施形態では、これらビデオバッファ243およびオーディオバッファ245の内、オーディオバッファ245のフィルレベルの変化をクロック制御処理に利用する。
【0043】
ビデオデータは可変レート符号化によって圧縮符号化されているので、そのビデオデータのデータ量は例えばシーン毎に変化する。このため、MPEGデコーダ(#1)24がリアルタイムストリームをデコードしている場合には、ビデオバッファ243のフィルレベルは、クロックずれのみならず、再生中のシーンによっても変化する。これに対し、オーディオデータは固定ビットレート符号化によって圧縮符号化されているので、オーディオバッファ245のビデオデータの変化は、クロックずれのみに依存する。よって、オーディオバッファ245のフィルレベルをクロック制御処理に利用することにより、より精度よく再生クロックを調整することが可能となる。
【0044】
図4には、発振周波数制御電圧発生器25の構成例が示されている。
【0045】
発振周波数制御電圧発生器25は、比較器251およびループフィルタ252を備えている。比較器251は、オーディオバッファ245のフィルレベルと基準値とを比較して、その差分値に対応する電圧を出力する。オーディオバッファ245のフィルレベルとしては、例えば、オーディオバッファ245の残容量を示す値を使用することができる。ループフィルタ252はローパスフィルタとして機能し、比較器251の出力を平滑化することによって発振周波数制御電圧を生成する。
【0046】
図5には、再生クロック発生器26の構成例が示されている。
【0047】
再生クロック発生器26は、電圧制御水晶発振器(VCXO: Voltage Controlled Crystal Oscillator)261およびPLL(Phase Locked Loop)回路262から構成されている。電圧制御水晶発振器(VCXO)261は、27MHzで発振する水晶発振器であり、27MHzのクロック信号をビデオクロックとして発生する。PLL回路262は、27MHzのクロック信号からオーディオクロックを生成する。オーディオクロックの周波数は、例えば、オーディオデータのサンプリング周波数の32倍程度の値である。
【0048】
次に、図6のフローチャートを参照して、システム制御部22によって実行されるクロック制御処理の手順の第1の例を説明する。
【0049】
トランスポートストリームの受信が開始されると、システム制御部22は、まず、ビデオデコーダ244のSTCカウンタ247およびオーディオデコーダ246のSTCカウンタ248を初期設定する処理を実行する(ステップS101)。このステップS101においては、システム制御部22は、ビデオバッファ243およびオーディオバッファ245にそれぞれある程度のデータ量が蓄積された状態でデコード処理が開始されるように、以下の処理を実行する。
【0050】
システム制御部22は、ビデオバッファ243およびオーディオバッファ245に格納されたビデオストリームおよびオーディオストリームからそれぞれPTS(Presentation Time Stamp)を抽出する。これらPTSは、ビデオデータとオーディオデータとを同期して再生するために用いられる時間情報である。ビデオストリームに含まれるPTSはビデオデータが再生されるべき提示時刻を示し、オーディオストリームに含まれるPTSはオーディオデータが再生されるべき提示時刻を示す。
【0051】
システム制御部22は、ビデオストリームから抽出したPTSの値よりも一定値だけ少ない値をビデオデコーダ244のSTCカウンタ247に現在のSTCカウント値としてセットすると共に、オーディオストリームから抽出したPTSの値よりも一定値だけ少ない値をオーディオコーダ246のSTCカウンタ248に現在のSTCカウント値としてセットする。
【0052】
STCカウンタ247のカウント動作が進み、そのSTCカウント値がビデオバッファ243に格納されているビデオデータのPTSに一致した時に、ビデオデコーダ244は、該当するビデオデータのデコードおよび再生を実行する。同様に、STCカウンタ248のカウント動作が進み、そのSTCカウント値がオーディオバッファ245に格納されているオーディオデータのPTSに一致した時に、オーディオデコーダ246は、該当するオーディオデータのデコードおよび再生を実行する。このため、ステップS101の処理により、ビデオバッファ243およびオーディオバッファ245にそれぞれある程度のデータ量が蓄積された状態で、デコード処理を開始することが可能となる。
【0053】
次いで、システム制御部22は、オーディオバッファ245に蓄積されているデータ量(バッファ占有量)を監視して、トランスポートストリームの受信が開始されてから所定の基準時間内にオーディオバッファ245が一杯になるか否かを判別する(ステップS102,S103)。基準時間の値は、オーディオバッファ245のバッファサイズ(容量)に応じて予め決められている。たとえば、オーディオバッファ245のバッファサイズが3秒分の再生時間に対応するオーディオデータを蓄積するサイズを有している場合には、基準時間の値は、3秒よりも少ない値、たとえば1.5秒程度の値に設定される。
【0054】
もし受信中のストリームが放送データのようなリアルタイムストリームであれば、オーディオバッファ245が一杯になるまでには少なくとも3秒を要することとなる。よって、基準時間内にオーディオバッファ245が一杯になることはない。
【0055】
一方、もし受信中のストリームが蓄積メディア13から読み出される非リアルタイムストリームであれば、オーディオバッファ245に空きがある限り、オーディオデータがオーディオバッファ245に順次書き込まれる。このため、基準時間内にオーディオバッファ245が一杯になる。
【0056】
基準時間内にオーディオバッファ245が一杯になったならば(ステップS103のYES)、システム制御部22は、現在受信中のストリームが蓄積メディア13からの非リアルタイムストリームであると判断する。そして、システム制御部22は、MPEGデコーダ(#1)24のデコード動作速度が異常に加速されるのを防止するために、発振周波数制御スイッチ27によって固定値を選択する(ステップS104)。これにより、再生クロックの周波数は一定値に維持される。
【0057】
基準時間内にオーディオバッファ245が一杯にならなかったならば(ステップS103のNO)、システム制御部22は、現在受信中のストリームが放送データのようなリアルタイムストリームであると判断する。そして、システム制御部22は、オーディオバッファ245のフィルレベルに応じて再生クロックの周波数を調整するために、発振周波数制御スイッチ27によって発振周波数制御電圧発生器25の出力を選択する(ステップS104)。これにより、再生クロックの周波数は、ネットワークサーバ11からのリアルタイムストリームの伝送速度に合わされる。
【0058】
なお、オーディオバッファ245が実際に一杯になったかどうかではなく、ストリームの受信を開始してから所定の時間内にオーディオバッファ245のフィルレベルがある基準値を超えるかどうかに応じて、受信中のストリームが非リアルタイムストリームおよびリアルタイムストリームのいずれであるかを判別してもよい。
【0059】
次に、図7のフローチャートを参照して、システム制御部22によって実行されるクロック制御処理の手順の第2の例を説明する。
【0060】
システム制御部22は、ネットワーククライアント処理部23と共同して、受信したIPパケットのヘッダ部を解析することにより、受信したIPパケットからフラグを抽出する(ステップS201)。このフラグは、当該IPパケットのペイロード部に含まれるデータが放送データのようなリアルタイムストリームおよび蓄積メディア13から読み出された非リアルタイムストリームのいずれであるかを示す識別情報である。このフラグは、ネットワークサーバ11のネットワークサーバ処理部14によって各IPパケットに挿入される。フラグは、図8に示すように、IPヘッダ部、HTTPヘッダ部、あるいはペイロード部内に確保されたリザーブエリアに記述されている。
【0061】
システム制御部22は、フラグに基づいて、現在受信中のストリームが放送データのようなリアルタイムストリームおよび蓄積メディア13からの非リアルタイムストリームのいずれであるかを判別する(ステップS202)。
【0062】
現在受信中のストリームが蓄積メディア13からの非リアルタイムストリームであれば(ステップS203のNO)、システム制御部22は、MPEGデコーダ(#1)24のデコード動作速度が異常に加速されるのを防止するために、発振周波数制御スイッチ27によって固定値を選択する(ステップS203)。これにより、再生クロックの周波数は一定値に維持される。
【0063】
一方、現在受信中のストリームが放送データのようなリアルタイムストリームであれば(ステップS203のYES)、システム制御部22は、オーディオバッファ245のフィルレベルに応じて再生クロックの周波数を調整するために、発振周波数制御スイッチ27によって発振周波数制御電圧発生器25の出力を選択する(ステップS204)。これにより、再生クロックの周波数はネットワークサーバ11からのリアルタイムストリームの伝送速度に合わされる。
【0064】
図9には、ネットワーククライアント21の第2の構成例が示されている。
【0065】
このネットワーククライアント21においては、図1のMPEGデコーダ(#1)24の代わりに、トランスポートストリーム(TS)再生処理部31およびMPEGデコーダ(#2)32が設けられている。
【0066】
トランスポートストリーム再生処理部31は、受信されたトランスポートストリームを一時的に格納するバッファと、そのバッファに格納されたトランスポートストリームをリアルタイムに当該バッファからMPEGデコーダ(#2)32に読み出すための読み出し部とを備えている。この読み出し部は、再生クロック発生器26から発生される再生クロックに同期して動作する。MPEGデコーダ(#2)32はトランスポートストリーム再生処理部31からリアルタイムに伝送されるトランスポートストリームをデコードするように構成されており、トランスポートストリーム再生処理部31からTSパケットを受信する度に、その受信したTSパケットをデコードする。このため、トランスポートストリーム再生処理部31に供給される再生クロックの周波数によって、デコード動作の速度が規定される。
【0067】
なお、上述の読み出し部は、トランスポートストリーム再生処理部31ではなく、MPEGデコーダ(#2)32内に設けてもよい。
【0068】
発振周波数制御電圧発生器25は、トランスポートストリーム再生処理部31内のバッファのフィルレベルがある一定の範囲内に保持されるように、そのバッファの現在のフィルレベルに応じて、再生クロック発生器26に供給すべき発振周波数制御電圧を生成する。トランスポートストリーム再生処理部31内のバッファのフィルレベルが基準値を超えると、発振周波数制御電圧発生器25から出力される発振周波数制御電圧の値は上昇する。一方、トランスポートストリーム再生処理部31内のバッファのフィルレベルが基準値を下回ると、発振周波数制御電圧発生器25から出力される発振周波数制御電圧の値は低下する。
【0069】
図10には、トランスポートストリーム再生処理部31の構成例が示されている。
【0070】
トランスポートストリーム再生処理部31は、第1のバッファ読み出し部311、トランスポートストリームバッファ(TSバッファ)312、および第2のバッファ読み出し部313を備えている。
【0071】
第1のバッファ読み出し部311は、ネットワーククライアント処理部23内の受信バッファ232からTSパケット群を読み出してTSバッファ312に格納する読み出し処理を実行する。この読み出し処理は、TSバッファ312に空きが有る場合に実行される。基本的には、ネットワーククライアント処理部23によってネットワーク10からTSパケットが受信される度に、その受信されたTSパケットがネットワーククライアント処理部23を介してネットワーククライアント処理部23に書き込まれる。
【0072】
TSバッファ312はネットワーク10から転送されるトランスポートストリームを一時的に格納するバッファであり、このTSバッファ312のフィルレベルは発振周波数制御電圧発生器25に送られる。
【0073】
第2のバッファ読み出し部313は、再生クロック発生器26から発生される再生クロックに同期して動作する。この第2のバッファ読み出し部313は、TSバッファ312からトランスポートストリームをリアルタイムに読み出して、MPEGデコーダ(#2)32に送出する。
【0074】
具体的には、第2のバッファ読み出し部313は、再生クロックに従って、TSバッファ312に格納されたトランスポートストリームを予め決められた特定のビットレートでTSバッファ312からMPEGデコーダ(#2)32に読み出す。このビットレートの値は、トランスポートストリームが再生されるべきフレームレートの値に等しい。これにより、ネットワーク10から受信中のトランスポートストリームが放送データのようなリアルタイムストリームおよび蓄積メディア13からの非リアルタイムストリームのどちらであっても、トランスポートストリームは、その再生レート(フレームレート)に等しいレートで、ほぼリアルタイムにTSバッファ312からMPEGデコーダ(#2)32に伝送される。
【0075】
また、もしネットワーク19から受信したトランスポートストリームを構成するTSパケットの各々がタイムスタンプ付きTSパケット(TTSパケット:Time stamped Transport Stream)であるならば、第2のバッファ読み出し部313は、TSバッファ312に格納されている各TTSパケットのタイムスタンプに従って、それら各TTSパケットの読み出しタイミングを決定する。すなわち、第2のバッファ読み出し部313には、再生クロックに同期してカウント動作を実行するタイミングカウンタ314が設けられている。第2のバッファ読み出し部313は、TSバッファ312に格納されたTTSパケット群の内、タイムスタンプの値がタイミングカウンタ314のカウント値に一致するTTSパケットのTSパケット部をTSバッファから読み出してMPEGデコーダ(#2)32に供給する。これにより、ネットワーク10から受信中のトランスポートストリームが放送データのようなリアルタイムストリームおよび蓄積メディア13からの非リアルタイムストリームのどちらであっても、トランスポートストリームは、その再生レートに等しいレートでリアルタイムにTSバッファ312からMPEGデコーダ(#2)32に伝送される。
【0076】
図11には、MPEGデコーダ(#2)32の構成例が示されている。
【0077】
MPEGデコーダ(#2)32は、デマルチプレクサ(TS Demux)321、ビデオバッファ322、ビデオデコーダ323、オーディオバッファ324、オーディオデコーダ325、比較器326、STCカウンタ328、およびクロック発振器327を備えている。
【0078】
デマルチプレクサ(TS Demux)321は、トランスポートストリーム再生処理部31から転送されるトランスポートストリームをビデオデータ(ビデオストリーム)とオーディオデータ(オーディオストリーム)とに分離する処理を実行する。この分離処理は、例えば、TSパケット単位で実行される。ビデオデータはビデオバッファ322に格納され、またオーディオデータはオーディオバッファ324に格納される。また、デマルチプレクサ(TS Demux)321は、時刻基準情報であるPCR(Program Clock Reference)を含むTSパケットをトランスポートストリーム再生処理部31から受信すると、そのTSパケットからPCRを抽出する。抽出されたPCRは、比較器326に送られる。
【0079】
ビデオデコーダ323は、ビデオバッファ322からビデオデータを読み出してデコードする。このビデオデコーダ323のデコード処理は、クロック発振器327からの27MHzのビデオクロックに同期して実行される。オーディオデコーダ325は、オーディオバッファ324からオーディオデータを読み出してデコードする。このオーディオデコーダ325のデコード処理は、クロック発振器327からのオーディオクロックに同期して実行される。
【0080】
STCカウンタ328は、クロック発振器327からの27MHzのクロック信号に同期してカウント動作を実行する。比較器326は、STCカウンタ328のカウント値とPCRの値とを比較し、STCカウンタ328のカウント値がPCRの値に一致するように、比較結果に基づいてクロック発振器327の発振周波数を制御する。
【0081】
次に、図12のフローチャートを参照して、システム制御部22によって実行されるクロック制御処理の手順の第3の例を説明する。このクロック制御処理は、図9のネットワーククライアント21の構成に対応するものである。
【0082】
システム制御部22は、ネットワーク10から受信したTSパケットにタイムスタンプが付加されている否かを判別する(ステップS301)。
【0083】
ネットワーク10から受信したTSパケットにタイムスタンプが付加されている場合、つまり受信したTSパケットがTTSパケットである場合には(ステップS301のYES)、システム制御部22は、TSバッファ312にある程度のデータが蓄積された状態でデコード処理が開始されるように、TSパケットに付加されたタイムスタンプの値よりも一定値だけ少ない値を第2のバッファ読み出し部313のタイミングカウンタ314にセットする。
【0084】
一方、ネットワーク10から受信したTSパケットにタイムスタンプが付加されていない場合には、システム制御部22は、TSバッファ312からトランスポートストリームを読み出すビットレートの値を第2のバッファ読み出し部313に指示すると共に、TSバッファ312に所定サイズのデータが蓄積されたタイミングで、第2のバッファ読み出し部313に対してトランスポートストリームの読み出し開始を指示する(ステップS303)。
【0085】
次いで、システム制御部22は、TSバッファ312に蓄積されているデータ量(バッファ占有量)を監視して、トランスポートストリームの受信が開始されてから所定の基準時間内にTSバッファ312が一杯になるか否かを判別する(ステップS304,S305)。基準時間の値は、TSバッファ312のバッファサイズ(容量)に応じて予め決められている。
【0086】
基準時間内にTSバッファ312が一杯になったならば(ステップS305のYES)、システム制御部22は、現在受信中のストリームが蓄積メディア13からの非リアルタイムストリームであると判断する。そして、システム制御部22は、MPEGデコーダ(#2)32のデコード動作速度が異常に加速されるのを防止するために、発振周波数制御スイッチ27によって固定値を選択する(ステップS306)。これにより、再生クロックの周波数は一定値に維持される。
【0087】
基準時間内にTSバッファ312が一杯にならなかったならば(ステップS305のNO)、システム制御部22は、現在受信中のストリームが放送データのようなリアルタイムストリームであると判断する。そして、システム制御部22は、ネットワークサーバ11からのリアルタイムストリームの送出タイミングにあわせて再生クロックを調整するために、発振周波数制御スイッチ27によって発振周波数制御電圧発生器25の出力を選択する(ステップS307)。これにより、再生クロックの周波数はネットワークサーバ11からのリアルタイムストリームの送出タイミングに合わされる。
【0088】
なお、TSバッファ312が実際に一杯になったかどうかではなく、リアルタイムストリームの受信を開始してから所定の時間内にTSバッファ312のフィルレベルがある基準値を超えるかどうかに応じて、受信中のストリームが非リアルタイムストリームおよびリアルタイムストリームのいずれであるかを判別してもよい。
【0089】
また、図7のフローチャートで説明したクロック制御処理の手順の第2の例を、図9のネットワーククライアント21に適用することもできる。
【0090】
図13には、ネットワーククライアント21の第3の構成例が示されている。
【0091】
このネットワーククライアント21においては、ネットワーククライアント処理部23の受信バッファ232のフィルレベルが発振周波数制御電圧発生器25に供給されている。他の構成は図1と同じである。
【0092】
次に、図14のフローチャートを参照して、システム制御部22によって実行されるクロック制御処理の手順の第4の例を説明する。このクロック制御処理は、図13のネットワーククライアント21の構成に対応するものである。
【0093】
システム制御部22は、ネットワーククライアント処理部23に設けられた受信バッファ232に蓄積されているデータ量(バッファ占有量)を監視して、トランスポートストリームの受信が開始されてから所定の基準時間内に受信バッファ232が一杯になるか否かを判別する(ステップS401,S402)。基準時間の値は、受信バッファ232のバッファサイズ(容量)に応じて予め決められている。
【0094】
基準時間内に受信バッファ232が一杯になったならば(ステップS402のYES)、システム制御部22は、現在受信中のストリームが蓄積メディア13からの非リアルタイムストリームであると判断する。そして、システム制御部22は、MPEGデコーダ(#1)24のデコード動作速度が異常に加速されるのを防止するために、発振周波数制御スイッチ27によって固定値を選択する(ステップS403)。これにより、再生クロックの周波数は一定値に維持される。
【0095】
基準時間内に受信バッファ232が一杯にならなかったならば(ステップS402のNO)、システム制御部22は、現在受信中のストリームが放送データのようなリアルタイムストリームであると判断する。そして、システム制御部22は、ネットワークサーバ11からのリアルタイムストリームの送出タイミングにあわせて再生クロックを調整するために、発振周波数制御スイッチ27によって発振周波数制御電圧発生器25の出力を選択する(ステップS404)。これにより、再生クロックの周波数はネットワークサーバ11からのリアルタイムストリームの送出タイミングに合わされる。
【0096】
なお、受信バッファ232が実際に一杯になったかどうかではなく、ストリームの受信が開始されてから所定の時間内に受信バッファ232のフィルレベルがある基準値を超えるかどうかに応じて、受信中のストリームが非リアルタイムストリームおよびリアルタイムストリームのいずれであるかを判別してもよい。
【0097】
また、図7のフローチャートで説明したクロック制御処理の手順の第2の例を、図13のネットワーククライアント21に適用することもできる。
【0098】
以上のように、本実施形態のネットワーククライアント21においては、ネットワーク10を介してネットワークサーバ11から転送されるストリームがリアルタイムストリームおよび非リアルタイムストリームのいずれであるかに応じて自動的にクロック制御方法が変更されるので、ネットワーク10を介して転送されるリアルタイムストリームおよび非リアルタイムストリームの双方を正しく再生することが可能となる。
【0099】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0100】
【図1】本発明の一実施形態に係る再生装置のシステム構成の第1の例を示すブロック図。
【図2】図1の再生装置に設けられたネットワーククライアント処理部の構成例を示すブロック図。
【図3】図1の再生装置に設けられたMPEGデコーダの構成例を示すブロック図。
【図4】図1の再生装置に設けられた発振周波数制御電圧発生器の構成例を示すブロック図。
【図5】図1の再生装置に設けられた再生クロック発生器の構成例を示すブロック図。
【図6】図1の再生装置に適用されるクロック制御処理の手順の第1の例を示すフローチャート。
【図7】図1の再生装置に適用されるクロック制御処理の手順の第2の例を示すフローチャート。
【図8】図1の再生装置によって受信されるIPパケットのデータ構造の例を示す図。
【図9】本発明の一実施形態に係る再生装置のシステム構成の第2の例を示すブロック図。
【図10】図9の再生装置に設けられたTS再生処理部の構成例を示すブロック図。
【図11】図9の再生装置に設けられたMPEGデコーダの構成例を示すブロック図。
【図12】図9の再生装置に適用されるクロック制御処理の手順の例を示すフローチャート。
【図13】本発明の一実施形態に係る再生装置のシステム構成の第3の例を示すブロック図。
【図14】図13の再生装置に適用されるクロック制御処理の手順の例を示すフローチャート。
【符号の説明】
【0101】
10…ネットワーク、11…ネットワークサーバ、12…放送受信部、13…蓄積メディア、14…ネットワークサーバ処理部、21…ネットワーククライアント、22…システム制御部、23…ネットワーククライアント処理部、24,32…MPEGデコーダ、25…発振周波数制御電圧発生器、26…再生クロック発生器、27…発振周波数制御スイッチ、31…TS再生処理部、232…受信バッファ、245…オーディオバッファ、312…TSバッファ。
【技術分野】
【0001】
本発明は圧縮符号化されたデータを再生する再生装置および同再生装置に適用されるデコード制御方法に関する。
【背景技術】
【0002】
近年、デジタル圧縮符号化されたオーディオ・ビデオ(AV)のようなデータストリームをネットワークを介してサーバからクライアントに伝送するシステムが開発されている。このシステムにおいては、たとえば、放送データのようなリアルタイムストリームが、ネットワークを介してサーバからクライアントに伝送される。
【0003】
また、最近では、放送データのようなリアルタイムストリームのみならず、蓄積メディアから任意の速度で読み出し可能な非リアルタイムストリームをネットワークを介してサーバからクライアントに伝送することも要求されている。
【0004】
特許文献1には、チューナから出力されるトランスポートストリームと蓄積メディアから読み出されるプログラムストリームの双方をデコードすることが可能なデジタル信号処理装置が開示されている。このデジタル信号処理装置においては、トランスポートストリームをデコードする場合には、デコード処理は、当該トランスポートストリームに含まれるプログラムクロックリファレンス(PCR)によって調整されたクロックに同期して実行される。一方、プログラムストリームをデコードする場合には、デコード処理は、別の安定したクロックに同期して実行される。
【特許文献1】特開2003−134468公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、上記特許文献1のデジタル信号処理装置においては、トランスポートストリーム/プログラムストリームの種別に応じてクロック制御方法が変更されるので、チューナから出力されるストリームと蓄積メディアから読み出されるストリームとが共にトランスポートストリームである場合には、それに対応することができない。
【0006】
たとえば、トランスポートストリームから構成される放送番組データを蓄積メディアに記録した場合には、蓄積メディアから読み出されるストリームもトランスポートストリームとなる。
【0007】
また上記特許文献1のデジタル信号処理装置はそのデジタル信号処理装置にそれぞれ設けられたチューナおよび蓄積メディアからのストリームをデコードするように設計されており、ネットワークを介してサーバから伝送されるトランスポートストリーム/プログラムストリームをデコードすることについては何等考慮されていない。
【0008】
ネットワークを介してストリームを伝送するシステムにおいては、ストリームを伝送する送信装置側のクロックと、ストリームをデコードする受信装置側のクロックとは互いに独立している。このため、受信装置側のクロックを送信装置側のクロックに同期させるためのクロック制御処理を実行することが必要となる。しかし、上述のプログラムクロックリファレンス(PCR)を利用した時刻合わせを利用することは実際上困難である。ネットワークを介したデータ伝送においては、遅延揺らぎにより、PCRを含むパケット毎に遅延時間が異なるというPCRジッタが発生するからである。
【0009】
このため、ネットワークを介してストリームを伝送するシステムにおいては、受信装置に設けられたバッファのフィルレベル(満ち具合)に応じて受信装置側のクロックを調整するというクロック制御処理を実行することが必要となる。バッファのフィルレベルが一定値よりも多い場合には受信装置側のクロック速度は早められ、逆にバッファのフィルレベルが一定値よりも少ない場合には受信装置側のクロック速度は遅くされる。
【0010】
もし、このクロック制御処理を実行しなかったならば、放送データのようなリアルタイムストリームについては、送信装置側のデータ送出速度と受信装置側のデコード速度との間にズレが生じ、これによって受信装置で画像および音声を正常にデコードおよび再生することができなくなる。
【0011】
たとえば、送信装置側のクロックと受信装置側のクロックとの間の誤差がMPEG(Moving Picture Experts Group)規格で許容されている30ppm(parts per million)である場合には、1000秒(16分)で1フレーム分(30msec)の画像ずれおよび音声ずれが生じることになる。
【0012】
一方、もしこのようなクロック制御処理を常に実行すると、今度は、蓄積メディアから読み出されるAVコンテンツを正常に再生することができなくなる。
【0013】
すなわち、蓄積メディアにはAVコンテンツを構成する全てのデータが予め存在しているので、受信装置側のバッファに空きがある限り、データは、そのAVコンテンツの本来の伝送レートよりも高速に送信装置側から受信装置側に転送される。このため、受信装置側のバッファは、常にある一定量を超えるデータが蓄積された状態となる。この場合、受信装置側のクロック速度はどんどん加速されていくので、受信装置側のクロックは、その発振可能周波数の最大値で発振するように制御されてしまい、これによりAVコンテンツが異常に早い速度で再生されてしまうことになる。
【0014】
本発明は上述の事情を考慮してなされたものであり、ネットワークを介して転送されるリアルタイムストリームおよび非リアルタイムストリームの双方を正しく再生することが可能な再生装置およびデコード制御方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
上述の課題を解決するため、本発明は、圧縮符号化されたデータを含むストリームを再生する再生装置において、前記ストリームの転送を指示するリクエストをネットワークを介してサーバに送信する手段と、前記ネットワークを介して前記サーバから転送される前記ストリームを受信する受信手段と、前記受信されたストリームを格納するバッファと、前記受信されたストリームを前記バッファから読み出してデコード処理を実行するデコーダと、前記デコード処理の速度を規定するクロック信号を発生するクロック発生器と、前記受信されたストリームが、当該ストリームに対応する伝送レートで前記サーバからリアルタイムに送出されるリアルタイムストリーム、および前記サーバの蓄積メディアに格納され、当該ストリームに対応する伝送レートよりも高速に前記サーバから送出される非リアルタイムストリームのいずれであるかを判別する判別手段と、前記受信されたストリームが前記リアルタイムストリームであることが判別された場合、前記バッファのフィルレベルに応じて前記クロック信号の周波数を変化させるクロック制御処理を実行し、前記受信されたストリームが前記非リアルタイムストリームであることが判別された場合、前記クロック信号の周波数を固定値に設定する処理を実行するクロック制御手段と具備することを特徴とする。
【発明の効果】
【0016】
本発明によれば、ネットワークを介して転送されるストリームがリアルタイムストリームおよび非リアルタイムストリームのいずれであるかに応じて自動的にクロック制御方法が変更されるので、ネットワークを介して転送されるリアルタイムストリームおよび非リアルタイムストリームの双方を正しく再生することが可能となる。
【発明を実施するための最良の形態】
【0017】
以下、図面を参照して、本発明の実施形態を説明する。
図1には、本発明の一実施形態に係る再生装置の構成が示されている。この再生装置は、ネットワークサーバ11との通信を実行可能なネットワーククライアント21として実現されている。ネットワークサーバ11およびネットワーククライアント21は、例えば家庭内のLAN(Local Area Network)のようなネットワーク10にそれぞれ接続されている。ネットワークサーバ11はホームネットワークシステムのサーバとして機能し、ネットワーククライアント21はホームネットワークシステムのクライアント端末として機能する。
【0018】
ネットワークサーバ11は、図示のように、放送受信部12、蓄積メディア13、およびネットワークサーバ処理部14から構成されている。放送受信部12は、TV番組のような放送番組データを受信する受信装置である。この放送受信部12は、例えば地上波デジタル放送のようなデジタル放送信号を受信し、そのデジタル放送信号からあるチャンネルの放送番組データに対応するトランスポートストリーム(TS)を取り出す。トランスポートストリームは、圧縮符号化された放送番組データを含む。このトランスポートストリームを構成するTSパケット群は、放送局から送信されるタイミングと同じタイミングで、放送受信部12からネットワークサーバ処理部14にリアルタイムに送出される。つまり、放送受信部12から出力されるトランスポートストリームは、その再生速度(フレームレート)に対応する伝送レートでネットワーク10を介してネットワーククライアント21にリアルタイムに転送されるリアルタイムストリームである。
【0019】
蓄積メディア13は圧縮符号化されたAVコンテンツを格納するストレージデバイスであり、例えば、ハードディスクドライブ(HDD)、DVD(Digital Versatile Disc)ドライブ等から構成されている。放送受信部12によって受信された放送番組データを蓄積メディア13に記録することも可能である。蓄積メディア13に格納されたAVコンテンツのストリームは、その再生速度に対応する本来の伝送レートとは関係なく蓄積メディア13から任意の速度で読み出し可能な非リアルタイムストリームである。ネットワーククライアント21からの要求を受けた場合、蓄積メディア13に格納されたAVコンテンツのストリームは、そのAVコンテンツの本来の伝送レートよりも高速にネットワーク10を介してネットワーククライアント21に伝送される。
【0020】
ネットワークサーバ処理部14は、例えばHTTP(Hyper Text Transfer Protocol)サーバとして機能する。このネットワークサーバ処理部14は、ネットワーククライアント21からのリクエストに従って、放送受信部12によって受信された現在放送中のコンテンツまたは蓄積メディア13に格納されているコンテンツをネットワーク10を介してネットワーククライアント21に転送する。
【0021】
ネットワーククライアント21からのリクエストは、再生対象コンテンツのストリームの転送をあるデータサイズ単位で要求する。現在放送中のコンテンツの転送が要求された場合、ネットワークサーバ処理部14は、放送受信部12からTSパケットを受信する度に、そのTSパケットをネットワーク10上に送出する。これにより、TSパケット群の各々は、放送局から送信されるタイミングと同じタイミングで、リアルタイムにネットワーク10上に送出される。この送出処理は、例えば、送出済みの総TSパケットのデータサイズが要求されたデータサイズに一致するまで、繰り返し実行される。
【0022】
一方、蓄積メディア13に格納されているコンテンツが要求された場合、ネットワークサーバ処理部14は、要求されたコンテンツのストリーム(トランスポートストリームTSまたはプログラムストリームPS)を蓄積メディア13から読み出す。プログラムストリームとしては、例えば、ビデオ・レコーディングフォーマット(VRフォーマット)を使用することができる。要求されたコンテンツのストリームを構成するパケット群(TSパケットまたはPSパケット)の全てが蓄積メディア13にすでに存在しているので、要求されたデータサイズ分のパケット群がネットワークサーバ処理部14に即座に読み出される。ネットワークサーバ処理部14は、読み出されたパケット群をネットワーク10を介してネットワーククライアント21に順次転送する。これにより、転送が要求されたストリームを構成するパケット群は、それらパケット群の各々の再生タイミングとは無関係に、即座にネットワーククライアント21に転送される。
【0023】
ネットワーク10を介して伝送される各パケットは、IPパケットである。このため、各TS/PSパケットは、IPパケットに変換される。IPパケットのペイロード部にはTS/PSパケットが収容される。
【0024】
以下では、蓄積メディア13から読み出されるストリームが、トランスポートストリームである場合を想定する。
【0025】
ネットワーククライアント21は、圧縮符号化されたAVデータを含むストリームを再生する装置である。このネットワーククライアント21は、システム制御部22、ネットワーククライアント処理部23、MPEG(Moving Picture Experts Group)デコーダ(#1)24、発振周波数制御電圧発生器25、発振周波数制御スイッチ27、および再生クロック発生器26から構成されている。
【0026】
システム制御部22は、ネットワーククライアント21の動作を制御する。このシステム制御部22は、ネットワークサーバ11から転送されるストリームが放送データのようなリアルタイムストリームおよびネットワークサーバ11の蓄積メディア13から読み出される非リアルタイムストリームのいずれであるかを判別する機能を有している。さらに、システム制御部22は、リアルタイムストリーム/非リアルタイムストリームの判別結果に応じて、再生クロック発生器26の制御方法を切り替える機能を有している。
【0027】
ネットワーククライアント処理部23は、ネットワーク10を介してネットワークサーバ11との通信を実行する。ネットワークサーバ11から転送されるストリームは、ネットワーククライアント処理部23によって受信される。MPEGデコーダ(#1)24は、ネットワーククライアント処理部23によって受信されたストリームをデコードする。このMPEGデコーダ(#1)24は、受信されたストリームを一時的に格納するバッファと、そのバッファからストリームを読み出してデコードするデコード処理ユニットとを備えている。
【0028】
発振周波数制御電圧発生器25は、MPEGデコーダ(#1)24内のバッファのフィルレベル(FILL Level)に応じて、再生クロック発生器26に供給すべき発振周波数制御電圧を生成する。バッファのフィルレベルは、例えば、システム制御部22によって検出される。バッファのフィルレベルは、バッファが受信されたストリームによって満たされている程度を示す値である。バッファのフィルレベルは、バッファがどの程度の割合で満たされているかを示す相対値、あるいはバッファの残容量を示す絶対値によって表すことができる。また、バッファの残容量の代わりに、バッファに蓄積されているデータ量を示す絶対値をフィルレベルとして用いることもできる。
【0029】
バッファのフィルレベルが基準値を超えると、発振周波数制御電圧発生器25から出力される発振周波数制御電圧の値は上昇する。一方、バッファのフィルレベルが基準値を下回ると、発振周波数制御電圧発生器25から出力される発振周波数制御電圧の値は低下する。
【0030】
発振周波数制御スイッチ27は、システム制御部22の制御の下、再生クロック発生器26に供給される発振周波数制御電圧を、発振周波数制御電圧発生器25からの出力値と固定値との間で切り替える。再生クロック発生器26は、MPEGデコーダ(#1)24のデコード動作の速度を規定するクロック信号(再生クロック)を発生する。この再生クロック発生器26は、電圧制御水晶発振器(VCXO: Voltage Controlled Crystal Oscillator)を用いて構成されている。再生クロック発生器26の発振周波数は、再生クロック発生器26に入力される発振周波数制御電圧の値によって変化する。発振周波数制御電圧の値が高くなるほど、再生クロック発生器26の発振周波数は高くなり、これによりクロック信号(再生クロック)の周波数は増加する。
【0031】
受信したストリームが放送受信部12からのリアルタイムストリームである場合には、発振周波数制御スイッチ27は、システム制御部22の制御の下、発振周波数制御電圧発生器25の出力値を選択する。これにより、再生クロックの周波数は、バッファのフィルレベルがある一定の範囲内に保たれるように現在のバッファのフィルレベルに応じて調整されるので、ネットワークサーバ11からのリアルタイムストリームの送出タイミングとMPEGデコーダ(#1)24のデコード動作タイミングとの間の同期を実現することができる。
【0032】
一方、受信したストリームが蓄積メディア13からの非リアルタイムストリームである場合には、発振周波数制御スイッチ27は、システム制御部22の制御の下、固定値を選択する。これにより、再生クロックの周波数は、バッファのフィルレベルによらずに、常に一定値に維持される。よって、たとえバッファのフィルレベルが基準値を超えても再生クロックの周波数は増加しないので、MPEGデコーダ(#1)24のデコード動作速度がどんどん加速されていくという不具合の発生を防止することができる。
【0033】
このように、本実施形態においては、ネットワーク10を介して転送されるストリームが、現在放送中の放送番組データのように当該データに対応する伝送レートでリアルタイムにサーバ11から送出されるリアルタイムストリーム、および蓄積メディアに格納され、当該データに対応する伝送レートよりも高速にサーバ11から送出される非リアルタイムストリームのいずれであるかに応じて自動的にクロック制御方法が変更される。したがって、リアルタイムストリームおよび非リアルタイムストリームの双方を正しく再生することが可能となる。
【0034】
図2には、ネットワーククライアント処理部23の構成例が示されている。
【0035】
ネットワーククライアント処理部23は、受信部231、受信バッファ232、およびリクエスト送出部233を備えている。受信部231は、ネットワーク10からIPパケットを受信する。この場合、受信部231は、受信したIPパケットのヘッダを解析して、その受信したIPパケットが、ネットワーククライアント21に割り当てられたIPアドレスを転送先アドレスとして含むIPパケットであるか否かを判別する。ネットワーククライアント21に割り当てられたIPアドレスを転送先アドレスとして含むIPパケットであれば、受信部231は、そのIPパケットのペイロード部に含まれるTSパケットを受信バッファ232に格納する。リクエスト送出部233は、再生対象データの転送を指示するリクエストをネットワーク10を介してネットワークサーバ11に送信する。このリクエストには、再生対象データのコンテンツ名を指定する情報、転送データサイズを指定する情報等が含まれている。リクエストは、例えば、受信バッファ232に所定の空き容量がある場合に送出される。
【0036】
図3には、MPEGデコーダ(#1)24の構成例が示されている。
【0037】
このMPEGデコーダ(#1)24は、バッファ読取り部241、デマルチプレクサ(TS Demux)242、ビデオバッファ243、ビデオデコーダ244、オーディオバッファ245、およびオーディオデコーダ246を備えている。
【0038】
バッファ読取り部241は、ネットワーククライアント処理部23の受信バッファ241からトランスポートストリームを読み出し、デマルチプレクサ(TS Demux)242に送出する。受信バッファ241からのトランスポートストリームの読み出しは、例えば、オーディオバッファ245およびオーディオデコーダ246それぞれに所定の空き容量がある場合に実行される。
【0039】
デマルチプレクサ(TS Demux)242は、トランスポートストリームをビデオデータ(ビデオストリーム)とオーディオデータ(オーディオストリーム)とに分離する処理を実行する。この分離処理は、例えば、TSパケット単位で実行される。ビデオデータはビデオバッファ243に格納され、またオーディオデータはオーディオバッファ245に格納される。
【0040】
ビデオデコーダ244は、ビデオバッファ243からビデオデータを読み出してデコードする。このビデオデコーダ244は、上述の再生クロックとしてビデオクロックを受信し、そのビデオクロックに同期してビデオデータのデコード処理を実行する。ビデオデコーダ244には、ビデオクロックに同期してカウント動作を実行するSTC(System Time Clock)カウンタ247が設けられている。ビデオデコーダ244のデコード処理のタイミングは、STCカウンタ247のカウンタ値によって制御される。
【0041】
オーディオデコーダ246は、オーディオバッファ245からオーディオデータを読み出してデコードする。このオーディオデコーダ246は、上述の再生クロックとしてオーディオクロックを受信し、そのオーディオクロックに同期してオーディオデータのデコード処理を実行する。オーディオデコーダ246には、オーディオクロックに同期してカウント動作を実行するSTC(System Time Clock)カウンタ248が設けられている。オーディオデコーダ246のデコード処理のタイミングは、STCカウンタ248のカウンタ値によって制御される。
【0042】
この図3のMPEGデコーダ(#1)24においては、ビデオバッファ243およびオーディオバッファ245は、ネットワーク10から受信したトランスポートストリームを一時格納するための上述のバッファとしてそれぞれ機能する。本実施形態では、これらビデオバッファ243およびオーディオバッファ245の内、オーディオバッファ245のフィルレベルの変化をクロック制御処理に利用する。
【0043】
ビデオデータは可変レート符号化によって圧縮符号化されているので、そのビデオデータのデータ量は例えばシーン毎に変化する。このため、MPEGデコーダ(#1)24がリアルタイムストリームをデコードしている場合には、ビデオバッファ243のフィルレベルは、クロックずれのみならず、再生中のシーンによっても変化する。これに対し、オーディオデータは固定ビットレート符号化によって圧縮符号化されているので、オーディオバッファ245のビデオデータの変化は、クロックずれのみに依存する。よって、オーディオバッファ245のフィルレベルをクロック制御処理に利用することにより、より精度よく再生クロックを調整することが可能となる。
【0044】
図4には、発振周波数制御電圧発生器25の構成例が示されている。
【0045】
発振周波数制御電圧発生器25は、比較器251およびループフィルタ252を備えている。比較器251は、オーディオバッファ245のフィルレベルと基準値とを比較して、その差分値に対応する電圧を出力する。オーディオバッファ245のフィルレベルとしては、例えば、オーディオバッファ245の残容量を示す値を使用することができる。ループフィルタ252はローパスフィルタとして機能し、比較器251の出力を平滑化することによって発振周波数制御電圧を生成する。
【0046】
図5には、再生クロック発生器26の構成例が示されている。
【0047】
再生クロック発生器26は、電圧制御水晶発振器(VCXO: Voltage Controlled Crystal Oscillator)261およびPLL(Phase Locked Loop)回路262から構成されている。電圧制御水晶発振器(VCXO)261は、27MHzで発振する水晶発振器であり、27MHzのクロック信号をビデオクロックとして発生する。PLL回路262は、27MHzのクロック信号からオーディオクロックを生成する。オーディオクロックの周波数は、例えば、オーディオデータのサンプリング周波数の32倍程度の値である。
【0048】
次に、図6のフローチャートを参照して、システム制御部22によって実行されるクロック制御処理の手順の第1の例を説明する。
【0049】
トランスポートストリームの受信が開始されると、システム制御部22は、まず、ビデオデコーダ244のSTCカウンタ247およびオーディオデコーダ246のSTCカウンタ248を初期設定する処理を実行する(ステップS101)。このステップS101においては、システム制御部22は、ビデオバッファ243およびオーディオバッファ245にそれぞれある程度のデータ量が蓄積された状態でデコード処理が開始されるように、以下の処理を実行する。
【0050】
システム制御部22は、ビデオバッファ243およびオーディオバッファ245に格納されたビデオストリームおよびオーディオストリームからそれぞれPTS(Presentation Time Stamp)を抽出する。これらPTSは、ビデオデータとオーディオデータとを同期して再生するために用いられる時間情報である。ビデオストリームに含まれるPTSはビデオデータが再生されるべき提示時刻を示し、オーディオストリームに含まれるPTSはオーディオデータが再生されるべき提示時刻を示す。
【0051】
システム制御部22は、ビデオストリームから抽出したPTSの値よりも一定値だけ少ない値をビデオデコーダ244のSTCカウンタ247に現在のSTCカウント値としてセットすると共に、オーディオストリームから抽出したPTSの値よりも一定値だけ少ない値をオーディオコーダ246のSTCカウンタ248に現在のSTCカウント値としてセットする。
【0052】
STCカウンタ247のカウント動作が進み、そのSTCカウント値がビデオバッファ243に格納されているビデオデータのPTSに一致した時に、ビデオデコーダ244は、該当するビデオデータのデコードおよび再生を実行する。同様に、STCカウンタ248のカウント動作が進み、そのSTCカウント値がオーディオバッファ245に格納されているオーディオデータのPTSに一致した時に、オーディオデコーダ246は、該当するオーディオデータのデコードおよび再生を実行する。このため、ステップS101の処理により、ビデオバッファ243およびオーディオバッファ245にそれぞれある程度のデータ量が蓄積された状態で、デコード処理を開始することが可能となる。
【0053】
次いで、システム制御部22は、オーディオバッファ245に蓄積されているデータ量(バッファ占有量)を監視して、トランスポートストリームの受信が開始されてから所定の基準時間内にオーディオバッファ245が一杯になるか否かを判別する(ステップS102,S103)。基準時間の値は、オーディオバッファ245のバッファサイズ(容量)に応じて予め決められている。たとえば、オーディオバッファ245のバッファサイズが3秒分の再生時間に対応するオーディオデータを蓄積するサイズを有している場合には、基準時間の値は、3秒よりも少ない値、たとえば1.5秒程度の値に設定される。
【0054】
もし受信中のストリームが放送データのようなリアルタイムストリームであれば、オーディオバッファ245が一杯になるまでには少なくとも3秒を要することとなる。よって、基準時間内にオーディオバッファ245が一杯になることはない。
【0055】
一方、もし受信中のストリームが蓄積メディア13から読み出される非リアルタイムストリームであれば、オーディオバッファ245に空きがある限り、オーディオデータがオーディオバッファ245に順次書き込まれる。このため、基準時間内にオーディオバッファ245が一杯になる。
【0056】
基準時間内にオーディオバッファ245が一杯になったならば(ステップS103のYES)、システム制御部22は、現在受信中のストリームが蓄積メディア13からの非リアルタイムストリームであると判断する。そして、システム制御部22は、MPEGデコーダ(#1)24のデコード動作速度が異常に加速されるのを防止するために、発振周波数制御スイッチ27によって固定値を選択する(ステップS104)。これにより、再生クロックの周波数は一定値に維持される。
【0057】
基準時間内にオーディオバッファ245が一杯にならなかったならば(ステップS103のNO)、システム制御部22は、現在受信中のストリームが放送データのようなリアルタイムストリームであると判断する。そして、システム制御部22は、オーディオバッファ245のフィルレベルに応じて再生クロックの周波数を調整するために、発振周波数制御スイッチ27によって発振周波数制御電圧発生器25の出力を選択する(ステップS104)。これにより、再生クロックの周波数は、ネットワークサーバ11からのリアルタイムストリームの伝送速度に合わされる。
【0058】
なお、オーディオバッファ245が実際に一杯になったかどうかではなく、ストリームの受信を開始してから所定の時間内にオーディオバッファ245のフィルレベルがある基準値を超えるかどうかに応じて、受信中のストリームが非リアルタイムストリームおよびリアルタイムストリームのいずれであるかを判別してもよい。
【0059】
次に、図7のフローチャートを参照して、システム制御部22によって実行されるクロック制御処理の手順の第2の例を説明する。
【0060】
システム制御部22は、ネットワーククライアント処理部23と共同して、受信したIPパケットのヘッダ部を解析することにより、受信したIPパケットからフラグを抽出する(ステップS201)。このフラグは、当該IPパケットのペイロード部に含まれるデータが放送データのようなリアルタイムストリームおよび蓄積メディア13から読み出された非リアルタイムストリームのいずれであるかを示す識別情報である。このフラグは、ネットワークサーバ11のネットワークサーバ処理部14によって各IPパケットに挿入される。フラグは、図8に示すように、IPヘッダ部、HTTPヘッダ部、あるいはペイロード部内に確保されたリザーブエリアに記述されている。
【0061】
システム制御部22は、フラグに基づいて、現在受信中のストリームが放送データのようなリアルタイムストリームおよび蓄積メディア13からの非リアルタイムストリームのいずれであるかを判別する(ステップS202)。
【0062】
現在受信中のストリームが蓄積メディア13からの非リアルタイムストリームであれば(ステップS203のNO)、システム制御部22は、MPEGデコーダ(#1)24のデコード動作速度が異常に加速されるのを防止するために、発振周波数制御スイッチ27によって固定値を選択する(ステップS203)。これにより、再生クロックの周波数は一定値に維持される。
【0063】
一方、現在受信中のストリームが放送データのようなリアルタイムストリームであれば(ステップS203のYES)、システム制御部22は、オーディオバッファ245のフィルレベルに応じて再生クロックの周波数を調整するために、発振周波数制御スイッチ27によって発振周波数制御電圧発生器25の出力を選択する(ステップS204)。これにより、再生クロックの周波数はネットワークサーバ11からのリアルタイムストリームの伝送速度に合わされる。
【0064】
図9には、ネットワーククライアント21の第2の構成例が示されている。
【0065】
このネットワーククライアント21においては、図1のMPEGデコーダ(#1)24の代わりに、トランスポートストリーム(TS)再生処理部31およびMPEGデコーダ(#2)32が設けられている。
【0066】
トランスポートストリーム再生処理部31は、受信されたトランスポートストリームを一時的に格納するバッファと、そのバッファに格納されたトランスポートストリームをリアルタイムに当該バッファからMPEGデコーダ(#2)32に読み出すための読み出し部とを備えている。この読み出し部は、再生クロック発生器26から発生される再生クロックに同期して動作する。MPEGデコーダ(#2)32はトランスポートストリーム再生処理部31からリアルタイムに伝送されるトランスポートストリームをデコードするように構成されており、トランスポートストリーム再生処理部31からTSパケットを受信する度に、その受信したTSパケットをデコードする。このため、トランスポートストリーム再生処理部31に供給される再生クロックの周波数によって、デコード動作の速度が規定される。
【0067】
なお、上述の読み出し部は、トランスポートストリーム再生処理部31ではなく、MPEGデコーダ(#2)32内に設けてもよい。
【0068】
発振周波数制御電圧発生器25は、トランスポートストリーム再生処理部31内のバッファのフィルレベルがある一定の範囲内に保持されるように、そのバッファの現在のフィルレベルに応じて、再生クロック発生器26に供給すべき発振周波数制御電圧を生成する。トランスポートストリーム再生処理部31内のバッファのフィルレベルが基準値を超えると、発振周波数制御電圧発生器25から出力される発振周波数制御電圧の値は上昇する。一方、トランスポートストリーム再生処理部31内のバッファのフィルレベルが基準値を下回ると、発振周波数制御電圧発生器25から出力される発振周波数制御電圧の値は低下する。
【0069】
図10には、トランスポートストリーム再生処理部31の構成例が示されている。
【0070】
トランスポートストリーム再生処理部31は、第1のバッファ読み出し部311、トランスポートストリームバッファ(TSバッファ)312、および第2のバッファ読み出し部313を備えている。
【0071】
第1のバッファ読み出し部311は、ネットワーククライアント処理部23内の受信バッファ232からTSパケット群を読み出してTSバッファ312に格納する読み出し処理を実行する。この読み出し処理は、TSバッファ312に空きが有る場合に実行される。基本的には、ネットワーククライアント処理部23によってネットワーク10からTSパケットが受信される度に、その受信されたTSパケットがネットワーククライアント処理部23を介してネットワーククライアント処理部23に書き込まれる。
【0072】
TSバッファ312はネットワーク10から転送されるトランスポートストリームを一時的に格納するバッファであり、このTSバッファ312のフィルレベルは発振周波数制御電圧発生器25に送られる。
【0073】
第2のバッファ読み出し部313は、再生クロック発生器26から発生される再生クロックに同期して動作する。この第2のバッファ読み出し部313は、TSバッファ312からトランスポートストリームをリアルタイムに読み出して、MPEGデコーダ(#2)32に送出する。
【0074】
具体的には、第2のバッファ読み出し部313は、再生クロックに従って、TSバッファ312に格納されたトランスポートストリームを予め決められた特定のビットレートでTSバッファ312からMPEGデコーダ(#2)32に読み出す。このビットレートの値は、トランスポートストリームが再生されるべきフレームレートの値に等しい。これにより、ネットワーク10から受信中のトランスポートストリームが放送データのようなリアルタイムストリームおよび蓄積メディア13からの非リアルタイムストリームのどちらであっても、トランスポートストリームは、その再生レート(フレームレート)に等しいレートで、ほぼリアルタイムにTSバッファ312からMPEGデコーダ(#2)32に伝送される。
【0075】
また、もしネットワーク19から受信したトランスポートストリームを構成するTSパケットの各々がタイムスタンプ付きTSパケット(TTSパケット:Time stamped Transport Stream)であるならば、第2のバッファ読み出し部313は、TSバッファ312に格納されている各TTSパケットのタイムスタンプに従って、それら各TTSパケットの読み出しタイミングを決定する。すなわち、第2のバッファ読み出し部313には、再生クロックに同期してカウント動作を実行するタイミングカウンタ314が設けられている。第2のバッファ読み出し部313は、TSバッファ312に格納されたTTSパケット群の内、タイムスタンプの値がタイミングカウンタ314のカウント値に一致するTTSパケットのTSパケット部をTSバッファから読み出してMPEGデコーダ(#2)32に供給する。これにより、ネットワーク10から受信中のトランスポートストリームが放送データのようなリアルタイムストリームおよび蓄積メディア13からの非リアルタイムストリームのどちらであっても、トランスポートストリームは、その再生レートに等しいレートでリアルタイムにTSバッファ312からMPEGデコーダ(#2)32に伝送される。
【0076】
図11には、MPEGデコーダ(#2)32の構成例が示されている。
【0077】
MPEGデコーダ(#2)32は、デマルチプレクサ(TS Demux)321、ビデオバッファ322、ビデオデコーダ323、オーディオバッファ324、オーディオデコーダ325、比較器326、STCカウンタ328、およびクロック発振器327を備えている。
【0078】
デマルチプレクサ(TS Demux)321は、トランスポートストリーム再生処理部31から転送されるトランスポートストリームをビデオデータ(ビデオストリーム)とオーディオデータ(オーディオストリーム)とに分離する処理を実行する。この分離処理は、例えば、TSパケット単位で実行される。ビデオデータはビデオバッファ322に格納され、またオーディオデータはオーディオバッファ324に格納される。また、デマルチプレクサ(TS Demux)321は、時刻基準情報であるPCR(Program Clock Reference)を含むTSパケットをトランスポートストリーム再生処理部31から受信すると、そのTSパケットからPCRを抽出する。抽出されたPCRは、比較器326に送られる。
【0079】
ビデオデコーダ323は、ビデオバッファ322からビデオデータを読み出してデコードする。このビデオデコーダ323のデコード処理は、クロック発振器327からの27MHzのビデオクロックに同期して実行される。オーディオデコーダ325は、オーディオバッファ324からオーディオデータを読み出してデコードする。このオーディオデコーダ325のデコード処理は、クロック発振器327からのオーディオクロックに同期して実行される。
【0080】
STCカウンタ328は、クロック発振器327からの27MHzのクロック信号に同期してカウント動作を実行する。比較器326は、STCカウンタ328のカウント値とPCRの値とを比較し、STCカウンタ328のカウント値がPCRの値に一致するように、比較結果に基づいてクロック発振器327の発振周波数を制御する。
【0081】
次に、図12のフローチャートを参照して、システム制御部22によって実行されるクロック制御処理の手順の第3の例を説明する。このクロック制御処理は、図9のネットワーククライアント21の構成に対応するものである。
【0082】
システム制御部22は、ネットワーク10から受信したTSパケットにタイムスタンプが付加されている否かを判別する(ステップS301)。
【0083】
ネットワーク10から受信したTSパケットにタイムスタンプが付加されている場合、つまり受信したTSパケットがTTSパケットである場合には(ステップS301のYES)、システム制御部22は、TSバッファ312にある程度のデータが蓄積された状態でデコード処理が開始されるように、TSパケットに付加されたタイムスタンプの値よりも一定値だけ少ない値を第2のバッファ読み出し部313のタイミングカウンタ314にセットする。
【0084】
一方、ネットワーク10から受信したTSパケットにタイムスタンプが付加されていない場合には、システム制御部22は、TSバッファ312からトランスポートストリームを読み出すビットレートの値を第2のバッファ読み出し部313に指示すると共に、TSバッファ312に所定サイズのデータが蓄積されたタイミングで、第2のバッファ読み出し部313に対してトランスポートストリームの読み出し開始を指示する(ステップS303)。
【0085】
次いで、システム制御部22は、TSバッファ312に蓄積されているデータ量(バッファ占有量)を監視して、トランスポートストリームの受信が開始されてから所定の基準時間内にTSバッファ312が一杯になるか否かを判別する(ステップS304,S305)。基準時間の値は、TSバッファ312のバッファサイズ(容量)に応じて予め決められている。
【0086】
基準時間内にTSバッファ312が一杯になったならば(ステップS305のYES)、システム制御部22は、現在受信中のストリームが蓄積メディア13からの非リアルタイムストリームであると判断する。そして、システム制御部22は、MPEGデコーダ(#2)32のデコード動作速度が異常に加速されるのを防止するために、発振周波数制御スイッチ27によって固定値を選択する(ステップS306)。これにより、再生クロックの周波数は一定値に維持される。
【0087】
基準時間内にTSバッファ312が一杯にならなかったならば(ステップS305のNO)、システム制御部22は、現在受信中のストリームが放送データのようなリアルタイムストリームであると判断する。そして、システム制御部22は、ネットワークサーバ11からのリアルタイムストリームの送出タイミングにあわせて再生クロックを調整するために、発振周波数制御スイッチ27によって発振周波数制御電圧発生器25の出力を選択する(ステップS307)。これにより、再生クロックの周波数はネットワークサーバ11からのリアルタイムストリームの送出タイミングに合わされる。
【0088】
なお、TSバッファ312が実際に一杯になったかどうかではなく、リアルタイムストリームの受信を開始してから所定の時間内にTSバッファ312のフィルレベルがある基準値を超えるかどうかに応じて、受信中のストリームが非リアルタイムストリームおよびリアルタイムストリームのいずれであるかを判別してもよい。
【0089】
また、図7のフローチャートで説明したクロック制御処理の手順の第2の例を、図9のネットワーククライアント21に適用することもできる。
【0090】
図13には、ネットワーククライアント21の第3の構成例が示されている。
【0091】
このネットワーククライアント21においては、ネットワーククライアント処理部23の受信バッファ232のフィルレベルが発振周波数制御電圧発生器25に供給されている。他の構成は図1と同じである。
【0092】
次に、図14のフローチャートを参照して、システム制御部22によって実行されるクロック制御処理の手順の第4の例を説明する。このクロック制御処理は、図13のネットワーククライアント21の構成に対応するものである。
【0093】
システム制御部22は、ネットワーククライアント処理部23に設けられた受信バッファ232に蓄積されているデータ量(バッファ占有量)を監視して、トランスポートストリームの受信が開始されてから所定の基準時間内に受信バッファ232が一杯になるか否かを判別する(ステップS401,S402)。基準時間の値は、受信バッファ232のバッファサイズ(容量)に応じて予め決められている。
【0094】
基準時間内に受信バッファ232が一杯になったならば(ステップS402のYES)、システム制御部22は、現在受信中のストリームが蓄積メディア13からの非リアルタイムストリームであると判断する。そして、システム制御部22は、MPEGデコーダ(#1)24のデコード動作速度が異常に加速されるのを防止するために、発振周波数制御スイッチ27によって固定値を選択する(ステップS403)。これにより、再生クロックの周波数は一定値に維持される。
【0095】
基準時間内に受信バッファ232が一杯にならなかったならば(ステップS402のNO)、システム制御部22は、現在受信中のストリームが放送データのようなリアルタイムストリームであると判断する。そして、システム制御部22は、ネットワークサーバ11からのリアルタイムストリームの送出タイミングにあわせて再生クロックを調整するために、発振周波数制御スイッチ27によって発振周波数制御電圧発生器25の出力を選択する(ステップS404)。これにより、再生クロックの周波数はネットワークサーバ11からのリアルタイムストリームの送出タイミングに合わされる。
【0096】
なお、受信バッファ232が実際に一杯になったかどうかではなく、ストリームの受信が開始されてから所定の時間内に受信バッファ232のフィルレベルがある基準値を超えるかどうかに応じて、受信中のストリームが非リアルタイムストリームおよびリアルタイムストリームのいずれであるかを判別してもよい。
【0097】
また、図7のフローチャートで説明したクロック制御処理の手順の第2の例を、図13のネットワーククライアント21に適用することもできる。
【0098】
以上のように、本実施形態のネットワーククライアント21においては、ネットワーク10を介してネットワークサーバ11から転送されるストリームがリアルタイムストリームおよび非リアルタイムストリームのいずれであるかに応じて自動的にクロック制御方法が変更されるので、ネットワーク10を介して転送されるリアルタイムストリームおよび非リアルタイムストリームの双方を正しく再生することが可能となる。
【0099】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0100】
【図1】本発明の一実施形態に係る再生装置のシステム構成の第1の例を示すブロック図。
【図2】図1の再生装置に設けられたネットワーククライアント処理部の構成例を示すブロック図。
【図3】図1の再生装置に設けられたMPEGデコーダの構成例を示すブロック図。
【図4】図1の再生装置に設けられた発振周波数制御電圧発生器の構成例を示すブロック図。
【図5】図1の再生装置に設けられた再生クロック発生器の構成例を示すブロック図。
【図6】図1の再生装置に適用されるクロック制御処理の手順の第1の例を示すフローチャート。
【図7】図1の再生装置に適用されるクロック制御処理の手順の第2の例を示すフローチャート。
【図8】図1の再生装置によって受信されるIPパケットのデータ構造の例を示す図。
【図9】本発明の一実施形態に係る再生装置のシステム構成の第2の例を示すブロック図。
【図10】図9の再生装置に設けられたTS再生処理部の構成例を示すブロック図。
【図11】図9の再生装置に設けられたMPEGデコーダの構成例を示すブロック図。
【図12】図9の再生装置に適用されるクロック制御処理の手順の例を示すフローチャート。
【図13】本発明の一実施形態に係る再生装置のシステム構成の第3の例を示すブロック図。
【図14】図13の再生装置に適用されるクロック制御処理の手順の例を示すフローチャート。
【符号の説明】
【0101】
10…ネットワーク、11…ネットワークサーバ、12…放送受信部、13…蓄積メディア、14…ネットワークサーバ処理部、21…ネットワーククライアント、22…システム制御部、23…ネットワーククライアント処理部、24,32…MPEGデコーダ、25…発振周波数制御電圧発生器、26…再生クロック発生器、27…発振周波数制御スイッチ、31…TS再生処理部、232…受信バッファ、245…オーディオバッファ、312…TSバッファ。
【特許請求の範囲】
【請求項1】
圧縮符号化されたデータを含むストリームを再生する再生装置において、
前記ストリームの転送を指示するリクエストをネットワークを介してサーバに送信する手段と、
前記ネットワークを介して前記サーバから転送される前記ストリームを受信する受信手段と、
前記受信されたストリームを格納するバッファと、
前記受信されたストリームを前記バッファから読み出してデコード処理を実行するデコーダと、
前記デコード処理の速度を規定するクロック信号を発生するクロック発生器と、
前記受信されたストリームが、当該ストリームに対応する伝送レートで前記サーバからリアルタイムに送出されるリアルタイムストリーム、および前記サーバの蓄積メディアに格納され、当該ストリームに対応する伝送レートよりも高速に前記サーバから送出される非リアルタイムストリームのいずれであるかを判別する判別手段と、
前記受信されたストリームが前記リアルタイムストリームであることが判別された場合、前記バッファのフィルレベルに応じて前記クロック信号の周波数を変化させるクロック制御処理を実行し、前記受信されたストリームが前記非リアルタイムストリームであることが判別された場合、前記クロック信号の周波数を固定値に設定する処理を実行するクロック制御手段と具備することを特徴とする再生装置。
【請求項2】
前記判別手段は、前記ストリームの受信が開始されてから所定時間内に前記バッファのフィルレベルが基準値を超えるか否かに応じて、前記受信されたストリームが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを判別する手段を含むことを特徴とする請求項1記載の再生装置。
【請求項3】
前記受信されたストリームをオーディオデータとビデオデータとに分離する手段をさらに具備し、
前記バッファは、前記分離されたオーディオデータを格納するオーディオバッファであり、前記判別手段は、前記ストリームの受信が開始されてから所定時間内に前記オーディオバッファのフィルレベルが基準値を超えるか否かに応じて、前記受信されたストリームが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを判別することを特徴とする請求項1記載の再生装置。
【請求項4】
前記オーディオデータは固定ビットレート符号化によって圧縮符号化されていることを特徴とする請求項3記載の再生装置。
【請求項5】
前記クロック信号に同期して動作し、前記受信されたストリームを特定のビットレートで前記バッファから前記デコーダに読み出す手段をさらに具備し、
前記判別手段は、前記ストリームの受信が開始されてから所定時間内に前記バッファのフィルレベルが基準値を超えるか否かに応じて、前記受信されたストリームが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを判別することを特徴とする請求項1記載の再生装置。
【請求項6】
前記受信されたストリームは、各々にタイムスタンプが付加されたパケット群を含むトランスポートストリームであり、
前記クロック信号に同期してカウント動作を実行するカウンタを有し、前記バッファに格納されたパケット群の内、タイムスタンプの値が前記カウンタのカウント値に一致するパケットを前記バッファから前記デコーダに読み出す手段をさらに具備し、
前記判別手段は、前記ストリームの受信が開始されてから所定時間内に前記バッファのフィルレベルが基準値を超えるか否かに応じて、前記受信されたストリームが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを判別することを特徴とする請求項1記載の再生装置。
【請求項7】
前記圧縮符号化されたデータは、ヘッダ部とペイロード部とを各々が含むパケット群によって前記サーバから転送され、前記各パケットのヘッダ部およびペイロード部のいずれか一方には、前記圧縮符号化されたデータが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを示す識別情報が含まれており、
前記判別手段は、前記識別情報に基づいて、前記受信されたストリームが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを判別する手段を含むことを特徴とする請求項1記載の再生装置。
【請求項8】
圧縮符号化されたデータのデコード処理を制御するデコード制御方法であって、
前記圧縮符号化されたデータを含むストリームの転送を指示するリクエストをネットワークを介してサーバに送信するステップと、
前記ネットワークを介して前記サーバから転送される前記ストリームを受信するステップと、
前記受信されたストリームを格納するバッファから前記受信されたストリームを読み出してデコードする処理をクロック信号に同期して実行するステップと、
前記受信されたストリームが、当該ストリームに対応する伝送レートで前記サーバからリアルタイムに送出されるリアルタイムストリーム、および前記サーバの蓄積メディアに格納され、当該ストリームに対応する伝送レートよりも高速に前記サーバから送出される非リアルタイムストリームのいずれであるかを判別するステップと、
前記受信されたストリームが前記リアルタイムストリームであることが判別された場合、前記バッファのフィルレベルに応じて前記クロック信号の周波数を変化させるクロック制御処理を実行し、前記受信されたストリームが前記非リアルタイムストリームであることが判別された場合、前記クロック信号の周波数を固定値に設定する処理を実行するステップと具備することを特徴とするデコード制御方法。
【請求項1】
圧縮符号化されたデータを含むストリームを再生する再生装置において、
前記ストリームの転送を指示するリクエストをネットワークを介してサーバに送信する手段と、
前記ネットワークを介して前記サーバから転送される前記ストリームを受信する受信手段と、
前記受信されたストリームを格納するバッファと、
前記受信されたストリームを前記バッファから読み出してデコード処理を実行するデコーダと、
前記デコード処理の速度を規定するクロック信号を発生するクロック発生器と、
前記受信されたストリームが、当該ストリームに対応する伝送レートで前記サーバからリアルタイムに送出されるリアルタイムストリーム、および前記サーバの蓄積メディアに格納され、当該ストリームに対応する伝送レートよりも高速に前記サーバから送出される非リアルタイムストリームのいずれであるかを判別する判別手段と、
前記受信されたストリームが前記リアルタイムストリームであることが判別された場合、前記バッファのフィルレベルに応じて前記クロック信号の周波数を変化させるクロック制御処理を実行し、前記受信されたストリームが前記非リアルタイムストリームであることが判別された場合、前記クロック信号の周波数を固定値に設定する処理を実行するクロック制御手段と具備することを特徴とする再生装置。
【請求項2】
前記判別手段は、前記ストリームの受信が開始されてから所定時間内に前記バッファのフィルレベルが基準値を超えるか否かに応じて、前記受信されたストリームが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを判別する手段を含むことを特徴とする請求項1記載の再生装置。
【請求項3】
前記受信されたストリームをオーディオデータとビデオデータとに分離する手段をさらに具備し、
前記バッファは、前記分離されたオーディオデータを格納するオーディオバッファであり、前記判別手段は、前記ストリームの受信が開始されてから所定時間内に前記オーディオバッファのフィルレベルが基準値を超えるか否かに応じて、前記受信されたストリームが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを判別することを特徴とする請求項1記載の再生装置。
【請求項4】
前記オーディオデータは固定ビットレート符号化によって圧縮符号化されていることを特徴とする請求項3記載の再生装置。
【請求項5】
前記クロック信号に同期して動作し、前記受信されたストリームを特定のビットレートで前記バッファから前記デコーダに読み出す手段をさらに具備し、
前記判別手段は、前記ストリームの受信が開始されてから所定時間内に前記バッファのフィルレベルが基準値を超えるか否かに応じて、前記受信されたストリームが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを判別することを特徴とする請求項1記載の再生装置。
【請求項6】
前記受信されたストリームは、各々にタイムスタンプが付加されたパケット群を含むトランスポートストリームであり、
前記クロック信号に同期してカウント動作を実行するカウンタを有し、前記バッファに格納されたパケット群の内、タイムスタンプの値が前記カウンタのカウント値に一致するパケットを前記バッファから前記デコーダに読み出す手段をさらに具備し、
前記判別手段は、前記ストリームの受信が開始されてから所定時間内に前記バッファのフィルレベルが基準値を超えるか否かに応じて、前記受信されたストリームが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを判別することを特徴とする請求項1記載の再生装置。
【請求項7】
前記圧縮符号化されたデータは、ヘッダ部とペイロード部とを各々が含むパケット群によって前記サーバから転送され、前記各パケットのヘッダ部およびペイロード部のいずれか一方には、前記圧縮符号化されたデータが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを示す識別情報が含まれており、
前記判別手段は、前記識別情報に基づいて、前記受信されたストリームが前記リアルタイムストリームおよび前記非リアルタイムストリームのいずれであるかを判別する手段を含むことを特徴とする請求項1記載の再生装置。
【請求項8】
圧縮符号化されたデータのデコード処理を制御するデコード制御方法であって、
前記圧縮符号化されたデータを含むストリームの転送を指示するリクエストをネットワークを介してサーバに送信するステップと、
前記ネットワークを介して前記サーバから転送される前記ストリームを受信するステップと、
前記受信されたストリームを格納するバッファから前記受信されたストリームを読み出してデコードする処理をクロック信号に同期して実行するステップと、
前記受信されたストリームが、当該ストリームに対応する伝送レートで前記サーバからリアルタイムに送出されるリアルタイムストリーム、および前記サーバの蓄積メディアに格納され、当該ストリームに対応する伝送レートよりも高速に前記サーバから送出される非リアルタイムストリームのいずれであるかを判別するステップと、
前記受信されたストリームが前記リアルタイムストリームであることが判別された場合、前記バッファのフィルレベルに応じて前記クロック信号の周波数を変化させるクロック制御処理を実行し、前記受信されたストリームが前記非リアルタイムストリームであることが判別された場合、前記クロック信号の周波数を固定値に設定する処理を実行するステップと具備することを特徴とするデコード制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2006−186580(P2006−186580A)
【公開日】平成18年7月13日(2006.7.13)
【国際特許分類】
【出願番号】特願2004−377027(P2004−377027)
【出願日】平成16年12月27日(2004.12.27)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成18年7月13日(2006.7.13)
【国際特許分類】
【出願日】平成16年12月27日(2004.12.27)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]