Decoding Device And Operating Method Of Thereof

KR1020260123800APending Publication Date: 2026-08-14POSTECH ACADEMY INDUSTRY FOUNDATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
KR1020250015984
Authority / Receiving Office
KR · KR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-07
Publication Date
2026-08-14

Smart Images

  • Figure PAT00011_ABST
    Figure PAT00011_ABST
Patent Text Reader

Abstract

The embodiment relates to a decoding method of a decoding device. A decoding device according to the embodiment may include the steps of: receiving a product code; decoding the product code in a first direction through a first decoder; processing the decoding result of the first direction to generate an updated product code; and decoding the updated product code in a second direction through a second decoder.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The embodiment relates to a decoding device and a method of operating the same. Background Technology

[0003] With the advancement of deep learning, neural decoders based on neural network architectures for decoding error correction codes have been proposed. Among them, the Transformer-based decoder (Error Correction Code Transformer) demonstrates excellent performance in short codewords with high encoding rates.

[0004] The transformer-based decoder is designed to estimate the multiplicative noise of the AWGN (Additive White Gaussian Noise) channel by taking the magnitude |y| of the received vector y and the syndrome value s(y) as input. During the decoding process, the transformer-based decoder utilizes a self-attention block to leverage the relationships between each bit of information. In this case, the parity check matrix H It is used as a mask matrix for the attention matrix to facilitate the analysis of the positional relationships of input vectors.

[0005] These transformer decoders demonstrate good performance for short codewords with high encoding rates, but do not show significant performance improvement for long codewords with low encoding rates. The problem to be solved

[0007] The embodiment proposes a decoding method to achieve good performance in a transformer-based decoder for codewords that are short in length and have a high coding rate. means of solving the problem

[0009] A decoding method of a decoding device may be provided, comprising: receiving a product code; decoding the product code in a first direction through a first decoder; processing the decoding result of the first direction to generate an updated product code; and decoding the updated product code in a second direction through a second decoder.

[0010] The above product code can be generated by encoding the data, in which the data information is reconstructed into a matrix, using at least one block code.

[0011] The step of generating an updated product code by processing the decoding result of the first direction above may include the step of generating the updated product code using probability information of the product code and code information of the product code included in the decoding result.

[0012] The step of generating the above-mentioned update product code may include the step of generating the above-mentioned update product code by multiplying the probability information of the above-mentioned product code, the sign information of the above-mentioned product code, and the Gaussian channel information.

[0013] The step of decoding the product code in a first direction through the first decoder may include the step of decoding the product code into a block code of a length learned to be decoded by the first decoder.

[0014] The method may further include a step of obtaining a codeword of the product code by applying a code function and a binary function to the decoding result of the second direction.

[0015] The above first direction and second direction may have a perpendicular relationship with each other.

[0016] The first decoder and the second decoder can be trained to decode a block code of length for decoding.

[0017] The first decoder and the second decoder may be transformer-based error correction code decoders.

[0018] A decoding device may be provided, comprising one or more processors and a memory for storing instructions, wherein when the instructions are executed by the one or more processors, the device performs the steps of: receiving a product code; decoding the product code in a first direction through a first decoder; processing the decoding result in the first direction to generate an update product code; and decoding the update product code in a second direction through a second decoder. Effects of the invention

[0020] According to an embodiment, a decoding method can be provided to achieve good performance in a transformer-based decoder for codewords that are short in length and have a high coding rate. Brief explanation of the drawing

[0022] Figure 1 is a diagram illustrating product code. FIG. 2 is a diagram illustrating a method for decoding a product code in a decoding device in an embodiment. FIG. 3 is a flowchart illustrating a decoding method of a decoding device in an embodiment. FIG. 4 is a diagram illustrating a circuit diagram for decoding a product code in an embodiment. FIG. 5 is a diagram illustrating the circuit configuration of a decoding device in an embodiment. FIG. 6 is a diagram illustrating the decoding performance of a decoding device in an embodiment. Specific details for implementing the invention

