新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > Motion JPEG視頻壓縮IP核的設(shè)計(jì)與實(shí)現(xiàn)

Motion JPEG視頻壓縮IP核的設(shè)計(jì)與實(shí)現(xiàn)

作者:東北大學(xué) 李大舟 吳建華 時(shí)間:2008-06-25 來(lái)源:電子技術(shù)應(yīng)用 收藏

  引言

本文引用地址:http://2s4d.com/article/84771.htm

  隨著技術(shù)及技術(shù)的快速發(fā)展,在平臺(tái)上實(shí)現(xiàn)連續(xù)圖像壓縮的需求已變得日益廣泛。常用的系統(tǒng)結(jié)構(gòu)是獨(dú)立處理器配和專用圖像壓縮芯片或者是只用一個(gè)高主頻的數(shù)字信號(hào)處理器完成主要功能。但隨著大規(guī)模集成電路技術(shù)的發(fā)展及市場(chǎng)對(duì)產(chǎn)品低成本的要求不斷提高,一種新的在平臺(tái)上實(shí)現(xiàn)連續(xù)圖像壓縮的系統(tǒng)結(jié)構(gòu)正逐步成為上述兩種系統(tǒng)結(jié)構(gòu)的替代者。這種新的結(jié)構(gòu)就是Altera公司提出的基于Avalon總線的SOPC結(jié)構(gòu)。SOPC結(jié)構(gòu)可以把處理器,圖像壓縮,通訊單元及控制單元集成到一塊FPGA芯片上。較之以往的結(jié)構(gòu),不但極大地節(jié)約了系統(tǒng)資源和成本,更是減少了系統(tǒng)的復(fù)雜度。尤其是可以用硬件電路實(shí)現(xiàn)軟件處理極為耗時(shí)的運(yùn)算功能,使得在低主頻,低功耗的平臺(tái)上實(shí)現(xiàn)連續(xù)圖像實(shí)時(shí)壓縮變?yōu)榭赡?。連續(xù)圖像壓縮也成為整個(gè)SOPC系統(tǒng)的一個(gè)關(guān)鍵部件。現(xiàn)有的MPEG系列,H26X系列對(duì)FPGA的芯片資源及性能要求極高,難以滿足系統(tǒng)對(duì)低成本,低功耗的要求。所以設(shè)計(jì)一個(gè)適合低成本,低功耗的FPGA芯片的IP核變得極為重要。這即要求壓縮算法的復(fù)雜度不能太高,又要求有適當(dāng)?shù)膲嚎s效果,算法恰好滿足上述要求。

  1.壓縮算法簡(jiǎn)介

  是一種基于靜態(tài)圖像JPEG壓縮標(biāo)準(zhǔn)的動(dòng)態(tài)圖像壓縮標(biāo)準(zhǔn),壓縮時(shí)將連續(xù)圖像的每一個(gè)幀視為一幅靜止圖像進(jìn)行壓縮,從而可以生成序列化運(yùn)動(dòng)圖像。壓縮時(shí)不對(duì)幀間的時(shí)間冗余進(jìn)行壓縮,雖然降低了壓縮比,但也同時(shí)降低了復(fù)雜度,易于硬件電路實(shí)現(xiàn)。Motion JPEG標(biāo)準(zhǔn)所根據(jù)的算法是基于離散余弦變換和熵編碼,關(guān)鍵技術(shù)有二維離散余弦變換、量化、差分編碼、霍夫曼編碼和游程編碼等。單幀的處理過(guò)程如下圖所示。

  2.IP核的結(jié)構(gòu)設(shè)計(jì)

  2.1二維離散余弦變換模塊

  二維離散余弦變換是由一維離散余弦變換衍生而來(lái)的,所以可以用兩個(gè)級(jí)聯(lián)的一維離散余弦變換實(shí)現(xiàn)。實(shí)現(xiàn)時(shí)要注意第一級(jí)一維離散余弦變換模塊產(chǎn)生的結(jié)果不能直接作為第二級(jí)一維離散余弦變換模塊的輸入量,而是等到第一級(jí)一維離散余弦變換模塊產(chǎn)生的結(jié)果形成一個(gè)8×8的矩陣后,對(duì)這個(gè)8×8的矩陣做轉(zhuǎn)置處理,再把轉(zhuǎn)置后得到的矩陣按行掃描的順序輸出,這時(shí)輸出的數(shù)據(jù)才能作為第二級(jí)一維離散余弦變換模塊的輸入量。

  二維離散余弦變換模塊處理的對(duì)象是8×8的像素矩陣,來(lái)自其前一級(jí)模塊預(yù)處理模塊。預(yù)處理模塊一個(gè)時(shí)鐘周期只能輸出一個(gè)數(shù)據(jù),為了滿足二維離散余弦變換模塊中第一級(jí)一維離散余弦變換模塊一次運(yùn)算需要8個(gè)輸入數(shù)據(jù)的要求,利用一個(gè)串行轉(zhuǎn)并行模塊,把每個(gè)時(shí)鐘周期內(nèi)預(yù)處理模塊輸出的一個(gè)數(shù)據(jù)緩存起來(lái),當(dāng)數(shù)據(jù)湊滿8個(gè)后再一次傳給二維離散余弦變換模塊。
