JP2005223683A - Transmission/reception system, transmitter and transmitting method, receiver and receiving method, transmitter/receiver and transmitting/receiving method, and program - Google Patents

Transmission/reception system, transmitter and transmitting method, receiver and receiving method, transmitter/receiver and transmitting/receiving method, and program Download PDF

Info

Publication number
JP2005223683A
JP2005223683A JP2004030401A JP2004030401A JP2005223683A JP 2005223683 A JP2005223683 A JP 2005223683A JP 2004030401 A JP2004030401 A JP 2004030401A JP 2004030401 A JP2004030401 A JP 2004030401A JP 2005223683 A JP2005223683 A JP 2005223683A
Authority
JP
Japan
Prior art keywords
data
transmission
determinant
unit
reception
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
Application number
JP2004030401A
Other languages
Japanese (ja)
Inventor
Toshiharu Kobayashi
稔治 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004030401A priority Critical patent/JP2005223683A/en
Publication of JP2005223683A publication Critical patent/JP2005223683A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To more easily perform more accurate communication. <P>SOLUTION: A transmitter 11 divides transmission data to generate packet data, performs EOR operation for the packet data by using a coefficient matrix in which the existence available region of a valid coefficient is limited, converts the packet data into EOR conversion data to be actually transmitted, and then, packetizes the converted data using a predetermined protocol such as UDP and transmit the data. The receiver 13 receives the packet supplied from the receiver 11 and extracts the EOR conversion data, and restores the original transmission data using the received EOR conversion data. In this case, the receiver 13 receives the EOR conversion data whose number is at least equal to or larger than the number of data required for restoring the original transmission data from the EOR data transmitted from the transmitter 11. This is applicable to a transmission system, for example. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、送受信システム、送信装置および方法、受信装置および方法、送受信装置および方法、並びにプログラムに関し、特に、データの送受信をより正確、かつ、より容易に行うことができるようにした送受信システム、送信装置および方法、受信装置および方法、送受信装置および方法、並びにプログラムに関する。   The present invention relates to a transmission / reception system, a transmission apparatus and method, a reception apparatus and method, a transmission / reception apparatus and method, and a program, and in particular, a transmission / reception system capable of performing transmission / reception of data more accurately and easily, The present invention relates to a transmission device and method, a reception device and method, a transmission and reception device and method, and a program.

近年、ブロードバンド通信網の発達などにより、インターネットに代表されるネットワークを介して音声や映像等のデータのストリーミング配信やリアルタイムな放送等が数多く行われるようになってきた。   In recent years, with the development of broadband communication networks and the like, many streaming distributions and real-time broadcasts of data such as audio and video have been performed through networks typified by the Internet.

従来、このようなネットワークを介したデータ配信において、例えば、データイレースのように、送信装置が送信したデータ(パケット)の内、一部が受信装置により受信できない場合や、受信装置が送信装置の送信処理の途中から受信を開始した場合等において、受信装置が不足しているデータの再送を送信装置に対して要求する方法がある。   Conventionally, in data distribution via such a network, for example, when data (packets) transmitted by the transmission device cannot be received by the reception device, such as data erase, There is a method of requesting the transmission apparatus to retransmit data for which the reception apparatus is insufficient when reception is started in the middle of the transmission process.

また、送信装置が、例えば、リードソロモン符号等を用いて、送信データを、互いに独立した複数のデータに変換し、その変換した複数のデータを送信することにより、受信装置がそれらの複数のデータの内、任意のデータを、所定の数以上受信し、その受信したデータから元の送信データを復元する方法も提案されている。   Further, the transmission device converts the transmission data into a plurality of independent data using, for example, a Reed-Solomon code, and transmits the converted plurality of data, so that the reception device transmits the plurality of data. Among them, a method has been proposed in which a predetermined number or more of arbitrary data is received and the original transmission data is restored from the received data.

例えば、送信装置のエンコーダが、キー発生器において発生されたキーIを用いて、入力記号発生器の出力を変換し、リードソロモン値関数である出力記号B(I)を生成し、そのキーと出力記号を受信装置に供給し、受信装置のデコーダは、受信したキーを用いて出力記号を変換し、入力記号を回復する方法がある(例えば、特許文献1参照)。   For example, the encoder of the transmitting device uses the key I generated in the key generator to convert the output of the input symbol generator to generate an output symbol B (I) that is a Reed-Solomon value function, There is a method in which an output symbol is supplied to a receiving device, and a decoder of the receiving device converts the output symbol using a received key and recovers the input symbol (see, for example, Patent Document 1).

また、送信側の装置が、例えば、図1に示されるように、同じデータを繰り返し送信し、受信側の装置は、パケットをロスした場合、次回に送信されるデータ(パケット群)の中から、ロスしたパケットを受信し、データを復元するカルーセル方式を用いた方法もある。   Further, for example, as shown in FIG. 1, the transmission-side device repeatedly transmits the same data, and the reception-side device loses a packet, and then the data (packet group) to be transmitted next time. There is also a method using a carousel system that receives lost packets and restores data.

図1は、受信側の装置がデータを受信する様子の例を示す図である。送信側の装置が同じデータ1を繰り返し送信するので、受信側の装置は、データ1A、データ1B、データ1C、データ1Dのように、同じデータを繰り返し受信する。従って、例えば、データ1Aを受信した際に、パケットロス2Aが発生した場合であっても、受信側の装置は、次に受信するデータ1Bの、そのロスしたパケット(パケットロス2A)に対応するパケット2Bを受信すれば、そのパケット2Bを用いて、データ1を復元することができる。また、データ1Bを受信した際に、パケット2Bもロスしてしまったとしても、受信側の装置は、さらに次に受信するデータ1Cの、パケットロス2Aに対応するパケット2Cを受信することができれば、そのパケット2Cを用いて、データ1を復元することができる。さらに、このパケット2Cをロスした場合も、受信側の装置は、パケット2Dを受信すればよい。このように、受信側の装置は、繰り返される送信の内、少なくともいずれか1回の送信において各パケットを受信することができ、結果的に全パケットを受信することができれば、データ1を復元することができる。   FIG. 1 is a diagram illustrating an example of how a receiving device receives data. Since the transmission side device repeatedly transmits the same data 1, the reception side device repeatedly receives the same data, such as data 1A, data 1B, data 1C, and data 1D. Therefore, for example, even when the packet loss 2A occurs when the data 1A is received, the receiving side apparatus corresponds to the lost packet (packet loss 2A) of the data 1B to be received next. If the packet 2B is received, the data 1 can be restored using the packet 2B. Further, even if the packet 2B is lost when the data 1B is received, the receiving device can receive the packet 2C corresponding to the packet loss 2A of the data 1C to be received next. The data 1 can be restored using the packet 2C. Further, even when the packet 2C is lost, the receiving device only needs to receive the packet 2D. In this way, the receiving-side apparatus can receive each packet in at least one of the repeated transmissions, and if all packets can be received as a result, restores data 1. be able to.

特開2001−189665号公報JP 2001-189665 A

しかしながら、上述したような再送要求を行う方法の場合、例えば、マルチキャスト等のように、複数の装置に対してデータを送信するような通信の場合、送信側の装置には、受信側の各装置からの再送要求が集中してしまうため、送信側の装置の処理の負荷が増大し、送信処理を正常に行うことができない恐れがあるという課題があった。   However, in the case of the method for making a retransmission request as described above, for example, in the case of communication for transmitting data to a plurality of devices such as multicast, each device on the receiving side includes each device on the receiving side. Since the retransmission requests from the receivers are concentrated, there is a problem that the processing load on the transmission side apparatus increases, and there is a possibility that the transmission processing cannot be performed normally.

また、リードソロモン符号等を用いる方法の場合、データのエンコード処理およびデコード処理に、桁あふれを防止するためにガロア体上の演算が必要になり、そのため複雑な演算が増大し、送信装置および受信装置の負荷が増大し、正常にデータの送受信を行うためにそれらの処理性能を高性能なものにしなければならず、それらの製造コストが増大してしまうという課題があった。   In the case of a method using a Reed-Solomon code or the like, the data encoding process and decoding process require operations on the Galois field in order to prevent overflow, which increases the number of complex operations and increases the transmission apparatus and reception. There is a problem that the load on the apparatus is increased, and the processing performance thereof must be made high in order to transmit and receive data normally, which increases the manufacturing cost.

そこで、製造コストが下がるように、ガロア体上の演算処理を減らすために、変換するデータ量を削減する方法が考えられるが、送信装置が送信するデータ量を削減すると、受信装置において、元のデータの復元性能が低下してしまう場合がある。   Therefore, a method of reducing the amount of data to be converted can be considered in order to reduce the calculation processing on the Galois field so that the manufacturing cost is reduced, but if the amount of data transmitted by the transmitting device is reduced, the receiving device Data restoration performance may be reduced.

また、上述したようなカルーセル方式の通信の場合、図1に示されるように、データ1Aを受信する際に、パケットロス2Aが発生すると、受信側の装置は、次回の送信であるデータ1Bの、パケットロス2Aに対応するパケット2Bを受信するまで、待機する必要がある。すなわち、この場合、受信側の装置における受信処理の時間は、データ1を受信するのに必要な時間分、長くなってしまい、受信側の装置における受信処理の負荷が増大してしまうという課題があった。すなわち、図1に示されるように、受信側の装置は、パケットロス2Aが発生すると、次に送信されるパケット2Bを受信するまで(受信側の装置がデータ1を受信するのに必要な時間)待機しなければならず、受信処理時間が増大してしまう。さらに、パケット2Bをロスした場合、受信側の装置は、さらに待機時間を延長し、次のパケット2Cを受信するまで待機する必要がある。   Also, in the case of the carousel communication as described above, as shown in FIG. 1, when a packet loss 2A occurs when receiving data 1A, the receiving-side apparatus transmits data 1B as the next transmission. It is necessary to wait until the packet 2B corresponding to the packet loss 2A is received. That is, in this case, the reception processing time in the receiving device becomes longer by the time required to receive the data 1, and the load of the receiving processing in the receiving device increases. there were. That is, as shown in FIG. 1, when a packet loss 2A occurs, the receiving device receives the packet 2B to be transmitted next (the time required for the receiving device to receive data 1). ) It is necessary to wait and reception processing time increases. Further, when the packet 2B is lost, the receiving device needs to further extend the standby time and wait until the next packet 2C is received.

本発明は、このような状況に鑑みてなされたものであり、データの送受信を正確、かつ、より容易に行うことができるようにするものである。   The present invention has been made in view of such a situation, and makes it possible to transmit and receive data accurately and more easily.

本発明の送受信システムは、送信用データを送信する送信装置と、送信装置により送信される送信用データを受信する受信装置を備える送受信システムであって、送信装置は、送信用データを分割することにより複数の第1のデータを生成し、生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換し、得られた複数の第2のデータをそれぞれパケット化し、受信装置に送信し、受信装置は、送信装置が送信した複数の第2のデータを、第2のデータが対応する第1のデータの数以上受信し、受信した第2のデータが対応する第1のデータの数以上の第2のデータを保持し、保持した複数の第2のデータを用いて、第2のデータに対応する行列式を生成し、行列式を解くことにより、第1のデータを復元することを特徴とする。   The transmission / reception system of the present invention is a transmission / reception system including a transmission device that transmits transmission data and a reception device that receives transmission data transmitted by the transmission device, and the transmission device divides the transmission data. A plurality of first data is generated by the above, a set including all the generated first data as elements is set as a whole set, and a subset consisting of any continuous element group that is a part of the whole set from the whole set , And arbitrarily select a plurality of first data from the set subset, perform an exclusive OR operation on the selected plurality of first data for each bit, and select a plurality of second data as a result of the operation. By converting the plurality of first data into a plurality of second data, packetizing each of the plurality of second data obtained, and transmitting the packet to the receiving device. The plurality of second data transmitted by the transmitting device is received by a number equal to or more than the number of first data corresponding to the second data, and a second number equal to or greater than the number of the first data corresponding to the received second data. Data is stored, a plurality of stored second data is used to generate a determinant corresponding to the second data, and the first data is restored by solving the determinant.

本発明の送信装置は、送信用データを分割することにより複数の第1のデータを生成するデータ生成手段と、データ生成手段により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換手段と、変換手段により複数の第1のデータを変換して得られた複数の第2のデータを、それぞれパケット化し、受信装置に送信する送信手段とを備えることを特徴とする。   The transmission apparatus according to the present invention includes a data generation unit that generates a plurality of first data by dividing transmission data, and a set that includes all the first data generated by the data generation unit as a whole set. And setting a subset of any continuous element group that is a part of the entire set from the entire set, arbitrarily selecting a plurality of first data from the set subset, and selecting the plurality of selected first data Conversion means for converting a plurality of first data into a plurality of second data by performing an exclusive OR operation on each other for each bit and obtaining second data as a result of operation for a plurality of subsets; Transmitting means for packetizing a plurality of second data obtained by converting a plurality of first data by the converting means and transmitting the packets to a receiving device is provided.

前記変換手段は、排他的論理和演算を行う第1のデータを選択するための係数行列を用いて第1のデータを第2のデータに変換する行列式を生成する行列式生成手段と、行列式生成手段により生成された行列式を、排他的論理和演算を用いて演算することにより第2のデータを求める演算手段とを備えるようにすることができる。   The converting means includes a determinant generating means for generating a determinant for converting the first data into the second data using a coefficient matrix for selecting the first data to be subjected to the exclusive OR operation, and a matrix The determinant generated by the expression generation means can be provided with an operation means for obtaining the second data by calculating using an exclusive OR operation.

前記係数行列は、値が「1」の成分である有効係数と、値が「0」の成分である無効係数とにより構成され、有効係数は、係数行列の各行に対して部分集合として設定される有効係数が存在可能な列の範囲内において任意に選択された成分であり、各行の範囲は、範囲の列数が互いに同じであり、範囲の先頭の列が行毎に互いに異なるように設定されるようにすることができる。   The coefficient matrix is composed of an effective coefficient having a value of “1” and an invalid coefficient having a value of “0”, and the effective coefficient is set as a subset for each row of the coefficient matrix. This is a component arbitrarily selected within the range of columns in which effective coefficients can exist, and the range of each row is set so that the number of columns in the range is the same and the first column of the range is different for each row Can be done.

前記範囲を行毎に設定する範囲設定手段と、範囲設定手段により設定された範囲に基づいて、係数行列の各成分の値を判定する判定手段と、判定手段による判定結果に基づいて係数行列の全ての成分の値を保持することにより係数行列を保持する係数行列保持手段とをさらに備え、行列式生成手段は、係数行列保持手段により保持されている係数行列を用いて行列式を生成するようにすることができる。   A range setting unit that sets the range for each row, a determination unit that determines a value of each component of the coefficient matrix based on the range set by the range setting unit, and a coefficient matrix based on a determination result by the determination unit Coefficient matrix holding means for holding a coefficient matrix by holding all component values, and the determinant generating means generates a determinant using the coefficient matrix held by the coefficient matrix holding means. Can be.

前記変換手段は、複数の第1のデータを、第1のデータの数より多くの第2のデータに変換するようにすることができる。   The converting means may convert a plurality of first data into second data larger than the number of first data.

前記変換手段により第1のデータを変換して得られた第2のデータに、範囲に関する情報を付加する情報付加手段をさらに備え、送信手段は、情報付加手段により情報が付加された複数の第2のデータをそれぞれパケット化し、受信装置に送信するようにすることができる。   The second data obtained by converting the first data by the converting means further includes information adding means for adding information about the range, and the transmitting means includes a plurality of second data to which information is added by the information adding means. The two data can be packetized and transmitted to the receiving device.

前記データ生成手段は、送信用データをブロックに分割し、さらに、ブロックを分割することができる。   The data generation means can divide the transmission data into blocks and further divide the blocks.

本発明の送信方法は、送信用データを分割することにより複数の第1のデータを生成するデータ生成ステップと、データ生成ステップの処理により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換ステップと、変換ステップの処理により複数の第1のデータが変換されて得られた複数の第2のデータを、それぞれパケット化し、受信装置に送信するように制御する送信制御ステップとを含むことを特徴とする。   The transmission method of the present invention includes a data generation step for generating a plurality of first data by dividing transmission data, and a set including all the first data generated by the processing of the data generation step as elements. A subset consisting of any continuous element group that is a part of the entire set is set from the entire set, a plurality of first data are arbitrarily selected from the set subset, and the selected first Conversion step of converting a plurality of first data into a plurality of second data by performing an exclusive OR operation on each other bit by bit and obtaining a second data as an operation result for a plurality of subsets And a plurality of second data obtained by converting the plurality of first data by the process of the conversion step are packetized and transmitted to the receiving device. Tsu, characterized in that it comprises a flop.

本発明の第1のプログラムは、送信用データを分割することにより複数の第1のデータを生成するデータ生成ステップと、データ生成ステップの処理により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換ステップと、変換ステップの処理により複数の第1のデータが変換されて得られた複数の第2のデータを、それぞれパケット化し、受信装置に送信するように制御する送信制御ステップとをコンピュータに実行させる。   The first program of the present invention includes a data generation step for generating a plurality of first data by dividing transmission data and all the first data generated by the processing of the data generation step as elements. Set a set as a whole set, set a subset consisting of any continuous element group that is a part of the whole set from the whole set, arbitrarily select a plurality of first data from the set subset, The plurality of first data is converted into a plurality of second data by performing an exclusive OR operation on the first data for each bit and obtaining the second data as the operation result for a plurality of subsets. A conversion step and a transmission for controlling the plurality of second data obtained by converting the plurality of first data by the processing of the conversion step to be packetized and transmitted to the receiving device. To execute a control step to the computer.

本発明の受信装置は、送信装置が送信したデータであり、それぞれが、送信用データが分割されて生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、排他的論理和演算の演算結果として複数の部分集合について求められた複数の第2のデータを、第2のデータが対応する第1のデータの数以上受信する受信手段と、受信手段により受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持手段と、保持手段により保持される複数の第2のデータを用いて、第2のデータに対応する行列式を生成し、行列式を解くことにより、第1のデータを復元する復元手段とを備えることを特徴とする。   The receiving apparatus of the present invention is data transmitted by the transmitting apparatus, and each of the sets includes all first data generated by dividing the transmission data as an entire set, and the entire set from the entire set Set a subset consisting of any continuous element group that is a part of, select any number of first data from the set subset, and mutually exclusive the selected first data for each bit Receiving means for performing an OR operation and receiving a plurality of second data obtained for a plurality of subsets as an operation result of the exclusive OR operation, the number of which is equal to or more than the number of the first data corresponding to the second data; Using the holding means for holding the second data that is equal to or more than the number of the first data corresponding to the second data received by the receiving means, and using the plurality of second data held by the holding means, It corresponds to the data of 2 Generates a matrix expression, by solving the determinant, characterized in that it comprises a restoring means for restoring the first data.

前記復元手段は、排他的論理和演算を行う第1のデータを選択するための係数行列を用いて第1のデータを第2のデータに変換する行列式を生成する行列式生成手段と、行列式生成手段により生成された行列式を第1のデータを変数として解き、第1のデータを求める演算手段とを備えるようにすることができる。   The restoring means includes a determinant generating means for generating a determinant for converting the first data into the second data using a coefficient matrix for selecting the first data to be subjected to the exclusive OR operation, and a matrix The determinant generated by the expression generating means may be provided with an arithmetic means for solving the first data as a variable and obtaining the first data.

前記係数行列は、値が「1」の成分である有効係数と、値が「0」の成分である無効係数とにより構成され、有効係数は、係数行列の各行に対して部分集合として設定される有効係数が存在可能な列の範囲内において任意に選択された成分であり、各行の範囲は、範囲の列数が互いに同じであり、範囲の先頭の列が行毎に互いに異なるように設定されるようにすることができる。   The coefficient matrix is composed of an effective coefficient having a value of “1” and an invalid coefficient having a value of “0”, and the effective coefficient is set as a subset for each row of the coefficient matrix. This is a component arbitrarily selected within the range of columns in which effective coefficients can exist, and the range of each row is set so that the number of columns in the range is the same and the first column of the range is different for each row Can be done.

前記受信手段により受信された第2のデータに付加された、排他的論理和演算を行う複数の第1のデータを任意に選択する範囲に関する情報に基づいて、係数行列を生成する係数行列生成手段をさらに備え、行列式生成手段は、係数行列生成手段により生成された係数行列を用いて、行列式を生成するようにすることができる。   Coefficient matrix generation means for generating a coefficient matrix based on information about a range for arbitrarily selecting a plurality of first data to be subjected to exclusive OR operation added to the second data received by the reception means The determinant generating means can generate the determinant using the coefficient matrix generated by the coefficient matrix generating means.

前記係数行列の各成分を所定の行数および列数毎に複数の小領域に分割し、各小領域の成分の値に基づいて、行列式生成手段により生成された行列式の、小領域に対応する部分の演算を行うか否かを判定する演算判定手段をさらに備え、演算手段は、行列式生成手段により生成された行列式の、演算判定手段により演算を行うと判定された部分についてのみ演算を行って、第1のデータを変数として解くことにより第1のデータを求めるようにすることができる。   Each component of the coefficient matrix is divided into a plurality of small regions for each predetermined number of rows and columns, and based on the value of the component of each small region, the determinant generated by the determinant generating means Computation determining means for determining whether or not to perform the calculation of the corresponding part is further provided, and the calculation means is only for the part of the determinant generated by the determinant generation means that is determined to be calculated by the calculation determination means. It is possible to obtain the first data by performing an operation and solving the first data as a variable.

本発明の受信方法は、送信装置が送信したデータであり、それぞれが、送信用データが分割されて生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、排他的論理和演算の演算結果として複数の部分集合について求められた複数の第2のデータを、第2のデータが対応する第1のデータの数以上受信するように制御する受信制御ステップと、受信制御ステップの処理により制御されて受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持ステップと、保持ステップの処理により保持される複数の第2のデータを用いて、第2のデータに対応する行列式を生成し、行列式を解くことにより、第1のデータを復元する復元ステップとを含むことを特徴とする。   The reception method of the present invention is data transmitted by a transmission apparatus, and each of the sets includes all first data generated by dividing transmission data as an entire set, and the entire set is set from the entire set. Set a subset consisting of any continuous element group that is a part of, select any number of first data from the set subset, and mutually exclusive the selected first data for each bit A logical sum operation is performed, and control is performed so as to receive a plurality of second data obtained for a plurality of subsets as a result of the exclusive logical sum operation, in a number equal to or more than the number of first data corresponding to the second data. A reception control step, a holding step for receiving second data that is controlled by the processing of the reception control step and holding the second data that is equal to or more than the number of first data corresponding to the second data, and a process of the holding step. A determinant corresponding to the second data is generated using the plurality of second data held, and a restoration step of restoring the first data by solving the determinant is included. .

本発明の第2のプログラムは、送信装置が送信したデータであり、それぞれが、送信用データが分割されて生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、排他的論理和演算の演算結果として複数の部分集合について求められた複数の第2のデータを、第2のデータが対応する第1のデータの数以上受信するように制御する受信制御ステップと、受信制御ステップの処理により制御されて受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持ステップと、保持ステップの処理により保持される複数の第2のデータを用いて、第2のデータに対応する行列式を生成し、行列式を解くことにより、第1のデータを復元する復元ステップとをコンピュータに実行させる。   The second program of the present invention is data transmitted by the transmission device, and each of the sets is composed of all the first data generated by dividing the transmission data as a whole set, and from the whole set A subset consisting of any continuous element group that is a part of the entire set is set, a plurality of first data is arbitrarily selected from the set subset, and the selected plurality of first data is mutually bit by bit An exclusive OR operation is performed, and a plurality of second data obtained for a plurality of subsets as a result of the exclusive OR operation are received in a number equal to or more than the number of first data corresponding to the second data. A receiving control step for controlling, a holding step for holding second data equal to or more than the number of first data corresponding to the second data, which is controlled and received by the processing of the receiving control step, Generating a determinant corresponding to the second data using a plurality of second data held by the processing, and causing the computer to execute a restoration step of restoring the first data by solving the determinant .

本発明の送受信装置は、送信用データを分割することにより複数の第1のデータを生成するデータ生成手段と、データ生成手段により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換手段と、変換手段により複数の第1のデータが変換されて得られた複数の第2のデータをそれぞれパケット化し、他の送受信装置に送信する送信手段と、他の送受信装置が送信した複数の第2のデータを、第2のデータが対応する第1のデータの数以上受信する受信手段と、受信手段により受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持手段と、保持手段により保持される複数の第2のデータを用いて、第2のデータに対応する行列式を生成し、行列式を解くことにより、第1のデータを復元する復元手段とを備えることを特徴とする。   The transmission / reception apparatus according to the present invention includes a data generation unit that generates a plurality of first data by dividing transmission data, and an entire set including all the first data generated by the data generation unit as elements. And setting a subset of any continuous element group that is a part of the entire set from the entire set, arbitrarily selecting a plurality of first data from the set subset, and selecting the plurality of selected first data Conversion means for converting a plurality of first data into a plurality of second data by performing an exclusive OR operation on each other for each bit and obtaining second data as a result of operation for a plurality of subsets; A plurality of second data obtained by converting a plurality of first data by the converting means is packetized and transmitted to another transmitting / receiving apparatus, and a plurality of second data transmitted by other transmitting / receiving apparatuses. Receiving means for receiving data equal to or greater than the number of first data corresponding to the second data; and second data equal to or greater than the number of first data corresponding to the second data received by the receiving means. Using the holding means to hold and a plurality of second data held by the holding means, a determinant corresponding to the second data is generated, and the restoration is performed to restore the first data by solving the determinant Means.

本発明の送受信方法は、送信用データを分割することにより複数の第1のデータを生成するデータ生成ステップと、データ生成ステップの処理により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換ステップと、変換ステップの処理により複数の第1のデータが変換されて得られた複数の第2のデータを、それぞれパケット化し、他の送受信装置に送信するように制御する送信制御ステップと、他の送受信装置が送信した複数の第2のデータを、第2のデータが対応する第1のデータの数以上受信するように制御する受信制御ステップと、受信制御ステップの処理により制御されて受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持ステップと、保持ステップの処理により保持される複数の第2のデータを用いて、第2のデータに対応する行列式を生成し、行列式を解くことにより、第1のデータを復元する復元ステップとを含むことを特徴とする。   The transmission / reception method of the present invention includes a data generation step for generating a plurality of first data by dividing transmission data, and a set including all the first data generated by the processing of the data generation step as elements. A subset consisting of any continuous element group that is a part of the entire set is set from the entire set, a plurality of first data are arbitrarily selected from the set subset, and the selected first Conversion step of converting a plurality of first data into a plurality of second data by performing an exclusive OR operation on each other bit by bit and obtaining a second data as an operation result for a plurality of subsets Then, a plurality of second data obtained by converting the plurality of first data by the conversion step process are respectively packetized and transmitted so as to be transmitted to other transmission / reception devices. A control step, a reception control step for controlling a plurality of second data transmitted by other transmission / reception devices so as to receive more than the number of first data corresponding to the second data, and a process of the reception control step Using a holding step for holding second data that is equal to or more than the number of first data to which the second data corresponds, and a plurality of second data held by the processing of the holding step. And a restoration step of restoring the first data by generating a determinant corresponding to the second data and solving the determinant.

本発明の第3のプログラムは、送信用データを分割することにより複数の第1のデータを生成するデータ生成ステップと、データ生成ステップの処理により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換ステップと、変換ステップの処理により複数の第1のデータが変換されて得られた複数の第2のデータを、それぞれパケット化し、他の送受信装置に送信するように制御する送信制御ステップと、他の送受信装置が送信した複数の第2のデータを、第2のデータが対応する第1のデータの数以上受信するように制御する受信制御ステップと、受信制御ステップの処理により制御されて受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持ステップと、保持ステップの処理により保持される複数の第2のデータを用いて、第2のデータに対応する行列式を生成し、行列式を解くことにより、第1のデータを復元する復元ステップとをコンピュータに実行させる。   The third program according to the present invention includes a data generation step of generating a plurality of first data by dividing the transmission data and all the first data generated by the processing of the data generation step. Set a set as a whole set, set a subset consisting of any continuous element group that is a part of the whole set from the whole set, arbitrarily select a plurality of first data from the set subset, The plurality of first data is converted into a plurality of second data by performing an exclusive OR operation on the first data for each bit and obtaining the second data as the operation result for a plurality of subsets. Control is performed so that the conversion step and the plurality of second data obtained by converting the plurality of first data by the processing of the conversion step are respectively packetized and transmitted to other transmission / reception devices. A transmission control step, a reception control step for controlling a plurality of second data transmitted by other transmission / reception devices so as to receive more than the number of first data corresponding to the second data, and a reception control step A holding step for holding second data that is equal to or more than the number of first data to which the second data corresponds is received by being controlled by the processing, and a plurality of second data held by the processing of the holding step And generating a determinant corresponding to the second data and solving the determinant to cause the computer to execute a restoration step of restoring the first data.

本発明の送受信システムにおいては、送信用データを送信する送信装置と、送信装置により送信される送信用データを受信する受信装置とが備えられ、送信装置においては、送信用データを分割することにより複数の第1のデータが生成され、生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合が設定され、設定された部分集合より第1のデータが任意に複数選択され、選択された複数の第1のデータが互いにビット毎に排他的論理和演算され、演算結果である第2のデータが複数の部分集合について求められることにより、複数の第1のデータが複数の第2のデータに変換され、得られた複数の第2のデータがそれぞれパケット化されて、受信装置に送信され、受信装置においては、送信装置が送信したデータであり、それぞれが、送信用データが分割されて生成された全ての第1のデータ要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合が設定され、設定された部分集合より第1のデータが任意に複数選択され、選択した複数の第1のデータが互いにビット毎に排他的論理和演算され、排他的論理和演算の演算結果として複数の部分集合について求められた複数の第2のデータが、第2のデータが対応する第1のデータの数以上受信され、受信された第2のデータが対応する第1のデータの数以上の第2のデータが保持され、保持された複数の第2のデータを用いて、第2のデータに対応する行列式が生成され、行列式を解くことにより、第1のデータが復元される。   The transmission / reception system of the present invention includes a transmission device that transmits transmission data and a reception device that receives transmission data transmitted by the transmission device. In the transmission device, the transmission data is divided. A plurality of first data is generated, and a set including all the generated first data as elements is set as a whole set, and a subset including any continuous element group that is a part of the whole set from the whole set. The plurality of first data are arbitrarily selected from the set subset, and the selected plurality of first data are subjected to exclusive OR operation for each bit, and the second data as the operation result is obtained. By obtaining a plurality of subsets, a plurality of first data is converted into a plurality of second data, and the plurality of second data obtained are respectively packetized and received by a receiving device. In the receiving device, the data transmitted by the transmitting device is set as a whole set, and each set is a whole set of all first data elements generated by dividing the transmission data. A subset consisting of any continuous element group that is a part of is set, the first data is arbitrarily selected from the set subset, and the selected first data is mutually exclusive for each bit A plurality of pieces of second data calculated for the plurality of subsets as a result of the exclusive OR operation are received and received by the number of the first data corresponding to the second data. Second data equal to or more than the number of first data corresponding to the second data is held, and a determinant corresponding to the second data is generated using the plurality of held second data, Solve determinant A result, the first data is restored.

本発明の送信装置および方法、並びに第1のプログラムにおいては、送信用データを分割することにより複数の第1のデータが生成され、生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合が設定され、設定された部分集合より第1のデータが任意に複数選択され、選択された複数の第1のデータが互いにビット毎に排他的論理和演算され、演算結果である第2のデータが複数の部分集合について求められることにより、複数の第1のデータが複数の第2のデータに変換され、複数の第1のデータを変換して得られた複数の第2のデータが、それぞれパケット化されて、受信装置に送信される。   In the transmission apparatus and method and the first program of the present invention, a plurality of first data is generated by dividing the transmission data, and the entire set including all the generated first data as elements As a set, a subset composed of an arbitrary continuous element group that is a part of the entire set is set from the entire set, a plurality of first data are arbitrarily selected from the set subset, and a plurality of selected first data The first data is subjected to an exclusive OR operation for each bit, and the second data as the operation result is obtained for a plurality of subsets, whereby the plurality of first data is converted into the plurality of second data. The plurality of second data obtained by converting the plurality of first data is packetized and transmitted to the receiving device.

本発明の受信装置および方法、並びに第2のプログラムにおいては、送信装置が送信したデータであり、それぞれが、送信用データが分割されて生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、排他的論理和演算の演算結果として複数の部分集合について求められた複数の第2のデータが、第2のデータが対応する第1のデータの数以上受信され、受信された、第2のデータが対応する第1のデータの数以上の第2のデータが保持され、保持された複数の第2のデータを用いて、第2のデータに対応する行列式が生成され、行列式を解くことにより、第1のデータが復元される。   In the receiving apparatus and method and the second program of the present invention, each of the data transmitted by the transmitting apparatus is a set including all the first data generated by dividing the transmission data. A subset consisting of any continuous element group that is a part of the entire set is set from the entire set, a plurality of first data are arbitrarily selected from the set subset, and the selected first Are obtained by performing an exclusive OR operation on each data bit by bit, and a plurality of second data obtained for a plurality of subsets as a result of the exclusive OR operation is the first data corresponding to the second data The second data having the number equal to or greater than the number of the received first data corresponding to the second data is retained, and the second data is stored using the plurality of retained second data. Matrix corresponding to There is produced, by solving the matrix equation, first data is restored.

本発明の送受信装置および方法、並びに第3のプログラムにおいては、送信用データを分割することにより複数の第1のデータが生成され、生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の部分集合について求めることにより、複数の第1のデータが複数の第2のデータに変換され、複数の第1のデータが変換されて得られた複数の第2のデータがそれぞれパケット化されて、他の送受信装置に送信され、他の送受信装置が送信した複数の第2のデータが、第2のデータが対応する第1のデータの数以上受信され、受信された、第2のデータが対応する第1のデータの数以上の第2のデータが保持され、保持された複数の第2のデータを用いて、第2のデータに対応する行列式が生成されて、行列式を解くことにより、第1のデータが復元される。   In the transmission / reception device and method and the third program of the present invention, a plurality of first data is generated by dividing the transmission data, and the entire set including all the generated first data as elements Set a subset of any continuous element group that is a part of the whole set from the whole set, arbitrarily select a plurality of first data from the set subset, and select the plurality of first By performing an exclusive OR operation on the data bit by bit and obtaining the second data as the operation result for a plurality of subsets, the plurality of first data is converted into the plurality of second data, The plurality of second data obtained by converting the first data is packetized and transmitted to other transmission / reception devices, and the plurality of second data transmitted by the other transmission / reception devices is the second data More than the number of corresponding first data is received, and the received second data is more than the number of first data corresponding to the second data, and a plurality of second data held is used. Thus, a determinant corresponding to the second data is generated, and the first data is restored by solving the determinant.

