Content distribution system, content distribution method, and content distribution program

JPWO2024224697A5Active Publication Date: 2025-04-02MITSUBISHI ELECTRIC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024569179
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-09
Filing Date
2024-01-09
Publication Date
2025-04-02
Estimated Expiration
2044-01-09

AI Technical Summary

Technical Problem

In wireless communication networks, especially in multi-hop networks, the use of erasure correction codes for content distribution leads to inefficiencies due to increased packet collisions and power consumption, as well as the need for retransmitting different data to each receiving station, which reduces overall communication efficiency.

Method used

A content distribution system that includes a plurality of devices, each equipped with an encoding processing unit to generate redundant data blocks, a transmitting unit to transmit blocks with a source identifier, and a receiving unit to manage reception responses, allowing for targeted retransmissions only when necessary, thereby reducing the number of transmission responses and improving communication efficiency.

Benefits of technology

The system enhances communication efficiency by minimizing unnecessary retransmissions and packet collisions, improving the distribution of content data in multi-hop networks by selectively transmitting blocks based on successful reception responses.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000029_0000
    Figure 00000029_0000
  • Figure 00000029_0001
    Figure 00000029_0001
  • Figure 00000029_0002
    Figure 00000029_0002
Patent Text Reader

Abstract

A target distribution device that is a content distribution device is provided with a transmission unit (121). The transmission unit (121) transmits, together with a transmission source identifier, K2 blocks selected from among K1 coded blocks (132) and among M redundant data blocks (133) based on erasure correction coding, using a wireless signal. Further, when the destination identifier indicated by a reception response received from each content distribution device is the same as the device identifier of the target distribution device, the transmission unit (121) uses a wireless signal to transmit K2-Rmin blocks selected from among the blocks that are among the K1 coded blocks (132) and the M redundant data blocks (133), and that have not been transmitted, where Rmin represents the number of successfully received blocks that is indicated by one of the received reception responses and that is relatively small.
Need to check novelty before this filing date? Find Prior Art

Description

Content distribution system, content distribution method, and content distribution program

[0001] The present disclosure relates to a content distribution system, a content distribution method, and a content distribution program.

[0002] Methods of distributing content via wireless communication include a method of distributing content individually from a transmitting station to each receiving station using unicast, and a method of distributing content simultaneously from a transmitting station to multiple receiving stations using multicast.

[0003] When distributing content using unicast, the time required to distribute the content to all receiving stations increases as the number of receiving stations increases. On the other hand, when distributing content using multicast, the content can be distributed at once regardless of the number of receiving stations. Therefore, when distributing content using wireless communication, distributing content using multicast is an efficient method.

[0004] However, in wireless communication, reception errors occur due to fluctuations in reception power, interference signals from other systems, etc., so it is not possible to deliver all content correctly in one transmission. Therefore, when a reception error occurs in a case where loss of content data is not allowed, such as firmware delivery to an IoT (Internet of Things) terminal, it is necessary to resend the data corresponding to the location where the reception error occurred.

[0005] Furthermore, since the location of reception errors differs depending on the receiving station, in order to deliver all content correctly, different data must be retransmitted for each receiving station as data corresponding to the location of the reception error. Therefore, in a method of delivering content using multicast, as the number of receiving stations increases, the amount of data that must be retransmitted increases, thereby reducing the efficiency of content delivery.

[0006] Patent document 1 discloses that when content data is distributed using wireless LAN (Local Area Network), by applying erasure correction code to the content data that is distributed, the method of reducing the amount of data that is transmitted.It should be noted that, in patent document 1, as an example of erasure correction code, the encoding method that is described in non-patent document 1 is listed.

[0007] When using erasure correction code, the original content data to be sent is divided into a plurality of coding blocks with fixed length, and the coding is carried out for a plurality of coding blocks, thereby generating the redundant data for restoring missing data.As a specific example, when the coding rate of 1 / 3 is used to carry out erasure correction coding for 180 coding blocks with data length of 1500 bytes, 360 redundant data blocks with data length of 1500 bytes are generated.If receiving station can receive more than 180 data blocks among the total 540 data blocks that are the number of original coding blocks and the number of redundant data blocks, it can decode content data.

[0008] Patent No. 6556415

[0009] W. Matsumoto et al. , “Rate-Compatible QC-LDPC codes”, SITA2006, Nov. 28-Dec. 1, 2006.

[0010] The method disclosed in Patent Document 1 is based on a network connected in a star topology, such as a wireless LAN. Here, consider a case where this method is applied to a multi-hop network. In this case, since there are receiving stations that cannot communicate directly with the transmitting station, requesting additional transmission from the transmitting station when decoding fails results in a deterioration in communication efficiency. Furthermore, in this case, the receiving station that has received the coded block and redundant data block must forward the received data to the receiving station at the next hop. However, if all receiving stations forward data, the number of packets increases, which poses problems such as packet collisions and increased power consumption.

[0011] The present disclosure aims to improve communication efficiency when content distribution using erasure correction codes is performed in a multi-hop network.

[0012] A content distribution device according to the present disclosure is a content distribution system including a plurality of content distribution devices each of which distributes content data by wireless communication, wherein when each of the plurality of content distribution devices is a target distribution device, the target distribution device transmits the target content data to a K 1 K coding blocks are divided into 1 an encoding processing unit that generates M redundant data blocks by performing erasure correction encoding on the K encoded blocks; 1 K selected from the M coded blocks and the M redundant data blocks 2 a transmitting unit that transmits the blocks by wireless signals together with a transmission source identifier that is a device identifier of the target distribution device; and a receiving unit that receives a reception response that is information transmitted from each of two or more content distribution devices other than the target distribution device, the reception response being information indicating the transmission source identifier that indicates the content distribution device that is the transmission source, the destination identifier that indicates the content distribution device that is the destination, whether each block was received at the transmission source, and the identifier of each block received by the transmission source, and when the destination identifier indicated in the reception response received by the target distribution device is the same as the device identifier of the target distribution device, the transmitting unit of the target distribution device calculates R min When this is the case, the K 1 K selected from the coded blocks and the M redundant data blocks that have not yet been transmitted 2 -R min blocks are transmitted via radio signals.

[0013] According to the present disclosure, the transmitting unit of the target distribution device, when the destination identifier indicated in the reception response is the same as the device identifier of the target distribution device, 2 -R minThis block is transmitted by a wireless signal. Therefore, according to the present disclosure, the number of transmissions of reception responses is reduced, so that when content distribution using erasure correction codes is performed in a multi-hop network, communication efficiency can be improved.

[0014] FIG. 1 is a diagram showing an example of the configuration of a content distribution system 90 according to the first embodiment. FIG. 2 is a diagram showing an example of the configuration of a data transmission apparatus 100 according to the first embodiment. FIG. 3 is a diagram showing an example of the configuration of a data receiving apparatus 200 according to the first embodiment. FIG. 4 is a flowchart showing the operation of the data transmission apparatus 100 according to the first embodiment. FIG. 5 is a diagram explaining the format of an encoded block 132 or a redundant data block 133 according to the first embodiment. FIG. 6 is a diagram explaining the format of a reception response according to the first embodiment. FIG. 7 is a flowchart showing the operation of the data receiving apparatus 200 according to the first embodiment. FIG. 8 is a diagram showing an example of the hardware configuration of the data transmission apparatus 100 according to a modification of the first embodiment. FIG. 9 is a diagram showing an example of the configuration of a data receiving apparatus 200B according to the second embodiment. FIG. 10 is a flowchart showing the operation of the data receiving apparatus 200B according to the second embodiment. FIG. 11 is a diagram showing an example of the configuration of a data receiving apparatus 200C according to the third embodiment. FIG. 12 is a flowchart showing the operation of the data receiving apparatus 200C according to the third embodiment. FIG. 13 is a flowchart showing the operation of the data receiving apparatus 200C according to the third embodiment. FIG. 14 is a diagram explaining the format of a reception response according to the fourth embodiment. 10A is a flowchart showing the operation of the data transmitting apparatus 100 according to embodiment 5. FIG. 11 is a diagram showing an example of the configuration of a data transmitting apparatus 100B according to embodiment 6. FIG. 12 is a diagram showing an example of the configuration of a data receiving apparatus 200D according to embodiment 6. FIG. 13 is a flowchart showing the operation of the data transmitting apparatus 100B according to embodiment 6. FIG. 14 is a diagram explaining a procedure for generating additional transmission data according to embodiment 6, where (a) is a table showing the reception status of the coded blocks 132, (b) is a table showing the selected coded blocks 132, and (c) is a table showing the selected coded blocks 132. FIG. 15 is a diagram explaining the format of additional transmission data according to embodiment 6.

[0015] In the description of the embodiments and the drawings, the same elements and corresponding elements are given the same reference numerals. The description of elements given the same reference numerals will be omitted or simplified as appropriate. Arrows in the drawings mainly indicate the flow of data or the flow of processing. Furthermore, "unit" may be read as "circuit," "step," "procedure," "process," or "circuitry" as appropriate.

[0016] First Embodiment Hereinafter, the present embodiment will be described in detail with reference to the drawings.

[0017] *** Description of Configuration *** FIG. 1 is a diagram showing an example of the configuration of a content distribution system 90. The content distribution system 90 includes one data transmission device 100 and multiple data receiving devices 200. The data transmission device 100 and the data receiving devices 200 are collectively referred to as content distribution devices. The data transmission device 100 is also referred to as a distribution data transmission device. The data receiving devices 200 are also referred to as a distribution data receiving terminal. The content distribution system 90 includes multiple content distribution devices, each of which distributes content data via wireless communication. One or more of the content distribution devices included in the content distribution system 90 may not distribute content data. The data transmission device 100 is wirelessly connected to multiple data receiving devices 200. Each data receiving device 200 may be wirelessly connected to one or more data receiving devices 200.

