WO2015060130A1 - 疎グラフ作成装置及び疎グラフ作成方法 - Google Patents

疎グラフ作成装置及び疎グラフ作成方法 Download PDF

Info

Publication number
WO2015060130A1
WO2015060130A1 PCT/JP2014/076910 JP2014076910W WO2015060130A1 WO 2015060130 A1 WO2015060130 A1 WO 2015060130A1 JP 2014076910 W JP2014076910 W JP 2014076910W WO 2015060130 A1 WO2015060130 A1 WO 2015060130A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
sparse
unit
sparse graph
graph
Prior art date
Application number
PCT/JP2014/076910
Other languages
English (en)
French (fr)
Inventor
喜秀 外村
白井 大介
藤井 竜也
孝之 仲地
山口 高弘
匡彦 北村
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to EP17181109.4A priority Critical patent/EP3264612B1/en
Priority to EP14855171.6A priority patent/EP3062445A4/en
Priority to US15/027,456 priority patent/US11303305B2/en
Priority to BR112016007458A priority patent/BR112016007458A2/pt
Publication of WO2015060130A1 publication Critical patent/WO2015060130A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1191Codes on graphs other than LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • H03M13/6368Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
    • H03M13/6393Rate compatible low-density parity check [LDPC] codes

Definitions

  • the present invention relates to an apparatus and method for generating a sparse graph code, and more particularly, to an apparatus and method for efficiently enabling a sparse graph code by taking a large minimum loop formed between arbitrary nodes.
  • error correction technology is widely used in various communication systems such as satellite digital broadcasting, communication on the Internet, and communication on mobile terminals.
  • various communication systems such as satellite digital broadcasting, communication on the Internet, and communication on mobile terminals.
  • video distribution services using the Internet are expected, and error correction technology for the Internet network has become important.
  • the following is an example of the Internet network.
  • the Internet network can be regarded as an erasure communication path (PEC: Packet Erasure Channel).
  • PEC Packet Erasure Channel
  • Fig. 1 binary erasure channel
  • Fig. 1 a binary erasure channel grouped as a packet unit, and whether the channel output is output as correct information or as unknown due to some failure in the line.
  • FEC Forward Error Correction
  • ARQ Automatic Repeat reQuest
  • FEC method a method that can correct errors only on the receiving side without requiring a feedback channel Is used. Since the FEC method does not perform retransmission control or the like, the FEC method is also used in a video conference system in which the delay is small and the real-time property is important. The following will discuss the FEC method.
  • Reed-Solomon code As the FEC method, Reed-Solomon code (RS code) is widely used in digital broadcasting and the like. In Japanese digital broadcasting, it is defined as a code length of 204 bytes, and by adding a parity byte of about 10 [%] to the original data of 188 bytes, tolerance is given to errors. However, it is generally known that performance is improved if a code having a long code length is used as an error correction code. However, there is a known disadvantage that decoding becomes complicated and the amount of calculation becomes enormous as the code length increases. ing. For this reason, it is assumed that the RS code is handled with a code length of 256 bytes or less. In addition, when the RS code is applied to a packet called IP-based packet level FEC, it is necessary to handle 256 packets as one block for the above reason.
  • IP-based packet level FEC it is necessary to handle 256 packets as one block for the above reason.
  • a decoding method based on a probability propagation algorithm is known to have excellent decoding characteristics with a practical amount of computation when the code length is long, and is defined by a sparse graph
  • a low-density parity check code (LDPC code) (for example, see Non-Patent Document 1), which is a linear code, is attracting attention as a practical error correction method that approaches the channel capacity defined by Shannon.
  • LDPC code low-density parity check code
  • erasure correction codes based on sparse graphs Digital Fountain's LT code (for example, see Non-Patent Document 2) and Raptor code (for example, Non-Patent Document 3) are known, and the coding efficiency is greatly degraded.
  • Non-Patent Document 4 Asynchronous Layered Coding (for example, see Non-Patent Document 4)), which is an Internet multicast protocol. Therefore, it is widely used in layered multicast communication.
  • the correspondence between the sparse matrix and the graph corresponds to an information node corresponding to a column of the matrix, a check node corresponding to a row, and one place of the sparse matrix corresponding to an edge connecting the information node and the check node.
  • an irregular matrix (hereinafter referred to as an irregular matrix) with several column weights
  • the PEG algorithm makes it difficult to find a node that will grow in a loop after a heavy column or row is entered. It becomes easy to happen to be a randomly generated sparse graph. This is because edges increase and loops are more likely to be born.
  • the present invention has been made in view of the above points, and an object of the present invention is to efficiently create a sparse graph in a sparse graph code.
  • the present invention relates to a method for generating a sparse matrix for an LDPC code, and in particular, an improved PEG (progressive edge-growth) algorithm between arbitrary node sets in a sparse matrix.
  • PEG progressive edge-growth
  • the efficiency of encoding according to the transmission rate is improved by selecting a node set that takes a long loop according to a sparse matrix request.
  • the sparse graph creation device is: A sparse graph creation device for generating a sparse graph used for a sparse graph code, An inactivator that inactivates at least some of the nodes in the sparse graph; From the remaining sparse graphs made inactive by the inactive unit, a node that can be reached through the shortest number of edges from an active node connected to an arbitrary root node as a route when creating a local graph is searched.
  • a search unit to A node selection unit that selects a node that satisfies a condition set from a search result of the search unit as a position for generating an edge;
  • a root node edge connection unit that connects the node selected by the node selection unit and the root node; Is provided.
  • the node selection unit performs a loop with a small amount of computation by limiting the range to be searched next from the information related to the search obtained from the process of node generation so far. You may select the node taken large.
  • the sparse graph creation device is: A sparse graph creation device for generating a sparse graph used for a sparse graph code, A search unit that searches for a node that can be reached through the shortest number of edges from an active node connected to an arbitrary root node that is a root when creating a local graph from a sparse graph; A node selection unit that selects a node that satisfies a condition set from a search result of the search unit as a position for generating an edge; A root node edge connection unit that connects the node selected by the node selection unit and the root node; A constrained interleaving unit that rearranges each node of the sparse graph in which an edge is generated at a position selected by the root node edge connection unit so that each weight of the sparse matrix is spatially uniformly arranged; Is provided.
  • the constrained interleave unit may replace nodes in the sparse graph so as to maintain the graph structure of active nodes.
  • the sparse graph creation apparatus may further include a node expansion unit that installs a new node so that the total number of edges of the sparse graph does not change and the minimum loop is not shortened.
  • the sparse graph creation method is: A sparse graph creation method for generating a sparse graph used for a sparse graph code, An initiating procedure to inactivate at least some of the nodes in the sparse graph; From the remaining sparse graphs made inactive by the inactivation step, search for nodes that can be reached through the shortest number of edges from an active node connected to an arbitrary root node as a route for creating a local graph.
  • a root node edge connection procedure for connecting the node selected in the node selection procedure and the root node; In order.
  • a loop in the node selection procedure, a loop can be formed with a small amount of computation by limiting the range to be searched next from information related to the search obtained from the process of node generation so far. You may select the node taken large.
  • the sparse graph creation method is: A sparse graph creation procedure for generating a sparse graph used for a sparse graph code, A search procedure for searching for a node that can be reached from an active node connected to an arbitrary root node as a route when creating a local graph through the shortest number of edges from a sparse graph, A node selection procedure for selecting a node that satisfies the conditions set from the search result of the search procedure as a position for generating an edge; A root node edge connection procedure for connecting the node selected in the node selection procedure and the root node; A constrained interleaving procedure for rearranging each node of the sparse graph in which an edge is generated at a position selected by the root node connection procedure so that each weight of the sparse matrix is spatially uniformly arranged; In order.
  • the nodes in the sparse graph may be replaced so as to maintain the graph structure of the active nodes.
  • a node expansion procedure for installing a new node is performed after the node selection procedure and the constraints so that the total number of edges of the sparse graph is not changed and the minimum loop is not shortened. You may also have before the attached interleaving procedure.
  • a sparse graph in a sparse graph code can be created efficiently.
  • An example of a packet loss communication path is shown.
  • An example of the communication system which concerns on this embodiment is shown.
  • generation apparatus which concerns on Embodiment 1 is shown.
  • saved at the sparse matrix cache part 102 is shown.
  • An example of tree expansion of the parity check matrix of an LDGM code is shown.
  • An example of a loop of length 4 is shown.
  • An example of a loop of length 6 is shown.
  • An example of inactivity is shown.
  • generation apparatus which concerns on Embodiment 2 is shown.
  • An example of the matrix before interleaving is shown.
  • An example of the matrix after interleaving is shown.
  • An example of two matrices before interleaving is shown.
  • FIG. 10 shows a second configuration example of a sparse matrix creation device according to Embodiment 3.
  • FIG. 10 shows a second configuration example of a sparse matrix creation device according to Embodiment 3.
  • the present invention can be implemented without depending on the type of communication path, but as an example, packet distribution using the UDP protocol used in multicast distribution will be described as an example.
  • UDP protocol when used, even if the UDP packet is lost, unlike the TCP protocol, retransmission processing is not performed. However, as shown in FIG. 1, it is possible to determine whether or not the received packet is correct and the position of the lost packet is There is a feature that can be seen as an erasure channel that can be accurately identified.
  • FIG. 2 shows an example of a communication system according to the present embodiment.
  • the communication system according to this embodiment includes a channel encoding device 91, a packet transmission device 92, a packet base receiving device 93, and a channel decoding device 94.
  • the communication path encoding device 91 encodes transmission data using a sparse matrix.
  • the packet transmission device 92 transmits the encoded transmission data.
  • the packet base receiving device 93 receives transmission data.
  • the communication path decoding device 94 decodes received data using a sparse matrix.
  • the encoding in the channel encoding device 91 and the decoding in the channel decoding device 94 use the sparse matrix created by the sparse matrix creating unit 10 that functions as the sparse matrix creating device according to the present embodiment.
  • Transmission data such as video data and audio data is encoded by the communication path encoding device 91.
  • the channel encoding device 91 normally performs fragmentation in consideration of the packet size of the packet transmission device 92 connected later.
  • a linear code such as an LDPC code
  • the channel encoding device 91 creates redundant data by the following encoding process.
  • S is input data such as video data fragmented with a certain size
  • G and T are sparse matrices corresponding to the sparse graph.
  • T is a step matrix. T -1 can be replaced with an accumulator, and the use of an accumulator can speed up the encoding process.
  • the sparse matrix creation unit 10 in the figure generates matrices G and T that improve the encoding efficiency and decoding efficiency with a small amount of computation. Since the amount of information of the created sparse matrix is large, generally the parameters of the sparse matrix are extracted and notified to the decoding side communication path decoding device 94. The parameters are, for example, generated parity data and FEC auxiliary information.
  • the packet-based transmission device 92 transmits the extracted parameters together with video data and audio data in accordance with the FLUTE standard (RFC 3926), the MPEG media trans-port (ISO / IEC 23008-1) standard, and the like.
  • the packet-side receiving device 93 on the receiving side receives the packet transmitted from the packet-based transmission device 92.
  • the packet-based receiving device 93 attempts to recover the lost packet by the communication path decoding device 94 when packet loss has occurred in comparison with the FLUTE header format or the like.
  • the communication path decoding device 94 corresponds to the encoding, and it is shared in advance from the auxiliary information that the following constraint equation holds.
  • G and T are sparse matrices corresponding to the sparse graph, and use exactly the same information as the encoding side.
  • the sparse matrix information has a large amount of data, it is generally shared by being notified as a parameter from the encoding side to the decoding side.
  • the same sparse matrix as that on the encoding side is generated from the notified parameter by the sparse matrix creation unit 10.
  • the lost packet is decoded using the above equation. Now, if ⁇ is an index set of lost packets, H ⁇ is a parity check matrix corresponding to lost packets, and x ⁇ is a lost packet set, the above equation can be rewritten as:
  • ⁇ ′ on the right side is an index set of received packets.
  • the lost packets can be recovered by maximum likelihood decoding.
  • Various decoding methods have been proposed, including a method of recovery by a message passing algorithm and a method of recovery by a Gaussian elimination method.
  • the message passing algorithm decoding utilizing the sparseness of the sparse graph is possible, so that decoding with O (N) is possible.
  • O (N) is possible.
  • preprocessing for obtaining an inverse matrix is performed with O (N 3 ), O (N 2 ) computation is required for computation processing that actually recovers the packet.
  • a sparse matrix having high error correction capability and high coding efficiency can be created at high speed in a channel encoding device and a channel decoding device, and this matrix can be eliminated by a message passing algorithm or Gaussian elimination.
  • the method can also correct errors efficiently. Furthermore, by combining with a variable rate LDPC code, the matrix does not have to be recreated from 0 each time, so even when one sparse matrix is applied to various rates, error correction with high coding efficiency can be performed. it can.
  • the selective PEG algorithm generates a sparse matrix while keeping row weight / column weight at an arbitrary multilevel, and in the process, an arbitrary edge is made inactive so that the matrix space is narrow. Improve coding efficiency.
  • the sparse graph creation method includes an inactivation procedure, a search procedure, a node selection procedure, and a root node edge connection procedure in this order.
  • the inactivation procedure at least some of the nodes in the sparse graph are made inactive.
  • the search procedure a node that can be reached through the shortest number of edges from an active node connected to an arbitrary root node as a root when creating a local graph is searched from the remaining sparse graphs that have been made inactive.
  • the node selection procedure a node satisfying the set condition is selected from the search result.
  • the root node edge connection procedure the node selected in the node selection procedure is connected to the root node.
  • FIG. 3 shows a basic configuration diagram of a sparse matrix creation device according to this embodiment.
  • the sparse matrix creation device 100 includes an algebraic structure generation unit 101, a sparse matrix cache unit 102, a random number generation unit 103, a root node edge connection unit 104, a node inactivation unit 105, an inactive A control unit 106, a search depth control unit 107, a search unit 108, a node selection unit 109, and an interleaving unit 110.
  • the sparse matrix creation unit 100 and the sparse graph creation method according to the present embodiment realize a variable rate error correction code that achieves multilevel rate control with high efficiency.
  • the algebraic structure generation unit 101 is considered when the sparse graph has a special structure.
  • the sparse matrix cache unit 102 stores a sparse matrix to be generated.
  • the random number generation unit 103 constructs a code probabilistically.
  • the root node edge connection unit 104 selects an edge to be connected to the root node as a reference when a large loop in the local graph is taken.
  • the node inactivating unit 105 selects nodes that are not considered when taking a large loop in the local graph.
  • the inactivation control unit 106 determines the conditions in the processing of the node inactivation unit 105.
  • the search depth control unit 107 controls the depth of a node to be searched when taking a large loop in the local graph.
  • the search unit 108 searches for a node that can be reached from the active node connected to the root node through the shortest number of edges based on the control information of the search depth control unit 107.
  • the node selection unit 109 selects a node that satisfies the condition from the search result of the search unit 108.
  • the condition is, for example, a check node that cannot be reached from the root node through any five edges.
  • the interleave unit 110 is a constrained interleave unit that replaces the created sparse matrix by column replacement or the like. Each component will be described below.
  • This system is a communication path decoding system that efficiently recovers erasures that occur on erasure communication paths.
  • IP packet transmission is performed on the Internet, which is a typical communication path of an erasure communication path, and LDPC configured by a sparse graph -An example that assumes a Staircase code will be described.
  • the input data is input to the sparse matrix creation device 100 and creation of the sparse matrix is started.
  • information necessary for generating a matrix such as the size of the matrix related to the coding rate, information about the weight of the matrix, and the initial value of the search depth, are input.
  • the matrix size is, for example, a vertical size and a horizontal size.
  • the column weight 3 is the number of columns and the column weight 7 is the number of columns.
  • the algebraic structure generation unit 101 assumes the LDPC-Staircase code this time, a step matrix is generated as an algebraic structure.
  • the generated staircase matrix is stored in the sparse matrix cache unit 102.
  • the root node when creating the local graph at the root node edge connection unit 104 and one node are connected through the edge.
  • the local graph is a graph composed of candidate nodes connected from the root node in the sparse graph generation process.
  • the root node is a node that is a target to which a new edge is added, and is a node arranged at the top when represented by a tree.
  • the node inactivation unit 105 designates nodes that are not included in the search when creating a local graph based on information of the inactivation control unit 106. However, when there is no special request such as extremely reducing the search time in generating the matrix, there is no merit of making the node inactive. Normally, you do not specify the node to be inactive.
  • the search unit 108 searches for an active node that has not been made inactive based on the information of the search depth control unit 107.
  • the search operation will be described with reference to FIGS.
  • FIG. 4 shows an example of a matrix stored in the sparse matrix cache unit 102
  • FIG. 5 shows a connection relationship between a root node and a check node connected with the minimum number of edges.
  • the search unit 108 performs a one-step search.
  • the one-step search is a search for a node in which a root node and an active check node are connected through three edges (connected by a length of 3). In the example shown in FIG.
  • the node selection unit 109 receives the search result of the search unit 108 and determines the node position to be added. For example, a node that cannot be reached from the root node through any three edges.
  • a method such as selecting from a candidate node set at random, filling from the upper part of the matrix, or filling from the lowest row weight is used.
  • a random number generated by the random number generation unit 103 is used.
  • the process returns to the root node edge connection unit 104, and this time, an edge with the selected node is added to the node selection unit 109 and the same processing as 105, 108, 109 is performed. Do.
  • an arbitrary number of nodes eg, three nodes, etc.
  • the selected node is stored in the sparse matrix cache unit 102.
  • the search depth control unit 107 changes the search depth to narrow the search range.
  • the inactivation control unit 106 selects a node to be inactive, and performs a process of reducing active nodes to be searched. These processes can be performed one by one or simultaneously.
  • the search range control unit 107 changes the depth of search, and there is no node that can be selected even in one-step search. In this case, it is effective to change the setting of the inactivation control unit 106, make the node generated so far inactive, increase the search depth of the search range control unit 107 again, and continue matrix generation.
  • the processing of the node inactivating unit 105 will be described with reference to FIG.
  • the matrix on the left in FIG. 8 is in the middle of the process of generating the matrix.
  • the node in the ninth column is to be created, and the first check node is selected as the root node.
  • the second, third, fourth, fifth, and all other check nodes are connected with an edge of length 3, and no matter which node is selected, the length This is a situation where a loop of 4 occurs. Therefore, the inactivation control unit 106 determines that half of the already created nodes are inactive, and the node inactivation unit 105 inactivates the nodes from the first column to the fourth column (right in FIG. 8). .
  • any of the third, fourth, and fifth check nodes can be selected.
  • the sparse matrix creation device 100 can achieve excellent coding efficiency even when a part of the generated matrix is used, and can change the node to be made inactive by the column weight, etc. By doing so, it becomes possible to create a sparse matrix with good coding efficiency quickly and efficiently.
  • the node to be inactivated is arbitrarily changed by a variable parameter or the like. For example, in this example, the node corresponding to the staircase matrix has a high degree of demand, so it is desirable that the node is always inactive without being made inactive.
  • the generated sparse matrix is sent to the interleave unit 110.
  • the interleave unit 110 rearranges the columns so that the loop becomes wide and the matrix weights are averaged even when cut out in an arbitrary range, and sparse matrix information is output as output data.
  • the selective PEG algorithm generates a sparse matrix while keeping row weights / column weights at an arbitrary multilevel, and performs encoding in the case where the matrix space is narrow by performing constrained interleaving. Improve efficiency.
  • the sparse graph creation method includes a search procedure, a node selection procedure, a root node edge connection procedure, and a constrained interleaving procedure in this order.
  • search procedure a node that can be reached through the shortest number of edges from an active node connected to an arbitrary root node serving as a route for creating a local graph is searched from the sparse graph.
  • node selection procedure a node satisfying the set condition is selected from the search result.
  • the node selected in the node selection procedure is connected to the root node.
  • the constrained interleaving procedure the nodes of the sparse graph in which nodes are generated at the selected positions are rearranged so that the weights of the sparse matrix are spatially uniformly arranged so as to maintain the local graph relationship.
  • FIG. 9 shows a basic configuration diagram of a sparse matrix creation device according to this embodiment.
  • the sparse matrix creation device 200 includes an algebraic structure generation unit 201, a sparse matrix cache unit 202, a random number generation unit 203, a root node edge connection unit 204, a search unit 208, and a search depth control unit. 207, a node selection unit 209, and a constrained interleaving unit 210.
  • the sparse matrix creation apparatus 200 according to the present embodiment realizes a variable rate error correction code that achieves multilevel rate control with high efficiency.
  • the algebraic structure generation unit 201 is considered when the sparse graph has a special structure.
  • the sparse matrix cache unit 202 stores a sparse matrix to be generated.
  • the random number generation unit 203 constructs a code stochastically.
  • the root node edge connection unit 204 selects an edge to be connected to the root node as a reference when a large loop in the local graph is taken.
  • the search unit 208 searches for a node that can be reached through the shortest number of edges based on the control information of the search depth control unit 207.
  • the search depth control unit 207 controls the depth searched by the search unit 208.
  • the node selection unit 209 selects a node that satisfies the condition from the search result.
  • the constrained interleave unit 210 replaces the created sparse matrix by column replacement or the like. Each component will be described below.
  • This system is a communication path decoding system that efficiently recovers erasures that occur on erasure communication paths.
  • IP on the Internet which is a typical communication path of the lost communication path.
  • An example in which a packet transmission is assumed and an LDPC-Staircase code including a sparse graph is assumed will be described.
  • the input data is input to the sparse matrix creation device 200 and creation of the sparse matrix is started.
  • the input data includes the matrix size (eg, vertical size, horizontal size) related to the coding rate, information about the matrix weight (eg, column weight 3 and column weight 7). The number of columns), the initial value of the search depth, and other information necessary for matrix generation are input.
  • the algebraic structure generation unit 201 assumes an LDPC-Staircase code this time, a step matrix is generated as an algebraic structure.
  • the generated staircase matrix is stored in the sparse matrix cache unit 202.
  • the root node edge connection unit 204 connects nodes connected from a node serving as a route when creating a local graph by edges.
  • the edge connected to the check node from the root node is selected for the first time in the column, there are various methods for selecting the edge. For example, the row weight is calculated and the check node set having the lightest weight is selected. A random selection from among them is performed. When this restriction is imposed, a regular sparse matrix is generated in the row direction. In this process, check nodes are selected by random numbers generated by the random number generation unit 203 and connected by edges.
  • the search unit 208 When an edge is connected from the root node by the root node edge connection unit 204, the search unit 208 performs a search based on the information of the search depth control unit 207. Since the operation of the search unit 208 is the same as that of the search unit 108 described in the first embodiment, the details of the search operation are omitted here.
  • the node selection unit 209 receives a search result from the search unit 208 and determines a node to be added. When there are a plurality of selection candidates, a method such as selecting from a candidate node set at random, filling from the upper part of the matrix, or filling from the lowest row weight is used. In addition, when selecting at random, a random number generated by the random number generation unit 203 is used.
  • the process returns to the root node edge connection unit 204, and this time, the selected edge is connected to the root node, and the same processing as the search unit 208 and the node selection unit 209 is performed. Repeat until an arbitrary number of nodes (eg, 3 nodes, etc.) are created and sequence processing is completed. Thereafter, the selected node is stored in the sparse matrix cache unit 202.
  • the search depth control unit 207 changes the search depth to narrow the search range. Is the same as that of the first embodiment. However, there may be a case where a node that can be selected by the node selection unit 204 does not appear even when the search range is narrowed. In that case, the search depth control unit 207 performs control so that the search is not performed, and the search unit 208 is skipped to generate a sparse matrix having an arbitrary weight.
  • a column having a light weight (eg, a column having a column weight of 3) is generated first, and then a column having a heavy weight (e.g., a column having a column weight of 7) can be generated to generate a matrix with good coding efficiency.
  • FIG. 10 and FIG. 11 show examples of sparse matrices stored in the sparse matrix cache unit 202 after node selection of all sparse matrices is performed.
  • the sparse matrix has a staircase matrix created by the algebraic structure generator 201 from the left, followed by a sparse matrix with column weight 3 and finally a sparse matrix with column weight 7. .
  • the constrained interleaving unit 210 rearranges the sparse matrix shown in FIG. 10 into the matrix shown in FIG.
  • the staircase matrix indicated by “T” in FIG. 10 is located on the right side of the parity check matrix.
  • the mixed sparse matrix “G” shown in FIG. 11 is created as the sparse matrix indicated by “G1” with column weight 3 and the sparse matrix indicated by “G2” with column weight 7.
  • the mixed sparse matrix “G” is mixed so that the sparse matrix with the column weight 3 and the sparse matrix with the column weight 7 take a spatial average and become uniform.
  • the mixed sparse matrix “G” maintains the order relationship in the sparse matrix with the column weight 3 and the sparse matrix with the column weight 7. That is, the columns N 31 , N 32 , N 33 , N 34 with column weight 3 and the columns N 71 , N 72 , N 73 , N 74 with column weights are represented by N 31 , N 71 in the mixed sparse matrix “G”. , N 32 , N 72 , N 33 , N 73 , N 34 , and N 74 are arranged in this order.
  • the constrained interleave unit 210 may generate one sparse matrix by combining two sparse matrices.
  • FIG. 12 shows two sparse matrices with different column weights generated by the sparse matrix creation apparatus according to this embodiment.
  • the constrained interleave unit 210 mixes the sparse matrix with column weight 3 and the sparse matrix with column weight 7 as a mixed sparse matrix “G” with column weight 3 and column weight 7 as shown in FIG.
  • the staircase matrix is rearranged so that it is on the right side.
  • a function similar to that of the node inactivation unit 105 of the first embodiment can be provided by creating a plurality of sparse matrices.
  • FIG. 13 shows a basic configuration diagram of a sparse matrix creation device according to the present embodiment.
  • the sparse matrix creation device 300 according to the present embodiment realizes a variable rate error correction code that achieves multilevel rate control with high efficiency.
  • the sparse matrix creation apparatus 300 according to the present embodiment includes an algebraic structure generation unit 301, a sparse matrix cache unit 302, a random number generation unit 303, a root node edge connection unit 304, a node inactivation unit 305, an inactive A control unit 306, a search depth control unit 307, a search unit 308, a node selection unit 309, an extended edge selection unit 310, a node expansion unit 311, and a constrained interleaving unit 312.
  • the algebraic structure generation unit 301 is considered when the sparse graph has a special structure.
  • the sparse matrix cache unit 302 stores a sparse matrix to be generated.
  • the random number generation unit 303 constructs a code stochastically.
  • the root node edge connection unit 304 connects nodes connected from a node serving as a route when creating a local graph by edges.
  • the node inactivator 305 selects nodes that are not considered when taking a large loop in the local graph.
  • the inactivation control unit 306 determines the conditions in the processing of the node inactivation unit 305.
  • the search depth control unit 307 controls the search depth when taking a large loop in the local graph.
  • the search unit 308 searches for a node that can be reached from the active node connected to the root node through the shortest number of edges based on the control information of the search depth control unit 307.
  • the node selection unit 309 selects a node that satisfies the condition from the search result of the search unit 308.
  • the extended edge selection unit 310 selects an edge to be transferred to the check node to be extended.
  • the node expansion unit 311 increases the number of check nodes while maintaining the number of edges in the sparse graph.
  • the constrained interleaving unit 312 replaces the created sparse matrix by column replacement or the like. Each component will be described below.
  • This system is a communication path decoding system that efficiently recovers erasures that occur on erasure communication paths.
  • IP packet transmission is performed on the Internet, which is a typical communication path of the lost communication path, and the code is configured in a sparse graph.
  • An example assuming the LDPC-Staircase code will be described. Further, in the present embodiment, a description will be given using an example specialized for a variable rate type in which the redundancy can be greatly changed.
  • the input data is input to the sparse matrix creation device 300 and creation of the sparse matrix is started.
  • the input data includes the matrix size (eg, vertical size, horizontal size) related to the coding rate, information about the matrix weight (eg, column weight 3 and column weight 7). The number of columns), the initial value of the search depth, and other information necessary for matrix generation are input.
  • information such as the minimum matrix size, the maximum matrix size, and the redundancy rate of each is input as a parameter corresponding to the variable rate.
  • the processing from the algebraic structure generation unit 301 to the processing of the node selection unit 309 is basically the same as the processing from 101 to 109 in the first embodiment, and the details are omitted.
  • nodes are selected so that they fall within the minimum matrix size range in the node selection by the root node edge connection unit 304 and the node selection unit 309, and are connected by edges. That is, as shown in FIG. 14, a small sparse matrix is generated by limiting the area for selecting a node, and is stored in the sparse matrix cache unit 302.
  • G1 in FIGS. 14 to 17 is a sparse matrix having an arbitrary weight, and a regular matrix and an irregular matrix can be created.
  • FIG. 18 shows an outline of the processing.
  • the left side of FIG. 18 shows a state before G1 in FIG. 14 is expanded.
  • the extended edge selection unit 310 selects an extended edge. That is, in FIG. 18, the edge to be expanded is selected from the edges connected to NC 1 and NC 2 .
  • the node extension unit 311 adds check nodes NC 3 and NC 4 and replaces the edge selected by the extension edge selection unit 310.
  • the check nodes NC 3 and NC 4 increase as shown on the right side of FIG.
  • the extended edge selection unit 310 generates a selection of which edge is connected to the extended node (or remains in the check node connected so far) by the random number generation unit 303. Randomly selected by random number. In this process, the extended edges are selected so that the number of edges connected to any check node is approximately the same.
  • the node expansion unit 311 expands the check node. As a result of this expansion, G1 in FIG. 14 becomes G2 in FIG. 15, and has a sparse graph structure with more check nodes.
  • the expanded sparse matrix is stored in the sparse matrix cache unit 302.
  • the procedure is the same as the process so far, and a sequence creation procedure from the root node edge connection unit 304 to the node selection unit 309 is executed.
  • the root node edge connection unit 304 and the node selection unit 309 do not provide the spatial restriction that was performed in the previous procedure.
  • a partial sparse matrix that is not limited to a region is generated as shown by G3 in FIG.
  • the generated sparse matrix is sent to the constrained interleaving unit 312, and even if it is cut out in an arbitrary range, the loop becomes wide and the matrix weight becomes average. Rearrangement is performed, and sparse matrix information is output as output data.
  • the sparse matrices G2 and G3 are rearranged so that the column weights are averaged to become sparse matrices G2 'and G3'.
  • the sparse matrices G2 'and G3' are interleaved with a constraint that the columns are not replaced if the column weights are the same as in the constrained interleaving shown in FIGS. With this configuration, a matrix with high coding efficiency can be generated even when the rate is varied by padding with 0 from the right side of G3 'or when G2' is varied by puncturing.
  • the configuration of the second embodiment may further include an extended edge selection unit 310 and a node expansion unit 311.
  • the invention according to the present embodiment further includes the constrained interleaving function described in the second embodiment in the configuration of the first embodiment.
  • the invention of Embodiment 1 and the invention of Embodiment 2 can be combined. This combination can further improve the encoding efficiency.
  • the present invention provides a sparse matrix that realizes a variable-rate error correcting code that achieves multi-level rate control with high efficiency in creating a sparse matrix of a sparse graph code. Can be created.
  • the present invention can be applied to the information and communication industry.
  • Sparse matrix creation unit 91 Channel encoding device 92: Packet-based transmission device 93: Packet-based reception device 94: Channel decoding devices 100, 200, 300, 400: Sparse matrix creation devices 101, 201, 310, 401 : Algebraic structure generation units 102, 202, 302, 402: Sparse matrix cache units 103, 203, 303, 403: Random number generation units 104, 204, 304, 404: Root node edge connection units 105, 305: Node inactive Units 106, 306: inactivation control units 107, 207, 307, 406: search depth control units 108, 208, 308, 405: search units 109, 209, 309, 407: node selection unit 110: interleaving units 210, 312, 410: Constrained interleave unit 310, 408: Extended edge selection unit 3 1,409: node extensions 911: channel-coding section 921: packet transmission unit 931: received data analysis unit 9

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)

