Data coding method, apparatus and system

CN122844859APending Publication Date: 2026-09-29HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510398272.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-29
Publication Date
2026-09-29

AI Technical Summary

Technical Problem

[0004]本申请提供一种数据译码方法、装置和系统,能够解决设备对编码数据进行纠删纠错译码时的计算速度慢,计算资源消耗大的问题

Benefits of technology

[0032]第五方面,提供一种包含指令的计算机程序产品,当该指令被至少一个计算设备运行时,使得至少一个计算设备执行如第一方面所述的数据译码方法。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122844859A_ABST
    Figure CN122844859A_ABST
Patent Text Reader

Abstract

The application relates to the computer technical field and provides a data decoding method, device and system. The method comprises the following steps: obtaining a code word with erasure, the code word being a code word obtained by encoding target data through an AG code encoding method; performing calculation of an erasure locator of each subset according to t subsets obtained by dividing an erasure position set of the code word, to obtain t first erasure locators; wherein t is an integer greater than or equal to 2, and the erasure locator indicates erasure position information; then obtaining a second erasure locator according to the product of the t first erasure locators; and obtaining a decoding result of the code word according to the code word and the second erasure locator. The method can reduce the calculation resource consumption and speed up the calculation of the device in the decoding process on the basis of successful decoding.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, specifically to data decoding methods, apparatus, and systems. Background Technology

[0002] Data communication systems and data storage systems can perform error correction encoding on data. For example, the sending end can encode data and send the encoded data to the receiving end. During data transmission, noise and other factors may cause codewords in the encoded data to be erased or corrupted. After receiving the encoded data, the receiving end can perform error correction decoding to obtain the correct encoded data, thereby ensuring data reliability.

[0003] During the error correction decoding process, the device needs to determine the location of the erroneous symbol and then reconstruct the correct encoded data based on that location. This decoding process is computationally complex and computationally intensive, resulting in slow decoding speed and high computational resource consumption. Summary of the Invention

[0004] This application provides a data decoding method, apparatus, and system that can solve the problems of slow computation speed and high computational resource consumption when devices perform error correction and decoding on encoded data.

[0005] Firstly, a data decoding method is provided. The method includes acquiring a codeword that has been erased, which is a codeword obtained by encoding target data using an AG code encoding method. Then, based on t subsets obtained by dividing the set of erase positions of the codeword, the method calculates erase locators for each subset to obtain t first erase locators. Here, t is an integer greater than or equal to 2, and the erase locators indicate erase position information. Next, a second erase locator is obtained by multiplying the t first erase locators. Finally, the decoding result of the codeword is obtained based on the codeword and the second erase locators.

[0006] Erasure decoding of erased AG codes can include multiple processes. These include calculating erasure locators of the erase location set of codewords, and obtaining the decoding result of the codewords based on the erasure locators and the codewords. The decoding result of the codewords can include the recovered target data and the restored correct codewords. In a specific embodiment, the message function of the codewords can be obtained based on the codewords and the second erasure locator. The target data to be recovered and the correct codewords to be restored can be obtained from the message function.

[0007] Using the data decoding method provided in the embodiments of this application, the device can divide the erase location set E into t subsets according to the divide-and-conquer approach, and process each subset E separately. iThe erase locator is calculated, and then the required second erase locator (i.e., the erase locator of the erase position set) is obtained by multiplying the first erase locators of the t subsets. Based on the device's ability to successfully calculate the erase locator of the erase position set for decoding, compared to directly calculating the erase locator on the erase position set, each subset has fewer elements, reducing computational complexity, and multiple subsets can be computed in parallel. This results in reduced computational resource consumption and faster computation speed during the decoding process.

[0008] In one possible implementation, the subset contains z erase positions, the value of which is determined by the genus g of the algebraic curve used in the AG code encoding method, and z is an integer greater than or equal to 2.

[0009] The number of erase positions z contained in a subset can affect the decoding performance of the decoding method in this embodiment. In this embodiment, for any subset, the value of the number of erase positions z is determined according to the algebraic curve used in the AG code encoding method. The genus configuration g ensures a good decoding effect for the decoding method in the embodiments of this application. For example, the number z of erasure positions contained in the subset can ensure that the erasure decoding radius of the decoding method can reach Nk.

[0010] In another possible implementation, the set of erase locations contains e erase locations. The number of erase locations z = cg in the t-1 subsets, and the number of erase locations z = e - cg·(t-1) in the 1st subset excluding the t-1 subsets, where c is an integer greater than 1.

[0011] The number of subsets, *t*, and the number of erasure positions *z* contained within each subset can affect the decoding performance of the decoding method in this embodiment. This embodiment achieves the idea of ​​uniformly dividing the set of erasure positions into *t* subsets based on the number of erasure positions *cg*. Thus, the number of subsets, *t*, and the number of erasure positions *z* contained within each subset ensure that the erasure decoding radius of the decoding method reaches *Nk*, and balances the computational complexity and speed of the device executing the decoding method, ensuring reduced computational complexity and faster computation speed. This effectively guarantees the decoding performance of the decoding method in this embodiment.

[0012] In another possible implementation, the computation of the erase locator for each subset includes: based on z points among N rational points on the algebraic curve associated with z erase locations contained in the subset and the Riemann Roch space L(vP) ∞ The first erase locator is obtained by calculating the erase locator of the subset of z+1 linearly independent functions in the equation. Here, v is configured according to z, N is the codeword length, and the algebraic curve is the algebraic curve used in the AG code encoding method.

[0013] Erasure locators can be calculated using N rational points on an algebraic curve and N+1 linearly independent functions in the Riemann Roch space. In this embodiment, when calculating the erase locator for each subset, since the subset has z fewer elements than the erase location set, the erase locator can be calculated using z points from the N rational points and z+1 linearly independent functions in the Riemann Roch space. Compared to calculating the erase locator for the erase location set, calculating the erase locator for a subset involves smaller parameters and reduced computational complexity. Thus, the computational resource consumption and speed are increased when calculating the erase locator for t subsets.

[0014] In another possible implementation, obtaining the second erase location from the product of t first erase location locations includes: performing multiple stages of product calculation based on the t first erase location locations to obtain the product of the t first erase location locations as the second erase location location. The first stage of product calculation involves performing product calculations on multiple sets of elements in the t first erase location locations respectively, obtaining multiple product results for multiple sets of elements. The i-th stage of product calculation after the first stage involves performing product calculations on the multiple product results obtained in the (i-1)-th calculation stage, where i is an integer greater than or equal to 2.

[0015] This embodiment allows the calculation of the product of t erase locators to be divided into multiple stages, with each stage requiring only a few elements to be multiplied (e.g., pairwise multiplication). This reduces the computational complexity of the device performing the product calculation of t erase locators, resulting in reduced computational resource consumption and faster calculation speed.