[0018] 2 is a diagram showing an example of the configuration of a data transmission device 100 according to this embodiment. The data transmission device 100 is a computer including hardware such as a processor 11, a storage device 13, a wireless module 12, and an antenna 14. The processor 11 is connected to other hardware via signal lines and controls this hardware. The data transmission device 100 also includes, as functional components, an encoding processing unit 111, an additional transmission determination unit 112, a transmission unit 121, a reception unit 122, and a storage unit 130.

[0019] The processor 11 is an integrated circuit (IC) that executes processing. A specific example of the processor 11 is a central processing unit (CPU).

[0020] The storage device 13 comprises an auxiliary storage device and a memory. The auxiliary storage device is specifically a ROM (Read Only Memory), a flash memory, or an HDD (Hard Disk Drive). A specific example of the memory is a RAM (Random Access Memory). The storage unit 130 is implemented by the storage device 13. The storage unit 130 is typically implemented by a memory, but may be implemented by both an auxiliary storage device and a memory. The storage device 13 also stores a content distribution program. The content distribution program is a program that causes a computer to realize the functions of each unit of the content distribution device. The content distribution program is executed by the processor 11. The functions of each unit of the content distribution device are realized by software. Data used when executing the content distribution program and data obtained by executing the content distribution program are stored in the storage device 13 as appropriate. Each unit of the content distribution device uses the storage device 13 as appropriate. The content distribution program may be recorded on a computer-readable non-volatile recording medium. Specific examples of the non-volatile recording medium include an optical disk and a flash memory. The content distribution program may be provided as a program product.

[0021] The wireless module 12 transmits and receives wireless signals via an antenna 14 .

[0022] The encoding processing unit 111 generates a redundant data block 133 by performing erasure correction coding on the encoded block 132. As a specific example, the encoding processing unit 111 encodes the target content data, which is content data, into K 1 K coding blocks 132 1By performing erasure correction coding on the coded blocks 132, M redundant data blocks 133 are generated. The coding processing unit 111 of the target distribution device may use decoded content data, which will be described later, as the target content data. 1 and M are each positive integers.

[0023] The additional transmission determination unit 112 determines whether or not each block is to be additionally transmitted.

[0024] The transmitter 121 transmits a wireless signal to the other content distribution device. As a specific example, the transmitter 121 of the target distribution device transmits a wireless signal to the other content distribution device. 1 K selected from the coding blocks and M redundant data blocks 2 The target distribution device is a content distribution device of a plurality of content distribution devices. If the destination identifier indicated in the reception response received by the target distribution device is the same as the device identifier of the target distribution device, the transmitting unit 121 of the target distribution device transmits K 1 K blocks selected from among the coded blocks 132 and M redundant data blocks 133 that have not yet been transmitted 2 -R min blocks are transmitted by radio signal. min is the number of relatively small blocks among the number of successfully received blocks indicated by each reception response received by the target distribution device. min The number R of blocks received by the target distribution device from each content distribution device may be the smallest number of blocks among the numbers of blocks that were successfully received indicated by each reception response received by the target distribution device. After the reception response transmission timer expires, the transmission unit 121 of the target distribution device receives the number R of blocks received by the target distribution device from each content distribution device among the transmission source identifiers included in the transmission source information. n The relatively large number of received n The receiving device 100 transmits a reception response indicating the source identifier corresponding to the K as the destination identifier via wireless communication. 2 and R min and R n Each of and is a positive integer.

[0025] The receiver 122 receives wireless signals from other content distribution devices. As a specific example, the receiver 122 of the target distribution device receives a reception response from each of two or more content distribution devices other than the target distribution device. The reception response is information transmitted by each content distribution device, and includes information indicating a source identifier indicating the content distribution device that sent the reception response, a destination identifier indicating the content distribution device that is the destination of the reception response, whether each block was successfully received at the source, and the identifier of each block received by the source. The receiver 122 of the target distribution device also receives blocks from content distribution devices other than the target distribution device.

[0026] Storage unit 130 stores distribution data 131, coding block 132, redundant data block 133 and own terminal hop number 134.Distribution data 131 is the content data that is to be distributed.Coded block 132 is the data that indicates the block that is generated by dividing distribution data 131.Redundant data block 133 is the data that indicates the block that is generated by executing erasure correction coding on coding block 132.Own terminal hop number 134 is the hop number that corresponds to the content distribution device that stores own terminal hop number 134, and is the data that indicates the hop number from data transmitting device 100.

[0027] 3 is a diagram showing an example of the configuration of a data receiving device 200 according to this embodiment. The data receiving device 200 includes hardware such as a processor 21, a storage device 23, a wireless module 22, and an antenna 24. The data receiving device 200 also includes, as functional components, an encoding processing unit 211, an additional transmission determination unit 212, a decoding processing unit 213, a reception response unit 214, a transmitting unit 221, a receiving unit 222, and a storage unit 230.

[0028] The processor 21 is similar to the processor 11. The storage device 23 is similar to the storage device 13. The wireless module 22 is similar to the wireless module 12. The antenna 24 is similar to the antenna 14. The encoding processing unit 211 is similar to the encoding processing unit 111. The additional transmission determination unit 212 is similar to the additional transmission determination unit 112. The transmitting unit 221 is similar to the transmitting unit 121. The receiving unit 222 is similar to the receiving unit 122. The storage unit 230 is similar to the storage unit 130 except that it stores source information 235. The source information 235 is information regarding the source of the received blocks, and is information indicating the source identifier corresponding to each block received by the target distribution device.

[0029] The decoding processing unit 213 of the target distribution device decodes the content data as decoded content data using the block received by the target distribution device.

[0030] The reception response unit 214 manages the reception response and the reception response transmission timer. As a specific example, the reception response unit 214 extends the reception response transmission timer when the number of blocks indicated in the reception response received by the target distribution device as the target reception response is less than the number of blocks received by the target distribution device, and when the destination identifier indicated in the target reception response matches any of the sender identifiers corresponding to the blocks received by the target distribution device.

[0031] ***Explanation of Operation*** The operating procedures of each device included in content distribution system 90 correspond to a content distribution method. Also, the programs that realize the operations of each device included in content distribution system 90 correspond to content distribution programs.

[0032] 4 is a flowchart showing an example of the operation of the data transmission device 100. The operation of the data transmission device 100 will be described with reference to FIG.

[0033] (Step S301) First, the encoding processing unit 111 acquires the distribution data 131 from the storage unit 130 and converts the acquired distribution data 131 into K 1 Next, the encoding processing unit 111 divides the divided K encoding blocks 132. 1By carrying out erasure correction coding on the coding blocks 132, M redundant data blocks 133 are generated.Here, the value of M varies depending on the coding rate of the coding method used.For example, when the coding rate is 1 / 3, the value of M is K 1 The data size of the distribution data 131 acquired from the storage unit 130 is twice the value of K 1 The total data size of the distribution data 131 stored in the storage unit 130 is greater than the data size of the distribution data 131 that the encoding processing unit 111 can acquire, the data transmitting device 100 repeatedly executes the process of this flowchart until all of the distribution data 131 stored in the storage unit 130 has been distributed.

[0034] (Step S302) The encoding processing unit 111 encodes the K generated in step S301. 1 The coded blocks 132 and M redundant data blocks 133 are stored in the storage unit 130. At this time, in the storage unit 130, information indicating that each coded block 132 and each redundant data block 133 has not yet been transmitted is associated with each other. The total number of data in the coded blocks 132 and the redundant data blocks 133 is K 1 +M.

[0035] (Step S303) First, the encoding processing unit 111 selects K from the encoded blocks 132 and redundant data blocks 133 stored in step S302. 2 Select K blocks and 2 In order to transmit the selected K blocks as a wireless signal, 2 The transmitting unit 121 then notifies the notified K blocks. 2 The blocks are transmitted as radio signals. Here, the block is a general term for the coded block 132 and the redundant data block 133. 2 The value of K 1 is greater than or equal to the value of M and less than or equal to the value of K. 2These blocks may consist of only the coded blocks 132 or only the redundant data blocks 133. Next, the coding processing unit 111 stores the selected K 2 In addition, when the number of reception errors is small, K 2 The value of K 1 By bringing the value closer to , the number of unnecessary blocks transmitted can be reduced.

[0036] FIG. 5 shows an example of a transmission format of a block transmitted by the transmitting unit 121. As shown in FIG. 5, the transmission format of a block includes a transmission source identifier, a hop count, a coding number, a block number, and a data sequence of the coding block 132 or the redundant data block 133. The transmission source identifier is information indicating the identifier of the device transmitting the data, and specifically, information indicating an IP (Internet Protocol) address or a MAC (Media Access Control) address. The hop count is information indicating how many hops away from the data transmitting device 100 the device transmitting the data is. The hop count is set to a value stored in the storage unit 130 as the local terminal hop count 134. Note that the hop count in the data transmitting device 100 is 0. The coding number is a serial number of the coding process executed in step S301. The block number is a serial number of each block. Specifically, the block number of each coding block 132 is 0 to K. 1 The value is equal to or less than −1, and the block number of each redundant data block 133 is K 1 More than K 1 The value is +M-1 or less.

[0037] (Step S304) The additional transmission determining unit 112 acquires from the receiving unit 122 the receipt response sent by the data receiving device 200 and addressed to the data transmitting device 100.

