通信装置、通信システム、通信方法およびプログラム

申请号 JP2017525792 申请日 2016-04-25 公开(公告)号 JPWO2017002291A1 公开(公告)日 2018-04-19
申请人 ソニー株式会社; 发明人 深田 浩之; 古谷 高弘;
摘要 基地局から送信された情報パケットを受信する機能と、複数の受信端末で情報を共有するためのローカルネットワークに接続する通信機能と、パリティパケットを生成する機能と、生成したパリティパケットと生成元パケットすべての識別情報とをローカルネットワークにマルチキャストする機能と、他の端末がマルチキャストしたパリティパケットと生成元パケットすべての識別情報とをローカルネットワークを通じて受信する機能と、受信したパリティパケットと生成元パケットすべての識別情報とを記憶部に保存する機能と、パリティパケットと生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させる機能とを備える。図3
权利要求

基地局から送信された情報パケットを受信する機能と、 複数の端末間で情報を共有するためのローカルネットワークに接続する通信機能と、 パリティパケットを生成する機能と、 生成した前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークにマルチキャストする機能と を備える通信装置。基地局から送信された情報パケットを受信する機能と、 他の端末がマルチキャストした前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークを通じて受信する機能と、 受信した前記パリティパケットと生成元パケットすべての識別情報とを記憶部に保存する機能と、 前記パリティパケットと生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させる機能と を備える通信装置。基地局から送信された情報パケットを受信する機能と、 複数の端末間で情報を共有するためのローカルネットワークに接続する通信機能と、 パリティパケットを生成する機能と、 生成した前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークにマルチキャストする機能と、 他の端末がマルチキャストした前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークを通じて受信する機能と、 受信した前記パリティパケットと生成元パケットすべての識別情報とを記憶部に保存する機能と、 前記パリティパケットと生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させる機能と を備える通信装置。正しく受信、もしくは回復できた情報パケットの中から複数の情報パケットを選択し、選択された前記情報パケット対して誤り訂正符号化を行い、単数もしくは複数の前記パリティパケットを生成する請求項1に記載の通信装置。正しく受信、もしくは回復できた情報パケットの中から複数もしくは単数の情報パケットを選択し、選択された前記情報パケットのビット毎の排他的論理和により、前記パリティパケットを生成する請求項1に記載の通信装置。前記パリティパケットの生成に用いる単数もしくは複数の生成元パケットをランダムに選択する請求項5に記載の通信装置。複数または単数の情報パケットおよび既に生成されたパリティパケットを選択し、ビット毎の排他的論理和により前記パリティパケットを生成する請求項1に記載の通信装置。前記生成元パケットをランダムに選択する際に、すでに選択された回数に応じて、選択される確率を変える請求項7に記載の通信装置。送信済みパリティパケットの生成元情報のみをローカルネットワーク上でマルチキャスト伝送する請求項1に記載の通信装置。生成元情報パケットの識別情報として、情報パケット内のシーケンス番号もしくは、タイムスタンプ値を用いる請求項1に記載の通信装置。生成元情報パケットの識別情報を、MPEG2−TSのPCR値から生成する請求項1に記載の通信装置。生成元情報パケットの識別情報を、MPEG2−TSパケットヘッダのコンティニュイティカウンタから生成する請求項1に記載の通信装置。生成元情報パケットの識別情報を、MPEG2−TS内に多重されている複数のプログラムのPCR値と、複数のPIDのコンティニュイティカウンタを組み合わせて生成する請求項1に記載の通信装置。生成元パリティパケットの識別情報を、パリティパケット生成装置固有の情報と、その端末で既に生成されたパリティパケット数より生成する請求項7に記載の通信装置。受信パリティパケットの生成元パケットと同一の識別情報を持つパケットを記憶部から検索し、生成元パケットの内、欠落パケットが一つだけであれば、受信パリティパケットと他の生成元パケットの排他的論理和により、消失パケットを回復する請求項1に記載の通信装置。基地局からマルチキャストまたはブロードキャストされた情報パケットを受信する複数の端末と、前記複数の端末同士で情報を共有するためのネットワークとを有し、 前記複数の端末が複数回にわたりパリティパケットをお互いに送受信して共有することにより、各端末で正常に受信できなかった情報パケットを回復するようにした通信システム。前記複数の端末の内、1つもしくは複数の端末はパリティパケットの生成、送信のみを行う第1の通信装置であり、それ以外の複数の端末は第2の通信装置であり、 前記第1の通信装置は、 基地局から送信された情報パケットを受信する機能と、 複数の端末間で情報を共有するためのローカルネットワークに接続する通信機能と、 前記パリティパケットを生成する機能と、 生成した前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークにマルチキャストする機能とを備え、 前記第2の通信装置は、 前記基地局から送信された情報パケットを受信する機能と、 前記第1の通信装置がマルチキャストした前記パリティパケットと前記生成元パケットすべての識別情報とを前記ローカルネットワークを通じて受信する機能と、 受信した前記パリティパケットと前記生成元パケットすべての識別情報とを記憶部に保存する機能と、 前記パリティパケットと前記生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させる機能とを備える通信装置である請求項16に記載の通信システム。前記複数の端末のそれぞれは、 基地局から送信された情報パケットを受信する機能と、 複数の受信端末で情報を共有するためのローカルネットワークに接続する通信機能と、 パリティパケットを生成する機能と、 生成した前記パリティパケットと前記生成元パケットすべての識別情報とを前記ローカルネットワークにマルチキャストする機能と、 他の端末がマルチキャストした前記パリティパケットと前記生成元パケットすべての識別情報とを前記ローカルネットワークを通じて受信する機能と、 受信した前記パリティパケットと前記生成元パケットすべての識別情報とを記憶部に保存する機能と、 前記パリティパケットと前記生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させる機能と を有する請求項16に記載の通信システム。複数の端末が基地局からマルチキャストまたはブロードキャストされた情報パケットを受信し、ネットワークを介して前記複数の端末同士で情報を共有し、 前記複数の端末が複数回にわたりパリティパケットをお互いに送受信して共有することにより、各端末で正常に受信できなかった情報パケットを回復するようにした通信方法。基地局から送信された情報パケットを受信するステップと、 複数の端末間で情報を共有するためのローカルネットワークに接続する通信ステップと、 パリティパケットを生成するステップと、 生成した前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークにマルチキャストするステップと、 他の端末がマルチキャストした前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークを通じて受信するステップと、 受信した前記パリティパケットと生成元パケットすべての識別情報とを記憶部に保存するステップと、 前記パリティパケットと生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させるステップと を有する通信方法をコンピュータに対して実行させるプログラム。

说明书全文

本開示は、放送や携帯無線通信に適用される通信装置、通信システム、通信方法およびプログラムに関する。

通信の質を向上させるために、複数のアンテナで受信した同一の無線信号に関して、電波状況の良いアンテナの信号を優先的に用いる空間ダイバーシティ方式(アンテナ選択方式)が知られている。また、受信できなかったデータを、基地局に再送信させる方式も知られている。

これらの方式では、基地局と受信機との間の回線が確保されていることが必要とされる。そのため、回線の確保が困難な場合には、これらの方式を使用することができない。このような問題に対処するために、複数の受信機がネットワークを構成し、複数の受信機間で放送データを共有し、ネットワークを介して他の受信機から受信できなかったデータを収集する方式が提案されている(特許文献1参照)。

特開2002−141856号公報

特許文献1に記載の方式は、下記の問題点がある。 第1に制御が複雑である。すなわち、パケットを再構成するために必要な管理情報と、記憶装置に蓄積されたパケットの所有情報とにより不足するパケットを把握し、無線受信機間で不足パケットを送受信する際のやりとりを制御することが必要となる。 第2に、データ共有のために使用するローカルネットワークの通信量が大きい。すなわち、どの端末が不足パケットを所有しているかといった情報を伝達する必要があり、その分ローカルネットワークでの通信が必要となってしまう。各端末の不足パケットをそれぞれ伝送する必要があり、ローカルネットワークの通信量を必要としてしまう。 第3に端末数に制限が生じる。すなわち、端末が増えると当然通信量が増えるため、ローカルネットワークの通信容量に応じて、端末数に制限が生じる。

したがって、本開示の目的は、これらの問題点が解消できる通信装置、通信システム、通信方法およびプログラムを提供することにある。

上述の課題を解決するために、本開示は、基地局から送信された情報パケットを受信する機能と、 複数の端末間で情報を共有するためのローカルネットワークに接続する通信機能と、 パリティパケットを生成する機能と、 生成したパリティパケットと生成元パケットすべての識別情報とをローカルネットワークにマルチキャストする機能と を備える通信装置である。 本開示は、基地局から送信された情報パケットを受信する機能と、 他の端末がマルチキャストしたパリティパケットと生成元パケットすべての識別情報とをローカルネットワークを通じて受信する機能と、 受信したパリティパケットと生成元パケットすべての識別情報とを記憶部に保存する機能と、 パリティパケットと生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させる機能と を備える通信装置である。 本開示は、基地局から送信された情報パケットを受信する機能と、 複数の端末間で情報を共有するためのローカルネットワークに接続する通信機能と、 パリティパケットを生成する機能と、 生成したパリティパケットと生成元パケットすべての識別情報とをローカルネットワークにマルチキャストする機能と、 他の端末がマルチキャストしたパリティパケットと生成元パケットすべての識別情報とをローカルネットワークを通じて受信する機能と、 受信したパリティパケットと生成元パケットすべての識別情報とを記憶部に保存する機能と、 パリティパケットと生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させる機能と を備える通信装置である。 本開示は、基地局からマルチキャストまたはブロードキャストされた情報パケットを受信する複数の端末と、複数の端末同士で情報を共有するためのネットワークとを有し、 複数の端末が複数回にわたりパリティパケットをお互いに送受信して共有することにより、各端末で正常に受信できなかった情報パケットを回復するようにした通信システムである。 本開示は、複数の端末が基地局からマルチキャストまたはブロードキャストされた情報パケットを受信し、ネットワークを介して複数の端末同士で情報を共有し、 複数の端末が複数回にわたりパリティパケットをお互いに送受信して共有することにより、各端末で正常に受信できなかった情報パケットを回復するようにした通信方法である。 本開示は、 基地局から送信された情報パケットを受信するステップと、 複数の端末間で情報を共有するためのローカルネットワークに接続する通信ステップと、 パリティパケットを生成するステップと、 生成したパリティパケットと生成元パケットすべての識別情報とをローカルネットワークにマルチキャストするステップと、 他の端末がマルチキャストしたパリティパケットと生成元パケットすべての識別情報とをローカルネットワークを通じて受信するステップと、 受信したパリティパケットと生成元パケットすべての識別情報とを記憶部に保存するステップと、 パリティパケットと生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させるステップと を有する通信方法をコンピュータに対して実行させるプログラムである。

