李 靜,葉志龍,胡克用
(1.杭州師范大學(xué)錢江學(xué)院 電氣機(jī)械工程系,浙江 杭州 310012;2.杭州??低晹?shù)字技術(shù)股份有限公司,浙江 杭州 310012)
HDMI音頻雖然在家電行業(yè)早有發(fā)展,但在嵌入式視頻領(lǐng)域,由于受系統(tǒng)資源、系統(tǒng)成本等因素的限制,目前應(yīng)用很少。HDMI音頻和模擬音頻并存的系統(tǒng)目前應(yīng)用更少。
在高清視頻監(jiān)控系統(tǒng)中,除了往高清化、數(shù)字化方向發(fā)展之外,還要很好地兼容原有的模擬系統(tǒng)[1]。本課題不僅在高清監(jiān)控系統(tǒng)中實(shí)現(xiàn)了HDMI音頻輸出,而且保留了原有的模擬音頻輸出。此系統(tǒng)同時(shí)還可以根據(jù)當(dāng)前所連接的設(shè)備類型自動(dòng)切換音頻模式。當(dāng)用戶選擇HDMI接口輸出時(shí),HDMI數(shù)字音頻信號(hào)可以獲得很好的音頻效果,適用于對(duì)音頻質(zhì)量要求較高的場(chǎng)合。而當(dāng)用戶選擇其他輸出接口時(shí),系統(tǒng)自動(dòng)切換到模擬音頻輸出,適用于顯示器無(wú)HDMI接口的監(jiān)控場(chǎng)合。
TMS320DM647(簡(jiǎn)稱DM647)是TI公司推出的DSP高清視頻芯片,該芯片包括1個(gè)ARM子系統(tǒng)、1個(gè)DSP子系統(tǒng)和1個(gè)視頻處理子系統(tǒng)(VPSS)[2]。SiI9034是Silicon Image公司生產(chǎn)的符合HDMI1.3標(biāo)準(zhǔn)的HDMI發(fā)送芯片。圖1是本設(shè)計(jì)的系統(tǒng)框圖。
從圖1可知,由揚(yáng)聲器輸入的模擬音頻信號(hào)送給音頻A/D模數(shù)轉(zhuǎn)換芯片,音頻A/D芯片將其轉(zhuǎn)換為數(shù)字信號(hào),并按照I2S的總線格式將其發(fā)送給DM647的音頻輸入接口。DM647對(duì)接收到的音頻信號(hào)進(jìn)行濾波、編碼及存儲(chǔ)等處理。當(dāng)需要音頻信號(hào)輸出時(shí),再解碼壓縮過(guò)的音頻碼流。此時(shí),音頻輸出有兩種,一種是模擬音頻輸出,另外一種是HDMI數(shù)字音頻輸出。當(dāng)系統(tǒng)輸出的視頻格式為HDMI高清視頻時(shí),音頻通道自動(dòng)將音頻數(shù)據(jù)發(fā)送給HDMI發(fā)送芯片SiI9034,SiI9034將音頻數(shù)據(jù)復(fù)合到視頻流,并最終將音視頻復(fù)合流輸出到HDMI接收設(shè)備[3]。而當(dāng)系統(tǒng)輸出的視頻格式為VGA視頻輸出時(shí),音頻通道自動(dòng)將音頻數(shù)據(jù)發(fā)送給音頻D/A芯片進(jìn)行數(shù)模轉(zhuǎn)換,轉(zhuǎn)換后得到的模擬音頻信號(hào)最后輸出到耳機(jī)或者揚(yáng)聲器。利用此方法,可以在實(shí)現(xiàn)HDMI數(shù)字音頻輸出的同時(shí)很好地兼容原有的模擬音頻輸出,并實(shí)現(xiàn)雙音頻流的自動(dòng)選擇與自由切換。
音頻信號(hào)和視頻信號(hào)是兩種格式的信號(hào),有不同的采樣率和時(shí)序格式。HDMI協(xié)議在發(fā)送端通過(guò)巧妙的編碼方式,將音頻信號(hào)嵌入到視頻信號(hào)的消隱期內(nèi)傳輸,在顯示器端再將音視頻信號(hào)分離。
HDMI將視頻信號(hào)傳輸周期劃分為傳輸控制器、島嶼數(shù)據(jù)期和視頻數(shù)據(jù)期。在傳輸控制器傳輸行同步和場(chǎng)同步信號(hào)以及CTL0/1/2/3信號(hào),CTL0/1/2/3為1000時(shí),代表后續(xù)的數(shù)據(jù)是視頻數(shù)據(jù),為1010時(shí)代表后續(xù)的數(shù)據(jù)是島嶼數(shù)據(jù)。島嶼數(shù)據(jù)期傳送音頻數(shù)據(jù)、信息幀(Info-Frame)和控制包等,其中傳送信息幀的主要目的是將輸出源的圖像長(zhǎng)寬比、顏色空間等信息發(fā)送給顯示設(shè)備,便于顯示設(shè)置選擇最好的信號(hào)顯示模式,而傳送控制包的主要作用是提供相關(guān)的控制信息。視頻數(shù)據(jù)期間則傳輸實(shí)際的視頻信號(hào)[4]。
對(duì)于HDMI音頻的實(shí)現(xiàn),關(guān)鍵在兩點(diǎn):第一點(diǎn)是上面提到的傳輸周期劃分。發(fā)送端巧妙地在島嶼數(shù)據(jù)期傳送音頻信號(hào),而在視頻數(shù)據(jù)期傳送視頻信號(hào),從而將兩種格式的信號(hào)放在一起傳輸,并在顯示器端將音頻信號(hào)和視頻信號(hào)進(jìn)行分離;第二點(diǎn)就是如何保證音頻信號(hào)和視頻信號(hào)的同步問(wèn)題,也就是要在發(fā)送端加入控制信息,便于在接收端實(shí)現(xiàn)音頻采樣時(shí)鐘的恢復(fù)。HDMI協(xié)議采用如圖2所示的時(shí)鐘機(jī)制[5]。
圖2中,F(xiàn)s代表音頻采樣時(shí)鐘,F(xiàn)clk代表視頻時(shí)鐘。從圖中可以看出,音頻時(shí)鐘和視頻時(shí)鐘的關(guān)系有
在發(fā)送端,128倍的音頻時(shí)鐘Fs先作N分頻,再作CTS倍頻,正好得到視頻時(shí)鐘Fclk,而在接收端,視頻時(shí)鐘Fclk先作N倍頻,再作CTS分頻之后的頻率正好等于128倍的音頻采樣時(shí)鐘Fs。其中,N和CTS的值由計(jì)算得到,同時(shí)HDMI協(xié)議規(guī)范中也對(duì)常見的音視頻組合給出了推薦的N和CTS值。例如,在本文中對(duì)應(yīng)的視頻分辨力為1 080p@60 Hz,對(duì)應(yīng)的視頻時(shí)鐘Fclk=148.5 MHz,而音頻采樣率Fs=32 kHz,所以采用的N和CTS值分別為4 096和148 500。
N和CTS的值由發(fā)送端計(jì)算并在島嶼數(shù)據(jù)期間通過(guò)音頻時(shí)鐘還原控制包發(fā)送給顯示器。接收端顯示器再據(jù)此還原出音頻采樣率。控制包的格式可以參見HDMI協(xié)議規(guī)范中的相關(guān)章節(jié)。
模擬音頻主要通過(guò)音頻芯片UDA1380來(lái)實(shí)現(xiàn)。DSP將I2S格式的數(shù)字音頻信號(hào)發(fā)送到音頻編解碼芯片UDA1380,UDA1380將數(shù)字音頻信號(hào)轉(zhuǎn)換為模擬音頻信號(hào)并輸出。圖3是模擬音頻輸出的初始化流程圖。
從圖3可以看出,模擬音頻初始化首先需要配置I2S音頻時(shí)鐘。I2S音頻需要用到3個(gè)時(shí)鐘,它們分別是主時(shí)鐘4.096 MHz,位時(shí)鐘512 kHz和幀時(shí)鐘16 kHz。這3個(gè)時(shí)鐘均由時(shí)鐘芯片產(chǎn)生,時(shí)鐘芯片通過(guò)內(nèi)部PLL產(chǎn)生音頻所需的時(shí)鐘。在完成對(duì)音頻的時(shí)鐘配置之后需要初始化音頻編解碼芯片UDA1380,主要涉及工作模式設(shè)定、音頻位寬設(shè)定、音頻采樣率和采樣深度設(shè)定等。UDA1380配置完成后需要初始化DSP的MCASP音頻輸出接口,將工作模式設(shè)定為I2S格式,音頻數(shù)據(jù)位寬設(shè)定為16 bit,申請(qǐng)音頻緩沖,配置音頻輸出DMA通道等。在完成DSP音頻輸出和UDA1380的初始化配置之后,DSP開始按照預(yù)先設(shè)定的工作模式發(fā)送I2S格式數(shù)字音頻數(shù)據(jù),UDA1380在接收到此數(shù)據(jù)之后將其轉(zhuǎn)換為模擬音頻信號(hào),并最終通過(guò)耳機(jī)或者擴(kuò)音器輸出模擬音頻。
在數(shù)字HDMI音頻和模擬音頻輸出分別調(diào)試成功并穩(wěn)定工作之后,需要設(shè)計(jì)一種方法來(lái)實(shí)現(xiàn)兩種音頻格式之間的自動(dòng)切換。圖4是雙音頻碼流自動(dòng)切換的流程圖。
從圖4可知,當(dāng)系統(tǒng)啟動(dòng)時(shí)首先需要檢測(cè)HDMI顯示器是否已連接。如果檢測(cè)到HDMI顯示器已連接,則開啟HDMI音頻輸出。如果未檢測(cè)到HDMI顯示器,則開啟模擬音頻輸出。對(duì)于所連接顯示器的參數(shù)檢測(cè),主要是通過(guò)SiI9034 DDC I2C接口獲取顯示器E2PROM中存儲(chǔ)的EDID信息。EIA/CEA 861B規(guī)范規(guī)定,CEA EDID數(shù)據(jù)傳輸?shù)牡谝粋€(gè)時(shí)序擴(kuò)展段中要包含VSDB(Vendor Specific Data Block)信號(hào)[6]。如果是HDMI設(shè)備,就能找到一個(gè)有效的VSDB,它包含一個(gè)24 bit的HDMI數(shù)據(jù)識(shí)別符,其值為0x000C03。只要SiI9034從顯示器EDID空間查找到該描述符就認(rèn)為其所連接的是HDMI顯示器。如果找不到有效的HDMI數(shù)據(jù)識(shí)別符,就認(rèn)為HDMI顯示器未連接。
在系統(tǒng)運(yùn)行的過(guò)程中,如果發(fā)生了顯示器拔插的中斷信號(hào),則需要重新作檢測(cè),并根據(jù)檢測(cè)結(jié)果重新選擇對(duì)應(yīng)的音頻輸出模式。
數(shù)字HDMI音頻和模擬音頻在高清安防系統(tǒng)中均發(fā)揮著重要的作用。前者適應(yīng)了安防系統(tǒng)數(shù)字化的發(fā)展需要,由于數(shù)字信號(hào)具有很高的抗干擾能力,所以音頻質(zhì)量得到了有效提高;而后者則兼顧了對(duì)原有系統(tǒng)的兼容,確保在提高產(chǎn)品性能的同時(shí)照顧到現(xiàn)有的產(chǎn)品形態(tài),適用于顯示器無(wú)HDMI接口的監(jiān)控場(chǎng)合。數(shù)字HDMI音頻實(shí)現(xiàn)的關(guān)鍵是實(shí)現(xiàn)音視頻信號(hào)之間的有效同步,而模擬音頻實(shí)現(xiàn)的關(guān)鍵是音頻D/A轉(zhuǎn)換的實(shí)現(xiàn)。雙音頻自動(dòng)檢測(cè)與切換實(shí)現(xiàn)的關(guān)鍵是讀取并判斷顯示器的EDID信息。本課題成果目前已成功運(yùn)用到高清安防監(jiān)控系統(tǒng)中,且系統(tǒng)運(yùn)行穩(wěn)定。雙音頻系統(tǒng)的應(yīng)用既滿足了不同客戶的需要,也提高了產(chǎn)品的競(jìng)爭(zhēng)力。
[1]胡瑞敏,牟曉弦,李明.面向視頻監(jiān)控的視頻編解碼技術(shù)[J].電視技術(shù),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接口在音視頻接收系統(tǒng)中的設(shè)計(jì)與開發(fā)[D].長(zhǎng)沙:湖南大學(xué),2007.
[6]陳建英.EDID在HDMI高清設(shè)備中的應(yīng)用[J].電子產(chǎn)品世界,2008(1):115.