Abstract

 本発明は、疎グラフ符号における疎グラフを効率的に作成することを目的とする。 本発明は、選択的PEGアルゴリズムに関し、行重み/列重みを任意のマルチレベルで保ちながら疎行列を生成していき、その過程で、任意のノード間で形成される最小ループが大きくなるように、任意のエッジをinactiveにするか、制約付きインターリーブを行うことにより行列空間が狭い場合の符号化効率を改善する。

Description

疎グラフ作成装置及び疎グラフ作成方法
 本発明は、疎グラフ符号の疎グラフ生成装置及び方法に関し、特に任意のノード間で形成される最小ループを大きくとることにより疎グラフ符号を効率的に可能とする装置および方法に関する。
 現在、誤り訂正技術は衛星デジタル放送やインターネットでの通信、モバイル端末での通信など、各種通信システムで広く用いられている。とりわけ、近年のブロードバンド環境の発展に伴いインターネットを用いた動画配信サービスなどが期待されており、インターネット網に対する誤り訂正技術は重要なものになっている。以下、インターネット網を例に話を進める。
 インターネットを用いてサービスを行う側から通信路をみると、インターネット網は消失通信路(PEC:Packet Erasure Channel)と捉えることができる。これは2元消失通信路(図1)がパケットの単位としてグループ化されたものであり、通信路出力は正しい情報で出力されるか回線中の何らかの障害によって不明になったとして出力されるかのどちらかの場合となる通信路である。この通信系においては、FEC(Forward Error Correction)やARQ(Automatic Repeat reQuest)と呼ばれる消失パケット回復手法が用いられる。一般的なIPベースのサービスでは、TCP/IPプロトコルが用いられ、デコーダ側では誤り検出のみにとどめ、誤りが発生した場合は再送制御などで誤りを回復する方法が用いられている(ARQ方式)。しかし、マルチキャスト配信のような大規模なサービスを想定した場合、受信側で受け取ったデータを元に誤り訂正をすることが求められ、帰還通信路を必要とせず受信側のみで誤りを訂正できる方法が用いられる(FEC方式)。この、FEC方式は再送制御等を行わないことから遅延が少なく、リアルタイム性が重要となるテレビ会議システムでもFEC方式が用いられる。以下、FEC方式について話を進める。
 FEC方式として、デジタル放送などではリードソロモン符号(RS符号)が広く用いられている。日本のデジタル放送では符号長204バイトと定義されており、元データ188バイトに対しておよそ10[%]のパリティバイトを付加することで誤りに対して耐性を持たせている。しかし、一般に誤り訂正符号として符号長の長い符号を利用すれば性能がよくなることが知られているが、符号長が長くなると復号が複雑になり計算量が膨大になってしまうという弊害も知られている。そのため、RS符号では、符号長を256バイト以下として扱うことが前提とされている。また、RS符号をIPベースのパケットレベルFECと呼ばれるパケットに適応する場合、上記の理由から256パケットを1ブロックとして扱う必要が生じる。
 これに対して、確率伝搬アルゴリズム(Belief propagation algorithm)に基づいた復号法は符号長が長い場合に実用的な演算量で優れた復号特性を持つことが知られており、疎グラフにより定義される線形符号である低密度パリティ検査符号(Lowdensity parity check code:LDPC符号(例えば、非特許文献1参照)はShannonにより定義された通信路容量に迫る現実的な誤り訂正方法として注目されている。また、疎グラフに基づく消失訂正符号としては、Digital Fountain社のLT code(例えば、非特許文献2参照)やRaptor code(例えば、非特許文献3参照)が知られており、符号化効率を大きく劣化させずに任意の符号データを受信しただけで復号できる符号特性を実現的な演算量で達成することが知られている。この性質はインターネットマルチキャストプロトコルであるALC(Asynchronous Layered Coding(例えば、非特許文献4参照)と適合するために、レイヤード構成されたマルチキャスト通信などで広く用いられている。
R.G.Gallager,"Low density parity check codes",in Research Monograph series. Cambridge,MIT Press,1963 M.Luby,"LT Codes",The 43rd Annual IEEE Symposium on Foundations of Computer Science,2002 Shokrollahi,A,"Raptor codes"、Information Theory,IEEE Transactions on Volume 52,Issue 6,2006 "Asynchronou layered coding protocol instantiation",IETF RFC 3450,Dec.2002 Xiao-Yu Hu,Evangelos Eleftheriou, Dieter-Michael Arnold,"Progressive Edge-Growth Tanner Graphs",IEEE Global Telecommunications Conference,2001.GLOBECOM’01 Shiva K. Planjery and T.Aaron Gulliver,"Design of Rate-Compatible Punctured Repeat-Accumulate Codes",IEEE Global Telecommunications Conference,2007.GLOBECOM’07
 前述のように、疎グラフと確率伝搬アルゴリズムを用いた誤り訂正符号は従来達成出来なかった符号化特性を達成する。しかし、一般的に、疎グラフ符号が良く働く疎グラフ符号を構成することは難しいことが知られている。それは、確率伝搬アルゴリズムは疎グラフ中にループが無い場合にある種の最適性があることが知られているが実際にはループが発生してしまい、ループができるだけ大きくなる疎グラフを構成することは演算量の観点から困難であることが知られているためである。
 この問題を解決するために、疎グラフ全体としてみると最適とはならないループ構造を持つが、現実的な演算量で良い疎グラフを作る方法が提案されている(例えば、非特許文献5参照)。PEG(Progressive Edge-Growth)アルゴリズムと呼ばれる方法は、疎グラフ全体に対してノードの経(girth)を長くなるようにグローバル最適化するわけでなく、ノードを生成していく過程において、注目したノードに対してローカルグラフを作成し、その範囲でループを長くすることで、ある程度少ない演算量で良い疎グラフを作成する方法である。グラフでいうところの枝(線)をエッジと呼び、PEGアルゴリズムはこのエッジを作成する。また、疎行列とグラフの対応は、行列の列に対応するものを情報ノード、行に対応するものをチェックノード、疎行列の1のたつ場所が情報ノードとチェックノードをつなぐエッジに相当する。
 しかし、PEGアルゴリズムはローカルの範囲で短いループで満たされ、大きいループのエッジを作れない状態になってしまった場合、その後の行列はランダムに生成された行列となりループが大きくなる保証は全くなくなる。この状態になるとノードはランダムに作成されていくこととほぼ等しく、短いループが発生しやすくなる。この事象により、たとえば、レート可変型のLDPC符号(例えば、非特許文献6参照)などで作成された疎グラフを用いる場合など、疎グラフの一部が用いられるなどするために顕著な符号化効率の低下などを招くことがある。
 また、いくつかの列重みを有したイレギュラーの疎行列(以下、イレギュラー行列)を作成する場合、PEGアルゴリズムでは、重い列または行が入った後にループの大きくなるノードを見つけるのが難しくなりランダムに生成された疎グラフとなることが起きやすくなる。エッジが増え、ループが生まれやすくなるためである。
 本発明は上記の点に鑑みなされたもので、本発明は、疎グラフ符号における疎グラフを効率的に作成することを目的とする。
 上記目的を達成するために、本願発明は、LDPC符号のための疎行列の生成方法に関するものであり、特に、PEG(progressive edge-growth)アルゴリズムを改良して、疎行列中の任意ノード集合間で発生する短いループを長くするローカル最適化を行うために、疎行列の要求に応じてループを長くとるノード集合を選択することで、伝送レートに応じて符号化する効率を向上する。
 具体的には、本発明に係る疎グラフ作成装置は、
 疎グラフ符号に用いられる疎グラフを生成する疎グラフ作成装置であって、
 疎グラフ中の少なくとも一部のノードをイナクティブにするイナクティブ化部と、
 前記イナクティブ化部によってイナクティブにされた残りの疎グラフのなかから、ローカルグラフを作成する際のルートとなる任意のルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードを探索する探索部と、
 前記探索部の探索結果から設定された条件を満たすノードを、エッジを生成する位置に選択するノード選択部と、
 前記ノード選択部にて選択されたノードとルートノードを接続するルートノードエッジ接続部と、
 を備える。
 本発明に係る疎グラフ作成装置では、前記ノード選択部は、それまでのノード生成の過程から得られた探索に関する情報から次に探索する範囲を限定して探索することで少ない演算量でループを大きくとるノードを選択してもよい。
 具体的には、本発明に係る疎グラフ作成装置は、
 疎グラフ符号に用いられる疎グラフを生成する疎グラフ作成装置であって、
 疎グラフのなかから、ローカルグラフを作成する際のルートとなる任意のルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードを探索する探索部と、
 前記探索部の探索結果から設定された条件を満たすノードを、エッジを生成する位置に選択するノード選択部と、
 前記ノード選択部にて選択されたノードとルートノードを接続するルートノードエッジ接続部と、
 前記ルートノードエッジ接続部によって選択された位置にエッジが生成された疎グラフの各ノードを、疎行列の各重みが空間的に均一に配置されるように並び替える制約付きインターリーブ部と、
 を備える。
 本発明に係る疎グラフ作成装置では、前記制約付きインターリーブ部は、アクティブなノードのグラフ構造を保つように、疎グラフ中のノードを入れ替えてもよい。
 本発明に係る疎グラフ作成装置では、疎グラフのエッジ総数が変わらずかつ最小のループが短くならないように、新たなノードを設置するノード拡張部をさらに備えてもよい。
 具体的には、本発明に係る疎グラフ作成方法は、
 疎グラフ符号に用いられる疎グラフを生成する疎グラフ作成方法であって、
 疎グラフ中の少なくとも一部のノードをイナクティブにするイナクティブ化手順と、
 前記イナクティブ化手順によってイナクティブにされた残りの疎グラフのなかから、ローカルグラフを作成する際のルートとなる任意のルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードを探索する探索手順と、
 前記探索手順の探索結果から設定された条件を満たすノードを、エッジを生成する位置に選択するノード選択手順と、
 前記ノード選択手順にて選択されたノードとルートノードを接続するルートノードエッジ接続手順と、
 を順に有する。
 本発明に係る疎グラフ作成方法では、前記ノード選択手順において、それまでのノード生成の過程から得られた探索に関する情報から次に探索する範囲を限定して探索することで少ない演算量でループを大きくとるノードを選択してもよい。
 具体的には、本発明に係る疎グラフ作成方法は、
 疎グラフ符号に用いられる疎グラフを生成する疎グラフ作成手順であって、
 疎グラフのなかから、ローカルグラフを作成する際のルートとなる任意のルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードを探索する探索手順と、
 前記探索手順の探索結果から設定された条件を満たすノードを、エッジを生成する位置に選択するノード選択手順と、
 前記ノード選択手順にて選択されたノードとルートノードを接続するルートノードエッジ接続手順と、
 前記ルートノード接続手順によって選択された位置にエッジが生成された疎グラフの各ノードを、疎行列の各重みが空間的に均一に配置されるように並び替える制約付きインターリーブ手順と、
 を順に有する。
 本発明に係る疎グラフ作成方法では、前記制約付きインターリーブ手順において、アクティブなノードのグラフ構造を保つように、疎グラフ中のノードを入れ替えてもよい。
 本発明に係る疎グラフ作成方法では、疎グラフのエッジ総数が変わらずかつ最小のループが短くならないように、新たなノードを設置するノード拡張手順を、前記ノード選択手順の後でありかつ前記制約付きインターリーブ手順の前にさらに有してもよい。
 なお、上記各発明は、可能な限り組み合わせることができる。
 本発明によれば、疎グラフ符号における疎グラフを効率的に作成することができる。
パケット消失通信路の一例を示す。 本実施形態に係る通信システムの一例を示す。 実施形態1に係る疎行列作成装置の一例を示す。 疎行列キャッシュ部102に保存されている行列の一例を示す。 LDGM符号のパリティ検査行列のツリー展開の一例を示す。 長さ4のループの一例を示す。 長さ6のループの一例を示す。 イナクティブ化の一例を示す。 実施形態2に係る疎行列作成装置の一例を示す。 インターリーブ前の行列の一例を示す。 インターリーブ後の行列の一例を示す。 インターリーブ前の2つの行列の一例を示す。 実施形態3に係る疎行列作成装置の一例を示す。 レート可変型疎行列の生成過程の一例であり、生成された小さい疎行列を示す。 レート可変型疎行列の生成過程の一例であり、拡張された小さい疎行列を示す。 レート可変型疎行列の生成過程の一例であり、列拡張された小さい疎行列を示す。 レート可変型疎行列の生成過程の一例であり、制約付きインターリーブ後の疎行列を示す。 ノードの拡張例を示す。 実施形態3に係る疎行列作成装置の第2の構成例を示す。
 以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
 本発明は通信路の種類に依存せずに実施することができるが、一例としてマルチキャスト配信で用いられるUDPプロトコルを用いたパケット配信を例として説明する。UDPプロトコルを用いると、UDPパケットがロスした場合もTCPプロトコルとは異なり再送処理は行われないが、図1に示すように、受信パケットは正しいか否かを判別できると共にロスしたパケットの位置が正確に判別できる消失通信路と見える特徴がある。
 図2に、本実施形態に係る通信システムの一例を示す。本実施形態に係る通信システムは、通信路符号化装置91と、パケット伝送装置92と、パケットベース受信装置93と、通信路復号装置94と、を備える。通信路符号化装置91は、疎行列を用いて送信データの符号化を行う。パケット伝送装置92は符号化した送信データを送信する。パケットベース受信装置93は送信データを受信する。通信路復号装置94は、疎行列を用いて受信データの復号化を行う。通信路符号化装置91における符号化及び通信路復号装置94における復号化は、本実施形態に係る疎行列作成装置として機能する疎行列作成部10の作成した疎行列を用いる。
 本実施形態に係る通信システムの一例として、本発明により実現可能なパケットレベルFECに対する誤り訂正機能を説明する。映像データや音声データといった送信データは通信路符号化装置91により符号化が行われる。この際、通常、通信路符号化装置91は、後に接続されるパケット伝送装置92のパケットサイズなどを考慮してフラグメントなどを行う。符号化にLDPC符号などの線形符号が用いられる場合、通信路符号化装置91は以下の符号化処理により冗長化データを作成する。
Figure JPOXMLDOC01-appb-M000001
ただし、Sは映像データなどの入力データがある一定の大きさでフラグメントされたものであり、G及びTは疎グラフに対応する疎行列である。また、LDPC符号がLDPC-Staircaseと呼ばれるタイプである場合、Tは階段行列となる。T-1はアキュムレータに置き換えることができ、アキュムレータを用いることで符号化の処理を高速に出来る。
 図中の疎行列作成部10は、符号化効率及び復号化効率が良くなるような行列G及びTを、少ない演算量で生成する。作成された疎行列の情報量は多いため、一般的には疎行列のパラメータを抽出して復号側の通信路復号装置94に通知する。パラメータは、例えば、生成されたパリティーデータ及びFEC補助情報である。パケットベース伝送装置92は、抽出したパラメータを映像データや音声データと共に、FLUTE規格(RFC 3926)やMPEG media trans-port(ISO/IEC 23008-1)規格などで伝送される。受信側のパケットベース受信装置93は、パケットベース伝送装置92から送信されたパケットを受信する。この際、パケットベース受信装置93は、FLUTEのヘッダーフォーマット等と照らしあわせ、パケット消失が発生している場合は通信路復号装置94にて消失パケットの回復が試みられる。通信路復号装置94は、符号化に対応し、以下の制約式が成り立つことが補助情報などから予め共有されている。
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000003
 ここで、G及びTは疎グラフに対応する疎行列であり、符号化側と全く同じ情報を用いる。
 通常、疎行列情報はデータ量が多いため、パラメータとして符号化側から復号側に通知されることで共有されることが一般的である。復号側は、通知されるパラメータから、疎行列作成部10によって符号化側と同じ疎行列を生成する。復号側では消失したパケットを、上式を用いて復号する。今、εを消失したパケットのインデックス集合とし、Hεを消失したパケットに対応するパリティ検査行列とし、xεを消失したパケットの集合とすると、上式は次式に書き換えられる。
Figure JPOXMLDOC01-appb-M000004
ただし、右辺のε’は受信したパケットのインデックス集合である。
 上式より、もしHεのランク数が消失パケットの数|xε|であれば消失したパケットは最尤復号により回復することができる。復号方法は様々な手法が提案されており、メッセージパッシングアルゴリズムにより回復を行う方法、ガウスの消去法により回復を行う方法などがある。一般的に、メッセージパッシングアルゴリズムでは、疎グラフの疎性を活かした復号が可能なためO(N)での復号が可能であるが、ガウスの消去法においては、逆行列を求めるプレ処理にO(N)、パケットを実際に回復する演算処理にO(N)の演算が必要になる。
 本発明によると、通信路符号化装置および通信路復号装置において誤り訂正能力の高い、符号化効率の高い疎行列を高速に作成することができ、また、本行列はメッセージパッシングアルゴリズムでもガウスの消去法でも効率的に誤りを訂正することができる。さらに、レート可変型のLDPC符号と組み合わせることで、行列を毎回0から作り直さなくてもよいため、1つの疎行列を様々なレートに適用した場合も符号化効率の高い誤り訂正を実行することができる。
(実施形態1)
 本実施形態では、選択的PEGアルゴリズムは行重み/列重みを任意のマルチレベルで保ちながら疎行列を生成していき、その過程で、任意のエッジをinactiveにすることにより行列空間が狭い場合の符号化効率を改善する。
 本実施形態に係る疎グラフ作成方法は、イナクティブ化手順と、探索手順と、ノード選択手順と、ルートノードエッジ接続手順と、を順に有する。
 イナクティブ化手順では、疎グラフ中の少なくとも一部のノードをイナクティブにする。
 探索手順では、イナクティブにされた残りの疎グラフのなかから、ローカルグラフを作成する際のルートとなる任意のルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードを探索する。
 ノード選択手順では、探索結果から設定された条件を満たすノードを選択する。
 ルートノードエッジ接続手順では、ノード選択手順にて選択されたノードとルートノードを接続する。
 図3に、本実施形態に係る疎行列作成装置の基本構成図を示す。本実施形態に係る疎行列作成装置100は、代数的構造生成部101と、疎行列キャッシュ部102と、乱数生成部103と、ルートノードエッジ接続部104と、ノードイナクティブ化部105と、イナクティブ化制御部106と、探索深度制御部107と、探索部108と、ノード選択部109と、インターリーブ部110と、を備える。これによって、本実施形態に係る疎行列作成部100及び疎グラフ作成方法は、マルチレベルのレート制御を高効率に達成するレート可変型の誤り訂正符号を実現する。
 代数的構造生成部101は、疎グラフが特別な構造を持っていた場合に考慮される。疎行列キャッシュ部102は、生成していく疎行列を保存する。乱数生成部103は、確率的に符号を構成する。ルートノードエッジ接続部104は、ローカルグラフにおけるループを大きく取る際に基準とするルートノードと接続するエッジを選択する。ノードイナクティブ化部105は、ローカルグラフにおけるループを大きく取る際に考慮しないノードを選択する。イナクティブ化制御部106は、ノードイナクティブ化部105の処理においてその条件を定める。探索深度制御部107は、ローカルグラフにおけるループを大きく取る際に探索するノードの深さを制御する。探索部108は、探索深度制御部107の制御情報に基づきルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードの探索を行う。ノード選択部109は、探索部108の探索結果から条件を満たすノードを選択する。条件とは、例えばいかなる5つのエッジを通じてもルートノードから到達できないチェックノードなどである。インターリーブ部110は、作成された疎行列を列入れ替えなどにより入れ替える制約付きインターリーブ部である。以下それぞれの構成要素について説明する。
 本システムは消失通信路上で発生した消失を効率的に回復する通信路復号システムである。以下では簡単のために、本システムが有効に機能する1つの最良の例として、消失通信路の代表的な通信路であるインターネット上でのIPパケット伝送を想定し、疎グラフで構成されるLDPC-Staircase符号を想定した例を述べる。
 入力データが疎行列作成装置100に入力され疎行列の作成が開始される。入力されるデータは、符号化レートに関わる行列のサイズ、行列の重みに関する情報、探索深度の初期値、など、行列生成に必要な情報が入力される。行列のサイズは、例えば、縦サイズ及び横サイズである。行列の重みに関する情報は、例えば、列重み3が何列で、列重み7が何列かである。
 まず、代数的構造生成部101では、今回LDPC-Staircase符号を想定しているので、代数的構造として階段行列が生成される。生成された階段行列は疎行列キャッシュ部102に保存される。
 次に、ルートノードエッジ接続部104にてローカルグラフを作成する際のルートノードと1つのノードがエッジを通じて接続される。ここで、ローカルグラフとは、疎グラフの生成過程においてルートノードから接続される候補となるノードから構成されるグラフである。ルートノードとは、新しくエッジを追加していくターゲットとしているノードであり、ツリーで表現したときに一番上に配置されるノードである。
 疎グラフの生成過程において列に対応するルートノードが初めて選択される場合、そこからエッジにて接続するノードを選択する方法は様々な方法が考えられるが、例えば、行重みを計算して一番重みの軽いチェックノード集合の中からランダムに選択するなどが実施される。この制約を課した場合、行方向にレギュラーな疎行列が生成されることとなる。この処理の際、乱数生成部103により生成される乱数によりルートノードから接続されるチェックノードを選択する。
 ルートノードエッジ接続部104でルートノードと接続されるチェックノードが選択されエッジ接続されると、次はノードイナクティブ化部105に移行する。ノードイナクティブ化部105ではローカルグラフを作成する際に探索に含めないノードを、イナクティブ化制御部106の情報に基づいて、指定する。しかし、行列を生成するにあたり、探索時間を極端に減らしたい等の特別な要望が無い場合は、ノードをイナクティブにするメリットが無いため、行列が生成されるある時点まで、イナクティブ化制御部106は、通常、イナクティブにするノードを指定しない。
 探索部108では、イナクティブ化されていないアクティブなノードに対して、探索深度制御部107の情報に基づいて探索を行う。探索操作について図4及び図5を用いて説明する。図4は疎行列キャッシュ部102に保存されている行列の一例であり、図5はルートノードと最小のエッジ数で接続されるチェックノードとの接続関係を示す。
 今、図4記載の行列が既に生成されており、丸で囲まれている「1」がルートノードエッジ接続部104においてルートノードと接続されるチェックノードに選択されているとする。また、全てのノードがアクティブな状態であり、探索深度(Depth)は「1」が与えられているとする。本実施形態において、Depth=1というのは1段階の探索を表すこととする。この場合、探索部108では、1段階の探索を実施することとする。1段階の探索とは、ルートノードとアクティブなチェックノードが、3つのエッジを通じてつながっている(長さ3でつながる)ノードを探すことである。図5で示した例では、ルートノードに相当するソースノードNS00と長さ3でつながるチェックノードは4つあり、1番目、2番目、3番目、5番目のチェックノードNC01、NC02、NC03、NC05とつながっていることがわかる。図4の例では、ルートノードと3番目のチェックノードが接続されているため3番目のチェックノードには1は立てられない。この場合、1番目、2番目、5番目のチェックノードNC01、NC02、NC05に1を立てた場合、図5のDepth=1で示されているように、長さ4のループが出来てしまう。ここで、長さ4のループとは、ノードを表す「1」が図6に示すようなノード配置になった状態である。この配置は符号化効率が落ちるため、長さ4のループは無い方が好ましい。
 なお、2段階の探索を行った場合、5本のエッジを通じて到達できるチェックノードを探索することになり、4番目のチェックノードにもエッジが到達してしまうため、図5に示すノードの配置では、図7に示すような長さ6のループを回避するチェックノードの選択は出来ない。
 ノード選択部109は、探索部108の探索結果を受けて、追加するノード位置を決定する。例えば、いかなる3つのエッジを通じてもルートノードから到達できないノードなどである。選択候補が複数ある場合は、候補のノード集合からランダムに選択するか、行列上部から埋めていく、行重みが軽いものから埋めていく、などの方法がとられる。また、ランダムに選択する場合は、乱数生成部103にて生成される乱数を利用する。
 ノード選択部109で1つのノードが選択されたら、ルートノードエッジ接続部104に戻り、今度はノード選択部109に選択されたノードとのエッジを追加して105、108、109と同様の処理を行う。任意のノード数(e.g.、3つのノード等)が生成され列処理が終わると、選択されたノードは疎行列キャッシュ部102に保存される。
 なお、処理を進めていく上でノード選択部109にて選択できるノードが無い場合(条件を満たす候補が無い場合)、探索深度制御部107が探索深度を変更して探索する範囲を狭くする、または、イナクティブ化制御部106にてイナクティブにするノードを選択し、探索対象となるアクティブとなるノードを減らす処理を行う。これらの処理は、片方ずつ行うこともできるし、同時に行うこともできるが、たとえば、探索範囲制御部107にて探索する深度の変更を行っていき、1段階の探索でも選択できるノードが無くなった場合、イナクティブ化制御部106の設定を変更し、それまでに生成したノードをイナクティブにし、再び探索範囲制御部107の探索深度を大きくして行列生成を続ける、などの方法が有効となる。
 図8を用いてノードイナクティブ化部105の処理の説明を行う。図8の左の行列は行列の生成を進めていった途中過程のものである。今、9列目のノードを作成しようとしており、1番目のチェックノードをルートノードとして選択している。しかし、1段階の探索を行った際に2番目、3番目、4番目、5番目のその他全てのチェックノードにおいて長さ3のエッジで接続されてしまい、どこのノードを選択しても長さ4のループが発生してしまう状況である。そこで、イナクティブ化制御部106は、既に作成したノードの半分をイナクティブにすると判断し、ノードイナクティブ化部105が1列目から4列目までのノードをイナクティブ化にする(図8の右)。このイナクティブ化により、3番目、4番目、5番目のいずれのチェックノードも選択することが出来るようになっている。これにより、本実施形態に係る疎行列作成装置100は、生成された行列の一部が用いられた場合も、優れた符号化効率が達成できる他、イナクティブ化をするノードを列重みにより変更などすることで素早く効率的に符号化効率の良い疎行列を作成することが可能となる。なお、イナクティブ化するノードはレート可変のパラメータ等により任意に変更される。例えば、本例では階段行列に相当するノードは需要度が高いためイナクティブ化をせず、常にアクティブにしておくことが望ましい結果となる。
 最後に、疎行列の要素ができあがると、生成された疎行列はインターリーブ部110に送られる。インターリーブ部110では、任意の範囲で切り取った場合もループが広くなりかつ行列重みが平均的になるような列の並び替えが行われ、疎行列情報が出力データとして出される。
(実施形態2)
 本実施形態では、選択的PEGアルゴリズムは行重み/列重みを任意のマルチレベルで保ちながら疎行列を生成していき、その過程で、制約付きインターリーブを行うことにより行列空間が狭い場合の符号化効率を改善する。
 本実施形態に係る疎グラフ作成方法は、探索手順と、ノード選択手順と、ルートノードエッジ接続手順と、制約付きインターリーブ手順と、を順に有する。
 探索手順では、疎グラフのなかから、ローカルグラフを作成する際のルートとなる任意のルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードを探索する。
 ノード選択手順では、探索結果から設定された条件を満たすノードを選択する。
 ルートノードエッジ接続手順では、ノード選択手順にて選択されたノードとルートノードを接続する。
 制約付きインターリーブ手順では、選択された位置にノードが生成された疎グラフの各ノードを、ローカルグラフの関係を保つように疎行列の各重みが空間的に均一に配置されるように並び替える。
 図9に、本実施形態に係る疎行列作成装置の基本構成図を示す。本実施形態に係る疎行列作成装置200は、代数的構造生成部201と、疎行列キャッシュ部202と、乱数生成部203と、ルートノードエッジ接続部204と、探索部208と、探索深度制御部207と、ノード選択部209と、制約付きインターリーブ部210と、を備える。本実施形態に係る疎行列作成装置200は、マルチレベルのレート制御を高効率に達成するレート可変型の誤り訂正符号を実現する。
 代数的構造生成部201は、疎グラフが特別な構造を持っていた場合に考慮される。疎行列キャッシュ部202は、生成していく疎行列を保存する。乱数生成部203は、確率的に符号を構成する。ルートノードエッジ接続部204は、ローカルグラフにおけるループを大きく取る際に基準とするルートノードと接続するエッジを選択する。探索部208は、探索深度制御部207の制御情報に基づき最短のエッジ数を通じて到達できるノードの探索を行う。探索深度制御部207は、探索部208で探索する深度をコントロールする。ノード選択部209は、探索結果から条件を満たすノードを選択する。制約付きインターリーブ部210は、作成された疎行列を列入れ替えなどにより入れ替える。以下それぞれの構成要素について説明する。
 本システムは消失通信路上で発生した消失を効率的に回復する通信路復号システムである。以下では簡単のために、本システムが有効に機能する1つの最良の例として、消失通信路の代表的な通信路であるインターネット上でのIP。パケット伝送を想定し、符号を疎グラフで構成されるLDPC-Staircase符号を想定した例を述べる。
 入力データが疎行列作成装置200に入力され疎行列の作成が開始される。入力されるデータは、符号化レートに関わる行列のサイズ(e.g.、縦サイズ、横サイズ)、行列の重みに関する情報(e.g.、列重み3が何列で、列重み7が何列か)、探索深度の初期値、など、行列生成に必要な情報が入力される。
 まず、代数的構造生成部201は、今回LDPC-Staircase符号を想定しているので、代数的構造として階段行列が生成される。生成された階段行列は疎行列キャッシュ部202に保存される。
 次に、ルートノードエッジ接続部204は、ローカルグラフを作成する際のルートとなるノードから接続されるノードをエッジで接続する。ルートノードからチェックノードに接続されるエッジがその列で初めて選択される場合、エッジの選択方法は様々な方法が考えられるが、例えば、行重みを計算して一番重みの軽いチェックノード集合の中からランダムに選択するなどが実施される。この制約を課した場合、行方向にレギュラーな疎行列が生成されることとなる。この処理の際、乱数生成部203により生成される乱数によりチェックノードを選択しエッジで接続する。
 ルートノードエッジ接続部204でルートノードからエッジが接続されると、探索部208では探索深度制御部207の情報に基づいて探索を行う。探索部208の動作は、実施形態1記載の探索部108と同じであるためにここでは探索操作の詳細については省略する。
 ノード選択部209では、探索部208の探索結果を受けて、追加するノードを決定する。選択候補が複数ある場合は、候補のノード集合からランダムに選択するか、行列上部から埋めていく、行重みが軽いものから埋めていく、などの方法がとられる。また、ランダムに選択する場合は、乱数生成部203にて生成される乱数を利用する。
 ノード選択部209で1つのノードが選択されたら、ルートノードエッジ接続部204に戻り、今度は選択されたエッジをルートノードと接続して探索部208及びノード選択部209と同様の処理を行い、任意のノード数(e.g.3つのノード等)が作成され列処理が終わるまで繰り返す。その後、選択されたノードは疎行列キャッシュ部202に保存される。
 なお、処理を進めていく上でノード選択部209にて選択できるノードが無い場合(条件を満たす候補が無い場合)、探索深度制御部207が探索深度を変更して探索する範囲を狭くするのも実施形態1と同様である。しかし、探索範囲を狭めて行ってもノード選択部204にて選択できるノードが現れない場合も発生する。その際は、探索深度制御部207にて探索をしないように制御し、探索部208をスキップすることで任意の重みを有した疎行列を生成していく。
 なお、本実施形態にてイレギュラー行列の生成を行う場合、先に軽い重みを有した列(e.g.列重み3の列)を生成していき、その後に重い重みを有した列(e.g.列重み7の列)を生成していく、などすることで符号化効率の良い行列を生成することができる。図10及び図11に、疎行列全てのノード選択が行われた後に疎行列キャッシュ部202に保存されている疎行列例を示す。まず、疎行列は、代数的構造生成部201で作成された階段行列を左から有しており、その次に列重み3の疎行列が続き、最後に列重み7の疎行列が続いている。
 最後に、疎行列の要素ができあがると、生成された疎行列は制約付きインターリーブ部210に送られ、任意の範囲で切り取った場合もループが広くなりかつ行列重みが平均的になるような列の並び替えが行われ、疎行列情報が出力データとして出される。この制約付きインターリーブ部210により、たとえば、図10に示す疎行列は、図11に示す行列へと並び替えられる。
 すなわち、図10の「T」で示す階段行列は、パリティ検査行列の右側に位置される。また、図10において列重み3の「G1」で示される疎行列と列重み7の「G2」で示される疎行列は、図11に示される混合疎行列「G」が作成されている。混合疎行列「G」は、列重み3の疎行列と列重み7の疎行列とが空間的な平均を取った場合に均一となるように混ぜられている。
 また、同時に、この混合疎行列「G」は、列重み3の疎行列内、また、列重み7の疎行列内の順番関係を保っている。すなわち、列重み3のノードN31、N32、N33、N34、列重みのN71、N72、N73、N74の各列が、混合疎行列「G」においてN31、N71、N32、N72、N33、N73、N34、N74の順に配列されている。このように制約付きインターリーブすることにより、たとえば、ソースに関する長さを変更しようと、4番を0埋め処理によりレート可変にしたとしても、優れた符号化性能が保たれるように処理されている。
 なお、制約付きインターリーブ部210は、2つの疎行列から合成して1つの疎行列を生成してもよい。図12に、本実施形態に係る疎行列作成装置が生成した、列重みの異なる2つの疎行列を示す。この場合も、制約付きインターリーブ部210により、列重み3の疎行列、列重み7の疎行列は、図11に示すような列重み3と列重み7の混合疎行列「G」として混ぜられ、階段行列が右側にくるように並び替えられている。
 本実施形態では、実施形態1のノードイナクティブ化部105を備えないため、複数の疎行列を作成することで実施形態1のノードイナクティブ化部105と類似した機能を持たせることもできる。
(実施形態3)
 図13に、本実施形態に係る疎行列作成装置の基本構成図を示す。本実施形態に係る疎行列作成装置300は、マルチレベルのレート制御を高効率に達成するレート可変型の誤り訂正符号を実現する。本実施形態に係る疎行列作成装置300は、代数的構造生成部301と、疎行列キャッシュ部302と、乱数生成部303と、ルートノードエッジ接続部304と、ノードイナクティブ化部305と、イナクティブ化制御部306と、探索深度制御部307と、探索部308と、ノード選択部309と、拡張エッジ選択部310と、ノード拡張部311と、制約付きインターリーブ部312と、を備える。
 代数的構造生成部301は、疎グラフが特別な構造を持っていた場合に考慮される。疎行列キャッシュ部302は、生成していく疎行列を保存する。乱数生成部303は、確率的に符号を構成する。ルートノードエッジ接続部304は、ローカルグラフを作成する際のルートとなるノードから接続されるノードをエッジで接続する。ノードイナクティブ化部305は、ローカルグラフにおけるループを大きく取る際に考慮しないノードを選択する。イナクティブ化制御部306は、ノードイナクティブ化部305の処理においてその条件を定める。探索深度制御部307は、ローカルグラフにおけるループを大きく取る際に探索する深さを制御する。探索部308は、探索深度制御部307の制御情報に基づきルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードの探索を行う。ノード選択部309は、探索部308の探索結果から条件を満たすノードを選択する。拡張エッジ選択部310は、拡張するチェックノードに移行するエッジを選択する。ノード拡張部311は、疎グラフ中のエッジの数を保ったままチェックノードを増やす。制約付きインターリーブ部312は、作成された疎行列を列入れ替えなどにより入れ替える。以下それぞれの構成要素について説明する。
 本システムは消失通信路上で発生した消失を効率的に回復する通信路復号システムである。以下では簡単のために、本システムが有効に機能する1つの最良の例として、消失通信路の代表的な通信路であるインターネット上でのIPパケット伝送を想定し、符号を疎グラフで構成されるLDPC-Staircase符号を想定した例を述べる。また、本実施形態では、特に冗長度を大きく変更することが可能なレート可変型に特化した例にて説明を行う。
 入力データが疎行列作成装置300に入力され疎行列の作成が開始される。入力されるデータは、符号化レートに関わる行列のサイズ(e.g.、縦サイズ、横サイズ)、行列の重みに関する情報(e.g.、列重み3が何列で、列重み7が何列か)、探索深度の初期値、など、行列生成に必要な情報が入力される。また、加えて、レート可変に対応するパラメータとして、最小の行列サイズや、最大の行列サイズ、それぞれの冗長化率といった情報が入力される。
 代数的構造生成部301での処理から、ノード選択部309までの処理では、基本的には実施形態1の101~109までのそれぞれの処理と同様なため詳細は省略するが、レート可変に対応する行列を生成するために、ルートノードエッジ接続部304とノード選択部309のノード選択において、最小行列サイズの範囲に収まるようにノードを選択し、エッジにて接続する。すなわち、図14のようにノードを選択する領域を制限して小さい疎行列は生成され、疎行列キャッシュ部302に保存される。なお、図14~図17のG1は任意の重みを持つ疎行列であり、レギュラー行列、イレギュラー行列、様々なものを作成することができる。
 次に、生成された小さい疎行列は拡張エッジ選択部310およびノード拡張部311を通りチェックノードの拡張が行われる。この拡張のやり方は様々な方法が考えられるが、ここでは、ソースノードおよびエッジの数は変わらず、チェックノードの数のみ変更する方法を用いることとする。図18にその処理の概要を示す。図18左は、図14のG1が拡張される前の状態を表している。拡張エッジ選択部310が拡張エッジを選択する。すなわち、図18ではNC及びNCに接続しているエッジのうち、拡張するエッジを選択する。そして、ノード拡張部311がチェックノードNC及びNCを増設し、拡張エッジ選択部310で選択されたエッジをはり替える。これにより、図18右に示すように、チェックノードNC及びNCが増える。
 この拡張の際、拡張エッジ選択部310ではエッジではどのエッジを拡張されたノードに接続するか(またはそれまでに接続されていたチェックノードに残すか)の選択は乱数生成部303にて生成される乱数によりランダムに選択される。また、この処理ではどのチェックノードも接続しているエッジの数が大体同じになるように、拡張エッジを選択する。このエッジ選択を受け、ノード拡張部311がチェックノードの拡張を行う。この拡張の結果、図14のG1は図15のG2となり、チェックノードが増えた疎グラフ構造をもつようになる。拡張された疎行列は、疎行列キャッシュ部302に保存される。
 その後、さらに、列方向へのノード生成を続ける。手順はそれまでのプロセスと同様であり、ルートノードエッジ接続部304からノード選択部309までの列作成手順を実行する。この際、ルートノードエッジ接続部304およびノード選択部309では、前手順で行っていた空間的な制限を設けない。それにより、図16に示すG3のように、領域限定されない部分的な疎行列が生成される。
 最後に、疎行列の要素ができあがると、生成された疎行列は制約付きインターリーブ部312に送られ、任意の範囲で切り取った場合もループが広くなりかつ行列重みが平均的になるような列の並び替えが行われ、疎行列情報が出力データとして出される。例えば、図17に示すように、疎行列G2及びG3は列重みが平均的になるように並び替えられて疎行列G2’及びG3’となる。疎行列G2’及びG3’は、図10及び図11に示した制約付きインターリーブのように、列重みが同じものでは列の入れ替えが行われない制約がついたインターリーブとなっている。このように構成することにより、G3’の右側から0埋めによりレート可変した場合や、G2’をパンクチャー処理によりレート可変にした場合でも、符号化効率の高い行列を生成することができる。
 なお、本実施形態では、単純なレート可変の例で説明を行ったが、本実施形態は容易にマルチレートのレート可変に対応する行列を生成する方法に拡張することができる。
 本実施形態では、実施形態1の構成にさらに拡張エッジ選択部310及びノード拡張部311を備える例について説明したが、これに限定されない。例えば、図19に示すように、実施形態2の構成にさらに拡張エッジ選択部310及びノード拡張部311を備えてもよい。
 また、本実施形態に係る発明は、実施形態1の構成にさらに実施形態2で説明した制約付きインターリーブの機能を備える。このように、実施形態1の発明と実施形態2の発明を組み合わせることも可能である。この組み合わせによって、符号化効率をさらに改善することができる。
 以上の説明で明らかなように本発明によれば、本発明は、疎グラフ符号の疎行列作成において、マルチレベルのレート制御を高効率に達成するレート可変型の誤り訂正符号を実現する疎行列の作成を可能とする。
 本発明は情報通信産業に適用することができる。
10:疎行列作成部
91:通信路符号化装置
92:パケットベース伝送装置
93:パケットベース受信装置
94:通信路復号装置
100、200、300、400:疎行列作成装置
101、201,310、401:代数的構造生成部
102、202、302、402:疎行列キャッシュ部
103,203、303、403:乱数生成部
104、204、304、404:ルートノードエッジ接続部
105、305:ノードイナクティブ化部
106、306:イナクティブ化制御部
107、207、307、406:探索深度制御部
108、208、308、405:探索部
109、209、309、407:ノード選択部
110:インターリーブ部
210、312、410:制約付きインターリーブ部
310、408:拡張エッジ選択部
311、409:ノード拡張部
911:通信路符号化部
921:パケット伝送部
931:受信データ解析部
941:通信路復号部

Claims (10)

  1.  疎グラフ符号に用いられる疎グラフを生成する疎グラフ作成装置であって、
     疎グラフ中の少なくとも一部のノードをイナクティブにするイナクティブ化部と、
     前記イナクティブ化部によってイナクティブにされた残りの疎グラフのなかから、ローカルグラフを作成する際のルートとなる任意のルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードを探索する探索部と、
     前記探索部の探索結果から設定された条件を満たすノードを、エッジを生成する位置に選択するノード選択部と、
     前記ノード選択部にて選択されたノードとルートノードを接続するルートノードエッジ接続部と、
     を備える疎グラフ作成装置。
  2.  前記ノード選択部は、それまでのノード生成の過程から得られた探索に関する情報から次に探索する範囲を限定して探索することで少ない演算量でループを大きくとるノードを選択する
     ことを特徴とする請求項1に記載の疎グラフ作成装置。
  3.  疎グラフ符号に用いられる疎グラフを生成する疎グラフ作成装置であって、
     疎グラフのなかから、ローカルグラフを作成する際のルートとなる任意のルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードを探索する探索部と、
     前記探索部の探索結果から設定された条件を満たすノードを、エッジを生成する位置に選択するノード選択部と、
     前記ノード選択部にて選択されたノードとルートノードを接続するルートノードエッジ接続部と、
     前記ルートノードエッジ接続部によって選択された位置にエッジが生成された疎グラフの各ノードを、疎行列の各重みが空間的に均一に配置されるように並び替える制約付きインターリーブ部と、
     を備える疎グラフ作成装置。
  4.  前記制約付きインターリーブ部は、アクティブなノードのグラフ構造を保つように、疎グラフ中のノードを入れ替える
     ことを特徴とする請求項3に記載の疎グラフ作成装置。
  5.  疎グラフのエッジ総数が変わらずかつ最小のループが短くならないように、新たなノードを設置するノード拡張部をさらに備えることを特徴とする請求項1から4のいずれかに記載の疎グラフ作成装置。
  6.  疎グラフ符号に用いられる疎グラフを生成する疎グラフ作成方法であって、
     疎グラフ中の少なくとも一部のノードをイナクティブにするイナクティブ化手順と、
     前記イナクティブ化手順によってイナクティブにされた残りの疎グラフのなかから、ローカルグラフを作成する際のルートとなる任意のルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードを探索する探索手順と、
     前記探索手順の探索結果から設定された条件を満たすノードを、エッジを生成する位置に選択するノード選択手順と、
     前記ノード選択手順にて選択されたノードとルートノードを接続するルートノードエッジ接続手順と、
     を順に有する疎グラフ作成方法。
  7.  前記ノード選択手順において、それまでのノード生成の過程から得られた探索に関する情報から次に探索する範囲を限定して探索することで少ない演算量でループを大きくとるノードを選択する
     ことを特徴とする請求項6に記載の疎グラフ作成方法。
  8.  疎グラフ符号に用いられる疎グラフを生成する疎グラフ作成手順であって、
     疎グラフのなかから、ローカルグラフを作成する際のルートとなる任意のルートノードと接続されているアクティブなノードから最短のエッジ数を通じて到達できるノードを探索する探索手順と、
     前記探索手順の探索結果から設定された条件を満たすノードを、エッジを生成する位置に選択するノード選択手順と、
     前記ノード選択手順にて選択されたノードとルートノードを接続するルートノードエッジ接続手順と、
     前記ルートノード接続手順によって選択された位置にエッジが生成された疎グラフの各ノードを、疎行列の各重みが空間的に均一に配置されるように並び替える制約付きインターリーブ手順と、
     を順に有する疎グラフ作成方法。
  9.  前記制約付きインターリーブ手順において、アクティブなノードのグラフ構造を保つように、疎グラフ中のノードを入れ替える
     ことを特徴とする請求項8に記載の疎グラフ作成方法。
  10.  疎グラフのエッジ総数が変わらずかつ最小のループが短くならないように、新たなノードを設置するノード拡張手順を、前記ノード選択手順の後でありかつ前記制約付きインターリーブ手順の前にさらに有することを特徴とする請求項6から9のいずれかに記載の疎グラフ作成方法。
PCT/JP2014/076910 2013-10-22 2014-10-08 疎グラフ作成装置及び疎グラフ作成方法 WO2015060130A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP17181109.4A EP3264612B1 (en) 2013-10-22 2014-10-08 Ldpc code construction using a modified progressive edge-growth (peg) algorithm
EP14855171.6A EP3062445A4 (en) 2013-10-22 2014-10-08 Sparse graph creation device and sparse graph creation method
US15/027,456 US11303305B2 (en) 2013-10-22 2014-10-08 Sparse graph creation device and sparse graph creation method
BR112016007458A BR112016007458A2 (pt) 2013-10-22 2014-10-08 dispositivo de criação de gráfico esparso que cria um gráfico esparso utilizado para um código de gráfico esparso, e, método de criação de gráfico esparso que cria um gráfico esparso utilizado para um código de gráfico esparso

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-218933 2013-10-22
JP2013218933A JP5792256B2 (ja) 2013-10-22 2013-10-22 疎グラフ作成装置及び疎グラフ作成方法

Publications (1)

Publication Number Publication Date
WO2015060130A1 true WO2015060130A1 (ja) 2015-04-30

Family

ID=52992732

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/076910 WO2015060130A1 (ja) 2013-10-22 2014-10-08 疎グラフ作成装置及び疎グラフ作成方法

Country Status (5)

Country Link
US (1) US11303305B2 (ja)
EP (2) EP3062445A4 (ja)
JP (1) JP5792256B2 (ja)
BR (1) BR112016007458A2 (ja)
WO (1) WO2015060130A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540398B2 (en) * 2017-04-24 2020-01-21 Oracle International Corporation Multi-source breadth-first search (MS-BFS) technique and graph processing system that applies it
CN109165322B (zh) * 2018-08-01 2022-04-19 成都数联铭品科技有限公司 基于路径关系的网络特征提取系统及方法
US20190340511A1 (en) * 2019-06-20 2019-11-07 Intel Corporation Sparsity control based on hardware for deep-neural networks
CN113012555B (zh) * 2019-12-20 2022-06-24 百度在线网络技术(北京)有限公司 地图显示方法、装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006027897A1 (ja) * 2004-09-03 2006-03-16 Mitsubishi Denki Kabushiki Kaisha Ldpc符号生成方法、通信装置および符号列生成方法
JP2011109228A (ja) * 2009-11-13 2011-06-02 Mitsubishi Electric Corp 復号装置及び方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327561A (en) * 1991-09-20 1994-07-05 International Business Machines Corporation System and method for solving monotone information propagation problems
FI121431B (fi) 2004-09-13 2010-11-15 Tamfelt Pmc Oy Paperikoneessa käytettävä kudosrakenne ja menetelmä sen valmistamiseksi
WO2006039801A1 (en) * 2004-10-12 2006-04-20 Nortel Networks Limited System and method for low density parity check encoding of data
US8117523B2 (en) * 2007-05-23 2012-02-14 California Institute Of Technology Rate-compatible protograph LDPC code families with linear minimum distance
US7747633B2 (en) * 2007-07-23 2010-06-29 Microsoft Corporation Incremental parsing of hierarchical files
EP2134018A1 (en) * 2008-05-23 2009-12-16 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for recovery of lost and/ or corrupted data
US20100146007A1 (en) * 2008-12-09 2010-06-10 Alex Kononov Database For Managing Repertory Grids
EP2503698B1 (en) * 2009-11-17 2018-02-14 Mitsubishi Electric Corporation Error correction method and device, and communication system using the same
US10394778B2 (en) * 2010-09-03 2019-08-27 Robert Lewis Jackson, JR. Minimal representation of connecting walks
US20120095957A1 (en) * 2010-10-18 2012-04-19 Tata Consultancy Services Limited Component Based Approach to Building Data Integration Tools
CN102467709B (zh) * 2010-11-17 2017-03-01 阿里巴巴集团控股有限公司 一种发送商品信息的方法和装置
WO2012174565A2 (en) * 2011-06-16 2012-12-20 Radiumone, Inc. Building a social graph with sharing activity between users of the open web
US8583659B1 (en) * 2012-07-09 2013-11-12 Facebook, Inc. Labeling samples in a similarity graph
US8929390B2 (en) * 2012-09-24 2015-01-06 Alcatel Lucent Methods and apparatuses for channel estimation in wireless networks
EP2918047A4 (en) * 2012-11-06 2016-04-20 Hewlett Packard Development Co IMPROVED GRAPHIDE RUNNING
JPWO2014087590A1 (ja) * 2012-12-05 2017-01-05 日本電気株式会社 最適化装置、最適化方法および最適化プログラム
US20140208297A1 (en) * 2013-01-20 2014-07-24 International Business Machines Corporation Validation of revised computer programs
BR112015027153B1 (pt) * 2013-05-02 2021-12-14 Sony Corp Dispositivo e método de processamento de dados
US9501503B2 (en) * 2013-05-09 2016-11-22 Microsoft Technology Licensing, Llc Inferring entity attribute values
EP2816767A1 (en) * 2013-06-17 2014-12-24 Ericsson Modems SA Equalization in the receiver of a multiple input multiple output system
CN104518801A (zh) * 2013-09-29 2015-04-15 Lsi公司 非二进制的分层低密度奇偶校验解码器
WO2015047423A1 (en) * 2013-09-30 2015-04-02 Mindjet Llc Scoring members of a set dependent on eliciting preference data amongst subsets selected according to a height-balanced tree
US9396164B2 (en) * 2013-10-21 2016-07-19 International Business Machines Corporation Sparsity-driven matrix representation to optimize operational and storage efficiency

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006027897A1 (ja) * 2004-09-03 2006-03-16 Mitsubishi Denki Kabushiki Kaisha Ldpc符号生成方法、通信装置および符号列生成方法
JP2011109228A (ja) * 2009-11-13 2011-06-02 Mitsubishi Electric Corp 復号装置及び方法

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
"Asynchronou layered coding protocol instantiation", IETF RFC 3450, December 2002 (2002-12-01)
KEN'YA SUGIHARA ET AL.: "Coding Rate Adjustment for LDPC Codes by Row-Splitting", THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS SOGO TAIKAI KOEN RONBUNSHU, 2010 NEN-KISO-KYOKAI, 2 March 2010 (2010-03-02), pages 123, XP008171580 *
KEN'YA SUGIHARA ET AL.: "Constructing Algorithms of Large-Girth LDPC Codes Based on the Shortest Paths in Tanner Graphs", IEICE TECHNICAL REPORT, ISEC, INFORMATION SECURITY, vol. 110, no. 443, 24 February 2011 (2011-02-24), pages 69 - 74, XP008183653 *
M. LUBY: "LT Codes", THE 43RD ANNUAL IEEE SYMPOSIUM ON FOUNDATIONS OF COMPUTER SCIENCE, 2002
R. G. GALLAGER: "Research Monograph series. Cambridge", 1963, MIT PRESS, article "Low density parity check codes"
See also references of EP3062445A4
SHIVA K. PLANJERY; T. AARON GULLIVER: "Design of Rate-Compatible Punctured Repeat-Accumulate Codes", IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE, 2007. GLOBECOM'07
SHOKROLLAHI, A: "Raptor codes", INFORMATION THEORY, IEEE TRANSACTIONS, vol. 52, no. 6, 2006
XIAO-YU HU ET AL.: "Progressive edge-growth Tanner graphs", GLOBAL TELECOMMUNICATIONS CONFERENCE, 2001. GLOBECOM '01., vol. 2, 29 November 2001 (2001-11-29), pages 995 - 1001, XP055119661 *
XIAO-YU HU; EVANGELOS ELEFTHERIOU; DIETER-MICHAEL ARNOLD: "Progressive Edge-Growth Tanner Graphs", IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE, 2001. GLOBECOM'01

Also Published As

Publication number Publication date
US20160248448A1 (en) 2016-08-25
JP2015082712A (ja) 2015-04-27
EP3062445A1 (en) 2016-08-31
EP3264612B1 (en) 2022-08-17
US11303305B2 (en) 2022-04-12
EP3062445A4 (en) 2017-10-25
JP5792256B2 (ja) 2015-10-07
BR112016007458A2 (pt) 2017-08-01
EP3264612A1 (en) 2018-01-03

Similar Documents

Publication Publication Date Title
US9270414B2 (en) Multiple-field based code generator and decoder for communications systems
CN107026709B (zh) 一种数据包编码处理方法及装置、基站及用户设备
Shokrollahi Raptor codes
US7418651B2 (en) File download and streaming system
US7720174B2 (en) Multi-stage code generator and decoder for communication systems
EP2228909A1 (en) Coding method, coding device, decoding method and decoding device for low density generator matrix code
JP4005084B2 (ja) 検査行列生成方法および検査行列生成装置
JP5792256B2 (ja) 疎グラフ作成装置及び疎グラフ作成方法
Roca et al. Rs+ ldpc-staircase codes for the erasure channel: Standards, usage and performance
Joshi et al. Fountain codes
Mirrezaei et al. Towards fountain codes
KR101145673B1 (ko) 특정 구조를 가지는 lt코드를 이용한 부호화 방법 및 이를 기반으로 하는 랩터 코드를 이용한 부호화 방법
JP5952971B2 (ja) 通信路復号方法及び通信路復号装置
Andreadou et al. Quasi-Cyclic Low-Density Parity-Check (QC-LDPC) codes for deep space and high data rate applications
Sy et al. Extended non-binary low-density parity-check codes over erasure channels
Baldi et al. A simple scheme for belief propagation decoding of BCH and RS codes in multimedia transmissions
JP5238060B2 (ja) 符号化装置及び方法及び符号化・復号化システム及び復号化方法
Mattoussi Design and optimization of al-fec codes: the gldpc-staircase codes
JP4972128B2 (ja) 符号化・復号システム及び符号化・復号方法
JP2007329828A (ja) 復号方法、復号器および通信装置
Majeed LDPC error floor improvement
Balasubramanian ITERATIVE DECODING OF SPATIALLY-COUPLED PRODUCT CODES USING GUESSING RANDOM ADDITIVE NOISE DECODING ALGORITHMS
Casu Optimization of protection techniques based on FEC codes for the transmission of multimedia packetized streams
Poulliat et al. Conception et optimisation de codes AL-FEC: les codes GLDPC-Staircase
El-Gohary et al. Study the performance of fountain codes in wireless communication systems

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14855171

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15027456

Country of ref document: US

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112016007458

Country of ref document: BR

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2014855171

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2014855171

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 112016007458

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20160404