[0023] Hereinafter, embodiments are described in detail with reference to the attached drawings. However, various modifications may be made to the embodiments, and thus the scope of the patent application is not limited or restricted by these embodiments. It should be understood that all modifications, equivalents, and substitutions to the embodiments are included within the scope of the rights.

[0024] The terms used in the embodiments are for illustrative purposes only and should not be interpreted as being limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as "comprising" or "having" are intended to indicate the existence of the features, numbers, steps, actions, components, parts, or combinations thereof described in the specification.

[0025] It should be understood that this does not preclude the possibility of the existence or addition of one or more other features, numbers, steps, actions, components, parts, or combinations thereof.

[0026] Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as generally understood by those skilled in the art to which the embodiments pertain. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant technology, and should not be interpreted in an ideal or overly formal sense unless explicitly defined in this application.

[0028] In addition, when describing with reference to the attached drawings, identical components are assigned the same reference numeral regardless of drawing symbols, and redundant descriptions thereof are omitted. In describing the embodiments, if it is determined that a detailed description of related prior art could unnecessarily obscure the essence of the embodiments, such detailed description is omitted.

[0029] In addition, terms such as first, second, A, B, (a), (b), etc., may be used when describing the components of the embodiments. These terms are intended merely to distinguish the components from other components, and the nature, order, or sequence of the components is not limited by these terms. Where it is stated that a component is "connected," "combined," or "connected" to another component, it should be understood that while the component may be directly connected or connected to the other component, another component may also be "connected," "combined," or "connected" between each component.

[0030] Components included in any one embodiment and components having common functions shall be described using the same names in other embodiments. Unless otherwise stated, the description in any one embodiment may also apply to other embodiments, and specific descriptions shall be omitted to the extent of overlap.

[0032] Figure 1 is a diagram illustrating product code.

[0033] A product code is a matrix-shaped codeword designed to improve performance by encoding a given message in both row and column directions, and then using the row decoding results to perform column decoding during the decoding process. A message can be generated and transmitted by arranging it into k1*k2 and appending n1-k1 and n2-k2 redundant symbols in the row and column directions, respectively, to create a codeword of length n2*n1. n1*n2 represents the total code length, and k1*k2 represents the number of message bits.

[0034] For a message rearranged into k1*k2, a product code of C1C2 can be generated by considering two linear block codes C1 and C2. To do this, for a message rearranged into k1*k2, the product code can be generated by encoding k2 rows in the row direction with C1 and encoding n1 columns using C2.

[0036] FIG. 2 is a diagram illustrating a method for decoding a product code in a decoding device in an embodiment.

[0037] In the following, we propose a decoding technique that applies a transformer-based decoder to product codes to demonstrate excellent performance even for long codewords with low encoding rates.

[0038] Transformer-based decoders demonstrate good performance for short codewords with high encoding rates, but conversely, they do not perform well for long codewords with low encoding rates. Therefore, performance can be compensated for by generating a product code—a long codeword with a low encoding rate—and performing decoding.

[0039] The column and row directions of the product code can be sequentially decoded using a transformer-based decoder, respectively. Let each decoder be referred to as the first decoder and the second decoder. In this case, the transformer-based decoder may use a decoder trained with the linear block code of C1 or C2.

[0040] For the purpose of the example, a received vector y of the form n1*n2 can be divided into n2 vectors in the row direction, and each of the n2 received vectors can be decoded using a first decoder pre-trained with a length of n1 by concatenating the magnitude |y| of each vector with the syndrome value s(y). The input y' of a second decoder for decoding in the column direction can be updated by multiplying the sign of the received vector y element-wise with the multiplication noise of the estimated channel of the transmitted codeword obtained as a result of decoding by the first decoder and multiplying by a specific scale factor. The updated product code can be represented as follows.

[0041] [Mathematical Formula 1]

[0042]

[0043] α is the scale factor, generally the noise variance σ 2 It can be expressed in the form of / 2. represents the sign between elements of the received vector, and represents the output of the first decoder. represents elemental multiplication.

