WO2012174933A1 - Rs encoder and encoding method thereof - Google Patents
Rs encoder and encoding method thereof Download PDFInfo
- Publication number
- WO2012174933A1 WO2012174933A1 PCT/CN2012/074127 CN2012074127W WO2012174933A1 WO 2012174933 A1 WO2012174933 A1 WO 2012174933A1 CN 2012074127 W CN2012074127 W CN 2012074127W WO 2012174933 A1 WO2012174933 A1 WO 2012174933A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- encoder
- parallel
- predetermined number
- encoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/159—Remainder calculation, e.g. for encoding and syndrome calculation
- H03M13/1595—Parallel or block-wise remainder calculation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
Definitions
- the present invention relates to the field of communications, and in particular to an encoding method and an RS encoder for a Reed-Solomon (RS) encoder.
- RS Reed-Solomon
- FEC Forward Error Correction
- BCH Bose Chaudhuri Hocquenghem
- a primary object of the present invention is to provide an encoding method of an RS encoder and an RS encoder to solve at least one of the above problems.
- an encoding method of an RS encoder including: an RS encoder dividing input data into parallel predetermined number of channels of data; and an RS encoder simultaneously performing multi-codeword parallelism on a predetermined number of channels of data Encoding processing.
- the method further includes: the RS encoder determines the input control signal enable state, and if enabled, inserts the encoded data into the designated position of the pre-coded data stream. Output, otherwise, the input data is output directly.
- the RS encoder Before the RS encoder determines the input control signal enable state, the RS encoder further includes: the RS encoder serially processes the parallel predetermined predetermined number of data in the predetermined number of codewords. Before the RS encoder divides the input data into parallel predetermined number of road data, the method further includes: the RS encoder performs a zero-padding operation on the input data at a specified position of the data stream. After the RS encoder serially processes the parallel predetermined number of channels of data, the method further includes: the RS encoder performs de-zero processing on the data obtained after the serial processing. The above method further includes: the RS encoder calculates the content of the specified location by the following formula:
- an RS encoder comprising: a dividing module configured to divide input data into parallel predetermined number of road data; and an encoding module configured to simultaneously The multi-code
- the letter book encoder further includes: a judging module configured to determine an enable state of the input control signal; and an output module configured to be in a case where the output result of the judging module is YES , insert the encoded data into the pre-encoding data stream The output is output after the position is determined; and the input data is directly output when the output result of the determination module is negative.
- the encoder further includes: a serial processing module, connected to the coding module, configured to determine whether the The encoded data is serially processed by a predetermined number of codewords in a predetermined number of codewords before being inserted into a predetermined position of the pre-encoding data stream.
- the encoder further includes: a zero-padding module, Connected to the partitioning module, configured to perform zero-padding operation on the input data at a specified position of the data stream before dividing the input data into a parallel predetermined number of road data.
- the encoder further includes: a zero-removing module, and the connection is judged Between the module and the serial processing module, after the serial processing of the predetermined number of parallel data is performed, the data obtained after the serial processing is subjected to de-zero processing.
- the invention adopts the technical means of parallel coding in the RS coding, and solves the problems in the related art that the coding efficiency is not high, the data throughput rate is not large, and the transmission rate of the whole system is not improved, thereby achieving an effective improvement.
- FIG. 1 is a schematic structural diagram of an RS serial encoder according to the related art
- FIG. 2 is a flowchart of an encoding method of an RS encoder according to an embodiment of the present invention
- FIG. 3 is an RS encoding according to an embodiment of the present invention.
- FIG. 4 is a schematic structural diagram of an RS encoder according to a preferred embodiment of the present invention
- FIG. 5 is a schematic structural diagram of an RS encoder according to an embodiment of the present invention
- FIG. 6 is an RS encoding based on the example shown in FIG.
- FIG. 7 is a schematic diagram of a zero-padding and data splicing according to an example of the present invention
- FIG. 8 is a schematic diagram of a 16-code block interleaving structure according to an embodiment of the present invention.
- Step S202 The RS encoder divides the input data into parallel predetermined number of road data.
- the input data may be zero-padded, and then interleaved by a predetermined number of codewords, such as a single or a plurality of codewords, to output a predetermined number of road data in parallel.
- Step S204 the RS encoder simultaneously performs multi-codeword parallel encoding processing on the predetermined number of road data. It should be noted that the above-described multi-codeword parallel encoding process is directed to serial processing in accordance with a single codeword in the related art.
- the RS encoder since the RS encoder adopts a technique of parallel encoding processing in encoding, the encoding efficiency and the data throughput rate are improved as compared with the serial encoding in the related art, and the transmission rate of the entire system is also good.
- the foregoing method may further include the following process: the RS encoder determines the input control signal enable state, and if enabled, inserts the encoded data into a specified position of the pre-encoding data stream, and outputs , directly output the input data.
- the above processing may be performed after the RS encoder simultaneously performs multi-codeword parallel encoding processing on a predetermined number of road data.
- the foregoing method may further include the following process: the RS encoder serially processes the parallel predetermined number of road data after the encoding process in a predetermined number of codewords, that is, restores the parallel data to a string. Row.
- the above processing may be performed before the RS encoder determines that the input control signal is enabled.
- the de-interleave processing may be performed on the encoded data according to the foregoing (corresponding to the interleaving process in the specific implementation process of step S202), and the plurality of codewords in a single or multiple units are used as a unit, and the parallel
- the predetermined number of road coded data is serially output (processed).
- the above method may further include the following process:
- the RS encoder performs a zero-padding operation on the input data at a specified position of the data stream.
- the number of zero padding is determined according to the predetermined number of road data and the number of code words processed by the parallel encoding. For details, refer to Table 2 below.
- the above processing may be performed before the RS encoder divides the input data into parallel predetermined number of road data.
- the input data is constructed into integer beat data for processing by the zero-padding operation.
- the foregoing method may further include: the RS encoder performs de-zero processing on the data obtained after the serial processing.
- the above processing may be performed after the RS encoder performs serial processing on a predetermined number of parallel data in parallel.
- the input data described in the above step S202 can be restored, that is, the valid information in the data stream is restored.
- the above method further includes: the RS encoder calculates the specified position by the following formula
- phase result of the j-th multi-codeword parallel coding of one of the predetermined number of road data is represented (j is a value of 0 to 15 closed interval), and g represents a calculation obtained by the generator polynomial of the RS pattern Factor (calculation factor g is obtained according to the generator polynomial of the specific RS pattern, which can be queried in the related art, and will not be described here), m is the number of parallel coded codewords, indicating multi-codeword parallel coding processing
- the i-th element of the j-th row of the matrix calculation factor represents the input m codewords to be encoded
- ® is a finite field multiplier
- ® is a finite field adder.
- Example 1 the optical channel transport unit (OTU) frame format specified in the G709 protocol is taken as an example.
- the RS serial coding method shown in FIG. 1 can only process one codeword per clock.
- the encoder using the parallel coding method of the present example can process at least two codewords per clock, and the coding efficiency is improved by at least one time.
- the related art RS serial coding is at 400 MHz.
- the data throughput rate under the clock is 3.2 Gbps
- the parallel encoder with this example has a data throughput rate of at least 102 Gbps, and the data throughput rate is greatly improved, which is beneficial to the improvement of the optical communication transmission rate.
- the RS code encoder includes: a zero padding unit, a data interleaving unit, a parallel encoding unit, a data deinterleaving unit, a zeroing unit, and a data splicing unit.
- the zero-padding unit is set to perform zero-padding operation on the input data, and is configured to be processed into integer beat data;
- the data interleaving unit is set to perform data interleaving according to a single codeword as a unit of zero-padded data, in parallel Output n-channel data;
- the data de-interleaving unit is configured to de-interleave the encoded data, serially output the n-coded data input in parallel according to a single codeword;
- the zero-removing unit is set to solve the data
- the data from the interleaving unit is subjected to de-zero processing to remove the zero inserted before encoding;
- the data splicing unit is configured to determine whether to insert the encoded data into the specified position of the pre-encoding stream according to the state of the input control signal, Output the complete encoding result.
- the parallel coding method adopted by the parallel coding unit is derived according to the serial RS encoder shown in FIG. 1, and the derivation steps are as follows: (1) Based on the serial encoder of Figure 1, for the RS(n,k) code, the contents of CO, Cl, ..., Cn-k-1 in the t clock cycle remainder register are: C0 (t), Cl1,..., Cn-k-11; When t+1, the input information bit is a(t+l), then the content in the remainder register of t+1 clock cycle is updated according to the connection relationship of the feedback circuit for:
- the RS encoder in the above example saves coding time, improves coding efficiency by at least one time, increases data throughput rate by several times, and has good transmission rate for the entire system.
- the promotion effect If parallel coding is applied to the codeword, such as processing 2, 3, 4 or more codewords in parallel for each clock cycle, not only the coding efficiency of the encoder is greatly improved, but also the overall system equipment. The data throughput rate has also been greatly improved.
- the encoder includes: a dividing module 30 connected to the encoding module 32, configured to divide the input data into parallel predetermined number of road data;
- the encoding module 32 is configured to perform multi-codeword parallel encoding processing on the predetermined number of road data at the same time. In the preferred implementation process, as shown in FIG.
- the encoder may further include: a determining module 34 connected to the output module 36, configured to determine an enabled state of the input control signal; and an output module 36 configured to be in the determining module When the output result is YES, the encoded data is inserted into a specified position of the pre-encoding data stream and output; and when the output result of the judging module is NO, the input data is directly output.
- the encoder may further include: a serial processing module 38 coupled to the encoding module 32, configured to determine, at the determining module 34, whether to insert the encoded data into the pre-encoding data stream. Before the designated position, the encoded predetermined parallel number of road data is serially processed in units of a predetermined number of code words.
- the encoder may further include: a zero padding module 40, connected to the dividing module 30, configured to input the input data before being divided into parallel predetermined numbers of road data. The data is zero-filled at a specified location in the data stream.
- the encoder may further include: a zeroing module 42 connected between the judging module 34 and the serial processing module 38, and configured to perform a predetermined number of data to be paralleled. After the serial processing, the data obtained after the serial processing is subjected to de-zero processing.
- Example 2 uses the optical channel transport unit (OTU) frame format and RS (255, 239) specified in Annex A of the G709 protocol as an example.
- the RS code encoder includes the following processing units: a zero padding unit 50 (corresponding to the zero padding module 40), a data interleaving unit 52 (corresponding to the dividing module 30), and a parallel encoding unit 54 (corresponding to the encoding module 32).
- the data deinterleaving unit 56 (corresponding to the serial processing module 38), the zeroing unit 58 (corresponding to the zeroing module 42), and the data splicing unit 60 (corresponding to the judging module 34 and the output module 36).
- This example is described in detail by taking two codewords in parallel for each beat as an example.
- Figure 6 shows the bit width of each of the above processing units when the data stream passes through the RS code encoder.
- the zero-padding unit 50 is set to perform zero-padding operation on the input data, and is configured to be processed into integer beat data. As shown in FIG. 7, the numbers in FIG. 7 represent the number of clock beats, and the frame structure is 1 sub-line 4080. Byte, where the check word is 256 bytes.
- the parity information of each sub-coding unit is 16 bytes, and each clock cycle data is 256 bits. Then each sub-row occupies 120 cycles of payload data (including 128 bits of zero padding) and 8 cycles of parity data.
- 128 bits are padded at the 0th, 128th, 256th, and 384th cycles, respectively, and sent to the subsequent processing unit along with the valid data.
- the data after zero padding can be set to 0 at the period corresponding to the check data, and the check data is inserted for the subsequent data splicing module.
- the data interleaving unit 52 is configured to perform interleaving processing on the zero-padded data in units of a single codeword, and output n (n is a positive integer) channel data in parallel; as shown in FIG. 8, the information bits are sequentially alternated before encoding.
- the 16 sub-coding units are fed, and when the encoding is completed, the columns are sequentially read in order of priority.
- the input 256-bit data is written in the form of a single codeword as B0, B1, ..., B31.
- the function of the data interleaving unit is to divide the input 256-bit data into 16 channels and enter 16 RS sub-coding units respectively, that is, B0 and B16 are sent to the sub-encoding unit sub_0; B1 and B17 are sent to the sub-encoding unit sub_l B15, and B31 sends the sub-encoding.
- Unit sub_15 is assumed that the input 256-bit data is written in the form of a single codeword as B0, B1, ..., B31.
- the parallel encoding unit 54 implements parallel encoding of the input interleaved data, and the specific implementation includes the following steps: (1) calculating the matrix coefficient G2 according to the code generation polynomial; (2) obtaining the parallel encoding expression according to the matrix coefficient and the input information.
- the generator polynomial may be listed according to the specific RS pattern, and then the generator matrix is used to generate the generator matrix.
- the number of codewords encoded in parallel by each beat in the parallel coding unit 54 is the multiplication of the matrix factor g. Number of squares. Specifically, as shown in Table 1, the matrix coefficient G 2 of the finite field RS parallel coding calculated according to the RS (255, 239) code generation polynomial;
- step (2) it is assumed that the two information code words input in parallel are: a0, al, t
- the matrix coefficient G 2 calculated in step (1) is substituted into formula 3, Get the G 2 parallel encoding expression as follows:
- the ® is a finite field multiplier
- @ is a finite field adder.
- the contents of the register C15, C14, C13, ..., C1, C0 are the parity bits obtained by the RS code encoding.
- the input information is [a0,al,..., a 239].
- the last output codeword of the RS code is [a0,al,...,a239,C15,C14,C13 ,...,Cl,C0].
- the data deinterleaving unit 56 is configured to perform deinterleaving processing on the encoded data, and serially output n pieces of encoded data input in parallel in units of a single codeword; the process of deinterleaving is opposite to the interleaving process. It is assumed that the 16-bit data output by sub_0 is written in byte form as A0, A1, sub_l output 16-bit data is A2, A3, and so on, and the 16-bit data output by sub_15 is A30, A31. Then, after deinterleaving, the output sequences are sequentially: A0, A2, A4, ... A30, Al, A3, A5, ... A31.
- the de-zeroing unit 58 is configured to perform de-zero processing on the data from the data deinterleaving unit 56, and remove the zero inserted before the encoding; as shown in FIG. 7, respectively, before the 0th, 128th, 256th, and 384th cycles are removed, The 128-bit zero, the valid information data is restored to the state before zero-padding, and the gap generated during the zero-cut process is placed directly at the end of the data frame.
- the data splicing unit 60 is configured to determine whether to insert the encoded data into the specified position of the pre-encoding stream and output the complete encoding result according to the state of the input control signal. As shown in FIG.
- the deinterleaved coded data is filled in the check data portion (for example, 120 to 127 in the first row, 248 to 255 in the second row, etc.),
- the input information data is spliced in accordance with the frame format to be completely output; conversely, if the code enable signal is invalid, the verification data portion is filled with zeros, and the input information data is directly output according to the frame format.
- the above example is only a specific implementation description for a parallel encoder that processes two codewords in parallel in the optical transmission domain RS (255, 239) code.
- the parallel RS coding described in this example The device can process m codewords in parallel (the range of m ranges from 1 to 16).
- Table 2 the related information of the parallel RS encoder in different embodiments is listed, including the input data bit width, the number of parallel processed code words, Zero and zero Parallel encoding takes time and so on.
- the more codewords are processed in parallel for each beat the more complicated the calculation, the more complicated the implementation, but the shorter the encoding time consumed, the higher the encoding efficiency, and the trade-offs need to be based on actual conditions.
- the present invention achieves the following technical effects:
- the technical means of parallel coding is adopted in the RS coding, and the related art is solved, the coding efficiency is not high, and the data throughput rate is not Large, is not conducive to the improvement of the transmission rate of the entire system, and thus achieves the effect of effectively improving the coding efficiency and data throughput rate, and at the same time, has a good promotion effect on the transmission rate of the entire system.
- the above modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed over a network composed of multiple computing devices.
- the computing device may be implemented by program code executable by the computing device, such that they may be stored in the storage device by the computing device and, in some cases, may be different from the order herein. Perform the steps shown or described, or separate them into individual integrated circuit modules, or Multiple of these modules or steps are fabricated as a single integrated circuit module.
- the invention is not limited to any specific combination of hardware and software.
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
RS编码器的编码方法及 RS编码器 技术领域 本发明涉及通信领域, 具体而言, 尤其涉及一种里德所罗门 (Reed-Solomon, 简 称为 RS) 编码器的编码方法及 RS编码器。 背景技术 随着 IP业务的急剧增长, 光通信面临着更高传输速率和可靠性的要求。在可靠性 方面, 通常采用前向纠错 (Forward Error Correction, 简称为 FEC)技术来提高信道传 输的可靠性, 而 RS码作为一类具有很强纠错能力的多进制博斯 ·查德胡里 ·霍昆格 姆码 (Bose Chaudhuri Hocquenghem, 简称为 BCH), 其优良的性能和高吞吐率, 被广 泛应用到光传输、 数字广播等众多领域中。 现有技术应用 RS编码时通常采用串行编码的方法, 即一个码字接着一个码字串 行处理, 每个时钟只能处理一个码字, 如图 1所示。 这样不仅编码效率不高, 而且数 据的吞吐率也不大, 不利于整个系统传输速率的提高。 针对相关技术中的上述问题, 目前尚未提出有效的解决方案。 发明内容 本发明的主要目的在于提供一种 RS编码器的编码方法及 RS编码器,以解决上述 问题至少之一。 根据本发明的一个方面, 提供了一种 RS编码器的编码方法, 包括: RS编码器将 输入的数据划分成并行的预定数目路数据; RS编码器同时对预定数目路数据进行多码 字并行编码处理。 上述 RS编码器同时对预定数目路数据进行编码处理之后, 还包括: RS编码器判 断输入的控制信号使能状态, 如果使能, 则将编码后的数据插入到编码前数据流的指 定位置后输出, 否则, 直接将输入的数据输出。 上述 RS编码器判断输入的控制信号使能状态之前, 还包括: RS编码器以预定数 量个码字为单位, 将编码处理后的并行的预定数目路数据进行串行处理。 上述 RS编码器将输入的数据划分成并行的预定数目路数据之前, 还包括: RS编 码器对输入的数据在数据流的指定位置进行补零操作。 上述 RS编码器对将并行的预定数目路数据进行串行处理之后, 还包括: RS编码 器对串行处理后得到的数据进行去零处理。 上述方法还包括: RS编码器通过以下公式计算得到指定位置的内容: TECHNICAL FIELD The present invention relates to the field of communications, and in particular to an encoding method and an RS encoder for a Reed-Solomon (RS) encoder. BACKGROUND OF THE INVENTION With the rapid growth of IP services, optical communications are faced with higher transmission rates and reliability requirements. In terms of reliability, Forward Error Correction (FEC) technology is usually used to improve the reliability of channel transmission, and RS code is used as a kind of multi-digit Boss Chad with strong error correction capability. Bose Chaudhuri Hocquenghem (BCH), which has excellent performance and high throughput, is widely used in many fields such as optical transmission and digital broadcasting. In the prior art, RS coding is usually applied by serial coding, that is, one codeword followed by one codeword serial processing, and each clock can only process one codeword, as shown in FIG. In this way, not only the coding efficiency is not high, but also the throughput of the data is not large, which is not conducive to the improvement of the transmission rate of the entire system. In view of the above problems in the related art, an effective solution has not yet been proposed. SUMMARY OF THE INVENTION A primary object of the present invention is to provide an encoding method of an RS encoder and an RS encoder to solve at least one of the above problems. According to an aspect of the present invention, an encoding method of an RS encoder is provided, including: an RS encoder dividing input data into parallel predetermined number of channels of data; and an RS encoder simultaneously performing multi-codeword parallelism on a predetermined number of channels of data Encoding processing. After the RS encoder encodes the predetermined number of road data at the same time, the method further includes: the RS encoder determines the input control signal enable state, and if enabled, inserts the encoded data into the designated position of the pre-coded data stream. Output, otherwise, the input data is output directly. Before the RS encoder determines the input control signal enable state, the RS encoder further includes: the RS encoder serially processes the parallel predetermined predetermined number of data in the predetermined number of codewords. Before the RS encoder divides the input data into parallel predetermined number of road data, the method further includes: the RS encoder performs a zero-padding operation on the input data at a specified position of the data stream. After the RS encoder serially processes the parallel predetermined number of channels of data, the method further includes: the RS encoder performs de-zero processing on the data obtained after the serial processing. The above method further includes: the RS encoder calculates the content of the specified location by the following formula:
Σ^ Θ ^ © ^ ), = 0,1...,∞- 1 (∑ gl5- l ® (" © c15— , )) Θ c}_m = m,m + - - -,\5 其中, 表示预定数目路数据的其中之一路数据的第 j个多码字并行编码的阶段 性结果 (j为 0到 15闭区间取值), g表示由 RS码型的生成多项式得来的计算因子, m为并行编码的码字个数, 表示多码字并行编码处理的矩阵计算因子的第 j行第 i 个元素, 表示输入的待编码的 m个码字, ®为有限域乘法器, ®为有限域加法器。 根据本发明的另一个方面, 还提供一种 RS编码器, 包括: 划分模块, 设置为将 输入的数据划分成并行的预定数目路数据; 编码模块, 设置为同时对预定数目路数据 进行多码字并行编码处理。 上书编码器还包括: 判断模块, 设置为判断输入的控制信号的使能状态; 输出模 块, 设置为在判断模块的输出结果为是的情况下, 将编码后的数据插入到编码前数据 流的指定位置后输出; 以及在在判断模块的输出结果为否的情况下, 直接将输入的数 据输出。 上述编码器还包括: 串行处理模块, 与编码模块相连, 设置为在判断模块判断是 否将编码后的数据插入到编码前数据流的指定位置之前, 以预定数量个码字为单位, 将编码处理后的并行的预定数目路数据进行串行处理。 上述编码器还包括: 补零模块, 与划分模块相连, 设置为在将输入的数据划分成 并行的预定数目路数据之前, 对输入的数据在数据流的指定位置进行补零操作。 上述编码器还包括: 去零模块, 连接在判断模块和串行处理模块之间, 设置为在 对将并行的预定数目路数据进行串行处理之后, 对串行处理后得到的数据进行去零处 理。 通过本发明, 在 RS编码时采用并行编码的技术手段, 解决了相关技术中, 编码 效率不高, 数据的吞吐率也不大, 不利于整个系统传输速率的提高等问题, 进而达到 了有效提高编码效率和数据吞吐率的效果, 同时, 对整个系统的传输速率也有良好的 促进效果。 附图说明 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。 在附图 中: 图 1为根据相关技术的 RS串行编码器的结构示意图; 图 2为根据本发明实施例的 RS编码器的编码方法流程图; 图 3为根据本发明实施例的 RS编码器的结构框图; 图 4为根据本发明优选实施例的 RS编码器的结构示意图; 图 5为根据本发明具体实例的 RS编码器的结构示意图; 图 6为基于图 5所示实例的 RS编码器的 G2实现方式结构示意图; 图 7为根据本发明实例的补零及数据拼接对照示意图; 图 8为根据本发明具体实例的 16码块交织结构示意图。 具体实施方式 下文中将参考附图并结合实施例来详细说明本发明。 需要说明的是, 在不冲突的 情况下, 本申请中的实施例及实施例中的特征可以相互组合。 图 2为根据本发明实施例的 RS编码器的编码方法流程图。 如图 2所示, 该方法 包括: 步骤 S202, RS编码器将输入的数据划分成并行的预定数目路数据。 在具体实施 时, 可以先对上述输入的数据进行补零操作, 然后再按单个或多个等预定数量个码字 为单元进行交织处理, 并行输出预定数目路数据。 步骤 S204, RS编码器同时对预定数目路数据进行多码字并行编码处理。 需要说 明的是, 上述多码字并行编码处理是针对在相关技术中按照单个码字进行串行处理而 言的。 上述实施例, 由于 RS编码器在编码时采用并行编码处理的技术手段, 因此, 相 对于相关技术中的串行编码, 提高了编码效率和数据吞吐率, 同时, 对整个系统的传 输速率也有良好的促进效果。 在具体应用过程中, 上述方法还可以包括以下处理过程: RS编码器判断输入的控 制信号使能状态, 如果使能, 则将编码后的数据插入到编码前数据流的指定位置后输 出, 否则, 直接将输入的数据输出。 上述处理过程可以在 RS编码器同时对预定数目 路数据进行多码字并行编码处理之后进行。 通过上述处理过程, 在经过 RS编码器对 输入的数据进行编码以后, 对输出的数据的具体内容进行了规定。 在具体应用过程中, 上述方法还可以包括以下处理过程: RS编码器以预定数量个 码字为单位, 将编码处理后的并行的预定数目路数据进行串行处理, 即将并行的数据 还原为串行。 上述处理过程可以在上述 RS编码器判断输入的控制信号使能状态之前 进行。在具体实施时,可以根据上述对编码处理后的数据进行解交织处理(与步骤 S202 的具体实施过程中的交织处理相对应), 按单个或多个等预定数量个码字为单元,将并 行的预定数目路编码数据串行输出 (处理)。 在具体应用过程中, 上述方法还可以包括以下处理过程: RS编码器对输入的数据 在数据流的指定位置进行补零操作。 补零的个数根据预定数目路数据和并行编码处理 的码字数决定, 具体可参见下面的表 2。上述处理过程可以在上述 RS编码器将输入的 数据划分成并行的预定数目路数据之前进行。 通过补零操作, 将输入的数据构造成整 数拍数据进行处理。 在具体应用过程中, 上述方法还可以包括: RS编码器对串行处理后得到的数据进 行去零处理。 上述处理过程可以在上述 RS编码器对将并行的预定数目路数据进行串 行处理之后进行。 通过上述处理过程, 可以还原上述步骤 S202中所述的输入的数据, 即还原数据流中的有效信息。 在具体应用过程中, 上述方法还包括: RS编码器通过以下公式计算得到指定位置 Σ^ Θ ^ © ^ ), = 0,1...,∞- 1 (∑ g l5 - l ® (" © c 15 — , )) Θ c } _ m = m,m + - - -,\ 5 wherein, the phase result of the j-th multi-codeword parallel coding of one of the predetermined number of road data is represented (j is a value of 0 to 15 closed interval), and g represents a generator polynomial of the RS pattern The calculation factor, m is the number of codewords encoded in parallel, the i-th element of the j-th row of the matrix calculation factor representing the multi-codeword parallel coding process, representing the input m codewords to be encoded, ® is a finite field multiplier According to another aspect of the present invention, an RS encoder is further provided, comprising: a dividing module configured to divide input data into parallel predetermined number of road data; and an encoding module configured to simultaneously The multi-codeword parallel encoding process is performed on the predetermined number of road data. The letter book encoder further includes: a judging module configured to determine an enable state of the input control signal; and an output module configured to be in a case where the output result of the judging module is YES , insert the encoded data into the pre-encoding data stream The output is output after the position is determined; and the input data is directly output when the output result of the determination module is negative. The encoder further includes: a serial processing module, connected to the coding module, configured to determine whether the The encoded data is serially processed by a predetermined number of codewords in a predetermined number of codewords before being inserted into a predetermined position of the pre-encoding data stream. The encoder further includes: a zero-padding module, Connected to the partitioning module, configured to perform zero-padding operation on the input data at a specified position of the data stream before dividing the input data into a parallel predetermined number of road data. The encoder further includes: a zero-removing module, and the connection is judged Between the module and the serial processing module, after the serial processing of the predetermined number of parallel data is performed, the data obtained after the serial processing is subjected to de-zero processing. The invention adopts the technical means of parallel coding in the RS coding, and solves the problems in the related art that the coding efficiency is not high, the data throughput rate is not large, and the transmission rate of the whole system is not improved, thereby achieving an effective improvement. The efficiency of coding and data throughput are also good, and the transmission rate of the whole system is also promoted. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are set to illustrate,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, In the drawings: FIG. 1 is a schematic structural diagram of an RS serial encoder according to the related art; FIG. 2 is a flowchart of an encoding method of an RS encoder according to an embodiment of the present invention; FIG. 3 is an RS encoding according to an embodiment of the present invention. FIG. 4 is a schematic structural diagram of an RS encoder according to a preferred embodiment of the present invention; FIG. 5 is a schematic structural diagram of an RS encoder according to an embodiment of the present invention; FIG. 6 is an RS encoding based on the example shown in FIG. FIG. 7 is a schematic diagram of a zero-padding and data splicing according to an example of the present invention; FIG. 8 is a schematic diagram of a 16-code block interleaving structure according to an embodiment of the present invention. BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the embodiments in the present application and the features in the embodiments may be combined with each other without conflict. 2 is a flow chart of an encoding method of an RS encoder according to an embodiment of the present invention. As shown in FIG. 2, the method includes: Step S202: The RS encoder divides the input data into parallel predetermined number of road data. In a specific implementation, the input data may be zero-padded, and then interleaved by a predetermined number of codewords, such as a single or a plurality of codewords, to output a predetermined number of road data in parallel. Step S204, the RS encoder simultaneously performs multi-codeword parallel encoding processing on the predetermined number of road data. It should be noted that the above-described multi-codeword parallel encoding process is directed to serial processing in accordance with a single codeword in the related art. In the above embodiment, since the RS encoder adopts a technique of parallel encoding processing in encoding, the encoding efficiency and the data throughput rate are improved as compared with the serial encoding in the related art, and the transmission rate of the entire system is also good. The promotion effect. In a specific application process, the foregoing method may further include the following process: the RS encoder determines the input control signal enable state, and if enabled, inserts the encoded data into a specified position of the pre-encoding data stream, and outputs , directly output the input data. The above processing may be performed after the RS encoder simultaneously performs multi-codeword parallel encoding processing on a predetermined number of road data. Through the above processing, after the input data is encoded by the RS encoder, the specific content of the output data is specified. In a specific application process, the foregoing method may further include the following process: the RS encoder serially processes the parallel predetermined number of road data after the encoding process in a predetermined number of codewords, that is, restores the parallel data to a string. Row. The above processing may be performed before the RS encoder determines that the input control signal is enabled. In a specific implementation, the de-interleave processing may be performed on the encoded data according to the foregoing (corresponding to the interleaving process in the specific implementation process of step S202), and the plurality of codewords in a single or multiple units are used as a unit, and the parallel The predetermined number of road coded data is serially output (processed). In a specific application process, the above method may further include the following process: The RS encoder performs a zero-padding operation on the input data at a specified position of the data stream. The number of zero padding is determined according to the predetermined number of road data and the number of code words processed by the parallel encoding. For details, refer to Table 2 below. The above processing may be performed before the RS encoder divides the input data into parallel predetermined number of road data. The input data is constructed into integer beat data for processing by the zero-padding operation. In a specific application process, the foregoing method may further include: the RS encoder performs de-zero processing on the data obtained after the serial processing. The above processing may be performed after the RS encoder performs serial processing on a predetermined number of parallel data in parallel. Through the above processing, the input data described in the above step S202 can be restored, that is, the valid information in the data stream is restored. In the specific application process, the above method further includes: the RS encoder calculates the specified position by the following formula
fj gl5_] 1 ® (a1 ® cl5_1 ) = 0,l ...,m - l f j gl5 _ ] 1 ® (a 1 ® c l5 _ 1 ) = 0,l ...,m - l
的内容: C] = η_ '-° Content: C] = η _ '-°
(∑ 5- w ® © As-! )) © = m, m + !,■■■, 15 其中, 表示预定数目路数据的其中之一路数据的第 j个多码字并行编码的阶段 性结果(j为 0到 15闭区间取值), g表示由 RS码型的生成多项式得来的计算因子(计 算因子 g是根据具体 RS码型的生成多项式求来, 在相关技术中可以查询得知, 此处 不再赘述), m为并行编码的码字个数, 表示多码字并行编码处理的矩阵计算因子的 第 j行第 i个元素, 表示输入的待编码的 m个码字, ®为有限域乘法器, ®为有限 域加法器。 其中, C与 c的含义相同。 为了更好地理解上述实施例, 以下结合相关附图和具体实例详细说明。 实例 1 本实例, 以 G709协议中规定的光信道传输单元 (Optical Channel Transport Unit, 简称为 OTU)帧格式为例, 图 1所示的 RS串行编码方法每个时钟只能处理一个码字, 而采用本实例的并行编码方法的编码器, 每个时钟至少能处理两个码字, 则编码效率 提升了至少 1倍; 以上述的 OTU帧格式为例,相关技术的 RS串行编码在 400MHz时钟下的数据吞 吐率为 3.2Gbps, 而采用本实例的并行编码器, 其数据吞吐率至少为 102Gbps, 数据吞 吐率有很大的提高, 对于光通信传输速率的提升大有裨益。 本实例中, RS码编码器包括: 补零单元、 数据交织单元、 并行编码单元、 数据解 交织单元、 去零单元和数据拼接单元。 其中, 补零单元, 设置为对输入的数据进行补零的操作, 构造成整数拍数据进行处理; 数据交织单元, 设置为对补零后的数据, 按单个码字为单元进行交织处理, 并行 输出 n路数据; 数据解交织单元, 设置为对编码后的数据进行解交织处理, 按单个码字为单位, 将并行输入的 n路编码数据串行输出; 去零单元, 设置为对数据解交织单元出来的数据进行去零处理, 去掉编码前插入 的零; 数据拼接单元, 设置为根据输入控制信号的状态, 来决定是否将编码后的数据顺 序插入到编码前码流的指定位置, 是否输出完整的编码结果。 并行编码单元采用的并行编码方法根据图 1所示的串行 RS编码器推导而来, 其 推导步骤如下: (1) 基于附图 1 的串行编码器, 对 RS(n,k)码而言, 设 t时钟周期余数寄存器中 CO, Cl, ..., Cn-k-1的内容分别为: C0(t),Cl① ,..., Cn-k-1①; t+1时输入信息比特是 a(t+l), 则 t+1时钟周期的余数寄存器中的内容根据反馈电路的连接关系更新为: (∑ 5 - w ® © As-! )) © = m, m + !,■■■, 15 Wherein, the phase result of the j-th multi-codeword parallel coding of one of the predetermined number of road data is represented (j is a value of 0 to 15 closed interval), and g represents a calculation obtained by the generator polynomial of the RS pattern Factor (calculation factor g is obtained according to the generator polynomial of the specific RS pattern, which can be queried in the related art, and will not be described here), m is the number of parallel coded codewords, indicating multi-codeword parallel coding processing The i-th element of the j-th row of the matrix calculation factor represents the input m codewords to be encoded, ® is a finite field multiplier, and ® is a finite field adder. Among them, C has the same meaning as c. In order to better understand the above embodiments, the following detailed description will be made in conjunction with the accompanying drawings and specific examples. Example 1 In this example, the optical channel transport unit (OTU) frame format specified in the G709 protocol is taken as an example. The RS serial coding method shown in FIG. 1 can only process one codeword per clock. The encoder using the parallel coding method of the present example can process at least two codewords per clock, and the coding efficiency is improved by at least one time. Taking the above OTU frame format as an example, the related art RS serial coding is at 400 MHz. The data throughput rate under the clock is 3.2 Gbps, and the parallel encoder with this example has a data throughput rate of at least 102 Gbps, and the data throughput rate is greatly improved, which is beneficial to the improvement of the optical communication transmission rate. In this example, the RS code encoder includes: a zero padding unit, a data interleaving unit, a parallel encoding unit, a data deinterleaving unit, a zeroing unit, and a data splicing unit. Wherein, the zero-padding unit is set to perform zero-padding operation on the input data, and is configured to be processed into integer beat data; the data interleaving unit is set to perform data interleaving according to a single codeword as a unit of zero-padded data, in parallel Output n-channel data; the data de-interleaving unit is configured to de-interleave the encoded data, serially output the n-coded data input in parallel according to a single codeword; the zero-removing unit is set to solve the data The data from the interleaving unit is subjected to de-zero processing to remove the zero inserted before encoding; the data splicing unit is configured to determine whether to insert the encoded data into the specified position of the pre-encoding stream according to the state of the input control signal, Output the complete encoding result. The parallel coding method adopted by the parallel coding unit is derived according to the serial RS encoder shown in FIG. 1, and the derivation steps are as follows: (1) Based on the serial encoder of Figure 1, for the RS(n,k) code, the contents of CO, Cl, ..., Cn-k-1 in the t clock cycle remainder register are: C0 (t), Cl1,..., Cn-k-11; When t+1, the input information bit is a(t+l), then the content in the remainder register of t+1 clock cycle is updated according to the connection relationship of the feedback circuit for:
C„_k_,(t + l) = C, r(K)+ +i)) C„_ k _,(t + l) = C, r(K)+ +i))
Cn_k_2(t + l) = C, W+g„— t 2·υ + +ι)) C n _ k _ 2 (t + l) = C, W+g„- t 2 ·υ + +ι))
Q (t + l) = C0 (t) + gl · (Cn_k_x (t) + a(t + 1)) Q (t + l) = C 0 (t) + gl · (C n _ k _ x (t) + a(t + 1))
C0(t +C 0 (t +
(2)将①式写成矩阵表达式, 为简化表达式和便于计算, 设置参量 C(t+1)、 C(t)、 A(t+1)和 G, 则①式可以简化为: (2) Write the formula 1 as a matrix expression. To simplify the expression and facilitate the calculation, set the parameters C(t+1), C(t), A(t+1) and G. Then the formula 1 can be simplified as:
C(t + l) = G-(C(t) + ^(t + l)) ② C(t + l) = G-(C(t) + ^(t + l)) 2
(3) 由②式类推可以推导出 t+m时刻的状态后信息 C(t+m)、 输入信息 A(t+m)、 状态前信息 C(t)三者之间的关系, 从而进一步迭代出如下的表达式: (3) The relationship between the information C(t+m), the input information A(t+m), and the pre-state information C(t) after the state of t+m can be derived from the analogy of the equation 2, thereby further Iterate out the following expression:
这意味着可以在时钟 T时刻同时输入 m个信息 (m为 1到 16之间的任意一个值 均可), 那么 k/m个时钟周期之后, 系统编码所需要的校验位就是寄存器的内容。 上述实例中的 RS编码器, 与相关技术中的串行编码方案相比, 节省了编码时间, 编码效率提升了至少一倍, 数据吞吐率也提高了数倍, 对整个系统的传输速率有良好 的促进效果。 若对码字采用并行的编码方法, 如每个时钟周期并行处理 2个、 3个、 4个或者更 多的码字, 这样不仅编码器的编码效率有很大的提升, 而且系统设备的整体数据吞吐 率也有很大提高。 图 3为根据本发明实施例的 RS编码器的结构框图。 如图 3所示, 该编码器包括: 划分模块 30,连接至编码模块 32, 设置为将输入的数据划分成并行的预定数目路 数据; 编码模块 32, 设置为同时对预定数目路数据进行多码字并行编码处理。 在优选实施过程中, 如图 4所示, 上述编码器还可以包括: 判断模块 34, 与输出 模块 36相连, 设置为判断输入的控制信号的使能状态; 输出模块 36, 设置为在判断 模块的输出结果为是的情况下, 将编码后的数据插入到编码前数据流的指定位置后输 出; 以及在在判断模块的输出结果为否的情况下, 直接将输入的数据输出。 在优选实施过程中, 如图 4所示, 上述编码器还可以包括: 串行处理模块 38, 与 编码模块 32相连, 设置为在判断模块 34判断是否将编码后的数据插入到编码前数据 流的指定位置之前, 以预定数量个码字为单位, 将编码处理后的并行的预定数目路数 据进行串行处理。 在优选实施过程中, 如图 4所示, 上述编码器还可以包括: 补零模块 40, 与划分 模块 30相连, 设置为在将输入的数据划分成并行的预定数目路数据之前,对输入的数 据在数据流的指定位置进行补零操作。 在优选实施过程中, 如图 4所示, 上述编码器还可以包括: 去零模块 42, 连接在 判断模块 34和串行处理模块 38之间, 设置为在对将并行的预定数目路数据进行串行 处理之后, 对串行处理后得到的数据进行去零处理。 为了更好地理解上述实施例, 以下结合具体实例和相关附图具体说明。 实例 2 本实例以 G709 协议中 Annex A 中规定的光信道传输单元 (Optical Channel Transport Unit, 简称为 OTU) 帧格式和 RS (255, 239) 为例来说明。 如图 5所示, RS码编码器包括以下处理单元: 补零单元 50 (相当于补零模块 40)、 数据交织单元 52 (相当于划分模块 30), 并行编码单元 54 (相当于编码模块 32)、 数据解交织单元 56 (相当于串行处理模块 38)、 去零单元 58 (相当于去零模块 42)和数据拼接单元 60 (相当于判断模块 34和输出模块 36)。本实例以每拍并行处理 2个码字为例来详细说 明, 图 6中标注了数据流经过 RS码编码器时, 上述各个处理单元的位宽情况。 其中, 补零单元 50,设置为对输入的数据进行补零的操作,构造成整数拍数据进行处理; 如图 7所示, 图 7中的数字均代表时钟节拍数, 帧结构 1个子行 4080字节, 其中校验 字为 256字节。 每一路子编码单元的校验信息为 16字节, 每一个时钟周期数据为 256 位, 则每个子行占据 120周期的净荷数据 (含 128位补零) 和 8个周期的校验数据。 分别在第 0、 128、 256、 384周期时补零 128位, 和有效数据一起送入后级处理单元。 补零后的数据在校验数据对应的周期处可置 0, 为后续数据拼接模块插入校验数据。 数据交织单元 52, 设置为对补零后的数据, 按单个码字为单元进行交织处理, 并 行输出 n ( n为正整数) 路数据; 如图 8所示, 编码前, 将信息位依次交替的送入 16 个子编码单元, 当完成编码后, 按列优先依次顺序读出。 假定输入的 256bit数据写成 单个码字的形式为 B0,B1, ... ,B31。数据交织单元的功能是将输入的 256bit数据分成 16 路分别进入 16个 RS子编码单元, 即 B0, B16送入子编码单元 sub_0; B1,B17送入子 编码单元 sub_l B15, B31送入子编码单元 sub_15。 并行编码单元 54 实现对输入的交织数据进行并行编码, 其具体实现包括如下步 骤: (1)根据码生成多项式计算矩阵系数 G2; (2)根据矩阵系数和输入的信息得出并行 编码表达式。 步骤 (1)中, 可先根据具体 RS码型列出其生成多项式, 再由生成多项式产生生成 矩阵, 并行编码单元 54中每拍并行编码的码字个数 m, 即是矩阵因子 g的乘方次数。 具体地, 如表 1所示, 即是根据 RS (255, 239) 码生成多项式计算得出的有限域 RS 并行编码的矩阵系数 G2; This means that m information can be input simultaneously at clock T (m can be any value between 1 and 16), then after k/m clock cycles, the check digit required for system coding is the contents of the register. . Compared with the serial coding scheme in the related art, the RS encoder in the above example saves coding time, improves coding efficiency by at least one time, increases data throughput rate by several times, and has good transmission rate for the entire system. The promotion effect. If parallel coding is applied to the codeword, such as processing 2, 3, 4 or more codewords in parallel for each clock cycle, not only the coding efficiency of the encoder is greatly improved, but also the overall system equipment. The data throughput rate has also been greatly improved. FIG. 3 is a structural block diagram of an RS encoder according to an embodiment of the present invention. As shown in FIG. 3, the encoder includes: a dividing module 30 connected to the encoding module 32, configured to divide the input data into parallel predetermined number of road data; The encoding module 32 is configured to perform multi-codeword parallel encoding processing on the predetermined number of road data at the same time. In the preferred implementation process, as shown in FIG. 4, the encoder may further include: a determining module 34 connected to the output module 36, configured to determine an enabled state of the input control signal; and an output module 36 configured to be in the determining module When the output result is YES, the encoded data is inserted into a specified position of the pre-encoding data stream and output; and when the output result of the judging module is NO, the input data is directly output. In a preferred implementation process, as shown in FIG. 4, the encoder may further include: a serial processing module 38 coupled to the encoding module 32, configured to determine, at the determining module 34, whether to insert the encoded data into the pre-encoding data stream. Before the designated position, the encoded predetermined parallel number of road data is serially processed in units of a predetermined number of code words. In a preferred implementation process, as shown in FIG. 4, the encoder may further include: a zero padding module 40, connected to the dividing module 30, configured to input the input data before being divided into parallel predetermined numbers of road data. The data is zero-filled at a specified location in the data stream. In a preferred implementation, as shown in FIG. 4, the encoder may further include: a zeroing module 42 connected between the judging module 34 and the serial processing module 38, and configured to perform a predetermined number of data to be paralleled. After the serial processing, the data obtained after the serial processing is subjected to de-zero processing. In order to better understand the above embodiments, the following detailed description will be specifically made with reference to specific examples and related drawings. Example 2 This example uses the optical channel transport unit (OTU) frame format and RS (255, 239) specified in Annex A of the G709 protocol as an example. As shown in FIG. 5, the RS code encoder includes the following processing units: a zero padding unit 50 (corresponding to the zero padding module 40), a data interleaving unit 52 (corresponding to the dividing module 30), and a parallel encoding unit 54 (corresponding to the encoding module 32). The data deinterleaving unit 56 (corresponding to the serial processing module 38), the zeroing unit 58 (corresponding to the zeroing module 42), and the data splicing unit 60 (corresponding to the judging module 34 and the output module 36). This example is described in detail by taking two codewords in parallel for each beat as an example. Figure 6 shows the bit width of each of the above processing units when the data stream passes through the RS code encoder. The zero-padding unit 50 is set to perform zero-padding operation on the input data, and is configured to be processed into integer beat data. As shown in FIG. 7, the numbers in FIG. 7 represent the number of clock beats, and the frame structure is 1 sub-line 4080. Byte, where the check word is 256 bytes. The parity information of each sub-coding unit is 16 bytes, and each clock cycle data is 256 bits. Then each sub-row occupies 120 cycles of payload data (including 128 bits of zero padding) and 8 cycles of parity data. 128 bits are padded at the 0th, 128th, 256th, and 384th cycles, respectively, and sent to the subsequent processing unit along with the valid data. The data after zero padding can be set to 0 at the period corresponding to the check data, and the check data is inserted for the subsequent data splicing module. The data interleaving unit 52 is configured to perform interleaving processing on the zero-padded data in units of a single codeword, and output n (n is a positive integer) channel data in parallel; as shown in FIG. 8, the information bits are sequentially alternated before encoding. The 16 sub-coding units are fed, and when the encoding is completed, the columns are sequentially read in order of priority. It is assumed that the input 256-bit data is written in the form of a single codeword as B0, B1, ..., B31. The function of the data interleaving unit is to divide the input 256-bit data into 16 channels and enter 16 RS sub-coding units respectively, that is, B0 and B16 are sent to the sub-encoding unit sub_0; B1 and B17 are sent to the sub-encoding unit sub_l B15, and B31 sends the sub-encoding. Unit sub_15. The parallel encoding unit 54 implements parallel encoding of the input interleaved data, and the specific implementation includes the following steps: (1) calculating the matrix coefficient G2 according to the code generation polynomial; (2) obtaining the parallel encoding expression according to the matrix coefficient and the input information. In step (1), the generator polynomial may be listed according to the specific RS pattern, and then the generator matrix is used to generate the generator matrix. The number of codewords encoded in parallel by each beat in the parallel coding unit 54 is the multiplication of the matrix factor g. Number of squares. Specifically, as shown in Table 1, the matrix coefficient G 2 of the finite field RS parallel coding calculated according to the RS (255, 239) code generation polynomial;
表 1Table 1
步骤 (2)中, 设并行输入的 2 个信息码字为: a0,al, t 时刻寄存器内容为 C(t)=[cl5,cl4,cl3,...,cl,cO]T, t+1时刻寄存器内容为 C(t+l)=[C15,C14,C13,...,C1,C0]T, 将的步骤 (1)计算得出的矩阵系数 G2代入公式③中, 即可得出 G2并行编码表达式, 如 下所示: In step (2), it is assumed that the two information code words input in parallel are: a0, al, t The time register contents are C(t)=[cl5,cl4,cl3,...,cl,cO] T , t+ The time register content is C(t+l)=[C15,C14,C13,...,C1,C0] T , and the matrix coefficient G 2 calculated in step (1) is substituted into formula 3, Get the G 2 parallel encoding expression as follows:
2 15 = 0,1 2 15 = 0,1
!=0 !=0
!. ® (at c15—! )) c _2 , = 2,3,4,5,· -·,15 ! ® (a t c 15 —! )) c _ 2 , = 2,3,4,5,· -·,15
④ 如上的④式中, 是矩阵 G2第 j行第 i个元素, ®为有限域乘法器, @为有限域 加法器。 这样经过 120个时钟周期后寄存器的内容 C15,C14,C13,...,C1,C0就是 RS码 编码得到的校验位。 补零后, 输入信息为 [a0,al,...,a239], 经过 RS编码器后, RS码最 后的输出码字为 [a0,al,...,a239,C15,C14,C13,...,Cl,C0]。 数据解交织单元 56,设置为对编码后的数据进行解交织处理,按单个码字为单位, 将并行输入的 n路编码数据串行输出; 解交织的过程与交织过程相反。 假定 sub_0输 出的 16位数据写成字节形式为 A0,A1, sub_l输出的 16位数据为 A2,A3, 依次类推, sub_15 输出的 16 位数据为 A30,A31。 那么, 解交织后依次输出序列为: A0, A2, A4, ...A30, Al, A3, A5,...A31。 去零单元 58, 设置为对数据解交织单元 56出来的数据进行去零处理, 去掉编码 前插入的零; 如图 7所示, 分别在第 0、 128、 256、 384周期时去掉之前所补的 128 位零, 有效的信息数据还原为补零前的样子, 去零过程中所产生的缺口直接放在数据 帧的最后。 数据拼接单元 60, 设置为根据输入控制信号的状态, 来决定是否将编码后的数据 顺序插入到编码前码流的指定位置, 是否输出完整的编码结果。 如图 8所示, 如果编 码使能信号有效,则将解交织后的编码数据填入校验数据部分(例如,第一行中的 120 至 127, 第二行中的 248至 255等), 与输入的信息数据拼接按照帧格式完整输出; 反 之, 如果编码使能信号无效, 则在校验数据部分填零, 直接将输入的信息数据按照帧 格式输出。 上述实例只是针对光传输领域 RS (255, 239)码每拍并行处理 2个码字的并行编 码器所做的具体实施说明, 特别地, 正如公式③所示, 本实例所阐述的并行 RS编码 器可以并行处理 m个码字 (m的范围区间从 1到 16), 如表 2所示, 列举了不同实施 方式时并行 RS编码器的相关信息, 包括输入数据位宽、 并行处理码字数、 补零数及 并行编码耗时等。 相应地, 随着每拍并行处理的码字越多, 则计算越繁琐, 实现越复 杂, 但所耗的编码时间越短, 编码效率越高, 需要根据实际情况来权衡。 4 In the above formula 4, it is the i-th element of the jth row of the matrix G 2 , the ® is a finite field multiplier, and @ is a finite field adder. Thus, after 120 clock cycles, the contents of the register C15, C14, C13, ..., C1, C0 are the parity bits obtained by the RS code encoding. After zero padding, the input information is [a0,al,..., a 239]. After passing through the RS encoder, the last output codeword of the RS code is [a0,al,...,a239,C15,C14,C13 ,...,Cl,C0]. The data deinterleaving unit 56 is configured to perform deinterleaving processing on the encoded data, and serially output n pieces of encoded data input in parallel in units of a single codeword; the process of deinterleaving is opposite to the interleaving process. It is assumed that the 16-bit data output by sub_0 is written in byte form as A0, A1, sub_l output 16-bit data is A2, A3, and so on, and the 16-bit data output by sub_15 is A30, A31. Then, after deinterleaving, the output sequences are sequentially: A0, A2, A4, ... A30, Al, A3, A5, ... A31. The de-zeroing unit 58 is configured to perform de-zero processing on the data from the data deinterleaving unit 56, and remove the zero inserted before the encoding; as shown in FIG. 7, respectively, before the 0th, 128th, 256th, and 384th cycles are removed, The 128-bit zero, the valid information data is restored to the state before zero-padding, and the gap generated during the zero-cut process is placed directly at the end of the data frame. The data splicing unit 60 is configured to determine whether to insert the encoded data into the specified position of the pre-encoding stream and output the complete encoding result according to the state of the input control signal. As shown in FIG. 8, if the code enable signal is valid, the deinterleaved coded data is filled in the check data portion (for example, 120 to 127 in the first row, 248 to 255 in the second row, etc.), The input information data is spliced in accordance with the frame format to be completely output; conversely, if the code enable signal is invalid, the verification data portion is filled with zeros, and the input information data is directly output according to the frame format. The above example is only a specific implementation description for a parallel encoder that processes two codewords in parallel in the optical transmission domain RS (255, 239) code. In particular, as shown in Equation 3, the parallel RS coding described in this example The device can process m codewords in parallel (the range of m ranges from 1 to 16). As shown in Table 2, the related information of the parallel RS encoder in different embodiments is listed, including the input data bit width, the number of parallel processed code words, Zero and zero Parallel encoding takes time and so on. Correspondingly, as more codewords are processed in parallel for each beat, the more complicated the calculation, the more complicated the implementation, but the shorter the encoding time consumed, the higher the encoding efficiency, and the trade-offs need to be based on actual conditions.
表 2Table 2
从以上的描述中, 可以看出, 本发明实现了如下技术效果: 通过本发明, 在 RS编码时采用并行编码的技术手段, 解决了相关技术中, 编码 效率不高, 数据的吞吐率也不大, 不利于整个系统传输速率的提高等问题, 进而达到 了有效提高编码效率和数据吞吐率的效果, 同时, 对整个系统的传输速率也有良好的 促进效果。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所 组成的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现, 从而, 可以 将它们存储在存储装置中由计算装置来执行, 并且在某些情况下, 可以以不同于此处 的顺序执行所示出或描述的步骤, 或者将它们分别制作成各个集成电路模块, 或者将 它们中的多个模块或步骤制作成单个集成电路模块来实现。 这样, 本发明不限制于任 何特定的硬件和软件结合。 以上仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技术人 员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的任何 修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。 From the above description, it can be seen that the present invention achieves the following technical effects: By the present invention, the technical means of parallel coding is adopted in the RS coding, and the related art is solved, the coding efficiency is not high, and the data throughput rate is not Large, is not conducive to the improvement of the transmission rate of the entire system, and thus achieves the effect of effectively improving the coding efficiency and data throughput rate, and at the same time, has a good promotion effect on the transmission rate of the entire system. Obviously, those skilled in the art should understand that the above modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed over a network composed of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device, such that they may be stored in the storage device by the computing device and, in some cases, may be different from the order herein. Perform the steps shown or described, or separate them into individual integrated circuit modules, or Multiple of these modules or steps are fabricated as a single integrated circuit module. Thus, the invention is not limited to any specific combination of hardware and software. The above are only the preferred embodiments of the present invention, and are not intended to limit the present invention, and various modifications and changes can be made to the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and scope of the present invention are intended to be included within the scope of the present invention.
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201110165850.3 | 2011-06-20 | ||
| CN201110165850.3A CN102231631B (en) | 2011-06-20 | 2011-06-20 | The coding method of RS encoders and RS encoders |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2012174933A1 true WO2012174933A1 (en) | 2012-12-27 |
Family
ID=44844174
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2012/074127 Ceased WO2012174933A1 (en) | 2011-06-20 | 2012-04-16 | Rs encoder and encoding method thereof |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN102231631B (en) |
| WO (1) | WO2012174933A1 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020074366A1 (en) | 2018-10-09 | 2020-04-16 | The European Union, Represented By The European Commission | Transmission of satellite navigation message into multiple pages encoded for optimal retrieval at receiver in a fully interchangeable way |
| CN112286449A (en) * | 2020-10-16 | 2021-01-29 | 山东云海国创云计算装备产业创新中心有限公司 | RS erasure processing equipment and distributed storage system |
| CN114205052A (en) * | 2021-11-09 | 2022-03-18 | 深圳市紫光同创电子有限公司 | Bit displacement processing method and device based on RS coding blind synchronization |
| RU2776780C1 (en) * | 2018-10-09 | 2022-07-26 | Европейский Союз, Представленный Европейской Комиссией | Method and system for optimized transmission of satellite navigation messages |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102231631B (en) * | 2011-06-20 | 2018-08-07 | 深圳市中兴微电子技术有限公司 | The coding method of RS encoders and RS encoders |
| US8949703B2 (en) * | 2012-03-26 | 2015-02-03 | Xilinx, Inc. | Parallel encoding for non-binary linear block code |
| CN103716115B (en) * | 2012-09-28 | 2017-10-10 | 中兴通讯股份有限公司 | Time-multiplexed FEC coding methods and device |
| CN104734815B (en) * | 2015-04-08 | 2018-01-23 | 烽火通信科技股份有限公司 | The Hardware Implementation and system of high-throughput FEC encoder in OTN system |
| CN105577325B (en) * | 2015-12-25 | 2019-07-09 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | A kind of parallel processing interleaver applied to orthogonal frequency division multiplex transmission system |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2473090A1 (en) * | 2000-06-28 | 2001-12-28 | Trw Inc. | Parallel punctured convolutional encoder |
| US20100011277A1 (en) * | 2008-07-10 | 2010-01-14 | Poeppelman Alan D | Adjustable error-correction for a reed solomon encoder/decoder |
| CN101667887A (en) * | 2009-09-02 | 2010-03-10 | 中兴通讯股份有限公司 | Encoding method and device thereof and decoding method and device thereof |
| CN102231631A (en) * | 2011-06-20 | 2011-11-02 | 中兴通讯股份有限公司 | Encoding method for Reed-Solomon (RS) encoder and RS encoder |
| CN102468856A (en) * | 2010-11-09 | 2012-05-23 | 中国电子科技集团公司第五十四研究所 | High speed parallel concatenated code coder decoder |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100920738B1 (en) * | 2002-10-19 | 2009-10-07 | 삼성전자주식회사 | Transmission apparatus and method of digital broadcasting system with different error correction coding process according to communication environment |
| CN101150719B (en) * | 2006-09-20 | 2010-08-11 | 华为技术有限公司 | Method and device for parallel video coding |
| CN101192833B (en) * | 2006-11-28 | 2011-12-07 | 华为技术有限公司 | A device and method for low-density checksum LDPC parallel coding |
| CN100557983C (en) * | 2007-10-22 | 2009-11-04 | 清华大学 | A quasi-cyclic low-density parity-check code encoder and check bit generation method |
| CN101394392B (en) * | 2008-11-12 | 2012-11-07 | 北京邮电大学 | Signal diversifying method for OFDM system |
| CN101938282B (en) * | 2009-07-01 | 2013-03-20 | 中兴通讯股份有限公司 | LTE (Long Term Evolution) Turebo encoder parallel processing device and method |
| CN102035557B (en) * | 2009-09-27 | 2013-02-27 | 中兴通讯股份有限公司 | Method and device for interweaving turbo codes in parallel |
| CN102098061B (en) * | 2009-12-15 | 2014-09-17 | 上海贝尔股份有限公司 | Parallel Turbo coder |
| CN101867451B (en) * | 2010-06-02 | 2012-11-07 | 北京邮电大学 | Multi-user network coding communication method with high-speed parallel encoding and decoding structure |
-
2011
- 2011-06-20 CN CN201110165850.3A patent/CN102231631B/en active Active
-
2012
- 2012-04-16 WO PCT/CN2012/074127 patent/WO2012174933A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2473090A1 (en) * | 2000-06-28 | 2001-12-28 | Trw Inc. | Parallel punctured convolutional encoder |
| US20100011277A1 (en) * | 2008-07-10 | 2010-01-14 | Poeppelman Alan D | Adjustable error-correction for a reed solomon encoder/decoder |
| CN101667887A (en) * | 2009-09-02 | 2010-03-10 | 中兴通讯股份有限公司 | Encoding method and device thereof and decoding method and device thereof |
| CN102468856A (en) * | 2010-11-09 | 2012-05-23 | 中国电子科技集团公司第五十四研究所 | High speed parallel concatenated code coder decoder |
| CN102231631A (en) * | 2011-06-20 | 2011-11-02 | 中兴通讯股份有限公司 | Encoding method for Reed-Solomon (RS) encoder and RS encoder |
Non-Patent Citations (1)
| Title |
|---|
| LONG, ZHAOHUA ET AL.: "Design of error-correcting code based on RS-CC and its embedded implementation over FPGA", COMPUTER ENGINEERING AND DESIGN, vol. 30, no. 23, December 2009 (2009-12-01), pages 5369 - 5371 * |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020074366A1 (en) | 2018-10-09 | 2020-04-16 | The European Union, Represented By The European Commission | Transmission of satellite navigation message into multiple pages encoded for optimal retrieval at receiver in a fully interchangeable way |
| JP2022511155A (en) * | 2018-10-09 | 2022-01-31 | ザ ヨーロピアン ユニオン、リプレゼンテッド バイ ザ ヨーロピアン コミッション | Sending satellite navigation messages to multiple pages encoded for optimal recovery in the receiver in a fully interchangeable way |
| RU2776780C1 (en) * | 2018-10-09 | 2022-07-26 | Европейский Союз, Представленный Европейской Комиссией | Method and system for optimized transmission of satellite navigation messages |
| US11448772B2 (en) | 2018-10-09 | 2022-09-20 | The European Union, Represented By The European Commission | Transmission of satellite navigation message into multiple pages encoded for optimal retrieval at receiver in a fully interchangeable way |
| JP7201696B2 (en) | 2018-10-09 | 2023-01-10 | ザ ヨーロピアン ユニオン、リプレゼンテッド バイ ザ ヨーロピアン コミッション | Transmission of satellite navigation messages in multiple pages encoded for optimal recovery at the receiver in a fully interchangeable manner |
| CN112286449A (en) * | 2020-10-16 | 2021-01-29 | 山东云海国创云计算装备产业创新中心有限公司 | RS erasure processing equipment and distributed storage system |
| CN112286449B (en) * | 2020-10-16 | 2023-04-25 | 山东云海国创云计算装备产业创新中心有限公司 | RS erasure processing equipment and distributed storage system |
| CN114205052A (en) * | 2021-11-09 | 2022-03-18 | 深圳市紫光同创电子有限公司 | Bit displacement processing method and device based on RS coding blind synchronization |
| CN114205052B (en) * | 2021-11-09 | 2023-03-24 | 深圳市紫光同创电子有限公司 | Bit displacement processing method and device based on RS coding blind synchronization |
Also Published As
| Publication number | Publication date |
|---|---|
| CN102231631A (en) | 2011-11-02 |
| CN102231631B (en) | 2018-08-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2012174933A1 (en) | Rs encoder and encoding method thereof | |
| CN100589328C (en) | A Reed-Solomon Code Decoder | |
| CN101478314B (en) | Reed-solomon coder-decoder and decoding method thereof | |
| CN102170327B (en) | Super forward error correction hardware decoding method and apparatus thereof | |
| CN112468161B (en) | A kind of RS high-speed encoding circuit | |
| WO2011026375A1 (en) | Methods and devices for encoding and decoding | |
| CN101686104B (en) | Coding and decoding method for forward error correction, device and system thereof | |
| WO2010135942A1 (en) | Method and device for fast cyclic redundancy check coding | |
| CN105553485B (en) | BCH coding and decoding device and its decoding method based on FPGA | |
| US20190190653A1 (en) | Decomposable forward error correction | |
| CN101277119A (en) | Reed Solomon code decoder hardware multiplexing method and its low hardware complexity decoding device | |
| CN104639294A (en) | An Improved CRC Checking Implementation Method | |
| CN106549677A (en) | High-speed parallel BCH code decoding method and device | |
| CN101969358B (en) | High-speed parallel RS decoding method for space communication | |
| CN109245775B (en) | Decoder and method for realizing decoding | |
| WO2009129675A1 (en) | A decoding method and device for reed-solomon code | |
| Lee et al. | A high-speed low-complexity concatenated BCH decoder architecture for 100 Gb/s optical communications | |
| CN112468160B (en) | Parallel circuit based on money search algorithm and Funi algorithm | |
| CN100546206C (en) | A circuit and method for realizing decoding | |
| CN102075199B (en) | Implementation method and device for reed-salomon (RS) decoding | |
| CN100417031C (en) | Method of realizing Reed Solomen convolution code in broadband radio insertion system | |
| CN111600613A (en) | A verification method, device, decoder, receiver and computer storage medium | |
| CN103944589B (en) | A BCH encoding and decoding method and device | |
| CN102546109B (en) | RS (Reed-Solomon) decoding device and method for 10G Ethernet Passive Optical Network (EPON) | |
| CN103117752B (en) | CCSDS system high-speed walks abreast RS encoder and coding method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12803121 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 12803121 Country of ref document: EP Kind code of ref document: A1 |