Method, device and chip for probabilistic constellation shaping coding and decoding
By using a multi-dimensional probabilistic constellation shaping coding method, the problem of increased complexity and power consumption when the code length is long is solved, and high-performance and low-complexity communication system transmission is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2026-03-31
AI Technical Summary
Existing probabilistic constellation integer coding exhibits rapid increases in complexity with longer code lengths, leading to increased power consumption and making it difficult to control complexity while maintaining high performance.
A multi-dimensional probabilistic constellation shaping coding method is adopted. By dividing the input data into multiple dimensions and performing probabilistic constellation shaping coding on each dimension, the number of coding times is increased to reduce the probability of the symbol amplitude bits mapped to the outer constellation points, thereby improving performance and reducing average power.
While maintaining high performance, the coding complexity and power consumption were reduced. Multi-dimensional block coding reduced the average power and improved the transmission performance of the communication system.
Smart Images

Figure CN121770529A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a method, apparatus and chip for performing probabilistic constellation shaping encoding and decoding. Background Technology
[0002] In the field of communications, to improve the transmission performance of communication systems, probabilistic constellation shaping (PCS) coding is used to change the probability distribution of constellation points to obtain gain and reduce the average power of the signal. In PCS coding, enumerative sphere shaping (ESS) technology is employed to implement probabilistic constellation shaping encoding. The starting point of ESS technology is to enumerate the weight sequence corresponding to the code length from low to high, thereby establishing a mapping relationship between the input data and the output coded data, thus changing the probability distribution of constellation points. Here, the "weight" in the weight sequence refers to the number of "1"s.
[0003] At the same code rate, the longer the code length of the output encoded data, the better the transmission performance of the communication system. However, with a longer code length, the number of bits that need to be stored also increases, which increases the complexity of PCS encoding. Moreover, the increase in complexity is non-linear with the increase in code length, meaning that the complexity increases significantly with longer code lengths, resulting in a sharp increase in power consumption. Therefore, a PCS encoding scheme is needed. Summary of the Invention
[0004] This application provides a method, apparatus, and chip for probabilistic constellation integer encoding and decoding, offering a low-complexity, high-performance probabilistic constellation integer encoding method. The technical solution adopted is as follows:
[0005] In a first aspect, this application provides a method for performing probabilistic constellation integer encoding. The method includes performing probabilistic constellation integer encoding on a first block of data to obtain first encoded data, wherein the first block of data belongs to the first group of first-dimensional data in N-dimensional data, the N-dimensional data is obtained based on input data, and N is greater than or equal to 2. Performing probabilistic constellation integer encoding on the i-th block of data to obtain i-th encoded data, wherein the i-th block of data includes one bit of the (i-1)-th encoded data and target block data, the target block data belongs to the first group of i-dimensional data in N-dimensional data, and i takes values from 2 to N.
[0006] In the scheme shown in this application, the input data is encoded using multi-dimensional probabilistic constellation shaping. Each dimension of the data is divided into at least one group of data. Probabilistic constellation shaping is performed on the blocks of data in each group. When performing probabilistic constellation shaping on the i-th dimension of each group of data, probabilistic constellation shaping is performed again on the encoded data of the (i-1)-th dimension. This increases the number of probabilistic constellation shaping operations, which reduces the probability of the amplitude bits of the symbols mapped to the outer constellation points and increases the probability of the amplitude bits of the symbols mapped to the inner constellation points when mapping to encoded data of a specified length. This reduces the average power and improves performance.
[0007] In one alternative approach, probabilistic constellation integer encoding is performed on the input data in two dimensions, where N equals 2. The first set of data in the first dimension is located in the first column of the input data, which can be any column. The i-th block of data is the second block of data, which includes one bit from the first encoded data and the target block of data. The first set of data in the i-th dimension is located in the first row of the input data, which can be any row. In this embodiment, "row" and "column" are two relative concepts; "row" can also be interpreted as "column," and "column" can also be interpreted as "row."
[0008] In one alternative approach, the bit in the first encoded data is located at the intersection of the first row and the first column. This is equivalent to performing probabilistic constellation integer encoding by column first, and then performing probabilistic constellation integer encoding by row.
[0009] In one alternative approach, the N-dimensional data also includes a second set of first-dimensional data, located in the second column of the input data. The third block of data belongs to this second set of first-dimensional data. Probabilistic constellation integer encoding is performed on the third block of data to obtain the third encoded data. The second block of data also includes one bit from the third encoded data. This is equivalent to performing probabilistic constellation integer encoding on the blocks of data in different columns of the first dimension, rather than encoding them together, thus reducing the encoding complexity.
[0010] In one alternative approach, for ease of probabilistic constellation integer coding, the second column is adjacent to the first column.
[0011] In one alternative approach, in order to quickly obtain the first and third blocks of data from the input data, the third block of data is located after the first block of data and is adjacent to the first block of data. This is equivalent to obtaining the first and third blocks of data from the input data sequentially, thus enabling the rapid acquisition of the first and third blocks of data.
[0012] In one alternative approach, to reduce the number of shaper categories, if the lengths of the first and third data blocks are the same, the lengths of the first and third encoded data are also the same. This ensures that the lengths of the data before and after encoding are the same, allowing the first and third encoded data to use the same type of shaper.
[0013] In one alternative approach, to ensure that the input data lengths of each shaper are balanced, the length difference between the first and third data blocks is less than the target value. For example, the target value may be an empirical value, such as 4.
[0014] In one alternative approach, the sum of the lengths of the N dimensions of data is the first length, which is determined by the second length, which is the length of the encoded data obtained by performing probabilistic constellation integer encoding on the N dimensions of data.
[0015] In one alternative approach, the first length is determined based on one or more of the second length, the overhead of forward error correction (FEC) processing, and spectral efficiency, where spectral efficiency is the spectral efficiency resulting from constellation-shaping coding.
[0016] In one alternative approach, the second length is determined based on the performance metrics of the system to which the method is applied and the complexity of performing probabilistic constellation integer coding.
[0017] Secondly, this application provides a method for probabilistic constellation integer decoding, the method comprising: performing probabilistic constellation integer decoding on the i-th encoded data to obtain the i-th block data, wherein the i-th block data includes one bit of the (i-1)-th encoded data and target block data, the target block data belonging to the first group of i-th dimension data in N-dimensional data, i taking values from 2 to N; performing probabilistic constellation integer decoding on the first encoded data to obtain the first block data, wherein the first block data belongs to the first group of first-dimensional data in N-dimensional data, and the target block data and the first group of first-dimensional data belong to output data.
[0018] In the scheme shown in this application, the probabilistic constellation integer decoding process is the reverse process of the probabilistic constellation integer encoding process. The probabilistic constellation integer decoding process is performed dimension by dimension from the Nth dimension to the first dimension, and finally the output data is obtained.
[0019] In one alternative approach, the input data is processed by probabilistic constellation integer encoding in two dimensions, where N equals 2, the i-th block of data is the second block of data, the target block of data is in the first row of the output data, and the first block of data is in the first column of the output data.
[0020] In one alternative approach, when performing probabilistic constellation integer encoding, the second block of data also includes a bit from the third encoded data. Then, when performing probabilistic constellation integer decoding, the third encoded data is subjected to probabilistic constellation integer decoding to obtain the third block of data. The third block of data belongs to the second column of the output data, thus obtaining the complete output data.
[0021] Thirdly, this application provides a method for performing probabilistic constellation integer encoding, the method comprising: performing a first probabilistic constellation integer encoding process on a first block of input data to obtain intermediate data, wherein the first column of the intermediate data includes encoded data obtained by performing the first probabilistic constellation integer encoding process on the first block of data, and the intermediate data also includes a portion of the input data that is not subjected to the first probabilistic constellation integer encoding process; and performing a second probabilistic constellation integer encoding process on the intermediate data row by row to obtain output data.
[0022] In the scheme shown in this application, the input data is divided into column data and row data. The column data undergoes a first probabilistic constellation shaping encoding process to obtain intermediate data, which includes the row data from the input data. The row data is not subjected to the first probabilistic constellation shaping encoding process. Then, the intermediate data undergoes a second probabilistic constellation shaping encoding process row-wise to obtain the output data. Thus, while performing the second probabilistic constellation shaping encoding process row-wise, the column data is also subjected to probabilistic constellation shaping encoding again, increasing the number of probabilistic constellation shaping encoding operations. This reduces the probability of amplitude bits mapped to symbols at outer constellation points and increases the probability of amplitude bits mapped to symbols at inner constellation points when obtaining encoded data of a specified length, thereby reducing average power and improving performance.
[0023] In one alternative approach, the input data is divided into multiple columns, with multiple first blocks of data. These first blocks are then subjected to a first probabilistic constellation shaping encoding process to obtain intermediate data. The intermediate data comprises multiple columns of encoded data obtained from the first probabilistic constellation shaping encoding process on the multiple first blocks of data. The encoded data obtained from the first probabilistic constellation shaping encoding process on different first blocks of data belong to different columns. Thus, when obtaining a specified performance index, because the first probabilistic constellation shaping encoding process is performed column-by-column, the complexity of performing probabilistic constellation shaping encoding on the column data can be reduced. When obtaining a specified complexity, because the first probabilistic constellation shaping encoding process is performed column-by-column, it is equivalent to increasing the number of probabilistic constellation shaping encoding processes, reducing the probability of amplitude bits of symbols mapped to outer constellation points, and increasing the probability of amplitude bits of symbols mapped to inner constellation points, thereby reducing average power and improving performance.
[0024] Fourthly, this application provides a method for performing probabilistic constellation integer decoding, the method comprising: performing a first probabilistic constellation integer decoding process on input data row by row to obtain intermediate data, wherein the first column of the intermediate data includes first encoded data obtained by performing a first probabilistic constellation integer encoding process on a first block of data, and the intermediate data also includes data that has not undergone the first probabilistic constellation integer encoding process; and performing a second probabilistic constellation integer decoding process on the intermediate data to obtain output data.
[0025] In the scheme shown in this application, the probabilistic constellation integer decoding process is the reverse process of the probabilistic constellation integer encoding process. First, probabilistic constellation integer decoding is performed by row, and then probabilistic constellation integer decoding is performed by column to finally obtain the output data.
[0026] In one alternative approach, the intermediate data includes encoded data obtained by performing first probability constellation integer encoding on multiple first blocks of data, with the encoded data obtained by performing first probability constellation integer encoding on different first blocks of data belonging to different columns.
[0027] Fifthly, this application provides a probabilistic constellation shaping encoder, including an input interface, at least one column shaper, multiple row shapers, and an output interface; a first branch of the input interface is connected to the input terminal of at least one column shaper; a second branch of the input interface and the output terminal of at least one column shaper are connected to the input terminals of multiple row shapers; the output terminals of the multiple row shapers are connected to the output interface.
[0028] In the scheme shown in this application, the column shaper is a shaper that is input according to column bits, that is, the input data of the column shaper is arranged in columns, and the row shaper is a shaper that is input according to row bits, that is, the input data of the row shaper is arranged in rows.
[0029] In a probabilistic constellation shaping encoder, one branch of the input interface is connected to the input of a column shaper, and the output of the column shaper and another branch of the input interface are connected to the inputs of multiple row shapers. This allows part of the data input from the input interface to enter the column shaper, and another part to enter the row shaper. The encoded data output by the column shaper then enters the row shaper and undergoes probabilistic constellation shaping encoding together with the other part of the data. This increases the number of probabilistic constellation shaping encoding operations, which reduces the probability of amplitude bits of symbols mapped to outer constellation points and increases the probability of amplitude bits of symbols mapped to inner constellation points when obtaining encoded data of a specified length. This reduces the average power and improves performance.
[0030] In one alternative approach, when multiple row shapers have row shapers with the same input length, the output data of these row shapers with the same input length is of the same length, thereby reducing the number of row shaper categories.
[0031] In a sixth aspect, this application provides a probabilistic constellation shaping decoder, including an input interface, a plurality of row deshapers, at least one column deshaper, and an output interface. The input interface is connected to the input terminals of the plurality of row deshapers, the plurality of row deshapers are connected to the input terminals of the at least one column deshaper, and are connected to a first branch of the output interface. The at least one column deshaper is connected to a second branch of the output interface.
[0032] In the scheme shown in this application, the probabilistic constellation integer decoding process is the reverse process of the probabilistic constellation integer encoding process. The probabilistic constellation integer decoder corresponds to the probabilistic constellation integer encoder. For the beneficial effects, please refer to the description of the probabilistic constellation integer encoder, which will not be repeated here.
[0033] In one alternative approach, when there are row deshapers with the same input length among the plurality of row deshapers, the output data of the row deshapers with the same input length has the same length, thereby reducing the number of row deshapers.
[0034] Seventhly, this application provides a method for performing probabilistic constellation integer coding, the method comprising: for the first dimension among N dimensions, performing probabilistic constellation integer coding on the first dimension data to be encoded in the input data to obtain the encoded data of the first dimension, where N is greater than or equal to 2; for the i-th dimension among N dimensions, performing probabilistic constellation integer coding on the i-th dimension data to be encoded and the encoded data of the (i-1)-th dimension in blocks to obtain the encoded data of the i-th dimension, where i takes values from 2 to N; and outputting the encoded data of the N-th dimension, where the encoded data of the N-th dimension is the encoded data corresponding to the input data.
[0035] In the scheme presented in this application, when performing probabilistic constellation shaping encoding, the input data is divided into N dimensions to be encoded. The first dimension is encoded separately, while the other dimensions are encoded in blocks along with the encoded data from the previous dimension. The final encoded data is obtained after the last dimension's probabilistic constellation shaping encoding is completed. This method divides the data into multiple dimensions and performs probabilistic constellation shaping encoding on each dimension, while also using the encoded data from the previous dimension. This is equivalent to dividing the data into multiple smaller parts for probabilistic constellation shaping encoding. When achieving the specified performance metrics, the complexity of performing multiple probabilistic constellation shaping encodings remains low, thus reducing the overall complexity. At the specified complexity, increasing the number of probabilistic constellation shaping encodings effectively reduces the probability of amplitude bits mapped to outer constellation points and increases the probability of amplitude bits mapped to inner constellation points, thereby reducing average power and improving performance.
[0036] In one alternative approach, the second length is determined based on the performance metrics of the system to which the method is applied and the complexity of performing probabilistic constellation shaping encoding; the second length is the length of the encoded data in the Nth dimension.
[0037] In one alternative approach, the first length is determined based on one or more of a second length, the overhead of FEC processing, and spectral efficiency, where spectral efficiency is the spectral efficiency resulting from constellation-shaping coding, and the first length is the length of the input data.
[0038] In one alternative approach, the first-dimensional data to be encoded is sequentially divided into multiple first sub-blocks, and probabilistic constellation integer encoding is performed on each of these first sub-blocks to obtain the encoded data for the first dimension. This results in the data to be encoded being divided into more parts.
[0039] In one alternative approach, the encoded data of dimension i-1 and the data of dimension i to be encoded are sequentially divided into multiple second sub-blocks. Each of these second sub-blocks is then subjected to probabilistic constellation integer encoding to obtain the encoded data of dimension i. This sequential division of the data facilitates management.
[0040] In one alternative approach, for the j-th dimension among N dimensions, the data to be encoded in the j-th dimension is divided into multiple sub-blocks, and the length difference between the multiple sub-blocks is less than or equal to the target value. Wherein, when j equals 1, the data to be encoded in the first dimension includes the data to be encoded in the first dimension. When j is greater than 1 and less than or equal to N, the data to be encoded in the j-th dimension includes the data to be encoded in the j-th dimension and the encoded data in the (j-1)-th dimension.
[0041] In one alternative approach, in order to quickly distribute data of the first length into data of multiple dimensions, in the data of the first length, the data of the i-th dimension to be encoded is adjacent to the data of the (i-1)-th dimension to be encoded, and is located after the data of the (i-1)-th dimension to be encoded.
[0042] In one alternative approach, to reduce implementation complexity, the same shaper is used as much as possible. Therefore, when there are sub-blocks of the same length in multiple sub-blocks, the same shaper is used when performing probabilistic constellation shaping encoding on sub-blocks of the same length, and the encoded length is the same.
[0043] Eighthly, this application provides a method for performing probabilistic constellation integer decoding, the method comprising: performing probabilistic constellation integer decoding on the coded data of the i-th dimension in N dimensions to obtain the coded data of the (i-1)-th dimension and the decoded data of the i-th dimension, where i takes the value from 2 to N; performing probabilistic constellation integer decoding on the coded data of the first dimension in N dimensions to obtain the decoded data of one dimension; and outputting the decoded data of N dimensions.
[0044] In the scheme shown in this application, the probabilistic constellation integer decoding process is the reverse process of the probabilistic constellation integer encoding process. The probabilistic constellation integer decoding process is performed dimension by dimension from the Nth dimension to the first dimension, and finally the output data is obtained.
[0045] In one alternative approach, the length of the encoded data in the Nth dimension is determined based on the performance metrics of the system to which the method is applied and the complexity of performing probabilistic constellation integer coding.
[0046] In one alternative approach, in order to quickly distribute the encoded data of the i-th dimension into multiple sub-blocks, the encoded data of the i-th dimension is sequentially distributed into multiple encoded sub-blocks, and probabilistic constellation integer decoding is performed on each of the multiple encoded sub-blocks to obtain the encoded data of the (i-1)-th dimension and the decoded data of the i-th dimension.
[0047] In one alternative approach, the encoded data of the first dimension is sequentially distributed into multiple sub-blocks, and probabilistic constellation integer decoding is performed on each of the sub-blocks to obtain the first dimension data to be encoded.
[0048] In one alternative approach, to reduce implementation complexity, the same shaper is used as much as possible. In the case of sub-blocks of the same length in multiple encoded sub-blocks, the sub-blocks of the same length will have the same length after probabilistic constellation shaping decoding.
[0049] Ninthly, this application provides a network device including a probabilistic constellation shaping encoder as described in the fifth aspect or any alternative embodiment of the fifth aspect.
[0050] In a tenth aspect, this application provides a network device that includes a probabilistic constellation shaper decoder as described in the sixth aspect or any alternative embodiment of the sixth aspect.
[0051] Eleventhly, this application provides a communication system comprising a first network device and a second network device. The first network device is configured to perform the method described in the first aspect or any optional method of the first aspect, and the second network device is configured to perform the method described in the second aspect or any optional method of the second aspect. Alternatively, the first network device is configured to perform the method described in the third aspect or any optional method of the third aspect, and the second network device is configured to perform the method described in the fourth aspect or any optional method of the fourth aspect. Alternatively, the first network device is configured to perform the method described in the seventh aspect or any optional method of the seventh aspect, and the second network device is configured to perform the method described in the eighth aspect or any optional method of the eighth aspect.
[0052] In a twelfth aspect, this application provides a chip for performing the method described in the first aspect or any optional method of the first aspect, or for performing the method described in the third aspect or any optional method of the third aspect, or for performing the method described in the seventh aspect or any optional method of the seventh aspect.
[0053] In a thirteenth aspect, this application provides a chip that includes the method described in the second aspect or any optional method of the second aspect, or is used to perform the method described in the fourth aspect or any optional method of the fourth aspect, or is used to perform the method described in the eighth aspect or any optional method of the eighth aspect. Attached Figure Description
[0054] Figure 1 This is a schematic diagram illustrating the effect of probabilistic constellation integer coding provided in an exemplary embodiment of this application;
[0055] Figure 2 This is a system architecture diagram of an optical communication system provided in an exemplary embodiment of this application;
[0056] Figure 3 This is a schematic diagram of the structure of a probabilistic constellation shaping encoder provided in an exemplary embodiment of this application;
[0057] Figure 4 This is a schematic diagram of the structure of a probabilistic constellation shaping coding module provided in an exemplary embodiment of this application;
[0058] Figure 5 This is a schematic diagram of the structure of a probabilistic constellation shaping encoder provided in another exemplary embodiment of this application;
[0059] Figure 6 This is a schematic diagram of the structure of a probabilistic constellation shaping decoder provided in an exemplary embodiment of this application;
[0060] Figure 7 This is a schematic diagram of the structure of a probabilistic constellation integer decoding module provided in an exemplary embodiment of this application;
[0061] Figure 8 This is a schematic diagram of the structure of a probabilistic constellation shaping decoder provided in another exemplary embodiment of this application;
[0062] Figure 9 This is a schematic flowchart of a probabilistic constellation integer coding method provided in an exemplary embodiment of this application;
[0063] Figure 10 This is a schematic diagram of the column dimension encoding framework provided in an exemplary embodiment of this application;
[0064] Figure 11 This is a schematic diagram of the column dimension encoding process provided in an exemplary embodiment of this application;
[0065] Figure 12 This is a schematic diagram of a row-dimensional encoding framework provided in an exemplary embodiment of this application;
[0066] Figure 13 This is a schematic diagram of the row dimension encoding process provided in an exemplary embodiment of this application;
[0067] Figure 14 This is a schematic diagram of the column dimension encoding framework provided in another exemplary embodiment of this application;
[0068] Figure 15 This is a schematic diagram of the column dimension encoding process provided in another exemplary embodiment of this application;
[0069] Figure 16 This is a schematic diagram of a row-dimensional encoding framework provided in another exemplary embodiment of this application;
[0070] Figure 17 This is a schematic diagram of the row dimension encoding process provided in another exemplary embodiment of this application;
[0071] Figure 18 This is a schematic flowchart of a probabilistic constellation integer decoding method provided in an exemplary embodiment of this application;
[0072] Figure 19 This is a schematic flowchart of a method for probabilistic constellation integer encoding based on two dimensions, provided in an exemplary embodiment of this application.
[0073] Figure 20 This is a schematic flowchart of a method for probabilistic constellation integer decoding based on two dimensions, provided in an exemplary embodiment of this application.
[0074] Figure 21 This is a schematic flowchart of a method for performing probabilistic constellation shaping encoding provided in another exemplary embodiment of this application;
[0075] Figure 22 This is a schematic flowchart of a method for performing probabilistic constellation integer decoding provided in another exemplary embodiment of this application;
[0076] Figure 23 This is a schematic diagram of the structure of an optical transport network (OTN) device provided in an exemplary embodiment of this application;
[0077] Figure 24 This is a schematic diagram of the structure of an optical module provided in an exemplary embodiment of this application.
[0078] Illustration
[0079] 1. Splitter; 2. Probabilistic constellation integer encoding module; 3. Probabilistic constellation integer decoding module; 4. Combiner; 5. First buffer; 6. Second buffer; 21. Encoding splitting unit; 22. Probabilistic constellation integer encoding unit; 31. Decoding splitting unit; 32. Probabilistic constellation integer decoding unit. Detailed Implementation
[0080] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.
[0081] Probabilistic constellation shaping coding achieves gain by altering the probability distribution of constellation points, thereby reducing the average power of the signal and improving the transmission performance of communication systems. Furthermore, this technique allows for flexible adjustment of the system's transmission rate when the FEC code rate is fixed. Taking quadrature amplitude modulation (QAM) as an example, probabilistic constellation shaping coding is illustrated as follows... Figure 1 As shown, before probabilistic constellation shaping encoding, the "0"s and "1"s in the bitstream are balanced. After probabilistic constellation shaping encoding, the "0"s and "1"s in the bitstream are unbalanced. Therefore, during subsequent symbol mapping, according to the mapping rules, when the amplitude bit is 1, the amplitude of the corresponding symbol is 3; when the amplitude bit is 0, the amplitude of the corresponding symbol is 1. The sign bit determines the positive or negative sign (e.g., in the mapping rule, 01 corresponds to -3, and the 0 on the left is the sign bit), and does not affect the signal power. Thus, a lower amplitude for "±1" results in lower power and a higher probability of "±1," while a higher amplitude for "±3" results in higher power and a lower probability of "±1," ultimately reducing the overall average power of the signal.
[0082] Key technical indicators for evaluating the performance of probabilistic constellation shaping coding include performance metrics, complexity, and power consumption. At the same code rate, the code rate equals the length of the encoded data divided by the length of the data to be encoded. The longer the code length, the closer the distribution is to a Gaussian distribution, and the lower the average power of the signal. However, the longer the code length, the higher the complexity of probabilistic constellation shaping coding, and the increase in complexity is non-linear with the code length. This is tolerable when the code length is short, but when pursuing high performance, the code length is usually greater than 100. In this case, the non-linear growth leads to a sharp increase in power consumption and resources.
[0083] To further improve performance or reduce implementation complexity, probabilistic constellation integer coding can only be achieved by adjusting the code length. Improving performance requires increasing the code length, while reducing complexity requires decreasing the code length. Therefore, it is necessary to find a suitable probabilistic constellation integer coding scheme to match performance and / or complexity requirements.
[0084] In this embodiment, the probabilistic constellation shaping coding scheme is applicable to communication systems, which can be any communication system that uses probabilistic constellation shaping coding, such as optical communication systems or wireless communication systems.
[0085] Figure 2 A system architecture diagram of an optical communication system is provided. For example... Figure 2 As shown, the optical communication system is a coherent optical communication system, including a first network device and a second network device. Taking the first network device as the transmitter and the second network device as the receiver as an example, the first network device includes a transmitting digital signal processor (DSP), a digital-to-analog converter (DAC), and an optical transmitting component. The second network device includes an optical receiving component, an analog-to-digital converter (ADC), and a receiving DSP. Here, both the transmitting DSP and the receiving DSP are referred to as optical digital signal processors (oDSPs).
[0086] The transmitting DSP includes one or more of the following: a probabilistic constellation shaping encoder, an FEC encoder, an interleaving module, a framing module, a mapping module, a device nonlinearity compensation module, an upsampling module, and a shaping filter device compensation module. The probabilistic constellation shaping encoder performs probabilistic constellation shaping encoding on the received data to obtain encoded data. The FEC encoder performs FEC encoding on this encoded data to obtain FEC encoded data. The interleaving and framing modules sequentially interleave and frame the FEC encoded data to obtain service frames, which are then output. The mapping module performs mapping processing on these service frames and outputs them. The device nonlinearity compensation module performs device nonlinearity compensation processing on the mapped data. The upsampling module upsamples the data after device nonlinearity compensation. The shaping filter device compensation module performs shaping filter device compensation processing on the upsampled data and outputs it to the DAC.
[0087] The DAC converts the digital signal, after compensation by the shaping filter, into an analog signal and outputs it to the optical transmission component.
[0088] The optical transmission component includes a driver circuit, a modulator, and a signal light source. The driver circuit sends an analog signal to the modulator, and the signal light source outputs laser light to the modulator. The modulator modulates the analog signal onto the laser light to obtain signal light, which is then output to the transmission optical fiber. The transmission optical fiber transmits the signal light to the second network device.
[0089] In the second network device, the optical receiving component includes a local oscillator light source, a mixer, a photodetector, and an amplifier. The local oscillator light source outputs local oscillator light to the mixer. The mixer receives signal light from the transmission optical fiber, mixes the local oscillator light and the signal light, and outputs the result to the photodetector. The photodetector converts the mixed optical signal into an electrical signal and outputs it to the amplifier. The amplifier amplifies the electrical signal and outputs it to the ADC (Amplifier-Digital Converter).
[0090] The ADC converts electrical signals into digital signals and outputs them to the receiving DSP.
[0091] The receiving DSP includes one or more of the following: a static equalization component, a dynamic equalization component, and a FEC component. The static equalization component includes one or more of the following: an automatic gain control (AGC) module, a receiver distortion compensation module, a chromatic dispersion compensation (CDC) module, and a clock recovery module. The dynamic equalization component includes one or more of the following: a dynamic equalization multiple-in-multiple-out (MIMO) module, a carrier phase estimation (CPE) module, a transmitter distortion compensation module, and a narrow filter compensation (NFC) module. The FEC component includes one or more of the following: a deframe module, an interleaving module, an FEC decoding module, and a probabilistic constellation shaping decoder. In the static equalization component, the AGC module and the receiver distortion compensation module perform receiver distortion compensation processing on the digital signal from the ADC and output it. The dispersion compensation module performs dispersion compensation processing on the data after receiver distortion compensation and outputs it. The clock recovery module restores the clock after dispersion compensation and outputs it to the dynamic equalization component.
[0092] In the dynamic equalization component, the dynamic equalization MIMO module performs dynamic equalization MIMO processing on the statically equalized data and outputs it; the carrier frequency offset and phase compensation module performs carrier frequency offset and phase compensation processing on the dynamically equalized MIMO data and outputs it; the transmitting device distortion compensation unit performs transmitting device distortion compensation processing on the data after carrier frequency offset and phase compensation and outputs it; and the narrowband compensation NFC module performs narrowband compensation processing on the data after transmitting device distortion compensation and outputs it.
[0093] In the FEC component, the deframe module deframes the dynamically equalized data and outputs it; the deinterleaving module deinterleaves the deframed data and outputs it; the FEC decoding module decodes the deinterleaved data and outputs it; and the probabilistic constellation shaper decoder performs probabilistic constellation shaper decoding on the FEC-decoded data to obtain decoded data and outputs the decoded data.
[0094] Optionally, such as Figure 3 As shown, the probabilistic constellation shaping encoder includes a splitter 1, N-dimensional probabilistic constellation shaping encoding modules 2, and first buffers 5 for the second to Nth dimensions. The splitter 1 is electrically connected to the first-dimensional probabilistic constellation shaping encoding modules 2 and to the first buffers 5 for the second to Nth dimensions. In each of the second to Nth dimensions, the first buffer 5 is electrically connected to the probabilistic constellation shaping encoding modules 2 for that dimension, and adjacent probabilistic constellation shaping encoding modules 2 are electrically connected. The splitter 1 is used to split the input data into N dimensions to be encoded, or directly obtain the N dimensions to be encoded. The i-th dimension data to be encoded is the data processed by probabilistic constellation shaping encoding in the i-th to Nth dimensions. The probabilistic constellation shaping encoding modules 2 are used to perform probabilistic constellation shaping encoding on the data to be encoded.
[0095] Among them, such as Figure 4 As shown, in N dimensions, each dimension's probabilistic constellation shaping coding module 2 includes a coding splitting unit 21 and a probabilistic constellation shaping coding unit 22. The coding splitting unit 21 is electrically connected to the probabilistic constellation shaping coding unit 22. The coding splitting unit 21 is used to perform block processing on the data to obtain sub-blocks. The probabilistic constellation shaping coding unit 22 is used to perform probabilistic constellation shaping coding on the sub-blocks. The probabilistic constellation shaping coding unit 22 can be considered as a combination of multiple shapers, each shaper being responsible for encoding a sub-block mentioned later.
[0096] Alternatively, a probabilistic constellation shaping encoder can also be understood as a combination of multiple shapers. For example... Figure 5 As shown, when N equals 2, the probabilistic constellation shaping encoder includes an input interface, at least one column shaper, multiple row shapers, and an output interface. The input interface has a first branch and a second branch. The first branch is connected to the input of at least one column shaper. The second branch of the input interface and the output of at least one column shaper are connected to the inputs of multiple row shapers. The outputs of the multiple row shapers are connected to the output interface, and the output interface is connected to the FEC encoding module.
[0097] Among them, the row shaper is a shaper that takes row bits as input, and the column shaper is a shaper that takes column bits as input.
[0098] Optionally, the difference between the input lengths of any two row shapers in the plurality of row shapers is less than a target value, such as a target value of 4. For each row shaper, the input length of that row shaper is the length of the data input to that row shaper.
[0099] Optionally, if there are multiple row shapers with the same input length, the output data of the row shapers with the same input length shall have the same length.
[0100] Optionally, at least one column shaper includes multiple column shapers, wherein the difference in input length between any two row shapers among the multiple column shapers is less than a target value, such as a target value of 4.
[0101] Optionally, each column shaper and each row shaper can be implemented using a look-up table (LUT), or other methods, which are not limited in the embodiments of this application.
[0102] Optionally, such as Figure 6 As shown, the probabilistic constellation integer decoder includes N-dimensional probabilistic constellation integer decoding modules 3, a combiner 4, and second buffers 6 for the second to Nth dimensions. In each of the second to Nth dimensions, the second buffer 6 is electrically connected to the combiner 4 and to the probabilistic constellation integer decoding module 3 for that dimension; adjacent probabilistic constellation integer decoding modules 3 are electrically connected. The probabilistic constellation integer decoding modules 3 are used to perform probabilistic constellation integer decoding processing on the data to be decoded, and the combiner 4 is used to combine the decoded data from the N dimensions together for output.
[0103] Among them, such as Figure 7 As shown, in N dimensions, each dimension's probabilistic constellation integer decoding module 3 includes a decoding splitting unit 31 and a probabilistic constellation integer decoding unit 32. The decoding splitting unit 31 is electrically connected to the probabilistic constellation integer decoding unit 32. The decoding splitting unit 31 performs block processing on the data to be decoded to obtain sub-blocks, and the probabilistic constellation integer decoding unit 32 performs probabilistic constellation integer decoding processing on the sub-blocks.
[0104] Alternatively, the probabilistic constellation shaper decoder can also be understood as a combination of multiple shapers. For example... Figure 8 As shown, the probabilistic constellation shaping encoder includes an input interface, multiple row deshapers, at least one column deshaper, and an output interface. The input interface is connected to the input terminals of the multiple row deshapers, the output terminals of the multiple row deshapers are connected to the input terminals of the at least one deshaper, and are also connected to a first branch of the output interface. The at least one column deshaper is connected to a second branch of the output interface.
[0105] Here, the column deshaper corresponds to the column shaper, and the row deshaper corresponds to the row shaper. The definitions of the column deshaper and the row deshaper are described in the probabilistic constellation shaping encoder, and will not be repeated here.
[0106] Optionally, in the probabilistic constellation shaping encoder and the probabilistic constellation shaping decoder, there may be a combiner and a splitter. The combiner is used to combine the data output by multiple shapers, and the splitter is used to distribute the corresponding input data to each shaper.
[0107] Optionally, both the first network device and the second network device are optical transport network (OTN) devices.
[0108] Optionally, the optical communication system may include, but is not limited to, a 1.6T zero dispersion reach (ZR) or ZR+ optical communication system, or an 800G optical communication system.
[0109] The execution subject of the embodiments of this application will be described next.
[0110] The probabilistic constellation shaping coding method can be implemented in hardware, such as the probabilistic constellation shaping encoder described above. Alternatively, the probabilistic constellation shaping coding method can be implemented in software, such as a software program running on the first network device.
[0111] The probabilistic constellation integer decoding method can be implemented in hardware, such as the probabilistic constellation integer decoder mentioned above. Alternatively, the probabilistic constellation integer decoding method can be implemented in software, such as a software program running on a second network device.
[0112] Before describing the method flow for performing probabilistic constellation integer coding in this application embodiment, the parameters used in this application embodiment are summarized and explained below.
[0113] When performing probabilistic constellation integer coding, dimensions are used to represent the coding direction. Different dimensions represent different coding directions, and the data is arranged according to the coding direction. For example, when N equals 2, the two dimensions represent the row coding direction and the column coding direction, respectively. As another example, when N equals 3, the three dimensions represent the row coding direction, the column coding direction, and the target coding direction, respectively. The target coding direction is different from both the row and column coding directions; for example, the target coding direction is perpendicular to both the row and column coding directions.
[0114] The input data is the data that is processed together by probabilistic constellation integer encoding, which is called a code block. The length of a code block is the first length, and the length of the codeword obtained after processing a code block by probabilistic constellation integer encoding is the second length.
[0115] In one alternative approach, N can be set based on empirical values. For example, N can be equal to 2, 3, 4, or 5, etc.
[0116] In one alternative approach, the second length is determined based on the performance metrics of the communication system and the complexity of probabilistic constellation shaping coding. These performance metrics include bit error rate and / or signal-to-noise ratio. With a fixed second length, higher performance requirements result in longer and fewer output data from the shapers, but also higher implementation complexity. Conversely, lower performance requirements result in shorter and more numerous output data from the shapers, with lower implementation complexity. With a fixed number of shapers, a longer second length leads to better performance, but also higher complexity. Therefore, with fixed performance metrics and complexity, we fix the number of shapers and iterate through various combinations of shapers to find the length of each shaper's output data that meets the performance metrics and complexity. Under these conditions, the sum of the lengths of the shaper output data in the Nth dimension is calculated, and this sum is determined as the second length. After this process, the length of the shaper output data in each dimension can be determined. This can be simply understood as: iterating through various combinations of shapers until a combination of shapers that meets the performance index and complexity is determined.
[0117] Optionally, in each dimension, the difference in length of the output data of each shaper is less than the target value. The target value may be the same or different for different dimensions. For example, in the Nth dimension, the second length is divided by the number of shapers in the Nth dimension. When the division is integer, the length of the output data of different shapers is the same. When the division is not integer, the length of the output data is adjusted by rounding up or down so that the second length is equal to the sum of the lengths of the output data of the shapers in the Nth dimension. In this way, the target value is 3.
[0118] In one alternative approach, the first length is set based on an empirical value, or determined based on one or more of a second length, the overhead of FEC processing, and spectral efficiency, where spectral efficiency refers to the spectral efficiency resulting from constellation shaping coding. For example, without probabilistic constellation shaping coding, a symbol may contain 4 effective bits, while with probabilistic constellation shaping coding, additional overhead may be added, resulting in a symbol containing less than 4 effective bits.
[0119] Here, 2 M Taking QAM modulation as an example, assuming the first length is k and the second length is n, the length of the output data after FEC processing is expressed by formula (1).
[0120] fec_codelen=M*n / (M-2) (1)
[0121] In formula (1), fec_codelen is the length of the output data after FEC processing, and M is related to the modulation method used. If 16QAM is used, M equals 4.
[0122] Then, based on the overhead of FEC processing, the length of the sign bit can be obtained as expressed by formula (2).
[0123] sign = (fec_codelen - (1 + fec) oh )*n) / (1+fec oh (2)
[0124] In formula (2), sign is the length of the sign bit, which determines the sign of the signal amplitude. oh Overhead for FEC processing.
[0125] Then, the first length can be obtained based on the spectral efficiency, as expressed in formula (3).
[0126]
[0127] In formula (3), k is the first length, and cs se For spectral efficiency.
[0128] Optionally, the first length can be any value less than or equal to the second length. For example, the first length is 72 bits and the second length is 128 bits. Another example is the first length being 76 bits and the second length being 161 bits. Yet another example is the first length being 106 bits and the second length being 128 bits. And yet another example is the first length being 116 bits and the second length being 128 bits.
[0129] In one alternative approach, the input data frame can be formatted as a Flexible Optical Transport Network (FlexO)-6-Dual-Polarization Probabilistic Constellation Shaping Open Forward Error Correction (DPO), FlexO-6e-DPO, FlexO-8-DPO, or FlexO-8e-DPO. It can also be a ZR frame, specifically a 1.6T ZR frame. Here, OFEC is an abbreviation for Open Forward Error Correction.
[0130] Optionally, the first length may also differ when the data frames to which the input data belong have different formats. For example, the data frame format is FlexO-6-DPO, with a first length of 72 bits, a second length of 128 bits, and a baud rate of 124.67 Gbps; the data frame format is FlexO-6e-DPO, with a first length of 72 bits, a second length of 128 bits, and a baud rate of 118.75 Gbps; the data frame format is FlexO-8-DPO, with a first length of 106 bits, a second length of 128 bits, and a baud rate of 131.35 Gbps; and the data frame format is FlexO-8e-DPO, with a first length of 116 bits, a second length of 128 bits, and a baud rate of 131.34 Gbps. As another example, when the data frame format is a 1.6T ZR frame, the first length is 106 bits and the second length is 128 bits.
[0131] It is understandable that once the baud rate, performance metrics, and complexity are determined, we can determine the specific values of the first and second lengths.
[0132] Optionally, after determining the first length, the data of the first length is divided into N dimensions to be encoded. The number of shapers for each dimension and the length of the input data for each shaper are determined using the number of shapers. This results in multiple partitioning combinations. The average power is calculated for each combination, and the combination with the optimal average power is determined. This optimal combination is used as the principle for partitioning the N dimensions to be encoded and the block division principle for the final probabilistic constellation shape coding. Subsequently, during probabilistic constellation shape coding, the principle for partitioning the N dimensions to be encoded is used to obtain the N dimensions to be encoded, and the block division principle is used to divide the data to be encoded in each dimension into blocks. Here, with low average power, both the bit error rate and signal-to-noise ratio are relatively low.
[0133] Here, for each dimension, there are multiple shapers, and the length difference of the input data of these multiple shapers is less than the target value.
[0134] The following describes the process of probabilistic constellation integer coding.
[0135] Figure 9 A flowchart illustrating the method for probabilistic constellation integer encoding is provided, see steps 901 to 902.
[0136] Step 901: Perform probabilistic constellation integer encoding on the first block of data to obtain the first encoded data. The first block of data belongs to the first group of first dimension data in N-dimensional data. The N-dimensional data is obtained based on the input data, and N is greater than or equal to 2.
[0137] In this embodiment, the input data can be a bitstream from an Ethernet frame, OTN frame, or ZR frame. The input data is divided into N dimensions, or the input data itself is N-dimensional data, where N is greater than or equal to 2. When performing probabilistic constellation shaping encoding on the first dimension, a first block of data is obtained from the input data. This first block of data belongs to the first group of first-dimensional data in the N-dimensional data. Probabilistic constellation shaping encoding is then performed on the first block of data to obtain the first encoded data.
[0138] It should be noted that the first data block belongs to the first group of first-dimensional data, meaning that the first data block may be part of the first group of first-dimensional data, or it may be a portion of the first group of first-dimensional data. For example, Figure 10 In the first column from the left in the middle, if the first group of first-dimensional data is in the first column from the left of the input data, the first block of data is the first group of first-dimensional data. If the first group of first-dimensional data is in the second column from the left of the input data, the data at the position of the circle or square box is the first group of first-dimensional data, but does not belong to the first block of data.
[0139] In one alternative approach, there may be multiple first blocks of data. Among these multiple first blocks of data, different first blocks of data belong to different groups of first dimension data in N dimensions of data. Probabilistic constellation integer encoding is performed on each of the multiple first blocks of data to obtain the first encoded data corresponding to each first block of data.
[0140] Step 902: Perform probabilistic constellation integer encoding on the i-th block of data to obtain the i-th encoded data. The i-th block of data includes one bit of the (i-1)-th encoded data and the target block of data. The target block of data belongs to the first group of i-th dimension data in N-dimensional data, where i takes values from 2 to N.
[0141] In this embodiment, when performing probabilistic constellation shaping encoding on the i-th dimension, the i-th block of data is obtained from the input data and the encoded data of the (i-1)-th dimension. The i-th block of data includes one bit from the (i-1)-th encoded data and the target block of data, which belongs to the first group of i-th dimension data in the N-dimensional data. Probabilistic constellation shaping encoding is then performed on the i-th block of data to obtain the i-th encoded data. For example, when N equals 2, in... Figure 11 In each row, the position of the line box represents the (i-1)th encoded data, and the position of the circle box represents the target block data.
[0142] In one alternative approach, there may be multiple (i-1)th blocks of data in the (i-1)th dimension. Among these multiple (i-1)th blocks of data, different (i-1)th blocks of data belong to different groups of (i-1)th dimension data. Probabilistic constellation integer encoding is performed on each of the multiple (i-1)th blocks of data to obtain the (i-1)th encoded data corresponding to each (i-1)th block of data. Then, the (i-1)th block of data may include one bit and the target block of data from each (i-1)th encoded data, or it may include one bit and the target block of data from a portion of the (i-1)th encoded data.
[0143] After performing probabilistic constellation integer encoding in the Nth dimension, all the Nth encoded data in the Nth dimension are obtained. All the Nth encoded data in the Nth dimension constitute the probabilistic constellation integer encoded data of the input data.
[0144] In one alternative approach, when N equals 2, it is equivalent to having column and row dimensions. The first group of data in the first dimension is in the first column of the input data. Here, the first column is not specific but refers to any column. The i-th block of data is the second block of data. The first group of data in the i-th dimension is in the first row of the input data. Here, the first row is not specific but refers to any row.
[0145] Optionally, one bit in the first encoded data is located at the intersection of the first row and the first column. In this way, when N equals 2, probabilistic constellation integer encoding is performed first by column and then by row.
[0146] Optionally, when N equals 2, there is a second set of first-dimensional data within the N-dimensional data. This second set of first-dimensional data is different from the first set. The second set of first-dimensional data is located in the second column of the input data, and this second column is different from the first column. The third block of data belongs to this second set of first-dimensional data; although it is called the third block, it is actually a first block. Probabilistic constellation integer encoding is performed on the third block to obtain the third encoded data. The second block also includes one bit from the third encoded data.
[0147] In this case, the bit in the third encoded data is located at the intersection of the second column and the first row.
[0148] Optionally, the second column is adjacent to the first column, which makes it easier to read data from the input data.
[0149] Optionally, if the lengths of the first and third data blocks are the same, the lengths of the first and third encoded data blocks should also be the same. This allows the first and third data blocks to use the same type of shaper, reducing the number of shaper types used.
[0150] This is merely an example, and the embodiments of this application are not limited thereto. For example, although the lengths of the first block data and the third block data are the same, and the lengths of the first encoded data and the third encoded data are the same, the types of shapers used in the first block data and the third block data are different, but both can be used for probabilistic constellation shape coding.
[0151] Optionally, for each dimension, if there are multiple data blocks in that dimension, the length difference between these multiple data blocks is less than or equal to the target value. The target value may differ across dimensions. For example, in the Nth dimension, the number of bits in the output data is divided by the number of data blocks to obtain a value. If this value is an integer, the length of the data block is that value; otherwise, the value is rounded down or rounded down to obtain the length of each data block. Therefore, the target value could be equal to 3.
[0152] To better illustrate the probabilistic constellation integer encoding process, the following description uses schemes with a first length of 76 bits and 106 bits. With a first length of 76 bits, the second length is 161 bits; with a first length of 106 bits, the second length is 128 bits, and N equals 2. Here, we use the example of the first dimension representing the column encoding direction and the second dimension representing the row encoding direction for illustration.
[0153] With a first length of 76 bits and a second length of 161 bits, the 161 bits of encoded data are distributed as follows: Figure 10 In the code block shown, with a first length of 76 bits, the first dimension is encoded first, as follows: Figure 10 As shown, the first-length input data includes a first set of first-dimensional data and a second set of first-dimensional data. The first set of first-dimensional data includes the first 6 bits in the first column (located in the diagonal box), and the second set of first-dimensional data includes the first 9 bits in the second column (located in the diagonal box) and the last two bits (located in the circle box). The 7 cross-shaped boxes in the first column are reserved encoding overhead positions with an encoding overhead of 7 bits, and the 2 cross-shaped boxes in the second column are reserved encoding overhead positions with an encoding overhead of 2 bits. The remaining data in the input data is distributed in the positions of the circle boxes.
[0154] There are two first blocks of data in the column dimension: the first 6 bits of the first column and the first 9 bits of the second column. For example... Figure 11As shown, the first dimension has two column shapers: column shaper 1.1a and column shaper 1.2a. The payload length (k1) and output data length (n1) of column shaper 1.1a are 6 bits and 13 bits, respectively. The payload length (k2) and output data length (n2) of column shaper 1.2a are 9 bits and 11 bits, respectively. The 6-bit first block of data is fed into column shaper 1.1a for probabilistic constellation shaping encoding, outputting 13 bits of encoded data, which is distributed in the first column. The 9-bit first block of data is fed into column shaper 1.2a for probabilistic constellation shaping encoding, outputting 11 bits of encoded data, which is distributed in the first 11 bits of the second column. After column shapers 1.1a and 1.2a complete the encoding, the output 13-bit and 11-bit data are combined with the remaining 61 bits of input data to form the second dimension of data to be encoded, for a total of 85 bits.
[0155] like Figure 12 As shown, there are 13 rows of data in the row dimension, meaning there are 13 second blocks of data. Each second block of data is located on a separate row, and different second blocks of data are located on different rows. The bit positions of the 13 second blocks of data are [0, 13, 24:27], [1, 14, 28:31], [2, 15, 32:35], [3, 16, 36:39], [4, 17, 40:44], [5, 18, 45:49], [6, 1... The 13 second blocks of data, [9, 50:54], [7, 20, 55:59], [8, 21, 60:64], [9, 22, 65:69], [10, 23, 70:74], [11, 75:79], and [12, 80:84], have lengths of 6 bits, 6 bits, 6 bits, 6 bits, 6 bits, 7 bits, 7 bits, 7 bits, 7 bits, 7 bits, 7 bits, 6 bits, and 6 bits respectively, corresponding to... Figure 12 The data regions to be encoded in the image are 201, 202, and 203. For each row, the checkmark in the latter half of the row indicates the reserved encoding overhead location for that row's data. For example... Figure 13As shown, each second block of data is fed into the corresponding row shaper for probabilistic constellation shaping encoding. Row shapers 2.1a, 2.2a, 2.3a, and 2.4a are of type A, with a payload length (k3) of 6 bits and an output data length (n3) of 12 bits; row shapers 2.5a, 2.6a, 2.7a, 2.8a, 2.9a, 2.10a, and 2.11a are of type B, with a payload length (k4) of 7 bits and an output data length (n4) of 13 bits; and row shapers 2.12 and 2.13 are of type C, with a payload length (k5) of 6 bits and an output data length (n5) of 11 bits. Each row shaper performs probabilistic constellation shaping encoding on the input second block of data and places the encoded data in its corresponding row. After all the row shapers complete the probabilistic constellation shaping encoding, they will output 13 rows of encoded data with lengths of 12 bits, 12 bits, 12 bits, 12 bits, 13 bits, 13 bits, 13 bits, 13 bits, 13 bits, 13 bits, 13 bits, 11 bits, and 11 bits, respectively. These 13 rows of encoded data are combined to obtain the final encoded output of 161 bits.
[0156] Optionally, the combination method is as follows: concatenate the second row of encoded data after the first row of encoded data, concatenate the third row of encoded data after the second row of encoded data, and so on, concatenating all 13 rows of encoded data together for output.
[0157] With a first length of 106 bits and a second length of 128 bits, the 128 bits of encoded data are distributed as follows: Figure 14 In the code block shown, with a first length of 106 bits, the first dimension is encoded first, as follows: Figure 14 As shown, the first-length input data includes a first set of first-dimensional data and a second set of first-dimensional data. The first set of first-dimensional data includes the first 9 bits in the first column (located in the diagonal box), and the second set of first-dimensional data includes the first 11 bits in the second column (located in the diagonal box). The three cross-shaped boxes in the first column are reserved encoding overhead positions with an encoding overhead of 3 bits, and the one cross-shaped box in the second column is a reserved encoding overhead position with an encoding overhead of 1 bit. The remaining data in the input data is distributed in the positions of the circled boxes.
[0158] There are two first blocks of data in the column dimension: the first 9 bits of the first column and the first 11 bits of the second column. For example... Figure 15As shown, the first dimension has two column shapers: column shaper 1.1b and column shaper 1.2b. The payload length (k1) and output data length (n1) of column shaper 1.1b are 9 bits and 12 bits, respectively. The payload length (k2) and output data length (n2) of column shaper 1.2b are 11 bits and 12 bits, respectively. The 9-bit first block of data is fed into column shaper 1.1b for probabilistic constellation shaping encoding, outputting 12-bit encoded data distributed in the first column. The 11-bit first block of data is fed into column shaper 1.2b for probabilistic constellation shaping encoding, outputting 12-bit encoded data distributed in the second column. After column shapers 1.1b and 1.2b complete the encoding, the output 12 bits and 12 bits of data are combined with the remaining 86 bits of data in the input data to form the second dimension of data to be encoded, for a total of 110 bits.
[0159] like Figure 16 As shown, there are 12 rows of data in the row dimension, meaning there are 12 second blocks of data. Each second block of data is located in one row, and different second blocks of data are located in different rows. The bit positions of the 12 second blocks of data are [0, 12, 24:31], [1, 13, 32:39], [2, 14, 40:46], [3, 15, 47:53], [4, 16, 54:60], [5, 17, 61:67], and [4, 5, 17, 61:67]. [6, 18, 68:74], [7, 19, 75:81], [8, 20, 82:88], [9, 21, 89:95], [10, 22, 96:102], [11, 23, 103:109], the lengths of these 12 second blocks of data are 10 bits, 10 bits, 9 bits, 9 bits, 9 bits, 9 bits, 9 bits, 9 bits, 9 bits, 9 bits, 9 bits, 9 bits, and 9 bits respectively, corresponding to... Figure 16 The data regions to be encoded in the image are 204, 205, and 206. For each row, the checkmark in the latter half of the row indicates the reserved encoding overhead location for that row's data. For example... Figure 17As shown, each second block of data is fed into the corresponding row shaper for probabilistic constellation shaping encoding. Row shapers 2.1b and 2.2b are of type D, with a payload length (k8) and output data length (n8) of 10 bits and 10 bits respectively. No encoding overhead is allocated here, so the data can be directly passed through. Row shapers 2.3b and 2.4b are of type E, with a payload length (k9) and output data length (n9) of 9 bits and 10 bits respectively. Row shapers 2.5b, 2.6b, 2.7b, 2.8b, 2.9b, 2.10b, 2.11b, and 2.12b are of yet another type, F, with a payload length (k10) and output data length (n10) of 9 bits and 11 bits respectively. Each row shaper performs probabilistic constellation shaping encoding on the input second block of data and places the encoded data in its corresponding row. After all the row shapers complete the probabilistic constellation shaping encoding, they will output 12 rows of encoded data with lengths of 10 bits, 10 bits, 10 bits, 10 bits, 11 bits, 11 bits, 11 bits, 11 bits, 11 bits, 11 bits, 11 bits, 11 bits, and 11 bits respectively. These 12 rows of encoded data are combined to obtain the final encoded output of 128 bits.
[0160] Optionally, the combination method is as follows: concatenate the second row of encoded data after the first row of encoded data, concatenate the third row of encoded data after the second row of encoded data, and so on, concatenating all 12 rows of encoded data together for output.
[0161] Figure 18 It also provides the corresponding Figure 9 A flowchart illustrating the probabilistic constellation integer decoding method is shown below. Figure 18 Steps 1801 to 1802 are shown in the diagram.
[0162] Step 1801: Perform probabilistic constellation integer decoding on the i-th encoded data to obtain the i-th block data. The i-th block data includes one bit of the (i-1)-th encoded data and the target block data. The target block data belongs to the first group of i-th dimension data in N-dimensional data, where i takes values from 2 to N.
[0163] In this embodiment, the second network device acquires the Nth encoded data. If multiple Nth encoded data exist, probabilistic constellation shaping decoding is performed on each Nth encoded data to obtain the Nth block data corresponding to each Nth encoded data. For each Nth block data, the Nth block data includes one bit from the (N-1)th encoded data and target block data. The target block data is the decoded data, and the target block data belongs to a group of N-dimensional data in N-dimensional data. In different Nth block data, the target block data belongs to different groups of N-dimensional data. This process is repeated to obtain the encoded data of the first dimension.
[0164] Step 1802: Perform probabilistic constellation integer decoding on the first encoded data to obtain the first block data, wherein the first block data belongs to the first group of first dimension data in N-dimensional data, and the N-dimensional data belongs to the output data.
[0165] In this embodiment, if the encoded data of the first dimension includes multiple first encoded data, then probabilistic constellation integer decoding is performed on each first encoded data to obtain the first block data corresponding to each first encoded data, and the first block data is the decoded data. If the encoded data of the first dimension includes one first encoded data, then probabilistic constellation integer decoding is performed on that first encoded data to obtain the first block data corresponding to that first encoded data.
[0166] The target block data and the first block data are combined to obtain the output data, which is the decoded data.
[0167] The process of probabilistic constellation integer decoding is the reverse process of probabilistic constellation integer encoding, and is similar to... Figure 9 The process shown corresponds to this, and will not be repeated here.
[0168] In this embodiment of the application, a probabilistic constellation integer encoding shaping process is also provided, such as... Figure 19 Steps 1901 to 1902 are shown.
[0169] Step 1901: Perform first probability constellation integer encoding on the first block of input data to obtain intermediate data. The first column of the intermediate data includes the encoded data obtained by performing first probability constellation integer encoding on the first block of data. The intermediate data also includes the part of the input data that is not processed by first probability constellation integer encoding.
[0170] In this embodiment, the input data is divided into a first block of data, which is located in the first column of the input data. The first column can be any column. This first block of data undergoes a first probabilistic constellation integer encoding process to obtain intermediate data. The first column of the intermediate data includes the encoded data of the first block of data. Furthermore, the intermediate data also includes the portion of the input data that was not subjected to the first probabilistic constellation integer encoding process; that is, it also includes the data in the input data that underwent probabilistic constellation integer encoding in the second dimension.
[0171] In one alternative approach, the input data is divided into multiple first blocks, located in different columns and may be adjacent or non-adjacent. These first blocks are then subjected to a first probabilistic constellation integer encoding process to obtain intermediate data. The intermediate data consists of multiple columns containing the encoded data from each of the first blocks, with different columns containing the encoded data from different first blocks. This approach also divides the first dimension into multiple blocks for probabilistic constellation integer encoding, reducing the output data length of the column shaper and thus lowering the complexity of the column dimension. For example, as... Figure 14 As shown, the input data is divided into two first blocks. One first block includes the first 9 bits in column 1, and the other first block includes the first 11 bits in column 2. The portion of the intermediate data that does not undergo the first probability constellation integer encoding process is... Figure 14 The bits at the location of the circled box in the middle.
[0172] Step 1902: Perform second probability constellation integer encoding on the intermediate data row by row to obtain the output data.
[0173] The difference between the second probability constellation integer encoding process and the first probability constellation integer encoding process is that the first probability constellation integer encoding process yields intermediate data, while the second probability constellation integer encoding process yields output data, i.e., probability constellation integer encoded data. For example... Figure 16 As shown, performing second probability constellation integer encoding on the intermediate data row by row yields 12 rows of encoded data.
[0174] In this embodiment, after obtaining the intermediate data, each row of the intermediate data is subjected to probabilistic constellation integer encoding to obtain the encoded data for each row. The encoded data of each row is then sequentially combined to obtain the output data. Here, the sequential combination method can be arbitrary, as long as the encoding and decoding sides correspond. For example, the encoded data from the first row to the Nth row can be concatenated sequentially to obtain the output data.
[0175] When N equals 2, the specific details of the probabilistic constellation integer encoding process can be found in the previous embodiment, and will not be repeated here.
[0176] In this embodiment of the application, the corresponding Figure 19 The flowchart shown also provides a method flow for probabilistic constellation integer decoding, such as... Figure 20 Steps 2001 and 2002 are shown.
[0177] Step 2001: Perform first probability constellation integer decoding on the input data row by row to obtain intermediate data. The first column of the intermediate data includes the encoded data obtained by performing first probability constellation integer encoding on the first block of data. The intermediate data also includes data that has not undergone first probability constellation integer encoding.
[0178] In this embodiment, the first probabilistic constellation integer decoding process is the reverse process of the second probabilistic constellation integer encoding process. First, the input data is processed line by line using the first probabilistic constellation integer decoding process to obtain intermediate data. The intermediate data includes data that has not undergone the first probabilistic constellation integer encoding process. After performing the first probabilistic constellation integer decoding process line by line, the data can be output. The intermediate data also includes the encoded data obtained by performing the first probabilistic constellation integer encoding process on the first block, which requires the second probabilistic constellation integer decoding process. The second probabilistic constellation integer decoding process is the reverse process of the first probabilistic constellation integer encoding process.
[0179] Step 2002: Perform second probability constellation integer decoding on the intermediate data to obtain the output data.
[0180] In this embodiment, probabilistic constellation-shaped decoding is performed on the encoded data in the intermediate data to obtain the first block data. The first block data is then combined with the intermediate data, including the data that has not undergone the first probabilistic constellation-shaped decoding, to obtain the output data.
[0181] In one alternative approach, there may be multiple first data blocks. These multiple first data blocks are combined with intermediate data, including data that has not undergone first probability constellation integer encoding, to obtain the output data.
[0182] When N equals 2, the specific details of the probabilistic constellation integer decoding process can be found in the previous embodiment, and will not be repeated here.
[0183] In this application embodiment, the method flow for performing probabilistic constellation integer encoding processing is also described in general, such as... Figure 21 Steps 2101 to 2103 are shown.
[0184] Step 2101: For the first dimension among N dimensions, perform probabilistic constellation integer encoding on the first dimension data to be encoded in the input data to obtain the encoded data of the first dimension, where N is greater than or equal to 2.
[0185] In this embodiment, the splitter 1 receives N dimensions of data to be encoded, or the splitter 1 receives input data and distributes the input data into N dimensions of data to be encoded. The i-th dimension of data to be encoded is the data that participates in probabilistic constellation shaping encoding from the i-th to the N-th dimensions. The probabilistic constellation shaping module 2 of the first dimension performs block processing on the first dimension of data to be encoded, obtaining multiple sub-blocks. Probabilistic constellation shaping encoding is performed on each sub-block to obtain the encoded data of the multiple sub-blocks. The encoded data of the multiple sub-blocks is the encoded data of the first dimension.
[0186] It should be noted that the first dimension data to be encoded can also be treated as a whole as a sub-block, and probabilistic constellation integer encoding can be performed on this sub-block to obtain the encoded data of the first dimension.
[0187] In one alternative approach, the block probabilistic constellation integer encoding of the first dimension of data to be encoded is as follows:
[0188] The first dimension data to be encoded is divided into multiple sub-blocks. Each sub-block is then fed into a corresponding shaper for probabilistic constellation shaping encoding to obtain the encoded data for each block. For example, if multiple sub-blocks include three sub-blocks with lengths a1, b1, and c1 respectively, the first a1 bits of the first dimension data to be encoded are divided into the first sub-block, the data from a1+1 bits to a1+b1 bits are divided into the second sub-block, and the last c1 bits are divided into the third sub-block.
[0189] In one alternative approach, the process of distributing the input data into N dimensions is as follows:
[0190] Splitter 1 distributes the input data into N dimensions to be encoded according to their positions. For example, splitter 1 distributes the input data into N dimensions to be encoded sequentially according to the order of the data. In the input data, the i-th dimension to be encoded is adjacent to the (i-1)-th dimension to be encoded and is located after the (i-1)-th dimension to be encoded. i is greater than or equal to 2 and less than or equal to N.
[0191] This is merely one optional distribution method, and the embodiments of this application do not limit the distribution method. For example, when inputting data, d bits of data are first distributed sequentially to N dimensions, and then d bits of data are distributed sequentially to N dimensions until N dimensions of data to be encoded are obtained, where d is greater than or equal to 1. It is possible that the data length of some dimensions is not an integer multiple of d, and when data is distributed for the last time for that dimension, the length of the distributed data is less than or equal to d.
[0192] Step 2102: For the i-th dimension among the N dimensions, perform probabilistic constellation integer encoding on the i-th dimension data to be encoded and the (i-1)-th dimension encoded data in the input data to obtain the encoded data of the i-th dimension, where i takes values from 2 to N.
[0193] In this embodiment, for the i-th dimension among N dimensions, where i takes values from 2 to N, the probabilistic constellation shaping module 2 of the i-th dimension combines the data to be encoded in the i-th dimension with the encoded data in the (i-1)-th dimension, and then performs probabilistic constellation shaping encoding processing in blocks to obtain the encoded data in the i-th dimension.
[0194] In one alternative approach, the process of performing probabilistic constellation integer encoding on the i-th dimension is as follows:
[0195] The probabilistic constellation shaping module 2 of the i-th dimension combines the encoded data of the (i-1)-th dimension with the data of the i-th dimension to be encoded, resulting in the data to be encoded in the i-th dimension. In this data to be encoded, the encoded data of the (i-1)-th dimension precedes the data of the i-th dimension to be encoded, and then the data to be encoded is distributed into multiple sub-blocks sequentially. For example, the multiple sub-blocks include four sub-blocks with lengths a2, b2, c2, and d2, respectively. The first a2 bits of the data to be encoded are divided into the first sub-block, the data from a2+1 bits to a2+b2 bits are divided into the second sub-block, the data from a2+b2+1 bits to a2+c2 bits are divided into the third sub-block, and the last d2 bits of the data are divided into the fourth sub-block.
[0196] Step 2103: Output the encoded data of the Nth dimension, which is the encoded data corresponding to the input data.
[0197] In this embodiment, the Nth-dimensional probability constellation shaping module 2 obtains the Nth-dimensional encoded data, which is the encoded data corresponding to the input data. The Nth-dimensional probability constellation shaping module 2 outputs the Nth-dimensional encoded data for subsequent processing. This Nth-dimensional encoded data undergoes further processing in the first network device and is finally output through the connected transmission optical fiber.
[0198] The following describes the process flow of probabilistic constellation integer decoding. During the decoding process... Figure 21 The reverse process of the encoding process shown is as follows: Figure 22 As shown, steps 2201 to 2203.
[0199] Step 2201: Divide the encoded data of the i-th dimension into blocks and perform probabilistic constellation integer decoding to obtain the encoded data of the (i-1)-th dimension and the decoded data of the i-th dimension, where i takes values from 2 to N.
[0200] In this embodiment, the Nth-dimensional probabilistic constellation shaping decoding module 3 receives input data, which is the encoded data of the Nth dimension, and the length of the input data is a second length. For the i-th dimension, the i-th-dimensional decoding splitting unit 31 divides the encoded data of the i-th dimension into blocks to obtain multiple second sub-blocks. The i-th-dimensional probabilistic constellation shaping decoding unit 32 performs probabilistic constellation shaping decoding processing on each of the multiple second sub-blocks to obtain the decoded data of each second sub-block. From the decoded data of each second sub-block, the encoded data of the (i-1)-th dimension and the decoded data of the i-th dimension are obtained. Probabilistic constellation shaping decoding processing is performed sequentially on the encoded data from the Nth dimension to the second dimension in this manner to obtain the encoded data of the first dimension.
[0201] In one alternative approach, when multiple encoded second sub-blocks exist with the same length, the decoded data of the second sub-blocks of the same length have the same length.
[0202] Step 2202: Perform probabilistic constellation integer decoding on the encoded data of the first dimension out of N dimensions to obtain decoded data of one dimension.
[0203] In this embodiment, the first-dimensional decoding splitting unit 31 divides the encoded data of the first dimension into blocks to obtain multiple encoded first sub-blocks. The first-dimensional probabilistic constellation shaping decoding unit 32 performs probabilistic constellation shaping decoding processing on the multiple encoded first sub-blocks to obtain the decoded data of the multiple first sub-blocks. The decoded data of the multiple first sub-blocks are then combined to obtain the decoded data of the first dimension.
[0204] In one alternative approach, the encoded data of the first dimension is sequentially divided into multiple encoded first sub-blocks. Each first sub-block is then fed into the corresponding probabilistic constellation integer decoding unit 32 for probabilistic constellation integer decoding processing to obtain the decoded data of each first sub-block. The decoded data of the multiple encoded first sub-blocks are then distributed in the order during encoding to obtain the first dimension data to be encoded.
[0205] In one alternative approach, when multiple encoded first sub-blocks have the same length, the decoded data of the first sub-blocks of the same length have the same length.
[0206] Step 2203: Output the decoded data in N dimensions.
[0207] In this embodiment, following the reverse process of distributing data of multiple dimensions during encoding, combiner 4 combines the data of N dimensions into data of the first length and outputs it to the subsequent stage for processing.
[0208] It should be noted that probabilistic constellation integer decoding is the reverse process of probabilistic constellation integer encoding. Therefore, the block division principle refers to the probabilistic constellation integer encoding process, which will not be repeated here.
[0209] In this embodiment, by expanding the optimization space in dimensions and performing multi-dimensional joint optimization of the probabilistic constellation shaping parameters, a low-complexity and low-performance probabilistic constellation shaping encoding is implemented in each dimension. This allows for the construction of a low-complexity, high-performance probabilistic constellation shaping scheme using this low-complexity, low-performance approach. Compared to directly increasing the code length to improve performance, this embodiment significantly reduces implementation complexity. In other words, with comparable complexity, this embodiment, through multi-dimensional probabilistic constellation shaping encoding, reduces the probability of amplitude bits mapped to symbols at outer constellation points and increases the probability of amplitude bits mapped to symbols at inner constellation points during mapping, thereby reducing the average power of the transmitted signal and improving performance.
[0210] The apparatus provided in the embodiments of this application is described below.
[0211] This application also provides an apparatus for performing probabilistic constellation shaping encoding. This apparatus can be implemented as part or all of the apparatus through software, hardware, or a combination of both. The apparatus provided in this application can implement the embodiments of this application. Figure 9 The process described herein includes: an N-dimensional probabilistic constellation shaping encoding module 2, wherein:
[0212] The N-dimensional probabilistic constellation integer encoding module 2 is used to: perform probabilistic constellation integer encoding on the first block of data to obtain the first encoded data, wherein the first block of data belongs to the first group of first dimension data in the N-dimensional data, and the N-dimensional data is obtained based on the input data, where N is greater than or equal to 2.
[0213] Probabilistic constellation integer encoding is performed on the i-th data block to obtain the i-th encoded data. The i-th data block includes one bit from the (i-1)-th encoded data and a target data block. The target data block belongs to the first group of i-th dimension data in the N-dimensional data, where i takes values from 2 to N. Specifically, this can be used to implement... Figure 7 The process described herein and the implicit steps it includes.
[0214] In one alternative approach, N equals 2, the first set of first-dimensional data is in the first column of the input data, and the first set of i-th-dimensional data is in the first row of the input data.
[0215] In one alternative approach, a bit of the first encoded data is located at the intersection of the first row and the first column.
[0216] In one alternative approach, the i-th data block is the second data block, and the N-dimensional probability constellation integer encoding module 2 is further used for:
[0217] The third block of data is subjected to probabilistic constellation integer encoding to obtain the third encoded data, wherein the third block of data belongs to the second group of first dimension data in N-dimensional data, and the second group of first dimension data is in the second column of the input data;
[0218] The second block of data also includes one bit of the third encoded data.
[0219] In one alternative approach, the second column is adjacent to the first column.
[0220] In one alternative approach, the third block of data is located after the first block of data in the input data, and the third block of data is adjacent to the first block of data.
[0221] In an alternative approach, if the lengths of the first block data and the third block data are the same, the lengths of the first encoded data and the third encoded data are the same.
[0222] In one alternative approach, the length difference between the first data block and the third data block is less than the target value.
[0223] In one alternative approach, the sum of the lengths of the N dimensions of data is a first length, which is determined based on a second length, which is the length of the encoded data obtained by performing probabilistic constellation integer encoding on the N dimensions of data.
[0224] This application also provides a structural diagram of an apparatus for performing probabilistic constellation shaping decoding. This apparatus can be implemented as part or all of the device through software, hardware, or a combination of both. The apparatus provided in this application can implement the embodiments of this application. Figure 18 The process described herein includes: an N-dimensional probabilistic constellation integer decoding module 3, wherein:
[0225] The N-dimensional probabilistic constellation integer decoding module 3 is used to perform probabilistic constellation integer decoding on the i-th encoded data to obtain the i-th block data. The i-th block data includes one bit of the (i-1)-th encoded data and the target block data. The target block data belongs to the first group of i-th dimension data in the N-dimensional data, where i takes the value from 2 to N.
[0226] The first encoded data is subjected to probabilistic constellation integer decoding to obtain the first block data, wherein the first block data belongs to the first group of first dimension data in N-dimensional data, and the target block data and the first group of first dimension data belong to the output data.
[0227] In one alternative approach, N equals 2, the first group of i-th dimension data is in the first row of the output data, and the first group of first dimension data is in the first column of the output data.
[0228] In one alternative approach, the i-th block of data is the second block of data, which further includes a bit from the third encoded data. The N-dimensional probability constellation integer decoding module 3 is also used for:
[0229] The third encoded data is subjected to probabilistic constellation integer decoding to obtain the third block data, wherein the third block data belongs to the second group of first dimension data in N-dimensional data, and the second group of first dimension data is located in the second column of the output data.
[0230] This application also provides an apparatus for performing probabilistic constellation shaping encoding. This apparatus can be implemented as part or all of the device through software, hardware, or a combination of both. The apparatus provided in this application can implement the process described in embodiment 19 of this application. The apparatus includes: an N-dimensional probabilistic constellation shaping encoding module 2, wherein:
[0231] The N-dimensional probabilistic constellation integer encoding module 2 is used to perform a first probabilistic constellation integer encoding process on the first block of input data to obtain intermediate data. The first column of the intermediate data includes the encoded data obtained by performing the first probabilistic constellation integer encoding process on the first block of data. The intermediate data also includes the part of the input data that is not subjected to the first probabilistic constellation integer encoding process.
[0232] The intermediate data is processed by second probability constellation integer encoding row by row to obtain the output data.
[0233] In one alternative embodiment, the N-dimensional probabilistic constellation shaping encoding module 2 is used for:
[0234] The first probability constellation integer encoding process is performed on multiple first blocks of data in the input data to obtain the intermediate data. The intermediate data includes multiple columns of encoded data obtained by performing the first probability constellation integer encoding process on the multiple first blocks of data. The encoded data obtained by performing the first probability constellation integer encoding process on different first blocks of data belong to different columns.
[0235] This application also provides an apparatus for performing probabilistic constellation shaping decoding. This apparatus can be implemented as part or all of the device through software, hardware, or a combination of both. The apparatus provided in this application can implement the embodiments of this application. Figure 20 The process described herein includes: an N-dimensional probabilistic constellation integer decoding module 3, wherein:
[0236] The N-dimensional probabilistic constellation integer decoding module 3 is used to perform first probabilistic constellation integer decoding processing on the input data row by row to obtain intermediate data. The first column of the intermediate data includes encoded data obtained by performing first probabilistic constellation integer encoding processing on the first block of data. The intermediate data also includes data that has not undergone the first probabilistic constellation integer encoding processing.
[0237] The intermediate data is subjected to a second probability constellation integer decoding process to obtain the output data.
[0238] In one alternative approach, the intermediate data includes encoded data obtained by performing a first probability constellation integer encoding process on multiple first blocks of data, wherein the encoded data obtained by performing the first probability constellation integer encoding process on different first blocks of data belong to different columns.
[0239] This application also provides an apparatus for performing probabilistic constellation shaping encoding. This apparatus can be implemented as part or all of the device through software, hardware, or a combination of both. The apparatus provided in this application can implement the embodiments of this application. Figure 21 The process described herein includes: an N-dimensional probabilistic constellation shaping encoding module 2, wherein:
[0240] The N-dimensional probabilistic constellation integer encoding module 2 is used to perform probabilistic constellation integer encoding on the first dimension data to be encoded in the first dimension among the N dimensions to obtain the encoded data of the first dimension. The data of the N dimensions are obtained based on the input data, and N is greater than or equal to 2.
[0241] For the i-th dimension among the N dimensions, the data to be encoded in the i-th dimension and the encoded data in the (i-1)-th dimension are divided into blocks and subjected to probabilistic constellation integer encoding to obtain the encoded data in the i-th dimension, where i takes values from 2 to N;
[0242] Output the encoded data of the Nth dimension, where the encoded data of the Nth dimension is the encoded data corresponding to the input data.
[0243] This application also provides an apparatus for performing probabilistic constellation shaping decoding. This apparatus can be implemented as part or all of the device through software, hardware, or a combination of both. The apparatus provided in this application can implement the embodiments of this application. Figure 22The process described herein includes: an N-dimensional probabilistic constellation integer decoding module 3, wherein:
[0244] The N-dimensional probabilistic constellation integer decoding module 3 is used to: divide the encoded data of the i-th dimension in the N dimensions into blocks and perform probabilistic constellation integer decoding processing to obtain the encoded data of the (i-1)-th dimension and the decoded data of the i-th dimension, where i takes the value from 2 to N.
[0245] Probabilistic constellation integer decoding is performed on the encoded data of the first dimension among the N dimensions to obtain the decoded data of the 1 dimension;
[0246] Output the decoded data for the N dimensions.
[0247] For a detailed description of the probabilistic constellation shaping encoding process of the above-described apparatus, please refer to the descriptions in the previous embodiments; it will not be repeated here.
[0248] For a detailed description of the probabilistic constellation shaping decoding process of the above-described apparatus, please refer to the descriptions in the previous embodiments; it will not be repeated here.
[0249] Figure 23This is a schematic diagram of the hardware structure of a network device. Specifically, the network device may include one or more of the following: a tributary board, a line board, and a cross-connect board. It may also include system control boards, and one or more of the following: power supply boards, fan boards, and auxiliary boards. The line board may also be an optical layer processing board. Depending on specific needs, the type and number of boards included in each device may vary. For example, a network device acting as a core node may not have a tributary board. A network device acting as an edge node may have multiple tributary boards. The power supply board is used to power the network device and may include primary and backup power supplies. The fan board is used to dissipate heat from the device. The auxiliary boards are used to provide auxiliary functions such as external alarms or access to external clocks. The tributary board, cross-connect board, and line board are mainly used to process OTN electrical layer signals (also known as OTN frames). The tributary board is used to receive and transmit various client signals (also known as client services). Client signals may include constant bit rate (CBR) signals (e.g., synchronous digital hierarchy (SDH) signals) and packet signals (e.g., Ethernet signals). Furthermore, the tributary board may include a customer-side optical module and a signal processor. The customer-side optical module is used to receive and / or transmit customer signals. The signal processor may be located inside or outside the customer-side optical module. If the signal processor is a combination of multiple chips, one (or some) of the chips may be inside the customer-side optical module, while the others are outside. The cross-connect board is used to implement data exchange, such as completing the exchange of one or more types of OTN frames. The line board mainly implements line-side data processing. Specifically, the line board may include a line-side optical module and a signal processor. The line-side optical module is used to receive and / or transmit optical signals. The signal processor may be located inside or outside the line-side optical module. If the signal processor is a combination of multiple chips, one (or some) of the chips may be inside the line-side optical module, while the others are outside. The customer-side optical module or the line-side optical module may also be collectively referred to as an optical module or an optical transceiver. The signal processor in the customer-side optical module or the line-side optical module can be an oDSP or a framer, or a combination of a framer and an oDSP. System control boards are used for system control. Specifically, system control boards can collect information from different boards or send control commands to the corresponding boards. Unless otherwise specified, specific components (e.g., tributary boards) can be one or more, and this application does not impose any restrictions.
[0250] Figure 24This is a schematic diagram of the hardware structure of an optical module. The optical module may include a signal processor, an optical transmitting component, and an optical receiving component. The signal processor may include a Framer or an oDSP, or a combination of a Framer and an oDSP. The optical module can be a unidirectional optical module, meaning it includes either an optical transmitting component or an optical receiving component. The optical module can also be a bidirectional optical module, meaning it includes both an optical transmitting component and an optical receiving component.
[0251] The oDSP is used to perform digital signal processing on data frames generated by the Framer, or on electrical signals obtained from the optical receiving component. The oDSP is used to perform one or more processing functions such as FEC processing, clock recovery, equalization, sequence detection, and signal decision.
[0252] FEC (Fault-Error Control) is an error control method that involves pre-encoding a signal according to a certain algorithm before it is sent into the transmission channel, adding redundant data with the characteristics of the signal itself, and then decoding the received signal at the receiving end according to the corresponding algorithm to find and correct the error codes generated during transmission.
[0253] Optical transmitting module (TOSA): Also known as a transmitter optical subassembly, it converts electrical signals into optical signals. A TOSA may include a light source, a driver chip, and a modulator. The light source can be a semiconductor laser (also known as a laser diode (LD)) or a light emitting diode (LED). The driver chip processes the electrical signals generated by the oDSP and drives the light source to emit modulated optical signals. The modulated optical signals are then transmitted to the fiber optic line via an optical fiber interface.
[0254] Optical receiver assembly (ROSA), also known as a receiver optical subassembly, is used to convert optical signals into electrical signals. ROSA may include photodetectors, amplifiers, etc. The photodetector can be an avalanche photodiode (APD) or a PIN photodiode. The amplifier may include a preamplifier and a post-amplifier. After the optical signal enters from the fiber optic interface, it is converted into an electrical signal by the photodetector, and then amplified by the amplifier to output an amplified electrical signal.
[0255] In this embodiment of the application, a computer program product is also provided, which includes program instructions stored in a computer-readable storage medium. The processor of a first network device reads the program instructions from the computer-readable storage medium and executes the program instructions, causing the first network device to perform... Figure 9 , Figure 18 or Figure 21 The process is shown below.
[0256] In this embodiment of the application, a computer program product is also provided, which includes program instructions stored in a computer-readable storage medium. The processor of the second network device reads the program instructions from the computer-readable storage medium and executes the program instructions, causing the second network device to perform... Figure 17 , Figure 19 or Figure 22 The process is shown below.
[0257] This application embodiment also provides a first chip, which is used to implement the above-described method for probabilistic constellation shaping encoding.
[0258] This application also provides a second chip for implementing the above-described method of probabilistic constellation shaping decoding.
[0259] Optionally, both the first chip and the second chip can be oDSP chips.
[0260] Those skilled in the art will recognize that the method steps and units described in the embodiments disclosed in this application can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0261] In the embodiments provided in this application, it should be understood that the disclosed system architecture, apparatus, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed may be indirect coupling or communication connection through some interfaces, devices, or modules, or may be electrical, mechanical, or other forms of connection.
[0262] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules; that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules can be selected to achieve the purpose of the embodiments of this application, depending on actual needs.
[0263] Furthermore, the modules in the various embodiments of this application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The integrated modules described above can be implemented in hardware or in software.
[0264] If the integrated module is implemented as a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, ROM, RAM, magnetic disks, or optical disks.
[0265] In this application, the terms "first" and "second," etc., are used to distinguish identical or similar items that have substantially the same function and purpose. It should be understood that there is no logical or temporal dependency between "first" and "second," nor does it limit the quantity or order of execution. It should also be understood that although the following description uses the terms "first" and "second," etc., to describe various elements, these elements should not be limited by the terms. These terms are merely used to distinguish one element from another. For example, without departing from the scope of the various examples, a first network device can be referred to as a second network device, and similarly, a second network device can be referred to as a first network device. Both the first network device and the second network device can be network devices, and in some cases, they can be separate and different network devices.
[0266] The above description is merely an exemplary embodiment of this application, but the scope of protection of this application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in this application, and such modifications or substitutions should all be covered within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method of performing probabilistic constellation shaping encoding, characterized by, The method comprises: performing probability constellation shaping encoding processing on first block data to obtain first encoded data, wherein the first block data belongs to a first group of first dimension data in N-dimension data, and the N-dimension data is obtained based on input data, and N is greater than or equal to 2; performing probability constellation shaping encoding processing on the i-th block data to obtain the i-th encoded data, wherein the i-th block data comprises one bit in the (i-1)-th encoded data and target block data, and the target block data belongs to a first group of i-th dimension data in the N-dimension data, and i is 2 to N.
2. The method of claim 1, wherein, N is equal to 2, the first group of first dimension data is on a first column of the input data, and the first group of i-th dimension data is on a first row of the input data.
3. The method of claim 2, wherein, One bit in the first encoded data is located at a position where the first row and the first column intersect.
4. The method according to claim 2 or 3, characterized in that, The i-th block data is second block data, and the method further comprises: performing probability constellation shaping encoding processing on third block data to obtain third encoded data, wherein the third block data belongs to a second group of first dimension data in the N-dimension data, and the second group of first dimension data is on a second column of the input data; The second block data further comprises one bit in the third encoded data.
5. The method of claim 4, wherein, The second column is adjacent to the first column.
6. The method according to claim 4 or 5, characterized in that, In the input data, the third block data is located after the first block data, and the third block data is adjacent to the first block data.
7. The method according to any one of claims 4 to 6, characterized in that, In a case where the first block data and the third block data have the same length, the first encoded data has the same length as the third encoded data.
8. The method according to any one of claims 4 to 6, characterized in that, The length difference between the first block data and the third block data is less than a target value.
9. The method according to any one of claims 1 to 8, characterized in that, The sum of the lengths of the N-dimension data is a first length, and the first length is determined according to a second length, and the second length is the length of encoded data obtained by performing probability constellation shaping encoding processing on the N-dimension data.
10. A method of performing probabilistic constellation shaping decoding, characterized by, The method comprises: performing probability constellation shaping decoding processing on the i-th encoded data to obtain the i-th block data, wherein the i-th block data comprises one bit in the (i-1)-th encoded data and target block data, and the target block data belongs to a first group of i-th dimension data in N-dimension data, and i is 2 to N; performing probability constellation shaping decoding processing on the first encoded data to obtain the first block data, wherein the first block data belongs to a first group of first dimension data in N-dimension data, and the target block data and the first group of first dimension data belong to output data.
11. The method of claim 10, wherein, N is equal to 2, the first group of i-th dimension data is on a first row of the output data, and the first group of first dimension data is on a first column of the output data.
12. The method of claim 11, wherein, The i-th block data is second block data, and the second block data further comprises one bit in the third encoded data, and the method further comprises: The third encoding data is subjected to a probability constellation shaping decoding process to obtain third block data, wherein the third block data belongs to a second group of first dimension data in N-dimension data, and the second group of first dimension data is on a second column of the output data.
13. A method of performing probabilistic constellation shaping encoding, characterized by, The method comprises: The first block data in the input data is subjected to a first probability constellation shaping encoding process to obtain intermediate data, wherein a first column of the intermediate data comprises encoding data obtained by subjecting the first block data to the first probability constellation shaping encoding process, and the intermediate data further comprises a part of the input data which is not subjected to the first probability constellation shaping encoding process; The intermediate data is subjected to a second probability constellation shaping encoding process to obtain output data.
14. The method of claim 13, wherein, The first block data is multiple; and the first block data in the input data is subjected to a first probability constellation shaping encoding process to obtain intermediate data, comprising: The multiple first block data in the input data is subjected to the first probability constellation shaping encoding process to obtain the intermediate data, wherein multiple columns of the intermediate data comprise encoding data obtained by subjecting the multiple first block data to the first probability constellation shaping encoding process, and the encoding data obtained by subjecting different first block data to the first probability constellation shaping encoding process belongs to different columns.
15. A method of performing probabilistic constellation shaping decoding, the method comprising: The method comprises: The input data is subjected to a first probability constellation shaping decoding process to obtain intermediate data, wherein a first column of the intermediate data comprises encoding data obtained by subjecting first block data to a first probability constellation shaping encoding process, and the intermediate data further comprises data which is not subjected to the first probability constellation shaping encoding process; The intermediate data is subjected to a second probability constellation shaping decoding process to obtain output data.
16. The method of claim 15, wherein, The intermediate data comprises encoding data obtained by subjecting multiple first block data to the first probability constellation shaping encoding process, and the encoding data obtained by subjecting different first block data to the first probability constellation shaping encoding process belongs to different columns.
17. A probabilistic constellation shaping encoder, characterized by It comprises an input interface, at least one column shaper, multiple row shapers, and an output interface; A first branch of the input interface is connected with an input end of the at least one column shaper; A second branch of the input interface and an output end of the at least one column shaper are connected with input ends of the multiple row shapers; Output ends of the multiple row shapers are connected with the output interface.
18. The probabilistic constellation shaping encoder of claim 17, wherein, In the case that there is a row shaper with the same input length in the multiple row shapers, the output data of the row shaper with the same input length has the same length.
19. A probabilistic constellation shaping decoder, characterized in that It comprises an input interface, multiple row de-shapers, at least one column de-shaper, and an output interface; The input interface is connected with input ends of the multiple row de-shapers; Input ends of the at least one column de-shaper and a first branch of the output interface are connected with output ends of the multiple row de-shapers; The at least one column de-shaper is connected with a second branch of the output interface.
20. The probabilistic constellation shaping decoder of claim 19, wherein, In the case that there is a row de-shaper with the same input length in the multiple row de-shapers, the output data of the row de-shaper with the same input length has the same length.
21. A method of performing probabilistic constellation shaping encoding, characterized by, The method comprises: For a first dimension of the N dimensions, performing a probabilistic constellation shaping encoding process on first dimension data to be encoded in the input data to obtain encoded data of the first dimension, N being greater than or equal to 2; For an i-th dimension of the N dimensions, performing a probabilistic constellation shaping encoding process on i-th dimension data to be encoded and (i-1)-th dimension encoded data in blocks of the input data to obtain i-th dimension encoded data, i taking values from 2 to N; Outputting N-th dimension encoded data, the N-th dimension encoded data being encoded data corresponding to the input data.
22. A method of performing probabilistic constellation shaping decoding, the method comprising: The method comprises: performing a probabilistic constellation shaping decoding process on i-th dimension encoded data in blocks to obtain (i-1)-th dimension encoded data and i-th dimension decoded data, i taking values from 2 to N; performing a probabilistic constellation shaping decoding process on first dimension encoded data to obtain 1-dimension decoded data; outputting N-dimension decoded data.
23. A network device, comprising: The network device comprises the probabilistic constellation shaping encoder of claim 17 or 18.
24. A network device, comprising: The network device comprises the probabilistic constellation shaping decoder of claim 19 or 20.
25. A communication system, characterized by The communication system comprises a first network device and a second network device; The first network device is configured to perform the method of any one of claims 1 to 9; the second network device is configured to perform the method of any one of claims 10 to 12; or, The first network device is configured to perform the method of claim 13 or 14; the second network device is configured to perform the method of claim 15 or 16; or, The first network device is configured to perform the method of claim 21; the second network device is configured to perform the method of claim 22.
26. A chip, characterized by The chip is configured to perform the method of any one of claims 1 to 9, or the method of claim 13 or 14, or the method of claim 21.
27. A chip, characterized by The chip is configured to perform the method of any one of claims 10 to 12, or the method of claim 15 or 16, or the method of claim 22.