[0044] Since transformer-based decoders use the cross-entropy loss function as the loss function, the value obtained by applying the sigmoid function to the output of the transformer-based decoder is the probability It can be interpreted as. bin is a built-in function that converts the input into a binary string. Pr(x i = 0 | y) and Pr(x i = 1 | y) represents the posterior probability that the transmitted bit is 0 or 1, respectively, given the received codeword y, where x i =0 and x i Assuming the prior probability of =1 is the same, Pr(x i = 0)=Pr(x i =1) and the expression for LLR It can induce.

[0045] The updated y' can be decoded in the column direction using a second decoder that has been trained with a length of n2 in the same way as the first decoder.

[0046] If C1 and C2 have the same code, the product code can be decoded using a single decoder.

[0048] FIG. 3 is a flowchart illustrating the operation method of a decoding device in an embodiment.

[0049] In the following embodiments, each step may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each step may be changed, and at least two steps may be performed in parallel.

[0050] In step (310), the decoding device receives the product code.

[0051] A product code refers to a codeword designed in two dimensions by encoding a given message in the row direction and column direction, respectively, as shown in FIG. 1. To receive the product code, the decoding device may include a receiver.

[0052] In step (320), the decoding device decodes the product code in the first direction through the first decoder.

[0053] For the product code, decoding can be performed first in either the row direction or the column direction.

[0054] The input to the first decoder is an n2 vector having dimensions of (2n1-k1) formed by combining a magnitude vector of the received codeword of length n1 of C1 and an absolute value vector of the received codeword of length (n1-k1), and the first decoder can decode n2 codewords of length n1 in the first direction. The first decoder is a decoder trained to decode C1, which is a codeword of length n1.

[0055] In step (330), the decoding device processes the decoding result of the first direction to generate an update product code.

[0056] Equation 1 described above can be used to generate updated product code. The product of the sign of codeword y and the output of the first decoder corresponds to the Log-Likelihood Ratio (LLR) of the transmitted codeword.

[0057] By multiplying the data by a predetermined scale factor, it can be updated into a form that allows it to be used as an input to a transformer-based decoder.

[0058] In step (340), the decoding device decodes the update product code in the second direction through the second decoder.

[0059] The update product code can be input to the second decoder. The update product code can be decoded into n1 codewords of length n2 in the second direction, which is perpendicular to the first direction. The second decoder is a decoder trained to decode codeword C2 of length n2. The output of the second decoder becomes the final decoding result. Since the received product code is a Binary Phase Shift Keying (BPSK) signal, the sign of the value obtained by multiplying the decoding output value of the second decoder and the update product code is calculated to obtain an estimate of the phase-shifted codeword, and the final codeword can be estimated by binarizing it.

[0060] The number of parameters of a transformer-based decoder depends significantly on the number of codewords. Since the transformer-based decoder of the embodiment is trained to decode short codes, the number of parameters is significantly reduced compared to a transformer-based decoder used to decode long codes of similar length, thereby increasing memory efficiency.

[0061] In addition, if C1 and C2 are the same linear block code, a single pre-trained decoder can be used for both row and column decoding, resulting in improved memory efficiency.

[0062] In a communication environment where memory is limited, decoding long codewords in a transformer-based decoder is difficult to execute because it requires significant memory; however, by training a decoder with reduced memory usage as in the embodiment, a flexible decoding solution for decoding long codewords can be provided.

[0064] FIG. 4 is a diagram illustrating the circuit configuration of a decoding device in an embodiment.

[0065] x s is a signal encoded in product code at the transmission device, and is received at the decoding device in a state containing noise (Additive white Gaussian noise, AWGN) of z during the reception process.

[0066] The received product code passes through the first decoder It can obtain. The first decoder can decode the product code in the row direction using the first direction code H.

[0067] To input the decoding output of the first decoder back into the second decoder to encode in the column direction, the decoding output can be multiplied by the sign of codeword y and a scale factor α to generate an updated product code y'.

[0068] The update product code can be decoded through a second decoder. The second decoder performs decoding in the second direction using the input second direction code H, and outputs You can obtain.

