<aside> 💡 HDMI: High-Definition Multimedia Interface

</aside>

HDMI video interface uses Transition-minimized differential signaling (TMDS) standard for video transmission. It is a clever way of sending video data by a serial connection with reduced transmission errors (such as electromagnetic interference) and better clock recovery over large distances. In a way, TMDS is a method of encoding the signal to protect it from degrading as it travels down the length of the transmission cable.

Aim: serial transmission of high speed digital signals with minimal errors.

source

TMDS achieves Transition-minimization and DC-balancing

Transitions of a digital signal from 1 (on) to 0 (off) are a sharp drop-off in voltage levels. The same is with the transitions from 0's to 1's. As the signal travels, this drop-off can wear away, degrading the signal. More the number of such transitions, more the chance of transmission errors. Reducing the transitions reduces the likelihood of data loss by transition being slow from a 'ramp-up' or 'ramp-down' from 0 to 1 or from 1 to 0 respectively.

Transition-minimization is realized by the 8b/10b encoding algorithm. In HDMI each pixel is transmitted as a 8-bits of information. When transmitting data, the TMDS adds two control bits to the byte making it 10-bit information. These control bits inform the Rx the type of manipulation were done for it to successfully decode the pixel data.

Transition minimization is done by comparing the bits in the pixel byte to the 1st bit and determining if a logical XOR or XNOR operation would result in a minimal number of transitions.

TMDS Encoding algorithm

Flow chart explaining the TMDS encoding algorithm

Flow chart explaining the TMDS encoding algorithm

Find the detailed TMDS technology description here

In summary, the first stage is "transition minimizing" and a control bit C0 is set (1) if XOR operation is carried and is cleared (0) is XNOR operation is done. The second stage of the encoder performs DC balance on the transmission stream by selectively inverting the 8 bits of the 9-bit code word produced in the first stage based on a running disparity between the number of ones and zeros in the transmitted stream vs the current codeword. If too many ones have been transmitted and the input contains more ones than zeros, the code word is inverted. In short, the algorithm inverts the current bit-stream to balance it with the previous byte. A 10th bit (C1) is added to the codeword to indicate whether an inversion has been made.

Serializer

The TMDS 10-bit encoded signal is to be serialized for channel transmission using LVDS. A serializer module, operated in a fast-clock domain (10*25MHz = 250 MHz), performs high-speed parallel to serial conversion. The serializer must be able to send 10 bits of TMDS encoded data (of each R, G, B) for every time the TMDS encoder module completes a set of encoded data. In other words, it must be able to serialize ten bits per TMDS-channel for every clock cycle of TMDS encoder. Since our clock is 25 MHz, our serializer is run at 250 MHz for sending the serialized data in congruence with the 25 MHz pixel clock which too, is sent to the receiver.

Differential signaling

Differential signaling is the physical part of the TMDS technology. Differential signaling is a method of transmitting information electrically with two complementary signals sent on two paired wires, called a differential pair. ****External interference tends to affect both wires equally, and a signal is therefore sent as the inverted of the other. The technique improves the resistance to electromagnetic noise compared with the use of single wire and ground as an unpaired reference. LVDS or Low-Voltage Differential Signaling is the physical layer specification and signaling method, the HDMI standard is built upon.

FPGA Implementation of HDMI Transmitter