[0016] In another possible implementation, obtaining the decoding result of the codeword based on the codeword and the second erase locator includes: performing a target equation calculation based on the second erase locator and the codeword to obtain the message function of the codeword, wherein the target equation indicates the functional relationship between the second erase locator and the message function of the codeword; and obtaining the decoding result of the codeword based on the message function.

[0017] In this embodiment, by constructing the objective equation, the message function for obtaining the codeword from the second erase locator and the codeword can be successfully implemented, and the decoding result of the codeword can be successfully obtained according to the message function.

[0018] In another possible implementation, the message function of the codeword is obtained by performing the calculation of the objective equation based on the second erase locator and the codeword, including: determining M rational points in the objective function domain (the value of the second erase locator at the M rational points is not equal to 0, M is greater than the codeword length, and the objective function domain is the expanded function domain obtained by expanding the function domain of the algebraic curve used in the AG code encoding method), and performing the calculation of the objective equation based on the objective function in the objective equation and the value of the second erase locator at the M rational points to obtain the message function.

[0019] Based on the function domain of the algebraic curve used in the AG code encoding method, N rational points can be selected to be substituted into the target equation to calculate the message function. However, this method has a high computational complexity for rational points with two-dimensional coordinates, making it difficult to calculate the message function. In this embodiment, the function domain is expanded so that M rational points (M > N) can be selected in the expanded target function domain to be substituted into the target equation to calculate the message function. It can be understood that the more rational points substituted into the target equation, the lower the complexity of calculating the message function. Thus, the computational resource consumption and calculation speed of the device in calculating the message function are reduced.

[0020] In another possible implementation, the size of the constant field of the function field is q, and the size of the constant field of the expanded function field is q. s , where s is the genus of the algebraic curve according to the logg configuration.

[0021] According to this embodiment, the expansion scale of the configuration domain is q, which is the size of the constant field of the expanded function domain. s This ensures that the expanded function domain can obtain the required M rational points for calculating the message function.

[0022] Secondly, a data decoding apparatus is provided, comprising a data acquisition module and a processing module. The data acquisition module acquires the codeword that has been erased, the codeword being a codeword encoded using an algebraic geometric AG code encoding method. The processing module calculates the erase locator for each of the t subsets obtained by dividing the codeword into erase position sets, resulting in t first erase locators, where t is an integer greater than or equal to 2, and the erase locator is a function indicating the erase position information. The processing module further calculates a second erase locator based on the product of the t first erase locators. Finally, the processing module obtains the decoding result of the codeword based on the codeword and the second erase locator.

[0023] In one possible implementation, the subset contains z erase positions, the value of which is determined by the genus g of the algebraic curve used in the AG code encoding method, and z is an integer greater than or equal to 2.

[0024] In another possible implementation, the set of erase locations contains e erase locations. The number of erase locations z = cg in the t-1 subsets, and the number of erase locations z = e - cg·(t-1) in the 1st subset excluding the t-1 subsets, where c is an integer greater than 1.

[0025] In another possible implementation, the processing module is also used to: determine the z points among N rational points on the algebraic curve that are associated with the z erase positions contained in the subset and the Riemann Roch space L(vP). ∞ The first erase locator is obtained by calculating the erase locator of the subset of z+1 linearly independent functions in the equation. Here, v is configured according to z, N is the codeword length, and the algebraic curve is the algebraic curve used in the AG code encoding method.

[0026] In another possible implementation, the processing module is further configured to: perform product calculations in multiple stages based on t first erase locators to obtain the product of the t first erase locators as the second erase locator. The first stage of product calculation includes performing product calculations on multiple sets of elements in the t first erase locators respectively, obtaining multiple product results for multiple sets of elements. The i-th stage of product calculation after the first stage includes performing product calculations on the multiple product results obtained in the (i-1)-th calculation stage, where i is an integer greater than or equal to 2.

[0027] In another possible implementation, the processing module is further configured to: perform calculation of the target equation based on the second erase locator and the codeword to obtain the message function of the codeword, wherein the target equation indicates the functional relationship between the second erase locator and the message function of the codeword; and obtain the decoding result of the codeword based on the message function.

[0028] In another possible implementation, the processing module is also used to: determine M rational points in the objective function domain (the value of the second erase locator at the M rational points is not equal to 0, M is greater than the code length of the codeword, and the objective function domain is the expanded function domain obtained by expanding the function domain of the algebraic curve used in the AG code encoding method), and to perform the calculation of the objective equation according to the objective function in the objective equation and the value of the second erase locator at the M rational points to obtain the message function.

[0029] In another possible implementation, the size of the constant field of the function field is q, and the size of the constant field of the expanded function field is q. s , where s is the genus of the algebraic curve according to the logg configuration.

[0030] Thirdly, a computing device is provided, comprising a processor and a memory. The processor executes instructions stored in the memory to cause the computing device to perform the data decoding method described in the first aspect.

[0031] Fourthly, a chip system is provided, comprising a processor and a power supply circuit. The power supply circuit supplies power to the processor, which executes the operational steps of the data decoding method described in the first aspect.

[0032] Fifthly, a computer program product containing instructions is provided, which, when executed by at least one computing device, cause the at least one computing device to perform the data decoding method as described in the first aspect.

[0033] Based on the implementation methods provided in the above aspects, this application can be further combined to provide more implementation methods.

[0034] The following description includes more specific details about the implementation methods provided for the above aspects. Attached Figure Description

[0035] Figure 1 This is a schematic diagram of the architecture of the communication system provided in the embodiments of this application;

[0036] Figure 2 A flowchart illustrating the data decoding method provided in this application embodiment;

[0037] Figure 3 A flowchart illustrating an example of a data decoding method provided in this application embodiment;

[0038] Figure 4 This is a schematic diagram of the structure of the data decoding device provided in the embodiments of this application;

[0039] Figure 5 A schematic diagram of the structure of a computing device provided in an embodiment of this application. Detailed Implementation

[0040] To facilitate understanding, the terminology used in this application will be introduced first.

[0041] Erasure coding (EC) is a coding technique that includes erasure coding (EC) and error correction coding (ECC). The decoding algorithm corresponding to EC is called EC decoding. Various EC / EC methods exist in this field.

[0042] Error correction coding and decoding can be applied to data storage systems (such as memory, disk arrays, optical discs, and magneto-electric disks) and data communication systems (such as optical communication and satellite communication) to encode and decode data managed or transmitted by these systems. Furthermore, error correction coding and decoding can also be applied to the QR code field to encode data into QR codes and decode QR codes to obtain the original data. This data can include images, text, voice, and other data from various fields.

[0043] Error correction encoding and decoding can achieve the following: After encoding data by error correction encoding, if the encoded data is damaged, that is, if data in one or more positions of the encoded data is erased (i.e. missing, erasure is also called erasure error) and erroneous (referring to data error), and the number of erased positions and the number of erroneous positions are within the design limits, then the correct original data can be obtained by performing error correction decoding on the damaged encoded data.

