HDMI前端设计与实现
扫描二维码
随时随地手机看文章
摘要:随着高清影音时代的到来,新的高清多媒体接口技术也渐趋成熟。本文研究了高清多媒体接口的编码和解码功能,并采用硬件描述语言实现高清多媒体接口规范定义的编解码功能。首先对高清多媒体接口的整体信道传输过程进行了分析和分解,并阐述了三个数据周期传输时间及其解码方式的不同。在此基础上对编解码功能进行了模块划分,采用分层及模块复用至顶向下的设计方法。最后通过NC—Verilog仿真工具仿真验证代码功能的正确性。
关键词:高清多媒体接口;编码;解码;至顶向下;仿真
0 引言
数字影音技术发展日新月异,多媒体视听领域正在进行着一场革命,随着生活水平的提高,普通影音己不能满足人们的需求,追求高清晰画质,立体感音质,已经成为新一代人追求时尚的一种诠释。
在过去相当长的一段时间,CRT(Cathode Ray Tube)为代表的模拟显示设备主导了整个显示设备市场。随着高清视频格式(720p/1080i/1080p)的确定,液晶电视、等离子电视等大尺寸数字化平板显示设备的发明和普及,传统模拟接口易受电磁干扰、传输速率低、带宽小、传输损耗大等缺点已经不能满足海量数据流传输等需求;同时,影视等行业对版权意识越来越重视,数据传输的加密变得愈发重要,传输更快更安全的全数字化接口代替模拟接口成为必然趋势。于是第一个行业支持的、无压缩的、全数字的音视频接口 —HDMI诞生了。
HDMI的全称是“High Definition Multimedia Interface高清多媒体接口”。2002年4月,来自电子电器行业的7家公司——日立、松下、飞利浦、Silicon Image、索尼、汤姆逊、东芝共同组建了HDMI高清多媒体接口组织HDMI founders(HDMI论坛),HDMI founders在2002年12月9号正式发布HDMI1.0版标准,标志着HDMI技术正式进入历史舞台。随着HDMI标准本身的发展,1.3a版本和2.0等后续版本也陆续推出,不仅性能更加强大,兼容性也更加出色。
在HDMI标准制定之初,继承了DVI标准中相对成熟且较容易实现的部分技术标准。整个传输原理依然是基于Silicon Image公司的TMDS(Transition Minimized Differential Sienaling)编码技术。
HDMI具有体积小、抗干扰强、兼容性好、智能连接、单线缆同时传输无压缩音视频等优势。因此,它已被广泛地应用到DVD、机顶盒等设备中,HDMI正在成为高清时代普及率最高、用途最广泛的数字接口。
1 HDMI概述
HDMI系统架构由信源端和接收端组成。如图1所示,HDMI提供四个独立的TMDS(Transition Minimized Differential Signaling)通信通道:三个数据信道和一个时钟信道,这些信道主要用于传递视频、音频和辅助数据。另外,HDMI提供一个VESADDC(Video Electronics Standards Association)(Display Data Channel)信道。DDC是用于配置和在一个单独的信源端和一个单独的接收端交换状态,读取接收端的E-EDID数据结构。CEC(Consumer Electronics Control)是一个可选信道,可选择在用户的各种不同的音视频产品中,为高端用户提供高水平的控制功能。可选择的HDMI以太网和音频返回(HEAC),在连接的设备中提供以太网兼容的网络数据和一个和TMDS相对方向的音频返回信道。
音频,视频和辅助数据都是在三个TMDS数据信道中相互交错传输。TMDS时钟,即视频像素速率传输时钟,在TMDS时钟信道中传输,它被接收端三个 TMDS信道作为一个频率参考,用于对三个TMDS数据信道的数据复原。在信源端,TMDS编码将每个TMDS数据的8bits数据转换成10bits的 DC-balanced数据,10bits的DC-balanced数据将以每个TMDS时钟周期串行地在差分线对上进行传输。
视频数据像素时钟的TMDS时钟上传递默认值为24位色深,视频数据还兼容30,36,48位像素的数据。更高的色深使用需要相应的更高的TMDS时钟率。视频格式TMDS时钟率低于25M可以运用像素复用发送的策略来进行传输。视频像素支持多种编码格式,可以是 RGB,YCbCr4:4:4,YCbCr4:2:2格式编码。
TMDS信道传输音频和辅助数据中,HDMI的信源端需要采取用包的格式来保证传输。为了保证音频和控制信号的高保真度,音频和辅助数据数据需要BCH纠错码的编码方式,且采取了一种10bits减少错误编码的特殊编码方式。基本的音频传输功能几乎包括所有的普通的立体声音频,在采样频率分别为 32KHz,44.1KHz和48KHz情况下的IEC60958L—PCM音频流。HDMI还可以传输采样频率高达192KHz,采用3到8个音频通道的音频流。HDMI同样可以传输采样频率高达24.576MHz的IEC61937压缩音频。HDMI同样可以传输2—8通道的OneBit音频或者是一种被称为DST的压缩的One Bit音频。
2 HDMI编码设计
本设计是基于HDMI 1.4版本的编解码设计。主要分为两个大模块设计,即HDMI TX编码模块和HDMI RX解码模块。TX编码模块主要实现把视频、音频数据通过编码传输给Rx解码模块。RX解码模块主要把视频、音频数据解码后传输给外置设备。
如图2所示,HDMI有三种处理数据的操作模式:视频数据周期,数据岛周期,控制周期。在视频数据周期,传输每一个有效的视频像素行。在数据岛周期中,音频和辅助数据使用一系列数据包来传输。在音频和视频周期的两个非控制周期之间要插入控制周期。
视频数据周期采用最小化差分传输编码(TMDS)的编码方式,对每个8bits传输信道进行编码,三个传输信道共24bits数据。
数据岛周期采用TMDS纠错编码(TERC4)的编码方式,每个4bits传输信道进行编码,三个传输信道共12bits数据。
控制周期采用最大化传输编码的编码方式,对每个2bits传输信道进行编码,三个传输信道共6bits。这6bits数据包括HSYNC、VSYNC、CTL0、CTL1、CTL2、CTL3。在每个控制周期的末尾有一个报文头,使用CTLx bits数据组成的preamble,指示下一个数据周期是视频周期还是数据岛周期。
每一个数据岛周期起始于前导保护带(Leading Guard Band),结束于后置保护带(Training Guard Band);而视频数据周期只始于前导保护带,没有后置保护带。保护边界两个特殊字符组成,设计目标是提供从控制周期到数据周期或从数据周期向控制周期转化的鲁棒决策。
下表2.3展示在数据传输中每种操作模式的编码类型。
2. 1 编码器TX模块
TX(信源端)发射模块,包括时钟模块(由Timing和Timing_dly两个模块组成)、以及编码模块。时钟模块主要为视频音频交错相传产生时钟,编码模块实现对视频音频数据编码传输。
2. 1.1 时钟模块
(1)Timing模块
Timing模块是HDMI编码器的基础,它产生720*480p、1280*720p、1920*1080i等视频格式的行信号hsync_pr、场信号vsync_pr、行无效信号hblnk_pr和场无效信号vblnk_pr。如图2所示,hsync_pr、vsync_pr分别为HSYNC、 VSYNC;hblnk_pr为每行前138 pixels置高位,vblnk_pr为每帧前42行和后3行共45行置高位(注:具体定义以CEA-861-D中规定的720*480p的标准视频格式为准)。
(2)Timing_dly模块
Timing_dly模块是HDMI高速数据传输的核心,按照TMDS通道的视频音频交错传输数据要求,分配视频数据、音频数据和辅助数据,以及控制数据的传输时间周期,并为编码模块提供控制信号。
主要端口定义:
hsync_pr、vsync_pr;行信号和场信号。
aux_rdy:当输出是“1”,则外部数据缓存音频数据准备完毕,可以传输音频数据;否则,音频数据未完成打包,终止传输音频数据。
aux_admit:当输出是“1”,则传输音频数据;否则终止接受音频包数据。
ade、vde:分别表示传输音、视频数据标志位,为高时表示进入数据岛或视频数据周期。
2.1.2 encoder模块
timing模块采用TMDS编码、TERC4编码和最大化传输编码三种编码形式,对视频数据、音频数据包和辅助数据、控制数据编码传输。
视频像素数据的编码可分为两个阶段:第一个阶段是输入音频的8bits像素数据转换成9bits数据;第二阶段是把9bit数据转换成TMDS传输10bits。
实现的TMDS编码算法如图5所示。
D:输入8 bits视频数据。
cnt:计算编码数据中0和1个数的差值。若cnt为正值表示发送1的数量超过0的数量,负值则表示发送0的数量多于1的数量。cnt{t-1}表示相对于输入数据的前一个周期的cnt的值,cnt{t}表示本周期的值。
q_m:第一阶段的9 bits输出数据。
q_out:第二阶段的10 bits输出数据,即编码器输出值。
N1{x}:这个操作符返回参数x中的1的个数。
N0{x}:这个操作符返回参数x中的0的个数部分核心代码如下:
2.2 解码器RX模块
解码器模块较容易实现,只需依据preamble控制位判断接下来传输的数据类型,即音频或视频数据,然后解码即可。解码同样分两个阶段,如图5所示,第一阶段由10bits数据转为9bits数据,第二阶段由9bits数据转为8bits数据。
图6 TMDS解码原理
3 HDMI功能仿真验证
在HDMI功能验证采用分层验证法,根据Spec1.4的编码解码的要求,制定验证计划,设计各种激励,实现近百分之百的覆盖率。本文运用的工具是Cadence NC—Verilog,文中介绍部分验证计划,以及验证的结果。
3.1 时钟模块的功能仿真验证
按Spec1.4要求,给定仿真必需激励信号,仿真数据岛周期及视频数据周期的每个像素时钟的功能分布是否符合Spec1.4的要求。比如验证ctl[3:0]的正确性,如图4所示,在3个blanking、8个preamble、2个leading guard band的时钟周期之后,进入下一个状态,ctl[3:0]的值与状态所表示的值对比便可验证。
在验证数据岛周期:在ade_pr置高位后,经过4个blanking+8个preamble+2个leading guard band。packet传输结束后置低位。ade置高位进入data island period,再经过2个leading guard band+N个32位的packets+trialing guard band。trialing guard band后置低位。在8个preamble时,ctl[3:0]=4’b0101。
在验证视频数据周期时:vde_pr置高位后,经过4个blanking+8个preamble+2个leading guard band。video data传输结束后置低位。vde置高位进入video data period,再经过2个leading guard band+active video pixels。video data传输完后置低位。在8个preamble时,ctl[3:0]=4’b0001。
图7数据岛周期和视频数据周期仿真图
3.2 HDMI模块仿真
把时钟模块和encoder模块整合成TX模块,其中encoder模块分别实例为Encdr、Encdg、Encdb三个信道的编码模块。将TX和RX模块,即hdmi_encoder和hdmi_decoder,组合在一起仿真。
如图8所示,输入的音频、视频数据用random函数随机产生,且在固定的时间周期输入,将输出与输入对比,得出HDMI整个编解码模块是否正确。
如图9所示,第一组为7bits视频数据输入,第二组为编码后的10bits视频数据输出,第三组为解码后的7bits视频数据输出。视频数据编码需要三个时钟,解码需要两个时钟,所以每间隔五个时钟输入7bits数据等于输出的7bits数据,即从编码到解码一共需要五个时钟。
4 结论
进入21世纪,在带宽、音频、传输安全等方面具有优越性的HDMI的出现,满足了数字高清时代海量数据流传输的需求。本设计运用 verilog HDL实现HDMI编码及解码功能,通过写仿真测试激励及运用NC—Verilog工具仿真代码逻辑的正确性。从子模块、模块、系统仿真验证自底向上的方法来进行,最终根据仿真验证结果确认实现编解码功能。非常感谢芯珠微电子林泉工程师及梁文锋、黎伟莲、洪传练、杨家昌等同事的帮助,本设计的不足之处将在后续工作中改进。