以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
<基盤技術に関する説明>
まず、本発明に係る好適な実施形態について詳細な説明をするに先立ち、本実施形態を実現する上で基盤を成す技術的事項について述べる。なお、本実施形態は、以下に記載する基盤技術の上に改良を加えることにより、より顕著な効果を得ることができるように構成されたものである。従って、その改良に係る技術こそが本実施形態の特徴を成す部分である。つまり、本実施形態は、ここで述べる技術的事項の基礎概念を踏襲するが、その本質はむしろ改良部分に集約されており、その構成が明確に相違すると共に、その効果において基盤技術とは一線を画するものであることに注意されたい。
図19は、一般的なIPTVシステム900におけるマルチキャスト映像配信に関するネットワーク構成図である。図19に示したように、一般的なIPTVシステム900は、例えば、それぞれのチャンネルに対応した複数のコンテンツサーバ901と、エッジスイッチ903,909と、ルータ905,907と、視聴者が使用する複数の端末911と、を主に備える。
コンテンツサーバ901は、映像音声信号(映像音声コンテンツ)を符号化するエンコーダと、配信サーバとから構成される。各TVチャンネル(例えば、総数300チャンネルとする。)の映像信号は、例えばH.264/AVCを利用してリアルタイムでエンコードされ、各TVチャンネルのオーディオ信号は、HE−AAC(High−Efficiency Advanced Audio Coding)などの高能率音声符号化技術を利用してリアルタイムでエンコードされる。その後、エンコーダは、エンコードした各信号をMPEG2−TS(MPEG2−Transport Stream)の形式に多重化した後、ストリームデータとして配信サーバに伝送する。配信サーバは、それら複数のMPEG2−TSのパケットをRTP(Real−time Transport Protocol)のパケットフォーマットにし、MPEG2−TSパケットを入れた上でさらにUDP(User Datagram Protocol)の伝送プロトコルによりIPネットワークにマルチキャスト配信する。
各チャンネルのストリームのIPパケットは、個別のマルチキャストアドレスが指定され、コアネットワーク、アクセスネットワークを経由して端末911に配信される。コアネットワークは、光ファイバーを利用し、WDM(Wavelength Division Multiplexing)などの技術を用いて、毎秒数ギガ〜数十ギガビットのデータ伝送が可能な広帯域ネットワークが用いられる。他方、IPTVサービス加入者宅(すなわち、エッジスイッチ909から端末911)までのアクセスネットワークは、例えば、既存のアナログ電話回線の銅線配線を利用したADSL(Asymmetric Digital Subscriber Line)などの技術が利用される。ADSLにもさまざまな規格があり、データ帯域は回線の長さにも依存するが、例えば、ADSL2という規格を用いれば、基地局から4キロメートル以下であれば、毎秒10メガビット以上の帯域を実現でき、ハイビジョンテレビの解像度の映像信号を一本は配信することが可能である。
このように、コアネットワークは十分な帯域があり、IPTVサービスが提供するすべてのチャンネルのストリームを配信できるのに対し、アクセスネットワークのデータ帯域は限られているため、アクセスネットワークには、端末が受信しているチャンネルのデータのみを配信する必要がある。このマルチキャストデータの配信制御に、一般にはIGMP(Internet Group Management Protocol)が利用される。
端末911は、受信したいチャンネルのデータのマルチキャストグループに加入するためにIGMPメッセージをネットワークに送信すると、エッジルータ907は要求があったネットワークのみにマルチキャストデータを配信する。ただし、エッジルータ907の配下に複数の端末が接続されている場合、エッジルータ907は、該当するマルチキャストデータを受信していない端末911が接続されたアクセスネットワークに対しても、データを配信してしまう。そこで、IGMPによるマルチキャストグループへの加入要求をしていない端末911が接続されたアクセスワークへの配信を防ぐ必要がある。そのため、エッジスイッチ909であるDSLAM(Digital Subscriber Line Access Multiplexer)などは、IGMP SNOOPINGが実装されている。DSLAMは、端末911から送信されたIGMPパケットを盗みみて、要求を受けた端末911が接続されるアクセスネットワークのみにマルチキャストグループのデータを配信するように、フィルタリング制御をなっている。
本発明の各実施形態に係るIPTVシステムは、上述のような一般的なアーキテクチャーのIPTVシステムを踏襲した上で、なされたものである。以下に、本発明の各実施形態について、詳細に説明する。
(第1の実施形態)
<コンテンツ配信システムについて>
まず、図1を参照しながら、本発明の第1の実施形態に係るコンテンツ配信システムについて、詳細に説明する。図1は、本実施形態に係るコンテンツ配信システムを説明するための説明図である。なお、以下の説明では、コンテンツ配信システムの一例として、IPTVシステムを例に挙げながら、詳細に説明する。
本実施形態に係るコンテンツ配信システム1は、例えば図1に示したように、それぞれのチャンネルに対応した複数のコンテンツサーバ10A,10B,10Cと、スイッチ12,18と、ルータ14,16と、視聴者が使用する複数の情報処理装置20A,20B,20C,20Dと、配信予定時刻情報送信サーバ30と、基準クロックサーバ40と、を主に備える。
コンテンツサーバ10は、IPTVシステムにおける各チャンネルの放送局に対応しており、映像音声コンテンツ(映像音声信号)を所定の方式で符号化して圧縮データストリームとし、所定の伝送プロトコルを用いて、IPネットワークにマルチキャスト配信する。図1では、コンテンツサーバ10は、3つしか図示されていないが、コンテンツサーバ10は、例えばIPTVシステム上のチャンネル数と同じ数だけ存在し、チャンネル総数が300である場合には、コンテンツ配信システム1上には、300台のコンテンツサーバ10が存在することとなる。
スイッチ12は、コアネットワーク上を流れるパケットの交換機能(スイッチング機能)を有する通信装置であり、スイッチ18は、アクセスネットワーク上を流れるパケットの交換機能を有する通信装置であり、コアネットワークの周辺にあるため特にエッジスイッチと呼ばれる。これらのスイッチ12,18は、パケットの宛先を判断して、特定の相手にのみ通信を取り次ぐように設定されている。
ルータ14,16は、ネットワーク上を流れるパケット等のデータを中継する装置である。これらのルータは、いわゆるOSI参照モデルでいうネットワーク層やトランスポート層の一部のプロトコルを解析して、データの転送を行う。また、ネットワーク層に記載されているアドレスを解析して、どの経路を通じてデータを転送すべきかを判断する経路選択機能を有する。
情報処理装置20は、コンテンツ配信システム1の視聴者が使用する端末であって、各コンテンツサーバ10が配信している複数の映像音声コンテンツの中から、視聴したいコンテンツを取得し、取得したコンテンツを再生する。
なお、上述のコンテンツサーバ10および情報処理装置20については、以下で改めて詳細に説明する。
配信予定時刻情報送信サーバ30は、個々のコンテンツサーバ10から出力される基準圧縮映像データ配信予定時刻情報をそれぞれ受信して、コンテンツ配信システム1上に存在するコンテンツサーバ10全ての圧縮映像データ配信予定時刻情報を取りまとめる。また、配信予定時刻情報送信サーバ30は、取りまとめた圧縮映像データ配信予定時刻情報を、システムに接続されている情報処理装置20に対して、所定の時間間隔(例えば、10ミリ秒〜20ミリ秒周期)で送信する。なお、上述の圧縮映像データ配信予定時刻情報については、以下で詳細に説明する。
基準クロックサーバ40は、例えば1万分の1秒精度の時刻情報源を有するサーバであり、例えばNTP(Network Time Protocol)を利用して、コンテンツ配信システム1に接続されているコンテンツサーバ10や情報処理装置20等のコンピュータの内部クロックを、基準クロックサーバ40が有する時刻情報源に同期させる。
以上、本実施形態に係るコンテンツ配信システム1について、説明を行った。続いて、図2および図3を参照しながら、本実施形態に係るコンテンツサーバ10および情報処理装置20について、詳細に説明する。
<コンテンツサーバの構成について>
次に、図2を参照しながら、本実施形態に係るコンテンツサーバ10の構成について、詳細に説明する。図2は、本実施形態に係るコンテンツサーバ10の構成について説明するためのブロック図である。
本実施形態に係るコンテンツサーバ10は、当該コンテンツサーバ10内のクロックがコンテンツ配信システム1上に存在する基準クロックサーバ40と同期している。コンテンツサーバ10は、サーバの起動時や、コンテンツサーバ10の管理者が内部クロックの更新命令を入力した時などの任意のタイミングで、例えばNTPを用いて内部クロックを基準クロックサーバ40の時刻と同期させることが可能である。
本実施形態に係るコンテンツサーバ10の各処理部は、基準クロックサーバ40に同期している内部クロックの現在時刻を参照しながら、所定の処理を実施する。
本実施形態に係るコンテンツサーバ10は、例えば図2に示したように、第1処理部11Aと、第2処理部11Bと、を備える。第1処理部11Aおよび第2処理部11Bには、同一のチャンネルの映像音声信号がそれぞれ入力される。
第1処理部11Aは、図2に示したように、例えば、第1符号化部101と、第1配信部105と、記憶部109と、を主に備える。また、第2処理部11Bは、図2に示したように、例えば、第2符号化部103と、第2配信部107と、記憶部111と、を主に備える。
図2に示したように、第1処理部11Aおよび第2処理部11Bは、一つの符号化部および一つの配信部からなる組を少なくとも1つ備える処理部であり、各符号化部および各配信部は、それぞれ互いに独立して機能する。
第1符号化部101および第2符号化部103は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)から構成されている。第1符号化部101および第2符号化部103は、入力された映像音声信号のうち、映像信号を、例えばH.264/AVCを利用してリアルタイムで符号化(以下、エンコードとも称する。)するとともに、音声信号を、例えばHE−AAC等の高能率音声符号化技術を利用してリアルタイムでエンコードする。続いて、第1符号化部101および第2符号化部103は、エンコードした各信号をMPEG2−TSの形式に多重化した後、圧縮データストリームとして第1配信部105および第2配信部107に伝送する。
ここで、第1符号化部101および第2符号化部103は、それぞれ互いに、基準圧縮データが対応する元映像信号の映像フレーム(通常、30フレーム毎秒)またはフィールド(60フィールド毎秒)の位置が互いに異なるように、映像音声信号のうちの映像信号を符号化する。ここで、基準圧縮映像データは、この圧縮映像データよりも時間的に前の圧縮映像データを参照することなく、復号可能な圧縮映像データを意味している。第1符号化部101および第2符号化部103は、圧縮データストリームの途中から符号化が可能なように、基準圧縮映像データが定期的に出現するようエンコードを行う。このような基準圧縮映像データの例として、例えば、H.264/AVCでのIDR(Instantaneous Decoder Refresh:デコーダ復号動作の瞬時リフレッシュ)ピクチャや、MPEG2ビデオでのIピクチャ(Intra picture:ピクチャ内符号化ピクチャ)を挙げることができる。
例えば、ハイビジョンの映像を、H.264/AVCにてエンコードする場合を考える。この際、第1符号化部101および第2符号化部103は、毎秒30枚のMPEGピクチャから構成され、IDRピクチャが1秒に一回出現するように映像信号をエンコードする。このような符号化処理を行うことで、ビデオのビットレートが最大毎秒7メガビットであっても、IDRピクチャを1秒に2回出現するようにエンコードするより、再生映像をより高画質なものとすることができる。なお、MPEG2ビデオのGOP(Group Of Picture)の表記に従い、本明細書では、IDRピクチャを先頭に含む複数のピクチャのまとまりを、GOPと示すこととする。
第1符号化部101および第2符号化部103それぞれは、基準圧縮映像データが出現するタイミング以外の条件が同一となるように、映像音声信号を符号化する。例えば、第1符号化部101および第2符号化部103は、互いに同じMPEGピクチャの数、解像度により同一の映像信号をエンコードする。また、各符号化部101,103から出力されるMPEGストリームは、MPEG2−TSにマルチプレックされた時点で、最大毎秒8メガビットになるように出力される。この場合、2つのMPEG2−TSのIDRピクチャは、1秒ごと(すなわち、GOP長30フレーム)に出現するようになるが、IDRピクチャは0.5秒間(つまり15ピクチャー)分ずらして生成されるように、第1符号化部101および第2符号化部103はそれぞれ設定される。
なお、第1符号化部101および第2符号化部103は、映像音声信号の符号化に際して、それぞれ後述する記憶部109および記憶部111に記録されている各種のデータベース等を参照することが可能である。また、第1符号化部101および第2符号化部103は、生成した圧縮データストリームを、それぞれ記憶部109および記憶部111に記録してもよい。
第1配信部105および第2配信部107は、例えば、CPU、ROM、RAM、通信装置等から構成されており、いわゆるRTP(Real−Time Transport Protocol)サーバの機能を有している。第1配信部105および第2配信部107は、それぞれ第1符号化部101および第2符号化部103が生成したMPEG2−TSのパケットを、RTPパケットおよびUDPパケットに格納した上で、IPマルチキャストパケットに格納して、送信する。これらのIPパケットは、例えば、スイッチ12等を経由して、IPネットワークにより配信される。
また、第1配信部105および第2配信部107は、第1符号化部101および第2符号化部103によって生成された基準圧縮映像データが配信される配信予定時刻を算出し、この配信予定時刻が記載された基準圧縮映像データ配信予定時刻情報(以下、配信予定時刻情報と略記する。)を定期的に生成する。配信予定時刻の算出方法については、以下で改めて詳細に説明する。
第1配信部105および第2配信部107は、それぞれが生成した配信予定時刻情報を、配信予定時刻情報送信サーバ30へと定期的に出力する。また、第1配信部105および第2配信部107は、生成した配信予定時刻情報を、それぞれ記憶部109および記憶部111に記録してもよい。
記憶部109は、本実施形態に係る第1処理部11Aが、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録される。記憶部109は、第1符号化部101および第1配信部105等が、自由に読み書きを行うことが可能である。
同様に、記憶部111には、本実施形態に係る第2処理部11Bが、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録される。記憶部111は、第2符号化部103および第2配信部107等が、自由に読み書きを行うことが可能である。
なお、図2に示した例では、本実施形態に係るコンテンツサーバ10が第1処理部11Aと第2処理部11Bの2つの処理部から構成される場合について説明したが、コンテンツサーバ10は、3つ以上の処理部から構成されていてもよい。一つのチャンネル(換言すれば、一つの映像音声信号)に割り当てる処理部の数が多いほど、高速なチャンネル切り替えを実現することが可能となる。
また、第1処理部11Aおよび第2処理部11Bは、1台のコンテンツサーバの筐体内に設けられていてもよい。また、一つの符号化部と一つの配信部とを備える処理部が一つの装置として独立しており、この装置が並列に複数台接続されていてもよい。
以上、本実施形態に係るコンテンツサーバ10の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
<情報処理装置の構成について>
続いて、図3を参照しながら、本実施形態に係る情報処理装置20の構成について、詳細に説明する。図3は、本実施形態に係る情報処理装置20の構成を説明するためのブロック図である。
本実施形態に係る情報処理装置20は、当該情報処理装置20内のクロックがコンテンツ配信システム1上に存在する基準クロックサーバ40と同期している。情報処理装置20は、装置の起動時や、情報処理装置20の使用者が内部クロックの更新命令を入力した時などの任意のタイミングで、例えばNTPを用いて内部クロックを基準クロックサーバ40の時刻と同期させることが可能である。
本実施形態に係る情報処理装置20は、例えば図3に示したように、チャンネル選択部201と、コンテンツ取得部203と、取得ストリーム選択部205と、コンテンツ再生部207と、記憶部209と、を主に備える。
チャンネル選択部201は、例えば、CPU、ROM、RAM等から構成されている。ユーザが、情報処理装置20に設けられたチャンネル選択スイッチ、チャンネル選択ボタン等の操作部や、リモートコントローラ等を操作して、配信されている複数のチャンネルの中から特定のチャンネルを選択した場合に、チャンネル選択部201は、チャンネル選択スイッチやチャンネル選択ボタン等による入力を所定の信号に変換する。また、チャンネル選択部201は、ユーザ入力を変換した所定の信号を、後述するコンテンツ取得部203に出力する。
コンテンツ取得部203は、例えば、CPU、ROM、RAM、通信装置等から構成されており、配信されている複数のチャンネルの中から、チャンネル選択部201から伝送された信号に対応したチャンネルが配信しているコンテンツを取得する。本実施形態に係るコンテンツ配信システムでは、1つのチャンネルに属するコンテンツに対して、複数の圧縮データストリームが配信されているため、コンテンツ取得部203は、後述する取得ストリーム選択部205から通知された選択結果に基づいて、コンテンツの取得を行う。
なお、コンテンツの取得に際して、コンテンツ取得部203は、後述する記憶部209に記録されている各種のデータベース等を参照しながら、コンテンツの取得処理を実行することが可能である。
取得ストリーム選択部205は、例えば、CPU、ROM、RAM、通信装置等から構成されており、基準クロックサーバ40に同期している内部クロックの現在時刻を参照しながら、以下で説明するような処理を実施する。
取得ストリーム選択部205は、個々のコンテンツサーバ10から出力され、配信予定時刻情報送信サーバ30によって取りまとめられた配信予定時刻情報を、配信予定時刻情報送信サーバ30から定期的に受信する。取得ストリーム選択部205は、受信した配信予定時刻情報を参照して、コンテンツ取得部203から通知されたチャンネルが配信している複数の圧縮データストリームの中から、取得すべき圧縮データストリームを選択する。
より詳細には、取得ストリーム選択部205は、コンテンツ取得部203から通知されたチャンネルの圧縮データストリームを取得して表示させるために要する切替所要時間と、取得する圧縮データストリームの選択処理を開始した時刻とを用いて、取得した圧縮データストリームの表示を完了する切替完了予想時刻を算出する。ここで、上述の切替所要時間は、現在表示しているチャンネルから異なるチャンネルにチャンネル切り替えを行った際に、新たなチャンネルで配信されているコンテンツが表示されるまでに要する時間を意味するものである。取得ストリーム選択部205は、算出した切替完了予想時刻と、配信予定時刻情報送信サーバ30から取得した配信予定時刻情報とを比較して、切替完了予想時刻以降の直近の配信予定時刻を有する圧縮データストリームを選択する。
また、コンテンツ取得部203から通知されたチャンネルが配信している複数の圧縮データストリームに対応した配信予定時刻が、全て切替完了予想時刻よりも前である場合には、取得ストリーム選択部205は、いずれの圧縮データストリームの選択を行わない。その代わりに、新たに配信予定時刻情報送信サーバ30から通知される配信予定時刻情報に基づいて、再度圧縮データストリームの選択処理を実行する。
配信予定時刻情報は、例えば数十ミリ秒周期のような非常に短い周期で配信予定時刻情報送信サーバ30から送信されるものであるため、取得ストリーム選択部205が上述のような「選択を行わない」という判断をしたとしても、次の適切なタイミングにて選択されるので、視聴者の使用感が損なわれるような問題は生じない。
取得ストリーム選択部205は、取得すべき圧縮データストリームの選択が終了すると、選択結果を、コンテンツ取得部203に通知する。
なお、これらの選択処理を行うにあたって、取得ストリーム選択部205は、後述する記憶部209に記録されている各種のデータベース等を参照しながら処理を行うことが可能である。
また、取得ストリーム選択部205は、配信予定時刻と、選択した圧縮データストリームの切替完了予想時刻との間に、所定の閾値超過の時間間隔が存在する場合には、取得すべき圧縮データストリームの選択結果をコンテンツ取得部203に通知しなくてもよい。その代わりに、新たに配信予定時刻情報送信サーバ30から通知される配信予定時刻情報に基づいて、再度圧縮データストリームの選択処理を実行する。換言すれば、取得ストリーム選択部205は、配信予定時刻と、選択した圧縮データストリームの切替完了予想時刻との間の時間間隔が、所定の閾値以下の場合に、取得すべき圧縮データストリームの選択結果をコンテンツ取得部203に通知する。
切替完了予想時刻と、配信予定時刻との間に、所定の閾値以上の時間間隔が存在する場合には、取得ストリーム選択部205の選択結果に基づいて表示切り替えを行ったとしても、表示画面は、画面に黒などの色を表示するブラックアウト状態のままとなる。そのため、新たに配信予定時刻情報送信サーバ30から通知される配信予定時刻情報を待っている間は、切り替え前のチャンネルのストリームが継続して取得されているので、その映像を画面表示続けることで、視聴者の使用感を損なうことなく、圧縮データストリームの選択処理を再度実行することができる。
上述のような取得ストリームの選択方法については、以下で改めて詳細に説明する。
コンテンツ再生部207は、例えば、CPU、ROM、RAM等から構成されており、コンテンツ取得部203が取得したコンテンツを再生して、情報処理装置20が備える表示部(図示せず。)に表示する。ここで、コンテンツの再生とは、コンテンツ取得部203から伝送された圧縮データストリームの復号を行った上で、復号されたコンテンツを再生すること、および、圧縮データストリームの復号を行いながら、コンテンツを再生することを含む。コンテンツ再生部207は、コンテンツの復号やコンテンツの再生を行う際に、後述する記憶部209に記録されているデータベース等を参照することが可能である。
記憶部209は、本実施形態に係る情報処理装置20が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録される。記憶部209は、チャンネル選択部201、コンテンツ取得部203、取得ストリーム選択部205、コンテンツ再生部207等が、自由に読み書きを行うことが可能である。
以上、本実施形態に係る情報処理装置20の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
<コンテンツ配信方法について>
続いて、図4〜図9を参照しながら、本実施形態に係るコンテンツサーバ10が実行するコンテンツ配信方法について、詳細に説明する。
[基準圧縮映像データの位置関係について]
図4は、本実施形態に係るコンテンツサーバ10から出力されるMPEG2−TSストリーム中のIDRピクチャの位置関係を説明するための説明図である。図4では、1秒間に1回の割合で、基準圧縮映像データであるIDRピクチャが出現するように設定してエンコードする例を示したが、動的にIDRピクチャの生成タイミングを変えるエンコード方式を採用してもよい。その場合には、互いの符号化部はそれぞれ連携して、IDRピクチャの出現タイミングがずれるように動作するように設定する。
図4では、上述のように1秒間に1回、基準圧縮映像データであるIDRピクチャが出現するように符号化が実行される。また、GOPは30フレームから構成されており、IDRピクチャ以外にも、Pピクチャ(Predictive picture:予測符号化ピクチャ)およびBピクチャ(Bi−predictive Picture:双予測ピクチャ)がGOP内に存在する。第1符号化部101から出力されるストリームと、第2符号化部103から出力されるストリームとを比較すると、図4から明らかなように、IDRピクチャの出現タイミングが15フレーム分(約0.5秒分)ずれていることがわかる。
このように符号化を行うとともに、端末である情報処理装置20がチャンネル切り替えの際に、その時点にて最適なMPEG2−TSストリームを受信することで、切り替え後にIDRピクチャを受信するまでの待ち時間を最小にすることができ、切り替えたチャンネルの映像を早く表示することが可能になる。
例えば、図4に示す「時刻A」の時点で、端末である情報処理装置20において、このチャンネルに対する切り替えが起こった場合、情報処理装置20は、第1符号化部101から出力されるストリーム(換言すれば、第1処理部11Aから出力されるストリーム)を受信することで、チャンネル切り替え後に、選局したチャンネルの映像表示までの待ち時間を短くすることができる。同様に、「時刻B」の時点で、情報処理装置20において、このチャンネルに対する切り替えが起こった場合には、情報処理装置20は、第2符号化部103から出力されるストリーム(換言すれば、第2処理部11Bから出力されるストリーム)を受信することで、チャンネル切り替え後に、選局したチャンネルの映像表示までの待ち時間を短くすることができる。
各符号化部101,103から出力されるMPEGストリームは、同一の映像信号から生成したものであって、チャンネル切り替え等で映像表示を開始できるIDRピクチャの時間的位置をずらしただけであり、その他、解像度や最大ビットレートなどは同一条件にて符号化される。そのため、視聴者からみて、どちらの符号化部から送出されたストリームを再生中であるかは、ほとんど意識されることはない。
また、各符号化部101,103は、H.264.AVCのエンコーダやMPEG2の多重化のシステムクロックが互いに同期している必要はない。各符号化部101,103は、IDRピクチャの相対位置関係をずらすのに必要な情報を事前に取り決めておけば、処理部11A,11B間における通信を行うことなく実現可能である。ここで、IDRピクチャの相対位置関係をずらすために必要な情報の例として、例えば、固定GOP長の大きさに関する情報や、元映像信号の映像フレームのどのフレームをIDRピクチャにエンコードするか等の情報を挙げることができる。また、可変GOP長を採用する場合であれば、各処理部11A,11Bは互いに通信しあい、IDRピクチャの出現フレームがチャンネル切り替えに最適なるように、出現位置を相対的にずらすことも実現可能である。
[UDPパケットのフォーマットについて]
図5は、本実施形態に係る配信部105,107が送出するUDPパケットのフォーマットを説明するための説明図である。コンテンツサーバ10が備える各符号化部101,103で生成されたMPEG2−TSパケットは、それぞれの符号化部が属する処理部に設けられた配信部に出力され、IPパケットとして伝送される。このIPパケットは、例えば図5に示したようなフォーマットを有する。
図5に示したように、IPマルチキャストのUDPパケットは、IPヘッダと、UDPヘッダと、RTPヘッダと、RTPペイロードと、から構成される。コンテンツサーバ10の各符号化部101,103で生成されたMPEG2−TSパケットは、RTPペイロードに格納される。通常、RTPペイロードには、図5に示したように、7個のMPEG2−TSパケットが格納される。
コンテンツサーバ10の各配信部105,107は、図5のようなUDPパケットを生成し、マルチキャスト配信する。
[配信予定時刻の算出について]
次に、図6を参照しながら、本実施形態に係るコンテンツサーバ10が備える各配信部が実施する配信予定時刻の算出方法について、詳細に説明する。図6は、本実施形態に係るコンテンツサーバが実施する配信予定時刻の算出方法について説明するための説明図である。
本実施形態に係るコンテンツサーバ10が備える各配信部105,107は、IDRピクチャの配信予定時刻の算出を行うが、この算出処理は、以下の式を用いて行われる。
算出時刻CでのIDRピクチャ配信予定時刻:時刻F=時刻C+時間D+時間E
・・・(式1)
ここで、上記式1において、時間Dは、図6に示したように、時間D=(時刻B−時刻A)を用いて算出することができる。この時間Dは、各符号化部から生成されたIDRピクチャのデータを含むMPEG2−TSパケットが生成されてから、IPマルチパケットにて送出されるまでの遅延時間として考えることができる。
図6における時刻Bは、IDRピクチャのデータが含まれる最初のMPEG2−TSパケットの生成時間であり、時刻Aは、そのMPEG2−TSパケットが各配信部から送信される時刻である。この遅延時間Dは、通常は、ほぼ一定であるので、一回の計測で得られた値を使用してもよいし、固定値をつかってもよいし、IDRピクチャの送出ごとに計算してもよい。
図6における時間Eは、時刻Cの時点における次のIDRピクチャの最初のデータが含まれるMPEG2−TSパケットの生成までにかかる時間である。時間Eは、時刻Cの経過とともに更新されるので、IDRピクチャ配信予定時刻の計測のたびに、それぞれの符号化部に問い合わせる必要がある。通常、リアルタイムエンコードでは、エンコードによる遅延を小さくするために、IDRピクチャ配信予定時刻は符号化部が予測した時間となる。例えば、各符号化部が、毎秒1秒ごとに固定間隔でIDRピクチャを生成するように設定されている場合は、時間Eは容易に求めることができる。そうではない場合も、符号化部によって生成され記憶部等に記録されているエンコーダバッファ管理情報を元に、時間Eの予測は十分可能である。既に時刻Cの時点で未送出のIDRパケットが存在する場合は、時間Eはマイナスの値をとる。
本実施形態に係るコンテンツサーバが備える各配信部は、上述のような方法を用いて、基準圧縮映像データ配信予定時刻を算出する。配信部は、このようにして算出された配信予定時刻を、配信部自身に割り当てられている所在情報(例えば、IPアドレス番号)に関連付けて、配信予定時刻情報として配信予定時刻情報送出サーバ40に出力する。
[配信予定時刻情報の例について]
続いて、図7を参照しながら、上述のような方法で算出された配信予定時刻情報の具体的な記述例について、詳細に説明する。図7は、本実施形態に係る基準圧縮映像データ配信予定時刻情報の具体例を説明するための説明図である。
基準圧縮映像データ配信予定時刻情報の一例であるIDRピクチャ配信予定時刻情報は、例えば図7に示したように、IPヘッダと、UDPヘッダと、RTPヘッダと、RTPペイロードと、から構成されている。IDRピクチャ配信予定時刻情報は、図7に示したように、UDPパケットのRTPペイロードに格納され、12バイトのヘッダとともにM個のIDRピクチャ送出予定時刻レコードが記述される。
IDRピクチャ配信予定時刻情報のヘッダには、このUDPパケットがIDRピクチャ配信予定時刻情報のパケット形式であることを示す識別子や、バージョン番号等が指定される。ひとつのMPEGストリームのIDRピクチャ配信予定時刻情報は、IPマルチキャストアドレス(4バイト)と、配信予定時刻(4バイト)とからなる8バイトで表記され、ひとつのUDPパケットは、M=150個ほどのMPEGストリームに対する配信予定時刻が記述可能である。
ひとつのレコードのIPマルチキャストアドレスは、以下で説明するようなブロードキャストディスカバリーレコードの各チャンネルのIPMulticastAddressに対応するものであり、該当するIPマルチキャストのストリームのIDRピクチャを含むIPパケットが、次に配信される予定時刻が記録されている。
配信予定時刻は、例えば100分の1秒程度の精度で十分であるが、1000分の1秒つまり1ミリ秒の精度とすることが好ましい。この配信予定時刻は、少なくとも同じチャンネルのIPマルチキャストストリームを送出する各処理部11間において、同じクロックで計測されていれば十分であるが、すべての処理部にて同じクロックにて配信予定時刻の計測をおこなってもよい。
次に、図7を参照しながら、コンテンツ配信システム1の各コンテンツサーバ10で計測されたIDRピクチャの配信予定時刻情報を集計して、端末である情報処理装置20に伝送する仕組みを説明する。
前述のように、すべてのコンテンツサーバ10および情報処理装置20のクロックは、NTP(Network Time Protocol)によってネットワークに接続された基準クロックサーバ40のクロックと同期するように設定されており、各コンテンツサーバ10は、この基準クロックにNPTにて自身のクロックを同期させ、同期したクロックにて次のIDRピクチャが配信される予定時刻を算出する。コンテンツサーバ10の処理部11内に設けられた配信部は、前述のように、算出した時刻を、IDRピクチャ配信予定時刻情報送信サーバ40に送信する。
この場合、各処理部11の配信部は、図7で示したUDPパケットを、IPユニキャストにて送信する。このUDPパケットには、その処理部11が送出するIPパケットストリームについての配信予定時刻レコードのみ記録される。換言すれば、図7のUDPパケットは、M=1となる。IDRピクチャ配信予定時刻情報送信サーバ40は、各コンテンツサーバ10(より詳細には、各処理部11)から送信されたIDRピクチャ配信予定時刻を集計して、図7に示したようなUDPパケットを生成する。
図1および図2に示したように、コンテンツ配信システム1上に300チャンネル(すなわち、300台のコンテンツサーバ10)が存在し、各チャンネルあたり2つの処理部11がある場合は、図7に示したUDPパケットは、600個のIPマルチキャストストリームの情報となる。そのため、各UDPパケットでは、M=150となり、4つのUDPパケットに分割されて送信される。UDPパケットの喪失の恐れがネットワーク環境においては、重複して同一のパケットを送信する。
配信予定時刻情報送信サーバ40から送信されるUDPパケットのIPマルチキャストアドレスは、後述するようなブロードキャストディスカバリーレコードのChannelChangeInfoに指定したIPマルチキャストアドレスである。各情報処理装置20は、ピクチャ配信予定時刻情報を受信するためには、このIPマルチキャストアドレスを指定してIGMPにてマルチキャストグループへの加入をおこなう。IDRピクチャの配信時刻情報の送出は、例えば、1秒間に100回ほどの頻度、つまり10ミリ秒周期にておこなわれ、情報処理装置20は、10ミリ秒ごとに最新のIDRピクチャ配信時刻情報を受信できる。
[IPパケットの伝送について]
次に、図8および図9を参照しながら、本実施形態に係るIPパケットが情報処理装置へ伝送される仕組みについて、詳細に説明する。なお、以下では、IPTVシステムの規格であるDVB−IP(ETSI TS102 034)に基づき、詳細に説明を行う。
端末である情報処理装置20は、各チャンネルに対するMPEGストリームを受信するために、チャンネルのデータが配信されるIPマルチキャストアドレスを知る必要がある。DVB−IPでは、チャンネルの情報は、SD&Sのブロードキャストディスカバリーレコードに記述される。このブロードキャストディスカバリーレコードは、EPGサーバ等のIPTVアプリケーションサーバ(図示せず。)から情報処理装置20へと、DVB−IP規定のDVB SD&S Transport Protocol(DVB STP)によりマルチキャストで伝送される。なお、このブロードキャストディスカバリーレコードは、MPEG2−TSストリームとは別のIPマルチキャストアドレスにて転送される。
そのため、本実施形態に係るコンテンツ配信システム1内に存在するコンテンツサーバ10は、事前に、コンテンツサーバ10の各処理部11に割り当てられているIPマルチキャストアドレスや、各種のチャンネル情報を、IPTVアプリケーションサーバに通知しておく必要がある。
図8は、DVB−IPのブロードキャストディスカバリーレコードのデータ形式を説明するための説明図である。ブロードキャストディスカバリーレコードには、IPTVサービスが提供するすべてのチャンネルの情報が記述されている。例えば、300チャンネル放送するIPTVサービスであれば、端末である情報処理装置20は、300個のチャンネルの情報が記述されたブロードキャストディスカバリーレコードを受信する。
チャンネル情報としては、例えば図8に示したように、TextualIdentifier@ServiceNameにはチャンネル名が文字列で記述され、チャンネル名を表示するのに使用される。また、IPMulticastAddress@AddressとIPMulticastAddress@Portには、このチャンネルのIPマルチキャストパケットが配信されているIPマルチキャストアドレスとポート番号が記述されている。
端末である情報処理装置20は、IGMPにて、ブロードキャストディスカバリーレコードに記載されているIPマルチキャストアドレスグループに加入することで、希望のチャンネルのIPマルチキャストパケットの配信が開始され、IPマルチキャストパケットを受信可能となる。
通常、チャンネルごとに一つのIPマルチキャスト配信が割り当てられているが、本実施形態に係るコンテンツ配信システムでは、各チャンネルでは複数のIPマルチキャスト配信が提供される。このために、ブロードキャストディスカバリーレコードには、複数のIPMulticastAddressが記述される。
図9は、ブロードキャストディスカバリーレコードをXML表記した場合の例を説明するための説明図である。このブロードキャストディスカバリーレコードの例では、300チャンネル分のサービス情報が記述されており、各「<SingleService>」のXMLエレメントが、チャンネルひとつ分の情報に相当する。
例えば、先頭のチャンネル情報には、チャンネル名(ServiceName)である「Channel 1」と、2つのマルチキャストアドレス(アドレス224.0.1.1、ポート番号1600のものと、アドレス224.0.1.1、ポート番号1600のもの)とが記述されている。これら2つのアドレスは、図2で示した第1処理部11Aから配信されるIPパケットのマルチキャストアドレスと、第2処理部11Bから配信されるIPパケットのマルチキャストアドレスに相当する。次に列挙されているチャンネル情報では、チャンネル名である「Channel 2」と、2つのマルチキャストアドレスが記述されている。以下、チャンネル情報の記述は省略されているが、合計300チャンネル分の情報が列挙されて記述されることになる。以上のブロードキャストディスカバリーレコードにより、情報処理装置20は、各チャンネルの2つのチャンネルアドレスを知ることが可能となる。
次に、各マルチキャストアドレスで配信されるMPEG2−TSストリームでのIDRピクチャ配信予定情報の取得方法について、説明する。本実施形態では、DVB−IP規定のブロードキャストディスカバリーレコードを拡張し、「<ChannelChangeInfo>」というXMLエレメントを記述する。「<ChannelChangeInfo>」のXMLエレメントでは、ひとつのチャンネルあたり最大幾つのMPEGストリームがマルチキャスト配信されているかを示すデータが、「@NumberOfStreamsPerChannel」に指定されている。また、IPTVサービスから配信されるすべてのMPEGストリームのIDRピクチャ配信予定時刻情報を取得可能な、配信予定時刻情報送信サーバ30のマルチキャストアドレスが、「<IPMulticastAddress>」に指定されている。図9に示した例では、チャンネルあたり最大2つのMPEGストリームが配信されており、IDRピクチャ配信予定時刻情報は、アドレス224.0.1.0のポート番号1500から取得できることが示されている。
以上説明したように、本実施形態に係るコンテンツ配信方法では、一つのチャンネルに対して、基準圧縮映像データの出現タイミングが異なる複数の圧縮データストリームが配信されることとなる。これらの圧縮データストリームは、基準圧縮映像データの出現タイミングのみが異なっており、この出現タイミング以外の符号化条件は同一である。そのため、端末である情報処理装置20は、複数の圧縮データストリームの中から、適したストリームを選択することで、基準圧縮映像データを受信するまでの待ち時間を最小にすることができ、チャンネルの映像を早く表示することが可能となる。
<情報処理方法について>
続いて、図10〜図17を参照しながら、本実施形態に係る情報処理装置20が実行する情報処理方法について、詳細に説明する。図10は、本実施形態に係る情報処理装置20が実施する情報処理方法を説明するための流れ図である。
視聴者(ユーザ)により、本実施形態に係る情報処理装置20の電源が投入された場合や、IPTVのサービスメニュー等からTVサービスが選択された場合には、本実施形態に係る情報処理装置20は、TV視聴処理を開始する。
まず、情報処理装置20は、装置に備えられているCPU、ROM、RAM、通信装置等を利用して、EPGサーバ等のIPTVアプリケーションサーバ(図示せず。)からブロードキャストディスカバリーレコードを取得する(ステップS101)。このブロードキャストディスカバリーレコードは、図9に示したようなDVB−IP規定のプロトコルに基づいて記載されており、情報処理装置20は各チャンネルに対応したチャンネル情報を取得することができる。チャンネル情報が頻繁には変わらない場合には、既にIPTVサービスから取得済みのチャンネル情報を利用するようにしてもよい。
次に、情報処理装置20は、装置に備えられているCPU、ROM、RAM、通信装置等を利用して、IDRピクチャ配信予定時刻情報の配信開始要請のためのIGMPメッセージの発行と、この配信予定時刻情報に関するマルチキャストパケットの受信を開始する(ステップS103)。
図11Aおよび図11Bは、RFC3376で規定されるIGMPバージョン3における、情報処理装置20からマルチキャストデータ配信制御を行うためのIGMPメッセージのフォーマットである。また、図12Aおよび図12Bは、本実施形態に係るIGMPメッセージの一例を説明するための説明図である。
情報処理装置20がマルチキャストグループに参加および離脱する場合は、図11Aに示したレポートフォーマットのIGMPメッセージを利用する。そのほか、マルチキャストルータがマルチキャストグループに加入していることを確認するクエリーフォーマットのIGMPメッセージもあるが、これらIGMPの仕様についての詳細説明は、省略する。
図11Aに示したように、レポートフォーマットのIGMPメッセージには、「Number of Group Records」という欄に、当該レポートに含まれるレコードの数が明記されており、続いて、明記されたレコードの数の分だけ、「Group Record」が記載される。図11Bは、各グループレコードのフォーマットである。図11Bに示したように、グループレコードのフォーマットには、「Record Type」という欄が存在し、この欄に所定の値を入力することで、マルチキャストグループへの参加や離脱を指定することが可能である。
情報処理装置20がIDRピクチャ配信予定時刻情報を配信しているマルチキャストグループの配信開始を指示するには、図12Aに示したようなIGMPメッセージを発行する。「Record Type」の欄に指定されている「1」という値は、MODE_IS_INCLUDEを示し、上述のステップS101にて取得したマルチキャストアドレス(例では224.0.1.0)に対して、マルチキャストグループに参加することを示すものである。このIGMPによるマルチキャストグループへの参加により、配信予定時刻情報送信サーバ30から、IDRピクチャ配信予定時刻情報が定期的(例えば、10ミリ秒周期)に情報処理装置20へ配信されることとなる。情報処理装置20は、IDRピクチャ配信予定時刻情報を受信し、記憶部209に常に最新の情報を保持しておく。
続いて、情報処理装置20のチャンネル選択部201は、チャンネル選択情報の初期設定を実施する(ステップS105)。初期設定されるチャンネル選択情報は、「CurrentChan」、「CurrentAddress」、「SelectChan」、「SelectAddr」という4つのパラメータである。
パラメータ「CurrentChan」は、情報処理装置20が現在選局中のチャンネルのポジションを示すパラメータであり、パラメータ「CurrentAddress」は、現在選局されているチャンネルが配信されているマルチキャストアドレスを示すパラメータである。初期設定では、これら2つのパラメータともに−1を設定する。これは、現在、チャンネル選局がおこなわれていないことを示す値である。また、パラメータ「SelectChan」は、これから選局するチャンネルのチャンネルポジションを示すパラメータであり、パラメータ「SelectAddr」は、選局されたチャンネルのMPEG2−TSストリームが配信されるマルチキャストアドレスを示すパラメータである。初期設定では、「SelectChan」には1を設定する。もし、以前に選曲したチャンネル情報を端末が保持している場合は、そのチャンネルポジションを指定する。「SelectAddress」には、−1を設定して初期化を行う。
続いて、チャンネル選択部201は、パラメータ「SelctChan」に示されたチャンネルをコンテンツ取得部203へ通知して、コンテンツ取得部203は、チャンネルの選局処理を行う(ステップS107)。このチャンネルの選局処理については、以下で改めて詳細に説明する。この処理により、情報処理装置20の表示部(図示せず。)の画面には、チャンネルの映像が表示され、スピーカからは音声が再生される。
選局の処理が終了すると、チャンネル選択部201は、現在選局中のチャンネルに関するチャンネル情報を更新する(ステップS109)。すなわち、パラメータ「CurrentChan」にはパラメータ「SelectChan」の値が設定され、パラメータ「CurrentAddr」にはパラメータ「SelectAddr」の値が設定される。
続いて、情報処理装置20のチャンネル選択部201は、ユーザ操作の入力を待ち受ける(ステップS111)。
ここで、ユーザにより、例えば、リモコンの電源オフボタンを押すなど終了操作が入力された場合には(ステップS113)、チャンネル選択部201は、入力された操作に応じた信号を生成し、ステップS123のチャンネル受信終了処理に進む。また、ユザにより、チャンネルを切り替える旨の操作が入力された場合には(ステップS115)、後述するステップS117に進む。そうでなかった場合は、ステップS111に戻り、ユーザ操作の待ちうけを行う。実際には、これらの制御以外にも、ボリューム制御等の他のユーザ操作の処理もあるが、図10での記述は省略する。
ユーザにより、チャンネル切り替え操作、例えば、リモートコントローラのチャンネルアップボタンが操作された場合には、チャンネル選択部201は、パラメータ「SelectChan」を1加算し、チャンネルダウンボタンが操作された場合には、チャンネル選択部201は、パラメータ「SelectChan」を1減算する(ステップS117)。ここで、チャンネル選択部201は、パラメータ「SelectChan」の値がマイナス値や総チャンネル値以上にならないように、制御を行う。また、リモートコントローラ等にチャンネル番号等を直接選択できるボタン等がある場合には、チャンネル選択部201は、パラメータ「SelectChan」に、選択されたチャンネル番号に相当するチャンネルポジションを設定する。その後、チャンネル選択部201は、新たに設定されたパラメータに関する情報をコンテンツ取得部203に通知する。
コンテンツ取得部201は、チャンネル選択部201から通知されたパラメータ「SelectChan」の値に基づいて、このパラメータに指定されたチャンネルの選局を実施する(ステップS119)。その結果、新たに選局されたチャンネルが、情報処理装置20の画面およびスピーカから再生される。ステップS107にて説明したとおり、チャンネル選局処理の詳細については、以下で改めて説明する。
その後、チャンネル選択部201は、ステップS109と同様に、現在選局中のチャンネルに関するチャンネル情報を更新する(ステップS121)。
続いて、情報処理装置20のチャンネル選択部201は、ユーザ操作の入力を待ち受け、TV視聴が続く。
他方、ユーザ操作が終了操作であった場合には、コンテンツ取得部203は、チャンネル受信終了処理を実施する(ステップS123)。チャンネル受信終了処理については、以下で改めて詳細に説明する。
その後、情報処理装置20は、装置に備えられているCPU、ROM、RAM、通信装置等を利用して、ステップS103にて開始したIDRピクチャ配信予定時刻情報の配信を停止させ、配信予定時刻情報のマルチキャストパケットの受信も終了する(ステップS125)。情報処理装置20は、図12Bに示したようなIGMPメッセージを送信することで、配信を停止可能である。ここで、図12Bにおける「RecordType=2」は、MODE_IS_EXLCUDEであることを示し、224.0.1.0のマルチキャストグループからの離脱を意味する。
続いて、情報処理装置20は、TV視聴を終了し、他のIPTVサービスメニューに戻るか、端末の他の機能に移行する。
[チャンネル選局処理について]
続いて、図13を参照しながら、本実施形態に係る情報処理装置20が実施するチャンネル選局処理について、詳細に説明する。図13は、本実施形態に係る情報処理方法におけるチャンネル選局処理を説明するための流れ図である。
コンテンツ取得部203から依頼を受けた取得ストリーム選択部205は、記憶部209等に記録されている最新のIDRピクチャ配信予定時刻情報から、パラメータ「SelectChan」に該当するチャンネル情報を取得する(ステップS201)。
より詳細には、取得ストリーム選択部205は、まず、ブロードキャストディスカバリーレコードからチャンネルのマルチキャストアドレスを取得する。図9に示した例では、パラメータ「SelectChan」が1に設定されている場合、先頭位置の「<SingleService>」が該当するチャンネル情報である。このチャンネル情報の「<ServiceLocation>」には、図9に示したように、2つのマルチキャストアドレスが記述されている。図9の例では、パラメータ「Address1」に224.0.1.1が設定され、パラメータ「Address2」には224.0.1.2が設定される。
次に、取得ストリーム選択部205は、最新のIDRピクチャ配信予定時刻情報から、各マルチキャストアドレスの配信予定時刻情報レコードを検索し、IDRピクチャ配信予定時刻をそれぞれ「NextTime1」と「NextTime2」に設定する。ただし、IDRピクチャの配信時刻はコンテンツサーバ10の各配信部から送出された時刻であり、本来、IDRピクチャを含む先頭のMPEG2−TSパケットが情報処理装置20に届くまでには遅延がある。そのため、遅延時間が大きく無視できない場合は、コンテンツサーバ10から情報処理装置20までのネットワークの条件に合わせて、「NextTime1」と「NextTime2」に適宜遅延時間を加算する必要がある。
次に、取得ストリーム選択部205は、マルチキャスト配信の切替完了予想時刻を算出する(ステップS203)。この切替完了予想時刻は、直ちにIGMPメッセージを発行して配信の開始や切り替えを行った場合に、新規に加入したマルチキャストグループの最初のパケットが到着するまでの予想時間である。この切替完了予想時刻「SwitchTime」は、現在時刻に切替所要時間を加算することで得ることができる。ここで、切替所要時間は、以下に示した時間の総和となる。
(1) 情報処理装置20がIGMPメッセージを発行するまでに要する時間
(2) IGMPメッセージがIGMPプロクシーをおこなっているエッジスイッチ、(例えば、DSLAM)に到達するまでの所要時間
(3) エッジスイッチが、現在、端末の接続されているアクセスネットワークに配信しているマルチキャストグループのパケットの配信を停止し、新たに加入したマルチキャストグループのパケットの配信を開始するまでの所要時間
(4) エッジスイッチが配信を開始した最初のパケットが情報処理装置20に到達するまでの所要時間
(5) 情報処理装置20が最初のパケットを受信して保存するのに要する時間
上記(1)〜(5)の値は、IPTVサービスのネットワークおよび情報処理装置20の性能に依存し、情報処理装置20やネットワークの条件に対応する切替所要時間の最大値が、予め情報処理装置20に設定されているものとする。例えば、切替所要時間の最大値を、20ミリ秒程度に設定することが可能である。
また、上記(3)において、加入者宅に複数台の情報処理装置20が接続されている場合は、パケット配信の停止に際して、他の情報処理装置20が同じマルチキャストグループへ加入していないかを確認するために要する時間も含む。通常、この確認は、RFC−3376に規定されているように、定期的なIGMPクエリーメッセージによって行われる。また、複数の情報処理装置20が、個別のマルチキャストグループへの加入、つまり、複数の情報処理装置20にて異なるチャンネルを視聴する場合には、アクセスネットワークには、複数のチャンネル分のマルチキャストを流すのに十分なデータ帯域が必要となる。このためのネットワークの帯域保障には、例えば、IMS(IP Multimedia Subsystem)などのQoS(Quality of Service)制御が利用可能である。
以下、ステップS205〜ステップS221にかけては、選局しようとしているチャンネルのマルチキャストアドレスのいずれを選択するかの判断、および、配信の開始または切り替えのために、IGMPの発行をすべきタイミングについての決定を実施している。本実施形態に係る取得ストリーム選択部205は、以下の4つの条件に基づいて、アドレス選択およびタイミング決定を判断している。
(A) IDRピクチャを含むIPパケットの受信が、切替完了予測時刻SwitchTimeの時点で間に合わない場合は、そのマルチキャストアドレスは選択しない。
(B) IDRピクチャを含むIPパケットが最も早く受信できるマルチキャストアドレスを選択する。この条件により高速チャンネル切り替えが実現可能である。
(C) (A)および(B)の結果選択が行われなかった場合、次のIDRピクチャ配信予定時刻情報のパケットが受信するのを待って、ステップS201から処理を実施する。
(D) (A)および(B)の結果選択が行われたが、IDRピクチャを含むIPパケット到着時刻と切替完了予定時刻SwitchTimeとの差が大きい場合は、配信の開始または切り替えは行わず、次のIDRピクチャ配信予定時刻情報のパケットまで待って、ステップS201からの処理を実施する。
上記(D)の条件は、以下のような理由のために設定される。すなわち、直ちに表示の開始や切り替えを実施したとしても、パケットの受信を開始してIDRピクチャが到着するまでは、情報処理装置20のコンテンツ再生部207は映像を伸張できない。そのため、画面表示が出ない期間(以下、ブラックアウト期間と称する。)が生じてしまう。(D)の条件により、ブラックアウト期間を短縮することが可能である。シームレスな映像の開始または切り替えには、ブラックアウト期間をできるだけ短くするのが望ましいが、IDRピクチャの配信予定時刻のパケットの送出周期よりも長くする必要がある。そのため、ブラックアウト期間の最大値(以下、ブラックアウト許容時間と称する。)は、例えば、40ミリ秒に設定することが好ましい。
以下に、上記(A)〜(D)の条件について、具体的な例を示しながら説明する。図14Aおよび図14Bは、マルチキャストアドレスの選択についての場合分けを説明するための説明図であり、図15は、開始または切り替えタイミングの場合分けを説明するための説明図である。
まず、図14Aおよび図14Bを参照しながら、これらの図に示した6つの具体的な場合について、上記(A)〜(C)の条件がどのように適用されるかを説明する。
条件(A)より、図14Aに示した(ケース2)の場合は、「Address1」が選択され、(ケース4)の場合は、「Address2」が選択される。また、条件(A)により、図14Bに示した(ケース5)および(ケース6)では、マルチキャストアドレスの切り替えは行われない。そのため、条件(C)に基づいて、次のIDRピクチャ配信予定時刻情報のパケットが受信するのを待って、ステップS201から処理を実施する。
また、条件(B)により、図14Aに示した(ケース1)では「Address1」が選択され、(ケース3)では「Address2」が選択されることとなる。
上述のような条件(A)〜条件(C)に基づく判断が、図13におけるステップS205〜ステップS217に該当する。
ここで、条件(A)および条件(B)により、「Address1」が選択された場合には、チャンネル選択情報として、以下の値が設定されることとなる。すなわち、選択されたマルチキャストアドレスを示すパラメータ「SelectAddr」には、「Address1」が設定され、IDRピクチャの配信予定時刻を示すパラメータ「NextTime」には、「NextTime1」が設定される(ステップS211)。
同様に、条件(A)および条件(B)により、「Address2」が選択された場合には、チャンネル選択情報として、以下の値が設定されることとなる。すなわち、選択されたマルチキャストアドレスを示すパラメータ「SelectAddr」には、「Address2」が設定され、IDRピクチャの配信予定時刻を示すパラメータ「NextTime」には、「NextTime2」が設定される(ステップS215)。
続いて、図15を参照しながら、上記(D)の条件について、具体的な例を示しながら説明する。この条件判定は、図13に示したステップS219に該当する。
条件(A)および(B)により、図15に示した(ケース1)では双方のマルチキャストアドレスは選択されないため、条件(C)により、マルチキャストアドレスの切り替えは行われない。また、図15に示した(ケース2)の場合は、切り替え後のブラックアウト時間が許容値(例えば、40ミリ秒)より大きい場合であり、条件(D)により、マルチキャストアドレスの切り替えは行われない。また、図15に示した(ケース3)の場合は、条件(D)を満たさないため、選択したマルチキャストアドレスの切り替えが行われる。
上述のような条件判定に基づき、取得ストリーム選択部205によって選局チャンネルのマルチキャストアドレスの選局およびタイミングの決定がなされると、選局結果が、取得ストリーム選択部205からコンテンツ取得部203へと伝送される。コンテンツ取得部203は、選局結果に基づいてIGMPメッセージを発行して、情報処理装置20が接続しているアクセスネットワークへ配信されるマルチキャストパケットの配信切り替えを行う(ステップS221)。このIGMPメッセージの発行は、図11Aおよび図11Bに示したRFC−3376規定のIGMPバージョン3のレポートフォーマットにて行われる。
図16A〜図16CにIGMPパケットの例を示す。図16Aは、パラメータ「CurrentChan」が−1の場合、つまり、既に配信しているマルチキャストがない場合のものである。図16Aでは、パラメータ「SelectChan」(例では1)のマルチキャストアドレス「SelectAddress」(例では224.0.1.1)のマルチキャストグループに対して、RecodeType=1(MODE_IS_INCLUDE)を指定して、マルチキャストデータ配信を開始するためにマルチキャストアドレスに加入することを意味している。図16Bは、パラメータ「CurrentChan」が−1以外の場合、つまり、既に配信しているマルチキャストアドレスがある場合のものである。例えば、「CurrentChan」(例では1)の「CurrentAddress」(例224.0.1.0)のマルチキャストグループに、RecordType=2(MODE_IS_EXCLUDE)を指定して配信の停止を指示し、「SelectChannel」(例では2)のマルチキャストアドレス「SelectAddress」(例では224.0.1.4)のマルチキャストグループに、RecordType=1(MODE_IS_INCLUDE)を指定して配信の開始を指示している。
IMGPバージョン3では、図16Bに示したように、ひとつのIGMPパケットによって一括して指示がおこなえるので、切り替え時にアクセスネットワークに重複してマルチキャストアドレスが配信されないような実装が可能であるという利点がある。
これにより、コンテンツ取得部203は、「SelectAddress」のマルチキャストパケットの受信を開始することとなる(ステップS223)。
配信の切り替えが完了するまでは、最大切替所要時間の間待機する必要があるので、マルチキャストパケットを受信していない場合は待機する(ステップS225)。ネットワークにてIGMPパケットの喪失の恐れがある場合は、複数のパケットをステップS221にて送信しておくか、ステップS225にてタイムアウトなどを設けて、IGMPパケットの再送信の処理を行うようにしてもよい。
ステップS225で待機した結果、待機後にはマルチキャストの配信切り替えが終了しているので、以前選局していたチャンネルが存在する場合には、コンテンツ取得部203は、該当する「CurrentAddress」のマルチキャストパケットの受信を終了する(ステップS227)。
その後、コンテンツ取得部203は、受信したマルチキャストパケットをコンテンツ再生部207に伝送し、コンテンツ再生部207は、新たに受信を開始したチャンネルのマルチキャストパケットに格納されているMPEG2−TSの再生を開始する(ステップS229)。実際には、IDRピクチャを含むMPEG2−TSパケットを受信してから、映像が情報処理装置20の表示部(図示せず。)に表示されることになる。このようにして、チャンネルの選局処理は終了し、そのままIPTVテレビ視聴は継続することとなる。
[チャンネル受信終了処理について]
続いて、図17を参照しながら、情報処理装置20が実施するチャンネル受信終了の処理について詳細に説明する。
まず、コンテンツ取得部203は、現在、受信中のマルチキャストパケットを停止する。マルチキャストパケットの受信停止は、図16Cに示したIGMPレポートメッセージを送信することで停止可能である(ステップS301)。図16Cに示したように、コンテンツ取得部203は、パラメータ「CurrentAddress」(例では224.0.1.4)のマルチキャストグループに対して、RecordType=2(MODE_IS_EXCLUDE)を指定してIGMPメッセージを送信することで、マルチキャストパケット配信の停止ができる。
次に、コンテンツ取得部203は、マルチキャストの受信を終了する(ステップS303)。その後、コンテンツ再生部207は、MPEG2−TSストリームの再生を終了する(ステップS305)。このような処理を行うことで、チャンネル受信終了の処理は完了する。
以上、本実施形態に係るIPTVシステムの高速チャンネル切り替えについて説明した。上記実施形態のみならず、本発明によれば、別の実施形態を考案することは容易であり、例えば、以下のような別の実施形態が考えられる。
本発明に係る実施形態では、チャンネル切り替え処理を行っている間のユーザ操作による割り込みにより、チャンネル切り替えの中止や選局するチャンネルの変更を行うために、図13に示した選局処理の途中中断処理を実装することは容易である。
また、本発明に係る実施形態では、H.264/AVCの場合について説明したが、MPEG2の映像圧縮を利用した場合でもIDRピクチャをIピクチャと考えることで、MPEG2の映像圧縮を利用したIPTVシステムにも、本発明を容易に適用することが可能である。
また、本発明に係る実施形態では、圧縮映像データと音声データとをMPEG2−TSにて多重化して送信したが、圧縮映像、音声データを個別にIPパケットにて配信する場合でも、本発明を適用することで、それらIPパケット配信を切り替えて高速チャンネル切り替えを実現するIPTVシステムを容易に実現することが可能である。
また、本発明に係る実施形態では、ひとつの映像音声信号のみを、圧縮映像データおよび音声データとしてMPEG2−TSにて多重化し、IPパケットに格納した上で配信の切り替えを行う。しかしながら、MPEG2−TSに複数の映像音声信号の圧縮映像データおよび音声データを多重化して配信し、情報処理装置20へのネットワーク経路にて、選択された映像音声信号に該当する圧縮映像・音声パケットのみをフィルターして送信することで、本実施形態と同様の高速チャンネル切り替えを実現したIPTVシステムを容易に実現可能である。
また、本発明に係る実施形態では、IDRピクチャの配信予定時刻情報は、次に送出される一つのIDRピクチャのみ端末である情報処理装置20に送信した。ここで、IDRピクチャの配信予定時刻レコードに複数のIDRピクチャについての配信予定時刻を指定して送信するようにすれば、情報処理装置20は、より厳密にチャンネル選択時におけるマルチキャストアドレスの選択を行うことができるのは自明である。
また、本発明に係る実施形態では、IGMPバージョン3の機能を利用し、一つのIGMPパケットにてマルチキャストグループの配信切り替えを行うことで、切り替え中にパケットが重複してアクセスネットワークに配信されないようにし、アクセスネットワークでIPTVシステムが使用するデータ帯域を制限するようにした。しかしながら、IGMPバージョン2を利用の場合でも、マルチキャストグループへの離脱を行って、配信が停止された後、切り替えるマルチキャストグループに加入する処理をすることで、同様にIPTVシステムで使用するデータ帯域を制限することは可能である。
また、本発明に係る実施形態では、コンテンツサーバ10が各チャンネルの複数MPEG2−TSストリームをエンコードし、コアネットワーク経由にて配信した。ここで、コアネットワークの帯域に制限のある環境では、以下のようなことを実施することも可能である。すなわち、コンテンツサーバ10では各チャンネルあたり一つの符号化されたパケットをコアネットワークにて配信を行い、アクセスネットワーク等の配信ネットワークの途中に、エッジサーバまたはエッジルータなどの別のコンテンツサーバを配置する。これらの別のコンテンツサーバにて、受信したMPEG2−TSストリームに対して、映像音声信号を元にIDRピクチャの配信タイミングが異なるMPEG2−TSストリームを生成して、配信する。このようにすることで、コアネットワークの帯域を制限しながら、本実施形態で説明したITPVシステムと同様の高速チャンネルスイッチを実現することができる。
また、本発明に係る実施形態では、端末である情報処理装置20にIDRピクチャの配信予定時刻情報を送信し、情報処理装置20が、チャンネルのマルチキャストアドレスの選択およびアクセスネットワークに送信するマルチキャストパケットの切り替のタイミングの判断を行った。ここで、IDRピクチャの配信予定時刻を、実際に配信切り替えを実行するIGMPスヌーピングをおこなうエッジスイッチ、または、エッジルータに配信し、情報処理装置20は、チャンネル選局処理が開始した時点で、直ちにマルチキャスト配信切り替え指示を行うようにする。指示を受信したエッジスイッチ、エッジルータは、IDRピクチャの配信予定情報を用いて、図13に示した情報処理装置の選局処理と同等の判断にて、マルチキャストアドレスの選択および配信切り替えタイミングを制御してもよい。
この場合には、エッジスイッチ、エッジルータ等のネットワーク機器は、図3に示した情報処理装置20が備える各処理部と同様の機能を有する処理部(例えば、コンテンツ取得部および取得ストリーム選択部)を有し、さらに、取得した圧縮データストリームを、所定のネットワークを介して情報処理装置20へと配信する配信制御部を備えることが好ましい。かかる処理部を有するネットワーク機器は、エッジサーバとして機能することが可能となる。
<ハードウェア構成について>
次に、図18を参照しながら、本発明の各実施形態に係るコンテンツサーバ10および情報処理装置20のハードウェア構成について、詳細に説明する。図18は、本実施形態に係るコンテンツサーバ10および情報処理装置20のハードウェア構成を説明するためのブロック図である。
コンテンツサーバ10および情報処理装置20は、主に、CPU701と、ROM703と、RAM705と、ホストバス707と、ブリッジ709と、外部バス711と、インターフェース713と、入力装置715と、出力装置717と、ストレージ装置719と、ドライブ721と、接続ポート723と、通信装置725とを備える。
CPU701は、演算処理装置および制御装置として機能し、ROM703、RAM705、ストレージ装置719、またはリムーバブル記録媒体727に記録された各種プログラムに従って、コンテンツサーバ10および情報処理装置20内の動作全般またはその一部を制御する。ROM703は、CPU701が使用するプログラムや演算パラメータ等を記憶する。RAM705は、CPU701の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるホストバス707により相互に接続されている。
ホストバス707は、ブリッジ709を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス711に接続されている。
入力装置715は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置715は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよいし、コンテンツサーバ10および情報処理装置20の操作に対応した携帯電話やPDA等の外部接続機器729であってもよい。さらに、入力装置715は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU701に出力する入力制御回路などから構成されている。コンテンツサーバ10または情報処理装置20のユーザは、この入力装置715を操作することにより、コンテンツサーバ10または情報処理装置20に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置717は、例えば、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなど、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置717は、例えば、コンテンツサーバ10および情報処理装置20が行った各種処理により得られた結果を出力する。具体的には、表示装置は、コンテンツサーバ10および情報処理装置20が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
ストレージ装置719は、コンテンツサーバ10および情報処理装置20の記憶部の一例として構成されたデータ格納用の装置であり、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置719は、CPU701が実行するプログラムや各種データ、および外部から取得した音響信号データや画像信号データなどを格納する。
ドライブ721は、記録媒体用リーダライタであり、コンテンツサーバ10および情報処理装置20に内蔵、あるいは外付けされる。ドライブ721は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体727に記録されている情報を読み出して、RAM705に出力する。また、ドライブ721は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体727に記録を書き込むことも可能である。リムーバブル記録媒体727は、例えば、DVDメディア、HD−DVDメディア、Blu−rayメディア、コンパクトフラッシュ(登録商標)(CompactFlash:CF)、メモリースティック、または、SDメモリカード(Secure Digital memory card)等である。また、リムーバブル記録媒体727は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)または電子機器等であってもよい。
接続ポート723は、例えば、USB(Universal Serial Bus)ポート、i.Link等のIEEE1394ポート、SCSI(Small Computer System Interface)ポート、RS−232Cポート、光オーディオ端子、HDMI(High−Definition Multimedia Interface)ポート等の、機器をコンテンツサーバ10および情報処理装置20に直接接続するためのポートである。この接続ポート723に外部接続機器729を接続することで、コンテンツサーバ10および情報処理装置20は、外部接続機器729から直接音響信号データや画像信号データを取得したり、外部接続機器729に音響信号データや画像信号データを提供したりする。
通信装置725は、例えば、通信網731に接続するための通信デバイス等で構成された通信インターフェースである。通信装置725は、例えば、有線または無線LAN(Local Area Network)、Bluetooth、またはWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデム等である。この通信装置725は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置725に接続される通信網731は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
以上、本発明の各実施形態に係るコンテンツサーバ10および情報処理装置20の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
なお、本発明の各実施形態に係るコンテンツサーバ10は、以下に示すような機能を有するプログラムとして提供されることも可能である。このプログラムは、コンピュータに、映像信号の圧縮によって生成された時系列データにおいて、以前のデータに依存せずに、それ以降の映像信号の復号化を開始できるデータである基準圧縮映像データが対応する映像フレームおよび当該基準圧縮データの配信される時間が互いに異なるように、入力された一つの映像音声コンテンツを符号化し、一つの映像音声コンテンツから複数の圧縮データストリームを生成する符号化ステップと、生成された複数の圧縮データストリームそれぞれを、同時に配信するステップと、を実行させるためのプログラムである。
このコンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるCPUに読み込まれて実行されることにより、コンピュータを上記のコンテンツサーバ10として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
また、本発明の各実施形態に係る情報処理装置20は、以下に示すような機能を有するプログラムとして提供されることも可能である。このプログラムは、コンピュータに、映像信号の圧縮によって生成された時系列データにおいて、以前のデータに依存せずに、それ以降の映像信号の復号化を開始できるデータである基準圧縮映像データが対応する映像フレームおよび当該基準圧縮データの配信される時間が互いに異なるように一つの映像音声コンテンツが符号化された複数の圧縮データストリームについて、配信されている複数の圧縮データストリームの中から、取得する圧縮データストリームを選択する取得ストリーム選択ステップと、選択した圧縮データストリームを取得するコンテンツ取得ステップと、を実行させるためのプログラムである。
このコンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるCPUに読み込まれて実行されることにより、コンピュータを上記の情報処理装置20として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
以上説明したように、本発明の各実施形態によれば、IPTVの加入者宅へのアクセスネットワークのデータ帯域が限定される環境でも、高品位な映像にて高速チャンネルスイッチを利用者に提供できるIPTVシステムを、高価なネットワーク機器や特殊コンテンツサーバをアクセスネットワーク近傍に設置せずに実現することが可能である。
また、本発明の各実施形態によれば、チャンネル切り替え時に映像が表示されないブラックアウト期間、または、切り替え前のチャンネルの映像を停止状態で表示しておく時間を最小にすることが可能であり、視聴者にはシームレスなチャンネル切り替えを提供することができる。
また、本発明の各実施形態によれば、各チャンネルに割り当てられた何れのマルチキャストストリームを受信してもチャンネル視聴ができるため、マルチキャストアドレスの選択をおこなわない端末(既存の端末)も共存したIPTVシステムを構築可能である。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。