説明

受信装置及び方法、並びにプログラム

【課題】クロックの同期を確実にとることができるようにする。
【解決手段】短時間平均値監視部114は、バッファ112に順次蓄積される受信データの数秒ごとの蓄積容量の平均を示す短時間平均値を取得し、長時間平均値監視部115は、バッファ112に順次蓄積される受信データの数分ごとの蓄積容量の平均を示す長時間平均値を取得する。クロック制御部116は、取得された長時間平均値の評価結果に応じて、デコーダ113が受信データの処理を行うためのクロックの周波数を制御するとともに、取得された短時間平均値に基づいてパケットロスなどの異常が検出された場合、クロックの周波数の調整を停止し、その異常が検出されてから所定の時間が経過した後、クロックの周波数の調整を再開する。本発明は、例えば、ネットワークを利用した動画配信において動画を受信する受信装置に適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、受信装置及び方法、並びにプログラムに関し、特に、クロックの同期を確実にとることができるようにした受信装置及び方法、並びにプログラムに関する。
【背景技術】
【0002】
近年、インターネットに代表される情報通信手段の発展により、ネットワークを介して、動画や音声のデータを伝送して提供するサービスが普及している。この種のサービスで用いられるデータの伝送方式としては、いわゆるストリーミング形式の伝送方式が広く利用されている。
【0003】
図1は、ネットワークを利用した動画配信を行う動画配信システムの構成を示す図である。
【0004】
この動画配信システムにおいては、送信装置12によって、カメラ11により撮影された動画が、ネットワーク13を介して受信装置14に送信され、ディスプレイ15に表示される。具体的には、送信装置12では、撮影された動画のデータが、エンコーダ21により符号化され、さらにRTP(Real time Transport Protocol)パケット等にパケタイズされてから、ネットワーク13を経由して送信される。そして、受信装置14では、ネットワーク13を介してRTPパケットが受信され、そのRTPパケットに格納されたデータが、デコーダ34により復号され、ディスプレイ15に表示される。
【0005】
送信装置12において、エンコーダ21は、カメラ11により撮影された動画のデータと共に入力されるクロックAの周波数に基づいて動作することで、そのデータの符号化を行う。一方、受信装置14においては、デコーダ34が、CPU31乃至VCXO33により生成されるクロックBの周波数に基づいて動作することで、ネットワーク13を介して受信したデータの復号を行う。また、受信装置14には受信データを一時的に蓄積するためのバッファ(不図示)が設けられているが、長時間の動画配信が行われる場合、送信側のクロックAが、受信側のクロックBよりも速いときには、バッファがオーバーフローしてしまう。それとは逆に、送信側のクロックAが、受信側のクロックBよりも遅いときには、バッファがアンダーフローすることになる。
【0006】
このように、ネットワークを利用した動画配信を安定して行うためには、送信側のクロックAと、受信側のクロックBとが同期する必要がある。
【0007】
また、放送波を利用して動画配信を行う場合には、図2に示すように、受信装置51では、引算器61乃至STCカウンタ66が適宜動作して、TSパケット(Transport Stream Packet)に格納されたPCR(Program Clock Reference)の差分値と、STC(System Time Clock)の差分値とを比較することで、クロックの同期が行われる。この方式を、ネットワークを利用した動画配信に採用すると、ネットワークでは、放送波と比べてTSパケットのジッタが大きいため、送信側と受信側のクロックを完全に同期させることが困難なものとなる。
【0008】
本出願人は、ネットワークを利用した動画配信を想定した方式として、受信したTTSパケット(Time stamped Transport Stream Packet)のタイムスタンプと、受信装置のSTCとを比較して、同期処理を行うことを先に提案している(例えば、特許文献1参照)。
【0009】
先の提案においては、ネットワークにおけるジッタの影響が考慮されているため、ジッタがある環境でもクロックの同期を行うことができるが、TTSパケットのタイムスタンプと、STCとを比較しているため、仮に、何らかの原因でSTC等の情報を取得できない場合には、クロックの同期をとることができない可能性がある。
【0010】
また、上述したTTSパケットのタイムスタンプや、STCなどの情報を用いずに、クロックの同期をとる方法として、受信データを一時的に蓄積するバッファの蓄積容量を監視して、その監視結果に応じたクロック制御を行うことが提案されている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特許第4438878号
【特許文献2】特開2003−304224号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
ところで、ネットワークを利用した動画配信においては、十分な通信帯域が得られずにパケットロスが発生したり、ネットワーク障害により通信経路が絶たれたりするなどの異常が発生することがある。
【0013】
上記の特許文献2に開示されている技術であると、単に、バッファの蓄積容量に応じて、クロックの周波数の制御を行っているだけであるため、パケットロスなどの異常が発生して、バッファの蓄積容量が大きく変化した場合には、クロック制御を正常に行うことができない。その結果、クロックの同期がうまくとれないことになる。
【0014】
本発明はこのような状況に鑑みてなされたものであり、パケットロスなどの異常が発生した場合でも、クロックの同期を確実にとることができるようにするものである。
【課題を解決するための手段】
【0015】
本発明の一側面の受信装置は、ネットワークを介して受信された受信データを一時的に蓄積するバッファと、前記バッファに蓄積された前記受信データを処理するデータ処理手段と、前記バッファに順次蓄積される前記受信データの第1の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得する短時間変化値取得手段と、前記第1の単位時間よりも長い第2の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得する長時間変化値取得手段と、取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御するクロック制御手段とを備え、前記クロック制御手段は、取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開する。
【0016】
前記クロック制御手段は、前記短時間変化値の時間的な変化量が、あらかじめ定められた第1の閾値を超える場合、前記異常を検出して、前記長時間変化値の評価結果に応じた前記クロックの周波数の調整を停止する。
【0017】
前記クロック制御手段は、前記短時間変化値の時間的な変化量が、前記第1の閾値以下となる場合、前記長時間変化値の評価結果に応じて、前記クロックの周波数を調整する。
【0018】
前記クロック制御手段は、前記長時間変化値の時間的な変化量が、あらかじめ定められた第2の閾値により定められる範囲を超える場合、前記クロックの周波数が現在の周波数よりも高い第1の周波数となり、前記長時間変化値の時間的な変化量が、前記第2の閾値により定められる範囲未満となる場合、前記クロックの周波数が現在の周波数よりも低い第2の周波数となり、前記長時間変化値の時間的な変化量が、前記第2の閾値により定められる範囲以内となる場合、前記クロックの周波数が現在の周波数のままとなるように評価する。
【0019】
前記バッファに順次蓄積される前記受信データの現在の蓄積容量を取得する蓄積容量取得手段をさらに備え、前記クロック制御手段は、前記長時間変化値の評価結果に応じた前記クロックの周波数の調整を停止しているとき、取得された前記蓄積容量が、あらかじめ定められた前記バッファの蓄積容量の上限値を超える場合、前記クロックの周波数が現在の周波数よりも高い第1の周波数となり、取得された前記蓄積容量が、あらかじめ定められた前記バッファの蓄積容量の下限値未満となる場合、前記クロックの周波数が現在の周波数よりも低い第2の周波数となり、取得された前記蓄積容量が、前記上限値以下、かつ、前記下限値以上となる場合、前記クロックの周波数が現在の周波数のままとなるように調整する。
【0020】
前記短時間変化値は、前記第1の単位時間としての秒単位で得られる、前記バッファに順次蓄積される前記受信データの蓄積容量の平均値であり、前記長時間変化値は、前記第2の単位時間としての分単位で得られる、前記バッファに順次蓄積される前記受信データの蓄積容量の平均値である。
【0021】
前記異常は、前記ネットワークの異常としてのネットワーク障害若しくはネットワークの経路変更、又は前記受信データの異常としてのパケットロスである。
【0022】
本発明の一側面の受信方法は、ネットワークを介して受信された受信データを一時的に蓄積するバッファと、前記バッファに蓄積された前記受信データを処理するデータ処理手段とを備える受信装置が、前記バッファに順次蓄積される前記受信データの第1の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得し、前記第1の単位時間よりも長い第2の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得し、取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御し、取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開するステップを含む。
【0023】
本発明の一側面のプログラムは、ネットワークを介して受信された受信データを一時的に蓄積するバッファと、前記バッファに蓄積された前記受信データを処理するデータ処理手段とを備える機器を制御するコンピュータに実行させるプログラムであって、前記バッファに順次蓄積される前記受信データの第1の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得し、前記第1の単位時間よりも長い第2の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得し、取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御し、取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開するステップを含む。
【0024】
ネットワークとは、少なくとも2つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであってもよいし、1つの装置を構成している内部ブロックどうしであってもよい。
【0025】
本発明の一側面の受信装置及び方法、並びにプログラムにおいては、バッファに順次蓄積される受信データの第1の単位時間ごとの蓄積容量の変化を示す短時間変化値が取得され、第1の単位時間よりも長い第2の単位時間ごとの蓄積容量の変化を示す長時間変化値が取得され、取得された長時間変化値の評価結果に応じて、データ処理手段が受信データの処理を行うためのクロックの周波数が制御される。また、取得された短時間変化値に基づいてネットワーク又は受信データの異常が検出された場合、クロックの周波数の調整が停止され、その異常が検出されてから所定の調整停止時間が経過した後、クロックの周波数の調整が再開される。
【発明の効果】
【0026】
本発明の一側面によれば、クロックの同期を確実にとることができる。
【図面の簡単な説明】
【0027】
【図1】ネットワークを利用した動画配信を行う動画配信システムの構成を示す図である。
【図2】放送波を利用した動画配信における受信装置の構成を示す図である。
【図3】本発明を適用した受信装置の一実施の形態の構成を示す図である。
【図4】バッファの蓄積容量を利用したクロック制御の概念を示す図である。
【図5】バッファの蓄積容量の遷移を示す図である。
【図6】図3のクロック制御部によるクロック制御処理を説明するフローチャートである。
【図7】短時間平均値と長時間平均値の時間的な遷移を示す図である。
【図8】本発明を適用した受信装置の一実施の形態の他の構成を示す図である。
【図9】図8のクロック制御部によるクロック制御処理を説明するフローチャートである。
【図10】コンピュータのハードウェアの構成例を示す図である。
【発明を実施するための形態】
【0028】
以下、本発明を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態
2.第2の実施の形態
【0029】
<1.第1の実施の形態>
[受信装置の構成]
図3は、本発明を適用した受信装置の一実施の形態の構成を示す図である。
【0030】
受信装置101は、通信部111、バッファ112、デコーダ113、短時間平均値監視部114、長時間平均値監視部115、クロック制御部116、及び水晶発振器117から構成される。
【0031】
通信部111は、ネットワークを介して送信装置から送信されてくる動画などの受信データを受信し、バッファ112に供給する。
【0032】
バッファ112は、通信部111から供給される受信データを一時的に蓄積し、蓄積された受信データを順次、デコーダ113に供給する。
【0033】
短時間平均値監視部114は、バッファ112に蓄積される受信データの蓄積容量を監視することで、例えば秒単位などの短い単位時間ごとに得られる、バッファ112に蓄積される受信データの蓄積容量の平均値(以下、短時間平均値Eという)を取得し、クロック制御部116に供給する。
【0034】
長時間平均値監視部115は、バッファ112に蓄積される受信データの蓄積容量を監視することで、例えば分単位などの長い単位時間ごとに得られる、バッファ112に蓄積される受信データの蓄積容量の平均値(以下、長時間平均値Fという)を取得し、クロック制御部116に供給する。
【0035】
クロック制御部116には、短時間平均値監視部114からの短時間平均値Eと、長時間平均値監視部115からの長時間平均値Fが供給される。クロック制御部116は、各監視部から供給される短時間平均値E及び長時間平均値Fに基づいて、水晶発振器117を制御して、水晶発振器117からデコーダ113に供給されるクロックの周波数を制御する。
【0036】
デコーダ113は、水晶発振器117から供給されるクロックの周波数に応じて、バッファ112に蓄積された受信データを復号化し、後段のディスプレイ(不図示)などに供給する。
【0037】
以上のようにして、図3の受信装置101は構成される。
【0038】
[バッファの蓄積容量を利用したクロック制御]
次に、図4及び図5を参照して、バッファ112に蓄積された受信データの蓄積容量を利用したクロック制御の概念について説明する。
【0039】
なお、図4では、説明を簡略化するため、図3の受信装置101を構成するブロックのうち、通信部111、バッファ112、及びデコーダ113のみを図示している。
【0040】
図4に示すように、通信部111により受信された受信データは、一旦、バッファ112に蓄積される。そして、バッファ112に蓄積された受信データは、デコーダ113が処理できる最速の速度により、バッファ112から取出され、デコーダ113に渡されることになる。
【0041】
ここで、送信側での受信データの符号化に用いられるクロックAが、受信側での受信データの復号に用いられるクロックBよりも速い場合、送信側のクロックAの速度の方が速いため、バッファ112内の受信データの蓄積容量が大きくなっていく。一方、送信側のクロックAが、受信側のクロックBよりも遅い場合、送信側のクロックAの速度の方が遅いため、バッファ112内の受信データの蓄積容量が小さくなっていく。すなわち、バッファ112内の受信データのデータサイズが一定になるように、受信側のデコーダ113で用いられるクロックBを調整することにより、クロックの同期を実現することが可能となる。
【0042】
図5は、バッファ112に蓄積された受信データの蓄積容量の遷移を示す図である。図5においては、横軸は時間軸を表しており、その時間の方向は、図中左側から右側に向かう方向である。また、縦軸はバッファ112の蓄積容量の実測値から得られる時間平均値を表しており、図中上側にいくほど、その値が大きくなることを意味する。
【0043】
図5に示される3つのラインのうち、時間の経過とともに増加しているラインLは、クロックBがクロックAよりも遅い場合の遷移を示している。また、ほぼ一定の値となるラインLは、クロックBがクロックAとほぼ同等の場合の遷移を示し、時間の経過とともに減少しているラインLは、クロックBがクロックAよりも速い場合の遷移を示している。
【0044】
すなわち、クロック制御においては、クロックBがクロックAとほぼ同等になる場合のラインLの遷移が理想となるので、ラインLやラインLのように遷移する場合には、クロックBの周波数を調整して、それらのラインの遷移が、ラインLの遷移に近づくように制御すればよい。
【0045】
以上のように、受信側のデコーダ113のクロックを、送信側のエンコーダのクロックと同期させるためには、バッファ112に蓄積される受信データの蓄積容量を監視して、その監視結果に応じて、クロックの周波数を調整する制御を行えばよいことになる。
【0046】
[クロック制御処理]
次に、図6のフローチャートを参照して、図3のクロック制御部116により実行されるクロック制御処理について説明する。
【0047】
クロック制御部116は、短時間平均値監視部114による監視により得られた短時間平均値Eを取得し(ステップS11)、取得した短時間平均値Eの変化量の絶対値(|E_t-E_(t-1)|)が、変更許容閾値Gを超えるか否かを判定する(ステップS12)。なお、「E_t-E_(t-1)」において、時刻t,時刻t-1は、短時間平均値監視部114による監視の間隔を意味しており、それらの時刻の間隔は、例えば数秒などの短い時間となることは、先に述べたとおりである。
【0048】
ここで、変更許容閾値Gは、短時間平均値Eに基づいて、パケットロス、ネットワーク障害、又はネットワークの経路変更などの異常を検出するための基準値であって、変更許容閾値Gが低くなるほど、パケットロスなどの異常を検出しやすくなる。この変更許容閾値Gには、例えば、ネットワーク環境などに応じた値があらかじめ設定される。
【0049】
ステップS12において、短時間平均値Eの変化量の絶対値が変更許容閾値G以下になると判定された場合、処理は、ステップS13に進む。ステップS13において、クロック制御部116は、長時間平均値監視部115による監視により得られた長時間平均値Fを取得し、取得した長時間平均値Fの変化量(F_u-F_(u-1))が、正の変更許容閾値Hを超えるか否かを判定する(ステップS14)。なお、「F_u-F_(u-1)」において、時刻u,時刻u-1は、長時間平均値監視部115による監視の間隔を意味しており、それらの時刻の間隔は、例えば数分などの長い時間となることは、先に述べたとおりである。
【0050】
ここで、変更許容閾値Hは、長時間平均値Fを評価して、デコーダ113の復号処理に用いられるクロックの周波数を決めるための基準値である。この変更許容閾値Hには、例えば、水晶発振器117の性能に応じた値があらかじめ設定される。
【0051】
ステップS14において、長時間平均値Fの変化量が正の変更許容閾値Hを超えると判定された場合、処理は、ステップS15に進む。ステップS15において、クロック制御部116は、デコーダ113の復号処理に用いられているクロックの周波数が高くなるように調整して、クロックを高速化させる。
【0052】
一方、ステップS14において、長時間平均値Fの変化量が正の変更許容閾値H以下となると判定された場合、処理は、ステップS16に進む。ステップS16において、クロック制御部116は、長時間平均値Fの変化量が、負の変更許容閾値H未満となるか否かを判定する。
【0053】
ステップS16において、長時間平均値Fの変化量が負の変更許容閾値H未満となると判定された場合、処理は、ステップS17に進む。ステップS17において、クロック制御部116は、デコーダ113の復号処理に用いられているクロックの周波数が低くなるように調整して、クロックを低速化させる。
【0054】
一方、ステップS16において、長時間平均値Fの変化量が負の変更許容閾値H以上となると判定された場合、処理は、ステップS18に進む。ステップS18において、クロック制御部116は、デコーダ113の復号処理に用いられているクロックの周波数を調整せずに、現在のクロックの速度を維持させる。
【0055】
このように、クロック制御部116は、長時間平均値Fの変化量(F_u-F_(u-1))と、H,−Hとを比較して、長時間平均値Fを評価する。そして、クロック制御部116は、その評価結果に応じて、クロックの周波数を制御することになる。
【0056】
すなわち、受信装置101においては、F_u-F_(u-1)>Hとなる場合には、クロックの周波数を高くして、高速化したクロックを用いた復号処理が実行される。また、F_u-F_(u-1)<−Hとなる場合には、クロックの周波数を低くして、低速化したクロックを用いた復号処理が実行される。H≧F_u-F_(u-1)≧−Hとなる場合には、クロックの周波数を調整せずに、そのままのクロックの周波数で復号処理が実行される。なお、クロックの周波数の高低の調整幅は、例えば、バッファ112の蓄積容量や水晶発振器117の性能に応じて適宜調整することができる。
【0057】
ステップS17又はS18の処理が終了すると、処理は、ステップS11に戻り、再度、ステップS12の判定処理が実行され、短時間平均値Eの変化量の絶対値が変更許容閾値G以下となると判定された場合には、先に述べたステップS13乃至S18の処理が繰り返される。これにより、バッファ112に蓄積される受信データが、適切な蓄積容量に保たれ、デコーダ113のクロックは、送信側のエンコーダのクロックとほぼ一致することになる。
【0058】
一方、パケットロスなどの異常が発生して、ステップS12において、短時間平均値Eの変化量の絶対値が変更許容閾値Gを超えると判定された場合、処理は、ステップS19に進む。そして、クロック制御部116においては、クロックの周波数の調整を停止している時間の計時が開始され(ステップS19)、その計時時間が調整停止時間αに達するまで(ステップS20の「Yes」)、ステップS19乃至S20の処理が繰り返される。
【0059】
すなわち、パケットロスなどの異常が発生して、クロックの周波数の調整を停止した時間の計時を開始してから、調整停止時間αに達するまでの時間においては、長時間平均値Fの評価結果に応じたクロックの周波数の調整(ステップS13乃至S18)が停止される。そして、その後、調整停止時間αが経過することで、パケットロスなどの異常の発生によって、バッファ112に蓄積される受信データが減少したことによる影響がなくなってから、クロックの周波数の調整が再開される。なお、調整停止時間αには、例えば、長時間平均値監視部115による監視の間隔と一致させた、数分間などの時間があらかじめ設定される。
【0060】
ステップS20の処理が終了すると、処理はステップS11に戻り、再度、ステップS12の判定処理が実行され、短時間平均値Eの変化量の絶対値が変更許容閾値G以下となると判定された場合(ステップS12の「No」)、長時間平均値Fの評価結果に応じたクロックの周波数の調整が行われる。一方、パケットロスなどの異常が発生して、短時間平均値Eの変化量の絶対値が変更許容閾値Gを超えると判定された場合(ステップS12の「Yes」)、所定の調整停止時間αの間、長時間平均値Fの評価結果に応じたクロックの周波数の調整が停止されることになる。以上のクロック制御処理が、デコーダ113による復号処理が行われている間、クロック制御部116により行われる。
【0061】
図7には、バッファ112に蓄積される受信データの蓄積容量が、時系列で図示されている。図7においては、横軸は時間軸を表しており、その時間の方向は、図中左側から右側に向かう方向とされる。また、縦軸はバッファ112の蓄積容量を表しており、図中上側にいくほど、その蓄積容量が大きくなることを意味する。
【0062】
図7において、実線は、短時間平均値Eの変化を示し、破線は、長時間平均値Fの変化を示している。
【0063】
すなわち、時刻t0から時刻t1までの間、バッファ112に蓄積されるデータの蓄積容量に応じて、短時間平均値Eと長時間平均値Fは共に上昇するが、短時間平均値Eは、長時間平均値Fと比べて、その監視の間隔が短いため、その変化の幅がより細かいものになるとともに、より正確な蓄積容量を示すことになる。時刻t0から時刻t1までの間においては、パケットロスなどの異常が発生していないため、長時間平均値Fの評価結果に応じたクロックの周波数の調整が行われることになる。
【0064】
その後、時刻t1において、パケットロスが発生したため、バッファ112の蓄積容量は減少することになるが、長時間平均値Fでは監視の間隔が長いために、その蓄積容量が、なだらかに減少するのに対して、短時間平均値Eでは監視の間隔が短いために、その蓄積容量が、急峻に減少する。先に述べた、図6のクロック制御処理では、短時間平均値Eの変化量の絶対値が、変更許容閾値Gを超えるかによって、パケットロスが発生しているか否かを判定しているため(図6のステップS12)、パケットロスによって蓄積容量が急激に減少したときでも、その変化を迅速に検出することができる。
【0065】
そして、時刻t1において、パケットロスによって蓄積容量が急激に減少した場合には、調整停止時間αを経過するまでの間(図7の時刻t2から時刻t3までの間)、長時間平均値Fの評価結果に応じたクロックの周波数の調整が停止される。その後、時刻t3において、調整停止時間αが経過すると、長時間平均値Fの評価結果に応じたクロックの周波数の調整が再開されることになる。
【0066】
このように、ネットワークを利用した動画配信においては、ジッタが大きいために、ジッタの影響を小さくした長時間平均値Fに基づいて、デコーダ113が用いるクロックの周波数を調整するのが理想である。しかしながら、図7に示したように、パケットロスなどの異常が発生することによって長時間平均値Fが大きく減少したときに、クロックの周波数を調整すると、その周波数が適切に調整されず、クロックが大きく低速化される原因となる。そこで、図3のクロック制御部116においては、長時間平均値Fと同時に短時間平均値Eについても監視して、短時間平均値Eの変化量の絶対値が、変更許容閾値Gを超える場合には、パケットロス、ネットワーク障害、又はネットワークの経路変更その他のネットワーク又は受信データの異常の発生が検出されたとみなす。そして、それらの異常が検出された後、所定の調整停止時間αを経過するまでの間は、長時間平均値Fの評価結果に応じたクロックの周波数の調整が行われないようにしている。
【0067】
これにより、パケットロスなどの異常が発生した場合でも、受信側のエンコーダ113のクロックが、受信側のエンコーダのクロックと確実に同期するので、長時間の動画であっても映像が破綻することなく、安定して配信し続けることができる。
【0068】
また、図3の受信装置101では、クロックの同期にTTSパケットのタイムスタンプやSTCなどの情報を用いずに、バッファ112の蓄積容量から得られる短時間平均値Eと、長時間平均値Fを用いているため、受信装置101内で完結した処理だけでクロックの同期をとることができる。そのため、クロックの同期をとるに際して、動画を配信する側の送信装置に依存せず、受信装置101側のみの変更でクロックの同期を行うことができる。
【0069】
さらに、図3の受信装置101では、ネットワークの伝送する際のフォーマットにも依存しないため、例えば、TTS/RTPや、MP4/HTTPなどあらゆる伝送方式に対応することができる他、今後、新たに用いられる可能性のある伝送方式にも適用可能である。また、TTSパケットのタイムスタンプやSTCなどの情報に依存しないため、コーデックから取得される情報が必要ないため、すべてのコーデックに適用することが可能である。
【0070】
<2.第2の実施の形態>
[受信装置の構成]
図8は、本発明を適用した受信装置の一実施の形態の他の構成を示す図である。
【0071】
なお、図8の受信装置101は、図3の受信装置101と比べて、バッファ112を監視するブロックとして、短時間平均値監視部114及び長時間平均値監視部115の他に、バッファ蓄積容量監視部121が設けられている。それ以外の構成については、図3の受信装置101と同様であるため、その説明は適宜省略する。
【0072】
バッファ蓄積容量監視部121は、バッファ112に蓄積される受信データの蓄積容量を監視することで、バッファ112の現在の蓄積容量(以下、バッファ蓄積容量B_vという)を取得し、クロック制御部116に供給する。
【0073】
クロック制御部116には、短時間平均値E及び長時間平均値Fの他に、バッファ蓄積容量監視部121からのバッファ蓄積容量B_vが供給される。クロック制御部116は、各監視部から供給される短時間平均値E、長時間平均値F、及びバッファ蓄積容量B_vに基づいて、水晶発振器117を制御して、水晶発振器117からデコーダ113に供給されるクロックの周波数を制御する。
【0074】
以上のようにして、図8の受信装置101は構成される。
【0075】
[クロック制御処理]
次に、図9のフローチャートを参照して、図8のクロック制御部116により実行されるクロック制御処理について説明する。
【0076】
ステップS31乃至S38においては、図6のステップS11乃至S18と同様に、短時間平均値Eの変化量の絶対値が変更許容閾値G以下となると判定された場合(ステップS32の「No」)には、ステップS31乃至S38の処理が実行され、長時間平均値の評価結果に応じたクロックの周波数の調整が行われる。
【0077】
一方、ステップS32において、短時間平均値Eの変化量の絶対値が変更許容閾値Gを超えると判定された場合、パケットロスなどの異常が発生していることになるので、処理は、ステップS39に進む。そして、クロック制御部116においては、クロックの周波数の調整を停止している時間の計時が開始され(ステップS39)、その計時時間が調整停止時間αに達するまで(ステップS40の「Yes」)、ステップS41乃至S46の処理が実行される。
【0078】
すなわち、ステップS41において、クロック制御部116は、バッファ蓄積容量監視部121による監視により得られたバッファ蓄積容量B_vを取得し、取得したバッファ蓄積容量B_vが、バッファ112の蓄積容量の上限値B_thhを超えるか否かを判定する(ステップS42)。
【0079】
ステップS42において、バッファ蓄積容量B_vが上限値B_thhを超えると判定された場合、処理は、ステップS43に進む。ステップS43において、クロック制御部116は、デコーダ113の復号処理に用いられているクロックの周波数が高くなるように調整して、クロックを高速化させる。
【0080】
一方、ステップS42において、バッファ蓄積容量B_vが上限値B_thh以下になると判定された場合、処理は、ステップS44に進む。ステップS44において、クロック制御部116は、バッファ蓄積容量B_vが、バッファ112の蓄積容量の下限値B_thl未満となるか否かを判定する。
【0081】
ステップS44において、バッファ蓄積容量B_vが下限値B_thl未満となると判定された場合、処理は、ステップS45に進む。ステップS45において、クロック制御部116は、デコーダ113の復号処理に用いられているクロックの周波数が低くなるように調整して、クロックを低速化させる。
【0082】
一方、ステップS44において、バッファ蓄積容量B_vが下限値B_thl以上となると判定された場合、処理は、ステップS46に進む。ステップS46において、クロック制御部116は、デコーダ113の復号処理に用いられているクロックの周波数を調整せずに、現在のクロックの速度を維持させる。
【0083】
このように、クロック制御部116は、バッファ蓄積容量B_vと、上限値B_thh,下限値B_thlとを比較して、バッファ蓄積容量B_vを監視し続ける。そして、クロック制御部116は、その監視結果に応じて、クロックの周波数を調整することになる。
【0084】
すなわち、受信装置101においては、B_v>B_thhとなる場合には、クロックの周波数を高くして、高速化したクロックを用いた復号処理が実行される。また、B_v<B_thlとなる場合には、クロックの周波数を低くして、低速化したクロックを用いた復号処理が実行される。B_thh≧B_v≧B_thlとなる場合には、クロックの周波数を調整せずに、そのままのクロックの周波数で復号処理が実行される。
【0085】
ステップS43,S45,又はS46の処理が終了すると、処理は、ステップS39に戻り、再度、ステップS39乃至S40の処理が実行され、計時時間が調整停止時間αに達するまで(ステップS40の「Yes」)、ステップS41乃至S46の処理が繰り返される。
【0086】
以上のように、図8のクロック制御部116においては、長時間平均値Fの評価結果に応じたクロックの周波数の調整を停止している間に、バッファ蓄積容量B_vが監視され、そのバッファ蓄積容量B_vが、上限値B_thhと下限値B_thlの範囲内に収まらないときには、その監視結果に応じたクロックの周波数に調整される。
【0087】
これにより、長時間平均値Fの評価結果に応じたクロックの周波数の調整を停止している間に、バッファ112で発生する可能性があるオーバーフローやアンダーフローを未然に防止することができる。すなわち、受信側のエンコーダ113のクロックが、受信側のエンコーダのクロックとゆるやかに同期するため、受信側のバッファ112のオーバーフローやアンダーフローの発生が抑制され、ネットワークを利用した動画配信を長時間安定して行うことが可能となる。
【0088】
[本発明を適用したコンピュータの説明]
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0089】
そこで、図10は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【0090】
プログラムは、コンピュータ200に内蔵されているハードディスク等の記録部208やROM(Read Only Memory)202に予め記録しておくことができる。
【0091】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブルメディア211に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブルメディア211は、いわゆるパッケージソフトウエアとして提供することができる。
【0092】
なお、プログラムは、上述したようなリムーバブルメディア211からコンピュータ200にインストールする他、ダウンロードサイトから、デジタル衛星放送用の人工衛星を介して、コンピュータ200に無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータ200に有線で転送し、コンピュータ200では、そのようにして転送されてくるプログラムを、通信部209で受信し、記録部208にインストールすることができる。
【0093】
コンピュータ200は、CPU(Central Processing Unit)201を内蔵している。CPU201には、バス204を介して、入出力インタフェース205が接続されており、CPU201は、入出力インタフェース205を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部206が操作等されることにより指令が入力されると、それに従って、ROM202に格納されているプログラムを実行する。あるいは、また、CPU201は、記録部208に格納されているプログラム、衛星若しくはネットワークから転送され、通信部209で受信されて記録部208にインストールされたプログラム、またはドライブ210に装着されたリムーバブルメディア211から読み出されて記録部208にインストールされたプログラムを、RAM(Random Access Memory)203にロードして実行する。これにより、CPU201は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU201は、その処理結果を、必要に応じて、例えば、入出力インタフェース205を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部207から出力、あるいは、通信部209から送信、さらには、記録部208に記録等させる。
【0094】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
【0095】
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0096】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0097】
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0098】
101 受信装置, 111 通信部, 112 バッファ, 113 デコーダ, 114 短時間平均値監視部, 115 長時間平均値監視部, 116 クロック制御部, 117 水晶発振器, 121 バッファ蓄積容量監視部, 200 コンピュータ, 201 CPU