[0069] The output of the second decoder represents an estimate of the codeword of the product code. An estimate of the phase-shifted codeword is obtained by calculating the sign of the product of the decoding output value of the second decoder and the updated product code, and the final codeword of x can be estimated by binarizing it.

[0071] FIG. 5 is a diagram illustrating the configuration of a decoding device in an embodiment.

[0072] Referring to FIG. 5, a decoding device (500) according to one embodiment may include a communication interface (510), a processor (530), and a memory (550). The communication interface (510), the processor (530), and the memory (550) may communicate with each other through a communication bus (505).

[0073] The communication interface (510) receives a product code. The product code corresponds to a signal encoded in a transmission device and transmitted to a decoding device via wired or wireless communication.

[0074] The processor (530) can perform decoding on the product code received through the communication interface (510) over two stages of a stepwise connected transformer-based decoder. The processor (530) can perform decoding in the row direction and column direction, respectively, at each decoder configured in the decoding device.

[0075] The memory (550) can store various information generated during the processing of the processor (530) described above. In addition, the memory (550) can store various data and programs. The memory (550) may include volatile memory or non-volatile memory. The memory (550) may store various data by being equipped with a large-capacity storage medium such as a hard disk.

[0076] Additionally, the processor (530) may perform at least one method or an algorithm corresponding to at least one method described above through FIGS. 1 to 4. The processor (530) may be a data processing device implemented in hardware having a circuit having a physical structure for executing desired operations. For example, the desired operations may include code or instructions included in a program. The processor (530) may be composed of, for example, a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or a NPU (Neural Network Processing Unit). For example, the prediction device (500) implemented in hardware may include a microprocessor, a central processing unit, a processor core, a multi-core processor, a multiprocessor, an ASIC (Application-Specific Integrated Circuit), or a FPGA (Field Programmable Gate Array).

[0077] The processor (530) can execute a program and control the decoding device (500). The program code executed by the processor (530) can be stored in memory (550).

[0079] FIG. 6 is a diagram illustrating the decoding performance of a decoding device in an embodiment.

[0080] FIGS. 6(a) and FIGS. 6(b) illustrate the bit error rate (BER) performance of various decoders including a decoding device according to an embodiment. ECCT is a general transformer-based decoder, and PECCT is the decoding device of the embodiment.

[0081] The Polar code as shown in Fig. 6(a) and the BCH (Bose-Chaudhuri-Hocquenghem) code as shown in Fig. 6(b) were evaluated while comparing PECCT with ECCT and the neural product autoencoder ProductAE.

[0082] According to Fig. 6(a), for PECCT, (16, 9) 2 and (16, 11) 2 The code is evaluated and is formed by the square of the Polar (16, 9) and Polar (16, 11) codes, respectively. Correspondingly, for ECCT, the Polar (256, 121) code and the Polar (256, 88) code may be evaluated.

[0083] According to the graph, PECCT significantly improves decoding performance compared to ECCT by efficiently decoding short and high-speed codes, and specifically for the same BER, PECCT has a performance gain of about 1 dB at high SNR (Signal Noise Ratio) and about 1.5 dB at low SNR.

[0084] Figure 6(b) shows the BER performance for the BCH codes of PECCT, ECCT, and ProductAE. BCH(15, 10) 2 and BCH(15, 11) 2 While the code is evaluated using PECCT, the BCH(225, 101) and BCH(255, 125) codes can be tested with ECCT, and ProductAE is Product(15, 10) 2 This was tested with code.

[0085] As a result, PECCT demonstrates significant performance advantages over ProductAE and ECCT in all scenarios. This is attributed to the structural features of ECCT, which can provide good performance in decoding efficiency and accuracy.

[0087] The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., either alone or in combination. The program instructions recorded on the medium may be those specifically designed and configured for the embodiment, or they may be those known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes; optical recording media such as CD-ROMs and DVDs; magneto-optical media such as floptical disks; and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, and flash memory. Examples of program instructions include machine code, such as that generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc. The hardware devices described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.

