Data coding method and device and data decoding method and device
By introducing the redundancy ratio of multiple codewords and the interleaving and merging of algebraic geometric codes in RS codes, the problem of insufficient error correction capability of RS codes in Ethernet is solved, and higher decoding accuracy and burst error correction capability are achieved.
Patent Information
- Application Number
- CN202311076388.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-24
- Publication Date
- 2025-02-25
AI Technical Summary
Existing RS codes have limited error correction capabilities in Ethernet, resulting in low decoding accuracy, especially when faced with sudden errors.
Encoding methods that employ multiple codewords with redundant code elements having at least two values are used to generate algebraic geometric codes through interleaving and merging, thereby improving error correction capabilities. These methods include row interleaving, column interleaving, or diagonal interleaving, and codewords with different error correction capabilities are combined for decoding.
It improves the error correction capability and the accuracy of the decoding results in the overall decoding process, especially significantly improving the accuracy of decoding when faced with sudden errors.
Smart Images

Figure CN119519731A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computers, and in particular to a data encoding method, a data decoding method and a device. Background Art
[0002] Channel coding is a technology used in communication systems to enhance the reliability of data transmission. By encoding the signal before sending it, the receiving end can better detect and correct errors that may occur during the transmission process.
[0003] Usually, when performing channel coding, the coding algorithm of the RS code can be used to encode the data to be coded to obtain the Reed-Solomon (RS) code. At present, the coding algorithm of the RS code used in Ethernet is RS (544, 514), where 544 represents the code length of the RS code, and 514 represents the number of information code elements, and thus the number of redundant code elements in the RS code (code length-number of information code elements) is fixed. When the receiving end decodes the RS code, since the number of redundant code elements in the codeword is fixed, the error correction capability of the codeword is fixed, and thus the error correction capability of the codeword for burst errors is limited, resulting in a low accuracy rate of the decoding result. Summary of the invention
[0004] The present application provides a data encoding method, a data decoding method and a device, which solve the problem that the encoded codeword has limited error correction capability for burst errors.
[0005] In a first aspect, the present application provides a data encoding method, which can be applied to a computer system or to a computing device that supports the computer system to implement the data encoding method, for example, the computing device can be a terminal or a server. The data encoding method may include: obtaining data to be encoded, encoding the data to be encoded, and obtaining multiple codewords. The redundant codeword ratio of the multiple codewords has at least two values, the redundant codeword ratio of the first codeword is used to indicate the ratio of the redundant codeword in the first codeword to the total number of codewords in the first codeword, the redundant codeword of the second codeword is used to correct the non-redundant codeword in the second codeword, and the first codeword and the second codeword are one of the multiple codewords.
[0006] In the present application, since the redundant codeword ratios of multiple codewords have at least two values, codewords with different redundant codeword ratios have different error correction capabilities. When decoding the codewords with different error correction capabilities, the error correction capability of the overall decoding process can be improved, thereby improving the decoding accuracy of multiple codewords.
[0007] In a possible implementation, the data encoding method further includes: interleaving and merging a plurality of code words to obtain a plurality of algebraic geometric codes, wherein the proportion of redundant code elements of the code words included in an algebraic geometric code has at least two values.
[0008] In the present application, the code length of the codeword is limited by the size of the finite field, that is, the code length cannot exceed the number of elements included in the finite field, while the algebraic geometry code is not limited by the size of the finite field, and thus the code length of the algebraic geometry code is longer. Under the same code rate, the number of redundant code elements increases, thereby improving the error correction capability of the algebraic geometry code and improving the accuracy of the decoding result.
[0009] In one possible scenario, the code length of the algebraic geometry code is greater than the cube of the number of numeric types of the proportion of redundant code elements in the plurality of codewords.
[0010] In the present application, since the code length of the algebraic geometry code is greater than the cube of the number of numerical types of the proportion of redundant code elements in multiple code words, the code length of the algebraic geometry code becomes longer. Under the same code rate, the number of redundant code elements of the algebraic geometry code increases, thereby improving the error correction capability and enhancing the accuracy of the decoding result.
[0011] Exemplarily, if the number of numerical types of the proportion of redundant code elements in multiple code words is 2, such as 2 / 7 and 3 / 7, the code length of the algebraic geometry code is greater than 2 cubed, that is, the code length is greater than 8.
[0012] Exemplarily, the above-mentioned interleaving and merging manner may be row interleaving, column interleaving or diagonal interleaving, etc.
[0013] In a possible implementation, encoding the data to be encoded to obtain multiple code words includes: The curve encodes the data to be encoded to obtain multiple code words; The curve satisfies the following expression.
[0014] E(x,y)=y a +∑ ai+bj<ab c ij x i y j +hx b , gcd(a,b)=1 and h≠0
[0015] Where E(x,y) represents The function corresponding to the curve, a, b, i, j, h represent constants, and gcd(a,b)=1 means the greatest common divisor of a and b is 1.
[0016] In a second aspect, the present application provides a data decoding method, which can be applied to a computer system or to a computing device that supports the computer system to implement the data decoding method, for example, the computing device can be a terminal or a server. The data decoding method may include: obtaining data to be decoded, the data to be decoded includes multiple code words, decoding the multiple code words, and obtaining a decoding result of the data to be decoded. The redundant code element ratio of the multiple code words has at least two values, the redundant code element ratio of the first code word is used to indicate the ratio of the redundant code elements in the first code word to the total number of code elements in the first code word, the redundant code elements of the second code word are used to correct the non-redundant code elements in the second code word, and the first code word and the second code word are one code word among the multiple code words.
[0017] Compared with decoding isomorphic codewords, since the redundant codeword ratio of isomorphic codewords is fixed, the error correction capability of isomorphic codewords is limited. In the present application, since the redundant codeword ratios of multiple codewords have at least two values, codewords with different redundant codeword ratios have different error correction capabilities. When decoding the codewords with different error correction capabilities, the error correction capability of the overall decoding process can be improved, thereby improving the accuracy of the decoding results.
[0018] In a possible scenario, the data to be decoded are a plurality of algebraic geometric codes, and the proportion of redundant code elements in a codeword included in an algebraic geometric code has at least two values.
[0019] In the present application, the code length of the codeword is limited by the size of the finite field, that is, the code length cannot exceed the number of elements included in the finite field, while the algebraic geometry code is not limited by the size of the finite field, and thus the code length of the algebraic geometry code is longer. Under the same code rate, the number of redundant code elements increases, thereby improving the error correction capability of the algebraic geometry code and improving the accuracy of the decoding result.
[0020] In one possible scenario, the code length of the algebraic geometry code is greater than the cube of the number of numeric types of the proportion of redundant code elements in the plurality of codewords.
[0021] In the present application, since the code length of the algebraic geometry code is greater than the cube of the number of numerical types of the proportion of redundant code elements in multiple code words, the code length of the algebraic geometry code becomes longer. Under the same code rate, the number of redundant code elements of the algebraic geometry code increases, thereby improving the error correction capability and enhancing the accuracy of the decoding result.
[0022] Exemplarily, the algebraic geometric code is obtained by interleaving and merging multiple code words, and the interleaving and merging method may be row interleaving, column interleaving, diagonal interleaving, etc., so that the redundant code element ratio of the code words included in the obtained algebraic geometric code has at least two values.
[0023] In a possible implementation, decoding multiple code words to obtain a decoding result of the data to be decoded includes: sorting the code words according to the proportion of redundant code elements, decoding the multiple code words in sequence, and obtaining a decoding result of the data to be decoded.
[0024] Exemplarily, the multiple code words are decoded in sequence according to the order of redundant code elements of the multiple code words from large to small, to obtain a decoding result of the data to be decoded.
[0025] During the encoding or transmission process, sudden errors may occur, resulting in errors in the code elements at the same position in multiple code words. In this application, the code words are sorted according to the proportion of redundant code elements, such as sorting from large to small, and multiple code words are decoded in sequence, that is, decoding starts from the code word with the strongest error correction capability, so as to improve the accuracy of the decoding result of the code word. In addition, based on the code elements detected and corrected by the code word with the strongest error correction capability, the code elements in the subsequent code words can be adjusted, thereby improving the accuracy of decoding the subsequent code words, thereby improving the accuracy of decoding multiple code words.
[0026] In a possible implementation, if decoding fails when decoding multiple code words, the data decoding method further includes: interleaving and merging the multiple code words to obtain multiple algebraic geometry codes, and decoding the multiple algebraic geometry codes to obtain a decoding result. The redundant code element ratio of the code words included in an algebraic geometry code has at least two values.
[0027] In the present application, the algebraic geometric code obtained by interleaving multiple codewords increases the number of redundant code elements compared to a single codeword, thereby improving the error correction capability, that is, the number of erroneous code elements that can be corrected increases, thereby improving the accuracy of the decoding result.
[0028] In a possible implementation, the codeword is re-encoded data, and decoding multiple codewords to obtain a decoding result of the data to be decoded includes: sorting the codewords according to the proportion of redundant codewords, decoding multiple codewords in sequence, and obtaining first data to be decoded. Then, the first data to be decoded is inversely re-encoded to obtain a decoding result.
[0029] In the present application, since the codeword is re-encoded data, some code elements of the codeword are set to 0, and thus when decoding multiple codewords, the number of code elements to be decoded is reduced, thereby reducing the decoding complexity and improving the decoding speed.
[0030] In a possible implementation, if decoding fails when decoding multiple code words, the data decoding method further includes: interleaving and merging the multiple code words to obtain multiple algebraic geometry codes, and decoding the multiple algebraic geometry codes to obtain second data to be decoded. Then, the second data to be decoded is inversely re-encoded to obtain a decoding result. The redundant code element ratio of the code words included in an algebraic geometry code has at least two values.
[0031] In the present application, the algebraic geometry code obtained by interleaving multiple codewords increases the number of redundant codewords compared to a single codeword, thereby improving the error correction capability, that is, the number of error-correctable codewords increases, thereby improving the accuracy of the decoding result. In addition, since the codeword is re-encoded data, some codewords of the codeword are set to 0, and then when decoding multiple algebraic geometry codes, the number of codewords to be decoded is reduced, thereby reducing the decoding complexity and improving the decoding speed.
[0032] In a third aspect, the present application provides a data encoding device, which is applied to a computing device, and the data encoding device includes various modules for executing the data encoding method in the first aspect or any optional design of the first aspect. For example, the data encoding device includes: an acquisition module and an encoding module. Among them, the acquisition module is used to obtain the data to be encoded. The encoding module is used to encode the data to be encoded to obtain multiple code words. The redundant code element ratio of the multiple code words has at least two numerical values, and the redundant code element ratio of the first code word is used to indicate the ratio of the redundant code elements in the first code word to the total number of code elements in the first code word. The redundant code elements of the second code word are used to correct the non-redundant code elements in the second code word. The first code word and the second code word are one code word in the multiple code words.
[0033] In a possible implementation, the data encoding device further includes a merging module, which is used to interleave and merge multiple code words to obtain multiple algebraic geometry codes, wherein the redundant code element ratio of the code words included in an algebraic geometry code has at least two values.
[0034] In one possible scenario, the code length of the algebraic geometry code is greater than the cube of the number of numeric types of the proportion of redundant code elements in the plurality of codewords.
[0035] In a possible implementation, the encoding module is further configured to: curve, encoding the data to be encoded to obtain the multiple code words; The curve satisfies the following expression.
[0036] E(x,y)=y a +∑ ai+bj<ab c ij x i y j+hx b , gcd(a,b)=1 and h≠0
[0037] Where E(x,y) represents C ab The function corresponding to the curve, a, b, i, j, h represent constants, and gcd(a,b)=1 means the greatest common divisor of a and b is 1.
[0038] In a fourth aspect, the present application provides a data decoding device, which is applied to a computing device, and the data decoding device includes various modules for executing the data decoding method in the first aspect or any optional design of the first aspect. For example, the data decoding device includes: an acquisition module and a first decoding module. Among them, the acquisition module is used to obtain data to be decoded, and the data to be decoded includes multiple code words. The redundant code element ratio of multiple code words has at least two numerical values, and the redundant code element ratio of the first code word is used to indicate the ratio of the redundant code elements in the first code word to the total number of code elements in the first code word; the redundant code elements of the second code word are used to correct the non-redundant code elements in the second code word; the first code word and the second code word are one code word among multiple code words. The first decoding module is used to decode multiple code words to obtain the decoding result of the data to be decoded.
[0039] In a possible scenario, the data to be decoded are a plurality of algebraic geometric codes, and the proportion of redundant code elements in a codeword included in an algebraic geometric code has at least two values.
[0040] In one possible scenario, the code length of the algebraic geometry code is greater than the cube of the number of numeric types of the proportion of redundant code elements in the plurality of codewords.
[0041] In a possible implementation, the first decoding module is further used to sort the codewords according to the proportion of redundant code elements in the codewords, and decode the multiple codewords in sequence to obtain a decoding result of the data to be decoded.
[0042] In a possible implementation, the data decoding device further includes a merging module and a second decoding module. The merging module is used to interleave and merge the multiple codewords to obtain multiple algebraic geometry codes if the first decoding module fails to decode the multiple codewords, and the redundant codeword ratio of the codeword included in an algebraic geometry code has at least two values. The second decoding module is used to decode the multiple algebraic geometry codes to obtain a decoding result.
[0043] In a possible implementation, the codeword is re-encoded data, and the first decoding module is further used to sort the codewords according to the proportion of redundant code elements, decode the multiple codewords in sequence, and obtain the first data to be decoded. The first data to be decoded is inversely re-encoded to obtain a decoding result.
[0044] In a possible implementation, the data decoding device further includes a merging module and a second decoding module. The merging module is used to interleave and merge the multiple codewords to obtain multiple algebraic geometry codes if the first decoding module fails to decode the multiple codewords, and the redundant codeword ratio of the codeword included in an algebraic geometry code has at least two values. The second decoding module is used to decode the multiple algebraic geometry codes to obtain second data to be decoded of the data to be decoded, and inversely re-encode the second data to be decoded to obtain a decoding result.
[0045] In a fifth aspect, the present application provides a chip comprising: a processor and a power supply circuit; the power supply circuit is used to power the processor, and the processor is used to execute the above-mentioned first aspect, the second aspect, the method in any possible implementation of the first aspect, or the method in any possible implementation of the second aspect.
[0046] In a sixth aspect, the present application provides a codec comprising a memory and a processor, wherein the memory is used to store computer instructions; when the processor executes the computer instructions, it implements the above-mentioned first aspect, the second aspect, the method in any possible implementation of the first aspect, or the method in any possible implementation of the second aspect.
[0047] In a seventh aspect, the present application provides a coding and decoding system, including a coding end and a decoding end; the coding end is used to encode the data to be coded to obtain multiple code words, and implement the method in the above-mentioned first aspect or any possible implementation of the first aspect;
[0048] The decoding end is used to decode the data to be decoded to obtain a decoding result of the data to be decoded, where the data to be decoded includes multiple code words, and implements the method in the above-mentioned second aspect or any possible implementation method of the second aspect.
[0049] In an eighth aspect, the present application provides a computer-readable storage medium, which stores a computer program or instruction. When the computer program or instruction is executed by a processing device, it implements the above-mentioned first aspect, the second aspect, the method in any possible implementation of the first aspect, or the method in any possible implementation of the second aspect.
[0050] In a ninth aspect, the present application provides a computer program product, which includes a computer program or instructions. When the computer program or instructions are executed by a processing device, it implements the above-mentioned first aspect, the second aspect, the method in any possible implementation of the first aspect, or the method in any possible implementation of the second aspect.
[0051] The beneficial effects of the second to ninth aspects above can be referred to the description of the first aspect or any implementation method of the first aspect, and will not be elaborated here.
[0052] Based on the implementations provided in the above aspects, this application can also be further combined to provide more implementations. BRIEF DESCRIPTION OF THE DRAWINGS
[0053] Figure 1 A schematic diagram of the architecture of a communication system provided for this application;
[0054] Figure 2 A schematic diagram of the overall process of the encoding and decoding method provided in this application;
[0055] Figure 3 A flowchart of a data encoding method provided in this application;
[0056] Figure 4 A flowchart of a data decoding method provided in this application;
[0057] Figure 5 Schematic diagram of the data decoding method provided in this application Figure 1 ;
[0058] Figure 6 Schematic diagram of the data decoding method provided in this application Figure 2 ;
[0059] Figure 7 Schematic diagram of the data decoding method provided in this application Figure 3 ;
[0060] Figure 8 Schematic diagram of the data decoding method provided in this application Figure 4 ;
[0061] Fig. 9 A schematic diagram of the structure of a data encoding device provided in this application Figure 1 ;
[0062] Fig.10 A schematic diagram of the structure of a data encoding device provided in this application Figure 2 ;
[0063] Fig.11 A schematic diagram of the structure of a data decoding device provided in this application Figure 1 ;
[0064] Fig.12 A schematic diagram of the structure of a data decoding device provided in this application Figure 2 ;
[0065] Fig.13 A schematic diagram of the structure of a processing device provided in this application. DETAILED DESCRIPTION
[0066] To facilitate understanding, the technical terms involved in this application are first introduced.
[0067] Algebraic geometric (AG) code is a lossless data compression coding method used in coding theory, which is often used to effectively compress data with repetitive patterns and periodic patterns. AG code is constructed based on arithmetic mean and geometric mean. For example, AG code divides the input data into two parts: an arithmetic sequence and a geometric sequence. The arithmetic sequence is used to represent the repeated part of the data, while the geometric sequence is used to represent the periodic part of the data. Common AG codes include elliptic codes, Hermitian codes, Klein quartic equation codes, etc. The AG code is a multivariate linear block code proposed based on algebraic curves over a finite field.
[0068] RS code is a commonly used error detection and correction code in coding theory. RS code is a type of non-binary linear block code with excellent error correction performance, which is constructed based on straight lines. Since RS code has the characteristic of maximum distance separability and exhibits excellent error correction performance, it is widely used in memory, storage disk arrays, optical disks, optical communications, satellite communications, and QR codes in daily life.
[0069] Hermitian codes are a type of error detection and correction code used in coding theory. The Hermitian codes are a type of linear codes.
[0070] Progressively good codes refer to a type of coding method whose compression efficiency gradually increases as transmission or decoding proceeds, and when reaching the theoretical limit, data can be transmitted at a rate close to the channel capacity. For a given channel model and channel capacity, progressively good codes should be progressive, that is, the data compression ratio gradually increases as transmission or decoding proceeds; distortion-free, that is, progressively good codes should not introduce information loss during the decoding process; and the limit should be close to the channel capacity.
[0071] Source coding is a data compression technology used to encode the data generated by the source to reduce data redundancy, thereby achieving data compression and improving transmission efficiency.
[0072] A finite field, also called a galois field, is a mathematical structure with a finite number of elements. In a finite field, there are well-defined addition and multiplication operations, that is, any two elements in the finite field are added or multiplied, and the result is still an element in the finite field.
[0073] The forward error correction sublayer (FEC), also known as the forward error correction sublayer, is responsible for introducing forward error correction codes in the data link layer of the communication system to enhance the reliability of data transmission.
[0074] The physical medium attachment sublayer (PMA) is also called the physical medium adaptation sublayer. In the physical layer of the communication system, the PMA layer is located above the physical medium dependent sublayer (PMD). The PMA layer is responsible for receiving or sending data from the physical medium dependent sublayer to the actual physical transmission medium.
[0075] The PMD layer is used to handle details related to specific physical transmission media, such as transmission medium control and transmission medium adaptation. The PMD layer performs operations such as signal adaptation, shaping, and amplification according to specific physical transmission media (such as optical fiber, twisted pair, etc.).
[0076] Since the length of the RS code is limited by the size of the defined finite field, the way to improve the performance of the RS code is generally to increase the size of the finite field or reduce the code rate to ensure the length of the RS code, so that the RS code can contain enough redundant code elements. However, the former will result in a decrease in throughput and a significant increase in complexity, while the latter will reduce transmission efficiency.
[0077] In order to improve the error correction performance of RS codes, Hermitian codes are often used instead of RS codes. Compared with RS codes, the advantages of Hermitian codes are: smaller finite fields can be used to construct longer codewords and show better performance. Under general software and hardware implementations, small finite fields provide higher throughput and less cache overhead. In the application scenarios of RS codes, the transmission or storage of information will be interfered by channel noise and cause errors. The use of Hermitian codes with high error correction performance and low decoding complexity can ensure the reliable transmission or storage of information.
[0078] First, the process of encoding data to obtain a Hermitian code may include the following steps ①-④.
[0079] ①: Defined in a finite field The hermitian curve on is the base curve, and the hermitian curve is as follows: Formula 1.
[0080] H:y q +y=x q+1 Formula 1
[0081] Among them, the finite field Indicates that there is q in this finite field 2 elements, represents an element in a finite field, q 2 It also indicates the code length of the RS code obtained through the Hermitian code.
[0082] ②: Taking q on the Hermitian curve 3 Affine points {P0,P1,…,P n-1} as the assignment point to construct the hermitian code C H (u[P ∞ ]), the C H (u[P ∞ ])As shown in formula 2.
[0083]
[0084] Among them, P ∞ =(0,1,0) is the point at infinity, is the Riemann-Roach space, i.e., the information polynomial space. And for the affine point in the aforementioned information polynomial space, the horizontal coordinate is When any element in , there are always q affine points with different ordinates corresponding to it. Then, the coordinates can be presented as shown in Table 1 below.
[0085] Table 1
[0086]
[0087] ③: The above Table 1 in the information polynomial space There exists a set of bases as follows: Formula 3.
[0088] {x i y j ∣0≤i,0≤j≤q-1,iq+j(q+1)≤u} Formula 3
[0089] That is, any information polynomial can be expressed by Formula 3, and any coordinate in the above Table 1 can be expressed by Formula 3.
[0090] Among them, u represents the parameter that limits the dimension of the information polynomial space, that is, the extreme value of the polynomial in the information polynomial space at infinity is less than u.
[0091] Therefore, for Can get
[0092] f(x,y)=(1,y,…,y q-1 )·(f0(x),f1(x),…,f q-1 (x)) T
[0093] =f0(x)+f1(x)y+…+f q-1 (x)y q-1 Formula 4
[0094] ④: By assigning values to the above formula 4, the Hermitian code corresponding to the result of data encoding is obtained.
[0095] For example, if the above q is 2, it is defined as The hermitian curve on y is 2 +y=x 3 , on which there are 8 affine points {(α0,α0),(α0,α1),(α1,α2),(α1,α3),(α2,α2),(α2,α3),(α3,α2),(α3,α3)}, then there exists an information polynomial space There exists a set of bases {1,x,y,x 2}, select the information polynomial f = α1 + α2y, then through assignment, the corresponding hermitian code can be (α0, α3, α2, α0, α2, α0, α2, α0).
[0096] After the above steps ①-④, the Hermitian code is obtained and sent to the receiving end. For example, the Hermitian code sent can be For example, c0 can be (α0, α3, α2, α0, α2, α0, α2, α0) as mentioned above. During the transmission process, the error vector generated by noise is Therefore, the vector finally received by the receiver is where r j =c j +e j .
[0097] For the received vector The Hermitian code is converted into the RS code in the following manner, and then the RS code is decoded.
[0098] set up f(x,y) The values at each point in can be obtained by the following formula 5.
[0099]
[0100] Therefore, the hermitian code can be converted into the interleaved RS code as shown in the following formula 6 through the above formula 5.
[0101]
[0102] The above formula 5 can be used to obtain the RS code shown in formula 6, that is, the hermitian code can obtain q lengths of q 2 The codeword, that is, the vector The q vectors in the RS code are decoded in reverse order. First, Using the RS code decoding algorithm, assume that the error vector is Then Replace with
[0103] And then Decode it, Zhongyu The same non-zero position is replaced with *, that is, the code element at the corresponding position is deleted. Perform erasure and error correction decoding, and then Replace with
[0104] Then, in turn Finally, based on the above formula 5, Substituting in turn, we can get the receiving vector The corresponding error vector You can use Implement decoding.
[0105] The decoding algorithm of the above RS code can be the Peterson-Gorenstein-Zierler (PGZ) algorithm, which is a classic RS code decoding algorithm, or the Berlekamp-Massey (BM) algorithm, which is an RS code decoding algorithm based on a linear feedback shift register.
[0106] In summary, since the base curve used in the above encoding is defined in The Hermitian curve on the codeword, the code length and the proportion of redundant codewords in the codeword are limited by the elements included in the finite field, that is, q. Therefore, the proportion of redundant codewords in the Hermitian code is fixed. The fixed proportion of redundant codewords in the Hermitian code will lead to the problem that the error correction capability of the Hermitian code is limited. When a burst error occurs in the codewords in the Hermitian code, the error correction capability of the Hermitian code for the burst error is poor, resulting in a low accuracy rate of the decoding result.
[0107] In order to solve the problem that the Hermitian code has poor error correction capability for burst errors, resulting in low accuracy of the decoding result, the present application obtains multiple code words through encoding, and the redundant code element ratio of the multiple code words has at least two values, the redundant code element ratio of the first code word is used to indicate the ratio of the redundant code elements in the first code word to the total number of code elements in the first code word, and the redundant code elements of the second code word are used to correct the non-redundant code elements of the second code word.
[0108] Compared with the fixed ratio of redundant codewords in Hermitian codes, the error correction capability of Hermitian codes is limited. In the present application, since the ratio of redundant codewords of multiple codewords has at least two values, codewords with different ratios of redundant codewords have different error correction capabilities. When decoding the codewords with different error correction capabilities, the error correction capability of the overall decoding process can be improved, thereby improving the accuracy of the decoding results.
[0109] To facilitate understanding of the embodiments of the present application, first Figure 1 The communication system shown in the example is used to describe in detail the communication system applicable to the embodiment of the present application. Figure 1 The data encoding and data decoding methods provided in the embodiments of the present application can be applied to Figure 1 The architecture shown.
[0110] like Figure 1 As shown, the communication system includes a first device (101a, 101b) and a second device 102. The second device 102 can communicate with the first device 101a, and the second device 102 can communicate with the first device 101b.
[0111] The second device 102 is a device for forwarding data, and the first device (101a, 101b) is a device for receiving or sending data. The second device 102 may be a network device or a terminal device, and the first device (101a, 101b) may be a network device or a terminal device.
[0112] Exemplarily, the first device (101a, 101b) is a network device, and the second device 102 is a network device. Alternatively, the first device (101a, 101b) is a terminal device, and the second device 102 is a network device. Alternatively, the first device (101a, 101b) is a terminal device, and the second device 102 is a terminal device.
[0113] It is understandable that in the present application, there may be more first devices.
[0114] The network device is a device located at the network side of the communication system and having a wireless transceiver function, or a chip or chip system that can be set in the device. The network device includes but is not limited to: an access point (AP) in a wireless fidelity (WiFi) system, such as a home gateway, a router, a server, a switch, a bridge, etc., an evolved Node B (eNB), a radio network controller (RNC), a Node B (NB), a base station controller (BSC), a base transceiver station (BTS), a home base station (e.g., home evolved Node B, or home Node B, HNB), a baseband unit (BBU), a wireless relay node, a wireless backhaul node, a transmission point (TRP or transmission point, TP), etc., and can also be 5G, such as new air interface (new The term "antenna panel" refers to a gNB in a new wireless radio (NR) system, or a transmission point (TRP or TP), one or a group of antenna panels (including multiple antenna panels) of a base station in a 5G system, or a network node constituting a gNB or a transmission point, such as a baseband unit (BBU), or a distributed unit (DU), a road side unit (RSU) with base station functions, etc.
[0115] The above-mentioned terminal device is a terminal that accesses the above-mentioned communication system and has a wireless transceiver function or a chip or chip system that can be set in the terminal. The terminal device can also be called an access terminal, a user unit, a user station, a mobile station, a mobile station, a remote station, a remote terminal, a mobile device, a user terminal, a terminal, a wireless communication device, a user agent or a user device. The first device in the embodiment of the present application can be a mobile phone, a tablet computer (Pad), a computer with a wireless transceiver function, a virtual reality (virtual reality, VR) first device, an augmented reality (augmentedreality, AR) first device, a wireless terminal in industrial control (industrial control), a wireless terminal in self-driving (selfdriving), a wireless terminal in remote medical (remote medical), a wireless terminal in smart grid (smart grid), a wireless terminal in transportation safety (transportation safety), a wireless terminal in a smart city (smart city), a wireless terminal in a smart home (smart home), a vehicle-mounted terminal, an RSU with a terminal function, etc. The first device of the present application can also be a vehicle-mounted module, vehicle-mounted module, vehicle-mounted component, vehicle-mounted chip or vehicle-mounted unit that is built into the vehicle as one or more components or units. The vehicle can implement the data encoding or data decoding method provided by the present application through the built-in vehicle-mounted module, vehicle-mounted module, vehicle-mounted component, vehicle-mounted chip or vehicle-mounted unit.
[0116] It should be noted that the data encoding or data decoding method provided in the embodiment of the present application can be applied to Figure 1 In any two nodes shown, such as the first device and the second device, or the two first devices (101a, 101b), the specific implementation can refer to the following method embodiment, which will not be repeated here.
[0117] It should be pointed out that the solutions in the embodiments of the present application can also be applied to other communication systems, and the corresponding names can also be replaced by the names of corresponding functions in other communication systems.
[0118] It should be understood that Figure 1 This is a simplified schematic diagram for ease of understanding only. The communication system may also include other second devices and / or other first devices. Figure 1 Not drawn in.
[0119] The data encoding method and data decoding method of the present application can also be applied to a data storage system. For example, the data is encoded using the data encoding method, and the encoded data is stored in a memory. When the encoded data is read from the memory, the encoded data is decoded using the data decoding method to obtain the data.
[0120] The data storage system may include a device with encoding or decoding functions or a chip or chip system that can be set in the device, and a memory.
[0121] The memory is used to store the encoded data processed by the above data encoding method.
[0122] The data encoding method and the data decoding method are applicable to Figure 1 As an example, the present application provides the following possible embodiments. Figure 2 The following specific embodiments may be combined with each other, and the same or similar concepts or processes may not be described in detail in some embodiments.
[0123] like Figure 2 As shown, Figure 2 The overall flow diagram of the encoding and decoding method provided in this application. The data encoding process in the overall flow diagram can be performed by the first computing device 300, and the first computing device 300 can be deployed in the first device 101a. The data decoding process can be performed by the second computing device 400, and the second computing device 400 can be deployed in the first device 101b. Figure 2 As shown, the encoding and decoding method may include the following steps.
[0124] ①: The first computing device 300 encodes the data to be encoded to obtain a codeword.
[0125] The above coding is channel coding, and the channel coding methods may include: parity check code, block coding, convolutional code, etc.
[0126] Parity check code adds a parity bit to the data to make the total number of data bits odd or even and detect whether there is a single bit error at the receiving end.
[0127] Block coding is to encode several input bits as a coding unit, generally using error correction coding methods, such as Hamming code, RS code, etc. These coding methods can detect and correct multiple bit errors and improve the reliability of data transmission.
[0128] Convolutional code is a technology that uses state machines for encoding. Convolutional code encodes the combination of input bits and historical input bits to generate redundant bits. Convolutional code has strong error correction capability and is suitable for use in poor channel conditions.
[0129] In a possible implementation, the first computing device 300 uses an encoder to perform channel coding on the data to be coded to obtain a codeword.
[0130] The encoder is deployed inside the first computing device 300 or deployed separately. The encoder can implement one or more encoding modes in channel coding, and the encoder belongs to the FEC layer in the data link layer.
[0131] The first computing device 300 can encode the data to be encoded by the above-mentioned channel coding method to obtain a codeword, and then the codeword includes redundant codewords, and the redundant codewords are used to correct errors of other codewords except the redundant codewords in the codeword.
[0132] ②: The first computing device 300 sends the codeword to the second computing device 400.
[0133] In one possible implementation, the first computing device 300 sends the codeword to the second computing device 400, including: the first computing device 300 converts the codeword into an analog signal through the PMA layer, and the analog signal is driven and adapted through the PMD layer, so that the adapted analog signal is transmitted to the second computing device 400 on a physical medium.
[0134] In one possible example, the first computing device 300 uses a modulator therein to convert a codeword into an analog signal, and further drives it onto a transmission medium through a transmission route, an interface circuit, etc., and then transmits it to the second device 102 . The second device 102 forwards the analog signal to the second computing device 400 .
[0135] In another possible example, the first computing device 300 may directly transmit the analog signal to the second computing device 400 .
[0136] In a possible scenario, the modulator may be deployed separately, that is, the first device 101a and the modulator are two independent devices.
[0137] ③: The second computing device 400 decodes the codeword to obtain the above-mentioned data to be encoded.
[0138] In a possible implementation, the second computing device 400 decodes the codeword to obtain the data to be encoded, including: the second computing device 400 uses a decoder to perform channel decoding on the codeword to obtain the data to be encoded.
[0139] Channel decoding is a process used in communication systems to correct or recover errors introduced during channel transmission. At the receiving end, the modulated and transmitted signal may be affected by noise, interference, and fading, resulting in certain errors in the received signal (codeword). Channel decoding is then used to correct the errors in the signal.
[0140] The decoding method of the decoder corresponds to the encoding method adopted by the encoder. For example, the encoder adopts the encoding algorithm of the RS code in block coding, and the decoder deploys the decoding algorithm corresponding to the RS code.
[0141] In one possible example, since the data received by the second computing device 400 is an analog signal corresponding to a codeword, the second computing device 400 will use a demodulator to convert the analog signal into a codeword (also called a vector), and then use a decoder to perform channel decoding on the codeword to obtain the data to be encoded.
[0142] In a possible embodiment, the data to be encoded is data obtained by source encoding by the first computing device 300 .
[0143] Source coding is a technique in information theory used to convert raw data into a more efficient and compact representation. Source coding reduces the number of bits required to be transmitted or stored by exploiting the statistical properties of the raw data.
[0144] In a possible implementation, the data to be encoded is data obtained after source encoding by the first computing device 300 and is used to indicate that the first computing device 300 uses a source encoder to perform source encoding on original data determined by a user to obtain the data to be encoded.
[0145] The source encoder can be hardware or software. When the source encoder is hardware, it is often a dedicated encoding chip or field-programmable gate array (FPGA), etc., and the source encoding function is realized by the dedicated encoding chip and the circuit in the FPGA. When the source encoder is software, it is combined with a general computing device, such as a central processing unit (CPU), a digital signal processor (DSP), etc., and combined with a coding algorithm to realize the source coding function.
[0146] In a possible scenario, the source coding method adopted by the source encoder may include: Huffman coding, arithmetic coding, dictionary coding, etc.
[0147] Huffman coding is a variable-length coding method based on a probability model. Huffman coding uses Huffman numbers or code tables to represent symbols with high frequency with shorter bit strings, and symbols with low frequency with longer bit strings, in order to maximize coding efficiency.
[0148] Arithmetic coding: Arithmetic coding is a lossless coding method. Arithmetic coding achieves encoding by mapping the entire message to a real number in a range. The code length is related to the amount of information in the message, and arithmetic coding can achieve a coding efficiency close to the information entropy.
[0149] Dictionary Coding: Dictionary coding is a coding method based on a dictionary (code table). Dictionary coding maps fixed-length symbols to variable-length codes and uses a dictionary for decoding. Lempel-ziv-welch (LZW) coding is a common implementation of dictionary coding.
[0150] Correspondingly, in a possible embodiment, the second computing device 400 performs source decoding on the encoded data to obtain original data.
[0151] Source decoding is the reverse process of source coding. Source decoding methods include: Huffman decoding, arithmetic decoding, dictionary decoding, etc.
[0152] It is worth noting that Huffman decoding is the inverse process of Huffman coding. Huffman decoding uses the same Huffman tree or code table as Huffman coding to gradually decode the received bit string and restore it to the original data.
[0153] Arithmetic decoding is the reverse process of arithmetic encoding. Arithmetic decoding determines the original data by using the interval of the received real number.
[0154] Dictionary decoding is the reverse process of dictionary encoding. It uses the same dictionary (code table) as dictionary encoding for decoding to restore the received code to the original data.
[0155] For Figure 2 In step ① shown in the figure, the present application provides a data encoding method, which can be applied in Figure 1 The communication system shown can also be applied to Figure 2 In the encoding and decoding method shown. Figure 3 As shown, Figure 3 A flowchart of a data encoding method provided in the present application is shown in FIG. 1 . The data encoding method can be executed by a first computing device 300. The first computing device 300 can be deployed with Figure 1 The first device shown in FIG. 1 is, for example, the first device 101a. Figure 3 As shown, the data encoding method may include the following steps S310 to S320.
[0156] S310: The first computing device 300 obtains data to be encoded.
[0157] In a possible scenario, the data to be encoded is data determined by a user to be transmitted, such as image, text, video, and other data.
[0158] In another possible scenario, the data to be encoded is the data determined by the user to be transmitted after being source encoded.
[0159] For the data after source coding, please refer to the above-mentioned content of source coding, which will not be elaborated here.
[0160] In a possible implementation, the first computing device 300 obtaining the data to be encoded includes: the first computing device 300 obtaining the data to be encoded from a memory.
[0161] For example, the memory stores the above-mentioned data such as images, texts, videos, etc. The data in the memory can be downloaded by the user through the network.
[0162] In another possible implementation, the first computing device 300 obtains the data to be encoded, including: the first computing device 300 obtains the processing result of the source encoder to obtain the data after source encoding.
[0163] For the content of the source encoder, reference may be made to the description of the source encoder in the above embodiment where the data to be encoded is data obtained by source encoding by the first computing device 300, and no further details will be given here.
[0164] S320. The first computing device 300 encodes the data to be encoded to obtain a plurality of code words, and the proportion of redundant code elements of the plurality of code words has at least two values.
[0165] Among them, the redundant codeword ratio of the first codeword is used to indicate the ratio of the redundant codewords in the first codeword to the total number of codewords in the first codeword, the redundant codewords of the second codeword are used to correct errors of non-redundant codewords in the second codeword, and the first codeword and the second codeword are one codeword among multiple codewords.
[0166] Since the proportions of redundant code elements in the multiple code words are not the same, the multiple code words may also be referred to as heterogeneous code words. In one possible scenario, the code lengths of the multiple code words are consistent.
[0167] For the content of encoding the data to be encoded, please refer to the content of the following formula 7 to formula 14, which will not be repeated here.
[0168] In a possible embodiment, the first computing device 300 encodes the data to be encoded to obtain multiple codewords, including: the first computing device 300 divides the data to be encoded into multiple groups of sub-data, and the first computing device 300 encodes the multiple groups of sub-data to obtain multiple codewords.
[0169] In a possible implementation, the first computing device 300 divides the data to be encoded into a plurality of groups of sub-data, including: the first computing device 300 distributes the data to be encoded in a round-robin manner according to a set size to obtain a plurality of groups of sub-data.
[0170] Taking the data to be encoded as the data determined by the user to be transmitted, the first computing device 300 divides the data to be encoded into two groups of sub-data, such as sub-data a and sub-data b, and sets the size to 10 bits (binary digit, bit) for example.
[0171] The first computing device 300 distributes the data to be encoded in a round-robin manner by 10 bits to two different storage locations for storage. That is, the first 10 bits of the data to be encoded are distributed to the first storage location by the first computing device 300, the second 10 bits of the data to be encoded are distributed to the second storage location by the first computing device 300, and the third 10 bits of the data are distributed to the first storage location by the first computing device 300, and the round-robin distribution is carried out in this way until all the data to be encoded are distributed to the first storage location and the second storage location.
[0172] In one possible scenario, the first storage location or the second storage location may be consistent with the storage location of the data to be encoded.
[0173] In this embodiment, the proportion of redundant code elements in the codewords corresponding to each group of sub-data is different.
[0174] The contents of encoding multiple groups of sub-data may refer to the contents of the following formulas 7 to 14, which will not be elaborated here.
[0175] In another possible embodiment, the first computing device 300 encodes the data to be encoded to obtain a plurality of codewords, including: the first computing device 300 sequentially encodes the data to be encoded according to a set data amount to obtain a plurality of codewords.
[0176] Exemplarily, there are 20 bits of data to be encoded, and the first computing device 300 first encodes the first 10 bits of data, and then encodes the last 10 bits of data, thereby obtaining two codewords.
[0177] In a possible case, the code length of the AG code is greater than the cube of the number of types of the proportion of redundant code elements in the plurality of code words.
[0178] In a possible implementation, the present application uses a curve different from the hermitian curve. curve to generate codewords, the The curve is as follows: Formula 7.
[0179] E(x,y)=y a +∑ ai+bj<ab c ij x i y j +hx b ,gcd(a,b)=1 and h≠0 Formula 7
[0180] Where E(x,y) represents C ab The function corresponding to the curve, a, b, i, j, h are all constants, and gcd(a,b)=1 means that the greatest common divisor of a and b is 1.
[0181] Should The powers of x and y in the curve are b and a respectively, and the only restriction between a and b is gcd(a,b)=1, that is, the greatest common divisor of a and b is 1, thus avoiding the problem that the powers of x and y in the hermitian curve are q+1 and q respectively, that is, the two are associated with q, resulting in the code length of the obtained hermitian code being q 3 , and q represents the number of types of redundant codewords in the plurality of codewords. The code length of the AG code generated by the first computing device 300 by using the above formula 7 is not affected by q 3 Limit, can be greater than q 3 .
[0182] For example, if q is 2, a hermitian code with a code length of 8 can be obtained according to the hermitian curve, and the code length of the RS code generated by the first computing device 300 using formula 7 can be 544. Therefore, the code length of the AG code obtained in the present application is greater than the cube of the proportion of redundant code elements.
[0183] Compared with the above encoding scheme to obtain the Hermitian code, the code length of the Hermitian code is equal to q 3 If the finite field is small, q is small, and the code length of the codeword is short. When the code rate is constant, the number of redundant code elements in the codeword is small, resulting in limited error correction capability of the codeword, affecting the accuracy of decoding. In this application, the code length of the AG code is greater than the cube of the number of types of redundant code elements. Therefore, the code length of the AG code is not affected by q. 3 Limitations, and thus, in the same finite field, a codeword with a longer code length can be obtained. When the code rate is constant, the number of redundant code elements in the codeword increases, which can improve the error correction capability of the codeword and thus improve the accuracy of decoding.
[0184] In a possible implementation, the first computing device 300 encodes the multiple groups of sub-data to obtain multiple codewords, including: the first computing device 300 performs channel encoding on the multiple groups of sub-data using different encoding formats, thereby obtaining multiple types of codewords. One group of sub-data corresponds to one type of codeword.
[0185] The above codewords are used to indicate RS codes, and the above different types of codewords may have the same code length, but different numbers of redundant code elements, and thus different proportions of redundant code elements in the codewords.
[0186] Exemplarily, the first computing device 300 encodes the above two groups of sub-data to obtain an RS code corresponding to one group of sub-data, the RS code format of which is (544, 524), and an RS code corresponding to another group of sub-data, the RS code format of which is (544, 504).
[0187] In the above (544, 524) and (544, 504), 544 represents the code length of the RS code, 524 and 504 represent information code elements, which represent code elements carrying part of the data to be encoded, that is, the number of information bits, and 20 (544-524) and 40 (544-504) represent the number of redundant code elements of the two types of code words, which are used to correct errors of information code elements.
[0188] In a possible embodiment, the first computing device 300 encodes multiple groups of sub-data: the first computing device 300 defines a finite field The AG codes on the above construct the heterogeneous codewords in S320.
[0189] For example, a finite field This means that the finite field has 1024 elements.
[0190] In a possible implementation, the first computing device 300 defines a finite field Constructing the heterogeneous codeword in S320 using the AG code on the image may include the following steps.
[0191] ①: The first computing device 300 is defined in a finite field on The curve is a base curve, and the base curve is as shown in the above formula 7.
[0192] ②: The first computing device 300 selects a set of affine points of a half-grid structure in the base curve as the assignment points to construct the codeword C E (u[P ∞ ]). The format of the codeword is (n,k).
[0193]
[0194] Among them, the semi-network structure affine point set means that the affine points are evenly divided into sets of the same size, and each set has the same number of points and the same horizontal coordinate. The above-mentioned set of the same size means that the affine points in the set have the same horizontal coordinate, but the same vertical coordinate. n represents the code length of the codeword, k represents the number of information bits of the codeword, is a Riemann-Roach space, i.e., an information polynomial space. Assume that the data to be encoded is d0, d1, ..., d k-1 , then the information polynomial f can be expressed as the following formula 9.
[0195] f(x,y)=d0φ0+d1φ1+…+d k-1 φ k-1 Formula 9
[0196] Among them, φ0, φ1, …, φ k-1 for A set of bases that satisfies the following formula 10.
[0197] {φ r =x i y i |ai+bj≤u} Formula 10
[0198] Wherein, u represents a constant, and r=0, 1, ..., k-1.
[0199] ③: The first computing device 300 assumes that the total number of different horizontal coordinates presented by all the radiation points is n x Any horizontal coordinate has a different vertical coordinate corresponding to it, so the affine points on it are presented as shown in Table 2 below.
[0200] Table 2
[0201]
[0202] ④: Based on the above formula 9, formula 10 and Table 2, the first computing device 300 can express the information polynomial f as the following formula 11.
[0203] f(x,y)=(1,y,…,y a-1 )·(f0(x),f1(x),…,f a-1 (x)) T
[0204] =f0(x)+f1(x)y+…+f a-1 (x)y a-1 Formula 11
[0205] Where T represents the matrix transpose, that is, (f0(x),r1(x),…,f a-1 (x)) T Indicates that the lateral quantities (f0(x), f1(x),…, f a-1 (x)) is transposed into the longitudinal quantities (f0(x),f1(x),…,f a-1 (x)).
[0206] ⑤: The first computing device 300 can obtain the corresponding AG code by assigning values to the above formula 11.
[0207] Exemplarily, the first computing device 300 uses the above The points on the curve are used to assign values to the above formula 11, and then the AG code is obtained.
[0208] In a possible scenario, the points on the curve can be randomly selected.
[0209] The proportion of redundant code elements in the codewords included in the above AG code has at least two values, that is, the AG code is also a heterogeneous codeword.
[0210] In a possible embodiment, the first computing device 300 may send the AG code to the second computing device 400.
[0211] For example, the first computing device 300 sends the AG code to the second device 102, and the second device 102 sends the AG code to the second computing device 400.
[0212] In a possible embodiment, the first computing device 300 may also split the obtained AG code to obtain a plurality of RS codes, and the proportion of redundant code elements in the plurality of RS codes has at least two values.
[0213] In a possible implementation, let the evaluation of f(x, y) at the midpoint can be obtained through the following formula 12.
[0214]
[0215] That is, the vector on the right side of formula 12 represents the code element corresponding to the abscissa of the evaluation point being α in the AG codeword. Therefore, the defined AG code can be converted into the following formula 13 interleaved heterogeneous RS code through formula 12.
[0216]
[0217] And the dimensions of the above heterogeneous RS codes are respectively as follows formula 14.
[0218] k(j) = max{i|ai + bj ≤ u, 0 ≤ j < a} + 1 Formula 14
[0219] Where 0 ≤ j < a, each row in the above formula 13 represents the codeword of an RS code, and each number represents the code element in the codeword. Formula 13 can be called a heterogeneous RS code.
[0220] In a possible scenario, the first computing device 300 may send the heterogeneous RS code to the second computing device 400.
[0221] For example, the first computing device 300 sends the heterogeneous RS code to the second device 102, and the second device 102 sends the heterogeneous RS to the second computing device 400.
[0222] Compared with the fixed ratio of redundant codewords in Hermitian codes, the error correction capability of Hermitian codes is limited. In the present application, since the ratio of redundant codewords of multiple codewords has at least two values, codewords with different ratios of redundant codewords have different error correction capabilities. When the second computing device 400 decodes the codewords with different error correction capabilities, the error correction capability of the overall decoding process can be improved, thereby improving the accuracy of the decoding result.
[0223] In another embodiment of the present application, the first computing device 300 processes each of the multiple data sets in S320 using the above formulas 7 to 14 to obtain a corresponding RS code, and interleaves and combines the RS codes corresponding to the multiple data sets to obtain an AG code. The first computing device 300 may send the AG code to the first device 101b.
[0224] Taking the multiple groups of data as two groups of data as an example, the first computing device 300 interleaves and combines a codeword in the RS code corresponding to one group of data with a codeword in the RS code corresponding to the other group of data to obtain an AG code. Similarly, the first computing device 300 also processes the other codewords in the two groups of data using the same method as above.
[0225] The proportion of redundant code elements in the codeword of each group of sub-data in the above-mentioned multiple groups of sub-data has at least two values.
[0226] For the content of the AG code obtained by the first computing device 300 through interleaving and merging the codewords, reference may be made to the description of step ③ of the second possible embodiment of the following data decoding method, which will not be described in detail here.
[0227] For Figure 2 In step ③ shown in the figure, the present application provides a data decoding method, which can be applied in Figure 1 The communication system shown can also be applied to Figure 2 In the encoding and decoding method shown. Figure 4 As shown, Figure 4 A flow chart of a data decoding method provided by the present application is shown in FIG. 1 . The data decoding method can be executed by a second computing device 400. The second computing device 400 can be deployed with Figure 1 The first device shown in FIG. 1 is, for example, the first device 101b. Figure 4 As shown, the data decoding method may include the following steps S410 to S420.
[0228] S410: The second computing device 400 obtains data to be decoded.
[0229] The data to be decoded includes multiple codewords, and the redundant codeword ratio of the multiple codewords has at least two values. The redundant codeword ratio of the first codeword is used to indicate the ratio of the redundant codewords in the first codeword to the total number of codewords in the first codeword; the redundant codewords of the second codeword are used to correct errors of non-redundant codewords in the second codeword. The first codeword and the second codeword are one codeword among the multiple codewords.
[0230] In a possible scenario, the code lengths of the multiple code words are consistent.
[0231] Two possible situations of the representation form of the data to be decoded are shown below.
[0232] In a possible scenario, the data to be decoded includes a plurality of RS codes, and the proportion of redundant code elements in the plurality of RS codes has at least two values. In other words, the plurality of RS codes are heterogeneous RS code words.
[0233] For example, there are two RS codes with formats of (544, 524) and (544, 504). The proportion of redundant code elements in the code word with format (544, 524) is (544-524) / 544≈3.7%, and the proportion of redundant code elements in the code word with format (544, 504) is (544-504) / 544≈7.4%.
[0234] In another possible scenario, the data to be decoded is a plurality of AG codes, each of which includes at least two RS code symbols, and the proportion of redundant code symbols included in the at least two RS codes has at least two values.
[0235] In other words, one AG code includes symbols of heterogeneous RS codewords.
[0236] Exemplarily, there is an existing AG code in the format of (1088, 1048), and the AG code in the format of (1088, 1048) can be obtained by combining the above-mentioned RS codes in the formats of (544, 524) and (544, 504).
[0237] For the content of the above example, reference may be made to the expression of splitting the AG code into multiple RS codes shown in the above formulas 12 and 13, which will not be repeated here.
[0238] In a possible embodiment, the code length of the AG code is greater than the cube of the number of types of the proportion of redundant code elements in the plurality of code words.
[0239] For the content of this embodiment, reference may be made to the above description of the code length of the AG code being greater than the cube of the number of types of the proportion of redundant code elements of multiple code words in S320, which will not be elaborated here.
[0240] For example, if an AG code includes two RS codes, and the proportion type number is 2, that is, (544, 524) and (544, 504), the code length of the AG code is greater than 8. The actual code length of the AG code is 1088, thereby avoiding the code length restriction of the codeword by q.
[0241] In a possible implementation, the second computing device 400 acquiring the data to be decoded includes: the second computing device 400 acquiring the data to be decoded sent by the first computing device 300 .
[0242] In another possible implementation, the second computing device 400 acquiring the data to be decoded includes: the second computing device 400 acquiring the data to be decoded sent to the second device by the first computing device 300 and forwarded by the second device 102 .
[0243] S420: The second computing device 400 decodes the multiple code words to obtain a decoding result of the data to be decoded.
[0244] In a possible implementation, the second computing device 400 decodes multiple codewords to obtain a decoding result of the data to be decoded, including: sorting the codewords according to the proportion of redundant code elements in the codewords, decoding the multiple codewords in turn, and obtaining a decoding result of the data to be decoded.
[0245] In a possible example, the above-mentioned proportion ranking may be the order of the proportion of redundant code elements in multiple code words from large to small, that is, decoding is performed in order from code words with low code rates to code words with high code rates.
[0246] Exemplarily, the second computing device 400 may use a RS codes as vector A, vector B, etc., and record them as First, the decoding algorithm is used to decode the RS code with the highest proportion of redundant code elements, that is, the RS code with the lowest code rate, that is, f a-1 The corresponding RS code vector Assume that the error vector is and will Replace with
[0247] Then decode the RS code with the second highest proportion of redundant code elements, that is, Decode. Zhongyu The same non-zero position is replaced with *, and the position marked with * is deleted. Perform erasure and error correction decoding, and Replace with
[0248] Same pair The same as decoding, in turn Decoding is performed to obtain a decoding result of the data to be decoded.
[0249] The above decoding algorithm may adopt any RS code decoding algorithm, such as the PGZ algorithm and the BM algorithm.
[0250] During the encoding or transmission process, sudden errors may occur, resulting in errors in the code elements at the same position in multiple code words. In this application, the code words are sorted from large to small according to the proportion of redundant code elements, and multiple code words are decoded in sequence, that is, decoding starts from the code word with the strongest error correction capability, so as to improve the accuracy of the decoding result of the code word. In addition, based on the code elements detected and corrected by the code word with the strongest error correction capability, the code elements in the subsequent code words can be adjusted, thereby improving the accuracy of decoding the subsequent code words, thereby improving the accuracy of decoding multiple code words, that is, improving the accuracy of overall decoding.
[0251] Regarding the process of the second computing device 400 implementing the data decoding method, four possible embodiments are provided below.
[0252] In a first possible embodiment, Figure 5 As shown, Figure 5 Schematic diagram of the data decoding method provided in this application Figure 1 The data to be decoded acquired by the second computing device 400 is a plurality of AG codes. The second computing device 400 may decode the data to be decoded including the following steps.
[0253] ①: The second computing device 400 converts multiple AG codes into heterogeneous RS codes.
[0254] Exemplarily, the second computing device 400 converts the plurality of AG codes into heterogeneous RS codes using the above formula 12 and formula 13. The heterogeneous RS code includes a plurality of code words.
[0255] ②: The second computing device 400 decodes the heterogeneous RS code to obtain a first decoding result of the data to be decoded.
[0256] Exemplarily, the second computing device 400 sorts the codewords according to the proportion of redundant codewords, and decodes multiple codewords in the heterogeneous RS code in sequence to obtain a first decoding result of the data to be decoded.
[0257] For the content of the above example, reference may be made to the above S420 in which a plurality of code words are decoded to obtain a representation of a decoding result of the data to be decoded, which will not be described in detail herein.
[0258] ③: If the decoding in step ② is successful, the second computing device 400 outputs the first decoding result.
[0259] Exemplarily, if the second computing device 400 does not detect an error in the first decoding result, that is, the first decoding result is consistent with the original encoded data, it can be determined that the decoding is successful.
[0260] Alternatively, if the second computing device 400 determines that the first decoding result is consistent with an expected decoding result, it means that the decoding is successful. The expected decoding result is the result corresponding to the data to be decoded.
[0261] ④: If the decoding in step ② fails, the second computing device 400 decodes the AG code to obtain a second decoding result of the data to be decoded.
[0262] Exemplarily, the second computing device 400 may decode the AG code using a maximum a posteriori probability (MAP) decoding algorithm or an approximate decoding algorithm.
[0263] The MAP decoding algorithm is a decoding algorithm based on the maximum a posteriori probability criterion. The MAP decoding algorithm uses the correlation between the input sequence and the output sequence and selects the most likely output sequence as the decoding result by calculating the a posteriori probability.
[0264] Approximate decoding algorithm is to use approximate algorithm to solve rational number approximation problem, or use numerical optimization method to realize AG code decoding.
[0265] If the AG code is decoded successfully, the second computing device 400 outputs a second decoding result.
[0266] If the AG code decoding fails, the second computing device 400 will feedback an abnormality, such as the second computing device 400 raising an alarm, reporting an error, or outputting the abnormality reason.
[0267] The judgment content of whether the second computing device 400 decodes the AG code successfully or unsuccessfully can refer to the content of step ③ in this embodiment, which will not be described in detail here.
[0268] In the present application, the second computing device 400 adopts a two-stage decoding architecture, namely the above-mentioned RS decoding and AG decoding. When RS decoding fails, AG decoding is performed, thereby improving the error correction performance when decoding multiple codewords, thereby improving the accuracy of the decoding results. In addition, in the two-stage decoding architecture, since the code length of the AG code becomes longer and the number of redundant code elements increases, the use of AG decoding can improve the error correction performance of random errors, thereby further improving the accuracy of the decoding results.
[0269] In a second possible embodiment, if Figure 6 As shown, Figure 6 Schematic diagram of the data decoding method provided in this application Figure 2 , the data to be decoded is a heterogeneous RS code, and the second computing device 400 may include the following steps to decode the data to be decoded.
[0270] ①: The second computing device 400 decodes the heterogeneous RS code to obtain a third decoding result of the data to be decoded.
[0271] For the content of step ①, reference can be made to the above S420 in which a plurality of code words are decoded to obtain a representation of the decoding result of the data to be decoded, which will not be described in detail here.
[0272] ②: If the decoding in step ① is successful, the second computing device 400 outputs a third decoding result.
[0273] ③: If the decoding in step ① fails, the second computing device 400 interleaves and combines the heterogeneous RS codes to obtain multiple AG codes.
[0274] Each of the multiple AG codes includes code elements of at least two code words, and the proportion of redundant code elements included in the at least two code words has at least two values.
[0275] Regarding the content of the second computing device 400 interleaving and merging heterogeneous RS codes to obtain multiple AG codes, reference can be made to the following description of the second computing device 400 using a determined interleaving scheme to interleave and merge heterogeneous RS codes to obtain multiple AG codes, which will not be repeated here.
[0276] ④: The second computing device 400 decodes the multiple AG codes to obtain a fourth decoding result.
[0277] If the AG decoding is successful, the second computing device 400 outputs a fourth decoding result.
[0278] If the AG code decoding fails, the second computing device 400 feedbacks an exception.
[0279] The content of decoding the AG code by the second computing device 400 can refer to the content of step ④ in the first possible embodiment above, which will not be described in detail here.
[0280] In the present application, the second computing device 400 adopts a two-stage decoding architecture, namely the above-mentioned RS decoding and AG decoding. When RS decoding fails, AG decoding is performed, thereby improving the error correction performance when decoding multiple codewords, thereby improving the accuracy of the decoding results. In addition, in the two-stage decoding architecture, since the code length of the AG code becomes longer and the number of redundant code elements increases, the use of AG decoding can improve the error correction performance of random errors, thereby further improving the accuracy of the decoding results.
[0281] In a possible implementation, the second computing device 400 interleaves and combines heterogeneous RS codes to obtain multiple AG codes, including: the second computing device 400 interleaves and combines heterogeneous RS codes using a determined interleaving scheme to obtain multiple AG codes.
[0282] Among them, the interleaving scheme can be row interleaving, column interleaving, diagonal interleaving, etc.
[0283] Regarding the second computing device 400 using a determined interleaving scheme to interleave and merge heterogeneous RS codes to obtain contents of multiple AG codes, three possible examples are provided below.
[0284] Example 1: row interleaving is to rearrange data in order of rows.
[0285] For example, if there is a heterogeneous RS code including codeword a and codeword b, and codeword a and codeword b both have three rows of data, as shown below.
[0286] Codeword a: Code word b:
[0287] The second computing device 400 performs row interleaving on codeword a and codeword b to obtain the interleaved AG code as follows.
[0288]
[0289] Example 2: Column interleaving is to rearrange data in the order of columns.
[0290] For example, if there is a heterogeneous RS code including codeword c and codeword d, and codeword c and codeword d both have two rows of data, as shown below.
[0291] Codeword c: Codeword d:
[0292] The second computing device 400 performs column interleaving on the codeword c and the codeword d to obtain the interleaved AG code as follows.
[0293]
[0294] Example 3: diagonal interleaving is to rearrange data in a diagonal order.
[0295] For example, if there is a heterogeneous RS code including codeword c and codeword d, the second computing device 400 performs diagonal interleaving on codeword c and codeword d to obtain the interleaved AG code as follows.
[0296]
[0297] In a third possible embodiment, Figure 7 As shown, Figure 7 Schematic diagram of the data decoding method provided in this application Figure 3 , the data decoding method performed by the second computing device 400 may include the following steps.
[0298] ①: The second computing device 400 converts the acquired multiple AG codes into heterogeneous RS codes.
[0299] Exemplarily, the second computing device 400 converts the plurality of AG codes into heterogeneous RS codes using the above formula 12 and formula 13.
[0300] ②: The second computing device 400 re-encodes the heterogeneous RS code to obtain data to be decoded.
[0301] In a possible implementation, the second computing device 400 re-encodes the heterogeneous RS code to obtain the to-be-decoded data, including: the second computing device 400 re-encodes a codewords in the heterogeneous RS code so that the first The code elements become 0, where s is equal to the heterogeneous RS code f a -1 dimension.
[0302] Exemplarily, let the heterogeneous RS code information polynomial be Corresponding received vector Then the recoding polynomial is based on the following formula 15.
[0303]
[0304] Available, We can further obtain formula 16.
[0305]
[0306] in, and and Having the same error, Represents the codeword (vector) before recoding. represents the recoded codeword (vector), k(j) is the dimension of the RS code, the highest power of any information polynomial of the corresponding RS code is less than k(j)-1, and αi here is the horizontal coordinate of the above AG code, that is, the assignment coordinate of the corresponding RS code. Therefore, the above formula 13 can be converted into the following formula 17.
[0307]
[0308] ③: The second computing device 400 decodes the data to be decoded to obtain first data to be decoded.
[0309] In a possible implementation, the second computing device 400 sorts the codewords according to the proportion of redundant codewords, and sequentially decodes multiple codewords in the data to be decoded to obtain first data to be decoded.
[0310] For the content of step ③ in this embodiment, reference can be made to the above S420 in which a plurality of code words are decoded to obtain a representation of the decoding result of the data to be decoded, which will not be described in detail here.
[0311] ④: If the decoding in step ③ is successful, the second computing device 400 performs inverse re-encoding on the first data to be decoded to obtain a fifth decoding result.
[0312] Exemplarily, the second computing device 400 performs inverse recoding on the first to-be-decoded data according to the above formula 15 and formula 16 to obtain the fifth decoding result. That is, the second computing device 400 converts the codeword from the expression form of formula 17 to the expression form of formula 13.
[0313] In a possible implementation, the second computing device 400 may further output a fifth decoding result.
[0314] ⑤: If the decoding in step ③ fails, the second computing device 400 interleaves and merges the data to be decoded to obtain the AG code.
[0315] For the content of the second computing device 400 converting the to-be-decoded data into AG code, reference may be made to the content of step ③ in the second possible embodiment described above, which will not be elaborated herein.
[0316] ⑥: The second computing device 400 decodes the AG code to obtain second data to be decoded.
[0317] ⑦: If the AG decoding is successful, the second computing device 400 performs inverse re-encoding on the second data to be decoded to obtain a sixth decoding result.
[0318] Exemplarily, the second computing device 400 performs inverse re-encoding on the second data to be decoded according to the above formula 15 and formula 16 to obtain a sixth decoding result.
[0319] In a possible implementation, the second computing device 400 may further output a sixth decoding result.
[0320] If the AG decoding fails, the second computing device 400 feedbacks an exception.
[0321] In the present application, the second computing device 400 performs re-encoding on the basis of two-stage decoding, setting some code elements in the codeword to 0, thereby reducing the difficulty of RS decoding and AG decoding, that is, having lower decoding complexity, which can increase the decoding speed of the second computing device 400, thereby improving the decoding efficiency.
[0322] In a fourth possible embodiment, if Figure 8 As shown, Figure 8 Schematic diagram of the data decoding method provided in this application Figure 4As shown in the figure, the data decoding method performed by the second computing device 400 may include the following steps.
[0323] ①: The second computing device 400 re-encodes the obtained heterogeneous RS code to obtain data to be decoded.
[0324] For the content of step ①, reference may be made to the description of step ② in the third possible embodiment, which will not be elaborated here.
[0325] ②: The second computing device 400 decodes the data to be decoded to obtain the third data to be decoded.
[0326] For the content of step ② in this embodiment, reference can be made to the above S420 in which a plurality of code words are decoded to obtain a representation of the decoding result of the data to be decoded, which will not be described in detail here.
[0327] ③: If the decoding in step ② is successful, the second computing device 400 performs inverse re-encoding on the third data to be decoded to obtain the seventh decoding result.
[0328] For the content of step ③ in this embodiment, reference may be made to the description of step ② in the third possible embodiment described above, and no further details will be given here.
[0329] ④: If the decoding in step ② fails, the second computing device 400 interleaves and merges the data to be decoded to obtain the AG code.
[0330] For the second computing device 400 interleaving and merging the data to be decoded to obtain the AG code, reference may be made to the content of step ③ in the second possible embodiment, which will not be described in detail here.
[0331] ⑤: The second computing device 400 decodes the AG code to obtain fourth data to be decoded.
[0332] ⑥ If the AG decoding is successful, the second computing device 400 performs inverse re-encoding on the fourth data to be decoded to obtain an eighth decoding result.
[0333] Exemplarily, the second computing device 400 inversely re-encodes the second AG data to be decoded according to the above formula 15 and formula 16 to obtain an eighth decoding result.
[0334] In a possible implementation, the second computing device 400 may further output a sixth decoding result.
[0335] If the AG decoding fails, the second computing device 400 feedbacks an exception.
[0336] In the present application, the second computing device 400 performs re-encoding on the basis of two-stage decoding, setting some code elements in the codeword to 0, thereby reducing the difficulty of RS decoding and AG decoding, that is, having lower decoding complexity, which can increase the decoding speed of the second computing device 400, thereby improving the decoding efficiency.
[0337] It is understandable that in order to implement the functions in the above embodiments, the computing device includes hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should easily realize that, in combination with the units and method steps of each example described in the embodiments disclosed in this application, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application scenario and design constraints of the technical solution.
[0338] Combined with the above Figure 2 , Figure 3 , describes in detail the data encoding method provided according to this embodiment, and will be combined with Fig. 9 , describing the data encoding device provided according to this embodiment.
[0339] Fig. 9 A schematic diagram of the structure of a data encoding device provided in this application Figure 1 The data encoding device can be used to implement the function of the first computing device in the above method embodiment, and thus can also achieve the beneficial effects of the above method embodiment. In this embodiment, the data encoding device can be a module (such as a chip) of the first computing device.
[0340] like Fig. 9 As shown, the data encoding device 900 includes an acquisition module 910 and an encoding module 920. The data encoding device 900 is used to implement the above Figure 2 , Figure 3 The functions in the method embodiments shown in .
[0341] The acquisition module 910 is used to acquire data to be encoded.
[0342] The encoding module 920 is used to encode the data to be encoded to obtain multiple code words; the redundant code element ratio of the multiple code words has at least two values, and the redundant code element ratio of the first code word is used to indicate the ratio of the redundant code elements in the first code word to the total number of code elements in the first code word; the redundant code elements of the second code word are used to correct errors of non-redundant code elements in the second code word, and the first code word and the second code word are one code word among the multiple code words.
[0343] To further achieve the above Figure 2 , Figure 3 The present application also provides a data encoding device, such as Fig.10 As shown, Fig.10 A schematic diagram of the structure of a data encoding device provided in this application Figure 2 , the data encoding device 900 also includes a merging module 930.
[0344] The merging module 930 is used to interleave and merge multiple code words to obtain multiple algebraic geometric codes, and the redundant code element ratio of the code words included in an algebraic geometric code has at least two values.
[0345] It is worth noting that the first computing device 300 of the aforementioned embodiment may correspond to the data encoding device 900, and may correspond to executing the method according to the embodiment of the present application. Figure 2 and Figure 3 The corresponding corresponding subjects, and the operations and / or functions of each module in the data encoding device 900 are respectively to achieve Figure 2 and Figure 3 For the sake of brevity, the corresponding processes of each method in the corresponding embodiments are not repeated here.
[0346] Combined with the above Figure 2 , Figure 4-Figure 8 , describes in detail the data decoding method provided according to this embodiment, and will now be combined with Fig.11 , describing the data decoding device provided according to this embodiment.
[0347] Fig.11 A schematic diagram of the structure of a data decoding device provided in this application Figure 1 The data decoding device can be used to implement the function of the second computing device in the above method embodiment, and thus can also achieve the beneficial effects of the above method embodiment. In this embodiment, the data decoding device can be a module (such as a chip) of the second computing device.
[0348] like Fig.11 As shown, the data decoding device 1100 includes an acquisition module 1110 and a first decoding module 1120. The data decoding device 1100 is used to implement the above Figure 2 , Figure 4-Figure 8 The functions in the method embodiments shown in .
[0349] The acquisition module 1110 is used to acquire data to be decoded, where the data to be decoded includes multiple code words, and the redundant code element ratio of the multiple code words has at least two values. The redundant code element ratio of the first code word is used to indicate the ratio of the redundant code elements in the first code word to the total number of code elements in the first code word; the redundant code elements of the second code word are used to correct errors of non-redundant code elements in the second code word; the first code word and the second code word are one code word among the multiple code words.
[0350] The first decoding module 1120 is used to decode multiple code words to obtain a decoding result of the data to be decoded.
[0351] To further achieve the above Figure 2 , Figure 4-Figure 8 The present application also provides a data decoding device, such as Fig.12 As shown, Fig.12 A schematic diagram of the structure of a data decoding device provided in this application Figure 2 The data decoding device 1100 also includes a merging module 1130 and a second decoding module 1140.
[0352] Among them, the merging module 1130 is used to interleave and merge the multiple codewords to obtain multiple algebraic geometry codes if the first decoding module fails to decode the multiple codewords, and the redundant codeword ratio of the codeword included in an algebraic geometry code has at least two values.
[0353] The second decoding module 1140 is used to decode the multiple algebraic geometry codes to obtain a decoding result, or to decode the multiple algebraic geometry codes to obtain second data to be decoded; and to inversely re-encode the second data to be decoded to obtain a decoding result.
[0354] It is worth noting that the second computing device 400 according to the embodiment of the present application may correspond to the data decoding device 1100 in the embodiment of the application, and may correspond to executing the method according to the embodiment of the present application. Figure 2 , Figures 4 to 8 The corresponding corresponding subjects, and the operations and / or functions of each module in the data decoding device 1100 are respectively to achieve Figure 2 , Figures 4 to 8 For the sake of brevity, the corresponding processes of each method in the corresponding embodiment are not repeated here.
[0355] in addition, Figure 9-12 The device shown can also be implemented by a communication device, where the communication device may refer to the first device or the second device in the aforementioned embodiment, or, when the communication device is a chip or a chip system applied to the first device or the second device, the device can also be implemented by the chip or the chip system.
[0356] When the data encoding (or data decoding) device is implemented by hardware, the hardware can be implemented by a processor or a chip. The following is an example of the hardware being a chip, which includes a processor for implementing the functions of the first computing device 300 and / or the second computing device 400 in the above method. In a possible design, the chip also includes a power supply circuit for powering the processor. The chip can be directly composed of a chip, or it can include a chip and other discrete devices.
[0357] The present application provides a processing device, such as Fig.13 As shown, Fig.13 A schematic diagram of the structure of a processing device provided in this application. The computer device can be applied to Figure 1 In the communication system (coding and decoding system) shown, the processing device 1300 can be any one of the first computing device 300 or the second computing device 400.
[0358] The processing device 1300 may specifically be a mobile phone, a tablet computer, a television (also referred to as a smart TV, a smart screen or a large-screen device), a laptop computer, an ultra-mobile personal computer (UMPC), a handheld computer, a netbook, a personal digital assistant (PDA), a wearable electronic device (e.g., a smart watch, a smart bracelet, smart glasses), a vehicle-mounted device, a virtual reality device, a server, or other processing device with computing capabilities.
[0359] like Fig.13 As shown, the processing device 1300 includes: a bus 1302, a processor 1304, a memory 1306 and a communication interface 1308. The processor 1304, the memory 1306 and the communication interface 1308 communicate with each other through the bus 1302. The processing device 1300 can be a server or a terminal device. It is worth noting that the present application does not limit the number of processors and memories in the processing device.
[0360] The bus 1302 may be, but is not limited to: a PCIe bus, a universal serial bus (USB), or an inter-integrated circuit (I2C), an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a compute express link (CXL), a cache coherent interconnect for accelerators (CCIX), etc. The bus 1302 may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.13 The bus 1302 may include a path for transmitting information between various components of the processing device 1300 (eg, the memory 1306, the processor 1304, and the communication interface 1308).
[0361] The processor 1304 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).
[0362] The memory 1306 may include a volatile memory, such as a random access memory (RAM). The memory 1306 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).
[0363] The memory 1306 stores executable program codes, and the processor 1304 executes the executable program codes to respectively implement the functions of the acquisition module and the first decoding module, thereby implementing the above data decoding method. That is, the memory 1306 stores instructions for executing the data decoding method.
[0364] Alternatively, the memory 1306 stores executable codes, and the processor 1304 executes the executable codes to respectively implement the functions of the acquisition module and the encoding module, thereby implementing the data encoding method. That is, the memory 1306 stores instructions for executing the data encoding method.
[0365] The communication interface 1308 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the processing device 1300 and other devices or a communication network.
[0366] The embodiment of the present application also provides a computer program product including instructions. The computer program product may be software or a program product including instructions that can be run on a processing device or stored in any available medium. When the computer program product is run on at least one processing device, the at least one processing device executes the above-mentioned data encoding method or data decoding method.
[0367] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by the processing device or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk). The computer-readable storage medium includes instructions that instruct the processing device to execute a data encoding method or a data decoding method.
[0368] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented by software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instruction is loaded and executed on a computer, the process or function described in the embodiment of the present application is executed in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device or other programmable device. The computer program or instruction may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer program or instruction may be transmitted from one website site, computer, server or data center to another website site, computer, server or data center by wired or wireless means. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server, data center, etc. that integrates one or more available media. The available medium may be a magnetic medium, for example, a floppy disk, a hard disk, a tape; it may also be an optical medium, for example, a digital video disc (DVD); it may also be a semiconductor medium, for example, a solid state drive (SSD).
[0369] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of various equivalent modifications or replacements within the technical scope disclosed in the present application, and these modifications or replacements should be included in the protection scope of the present application. Therefore, the protection scope of the present application shall be based on the protection scope of the claims.
Claims
1. A data decoding method, characterized in that: The method comprises: Acquire data to be decoded, the data to be decoded includes a plurality of codewords, the redundant codeword ratios of the plurality of codewords have at least two values, the redundant codeword ratio of a first codeword is used to indicate a ratio of redundant codewords in the first codeword to the total number of codewords in the first codeword; the redundant codewords of a second codeword are used to correct errors of non-redundant codewords in the second codeword; the first codeword and the second codeword are one codeword among the plurality of codewords; The multiple code words are decoded to obtain a decoding result of the data to be decoded.
2. The method according to claim 1, characterized in that The data to be decoded are a plurality of algebraic geometric codes, and the proportion of redundant code elements in a codeword included in an algebraic geometric code has at least two values.
3. The method according to claim 2, characterized in that The code length of the algebraic geometric code is greater than the cube of the number of numerical types of the proportion of redundant code elements in the multiple code words.
4. The method according to any one of claims 1 to 3, characterized in that The decoding of the multiple code words to obtain a decoding result of the data to be decoded includes: The code words are sorted according to their redundant code element ratios, and the multiple code words are decoded in sequence to obtain a decoding result of the data to be decoded.
5. The method according to any one of claims 1 to 4, characterized in that If decoding fails when decoding the multiple code words, the method further includes: Interleaving and merging the multiple codewords to obtain multiple algebraic geometric codes, wherein the proportion of redundant codewords in the codewords included in an algebraic geometric code has at least two values; The multiple algebraic geometry codes are decoded to obtain the decoding result.
6. The method according to any one of claims 1 to 3, characterized in that The codeword is re-encoded data, and the decoding of the multiple codewords to obtain a decoding result of the data to be decoded includes: Sorting the codewords according to the proportion of redundant code elements in the codewords, decoding the codewords in sequence, and obtaining first to-be-decoded data of the to-be-decoded data; The first data to be decoded is inversely re-encoded to obtain the decoding result.
7. The method according to claim 6, characterized in that If decoding fails when decoding the multiple code words, the method further includes: Interleaving and merging the multiple codewords to obtain multiple algebraic geometric codes, wherein the proportion of redundant codewords in the codewords included in an algebraic geometric code has at least two values; Decoding the plurality of algebraic geometry codes to obtain second data to be decoded of the data to be decoded; The second data to be decoded is inversely re-encoded to obtain the decoding result.
8. A data encoding method, characterized in that: The method comprises: Get the data to be encoded; The data to be encoded is encoded to obtain multiple codewords; the redundant codeword ratio of the multiple codewords has at least two values, and the redundant codeword ratio of the first codeword is used to indicate the ratio of the redundant codewords in the first codeword to the total number of codewords in the first codeword; the redundant codewords of the second codeword are used to correct errors of non-redundant codewords in the second codeword, and the first codeword and the second codeword are one codeword among the multiple codewords.
9. The method according to claim 8, characterized in that The method further comprises: The multiple codewords are interleaved and combined to obtain multiple algebraic geometric codes, and the redundant codeword ratio of the codewords included in an algebraic geometric code has at least two values.
10. The method according to claim 9, characterized in that The code length of the algebraic geometric code is greater than the cube of the number of numerical types of the proportion of redundant code elements in the multiple code words.
11. The method according to any one of claims 8 to 10, characterized in that The encoding of the to-be-encoded data to obtain a plurality of code words comprises: curve, encoding the data to be encoded to obtain the multiple code words; The curve satisfies the following expression: E(x,y) = y a + ∑ ai+bj<ab c ij x i y j + hx b , gcd(a,b) = 1 and h ≠ 0 Where E(x,y) represents C ab The function corresponding to the curve, a, b, i, j, h represent constants, and gcd(a,b)=1 means the greatest common divisor of a and b is 1.
12. A data decoding device, characterized in that: The device comprises: an acquisition module, configured to acquire data to be decoded, wherein the data to be decoded includes a plurality of code words, and the proportion of redundant code words of the plurality of code words has at least two values, wherein the proportion of redundant code words of a first code word is used to indicate a ratio of redundant code words in the first code word to the total number of code words in the first code word; the redundant code words of a second code word are used to correct errors of non-redundant code words in the second code word; and the first code word and the second code word are one code word among the plurality of code words; The first decoding module is used to decode the multiple code words to obtain a decoding result of the data to be decoded.
13. The device according to claim 12, characterized in that The data to be decoded are a plurality of algebraic geometric codes, and the proportion of redundant code elements in a codeword included in an algebraic geometric code has at least two values.
14. The device according to claim 13, characterized in that The code length of the algebraic geometric code is greater than the cube of the number of numerical types of the proportion of redundant code elements in the multiple code words.
15. The device according to any one of claims 12 to 14, characterized in that The first decoding module is further used to sort the code words according to the proportion of redundant code elements in the code words, decode the multiple code words in sequence, and obtain the decoding result of the data to be decoded.
16. The device according to any one of claims 12 to 15, characterized in that The device also includes a merging module and a second decoding module: The merging module is configured to interleave and merge the multiple codewords to obtain multiple algebraic geometric codes if the first decoding module fails to decode the multiple codewords, wherein the redundant codeword ratio of the codewords included in an algebraic geometric code has at least two values; The second decoding module is used to decode the multiple algebraic geometry codes to obtain the decoding result.
17. The device according to any one of claims 12 to 14, characterized in that The codeword is re-encoded data, and the first decoding module is also used to sort the codewords according to the proportion of redundant code elements, decode the multiple codewords in sequence, and obtain the first data to be decoded; inversely re-encode the first data to be decoded to obtain the decoding result.
18. The device according to claim 17, characterized in that The device also includes a merging module and a second decoding module: The merging module is configured to interleave and merge the multiple codewords to obtain multiple algebraic geometric codes if the first decoding module fails to decode the multiple codewords, wherein the redundant codeword ratio of the codewords included in an algebraic geometric code has at least two values; The second decoding module is used to decode the multiple algebraic geometry codes to obtain second data to be decoded of the data to be decoded; The second data to be decoded is inversely re-encoded to obtain the decoding result.
19. A data encoding device, characterized in that: The device comprises: An acquisition module, used for acquiring data to be encoded; The encoding module is used to encode the data to be encoded to obtain multiple code words; the redundant code element ratio of the multiple code words has at least two values, and the redundant code element ratio of the first code word is used to indicate the ratio of the redundant code elements in the first code word to the total number of code elements in the first code word; the redundant code elements of the second code word are used to correct errors of non-redundant code elements in the second code word, and the first code word and the second code word are one code word among the multiple code words.
20. The device according to claim 19, characterized in that The device further comprises: a merging module; The merging module is used to interleave and merge the multiple code words to obtain multiple algebraic geometric codes, and the redundant code element ratio of the code words included in an algebraic geometric code has at least two values.
21. The device according to claim 20, characterized in that The code length of the algebraic geometric code is greater than the cube of the number of numerical types of the proportion of redundant code elements in the multiple code words.
22. The device according to any one of claims 19 to 21, characterized in that The encoding module is also used to curve, encoding the data to be encoded to obtain the multiple code words; The curve satisfies the following expression: E(x,y) = y a + ∑ ai+bj<ab c ij x i y j + hx b ,where gcd(a,b) = 1 and h ≠ 0 Where E(x,y) represents C ab The function corresponding to the curve, a, b, i, j, h represent constants, and gcd(a,b)=1 means the greatest common divisor of a and b is 1.
23. A chip, characterized in that: include: Processor and power supply circuit; The power supply circuit is used to supply power to the processor; The processor is configured to execute the method according to any one of claims 1 to 11.
24. A codec, characterized in that: The method comprises a memory and a processor, wherein the memory is used to store computer instructions; when the processor executes the computer instructions, the method according to any one of claims 1 to 11 is implemented.
25. A coding and decoding system, characterized in that: Including encoding end and decoding end; The encoding end is used to encode the data to be encoded to obtain multiple code words, thereby implementing the method according to any one of claims 8 to 11; The decoding end is used to decode the data to be decoded to obtain a decoding result of the data to be decoded, wherein the data to be decoded includes the multiple code words, thereby implementing the method described in any one of claims 1 to 7.
26. A computer-readable storage medium, characterized in that: The storage medium stores a computer program or instruction, and when the computer program or instruction is executed by a processing device, the method according to any one of claims 1 to 11 is implemented.
27. A computer program product comprising a computer program or instructions, characterized in that When the computer program or instruction is executed on a processing device, the method according to any one of claims 1 to 11 is implemented.