李 靜,葉志龍,胡克用
(1.杭州師范大學錢江學院 電氣機械工程系,浙江 杭州 310012;2.杭州海康威視數字技術股份有限公司,浙江 杭州 310012)
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數字音頻輸出的同時很好地兼容原有的模擬音頻輸出,并實現雙音頻流的自動選擇與自由切換。
音頻信號和視頻信號是兩種格式的信號,有不同的采樣率和時序格式。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協議規范中的相關章節。
模擬音頻主要通過音頻芯片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在接收到此數據之后將其轉換為模擬音頻信號,并最終通過耳機或者擴音器輸出模擬音頻。
在數字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顯示器未連接。
在系統運行的過程中,如果發生了顯示器拔插的中斷信號,則需要重新作檢測,并根據檢測結果重新選擇對應的音頻輸出模式。
數字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.