[0089] Software may include computer programs, code, instructions, or a combination of one or more of these, and may configure a processing unit to operate as desired or command the processing unit independently or collectively. Software and / or data may be permanently or temporarily embodied in any type of machine, component, physical device, virtual equipment, computer storage medium or device, or transmitted signal wave so as to be interpreted by the processing unit or to provide instructions or data to the processing unit. Software may be distributed over networked computer systems and may be stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

[0091] Although the embodiments have been described above with reference to the limited drawings, those skilled in the art can apply various technical modifications and variations based on the above. For example, suitable results may be achieved even if the described techniques are performed in a different order than described, and / or if the components of the described system, structure, device, circuit, etc. are combined or assembled in a form different from described, or replaced or substituted by other components or equivalents.

[0092] Therefore, other implementations, other embodiments, and equivalents to the claims also fall within the scope of the claims set forth below.

Claims

Claim 1 A decoding method of a decoding device comprising: receiving a product code; decoding the product code in a first direction through a first decoder; processing the decoding result in the first direction to generate an updated product code; and decoding the updated product code in a second direction through a second decoder. Claim 2 A decoding method of a decoding device, wherein the product code is generated by encoding data in which information of the data is reconstructed into a matrix using at least one block code. Claim 3 A decoding method of a decoding device according to claim 1, wherein the step of generating an updated product code by processing the decoding result of the first direction comprises the step of generating the updated product code using probability information of the product code included in the decoding result and code information of the product code. Claim 4 A decoding method of a decoding device according to claim 1, wherein the step of generating the update product code comprises the step of generating the update product code by multiplying the probability information of the product code, the sign information of the product code, and the Gaussian channel information. Claim 5 A decoding method of a decoding device according to claim 1, wherein the step of decoding the product code in a first direction through the first decoder includes the step of decoding the product code into a block code of a length learned to be decoded by the first decoder. Claim 6 A decoding method of a decoding device according to claim 1, further comprising the step of obtaining a codeword of the product code by applying a code function and a binary function to the decoding result of the second direction. Claim 7 A decoding method of a decoding device according to claim 1, wherein the first direction and the second direction have a perpendicular relationship with each other. Claim 8 A decoding method of a decoding device according to claim 1, wherein the first decoder and the second decoder are trained to decode a block code of length for decoding. Claim 9 A decoding method of a decoding device, wherein, in claim 1, the first decoder and the second decoder are transformer-based error correction code decoders. Claim 10 A computer program stored on a computer-readable recording medium in combination with hardware to execute the method of any one of claims 1 through 9. Claim 11 A decoding device comprising one or more processors and a memory for storing instructions, wherein, when the instructions are executed by the one or more processors, the device performs the steps of: receiving a product code; decoding the product code in a first direction through a first decoder; processing the decoding result in the first direction to generate an update product code; and decoding the update product code in a second direction through a second decoder. Claim 12 In claim 11, the product code is a decoding device generated by encoding data in which the information of the data is reconstructed into a matrix using at least one block code. Claim 13 A decoding device according to claim 11, wherein the step of generating an updated product code by processing the decoding result of the first direction includes the step of generating the updated product code using probability information of the product code included in the decoding result and code information of the product code. Claim 14 A decoding device according to claim 11, wherein the step of generating the update product code comprises the step of generating the update product code by multiplying the probability information of the product code, the sign information of the product code, and the Gaussian channel information. Claim 15 A decoding device according to claim 11, wherein the step of decoding the product code in a first direction through the first decoder includes the step of decoding the product code into a block code of a length learned to be decoded by the first decoder. Claim 16 A decoding device according to claim 11, which obtains a codeword of the product code by applying a code function and a binary function to the decoding result of the second direction. Claim 17 A decoding device according to claim 11, wherein the first direction and the second direction have a perpendicular relationship with each other. Claim 18 In claim 11, the first decoder and the second decoder are a decoding device trained to decode a block code of length for decoding. Claim 19 In claim 11, the first decoder and the second decoder are a decoding device that is a transformer-based error correction code decoder.