<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

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

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

2 H.264原理

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


3 DSP-BF533的設計與

3.1 解碼器設計框圖

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

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

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

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>