US20190068325A1 - System and method for block-coding transcoding - Google Patents
System and method for block-coding transcoding Download PDFInfo
- Publication number
- US20190068325A1 US20190068325A1 US16/042,721 US201816042721A US2019068325A1 US 20190068325 A1 US20190068325 A1 US 20190068325A1 US 201816042721 A US201816042721 A US 201816042721A US 2019068325 A1 US2019068325 A1 US 2019068325A1
- Authority
- US
- United States
- Prior art keywords
- block
- control
- code
- input signal
- control word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
- H04L1/0058—Block-coded modulation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
- H03M5/145—Conversion to or from block codes or representations thereof
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/60—Receivers
- H04B10/66—Non-coherent receivers, e.g. using direct detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0079—Formats for control data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/02—Arrangements for detecting or preventing errors in the information received by diversity reception
- H04L1/06—Arrangements for detecting or preventing errors in the information received by diversity reception using space diversity
- H04L1/0618—Space-time coding
- H04L1/0625—Transmitter arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Definitions
- G.7041 Block-codes in accordance with the Generic Framing Procedure (GFP) outlined in ITU-T G.7041 transcode a group of eight 8B/10B codes into a 64B/65B code and ITU-T G.709 extends the G.7041 coding method to transcode eight 64B/66B codes into a 512B/513B code.
- G.7041 and G.709 defined codes are the use of address chaining to identify the locations of the control information within the original data stream, which may result in increased errors at the decoder.
- G.709 and G.7041 coding requires that all of the control information be positioned at the beginning of the block, thereby increases the transmission latency at the receiver, which is undesirable.
- an 8B/10B block-code input signal may be transcoded to a 64B/65B block-code transmission signal and a 64B/66B block-code input signal may be transcoded to a 512B/513B block-code transmission signal, thereby providing for a more bandwidth efficient block-code encoded transmission signal.
- the block-code encoder of the present invention is responsible for mapping the input signal into a block-code encoded transmission signal using a second block-code that is more bandwidth efficient than the first block-code used to encode the input signal.
- the block-code encoder establishes the appropriate mapping for the block-code encoded transmission signal by first determining if a received input signal comprises multiple data words and multiple control words, multiple data words and a single control word or multiple data words only.
- the method further includes, generating a control word location map, encoding each of the multiple control words to generate multiple control codes and mapping the control word location map, each of the multiple control codes and the multiple data words into the block-code encoded transmission signal to indicate a location of each of the multiple control words in the input signal.
- the method further includes mapping the multiple data words and each of the multiple control codes into the block-code encoded transmission signal at locations corresponding to the location of each of the multiple data words and each of the multiple control words in the input signal.
- the method further includes mapping each of the multiple control codes into a beginning of a block of the block-code encoded transmission signal and mapping the multiple data words into the block following the multiple control codes, according to the order of the multiple data words in the input signal.
- the method further includes, generating a control word location address indicating a location of the single control word in the input signal, encoding the single control word to a control code, mapping the control word location address, the control code and the multiple data words into the block-code encoded transmission signal and determining at the block-code encoder if the input signal comprises multiple data words only.
- the method further includes, mapping the multiple data words sequentially into the block-code encoded transmission signal.
- the block-code encoder determines that the input signal comprises multiple data words and a single control word
- the block-code encoder is further configured for generating a control word location address indicating a location of the single control word in the input signal, encoding the single control word to a control code and mapping the control word location address, the control code and the multiple data words into the block-code encoded transmission signal.
- the block-code encoder determines that the input signal comprises multiple data words only, the block-code encoder is further configured for mapping the multiple data words sequentially into the block-code encoded transmission signal.
- FIG. 1 is a block diagram of a system incorporating block-code transcoding, in accordance with an embodiment of the present invention.
- FIG. 3A is a table illustrating a first exemplary embodiment of 64B/65B encoding of an input signal wherein the control codes are distributed throughout the block, in accordance with an embodiment of the present invention.
- an efficient block code should have a single bit to indicate whether the block contains data words or a combination of data words and control words.
- the new block code when transcoding from one block code to a new block code that is more efficient, in order to achieve maximum encoding efficiency, the new block code must be able to store the control code identifying the type of control word and the location of the control word in the input signal in a format that requires no more than one overhead byte per control word.
- the control word location map explicitly encodes 7 of the control word locations and the 8 th location implicitly encodes using a combination of the control word location map and the positioning of the control codes in the block-code encoded transmission signal.
- the encoder then stores the control word location map into the remaining seven bits of the first byte of the block of bytes, thereby providing an explicit location map for the control information in bytes 2 - 7 of the original input signal and implicitly encoding the input signal word of byte 8 .
- a “1” in bit k of the control word location map indicates the presence of a control word in byte k of the first 7 bytes of the block of bytes of the input signal.
- the indication of whether the 8 th byte of the block of bytes of the input signal contains a data word or a control word is communicated implicitly as part of the mapping algorithm.
- the control word location map allows the receiver 170 to properly restore the byte order in either case, provided that the block-code encoder 120 and the block-code decoder 130 use consistent conventions.
- grouping the control information at the beginning of the block increases the required latency at the block-code encoder 130 of the receiver 170 . For example, if the input signal 115 contains a data word followed by seven control words, the decoder 130 would not encounter the data word until after the control information bytes have been received.
- FIG. 2 illustrates a table showing the bit settings for an exemplary embodiment of the invention for implementing a transcoding of an 8B/10B block-coded encoded input signal 105 to a 64B/65B block-code encoded transmission signal 125 .
- row 1 of the table illustrates the bit settings wherein all eight bytes of the block of the input signal to be transcoded are data words.
- Row 2 illustrates bit settings for an eight-byte input signal comprising a single control word and row 3 illustrates the bit settings for an eight-byte input signal comprising multiple control words.
- the previous control word location in the block-code transmission signal included a 4-bit pad (p), and only one more control word in the input signal occurs after this location, then the 4-bit control code (c 2 ) corresponding to this location is mapped into the first 4-bits and the 4-bit control code (c 3 ) corresponding to the last control word location in the input signal is mapped into the last 4-bits.
- the previous control code location included a 4-bit pad, and more than one control word in the input signal occurs after this location, then the 4-bit control code associated with this location is mapped into the first 4 bits and the remaining 4 bits are mapped with a 4-bit pad. As such, in FIG.
- a control word location map is generated by the encoder to indicate the location of control words (C 1 , C 2 and C 3 ) in the input signal at byte locations 5 , 6 and 7 and the control word location map is mapped into bits 2 - 8 of the first byte of the block-code encoded transmission signal.
- the encoder then begins sequentially mapping the data bytes to the block-code encoded transmission signal, beginning with the second byte.
- the encoder determines whether or not the next control word (C 2 ) is the last control word to be mapped.
- FIG. 5 An exemplary embodiment of the present invention for transcoding an 64B/65B block into a 512B/513B block is illustrated in FIG. 5 .
- the input signal includes multiple control blocks comprising control information, wherein the control blocks are positioned at locations 1 , 3 and 5 in the input signal as indicated by the 7-bit control block location map, “1010100”, which is mapped to bits 2 - 8 of the first byte of the first word of the 512B/513B transmission signal.
- the encoder maps 56 bits of the first control block (C 1 ) to bytes 2 - 8 of the first word.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
A system and method for block-code transcoding. An input signal is analyzed to determine if the input signal comprises multiple data words and multiple control words, multiple data words and a single control word or multiple data words only. If the input signal comprises multiple control words, the method includes, generating a control word location map and mapping the control codes and data words to a block-code encoded transmission signal. If the input signal comprises a single control word, the method includes, generating a control word location address indicating a location of the single control word and mapping the control word and the data words to a block-code encoded transmission signal. If the input signal comprises multiple data words only, the method includes, mapping the multiple data words sequentially into the block-code encoded transmission signal. Accordingly, the bandwidth efficiency of the transmission signal is improved by varying the encoding technique used dependent upon the contents of the input signal.
Description
- Bandwidth efficient transparent block-code transcoding techniques are known in the art for the transmission of data streams over a communication channel. Popular block-codes used for transmitting signals over an Optical Transport Network (OTN), such as 8B/10B and 64B/66B commonly used for Ethernet signals, are not bandwidth efficient enough to allow encoded client signals to be carried transparently over a transport network utilizing the ITU-T G.709 transport protocol. While more bandwidth efficient block-codes have been developed that allow a transparent transcoding between the encoded client signal and the more bandwidth efficient codes, the block-codes currently known in the art suffer from several deficiencies.
- Block-codes in accordance with the Generic Framing Procedure (GFP) outlined in ITU-T G.7041 transcode a group of eight 8B/10B codes into a 64B/65B code and ITU-T G.709 extends the G.7041 coding method to transcode eight 64B/66B codes into a 512B/513B code. However, one disadvantage to using G.7041 and G.709 defined codes is the use of address chaining to identify the locations of the control information within the original data stream, which may result in increased errors at the decoder. Additionally, G.709 and G.7041 coding requires that all of the control information be positioned at the beginning of the block, thereby increases the transmission latency at the receiver, which is undesirable.
- Accordingly, what is needed in the art is an improved system and method for block-code transcoding that provides reduced latency and is more robust than the block-code encoding methods currently known in the art, thereby providing for more reliable signal transmission and lower error rates.
- In various embodiments, the present invention provides an apparatus and method for transcoding a block-code encoded input signal to a more bandwidth efficient block-code encoded transmission signal. In general, transcoding compresses data and therefore reduces total overhead.
- The coding overhead for an 8B/10B coding scheme is 25%, wherein the encoder adds 2 bits of extra information, or overhead, for every 8 bits of user information. As the bit rate of the high-speed transmission channel increases, this overhead grows in terms of overall bandwidth. As such, for a serial transmission channel that is capable of transmitting data at a rate of 10 Gpbs (Gigibits per second) and is encoded utilizing an 8B/10B coding scheme, only 8 Gpbs would be available for actual user data and the remaining 2 Gbps would be needed for the coding overhead. Lower overhead encoding schemes are known in the art, such as 64B/65B and 512B/513B encoding schemes. The 64B/66B coding scheme was developed for transporting a 10 Gpbs Ethernet data stream over a single high-speed transmission channel. The 64B/65B encoding includes 8 bytes (i.e. 64b bits) of data bytes, control bytes or a combination thereof and only 1 overhead bit. As such, 64B/65B encoding is more bandwidth efficient than the 8B/10B coding scheme because the total overhead (1 bit for every 64 bits) for 64B/65B is only about 1.5% as compared to the 25% overhead for 8B/10B encoding. Additionally, 512B/513B encoding includes 64 bytes (i.e. 512 bits) of data bytes, control bytes or a combination thereof, and 1 overhead bit. As such, the overhead for 512B/513B encoding is significantly more efficient than 64B/66B encoding. In exemplary embodiments of the present invention, an 8B/10B block-code input signal may be transcoded to a 64B/65B block-code transmission signal and a 64B/66B block-code input signal may be transcoded to a 512B/513B block-code transmission signal, thereby providing for a more bandwidth efficient block-code encoded transmission signal.
- In one embodiment, the present invention provides a method for block-code transcoding which includes, receiving a block-code encoded input signal at a decoder, wherein the block-code encoded input signal has been encoded using a first block-code. After receiving the block-code encoded input signal, the method continues by decoding the block-code encoded input signal to generate an input signal comprising multiple data words and multiple control words, multiple data words and a single control word or multiple data words only. The input signal is then provided to a block-code encoder for transcoding the input signal to a more efficient block-code encoded transmission signal using a second block-code. In general, the block-code encoder of the present invention is responsible for mapping the input signal into a block-code encoded transmission signal using a second block-code that is more bandwidth efficient than the first block-code used to encode the input signal. The block-code encoder establishes the appropriate mapping for the block-code encoded transmission signal by first determining if a received input signal comprises multiple data words and multiple control words, multiple data words and a single control word or multiple data words only.
- If the input signal comprises multiple data words and multiple control words the method further includes, generating a control word location map, encoding each of the multiple control words to generate multiple control codes and mapping the control word location map, each of the multiple control codes and the multiple data words into the block-code encoded transmission signal to indicate a location of each of the multiple control words in the input signal. In one embodiment, the method further includes mapping the multiple data words and each of the multiple control codes into the block-code encoded transmission signal at locations corresponding to the location of each of the multiple data words and each of the multiple control words in the input signal. In an additional embodiment, the method further includes mapping each of the multiple control codes into a beginning of a block of the block-code encoded transmission signal and mapping the multiple data words into the block following the multiple control codes, according to the order of the multiple data words in the input signal.
- If the input signal comprises multiple data words and a single control word, the method further includes, generating a control word location address indicating a location of the single control word in the input signal, encoding the single control word to a control code, mapping the control word location address, the control code and the multiple data words into the block-code encoded transmission signal and determining at the block-code encoder if the input signal comprises multiple data words only.
- If the input signal comprises multiple data words only, the method further includes, mapping the multiple data words sequentially into the block-code encoded transmission signal.
- In specific exemplary embodiments, the method of the present invention may be used for transcoding input signals from an 8B/10B block-code to a 64B/65B block-code and from a 64B/66B block-code to a 512B/513B block-code. However, the exemplary embodiments are not intended to be limiting and transcoding between other block-codes is within the scope of the present invention.
- The present invention further provides a system for block-code transcoding which includes a block-code encoder configured for receiving an input signal comprising multiple data words and multiple control words, multiple data words and a single control word or multiple data words only, determining if the input signal comprises multiple data words and multiple control words, multiple data words and a single control word or multiple data words only.
- If the block-code encoder determines that the input signal comprises multiple data words and multiple control words, the block-code encoder is further configured for generating a control word location map, encoding each of the multiple control words to generate multiple control codes and mapping the control word location map, each of the multiple control codes and the multiple data words into the block-code encoded transmission signal to indicate the location of each of the multiple control words in the input signal. In one embodiment, the multiple data words and each of the multiple control codes are mapped into the block-code encoded transmission signal at locations corresponding to the location of each of the multiple data words and each of the multiple control words in the input signal. In an additional embodiment, the multiple control codes are mapped into a beginning of a block of the block-code encoded transmission signal and the multiple data words are mapped into the block following the multiple control codes, according to the order of the multiple data words in the input signal.
- If the block-code encoder determines that the input signal comprises multiple data words and a single control word, the block-code encoder is further configured for generating a control word location address indicating a location of the single control word in the input signal, encoding the single control word to a control code and mapping the control word location address, the control code and the multiple data words into the block-code encoded transmission signal.
- If the block-code encoder determines that the input signal comprises multiple data words only, the block-code encoder is further configured for mapping the multiple data words sequentially into the block-code encoded transmission signal.
- Accordingly, in various embodiments, the present invention provides an improved system and method for block-code transcoding that provides reduced latency and is more robust than the block-code encoding methods currently known in the art.
- The accompanying drawings, which are incorporated in and form a part of this specification, illustrate various embodiments and, together with the Description of Embodiments, serve to explain principles discussed below. The drawings referred to in this brief description should not be understood as being drawn to scale unless specifically noted.
-
FIG. 1 is a block diagram of a system incorporating block-code transcoding, in accordance with an embodiment of the present invention. -
FIG. 2 is a table illustrating an exemplary embodiment for 64B/65B block-code, in accordance with an embodiment of the present invention. -
FIG. 3A is a table illustrating a first exemplary embodiment of 64B/65B encoding of an input signal wherein the control codes are distributed throughout the block, in accordance with an embodiment of the present invention. -
FIG. 3B is a table illustrating a second exemplary embodiment of 64B/65B encoding wherein the control codes are distributed throughout the block, in accordance with an embodiment of the present invention. -
FIG. 3C is a table illustrating a third exemplary embodiment of 64B/65B encoding wherein the control codes are distributed throughout the block, in accordance with an embodiment of the present invention. -
FIG. 3D is a table illustrating a fourth exemplary embodiment of 64B/65B encoding wherein the control codes are distributed throughout the block, in accordance with an embodiment of the present invention. -
FIG. 3E is a table illustrating a fifth exemplary embodiment of 64B/65B encoding wherein the control codes are placed at the beginning of the block, in accordance with an embodiment of the present invention. -
FIG. 4 is a table illustrating an exemplary embodiment of 512B/513B transcoding of an input signal, in accordance with an embodiment of the present invention. -
FIG. 5 a table illustrating a first exemplary embodiment of 512B/513B encoding, in accordance with an embodiment of the present invention. -
FIG. 6 is a swim diagram illustrating a method of transcoding, in accordance with an embodiment of the present invention. -
FIG. 7 is a flow diagram illustrating a method for transcoding, in accordance with an embodiment of the present invention. -
FIG. 8 is a flow diagram illustrating additional operations for transcoding an input signal comprising multiple control words, in accordance with an embodiment of the present invention. -
FIG. 9 is a flow diagram illustrating additional operations for mapping an input signal comprising multiple control words, in accordance with an embodiment of the present invention. -
FIG. 10 is a flow diagram illustrating additional operations for transcoding an input signal comprising a single control word, in accordance with an embodiment of the present invention. -
FIG. 11 is a flow diagram illustrating additional operations for mapping an input signal comprising a single control word, in accordance with an embodiment of the present invention. -
FIG. 12 is a flow diagram illustrating additional operations for mapping an input signal comprising multiple data words only, in accordance with an embodiment of the present invention. - Reference will now be made in detail to various embodiments, examples of which are illustrated in the accompanying drawings. While various embodiments are discussed herein, it will be understood that they are not intended to be limiting. On the contrary, the presented embodiments are intended to cover alternatives, modifications, and equivalents, which may be included within the spirit and scope of the various embodiments as defined by the appended claims. Furthermore, in this Detailed Description of the Invention, numerous specific details are set forth in order to provide a thorough understanding. However, embodiments may be practiced without one or more of these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the described embodiments.
- It will be understood that, although the terms first, second, third, etc., may be used herein to describe various elements, components, regions, layers, and/or sections, these elements, components, regions, layers, and/or sections should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer, or section from another region, layer, or section. Thus, a first element, component, region, layer, or section discussed below could be termed a second element, component, region, layer, or section without departing from the teachings of the present invention.
- Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
- In accordance with various embodiments of the present invention, an efficient system for transmitting information signals over an optical communication network is provided. More specifically, the invention provides a system and method for transparent block-code transcoding that is more bandwidth efficient than other block-code transcoding systems and methods currently known in the art. The block-code transcoding of the present invention does not require chain addressing, thereby reducing subsequent decoding errors and is also scalable to provide for encoding of larger block sizes. By utilizing the block-code encoding system and method of the present invention, the data carrying capacity required to transmit gigabit Ethernet (GbE) signals over a communication channel is minimized, thereby enabling efficient and transparent transmission of the information signals over a communication network.
- Block-code encoding, as used here, is a type of encoding wherein a number of bits are added to a bit group in order to achieve a desired effect. In block-code encoding, an input signal comprising data words and possibly including one or more control words is received at an encoder and the data words and the one or more control words are mapped or encoded into a block-code encoded transmission signal utilizing a specific block-code encoding technique. It is appreciated that, the term “control word” and “data word” are used throughout the description of the invention to refer to unencoded characters or symbols. Additionally, “control code” and “data code” are used throughout the description to refer to encoded transmission characters or symbols. In general, a kB/nB line codes takes “k”-bit input signal comprising data words and control words and expands it to an “n”-bit symbol comprising data codes and control codes for transmission over a communication channel, wherein the additional “n-k” bits are used for functions such as distinguishing between data and control information and for simplifying a receiver clock recovery. The number of bits added to the bit group is commonly referred to as the overhead for the block code. Maximum block code efficiency is achieved when the ratio of the overhead required for the block code to the total block size is minimized. This ratio is minimized by increasing the number of client payload words per block and/or by minimizing the number of overhead bits required. Ideally, an efficient block code should have a single bit to indicate whether the block contains data words or a combination of data words and control words. As such, assuming a one byte data word size, when transcoding from one block code to a new block code that is more efficient, in order to achieve maximum encoding efficiency, the new block code must be able to store the control code identifying the type of control word and the location of the control word in the input signal in a format that requires no more than one overhead byte per control word.
- In a specific example, 8B/10B encoding is used to map 8-bit data words into 10-bit code words for transmission over a communication channel. Control codes are typically generated by reading a control code from a look-up table (LUT) as indexed by the control word in the input signal. The control codes require fewer bits than the control words and it is ideal to have the control codes use as few bits as possible to uniquely map each of the control words. For example, in the case of twelve control words, a minimum of four bits are required to uniquely map each of these to control codes and in the case of eight control words, a minimum of three bits are required. These are exemplary embodiments and it is understood that numerous other block-code encoding schemes are possible, including 64B/65B and 512B/513B block-code encoding schemes.
- In the present invention, transparent communication of the control codes and efficient bandwidth transmission is achieved by transcoding the input signal into a more efficient block-code encoded transmission signal. In the exemplary case of transcoding an 8B/10B signal to a 64B/65B signal, the first step is to decode the 8B/10B signal into the original 8-bit data words and associated control words. These data words and control words are then re-encoded, or mapped, into a 64B/65B code. Each 64B/65B code carries the information of eight of the 8B/10B words. For the data codes, the original 8-bit data words are mapped directly into the payload bytes of the 64B/65B codes and the 8B/10B control words are re-encoded and mapped into one or more bytes in the 64B/65B encoded signal. Accordingly, in various embodiments, the transcoding methods are provided by the present invention for encoding the transmitted signals so that they can be efficiently and transparently transmitted within the available bandwidth of the communication channel without losing any control information of the input signal.
-
FIG. 1 illustrates an embodiment of thesystem 100 of the present invention including atransmitter 160, areceiver 170 and atransmission channel 150 positioned between thetransmitter 160 and thereceiver 170. Thetransmitter 160 and thereceiver 170 may include both hardware and software components. At thetransmitter 160, adecoder 110 receives a block-code encodedinput signal 105, and decodes the block-code encodedinput signal 105 to provide aninput signal 115 to a block-code encoder 120 implementing the present invention to generate a more bandwidth efficient block-code encodedtransmission signal 125. At thereceiver 170, a block-code decoder 130 receives and decodes the block-code encodedtransmission signal 120 to recover theinput signal 115 and then transmits theinput signal 115 to anencoder 140 which regenerates the block-code encodedinput signal 105. - In one embodiment, the block-code encoded
input signal 105 may be an 8B/10B stream of encoded characters or symbols. Thedecoder 110 is configured for decoding the encodedinput signal 105 to generate aninput signal 115 comprising data words and control words. Theinput signal 115 is then provided to a block-code encoder 120 of the present invention that is configured for receiving theinput signal 115 and for mapping theinput signal 115 into a block-code encodedtransmission signal 125, wherein the block-code encodedtransmission signal 125 is more bandwidth efficient than the block-code encodedinput signal 105. For example, an 8B/10B encodedinput signal 105 may be received at thedecoder 110 and decoded to provide aninput signal 115 to the block-code encoder 120. Theinput signal 115 may be an 8-byte input signal comprising 8 bytes of data words or theinput signal 115 may be an 8-byte input signal comprising data words and one or more control words. To provide a more bandwidth efficient signal, the block-code encoder 120 may be configured for mapping the 8 bytes of theinput signal 115 into a 64B/65B block-code encodedtransmission signal 125 for transmission over a communication channel. - In order to map the
input signal 115 to generate a more bandwidth efficient block-code encodedtransmission signal 125, the block-code encoder 120 initially determines if a block of bytes of theinput signal 115 comprises multiple data words and multiple control words, multiple data words and a single control word or multiple data words only. - If the block-
code encoder 120 determines that the block of bytes of theinput signal 115 comprises multiple data words and multiple control words, the block-code encoder 120 sets a control block indicator flag for the block of bytes to a first logic value (for example, the control block indicator flag may be set to “1”), to indicate that the block of bytes of theinput signal 115 includes at least one control word and sets a multiple control word indicator in the first bit of the first byte the block of bytes to the first logic level, to indicate that theinput signal 115 includes multiple control words. In a particular embodiment, setting the multiple control word indicator to a “0” indicates that there is only a single control word in theinput signal 115 and setting the multiple control word indicator to a “1” indicates that theinput signal 115 includes more than one control word. - After appropriately setting the control block indicator and the multiple control word indicator for each byte of the block-code encoded transmission signal to the appropriate logic values to indicate that the input signal to be block-encoded includes multiple control words, the
encoder 120 then generates a control word location map indicating a location of each of the multiple control words in theinput signal 115 and encodes each of the multiple control words of theinput signal 115 to generate multiple control codes. In the case of an input signal containing multiple control words, the multiple control word indicator requires 1 bit, leaving only 7 bits in the overhead byte to encode the control word location map, which may require up to 8 control word locations. As such, in the present invention, the control word location map explicitly encodes 7 of the control word locations and the 8th location implicitly encodes using a combination of the control word location map and the positioning of the control codes in the block-code encoded transmission signal. The encoder then stores the control word location map into the remaining seven bits of the first byte of the block of bytes, thereby providing an explicit location map for the control information in bytes 2-7 of the original input signal and implicitly encoding the input signal word ofbyte 8. Specifically, a “1” in bit k of the control word location map indicates the presence of a control word in byte k of the first 7 bytes of the block of bytes of the input signal. As explained in detail below, the indication of whether the 8th byte of the block of bytes of the input signal contains a data word or a control word is communicated implicitly as part of the mapping algorithm. - As such, in accordance with the present invention, when the block-
code encoder 120 determines that there are multiple data words and multiple control words in a block of bytes to be transcoded into a block-code encodedtransmission signal 125, the block-code encoder 120 sets a control block indicator flag bit for the block of the block-code encodedtransmission signal 125 to a first logic level, sets a multiple control word indicator for the block of the block-code encodedtransmission signal 125 to the first logic level and maps the multiple control word indicator and the control word location map to a first byte of the block of bytes of the block-code encodedtransmission signal 125. - In order to map each of the multiple control codes and the multiple data words into the block-code encoded
transmission signal 125, beginning with a second byte of the block of bytes, the block-code encoder 120 maps the multiple data words into a block of the block-codedtransmission signal 125 according to the order of the multiple data words in theinput signal 115 until a control word is reached in theinput signal 115. When a control word is reached, the block-code encoder 120 maps the control code associated with the control word of theinput signal 115 to a first plurality of bits at the control word location. Theencoder 120 then maps the control code associated with a next control word in theinput signal 115 to a second plurality of bits at the control word location if the next control word is the last control word in theinput signal 115 or the block-code encoder 120 maps padding bits to the second plurality of bits at the control word location if the next control word is not the last control word in theinput signal 115. Accordingly, the present invention places a pair of control codes in the next to last control word location in the block-code encodedtransmission signal 125 and all other control word locations contain a single control code plus padding bits. As such, the last control word location contains a data byte, so that all the information is contained within the 7-byte block payload field. The implied content of the last input word of theinput signal 115 is indicated through the control word location in the control word location map that contains two control codes rather than a single control code plus padding bits. More specifically, if the last control word location of the control word location map contains two control codes, then it is implied that the last word of theinput signal 115 was a control word and the second of the two control codes is associated with this control word. Alternatively, if the next-to-last control word location of the control word location map contains two control codes, then the second control code of the two control codes is associated with the last control word location indicated by the control word location map and it is implied that the last word of the input signal is a data byte. - As such, the present invention achieves implicit encoding of the 8th word location in the block code encoded transmission signal by using bits 2-8 of the overhead byte to explicitly encode the location of the control words in the first 7 bytes of the block and the control word locations are used to carry control code information so that no additional overhead bits are required. In the case of an 8-byte block, since there are only 7 payload bytes following the overhead byte, one of the control code locations must contain two of the 4-bit control codes in order to reduce the payload size by enough bits to accommodate the 8-bit overhead byte.
- In the embodiment previously described, the block-
code encoder 120 maps the multiple data words and each of the multiple control codes into the block-code encodedtransmission signal 125 at locations corresponding to the location of each of the multiple data words and each of the multiple control words in theinput signal 115. This distributed approach for placing control information into a block of the block-code encodedtransmission signal 125 at control word locations that correspond to the control words in theinput signal 115 is not possible with the prior art solutions, which require that all the control information be positioned at the beginning of the block of the block-code encodedtransmission signal 125. - In addition, in the case of multiple control words, the invention also allows for an alternative byte ordering that places all of the bytes containing control words at the beginning of the block, followed by the data words. In this alternative embodiment, the
block code encoder 120 maps each of the multiple control codes into a beginning of a block of the block-code encodedtransmission signal 125 and then maps the multiple data words into the block following the multiple control codes, according to the order of the multiple data words in the input signal. - Regardless of whether or not the control words are placed at the beginning of the block of the block-code encoded
transmission signal 125 or distributed according to the locations of the control words in theinput signal 115, the control word location map allows thereceiver 170 to properly restore the byte order in either case, provided that the block-code encoder 120 and the block-code decoder 130 use consistent conventions. However, grouping the control information at the beginning of the block increases the required latency at the block-code encoder 130 of thereceiver 170. For example, if theinput signal 115 contains a data word followed by seven control words, thedecoder 130 would not encounter the data word until after the control information bytes have been received. Hence grouping the control words at the beginning of the block of the block-encodedtransmission signal 125 creates an inherent seven-byte minimum latency in the case of 64B/65B block-code encoding. Alternatively, if the control codes are placed in the block-code encodedtransmission signal 125 at locations corresponding to where the control words occurred in theinput signal 115, the receivingdecoder 130 only requires a single byte of latency in order to examine the first byte of the block of the block-code encodedtransmission signal 125 to find the control word location information. - If the block-
code encoder 120 determines that the block of bytes of theinput signal 115 comprises multiple data words and only a single control word instead of multiple control words, the block-code encoder 120 generates a control word location address indicating a location of the single control word in the input signal, encodes the single control word to a control code and maps the control word location address, the control code and the multiple data words into the block-code encodedtransmission signal 125 for transmission over the transmission medium. - The presence of a single control word in the
input signal 115 is a problematic special case because compressing the control word to a 4-bit control code does not save enough bandwidth to accommodate the inclusion of a control word location address in the block. As such, when the block-code encoder 120 determines that the block of bytes of theinput signal 115 comprises multiple data words and only a single control word, the block-code encoder 120 sets a control block indicator flag for the block of bytes to a first logic value (for example, the control block indicator flag may be set to “1”), to indicate that the block of bytes of theinput signal 115 includes at least one control word and sets a multiple control word indicator in the first bit of the first byte the block of bytes to a second logic level (for example, the multiple control block indicator may be set to “0”), to indicate that theinput signal 115 includes only a single word. In a particular embodiment, setting the multiple control word indicator to a “0” indicates that there is only a single control word in theinput signal 115 and setting the multiple control word indicator to a “1” indicates that theinput signal 115 includes more than one control word. In the specific case for 64B/65B encoding, the control word location address is then mapped to the following three bits of the first byte of the block of bytes and the last four bits of the first byte contain the associated single control code. - After appropriately setting the control block indicator and the multiple control word indicator for each byte of the block-code encoded transmission signal to the appropriate logic values to indicate that the input signal to be block-encoded includes only a single control word, the
encoder 120 then generates a control word location address and encodes the single control words of theinput signal 115 to generate a control code. Theencoder 120 then maps the control word location address to a first plurality of bits following the first bit of the first byte of the block of bytes of the block-code encodedtransmission signal 125 and maps the control code for the single control word to a second plurality of bits following the first plurality of bits of the first byte of the block of the block-code encodedtransmission signal 125 to indicate the location of the single control word in theinput signal 115. - As such, in accordance with the present invention, when the block-
code encoder 120 determines that there are multiple data words and only one control word in a block of bytes to be transcoded into a block-code encodedtransmission signal 125, the block-code encoder 120 sets a control block indicator flag bit for the block of the block-code encodedtransmission signal 125 to a first logic level, sets a multiple control word indicator for the block of the block-code encodedtransmission signal 125 to a second logic level, maps the multiple control word indicator, the control word location address and the single control code to a first byte of the block of bytes of the block-code encodedtransmission signal 125. Theencoder 120 then maps each of the multiple data words into the block-code encodedtransmission signal 125, beginning with a second byte of the block of bytes, the block-code encoder 120 maps the multiple data words into a block of the block-codedtransmission signal 125 according to the order of the multiple data words in theinput signal 115. - If the block-
code encoder 120 determines that the block of bytes of theinput signal 115 comprises multiple data words only, the block-code encoder 120 sets a control block indicator flag for the block of bytes to a second logic value (for example, the control block indicator flag may be set to “0”), to indicate that the block of bytes of theinput signal 115 includes only data words and maps the multiple data words sequentially into the block-code encodedtransmission signal 125 for transmission over the transmission channel. -
FIG. 2 illustrates a table showing the bit settings for an exemplary embodiment of the invention for implementing a transcoding of an 8B/10B block-coded encodedinput signal 105 to a 64B/65B block-code encodedtransmission signal 125. As shown in FIG. 2,row 1 of the table illustrates the bit settings wherein all eight bytes of the block of the input signal to be transcoded are data words.Row 2 illustrates bit settings for an eight-byte input signal comprising a single control word androw 3 illustrates the bit settings for an eight-byte input signal comprising multiple control words. - As shown in this exemplary embodiment, the
encoder 120 sets thecontrol block indicator 200 to a “0” when the input signal to be transcoded consists of only data words and sets thecontrol block indicator 200 to a “1” when one or more control words are present in theinput signal 115. Thefirst byte 205 of the block-code encodedtransmission signal 125 is structured such that thefirst bit 210 of thefirst byte 205 indicates whether the block contains a single control code or multiple control codes. If only data words are to be encoded, all of the bytes 1-8 contain the data words in the order in which they appeared in the input signal 115 (D1-D8). Otherwise, if the input signal includes both data words and one or more control words, the first byte is structured such that, a “0” in thefirst bit 210 of thefirst byte 205 indicates that there is only a single control code in the block of bytes to be transcoded and a “1” in thefirst bit 210 of thefirst byte 205 indicates that there are multiple control codes in the block of bytes to be transcoded. If theinput signal 115 includes only a single control word, then a 3-bit location address 215 pointing to the original location of the single control word within the block of bytes of theinput signal 115 is mapped to bits 2-4 of thefirst byte 205 and a 4-bitsingle control code 220 is mapped to bits 5-8 235 of the first byte. The data words are then mapped into bytes 2-8, as they appeared in the input signal (D1-D7). Alternatively, if theinput signal 115 includes multiple control words, then the controlword location map 230 is mapped to bits 2-8 of thefirst byte 205 and the control words and the data words are then mapped into bytes 2-8, in the order they appeared in the input signal (D/C), wherein bytes 2-8 contain data words if theoriginal input stream 115 had data in a particular location or control codes as defined in the control word location map. - Examples of the block-code encoding provided by the
encoder 120 of the present invention are illustrated with reference toFIG. 3A -FIG. 3E . InFIG. 3A -FIG. 3E , it is assumed that multiple control codes are present in the 8B/10B block-coded encoded input signal that is to be encoded into a 64B/65B block-code encoded transmission signal. InFIG. 3A -FIG. 3E , the first byte only shows the control word location map because in these embodiments the presence of multiple control words is implied. In these embodiments, “cn” represents a number “n” of 4-bit control codes and “p” represents a 4-bit pad. - In
FIG. 3A andFIG. 3B , the input signal to be transcoded comprises a first control word at byte 1 (C1) and a second control word at byte 2 (C2) of bytes 1-7 of the input signal. As such, in the transcoding process performed by the block-code encoder, the control word location map that is mapped to bits 2-8 of the first byte of the block-coded transmission signal includes a “1” inbits - After the control word location map has been mapped into the first byte of the block-code encoded transmission signal, the encoder them continues by mapping the bytes of the input signal into the block-code encoded transmission signal, beginning with the second byte of the block-code encoded transmission signal, in the order in which they appear in the input signal. The encoder continues mapping until the first control word (C1) is reached. When the first control word (C1) is reached, the encoder maps the first 4-bits of the second byte of the block-code encoded transmission signal to contain the 4-bit control code (c1) associated with the first control word (C1) and maps the second 4 bits of the second byte of the block-code encoded transmission signal to contain the 4-bit control code (c2) of the next control word (C2) if the next control word is the last control word to be mapped to the block, as is the case in the input signal of
FIG. 3A . Alternatively, if the next control word (C2) is not the last control word input to the block, as is the case inFIG. 3B where there is a third control word (C3) following the second control word (C2), the second 4-bit field of the second byte is set to contain a 4-bit pad to indicate that more than one control word remains to be mapped. Next, if the control word location map indicates a data byte(s) following the first control word (C1), the encoder maps the data bytes(s) into the block-code encoded transmission signal in order until the next control word location (C2) is reached. When the next control word location is reached, if the previous control word location in the block-code transmission signal contained two control codes (c1, c2), then the byte at this location is filled with the next data byte. As such, inFIG. 3A , the second byte of the block-code encoded transmission signal includes two control codes (c1, c2) because the second control word in the input signal is the last control word to be mapped to the block. The explicit 7-bit control word location map (1100000) explicitly indicates the location of control words at byte 1 (C1) and byte 2 (C2) of the input signal. As such, by placing two control codes (c1, c2) in the next to last explicitly identified control code location of the block-code encoded transmission signal, implies that the second control code (c2) is associated with this last control word (C2) of the input signal and the last input word of the input signal is a data byte. - Alternatively, if the previous control word location in the block-code transmission signal included a 4-bit pad (p), and only one more control word in the input signal occurs after this location, then the 4-bit control code (c2) corresponding to this location is mapped into the first 4-bits and the 4-bit control code (c3) corresponding to the last control word location in the input signal is mapped into the last 4-bits. Additionally, if the previous control code location included a 4-bit pad, and more than one control word in the input signal occurs after this location, then the 4-bit control code associated with this location is mapped into the first 4 bits and the remaining 4 bits are mapped with a 4-bit pad. As such, in
FIG. 3B , the second byte of the block-code encoded transmission signal includes one control codes (c1) and a 4-bit pad (p) because the second control word in the input signal is not the last control word to be mapped to the block and the third byte includes two control codes (c2, c3) because the third control word in the input signal is the last control word to be mapped to the block. The explicit 7-bit control word location map (1100000) explicitly indicates the location of control words atbyte 1 andbyte 2 of the input signal. However, there is also another control word (C3) atbyte 8 of the input signal that needs to be implicitly identified. By placing two control codes (c2, c3) in the last explicitly identified control word location of the block-code encoded transmission signal, implies that the last input word (byte 8) of the input signal is a control word and the second control code (c3) is associated with the last control word location (C3). - The above steps are repeated until the end of the block of bytes of the input signal is reached.
- In an additional embodiment shown in
FIG. 3C , a control word location map is generated by the encoder to indicate the location of control words (C1, C2 and C3) in the input signal atbyte locations FIG. 3C , the next control word is the second control word (C2) and as such, is not the last control word to be mapped, because a third control word (C3) still remains to be mapped. As such, in accordance with the encoding algorithm, the encoder maps the control code (c1) for the first control word (C1) into the first 4 bits of the byte of the block-code encoded control signal and maps a 4-bit pad (p) into the second 4 bits of the byte. The encoder then continues mapping the bytes of the input signal into the block-code encoded transmission signal until the second control word (C2) is reached and when the second control word (C2) is reached, the encoder maps the control code (c2) for the second control word (C2) into the first 4 bits of the byte and maps the control code (c3) for the third control word (C3) into the second 4 bits of the byte, indicating that the third control word (C3) is the last control word remaining in the input signal to be mapped. The explicit 7-bit control word location map (0000111) explicitly indicates the location of control words at byte 5 (C1), byte 6 (C2) and byte 7 (C3) of the input signal. As such, by placing two control codes (c2, c3) in the next to last explicitly identified control word location (byte 6) of the block-code encoded transmission signal, implies that the second control code (c3) is associated with this last control word (C3) of the input signal and the last input word of the input signal is a data byte. - In the embodiment illustrated in
FIG. 3D , the same control word location map is generated by the encoder to indicated control words (C1, C2, C3, C4) at byte locations 5-8 of the input signal. While in this embodiment, a control word is located atbyte location 8, the control word location map only identifies the contents of the bytes in the first 7 bytes of the input signal with the content of the last byte being implied by the encoding. Accordingly, in this embodiment, during the mapping of the bytes into the block-encoded transmission signal, when the encoder encounters the first control word (C1) at the 5th byte of the input signal and the encoder determines that the second control word (C2) is not the last control word to be mapped, the encoder maps the control code (c1) of the first control word (C1) to the first 4 bits of the sixth byte of the block-code encoded transmission signal and maps a 4-bit pad (p) to the second 4 bits of the sixth byte of the block-code encoded transmission signal. The encoder then continues mapping and when the second control word (C2) is reached and the encoder determines that the third control word (C3) is not the last control word to be mapped, the encoder maps the control code (c2) of the second control word (C2) to the first 4 bits and a 4-bit pad (p) to the second 4 bits of the 7th byte of the block-code encoded transmission signal. The encoder continues mapping and when the third control word (C3) is reached and the encoder determines that the fourth control word (C4) is the last control word to be mapped into the block-code encoded transmission signal from the input signal, the encoder maps the control code (c3) of the third control word (C3) to the first 4 bits and the control code (c4) of the fourth (and final) control word (C4) to the second 4 bits of the 8th byte of the block-code encoded transmission signal. The explicit 7-bit control word location map (0000111) explicitly indicates the location of control words at byte 5 (C1), byte 6 (C2) and byte 7 (C3) of the input signal. However, there is also another control word (C4) atbyte 8 of the input signal that needs to be implicitly identified. By placing two control codes (c4, c4) in the last explicitly identified control word location of the block-code encoded transmission signal (byte 7), implies that the last input word (byte 8) of the input signal is a control word and the second control code (c4) is associated with the last control word location (C4). - As illustrated in
FIG. 3A -FIG. 3D , in accordance with the present invention, if a control word location in the block-code encoded transmission signal contains two control codes, the second control code always corresponds to the last control word of the input signal for that block. It follows that the contents of the last byte of the input signal are communicated implicitly by the encoding algorithm of the present invention wherein, if the last control word location indicated by the control word location map field contains two control codes, then the second control code corresponds to a control word in the last byte location of the input signal and if the next-to-last control word location indicated by the control word location map field contains two control codes, then the last byte of the input signal contained data. As such, in the cast of an 8B/10B encoded input signal, the indication of whether or not the 8th byte of the input signal to be mapped to the block-code encoded transmission signal contains a data or control word is implicitly communicated as part of the mapping algorithm. - In the embodiments illustrated in
FIG. 3A -FIG. 3D , the encoding performed by the encoder distributes the control information within the block at the locations corresponding to the locations of the control words in the input signal. This distributed approach is not inherently possible with the known prior art encoding methods, which require that all control information be located at the beginning of the block. - In an additional embodiment, illustrated in
FIG. 3E , it is also within the scope of the present invention for the encoder to implement an alternative byte ordering in the block-code encoded transmission signal wherein all of the bytes containing control word information are positioned at the beginning of the block and the control bytes are then followed by the data bytes. Such an alternative byte ordering embodiment is illustrated inFIG. 3E , wherein the control word location map is stored in the first byte of the block-code encoded transmission signal to indicate that there are control words positioned atbytes - In either the distributed embodiment or the embodiment wherein the control codes are positioned at the beginning of the block, the control word location map allows the receiver to properly restore the byte order as long as the block-
code encoder 120 and the block-code decoder 130 use consistent conventions. However, grouping the control information at the beginning of the block increase the required latency at the receiver/decoder. For example, if the input signal contains a data word followed by seven control words and the block-code encoded signal is encoded to have all of the control information at the beginning of the block, the receiver would not encounter the data word value until after the control information bytes. Hence, grouping the control information at the beginning of the block creates an inherent 7-byte minimum latency. Alternatively, if the control code information in the block is distributed based upon the locations of the corresponding control words in the input signal, the receiver only requires a single byte of latency in order to examine the first byte of the block for the control word location information. - The embodiments illustrated in
FIG. 3A -FIG. 3E were exemplary of an encoder and associated encoding method for transcoding an 8B/10B block-code encoded input signal to a 64B/65B block-code encoded transmission signal. The present invention additionally provides for the transcoding of a 64B/66B block-code encoded input signal to a 512B/513B block-code encoded transmission signal. Since, in accordance with ITU-T G.709, 512B/513B codes also utilize the first byte after the leading flag bit to begin communicating the control information, a similar method can be used for the transcoding of 512B/513B codes, wherein the primary difference between 8B/10B codes and the 64B/66B codes is that the control code type is communicated by the 10B value of the 8B/10B code. In contrast, as shown with reference toFIG. 4 , the format of a 64B/66B control block is such that the first 8-bit field communicates the type of control block and the remaining 56-bit field contains a mix of data words and control words, depending upon the control block type. - In particular, the first row of the table in
FIG. 4 illustrates the byte settings when the input signal to be encoded contains only data blocks. In this case, following the setting of the controlblock indicator flag 400 to “0” to indicate that only data blocks will be mapped to the 512B/513B block-code, the encoder maps the data blocks (D1-D8) to the block-code. - The second row of the table in
FIG. 4 illustrates the byte settings when the incoming set of 64B/66B blocks contain a single control block and multiple data blocks. Accordingly, after setting the controlblock indicator flag 400 to “1” to indicate that the input signal contains one or more control blocks and the first bit of the first byte of thefirst word 405 to “0” to indicate that the input signal contains only a single control block, the control block location address of the single control block represented by a 3-bit address pointing to the original location of the single control information block within the incoming set of 64B/66B blocks is mapped into thelocation address 445 at bits 2-4 of thefirst byte 405 and the single control block is mapped into the word as a 4-bit control code 450 into bits 5-8 of thefirst byte 405. The 56 bits of control information from the first control block are then mapped into the last 56bits 460 of the first word in the 512B/513B code. Data blocks are then mapped into the following bytes to form the 512B/513B block-code encoded transmission signal. - The third row of the table in
FIG. 4 illustrates the bytes setting when the block contains multiple control blocks. Accordingly, after setting the controlblock indicator flag 400 to “1” to indicate that the input signal contains one or more control blocks and the first bit of the first byte of thefirst word 405 to “1” to indicate that the input signal contains more than one control block, the controlblock location map 455 comprising a 7-bit explicit map of the control block locations in words 1-7 of the 64B/66B input signal is mapped into bits 2-8 of the first byte of thefirst word 405 and the 56 bits of control information from the first control block are then mapped into bytes 2-8 of thefirst word 460 in the 512B/513B code. Following the mapping of the controlblock location map 455 and the 56 bits of control information, the following bytes of words 2-8 contain data blocks or control blocks. The D/C bytes either contain data blocks if the 64B/65B input signal had a data block at that location or control codes, as defined in the mapping algorithm for the transcoding of the 8B/10B block to a 64B/65B block. It follows that each word containing a control code also contains 56 bits of information from a control block in the last 56 bits of that word location and the 56-bit control block information field of the first control block is always placed into the first word of the 513B code. The 56-bit control block information fields of the remaining control blocks are placed in order in the subsequent word locations containing control code information. Consequently, applying the invention to transcoding 64B/66B input signals into 512B/513B transmission signals requires maintaining the 56-bit information field of each control block in addition to its control code and location. - An exemplary embodiment of the present invention for transcoding an 64B/65B block into a 512B/513B block is illustrated in
FIG. 5 . As shown inFIG. 5 , the input signal includes multiple control blocks comprising control information, wherein the control blocks are positioned atlocations Byte 1 of the second word contains the first control code (cc 1) and padding bits (P) indicating that the second control block (C2) to be encountered by the encoder is not the last control code to be mapped to the block. The encoder then maps 56 bits of the second control block to bytes 2-8 of the second word of the block. The third word of the block contains 64 bits of data mapped from the data block (D1) of the input signal. The first byte of the forth word in the block contains the second control code (cc 2) and the third control code (cc 3) because the third control block (C3) is the last control block to be encoded. Bytes 2-8 of the fourth word contain 56 bits of the third control block (C3). The following words in the 513B each contain 64 bits of data mapped from the remaining data block (D3-D5) of the input signal. As such, in the present invention, the 56-bit information fields of the 64B/66B codes are preserved in the mapping into the 512B/513B blocks. -
FIG. 6 is a swim-diagram of anexemplary process 600 for transcoding a block-code encoded transmission signal. For example, theprocess 600 can be used by a user and implemented by a block-code encoder 605, to transcode a block-code encoded input signal received at adecoder 602 and encoded using a first block-code to a block-code encoded transmission signal encoded using a second block-code that is more bandwidth efficient than the first block-code for transmission over a transmission channel 610.FIG. 6 illustrates lanes for steps that can be performed by adecoder 602, a block-code encoder 605 and a transmission channel 610. - To generate a bandwidth efficient block-code encoded transmission signal at a block-
code encoder 605, a block-code encoded input signal is first received at a decoder 602 (625). The block-code encoded input signal is encoded using a first block-code. After receiving the block-code encoded input signal, thedecoder 600 decodes the block-code encoded input signal to generate an input signal comprising multiple data words and multiple control words, multiple data words and a single control word or multiple data words only (630) or multiple data words only. Thedecoder 600 then provides the input signal to the block-code encoder 605. - The block-
code encoder 605 of the present invention receives the input signal from thedecoder 602, wherein the received input signal is to be mapped into a block-code encoded transmission signal encoded using a second block-code that is more bandwidth efficient than the first block-code (632). The block-code encoder 605 performs various steps to generate the block-code encoded transmission signal that is encoded using a second block-code that is more efficient that the first block-code. The block-code encoder 605 first determines if the input signal comprises multiple data words and multiple control words (635), multiple data words and a single control word (655) or multiple data words only (675). While the diagram illustrates the determination of the contents on the input signal performed in parallel, it is understood that the block-code encoder 605 may be programmed to makes the determination as to the contents of the input signal either sequentially or in parallel. - If the block-
code encoder 605 determines that the input signal comprises multiple data words and multiple control words (635), the block-code encoder 605 then generates a control word location map (640). The block-code encoder 605 then encodes each of the multiple control words to a control code (645) and maps the control word location map, the control codes and the multiple data words into the block-code encoded transmission signal (650) to indicate the location of each of the multiple control words in the input signal. - Alternatively, if the block-
code encoder 605 determines that the input signal comprises multiple data words and a single control word (655), the block-code encoder 605 then generates a control word location address indicating a location of the single control word in the input signal (660). The block-code encoder 605 then encodes the single control word to a control code (665) and maps the control word location address, the control code and the multiple data words into the block-code encoded transmission signal (670). - Additionally, if the block-
code encoder 605 determines that the input signal comprises multiple data words only (675), the block-code encoder 605 maps the multiple data words sequentially into the block-code encoded transmission signal (680). - After the block-
code encoder 605 has generated the block-code encoded transmission signal, the block-code encoder 605 provides the block-code encoded transmission signal to a transmission channel 610 in order to transmit the block-code encoded transmission signal over a transmission channel (685). -
FIG. 7 is a flow diagram of amethod 700 for block-code transcoding. At operation 705, the method includes receiving a block-code encoded input signal at a decoder, the block-code encoded input signal encoded using a first block-code, and decoding the block-code encoded input signal to generate an input signal comprising multiple data words and multiple control words, multiple data words and a single control word or multiple data words only. With reference toFIG. 1 , in the present invention, thedecoder 110 is configured for receiving the block-code encodedinput signal 105 and for decoding the block-code encoded input signal to generate aninput signal 115 comprising multiple data words and multiple control words, multiple data words and a single control word or multiple data words only. - At operation 710, the method includes receiving the input signal at a block-code encoder, the input signal to be mapped into a block-code encoded transmission signal encoded using a second block-code, wherein the second block-code is more bandwidth efficient than the first block-code. With reference to
FIG. 1 , in the present invention, the block-code encoder 120 is configured to receive theinput signal 115 to be mapped into a block-code encoded transmission signal encoded using a second block-code. - At
operation 715, the method includes determining if the input signal comprises multiple data words and multiple control words. Atoperation 720, the method includes determining if the input signal comprises multiple data words and a single control words. Atoperation 725, the method includes determining if the input signal comprises multiple data words only. Whileoperations operations FIG. 1 , in the present invention, the block-code encoder 120 is configured to determine if theinput signal 115 comprises multiple data words and multiple control words, multiple data words and a single control word or multiple data words only. - If at
operation 715 it is determined that the input signal comprises multiple data words and multiple control words, then atoperation 730, the method includes generating a control word location map. Additionally, atoperation 735, the method includes encoding each of the multiple control words to a control code. Following the generation of the control word location map atoperation 730 and the encoding of the multiple control codes atoperation 735, the method continues at operation 740, by mapping the control word location map, the multiple control codes and the multiple data words to the block-code encoded transmission signal to indicate the location of each of the multiple control words in the input signal. With reference toFIG. 1 , in the present invention, the block-code encoder 120 is configured to generate the control word location map, to determine the multiple control codes and to map the control word location map, the multiple control codes and the data words to the block-code encodedtransmission signal 125. - Alternatively, if at
operation 720, it is determined that the input signal comprises multiple data words and a single control word, then atoperation 745, the method includes generating a control word location address indicating a location of the single control word in the input signal. Additionally, atoperation 750, the method includes encoding the single control word to a control code. Following the generation of the control word location address atoperation 745 and the encoding of the single control code atoperation 750, the method continues atoperation 755, by mapping the control word location address, the single control code and the multiple data words to the block-code encoded transmission signal. With reference toFIG. 1 , in the present invention, the block-code encoder 120 is configured to generate the control word location address, to determine the single control code and to map the control word location address, the single control code and the data words to the block-code encodedtransmission signal 125. - Additionally, if at
operation 725, it is determined that the input signal comprises multiple data words only, then atoperation 760, the method includes mapping the multiple data words sequentially into the block-code encoded transmission signal. With reference toFIG. 1 , in the present invention, the block-code encoder 120 is configured to map the data words to the block-code encodedtransmission signal 125. - At
operation 765 the block-code encodedtransmission signal 125 is then transmitted over a transmission channel. With reference toFIG. 1 , in the present invention, thetransmission channel 150 is configured to transmit the block-code encodedtransmission signal 125 provided by the block-code encoder 120. -
FIG. 8 is a flow diagram 800 illustrating additional operations for block-code transcoding an input signal that comprises multiple control words and multiple data words, which has been as previously identified atoperation 715 ofFIG. 7 . In addition tooperation 730, wherein the method includes generating a control word location map andoperation 735, wherein the method includes encoding each of the multiple control words to a control code, atoperation 805, the method further includes setting a control block indicator flag for the block-code encoded transmission signal to a first logic level. Atoperation 810, the method further includes setting a multiple control word indicator for the block-code encoded transmission signal to the first logic level. In a particular embodiment, the control block indicator flag is set to a logic “1” to indicate that the input signal comprises at least one control word and the multiple control word indicator is set to a logic “1” to indicate that the input signal comprises more than one control word. Following the setting of the control block indicator flag and the multiple control word indicator, the method continues atoperation 815, by mapping the control block indicator flag, the multiple control word indicator, the control word location map, each of the multiple control codes and the multiple data words into the block-code encoded transmission signal. With reference toFIG. 1 , in the present invention, the block-code encoder 120 is configured to set the control block indicator flag, to set the multiple control word indicator and to map the control block indicator flag, the multiple control word indicator, the control word location map, each of the multiple control codes and the multiple data words into the block-code encodedtransmission signal 125. -
FIG. 9 is a flow diagram 900 illustrating additional operations for mapping the control block indicator flag, the multiple control word indicator, the control word location map, each of the multiple control codes and the multiple data words into the block-code encoded transmission signal, as inoperation 815 ofFIG. 8 . Atoperation 905, the method includes, for each block of the block-code encoded transmission signal, mapping the multiple control word indicator and the control word location map to a first byte of the block. Atoperation 910, the method further includes, mapping, beginning with a second byte of the block, the multiple data words into the block according to the order of the multiple data words in the input signal. During the mapping of the data words into the block,operation 915 is performed to determine if a control word has been reached. When a control word is encountered in the input signal, the method continues atoperation 920 by mapping the control code associated with the control word of the input signal to a first plurality of bits at a control word location of the block. The method continues atoperation 925 by mapping the control code associated with a next control word in the input signal to a second plurality of bits at the control word location if the next control words is the last control word in the input signal or by mapping padding bits to the second plurality of bits at the control word location if the next control word is not the last control word in the input signal.Operation 915 for mapping data words andoperations FIG. 1 , in the present invention, the block-code encoder 120 is configured to map the control block indicator flag, the multiple control word indicator, and data words into the block. The block-code encoder 120 is further configured to determine when a control word has been reached and to map the control codes into the block-code encodedtransmission signal 125. -
FIG. 10 is a flow diagram 1000 illustrating additional operations for block-code transcoding an input signal that comprises a single control word and multiple data words, which has been as previously identified byoperation 720 ofFIG. 7 . In addition tooperation 745, wherein the method includes generating a control word location address andoperation 735, wherein the method includes encoding the single control word to a control code, atoperation 1005, the method further includes setting a control block indicator flag for the block-code encoded transmission signal to a first logic level. Atoperation 1010, the method further comprises, setting a multiple control word indicator for the block-code encoded transmission signal to a second logic level opposite to the first logic level. In a particular embodiment, the control block indicator flag is set to a logic “1” to indicate that the input signal comprises at least one control word and the multiple control word indicator is set to a logic “0” to indicate that the input signal comprises more than one control word. Following the setting of the control block indicator flag and the multiple control word indicator, the method continues atoperation 1015, by mapping the control block indicator flag, the multiple control word indicator, the control word location address, the single control codes and the multiple data words into the block-code encoded transmission signal. With reference toFIG. 1 , in the present invention, the block-code encoder 120 is configured to set the control block indicator flag, to set the multiple control word indicator and to map the control block indicator flag, the multiple control word indicator, the control word location address, the single control code and the multiple data words into the block-code encodedtransmission signal 125. -
FIG. 11 is a flow diagram 1100 illustrating additional operations for mapping the control block indicator flag, the multiple control word indicator, the control word location address, the single control code and the multiple data words into the block-code encoded transmission signal, as inoperation 1015 ofFIG. 10 . Atoperation 1105, the method includes, for each block of the block-code encoded transmission signal, mapping the multiple control word indicator to a first bit of the first byte of the block. Atoperation 1110, the method further includes, mapping the control word location address to a first plurality of bits following the first bit of the first byte of the block. Atoperation 1115, the method further includes, mapping the control code for the single control word to a second plurality of bits following the first plurality of bits of the first byte of the block. Atoperation 1120, beginning with the second byte of the block, the method continues by mapping the multiple data words into the block according to the order of the multiple data words in the input signal. With reference toFIG. 1 , in the present invention, the block-code encoder 120 is configured to map the control block indicator flag, the multiple control word indicator, the single control code and the multiple data words into the block-code encodedtransmission signal 125. -
FIG. 12 is a flow diagram 1200 illustrating additional operations for block-code transcoding an input signal that multiple data words only, which has been as previously identified byoperation 725 ofFIG. 7 . In addition to mapping the multiple data words sequentially into the block-code encoded transmission signal, as inoperation 760 ofFIG. 7 , atoperation 1205, the method further includes, setting the control block indicator flag for the block-code encoded transmission signal to a second logic level opposite the first logic level. In a particular embodiment, the control block indicator flag is set to a logic “0” to indicate that there are no control words in the input signal to be mapped to the block. Atoperation 1210, the method continues by mapping the control block indicator flag into the block-code encoded transmission signal and mapping the multiple data words sequentially into the block-code encoded transmission signal. With reference toFIG. 1 , in the present invention, the block-code encoder 120 is configured to map the control block indicator flag and the multiple data words into the block-code encodedtransmission signal 125. - The present invention allows for both 64B/65B and 512B/513B encoding in order to meet standard OTN bandwidth efficiency requirements. In addition, an explicit map of the control word locations in the client input signal is utilized instead of a chain of address locations for improved robustness. The control information encoding of the present invention does not require so many bits such that a block must contain fewer input signal data characters. As such, each of the encoded blocks of the present invention encode the same number of data characters. In addition, all encoded information in the resulting block-code transmission signal remains byte-aligned to allow for simplified data path processing.
- In one embodiment, portions of the block-code encoder may be implemented in an integrated circuit as a single semiconductor die. Alternatively, the integrated circuit may include multiple semiconductor die that are electrically coupled together such as, for example, a multi-chip module that is packaged in a single integrated circuit package.
- In various embodiments, portions of the system of the present invention may be implemented in a Field Programmable Gate Array (FPGA) or Application Specific Integrated Circuit (ASIC). As would be appreciated by one skilled in the art, various functions of circuit elements may also be implemented as processing steps in a software program. Such software may be employed in, for example, a digital signal processor, a network processor, a microcontroller or general-purpose computer.
- Unless specifically stated otherwise as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as “receiving”, “determining”, “generating”, “limiting”, “sending”, “counting”, “classifying”, or the like, can refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission, or display devices.
- The present invention may be embodied on various computing platforms that perform actions responsive to software-based instructions. The following provides an antecedent basis for the information technology that may be utilized to enable the invention.
- The method of the present invention may be stored on a computer readable medium which may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any non-transitory, tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. However, as indicated above, due to circuit statutory subject matter restrictions, claims to this invention as a software product are those embodied in a non-transitory software medium such as a computer hard drive, flash-RAM, optical disk or the like.
- Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wire-line, optical fiber cable, radio frequency, etc., or any suitable combination of the foregoing. Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, C#, C++, Visual Basic or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
- Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
- The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- Further, for purposes of discussing and understanding the embodiments of the invention, it is to be understood that various terms are used by those knowledgeable in the art to describe techniques and approaches. Furthermore, in the description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one of ordinary skill in the art that the present invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention. These embodiments are described in sufficient detail to enable those of ordinary skill in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical, and other changes may be made without departing from the scope of the present invention.
Claims (22)
1. A method for block-code transcoding, the method comprising:
receiving a block-code encoded input signal at a decoder, the block-code encoded input signal encoded using a first block-code, and decoding the block-code encoded input signal to generate an input signal comprising multiple data words and multiple control words, multiple data words and a single control word or multiple data words only;
receiving the input signal at a block-code encoder, the input signal to be mapped into a block-code encoded transmission signal encoded using a second block-code, wherein the second block-code is more bandwidth efficient than the first block-code;
determining at the block-code encoder if the input signal comprises multiple data words and multiple control words and if the input signal comprises multiple data words and multiple control words, the method further comprising:
generating a control word location map;
encoding each of the multiple control words to generate multiple control codes;
mapping the control word location map, each of the multiple control codes and the multiple data words into the block-code encoded transmission signal to indicate a location of each of the multiple control words in the input signal;
determining at the block-code encoder if the input signal comprises multiple data words and a single control word and if the input signal comprises multiple data words and a single control word, the method further comprising:
generating a control word location address indicating a location of the single control word in the input signal;
encoding the single control word to a control code;
mapping the control word location address, the control code and the multiple data words into the block-code encoded transmission signal; and
determining at the block-code encoder if the input signal comprises multiple data words only and if the input signal comprises multiple data words only, the method further comprising mapping the multiple data words sequentially into the block-code encoded transmission signal.
2. The method of claim 1 , wherein if the input signal comprises multiple data words and multiple control words, the method further comprising mapping the multiple data words and each of the multiple control codes into the block-code encoded transmission signal at locations corresponding to the location of each of the multiple data words and each of the multiple control words in the input signal.
3. The method of claim 1 , wherein if the input signal comprises multiple data words and multiple control words, the method further comprising mapping each of the multiple control codes into a beginning of a block of the block-code encoded transmission signal and mapping the multiple data words into the block following the multiple control codes, according to the order of the multiple data words in the input signal.
4. The method of claim 1 , wherein if the input signal comprises multiple data words and multiple control words, the method further comprising:
setting a control block indicator flag bit for the block-code encoded transmission signal to a first logic level;
setting a multiple control word indicator for the block-code encoded transmission signal to the first logic level;
mapping the control block indicator flag bit into the block-code encoded transmission signal; and
mapping the multiple control word indicator into the block-code encoded transmission signal.
5. The method of claim 4 , wherein mapping the multiple control word indicator, the control word location map, each of the multiple control codes and the multiple data words into the block-code encoded transmission signal further comprises, for each block of the block-code encoded transmission signal, wherein each block comprises a plurality of bytes:
mapping the multiple control word indicator and the control word location map to a first byte of the block;
mapping, beginning with a second byte of the block, the multiple data words into the block according to the order of the multiple data words in the input signal until a control word is reached in the input signal, and when a control word is reached;
mapping the control code associated with the control word of the input signal to a first plurality of bits at a control word location of the block; and
mapping the control code associated with a next control word in the input signal to a second plurality of bits at the control word location if the next control word is the last control word in the input signal or mapping padding bits to the second plurality of bits of the byte if the next control word is not the last control word in the input signal.
6. The method of claim 1 , wherein the control word location map explicitly indicates whether each word in the input signal contains a data word or a control word, except for the last word of the input signal, and the mapping of each of the multiple control codes and the multiple data words into the block-code encoded transmission signal implicitly indicates whether the last word of the input signal contains a data word or a control word, wherein:
two control codes mapped to a byte of the block-code encoded transmission signal associated with the last control word location explicitly indicated by the control word location map implies that the last word of the input signal is a control word; and
two control codes mapped to a byte of the block-code encoded transmission signal associated with the next to last control word location explicitly indicated by the control word location map implies that the last word of the input signal is a data word.
7. The method of claim 1 , wherein if the input signal comprises multiple data words and a single control word, the method further comprising:
setting a control block indicator flag bit of the block-code encoded transmission signal to a first logic level;
setting the multiple control word indicator to a second logic level opposite to the first logic level;
mapping the control block indicator flag bit into the block-code encoded transmission signal; and
mapping the multiple control word indicator into the block-code encoded transmission signal.
8. The method of claim 7 , wherein mapping the multiple control word indicator, the control word location address, the control code for the single control word and the multiple data words into the block-code encoded transmission signal further comprises, for each block of the block-encoded transmission signal, wherein each block comprises a plurality of bytes:
mapping the multiple control word indicator to a first bit of a first byte of a block of the block-code encoded transmission signal;
mapping the control word location address to a first plurality of bits following the first bit of the first byte of the block of the block-code encoded transmission signal;
mapping the control code for the single control word to a second plurality of bits following the first plurality of bits of the first byte of the block of the block-code encoded transmission signal; and
mapping, beginning with a second byte of the block, the multiple data words into the block according to the order of the multiple data words in the input signal.
9. The method of claim 1 , wherein if the input signal comprises multiple data words only, the method further comprising:
setting the control block indicator flag for the block-code encoded transmission signal to a second logic level opposite the first logic level; and
mapping the control block indicator flag into the block-code encoded transmission signal.
10. The method of claim 1 , wherein the first block-code is an 8B/10B block-code and the second block-code is a 64B/65B block-code.
11. The method of claim 1 , wherein the first block-code is a 64B/66B block-code and the second block-code is a 512B/513B block-code and wherein the 64B/66B block-code comprises a 56-bit field comprising data words and one or more control codes and the method maintains the 56-bit field in the 512B/513B block-code.
12. The method of claim 1 , wherein the block-code encoded input signal is received over a first communication channel, the method further comprising transmitting the block-code encoded transmission signal from a transmitter over a second transmission channel that is different than the first communication channel.
13. The method of claim 12 , further comprising:
receiving the block-code encoded transmission signal transmitted over the second transmission channel at a block-code decoder and decoding the block-code encoded transmission signal to recover the input signal.
14. A method for block-code transcoding, the method, the method comprising:
receiving a block-code encoded input signal at a decoder, the block-code encoded input signal encoded using a first block-code, and decoding the block-code encoded input signal to generate an input signal comprising multiple data words and multiple control words, multiple data words and a single control word or multiple data words only;
receiving the input signal at a block-code encoder, the input signal to be mapped into a block-code encoded transmission signal encoded using a second block-code, wherein the second block-code is more bandwidth efficient than the first block-code;
determining at the block-code encoder if the input signal comprises multiple data words and multiple control words and if the input signal comprises multiple data words and multiple control words, the method further comprising:
setting a control block indicator flag bit for the block-code encoded transmission signal to a first logic level;
setting a multiple control word indicator for the block-code encoded transmission signal to the first logic level;
generating a control word location map;
encoding each of the multiple control words to generate multiple control codes;
mapping the control block indicator flag bit, the multiple control word indicator, the control word location map and each of the multiple control codes and the multiple data words into the block-code encoded transmission signal to indicate a location of each of the multiple words in the input signal;
determining at the block-code encoder if the input signal comprises multiple data words and a single control word and if the input signal comprises multiple data words and a single control word, the method further comprising:
setting a control block indicator flag bit of the block-code encoded transmission signal to a first logic level;
setting the multiple control word indicator to a second logic level opposite to the first logic level;
generating a control word location address indicating a location of the single control word in the input signal;
encoding the single control word to a control code;
mapping the control block indicator flag bit, the multiple control word indicator, the control word location address and the control code and the multiple data words into the second block-code encoded transmission signal;
determining at the block-code encoder if the input signal comprises multiple data words only and if the input signal comprises multiple data words only, the method further comprising:
setting the control block indicator flag for the block-code encoded transmission signal to a second logic level opposite the first logic level;
mapping the control block indicator flag and the multiple data words sequentially into the block-code encoded transmission signal; and
transmitting the block-code encoded transmission signal from a transmitter.
15. A system for block-code transcoding, the system comprising:
a block-code encoder configured for:
receiving an input signal comprising multiple data words and multiple control words, multiple data words and a single control word or multiple data words only;
determining if the input signal comprises multiple data words and multiple control words and if the input signal comprises multiple data words and multiple control words, the block-code encoder further configured for:
generating a control word location map;
encoding each of the multiple control words to generate multiple control codes;
mapping the control word location map, each of the multiple control codes and the multiple data words into the block-code encoded transmission signal to indicate a location of each of the multiple control words in the input signal;
determining if the input signal comprises multiple data words and a single control word and if the input signal comprises multiple data words and a single control word, the block-code encoder further configured for:
generating a control word location address indicating a location of the single control word in the input signal;
encoding the single control word to a control code; and
mapping the control word location address, the control code and the multiple data words into the block-code encoded transmission signal;
determining if the input signal comprises multiple data words only and if the input signal comprises multiple data words only, the block-code encoder further configured for:
mapping the multiple data words sequentially into the block-code encoded transmission signal.
16. The system of claim 15 , further comprising:
a decoder configured for receiving a block-code encoded input signal encoded using a first block-code; and
the decoder configured for decoding the block-code encoded input signal to generate the input signal comprising multiple data words and multiple control words, multiple data words and a single control word or multiple data words only;
17. The system of claim 15 , further comprising a transmitter configured for transmitting the block-code encoded transmission signal.
18. The system of claim 15 , wherein if the input signal comprises multiple data words and multiple control words, the block-code encoder further configured for mapping the multiple data words and each of the multiple control codes into the block-code encoded transmission signal at locations corresponding to the location of each of the multiple data words and each of the multiple control words in the input signal.
19. The system of claim 15 , wherein if the input signal comprises multiple data words and multiple control words, the block-code encoder further configured for mapping each of the multiple control codes into a beginning of a block of the block-code encoded transmission signal and mapping the multiple data words into the block following the multiple control codes, according to the order of the multiple data words in the input signal.
20. The system of claim 15 , wherein if the input signal comprises multiple data words and multiple control words, the block-code encoder further configured for, for each block of the block-code encoded transmission signal:
setting a control block indicator flag bit for the block of the block-code encoded transmission signal to a first logic level;
setting a multiple control word indicator for the block of the block-code encoded transmission signal to the first logic level;
mapping the multiple control word indicator and the control word location map to a first byte of the block of the block-code encoded transmission signal;
mapping, beginning with a second byte of the block, the multiple data words into the block according to the order of the multiple data words in the input signal until a control word is reached in the input signal, and when a control word is reached;
mapping the control code associated with the control word of the input signal to a first plurality of bits at a control word location of the block; and
mapping the control code associated with a next control word in the input signal to a second plurality of bits at the control word location if the next control word is the last control word in the input signal or mapping padding bits to the second plurality of bits at the control word location if the next control word is not the last control word in the input signal.
21. The system of claim 15 , wherein the control word location map explicitly indicates whether each word in the input signal contains a data word or a control word, except for the last word of the input signal, and the mapping of each of the multiple control codes and the multiple data words into the block-code encoded transmission signal implicitly indicates whether the last word of the input signal contains a data word or a control word, wherein:
two control codes mapped to a byte of the block-code encoded transmission signal associated with the last control word location explicitly indicated by the control word location map implies that the last word of the input signal is a control word; and
two control codes mapped to a byte of the block-code encoded transmission signal associated with the next to last control word location explicitly indicated by the control word location map implies that the last word of the input signal is a data word.
22. The system of claim 15 , wherein if the input signal comprises multiple data words and a single control word, the block-code encoder further configured for:
setting a control block indicator flag bit of the block-code encoded transmission signal to a first logic level and mapping the control block indicator flag bit into the block-code encoded transmission signal;
setting the multiple control word indicator to a second logic level opposite to the first logic level and mapping the multiple control word indicator to a first bit of a first byte of a block of the block-code encoded transmission signal;
mapping the control word location address to a first plurality of bits following the first bit of the first byte of the block of the block-code encoded transmission signal; and
mapping the control code for the single control word to a second plurality of bits following the first plurality of bits of the first byte of the block of the block-code encoded transmission signal.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/042,721 US20190068325A1 (en) | 2017-08-23 | 2018-07-23 | System and method for block-coding transcoding |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762549283P | 2017-08-23 | 2017-08-23 | |
US16/042,721 US20190068325A1 (en) | 2017-08-23 | 2018-07-23 | System and method for block-coding transcoding |
Publications (1)
Publication Number | Publication Date |
---|---|
US20190068325A1 true US20190068325A1 (en) | 2019-02-28 |
Family
ID=65435654
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/042,721 Abandoned US20190068325A1 (en) | 2017-08-23 | 2018-07-23 | System and method for block-coding transcoding |
US16/105,917 Active US10355823B2 (en) | 2017-08-23 | 2018-08-20 | System and method for block-coding transcoding |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/105,917 Active US10355823B2 (en) | 2017-08-23 | 2018-08-20 | System and method for block-coding transcoding |
Country Status (1)
Country | Link |
---|---|
US (2) | US20190068325A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11451325B2 (en) * | 2018-09-07 | 2022-09-20 | Huawei Technologies Co., Ltd. | Block generation method and apparatus, and block receiving method and apparatus |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190068325A1 (en) * | 2017-08-23 | 2019-02-28 | Microsemi Storage Solutions, Inc. | System and method for block-coding transcoding |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173208B1 (en) * | 1997-05-29 | 2001-01-09 | Korea Institute Of Science And Technology | Method for generating control codes for use in a process control system |
US6718491B1 (en) * | 2000-03-06 | 2004-04-06 | Agilent Technologies, Inc. | Coding method and coder for coding packetized serial data with low overhead |
US7508800B1 (en) * | 2002-05-22 | 2009-03-24 | Cisco Technology, Inc. | Block code mapping system and method |
US8199772B2 (en) * | 2008-06-25 | 2012-06-12 | Ciena Corporation | Systems and methods for synchronous generic framing protocol mapping |
US8898550B2 (en) * | 2012-06-26 | 2014-11-25 | International Business Machines Corporation | Encoding of data for transmission |
US9054894B2 (en) * | 2007-07-05 | 2015-06-09 | Nippon Telegraph And Telephone Corporation | Signal block sequence processing method and signal block sequence processing apparatus |
US9166618B2 (en) * | 2013-03-15 | 2015-10-20 | International Business Machines Corporation | Data encoding and decoding |
US9451057B1 (en) * | 2002-07-10 | 2016-09-20 | Marvell International Ltd. | Communication system and encoding method having low overhead |
US10355823B2 (en) * | 2017-08-23 | 2019-07-16 | Microsemi Storage Solutions, Inc. | System and method for block-coding transcoding |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020159484A1 (en) | 2000-12-05 | 2002-10-31 | Murat Azizoglu | Coding scheme using a control code map for signal transmission in optical communications networks |
US6952405B2 (en) | 2000-12-05 | 2005-10-04 | Sycamore Networks, Inc. | Coding scheme using a transition indicator for signal transmission in optical communications networks |
US7127653B1 (en) | 2001-07-05 | 2006-10-24 | Pmc-Sierra, Inc. | Apparatus and method for efficient data transport using transparent framing procedure |
-
2018
- 2018-07-23 US US16/042,721 patent/US20190068325A1/en not_active Abandoned
- 2018-08-20 US US16/105,917 patent/US10355823B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173208B1 (en) * | 1997-05-29 | 2001-01-09 | Korea Institute Of Science And Technology | Method for generating control codes for use in a process control system |
US6718491B1 (en) * | 2000-03-06 | 2004-04-06 | Agilent Technologies, Inc. | Coding method and coder for coding packetized serial data with low overhead |
US7508800B1 (en) * | 2002-05-22 | 2009-03-24 | Cisco Technology, Inc. | Block code mapping system and method |
US9451057B1 (en) * | 2002-07-10 | 2016-09-20 | Marvell International Ltd. | Communication system and encoding method having low overhead |
US9054894B2 (en) * | 2007-07-05 | 2015-06-09 | Nippon Telegraph And Telephone Corporation | Signal block sequence processing method and signal block sequence processing apparatus |
US8199772B2 (en) * | 2008-06-25 | 2012-06-12 | Ciena Corporation | Systems and methods for synchronous generic framing protocol mapping |
US8898550B2 (en) * | 2012-06-26 | 2014-11-25 | International Business Machines Corporation | Encoding of data for transmission |
US9166618B2 (en) * | 2013-03-15 | 2015-10-20 | International Business Machines Corporation | Data encoding and decoding |
US10355823B2 (en) * | 2017-08-23 | 2019-07-16 | Microsemi Storage Solutions, Inc. | System and method for block-coding transcoding |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11451325B2 (en) * | 2018-09-07 | 2022-09-20 | Huawei Technologies Co., Ltd. | Block generation method and apparatus, and block receiving method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
US10355823B2 (en) | 2019-07-16 |
US20190068323A1 (en) | 2019-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10587286B1 (en) | Methods and devices for handling equiprobable symbols in entropy coding | |
US8630309B2 (en) | Frame generation apparatus and method of protecting protocol header information over wideband high frequency wireless system | |
CN1656693B (en) | Method for iterative hard-input forward error correction | |
EP3041157B1 (en) | Physical layer coding/decoding method and apparatus thereof | |
WO2018064587A1 (en) | Transport block segmentation for multi-level codes | |
CN108989708A (en) | The low speed signal photoelectric conversion module of all-purpose belt multimedia interface | |
US8898550B2 (en) | Encoding of data for transmission | |
US10015285B2 (en) | System and method for multi-stream compression and decompression | |
US10355823B2 (en) | System and method for block-coding transcoding | |
MX2014013560A (en) | Apparatus and method of transmitting and receiving packet in a broadcasting and communication system. | |
US20230224194A1 (en) | Data encoding method, data decoding method, and communication apparatus | |
EP3029842B1 (en) | Memory-efficient methods of transporting error correction codes in a symbol encoded transmission stream | |
US11695508B2 (en) | Data processing method and related apparatus | |
WO2019223673A1 (en) | Encoding method and related device | |
CN101783772B (en) | Method, device and system for encapsulating and de-encapsulating messages | |
US20050047433A1 (en) | Physical coding sublayer transcoding | |
WO2016179743A1 (en) | Encoding apparatus and method | |
US9294418B2 (en) | 64B/66B codec for ethernet applications | |
US10291785B2 (en) | Data unit retransmission | |
CN113541871A (en) | Method for generating code words and coder-decoder | |
CN110034847B (en) | Cascade coding method and device | |
US20060044162A1 (en) | Fibre optic communications | |
CN110995281A (en) | Variable code length RS coding method suitable for logging cable transmission | |
KR101865560B1 (en) | Optical transceiver and data mapping method using thereof | |
CN113438054B (en) | Data transmission method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSEMI STORAGE SOLUTIONS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GORSHE, STEVEN SCOTT;REEL/FRAME:046616/0734 Effective date: 20170731 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |