新聞中心

EEPW首頁(yè) > 設(shè)計(jì)應(yīng)用 > 嵌入式設(shè)備的靜止圖像編碼

嵌入式設(shè)備的靜止圖像編碼

——
作者: 時(shí)間:2007-01-26 來(lái)源:《電子技術(shù)應(yīng)用》 收藏

嵌入式多媒體設(shè)備的靜止圖像編碼有著廣泛的應(yīng)用,如照片的拍攝與傳輸。設(shè)備處理的圖像越來(lái)越大,存儲(chǔ)容量和傳能力都相當(dāng)有?因而靜止圖像編解碼要求具有較低的運(yùn)算復(fù)雜性、較少的存儲(chǔ)器需求和極好的壓縮性能。目前已經(jīng)制定的靜止圖像壓縮標(biāo)準(zhǔn)主要有jpeg和jpeg2000。jpeg標(biāo)準(zhǔn)在中高速率上壓縮效果較好, 對(duì)于細(xì)節(jié)分量多的灰度圖像, 當(dāng)編碼壓縮率低于每像素0.25比特時(shí),視覺(jué)失真大,重構(gòu)圖像存在嚴(yán)重的方塊效應(yīng),不能很好地適應(yīng)網(wǎng)絡(luò)傳輸圖像的需要。jpeg2000為了降低運(yùn)算中的存儲(chǔ)器需求,使用分塊技術(shù),對(duì)每個(gè)小塊進(jìn)行處理,但采用較小的塊在低碼率時(shí)存在與jpeg一樣的方塊效應(yīng)。因而jpeg2000 在低比特率應(yīng)用時(shí), 建議不分塊或者分成較大的塊,以保證良好的率失真性能, 但運(yùn)算復(fù)雜性和存儲(chǔ)器需求都極高。

視頻編碼新標(biāo)準(zhǔn)h.264代表著繼mpeg1/2和mpeg4后的第三代視頻編碼標(biāo)準(zhǔn)。h.264比以前的標(biāo)準(zhǔn)提供了更高的編碼增益。h.264的intra幀編碼算法充分利用圖像中的空間相關(guān)和變換域的相關(guān)性,提供了極高的編碼增益,可以用來(lái)對(duì)靜止圖像進(jìn)行編碼。在文獻(xiàn)[1]中h.264采用jm73代碼,jpeg2000 采用jasper 1.700.5,對(duì)標(biāo)準(zhǔn)靜止測(cè)試圖像和視頻序列進(jìn)行測(cè)試。測(cè)試結(jié)果表明:與jpeg2000相比,h.264 intra幀具有更高的客觀質(zhì)量和主觀質(zhì)量,但譯碼器的運(yùn)算復(fù)雜性卻比jpeg2000低50%左右。在嵌入式設(shè)備上,多媒體應(yīng)用的實(shí)時(shí)性不僅取決于算法的運(yùn)算次數(shù),還取決于可得到的存儲(chǔ)器帶寬。cpu的工作頻率越來(lái)越高,存儲(chǔ)器的頻率卻增加緩慢,很多算法的瓶頸在于數(shù)據(jù)輸入輸出。有效減小算法的存儲(chǔ)器需求,減少中間結(jié)果的存儲(chǔ)需求,可縮減片外存儲(chǔ)器訪問(wèn)次數(shù),提高應(yīng)用的實(shí)時(shí)性能。下面主要討論降低h.264 intra幀編碼的運(yùn)算復(fù)雜性和存儲(chǔ)器需求的方法。

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

1 減少運(yùn)算復(fù)雜性