[0038] FIG. 6 shows an example of the format of a reception response. As shown in FIG. 6, the reception response format includes a sender identifier, a destination identifier, a coding number, and a decoding status. The reception response transmission process of the data receiving device 200 will be described later with reference to FIGS. 7 and 8. The destination identifier is information indicating the destination of the reception response. The decoding status is information indicating whether the decoding process corresponding to the coding number was successful. If the decoding status indicates a decoding failure, the reception response includes a received block bitmap. The received block bitmap is information indicating, in bitmap form, whether each block has been received or not. The received block bitmap also indicates whether each block has been successfully received at the sender of the reception response including the received block bitmap, and the identifier of each block received by the sender. If unsent distribution data 131 remains in the storage unit 130, the data transmitting device 100 may execute the process of this flowchart in parallel to transmit the remaining distribution data 131 without waiting for the reception of a reception response from the data receiving device 200 in step S304. Alternatively, the data transmitting device 100 may set a timeout period and wait for a reception response until the set timeout period has elapsed. If the device identifiers of the data receiving devices 200 present in the vicinity of the data transmitting device 100 are known in advance, the data transmitting device 100 may wait until it receives a reception response from all of the data receiving devices 200 present in the vicinity.

[0039] (Step S305) If all of the reception responses received by the receiving unit 122 from the data receiving device 200 indicate successful decoding, the data transmitting device 100 ends the transmission of the distribution data 131. If there is any distribution data 131 remaining that has not been distributed, the data transmitting device 100 repeatedly executes the processing of this flowchart for the remaining distribution data 131. If one or more of the reception responses received by the receiving unit 122 from the data receiving device 200 indicate failed decoding, the data transmitting device 100 proceeds to step S306. The processing from step S306 onwards is targeted at the data receiving device 200 corresponding to the reception response indicating failed decoding.

[0040] (Step S306) The additional transmission determination unit 112 calculates the minimum value R of the number of received blocks from the received block bitmap indicated by the reception response. min Furthermore, the additional transmission determination unit 112 acquires the numbers of the blocks that have not been received by the data receiving device 200 that has failed to decode the blocks.

[0041] (Step S307) The additional transmission determination unit 112 determines whether the number of blocks among the coded blocks 132 and redundant data blocks 133 that have not been notified to the transmission unit 121 in steps S303, S308, and S310, i.e., the number of blocks that remain associated with information indicating untransmitted blocks in the storage unit 130, is K 2 -R min Check whether the number of unsent blocks is equal to or greater than K. 2 -R min If so, the data transmitting device 100 proceeds to step S308, otherwise the data transmitting device 100 proceeds to step S309.

[0042] (Step S308) The additional transmission determination unit 112 selects K blocks from the untransmitted blocks. 2 -R min Select K blocks and 2 -R min The transmitting unit 121 notifies the notified K blocks. 2 -R min The additional transmission determination unit 112 also stores the selected K blocks in the storage unit 130 and transmits them as a wireless signal. 2 -R min Information indicating that each block has been sent is associated with each block.

[0043] (Step S309) First, the additional transmission determination unit 112 notifies the transmitting unit 121 of all blocks that have not yet been transmitted. The transmitting unit 121 transmits the notified blocks as wireless signals. Next, the additional transmission determination unit 112 associates, in the storage unit 130, information indicating that each block notified in this step has been transmitted. Note that if there are no blocks that have not yet been transmitted, the additional transmission determination unit 112 does not notify the transmitting unit 121 of any blocks.

[0044] (Step S310) The additional transmission determination unit 112 refers to the reception block bitmap indicated in the reception response received from each data reception device 200, and 2 and the number of received blocks R of each data receiving device 200 n The difference between 2 -R n and the number of blocks T transmitted in step S309, K 2 -R n -T blocks are selected from the blocks that have not been received by each data receiving device 200, excluding the blocks that have been transmitted in step S309, and the selected K 2 -R n The transmitter 121 notifies the notified K blocks. 2 -R n -T blocks are transmitted as wireless signals. Note that the blocks to be transmitted in step S310 are already associated in the storage unit 130 with information indicating that they have been transmitted in step S303 or step S308. Therefore, in step S310, it is not necessary to associate information indicating that they have been transmitted with each block in the storage unit 130. Note that the additional transmission determination unit 112 preferentially selects blocks for which a relatively large number of data receiving devices 200 have not yet received the blocks, thereby reducing the number of transmitted blocks and improving efficiency. T is a positive integer.

[0045] After executing step S308 or step S310, the additional transmission determination unit 112 again acquires the reception responses transmitted by each data receiving device 200 in step S304, and checks in step S305 whether decoding has been successful for all data receiving devices 200. Thereafter, if the decoding process has been successful for all data receiving devices 200, the data transmitting device 100 ends the processing of this flowchart.

[0046] 7 and 8 are flowcharts showing an example of the operation of the data receiving device 200. The operation of the data receiving device 200 will be described with reference to Fig. 7 and Fig. 8. Note that this flowchart will be described assuming that the target receiving device, which is the data receiving device 200, executes the processing of this flowchart. In the description of this flowchart, each part of the data receiving device 200 refers to each part of the target receiving device.

[0047] (Step S601) The decoding processing unit 213 waits until the receiving unit 222 receives a wireless signal or until the reception response transmission timer expires. If the receiving unit 222 receives a wireless signal, the target receiving device proceeds to step S602. If the reception response transmission timer expires, the target receiving device proceeds to step S612. Hereinafter, the wireless signal received in this step is referred to as the received signal.

[0048] (Step S602) The decoding processing unit 213 determines the type of the received signal. If the type of the received signal is the coded block 132 or the redundant data block 133, the target receiving device proceeds to step S603. Otherwise, the target receiving device proceeds to step S613.

[0049] (Step S603) If the value obtained by adding 1 to the number of hops indicated by the received signal is smaller than the value stored in the memory unit 230 as the number of hops at the local terminal 134, or if no value is stored as the number of hops at the local terminal 134, the decoding processing unit 213 updates the number of hops at the local terminal 134 to the value obtained by adding 1 to the number of hops indicated by the received block.

[0050] (Step S604) The decoding processing unit 213 stores information indicating the source identifier, the number of hops, and the block number indicated by the received signal in the source information 235 in the storage unit 230.

[0051] (Step S605) If the block indicated by the received signal is not stored in the memory unit 230, the decoding processing unit 213 stores the block indicated by the received signal in the memory unit 230 and also notifies the reception response unit 214 that a new block has been received.

[0052] (Step S606) The reception response unit 214 starts the reception response transmission timer. At this time, the reception response unit 214 sets the expiration time of the reception response transmission timer to time T 1 From time T 2 If the reception response transmission timer has already started, the reception response unit 214 stops the reception response transmission timer that has already started and starts a new reception response transmission timer only if the selected expiration time is later than the expiration time of the reception response transmission timer that has already started. Here, as shown in each of [Equation 1] and [Equation 2], the total number of received blocks R n The more T 1 and T 2 By setting the time for each of [Equation 1] and [Equation 2] to be long, the transmission of the reception response can be delayed. 1b is T 1 indicates the reference time, and T 2b is T 2 The reference time is shown as α, β and T 1b and T 2b The values ​​of and are set as parameters in the target receiving device.

[0053]

[0054] (Step S607) If a new block has been stored in step S605 and the minimum number of blocks required for the decoding process have been stored in the storage unit 230, the target receiving device proceeds to step S608. If a new block has not been stored in step S605 or the minimum number of blocks required for the decoding process have not been stored in the storage unit 230, the target receiving device returns to step S601.

[0055] (Step S608) The decoding processing unit 213 executes the decoding process using the blocks stored in the storage unit 230. If the decoding process is successful, the decoding processing unit 213 stores the decoded K 1 The coded blocks 132 are stored in the storage unit 230 as the coded blocks 132 and the distribution data 131 .

[0056] (Step S609) The decoding processing unit 213 notifies the reception response unit 214 of the decoding result in step S608. If the notified decoding result indicates a decoding failure, the target receiving device returns to step S601. If the notified decoding result indicates a decoding success, the target receiving device proceeds to step S610.

[0057] (Step S610) The reception response unit 214 creates a reception response indicating successful decoding and notifies the created reception response to the transmission unit 221. At this time, the reception response unit 214 may set the destination identifier of the reception response to a device identifier indicating all other devices in order to transmit by multicast. Furthermore, the reception response unit 214 may set the transmission source identifier stored in the transmission source information 235 in order to transmit by unicast to the device set in the destination identifier. In this step, the transmitting unit 221 does not need to immediately transmit the reception response, and when this embodiment is applied to a network that uses RPL (Internet Protocol version 6 (IPv6) Routing Protocol for Low-Power and Lossy Networks), the reception response may be transmitted by superimposing it on an option area of ​​a DIO (DODAG Information Object) or a DAO (Destination Advertisement Object).

[0058] (Step S611) The target receiving device can distribute distribution data 131 to the next-hop data receiving device 200 by performing the same operation as that of data transmitting device 100, that is, the same operation as that shown in Fig. 4, using the distribution data 131 saved in step S608. Note that if the target receiving device does not receive any reception response addressed to the target receiving device in step S304, it may assume that the next-hop data receiving device 200 does not exist and stop distribution to the next-hop data receiving device 200.

[0059] (Step S612) If the reception response transmission timer expires in step S601, the reception response unit 214 creates a reception response indicating a decoding failure based on the reception status of the block stored in the storage unit 230, and notifies the transmission unit 221 of the created reception response. At this time, the reception response unit 214 selects one transmission source identifier corresponding to a number of hops smaller than the number of hops stored as the local terminal hop count 134 from among the transmission source identifiers stored in the transmission source information 235 in the storage unit 230, and sets the selected transmission source identifier as the destination identifier of the reception response. Note that if there is no transmission source identifier corresponding to a number of hops smaller than the number of hops stored as the local terminal hop count 134 from among the transmission source identifiers stored in the transmission source information 235, the reception response unit 214 may select a transmission source identifier corresponding to a number of hops larger than the number of hops stored as the local terminal hop count 134. The transmission unit 221 transmits the notified reception response as a wireless signal.

