利用可編程邏輯實(shí)現(xiàn)靈活高效的多媒體信號(hào)處理
從非常簡(jiǎn)單的消費(fèi)類(lèi)音/視頻播放器到在專(zhuān)業(yè)制作環(huán)境中使用的高度復(fù)雜的音視頻捕捉、編輯和回放系統(tǒng),多媒體設(shè)備或系統(tǒng)的應(yīng)用范圍非常廣泛。人們?cè)趯?shí)現(xiàn)這類(lèi)應(yīng)用系統(tǒng)時(shí)會(huì)使用特殊應(yīng)用標(biāo)準(zhǔn)產(chǎn)品(ASSP)、專(zhuān)用數(shù)字信號(hào)處理器(DSP)、RSIC處理器和可編程邏輯等多種類(lèi)型的技術(shù)。這些技術(shù)有各自的獨(dú)特優(yōu)勢(shì)和局限性。
可編程邏輯的好處是靈活性高,易于擴(kuò)展,可以采用可重配置技術(shù)進(jìn)行多媒體信號(hào)處理。由可編程邏輯構(gòu)成的典型模塊有乘法器、存儲(chǔ)器、協(xié)議接口和時(shí)鐘電路(如PLL)。這些模塊具有可擴(kuò)展性,能夠適應(yīng)從簡(jiǎn)單到復(fù)雜的各種多媒體處理系統(tǒng)。把繁重的計(jì)算工作交給FPGA協(xié)處理器,由一個(gè)DSP器件和一個(gè)FPGA(而不是多達(dá)8-10個(gè)DSP器件)構(gòu)成的FPGA高清方案具有更高的性?xún)r(jià)比。
視頻和嵌入式DSP模塊
創(chuàng)新的消費(fèi)類(lèi)需求,如1080p高清電視、多媒體家庭網(wǎng)關(guān)、高帶寬效率的機(jī)頂盒解碼器,一直在推動(dòng)視頻和圖像處理應(yīng)用快速向前發(fā)展。低成本FPGA(如Cyclone III系列)的優(yōu)點(diǎn)是能以ASIC的價(jià)格提供DSP性能、高度靈活性和更快的上市速度。Cyclone III系列中成本最低的是EP3C5器件,它擁有的嵌入式乘法器和邏輯資源足以在HDTV 1080p視頻應(yīng)用中完成實(shí)時(shí)7x7像素濾波功能。面向更高端產(chǎn)品的Stratix III FPGA中所包含的DSP模塊可以提供600MHz以上性能的18x18乘法器。Stratix III DSP模塊還能以9x9、36x36和新的12x12模式支持可變比特寬度。該DSP模塊可以為每個(gè)18x18乘法器提供兩個(gè)9x9或一個(gè)半12x12乘法器。如圖1所示,級(jí)聯(lián)模式可以把一個(gè)DSP模塊的輸入傳送到下一級(jí),進(jìn)而實(shí)現(xiàn)更為卓越的整體性能。Stratix III FPGA的邏輯和存儲(chǔ)器結(jié)構(gòu)還針對(duì)DSP應(yīng)用進(jìn)行了優(yōu)化,可以用MLAB模塊構(gòu)成抽頭延遲線,用ALM(自適應(yīng)邏輯模塊)中的快速3輸入加法器構(gòu)成高效快速的加法器樹(shù)。
圖1:采用級(jí)聯(lián)模式的Stratix III DSP模塊。
隨著圖像捕捉、顯示器分辯率、高級(jí)壓縮技術(shù)和視頻智能方面不斷取得重大進(jìn)展,視頻應(yīng)用所要求的處理帶寬也在不斷增長(zhǎng)。而標(biāo)準(zhǔn)的快速變化和更高的分辨率也促使設(shè)計(jì)者遠(yuǎn)離現(xiàn)成技術(shù)。用可編程邏輯實(shí)現(xiàn)的模塊化可編程視頻和圖像處理方案具有性能高、靈活、升級(jí)方便、開(kāi)發(fā)成本低等優(yōu)點(diǎn),當(dāng)產(chǎn)品成熟和生產(chǎn)批量攀升時(shí),可編程邏輯還可提供轉(zhuǎn)移到更低成本的途徑。
FPGA內(nèi)部的嵌入式數(shù)字信號(hào)處理知識(shí)產(chǎn)權(quán)(IP)可以作為單獨(dú)的系統(tǒng)方案,也可以與標(biāo)準(zhǔn)的數(shù)字信號(hào)處理器一起作為協(xié)處理器使用。與標(biāo)準(zhǔn)的數(shù)字信號(hào)處理器相比,F(xiàn)PGA的主要優(yōu)點(diǎn)是內(nèi)建有高水平的并行處理機(jī)制,如圖2所示。而專(zhuān)用的RISC處理器無(wú)法滿足許多視頻和成像應(yīng)用的所有處理要求。
圖2:DSP和FPGA并行處理方案的對(duì)比。
由于可以把繁重的計(jì)算任務(wù)交給FPGA協(xié)處理器來(lái)完成,F(xiàn)PGA方案改善了性?xún)r(jià)比,見(jiàn)圖3。例如,同使用多達(dá)8個(gè)到10個(gè)DSP器件的方案相比,用一個(gè)DSP器件和一個(gè)FPGA實(shí)現(xiàn)的高清方案成本效益更高。ASSP無(wú)力支持快速改變和不斷發(fā)展的視頻和成像標(biāo)準(zhǔn)。由于可以方便地通過(guò)升級(jí)來(lái)支持更高的分辨率和最新引入的視頻標(biāo)準(zhǔn),F(xiàn)PGA可以用作視頻方案的通用平臺(tái)。
圖3:DSP與用作協(xié)處理器的FPGA一起使用。
FPGA的可重新編程能力也消除了設(shè)計(jì)過(guò)時(shí)的風(fēng)險(xiǎn)。ASIC需要較長(zhǎng)的開(kāi)發(fā)時(shí)間,基于ASIC的方案不能像FPGA方案那樣方便高效地進(jìn)行修改。FPGA縮短了上市時(shí)間,消除了NRE(非重復(fù)工程)成本,可以通過(guò)實(shí)時(shí)改進(jìn)來(lái)支持新興的標(biāo)準(zhǔn)、新的功能要求或?qū)Ω?jìng)爭(zhēng)者發(fā)布的新功能做出回應(yīng)。
一個(gè)常見(jiàn)的設(shè)計(jì)挑戰(zhàn)是視頻分配通道受到帶寬限制。如果利用不同的視頻壓縮算法限制數(shù)字域中的可用帶寬,那么在顯示經(jīng)過(guò)解碼的數(shù)據(jù)流時(shí)將有不同的表現(xiàn)方式。如果提高視頻壓縮器的壓縮比,模塊式CODEC的離散余弦變換將產(chǎn)生馬賽克噪聲或干擾。使用FPGA對(duì)視頻數(shù)據(jù)實(shí)現(xiàn)預(yù)壓縮和后壓縮可使編碼器更容易實(shí)現(xiàn)視頻壓縮,并可進(jìn)一步改進(jìn)圖像質(zhì)量,降低傳輸帶寬要求。對(duì)于有線、衛(wèi)星、電信和IPTV廣播業(yè)務(wù)模型來(lái)說(shuō),由于必須在狹窄的帶寬條件下滿足高質(zhì)量要求,這種功能的意義更為重大。
預(yù)處理可在視頻數(shù)據(jù)進(jìn)入編碼器之前用2D濾波平滑掉一些高頻成分,從而降低馬賽克噪聲。2D FIR濾波器和中值濾波器功能可以利用3x3、5x5或7x7恒定系數(shù)矩陣提供靈活和高效的2D FIR濾波實(shí)現(xiàn)方式。
可編程嵌入式處理器
大部分多媒體產(chǎn)品不僅需要進(jìn)行信號(hào)處理,而且需要使用某種類(lèi)型的微控制器或處理器來(lái)完成指令和控制功能或其它日常任務(wù)。對(duì)于從最小的消費(fèi)產(chǎn)品到最大的專(zhuān)業(yè)視頻產(chǎn)品的各類(lèi)多媒體系統(tǒng),基于FPGA的嵌入式處理器(如Nios II)向設(shè)計(jì)者提供了靈活地定制各種要求的能力。多媒體系統(tǒng)開(kāi)發(fā)者面臨的一個(gè)重大挑戰(zhàn)是選擇合適的(既不降低性能也不減少功能的)處理器。至今有眾多供應(yīng)商提供了數(shù)百種型號(hào)的處理器,其外圍設(shè)備、存儲(chǔ)器接口和性能特性也各不相同。
FPGA嵌入式處理器可以降低BOM和PCB版圖成本。在需要多個(gè)處理器的情況,開(kāi)發(fā)工具將允許用戶創(chuàng)建多處理器系統(tǒng),進(jìn)而提升系統(tǒng)的性能或把軟件應(yīng)用分成更簡(jiǎn)單的任務(wù)??梢葬槍?duì)最大系統(tǒng)性能或最小邏輯使用率對(duì)Nios II內(nèi)核進(jìn)行優(yōu)化,或者在系統(tǒng)性能和邏輯使用率之間取得平衡。該內(nèi)核可以方便地通過(guò)配置實(shí)現(xiàn)乘法器、用戶設(shè)定的高速緩存、定制指令、硬件調(diào)試邏輯等特性以適應(yīng)特殊的性能需求。
Nios II嵌入式設(shè)計(jì)套件(EDS)支持創(chuàng)建定制的多內(nèi)核系統(tǒng)。Nios II處理器與超高密度的FPGA(如Stratix III器件系列產(chǎn)品)相結(jié)合可以創(chuàng)建出非常理想的高性能多處理器應(yīng)用系統(tǒng)。Nios II的典型應(yīng)用如圖4所示。
圖4:NIOS II嵌入式處理器的典型系統(tǒng)應(yīng)用。
嵌入式存儲(chǔ)器和外部存儲(chǔ)器接口
存儲(chǔ)器是所有視頻處理應(yīng)用(如視頻壓縮編碼、2D濾波和縮放)都需要的關(guān)鍵構(gòu)建模塊之一?,F(xiàn)在,由于FPGA提供了眾多的內(nèi)部專(zhuān)用存儲(chǔ)器模塊,因此一個(gè)FPGA就可以實(shí)現(xiàn)完整的多媒體系統(tǒng)。這些內(nèi)部存儲(chǔ)器模塊包括RAM、ROM、FIFO、雙端口存儲(chǔ)器和移位寄存器。大多數(shù)系統(tǒng)通常需要使用存儲(chǔ)器來(lái)滿足各種復(fù)雜功能(如通訊、數(shù)字信號(hào)處理、電子數(shù)據(jù)處理和控制應(yīng)用)所需要的不同存儲(chǔ)需求。
Stratix器件中包含的TriMatrix存儲(chǔ)器架構(gòu)提供了多種不同的存儲(chǔ)器結(jié)構(gòu),可以實(shí)現(xiàn)復(fù)雜設(shè)計(jì)中的各種存儲(chǔ)器功能。在存儲(chǔ)器帶寬不夠充裕時(shí),設(shè)計(jì)師可以使用較小的M512 RAM模塊實(shí)現(xiàn)先入先出(FIFO)和時(shí)鐘域緩存功能。M-RAM模塊可以使FPGA滿足大型緩存應(yīng)用(如知識(shí)產(chǎn)權(quán)包緩存和系統(tǒng)高速緩存)的需求。M4K模塊非常適合為消費(fèi)多媒體應(yīng)用(如數(shù)字電視視頻增強(qiáng))提供中等規(guī)模的存儲(chǔ)器應(yīng)用。另外,Stratix器件也支持DDR2和DDR3 SDRAM及RLDRAM等多種類(lèi)型的外部存儲(chǔ)器。
高速接口
帶有內(nèi)建高速差分接口(如LVDS、RSDS、mini-LVDS和PPDS)的FPGA可直接連接到平板LCD或等離子顯示器。典型的平板顯示器通常會(huì)聯(lián)合運(yùn)用可編程器件和ASSP在把圖像提供給顯示器之前進(jìn)行視頻質(zhì)量增強(qiáng)。
圖5顯示了一個(gè)用FPGA實(shí)現(xiàn)視頻處理和顯示屏接口的完整LCD模塊。除了差分接口之外,高端FPGA還帶有其它高速串行接口收發(fā)器。對(duì)于專(zhuān)業(yè)視頻應(yīng)用,串行接口可以是SDI、ASI、PCI Express或Serial Rapid IO。
圖5:使用Cyclone III FPGA的典型LCD模塊。
設(shè)計(jì)工具
Quartus II軟件等設(shè)計(jì)入門(mén)工具是完成高密度和低成本FPGA設(shè)計(jì)的最快和最高效途徑。它提供了時(shí)序分析、功率分析、增量編譯、用于IO分配的引腳規(guī)劃器和TcL腳本接口。DSP Builder等專(zhuān)用視頻處理工具則可以進(jìn)一步提高用戶的設(shè)計(jì)效率。DSP Builder是一種數(shù)字信號(hào)處理開(kāi)發(fā)工具,它在設(shè)計(jì)入門(mén)工具Quartus II和MathWorks公司的MATLAB/Simulink之間架起了連接橋梁。
本文小結(jié)
從低成本系列(如Cyclone)到高端Stratix系列的可編程邏輯器件可用于實(shí)現(xiàn)各類(lèi)音視頻產(chǎn)品。內(nèi)建的DSP和存儲(chǔ)器模塊提供了完成這些任務(wù)所需要的基本單元。Quartus II、SOPC Builder和DSP Builder等用戶友好的設(shè)計(jì)工具大大提高了工程設(shè)計(jì)的效率。圖6給出了FPGA的一個(gè)數(shù)字電視應(yīng)用,其中的FPGA包含有嵌入式處理器、存儲(chǔ)器接口、視頻圖像處理、圖像縮放以及用于平板顯示器(FPD)的屏顯(OSD)和時(shí)序控制器(TCON)功能。
圖6:典型的數(shù)字電視框圖。