基于FPGA 的MPEG-4 編解碼器
您是否曾想在您的 FPGA 設(shè)計(jì)中使用先進(jìn)的視頻壓縮技術(shù),卻發(fā)現(xiàn)實(shí)現(xiàn)起來太過復(fù)雜?現(xiàn)在您無需成為一名視頻專家就能在您的系統(tǒng)中使用視頻壓縮。賽靈思新推出的 MPEG-4" target="_blank">MPEG-4 編碼器/解碼器核可以幫助您滿足視頻壓縮需求。
視頻和多媒體系統(tǒng)正變得日益復(fù)雜,因此能否獲得適用于您的系統(tǒng)的低成本的可靠 IP 核對(duì)您的產(chǎn)品上市極為關(guān)鍵。特別是,視頻壓縮算法與標(biāo)準(zhǔn)已變成極為復(fù)雜的電路,需要花費(fèi)很長時(shí)間來設(shè)計(jì),并且常常成為系統(tǒng)測試和發(fā)貨的瓶頸。這些 MPEG-4 簡易 (simple profile) 編碼器/解碼器核也許正好能滿足您下一個(gè)多媒體系統(tǒng)設(shè)計(jì)的需要。
應(yīng)用
MPEG-4 第 2 部分是下列國際視頻編碼標(biāo)準(zhǔn)系列中最新的標(biāo)準(zhǔn):H.261、MPEG-1、MPEG-2 和 H.263。該標(biāo)準(zhǔn)于 1999 年被 ISO/IEC 批準(zhǔn)作為《國際標(biāo)準(zhǔn) 14 496-2》(MPEG-4 第 2 部分)。MPEG-4 第 2 部分視頻編解碼器為大量多媒體應(yīng)用提供了一個(gè)卓越的基礎(chǔ)。該標(biāo)準(zhǔn)提供了一組特征和等級(jí),可滿足大量不同應(yīng)用要求,如幀尺寸和使用差錯(cuò)恢復(fù)工具。這些應(yīng)用的例子包括廣播、視頻編輯、電話會(huì)議、安全/監(jiān)視、以及消費(fèi)電子應(yīng)用。
MPEG-4 第 2 部分使用的視頻編碼算法是從之前的編碼標(biāo)準(zhǔn)發(fā)展而來。幀數(shù)據(jù)分成 16×16 個(gè)宏塊,每個(gè)宏塊包含 6 個(gè) 8×8 塊,用于 YCbCr 4:2:0 格式化數(shù)據(jù)。采用半像素分辨率對(duì)運(yùn)動(dòng)進(jìn)行估計(jì)可被用來對(duì)來自前一幀的預(yù)測塊進(jìn)行高效編碼,而離散余弦變換 (DCT) 則提供了殘余處理功能,以創(chuàng)建當(dāng)前幀的更詳細(xì)的視圖。簡易壓縮標(biāo)準(zhǔn)提供 12 位分辨率的 DCT 系數(shù),和每個(gè)采樣 8 位的采樣和重建幀數(shù)據(jù)。MPEG-4 簡易編碼的效率在一系列編碼位速率下均優(yōu)于在 MPEG-2 中使用的上一代的編碼效率。
典型的多媒體系統(tǒng)可以使用 MPEG-4 在一個(gè)更大的系統(tǒng)中作為視頻壓縮組件。這種系統(tǒng)的一個(gè)例子就是端到端視頻會(huì)議系統(tǒng),它可以在兩個(gè)或多個(gè)與會(huì)者之間傳送壓縮的位流。這些源的名稱可以改變系統(tǒng)要求,因?yàn)闀?huì)議的主要演講者或出席者可能需要較高分辨率的視頻和音頻。這種類型的系統(tǒng)可以擴(kuò)展至視頻監(jiān)視和安全應(yīng)用,顯示臺(tái)用戶可以決定對(duì)所有視頻相機(jī)使用鑲嵌幕顯示,還是聚集于某個(gè)相機(jī)視圖,以進(jìn)行詳細(xì)的實(shí)時(shí)分析。這些應(yīng)用要求流的選擇在接收器處進(jìn)行,且能夠處理實(shí)時(shí)查看規(guī)范。
FPGA 提供了卓越的可編程并發(fā)處理平臺(tái),可支持各種系統(tǒng)要求,同時(shí)又能滿足系統(tǒng)吞吐率需求。賽靈思® MPEG-4 解碼器核可以使用專門針對(duì)您的應(yīng)用和系統(tǒng)要求而定制的可伸縮的多流接口來構(gòu)建,同時(shí) MPEG-4 編碼器和解碼器還可支持用戶規(guī)定的最大幀尺寸。
圖 1:MPEG-4 第 2 部分簡易編碼器核框圖
圖 2:MPEG-4 第 2 部分簡易解碼器核框圖
體系結(jié)構(gòu)
圖 1 和 2 分別顯示了 MPEG-4 簡易編碼器和解碼器核的框圖。這些設(shè)計(jì)采用了基于硬件的流水線架構(gòu),編碼器上提供了一個(gè)主機(jī)接口,用于實(shí)現(xiàn)軟件控制的速率控制。使用內(nèi)含的存儲(chǔ)器控制器,編碼器的原始捕捉序列和解碼器的重建幀被存儲(chǔ)在片外存儲(chǔ)器中,以便快速、低延遲地存取像素?cái)?shù)據(jù)。它還提供了一個(gè)簡單的 FIFO 接口,用于傳輸壓縮位流,解碼器可根據(jù)用戶指定數(shù)量的位流定制構(gòu)建。它還包含一個(gè)系統(tǒng)接口,以實(shí)現(xiàn)最大的可控制性和可觀測性。
要?jiǎng)?chuàng)建可滿足不同應(yīng)用需求的可伸縮多流設(shè)計(jì),隨核附帶的產(chǎn)品包中包含了大量用戶指定編譯時(shí)參數(shù),從而使您可定制編碼器和解碼器。要?jiǎng)?chuàng)建資源高效的設(shè)計(jì),您還可以設(shè)定最大支持幀的寬度和高度。那么編譯后的設(shè)計(jì)將包含足夠的存儲(chǔ)器和寄存器,以支持低于或等于這兩個(gè)參數(shù)的任意幀尺寸。其它參數(shù)可以讓您對(duì)最終設(shè)計(jì)的伸縮性進(jìn)行完全控制,精心構(gòu)建一個(gè)專用于您的應(yīng)用的系統(tǒng)。
表 1 和表 2 根據(jù)對(duì)最大支持幀尺寸和解碼器輸入位流數(shù)量的不同參數(shù)設(shè)置列出了編碼器和解碼器核的 FPGA 資源。表 1 中的所有編碼器設(shè)計(jì)都使用了 16 個(gè)嵌入式 XtremeDSP™ 切片,而表 2 中的解碼器則使用了 32 個(gè)嵌入式 XtremeDSP 切片。這些設(shè)計(jì)針對(duì) Virtex™-4 元件,這些元件包含大量 18 Kb 塊 SelectRAM™ 存儲(chǔ)器和嵌入式 XtremeDSP 切片。其它兼容 FPGA 系列包括 Virtex-II、Virtex-II Pro 和 Spartan™-3 器件。
請(qǐng)注意,解碼器設(shè)計(jì)可以自動(dòng)根據(jù)要支持的位流數(shù)實(shí)例化輸入 FIFO 數(shù)和支持多路復(fù)用/分用電路。MPEG-4 編碼器可實(shí)現(xiàn)每秒約 48,000 個(gè)宏塊的吞吐率,提供了超過簡易等級(jí) 5 吞吐率規(guī)范的足夠動(dòng)力。同時(shí),MPEG-4 解碼器設(shè)計(jì)可以保持每秒約 168,000 個(gè)宏塊的吞吐率,提供了對(duì)兩個(gè)逐行 SDTV" target="_blank">SDTV(720×480,60 fps)視頻流或 14 個(gè) CIF 分辨率視頻流進(jìn)行解碼的足夠吞吐率。該解碼器吞吐率是等級(jí) 5 簡易編碼器和解碼器核所需吞吐率的四倍以上。
結(jié)論
MPEG-4 簡易編碼器與解碼器核采用獨(dú)有的、可伸縮的、多流功能設(shè)計(jì),以滿足您的特定系統(tǒng)需求。大量的不同應(yīng)用可以在多媒體系統(tǒng)中利用這些核,包括視頻會(huì)議、安全與監(jiān)視、以及您要向世界展示的任何令人激動(dòng)的新消費(fèi)應(yīng)用。
這些視頻設(shè)計(jì)采用了高吞吐率、流水線架構(gòu)以及足夠的可定制參數(shù),以創(chuàng)建專用于您的應(yīng)用的資源高效的設(shè)計(jì)。如需了解更多信息,請(qǐng)?jiān)L問 www.xilinx.com/cn/dsp。
作者對(duì)賽靈思公司的 Robert Turney、Nick Fedele、Adrian Chirila-Rus、Mark Paluszkiewicz 和 Kees Vissers,以及 IMEC 成員所做的貢獻(xiàn)表示感謝。
作者:Paul Schumacher 高級(jí)助理研究工程師 賽靈思公司 paul.schumacher@xilinx.com
Wilson Chung 高級(jí)助理視頻與圖像處理工程師 賽靈思公司 wilson.chung@xilinx.com