[0044] Specifically, by encoding data D containing k data elements (e.g., symbols, data packets, etc.) using an erasure and error correction coding method, coded data F (also called codeword F) containing N data elements (e.g., encoded symbols, encoded data packets, etc.) can be obtained, where N is greater than k. One or more of the N data elements in codeword F may be erased or corrupted. Erased data is called erased data, corrupted data is called erroneous data, and both erased and erroneous data can be collectively referred to as invalid data. Using an erasure and error correction decoding method, the original data D can be recovered from the k data elements in the encoded data F. The value of Nk reflects the error tolerance performance of the encoding, which represents the maximum number of invalid data elements, such as erased data and erroneous data, that can be tolerated; it can also be called the erasure and error correction performance.

[0045] Reed-Zolomon (RZ) coding is a widely used error correction coding method with corresponding decoding methods. The encoded data obtained through Reed-Zolomon coding can also be called (N, k)RS code. RS codes are constructed based on straight lines, and the code length N (i.e., the number of data points N contained in the RS code) is limited by the finite field that defines it. The size q of the field, i.e., N is less than or equal to the size q of the finite field, thus limiting its error correction and erasure performance.

[0046] For RS codes, if codeword F has e erased data and b erroneous data, and 2b+e≤Nk, then error correction decoding can be performed on the codeword to obtain the correct original codeword F, and the original data D can be decoded from the original codeword F. However, if 2b+e>Nk, then error correction decoding cannot be performed on the codeword to obtain the correct original codeword F.

[0047] In other words, the maximum amount of data that can be erased by the RS code is Nk (also known as the erasure decoding radius is Nk), and the maximum amount of erroneous data that the RS code can tolerate is (Nk) / 2 (also known as the error correction decoding radius is (Nk) / 2).

[0048] Algebraic Geometric (AG) coding is also a good error correction and erasure coding method, which can be widely used in data storage systems, data communication systems, QR codes, and other fields. The encoded data obtained by this method is called AG code. AG code is a linear code constructed based on algebraic curves, unlike RS code which is constructed based on a straight line. The code length N of AG code (i.e., the number of data points N contained in the AG code) can break through the finite field. The size restriction means that N can be greater than the size of the finite field q, and the code length of the AG code can be larger than that of the RS code. Thus, the erasure decoding radius Nk of the AG code is larger than that of the RS code, and the error correction decoding radius (Nk) / 2 is also larger than that of the RS code, thereby improving the erasure and error correction performance of the AG code.

[0049] The following is an introduction to the encoding method of AG codes. Let the length of the original data be k. Let... It is a finite field of size q. It is defined in Algebraic curves on, express The algebraic function field of P∞ is denoted by E. Given an infinite number of bits and a divider mP ∞ Riemann-Roch space L(mP) ∞ ):

[0050] L(mP ∞ )={f∈E * |div(f)≥-mP ∞}∪{0} (1)

[0051] k is L(mP) ∞ As The dimension of a linear space.

[0052] Given a N distinct rational point sets Through L(mP) ∞ In the point set, the function f (called the message function) is... Multipoint evaluation (MPE) on:

[0053]

[0054] Obtaining in algebraic curves AG code on for:

[0055]

[0056] The computational complexity of erasure decoding methods for general AG codes is high, resulting in slow decoding speeds and high resource consumption. However, for a special type of AG code—Hermitian codes—the computational complexity of their erasure decoding algorithms can be significantly lower, reaching a quasi-linear size of the code length, i.e., O(N·poly(logN)), where N is the code length and poly(logN) is a polynomial of logN. However, Hermitian code erasure decoding algorithms can only address bursty, consecutive deletion errors and are not suitable for decoding random deletion errors.

[0057] This application provides a data decoding method. The method includes acquiring a codeword that has been erased, which is a codeword obtained by encoding target data using an AG code encoding method. Then, based on t subsets obtained by dividing the erase position set of the codeword, the method calculates the erase locator for each subset to obtain t first erase locators. Here, t is an integer greater than or equal to 2, and the erase locator indicates the erase position information. Then, the method obtains a second erase locator by multiplying the t first erase locators. Finally, the method obtains the decoding result of the codeword based on the codeword and the second erase locator.

[0058] In this embodiment, the target data can be one or more of various data types, such as images, text, and speech. The length of the target data is k, and the codeword length obtained by encoding the target data using the AG code encoding method is N. For a detailed description of the AG code encoding method, please refer to the relevant description above.

[0059] A codeword can undergo e erasures, where e is an integer greater than or equal to 2, and e satisfies e ≤ Nk. The device knows all the erasure positions of the codeword. The set of all positions in the codeword where erasures occur is the erase position set. In the embodiments of this application, the erase position set can be represented by E, and its t subsets can be represented by E i This means that i is an integer and 1≤i≤t.

[0060] Erasure decoding of erased AG codes can include multiple processes. These include calculating erasure locators of the erase location set of codewords, and obtaining the decoding result of the codewords based on the erasure locators and the codewords. The decoding result of the codewords can include the recovered target data and the restored correct codewords. In a specific embodiment, the message function of the codewords can be obtained based on the codewords and the second erasure locator. The target data to be recovered and the correct codewords to be restored can be obtained from the message function.

[0061] The data decoding method provided in this application can divide the erase location set E into t subsets according to the divide-and-conquer approach, and then decode each subset E. i The erase locator is calculated, and then the required second erase locator (i.e., the erase locator of the erase position set) is obtained by multiplying the first erase locators of the t subsets. Based on the successful calculation of the erase locator of the erase position set to achieve decoding, compared with directly calculating the erase locator on the erase position set, each subset has fewer elements, the computational complexity is reduced, and multiple subsets can be calculated in parallel. The device consumes fewer computational resources and the calculation speed is faster during the decoding process.

[0062] The data decoding method provided in this application is applicable to various AG codes, such as AG codes constructed based on various algebraic curves, for erasure decoding of various AG codes. Furthermore, it can reduce the computational complexity and computational load of the erasure decoding process, thereby accelerating the computational speed and reducing computational resource consumption when the device performs erasure decoding on various AG codes.

[0063] The data decoding method proposed in this application can be used in various fields such as data communication systems, data storage systems, and QR codes. As examples, data storage systems may include optical disc storage systems, disk storage systems, magnetic tape storage systems, magnetoelectric disk storage systems, solid-state storage systems, or storage systems composed of optical discs, disks, magnetic tapes, solid-state storage, and a mixture of multiple storage media, as well as distributed storage systems. Data communication systems may include optical communication systems, satellite communication systems, etc.