本発明によれば、データを送受信することができる。特に、データの送受信をより正確、かつ、より容易に行うことができる。   According to the present invention, data can be transmitted and received. In particular, data can be transmitted and received more accurately and easily.

以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。   Embodiments of the present invention will be described below. Correspondences between constituent elements described in the claims and specific examples in the embodiments of the present invention are exemplified as follows. This description is to confirm that specific examples supporting the invention described in the claims are described in the embodiments of the invention. Therefore, even if there are specific examples that are described in the embodiment of the invention but are not described here as corresponding to the configuration requirements, the specific examples are not included in the configuration. It does not mean that it does not correspond to a requirement. On the contrary, even if a specific example is described here as corresponding to a configuration requirement, this means that the specific example does not correspond to a configuration requirement other than the configuration requirement. not.

さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定したりするものではない。   Further, this description does not mean that all the inventions corresponding to the specific examples described in the embodiments of the invention are described in the claims. In other words, this description is an invention corresponding to the specific example described in the embodiment of the invention, and the existence of an invention not described in the claims of this application, that is, in the future, a divisional application will be made. Nor does it deny the existence of an invention added by amendment.

本発明においては、送信用データ(例えば、図4の送信データ41)を送信する送信装置(例えば、図2の送信装置11)と、送信装置により送信される送信用データを受信する受信装置(例えば、図2の受信装置13)を備える送受信システム(例えば、図2の通信システム10)が提供される。送信装置は、送信用データを分割することにより複数の第1のデータ(例えば、図4の元データ43)を生成し(例えば、図17のステップS2)、生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合(例えば、図8の有効係数の存在可能範囲)を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータ(例えば、図4のEOR変換データ44)に変換し(例えば、図17のステップS6)、得られた複数の第2のデータをそれぞれパケット化し、受信装置に送信し(例えば、図17のステップS8)、受信装置は、送信装置が送信した複数の第2のデータを、第2のデータが対応する第1のデータの数以上受信し(例えば、図20のステップS81)、受信した第2のデータが対応する第1のデータの数以上の第2のデータを保持し(例えば、図20のステップS83)、保持した複数の第2のデータを用いて、第2のデータに対応する行列式を生成し、行列式を解くことにより、第1のデータを復元する(例えば、図20のステップS85)。   In the present invention, a transmission device (for example, the transmission device 11 in FIG. 2) that transmits data for transmission (for example, transmission data 41 in FIG. 4) and a reception device (for example, the transmission device 11 in FIG. 2) that receives transmission data transmitted by the transmission device. For example, a transmission / reception system (for example, the communication system 10 in FIG. 2) including the receiving device 13 in FIG. 2 is provided. The transmission device generates a plurality of first data (for example, the original data 43 in FIG. 4) by dividing the transmission data (for example, step S2 in FIG. 17), and all the generated first data. The set with the element as a whole set is set, and a subset (for example, the possible range of the effective coefficient in FIG. 8) consisting of any continuous element group that is a part of the whole set is set from the whole set. By arbitrarily selecting a plurality of first data from the set, performing an exclusive OR operation on the selected plurality of first data for each bit, and obtaining the second data as the operation result for a plurality of subsets The plurality of first data is converted into a plurality of second data (for example, EOR converted data 44 in FIG. 4) (for example, step S6 in FIG. 17), and the obtained plurality of second data is respectively packetized. And receiving equipment (For example, step S8 in FIG. 17), and the receiving apparatus receives a plurality of pieces of second data transmitted by the transmitting apparatus by the number of first data corresponding to the second data (for example, FIG. 17). 20 step S81), the second data that is equal to or more than the number of the first data corresponding to the received second data is held (for example, step S83 in FIG. 20), and the plurality of held second data is used. Then, a determinant corresponding to the second data is generated, and the first data is restored by solving the determinant (for example, step S85 in FIG. 20).

本発明においては、送信用データ(例えば、図4の送信データ41)を受信装置(例えば、図2の受信装置13)に送信する送信装置(例えば、図2の送信装置11)が提供される。この送信装置は、送信用データを分割することにより複数の第1のデータ(例えば、図4の元データ43)を生成するデータ生成手段(例えば、図3のブロック分割部22)と、データ生成手段により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合(例えば、図8の有効係数の存在可能範囲)を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータ(例えば、図4の変換データ44)を複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換手段(例えば、図3のEOR変換データ生成部24)と、変換手段により複数の第1のデータを変換して得られた複数の第2のデータを、それぞれパケット化し、受信装置に送信する送信手段(例えば、図3のUDPパケット化部27乃至イーサネット(R)処理部31)とを備える。   In the present invention, a transmission device (for example, the transmission device 11 in FIG. 2) for transmitting transmission data (for example, the transmission data 41 in FIG. 4) to a reception device (for example, the reception device 13 in FIG. 2) is provided. . The transmission apparatus includes a data generation unit (for example, the block division unit 22 in FIG. 3) that generates a plurality of first data (for example, the original data 43 in FIG. 4) by dividing the transmission data, and data generation A set consisting of all the first data generated by the means as an element is defined as an entire set, and a subset (for example, the effective coefficient of FIG. A plurality of first data is arbitrarily selected from the set subset, and the selected plurality of first data is subjected to an exclusive OR operation for each bit, and a second result is obtained. 4 (for example, conversion data 44 in FIG. 4) is obtained for a plurality of subsets, thereby converting a plurality of first data into a plurality of second data (for example, EOR conversion data generation in FIG. 3). Part 2 ) And a plurality of second data obtained by converting the plurality of first data by the conversion unit, respectively, and packetizing and transmitting to the receiving device (for example, the UDP packetizing unit 27 to 27 in FIG. 3) Ethernet (R) processing unit 31).

前記変換手段は、排他的論理和演算を行う第1のデータを選択するための係数行列(例えば、式(3)の右辺第1項の行列)を用いて第1のデータを第2のデータに変換する行列式(例えば、式(3))を生成する行列式生成手段(例えば、図6の行列式生成部61)と、行列式生成手段により生成された行列式を、排他的論理和演算を用いて演算することにより第2のデータを求める演算手段(例えば、図6の行列式演算部62)とを備えるようにすることができる。   The converting means converts the first data into the second data by using a coefficient matrix (for example, the matrix of the first term on the right side of Expression (3)) for selecting the first data to be subjected to the exclusive OR operation. A determinant generating unit (for example, the determinant generating unit 61 in FIG. 6) that generates a determinant (for example, Equation (3)) to be converted into a determinant and the determinant generated by the determinant generating unit are exclusive ORed. An arithmetic means (for example, a determinant arithmetic unit 62 in FIG. 6) that obtains the second data by performing an arithmetic operation can be provided.

前記係数行列は、値が「1」の成分である有効係数と、値が「0」の成分である無効係数とにより構成され、有効係数は、係数行列の各行に対して部分集合として設定される有効係数が存在可能な列の範囲(例えば、図8の有効係数の存在可能範囲)内において任意に選択された成分であり、各行の範囲は、範囲の列数が互いに同じであり、範囲の先頭の列が行毎に互いに異なるように設定されるようにすることができる。   The coefficient matrix is composed of an effective coefficient having a value of “1” and an invalid coefficient having a value of “0”, and the effective coefficient is set as a subset for each row of the coefficient matrix. 8 is a component arbitrarily selected within the range of columns in which effective coefficients can exist (for example, the possible range of effective coefficients in FIG. 8), and each row range has the same number of columns in the range. Can be set so that the first column of each is different for each row.

前記範囲を行毎に設定する範囲設定手段(例えば、図6の範囲制御部84)と、範囲設定手段により設定された範囲に基づいて、係数行列の各成分の値を判定する判定手段(例えば、図6の係数判定部85)と、判定手段による判定結果に基づいて係数行列の全ての成分の値を保持することにより係数行列を保持する係数行列保持手段(例えば、図6の係数行列保持部71)とをさらに備え、行列式生成手段は、係数行列保持手段により保持されている係数行列を用いて行列式を生成する(例えば、図18のステップS39)ようにすることができる。   Range setting means (for example, the range control unit 84 in FIG. 6) that sets the range for each row, and determination means (for example, that determines the value of each component of the coefficient matrix based on the range set by the range setting means) 6, coefficient determination unit 85) and coefficient matrix holding means for holding the coefficient matrix by holding the values of all components of the coefficient matrix based on the determination result by the determination means (for example, coefficient matrix holding in FIG. 6) The determinant generating means can generate a determinant using the coefficient matrix held by the coefficient matrix holding means (for example, step S39 in FIG. 18).

前記変換手段により第1のデータを変換して得られた第2のデータに、範囲に関する情報(例えば、図10の先頭情報122)を付加する情報付加手段(例えば、図9の先頭情報付加部102)をさらに備え、送信手段は、情報付加手段により情報が付加された複数の第2のデータをそれぞれパケット化し、受信装置に送信するようにすることができる。   Information adding means (for example, the head information adding unit in FIG. 9) for adding information about the range (for example, head information 122 in FIG. 10) to the second data obtained by converting the first data by the converting means. 102), and the transmission means may packet each of the plurality of second data to which the information is added by the information addition means, and transmit the packetized data to the reception apparatus.

前記データ生成手段は、送信用データをブロック(例えば、図4のブロック42)に分割し、さらに、ブロックを分割することができる。   The data generation means can divide the transmission data into blocks (for example, the block 42 in FIG. 4) and further divide the blocks.

本発明においては、送信用データ(例えば、図4の送信データ41)を受信装置(例えば、図2の受信装置13)に送信する送信装置(例えば、図2の送信装置11)の送信方法が提供される。この送信方法は、送信用データを分割することにより複数の第1のデータ(例えば、図4の元データ43)を生成するデータ生成ステップ(例えば、図17のステップS2)と、データ生成ステップの処理により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合(例えば、図8の有効係数の存在可能範囲)を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータ(例えば、図4のEOR変換データ44)を複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換ステップ(例えば、図17のステップS6)と、変換ステップの処理により複数の第1のデータが変換されて得られた複数の第2のデータを、それぞれパケット化し、受信装置に送信するように制御する送信制御ステップ(例えば、図17のステップS8)とを含む。   In the present invention, there is a transmission method of a transmission apparatus (for example, the transmission apparatus 11 in FIG. 2) that transmits transmission data (for example, the transmission data 41 in FIG. 4) to a reception apparatus (for example, the reception apparatus 13 in FIG. 2). Provided. This transmission method includes a data generation step (for example, step S2 in FIG. 17) for generating a plurality of first data (for example, the original data 43 in FIG. 4) by dividing the transmission data, and a data generation step. A set including all the first data generated by the process as an element is defined as an entire set, and a subset (for example, the effective coefficient of FIG. A plurality of first data is arbitrarily selected from the set subset, and the selected plurality of first data is subjected to an exclusive OR operation for each bit, and a second result is obtained. (For example, EOR conversion data 44 in FIG. 4) for a plurality of subsets, thereby converting a plurality of first data into a plurality of second data (for example, a step in FIG. 17). S6) and a transmission control step (for example, control is performed so that the plurality of second data obtained by converting the plurality of first data by the conversion step processing are packetized and transmitted to the receiving device, respectively) , And step S8) of FIG.

本発明においては、送信用データ(例えば、図4の送信データ41)を受信装置(例えば、図2の受信装置13)に送信する送信処理をコンピュータ(例えば、図2の送信装置11)に実行させる第1のプログラムが提供される。この第1のプログラムは、送信用データを分割することにより複数の第1のデータ(例えば、図4の元データ43)を生成するデータ生成ステップ(例えば、図17のステップS2)と、データ生成ステップの処理により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合(例えば、図8の有効係数の存在可能範囲)を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータ(例えば、図4のEOR変換データ44)を複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換ステップ(例えば、図17のステップS6)と、変換ステップの処理により複数の第1のデータが変換されて得られた複数の第2のデータを、それぞれパケット化し、受信装置に送信するように制御する送信制御ステップ(例えば、図17のステップS8)とを含む。   In the present invention, transmission processing for transmitting transmission data (for example, transmission data 41 in FIG. 4) to a reception device (for example, reception device 13 in FIG. 2) is executed in a computer (for example, transmission device 11 in FIG. 2). A first program is provided. The first program includes a data generation step (for example, step S2 in FIG. 17) for generating a plurality of first data (for example, the original data 43 in FIG. 4) by dividing the transmission data, and data generation A set including all the first data generated by the processing of the step as an element is defined as an entire set, and a subset including any continuous element group that is a part of the entire set from the entire set (for example, the effective set of FIG. 8 The coefficient existence range) is set, a plurality of first data are arbitrarily selected from the set subset, and the selected plurality of first data are subjected to an exclusive OR operation for each bit and obtained as a calculation result. A conversion step (for example, FIG. 4) for converting a plurality of first data into a plurality of second data by obtaining second data (for example, EOR conversion data 44 in FIG. 4) for a plurality of subsets. 7 and step S6), and a transmission control step for controlling the plurality of pieces of second data obtained by converting the plurality of pieces of first data into packets and transmitting them to the receiving device (step S6). For example, it includes step S8) of FIG.

本発明においては、送信装置(例えば、図2の送信装置11)が送信したデータを受信する受信装置(例えば、図2の受信装置13)が提供される。この受信装置は、送信装置が送信したデータであり、それぞれが、送信用データ(例えば、図4の送信データ41)が分割されて生成された全ての第1のデータ(例えば、図4の元データ43)を要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合(例えば、図8の有効係数の存在可能範囲)を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、排他的論理和演算の演算結果として複数の部分集合について求められた複数の第2のデータ(例えば、図4の変換データ44)を、第2のデータが対応する第1のデータの数以上受信する受信手段(例えば、図11のイーサネット(R)処理部131乃至アプリケーションデータ抽出部133)と、受信手段により受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持手段(例えば、図11のバッファ部134)と、保持手段により保持される複数の第2のデータを用いて、第2のデータに対応する行列式を生成し、行列式を解くことにより、第1のデータを復元する復元手段(例えば、図13のパケットデータ復元部135)とを備える。   In the present invention, a receiving device (for example, the receiving device 13 in FIG. 2) that receives data transmitted by a transmitting device (for example, the transmitting device 11 in FIG. 2) is provided. This receiving device is data transmitted by the transmitting device, and each of them is all the first data (for example, the original data in FIG. 4) generated by dividing the transmission data (for example, the transmitting data 41 in FIG. 4). A set having the data 43) as an element is set as an entire set, and a subset (for example, a possible range of effective coefficients in FIG. 8) including any continuous element group that is a part of the entire set is set from the entire set. A plurality of first data are arbitrarily selected from the set subset, and the selected plurality of first data are subjected to an exclusive OR operation for each bit, and a plurality of subsets are obtained as an operation result of the exclusive OR operation. Receiving means (for example, Ethernet (R) processing in FIG. 11) that receives a plurality of obtained second data (for example, converted data 44 in FIG. 4) more than the number of first data corresponding to the second data. Part 131 to a Application data extraction unit 133), and holding unit (for example, buffer unit 134 in FIG. 11) that holds the second data that is received by the receiving unit and that is equal to or more than the number of first data corresponding to the second data. , Using a plurality of second data held by the holding means, a determinant corresponding to the second data is generated, and the determinant is solved to restore the first data (for example, FIG. 13 packet data restoring units 135).

前記復元手段は、排他的論理和演算を行う第1のデータを選択するための係数行列(例えば、式(4)の右辺第1項の行列)を用いて第1のデータを第2のデータに変換する行列式(例えば、式(4))を生成する行列式生成手段(例えば、図13の行列式作成部153)と、行列式生成手段により生成された行列式を第1のデータを変数として解き、第1のデータを求める演算手段(例えば、図13の行列式演算部157)とを備えるようにすることができる。   The restoration means converts the first data to the second data using a coefficient matrix (for example, the matrix of the first term on the right side of Expression (4)) for selecting the first data to be subjected to the exclusive OR operation. The determinant generating means (for example, the determinant creating unit 153 in FIG. 13) that generates the determinant (for example, the expression (4)) to be converted into the determinant generating means, Calculation means (for example, a determinant calculation unit 157 in FIG. 13) that solves as a variable and obtains first data may be provided.

前記係数行列は、値が「1」の成分である有効係数と、値が「0」の成分である無効係数とにより構成され、有効係数は、係数行列の各行に対して部分集合として設定される有効係数が存在可能な列の範囲(例えば、図8の有効係数の存在可能範囲)内において任意に選択された成分であり、各行の範囲は、範囲の列数が互いに同じであり、範囲の先頭の列が行毎に互いに異なるように設定されるようにすることができる。   The coefficient matrix is composed of an effective coefficient having a value of “1” and an invalid coefficient having a value of “0”, and the effective coefficient is set as a subset for each row of the coefficient matrix. 8 is a component arbitrarily selected within the range of columns in which effective coefficients can exist (for example, the possible range of effective coefficients in FIG. 8), and each row range has the same number of columns in the range. Can be set so that the first column of each is different for each row.

前記受信手段により受信された第2のデータに付加された、排他的論理和演算を行う複数の第1のデータを任意に選択する範囲(例えば、図8の有効係数の存在可能範囲)に関する情報(例えば、図10の先頭情報122)に基づいて、係数行列を生成する係数行列生成手段(例えば、図13の係数行列作成部152)をさらに備え、行列式生成手段は、係数行列生成手段により生成された係数行列を用いて、行列式を生成するようにすることができる。   Information relating to a range (for example, a possible range of effective coefficients in FIG. 8) arbitrarily selected from a plurality of first data to be subjected to exclusive OR operation added to the second data received by the receiving means. Based on (for example, the head information 122 in FIG. 10), the apparatus further includes coefficient matrix generation means (for example, the coefficient matrix generation unit 152 in FIG. 13) for generating a coefficient matrix. A determinant can be generated using the generated coefficient matrix.

前記係数行列の各成分を所定の行数および列数毎に複数の小領域(例えば、図16のタイル163)に分割し、各小領域の成分の値に基づいて、行列式生成手段により生成された行列式の、小領域に対応する部分の演算を行うか否かを判定する演算判定手段(例えば、図13のタイル処理部156)をさらに備え、演算手段は、行列式生成手段により生成された行列式の、演算判定手段により演算を行うと判定された部分についてのみ演算を行って、第1のデータを変数として解くことにより第1のデータを求めるようにすることができる。   Each component of the coefficient matrix is divided into a plurality of small regions (for example, tile 163 in FIG. 16) for each predetermined number of rows and columns, and generated by a determinant generation unit based on the component values of each small region. The apparatus further includes calculation determination means (for example, the tile processing unit 156 in FIG. 13) for determining whether or not to perform the calculation of the portion corresponding to the small area of the determinant, and the calculation means is generated by the determinant generation means The first data can be obtained by calculating only the portion of the determinant determined to be calculated by the calculation determination means and solving the first data as a variable.

本発明においては、送信装置(例えば、図2の送信装置11)が送信したデータを受信する受信装置(例えば、図2の受信装置13)の受信方法が提供される。この受信方法は、送信装置が送信したデータであり、それぞれが、送信用データ(例えば、図4の送信データ41)が分割されて生成された全ての第1のデータ(例えば、図4の元データ43)を要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合(例えば、図8の有効係数の存在可能範囲)を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、排他的論理和演算の演算結果として複数の部分集合について求められた複数の第2のデータ(例えば、図4の変換データ44)を、第2のデータが対応する第1のデータの数以上受信するように制御する受信制御ステップ(例えば、図20のステップS81)と、受信制御ステップの処理により制御されて受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持ステップ(例えば、図20のステップS83)と、保持ステップの処理により保持される複数の第2のデータを用いて、第2のデータに対応する行列式(例えば、式(4))を生成し、行列式を解くことにより、第1のデータを復元する復元ステップ(例えば、図20のステップS85)とを含む。   In the present invention, a receiving method of a receiving device (for example, the receiving device 13 in FIG. 2) that receives data transmitted by a transmitting device (for example, the transmitting device 11 in FIG. 2) is provided. This reception method is data transmitted by the transmission device, and each of them is all the first data (for example, the original data in FIG. 4) generated by dividing the transmission data (for example, the transmission data 41 in FIG. 4). A set having the data 43) as an element is set as an entire set, and a subset (for example, a possible range of effective coefficients in FIG. 8) including any continuous element group that is a part of the entire set is set from the entire set. A plurality of first data are arbitrarily selected from the set subset, and the selected plurality of first data are subjected to an exclusive OR operation for each bit, and a plurality of subsets are obtained as an operation result of the exclusive OR operation. A reception control step (for example, FIG. 20) that controls the plurality of obtained second data (for example, converted data 44 in FIG. 4) to receive more than the number of first data corresponding to the second data. Step S 1) and a holding step for holding the second data that is controlled by the processing of the reception control step and is equal to or more than the number of the first data corresponding to the second data (for example, step S83 in FIG. 20). And generating a determinant (for example, Expression (4)) corresponding to the second data using the plurality of second data held by the process of the holding step, and solving the determinant to obtain the first A restoring step (e.g., step S85 in FIG. 20).

本発明においては、送信装置(例えば、図2の送信装置11)が送信したデータを受信する受信処理をコンピュータ(例えば、図2の受信装置13)に実行させる第2のプログラムが提供される。この第2のプログラムは、送信装置が送信したデータであり、それぞれが、送信用データ(例えば、図4の送信データ41)が分割されて生成された全ての第1のデータ(例えば、図4の元データ43)を要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合(例えば、図8の有効係数の存在可能範囲)を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、排他的論理和演算の演算結果として複数の部分集合について求められた複数の第2のデータ(例えば、図4の変換データ44)を、第2のデータが対応する第1のデータの数以上受信するように制御する受信制御ステップ(例えば、図20のステップS81)と、受信制御ステップの処理により制御されて受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持ステップ(例えば、図20のステップS83)と、保持ステップの処理により保持される複数の第2のデータを用いて、第2のデータに対応する行列式(例えば、式(4))を生成し、行列式を解くことにより、第1のデータを復元する復元ステップ(例えば、図20のステップS85)とを含む。   In the present invention, there is provided a second program for causing a computer (for example, the receiving device 13 in FIG. 2) to execute a receiving process for receiving data transmitted by a transmitting device (for example, the transmitting device 11 in FIG. 2). The second program is data transmitted by the transmission device, and each of the first programs is all the first data (for example, FIG. 4) generated by dividing the transmission data (for example, transmission data 41 in FIG. 4). A set consisting of the original data 43) as an element is set as an entire set, and a subset consisting of any continuous element group that is a part of the entire set (for example, the range in which the effective coefficient can exist in FIG. 8) is set. Then, a plurality of first data are arbitrarily selected from the set subset, and the plurality of selected first data are subjected to an exclusive OR operation for each bit, and a plurality of portions are obtained as an operation result of the exclusive OR operation. A reception control step (for example, FIG. 4) for controlling a plurality of second data (for example, converted data 44 in FIG. 4) obtained for the set so as to receive more than the number of first data corresponding to the second data. 20 Su S81) and a holding step (for example, the step of FIG. 20) that holds the second data that is controlled by the processing of the reception control step and that is equal to or more than the number of the first data corresponding to the second data. S83) and a plurality of second data held by the holding step process are used to generate a determinant (eg, equation (4)) corresponding to the second data, and by solving the determinant, A restoring step (eg, step S85 in FIG. 20) for restoring the first data.

本発明においては、送信用データ(例えば、図4の送信データ41)を送受信する送受信装置(例えば、図31の送受信装置411または送受信装置413)が提供される。この送受信装置は、送信用データを分割することにより複数の第1のデータ(例えば、図4の元データ43)を生成するデータ生成手段(例えば、図3のブロック分割部22)と、データ生成手段により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合(例えば、図8の有効係数の存在可能範囲)を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータ(例えば、図4の変換データ44)を複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換手段(例えば、図3のEOR変換データ生成部24)と、変換手段により複数の第1のデータが変換されて得られた複数の第2のデータをそれぞれパケット化し、他の送受信装置に送信する送信手段(例えば、図3のUDPパケット化部27乃至イーサネット(R)処理部31)と、他の送受信装置が送信した複数の第2のデータを、第2のデータが対応する第1のデータの数以上受信する受信手段(例えば、図11のイーサネット(R)処理部131乃至アプリケーションデータ抽出部133)と、受信手段により受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持手段(例えば、図11のバッファ部134)と、保持手段により保持される複数の第2のデータを用いて、第2のデータに対応する行列式を生成し、行列式を解くことにより、第1のデータを復元する復元手段(例えば、図13のパケットデータ復元部135)とを備える。   In the present invention, a transmission / reception apparatus (for example, the transmission / reception apparatus 411 or the transmission / reception apparatus 413 in FIG. 31) for transmitting / receiving transmission data (for example, transmission data 41 in FIG. 4) is provided. The transmission / reception apparatus includes a data generation unit (for example, the block division unit 22 in FIG. 3) that generates a plurality of first data (for example, the original data 43 in FIG. 4) by dividing the transmission data, and data generation A set consisting of all the first data generated by the means as an element is defined as an entire set, and a subset (for example, the effective coefficient of FIG. A plurality of first data is arbitrarily selected from the set subset, and the selected plurality of first data is subjected to an exclusive OR operation for each bit, and a second result is obtained. 4 (for example, conversion data 44 in FIG. 4) is obtained for a plurality of subsets, thereby converting a plurality of first data into a plurality of second data (for example, EOR conversion data generation in FIG. 3). Part 4) and transmission means for packetizing a plurality of second data obtained by converting a plurality of first data by the conversion means and transmitting them to other transmission / reception devices (for example, the UDP packetization unit in FIG. 3) 27 to the Ethernet (R) processing unit 31) and a plurality of second data transmitted by other transmission / reception apparatuses, the receiving means (for example, FIG. 11) receiving more than the number of first data corresponding to the second data. Ethernet (R) processing unit 131 to application data extraction unit 133) and receiving means (for example, holding means for holding second data equal to or more than the number of first data corresponding to the second data received by the receiving means) 11) and a plurality of second data held by the holding means, a determinant corresponding to the second data is generated, and the first data is solved by solving the determinant. Recover Restoring means for (e.g., packet data restoring unit 135 of FIG. 13) and a.

本発明においては、送信用データ(例えば、図4の送信データ41)を送受信する送受信装置(例えば、図31の送受信装置411または送受信装置413)の送受信方法が提供される。この送受信方法は、送信用データを分割することにより複数の第1のデータ(例えば、図4の元データ43)を生成するデータ生成ステップ(例えば、図17のステップS2)と、データ生成ステップの処理により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合(例えば、図8の有効係数の存在可能範囲)を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータ(例えば、図4のEOR変換データ44)を複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換ステップ(例えば、図17のステップS6)と、変換ステップの処理により複数の第1のデータが変換されて得られた複数の第2のデータを、それぞれパケット化し、他の送受信装置に送信するように制御する送信制御ステップ(例えば、図17のステップS8)と、他の送受信装置が送信した複数の第2のデータを、第2のデータが対応する第1のデータの数以上受信するように制御する受信制御ステップ(例えば、図20のステップS81)と、受信制御ステップの処理により制御されて受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持ステップ(例えば、図20のステップS83)と、保持ステップの処理により保持される複数の第2のデータを用いて、第2のデータに対応する行列式(例えば、式(4))を生成し、行列式を解くことにより、第1のデータを復元する復元ステップ(例えば、図20のステップS85)とを含む。   In the present invention, a transmission / reception method of a transmission / reception apparatus (for example, the transmission / reception apparatus 411 or the transmission / reception apparatus 413 of FIG. 31) for transmitting / receiving transmission data (for example, transmission data 41 of FIG. 4) is provided. This transmission / reception method includes a data generation step (for example, step S2 in FIG. 17) for generating a plurality of first data (for example, original data 43 in FIG. 4) by dividing the transmission data, and a data generation step. A set including all the first data generated by the process as an element is defined as an entire set, and a subset (for example, the effective coefficient of FIG. A plurality of first data is arbitrarily selected from the set subset, and the selected plurality of first data is subjected to an exclusive OR operation for each bit, and a second result is obtained. (For example, EOR conversion data 44 in FIG. 4) for a plurality of subsets, thereby converting a plurality of first data into a plurality of second data (for example, in FIG. 17). Step S6) and a transmission control step (control for packetizing the plurality of second data obtained by converting the plurality of first data by the process of the conversion step and transmitting them to other transmission / reception devices) For example, step S8 in FIG. 17 and a reception control step (for example, control is performed so as to receive a plurality of second data transmitted by other transmission / reception apparatuses so as to receive more than the number of first data corresponding to the second data) , Step S81 in FIG. 20, and a holding step (for example, FIG. 20) that holds the second data that is controlled by the process of the reception control step and is equal to or more than the number of the first data corresponding to the second data. 20 using step S83) and a plurality of second data held by the holding step, a determinant (eg, equation (4)) corresponding to the second data is generated, By solving the equation, including restoration step for restoring the first data (e.g., step S85 of FIG. 20) and.

本発明においては、送信用データ(例えば、図4の送信データ41)を送受信する送受信処理をコンピュータ(例えば、図18の送受信装置211または送受信装置213)に実行させる第3のプログラムが提供される。この第3のプログラムは、送信用データを分割することにより複数の第1のデータ(例えば、図4の元データ43)を生成するデータ生成ステップ(例えば、図17のステップS2)と、データ生成ステップの処理により生成された全ての第1のデータを要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合(例えば、図8の有効係数の存在可能範囲)を設定し、設定した部分集合より第1のデータを任意に複数選択し、選択した複数の第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータ(例えば、図4のEOR変換データ44)を複数の部分集合について求めることにより、複数の第1のデータを複数の第2のデータに変換する変換ステップ(例えば、図17のステップS6)と、変換ステップの処理により複数の第1のデータが変換されて得られた複数の第2のデータを、それぞれパケット化し、他の送受信装置に送信するように制御する送信制御ステップ(例えば、図17のステップS8)と、他の送受信装置が送信した複数の第2のデータを、第2のデータが対応する第1のデータの数以上受信するように制御する受信制御ステップ(例えば、図20のステップS81)と、受信制御ステップの処理により制御されて受信される、第2のデータが対応する第1のデータの数以上の第2のデータを保持する保持ステップ(例えば、図20のステップS83)と、保持ステップの処理により保持される複数の第2のデータを用いて、第2のデータに対応する行列式(例えば、式(4))を生成し、行列式を解くことにより、第1のデータを復元する復元ステップ(例えば、図20のステップS85)とを含む。   In the present invention, a third program for causing a computer (for example, the transmission / reception apparatus 211 or 213 of FIG. 18) to execute transmission / reception processing for transmitting / receiving transmission data (for example, transmission data 41 of FIG. 4) is provided. . The third program includes a data generation step (for example, step S2 in FIG. 17) for generating a plurality of first data (for example, the original data 43 in FIG. 4) by dividing the transmission data, and data generation A set including all the first data generated by the processing of the step as an element is defined as an entire set, and a subset including any continuous element group that is a part of the entire set from the entire set (for example, the effective set of FIG. 8 The coefficient existence range) is set, a plurality of first data are arbitrarily selected from the set subset, and the selected plurality of first data are subjected to an exclusive OR operation for each bit and obtained as a calculation result. A conversion step (for example, FIG. 4) for converting a plurality of first data into a plurality of second data by obtaining second data (for example, EOR conversion data 44 in FIG. 4) for a plurality of subsets. 7 and step S6), and transmission control for controlling the plurality of second data obtained by converting the plurality of first data by the processing of the conversion step into packets and transmitting them to other transmission / reception devices. Step (for example, step S8 in FIG. 17) and a reception control step for controlling a plurality of second data transmitted by other transmission / reception apparatuses so as to receive more than the number of first data corresponding to the second data. (For example, step S81 in FIG. 20) and a holding step (for example, holding second data equal to or more than the number of first data corresponding to the second data, which is controlled and received by the processing of the reception control step) , A determinant (for example, Expression (4)) corresponding to the second data is generated by using a plurality of second data held by the process of the holding step (Step S83 in FIG. 20). By solving the matrix equation, including restoration step for restoring the first data (e.g., step S85 of FIG. 20) and.

以下に、本発明の実施の形態について図面を参照して説明する。   Embodiments of the present invention will be described below with reference to the drawings.

図2は、本発明を適用した通信システムの構成例を表している。   FIG. 2 shows a configuration example of a communication system to which the present invention is applied.

図2の通信システム10は、データを送信する送信装置11、LAN(Local Area Network)やインターネット等に代表されるネットワークであり、送信装置11が接続されるネットワーク12、および、ネットワーク12に接続され、送信装置11より送信されるデータを受信する受信装置13により構成される。   The communication system 10 in FIG. 2 is a network represented by a transmission device 11 that transmits data, a LAN (Local Area Network), the Internet, and the like. The communication system 10 is connected to the network 12 to which the transmission device 11 is connected, and the network 12. The reception device 13 receives data transmitted from the transmission device 11.

送信装置11は、外部より供給されたダウンロードデータ等の、送信用のコンテンツデータ(送信用データ)を取得すると、その送信用データを分割して送信する際のパケットサイズのデータ(パケットデータ)を生成し、それらのパケットデータの中から任意に抽出した複数のパケットデータをビット毎のEOR演算(Exclusive OR:排他的論理和)によって合成することにより、パケットデータを実際に送信するEOR変換データに変換する。送信装置11は、このような要領で、パケットデータを変換したEOR変換データを複数生成し、それらをUDP(User Datagram Protocol)等の所定のプロトコルを用いてパケット化して送信する。   When the transmission device 11 acquires content data for transmission (transmission data) such as download data supplied from the outside, the transmission device 11 divides the data for packet transmission (packet data) when the transmission data is divided and transmitted. Generate and combine multiple packet data arbitrarily extracted from those packet data by bit-wise EOR operation (Exclusive OR) to create EOR-converted data for actual transmission of packet data Convert. The transmitter 11 generates a plurality of EOR converted data obtained by converting the packet data in such a manner, and packetizes and transmits them using a predetermined protocol such as UDP (User Datagram Protocol).

