【摘要】 灰階直方圖是一種有效的檢測畫質的手段,本文通過這種方法做了一系列對比實驗,針對外來素材如何進行轉碼的問題,給出了具體的解決方案。
【關鍵詞】視頻編碼格式 灰階直方圖 輸出碼率 MPEG 轉碼 GOP 幀內壓縮 幀間壓縮 I幀 B幀 P幀
隨著新媒體業務的擴展,視頻編輯系統接收的外來素材日趨繁多,其視頻格式也是多種多樣,包括AV I, MPG,MP4,MOV,WMV,MKV,MXF,FLV,RM/RMVB,MTS等等,這時我們就會面臨非常多的困惑:怎樣設置轉碼格式,能夠使得畫質達到最優?是否存在一種針對畫質優劣的檢測方法?帶著這些問題,我們首先分析了影響畫質的因素。
一.影響畫質的因素
所謂“視頻的畫質”,除去高清素材、標清素材這些原始因素,在同等視頻源的前提下,視頻的壓縮編碼方式才是影響畫質的“幕后真相”,簡單來說,就是視頻編碼格式。但這里所說的格式,并非后綴名.avi或.mp4或.rmvb的格式那么簡單,那只不過是文件封裝格式,即包含了音頻、視頻、時間碼等附加信息的一個容器,而視頻編碼的核心是MPEG-2、H.264、Divx之類的壓縮技術,這種技術決定了視頻是如何被壓縮的,二者的關系如圖1所示。

圖1 容器格式與視頻編碼格式的關系
可見容器只是一個外殼,內部的視頻編碼格式的才是影響畫質的關鍵。具體來說由兩個因素決定:壓縮效率、輸出碼率。在輸出碼率不變的前提下,壓縮的效率越高,
畫質越好,效率越低,畫質損失的就越多。視頻的畫質由以上兩者來決定,也就可以采用不同的編碼方式,對相同的原始素材進行編碼,通過對比實驗來進行評測。這里就用到了灰階直方圖,一種可以描述畫質的統計學圖像。接下來詳細介紹灰階直方圖檢測法。
二.畫質檢測方法
1. 灰階直方圖
灰階可以理解為“灰色的階梯變化”,從純黑到純白,每一個“階”就發生一點變化,以8bit灰階為例,就是用8位二進制的數字表示從純黑到純白的變化過程,即0~255,設0為純黑,255為純白,則一共有256種灰度組成的“階”的變化。如果把分布在所有灰階的像素數統計出來,就得到一個直方圖。圖2就是一個從純黑到純白的漸變條,純黑的灰階為0,純白為255,中間32、64、96、 128、160、192、224七種不同灰階的色塊,統計出的直方圖中,就只有這9種顏色組成的“豎線”,豎線的長度即該色階的面積。顯然,最大的色塊是純黑和純白,所以直方圖中表示0和255的兩根線最長。

圖2 灰階與直方圖的對應關系
直方圖可以統計出圖像中各種顏色的百分比。假設一幅黑白圖像,有且僅有純黑、純白兩種顏色,沒有過渡色,那么在圖像參與重新編碼、壓縮(如幀內壓縮、幀間壓縮)計算的時候,就會產生非純黑非純白的“雜色”,此雜色的灰階必然處于1~254的區間范圍,根據直方圖,這些部分的面積和百分比可以統計出來。
2.螺旋測試圖
螺旋圖在保證畫面為純黑純白的同時,又最大程度的提高了畫面的復雜度,從而放大了壓縮編碼時的破壞效果。如圖3所示為螺旋測試視頻的截圖,該圖像由黑白相間的螺旋條帶與白色螺旋網格組成,在視頻播放時,黑白螺旋向相反的方向旋轉,形成錯綜復雜的動態變化,從而增加了視頻編碼的復雜度。

圖3 螺旋測試(視頻截圖)
盡管圖像復雜,顏色上仍然是由灰階為0和255的純黑純白二色構成。當對視頻進行轉碼,圖像被壓縮時,由于幀內壓縮、幀間壓縮的差值計算,必然產生了處于1~254的灰色部分,這些部分并非原始圖像中的內容,而是由于壓縮計算產生出來的,反映了壓縮編碼對畫質的破壞程度。
如圖4,截取轉碼后視頻中的一幀,放大后可看到白色不再是純白,中間夾著許多灰色的“碎片”,這些碎片占畫面的比例,可以用這些顏色的面積百分比來表示,除此之外,黑白相間的部分也有許多模糊不清的地方,在黑白邊緣出也產生了雜色。

圖4 轉碼后放大可看到“碎片”
值得注意的是,灰階直方圖檢測方法并不局限于螺旋測試圖作為樣本,通過各類繪圖軟件,還可以編輯出其他形式的測試樣本,只需最大程度的提高圖像復雜度即可。
使用直方圖,即可測出灰階為1~254的雜色占整幅畫面的比例,如圖5所示,這些部分的比例越高,畫質破壞程度越大。

