(57)【要約】【課題】ストリーミング再生におけるクロックずれを抑制し、より安定的な再生を行うことができるようにする。【解決手段】情報取得部は、所定の方法で、バッファ内に保持されているストリームを解析し、データ量の算出に必要な情報をデータ量算出用情報として取得する。算出部は、そのデータ量算出用情報を用いてバッファに保持されるストリームの時間的なデータ量を算出する。検出部は、その算出結果から、デコーダクロックずれを検出する。デコーダクロックが速すぎる場合、クロック制御部は、デコーダクロックを現在よりも遅くするように制御する。デコーダクロックが遅すぎる場合、クロック制御部は、デコーダクロックを現在よりも速くするように制御する。本発明は、例えば、通信システムに適用することができる。【選択図】図３
2010287973.tif 000002
【特許請求の範囲】
【請求項１】
ストリーミング再生用のデータを受信する受信手段と、
前記受信手段により受信された前記データを保持する保持手段と、
前記保持手段に保持されている、所定の符号化された前記データを読み出して復号する復号手段と、
前記保持手段に保持されている前記データの時間的データ量から、前記復号手段による復号処理の速度が適切であるか否かを判定する判定手段と、
前記判定手段による判定の結果に基づいて前記復号手段による前記復号処理の速度を制御する制御手段と
を備える情報処理装置。
【請求項２】
前記判定手段は、
前記保持手段に保持されている前記データより、前記保持手段に保持されている全データの時間的データ量の算出に必要な情報をデータ量算出用情報として取得する情報取得手段と、
前記情報取得手段により取得された前記データ量算出用情報を用いて前記時間的データ量を算出する算出手段と、
前記算出手段により算出された前記時間的データ量と所定の閾値を比較することにより、前記データに施された符号化処理のクロックに対する前記復号処理のクロックのずれを検出する検出手段と
を備える請求項１に記載の情報処理装置。
【請求項３】
前記情報取得手段は、前記保持手段に保持されている前記データのうち、最初に保持された前記データのタイムスタンプと、最後に保持された前記データのタイムスタンプとを前記データ量算出用情報として取得する
請求項２に記載の情報処理装置。
【請求項４】
前記情報取得手段は、前記保持手段に保持されているPIDが０番のパケットの数を前記データ量算出用情報として取得する
請求項２に記載の情報処理装置。
【請求項５】
前記情報取得手段は、前記保持手段に保持されているPCRパケットの数を前記データ量算出用情報として取得する
請求項２に記載の情報処理装置。
【請求項６】
前記制御手段は、前記検出手段による検出結果に基づいて、前記復号処理のクロックが速すぎる場合前記復号処理のクロックを遅くし、前記復号処理のクロックが遅すぎる場合前記復号処理のクロックを速くする
請求項２に記載の情報処理装置。
【請求項７】
前記検出手段は、前記算出手段により算出された前記時間的データ量を、前記復号手段による前記データの復号開始時に前記保持手段に保持されている前記データの時間的データ量を用いて設定された前記閾値と比較する
請求項２に記載の情報処理装置。
【請求項８】
前記検出手段は、前記算出手段により算出された前記時間的データ量を、前記復号手段による前記データの復号開始時に前記保持手段に保持されている前記データの時間的データ量と、前記データの伝送時に発生するジッタを用いて設定された前記閾値と比較する
請求項２に記載の情報処理装置。
【請求項９】
前記判定手段は、
前記受信手段により受信される前記データに対して所定データ量毎に、前記データの受信時刻を示す到着時刻情報を付加する付加手段
をさらに備え、
前記情報取得手段は、前記保持手段に保持されている前記データに付加された最も早い前記到着時刻情報と、最も遅い前記到着時刻情報を取得する
請求項２に記載の情報処理装置。
【請求項１０】
ストリーミング再生用のデータを受信する受信手段と、
前記受信手段により受信された前記データを保持する保持手段と、
前記保持手段に保持されている、所定の符号化された前記データを読み出して復号する復号手段と、
判定を行う判定手段と、
制御を行う制御手段と
を備える情報処理装置の情報処理方法であって、
前記判定手段が、前記保持手段に保持されている前記データの時間的データ量から、前記復号手段による復号処理の速度が適切であるか否かを判定し、
前記制御手段が、前記判定手段による判定の結果に基づいて前記復号手段による前記復号処理の速度を制御する
ステップを含む情報処理方法。
【請求項１１】
ストリーミング再生用のデータを受信し、
受信された前記データを保持し、
保持されている、所定の符号化された前記データを読み出して復号し、
保持されている前記データの時間的データ量から、復号処理の速度が適切であるか否かを判定し、
判定の結果に基づいて前記復号処理の速度を制御する
ステップを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、長時間再生しても画音乱れが起きないようにストリーミング再生することができるようにした情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、ネットワークからのライブストリーミング再生が行われている。この時、ストリーム中のタイムスタンプを用いたデコーダへのデータ転送タイミング制御を行わないことがある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、その場合、サーバのエンコーダクロックとクライアントのデコーダクロックの同期を取る有効な手段がなかった。そのため、長時間再生を続けていると、クロックずれにより、画音乱れが発生してしまう恐れがあった。
【０００４】
本発明はこのような問題を解決するためのものであり、ストリーミング再生におけるクロックずれを抑制し、より安定的な再生を行うことができるようにするものである。
【課題を解決するための手段】
【０００５】
本発明の一側面の情報処理装置は、ストリーミング再生用のデータを受信する受信手段と、前記受信手段により受信された前記データを保持する保持手段と、前記保持手段に保持されている、所定の符号化された前記データを読み出して復号する復号手段と、前記保持手段に保持されている前記データの時間的データ量から、前記復号手段による復号処理の速度が適切であるか否かを判定する判定手段と、前記判定手段による判定の結果に基づいて前記復号手段による前記復号処理の速度を制御する制御手段とを備える。
【０００６】
前記判定手段は、前記保持手段に保持されている前記データより、前記保持手段に保持されている全データの時間的データ量の算出に必要な情報をデータ量算出用情報として取得する情報取得手段と、前記情報取得手段により取得された前記データ量算出用情報を用いて前記時間的データ量を算出する算出手段と、前記算出手段により算出された前記時間的データ量と所定の閾値を比較することにより、前記データに施された符号化処理のクロックに対する前記復号処理のクロックのずれを検出する検出手段とを備えることができる。
【０００７】
前記情報取得手段は、前記保持手段に保持されている前記データのうち、最初に保持された前記データのタイムスタンプと、最後に保持された前記データのタイムスタンプとを前記データ量算出用情報として取得することができる。
【０００８】
前記情報取得手段は、前記保持手段に保持されているPIDが０番のパケットの数を前記データ量算出用情報として取得することができる。
【０００９】
前記情報取得手段は、前記保持手段に保持されているPCRパケットの数を前記データ量算出用情報として取得することができる。
【００１０】
前記制御手段は、前記検出手段による検出結果に基づいて、前記復号処理のクロックが速すぎる場合前記復号処理のクロックを遅くし、前記復号処理のクロックが遅すぎる場合前記復号処理のクロックを速くすることができる。
【００１１】
前記検出手段は、前記算出手段により算出された前記時間的データ量を、前記復号手段による前記データの復号開始時に前記保持手段に保持されている前記データの時間的データ量を用いて設定された前記閾値と比較することができる。
【００１２】
前記検出手段は、前記算出手段により算出された前記時間的データ量を、前記復号手段による前記データの復号開始時に前記保持手段に保持されている前記データの時間的データ量と、前記データの伝送時に発生するジッタを用いて設定された前記閾値と比較することができる。
【００１３】
前記判定手段は、前記受信手段により受信される前記データに対して所定データ量毎に、前記データの受信時刻を示す到着時刻情報を付加する付加手段をさらに備え、前記情報取得手段は、前記保持手段に保持されている前記データに付加された最も早い前記到着時刻情報と、最も遅い前記到着時刻情報を取得することができる。
【００１４】
本発明の一側面の情報処理方法またはプログラムは、ストリーミング再生用のデータを受信し、受信された前記データを保持し、保持されている、所定の符号化された前記データを読み出して復号し、保持されている前記データの時間的データ量から、復号処理の速度が適切であるか否かを判定し、判定の結果に基づいて前記復号処理の速度を制御するステップを含む。
【００１５】
本発明の一側面においては、ストリーミング再生用のデータが受信され、受信されたデータが保持され、保持されている、所定の符号化されたデータが読み出されて復号され、保持されているデータの時間的データ量から、復号処理の速度が適切であるか否かが判定され、判定の結果に基づいて復号処理の速度が制御される。
【発明の効果】
【００１６】
本発明によれば、情報を処理することができる。特に、ストリーミング再生におけるクロックずれを抑制し、より安定的な再生を行うことができる。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明を適用した通信システムの構成例を示すブロック図である。
【００１８】
図１に示される通信システム１００は、画像や音声等のコンテンツデータを複数の装置間でストリーミング再生する通信システムである。通信システム１００は、送信装置１０１、送信装置１０１にネットワーク１０２を介して接続される受信装置１０３を有する。
【００１９】
送信装置１０１は、外部より供給されるコンテンツデータを、ストリーミングデータとして、ネットワーク１０２を介して受信装置１０３に送信する装置である。コンテンツデータは、例えば画像や音声等を含むコンテンツとしてのデータである。送信装置１０１は、エンコーダ１１１および送信部１１２を有する。
【００２０】
エンコーダ１１１は、供給されるコンテンツデータを、例えばMPEG（Moving Picture Experts Group）やJPEG（Joint Photographic Experts Group）2000等のような所定の符号化方式で符号化圧縮し、その符号化データを送信部１１２に供給する。送信部１１２は、エンコーダ１１１より供給される符号化データを、ストリーミング再生用のデータ（ストリーム）としてパケット化し、ネットワーク１０２を介して受信装置１０３に送信する。
【００２１】
なお、送信装置１０１が他の機能を有するようにしてもよい。例えば、送信装置１０１が、カメラやマイク等のコンテンツデータ生成機能を有するようにしてもよい。また、例えば、送信装置１０１が、コンテンツデータを記憶する記憶部を有し、その記憶部よりコンテンツデータを読み出してエンコーダに供給するようにしてもよい。
【００２２】
送信部１１２より送信されたストリームは、ネットワーク１０２を介して受信装置１０３に供給される。ネットワーク１０２は、例えばインターネットやLAN（Local Area Network）に代表される、複数のデバイスを互いに接続し、それらのデバイス間での通信を可能するための任意のネットワークである。このネットワーク１０２は、複数のネットワークにより構成されるようにしてもよい。また、ネットワーク１０２は、有線により構成されるものであってもよいし、無線により構成されるものであってもよいし、その両方により構成されるものであってもよい。
【００２３】
受信装置１０３は、ネットワーク１０２を介して供給されるストリームを受信しながらデコードし、コンテンツデータを復元して再生（ストリーミング再生）し、モニタやスピーカ等に出力する。もちろん、復元したコンテンツデータを受信装置１０３の外部の他の装置に供給するようにしてもよい。
【００２４】
図２は、図１の受信装置１０３の詳細な構成例を示すブロック図である。
【００２５】
図２に示されるように、受信装置１０３は、受信部２０１、バッファ２０２、デコーダ２０３、出力部２０４、および制御部２１１を有する。
【００２６】
受信部２０１は、ネットワーク１０２に接続される通信インタフェースであり、ネットワーク１０２を介して供給されるストリームを取得し、バッファ２０２に供給する。バッファ２０２は、例えばRAM（Random Access Memory）等の記憶媒体により構成され、受信部２０１より供給されるデータを一時的に保持する。バッファ２０２は、その保持している符号化データの中の、デコーダ２０３に要求された符号化データをデコーダ２０３に供給するか、または、デコーダ２０３の処理速度に応じた所定のタイミングで、保持している符号化データをデコーダ２０３に供給する。
【００２７】
デコーダ２０３は、バッファ２０２より取得した符号化データを伸長復号し、復元したコンテンツデータを出力部２０４に供給する。出力部２０４は、例えばモニタやスピーカを有し、デコーダ２０３より供給されるコンテンツデータを出力する。例えば、出力部２０４は、モニタに画像を表示したり、音声をスピーカより出力したりする。
【００２８】
制御部２１１は、バッファ２０２に保持されているデータより抽出した情報に基づいて、デコーダ２０３の動作（例えばクロック）を制御する。制御部２１１は、同期判定部２２１およびクロック制御部２２２を有する。
【００２９】
同期判定部２２１は、バッファ２０２に保持されているデータに基づいて、デコーダ２０３が行う復号処理の速度が適切か否かの判定に関する処理を行う。より具体的には、同期判定部２２１は、デコーダ２０３のクロックと、送信装置１０１のエンコーダ１１１のクロックとの間で同期がとれているか否かの判定に関する処理を行う。
【００３０】
同期判定部２２１は、情報取得部２３１、算出部２３２、および検出部２３３を有する。情報取得部２３１は、バッファ２０２に保持されているデータから必要な情報を抽出する。算出部２３２は、情報取得部２３１により取得された情報を用いて、バッファ２０２に保持されているデータの時間的なデータ量を算出する。
【００３１】
なお、時間的なデータ量とは、単なる情報量（データサイズ）ではなく、コンテンツとしての再生時間に相当する量を示す。つまり、算出部２３２は、再生時間でどのくらいの分のデータがバッファ２０２に保持されているかを示す値として「時間的なデータ量」を算出する。
【００３２】
検出部２３３は、算出部２３２により算出された時間的なデータ量を所定の閾値と比較することにより、デコーダ２０３のクロックの速度が適切であるか否かを判定する。
【００３３】
クロック制御部２２２は、同期判定部２２１（検出部２３３）の判定結果に基づいて、デコーダ２０３のクロックを、適切な速度になるように制御する。
【００３４】
具体的な処理の流れの例を図３のフローチャートを参照して説明する。
【００３５】
受信装置１０３がストリーミング再生のデータ受信を開始すると、制御部２１１は、同期制御処理を開始する。
【００３６】
同期制御処理が開始されると、同期判定部２２１の情報取得部２３１は、ステップＳ１０１において、所定の方法で、バッファ２０２内に保持されているストリーム（データ）を解析し、データ量の算出に必要な情報をデータ量算出用情報として取得する。
【００３７】
例えば、ストリームがTTS(TimedTransportStream)の場合、バッファ２０２に最後に保持されたTTSのタイムスタンプと、バッファ２０２に最初に保持されたTTSのタイムスタンプを比較する（差分を算出する）ことで、バッファ２０２に保持されるストリームの時間的なデータ量を計算することができる。
【００３８】
従って、この場合、情報取得部２３１は、バッファ２０２に最後に保持されたTTSのタイムスタンプと、バッファ２０２に最初に保持されたTTSのタイムスタンプをデータ量算出用情報として取得する。
【００３９】
また、例えば、ストリームに、PSI（Program Specific Information）として、PAT（Program Association Table）が、コンテンツ再生時間100msecに相当する間隔毎に、ストリームに挿入されていることが保証される場合、バッファ２０２内でPIDが０番のパケットが幾つあるかを数えることにより、バッファ２０２に保持されるストリームの時間的なデータ量を計算することができる。
【００４０】
PSIは、ストリームがどのプログラムに属しているかを記した情報である。PMTは、プログラムに含まれる画像や音声などの各PIDを格納する情報ある。PATは、ストリームに含まれるプログラム一覧を、PMTのPID一覧で格納するものである。PATのPIDは必ず０番と決まっている。つまり、PIDが０番のパケットが幾つあるかを数えることは、100msec毎に挿入されるPATの数をカウントすることと等価である。
【００４１】
従って、この場合、情報取得部２３１は、PIDが０番のパケットをカウントし、そのカウント結果をデータ量算出用情報として取得する。なお、この場合、バッファ２０２に保持される全てのパケットのTSヘッダを参照する必要があるため、上述したTTSタイムスタンプを用いる場合よりも情報取得部２３１の負荷は大きい。
【００４２】
さらに、例えば、PCR（Program. Clock Reference）が、コンテンツ再生時間100msecに相当する間隔毎に、ストリームに挿入されることが保証される場合、PCRパケットをカウントすることにより、バッファ２０２に保持されるストリームの時間的なデータ量を計算することができる。
【００４３】
PCRは、クロックの基準となる時刻情報である。ストリームには、このPCRが100msec毎に挿入される。したがって、このPCRのカウント値からバッファ２０２に保持されるストリームの時間的なデータ量を計算することができる。情報取得部２３１は、バッファ２０２に保持されるストリームの全てのPATおよびPMTを解析し、PCRパケットをカウントし、そのカウント結果をデータ量算出用情報として取得する。
【００４４】
なお、この場合、バッファ２０２内の全てのPATやPMTの解析が必要になるため、上述したTTSタイムスタンプを用いる場合や、上述したPATの数をカウントする場合よりも情報取得部２３１の負荷は大きい。
【００４５】
データ量算出用情報が取得されると、算出部２３２は、ステップＳ１０２において、そのデータ量算出用情報を用いてバッファ２０２に保持されるストリームの時間的なデータ量を算出する。
【００４６】
ステップＳ１０３において、検出部２３３は、その算出結果から、デコーダ２０３のクロック（デコーダクロック）の、エンコーダ１１１のクロック（エンコーダクロック）に対する「ずれ」（以下において、デコーダクロックずれと称する）を検出する。
【００４７】
ネットワーク１０２を介して伝送されるストリームの伝送ビットレートがコンテンツの再生速度に対応しており、受信装置１０３が、送信されるストリームを受信しながら、そのストリームを略即時的に（略リアルタイムに）再生するライブストリーミング再生を行うものとする。
【００４８】
仮に、ネットワークジッタが０で、デコーダクロックずれもない理想的な状態であるとすると、バッファ２０２の入出力レートは互いに略等しくなる。つまり、このようなライブストリーミング再生中、バッファ２０２に保持されているストリームの時間的なデータ量は略一定となる。例えば、ストリーミング再生が開始されたときに、バッファ２０２に保持されているストリームの時間的なデータ量をｍ秒分のデータとすると、バッファ２０２には常にｍ秒分のデータが保持されている。
【００４９】
したがって、この場合、検出部２３３は、バッファ２０２に保持されているストリームの時間的なデータ量を監視し、それがｍからずれたことを検出することで、ネットワークジッタまたはデコーダクロックずれを検出する。
【００５０】
ところでこのｍは、ネットワークからデータを受信し始めてから再生が開始されるまでの時間で近似することができる。上述したようなネットワークジッタのない理想的な環境下においては、ｍ秒受信すれば、コンテンツ再生ｍ秒分のデータを取得したことになるはずだからである。換言すれば、コンテンツ再生ｍ秒分のデータをバッファ２０２に保持させるためには、ｍ秒間の受信が必要になる。したがって、上述したように、ｍは、ネットワークからデータを受信し始めてから再生が開始されるまでの時間で近似することができる。
【００５１】
仮に、ネットワークジッタが０でないとすると、受信レートが時間的に変化するので、バッファ２０２に保持されるストリームの時間的なデータ量はネットワークジッタの影響を受けて、一定にならない。このときの時間的なデータ量をｍ’とし、ネットワークジッタを最大ｎ秒とすると、ｍ’の適正な値を以下の式（１）のように表すことができる。
【００５２】
ｍ−ｎ ≦ ｍ’ ≦ ｍ＋ｎ  ・・・（１）
【００５３】
検出部２３３は、バッファ２０２に保持されているストリームの時間的なデータ量を監視し、ｍ’が上記の範囲を逸脱した場合、デコーダクロックずれが起こっていると判定する。ｍ’＜ｍ−ｎならばエンコーダクロックに対してデコーダクロックの方が速く、ｍ＋ｎ＜ｍ’ならばエンコーダクロックに対してデコーダクロックの方が遅い。
【００５４】
検出部２３３は、以上のようにデコーダクロックずれの検出を行うと、その検出結果に基づいて、ステップＳ１０４において、デコーダクロックが（エンコーダクロックに対して）速すぎるか否かを判定する。デコーダクロックが速すぎると判定された場合、処理はステップＳ１０５に進む。ステップＳ１０５において、クロック制御部２２２は、その判定結果を受けて、デコーダ２０３を制御し、デコーダクロックを現在よりも遅くするように制御する。つまり、クロック制御部２２２は、デコーダ２０３の処理速度を現在よりも遅くさせる。ステップＳ１０５の処理が終了すると、処理はステップＳ１０８に進む。
【００５５】
また、ステップＳ１０４において、デコーダクロックが速すぎないと判定された場合、処理はステップＳ１０６に進む。ステップＳ１０６において、検出部２３３は、検出結果に基づいて、デコーダクロックが（エンコーダクロックに対して）遅すぎるか否かを判定する。デコーダクロックが遅すぎると判定された場合、処理はステップＳ１０７に進む。ステップＳ１０７において、クロック制御部２２２は、その判定結果を受けて、デコーダ２０３を制御し、デコーダクロックを現在よりも速くするように制御する。つまり、クロック制御部２２２は、デコーダ２０３の処理速度を現在よりも速くさせる。ステップＳ１０７の処理が終了すると、処理はステップＳ１０８に進む。
【００５６】
また、ステップＳ１０６において、デコーダクロックが遅すぎない、つまり、ちょうどよいと判定された場合、処理はステップＳ１０８に進む。
【００５７】
ステップＳ１０８において、情報取得部２３１は、ストリームの受信が終了したか否かを判定し、終了していないと判定された場合、処理をステップＳ１０１に戻し、それ以降の処理を繰り返す。また、ステップＳ１０８においてストリームの受信が終了したと判定された場合、同期制御処理が終了する。
【００５８】
以上のように、制御部２１１は、バッファ２０２に保持されるストリームの時間的データ量に基づいてデコーダクロックのずれを検出し、その検出結果に基づいてデコーダクロックの速度を制御する。つまり、制御部２１１は、デコーダ２０３の処理速度を制御する。このようにすることにより、制御部２１１は、デコーダクロックの速度をエンコーダクロックの速度に合わせることができ、つまり、デコーダ２０３の処理速度をエンコーダ１１１の処理速度に合わせることができ、クロックずれを抑制し、そのクロックずれに起因するバッファオーバーフローやアンダーフローの発生を抑制することができる。
【００５９】
つまり、受信装置１０３は、ライブストリーミング再生において、ストリームのタイムスタンプを用いたデコーダ２０３へのデータ投入タイミング制御を行わない、または行えない場合であっても、長時間再生しても画音乱れが起きないように安定的にストリーミング再生を行うことができる。
【００６０】
なお、実際にはｍにもジッタが存在し、かつ、ｍを計算する際の精度も、その計算方法によって異なる。そのため、上述したようなクロックずれ検出の閾値は、そのシステム、装置、および方法等の環境に合わせて適宜設定するのが望ましい。
【００６１】
以上においては、ストリーム内に存在するデータを利用してバッファ２０２に保持されるストリームの時間的データ量を算出するように説明したが、このストリームの時間的データ量の算出は、これ以外の方法により算出するようにしてもよい。
【００６２】
例えば、ストリームの到着時刻（受信時刻）を利用するようにしてもよい。
【００６３】
図４は、その場合の受信装置１０３の詳細な構成例を示すブロック図である。図２と同様の構成には同一の符号を付してある。
【００６４】
図４において、受信装置１０３は、基本的に図２の場合の制御部２１１と同様の構成を有するが、制御部２１１の代わりに制御部３１１を有する。制御部３１１は、基本的に制御部２１１と同様の構成を有するが、制御部２１１の同期判定部２２１の代わりに同期判定部３２１を有し、さらに、到着時刻情報付加部３２３を有する。
【００６５】
到着時刻情報付加部３２３は、受信部２０１により受信されるストリームに対し、所定のデータ単位（例えばTCPパケット）毎に、到着時刻を示す到着時刻情報を付加する。この到着時刻情報は、時刻を示す情報であればどのようなデータであってもよいが、例えば受信装置１０３自身のシステムクロックを用いて生成される。受信部２０１は、到着時刻情報が付加されたストリームをバッファ２０２に供給し、保持させる。
【００６６】
同期判定部３２１は、同期判定部２２１と同様に、情報取得部３３１、算出部３３２、および検出部３３３を有する。
【００６７】
情報取得部３３１は、バッファ２０２に保持されているストリームに付加されている、最初の到着時刻情報と、最後の到着時刻情報を、データ量算出用情報として取得する。
【００６８】
算出部３３２は、それらの到着時刻情報の差分を求めることにより、バッファ２０２に保持されているストリームの時間的データ量を算出する。検出部３３３は、その算出結果を所定の閾値と比較することにより、デコーダクロックのずれを検出する。
【００６９】
この場合の、同期制御処理の流れの例を図５のフローチャートを参照して説明する。この同期制御処理は、図３のフローチャートを参照して説明した同期制御処理に対応する。
【００７０】
ストリーミング再生が開始され、同期制御処理が開始されると、到着時刻情報付加部３２３は、ステップＳ２０１において、受信部２０１により受信されるストリームを監視し、予め定められた所定量のストリームが受信されたか否かを判定する。所定量のストリームが受信されたと判定した場合、到着時刻情報付加部３２３は、処理をステップＳ２０２に進め、到着時刻情報を受信データに付加する。到着時刻情報が付加されると処理はステップＳ２０３に進む。また、ステップＳ２０１において、所定量のストリームが受信されていないと判定した場合、ステップＳ２０２の処理は省略され、処理はステップＳ２０３に進む。
【００７１】
ステップＳ２０３において、情報取得部３３１は、バッファ２０２に最後に保持されたストリームに付加されている到着時刻情報と、バッファ２０２に最初に保持されたストリームに付加されている到着時刻情報を、データ量算出用情報として取得する。ステップＳ２０４において、算出部３３２は、情報取得部３３１により取得された到着時刻情報の差分をとることにより、バッファ２０２に保持されるデータの時間的なデータ量を算出する。
【００７２】
ステップＳ２０５において、検出部３３３は、その算出結果に基づいて、デコーダクロックのずれを検出する。
【００７３】
上述したように、ネットワークジッタを最大ｎ秒とする場合、ライブストリーミング受信開始からｍ秒後に再生開始したとすると、バッファ２０２に保持されているストリームの時間的なデータ量ｍ’がｍ’＜ｍ−ｎ、若しくは、ｍ＋ｎ＜ｍ’となるとき、デコーダクロックずれが検出される。
【００７４】
ここで、ストリームの到着時刻から算出した時間的なデータ量をｍ’’とする。常にｍ’＜ｍ−ｎ、若しくは、ｍ＋ｎ＜ｍ’が成り立つようなｍ’’とｍとｎの関係を用いることにより、受信装置１０３は、ｍ’’を監視することでデコーダクロックずれを検出することができる。
【００７５】
ｍ’’とｍ’は、ネットワークジッタを考慮すると、以下の式（２）に示されるような関係となる。
【００７６】
ｍ’’−ｎ≦ｍ’≦ｍ’’＋ｎ  ・・・（２）
【００７７】
ｍ’＜ｍ−ｎが常に成り立つためには、ｍ’が最大のときにも成り立つ必要がある。したがって式（２）からｍ’’＋ｎ＜ｍ−ｎが成立する必要がある。つまり、ｍ’’＜ｍ−２ｎが成立する必要がある。
【００７８】
また、ｍ＋ｎ＜ｍ’が常に成り立つためには、ｍ’が最小のときにも成り立つ必要がある。したがって式（２）からｍ＋ｎ＜ｍ’’−ｎが成立する必要がある。つまり、ｍ＋２ｎ＜ｍ’’が成立する必要がある。
【００７９】
以上により、ｍ’’＜ｍ−２ｎが成立する場合、デコーダクロックが速く、ｍ＋２ｎ＜ｍ’’が成立する場合、デコーダクロックが遅いということになる。検出部３３３は、このようにデコーダクロックずれを検出する。
【００８０】
クロック制御部２２２は、デコーダクロックが速い場合にはデコーダクロックを遅くし、デコーダクロックが遅い場合にはデコーダクロックを速くする。つまり、ステップＳ２０６乃至ステップＳ２１０の各処理は、図３のステップＳ１０４乃至ステップＳ１０８の各処理と同様に実行される。
【００８１】
つまり、デコーダクロックが速すぎる場合、クロック制御部２２２は、デコーダクロックを現在よりも遅くするように制御する。つまり、クロック制御部２２２は、デコーダ２０３の処理速度を現在よりも遅くさせる。逆に、デコーダクロックが遅すぎる場合、クロック制御部２２２は、デコーダクロックを現在よりも速くするように制御する。つまり、クロック制御部２２２は、デコーダ２０３の処理速度を現在よりも速くさせる。
【００８２】
以上のように、制御部３１１は、バッファ２０２に保持されるストリームの時間的データ量に基づいてデコーダクロックのずれを検出し、その検出結果に基づいてデコーダクロックの速度を制御することにより、デコーダクロックの速度をエンコーダクロックの速度に合わせることができ、クロックずれを抑制し、そのクロックずれに起因するバッファオーバーフローやアンダーフローの発生を抑制することができる。
【００８３】
つまり、受信装置１０３は、ライブストリーミング再生において、ストリームのタイムスタンプを用いたデコーダ２０３へのデータ投入タイミング制御を行わない、または行えない場合であっても、長時間再生しても画音乱れが起きないように安定的にストリーミング再生を行うことができる。
【００８４】
なお、実際にはｍにもジッタが存在し、かつ、ｍを計算する際の精度も、その計算方法によって異なる。そのため、上述したようなクロックずれ検出の閾値は、そのシステム、装置、および方法等の環境に合わせて適宜設定するのが望ましい。
【００８５】
以上においては、デコーダ２０３のクロックの速度を制御することにより、デコーダ２０３の復号処理の速度を制御するように説明したが、クロック以外を用いて復号処理の速度を制御するようにしてももちろんよい。
【００８６】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図６に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【００８７】
図６において、パーソナルコンピュータ４００のCPU（Central Processing Unit）４０１は、ROM（Read Only Memory）４０２に記憶されているプログラム、または記憶部４１３からRAM４０３にロードされたプログラムに従って各種の処理を実行する。RAM４０３にはまた、CPU４０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００８８】
CPU４０１、ROM４０２、およびRAM４０３は、バス４０４を介して相互に接続されている。このバス４０４にはまた、入出力インタフェース４１０も接続されている。
【００８９】
入出力インタフェース４１０には、キーボード、マウスなどよりなる入力部４１１、CRT（Cathode Ray Tube）やLCD（Liquid Crystal Display）などよりなるディスプレイ、並びにスピーカなどよりなる出力部４１２、ハードディスクなどより構成される記憶部４１３、モデムなどより構成される通信部４１４が接続されている。通信部４１４は、インターネットを含むネットワークを介しての通信処理を行う。
【００９０】
入出力インタフェース４１０にはまた、必要に応じてドライブ４１５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア４２１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部４１３にインストールされる。
【００９１】
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【００９２】
この記録媒体は、例えば、図６に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disc - Read Only Memory）,DVD（Digital Versatile Disc）を含む）、光磁気ディスク（MD（Mini Disc）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア４２１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM４０２や、記憶部４１３に含まれるハードディスクなどで構成される。
【００９３】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００９４】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表わすものである。
【００９５】
なお、以上において、１つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて１つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【００９６】
【図１】本発明を適用した通信システムの主な構成例を示す図である。
【図２】受信装置の詳細な構成例を示すブロック図である。
【図３】同期制御処理の流れを説明するフローチャートである。
【図４】受信装置の他の構成例を示すブロック図である。
【図５】同期制御処理の他の流れを説明するフローチャートである。
【図６】本発明を適用したパーソナルコンピュータの構成例を示す図である。
【符号の説明】
【００９７】
１００  通信システム，  １０１  送信装置，  １０２  ネットワーク，  １０３  受信装置，  １１１  エンコーダ，  １１２  送信部，  ２０１  受信部，  ２０２  バッファ，  ２０３  デコーダ，  ２０４  出力部，  ２１１  制御部，  ２２１  同期判定部，  ２２２  クロック制御部，  ２３１  情報取得部，  ２３２  算出部，  ２３３  検出部，  ３１１  制御部，  ３２１  同期判定部，  ３２３  到着時刻情報付加部，  ３３１  情報取得部，  ３３２  算出部，  ３３３  検出部
【図１】
2010287973.tif 000003
【図２】
2010287973.tif 000004
【図３】
2010287973.tif 000005
【図４】
2010287973.tif 000006
【図５】
2010287973.tif 000007
【図６】
2010287973.tif 000008