受信装置13は、送信装置11より供給されるパケット(EOR変換データ)を受信すると、受信したパケットからEOR変換データを抽出し、その受信したEOR変換データを用いて、元の送信用データを復元する。このとき、送信装置11は、受信装置13が元の送信用データを復元するのに必要な数以上のEOR変換データを受信装置13に送信し、受信装置13は、その送信されたEOR変換データの中から、少なくとも、元の送信用データを復元するのに必要な数以上のEOR変換データを受信する。なお、後述するように、送信装置11が送信するEOR変換データは、互いに独立であることが保証されていないので、実際には、受信装置13は、元の送信用データを復元することができるように、送信装置11より供給されるEOR変換データを必要数より多く受信する(マージン分を確保する)。受信装置13は、このようにEOR変換データを受信すると、それらのEOR変換データを用いて、EOR演算の行列式を生成し、その行列式の解を求めることにより、元の送信用データを復元する。送信装置11におけるEOR変換データの生成方法、および、受信装置13における元の送信用データの復元方法の詳細については後述する。   Upon receiving the packet (EOR conversion data) supplied from the transmission device 11, the reception device 13 extracts EOR conversion data from the received packet, and restores the original transmission data using the received EOR conversion data. To do. At this time, the transmission device 11 transmits more EOR conversion data than the number required for the reception device 13 to restore the original transmission data to the reception device 13, and the reception device 13 transmits the transmitted EOR conversion data. At least the number of EOR conversion data necessary for restoring the original transmission data is received. As will be described later, since the EOR conversion data transmitted by the transmission device 11 is not guaranteed to be independent from each other, the reception device 13 can actually restore the original transmission data. As described above, the EOR conversion data supplied from the transmission device 11 is received more than the necessary number (a margin is ensured). When the receiving device 13 receives the EOR conversion data in this way, the EOR conversion data is generated using the EOR conversion data, and the original transmission data is restored by obtaining a solution of the determinant. To do. Details of a method for generating EOR conversion data in the transmission device 11 and a method for restoring original transmission data in the reception device 13 will be described later.

このようにすることにより、受信装置13は、送信装置11が送信するパケットを全て受信しなくても、送信装置11に再送要求を行うことなく、送信装置11が送信した送信用データを復元することができる。   By doing so, the reception device 13 restores the transmission data transmitted by the transmission device 11 without making a retransmission request to the transmission device 11 even if the reception device 13 does not receive all the packets transmitted by the transmission device 11. be able to.

図3は、送信装置11の詳細な構成例を示すブロック図である。なお、送信装置11により処理される送信用データの変化を、図4を用いて説明する。   FIG. 3 is a block diagram illustrating a detailed configuration example of the transmission device 11. A change in transmission data processed by the transmission apparatus 11 will be described with reference to FIG.

図3において、送信装置11のデータ分割部21は、送信装置11の外部より供給されたコンテンツデータ等の送信データを所定のデータサイズのブロックに分割し、それをブロック分割部22に供給する。すなわち、データ分割部21は、供給される送信データを内蔵するバッファ(図示せず)に蓄積していき、所定のデータサイズのデータが蓄積される度に、それをブロックとしてブロック分割部22に供給する。   In FIG. 3, the data division unit 21 of the transmission device 11 divides transmission data such as content data supplied from the outside of the transmission device 11 into blocks having a predetermined data size, and supplies the blocks to the block division unit 22. That is, the data dividing unit 21 accumulates the supplied transmission data in a buffer (not shown), and each time data of a predetermined data size is accumulated, it is used as a block in the block dividing unit 22. Supply.

例えば、図4の場合、送信装置11に供給される送信データ41は、データ分割部21により、ブロックA乃至ブロックCの3つのブロック42に分割される。   For example, in the case of FIG. 4, the transmission data 41 supplied to the transmission device 11 is divided into three blocks 42 of blocks A to C by the data dividing unit 21.

図3に戻り、ブロック分割部22は、データ分割部21と同様にして、データ分割部21より供給されるブロック単位の送信データを、さらに所定のデータサイズに分割する。すなわち、ブロック分割部22は、ブロック単位の送信データを、後段において、パケット化する際のデータサイズ(パケットサイズ)に分割し、パケット用のデータ(パケットデータ)を生成する。パケットデータを生成したブロック分割部22は、それを、パケットデータ保持部23に供給する。   Returning to FIG. 3, similarly to the data dividing unit 21, the block dividing unit 22 further divides the transmission data in block units supplied from the data dividing unit 21 into a predetermined data size. That is, the block division unit 22 divides the transmission data in units of blocks into a data size (packet size) for packetization in the subsequent stage, and generates data for the packet (packet data). The block dividing unit 22 that has generated the packet data supplies it to the packet data holding unit 23.

例えば、図4において、ブロック42は、それぞれ、ブロック分割部22により、パケット化する際のデータサイズのパケットデータである元データ43に分割される。図4の場合、各ブロックはそれぞれ3個の元データ43に分割される。例えば、ブロックAは元データA1乃至A3に分割され、ブロックBは元データB1乃至B3に分割され、ブロックCは元データC1乃至C3に分割される。 For example, in FIG. 4, each block 42 is divided by the block dividing unit 22 into original data 43 that is packet data having a data size when packetized. In the case of FIG. 4, each block is divided into three original data 43. For example, the block A is divided into original data A 1 to A 3 , the block B is divided into original data B 1 to B 3 , and the block C is divided into original data C 1 to C 3 .

パケットデータ保持部23は、供給されるパケットデータ(元データ)を順次保持していき、各元データを、各元データ対応するブロックに基づいて管理する。そして、パケットデータ保持部23は、データ変換制御部26の制御により、所定のタイミングで、その保持している元データを、ブロック単位で、EOR変換データ生成部24に供給する。   The packet data holding unit 23 sequentially holds the supplied packet data (original data), and manages each original data based on a block corresponding to each original data. Then, under the control of the data conversion control unit 26, the packet data holding unit 23 supplies the held original data to the EOR conversion data generation unit 24 in units of blocks at a predetermined timing.

EOR変換データ生成部24は、パケットデータ保持部23よりブロック毎に供給された元データを取得すると、それらを用いてEOR演算を行い、その元データを変換してEOR変換データを生成する。具体的には、EOR変換データ生成部24は、各ブロックにおいて、そのブロックに対応する元データ群から所定の方法で元データを複数選択し、それらをビット毎にEOR演算により合成し、それをEOR変換データとする。EOR変換データ生成部24は、このような変換処理を繰り返し、複数(元データの数より多く)のEOR変換データを生成する。より具体的な生成方法については後述する。   When the EOR conversion data generation unit 24 acquires the original data supplied for each block from the packet data holding unit 23, the EOR conversion data generation unit 24 performs an EOR operation using them and converts the original data to generate EOR conversion data. Specifically, in each block, the EOR conversion data generation unit 24 selects a plurality of original data from a group of original data corresponding to the block by a predetermined method, synthesizes them by EOR operation for each bit, EOR conversion data. The EOR conversion data generation unit 24 repeats such conversion processing, and generates a plurality (more than the number of original data) of EOR conversion data. A more specific generation method will be described later.

例えば、図4の場合、EOR変換データ生成部24は、ブロックAに対応する元データA1乃至A3を、ビット毎にEOR演算して6つのEOR変換データA11乃至A16に変換し、ブロックBに対応する元データB1乃至B3を、ビット毎にEOR演算して6つのEOR変換データB11乃至B16に変換し、ブロックCに対応する元データC1乃至C3を、ビット毎にEOR演算して6つのEOR変換データC11乃至C16に変換する。 For example, in the case of FIG. 4, the EOR conversion data generation unit 24 converts the original data A 1 to A 3 corresponding to the block A into six EOR conversion data A 11 to A 16 by performing an EOR operation for each bit, The original data B 1 to B 3 corresponding to the block B is subjected to EOR operation for each bit to convert it into six EOR converted data B 11 to B 16 , and the original data C 1 to C 3 corresponding to the block C are converted into bits. Every EOR operation is performed to convert the data into six EOR conversion data C 11 to C 16 .

なお、このとき、EOR変換データ生成部24は、まず、ブロックAに対応する元データA1乃至A3を変換してEOR変換データA11を生成し、ブロックBに対応する元データB1乃至B3を変換してEOR変換データB11を生成し、ブロックCに対応する元データC1乃至C3を変換してEOR変換データC11を生成する。そして次に、EOR変換データ生成部24は、各ブロックに対する2回目の処理に移行し、ブロックAに対応する元データA1乃至A3を変換してEOR変換データA12を生成し、ブロックBに対応する元データB1乃至B3を変換してEOR変換データB12を生成し、ブロックCに対応する元データC1乃至C3を変換してEOR変換データC12を生成する。そして、cは、以降、各ブロックに対して、3回目の変換処理、4回目の変換処理、・・・と、各ブロックの変換処理を順に繰り返す。 At this time, the EOR conversion data generation unit 24 first converts the original data A 1 to A 3 corresponding to the block A to generate EOR conversion data A 11, and the original data B 1 to B 3 corresponding to the block B B 3 is converted to generate EOR conversion data B 11, and original data C 1 to C 3 corresponding to block C are converted to generate EOR conversion data C 11 . Next, the EOR conversion data generation unit 24 proceeds to the second process for each block, converts the original data A 1 to A 3 corresponding to the block A to generate EOR conversion data A 12, and generates the block B EOR converted data B 12 is generated by converting the original data B 1 to B 3 corresponding to, and EOR converted data C 12 is generated by converting the original data C 1 to C 3 corresponding to the block C. Then, c repeats the conversion process of each block in order, for each block, the third conversion process, the fourth conversion process,...

従って、図4の場合、EOR変換データ44を生成順に整列すると、A11,B11,C11,A12,B12,C12,A13,B13,C13,A14,B14,C14,A15,B15,C15,A16,B16,C16となる。 Therefore, in the case of FIG. 4, when the EOR conversion data 44 is arranged in the order of generation, A 11 , B 11 , C 11 , A 12 , B 12 , C 12 , A 13 , B 13 , C 13 , A 14 , B 14 , the C 14, a 15, B 15 , C 15, a 16, B 16, C 16.

一般に、パケットの送信時にネットワーク等において、受信側が連続する複数のパケットをバースト的にロスする(受信できない)場合がある。従って、送信装置11がEOR変換データを順番に出力した場合、そのようなバースト的パケットロスにより、パケットのロスが1つのブロックに偏って集中してしまう場合がある。後述するように、元データを復元するためには、ある程度のパケット数(のEOR変換データ)を受信する必要があるため、このように、パケットロスに偏りが生じると、特定のブロックを復元できない恐れがある。   In general, when a packet is transmitted in a network or the like, a receiving side sometimes loses a plurality of consecutive packets in a burst manner (cannot be received). Therefore, when the transmission device 11 sequentially outputs the EOR conversion data, the packet loss may be concentrated on one block due to such bursty packet loss. As will be described later, in order to restore the original data, it is necessary to receive a certain number of packets (the EOR converted data). Therefore, if the packet loss is biased in this way, a specific block cannot be restored. There is a fear.

そこで、送信装置11は、以上のように、各ブロックの変換処理を1回ずつ順に実行して、各ブロックのEOR変換データを混在させた順番で送信するようにすることにより、パケットの送信時にバースト的パケットロスが発生しても、そのロスが特定のブロックに集中することを抑制することができ、バースト的パケットロスに対する耐性を強くすることができる。すなわち、送信装置11は、より正確にデータを受信装置13に送信することができる。従って、通信システム10は、より正確なデータの送受信を実現することができる。   Therefore, as described above, the transmission device 11 sequentially executes the conversion process for each block once to transmit the EOR conversion data of each block in the mixed order, thereby transmitting the packet. Even when bursty packet loss occurs, it is possible to suppress the loss from being concentrated on a specific block, and it is possible to increase resistance to bursty packet loss. That is, the transmission device 11 can transmit data to the reception device 13 more accurately. Therefore, the communication system 10 can realize more accurate data transmission / reception.

EOR変換データ生成部24は、元データを変換して得られたEOR変換データをアプリケーションデータ生成部25に供給する。また、EOR変換データ生成部24は、この変換処理に関する情報であり、EOR変換データに付加する付加情報を、EOR変換データに対応させてアプリケーションデータ生成部25に供給する。   The EOR conversion data generation unit 24 supplies EOR conversion data obtained by converting the original data to the application data generation unit 25. The EOR conversion data generation unit 24 is information related to this conversion processing, and supplies additional information added to the EOR conversion data to the application data generation unit 25 in association with the EOR conversion data.

アプリケーションデータ生成部25は、EOR変換データ生成部24より供給されたEOR変換データに、EOR変換データ生成部24より供給された付加情報等を含むヘッダを付加し、アプリケーションデータを生成する。ヘッダの内容の詳細については、後述する。アプリケーションデータ生成部25は、生成したアプリケーションデータをUDPパケット化部27に供給する。このとき、アプリケーションデータ生成部25は、アプリケーションデータを生成して出力したことを示す出力情報を、データ変換制御部26に供給する。   The application data generation unit 25 adds a header including additional information supplied from the EOR conversion data generation unit 24 to the EOR conversion data supplied from the EOR conversion data generation unit 24 to generate application data. Details of the contents of the header will be described later. The application data generation unit 25 supplies the generated application data to the UDP packetization unit 27. At this time, the application data generation unit 25 supplies output information indicating that the application data has been generated and output to the data conversion control unit 26.

データ変換制御部26は、アプリケーションデータ生成部25より供給された出力情報に基づいて、全てのパケットを生成したか否かを判定し、まだ、パケット(EOR変換データ)の生成が終了していないと判定した場合は、パケットデータ保持部23とEOR変換データ生成部24を制御し、新たなEOR変換データを生成させる。   The data conversion control unit 26 determines whether or not all packets have been generated based on the output information supplied from the application data generation unit 25, and generation of packets (EOR conversion data) has not yet been completed. Is determined, the packet data holding unit 23 and the EOR conversion data generation unit 24 are controlled to generate new EOR conversion data.

なお、ここまでの処理は、ISO(International Organization for Standardization)が制定した7階層のネットワークプロトコルの構造のモデルであるOSI階層モデル(Open Systems Interconnection layer model)における、アプリケーション層、プレゼンテーション層、およびセション層の処理である。   The processes so far are the application layer, presentation layer, and session layer in the OSI layer model (Open Systems Interconnection layer model), which is a model of the seven-layer network protocol structure established by ISO (International Organization for Standardization). It is processing of.

アプリケーションデータを供給されたUDPパケット化部27は、それをUDPプロトコルに基づいてパケット化し、その生成したUDPパケットをバッファ28に供給する。   The UDP packetization unit 27 supplied with the application data packetizes it based on the UDP protocol, and supplies the generated UDP packet to the buffer 28.

図5に示されるように、UDPパケット化部27において生成されるUDPパケット51は、64ビットのUDPヘッダ52およびアプリケーションデータ53により構成される。UDPヘッダ52には、送信元のポート番号、送信先のポート番号、アプリケーションデータ53のデータ長、およびチェックサム等の情報が含まれる。アプリケーションデータのデータサイズは、任意に定められた所定の値であるが、通常1Kバイト程度である。   As shown in FIG. 5, the UDP packet 51 generated in the UDP packetization unit 27 is composed of a 64-bit UDP header 52 and application data 53. The UDP header 52 includes information such as a transmission source port number, a transmission destination port number, a data length of the application data 53, and a checksum. The data size of the application data is a predetermined value that is arbitrarily determined, but is usually about 1 Kbyte.

図3に戻り、バッファ28は、RAM(Random Access Memory)等の半導体メモリ等により構成され、UDPパケット化部27より供給されるUDPパケットを蓄積し、出力制御部29の制御に基づいて、その蓄積しているUDPパケットを出力する。   Returning to FIG. 3, the buffer 28 is configured by a semiconductor memory such as a RAM (Random Access Memory), accumulates UDP packets supplied from the UDP packetizing unit 27, and based on the control of the output control unit 29, Output accumulated UDP packets.

出力制御部29は、バッファ28に蓄積されているUDPパケットを、所定のタイミングで順に取得し、IP(Internet Protocol)処理部30に供給する。これらのUDPパケット化部27乃至出力制御部29による処理は、OSI階層モデルにおける、トランスポート層の処理である。   The output control unit 29 sequentially acquires the UDP packets stored in the buffer 28 at a predetermined timing, and supplies them to an IP (Internet Protocol) processing unit 30. The processes by the UDP packetizing unit 27 to the output control unit 29 are the processes of the transport layer in the OSI hierarchical model.

IP処理部30は、OSI階層モデルにおける、ネットワーク層の処理を行い、IPプロトコルに基づいて、出力制御部29より供給されるUDPパケットをそれぞれIPパケット化し、イーサネット(R)(Ethernet(R))処理部31に供給する。イーサネット(R)処理部31は、イーサネット(R)の規格に基づいて、データリンク層および物理層の処理を行い、IP処理部30より供給されたIPパケットをさらにパケット化し、受信装置13に送信するように、それを、ケーブル32を介してネットワーク12に出力する。   The IP processing unit 30 performs processing of the network layer in the OSI hierarchical model, and converts each UDP packet supplied from the output control unit 29 into an IP packet based on the IP protocol, and Ethernet (R) (Ethernet (R)) This is supplied to the processing unit 31. The Ethernet (R) processing unit 31 performs data link layer and physical layer processing based on the Ethernet (R) standard, further packetizes the IP packet supplied from the IP processing unit 30, and transmits the packet to the receiving device 13. As such, it is output to the network 12 via the cable 32.

すなわち、EOR変換データ生成部24において生成されたEOR変換データ44は、図4に示されるように、生成された順にパケット化され、送信パケット45としてネットワーク12に出力される。イーサネット(R)処理部29より出力されたパケットは、ネットワーク12を介して受信装置13に供給される。   That is, the EOR conversion data 44 generated in the EOR conversion data generation unit 24 is packetized in the order of generation as shown in FIG. 4 and is output to the network 12 as a transmission packet 45. The packet output from the Ethernet (R) processing unit 29 is supplied to the receiving device 13 via the network 12.

このように、送信用データを分割した元データをそのまま送信せずに、複数の元データ(ブロック内の一部の元データ)の内容を含むEOR変換データに変換してから送信するので、送信装置11は、受信装置13が、送信装置11より送信した複数のパケットの内、任意のパケットを所定の数以上取得すれば、元データ(送信用データ)を復元することができるようにすることができる。すなわち、送信装置11は、受信装置13のパケットロスに対する耐性を高め、データの送受信をより正確、かつ、より容易に行うようにデータを送信することができる。   In this way, since the original data obtained by dividing the transmission data is not transmitted as it is, it is converted into EOR conversion data that includes the contents of multiple original data (part of the original data in the block) and then transmitted. The apparatus 11 enables the receiving apparatus 13 to restore the original data (transmission data) if the receiving apparatus 13 acquires a predetermined number or more of a plurality of packets transmitted from the transmitting apparatus 11. Can do. That is, the transmission device 11 can increase the tolerance of the reception device 13 against packet loss, and can transmit data so that data transmission / reception can be performed more accurately and easily.

なお、図4において示される、1つの送信データ41に対するブロック42、元データ43、またはEOR変換データ44等の数は、一例であり、生成される各データの数が、図4に示される数以外であってももちろんよい。また、送信パケット45の送信順も一例であり、図4に示される以外の順番で送信されるようにしてももちろんよい。   Note that the number of blocks 42, original data 43, EOR conversion data 44, and the like for one transmission data 41 shown in FIG. 4 is an example, and the number of pieces of generated data is the number shown in FIG. Of course it may be other than. Further, the transmission order of the transmission packets 45 is also an example, and the transmission packets 45 may be transmitted in an order other than that shown in FIG.

次に、図3のEOR変換データ生成部24の詳細について説明する。なお、以下においては、送信装置11は、1ブロックの送信データより、N個の元データD(D1乃至DN)を生成し、そのN個の元データDを変換して、M個のEOR変換データS(S1乃至SM)を生成する場合について説明する。図6は、EOR変換データ生成部24の詳細な構成例を示すブロック図である。 Next, details of the EOR conversion data generation unit 24 of FIG. 3 will be described. In the following, the transmission device 11 generates N original data D (D 1 to D N ) from one block of transmission data, converts the N original data D, and generates M pieces of original data D. A case where EOR conversion data S (S 1 to S M ) is generated will be described. FIG. 6 is a block diagram illustrating a detailed configuration example of the EOR conversion data generation unit 24.

図6において、図3のパケットデータ保持部23より供給された1ブロック分の元データDは、行列式生成部61に供給される。1ブロック分の元データDを取得した行列式生成部61は、係数行列保持部71に対して、EOR変換データを生成するための行列式の生成に用いられる係数行列を要求する。   In FIG. 6, the original data D for one block supplied from the packet data holding unit 23 in FIG. 3 is supplied to the determinant generation unit 61. The determinant generation unit 61 that has acquired the original data D for one block requests the coefficient matrix holding unit 71 for a coefficient matrix used to generate a determinant for generating EOR conversion data.

係数行列は、全成分が「1」または「0」のM行N列の、元データの係数の行列であり、EOR演算を行う元データを選択するための行列である。後述するように、EOR変換データは、係数行列と、各元データを成分とする行列との積算により求められる。従って、係数行列の各行は、互いに異なるEOR変換データに対応し、その各行の各成分は、それぞれ互いに異なる元データの係数として、その元データと積算される。すなわち、各EOR変換データは、係数行列の値が「1」の成分(係数)と積算された元データの、ビット毎のEOR演算結果となる。なお、以下において、係数行列の、値が「1」の成分(係数)を有効係数と称し、値が「0」の成分(係数)を無効係数と称する。   The coefficient matrix is a matrix of coefficients of original data having M rows and N columns with all components being “1” or “0”, and is a matrix for selecting original data to be subjected to EOR calculation. As will be described later, the EOR conversion data is obtained by integrating a coefficient matrix and a matrix having each original data as a component. Accordingly, each row of the coefficient matrix corresponds to different EOR conversion data, and each component of each row is integrated with the original data as a coefficient of different original data. That is, each EOR conversion data is an EOR calculation result for each bit of the original data integrated with the component (coefficient) whose coefficient matrix value is “1”. In the following, a component (coefficient) having a value of “1” in the coefficient matrix is referred to as an effective coefficient, and a component (coefficient) having a value of “0” is referred to as an invalid coefficient.

また、この係数行列は、各行において、有効係数が存在することができる範囲が限定されている。その範囲は、行毎に互いに異なっており、有効係数は、その範囲内において任意に選択された成分とされる。すなわち、ブロック内において、各EOR変換データは、それぞれ、整列された全元データの、互いに異なる一部の範囲内より任意に抽出された複数の元データを、ビット毎のEOR演算により合成したものである。   In addition, the coefficient matrix has a limited range in which effective coefficients can exist in each row. The range is different from one another for each row, and the effective coefficient is a component arbitrarily selected within the range. In other words, each EOR conversion data in the block is a combination of a plurality of original data arbitrarily extracted from different ranges of all of the aligned original data by a bitwise EOR operation. It is.

係数行列保持部71には、このような係数行列が予め生成され、保持されている。   In the coefficient matrix holding unit 71, such a coefficient matrix is generated and held in advance.

この係数行列の生成について説明する。上述したように、この係数行列においては、各行において、有効係数の存在可能範囲が行毎に互いに異なり、有効係数は、その範囲内において任意に選択された成分であり、それ以外の成分が無効係数である。従って、このような係数行列を生成するために、EOR変換データ生成部24は、まず、有効係数の存在可能範囲を各行において設定し、さらに、その範囲内の成分を任意に選択し、その成分を有効係数としてその値を「1」とし、それ以外の成分を無効係数としてその値を「0」とする。すなわち、係数行列の生成は、行単位で行われる。   The generation of this coefficient matrix will be described. As described above, in this coefficient matrix, in each row, possible ranges of effective coefficients are different for each row, and effective coefficients are components arbitrarily selected within the range, and other components are invalid. It is a coefficient. Therefore, in order to generate such a coefficient matrix, the EOR conversion data generation unit 24 first sets the possible range of effective coefficients in each row, and further arbitrarily selects a component within the range, As an effective coefficient, its value is set to “1”, and other components are set as invalid coefficients and its value is set to “0”. That is, the generation of the coefficient matrix is performed in units of rows.

具体的には、EOR変換データ生成部24の擬似乱数生成部81は、まず第1行目に対して、式(1)に示されるような演算を行い、線形合同法を用いて、上述した有効係数の存在可能範囲の先頭位置を決定するための擬似乱数を生成し、その値を先頭位置決定部部82に供給する。   Specifically, the pseudo-random number generation unit 81 of the EOR conversion data generation unit 24 first performs an operation as shown in Expression (1) on the first row, and uses the linear congruence method described above. A pseudo-random number for determining the start position of the valid coefficient existence range is generated, and the value is supplied to the start position determination unit 82.

Figure 2005223683
Figure 2005223683

式(1)において、右辺第1項の定数Aおよび右辺第3項の定数Cは、所定の自然数であり、右辺第2項の変数randは、前回求めた擬似乱数であり、左辺第1項の変数randは、今回求める擬似乱数である。また、変数randの初期値は「0」であり、今回求める擬似乱数(左辺第1項の変数randの値)は、右辺の式の演算結果を「N−バンド幅」で除算したときの余りである。なお、バンド幅は、予め定められた定数であり、有効係数の存在可能範囲の大きさ(列数)を示す値である。このバンド幅は、予め擬似乱数生成部81に内蔵されるROMまたはRAM(いずれも図示せず)に記憶されている。定数Nは、各ブロックの元データの数であり、その情報も予め擬似乱数生成部81に内蔵されるROMまたはRAMに記憶されている。   In Expression (1), the constant A in the first term on the right side and the constant C in the third term on the right side are predetermined natural numbers, the variable rand in the second term on the right side is the pseudorandom number obtained last time, and the first term on the left side. The variable rand is a pseudo-random number to be obtained this time. The initial value of the variable rand is “0”, and the pseudo random number (the value of the variable rand in the first term on the left side) obtained this time is the remainder when the calculation result of the expression on the right side is divided by “N−bandwidth” It is. The bandwidth is a predetermined constant and is a value indicating the size (number of columns) of the range in which the effective coefficient can exist. This bandwidth is stored in advance in a ROM or RAM (both not shown) built in the pseudorandom number generator 81. The constant N is the number of original data of each block, and the information is also stored in advance in the ROM or RAM built in the pseudorandom number generator 81.

従って、式(1)により求められる擬似乱数(左辺第1項の変数randの値)は、値「0」から値「N−1−バンド幅」の間でランダムに決定される値である。この擬似乱数の値は、すなわち、係数行列の処理の対象となる行において、有効係数の存在可能範囲の先頭位置(列)、つまり、この有効係数の存在可能範囲が列番号「0」の列(第1列目)乃至列番号「N−1−バンド幅」の列(第(N−バンド幅)列目)の、どの列から開始されるかを示している。
このような擬似乱数を生成すると、擬似乱数生成部81は、それを先頭位置決定部82に供給する。先頭位置決定部82は、その擬似乱数を、生成する係数行列の行に対応させて、その行の先頭位置として保持する。擬似乱数生成部81は、以上のように、生成する係数行列の、2行目以降の各行について擬似乱数を生成し、先頭位置決定部82は、それらの擬似乱数を各行に対応させて保持する。
Therefore, the pseudo-random number (the value of the variable rand in the first term on the left side) obtained by Expression (1) is a value that is randomly determined between the value “0” and the value “N−1−bandwidth”. The value of this pseudo random number, that is, the start position (column) of the valid coefficient existence range in the row to be processed by the coefficient matrix, that is, the column of which the valid coefficient existence range is the column number “0”. This indicates from which column (first column) to column number “N-1-band width” (the (N-band width) column) starts.
When such a pseudo random number is generated, the pseudo random number generation unit 81 supplies it to the head position determination unit 82. The head position determination unit 82 stores the pseudo random number as the head position of the corresponding row of the coefficient matrix to be generated. As described above, the pseudo-random number generation unit 81 generates pseudo-random numbers for the second and subsequent rows of the coefficient matrix to be generated, and the head position determination unit 82 holds these pseudo-random numbers corresponding to the respective rows. .

生成する係数行列の全ての行に対する擬似乱数(先頭位置)が保持されると、範囲制御部84は、幅設定部83にバンド幅の値を要求する。幅設定部83は、上述した有効係数の存在可能範囲の幅(列数)であるバンド幅の値(列数)を、内蔵するROMまたはRAM(いずれも図示せず)に予め保持しており、範囲制御部84の要求に基づいて、そのバンド幅の値を範囲制御部84に供給する。   When the pseudo random numbers (leading positions) for all the rows of the coefficient matrix to be generated are held, the range control unit 84 requests a bandwidth value from the width setting unit 83. The width setting unit 83 holds a bandwidth value (number of columns) that is the width (number of columns) of the effective coefficient existence range described above in a built-in ROM or RAM (both not shown). Based on the request of the range control unit 84, the bandwidth value is supplied to the range control unit 84.

バンド幅の値を取得した範囲制御部84は、次に、先頭位置決定部82に対して各行の擬似乱数、すなわち、有効係数の存在可能範囲の先頭位置の情報を要求する。先頭位置決定部82は、その要求に基づいて、保持している擬似乱数を範囲制御部84に供給する。擬似乱数を取得した範囲制御部84は、その擬似乱数、および幅設定部83より取得したバンド幅の値に基づいて、生成する係数行列の各行における有効係数の存在可能範囲を決定する。   The range control unit 84 that has acquired the bandwidth value next requests a pseudo-random number of each row, that is, information on the start position of the possible range of effective coefficients, to the start position determination unit 82. The head position determination unit 82 supplies the held pseudorandom number to the range control unit 84 based on the request. The range control unit 84 that has acquired the pseudorandom number determines the possible range of the effective coefficient in each row of the coefficient matrix to be generated based on the pseudorandom number and the bandwidth value acquired from the width setting unit 83.

次に、擬似乱数生成部81は、式(2)に示されるような演算を行い、線形合同法のモジュロ演算を用いて、係数(係数行列の各成分)の値を設定するための擬似乱数を生成し、その値を範囲制御部84に供給する。   Next, the pseudo random number generation unit 81 performs an operation as shown in Expression (2), and uses a linear congruential modulo operation to set the value of the coefficient (each component of the coefficient matrix). , And supplies the value to the range controller 84.

Figure 2005223683
Figure 2005223683

式(2)において、右辺第1項および右辺第3項の変数Lは、予め定められた種データである。この種データは、例えば、全行において共通であっても良いし、各行において互いに異なるようにしてももちろんよい。右辺第2項の変数randは、前回求めた擬似乱数であり、左辺第1項の変数randは、今回求める擬似乱数である。また、変数randの初期値は「0」であり、今回求める擬似乱数(左辺第1項の変数randの値)は、例えば、32ビット処理により行った、右辺の式のモジュロ演算結果である。   In equation (2), the variable L in the first term on the right side and the third term on the right side is predetermined seed data. For example, this kind of data may be common to all rows, or may be different from each other in each row. The variable rand in the second term on the right side is a pseudo random number obtained last time, and the variable rand in the first term on the left side is a pseudo random number obtained this time. The initial value of the variable rand is “0”, and the pseudorandom number (the value of the variable rand in the first term on the left side) obtained this time is, for example, a modulo arithmetic result of the expression on the right side performed by 32-bit processing.

擬似乱数生成部81は、以上の式(2)の演算を行い、擬似乱数を生成すると、それを範囲制御部84に供給する。範囲制御部84は、その擬似乱数を取得すると、事前に決定した有効係数の存在可能範囲に基づいて、その擬似乱数が対応する係数の位置がこの有効係数の存在可能範囲内であるか否かを判定し、範囲内である場合のみ、その擬似乱数を係数判定部85に供給する。範囲外である場合は、その擬似乱数の変わりに、値「0」を係数判定部85に供給する。   The pseudo random number generation unit 81 performs the calculation of the above formula (2) and generates a pseudo random number, and supplies the pseudo random number to the range control unit 84. When the range control unit 84 acquires the pseudo random number, based on the pre-determined effective coefficient existence range, whether or not the position of the coefficient corresponding to the pseudo random number is within the effective coefficient existence range. The pseudo-random number is supplied to the coefficient determination unit 85 only when it is within the range. When the value is out of the range, the value “0” is supplied to the coefficient determination unit 85 instead of the pseudo random number.

係数判定部85は、取得した擬似乱数の値に基づいて、その擬似乱数が対応する各成分の値を判定する。このとき、係数判定部85は、取得した擬似乱数の値に対して、例えば、閾値を設け、取得した擬似乱数の値が、その閾値以上である場合は、その擬似乱数が対応する成分の値を「1」と判定し、閾値より小さい場合は、その成分の値を「0」と判定し、その判定結果を係数行列保持部71に供給し、保持させる。   The coefficient determination unit 85 determines the value of each component corresponding to the pseudo random number based on the acquired value of the pseudo random number. At this time, for example, the coefficient determination unit 85 provides a threshold value for the acquired pseudo random number value, and if the acquired pseudo random number value is equal to or greater than the threshold value, the value of the component to which the pseudo random number corresponds. Is smaller than the threshold value, the value of the component is determined as “0”, and the determination result is supplied to the coefficient matrix holding unit 71 and held.

その際、係数判定部85は、係数生成確率保持部86に保持されている係数生成確率pを取得し、この係数生成確率pの値に基づいて、閾値の値を決定する。すなわち、係数判定部85は、上述した各行の有効係数の存在可能範囲内において、有効係数の割合が係数生成確率pの値になるように(近づくように)、閾値の値を設定する。   At that time, the coefficient determination unit 85 acquires the coefficient generation probability p held in the coefficient generation probability holding unit 86, and determines a threshold value based on the value of the coefficient generation probability p. That is, the coefficient determination unit 85 sets the threshold value so that the ratio of the effective coefficients becomes the value of the coefficient generation probability p within the possible range of the effective coefficients of each row described above.