[0060] Here, by setting the destination identifier of the reception response to the source identifier corresponding to the data receiving device 200 from which the target receiving device has received the most blocks, among the data receiving devices 200 that are the senders of the blocks received by the target receiving device, the target receiving device can receive additionally transmitted blocks more stably. The reception response is transmitted by multicast so that other data receiving devices 200 can also receive it. However, even if the reception response is transmitted by unicast, if a data receiving device 200 other than the data receiving device 200 corresponding to the destination identifier can receive the reception response, the transmitter 221 may transmit the reception response by unicast to the data receiving device 200 set in the destination identifier of the reception response. After transmitting the reception response, the target receiving device returns to step S601.

[0061] (Step S613) When the type of the received signal is a reception response, if the reception response indicated by the received signal indicates unsuccessful reception and if the number of received blocks is less than the total number of blocks stored in the memory unit 230, the target receiving device proceeds to step S614. If the reception response indicated by the received signal indicates successful reception or if the number of received blocks is equal to or greater than the total number of blocks stored in the memory unit 230, the target receiving device returns to step S601.

[0062] (Step S614) If the destination identifier indicated in the reception response matches the source identifier stored in the source information 235, the target receiving device proceeds to step S615. Otherwise, the target receiving device returns to step S601.

[0063] (Step S615) If a reception response transmission timer has already started, the reception response unit 214 extends the expiration time of the reception response transmission timer. The extended time may be longer than the time until an additional block is transmitted after the destination terminal receives the reception response indicated by the reception signal. Here, the time until the additional block is transmitted corresponds to the processing time.

[0064] ***Description of the effect of embodiment 1*** According to this embodiment, as mentioned above, when using erasure correction coding in multi-hop network, when the content distribution is carried out, each data receiving device 200 only sends receiving response when certain condition is met.Therefore, according to this embodiment, the number of sending receiving response is reduced, so can improve communication efficiency.

[0065] ***Other Configurations*** <Modification 1> Fig. 9 shows an example of the hardware configuration of the data transmission device 100 according to this modification. The data transmission device 100 includes a processing circuit 18 instead of the processor 11, or instead of the processor 11 and the storage device 13. The processing circuit 18 is hardware that realizes at least a part of the components included in the data transmission device 100. The processing circuit 18 may be dedicated hardware, or may be a processor that executes a program stored in the storage device 13.

[0066] When the processing circuit 18 is dedicated hardware, the processing circuit 18 may be, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a combination thereof. The data transmission device 100 may include multiple processing circuits that replace the processing circuit 18. The multiple processing circuits share the role of the processing circuit 18.

[0067] In the data transmission device 100, some of the functions may be realized by dedicated hardware, and the remaining functions may be realized by software or firmware.

[0068] The processing circuit 18 is realized by, for example, hardware, software, firmware, or a combination of these. The processor 11, the storage device 13, and the processing circuit 18 are collectively referred to as "processing circuitry." In other words, the functions of each functional component of the data transmitting device 100 are realized by the processing circuitry. The data receiving device 200 may also have a configuration similar to that of this modified example. The data transmitting device 100 and the data receiving device 200 according to other embodiments may also have a configuration similar to that of this modified example.

[0069] Second Embodiment The following mainly describes the differences from the first embodiment with reference to the drawings.

[0070] ***Description of Configuration*** A content distribution system 90 according to this embodiment includes a plurality of data receiving devices 200B instead of a plurality of data receiving devices 200. A data transmitting device 100 according to this embodiment is the same as the data transmitting device 100 according to the first embodiment.

[0071] FIG. 10 is a diagram showing an example of the configuration of a data receiving device 200B according to this embodiment. The hardware configuration of the data receiving device 200B is similar to the hardware configuration of the data receiving device 200. The data receiving device 200B includes a receiving response unit 214B instead of the receiving response unit 214 as a functional component. The receiving response unit 214B has the function of generating destination information 236 in addition to the function of the receiving response unit 214. The storage unit 230 according to this embodiment further stores the destination information 236. The destination information 236 is information indicating the destination identifier indicated in the receiving response received by the data receiving device 200B, and is information indicating the destination identifier indicated in each receiving response received by the target distribution device for each content distribution device that is the sender of the receiving response received by the target distribution device.

[0072] In this embodiment, the transmitting unit 221 of the target distribution device transmits a reception response indicating the target identifier as a destination identifier after the reception response transmission timer expires. The target identifier is the number R of received blocks received by the target distribution device from each content distribution device among the source identifiers included in the source information 235. n is the threshold R th The device identifier is selected from among the sender identifiers corresponding to content distribution devices larger than 1, and is a device identifier that is set as the destination identifier of each reception response received by the target distribution device by a relatively large number of content distribution devices among the destination identifiers indicated by the destination information 236.

[0073] ***Explanation of Operation*** Figures 11 and 12 are flowcharts showing an example of the operation of data receiving device 200B. The differences between the operation of data receiving device 200 and the operation of data receiving device 200B are that step S801 has been added and that step S612 has been changed to step S612B. Since the steps other than those relating to the differences are the same as described above, only the steps relating to the differences will be explained. Note that this flowchart will be explained assuming that the target receiving device, which is data receiving device 200B, executes the processing of this flowchart.

[0074] (Step S801) If the type of the received signal is a reception response, the reception response unit 214B stores the destination identifiers indicated in the reception response indicated by the received signal in the destination information 236 for each sender identifier indicated in the reception response in the storage unit 230. Thereafter, the target receiving device proceeds to step S613.

[0075] (Step S612B) The reception response unit 214B creates a reception response indicating a decoding failure based on the reception status of the block stored in the storage unit 230. At this time, the reception response unit 214B selects, as elements of a selected identifier group, from the destination identifiers stored in the destination information 236, device identifiers that are the same as each source identifier stored in the source information 235 and that correspond to a hop count smaller than the own terminal hop count 134. The reception response unit 214B refers to the destination information 236 and selects, as a target identifier, from the device identifiers included in the selected identifier group, the device identifier that has been set as the destination identifier of the reception response by the largest number of data receiving devices 200B, and sets the selected target identifier as the destination identifier of the reception response. Note that if there is no destination identifier corresponding to a hop count smaller than the own terminal hop count 134 among the destination identifiers stored in the destination information 236, the reception response unit 214B performs processing similar to step S612. Here, the hop count corresponding to the destination identifier is the hop count stored in the source information 235.

[0076] Here, the reception response unit 214B receives the total number R of blocks that the target reception device has received from each data reception device 200B. n In this case, as a specific example, the reception response unit 214B first refers to the transmission source information 235 and selects the target identifier by taking into consideration the total number R of blocks received by the target receiving device from the data receiving device 200B corresponding to the target identifier. n is the threshold R th1 Check whether it is less than the threshold R th1 Next, the reception response unit 214B calculates the total number R n is the threshold R th1, the reception response unit 214B selects, as the second target identifier, the device identifier that is set as the device identifier of the reception response by the data receiving device 200B that is the next most numerous after the target identifier, from among the device identifiers included in the selected identifier group. Thereafter, the reception response unit 214B refers to the transmission source information 235 and calculates the total number R of blocks that the target receiving device has received from the data receiving device 200B that corresponds to the second target identifier. n2 The reception response unit 214B confirms the confirmed total number R n2 is the threshold R th1 If the total number R is equal to or greater than the total number R, the receiving response unit 214B sets the second target identifier as the destination identifier of the receiving response. n2 is the threshold R th1 If the total number of blocks received by the target receiving device from the data receiving device 200B corresponding to each destination identifier stored in the destination information 236 is less than the threshold value R, the reception response unit 214B executes the above-described process. th1 If the total number of blocks received by the target receiving device is less than the number of blocks received by the target receiving device, the target receiving device sets the device identifier corresponding to the data receiving device 200B, which has the largest total number of blocks received, as the destination identifier of the receipt response. After transmitting the receipt response, the target receiving device returns to step S601.

[0077] ***Explanation of Effect of Second Embodiment*** In this embodiment, as described above, in a plurality of data receiving devices 200B, the device identifiers of the data receiving devices 200B that correspond to the device identifiers set as the destination identifiers of the reception responses by more data receiving devices 200B are set, thereby consolidating the data receiving devices 200 that transmit blocks. Therefore, according to this embodiment, it is possible to further improve distribution efficiency.

[0078] Third Embodiment The following mainly describes the differences from the second embodiment with reference to the drawings.

[0079] *** Description of Configuration *** A content distribution system 90 according to this embodiment includes a plurality of data receiving devices 200C instead of a plurality of data receiving devices 200B. A data transmitting device 100 according to this embodiment is similar to the data transmitting device 100 according to the first embodiment.

[0080] FIG. 13 is a diagram showing an example of the configuration of a data receiving device 200C according to this embodiment. The hardware configuration of the data receiving device 200C is similar to the hardware configuration of the data receiving device 200B. The data receiving device 200C includes a reception response unit 214C instead of the reception response unit 214B as a functional component. The reception response unit 214C has the function of generating reception power information 237 in addition to the function of the reception response unit 214B. The storage unit 230 according to this embodiment further stores the reception power information 237. The reception power information 237 is information indicating the reception power corresponding to blocks received by the data receiving device 200C for each block transmission source, and is information indicating the reception power corresponding to each block received by the target distribution device.

[0081] ***Explanation of Operation*** Figures 14 and 15 are flowcharts showing an example of the operation of data receiving device 200C. The differences between the operation of data receiving device 200B and the operation of data receiving device 200C are that step S901 has been added and that step S612B has been changed to step S612C. Since the steps other than those relating to the differences are the same as described above, only the steps relating to the differences will be explained. Note that this flowchart will be explained assuming that the target receiving device, which is data receiving device 200C, executes the processing of this flowchart.

[0082] (Step S901) If the type of the received signal is the coded block 132 or the redundant data block 133, the reception response unit 214C stores the received power of the received signal in the received power information 237 in the storage unit 230 for each transmission source identifier corresponding to the block indicated by the received signal. At this time, the reception response unit 214C stores the average, median, and minimum values ​​of the received power for each transmission source identifier in the received power information 237. Thereafter, the target receiving device proceeds to step S603.

