JPWO2016051451A1 - 情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム - Google Patents
情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム Download PDFInfo
- Publication number
- JPWO2016051451A1 JPWO2016051451A1 JP2016551131A JP2016551131A JPWO2016051451A1 JP WO2016051451 A1 JPWO2016051451 A1 JP WO2016051451A1 JP 2016551131 A JP2016551131 A JP 2016551131A JP 2016551131 A JP2016551131 A JP 2016551131A JP WO2016051451 A1 JPWO2016051451 A1 JP WO2016051451A1
- Authority
- JP
- Japan
- Prior art keywords
- packet
- encoded data
- information processing
- data blocks
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/6306—Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
- H04L1/1877—Buffer management for semi-reliable protocols, e.g. for less sensitive applications like streaming video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
誤り訂正符号を用いる場合の転送データのサイズが小さい通信における転送効率を向上させる。情報処理装置は、誤り訂正符号により送信データから作成される符号化データブロックのサイズが所定しきい値より大きく且つパケットの最大長よりも小さい場合には、1つのパケットに1つの符号化データブロックを格納し、符号化データブロックのサイズが所定しきい値以下である場合には、1つのパケットに複数の符号化データブロックを格納するパケット生成部と、パケット生成部によって生成されたパケットを送信する送信部と、を含む。
Description
本発明は、情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システムに関する。
図1は、遠距離データ転送におけるパケットロス発生時の処理の一例を示す図である。遠距離データ転送では、拠点A、B間の距離が遠いため、通信遅延が発生し、受信側装置からの確認応答が送信側装置に届くまでの時間が長くなる。通信経路でパケットロスが発生した場合には、受信側装置が、パケットが届かなかったことを検出してから送信側装置に再送要求を送信し、送信側装置は、該再送要求を受信してデータを再送する。そのため、パケットロスが発生した場合には、データが受信側装置に届くまでにさらに時間がかかる。
通信経路でパケットロスが発生した場合の遅延を軽減する方法の一つに、誤り訂正符号技術がある。誤り訂正符号は、送信データに対する冗長データを用いることで、パケットロスが発生しても、受信側装置で受信されたデータから元のデータを復元可能にする技術である。誤り訂正符号には、例えば、パリティ符号、Reed−Solomon符号、RPS(Random Parity Stream)符号、Raptor符号等がある。
例えば、図1では、パリティ符号が用いられる場合の例が示されている。送信側装置は、パケット1とパケット2とを足し合わせて冗長データであるパケットPを生成し、パケット1、パケット2、パケットPを送信する。通信経路上でパケット2が損失してしまった場合には、受信側装置は、パケット1とパケットPとからパケット2を復元する。これによって、パケット2の再送要求及び再送の処理が省かれ、パケットロスの際の遅延を軽減することができる。
しかしながら、誤り訂正符号を用いることによって、送信効率が悪くなる場合があった。例えば、パケットのサイズが小さい通信や、小容量ファイルの転送の場合である。
図2は、RPS符号の処理の一例を示す図である。また、図2では、入力データのサイズが大きい場合と小さい場合との例が示されている。図2では、符号長N=4とする。
RPS符号では、まず、例えば、入力データA、B、Cが1つに合わされてから符号長N(=4)個に分割され、サブデータブロック1、2、3、4が作成される。次に、サブデータブロック1、2、3、4間で排他的論理和(XOR)演算が行われ、XOR演算結果である符号化データブロックがK(K>N)個作成される。K個の符号化データブロックが冗長データである。K個の符号化データブロックのそれぞれに、XOR演算のデータブロックの組み合わせの情報がヘッダとして付与され、送信される。
上述の処理は、送信データ量の大小にかかわりなく行われる。例えば、図2に示されるように、入力データがサイズの小さいデータAの場合でも、データAが更に小さいサブデータブロック1、2、3、4に4分割され、これらのサブデータブロック1〜4からK個の符号化データブロックが作成される。RPS符号の場合、排他的論理和演算で符号化データブロックが作成されるので、符号化データブロックのサイズは、サブデータブロックのサイズと同じである。そのため、1つのパケットにおいて、ヘッダ部分の割合が大きく、符号化データブロックを格納するペイロード部の割合が小さい。送信データのサイズが小さい通信は、例えば、リモートデスクトップの操作情報の転送や、サイズの小さいファイルの転送による通信がある。
例えば、IPパケットは最大1500バイトと最大長が決まっている。RPS符号において、送信データ量が多い場合には、ペイロード部を最大限に使用してデータを送信することができる。しかしながら、送信データ量が少ない場合には、ペイロード部の割合が小さくなり、同じ数のパケットを送信しても、1つのパケットに含まれるデータ量が小さいので、単位時間に送信されるデータ量は少なくなる。そのため、転送効率が悪く、データの転送速度が最大値まで出せなかったり、遅延が大きくなったりすることがある。このような問題は、RPS符号に限らず、パリティ符号、Reed−Solomon符号、Raptor符号等のN個の送信データからK個の符号化データブロックが作成されるその他の誤り訂正符号でも起こり得る。
本発明の一態様は、誤り訂正符号が用いられる場合の転送データのサイズが小さい通信における転送効率を向上可能な情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システムを提供することを目的とする。
本発明の態様の一つは、誤り訂正符号により送信データから作成される複数の符号化データブロックのサイズに応じて、1つのパケットに符号化データブロックを複数格納するパケット生成部と、パケット生成部によって生成されたパケットを送信する送信部と、を含む情報処理装置である。
開示の情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システムによれば、誤り訂正符号が用いられる場合の転送データのサイズが小さい通信における転送効率を向上させることができる。
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
<第1実施形態>
図3は、第1実施形態における情報処理装置の処理の一例を示す図である。第1実施形態では、情報処理装置は、誤り訂正符号によって送信データから作成した符号化データブロックのサイズに応じて、複数の符号化データブロックを1つのパケット内にまとめて送信する。これによって、転送データのサイズが小さい通信においても、パケットのペイロード部を最大限に使用することができ、転送効率を向上させることができる。
図3は、第1実施形態における情報処理装置の処理の一例を示す図である。第1実施形態では、情報処理装置は、誤り訂正符号によって送信データから作成した符号化データブロックのサイズに応じて、複数の符号化データブロックを1つのパケット内にまとめて送信する。これによって、転送データのサイズが小さい通信においても、パケットのペイロード部を最大限に使用することができ、転送効率を向上させることができる。
符号化データブロックとは、送信データに対して誤り訂正符号の処理が施されて作成されるデータブロックである。符号化データブロックは、冗長符号化データブロックともいう。また、データの消失の復元に特化した誤り訂正符号は、消失訂正符号ともいう。
第1実施形態では、情報処理装置は、1つの送信パケットに含める符号化データブロックの数、送信パケットの数等も決定する。なお、誤り訂正符号は、特定のものに限定されないが、第1実施形態では、RPS符号を用いる場合を例として説明する。
<装置構成>
図4は、情報処理装置100のハードウェア構成の一例である。情報処理装置100は、例えば、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末等の端末装置である。また、情報処理装置100は、ネットワークの境界に位置するサーバ等であってもよい。
図4は、情報処理装置100のハードウェア構成の一例である。情報処理装置100は、例えば、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末等の端末装置である。また、情報処理装置100は、ネットワークの境界に位置するサーバ等であってもよい。
情報処理装置100は、CPU(Central Processing Unit)101、主記憶装置102、入力装置103、出力装置104、補助記憶装置105、ネットワークインタフェース107を備える。また、これらはバス109により互いに接続されている。
入力装置103は、例えば、操作ボタン、タッチパネル、キーボード、キーパッド等である。入力装置103から入力されたデータは、CPU 101に出力される。入力装置は、例えば、マイクロフォンのような音声入力装置を含んでもよい。
補助記憶装置105は、様々なプログラムや、各プログラムの実行に際してCPU 101が使用するデータを格納する。補助記憶装置105は、例えば、EPROM(Erasable Programmable ROM)、フラッシュメモリ、又はハードディスクドライブ(Hard Disk Drive)等の不揮発性のメモリである。補助記憶装置105は、例えば、オペレーティングシステム(OS)、誤り訂正符号処理プログラム、その他様々なアプリケーションプログラムを保持する。誤り訂正符号処理プログラムは、アプリケーションプログラムから送信されるデータに対して誤り訂正符号の処理を行うためのプログラムである。誤り訂正符号処理プログラムは、「情報処理プログラム」の一例である。
主記憶装置102は、CPU 101に、補助記憶装置105に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする記憶装置である。主記憶装置102は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)のような半導体メモリを含む。
CPU 101は、補助記憶装置105に保持されたOSや様々なアプリケーションプログラムを主記憶装置102にロードして実行することによって、様々な処理を実行する。CPU 101は、1つに限られず、複数備えられてもよい。
ネットワークインタフェース107は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース107は、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。ネットワークインタフェース107は、例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)、Wi−Fi(Wireless Fidelity)、WiMAX(Worldwide Interoperability for Microwave Access)、LTE(Long Term Evolution)、3GPP(第三世代携帯電話システム)等の無線信号の処理回路等である。ネットワークインタフェース107で受信されたデータ等は、CPU 101に出力される。
出力装置104は、CPU 101の処理の結果を出力する。出力装置104は、スピーカ等の音声出力装置、ディスプレイ、プリンタを含む。
なお、図4に示される情報処理装置100のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、情報処理装置100は、可搬記録媒体駆動装置を備え、可搬記録媒体に記録されたプログラムを実行してもよい。可搬記録媒体は、例えば、SDカード、miniSDカード、microSDカード、USB(Universal Serial Bus)フラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、Blu−ray(登録商標) Disc、又はフラッシュメモリカードのような記録媒体である。
また、情報処理装置100がサーバである場合には、例えば、情報処理装置100は、入力装置103、出力装置104を備えていなくてもよい。
図5は、情報処理装置100の機能構成の一例を示す図である。図5に示される情報処理装置100の機能構成は、情報処理装置100のCPU101が誤り訂正符号処理プログラムの実行によって達成される機能構成である。誤り訂正符号処理プログラムは、データの送信処理に係るモジュールと受信処理に係るモジュールとを有する。したがって、図5では、情報処理装置100の送信機能と受信機能とを別々に説明する。以下、情報処理装置100の送信機能を送信側装置1として、受信機能を受信側装置2として説明する。
誤り訂正符号処理プログラムは、第1実施形態では、TCP/IP参照モデルのアプリケーション層のプログラムである。ただし、これに限られず、誤り訂正符号処理プログラムは、例えば、TCP/IP参照モデルのトランスポート層のプログラムとして作成されてもよい。また、第1実施形態では、誤り訂正符号処理プログラムは、トランスポート層のプログラムとして、UDP(User Datagram Protocol)を用いる。ただし、これに限られず、誤り訂正符号処理プログラムは、トランスポート層のプログラムとして、TCP(Transmission Control Protocol)を用いてもよい。
送信側装置1は、機能構成として、判定処理部11、符号化処理部12、送信パケット生成部13、送信処理部14、再送要求処理部15を含む。これらの機能構成は、情報処理装置100のCPU 101が補助記憶装置105に格納されている誤り訂正符号処理プログラムの送信処理に係るモジュールを実行することによって達成される機能構成である。なお、これらの機能構成は、FPGA(field-programmable gate array)等のハードウェア回路によって達成されてもよい。
判定処理部11は、アプリケーションプログラムからのデータ入力を、例えば、所定の周期で受け付け、1周期の間に入力されたデータ量を処理単位とする。1周期の間にアプリケーションプログラムからデータ入力がない場合には、データ入力がないことを示すデータが入力データとなる。以降、データ入力の受け付けの周期の1周期の間に入力されたデータを入力データと称する。また、入力データには、シーケンス番号が付与される。
また、判定処理部11は、受信側装置2からパケットロス率を受信する。判定処理部11は、送信データ量とパケットロス率とに基づいて、誤り訂正符号に係るパラメータを決定する。誤り訂正符号に係るパラメータには、例えば、1つの送信パケットに含まれる符号化データブロックの数、送信パケット数、符号化データブロックの数(K)等がある。判定処理部11の誤り訂正符号に係るパラメータの決定の処理の詳細については、後述される。判定処理部11は、「判定部」の一例である。
符号化処理部12は、判定処理部11によって決定されたパラメータに従って、送信データに対して誤り訂正符号の処理を行い、符号化データブロックを作成する。第1実施形態では、符号化処理部12は、RPS符号の処理を行う。作成された符号化データブロックは、送信パケット生成部13に出力される。
送信パケット生成部13は、符号化処理部12から符号化データブロックの入力を受け、判定処理部11によって決定された数の符号化データブロックを1つに集約してデータ部を生成し、誤り訂正符号のヘッダを付与し、送信パケットを生成する。誤り訂正符号のヘッダの詳細については、後述する。送信パケット生成部13は、「パケット生成部」の一例である。
送信処理部14は、送信パケット生成部13によって作成された送信パケットに、UDPヘッダ及びIPヘッダを付与し、ネットワークインタフェース107を通じてパケットを送信する。なお、誤り訂正符号処理プログラムがTCPを用いる場合には、UDPヘッダの代わりにTCPヘッダが付与される。送信処理部14は、「送信部」の一例である。
再送要求処理部15は、受信側装置2から再送要求を受信する。再送要求には、例えば、再送要求対象の入力データのシーケンス番号が含まれている。再送要求を受信すると、再送要求処理部15は、符号化データブロックの再送を符号化処理部12に指示する。再送の指示を受けると、符号化処理部12によって該当の入力データから符号化データブロックが作成され、送信パケット生成部13によって送信パケットが作成され、送信処理部14によって該送信パケットが受信側装置2へ送信される。
次に、受信側装置2は、機能構成として、受信処理部21、受信パケット分割部22、復号処理部23、再送要求処理部24、ロス率計測部25を含む。これらの機能構成は、情報処理装置100のCPU 101が補助記憶装置105に格納されている誤り訂正符号処理プログラムの受信処理に係るモジュールを実行することによって達成される機能構成である。なお、これらの機能構成は、FPGA等のハードウェア回路によって達成されてもよい。
受信処理部21は、送信側装置1から符号化データブロックを含むパケットを受信する。受信処理部21は、受信パケットからIPヘッダ及びUDPヘッダを取り除き、IPヘッダ及びUDPヘッダが取り除かれた受信パケットを受信パケット分割部22に出力する。また、受信処理部21は、受信パケットの情報をロス率計測部25に出力する。
受信パケット分割部22は、受信処理部21からIPヘッダ及びUDPヘッダが取り除かれた受信パケットの入力を受ける。すなわち、受信パケット分割部22に入力される受信パケットは、RPS符号のヘッダとデータ部とを含む。受信パケット分割部22は、RPS符号のヘッダ内の情報に基づいて、データ部から符号化データブロックを取り出す。取り出された符号化データブロックは、復号処理部23に出力される。
復号処理部23は、受信パケット分割部22から入力される符号化データブロックに対して、RPS符号の復号処理を行い、オリジナルデータを取得し、オリジナルデータを宛先のアプリケーションに出力する。符号化データブロックの復号に失敗した場合には、復号処理部23は、再送要求処理部24に通知する。
再送要求処理部24は、復号処理部23から通知を受けた場合に、送信側装置1に対して再送要求を送信する。再送要求には、例えば、再送を要求する入力データのシーケンス番号が含まれる。
送信側装置1の再送要求処理部15は、再送要求を受信すると、符号化処理部12に該当入力データの符号化データブロックの再送を通知する。符号化処理部12、送信パケット生成部13、送信処理部14は、該当入力データに再度上述の処理を行い、該当入力データから生成された符号化データブロックを複数含む送信パケットを受信側装置2に再送する。なお、第1実施形態では、RPS符号を用いる場合が想定されているので、再送される符号化データブロックは、損失されたパケットに含まれていたものと異なっていてもよい。また、再送される符号化データブロックは、生成されたすべてではなく、一部であってもよい。復元に必要最低限の数の符号化データブロックがそろえば、オリジナルデータが復元されるからである。
ロス率計測部25は、受信処理部21から受信パケットの情報の入力を受け、該情報に基づいてパケットロス率を計測し、計測結果を送信側装置1に送信する。パケットロス率の計測方法は、特定の方法に限定されず、周知の方法のいずれが用いられてもよい。パケットロス率の計測方法の一例の詳細については、後述する。
図6は、送信パケットの構成の一例を示す図である。図6に示される送信パケットは、送信側装置1の送信パケット生成部13によって生成されるパケットである。送信パケットのヘッダ部は、RPS符号に関する情報が含まれるRPS符号のヘッダである。
ヘッダ部には、例えば、パケットのシーケンス番号、符号長、符号化データブロック数、符号化データブロック長、入力データのシーケンス番号、入力データのサイズ、が含まれる。パケットのシーケンス番号は、送信パケット生成部13によって送信パケットに付与される通し番号である。データ部には、符号化データブロックが1又は複数格納される。
パケットロス率は、例えば、以下のように求められる。パケットロス率の計測に用いられるパケット数Mは、ロス率計測部25に予め設定されている。ロス率計測部25は、送信側装置1からの受信パケット数がMになるまで計測し、受信パケット数がMに達したら、該M個の受信パケットのRPSヘッダ内のパケットのシーケンス番号の最小値と最大値との差分を求める。該差分値をパケットロス率の計測に用いられるパケット数Mで割った値が、パケットロス率として求められる。ロス率計測部25は、このような処理を繰り返し行う。
符号長は、RPS符号の符号長Nである。符号長とは、符号化の際に組み合わせ得るデータの範囲を示しており、より具体的には、入力データ内に組み合わせの単位となる情報ブロックをいくつ設けるかを示している。言い換えれば、符号長Nは、1つの入力データの分割数である。
符号化データブロック数は、1つの送信パケットに含まれる符号化データブロックの数である。符号化データブロック数は、判定処理部11によって決定される(後述)。
符号化データブロック長は、1つの符号化データブロックのサイズである。符号化データブロック長は、判定処理部11によって、入力データのサイズを符号長で割ることによって求められる。
入力データのシーケンス番号は、入力データを識別するものであって、例えば、判定処理部11によって、データの入力を受け付ける所定の周期で受信された入力データに対して付与される通し番号である。入力データのシーケンス番号及び入力データのサイズによって、受信側装置2はひとかたまりの入力データの始まりと終りとを検出することができる。
なお、送信パケットの構成は一例であり、RPS符号のヘッダ内に含まれる情報は、図6に示されるものに限定されない。例えば、入力データのシーケンス番号と入力データのサイズとは、RPS符号のヘッダ内ではなく、符号化データブロックそれぞれに付与されていてもよい。また、ロス率計測部25のパケットロス率の計測方法は、上述のものに限定されない。
<処理の流れ>
図7A及び図7Bは、送信側装置1における誤り訂正符号化処理のフローチャートの一例である。図7Aに示されるフローチャートは、アプリケーションプログラムからのデータ入力が開始されたのち、データ入力を受け付ける所定の周期で実行される。
図7A及び図7Bは、送信側装置1における誤り訂正符号化処理のフローチャートの一例である。図7Aに示されるフローチャートは、アプリケーションプログラムからのデータ入力が開始されたのち、データ入力を受け付ける所定の周期で実行される。
OP1では、判定処理部11は、入力データのサイズ(Sb)を求める。次に処理がOP2に進む。
OP2では、判定処理部11は、入力データを符号長N個に分割し、N個のサブブロックデータを生成する。次に処理がOP3に進む。
OP3では、判定処理部11は、入力データのサイズ(Sb)を符号長Nで割って、符号化データブロックのサイズ(Sr)を求める。次に処理がOP4に進む。
OP4では、判定処理部11は、符号化データブロックのサイズ(Sr)がペイロードのサイズよりも大きいか否かを判定する。この判定は、1つの符号化データブロックが1つの送信パケットに納まるか否かの判定である。ペイロードのサイズは、例えば、IPパケットの最大長1500バイトから、IPヘッダ、UDPヘッダ、RPS符号のヘッダのサイズを差し引いた値である。符号化データブロックのサイズ(Sr)がペイロードのサイズよりも大きい場合には(OP4:YES)、処理がOP5に進む。符号化データブロックのサイズ(Sr)がペイロードのサイズ以下である場合には(OP4:NO)、処理がOP6に進む。
OP5では、符号化データブロックのサイズ(Sr)がペイロードのサイズよりも大きく、1つの符号化データブロックが1つの送信パケットに納まらないので、判定処理部11は、入力データのサイズ(Sb)を調整する。入力データのサイズ(Sb)は、ペイロードサイズのN倍に調整される。入力データの余りは、次の処理単位の入力データに含められる。次に処理がOP1に戻り、再度OP1からOP4の処理が行われる。
OP6では、判定処理部11は、ペイロードサイズをしきい値で割った値より符号化データブロックのサイズ(Sr)が大きいか否かを判定する。この判定は、1つの送信パケットに2つ以上の符号化データブロックを格納できるか否かの判定である。しきい値は、例えば、2や3の正の整数である。ペイロードサイズをしきい値で割った値より符号化データブロックのサイズ(Sr)が大きい場合には(OP6:YES)、処理がOP7に進む。符号化データブロックのサイズ(Sr)がペイロードサイズをしきい値で割った値以下の場合には(OP6:NO)、処理がOP8に進む。
OP7では、ペイロードサイズをしきい値で割った値より符号化データブロックのサイズ(Sr)が大きく、1つの送信パケットに2つ以上の符号化データブロックを格納することができない。そのため、判定処理部11は、1パケット内の符号化データブロック数(Nr)を1に設定する。次に処理がOP9に進む。
OP8では、符号化データブロックのサイズ(Sr)がペイロードサイズをしきい値で割った値以下であり、1つの送信パケットに2つ以上の符号化データブロックを格納することができるので、判定処理部11は、1パケット内の符号化データブロック数(Nr)を求める(図3参照)。1パケット内の符号化データブロック数(Nr)は、ペイロードサイズを符号化データブロックのサイズ(Sr)で割ることによって求められる。ペイロードサイズを符号化データブロックのサイズ(Sr)で割った値が小数点を含む場合には、小数点以下を切り捨てた値を1パケット内の符号化データブロック数(Nr)とする。次に処理がOP9に進む。
OP9では、判定処理部11は、オリジナルデータを復元するために最低限必要な送信パケット数(Np)を求める。以降、オリジナルデータを復元するために最低限必要な送信パケット数(Np)を、最小パケット数(Np)と表記する(図3参照)。例えば、RPS符号では、少なくとも符号長N個の符号化データブロックがあれば、オリジナルデータを復元することが可能である。そのため、第1実施形態では、最小パケット数(Np)は、符号長Nを1パケット内の符号化データブロック数(Nr)で割った値となる。符号長Nを1パケット内の符号化データブロック数(Nr)で割った値が小数点を含む場合には、小数点以下を繰り上げた値を最小パケット数(Np)とする。次に処理がOP10に進む。
OP10では、判定処理部11は、パケットロス率が考慮された送信パケット数(Rp)を求める。以降、パケットロス率が考慮された送信パケット数を必要パケット数(Rp)と表記する(図3参照)。必要パケット数(Rp)は、例えば、最小パケット数(Np)に(1+パケットロス率(Nl)))を乗じた値である。最小パケット数(Np)に(1+パケットロス率(Nl)))を乗じた値が小数点を含む場合には、小数点以下を切り捨てた値を必要パケット数(Rp)とする。なお、これに限られず、小数点以下を繰り上げた値を必要パケット数(Rp)としてもよい。また、必要パケット数(Rp)の決定方法は、これに限られず、例えば、最小パケット数(Np)に、1/(1−パケットロス率(Nl))を乗じた値であってもよい。次に処理がOP11に進む。
OP11では、判定処理部11は、必要パケット数(Rp)のパケットに格納される符号化データブロック数(Rr)を求める。以降、必要パケット数(Rp)のパケットに格納される符号化データブロックの数(Rr)を必要符号化データブロック数(Rr)と表記する(図3参照)。必要符号化データブロック数(Rr)は、必要パケット数(Rp)に1パケット内のデータブロック数(Nr)を乗じた値となる。次に、処理がOP12に進む。
OP12では、符号化処理部12は、RPS符号に基づいて、入力データから必要符号化データ数(Rr)個の符号化データブロックを生成する。次に処理がOP13に進む。
OP13では、送信パケット生成部13は、1パケット内のデータブロック数(Nr)分の符号化データブロックを1つにまとめて送信パケットのデータ部を生成する。次に処理がOP14に進む。
OP14では、送信パケット生成部13は、送信パケットのヘッダ部に、入力データのサイズ(Sb)、符号化データブロックのサイズ(Sr)、1パケット内のデータブロック数(Nr)等の情報を格納し(図6参照)、送信パケットを生成する。その後、送信パケットは送信処理部14に出力され、受信側装置2へ送信され、図7Bに示される処理が終了する。
なお、図7A及び図7Bに示される処理は、一例であって、適宜変更可能である。例えば、1パケット内に含まれる符号化データブロック数(Nr)、最小パケット数(Np)、必要パケット数(Rp)は、あらかじめ決められた固定値であり、OP8〜OP10の処理は省略されてもよい。また、データ入力を受け付ける所定の周期の1周期分の入力データのサイズ(Sb)が所定のしきい値よりも小さい場合には、入力データのサイズ(Sb)が所定のしきい値を超えるサイズになるまで、図7Aのフローチャートの開始を待機してもよい。
また、例えば、図7A及び図7Bに示される処理の開始条件を、所定のアプリケーションに限定することも可能である。所定のアプリケーションは、例えば、リモートデスクトップ等の転送データ量の少ないアプリケーションである。この場合には、入力データサイズ(Sb)が小さく、符号化データブロックがペイロードサイズをしきい値で割った値よりも小さくなることが予め判明しているので、OP4の処理は省略されてもよい。
図8は、受信側装置2における誤り訂正符号による符号化データブロックを含むパケットの受信処理のフローチャートの一例である。図8に示されるフローチャートは、例えば、受信側装置2が、送信側装置1から、誤り訂正符号処理プログラムのパケットを受信すると開始される。
OP21では、受信パケット分割部22は、受信パケットのRPS符号のヘッダから、符号化データブロックのサイズ(Sr)、1パケットに含まれる符号化データブロック数(Nr)、符号長N、入力データのシーケンス番号を取得する。次に処理がOP22に進む。
OP22では、受信パケット分割部22は、受信パケットから取得した入力データのシーケンス番号に該当する入力データの復号が成功しているか否かを判定する。該当する入力データの復号が既に成功している場合には(OP22:YES)、該当する入力データの復号処理を行わなくともよいので、図8に示される処理が終了し、次の受信パケットの処理が開始される。該当する入力データの復号がまだ成功していない場合には(OP22:NO)、処理がOP23に進む。
OP23では、受信パケット分割部22は、受信パケットからNr個の符号化データブロックを取得する。符号化データブロックのサイズは、OP21で取得された符号化データブロックのサイズ(Sr)である。取得された符号化データブロックは、復号処理部23に出力される。次に処理がOP24に進む。
OP24では、復号処理部23は、該当の入力データについて受信した符号化データブロックの数が、符号長N以上であるか否かを判定する。この判定は、受信した符号化データブロックが、オリジナルデータの復元に最低限必要な数に達しているか否かの判定である。該当の入力データについて受信した符号化データブロックの数が符号長N以上である場合には(OP24:YES)、処理がOP25に進む。該当の入力データについて受信した符号化データブロックの数が符号長N未満である場合には(OP24:NO)、復号処理を実行せずに、図8に示される処理が終了し、次の受信パケットの処理が開示される。
OP25では、復号処理部23は、符号化データブロックを復号し、オリジナルデータを復元する。復元方法は、第1実施形態では、RPS符号に準ずる。次に処理がOP26に進む。
OP26では、復号処理部23は、オリジナルデータの復号に成功したか否かを判定する。オリジナルデータの復号に成功した場合には(OP26:YES)、処理がOP27に進む。オリジナルデータの復号に失敗した場合には(OP26:NO)、図8に示される処理が終了し、次の受信パケットについて処理が開始される。
OP27では、復号処理部23は、以前の入力データで復号できていないものがあるか否かを判定する。例えば、復号が失敗した場合には、処理が保留状態として、該入力データについての符号化データブロック等はバッファされている。この判定は、例えば、該当のバッファ内の以前の入力データの符号化データブロックの有無によって判定される。以前の入力データで復号できていないものがある場合には(OP27:YES)、処理がOP28に進む。以前の入力データで復号できていないものがない場合には(OP27:NO)、図8に示される処理が終了し、次の受信パケットについて処理が開始される。
OP28では、復号処理部23は、再送要求処理部24に、復号ができていない入力データのシーケンス番号を通知し、再送要求処理部24は、送信側装置1に対して該入力データの再送要求を送信する。再送要求には、例えば、復号ができていない入力データのシーケンス番号が含まれている。その後図8に示される処理が終了し、次の受信パケットについて処理が開始される。
なお、図8に示される処理は一例であって、受信側装置2の処理は、これに限定されない。例えば、送信側装置1との通信における最後尾の受信パケットについて、該当の入力データの復号ができない場合や、復号に最低限必要な符号化データブロックがそろわない場合には、所定の時間が経過した後、該当の入力データについて再送要求が行われるようにしてもよい。
<第1実施形態の作用効果>
第1実施形態では、送信側装置が、送信データに誤り訂正符号を施す場合に、符号化データブロックのサイズに応じて、複数の冗長符号化データブロックを1つのパケットに格納して送信する。これによって、転送データ量が少ないアプリケーションの通信の場合でも、1つのパケットのデータ部を最大長に近い値まで使用することができ、オーバーヘッドを減らすことができる。1つのパケットで送信される符号化データブロックの量が増えるので、転送速度を向上させることができる。したがって、第1実施形態によれば、誤り訂正符号を用いる場合の転送データ量が少ない通信におけるデータ転送効率を向上させることができる。
第1実施形態では、送信側装置が、送信データに誤り訂正符号を施す場合に、符号化データブロックのサイズに応じて、複数の冗長符号化データブロックを1つのパケットに格納して送信する。これによって、転送データ量が少ないアプリケーションの通信の場合でも、1つのパケットのデータ部を最大長に近い値まで使用することができ、オーバーヘッドを減らすことができる。1つのパケットで送信される符号化データブロックの量が増えるので、転送速度を向上させることができる。したがって、第1実施形態によれば、誤り訂正符号を用いる場合の転送データ量が少ない通信におけるデータ転送効率を向上させることができる。
<その他>
第1実施形態では、誤り訂正符号の一例としてRPS符号が用いられる場合について説明された。ただし、その他の誤り訂正符号が用いられる場合でも、送信側装置1は、符号化データブロックのサイズに応じて、複数の冗長符号化データブロックを1つのパケットに格納して送信し、受信側装置2は該パケットから複数の冗長符号化データブロックを取得することができる。RPS符号以外の誤り訂正符号が用いられる場合には、送信側装置1の判定処理部11、符号化処理部12、送信パケット生成部13、受信側装置2の受信パケット分割部22、復号処理部23の処理を該当の誤り訂正符号に応じた処理に変更することによって実現可能である。
第1実施形態では、誤り訂正符号の一例としてRPS符号が用いられる場合について説明された。ただし、その他の誤り訂正符号が用いられる場合でも、送信側装置1は、符号化データブロックのサイズに応じて、複数の冗長符号化データブロックを1つのパケットに格納して送信し、受信側装置2は該パケットから複数の冗長符号化データブロックを取得することができる。RPS符号以外の誤り訂正符号が用いられる場合には、送信側装置1の判定処理部11、符号化処理部12、送信パケット生成部13、受信側装置2の受信パケット分割部22、復号処理部23の処理を該当の誤り訂正符号に応じた処理に変更することによって実現可能である。
また、第1実施形態では、情報処理装置100には、端末装置が想定されているが、情報処理装置100は、ゲートウェイ装置やサーバ等であってもよい。例えば、情報処理装置100は、複数の端末を収容するゲートウェイ装置である場合には、入力データは、複数の端末からの受信データとなる。なお、情報処理装置100がゲートウェイ装置である場合には、送信側装置1は、データの送信元及び宛先IPアドレス、送信元及び宛先ポート番号等を識別せずに、端末から受信するデータから符号化データブロックを作成して受信側装置2に送信する。受信側装置2では、符号化データブロックをオリジナルデータに復元し、オリジナルデータに含まれる情報を参照して、宛先の端末に転送する。
また、第1実施形態では、1台の送信側装置1が、誤り訂正符号のパラメータの決定、符号化データブロックの作成等の処理を行ったが、複数の装置で処理を分散させてもよい。また、受信側装置2の処理も、複数の装置間で分散させてもよい。
<記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ROM(リードオンリーメモリ)等がある。さらに、SSD(Solid State Drive)は、コンピュータ等から取り外し可能な記録媒体としても、コンピュータ等に固定された記録媒体としても利用可能である。
1 送信側装置
2 受信側装置
11 判定処理部
12 符号化処理部
13 送信パケット生成部
14 送信処理部
15 再送要求処理部
21 受信処理部
22 受信パケット分割部
23 復号処理部
24 再送要求処理部
25 ロス率計測部
101 CPU
102 主記憶装置
105 補助記憶装置
2 受信側装置
11 判定処理部
12 符号化処理部
13 送信パケット生成部
14 送信処理部
15 再送要求処理部
21 受信処理部
22 受信パケット分割部
23 復号処理部
24 再送要求処理部
25 ロス率計測部
101 CPU
102 主記憶装置
105 補助記憶装置
Claims (7)
- 誤り訂正符号により送信データから作成される複数の符号化データブロックのサイズに応じて、1つのパケットに前記符号化データブロックを複数格納するパケット生成部と、
前記パケット生成部によって生成されたパケットを送信する送信部と、
を含む情報処理装置。 - 前記パケット生成部は、前記符号化データブロックのサイズが所定しきい値より大きく且つパケットの最大長よりも小さい場合には、1つのパケットに1つの符号化データブロックを格納し、前記符号化データブロックのサイズが所定しきい値以下である場合には、1つのパケットに複数の前記符号化データブロックを格納する、
請求項1に記載の情報処理装置。 - 前記送信データを前記誤り訂正符号の符号長Nで割って前記符号化データブロックのサイズを求め、1つのパケットに格納される符号化データブロックの数を判定する判定部、
をさらに備える請求項1又は2に記載の情報処理装置。 - 前記判定部は、パケットロス率を用いて、送信するパケット数を判定する、
請求項3に記載の情報処理装置。 - プロセッサとメモリとを含む情報処理装置において、
前記プロセッサが、
誤り訂正符号により送信データから作成される複数の符号化データブロックのサイズに応じて、1つのパケットに前記符号化データブロックを複数格納し、
前記複数の符号化データブロックが格納されたパケットを送信する、
情報処理方法。 - 情報処理装置に、
誤り訂正符号により送信データから作成される複数の符号化データブロックのサイズに応じて、1つのパケットに前記符号化データブロックを複数格納させ、
前記複数の符号化データブロックが格納されたパケットを送信させる、
ための情報処理プログラム。 - 誤り訂正符号により送信データから作成される複数の符号化データブロックのサイズに応じて、1つのパケットに前記符号化データブロックを複数格納するパケット生成部と、
前記パケット生成部によって生成されたパケットを送信する送信部と、
を含む送信側装置と、
前記送信側装置から前記パケットを受信する受信部と、
前記パケットから複数の符号化データブロックを取得する分割部と、
前記パケットから取得された複数の符号化データブロックを前記誤り訂正符号により復号して前記送信データを取得する復号部と、
を含む受信側装置と、
を備える情報処理システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/075829 WO2016051451A1 (ja) | 2014-09-29 | 2014-09-29 | 情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2016051451A1 true JPWO2016051451A1 (ja) | 2017-07-27 |
Family
ID=55629552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016551131A Pending JPWO2016051451A1 (ja) | 2014-09-29 | 2014-09-29 | 情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170195083A1 (ja) |
JP (1) | JPWO2016051451A1 (ja) |
WO (1) | WO2016051451A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021200161A1 (ja) * | 2020-03-31 | 2021-10-07 | ソニーグループ株式会社 | 復号化装置、復号化方法、符号化装置、及び符号化方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007069406A1 (ja) * | 2005-12-15 | 2007-06-21 | Mitsubishi Electric Corporation | 通信システム、送信側通信装置および受信側通信装置 |
JP2007251737A (ja) * | 2006-03-17 | 2007-09-27 | Fujitsu Ltd | データ転送方法及び,これを適用する通信システム及びプログラム |
WO2011039874A1 (ja) * | 2009-09-30 | 2011-04-07 | 富士通株式会社 | データ送信装置、データ生成プログラムおよびデータ送受信方法 |
JP2012049757A (ja) * | 2010-08-26 | 2012-03-08 | Fujitsu Ltd | データ転送プログラム、データ転送方法及び情報処理装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3047069A (en) * | 1959-10-09 | 1962-07-31 | Phillips Petroleum Co | Tubing positioner for upper zone of dually completed well |
US5121115A (en) * | 1988-02-22 | 1992-06-09 | Telefind Corporation | Method of transmitting information using programmed channels |
US5751865A (en) * | 1996-09-26 | 1998-05-12 | Xerox Corporation | Method and apparatus for image rotation with reduced memory using JPEG compression |
US7072417B1 (en) * | 2000-06-28 | 2006-07-04 | Marvell International Ltd. | LDPC encoder and method thereof |
KR101153520B1 (ko) * | 2010-11-30 | 2012-06-11 | 한국전자통신연구원 | 부호화 심볼의 패킷화 방법 및 이러한 방법을 사용하는 장치 |
-
2014
- 2014-09-29 WO PCT/JP2014/075829 patent/WO2016051451A1/ja active Application Filing
- 2014-09-29 JP JP2016551131A patent/JPWO2016051451A1/ja active Pending
-
2017
- 2017-03-22 US US15/465,940 patent/US20170195083A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007069406A1 (ja) * | 2005-12-15 | 2007-06-21 | Mitsubishi Electric Corporation | 通信システム、送信側通信装置および受信側通信装置 |
JP2007251737A (ja) * | 2006-03-17 | 2007-09-27 | Fujitsu Ltd | データ転送方法及び,これを適用する通信システム及びプログラム |
WO2011039874A1 (ja) * | 2009-09-30 | 2011-04-07 | 富士通株式会社 | データ送信装置、データ生成プログラムおよびデータ送受信方法 |
JP2012049757A (ja) * | 2010-08-26 | 2012-03-08 | Fujitsu Ltd | データ転送プログラム、データ転送方法及び情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20170195083A1 (en) | 2017-07-06 |
WO2016051451A1 (ja) | 2016-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3591868B1 (en) | Information processing method, apparatus and device | |
JP6294346B2 (ja) | 通信装置及びシステム及び方法 | |
JP6846572B2 (ja) | 符号化方法及び装置 | |
EP3342073A1 (en) | Random linear network encoded data transmission | |
TWI484785B (zh) | 提供線性消除碼之方法與裝置 | |
KR102273110B1 (ko) | 폴라 코드들의 코딩 및 디코딩 방법 및 장치 | |
WO2015168840A1 (zh) | 一种数据处理方法及装置 | |
JP6487562B2 (ja) | オンデマンドファイル修復のための方法及びシステム | |
CN110658987A (zh) | 用于经压缩的数据串流中的错误恢复的技术 | |
US11477170B2 (en) | Decoding method and apparatus | |
WO2016051451A1 (ja) | 情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム | |
US11405823B2 (en) | Data processing method, and terminal device and network device | |
CN109756307A (zh) | 数据重传方法及装置 | |
WO2016188406A1 (en) | System and method of header compression for online network codes | |
WO2019214265A1 (zh) | 计算循环冗余校验crc编码的方法及装置 | |
US20200235853A1 (en) | Channel encoding method and apparatus in wireless communications | |
CN115085872B (zh) | 数据处理方法及装置、存储介质、电子设备 | |
US10425190B2 (en) | Channel encoding method and apparatus in wireless communications | |
ES2823227T3 (es) | Método y dispositivo de codificación | |
CN109474379A (zh) | 编码方法及装置 | |
CN109474376A (zh) | 编码方法及装置 | |
CN109474378A (zh) | 编码方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170404 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180327 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20181002 |