(57)【要約】【課題】クロックの同期を確実にとることができるようにする。【解決手段】短時間平均値監視部１１４は、バッファ１１２に順次蓄積される受信データの数秒ごとの蓄積容量の平均を示す短時間平均値を取得し、長時間平均値監視部１１５は、バッファ１１２に順次蓄積される受信データの数分ごとの蓄積容量の平均を示す長時間平均値を取得する。クロック制御部１１６は、取得された長時間平均値の評価結果に応じて、デコーダ１１３が受信データの処理を行うためのクロックの周波数を制御するとともに、取得された短時間平均値に基づいてパケットロスなどの異常が検出された場合、クロックの周波数の調整を停止し、その異常が検出されてから所定の時間が経過した後、クロックの周波数の調整を再開する。本発明は、例えば、ネットワークを利用した動画配信において動画を受信する受信装置に適用することができる。【選択図】図３
2012129677.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して受信された受信データを一時的に蓄積するバッファと、
前記バッファに蓄積された前記受信データを処理するデータ処理手段と、
前記バッファに順次蓄積される前記受信データの第１の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得する短時間変化値取得手段と、
前記第１の単位時間よりも長い第２の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得する長時間変化値取得手段と、
取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御するクロック制御手段と
を備え、
前記クロック制御手段は、取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開する
受信装置。
【請求項２】
前記クロック制御手段は、前記短時間変化値の時間的な変化量が、あらかじめ定められた第１の閾値を超える場合、前記異常を検出して、前記長時間変化値の評価結果に応じた前記クロックの周波数の調整を停止する
請求項１に記載の受信装置。
【請求項３】
前記クロック制御手段は、前記短時間変化値の時間的な変化量が、前記第１の閾値以下となる場合、前記長時間変化値の評価結果に応じて、前記クロックの周波数を調整する
請求項２に記載の受信装置。
【請求項４】
前記クロック制御手段は、
前記長時間変化値の時間的な変化量が、あらかじめ定められた第２の閾値により定められる範囲を超える場合、前記クロックの周波数が現在の周波数よりも高い第１の周波数となり、
前記長時間変化値の時間的な変化量が、前記第２の閾値により定められる範囲未満となる場合、前記クロックの周波数が現在の周波数よりも低い第２の周波数となり、
前記長時間変化値の時間的な変化量が、前記第２の閾値により定められる範囲以内となる場合、前記クロックの周波数が現在の周波数のままとなるように
評価する
請求項３に記載の受信装置。
【請求項５】
前記バッファに順次蓄積される前記受信データの現在の蓄積容量を取得する蓄積容量取得手段をさらに備え、
前記クロック制御手段は、前記長時間変化値の評価結果に応じた前記クロックの周波数の調整を停止しているとき、
取得された前記蓄積容量が、あらかじめ定められた前記バッファの蓄積容量の上限値を超える場合、前記クロックの周波数が現在の周波数よりも高い第１の周波数となり、
取得された前記蓄積容量が、あらかじめ定められた前記バッファの蓄積容量の下限値未満となる場合、前記クロックの周波数が現在の周波数よりも低い第２の周波数となり、
取得された前記蓄積容量が、前記上限値以下、かつ、前記下限値以上となる場合、前記クロックの周波数が現在の周波数のままとなるように
調整する
請求項２に記載の受信装置。
【請求項６】
前記短時間変化値は、前記第１の単位時間としての秒単位で得られる、前記バッファに順次蓄積される前記受信データの蓄積容量の平均値であり、
前記長時間変化値は、前記第２の単位時間としての分単位で得られる、前記バッファに順次蓄積される前記受信データの蓄積容量の平均値である
請求項１に記載の受信装置。
【請求項７】
前記異常は、前記ネットワークの異常としてのネットワーク障害若しくはネットワークの経路変更、又は前記受信データの異常としてのパケットロスである
請求項１に記載の受信装置。
【請求項８】
ネットワークを介して受信された受信データを一時的に蓄積するバッファと、前記バッファに蓄積された前記受信データを処理するデータ処理手段とを備える受信装置が、
前記バッファに順次蓄積される前記受信データの第１の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得し、
前記第１の単位時間よりも長い第２の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得し、
取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御し、
取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開する
ステップを含む受信方法。
【請求項９】
ネットワークを介して受信された受信データを一時的に蓄積するバッファと、前記バッファに蓄積された前記受信データを処理するデータ処理手段とを備える機器を制御するコンピュータに実行させるプログラムであって、
前記バッファに順次蓄積される前記受信データの第１の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得し、
前記第１の単位時間よりも長い第２の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得し、
取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御し、
取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開する
ステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信装置及び方法、並びにプログラムに関し、特に、クロックの同期を確実にとることができるようにした受信装置及び方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、インターネットに代表される情報通信手段の発展により、ネットワークを介して、動画や音声のデータを伝送して提供するサービスが普及している。この種のサービスで用いられるデータの伝送方式としては、いわゆるストリーミング形式の伝送方式が広く利用されている。
【０００３】
図１は、ネットワークを利用した動画配信を行う動画配信システムの構成を示す図である。
【０００４】
この動画配信システムにおいては、送信装置１２によって、カメラ１１により撮影された動画が、ネットワーク１３を介して受信装置１４に送信され、ディスプレイ１５に表示される。具体的には、送信装置１２では、撮影された動画のデータが、エンコーダ２１により符号化され、さらにRTP（Real time Transport Protocol）パケット等にパケタイズされてから、ネットワーク１３を経由して送信される。そして、受信装置１４では、ネットワーク１３を介してRTPパケットが受信され、そのRTPパケットに格納されたデータが、デコーダ３４により復号され、ディスプレイ１５に表示される。
【０００５】
送信装置１２において、エンコーダ２１は、カメラ１１により撮影された動画のデータと共に入力されるクロックＡの周波数に基づいて動作することで、そのデータの符号化を行う。一方、受信装置１４においては、デコーダ３４が、CPU３１乃至VCXO３３により生成されるクロックＢの周波数に基づいて動作することで、ネットワーク１３を介して受信したデータの復号を行う。また、受信装置１４には受信データを一時的に蓄積するためのバッファ（不図示）が設けられているが、長時間の動画配信が行われる場合、送信側のクロックＡが、受信側のクロックＢよりも速いときには、バッファがオーバーフローしてしまう。それとは逆に、送信側のクロックＡが、受信側のクロックＢよりも遅いときには、バッファがアンダーフローすることになる。
【０００６】
このように、ネットワークを利用した動画配信を安定して行うためには、送信側のクロックＡと、受信側のクロックＢとが同期する必要がある。
【０００７】
また、放送波を利用して動画配信を行う場合には、図２に示すように、受信装置５１では、引算器６１乃至STCカウンタ６６が適宜動作して、TSパケット（Transport Stream Packet）に格納されたPCR（Program Clock Reference）の差分値と、STC（System Time Clock）の差分値とを比較することで、クロックの同期が行われる。この方式を、ネットワークを利用した動画配信に採用すると、ネットワークでは、放送波と比べてTSパケットのジッタが大きいため、送信側と受信側のクロックを完全に同期させることが困難なものとなる。
【０００８】
本出願人は、ネットワークを利用した動画配信を想定した方式として、受信したTTSパケット（Time stamped Transport Stream Packet）のタイムスタンプと、受信装置のSTCとを比較して、同期処理を行うことを先に提案している（例えば、特許文献１参照）。
【０００９】
先の提案においては、ネットワークにおけるジッタの影響が考慮されているため、ジッタがある環境でもクロックの同期を行うことができるが、TTSパケットのタイムスタンプと、STCとを比較しているため、仮に、何らかの原因でSTC等の情報を取得できない場合には、クロックの同期をとることができない可能性がある。
【００１０】
また、上述したTTSパケットのタイムスタンプや、STCなどの情報を用いずに、クロックの同期をとる方法として、受信データを一時的に蓄積するバッファの蓄積容量を監視して、その監視結果に応じたクロック制御を行うことが提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特許第４４３８８７８号
【特許文献２】特開２００３−３０４２２４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ところで、ネットワークを利用した動画配信においては、十分な通信帯域が得られずにパケットロスが発生したり、ネットワーク障害により通信経路が絶たれたりするなどの異常が発生することがある。
【００１３】
上記の特許文献２に開示されている技術であると、単に、バッファの蓄積容量に応じて、クロックの周波数の制御を行っているだけであるため、パケットロスなどの異常が発生して、バッファの蓄積容量が大きく変化した場合には、クロック制御を正常に行うことができない。その結果、クロックの同期がうまくとれないことになる。
【００１４】
本発明はこのような状況に鑑みてなされたものであり、パケットロスなどの異常が発生した場合でも、クロックの同期を確実にとることができるようにするものである。
【課題を解決するための手段】
【００１５】
本発明の一側面の受信装置は、ネットワークを介して受信された受信データを一時的に蓄積するバッファと、前記バッファに蓄積された前記受信データを処理するデータ処理手段と、前記バッファに順次蓄積される前記受信データの第１の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得する短時間変化値取得手段と、前記第１の単位時間よりも長い第２の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得する長時間変化値取得手段と、取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御するクロック制御手段とを備え、前記クロック制御手段は、取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開する。
【００１６】
前記クロック制御手段は、前記短時間変化値の時間的な変化量が、あらかじめ定められた第１の閾値を超える場合、前記異常を検出して、前記長時間変化値の評価結果に応じた前記クロックの周波数の調整を停止する。
【００１７】
前記クロック制御手段は、前記短時間変化値の時間的な変化量が、前記第１の閾値以下となる場合、前記長時間変化値の評価結果に応じて、前記クロックの周波数を調整する。
【００１８】
前記クロック制御手段は、前記長時間変化値の時間的な変化量が、あらかじめ定められた第２の閾値により定められる範囲を超える場合、前記クロックの周波数が現在の周波数よりも高い第１の周波数となり、前記長時間変化値の時間的な変化量が、前記第２の閾値により定められる範囲未満となる場合、前記クロックの周波数が現在の周波数よりも低い第２の周波数となり、前記長時間変化値の時間的な変化量が、前記第２の閾値により定められる範囲以内となる場合、前記クロックの周波数が現在の周波数のままとなるように評価する。
【００１９】
前記バッファに順次蓄積される前記受信データの現在の蓄積容量を取得する蓄積容量取得手段をさらに備え、前記クロック制御手段は、前記長時間変化値の評価結果に応じた前記クロックの周波数の調整を停止しているとき、取得された前記蓄積容量が、あらかじめ定められた前記バッファの蓄積容量の上限値を超える場合、前記クロックの周波数が現在の周波数よりも高い第１の周波数となり、取得された前記蓄積容量が、あらかじめ定められた前記バッファの蓄積容量の下限値未満となる場合、前記クロックの周波数が現在の周波数よりも低い第２の周波数となり、取得された前記蓄積容量が、前記上限値以下、かつ、前記下限値以上となる場合、前記クロックの周波数が現在の周波数のままとなるように調整する。
【００２０】
前記短時間変化値は、前記第１の単位時間としての秒単位で得られる、前記バッファに順次蓄積される前記受信データの蓄積容量の平均値であり、前記長時間変化値は、前記第２の単位時間としての分単位で得られる、前記バッファに順次蓄積される前記受信データの蓄積容量の平均値である。
【００２１】
前記異常は、前記ネットワークの異常としてのネットワーク障害若しくはネットワークの経路変更、又は前記受信データの異常としてのパケットロスである。
【００２２】
本発明の一側面の受信方法は、ネットワークを介して受信された受信データを一時的に蓄積するバッファと、前記バッファに蓄積された前記受信データを処理するデータ処理手段とを備える受信装置が、前記バッファに順次蓄積される前記受信データの第１の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得し、前記第１の単位時間よりも長い第２の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得し、取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御し、取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開するステップを含む。
【００２３】
本発明の一側面のプログラムは、ネットワークを介して受信された受信データを一時的に蓄積するバッファと、前記バッファに蓄積された前記受信データを処理するデータ処理手段とを備える機器を制御するコンピュータに実行させるプログラムであって、前記バッファに順次蓄積される前記受信データの第１の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得し、前記第１の単位時間よりも長い第２の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得し、取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御し、取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開するステップを含む。
【００２４】
ネットワークとは、少なくとも２つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであってもよいし、１つの装置を構成している内部ブロックどうしであってもよい。
【００２５】
本発明の一側面の受信装置及び方法、並びにプログラムにおいては、バッファに順次蓄積される受信データの第１の単位時間ごとの蓄積容量の変化を示す短時間変化値が取得され、第１の単位時間よりも長い第２の単位時間ごとの蓄積容量の変化を示す長時間変化値が取得され、取得された長時間変化値の評価結果に応じて、データ処理手段が受信データの処理を行うためのクロックの周波数が制御される。また、取得された短時間変化値に基づいてネットワーク又は受信データの異常が検出された場合、クロックの周波数の調整が停止され、その異常が検出されてから所定の調整停止時間が経過した後、クロックの周波数の調整が再開される。
【発明の効果】
【００２６】
本発明の一側面によれば、クロックの同期を確実にとることができる。
【図面の簡単な説明】
【００２７】
【図１】ネットワークを利用した動画配信を行う動画配信システムの構成を示す図である。
【図２】放送波を利用した動画配信における受信装置の構成を示す図である。
【図３】本発明を適用した受信装置の一実施の形態の構成を示す図である。
【図４】バッファの蓄積容量を利用したクロック制御の概念を示す図である。
【図５】バッファの蓄積容量の遷移を示す図である。
【図６】図３のクロック制御部によるクロック制御処理を説明するフローチャートである。
【図７】短時間平均値と長時間平均値の時間的な遷移を示す図である。
【図８】本発明を適用した受信装置の一実施の形態の他の構成を示す図である。
【図９】図８のクロック制御部によるクロック制御処理を説明するフローチャートである。
【図１０】コンピュータのハードウェアの構成例を示す図である。
【発明を実施するための形態】
【００２８】
以下、本発明を実施するための形態（以下、実施の形態という）について説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態
２．第２の実施の形態
【００２９】
＜１．第１の実施の形態＞
［受信装置の構成］
図３は、本発明を適用した受信装置の一実施の形態の構成を示す図である。
【００３０】
受信装置１０１は、通信部１１１、バッファ１１２、デコーダ１１３、短時間平均値監視部１１４、長時間平均値監視部１１５、クロック制御部１１６、及び水晶発振器１１７から構成される。
【００３１】
通信部１１１は、ネットワークを介して送信装置から送信されてくる動画などの受信データを受信し、バッファ１１２に供給する。
【００３２】
バッファ１１２は、通信部１１１から供給される受信データを一時的に蓄積し、蓄積された受信データを順次、デコーダ１１３に供給する。
【００３３】
短時間平均値監視部１１４は、バッファ１１２に蓄積される受信データの蓄積容量を監視することで、例えば秒単位などの短い単位時間ごとに得られる、バッファ１１２に蓄積される受信データの蓄積容量の平均値（以下、短時間平均値Ｅという）を取得し、クロック制御部１１６に供給する。
【００３４】
長時間平均値監視部１１５は、バッファ１１２に蓄積される受信データの蓄積容量を監視することで、例えば分単位などの長い単位時間ごとに得られる、バッファ１１２に蓄積される受信データの蓄積容量の平均値（以下、長時間平均値Ｆという）を取得し、クロック制御部１１６に供給する。
【００３５】
クロック制御部１１６には、短時間平均値監視部１１４からの短時間平均値Ｅと、長時間平均値監視部１１５からの長時間平均値Ｆが供給される。クロック制御部１１６は、各監視部から供給される短時間平均値Ｅ及び長時間平均値Ｆに基づいて、水晶発振器１１７を制御して、水晶発振器１１７からデコーダ１１３に供給されるクロックの周波数を制御する。
【００３６】
デコーダ１１３は、水晶発振器１１７から供給されるクロックの周波数に応じて、バッファ１１２に蓄積された受信データを復号化し、後段のディスプレイ（不図示）などに供給する。
【００３７】
以上のようにして、図３の受信装置１０１は構成される。
【００３８】
［バッファの蓄積容量を利用したクロック制御］
次に、図４及び図５を参照して、バッファ１１２に蓄積された受信データの蓄積容量を利用したクロック制御の概念について説明する。
【００３９】
なお、図４では、説明を簡略化するため、図３の受信装置１０１を構成するブロックのうち、通信部１１１、バッファ１１２、及びデコーダ１１３のみを図示している。
【００４０】
図４に示すように、通信部１１１により受信された受信データは、一旦、バッファ１１２に蓄積される。そして、バッファ１１２に蓄積された受信データは、デコーダ１１３が処理できる最速の速度により、バッファ１１２から取出され、デコーダ１１３に渡されることになる。
【００４１】
ここで、送信側での受信データの符号化に用いられるクロックＡが、受信側での受信データの復号に用いられるクロックＢよりも速い場合、送信側のクロックＡの速度の方が速いため、バッファ１１２内の受信データの蓄積容量が大きくなっていく。一方、送信側のクロックＡが、受信側のクロックＢよりも遅い場合、送信側のクロックＡの速度の方が遅いため、バッファ１１２内の受信データの蓄積容量が小さくなっていく。すなわち、バッファ１１２内の受信データのデータサイズが一定になるように、受信側のデコーダ１１３で用いられるクロックＢを調整することにより、クロックの同期を実現することが可能となる。
【００４２】
図５は、バッファ１１２に蓄積された受信データの蓄積容量の遷移を示す図である。図５においては、横軸は時間軸を表しており、その時間の方向は、図中左側から右側に向かう方向である。また、縦軸はバッファ１１２の蓄積容量の実測値から得られる時間平均値を表しており、図中上側にいくほど、その値が大きくなることを意味する。
【００４３】
図５に示される３つのラインのうち、時間の経過とともに増加しているラインＬｓは、クロックＢがクロックＡよりも遅い場合の遷移を示している。また、ほぼ一定の値となるラインＬｎは、クロックＢがクロックＡとほぼ同等の場合の遷移を示し、時間の経過とともに減少しているラインＬｆは、クロックＢがクロックＡよりも速い場合の遷移を示している。
【００４４】
すなわち、クロック制御においては、クロックＢがクロックＡとほぼ同等になる場合のラインＬｎの遷移が理想となるので、ラインＬｓやラインＬｆのように遷移する場合には、クロックＢの周波数を調整して、それらのラインの遷移が、ラインＬｎの遷移に近づくように制御すればよい。
【００４５】
以上のように、受信側のデコーダ１１３のクロックを、送信側のエンコーダのクロックと同期させるためには、バッファ１１２に蓄積される受信データの蓄積容量を監視して、その監視結果に応じて、クロックの周波数を調整する制御を行えばよいことになる。
【００４６】
［クロック制御処理］
次に、図６のフローチャートを参照して、図３のクロック制御部１１６により実行されるクロック制御処理について説明する。
【００４７】
クロック制御部１１６は、短時間平均値監視部１１４による監視により得られた短時間平均値Ｅを取得し（ステップＳ１１）、取得した短時間平均値Ｅの変化量の絶対値（｜E_t-E_(t-1)｜）が、変更許容閾値Ｇを超えるか否かを判定する（ステップＳ１２）。なお、「E_t-E_(t-1)」において、時刻t，時刻t-1は、短時間平均値監視部１１４による監視の間隔を意味しており、それらの時刻の間隔は、例えば数秒などの短い時間となることは、先に述べたとおりである。
【００４８】
ここで、変更許容閾値Ｇは、短時間平均値Ｅに基づいて、パケットロス、ネットワーク障害、又はネットワークの経路変更などの異常を検出するための基準値であって、変更許容閾値Ｇが低くなるほど、パケットロスなどの異常を検出しやすくなる。この変更許容閾値Ｇには、例えば、ネットワーク環境などに応じた値があらかじめ設定される。
【００４９】
ステップＳ１２において、短時間平均値Ｅの変化量の絶対値が変更許容閾値Ｇ以下になると判定された場合、処理は、ステップＳ１３に進む。ステップＳ１３において、クロック制御部１１６は、長時間平均値監視部１１５による監視により得られた長時間平均値Ｆを取得し、取得した長時間平均値Ｆの変化量（F_u-F_(u-1)）が、正の変更許容閾値Ｈを超えるか否かを判定する（ステップＳ１４）。なお、「F_u-F_(u-1)」において、時刻u，時刻u-1は、長時間平均値監視部１１５による監視の間隔を意味しており、それらの時刻の間隔は、例えば数分などの長い時間となることは、先に述べたとおりである。
【００５０】
ここで、変更許容閾値Ｈは、長時間平均値Ｆを評価して、デコーダ１１３の復号処理に用いられるクロックの周波数を決めるための基準値である。この変更許容閾値Ｈには、例えば、水晶発振器１１７の性能に応じた値があらかじめ設定される。
【００５１】
ステップＳ１４において、長時間平均値Ｆの変化量が正の変更許容閾値Ｈを超えると判定された場合、処理は、ステップＳ１５に進む。ステップＳ１５において、クロック制御部１１６は、デコーダ１１３の復号処理に用いられているクロックの周波数が高くなるように調整して、クロックを高速化させる。
【００５２】
一方、ステップＳ１４において、長時間平均値Ｆの変化量が正の変更許容閾値Ｈ以下となると判定された場合、処理は、ステップＳ１６に進む。ステップＳ１６において、クロック制御部１１６は、長時間平均値Ｆの変化量が、負の変更許容閾値Ｈ未満となるか否かを判定する。
【００５３】
ステップＳ１６において、長時間平均値Ｆの変化量が負の変更許容閾値Ｈ未満となると判定された場合、処理は、ステップＳ１７に進む。ステップＳ１７において、クロック制御部１１６は、デコーダ１１３の復号処理に用いられているクロックの周波数が低くなるように調整して、クロックを低速化させる。
【００５４】
一方、ステップＳ１６において、長時間平均値Ｆの変化量が負の変更許容閾値Ｈ以上となると判定された場合、処理は、ステップＳ１８に進む。ステップＳ１８において、クロック制御部１１６は、デコーダ１１３の復号処理に用いられているクロックの周波数を調整せずに、現在のクロックの速度を維持させる。
【００５５】
このように、クロック制御部１１６は、長時間平均値Ｆの変化量（F_u-F_(u-1)）と、Ｈ，−Ｈとを比較して、長時間平均値Ｆを評価する。そして、クロック制御部１１６は、その評価結果に応じて、クロックの周波数を制御することになる。
【００５６】
すなわち、受信装置１０１においては、F_u-F_(u-1)＞Ｈとなる場合には、クロックの周波数を高くして、高速化したクロックを用いた復号処理が実行される。また、F_u-F_(u-1)＜−Ｈとなる場合には、クロックの周波数を低くして、低速化したクロックを用いた復号処理が実行される。Ｈ≧F_u-F_(u-1)≧−Ｈとなる場合には、クロックの周波数を調整せずに、そのままのクロックの周波数で復号処理が実行される。なお、クロックの周波数の高低の調整幅は、例えば、バッファ１１２の蓄積容量や水晶発振器１１７の性能に応じて適宜調整することができる。
【００５７】
ステップＳ１７又はＳ１８の処理が終了すると、処理は、ステップＳ１１に戻り、再度、ステップＳ１２の判定処理が実行され、短時間平均値Ｅの変化量の絶対値が変更許容閾値Ｇ以下となると判定された場合には、先に述べたステップＳ１３乃至Ｓ１８の処理が繰り返される。これにより、バッファ１１２に蓄積される受信データが、適切な蓄積容量に保たれ、デコーダ１１３のクロックは、送信側のエンコーダのクロックとほぼ一致することになる。
【００５８】
一方、パケットロスなどの異常が発生して、ステップＳ１２において、短時間平均値Ｅの変化量の絶対値が変更許容閾値Ｇを超えると判定された場合、処理は、ステップＳ１９に進む。そして、クロック制御部１１６においては、クロックの周波数の調整を停止している時間の計時が開始され（ステップＳ１９）、その計時時間が調整停止時間αに達するまで（ステップＳ２０の「Yes」）、ステップＳ１９乃至Ｓ２０の処理が繰り返される。
【００５９】
すなわち、パケットロスなどの異常が発生して、クロックの周波数の調整を停止した時間の計時を開始してから、調整停止時間αに達するまでの時間においては、長時間平均値Ｆの評価結果に応じたクロックの周波数の調整（ステップＳ１３乃至Ｓ１８）が停止される。そして、その後、調整停止時間αが経過することで、パケットロスなどの異常の発生によって、バッファ１１２に蓄積される受信データが減少したことによる影響がなくなってから、クロックの周波数の調整が再開される。なお、調整停止時間αには、例えば、長時間平均値監視部１１５による監視の間隔と一致させた、数分間などの時間があらかじめ設定される。
【００６０】
ステップＳ２０の処理が終了すると、処理はステップＳ１１に戻り、再度、ステップＳ１２の判定処理が実行され、短時間平均値Ｅの変化量の絶対値が変更許容閾値Ｇ以下となると判定された場合（ステップＳ１２の「No」）、長時間平均値Ｆの評価結果に応じたクロックの周波数の調整が行われる。一方、パケットロスなどの異常が発生して、短時間平均値Ｅの変化量の絶対値が変更許容閾値Ｇを超えると判定された場合（ステップＳ１２の「Yes」）、所定の調整停止時間αの間、長時間平均値Ｆの評価結果に応じたクロックの周波数の調整が停止されることになる。以上のクロック制御処理が、デコーダ１１３による復号処理が行われている間、クロック制御部１１６により行われる。
【００６１】
図７には、バッファ１１２に蓄積される受信データの蓄積容量が、時系列で図示されている。図７においては、横軸は時間軸を表しており、その時間の方向は、図中左側から右側に向かう方向とされる。また、縦軸はバッファ１１２の蓄積容量を表しており、図中上側にいくほど、その蓄積容量が大きくなることを意味する。
【００６２】
図７において、実線は、短時間平均値Ｅの変化を示し、破線は、長時間平均値Ｆの変化を示している。
【００６３】
すなわち、時刻t0から時刻t1までの間、バッファ１１２に蓄積されるデータの蓄積容量に応じて、短時間平均値Ｅと長時間平均値Ｆは共に上昇するが、短時間平均値Ｅは、長時間平均値Ｆと比べて、その監視の間隔が短いため、その変化の幅がより細かいものになるとともに、より正確な蓄積容量を示すことになる。時刻t0から時刻t1までの間においては、パケットロスなどの異常が発生していないため、長時間平均値Ｆの評価結果に応じたクロックの周波数の調整が行われることになる。
【００６４】
その後、時刻t1において、パケットロスが発生したため、バッファ１１２の蓄積容量は減少することになるが、長時間平均値Ｆでは監視の間隔が長いために、その蓄積容量が、なだらかに減少するのに対して、短時間平均値Ｅでは監視の間隔が短いために、その蓄積容量が、急峻に減少する。先に述べた、図６のクロック制御処理では、短時間平均値Ｅの変化量の絶対値が、変更許容閾値Ｇを超えるかによって、パケットロスが発生しているか否かを判定しているため（図６のステップＳ１２）、パケットロスによって蓄積容量が急激に減少したときでも、その変化を迅速に検出することができる。
【００６５】
そして、時刻t1において、パケットロスによって蓄積容量が急激に減少した場合には、調整停止時間αを経過するまでの間（図７の時刻t2から時刻t3までの間）、長時間平均値Ｆの評価結果に応じたクロックの周波数の調整が停止される。その後、時刻t3において、調整停止時間αが経過すると、長時間平均値Ｆの評価結果に応じたクロックの周波数の調整が再開されることになる。
【００６６】
このように、ネットワークを利用した動画配信においては、ジッタが大きいために、ジッタの影響を小さくした長時間平均値Ｆに基づいて、デコーダ１１３が用いるクロックの周波数を調整するのが理想である。しかしながら、図７に示したように、パケットロスなどの異常が発生することによって長時間平均値Ｆが大きく減少したときに、クロックの周波数を調整すると、その周波数が適切に調整されず、クロックが大きく低速化される原因となる。そこで、図３のクロック制御部１１６においては、長時間平均値Ｆと同時に短時間平均値Ｅについても監視して、短時間平均値Ｅの変化量の絶対値が、変更許容閾値Ｇを超える場合には、パケットロス、ネットワーク障害、又はネットワークの経路変更その他のネットワーク又は受信データの異常の発生が検出されたとみなす。そして、それらの異常が検出された後、所定の調整停止時間αを経過するまでの間は、長時間平均値Ｆの評価結果に応じたクロックの周波数の調整が行われないようにしている。
【００６７】
これにより、パケットロスなどの異常が発生した場合でも、受信側のエンコーダ１１３のクロックが、受信側のエンコーダのクロックと確実に同期するので、長時間の動画であっても映像が破綻することなく、安定して配信し続けることができる。
【００６８】
また、図３の受信装置１０１では、クロックの同期にTTSパケットのタイムスタンプやSTCなどの情報を用いずに、バッファ１１２の蓄積容量から得られる短時間平均値Ｅと、長時間平均値Ｆを用いているため、受信装置１０１内で完結した処理だけでクロックの同期をとることができる。そのため、クロックの同期をとるに際して、動画を配信する側の送信装置に依存せず、受信装置１０１側のみの変更でクロックの同期を行うことができる。
【００６９】
さらに、図３の受信装置１０１では、ネットワークの伝送する際のフォーマットにも依存しないため、例えば、TTS/RTPや、MP4/HTTPなどあらゆる伝送方式に対応することができる他、今後、新たに用いられる可能性のある伝送方式にも適用可能である。また、TTSパケットのタイムスタンプやSTCなどの情報に依存しないため、コーデックから取得される情報が必要ないため、すべてのコーデックに適用することが可能である。
【００７０】
＜２．第２の実施の形態＞
［受信装置の構成］
図８は、本発明を適用した受信装置の一実施の形態の他の構成を示す図である。
【００７１】
なお、図８の受信装置１０１は、図３の受信装置１０１と比べて、バッファ１１２を監視するブロックとして、短時間平均値監視部１１４及び長時間平均値監視部１１５の他に、バッファ蓄積容量監視部１２１が設けられている。それ以外の構成については、図３の受信装置１０１と同様であるため、その説明は適宜省略する。
【００７２】
バッファ蓄積容量監視部１２１は、バッファ１１２に蓄積される受信データの蓄積容量を監視することで、バッファ１１２の現在の蓄積容量（以下、バッファ蓄積容量B_vという）を取得し、クロック制御部１１６に供給する。
【００７３】
クロック制御部１１６には、短時間平均値Ｅ及び長時間平均値Ｆの他に、バッファ蓄積容量監視部１２１からのバッファ蓄積容量B_vが供給される。クロック制御部１１６は、各監視部から供給される短時間平均値Ｅ、長時間平均値Ｆ、及びバッファ蓄積容量B_vに基づいて、水晶発振器１１７を制御して、水晶発振器１１７からデコーダ１１３に供給されるクロックの周波数を制御する。
【００７４】
以上のようにして、図８の受信装置１０１は構成される。
【００７５】
［クロック制御処理］
次に、図９のフローチャートを参照して、図８のクロック制御部１１６により実行されるクロック制御処理について説明する。
【００７６】
ステップＳ３１乃至Ｓ３８においては、図６のステップＳ１１乃至Ｓ１８と同様に、短時間平均値Ｅの変化量の絶対値が変更許容閾値Ｇ以下となると判定された場合（ステップＳ３２の「No」）には、ステップＳ３１乃至Ｓ３８の処理が実行され、長時間平均値の評価結果に応じたクロックの周波数の調整が行われる。
【００７７】
一方、ステップＳ３２において、短時間平均値Ｅの変化量の絶対値が変更許容閾値Ｇを超えると判定された場合、パケットロスなどの異常が発生していることになるので、処理は、ステップＳ３９に進む。そして、クロック制御部１１６においては、クロックの周波数の調整を停止している時間の計時が開始され（ステップＳ３９）、その計時時間が調整停止時間αに達するまで（ステップＳ４０の「Yes」）、ステップＳ４１乃至Ｓ４６の処理が実行される。
【００７８】
すなわち、ステップＳ４１において、クロック制御部１１６は、バッファ蓄積容量監視部１２１による監視により得られたバッファ蓄積容量B_vを取得し、取得したバッファ蓄積容量B_vが、バッファ１１２の蓄積容量の上限値B_thhを超えるか否かを判定する（ステップＳ４２）。
【００７９】
ステップＳ４２において、バッファ蓄積容量B_vが上限値B_thhを超えると判定された場合、処理は、ステップＳ４３に進む。ステップＳ４３において、クロック制御部１１６は、デコーダ１１３の復号処理に用いられているクロックの周波数が高くなるように調整して、クロックを高速化させる。
【００８０】
一方、ステップＳ４２において、バッファ蓄積容量B_vが上限値B_thh以下になると判定された場合、処理は、ステップＳ４４に進む。ステップＳ４４において、クロック制御部１１６は、バッファ蓄積容量B_vが、バッファ１１２の蓄積容量の下限値B_thl未満となるか否かを判定する。
【００８１】
ステップＳ４４において、バッファ蓄積容量B_vが下限値B_thl未満となると判定された場合、処理は、ステップＳ４５に進む。ステップＳ４５において、クロック制御部１１６は、デコーダ１１３の復号処理に用いられているクロックの周波数が低くなるように調整して、クロックを低速化させる。
【００８２】
一方、ステップＳ４４において、バッファ蓄積容量B_vが下限値B_thl以上となると判定された場合、処理は、ステップＳ４６に進む。ステップＳ４６において、クロック制御部１１６は、デコーダ１１３の復号処理に用いられているクロックの周波数を調整せずに、現在のクロックの速度を維持させる。
【００８３】
このように、クロック制御部１１６は、バッファ蓄積容量B_vと、上限値B_thh，下限値B_thlとを比較して、バッファ蓄積容量B_vを監視し続ける。そして、クロック制御部１１６は、その監視結果に応じて、クロックの周波数を調整することになる。
【００８４】
すなわち、受信装置１０１においては、B_v＞B_thhとなる場合には、クロックの周波数を高くして、高速化したクロックを用いた復号処理が実行される。また、B_v＜B_thlとなる場合には、クロックの周波数を低くして、低速化したクロックを用いた復号処理が実行される。B_thh≧B_v≧B_thlとなる場合には、クロックの周波数を調整せずに、そのままのクロックの周波数で復号処理が実行される。
【００８５】
ステップＳ４３，Ｓ４５，又はＳ４６の処理が終了すると、処理は、ステップＳ３９に戻り、再度、ステップＳ３９乃至Ｓ４０の処理が実行され、計時時間が調整停止時間αに達するまで（ステップＳ４０の「Yes」）、ステップＳ４１乃至Ｓ４６の処理が繰り返される。
【００８６】
以上のように、図８のクロック制御部１１６においては、長時間平均値Ｆの評価結果に応じたクロックの周波数の調整を停止している間に、バッファ蓄積容量B_vが監視され、そのバッファ蓄積容量B_vが、上限値B_thhと下限値B_thlの範囲内に収まらないときには、その監視結果に応じたクロックの周波数に調整される。
【００８７】
これにより、長時間平均値Ｆの評価結果に応じたクロックの周波数の調整を停止している間に、バッファ１１２で発生する可能性があるオーバーフローやアンダーフローを未然に防止することができる。すなわち、受信側のエンコーダ１１３のクロックが、受信側のエンコーダのクロックとゆるやかに同期するため、受信側のバッファ１１２のオーバーフローやアンダーフローの発生が抑制され、ネットワークを利用した動画配信を長時間安定して行うことが可能となる。
【００８８】
［本発明を適用したコンピュータの説明］
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【００８９】
そこで、図１０は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【００９０】
プログラムは、コンピュータ２００に内蔵されているハードディスク等の記録部２０８やROM(Read Only Memory)２０２に予め記録しておくことができる。
【００９１】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブルメディア２１１に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブルメディア２１１は、いわゆるパッケージソフトウエアとして提供することができる。
【００９２】
なお、プログラムは、上述したようなリムーバブルメディア２１１からコンピュータ２００にインストールする他、ダウンロードサイトから、デジタル衛星放送用の人工衛星を介して、コンピュータ２００に無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータ２００に有線で転送し、コンピュータ２００では、そのようにして転送されてくるプログラムを、通信部２０９で受信し、記録部２０８にインストールすることができる。
【００９３】
コンピュータ２００は、CPU(Central Processing Unit)２０１を内蔵している。CPU２０１には、バス２０４を介して、入出力インタフェース２０５が接続されており、CPU２０１は、入出力インタフェース２０５を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部２０６が操作等されることにより指令が入力されると、それに従って、ROM２０２に格納されているプログラムを実行する。あるいは、また、CPU２０１は、記録部２０８に格納されているプログラム、衛星若しくはネットワークから転送され、通信部２０９で受信されて記録部２０８にインストールされたプログラム、またはドライブ２１０に装着されたリムーバブルメディア２１１から読み出されて記録部２０８にインストールされたプログラムを、RAM(Random Access Memory)２０３にロードして実行する。これにより、CPU２０１は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU２０１は、その処理結果を、必要に応じて、例えば、入出力インタフェース２０５を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部２０７から出力、あるいは、通信部２０９から送信、さらには、記録部２０８に記録等させる。
【００９４】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【００９５】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【００９６】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【００９７】
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【００９８】
１０１  受信装置，  １１１  通信部，  １１２  バッファ，  １１３  デコーダ，  １１４  短時間平均値監視部，  １１５  長時間平均値監視部，  １１６  クロック制御部，  １１７  水晶発振器，  １２１  バッファ蓄積容量監視部，  ２００  コンピュータ，  ２０１  CPU
【図１】
2012129677.tif 000003
【図２】
2012129677.tif 000004
【図３】
2012129677.tif 000005
【図４】
2012129677.tif 000006
【図５】
2012129677.tif 000007
【図６】
2012129677.tif 000008
【図７】
2012129677.tif 000009
【図８】
2012129677.tif 000010
【図９】
2012129677.tif 000011
【図１０】
2012129677.tif 000012