次に、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
図1は、本発明の映像配信システムの第1の実施形態を示すブロック図である。
図1に示す映像配信システム100は、放送局10と、映像配信サーバ30と、受信端末50を含んでいる。放送局10は、放送するコンテンツデータを放送用の電波20に載せて、放送を行う。映像配信サーバ30は、電波20を受信してコンテンツデータを蓄積し、蓄積したコンテンツデータを、通信ネットワーク40を介して、受信端末50に配信する。
放送局10は、テレビジョン放送などに代表される映像や音声などのコンテンツデータを、MPEG(Moving Picture Experts Group:エムペグ)2−TS(Transport Stream:トランスポートストリーム)形式に従って符号化する。次に、符号化したTSを多重化し、多重化したTSをOFDM(Orthogonal Frequency Division Multiplexing:直交周波数分割多重)変調する。そして、OFDM信号を電波20に載せて、地上デジタルテレビジョン放送として送出する。なお、放送形態は、地上デジタルテレビジョン放送だけでなく、BS(Broadcasting Satellite:放送衛星)デジタル放送やCS(Communications Satellite:通信衛星)デジタル放送などであっても良い。なお、放送局10は、通常、複数局が存在するが、図1においては、説明の容易化のため、1つの放送局10だけを代表として図示している。
MPEG2のTSは、TSパケット(トランスポートストリームパケット)が複数個集まって構成されている。そして、TSパケットには、コンテンツデータを符号化したときの時刻基準を示すところの、タイムスタンプとしてのPCR(Program Clock Reference:プログラム時刻基準参照値)、が含まれている。このPCRは、復号器を有する受信端末側で、符号化した時の時刻基準を、復号器のクロックで再現するために参照される値である。なお、放送局10が、コンテンツデータをMPEG2−TS形式に従って符号化する際のクロックは、放送局10自身が有するクロック生成回路にて生成されたクロックを用いる。また、受信端末50がコンテンツデータを復号する際のクロックは、受信端末50自身が有するクロック生成回路にて生成したクロックを用いる。そして、放送局10のクロックと受信端末50のクロックは必ずしも同期しているものではない、という前提のもとで、以下の説明を行うものとする。
映像配信サーバ30は、放送局10から送出される電波20から、所望のテレビジョン放送(以下、TV放送と略記する)を選局して受信し、受信したOFDM信号を復調して得られたTSを蓄積する受信バッファ31を含んでいる。また、受信バッファ31に蓄積されたTSの量(以下、受信データ量と称す)を計測する受信データ量計測手段32を含んでいる。
さらに、映像配信サーバ30は、受信端末50に配信するTSを蓄積する送信バッファ33を含んでいる。また、送信バッファ33から受信端末50に配信されたTSの量(以下、送出データ量と称す)を計測する送出データ量計測手段34を含んでいる。
また、映像配信サーバ30は、制御手段35と、クロック生成手段36と、タイムスタンプ付加手段37を更に含んでいる。
制御手段35は、映像配信サーバ30全体の動作制御を行う。特に、制御手段35は、受信データ量計測手段32が計測した受信データ量と、送出データ量計測手段34が計測した送出データ量を比較する。比較の結果、受信データ量の方が送出データ量よりも大きい場合は、クロック生成手段36のクロック周波数を上げるよう制御する。逆に、受信データ量の方が送出データ量よりも少ない場合は、クロック生成手段36のクロック周波数を下げるよう制御する。
クロック生成手段36は、映像配信サーバ30の動作クロックを生成する。クロック生成手段36が生成するクロックの通常時のクロック周波数は、MPEG2規格で定められている27MHzである。しかし、制御手段35から、クロック周波数の変更(上げる、又は、下げる)指示が有った場合には、変更指示に従ってクロック周波数を変更する。クロック周波数を変更することにより、クロック生成手段36が生成するクロックが変更(早くなる、又は、遅くなる)される。クロック生成手段36は、自身が生成するクロックを、タイムスタンプ付加手段37に伝達する。
タイムスタンプ付加手段37は、クロック生成手段36から伝達されたクロックの数をカウントする、図示しないカウンタを含んでいる。そして、タイムスタンプ付加手段37は、受信バッファ31に蓄積されているTSを受け、TS内に含まれているTSパケットのタイムスタンプを、クロック生成手段36から伝えられたクロックをカウントしたカウント値に基づき、変更する。タイムスタンプが変更されたTSパケットを含むTSは、送信バッファ33に送出される。
そして、送信バッファ33に蓄積されたTSは、IP(Internet Protocol:アイピー)パケットとして構成され直し、通信ネットワーク40を介し、受信端末50に配信される。
通信ネットワーク40は、構内LAN(Local Area Network:ラン)、移動体通信網、電話交換網、或いは、コンピュータネットワークなどのネットワークである。又は、これらのネットワークを相互に接続するインターネットなどであってもよい。ここで、通信ネットワーク40は、IPパケットをインターネットプロトコル(IP)で通信可能なネットワークである。IPの上位プロトコルとしては、例えば、ICMP(Internet Control Message Protocol:アイシーエムピー)、TCP(Transmission Control Protocol:ティーシーピー)、UDP(User Datagram Protocol:ユーディーピー)などがある。つまり、通信ネットワーク40は、前述したようなプロトコルによって、IPパケットを通信可能なネットワークであるが、伝送揺らぎが発生しうるネットワークである。伝送揺らぎは、通信ネットワーク40の負荷の高い状態が一時的に発生して、データ伝送に遅延が生じた場合などに発生する。また、通信ネットワーク40上でIPパケットが欠落してしまい、受信端末50が映像配信サーバ30に対してIPパケットの再送を要求した場合などにも発生する。
受信端末50は、映像配信サーバ30から配信されるIPパケットを受信し、IPパケットからTSパケットを抽出し、さらに、TSパケットからコンテンツデータを抽出して再生し、TV放送を視聴可能とさせる端末装置である。受信端末50の一例としては、STB(Set Top Box:セットトップボックス)、携帯端末、或いは、LANなどに接続可能なパーソナルコンピュータなどを挙げることが出来る。なお、受信端末50は、通常、複数存在するが、図1においては、説明の容易化のため、1つの受信端末50だけを代表として図示している。
次に、図2、図3、図4を参照して、本実施形態の動作について説明する。
図2は、本実施形態の基本的な動作を説明するフローチャートである。図2においては、図1に示した映像配信サーバ30と受信端末50の動作だけを示し、図1の放送局10の動作は示していない。これは、放送局10は複数局存在し、各放送局10は、前述したように、コンテンツデータをMPEG2−TS形式に従って符号化し、符号化したTSをOFDM変調して、OFDM信号を常に放送している。つまり、放送局10の動作は前述したように決まっており、かつ、常に放送を行っているため、図2においては放送局10の図示を省略するものである。
図2において、受信端末50が、放送局10の何れかから送出されるTV放送を視聴したいとした場合、受信端末50において、TV放送のコンテンツの受信を開始する操作が行われる(図2のステップS1)。TV放送のコンテンツの受信を開始する操作が行われると、受信端末50から、映像配信サーバ30に対し、視聴したいTV放送のチャネルを付したコンテンツ受信要求を送出する(ステップS2)。
コンテンツ受信要求を受信した映像配信サーバ30の制御手段35は、コンテンツ受信要求に付されているチャネルに応じた放送局10を選局する(ステップS3)。すると、図1には図示されていないTV放送受信手段が、選局された放送局10のTV放送を受信し、受信したTV放送の電波20を復調して、コンテンツデータのTSを受信バッファ31に蓄積する(ステップS4)。そして、受信バッファ31内のTSを、タイムスタンプ付加手段37を介して、送信バッファ33に送出する(ステップS5)。コンテンツデータのTSを受けた送信バッファ33からは、映像配信サーバ30により当該TSをIPパケットに構成し直したIPパケットが、受信端末50に対して配信される(ステップS6)。
映像配信サーバ30から配信されたIPパケットを受信した受信端末50は、当該IPパケットを、受信端末50が有するバッファに蓄積する(ステップS7)。そして、受信端末50は、自身が既に映像配信サーバ30から受信したIPパケットの再生を開始しているか否かの判定を行う(ステップS7−1)。再生を開始していない場合(ステップS7−1で「No」)、受信端末50は、映像配信サーバ30に対して次のIPパケットの配信を要求する配信要求メッセージを送出する(ステップS7−2)。すなわち、受信端末50は、自身のバッファに或る程度のIPパケットが蓄積されるまでは、IPパケットを再生する動作を待っている。そして、受信端末50のバッファに或る程度のIPパケットが蓄積された後、受信端末50ではIPパケットを再生し(ステップS7−1で「Yes」の状態)、これを視聴させるよう動作する。
映像配信サーバ30の制御手段35は、ステップS3によりステップS4〜S6を行わせた後、受信端末50から何らかの要求メッセージを受信したか否かを判定する(ステップS8)。ここで仮に、受信端末50から何のメッセージも受信していない場合(ステップS8で「無」)、制御手段35は何の制御も行わず、TV放送受信手段によるTV放送を受信させるステップS4〜S6を継続させる。或いは、受信端末50から何らかのメッセージを受信している場合(ステップS8で「有」)、制御手段35は要求メッセージの種別を判定する(ステップS16)。要求メッセージの種別が、配信要求メッセージであった場合(ステップS16で「配信要求」)、制御手段35はTV放送受信手段によるTV放送を受信させるステップS4〜S6を継続させる。ステップS4〜S6を継続させることにより、受信端末50に対し、映像配信サーバ30からIPパケットが配信される。
すると、受信端末50は、映像配信サーバ30から配信されるIPパケットを、受信端末50が有するバッファに蓄積するようになる。すなわち、受信端末50は、ステップS7の、バッファにIPパケットを蓄積する動作を継続して行う。つまり、受信端末50においては、自身がIPパケットの再生を開始する前は、IPパケットの蓄積を継続し、IPパケットを再生する動作を待っている。そして、受信端末50で再生開始が行われた後、受信端末50はIPパケットを再生して、TV放送を視聴させるよう動作する(ステップS7−1で「Yes」の状態)。
そして、TV放送の視聴を開始させた受信端末50は、自身のバッファに蓄積されている最初のIPパケットから、TSとして受信したコンテンツデータを抽出し、コンテンツデータを再生し、これを視聴させるよう動作する(ステップS10)。再生したIPパケットはバッファから消去する。
次に、受信端末50は、ステップS10で再生を行った際、IPパケットを取得した受信端末50のバッファが、満杯状態であったか否かを判定する(ステップS11)。満杯状態であった場合(ステップS11で「Yes」)、再度、ステップS10を行って、バッファ内から次のIPパケットを取得し、これを再生する。これは、受信端末50のバッファがオーバーフローすることを防ぐため、バッファのIPパケットを減らすために行う動作である。
受信端末50のバッファが満杯状態ではなかった場合(ステップS11で「No」)、受信端末50は、コンテンツの再生を終了するよう指示されているか否かを判定する(ステップS12)。コンテンツ再生を終了する旨の指示がなされていない場合(ステップS12で「No」)、受信端末50は、次のIPパケットを配信させるための配信要求メッセージを、映像配信サーバ30に送出する(ステップS13)。
コンテンツ再生を終了する旨の指示がなされている場合(ステップS12で「Yes」)、受信端末50は、次のIPパケットを配信させないよう、終了要求メッセージを映像配信サーバ30に送出する(ステップS14)。そして、受信端末50は、コンテンツ再生を終了する(ステップS15)。
映像配信サーバ30の制御手段35は、前述したように、受信端末50からの要求メッセージを受信したか否かを判定する(ステップS8)。受信端末50からの要求メッセージを受信している場合(ステップS8で「有」)、制御手段35は要求メッセージの種別を判定する(ステップS16)。要求メッセージの種別が、配信要求メッセージであった場合(ステップS16で「配信要求」)、制御手段35はTV放送受信手段によるTV放送を受信させるステップS4〜S6を継続させる。ステップS4〜S6を継続させることにより、受信端末50に対し、映像配信サーバ30からIPパケットが配信される。
要求メッセージの種別が、終了要求メッセージであった場合(ステップS16で「終了要求」)、映像配信サーバ30の制御手段35は、受信端末50に対するIPパケットの配信を終了する(ステップS17)
以上、図2を参照して、本実施形態の基本的な動作について説明した。
次に、図3を参照して、本実施形態の詳細な動作について説明する。
図3は、本実施形態の詳細な動作を説明するフローチャートである。
図3においては、主に、映像配信サーバ30におけるTSパケットのタイムスタンプの変更動作について説明する。また、参考として、受信端末50における、変更されたタイムスタンプによるコンテンツ、すなわちTSパケット、の再生タイミングの変化、についても説明する。
受信端末50から、コンテンツ受信要求(図2のステップS2)を受信した映像配信サーバ30は、コンテンツ受信要求に付されているチャネルを選局し、選局した放送局10のTV放送の受信を開始する。この時、映像配信サーバ30のクロック生成手段36のクロック周波数は、MPEG2で規格化されている27MHzの一定値である(図3のステップS100)。従って、クロック生成手段36が生成するクロックは一定の値となっている。
TV放送の受信を開始した映像配信サーバ30の制御手段35は、送信バッファ33から或る程度の量のIPパケットが配信された後、受信データ量計測手段32が計測した、TV放送受信開始時からの受信データ量(以降、T1と表現する)を受信する(ステップS110)。また、制御手段35は、送出データ量計測手段34が計測した、配信開始時からの送出データ量(以降、T2と表現する)を受信する(ステップS111)。
次に、制御手段35は、受信データ量(T1)が送出データ量(T2)より大きいかを判定する(ステップS120)。T1>T2であった場合(ステップS120で「Yes」)、クロック生成手段36に対し、クロック周波数を上げるよう指示する。
クロック生成手段36は、自身のクロック周波数を上げることにより、自身が生成するクロックの速度を上げる(ステップS121)。そして、クロック生成手段36は、自身が生成しているクロックを、タイムスタンプ付加手段37に伝達する。
タイムスタンプ付加手段37は、受信バッファ31から受けたTS内のTSパケットのタイムスタンプが増えるよう変更する(ステップS122)。そして、タイムスタンプを増やしたTSパケットを含むTSを送信バッファ33に送出する。送信バッファ33からは、当該TSをIPパケットに構成し直したIPパケットが、受信端末50に対して配信される(ステップS123)。ステップS123の後、制御手段35の制御は、図3の「*1」(図3のステップS140)に移る。
ステップS123により、受信端末50は、タイムスタンプが増えたTSパケットを含むTSを、IPパケットとして受信する。受信端末50で、このタイムスタンプが増えたTSパケットのコンテンツデータを再生する。この時、当該TSパケットのタイムスタンプは増えているため、当該TSパケットの再生タイミングは遅くなる(ステップS124)。
図3のステップS120の判定で、制御手段35が、T1>T2でないと判定した場合(ステップS120で「No」)、制御手段35は、受信データ量(T1)が送出データ量(T2)より小さいかを判定する(ステップS130)。T1<T2であった場合(ステップS130で「Yes」)、クロック生成手段36に対し、クロック周波数を下げるよう指示する。
クロック生成手段36は、自身のクロック周波数を下げることにより、自身が生成するクロックの速度を下げる(ステップS131)。そして、クロック生成手段36は、自身が生成しているクロックを、タイムスタンプ付加手段37に伝達する。
タイムスタンプ付加手段37は、受信バッファ31から受けたTS内のTSパケットのタイムスタンプが減るよう変更する(ステップS132)。そして、タイムスタンプを減らしたTSパケットを含むTSを送信バッファ33に送出する。送信バッファ33からは、当該TSをIPパケットに構成し直したIPパケットが、受信端末50に対して配信される(ステップS133)。ステップS133の後、制御手段35の制御は、図3の「*1」(図3のステップS140)に移る。
ステップS133により、受信端末50は、タイムスタンプを減らしたTSパケットを含むTSを、IPパケットとして受信する。受信端末50で、このタイムスタンプが減ったTSパケットのコンテンツデータを再生する。この時、当該TSパケットのタイムスタンプは減っているため、当該TSパケットの再生タイミングは早くなる(ステップS134)。
図3のステップS130の判定で、制御手段35が、T1<T2でないと判定した場合(ステップS130で「No」)、制御手段35は、受信端末50への配信の終了か否かを判定する(ステップS140)。配信終了でない場合は(ステップS140で「No」)、制御手段35の制御は、ステップS110に戻る。配信終了の場合(ステップS140で「Yes」)、制御手段35は、受信端末50への配信を終了する(ステップS150)。
次に、これまで図3で説明した、映像配信サーバ30におけるTV放送受信開始時からの動作について、図4の具体例を参照して説明する。
図4は、タイムスタンプの変化の様子の一例を示す図である。
図4においては、放送局10、映像配信サーバ30、受信端末50の各々における、TSパケットのタイムスタンプを示している。なお、MPEG2システムにおいては、全てのTSパケットにPCRすなわちタイムスタンプを付す必要は無く、PCRを付したTSパケットの送信間隔を100msec以下にすればよい、と定められている。しかし、図4においては、説明の容易化のため、全てのTSパケットにタイムスタンプが付されており、また、1つのTSには1つのTSパケットが含まれるものとして説明する。さらに、図4においては、放送局10から1つのTS(すなわち、1つのTSパケット)を送出する動作は、放送局10のクロックを「30」カウントする毎に行われるものとする。これは、放送局10のクロックの1波長を1msecとし、1つのTSを30msec毎に送出する場合を、一例として示すものである。
図4において、放送局10から送出するTSパケットの番号は、最初のTSパケットの番号を「0」、2番目のTSパケットの番号を「1」、3番目を「2」・・・などとし、以下同様にTSパケットの番号は「1」ずつ増加するものとする(図4の401列)。また、各TSパケットのタイムスタンプは、「0」番のTSパケットは「000」、「1」番のTSパケットは「030」、「2」番は「060」・・・などとし、以下同様にタイムスタンプは「30」ずつ増加して、放送局10から送出されるものとする(402列)。
映像配信サーバ30は、放送局10から送出されるTSパケットを受信し、自身の受信バッファ31に蓄積する。受信バッファ31に蓄積されたTSパケットのタイムスタンプは、放送局10が付した値と同じ値である(403列)。映像配信サーバ30の送信バッファ33に蓄積されるTSパケットのタイムスタンプは、クロック生成手段36がクロック速度を上げると、受信バッファ31でのタイムスタンプよりも増えた値となる。すなわち、タイムスタンプ付加手段37は、受信バッファ31から受けたTS内のTSパケットのタイムスタンプが増えるよう変更する(図3のS122)。そして、タイムスタンプを増やしたTSパケットを含むTSを送信バッファ33に送出する。逆に、クロック生成手段36がクロック速度を下げると、送信バッファ33に蓄積されるTSパケットのタイムスタンプは、受信バッファ31でのタイムスタンプよりも減った値となる。すなわち、タイムスタンプ付加手段37は、受信バッファ31から受けたTS内のTSパケットのタイムスタンプが減るよう変更する(図3のS132)。そして、タイムスタンプを減らしたTSパケットを含むTSを送信バッファ33に送出する(図4の404列)。
受信端末50のバッファに蓄積されるTSパケットのタイムスタンプは、映像配信サーバ30の送信バッファ33におけるタイムスタンプと同じ値である(405列)。
図4において、映像配信サーバ30は、TSパケット番号が「0」と「1」のTSパケットが、受信バッファ31から送信バッファ33に送出される際には、クロック生成手段36のクロックを変更していないため、タイムスタンプも変更されていない。なお、ここでは、一例として、TSパケット番号が「0」のTSパケットを送信バッファ33に送出した後、クロックを「30」カウントしてから、TSパケット番号が「1」のTSパケットを送出するものとしている。
その後、映像配信サーバ30の制御手段35が、図3のS120で説明したように、受信データ量(T1)>送出データ量(T2)、であると判定した場合、クロック生成手段36は、クロックの速度を上げる。そして、そのクロックを、タイムスタンプ付加手段37に伝達する。この時の状態を、図4では(「注1」)として表示している。なお、ここでは一例として、クロック生成手段36のクロックが、タイムスタンプ付加手段37のカウンタにより、それまでの「30」より「3」だけ増えた「33」カウントされる毎に、次のTSパケットを送信バッファ33に送出するものとする。
図4におけるTSパケット番号が「2」のTSパケットについて見てみることにする。当該TSパケットは、映像配信サーバ30の受信バッファ31から送信バッファ33に送出される際、クロック生成手段36のクロック速度が上がっているため、タイムスタンプ付加手段37によって、タイムスタンプが増やされる。増やされるタイムスタンプは上述したように、直前のTSパケットを送出してから、クロックを「33」カウントした後の値である。従って、図4においては、TSパケット番号が「2」のTSパケットは、TSパケット番号が「1」のTSパケットのタイムスタンプ「030」より「33」増えた「063」に増やされている。以下同様に、TSパケット番号が「3」のTSパケットのタイムスタンプは、TSパケット番号が「2」のTSパケットのタイムスタンプより「33」増えた「096」に増やされる。
ここで、受信端末50におけるTSパケットの再生タイミングについて説明を行う。
受信端末50は、自身が有するクロック生成回路が発生するクロックで動作しており、このクロック生成回路は、基本的には、MPEG2システムで規格化されている27MHzの発振周波数で動作している。しかし、当該クロックは、放送局10のクロックとは必ずしも同期していない場合がある。これは、MPEG2システムで規格化されている発振周波数は、27MHz±810Hzとされており、或る程度の誤差を許容しているためである。また、クロック生成回路を構成する部品の精度や、回路内部の配線長などの製造上の理由により、放送局10や受信端末50のクロック生成回路が全く同一の精度で動作するとは限らない故である。
そして、本実施形態における受信端末50のクロック生成回路は、常に一定のクロックを発生しており、このクロックの値を変更させる機能(例えば、PLL回路、など)は有していない、ということを前提としている。
図4において、受信端末50が、映像配信サーバ30から受信したTSパケットからコンテンツを再生する際、当該TSパケットのタイムスタンプを参照し、そのタイミングでコンテンツの再生を行う。
図4におけるTSパケット番号が「0」のTSパケットを再生した時から、受信端末50は、自身のクロック生成回路のクロックのカウントを開始する。そして、TSパケット番号が「1」のTSパケットを再生するタイミングは、当該TSパケットのタイムスタンプ(すなわち、「030」)を参照して決定する。つまり、自身のクロック生成回路のクロックのカウント値が「030」になった時、TSパケット番号が「1」のTSパケットのコンテンツを再生する。
次のTSパケット番号が「2」のTSパケットを再生する場合は、自身のクロック生成回路のクロックのカウント値が「063」になった時、当該TSパケットのコンテンツを再生する。つまり、再生のタイミングが、放送局10が送出したタイムスタンプ「060」に比べて遅くなる。この時の状態は、図4において(「注2」)として表示している。図2のステップS13として説明したように、受信端末50は、TSパケットを1つ再生するたびに、次のTSパケットを配信するよう、映像配信サーバ30に対して配信要求メッセージを送出する。すると、映像配信サーバ30からは、次のTSパケットが1つ配信される。
つまり、受信端末50におけるTSパケットの再生タイミングが遅くなることにより、映像配信サーバ30が配信する次のTSパケットの配信タイミングも遅くなる。このことにより、映像配信サーバ30の送信バッファ33内のTSパケットは、徐々に増えていくこととなる。従って、映像配信サーバ30の送信バッファ33におけるデータ(つまり、TSパケット)が無くなる状態、つまり、送信バッファ33のアンダーフローを防ぐことになる。仮に、上記の制御がなされずに、映像配信サーバ30の送信バッファ33がアンダーフローを発生した場合、映像配信サーバ30から受信端末50に対して配信するデータ(TSパケット)が無い状態となる。すると、受信端末50のバッファもアンダーフローしてしまい、受信端末50におけるコンテンツの再生が行われなくなってしまう、という結果を生じてしまう。
以上説明したように、映像配信サーバ30のクロック生成手段36のクロック周波数を上げることにより、送信バッファ33のアンダーフローを防ぐことが可能となる。また、映像配信サーバ30の送信バッファ33のアンダーフローを防ぐことにより、受信端末50のバッファのアンダーフローも防ぐことが出来る。
次に、映像配信サーバ30の送信バッファ33のオーバーフローを防ぐ際の動作について説明する。この動作は、図4においては、TSパケット番号が「10」以降のタイムスタンプの変化の様子として示されている。
図4において、映像配信サーバ30は、TSパケット番号が「10」と「11」のTSパケットが、受信バッファ31から送信バッファ33に送出される際には、クロック生成手段36のクロックを変更していないため、タイムスタンプも変更されていない。なお、ここでは、一例として、TSパケット番号が「10」のTSパケットを送信バッファ33に送出した後、クロックを「30」カウントしてから、TSパケット番号が「11」のTSパケットを送出するものとしている。
その後、映像配信サーバ30の制御手段35が、図3のS130で説明したように、受信データ量(T1)<送出データ量(T2)、であると判定した場合、クロック生成手段36は、クロックの速度を下げる。そして、そのクロックを、タイムスタンプ付加手段37に伝達する。この時の状態を、図4では(「注3」)として表示している。なお、ここでは一例として、クロック生成手段36のクロックが、タイムスタンプ付加手段37のカウンタにより、それまでの「30」より「3」だけ減った「27」カウントされる毎に、次のTSパケットを送信バッファ33に送出するものとする。
図4におけるTSパケット番号が「12」のTSパケットについて見てみることにする。当該TSパケットは、映像配信サーバ30の受信バッファ31から送信バッファ33に送出される際、クロック生成手段36のクロック速度が下がっているため、タイムスタンプ付加手段37によって、タイムスタンプが減らされる。減らされるタイムスタンプは上述したように、直前のTSパケットを送出してから、クロックを「27」カウントした後の値である。従って、図4においては、TSパケット番号が「12」のTSパケットは、TSパケット番号が「11」のTSパケットのタイムスタンプ「330」より「27」増えた「357」となっている。以下同様に、TSパケット番号が「13」のTSパケットのタイムスタンプは、TSパケット番号が「12」のTSパケットのタイムスタンプより「27」増えた「384」となる。
ここで、受信端末50におけるTSパケットの再生タイミングについて説明を行う。
図4におけるTSパケット番号が「0」のTSパケットを再生した時から、受信端末50は、自身のクロック生成回路のクロックのカウントを開始している。そして、TSパケット番号が「11」のTSパケットを再生するタイミングは、当該TSパケットのタイムスタンプ(すなわち、「330」)を参照して決定する。つまり、自身のクロック生成回路のクロックのカウント値が「330」になった時、TSパケット番号が「11」のTSパケットのコンテンツを再生する。
次のTSパケット番号が「12」のTSパケットを再生する場合は、自身のクロック生成回路のクロックのカウント値が「357」になった時、当該TSパケットのコンテンツを再生する。つまり、再生のタイミングが、放送局10が送出したタイムスタンプ「360」に比べて早くなる。この時の状態は、図4において(「注4」)として表示している。図2のステップS13として説明したように、受信端末50は、TSパケットを1つ再生するたびに、次のTSパケットを配信するよう、映像配信サーバ30に対して配信要求メッセージを送出する。すると、映像配信サーバ30からは、次のTSパケットが1つ配信される。
つまり、受信端末50におけるTSパケットの再生タイミングが早くなることにより、映像配信サーバ30が配信する次のTSパケットの配信タイミングも早くなる。このことにより、映像配信サーバ30の送信バッファ33内のTSパケットは、徐々に減っていくこととなる。従って、映像配信サーバ30の送信バッファ33におけるデータ(つまり、TSパケット)が送信バッファ33に入りきれなくなる状態、つまり、送信バッファ33のオーバーフローを防ぐことになる。
以上説明したように、映像配信サーバ30のクロック生成手段36のクロック周波数を下げることにより、送信バッファ33のオーバーフローを防ぐことが可能となる。
以上、本発明の第1の実施形態の動作について説明した。
以上説明したように、本実施形態の映像配信サーバ30は、受信した放送データを蓄積受信データとして蓄積する第1の記憶手段(受信バッファ31)と、前記蓄積受信データのデータ量である受信データ量を計測する受信データ量計測手段32と、を備えている。また、順次供給される前記蓄積受信データを蓄積する第2の記憶手段(送信バッファ33)と、前記第2の記憶手段から読み出され出力される送信データのデータ量である送出データ量を計測する送出データ量計測手段34と、を備えている。さらに、前記第1の記憶手段から所定のクロック(クロック生成手段36)のタイミングで読み出した前記蓄積受信データに、前記クロックの周期をカウントした結果に基づくタイムスタンプを付加して前記第2の記憶手段に書き込むタイムスタンプ付加手段37を備えている。またさらに、前記受信データ量と前記送出データ量を比較した結果に基づき、前記クロックの周波数を変化させる制御手段35と、を備えている。
そして、本実施形態においては、映像配信サーバ30が受信した受信データ量が、受信端末50に配信した送出データ量より多い場合、すなわち、送信バッファ33が蓄積しているデータ量が減少し始めた場合、次のように動作する。つまり、クロック生成手段36のクロック周波数を上げ、クロック速度を上げる。すると、映像配信サーバ30から受信端末50に配信するコンテンツデータのタイムスタンプが増す。タイムスタンプが増すことにより、受信端末50は一定したクロックで動作しているため、受信端末50での再生のタイミングが遅くなる。このことにより、送信バッファ33から配信されるコンテンツデータの配信タイミングも遅くなり、送信バッファ33内のコンテンツデータは徐々に増えることになる。従って、送信バッファ33におけるアンダーフローを防ぐことが出来る。
また、映像配信サーバ30が受信した受信データ量が、受信端末に配信した送出データ量より少ない場合、すなわち、送信バッファ33が蓄積しているデータ量が増え始めた場合、次のように動作する。つまり、クロック生成手段36のクロック周波数を下げ、クロック速度を下げる。すると、映像配信サーバ30から受信端末50に配信するコンテンツデータのタイムスタンプが減る。タイムスタンプが減ることにより、受信端末50は一定したクロックで動作しているため、受信端末50での再生のタイミングが早くなる。このことにより、送信バッファ33から配信されるコンテンツデータの配信タイミングも早くなり、送信バッファ33内のコンテンツデータは徐々に減っていくことになる。従って、送信バッファ33におけるオーバーフローを防ぐことが出来る。
従って、本実施形態によれば、放送局と受信端末それぞれのクロックが同期していない場合であっても、放送局と受信端末間でコンテンツを仲介する映像配信サーバに、バッファのオーバーフローやアンダーフローを発生させることがない。
[第2の実施形態]
次に、図1に示した第1の実施形態をさらに詳細化した本発明による第2の実施形態について説明する。
図5は、本発明の映像配信システムの第2の実施形態を示すブロック図である。図5においては、図1に示した映像配信サーバ30に機能追加を行って映像配信サーバ30−1とし、映像配信サーバ30−1について更に詳細に説明する。従って、図5において、図1の構成要素に対応するものは同一の参照数字または符号を付し、その説明を極力省略するものとする。
図5に示す映像配信システム100−1は、図1と同様に、放送局10と、映像配信サーバ30−1と、受信端末50を含んでいる。放送局10は、放送するコンテンツデータを放送用の電波20に載せて、放送を行う。映像配信サーバ30−1は、電波20を受信してコンテンツデータを蓄積し、蓄積したコンテンツデータを、通信ネットワーク40を介して、受信端末50に配信する。
図5における放送局10、通信ネットワーク40及び受信端末50は、第1の実施形態と同一であるため、それぞれの説明は省略するものとする。
映像配信サーバ30−1は、放送局10から送出される電波20から、所望のTV放送を選局して受信し、受信したOFDM信号を復調して、MPEG2−TSを抽出するTV(television:テレビジョン)放送受信手段301を含んでいる。また、TV放送受信手段301が抽出したTSを受信して蓄積する受信バッファ31を含んでいる。また、受信バッファ31に蓄積されたTSの量(以下、受信データ量と称す)を計測する受信データ量計測手段32を含んでいる。ここで、受信バッファ31及び受信データ量計測手段32は、第1の実施形態と同一のものである。
さらに、映像配信サーバ30−1は、受信端末50に配信するTSを蓄積する送信バッファ33を含んでいる。また、送信バッファ33から受信端末50に配信されたTSの量(以下、送出データ量と称す)を計測する送出データ量計測手段34を含んでいる。ここで、送信バッファ33及び送出データ量計測手段34は、第1の実施形態と同一である。
また、映像配信サーバ30−1は、制御手段35−1と、クロック生成手段36と、タイムスタンプ付加手段37を更に含んでいる。
制御手段35−1は、映像配信サーバ30全体の動作制御を行う。特に、制御手段35−1は、受信データ量計測手段32が計測した受信データ量と、送出データ量計測手段34が計測した送出データ量を比較する。比較の結果、受信データ量の方が送出データ量よりも大きい場合は、クロック生成手段36のクロック周波数を上げるよう制御する。逆に、受信データ量の方が送出データ量よりも少ない場合は、クロック生成手段36のクロック周波数を下げるよう制御する。また、制御手段35−1は、後述する制御命令受信手段303から、受信端末50が送信したメッセージから得られる制御命令を受信し、当該制御命令に応じた制御を行う。当該制御命令は、第1の実施形態の図2で説明した、コンテンツ受信要求、配信要求メッセージ、終了要求メッセージなどのメッセージから得られる命令である。
クロック生成手段36及びタイムスタンプ付加手段37は、第1の実施形態と同一であるため、それぞれの説明は省略するものとする。
さらに、映像配信サーバ30−1は、ネットワークI/F(Inter Face:インタフェース)302、制御命令受信手段303及び転送速度計測手段304を含んでいる。
ネットワークI/F302は、通信ネットワーク40を介して受信端末50との通信を行う。特に、ネットワークI/F302は、送信バッファ33に蓄積されているTSを受信端末50に対して送出する。また、受信端末50から受信したメッセージ(上述した、コンテンツ受信要求、配信要求メッセージ、終了要求メッセージなど)を、制御命令受信手段303に送出する。
制御命令受信手段303は、ネットワークI/F302から、受信端末50が送信したメッセージを受け、当該メッセージに含まれる制御命令を抽出する。そして、当該制御命令を制御手段35−1に送出する。受信端末50が送信したコンテンツ受信要求からは、放送局10を選局する命令と、選局した放送局10から受信したコンテンツデータの配信開始の命令を抽出する。受信端末50が送信した配信要求メッセージからは、送信バッファ33に蓄積されているTSを1つ選び、当該TSを受信端末50に配信する命令を抽出する。受信端末50が送信した終了要求メッセージからは、受信端末50に対するTSの配信を終了する命令を抽出する。
転送速度計測手段304は、ネットワークI/F302から受信端末50に対して配信するTSの転送速度を計測し、計測した転送速度を、制御手段35−1に送出する。
次に、図6を参照して、本実施形態の動作について説明する。
図6は、本発明の第2の実施形態の動作を説明するフローチャートである。なお、図6は、第1の実施形態における図3のフローチャートに僅かな変更が加えられたものである。従って、図6において図3の構成要素に対応するものは同一の参照数字または符号を付し、その説明を極力省略するものとする。
受信端末50から、第1の実施形態と同一の、コンテンツ受信要求を受信した映像配信サーバ30−1の制御手段35−1は、ネットワークI/F302及び制御命令受信手段303から、コンテンツ受信要求の制御命令を受信する。そして、コンテンツ受信要求に付されているチャネルをTV放送受信手段301に選局させる。TV放送受信手段301は、選局指示の有った放送局10のTV放送の受信を開始する。この時、映像配信サーバ30−1の制御手段35−1は、クロック速度を固定で動作させる(図6のステップS101)。従って、クロック生成手段36のクロック周波数は、MPEG2で規格化されている27MHzの一定値であり(図6のステップS100)、クロック生成手段36が生成するクロックは一定の値となっている。クロック速度を一定期間の間、固定で動作させるのは、以下の理由によるものである。
すなわち、前述したように、受信端末50がコンテンツ受信要求を送信した後、映像配信サーバ30−1からのIPパケットを受信し、自身のバッファに或る程度のIPパケットが蓄積されるまでは、受信端末50はIPパケットの再生を行わない。そして、IPパケットの再生の開始前は、再生の開始後に比べ、受信端末50は高い頻度で配信要求メッセージを送出する。つまり、受信端末50においてIPパケットの再生開始前は、高い頻度で映像配信サーバ30−1からのIPパケットを受信する。その間は、映像配信サーバ30−1のクロック周波数を一定にしておき、クロック速度を固定しておくことにより、IPパケット内のTSのタイムスタンプが変更されないようにするためである。このことは、受信端末50における再生タイミングが変更されることが無いようにするため、と同様の意味を持つものである。
TV放送の受信を開始した映像配信サーバ30−1は、送信バッファ33からネットワークI/F302を介して、或る程度の量のIPパケットが配信されるまでは、転送速度計測手段304により、受信端末50へIPパケットを配信する速度を計測している。そして、転送速度計測手段304から転送速度を受信した制御手段35−1は、転送速度が安定しているか否かを判定する(ステップS105)。転送速度が安定していない場合(ステップS105で「No」)、再度、ステップS105に戻り、転送速度が安定しているかの判定を行う。転送速度が安定した場合(ステップS105で「Yes」)、次のステップS110に進む。転送速度が安定したことを判定する条件としては、次のようなものがある。1つは、映像配信サーバ30−1の制御手段35−1は、固定したクロック周波数で転送可能な転送速度に対し、予め設定された範囲の転送速度になった場合、転送速度が安定したと判断する。ここで、固定したクロック周波数で転送可能な転送速度の値は、例えば、地上デジタルテレビジョン放送では、15Mbps〜20Mbps程度の値である。転送速度が安定したことを判定する他の条件としては、予め設定された範囲の転送速度が一定時間継続した場合、などであってもよい。
転送速度が安定した場合(ステップS105で「Yes」)、次のステップS110に進むが、ステップS110以降の動作は、第1の実施形態で示した動作と同一である。従って、以降においては、ステップS110以降の動作は略記するにとどめるものとする。なお、転送速度が安定した後に(ステップS105で「Yes」)、次のステップS110に進む理由は以下の通りである。すなわち、後述するように、制御手段35−1は、受信データ量(T1)と送出データ量(T2)の比較を行い、比較結果に応じて、クロック生成手段36のクロック周波数を変更する。転送速度が安定しないうちに(ステップS105で「No」)、T1とT2を計測して比較を行ってしまうと、転送速度と同様に安定していないT1とT2を比較することとなってしまう。すると、本来であれば、安定した状態のT1とT2の比較を行うべき動作において、誤った比較判定を行ってしまうこととなる。このような事態を回避するため、転送速度が安定した後にステップS110以降に進むようにしたものである。
TV放送の受信を開始した映像配信サーバ30−1の制御手段35−1は、送信バッファ33から或る程度の量のIPパケットが配信された後、受信データ量計測手段32が計測した、TV放送受信開始時からの受信データ量(以降、T1と表現する)を受信する(ステップS110)。また、制御手段35−1は、送出データ量計測手段34が計測した、配信開始時からの送出データ量(以降、T2と表現する)を受信する(ステップS111)。
次に、制御手段35−1は、受信データ量(T1)が送出データ量(T2)より大きいかを判定する(ステップS120)。T1>T2であった場合(ステップS120で「Yes」)、クロック生成手段36に対し、クロック周波数を上げるよう指示する。
クロック生成手段36は、自身のクロック周波数を上げることにより、自身が生成するクロックの速度を上げる(ステップS121)。そして、クロック生成手段36は、自身が生成しているクロックを、タイムスタンプ付加手段37に伝達する。
タイムスタンプ付加手段37は、受信バッファ31から受けたTS内のTSパケットのタイムスタンプが増えるよう変更する(ステップS122)。そして、タイムスタンプを増やしたTSパケットを含むTSをIPパケットに構成し直し、送信バッファ33を介してネットワークI/F302から受信端末50に対して配信する(ステップS126)。ステップS126の後、制御手段35−1の制御は、図6の「*2」(図6のステップS140)に移る。
ステップS126により、受信端末50は、IPパケットを受信し、IPパケットからタイムスタンプが増えたTSパケットを抽出してコンテンツデータを再生する。この時、当該TSパケットのタイムスタンプは増えているため、当該TSパケットの再生タイミングは遅くなる(ステップS124)。
図6のステップS120の判定で、制御手段35−1が、T1>T2でないと判定した場合(ステップS120で「No」)、制御手段35−1は、受信データ量(T1)が送出データ量(T2)より小さいかを判定する(ステップS130)。T1<T2であった場合(ステップS130で「Yes」)、クロック生成手段36に対し、クロック周波数を下げるよう指示する。
クロック生成手段36は、自身のクロック周波数を下げることにより、自身が生成するクロックの速度を下げる(ステップS131)。そして、クロック生成手段36は、自身が生成しているクロックを、タイムスタンプ付加手段37に伝達する。
タイムスタンプ付加手段37は、受信バッファ31から受けたTS内のTSパケットのタイムスタンプが減るよう変更する(ステップS132)。そして、タイムスタンプを減らしたTSパケットを含むTSをIPパケットに構成し直し、送信バッファ33を介してネットワークI/F302から受信端末50に対して配信する(ステップS136)。ステップS136の後、制御手段35−1の制御は、図6の「*2」(図6のステップS140)に移る。
ステップS136により、受信端末50は、IPパケットを受信し、IPパケットからタイムスタンプを減らしたTSパケットを抽出してコンテンツデータを再生する。この時、当該TSパケットのタイムスタンプは減っているため、当該TSパケットの再生タイミングは早くなる(ステップS134)。
図6のステップS130の判定で、制御手段35−1が、T1<T2でないと判定した場合(ステップS130で「No」)、制御手段35−1は、受信端末50への配信の終了か否かを判定する(ステップS140)。配信終了でない場合は(ステップS140で「No」)、制御手段35−1の制御は、ステップS110に戻る。配信終了の場合(ステップS140で「Yes」)、制御手段35−1は、受信端末50への配信を終了する(ステップS150)。
以上説明したように、本発明の第2の実施形態の動作は、映像配信サーバ30−1において、受信端末50からコンテンツ受信要求を受信して、選局した放送局10からTV放送の受信を開始した後の一定期間の動作が、第1の実施形態の動作と異なっているだけである。
すなわち、映像配信サーバ30−1がTV放送の受信を開始し、初めは、クロック速度を固定して、受信端末50に配信するIPパケット内のTSのタイムスタンプが変更されないよう動作する。そして、受信端末50へ配信するIPパケットの転送速度が安定した後、第1の実施形態と同様に、映像配信サーバ30−1の受信データ量(T1)と送出データ量(T2)の計測を開始する。T1とT2の計測を開始した後の動作は、第1の実施形態の動作と同一である。そして、図4を参照して説明した第1の実施形態におけるタイムスタンプの変化の様子も、第2の実施形態において、同一となっている。
従って、第2の実施形態の動作についてのこれ以上の説明は省略するものとする。
以上、第2の実施形態の動作について説明した。
前述したように、本発明の第2の実施形態は、図1に示した第1の実施形態の映像配信サーバ30に、図5に示したTV放送受信手段301、ネットワークI/F302、制御命令受信手段303、転送速度計測手段304を追加したものとなっている。そして、図1に示した制御手段35に機能追加を行って、制御手段35−1としている。
制御手段35−1に追加された機能の内の主なものは、TV放送受信開始後に、クロック生成手段36のクロック速度を固定する機能(図6のステップS101)、及び、転送速度が安定したかを判定する機能(図6のステップS105)である。従って、以下において第2の実施形態に特有の箇所に関してのみ説明するものとする。
以上説明したように、本実施形態の映像配信システム100−1は、映像配信サーバ30−1を備えている。また、映像配信サーバ30−1からの送信データを受信し、自らの動作クロックにより前記送信データに付されたタイムスタンプに対応するタイミングで前記送信データを再生する受信端末50を備えている。
ここで、映像配信サーバ30−1は、制御手段35−1、TV放送受信手段301、ネットワークI/F302、制御命令受信手段303、転送速度計測手段304を含んでいる。
制御手段35−1は、受信端末50から、ネットワークI/F302及び制御命令受信手段303を介し、コンテンツ受信要求の制御命令を受信する。そして、コンテンツ受信要求に付されているチャネルをTV放送受信手段301に選局させる。TV放送受信手段301は、選局指示の有った放送局10のTV放送の受信を開始する。この時、制御手段35−1は、クロック速度を固定で動作させる。
TV放送の受信を開始した映像配信サーバ30−1は、転送速度計測手段304により、受信端末50へIPパケットを配信する速度を計測している。そして、転送速度計測手段304から転送速度を受信した制御手段35−1は、転送速度が安定しているか否かを判定する。転送速度が安定していない場合は、転送速度が安定するまで、転送速度計測手段304は転送速度の計測を行う。
そして、転送速度が安定した場合、制御手段35−1は、TV放送受信開始時からの受信データ量(T1)と、受信端末50への配信開始時からの送出データ量(T2)を受信する。
次に、制御手段35−1は、受信データ量(T1)が送出データ量(T2)より大きいかを判定する。T1>T2であった場合、クロック生成手段36に対し、クロック周波数を上げるよう指示する。クロック生成手段36は、自身のクロック周波数を上げることにより、自身が生成するクロックの速度を上げ、自身が生成しているクロックを、タイムスタンプ付加手段37に伝達する。タイムスタンプ付加手段37は、受信バッファ31から受けたTS内のTSパケットのタイムスタンプが増えるよう変更する。
また、制御手段35−1が、T1>T2でないと判定した場合は、次に、受信データ量(T1)が送出データ量(T2)より小さいかを判定する。T1<T2であった場合、クロック生成手段36に対し、クロック周波数を下げるよう指示する。クロック生成手段36は、自身のクロック周波数を下げることにより、自身が生成するクロックの速度を下げ、自身が生成しているクロックを、タイムスタンプ付加手段37に伝達する。タイムスタンプ付加手段37は、受信バッファ31から受けたTS内のTSパケットのタイムスタンプが減るよう変更する。
そして、本実施形態においては、第1の実施形態と同様に、映像配信サーバ30−1が受信した受信データ量が、受信端末50に配信した送出データ量より多い場合、すなわち、送信バッファ33が蓄積しているデータ量が減少し始めた場合、次のように動作する。つまり、クロック生成手段36のクロック周波数を上げ、クロック速度を上げる。すると、映像配信サーバ30−1から受信端末50に配信するコンテンツデータのタイムスタンプが増す。タイムスタンプが増すことにより、受信端末50は一定したクロックで動作しているため、受信端末50での再生のタイミングが遅くなる。このことにより、送信バッファ33から配信されるコンテンツデータの配信タイミングも遅くなり、送信バッファ33内のコンテンツデータは徐々に増えることになる。従って、送信バッファ33におけるアンダーフローを防ぐことが出来る。ここで、仮に、クロック生成手段36のクロック周波数を上げなかったとすると、送信バッファ33が蓄積しているデータ量は更に減少し、ついに、送信バッファ33が空になることも起こりうる。すると、受信端末50への配信も無くなるため、受信端末50のバッファもアンダーフローを起こすこととなる。
また、映像配信サーバ30−1が受信した受信データ量が、受信端末に配信した送出データ量より少ない場合、すなわち、送信バッファ33が蓄積しているデータ量が増え始めた場合、次のように動作する。つまり、クロック生成手段36のクロック周波数を下げ、クロック速度を下げる。すると、映像配信サーバ30から受信端末50に配信するコンテンツデータのタイムスタンプが減る。タイムスタンプが減ることにより、受信端末50は一定したクロックで動作しているため、受信端末50での再生のタイミングが早くなる。このことにより、送信バッファ33から配信されるコンテンツデータの配信タイミングも早くなり、送信バッファ33内のコンテンツデータは徐々に減っていくことになる。従って、送信バッファ33におけるオーバーフローを防ぐことが出来る。
なお、本実施形態の映像配信サーバ30−1、及び、受信端末50は、放送局10のクロックと映像配信サーバ30−1や受信端末50のクロックを同期させるためのPLL回路などを備える必要がない。
従って、本実施形態によれば、放送局と受信端末それぞれのクロックが同期していない場合であっても、放送局と受信端末間でコンテンツを仲介する映像配信サーバに、バッファのオーバーフローやアンダーフローを発生させない映像配信システムを提供することが可能となる。
また、受信端末のバッファにアンダーフローを発生させることのない映像配信システムを提供することが可能となる。
さらに、低コストで、映像配信サーバや受信端末を提供することが可能となる。