嵌入式設(shè)備的靜止圖像編碼(一)
嵌入式多媒體設(shè)備的靜止圖像編碼有著廣泛的應(yīng)用,如照片的拍攝與傳輸。設(shè)備處理的圖像越來越大,存儲(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í),視覺失真大,重構(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代表著繼/2和MPEG4后的第三代視頻編碼標(biāo)準(zhǔn)。H.264比以前的標(biāo)準(zhǔn)提供了更高的編碼增益。H.264的INTRA幀編碼算法充分利用圖像中的空間相關(guān)和變換域的相關(guān)性,提供了極高的編碼增益,可以用來對(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的工作頻率越來越高,存儲(chǔ)器的頻率卻增加緩慢,很多算法的瓶頸在于數(shù)據(jù)輸入輸出。有效減小算法的存儲(chǔ)器需求,減少中間結(jié)果的存儲(chǔ)需求,可縮減片外存儲(chǔ)器訪問次數(shù),提高應(yīng)用的實(shí)時(shí)性能。下面主要討論降低H.264 INTRA幀編碼的運(yùn)算復(fù)雜性和存儲(chǔ)器需求的方法。
H.264 INTRA 16x16 prediction modes (all predicted pixels H and V)
圖2 INTRA 4×4和INTRA 16×16預(yù)測(cè)
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列像素,沒有必要計(jì)算所有的像素。對(duì)于16×16的塊,減少224個(gè)重建像素的計(jì)算。對(duì)于4×4的塊,減少8個(gè)重建像素的計(jì)算。整型變換、量化、逆量化、掃描以及逆變換消耗比較多的編碼時(shí)間,可利用在模式選擇時(shí)計(jì)算的絕對(duì)差值和(SAD),提前判斷整型變換后量化系數(shù)全0塊,從而省去全0塊的整型變換、量化、逆量化、掃描以及逆變換這一系列操作 (待續(xù))