[0064] To facilitate understanding of the embodiments of this application, let's first take... Figure 1 The communication system illustrated herein is used as an example to illustrate a communication system applicable to embodiments of this application. For example, Figure 1 This application provides a schematic diagram of the architecture of a communication system. The data encoding and decoding methods provided in the embodiments of this application are applicable to... Figure 1 The architecture shown.

[0065] like Figure 1 As shown, the communication system 100 includes a first device 110 (which may include multiple devices such as 101a and 101b) and a second device 120. The second device 120 can communicate with the first device 101a, and the second device 120 can communicate with the first device 101b. The devices in the communication system 100 can be connected and communicate with each other through a network.

[0066] In this application, the second device 120 is a data forwarding device, and the first device 110 is a data receiving or sending device. The second device 120 can be a network device or a terminal device, and the first device 110 can be a network device or a terminal device. It is understood that in this application, there can be multiple first devices.

[0067] For example, the first device 110 is a network device, and the second device 120 is a network device. Alternatively, the first device 110 is a terminal device, and the second device 120 is a network device. Alternatively, the first device 110 is a terminal device, and the second device 120 is a terminal device.

[0068] The aforementioned network devices include, but are not limited to: access points (APs) in Wi-Fi systems, such as home gateways, routers, servers, switches, and bridges; evolved Node Bs (eNBs), radio network controllers (RNCs), Node Bs (NBs), base station controllers (BZCs), base transceivers (BTZs), home base stations (e.g., home evolved Node Bs or home Node Bs (HNBs)), baseband units (BBUs), wireless relay nodes, wireless backhaul nodes, and transmission and reception points (TRPs or tranzizzions). It can also refer to 5G, such as gNB in ​​a New Radio (NR) system, or 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 network nodes that constitute a gNB or transmission point, such as baseband unit (BBU), or distributed unit (DU), roadside unit (RZU) with base station function, etc.

[0069] The aforementioned terminal equipment can also be referred to as an access terminal, user unit, user station, mobile station, mobile station, remote station, remote terminal, mobile device, user terminal, terminal, wireless communication equipment, user agent, or user device. The first device in the embodiments of this application can be a mobile phone, tablet computer, computer with wireless transceiver capabilities, virtual reality (VR) first device, augmented reality (AR) first device, wireless terminal in industrial control, wireless terminal in autonomous driving, wireless terminal in remote medical care, wireless terminal in smart grid, wireless terminal in transportation safety, wireless terminal in smart city, wireless terminal in smart home, vehicle-mounted terminal, RZU with terminal functions, etc. The first device of this application may also be an on-board module, on-board component, on-board chip, or on-board unit built into a vehicle as one or more components or units. The vehicle can implement the data encoding or data decoding method provided in this application through the built-in on-board module, on-board component, on-board chip, or on-board unit.

[0070] It should be noted that the data encoding or data decoding methods provided in the embodiments of this application can be applied to... Figure 1 In any two nodes shown, such as the first device and the second device, or two first devices (101a, 101b).

[0071] As an example, such as Figure 1 As shown, the first device 110 obtains codeword F, which is a codeword obtained by encoding the target data using the AG code encoding method, and the first device sends codeword F to the second device through the network link.

[0072] The codeword F obtained by the first device can be received / acquired from other devices, or it can be obtained by the first device encoding the target data. Figure 1 The diagram shows a schematic of codeword F. The source data includes 4 data packets. The 4 data packets are encoded using the AG code encoding method to obtain codeword F, which includes 7 encoded data packets (that is, the code length N of codeword F is 7).

[0073] During the transmission of codeword F from the first device to the second device, due to poor network link quality and other issues, codeword F is erased, resulting in the loss of multiple encoded data packets (referred to as packet loss). After receiving the erased codeword F', the second device can perform erasure decoding on codeword F' using the data decoding method provided in this application embodiment to obtain the decoding result (e.g., obtaining the recovered source data and the restored codeword F). For a detailed implementation of the decoding method, please refer to the following method embodiment.

[0074] It should be understood that the solutions in the embodiments of this application can also be applied to other communication systems, and the corresponding names can be replaced by the names of the corresponding functions in other communication systems. Furthermore, Figure 1 This is merely a schematic diagram of the architecture of a communication system provided in this application embodiment. The positional relationships between the devices, components, modules, etc., shown in the diagram do not constitute any limitation. For example, this communication system may also include other second devices, and / or other first devices. Figure 1 It was not drawn in the middle.

[0075] When the data decoding method of this application is applied to a data storage system, the data can be encoded using the AG code encoding method to obtain codewords, which are then stored in a memory. The codewords are erased in the memory. Subsequently, when reading the codewords from the memory, the data decoding method provided in this application is used to perform erasure decoding on the codewords, thereby obtaining the decoding result.

[0076] The data storage system may include a device with encoding or decoding functions, or a chip or chip system that may be installed in the device, and a memory. The memory is used to store the encoded data obtained by the data encoding method described above.

[0077] When the data decoding method of this application is applied to QR codes, the data can be encoded using the AG code encoding method to obtain the QR code. The QR code may be erased during use (e.g., some symbols in the QR code are erased). Afterwards, the device reads the erased QR code and uses the data decoding method provided in this application to perform erasure decoding on the QR code, thereby obtaining the decoding result.

[0078] The data decoding method provided in the embodiments of this application is described in detail below. Figure 2 This is a flowchart illustrating a data decoding method provided in an embodiment of this application. Figure 2 The method shown can be executed by a device with data decoding capabilities, for example, by... Figure 1 The second device 120 shown or the processor in the second device 120 is executed. Figure 2 The codewords in this method are obtained by encoding data using the AG code encoding method. These codewords are erased during storage, transmission, and other uses.

[0079] like Figure 2 As shown, the data decoding method includes the following steps:

[0080] Step 210: Obtain the codeword that was erased.

[0081] In this embodiment, the codeword can be represented by (y1, y2, ..., yN). The codeword length is N, and the length of the data before encoding corresponding to the codeword is k. The codeword undergoes e erasures, where e is an integer greater than or equal to 2, and e satisfies e ≤ Nk.

[0082] Step 220: Based on the t subsets obtained by dividing the codeword erase position set, calculate the erase locator for each subset to obtain t first erase locators.

