双音频在高清安防监控系统中的应用
2011-03-15叶志龙胡克用
李 静,叶志龙,胡克用
(1.杭州师范大学钱江学院 电气机械工程系,浙江 杭州 310012;2.杭州海康威视数字技术股份有限公司,浙江 杭州 310012)
1 系统简介
HDMI音频虽然在家电行业早有发展,但在嵌入式视频领域,由于受系统资源、系统成本等因素的限制,目前应用很少。HDMI音频和模拟音频并存的系统目前应用更少。
在高清视频监控系统中,除了往高清化、数字化方向发展之外,还要很好地兼容原有的模拟系统[1]。本课题不仅在高清监控系统中实现了HDMI音频输出,而且保留了原有的模拟音频输出。此系统同时还可以根据当前所连接的设备类型自动切换音频模式。当用户选择HDMI接口输出时,HDMI数字音频信号可以获得很好的音频效果,适用于对音频质量要求较高的场合。而当用户选择其他输出接口时,系统自动切换到模拟音频输出,适用于显示器无HDMI接口的监控场合。
TMS320DM647(简称DM647)是TI公司推出的DSP高清视频芯片,该芯片包括1个ARM子系统、1个DSP子系统和1个视频处理子系统(VPSS)[2]。SiI9034是Silicon Image公司生产的符合HDMI1.3标准的HDMI发送芯片。图1是本设计的系统框图。
从图1可知,由扬声器输入的模拟音频信号送给音频A/D模数转换芯片,音频A/D芯片将其转换为数字信号,并按照I2S的总线格式将其发送给DM647的音频输入接口。DM647对接收到的音频信号进行滤波、编码及存储等处理。当需要音频信号输出时,再解码压缩过的音频码流。此时,音频输出有两种,一种是模拟音频输出,另外一种是HDMI数字音频输出。当系统输出的视频格式为HDMI高清视频时,音频通道自动将音频数据发送给HDMI发送芯片SiI9034,SiI9034将音频数据复合到视频流,并最终将音视频复合流输出到HDMI接收设备[3]。而当系统输出的视频格式为VGA视频输出时,音频通道自动将音频数据发送给音频D/A芯片进行数模转换,转换后得到的模拟音频信号最后输出到耳机或者扬声器。利用此方法,可以在实现HDMI数字音频输出的同时很好地兼容原有的模拟音频输出,并实现双音频流的自动选择与自由切换。
2 HDMI音频的实现
音频信号和视频信号是两种格式的信号,有不同的采样率和时序格式。HDMI协议在发送端通过巧妙的编码方式,将音频信号嵌入到视频信号的消隐期内传输,在显示器端再将音视频信号分离。
HDMI将视频信号传输周期划分为传输控制器、岛屿数据期和视频数据期。在传输控制器传输行同步和场同步信号以及CTL0/1/2/3信号,CTL0/1/2/3为1000时,代表后续的数据是视频数据,为1010时代表后续的数据是岛屿数据。岛屿数据期传送音频数据、信息帧(Info-Frame)和控制包等,其中传送信息帧的主要目的是将输出源的图像长宽比、颜色空间等信息发送给显示设备,便于显示设置选择最好的信号显示模式,而传送控制包的主要作用是提供相关的控制信息。视频数据期间则传输实际的视频信号[4]。
对于HDMI音频的实现,关键在两点:第一点是上面提到的传输周期划分。发送端巧妙地在岛屿数据期传送音频信号,而在视频数据期传送视频信号,从而将两种格式的信号放在一起传输,并在显示器端将音频信号和视频信号进行分离;第二点就是如何保证音频信号和视频信号的同步问题,也就是要在发送端加入控制信息,便于在接收端实现音频采样时钟的恢复。HDMI协议采用如图2所示的时钟机制[5]。
图2中,Fs代表音频采样时钟,Fclk代表视频时钟。从图中可以看出,音频时钟和视频时钟的关系有
在发送端,128倍的音频时钟Fs先作N分频,再作CTS倍频,正好得到视频时钟Fclk,而在接收端,视频时钟Fclk先作N倍频,再作CTS分频之后的频率正好等于128倍的音频采样时钟Fs。其中,N和CTS的值由计算得到,同时HDMI协议规范中也对常见的音视频组合给出了推荐的N和CTS值。例如,在本文中对应的视频分辨力为1 080p@60 Hz,对应的视频时钟Fclk=148.5 MHz,而音频采样率Fs=32 kHz,所以采用的N和CTS值分别为4 096和148 500。
N和CTS的值由发送端计算并在岛屿数据期间通过音频时钟还原控制包发送给显示器。接收端显示器再据此还原出音频采样率。控制包的格式可以参见HDMI协议规范中的相关章节。
3 模拟音频的实现
模拟音频主要通过音频芯片UDA1380来实现。DSP将I2S格式的数字音频信号发送到音频编解码芯片UDA1380,UDA1380将数字音频信号转换为模拟音频信号并输出。图3是模拟音频输出的初始化流程图。
从图3可以看出,模拟音频初始化首先需要配置I2S音频时钟。I2S音频需要用到3个时钟,它们分别是主时钟4.096 MHz,位时钟512 kHz和帧时钟16 kHz。这3个时钟均由时钟芯片产生,时钟芯片通过内部PLL产生音频所需的时钟。在完成对音频的时钟配置之后需要初始化音频编解码芯片UDA1380,主要涉及工作模式设定、音频位宽设定、音频采样率和采样深度设定等。UDA1380配置完成后需要初始化DSP的MCASP音频输出接口,将工作模式设定为I2S格式,音频数据位宽设定为16 bit,申请音频缓冲,配置音频输出DMA通道等。在完成DSP音频输出和UDA1380的初始化配置之后,DSP开始按照预先设定的工作模式发送I2S格式数字音频数据,UDA1380在接收到此数据之后将其转换为模拟音频信号,并最终通过耳机或者扩音器输出模拟音频。
4 双音频码流的自动切换
在数字HDMI音频和模拟音频输出分别调试成功并稳定工作之后,需要设计一种方法来实现两种音频格式之间的自动切换。图4是双音频码流自动切换的流程图。
从图4可知,当系统启动时首先需要检测HDMI显示器是否已连接。如果检测到HDMI显示器已连接,则开启HDMI音频输出。如果未检测到HDMI显示器,则开启模拟音频输出。对于所连接显示器的参数检测,主要是通过SiI9034 DDC I2C接口获取显示器E2PROM中存储的EDID信息。EIA/CEA 861B规范规定,CEA EDID数据传输的第一个时序扩展段中要包含VSDB(Vendor Specific Data Block)信号[6]。如果是HDMI设备,就能找到一个有效的VSDB,它包含一个24 bit的HDMI数据识别符,其值为0x000C03。只要SiI9034从显示器EDID空间查找到该描述符就认为其所连接的是HDMI显示器。如果找不到有效的HDMI数据识别符,就认为HDMI显示器未连接。
在系统运行的过程中,如果发生了显示器拔插的中断信号,则需要重新作检测,并根据检测结果重新选择对应的音频输出模式。
5 小结
数字HDMI音频和模拟音频在高清安防系统中均发挥着重要的作用。前者适应了安防系统数字化的发展需要,由于数字信号具有很高的抗干扰能力,所以音频质量得到了有效提高;而后者则兼顾了对原有系统的兼容,确保在提高产品性能的同时照顾到现有的产品形态,适用于显示器无HDMI接口的监控场合。数字HDMI音频实现的关键是实现音视频信号之间的有效同步,而模拟音频实现的关键是音频D/A转换的实现。双音频自动检测与切换实现的关键是读取并判断显示器的EDID信息。本课题成果目前已成功运用到高清安防监控系统中,且系统运行稳定。双音频系统的应用既满足了不同客户的需要,也提高了产品的竞争力。
[1]胡瑞敏,牟晓弦,李明.面向视频监控的视频编解码技术[J].电视技术,2008,32(5):68-79.
[2]Texas Instruments Company.TMS320DM647/TMS320DM648 digital media processor[EB/OL].[2010-07-25].http://www.bdtic.com/DataSheet/TI/TMS320DM647_TMS320DM648.pdf.
[3]Silicon Image Company.SiI9034/9134 HDMI transmitter[EB/OL].[2010-07-25].http://topvision-tech.com/softs/SiI9134-PR-0039-FAVIC.PDF.
[4]Hitachi Ltd.High-definition multimedia interface specification version 1.3a[EB/OL].[2010-07-25].http://hackipedia.org/Hardware/video/connectors/HDMI/HDMI%20Specification%20v1.3a.pdf.
[5]沈璐.HDMI接口在音视频接收系统中的设计与开发[D].长沙:湖南大学,2007.
[6]陈建英.EDID在HDMI高清设备中的应用[J].电子产品世界,2008(1):115.