(57)【要約】【課題】  コンテンツデータの劣化を抑制することのできる通信装置を提供する。【解決手段】  第１の外部装置から、コンテンツデータを格納するパケットを受信する受信手段３０１と、前記受信手段３０１で受信したコンテンツデータをバッファリングするバッファリング手段３０４と、前記受信手段３０１で受信するパケットのパケットロスを検知する検知手段３５１と、前記コンテンツデータ中のパケットロスが生じた部分を補充するための補充パケットを生成する補充パケット生成手段３５２と、前記バッファリング手段３５２でバッファリングするコンテンツデータを第２の外部装置にパケットとして順次送信すると共に、前記検知手段３５１よるパケットロスの検知に伴い、前記第１の外部装置にパケットの再送要求を送信する送信手段３０１とを備えることを特徴とする。【選択図】      図１０
2009206998.tif 000002
【特許請求の範囲】
【請求項１】
第１の外部装置からコンテンツデータをストリーミングで受信すると共に、受信したコンテンツデータを第２の外部装置にストリーミングで送信する通信装置であって、
前記第１の外部装置から、前記コンテンツデータを格納するパケットを受信する受信手段と、
前記受信手段で受信した前記コンテンツデータをバッファリングするバッファリング手段と、
前記受信手段で受信するパケットのパケットロスを検知する検知手段と、
前記コンテンツデータ中のパケットロスが生じた部分を補充するための補充パケットを生成する補充パケット生成手段と、
前記バッファリング手段でバッファリングする前記コンテンツデータを前記第２の外部装置にパケットとして順次送信すると共に、前記検知手段によるパケットロスの検知に伴い、前記第１の外部装置にパケットの再送要求を送信する送信手段と
を備え、
前記送信手段は、前記コンテンツデータのパケットロスが生じた部分の前記第２の外部装置への送信前に前記受信手段で該パケットロス部分の再送パケットを受信すれば当該再送パケットを前記第２の外部装置へ送信し、前記コンテンツデータのパケットロスが生じた部分の前記第２の外部装置への送信前に該パケットロス部分の再送パケットを受信できなければ、前記補充パケット生成手段が生成した補充パケットを前記第２の外部装置へ送信し、その後、前記第１の外部装置から受信した再送パケットを送信すること
を特徴とする通信装置。
【請求項２】
前記送信手段は、前記検知手段による前記パケットロスの検知に伴い、前記第１の外部装置から前記コンテンツデータを受信する第３の外部装置にパケット再送要求を送信することを特徴とする請求項１記載の通信装置。
【請求項３】
前記受信手段は、前記第２の外部装置からのパケット再送要求を受信し、
前記送信手段は、前記受信手段で受信した前記パケット再送要求で指定されたパケットを前記第２の外部装置へ送信する
ことを特徴とする請求項２記載の通信装置。
【請求項４】
前記補充パケット生成手段は、パケットロスが連続して発生した場合、当該パケットロスが連続して生じた部分を一括して補充する補充パケットを生成する
ことを特徴とする請求項３記載の通信装置。
【請求項５】
前記コンテンツデータを格納する記録装置を更に具備し、
前記送信手段は、コンテンツデータ配信要求に応じて前記記録装置に格納された前記コンテンツデータを前記第２の外部装置に送信する
ことを特徴とする請求項４記載の通信装置。
【請求項６】
前記コンテンツデータの受信先情報から新たに接続を希望する外部装置の接続先装置を決定する接続先決定手段を更に具備し、
前記送信手段は、前記新たに接続を希望する外部装置からの接続要求に応じて前記接続先決定手段で決定する接続先装置のアドレスを、前記新たに接続を希望する外部装置へ送信する
ことを特徴とする請求項５記載の通信装置。
【請求項７】
前記接続先決定手段は、前記受信先情報として現在ネットワーク接続している各外部装置の前記コンテンツデータ再生開始予測時刻から前記新たに接続を希望する外部装置の接続先装置を決定すること
を特徴とする請求項６記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関する。
【背景技術】
【０００２】
近年、インターネットなどのネットワークを介してコンテンツデータのストリーミング配信を行う通信システムが広く普及している。このような通信システムには、Ｐ２Ｐ（Ｐｅｅｒ  Ｔｏ  Ｐｅｅｒ）と呼ばれる端末装置間でのコンテンツデータの中継を行う通信形態を用いることにより、コンテンツデータを配信するサーバ装置の台数を増加させることなく負荷やトラフィックの集中を低減することのできる通信システムが考えられている（例えば、特許文献１参照）。
【０００３】
Ｐ２Ｐによるストリーミング配信では、コンテンツデータを格納する端末装置を頂点として複数の端末装置を多層に論理接続する。そして、サーバ装置から配信されたコンテンツデータは、下階層の端末装置間で順次転送されていく。
【０００４】
また、コンテンツデータのストリーミング配信を行う通信システムでは、通信量が増加してネットワーク上の回線や各装置の処理能力を超えた場合に通信中のコンテンツデータがパケット単位で消失するパケットロスが発生する。このパケットロスによるコンテンツデータの劣化を防止する手段として、例えば誤りの訂正符号化方式技術がある。
【０００５】
誤り訂正符号化方式では、誤り訂正符号化により冗長なデータを送信するコンテンツデータに付加し、受信側で復号する際にコンテンツデータのパケットロスした部分を訂正する。一般に誤り訂正符号化方式では、冗長データの量が大きいほど多くのパケットロスした部分を訂正できる。
【特許文献１】特開２００７−６７８１４公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、誤り訂正符号化方式では、コンテンツデータの転送を端末装置間で繰り返す課題については十分に解決することができない。誤り訂正符号化方式は、誤ったデータをある程度訂正することはできるが、訂正能力を超えた誤り（パケットロス等）が生じた場合には、これを訂正することはできず、やはりデータロスが下階層にまで伝播してしまう。つまり、コンテンツデータが下階層に転送されていくほどパケットロスが累積してコンテンツデータが劣化する可能性が高まる。
【０００７】
そこで本発明は、コンテンツデータのストリームを端末装置間で順次転送していくシステムにおいて、下階層でのコンテンツデータの劣化を抑制することのできる通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、第１の外部装置からコンテンツデータをストリーミングで受信すると共に、受信したコンテンツデータを第２の外部装置にストリーミングで送信する通信装置であって、前記第１の外部装置から、前記コンテンツデータを格納するパケットを受信する受信手段と、前記受信手段で受信した前記コンテンツデータをバッファリングするバッファリング手段と、前記受信手段で受信するパケットのパケットロスを検知する検知手段と、前記コンテンツデータ中のパケットロスが生じた部分を補充するための補充パケットを生成する補充パケット生成手段と、前記バッファリング手段でバッファリングする前記コンテンツデータを前記第２の外部装置にパケットとして順次送信すると共に、前記検知手段によるパケットロスの検知に伴い、前記第１の外部装置にパケットの再送要求を送信する送信手段とを備え、前記送信手段は、前記コンテンツデータのパケットロスが生じた部分の前記第２の外部装置への送信前に前記受信手段で該パケットロス部分の再送パケットを受信すれば当該再送パケットを前記第２の外部装置へ送信し、前記コンテンツデータのパケットロスが生じた部分の前記第２の外部装置への送信前に該パケットロス部分の再送パケットを受信できなければ、前記補充パケット生成手段が生成した補充パケットを前記第２の外部装置へ送信し、その後、前記第１の外部装置から受信した再送パケットを送信することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、コンテンツデータのストリームを端末装置間で順次転送していくシステムにおいて、下階層でのコンテンツデータの劣化を抑制することのできる通信装置を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の通信装置について図面を参照しながら説明する。
図１は、本発明の実施例である通信システムの構成を示す図である。例えば図１に示す通信システム１は、コンテンツデータを配信する端末装置２と、配信されるコンテンツデータを受信する端末装置３１１〜３３３とから構成される。
【００１１】
端末装置２はコンテンツデータを格納するＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記録媒体を有し、配信要求に応じて記録媒体に格納しているコンテンツデータを配信する通信装置である。また、端末装置２は下階層の端末装置３１１〜３３３からのパケット再送要求を受けて、消失したパケットの再送を行う機能を有する。
【００１２】
端末装置３１１〜３３３は、端末装置２から配信されたコンテンツデータを受信してデコードする通信装置である。端末装置３１１〜３３３は、１階層下に其々論理接続される他の端末装置にコンテンツデータを転送する機能を有する。
【００１３】
また、端末装置３１１〜３３３ではコンテンツデータを受信する過程でパケットロスを検知した場合、端末装置２または上階層・同一階層にある他の端末装置にパケット再送要求を送信すると共に、パケットロスした部分を補充するダミーパケットを生成する。これらの処理についての詳細は図５乃至図７を参照しながら後述する。尚、端末装置３１１〜３３３は、コンテンツデータを格納する記録媒体を備えていれば、端末装置２と同様の機能を実現できるものとする。
【００１４】
図１において、端末装置３１１、端末装置３１２、及び端末装置３１３は第１階層に位置し、端末装置２からのコンテンツデータ配信を直接受ける。端末装置３２１、端末装置３２２、及び端末装置３２３は第２階層に位置し、第１階層の端末装置３１１からコンテンツデータ配信を直接受ける。端末装置３３１、端末装置３３２、及び端末装置３３３は第３階層に位置し、第２階層の端末装置３２１からコンテンツデータ配信を直接受ける。
【００１５】
尚、図１では端末装置２に端末装置３１１、端末装置３１２、及び端末装置３１３が論理接続され、端末装置３１１に端末装置３２１、端末装置３２２、及び端末装置３２３が論理接続され、端末装置３２１に端末装置３３１、端末装置３３２及び端末装置３３３が論理接続されたツリー構造の例を示すが、これに限らず各端末装置に新たな他の端末装置を論理接続できるものとする。
【００１６】
通信システム１では、第０階層の端末装置２に格納されるコンテンツデータは、まず第１階層に位置する端末装置３１１〜３１３に其々配信される。次に、第１階層に位置する端末装置３１１に配信されたコンテンツデータは、各端末装置３１１に論理接続された第２階層の端末装置３２１〜３２３に其々転送される。
【００１７】
このように通信システム１では、第０階層の端末装置２から配信されたコンテンツデータのストリームが下階層の端末装置３１１〜３３３へ順次転送されていく。尚、本実施例では、各装置は其々ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）およびＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）により通信が行われるネットワークにより接続される。
【００１８】
また、本実施例では各端末装置３１１〜３３３でコンテンツを其々視聴する際に、映像・音声における揺らぎや歪み等のジッタが発生しないように、受信するパケットを一定量確保してからデコードする。そして、本実施例の各端末装置３１１〜３３３では、例えばコンテンツデータを一定の速度で転送できるようにするため、デコードするペースに合わせて次の端末装置へのパケット転送を行う。
【００１９】
よって、各端末装置３１１〜３３３では、コンテンツデータの受信開始からパケットが一定量蓄積するまでの時間だけコンテンツデータのデコード開始時刻及び転送開始時刻が遅延される。その結果、下階層にある端末装置ほど遅延時間が累積し、コンテンツデータのデコード開始時刻が遅くなる。
【００２０】
そこで、本実施例の端末装置２では、新たな端末装置の接続要求を受けた際に各階層におけるコンテンツデータのデコード開始時刻を考慮して接続先を決定する。例えば、接続を希望する端末装置が端末装置２に接続要求を送信すると、接続要求を受けた端末装置２では各階層における遅延時間を考慮し、コンテンツデータの先頭パケットから受信できる階層であって、且つデコード開始までの待ち時間が短い階層に接続先を決定する。
【００２１】
このようにして、本実施例では、端末装置２の指示に基づき通信システム１のツリー構造を構成していく。尚ここでは、端末装置２が好適な接続先の階層を決定する場合を示したが、これに限らず、接続を希望する端末装置が所望の階層を決定しても良いものとする。
【００２２】
また、端末装置２では、例えば各回線における通信速度から一定量のバッファを確保するまでに掛かる時間を算出し、各階層の遅延時間を予測する等の方法で好適な接続先を探すが、各階層の遅延時間を把握して好適な接続先を探す方法であればこれに限らない。従って、本実施例では、新たな端末装置を接続する際に各階層におけるコンテンツデータのデコード開始時刻を考慮することで好適な接続先を見つけることが出来る。
【００２３】
次に、図２、図３を参照しながら本実施例の端末装置２及び端末装置３１１〜３３３の構成を説明する。図２は、端末装置２の構成を示す図である。端末装置２は、例えば、ネットワーク通信部２０１、ＨＤＤ２０２、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｉｎｔ）２０３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０４、およびＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０５等を備えている。
【００２４】
ネットワーク通信部２０１は、ネットワークを介してコンテンツデータの配信要求を受け、当該コンテンツデータを１階層下の端末装置３１１〜３１３に送信する。また、ネットワーク通信部２０１はパケット再送要求を受け、当該要求で指定されたパケットを再送する。
【００２５】
ＭＰＵ２０３は、ＲＯＭ２０４に記憶されているプログラムに従い、各種機能を動作させるコマンドを出力する。また、ＭＰＵ２０４は装置全体の動作制御を行う。ＲＡＭ２０５は、電気信号の読み込み及び書き込みを行い、ＭＰＵ２０３に作業エリアを提供する主メモリとして利用される。
【００２６】
ＲＯＭ２０４は、ＭＰＵ２０３が実行する各種プログラムを格納している。ＲＯＭ２０４には、例えばコンテンツデータを複製する複製部２５０、デコード時刻算出部２５１等がある。尚、複製部２５０はコンテンツデータ配信要求に応じてＨＤＤ２０２内のコンテンツデータを複製し、コンテンツデータの複製を生成する。デコード時刻算出部２５１は、新たな端末装置を接続する際、各回線における通信速度から各端末装置におけるコンテンツデータのデコード開始予測時刻を算出する。
【００２７】
また、本実施例における端末装置２では、コンテンツデータのストリーミング配信を受ける各端末装置のアドレスを記録しているものとする。
図３は、端末装置３１１〜３３３の構成を示す図である。尚、ここでは説明を簡略化するため第１階層の端末装置３１１の構成についてのみ示すが、本実施例における端末装置３１１〜３３３は全て同様の構成を備えるものとする。端末装置３１１は、例えばネットワーク通信部３４１、ＭＰＵ３４２、ＲＡＭ３４３、ＲＯＭ３４４、およびデコーダ３４５等を備えている。
【００２８】
ネットワーク通信部３４１は、ネットワークを介して１階層上にある通信装置（端末装置２）からコンテンツデータを受信する。そして、ネットワーク通信部３４１は、１階層下にある通信装置（端末装置３２１〜３２３）に受信したコンテンツデータを送信する。また、ネットワーク通信部３４１は、パケット再送要求の送受信および当該パケット再送要求に対応したパケットの送受信を行う。
【００２９】
ＭＰＵ３４２は、ＲＯＭ３４４に記憶されているプログラムに従って各種機能を動作させるコマンドを出力する。また、ＭＰＵ３４２は装置全体の動作制御を行う。ＲＡＭ３４３は電気信号の読み込み及び書き込みを行い、ＭＰＵ３４２に作業エリアを提供する主メモリとして利用される。また、ＲＡＭ３４３は、ネットワーク通信部３４１で受信するコンテンツデータをバッファリングし、デコーダ３４５の処理速度と通信速度との速度差を調整する。
【００３０】
ＲＯＭ３４４は、ＭＰＵ３４２が実行する各種プログラムを格納している。ＲＯＭ３４４には、例えば、コンテンツデータを複製する複製部３５０、パケットロスを検知するパケットロス検知部３５１、ダミーパケットを生成するダミーパケット生成部３５２等がある。
【００３１】
尚、複製部３５０は、１階層下に論理接続される端末装置の台数に応じてコンテンツデータの複製を生成する。パケットロス検知部３５１は、例えばコンテンツデータをパケットごとに受信する過程で各パケットのＲＴＰヘッダに書き込まれたシーケンス番号を確認し、パケットロスを検知する。ダミーパケット生成部３５２は、パケットロスによって生じるパケット間のギャップを埋めるダミーパケットを生成する。ダミーパケットの実装については図７及び図９を参照しながら後述する。
【００３２】
デコーダ３４５は、ＲＡＭ３４３でバッファリングしたコンテンツデータをデコードして表示装置等の出力デバイス４００に出力する。
本実施例の端末装置３１１〜３３３では、ＲＡＭ３４３からデコーダ３４５にバッファリングしたデータを送る際、複製部３５０で生成したコンテンツデータの複製を１階層下にある端末装置に其々送信する。また、本実施例における端末装置３１１〜３３３ではデコードを終えたパケットを一時保持した後で順次削除していくため、コンテンツデータを格納するＨＤＤ２０２等の記録媒体を必要としない。以下に、図４を参照しながら、本実施例におけるコンテンツデータの配信方法について説明する。
【００３３】
図４は、本実施例におけるコンテンツデータの配信方法を示す図である。ここでは、例えば第０階層にある端末装置２から配信されたコンテンツデータが第３階層にある端末装置３３１〜３３３まで流れていく場合を示す。
【００３４】
本実施例の端末装置２では、コンテンツデータの配信要求を受けると、当該コンテンツデータの複製を複数の部分データに分割し、これらの部分データを複数のパケットに其々格納して配信する。この時、配信先でコンテンツデータを復元できるように、各パケットにはシーケンス番号が其々書き込まれる。
【００３５】
例えば本実施例では、コンテンツデータの先頭に位置する部分データを格納するパケットには「１」のシーケンス番号を書き込み、次に続く部分データを格納するパケットには「２」のシーケンス番号を書き込む。このように各パケットには、格納する部分データが割り当てられるコンテンツデータにおける位置を示すシーケンス番号が書き込まれる。
【００３６】
従って、本実施例の端末装置では、シーケンス番号の順にパケットを配信することで、配信先の端末装置においてコンテンツデータをストリーミングでデコードさせることができる。また、コンテンツデータの配信を受ける各端末装置では、受信した各パケットのシーケンス番号を参照することでパケットロスを検知することができる。
【００３７】
ここでは、端末装置２から配信されるコンテンツデータを第０層に位置するパケットの集合体で示し、各端末装置３１１〜３３３にバッファリングされるコンテンツデータの複製を第１〜３階層に其々位置するパケットの集合体で示す。
【００３８】
まず、第０階層の端末装置２がコンテンツデータの配信要求を受けると、端末装置２は、当該コンテンツデータの複製を生成して第１階層にある端末装置３１１〜３１３に送信する。尚、本実施例ではコンテンツデータの複製はパケット単位で送信される。
【００３９】
端末装置３１１〜３１３では受信したパケットを其々のＲＡＭ３４３に一時的に保存する。この時、端末装置３１１は第２階層にある端末装置の台数に応じてパケットの複製を生成する。
【００４０】
ＲＡＭ３４３に受信したパケットが一定量蓄積されると、端末装置３１１〜３１３は、当該パケットをＲＡＭ３４３からデコーダ３４５に転送してデコードし、出力デバイス４００でデコードされたコンテンツデータを視聴できるようにする。また、同時に、端末装置３１１は生成したパケットの複製を第２階層にある端末装置３２１〜端末装置３２３に送信する。以下、各階層における端末装置では、上述の処理を繰り返してコンテンツデータの配信を行う。
【００４１】
本実施例ではＲＡＭ３４３に蓄積するパケットを一定のペースでデコーダ３４５に転送する。また、デコーダ３４５への転送に伴ってパケットの複製を１階層下の端末装置に送信する。これにより、下階層の端末装置へコンテンツデータを配信するタイミングも一定のペースに保たれて各端末装置間のコンテンツデータのストリーミング配信を平滑化することができる。
【００４２】
ここで、コンテンツデータのストリーミング配信では、通信量が各装置の処理能力を超えた場合等にパケットロスが発生する。通信システム１のようなシステムでは、このパケットロスに対して何ら対策を取らなければ、コンテンツデータが下階層に転送されていくほどパケットロスが累積し、下階層の端末装置であるほどコンテンツの画質・音質が劣化する。このパケットロスの累積を回避するため、本実施例ではパケットロス検知後に図５及び図６に示す手順に従って処理を行う。
【００４３】
以下、図５及び図６を参照して本実施例の端末装置におけるパケットロス検知後の処理の流れを説明する。尚、ここでは説明を簡略化するために第０階層の端末装置２、第１階層の端末装置３１１、第２階層の端末装置３２１、及び第３階層の端末装置３３１の各端末装置におけるコンテンツデータ配信の流れを一例として示している。そして、ここでは端末装置２から端末装置３１１に送信されたコンテンツデータの中で、シーケンス番号３のパケットが消失する場合を想定する。
【００４４】
図５は、シーケンス番号３のパケットを端末装置３２１へストリーミングで送信する順番となるまでの時間に再送パケットを受信できた場合の流れを示し、図６は、シーケンス番号３のパケットを端末装置３２１へストリーミングで送信する順番となるまでの時間に再送パケットを受信できなかった場合の流れを示す。
【００４５】
端末装置２ではコンテンツデータの配信要求を受け、コンテンツデータの配信を開始する。端末装置３１１は、受信したパケットのバッファリングを行って一定量蓄積したパケットをデコーダに送る。端末装置３１１〜３３１では、例えば６パケットの蓄積に伴い、当該データを次の配信先に転送するものとする。
【００４６】
つまり、端末装置３１１〜３３１では、シーケンス番号１〜６までのパケットを順次受信してバッファリングした後、シーケンス番号７のパケットの受信に伴い、シーケンス番号１のパケットから下階層の端末装置へのストリーミング転送を開始する。
【００４７】
端末装置２から端末装置３１１にコンテンツデータを配信する過程において、例えばシーケンス番号３のパケットロスを検出した場合、端末装置３１１は、端末装置２にシーケンス番号３のパケットの再送要求を送信すると共に、パケット間のギャップを補充するためシーケンス番号３のダミーパケットを生成する。
【００４８】
ここで図５に示すように、シーケンス番号３のパケットを端末装置３２１へストリーミングで送信する順番となるまでの時間に再送パケットを受信できれば、端末装置３１１は生成しているシーケンス番号３のダミーパケットを削除し、代わりに再送されたパケットを補充する。
【００４９】
しかし、図６に示すように、シーケンス番号３のパケットを端末装置３２１へストリーミングで送信する順番となるまでの時間に再送パケットを受信できなければ、端末装置３１１は、生成しているシーケンス番号３のダミーパケットが補充されたコンテンツデータを端末装置３２１に配信する。その後、再送されたシーケンス番号３のパケットを受信すると、端末装置３１１は、当該パケットを優先的に端末装置３２１に転送する。
【００５０】
例えば端末装置３２１では、シーケンス番号３のパケットを端末装置３３１へ送信する順番となるまでの時間に再送されたパケットを受信できた場合、当該再送されたパケットと同一のシーケンス番号をもつダミーパケットを削除し、代わりに再送されたパケットを補充する。
【００５１】
このように、本実施例では再送されたパケットを優先して転送する。再送されたパケットは、各端末装置でバッファリングしながら転送されるコンテンツデータよりも速く転送されるため、先に送信されたコンテンツデータに追いつくことができる。これにより、たとえ上階層の端末装置で間に合わなくても、下階層の端末装置でコンテンツデータに追いついてパケットロスが生じた部分を補充できる。従って、本実施例では、Ｐ２Ｐによるストリーミング配信において、パケットロスの累積を回避する仕組みを実現できる。
【００５２】
また、仮にパケットロスが生じた部分を補充しない状態でコンテンツデータが転送された場合、転送先の端末装置で新たなパケット再送要求が送信される。その結果、ネットワークのトラフィックが増加して輻輳状態となる可能性がある。
【００５３】
本実施例では、コンテンツデータを受信した端末装置がパケットロスを検知する度、パケットロスが生じた部分を逐次補充して次の端末装置に転送することで、下階層から新たなパケット再送要求が送信されることを回避できる。
【００５４】
また、本実施例ではデコードを終えたコンテンツデータを一時保持した後で削除するため、第２階層以下の階層の端末装置では、パケット再送要求を送信しても上階層の端末装置で所望のパケットが削除されて再送を受けられない可能性がある。この場合、パケットロスを検知した端末装置では、端末装置２または同一階層にある他の端末装置にパケット再送要求を送信することができるものとする。
【００５５】
尚、本実施例では、コンテンツデータのストリーミング配信を受ける端末装置は、ネットワーク接続を行う際に端末装置２または上階層の他の端末装置から自装置が位置する階層、および端末装置２や上階層・同一階層にある他の端末装置のアドレス等の情報を取得しているものとする。
【００５６】
次に、図７乃至図９を参照して本実施例のダミーパケットの実装方法について説明する。図７は、本実施例におけるＲＴＰの構成例を示す。本実施例では、端末装置間で送受信するパケットが、例えば装置を識別するＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスと、ＵＤＰで使われる制御情報が格納されるＵＤＰヘッダと、ＲＴＰで使われる制御情報が格納されるＲＴＰヘッダと、部分データが格納されるＲＴＰペイロードとにより構成される。
【００５７】
本実施例のＲＴＰヘッダ７００には、例えば現在のＲＴＰのバージョン（Ｖ；ｖｅｒｓｉｏｎ）、パディング（Ｐ；ｐａｄｄｉｎｇ）、エクステンション（Ｘ；ｅｘｔｅｎｓｉｏｎ）、ＣＳＲＣ数（ＣＣ；ｃｏｎｔｒｉｂｕｔｉｎｇ  ｓｏｕｒｃｅ  ｃｏｕｎｔ）、マーカ（Ｍ；ｍａｒｋｅｒ）、ペイロードタイプ（ＰＴ；ｐａｙｌｏａｄ  ｔｙｐｅ）、シーケンス番号（ｓｅｑｕｅｎｃｅ  ｎｕｍｂｅｒ）、タイムスタンプ（ｔｉｍｅｓｔａｍｐ）、及びＳＳＲＣ（ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｓｏｕｒｃｅ）等のデータが書き込まれる。
【００５８】
パディングは、ＲＴＰペイロードの最後にパディングがあるか否かを示す。尚ここでは、ＲＴＰペイロードの最後にパディングがある場合に「１」の値が書き込まれる。
【００５９】
エクステンションは、ＲＴＰ拡張ヘッダを利用しているか否かを示す。尚ここでは、ＲＴＰ拡張ヘッダを利用する場合に「１」の値が書き込まれる。
ＣＳＲＣ数は、途中にミキサやトランスレータが入ることで複数ＲＴＰストリームがマージされた場合、マージされた情報源の数を示す。
マーカは、ＲＴＰストリームの重要なイベントに印をつけるために使用される。このビットの利用方法は利用するＲＴＰプロファイルやＲＴＰペイロードフォーマットによって決まる。
【００６０】
シーケンス番号は、ＲＴＰパケットが送信される度にインクリメントされ、パケットロスの検知等に利用される。
本実施例ではパケットロスを検出した際、ＲＴＰヘッダ７００に図８に示す拡張ヘッダ８００を追加してダミーパケットを生成する。図８は、ＲＴＰヘッダ７００に追加する拡張ヘッダ８００の一例である。図９は、本実施例におけるダミーパケットの構成例を示す。尚、本実施例では、ダミーパケットは通常のパケットより短くなるように実装してネットワークのトラフィックを少なくする。例えば本実施例ではＲＴＰの拡張ヘッダを利用してペイロードのサイズをゼロとする。
【００６１】
ＲＴＰヘッダ７００に追加する拡張ヘッダ８００は、データが書き込まれる領域８１１、領域８１２、領域８１３、及び領域８１４の各領域に分けられる。各領域は其々２バイト（１６ビット）のデータ長を持つ。
【００６２】
領域８１１には、例えば当該パケットがダミーパケットであることが判別できるようにダミーパケットを示す特定の値が書き込まれる。領域８１２には、ペイロードのサイズが書き込まれる。本実施例では、ダミーパケットのペイロードサイズをゼロとしているため、ここでは「０」の値が書き込まれる。
【００６３】
領域８１３には、消失したパケットのシーケンス番号が書き込まれる。また、パケットロスが連続して発生した場合は、当該連続するパケットロスの中で初めに消失した先頭パケットのシーケンス番号が書き込まれる。領域８１４には、パケットロスが連続して発生した場合に、そのとき消失したパケットの数が書き込まれる。パケットロスが連続しない場合、領域８１４には「１」の値が書き込まれる。
【００６４】
通常、パケットロスが発生する度に消失したシーケンス番号に対応するダミーパケットを其々生成するが、例えばパケットロスが連続して発生した場合は、各番号に対応するダミーパケットを其々生成して、其々パケット間のギャップを補充するよりも１つのダミーパケットでギャップを一括して補充した方が通信量を少なくできる。
【００６５】
そこで、本実施例ではパケットロスが連続して発生した場合、当該連続するパケットロスの中で初めに消失した先頭パケットのシーケンス番号が書き込まれた領域８１３と連続して消失したパケットの数が書き込まれた領域８１４を参照して、パケット間のギャップを一括して補充できるダミーパケットを生成する。
【００６６】
次に、図１０乃至図１１を参照して各端末装置３１１〜３３３におけるコンテンツデータ転送処理の流れを説明する。図１０は、端末装置３１１におけるコンテンツデータ転送処理の手順を示すフローチャートである。尚、ここでは説明を簡略化するため端末装置２、端末装置３１１、端末装置３２１、及び端末装置３３１の各端末装置におけるコンテンツデータ配信の流れを一例として示している。また、ここでは端末装置３１１の処理を中心に示すが、本実施例における各端末装置は其々同様の処理を行うものとする。
【００６７】
端末装置２からパケットを受信すると（Ｓ１００１）、端末装置３１１のＭＰＵ３４２は、受信したパケットが再送されたパケットであるか否か確認する（Ｓ１００２）。受信したパケットが再送されたパケットであれば（Ｓ１００２のＹｅｓ）、端末装置３１１のＭＰＵ３４２は、再送されたパケットのシーケンス番号を確認し、このシーケンス番号が現在ＲＡＭ３４３にバッファリングされた各パケットの其々のシーケンス番号の中で最も小さいシーケンス番号よりも小さい値であるか否か、即ち、この再送されたパケットが端末装置３１１においてストリーミングでデコードされる予定の時刻に間に合ったか否か確認する（Ｓ１００３）。
【００６８】
再送されたパケットのシーケンス番号が、現在ＲＡＭ３４３にバッファリングされた各パケットの其々のシーケンス番号の中で最も小さいシーケンス番号よりも小さい値である場合、即ち、この再送されたパケットが端末装置３１１においてストリーミングでデコードされる予定の時間に間に合わなかった場合（Ｓ１００３のＹｅｓ）、端末装置３１１のＭＰＵ３４２は、この再送されたパケットをバッファリングすることなく優先的に端末装置３２１に送信する（Ｓ１０１０）。
【００６９】
Ｓ１００３の処理で、再送されたパケットのシーケンス番号が現在ＲＡＭ３４３にバッファリングされた各パケットの其々のシーケンス番号の中で最も小さいシーケンス番号よりも大きい値である場合、即ち、この再送されたパケットが端末装置３１１においてストリーミングでデコードされる予定の時間に間に合った場合（Ｓ１００３のＮｏ）、端末装置３１１のＭＰＵ３４２は、再送されたパケットと同一のシーケンス番号を有するダミーパケットをＲＡＭ３４３から削除し、代わりに当該再送されたパケットをＲＡＭ３４３にバッファ記録する（Ｓ１００４）。
【００７０】
Ｓ１００２で受信したパケットが再送されたパケットでなければ（Ｓ１００２のＮｏ）、端末装置３１１のＭＰＵ３４２は、このパケットのＲＴＰヘッダに書き込まれたシーケンス番号を確認し、パケットロスを検知する（Ｓ１００５）。
【００７１】
パケットロスを検知した場合（Ｓ１００５のＹｅｓ）、端末装置３１１のＭＰＵ３４２は、端末装置２に消失したパケットのシーケンス番号を含むパケット再送要求を送信する（Ｓ１００６）。また、端末装置３１１のＭＰＵ３４２は、パケットロスが生じた部分を補充するため、パケットロスを検出したシーケンス番号のダミーパケットを生成し（Ｓ１００６）、ＲＡＭ３４３にバッファ記録する（Ｓ１００８）。
【００７２】
Ｓ１００４でパケットロスを検出しない場合（Ｓ１００２のＮｏ）、端末装置３１１のＭＰＵ３４２は、受信したパケットをバッファ記録する（Ｓ１００８）。この時、端末装置３１１のＭＰＵ３４２は、１階層下に接続された端末装置の台数に応じてパケットの複製を生成しておく。
【００７３】
Ｓ１００７の処理を行うと、端末装置３１１のＭＰＵ３４２はＲＡＭ３４３に一定量のパケットが蓄積したか否か確認する（Ｓ１００９）。一定量のパケットが蓄積していなければ（Ｓ１００８のＮｏ）、端末装置３１１のＭＰＵ３４２はＳ１００１に処理を戻す。
【００７４】
一定量のパケットが蓄積していれば（Ｓ１００９のＹｅｓ）、端末装置３１１のＭＰＵ３４２は、ＲＡＭ３４３から最も小さいシーケンス番号を有するパケットを読み出してデコーダ３４５に転送すると共に、当該パケットの複製を下階層の端末装置３２１に送信する（Ｓ１０１０）。
【００７５】
次に、端末装置３１１のＭＰＵ３４２は、コンテンツデータのデコードが完了したか否か確認する（Ｓ１０１１）。コンテンツデータのデコードが完了していなければ（Ｓ１０１１のＮｏ）、端末装置３１１のＭＰＵ３４２は処理をＳ１００１に戻す。コンテンツデータのデコードが完了すれば（Ｓ１０１１のＹｅｓ）、端末装置３１１のＭＰＵ３４２は処理を終了する。
【００７６】
また、本実施例の端末装置では、同一階層または下階層からのパケット再送要求に応じてパケットロスした部分のパケットを再送する機能を有する。次に、図１１を参照しながら本実施例におけるパケット再送の流れについて説明する。図１１は端末装置３１１におけるパケット再送の流れを示すフローチャートである。ここでは、例えばパケット再送要求を端末装置３１１が受信した場合を想定する。尚、ここでは説明を簡略化するため第１階層の端末装置３１１の処理についてのみ示すが、本実施例における端末装置は全て端末装置３１１と同様の処理を行うものとする。
【００７７】
端末装置３１１ではコンテンツデータを端末装置３２１〜３２３に転送する過程で、同一階層の端末装置３１２および端末装置３１３、または下階層の端末装置３２１〜３３３からパケット再送要求を受信したか否か確認する（Ｓ１１０１）。パケット再送要求を受信しない場合（Ｓ１１０１のＮｏ）、端末装置３１１のＭＰＵ３４２はＳ１１０１の処理を繰り返して待機する。
【００７８】
Ｓ１１０１でパケット再送要求を受信した場合（Ｓ１１０１のＹｅｓ）、端末装置３１１のＭＰＵ３４２は、パケット再送要求の信号に含まれる消失したパケットのシーケンス番号を参照し、ＲＡＭ３４３内に該当するシーケンス番号のパケットがあるか否か確認する（Ｓ１１０２）。ＲＡＭ３４３内に該当するシーケンス番号のパケットが存在しない場合（Ｓ１１０２のＮｏ）、端末装置１３１のＭＰＵ３４２は、パケット再送要求を送信した下階層の端末装置に該当するシーケンス番号のパケットが存在しない旨の通知を送信し（Ｓ１１０５）、処理をＳ１１０１に戻す。
【００７９】
Ｓ１１０２の処理でＲＡＭ３４３に該当するシーケンス番号のパケットが存在する場合（Ｓ１１０２のＹｅｓ）、端末装置３１１のＭＰＵ３４２は、当該シーケンス番号のパケットをＲＡＭ３４３から読み出して複製を生成し（Ｓ１１０４）、パケット再送要求を送信した下階層の端末装置３２１〜３２３に送信する（Ｓ１１０５）。
【００８０】
次に、端末装置３１１のＭＰＵ３４２は、コンテンツデータのデコードが完了したか否か確認する（Ｓ１１０６）。コンテンツデータのデコードが完了していなければ（Ｓ１１０６のＮｏ）、端末装置３１１のＭＰＵ３４２は処理をＳ１００１に戻す。コンテンツデータのデコードが完了すれば（Ｓ１１０６のＹｅｓ）、端末装置３１１のＭＰＵ３４２は処理を終了する。
【００８１】
以上説明したように、本実施例によれば、Ｐ２Ｐによるストリーミング配信において、パケットロスの累積を回避する仕組みを実現できる。
本実施例によれば、パケットの再送が間に合わない場合にダミーパケットでパケット間のギャップを補充してコンテンツデータ転送するため、下階層から新たなパケット再送要求が送信されることを回避できる。それにより、ネットワークの輻輳を回避してデータ配信できる通信装置を提供できる。
【００８２】
本実施例の端末装置では、配信されたコンテンツデータをデコードした後にデータを消去するため、ＨＤＤ等の大容量記録媒体を備える必要が無い。また、コンテンツデータを再生する端末装置のみが配信対象となるため、ネットワーク帯域が削減できる。
【００８３】
本実施例では、パケット再送要求を上階層および同一階層の他の端末装置に送信できる。それにより、端末装置間でパケットロスの対応処理が実行できる。
本実施例では、一定量のバッファを確保した後でデコードするため、出力デバイスでコンテンツを視聴する際に、映像・音声における揺らぎや歪み等のジッタの発生を回避できる。また、本実施例では、デコーダへの転送に伴ってパケットの複製を１階層下の端末装置に送信する。これにより、下階層の端末装置へコンテンツデータを配信するタイミングも一定のペースに保たれて各端末装置間のデータ通信を平滑化することができる。
【００８４】
本実施例ではパケットロスが連続して発生した場合、当該連続するパケットロスの中で初めに消失した先頭パケットのシーケンス番号とロスパケット数を参照して、パケット間のギャップを一括して補充するダミーパケットを生成することができる。
【００８５】
本実施例では新たな端末装置を接続する際、各階層におけるコンテンツの再生開始時刻を考慮して好適な接続先を決定することができる。
本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施例に係る通信システムの構成を示す図。
【図２】本発明の実施例に係るコンテンツデータを配信する端末装置２の構成を示す図。
【図３】本発明の実施例に係る端末装置３１１の構成を示す図。
【図４】本実施例に係るコンテンツデータの配信方法を示す図。
【図５】本発明の実施例に係るパケットロス検知後の処理の流れを示す図。
【図６】本発明の実施例に係るパケットロス検知後の処理の流れを示す図。
【図７】本発明の実施例に係るＲＴＰヘッダの構成例を示す図。
【図８】本発明の実施例に係るＲＴＰヘッダに追加する拡張ヘッダの一例を示す図。
【図９】本実施例におけるダミーパケットの構成例を示す図。
【図１０】本発明の実施例に係る端末装置におけるコンテンツデータ転送の処理手順を示すフローチャート。
【図１１】本発明の実施例に係る端末装置におけるパケット再送の流れを示すフローチャート。
【符号の説明】
【００８７】
１・・・通信システム
２、３１１、３１２、３１３、３２１、３２２、３２３、３３１、３３２、３３３・・・端末装置
２０１、３４１・・・ネットワーク通信部
２０２・・・ＨＤＤ
２０３、３４２・・・ＭＰＵ
２０４、３４３・・・ＲＯＭ
２０５、３４４・・・ＲＡＭ
２５０、３５０・・・複製部
３４５・・・デコーダ
３５１・・・パケットロス検知部
３５２・・・ダミーパケット生成部
４００・・・出力デバイス
７００・・・ＲＴＰヘッダ
８００・・・拡張ヘッダ
８１１、８１２、８１３、８１４・・・拡張ヘッダ内のデータ書込み領域
【図１】
2009206998.tif 000003
【図２】
2009206998.tif 000004
【図３】
2009206998.tif 000005
【図４】
2009206998.tif 000006
【図５】
2009206998.tif 000007
【図６】
2009206998.tif 000008
【図７】
2009206998.tif 000009
【図８】
2009206998.tif 000010
【図９】
2009206998.tif 000011
【図１０】
2009206998.tif 000012
【図１１】
2009206998.tif 000013