少なくとも一つの実施形態によれば、各端末が他の端末の欠落情報を知る必要はなく、それらの制御情報を伝送する必要がない。さらに、受信できているデータからパリティパケットを生成し、各端末へマルチキャスト伝送する。各端末での誤りや欠落部分が確率的に異なるため、ひとつのパリティパケットによって複数の端末の誤り・欠落の回復を同時に行うことができる。したがって、ローカルネットワークの通信容量の消費が少ない。さらに、端末各々の消失データを互いに知る必要がなく、かつ、パリティパケットにより複数の端末において同時に回復機能を果たすことが可能である。また、マルチキャスト伝送を用いてパリティパケットを共有することにより、全端末が同一のパリティパケットを同時に受信し、同時に消失パケットの回復が可能であることから、ローカルネットワークの負荷が端末数に依存せず、従来技術のようにローカルネットワークの通信容量に応じて端末数が制限されることが無い。なお、ここに記載された効果は必ずしも限定されるものではなく、この発明中に記載されたいずれの効果であってもよい。また、以下の説明における例示された効果によりこの発明の内容が限定して解釈されるものではない。

本開示のシステムの説明に使用するブロック図である。

本開示の第1の実施の形態の全体構成を示すブロック図である。

全体構成と端末の構成を示すブロック図である。

本開示の動作を説明するための略線図である。

本開示の動作を説明するための略線図である。

本開示の情報パケットの選択率を更新する効果を説明するためのグラフである。

本開示の第2の実施の形態における端末の構成のブロック図である。

トランスポートストリームを説明するための略線図である。

識別情報の付加の方法の一例を説明するための略線図である。

情報パケット記憶部の記憶領域を説明するための略線図である。

パリティパケット記憶部の記憶領域を説明するための略線図である。

チェックノード記憶部の記憶領域を説明するための略線図である。

タナーグラフを説明するための略線図である。

タナーグラフと対応する情報パケット記憶部を説明するための略線図である。

タナーグラフと対応するチェックノード記憶部を説明するための略線図である。

タナーグラフと対応するパリティパケット記憶部を説明するための略線図である。

エンコード処理部の処理を説明するためのフローチャートである。

パリティ生成に使用する情報パケットの選択範囲を説明するための略線図である。

パリティパケット伝送フォーマットを説明するための略線図である。

パリティパケット入部の処理を説明するためのフローチャートである。

パリティパケット接続処理を説明するためのフローチャートである。

情報パケット接続処理を説明するためのフローチャートである。

デコード処理部の処理を説明するためのフローチャートである。

チェックノードキューを説明するための略線図である。

チェックノード処理を説明するためのフローチャートである。

エンコード処理のタイミングを説明するためのタイミングチャートである。

コーディングベクタ情報を説明するための略線図である。

コーディングベクタ情報受信処理を説明するためのフローチャートである。

本開示を説明するためのタナーグラフである。

本開示を説明するためのタナーグラフである。

本開示を説明するためのタナーグラフである。

本開示を説明するためのタナーグラフである。

本開示を説明するためのタナーグラフである。

本開示を説明するためのタナーグラフである。

本開示を説明するためのタナーグラフである。

以下に説明する実施の形態は、本開示の好適な具体例であり、技術的に好ましい種々の限定が付されている。しかしながら、本開示の範囲は、以下の説明において、特に本開示を限定する旨の記載がない限り、これらの実施の形態に限定されないものとする。 なお、本開示の説明は、下記の順序にしたがってなされる。 <1.本開示の概要> <2.第1の実施の形態> <3.第2の実施の形態> <4.変形例>

<1.本開示の概要> 図1を参照して本開示の概要について説明する。基地局(放送局または携帯基地局)1が情報データ例えば放送データをマルチキャストまたはブロードキャストする。複数例えば4個の無線通信の通信装置である端末2a,2b,2cおよび2d(これらの端末を特に区別する必要がない場合は単に端末2と称する)が放送データの情報パケットを受信する。上記、基地局からのマルチキャストまたはブロードキャストは、端末2全てに対して同一の放送データを基地局からユニキャストすることによっても実現される。端末2の例としては、多機能携帯電話(スマートフォン)や、セットトップボックス、テレビ受像機等である。

端末2は、正しく受信、もしくは回復できた情報パケットの中から複数もしくは単数の情報パケットを選択し、選択された情報パケットのビット毎の排他的論理和により、パリティパケットを生成する。生成されたパリティパケットと、生成元パケットの識別情報をローカルネットワーク3上でマルチキャストして、複数の端末2間で、パリティパケットを共有する。ローカルネットワーク3は、マルチキャスト伝送の可能なネットワークであり、例えばIP(Internet Protocol)マルチキャスト伝送が可能な有線LAN(Local Area Network)や無線LAN(Local Area Network)である。

各端末では、刻々と情報パケットを受信しているが、フェージング等による受信状況の違いにより、各端末では確率的に異なる情報パケットで誤りまたは消失(以下単に消失と称する)が生じる。このような消失を回復するために、異なる端末2間で情報パケットから生成されたパリティを互いに共有する。一つのパリティパケットであっても、複数の端末2の異なる情報データに対して回復機能を果たす可能性がある。そのようなパリティパケットを複数共有することによって、高い確率で消失した情報パケットが回復可能となる。

パリティパケットのマルチキャストによるデータ共有は、各端末が各々のエラー状況(どの端末でどの情報パケットが誤っているのか)を知る必要がなく、かつ、複数の端末2において同時に回復機能を果たすことが可能である。

現状の放送に対して適用する場合、MPEG2(Moving Picture Experts Group Phase 2)−TS(Transport Stream)パケット(もしくはこれを複数結合したもの)に対してパリティ生成を行う必要がある。この場合、MPEG2−TS受信データのみから一意に識別情報を付与する必要がある(各端末で同一の番号付けが可能な方法が必要)。この番号付けの方法は、現在の放送へ適用する場合、MPEG2−TS内のPCR(Program Clock Reference)やコンティニュイティ・カウンタを使用して識別情報を作りだす方法や、TSパケットが伝送された無線フレームの番号や、同時に伝送されているジッタ除去用のカウンタ値などを使用することが考えられる。

また、基地局からの情報パケットがRTP(Real-time Transport Protocol)により伝送されている場合、RTPパケットヘッダ内のシーケンス番号やタイムスタンプ値を識別情報に用いることができる。一般的にこのようなシーケンス番号やタイムスタンプ値は、連続して送信されているパケット間においては連続的な値を持つ(連なるパケット間で一定の差分を持つ)ので、端末2が基地局1から刻々と受信している情報パケットの送信順序や、消失パケットの存在を知ることが可能である。 例えば上記RTPのシーケンス番号を識別情報として用いる場合、正しく受信済みの情報パケットのRTPシーケンス番号をその情報パケットの識別情報とする。もし受信済みの一連の情報パケットのRTPシーケンス番号に欠落があれば、欠落しているRTPシーケンス番号が消失した情報パケットのRTPシーケンス番号であるから、消失している情報パケットの識別情報についても決めることができる。 上述のMPEG2−TSやRTPの例に限らず、各情報パケットに対して、端末間で一意に決められる情報であれば、その情報を識別情報とすることができる。

<2.第1の実施の形態> 本開示の第1の実施の形態について以下説明する。図2は、第1の実施の形態の全体構成を示す。図1と同様に、基地局(放送局または携帯基地局)1が情報データ例えば放送データをメディア(無線通信メディア)4を通じてマルチキャストまたはブロードキャストする。複数例えば3個の無線通信の通信装置である端末2a,2bおよび2c(これらの端末を特に区別する必要がない場合は単に端末2と称する)が放送データの情報パケットを受信する。

端末2は、ローカルネットワーク3を介して互いに通信するように設けられている。端末2は、正しく受信、もしくは回復できた情報パケットの中から複数もしくは単数の情報パケットを選択し、選択された情報パケットのビット毎の排他的論理和により、パリティパケットを生成する。パリティパケットを生成するのに使用した情報パケットを生成元情報パケットと称する。生成元情報パケットの識別情報の集合をコーディングベクタと称する。生成されたパリティパケットと、そのパリティパケットのコーディングベクタをローカルネットワーク3上でマルチキャストして、複数の端末2間で、そのパリティパケットおよびコーディングベクタを共有する。

無線通信装置である端末2は、下記の機能を有する。 (1)基地局1から送信された情報パケットを受信する機能 (2)情報パケットからパリティパケットおよびコーディングベクタを生成する機能 (3)生成したパリティパケットおよびコーディングベクタをローカルネットワークにマルチキャスト送信する機能 (4)他の端末がマルチキャスト送信したパリティパケットおよびコーディングベクタをローカルネットワークを通じて受信し、パリティパケットと、コーディングベクタを保存する機能 (5)保存したパリティパケットと、コーディングベクタを使用して、欠落している情報パケットを回復させる機能

図3は、第1の実施の形態の端末2の構成を示す。簡単のため、2つの端末2aおよび2bのみが示されている。端末2aおよび2bは、同一の構成とされているので、端末2aについて説明し、端末2bの対応する構成要素に対しては、同一の参照符号を付して重複した説明を省略する。

端末2の無線部11は、基地局1とメディア4を通じて無線通信を行う。基地局1からが送信され、端末2が送信データを受信する。例えば無線部11は、アンテナ機能、RFチューナ機能を有する。無線部11の受信データを復調する復調部12が設けられ、復調部12は、例えばMPEG2−TSパケットを出力する。本実施の形態ではフェージング等により受信状態が悪くなった場合においても、基地局1が送信しているパケット数と等しい数のTSパケットがエラーパケット等として、一定の間隔で復調部12から出力されるようになされている。

復調部12からのTSパケットは、情報パケット記憶部13に記憶される。なお、TSパケットに対しては、パケットを識別するための識別情報が付加される。A/Vデコード部14に供給され、ビデオデータVおよびオーディオデータAが復調される。ビデオデータVおよびオーディオデータAが表示装置15に供給され、ビデオおよびオーディオが表示装置15によって再生される。

パリティパケットを記憶するパリティパケット記憶部16が設けられている。情報パケット記憶部13とパリティパケット記憶部16がパリティ共有誤り制御部17と接続されている。このパリティ共有誤り制御部17が本開示の特徴とする機能を備えている。パリティ共有誤り制御部17では受信した情報パケットに対する符号化と、他の端末から得られたパリティパケットを用いて消失情報パケットの回復処理を行う。以降の本実施例で記載するパリティ生成方法や復号方法以外にも、他の一般的な前方誤り訂正符号に基づいたパリティの生成方法、復号方法を適用することが可能である。図4および図5を参照してパリティ共有誤り制御部17の動作について説明する。