[0083] (Step S612C) The reception response unit 214C sets the target identifier as the destination identifier of the reception response, as in step S612B. Note that if there is no destination identifier corresponding to a hop count smaller than the local terminal hop count 134 among the destination identifiers stored in the destination information 236, the reception response unit 214C executes the same process as in step S612.

[0084] Here, the reception response unit 214C receives the total number R of blocks received from each data receiving device 200C. n and the reception power corresponding to the received block. In this case, as a specific example, the reception response unit 214C first refers to the transmission source information 235 and selects the target identifier by calculating the total number R of blocks received by the target receiving device from the data receiving device 200C corresponding to the target identifier. n is the threshold R th2 Furthermore, the reception response unit 214C checks whether the average, median, or minimum value of the reception power corresponding to the data reception device 200C corresponding to the target identifier is less than the threshold value P th Check whether it is smaller than the threshold P th and threshold R th2 The threshold values ​​R and R may be determined in any way. th2 is the threshold R th1 Next, the reception response unit 214C calculates the total number R n is the threshold R th2 or if the average, median, or minimum value of the received power is less than the threshold P th , the reception response unit 214C selects, as the second target identifier, the device identifier that has been set as the device identifier of the reception response by the data receiving device 200B that is the next most numerous after the target identifier, from among the device identifiers included in the selected identifier group. n The reception response unit 214C checks the total number R n is the threshold R th2 or if the average, median, or minimum value of the confirmed received power is less than the threshold P th, the above-mentioned process is executed with the second target identifier as the target identifier. Note that, if the total number of blocks and the reception power corresponding to the data receiving device 200C corresponding to each destination identifier stored in the destination information 236 are all smaller than a predetermined threshold, the reception response unit 214C sets the device identifier corresponding to the data receiving device 200C with the largest total number of blocks received by the target receiving device as the destination identifier of the reception response. After transmitting the reception response, the data receiving device 200C returns to step S601. Note that, in this embodiment, the target identifier is set when the reception power corresponding to the corresponding block is smaller than the threshold P th This is a device identifier selected from the above-mentioned sender identifiers.

[0085] ***Explanation of Effects of Third Embodiment*** In this embodiment, as described above, in a plurality of data receiving devices 200C, device identifiers are set as destination identifiers of reception responses, which are device identifiers of data receiving devices 200C that correspond to device identifiers set as destination identifiers of reception responses by a greater number of data receiving devices 200C, and which are selected taking into consideration the relative strength of the reception power of blocks in each data receiving device 200C. Therefore, according to this embodiment, it is possible to improve distribution efficiency through stable communication while aggregating data receiving devices 200C that transmit blocks.

[0086] Fourth Embodiment Hereinafter, differences from the above-described embodiments will be mainly described with reference to the drawings.

[0087] *** Description of Configuration *** The configuration of content distribution system 90 according to this embodiment is the same as the configuration shown in any one of Embodiments 1 to 3. In this embodiment, the format of the reception response when decoding fails differs from that of Embodiments 1 to 3.

[0088] 16 shows the format of a reception response transmitted by data receiving device 200 according to this embodiment when decoding fails. In this embodiment, when decoding fails, in addition to the reception response formats in embodiments 1 to 3, a format is used in which the reception block bitmap portion of the reception response is replaced with the number of received blocks. Note that the format of the reception response when decoding is successful is the same as the reception response formats in embodiments 1 to 3.

[0089] In this embodiment, when the data receiving device 200 receives a block corresponding to a new coding number and the decoding process corresponding to the received block fails, the format of the reception response when decoding fails shown in Figure 16 is used for the coding number corresponding to the received block.

[0090] In this embodiment, until the target distribution device receives the last block that is transmitted among the blocks corresponding to the second target content data that is content data, or until the target distribution device receives a new block, the transmitting unit 221 of the target distribution device transmits a receiving response that indicates the total number of blocks that the target distribution device has received, instead of the success or failure of receiving each block at the transmitting source and the identifier of each block that the transmitting source has received, as the receiving response corresponding to the second target content data.New block is a block that is generated at a time different from the time when the received block is generated, and is generated by executing erasure correction coding on the second target content data.Received block is a block that corresponds to the second target content data, and is the block that the target distribution device has already received.As a specific example, new block is a block that indicates a coding number that is different from the coding number that the received block indicates.

[0091] ***Description of Operation*** In this embodiment, in step S605, the block number of the received block is confirmed, and if the confirmed block number is the block number last transmitted from data transmission device 100, the reception response format in embodiments 1 to 3 is used for the encoding number corresponding to the received block. Also, if the decoding process for distribution data 131 corresponding to a number earlier than the encoding number of the received block is not successful, the reception response format in embodiments 1 to 3 is used for each block corresponding to a number earlier than the received encoding number. In cases other than the above, the reception response format shown in Fig. 16 is used when decoding fails.

[0092] ***Explanation of the Effects of the Fourth Embodiment*** In this embodiment, as described above, the format of the reception response in the event of a decoding failure is changed until data transmission device 100 has finished transmitting all blocks corresponding to distribution data 131 corresponding to a certain encoding number. Therefore, according to this embodiment, it is possible to reduce the communication volume of reception responses and improve distribution efficiency.

[0093] Fifth Embodiment Hereinafter, differences from the above-described embodiments will be mainly described with reference to the drawings.

[0094] *** Description of Configuration *** The configuration of the content distribution system 90 according to this embodiment is the same as the configuration of the content distribution system 90 shown in any one of the first to fourth embodiments. In this embodiment, the method of selecting the coded block 132 and the redundant data block 133 to be transmitted by the additional transmission determination unit is different from that in the first to fourth embodiments. Specifically, the additional transmission determination unit selects K 1 Among the coded blocks 132 and the M redundant data blocks 133, K untransmitted blocks are randomly selected. 2 -R min Select the blocks.

[0095] The formats of the coded block 132, the redundant data block 133, the reception response when decoding is successful, and the reception response when decoding is unsuccessful are the same as those shown in the first to fourth embodiments.

[0096] ***Description of Operation*** Figure 17 is a flowchart showing an example of distribution data processing by data transmitting device 100. Note that the process of transmitting distribution data by data receiving device 200 to the next-hop data receiving device 200 is the same as the distribution data processing. That is, the operation of additional transmission determination unit 212 is the same as the operation of additional transmission determination unit 112. The differences between Figure 17 and Figure 4 are steps S308B and S310B.

[0097] (Step S308B) Step S308B is the same as step S308. However, the additional transmission determination unit 112 2 -R min When selecting blocks, K 2 -R min Randomly select blocks.

[0098] (Step S310B) Step S310B is the same as step S310. However, the additional transmission determination unit 112 2 -R n When selecting the T blocks, 2 -R n - Select T blocks randomly.

[0099] In selecting random blocks in steps S308B and S310B, a hardware random number generator may be used to generate different random numbers for each data transmitting device 100 and each data receiving device 200, or random numbers generated using the device identifiers of the data transmitting device 100 and each data receiving device 200 as seeds may be used.

[0100] ***Explanation of Effect of Embodiment 5*** In this embodiment, as described above, the data transmitting device 100 and each of the multiple data receiving devices 200 randomly select a block to additionally transmit after receiving a reception response indicating decoding failure. This reduces the probability that a data receiving device 200 receiving an additional block transmitted from the data transmitting device 100 or multiple data receiving devices 200 will receive the same block. Therefore, according to this embodiment, it is possible to improve the probability of successful decoding.

[0101] Sixth Embodiment Hereinafter, differences from the above-described embodiments will be mainly described with reference to the drawings.

[0102] *** Description of Configuration *** Figure 18 shows an example of the configuration of a data transmission device 100B according to this embodiment. In data transmission device 100B, compared to the configuration of data transmission device 100 shown in any of Embodiments 1 to 3, redundant data block 133 is excluded from storage unit 130, and an initial transmission processing unit 119 is added to processor 11. Furthermore, data transmission device 100B includes an encoding processing unit 111B instead of encoding processing unit 111, and an additional transmission determination unit 112B instead of additional transmission determination unit 112.

[0103] The encoding processing unit 111B encodes the target content data into K 1 The encoding processing unit 111B divides the received data into coded blocks 132. The encoding processing unit 111B also encodes the multiple coded blocks 132 using a Fountain Code, particularly an LT (Luby Transform) Code, to encode the additional transmission data. If the destination identifier indicated in each reception response received by the target distribution device is the same as the device identifier of the target distribution device, the encoding processing unit 111B of the target distribution device encodes multiple blocks selected from the blocks that failed to be received and indicated in each reception response received by the target distribution device using a Fountain Code, and creates additional transmission data indicating the coded multiple blocks.

[0104] The additional transmission determination unit 112B transmits the additional transmission data generated by the encoding processing unit 111B as the additional transmission data. When the destination identifier indicated in each reception response received by the target distribution device is the same as the device identifier of the target distribution device, the additional transmission determination unit 112B selects, based on whether or not each block indicated in each reception response received by the target distribution device has been successfully received, a plurality of blocks from the blocks that have failed to be received, as the plurality of blocks to be encoded by the encoding processing unit 111B, so that the additional transmission data created can be decoded in any of the content distribution devices that failed to receive one or more blocks among the content distribution devices corresponding to each reception response received by the target distribution device.

[0105] The first transmission processing unit 119 executes the first transmission of the coded block 132 .

[0106] The transmitting unit 121 according to this embodiment is 1 The encoded blocks 132 are transmitted together with the transmission source identifier via a wireless signal. The transmitting unit 121 of the target distribution device transmits the generated additional transmission data via a wireless signal.

[0107] The receiving unit 122 of the target distribution device receives additional transmission data by wireless signal from the other content distribution device.

