LCD TV視頻解碼器技術(shù)簡介
就技術(shù)層面而言,LCD TV是屬于高整合電子產(chǎn)品。它涵蓋了算法、軟件、硬件、芯片、無線射頻等領(lǐng)域,而且有許多專利是屬于國外公司或機構(gòu)所擁有。目前國內(nèi)很缺乏熟悉這塊領(lǐng)域的系統(tǒng)整合人才。目前即使在先進國家,由于LCD TV或HDTV仍然屬于最新的產(chǎn)品,熟悉這塊領(lǐng)域的技術(shù)人才,其實也不多。與之相近的,應(yīng)該是數(shù)位機頂盒(Digital STB),不過,前者的技術(shù)復(fù)雜度又遠遠超過后者,因為LCD TV或HDTV除了包含了網(wǎng)絡(luò)通信的功能以外,還包括OSD(On Screen Display)和“縮放控制器(Scalar)”、屏幕驅(qū)動等功能。所以,即使設(shè)計過STB的人,也不敢隨便說LCD TV或HDTV的技術(shù)很簡單。
LCD TV的硬件架構(gòu)
圖1 LCD TV的硬件架構(gòu)
圖1是LCD TV的硬件架構(gòu)示意圖。其中,比較重要的音視頻部件有:中央處理器、視頻解碼器(Video Decoder)、射頻調(diào)諧器(RF tuner)、信道解調(diào)器(Channel Demodulator/Decoder)、音頻編解碼器(Audio Codec)。此外,還可能包含一般常見的I/O接口與裝置,例如:USB、1394、藍牙、WLAN、IrDA、MMC/SD/CF、以太網(wǎng)絡(luò)、數(shù)字相機、DSL或纜線調(diào)制解調(diào)器(Cable Modem)、PDA等。
視頻解碼器
圖2 混頻解碼器的位置
圖2是一個LCD TV/HDTV視頻解碼器與相鄰芯片之間的關(guān)系。它具有下列的主要功能:
1. 可編程化的像素(Pixel)輸出端口:由8到30位來決定像素的YCbCr/RGB的比例,例如:4:2:2或4:4:4。
2. 支持外部的射頻調(diào)諧器,具有10-bit的數(shù)字基頻合成(Composite)視頻輸入單元。
3. 自動辨識和處理VCR或數(shù)字電視信號。
4. 通過像素輸出端口支持“垂直空白間隔(Vertical Blank Interval;VBI)”數(shù)據(jù)的輸出,可以用來傳送“字幕(Closed Caption;CC)”數(shù)據(jù),例如:傳輸實時的股市行情。其它VBI數(shù)據(jù)可以通過I2C接口傳輸,例如:版權(quán)產(chǎn)生管理系統(tǒng)(Copy Generation Management System;CGMS)、寬屏幕信號(Wide Screen Signalling)、強清晰度電視(Enhanced Definition Television;EDTV)、CC字幕、延伸數(shù)據(jù)服務(wù)(Extended Data Service;XDS)。
5. 支持全球現(xiàn)有的多種色彩格式:
*PAL B/D/I/G/H、PAL60、PAL M、PAL N、PAL Nc
*NTSC M/J、NTSC 4.43
*SECAM B/D/G/K/L
*NTSC方形像素(square pixel)
6. 支持HDTV的所有輸入信號,例如:525p、625p、720p和1080i,以及其它高分辨率(HD)和SMPTE(Society of Motion Picture Engineers)標(biāo)準(zhǔn)。也支持標(biāo)準(zhǔn)分辨率(SD)。
7. 除支持CVBS、S-Video、YPbPr、RGB以外,還支持5線的YPbPrHV/RGBHV和CSync,如圖3。
圖3 支持多種視頻輸入格式
視頻串流的路徑
附圖四是一個簡易的LCD TV或數(shù)字電視接收系統(tǒng)之架構(gòu)。它包含了上述的硬件架構(gòu),也包括了必需的軟件。
圖4 簡易的LCD TV系統(tǒng)架構(gòu)
從解碼器、解調(diào)器傳來的MPEG-2傳輸串流(transport stream;TS),經(jīng)過”解多復(fù)用器(Demultiplexer)”之后,可以得到視頻、音頻、數(shù)據(jù)、對白(subtitle)或字幕…..等不同的信號,再經(jīng)過視頻解碼器(例如:MPEG-2/4或H.264)、音頻解碼器,得到的數(shù)據(jù)是最原始的(raw)數(shù)據(jù)。這些數(shù)據(jù)會被中央處理器送到適當(dāng)?shù)耐ㄐ艆f(xié)議層,例如:V4L2、RTP/RTCP/RTSP、HTTP、Java應(yīng)用程序……等,之后通過“回傳信道(return channel)”,例如:以太網(wǎng)絡(luò),將這些數(shù)據(jù)送到因特網(wǎng)上;或送至OSD、音頻DAC,交給LCD和揚聲器播放。
沒錯,數(shù)字機頂盒也具有上述的類似功能。它和LCD TV一樣也都具有“條件訪問(CA)”的功能。只不過,LCD TV的屏幕都是內(nèi)建的,而且,一般的數(shù)字機頂盒只能通過單一的路徑來獲取視頻,但是,LCD TV可以通過4種不同的路徑來取得視頻,這包含:衛(wèi)星數(shù)字、數(shù)字地面、因特網(wǎng)、有線數(shù)據(jù)網(wǎng)絡(luò)。不過,就交互式電視的軟件而言,數(shù)字機頂盒和LCD TV的軟件是非常類似的,甚至是一樣的。
在“設(shè)備驅(qū)動程序(device driver)”層,為了能播放數(shù)字電視信號,LCD TV的I/O端口必須要有LCD驅(qū)動程序(能夠設(shè)定OSD和Scalar)和音頻驅(qū)動程序。為了能將互動信息傳送至因特網(wǎng)上,它也需要以太驅(qū)動程序和DSL(或纜線)調(diào)制解調(diào)器驅(qū)動程序。外部裝置也可以通過IrDA或I2C、SPI、UART……等接口,將數(shù)據(jù)送給LCD TV處理。此外,接收端的視頻/音頻解碼器的驅(qū)動程序也位于這一層。
有許多工程師不了解LCD TV或數(shù)字機頂盒的視頻數(shù)據(jù)流(data flow)的行動路徑,因此經(jīng)常造成消錯上的困擾,尤其是在經(jīng)過視頻解碼器之后,信號應(yīng)交給中央處理器處理,而不是其它組件。同理,如果在附圖四中的信號來源換成是以太網(wǎng)絡(luò),而不是射頻天線,在經(jīng)過視頻解碼器解碼之后的信號仍應(yīng)交給中央處理器。此外,在圖四中,不管是MPEG-2 TS或PS/PES,都可以將它們視為最底層的數(shù)字?jǐn)?shù)據(jù)封包,其地位和角色皆如同以太封包一樣,有別于模擬信號。
解碼引擎
由于視頻、音頻格式的多樣化,使用單一的解碼器已經(jīng)無法滿足這么多的需求。于是有所謂的“解碼引擎(decode engine)”,它可能是一顆RISC或DSP,負(fù)責(zé)重置、停止、加載和啟動固件或“微碼(microcode)”,并處理所有與串流解碼無關(guān)的工作,例如:輸出聲音。
每個解碼引擎內(nèi)部具有數(shù)個解碼器,負(fù)責(zé)下列的工作:
1. 開啟或關(guān)閉單一串流。
2. 傳送命令。例如:初始化、解除初始化、播放、暫停、停止等。
3. 取得目前的狀態(tài)信息。例如:播放中、已暫停等。
4. 各種串流獨有的特性。例如:數(shù)據(jù)格式等。
在這些RISC或DSP內(nèi)部都具有許多個硬件模塊,而每一個模塊都具有特定的實體功能;這些功能通??梢岳镁彺嫫?Register)來設(shè)定。一般而言,這些RISC或DSP會包含下列的硬件模塊:
1. 解多任務(wù)(Demux)引擎:同時對視頻和音頻分工。
2. MPEG引擎:是一個視頻DSP,內(nèi)含一個視頻解碼器和一個“子圖像(Subpicture)解碼器”。
3. 音頻引擎:是一個音頻DSP,內(nèi)含兩個音頻解碼器和一個混頻器(mixer)。
4. 中央處理器:CPU核心、DMA、中斷處理單元。
這些RISC或DSP的軟件模塊是利用硬件模塊來產(chǎn)生“執(zhí)行緒(task)”。例如下列的軟件模塊:
1. 系統(tǒng)區(qū)塊:PLL初始化、DRAM設(shè)定……等。
2. 圖形加速引擎:使用圖形加速命令所控制的FIFO,來加快處理速度。
3. 字幕解碼模塊:軟件的字幕解碼單元。
4. I2C:軟件的I2C接口,為可程序化的輸出入端口(PIO)。
5. 內(nèi)存管理模塊:DRAM的配置。
解碼引擎的驅(qū)動程序
圖5 視頻解碼引擎的驅(qū)動程序架構(gòu)
通常,視頻解碼引擎的驅(qū)動程序會包含下列幾個單元(如附圖五):
1. 與操作系統(tǒng)和芯片無關(guān)的應(yīng)用程序接口(API):控制緩存器和DRAM的存取。
2. 硬件抽象層鏈接庫:與硬件相關(guān),可通過XML語言來設(shè)定它,以適應(yīng)特定的芯片。它不包含與操作系統(tǒng)相關(guān)的API,只會呼叫與操作系統(tǒng)和芯片無關(guān)的API。
3. 最少的核心模塊:它在上述1.的上方,負(fù)責(zé)存取緩存器和處理DMA,并且處理OS核心的全部作業(yè),例如:IRQ處理、DMA配置…等。
4. 核心模塊:它呼叫“最少的核心模塊”,以存取硬件。
內(nèi)存的配置
圖6 視頻解碼器的內(nèi)存配置
內(nèi)存配置是在開發(fā)視頻解碼裝置時,必須特別考慮的。圖6是典型的視頻解碼器之內(nèi)存配置;附表一是各種視頻格式在解碼時所需要的內(nèi)存大小。
表1 各種視頻格式的內(nèi)存需求
配置內(nèi)存時,必須避免分割太小和太多。務(wù)必先配置大的、長時間使用的緩沖空間(buffer);在進行多信道播放時,應(yīng)避免不必要的配置或釋放緩沖空間。(本文選自《零組件》雜志)
評論