<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 設(shè)計(jì)應(yīng)用 > LCD TV視頻解碼器技術(shù)簡(jiǎn)介

          LCD TV視頻解碼器技術(shù)簡(jiǎn)介

          ——
          作者:丹尼爾(臺(tái)灣) 時(shí)間:2007-01-02 來(lái)源:電子產(chǎn)品世界 收藏

          就技術(shù)層面而言, TV是屬于高整合電子產(chǎn)品。它涵蓋了算法、軟件、硬件、芯片、無(wú)線射頻等領(lǐng)域,而且有許多專利是屬于國(guó)外公司或機(jī)構(gòu)所擁有。目前國(guó)內(nèi)很缺乏熟悉這塊領(lǐng)域的系統(tǒng)整合人才。目前即使在先進(jìn)國(guó)家,由于 TV或HDTV仍然屬于最新的產(chǎn)品,熟悉這塊領(lǐng)域的技術(shù)人才,其實(shí)也不多。與之相近的,應(yīng)該是數(shù)位機(jī)頂盒(Digital STB),不過(guò),前者的技術(shù)復(fù)雜度又遠(yuǎn)遠(yuǎn)超過(guò)后者,因?yàn)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/LCD">LCD TV或HDTV除了包含了網(wǎng)絡(luò)通信的功能以外,還包括OSD(On Screen Display)和“縮放控制器(Scalar)”、屏幕驅(qū)動(dòng)等功能。所以,即使設(shè)計(jì)過(guò)STB的人,也不敢隨便說(shuō)LCD TV或HDTV的技術(shù)很簡(jiǎn)單。

          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)。此外,還可能包含一般常見(jiàn)的I/O接口與裝置,例如:USB、1394、藍(lán)牙、WLAN、IrDA、MMC/SD/CF、以太網(wǎng)絡(luò)、數(shù)字相機(jī)、DSL或纜線調(diào)制解調(diào)器(Cable Modem)、PDA等。

          視頻解碼器

          圖2 混頻解碼器的位置

          圖2是一個(gè)LCD TV/HDTV視頻解碼器與相鄰芯片之間的關(guān)系。它具有下列的主要功能:

          1. 可編程化的像素(Pixel)輸出端口:由8到30位來(lái)決定像素的YCbCr/RGB的比例,例如:4:2:2或4:4:4。
          2. 支持外部的射頻調(diào)諧器,具有10-bit的數(shù)字基頻合成(Composite)視頻輸入單元。
          3. 自動(dòng)辨識(shí)和處理VCR或數(shù)字電視信號(hào)。
          4. 通過(guò)像素輸出端口支持“垂直空白間隔(Vertical Blank Interval;VBI)”數(shù)據(jù)的輸出,可以用來(lái)傳送“字幕(Closed Caption;CC)”數(shù)據(jù),例如:傳輸實(shí)時(shí)的股市行情。其它VBI數(shù)據(jù)可以通過(guò)I2C接口傳輸,例如:版權(quán)產(chǎn)生管理系統(tǒng)(Copy Generation Management System;CGMS)、寬屏幕信號(hào)(Wide Screen Signalling)、強(qiáng)清晰度電視(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的所有輸入信號(hào),例如: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  支持多種視頻輸入格式

          視頻串流的路徑

          附圖四是一個(gè)簡(jiǎn)易的LCD TV或數(shù)字電視接收系統(tǒng)之架構(gòu)。它包含了上述的硬件架構(gòu),也包括了必需的軟件。

          圖4  簡(jiǎn)易的LCD TV系統(tǒng)架構(gòu)

          從解碼器、解調(diào)器傳來(lái)的MPEG-2傳輸串流(transport stream;TS),經(jīng)過(guò)”解多復(fù)用器(Demultiplexer)”之后,可以得到視頻、音頻、數(shù)據(jù)、對(duì)白(subtitle)或字幕…..等不同的信號(hào),再經(jīng)過(guò)視頻解碼器(例如:MPEG-2/4或H.264)、音頻解碼器,得到的數(shù)據(jù)是最原始的(raw)數(shù)據(jù)。這些數(shù)據(jù)會(huì)被中央處理器送到適當(dāng)?shù)耐ㄐ艆f(xié)議層,例如:V4L2、RTP/RTCP/RTSP、HTTP、Java應(yīng)用程序……等,之后通過(guò)“回傳信道(return channel)”,例如:以太網(wǎng)絡(luò),將這些數(shù)據(jù)送到因特網(wǎng)上;或送至OSD、音頻DAC,交給LCD和揚(yáng)聲器播放。

          沒(méi)錯(cuò),數(shù)字機(jī)頂盒也具有上述的類似功能。它和LCD TV一樣也都具有“條件訪問(wèn)(CA)”的功能。只不過(guò),LCD TV的屏幕都是內(nèi)建的,而且,一般的數(shù)字機(jī)頂盒只能通過(guò)單一的路徑來(lái)獲取視頻,但是,LCD TV可以通過(guò)4種不同的路徑來(lái)取得視頻,這包含:衛(wèi)星數(shù)字、數(shù)字地面、因特網(wǎng)、有線數(shù)據(jù)網(wǎng)絡(luò)。不過(guò),就交互式電視的軟件而言,數(shù)字機(jī)頂盒和LCD TV的軟件是非常類似的,甚至是一樣的。

          在“設(shè)備驅(qū)動(dòng)程序(device driver)”層,為了能播放數(shù)字電視信號(hào),LCD TV的I/O端口必須要有LCD驅(qū)動(dòng)程序(能夠設(shè)定OSD和Scalar)和音頻驅(qū)動(dòng)程序。為了能將互動(dòng)信息傳送至因特網(wǎng)上,它也需要以太驅(qū)動(dòng)程序和DSL(或纜線)調(diào)制解調(diào)器驅(qū)動(dòng)程序。外部裝置也可以通過(guò)IrDA或I2C、SPI、UART……等接口,將數(shù)據(jù)送給LCD TV處理。此外,接收端的視頻/音頻解碼器的驅(qū)動(dòng)程序也位于這一層。

          有許多工程師不了解LCD TV或數(shù)字機(jī)頂盒的視頻數(shù)據(jù)流(data flow)的行動(dòng)路徑,因此經(jīng)常造成消錯(cuò)上的困擾,尤其是在經(jīng)過(guò)視頻解碼器之后,信號(hào)應(yīng)交給中央處理器處理,而不是其它組件。同理,如果在附圖四中的信號(hào)來(lái)源換成是以太網(wǎng)絡(luò),而不是射頻天線,在經(jīng)過(guò)視頻解碼器解碼之后的信號(hào)仍應(yīng)交給中央處理器。此外,在圖四中,不管是MPEG-2 TS或PS/PES,都可以將它們視為最底層的數(shù)字?jǐn)?shù)據(jù)封包,其地位和角色皆如同以太封包一樣,有別于模擬信號(hào)。

          解碼引擎

          由于視頻、音頻格式的多樣化,使用單一的解碼器已經(jīng)無(wú)法滿足這么多的需求。于是有所謂的“解碼引擎(decode engine)”,它可能是一顆RISC或DSP,負(fù)責(zé)重置、停止、加載和啟動(dòng)固件或“微碼(microcode)”,并處理所有與串流解碼無(wú)關(guān)的工作,例如:輸出聲音。

          每個(gè)解碼引擎內(nèi)部具有數(shù)個(gè)解碼器,負(fù)責(zé)下列的工作:
          1. 開(kāi)啟或關(guān)閉單一串流。
          2. 傳送命令。例如:初始化、解除初始化、播放、暫停、停止等。
          3. 取得目前的狀態(tài)信息。例如:播放中、已暫停等。
          4. 各種串流獨(dú)有的特性。例如:數(shù)據(jù)格式等。

          在這些RISC或DSP內(nèi)部都具有許多個(gè)硬件模塊,而每一個(gè)模塊都具有特定的實(shí)體功能;這些功能通常可以利用緩存器(Register)來(lái)設(shè)定。一般而言,這些RISC或DSP會(huì)包含下列的硬件模塊:
          1. 解多任務(wù)(Demux)引擎:同時(shí)對(duì)視頻和音頻分工。
          2. MPEG引擎:是一個(gè)視頻DSP,內(nèi)含一個(gè)視頻解碼器和一個(gè)“子圖像(Subpicture)解碼器”。
          3. 音頻引擎:是一個(gè)音頻DSP,內(nèi)含兩個(gè)音頻解碼器和一個(gè)混頻器(mixer)。
          4. 中央處理器:CPU核心、DMA、中斷處理單元。

          這些RISC或DSP的軟件模塊是利用硬件模塊來(lái)產(chǎn)生“執(zhí)行緒(task)”。例如下列的軟件模塊:
          1. 系統(tǒng)區(qū)塊:PLL初始化、DRAM設(shè)定……等。
          2. 圖形加速引擎:使用圖形加速命令所控制的FIFO,來(lái)加快處理速度。
          3. 字幕解碼模塊:軟件的字幕解碼單元。
          4. I2C:軟件的I2C接口,為可程序化的輸出入端口(PIO)。
          5. 內(nèi)存管理模塊:DRAM的配置。

          解碼引擎的驅(qū)動(dòng)程序

          圖5 視頻解碼引擎的驅(qū)動(dòng)程序架構(gòu)

          通常,視頻解碼引擎的驅(qū)動(dòng)程序會(huì)包含下列幾個(gè)單元(如附圖五):
          1. 與操作系統(tǒng)和芯片無(wú)關(guān)的應(yīng)用程序接口(API):控制緩存器和DRAM的存取。
          2. 硬件抽象層鏈接庫(kù):與硬件相關(guān),可通過(guò)XML語(yǔ)言來(lái)設(shè)定它,以適應(yīng)特定的芯片。它不包含與操作系統(tǒng)相關(guān)的API,只會(huì)呼叫與操作系統(tǒng)和芯片無(wú)關(guān)的API。
          3. 最少的核心模塊:它在上述1.的上方,負(fù)責(zé)存取緩存器和處理DMA,并且處理OS核心的全部作業(yè),例如:IRQ處理、DMA配置…等。
          4. 核心模塊:它呼叫“最少的核心模塊”,以存取硬件。

          內(nèi)存的配置

          圖6  視頻解碼器的內(nèi)存配置

          內(nèi)存配置是在開(kāi)發(fā)視頻解碼裝置時(shí),必須特別考慮的。圖6是典型的視頻解碼器之內(nèi)存配置;附表一是各種視頻格式在解碼時(shí)所需要的內(nèi)存大小。

          表1  各種視頻格式的內(nèi)存需求

          配置內(nèi)存時(shí),必須避免分割太小和太多。務(wù)必先配置大的、長(zhǎng)時(shí)間使用的緩沖空間(buffer);在進(jìn)行多信道播放時(shí),應(yīng)避免不必要的配置或釋放緩沖空間。(本文選自《零組件》雜志)



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();