(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-27
(45)【発行日】2025-04-04
(54)【発明の名称】コンテンツ配信システム、コンテンツ配信方法、及びコンテンツ配信プログラム
(51)【国際特許分類】
H04L 1/1825 20230101AFI20250328BHJP
H04L 1/00 20060101ALI20250328BHJP
H04L 1/1607 20230101ALI20250328BHJP
H03M 13/37 20060101ALI20250328BHJP
H04W 28/04 20090101ALI20250328BHJP
H04W 84/18 20090101ALI20250328BHJP
【FI】
H04L1/1825
H04L1/00 B
H04L1/1607
H03M13/37
H04W28/04 110
H04W84/18
(21)【出願番号】P 2024569179
(86)(22)【出願日】2024-01-09
(86)【国際出願番号】 JP2024000112
(87)【国際公開番号】W WO2024224697
(87)【国際公開日】2024-10-31
【審査請求日】2024-11-21
(31)【優先権主張番号】PCT/JP2023/016067
(32)【優先日】2023-04-24
(33)【優先権主張国・地域又は機関】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】角 武憲
(72)【発明者】
【氏名】永井 幸政
【審査官】北村 智彦
(56)【参考文献】
【文献】特開2007-166469(JP,A)
【文献】特開2016-146620(JP,A)
【文献】特開2016-27698(JP,A)
【文献】特開2015-100109(JP,A)
【文献】米国特許出願公開第2020/0120459(US,A1)
【文献】中国特許出願公開第102833051(CN,A)
【文献】特開平4-362819(JP,A)
【文献】角 武憲,他,消失訂正符号を用いた高効率ファームウェア配信方式の検討,情報処理学会第84回全国大会講演論文集,日本,2022年02月17日,84巻,3号,pp.3.29-3.30
【文献】小野 真穂,他,光パケット交換ネットワークにおけるErasure-codingと確認応答を組み合わせたデータ転送方式の提案,電子情報通信学会技術研究報告[online],2022年09月02日,Vol.122, No.170,pp.55-59,Internet<URL:https://www.ieice.org/publications/search/summary.php?id=120385&tbl=ken&lang=jp>
【文献】久野 和英,他,サポート配信機能を有するメタコンテンツのマルチキャスト配信制御,電子情報通信学会技術研究報告,2003年12月12日,Vol.103, No.506,pp.13-16
(58)【調査した分野】(Int.Cl.,DB名)
H04L 1/00
H04L 1/08-1/24
H03M 13/37
H04W 28/04
H04W 84/18
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
各々がコンテンツデータを無線通信により配信する複数のコンテンツ配信装置を備えるコンテンツ配信システムであって、
前記複数のコンテンツ配信装置の各コンテンツ配信装置を対象配信装置としたとき、前記対象配信装置は、
コンテンツデータである対象コンテンツデータをK
1個の符号化ブロックに分割し、前記K
1個の符号化ブロックに対して消失訂正符号化を実行することによりM個の冗長データブロックを生成する符号化処理部と、
前記K
1個の符号化ブロックと前記M個の冗長データブロックとの中から選択されたK
2個のブロックを、前記対象配信装置の装置識別子である送信元識別子とともに無線信号で送信する送信部と、
前記対象配信装置以外の2つ以上のコンテンツ配信装置の各コンテンツ配信装置が送信した情報であって、送信元であるコンテンツ配信装置を示す送信元識別子と、宛先であるコンテンツ配信装置を示す宛先識別子と、前記送信元における各ブロックの受信成否と、前記送信元が受信した各ブロックの識別子との各々を示す情報である受信応答を受信する受信部と
を備え、
前記対象配信装置の送信部は、前記対象配信装置が受信した受信応答が示す宛先識別子が前記対象配信装置の装置識別子と同一である場合に、前記対象配信装置が受信した各受信応答が示す受信に成功したブロックの数のうち相対的に小さいブロックの数をR
minとしたとき、前記K
1個の符号化ブロックと前記M個の冗長データブロックとのうち未送信であるブロックの中から選択されたK
2-R
min個のブロックを無線信号で送信するコンテンツ配信システム。
【請求項2】
前記対象配信装置の受信部は、前記対象配信装置以外のコンテンツ配信装置からブロックを受信し、
前記対象配信装置は、さらに、
前記対象配信装置が受信したブロックを用いて前記コンテンツデータを復号コンテンツデータとして復号する復号処理部
を備え、
前記対象配信装置の符号化処理部は、前記対象コンテンツデータとして前記復号コンテンツデータを用いる請求項1に記載のコンテンツ配信システム。
【請求項3】
前記対象配信装置の受信部は、前記対象配信装置以外の各コンテンツ配信装置からブロックを受信し、
前記対象配信装置は、さらに、
前記対象配信装置が受信した各ブロックに対応する送信元識別子を示す送信元情報を保持する記憶部
を備え、
前記対象配信装置の送信部は、受信応答送信タイマが満了した後に、前記送信元情報に含まれている送信元識別子のうち、前記対象配信装置が各コンテンツ配信装置から受信したブロックの受信数R
nのうち相対的に多い受信数R
nに対応する送信元識別子を宛先識別子として示す受信応答を無線通信で送信する請求項1又は2に記載のコンテンツ配信システム。
【請求項4】
前記対象配信装置の受信部は、前記対象配信装置以外の各コンテンツ配信装置からブロックを受信し、
前記対象配信装置は、さらに、
前記対象配信装置が受信した各ブロックに対応する送信元識別子を示す送信元情報と、前記対象配信装置が受信した各受信応答が示す宛先識別子を、前記対象配信装置が受信した受信応答の送信元であるコンテンツ配信装置ごとに示す宛先情報とを保持する記憶部
を備え、
前記対象配信装置の送信部は、受信応答送信タイマが満了した後に、前記送信元情報に含まれている送信元識別子のうち、前記対象配信装置が各コンテンツ配信装置から受信したブロックの受信数R
nが閾値R
thよりも大きいコンテンツ配信装置に対応する送信元識別子の中から選択された装置識別子であって、前記宛先情報が示す宛先識別子のうち、相対的に多くのコンテンツ配信装置によって前記対象配信装置が受信した各受信応答の宛先識別子として設定された装置識別子である対象識別子を宛先識別子として示す受信応答を送信する請求項1又は2に記載のコンテンツ配信システム。
【請求項5】
前記記憶部は、前記対象配信装置が受信した各ブロックに対応する受信電力を示す受信電力情報を保持し、
前記対象識別子は、対応するブロックに対応する受信電力が閾値P
th以上である送信元識別子の中から選択された装置識別子である請求項4に記載のコンテンツ配信システム。
【請求項6】
前記対象配信装置は、さらに、
前記対象配信装置が対象受信応答として受信した受信応答が示すブロックの数が、前記対象配信装置が受信したブロックの数よりも少ない場合、かつ、前記対象受信応答が示す宛先識別子が、前記対象配信装置が受信したブロックに対応する送信元識別子のいずれかと一致する場合に、前記受信応答送信タイマを延長する受信応答部
を備える請求項
3に記載のコンテンツ配信システム。
【請求項7】
前記対象配信装置の送信部は、コンテンツデータである第2対象コンテンツデータに対応するブロックのうち最後に送信されるブロックを前記対象配信装置が受信するまで、又は前記第2対象コンテンツデータに対応するブロックであって、前記対象配信装置が既に受信したブロックである受信済ブロックが生成された時点とは異なる時点において生成されたブロックであって、前記第2対象コンテンツデータに対して消失訂正符号化を実行することにより生成されたブロックである新規ブロックを前記対象配信装置が受信するまでの間、前記第2対象コンテンツデータに対応する受信応答として、前記送信元における各ブロックの受信成否と、前記送信元が受信した各ブロックの識別子との代わりに、前記対象配信装置が受信したブロックの合計数を示す受信応答を送信する請求項1
又は2に記載のコンテンツ配信システム。
【請求項8】
前記K
2-R
min個のブロックは、前記K
1個の符号化ブロックと前記M個の冗長データブロックとのうち未送信であるブロックの中からランダムに選択されたK
2-R
min個のブロックである請求項1
又は2に記載のコンテンツ配信システム。
【請求項9】
各々がコンテンツデータを無線通信により配信する複数のコンテンツ配信装置を備えるコンテンツ配信システムにおいて実行されるコンテンツ配信方法であって、
前記複数のコンテンツ配信装置の各コンテンツ配信装置はコンピュータであり、
前記複数のコンテンツ配信装置の各コンテンツ配信装置を対象配信装置としたとき、前記対象配信装置が、
コンテンツデータである対象コンテンツデータをK
1個の符号化ブロックに分割し、前記K
1個の符号化ブロックに対して消失訂正符号化を実行することによりM個の冗長データブロックを生成し、
前記K
1個の符号化ブロックと前記M個の冗長データブロックとの中から選択されたK
2個のブロックを、前記対象配信装置の装置識別子である送信元識別子とともに無線信号で送信し、
前記対象配信装置以外の2つ以上のコンテンツ配信装置の各コンテンツ配信装置が送信した情報であって、送信元であるコンテンツ配信装置を示す送信元識別子と、宛先であるコンテンツ配信装置を示す宛先識別子と、前記送信元における各ブロックの受信成否と、前記送信元が受信した各ブロックの識別子との各々を示す情報である受信応答を受信し、
前記対象配信装置が受信した受信応答が示す宛先識別子が前記対象配信装置の装置識別子と同一である場合に、前記対象配信装置が受信した各受信応答が示す受信に成功したブロックの数のうち相対的に小さいブロックの数をR
minとしたとき、前記K
1個の符号化ブロックと前記M個の冗長データブロックとのうち未送信であるブロックの中から選択されたK
2-R
min個のブロックを無線信号で送信するコンテンツ配信方法。
【請求項10】
各々がコンテンツデータを無線通信により配信する複数のコンテンツ配信装置を備えるコンテンツ配信システムにおいて実行されるコンテンツ配信プログラムであって、
前記複数のコンテンツ配信装置の各コンテンツ配信装置はコンピュータであり、
前記複数のコンテンツ配信装置の各コンテンツ配信装置を対象配信装置としたとき、
コンテンツデータである対象コンテンツデータをK
1個の符号化ブロックに分割し、前記K
1個の符号化ブロックに対して消失訂正符号化を実行することによりM個の冗長データブロックを生成する符号化処理と、
前記K
1個の符号化ブロックと前記M個の冗長データブロックとの中から選択されたK
2個のブロックを、前記対象配信装置の装置識別子である送信元識別子とともに無線信号で送信する送信処理と、
前記対象配信装置以外の2つ以上のコンテンツ配信装置の各コンテンツ配信装置が送信した情報であって、送信元であるコンテンツ配信装置を示す送信元識別子と、宛先であるコンテンツ配信装置を示す宛先識別子と、前記送信元における各ブロックの受信成否と、前記送信元が受信した各ブロックの識別子との各々を示す情報である受信応答を受信する受信処理と
を前記対象配信装置に実行させるコンテンツ配信プログラムであって、
前記送信処理において、前記対象配信装置が受信した受信応答が示す宛先識別子が前記対象配信装置の装置識別子と同一である場合に、前記対象配信装置が受信した各受信応答が示す受信に成功したブロックの数のうち相対的に小さいブロックの数をR
minとしたとき、前記K
1個の符号化ブロックと前記M個の冗長データブロックとのうち未送信であるブロックの中から選択されたK
2-R
min個のブロックを無線信号で送信するコンテンツ配信プログラム。
【請求項11】
各々がコンテンツデータを無線通信により配信する複数のコンテンツ配信装置を備えるコンテンツ配信システムであって、
前記複数のコンテンツ配信装置の各コンテンツ配信装置を対象配信装置としたとき、前記対象配信装置は、
コンテンツデータである対象コンテンツデータをK
1個の符号化ブロックに分割する符号化処理部と、
前記K
1個の符号化ブロックを、前記対象配信装置の装置識別子である送信元識別子とともに無線信号で送信する送信部と、
前記対象配信装置以外の2つ以上のコンテンツ配信装置の各コンテンツ配信装置が送信した情報であって、送信元であるコンテンツ配信装置を示す送信元識別子と、宛先であるコンテンツ配信装置を示す宛先識別子と、前記送信元における各ブロックの受信成否と、前記送信元が受信した各ブロックの識別子との各々を示す情報である受信応答を受信する受信部と
を備え、
前記対象配信装置の符号化処理部は、前記対象配信装置が受信した各受信応答が示す宛先識別子が前記対象配信装置の装置識別子と同一である場合に、前記対象配信装置が受信した各受信応答が示す受信に失敗したブロックの中から選択された複数のブロックをFountain Codeにより符号化し、符号化した複数のブロックを示す追加送信データを作成し、
前記対象配信装置の送信部は、作成された追加送信データを無線信号で送信し、
前記対象配信装置の受信部は、他のコンテンツ配信装置から無線信号で追加送信データを受信し、
前記対象配信装置は、さらに、
前記対象配信装置が受信した各受信応答が示す宛先識別子が前記対象配信装置の装置識別子と同一である場合に、前記対象配信装置が受信した各受信応答が示す各ブロックの受信成否に基づいて、前記対象配信装置が受信した各受信応答に対応するコンテンツ配信装置のうち1つ以上のブロックの受信に失敗したコンテンツ配信装置のいずれにおいても作成された追加送信データを復号することができるように、前記複数のブロックとして、前記対象配信装置が受信した各受信応答が示す受信に失敗したブロックの中から複数のブロックを選択する追加送信判定部と、
前記他のコンテンツ配信装置から受信した追加送信データが示す符号化された複数のブロックをFountain Codeにより復号することによって、受信した追加送信データに対応する複数のブロックを復元する復号処理部と
を備えるコンテンツ配信システム。
【請求項12】
前記対象配信装置の受信部は、前記対象配信装置以外の各コンテンツ配信装置からブロックを受信し、
前記対象配信装置は、さらに、
前記対象配信装置が受信した各ブロックに対応する送信元識別子を示す送信元情報を保持する記憶部
を備え、
前記対象配信装置の送信部は、受信応答送信タイマが満了した後に、前記送信元情報に含まれている送信元識別子のうち、前記対象配信装置が各コンテンツ配信装置から受信したブロックの受信数R
nのうち相対的に多い受信数R
nに対応する送信元識別子を宛先識別子として示す受信応答を無線通信で送信する請求項11に記載のコンテンツ配信システム。
【請求項13】
前記対象配信装置の受信部は、前記対象配信装置以外の各コンテンツ配信装置からブロックを受信し、
前記対象配信装置は、さらに、
前記対象配信装置が受信した各ブロックに対応する送信元識別子を示す送信元情報と、前記対象配信装置が受信した各受信応答が示す宛先識別子を、前記対象配信装置が受信した受信応答の送信元であるコンテンツ配信装置ごとに示す宛先情報とを保持する記憶部
を備え、
前記対象配信装置の送信部は、受信応答送信タイマが満了した後に、前記送信元情報に含まれている送信元識別子のうち、前記対象配信装置が各コンテンツ配信装置から受信したブロックの受信数R
nが閾値R
thよりも大きいコンテンツ配信装置に対応する送信元識別子の中から選択された装置識別子であって、前記宛先情報が示す宛先識別子のうち、相対的に多くのコンテンツ配信装置によって前記対象配信装置が受信した各受信応答の宛先識別子として設定された装置識別子である対象識別子を宛先識別子として示す受信応答を送信する請求項11又は12に記載のコンテンツ配信システム。
【請求項14】
前記記憶部は、前記対象配信装置が受信した各ブロックに対応する受信電力を示す受信電力情報を保持し、
前記対象識別子は、対応するブロックに対応する受信電力が閾値P
th以上である送信元識別子の中から選択された装置識別子である請求項13に記載のコンテンツ配信システム。
【請求項15】
前記対象配信装置は、さらに、
前記対象配信装置が対象受信応答として受信した受信応答が示すブロックの数が、前記対象配信装置が受信したブロックの数よりも少ない場合、かつ、前記対象受信応答が示す宛先識別子が、前記対象配信装置が受信したブロックに対応する送信元識別子のいずれかと一致する場合に、前記受信応答送信タイマを延長する受信応答部
を備える請求項1
2に記載のコンテンツ配信システム。
【請求項16】
前記対象配信装置の送信部は、コンテンツデータである第2対象コンテンツデータに対応するブロックのうち最後に送信されるブロックを前記対象配信装置が受信するまで、又は前記第2対象コンテンツデータに対応するブロックであって、前記対象配信装置が既に受信したブロックである受信済ブロックが生成された時点とは異なる時点において生成されたブロックであって、前記第2対象コンテンツデータに対して消失訂正符号化を実行することにより生成されたブロックである新規ブロックを前記対象配信装置が受信するまでの間、前記第2対象コンテンツデータに対応する受信応答として、前記送信元における各ブロックの受信成否と、前記送信元が受信した各ブロックの識別子との代わりに、前記対象配信装置が受信したブロックの合計数を示す受信応答を送信する請求項11
又は12に記載のコンテンツ配信システム。
【請求項17】
各々がコンテンツデータを無線通信により配信する複数のコンテンツ配信装置を備えるコンテンツ配信システムにおいて実行されるコンテンツ配信方法であって、
前記複数のコンテンツ配信装置の各コンテンツ配信装置はコンピュータであり、
前記複数のコンテンツ配信装置の各コンテンツ配信装置を対象配信装置としたとき、前記対象配信装置が、
コンテンツデータである対象コンテンツデータをK
1個の符号化ブロックに分割し、
前記K
1個の符号化ブロックを、前記対象配信装置の装置識別子である送信元識別子とともに無線信号で送信し、
前記対象配信装置以外の2つ以上のコンテンツ配信装置の各コンテンツ配信装置が送信した情報であって、送信元であるコンテンツ配信装置を示す送信元識別子と、宛先であるコンテンツ配信装置を示す宛先識別子と、前記送信元における各ブロックの受信成否と、前記送信元が受信した各ブロックの識別子との各々を示す情報である受信応答を受信し、
前記対象配信装置が受信した各受信応答が示す宛先識別子が前記対象配信装置の装置識別子と同一である場合に、前記対象配信装置が受信した各受信応答が示す受信に失敗したブロックの中から選択された複数のブロックをFountain Codeにより符号化し、符号化した複数のブロックを示す追加送信データを作成し、
作成した追加送信データを無線信号で送信し、
他のコンテンツ配信装置から無線信号で追加送信データを受信し、
前記対象配信装置が受信した各受信応答が示す宛先識別子が前記対象配信装置の装置識別子と同一である場合に、前記対象配信装置が受信した各受信応答が示す各ブロックの受信成否に基づいて、前記対象配信装置が受信した各受信応答に対応するコンテンツ配信装置のうち1つ以上のブロックの受信に失敗したコンテンツ配信装置のいずれにおいても作成された追加送信データを復号することができるように、前記複数のブロックとして、前記対象配信装置が受信した各受信応答が示す受信に失敗したブロックの中から複数のブロックを選択し、
前記他のコンテンツ配信装置から受信した追加送信データが示す符号化された複数のブロックをFountain Codeにより復号することによって、受信した追加送信データに対応する複数のブロックを復元するコンテンツ配信方法。
【請求項18】
各々がコンテンツデータを無線通信により配信する複数のコンテンツ配信装置を備えるコンテンツ配信システムにおいて実行されるコンテンツ配信プログラムであって、
前記複数のコンテンツ配信装置の各コンテンツ配信装置はコンピュータであり、
前記複数のコンテンツ配信装置の各コンテンツ配信装置を対象配信装置としたとき、
コンテンツデータである対象コンテンツデータをK
1個の符号化ブロックに分割する符号化処理と、
前記K
1個の符号化ブロックを、前記対象配信装置の装置識別子である送信元識別子とともに無線信号で送信する送信処理と、
前記対象配信装置以外の2つ以上のコンテンツ配信装置の各コンテンツ配信装置が送信した情報であって、送信元であるコンテンツ配信装置を示す送信元識別子と、宛先であるコンテンツ配信装置を示す宛先識別子と、前記送信元における各ブロックの受信成否と、前記送信元が受信した各ブロックの識別子との各々を示す情報である受信応答を受信する受信処理と
を前記対象配信装置に実行させるコンテンツ配信プログラムであって、
前記符号化処理において、前記対象配信装置が受信した各受信応答が示す宛先識別子が前記対象配信装置の装置識別子と同一である場合に、前記対象配信装置が受信した各受信応答が示す受信に失敗したブロックの中から選択された複数のブロックをFountain Codeにより符号化し、符号化した複数のブロックを示す追加送信データを作成し、
前記送信処理において、作成された追加送信データを無線信号で送信し、
前記受信処理において、他のコンテンツ配信装置から無線信号で追加送信データを受信し、
前記対象配信装置が受信した各受信応答が示す宛先識別子が前記対象配信装置の装置識別子と同一である場合に、前記対象配信装置が受信した各受信応答が示す各ブロックの受信成否に基づいて、前記対象配信装置が受信した各受信応答に対応するコンテンツ配信装置のうち1つ以上のブロックの受信に失敗したコンテンツ配信装置のいずれにおいても作成された追加送信データを復号することができるように、前記複数のブロックとして、前記対象配信装置が受信した各受信応答が示す受信に失敗したブロックの中から複数のブロックを選択する追加送信判定処理と、
前記他のコンテンツ配信装置から受信した追加送信データが示す符号化された複数のブロックをFountain Codeにより復号することによって、受信した追加送信データに対応する複数のブロックを復元する復号処理と
を前記対象配信装置に実行させるコンテンツ配信プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンテンツ配信システム、コンテンツ配信方法、及びコンテンツ配信プログラムに関する。
【背景技術】
【0002】
無線通信によりコンテンツを配信する方法として、ユニキャストを用いて送信局から各受信局にコンテンツを個別に配信する方法と、マルチキャストを用いて送信局から複数の受信局にコンテンツを同時に配信する方法とが考えられる。
【0003】
ユニキャストを用いてコンテンツを配信する場合、受信局数が増加するほど全ての受信局にコンテンツを配信するまでの時間も増加する。一方、マルチキャストを用いてコンテンツを配信する場合、受信局数によらずに一度にコンテンツを配信することができる。
従って、無線通信を用いてコンテンツを配信する場合、マルチキャストを用いてコンテンツを配信する方法が効率的である。
【0004】
しかしながら、無線通信では、受信電力の変動による受信誤りと、他のシステムからの干渉信号による受信誤り等が発生するため、一度の送信によりコンテンツを全て正しく配信することができない。そのため、IoT(Internet of Things)端末へのファームウェア配信といったコンテンツデータの欠落が許容されない場合において受信誤りが発生したとき、受信誤りの発生個所に対応するデータを再送する必要がある。
【0005】
さらに、受信誤りの発生個所は受信局により異なるため、コンテンツを全て正しく配信する場合、受信誤りの発生個所に対応するデータとして、受信局毎に互いに異なるデータを再送する必要がある。従って、マルチキャストを用いてコンテンツを配信する方法において、受信局数が増加すると、再送する必要があるデータの量が増加するため、コンテンツ配信の効率が低下する。
【0006】
特許文献1は、無線LAN(Local Area Network)を用いてコンテンツデータを配信する場合に、配信するコンテンツデータに消失訂正符号を適用することにより、送信するデータ量を削減する方法を開示している。なお、特許文献1では、消失訂正符号の一例として、非特許文献1に記載の符号化方式が挙げられている。
【0007】
消失訂正符号を用いる場合、送信する元のコンテンツデータを一定長である複数の符号化ブロックに分割し、複数の符号化ブロックに対して符号化を実行することにより、データ欠落を復元するための冗長データを生成する。具体例として、データ長が1500バイトである符号化ブロック180個に対して符号化率1/3で消失訂正符号化を実行した場合、データ長が1500バイトである冗長データブロック360個が生成される。受信局では、元の符号化ブロックの個数と冗長データブロックの個数との合計である540個のデータブロックのうち、180個以上のデータブロックを受信することができれば、コンテンツデータを復号することができる。
【先行技術文献】
【特許文献】
【0008】
【非特許文献】
【0009】
【文献】W.Matsumoto et al.,“Rate-Compatible QC-LDPC codes”,SITA2006,Nov.28-Dec.1,2006.
【発明の概要】
【発明が解決しようとする課題】
【0010】
特許文献1が開示している方法は、無線LANのようなスター型で接続するネットワークを前提としている。
ここで、当該方法をマルチホップネットワークに適用する場合を考える。この場合において、送信局と直接通信することができない受信局が存在するため、復号失敗時において追加送信を送信局に要求すると通信効率が悪化する。また、この場合において、符号化ブロックと冗長データブロックとを受信した受信局が次のホップに当たる受信局に受信したデータを転送する必要がある。しかしながら、全ての受信局がデータを転送するとパケット数が増大するため、パケットの衝突と、消費電力の増大等が発生するという課題がある。
【0011】
本開示は、マルチホップネットワークにおいて消失訂正符号を用いるコンテンツ配信を実行する場合に、通信効率を向上させることを目的とする。
【課題を解決するための手段】
【0012】
本開示に係るコンテンツ配信装置は、
各々がコンテンツデータを無線通信により配信する複数のコンテンツ配信装置を備えるコンテンツ配信システムであって、
前記複数のコンテンツ配信装置の各コンテンツ配信装置を対象配信装置としたとき、前記対象配信装置は、
コンテンツデータである対象コンテンツデータをK1個の符号化ブロックに分割し、前記K1個の符号化ブロックに対して消失訂正符号化を実行することによりM個の冗長データブロックを生成する符号化処理部と、
前記K1個の符号化ブロックと前記M個の冗長データブロックとの中から選択されたK2個のブロックを、前記対象配信装置の装置識別子である送信元識別子とともに無線信号で送信する送信部と、
前記対象配信装置以外の2つ以上のコンテンツ配信装置の各コンテンツ配信装置が送信した情報であって、送信元であるコンテンツ配信装置を示す送信元識別子と、宛先であるコンテンツ配信装置を示す宛先識別子と、前記送信元における各ブロックの受信成否と、前記送信元が受信した各ブロックの識別子との各々を示す情報である受信応答を受信する受信部と
を備え、
前記対象配信装置の送信部は、前記対象配信装置が受信した受信応答が示す宛先識別子が前記対象配信装置の装置識別子と同一である場合に、前記対象配信装置が受信した各受信応答が示す受信に成功したブロックの数のうち相対的に小さいブロックの数をRminとしたとき、前記K1個の符号化ブロックと前記M個の冗長データブロックとのうち未送信であるブロックの中から選択されたK2-Rmin個のブロックを無線信号で送信する。
【発明の効果】
【0013】
本開示によれば、対象配信装置の送信部は、受信応答が示す宛先識別子が対象配信装置の装置識別子と同一である場合に、未送信であるK2―Rmin個のブロックを無線信号で送信する。従って、本開示によれば、受信応答の送信数が削減されるため、マルチホップネットワークにおいて消失訂正符号を用いるコンテンツ配信を実行する場合に、通信効率を向上させることができる。
【図面の簡単な説明】
【0014】
【
図1】実施の形態1に係るコンテンツ配信システム90の構成例を示す図。
【
図2】実施の形態1に係るデータ送信装置100の構成例を示す図。
【
図3】実施の形態1に係るデータ受信装置200の構成例を示す図。
【
図4】実施の形態1に係るデータ送信装置100の動作を示すフローチャート。
【
図5】実施の形態1に係る符号化ブロック132又は冗長データブロック133のフォーマットを説明する図。
【
図6】実施の形態1に係る受信応答のフォーマットを説明する図。
【
図7】実施の形態1に係るデータ受信装置200の動作を示すフローチャート。
【
図8】実施の形態1に係るデータ受信装置200の動作を示すフローチャート。
【
図9】実施の形態1の変形例に係るデータ送信装置100のハードウェア構成例を示す図。
【
図10】実施の形態2に係るデータ受信装置200Bの構成例を示す図。
【
図11】実施の形態2に係るデータ受信装置200Bの動作を示すフローチャート。
【
図12】実施の形態2に係るデータ受信装置200Bの動作を示すフローチャート。
【
図13】実施の形態3に係るデータ受信装置200Cの構成例を示す図。
【
図14】実施の形態3に係るデータ受信装置200Cの動作を示すフローチャート。
【
図15】実施の形態3に係るデータ受信装置200Cの動作を示すフローチャート。
【
図16】実施の形態4に係る受信応答のフォーマットを説明する図。
【
図17】実施の形態5に係るデータ送信装置100の動作を示すフローチャート。
【
図18】実施の形態6に係るデータ送信装置100Bの構成例を示す図。
【
図19】実施の形態6に係るデータ受信装置200Dの構成例を示す図。
【
図20】実施の形態6に係るデータ送信装置100Bの動作を示すフローチャート。
【
図21】実施の形態6に係る追加送信データの生成手順を説明する図であり、(a)は符号化ブロック132の受信状況を示す表、(b)は選択された符号化ブロック132を示す表、(c)は選択された符号化ブロック132を示す表。
【
図22】実施の形態6に係る追加送信データのフォーマットを説明する図。
【発明を実施するための形態】
【0015】
実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。また、「部」を、「回路」、「工程」、「手順」、「処理」又は「サーキットリー」に適宜読み替えてもよい。
【0016】
実施の形態1.
以下、本実施の形態について、図面を参照しながら詳細に説明する。
【0017】
***構成の説明***
図1は、コンテンツ配信システム90の構成の一例を示す図である。コンテンツ配信システム90は、1つのデータ送信装置100と、複数のデータ受信装置200とを備える。データ送信装置100とデータ受信装置200とを総称してコンテンツ配信装置と呼ぶ。データ送信装置100は配信データ送信装置とも呼ばれる。データ受信装置200は配信データ受信端末とも呼ばれる。コンテンツ配信システム90は、各々がコンテンツデータを無線通信により配信する複数のコンテンツ配信装置を備える。コンテンツ配信システム90が備える1つ以上のコンテンツ配信装置は、コンテンツデータを配信しなくてもよい。
データ送信装置100は、複数のデータ受信装置200と無線通信可能に接続している。
各データ受信装置200は、1つ以上のデータ受信装置200と無線通信可能に接続していることもある。
【0018】
図2は、本実施の形態に係るデータ送信装置100の構成の一例を示す図である。データ送信装置100は、プロセッサ11と、記憶装置13と、無線モジュール12と、アンテナ14といったハードウェアを備えるコンピュータである。プロセッサ11は、信号線を介して他のハードウェアと接続され、これらのハードウェアを制御する。
また、データ送信装置100は、機能構成要素として、符号化処理部111と追加送信判定部112と送信部121と受信部122と記憶部130とを備える。
【0019】
プロセッサ11は、プロセッシングを実行するIC(Integrated Circuit)である。プロセッサ11は、具体例としてCPU(Central Processing Unit)である。
【0020】
記憶装置13は、補助記憶装置及びメモリから成る。
補助記憶装置は、具体的には、ROM(Read Only Memory)、フラッシュメモリ、又はHDD(Hard Disk Drive)である。メモリは、具体例としてRAM(Random Access Memory)である。
記憶部130は、記憶装置13により実現される。記憶部130は、典型的にはメモリにより実現されるが、補助記憶装置及びメモリの両方により実現されてもよい。
また、記憶装置13は、コンテンツ配信プログラムを記憶している。コンテンツ配信プログラムは、コンテンツ配信装置が備える各部の機能をコンピュータに実現させるプログラムである。コンテンツ配信プログラムは、プロセッサ11によって実行される。コンテンツ配信装置が備える各部の機能は、ソフトウェアにより実現される。コンテンツ配信プログラムを実行する際に用いられるデータと、コンテンツ配信プログラムを実行することによって得られるデータ等は、記憶装置13に適宜記憶される。コンテンツ配信装置の各部は記憶装置13を適宜利用する。
コンテンツ配信プログラムは、コンピュータが読み取り可能な不揮発性の記録媒体に記録されていてもよい。不揮発性の記録媒体は、具体例として、光ディスク又はフラッシュメモリである。コンテンツ配信プログラムは、プログラムプロダクトとして提供されてもよい。
【0021】
無線モジュール12は、アンテナ14を介して無線信号を送受信する。
【0022】
符号化処理部111は、符号化ブロック132に対して消失訂正符号化を実行することにより冗長データブロック133を生成する。
具体例として、符号化処理部111は、コンテンツデータである対象コンテンツデータをK1個の符号化ブロック132に分割し、K1個の符号化ブロック132に対して消失訂正符号化を実行することによりM個の冗長データブロック133を生成する。対象配信装置の符号化処理部111は、対象コンテンツデータとして後述の復号コンテンツデータを用いてもよい。K1及びMの各々は正の整数である。
【0023】
追加送信判定部112は、各ブロックを追加送信するか否かを判定する。
【0024】
送信部121は、他のコンテンツ配信装置に対して無線信号を送信する。
具体例として、対象配信装置の送信部121は、K1個の符号化ブロックとM個の冗長データブロックとの中から選択されたK2個のブロックを、対象配信装置の装置識別子である送信元識別子とともに無線信号で送信する。対象配信装置は、複数のコンテンツ配信装置の各コンテンツ配信装置である。また、対象配信装置の送信部121は、対象配信装置が受信した受信応答が示す宛先識別子が対象配信装置の装置識別子と同一である場合に、K1個の符号化ブロック132とM個の冗長データブロック133とのうち未送信であるブロックの中から選択されたK2-Rmin個のブロックを無線信号で送信する。Rminは、対象配信装置が受信した各受信応答が示す受信に成功したブロックの数のうち相対的に小さいブロックの数である。Rminは、対象配信装置が受信した各受信応答が示す受信に成功したブロックの数のうち最小のブロックの数であってもよい。対象配信装置の送信部121は、受信応答送信タイマが満了した後に、送信元情報に含まれている送信元識別子のうち、対象配信装置が各コンテンツ配信装置から受信したブロックの受信数Rnのうち相対的に多い受信数Rnに対応する送信元識別子を宛先識別子として示す受信応答を無線通信で送信する。K2とRminとRnとの各々は正の整数である。
【0025】
受信部122は、他のコンテンツ配信装置から無線信号を受信する。
具体例として、対象配信装置の受信部122は対象配信装置以外の2つ以上のコンテンツ配信装置の各コンテンツ配信装置から受信応答を受信する。当該受信応答は、各コンテンツ配信装置が送信した情報であって、当該受信応答の送信元であるコンテンツ配信装置を示す送信元識別子と、当該受信応答の宛先であるコンテンツ配信装置を示す宛先識別子と、送信元における各ブロックの受信成否と、送信元が受信した各ブロックの識別子との各々を示す情報である。また、対象配信装置の受信部122は、対象配信装置以外のコンテンツ配信装置からブロックを受信する。
【0026】
記憶部130は、配信データ131と符号化ブロック132と冗長データブロック133と自端末ホップ数134とを記憶する。
配信データ131は、配信対象であるコンテンツデータである。
符号化ブロック132は、配信データ131を分割することにより生成されたブロックを示すデータである。
冗長データブロック133は、符号化ブロック132に対して消失訂正符号化を実行することにより生成されたブロックを示すデータである。
自端末ホップ数134は、自端末ホップ数134を記憶しているコンテンツ配信装置に対応するホップ数であって、データ送信装置100からのホップ数を示すデータである。
【0027】
図3は、本実施の形態に係るデータ受信装置200の構成の一例を示す図である。データ受信装置200は、プロセッサ21と、記憶装置23と、無線モジュール22と、アンテナ24といったハードウェアを備える。
また、データ受信装置200は、機能構成要素として、符号化処理部211と追加送信判定部212と復号処理部213と受信応答部214と送信部221と受信部222と記憶部230とを備える。
【0028】
プロセッサ21は、プロセッサ11と同様である。
記憶装置23は、記憶装置13と同様である。
無線モジュール22は、無線モジュール12と同様である。
アンテナ24は、アンテナ14と同様である。
符号化処理部211は、符号化処理部111と同様である。
追加送信判定部212は、追加送信判定部112と同様である。
送信部221は、送信部121と同様である。
受信部222は、受信部122と同様である。
記憶部230は、送信元情報235を記憶する点を除いて記憶部130と同様である。
送信元情報235は、受信したブロックの送信元に関する情報であり、対象配信装置が受信した各ブロックに対応する送信元識別子を示す情報である。
【0029】
対象配信装置の復号処理部213は、対象配信装置が受信したブロックを用いてコンテンツデータを復号コンテンツデータとして復号する。
【0030】
受信応答部214は、受信応答及び受信応答送信タイマを管理する。
具体例として、受信応答部214は、対象配信装置が対象受信応答として受信した受信応答が示すブロックの数が、対象配信装置が受信したブロックの数よりも少ない場合、かつ、対象受信応答が示す宛先識別子が、対象配信装置が受信したブロックに対応する送信元識別子のいずれかと一致する場合に、受信応答送信タイマを延長する。
【0031】
***動作の説明***
コンテンツ配信システム90が備える各装置の動作手順はコンテンツ配信方法に相当する。また、コンテンツ配信システム90が備える各装置の動作を実現するプログラムはコンテンツ配信プログラムに相当する。
【0032】
図4は、データ送信装置100の動作の一例を示すフローチャートである。
図4を参照してデータ送信装置100の動作を説明する。
【0033】
(ステップS301)
まず、符号化処理部111は、記憶部130から配信データ131を取得し、取得した配信データ131をK1個の符号化ブロック132に分割する。
次に、符号化処理部111は、分割したK1個の符号化ブロック132に対して消失訂正符号化を実行することにより、M個の冗長データブロック133を生成する。ここで、Mの値は使用する符号化手法の符号化率に応じて異なる。具体例として、符号化率が1/3である場合においてMの値はK1の値の2倍である。また、記憶部130から取得する配信データ131のデータサイズは、K1個分の符号化ブロック132のデータサイズである。
なお、記憶部130に保存されている配信データ131のデータサイズの合計が、符号化処理部111が取得可能である配信データ131のデータサイズを上回っている場合、データ送信装置100は、本フローチャートの処理を、記憶部130に保存されている配信データ131を全て配信するまで繰り返し実行する。
【0034】
(ステップS302)
符号化処理部111は、ステップS301において生成したK1個の符号化ブロック132とM個の冗長データブロック133とを記憶部130に保存する。この際、記憶部130において、各符号化ブロック132と、各冗長データブロック133とには、未送信であることを示す情報が対応付けられる。なお、符号化ブロック132と冗長データブロック133とのデータ数の合計はK1+Mである。
【0035】
(ステップS303)
まず、符号化処理部111は、ステップS302において保存された符号化ブロック132と冗長データブロック133との中からK2個のブロックを選択し、選択したK2個のブロックを無線信号として送信するために、選択したK2個のブロックを送信部121へ通知する。その後、送信部121は、通知されたK2個のブロックを無線信号として送信する。ここで、ブロックは符号化ブロック132及び冗長データブロック133の総称である。K2の値はK1の値以上Mの値以下である。また、K2個のブロックは、符号化ブロック132のみから成ってもよく、冗長データブロック133のみから成ってもよい。
次に、符号化処理部111は、記憶部130において、選択したK2個のブロックの各ブロックに送信済みであることを示す情報を対応付ける。なお、受信誤り発生数が少ない場合において、K2の値をK1の値に近づけることにより不要なブロックの送信数を削減することができる。
【0036】
図5は、送信部121が送信するブロックの送信フォーマットの一例を示している。ブロックの送信フォーマットは、
図5に示すように、送信元識別子と、ホップ数と、符号化番号と、ブロック番号と、符号化ブロック132又は冗長データブロック133のデータ列との各々を含む。
送信元識別子は、データを送信する装置の識別子を示す情報であり、具体例としてIP(Internet Protocol)アドレス又はMAC(Media Access Control)アドレスを示す情報である。
ホップ数は、データを送信する装置がデータ送信装置100から見て何ホップ目に存在するかを示す情報である。ホップ数には、記憶部130において自端末ホップ数134として保存されている値が設定される。なお、データ送信装置100においてホップ数は0である。
符号化番号は、ステップS301において実行した符号化処理の通し番号である。
ブロック番号は、各ブロックの通し番号である。具体例として、各符号化ブロック132のブロック番号は0以上K
1-1以下の値であり、各冗長データブロック133のブロック番号はK
1以上K
1+M-1以下の値である。
【0037】
(ステップS304)
追加送信判定部112は、データ受信装置200が送信したデータ送信装置100宛ての受信応答を受信部122から取得する。
【0038】
図6は、受信応答のフォーマットの一例を示している。受信応答のフォーマットは、
図6に示すように、送信元識別子と、宛先識別子と、符号化番号と、復号状況との各々を含む。なお、データ受信装置200の受信応答送信処理については
図7及び
図8を用いて後述する。
宛先識別子は、受信応答の宛先を示す情報である。
復号状況は、符号化番号に対応する復号処理が成功したか否かを示す情報である。復号状況が復号失敗を示す場合において、受信応答には受信ブロックビットマップが含まれる。
受信ブロックビットマップは、各ブロックについて、受信又は未受信をビットマップで示す情報である。受信ブロックビットマップは、当該受信ブロックビットマップを含む受信応答の送信元における各ブロックの受信成否と、送信元が受信した各ブロックの識別子とを示す情報でもある。
なお、データ送信装置100は、送信していない配信データ131が記憶部130に残っている場合において、ステップS304においてデータ受信装置200からの受信応答の受信を待たず、残っている配信データ131を送信するために本フローチャートの処理を平行して実行してもよい。また、データ送信装置100は、タイムアウト時間を設定し、設定したタイムアウト時間が経過するまで受信応答を待ってもよい。データ送信装置100は、データ送信装置100の周辺に存在するデータ受信装置200の装置識別子があらかじめ分かっている場合に、周辺に存在する全てのデータ受信装置200から受信応答を受信するまで待ってもよい。
【0039】
(ステップS305)
受信部122がデータ受信装置200から受信した受信応答の全てが復号成功を示す場合、データ送信装置100は配信データ131の送信を終了する。なお、配信していない配信データ131が残っている場合、残っている配信データ131についてデータ送信装置100は本フローチャートの処理を繰り返し実行する。
受信部122がデータ受信装置200から受信した受信応答のうち1つ以上の受信応答が復号失敗を示す場合、データ送信装置100はステップS306に進む。なお、ステップS306以降の処理は、復号失敗を示す受信応答に対応するデータ受信装置200を対象とした処理である。
【0040】
(ステップS306)
追加送信判定部112は、受信応答が示す受信ブロックビットマップから、受信ブロック数の最小値Rminを算出する。また、追加送信判定部112は、復号に失敗したデータ受信装置200が未受信である各ブロックの番号を取得する。
【0041】
(ステップS307)
追加送信判定部112は、符号化ブロック132及び冗長データブロック133のうちステップS303とステップS308とステップS310とにおいて送信部121に通知されていないブロックの数、即ち記憶部130において未送信を示す情報と対応付けられたままであるブロックの数が、K2-Rmin以上であるか否かを確認する。
未送信であるブロックの数がK2-Rmin以上である場合、データ送信装置100はステップS308に進む。それ以外の場合、データ送信装置100はステップS309に進む。
【0042】
(ステップS308)
追加送信判定部112は、未送信であるブロックからK2-Rmin個のブロックを選択し、選択したK2-Rmin個のブロックを送信部121へ通知する。送信部121は、通知されたK2-Rmin個のブロックを無線信号として送信する。
また、追加送信判定部112は、記憶部130において、選択したK2-Rmin個のブロックの各ブロックに送信済みであることを示す情報を対応付ける。
【0043】
(ステップS309)
まず、追加送信判定部112は、未送信であるブロック全てを送信部121に通知する。送信部121は、通知されたブロックを無線信号として送信する。
次に、追加送信判定部112は、記憶部130において、本ステップにおいて通知した各ブロックに送信済みであることを示す情報を対応付ける。
なお、未送信であるブロックが存在しない場合、追加送信判定部112は送信部121にブロックを通知しない。
【0044】
(ステップS310)
追加送信判定部112は、各データ受信装置200から受信した受信応答が示す受信ブロックビットマップを参照して、K2と各データ受信装置200の受信ブロック数Rnとの差であるK2-Rnと、ステップS309において送信したブロックの数Tとの差分であるK2-Rn-T個のブロックを、各データ受信装置200において未受信であるブロックの中から、ステップS309において送信したブロックを除いて選択し、選択したK2-Rn-T個のブロックを送信部121に通知する。送信部121は、通知されたK2-Rn-T個のブロックを無線信号として送信する。なお、ステップS310において送信するブロックには、記憶部130において、ステップS303又はステップS308において送信済みであることを示す情報が既に対応付けられている。そのため、ステップS310では、記憶部130において各ブロックに送信済みであることを示す情報を対応付ける必要はない。なお、未受信であるデータ受信装置200が相対的に多いブロックを追加送信判定部112が優先的に選択することにより、ブロックの送信数が削減されて効率化を図ることができる。Tは正の整数である。
【0045】
追加送信判定部112は、ステップS308又はステップS310の実行後、再びステップS304において各データ受信装置200が送信した受信応答を取得し、ステップS305において全てのデータ受信装置200が復号に成功した否かを確認する。
その後、全てのデータ受信装置200が復号処理に成功した場合、データ送信装置100は本フローチャートの処理を終了する。
【0046】
図7及び
図8は、データ受信装置200の動作の一例を示すフローチャートである。
図7及び
図8を参照してデータ受信装置200の動作を説明する。なお、データ受信装置200である対象受信装置が本フローチャートの処理を実行するものとして本フローチャートを説明する。本フローチャートの説明において、データ受信装置200の各部は対象受信装置の各部を指す。
【0047】
(ステップS601)
復号処理部213は、受信部222が無線信号を受信するまで、又は受信応答送信タイマが満了するまで待つ。
受信部222が無線信号を受信した場合、対象受信装置はステップS602に進む。受信応答送信タイマが満了した場合、対象受信装置はステップS612に進む。以下、本ステップにおいて受信した無線信号を受信信号とする。
【0048】
(ステップS602)
復号処理部213は、受信信号の種別を判定する。
受信信号の種別が符号化ブロック132又は冗長データブロック133である場合、対象受信装置はステップS603に進む。それ以外の場合、対象受信装置はステップS613に進む。
【0049】
(ステップS603)
復号処理部213は、受信信号が示すホップ数に1を加えた値が、記憶部230に自端末ホップ数134として保存されている値よりも小さい場合、又は、自端末ホップ数134として値が保存されていない場合、自端末ホップ数134を受信したブロックが示すホップ数に1を加えた値に更新する。
【0050】
(ステップS604)
復号処理部213は、受信信号が示す送信元識別子とホップ数とブロック番号との各々を示す情報を、記憶部230において送信元情報235に保存する。
【0051】
(ステップS605)
受信信号が示すブロックが記憶部230に保存されていない場合、復号処理部213は、受信信号が示すブロックを記憶部230に保存し、また、新たにブロックを受信した旨を受信応答部214に通知する。
【0052】
(ステップS606)
受信応答部214は、受信応答送信タイマを開始する。この際、受信応答部214は、受信応答送信タイマの満了時刻を、時刻T1から時刻T2までの時刻からランダムに選択する。なお、受信応答送信タイマが既に開始している場合、受信応答部214は、既に開始している受信応答送信タイマの満了時刻よりも選択した満了時刻の方が遅い時刻である場合に限り、既に開始している受信応答送信タイマを停止し、新たに受信応答送信タイマを開始する。ここで、[数1]及び[数2]の各々に示すように、受信したブロックの合計数Rnが多いほどT1とT2との各々の時間を長く設定することにより、受信応答の送信を遅らせることができる。[数1]及び[数2]において、αとβとの各々は係数であり、T1bはT1の基準となる時間を示し、T2bはT2の基準となる時間を示す。αとβとT1bとT2bとの各々の値はパラメータとして対象受信装置に設定される。
【0053】
【0054】
(ステップS607)
ステップS605において新たなブロックを保存した場合、かつ、復号処理において最小限必要な数のブロックが記憶部230に保存されている場合に、対象受信装置はステップS608に進む。
ステップS605において新たなブロックを保存していない場合、又は、復号処理において最小限必要な数のブロックが記憶部230に保存されていない場合に、対象受信装置はステップS601に戻る。
【0055】
(ステップS608)
復号処理部213は、記憶部230に保存されているブロックを用いて復号処理を実行する。復号処理部213は、復号処理に成功した場合に、復号したK1個の符号化ブロック132を、記憶部230に符号化ブロック132及び配信データ131として保存する。
【0056】
(ステップS609)
復号処理部213は、ステップS608における復号結果を受信応答部214に通知する。
通知された復号結果が復号失敗を示す場合、対象受信装置はステップS601に戻る。通知された復号結果が復号成功を示す場合、対象受信装置はステップS610に進む。
【0057】
(ステップS610)
受信応答部214は、復号成功を示す受信応答を作成し、作成した受信応答を送信部221に通知する。このとき、受信応答部214は、受信応答の宛先識別子に、マルチキャストで送信するために他の全ての装置を示す装置識別子を設定してもよい。また、受信応答部214は、宛先識別子に設定した装置宛てにユニキャストで送信するために、送信元情報235に保存されている送信元識別子を設定してもよい。
なお、本ステップにおいて、送信部221は、受信応答を即座に送信する必要はなく、RPL(IPv6(Internet Protocol version 6) Routing Protocol for Low-Power and Lossy Networks)を用いるネットワークにおいて本実施の形態を適用する場合、DIO(DODAG Information Object)又はDAO(Destination Advertisement Object)のオプション領域に受信応答を重畳することにより受信応答を送信してもよい。
【0058】
(ステップS611)
対象受信装置は、ステップS608において保存した配信データ131を用いてデータ送信装置100と同様の動作、つまり
図4に示す動作と同様の動作を実行することにより、次ホップのデータ受信装置200へ配信データ131を配信することができる。なお、対象受信装置は、ステップS304において対象受信装置宛ての受信応答を全く受信しない場合、次ホップのデータ受信装置200が存在しないものとみなし、次ホップのデータ受信装置200への配信を停止してもよい。
【0059】
(ステップS612)
ステップS601において受信応答送信タイマが満了した場合、受信応答部214は、記憶部230に保存されているブロックの受信状況に基づいて、復号失敗を示す受信応答を作成し、作成した受信応答を送信部221へ通知する。このとき、受信応答部214は、記憶部230において送信元情報235に保存されている送信元識別子のうち、自端末ホップ数134として保存されているホップ数よりも小さいホップ数に対応する送信元識別子を1つ選択し、受信応答の宛先識別子に、選択した送信元識別子を設定する。なお、受信応答部214は、送信元情報235に保存されている送信元識別子の中に、自端末ホップ数134として保存されているホップ数よりも小さいホップ数に対応する送信元識別子が存在しない場合、自端末ホップ数134として保存されているホップ数よりも大きいホップ数に対応する送信元識別子を選択してもよい。送信部221は、通知された受信応答を無線信号として送信する。
【0060】
ここで、対象受信装置が受信したブロックの送信元であるデータ受信装置200のうち、対象受信装置が最も多くのブロックを受信したデータ受信装置200に対応する送信元識別子を受信応答の宛先識別子に設定することにより、対象受信装置は、追加送信されるブロックをより安定的に受信することができる。
受信応答は、他のデータ受信装置200も受信することができるようにマルチキャストで送信される。ただし、受信応答がユニキャストで送信された場合であっても宛先識別子に対応するデータ受信装置200以外のデータ受信装置200が受信応答を受信することができる場合に、送信部221は、受信応答の宛先識別子に設定されたデータ受信装置200宛てにユニキャストで受信応答を送信してもよい。
受信応答の送信後、対象受信装置はステップS601に戻る。
【0061】
(ステップS613)
受信信号の種別が受信応答であるとき、受信信号が示す受信応答が受信失敗を示す場合、かつ、受信ブロック数が記憶部230に保存されているブロックの総数よりも少ない場合に、対象受信装置はステップS614に進む。
受信信号が示す受信応答が受信成功を示す場合、又は、受信ブロック数が記憶部230に保存されているブロックの総数以上である場合に、対象受信装置はステップS601に戻る。
【0062】
(ステップS614)
受信応答が示す宛先識別子が、送信元情報235に保存されている送信元識別子と一致する場合、対象受信装置はステップS615に進む。それ以外の場合、対象受信装置はステップS601に戻る。
【0063】
(ステップS615)
既に開始している受信応答送信タイマがある場合、受信応答部214は、受信応答送信タイマの満了時刻を延長する。延長される時間は、受信信号が示す受信応答を宛先端末が受信した後に、追加的にブロックが送信されるまでの時間よりも長い時間であればよい。ここで、追加的にブロックが送信されるまでの時間は処理時間に当たる。
【0064】
***実施の形態1の効果の説明***
本実施の形態によれば、上述のように、マルチホップネットワークにおいて消失訂正符号化を用いるコンテンツ配信を実行する場合において、各データ受信装置200は、所定の条件が満たされる場合にのみ受信応答を送信する。そのため、本実施の形態によれば、受信応答の送信数が削減されるため、通信効率を向上させることができる。
【0065】
***他の構成***
<変形例1>
図9は、本変形例に係るデータ送信装置100のハードウェア構成例を示している。
データ送信装置100は、プロセッサ11、あるいはプロセッサ11と記憶装置13に代えて、処理回路18を備える。
処理回路18は、データ送信装置100が備える各部の少なくとも一部を実現するハードウェアである。
処理回路18は、専用のハードウェアであってもよく、また、記憶装置13に格納されるプログラムを実行するプロセッサであってもよい。
【0066】
処理回路18が専用のハードウェアである場合、処理回路18は、具体例として、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はこれらの組み合わせである。
データ送信装置100は、処理回路18を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路18の役割を分担する。
【0067】
データ送信装置100において、一部の機能が専用のハードウェアによって実現されて、残りの機能がソフトウェア又はファームウェアによって実現されてもよい。
【0068】
処理回路18は、具体例として、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現される。
プロセッサ11と記憶装置13と処理回路18とを、総称して「プロセッシングサーキットリー」という。つまり、データ送信装置100の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
データ受信装置200についても本変形例と同様の構成であってもよい。他の実施の形態に係るデータ送信装置100及びデータ受信装置200についても、本変形例と同様の構成であってもよい。
【0069】
実施の形態2.
以下、主に実施の形態1と異なる点について、図面を参照しながら説明する。
【0070】
***構成の説明***
本実施の形態に係るコンテンツ配信システム90は、複数のデータ受信装置200の代わりに複数のデータ受信装置200Bを備える。
本実施の形態に係るデータ送信装置100は実施の形態1に係るデータ送信装置100と同様である。
【0071】
図10は、本実施の形態に係るデータ受信装置200Bの構成の一例を示す図である。
データ受信装置200Bのハードウェア構成は、データ受信装置200のハードウェア構成と同様である。
データ受信装置200Bは、機能構成要素として、受信応答部214の代わりに受信応答部214Bを備える。
受信応答部214Bは、受信応答部214の機能に加え、宛先情報236を生成する機能を有する。
本実施の形態に係る記憶部230は、宛先情報236をさらに記憶する。
宛先情報236は、データ受信装置200Bが受信した受信応答が示す宛先識別子を示す情報であり、対象配信装置が受信した各受信応答が示す宛先識別子を、対象配信装置が受信した受信応答の送信元であるコンテンツ配信装置ごとに示す情報である。
【0072】
本実施の形態において、対象配信装置の送信部221は、受信応答送信タイマが満了した後に、対象識別子を宛先識別子として示す受信応答を送信する。対象識別子は、送信元情報235に含まれている送信元識別子のうち、対象配信装置が各コンテンツ配信装置から受信したブロックの受信数Rnが閾値Rthよりも大きいコンテンツ配信装置に対応する送信元識別子の中から選択された装置識別子であって、宛先情報236が示す宛先識別子のうち、相対的に多くのコンテンツ配信装置によって対象配信装置が受信した各受信応答の宛先識別子として設定された装置識別子である。
【0073】
***動作の説明***
図11及び
図12は、データ受信装置200Bの動作の一例を示すフローチャートである。
データ受信装置200の動作と、データ受信装置200Bの動作との差異は、ステップS801が追加された点と、ステップS612がステップS612Bに変更された点とである。差異に関するステップ以外は前述の通りであるため、差異に関するステップのみを説明する。なお、データ受信装置200Bである対象受信装置が本フローチャートの処理を実行するものとして本フローチャートを説明する。
【0074】
(ステップS801)
受信信号の種別が受信応答である場合、受信応答部214Bは、記憶部230において、受信信号が示す受信応答が示す宛先識別子を、受信応答が示す送信元識別子ごとに宛先情報236に保存する。
その後、対象受信装置はステップS613に進む。
【0075】
(ステップS612B)
受信応答部214Bは、記憶部230に保存されているブロックの受信状況に基づいて復号失敗を示す受信応答を作成する。このとき、受信応答部214Bは、宛先情報236に保存されている宛先識別子の中から、選択識別子群の要素として、送信元情報235に保存されている送信元識別子のうち自端末ホップ数134よりも小さいホップ数に対応する各送信元識別子と同じ装置識別子を選択する。受信応答部214Bは、宛先情報236を参照して、選択識別子群に含まれている装置識別子の中から、最も多くのデータ受信装置200Bによって受信応答の宛先識別子として設定された装置識別子を対象識別子として選択し、選択した対象識別子を受信応答の宛先識別子に設定する。
なお、宛先情報236に保存されている宛先識別子の中に、自端末ホップ数134よりも小さいホップ数に対応する宛先識別子が存在しない場合、受信応答部214BはステップS612と同様の処理を実行する。ここで、宛先識別子に対応するホップ数は送信元情報235に保存されているホップ数である。
【0076】
ここで、受信応答部214Bは、対象受信装置が各データ受信装置200Bから受信したブロックの合計数Rnを考慮して対象識別子を選択する。
この際、具体例として、まず、受信応答部214Bは、送信元情報235を参照して、対象受信装置が対象識別子に対応するデータ受信装置200Bから受信したブロックの合計数Rnが閾値Rth1よりも少ないか否かを確認する。閾値Rth1はどのように定められてもよい。
次に、受信応答部214Bは、合計数Rnが閾値Rth1よりも少ない場合に、選択識別子群に含まれている装置識別子のうち、対象識別子の次に多くのデータ受信装置200Bによって受信応答の装置識別子として設定された装置識別子を第2対象識別子として選択する。その後、受信応答部214Bは、送信元情報235を参照して、対象受信装置が第2対象識別子に対応するデータ受信装置200Bから受信したブロックの合計数Rn2を確認する。受信応答部214Bは、確認した合計数Rn2が閾値Rth1以上である場合に、受信応答の宛先識別子に第2対象識別子を設定する。
なお、受信応答部214Bは、合計数Rn2が閾値Rth1よりも少ない場合、第2対象識別子を対象識別子として上述の処理を実行する。また、受信応答部214Bは、宛先情報236に保存されている各宛先識別子に対応するデータ受信装置200Bから対象受信装置が受信したブロックの合計数の全てが閾値Rth1よりも少ない場合、対象受信装置が受信したブロックの合計数が最も多いデータ受信装置200Bに対応する装置識別子を受信応答の宛先識別子に設定する。
受信応答の送信後、対象受信装置はステップS601に戻る。
【0077】
***実施の形態2の効果の説明***
本実施の形態では、上述のように、複数のデータ受信装置200Bにおいて、受信応答の宛先識別子に、より多くのデータ受信装置200Bによって受信応答の宛先識別子として設定された装置識別子に対応するデータ受信装置200Bの装置識別子を設定することにより、ブロックを送信するデータ受信装置200が集約される。そのため、本実施の形態によれば配信効率をより向上させることができる。
【0078】
実施の形態3.
以下、主に実施の形態2と異なる点について、図面を参照しながら説明する。
【0079】
***構成の説明***
本実施の形態に係るコンテンツ配信システム90は、複数のデータ受信装置200Bの代わりに複数のデータ受信装置200Cを備える。
本実施の形態に係るデータ送信装置100は実施の形態1に係るデータ送信装置100と同様である。
【0080】
図13は、本実施の形態に係るデータ受信装置200Cの構成の一例を示す図である。
データ受信装置200Cのハードウェア構成は、データ受信装置200Bのハードウェア構成と同様である。
データ受信装置200Cは、機能構成要素として、受信応答部214Bの代わりに受信応答部214Cを備える。
受信応答部214Cは、受信応答部214Bの機能に加え、受信電力情報237を生成する機能を有する。
本実施の形態に係る記憶部230は、受信電力情報237をさらに記憶する。
受信電力情報237は、データ受信装置200Cが受信したブロックに対応する受信電力を、ブロックの送信元ごとに示す情報であり、対象配信装置が受信した各ブロックに対応する受信電力を示す情報である。
【0081】
***動作の説明***
図14及び
図15は、データ受信装置200Cの動作の一例を示すフローチャートである。
データ受信装置200Bの動作とデータ受信装置200Cの動作との差異は、ステップS901が追加された点と、ステップS612BがステップS612Cに変更された点とである。差異に関するステップ以外は前述の通りであるため、差異に関するステップのみを説明する。なお、データ受信装置200Cである対象受信装置が本フローチャートの処理を実行するものとして本フローチャートを説明する。
【0082】
(ステップS901)
受信信号の種別が符号化ブロック132又は冗長データブロック133である場合、受信応答部214Cは、記憶部230において、受信信号の受信電力を、受信信号が示すブロックに対応する送信元識別子ごとに受信電力情報237に保存する。この際、受信応答部214Cは、受信電力情報237に、受信電力の平均値と中央値と最小値との各々を送信元識別子ごとに保存する。
その後、対象受信装置はステップS603に進む。
【0083】
(ステップS612C)
受信応答部214Cは、ステップS612Bと同様に対象識別子を受信応答の宛先識別子に設定する。
なお、宛先情報236に保存されている宛先識別子の中に、自端末ホップ数134よりも小さいホップ数に対応する宛先識別子が存在しない場合、受信応答部214CはステップS612と同様の処理を実行する。
【0084】
ここで、受信応答部214Cは、各データ受信装置200Cから受信したブロックの合計数Rnと、受信したブロックに対応する受信電力とを考慮して対象識別子を選択する。
この際、具体例として、まず、受信応答部214Cは、送信元情報235を参照して、対象受信装置が対象識別子に対応するデータ受信装置200Cから受信したブロックの合計数Rnが閾値Rth2よりも少ないか否かを確認する。また、受信応答部214Cは、受信電力情報237を参照して、対象識別子に対応するデータ受信装置200Cに対応する受信電力の平均値、中央値、又は最小値が閾値Pthよりも小さいか否かを確認する。閾値Pthと閾値Rth2との各々はどのように定められてもよい。閾値Rth2は閾値Rth1と同じであってもよい。
次に、受信応答部214Cは、合計数Rnが閾値Rth2よりも少ない場合、又は、受信電力の平均値、中央値、若しくは最小値が閾値Pthよりも小さい場合に、選択識別子群に含まれている装置識別子のうち、対象識別子の次に多くのデータ受信装置200Bによって受信応答の装置識別子として設定された装置識別子を第2対象識別子として選択する。その後、受信応答部214Cは、同様に、第2対象識別子に対応するブロックの合計数Rnと、第2対象識別子に対応する受信電力とを確認する。受信応答部214Cは、確認した合計数Rnが閾値Rth2よりも少ない場合、又は、確認した受信電力の平均値、中央値、若しくは最小値が閾値Pthよりも小さい場合に、第2対象識別子を対象識別子として上述の処理を実行する。
なお、受信応答部214Cは、宛先情報236に保存されている各宛先識別子に対応するデータ受信装置200Cに対応するブロックの合計数及び受信電力の全てが、所定の閾値よりも小さい場合、対象受信装置が受信したブロックの合計数が最も多いデータ受信装置200Cに対応する装置識別子を受信応答の宛先識別子に設定する。
受信応答の送信後、データ受信装置200CはステップS601に戻る。なお、本実施の形態において、対象識別子は、対応するブロックに対応する受信電力が閾値Pth以上である送信元識別子の中から選択された装置識別子である。
【0085】
***実施の形態3の効果の説明***
本実施の形態では、上述のように、複数のデータ受信装置200Cにおいて、受信応答の宛先識別子に、より多くのデータ受信装置200Cによって受信応答の宛先識別子として設定された装置識別子に対応するデータ受信装置200Cの装置識別子であって、各データ受信装置200Cにおけるブロックの受信電力の相対的な高さを考慮して選択された装置識別子を設定する。そのため、本実施の形態によれば、ブロックを送信するデータ受信装置200Cを集約しつつ、安定的な通信により配信効率を向上させることができる。
【0086】
実施の形態4.
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
【0087】
***構成の説明***
本実施の形態に係るコンテンツ配信システム90の構成は、実施の形態1から3いずれかに示す構成と同様である。
本実施の形態では、復号失敗時における受信応答のフォーマットが実施の形態1から3と異なる。
【0088】
図16は、本実施の形態に係るデータ受信装置200が送信する復号失敗時における受信応答のフォーマットである。本実施の形態では、復号失敗時において、実施の形態1から3における受信応答のフォーマットに加え、受信応答の受信ブロックビットマップ部分を受信ブロック数に置き換えたフォーマットを使用する。
なお、復号成功時における受信応答のフォーマットは実施の形態1から3における受信応答のフォーマットと同様である。
【0089】
本実施の形態では、データ受信装置200が新たな符号化番号に対応するブロックを受信した場合、かつ、受信したブロックに対応する復号処理に失敗した場合に、受信したブロックに対応する符号化番号に対して、
図16に示す復号失敗時における受信応答のフォーマットが使用される。
【0090】
本実施の形態において、対象配信装置の送信部221は、コンテンツデータである第2対象コンテンツデータに対応するブロックのうち最後に送信されるブロックを対象配信装置が受信するまで、又は新規ブロックを対象配信装置が受信するまでの間、第2対象コンテンツデータに対応する受信応答として、送信元における各ブロックの受信成否と、送信元が受信した各ブロックの識別子との代わりに、対象配信装置が受信したブロックの合計数を示す受信応答を送信する。新規ブロックは、受信済ブロックが生成された時点とは異なる時点において生成されたブロックであって、第2対象コンテンツデータに対して消失訂正符号化を実行することにより生成されたブロックである。受信済ブロックは、第2対象コンテンツデータに対応するブロックであって、対象配信装置が既に受信したブロックである。新規ブロックは、具体例として、受信済ブロックが示す符号化番号とは異なる符号化番号を示すブロックである。
【0091】
***動作の説明***
本実施の形態では、ステップS605において、受信したブロックのブロック番号を確認し、確認したブロック番号がデータ送信装置100から最後に送信されるブロック番号である場合に、受信したブロックに対応する符号化番号について、実施の形態1から3における受信応答のフォーマットを使用する。
また、受信したブロックの符号化番号よりも前の番号に対応する配信データ131に対する復号処理に成功していない場合、受信した符号化番号よりも前の番号に対応する各ブロックに対して、実施の形態1から3における受信応答のフォーマットを使用する。
上記の場合以外において、復号失敗時において
図16に示す受信応答のフォーマットが使用される。
【0092】
***実施の形態4の効果の説明***
本実施の形態では、上述のように、データ送信装置100がある符号化番号に対応する配信データ131に対応する全てのブロックを送信し終わるまで、復号失敗時における受信応答のフォーマットを変更する。そのため、本実施の形態によれば、受信応答の通信量を削減し、配信効率を向上させることができる。
【0093】
実施の形態5.
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
【0094】
***構成の説明***
本実施の形態に係るコンテンツ配信システム90の構成は、実施の形態1から4のいずれかに示すコンテンツ配信システム90の構成と同様である。
本実施の形態では、追加送信判定部が送信する符号化ブロック132及び冗長データブロック133の選択方法が実施の形態1から4と異なる。具体的には、追加送信判定部は、K1個の符号化ブロック132とM個の冗長データブロック133とのうち未送信であるブロックの中からランダムにK2-Rmin個のブロックを選択する。
【0095】
なお、符号化ブロック132と、冗長データブロック133と、復号成功時における受信応答と、復号失敗時における受信応答との各々のフォーマットは、実施の形態1から4に示す各フォーマットと同様である。
【0096】
***動作の説明***
図17は、データ送信装置100による配信データ処理の一例を示すフローチャートである。なお、データ受信装置200による次ホップのデータ受信装置200への配信データ送信処理は当該配信データ処理と同様である。即ち、追加送信判定部212の動作は追加送信判定部112の動作と同様である。
図4に対する
図17の差異は、ステップS308B及びステップS310Bである。
【0097】
(ステップS308B)
ステップS308BはステップS308と同様である。ただし、追加送信判定部112は、K2-Rmin個のブロックを選択する際、K2-Rmin個のブロックをランダムに選択する。
【0098】
(ステップS310B)
ステップS310BはステップS310と同様である。ただし、追加送信判定部112は、K2-Rn-T個のブロックを選択する際、K2-Rn-T個のブロックをランダムに選択する。
【0099】
ステップS308B及びステップS310Bにおけるランダムなブロックの選択において、ハードウェア乱数生成器を用いてデータ送信装置100及びデータ受信装置200毎に互いに異なる乱数を使用してもよく、データ送信装置100及び各データ受信装置200の装置識別子をシードとして生成した乱数を使用してもよい。
【0100】
***実施の形態5の効果の説明***
本実施の形態では、上述のように、データ送信装置100及び複数のデータ受信装置200の各々は、復号失敗の受信応答を受信した後に追加で送信するブロックをランダムに選択する。そのため、データ送信装置100又は複数のデータ受信装置200から追加送信されたブロックを受信するデータ受信装置200が同一のブロックを受信する確率が減る。従って、本実施の形態によれば、復号に成功する確率を向上させることができる。
【0101】
実施の形態6.
以下、主に前述した実施の形態と異なる点について、図面を参照しながら説明する。
【0102】
***構成の説明***
図18は、本実施の形態に係るデータ送信装置100Bの構成例を示している。データ送信装置100Bにおいて、実施の形態1から3のいずれかに示すデータ送信装置100の構成と比較して、記憶部130から冗長データブロック133が除外され、プロセッサ11に初回送信処理部119が追加されている。また、データ送信装置100Bは、符号化処理部111の代わりに符号化処理部111Bを備え、追加送信判定部112の代わりに追加送信判定部112Bを備える。
【0103】
符号化処理部111Bは、対象コンテンツデータをK1個の符号化ブロック132に分割する。また、符号化処理部111Bは、Fountain Code、特にLT(Luby Transform) Codeを用いて複数の符号化ブロック132を符号化することにより追加送信データを符号化する。
対象配信装置の符号化処理部111Bは、対象配信装置が受信した各受信応答が示す宛先識別子が対象配信装置の装置識別子と同一である場合に、対象配信装置が受信した各受信応答が示す受信に失敗したブロックの中から選択された複数のブロックをFountain Codeにより符号化し、符号化した複数のブロックを示す追加送信データを作成する。
【0104】
追加送信判定部112Bは、追加送信データとして、符号化処理部111Bによって生成された追加送信データを送信する。
追加送信判定部112Bは、対象配信装置が受信した各受信応答が示す宛先識別子が対象配信装置の装置識別子と同一である場合に、対象配信装置が受信した各受信応答が示す各ブロックの受信成否に基づいて、対象配信装置が受信した各受信応答に対応するコンテンツ配信装置のうち1つ以上のブロックの受信に失敗したコンテンツ配信装置のいずれにおいても作成された追加送信データを復号することができるように、符号化処理部111Bによって符号化される複数のブロックとして、対象配信装置が受信した各受信応答が示す受信に失敗したブロックの中から複数のブロックを選択する。
【0105】
初回送信処理部119は、符号化ブロック132の初回の送信を実行する。
【0106】
本実施の形態に係る送信部121は、K1個の符号化ブロック132を、送信元識別子とともに無線信号で送信する。対象配信装置の送信部121は、作成された追加送信データを無線信号で送信する。
【0107】
対象配信装置の受信部122は、他のコンテンツ配信装置から無線信号で追加送信データを受信する。
【0108】
図19は、本実施の形態に係るデータ受信装置200Dの構成例を示している。データ受信装置200Dにおいて、実施の形態1から3のいずれかに示すデータ受信装置の構成と比較して、記憶部230から冗長データブロック133が除外され、プロセッサ21に初回送信処理部219が追加されている。また、データ受信装置200Dは、符号化処理部として符号化処理部211Dを備え、追加送信判定部として追加送信判定部212Dを備え、復号処理部として復号処理部213Dを備える。
なお、
図19は実施の形態1に対する変更点を示した図であるが、実施の形態2及び3に対して同様の変更が適用されてもよい。
【0109】
符号化処理部211Dは符号化処理部111Bと同様である。
追加送信判定部212Dは追加送信判定部112Bと同様である。
初回送信処理部219は初回送信処理部119と同様である。
【0110】
復号処理部213Dは、周辺のデータ受信装置200Dから受信した追加送信データをFountain Codeを用いて復号する。即ち、復号処理部213Dは、他のコンテンツ配信装置から受信した追加送信データが示す符号化された複数のブロックをFountain Codeにより復号することによって、受信した追加送信データに対応する複数のブロックを復元する。
【0111】
***動作の説明***
図20は、本実施の形態に係るデータ送信装置100Bによる配信データ処理の一例を示すフローチャートである。なお、データ受信装置200Dによる次ホップのデータ受信装置200Dへの配信データ送信処理は、当該配信データ処理と同様である。
本実施の形態では、実施の形態1から3とは異なり、消失訂正符号として、Fountain Code、特にLT Codeを用いる。以下ではデータ送信装置100Bの処理を説明するが、データ受信装置200Dも同様の処理を実行する。本実施の形態では、実施の形態1から3と比較して、配信データの送信処理、及び追加送信データの送信処理が異なるが、その他の処理は同様である。
【0112】
(ステップS301B)
符号化処理部111Bは、配信データ131をK1個の符号化ブロック132に分割する。なお、各符号化ブロック132は単に配信データ131を分割することにより生成されたブロックであり、Fountain Codeによる符号化が行われていないブロックである。
【0113】
(ステップS302B)
符号化処理部111Bは、ステップS301Bにおいて生成されたK1個の符号化ブロック132を記憶部130に保存する。
【0114】
(ステップS303B)
初回送信処理部119は、符号化ブロック132を全て無線信号として送信する。送信されるデータのフォーマットは、
図5に示す符号化ブロック132の送信フォーマットと同様である。
【0115】
(ステップS304)
本ステップは、実施の形態1から3に係るステップS304と同様である。ただし、追加送信判定部112Bは、データ受信装置200Dが送信したデータ送信装置100B宛ての受信応答を受信部122から取得する。受信応答のフォーマットは実施の形態1から3に示すフォーマットと同様である。
【0116】
(ステップS305)
本ステップは、実施の形態1から3に係るステップS305と同様である。ただし、受信部122がデータ受信装置200Dから受信した受信応答の全てが復号成功を示す場合、データ送信装置100Bは配信データ131の送信を終了する。なお、配信していない配信データ131が残っている場合、残っている配信データ131についてデータ送信装置100Bは本フローチャートの処理を繰り返し実行する。
受信部122がデータ受信装置200Dから受信した受信応答のうち1つ以上の受信応答が復号失敗を示す場合、データ送信装置100BはステップS306Bに進む。なお、ステップS306B以降の処理は、復号失敗を示す受信応答に対応するデータ受信装置200Dを対象とした処理である。
【0117】
(ステップS306B)
追加送信判定部112Bは、復号失敗を示す受信応答に対応する各データ受信装置200Dが未受信である符号化ブロック132の番号を取得する。
【0118】
(ステップS921)
まず、追加送信判定部112Bは、復号失敗を示す受信応答に対応するいずれかのデータ受信装置200Dが未受信である符号化ブロック132を1つ追加送信データ用に選択する。その後、追加送信判定部112Bは、選択した符号化ブロック132を未受信である1つ以上のデータ受信装置200D全てを選択済装置リストに含める。選択済装置リストは、本ステップの開始時点において空リストである。
次に、追加送信判定部112Bは追加選択処理を実行する。追加選択処理において、まず、追加送信判定部112Bは、選択済装置リストに含まれているデータ受信装置200D以外のあるデータ受信装置200Dが未受信であり、かつ、選択済装置リストに含まれている全てのデータ受信装置200Dが受信済みである符号化ブロック132が存在する場合に、当該符号化ブロック132を1つ追加送信データ用に選択する。追加選択処理において、次に、選択した符号化ブロック132を未受信である1つ以上のデータ受信装置200D全てを選択済装置リストに含める。追加選択処理において選択された符号化ブロック132は、ステップS923におけるFountain Codeによる符号化に用いる符号化ブロックに当たる。
ここで、符号化処理部111Bは、ステップS923において、最初に選んだ符号化ブロック132のデータ列に対してFountain Code、特にLT Codeを用いることにより、選択された複数の符号化ブロック132を符号化する。なお、Fountain Code、特にLT Codeによる符号化処理は、複数のデータ列をXOR演算したものである。そのため、データ列の長さは符号化処理の前後において変わらない。
【0119】
その後、追加送信判定部112Bは、追加選択処理を、追加選択処理において選択することができる符号化ブロック132がなくなるまで繰り返し実行する。
なお、ステップS921では、既にステップS921及びステップS922の少なくともいずれかにおいて過去に追加送信データ用に選択された符号化ブロック132は選択の候補から除外される。本ステップにおいて、1個以上K1個以下の符号化ブロック132が選択される。
【0120】
図21は、各データ受信装置200Dにおける符号化ブロック132の受信状況と、ステップS921において選択された追加送信データ用の各符号化ブロック132の番号と、ステップS922において選択された追加送信データ用の各符号化ブロック132の番号との一例を示している。
図21の(a)において、「1」は受信を示し、「0」は未受信を示す。
図21の(b)及び(c)において、「1」は追加送信データに含む符号化ブロック132を示し、「0」は追加送信データに含まない符号化ブロック132を示す。本例において、符号化ブロック132の数は7であり、データ受信装置200Dの数は4である。また、ステップS921からステップS923の処理が3回繰り返されたことにより、追加送信データが3つ作成された。
【0121】
図21の(b)に示す例では、ステップS921において最初に作成された追加送信データ#1に関して、まず、追加送信判定部112Bは、復号失敗を示す受信応答に対応するいずれかのデータ受信装置200Dが未受信である符号化ブロック132として、符号化ブロック番号が1である符号化ブロック132を追加送信データ用に選択する。その後、追加送信判定部112Bは、端末識別子が3であるデータ受信装置200Dのみが当該符号化ブロック132を未受信であるため、当該データ受信装置200Dのみを選択済装置リストに含める。
次に、追加送信判定部112Bは追加選択処理を実行する。具体的には、追加送信判定部112Bは、選択済装置リストに含まれているデータ受信装置200D以外のあるデータ受信装置200Dが未受信であり、かつ、選択済装置リストに含まれている全てのデータ受信装置200Dが受信済みである符号化ブロック132として、符号化ブロック番号が2である符号化ブロック132を追加送信データ用に選択する。その後、追加送信判定部112Bは、端末識別子が1であるデータ受信装置200Dのみが当該符号化ブロック132を未受信であるため、当該データ受信装置200Dのみを選択済装置リストに含める。
次に、追加送信判定部112Bは追加選択処理を実行する。具体的には、追加送信判定部112Bは、選択済装置リストに含まれているデータ受信装置200D以外のあるデータ受信装置200Dが未受信であり、かつ、選択済装置リストに含まれている全てのデータ受信装置200Dが受信済みである符号化ブロック132として、符号化ブロック番号が3である符号化ブロック132を追加送信データ用に選択する。その後、追加送信判定部112Bは、端末識別子が2及び3であるデータ受信装置200Dが当該符号化ブロック132を未受信であるため、これら2つのデータ受信装置200Dを選択済装置リストに含める。
次に、追加送信判定部112Bは、追加選択処理において選択することができる符号化ブロック132がないため、追加選択処理を終了する。
その結果、追加送信データ#1について、符号化ブロック番号1、2、及び3の各々に対応する符号化ブロック132が追加送信データ用の符号化ブロック132として選択された。
追加送信判定部112Bは、追加送信データ#2及び追加送信データ#3の各々が示す各符号化ブロック132を同様に選択する。ここで、
図21の(b)の追加送信データ#2に関して、ステップS921において、過去に符号化ブロック番号1、2、及び3の各々に対応する符号化ブロック132が選択されたため、これら3つの符号化ブロック132は選択されない。
なお、本例では、追加送信判定部112Bが、符号化ブロック番号に関して1から昇順に、未受信であるデータ受信装置200Dが存在するか否かを判定し、追加送信データに含む符号化ブロック132を選択する。しかしながら、判定の開始位置はランダムな位置であってもよく、判定順序はランダムな順序であってもよい。
【0122】
(ステップS922)
追加送信判定部112Bは、ブロック追加処理を実行することにより、ステップS921において選択した符号化ブロック132に対応する追加送信データに関する復号可能ブロックを、ステップS923におけるFountain Codeによる符号化に用いる符号化ブロック132として適宜選択する。ある追加送信データ用に選択された符号化ブロック132に対して追加である符号化ブロック132を符号化しても、全てのデータ受信装置200Dにおいて追加で符号化された追加送信データを復号することができる場合に、当該ある符号化ブロック132は当該ある追加送信データに関する復号可能ブロックである。なお、復号失敗を示す受信応答に対応する各データ受信装置200Dは、各追加送信データ(追加で符号化された追加送信データを含む)が示す符号化ブロック132のうち、最大で1つの符号化ブロック132を未受信である。また、ある追加送信データに対して、当該ある追加送信データが示す符号化ブロック132を未受信であるデータ受信装置200Dが受信済みである符号化ブロック132を追加で符号化しても、当該データ受信装置200Dに関して当該ある追加送信データは復号可能である。
ブロック追加処理において、まず、追加送信判定部112Bは、選択ブロック群に含まれているいずれか1つの符号化ブロック132を未受信である全てのデータ受信装置200D(各データ受信装置200Dが未受信である符号化ブロック132は同一でなくてもよい)がある符号化ブロック132を受信済みであり、当該全てのデータ受信装置200D以外の少なくとも1つのデータ受信装置200Dが当該ある符号化ブロック132を未受信であり、かつ、選択ブロック群に対応する追加送信データに関して追加で当該ある符号化ブロック132を符号化しても全てのデータ受信装置200Dにおいて追加で符号化された追加送信データを復号可能である場合に、当該ある符号化ブロック132を、選択ブロック群に対応する追加送信データに関する追加送信データ用に選択する。この場合において、当該ある符号化ブロック132は、選択ブロック群に対応する追加送信データに関する復号可能ブロックである。選択ブロック群は、本ステップの開始時点において、ステップS921において選択した1つ以上の符号化ブロック132から成る。また、追加送信判定部112Bは、選択した符号化ブロック132を選択ブロック群に追加する。
なお、ステップS922では、既にステップS921及びステップS922の少なくともいずれかにおいて過去に追加送信データ用に選択された符号化ブロック132についても選択の候補とされる。また、追加送信データに対して符号化ブロック132を追加することができる場合、符号化ブロック132を追加した方が効率が良いために符号化ブロック132が追加される。
【0123】
図21の(c)では、ステップS922において選択された符号化ブロック132が下線により示されている。
図21の(c)に示す例では、追加送信データ#1及び#2に関して、ステップS922において追加で選択された符号化ブロック132はない。一方、追加送信データ#3に関して、符号化ブロック番号が1,2、及び6の各々である符号化ブロック132がさらに追加送信データ用に選択されている。
図21の(c)の追加送信データ#3に関するブロック追加処理を説明する。ここで、端末識別子が4であるデータ受信装置200Dを対象装置とし、符号化ブロック番号が2である符号化ブロック132を対象ブロックとする。ステップS922の開始時点において、選択ブロック群には符号化ブロック番号が7である符号化ブロック132のみが含まれている。このとき、対象装置のみが、選択ブロック群に含まれている符号化ブロック132を未受信である。一方、対象装置は対象ブロックを受信済みである。ここで、対象装置以外の少なくとも1つのデータ受信装置200Dとして、端末識別子が1であるデータ受信装置200Dのみが対象ブロックを未受信である。また、選択ブロック群に対応する追加送信データ#3に関して追加で対象ブロックを符号化しても全てのデータ受信装置200Dにおいて追加で符号化された追加送信データを復号可能である。そのため、追加送信判定部112Bは、対象ブロックを、選択ブロック群に対応する追加送信データ#3に関する追加送信データ用に選択する。また、追加送信判定部112Bは対象ブロックを選択ブロック群に追加する。
追加送信判定部112Bは、ブロック追加処理を同様にさらに2回実行することにより、符号化ブロック番号が1及び6の各々に対応する符号化ブロック132を追加送信データ用に選択する。
なお、ステップS922の処理が実行されない場合、追加送信データ#3には単に符号化ブロック番号が7であるデータ列が含まれるだけである。そのため、ステップS922が実行された場合と比べ、追加送信データ#3に含まれる情報量は少ない。
【0124】
(ステップS923)
符号化処理部211Dは、ステップS921及びステップS922において選択された複数の符号化ブロック132をFountain Code、特にLT Codeにより符号化し、符号化した複数の符号化ブロック132を示すデータ列を含む追加送信データを生成する。
【0125】
図22は、追加送信データのフォーマットの一例を示している。追加送信データには複数の符号化ブロック132を示す情報が含まれる。そのため、追加送信データには、初回送信時のデータとは異なり、符号化ブロック数Nと、N個の符号化ブロック番号とを示す情報が含まれる。
【0126】
(ステップS924)
追加送信判定部112Bは、ステップS923において作成された追加送信データを無線信号として送信部121からアンテナ14を介して送信する。
なお、ステップS921からステップS924の処理は、いずれかのデータ受信装置200Dが未受信である符号化ブロック132全ての各々がいずれかの追加送信データに含まれて送信されるまで繰り返される。
【0127】
(ステップS925)
追加送信判定部112Bは、ステップS305において復号失敗を示す受信応答に対応する各データ受信装置200Dが未受信である符号化ブロック132を全て送信したか否かを判定する。送信していない符号化ブロック132が存在する場合、データ送信装置100BはステップS921からステップS924を再度実施する。送信されていない符号化ブロック132が存在しない場合、つまり全ての符号化ブロック132の各々がいずれかの追加送信データとして送信された場合、データ送信装置100Bは、ステップS304に戻り、周辺のデータ受信装置200Dからの受信応答を受信する。
【0128】
***実施の形態6の効果の説明***
本実施の形態では、上述のように、追加送信データに関する符号化においてFountain Code、特にLT Codeを用いることにより、XOR演算のみという比較的軽量な処理により符号化及び復号が可能となる。また、本実施の形態によれば、実施の形態1から3と同様に配信効率を向上させることができる。
【0129】
***他の実施の形態***
前述した各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
また、実施の形態は、実施の形態1から6で示したものに限定されるものではなく、必要に応じて種々の変更が可能である。フローチャート等を用いて説明した手順は適宜変更されてもよい。
【符号の説明】
【0130】
11,21 プロセッサ、12,22 無線モジュール、13,23 記憶装置、14,24 アンテナ、18 処理回路、90 コンテンツ配信システム、100,100B データ送信装置、111,111B,211,211D 符号化処理部、112,112B,212,212D 追加送信判定部、119,219 初回送信処理部、121,221 送信部、122,222 受信部、130,230 記憶部、131 配信データ、132 符号化ブロック、133 冗長データブロック、134 自端末ホップ数、200,200B,200C,200D データ受信装置、213,213D 復号処理部、214,214B,214C 受信応答部、235 送信元情報、236 宛先情報、237 受信電力情報。