[0108] 19 shows an example of the configuration of a data receiving device 200D according to this embodiment. In the data receiving device 200D, compared to the configuration of the data receiving device shown in any one of embodiments 1 to 3, redundant data block 133 is excluded from memory unit 230, and an initial transmission processing unit 219 is added to processor 21. In addition, data receiving device 200D includes an encoding processing unit 211D as the encoding processing unit, an additional transmission determination unit 212D as the additional transmission determination unit, and a decoding processing unit 213D as the decoding processing unit. Note that while FIG. 19 shows changes from embodiment 1, similar changes may be applied to embodiments 2 and 3.

[0109] The encoding processing unit 211D is the same as the encoding processing unit 111B. The additional transmission determination unit 212D is the same as the additional transmission determination unit 112B. The first transmission processing unit 219 is the same as the first transmission processing unit 119.

[0110] The decoding processing unit 213D decodes the additional transmission data received from the peripheral data receiving device 200D using the Fountain Code. That is, the decoding processing unit 213D decodes, using the Fountain Code, the multiple coded blocks indicated by the additional transmission data received from the other content distribution device, thereby restoring the multiple blocks corresponding to the received additional transmission data.

[0111] *** Description of operation *** Figure 20 is a flow chart showing an example of distribution data processing by data transmitting device 100B according to this embodiment. Note that the distribution data transmission process by data receiving device 200D to next hop data receiving device 200D is the same as this distribution data processing. In this embodiment, different from embodiment 1 to 3, as erasure correction code, fountain code, especially LT code is used. Below, the process of data transmitting device 100B will be described, but data receiving device 200D also executes the same process. In this embodiment, compared with embodiment 1 to 3, the transmission process of distribution data and the transmission process of additional transmission data are different, but other processes are the same.

[0112] (Step S301B) The encoding processing unit 111B encodes the distribution data 131 into K 1 The distribution data 131 is divided into coded blocks 132. Each coded block 132 is simply a block generated by dividing the distribution data 131, and is not coded using the fountain code.

[0113] (Step S302B) The encoding processing unit 111B encodes the K generated in step S301B. 1 The coded blocks 132 are stored in the storage unit 130 .

[0114] (Step S303B) The initial transmission processing unit 119 transmits, as a radio signal, all of the coded blocks 132. The format of the data to be transmitted is the same as the transmission format of the coded blocks 132 shown in FIG.

[0115] (Step S304) This step is the same as step S304 according to the first to third embodiments. However, the additional transmission determination unit 112B acquires a reception response addressed to the data transmitting device 100B and transmitted by the data receiving device 200D from the receiving unit 122. The format of the reception response is the same as the formats described in the first to third embodiments.

[0116] (Step S305) This step is the same as step S305 in the first to third embodiments. However, if all of the reception responses received by the receiving unit 122 from the data receiving device 200D indicate successful decoding, the data transmitting device 100B ends the transmission of the distribution data 131. If there is any distribution data 131 remaining that has not been distributed, the data transmitting device 100B repeatedly executes the processing of this flowchart for the remaining distribution data 131. If one or more of the reception responses received by the receiving unit 122 from the data receiving device 200D indicate failed decoding, the data transmitting device 100B proceeds to step S306B. The processing from step S306B onwards is targeted at the data receiving device 200D corresponding to the reception response indicating failed decoding.

[0117] (Step S306B) The additional transmission determination unit 112B acquires the numbers of the coded blocks 132 that have not been received by each data reception device 200D and that correspond to the reception responses indicating decoding failure.

[0118] (Step S921) First, the additional transmission determination unit 112B selects, for additional transmission data, one coded block 132 that has not been received by any of the data receiving devices 200D corresponding to the reception response indicating a decoding failure. Then, the additional transmission determination unit 112B includes all of the one or more data receiving devices 200D that have not received the selected coded block 132 in the selected device list. The selected device list is an empty list at the start of this step. Next, the additional transmission determination unit 112B executes an additional selection process. In the additional selection process, first, if there is a coded block 132 that has not been received by a data receiving device 200D other than the data receiving device 200D included in the selected device list and has been received by all of the data receiving devices 200D included in the selected device list, the additional transmission determination unit 112B selects one coded block 132 for additional transmission data. Next, in the additional selection process, all of the one or more data receiving devices 200D that have not received the selected coded block 132 are included in the selected device list. The coding blocks 132 selected in the additional selection process correspond to the coding blocks used in the coding using the Fountain Code in step S923. Here, the coding processing unit 111B encodes the selected multiple coding blocks 132 by using the Fountain Code, particularly the LT Code, on the data string of the coding block 132 selected initially in step S923. Note that the coding process using the Fountain Code, particularly the LT Code, is an XOR operation of multiple data strings. Therefore, the length of the data string remains the same before and after the coding process.

[0119] Thereafter, the additional transmission determination unit 112B repeatedly executes the additional selection process until there are no more coding blocks 132 that can be selected in the additional selection process. Note that in step S921, coding blocks 132 that have already been selected for additional transmission data in at least one of steps S921 and S922 are excluded from the selection candidates. In this step, one or more K 1 No more than 132 coded blocks 132 are selected.

[0120] 21 shows an example of the reception status of the coded blocks 132 in each data receiving device 200D, the numbers of the coded blocks 132 for the additional transmission data selected in step S921, and the numbers of the coded blocks 132 for the additional transmission data selected in step S922. In (a) of FIG. 21, "1" indicates reception, and "0" indicates non-reception. In (b) and (c) of FIG. 21, "1" indicates a coded block 132 included in the additional transmission data, and "0" indicates a coded block 132 not included in the additional transmission data. In this example, the number of coded blocks 132 is seven, and the number of data receiving devices 200D is four. Furthermore, three pieces of additional transmission data were created by repeating the processes from step S921 to step S923 three times.

[0121] In the example shown in FIG. 21(b), with respect to the additional transmission data #1 first created in step S921, the additional transmission determination unit 112B first selects the coding block 132 with coding block number 1 for the additional transmission data as the coding block 132 that has not been received by any of the data receiving devices 200D corresponding to the reception response indicating decoding failure. Thereafter, the additional transmission determination unit 112B includes only the data receiving device 200D with terminal identifier 3 in the selected device list, since only this data receiving device 200D has not received this coding block 132. Next, the additional transmission determination unit 112B executes an additional selection process. Specifically, the additional transmission determination unit 112B selects the coding block 132 with coding block number 2 for the additional transmission data as the coding block 132 that has not been received by a data receiving device 200D other than the data receiving device 200D included in the selected device list and has been received by all of the data receiving devices 200D included in the selected device list. Thereafter, the additional transmission determination unit 112B includes only the data receiving device 200D with a terminal identifier of 1 in the selected device list, because only the data receiving device 200D has not received the encoded block 132. Next, the additional transmission determination unit 112B executes an additional selection process. Specifically, the additional transmission determination unit 112B selects the encoded block 132 with the encoded block number 3 for additional transmission data as the encoded block 132 that has not been received by a data receiving device 200D other than the data receiving device 200D included in the selected device list and has been received by all data receiving devices 200D included in the selected device list. Thereafter, the additional transmission determination unit 112B includes the data receiving devices 200D with terminal identifiers 2 and 3 in the selected device list, because these two data receiving devices 200D have not received the encoded block 132. Next, the additional transmission determination unit 112B terminates the additional selection process, because there are no encoded blocks 132 that can be selected in the additional selection process. As a result, for additional transmission data #1, the coding blocks 132 corresponding to coding block numbers 1, 2, and 3 are selected as the coding blocks 132 for the additional transmission data.The additional transmission determination unit 112B similarly selects each coded block 132 indicated by each of the additional transmission data #2 and the additional transmission data #3. Here, for the additional transmission data #2 in (b) of FIG. 21, in step S921, the coded blocks 132 corresponding to the coded block numbers 1, 2, and 3 were previously selected, so these three coded blocks 132 are not selected. Note that in this example, the additional transmission determination unit 112B determines whether there is a data receiving device 200D that has not yet been received, in ascending order from 1, based on the coded block number, and selects a coded block 132 to be included in the additional transmission data. However, the start position of the determination may be a random position, and the determination order may be a random order.

[0122] (Step S922) By executing a block addition process, the additional transmission determination unit 112B appropriately selects a decodable block for the additional transmission data corresponding to the coding block 132 selected in step S921 as the coding block 132 to be used for coding using the Fountain Code in step S923. If all data receiving devices 200D can decode the additionally coded additional transmission data even when coding a coding block 132 that is additional to the coding block 132 selected for the additional transmission data, the certain coding block 132 is a decodable block for the certain additional transmission data. Note that each data receiving device 200D corresponding to a reception response indicating decoding failure has not received a maximum of one coding block 132 out of the coding blocks 132 indicated by each additional transmission data (including the additionally coded additional transmission data). Furthermore, even if a data receiving device 200D that has not yet received a coded block 132 indicated by certain additional transmission data additionally codes a coded block 132 that has already been received, the certain additional transmission data can be decoded for the certain data receiving device 200D. In the block addition process, first, the additional transmission determination unit 112B selects a certain coded block 132 for additional transmission data related to the selected block group if all data receiving devices 200D that have not yet received any one coded block 132 included in the selected block group (the coded block 132 that has not been received by each data receiving device 200D may not be the same) have received a certain coded block 132, at least one data receiving device 200D other than all of the data receiving devices 200D has not received the certain coded block 132, and even if the certain coded block 132 is additionally coded for the additional transmission data corresponding to the selected block group, the additionally coded additional transmission data can be decoded in all data receiving devices 200D. In this case, the certain coded block 132 is a decodable block for the additional transmission data corresponding to the selected block group. The selected block group consists of one or more coded blocks 132 selected in step S921 at the start of this step.Furthermore, the additional transmission determination unit 112B adds the selected coding block 132 to the selected block group. Note that in step S922, coding blocks 132 that have already been selected for additional transmission data in at least one of steps S921 and S922 are also considered as candidates for selection. Furthermore, if a coding block 132 can be added to the additional transmission data, the coding block 132 is added because it is more efficient to add the coding block 132.

