H.264解碼器中一種新穎的去塊效應(yīng)濾波器設(shè)計(jì)
(1)查找表操作:取得α,β,c1參數(shù)。α,β參數(shù)均需在查找表操作之前進(jìn)行基于量化參數(shù)與片級(jí)偏移參數(shù)的計(jì)算中使用。當(dāng)Bs=1,2,3時(shí),為獲取c1進(jìn)行LUT操作,該操作比獲取α,β的LUT操作大3倍。
(2)當(dāng)Bs=4時(shí),需用4或5抽頭的濾波器進(jìn)行濾波,原來(lái)的p,q像素值需要進(jìn)行移位、相加等操作,以得到最后的結(jié)果。
3.2 流水線(xiàn)架構(gòu)
基于上述分析,這里提出了5階流水線(xiàn)以提高吞吐量,見(jiàn)圖3。由于整個(gè)任務(wù)被分配到不同的階段實(shí)現(xiàn),降低濾波的平均時(shí)間。本文引用地址:http://www.ex-cimer.com/article/188527.htm
4 階流水線(xiàn)每個(gè)階段的任務(wù)
階流水線(xiàn)每個(gè)階段的任務(wù)為:獲取像素與濾波強(qiáng)度;閾值判斷;預(yù)濾波;二次濾波;回寫(xiě)。操作類(lèi)型轉(zhuǎn)換與可重新配置路徑設(shè)計(jì):首先進(jìn)行操作類(lèi)型的變換,使用加法與移位操作硬件替換了原來(lái)所有的乘法與除法硬件。當(dāng)Bs=4時(shí),濾波被3,4,5抽頭的濾波器執(zhí)行,盡管應(yīng)用不同抽頭數(shù)目的濾波器,仍考慮硬件復(fù)用以及輸入數(shù)據(jù)路徑重新配置。由于設(shè)計(jì)中的表達(dá)式采用兩輸入加法,因而可以公用加法的中間結(jié)果。此外,通過(guò)重新配置在不同濾波抽頭系數(shù)時(shí)的加法器的輸入,達(dá)到共享資源的目的。同理,當(dāng)Bs=1,2,3時(shí),通過(guò)輸入路徑的重新配置,同樣達(dá)到共享加法與減法器,達(dá)到共享資源的目的,資源使用前后對(duì)比見(jiàn)表1。
5 流水線(xiàn)競(jìng)爭(zhēng)與混合濾波順序
5.1 流水線(xiàn)競(jìng)爭(zhēng)的原因
(1)數(shù)據(jù)競(jìng)爭(zhēng):當(dāng)目的結(jié)果需要用作源操作數(shù)時(shí);
(2)結(jié)構(gòu)競(jìng)爭(zhēng):由于有限的存儲(chǔ)器帶寬,大量而頻繁的像素訪(fǎng)問(wèn)需要以及存儲(chǔ)器的低效率管理而引起;
(3)控制競(jìng)爭(zhēng):相鄰邊界的濾波是相對(duì)獨(dú)立的,當(dāng)一條邊界進(jìn)入它的流水線(xiàn)階段時(shí),它不能夠停止,直到它的第5階段新像素值回寫(xiě)存儲(chǔ)器操作結(jié)束??刂聘?jìng)爭(zhēng),由于分支語(yǔ)句或延遲等待引起的。
5.2 一種新穎的混合濾波順序
傳統(tǒng)的設(shè)計(jì)按照H.264/AVC標(biāo)準(zhǔn)使用了基本的順序?yàn)V波,沒(méi)有考慮到相鄰濾波邊界的數(shù)據(jù)重用與數(shù)據(jù)相互依賴(lài)性以及存儲(chǔ)器的讀與寫(xiě)訪(fǎng)問(wèn)延時(shí),因此這里提出了新穎的濾波方法。新穎的濾波順序仍然遵守先左后右,先上后下的原則,但是考慮了相鄰邊界的數(shù)據(jù)依賴(lài)性與重用性,解決了數(shù)據(jù)冒險(xiǎn)與結(jié)構(gòu)冒險(xiǎn)問(wèn)題,避免了流水線(xiàn)的延遲。濾波包括亮度部分與色度部分,共48條邊界,濾波順序按照如圖4所示的從小到大的數(shù)字進(jìn)行。
5.3 新穎的存儲(chǔ)更新策略
考慮到外部存儲(chǔ)器的帶寬是32位的,為了配合這里提出的邊界濾波順序,避免由于存儲(chǔ)器的帶寬限制而引起的結(jié)構(gòu)競(jìng)爭(zhēng)從而導(dǎo)致流水線(xiàn)出現(xiàn)延遲,這里提出了新穎的存儲(chǔ)器更新機(jī)制,即給不同的4×4宏塊分配不同的時(shí)隙進(jìn)行像素回寫(xiě)。
去塊效應(yīng)模塊被分配在整個(gè)解碼模塊的最后一步實(shí)現(xiàn),而其它的重建步驟、像幀內(nèi)濾波模塊、幀間濾波模塊均以4×4宏塊為基本單位來(lái)進(jìn)行流水線(xiàn)處理,但是由于去塊效應(yīng)濾波模塊中不同邊界之間的數(shù)據(jù)依賴(lài)關(guān)系,因而它是以整個(gè)16×16宏塊為基本單位進(jìn)行濾波的。此外,只有整個(gè)16×16宏塊的像素重建完畢之后.才可以進(jìn)行該宏塊的濾波,因而使用了2個(gè)SRAM,一個(gè)為像素重建提供像素;另一個(gè)為像素濾波提供像素,當(dāng)一個(gè)宏塊被處理完畢,兩個(gè)SRAM交換角色,這樣避免在兩個(gè)SRAM之間傳遞數(shù)據(jù)導(dǎo)致的時(shí)間與功耗開(kāi)銷(xiāo)。使用仿真工具對(duì)整個(gè)去塊效應(yīng)頂層模塊DF_top進(jìn)行了仿真,仿真部分結(jié)果如圖5所示。
6 結(jié) 語(yǔ)
使用硬件描述語(yǔ)言完成了設(shè)計(jì),并在FPGA平臺(tái)上得到驗(yàn)證。設(shè)計(jì)采用流水線(xiàn)技術(shù),混合濾波方法,配合新穎的存儲(chǔ)器更新機(jī)制等方案,實(shí)時(shí)濾波頻率上限約為200 MHz,吞吐量為濾波每個(gè)16×16宏塊需要198個(gè)時(shí)鐘周期。使用HJTC,CMOS工藝,使用Syn-opsys Co.的DC工具進(jìn)行綜合,時(shí)序分析以及功耗分析,結(jié)論是時(shí)序滿(mǎn)足收斂要求,并且完成單個(gè)宏塊的濾波消耗的能量大約為2μW,功耗得到了很大的降低。
評(píng)論