引言
隨著消費者需求與多媒體娛樂的大幅提升,上一代互聯(lián)網(wǎng)標準與視頻解決方案已經(jīng)無法滿足高速增長的高清視頻傳輸要求,在此背景下,面向未來需求的下一代互聯(lián)網(wǎng)解決方案——HTML 5網(wǎng)絡(luò)開發(fā)標準與WebM VP8視頻壓縮格式應(yīng)運而生。VP8編碼擁有極高的壓縮比和壓縮質(zhì)量,而基于VP8編碼的新型圖片壓縮格式Webp也比JPEG圖片具有更高的壓縮率。
1 PSNR和SSIM圖像質(zhì)量測試標準
1.1 峰值信噪比
PSNR(Peak Signal to Noise Ratio,峰值信噪比)是一個表示信號最大功率和對其產(chǎn)生影響的噪聲功率之間比值的術(shù)語,常用對數(shù)分貝來表示。PSNR常用作圖像壓縮領(lǐng)域中信號重建測量,它通過均方差(Mean Square Error,MSE)進行定義。兩個M×N單色圖像I和K,如果噪聲近似,那么它們的MSE定義為:
峰值信噪比定義為:
其中amax=2k-1,k常取8。PSNR和MSE都基于像素灰度值進行統(tǒng)計和平均計算,忽視了圖像對人眼的影響,故而不能完整反映出圖像質(zhì)量。
1.2 結(jié)構(gòu)相似度
圖像的像素之間是相關(guān)的,這種相關(guān)性蘊含著圖像的結(jié)構(gòu)信息。SSIM(Structural Similarity Index,結(jié)構(gòu)相似度)是一種衡量兩幅圖像相似度的指標。將原圖像塊x和失真圖像塊y的失真SSIM建模為亮度l(x,y)、對比度c(x,y)和結(jié)構(gòu)信息s(x,y)三分量的組合:
SSIM(x,y)=l(x,y)·c(x,y)·s(x,y)(3)
亮度、對比度和結(jié)構(gòu)信息是與x和y的均值μx、μy,標準差σx、σy或協(xié)方差σxy有關(guān)的量,表達式分別為:
C1、C2和C3是為了避免分母為零而添加的小常數(shù)[1]。用SSIM評判圖像質(zhì)量時,先把圖像分成重疊或者不重疊的大小相等的子塊(一般為8×8大小),然后用式(3)計算每一個子塊的SSIM值,再用所有子塊SSIM值的平均值作為整幅圖像質(zhì)量的度量。SSIM值越高,表明失真圖像和原圖像相似度越高,失真圖像的質(zhì)量越高。
2 VP8編碼和X.264編碼圖像的PSNR和SSIM對比
Google收購On2科技公司并隨后開放了其擁有的VP8編碼技術(shù)的源代碼。VP8采用的新技術(shù)有:基于虛擬參考幀的高級預(yù)計編碼、基于宏塊級的多線程技術(shù)、改進的局域參考編碼、增加復(fù)雜度的先進上下文熵編碼、稀疏目標區(qū)域的自適應(yīng)回路濾波等,從而能以更少的數(shù)據(jù)提供更高質(zhì)量的視頻。
Google稱VP8能夠在相同碼率下提供比當今流行的X.264更好的畫質(zhì),或是在相同畫質(zhì)下使用更少的帶寬。而X.264編碼則是現(xiàn)在最為流行的編碼技術(shù),屬于MPEG高清編碼部分,是一種高度壓縮的數(shù)字視頻編解碼器標準?,F(xiàn)在兩種編碼都獲得了大量廠商的支持。
利用有代表性的視頻場景來測試兩種不同的編碼技術(shù)在視頻壓縮和還原質(zhì)量上的性能。
圖1 不同景深場景的測試視頻
圖2 測試視頻的PSNR數(shù)據(jù)
不同景深場景的測試視頻如圖1所示。測試視頻分別用Handbrake以X.264編碼和FFmpeg 0.6以VP8形式編碼。而后利用MSU MQVT軟件測試場景的PSNR和SSIM。
測試視頻的PSNR數(shù)據(jù)和測試視頻的SSIM數(shù)據(jù)如圖2、圖3所示。
通過軟件測試對比分析看出,VP8編碼的視頻質(zhì)量與X.264差別不大,某些場景高質(zhì)量編碼的X.264圖像要略優(yōu)于VP8編碼,但VP8編碼的視頻大小要略小于X?264。VP8編碼剛剛開源,還沒有很成熟的編解碼器,無法和多年發(fā)展的X.264編碼器相比,不過上述測試結(jié)果表明VP8編碼有很大的發(fā)展空間。
3 新型Webp格式圖像和JPEG圖像對比
Webp是Google為了滿足現(xiàn)在越來越高的帶寬需求,在基于VP8編碼的基礎(chǔ)上提出的一種新型圖片格式。Webp利用預(yù)測編碼技術(shù),通過部分像素塊的顏色來預(yù)測其鄰近塊的顏色值,并只記錄兩者的差值,因為多數(shù)情況下兩者差距很小,甚至零差距,因而大大提高了壓縮的比率。Google想打造出一種文件體積小而畫質(zhì)和JPEG一樣的圖像格式,在保證畫質(zhì)的前提下提高網(wǎng)頁圖像瀏覽的速度。
圖3 測試視頻的SSIM數(shù)據(jù)
Webp采用的新技術(shù)有:
◆ Fancy的提升采樣算法,可有效降低圖片內(nèi)色彩邊緣的像素;
◆ 同一張圖片里的不同區(qū)域進行不同形式的壓縮,在圖片質(zhì)量和圖片大小上實現(xiàn)最佳平衡;
◆ 預(yù)測編碼技術(shù),通過部分像素塊的顏色來預(yù)測其鄰近塊的顏色值,并只記錄兩者的差值,提高壓縮比。
3.1 測試圖片用PSNR和SSIM的MATLAB程序?qū)崿F(xiàn)
為了對比分析Webp和JPEG在圖片壓縮和還原質(zhì)量上的強弱,編寫了計算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);[!--empirenews.page--]
[m,n]=size(x);
z=0;
for i=1:m
for j=1:n
z=z+(x(i,j)-y(i,j)).^2;
end
end
z=z/(m*n);
SSIM的MATLAB代碼如下:
% im1 ? Original image
% im2 ?Reconstructed image
% ssim ? Structural Similarity Index
function [mssim, ssim_map]=ssim(img1, img2, K, window, L)
img1=imread(‘‘);
img2=imread(‘‘);
if (size(img1) ~=size(img2))
ssim_index=-Inf;
ssim_map=-Inf;
return;
end
[M N]=size(img1);
if (nargin==2)
if ((M<11) | (N<11))
ssim_index=-Inf;
ssim_map=-Inf;
return
end
window=fspecial(‘gaussian‘, 11, 1.5);
K(1)=0.01;% default settings
K(2)=0.03;
L=255;
end
if (nargin==3)
if ((M<11) | (N<11))
ssim_index=-Inf;
ssim_map=-Inf;
return
end
window=fspecial(‘gaussian‘, 11, 1.5);
L=255;
if (length(K)==2)
if (K(1)<0 | K(2)<0)
ssim_index=-Inf;
ssim_map=-Inf;
return;
end
else
ssim_index=-Inf;
ssim_map=-Inf;
return;
end
end
測試使用圖片為800×600像素的PNG圖片,轉(zhuǎn)換成Webp(需要安裝WebpCodec才能顯示)和JPEG后顯示如圖4所示。通過MATLAB計算,測試數(shù)據(jù)對比如表1所列。
圖4 三種格式的截圖對比
表1 測試數(shù)據(jù)對比
通過分析可看出JPEG具有比Webp略好的圖像壓縮質(zhì)量,但是Webp在畫質(zhì)上的損失換來了壓縮率的極大提升。通過高壓縮的FFmpeg編碼,雖然獲得了極高的壓縮比,但圖像質(zhì)量損失嚴重。
3.2 驗證圖片格式轉(zhuǎn)換后壓縮率和壓縮質(zhì)量
FFmpeg是一個開源免費跨平臺的視頻和音頻流及圖片編碼方案,它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec。Libwebp是Google公司編寫的轉(zhuǎn)換其他格式圖片為Webp格式的編解碼器。測試用圖片為800×600像素的PNG圖片,利用FFmpeg和Libwebp轉(zhuǎn)換工具在DOS環(huán)境下輸入如下格式轉(zhuǎn)換命令:
ffmpeg ?i myfile.png ?psnr ?target out.jpg
cwebp.exe ?tool to encode an image file (e.g. JPEG or PNG) into WebP
可以將測試用PNG圖片轉(zhuǎn)換成JPEG和Webp格式,經(jīng)驗證轉(zhuǎn)換工具的測試結(jié)果與編程測試結(jié)果基本相同。
結(jié)語
通過研究發(fā)現(xiàn)Webp格式圖片的壓縮質(zhì)量略低于JPEG格式圖片,可能是由于沒有成熟的編解碼器的原因。但是在損失了畫質(zhì)的基礎(chǔ)上,Webp格式圖片的壓縮率大為提升,優(yōu)于JPEG格式。經(jīng)過測試分析表明,人眼基本無法分辨出Webp格式畫質(zhì)損失,故而在帶寬需求極為緊張的時代,Webp格式具有很好的發(fā)展前景。