二維離散余弦變換模塊輸出的數(shù)據(jù)是8×8的二維離散余弦系數(shù)矩陣,傳遞給其后一級(jí)模塊量化模塊。量化模塊一個(gè)時(shí)鐘周期只能接收一個(gè)數(shù)據(jù),為了滿足二維離散余弦變換模塊中第二級(jí)一維離散余弦變換模塊一次運(yùn)算產(chǎn)生8個(gè)輸出數(shù)據(jù)的條件,使用一個(gè)并行轉(zhuǎn)串行模塊,把每隔8個(gè)時(shí)鐘周期二維離散余弦變換模塊輸出一次的8個(gè)數(shù)據(jù)緩存起來(lái),在等待下一次二維離散余弦變換模塊輸出數(shù)據(jù)的8個(gè)時(shí)鐘周期的等待隔內(nèi),把數(shù)據(jù)串行傳給量化模塊。

  2.1.1第一級(jí)一維離散余弦變換模塊

  根據(jù)一維離散余弦變換的定義和cos函數(shù)的互補(bǔ)對(duì)稱性,參考Weiping Li提出的Skew Circular Convolution的概念,能夠使一維離散余弦變換達(dá)到非常精簡(jiǎn)的硬件架構(gòu)。但是考慮到處理的對(duì)像是連續(xù)幀這個(gè)條件,速度就成為主要因素,因此沒(méi)有完全依照其提出的方法,而是適當(dāng)?shù)脑黾与娐访娣e來(lái)夠造新的11階全流水線結(jié)構(gòu),從而獲得最大的運(yùn)算速度。處理過(guò)程可劃分為4個(gè)階段。

  階段1:消耗3個(gè)時(shí)鐘周期,完成8位有符號(hào)數(shù)的加減運(yùn)算,結(jié)果為9位有符號(hào)數(shù)。

  階段2:消耗2個(gè)時(shí)鐘周期,完成9位有符號(hào)數(shù)的固定系數(shù)乘法,因?yàn)槌说南禂?shù)是小數(shù),所以要把小數(shù)轉(zhuǎn)換為二進(jìn)制表示。

  階段2中的乘法操作是用EP2C35芯片中的28個(gè)嵌入式乘法單元實(shí)現(xiàn)的。EP2C35芯片中共有70個(gè)嵌入式乘法單元,一個(gè)嵌入式乘法單元可以實(shí)現(xiàn)兩個(gè) 9位數(shù)的乘法,兩個(gè)嵌入式乘法單元并聯(lián)可以實(shí)現(xiàn)兩個(gè)大于9位小于18位數(shù)的乘法。根據(jù)這一特性,假如在階段1中實(shí)現(xiàn)乘法會(huì)因輸入量是8位而浪費(fèi)了一個(gè)嵌入式乘法單元的全部能力,假如在階段3或階段4中實(shí)現(xiàn)乘法又會(huì)因輸入量或系數(shù)中每個(gè)元素的長(zhǎng)度大于9位而耗用兩個(gè)嵌入式乘法單元去完成一個(gè)乘法操作,又很不經(jīng)濟(jì)。所以在階段2中實(shí)現(xiàn)乘法操作是最為合理的,階段2的輸入量為9位,恰好耗用一個(gè)個(gè)嵌入式乘法單元。這也同時(shí)要求乘法中的固定系數(shù)的位數(shù)為9位,位數(shù)的過(guò)多或過(guò)少都不能充分利用芯片上的硬件資源。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

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

評(píng)論


相關(guān)推薦

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

關(guān)閉