Data encoding method, encoder, and data decoding method
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- SAMSUNG DISPLAY CO LTD
- Filing Date
- 2022-08-30
- Publication Date
- 2026-08-04
AI Technical Summary
【0028】 本発明は任意の適切なワードサイズを有するデータでもエンコードして任意の適切なラン長の制限を生成することができる。本発明の一実施形態では、遷移エンコーダが特別な方式で入力データに基づいてキー値を決定することによってこのような所期の特性を可能にし、これはバイト-ワードアライメントハードウェア(byte-to-word alignment hardware)またはビットパディング(bit padding)を具現する必要性をなくし、送信機/受信機の設計を簡単にし、全体システムコストを減らす。また、本発明の一実施形態によれば、通信システムは遷移エンコーディング方式にオーバーヘッドを加えずにこのような所期の効果を達成する。
Smart Images

Figure 0007900229000008 
Figure 0007900229000009 
Figure 0007900229000010
Abstract
Description
[Technical Field]
[0001] The present invention relates to a data communication system, and more particularly to a data encoding method, an encoder, and a data decoding method.
[0002] This application claims priority to U.S. Patent Application No. 63 / 239,281 (Title of Invention: FLEXIBLE WORD-SIZE TRANSITION ENCODING CODES), filed with the U.S. Patent and Trademark Office on 31 August 2021, and incorporates the entire contents of that application by reference herein. [Background technology]
[0003] Serial data communication is commonly used not only in wired and fiber optic communication systems but also in wireless communication systems. In serial digital data communication, if the transmitter does not send a clock signal along with the data stream, the receiver must recover the clock using the time information contained in the data stream. The process of extracting time information from a serial data stream is known as clock recovery and is crucial for the receiver circuit to decode the transmitted symbols.
[0004] Clock recovery at the receiver can be aided by modifying the transmitted data to ensure a sufficient number of transitions are present in the data stream. In other words, the worst-case scenario, no-transition run-length, must be limited. To ensure frequent transitions, the transmitter can use a transition encoding algorithm to encode the raw data so that transitions occur periodically.
[0005] The information described in the background technology section is solely for the purpose of deepening the understanding of the present invention and may include information that does not constitute prior art already known to those skilled in the art. [Overview of the project] [Problems that the invention aims to solve]
[0006] The problem that the present invention aims to solve is to provide a transmission stream transition encoding system and method having flexible word size and run length limitations. [Means for solving the problem]
[0007] According to one embodiment of the present invention, the transition encoding uses a subset of the bits of each word in a data packet as the group ID of that word, organizes the words in the packet into distinct groups based on the group ID, identifies a key group having the minimum number of words, and then determines an encoded key value based on the group ID and the missing bit pattern of the key group. The transition encoder then encodes each word using the key value before sending the encoded word to the receiver. According to one embodiment of the present invention, the transition encoding can be easily modified to accommodate any predetermined word size and run length limitations.
[0008] An encoding method for input data according to one embodiment of the present invention includes the steps of: identifying an input packet of input data including a plurality of input words each containing a prebit, a group ID bit, and a postbit; organizing the plurality of input words into a plurality of groups based on the group ID bits of the plurality of input words; identifying a key group among the plurality of groups based on the number of input words in each of the plurality of groups; determining a key value based on the prebit, the group ID bit, and the postbit of an input word among the plurality of input words corresponding to the key group; and generating a plurality of encoded words based on the key value and the plurality of input words.
[0009] An encoding method for input data according to one embodiment of the present invention may further include the steps of receiving the input data and dividing the input data into a plurality of data packets, each containing the input packet.
[0010] According to one embodiment of the present invention, each of the input words is [PRB i GID i POB i Represented by ], PRB i This indicates the aforementioned prebit, GID i This indicates the group ID bit, POB i represents the post bit, and i can be an integer greater than 0.
[0011] According to one embodiment of the present invention, the input packet includes 31 input words, each of the plurality of input words includes 8 bits, the prebit includes the two MSBs (most significant bits) of the corresponding word among the plurality of input words, the group ID bit includes the four intermediate bits of the corresponding word, the postbit includes the two LSBs (least significant bits) of the corresponding word, the plurality of groups includes 8 groups, and the run length of the input packet may be 10.
[0012] According to one embodiment of the present invention, the step of organizing the plurality of input words into a plurality of groups includes the step of grouping input words that have the same group ID bit or the complement of the same group ID bit into the same group among the plurality of groups, wherein the number of the plurality of groups may be half the number of bits in the group ID bit.
[0013] According to one embodiment of the present invention, the step of organizing the plurality of input words into a plurality of groups is to select from the plurality of input words (2 g Words that are less than -1) / 2 and have the same group ID bit value as the first value are grouped together, (2 gThe process includes the step of grouping words that are greater than (-1) / 2 and have the same group ID bit value as the complement of the first value into one of the other words in the same group, where g may represent the bit length of the group ID bit.
[0014] According to one embodiment of the present invention, the step of identifying the key group may include defining the key group as a group having the minimum number of input words or the number of input words below a threshold among the plurality of groups.
[0015] According to one embodiment of the present invention, the steps of determining the key value may include: determining a key group ID bit as the group ID bit of the word corresponding to the key group among the plurality of words; determining a key pre bit as the missing bit from the pre bit of the word corresponding to the key group among the plurality of words; determining a key post bit as the missing bit from the post bit of the word corresponding to the key group among the plurality of words; and generating the key value based on the key pre bit, the key group ID bit, and the key post bit.
[0016] According to one embodiment of the present invention, the key value may be represented as [PRB0GID0POB0], where PRB0 represents the key pre bit, GID0 represents the key group ID bit, and POB0 represents the key post bit.
[0017] According to one embodiment of the present invention, the key value has the same bit length as one of the plurality of input words, and does not have to be the same as any of the plurality of input words.
[0018] According to one embodiment of the present invention, the plurality of encoded words include a first encoded word and a second encoded word, wherein the first encoded word is based on at least the key value, and the second encoded word is based on the key value and a first input word among the plurality of input words.
[0019] According to an embodiment of the present invention, the step of generating the plurality of encoded words may include generating a modified key value based on the key value, generating the first encoded word as the modified key value, and performing a binary XOR operation on one of the plurality of input words and the key value to generate the first encoded word.
[0020] According to an embodiment of the present invention, the plurality of encoded words are represented by {K’, x1^K, x2^K, …, x N ^K}, where K represents the key value, K’ represents the modified key value based on the key value, x1, x2, …, x N represent the plurality of input words of the input packet, N is an integer greater than 2, and ^ may be a symbol representing a binary XOR operation.
[0021] The encoding method of input data according to an embodiment of the present invention may further include transmitting transmission data including the plurality of encoded words to a receiver via a communication channel.
[0022] The transition encoder for input data encoding according to an embodiment of the present invention includes a processor and a processor memory that stores instructions subordinate to the processor. When the processor executes the instructions, the processor identifies an input packet of input data including a plurality of input words each including a pre-bit, a group ID bit, and a post-bit, arranges the plurality of input words into a plurality of groups based on the group ID bits of the input words, identifies a key group corresponding to the number of input words smaller than a threshold value among the plurality of groups, determines a key value based on the pre-bit, the group ID bit, and the post-bit of the input words corresponding to the key group among the plurality of input words, and generates a plurality of encoded words based on the key value and the plurality of input words.
[0023] A method for decoding transmission data according to one embodiment of the present invention includes the steps of: receiving transmission data that includes a modified key value and a plurality of encoded words including a first encoded word; generating a key value based on the modified key value; and generating a first decode word from a plurality of decode words by performing a binary XOR operation on the key value and the first encoded word.
[0024] According to one embodiment of the present invention, the modified key value is represented as [PRB0GID0POB0], where PRB0 represents the prebit of the modified key value, GID0 represents the group ID bit of the modified key value, and POB0 represents the postbit of the modified key value. The step of generating a key value based on the modified key value may include the step of generating the key value by changing the MSB of the group ID bit of the key value to 0.
[0025] According to one embodiment of the present invention, the step of generating a key value based on the modified key value may include the step of generating the key value by setting one of the bits of the modified key value to 0.
[0026] According to one embodiment of the present invention, the plurality of encoded words are {K', x1^K, x2^K, ..., x N It is represented as ^K, where x1, x2, ..., x N ∫ represents multiple input words of the input packet, K represents the key value used to encode the multiple encoded words, K' represents the modified key value, and ^ may be a symbol for a binary XOR operation.
[0027] According to one embodiment of the present invention, the step of receiving the transmission data may include the step of receiving the transmission data from a transmitter via a communication channel. [Effects of the Invention]
[0028] The present invention can encode data having any appropriate word size to generate any appropriate run length limit. In one embodiment of the present invention, the transition encoder enables such desired properties by determining key values based on the input data in a special manner, which eliminates the need to implement byte-to-word alignment hardware or bit padding, simplifying the transmitter / receiver design and reducing the overall system cost. Furthermore, according to one embodiment of the present invention, the communication system achieves these desired effects without adding overhead to the transition encoding scheme. [Brief explanation of the drawing]
[0029] [Figure 1a] This is a block diagram of a serial data communication system according to one embodiment of the present invention. [Figure 1b] This is a block diagram of a transmitter / receiver for a serial data communication system according to one embodiment of the present invention. [Figure 2] This shows a packet that has been split into multiple words by one embodiment of the present invention. [Figure 3] This document illustrates the input data encoding process using one embodiment of the present invention. [Figure 4] This shows the input data decoding process using one embodiment of the present invention. [Modes for carrying out the invention]
[0030] The detailed descriptions below relate to embodiments of data transition encoding / decoding systems and methods in serial communication and do not represent the only forms embodied or utilized by the present invention. Embodiments of the present invention will be described in detail below with reference to the accompanying drawings. However, functions and structures identical or equivalent to those embodied in different embodiments are also included within the scope of the present invention. The same reference numerals are used throughout the specification for identical or similar components.
[0031] As a related technique, to achieve run-length-limited transmission, the transmitter can convert input data into encoded words for transmission. This is possible by defining a key based on the input data, encoding each word using that key, and transmitting the key along with the encoded words to the receiver. The encoded data has a specific run-length limitation. Again, the receiver identifies the key in the transmitted data and uses it to decode the received encoded words to obtain the original input data. However, encoders in related techniques often operate with word sizes that are not aligned (i.e., different) from the byte-size serial data generated by the protocol layer. For example, while the protocol layer generates data in 8-bit byte units, the encoder can perform transition encoding in 6-bit units. In this case, the encoder may have to use bit padding / stuffing, which increases overhead in the transition-encoded packets, and may have to rely on additional alignment hardware, which occupies expensive real estate and adds additional cost and complexity.
[0032] According to one embodiment of the present invention, a transition encoder can encode byte-size data or word-size data with an appropriate number of bits to generate a variety of run length limits. The transition encoder can also have any appropriate run length limit and is not limited to a specific run length. This eliminates the need for bit padding or additional byte-word alignment hardware, which simplifies the transmitter / receiver design and reduces system costs.
[0033] Figure 1a is a block diagram of a serial data communication system 1 according to one embodiment of the present invention. Figure 1b is a block diagram of the transmitter / receiver of the serial data communication system 1 according to one embodiment of the present invention.
[0034] Referring to Figure 1a, a serial data communication system 1 according to one embodiment of the present invention includes a transmitter 10, a communication channel (i.e., a serial communication channel) 15, and a receiver 20. The transmitter 10 may include a data compressor and / or encoder 12 that compresses or encodes an input data stream to generate transmission data to be transmitted to the receiver 20 via the communication channel 15 (e.g., a transmission line with one or more conductors). The receiver 20 may include a data decompressor and / or decoder 22 that decompresses or decodes the data stream received by the receiver 20 to recover the input data stream. The receiver 20 may also include a clock recovery circuit 24.
[0035] According to one embodiment of the present invention, the transmitter 10 includes a transition encoder 100 that encodes a transmission data stream by causing transitions to occur at least according to a specific frequency, where the specific frequency is a frequency that allows the receiver 20 to extract a clock signal from the (e.g., transition-encoded) encoded data stream transmitted over the communication channel 15. In other words, the transition encoder 100 limits the run length of the encoded data stream.
[0036] As shown in Figure 1b, the operations performed by the components of the transmitter 10 and receiver 20 can be embodied by a “processing circuit,” “processor,” or “processor” 30. The “processing circuit” can be embodied using hardware, firmware, software, or a combination thereof. The processing circuit can include, for example, programmable logic devices such as application-specific integrated circuits (ASICs), general-purpose or dedicated central processing units (CPUs), digital signal processors (DSPs), graphics processing units (GPUs), and FPGAs. In the processing circuit, each function can be performed by hard-wired hardware that performs that function, or by general-purpose hardware such as a CPU that executes instructions stored on a non-transitory storage medium. The processing circuit can be fabricated on a single printed wiring board (PWB) or distributed across interconnected PWBs. The processing circuit can include other processing circuits, for example, FPGAs and CPUs interconnected on a PWB. The processor memory 32, which is subordinate to the processor 30, can contain instructions, and when the processor 30 executes these instructions, it can perform the operations described with reference to Figures 1a, 2 to 4.
[0037] Figure 2 shows a packet divided into multiple words by one embodiment of the present invention.
[0038] Referring to Figures 1a and 2, in one embodiment of the present invention, the transition encoder 100 divides the input data (which may or may not be compressed / encoded by the data compressor and / or encoder 12) into a number of input data packets (e.g., bitstreams). Each input data packet (also called an input packet) is divided into N words / digits, each word / digit containing q bits. Thus, a data packet (X) can be represented as follows:
[0039]
number
[0040] Here x1, x2, ..., x N represents the N words / digits that make up the input packet, each of which is 0 and 2 q It has a value between -1. In the example in Figure 2, each word contains 8 bits (i.e., q=8) and has a value in the range [0:255]. However, embodiments of the present invention are not limited thereto, and each word may have any number of bits (e.g., 6 bits, 10 bits, etc.).
[0041] The transition encoder 100 encodes / scrambles each word to secure a transition for each word / digit and limits the run length of the transmitted data to a predetermined value. In one embodiment of the present invention, the transition encoder 100 encodes the words of the packet in this manner to prevent the transmission of words with a leading or trailing run length greater than the run length / 2. In the example of an 8-bit word and a predetermined transmission run length of 10, the transition encoder 100 removes the following words: 000000xx xx000000 111111xx wd111111
[0042] Here, "x" can be 0 or 1 ["don't-care bit"]. Here, the worst run scenarios for two consecutive words are xx100000 000001xx and xx011111 111110xx, both with a run length of 10.
[0043] To encode the received input word, the transition encoder 100 first divides the bits of each input word into pre bits (PRB), group ID bits (GID), and post bits (POB). That is, each input word can be represented as [PRB GID POB], where PRB are the most significant bits (MSB), GID are the middle bits, and POB are the least significant bits (LSB). The number of middle bits in GID is as follows:
[0044]
number
[0045] Here, RL indicates the expected encoding run length, and WBL indicates the input word bit length. In the previous example, the number of bits in the GID is 4 (=10-8+2). Therefore, the aforementioned forbidden words can be divided into a 2-bit PRB, a 4-bit GID, and a 2-bit POB, as shown in Table 1 below.
[0046] [Table 1]
[0047] As can be seen from Table 1, forbidden words are avoided if the GID is not all 0 or all 1. Also, if the GID is all 0 or all 1, forbidden words can only be avoided if both the PRB and POB do not have the same bits as the GID. Therefore, the transition encoder 100 encodes the GID of the input word so that many encoded words do not have a GID that is all 0 or all 1, and encodes the PRB and POB so that encoded words with a GID that is all 0 or all 1 do not have a GID that is all 0 or all 1, just like the GID.
[0048] In one embodiment of the present invention, when a word is split, the input words are grouped based on their GID. Here, words having the same GID and complement (i.e., one's complement) GID (e.g., 0000 and 1111) are grouped together. That is, if the GID has g bits, (2 g Words with a GID value less than -1) / 2 are organized into groups corresponding to the number of groups that match that GID, (2 g Words with a GID value greater than -1) / 2 are grouped into the number of groups that match their complement [inverse] GID. Thus, the number of groups into which an input word is formed is 2 g-1 The input word group organized based on GID is called a regular word, and the input word group organized based on complementary GID is called a complement word.
[0049] The organization of input words into distinct groups can be visualized with the help of Table 2 below. In the example in Table 2, each input word in the illustrated packet is 8 bits, the GID is 4 bits (i.e., g=4), and the PRB and POB each have 2 bits. Thus, the transition encoder 100 organizes the input words into 8 groups (i.e., 0 to 7).
[0050] [Table 2]
[0051] In one embodiment of the present invention, the transition encoder 100 identifies a group having the fewest members (e.g., group 1 in Table 2) or a number of members less than a threshold (e.g., 4), and this group is called a key group. The GID or complement GID of all words within the key group can represent the group GID. In the example in Table 2, group 1 has the fewest number of word members (i.e., 3) and can be identified as a key group. The words within this group have a GID (or complement GID) of 0001. Thus, 0001 or 1110 can be identified as the GID of the key group (which can be denoted as GID0). In one embodiment of the present invention, the GID (not the complement GID) of the key group is selected as GID0. Assuming that the MSB of GID0 is 0, only the remaining bits of GID0 (e.g., 001 in the example in Table 2) can be transmitted to the receiver 20. In accordance with this scheme, the receiver 20 can add an MSB of 0 to the remaining bits of GID0 (e.g., 001) received from the transmitter 10. By not transmitting the MSB of 0, the transition encoder 100 can achieve improved encoding efficiency by transmitting a reduced number of overhead bits.
[0052] In embodiments where the key group's GID0 is based on the member word's GID (e.g., GID0=0001), the key group's PRB can be identified as the PRB of any canonical word and the complement PRB of any complement word. The key group's PRB and POB can be PRB0 and POB0, respectively. If the key group's GID0 is based on the member word's complement GID (e.g., GID0=1110), then PRB0 and POB0 can be based on the corresponding canonical member word's complement PRB and complement POB and the missing bit pattern from the corresponding complement word's PRB and POB.
[0053] Next, the transition encoder 100 generates an encoded key value (simply referred to as the "key value") based on the GID, PRB, and POB of the key group. According to one embodiment of the present invention, the transition encoder 100 uses the GID of the key group as the GID of the key value (GID0), and determines the PRB and POB of the key value (i.e., PRB0 and POB0) as the missing bit patterns from the PRB0 and POB0 of the key group, respectively. If one or more bit patterns are missing from the PRB / POB, any of the missing patterns can be used as PRB0 / POB0. In the example in Table 2, GID0 is 0001, PRB is 00, and POB can be 00 or 01. Therefore, the key value can be [00 0001 00], [00 0001 01], [00 1110 00], or [00 1110 01]. Here, the key value has the same number of bits (i.e., bit length) as the input word.
[0054] In the example in Table 2, where the packet contains 31 words, at least one group has 3 or fewer members. In this way, one or more missing bit patterns can be found in the PRB and POB of the key group. This condition is satisfied as long as the number of words N in the input packet is less than the number of groups multiplied by the number of possible patterns in the PRB / POB fields (in the example in Table 2, there are 8 groups and 4 patterns in the PRB and POB, so the packet size is less than 8 × 4 = 32).
[0055] In one embodiment of the present invention, the transition encoder 100 generates an encoded packet containing multiple encoded words that encode an input word using a key value and transmit to the receiver 20. Each encoded word is the result of performing an XOR operation on the corresponding input word and the key value. Thus, the encoded packet (Y) can be represented as follows:
[0056]
number
[0057] Here, K represents the key value, x1, x2, ..., x N The symbols ^ represent the N input words that make up the input packet, and ^ is a symbol for the binary XOR operation. Since the encoded packet includes not only the encoded word but also the key value, the word length of the encoded packet is 1 greater than that of the converted packet (i.e., it contains N+1 words). Here, the whole keyword is transmitted to the receiver as the encoded word (y0), but embodiments of the present invention are not limited to this. For example, the transition encoder 100 can create a modified key value (K') and transmit it to the receiver 20 in place of the key value (K). In an embodiment where the MSB of the key value's GID0 is assumed to be 0, the transition encoder 100 makes the modified key value (K') identical to the key value (K), but the MSB of GID0 can be replaced with the complement of the next significant bit of GID0. For example, referring to Table 2, when the GID0 of the key value is 0001, the GID0 of the modified key value may be 1001. This is done to ensure that there is a transition in K' and that the run length does not violate during the transmission of K'. In such an embodiment, the encoded packet (Y) can be represented as follows:
[0058]
number
[0059] Equations 3 and 4 represent the key value / changed key value as the first word of the encoded packet, but embodiments of the present invention are not limited thereto. For example, the key value / changed key value may be the last word of the encoded packet (Y), or it may be at any appropriate location within the packet, as long as the receiver 20 is aware of the location of the key value / changed key value within the packet. For the manner in which the key value / changed key value is determined, the encoded word indicates an expected run length that allows the receiver 20 to recover the clock from the transmitted packet.
[0060] Table 2 provides encoded values generated based on example input words and generated key values. Since the GID of a key value (and, similarly, the GID of a key group) is different by definition from that of other groups, XORing a key value with an input word from another group results in a bit transition in the GID of the resulting encoded word. Thus, as shown in Table 2, the GID of a key value guarantees a run length of 10 for at least such words corresponding to groups that are not key groups. Furthermore, by using PRB0 and POB0 of the key value that are different from the PRB and POB of the key group words, it is possible to ensure that XORing a word in a key group with a key value results in a bit transition (i.e., consecutive 0s and 1s) in both the PRB and POB of the encoded word. As a result, even words in key groups are encoded to satisfy the desired run length (e.g., 10 in Table 2).
[0061] The transmitter 10 transmits an encoded packet (Y) to the receiver 20 via the communication channel 15. In embodiments in which the encoded packet (Y) includes a key value (K) (for example, as shown in Equation 3), when the receiver 20 receives the encoded packet, the transition decoder 200 identifies the key value (e.g., the first word of the received packet) and decodes the remaining encoded words based on the key value to produce a decoded packet (X'), which is {x'1, x'2, ..., x' N It is represented as}. The transition decoder 200 performs an XOR operation on the second and subsequent words with the key value. In one embodiment of the present invention, the decoded word (x' i )(where i is an integer greater than or equal to 1) can be expressed as follows:
[0062]
number
[0063] Therefore, the transition decoder 200 can reproduce the original input word. In embodiments in which the encoded packet includes a modified key value (K') (for example, instead of the key value (K) shown in Equation 4), the transition decoder 200 identifies the modified key value (e.g., the first word in the received packet), generates a key value (K) based on the modified key value (K') by substituting the MSB of the GID0 of the key value with 0, and decodes the rest of the encoded word based on the key value (K) as previously described.
[0064] Figure 3 shows the input data encoding process 300 according to one embodiment of the present invention.
[0065] When processing input data for a transition, the transition encoder 100 receives the input data (e.g., input data stream), divides the input data into multiple data packets, and identifies the input packets of the input data (S302). Each input packet contains multiple input words, each input word containing a pre-bit, a group ID bit, and a post-bit.
[0066] In one embodiment of the present invention, the transition encoder 100 organizes a plurality of input words into a plurality of groups based on their group ID bits (S304). When doing so, the transition encoder 100 groups together input words that have the same group ID bit and the same complement group ID bit into the same group among the plurality of groups. In one embodiment of the present invention, the transition encoder 100 organizes a plurality of input words into a plurality of groups (2 g Words that are less than (2g-1) / 2 and have the same group ID bit value as the first value are grouped into one, and words that are greater than (2g-1) / 2 and have the same group ID bit value as the complement of the first value are grouped into the other word in the same group. The number of groups may be half the number of bits in the group ID bits.
[0067] In one embodiment of the present invention, an input packet contains 31 input words, each of the multiple input words contains 8 bits, the pre-bit contains the two MSBs of the corresponding word among the multiple input words, the group ID bit contains the four intermediate bits of the corresponding word, the post-bit contains the two LSBs of the corresponding word, the multiple groups contain 8 groups, and the run length of the input packet is 10. Next, the transition encoder 100 identifies the key group with the minimum number of input words among the multiple groups (S306).
[0068] In one embodiment of the present invention, the transition encoder 100 determines a key value based on the prebit, group ID bit, and post bit of the word corresponding to the key group among the multiple words (S308). In this case, the transition encoder 100 determines the key group ID bit as the group ID bit of the word corresponding to the key group among the multiple words, determines the key prebit as the missing bit from the prebit of the word corresponding to the key group among the multiple words, determines the key post bit as the missing bit from the post bit of the word corresponding to the key group among the multiple words, and generates a key value based on the key prebit, key group ID bit, and key post bit. Here, the key value has the same bit length as one of the multiple input words, and is not the same as any of the multiple input words.
[0069] The transition encoder 100 generates multiple encoded words based on a key value and multiple input words (S310). The multiple encoded words include a first encoded word and a second encoded word, the first encoded word is based on at least the key value and the second encoded word is based on the key value and the first input word. The transition encoder 100 generates the first encoded word as the key value and generates the second encoded word by performing a binary XOR operation on one of the multiple input words and the key value.
[0070] Next, the transition encoder 100 transmits the transmission data, including the encoded word, to the receiver 20 via the communication channel 15.
[0071] Figure 4 shows the transmission data decoding process 400 according to one embodiment of the present invention.
[0072] In one embodiment of the present invention, a receiver 20 receives transmission data containing a plurality of encoded words from a transmitter 10 via a communication channel 15 (S402). The encoded words include a first encoded word and a second encoded word. According to one embodiment of the present invention, the first and second encoded words may be consecutive words. The receiver 20 (e.g., a transition decoder 200) generates a plurality of decoded words by performing a binary XOR operation on the first and second encoded words to generate a first decoded word from a plurality of decoded words (S404). The bit length of the first encoded word may be the same as that of the first decoded word.
[0073] As previously explained, the transition encoder 100 according to one embodiment of the present invention can encode data having any appropriate word size and generate any appropriate run length limit. In one embodiment of the present invention, the transition encoder 100 enables this desired characteristic by determining a key value based on the input data in a special manner, which eliminates the need to implement byte-word alignment hardware or bit padding, simplifies the transmitter / receiver design, and reduces the overall system cost. Furthermore, according to one embodiment of the present invention, the communication system 1 achieves this desired effect without adding overhead to the transition encoding scheme.
[0074] Terms such as "first," "second," and "third" are used for various elements, components, regions, layers, and parts, but these are not limited by such modifiers. Such terms are used to distinguish one element, component, region, layer, or part from other elements, components, regions, layers, or parts, and do not fall outside the spirit and scope of the present invention.
[0075] The terms used herein are for the sole purpose of describing specific embodiments and are not intended to limit the invention. Unless otherwise specified, the number here includes both singular and plural cases. The expression “including” a certain feature, stage, operation, part, component, etc. means that it may include other features, stages, operations, parts, components, etc. in addition to the part in question. The expression “and / or” includes all combinations of one or more of the listed items. Furthermore, the expression “may be” used when describing embodiments of the invention means that it is applicable to “one or more embodiments of the invention.” The term “exemplary” refers to examples or drawings.
[0076] Words like "use" and "utilize" can be used synonymously with other similar expressions.
[0077] When describing embodiments of the present invention, the use of the expression "may" refers to one or more embodiments of the invention. The term "exemplary" is used to illustrate an example.
[0078] Although specific embodiments have been described in detail above, these embodiments are not intended to limit the scope of the present invention as described. Those skilled in the art will understand that the aforementioned coupling and operating structures and methods can be modified or altered without significantly deviating from the principles and scope of the invention expressed in the following claims and their equivalents. [Explanation of Symbols]
[0079] 1. Serial data communication system 10 Transmitters 12 Data Encoders / Compressors 15 Communication Channels 20 receivers 22 Data Decoder / Decompressor 24 Clock recovery circuit 30 processors 32 processor memory 100 Transition Encoders 200 Transition Decoder
Claims
1. A step of identifying an input packet of input data containing multiple input words, each containing a prebit, a group ID bit, and a postbit, A step of organizing the plurality of input words into a plurality of groups based on the group ID bits of the plurality of input words, A step of identifying a key group among the plurality of groups based on the number of input words in each of the aforementioned groups, A step of determining a key value based on the prebit, group ID bit, and postbit of the input word corresponding to the key group among the plurality of input words, A step of generating a plurality of encoded words based on the key value and the plurality of input words, The encoding method for input data, including [specific data type].
2. The step of receiving the aforementioned input data, The steps include dividing the input data into a plurality of data packets, including the input packet, The method for encoding input data according to claim 1, further comprising:
3. Each of the aforementioned input words is [PRB i GID i POB i Represented by ], PRB i This indicates the aforementioned prebit, GID i This indicates the group ID bit, POB i The method for encoding input data according to claim 1, wherein represents the post bit and i is an integer greater than 0.
4. The method for encoding input data according to claim 1, wherein the input packet comprises 31 input words, each of the plurality of input words comprises 8 bits, the prebit comprises the two MSBs (most distinctive bits) of the corresponding word among the plurality of input words, the group ID bit comprises the four intermediate bits of the corresponding word, the postbit comprises the two LSBs (least distinctive bits) of the corresponding word, the plurality of groups comprises 8 groups, and the run length of the input packet is 10.
5. The previous step of organizing multiple input words into multiple groups is, The step of grouping input words that have the same group ID bit or the complement of the same group ID bit into the same group among the plurality of input words. Includes, The method for encoding input data according to claim 1, wherein the number of the plurality of groups is half the number of bits in the group ID bit.
6. The step of organizing the aforementioned multiple input words into multiple groups is as follows: Among multiple input words (2 g -1) Group together words that are less than / 2 and have the same group ID bit value as the first value, (2 g -1) The step of grouping words that are greater than / 2 and have the same group ID bit value as the complement of the first value into one of the other words in the same group. Includes, The method for encoding input data according to claim 1, wherein g represents the bit length of the group ID bit.
7. The key group identification step is, The step of defining the aforementioned key group as a group among the plurality of groups having the minimum number of input words or a number of input words below a threshold. The method for encoding input data according to claim 1, including the method described in claim 1.
8. The step of determining the aforementioned key value is: A step of determining the key group ID bit as the group ID bit of the word corresponding to the key group from among the plurality of input words, The step of determining the key prebit as the missing bit from the prebit of the word corresponding to the key group among the plurality of input words, The step of determining the key post bit as the missing bit from the post bit of the word corresponding to the key group among the plurality of input words, A step of generating the key value based on the key pre bit and the key group ID bit, The method for encoding input data according to claim 1, including the method described in claim 1.
9. The key value is [PRB 0 GID 0 POB 0 , where PRB 0 indicates the key pre-bit, GID 0 indicates the key group ID bit, and POB 0 indicates the key post-bit. The encoding method for input data according to claim 8.
10. The method for encoding input data according to claim 1, wherein the key value has the same bit length as one of the plurality of input words and is not the same as any of the plurality of input words.
11. The method for encoding input data according to claim 1, wherein the plurality of encoded words include a first encoded word and a second encoded word, the first encoded word is based on at least the key value, and the second encoded word is based on the key value and a first input word among the plurality of input words.
12. The step of generating the aforementioned multiple encoded words is: A step of generating a modified key value based on the aforementioned key value, The steps include generating the first encoded word as the change key value, A step of generating the first encoded word by performing a binary XOR operation on one of the plurality of input words and the key value, The method for encoding input data according to claim 11, including the method described in claim 11.
13. The aforementioned multiple encoded words are {K', x 1 ^K, x 2 ^K, ..., x N Represented as ^K}, where K represents the key value, K' represents the modified key value based on the key value, and x 1 , x 2 , ..., x N The method for encoding input data according to claim 1, wherein represents the plurality of input words of the input packet, N is an integer greater than 2, and ^ is a symbol for a binary XOR operation.
14. The method for encoding input data according to claim 1, further comprising the step of transmitting transmission data including the plurality of encoded words to a receiver via a communication channel.
15. Processor and A processor memory that stores instructions in accordance with the processor, Includes, When the processor executes the instruction, the processor Identify an input packet of input data containing multiple input words, each including a prebit, a group ID bit, and a postbit. Based on the group ID bit of the input word, the plurality of input words are grouped into a plurality of groups Formed into a group, Identify the key group corresponding to the number of input words less than the threshold among the aforementioned multiple groups, The key value is determined based on the prebit, group ID bit, and postbit of the input word corresponding to the key group among the plurality of input words. A transition encoder for input data encoding, which generates multiple encoded words based on the key value and the multiple input words.
16. The step of receiving transmission data that includes a change key value and multiple encoded words including a first encoded word, A step of generating a key value based on the aforementioned changed key value, A step of generating a first decode word from among multiple decode words by performing a binary XOR operation on the key value and the first encoded word, Includes, The aforementioned change key value is represented as [PRB 0 GID 0 POB 0], where PRB 0 indicates the prebit of the change key value, GID 0 indicates the group ID bit of the change key value, and POB 0 indicates the postbit of the change key value. The step of generating a key value based on the aforementioned changed key value is: The step of generating the key value is to change the MSB of the group ID bit of the key value to 0. A method for decoding transmitted data.
17. The step of generating a key value based on the aforementioned changed key value is: The step of generating the key value by setting one of the bits of the modified key value to 0. A method for decoding transmission data according to claim 16, including the method described in claim 16.
18. The aforementioned multiple encoded words are {K', x 1 ^K, x 2 ^K, ..., x N It is represented as ^K, x 1 , x 2 , ..., x N The method for decoding transmission data according to claim 16, wherein represents a plurality of input words of an input packet, K represents the key value used to encode the plurality of encoded words, K' represents the modified key value, and ^ is a symbol for a binary XOR operation.
19. The step of receiving the aforementioned transmission data is: The step of receiving the aforementioned transmission data from the transmitter via a communication channel. A method for decoding transmission data according to claim 16, including the method described in claim 16.