圖5 雜色占整幅圖像的百分比
上圖中,通過直方圖統計信息可以得出,灰階為1~254的雜色部分占畫面的百分比為29.90%。根據以上數據,我們就可以控制不同的變量,來進行對比實驗。
三.應用實例:MPEG視頻轉碼對比實驗
為了進行對比實驗,樣本視頻必須采用統一的素材源制作,并且宜采用市面上最為通用的、視頻編輯軟件最認可的格式,參數如下:

1. 控制變量
以上參數只是轉碼設置的一個大的框架,具體到細節,也就是我們要研究的兩大變量,第一個變量即輸出碼率,第二個是壓縮效率,后者反映在MPEG的GOP設置上,GOP (Group of Pictures)是MPEG標準中的重要內容,涉及到I幀、B幀、P幀、幀內壓縮、幀間壓縮等相關概念。
在同等的GOP設置下,輸出碼率不同,畫質必然不同。這里的第一個實驗即采用300Mb/s、100Mb/s、 80Mb/s、35Mb/s四種不同碼率分別對樣本進行轉碼,用灰階直方圖測定其雜色百分比,即可驗證“碼率越高畫質越好”這一推斷。
2.實驗A:不同碼率下的畫質檢測
在這個實驗中GOP設置要盡可能簡單,只做幀內壓縮,設置為“僅I幀”(Intra coded picture圖像內部編碼幀,簡稱I幀),沒有幀間壓縮或預測算法,轉碼軟件GOP設置和輸出碼率如圖6所示。

圖6 GOP設置(左)與碼率設置(右)
將四個樣本的碼率分別設為300Mb/s,100Mb/s, 80Mb/s,35Mb/s,轉碼并截圖后分別得到以下四張圖,再分別用直方圖測定其雜色百分比,如圖7所示。

圖7 四種碼率及其灰階直方圖

顯然,碼率越高,雜色越少,畫質也就越好。另外,從上述數據中,我們還能得出一些其他推論:從300Mb/s到100Mb/s畫質變化只有0.7個百分點,盡管兩者的文件大小差了兩倍之多,這說明碼率增加的太高,也沒有太大意義,反而給文件傳輸增加了負擔。
碼率從80Mb/s到35Mb/s,同樣是碼率變化,畫質改變就大的多了,雜色增加了約6個百分點,可見視頻壓縮編碼存在一個“崩潰點”,當碼率低于這個值,畫質會迅速下降。
MPEG-I幀是僅采用了幀內壓縮的格式,壓縮效率并不理想,這時就要考慮優化GOP設置,加入幀間壓縮了。
3.實驗B:加入P幀的GOP設置對畫質的優化這里簡要介紹一下MPEG-I BP的GOP原理。如圖8所示,圖像組的第一幀是I幀,由I幀預測出2個P幀(Predictive預測幀),然后由I幀和P幀、或者P幀和P幀雙向預測出中間的B幀(Bidirectional predictive雙向預測幀),每5幀圖像共同組成一個圖像組,組中有且僅有一個完整的I幀,可見,這種編碼技術大幅度提高了壓縮效率。

圖8 幀間壓縮原理
GOP的P幀和B幀結構可以用N和M來表示,圖8是N=5,M=2的情形(即GOP總共5幀,BP周期為2的BPBP……結構)
從實驗B開始將GOP設定為12幀,在做灰階直方圖的時候,截取連續12幀的圖像進行統計,可以直接把螺旋測試視頻長度做成12幀(約0.48秒),即只有一組GOP,對12幀的雜色百分比分別測定之后,取其平均值即可得到結論。本次實驗統一采用35Mb/s的碼率,僅加入了P幀,所以GOP結構為N=12,M=1(無B幀)。
測定結果如下:

可見,相比實驗A的35M b/s的M P E G-I幀相比, 雜色百分比從3 2 . 6 6 % 下降到2 8 . 8 6 % , 這個改善程度比從100M b/s到300M b/s都要理想的多,這說明,在相同碼率下,采用幀間壓縮與幀內壓縮結合的方式,能大大降低雜色成分在畫面中的比例。
4 . 實驗C : 加入B幀和P幀的GOP設置對畫質的優化
B幀是夾在P幀中間并呈周期性出現的,每個周期的B幀數量相同,這里繼續保持35Mb/s的碼率,GOP采用N=12,M=2結構。
結果如下:

整體來看比實驗B的結果又優化了一點,約0.2個百分點,其中能看出B幀的雜色百分比達到了29%,明顯高于I幀和P幀,但平均下來的還是優于實驗B的結果。此外我們還檢測了M周期為3/4/6的樣本,一組G OP的雜色仍然保持在28.6%左右,幾乎沒有變化。
四.結論
實際上, 灰階直方圖的檢測方法可以推而廣之到更多的編碼格式,應用到網絡視頻、流媒體等更多領域。特別是在上述實驗中,我們發現了“崩潰點”的存在,這說明,視頻軟件的輸出碼率一定存在一個“最優解”,即如何在碼率盡可能低的情況下,讓畫質保持在可以接受的范圍,既保證了播放流暢度,也不影響觀感體驗。希望本文的畫質檢測方法和相關數據,能為視頻編輯、視頻轉碼等工作提供一些參考意義。