図4は、基地局1からの情報パケットの送信と、端末2でのパリティパケットの生成について説明する図で、以下のような動作となる。 (1)基地局1からの情報パケットの送信と、端末でのパケットの生成 (i)基地局1から情報パケットi[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]が送信される。情報パケットi[x]の識別情報をxとする。たとえばi[7]の識別情報は7である。 (ii)端末2aでは、基地局1から送信されたパケットi[0],i[1], ・・・i[7]に対応した受信パケットR1[0],R1[1],・・・R1[7]が受信される。ただし、斜線を付した受信した情報パケットR1[2]は消失したパケットである。例えばパケット毎に消失を検出することが可能とされ、パケット毎に消失を示すフラグが形成される。受信した情報パケットは情報パケット記憶部13に保存される。R1[x]の識別情報をxとする。たとえばR1[7]の識別情報は7となる。 (iii)端末2bでも、端末2aと同様に、基地局1から送信されたパケットに対応した情報パケットR2[0],R2[1],・・・R2[7]が受信、保存される。ただし、斜線を付した情報パケットR2[5]は消失したパケットである。R2[x]の識別情報をxとする。たとえばR2[7]の識別情報は、7となる。

(2)パリティパケットの生成 (i)端末2aでは、パリティ共有誤り制御部7にてパリティパケットを生成する。正しく受信、もしくは回復できた情報パケットの中から複数もしくは単数の情報パケットを選択し、選択された情報パケット(生成元情報パケットと称する)のビット毎の排他的論理和により、パリティパケットが生成される。受信した情報パケット(消失していない情報パケット)から、ランダムに、予め定められた個数の(図4の例では4個)の生成元情報パケットR1[0],R1[3],R1[5],R1[7]を選択し、ビット毎の排他的論理和(図においては、EX−ORと表記する)をとる。その結果をパリティパケットP1[0]とする。また、パリティパケットP1[0]生成に用いた全ての生成元情報パケットの識別情報の集合{0,3,5,7}をP1[0]のコーディングベクタとしてパリティパケットP1[0]に付随させる。

より一般的に端末2aのN番目(最初のパリティパケットを0番目とする)に生成したパリティパケットをP1[N]と表記し、P1[N]のコーディングベクタをV1[N]と表記する。コーディングベクタV1[N]は単数もしくは複数の要素を持ち得るベクトル値となる。 V1[N]の各要素は生成元パリティパケットの識別情報であり、V1[N] = {v1[N,0], v1[N,1], ... v1[N,d1[N]-1] }と各要素を表記する。ここでd1[N]はN番目のパリティパケットP1[N]の生成に用いた生成元情報パケット数である。端末2aにおいて消失していない情報パケット(基地局1から正常に受信、もしくは既に回復済みの情報パケット)の集合をS1とし、S1={R1[x] | R1[x]は消失していない }と表記できる。

まとめると、端末2aのN番目のパリティパケットP1[N]に関して下記のように一般的に表記できる。 S1={R1[x] | R1[x]は消失していない } V1[N] = {v1[N,0], v1[N,1], ... , v1[N,d1[N]-1] } P1[N] = R1[v1[N,0]] + R1[v1[N,1]] + ... + R1[v1[N,d1[N]-1]] ここでP1[N]の式内+記号は、パケット内の各ビット毎の排他的論理和の演算を意味する。 図4の端末2aの例は下記のように表記できる。 S1={R1[0],R1[1],R1[3],R1[4],R1[5],R1[6],R1[7]} V1[0] = {v1[0,0], v1[0,1], v1[0,2], v1[0,3] } = {0, 3, 5, 7} P1[0] = R1[0] + R1[3] + R1[5] + R1[7] d1[0] = 4

(ii)端末2bでも同様にパリティパケットP2[0]を生成し、パリティパケットP2[0]生成に用いた生成元パケットの識別番号の集合{0,2,4,7}をP2[0]のコーディングベクタとしてP2[0]に付随させる。 より一般的に端末2bのN番目(最初のパリティパケットを0番目とする)に生成したパリティパケットをP2[N]と表記し、P2[N]のコーディングベクタをV2[N]と表記する。端末2aの場合と同様、コーディングベクタV2[N]は単数もしくは複数の要素を持つベクトル値となる。V2[N]の各要素は生成元パリティパケットの識別情報であり、V2[N] = {v2[N,0], v2[N,1], ... v2[N,d2[N]-1] }と表記する。ここでd2[N]はN番目のパリティパケットの生成時に選択した生成元情報パケット数である。端末2bにおいて消失していない情報パケット(基地局1から正常に受信、もしくは既に回復済みの情報パケット)の集合をS2とし、S2={R2[x] | R2[x]は消失していない }と表記できる。

まとめると、端末2bのN番目のパリティパケットP2[N]に関して下記のように一般的に表記できる。 S2={R2[x] | R2[x]は消失していない } V2[N] = {v2[N,0], v2[N,1], ... , v2[N,d2[N]-1]} P2[N] = R2[v2[N,0]] + R2[v2[N,1]] + ... + R2[v2[N,d2[N]-1]] ここでP2[N]の式内+記号はパケット内の各ビット毎の排他的論理和の演算を意味する。 図4の端末2bの例は下記のように表記できる。 S2={R2[0],R2[1],R2[2],R2[3],R2[4],R2[6],R2[7]} P2[0] = R2[0] + R2[2] + R2[4] + R2[7] V2[0] = {v2[0,0], v2[0,1], v2[0,2], v2[0,3] } = {0, 2, 4, 7} d2[0] = 4