[0083] The device is capable of knowing all erasure locations of a codeword. The set of all locations in a codeword where erasure occurs is called the erasure location set. In this embodiment, the erasure location set can be represented by E, and the size of E is e = |E|. As an example, E = {i1, i2, i3, ..., i...} n}, where i1, i2, i3, ..., i n For codewords (y1, y2, ..., y N The index of the data to be erased in the text.

[0084] Partitioning a set E yields t subsets, where t is an integer greater than or equal to 2. The subsets of E can be represented using E... i Let 1 ≤ i ≤ t. For any subset, the number of erase positions contained in the subset is denoted by z, where z is an integer greater than or equal to 2. In the embodiments of this application, the method of dividing the set E into t subsets can be determined according to actual needs, that is, the number of subsets t and the number of erase positions z contained in each subset can be configured according to actual needs.

[0085] In some implementations, the set E can be uniformly divided to obtain t subsets with an equal number of erased positions. Alternatively, when the set E cannot be uniformly divided, it can be divided into t-1 subsets, with each subset containing the remaining erased positions in E, resulting in t subsets. In other words, e = z·(t-1) + r, 0 ≤ r <z。

[0086] The number of subsets t and the number z of erasure positions contained in the subsets can affect the decoding effect of the decoding method in the embodiments of the present application. The manner of performing the aforementioned uniform division into t subsets and uniform division into t-1 subsets on the set E can well guarantee the decoding effect of the decoding method in the embodiments of the present application. For example, the number of subsets t and the number z of erasure positions contained in the subsets can ensure that the erasure-correcting decoding radius of the decoding method can reach N-k, balance the computational complexity and computational speed of the device executing the decoding method, and ensure reduced computational complexity and higher computational speed.

[0087] In some implementation manners, for any subset, the value of the number z of erasure positions contained is determined according to the algebraic curve used in the AG code encoding method for configuration based on its genus g. In specific embodiments, z may be an integer multiple of g, and z is at least twice g. In other words, z=cg, where c>1 is a positive integer. As an example, t subsets may be obtained through division in a manner of e=cg·t or e=cg·(t-1)+r, 0≤r<cg, that is, t-1 subsets each contain cg erasure positions, and 1 subset contains e-cg·(t-1) erasure positions.

[0088] An erasure locator is a function indicating erasure position information, which may also be called an erasure polynomial. In the erasure-correcting decoding method for AG codes, by calculating the erasure locator of the erasure position set of a codeword, the decoding result of the codeword can be obtained based on the erasure locator and the codeword. In the embodiments of the present application, the calculation of the erasure locator for each subset is performed first.

[0089] The erasure locator calculated for a subset may be referred to as a first erasure locator. Subset E i has its erasure locator represented by w i (x,y).

[0090] For any subset E i , E i comprises z erasure positions: the first erasure locator w ∞ can be obtained by calculation based on z linearly independent functions in the Riemann-Roch space L(vP ) and z points associated with the z erasure positions among the N points on the algebraic curve (i.e., the set of rational points, wherein P i can be represented by two-dimensional coordinates (x,y)), so as to obtain the first erasure locator w i (x,y). Wherein, v is configured according to z, so that z linearly independent functions can be obtained in L(vP ∞ ), for example, when z=cg, v=cg+g.

[0091] For a detailed example of calculating the erase locator for the subset, please refer to the relevant introduction to the data decoding method examples below.

[0092] Compared to calculating erase locators for a set of erase locations, calculating erase locators for a subset involves fewer erase locations, smaller parameters, and reduced computational complexity. Furthermore, the device can perform the calculation of erase locators for multiple subsets in parallel. Thus, the computational resource consumption for calculating erase locators for t subsets is reduced, while the calculation speed is increased.

[0093] Step 230: Based on the t first erase locators, perform the calculation of the erase locators of the erase position set to obtain the second erase locators.

[0094] According to the principle of erasure locator calculation, the product of the t first erasure locators of the t subsets is equal to the erasure locator of the erasure location set E.

[0095] In step 230, a product calculation can be performed on the t first erase locators to obtain the product of the t first erase locators as the second erase locator, which can be represented by w(x,y). In other words, The second erase locator w(x,y) is the erase locator of the erase location set E.

[0096] To reduce the computational complexity of performing product calculations on t first erase locators, some implementations can perform product calculations in multiple stages based on t first erase locators to obtain the product of t first erase locators.

[0097] The product calculation in the first stage includes calculating the product of multiple sets of elements in t first erase locators, resulting in multiple product results for multiple sets of elements. After the first stage, the product calculation in the i-th stage (i≥2) includes calculating the product of multiple sets of elements in the multiple product results obtained in the (i-1)-th stage, resulting in multiple product results for multiple sets of elements. This process continues until the second erase locator is obtained. In some embodiments, the number of stages is log2t. For example, the product calculation in each stage involves multiplying the elements pairwise. After log2t product calculations, the second erase locator is obtained.

[0098] For a detailed example of performing product calculations on t first erase locators, please refer to the relevant introduction to the data decoding method examples below.

[0099] Step 240: Obtain the decoding result of the codeword based on the codeword and the second erase locator.

[0100] In the erasure decoding method of AG code, the message function of the codeword (i.e., the one described in the aforementioned encoding method) can be obtained by calculating the erasure locator of the erasure position set (equal to the second erasure locator in the embodiment of this application) and the codeword execution target equation. The original data (obtained from the coefficients of the message function) and the correct codeword (obtained from the function value of the message function) can be obtained from the message function. The decoding result of the codeword can include the message function, or the original data and the correct codeword obtained from the message function.

[0101] The objective equation indicates the functional relationship between the second erase locator and the message function of the codeword. The objective equation can be established as R(x,y)=w(x,y)f(x,y), where f(x,y) is the message function of the codeword and w(x,y) is the second erase locator.

[0102] R(x,y) can be calculated according to steps 2.1-2.3 below. R(x,y) can be called the objective function.

[0103] 2.1 Calculate the second erase locator w(x,y) on the algebraic curve The above N points (i.e., the set of rational points) The value at ) is:

