隨著(zhù)社會(huì )信息量的增大,人們對多媒體視頻壓縮的要求越來(lái)越高,“高壓縮、低比特速率”的高清視頻壓縮已廣泛應用于家用電器、醫療設備、軍事偵察、衛星遙感等領(lǐng)域。ADI公司最新推出的ADV212是一款具有實(shí)時(shí)壓縮/解壓縮標準(SD)視頻信號和高清晰度(HDTV)視頻信號功能的器件,具有可靠性好、配置靈活、支持視頻格式多樣等優(yōu)點(diǎn),適用于多種視頻格式的數據處理。本文介紹了基于A(yíng)DV212高清視頻壓縮系統的設計方案,該系統可支持SMPTE274M(1080i)視頻實(shí)時(shí)編碼。 1 ADV212的編解碼原理 圖l所示為ADV212的功能圖,主要由像素接口、小波變換引擎、熵編/解碼器、嵌入式RISC處理器、存儲器系統和內外部DMA等組成。操作的基本流程是視頻或像素數據通過(guò)ADV212像素接口輸入,有效采樣值則經(jīng)過(guò)隔行掃描傳輸到小波變換引擎中(小波變換引擎,可以對碼塊進(jìn)行高達6級的小波分解)。進(jìn)入小波變換引擎的數據被分瓦片或幀,每個(gè)瓦片或幀將通過(guò)5/3定點(diǎn)運算或9/7浮點(diǎn)運算濾波器分解成許多子帶,并生成相對應的小波系數,然后寫(xiě)入內部寄存器中。3個(gè)熵編/解碼器用來(lái)對小波系數的編碼塊進(jìn)行背景建模和算術(shù)編碼,并在壓縮過(guò)程中計算最佳速率和失真度。熵編碼形成的JPEG2000標準的數據碼流被存入代碼FIFO中。代碼FIFO主要緩沖內部高速總線(xiàn)和低速主機接口。碼流數據可通過(guò)共用的讀寫(xiě)存取協(xié)議( ,ADDR)從主機接口輸出,或者通過(guò)DREQ/DACK協(xié)議由外部DMA控制器協(xié)調下的外部DMA引擎輸出。內部DMA引擎完成存儲器之間以及各模塊和存儲器之間的高帶寬、高性能傳輸。RISC處理器具有每一個(gè)程序和數據存儲器、中斷控制器、標準總線(xiàn)接口及定時(shí)器計數器所對應的ROM和RAM。 2 統硬件設計 本方案作為實(shí)現高清視頻數據壓縮系統,首先從系統實(shí)現功能和性?xún)r(jià)比上考慮,采用FPGA+ADV212來(lái)實(shí)現。 視頻解碼器選。阂曨l解碼器選用ADV7402型高清視頻解碼器。它采用10位ADC,12個(gè)模擬輸入,支持標清(480i,NTSC,PAL,SECAM)、高清(1080i,720p)和圖形RGB輸入(1 280xl 024@60 Hz),可以實(shí)現與ADV212無(wú)縫連接。 ADV212片數選。1個(gè)10 bit的高清晰度(HDTV)視頻信號,輸入數據傳輸率大約為124 Ms/s,而ADV212像素接口輸入速率限制,在不可逆模式下為65 MS/s,可逆模式下為32 MS/s。這就要求系統至少要由2片ADV212組成,本系統選擇2片ADV212壓縮器件,YCbCr數據采取在4:2:2格式,分別完成亮度(Y)和色度(CbCr)的數據壓縮處理,輸入數據使用是EAV/SAV編碼格式。圖2所示為系統結構框圖,本方案包括視頻采集解碼模塊、視頻圖像JEPG200壓縮模塊、壓縮合并模塊、邏輯控制模塊和通信輸出模塊。 FPGA選。哼x用Altera公司的CycloneIII系列EP3C55F484C8器件,其具有328個(gè)用戶(hù)I/O,55 856個(gè)可用邏輯元,312個(gè)嵌入式乘法器單元和4個(gè)鎖相環(huán),可輕松實(shí)現ADV212初始化及壓縮數據捕獲和亮度壓縮數據與色度壓縮數據的合并等功能。 3 ADV212器件初始化流程和參數配置 3.1 ADV212初始化流程 ADV212初始化程序依據特定的指令命令配置ADV212內部直接寄存器和間接寄存器來(lái)完成。圖3所示為ADV212編碼初始化流程,初始化程序從PLL寄存器、BOOT寄存器、MMODE寄存器和BUSMODE寄存器等直接寄存器的接入開(kāi)始,訪(fǎng)問(wèn)直接寄存器時(shí)目標系統必須保持輸入管腳ADDR, ,和HDATA(寫(xiě))的狀態(tài)。當裝載完固件和配置參數后,軟件重啟,然后再次配置BUSMODE和MMODE寄存器和應用特殊寄存器。下一步,要確定正確的固件被應用ID裝載。正確的固件裝載能被EIRQFLG寄存器的中斷或投票程序證實(shí)。當你確定固件連接裝載和EIRQFLG寄存器清零后。編碼開(kāi)始。 3.2 ADV212參數配置 時(shí)鐘配置:高清視頻1080i要求VCLK為74.25 MHz。根據ADV212的數據表,JCLK必須至少為2VCLK,因此最大的脈沖頻率推薦為0.35J-CLK,這接近50 MHz,這是最大的讀寫(xiě)脈沖頻率。 總線(xiàn)及DMA配置:HDTV(1080i)應用時(shí),2個(gè)ADV212必須工作在不可逆最大傳輸率為65 MS/s模式,視頻輸入采取32位VDATA總線(xiàn)(像素接口),壓縮數據輸出采取2個(gè)ADV212共享32位HDATA總線(xiàn)(主機接口)。初始化ADV212選擇屬性類(lèi)型5(ATTRTYPE),屬性數據讀取采用單一傳輸的DREQ/DACK DMA模式,碼流讀取采取脈沖傳輸DREQ/DACK DMA模式。 如圖3所示。根據ADV212的直接寄存器配置,設定ADV212內部時(shí)鐘、總線(xiàn)模式、間接寄存器訪(fǎng)問(wèn)模式等。ADV212_l和ADV212_2初始化流程說(shuō)明如下:PLL_HIOx008h、PLL_HO,0x0084:設置VCLK為74.25 MHz;BOOT:0x008A引導模式用來(lái)那上否裝載;BUSMODE:0x000A設置主機控制數據寬度和DMA數據寬度為32位;MMODE:0x000A設置間接數據存取位數和間接地址步長(cháng)大小為32位;IADDR:Ox00050000設置程序存儲的起始點(diǎn);IDATA:0x********在程序存儲器裝載程序;BOOT Ox008D軟件重啟;BUSMODE0x000A重新設置主機控制數據寬度和DMA數據寬度為32位:MMODE 0x000A重新設置間接數據存取位數和間接地址步長(cháng)大小為32位。ADV212的參數根據IADDR和IDATA設置,參數配置說(shuō)明如下:IADDR 0x00057F00 ADV212_1和ADV212_2的編碼參數起始地址;IDATA 0x02010503(ADV212_1)、0x03010503(ADV212_2)02=1080i亮度(03=1080i色度);0l=10位精度;05=5級小波變換;03=Y,C單級;IDATA 0x03000000 03=碼塊大小為128x32;00=不可逆9x7小波;00=跳過(guò)無(wú)字節區域;00=無(wú)屬性數據輸出;IDATA0x01019500(ADV212_1)、0x01008700(ADV212_2) Ol=目標視頻域,幀大;019500=10:1壓縮率(008700=30:1壓縮率);IDATA 0x00000001 00=LRCP級數格式;00=EAV.SAV編碼,所有陰極同步;00=Qfaetor是1X;01=編碼格式是.j2c;IDATA0x00000000保存參數。 上述配置好以后,ADV212_1和ADV212_2的EIRQFLG(地址Ox6h)寫(xiě)入0x0400去清除軟件中斷(SEIRQ0)并開(kāi)始程序,當DREQ0變?yōu)橛行,ADV2-12準備從CODE FIFO傳輸數據,主機按照ADV212特定時(shí)序說(shuō)明開(kāi)始數據傳輸。 4 FPGA結構功能 圖4為FPGA內部邏輯組成,FPGA主要由以下功能模塊組成:1)主機邏輯,基于Nios的嵌入式主機邏輯模塊,主要實(shí)現2片ADV212的讀寫(xiě)操作,實(shí)現對ADV212的初始化和固件下載;2)ADV212仲裁邏輯,實(shí)現2片ADV212壓縮數據同步,應答總線(xiàn)判斷狀態(tài)的應答信號功能;3)Y/C合并邏輯,該部分根據讀出的屬性和代碼信息,實(shí)現亮度壓縮數據與色度壓縮數據的合并功能;4)數據緩沖控制模塊,緩沖外部DMA通道讀取速率和亮度/色度合并邏輯模塊間的數據流。 在FPGA主控模塊中,要確保ADV212加載了正確的固件,通過(guò)4個(gè)步驟來(lái)實(shí)現:第1步是向外部中斷使能寄存器中寫(xiě)入0x0400來(lái)屏蔽軟件中斷0位:第2步等待到中斷引腳IRQ被拉低,第3步檢查外部中斷標記寄存器的EIRQFlLG[10]位是否被設置,第4步從軟件標記寄存器中讀應用標識,如果讀到的是0XFF82,則說(shuō)明固件加載正確,系統可以開(kāi)始工作。 系統開(kāi)始工作時(shí),FPGA在仲裁,控制模塊中將從ADV212屬性FIFO中讀取的分區字節數信息進(jìn)行分析判斷,數據緩沖控制模塊將ADV212代碼FIFO中讀到的壓縮數據進(jìn)行寄存。仲裁/控制模塊分析結果來(lái)控制亮度/色度合并邏輯模塊,碼流從Y數據開(kāi)始從兩個(gè)器件相對部分(Y和CbCr)交錯合并,輸出到緩沖器再由通信端口輸出。 5 結束語(yǔ) 基于FPGA+ADV212結構的高清視頻壓縮系統可實(shí)現高清視頻(YCbCr 4:2:2格式)信號的實(shí)時(shí)處理,本系統具有性?xún)r(jià)比高、可靠性好、調整靈活、壓縮信號易恢復等優(yōu)點(diǎn)。但本系統采用的是不可逆9/7小波變換,視頻處理具有一定的失真,為獲取1080i視頻信號具有更好的特性(如無(wú)損壓縮),建議用3片或3片以上的ADV212來(lái)處理信號,信號格式可采取YCbCr 4:4:4格式。隨著(zhù)JPEG2000的廣泛應用,專(zhuān)用圖像壓縮器件ADV212必將被越來(lái)越多地應用到視頻和圖像壓縮方面的領(lǐng)域中。 |