係数生成確率pは、予め定められた、「0」より大きく、かつ、「1」より小さい値の定数であり、各行の有効係数の存在可能範囲内において、有効係数の割合がどの程度になるかを確率的に指定する値である。すなわち、例えば、係数生成確率pの値が「0.5」であった場合、係数判定部94は、各行の有効係数の存在可能範囲内において、有効係数の数と無効係数の数とがほぼ1対1となるように(近似するように)閾値を設定する。例えば、擬似乱数の値が、均一の確率で32ビット全体に分布すると仮定した場合、係数判定部85は、閾値の値を「2147483648」に設定する。   The coefficient generation probability p is a predetermined constant greater than “0” and smaller than “1”, and the ratio of the effective coefficient is within the possible range of the effective coefficient in each row. It is a value that specifies whether or not. That is, for example, when the value of the coefficient generation probability p is “0.5”, the coefficient determination unit 94 determines that the number of valid coefficients and the number of invalid coefficients are approximately within the possible range of valid coefficients in each row. The threshold value is set so as to be one-to-one (approximate). For example, when it is assumed that the value of the pseudo random number is distributed over the entire 32 bits with a uniform probability, the coefficient determination unit 85 sets the threshold value to “2147483648”.

以上のようにして、係数行列保持部71には、係数判定部85において値を判定された判定結果(「0」または「1」)が供給される。各部は以上のような処理を各係数について行い、1つずつ係数の値を判定し、係数行列保持部71は、それらの判定結果を係数行列の各成分として保持していき、最終的に、係数行列の全ての成分を保持する。   As described above, the coefficient matrix holding unit 71 is supplied with the determination result (“0” or “1”) determined by the coefficient determination unit 85. Each unit performs the above processing for each coefficient, determines the value of the coefficient one by one, and the coefficient matrix holding unit 71 holds these determination results as each component of the coefficient matrix. Holds all components of the coefficient matrix.

上述したように1ブロック分の元データDを取得した行列式生成部61は、係数行列保持部71に対して、このように生成され係数行列保持部71に保持されている係数行列を要求する。係数行列保持部71は、この要求に応じて、保持している係数行列を行列式生成部61に供給する。   As described above, the determinant generation unit 61 that has acquired the original data D for one block requests the coefficient matrix holding unit 71 for the coefficient matrix thus generated and held in the coefficient matrix holding unit 71. . In response to this request, the coefficient matrix holding unit 71 supplies the held coefficient matrix to the determinant generation unit 61.

行列式生成部61は、係数行列を取得すると、その係数行列と1ブロック分の元データを用いて、そのブロックに対するEOR変換データを生成するための行列式を生成する。具体的には、行列生成部61は、以下の式(3)に示されるような行列式を生成する。   When the determinant generation unit 61 acquires the coefficient matrix, the determinant generation unit 61 generates a determinant for generating EOR conversion data for the block using the coefficient matrix and the original data for one block. Specifically, the matrix generation unit 61 generates a determinant as shown in the following expression (3).

Figure 2005223683
Figure 2005223683

式(3)において、右辺第1項は、M行N列の係数行列であり、係数行列供給部71より供給された係数行列である。右辺第2項は、元データD(D1乃至DN)の行列であり、左辺の行列は、この行列式により算出されるEOR変換データS(S1乃至SM)である。なお、式(3)において、通常の加算の代わりにビット毎のEOR演算が行われる。EOR演算については後述する。 In Equation (3), the first term on the right side is a coefficient matrix of M rows and N columns, which is a coefficient matrix supplied from the coefficient matrix supply unit 71. The second term on the right side is a matrix of the original data D (D 1 to D N ), and the matrix on the left side is EOR conversion data S (S 1 to S M ) calculated by this determinant. In Equation (3), bitwise EOR operation is performed instead of normal addition. The EOR operation will be described later.

このような行列式を生成すると、行列式生成部61は、この行列式を行列式演算部62に供給する。なお、行列式は、所謂、連立方程式と同じものを示すものとする。以下においても同様である。   When such a determinant is generated, the determinant generator 61 supplies this determinant to the determinant calculator 62. The determinant is the same as a so-called simultaneous equation. The same applies to the following.

また、行列式生成部61は、このとき、係数行列の各行における有効係数の存在可能範囲について確認し、各行について、行番号と有効係数の存在可能範囲の先頭位置(列)を対応付け、それぞれを係数情報、先頭情報とし、行列式とともに、行列式演算部62に供給する。これらの係数情報および先頭情報は、EOR変換データとともに受信装置13に供給され、EOR変換データより元データを復元する際に、係数行列を生成するのに利用される。   Further, at this time, the determinant generation unit 61 confirms the valid coefficient existence range in each row of the coefficient matrix, associates the row number with the leading position (column) of the valid coefficient existence range for each row, To the determinant operation unit 62 together with the determinant. The coefficient information and the head information are supplied to the receiving device 13 together with the EOR conversion data, and are used to generate a coefficient matrix when restoring the original data from the EOR conversion data.

行列式演算部62は、式(3)に示されるような行列式を演算する。すなわち、行列式演算部62は、右辺第1項の係数行列の各行において、その行の各列成分を、それらが対応する、右辺第2項における各行成分(元データD1乃至DN)とそれぞれ積算し、得られた各積算結果を用いて、互いに対応するビット毎にEOR演算を行うことにより、各行に1つのEOR演算結果を算出し、それをEOR変換データSとする。 The determinant calculation unit 62 calculates a determinant as shown in Expression (3). That is, the determinant calculating unit 62 replaces each column component of the row in each row of the coefficient matrix of the first term on the right side with each row component (original data D 1 to D N ) in the second term on the right side to which they correspond. The respective integration results are used, and the EOR calculation is performed for each bit corresponding to each other, thereby calculating one EOR calculation result for each row.

ここで、通常の10進数の場合の、2つの行列の積算における演算手順を説明すると、まず、第1項の行列の各行が第2項の行列の各列と積算される。具体的には、第1項の行列の各行と第2項の行列の各列が互いに対応する成分毎に積算される。例えば、第1項の第1行目について説明すると、その行の第i列目の成分は、第2項の各列の第i行目の成分と積算される。このように積算が行われると、次に、この積算毎に各成分の積算結果が全て加算される。例えば、第1項の行列がN列の行列であり、第2項の行列がN行の行列であるとすると、第1項の行列の各行と第2項の行列の各列の各積算において、それぞれ、N個の成分同士の積算結果が得られるので、それらのN個の積算結果が加算され、この加算結果が、第1項の行列の行と第2項の行列の列の積算結果とされる。   Here, the calculation procedure in the integration of two matrices in the case of a normal decimal number will be described. First, each row of the first term matrix is integrated with each column of the second term matrix. Specifically, each row of the first term matrix and each column of the second term matrix are integrated for each corresponding component. For example, describing the first row of the first term, the component in the i-th column of that row is integrated with the component in the i-th row of each column in the second term. When integration is performed in this way, all integration results of each component are then added for each integration. For example, if the matrix of the first term is an N-column matrix and the matrix of the second term is an N-row matrix, in each multiplication of each row of the matrix of the first term and each column of the matrix of the second term Since the integration results of N components are respectively obtained, the N integration results are added, and the addition result is the integration result of the matrix row of the first term and the matrix column of the second term. It is said.

上述した式(3)の行列式においても、基本的にはこのような演算手順と同様の演算手順により演算が行われる。しかしながら、元データDやEOR変換データSは、2進数のビット列であるので、上述した10進数の場合の演算手順における、成分同士の積算結果の通常の加算処理の代わりに、ビット毎のEOR演算が用いられる。   In the determinant of Equation (3) described above, the calculation is basically performed according to the same calculation procedure as that described above. However, since the original data D and the EOR conversion data S are binary bit strings, instead of the normal addition process of the integration result of components in the calculation procedure in the case of the decimal number, the EOR calculation for each bit is performed. Is used.

演算手順の順序で説明すると、行列式演算部62は、上述した10進数の場合と同様に、式(3)の右辺第1項の係数行列の各行を、右辺第2項の行列(元データD1乃至DNを成分とする行列)の列と積算する。具体的には、右辺第1項の係数行列の各行の各列成分を、右辺第2項の行列の各成分(元データD1乃至DN)と、それぞれ積算する。右辺第1項の係数行列の各成分の値は「1」または「0」であるので、各成分の積算結果は、右辺第2項の各成分(元データD1乃至DN)となるか、若しくは、「0」(具体的には、元データDと同じビット数であり、各ビットの値が「0」のビット列)となる。 In the order of the calculation procedure, the determinant calculation unit 62 converts each row of the coefficient matrix of the first term on the right side of Equation (3) to the matrix (original data of the second term on the right side) as in the case of the decimal number described above. D 1 to DN are integrated with the columns of the matrix. Specifically, each column component of each row of the coefficient matrix of the first term on the right side is integrated with each component (original data D 1 to D N ) of the matrix of the second term on the right side. Since the value of each component of the coefficient matrix of the first term on the right side is “1” or “0”, does the integration result of each component become each component (original data D 1 to D N ) of the second term on the right side? Or “0” (specifically, the number of bits is the same as that of the original data D, and the value of each bit is “0”).

次に、行列式演算部62は、これらの各成分の積算結果を、上述したように互いに対応するビット毎のEOR演算により合成する。なお、EOR演算について具体的に説明すると、値「0」と値「0」とのEOR演算結果の値は「0」であり、値「0」と値「1」とのEOR演算結果の値は「1」であり、値「1」と値「0」とのEOR演算結果の値は「1」であり、値「1」と値「1」とのEOR演算結果の値は「0」である。従って、例えば、「11110000」のビット列と、「10101010」のビット列とのEOR演算結果は、「01011010」となる。行列式演算部62は、このようなEOR演算を繰り返し、各成分の積算結果を全て合成する。そして、このEOR演算結果が、1つのEOR変換データSとされる。   Next, the determinant operation unit 62 combines the integration results of these components by EOR operation for each bit corresponding to each other as described above. Specifically, the EOR operation will be described. The value of the EOR operation result of the value “0” and the value “0” is “0”, and the value of the EOR operation result of the value “0” and the value “1”. Is “1”, the value of the EOR operation result of the value “1” and the value “0” is “1”, and the value of the EOR operation result of the value “1” and the value “1” is “0”. It is. Therefore, for example, the EOR operation result of the bit string “11110000” and the bit string “10101010” is “01011010”. The determinant calculation unit 62 repeats such an EOR calculation and synthesizes all the integration results of the components. The EOR calculation result is used as one EOR conversion data S.

以上のような演算を、式(3)の右辺第1項の係数行列の各行に対して繰り返し、全ての左辺第1項の行列の成分として示されるEOR変換データS1乃至SMが求められる。 The above calculation is repeated for each row of the coefficient matrix of the first term on the right side of Equation (3), and EOR conversion data S 1 to S M shown as the components of the matrix of the first term on all the left sides are obtained. .

なお、上述したように、係数行列の各成分の値は、「0」または「1」であるので、その各成分と元データD1乃至DNとの積算結果は、右辺第2項の各成分(元データD1乃至DN)となるか、若しくは、「0」となる。従って、この積算について換言すると、行列式演算部62は、その各成分と元データD1乃至DNとの積算により、EOR変換データSを生成するために用いる元データDを選択(抽出)している。 As described above, since the value of each component of the coefficient matrix is “0” or “1”, the integration result of each component and the original data D 1 to D N is the value of the second term on the right side. It becomes a component (original data D 1 to D N ) or “0”. Therefore, in other words for the integration, determinant calculation unit 62, the integration of its components and the original data D 1 to D N, select the original data D used for generating the EOR conversion data S (extraction) and ing.

また、上述したように、各成分の積算結果が互いに対応するビット毎のEOR演算により合成されるので、合成結果(EOR演算結果)の各ビットの値は、そのビットが対応する、EOR演算される各積算結果のビットにおいて、値が「1」である積算結果の数が奇数である場合、「1」になり、値が「1」である積算結果の数が偶数である場合、「0」になる。従って、このEOR演算について換言すると、行列式演算部62は、上述した成分毎の積算結果の各ビットの値を、互いに対応するビット毎に集計し、値が「1」である積算結果の数が奇数である場合、そのビットに対応するEOR変換データSのビットの値を「1」とし、値が「1」である積算結果の数が偶数である場合、そのビットに対応するEOR変換データSのビットの値を「0」とする。   Further, as described above, since the integration results of the respective components are synthesized by the EOR operation for each bit corresponding to each other, the value of each bit of the synthesis result (EOR operation result) is subjected to the EOR operation corresponding to the bit. When the number of integration results with a value “1” is an odd number, the value is “1”. When the number of integration results with a value “1” is an even number, “0” "become. Therefore, in other words, for the EOR operation, the determinant operation unit 62 adds up the values of the respective bits of the integration results for each component described above for each bit corresponding to each other, and the number of integration results whose value is “1”. Is an odd number, the value of the bit of the EOR conversion data S corresponding to that bit is “1”, and when the number of integration results with the value “1” is an even number, the EOR conversion data corresponding to that bit The value of the bit of S is “0”.

すなわち、行列式演算部62は、元データD1乃至DNの中から、所定の方法により元データDを選択し、その選択した各元データDの、互いに対応するビットについて、値が「1」の数が奇数である場合、そのビットに対応するEOR変換データSのビットの値を「1」とし、値が「1」の数が偶数である場合、そのビットに対応するEOR変換データSのビットの値を「0」として、各EOR変換データSを求める。 That is, the determinant calculation unit 62, from the original data D 1 to D N, select the original data D by a predetermined method, for each original data D that selected, the bits corresponding to each other, the value is "1 ”Is an odd number, the value of the bit of the EOR conversion data S corresponding to that bit is“ 1 ”, and when the number of the value“ 1 ”is an even number, the EOR conversion data S corresponding to that bit is Each EOR conversion data S is obtained with the value of the bit of “0” as “0”.

行列式演算部62は、以上のように演算を行い、EOR変換データS(S1乃至SM)を求め、その解を解出力部63に供給する。このとき、行列式演算部62は、求めたEOR変換データとともに、上述した係数情報および先頭情報を解出力部63に供給する。 The determinant calculation unit 62 performs the calculation as described above, obtains EOR conversion data S (S 1 to S M ), and supplies the solution to the solution output unit 63. At this time, the determinant arithmetic unit 62 supplies the above-described coefficient information and head information to the solution output unit 63 together with the obtained EOR conversion data.

以上のように、EOR変換データ生成部24においては、図7に示されるように、元データが変換されてEOR変換データが生成される。   As described above, the EOR conversion data generation unit 24 converts the original data to generate EOR conversion data as shown in FIG.

図7において、1つのブロックの元データ43(元データD1乃至DN)は、パケットデータ91−1乃至91−Nのようにパケットサイズのデータであり、上述したように、EOR変換データ生成部24において、EOR変換データ44に変換される。EOR変換データ44は、パケットデータ92−1乃至92−Mにより構成される。パケットデータ92−1乃至92−Mは、それぞれ、元データD1乃至DN(パケットデータ91−1乃至91−N)と上述した係数行列を用いて生成されたデータであり、式(3)により、元データD1乃至DN(パケットデータ91−1乃至91−N)から、上述した方法で抽出された複数の元データ43をビット毎にEOR演算した演算結果である。 In FIG. 7, the original data 43 (original data D 1 to D N ) of one block is packet size data like the packet data 91-1 to 91-N, and as described above, EOR conversion data generation The unit 24 converts the data into EOR conversion data 44. The EOR conversion data 44 is composed of packet data 92-1 to 92-M. The packet data 92-1 to 92-M are data generated using the original data D 1 to D N (packet data 91-1 to 91-N) and the coefficient matrix described above, respectively, and the expression (3) Thus, the result of EOR calculation for each bit of the plurality of original data 43 extracted by the above-described method from the original data D 1 to D N (packet data 91-1 to 91-N).

解出力部63は、以上のように算出された解を、EOR変換データSとして、所定のタイミングで図3のアプリケーションデータ生成部25に供給する。なお、解出力部63は、EOR変換データとともに、上述した係数情報および先頭情報を図3のアプリケーションデータ生成部25に供給する。   The solution output unit 63 supplies the solution calculated as described above to the application data generation unit 25 in FIG. 3 as EOR conversion data S at a predetermined timing. The solution output unit 63 supplies the above-described coefficient information and head information together with the EOR conversion data to the application data generation unit 25 in FIG.

次に、有効係数の存在可能範囲について説明する。   Next, the possible range of effective coefficients will be described.

通信システム10において、受信装置13は、後述するように、送信装置11におけるEOR変換データの生成に利用された係数行列と同じ係数行列を利用して元データを復元するが、仮に、EOR変換データの生成に利用される元データに偏りがあり、かつ、その偏り方が特定できるものであるとすると、受信装置13は、元データを復元する際に、係数行列の、明らかに有効係数が存在しない範囲に対応する演算を省略することができる。   In the communication system 10, the receiving device 13 restores the original data by using the same coefficient matrix as the coefficient matrix used for generating the EOR transformed data in the transmitting device 11, as will be described later. If there is a bias in the original data used to generate the data and the bias can be specified, the receiving device 13 clearly has an effective coefficient in the coefficient matrix when restoring the original data. The calculation corresponding to the range not to be performed can be omitted.

そこで、送信装置11が、各EOR変換データの生成に利用する元データを選択する際に、所定の範囲を設定し、元データD1乃至DNの内、その範囲内の元データより選択するようにする。すなわち、係数行列の各行において、有効係数が存在する列の範囲を設定するようにし、有効係数は、その列の範囲内において任意に選択された列の係数とする。 Therefore, the transmitting apparatus 11, when selecting the source data used to generate each EOR conversion data, sets the predetermined range, among the original data D 1 to D N, is selected from the original data within the range Like that. That is, in each row of the coefficient matrix, a column range in which an effective coefficient exists is set, and the effective coefficient is a coefficient of a column arbitrarily selected within the column range.

しかしながら、受信装置13の、パケットロス(送信装置11が送信したEOR変換データのロス)に対する耐性を向上させるために、ロスしたEOR変換データによって復元性能に影響がない(どのEOR変換データをロスしても復元性能が変化しない)ようにすることが望ましい。従って、送信装置11においてEOR変換データを生成する際に、係数行列における有効係数の位置に偏りが無いようにする(任意に選択された元データを用いて各EOR変換データが生成されるようにする)必要がある。より具体的には、係数行列において、有効係数が各列に一様に偏りなく配置されることと、有効係数の配置が行毎に互いに独立している(規則性を有さない)ことが求められる。   However, in order to improve the tolerance of the receiving device 13 against packet loss (loss of EOR converted data transmitted by the transmitting device 11), the restoration performance is not affected by the lost EOR converted data (which EOR converted data is lost). However, it is desirable that the restoration performance does not change. Therefore, when generating the EOR conversion data in the transmission device 11, the position of the effective coefficient in the coefficient matrix is not biased (so that each EOR conversion data is generated using the arbitrarily selected original data). There is a need to. More specifically, in the coefficient matrix, the effective coefficients are arranged uniformly in each column, and the arrangement of the effective coefficients is independent from each other for each row (no regularity). Desired.

そこで、送信装置11が、例えば、図8に示されるように、有効係数の存在可能範囲の位置を行毎にランダムに設定するようにする。図8は、式(3)における有効係数の存在可能範囲の位置を模式的に示す図である。   Therefore, for example, as illustrated in FIG. 8, the transmission device 11 randomly sets the position of the valid coefficient existence range for each row. FIG. 8 is a diagram schematically showing the position of the effective coefficient existence range in the equation (3).