[0104] 2.2. Based on the codewords (y1, y2, ..., y N ) and (w(P1),w(P1),…,w(P) N )), calculate the target vector r = (r1, r2, ..., r N The target vector r satisfies:

[0105]

[0106] That is, at the erase position r i =0, at position r other than the erase position i =y i w(P i ).

[0107] 2.3. Based on the target vector r = (r1, r2, ..., r N Calculate R(x,y). R(x,t)∈L((N+2g-1)P ∞ ), and R(x,y) satisfy:

[0108] (R(P1),R(P1),…,R(P N ))=(r1,r2,…,r N (5)

[0109] In a specific embodiment, R(x,y) is calculated as follows:

[0110]

[0111] in: That is, A is The set of x-coordinates of all points; for α∈A, the set of B α Let P be the set of all points with x-coordinate α and y-coordinate α. i =(α,β),r α,β =r i .

[0112] As mentioned above, for the objective equation R(x,y)=w(x,y)f(x,y), both w(x,y) and R(x,y) are known. Thus, by solving the objective equation based on w(x,y) and R(x,y), the message function f(x,y) of the codeword can be obtained.

[0113] To reduce the complexity of computing the message function f(x,y), some implementations can reduce the algebraic function domain used in the AG code encoding method. constant field Expand to Obtain the extended descendant function field (This domain expansion can be represented as) Where s is configured according to logg, in a specific embodiment s is positively correlated with logg, the larger logg is, the larger s is, which can satisfy s = O(logg). Furthermore, it is possible to extend the algebraic function domain. M rational points are selected (M>N), and the value of the second eraser w(x,y) at these M rational points is not equal to 0. Furthermore, the objective equation R(x,y) = w(x,y)f(x,y) can be calculated based on the values ​​of the objective function R(x,y) at these M rational points and the values ​​of the second eraser w(x,y) at these M rational points. For example, calculating... The message function f(x,y) is obtained.

[0114] For a detailed example of solving the objective equation based on w(x,y) and R(x,y), please refer to the relevant introduction to the data decoding method examples below.

[0115] It is understood that in the data decoding method provided in the embodiments of this application, the calculation function can refer to the expression of the calculation function (including the coefficients or parameters of the calculation / solution function).

[0116] For ease of understanding, the following is combined with Figure 3 A detailed description is provided of an example of the data decoding method provided in the embodiments of this application. For example... Figure 3 As shown, in this example, the data decoding method includes the following steps.

[0117] S310. Obtain the codeword (y1, y2, ..., yN) that has been erased. The codeword length is N, and the length of the data before encoding corresponding to the codeword is k. The codeword undergoes e erasures, where e is an integer greater than or equal to 2, and e satisfies e ≤ Nk.

[0118] S320. Based on the t subsets obtained by dividing the codeword erasure position set E, execute the operation on each subset E. i The calculation of erase locators (1≤i≤t) yields t first erase locators.

[0119] For example, E = {i1, i2, i3, ..., i n}, where i1, i2, i3, ..., i n For codewords (y1, y2, ..., y N The index of the data to be erased in the text.

[0120] Where, according to e=cg·(t-1)+r,0≤r<cg(c> 1 is a positive integer, g = g(x) is the genus of the algebraic curve x, and t subsets are obtained by partitioning the curve in this way.

[0121] Specifically, E=E1∪E2∪…∪E t Where |E1|=|E2|=…=|E t-1 |=cg,|E t |=r.

[0122] And, for any subset E i Execute E i The calculation of the erase location includes the following steps. The following steps are illustrated using a subset with a number of erase locations of cg as an example. For a subset with a number of erase locations of r, cg can be replaced with r in the following steps.

[0123] Take {b1,b2,…,b} cg+1} represents the Riemann Roch space L((cg+g)P ∞ Let be a set of linearly independent functions. For 1 ≤ i ≤ t, let the divider... For ease of narration, it can be noted that... For 1 ≤ i ≤ t, solve the following homogeneous linear system of equations:

[0124]

[0125] make Let be a solution to equation (7). function w i (x,y) is E iErasure locator.

[0126] S330. Based on the t first erase locators, perform the calculation of the erase locators of the erase position set to obtain the second erase locators.

[0127] Specifically, S330 includes performing the product calculation of t first erase locators to obtain the product w(x,y) of t first erase locators, where w(x,y) is the second erase locator. That is...

[0128] The product calculation consists of log₂t calculation stages, each stage involving pairwise multiplication of elements. For example... Figure 3 As shown:

[0129] The first stage of product calculation involves multiplying w1, w2, ... w... t Multiply each element in the middle pair to obtain the product u1, u2, ... u t / 2 ;

[0130] The second stage of product calculation involves multiplying u1, u2, ... u... t / 2 Multiply each element in the middle pair to obtain the product v1…v t / 4 ;

[0131] This process continues until the product w of the t first erase locators is calculated.

[0132] S340. Obtain the decoding result of the codeword based on the codeword and the second erase locator w(x,y).

[0133] Specifically, in S340, the objective equation is established as R(x,y)=w(x,y)f(x,y), where f(x,y) is the message function of the codeword, and R(x,y) is the defined objective function used to calculate the message function. For positions i∈[N]\E that have not been erased, f(P) i )=y i .

[0134] The solution of R(x,y) may include the following steps S21-S23.

[0135] S21. Calculate the erasure locator w(x,y) at N points {P1,P2,…,P…} N Values ​​at}:

[0136] S22. Calculate the vector r = (r1, r2, ..., r... N )satisfy:

[0137]

[0138] S23. Calculate R(x,y), where R(x,y)∈L((N+2g-1)P∞) satisfies:

[0139] (R(P1),R(P1),…,R(P N ))=(r1,r2,…,r N (9)

[0140] The formula for calculating R(x,y) is as follows:

[0141]

[0142] in: That is, A is The set of x-coordinates of all points; for α∈A, the set of B α Let P be the set of all points with x-coordinate α and y-coordinate α. i =(α,β),r α,β =r i .

[0143] For the objective equation R(x,y)=w(x,y)f(x,y), both w(x,y) and R(x,y) are known. Thus, by solving the objective equation based on w(x,y) and R(x,y), the message function f(x,y) of the codeword can be obtained.

[0144] Solving the equation R(x,y)=w(x,y)f(x,y) based on w(x,y) and R(x,y) to obtain f(x,y) may include the following steps S31-S34.

[0145] S31, Regarding the function domain constant field Expand to And obtain the function domain after the expansion. The domain expansion operation can be represented as follows:

[0146] Here, s = O(logg) is taken, and μ is defined as the number of expansion operations in the field expansion operation.

[0147] Pick indivual The elements β1, β2, ..., β in n′ such that every x-β i Domain expansion It is completely split in the middle.

[0148] As an example, the constant field Including q points α1, α2, ..., α q The extended constant field Including q s Points

[0149] S32. In the function domain after expansion N+2g-1 rational bits {Q1,Q2,…,Q} are determined. N+2g-1 The specific implementation method is as follows.

[0150] Let {Q1,Q2,…,Q} n′μ}for Divisible by {x-β} i All rational bits of {i = 1, ..., N}. This can be understood as {Q1, Q2, ..., Q...} n′μ The existence of} is guaranteed by the setting of s.

[0151] Calculate {w(Q1), w(Q2), ..., w(Q n′μ )}, of which, at most The rational bits can take the value 0. Thus, at least one rational bit exists. β i Such that w(Q) ≠ 0 for any Q that divides x - β i After repositioning, the aforementioned assumptions can be reconciled. β i for: And divisible The N+2g-1 rational bits are {Q1,Q2,…,Q N+2g-1}

[0152] S33. Calculate {R(Q1),R(Q2),…,R(Q...} N+2g-1 )}and

[0153] S34. Based on the multiple values ​​of the message function f(x,y), f(Q1), f(Q2), ..., f(Q...), f(Q...) N+2g-1 The expression for the message function f(x,y) is obtained by calculating using a bivariate interpolation formula. Based on the message function f(x,y), the decoding result of the codeword is obtained.

[0154] The data decoding method provided by the embodiments of this application has a better complexity in terms of the device's execution of the data decoding method, which can reach a quasi-linear size of code length N, i.e., O(N·poly(logN)), where poly(logN) is a polynomial size of logN.

[0155] Thus, for the widely used RS code, the AG code with the same code rate can be used to replace the RS code, providing better erasure capabilities while maintaining the transmission rate. Furthermore, the device can achieve lower decoding overhead by using the data decoding method provided in this application embodiment to perform erasure decoding on the AG code. As an example, for RS(512,256), AG(1024,512), AG(2048,1024), etc., on the same finite field can be used as replacements.

[0156] It is understood that, in order to achieve 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 readily recognize that, based on the units and method steps described in conjunction with the embodiments disclosed in this application, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application scenario and design constraints of the technical solution.

[0157] The above text combines Figures 2 to 3 The data decoding method provided according to the embodiments of this application is described in detail below. Figure 4 This application describes the apparatus provided according to the present application. These apparatuses can be used to implement the functions of the devices in the above method embodiments, and thus can also achieve the beneficial effects of the above method embodiments.

[0158] Figure 4 This application provides a data decoding apparatus for its embodiments. For example... Figure 4 As shown, the data decoding device 400 includes a data acquisition module 410 and a processing module 420.

[0159] The data acquisition module 410 is used to acquire the codeword that was erased. The codeword is the codeword obtained by encoding the data according to the algebraic geometric AG code encoding method.

[0160] Processing module 420 is used to calculate the erase locator for each of the t subsets obtained by dividing the codeword erase position set, thus obtaining t first erase locators, where t is an integer greater than or equal to 2, and the erase locator is a function indicating the erase position information. Processing module 420 is also used to obtain a second erase locator based on the product of the t first erase locators. Processing module 420 is also used to obtain the decoding result of the codeword based on the codeword and the second erase locators.

[0161] In some implementations, the subset contains z erase positions, the value of which is determined by the genus g of the algebraic curve used in the AG code encoding method, and z is an integer greater than or equal to 2.

[0162] In some implementations, the set of erase locations contains e erase locations. The number of erase locations z = cg in the t-1 subsets, and the number of erase locations z = e - cg·(t-1) in the 1st subset excluding the t-1 subsets, where c is an integer greater than 1.

[0163] In some implementations, the processing module 420 is also used to: determine the z points among N rational points on the algebraic curve that are associated with the z erase positions contained in the subset and the Riemann Roch space L(vP) ∞ The first erase locator is obtained by calculating the erase locator of the subset of z+1 linearly independent functions in the equation. Here, v is configured according to z, N is the codeword length, and the algebraic curve is the algebraic curve used in the AG code encoding method.

[0164] In some implementations, the processing module 420 is further configured to: perform product calculations in multiple stages based on t first erase locators to obtain the product of the t first erase locators as the second erase locator. The product calculation in the first stage includes performing product calculations on multiple sets of elements in the t first erase locators respectively, obtaining multiple product results for multiple sets of elements. The product calculation in the i-th stage after the first stage includes performing product calculations on the multiple product results obtained in the (i-1)-th calculation stage, where i is an integer greater than or equal to 2.

[0165] In some implementations, the processing module 420 is further configured to: perform calculation of a target equation based on the second erase locator and the codeword to obtain a message function for the codeword, wherein the target equation indicates the functional relationship between the second erase locator and the message function of the codeword; and obtain the decoding result of the codeword based on the message function.

[0166] In some implementations, the processing module 420 is also used to: determine M rational points in the objective function domain (the value of the second erase locator at the M rational points is not equal to 0, M is greater than the code length of the codeword, and the objective function domain is the expanded function domain obtained by expanding the function domain of the algebraic curve used in the AG code encoding method), and to perform the calculation of the objective equation based on the objective function in the objective equation and the value of the second erase locator at the M rational points to obtain the message function.

[0167] In some implementations, the size of the constant field of the function domain is q, and the size of the constant field of the expanded function domain is q. s , where s is the genus of the algebraic curve according to the logg configuration.

[0168] For more detailed explanations of the functions implemented by the data acquisition module 410 and the processing module 420, please refer to [link / reference needed]. Figure 2 and Figure 3 The provided data decoding method and its related description.

[0169] Optionally, the data acquisition module 410 and the processing module 420 may each include multiple sub-modules. The multiple sub-modules may be deployed separately to implement some of the functions of the corresponding modules, such as implementing one or more steps in the aforementioned Embodiment 1, Embodiment 2, and Embodiment 3.

[0170] All devices can be implemented in software or hardware. For example, the implementation of the data decoding device 400 will be described below.

[0171] As an example of a software functional unit, the data decoding device 400 may include code running on a computing instance. The computing instance may be at least one of a physical host (computing device), a virtual machine, a container, or other computing devices. Further, the aforementioned computing device may be one or more. For example, the data decoding device 400 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the application may be distributed in the same region or in different regions. The multiple hosts / virtual machines / containers used to run the code may be distributed in the same Availability Zone (AZ) or in different AZs, each AZ including one or more geographically proximate data centers. Typically, a region may include multiple AZs.

[0172] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same VPC or across multiple VPCs. Typically, a VPC is set up within a single region. Communication between two VPCs within the same region, and between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between VPCs.

[0173] As an example of a hardware functional unit, the data decoding device 400 may include at least one computing device, such as a server. Alternatively, the data decoding device 400 may also be a device implemented using AZIC or a PLD. The aforementioned PLD may be implemented using a CPLD, FPGA, GAL, or any combination thereof.

[0174] The data decoding device 400 includes multiple computing devices that can be distributed in the same region or in different regions. Similarly, the data decoding device 400 includes multiple computing devices that can be distributed in the same Availability Zone (AZ) or in different AZs. Likewise, the YY device includes multiple computing devices that can be distributed in the same Virtual Private Cloud (VPC) or in multiple VPCs. These multiple computing devices can be any combination of computing devices such as servers, AZICs, PLDs, CPLDs, FPGAs, and GALs.

[0175] This application also provides a computing device 500. For example... Figure 5 As shown, the computing device 500 includes a bus 502, a processor 504, a memory 506, and a communication interface 508. The processor 504, memory 506, and communication interface 508 communicate with each other via the bus 502. The computing device 500 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 500. Optionally, the processor 504 of the computing device 500 can be connected to a display or input device via the communication interface 508.

[0176] Bus 502 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EIZA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of representation, Figure 5 The bus 502 may be represented by a single line, but this does not mean that there is only one bus or one type of bus. The bus 502 may include a path for transmitting information between various components of the computing device 500 (e.g., memory 506, processor 504, communication interface 508).

[0177] Processor 504 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DZP). In this embodiment, processor 504 is used to execute the embodiments of this application. Figures 2-3 The steps or operations of the provided data decoding method.

