新聞中心

EEPW首頁 > 消費電子 > 設計應用 > 嵌入式視頻圖像系統(tǒng)壓縮算法的實現(xiàn)和優(yōu)化

嵌入式視頻圖像系統(tǒng)壓縮算法的實現(xiàn)和優(yōu)化

作者:張春光 吉林市人民廣播電臺 劉化彤 長春光學科技發(fā)展有限責任公司 時間:2009-03-17 來源: 收藏

  為避免發(fā)生的Cache大量缺失,采取 3種方法[6] 。

本文引用地址:http://butianyuan.cn/article/92476.htm

  1.整個編碼算法應該分成 3個模塊: 宏塊編碼、運動估計、運動重建 , 這樣使每個模塊代碼都適合 L1P。每次循環(huán)以宏塊組為單位 , 宏塊組的大小由 L1D大小決定。在宏塊編碼模塊中, 當宏塊組被傳送到片內(nèi),他們一起經(jīng)過 DCT Direct Cosine Transform 、量化、熵編碼 , 直到宏塊組編碼模塊結束為止,L1D才刷新這組宏塊。同時對應的程序包括 DCT、量化、熵編碼也被保存到 L1P。

  2.盡量減少數(shù)據(jù)類型的大小。可以用 8位數(shù)據(jù)就不用 16位數(shù)據(jù) , 這樣不但節(jié)省空間 ,而且能提高L1D的使用效率。因為 L1D行的大小是固定的, 在一行內(nèi)如果采用 8位數(shù)據(jù) 比 16位數(shù)據(jù)可多放一倍 , 從而減少程序中 Cache缺失情況的發(fā)生。

  3.采用乒乓緩存結構, 提高 Cache命中率 , 減少 CPU等待時間。

  在視頻編碼模塊中,當前幀和參考幀數(shù)據(jù)放在片外存儲器,在編碼過程中需要依次對圖像幀中的每個宏塊進行操作。但宏塊直接從片外內(nèi)存讀取,這就會發(fā)生CPU等待??梢栽O置兩對片上緩存,一對存放當前幀宏塊,一對存放參考幀宏塊,它們以乒乓方式工作。乒乓緩沖工作模式如圖1所示。編碼前E DMA將片外的當前幀中編碼宏塊數(shù)據(jù)和在搜索范圍內(nèi)的參考幀宏塊數(shù)據(jù)搬移到片上內(nèi)存。在用EDMA搬移數(shù)據(jù)到其中一塊片內(nèi)緩存的同時,,處理器可以對另一塊緩存中的數(shù)據(jù)進行處理。經(jīng)過這樣的修改,CPU一直從片上讀取存儲器數(shù)據(jù)大大減少了CPU阻塞情況的發(fā)生,提高了編碼速度。

 

  圖2 乒乓緩沖存儲器結構

  SAD和像素插值的

  SAD(Sum ofAbsolute Difference)是運動估計模塊[7]關鍵模塊 , 而 DM642提供了一套豐富的視頻和圖像專用指令可以高效實現(xiàn)運動估計算法。

  LDNDW (Load Non2alignedDoubleWord)指令,可以一次讀取 64位無邊界數(shù)據(jù)。這個指令可以從當前幀中和參考幀一次讀取8個 8位像素數(shù)據(jù)。因此可以提高當前幀和參考幀宏塊數(shù)據(jù)的搬移速度。

  SUBABS4(Subtractwith Absolute)指令,計算在兩組 8位數(shù)據(jù)包之間的 4個絕對值之差。



評論


相關推薦

技術專區(qū)

關閉