(57)【特許請求の範囲】
【請求項１】
複数の番組を含むデジタル放送データを受信する受信部と、
前記受信部が受信したデータをクライアント装置に送信するデータ形式に変換してバッファに格納する信号処理部と、
前記バッファに所定量のデータが格納されると、当該データを前記クライアント装置にストリーミング配信する送信部と、
所定の送信周期内に前記バッファに所定量のデータが格納されない場合、所定量となるまで前記バッファにダミーデータを追加して前記送信部に送信させる制御部と、
ダミーデータとしてヌルパケットを生成するヌルパケット発生器とを備え、
前記送信部は、前記バッファに所定量のデータが格納された場合、前記所定の送信周期が経過する前であっても、当該データを前記クライアント装置にストリーミング配信し、
前記信号処理部は、
前記受信部が受信したデータを復号する復号部と、
前記クライアント装置から番組の指定を受け付ける番組取得部と、
複数の番組それぞれの映像データおよび音声データを、前記復号部が復号したデータから分離する多重分離部と、
前記多重分離部が分離したデータのうち、前記番組取得部が取得した番組の映像データおよび音声データを多重化する多重化部と、
前記多重化部が多重化したデータを暗号化して前記バッファに格納する暗号化部とを含み、
前記制御部は、前記暗号化部が暗号化した所定量のデータが所定の送信周期内に前記バッファに格納されない場合、前記ヌルパケット発生器に生成させたヌルパケットを前記暗号化部に暗号化させて前記バッファに格納させることを特徴とするサーバ。
【請求項２】
前記制御部は、前記暗号化部が暗号化した所定量のデータが所定の送信周期内に前記バッファに格納された場合、前記ヌルパケット発生器にヌルパケットを生成させることなく、前記バッファに格納されたデータを前記送信部に送信させることを特徴とする請求項１に記載のサーバ。
【請求項３】
請求項１または２に記載のサーバが所定のビットレート以上のビットレートで送信する、ダミーデータが挿入された複数の番組を含むデジタル放送データを受信する受信部と、
前記受信部が受信したデータを復号する復号部と、
前記復号部が復号したデータ中のダミーデータを破棄して映像データおよび音声データを分離する多重分離部を含むことを特徴とするクライアント装置。
【請求項４】
請求項１または２に記載のサーバと、
請求項３に記載のクライアント装置と、
前記サーバと前記クライアント装置との間でデータ通信可能なネットワークとを含み、
前記サーバは、前記所定量を前記所定の送信周期で除算して得られるビットレートを下限として、前記クライアント装置にストリーミング配信することを特徴とするデータ配信システム。
【請求項５】
複数の番組を含むデジタル放送データを受信するステップと、
受信したデータを復号するステップと、
クライアント装置から番組の指定を受け付けるステップと、
複数の番組それぞれの映像データおよび音声データを、復号したデータから分離するステップと、
分離したデータのうち、指定された番組の映像データおよび音声データを多重化するステップと、
多重化したデータを暗号化してバッファに格納するステップと、
所定の送信周期内に前記バッファに所定量のデータが格納されない場合、ダミーデータとしてヌルパケットを生成し、生成したヌルパケットを暗号化して前記所定量となるまで前記バッファに格納するステップと、
前記バッファに所定量のデータが格納された場合、前記所定の送信周期が経過する前であっても、当該データを前記クライアント装置にストリーミング配信するステップとをプロセッサが実行することを特徴とするデータ配信方法。
【請求項６】
複数の番組を含むデジタル放送データを受信する機能と、
受信したデータを復号する機能と、
クライアント装置から番組の指定を受け付ける機能と、
複数の番組それぞれの映像データおよび音声データを、復号したデータから分離する機能と、
分離したデータのうち、指定された番組の映像データおよび音声データを多重化する機能と、
多重化したデータを暗号化してバッファに格納する機能と、
所定の期間内に前記バッファに所定量のデータが格納されない場合、ダミーデータとしてヌルパケットを生成し、生成したヌルパケットを暗号化して前記所定量となるまで前記バッファに格納する機能と、
前記バッファに所定量のデータが格納された場合、前記所定の期間が経過する前であっても、当該データを前記クライアント装置にストリーミング配信する機能とをコンピュータに実現させることを特徴とするプログラム。
【請求項７】
サーバのプロセッサが、
複数の番組を含むデジタル放送データを受信するステップと、
受信したデータを復号するステップと、
クライアント装置から番組の指定を受け付けるステップと、
複数の番組それぞれの映像データおよび音声データを、復号したデータから分離するステップと、
分離したデータのうち、指定された番組の映像データおよび音声データを多重化するステップと、
多重化したデータを暗号化してバッファに格納するステップと、
所定の送信周期内に前記バッファに所定量のデータが格納されない場合、ダミーデータとしてヌルパケットを生成し、生成したヌルパケットを暗号化して前記所定量となるまで前記バッファに格納するステップと、
前記バッファに所定量のデータが格納された場合、前記所定の送信周期が経過する前であっても、当該データを前記クライアント装置にストリーミング配信するステップとを実行し、
前記クライアント装置のプロセッサが、
前記サーバがストリーミング配信したデータを受信するステップと、
受信したデータを復号するステップと、
復号したデータ中のダミーデータを破棄したデータから映像データおよび音声データを分離するステップとを実行することを特徴とするデータ配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ、クライアント装置、およびそれらを含むデータ配信システムにおけるデータ配信技術に関する。
【背景技術】
【０００２】
近年、コンピュータネットワークにＮＡＳ（Network Attached Storage）を接続したストレージシステムを家庭内で構築することが一般的になっている。ＮＡＳはハードディスクドライブを備えたファイルサーバであり、ＴＣＰ／ＩＰネットワークを介してクライアント装置にコンテンツファイルを提供する。
【０００３】
このようなＮＡＳの中には、地上デジタル放送および衛星デジタル放送のいずれにも対応したチューナを備えたものもあり、ユーザは、ＴＣＰ／ＩＰネットワークを介してクライアント装置から番組をライブ視聴したり、録画された番組を視聴したりすることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＴＣＰ／ＩＰネットワークを介してストリーミング配信される番組をライブ視聴する際、例えばストリーミングデータのビットレートの変動を吸収することを目的として、所定量のデータをバッファリングしてから送信や再生が実行される。このため、ユーザがクライアント装置からサーバに対して番組視聴を要求してから実際に再生が開始するまでには時間を要する。
【０００５】
ユーザがＴＣＰ／ＩＰネットワークを介してストリーミング配信される番組をライブ視聴中に番組のチャンネルを切り替えるときも、切り替えた番組が再生されるまでに時間を要し、ユーザに煩わしさを感じさせる原因ともなりうる。
【０００６】
本発明はこうした課題に鑑みてなされたものであり、その目的は、サーバ・クライアントシステムにおいてデータ配信を要求してから再生が開始するまでに要する時間を短縮する技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様のサーバは、ビットレートが変化するデータを受信する受信部と、前記受信部が受信したデータをクライアント装置に送信するデータ形式に変換してバッファに格納する信号処理部と、前記バッファに所定量のデータが格納されると、当該データを前記クライアント装置にストリーミング配信する送信部と、
所定の送信周期内に前記バッファに所定量のデータが格納されない場合、所定量となるまで前記バッファにダミーデータを追加して前記送信部に送信させる制御部を含む。
【０００８】
本発明の別の態様は、クライアント装置である。この装置は、上述したサーバが所定のビットレート以上のビットレートで送信する、ダミーデータが挿入されたストリーミングデータを受信する受信部と、前記受信部が受信したデータを復号する復号部と、前記復号部が復号したデータ中のダミーデータを破棄して映像データおよび音声データを分離する多重分離部を含む。
【０００９】
本発明のさらに別の態様は、データ配信システムである。このシステムは、上述したサーバと、上述したクライアント装置と、前記サーバと前記クライアント装置との間でデータ通信可能なネットワークとを含む。ここで前記サーバは、前記所定量を前記所定の送信周期で除算して得られるビットレートを下限として、前記クライアント装置にストリーミング配信する。
【００１０】
本発明のさらに別の態様は、データ配信方法である。この方法は、ビットレートが変化するデータを受信するステップと、受信したデータをクライアント装置に送信するデータ形式に変換してバッファに格納するステップと、所定の期間内に前記バッファに所定量のデータが格納されない場合、所定量となるまで前記バッファにダミーデータを追加するステップと、前記バッファに所定量のデータが格納されると、当該データを前記クライアント装置にストリーミング配信するステップとをプロセッサに実行させる。
【００１１】
本発明のさらに別の態様もまた、データ配信方法である。この方法は、サーバのプロセッサが、ビットレートが変化するデータを受信するステップと、受信したデータをクライアント装置に送信するデータ形式に変換してバッファに格納するステップと、所定の期間内に前記バッファに所定量のデータが格納されない場合、所定量となるまで前記バッファにダミーデータを追加するステップと、前記バッファに所定量のデータが格納されると、当該データを前記クライアント装置にストリーミング配信するステップとを実行し、前記クライアント装置のプロセッサが、前記サーバがストリーミング配信したデータを受信するステップと、受信したデータを復号するステップと、復号したデータ中のダミーデータを破棄したデータから映像データおよび音声データを分離するステップとを実行する。
【００１２】
本発明のさらに別の態様は、上記のいずれかのデータ配信方法の各ステップをコンピュータに実現させるプログラムである。
【００１３】
このプログラムは、ビデオやオーディオのデコーダ等のハードウエア資源の基本的な制御を行なうために機器に組み込まれるファームウエアの一部として提供されてもよい。このファームウエアは、たとえば、機器内のＲＯＭ（Read Only Memory）やフラッシュメモリなどの半導体メモリに格納される。このファームウエアを提供するため、あるいはファームウエアの一部をアップデートするために、このプログラムを記録したコンピュータ読み取り可能な記録媒体が提供されてもよく、また、このプログラムが通信回線で伝送されてもよい。
【００１４】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１５】
本発明によれば、サーバ・クライアントシステムにおいてデータ配信を要求してから再生が開始するまでに要する時間を短縮することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態に係るデータ配信システムの全体構成を模式的に示す図である。
【図２】実施の形態に係るサーバおよびクライアント装置の内部構成を模式的に示す図である。
【図３】実施の形態に係るクライアント装置中の制御部の内部構成を模式的に示す図である。
【図４】実施の形態に係るサーバ中のサービス提供部の内部構成を模式的に示す図である。
【図５】図５（ａ）、（ｂ）は、低ビットレート遅延の遅延補償を説明する図である。
【図６】実施の形態に係るサーバ中の信号処理部の内部構成を模式的に示す図である。
【図７】実施の形態に係る低ビットレート遅延の遅延補償処理の流れを説明するフローチャートである。
【図８】実施の形態に係るダミーデータ挿入処理の流れを説明するフローチャートである。
【図９】実施の形態に係るクライアント装置中の再生部の内部構成を模式的に示す図である。
【図１０】従来技術に係るデータ配信システムの番組再生処理を説明するシーケンス図である。
【図１１】実施の形態に係るデータ配信システムの番組再生処理を説明するシーケンス図である。
【発明を実施するための形態】
【００１７】
図１は、実施の形態に係るデータ配信システム３００の全体構成を模式的に示す図である。実施の形態に係るデータ配信システムは、アンテナ２、サーバ１００、クライアント装置２００と総称する複数のクライアント装置、アクセスポイント（Access Point;AP）４、およびデータの伝送経路であるネットワーク３を含む。
【００１８】
アンテナ２は、地上デジタル放送や衛星デジタル放送等のデジタル放送を受信する。サーバ１００は、地上デジタル放送、ＢＳデジタル放送、ＣＳデジタル放送の３波チューナを備え、伝送経路であるネットワーク３を介してクライアント装置２００に番組をライブ配信する。サーバ１００はストレージも備え、録画した番組をクライアント装置２００に提供するＮＡＳとしても機能する。なお、本明細書において、アンテナ２が受信したデジタル放送をクライアント装置に即座に配信するライブ配信、またはアンテナ２が受信したデジタル放送をストレージに録画することを「ライブ受信」ということがある。また、サーバ１００とクライアント装置２００の構成の詳細は後述する。
【００１９】
図１においては、クライアント装置２００ａと２００ｂとのふたつのクライアント装置２００が図示されているが、サーバ１００と通信可能なクライアント装置２００の数は２つに限られず、多くても少なくてもよい。クライアント装置２００はＤＬＮＡ（Digital Living Network Alliance）に対応しており、サーバ１００にアクセスして録画された番組の取得および再生ができる。なお、図１においてクライアント装置２００ｂは例えば携帯型情報端末機であり、アクセスポイント４を介して無線でサーバ１００と通信可能である。
【００２０】
図２は、実施の形態に係るサーバ１００およびクライアント装置２００の内部構成を模式的に示す図である。サーバ１００は、受信部１０２、ストレージ１０４、サービス提供部１０６、およびクライアント管理部１０８を含む。クライアント装置２００はネットワーク３を介してサーバ１００と接続しており、クライアント装置２００の動作を統括する制御部２０２、サーバ１００から受信した番組データを再生する再生部２０４、およびユーザインタフェース２０６を含む。
【００２１】
受信部１０２は上述した３波チューナであり、デジタル放送波を復調して信号波を復元する。クライアント管理部１０８は、ネットワーク３を介して１以上のクライアント装置２００と接続し、接続中のクライアント装置２００からサーバ１００が提供すべきサービスの要求を取得する。サービス提供部１０６は、クライアント管理部１０８が取得したクライアント装置２００からのサービス提供要求に応じて、デジタル放送のライブ配信、録画済みデータの配信、または録画済みデータの他の機器への移動のうち少なくともひとつのサービスを提供する。そのため、サービス提供部１０６は受信部１０２が復調した信号から番組データを生成してストレージ１０４に記録したり、クライアント装置２００に配信したりする。
【００２２】
図３は、実施の形態に係るクライアント装置２００中の制御部２０２の内部構成を模式的に示す図である。実施の形態に係る制御部２０２は、送受信部２０８、サービス要求部２１６、番組指定部２１８、および再生情報要求部２２０を含む。
【００２３】
送受信部２０８は、ネットワーク３を介してサーバ１００と情報をやり取りする。送受信部２０８は、例えばＷｉ−Ｆｉ（登録商標）モジュール等の既知の通信モジュールを用いて実現できる。サービス要求部２１６は、送受信部２０８を介してサーバ１００に対し、デジタル放送のライブ受信や録画済みデータの移動等のサービス提供を要求する。なお、番組指定部２１８および再生情報要求部２２０については後述する。
【００２４】
（ビットレートの下限保証）
サーバ１００およびクライアント装置２００はＤＬＮＡに対応している。サーバ１００が受信したデジタル放送をクライアント装置２００がライブ視聴する場合、クライアント装置２００は、サーバ１００がストリーミング配信する番組データをネットワーク３を介して受信する。この時、サーバ１００が配信したデータのＳＴＣ（System Time Clock）と、クライアント装置２００のＳＴＣとは同期される。
【００２５】
サーバ１００はデジタル放送を受信して、例えばＭＰＥＧ（Moving Picture Experts Group）２等の規格にしたがって符号化し、番組データを作成する。このとき、番組を構成する映像データの構造に依存して、符号化後のデータ量が変動することがある。この結果、サーバ１００がクライアント装置２００に対してストリーミング配信する番組データのビットレートが変化する場合があり、映像データの構造によっては極端にビットレートが下がる期間も生じうる。
【００２６】
一般にクライアント装置２００に番組データを転送する場合、サーバ１００は、所定のデータ量であるブロック単位で転送する。サーバ１００中の送信用バッファにブロック単位のデータが格納されるまでデータは転送されない。そうすると、ビットレートが極端に下がると、ブロック単位の転送が行われるタイミングが遅れることがあり、画像と音声が一時的に乱れることも起こりうる。クライアント装置２００のＳＴＣを放送側のＳＴＣに対して遅らせることで対応は可能であるが、こうすると、今度はチャンネル切り替えのタイミングに対して再生開始のタイミングが遅くなるという問題も生じる。
【００２７】
そこで、以下サーバ１００がクライアント装置２００に送信する番組データのビットレートの下限を保証する原理について説明する。
【００２８】
図４は、実施の形態に係るサーバ１００中のサービス提供部１０６の内部構成を模式的に示す図である。実施の形態に係るサービス提供部１０６は、信号処理部１１８、バッファ１２０、送信部１２２、ヌルパケット発生部１２４、および制御部１２６を含む。
【００２９】
信号処理部１１８は、受信部１０２が受信したデジタル放送データをクライアント装置に送信するＭＰＥＧ２のデータ形式に変換してバッファ１２０に格納する。送信部１２２は、バッファ１２０に所定量のデータが格納されると、格納された番組データをクライアント装置２００にストリーミング配信する。ここで「所定量」とは、送信部１２２がクライアント装置にデータを配信する際の単位データ量であり、データ配信システム３００の構成等を考慮して実験により定めればよいが、例えばバッファ１２０が格納可能なデータ量である。以下、所定量のデータサイズを「Ｓ」で表す。
【００３０】
制御部１２６は、クライアント管理部１０８からライブ配信の要求に応じて、送信部１２２に番組データをストリーミング配信させる。ここで制御部１２６は、所定の送信周期内にバッファ１２０に所定量のデータが格納されない場合、所定量のデータが格納されるまで所定の送信周期にダミーデータを追加する。ここで「所定の送信周期」とは、送信部１２２がデータを配信する間隔の最大値であり、クライアント装置２００にとっては、データの最大遅延時間である。以下、所定の送信周期を「Ｌ」で表す。
【００３１】
また、「ダミーデータ」とは、所定の送信周期にバッファ１２０のデータ量を増やすための仮のデータである。番組データと区別できるデータであればどのようなデータでもよいが、実施の形態に係るサービス提供部１０６では、ヌルパケット発生部１２４が生成するヌルパケットを用いて実現する。制御部１２６は、所定の送信周期Ｌ内にバッファ１２０に所定量Ｓのデータが格納されない場合、バッファ１２０に所定量Ｓのデータが格納されるまで、ヌルパケット発生部１２４にヌルパケットを生成させる。
【００３２】
一方、制御部１２６は、所定量Ｓの番組データが所定の送信周期Ｌ内にバッファ１２０に格納された場合は、ヌルパケット発生部１２４にヌルパケットを生成させることはしない。送信部１２２は、バッファ１２０に所定量Ｓの番組データが格納された時点でクライアント装置２００に送信する。これにより、送信部１２２は、長くとも送信周期Ｌの間隔でクライアント装置２００にデータを送信することになる。１回の送信で送信するデータ量は所定量Ｓであるから、Ｓ／Ｌの値がビットレートの下限値Ｒｍｉｎとなる。所定量Ｓの番組データが所定の送信周期Ｌ内にバッファ１２０に格納された場合は、Ｌよりも短い期間Ｌ’で所定量Ｓのデータを送信することになるため、Ｓ／Ｌ’＞Ｒｍｉｎとなるからである。
【００３３】
図５は、ビットレートの下限保証の原理を説明する図であり、低ビットレート遅延の遅延補償を説明する図である。具体的に、図５（ａ）は従来技術におけるデータ転送を模式的に示す図であり、図５（ｂ）は実施の形態に係るサーバ１００におけるデータ転送を模式的に示す図である。
【００３４】
図５（ａ）において、時刻Ｔ２にバッファ１２０にデータＡが入力されたが、データＡのサイズは所定量Ｓより小さく、この時点ではクライアント装置２００には転送されない。その後しばらくバッファ１２０へのデータの入力がなく、時刻Ｔ５においてデータＢが入力された。データＢが入力された時点でバッファ１２０が格納するデータ量が所定量Ｓに達したため、時刻Ｔ５の直後の時刻Ｔ６においてクライアント装置２００にデータが転送された。図５（ａ）に示す例ではサーバ１００のバッファ１２０のサイズよりもクライアント装置２００のバッファのサイズが小さいため、クライアント装置２００はサーバ１００からデータが転送された時点で処理を開始する。
【００３５】
時刻Ｔ８において所定量Ｓと同量のデータＣがバッファ１２０に入力されると、直後の時刻Ｔ９においてクライアント装置２００にデータが転送される。このように、従来技術におけるデータ転送では、ビットレートは入力されるデータ量に依存し、サーバ１００はデータの送信間隔が制御できない。この結果、データ転送の最大遅延Ｌｍは無限大となってしまう。
【００３６】
実施の形態に係るサーバ１００におけるデータ転送を示す図５（ｂ）においては、バッファ１２０にデータＡが入力される時刻Ｔ２の前に、サーバ１００中の図示しないタイマーが開始される。時刻Ｔ２においてバッファ１２０にデータＡが入力された後、データＢが入力される時刻Ｔ５前の時刻Ｔ３の時点で、タイマーが開始されてから送信周期Ｌが経過した。そのため制御部１２６は、バッファ１２０のデータ量が所定量Ｓとなるまで、ヌルパケット発生部１２４にヌルパケットを発生させる。そのため、直後の時刻Ｔ４に、クライアント装置２００にデータが転送される。
【００３７】
図５（ａ）に示す例の場合と同様に、時刻Ｔ５においてデータＢが入力される。データＣが入力される時刻Ｔ８に至る前の時刻Ｔ６において再び送信周期Ｌが経過したため、制御部１２６は、バッファ１２０のデータ量が所定量Ｓとなるまで、ヌルパケット発生部１２４にヌルパケットを発生させる。直後の時刻Ｔ７に、クライアント装置２００にデータが転送される。
【００３８】
時刻Ｔ８において所定量Ｓと同量のデータＣがバッファ１２０に入力されると、直後の時刻Ｔ９においてクライアント装置２００にデータが転送されるのは、図５（ａ）に示す例の場合と同様である。この場合、送信周期Ｌよりも短い間隔でデータが転送されることになる。
【００３９】
このように、バッファ１２０に入力されるデータ量および入力タイミングが同じであっても、実施の形態に係るサーバ１００は、従来よりも高いビットレートでデータを転送する。具体的には、データ転送の最大遅延時間が送信周期Ｌに固定されるため、低ビットレート遅延の遅延保証が可能となる。
【００４０】
続いて、信号処理部１１８におけるダミーデータの処理を説明する。
【００４１】
図６は、実施の形態に係るサーバ１００中の信号処理部１１８の内部構成を模式的に示す図である。実施の形態に係る信号処理部１１８は、復号部１２８、解析部１３０、変換部１３２、および番組取得部１３４を含む。
【００４２】
上述したとおり、受信部１０２は、複数の番組を含むデジタル放送データを受信するチューナであり、デジタル放送データは通常暗号化されている。そこで、復号部１２８は、受信部１０２が受信したデジタル放送データを復号する。復号部１２８が復号したデータは複数の番組を含むため、番組取得部１３４は、クライアント管理部１０８を介してクライアント装置２００から番組の指定を受け付ける。
【００４３】
解析部１３０は、受信部１０２が受信した複数の番組を含むデジタル放送データから、番組構成情報と番組の再生に用いる同期情報とを含む再生情報を抽出する。変換部１３２は、解析部１３０が抽出した再生情報をもとに、受信部１０２が受信したデジタル放送データから、番組取得部１３４が取得した番組を分離してクライアント装置に送信するＭＰＥＧ２データ形式に変換する。このため、変換部１３２は、多重分離部１３６、多重化部１３８、および暗号化部１４０を含む。
【００４４】
多重分離部１３６は、解析部１３０が解析した番組構成情報をもとに、複数の番組それぞれの映像データおよび音声データを、復号部１２８が復号したデータから分離するデマルチプレクサである。多重化部１３８は、多重分離部１３６が分離したデータのうち、番組取得部１３４が取得した番組の映像データおよび音声データを多重化するマルチプレクサである。
【００４５】
上述したとおり、サーバ１００およびクライアント装置２００はＤＬＮＡに対応している。そのため、暗号化部１４０は、多重化部１３８が多重化したデータを、ＤＬＮＡで用いられるＤＴＣＰ−ＩＰで暗号化してバッファ１２０に格納する。ここで制御部１２６は、ヌルパケット発生部にヌルパケットを生成させて暗号化部１４０に入力させる。暗号化部１４０は、ヌルパケット発生部が生成したヌルパケットを、番組データと同様に暗号化してバッファ１２０に格納する。バッファ１２０に格納されるデータは暗号化部１４０によって暗号化されており、復号しない限りヌルパケットを含むか否かは区別がつかない。
【００４６】
図７は、実施の形態に係る低ビットレート遅延の遅延補償処理の流れを説明するフローチャートである。本フローチャートにおける処理は、クライアント装置２００がサーバ１００に番組指定を送信したときに開始する。
【００４７】
クライアント管理部１０８は、クライアント装置２００からライブ視聴番組指定のストリーム取得要求を取得する（Ｓ３０）。サービス提供部１０６は指定された番組の番組データを生成してクライアント装置２００に送信する（Ｓ３２）。
【００４８】
クライアント装置２００から番組データの配信を終了する要求がない間（Ｓ３６のＮ）、ステップ３２の処理を継続する。クライアント装置２００から番組データ配信の終了要求があると（Ｓ３６のＹ）、本フローチャートにおける処理は終了する。
【００４９】
図８は、実施の形態に係るダミーデータ挿入処理の流れを説明するフローチャートであり、図７におけるステップＳ３２を詳細に説明する図である。
【００５０】
受信部１０２は、デジタル放送データを受信する（Ｓ３８）。復号部１２８は、受信部１０２が受信したデータを復号する（Ｓ４０）。多重分離部１３６は、解析部１３０が解析した番組構成情報をもとに、各チャンネルの番組データを分離する（Ｓ４２）。
【００５１】
多重化部１３８は、解析部１３０が解析した番組構成情報をもとに、指定された番組の映像データおよび音声データを多重化してＭＰＥＧ２形式の番組データを生成する（Ｓ４２）。暗号化部１４０は、多重化部１３８が生成した番組データをＤＴＣＰ−ＩＰで暗号化して（Ｓ４６）、バッファ１２０に格納する（Ｓ４８）。バッファ１２０のデータ量が所定量Ｓ以下で（Ｓ５０のＮ）、かつ送信周期Ｌで定められる所定期間が経過しない間（Ｓ５２のＮ）、ステップＳ４４からステップＳ４８までの処理を繰り返す。
【００５２】
バッファ１２０のデータ量が所定量Ｓ以下であっても（Ｓ５０のＮ）、送信周期Ｌで定められる所定期間が経過した場合（Ｓ５２のＹ）、ヌルパケット発生部１２４はバッファ１２０のデータ量が所定量Ｓとなるまでヌルパケットを生成する（Ｓ５２）。
【００５３】
バッファ１２０のデータ量が所定量Ｓ以上となると（Ｓ５０のＹ）、送信部１２２はクライアント装置２００にデータを送信する（Ｓ５６）。送信部１２２がクライアント装置２００にデータを送信すると本フローチャートにおける処理は終了する。
【００５４】
以上説明したとおり、実施の形態に係るサーバ１００は、所定量Ｓを所定の送信周期Ｌで除算して得られるビットレートＲｍｉｎを下限として、クライアント装置２００に番組データをストリーミング配信することが可能となり、低ビットレートによる転送遅延の最大時間を固定値Ｌに抑えることができる。低ビットレートによる転送遅延を固定値Ｌにすることで、受信側のクライアント装置２００のＳＴＣの遅れも一定量に抑えることが可能となり、チャンネル切り替えの速度を速めることができる。結果として、データ配信を要求してから再生が開始するまでに要する時間を短縮することができる。
【００５５】
送信周期Ｌはサーバ１００側の処理頻度であるため、所定量Ｓと共にサーバ１００の能力を考慮して実験により決定すればよい。これにより、送信周期Ｌは現実的に短くすることができる。また、バッファ１２０にデータが溜まっていないときにだけヌルパケットを挿入する補償処理であるため、最低ビットレートＲｍｉｎより高いビットレートで放送されている場合には、サーバ１００とクライアント装置２００との間の転送ビットレートを不用意に高くすることは無く、クライアント装置２００における処理の負荷も増えない。
【００５６】
なお、この遅延設定を切り替える機能、すなわち、所定の送信周期Ｌでヌルパケットを挿入するか否かは、クライアント装置２００からの要求で切り替え可能としてもよい。サーバ１００とクライアント装置２００とがＤＬＮＡの規格に則って通信するとき、通信プロトコルとしてＨＴＴＰ（Hypertext Transfer Protocol）が用いられる。遅延設定を切り替えは、クライアント装置２００からサーバに送信されるｈｔｔｐのリクエストヘッダに記述することで実現できる。
【００５７】
（再生情報の先行取得）
以上、サーバ１００からクライアント装置２００に番組データをストリーミング配信する際の、ビットレートの下限を保証する原理について説明した。次に、クライアント装置２００がサーバ１００に対して番組データの配信を要求する前後の動作について説明する。
【００５８】
図９は、実施の形態に係るクライアント装置２００中の再生部２０４の内部構成を模式的に示す図である。実施の形態に係る再生部２０４は、復号部２２２、多重分離部２２４、および同期部２２６を含む。
【００５９】
図３に示す制御部２０２内の送受信部２０８は、サーバ１００がビットレートＲｍｉｎ以上のビットレートで送信するデータであって、ダミーデータとしてヌルパケットが挿入されたストリーミングデータを受信する。復号部２２２は、送受信部２０８が受信したＤＴＣＰ−ＩＰで暗号化されているデータを復号する。多重分離部２２４は、復号部２２２が復号したデータ中のヌルパケットを破棄して、番組データを構成する映像データおよび音声データを分離する。
【００６０】
サーバ１００が配信する番組データには、サーバ１００中の解析部１３０が解析した再生情報が含まれており、多重分離部２２４はストリーミング受信したデータに含まれる再生情報をもとに映像データおよび音声データを分離することができる。また、映像データや音声データに加えて、字幕データ等の他のデータも分離することができる。
【００６１】
図１０は、従来技術に係るデータ配信システム３００の番組再生処理を説明するシーケンス図であり、ストリーミング受信したデータに含まれる再生情報をもとに映像データおよび音声データを分離する場合の処理を説明する図である。
【００６２】
クライアント装置２００中の番組指定部２１８（図３に示す）は、サーバ１００に対し、複数の番組を含むデジタル放送データから番組を抜き出して配信させる番組を指定したストリーム取得要求を送信する（Ｓ６０）。サーバ１００中の番組取得部１３４（図６に示す）は、番組指定部２１８からストリーム取得要求を取得する（Ｓ６２）。サーバ１００中の解析部１３０は再生情報を抽出する（Ｓ６２）。
【００６３】
サーバ１００中の変換部１３２は、再生情報をもとに指定された番組データを生成する（Ｓ６６）。このとき、変換部１３２は再生情報を番組データ中に埋め込む。サーバ１００中の送信部１２２（図４に示す）は、変換部１３２が生成した番組データをクライアント装置２００に送信する（Ｓ６８）。
【００６４】
クライアント装置２００の送受信部２０８は、サーバ１００から番組データを受信する（Ｓ７０）。多重分離部２２４は、サーバ１００から番組データを解析し、再生情報を抽出する（Ｓ７２）。多重分離部２２４は、抽出した再生情報をもとに映像データおよび音声データを分離し、同期部２２６が同期再生する（Ｓ７４）。
【００６５】
上述したとおり、サーバ１００から配信されるデータは、送信周期Ｌを最大値とする遅延が生じる。ストリーミング受信したデータに含まれる再生情報を解析するためには数１００ミリ秒程度の時間がかかるのが通常であり、この時間はチャンネルを変える度に生じる。このため、再生情報の解析に要する時間はチャンネル切替の時間に大きく影響しうる。場合によっては、再生情報を解析している間に受信したデータを破棄することも生じうる。
【００６６】
本願の発明者は、サーバ１００中の解析部１３０が解析した再生情報を、番組データに先んじて取得することにより、再生情報の解析にかかる時間を省略できる可能性について認識するに至った。以下、クライアント装置２００における再生情報の先行取得について説明する。
【００６７】
図３に示す制御部２０２中の番組指定部２１８は、サーバ１００に対し、複数の番組を含むデジタル放送データから番組を抜き出して配信させる番組を指定する。再生情報要求部２２０は、サーバ１００に配信させる番組データの再生時に参照する再生情報を、番組指定部２１８による番組指定とは独立にサーバ１００に要求する。
【００６８】
サーバ１００中の送信部１２２は、番組データをクライアント装置２００に送信するとともに、再生情報要求部２２０からの再生情報要求に応じて、解析部１３０が抽出した再生情報を番組データとは独立に送信する。より具体的には、再生情報要求部２２０からの再生情報の要求があった場合、解析部１３０は再生情報の抽出が終わった時点で、その再生情報を送信部１２２に出力する。送信部１２２は、解析部１３０から取得した再生情報を、変換部１３２が変換した番組データの送信に先立って、クライアント装置２００に送信する。
【００６９】
クライアント装置２００中の送受信部２０８は、サーバ１００が配信するデータを受信する。多重分離部２２４は、送受信部２０８が取得した再生情報に含まれる番組構成情報をもとに番組データから映像情報と音声情報とを抽出する。同期部２２６は、再生情報に含まれる同期情報をもとに、多重分離部２２４が分離した映像情報と音声情報とを同期させて再生する。
【００７０】
上述したとおり、サーバ１００とクライアント装置２００との間におけるデータのやり取りは、ＨＴＴＰを利用して実現される。そこで、クライアント装置２００中の送受信部２０８は、サーバ１００が配信する番組データの受信と、サーバ１００が抽出した再生情報の受信とは、それぞれ異なるセッションを確立して受信する。これにより、再生情報を番組データとは独立に、先行して受信することが可能となる。
【００７１】
図１１は、実施の形態に係るデータ配信システム３００の番組再生処理を説明するシーケンス図である。
【００７２】
クライアント装置２００中の番組指定部２１８は、サーバ１００に対し、複数の番組を含むデジタル放送データから番組を抜き出して配信させるストリーム取得要求を送信する（Ｓ７６）。サーバ１００中の番組取得部１３４は、番組指定部２１８からストリーム取得要求を取得する（Ｓ７８）。クライアント装置２００中の再生情報要求部２２０は、サーバ１００に対し、番組指定部２１８による番組指定とは独立に再生情報の送信を要求する（Ｓ８０）。
【００７３】
サーバ１００中の解析部１３０は、クライアント管理部１０８を介して再生情報の送信要求を取得する（Ｓ８２）。続いて解析部１３０は再生情報を抽出する（Ｓ８４）。サーバ１００中の送信部１２２は、解析部１３０は抽出した再生情報を、番組データに先行してクライアント装置２００に送信する（Ｓ８６）。クライアント装置２００の送受信部２０８は、サーバ１００から再生情報を番組データに先行して受信する（Ｓ８８）。
【００７４】
サーバ１００中の変換部１３２は、解析部１３０が解析した再生情報をもとに、指定された番組データを生成する（Ｓ９０）。サーバ１００中の送信部１２２は、変換部１３２が生成した番組データをクライアント装置２００に送信する（Ｓ９２）。
【００７５】
クライアント装置２００の送受信部２０８は、サーバ１００から番組データを受信する（Ｓ９４）。多重分離部２２４は、先行して受信した再生情報をもとに、番組データから映像データおよび音声データを分離し、同期部２２６が同期再生する（Ｓ９６）。
【００７６】
以上説明したとおり、実施の形態に係るデータ配信システム３００によれば、クライアント装置２００は番組データの受信に先行して再生情報を取得することができる。クライアント装置２００は、サーバから番組データを取得するのとほぼ同時、または先行して再生情報を得ることができ、再生情報の解析に要する時間を省略することが可能となる。結果として、解析中のストリームを廃棄することもなく、ビデオ・オーディオストリームのデコードを開始することができる。結果として、データ配信またはチャンネル切替を要求してから再生が開始するまでに要する時間を短縮することができる。
【００７７】
以上述べたように、実施の形態に係るデータ配信システム３００によれば、サーバ・クライアントシステムにおいてデータ配信を要求してから再生が開始するまでに要する時間を短縮することができる。
【００７８】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７９】
（変形例）
上記の説明では、変換部１３２は、解析部１３０が抽出した再生情報をもとに、受信部１０２が受信したデジタル放送データから、番組取得部１３４が取得した番組を分離してクライアント装置に送信するＭＰＥＧ２データ形式に変換する場合について説明した。これに加えて、変換部１３２は、受信部１０２が受信したデジタル放送データをトランスコードしてもよい。これは、番組構成情報にトランスコードに用いる情報を含め、その情報をもとにトランスコード実行部（図示せず）がデジタル放送データをトランスコードすることで実現できる。
【００８０】
これにより、例えば帯域が狭い通信経路を用いてサーバ１００からクライアント装置２００にデータを送信するときや、クライアント装置２００の表示領域が小さい場合等に、送信すべきデータ量を削減することが可能となる。
【００８１】
なお、本願発明は以下に示す項目で特定されてもよい。
【００８２】
［項目１−１］
ビットレートが変化するデータを受信する受信部と、
前記受信部が受信したデータをクライアント装置に送信するデータ形式に変換してバッファに格納する信号処理部と、
前記バッファに所定量のデータが格納されると、当該データを前記クライアント装置にストリーミング配信する送信部と、
所定の送信周期内に前記バッファに所定量のデータが格納されない場合、所定量となるまで前記バッファにダミーデータを追加して前記送信部に送信させる制御部を含むことを特徴とするサーバ。
【００８３】
［項目１−２］
ダミーデータとしてヌルパケットを生成するヌルパケット発生部をさらに含み、
前記制御部は、所定の送信周期内に前記バッファに所定量のデータが格納されない場合、前記バッファに所定量のデータが格納されるまで前記ヌルパケット発生部にヌルパケットを生成させることを特徴とする項目１−１に記載のサーバ。
【００８４】
［項目１−３］
前記受信部は、複数の番組を含むデジタル放送データを受信するチューナであり、
前記信号処理部は、
前記受信部が受信したデータを復号する復号部と、
前記クライアント装置から番組の指定を受け付ける番組取得部と、
複数の番組それぞれの映像データおよび音声データを、前記復号部が復号したデータから分離する多重分離部と、
前記多重分離部が分離したデータのうち、前記番組取得部が取得した番組の映像データおよび音声データを多重化する多重化部と、
前記多重化部が多重化したデータを暗号化して前記バッファに格納する暗号化部とを含み、
前記制御部は、前記暗号化部が暗号化した所定量のデータが所定の送信周期内に前記バッファに格納されない場合、前記ヌルパケット発生部に生成させたヌルパケットを前記暗号化部に暗号化させて前記バッファに格納させることを特徴とする項目１−２に記載のサーバ。
【００８５】
［項目１−４］
前記制御部は、前記暗号化部が暗号化した所定量のデータが所定の送信周期内に前記バッファに格納された場合、前記ヌルパケット発生部にヌルパケットを生成させることなく、前記バッファに格納されたデータを前記送信部に送信させることを特徴とする項目１−３に記載のサーバ。
【００８６】
［項目１−５］
項目１−１から項目１−４のいずれかに記載のサーバが所定のビットレート以上のビットレートで送信する、ダミーデータが挿入されたストリーミングデータを受信する受信部と、
前記受信部が受信したデータを復号する復号部と、
前記復号部が復号したデータ中のダミーデータを破棄して映像データおよび音声データを分離する多重分離部を含むことを特徴とするクライアント装置。
【００８７】
［項目１−６］
項目１−１から項目１−４のいずれかに記載のサーバと、
項目１−５に記載のクライアント装置と、
前記サーバと前記クライアント装置との間でデータ通信可能なネットワークとを含み、
前記サーバは、前記所定量を前記所定の送信周期で除算して得られるビットレートを下限として、前記クライアント装置にストリーミング配信することを特徴とするデータ配信システム。
【００８８】
［項目１−７］
ビットレートが変化するデータを受信するステップと、
受信したデータをクライアント装置に送信するデータ形式に変換してバッファに格納するステップと、
所定の期間内に前記バッファに所定量のデータが格納されない場合、所定量となるまで前記バッファにダミーデータを追加するステップと、
前記バッファに所定量のデータが格納されると、当該データを前記クライアント装置にストリーミング配信するステップとをプロセッサに実行させることを特徴とするデータ配信方法。
【００８９】
［項目１−８］
ビットレートが変化するデータを受信する機能と、
受信したデータをクライアント装置に送信するデータ形式に変換してバッファに格納する機能と、
所定の期間内に前記バッファに所定量のデータが格納されない場合、所定量となるまで前記バッファにダミーデータを追加する機能と、
前記バッファに所定量のデータが格納されると、当該データを前記クライアント装置にストリーミング配信する機能とをコンピュータに実現させることを特徴とするプログラム。
【００９０】
［項目１−９］
サーバのプロセッサが、
ビットレートが変化するデータを受信するステップと、
受信したデータをクライアント装置に送信するデータ形式に変換してバッファに格納するステップと、
所定の期間内に前記バッファに所定量のデータが格納されない場合、所定量となるまで前記バッファにダミーデータを追加するステップと、
前記バッファに所定量のデータが格納されると、当該データを前記クライアント装置にストリーミング配信するステップとを実行し、
前記クライアント装置のプロセッサが、
前記サーバがストリーミング配信したデータを受信するステップと、
受信したデータを復号するステップと、
復号したデータ中のダミーデータを破棄したデータから映像データおよび音声データを分離するステップとを実行することを特徴とするデータ配信方法。
【００９１】
［項目２−１］
複数の番組を含むデジタル放送データを受信する受信部と、
前記受信部が受信したデータから、番組構成情報と番組の再生に用いる同期情報とを含む再生情報を抽出する解析部と、
クライアント装置から番組の指定を取得する番組取得部と、
前記解析部が抽出した再生情報をもとに、前記受信部が受信したデジタル放送データから前記番組取得部が取得した番組を分離して前記クライアント装置に送信するデータ形式に変換する変換部と、
前記変換部が変換した番組データを前記クライアント装置に送信するとともに、前記クライアント装置からの要求に応じて、前記解析部が抽出した再生情報を前記番組データとは独立に前記クライアント装置に送信する送信部を含むことを特徴とするサーバ。
【００９２】
［項目２−２］
前記送信部は、前記解析部が抽出した再生情報を、前記変換部が変換した番組データの送信に先立って前記クライアント装置に送信することを特徴とする項目２−１に記載のサーバ。
【００９３】
［項目２−３］
前記変換部はさらに、前記解析部が抽出した再生情報をもとに、前記受信部が受信したデジタル放送データから前記番組取得部が取得した番組をトランスコードすることを特徴とする項目２−１または項目２−２に記載のサーバ。
【００９４】
［項目２−４］
複数の番組を含むデジタル放送データを受信するステップと、
受信したデジタルデータから、番組構成情報と番組の再生に用いる同期情報とを含む再生情報を抽出するステップと、
クライアント装置から番組の指定を取得するステップと、
抽出した再生情報をもとに、受信したデジタル放送データから、前記クライアント装置に指定された番組を分離して前記クライアント装置に送信するデータ形式に変換するステップと、
変換した番組データを前記クライアント装置に送信するとともに、前記クライアント装置からの要求に応じて、抽出した再生情報を前記番組データとは独立に前記クライアント装置に送信するステップとをプロセッサに実行させることを特徴とする送信方法。
【００９５】
［項目２−５］
複数の番組を含むデジタル放送データを受信する機能と、
受信したデジタルデータから、番組構成情報と番組の再生に用いる同期情報とを含む再生情報を抽出する機能と、
クライアント装置から番組の指定を取得する機能と、
抽出した再生情報をもとに、受信したデジタル放送データから、前記クライアント装置に指定された番組を分離して前記クライアント装置に送信するデータ形式に変換する機能と、
変換した番組データを前記クライアント装置に送信するとともに、前記クライアント装置からの要求に応じて、抽出した再生情報を前記番組データとは独立に前記クライアント装置に送信する機能とをコンピュータに実現させることを特徴とするプログラム。
【００９６】
［項目２−６］
複数の番組を含むデジタル放送データから番組を抜き出して配信するサーバに配信させる番組を指定する番組指定部と、
前記サーバに配信させる番組データの再生時に参照する番組構成情報および同期情報を含む再生情報を、前記番組指定部による番組指定とは独立に前記サーバに要求する再生情報要求部と、
前記サーバが配信するデータを受信する受信部と、
前記受信部が取得した再生情報に含まれる番組構成情報をもとに番組データから映像情報と音声情報とを抽出し、再生情報に含まれる同期情報をもとに映像情報と音声情報とを同期させて再生する再生部とを含むことを特徴とするクライアント装置。
【００９７】
［項目２−７］
前記受信部は、前記サーバが配信する番組データの受信と前記サーバが抽出した再生情報の受信とは、それぞれ異なるセッションを確立して受信することを特徴とする項目２−５に記載のクライアント装置。
【００９８】
［項目２−８］
複数の番組を含むデジタル放送データから番組を抜き出して配信する番組配信サーバに配信させる番組を指定するステップと、
前記サーバに配信させる番組データの再生時に参照する番組構成情報と同期情報とを含む再生情報を、番組の指定とは独立に前記サーバに要求するステップと、
前記サーバに要求した再生情報を、前記サーバが配信する番組データとは独立に前記サーバから受信するステップと、
受信した再生情報を参照して、前記サーバから受信した番組データから映像情報と音声情報とを抽出するステップと、
抽出した映像情報と音声情報とを同期させて再生するステップとをプロセッサに実行させることを特徴とする番組再生方法。
【００９９】
［項目２−９］
複数の番組を含むデジタル放送データから番組を抜き出して配信する番組配信サーバに配信させる番組を指定する機能と、
前記サーバに配信させる番組データの再生時に参照する番組構成情報と同期情報とを含む再生情報を、番組の指定とは独立に前記サーバに要求する機能と、
前記サーバに要求した再生情報を、前記サーバが配信する番組データとは独立に前記サーバから受信する機能と、
受信した再生情報を参照して、前記サーバから受信した番組データから映像情報と音声情報とを抽出する機能と、
抽出した映像情報と音声情報とを同期させて再生する機能とをコンピュータに実現させることを特徴とするプログラム。
【０１００】
［項目２−１０］
項目２−１から項目２−３のいずれかに記載のサーバと、
項目２−５または項目２−６に記載のクライアント装置と、
前記サーバと前記クライアント装置との間でデータ通信可能なネットワークとを含み、
前記クライアント装置は、前記ネットワークを介して前記サーバに配信させる番組および当該番組の再生時に参照する再生情報を前記サーバに要求し、
前記サーバは、前記クライアント装置が指定した番組と当該番組の再生情報とをそれぞれ独立に前記クライアント装置に送信し、
前記クライアント装置は、前記サーバから受信した再生情報をもとに、前記サーバから受信した番組を再生することを特徴とする配信システム。
【符号の説明】
【０１０１】
２  アンテナ、  ３  ネットワーク、  ４  アクセスポイント、  １００  サーバ、  １０２  受信部、  １０４  ストレージ、  １０６  サービス提供部、  １０８  クライアント管理部、  １１８  信号処理部、  １２０  バッファ、  １２２  送信部、  １２４  ヌルパケット発生部、  １２６  制御部、  １２８  復号部、  １３０  解析部、  １３２  変換部、  １３４  番組取得部、  １３６  多重分離部、  １３８  多重化部、  １４０  暗号化部、  ２００  クライアント装置、  ２０２  制御部、  ２０４  再生部、  ２０６  ユーザインタフェース、  ２０８  送受信部、  ２１６  サービス要求部、  ２１８  番組指定部、  ２２０  再生情報要求部、  ２２２  復号部、  ２２４  多重分離部、  ２２６  同期部、  ３００  データ配信システム。
【図１】
0005535267.tif 000002
【図２】
0005535267.tif 000003
【図３】
0005535267.tif 000004
【図４】
0005535267.tif 000005
【図５】
0005535267.tif 000006
【図６】
0005535267.tif 000007
【図７】
0005535267.tif 000008
【図８】
0005535267.tif 000009
【図９】
0005535267.tif 000010
【図１０】
0005535267.tif 000011
【図１１】
0005535267.tif 000012