[0178] Memory 506 may include volatile memory, such as random access memory (RAM). Processor 504 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid-state drive (ZZD).

[0179] The memory 506 stores executable program code, and the processor 504 executes the executable program code to implement the functions of the aforementioned data acquisition module 410 and processing module 420, thereby realizing the embodiments of this application. Figures 2-3 The provided data decoding method. That is, the memory 506 stores data for executing the embodiments of this application. Figures 2-3 The instructions for the provided data decoding method.

[0180] The communication interface 508 uses transceiver modules, such as, but not limited to, network interface cards and transceivers, to enable communication between the computing device 500 and other devices or communication networks.

[0181] The display can include various display devices capable of display functions, such as plasma displays and liquid crystal displays. The computing device 500 can display data through the display.

[0182] Input devices can include various input devices such as keyboards, mice, and touch screens that enable user input.

[0183] This application also provides a chip system. The chip system may include a processor and a power supply circuit. The power supply circuit supplies power to the processor, which executes the embodiments of this application. Figures 2-3 The steps or operations of the provided data decoding method.

[0184] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to execute the embodiments of this application. Figures 2-3 The steps or operations of the provided data decoding method, for example, are used to execute embodiments of this application. Figures 2-3 The steps or instructions for the provided data decoding method.

[0185] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that a computing device can store, 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., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to execute embodiments of this application. Figures 2-3 The steps or operations of the provided data decoding method, for example, are used to execute embodiments of this application. Figures 2-3 The steps or instructions for the provided data decoding method.