図8において、縦軸は、生成されたEOR変換データS1乃至SMを示し、横軸は、元データD1乃至DNを表している。また、有効係数の存在可能範囲は、黒線で示している。すなわち、縦軸のEOR変換データS1乃至SMは、それぞれ、横軸の元データD1乃至DNの内、黒線で示される範囲内の元データ群の中から任意に抽出された(有効係数に対応する)元データのビット毎のEOR演算結果である。 8, the vertical axis represents the generated showed EOR conversion data S 1 to S M, the horizontal axis represents the original data D 1 to D N. In addition, the possible range of effective coefficients is indicated by black lines. That, EOR converted data S 1 to S M of the vertical axis, respectively, of the original data D 1 through D N on the abscissa, were arbitrarily extracted from the original data set within the range indicated by the black line ( This is the EOR operation result for each bit of the original data (corresponding to the effective coefficient).

上述したように、有効係数の存在可能範囲の幅(バンド幅)は、予め定められた所定の値であるので、図8の黒線の幅は全て同じ長さである。また、上述したように、有効係数の存在可能範囲の先頭位置は、係数行列の第1列目乃至第(N−バンド幅)列目の間でランダムに決定されるので、図8の黒線の先頭位置(左端の位置)は、それぞれ、元データD1乃至元データD(N-バンド幅)の中からランダムに決定された元データとなる。従って、図8に示されるようにEOR変換データS1乃至SMを整列させた場合、各EOR変換データに対応する有効係数の存在可能範囲(黒線)の位置は、偏りなく一様に配置されることになる。 As described above, since the width (band width) of the effective coefficient existence range is a predetermined value, the widths of the black lines in FIG. 8 are all the same length. Further, as described above, the start position of the effective coefficient existence range is randomly determined between the first column to the (N-bandwidth) column of the coefficient matrix, so the black line in FIG. The first position (the leftmost position) of each is the original data randomly determined from the original data D 1 to the original data D (N-bandwidth) . Therefore, when the EOR conversion data S 1 to S M are aligned as shown in FIG. 8, the positions of the effective coefficient existence ranges (black lines) corresponding to the respective EOR conversion data are uniformly arranged without any deviation. Will be.

すなわち、図8に示されるように、EOR変換データを生成する際に利用される係数行列において、有効係数が各列に一様に偏りなく配置され、かつ、有効係数の配置が行毎に互いに独立している(規則性を有さない)。   That is, as shown in FIG. 8, in the coefficient matrix used when generating the EOR conversion data, the effective coefficients are arranged uniformly in each column, and the effective coefficients are arranged for each row. Independent (no regularity).

しかしながら、図8において、EOR変換データS1乃至SMを有効係数の存在可能範囲の先頭位置に基づいて整列すると、有効係数の存在可能範囲が設定されているため、有効係数は、係数行列の対角成分付近に偏って位置することになる。すなわち、係数行列が帯行列のような特性をもつことになるので、受信装置13は、元データを復元する際に、このような係数行列を利用することにより、明らかに有効係数が存在しない範囲を特定し、その範囲に対応する演算を省略することができる。 However, in FIG. 8, when the EOR conversion data S 1 to S M are aligned based on the start position of the effective coefficient existence range, the effective coefficient existence range is set. It will be biased near the diagonal component. That is, since the coefficient matrix has characteristics such as a band matrix, the receiving device 13 uses such a coefficient matrix when restoring the original data, so that there is clearly no effective coefficient. And an operation corresponding to the range can be omitted.

換言すると、EOR変換データ生成部24は、全ての元データD(元データD1乃至DN)を要素とする集合を全体集合とし、全体集合より全体集合の一部である任意の連続する要素群からなる部分集合として有効係数の存在可能範囲を設定し、設定した有効係数の存在可能範囲より元データDを任意に複数選択し、選択した複数の元データDを互いにビット毎に排他的論理和演算し、演算結果であるEOR変換データSを複数の有効係数の存在可能範囲(すなわち、係数行列の各行)について求めることにより、元データD1乃至DNをEOR変換データS1乃至SMに変換する。 In other words, the EOR conversion data generation unit 24 defines a set including all original data D (original data D 1 to D N ) as an entire set, and any continuous element that is a part of the entire set from the entire set. An effective coefficient existence range is set as a subset consisting of a group, and a plurality of original data D is arbitrarily selected from the set effective coefficient existence range, and the selected plurality of original data D is mutually exclusive for each bit. and sum operation, operation presence range results EOR converted data S a plurality of effective coefficients is (i.e., each row of the coefficient matrix) by obtaining the original data D 1 to D N and EOR conversion data S 1 to S M Convert to

次に、アプリケーションデータについて説明する。   Next, application data will be described.

図9は、図3のアプリケーションデータ生成部25の詳細な構成例を示すブロック図である。   FIG. 9 is a block diagram illustrating a detailed configuration example of the application data generation unit 25 of FIG.

最初に、パケットデータが供給される前にブロックカウンタ104は初期化される。   Initially, the block counter 104 is initialized before the packet data is supplied.

EOR変換データ生成部24より供給されたEOR変換データおよび係数情報は、アプリケーションデータ生成部25の係数情報付加部101に供給される。係数情報付加部101は、取得したEOR変換データに、取得した係数情報を付加し、それを先頭情報付加部102に供給する。また先頭情報付加部102には、EOR変換データ生成部24より供給された先頭情報が付加される。先頭情報付加部102は、係数情報が付加されたEOR変換データに先頭情報を付加し、それをブロック番号付加部103に供給する。ブロック番号付加部103は、ブロックカウンタ104のカウント値を取得し、それをブロック番号として係数情報および先頭情報が付加されたEOR変換データに付加する。ブロックカウンタ104は、カウント値をブロック番号付加部103に供給すると、カウントアップし、カウント値を更新する。なお、ブロックカウンタ104は、最大値(N−1)のカウンタであり、カウントアップする毎に、カウント値を「1」増加させる。カウント値が最大値(N−1)のときにカウントアップする場合は、ブロックカウンタ104は、そのカウント値を「0」に更新する。ブロック番号をEOR変換データに付加したブロック番号付加部103は、それをアプリケーションデータ出力部105に供給する。アプリケーションデータ出力部105は、ブロック番号付加部103より供給された、係数情報、先頭情報、およびブロック番号が付加されたEOR変換データを、アプリケーションデータとして、図3のUDPパケット化部27に出力する。   The EOR conversion data and coefficient information supplied from the EOR conversion data generation unit 24 are supplied to the coefficient information addition unit 101 of the application data generation unit 25. The coefficient information adding unit 101 adds the acquired coefficient information to the acquired EOR conversion data and supplies it to the head information adding unit 102. Further, the top information supplied from the EOR conversion data generation unit 24 is added to the top information adding unit 102. The head information adding unit 102 adds head information to the EOR conversion data to which coefficient information is added, and supplies it to the block number adding unit 103. The block number adding unit 103 acquires the count value of the block counter 104 and adds it to the EOR conversion data to which coefficient information and head information are added as a block number. When the block counter 104 supplies the count value to the block number adding unit 103, the block counter 104 counts up and updates the count value. The block counter 104 is a maximum value (N-1) counter, and increments the count value by "1" every time it counts up. When counting up when the count value is the maximum value (N−1), the block counter 104 updates the count value to “0”. The block number adding unit 103 that adds the block number to the EOR conversion data supplies it to the application data output unit 105. The application data output unit 105 outputs the EOR conversion data added with the coefficient information, the head information, and the block number supplied from the block number adding unit 103 to the UDP packetizing unit 27 in FIG. 3 as application data. .

図10は、アプリケーションデータ出力部105より出力されるアプリケーションデータの構成例を示す図である。   FIG. 10 is a diagram illustrating a configuration example of application data output from the application data output unit 105.

図10において、アプリケーションデータ110は、ヘッダ111およびEOR変換データ112により構成される。ヘッダ111は、ブロック番号121、先頭情報122、および係数情報123よりなる。すなわち、アプリケーションデータは、EOR変換データ112に係数情報123、先頭情報122、およびブロック番号121がヘッダ111として付加されたものである。   In FIG. 10, application data 110 includes a header 111 and EOR conversion data 112. The header 111 includes a block number 121, head information 122, and coefficient information 123. That is, the application data is obtained by adding the coefficient information 123, the head information 122, and the block number 121 as the header 111 to the EOR conversion data 112.

係数情報123は、受信装置13が、係数行列の、EOR変換データ112が対応する行の各成分(係数)を生成するための情報であり、例えば、擬似乱数生成部81における係数生成時の乱数発生の種データ(例えば32ビット=4バイト)等により構成される。係数情報123は、その他にも、行番号やパケット番号(例えば6万種発生させる場合、2バイト)等のように、間接的に係数を指定する関連付け情報であってもよいし、そのEOR変換データ112が対応する係数自体のビット列(例えばバンド幅が400のとき、50バイト)であってもよいし、そのビット列をランレングスなどで圧縮したビット列等であってもよい。受信装置13は、このような係数情報に基づいて、各EOR変換データに対応する係数行列の行成分を生成する。   The coefficient information 123 is information for the reception device 13 to generate each component (coefficient) of the row corresponding to the EOR conversion data 112 of the coefficient matrix. For example, the coefficient information 123 is a random number at the time of generating a coefficient in the pseudo-random number generation unit 81. It is composed of generated seed data (for example, 32 bits = 4 bytes). In addition, the coefficient information 123 may be association information that indirectly specifies a coefficient, such as a line number or a packet number (for example, 2 bytes when generating 60,000 types), or an EOR conversion thereof. The data 112 may be a bit string of the corresponding coefficient itself (for example, 50 bytes when the bandwidth is 400), or a bit string obtained by compressing the bit string with a run length or the like. The receiving device 13 generates a row component of a coefficient matrix corresponding to each EOR conversion data based on such coefficient information.

先頭情報122は、受信装置13が、係数行列の、EOR変換データ112が対応する行の各成分(係数)を生成するための情報であり、係数行列における有効係数の存在可能範囲の先頭位置を示す情報である。受信装置13は、このような先頭情報に基づいて、生成した係数行列における有効係数の存在可能範囲の位置を認識し、その位置に基づいて、演算を省略する係数を決定する。   The head information 122 is information for the reception device 13 to generate each component (coefficient) of the row corresponding to the EOR conversion data 112 of the coefficient matrix. The head information 122 indicates the head position of the valid coefficient existence range in the coefficient matrix. It is information to show. The receiving device 13 recognizes the position of the range where the effective coefficient can exist in the generated coefficient matrix based on such head information, and determines a coefficient whose calculation is omitted based on the position.

図9に戻り、以上のようなアプリケーションデータを出力すると、アプリケーションデータ出力部105は、そのアプリケーションデータを出力したことを示す出力情報をデータ変換制御部26に供給する。   Returning to FIG. 9, when the application data as described above is output, the application data output unit 105 supplies output information indicating that the application data has been output to the data conversion control unit 26.

データ変換制御部26は、その出力情報に基づいて、送信用データに対応する全てのアプリケーションデータが出力されたか否かを判定し、全てのアプリケーションデータが出力されていないと判定した場合、次の変換データを生成するように、パケットデータ保持部23およびEOR変換データ生成部24を制御する。   Based on the output information, the data conversion control unit 26 determines whether all application data corresponding to the transmission data has been output. If it is determined that all application data has not been output, The packet data holding unit 23 and the EOR conversion data generation unit 24 are controlled so as to generate conversion data.

以上のように、送信用データを分割した複数の元データを送信するのではなく、元データをEOR変換データに変換してそれを送信するので、送信装置11は、受信装置13が任意のEOR変換データを所定の数以上受信して、元データを復元するようにすることができる。従って、送信装置11は、より容易、かつ、より正確にデータを送信することができる。   As described above, instead of transmitting a plurality of original data obtained by dividing transmission data, the original data is converted into EOR-converted data and transmitted. It is possible to restore the original data by receiving a predetermined number or more of the converted data. Therefore, the transmission device 11 can transmit data more easily and more accurately.

また、ブロック毎に生成したEOR変換データを、各ブロックのEOR変換データを混在させた順番で送信するので、送信装置11は、受信装置13のバースト的パケットロスに対する耐性を向上させることができる。   Further, since the EOR conversion data generated for each block is transmitted in the order in which the EOR conversion data of each block is mixed, the transmission device 11 can improve the tolerance of the reception device 13 against bursty packet loss.

さらに、係数行列の各行において、有効係数の存在可能範囲を限定することができるので、受信装置13が元データ復元処理の演算量を削減させることができる。   Furthermore, since the range in which the effective coefficient can exist can be limited in each row of the coefficient matrix, the reception device 13 can reduce the calculation amount of the original data restoration process.

さらに、送信装置11は、係数情報、先頭情報、ブロック情報等の情報を送信するので、受信装置13が容易に元データ復元処理を行うようにすることができる。   Furthermore, since the transmission device 11 transmits information such as coefficient information, head information, and block information, the reception device 13 can easily perform the original data restoration process.

次に、データの受信側について説明する。   Next, the data receiving side will be described.

図11は、図2の受信装置13の詳細な構成例を示すブロック図である。   FIG. 11 is a block diagram illustrating a detailed configuration example of the reception device 13 of FIG.

ネットワーク12を介して受信装置13に送信されたパケットは、ケーブル130を介してイーサネット(R)(Ethernet(R))処理部131に供給される。イーサネット(R)処理部131は、イーサネット(R)の規格に基づいて、データリンク層および物理層の処理を行い、供給されたパケットからIPパケットを抽出し、IP処理部132に供給する。   A packet transmitted to the receiving device 13 via the network 12 is supplied to the Ethernet (R) processing unit 131 via the cable 130. The Ethernet (R) processing unit 131 performs data link layer and physical layer processing based on the Ethernet (R) standard, extracts an IP packet from the supplied packet, and supplies the IP packet to the IP processing unit 132.

IP処理部132は、IPプロトコルに基づいて、ネットワーク層の処理を行い、供給されたIPパケットよりUDPパケットを抽出し、アプリケーションデータ抽出部133に供給する。アプリケーションデータ抽出部133は、UDPプロトコルに基づいてトランスポート層の処理を行い、UDPパケットより、アプリケーションデータを抽出し、それをバッファ部134に供給する。   The IP processing unit 132 performs network layer processing based on the IP protocol, extracts a UDP packet from the supplied IP packet, and supplies the UDP packet to the application data extraction unit 133. The application data extraction unit 133 performs transport layer processing based on the UDP protocol, extracts application data from the UDP packet, and supplies it to the buffer unit 134.

バッファ部134は、アプリケーションデータに付加されたブロック番号に基づいて、対応するブロック毎にアプリケーションデータを振り分けて保持し、パケットデータ復元部135に供給する。   The buffer unit 134 distributes and holds the application data for each corresponding block based on the block number added to the application data, and supplies the application data to the packet data restoration unit 135.

パケットデータ復元部135は、供給されたアプリケーションデータに含まれる変換データに基づいて、ブロック単位で元データを復元し、それをブロックデータ復元部136に供給する。ブロックデータ復元部136は、パケットデータ復元部135より供給される元データ(パケットデータ)を用いて、ブロックデータを復元し、そのブロックデータを再生出力部137に供給する。受信データ出力部137は、そのブロックデータを用いて受信データ(元の送信用データ)を復元し、それを受信装置13の外部に出力する。   The packet data restoration unit 135 restores the original data in units of blocks based on the conversion data included in the supplied application data, and supplies it to the block data restoration unit 136. The block data restoration unit 136 restores block data using the original data (packet data) supplied from the packet data restoration unit 135 and supplies the block data to the reproduction output unit 137. The reception data output unit 137 restores reception data (original transmission data) using the block data, and outputs it to the outside of the reception device 13.

送信装置11より送信されたパケットは、受信装置13に向けて送信されるが、様々な原因により、受信装置13に受信されない場合がある。例えば、図12に示されるように、送信装置11が送信した送信パケット141の内、9つの送信パケットを受信すれば、受信装置13は、元データを復元し、1つのブロックデータを復元することができる場合に、受信装置13が、送信パケット141の番号3、7、および8のパケットをロスしたとする。すなわち、受信パケット142においては、パケット番号3、7、および8のパケットがロスされている。このように送信パケット141より任意のパケットを3つロスした場合、受信装置13は、そのロスしたパケットと同じブロックに対応するパケットを、上述したパケット番号1乃至9のパケット以外に3つ(図12の場合、パケット番号10乃至12を)受信すれば、元データを復元することができる。すなわち、受信装置13は、送信装置11が送信するパケットの中から、必要な数のパケットを受信することができれば、そのパケットが同じブロックに対応するパケットであればどのパケットであっても、元データを復元することができるようになされている。その復元処理の詳細については後述する。   A packet transmitted from the transmission device 11 is transmitted toward the reception device 13, but may not be received by the reception device 13 due to various causes. For example, as illustrated in FIG. 12, when nine transmission packets 141 are transmitted from the transmission packet 141 transmitted by the transmission device 11, the reception device 13 restores the original data and restores one block data. Suppose that the receiving device 13 lost the packets of the numbers 3, 7, and 8 of the transmission packet 141. That is, in the received packet 142, packets with packet numbers 3, 7, and 8 are lost. When three arbitrary packets are lost from the transmission packet 141 in this way, the receiving apparatus 13 receives three packets corresponding to the same block as the lost packet in addition to the packets with the packet numbers 1 to 9 described above (see FIG. In the case of 12, if the packet numbers 10 to 12) are received, the original data can be restored. That is, if the receiving device 13 can receive a necessary number of packets from among the packets transmitted by the transmitting device 11, the receiving device 13 can be any packet as long as the packet corresponds to the same block. The data can be restored. Details of the restoration processing will be described later.

なお、上述したバッファ部134以降のモジュールが実行する処理は、OSI階層モデルにおける、アプリケーション層、プレゼンテーション層、およびセション層の処理である。   Note that the processing executed by the modules after the buffer unit 134 described above is processing of the application layer, the presentation layer, and the session layer in the OSI hierarchical model.

このように、受信装置13は、送信装置11より送信したパケットの内、任意のパケットを所定の数以上取得すれば、元データ(送信用データ)を復元することができる。すなわち、受信装置13は、送信装置11が送信する変換データを用いて、元データを復元するようにすることにより、パケットロスに対する耐性を向上させることができ、データの送受信をより正確、かつ、より容易に行うようにデータを受信することができる。   As described above, the receiving device 13 can restore the original data (data for transmission) by acquiring a predetermined number or more of arbitrary packets among the packets transmitted from the transmitting device 11. That is, the receiving device 13 can improve the resistance against packet loss by restoring the original data using the converted data transmitted by the transmitting device 11, more accurately transmitting and receiving data, and Data can be received to make it easier.

図13は、パケットデータ復元部135の詳細な構成例を示すブロック図である。   FIG. 13 is a block diagram illustrating a detailed configuration example of the packet data restoration unit 135.

図13において、バッファ部134は、アプリケーションデータをブロック毎に蓄積し、元データを復元するのに十分な数のアプリケーションデータを蓄積したブロックが発生した場合、そのアプリケーションデータを復元制御部151に供給する。   In FIG. 13, the buffer unit 134 accumulates application data for each block, and when a block that accumulates a sufficient number of application data to restore the original data occurs, supplies the application data to the restoration control unit 151. To do.

復元処理部151は、係数行列作成部152にアプリケーションデータを供給し、そのブロックに対する係数行列を作成させる。係数行列作成部152は、係数行列を作成すると、それを行列式作成部153に供給する。復元制御部151は、また、行列式作成部153にアプリケーションデータを供給し、そのブロックに対する、元データを復元するための行列式を作成させる。   The restoration processing unit 151 supplies the application data to the coefficient matrix creation unit 152 and creates a coefficient matrix for the block. When the coefficient matrix creating unit 152 creates the coefficient matrix, the coefficient matrix creating unit 152 supplies the coefficient matrix to the determinant creating unit 153. The restoration control unit 151 also supplies application data to the determinant creation unit 153 to create a determinant for restoring the original data for the block.

行列式作成部153は、復元制御部151より供給されたアプリケーションデータおよび係数行列作成部152より供給された係数行列に基づいて、元データを復元するための行列式である式(4)を作成する。   The determinant creation unit 153 creates Formula (4), which is a determinant for restoring the original data, based on the application data supplied from the restoration control unit 151 and the coefficient matrix supplied from the coefficient matrix creation unit 152. To do.

Figure 2005223683
Figure 2005223683

なお、式(4)において、通常の加算処理の代わりにEOR演算が行われる。式(4)の右辺第1項の行列の各成分Q1乃至QKは、受信装置13が受信したK個(M>K>N)のEOR変換データを示している。左辺第2項の行列の各成分P1乃至PNは、求めるN個の元データを示している。式(4)の左辺第1項の行列は、予め係数行列供給部123において保持されているM行N列の係数行列、すなわち、式(2)の右辺第1項に示される係数行列と各成分の値が同じ係数行列(送信装置11がEOR変換データを生成する際に利用する係数行列と同じ係数行列)より切り出された係数行列である。ただし、式(4)に示される係数行列の行成分は、受信装置13が受信したパケット(EOR変換データQ1乃至QK)が対応する行成分のみで構成される。 In Equation (4), EOR calculation is performed instead of normal addition processing. Each component Q 1 to Q K of the matrix of the first term on the right side of Equation (4) represents K (M>K> N) EOR conversion data received by the receiving device 13. Each component P 1 to P N of the matrix of the second term on the left side indicates N original data to be obtained. The matrix of the first term on the left side of Equation (4) is the coefficient matrix of M rows and N columns held in advance in the coefficient matrix supply unit 123, that is, the coefficient matrix shown in the first term on the right side of Equation (2) and each matrix This is a coefficient matrix cut out from a coefficient matrix having the same component value (the same coefficient matrix as the coefficient matrix used when the transmission apparatus 11 generates EOR conversion data). However, the row components of the coefficient matrix shown in Expression (4) are configured only by the row components corresponding to the packets (EOR converted data Q 1 to Q K ) received by the receiving device 13.

従って、受信装置13は、この式(4)に示される行列式(連立方程式)を解くことにより、元データP1乃至PNの解を求めることができる。 Therefore, the receiving device 13 can obtain the solutions of the original data P 1 to P N by solving the determinant (simultaneous equations) shown in the equation (4).

行列式作成部153は、式(4)に示される行列式を生成すると、その行列式を行列式保持部154および行列式整列部155に供給する。行列式を取得した行列式整列部155は、その行列式の係数行列の有効係数の存在可能範囲に基づいて、行列式の各項の行を入れ替えて、図14に示されるように整列させる。   When the determinant creating unit 153 generates the determinant represented by the equation (4), the determinant creating unit 153 supplies the determinant to the determinant holding unit 154 and the determinant aligning unit 155. The determinant aligning unit 155 that has acquired the determinant replaces the rows of each term of the determinant based on the possible range of the effective coefficient of the coefficient matrix of the determinant and aligns them as shown in FIG.

図14は、行を入れ替えて整列された式(4)における有効係数の存在可能範囲の位置を模式的に示す図である。   FIG. 14 is a diagram schematically illustrating the positions of possible ranges of effective coefficients in Expression (4) arranged by replacing rows.

図14において、図8の場合と同様に、縦軸は、受信したEOR変換データQ1乃至QKを示し、横軸は、求める元データP1乃至PNを表している。また、有効係数の存在可能範囲は、黒線で示している。すなわち、縦軸のEOR変換データQは、それぞれ、横軸の元データP1乃至PNの内、黒線で示される範囲内の元データ群の中から任意に抽出された(有効係数に対応する)元データのビット毎のEOR演算結果である。 In FIG. 14, as in FIG. 8, the vertical axis represents the received EOR conversion data Q 1 to Q K , and the horizontal axis represents the original data P 1 to P N to be obtained. In addition, the possible range of effective coefficients is indicated by black lines. That is, the EOR conversion data Q on the vertical axis is arbitrarily extracted from the original data group within the range indicated by the black line among the original data P 1 to P N on the horizontal axis (corresponding to the effective coefficient). This is the EOR operation result for each bit of the original data.

行列式整列部155は、行列式作成部153が作成した行列式の各項の行成分の入れ替えを行い、図14に示されるように、式(4)における各行の有効係数の存在可能範囲の先頭位置が、第1行目から第K行目に向かって、順に、第1列目から第N列目に向かうようにする。   The determinant aligning unit 155 replaces the row component of each term of the determinant created by the determinant creating unit 153, and as shown in FIG. The head position is made to go from the first column to the Nth column in order from the first row to the Kth row.

すなわち、このときの式(4)の左辺第1項の係数行列における有効係数の位置は、例えば、図15Aに示されるように、係数行列の対角成分付近に集中し、係数行列が帯行列のようになる。実際には、この係数行列のサイズ(行数および列数)は、非常に大きく、図15Bに示されるように、より帯行列の性格を強くする。図15Bにおいて、ハッチで示される範囲が有効係数の存在可能範囲であり、両矢印で示される範囲がバンド幅161となる。なお、この有効係数の存在可能範囲内において、有効係数はランダムに配置される。このように行列式が整列されることにより、係数行列において有効係数の位置に偏りが生じる。従って、受信装置13は、図15Bのハッチで示されるような、有効係数の存在可能範囲外の領域(図15B中白地の領域)での演算を省略することができる。   That is, the positions of effective coefficients in the coefficient matrix of the first term on the left side of Equation (4) at this time are concentrated near the diagonal components of the coefficient matrix as shown in FIG. 15A, for example, and the coefficient matrix is a band matrix. become that way. In practice, the size (number of rows and columns) of this coefficient matrix is very large, making the characteristics of the band matrix stronger as shown in FIG. 15B. In FIG. 15B, the range indicated by hatching is the range where the effective coefficient can exist, and the range indicated by double-headed arrow is the bandwidth 161. Note that the effective coefficients are randomly arranged within the possible range of the effective coefficients. By aligning the determinants in this way, the position of the effective coefficient is biased in the coefficient matrix. Therefore, the receiving apparatus 13 can omit the calculation in the area outside the possible range of the effective coefficient (the white area in FIG. 15B) as indicated by the hatch in FIG. 15B.

このように行列式を整列すると、行列式整列部155は、整列した行列式を行列式保持部154に保持させるとともに、その情報をタイル処理部156に供給する。タイル処理部156は、その情報に基づいて、行列式保持部154に、整列済みの行列式を要求し、取得する。   When the determinants are aligned in this way, the determinant aligning unit 155 holds the aligned determinant in the determinant holding unit 154 and supplies the information to the tile processing unit 156. Based on the information, the tile processing unit 156 requests the determinant holding unit 154 for the aligned determinant and acquires it.

タイル処理部156は、整列された行列式を取得すると、取得した行列式の係数行列に対して、演算処理を制御する領域の単位であるタイルを設定し、各タイルについて、元データ復元のための演算を行うか否かを判定する。すなわち、タイル処理部156は、係数行列の全成分の領域を、所定の単位で行方向および列方向に分割した複数の小領域(タイル)を設定する。図16にタイルの例を示す。図16において、領域162は、係数行列の全成分の領域を示している。図15を参照して説明したように、この領域162には、バンド幅161の有効係数の存在可能領域(2本の斜めの直線で挟まれた領域)が設定されており、その領域内に有効係数が分布している。   When the tile processing unit 156 acquires the aligned determinant, the tile processing unit 156 sets a tile which is a unit of an area for controlling the arithmetic processing for the coefficient matrix of the acquired determinant, and restores the original data for each tile. It is determined whether or not to perform the operation. That is, the tile processing unit 156 sets a plurality of small regions (tiles) obtained by dividing the region of all the components of the coefficient matrix in the row direction and the column direction by a predetermined unit. FIG. 16 shows an example of a tile. In FIG. 16, a region 162 indicates a region of all components of the coefficient matrix. As described with reference to FIG. 15, in this area 162, an area where the effective coefficient of the bandwidth 161 can exist (area sandwiched between two oblique straight lines) is set, and the area 162 is within this area. Effective coefficients are distributed.

タイル処理部156は、このような領域162を所定のサイズの、タイル163に示されるような小領域に分割する。図16の例の場合、タイル処理部156は、領域162のサイズを、列数2048×行数2112とし、バンド幅161の大きさ(列数)を400とし、このような領域162に対して1辺がバンド幅161の数分の一(例えば128)程度の大きさの小領域(例えば、列数128×行数132)をタイルとして設定している。   The tile processing unit 156 divides the area 162 into small areas having a predetermined size as shown by the tile 163. In the case of the example in FIG. 16, the tile processing unit 156 sets the size of the region 162 to 2048 columns × 2112 rows and the size of the bandwidth 161 (the number of columns) to 400. A small area (for example, the number of columns 128 × the number of rows 132) whose one side is about a fraction of the bandwidth 161 (for example, 128) is set as a tile.

なお、このタイルのサイズは予め設定され、タイル処理部156に保持されている。このようなタイルを設定すると、タイル処理部156は、各タイルについて演算の有無を判定する。演算の有無はそのタイルの位置により決定され、例えば、そのタイルが有効係数の存在可能範囲付近に存在する場合、タイル処理部156は、そのタイルにおいて演算すると判定し、タイル処理部156は、係数行列におけるそのタイルの成分に対応する部分行列式を抽出し、それを行列式演算部157に供給する。なお、演算を行わないと判定したタイルについては、タイル処理部156は、そのタイルについては処理せずに、次のタイルの判定を行う。   Note that the size of the tile is set in advance and held in the tile processing unit 156. When such a tile is set, the tile processing unit 156 determines whether or not to calculate each tile. The presence / absence of the calculation is determined by the position of the tile. For example, when the tile exists in the vicinity of the valid coefficient existence range, the tile processing unit 156 determines that the calculation is performed on the tile, and the tile processing unit 156 A partial determinant corresponding to the tile component in the matrix is extracted and supplied to the determinant operation unit 157. Note that the tile processing unit 156 determines the next tile without processing the tile for a tile that is determined not to be calculated.

図16においては、ハッチで示されるタイルが演算を行うように設定されたタイルであり、水平方向に7タイル分ずつ設定されている。すなわち、タイル処理部156は、有効係数の存在可能範囲のバンド幅161よりやや大きめ範囲のタイルを、演算を行うタイルとして設定する。そしてそれ以外の、図16において白地で示されるタイルは、演算を行わないタイルとして設定される。   In FIG. 16, tiles indicated by hatches are tiles set so as to perform calculations, and are set for 7 tiles in the horizontal direction. That is, the tile processing unit 156 sets a tile having a slightly larger range than the bandwidth 161 of the range in which the effective coefficient can exist as a tile to be calculated. The other tiles shown in white in FIG. 16 are set as tiles for which no operation is performed.

すなわち、領域162におけるタイルは、行列式演算部157が行列式を演算する演算処理の処理単位である。このとき、元データの復元には、その元データよりも多くの変換データを必要とするので、各タイルのサイズは、各タイルの列数より行数の方が多くなるように設定される。   That is, the tile in the area 162 is a processing unit of arithmetic processing in which the determinant calculating unit 157 calculates the determinant. At this time, since restoration of the original data requires more conversion data than the original data, the size of each tile is set so that the number of rows is larger than the number of columns of each tile.

タイル処理部156が、このように設定することにより、行列式演算部157は、図16に示されるように、有効係数の存在可能領域を含む、ハッチで示されるタイルのみを演算するので、領域162において係数行列全体に対して演算処理を行うよりも、その演算量を削減することができる。   By setting the tile processing unit 156 as described above, the determinant calculating unit 157 calculates only the tiles indicated by hatches including the areas where the effective coefficients can exist as shown in FIG. It is possible to reduce the amount of calculation compared to performing calculation processing on the entire coefficient matrix in 162.

以上のように、行列式に対してマスキング処理を行い、演算を行う領域を限定すると、タイル処理部156は、その部分行列式を行列式演算部157に供給する。   As described above, when the masking process is performed on the determinant and the region to be operated is limited, the tile processing unit 156 supplies the partial determinant to the determinant calculating unit 157.

行列式演算部157は、式(4)に示される式の部分行列式を取得すると、その行列式を、例えば、ガウスの消去法を用いて、元データD1乃至DNの解を求め、その求めた元データD1乃至DNを解出力部158に供給る。ガウスの消去法の具体的な例については、後述する。 Determinant calculation unit 157 obtains the type of the partial matrix equation shown in equation (4), the determinant, for example, using the Gaussian elimination to obtain the solution of the original data D 1 to D N, The obtained original data D 1 to D N are supplied to the solution output unit 158. A specific example of the Gaussian elimination method will be described later.

解出力部158は、その解を元データとして、図11のブロックデータ復元部136に供給する。   The solution output unit 158 supplies the solution as original data to the block data restoration unit 136 of FIG.

以上のようにパケットデータ復元部135が復元処理を行うことにより、受信装置13は、送信装置11に再送要求をすることなしに、元データを容易に復元することができる。また、図12を参照して説明したように、受信装置13は、送信装置11が送信する変換データの内、所定の数以上の任意の変換データを取得すれば、元データを復元することができるので、例えば、パケットをロスした場合であっても、ロスした数以上のパケットを任意に追加的に受信すればよく、カルーセル方式によりパケットを送信する場合と比較して、高速に復元処理を開始することができ、受信処理をより高速に実行することができる。また、これにより、送信装置13が送信するパケット群に対して、受信装置13が、その途中のパケットから受信を開始しても、所定の数以上の変換データを取得すれば、元データを復元することができる。さらに、受信装置13は、EOR演算により元データを復元できるので、例えばリードソロモン符号の場合におけるガロア体上の演算のような複雑な演算を行わずに元データを復元することができ、より容易かつ高速に復元処理を行うことができるとともに、受信装置13の製造コストを低減させることができる。   As described above, when the packet data restoration unit 135 performs the restoration process, the reception device 13 can easily restore the original data without making a retransmission request to the transmission device 11. In addition, as described with reference to FIG. 12, the receiving device 13 can restore the original data when obtaining a predetermined number or more of the converted data among the converted data transmitted by the transmitting device 11. So, for example, even if packets are lost, it is only necessary to arbitrarily receive more packets than the number of lost packets, and restoration processing can be performed at a higher speed than when packets are transmitted by the carousel method. The reception process can be executed at a higher speed. As a result, even if the receiving device 13 starts receiving from the packet in the middle of the packet group transmitted by the transmitting device 13, the original data is restored if the conversion data of a predetermined number or more is acquired. can do. Furthermore, since the receiving device 13 can restore the original data by EOR calculation, for example, the original data can be restored without performing a complicated calculation such as a calculation on a Galois field in the case of Reed-Solomon code. In addition, the restoration process can be performed at high speed, and the manufacturing cost of the receiving device 13 can be reduced.

次に、送信装置11における、上述した各部の処理の流れについて説明する。   Next, the process flow of each unit described above in the transmission apparatus 11 will be described.

外部からの送信データの供給が開始されると、送信装置11は、データ送信処理を開始する。図3の送信装置11によるデータ送信処理を図17のフローチャートを参照して説明する。   When the supply of transmission data from the outside is started, the transmission device 11 starts data transmission processing. A data transmission process by the transmission apparatus 11 of FIG. 3 will be described with reference to a flowchart of FIG.

最初に、送信用データが外部より供給されると、送信装置11のデータ分割部21は、ステップS1において、送信用データをブロックに分割することによりブロックデータを生成する。ブロック分割部22は、ステップS2において、生成されたブロックデータをさらにパケットデータに分割することにより、元データを生成する。   First, when transmission data is supplied from the outside, the data dividing unit 21 of the transmission device 11 generates block data by dividing the transmission data into blocks in step S1. In step S2, the block dividing unit 22 further generates original data by further dividing the generated block data into packet data.

パケットデータ保持部23は、ステップS3において、ブロック分割部22において生成された、1つの送信用データに対応する全てのパケットデータ(元データ)を保持する。   The packet data holding unit 23 holds all packet data (original data) corresponding to one transmission data generated in the block dividing unit 22 in step S3.

ステップS4において、データ変換制御部26は、生成するEOR変換データのパケット番号として変数jの値を初期化し、例えば「0」に設定する。また、ステップS5において、データ変換制御部26は、生成するEOR変換データのブロック番号として変数iの値を初期化し、例えば「0」に設定する。   In step S4, the data conversion control unit 26 initializes the value of the variable j as the packet number of the EOR conversion data to be generated, and sets it to “0”, for example. In step S5, the data conversion control unit 26 initializes the value of the variable i as the block number of the EOR conversion data to be generated, and sets it to “0”, for example.

次に、ステップS6において、データ変換制御部26は、パケットデータ保持部23およびEOR変換データ生成部24を制御して、現在のパケット番号およびブロック番号の値に対応するEOR変換データを生成するために、パケットデータ保持部23が保持している、ブロック番号iに対応するブロックの元データ群を用いた、ブロック番号i、パケット番号jのEOR変換データの生成処理を開始させる。EOR変換データ生成部24は、データ変換制御部26に制御され、EOR変換データ生成処理を行い、供給された元データ群を用いてEOR演算を行い、指定されたブロック番号i、パケット番号jのEOR変換データを生成する。EOR変換データ生成処理の詳細については後述する。   In step S6, the data conversion control unit 26 controls the packet data holding unit 23 and the EOR conversion data generation unit 24 to generate EOR conversion data corresponding to the current packet number and block number values. Then, the generation processing of the EOR conversion data of the block number i and the packet number j using the original data group of the block corresponding to the block number i held by the packet data holding unit 23 is started. The EOR conversion data generation unit 24 is controlled by the data conversion control unit 26, performs EOR conversion data generation processing, performs EOR calculation using the supplied original data group, and assigns the specified block number i and packet number j. Generate EOR conversion data. Details of the EOR conversion data generation processing will be described later.

EOR変換データ生成部24が、指定されたブロック番号i、パケット番号jのEOR変換データを生成すると、アプリケーションデータ生成部25は、ステップS7において、アプリケーションデータ生成処理を行い、生成されたEOR変換データに上述した係数情報、先頭情報、およびブロック番号等のヘッダを付加し、アプリケーションデータを生成する。アプリケーションデータ生成処理の詳細は後述する。   When the EOR conversion data generation unit 24 generates EOR conversion data of the designated block number i and packet number j, the application data generation unit 25 performs application data generation processing in step S7, and generates the generated EOR conversion data. Are added with headers such as the coefficient information, the head information and the block number described above to generate application data. Details of the application data generation process will be described later.

ステップS8において、UDPパケット化部27は、生成されたアプリケーションデータをUDPパケット化し、バッファ28は、そのUDPパケットを保持し、出力制御部29は、所定のタイミングで保持されているUDPパケットを読み出し、IP処理部30は、読み出されたUDPパケットをIPパケット化し、イーサネット(R)処理部31は、さらにそのIPパケットを送信用にパケット化し、ケーブル32を介して、ネットワーク12に(ネットワーク12を介して接続される受信装置13に対して)送信する。   In step S8, the UDP packetization unit 27 converts the generated application data into a UDP packet, the buffer 28 holds the UDP packet, and the output control unit 29 reads the UDP packet held at a predetermined timing. The IP processing unit 30 converts the read UDP packet into an IP packet, and the Ethernet (R) processing unit 31 further converts the IP packet into a packet for transmission and transmits it to the network 12 via the cable 32 (network 12). To the receiving device 13 connected via

また、データ変換制御部26は、アプリケーションデータ生成部25により生成された出力情報に基づいて、EOR変換データが出力されたことを確認すると、ステップS9において、ブロック番号iの値に「1」を加算し、ステップS10において、全ブロックについて処理が終了したか否かを判定する。ブロック番号iの値が、ブロック分割部22が分割したブロックの数以下であり、全ブロックについて処理が終了していないと判定した場合、データ変換制御部26は、処理をステップS6に戻し、次のブロックのEOR変換データを生成させる。   In addition, when the data conversion control unit 26 confirms that the EOR conversion data is output based on the output information generated by the application data generation unit 25, the data conversion control unit 26 sets “1” to the value of the block number i in step S9. In step S10, it is determined whether or not the processing has been completed for all blocks. When the value of the block number i is equal to or less than the number of blocks divided by the block dividing unit 22 and it is determined that the processing has not been completed for all blocks, the data conversion control unit 26 returns the process to step S6, and next Generate EOR conversion data for the block.

以上のようにステップS6乃至ステップS10の処理を繰り返し、ステップS10において、全ブロックについて処理が終了したと判定した場合、データ変換制御部26は、ステップS11に処理を進め、パケット番号jの値に「1」を加算し、ステップS12において、全パケットについて処理が終了したか否かを判定する。データ変換制御部26は、図4に示されるように、各ブロックに対応するEOR変換データを1つずつ生成するように制御し、全ブロックの処理が終了すると、再度、各ブロックに対応するEOR変換データを1つずつ生成するように制御する。データ変換制御部26は、このような制御を繰り返し、各ブロックに対応するEOR変換データを予め定められた所定の数ずつ生成させる。   As described above, the processes of Steps S6 to S10 are repeated, and if it is determined in Step S10 that the process has been completed for all blocks, the data conversion control unit 26 proceeds to Step S11 and sets the value of the packet number j. “1” is added, and in step S12, it is determined whether or not processing has been completed for all packets. As shown in FIG. 4, the data conversion control unit 26 performs control so that EOR conversion data corresponding to each block is generated one by one. When the processing of all the blocks is completed, the EOR corresponding to each block is again performed. Control is performed to generate conversion data one by one. The data conversion control unit 26 repeats such control, and generates a predetermined number of EOR conversion data corresponding to each block.

すなわち、データ変換制御部26は、ステップS12において、パケット番号jの値が、この予め定められた所定の数より大きいか否かを判定することにより、全パケットについて処理が終了したか否かを判定する。そして、全パケットについて処理が終了していないと判定した場合、データ変換制御部26は、処理をステップS5に戻し、それ以降の処理を繰り返すことにより、各部に、最初のブロックに対応するEOR変換データの生成から、再度繰り返させる。以上のようにステップS5乃至ステップS12の処理を繰り返し、ステップS12において、全パケットについて処理が終了したと判定した場合、データ変換制御部26は、データ送信処理を終了する。   That is, in step S12, the data conversion control unit 26 determines whether or not the processing has been completed for all the packets by determining whether or not the value of the packet number j is larger than the predetermined number. judge. If it is determined that the processing has not been completed for all packets, the data conversion control unit 26 returns the processing to step S5 and repeats the subsequent processing, thereby allowing each unit to perform EOR conversion corresponding to the first block. Repeat from data generation. As described above, the processing from step S5 to step S12 is repeated, and if it is determined in step S12 that the processing has been completed for all packets, the data conversion control unit 26 ends the data transmission processing.

以上のようにしてデータ送信処理が実行される。これにより、送信装置11は、ガロア体の演算など、負荷の大きい処理を行わずに、高速に冗長データを生成することができ、データを容易かつ正確に送信することができる。また、送信装置11は、パケットデータの送信順を上述したようにブロック単位で並べ替えて送信するので、バースト的パケットロスが発生しても、そのロスしたパケットが特定のブロックに集中することを抑制し、バースト的パケットロスに対する耐性も上げることができる。さらに、このように送信装置11が送信処理を行うことにより、送信装置11が送信したパケットを受信する受信装置13は、高速であり、かつ、復元性能の高い復元処理を、製造コストを増大せずに実現することができる。すなわち、通信システム10は、より容易に、より正確な通信を行うことができる。   The data transmission process is executed as described above. As a result, the transmission device 11 can generate redundant data at high speed without performing heavy processing such as calculation of Galois field, and can transmit data easily and accurately. Further, since the transmission apparatus 11 rearranges the transmission order of the packet data in units of blocks as described above, even if a bursty packet loss occurs, the lost packets are concentrated on a specific block. It can be suppressed and the resistance to bursty packet loss can be increased. Furthermore, when the transmission device 11 performs the transmission process in this manner, the reception device 13 that receives the packet transmitted by the transmission device 11 increases the manufacturing cost by performing a high-speed restoration process with high restoration performance. It can be realized without. That is, the communication system 10 can perform more accurate communication more easily.

次に、図18のフローチャートを参照して、図17のステップS6において実行されるEOR変換データ生成処理について説明する。   Next, the EOR conversion data generation process executed in step S6 of FIG. 17 will be described with reference to the flowchart of FIG.

最初に、EOR変換データ生成部24の擬似乱数生成部81は、ステップS31において、有効係数の存在可能範囲の先頭位置設定用の擬似乱数を生成する。先頭位置決定部82は、その擬似乱数に基づいて有効係数の存在可能範囲の先頭位置を決定しその情報を保持する。範囲制御部84は、ステップS32において、先頭位置決定部82が保持する先頭位置に関する情報および、幅設定部83が保持する有効係数の存在可能範囲の幅に関する情報に基づいて、有効係数の存在可能範囲(の位置)を決定する。   First, in step S31, the pseudo random number generation unit 81 of the EOR conversion data generation unit 24 generates a pseudo random number for setting the leading position of the valid coefficient existence range. The start position determination unit 82 determines the start position of the valid coefficient existence range based on the pseudo random number and holds the information. In step S32, the range control unit 84 can make an effective coefficient exist based on the information on the head position held by the head position determining unit 82 and the information on the width of the possible range of the effective coefficient held by the width setting unit 83. Determine the range.

擬似乱数生成部81は、ステップS33において、係数設定用の擬似乱数を生成する。範囲制御部84は、ステップS34において、その生成された擬似乱数が対応する係数(成分)の位置が、ステップS32において決定した有効係数の存在可能範囲内であるか否かを判定し、有効係数の存在可能範囲内であると判定した場合、ステップS35に処理を進める。ステップS35において、係数判定部85は、係数生成確率保持部86が保持する係数生成確率p、および、擬似乱数生成部81が生成した係数設定用の擬似乱数に基づいて、係数の値が「0」であるか、若しくは「1」であるかを判定し、係数の値をその判定した値に設定し、処理をステップS37に進める。また、ステップS34において、擬似乱数が対応する係数の位置が有効係数の存在可能範囲外であると判定した場合、範囲制御部84は、ステップS36に処理を進め、係数行列保持部71は、擬似乱数の値に関わらず、係数の値を「0」に設定し、処理をステップS37に進める。   In step S33, the pseudo random number generation unit 81 generates a pseudo random number for coefficient setting. In step S34, the range control unit 84 determines whether or not the position of the coefficient (component) to which the generated pseudorandom number corresponds is within the possible range of the effective coefficient determined in step S32. If it is determined that it is within the possible range, the process proceeds to step S35. In step S35, the coefficient determination unit 85 sets the coefficient value to “0” based on the coefficient generation probability p held by the coefficient generation probability holding unit 86 and the pseudo random number for coefficient setting generated by the pseudo random number generation unit 81. ”Or“ 1 ”, the coefficient value is set to the determined value, and the process proceeds to step S37. If it is determined in step S34 that the position of the coefficient corresponding to the pseudo random number is outside the valid coefficient existence range, the range control unit 84 proceeds to step S36, and the coefficient matrix holding unit 71 Regardless of the value of the random number, the coefficient value is set to “0”, and the process proceeds to step S37.

ステップS37において、係数行列保持部71は、設定された係数の値を保持し、ステップS38において、保持した係数により、係数行列が完成したか否かを判定する。係数行列が完成していないと判定した場合、係数行列保持部71は、ステップS33に処理を戻し、それ以降の処理を各部に繰り返させることにより、次の係数の値を設定させる。   In step S37, the coefficient matrix holding unit 71 holds the set coefficient value, and in step S38, the coefficient matrix holding unit 71 determines whether the coefficient matrix is completed based on the held coefficient. If it is determined that the coefficient matrix has not been completed, the coefficient matrix holding unit 71 returns the process to step S33 and causes each unit to repeat the subsequent processes, thereby setting the value of the next coefficient.

ステップS38において、係数行列が完成したと判定した場合、係数行列保持部71は、ステップS39に処理を進める。ステップS39において、行列式生成部61は、係数行列保持部71が保持する係数行列を利用して、元データを変換する行列式を作成する。行列式演算部62は、ステップS40において、その行列式を演算する。解出力部63は、その行列式演算部62による演算結果である行列式の解をEOR変換データとして出力し、EOR変換データ生成処理を終了し、処理を図16のステップS6に戻す。このとき、解出力部63は、上述したように、EOR変換データとともに、係数情報や先頭情報も出力する。   If it is determined in step S38 that the coefficient matrix has been completed, the coefficient matrix holding unit 71 advances the process to step S39. In step S39, the determinant generation unit 61 uses the coefficient matrix held by the coefficient matrix holding unit 71 to create a determinant for converting the original data. The determinant computing unit 62 computes the determinant in step S40. The solution output unit 63 outputs the determinant solution, which is the calculation result of the determinant operation unit 62, as EOR conversion data, ends the EOR conversion data generation process, and returns the process to step S6 in FIG. At this time, the solution output unit 63 also outputs coefficient information and head information together with the EOR conversion data as described above.

以上のように、元データを用いてEOR演算を行い、EOR変換データを生成するので、EOR変換データ生成部24は、容易、かつ、高速にEOR変換データを生成することができる。これにより送信装置11は、ガロア体の演算など、負荷の大きい処理を行わずに、高速にEOR変換データを生成することができ、データを容易かつ正確に送信することができる。また、このように送信装置11が送信処理を行うことにより、送信装置11が送信したパケットを受信する受信装置13は、高速であり、かつ、復元性能の高い復元処理を、製造コストを増大せずに実現することができる。すなわち、通信システム10は、より容易に、より正確な通信を行うことができる。   As described above, the EOR operation is performed using the original data to generate the EOR conversion data, so that the EOR conversion data generation unit 24 can generate the EOR conversion data easily and at high speed. As a result, the transmission device 11 can generate EOR conversion data at high speed without performing heavy processing such as calculation of a Galois field, and can transmit data easily and accurately. In addition, when the transmission device 11 performs the transmission process in this manner, the reception device 13 that receives the packet transmitted by the transmission device 11 increases the manufacturing cost by performing a high-speed restoration process with high restoration performance. It can be realized without. That is, the communication system 10 can perform more accurate communication more easily.

次に、図17のステップS7において実行されるアプリケーションデータ生成処理の詳細を図19のフローチャートを参照して説明する。   Next, details of the application data generation process executed in step S7 of FIG. 17 will be described with reference to the flowchart of FIG.

最初に、係数情報付加部101は、ステップS61において、EOR変換データ生成部24において生成されたEOR変換データに対して、そのEOR変換データに対応する係数情報をヘッダとして付加する。ステップS62において、先頭情報付加部102は、係数情報が付加されたEOR変換データに対して、そのEOR変換データに対応する先頭情報をヘッダとして付加する。さらに、ステップS63において、ブロック番号付加部103は、ブロックカウンタ104においてカウントされたカウント値であるブロック番号を、係数情報および先頭情報が付加されたEOR変換データにヘッダとして付加する。   First, in step S61, the coefficient information adding unit 101 adds coefficient information corresponding to the EOR conversion data to the EOR conversion data generated by the EOR conversion data generation unit 24 as a header. In step S62, the head information adding unit 102 adds head information corresponding to the EOR conversion data to the EOR conversion data to which the coefficient information is added as a header. Further, in step S63, the block number adding unit 103 adds the block number, which is the count value counted by the block counter 104, to the EOR conversion data to which coefficient information and head information are added as a header.

ブロック番号付加部103によりEOR変換データにブロック番号が付加されると、ブロックカウンタ104は、ブロック番号付加部103に制御され、カウント値をカウントアップする。   When the block number is added to the EOR conversion data by the block number adding unit 103, the block counter 104 is controlled by the block number adding unit 103 and counts up the count value.

ステップS65において、アプリケーションデータ出力部105は、係数情報、先頭情報、および、ブロック番号がヘッダとして付加されたEOR変換データをアプリケーションデータとして出力し、ステップS66において、そのアプリケーションデータに対する出力情報を生成して出力する。ステップS66の処理を終了すると、アプリケーションデータ出力部105は、アプリケーションデータ生成処理を終了し、処理を図16のステップS7に戻し、それ以降の処理を行わせる。   In step S65, the application data output unit 105 outputs the EOR conversion data with the coefficient information, the head information, and the block number added as a header as application data, and generates output information for the application data in step S66. Output. When the process of step S66 ends, the application data output unit 105 ends the application data generation process, returns the process to step S7 of FIG. 16, and performs the subsequent processes.

以上のように、アプリケーションデータ生成部25がブロック番号をEOR変換データに付加することにより、受信装置13は、受信したEOR変換データのブロックを識別することができ、ブロック毎に処理することができる。   As described above, when the application data generation unit 25 adds the block number to the EOR conversion data, the reception device 13 can identify the block of the received EOR conversion data and can process each block. .

また、アプリケーションデータ生成部25が係数情報や先頭情報をEOR変換データに付加することにより、受信装置13は、送信装置11におけるEOR変換データ生成処理の場合と対応するように行列式を生成し、その行列式を用いて元データの復元処理を実行し、元データを復元することができる。   In addition, when the application data generation unit 25 adds coefficient information or head information to the EOR conversion data, the reception device 13 generates a determinant so as to correspond to the case of the EOR conversion data generation processing in the transmission device 11, The original data can be restored by executing the restoration process of the original data using the determinant.

次に、受信装置13が実行する処理の流れについて説明する。   Next, the flow of processing executed by the receiving device 13 will be described.

最初に、図11の受信装置13によるデータ受信処理を図20のフローチャートを参照して説明する。   First, data reception processing by the reception device 13 of FIG. 11 will be described with reference to the flowchart of FIG.

受信装置13に対して、送信装置11よりパケットが送信され、そのパケットがケーブル210を介してイーサネット(R)処理部221に供給されると、イーサネット(R)処理部131は、ステップS81において、そのパケットを受信する。パケットを受信したイーサネット(R)処理部131は、そのパケットからIPパケットを抽出する。IP処理部132は、そのIPパケットからUDPパケットを抽出する。   When a packet is transmitted from the transmission device 11 to the reception device 13, and the packet is supplied to the Ethernet (R) processing unit 221 via the cable 210, the Ethernet (R) processing unit 131, in step S81, Receive the packet. The Ethernet processing unit 131 that has received the packet extracts an IP packet from the packet. The IP processing unit 132 extracts a UDP packet from the IP packet.

UDPパケットを供給されたアプリケーションデータ抽出部133は、ステップS82において、そのUDPパケットからアプリケーションデータを抽出し、それをバッファ部134に供給する。バッファ部134は、ステップS83において、その供給されたアプリケーションデータをブロック毎に振り分けて保持する。バッファ部134は、ステップS84において、保持している各ブロックのアプリケーションデータの数に基づいて、各ブロックにおいて元データを復元可能か否かを判定する。各ブロックのアプリケーションデータを、元データを復元するのに十分な数保持しており、元データを復元可能であると判定した場合、バッファ部134は、ブロック毎にアプリケーションデータをパケットデータ復元部135に供給し、ステップS85に処理を進める。ステップS85において、パケットデータ復元部135は、供給されたアプリケーションデータを用いて、元データ復元処理を行い、ブロック毎に元データを復元する。元データ復元処理の詳細は後述する。   The application data extraction unit 133 supplied with the UDP packet extracts application data from the UDP packet and supplies it to the buffer unit 134 in step S82. In step S83, the buffer unit 134 distributes and holds the supplied application data for each block. In step S <b> 84, the buffer unit 134 determines whether or not the original data can be restored in each block based on the number of pieces of application data stored in each block. When it is determined that the application data of each block is sufficient to restore the original data and the original data can be restored, the buffer unit 134 converts the application data into the packet data restoration unit 135 for each block. And the process proceeds to step S85. In step S85, the packet data restoration unit 135 performs original data restoration processing using the supplied application data, and restores the original data for each block. Details of the original data restoration process will be described later.

元データ復元処理を終了すると、パケットデータ復元部135は、復元した元データをブロックデータ復元部136に供給し、処理をステップS86に進める。ステップS86において、ブロックデータ復元部136は、供給された各元データを組み合わせ、ブロックデータを復元し、復元したブロックデータを受信データ生成部137に供給する。受信データ生成部137は、ステップS87において、ブロックデータ復元部136より供給されるブロックデータを保持し、全てのブロックデータを保持すると、それらを組み合わせ、受信データ(元の送信用データ)を生成(復元)して、それを受信装置13の外部に出力し、データ受信処理を終了する。   When the original data restoration process ends, the packet data restoration unit 135 supplies the restored original data to the block data restoration unit 136, and the process proceeds to step S86. In step S <b> 86, the block data restoration unit 136 combines the supplied original data, restores the block data, and supplies the restored block data to the reception data generation unit 137. In step S87, the reception data generation unit 137 holds the block data supplied from the block data restoration unit 136, and when all the block data is held, combines them to generate reception data (original transmission data) ( (Restoration) and output it to the outside of the receiving device 13, and the data receiving process is terminated.

また、ステップS84において、いずれかのブロックのアプリケーションデータを、元データを復元するのに十分な数だけ保持しておらず、元データを復元不可能であると判定した場合、バッファ部134は、処理をステップS88に進め、パケットの受信が終了したか否かを判定する。パケットの受信が終了していないと判定した場合、バッファ部134は、処理をステップS81に戻し、それ以降の処理を繰り返す。   In step S84, when it is determined that the application data of any block is not held in a sufficient number to restore the original data and the original data cannot be restored, the buffer unit 134 The process proceeds to step S88, and it is determined whether reception of the packet has been completed. If it is determined that the packet reception has not ended, the buffer unit 134 returns the process to step S81 and repeats the subsequent processes.

また、ステップS88において、パケットの受信処理が終了したと判定した場合、バッファ部134は、ステップS89に処理を進め、エラー処理を行い、データ受信処理を終了する。   If it is determined in step S88 that the packet reception process has ended, the buffer unit 134 proceeds to step S89, performs error processing, and ends the data reception process.

以上のようにしてデータ受信処理を実行することにより、受信装置13は、高速であり、かつ、復元性能の高い復元処理を、製造コストを増大せずに実現し、より容易に、かつ、より正確にデータを受信することができる。   By executing the data reception process as described above, the reception device 13 can realize a high-speed restoration process with a high restoration performance without increasing the manufacturing cost. Data can be received accurately.

次に、図20のステップS85において各ブロックの元データに対して実行される元データ復元処理の詳細を、図21のフローチャートを参照して説明する。   Next, details of the original data restoration processing executed for the original data of each block in step S85 in FIG. 20 will be described with reference to the flowchart in FIG.

パケットデータ復元部135の復元制御部151は、ステップS101において、復元処理を行うブロックを指定するブロック番号iの値を初期化し、例えば、「0」に設定する。そして、復元制御部151は、設定されたブロック番号iのアプリケーションデータ群を、バッファ部134に対して要求し、それらを取得する。ブロック番号iのアプリケーションデータ群を取得すると、復元制御部151は、それらのアプリケーションデータより係数情報や先頭情報等を含むヘッダを抽出して係数行列作成部152に供給する。また、それとともに、復元制御部151は、取得したアプリケーションデータを行列式作成部153の要求に基づいて、行列式作成部153に供給する。   In step S101, the restoration control unit 151 of the packet data restoration unit 135 initializes the value of the block number i designating the block to be restored, and sets it to “0”, for example. Then, the restoration control unit 151 requests the application data group of the set block number i from the buffer unit 134 and acquires them. When the application data group of block number i is acquired, the restoration control unit 151 extracts a header including coefficient information, head information, and the like from these application data and supplies the header to the coefficient matrix creation unit 152. At the same time, the restoration control unit 151 supplies the acquired application data to the determinant creating unit 153 based on a request from the determinant creating unit 153.

係数情報や先頭情報等を供給された係数行列作成部152は、ステップS102においてブロック番号i用の係数行列を作成し、それを行列式作成部153に供給する。行列式作成部153は、ステップS103において、供給されたアプリケーションデータおよび係数行列を用いて、行列式を作成し、それを行列式保持部154に供給して保持させる。また、行列式作成部154は、アプリケーションデータのヘッダに含まれる先頭情報を行列式整列部155に供給する。行列式整列部155は、ステップS104において、有効係数の存在可能範囲に基づいて、行列式保持部154に保持されている行列式を、各項において各行を入れ替え、行番号を変更することにより行列式を整列させる。   The coefficient matrix creation unit 152 supplied with the coefficient information, the head information, etc. creates a coefficient matrix for the block number i in step S102 and supplies it to the determinant creation unit 153. In step S103, the determinant creating unit 153 creates a determinant using the supplied application data and coefficient matrix, and supplies the determinant to the determinant holding unit 154 to hold it. Further, the determinant creation unit 154 supplies the head information included in the header of the application data to the determinant alignment unit 155. In step S104, the determinant sorting unit 155 replaces the determinant held in the determinant holding unit 154 with each row in each term and changes the row number based on the possible range of effective coefficients. Align expressions.

行列式を整列させると、行列式整列部155は、その情報をタイル処理部156に供給する。タイル処理部156は、ステップS105において、行列式保持部156に保持されている行列式を取得し、その行列式の係数行列に対してタイルを設定し、有効係数の存在可能範囲に基づいて、各タイルの演算の有無を設定する。タイルの設定を行うとタイル処理部156は、ステップS106において、処理の対象となるタイルを選択するための変数であるタイル番号kの値を初期化して「0」に設定する。   When the determinants are aligned, the determinant aligning unit 155 supplies the information to the tile processing unit 156. In step S105, the tile processing unit 156 acquires the determinant held in the determinant holding unit 156, sets a tile for the coefficient matrix of the determinant, and based on the possible range of effective coefficients, Set whether to calculate each tile. When the tile is set, the tile processing unit 156 initializes and sets the value of the tile number k, which is a variable for selecting the tile to be processed, to “0” in step S106.

そしてタイル処理部156は、ステップS107において、タイル番号kのタイルに対して、タイルの演算の有無の設定に基づいて、そのタイルの演算を行うか否かを判定する。タイルの演算を行うと判定した場合、タイル処理部156は、処理をステップS108に進め、全体行列式よりタイル番号kに対応する部分行列式を抽出して、それを行列式演算部157に供給する。行列式演算部157は、供給された部分行列式をガウスの消去法等を用いて演算し、部分行列式を構成する各方程式の解を求める。行列式演算部157は、その求めた解を解出力部158に供給する。解出力部158は、ステップS109において、取得した部分行列式の解を元データとして出力し、処理をステップS110に進める。   Then, in step S107, the tile processing unit 156 determines whether or not to calculate the tile based on the setting of whether or not to calculate the tile for the tile with the tile number k. If it is determined that the tile operation is to be performed, the tile processing unit 156 proceeds with the process to step S108, extracts a partial determinant corresponding to the tile number k from the overall determinant, and supplies it to the determinant operation unit 157. To do. The determinant computing unit 157 computes the supplied partial determinant using a Gaussian elimination method or the like, and obtains a solution of each equation constituting the partial determinant. The determinant computing unit 157 supplies the obtained solution to the solution output unit 158. In step S109, the solution output unit 158 outputs the acquired partial determinant solution as original data, and the process proceeds to step S110.

また、ステップS107において、処理対象のタイルに対応する部分行列式の演算を行わないと判定した場合、タイル処理部156は、処理をステップS108およびステップS109の処理を省略し、ステップS110に処理を進める。   If it is determined in step S107 that the partial determinant operation corresponding to the tile to be processed is not performed, the tile processing unit 156 omits the processes in steps S108 and S109 and performs the process in step S110. Proceed.

ステップS110において、タイル処理部156は、タイル番号kの値に「1」を加算し、ステップS111に処理を進める。ステップS111において、タイル処理部156は、タイル番号kの値に基づいて、全タイルについて処理が終了したか否かを判定し、未処理のタイルが存在し、未だ全タイルについて処理が終了していないと判定した場合、処理をステップS107に戻し、そのブロックの、それ以降の処理を繰り返す。   In step S110, the tile processing unit 156 adds “1” to the value of the tile number k, and proceeds to step S111. In step S111, the tile processing unit 156 determines whether or not processing has been completed for all tiles based on the value of the tile number k, and there are unprocessed tiles, and processing has been completed for all tiles. If it is determined that there is not, the process returns to step S107, and the subsequent processes of the block are repeated.

また、ステップS111において、全タイルについて処理が終了したと判定した場合、タイル処理部156は、その情報を復元制御部151に供給し、ステップS112に処理を進める。ステップS112において、ブロック番号iの値に「1」を加算し、処理をステップS113に進める。ステップS113において全ブロックについて処理が終了していないと判定した場合、復元制御部151は、処理をステップS102に戻し、それ以降の処理を繰り返す。また、ステップS113において、全ブロックについて変換処理を行ったと判定した場合、復元制御部151は、元データ復元処理を終了し、図20のS85に処理を戻す。   If it is determined in step S111 that the processing has been completed for all tiles, the tile processing unit 156 supplies the information to the restoration control unit 151, and the process proceeds to step S112. In step S112, “1” is added to the value of block number i, and the process proceeds to step S113. If it is determined in step S113 that the processing has not been completed for all blocks, the restoration control unit 151 returns the processing to step S102 and repeats the subsequent processing. If it is determined in step S113 that the conversion process has been performed for all blocks, the restoration control unit 151 ends the original data restoration process and returns the process to S85 in FIG.

以上のように復元処理を行うことにより、パケットデータ復元部135は、高速であり、かつ、復元性能の高い復元処理を、製造コストを増大せずに実現することができる。従って、受信装置13は、より容易、かつ、より正確にデータを受信することができる。   By performing the restoration process as described above, the packet data restoration unit 135 can realize a restoration process with high speed and high restoration performance without increasing the manufacturing cost. Therefore, the receiving device 13 can receive data more easily and more accurately.

次に、図22および図23のフローチャートを参照して、図21のステップS108において実行される求解処理の詳細を説明する。   Next, details of the solution processing executed in step S108 of FIG. 21 will be described with reference to the flowcharts of FIGS.

元データを復元するための行列式を供給された行列式演算部157は、ステップS131において、行列式に含まれる係数行列を参照し、全ての列に値が「1」の成分が存在するか否かを判定する。係数行列の全列に、値が「1」の成分が少なくとも1つ存在しないと、その列に対応する、ロスした元データを算出することができないので、行列式演算部157は、ステップS131においてこの判定処理を行う。   In step S131, the determinant operation unit 157 supplied with the determinant for restoring the original data refers to the coefficient matrix included in the determinant, and whether or not there is a component having a value of “1” in all the columns. Determine whether or not. If at least one component having a value “1” does not exist in all the columns of the coefficient matrix, the lost original data corresponding to that column cannot be calculated. This determination process is performed.

ステップS131において、全ての列に値が「1」の成分が少なくとも1つ存在すると判定した場合、行列式演算部157は、処理をステップS132に進め、変数iの値を「1」に設定し、ガウスの消去法の、前進消去を開始する。前進消去は、行列式の係数行列において、値が「1」の成分の数を減らすように、係数行列の行間でEOR演算を行い、行列式を変形していく処理である。この前進消去の処理の具体的な例については、後述する。   If it is determined in step S131 that at least one component having a value “1” exists in all the columns, the determinant computing unit 157 advances the process to step S132 and sets the value of the variable i to “1”. Start the forward erasure of the Gaussian elimination method. Forward erasure is a process of transforming a determinant by performing an EOR operation between rows of a coefficient matrix so as to reduce the number of components having a value of “1” in the determinant coefficient matrix. A specific example of the forward erasure process will be described later.

前進消去処理を開始した行列式演算部157は、ステップS133に処理を進め、第i列の成分の値が「1」の行を、対象行の第1行目から順に検出する。対象行とは、係数行列において、前進消去処理の対象となる行のことである。後述するように、前進消去処理が進むごとに、この対象行が変化する。なお、初期状態において、対象行は全行である。   The determinant computing unit 157 that has started the forward erasure process advances the process to step S133, and sequentially detects rows in which the component value of the i-th column is “1” from the first row of the target row. The target row is a row that is a target of forward erasure processing in the coefficient matrix. As will be described later, this target row changes each time the forward erasure process proceeds. In the initial state, the target rows are all rows.

ステップS134において、行列式演算部157は、ステップS133の処理により、行が複数検出されたか否かを判定し、複数検出されたと判定した場合、ステップS135において、最初に検出された行と、2番目以降に検出された行とで各成分についてEOR演算を行う。このとき、行列式の他の項も、この係数行列のEOR演算に対応するようにEOR演算を行う。   In step S134, the determinant calculation unit 157 determines whether or not a plurality of rows are detected by the process of step S133. If it is determined that a plurality of rows are detected, the first detected row in step S135 and 2 The EOR operation is performed on each component with the rows detected after the th. At this time, the EOR operation is performed so that the other terms of the determinant correspond to the EOR operation of the coefficient matrix.

行同士のEOR演算を行った行列式演算部157は、ステップS136に処理を進める。また、ステップS134において、第i列の成分の値が「1」である行を、1行しか検出できなかったと判定した場合(各列には、値が「1」の成分が少なくとも1つ存在するので、1行は検出される)、ステップS135の処理を省略し、ステップS136に処理を進める。   The determinant computing unit 157 that performed the EOR computation between the rows advances the process to step S136. Further, when it is determined in step S134 that only one row has been detected for the row whose component value in the i-th column is “1” (at least one component having a value “1” exists in each column). Therefore, one line is detected), the process of step S135 is omitted, and the process proceeds to step S136.

ステップS136において、行列式演算部157は、検出された(EOR演算により残された)、第i列の成分の値が「1」の行を、求解用に保持し、対象行から除外する。そして、行列式演算部157は、ステップS137に処理を進め、変数iの値に「1」を加算し、ステップS138において、変数iの値がKより大きいか否かを判定する。変数iの値がK以下である(すなわち、未処理の列が存在する)と判定した場合、行列式演算部157は、処理をステップS133に戻し、次の列に対して、それ以降の処理を繰り返す。   In step S <b> 136, the determinant calculating unit 157 holds the detected row (remaining by the EOR calculation) whose component value in the i-th column is “1” for solution and excludes it from the target row. Then, the determinant operation unit 157 advances the process to step S137, adds “1” to the value of the variable i, and determines whether the value of the variable i is greater than K in step S138. When it is determined that the value of the variable i is equal to or less than K (that is, there is an unprocessed column), the determinant arithmetic unit 157 returns the process to step S133 and performs subsequent processing for the next column. repeat.

以上の処理を繰り返すことにより、行列式演算部157は、前進消去の処理を進め、全ての列に対して処理を行い、係数行列の値が「1」の成分の数を減らすようにする。   By repeating the above processing, the determinant computing unit 157 advances the forward erasure processing, performs the processing on all the columns, and reduces the number of components whose coefficient matrix value is “1”.

そして、ステップS138において、変数iの値がKより大きいと判定した場合、行列式演算部157は、処理を図23のステップS141に進める。   If it is determined in step S138 that the value of the variable i is greater than K, the determinant calculation unit 157 advances the processing to step S141 in FIG.

図23のステップS141において、行列式演算部しは、変数iの値をKに設定し、保持した行を用いて、後退代入を開始する。後退代入は、以上の前進消去により、値が「1」の成分が減らされた係数行列によって、元データの解を求め、求めた解を順次他の行の方程式に代入していく処理である。この後退代入の処理の具体的な例については、後述する。   In step S141 in FIG. 23, the determinant computing unit sets the value of the variable i to K, and starts backward substitution using the retained row. Backward substitution is a process in which a solution of the original data is obtained by a coefficient matrix in which a component having a value of “1” is reduced by the above-described forward elimination, and the obtained solution is sequentially substituted into the equation of another row. . A specific example of the backward substitution process will be described later.

後退代入を開始した行列式演算部157は、ステップS142において、前進消去によりi番目に保持した行の方程式を解く。なお、後述するように、行列式演算部157は、それ以前に求められた解を方程式の変数(元データ)に代入して方程式を解く。   In step S142, the determinant computing unit 157 that has started backward substitution solves the equation of the i-th retained row by forward erasure. As will be described later, the determinant operation unit 157 solves the equation by substituting the previously obtained solution into the variable (original data) of the equation.

ステップS142の処理を終了した、行列式演算部157は、ステップS143に処理を進め、変数iの値を「1」減算し、ステップS144において、全ての解(元データ)を求めたか否かを判定する。未知の変数(元データ)が存在し、全ての解を求めていないと判定した場合、行列式演算部157は、ステップS141に処理を戻し、全ての解が求まるまで、それ以降の処理を繰り返す。   The determinant computing unit 157 that has finished the process of step S142 proceeds to the process of step S143, subtracts “1” from the value of the variable i, and determines whether or not all solutions (original data) have been obtained in step S144. judge. When it is determined that there are unknown variables (original data) and not all solutions are obtained, the determinant computing unit 157 returns the processing to step S141 and repeats the subsequent processing until all the solutions are obtained. .

ステップS144において、全ての解を求めたと判定した場合、行列式演算部157は、求解処理を終了する。   If it is determined in step S144 that all the solutions have been obtained, the determinant computing unit 157 ends the solution finding process.

また、図22のステップS131において、全ての列に値が「1」の成分が存在しないと判定した場合、上述したように、全ての解を求めることができないので、行列式演算部157は、図23のステップS145に処理を進め、エラー処理を行い、ロスしたパケットを復元できない旨のメッセージを出力する等して、求解処理を終了する。   If it is determined in step S131 in FIG. 22 that there is no component having a value of “1” in all columns, as described above, since all solutions cannot be obtained, the determinant computing unit 157 The processing proceeds to step S145 in FIG. 23, error processing is performed, a message indicating that the lost packet cannot be recovered is output, and the solution processing ends.

以上のように行列式演算部157が、ガウスの消去法を用いて行列式を解くことにより、パケットデータ復元部135は、容易にロスした元データを復元することができる。これにより、受信装置11は、高速な復元処理を、製造コストを増大せずに実現し、より容易、かつより正確にデータを受信することができる。   As described above, the determinant operation unit 157 solves the determinant using the Gaussian elimination method, so that the packet data restoration unit 135 can easily restore the lost original data. Thereby, the receiving device 11 can realize high-speed restoration processing without increasing the manufacturing cost, and can receive data more easily and more accurately.

次に、図24乃至図27を参照して、上述したガウスの消去法の具体的な例について説明する。なお、ここでは、説明の簡略化のため、5個のEOR変換データX1乃至X5を用いて、4個の元データD1乃至D4を求める場合について説明する。このとき、行列式の係数行列を、図24に示されるような成分の5行×4列の行列とし、行列式作成部153が図24に示されるような行列式を作成したとする。   Next, a specific example of the Gaussian elimination method described above will be described with reference to FIGS. Here, for simplification of description, a case will be described in which four original data D1 to D4 are obtained using five EOR conversion data X1 to X5. At this time, it is assumed that the determinant coefficient matrix is a 5 × 4 matrix of components as shown in FIG. 24 and the determinant creation unit 153 creates the determinant as shown in FIG.

図24に示される行列式を取得すると、行列式演算部157は、最初に、図22のステップS131の処理を実行し、係数行列(図24において左辺第1項)の各列に値が「1」の成分が存在するか否かを判定する。図24の係数行列においては、全ての列に、値が「1」の成分が存在するので、元データD1乃至D4を求めることができる。   When the determinant shown in FIG. 24 is acquired, the determinant computing unit 157 first executes the process of step S131 in FIG. 22, and the value “in the first column of the left side in FIG. It is determined whether or not the component “1” exists. In the coefficient matrix of FIG. 24, since all the columns have components having a value of “1”, the original data D1 to D4 can be obtained.

次に、行列式演算部157は、前進消去を開始し、1回目の処理として、1列目(i=1)を処理の対象とする。そして、行列式演算部157は、全ての行を対象行として、1列目に注目し、値が「1」の成分が存在する行を対象行の1行目から順次検出する。図24の場合、点線枠171で示される1列目の成分の値が「1」である行が検出され、点線枠181乃至183で示される1行目、3行目、および5行目がその順番で検出される。   Next, the determinant computing unit 157 starts forward erasure and sets the first column (i = 1) as the processing target as the first processing. Then, the determinant computing unit 157 pays attention to the first column with all the rows as the target rows, and sequentially detects the rows in which the component having the value “1” exists from the first row of the target rows. In the case of FIG. 24, the row in which the component value in the first column indicated by the dotted line frame 171 is “1” is detected, and the first, third, and fifth rows indicated by the dotted line frames 181 to 183 are detected. They are detected in that order.

1列目の成分の値が「1」である行を検出した行列式演算部157は、次に、1番目に検出した行と、2番目以降に検出した行の各成分同士をEOR演算する。図24の場合、行列式演算部157は、点線枠181で示される1行目と、点線枠182で示される3行目とを成分ごとにEOR演算する。同様に、行列式演算部157は、点線枠181で示される1行目と、点線枠183で示される5行目とを成分ごとにEOR演算する。このEOR演算により、係数行列の各成分の値は、図24に示される係数行列(左辺第1項)のようになる。   The determinant computing unit 157 that detects the row in which the value of the component in the first column is “1” then performs an EOR operation between the components in the first detected row and the second and subsequent detected rows. . In the case of FIG. 24, the determinant computing unit 157 performs EOR computation on the first row indicated by the dotted line frame 181 and the third row indicated by the dotted line frame 182 for each component. Similarly, the determinant computing unit 157 performs EOR computation on the first row indicated by the dotted line frame 181 and the fifth row indicated by the dotted line frame 183 for each component. By this EOR operation, the value of each component of the coefficient matrix becomes as shown in the coefficient matrix (first term on the left side) shown in FIG.

また、このとき、行列式演算部157は、行列式が成立するように、右辺の行列においても係数行列に対応するようにEOR演算を行う。図24の場合、行列式演算部157は、右辺のEOR変換データの行列に対して、点線枠191で示される1行目(X1)と、点線枠192で示される3行目(X3)とをEOR演算し、さらに、点線枠191で示される1行目(X1)と、点線枠193で示される5行目(X5)とをEOR演算する。このEOR演算により、EOR変換データの行列の各成分の値は、図25に示されるEOR変換データの行列(右辺)のようになる。   At this time, the determinant operation unit 157 performs EOR operation so that the matrix on the right side also corresponds to the coefficient matrix so that the determinant is established. In the case of FIG. 24, the determinant operation unit 157 performs the first row (X1) indicated by the dotted frame 191 and the third row (X3) indicated by the dotted frame 192 on the right-side EOR conversion data matrix. Is further EOR-calculated, and the first row (X1) indicated by the dotted frame 191 and the fifth row (X5) indicated by the dotted frame 193 are EOR-calculated. By this EOR operation, the value of each component of the matrix of EOR conversion data becomes like the matrix (right side) of the EOR conversion data shown in FIG.

以上のようにして、対象行における第1列目の成分の値が「1」である行を第1行目のみにすると、行列式演算部157は、次に、2回目の処理に移行し、係数行列の第2列目を処理の対象とし(i=2)、第1行目は保持し、第2行目乃至第5行目を対象行とする。そして、行列式演算部157は、1回目の場合と同様に、係数行列の第2列目について、値が「1」の成分が存在する行を対象行の1行目(図25の場合、係数行列の第2行目)から順次検出する。図25の場合、点線枠201で示される第2列目の成分の値が「1」である行が検出され、点線枠211および112で示される、係数行列の第2行目および第5行目がその順番で検出される。   As described above, when the row in which the value of the first column component in the target row is “1” is set to only the first row, the determinant computing unit 157 proceeds to the second process. The second column of the coefficient matrix is the processing target (i = 2), the first row is retained, and the second to fifth rows are the target rows. Then, in the same manner as in the first time, the determinant calculation unit 157 sets the row in which the component having the value “1” exists for the second column of the coefficient matrix to the first row of the target row (in the case of FIG. 25, Detection is performed sequentially from the second row of the coefficient matrix. In the case of FIG. 25, the row in which the value of the component in the second column indicated by the dotted frame 201 is “1” is detected, and the second and fifth rows of the coefficient matrix indicated by the dotted frames 211 and 112 are detected. Eyes are detected in that order.

第2列目の成分の値が「1」である行を検出した行列式演算部157は、1回目の場合と同様に、1番目に検出した行と、2番目以降に検出した行の各成分同士をEOR演算する。図25の場合、行列式演算部157は、点線枠211で示される第1行目と、点線枠212で示される第5行目とを成分ごとにEOR演算する。このEOR演算により、係数行列の各成分の値は、図26に示される係数行列(左辺第1項)のようになる。   The determinant computing unit 157 that detects the row in which the value of the component in the second column is “1” is the same as in the first time, and each of the first detected row and the second and subsequent rows is detected. EOR the components. In the case of FIG. 25, the determinant computing unit 157 performs EOR computation on the first row indicated by the dotted frame 211 and the fifth row indicated by the dotted frame 212 for each component. By this EOR operation, the value of each component of the coefficient matrix becomes as shown in the coefficient matrix (first term on the left side) shown in FIG.

また、このとき、行列式演算部157は、1回目の場合と同様に、行列式が成立するように、右辺の行列においても係数行列に対応するようにEOR演算を行う。図25の場合、行列式演算部157は、右辺のEOR変換データの行列に対して、点線枠221で示される第2行目(X2)と、点線枠222で示される第5行目(X5+X1)とをEOR演算する。このEOR演算により、EOR変換データの行列の各成分の値は、図26に示されるEOR演算データの行列(右辺)のようになる。   At this time, the determinant operation unit 157 performs the EOR operation so that the matrix on the right side also corresponds to the coefficient matrix so that the determinant is established, as in the first case. In the case of FIG. 25, the determinant operation unit 157 performs the second row (X2) indicated by the dotted frame 221 and the fifth row (X5 + X1) indicated by the dotted frame 222 on the right-side EOR conversion data matrix. ) And EOR. By this EOR operation, the value of each component of the matrix of EOR conversion data becomes like the matrix (right side) of the EOR operation data shown in FIG.

以上のようにして、対象行における第2列目の成分の値が「1」である行を第2行目のみにすると、行列式演算部157は、次に、3回目の処理に移行し、係数行列の第3列目を処理の対象とし(i=3)、第2行目をさらに保持し、第3行目乃至第5行目を対象行とする。そして、行列式演算部157は、1回目の場合と同様に、係数行列の第3列目について、値が「1」の成分が存在する行を対象行の1行目(図26の場合、係数行列の第3行目)から順次検出する。図26の場合、点線枠231で示される第3列目の成分の値が「1」である行が検出され、点線枠241で示される、係数行列の第4行目のみが検出される。   As described above, when the value of the component in the second column in the target row is set to only the second row, the determinant calculating unit 157 proceeds to the third process. The third column of the coefficient matrix is the processing target (i = 3), the second row is further retained, and the third to fifth rows are the target rows. Then, in the same manner as in the first time, the determinant calculation unit 157 sets the row in which the component having the value “1” exists for the third column of the coefficient matrix to the first row of the target row (in the case of FIG. 26, Detection is performed sequentially from the third row of the coefficient matrix. In the case of FIG. 26, the row in which the value of the component in the third column indicated by the dotted line frame 231 is “1” is detected, and only the fourth row of the coefficient matrix indicated by the dotted line frame 241 is detected.

従って、この場合、行列式演算部157は、EOR演算を省略する。また、このとき、行列式演算部157は、EOR演算を省略したので、右辺の行列においてもEOR演算を省略する。図26の場合、右辺のEOR変換データの行列において、点線枠251で示される第4行目(X4)が係数行列の第4行目に対応するが、EOR演算は省略される。従って、この3回目の処理により行列式の各項の行列の各成分の値は、図26に示されるように変化せず、図25の場合と同様になる。   Therefore, in this case, the determinant operation unit 157 omits the EOR operation. At this time, since the determinant computing unit 157 omits the EOR operation, the EOR operation is also omitted from the right-side matrix. In the case of FIG. 26, in the matrix of EOR conversion data on the right side, the fourth row (X4) indicated by the dotted frame 251 corresponds to the fourth row of the coefficient matrix, but the EOR operation is omitted. Therefore, the value of each component of the matrix of each term of the determinant does not change as shown in FIG. 26 by this third processing, and is the same as in FIG.

行列式演算部157は、次に、4回目の処理に移行し、係数行列の第4列目を処理の対象とし(i=4)、前回検出した第4行目をさらに保持し、第3行目および第5行目を対象行とする。そして、行列式演算部157は、1回目の場合と同様に、係数行列の第4列目について、値が「1」の成分が存在する行を対象行の1行目(図27の場合、係数行列の第3行目)から順次検出する。図27の場合、点線枠261で示される第4列目の成分の値が「1」である行が検出され、点線枠271で示される、係数行列の第3行目のみが検出される(第5行目第4列目の成分の値は「0」である)。   Next, the determinant operation unit 157 proceeds to the fourth process, sets the fourth column of the coefficient matrix as a processing target (i = 4), further holds the fourth row detected last time, The target line is the fifth and fifth lines. Then, in the same manner as in the first time, the determinant calculation unit 157 sets the row in which the component having the value “1” exists for the fourth column of the coefficient matrix to the first row of the target row (in the case of FIG. 27, Detection is performed sequentially from the third row of the coefficient matrix. In the case of FIG. 27, the row in which the value of the component in the fourth column indicated by the dotted line frame 261 is “1” is detected, and only the third row of the coefficient matrix indicated by the dotted line frame 271 is detected ( The value of the component in the fifth row and the fourth column is “0”).

従って、この場合も、3回目の処理と同様に、行列式演算部157は、EOR演算を省略する。また、このとき、行列式演算部157は、EOR演算を省略したので、右辺の行列においてもEOR演算を省略する。図27の場合、右辺の演算用冗長データの行列において、点線枠281で示される第3行目(X3+X1)が係数行列の第3行目に対応するが、EOR演算は省略される。従って、この4回目の処理によっても行列式の各項の値は変化しない。行列式演算部157は、この4回目の処理において検出された第3行目をさらに保持する。   Accordingly, in this case as well, the determinant operation unit 157 omits the EOR operation as in the third process. At this time, since the determinant computing unit 157 omits the EOR operation, the EOR operation is also omitted from the right-side matrix. In the case of FIG. 27, in the matrix of redundant data for calculation on the right side, the third row (X3 + X1) indicated by the dotted frame 281 corresponds to the third row of the coefficient matrix, but the EOR calculation is omitted. Therefore, the value of each term of the determinant does not change even by the fourth processing. The determinant computing unit 157 further holds the third row detected in the fourth process.

以上のように、全列に対して前進消去を行うと行列式演算部157は、前進消去を終了し、次に後退代入を開始する。前進消去により、最後に保持した行には、値が「1」の成分が最後の列の1つしか存在しない。その他の列の成分の値は、それまでのEOR演算により「0」に変換されている。同様に、最後から2番目に保持した行の、値が「1」の成分は2個以下であり、その前に保持した行は3個以下である。このように、最後からY番目に保持した行には、値が「1」の成分がY個以下となる。   As described above, when forward erasure is performed on all the columns, the determinant computing unit 157 ends forward erasure and then starts backward substitution. Due to the forward erasure, only the component having the value “1” in the last held row has one in the last column. The values of the components in the other columns are converted to “0” by the EOR operation so far. Similarly, the number of components having a value of “1” in the second row held from the last is two or less, and the number of rows held before that is three or less. As described above, the number of components having a value of “1” is Y or less in the Y-th row held from the end.

従って、行列式演算部157は、後退代入により、最後に保持した行から解を1つ求め、保持した順番と逆順にその解を代入していき、全ての解を求める。   Therefore, the determinant operation unit 157 obtains one solution from the last retained row by backward substitution, substitutes the solution in the reverse order of the retained order, and obtains all solutions.

このように、ガウスの消去法を用いることにより、行列式演算部157は、EOR演算等の単純な演算により行列式を解くことができるので、ロスパケット復元部228は、ロスした元データを容易にかつ高速に復元することができる。   In this way, by using the Gaussian elimination method, the determinant operation unit 157 can solve the determinant by a simple operation such as an EOR operation, so the lost packet restoration unit 228 can easily recover the lost original data. And can be restored at high speed.

図28は、パケットロスの発生とコンテンツの受信時間との関係の例を示す図である。   FIG. 28 is a diagram illustrating an example of a relationship between occurrence of packet loss and content reception time.

図28Aには、図1において説明したかルーセル方式の場合の、パケットロスと受信時間の関係の例が示されている。例えば、上述したように、カルーセル方式の送信の場合、コンテンツは、コンテンツ291、コンテンツ292、コンテンツ293のように、1つのデータがそのまま繰り返し送信されているので、例えば、1回目に配信されるコンテンツ291の各パケットを受信中に、パケットロス発生期間291Aで示される期間のパケットをロスしたとすると、受信装置は、2回目の配信であるコンテンツ292における、パケットロス発生期間291Aに対応する期間292Aを受信するまで待機しなければならない。すなわち、この場合、受信装置による受信時間が、パケットロスにより、コンテンツ291の1周期分増大してしまう。   FIG. 28A shows an example of the relationship between the packet loss and the reception time in the case of the Rucell method described in FIG. For example, as described above, in the case of carousel transmission, since content is repeatedly transmitted as it is, such as content 291, content 292, and content 293, for example, content distributed for the first time Assuming that a packet in the period indicated by the packet loss occurrence period 291A is lost during reception of each of the packets 291, the receiving apparatus has a period 292A corresponding to the packet loss occurrence period 291A in the content 292 that is the second delivery. You have to wait until you receive That is, in this case, the reception time by the receiving device increases by one period of the content 291 due to packet loss.

これに対して、上述したように、送信装置11が、コンテンツをEOR変換データ301に変換してから繰り返し送信することにより、受信装置13は、図28Bに示されるように、EOR変換データ301においてパケットロス発生期間301Aが発生しても、ロスしたパケット数と同じ数の任意のパケットを受信すれば元データ(コンテンツ)を復元することができる。従って、図2の通信システム10の受信装置13は、パケットロスが発生した場合における受信時間の増大を、カルーセル方式の場合と比較して抑制することができる。   On the other hand, as described above, the transmission device 11 converts the content into the EOR conversion data 301 and then repeatedly transmits the content, so that the reception device 13 in the EOR conversion data 301 as illustrated in FIG. Even if the packet loss occurrence period 301A occurs, the original data (contents) can be restored by receiving the same number of packets as the number of lost packets. Therefore, the reception device 13 of the communication system 10 in FIG. 2 can suppress an increase in reception time when packet loss occurs compared to the case of the carousel method.

また、図29は、各条件における復元処理の負荷について説明する図である。   FIG. 29 is a diagram for explaining the load of restoration processing under each condition.

図29Aにおいて、表311は、上述したように、係数行列における有効係数の存在可能領域を設けるようにした場合の、受信装置13による復元処理の処理時間と復元処理の負荷の大きさを示している。なお、ここでは、復元処理の負荷の大きさを示すために、復元処理をCPUで行うものとし、その復元処理によるCPUの占有率を示している。また、表311においては、ブロックサイズが1000パケット、2000パケット、および4000パケットの場合を示している。ただし、パケットサイズは1KB(キロバイト)とし、有効係数の存在可能領域における有効係数の生成確率を1/4とする。また、各条件における有効係数の存在可能領域のバンド幅は400列(400パケット)とする。   In FIG. 29A, as described above, table 311 shows the processing time of restoration processing by the receiving device 13 and the magnitude of the restoration processing load when an effective coefficient existable region in the coefficient matrix is provided. Yes. Here, in order to indicate the load of the restoration process, the restoration process is performed by the CPU, and the CPU occupation rate by the restoration process is shown. Table 311 shows the case where the block size is 1000 packets, 2000 packets, and 4000 packets. However, the packet size is 1 KB (kilobytes), and the generation probability of the effective coefficient in the area where the effective coefficient can exist is 1/4. In addition, the bandwidth of the effective coefficient existing area under each condition is 400 columns (400 packets).

図29Bにおいて、表312は、図29Aの表311に対応する表であり、送信装置11が有効係数の存在可能領域を設けない場合の、受信装置13による復元処理の処理時間と復元処理の負荷の大きさを示している。なお、ここでは、ブロックサイズが500パケット、1000パケット、および2000パケットの場合を示している。その他の各種条件は、表311と同様である。   In FIG. 29B, a table 312 is a table corresponding to the table 311 in FIG. 29A, and the processing time of the restoration processing by the receiving device 13 and the load of the restoration processing when the transmitting device 11 does not provide an effective coefficient existence area. The size of is shown. Here, a case where the block size is 500 packets, 1000 packets, and 2000 packets is shown. Other various conditions are the same as in Table 311.

図29Aの表311と図29Bの表312を比較して明らかなように、ブロックサイズが同じである場合、有効係数の存在可能領域を設定するときのほうが、設定しないときよりも、処理時間が1/10程度以上短く、CPU占有率も1/10以下である。すなわち、係数行列において有効係数の存在可能領域を設定する場合のほうが、設定しない場合よりも、復元処理の負荷を軽減させることができる。   As is apparent from a comparison between Table 311 in FIG. 29A and Table 312 in FIG. 29B, when the block size is the same, the processing time is longer when the effective coefficient existence area is set than when it is not set. It is about 1/10 or shorter and the CPU occupation rate is 1/10 or less. That is, it is possible to reduce the load of the restoration processing when the effective coefficient existence region is set in the coefficient matrix than when the effective matrix is not set.

なお、以上においては、受信装置13のパケットデータ復元部135において、図13を用いて説明したように、行列式作成部153により生成された行列式を行列式保持部154が保持し、その行列式を行列式整列部155が行を並べ替えて整列し、その行が整列された行列式に対してタイル処理部156が処理を行うように説明したが、タイル処理部が、行列式を行が整列された状態で処理することができればよく、実際に整列されていない行列式を処理するようにしてももよい。   In the above description, the determinant holding unit 154 holds the determinant generated by the determinant creating unit 153 in the packet data restoring unit 135 of the receiving device 13 as described with reference to FIG. Although the determinant aligning unit 155 rearranges the rows and arranges the equations, and the tile processing unit 156 performs the processing on the determinant in which the rows are aligned, the tile processing unit performs the determinant processing. Can be processed in a state of being aligned, and determinants that are not actually aligned may be processed.

例えば、図30に示されるように、タイル処理部321が図13に説明した行列式整列部155と同様の行列式生成部322を内蔵しており、行列式作成部153が供給するアプリケーションデータに含まれる先頭情報を取得するようにしてもよい。このとき、例えば、タイル処理部321は、行列式保持部154より取得した、行が整列されていない行列式に対して、行列式整列部322により、先頭情報に基づいて行列式の行を整列させた情報(整列情報)を生成し、その整列情報に基づいて処理を行うようにしてもよいし、行列式保持部154より行列式を行毎に取得するようにし、行列式整列部322により生成された整列情報に基づいて、その取得する順番を制御するようにしてもよい。   For example, as illustrated in FIG. 30, the tile processing unit 321 includes a determinant generation unit 322 similar to the determinant alignment unit 155 described in FIG. 13, and application data supplied by the determinant generation unit 153 is included. You may make it acquire the head information contained. At this time, for example, the tile processing unit 321 aligns the rows of the determinant based on the head information by the determinant aligning unit 322 with respect to the determinant whose rows are not aligned obtained from the determinant holding unit 154. The generated information (alignment information) may be generated and processing may be performed based on the alignment information, or the determinant may be acquired for each row from the determinant holding unit 154, and the determinant alignment unit 322 may The order of acquisition may be controlled based on the generated alignment information.

以上のように、図2に示される通信システム10においては、送信装置11が、送信用データを分割して生成した複数の元データを、EOR演算を用いてブロック毎に合成して変換し、各ブロックに対して複数の(元データの数より多くの)変換データを生成し、それらを受信装置13に送信する。受信装置13は、そのように送信された複数の変換データを、ブロック毎に、少なくとも元データの数以上受信し、受信した元データの数以上の変換データを用いて、元データを復元する。このようにすることにより、送信装置11および受信装置13は、より容易、かつ、より正確にデータを送受信することができる。   As described above, in the communication system 10 illustrated in FIG. 2, the transmission device 11 synthesizes and converts a plurality of original data generated by dividing transmission data into blocks using an EOR operation, A plurality of converted data (more than the number of original data) is generated for each block, and these are transmitted to the receiving device 13. The receiving device 13 receives the plurality of pieces of converted data transmitted in this way for each block at least as many as the number of original data, and restores the original data using the converted data that is equal to or greater than the number of received original data. By doing in this way, the transmitter 11 and the receiver 13 can transmit and receive data more easily and more accurately.

なお、このような変換データを元データの冗長データとし(各変換データが元データの内容を含んでいるため)、送信装置11がその冗長データ元データとともに送信し、受信装置13がそれらを受信して、元データをロスした場合のみ、受信した冗長データを用いて、そのロスした元データを復元するようにしてもよい。この方法の場合、受信装置13がロスした元データのみを復元することができれば良いので、送信装置11は、送信する冗長データ(変換データ)の数を削減することができるとともに、受信装置13は、元データをロスしていない場合、元データの復元処理を省略することもできる。   Note that such converted data is made redundant data of the original data (since each converted data includes the contents of the original data), the transmitting device 11 transmits it together with the redundant data original data, and the receiving device 13 receives them. Only when the original data is lost, the lost original data may be restored using the received redundant data. In the case of this method, it is only necessary that the original data lost by the receiving device 13 can be restored. Therefore, the transmitting device 11 can reduce the number of redundant data (converted data) to be transmitted, and the receiving device 13 If the original data is not lost, the restoration process of the original data can be omitted.

しかしながら、実際の通信において、パケットロス(元データのロス)が発生しないことは稀であり、さらに、この方法の場合、例えば、送信装置11は、元データの場合と冗長データの場合とで互いに異なる内容を含むヘッダを付加し、2種類のアプリケーションデータを生成して送信しなければならず、また、受信装置13は、受信したパケットが元データのパケットであるか冗長データのパケットであるかを判別してそれぞれを別のデータとして処理したり、元データをロスしたか否かを判定したり、元データをロスした場合のみ、受信した冗長データを用いてそのロスした元データを復元するための行列式を作成して演算を行い、元データを復元したりしなければならない等、複雑な処理を必要とし、かえって送信装置11や受信装置13の製造コストが増大してしまう恐れもある。   However, it is rare that packet loss (original data loss) does not occur in actual communication. Further, in the case of this method, for example, the transmission device 11 can mutually communicate in the case of original data and the case of redundant data. A header including different contents must be added to generate and transmit two types of application data, and the receiving device 13 determines whether the received packet is a packet of original data or a packet of redundant data. And processing each as separate data, determining whether or not the original data is lost, or restoring the lost original data using the received redundant data only when the original data is lost For example, it is necessary to create a determinant for the calculation and perform an operation to restore the original data. 13 manufacturing cost of some concern that increased.

以上に説明した図2に示される通信システム10における通信方法の場合、このような複雑な処理を必要とせずに、容易に、データの送受信を行うことができ、かつ、上述したように元データを任意の変換データより復元することができるので、より正確にデータの送受信を行うことができる。   In the case of the communication method in the communication system 10 shown in FIG. 2 described above, it is possible to easily transmit and receive data without requiring such complicated processing, and the original data as described above. Can be restored from any conversion data, so that data can be transmitted and received more accurately.

さらに、図2に示される通信システム10における通信方法の場合、受信装置13は、元データを任意の変換データより復元することができるので、例えば、送信装置11が変換データを含むパケット群を送信中に、その送信の途中から、パケットの受信を開始しても、全ブロックについて元データの数より多くの変換データを受信することができれば、元データを復元することができる。これは、例えば、マルチキャストやブロードキャスト等のように、1対多の通信においてより効果的である。   Furthermore, in the case of the communication method in the communication system 10 shown in FIG. 2, the receiving device 13 can restore the original data from arbitrary converted data, so that, for example, the transmitting device 11 transmits a packet group including the converted data. Even if packet reception is started in the middle of the transmission, the original data can be restored if more converted data than the number of original data can be received for all blocks. This is more effective in one-to-many communication such as multicast or broadcast.

以上においては、通信システム10が、データを送信する送信装置11およびデータを受信する受信装置13により構成されるように説明したが、通信システムの構成は、これに限らず、通信システムは、例えば、図31に示されるように、図1の送信装置11および受信装置13を、それぞれモジュールとし、送信部および受信部とし、それらの両方を含む2台の送受信装置により構成されるようにしてもよい。   In the above description, the communication system 10 has been described as configured by the transmission device 11 that transmits data and the reception device 13 that receives data. However, the configuration of the communication system is not limited to this, and the communication system is, for example, As shown in FIG. 31, the transmission device 11 and the reception device 13 of FIG. 1 are each configured as a module, which is a transmission unit and a reception unit, and is configured by two transmission / reception devices including both of them. Good.

図31において、通信システム401は、図2のネットワーク12と同様の、ネットワーク412に接続された送受信装置411および送受信装置413により構成される。送受信装置411は、送信部421および受信部422を含み、送受信装置413は、送信部431および受信部432を含む。送信部421および送信部431は、図2の送信装置11と基本的に同様の構成であり、同様に動作するのでその詳細な説明は省略する。   In FIG. 31, the communication system 401 includes a transmission / reception device 411 and a transmission / reception device 413 connected to the network 412, similar to the network 12 of FIG. 2. The transmission / reception device 411 includes a transmission unit 421 and a reception unit 422, and the transmission / reception device 413 includes a transmission unit 431 and a reception unit 432. The transmission unit 421 and the transmission unit 431 have basically the same configuration as the transmission device 11 in FIG. 2 and operate in the same manner, and thus detailed description thereof is omitted.

また、図31において、受信部422および受信部432は、図2の受信装置13と基本的に同様の構成であり、同様に動作するのでその詳細な説明は省略する。   In FIG. 31, the receiving unit 422 and the receiving unit 432 have basically the same configuration as the receiving device 13 in FIG. 2 and operate in the same manner, and thus detailed description thereof is omitted.

すなわち、図31の通信システム401は、内蔵する送信部および受信部をそれぞれ有する送受信装置411および送受信装置413により構成され、それらが互いに上述したような演算を用いて元データを変換した変換データを利用して、再送制御なしに、通信処理を行う。   That is, the communication system 401 in FIG. 31 includes a transmission / reception device 411 and a transmission / reception device 413 each having a built-in transmission unit and reception unit, and the converted data obtained by converting the original data using the operations described above. By using this, communication processing is performed without retransmission control.

このようにすることにより、双方向の通信においても、受信部は、高速であり、かつ、復元性能の高い復元処理を、製造コストを増大せずに実現することができる。従って、送受信装置411および送受信装置413は、より容易、かつ、より正確にデータを送受信することができる。   In this way, even in bidirectional communication, the receiving unit can realize a restoration process that is high speed and has high restoration performance without increasing the manufacturing cost. Therefore, the transmission / reception device 411 and the transmission / reception device 413 can transmit and receive data more easily and accurately.

なお、図2においては、通信システム10は、1台の送信装置11および1台の受信装置13により構成されるように説明したが、これに限らず、複数台の送信装置または複数台の受信装置を含むようにしてもよい。   In FIG. 2, the communication system 10 has been described as being configured by one transmission device 11 and one reception device 13, but not limited thereto, a plurality of transmission devices or a plurality of reception devices. An apparatus may be included.

図32は、本発明を適用したコンテンツ配信システムの構成例を示す図である。コンテンツ配信システム501のサーバ511は、図2のネットワークと同等のネットワーク512に接続され、同様にネットワーク512に接続された複数の端末装置513および514により構成される。   FIG. 32 is a diagram showing a configuration example of a content distribution system to which the present invention is applied. The server 511 of the content distribution system 501 is connected to a network 512 equivalent to the network of FIG. 2 and is configured by a plurality of terminal devices 513 and 514 that are also connected to the network 512.

図32において、サーバ511は、送信装置11と同様の機能を有しており、ネットワーク512を介して、端末装置513および端末装置514のそれぞれに対して、画像データや音声データ等のコンテンツデータを分割し、その元データに対して上述したような演算を行い、元データを変換して得られた変換データをパケット化してマルチキャストに送信する。   In FIG. 32, the server 511 has the same function as the transmission device 11, and transmits content data such as image data and audio data to each of the terminal device 513 and the terminal device 514 via the network 512. The data is divided, the above-described calculation is performed on the original data, and the converted data obtained by converting the original data is packetized and transmitted to the multicast.

端末装置513および端末装置514は、それぞれ、受信装置13と同様の機能を有しており、サーバ511より供給されるパケットをそれぞれ受信し、上述したように元データを復元する等して、コンテンツデータを復元し、再生する。   Each of the terminal device 513 and the terminal device 514 has the same function as the receiving device 13, receives each packet supplied from the server 511, restores the original data as described above, etc. Restore and play the data.

なお、サーバ511は、コンテンツデータをダウンロード配信するようにしてもよいし、ストリーミング配信するようにしてもよい。   Note that the server 511 may download and distribute the content data, or may distribute the content data.

以上のように、サーバ511が複数台の端末装置513および514に対してパケットを配信する場合、端末装置513および端末装置514がパケットをロスしたときに、そのパケットの再送要求をサーバ511にするようにすると、サーバ511に再生要求が集中し、サーバ511の負荷が大きくなり、ダウンしてしまう恐れがある。従って、サーバ511が、上述したように、変換データを生成し、それを配信することにより、端末装置513および端末装置514は、パケットをロスしても、再生要求をせずに、コンテンツデータを復元することができる。従って、サーバ511における負荷の増大を抑制することができ、安定したコンテンツデータの配信サービスを提供することができる。   As described above, when the server 511 distributes a packet to a plurality of terminal devices 513 and 514, when the terminal device 513 and the terminal device 514 lose a packet, the retransmission request for the packet is set to the server 511. As a result, reproduction requests are concentrated on the server 511, the load on the server 511 increases, and there is a possibility of going down. Therefore, as described above, the server 511 generates the conversion data and distributes it, so that the terminal device 513 and the terminal device 514 receive the content data without requesting the reproduction even if the packet is lost. Can be restored. Therefore, an increase in load on the server 511 can be suppressed, and a stable content data distribution service can be provided.

以上においては、送信用データを分割したブロックのデータサイズ(ブロックサイズ)は、互いに共通であるように説明したが、これに限らず、各ブロックで互いに異なるブロックサイズとなるようにしてももちろんよい。その場合、例えば、送信装置11が、アプリケーションデータのヘッダに、ブロック番号とともに、そのブロックのブロックサイズの情報を付加し、受信装置13がそのブロックサイズの情報に基づいて、そのブロックの、受信するパケット数を決定するようにしてもよい。   In the above description, the data sizes (block sizes) of the blocks obtained by dividing the transmission data have been described as being common to each other. However, the present invention is not limited to this, and the blocks may of course have different block sizes. . In this case, for example, the transmission device 11 adds the block size information of the block together with the block number to the header of the application data, and the reception device 13 receives the block based on the block size information. The number of packets may be determined.

また、以上においては、コンテンツデータである送信用データを、データの先頭から終了に向かって、順番に切り出すように説明したが、ブロックの切り出し方はどのようなものであってもよい。ただし、そのブロックの生成方法は、通信システム10の各装置において予め決められているか、送信装置11が受信装置13にその方法に関する情報を供給する等して、送信装置11と受信装置13とで共有しておく必要がある。受信装置13は、その情報に基づいて、送信装置11によるブロックの生成方法に対応する方法で、ブロックより送信用データを復元する。   In the above description, the transmission data, which is content data, has been described as being cut out in order from the beginning to the end of the data. However, any block cutting method may be used. However, the block generation method is determined in advance in each device of the communication system 10 or the transmission device 11 supplies the reception device 13 with information on the method, so that the transmission device 11 and the reception device 13 can generate the block. It is necessary to share. Based on the information, the reception device 13 restores the transmission data from the block by a method corresponding to the block generation method by the transmission device 11.

なお、ブロックは処理の単位であるので、実際には、送信装置11は、その処理の流れに応じてコンテンツデータを分割し、ブロックを生成するようにするのが望ましい。従って、送信装置11が、その処理の順番によって、例えば、コンテンツデータより一定の規則で離散的に抜き出して1つのブロックとするようにしてもよい。   Since a block is a unit of processing, it is actually preferable that the transmission apparatus 11 divides content data according to the processing flow to generate a block. Therefore, the transmission device 11 may be extracted in a discrete manner from the content data according to a certain rule according to the order of processing, for example, to form one block.

また、上述した変換データを送信する方法と、再送要求を用いる方法とを組み合わせて利用するようにしてももちろんよい。その場合、受信側の装置は、パケットロスが発生した場合、まず、受信した変換データにより元データの復元を試み、復元不能であった場合に、送信元に対してロスしたパケットの再送要求を行うようにする。このようにすることにより、再送要求の回数を削減することができるので、送信側と受信側の両方の装置において、再送要求による処理の負荷を軽減させることができる。すなわち、システム全体の負荷を削減することができる。   Of course, the above-described method of transmitting converted data and the method of using a retransmission request may be used in combination. In that case, if a packet loss occurs, the receiving device first tries to restore the original data using the received converted data, and if it cannot restore, it sends a retransmission request for the lost packet to the transmission source. To do. In this way, since the number of retransmission requests can be reduced, it is possible to reduce the processing load due to the retransmission request in both the transmission side and reception side devices. That is, the load on the entire system can be reduced.

以上においては、送信装置11が、変換データの生成処理とデータ送信処理とを同時に行うように説明したが、これに限らず、例えば、送信装置11が予め送信用データを取得し、それを上述したように変換データに変換して蓄積しておき、受信装置13の要求に基づいて、その蓄積してある変換データを供給するようにしてももちろんよい。   In the above description, it has been described that the transmission device 11 performs the conversion data generation processing and the data transmission processing at the same time. However, the present invention is not limited to this. For example, the transmission device 11 acquires the transmission data in advance and uses it as described above. Of course, the converted data may be converted and stored, and the stored converted data may be supplied based on the request of the receiving device 13.

図2の通信システム10において、送信装置11と受信装置13が接続されるネットワーク12は、その一部または全部が有線により構成されるようにしてもよいし,無線により構成されるようにしてもよい。またネットワーク12が複数のネットワークにより構成されるようにしてもよい。すなわち、送信装置11と受信装置13とが複数のルータ等を介して接続されるようにしても良い。   In the communication system 10 of FIG. 2, the network 12 to which the transmission device 11 and the reception device 13 are connected may be partly or wholly configured by wire or may be configured by radio. Good. The network 12 may be configured by a plurality of networks. That is, the transmission device 11 and the reception device 13 may be connected via a plurality of routers or the like.

さらに、送信装置11および受信装置13は、上述した構成以外の構成を含むようにしてもよい。例えば、モニタ等の表示部を設けるようにしても良いし、キーボードやボタン等の入力部を設けるようにしてもよい。   Furthermore, the transmission device 11 and the reception device 13 may include configurations other than those described above. For example, a display unit such as a monitor may be provided, or an input unit such as a keyboard and buttons may be provided.

以上において、送信装置11は、係数情報、先頭情報、およびブロック番号等をEOR変換データに付加し、アプリケーションデータとして送信するように説明したが、これに限らず、例えば、これらの情報を、EOR変換データとは異なるデータとして送信するようにしてもよい。さらに、送信装置11は、これらの情報を、例えば、磁気ディスクや書き込み可能な光ディスク等のような記録媒体等を用いて受信装置13に供給するようにしてもよい。すなわち、送信装置11は、EOR変換データと異なる方法で、係数情報、先頭情報、およびブロック番号等の情報を受信装置13に供給するようにしてもよい。   In the above, the transmission apparatus 11 has been described as adding coefficient information, head information, a block number, and the like to EOR conversion data and transmitting it as application data. However, the present invention is not limited to this. You may make it transmit as data different from conversion data. Further, the transmission apparatus 11 may supply the information to the reception apparatus 13 using a recording medium such as a magnetic disk or a writable optical disk. That is, the transmission device 11 may supply information such as coefficient information, head information, and block number to the reception device 13 by a method different from that for EOR conversion data.

上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図2の送信装置11や受信装置13には、図33に示されるようなパーソナルコンピュータが含まれる。   The series of processes described above can be executed by hardware or can be executed by software. In this case, for example, the transmission device 11 and the reception device 13 in FIG. 2 include a personal computer as shown in FIG.

図33において、パーソナルコンピュータ601のCPU611は、ROM(Read Only Memory)612に記憶されているプログラム、または記憶部623からRAM613にロードされたプログラムに従って各種の処理を実行する。RAM613にはまた、CPU611が各種の処理を実行する上において必要なデータなども適宜記憶される。   In FIG. 33, the CPU 611 of the personal computer 601 executes various processes according to a program stored in a ROM (Read Only Memory) 612 or a program loaded from the storage unit 623 to the RAM 613. The RAM 613 also appropriately stores data necessary for the CPU 611 to execute various processes.

CPU611、ROM612、およびRAM613は、バス614を介して相互に接続されている。このバス614にはまた、入出力インタフェース620も接続されている。   The CPU 611, the ROM 612, and the RAM 613 are connected to each other via the bus 614. An input / output interface 620 is also connected to the bus 614.

入出力インタフェース620には、キーボード、マウスなどよりなる入力部621、CRT、LCDなどよりなるディスプレイ、並びにスピーカなどよりなる出力部622、ハードディスクなどより構成される記憶部623、モデムなどより構成される通信部624が接続されている。通信部624は、インターネットを含むネットワークを介しての通信処理を行う。   The input / output interface 620 includes an input unit 621 including a keyboard and a mouse, a display including a CRT and an LCD, an output unit 622 including a speaker, a storage unit 623 including a hard disk, a modem, and the like. A communication unit 624 is connected. The communication unit 624 performs communication processing via a network including the Internet.

入出力インタフェース620にはまた、必要に応じてドライブ625が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア626が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部623にインストールされる。   A drive 625 is connected to the input / output interface 620 as necessary, and a removable medium 626 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory is appropriately attached, and a computer program read from them is loaded. It is installed in the storage unit 623 as necessary.

上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。   When the above-described series of processing is executed by software, a program constituting the software is installed from a network or a recording medium.

この記録媒体は、例えば、図33に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア626により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM612や、記憶部623に含まれるハードディスクなどで構成される。   For example, as shown in FIG. 33, the recording medium is distributed to distribute the program to the user separately from the apparatus main body, and includes a magnetic disk (including a flexible disk) on which the program is recorded, an optical disk ( Removable media 626 made of CD-ROM (compact disk-read only memory), DVD (including digital versatile disk), magneto-optical disk (including MD (mini-disk) (registered trademark)), or semiconductor memory In addition to being configured, it is configured by a ROM 612 in which a program is recorded and a hard disk included in the storage unit 623, which is distributed to the user in a state of being incorporated in the apparatus main body in advance.

なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。   In the present specification, the step of describing the program recorded on the recording medium is not limited to the processing performed in chronological order according to the described order, but is not necessarily performed in chronological order. It also includes processes that are executed individually.

また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。   Further, in this specification, the system represents the entire apparatus constituted by a plurality of apparatuses.

従来のカルーセル方式によるデータの送信方法を説明する図である。It is a figure explaining the data transmission method by the conventional carousel system. 本発明を適用した通信システムの構成例を示す図である。It is a figure which shows the structural example of the communication system to which this invention is applied. 図2の送信装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the transmitter of FIG. 図3の送信装置におけるデータの処理の流れを示す図である。It is a figure which shows the flow of a process of the data in the transmitter of FIG. UDPパケットの構成例を示す模式図である。It is a schematic diagram which shows the structural example of a UDP packet. 図3のEOR変換データ生成部の詳細な構成例を示すブロック図である。FIG. 4 is a block diagram illustrating a detailed configuration example of an EOR conversion data generation unit in FIG. 3. EOR変換データの生成の様子を説明する模式図である。It is a schematic diagram explaining the mode of generation | occurrence | production of EOR conversion data. 図2の送信装置における有効係数の存在可能範囲の位置を示す模式図である。It is a schematic diagram which shows the position of the range in which the effective coefficient can exist in the transmission apparatus of FIG. 図3のアプリケーションデータ生成部の詳細な構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the application data generation part of FIG. アプリケーションデータの構成例を示す模式図である。It is a schematic diagram which shows the structural example of application data. 図2の受信装置の構成例を示すブロック図である。FIG. 3 is a block diagram illustrating a configuration example of a receiving device in FIG. 2. パケットをロスする様子の例を示す図である。It is a figure which shows the example of a mode that a packet is lost. 図11のパケットデータ復元部の詳細な構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the packet data decompression | restoration part of FIG. 図2の受信装置における有効係数の存在可能範囲の位置を示す模式図である。FIG. 3 is a schematic diagram illustrating positions of valid ranges of effective coefficients in the receiving apparatus of FIG. 2. 係数行列における有効係数の分布の例を示す模式図である。It is a schematic diagram which shows the example of distribution of the effective coefficient in a coefficient matrix. タイルの構成例を説明する模式図である。It is a schematic diagram explaining the structural example of a tile. データ送信処理の例を説明するフローチャートである。It is a flowchart explaining the example of a data transmission process. EOR変換データ生成処理の例を説明するフローチャートである。It is a flowchart explaining the example of an EOR conversion data generation process. アプリケーションデータ生成処理の例を説明するフローチャートである。It is a flowchart explaining the example of an application data generation process. データ受信処理の例を説明するフローチャートである。It is a flowchart explaining the example of a data reception process. 元データ復元処理の例を説明するフローチャートである。It is a flowchart explaining the example of an original data restoration process. 求解処理の例を説明するフローチャートである。It is a flowchart explaining the example of a solution process. 求解処理の例を説明する、図21に続くフローチャートである。It is a flowchart following FIG. 21 explaining the example of a solution process. ガウス消去法の手順の例を説明する図である。It is a figure explaining the example of the procedure of the Gaussian elimination method. ガウス消去法の手順の例を説明する図である。It is a figure explaining the example of the procedure of the Gaussian elimination method. ガウス消去法の手順の例を説明する図である。It is a figure explaining the example of the procedure of the Gaussian elimination method. ガウス消去法の手順の例を説明する図である。It is a figure explaining the example of the procedure of the Gaussian elimination method. パケットロスと受信処理時間の関係の例を説明する図である。It is a figure explaining the example of the relationship between a packet loss and reception processing time. 復元処理の処理時間と負荷の大きさの例を示す図である。It is a figure which shows the example of the processing time of a restoration process, and the magnitude | size of load. 図11のパケットデータ復元部の、他の詳細な構成例を示すブロック図である。It is a block diagram which shows the other detailed structural example of the packet data decompression | restoration part of FIG. 本発明を適用した通信システムの、他の構成例を示す図である。It is a figure which shows the other structural example of the communication system to which this invention is applied. 本発明を適用したコンテンツ配信システムの構成例を示す図である。It is a figure which shows the structural example of the content delivery system to which this invention is applied. パーソナルコンピュータの構成例を示すブロック図である。And FIG. 16 is a block diagram illustrating a configuration example of a personal computer.

符号の説明Explanation of symbols

10 通信システム, 11 送信装置 12 ネットワーク, 13 受信装置, 21 データ分割部, 22 ブロック分割部, 23 パケットデータ保持部, 24 EOR変換データ生成部, 25 アプリケーションデータ生成部, 26 データ変換制御部, 27 UDPパケット化部, 28 バッファ, 29 出力制御部, 30 IP処理部, 31 イーサネット(R)処理部, 32 ケーブル, 41 送信データ, 42 ブロック, 43 元データ, 44 EOR変換データ, 45 送信パケット, 61 行列式生成部, 62 行列式演算部, 63 解出力部, 71 係数行列保持部, 81 擬似乱数生成部, 82 先頭位置決定部, 83 幅設定部, 84 範囲制御部, 85 係数判定部, 86 係数生成確率保持部, 101 係数情報付加部101, 102 先頭情報付加部, 103 ブロック番号付加部, 104 ブロックカウンタ, 105 アプリケーションデータ出力部, 110 アプリケーションデータ, 111 ヘッダ, 112 EOR変換データ, 121 ブロック番号, 122 先頭情報, 123 係数情報, 130 ケーブル, 131 イーサネット(R)処理部, 132 IP処理部, 133 アプリケーションデータ抽出部, 134 バッファ部, 135 パケットデータ復元部, 136 ブロックデータ復元部, 137 受信データ生成部, 151 復元制御部, 152 係数行列作成部, 153 行列式作成部, 154 行列式保持部, 155 行列式整列部, 156 タイル処理部, 157 行列式演算部, 158 解出力部, 321 タイル処理部, 322 行列式整列部, 401 通信システム, 411 送受信装置, 412 ネットワーク, 413 送受信装置, 421 送信部, 422 受信部, 431 送信部, 432 受信部, 501 コンテンツ配信システム, 511 サーバ, 512 ネットワーク, 513 端末装置, 514 端末装置, 601 パーソナルコンピュータ, 611 CPU, 612 ROM, 613 RAM, 614 バス, 620 入出力インタフェース, 621 入力部, 622 出力部, 623 記憶部, 624 通信部, 625 ドライブ, 626 リムーバブルメディア   DESCRIPTION OF SYMBOLS 10 Communication system 11 Transmission apparatus 12 Network 13 Reception apparatus 21 Data division part 22 Block division part 23 Packet data holding part 24 EOR conversion data generation part 25 Application data generation part 26 Data conversion control part 27 UDP packetization unit, 28 buffer, 29 output control unit, 30 IP processing unit, 31 Ethernet (R) processing unit, 32 cable, 41 transmission data, 42 blocks, 43 original data, 44 EOR conversion data, 45 transmission packet, 61 Determinant generating unit, 62 Determinant calculating unit, 63 Solution output unit, 71 Coefficient matrix holding unit, 81 Pseudo random number generating unit, 82 Start position determining unit, 83 Width setting unit, 84 Range control unit, 85 Coefficient determining unit, 86 Coefficient generation probability holding unit, 101 Coefficient information Append section 101, 102 head information append section, 103 block number append section, 104 block counter, 105 application data output section, 110 application data, 111 header, 112 EOR conversion data, 121 block number, 122 head information, 123 coefficient information, 130 cable, 131 Ethernet processing unit, 132 IP processing unit, 133 application data extraction unit, 134 buffer unit, 135 packet data restoration unit, 136 block data restoration unit, 137 received data generation unit, 151 restoration control unit, 152 Coefficient matrix creation unit, 153 determinant creation unit, 154 determinant holding unit, 155 determinant alignment unit, 156 tile processing unit, 157 determinant calculation unit, 158 solution output unit, 321 File processing unit, 322 determinant sorting unit, 401 communication system, 411 transmission / reception device, 412 network, 413 transmission / reception device, 421 transmission unit, 422 reception unit, 431 transmission unit, 432 reception unit, 501 content distribution system, 511 server, 512 Network, 513 terminal device, 514 terminal device, 601 personal computer, 611 CPU, 612 ROM, 613 RAM, 614 bus, 620 I / O interface, 621 input unit, 622 output unit, 623 storage unit, 624 communication unit, 625 drive, 626 removable media

Claims (20)

送信用データを送信する送信装置と、前記送信装置により送信される前記送信用データを受信する受信装置を備える送受信システムであって、
前記送信装置は、前記送信用データを分割することにより複数の第1のデータを生成し、生成された全ての前記第1のデータを要素とする集合を全体集合とし、前記全体集合より前記全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した前記部分集合より前記第1のデータを任意に複数選択し、選択した複数の前記第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の前記部分集合について求めることにより、複数の前記第1のデータを複数の前記第2のデータに変換し、得られた複数の前記第2のデータをそれぞれパケット化し、前記受信装置に送信し、
前記受信装置は、前記送信装置が送信した複数の前記第2のデータを、前記第2のデータが対応する前記第1のデータの数以上受信し、受信した前記第2のデータが対応する前記第1のデータの数以上の前記第2のデータを保持し、保持した複数の前記第2のデータを用いて、前記第2のデータに対応する行列式を生成し、前記行列式を解くことにより、前記第1のデータを復元する
ことを特徴とする送受信システム。
A transmission / reception system comprising: a transmission device that transmits data for transmission; and a reception device that receives the transmission data transmitted by the transmission device,
The transmitting device generates a plurality of first data by dividing the transmission data, and sets a set including all the generated first data as an entire set, and the entire set from the entire set. A subset consisting of any continuous element group that is a part of the set is set, and a plurality of the first data are arbitrarily selected from the set subset, and the selected plurality of the first data are bit by bit Obtained by converting each of the plurality of first data into a plurality of the second data by performing an exclusive OR operation every time and obtaining the second data as a result of the operation for the plurality of the subsets. Packetizing each of the plurality of second data and transmitting to the receiving device,
The receiving device receives a plurality of the second data transmitted by the transmitting device by the number of the first data corresponding to the second data, and the received second data corresponds to the second data. The second data that is equal to or more than the number of first data is held, a determinant corresponding to the second data is generated using the plurality of held second data, and the determinant is solved The transmission / reception system characterized in that the first data is restored.
送信用データを受信装置に送信する送信装置であって、
前記送信用データを分割することにより複数の第1のデータを生成するデータ生成手段と、
前記データ生成手段により生成された全ての前記第1のデータを要素とする集合を全体集合とし、前記全体集合より前記全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した前記部分集合より前記第1のデータを任意に複数選択し、選択した複数の前記第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の前記部分集合について求めることにより、複数の前記第1のデータを複数の前記第2のデータに変換する変換手段と、
前記変換手段により複数の前記第1のデータを変換して得られた複数の前記第2のデータを、それぞれパケット化し、前記受信装置に送信する送信手段と
を備えることを特徴とする送信装置。
A transmission device that transmits data for transmission to a reception device,
Data generating means for generating a plurality of first data by dividing the transmission data;
A set including all the first data generated by the data generation means as a whole set is set as a whole set, and a subset including any continuous element group that is a part of the whole set is set from the whole set. , Arbitrarily selecting a plurality of the first data from the set subset, performing an exclusive OR operation on the selected plurality of the first data for each bit, and a plurality of second data as the operation result Conversion means for converting a plurality of the first data into a plurality of the second data by obtaining the subset of
A transmission device comprising: a transmission unit configured to packetize each of the plurality of second data obtained by converting the plurality of first data by the conversion unit, and transmit the packetized data to the reception device.
前記変換手段は、
前記排他的論理和演算を行う前記第1のデータを選択するための係数行列を用いて前記第1のデータを前記第2のデータに変換する行列式を生成する行列式生成手段と、
前記行列式生成手段により生成された前記行列式を、前記排他的論理和演算を用いて演算することにより前記第2のデータを求める演算手段と
を備えることを特徴とする請求項2に記載の送信装置。
The converting means includes
Determinant generating means for generating a determinant for converting the first data into the second data using a coefficient matrix for selecting the first data to be subjected to the exclusive OR operation;
3. The computing device according to claim 2, further comprising: a computing unit that obtains the second data by computing the determinant generated by the determinant generating unit using the exclusive OR operation. Transmitter device.
前記係数行列は、値が「1」の成分である有効係数と、値が「0」の成分である無効係数とにより構成され、
前記有効係数は、前記係数行列の各行に対して前記部分集合として設定される前記有効係数が存在可能な列の範囲内において任意に選択された成分であり、
各行の前記範囲は、前記範囲の列数が互いに同じであり、前記範囲の先頭の列が行毎に互いに異なるように設定される
ことを特徴とする請求項3に記載の送信装置。
The coefficient matrix includes an effective coefficient having a value of “1” and an invalid coefficient having a value of “0”.
The effective coefficient is a component arbitrarily selected within a range of columns in which the effective coefficient can be set as the subset for each row of the coefficient matrix,
The transmission device according to claim 3, wherein the range of each row is set such that the number of columns in the range is the same, and the first column of the range is different for each row.
前記範囲を行毎に設定する範囲設定手段と、
前記範囲設定手段により設定された前記範囲に基づいて、前記係数行列の各成分の値を判定する判定手段と、
前記判定手段による判定結果に基づいて前記係数行列の全ての成分の値を保持することにより前記係数行列を保持する係数行列保持手段と
をさらに備え、
前記行列式生成手段は、前記係数行列保持手段により保持されている前記係数行列を用いて前記行列式を生成する
ことを特徴とする請求項4に記載の送信装置。
Range setting means for setting the range for each row;
Determination means for determining the value of each component of the coefficient matrix based on the range set by the range setting means;
Coefficient matrix holding means for holding the coefficient matrix by holding values of all components of the coefficient matrix based on the determination result by the determination means, and
The transmission apparatus according to claim 4, wherein the determinant generating unit generates the determinant using the coefficient matrix held by the coefficient matrix holding unit.
前記変換手段は、複数の前記第1のデータを、前記第1のデータの数より多くの前記第2のデータに変換する
ことを特徴とする請求項2に記載の送信装置。
The transmission device according to claim 2, wherein the conversion unit converts a plurality of the first data into the second data larger than the number of the first data.
前記変換手段により前記第1のデータを変換して得られた前記第2のデータに、前記範囲に関する情報を付加する情報付加手段をさらに備え、
前記送信手段は、前記情報付加手段により前記情報が付加された複数の前記第2のデータをそれぞれパケット化し、前記受信装置に送信する
ことを特徴とする請求項2に記載の送信装置。
Information adding means for adding information about the range to the second data obtained by converting the first data by the converting means;
The transmission device according to claim 2, wherein the transmission unit packetizes each of the plurality of second data to which the information is added by the information addition unit, and transmits the packetized data to the reception device.
前記データ生成手段は、前記送信用データをブロックに分割し、さらに、前記ブロックを分割することにより複数の前記第1のデータを生成する
ことを特徴とする請求項2に記載の送信装置。
The transmission apparatus according to claim 2, wherein the data generation unit divides the transmission data into blocks, and further generates the plurality of first data by dividing the block.
送信用データを受信装置に送信する送信装置の送信方法であって、
前記送信用データを分割することにより複数の第1のデータを生成するデータ生成ステップと、
前記データ生成ステップの処理により生成された全ての前記第1のデータを要素とする集合を全体集合とし、前記全体集合より前記全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した前記部分集合より前記第1のデータを任意に複数選択し、選択した複数の前記第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の前記部分集合について求めることにより、複数の前記第1のデータを複数の前記第2のデータに変換する変換ステップと、
前記変換ステップの処理により複数の前記第1のデータが変換されて得られた複数の前記第2のデータを、それぞれパケット化し、前記受信装置に送信するように制御する送信制御ステップと
を含むことを特徴とする送信方法。
A transmission method of a transmission device for transmitting data for transmission to a reception device,
A data generation step of generating a plurality of first data by dividing the transmission data;
A set including all the first data generated by the processing of the data generation step as an entire set is defined as an entire set, and a subset including any continuous element group that is a part of the entire set from the entire set. Set, arbitrarily select a plurality of the first data from the set subset, perform an exclusive OR operation on the selected plurality of the first data for each bit, and obtain the second data as the operation result Converting a plurality of the first data into a plurality of the second data by obtaining a plurality of the subsets;
A transmission control step of controlling the plurality of second data obtained by converting the plurality of first data by the conversion step to be packetized and transmitted to the receiving device, respectively. A transmission method characterized by the above.
送信用データを受信装置に送信する送信処理を、コンピュータに行わせるプログラムにおいて、
前記送信用データを分割することにより複数の第1のデータを生成するデータ生成ステップと、
前記データ生成ステップの処理により生成された全ての前記第1のデータを要素とする集合を全体集合とし、前記全体集合より前記全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した前記部分集合より前記第1のデータを任意に複数選択し、選択した複数の前記第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の前記部分集合について求めることにより、複数の前記第1のデータを複数の前記第2のデータに変換する変換ステップと、
前記変換ステップの処理により複数の前記第1のデータが変換されて得られた複数の前記第2のデータを、それぞれパケット化し、前記受信装置に送信するように制御する送信制御ステップと
を含むことを特徴とするプログラム。
In a program for causing a computer to perform transmission processing for transmitting data for transmission to a receiving device,
A data generation step of generating a plurality of first data by dividing the transmission data;
A set including all the first data generated by the processing of the data generation step as an entire set is defined as an entire set, and a subset including any continuous element group that is a part of the entire set from the entire set. Set, arbitrarily select a plurality of the first data from the set subset, perform an exclusive OR operation on the selected plurality of the first data for each bit, and obtain the second data as the operation result Converting a plurality of the first data into a plurality of the second data by obtaining a plurality of the subsets;
A transmission control step of controlling the plurality of second data obtained by converting the plurality of first data by the conversion step to be packetized and transmitted to the receiving device, respectively. A program characterized by
送信装置が送信したデータを受信する受信装置であって、
前記送信装置が送信したデータであり、それぞれが、送信用データが分割されて生成された全ての前記第1のデータを要素とする集合を全体集合とし、前記全体集合より前記全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した前記部分集合より前記第1のデータを任意に複数選択し、選択した複数の前記第1のデータを互いにビット毎に排他的論理和演算し、前記排他的論理和演算の演算結果として複数の前記部分集合について求められた複数の第2のデータを、前記第2のデータが対応する前記第1のデータの数以上受信する受信手段と、
前記受信手段により受信される、前記第2のデータが対応する前記第1のデータの数以上の前記第2のデータを保持する保持手段と、
前記保持手段により保持される複数の前記第2のデータを用いて、前記第2のデータに対応する行列式を生成し、前記行列式を解くことにより、前記第1のデータを復元する復元手段と
を備えることを特徴とする受信装置。
A receiving device for receiving data transmitted by a transmitting device,
The data transmitted by the transmitting device, each of which is a set including all the first data generated by dividing transmission data as a whole set, and a part of the whole set from the whole set A subset consisting of any continuous element group is set, and a plurality of the first data are arbitrarily selected from the set subset, and the plurality of selected first data are mutually exclusive for each bit. Perform a logical OR operation, and receive a plurality of second data obtained for a plurality of the subsets as a result of the exclusive OR operation, by the number of the first data corresponding to the second data. Receiving means;
Holding means for holding the second data equal to or more than the number of the first data corresponding to the second data received by the receiving means;
Restoring means for generating a determinant corresponding to the second data using the plurality of second data held by the holding means, and for restoring the first data by solving the determinant And a receiving device.
前記復元手段は、
前記排他的論理和演算を行う前記第1のデータを選択するための係数行列を用いて前記第1のデータを前記第2のデータに変換する行列式を生成する行列式生成手段と、
前記行列式生成手段により生成された前記行列式を前記第1のデータを変数として解き、前記第1のデータを求める演算手段と
を備えることを特徴とする請求項11に記載の受信装置。
The restoration means includes
Determinant generating means for generating a determinant for converting the first data into the second data using a coefficient matrix for selecting the first data to be subjected to the exclusive OR operation;
The receiving apparatus according to claim 11, further comprising: an arithmetic unit that solves the determinant generated by the determinant generating unit using the first data as a variable and obtains the first data.
前記係数行列は、値が「1」の成分である有効係数と、値が「0」の成分である無効係数とにより構成され、
前記有効係数は、前記係数行列の各行に対して前記部分集合として設定される前記有効係数が存在可能な列の範囲内において任意に選択された成分であり、
各行の前記範囲は、前記範囲の列数が互いに同じであり、前記範囲の先頭の列が行毎に互いに異なるように設定される
ことを特徴とする請求項12に記載の受信装置。
The coefficient matrix includes an effective coefficient having a value of “1” and an invalid coefficient having a value of “0”.
The effective coefficient is a component arbitrarily selected within a range of columns in which the effective coefficient can be set as the subset for each row of the coefficient matrix,
The receiving apparatus according to claim 12, wherein the range of each row is set such that the number of columns in the range is the same, and the first column of the range is different for each row.
前記受信手段により受信された前記第2のデータに付加された、前記排他的論理和演算を行う複数の前記第1のデータを任意に選択する前記範囲に関する情報に基づいて、前記係数行列を生成する係数行列生成手段をさらに備え、
前記行列式生成手段は、前記係数行列生成手段により生成された前記係数行列を用いて、前記行列式を生成する
ことを特徴とする請求項12に記載の受信装置。
The coefficient matrix is generated based on information about the range that is arbitrarily selected from the plurality of first data to be subjected to the exclusive OR operation, which is added to the second data received by the receiving unit. A coefficient matrix generating means for performing
The receiving apparatus according to claim 12, wherein the determinant generating unit generates the determinant using the coefficient matrix generated by the coefficient matrix generating unit.
前記係数行列の各成分を所定の行数および列数毎に複数の小領域に分割し、各小領域の成分の値に基づいて、前記行列式生成手段により生成された前記行列式の、前記小領域に対応する部分の演算を行うか否かを判定する演算判定手段をさらに備え、
前記演算手段は、前記行列式生成手段により生成された前記行列式の、前記演算判定手段により演算を行うと判定された部分についてのみ演算を行って、前記第1のデータを変数として解くことにより前記第1のデータを求める
ことを特徴とする請求項12に記載の受信装置。
Each component of the coefficient matrix is divided into a plurality of small regions for each predetermined number of rows and columns, and the determinant generated by the determinant generating unit based on the value of the component of each small region Computation determining means for determining whether or not to perform the calculation of the portion corresponding to the small region,
The calculation means calculates only the portion of the determinant generated by the determinant generation means that is determined to be calculated by the calculation determination means, and solves the first data as a variable. The receiving apparatus according to claim 12, wherein the first data is obtained.
送信装置が送信したデータを受信する受信装置の受信方法であって、
前記送信装置が送信したデータであり、それぞれが、送信用データが分割されて生成された全ての前記第1のデータを要素とする集合を全体集合とし、前記全体集合より前記全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した前記部分集合より前記第1のデータを任意に複数選択し、選択した複数の前記第1のデータを互いにビット毎に排他的論理和演算し、前記排他的論理和演算の演算結果として複数の前記部分集合について求められた複数の第2のデータを、前記第2のデータが対応する前記第1のデータの数以上受信するように制御する受信制御ステップと、
前記受信制御ステップの処理により制御されて受信される、前記第2のデータが対応する前記第1のデータの数以上の前記第2のデータを保持する保持ステップと、
前記保持ステップの処理により保持される複数の前記第2のデータを用いて、前記第2のデータに対応する行列式を生成し、前記行列式を解くことにより、前記第1のデータを復元する復元ステップと
を含むことを特徴とする受信方法。
A receiving method of a receiving device for receiving data transmitted by a transmitting device,
The data transmitted by the transmitting device, each of which is a set including all the first data generated by dividing transmission data as a whole set, and a part of the whole set from the whole set A subset consisting of any continuous element group is set, and a plurality of the first data are arbitrarily selected from the set subset, and the plurality of selected first data are mutually exclusive for each bit. Perform a logical OR operation, and receive a plurality of second data obtained for a plurality of the subsets as a result of the exclusive OR operation, by the number of the first data corresponding to the second data. A reception control step for controlling
A holding step of holding the second data equal to or more than the number of the first data corresponding to the second data, which is controlled and received by the processing of the reception control step;
The determinant corresponding to the second data is generated using a plurality of the second data held by the process of the holding step, and the first data is restored by solving the determinant A receiving method comprising: a restoring step.
送信装置が送信したデータを受信する受信処理をコンピュータに行わせるプログラムにおいて、
前記送信装置が送信したデータであり、それぞれが、送信用データが分割されて生成された全ての前記第1のデータを要素とする集合を全体集合とし、前記全体集合より前記全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した前記部分集合より前記第1のデータを任意に複数選択し、選択した複数の前記第1のデータを互いにビット毎に排他的論理和演算し、前記排他的論理和演算の演算結果として複数の前記部分集合について求められた複数の第2のデータを、前記第2のデータが対応する前記第1のデータの数以上受信するように制御する受信制御ステップと、
前記受信制御ステップの処理により制御されて受信される、前記第2のデータが対応する前記第1のデータの数以上の前記第2のデータを保持する保持ステップと、
前記保持ステップの処理により保持される複数の前記第2のデータを用いて、前記第2のデータに対応する行列式を生成し、前記行列式を解くことにより、前記第1のデータを復元する復元ステップと
を含むことを特徴とするプログラム。
In a program for causing a computer to perform reception processing for receiving data transmitted by a transmission device,
The data transmitted by the transmitting device, each of which is a set including all the first data generated by dividing transmission data as a whole set, and a part of the whole set from the whole set A subset consisting of any continuous element group is set, and a plurality of the first data are arbitrarily selected from the set subset, and the plurality of selected first data are mutually exclusive for each bit. Perform a logical OR operation, and receive a plurality of second data obtained for a plurality of the subsets as a result of the exclusive OR operation, by the number of the first data corresponding to the second data. A reception control step for controlling
A holding step of holding the second data equal to or more than the number of the first data corresponding to the second data, which is controlled and received by the processing of the reception control step;
The determinant corresponding to the second data is generated using the plurality of second data held by the holding step, and the first data is restored by solving the determinant A program comprising: a restoration step.
送信用データを送受信する送受信装置であって、
前記送信用データを分割することにより複数の第1のデータを生成するデータ生成手段と、
前記データ生成手段により生成された全ての前記第1のデータを要素とする集合を全体集合とし、前記全体集合より前記全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した前記部分集合より前記第1のデータを任意に複数選択し、選択した複数の前記第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の前記部分集合について求めることにより、複数の前記第1のデータを複数の前記第2のデータに変換する変換手段と、
前記変換手段により複数の前記第1のデータが変換されて得られた複数の前記第2のデータをそれぞれパケット化し、他の送受信装置に送信する送信手段と、
前記他の送受信装置が送信した複数の前記第2のデータを、前記第2のデータが対応する前記第1のデータの数以上受信する受信手段と、
前記受信手段により受信される、前記第2のデータが対応する前記第1のデータの数以上の前記第2のデータを保持する保持手段と、
前記保持手段により保持される複数の前記第2のデータを用いて、前記第2のデータに対応する行列式を生成し、前記行列式を解くことにより、前記第1のデータを復元する復元手段と
を備えることを特徴とする送受信装置。
A transmission / reception device for transmitting / receiving data for transmission,
Data generating means for generating a plurality of first data by dividing the transmission data;
A set including all the first data generated by the data generation means as a whole set is set as a whole set, and a subset including any continuous element group that is a part of the whole set is set from the whole set. , Arbitrarily selecting a plurality of the first data from the set subset, performing an exclusive OR operation on the selected plurality of the first data for each bit, and a plurality of second data as the operation result Conversion means for converting a plurality of the first data into a plurality of the second data by obtaining the subset of
Transmitting means for packetizing a plurality of the second data obtained by converting the plurality of first data by the converting means, respectively, and transmitting the packet to other transmitting / receiving devices;
Receiving means for receiving a plurality of the second data transmitted by the other transmission / reception device by the number of the first data corresponding to the second data;
Holding means for holding the second data equal to or more than the number of the first data corresponding to the second data received by the receiving means;
Restoring means for generating a determinant corresponding to the second data using the plurality of second data held by the holding means, and for restoring the first data by solving the determinant A transmission / reception device comprising:
送信用データを送受信する送受信装置の送受信方法であって、
前記送信用データを分割することにより複数の第1のデータを生成するデータ生成ステップと、
前記データ生成ステップの処理により生成された全ての前記第1のデータを要素とする集合を全体集合とし、前記全体集合より前記全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した前記部分集合より前記第1のデータを任意に複数選択し、選択した複数の前記第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の前記部分集合について求めることにより、複数の前記第1のデータを複数の前記第2のデータに変換する変換ステップと、
前記変換ステップの処理により複数の前記第1のデータが変換されて得られた複数の前記第2のデータを、それぞれパケット化し、他の送受信装置に送信するように制御する送信制御ステップと、
前記他の送受信装置が送信した複数の前記第2のデータを、前記第2のデータが対応する前記第1のデータの数以上受信するように制御する受信制御ステップと、
前記受信制御ステップの処理により制御されて受信される、前記第2のデータが対応する前記第1のデータの数以上の前記第2のデータを保持する保持ステップと、
前記保持ステップの処理により保持される複数の前記第2のデータを用いて、前記第2のデータに対応する行列式を生成し、前記行列式を解くことにより、前記第1のデータを復元する復元ステップと
を含むことを特徴とする送受信方法。
A transmission / reception method of a transmission / reception apparatus for transmitting / receiving data for transmission,
A data generation step of generating a plurality of first data by dividing the transmission data;
A set including all the first data generated by the processing of the data generation step as an entire set is defined as an entire set, and a subset including any continuous element group that is a part of the entire set from the entire set. Set, arbitrarily select a plurality of the first data from the set subset, perform an exclusive OR operation on the selected plurality of the first data for each bit, and obtain the second data as the operation result Converting a plurality of the first data into a plurality of the second data by obtaining a plurality of the subsets, and
A transmission control step for controlling each of the plurality of second data obtained by converting a plurality of the first data by the processing of the conversion step into packets and transmitting them to other transmission / reception devices;
A reception control step of controlling a plurality of the second data transmitted by the other transmission / reception apparatus so as to receive more than the number of the first data corresponding to the second data;
A holding step for holding the second data equal to or more than the number of the first data corresponding to the second data, which is controlled and received by the processing of the reception control step;
The determinant corresponding to the second data is generated using the plurality of second data held by the holding step, and the first data is restored by solving the determinant A transmission / reception method comprising: a restoration step.
送信用データを送受信する送受信処理を、コンピュータに行わせるプログラムにおいて、
前記送信用データを分割することにより複数の第1のデータを生成するデータ生成ステップと、
前記データ生成ステップの処理により生成された全ての前記第1のデータを要素とする集合を全体集合とし、前記全体集合より前記全体集合の一部である任意の連続する要素群からなる部分集合を設定し、設定した前記部分集合より前記第1のデータを任意に複数選択し、選択した複数の前記第1のデータを互いにビット毎に排他的論理和演算し、演算結果である第2のデータを複数の前記部分集合について求めることにより、複数の前記第1のデータを複数の前記第2のデータに変換する変換ステップと、
前記変換ステップの処理により複数の前記第1のデータが変換されて得られた複数の前記第2のデータを、それぞれパケット化し、他の送受信装置に送信するように制御する送信制御ステップと、
前記他の送受信装置が送信した複数の前記第2のデータを、前記第2のデータが対応する前記第1のデータの数以上受信するように制御する受信制御ステップと、
前記受信制御ステップの処理により制御されて受信される、前記第2のデータが対応する前記第1のデータの数以上の前記第2のデータを保持する保持ステップと、
前記保持ステップの処理により保持される複数の前記第2のデータを用いて、前記第2のデータに対応する行列式を生成し、前記行列式を解くことにより、前記第1のデータを復元する復元ステップと
を含むことを特徴とするプログラム。
In a program for causing a computer to perform transmission / reception processing for transmitting / receiving data for transmission,
A data generation step of generating a plurality of first data by dividing the transmission data;
A set including all the first data generated by the processing of the data generation step as an entire set is defined as an entire set, and a subset including any continuous element group that is a part of the entire set from the entire set. Set, arbitrarily select a plurality of the first data from the set subset, perform exclusive OR operation on the selected plurality of the first data for each bit, and obtain the second data as the operation result Converting a plurality of the first data into a plurality of the second data by obtaining a plurality of the subsets;
A transmission control step for controlling each of the plurality of second data obtained by converting a plurality of the first data by the processing of the conversion step into packets and transmitting them to other transmission / reception devices;
A reception control step of controlling a plurality of the second data transmitted by the other transmission / reception apparatus so as to receive more than the number of the first data corresponding to the second data;
A holding step of holding the second data equal to or more than the number of the first data corresponding to the second data, which is controlled and received by the processing of the reception control step;
The determinant corresponding to the second data is generated using the plurality of second data held by the holding step, and the first data is restored by solving the determinant A program comprising: a restoration step.
JP2004030401A 2004-02-06 2004-02-06 Transmission/reception system, transmitter and transmitting method, receiver and receiving method, transmitter/receiver and transmitting/receiving method, and program Pending JP2005223683A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004030401A JP2005223683A (en) 2004-02-06 2004-02-06 Transmission/reception system, transmitter and transmitting method, receiver and receiving method, transmitter/receiver and transmitting/receiving method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004030401A JP2005223683A (en) 2004-02-06 2004-02-06 Transmission/reception system, transmitter and transmitting method, receiver and receiving method, transmitter/receiver and transmitting/receiving method, and program

Publications (1)

Publication Number Publication Date
JP2005223683A true JP2005223683A (en) 2005-08-18

Family

ID=34998979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004030401A Pending JP2005223683A (en) 2004-02-06 2004-02-06 Transmission/reception system, transmitter and transmitting method, receiver and receiving method, transmitter/receiver and transmitting/receiving method, and program

Country Status (1)

Country Link
JP (1) JP2005223683A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011041076A (en) * 2009-08-13 2011-02-24 Mitsubishi Electric Corp Communication system
US8812866B2 (en) 2007-02-16 2014-08-19 Fujitsu Limited Method and apparatus for storing data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812866B2 (en) 2007-02-16 2014-08-19 Fujitsu Limited Method and apparatus for storing data
JP2011041076A (en) * 2009-08-13 2011-02-24 Mitsubishi Electric Corp Communication system

Similar Documents

Publication Publication Date Title
JP5442816B2 (en) Streaming and buffering using variable FEC overhead and protection period
EP1214793B9 (en) Group chain reaction encoder with variable number of associated input data for each output group code
KR101532849B1 (en) Universal file delivery methods for providing unequal error protection and bundled file delivery services
KR101143282B1 (en) Systematic encoding and decoding of chain reaction codes
US8185794B2 (en) Media container file management
CN101802797B (en) Generating and communicating source identification information to enable reliable communications
JP5778672B2 (en) Backward looking robust header compression receiver
US20020190878A1 (en) Information additive code generator and decoder for communication systems
JP2001144732A (en) Method for controlling packet loss for real time multimedia communication
JP4506185B2 (en) Receiving apparatus and method, and program
CN110943800A (en) Method, device and system for sending data packet, storage medium and electronic device
US8640009B2 (en) Methods and apparatus for providing linear erasure codes
MX2014013560A (en) Apparatus and method of transmitting and receiving packet in a broadcasting and communication system.
US9294227B2 (en) LT staircase FEC code
EP1771960A1 (en) Encoding and decoding method, and encoding and decoding devices with a two-stage error protection process
US8301968B2 (en) Methods and apparatus for encoding data in a communication network
CN104754341A (en) Video data encoding and decoding method and device
KR20070034532A (en) Extended Convolutional Encoder Devices, Wireless Systems, and Convolutional Code Extension Methods
KR101967884B1 (en) Apparatus and method for transmitting and receiving packet in broadcasting and communication system
JP2015532020A (en) Method and apparatus for error recovery using information associated with a transmitter
JP2005223683A (en) Transmission/reception system, transmitter and transmitting method, receiver and receiving method, transmitter/receiver and transmitting/receiving method, and program
CN111245566B (en) Method and device for preventing packet loss of unreliable network, storage medium and electronic equipment
US7787624B2 (en) Method for inserting synchronization markers into a video stream, compatible with a block cipher
US20100031112A1 (en) Method and device for determining indices assigned to correction symbols
Nazir et al. Application layer systematic network coding for sliced H. 264/AVC video streaming

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100302