[0123] In (c) of Figure 21, the coding blocks 132 selected in step S922 are underlined. In the example shown in (c) of Figure 21, no coding blocks 132 were additionally selected in step S922 for additional transmission data #1 and #2. On the other hand, for additional transmission data #3, coding blocks 132 with coding block numbers 1, 2, and 6 are further selected for additional transmission data. The block addition process for additional transmission data #3 in (c) of Figure 21 will be described. Here, the data receiving device 200D with terminal identifier 4 is considered as the target device, and the coding block 132 with coding block number 2 is considered as the target block. At the start of step S922, the selected block group only contains the coding block 132 with coding block number 7. At this time, only the target device has not yet received the coding block 132 included in the selected block group. On the other hand, the target device has already received the target block. Here, of at least one data receiving device 200D other than the target device, only the data receiving device 200D with a terminal identifier of 1 has not received the target block. Furthermore, even if the target block is additionally encoded for additional transmission data #3 corresponding to the selected block group, all data receiving devices 200D can decode the additionally encoded additional transmission data. Therefore, the additional transmission determination unit 112B selects the target block for additional transmission data for additional transmission data #3 corresponding to the selected block group. Furthermore, the additional transmission determination unit 112B adds the target block to the selected block group. The additional transmission determination unit 112B similarly executes the block addition process two more times, thereby selecting coding blocks 132 corresponding to coding block numbers 1 and 6 for additional transmission data. Note that if the process of step S922 is not executed, the additional transmission data #3 simply includes a data sequence with coding block number 7. Therefore, the amount of information included in the additional transmission data #3 is smaller than when step S922 is executed.

[0124] (Step S923) The encoding processing unit 211D encodes the plurality of encoding blocks 132 selected in step S921 and step S922 using a fountain code, in particular, an LT code, and generates additional transmission data including a data string indicating the encoded plurality of encoding blocks 132.

[0125] 22 shows an example of the format of the additional transmission data. The additional transmission data includes information indicating a plurality of coding blocks 132. Therefore, unlike the data transmitted initially, the additional transmission data includes information indicating the number N of coding blocks and the N coding block numbers.

[0126] (Step S924) The additional transmission determination unit 112B transmits the additional transmission data created in step S923 as a wireless signal from the transmitter 121 via the antenna 14. Note that the processes of steps S921 to S924 are repeated until all of the coded blocks 132 that have not yet been received by any of the data receiving devices 200D are included in any of the additional transmission data and transmitted.

[0127] (Step S925) The additional transmission determination unit 112B determines whether each data receiving device 200D corresponding to a reception response indicating decoding failure in step S305 has transmitted all of the unreceived encoded blocks 132. If there are encoded blocks 132 that have not been transmitted, the data transmitting device 100B performs steps S921 to S924 again. If there are no encoded blocks 132 that have not been transmitted, that is, if all of the encoded blocks 132 have been transmitted as additional transmission data, the data transmitting device 100B returns to step S304 and receives reception responses from the surrounding data receiving devices 200D.

[0128] ***Explanation of the Effects of the Sixth Embodiment*** In this embodiment, as described above, by using the Fountain Code, particularly the LT Code, in encoding the additional transmission data, encoding and decoding can be performed by a relatively lightweight process of only an XOR operation. Furthermore, according to this embodiment, it is possible to improve the delivery efficiency in the same way as in the first to third embodiments.

[0129] ***Other Embodiments*** The above-described embodiments can be freely combined, or any of the components of each embodiment can be modified, or any of the components can be omitted from each embodiment. Furthermore, the embodiments are not limited to those shown in embodiments 1 to 6, and various modifications are possible as needed. The procedures described using flowcharts, etc., can be modified as appropriate.

[0130] 11, 21 Processor, 12, 22 Wireless module, 13, 23 Storage device, 14, 24 Antenna, 18 Processing circuit, 90 Content distribution system, 100, 100B Data transmission device, 111, 111B, 211, 211D Encoding processing unit, 112, 112B, 212, 212D Additional transmission determination unit, 119, 219 Initial transmission processing unit, 121, 221 Transmission unit, 122, 222 Reception unit, 130, 230 Storage unit, 131 Distribution data, 132 Encoding block, 133 Redundant data block, 134 Number of hops at own terminal, 200, 200B, 200C, 200D Data reception device, 213, 213D Decoding processing unit, 214, 214B, 214C Reception response unit, 235 Sender information, 236 Destination information, 237 Received power information.

Claims

1. A content distribution system including a plurality of content distribution devices each of which distributes content data by wireless communication, When each of the plurality of content distribution devices is a target distribution device, the target distribution device is The target content data is K 1 K coding blocks are divided into 1 A coding processing unit that generates M redundant data blocks by performing erasure correction coding on the M coded blocks; The above K 1 K selected from among the coding blocks and the M redundant data blocks 2 A transmitter that transmits the blocks by wireless signal together with a source identifier that is a device identifier of the target distribution device; a receiving unit for receiving a reception response, the reception response being information transmitted from each of the two or more content distribution devices other than the target distribution device, the reception response being information indicating a transmission source identifier indicating the content distribution device that is a transmission source, a destination identifier indicating the content distribution device that is a destination, whether each block has been successfully received at the transmission source, and an identifier of each block received by the transmission source; Equipped with When the destination identifier indicated in the reception response received by the target distribution device is the same as the device identifier of the target distribution device, the transmission unit of the target distribution device calculates the number of relatively small blocks among the number of successfully received blocks indicated in each reception response received by the target distribution device as R min When the above K 1 K selected from among the coded blocks and the M redundant data blocks that have not yet been transmitted 2 -R min A content distribution system that transmits blocks of content via wireless signals.

2. a receiving unit of the target distribution device receiving a block from a content distribution device other than the target distribution device; The target distribution device further comprises: a decoding processing unit that decodes the content data by using the block received by the target distribution device to obtain decoded content data; Equipped with The content distribution system according to claim 1 , wherein an encoding processing unit of the target distribution device uses the decoded content data as the target content data.

3. a receiving unit of the target distribution device receiving blocks from each content distribution device other than the target distribution device; The target distribution device further comprises: A storage unit for storing source information indicating a source identifier corresponding to each block received by the target distribution device Equipped with After the reception response transmission timer expires, the transmission unit of the target distribution device receives the number R of receptions of blocks received by the target distribution device from each content distribution device among the transmission source identifiers included in the transmission source information. n The relatively large number of received n 3. The content delivery system according to claim 1, further comprising: a receiving response indicating, as a destination identifier, a sender identifier corresponding to the content delivery request;

4. a receiving unit of the target distribution device receiving blocks from each content distribution device other than the target distribution device; The target distribution device further comprises: A storage unit that stores source information indicating a source identifier corresponding to each block received by the target distribution device, and destination information indicating a destination identifier indicated in each reception response received by the target distribution device for each content distribution device that is a source of the reception response received by the target distribution device. Equipped with After the reception response transmission timer expires, the transmission unit of the target distribution device receives the number R of receptions of blocks received by the target distribution device from each content distribution device among the transmission source identifiers included in the transmission source information. n is the threshold R th the content distribution system according to claim 1 or 2, further comprising: a receiving response indicating as a destination identifier a target identifier which is a device identifier selected from among sender identifiers corresponding to content distribution devices having a larger number than the number of content distribution devices that the target distribution device has received, and which is a device identifier that has been set as the destination identifier of each receiving response received by the target distribution device by a relatively large number of content distribution devices among the destination identifiers indicated by the destination information.

5. The storage unit stores reception power information indicating reception power corresponding to each block received by the target distribution device, The target identifier is a block whose corresponding received power is a threshold P th The content distribution system according to claim 4, wherein the device identifier is selected from the above-mentioned sender identifiers.

6. The target distribution device further comprises: a reception response unit that extends the reception response transmission timer when the number of blocks indicated by the reception response received by the target distribution device as the target reception response is smaller than the number of blocks received by the target distribution device and when the destination identifier indicated by the target reception response matches any of the source identifiers corresponding to the blocks received by the target distribution device. The content distribution system according to claim 3 .

7. The content distribution system according to claim 1 or 2, wherein the transmitting unit of the target distribution device transmits a receiving response that indicates the total number of blocks that the target distribution device receives, instead of the receiving success or failure of each block at the sending source and the identifier of each block that the sending source receives, as the receiving response that corresponds to the second target content data, until the target distribution device receives the block that corresponds to the second target content data that is the block that corresponds to the second target content data and is transmitted last, or until the target distribution device receives a new block that corresponds to the second target content data and is generated at a different time point from the time point that the received block that the target distribution device has already received is generated, and is generated by executing erasure correction coding on the second target content data.

8. The above K 2 -R min The blocks are 1 K are randomly selected from among the coded blocks and the M redundant data blocks that have not yet been transmitted. 2 -R min 3. The content distribution system according to claim 1, wherein the blocks are each a single block.

9. 1. A content distribution method executed in a content distribution system including a plurality of content distribution devices each of which distributes content data by wireless communication, comprising: Each of the plurality of content delivery devices is a computer, When each of the plurality of content distribution devices is a target distribution device, the target distribution device is The target content data is K 1 K coding blocks are divided into 1 generating M redundant data blocks by performing erasure correction coding on the coded blocks; The above K 1 K selected from among the coding blocks and the M redundant data blocks 2 Transmitting the blocks by wireless signal together with a source identifier, which is a device identifier of the target distribution device; receiving a reception response which is information transmitted from each of the two or more content distribution devices other than the target distribution device, the reception response being information indicating a transmission source identifier indicating the content distribution device which is the transmission source, a destination identifier indicating the content distribution device which is the destination, whether each block has been received by the transmission source, and an identifier of each block received by the transmission source; When the destination identifier indicated in the reception response received by the target distribution device is the same as the device identifier of the target distribution device, the number of relatively small blocks among the number of blocks successfully received indicated in each reception response received by the target distribution device is denoted by R min When the above K 1 K selected from among the coded blocks and the M redundant data blocks that have not yet been transmitted 2 -R min A content distribution method in which blocks of content are transmitted via wireless signals.

