基于FPGA的TMDS编码
0赞
发表于 4/9/2024 3:47:11 PM
阅读(716)
在我们之前的学习中,了解到HDMI是一种全数字化视频和声音发送接口,可以发送音频以及视频信号。HDMI向下兼容DVI,DVI只能传输视频信号。HDMI和DVI接口协议在物理层均使用TMDS标准来传输音频或视频信号,接下来就着重了解一下TMDS编码。
TMDS(最小化传输差分信号)中,有四个通道,其中包含了三个数据通道和一个时钟通道。其中数据通道用来传输颜色、音频、控制等信号。HDMI默认使用RGB(RGB888)三个数据通道,当然也可以是亮度和色度信息(YCrCb,4:4:4或者4:2:2)。
上图为HDMI的链接框架;
通道0传输的数据为:B分量的视频数据、行场同步信号、音频信号。
通道0传输的数据为:G分量的视频数据、控制信号、音频信号。通道0传输的数据为:R分量的视频数据、控制信号、音频信号。不同的数据在TMDS数据通道中在三种不同的周期中发送。
在TMDS传输标准中,不论是视频信号、控制信号还是辅助信号,都是以10bit的数据传输,所以需要对这三个信号进行编码,分别采用不同的编码方式。
在此,我们着重说一下视频编码,在Xilinx官方给出的一个编码示意图中,我们可以清楚整个的编码流程:
图中也体现出了控制信号的编码方式:
会对应特定的四个值中的一个。
编码如下:
编码完成后,对数据我们需要进行并串转换,此操作我们可以使用原语OSERDES2实现10-to-1的过程。最后用OBUFDS将串行数据转换为差分信号输出即可。