# Patent

## Title
Method and apparatus for transporting an 8B/10B coded video stream across a 64B/66B coded link

## Abstract

A video transport system is provided for transporting as 8B/10B coded video stream across a 64B/66B coded link, wherein forward error correction is provided without the overhead of the prior art. The system also provides a system with the ability to recover 64B/66B Encoded blocks that have corrupt Sync bits.

## Background
RELATED APPLICATIONS
This application claims priority under 35 U.S.C. 120 as a divisional application of U.S. application Ser. No. 13/136,251, which has a filing date of 27 Jul. 2011, and which claims benefit of U.S. Provisional Application No. 61/400,444, which has a filing date of 28 Jul. 2010.


BACKGROUND
A video system can tolerate a relatively high pixel error rate without noticeably degrading the displayed video image. Pixel errors will manifest as sparkles that will be mostly un-noticeable in the displayed image.
However, video control errors may corrupt the entire displayed frame and may also corrupt the output audio. Thus, even a relatively small number of errors can result in noticeable image flickering and audible bursts of noise. Consequently, video control symbol errors must be prevented while video data symbol errors may be tolerated.
Most forward error correction schemes focus on protecting the entire data stream. This approach adds between 7% and 10% overhead to the data stream and requires logic that is large and complex.
In 64B/66B, prior art forward error control is inherently incapable of protecting sync bits, i.e. the prior art is unable to correct sync bits. While the prior art may be able to detect that a sync bit error occurred, it will not be able to determine how to correct the error. This failure will cause the entire 66B coded word to be lost or corrupted.
The disclosed invention provides effective protection for video control without introducing either the overhead or complexity associated with traditional forward error correction schemes.
BRIEF SUMMARY OF INVENTION
As shown and described below, the present invention increases the efficiency of the link by providing forward error correction without introducing the overhead or complexity of prior art forward error correction schemes such as Reed-Solomon.
The present invention also provides, for the first time known to applicant, a system having the ability to recover 64B/66B Encoded ‘Blocks that have corrupt “Sync” bits.
Prior art for video transport over 64B/66B coded links, such as RTP (Real Time Transport Protocol) involve packing the video information into RTP Data packets and RTCP Control Packets and then transporting those packets across a network using the Internet Protocols defined by the Internet Engineering Task Force (IETF). These RTP and TRCP packets must be unpacked at the receiver in order to recreate the original video stream. RTP does not teach how to transport 8B/10B Video Data at the byte/symbol level without the complexity and overhead of segmenting the Video stream in to Packets, inserting packet headers for RTP and any other Routing and Link Layer protocol used for physical packet transport, and then stripping those packet headers from the RTP packets at the receiver so that the original Video Stream can be reassembled from the transmitted packet segments.
Prior art for transporting standard Ethernet 8B/10B symbols over a 64B/66B Link (such as IEEE Standard 802.3-2005 Section 49) does not teach how to transport 8B/10B video symbols that do not comply with the Ethernet Standard (such as 8B/10B symbols disclosed in the “High Definition Multimedia Interface Specification” Version 1.3a, Section 5). This prior art also does not teach how to protect the 8B/10B coded Video Control information without adding the 7% to 10% overhead associated with the traditional FEC scheme.
The present invention provides, for the first time known to applicant, a system having the ability to transport 8B/10B coded video streams over a 64B/66B link such that the 8B/10B Video Streams do not have to be packed or recoded using a Transport Layer Protocol (such as RTP) and such that non-standard 8B/10B Video Symbols may be directly transported on the 64B/66B link while retaining the ability to detect and correct all Video Control symbol errors.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 HDMI Video Guard Band Coding
FIG. 2 HDMI Data Island Guard Band Coding
FIG. 3 HDMI Control Period Coding
FIG. 4 HDMI TMDS Error Reduction Coding (TERC4)
FIG. 5 Display Port Control Codes
FIG. 6 4B/8B information Code
FIG. 7 Stream Data Block (64B/66B Data Block)
FIG. 8 Stream Control Block (64B/66B Data Block)
FIG. 9 Split Aligned Block (64B/66B Data Block)
FIG. 10 Split Unaligned Block (64B/66B Data Block)
FIG. 11 Idle Data Block (64B/66B Data Block)
FIG. 12 Mixed 4-Byte Block (64B/66B Control Block)
FIG. 13 Mixed 3-Byte Block (64B/66B Control Block)
FIG. 14 Mixed 2-Byte Block (64B/66B Control Block)
FIG. 15 Mixed 1-Byte Block (64B/66B Control Block)
FIG. 16 Set Default data Block (64B/66B Control Block)
FIG. 17 A schematic representation of the environment of the invention



