Data processing method and data processing equipment in passive optical network system
By adopting the interleaving encoding method in a high-speed PON system, using the value interval and length to obtain data information and deinterleaving, the problem of error error diffusion and downlink synchronization is solved, and the correct decoding and synchronization of the data stream is achieved.
Patent Information
- Application Number
- CN202510253304.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2020-09-30
- Publication Date
- 2025-07-04
- Estimated Expiration
- 2040-09-30
AI Technical Summary
There are problems with error diffusion and downlink synchronization in high-speed PON systems, and the existing technology is difficult to effectively solve.
The data stream is processed by an interleaved encoding method, and by receiving the interleaved coded bit stream, data information is obtained using the first value interval and length, and deinterleaving is performed when the similarity exceeds the threshold to determine the synchronization information of the data stream.
It effectively solves the problem of code error diffusion in high-speed PON systems, realizes fast downlink synchronization, and ensures correct decoding and synchronization of data streams.
Smart Images

Figure CN120263344A_ABST
Abstract
Description
[0001] This application is a divisional application. The application number of the original application is 202011063398.5, and the original application date is September 30, 2020. The entire content of the original application is incorporated herein by reference. Technical Field
[0002] This application relates to the field of communication technologies, and in particular, to a data processing method and a data processing device in a passive optical network system. Background Art
[0003] A passive optical network (PON) system may include: an optical line terminal (OLT) located at the central office, an optical network unit (ONU) on the user side, and an optical distribution network (ODN). The OLT provides a network-side interface for the PON system and is connected to one or more ODNs. The ONU provides a user-side interface for the PON system, and the ONU is connected to the ODN.
[0004] In a PON system, the data transmission from the OLT to the ONU is called downstream transmission, and conversely, the data transmission from the ONU to the OLT is called upstream transmission. In a PON system, the upstream working clock and transmission time slot of the ONU need to be obtained from the downstream data stream. After the ONU is powered on, it enters the first working state. In this working state, the ONU needs to perform downstream data frame synchronization. In this process, the ONU needs to complete downstream clock synchronization, downstream data stream synchronization, and downstream data frame synchronization.
[0005] Currently, there are various implementation forms of PON systems. For example, the current XG(S)PON system, the current 10G EPON system, and the 2*25G EPON system. Different PON systems adopt different data processing mechanisms and different downstream synchronization mechanisms. With the continuous evolution of PON systems, faster PON systems will also emerge, such as the 50G PON system. In a high-speed PON system, there will be problems of error code diffusion and inability to perform downstream synchronization. Summary of the Invention
[0006] Embodiments of this application provide a data processing method and a data processing device in a passive optical network system, which are used to solve the problem of error code diffusion in a high-speed PON system and to achieve downstream synchronization in a high-speed PON system.
[0007] To solve the above technical problems, embodiments of this application provide the following technical solutions:
[0008] In a first aspect, an embodiment of the present application provides a data processing method in a passive optical network system, including: receiving a data stream sent by an encoding end, where the data stream is a bit stream encoded by interleaving, the data stream includes synchronization information, and the synchronization information is distributed in the data stream at a first arrangement interval; obtaining first data information from the data stream according to a first value interval and a first value length, where the first value interval is equal to the first arrangement interval, and the difference between the first value length and the length of the synchronization information is less than or equal to a preset error value; when the similarity between the first data information and the synchronization information exceeds a preset similarity threshold, deinterleaving the data stream according to the starting position of the first data information. In the above embodiment of the present application, the synchronization information and the data block are interleaved in the data stream sent by the encoding end, and the synchronization information is distributed at intervals in the data stream. Therefore, the data stream can be sampled according to the first value interval and the value length to obtain the first data information. The first data information is obtained by taking values from the data stream according to the value length, and the first data information is obtained by taking values from the data stream according to the value interval. When the similarity between the first data information and the synchronization information exceeds the similarity threshold, the starting position of the first data information can be used to deinterleave the data stream, and finally the synchronization information in the data stream can be obtained. The embodiment of the present application is applicable to the scenario of data stream interleaving encoding in a high-speed PON system, and solves the problem that it is impossible to determine downstream synchronization when the data stream uses interleaving encoding.
[0009] In a possible implementation, obtaining first data information from the data stream according to a first value interval and a first value length includes: obtaining a first data sub-stream with a length of P×N bits from the data stream, where P is the length of the synchronization information, N is the number of code blocks for the interleaving coding, and the code block includes at least one codeword; obtaining first data information including P-bit data from the first data sub-stream according to the first value interval and the first value length, where the value interval is (N - 1)×k bits, k is the granularity of the interleaving coding, and × represents the multiplication operation. In the above embodiment of the present application, the decoding end obtains k-bit data from the first data sub-stream once at intervals corresponding to the first value interval, and can obtain k-bit data from the first data sub-stream multiple times according to the first value interval. Then, all the obtained k-bit data are concatenated to obtain p-bit data. For example, if the size of the value interval is (N - 1)×k bits, then k-bit data are taken each time at an interval of "(N - 1)×k bits", and all the obtained k-bit data are combined to obtain first data information of P bits. This first data information can be used to determine whether it is similar to the synchronization information. In the embodiment of the present application, the decoding end can obtain first data information of the same length as the synchronization information in the above manner.
[0010] In a possible implementation, the obtaining first data information including P-bit data from the first data sub-stream according to the first value interval and the first value length includes: dividing the first data sub-stream into P / k data sets, where each data set includes N×k bits of data, and / represents the division operation; obtaining k-bit data from each of the P / k data sets, where the first data information includes: P bits of data obtained from the P / k data sets in total. In the above embodiment of the present application, after the decoding end determines P / k data sets, k-bit data are obtained from each data set. Then, for the P / k data sets, a total of P bits of data can be obtained, and these P bits of data constitute the aforementioned first data information, and the length of this first data information is P bits. In the embodiment of the present application, the decoding end can obtain first data information of the same length as the synchronization information in the above manner.
[0011] In a possible implementation, when the similarity between the first data information and the synchronization information does not exceed the similarity threshold, the method further includes: obtaining a second data sub-stream with a length of P×N bits from the data stream, where there is at least one different bit of data between the second data sub-stream and the first data sub-stream; obtaining second data information including P bits of data from the second data sub-stream according to a first value interval and a first value length; when the similarity between the second data information and the synchronization information exceeds the similarity threshold, de-interleaving the data stream according to the starting position of the second data information. In the above embodiments of the present application, the decoding end adopts a polling processing method. When the similarity between the first data information and the synchronization information exceeds the similarity threshold, the synchronization information is obtained from the data stream. When the similarity between the first data information and the synchronization information does not exceed the similarity threshold, the synchronization information is also obtained from the data stream. Similarly, if it is determined that the similarity between the second data information and the synchronization information does not exceed the similarity threshold, the decoding end can also obtain a third data sub-stream from the data stream until data information similar to the synchronization information is obtained.
[0012] In a possible implementation, after de-interleaving the data stream according to the starting position of the first data information, the method further includes: determining that the starting position of the first data information is the first bit in the first data information; using the first bit as the starting boundary of downlink synchronization to perform forward error correction (FEC) decoding on the data stream. In the above embodiments of the present application, after the decoding end de-interleaves the data stream according to the starting position of the first data information, the decoding end determines that the starting position of the first data information is the first bit in the first data information, that is, the decoding end finds the first bit in the first data information. This first bit is the delimiter for the decoding end to perform downlink synchronization. The decoding end uses the first bit as the starting boundary of downlink synchronization to perform FEC decoding on the data stream, realizing the FEC decoding of the data stream received by the decoding end. Thus, the decoding end can obtain the original data block before the encoding end performs FEC encoding, and the decoding end obtains the content of the encoded and transmitted data block.
[0013] In a possible implementation, after using the first bit as the starting boundary of downlink synchronization and performing FEC decoding on the data stream, the method further includes: if the FEC decoding of the data stream is successful, determining that the first bit in the first data information is the starting boundary of the downlink synchronization. In the above embodiments of the present application, the FEC decoding at the decoding end can be implemented by an FEC decoder, and the FEC decoder can output a flag indicating whether the decoding is successful. If the FEC decoding of the data stream is successful, it indicates that the first bit of the first data information determined by the decoding end as the starting position of the synchronization information is correct. At this time, the decoding end determines that the first bit in the first data information is the starting boundary of the downlink synchronization, further verifying the correctness of the downlink synchronization when the decoding end obtains the interleaved coding in the PON system.
[0014] In a possible implementation, after de-interleaving the data stream according to the starting position of the first data information, the method further includes: determining that the starting position of the first data information is the first bit in the first data information; using the first bit as the starting boundary of the downlink synchronization and performing descrambling on the data stream using a preset scrambling code. In the above embodiments of the present application, if the data stream needs to be scrambled before being sent to the decoding end, the encoding end can determine a preset scrambling code and then use the scrambling code to scramble the data stream. The process and algorithm of scrambling are not limited. In the embodiments of the present application, since the encoding end scrambles the data stream, the decoding end can also perform descrambling on the data stream after determining the position of the synchronization information in the data stream. In the embodiments of the present application, correct descrambling at the decoding end also requires correct downlink synchronization to achieve descrambling of the received data stream.
[0015] In a second aspect, an embodiment of the present application further provides a data processing method in a passive optical network system, including: performing FEC encoding on a data block to obtain an encoded data block; performing interleaved coding on the encoded data block and synchronization information to obtain a data stream to be sent, where the synchronization information is distributed in the data stream at a first arrangement interval; and sending the data stream to a decoding end. In the above embodiments of the present application, the encoded data block after FEC encoding and the synchronization information can be interleaved to obtain a data stream to be sent. The data stream is a bit stream using interleaved coding, and the data stream includes synchronization information, and the synchronization information is distributed in the data stream at a first arrangement interval, realizing the uniform distribution of the data block in the data stream and effectively solving the problem of error propagation in a high-speed PON system.
[0016] In a possible implementation, the interleaved encoding of the encoded data block and the synchronization information includes: determining N code blocks for interleaved encoding; encoding the data block and the synchronization information into the N code blocks respectively according to the interleaved encoding granularity k, where the length of the synchronization information is P bits. In the above embodiments of the present application, the encoding end first determines the value of N, where N represents the number of code blocks for interleaved encoding. Here, 1 code block may include one or more codewords. In subsequent embodiments, 1 code block is taken as 1 codeword for illustrative purposes. The length of the synchronization information is P bits, and the synchronization information and the data block will be jointly interleaved encoded. The encoding end encodes the data block and the synchronization information into N code blocks respectively according to the interleaved encoding granularity k. The interleaved encoding granularity k refers to the number of bits used in each interleaving. For example, the encoding end first sends k bits of data in codeword 1 (for example, k can be 1), then sends k bits in codeword 2, then k bits in codewords 3, 4,..., n, and so on in a cycle until all k bits of data in n codewords are sent. Then, the same method is used to process codewords n + 1 to 2n until the entire data frame is sent. After interleaved encoding, the synchronization information for delimitation will be scattered at multiple positions in the data stream. Therefore, the decoding end needs to be able to determine the position of the synchronization information in the data stream.
[0017] In a possible implementation, before sending the data stream to the decoding end, the method further includes: scrambling the data stream using a preset scrambling code. In the above embodiments of the present application, if the data stream needs to be scrambled before being sent to the decoding end, the encoding end can determine a preset scrambling code and then use the scrambling code to scramble the data stream. The process and algorithm of scrambling are not limited. In the embodiments of the present application, since the encoding end scrambles the data stream, the decoding end can also descramble the data stream after determining the position of the synchronization information in the data stream.
[0018] In a third aspect, an embodiment of the present application provides a data processing method in a PON system, including: obtaining N code blocks to be encoded, where the first code block among the N code blocks includes synchronization information, and N is the number of code blocks for interleaved coding; performing interleaved coding on the data other than the synchronization information in the N code blocks and not performing interleaved coding on the synchronization information; generating a data stream according to the interleaved-coded data and the synchronization information, where the synchronization information is located before the interleaved-coded data in the data stream. In the above embodiment of the present application, the encoding end generates a data stream according to the interleaved-coded data and the synchronization information, and the synchronization information is located before the interleaved-coded data in the data stream. This synchronization information is not interleaved in the data stream, so that the decoding end can obtain the synchronization information from the head of the data stream. The decoding end performs de-interleaving on the data in the data stream after the synchronization information, so as to obtain the data stream sent by the encoding end. By interleaving the data blocks, the problem of error propagation in the PON system is solved. In addition, the synchronization information in the data stream is not interleaved, so that the decoding end can quickly determine the synchronization information in the data stream, and the problem of inability to perform downlink synchronization in the PON system is solved.
[0019] In some embodiments of the present application, the performing interleaved coding on the data other than the synchronization information in the N code blocks and not performing interleaved coding on the synchronization information includes: not performing interleaved coding on the synchronization information with a length of P bits in the first code block, and performing interleaved coding on the data of the first P bits in the second to the Nth code blocks among the N code blocks; performing interleaved coding on the data other than the synchronization information in the first code block and the data other than the P-bit data in the second to the Nth code blocks. In the above embodiment of the present application,
[0020] Fourthly, an embodiment of the present application provides a data processing method in a PON system, including: receiving a data stream sent by an encoding end; obtaining synchronization information from the data stream, where the synchronization information is located before the data after interleaving encoding in the data stream and the synchronization information is not interleaved encoded; deinterleaving the data in the data stream that is located after the synchronization information. In the above embodiment of the present application, the encoding end generates a data stream according to the data after interleaving encoding and the synchronization information. The synchronization information is located before the data after interleaving encoding in the data stream, and the synchronization information is not interleaved in the data stream, so that the decoding end can obtain the synchronization information from the head of the data stream. The decoding end deinterleaves the data in the data stream that is located after the synchronization information, so that the data stream sent by the encoding end can be obtained. By interleaving data blocks, the problem of error propagation in the PON system is solved. In addition, the synchronization information in the data stream is not interleaved, so that the decoding end can quickly determine the synchronization information in the data stream, and the problem of inability to perform downlink synchronization in the PON system is solved.
[0021] In some embodiments of the present application, the deinterleaving the data in the data stream that is located after the synchronization information includes: obtaining (N - 1)×P bits of data in the data stream that is located after the synchronization information, where N is the number of code blocks for interleaving decoding, and P is the length of the synchronization information; deinterleaving the (N - 1)×P bits of data into the second code block to the Nth code block; deinterleaving the data in the data stream that is located after the (N - 1)×P bits of data into the first code block to the Nth code block. In the above embodiment of the present application,
[0022] Fifthly, an embodiment of the present application provides a data processing device, including: a receiving module, configured to receive a data stream sent by an encoding end, where the data stream is a bit stream using interleaving encoding, the data stream includes synchronization information, and the synchronization information is distributed in the data stream at a first arrangement interval; a processing module, configured to obtain first data information from the data stream according to a first value interval and a first value length, where the first value interval is equal to the first arrangement interval, and the difference between the first value length and the length of the synchronization information is less than or equal to a preset error value; a processing module, configured to deinterleave the data stream according to the starting position of the first data information when the similarity between the first data information and the synchronization information exceeds a preset similarity threshold.
[0023] In a possible implementation, the processing module is configured to obtain a first data sub-stream of P×N bits from the data stream, where P is the length of the synchronization information, N is the number of code blocks for the interleaving coding, and the code block includes at least one codeword; obtain first data information including P bits of data from the first data sub-stream according to a first value interval and a first value length, where the value interval is (N - 1)×k bits, k is the granularity of the interleaving coding, and × represents the multiplication operation.
[0024] In a possible implementation, the processing module is configured to divide the first data sub-stream into P / k data sets, where each data set includes N×k bits of data, and / represents the division operation; obtain k bits of data from each of the P / k data sets, where the first data information includes: P bits of data obtained from the P / k data sets in total.
[0025] In a possible implementation, when the similarity between the first data information and the synchronization information does not exceed the similarity threshold, the processing module is configured to obtain a second data sub-stream of P×N bits from the data stream, where there is at least one different bit of data between the second data sub-stream and the first data sub-stream; obtain second data information including P bits of data from the second data sub-stream according to the first value interval and the first value length; when the similarity between the second data information and the synchronization information exceeds the similarity threshold, de-interleave the data stream according to the starting position of the second data information.
[0026] In a possible implementation, after de-interleaving the data stream according to the starting position of the first data information, the processing module is configured to determine the starting position of the first data information as the first bit in the first data information; use the first bit as the starting boundary of the downlink synchronization, and perform forward error correction (FEC) decoding on the data stream.
[0027] In a possible implementation, after performing FEC decoding on the data stream with the first bit as the starting boundary of the downlink synchronization, if the FEC decoding of the data stream is successful, the processing module is configured to determine the first bit in the first data information as the starting boundary of the downlink synchronization.
[0028] In a possible implementation, the processing module is configured to, after de-interleaving the data stream according to the start position of the first data information, determine that the start position of the first data information is the first bit in the first data information; use the first bit as the start boundary of downlink synchronization, and descramble the data stream using a preset scrambling code.
[0029] In the fifth aspect of the present application, the component modules of the data processing device may also perform the steps described in the foregoing first aspect and various possible implementations. For details, refer to the description of the first aspect and various possible implementations above.
[0030] In a sixth aspect, an embodiment of the present application provides a data processing device, including: a processing module configured to perform FEC encoding on a data block to obtain an encoded data block; the processing module is configured to perform interleaving encoding on the encoded data block and synchronization information to obtain a data stream to be transmitted, and the synchronization information is distributed in the data stream at a first arrangement interval; a sending module configured to send the data stream to a decoding end.
[0031] In a possible implementation, the processing module is configured to determine N code blocks for interleaving encoding; encode the data block and the synchronization information into the N code blocks respectively according to the granularity k of the interleaving encoding, and the length of the synchronization information is P bits.
[0032] In a possible implementation, the processing module is configured to scramble the data stream using a preset scrambling code before the sending module sends the data stream to the decoding end.
[0033] In the sixth aspect of the present application, the component modules of the data processing device may also perform the steps described in the foregoing second aspect and various possible implementations. For details, refer to the description of the second aspect and various possible implementations above.
[0034] In a seventh aspect, an embodiment of the present application provides a data processing device, including: a processing module configured to obtain N code blocks to be encoded, where the first code block of the N code blocks includes synchronization information, and N is the number of code blocks for interleaving encoding; the processing module is configured to perform interleaving encoding on the data other than the synchronization information in the N code blocks and not perform interleaving encoding on the synchronization information; the processing module is configured to generate a data stream according to the interleaved data and the synchronization information, and the synchronization information is located before the interleaved data in the data stream.
[0035] In some embodiments of the present application, the processing module is configured not to perform interleaving encoding on the synchronization information of P bits in the first code block, and to perform interleaving encoding on the data of the first P bits in the second to the Nth code blocks among the N code blocks; and to perform interleaving encoding on the data other than the synchronization information in the first code block and the data other than the P-bit data in the second to the Nth code blocks.
[0036] In the seventh aspect of the present application, the constituent modules of the data processing device may also execute the steps described in the foregoing third aspect and various possible implementation manners. For details, refer to the descriptions in the foregoing third aspect and various possible implementation manners.
[0037] In an eighth aspect, an embodiment of the present application provides a data processing device, including: a receiving module, configured to receive a data stream sent by an encoding end; a processing module, configured to obtain synchronization information from the data stream, where the synchronization information is located before the interleaved-encoded data in the data stream and the synchronization information is not interleaved-encoded; and a processing module, configured to de-interleave the data in the data stream that is located after the synchronization information.
[0038] In some embodiments of the present application, the processing module is configured to obtain (N - 1)×P bits of data in the data stream that is located after the synchronization information, where N is the number of code blocks for interleaving decoding and P is the length of the synchronization information; de-interleave the (N - 1)×P bits of data into the second to the Nth code blocks; and de-interleave the data in the data stream that is located after the (N - 1)×P bits of data into the first to the Nth code blocks.
[0039] In the eighth aspect of the present application, the constituent modules of the data processing device may also execute the steps described in the foregoing fourth aspect and various possible implementation manners. For details, refer to the descriptions in the foregoing fourth aspect and various possible implementation manners.
[0040] In a ninth aspect, an embodiment of the present application provides a computer-readable storage medium, in which instructions are stored, and when the instructions run on a computer, the computer is caused to execute the method described in any one of the foregoing first to fourth aspects.
[0041] In a tenth aspect, an embodiment of the present application provides a computer program product containing instructions, and when the computer program product runs on a computer, the computer is caused to execute the method described in any one of the foregoing first to fourth aspects.
[0042] Eleventh aspect, an embodiment of the present application provides a communication device, which may include entities such as a terminal device or a chip. The communication device includes: a processor and a memory; the memory is used to store instructions; the processor is used to execute the instructions in the memory, so that the communication device executes the method described in any one of the foregoing first aspect to fourth aspect.
[0043] Twelfth aspect, the present application provides a chip system, which includes a processor for supporting a data processing device to implement the functions involved in the above aspects. For example, sending or processing the data and / or information involved in the above method. In a possible design, the chip system further includes a memory, and the memory is used to store the necessary program instructions and data of the data processing device. The chip system may be composed of chips or may include chips and other discrete devices. Description of the Drawings
[0044] Figure 1 It is a schematic diagram of the composition architecture of a passive optical network system provided by an embodiment of the present application;
[0045] Figure 2 It is a schematic diagram of an interaction process between an encoding end and a decoding end in a data processing method in a passive optical network system provided by an embodiment of the present application;
[0046] Figure 3 It is a schematic diagram of an interaction process between an encoding end and a decoding end in a data processing method in a passive optical network system provided by an embodiment of the present application;
[0047] Figure 4 It is a schematic diagram of the data arrangement before interleaved coding provided by an embodiment of the present application;
[0048] Figure 5 It is a schematic diagram of the interleaving of synchronization information among 4 codewords provided by an embodiment of the present application;
[0049] Figure 6 It is a schematic diagram of the value window provided by an embodiment of the present application;
[0050] Figure 7 It is a schematic diagram of the value window moving backward by 1 bit provided by an embodiment of the present application;
[0051] Figure 8 It is a schematic diagram that the encoding end does not interleave the synchronization information provided by an embodiment of the present application;
[0052] Figure 9 It is a schematic diagram of the composition structure of a data processing device provided by an embodiment of the present application. Detailed Embodiments
[0053] The embodiments of the present application provide a data processing method and a data processing device in a passive optical network system, which are used to solve the problem of error code diffusion in a high-speed PON system and to achieve downlink synchronization in a high-speed PON system.
[0054] The embodiments of the present application will be described below with reference to the accompanying drawings.
[0055] Terms such as "first" and "second" in the specification, claims and the above-mentioned drawings of the present application are used to distinguish similar objects, and do not have to be used to describe a specific order or sequence. It should be understood that such terms can be interchanged under appropriate circumstances, which is only a way of distinguishing objects with the same attributes when describing the embodiments of the present application. In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion, so that a process, method, system, product or device including a series of units does not have to be limited to those units, but may include other units that are not clearly listed or are inherent to these processes, methods, products or devices.
[0056] Figure 1 As shown, it is a system architecture diagram of a PON system, and the PON system may include: an encoding end 101 and a decoding end 102.
[0057] Among them, the encoding end 101 and the decoding end 102 can communicate with each other. For example, the encoding end 101 sends a data stream to the decoding end 102. The encoding end 101 can be implemented by a data processing device. The encoding end 101 can adopt an interleaved coding method to solve the error code problem in the current PON system. The decoding end 102 can be implemented by another data processing device. The decoding end 102 obtains first data information according to a preset value interval and value length, and then obtains synchronization information through the first data information. For example, the encoding end 101 can specifically be an OLT device, and the decoding end 102 can specifically be an ONU device.
[0058] Illustrated as follows, the ONU device can provide a user-side interface for the PON system, and the ONU device is connected to the ODN device. If the ONU device directly provides a user port function, such as an Ethernet user port for a personal computer to access the Internet, the ONU device can be called an optical network terminal (ONT). In subsequent embodiments, the ONU device can generally refer to both the ONU device and the ONT device.
[0059] The PON system provided in the embodiment of the present application may be a high-speed PON system, for example, a 50G PON system. In the PON system provided in the embodiment of the present application, in addition to the enhanced forward error correction (FEC) such as low density parity checkcode (LDPC), digital equalization technology may be introduced to compensate for the performance cost caused by insufficient bandwidth of optical devices and transmission dispersion. For some digital equalizers, such as decision feedback equalization (DFE) or maximum likelihood sequence estimation (MLSE), while compensating for link performance, error diffusion or burst errors may be introduced, that is, if an error occurs at the receiving end (i.e., decoding end), the error may cause errors or associated errors in multiple bits behind it, and error diffusion will be used as an example to illustrate. The phenomenon of burst errors may cause the distribution of errors in the data stream to be not random enough, and there are more errors in some FEC codewords, resulting in FEC being unable to complete the correction of erroneous bits. In the PON system provided in the embodiment of the present application, an interleaving coding method can be introduced, for example, a bit interleaving coding method is adopted to disperse the error diffusion (or burst error, associated error, etc.) caused by the equalizer into different FEC code words at the receiving end. While the encoding end adopts bit interleaving, when the decoding end performs deinterleaving, it is necessary to identify the boundary of the interleaved synchronization information and the size of the data block in advance. The decoding end can solve the problem of data processing and synchronization of the sending and receiving ends after the interleaving is introduced in the PON system.
[0060] like Figure 2 As shown, an embodiment of the present application provides a data processing method in a passive optical network system, comprising:
[0061] 201. The encoding end performs FEC encoding on the data block to obtain an encoded data block.
[0062] The encoding end may perform FEC encoding on one or more data blocks, thereby obtaining an encoded data block. The specific process of FEC encoding will not be described in detail. The data block may include one or more FEC codewords.
[0063] 202. The encoding end interleaves the encoded data blocks and the synchronization information to obtain a data stream to be sent, and the synchronization information is distributed in the data stream according to a first arrangement interval.
[0064] Among them, the encoding end can also obtain synchronization information, which can also be referred to as a synchronization sequence (abbreviated as Psync). To solve the code diffusion problem generated in the PON system, the embodiment of the present application introduces interleaved coding before downlink transmission, that is, the data block after FEC coding and the synchronization information can be interleaved coded to obtain the data stream to be sent. The synchronization information is distributed in the data stream at a first arrangement interval. For example, the first arrangement interval is related to the depth of the interleaved coding. The first arrangement interval can be a preset arrangement interval, or an arrangement interval determined after negotiation between the encoding end and the decoding end, or the first arrangement interval is an arrangement interval determined by the encoding end, and then the encoding end notifies the decoding end of this arrangement interval.
[0065] Before interleaved coding, the synchronization information can be located before the data block after FEC coding, that is, the synchronization information can be the header data of the data block after FEC coding. For example, the interleaved coding is based on FEC codewords. Before interleaving, the synchronization information is located in the first codeword. After the data block after FEC coding and the synchronization information are interleaved between multiple codewords. Through interleaved coding, the generated error codes are randomly distributed in the data stream, and the error codes within multiple FEC codewords are relatively average, and there will be no problem that FEC cannot correct the error bits.
[0066] In some embodiments of the present application, in step 202, the encoding end performs interleaved coding on the encoded data block and the synchronization information, including:
[0067] The encoding end determines N code blocks for interleaved coding;
[0068] The encoding end encodes the data block and the synchronization information into N code blocks respectively according to the interleaved coding granularity k, and the length of the synchronization information is P bits.
[0069] Among them, the encoding end first determines the value of N, where N represents the number of code blocks for interleaved encoding. One code block may include one or more codewords. In the following embodiments, one code block is taken as one codeword for illustrative purposes. The length of the synchronization information is P bits. The synchronization information and the data block will be jointly subjected to interleaved encoding. The encoding end encodes the data block and the synchronization information into N code blocks respectively according to the interleaved encoding granularity k. The interleaved encoding granularity k refers to the number of bits used in each interleaving. For example, the encoding end first sends k bits of data in codeword 1 (for example, k can be 1), then sends k bits in codeword 2, then k bits in codewords 3, 4, …, n, and so on in a cycle until k bits of data in all n codewords are sent. Then, n + 1 to 2n codewords are processed in the same way until the entire data frame is sent. After interleaved encoding, the synchronization information for delimitation will be scattered at multiple positions in the data stream. Therefore, the decoding end needs to be able to determine the position of the synchronization information in the data stream.
[0070] 203. The encoding end sends a data stream to the decoding end.
[0071] Among them, after the encoding end performs interleaved encoding and obtains the data to be sent, communication can be carried out between the encoding end and the receiving end, and the encoding end sends the data stream to the decoding end.
[0072] In some embodiments of the present application, before step 203 where the encoding end sends a data stream to the decoding end, the data processing method provided by the embodiments of the present application further includes the following steps:
[0073] Scramble the data stream using a preset scrambling code.
[0074] Among them, if the data stream needs to be scrambled before being sent to the decoding end, the encoding end can determine the preset scrambling code and then use the scrambling code to scramble the data stream. The process and algorithm used for scrambling are not limited. In the embodiments of the present application, since the encoding end scrambles the data stream, the decoding end can also descramble the data stream after determining the position of the synchronization information in the data stream.
[0075] In the embodiments of the present application, the encoding end performs interleaved encoding on both the synchronization information and the data block, resulting in a situation where the synchronization information is distributed in the data stream at arranged intervals. At this time, the decoding end needs to be able to extract the synchronization information in the received data stream. Specifically, the decoding end can execute the subsequent steps 204 to 206.
[0076] 204. The decoding end receives the data stream sent by the encoding end. The data stream is a bit stream using interleaved encoding, and the data stream includes synchronization information, and the synchronization information is distributed in the data stream at a first arranged interval.
[0077] Among them, communication can be carried out between the encoding end and the receiving end. The encoding end sends a data stream to the decoding end, and the decoding end can receive the data stream from the encoding end. The data stream carries synchronization information and data blocks, and the synchronization information and data blocks are interleaved and encoded. The synchronization information is distributed in the data stream at a first arrangement interval. The synchronization information and data blocks in the data stream are interleaved and encoded by the encoding end. Therefore, the data stream is a bit stream using interleaved encoding. For example, the first arrangement interval is related to the depth of the interleaved encoding. The first arrangement interval can be a preset arrangement interval, or an arrangement interval determined after negotiation between the encoding end and the decoding end, or the first arrangement interval is an arrangement interval determined by the encoding end, and then the encoding end notifies the decoding end of this arrangement interval.
[0078] 205. The decoding end obtains first data information from the data stream according to a first value-taking interval and a first value-taking length. The size of the value-taking interval is equal to the size of the arrangement interval, and the difference between the value-taking length and the length of the synchronization information is less than or equal to a preset error value.
[0079] Among them, the decoding end obtains the first value-taking interval and the first value-taking length. The first value-taking interval (hereinafter referred to as the value-taking interval for short) refers to the interval size used by the decoding end when sampling data from the data stream. The value of this value-taking interval can be equal to the arrangement interval of the synchronization information in the data stream. For example, the first value-taking interval is related to the depth of the interleaved encoding. The first value-taking interval can be a preset value-taking interval, or a value-taking interval determined after negotiation between the encoding end and the decoding end, or the first value-taking interval is a value-taking interval determined by the encoding end, and then the encoding end notifies the decoding end of this value-taking interval. The first value-taking length (hereinafter referred to as the value-taking length for short) refers to the total data length that the decoding end needs to collect from the data stream. In addition, the first value-taking length can be a preset value-taking length, or a value-taking length determined after negotiation between the encoding end and the decoding end, or the first value-taking length is a value-taking length determined by the encoding end, and then the encoding end notifies the decoding end of this value-taking length. Among them, the difference between the value-taking length and the length of the synchronization information is less than or equal to a preset error value. The error value can be determined according to specific application scenarios. For example, the error value can be t bits. For example, t can be 0 or 1, etc. There is no limit on the value of the error value. For example, if the length of the synchronization information is P bits, then the value-taking length can be P bits, or the value-taking length can be P - 1 or P + 1 bits.
[0080] In the embodiment of the present application, the decoding end obtains a preset value interval and a first value length. After receiving the data stream, the decoding end obtains first data information from the data stream according to the first value interval and the first value length. The decoding end can sample the data stream according to two parameters (value interval and value length) pre-saved locally to obtain the first data information. The length of the first data information is the value length, and the constituent data in the first data information is obtained by sampling the data stream according to the value interval. The size of the value interval is equal to the size of the arrangement interval, and the difference between the value length and the length of the synchronization information is less than or equal to a preset error value.
[0081] It should be noted that in the embodiment of the present application, the first data information includes the data collected by the decoding end from the received data stream. The first data information can be obtained by sampling the synchronization information carried in the data stream. The first data information can be used to determine whether it is used for downlink synchronization. For example, the decoding end can determine whether the similarity between the first data information and the synchronization information exceeds a preset similarity threshold. Here, the similarity refers to the degree of similarity between the first data information and the synchronization information. For example, the number of bits of the same data in the first data information and the synchronization information can be the similarity. The similarity threshold is the threshold of the similarity degree between the first data information and the synchronization information. If the similarity between the first data information and the synchronization information exceeds the preset similarity threshold, it means that the first data information and the synchronization information are similar, and the first data information can be used as the synchronization information determined by the decoding end from the data stream. If the similarity between the first data information and the synchronization information does not exceed the preset similarity threshold, it means that the first data information and the synchronization information are not similar, and the first data information cannot be used as the synchronization information determined by the decoding end from the data stream. The following is an example. The similarity threshold can be an absolute number of similar bits or a similar ratio value. For example, if the synchronization information has P bit data, the similarity threshold can be P - m, where m can be 2, 3, 4, etc. Another example is that the similarity threshold can be (P - m) / P, where m can be 2, 3, 4, etc. For example, the similarity threshold can be 95% or 96%, etc., specifically depending on the values of m and P.
[0082] It is not limited that in the embodiment of the present application, the decoding end can also determine whether the difference degree between the first data information and the synchronization information is less than or equal to a preset difference degree threshold. Through this determination, it can also be determined whether the similarity between the first data information and the synchronization information exceeds the preset similarity threshold. Here, the difference degree refers to the degree of dissimilarity between the first data information and the synchronization information. Similarity and difference degree are two opposite parameters for measuring the similarity degree between the first data information and the synchronization information, which will not be elaborated here.
[0083] In some embodiments of the present application, in step 205, the decoding end obtains first data information from the data stream according to a first value interval and a first value length, including:
[0084] A1. The decoding end obtains a first data sub-stream with a length of P×N bits from the data stream, where P is the length of the synchronization information, N is the number of code blocks subjected to interleaving coding, and a code block includes at least one codeword.
[0085] Among them, the decoding end determines a value window according to the value interval and the value length. The value window is P×N bits. Then the decoding end can obtain a first data sub-stream with a length of P×N bits from the data stream according to this value window. The first data sub-stream refers to a data sequence intercepted from the data stream received by the decoding end. The specific interception method depends on the value window determined by the decoding end. Among them, P is the length of the synchronization information, N is the number of code blocks subjected to interleaving coding, and a code block includes at least one codeword.
[0086] A2. The decoding end obtains first data information including P bits of data from the first data sub-stream according to the first value interval and the first value length, where the value interval is (N - 1)×k bits, k is the granularity of interleaving coding, and × represents a multiplication operation.
[0087] Among them, the decoding end obtains k bits of data from the first data sub-stream once at an interval corresponding to the first value interval. According to the first value interval, k bits of data can be obtained from the first data sub-stream multiple times. Then all the obtained k bits of data are connected together to obtain p bits of data. For example, if the size of the value interval is (N - 1)×k bits, then each time at an interval of "(N - 1)×k bits", k bits of data are taken out, and then all the obtained k bits of data are combined to obtain first data information of P bits. This first data information can be used to determine whether it is similar to the synchronization information. In the embodiments of the present application, the decoding end can obtain first data information with the same length as the synchronization information in the above manner.
[0088] Illustrated by way of example, N is the number of code blocks subjected to interleaving coding. N multiplied by the code block size is the depth of interleaving coding. For example, if the size of each code block is 1 FEC codeword and k is equal to 1, then the decoding end obtains 1 bit of data from the first data sub-stream at an interval of every N - 1 bits. Since the length of the first data sub-stream is N×P, first data information including P bits of data can be obtained.
[0089] Further, in some embodiments of the present application, in step A2, the decoding end obtains first data information including P bits of data from the first data sub-stream according to the first value interval and the first value length, including:
[0090] A21. The decoding end divides the first data sub-stream into P / k data sets, where each data set includes N×k bit data, and / represents the division operation.
[0091] Among them, the length of the first data sub-stream is N×P. The decoding end intercepts the first data sub-stream according to the interleaving coding granularity of k, so as to obtain P / k data sets. Among them, each data set includes N×k bit data, and / represents the division operation. If k is equal to 1, then p data sets can be obtained. If k is equal to 2, then P / 2 data sets can be obtained, and so on.
[0092] A22. The decoding end respectively obtains k bit data from each of the P / k data sets. Among them, the first data information includes: P bit data obtained from a total of P / k data sets.
[0093] Among them, after the decoding end determines the P / k data sets, for each data set, k bit data is obtained. Then, for the P / k data sets, a total of P bit data can be obtained. These P bit data constitute the aforementioned first data information, and the length of the first data information is P bits. In the embodiments of the present application, the decoding end can obtain the first data information with the same length as the synchronization information in the above manner.
[0094] 206. When the similarity between the first data information and the synchronization information exceeds a preset similarity threshold, the decoding end de-interleaves the data stream according to the starting position of the first data information.
[0095] In the embodiments of the present application, after the decoding end obtains the first data information in the manner of step 205, the decoding end can determine whether the similarity between the first data information and the synchronization information exceeds a preset similarity threshold. When the similarity between the first data information and the synchronization information exceeds the preset similarity threshold, it means that the first data information is very similar to the synchronization information. The first data information can be used as the synchronization information determined by the decoding end from the data stream. The decoding end de-interleaves the data stream according to the starting position of the first data information to obtain the original data stream after de-interleaving. That is, the decoding end can use the starting position of the first data information as the boundary of the downlink synchronization to determine the synchronization information in the data stream, solving the problem that the downlink synchronization cannot be determined when using interleaving coding in the PON system.
[0096] In some embodiments of the present application, when the similarity between the first data information and the synchronization information does not exceed the similarity threshold, the data processing method executed by the decoding end further includes the following steps:
[0097] B1. The decoding end obtains a second data sub-stream of P×N bits from the data stream, where there is at least one bit of data different between the second data sub-stream and the first data sub-stream;
[0098] B2. The decoding end obtains second data information including P bits of data from the second data sub-stream according to a first value interval and a first value length;
[0099] B3. When the similarity between the second data information and the synchronization information exceeds the similarity threshold, the decoding end de-interleaves the data stream according to the starting position of the second data information.
[0100] Among them, the decoding end adopts a polling processing method. When the similarity between the first data information and the synchronization information exceeds the similarity threshold, the synchronization information is obtained from the data stream through the aforementioned step 206. When the similarity between the first data information and the synchronization information does not exceed the similarity threshold, the synchronization information is obtained from the data stream through steps B1 to B3. Similarly, if it is determined through steps B1 to B2 that the similarity between the second data information and the synchronization information does not exceed the similarity threshold, the decoding end can also obtain a third data sub-stream from the data stream until data information similar to the synchronization information is obtained. The implementation manners of steps B1 to B3 are similar to the processing of the first data information in the foregoing embodiments and will not be elaborated here.
[0101] In some embodiments of the present application, after the decoding end de-interleaves the data stream according to the starting position of the first data information in step 206, the data processing method executed by the decoding end further includes the following steps:
[0102] C1. The decoding end determines that the starting position of the first data information is the first bit in the first data information;
[0103] C2. The decoding end uses the first bit as the starting boundary of the downlink synchronization and performs forward error correction (FEC) decoding on the data stream.
[0104] Among them, after the decoding end de-interleaves the data stream according to the starting position of the first data information, the decoding end determines that the starting position of the first data information is the first bit in the first data information, that is, the decoding end finds the first bit in the first data information. This first bit is the delimiter for the decoding end to perform downlink synchronization. The decoding end uses the first bit as the starting boundary of the downlink synchronization and performs FEC decoding on the data stream, realizing the FEC decoding of the data stream received by the decoding end. Thus, the decoding end can obtain the original data block before the encoding end performs FEC encoding, and the decoding end obtains the content of the encoded and transmitted data block.
[0105] In some embodiments of the present application, after the decoding end uses the first bit as the starting boundary of downlink synchronization and performs FEC decoding on the data stream in step C2, the data processing method executed by the decoding end further includes the following steps:
[0106] If the FEC decoding of the data stream is successful, the decoding end determines that the first bit in the first data information is the starting boundary of downlink synchronization.
[0107] Among them, the FEC decoding by the decoding end can be implemented by an FEC decoder, and the FEC decoder can output a flag indicating whether the decoding is successful. If the FEC decoding of the data stream is successful, it means that the first bit of the first data information determined by the decoding end as the starting position of the synchronization information is correct. At this time, the decoding end determines that the first bit in the first data information is the starting boundary of downlink synchronization, further verifying the correctness of the downlink synchronization when the PON system in the decoding end adopts interleaved coding.
[0108] In some embodiments of the present application, after the decoding end deinterleaves the data stream according to the starting position of the first data information in step 206, the data processing method executed by the decoding end further includes the following steps:
[0109] The decoding end determines that the starting position of the first data information is the first bit in the first data information;
[0110] The decoding end uses the first bit as the starting boundary of downlink synchronization and descrambles the data stream using a preset scrambling code.
[0111] Among them, if the data stream needs to be scrambled before being sent to the decoding end, the encoding end can determine a preset scrambling code and then use the scrambling code to scramble the data stream. The scrambling process and the adopted algorithm are not limited. In the embodiments of the present application, since the encoding end scrambles the data stream, the decoding end can also descramble the data stream after determining the position of the synchronization information in the data stream. In the embodiments of the present application, correct descrambling by the decoding end also requires correct downlink synchronization to achieve descrambling of the received data stream.
[0112] As can be seen from the examples of the foregoing embodiments, first, a data stream sent by an encoding end is received. The data stream is a bit stream encoded by interleaving. The data stream includes synchronization information, and the synchronization information is distributed in the data stream at a first arrangement interval. Then, first data information is obtained from the data stream according to a first value interval and a first value length. The size of the value interval is equal to the size of the arrangement interval, and the difference between the value length and the length of the synchronization information is less than or equal to a preset error value. When the similarity between the first data information and the synchronization information exceeds a preset similarity threshold, the data stream is deinterleaved according to the starting position of the first data information. In the embodiments of the present application, the synchronization information and data blocks in the data stream sent by the encoding end are interleaved together, and the synchronization information is distributed at intervals in the data stream. Therefore, the data stream can be sampled according to the first value interval and the value length to obtain the first data information. The first data information is obtained by taking values from the data stream according to the value length, and the first data information is obtained by taking values from the data stream according to the value interval. When the similarity between the first data information and the synchronization information exceeds the similarity threshold, the starting position of the first data information can be used to deinterleave the data stream, and finally the synchronization information in the data stream can be obtained. The embodiments of the present application are applicable to the scenario of data stream interleaving encoding in a high-speed PON system, and solve the problem that it is impossible to determine downstream synchronization when the data stream uses interleaving encoding.
[0113] As Figure 3 shown, the embodiments of the present application further provide a data processing method in a PON system, including:
[0114] 301. The encoding end obtains N code blocks to be encoded. The first code block among the N code blocks includes synchronization information, and N is the number of code blocks for interleaving encoding.
[0115] Among them, the encoding end can perform FEC encoding on multiple data blocks, and then add the synchronization information to the front of the data blocks after FEC encoding. For example, the synchronization information and data blocks can be divided into N code blocks, and the first code block among the N code blocks includes synchronization information.
[0116] 302. The encoding end performs interleaving encoding on the data other than the synchronization information in the N code blocks and does not perform interleaving encoding on the synchronization information.
[0117] Among them, the encoding end performs interleaving encoding on the data in the N code blocks, but does not perform interleaving encoding on the synchronization information, which is beneficial for the decoding end to quickly determine the synchronization information. That is, the encoding end can skip the interleaving encoding of the synchronization information in the first code block among the N code blocks to reduce the complexity of the decoding end to determine the synchronization information.
[0118] 303. The encoding end generates a data stream according to the data after interleaving encoding and the synchronization information. The synchronization information is located before the data after interleaving encoding in the data stream.
[0119] In an embodiment of the present application, after the encoding end performs interleaving encoding, the encoding end places the synchronization information before the data after interleaving encoding, thereby generating a data stream. Then, the encoding end sends the data stream to the decoding end. Since the synchronization information is before the data after interleaving encoding in the data stream, it is beneficial for the decoding end to quickly determine the synchronization information.
[0120] In some embodiments of the present application, interleaving encoding is performed on the data other than the synchronization information in N code blocks, and the synchronization information is not interleaved encoded, including:
[0121] The synchronization information with a length of P bits in the first code block is not interleaved encoded, and the data of the first P bits in the second to the Nth code blocks among the N code blocks is interleaved encoded;
[0122] Interleaving encoding is performed on the data other than the synchronization information in the first code block and the data other than the data of P bits in the second to the Nth code blocks.
[0123] Among the N code blocks, each code block has data of the first P bits and data after P bits. The first P bits in the first code block are synchronization information, and the first P bits in the second to the Nth code blocks among the N code blocks are data content. The interleaving method of the first N code blocks in each data frame is different from that of the subsequent N code blocks, that is, the first P bits of the first code block do not participate in interleaving, and the first P bits of the remaining N - 1 code blocks are interleaved. The other data of the first N code blocks is still interleaved among the N code blocks. Through the above interleaving method, the synchronization information in the N code blocks is not interleaved encoded, which is beneficial for the decoding end to quickly determine the synchronization information. That is, the encoding end can skip the interleaving encoding of the synchronization information in the first code block among the N code blocks to reduce the complexity of the decoding end to determine the synchronization information.
[0124] 304. The decoding end receives the data stream sent by the encoding end.
[0125] Among them, the encoding end and the receiving end can communicate with each other. The encoding end sends a data stream to the decoding end, and the decoding end can receive the data stream from the encoding end. The data stream carries synchronization information and data blocks, and the synchronization information is not interleaved encoded, and the data blocks are interleaved encoded. The synchronization information is distributed at the head end of the data stream.
[0126] 305. The decoding end obtains the synchronization information from the data stream, where the synchronization information is before the data after interleaving encoding in the data stream and the synchronization information is not interleaved encoded.
[0127] Among them, the synchronization information is distributed at the head end of the data stream. For example, the synchronization information adopts special values so that the decoding end can quickly detect the synchronization information from the head end of the data stream.
[0128] 306. The decoding end deinterleaves the data in the data stream that is located after the synchronization information.
[0129] Among them, the decoding end deinterleaves according to the starting position of the synchronization information, that is, the decoding end can determine the synchronization information in the data stream, solving the problem that the downstream synchronization cannot be determined when using interleaved coding in the PON system.
[0130] In some embodiments of the present application, deinterleaving the data in the data stream that is located after the synchronization information includes:
[0131] Obtain (N - 1)×P bits of data in the data stream that is located after the synchronization information, where N is the number of code blocks for interleaved decoding and P is the length of the synchronization information;
[0132] Deinterleave the (N - 1)×P bits of data into the second code block to the Nth code block;
[0133] Deinterleave the data in the data stream that is located after the (N - 1)×P bits of data into the first code block to the Nth code block.
[0134] Among them, the decoding end adopts a processing method opposite to that of the above-mentioned encoding end. The decoding end first finds the synchronization information, and then deinterleaves (N - 1)×P bits in the data stream that is located after the synchronization information to obtain the second to the Nth code blocks, and then deinterleaves the data in the data stream after the (N - 1)×P bits into the first to the Nth code blocks. Through the above method, deinterleaving can be completed. It is not limited that after deinterleaving, the decoding end can also perform FEC decoding or descrambling, which is not limited here.
[0135] It can be seen from the example description of the foregoing embodiments that in the embodiments of the present application, the encoding end generates a data stream according to the interleaved-encoded data and the synchronization information. The synchronization information is located before the interleaved-encoded data in the data stream, and the synchronization information is not interleaved in the data stream, so that the decoding end can obtain the synchronization information from the head of the data stream. The decoding end deinterleaves the data in the data stream that is located after the synchronization information, so as to obtain the data stream sent by the encoding end. By interleaving the data blocks, the problem of error propagation in the PON system is solved. In addition, the synchronization information in the data stream is not interleaved, so that the decoding end can quickly determine the synchronization information in the data stream, solving the problem that downstream synchronization cannot be performed in the PON system.
[0136] To facilitate a better understanding and implementation of the above solution of the embodiments of the present application, the following will give corresponding application scenarios for specific illustration.
[0137] Next, taking the PON system as a 50G PON system as an example, the downlink data processing flow in the 50G PON system will be introduced. To solve the problem of error propagation, the embodiments of the present application introduce interleaving coding in the downlink. The interleaving is carried out in units of FEC codewords, and data interleaving is performed among multiple FEC codewords. The format of the data frame after FEC coding is as Figure 4 shown. Each data frame consists of n FEC codewords (codeword, CW). For example, n is 4, and the first codeword contains a synchronization sequence (Psync) for frame delimitation. In the case of no interleaving coding, the decoding end searches for the Psync sequence in the received data stream, and frame delimitation and FEC codeword delimitation can be completed through Psync. When interleaving coding is introduced, the interleaving may scatter the original Psync used for delimitation, and the synchronization sequence is distributed at different positions in the data stream, that is, there is no longer a continuous Psync pattern in the data stream.
[0138] For example, the encoding end can adopt the following block interleaving coding method, and its process is as Figure 5 shown. Taking the interleaving with a depth of 4 codewords as an example, the 4 codewords after FEC coding are regarded as a whole. The data sending order in the line layer is no longer the data sending after FEC coding, but the data in several codewords is sent alternately. As Figure 6 shown, Figure 6 in the interleaving coding is carried out according to the depth of 4 codewords, Figure 6 and the data after interleaving is shown in the box. Each gray part represents a part of the Psync scattered due to interleaving, depending on the granularity of the interleaving coding. First, k bits (k can take 1) in codeword 1 are sent, then k bits in codeword 2 are sent, then codewords 3 and 4, and then the second k bits in codeword 1 are sent, and so on in a cycle until all 4 codewords are sent. Then, 5 to 8 codewords are processed in the same way until the entire frame is sent.
[0139] After the interleaving coding at the encoding end, the synchronization sequence for delimitation will be scattered in the data stream. The continuous synchronization sequence for frame delimitation will be discretely distributed in the data stream due to the introduction of interleaving coding, as Figure 6 shown, and the decoding end can no longer complete delimitation with a continuous synchronization sequence.
[0140] To achieve the boundary of the synchronization sequence in the data stream, in the embodiments of the present application, the decoding end can adopt an interspersed sampling method in a larger range for sampling and realize the matching between the first data information obtained by sampling and the preset synchronization sequence. The specific implementation process is asFigure 7 As shown, in the downlink data stream, a value-taking window with a size of N multiplied by P is used, where P is the length of the synchronization sequence and N is the number of codewords of the interleaved coding. For example, P is taken as 64 and N is taken as 4. In the value-taking window, at a fixed value-taking interval, 1 bit is taken from every N bits, and a total of P bits are taken out. Among them, the value-taking interval depends on the depth of the interleaved coding. If the depth of the interleaved coding is 4 codewords, the fixed interval can be equal to 4 bits, that is, 1 bit of data is taken out from the data stream every 4 bits, and a total of P bits of data are taken out from the data stream. Obtain the difference degree between the P bits of data and a preset synchronization sequence, that is, compare and match the P bits of data with the preset synchronization sequence, and it can be compared whether the P bits of data and the preset synchronization sequence are the same. When the number of different bits between the two is less than m, it is considered that the two are matched, otherwise it is considered that the two are not matched, where m can be taken as 2, or 3, or 4, etc.
[0141] When the P bits of data taken out do not match the preset synchronization sequence, as Figure 7 shown, move the value-taking window backward by one bit, and repeat the previous matching process until a matching synchronization sequence is found in the downlink data stream. When the decoding end finds a matching synchronization sequence in the downlink data stream, use the first bit in the entire value-taking window as the starting boundary of the data frame and the codeword, and perform deinterleaving based on this boundary, and recover the continuous FEC codewords. Subsequently, decode the FEC codewords. If the decoding of the FEC codewords is successful, the decoding end can determine that the delimitation and synchronization of the downlink data stream are completed. If several consecutive FEC codewords decoding fails, the above synchronization process may be due to the accidental occurrence of the code pattern of the synchronization sequence in the downlink data stream resulting in incorrect matching. The decoding end still needs to take data from the data stream with a value-taking window of N multiplied by P, and use a sliding window for matching verification. Among them, the sliding method can be sliding in the direction of the newly received data stream until the correct delimitation and synchronization of the downlink frame are completed.
[0142] It can be seen from the foregoing example that the embodiment of the present application provides the foregoing downlink data processing flow of the high-speed PON system, realizes the downlink synchronization delimitation of the high-speed PON system, solves the associated error codes or burst error codes introduced by the digital equalizer in the PON system by introducing an interleaving scheme, and adopts a matching method of a value-taking window and interleaved value-taking to realize the downlink data matching in the case of interleaving.
[0143] In order to ensure continuous synchronization sequences, in this embodiment, the same interleaving method as in the foregoing embodiment is still used. However, at the beginning stage of each frame, an interleaving method that is not completely the same as other parts is adopted, such as Figure 8As shown, the synchronization information does not participate in interleaving coding. During the interleaving process, the synchronization sequence remains as a whole and is retained in the transmitted data stream. When receiving data at the decoding end, the complete synchronization sequence is still used for matching. After the matching is completed, frame delimitation is achieved, and a different interleaving method is used for the frame boundary part compared to other parts within the frame.
[0144] It should be noted that for the foregoing method embodiments, for the sake of simple description, they are all expressed as a series of action combinations. However, those skilled in the art should be aware that this application is not limited by the described action sequence, because according to this application, certain steps can be carried out in other sequences or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily essential for this application.
[0145] To facilitate better implementation of the above solutions of the embodiments of this application, relevant devices for implementing the above solutions are also provided below.
[0146] For example, both the encoding end and the decoding end in the above embodiments can be implemented by a device as Figure 9 shown, and this device can specifically be a data processing device.
[0147] Device 1000 includes at least one processor 1001, a communication bus 1002, a memory 1003, and at least one communication interface 1004. Device 1000 can be a general-purpose computer or server or a special-purpose computer or server.
[0148] Processor 1001 can be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the present invention.
[0149] Communication bus 1002 can include a path for transmitting information between the above components.
[0150] Communication interface 1004 can be any transceiver or IP port or bus interface, etc., for communicating with internal or external devices or apparatuses or communication networks, such as Ethernet, radio access network (RAN), wireless local area networks (WLAN), etc.
[0151] The memory 1003 can be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or can also be an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM), or other optical disc storage, optical disc storage (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media, or other magnetic storage devices, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory can exist independently and be connected to the processor through a bus. The memory can also be integrated with the processor.
[0152] Among them, the memory 1003 is used to store the application program code for implementing the solution of the present invention and is controlled by the processor 1001 to execute. The processor 1001 is used to execute the application program code stored in the memory 1003, thereby implementing the functions of the encoding end and the decoding end in the application embodiments.
[0153] In a specific implementation, as an embodiment, the processor 1001 may include one or more CPUs, such as Figure 9 CPU0 and CPU1 in
[0154] In a specific implementation, as an embodiment, the device 1000 may include multiple processors, such as Figure 9 the processor 1001 and the processor 1008 in
[0155] In a specific implementation, as an example, the apparatus 1000 may further include an output device 1005 and an input device 1006. The output device 1005 communicates with the processor 1001 and can display information in various ways. For example, the output device 1005 may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector, etc. The input device 1006 communicates with the processor 1001 and can receive user input in various ways. For example, the input device 1006 may be a mouse, a keyboard, a touch screen device, or a sensing device, etc.
[0156] When Figure 9 When the apparatus shown is a chip, the function / implementation process of the communication interface 1004 can also be implemented through pins or circuits, etc. The memory is a storage unit within the chip, such as a register, a cache, etc. The storage unit can also be a storage unit located outside the chip.
[0157] It should be noted that for the information interaction, execution process, etc. between the above-mentioned apparatus modules / units, since they are based on the same concept as the method embodiments of the present application, the technical effects brought by them are the same as those of the method embodiments of the present application. For the specific content, reference can be made to the description in the foregoing method embodiments of the present application, and details will not be repeated here.
[0158] The embodiments of the present application further provide a computer storage medium, where the computer storage medium stores a program, and the program executes some or all of the steps recorded in the foregoing method embodiments.
[0159] In addition, it should be noted that the apparatus embodiments described above are merely illustrative. The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. In addition, in the accompanying drawings of the apparatus embodiments provided in the present application, the connection relationships between modules indicate that they have communication connections, which can be specifically implemented as one or more communication buses or signal lines.
[0160] Through the description of the above embodiments, those skilled in the art can clearly understand that this application can be implemented by means of software plus necessary general hardware. Of course, it can also be implemented by dedicated hardware including application-specific integrated circuits, dedicated CPUs, dedicated memories, dedicated components, etc. Generally, functions completed by computer programs can be easily implemented by corresponding hardware, and the specific hardware structures for implementing the same function can also be diverse, such as analog circuits, digital circuits, or dedicated circuits. However, for this application, in more cases, software program implementation is a better embodiment. Based on such an understanding, the technical solution of this application, in essence, or the part that makes a contribution to the prior art, can be embodied in the form of a software product. This computer software product is stored in a readable storage medium, such as a floppy disk, USB flash drive, mobile hard disk, ROM, RAM, magnetic disk, or optical disc of a computer, and includes several instructions to enable a computer device (which can be a personal computer, server, or network device, etc.) to execute the methods described in various embodiments of this application.
[0161] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product.
[0162] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of this application are generated in whole or in part. The computer can be a general computer, a dedicated computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website, computer, server, or data center to another website, computer, server, or data center in a wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) manner. The computer-readable storage medium can be any available medium that a computer can store, or a data storage device such as a server or data center that includes one or more integrated available media. The available medium can be a magnetic medium (such as a floppy disk, hard disk, magnetic tape), an optical medium (such as a DVD), or a semiconductor medium (such as a solid state disk (SSD)).
Claims
1. A data processing method in a Passive Optical Network (PON) system, characterized in that Comprising: Receiving a data stream sent by an encoding end, wherein the data stream sent by the encoding end is a bit stream obtained by interleaving a plurality of forward error correction (FEC) codewords, and a first FEC codeword among the plurality of FEC codewords includes synchronization information; When a similarity between first data information in the received data stream and the synchronization information exceeds a similarity threshold, deinterleaving the received data stream.
2. The method according to claim 1, characterized in that, The first data information is distributed in the received data stream at a first arrangement interval.
3. The method according to claim 2, wherein The first arrangement interval is 4 bits.
4. The method according to any one of claims 1 to 3, characterized in that, After deinterleaving the received data stream, the method further includes: Performing forward error correction FEC decoding on the received data stream.
5. The method according to any one of claims 1 to 4, characterized in that, After deinterleaving the received data stream, the method further includes: Descrambling the received data stream using a scrambler.
6. The method according to any one of claims 1 to 4, characterized in that The synchronization information has a length of 64 bits.
7. A data processing method in a Passive Optical Network (PON) system, characterized in that, Comprising: Performing FEC encoding on a data block to obtain a plurality of forward error correction (FEC) codewords, wherein a first FEC codeword among the plurality of FEC codewords includes synchronization information; Performing interleaving encoding on the plurality of FEC codewords to obtain a data stream to be sent; Sending the data stream.
8. The method according to claim 7, wherein The synchronization information is distributed in the data stream at a first arrangement interval.
9. The method according to claim 7 or 8, characterized in that, The performing interleaving encoding on the plurality of FEC codewords includes: Encoding the plurality of FEC codewords into a plurality of interleaving blocks respectively according to a granularity k of the interleaving encoding, the synchronization information has a length of 64 bits, wherein k is a positive integer greater than 1.
10. The method according to any one of claims 7-9, characterized in that, Before sending the data stream, the method further includes: Scrambling the plurality of FEC codewords using a scrambler.
11. The method according to any one of claims 7-10, characterized in that, The plurality of FEC codewords include 4 FEC codewords, the data stream to be sent includes a plurality of interleaving blocks, each interleaving block corresponds to 4 FEC codewords, and the performing interleaving encoding on the 4 FEC codewords includes: S D are placed respectively at bit positions 1, D+1, . . . , D×S of the corresponding interleaving block in the data stream to be sent D -D+1; Place the bits 1,...S in the second FEC codeword D at the bit positions 2, D+2,..., D×S in the corresponding interleaved block of the data stream to be transmitted respectively D -D+2; Place the bits 1,...S in the third FEC codeword D at the bit positions 3, D + 3,..., D×S in the corresponding interleaved blocks of the data stream to be transmitted respectively D -D + 3; Place the bits 1,... S in the fourth FEC codeword at bit positions 4, D + 4,..., D × S in the corresponding interleaved block of the data stream to be transmitted D respectively; where D -D + 4 D is 4, S D is an integer greater than 1.
12. A data processing device in a passive optical network (PON) system, characterized in that, Comprising: A receiving module and a processing module, The receiving module is configured to receive a data stream sent by an encoding end, wherein the data stream sent by the encoding end is a bit stream obtained by interleaving a plurality of forward error correction (FEC) codewords, and a first FEC codeword among the plurality of FEC codewords includes synchronization information; The processing module is configured to deinterleave the received data stream when a similarity between first data information in the received data stream and the synchronization information exceeds a similarity threshold.
13. The device according to claim 12, characterized in that, The first data information is distributed in the received data stream at a first arrangement interval.
14. The device according to claim 13, characterized in that, The first arrangement interval is 4 bits.
15. The device according to any one of claims 12 to 14, characterized in that, The processing module is further configured to perform forward error correction FEC decoding on the received data stream after deinterleaving the received data stream.
16. The device according to any one of claims 12 to 15, characterized in that, The processing module is further configured to descramble the received data stream using a scrambler after deinterleaving the received data stream.
17. The device according to any one of claims 12 to 16, characterized in that, The synchronization information has a length of 64 bits.
18. A data processing device in a Passive Optical Network (PON) system, characterized in that, Comprising: A processing module and a sending module, The processing module is configured to perform FEC encoding on data blocks to obtain a plurality of forward error correction (FEC) codewords, wherein the first FEC codeword among the plurality of FEC codewords includes synchronization information; perform interleaving encoding on the plurality of FEC codewords to obtain a data stream to be transmitted; The sending module is configured to send the data stream.
19. The device according to claim 18, characterized in that, The synchronization information is distributed in the data stream at a first arrangement interval.
20. The device according to claim 18 or 19, characterized in that, The processing module is further configured to: Encode the plurality of FEC codewords into a plurality of interleaving blocks respectively according to the interleaving encoding granularity k, the length of the synchronization information being 64 bits, where k is a positive integer greater than 1.
21. The device according to any one of claims 18 - 20, characterized in that, The processing module is further configured to: Scramble the plurality of FEC codewords using a scrambler.
22. The device according to any one of claims 18-21, characterized in that, The plurality of FEC codewords include 4 FEC codewords, the data stream to be transmitted includes a plurality of interleaving blocks, and each interleaving block corresponds to 4 FEC codewords. The processing module is further configured to: Place the bits 1,...S in the first FEC codeword D at the bit positions 1, D + 1,..., D × S in the corresponding interleaved blocks of the data stream to be transmitted respectively D -D + 1; Place the bits 1,...S in the second FEC codeword D at the bit positions 2, D + 2,..., D×S in the corresponding interleaved blocks of the data stream to be transmitted respectively D -D + 2; Place the bits 1,...S in the third FEC codeword respectively D at the bit positions 3, D + 3,..., D×S in the corresponding interleaved blocks of the data stream to be transmitted D -D + 3; Place the bit 1 in the fourth FEC codeword,..., S D at the bit positions 4, D + 4,..., D × S in the corresponding interleaved blocks of the data stream to be transmitted respectively D -D + 4; where D is 4, S D is an integer greater than 1.
23. A chip, characterized in that, The chip is configured to execute the data processing method according to any one of claims 1-11.
Citation Information
Patent Citations
Data weaving method, data weaver
CN101340259A
Data transmission method, device and system, transmitting end, receiving end and storage medium
CN109428674A
Data encoding and decoding method and device, OLT, ONU and PON system
CN110391871A
Data processing method and device and communication system
CN110505035A
Multi-Rate Multi-Wavelength Optical Burst Detector
US20080267625A1