當(dāng)今生活的時(shí)代,多媒體通信的出現(xiàn)和流行是大勢(shì)所趨。隨著數(shù)字電視(DTV)、IP視頻傳輸、數(shù)字相機(jī)、無線視頻、醫(yī)療圖像和視頻監(jiān)控等應(yīng)用的興起,目前提供音頻和數(shù)據(jù)服務(wù)的許多系統(tǒng)都會(huì)隨實(shí)時(shí)視頻技術(shù)的應(yīng)用而有不同程度的擴(kuò)展。在最近的技術(shù)發(fā)展表明,芯片邏輯門密度和嵌入式功能的極大提高為多媒體處理設(shè)計(jì)提供了激動(dòng)人心的設(shè)計(jì)可能性。同時(shí),還可以利用可重配置芯片所提供的額外靈活性來提供具有吸引力的解決方案。本文中,我們將考察多媒體系統(tǒng)的要求以及多媒體處理所需要的一些基本構(gòu)建模塊。然后,我們將討論將實(shí)時(shí)視頻應(yīng)用的抽象描述轉(zhuǎn)換為采用FPGA技術(shù)有效實(shí)現(xiàn)的設(shè)計(jì)所需要的設(shè)計(jì)流程。最后,我們將考察新興壓縮標(biāo)準(zhǔn)JPEG2000和MPEG-4的需求。在多媒體處理解決方案領(lǐng)域,F(xiàn)PGA技術(shù)能夠以合適的價(jià)位點(diǎn)提供實(shí)現(xiàn)下一代多媒體算法所需要的帶寬、設(shè)計(jì)工具和芯片,從而滿足多媒體設(shè)計(jì)人員的要求。
多媒體通信
由于新興壓縮和通信技術(shù)的快速應(yīng)用,對(duì)多媒體通信的需求每年都在提高。這些技術(shù)大部分都被ISO、ITU、SMTPTE和IEEE等標(biāo)準(zhǔn)機(jī)構(gòu)所采納。多媒體壓縮對(duì)于有效地使用可用的存儲(chǔ)和帶寬資源非常關(guān)鍵。ISO MPEG和J
PEG工作組和ITU一起開發(fā)了可滿足音頻、視頻和系統(tǒng)壓縮需求的標(biāo)準(zhǔn)。兩個(gè)最近完成的標(biāo)準(zhǔn)JPEG2000 和 AVC (高級(jí)視頻編碼解碼器, MPEG-4 Part 10/H.264)標(biāo)準(zhǔn),提供了前所未有的性能水平,但密集的計(jì)算需求比較有利于FPGA技術(shù),而不是傳統(tǒng)基于處理器的解決方案。
這些壓縮標(biāo)準(zhǔn)致力于滿足范圍廣泛的應(yīng)用領(lǐng)域,并按運(yùn)算的"類"(profile)和"級(jí)"(level)來劃分。類定義了編碼解碼器中所使用的標(biāo)準(zhǔn)算法功能集合。級(jí)則定義了特定類中的參數(shù)選擇集合,如幀大小和速率。這些標(biāo)準(zhǔn)服務(wù)的多樣化市場(chǎng)包括數(shù)字視頻廣播、IP多媒體傳輸、無線多媒體傳輸、視頻監(jiān)控、醫(yī)療圖像和數(shù)碼相機(jī)。這些市場(chǎng)在采集、計(jì)算和顯示方面有著非常不同的要求。
壓縮芯片市場(chǎng)預(yù)計(jì)到2006年時(shí)將從目前的15億美元增長(zhǎng)到28億美元。這一發(fā)展趨勢(shì)與1990年代音頻無線應(yīng)用大變革時(shí)的情況類似。今天的許多系統(tǒng)都提供音頻和數(shù)據(jù)服務(wù),我們?cè)谖闹袑⒖疾煲曨l服務(wù)的興起,以及新帶來的計(jì)算需求挑戰(zhàn)。
多媒體系統(tǒng)的要求
多媒體系統(tǒng)的要求高度依賴于最終應(yīng)用。例如,視頻點(diǎn)播(VOD)對(duì)延遲的要求相對(duì)較高,而視頻會(huì)議則對(duì)延遲有精確的高要求。視頻監(jiān)控在延遲方面的要求則介于在這兩個(gè)極端之間。實(shí)時(shí)多媒體系統(tǒng)可能需要也可能不需要實(shí)時(shí)編碼。MPEG標(biāo)準(zhǔn)的開發(fā)主要著眼于降低解碼器的復(fù)雜性,以提供成本經(jīng)濟(jì)的方案。相對(duì)而言,MPEG編碼器的復(fù)雜程度是MPEG解碼器的10倍左右。不需要實(shí)時(shí)效果的應(yīng)用,如視頻點(diǎn)播可以采用兩步算法進(jìn)行離線編碼以獲得最佳的效果。視頻監(jiān)控和視頻會(huì)議則是需要實(shí)時(shí)編碼的例子。在針對(duì)多媒體壓縮的標(biāo)準(zhǔn)中,解碼器功能規(guī)定了嚴(yán)格的標(biāo)準(zhǔn)兼容性規(guī)則,而編碼器相對(duì)則自由多了。換句話來說,視頻編碼器只要能夠生成符合標(biāo)準(zhǔn)的正確位流就可以,而兼容解碼器則必須能夠解釋標(biāo)準(zhǔn)定義的特定"類"和"級(jí)"中所允許的任何正確位流。
圖像數(shù)據(jù)庫存儲(chǔ)要求與壓縮視頻傳輸?shù)囊蠼^緣不同。ISO JPEG工作組通常以壓縮比率來衡量不同的壓縮方案,而ISO MPEG通常采用固定位速率做為衡量參數(shù)。只要我們談到多媒體通信,這些系統(tǒng)在數(shù)據(jù)傳輸過程中都需要通信信道能夠保證固定的位速率。這導(dǎo)致一個(gè)問題,因?yàn)閴嚎s比率是序列相關(guān)的,因此為了獲得可接受的結(jié)果,必須在質(zhì)量方面有所折衷。很明顯,在編碼器方面如果嚴(yán)格遵循固定位速率生成數(shù)據(jù)位流,那么就會(huì)導(dǎo)致幀之間質(zhì)量的變化,有時(shí)可能會(huì)變得無法接受。這一問題可以通過下面的方法來減輕,在類編碼器的后面指定一個(gè)緩沖存儲(chǔ)區(qū),這樣就可允許編碼器以可變數(shù)據(jù)速率填充緩沖區(qū),而通信信道則可以以固定速率讀取并清空緩沖區(qū)。這意味著多媒體壓縮系統(tǒng)需要存儲(chǔ)器。為了提高或增強(qiáng)質(zhì)量所需要的額外預(yù)處理和后處理也提高了對(duì)存儲(chǔ)器的需求。例如,在MPEG-4編碼器的情況下,典型情況下需要3~10 MB的存儲(chǔ)器,而解碼器只需要1~3 MB。
對(duì)任何系統(tǒng)來說,一個(gè)主要的要求是為達(dá)到實(shí)時(shí)操作而需要的每秒運(yùn)算次數(shù)。對(duì)于多媒體壓縮來說,這確實(shí)是一個(gè)需要量化的具有挑戰(zhàn)性的數(shù)字。由于工作點(diǎn)很多,計(jì)算所需要的MOPS數(shù)值可能很大。圖1 給出了幾個(gè)MPEG-4"類"以及達(dá)到這些工作點(diǎn)所需要的相對(duì)MOPS數(shù)值,其中一級(jí)簡(jiǎn)單類歸一化值為1。一個(gè)分辨率為640x480、每秒30幀的JPLEG2000視頻監(jiān)控應(yīng)用視頻流大約需要4200 MOPS,而分辨率為1024x1024、 每秒 60幀的醫(yī)療圖像無失真碼流在采用JPEG2000標(biāo)準(zhǔn)編碼時(shí)則需要29000 MOPS。利用JPEG200 0標(biāo)準(zhǔn)的4096x2048分辨率24 幀每秒的數(shù)碼相機(jī)需要93000 MOPS。使問題更復(fù)雜的是,在整個(gè)視頻流運(yùn)算過程中,所需要的MOPS數(shù)值并不是固定值,而是依賴于圖像內(nèi)容的。在圖2中我們看到在視頻序列的播放過程中,峰值MOPS數(shù)值是需要確定的關(guān)鍵要求。
圖1 不同MPEG"類"編碼所需要的計(jì)算MOPS要求
對(duì)于多媒體壓縮來說,人們可能會(huì)問,到底哪些功能是計(jì)算密集的呢?信息理論的基礎(chǔ)告訴我們,無損失壓縮就是在信源編碼過程中不影響圖像集的數(shù)值。在現(xiàn)在的多媒體壓縮編碼解碼器中,這是通過可變長(zhǎng)度編碼和算術(shù)編碼實(shí)現(xiàn)的。在圖像本身所提供的信息量之外則進(jìn)入不相干信息處理領(lǐng)域,通常利用運(yùn)算預(yù)測(cè)(Motion Estimation)算法來消除暫時(shí)冗余,通過離散余弦變換(DCT)或離散小波變換(DWT)進(jìn)行能量壓縮,對(duì)視頻流中包含的高頻項(xiàng)進(jìn)行比例壓縮。這兩項(xiàng)都會(huì)影響到解碼序列的質(zhì)量,因?yàn)閷?duì)于有損壓縮來說,理想的圖像重構(gòu)是不可能的。對(duì)于MPEG編碼,MOPS和運(yùn)算圖像預(yù)測(cè)算法以及結(jié)果的質(zhì)量目標(biāo)之間影響很大。運(yùn)算圖像預(yù)測(cè)需要從一個(gè)幀搜索下一個(gè)幀(圖3)以找到空間元素的最小誤差,從而來確定運(yùn)動(dòng) 向量。這一運(yùn)動(dòng)向量加上不同的數(shù)據(jù)被一起編碼,這可大大提高壓縮比、降低位速率。
圖2 MOPS數(shù)值變化
圖 3 暫時(shí)冗余和運(yùn)動(dòng)預(yù)測(cè)
在多媒體系統(tǒng),多媒體接口也扮演了相當(dāng)?shù)慕巧NSI/SMPTE 259M-1997標(biāo)準(zhǔn)規(guī)定了如何通過視頻同軸電纜串行傳輸數(shù)字視頻內(nèi)容。通常稱為SDI的這一標(biāo)準(zhǔn)現(xiàn)在被廣泛用來在電視演播室和視頻生產(chǎn)中心通過原來用于傳輸模擬視頻的視頻同軸電纜來傳輸數(shù)字視頻數(shù)據(jù),數(shù)字音頻被插入數(shù)字視頻流的非活動(dòng)部分。計(jì)算出的錯(cuò)誤檢測(cè)數(shù)據(jù)包(EDH)也被插入視頻數(shù)據(jù)流中。然后,數(shù)字視頻內(nèi)容被編碼、串行化并通過同軸電纜發(fā)送。在接收端,數(shù)據(jù)和時(shí)鐘從串行位流中恢復(fù)出來,位流被解碼、成幀和去串行化。最后,在對(duì)數(shù)字視頻數(shù)據(jù)解碼以前,對(duì)位流進(jìn)行錯(cuò)誤檢測(cè)和分析。
多媒體解決方案
在今天成本敏感的環(huán)境中設(shè)計(jì)多媒體系統(tǒng)是一項(xiàng)頗具挑戰(zhàn)性的任務(wù)。從技術(shù)的觀點(diǎn)來看,芯片邏輯門密度不斷提高可支持更復(fù)雜的算法。更多嵌入式功能也降低了系統(tǒng)設(shè)計(jì)師所面臨的設(shè)計(jì)挑戰(zhàn)。新的芯片集成努力也似乎可將最終設(shè)計(jì)的尺寸降到盡可能小。 要找到一個(gè)合適的解決方案需要理解計(jì)算、存儲(chǔ)器和接口方面存在的各種選擇。
多媒體處理對(duì)計(jì)算性能的要求從數(shù)千MPOS至數(shù)萬MOPS不等。如果我們考察一下可用于完成計(jì)算功能的芯片解決方案,我們可以看到有通用處理器、DSP、媒體處理器、FPGA、SIC和ASSP。集成多媒體擴(kuò)展功能的通用處理器可達(dá)到數(shù)百M(fèi)OPS的性能,當(dāng)應(yīng)用中不需要太強(qiáng)的計(jì)算能力時(shí),通用處理器提供了一個(gè)很好的解決方案。當(dāng)多媒體僅是整個(gè)系統(tǒng)環(huán)境中需要提供的眾多功能中的一項(xiàng)時(shí),通用處理器非常具有吸引力。數(shù)字信號(hào)處理器可提供5000 MOPS左右的性能,應(yīng)用范圍更廣,并且可很好地在嵌入式應(yīng)用中工作。媒體處理器的計(jì)算能力更進(jìn)一步,達(dá)到約2萬MOPS,而很多嵌入式功能專門針對(duì)多媒體處理器而優(yōu)化。此類功能的例子有芯片中做為硬件加速器而集成的嵌入式位處理器和特殊的MPEG功能。FPGA的計(jì)算性能可達(dá)到10萬MOPS,并可處理高速接口。計(jì)算能力的提升源于分布式邏輯、MAC和本地存儲(chǔ)器,可以根據(jù)特殊應(yīng)用高效率地使用這些資源。通過在平臺(tái)FPGA中引入嵌入式處理器(如PowerPC),代碼可編程能力和硬件可編程能力都是可能的。ASIC可達(dá)到數(shù)十萬MOPS的計(jì)算性能,并曾廣泛用于嵌入式應(yīng)用。但是,ASIC也有缺點(diǎn),那就是ASIC需要極高的NRE成本,因此僅適用于大批量應(yīng)用。ASSP專門針對(duì)一種特定應(yīng)用,如果應(yīng)用于其它應(yīng)用中,則通常在質(zhì)量方面會(huì)有所折扣。
多媒體應(yīng)用對(duì)存儲(chǔ)器的需求依據(jù)應(yīng)用不同可能從數(shù)千字節(jié)到數(shù)M字節(jié)。大多數(shù)應(yīng)用都可以按照需要存儲(chǔ)的幀數(shù)來衡量。作為參考,720x480x24位的一幀NTSC數(shù)據(jù)需要341 KB的存儲(chǔ)空間。如果僅需要存儲(chǔ)少量幀的話,片上集成的存儲(chǔ)器大概可以滿足要求。高分辨率720行逐行掃描(1280x720x24)需要900 kb才能存儲(chǔ)一幀數(shù)據(jù),而 1080i (1080x1920x24)的一幀將需要2.025 MB的存儲(chǔ)空間。大體上,一旦達(dá)到數(shù)兆字節(jié)的存儲(chǔ)量,那么就需要外部存儲(chǔ)器了。目前,外部存儲(chǔ)器的流行選擇是同步DRAM和ZBT存儲(chǔ)器。ZBT存儲(chǔ)器的優(yōu)點(diǎn)是可交叉訪問、存儲(chǔ)器控制器簡(jiǎn)單,但容量較小,只有2~8MB,而且相應(yīng)地,其成本也比DRAM要高。同步DRAM在讀寫間切換時(shí)有延遲,需要更復(fù)雜的存儲(chǔ)器控制器。其容量為32~128MB,有雙倍和四倍數(shù)據(jù)速率的產(chǎn)品型號(hào),可以提高連續(xù)數(shù)據(jù)猝發(fā)讀取時(shí)的存儲(chǔ)器帶寬。
多媒體應(yīng)用設(shè)計(jì)工具
芯片邏輯門密 度的提高對(duì)于設(shè)計(jì)工具行業(yè)提出了困難的挑戰(zhàn)。隨著100萬門的設(shè)計(jì)非常普通,而1000門的設(shè)計(jì)也已達(dá)到,工程師如何應(yīng)付設(shè)計(jì)單塊芯片上的一億邏輯門系統(tǒng)這些樣的設(shè)計(jì)復(fù)雜性?對(duì)于通用處理器和數(shù)字信號(hào)處理器來說,軟件編程環(huán)境為設(shè)計(jì)人員提供了一個(gè)很好的環(huán)境,幫助他們利用所提供的計(jì)算能力。對(duì)于多媒體系統(tǒng),問題變得更為復(fù)雜,因?yàn)榫彺娉叽缱兊酶?,而且還要滿足更強(qiáng)的實(shí)時(shí)處理要求。我們期望多媒體擴(kuò)展處理能力變得更為普遍,從而使設(shè)計(jì)人員從實(shí)現(xiàn)實(shí)時(shí)處理目標(biāo)所需要的細(xì)節(jié)中解脫出來。額外的IP庫對(duì)于減輕與設(shè)計(jì)復(fù)雜性相關(guān)的問題也扮演了一個(gè)關(guān)鍵的角色。媒體處理器的嵌入式功能在通用編程環(huán)境中的使用稍微困難一些。FPGA和ASIC的吸引力在于其計(jì)算能力提升了數(shù)個(gè)量級(jí),這要?dú)w功于其并行機(jī)制。充分發(fā)揮其計(jì)算能力的關(guān)鍵在于能否擁有一個(gè)高效率的編程環(huán)境。C語言和邏輯設(shè)計(jì)工具的最新發(fā)展,以及幾家供應(yīng)商新發(fā)布的工具承諾在明年可解決這一問題。
在開發(fā)新的編碼解碼器時(shí),C編程環(huán)境對(duì)于標(biāo)準(zhǔn)的應(yīng)用是一個(gè)關(guān)鍵的出發(fā)點(diǎn)。在開發(fā)AVC編碼解碼器的過程中,參考軟件為開發(fā)人員提供了解釋編碼解碼器中每種技術(shù)相對(duì)參數(shù)的參照標(biāo)準(zhǔn)和方法。當(dāng)一
種標(biāo)準(zhǔn)被接受時(shí),這一參考軟件扮演了一個(gè)有用的角色,可以為設(shè)計(jì)人員提供一個(gè)參考點(diǎn)。這意味著,通常設(shè)計(jì)的起點(diǎn)就是從理解參考軟件以及相應(yīng)的復(fù)雜性瓶頸開始的。特征描述工具也開始出現(xiàn),這些工具可快速揭示出存儲(chǔ)帶寬和計(jì)算問題。
我們也看到,市場(chǎng)上也開始出現(xiàn)了針對(duì)特定領(lǐng)域應(yīng)用的專用工具,它們可以提高多媒體系統(tǒng)設(shè)計(jì)的抽象水平。Mathworks 提供了一個(gè)大多數(shù)DSP設(shè)計(jì)人員非常熟悉的算法探索/開發(fā)環(huán)境。Xilinx System Generator for DSP就基于這一框架,提供了一種探索/研究算法、進(jìn)行行為仿真并生成最終FPGA設(shè)計(jì)的方法。圖4示意出了在Xilinx System Generator for DSP表達(dá)的一個(gè)邊沿檢測(cè)系統(tǒng)。這一仿真框架還可提供在仿真循環(huán)過程中通過硬件來加快仿真速度的可能。在針對(duì)特定領(lǐng)域的工具方面,更高層次的抽象使得更容易跟上芯片邏輯門密度增長(zhǎng)的步伐。
結(jié)論
在本文中,我們討論了多媒體通信以及目前多媒體行業(yè)所面臨的問題。同時(shí)也討論了多媒體系統(tǒng)的要求和處理需求,并探討了可用來滿足這些要求的器件。最后,我們指出多媒體設(shè)計(jì)工具需要不斷提高抽象水平,才能為高效率地使用數(shù)百萬系統(tǒng)門的芯片資源提供支持。
圖4 Xilinx System Generator for DSP