10. A content distribution program executed in a content distribution system including a plurality of content distribution devices each of which distributes content data by wireless communication, comprising: Each of the plurality of content delivery devices is a computer, When each of the plurality of content distribution devices is a target distribution device, The target content data is K 1 K coding blocks are divided into 1 an encoding process for generating M redundant data blocks by performing erasure correction encoding on the M encoded blocks; The above K 1 K selected from among the coding blocks and the M redundant data blocks 2 a transmission process of transmitting the blocks by wireless signals together with a transmission source identifier, which is a device identifier of the target distribution device; a receiving process for receiving a reception response, the reception response being information transmitted from each of the two or more content distribution devices other than the target distribution device, the reception response being information indicating a transmission source identifier indicating the content distribution device that is the transmission source, a destination identifier indicating the content distribution device that is the destination, whether each block was successfully received at the transmission source, and an identifier of each block received by the transmission source; A content distribution program for causing the target distribution device to execute the In the transmission process, when the destination identifier indicated in the reception response received by the target distribution device is the same as the device identifier of the target distribution device, the number of relatively small blocks among the number of blocks successfully received indicated in each reception response received by the target distribution device is calculated as R min When the above K 1 K selected from among the coded blocks and the M redundant data blocks that have not yet been transmitted 2 -R min A content distribution program that transmits blocks via wireless signal.

11. A content distribution system including a plurality of content distribution devices each of which distributes content data by wireless communication, When each of the plurality of content distribution devices is a target distribution device, the target distribution device is The target content data is K 1 an encoding unit for dividing the image data into encoded blocks; The above K 1 A transmitter that transmits the coded blocks by wireless signals together with a source identifier that is a device identifier of the target distribution device; a receiving unit for receiving a reception response, the reception response being information transmitted from each of the two or more content distribution devices other than the target distribution device, the reception response being information indicating a transmission source identifier indicating the content distribution device that is a transmission source, a destination identifier indicating the content distribution device that is a destination, whether each block has been successfully received at the transmission source, and an identifier of each block received by the transmission source; Equipped with the encoding processing unit of the target distribution device, when a destination identifier indicated in each reception response received by the target distribution device is identical to a device identifier of the target distribution device, encodes a plurality of blocks selected from among the blocks that have failed to be received and indicated in each reception response received by the target distribution device, using a Fountain Code, and creates additional transmission data indicating the encoded plurality of blocks; a transmission unit of the target distribution device transmitting the created additional transmission data by a wireless signal; a receiving unit of the target distribution device receiving additional transmission data by wireless signal from another content distribution device; The target distribution device further comprises: an additional transmission determination unit that selects, as the multiple blocks, multiple blocks from among the blocks that have failed to be received and that are indicated by each of the reception responses received by the target distribution device, based on whether or not each block has been received and that are indicated by each of the reception responses received by the target distribution device, when a destination identifier indicated by each of the reception responses received by the target distribution device is the same as a device identifier of the target distribution device; a decoding processing unit that decodes the encoded blocks indicated by the additional transmission data received from the other content distribution device using a fountain code to restore the encoded blocks corresponding to the received additional transmission data; A content distribution system comprising:

12. a receiving unit of the target distribution device receiving blocks from each content distribution device other than the target distribution device; The target distribution device further comprises: A storage unit for storing source information indicating a source identifier corresponding to each block received by the target distribution device Equipped with After the reception response transmission timer expires, the transmission unit of the target distribution device receives the number R of receptions of blocks received by the target distribution device from each content distribution device among the transmission source identifiers included in the transmission source information. n The relatively large number of received n The content delivery system according to claim 11, further comprising: a receiving response indicating, as a destination identifier, a sender identifier corresponding to the content delivery request;

13. a receiving unit of the target distribution device receiving blocks from each content distribution device other than the target distribution device; The target distribution device further comprises: A storage unit that stores source information indicating a source identifier corresponding to each block received by the target distribution device, and destination information indicating a destination identifier indicated in each reception response received by the target distribution device for each content distribution device that is a source of the reception response received by the target distribution device. Equipped with After the reception response transmission timer expires, the transmission unit of the target distribution device receives the number R of receptions of blocks received by the target distribution device from each content distribution device among the transmission source identifiers included in the transmission source information. n is the threshold R th the content distribution system according to claim 11 or 12, further comprising: a receiving response indicating as a destination identifier a target identifier which is a device identifier selected from among sender identifiers corresponding to content distribution devices having a larger number than the target identifier, and which is a device identifier which has been set as the destination identifier of each receiving response received by the target distribution device by a relatively large number of content distribution devices among the destination identifiers indicated by the destination information.

14. The storage unit stores reception power information indicating reception power corresponding to each block received by the target distribution device, The target identifier is a block whose corresponding received power is a threshold P th The content distribution system according to claim 13, wherein the device identifier is selected from the above-mentioned sender identifiers.

15. The target distribution device further comprises: a reception response unit that extends the reception response transmission timer when the number of blocks indicated by the reception response received by the target distribution device as the target reception response is smaller than the number of blocks received by the target distribution device and when the destination identifier indicated by the target reception response matches any of the source identifiers corresponding to the blocks received by the target distribution device. The content distribution system of claim 12 .

16. The content distribution system according to claim 11 or 12, wherein the transmitting unit of the target distribution device transmits, as the reception response corresponding to the second target content data, the total number of blocks that the target distribution device receives, instead of the reception success or failure of each block at the transmission source and the identifier of each block that the transmission source receives, until the target distribution device receives the block that corresponds to the second target content data that corresponds to the block that corresponds to the second target content data and transmits ...

17. 1. A content distribution method executed in a content distribution system including a plurality of content distribution devices each of which distributes content data by wireless communication, comprising: Each of the plurality of content delivery devices is a computer, When each of the plurality of content distribution devices is a target distribution device, the target distribution device is The target content data is K 1 Divide the data into coding blocks, The above K 1 Transmitting the coded blocks by wireless signals together with a source identifier, which is a device identifier of the target distribution device; receiving a reception response which is information transmitted from each of the two or more content distribution devices other than the target distribution device, the reception response being information indicating a transmission source identifier indicating the content distribution device which is the transmission source, a destination identifier indicating the content distribution device which is the destination, whether each block has been received by the transmission source, and an identifier of each block received by the transmission source; When the destination identifier indicated in each reception response received by the target distribution device is the same as the device identifier of the target distribution device, a plurality of blocks selected from the blocks that have failed to be received and indicated in each reception response received by the target distribution device are encoded using a fountain code, and additional transmission data indicating the encoded plurality of blocks is created; The created additional transmission data is transmitted by radio signal, receiving additional transmission data via wireless signals from other content distribution devices; select, as the plurality of blocks, a plurality of blocks from among the blocks that have failed to be received and that are indicated by the respective reception responses received by the target distribution device, so that additional transmission data created in any of the content distribution devices that have failed to receive one or more blocks among the content distribution devices corresponding to the respective reception responses received by the target distribution device can be decoded based on whether or not each block indicated by each reception response received by the target distribution device has been successfully received, when a destination identifier indicated by each reception response received by the target distribution device is identical to a device identifier of the target distribution device; the content distribution method comprising: decoding, by a fountain code, a plurality of encoded blocks indicated by the additional transmission data received from the other content distribution device, thereby restoring a plurality of blocks corresponding to the received additional transmission data.

18. A content distribution program executed in a content distribution system including a plurality of content distribution devices each of which distributes content data by wireless communication, comprising: Each of the plurality of content delivery devices is a computer, When each of the plurality of content distribution devices is a target distribution device, The target content data is K 1 an encoding process for dividing the image into coding blocks; The above K 1 a transmission process of transmitting the coded blocks by wireless signals together with a transmission source identifier, which is a device identifier of the target distribution device; a receiving process for receiving a reception response, the reception response being information transmitted from each of the two or more content distribution devices other than the target distribution device, the reception response being information indicating a transmission source identifier indicating the content distribution device that is the transmission source, a destination identifier indicating the content distribution device that is the destination, whether each block was successfully received at the transmission source, and an identifier of each block received by the transmission source; A content distribution program for causing the target distribution device to execute the In the encoding process, when the destination identifier indicated in each reception response received by the target distribution device is the same as the device identifier of the target distribution device, a plurality of blocks selected from the blocks that have failed to be received and indicated in each reception response received by the target distribution device are encoded using a fountain code, and additional transmission data indicating the encoded plurality of blocks is created; In the transmission process, the created additional transmission data is transmitted by a wireless signal; In the receiving process, additional transmission data is received by wireless signal from another content distribution device; an additional transmission determination process for selecting, as the multiple blocks, a plurality of blocks from among the blocks that have failed to be received and that are indicated by the respective reception responses received by the target distribution device, based on whether or not each block has been received and that are indicated by each reception response received by the target distribution device, so that additional transmission data created in any of the content distribution devices that have failed to receive one or more blocks among the content distribution devices corresponding to each reception response received by the target distribution device can be decoded when a destination identifier indicated by each reception response received by the target distribution device is identical to a device identifier of the target distribution device; a decoding process of decoding the encoded blocks indicated by the additional transmission data received from the other content distribution device using a fountain code to restore the encoded blocks corresponding to the received additional transmission data; A content distribution program that causes the target distribution device to execute the above.