パリティパケットおよびコーディングベクタの生成方法について、より一般的に述べる。 ある端末2が受信した識別情報xの情報パケットをR[x]と表記し、該端末2において消失していない情報パケットの集合をS = {R[x] | R[x]は消失していない}と表記する。該端末2にて N番目(最初に生成されるパリティパケットを0番目とする)に生成したパリティパケットをP[N]と表記し、P[N]に対応するコーディングベクタをV[N]と表記し、V[N]の要素数をd[N]と表記し、V[N]の各要素をV[N]={v[N,0],v[N,1], ... , V[N,d[N]-1]と表記した場合、以下のようにパリティパケットP[N]とコーディングベクタV[N]が生成される。

(i)d[N]の決定 d[N]は予め決められた正の整数であり、Sの要素数以下とする。 たとえば4や、8といった数である。仮にこれらの値がSの要素数を超える場合はSの要素数をd[N]とする。また、d[N]の値に応じて、生成されたパリティパケットによる回復確率が異なるため、基地局1から伝送された情報パケットを受信する際のパケットロス率等に応じて、d[N]値を動的に決めることも可能である。

(ii)V[N]の生成(生成元情報パケットの選択) 該端末2で消失していない情報パケットの集合Sから、前述d[N]個をランダムに重複無く選択する。選択されたd[N]個のパケットの識別情報をV[N]の各要素の値とし、それぞれv[N,0],v[N,1], ..., v[N,d[N]-1]とする。 (iii)P[N]の生成 (パリティパケットの生成) V[N]の各要素の値を識別情報とするd[N]個の情報パケットについて、ビット毎の排他的論理和を生成し、その結果をP[N]とする。 P[N] = Σ{R[x] | xがV[N]に含まれる } = R[v[N,0]] + R[v[N,1]] + ,,, + R[v[N,d[N]-1]] 上記式の加算記号+は、パケットの各ビット毎の排他的論理和を演算する。Σは各要素(パケット)のビット毎の排他的論理和を演算する。

図5は、生成したパリティパケットのマルチキャスト伝送と、消失パケットの回復について説明する図で、以下のような動作となる。 (3)パリティパケットのマルチキャスト送信 (i)端末2aは、パリティパケットP1[0]およびコーディングベクタV1[0]をローカルネットワーク3へマルチキャスト送信する。 (ii)端末2bも同様にパリティパケットP2[0]およびコーディングベクタV2[0]をローカルネットワーク3へマルチキャスト送信する。ローカルネットワーク3へマルチキャスト送信する際、パリティパケットとコーディングベクタを連結し、単一のパケットとしてローカルネットワーク3上で伝送する。

(4)パリティパケットの受信と保存 (i)端末2bは、ローカルネットワーク3上で送られたパリティパケットP1[0]と付随するコーディングベクタV1[0]を受信し、それらをパリティパケット記憶部16に保存する。 (ii)端末2aは、ローカルネットワーク3上で送られたパリティパケットP2[0]と付随するコーディングベクタV2[0]を受信し、それらをパリティパケット記憶部16に保存する。

(5)情報パケットの回復処理 (i)端末2aでは、パリティ共有誤り制御部17において、パリティパケットP2[0]と付随するコーディングベクタ、V2[0]={0,2,4,7}から、消失している情報パケットR1[2]を下記のように回復することができる。なお、+の記号はパケットの各ビット毎に排他的論理和を取る演算を示す。 コーディングベクタV2[0]={0,2,4,7} から、 P2[0] = R2[0]+R2[2]+R2[4]+R2[7]が解る。端末2aと端末2bは基地局から同一の情報パケットを受信しているので、それぞれが受信した同一の識別情報の情報パケットは同一の値を持つ。つまり同じ識別情報xに対してR1[x] = R2[x]となるので、R2をR1で置き換えると、 P2[0] = R1[0]+R1[2]+R1[4]+R1[7]となる。

R1[0],R1[4],R1[7], P2[0]は端末2aでは消失していないデータなので、R1[2]について解けば、消失している情報パケットR1[2]を回復できる。 R1[2] = R1[0]+R1[4]+R1[7]+P2[0]

(ii)端末2bも同様に、パリティパケットP1[0]と付随するコーディングベクタV1[0]={0,3,5,7}より、下記の計算によりR2[5]を回復できる。 R2[5] = R2[0]+R2[3]+R2[7]+P1[0]

情報パケットの回復処理についてより一般的に述べる。 情報パケットの回復処理は、端末2各々において個別に実行する処理であり、パリティパケットの受信と保存が行われる毎に実行される。仮にある端末2がN個のパリティパケットとコーディングベクタを受信した状態において、情報パケットの回復処理を下記に述べる。 (i)該端末2のパリティパケット記憶16に保存されているN個のパリティパケットと対応するコーディングベクタ各々について、下記に示す「パリティチェック処理」を実行する。 (ii)(i)の処理を終了後、(i)を再度実行するかどうか反復判定を行う。 (ii-1)(i)の結果、一つ以上の情報パケットが回復された場合、再度(i)を実行する。 (ii-2)(i)の結果回復された情報パケットが無い場合は回復処理を終了する。

「パリティチェック処理] パリティチェック処理を行うパリティパケットをP[x]表記とし、対応するコーディングベクタをV[x]と表記し、V[x]の要素数をd[x]と表記し、V[x]の要素をV[x] = { v[x,0], v[x,1], ... , v[x,d[x]-1]と表記し、識別情報yの情報パケットをR[y] と表記し、該端末2において消失していない情報パケット(基地局1から正常に受信、もしくは既に回復済みの情報パケット)の集合をS={R[x] | R[x]は消失していない }と表記する。P[x]の生成元情報パケット、つまりV[x]の各要素の値を識別情報とする情報パケットはd[x]個であり、それぞれR[v[x,0]], R[v[x,1]], ... , R[v[x,d[x]-1]]と表記できる。

これらのd[x]個の情報パケットの内、該端末2において消失パケットとなっている個数が一つだけであるかどうかを判定する。つまり上記、d[x]個の情報パケット、{ R[v[x,0]], R[v[x,1]], ... , R[v[x,d[x]-1]] }の内、集合Sに含まれていない個数が1つのみであるかどうかを判定する。 もし、これらd[x]個の情報パケットの内、一つだけ消失している場合はその情報パケットを回復させる。その一つだけ消失している情報パケットの識別情報をzとすると下記のようにR[z]を回復させる。

R[z]の回復 R[z] = P[x] + Σ{R[y]| yはV[x]の要素に含まれていて、かつ、yがzに等しくない } ここで、+はパケットのビット毎の排他的論理和を演算し、Σは要素とするパケットのビット毎の排他的論理和を演算する。 上記のR[z]の回復式は、V[x]に含まれる識別情報をもつ情報パケットの集合{ R[v[x,0]],R1[v[x,1]], ... , R1[v[x,d[x]-1]] }の内、識別情報がzではない情報パケット全てと、パリティパケットP[x]について、ビット毎の排他的論理和をとることにより消失している情報パケットR[x]を回復させることを示している。 また、集合Sの定義よりR[z]は回復処理後に集合Sに含まれることになる。

上述した(2)(3)(4)(5)の処理を繰り返して、複数のパリティパケットを共有することで、消失パケットを回復できる可能性が高まり、受信品質を改善できる。

上述説明は端末2a、端末2bの2台の端末における動作説明であるが、端末2が3台以上である場合においても、各端末2は同様の動作を行う。ローカルネットワーク3上に端末2が3台以上存在する場合、パリティパケットはマルチキャスト伝送により、端末2a、端末2bのみならず、ローカルネットワーク3に接続されている全ての端末2に対して同時に伝送され、各受信端末2において同時に受信され、回復処理が行われることになる。

上述した本開示の一実施の形態によれば、マルチキャスト伝送により、複数の端末が同時にパリティパケットを共有し、消失パケットの回復処理が可能なため、ローカルネットワークへの負荷が少なくて済む。効率の良い受信データの共有・消失パケットの回復が可能となる。

(2)で述べたように、パリティパケットの生成元の情報パケットはランダムに選択され、他の端末2においてどの情報パケットが消失しているかという情報は必要としない。従来技術のように端末2の個々の消失パケットを個別に伝送する必要が無いため、ローカルネットワーク3の容量に対して端末2の台数が制限されない。

また、繰り返す際に、処理(2)においてより効率的なパリティパケットを生成するため、生成元パケットをランダムに選択する際に、すでに選択された回数に応じて、選択される確率を更新する。 例えば、情報パケットxが、生成元パケットとして選択された回数がnの場合の相対的な選択確率をP(x,n)としたとき、次のように更新する。 P(x,n) = P(x,n-1)*0.05(n>0の場合) P(x,0) = 1.0(n = 0の場合)

第一回目のパリティパケット生成時は、どの情報パケットも同じ確率で選択されるが、一度情報パケットxがパリティ生成に選択されると、次回パリティ生成時に情報パケットxが選択される相対的な確率は1/20となる。

図6は、情報パケットの選択確率を更新する効果を示す。線20aは、選択確率が常に一定の場合であり、線20bは、上述した式で、選択確率を更新した場合である。選択確率を更新した場合(線20b)は、少ないパリティパケット数でより多くのパケットを回復できている。

図6は、情報パケットの選択確率を更新する効果を示す。線20aは、選択確率が常に一定の場合であり、線20bは、上述した式で、選択確率を更新した場合である。選択確率を更新した場合(線20b)は、少ないパリティパケット数でより多くのパケットを回復できている。

前記説明した端末2の機能の内、下記に示すように一部の機能を省略した端末2を用いて実施することも可能である。 (i)パリティ生成およびパリティ送信のみを行う端末2 (ii)パリティ受信および情報パケットの回復のみを行う端末2 上記(i)は段落〔0019〕に記載した機能の内、(1)(2)(3)の機能のみを持つ端末である。 上記(ii)は段落〔0019〕に記載した機能の内、(1)(4)(5)の機能のみを持つ端末である。 上記(i)の機能をもつ端末2の例として、八木アンテナ等の屋外アンテナを備えた据え置き型の放送受信装置が考えられる。このような放送受信装置は放送受信性能が高く、放送受信時に情報パケットが消失する可能性が低いため、消失パケットの回復を行う必要がない。したがって上記(i)のようにパリティ生成・送信のみを行う端末2として機能させることが考えられる。 また、上記(ii)の機能を持つ端末2の例として、放送受信機能をもつスマートフォン等のポータブル機器が考えられる。このような端末が放送受信条件の悪い屋内等で使用される場合、放送受信時に情報パケットを消失する可能性が高いため、上記(ii)のようにパリティの受信・回復機能のみを行う端末2として機能させることが考えられる。

パリティパケットの生成については、本実施例の方法以外にも、一般的な誤り訂正符号化を用いて生成することが可能である。例えばリードソロモン符号やBCH符号、LDPC符号等の誤り訂正符号を用いてパリティパケットを生成することができる。この場合、回復処理はパリティパケットの符号化に対応した誤り訂正復号によって行う。

<3.第2の実施の形態> 本開示の第2の実施の形態について説明する。説明で使用する用語について概念を説明する。 タナーグラフ:LDPC等の誤り訂正符号の構成を示す際に一般的に用いられるグラフである。バリアブルノードとチェックノードにより構成される。 バリアブルノード:本開示においては、情報パケットもしくはパリティパケットに対応する。 チェックノード:タナーグラフ上にて、バリアブルノード間のパリティチェック関係を示す。パリティチェック関係とは、チェックノードに接続されているバリアブルノード間の関係のことを意味し、それらバリアブルノードの排他的論理和がゼロとなる関係のことである。各チェックノードにおいてパリティチェック関係を評価することで消失パケットを回復させる。本開示では、チェックノードはパリティパケットに付随するコーディングベクタが受信される毎に追加されていく。 コーディングベクタ:パリティパケットに付随する情報である。本開示では、パリティパケット生成端末から他の端末に対して、パリティチェック関係を通知するために用いる。パリティパケットがどのパケットから生成されたか(=パリティチェック関係)を保持しており、単数もしくは複数の生成元パケットの識別情報を要素とする。本開示において、各端末は受信したコーディングベクタに従ってチェックノードの追加、バリアブルノードの接続を行う。

第2の実施の形態と、第1の実施の形態との違いについて説明する。 (i)第1の実施の形態では、パリティパケットを生成する際に、基地局から受信した情報パケットのみを使用していた。第2の実施の形態では、基地局から受信した情報パケットのみならず、既にローカルネットワーク上で共有されたパリティパケットも利用する。 (ii)第1の実施の形態では、コーディングベクタ単体をローカルネットワーク上で伝送する事は無かった。しかし、第2の実施の形態では、コーディングベクタ単体をローカルネットワーク上で伝送し、端末間で共有する機能を持つ。

上述(i)(ii)の機能と効果について述べる。 上述(i)(ii)はパリティパケットによる回復性能の向上に寄与する。本開示に於いてパリティパケットはローカルネットワーク上でマルチキャスト伝送され、各端末で共有される。 しかしローカルネットワーク上でマルチキャスト伝送する際にパケットロス、つまりパリティパケットの消失が発生する可能性がある。この場合、(i)のようにパリティパケット自体が、他のパリティパケットと相関を持つ(=パリティチェック関係にある)ことにより、パリティパケットがローカルネットワーク上で伝送される際に消失した場合でも、他の正しく受信した別のパリティパケットを用いて回復できる可能性がある。また、(ii)のようにコーディングベクタのみを伝送する事により、(i)の機能によって回復できたパリティパケット(ローカルネットワーク伝送で消失したが、他のパリティパケットによって回復されたパリティパケット)を用いて、情報パケットを回復させることが可能となる。これら(i)(ii)の機能についての詳細は、後述する段落〔0139〕〔0140〕で述べる。

図7は、第2の実施の形態における端末の構成を示す。放送受信部・復調部21は、アンテナ機能、RFチューナ機能、復調機能を備えている。放送受信部・復調部21からMPEG2−TSパケットが出力される。本実施の形態では、フェージング等により受信状態が悪くなった場合においても、放送送信装置で送信しているパケット数と等しい数のTSパケットがエラーパケット等として一定の間隔で出力されることを仮定する。

放送受信部・復調部21から出力されたTSパケットが情報パケット識別情報付与部22に供給される。情報パケット識別情報付与部22は、放送受信部・復調部21から出力されたMPEG2−TSパケットに対し識別情報を付与する。

マルチキャスト伝送時に、パリパケットの生成元パケットすべての識別情報を付加する。識別情報の生成方法としては、下記に示すものが可能である。

(1)生成元情報パケットの識別情報を、MPEG2−TSのPCR値から生成する。 (2)生成元情報パケットの識別情報を、MPEG2−TSパケットヘッダのコンティニュイティカウンタから生成する。 (3)生成元情報パケットの識別情報を、MPEG2−TS内に多重されている複数のプログラムのPCR値と、複数のPIDのコンティニュイティカウンタを組み合わせて生成する。 (4)生成元パリティパケットの識別情報を、パリティパケット生成端末固有の情報と、その端末で既に生成されたパリティパケット数より生成する。 このパリティパケット生成端末固有の情報として、ローカルネットワークのIPアドレスもしくは、MACアドレスを用いる。 さらに、送信済みパリティパケットの生成元情報のみをローカルネットワーク上でマルチキャスト伝送する。

一般的にMPEG2−TS内には複数のプログラム(PID)が多重されているが、識別情報の付与はパリティ共有による誤り制御が必要なPIDに対して行う。 識別情報は、パリティパケットを共有する他の端末と共通の番号とする。 識別情報は、放送受信信号より、一意に決定できる値である。 一例として、識別情報は、同一のMPEG2−TS内に多重されている複数のPIDパケットのコンティニュイティカウンタ値、およびPCR値を用いて生成する。

デジタル放送では、MPEG2(ISO/IEC 13818-1)に規定されるTSに準拠した多重化を行い、MPEG2−TSを構成している。

図8は、MPEG2−TSの概略を示している。MPEG2−TSは、固定長(188バイト)のパケットを使用する。各パケットの先頭に4バイトのヘッダ領域が規定され、残りの184バイトに可変長の拡張ヘッダであるアダプテーションフィールドと、内容(映像、音声、または付加データ)を伝送するペイロードとが配置される。

ヘッダの中に、13ビットのPID(パケットID)が含まれている。PIDは、パケットの種類を識別するアドレスである。PIDは、動画や音声のストリーム毎に値が設定されており、同じストリームであれば同じPIDとなる。例えばNHK総合放送の動画PIDは256、音声PIDは272と決められている。

ヘッダの中の4ビットのコンティニュイティ・カウンタは、同一のPIDのパケットに対して付される連続番号で、16をモジュロとして1づつインクリメントする(0〜15の値を有する)。アダプテーションフィールドは、バイト単位で可変の長さを有する。ヘッダの拡張機能として同期機能のためのPCR(Program Clock Reference)を伝送する機能がある。PCRは常に送られるわけではなく、通常100ms周期で、アダプテーションフィールド内の値として伝送される。カウンタ値の周期は一日で一周するカウンタであり、値の解像度は90kHzである。

一つのMPEG2−TSには、複数の動画や音声のストリームが異なるPIDにて多重化されている。図9は、動画と共に音声(動画より情報レートが低い)が多重化されて伝送されている例である。図9の各四のブロックが一つのTSパケットを示し、斜線を付したTSパケットが音声パケットである。動画パケットは、(PID:101)とされ、音声パケットは、(PID=102)とされている。コンティニュイティ・カウンタの値は、PID毎に0〜15の値で巡回している。PCRで示した値は、PCRベース値を示している。

生成元パケットの識別情報は、多重化されている複数のプッシュプルのPCR値と、複数のPIDのコンティニュイティ・カウンタを組み合わせて生成する。例えば動画パケット(PID:101)について、3つの数からなる識別情報(A,B,C)を生成し、各パケットの識別情報とする。

PCR値、コンティニュイティ・カウンタ値を組みあわせて、3つの数からなる識別情報(A,B,C)を生成し、各TSパケットの識別情報とする。 A=([最新のPCR値] / [PCR周期]) mod x B=[PID 102の最新のコンティニュイティ・カウンタ値] C=[PID 101の該当パケットのコンティニュイティ・カウンタ値] xは、識別情報の周期を決めるパラメータとなる。 識別情報の周期が情報パケットバッファサイズ(Nimax)より大きな周期となるようにxを設定する。

PCR周期 9000、Xを50とすると、最初の動画パケットの最新のPCR値が(1234567)であるので、このパケットについては、下記のように識別情報が決定される。 A: 37 B: 3 C: 15 識別情報 = (A,B,C) = (37,3,15) 次の動画パケットの識別情報は、同様にして、(A,B,C) = (37,3,0)となり、さらに次の動画パケットの識別情報は、(A,B,C) = (37,3,1)となる。以下、同様に、識別情報が付与される。以下、同様にして各動画パケットに対して識別情報が付与される。

なお、図9の例では、音声パケット(PID=102)の伝送周期は、動画パケット(PID=101)が16個以内である。PCRの伝送周期が音声パケット(PID=102)が16個以内である。

図8は、情報パケット(MPEG2−TSパケット)に対する識別情報の生成方法を説明する図である。図中、MPEG2−TS内に、動画(PID=101)および、音声(PID=102)が多重されている。動画(PID=101)のパケットに対して識別情報生成方法を説明した図である。

このように、複数PIDのコンティニュイティカウンタおよび、PCR値を組み合わせることで、周期の長い識別情報を得ることが可能である。 このように識別情報を生成することで、パリティパケットを共有する端末間で共通の識別情報を情報パケットに与えることができる。

この例では識別情報を2つのPIDのコンティニュイティカウンタ値と1つのPCR値を組み合わせて生成しているが、より多くのPIDのコンティニュイティカウンタ値や、PCR値を組み合わせることも可能である。また、この例では、3つの数の組み合わせで表現しているが、一つの数として表現することも可能である。

たとえばAおよびBの値の範囲は0〜15の整数であるから、下記のように一つの数としても表現できる。 識別情報 = A+B*16^1+C*16^2 この式からも判るように、識別情報の値の大小を比較することで情報パケットの順序を知ることが可能である。

上述した識別情報が付与された情報パケットが情報パケット入力部23に出力される。情報パケット入力部23は、識別情報が付与されたTSパケットを、情報パケット記憶部24へ格納する。

情報パケット記憶部24内から情報パケットが格納されていない空き領域を検索する。情報パケット記憶部24の空き領域をInfoBuf[X]とすると、下記のように格納する。 InfoBuf[X].data: TSパケットのデータ188バイトを格納する。 InfoBuf[X].info_id: 識別情報を格納する。 InfoBuf[X].loss: 消失もしくは誤りを示す情報であり、正常に受信できた情報パケットに対しては0を格納する。TSパケットヘッダのエラーフラグが立っている場合はloss = 1とする。 InfoBuf[X].sel_prob: パリティパケット生成時に選択される確率[相対的な確率]を格納する領域である。新たな情報パケットを格納する場合は1.0とする。

図10は、情報パケット記憶部24の構成を示す。InfoBuf[0]〜InfoBuf[Nimax-1]は、情報パケット(MPEG2−TSパケット)と情報パケット識別情報を格納する記憶領域である。最大、Nimaxパケットを記憶する。

情報パケット記憶部24の各要素について説明する。 loss:エラーもしくは消失したパケットであることを示すフラグである。 info_id:情報パケット識別情報を格納する領域である。 sel_prob:パリティパケット生成時に選択される確率(相対的な確率)を格納する領域である。この値は情報パケット間で相対的な値である。初期値は0である。 data:MPEG2−TSパケットデータ(188バイト)を格納する領域である。

相対的な選択率sel_probについて説明する。sel_prob値が相対的に高い情報パケットは、それだけ高い確率でパリティパケットの生成元パケットに選ばれ、逆にsel_prob値が小さい情報パケットはパリティパケットの生成元パケットに選ばれる確率が小さくなる。選択された回数に応じてこの値を小さくすることで、同じ情報パケットが重複して選択される可能性を低くし、効率の良いパリティパケットを生成することが可能である。sel_prob値はエンコード処理部32により更新される。

図11は、パリティパケット記憶部26の構成を示す。以降、Npmaxはパリティパケット記憶部で保存可能なパリティパケット数とする。ParityBuf[0]〜ParityBuf[Npmax-1]は、パリティパケットを格納する記憶領域である。

パリティパケット記憶部26の各要素について説明する。 loss:パリティパケットがエラーもしくは消失していることを示すフラグである。 term_id:パリティを共有する端末間でユニークな送信端末識別情報である。 parity_id:パリティパケット識別情報(パリティを生成した端末内でユニーク) sel_prob:エンコード処理部で、パリティパケットの生成元として選択される確率を格納する。相対的な選択率は各パケット間で相対的な値である。

図12は、チェックノード記憶部27の構成を示す。チェックノードは、情報パケットとパリティパケットのパリティチェック関係を保存する領域である。 チェックノード記憶部の各要素について説明する。 info_degree:チェックノードに接続されている情報パケットの数を格納する。 pInfo[]:チェックノードに接続されている情報パケットのデータ格納領域(InfoBuf[0]〜InfoBuf[Nimax-1]のいずれか)の位置(記憶領域のアドレス)を示す。 parity_degree:チェックノードに接続されているパリティパケットの数を格納する。 pParity[]:チェックノードに接続されているパリティパケットの格納領域(ParityBuf[0]〜ParityBuf[Npmax-1]のいずれか)の位置(記憶領域のアドレス)を示す。

上述した情報パケット記憶部24、パリティパケット記憶部26、チェックノード記憶部27の関係について説明する。図13は、タナー(Tanner)グラフを示し、図14、図15および図16は、図13のタナーグラフの状態における、3つの記憶部の対応関係の具体例を説明した図である。

情報パケット記憶部24と、パリティパケット記憶部26は、タナーグラフで言うところのバリアブルノード(変数ノード、メッセージノード等の表現もある)に対応し、チェックノード記憶部27は、チェックノードに対応する。この例では、図14に示す7つの情報パケット{A,B,C,D,E,F,G}と、図16に示す2つのパリティパケット{(J,K),(L,M)}が、図15に示すチェックノード{H,I}を介して接続されている。

図13では、パリティパケット(J,K)は、4つの情報パケット{A,C,D,F}の排他的論理和により生成されたことを示している。つまり、4つの情報パケット{A,C,D,F}はパリティパケット(J,K)の生成元パケット(生成元情報パケット)である。 また、パリティパケット(L,M)は、5つの情報パケット{B,C,D,E,G}と1つのパリティパケット(J,K)の排他的論理和により生成されたことを示している。言い換えると、5つの情報パケット{B,C,D,E,G}はパリティパケット(L,M)の生成元情報パケットであり、1つのパリティパケット(J,K)が、パリティパケット(L,M)の生成元パリティパケットである。

チェックノードの機能について説明する。チェックノードは、情報パケットおよびパリティパケットへ接続されており、接続されているパケット間にパリティチェック関係(接続されているパケットすべてのビット毎の排他的論理和がゼロとなる関係)にあることを保持する。このパリティチェック関係を利用して、消失パケットの回復を行う。つまり、チェックノードに接続されている全パケットの内、一つだけ消失している場合は、その消失パケット以外のパケットのビット毎の排他的論理和をとることより、消失パケットを回復可能である。 たとえば図13の情報パケットGが消失しており、その他のパケットは消失していない場合、情報パケットGは、チェックノードIのパリティチェック関係により、情報パケットB,C,D,Eおよびパリティパケット(J,K)(L,M)のビット毎の排他的論理和によって回復できる。

本開示ではチェックノードの接続情報はパリティパケットに付随するコーディングベクタとして伝送される。後述するパリティパケット受信処理によって、パリティパケットを受信する毎に新たなチェックノードが追加され、同時に受信したコーディングベクタに従って、チェックノードと各パケットの接続が追加される。 また、段落〔0131〕から〔0143〕で説明するように、コーディングベクタのみが伝送される場合も、コーディングベクタ受信時に、チェックノードと各パケットの接続が追加される。

図17は、エンコード処理部32の処理の流れを示すフローチャートである。 ステップST1:エンコード処理が開始される。 ステップST2:degree_i決定処理がなされる。degree_iは、パリティパケット生成に用いる生成元情報パケットの数である。ランダムに1〜12の値をdegree_iとして決定する。 もしくは、ある定められた確率分布にてdegree_iを決定する。 もしくは、予め固定された数、たとえばdegree_i = 8等、とすることもできる。

ステップST3:degree_p決定処理がなされる。degree_pはパリティパケット生成に用いる生成元パリティパケットの数である。 ランダムに0〜4の値をdegree_pとする。 もしくは、予め固定された数、たとえばdegree_p = 1等、とすることもできる。

ステップST4:情報パケット選択処理がなされる。図18は、生成元情報パケットの選択範囲を示している。degree_i個の情報パケットを生成元情報パケットとして選択する。 情報パケット記憶部24に格納されている情報パケットから生成元情報パケットを一つ選択する。 情報パケットのsel_prob値をすべて加算し、total_probとする。 情報パケットすべてについて、個々の情報パケットInfoBuf[x]が選択される確率を(InfoBuf[x].sel_prob/total_prob)とする。 上記確率にて、ランダムに情報パケットを一つ選択する。 選択した情報パケットが欠落パケット(loss = 1)である場合は、再度、上記確率にてランダムに選択し直す。

degree_iが2以上の場合で、すでに生成元パケットとして選択されている情報パケットを再度選択した場合は、再度、上記確率にてランダムに選択し直す。 degree_i個選択されるまで、上記を繰り返す。 degree_i個選択された後、選択された情報パケットの選択確率sel_probの値を更新する。 選択された情報パケットをInfoBuf[x]とした場合、下記の計算により選択確率を更新する。 InfoBuf[x].sel_prob = InfoBuf[x].sel_prob*update_ratio update_ratioは、0.1等の値とし、情報パケットInfoBuf[x]がパリティパケットの生成元として選択される度に、選択確率が小さくなる。

ステップST5:パリティパケット選択処理がなされる。degree_p個のパリティパケットを生成元パリティパケットとして選択する。 パリティパケット記憶部26に格納されているすべてのパリティパケットのsel_prob値を加算し、total_probとする。 あるパリティパケットParityBuf[x]が選択される確率を(ParityBuf[x].sel_prob/total_prob)とする。 上記確率にて、ランダムに情報パケットを一つ選択する。 選択したパリティパケットが欠落パケット(loss = 1)である場合は、再度、上記確率にてランダムに選択し直す。

すでに生成元パケットとして選択されているパリティパケットを再度選択した場合は、再度、上記確率にてランダムに選択し直す。 degree_p個選択されるまで、上記を繰り返す。 degree_p個選択された後、選択された情報パケットの選択確率sel_probの値を更新する。 選択されたパリティパケットをParityBuf[x]とした場合、下記の計算により選択確率を更新する。 ParityBuf[x].sel_prob = ParityBuf[x].sel_prob*update_ratio update_ratioは、0.1等の値とし、パリティパケットParityBuf[x]が生成元として選択される度に、選択確率が小さくなる。

ステップST6:新規パリティパケット生成処理がなされる。 選択された情報パケットおよびパリティパケットに対して、ビット毎の排他的論理和をとることで、新規パリティパケットを生成し、新規パリティパケットをパリティパケット記憶部26へ追加する。 また、追加した新規パリティパケットに対応するチェックノードを、チェックノード記憶部27へ追加する。 新規パリティパケットを追加する格納領域をParityBuf[x]、新規チェックノードを追加する格納領域をCheckNode[y]とし、生成元情報パケットをInfoBuf[a],InfoBuf[b],InfoBuf[c]、生成元パリティパケットをParityBuf[d]とすると、ParityBuf[x]とCheckNode[y]は以下のようにデータが格納される。

ParityBuf[x].loss = 0 ParityBuf[x].term_id = 自端末の識別情報 ParityBuf[x].parity_id = (自端末のパリティパケット生成数+1) ParityBuf[x].sel_prob = 1.0 ParityBuf[x].data = InfoBuf[a].data^InfoBuf[b].data^InfoBuf[c].data ParityBuf[d].data 各生成元パケットをビット毎に排他的論理和をとり、パリティパケットのデータとする。

CheckNode[y].info_degree = 3 CheckNode[y].pInfo[0] = &InfoBuf[a] CheckNode[y].pInfo[1] = &InfoBuf[b] CheckNode[y].pInfo[2] = &InfoBuf[c] CheckNode[y].parity_degree = 1 CheckNode[y].pParity[0] = &ParityBuf[d]

ステップST7:パリティパケット伝送処理がなされる。 新規生成されたパリティパケットへパリティパケットヘッダを付加し、パリティパケット伝送フォーマットとしてRTP/UDP/IPプロトコル処理部30へ渡す処理である。 RTP(Real-time Transport Protocol)は、映像データ、音声データをインターネットを介してリアルタイムに伝送するプロトコルである。 UDP(User Datagram Protocol)は、信頼性を保証しないトランスポート層の通信プロトコルである。 IP(Internet Protocol)は、インターネット層のプロトコルである。

図19にパリティパケット伝送フォーマットを示す。 パリティパケットヘッダ部は、新規生成されたパリティパケットの識別情報と、生成元パケット情報(コーディングベクタ情報)が格納される領域である。

以下のようにパリティパケットヘッダ部およびコーディングベクタ情報へデータを設定する。 term_id_new :パリティ生成端末(自端末)の端末識別情報 parity_id_new : 新規生成されたパリティパケットのparity_id info_degree :CheckNode[y].info_degree info_id[0] :CheckNode[y].pInfo[0]->info_id info_id[1] :CheckNode[y].pInfo[1]->info_id .....(info_degree個つづく) parity_degree :CheckNode[y].parity_degree term_id[0] :CheckNode[y].pParity[0]->term_id parity_id[0] :CheckNode[y].Pparity[0]->parity_id term_id[1] :CheckNode[y].pParity[1]->term_id parity_id[1] :CheckNode[y].Pparity[1]->parity_id .....(parity_degree個つづく)

RTP/UDP/IPプロトコル処理部30の処理について説明する。 送信処理 エンコード処理部32から出力されるパリティパケット伝送フォーマットをローカルネットワークのMTU(Maximum Transmission Unit:ネットワークで1回で送信できる最大のデータサイズ)等に応じて複数結合し、各標準プロトコルに従ってパケット化処理を行い、予め決められたマルチキャストアドレスを宛先IPアドレスに設定し、ローカルネットワークへマルチキャスト送信する。

制御部28から出力されるコーディングベクタ情報を、ローカルネットワークのMTU等に応じて複数結合し、各標準プロトコルに従ってパケット化処理を行い、予め決められたマルチキャストアドレスを宛先IPアドレスに設定し、ローカルネットワークへマルチキャスト送信する。

受信処理 ローカルネットワークインターフェイス部29にてパリティパケット伝送フォーマットをペイロードとするIP/UDP/RTPパケットが受信された場合、ペイロードであるパリティパケット伝送フォーマットをパリティパケット入力部31へ渡す。もしIP/UDP/RTPパケットのペイロードとして複数のパリティパケット伝送フォーマットが含まれている場合は、個々のパリティパケットフォーマットへ分割してパリティパケット入力部31へ渡す。

ローカルネットワークインターフェイス部29にてコーディングベクタ情報をペイロードとするIP/UDP/RTPパケットが受信された場合は、制御部28へコーディングベクタ情報を渡す。もしIP/UDP/RTPパケットのペイロードとして複数のコーディングベクタ情報が含まれている場合は、個々のコーディングベクタ情報へ分割して制御部28へ渡す。

パリティパケット入力部31は、入力されたパリティパケット伝送フォーマットに従い、パリティパケット記憶部26と、チェックノード記憶部27への追加処理を行う。

図20のフローチャートにパリティパケット入力部31の処理の流れを示す。図20の処理は、パリティパケット伝送フォーマットがパリティパケット入力部31へ入力される度に実行される。

以下、パリティパケット入力部31の処理フローについて説明する。なお、用語について説明すると、パリティパケット入力部31に入力されるパリティ伝送フォーマット内に含まれているパリティパケットを、「受信パリティパケット」と表記し、すでにパリティパケット記憶部26に存在するパリティパケットを「既存パリティパケット」と表記する。

ステップST11:パケット入力部31の処理が開始される。 ステップST12:パリティパケット記憶部空き領域取得処理がなされる。 受信パリティパケットを格納する領域を、パリティパケット記憶部26の空き領域から取得する。以下、取得した受信パリティパケットの領域をParityBuf[x]と表記する。

ステップST13:チェックノード記憶部空き領域取得処理がなされる。 追加するチェックノードを格納する領域を、チェックノード記憶部27の空き領域から取得する。以下、取得した領域をCheckNode[y]と表記する。 ステップST14:受信パリティパケット追加処理がなされる。 パリティパケット伝送フォーマットの情報に従って、ParityBuf[x]へ下記のようにデータを格納する。 ParityBuf[x].loss = 0 ParityBuf[x].term_id=パリティヘッダのterm_id_new ParityBuf[x].parity_id = パリティヘッダのparity_id_new ParityBuf[x].sel_prob = 1.0 ParityBuf[x].data = パリティパケットのdata部分(188バイト)

ステップST15:パリティパケット接続処理がなされる。 コーディングベクタ情報に従って、チェックノードCheckNode[y]と既存パリティパケットの接続処理を行う。 ステップST16:情報パケット接続処理がなされる。 チェックノードの情報パケットへのポインタをセットし、チェックノードと情報パケットとの接続処理がなされる。

図21のフローチャートは、パリティパケット接続処理(ステップST15)を示す。以下、フローチャートに沿って処理を説明する。 ステップST21:接続処理が開始される。 ステップST22:degree_p設定処理がなされる。 次のように、パリティパケットの生成元パケット数を追加チェックノードのdegree_pに格納する。 CheckNode[y].degree_p = コーディングベクタ情報のdegree_p

ステップST23:図21において点線枠内で示すように、チェックノードとパリティパケット接続処理がなされる。 この処理はi = 0から、i = degree_p-1まで繰り返し処理する。以下、この処理について説明する。 ステップST24:生成元パリティパケット検索処理がなされる。 コーディングベクタ情報の、term_id[i],parity_id[i]と同一の端末識別情報、パリティパケット識別情報をもつパリティパケットを、パリティパケット記憶部26内で検索する。 ステップST25:生成元パリティパケットがパリティパケット記憶部26に存在しているかどうかが判定される。 以下、もし生成元パリティパケットがパリティパケット記憶部26に存在してれば、以下の説明ではそのパリティパケットを格納する領域をParityBuf[z]と表記する。

もし、生成元パリティパケットがパリティパケット記憶部26に存在していると、ステップST25で判定されれば、チェックノード接続処理ST26へ進む。もし、生成元パリティパケットが存在しないと、ステップST25で判定されれば、パリティパケット記憶部空き領域取得処理ST27へ進む。

ステップST27:パリティパケット記憶部26から空き領域取得処理がなされる。以下、取得したパリティパケット領域をParityBuf[z]と表記する。 ステップST28:パリティパケット追加処理がなされる。ParityBuf[z]へ下記のようにデータを格納する。

ParityBuf[z].loss = 1 ParityBuf[z].term_id = コーディングベクタ情報のterm_id[i] ParityBuf[z].parity_id = コーディングベクタ情報のparity_id[i] ParityBuf[z].sel_prob = 1.0 ParityBuf[z].dataへはデータを格納する必要はない。

ステップST26:チェックノード接続処理がなされる。 次のようにチェックノードのパリティパケットへのポインタをセットし、チェックノードとパリティパケットを接続する。 CheckNode[y].pParity[i] = &ParityBuf[z] ステップST29:パリティパケット接続処理が終了する。

図22のフローチャートは、情報パケット接続処理(ステップST16)を示す。コーディングベクタ情報に従って、チェックノードと情報パケットの接続加処理を行う。以下、フローチャートに沿って処理を説明する。 ステップST31:接続処理が開始される。 ステップST32:degree_p設定処理がなされる。 次のように、パリティパケットの生成元パケット数を追加チェックノードのdegree_iに格納する。 CheckNode[y].degree_i = コーディングベクタ情報のdegree_i

ステップST33:図22において点線枠内で示すように、チェックノードと情報パケットの接続処理がなされる。 この処理はi = 0から、i = degree_i-1まで繰り返し処理する。以下、この処理について説明する。 ステップST34:生成元パリティパケット検索処理がなされる。 コーディングベクタ情報の、info_id[i]と同一の識別情報をもつ情報パケットを、情報パケット記憶部24内で検索する。 ステップST35:生成元情報パケットが情報パケット記憶部24に存在しているかどうかが判定される。 以下、もし生成元情報パケットが情報パケット記憶部24に存在してれば、以下の説明ではその情報パケットをInfoBuf[z]と表記する。

もし、生成元情報パケットが情報パケット記憶部24に存在していると、ステップST35で判定されれば、チェックノード接続処理ST36へ進む。もし、生成元情報パケットが存在しないと、ステップST35で判定されれば、情報パケット記憶部空き領域取得処理ST37へ進む。

ステップST37:情報パケット記憶部24から空き領域取得処理がなされる。以下、取得した情報パケット領域をInfoBuf[z]と表記する。 ステップST38:情報パケット追加処理がなされる。InfoBuf[z]へ下記のようにデータを格納する。

InfoBuf[z]へ下記のようにデータを格納する。 InfoBuf[z].loss = 1 InfoBuf[z].info_id=コーディングベクタ情報のinfo_id[i] InfoBuf[z].sel_prob=1.0 InfoBuf[z].dataへはデータを格納する必要はない。

ステップST36:チェックノード接続処理がなされる。 次のようにチェックノードの情報パケットへのポインタをセットし、チェックノードと情報パケットを接続する。 CheckNode[y].pInfo[i]=&InfoBuf[z] ステップST39:パリティパケット接続処理が終了する。

図20のフローチャートに戻って説明する。 ステップST17:チェックノードキュー追加処理がなされる。 デコード処理部25のチェックノードキューへ、CheckNode[y]を追加する。 ステップST18:パリティパケット入力部の処理が終了する。

図23のフローチャートを参照してデコード処理部25の処理について説明する。 ステップST41:デコード処理が開始される。 ステップST42:チェックノードキューのアイテム数が0か否かが判定される。 チェックノードキューは、図24に示すように、処理の必要なチェックノードへのポインタを要素とする、FIFO(First-In First-Out)型のバッファである。

ステップST42において、チェックノードキューに登録されているチェックノード数が0と判定されると、デコード処理を終了する(ステップST43)。 ステップST42において、チェックノードキューに処理待ちのチェックノードがある場合は、チェックノード取得処理(ステップST44)へ進む。 ステップST44:チェックノード取得処理は、チェックノードキューから処理待ちのチェックノードを取り出す。以下の説明では、ここで取り出したチェックノードをCheckNode[x]と表記する。 ステップST45:取り出されたチェックノードに対する処理がなされる。

図25のフローチャートは、チェックノード処理を示す。チェックノード処理について説明する。 ステップST51:チェックノード処理が開始される。 ステップST52:消失パケット数カウントがなされる。ステップST52において、CheckNode[x]に接続されている情報パケットとパリティパケットすべてについて、消失しているパケットかどうかを確認し、消失パケット数をカウントする。消失しているかどうかは消失フラグ(loss値)により確認する。

ステップST53:消失パケット数が1かどうかが判定される。 ステップST54:消失パケット数が1の場合、パケット回復処理を行う。回復処理を行うパケットをInfoBuf[x]とすると下記のように回復処理を行う。チェックノード処理が終了する(回復パケットあり)。 InfoBuf[x].data ={CheckNode[x]に接続されている他のパケットのdata部分の排他的論理和} InfoBuf[x].loss=0 ステップST53において、消失パケット数が1でない場合、パケット回復処理を行わずにチェックノード処理が終了する(回復パケット無し)。

図23のフローチャートに戻って説明すると、上述したチェックノード処理(ステップST45)が終了すると、処理がステップST46に移る。 ステップST46:回復パケットの有無が判定される。回復パケットがない場合は、チェックノード取得処理(ステップST42)へ処理が戻る。

ステップST47:回復パケットがあると判定される場合は、チェックノードキュー追加処理を行う。 チェックノード追加処理では、回復パケットInfoBuf[x]に接続されているチェックノードをチェックノード記憶部27内で検索し、InfoBuf[x]に接続されているチェックノードをチェックノードキューへ追加する。 チェックノード追加処理後、チェックノード取得処理(ステップST42)へ処理が戻る。

情報パケット出力部33は、情報パケット記憶部24に格納されている情報パケットの中から、最も順序の古い情報パケットを選択し、data部分を後段のCAS(Conditional Access System)デスクランブル部34へ出力する。情報パケットの順序は識別情報から決定可能である。後段に出力した情報パケットの領域は空き領域とする。

CASデスクランブル部34は、コンディショナルアクセスのデスクランブル処理を行う。CASデスクランブル部34の出力がDemux,A/Vデコード部35に供給される。Demux,A/Vデコード部35は、情報パケット出力部33から出力されたMPEG2−TSをデマルチプレックス処理、デコード処理し、映像音声データを出力する。映像音声データは、表示部36に供給される。表示部36が映像データの表示、音声出力を行う。 本実施例では、CASデスクランブル部34で実施されるデスクランブル処理前の情報パケットを用いてパリティパケットの生成・共有を行う。スクランブルが施されている情報パケットを用いてパリティパケット生成・共有を行うため、著作権が保護された状態でローカルネットワークを介したデータ共有を実現することが可能である。

制御部28は、各機能の動作パラメータ・動作タイミングを制御し、各機能の状態をモニタする。各機能に対する制御・モニタについて以下に説明する。 エンコード処理部32に対する制御・モニタは、処理の実行タイミングを指示することである。

図26は、エンコード処理部32のエンコード処理タイミングの説明図である。 図26に示すように、パリティパケット生成周期Tgenにてエンコード処理を行い、5つのパリティパケットを生成した時点で、RTP/UDP/IPプロトコル処理部30が5つのパリティパケットを結合し、ローカルネットワークインターフェース部29を通じてローカルネットワークにマルチキャスト伝送している。

制御部28は、パリティパケット入力部31から得られる、情報パケットの入力タイミングを基準とし、パリティパケット生成周期にてエンコード処理部32の処理実行を指示する。

コーディングベクタ情報送信処理について説明する。 チェックノード記憶部27にある自端末で生成されたパリティパケットに対応するチェックノードの情報からコーディングベクタ情報を生成し、RTP/UDP/IPプロトコル処理部30へ出力する。この処理は、予め定めた周期で行う。 コーディングベクタ情報の生成に用いるチェックノードは、チェックノード記憶部27よりランダムに選択する。

図27は、コーディングベクタ情報を示す。チェックノード記憶部27から選択されたチェックノードをCheckNode[y]とすると、コーディングベクタの各要素を次のように決定する。

info_degree :CheckNode[y].info_degree info_id[0] :CheckNode[y].pInfo[0]->info_id info_id[1] :CheckNode[y].pInfo[1]->info_id .....[info_degree個つづく] parity_degree :CheckNode[y].parity_degree term_id[0] :CheckNode[y].pParity[0]->term_id parity_id[0] :CheckNode[y].Pparity[0]->parity_id term_id[1] :CheckNode[y].pParity[1]->term_id parity_id[1] :CheckNode[y].Pparity[1]->parity_id .....[parity_degree個つづく]

コーディングベクタ情報を送信することにより、自端末から送信したにも関わらず、ローカルネットワーク上でのパケットロス等の理由で他の端末では受信できなかったパリティパケットについても、他の端末において、その構成情報(生成元パケット情報)を取得してチェックノードを生成できるようになる。 コーディングベクタ情報の伝送は、ローカルネットワーク上のパケットロスに対して回復機能を果たすことができる。

コーディングベクタ情報受信処理について説明する。 RTP/UDP/IPプロトコル処理部30から得られたコーディングベクタ情報に従って、チェックノード記憶部27へ追加する。

図28のフローチャートは、コーディングベクタ受信時の処理を示す。以下、フローチャートの各処理について説明する。 ステップST61:コーディングベクタの入力処理を開始する。 ステップST62:チェックノード検索処理がなされる。 受信したコーディングベクタ情報と同一のチェックノード(チェックノードに接続されている全てのパケットの識別情報が、受信したコーディングベクタ情報と一致する物)をチェックノード記憶部27内で検索する。

ステップST63:同一のチェックノードが存在しているか否かが判定される。同一のチェックノードが存在する場合は処理を終了する(ステップST64)。 ステップST65:ステップST63において同一のチェックノードが存在しないと判定される場合は、チェックノード記憶部空き領域取得処理がなされる。 チェックノード記憶部空き領域取得処理(ステップST65)以降の、パリティパケット接続処理(ステップST66)、情報パケット接続処理(ステップST67)、チェックノードキュー追加処理(ステップST68)は、図20、図21および図22のフローチャートを参照して説明したパリティパケット入力部31の処理と同一である。

図29乃至図35のタナーグラフを参照して本開示の効果を説明する。 一例として、図29のタナーグラフで示すような符号を考える。本開示では、情報パケットとパリティパケットとの間にチェックノードを設けている。パリティパケットP[1],P[2],P[3],P[4]および情報パケット I[1],I[2],I[3],I[4]がチェックノード C[1],C[2],C[3],C[4]を介して接続されている図である。パリティパケットは、P[1],P[2],P[3],P[4]の順番に生成・伝送が行われる。また、エンコード処理部32ではパリティパケットと付随するコーディングベクタが、パリティパケット伝送フォーマットとして結合された後、ローカルネットワークにて伝送される。

パリティパケットP[x]の生成元情報パケットの識別番号の集合、をVi[x] = {vi[x,0], vi[x,1], ... , vi[x,di[x]-1] }と表記する。ここで di[x]はP[x]の生成元情報パケットの数である。パリティパケットP[x]の生成元パリティパケットの識別番号の集合、をVp[x] = {vp[x,0], vp[x,1], ... , vp[x,dp[1]-1] }と表記する。ここで dp[x]はP[x]の生成元パリティパケットの数である。 たとえば図29のP[2]は情報パケットI[3],I[4]と、パリティパケットP[1]から生成されることから、コーディングベクタVi[2]およびVp[2]は次のように表記できる。 di[2] = 2 Vi[2] = { vi[2,0], vi[2,1] } = {3, 4} dp[2] = 1 Vp[2] = { vp[2,0] } = {1}

最終的なタナーグラフが図29となることを前提とし、図30から図33は、ある端末が、他の端末からパリティパケットを順次受信している過程を示しており、情報パケットおよびパリティパケットに消失が無い場合の動作を説明する図である。図30は、P[1]を受信した状態を示している。P[1]は情報パケット1,2から生成される。したがってP[1]のコーディングベクタVi[1]は要素を持ちVi[1] = {1,2}である。P[1]の生成元パケットは情報パケットのみである(他のパリティパケットは生成元として使われていない)からVp[1]は要素を持たない。P[1]を受信すると、P[1]に付随するコーディングベクタVp[1],Vi[1]に基いてC[1]が接続され、C[1]はP[1]およびI[1],I[2]に接続される。図31は、パリティパケットP[2]を受信した状態を示す。P[2]はI[3],I[4]およびP[1]により生成されているので、コーディングベクタはVi[2]={3,4},Vp[2]={1}となる。したがって受信端末はVi[2],Vp[2]に従ってC[2]を接続し、I[3],I[4],P[1]およびP[2]に接続される。同様に、図32は、パリティパケットP[3]を受信した状態を示し、図33は、パリティパケットP[4]を受信した状態を示す。 このように各チェックノードは、パリティパケットを受信する毎に付随するコーディングベクタVi, Vpの情報に基いて生成元パケット間を接続していく。

上述の動作を前提とし、情報パケットI[1]とパリティパケットP[1]が消失した場合の動作を例とし、パリティパケットの生成に、情報パケットだけでなく既に生成・共有済みの他のパリティパケットも使用する効果、および、コーディングベクタのみを伝送する効果を説明する。 情報パケットI[1]とパリティパケットP[1]とが消失した場合は、図34に示す状態となる。パリティパケットP[1]とコーディングベクタVi[1],Vp[1]はエンコード処理部32において結合された後、ローカルネットワークへ送信されるため、パリティパケットP[1]がローカルネットワーク上の伝送消失した場合、付随するコーディングベクタVi[1],Vp[1]も消失することになる。したがって、P[1]が消失した場合、チェックノードC[1]の接続状態(=パリティパケットP[1]のコーディングベクタ)も不明となる。この状態からは、チェックノードC[2]の接続情報(パリティパケットP[2]のコーディングベクタVi[2],Vp[2]により接続された)により、I[3]、I[4]、P[2]の排他的論理和によってP[1]を回復することができる。これはP[2]の生成元パケットとしてP[1]が使用された効果(パリティパケッの生成に、情報パケットだけでなく既に生成・共有済みの他のパリティパケットも使用する効果)である。ただし、この状態では、C[1]の接続情報が無いため、I[1]を回復することができない。

しかしながら、図35に示すように、パリティパケットP[1]のコーディングベクタVi[1],Vp[1]が他の端末から再度ローカルネットワーク上でマルチキャスト伝送され、受信できた場合、チェックノードC[1]の接続状態が判り(破線で示した接続)情報パケットI[1]を回復することができる。つまり、P[1]がローカルネットワーク上の伝送にて消失した場合でも、P[1]を再度伝送することなく、そのコーディングベクタVi[1],Vp[1]さえ再度伝送すれば、情報パケットI[1]を回復できることが判る。

以上の説明をまとめると、パリティパケットがローカルネットワーク上で消失する可能性がある場合は、パリティパケットの生成に情報パケットだけでなく既に生成・共有済みの他のパリティパケットも使用することにより消失したパリティパケットを回復可能となり、さらに、過去に生成したコーディングベクタのみを再度伝送することにより消失している情報パケットの回復機能を果たすことができる。また、コーディングベクタ情報は伝送するデータ自体(ペイロード)を含まず、情報量が小さいため、伝送時のローカルネットワークの負荷が小さく、効率的な消失データの回復が可能となる。

上述した本開示の実施の形態は、下記の効果を奏するものである。 (1)空間ダイバーシティ効果が得られ、受信品質が高まる。 (2)通常のアンテナダイバーシティと比較し、自由に移動可能な端末間でダイバーシティ効果を得るため、フェージング相関が低くなり、高いダイバーシティ効果が期待できる。 (3)端末数に制限がなく、多くの端末の受信品質を同時に向上させることができる。 (4)パリティパケットを同時に複数の端末で共有することで、ローカルネットワークの負荷が小さくてすむ。 (5)ローカルネットワーク上のパケットロスに対する誤り制御としても働く。 (6)パリティパケット生成時に、生成元パケットを選択する確率を更新することで、効率的なパリティパケットを生成することができる。

なお、本開示は、以下のような構成も取ることができる。 (1) 基地局から送信された情報パケットを受信する機能と、 複数の端末間で情報を共有するためのローカルネットワークに接続する通信機能と、 パリティパケットを生成する機能と、 生成した前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークにマルチキャストする機能と を備える通信装置。 (2) 基地局から送信された情報パケットを受信する機能と、 他の端末がマルチキャストした前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークを通じて受信する機能と、 受信した前記パリティパケットと生成元パケットすべての識別情報とを記憶部に保存する機能と、 前記パリティパケットと生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させる機能と を備える通信装置。 (3) 基地局から送信された情報パケットを受信する機能と、 複数の端末間で情報を共有するためのローカルネットワークに接続する通信機能と、 パリティパケットを生成する機能と、 生成した前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークにマルチキャストする機能と、 他の端末がマルチキャストした前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークを通じて受信する機能と、 受信した前記パリティパケットと生成元パケットすべての識別情報とを記憶部に保存する機能と、 前記パリティパケットと生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させる機能と を備える通信装置。 (4) 正しく受信、もしくは回復できた情報パケットの中から複数の情報パケットを選択し、選択された前記情報パケット対して誤り訂正符号化を行い、単数もしくは複数の前記パリティパケットを生成する(1)、(2)および(3)の何れかに記載の通信装置。 (5) 正しく受信、もしくは回復できた情報パケットの中から複数もしくは単数の情報パケットを選択し、選択された前記情報パケットのビット毎の排他的論理和により、前記パリティパケットを生成する(1)、(2)および(3)の何れかに記載の通信装置。 (6) 前記パリティパケットの生成に用いる単数もしくは複数の生成元パケットをランダムに選択する(5)に記載の通信装置。 (7) 複数または単数の情報パケットおよび既に生成されたパリティパケットを選択し、ビット毎の排他的論理和により前記パリティパケットを生成する(1)、(2)および(3)の何れかに記載の通信装置。 (8) 前記生成元パケットをランダムに選択する際に、すでに選択された回数に応じて、選択される確率を変える(7)に記載の通信装置。 (9) 送信済みパリティパケットの生成元情報のみをローカルネットワーク上でマルチキャスト伝送する(1)または(2)に記載の通信装置。 (10) 生成元情報パケットの識別情報として、情報パケット内のシーケンス番号もしくは、タイムスタンプ値を用いる(1)、(2)および(3)の何れかに記載の通信装置。 (11) 生成元情報パケットの識別情報を、MPEG2−TSのPCR値から生成する(1)、(2)および(3)の何れかに記載の通信装置。 (12) 生成元情報パケットの識別情報を、MPEG2−TSパケットヘッダのコンティニュイティカウンタから生成する(1)、(2)および(3)の何れかに記載の通信装置。 (13) 生成元情報パケットの識別情報を、MPEG2−TS内に多重されている複数のプログラムのPCR値と、複数のPIDのコンティニュイティカウンタを組み合わせて生成する(1)、(2)および(3)の何れかに記載の通信装置。 (14) 生成元パリティパケットの識別情報を、パリティパケット生成装置固有の情報と、その端末で既に生成されたパリティパケット数より生成する(6)に記載の通信装置。 (15) 受信パリティパケットの生成元パケットと同一の識別情報を持つパケットを記憶部から検索し、生成元パケットの内、欠落パケットが一つだけであれば、受信パリティパケットと他の生成元パケットの排他的論理和により、消失パケットを回復する(1)または(3)に記載の通信装置。 (16) 基地局からマルチキャストまたはブロードキャストされた情報パケットを受信する複数の端末と、前記複数の端末同士で情報を共有するためのネットワークとを有し、 前記複数の端末が複数回にわたりパリティパケットをお互いに送受信して共有することにより、各端末で正常に受信できなかった情報パケットを回復するようにした通信システム。 (17) 前記複数の端末の内、1つもしくは複数の端末はパリティパケットの生成、送信のみを行う第1の通信装置であり、それ以外の複数の端末は第2の通信装置であり、 前記第1の通信装置は、 基地局から送信された情報パケットを受信する機能と、 複数の端末間で情報を共有するためのローカルネットワークに接続する通信機能と、 前記パリティパケットを生成する機能と、 生成した前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークにマルチキャストする機能とを備え、 前記第2の通信装置は、 前記基地局から送信された情報パケットを受信する機能と、 前記第1の通信装置がマルチキャストした前記パリティパケットと前記生成元パケットすべての識別情報とを前記ローカルネットワークを通じて受信する機能と、 受信した前記パリティパケットと前記生成元パケットすべての識別情報とを記憶部に保存する機能と、 前記パリティパケットと前記生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させる機能とを備える通信装置である(16)に記載の通信システム。 (18) 前記複数の端末のそれぞれは、 基地局から送信された情報パケットを受信する機能と、 複数の受信端末で情報を共有するためのローカルネットワークに接続する通信機能と、 パリティパケットを生成する機能と、 生成した前記パリティパケットと前記生成元パケットすべての識別情報とを前記ローカルネットワークにマルチキャストする機能と、 他の端末がマルチキャストした前記パリティパケットと前記生成元パケットすべての識別情報とを前記ローカルネットワークを通じて受信する機能と、 受信した前記パリティパケットと前記生成元パケットすべての識別情報とを記憶部に保存する機能と、 前記パリティパケットと前記生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させる機能と を有する(16)に記載の通信システム。 (19) 複数の端末が基地局からマルチキャストまたはブロードキャストされた情報パケットを受信し、ネットワークを介して前記複数の端末同士で情報を共有し、 前記複数の端末が複数回にわたりパリティパケットをお互いに送受信して共有することにより、各端末で正常に受信できなかった情報パケットを回復するようにした通信方法。 (20) 基地局から送信された情報パケットを受信するステップと、 複数の端末間で情報を共有するためのローカルネットワークに接続する通信ステップと、 パリティパケットを生成するステップと、 生成した前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークにマルチキャストするステップと、 他の端末がマルチキャストした前記パリティパケットと生成元パケットすべての識別情報とを前記ローカルネットワークを通じて受信するステップと、 受信した前記パリティパケットと生成元パケットすべての識別情報とを記憶部に保存するステップと、 前記パリティパケットと生成元パケットすべての識別情報とを使用して欠落しているパケットを回復させるステップと を有する通信方法をコンピュータに対して実行させるプログラム。

<4.変形例> 以上、本開示の実施の形態について具体的に説明したが、上述の各実施の形態に限定されるものではなく、本開示の技術的思想に基づく各種の変形が可能である。例えは本開示は、複数のTSパケットを集めたものを一つのパケットとして扱うようにしても良い。さらに、TSパケット以外のパケットを処理の単位としても良い。

また、上述の実施の形態の構成、方法、工程、形状、材料および数値などは、本開示の主旨を逸脱しない限り、互いに組み合わせることが可能である。

1・・・基地局 2,2a〜2d・・・端末 3・・・ローカルネットワーク 13・・・情報パケット記憶部 14・・・A/Vデコード部 16・・・パリティパケット記憶部 17・・・パリティ共有誤り制御部 22・・・情報パケット識別情報付与部 24・・・情報パケット記憶部 25・・・デコード処理部 26・・・パリティパケット記憶部 27・・・チェックノード記憶部 28・・・制御部 31・・・パリティパケット入力部 32・・・エンコード処理部 33・・・情報パケット出力部

QQ群二维码
意见反馈