This invention generally relates to electronic display device connectivity.
The high-definition multimedia interface (HDMI™) is a licensable compact audio/video connector interface for transmitting uncompressed digital streams. The HDMI connects digital audio/video (or multimedia) sources (e.g., a set-top box, a DVD player, a personal computer, a video game console, etc.) to a compatible digital audio device and/or video monitor such as a digital television. In contrast to consumer analog standards the HDMI enforces digital rights management (DRM) on transmitted media. The HDMI is fully described in the HDMI™ Specification version 1.3 published on Jun. 22, 2006, incorporated herein by reference in its entirety merely for the useful understanding of the background of the invention.
A block diagram of a HDMI link 100 is shown in
TDMS characters are transported at three different time periods: a video data period, a data island period, and a control period. During the video data period, the pixels of an active video line are transmitted. During the data island period, which occurs during the horizontal and vertical blanking intervals, audio and auxiliary data are transmitted within a series of packets. Control characters are transported during the control period, which occurs between video and data island periods. On the TDMS channel 130-0, control characters are used to encode VSYNC and HSYNC signals, while on channels 130-1 and 130-2, control characters encode preambles for video and packet data periods and indicate encryption status for high-bandwidth digital content protection (HDCP).
Obviously, an error in the control characters can result in fatal consequences. Specifically, an error in a control character on channel 130-0 disturbs the video timing, possibly resulting in a lost video line or an entirely lost video frame. An error on channels 130-1 or 130-2 can indicate a wrong encryption status, resulting in loss of the HDCP link, requiring HDCP re-authentication. In this case, many video frames are lost. If a video frame is lost due to erroneous VSYNC, the HDCP link will also be lost.
The HDMI link is assumed to be a reliable transport medium, and thus no error correction solutions exist for detecting and correcting erroneous control characters. However, in fact, control characters include error bits which are transmitted from the multimedia source 110 to sink 120. Therefore, solutions for correcting such bits are required. In addition, having solutions for detecting and correcting errors would enable the relaxing of the HDMI specification, thereby providing for the design of low cost HDMI cables and connectors.
Certain embodiments of the invention include an apparatus for detecting and correcting errors in control characters of a multimedia interface. In one embodiment, an apparatus comprises a hamming distance filter for detecting and correcting bits errors in a first subset of bits of an input control character including M bits, and a glitch filter for detecting and correcting a second subset of bits being a complementary subset of bits of the control character.
Certain embodiments of the invention also include a method for detecting and correcting errors in control characters of a multimedia interface. The method comprises detecting and correcting bits errors in a first subset of bits of an input control character including M bits, and detecting and correcting a second subset of bits being a complementary subset of bits of the input control character.
Certain embodiments of the invention further include a computer readable medium having stored thereon a computer executable code causing a computer to perform the process of detecting and correcting errors in control characters of a multimedia interface. The process comprises detecting and correcting bits errors in a first subset of bits of an input control character including M bits, and detecting and correcting a second subset of bits being a complementary subset of bits of the input control character.
The subject matter that is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features and advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings.
It is important to note that the embodiments disclosed by the invention are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed inventions. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views.
In accordance with one embodiment of the principles of the present invention, errors in control characters are detected and corrected by analyzing the patterns of the characters. The HDMI standard defines only 4 TDMS character codes, each having 10 binary bits. The 9 least significant bits (LSBs) of the characters are based on 2 different patterns: 101010100 and 010101011. In addition, a control character cannot change its value every clock cycle. The TDMS control characters are provided in Table 1.
The operation of the apparatus 200 will be described with a reference to a specific embodiment where the control characters are the TDMS characters shown in Table 1. However, one of ordinary skill in the art can easily adapt the teachings described herein to detect and correct characters having different patterns from those shown in Table 1.
The apparatus 220 distinguishes one control character from the other. With this aim, the hamming distance filter 210 receives 9 LSBs of an input control character. The hamming distance between two characters is defined as the number of different bits in each character. As each bit in the 9-LSB-pattern of two characters is different, the hamming distance between two characters is 9. If a received character does not match the characters, the received character is replaced by one of the two patterns having the smallest hamming distance to an input character. If the number of erroneous bits is 4 or less, the replacement pattern will be correct. Therefore, the number of bit errors that can be corrected and detected is 4. The hamming distance is defined as the number of bit errors that transformed one character to another. The hamming distance filter 210 matches the input 9 LSBs to two possible 9-LSB-patterns, and determines the minimum hamming distance of each of these patterns. The input 9 LSBs are corrected to match the pattern from which the distance is minimal. For example, if the input 9 LSBs are 101001011, the hamming distance from the 9-LSB-pattern of the first and third character, i.e., 101010100 is 5 (the different bits are underlined and the hamming distance from the 9-LSB-pattern of the second and fourth character, i.e., 010101011 is 4. Therefore, the corrected output 9 LSBs will be 010101011.
Errors in the MSB are detected and corrected using the glitch filter 220 and the character alignment unit 230. Specifically, the glitch filter 220 is capable of detecting spurious MSB transition during ‘n’ clock cycles (where ‘n’ is an integer equal to or greater than 1). As illustrated in
The “Hold” results means that the new value q(t) will be set to the previous value q(t-1).
The character alignment unit 230 detects errors when the combination of MSB and LSB results in a glitch of the entire control character. Such an error occurs when the MSB does not switch synchronously with the rest of the bits and refers to the misalignment of control characters.
At S610 an input control character including M bits is split into a second subset of L bits and a first subset of U bits, where 1≦U≦L≦M, where the subset of bits for which a hamming distance filter is applicable does need not be contiguous. For example, hamming distance filter 210 can be applied for bit 0, 3, 4, 5, 7, and 9, if the character is defined in such way. In one embodiment, the first and second subsets of bits respectively include LSBs and MSBs of a control character. At S620, errors in the first set of LSBs are detected and corrected using a hamming algorithm, where the U LSBs have a minimum hamming distance greater than 1. In accordance with one embodiment, the input character is a TDMS control character, M equals 10, L equals 1, and U equals 9. As described in detail above, in such embodiment 4 error bits can be corrected using the hamming algorithm.
At S630, the second subset of L MSBs are processed to detect and correct errors results from spurious bit transitions. This is performed by checking if at least one bit of the L MSBs transits to an invalid value during n consecutive clock cycles. At S640, misaligned characters are detected and corrected by checking if the value of the corrected MSBs transit before or after the transition of the corrected LSBs. A transition can be one pattern of the character to another pattern, where both patterns are known a priori. At S650, a correct control character is output.
It should be appreciated by one of ordinary skill in the art that the invention described herein can significantly reduce the error rate of TDMS control characters. In addition, not all of the correction stages are required in order to improve the error rate. For example, in some cases the hamming distance can correct the error. Simulation results showing the percentage of errors corrected during different stages is provided in Table 4.
The principles of the invention may be implemented in hardware, software, firmware or any combinations thereof. The software may be implemented as an application program tangibly embodied on a program storage unit or computer readable medium. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture, for example a computer platform having hardware such as one or more central processing units (“CPUs”), a random access memory (“RAM”), and input/output (“I/O”) interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown.
It is to be further understood that, because some of the constituent system components and methods depicted in the accompanying drawings are preferably implemented in software, the actual connections between the system components or the process function blocks may differ depending upon the manner in which the present invention is programmed. Given the teachings herein, one of ordinary skill in the pertinent art will be able to contemplate these and similar implementations or configurations of the present invention. All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventors to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.
All statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. It is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure. Other hardware, conventional and/or custom, may also be included.