h.264 intra幀具有比jpeg2000更高的客觀質(zhì)量,這主要是由于intra幀采用的多種幀內(nèi)預(yù)測(cè)模式較好地去掉了空間冗余。對(duì)于平滑的背景區(qū)域采用16×16大小的粗糙預(yù)測(cè),共有4種可能的預(yù)測(cè)方向。對(duì)于快速變化的圖像區(qū)域,采用4×4的塊,共有9種預(yù)測(cè)模式。在預(yù)測(cè)后,對(duì)殘差信號(hào)進(jìn)行整型變換消除頻譜相關(guān)性。高效的去方塊效應(yīng)濾波器改善了圖像的信噪比和主觀質(zhì)量。圖1是h.264編碼器的結(jié)構(gòu)流程圖。從圖1可以看出,在整幀圖像的熵編碼后,對(duì)逆整型變換后的重建數(shù)據(jù)進(jìn)行去方塊效應(yīng),去方塊效應(yīng)后的重建圖像數(shù)據(jù)用作下一幀預(yù)測(cè)圖像的編碼,或者用于編碼同時(shí)顯示重建圖像。編碼器的作用主要是壓縮原始數(shù)據(jù)產(chǎn)生輸出碼流,若不需要在本地編碼器中顯示重建圖像(例如衛(wèi)星照片的拍攝),則編碼器中的整幀圖像的去方塊效應(yīng)可以省去,節(jié)省大約30%的運(yùn)算。宏塊的幀內(nèi)預(yù)測(cè)包含9種4×4模式和4種16×16模式如圖2。intra 16×16 預(yù)測(cè)僅僅采用左邊16個(gè)像素和上邊16個(gè)像素作參考;intra 4×4 預(yù)測(cè)僅僅采用左邊4個(gè)像素和上邊9個(gè)像素作參考,因而在逆整型變換和重建(逆變換結(jié)果與預(yù)測(cè)值相加)時(shí),僅僅需要計(jì)算16×16宏塊的第16行與第16列像素、4×4塊的第4行與第4列像素,沒(méi)有必要計(jì)算所有的像素。對(duì)于16×16的塊,減少224個(gè)重建像素的計(jì)算。對(duì)于4×4的塊,減少8個(gè)重建像素的計(jì)算。整型變換、量化、逆量化、掃描以及逆變換消耗比較多的編碼時(shí)間,可利用在模式選擇時(shí)計(jì)算的絕對(duì)差值和(sad),提前判斷整型變換后量化系數(shù)全0塊,從而省去全0塊的整型變換、量化、逆量化、掃描以及逆變換這一系列操作。若sad小于某個(gè)門(mén)限t,各個(gè)變換系數(shù)絕對(duì)值小于量化步長(zhǎng)(qstep),該塊為0塊。實(shí)驗(yàn)中取t等于3qstep,獲得了較高的檢測(cè)率和較低的檢測(cè)差錯(cuò)率。h.264 采用整型變換,為簡(jiǎn)化門(mén)限的推導(dǎo),其中的整型變換與4×4的離散余弦變換(dct)相差較小,dct變換為:

在intra幀量化中, 時(shí),f(u,v)量化為0,即
時(shí),所有變換系數(shù)量化為0。由于該式是量化系數(shù)全為零的充分條件,而不是必要條件。實(shí)驗(yàn)結(jié)果顯示,使用該門(mén)限檢測(cè)出零塊的正確性為100%,大量的量化系數(shù)為全零塊卻檢測(cè)不出來(lái)。為了大幅提高零塊檢出率,增大該門(mén)限t為3qstep,測(cè)量miss.qcf 20幀編碼的平均情況,測(cè)試結(jié)果見(jiàn)表1。從表1可以看出,零塊檢測(cè)率隨著量化索引增大而增大,可能將部分非零塊檢測(cè)成零塊,但這對(duì)信噪比影響不大。

2 縮減存儲(chǔ)器需求