[0186] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of this application.

[0187] The terms “first,” “second,” “third,” and “fourth,” etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish different objects, not to define a specific order.

[0188] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of the terms "exemplary" or "for example" is intended to present the relevant concepts in a specific manner.

Claims

1. A data decoding method, characterized in that, The method includes: Obtain the codeword that was erased, wherein the codeword is a codeword obtained by encoding the data according to the algebraic geometric AG code encoding method; Based on the t subsets obtained by dividing the erase position set of the codeword, the erase locator of each subset is calculated to obtain t first erase locators, where t is an integer greater than or equal to 2, and the erase locator is a function indicating the erase position information; The second erase locator is obtained by multiplying the t first erase locators; The decoding result of the codeword is obtained based on the codeword and the second erase locator.

2. The method according to claim 1, characterized in that, The subset contains z erase positions, the value of which is determined according to the genus g of the algebraic curve used in the AG code encoding method, and z is an integer greater than or equal to 2.

3. The method according to claim 1 or 2, characterized in that, The erase location set contains e erase locations; The number of erase positions in the t subsets is z = cg in the t-1 subsets, and the number of erase positions in the subset other than the t-1 subsets is z = e-cg·(t-1), where c is an integer greater than 1.

4. The method according to any one of claims 1-3, characterized in that, The calculation of the erase locator for each subset includes: Based on the z points among N rational points on the algebraic curve that are associated with the z erase positions contained in the subset and the Riemann Roch space L(vP) ∞ The first erase locator is obtained by calculating the erase locator of the subset of z+1 linearly independent functions in the subset. Wherein, v is configured according to z, N is the code length of the codeword, and the algebraic curve is the algebraic curve used by the AG code encoding method.

5. The method according to any one of claims 1-4, characterized in that, The step of obtaining the second erase locator based on the product of the t first erase locators includes: The product of the t first erase locators is obtained by performing multiple stages of product calculation based on the t first erase locators, and is used as the second erase locator; wherein... The first stage of product calculation includes performing product calculations on multiple sets of elements in the t first erase locators respectively to obtain multiple product results of multiple sets of elements; The product calculation in the i-th stage after the first stage includes performing a product calculation on multiple product results obtained in the (i-1)-th calculation stage, where i is an integer greater than or equal to 2.

6. The method according to any one of claims 1-5, characterized in that, The decoding result of obtaining the codeword based on the codeword and the second erase locator includes: The target equation is calculated based on the second erase locator and the codeword to obtain the message function of the codeword, and the target equation indicates the functional relationship between the second erase locator and the message function of the codeword; The decoding result of the codeword is obtained according to the message function.

7. The method according to claim 6, characterized in that, The step of performing the calculation of the target equation based on the second erase locator and the codeword to obtain the message function of the codeword includes: M rational points are determined in the objective function domain, the value of the second erasure locator at the M rational points is not equal to 0, M is greater than the code length of the codeword, and the objective function domain is the expanded function domain obtained by expanding the function domain of the algebraic curve used in the AG code encoding method. The objective function in the objective equation and the values ​​of the second erase locator at the M rational points are used to calculate the objective equation and obtain the message function.

8. The method according to claim 7, characterized in that, The size of the constant field of the function domain is q, and the size of the constant field of the expanded function domain is q. s , wherein s is configured according to logg, and g is the genus of the algebraic curve.

9. A data decoding device, characterized in that, The device includes a data acquisition module and a processing module; The data acquisition module is used to acquire the codeword that was erased, and the codeword is the codeword obtained by encoding the data according to the algebraic geometric AG code encoding method; The processing module is used to calculate the erase locator for each of the t subsets obtained by dividing the erase position set of the codeword, and obtain t first erase locators, where t is an integer greater than or equal to 2, and the erase locator is a function that indicates the erase position information; The processing module is also configured to obtain a second erase locator based on the product of the t first erase locators; The processing module is also used to obtain the decoding result of the codeword based on the codeword and the second erase locator.

10. The apparatus according to claim 9, characterized in that, The subset contains z erase positions, the value of which is determined according to the genus g of the algebraic curve used in the AG code encoding method, and z is an integer greater than or equal to 2.

11. The apparatus according to claim 9 or 10, characterized in that, The processing module is also used for: The target equation is calculated based on the second erase locator and the codeword to obtain the message function of the codeword, and the target equation indicates the functional relationship between the second erase locator and the message function of the codeword; The decoding result of the codeword is obtained according to the message function.

12. The apparatus according to claim 11, characterized in that, The processing module is also used for: M rational points are determined in the objective function domain, the value of the second erasure locator at the M rational points is not equal to 0, M is greater than the code length of the codeword, and the objective function domain is the expanded function domain obtained by expanding the function domain of the algebraic curve used in the AG code encoding method. The objective function in the objective equation and the values ​​of the second erase locator at the M rational points are used to calculate the objective equation and obtain the message function.

13. A computing device, characterized in that, The computing device includes a processor and a memory; the processor is configured to execute instructions stored in the memory to cause the computing device to perform the method as described in any one of claims 1-8.

14. A chip system, characterized in that, The chip system includes a processor and a power supply circuit, the power supply circuit being used to supply power to the processor, the processor being used to perform the operational steps of the method as described in any one of claims 1-8.

15. A computer program product containing instructions, characterized in that, When the instruction is executed by at least one computing device, the at least one computing device performs the method as described in any one of claims 1-8.