新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于H.264解碼器的軟件優(yōu)化

基于H.264解碼器的軟件優(yōu)化

作者: 時(shí)間:2010-08-11 來源:網(wǎng)絡(luò) 收藏
1 引言

是在ITU-T和ISO/IEC等組織先前制定的編碼標(biāo)準(zhǔn)的基礎(chǔ)上提出的,它與現(xiàn)今國際上大多數(shù)的視頻壓縮標(biāo)準(zhǔn)一樣,例如、H.263、MPEG-2、MPEG-4都是采用塊的離散余弦變換與量化相結(jié)合的混合編碼技術(shù)。分塊的離散余弦變換具有壓縮率高,計(jì)算復(fù)雜度低。易于實(shí)現(xiàn)等優(yōu)點(diǎn)。具有以下特點(diǎn):比H.263+和MPEG-4(SP)減小50%碼率;對(duì)信道時(shí)延的適應(yīng)性較強(qiáng);提高差錯(cuò)恢復(fù)能力;復(fù)雜度可分級(jí)設(shè)計(jì),以適應(yīng)不同復(fù)雜度的應(yīng)用;引入先進(jìn)技術(shù),包括4×4整數(shù)變換、空域內(nèi)的幀內(nèi)預(yù)測、1/4像素精度的運(yùn)動(dòng)估計(jì)新技術(shù)帶來較高的編碼比,同時(shí)大大提高算法的復(fù)雜度。因此,H.264技術(shù)已廣泛應(yīng)用于高清視頻的編解碼設(shè)備。

視頻解碼算法的熵解碼、反量化、反變換、幀內(nèi)預(yù)測、幀間亮度插值、幀間色度插值以及去方塊濾波等稱為核心模塊,減少這些核心模塊的等待時(shí)間對(duì)加快的工作具有重要意義。本文在DSP-BF533平臺(tái)上,利用流水的思想,針對(duì)模塊間協(xié)同工作提出一種新型的設(shè)計(jì)方案。

2 H.264原理

H.264編碼器結(jié)構(gòu)系統(tǒng)由以下幾部分組成:網(wǎng)絡(luò)數(shù)據(jù)提取層(NAL)、VAL緩存器、熵解碼、反掃描反量化反變換、幀間預(yù)測、幀內(nèi)預(yù)測、圖像參考幀緩存器、去方塊濾波,如圖1所示。首先從碼流中獲取NAL單元數(shù)據(jù),通過RBSP解析出序列參數(shù)集、圖像參數(shù)集和圖像數(shù)據(jù)。把數(shù)據(jù)和參數(shù)存儲(chǔ)在VCL緩存器中,然后再在視頻編碼層(VCL Table)中熵解碼。熵解碼模塊(VLD)解析所有參數(shù)和參考圖像索引等,提供各種控制信息和殘差數(shù)據(jù)。通過反量化反變化先將一維數(shù)據(jù)轉(zhuǎn)換成二維數(shù)組或矩陣,再通過逆掃描過程將變換系數(shù)量化值序列映射到對(duì)應(yīng)坐標(biāo),主要有逆zig_zag掃描和逆場掃描兩種模式。之后讀取數(shù)據(jù)讀取并進(jìn)行判斷、幀內(nèi)預(yù)測和幀間預(yù)測,再綜合所有預(yù)測和反變換反量化的數(shù)據(jù),最后進(jìn)行方塊濾波,這樣能夠大大減輕因預(yù)測、量化而產(chǎn)生的塊效應(yīng),從而獲得更好的主觀圖像質(zhì)量和客觀性能。同時(shí)還可選取已恢復(fù)的圖像作為后續(xù)處理圖像的參考幀。


3 DSP-BF533的設(shè)計(jì)與

3.1 解碼器設(shè)計(jì)框圖

根據(jù)DSP-BF533的內(nèi)含存儲(chǔ)器控制器(DMA)的特點(diǎn),設(shè)計(jì)一個(gè)整合DMA的解碼流程,如圖2所示。把兩個(gè)與DMA有關(guān)的步驟添加到普通解碼器中,步驟1是從片外存儲(chǔ)器中讀取數(shù)據(jù);步驟2是將已處理好的數(shù)據(jù)輸出到片外存儲(chǔ)器。

從圖2中可看到具體流程:①對(duì)下一個(gè)宏塊進(jìn)行頂部數(shù)據(jù)分割,分割出殘差數(shù)據(jù)之前的數(shù)據(jù)。同時(shí)為解碼提供幀內(nèi)預(yù)測、參考圖像索引和向量;②啟動(dòng)DMA讀取分割出來的數(shù)據(jù),其中也要讀入解碼參考圖像索引和向量;③對(duì)圖像數(shù)據(jù)進(jìn)行幀內(nèi)預(yù)測;④利用底部分割讀入的映射數(shù)據(jù),進(jìn)行反變換和反量化;⑤通過濾波重建圖像;⑥通過DMA把圖像數(shù)據(jù)輸出到片外和片內(nèi)存儲(chǔ)器;⑦對(duì)下一個(gè)宏塊進(jìn)行底部數(shù)據(jù)分割,然后取出映射數(shù)據(jù)供下一個(gè)宏塊解碼使用嘲。

為了避免DSP內(nèi)核等待DMA讀人數(shù)據(jù),把解碼數(shù)據(jù)預(yù)先從宏塊中分割成頂部數(shù)據(jù)和底部數(shù)據(jù),頂部數(shù)據(jù)包括殘差數(shù)據(jù)之前的數(shù)據(jù),剩下的數(shù)據(jù)就是底部數(shù)據(jù)。如果有P幀到來時(shí)數(shù)據(jù)已事先分割,然后DMA啟動(dòng)。當(dāng)DSP內(nèi)核在解碼當(dāng)前宏塊時(shí),DMA讀入下一個(gè)宏塊。如果在當(dāng)前宏塊參考數(shù)據(jù)需要利用時(shí),此數(shù)據(jù)解碼完成后還可通過DMA輸入到片內(nèi)存儲(chǔ)器。因?yàn)楫?dāng)前宏塊頂部數(shù)據(jù)對(duì)下一個(gè)宏塊的濾波沒有參考價(jià)值,所以這些宏塊頂部數(shù)據(jù)就被DMA傳送到外部存儲(chǔ)器。該設(shè)計(jì)第1個(gè)宏塊未進(jìn)入解碼過程,因?yàn)槌跏紶顟B(tài)時(shí)一系列參考圖像和參數(shù)都沒有設(shè)定,所以第1個(gè)宏塊只是設(shè)定解碼器參考圖像和參數(shù)行初始化,為下一宏塊解碼使用。宏塊數(shù)據(jù)的分割和DMA的數(shù)據(jù)讀入都可在解碼中并行執(zhí)行,即執(zhí)行當(dāng)前宏塊時(shí)可設(shè)定下一個(gè)宏塊所需參數(shù)以及讀入解碼數(shù)據(jù),這樣可減少各模塊間的等待時(shí)間,提高工作效率。上述可并行執(zhí)行的過程如圖2中以橢圓方框表示。

上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