DETAILED DESCRIPTION OF THE DRAWINGS
The invention protects the 8B/10B control symbols in a video stream as follows:
1. A Video Source sends an 8B/10B input video stream to a Transmitter according to this invention.
2. The Transmitter decodes the 8B/10B input video stream such that each 10B symbol is represented as a byte with an associated flag that indicates whether or not the decoded 10B symbol was a Control Byte or Data Byte.
3. The Transmitter translates the Control Bytes into unique mapped Control Bytes that have a Hamming distance of 3 or more. This allows for single bit error correction on each Mapped Control Byte. This is possible because the number of unique Control Bytes in a video stream is small. See FIGS. 1-5 for examples of how Video Control Symbols can be translated into protected Mapped Control Bytes.
4. The Transmitter packs the decoded Data Bytes and the Mapped Control Bytes (in the order received) into an appropriate 64B/66B Data Block “Type”. The transmitter selects the Data Block “Type” based on the mix of Data Bytes and mapped Control Bytes that need to be transmitted. See FIGS. 7-10 for some examples of pre-defined Data Block “Types”.
5. The Transmitter uses a 64B/66B Control Block (see FIG. 16; “Set Default Data Block”) to inform the Receiver which Data Block “Type” to expect. The Transmitter only needs to select a new Data Block Type when the mix of Data Bytes and Mapped Control Bytes changes.
6. The Transmitter sends “Idle Data” Data Blocks (see FIG. 11) to the Receiver when the Transmitter has no new Video Data from the Video Source. The Receiver does not decode or forward Idle Data to the Video Sink.
7. The Transmitter packs Data Bytes and Mapped Control Bytes into an appropriate 64B/66B Control Block (instead of a Data Block) when there are less than 8 Video Bytes that need to be transmitted or when the mix of Data Bytes and Mapped Control Bytes does not match any of the pre-defined Data Block “Types”.
8. In order to achieve maximum 64B/66B efficiency, the Transmitter uses a 64B/66B Data Block whenever possible and only uses a 64B/66B Control Block when necessary.
9. The Transmitter places 4B/8B Information Bytes (see FIG. 6) in Control Blocks to identify the Control Block, map the location of Data/Control Bytes, select the next Data Block “Type” and encode redundant information (used to identify Control Blocks when the Sync Bits are corrupt).
10. The Transmitter packs redundant information in the 64B/66B Control Blocks to make it possible for the Receiver to reliably distinguish between 64B/66B Control and Data Blocks when the 64B/66B Sync bits are corrupted. In the event of Sync Bit corruption (Sync=0b00 or 0b11), the Receiver checks the block format and verifies the redundant information. If the block format and redundant information are consistent with a valid Control Block, then the Receiver interprets the 64B/66B Block with corrupt Sync bits as a Control Block. Otherwise, the Receiver interprets the 64B/66B Block as a Data Block. See FIGS. 12-16 for examples of Control Blocks with redundant information.
11. The Transmitter transmits the 64B/66B blocks to the Receiver
12. The Receiver receives the 64B/66B stream and then decodes the Control Blocks and Data Blocks disclosed above to correct any errors in the Mapped Control Bytes and then recreates the original 8B/10B stream with both the same order and number of symbols that were presented to the Transmitter.
The receiver then sends the reconstructed 8B/10B stream to the Video Sink.
As used herein:
HDMI is an acronym for “High Definition Multi-Media Interface”
TMDS is an acronym for “Transition Minimized Differential Signaling”
TERC4 is an acronym for “TMDS Error Reduction Coding 4 bit”
FIG. 17 is a schematic representation of the environment of the invention, illustrating the relationship of a video source, transmitter, receiver and video sink relative to each other.
The foregoing description of the invention has been presented for purposes of illustration and description and is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teaching. The embodiments were chosen and described to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best use the invention in various embodiments and with various modifications suited to the particular use contemplated. The scope of the invention is to be defined by the following claims.

## Claims

1. A method for transporting an 8B/10B coded video stream from a transmitter across a 64B/66B coded link to a receiver, the method comprising:
decoding the 8B/10B coded video stream and thereby obtaining a stream of control bytes and data bytes corresponding to the 8B/10B coded video stream;
when a mix of control and data bytes in the stream corresponds to a predefined data block type from among a number of predefined data block types corresponding to different mixes of control and data bytes, using 64B/66B data blocks to forward the stream towards the receiver, and when the mix of control and data bytes in the stream does not correspond to one of the predefined data block types, using 64B/66B control blocks to forward the stream towards the receiver; and
for each 64B/66B control block sent from the transmitter to the receiver, using one or more 4B/8B information bytes in the 64B/66B control block to:
to map the location of data bytes and control bytes in the 64B/66B control block,
indicate the next predefined data block type to be sent from the transmitter to the receiver, and
pack redundant information in the 64B/66B control block, to enable the receiver to recognize the 64B/66B control block as being a 64B/66B control block even when synchronization bits in the 64B/66B control block are received in error at the receiver.

2. The method of claim 1, wherein the 4B/8B information bytes are coded with an arbitrary code that has a Hamming distance of 3 or more to allow error detection and correction in the 4B/8B information bytes.