H.264算法的DSP移植與優(yōu)化
摘要:在TMS320DM643平臺(tái)上實(shí)現(xiàn)H.264基檔次編碼器的移植與優(yōu)化顯得格外實(shí)用和必要。基于對DSP平臺(tái)的結(jié)構(gòu)特性和H.264的計(jì)算復(fù)雜度分析,主要從核心算法、數(shù)據(jù)傳輸和存儲(chǔ)器/Cache使用幾方面對H.264編碼器進(jìn)行了優(yōu)化。實(shí)驗(yàn)結(jié)果表明,對于CIF格式的視頻序列,優(yōu)化后的H.264編碼器能夠達(dá)到每秒高于24幀的編碼速度,滿足了視頻處理對于實(shí)時(shí)性的要求。
關(guān)鍵詞:H.264編碼;TMS320DM643;算法優(yōu)化
0 引言
針對視頻通信中傳輸帶寬或存儲(chǔ)容量與視頻質(zhì)量的矛盾,ITU-T的VCEG和ISO/IEC的MPEG聯(lián)合制定了低碼率視頻壓縮標(biāo)準(zhǔn)H.264。相對于以往的標(biāo)準(zhǔn),H.264除了增強(qiáng)了網(wǎng)絡(luò)適應(yīng)能力外,大幅度提高了壓縮編碼效率,在相同的碼率下能夠獲得更高的主客觀質(zhì)量。2003年5月,H.264/AVC標(biāo)準(zhǔn)正式推出,正式名稱為H.264 MPEG-4 part 10 AVC(Advanced Video Coding),以下簡稱為H.264標(biāo)準(zhǔn)。
1 編碼器
H.264仍采用圖像預(yù)測和變換編碼相結(jié)合的編碼結(jié)構(gòu),編碼器采用的仍是變換和預(yù)測的混合編碼法。輸入的幀或場以宏塊為單位被編碼器處理。首先,按幀內(nèi)或幀間預(yù)測編碼的方法進(jìn)行處理。如果采用幀內(nèi)預(yù)測編碼,其預(yù)測值PRED是由當(dāng)前片中前面己編碼的參考圖像經(jīng)運(yùn)動(dòng)補(bǔ)償(MC)后得出,與解碼所需的一些邊信息(如預(yù)測模式量化參數(shù)、運(yùn)動(dòng)矢量等)一起組成一個(gè)壓縮后的碼流,經(jīng)NAL(網(wǎng)絡(luò)自適應(yīng)層)供傳輸和存儲(chǔ)用。為了提供進(jìn)一步預(yù)測用的參考圖像,編碼器必須有重建圖像的功能。因此必須使殘差圖像經(jīng)反量化、反變換后得到。為了去除編碼解碼環(huán)路中產(chǎn)生的噪聲,為了提高參考幀的圖像質(zhì)量,從而提高壓縮圖像性能,設(shè)置了一個(gè)環(huán)路濾波器。即重建圖像可用作參考圖像。
1.1 視頻編碼的硬件結(jié)構(gòu)
H.264視頻編碼器硬件結(jié)構(gòu)如圖1所示。FLASH模塊用于存放程序,EEPROM用于存放編碼系統(tǒng)的初始化配置信息和系統(tǒng)MAC層地址。片內(nèi)SRAM用于緩存當(dāng)前正在處理的宏塊數(shù)據(jù),以及一些頻繁調(diào)用的數(shù)據(jù)段和程序段。外接存儲(chǔ)器SDRAM主要用于存儲(chǔ)原始幀、參考幀和重建幀的源數(shù)據(jù)。片內(nèi)、片外存儲(chǔ)器之間的數(shù)據(jù)傳輸借助EDMA在后臺(tái)操作,這樣可并行處理數(shù)據(jù)傳輸和運(yùn)算操作,提高效率。
1.2 DSP芯片簡介
DM643的EDMA可在64個(gè)獨(dú)立的通路上,提供超過2GB/s的I/O帶寬。此外,運(yùn)用兩級(jí)片內(nèi)高速緩存Cache和64位外部存儲(chǔ)器接口(EMIF),可方便地實(shí)現(xiàn)與同步/異步存儲(chǔ)器的無縫連接。DM643還集成了多種新型的片內(nèi)外設(shè),以適應(yīng)于媒體數(shù)字化處理和網(wǎng)絡(luò)通信的應(yīng)用:(1)三個(gè)可配置的視頻端口,提供和通用視頻A/D和D/A芯片的無縫接口;(2)壓控晶體振蕩器插值控制端口,用于與MPEG-2傳輸流接口時(shí)的系統(tǒng)時(shí)鐘恢復(fù);(3)管理數(shù)據(jù)輸入輸出模塊,用于列舉系統(tǒng)中的物理層設(shè)備并監(jiān)視它們的連接狀態(tài)。
評論