一種基于VP8編碼的Webp圖片壓縮格式研究
引言
本文引用地址:http://www.ex-cimer.com/article/148113.htm隨著消費(fèi)者需求與多媒體娛樂的大幅提升,上一代互聯(lián)網(wǎng)標(biāo)準(zhǔn)與視頻解決方案已經(jīng)無法滿足高速增長的高清視頻傳輸要求,在此背景下,面向未來需求的下一代互聯(lián)網(wǎng)解決方案——HTML 5網(wǎng)絡(luò)開發(fā)標(biāo)準(zhǔn)與WebM VP8視頻壓縮格式應(yīng)運(yùn)而生。VP8編碼擁有極高的壓縮比和壓縮質(zhì)量,而基于VP8編碼的新型圖片壓縮格式Webp也比JPEG圖片具有更高的壓縮率。
1 PSNR和SSIM圖像質(zhì)量測(cè)試標(biāo)準(zhǔn)
1.1 峰值信噪比
PSNR(Peak Signal to Noise Ratio,峰值信噪比)是一個(gè)表示信號(hào)最大功率和對(duì)其產(chǎn)生影響的噪聲功率之間比值的術(shù)語,常用對(duì)數(shù)分貝來表示。PSNR常用作圖像壓縮領(lǐng)域中信號(hào)重建測(cè)量,它通過均方差(Mean Square Error,MSE)進(jìn)行定義。兩個(gè)M×N單色圖像I和K,如果噪聲近似,那么它們的MSE定義為:
峰值信噪比定義為:
其中amax=2k-1,k常取8。PSNR和MSE都基于像素灰度值進(jìn)行統(tǒng)計(jì)和平均計(jì)算,忽視了圖像對(duì)人眼的影響,故而不能完整反映出圖像質(zhì)量。
1.2 結(jié)構(gòu)相似度
圖像的像素之間是相關(guān)的,這種相關(guān)性蘊(yùn)含著圖像的結(jié)構(gòu)信息。SSIM(Structural Similarity Index,結(jié)構(gòu)相似度)是一種衡量兩幅圖像相似度的指標(biāo)。將原圖像塊x和失真圖像塊y的失真SSIM建模為亮度l(x,y)、對(duì)比度c(x,y)和結(jié)構(gòu)信息s(x,y)三分量的組合:
SSIM(x,y)=l(x,y)·c(x,y)·s(x,y)(3)
亮度、對(duì)比度和結(jié)構(gòu)信息是與x和y的均值μx、μy,標(biāo)準(zhǔn)差σx、σy或協(xié)方差σxy有關(guān)的量,表達(dá)式分別為:
C1、C2和C3是為了避免分母為零而添加的小常數(shù)[1]。用SSIM評(píng)判圖像質(zhì)量時(shí),先把圖像分成重疊或者不重疊的大小相等的子塊(一般為8×8大小),然后用式(3)計(jì)算每一個(gè)子塊的SSIM值,再用所有子塊SSIM值的平均值作為整幅圖像質(zhì)量的度量。SSIM值越高,表明失真圖像和原圖像相似度越高,失真圖像的質(zhì)量越高。
2 VP8編碼和X.264編碼圖像的PSNR和SSIM對(duì)比
Google收購On2科技公司并隨后開放了其擁有的VP8編碼技術(shù)的源代碼。VP8采用的新技術(shù)有:基于虛擬參考幀的高級(jí)預(yù)計(jì)編碼、基于宏塊級(jí)的多線程技術(shù)、改進(jìn)的局域參考編碼、增加復(fù)雜度的先進(jìn)上下文熵編碼、稀疏目標(biāo)區(qū)域的自適應(yīng)回路濾波等,從而能以更少的數(shù)據(jù)提供更高質(zhì)量的視頻。
Google稱VP8能夠在相同碼率下提供比當(dāng)今流行的X.264更好的畫質(zhì),或是在相同畫質(zhì)下使用更少的帶寬。而X.264編碼則是現(xiàn)在最為流行的編碼技術(shù),屬于MPEG高清編碼部分,是一種高度壓縮的數(shù)字視頻編解碼器標(biāo)準(zhǔn)?,F(xiàn)在兩種編碼都獲得了大量廠商的支持。
利用有代表性的視頻場景來測(cè)試兩種不同的編碼技術(shù)在視頻壓縮和還原質(zhì)量上的性能。
圖1 不同景深場景的測(cè)試視頻
圖2 測(cè)試視頻的PSNR數(shù)據(jù)
不同景深場景的測(cè)試視頻如圖1所示。測(cè)試視頻分別用Handbrake以X.264編碼和FFmpeg 0.6以VP8形式編碼。而后利用MSU MQVT軟件測(cè)試場景的PSNR和SSIM。
測(cè)試視頻的PSNR數(shù)據(jù)和測(cè)試視頻的SSIM數(shù)據(jù)如圖2、圖3所示。
通過軟件測(cè)試對(duì)比分析看出,VP8編碼的視頻質(zhì)量與X.264差別不大,某些場景高質(zhì)量編碼的X.264圖像要略優(yōu)于VP8編碼,但VP8編碼的視頻大小要略小于X264。VP8編碼剛剛開源,還沒有很成熟的編解碼器,無法和多年發(fā)展的X.264編碼器相比,不過上述測(cè)試結(jié)果表明VP8編碼有很大的發(fā)展空間。
Webp是Google為了滿足現(xiàn)在越來越高的帶寬需求,在基于VP8編碼的基礎(chǔ)上提出的一種新型圖片格式。Webp利用預(yù)測(cè)編碼技術(shù),通過部分像素塊的顏色來預(yù)測(cè)其鄰近塊的顏色值,并只記錄兩者的差值,因?yàn)槎鄶?shù)情況下兩者差距很小,甚至零差距,因而大大提高了壓縮的比率。Google想打造出一種文件體積小而畫質(zhì)和JPEG一樣的圖像格式,在保證畫質(zhì)的前提下提高網(wǎng)頁圖像瀏覽的速度。
圖3 測(cè)試視頻的SSIM數(shù)據(jù)
Webp采用的新技術(shù)有:
◆ Fancy的提升采樣算法,可有效降低圖片內(nèi)色彩邊緣的像素;
◆ 同一張圖片里的不同區(qū)域進(jìn)行不同形式的壓縮,在圖片質(zhì)量和圖片大小上實(shí)現(xiàn)最佳平衡;
◆ 預(yù)測(cè)編碼技術(shù),通過部分像素塊的顏色來預(yù)測(cè)其鄰近塊的顏色值,并只記錄兩者的差值,提高壓縮比。
3.1 測(cè)試圖片用PSNR和SSIM的MATLAB程序?qū)崿F(xiàn)
為了對(duì)比分析Webp和JPEG在圖片壓縮和還原質(zhì)量上的強(qiáng)弱,編寫了計(jì)算PSNR和SSIM的MATLAB程序。
PSNR的MATLAB代碼如下:
% in1 Original image
% in2 reconstructed image
% mse Mean Square Error
% psnr Peak Signal to Noise Ratio
function result=psnr(in1,in2)
in1=imread('Original image');
in2=imread('reconstructed image');
%in1=rgb2gray(in1);
%in2=rgb2gray(in2);
z=mse(in1,in2);
result=10*log10(255.^2/z);
function z=mse(x,y)
x=double(x);
y=double(y);
評(píng)論