【特許請求の範囲】
【請求項1】
ネットワークを介して受信された受信データを一時的に蓄積するバッファと、
前記バッファに蓄積された前記受信データを処理するデータ処理手段と、
前記バッファに順次蓄積される前記受信データの第1の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得する短時間変化値取得手段と、
前記第1の単位時間よりも長い第2の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得する長時間変化値取得手段と、
取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御するクロック制御手段と
を備え、
前記クロック制御手段は、取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開する
受信装置。
【請求項2】
前記クロック制御手段は、前記短時間変化値の時間的な変化量が、あらかじめ定められた第1の閾値を超える場合、前記異常を検出して、前記長時間変化値の評価結果に応じた前記クロックの周波数の調整を停止する
請求項1に記載の受信装置。
【請求項3】
前記クロック制御手段は、前記短時間変化値の時間的な変化量が、前記第1の閾値以下となる場合、前記長時間変化値の評価結果に応じて、前記クロックの周波数を調整する
請求項2に記載の受信装置。
【請求項4】
前記クロック制御手段は、
前記長時間変化値の時間的な変化量が、あらかじめ定められた第2の閾値により定められる範囲を超える場合、前記クロックの周波数が現在の周波数よりも高い第1の周波数となり、
前記長時間変化値の時間的な変化量が、前記第2の閾値により定められる範囲未満となる場合、前記クロックの周波数が現在の周波数よりも低い第2の周波数となり、
前記長時間変化値の時間的な変化量が、前記第2の閾値により定められる範囲以内となる場合、前記クロックの周波数が現在の周波数のままとなるように
評価する
請求項3に記載の受信装置。
【請求項5】
前記バッファに順次蓄積される前記受信データの現在の蓄積容量を取得する蓄積容量取得手段をさらに備え、
前記クロック制御手段は、前記長時間変化値の評価結果に応じた前記クロックの周波数の調整を停止しているとき、
取得された前記蓄積容量が、あらかじめ定められた前記バッファの蓄積容量の上限値を超える場合、前記クロックの周波数が現在の周波数よりも高い第1の周波数となり、
取得された前記蓄積容量が、あらかじめ定められた前記バッファの蓄積容量の下限値未満となる場合、前記クロックの周波数が現在の周波数よりも低い第2の周波数となり、
取得された前記蓄積容量が、前記上限値以下、かつ、前記下限値以上となる場合、前記クロックの周波数が現在の周波数のままとなるように
調整する
請求項2に記載の受信装置。
【請求項6】
前記短時間変化値は、前記第1の単位時間としての秒単位で得られる、前記バッファに順次蓄積される前記受信データの蓄積容量の平均値であり、
前記長時間変化値は、前記第2の単位時間としての分単位で得られる、前記バッファに順次蓄積される前記受信データの蓄積容量の平均値である
請求項1に記載の受信装置。
【請求項7】
前記異常は、前記ネットワークの異常としてのネットワーク障害若しくはネットワークの経路変更、又は前記受信データの異常としてのパケットロスである
請求項1に記載の受信装置。
【請求項8】
ネットワークを介して受信された受信データを一時的に蓄積するバッファと、前記バッファに蓄積された前記受信データを処理するデータ処理手段とを備える受信装置が、
前記バッファに順次蓄積される前記受信データの第1の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得し、
前記第1の単位時間よりも長い第2の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得し、
取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御し、
取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開する
ステップを含む受信方法。
【請求項9】
ネットワークを介して受信された受信データを一時的に蓄積するバッファと、前記バッファに蓄積された前記受信データを処理するデータ処理手段とを備える機器を制御するコンピュータに実行させるプログラムであって、
前記バッファに順次蓄積される前記受信データの第1の単位時間ごとの蓄積容量の変化を示す短時間変化値を取得し、
前記第1の単位時間よりも長い第2の単位時間ごとの蓄積容量の変化を示す長時間変化値を取得し、
取得された前記長時間変化値の評価結果に応じて、前記データ処理手段が前記受信データの処理を行うためのクロックの周波数を制御し、
取得された前記短時間変化値に基づいて前記ネットワーク又は前記受信データの異常が検出された場合、前記クロックの周波数の調整を停止し、その異常が検出されてから所定の調整停止時間が経過した後、前記クロックの周波数の調整を再開する
ステップを含むプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−129677(P2012−129677A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2010−277714(P2010−277714)
【出願日】平成22年12月14日(2010.12.14)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】