減少運(yùn)算中的存儲(chǔ)器需求對(duì)于嵌入式設(shè)備十分重要。宏塊編碼的過(guò)程包含預(yù)測(cè)、模式選擇、變換量化掃描、逆量化等。從圖2可以看出,在intra16×16的4種預(yù)測(cè)模式中,只使用上邊和左邊的各16個(gè)像素作為預(yù)測(cè)參考,在intra 4×4 的9種預(yù)測(cè)模式中,僅使用左邊4個(gè)像素和上邊9個(gè)像素作為預(yù)測(cè)參考,因而重建圖像并不需要整幀存儲(chǔ),只需存儲(chǔ)這幾個(gè)參考點(diǎn)就可以了。假設(shè)宏塊編碼按照從左到右、從上到下順序進(jìn)行,則水平方向的像素需要存儲(chǔ)一整行。在intra 4×4模式編碼時(shí),由于相鄰的4×4塊模式高度相關(guān),采用相鄰塊的預(yù)測(cè)模式預(yù)測(cè)當(dāng)前塊的最可能模式,同樣只需要存儲(chǔ)上邊一行4×4和左邊一個(gè)4×4塊的編碼模式(如圖3)。在對(duì)量化后變字長(zhǎng)編碼(vlc)系數(shù)的個(gè)數(shù)進(jìn)行編碼時(shí),需要利用相鄰兩塊的非零系數(shù)個(gè)數(shù)對(duì)該塊進(jìn)行預(yù)測(cè),也只需要存儲(chǔ)上邊一行4×4和左邊一個(gè)4×4塊的編碼模式的非零系數(shù)個(gè)數(shù),如圖3。在對(duì)整幀圖像的數(shù)據(jù)比特串(sodb)添加原始字節(jié)序列載荷(rbsp)結(jié)尾比特(rbsp trailing bits,添加一比特的“1”和若干比特“0”,以便字節(jié)對(duì)齊)后,再檢查rbsp 中是否存在連續(xù)的三字節(jié)“00000000 00000000 000000xx”;若存在這種連續(xù)的三字節(jié)碼,在第三字節(jié)前插入一字節(jié)的“0×03”,以免與起始碼競(jìng)爭(zhēng),形成ebsp碼流,這需要將近兩倍的整幀圖像碼流大小。為了減小存儲(chǔ)器需求,在每個(gè)宏塊編碼結(jié)束后即檢查該宏塊sodb中的起始碼競(jìng)爭(zhēng)問(wèn)題,并保留sodb最后兩字節(jié)的零字節(jié)個(gè)數(shù),以便與下一宏塊的sodb的開(kāi)始字節(jié)形成連續(xù)的起始碼競(jìng)爭(zhēng)檢測(cè);對(duì)一幀圖像的最后一個(gè)宏塊,先添加結(jié)尾停止比特,再檢測(cè)起始碼競(jìng)爭(zhēng)。采用這種方法產(chǎn)生h.264 附錄b中的字節(jié)流時(shí),存儲(chǔ)器需求從兩幀碼流大小縮小到兩個(gè)宏塊碼流大小。通過(guò)對(duì)碼流輸出過(guò)程的改進(jìn),使intra幀編碼需要的存儲(chǔ)器大小不隨圖像大小的增加而增加,這時(shí)編碼過(guò)程中的存儲(chǔ)器不超過(guò)9k個(gè)整數(shù)。對(duì)于基于片上存儲(chǔ)器的多媒體處理器,存儲(chǔ)器需求的減少可以大量縮減中間結(jié)果的片外片上轉(zhuǎn)移,減小數(shù)據(jù)轉(zhuǎn)移的負(fù)擔(dān),提高程序的運(yùn)行速度。

采用h.264 intra幀對(duì)靜止圖像進(jìn)行編碼時(shí),在編碼器端不需要顯示本地重建圖像,可省掉去方塊效應(yīng)濾波器;利用模式選擇時(shí)計(jì)算的絕對(duì)差值和,可提前判斷量化后全零系數(shù)塊,節(jié)省大量的計(jì)算。分階段地對(duì)各個(gè)宏塊的碼流插入競(jìng)爭(zhēng)阻止字節(jié)(emulation prevention byte),以保證原始字節(jié)序列載荷中不含起始碼,有效減少存儲(chǔ)器的需求。運(yùn)算復(fù)雜性和存儲(chǔ)器需求極低的h.264 intra編碼模式,可代替jpeg2000,用于嵌入式設(shè)備的靜止圖像編碼。



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

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

關(guān)閉