高清視頻加密抽取算法

為了解決正版高清視頻節(jié)目的網絡授權問題,對高清視頻文件的網絡傳輸實現常規(guī)加密設計,并提出一種以網絡為信息加密密文載體,以密鑰和部分視頻內容為服務器管理對象的新型視頻加密保護技術。針對目前廣泛使用的H.264高清視頻編碼格式,通過分析編碼層數據,設計了一種視頻關鍵幀的抽取算法,經實驗驗證,算法可有效提高高清視頻的加密保護。

一、網絡認證系統(tǒng)總體框架

網絡認證系統(tǒng)主要分為抽取模塊和后期處理模塊2個部分。抽取模塊的主要功能是采用文件內容抽取算法對視頻數據進行抽取,產生主文件和抽取數據。然后再由后期處理模塊對其產生的主文件進行加密,并將抽取數據存放到遠程服務器上。最后將加密產生的主文件和相關配置文件進行壓制,最終制作成可供免費下載的高清視頻文件。

版權保護模塊中有效地利用互聯網的高速傳輸能力為用戶提供主文件的免費下載,而且用戶下載的信息為抽取數據的密文,密鑰和抽取數據存放在版權服務器數據庫中,以網絡為物理載體。這樣運用網絡將數據的主體與抽取部分在空間上實行分離,以增加視頻被破譯的難度,安全度比較高,提供可靠的安全性,能很好地適應現行視頻網絡點播模式。網絡認證系統(tǒng)示意圖如圖1所示。

二、抽取算法的設計

視頻數據抽取算法的核心目標是在抽取數據盡量少的情況下,對原始文件的破壞性比較大,影響文件的正常播放。利用H.264編碼后音視頻文件的特性數據進行分析,進而設計抽取算法。

1、H.264編碼分析

在H.264壓縮視頻流的足由一個一個的序列組成的,每個序列有一系列的I圖像、P圖像和B圖像組成??梢圆捎脦瑑染幋a和幀間編碼,其中H.264的幀間編碼能夠使用已經編碼的幀作為參考值,參考幀的數目最多可達32個。幀間編碼結構如圖2所示。

H.264每個序列開始都有一個參考圖像,IDR圖像也叫立即刷新圖像,其他的圖像為非IDR圖像。每當解碼器遇到IDR圖像時,即知道這為一個新的序列,需要馬上將舊參考隊列清空,并將解碼后的數據拋棄或輸出,然后開啟一個新的序列。如果將IDR圖像抽墩出來,填入隨機值來實現編碼層的版權保護,由于IDR圖像數據量所占比例比較大,一般為襤個視頻大小的1O%一15%,目前高清節(jié)目碼率大小一般可以達到20Mbps,如果抽取所有IDR圖像蹬于服務器上,實現邊下載邊播放,至少需要帶寬為2—3 Mbps,一方面給現有家庭的網絡帶來很大壓力,另一方面抽取的數據量達到1200 ~1800 MB之多,播放器終端進行數據還原的復雜度也比較大,耗時比較長,而且隨著高消視頻碼率的提高,問題會變得更加嚴重。因此,結合現有家庭帶寬的實際情況和播放器還原問題,需要設計算法,在抽取更少數據量的前提下,達到更好的抽取效果。

H.264碼流數據圖如圖3所示。分析H.264碼流序列時圖,在每個序列中,不僅有開始的IDR圖像,而且有大量的P圖像和B圖像,它們均包含序列參數集、圖像參數集、基本圖像和冗余信息等數據單元。

使用工具查看H.264視頻流發(fā)現,IDR圖像數據量比較大,而非IDR圖像數據量一般比較小,如圖4所示,白色條帶為IDR圖像,其大小為42014,黑色條帶為非IDR圖像,選取其中一條P圖像,其大小為138940非IDR圖像的數量比例比較大,而數據量比IDR圖像小得多,而且數據信息的重要性比較強,一旦缺失便無法正確的解碼,因此可以考慮抽取非IDR圖像中為抽取算法的基礎。

2、抽取算法規(guī)則

抽取非IDR圖像為基礎,具體抽取其中的哪些數據,還需要進一步分析,如果將非IDR圖像全部抽取,數據量依然很大,不滿足實際需求,因此還需要考慮3個問題:總抽取的數據量的大小、抽取哪些非IDR圖像和抽取非IDR圖像中的哪些數據。鑒于此,設計的抽取算法主要抽取非IDR圖像中針對上面提出的3個問題,并且為了確保抽取后破壞效果最佳,對抽取算法設定以下規(guī)則:

①抽取內容應該要覆蓋視頻的各個部分,即整個視頻的前面部分、中間部分和后面部分都抽取一定數目的非IDR圖像。

②由于人眼對視頻的分辨最低為24幀/s,一般視頻為25幀/s,因此可以采取對每一個非IDR圖像抽取一次的方式。

③整個非IDR圖像的數據量比較大,如果僅按規(guī)則①和規(guī)則②的方式進行抽取,得到的數據量會比抽IDR圖像還多,不夠現實。由上面的分析可知,當高清節(jié)目碼率為20 Mbps,家庭帶寬為2 Mbps時,為了實現正常播放設定抽取比例的上限為整個視頻大小的10%。

④根據每個需要抽取的圖像大小占所有要抽取圖像大小的比重不同,對每幅圖像抽取的大小也不同,比重大的抽取的字節(jié)數多,比重小的抽取的字節(jié)數少。

⑤針對抽取非IDR圖像中的哪些數據的問題,由上面的H.264碼流數據圖可知,一幅圖像中包含分界符、序列參數集、圖像參數集、基本圖像和冗余信息等數據單元,如果從每幅圖像的開頭抽取,理論上會破壞其基本的結構,解碼器無法解碼該圖像。由上面幾條規(guī)則可以計算出每幅圖像抽取的大小,然后進行實際抽取發(fā)現會出現以下2種情況:①在播放過程中會直接跳過該圖像,出現明顯的停頓,但是馬賽克現象不明顯,基本可以正常觀看;②破壞整個文件的結構,無法播放。這樣效果不穩(wěn)定,為了達到穩(wěn)定的效果,從其中的基本圖像信息部分開始抽取,一方面由于沒有破壞圖像的結構,可以解碼,另一方面基本圖像信息缺失導致無法正確解碼,視頻觀看效果會比較差。

基于以上規(guī)則,最終得出設計的抽取算法為:采取對每一個非IDR圖像抽取一次的方式,抽取其中的基本圖像信息,抽取的總數據量可以由用戶指定,其上限為計算得出的抽取總量上限,而每幅圖像抽取的多少根據該圖像大小占所有要抽取圖像大小的比重計算得出,然后根據計算的抽取大小對非IDR圖像進行抽取,并將抽取過的部分用隨機數進行填充。

三、抽取算法的測試分析

為了進一步從理論上分析驗證所設計算法的有效性,做了以下實驗:將設計的算法和原有的算法進行比較,分別采用2種算法對同一文件Fls.mp4進行抽取,其中抽取的比例相同,均為5%,然后對比抽取后MP4文件的峰值信噪比(Peak Signal-to-Noise Ratio.PSNR)值。

原有抽取算法為:根據一定的抽取比例,對整個文件進行均勻抽取,抽取數據塊的大小為2 KB(2*1024+1024),抽取時不涉及到H.264編碼層結構。

PSNR是最常剛的平面圖像的客觀評價方法,通常被用作處理后視頻質量的測量標準。用PSNR值衡量被測圖像的質量是通過計算被測圖像偏離原始圖像的誤差來實現的。對于給定的一幅大小為W*H的數字圖像f(x,y)和抽取后的圖形f(x,y),

式中,(2n-1)2是圖像中最大可能信號值的平方,n為每一個像素的比特數,由于圖像RGB色彩模式中每個像素RGB分量有效值在0—255,因此測試中取該值為255 *255;MSE為抽取后圖像與原始圖像之間的均方誤差:

首先分別求出R、G、B三色的MSE值,便可以得到MSE的平均值,然后代人式(3),即可求得PSNR值。實驗測試在PC機上進行,所使用的操作系統(tǒng)為Windows 7。經2種算法處理后視頻的PSNR值,以及最后一幀原始圖像和抽取后圖像如圖5和圖6所示。

圖5和圖6中,位于左邊的是原始視頻中的圖形,右邊的為抽取后視頻中的圖形。其中抽取算法處理后視頻的PSNR值為7.846379,均勻抽取算法處理后視頻的PSNR值為10.661 0690PSNR值越小,說明同一個視頻點抽取后圖像與原始圖像之間的差異越大,抽取后圖像所保留的原始圖像質量成分也就越低,得到的圖像質量也就越差,抽取達到的效果就越好,而且算法抽取后視頻的播放效果也更差,因此在客觀上所設計的算法更優(yōu)。

小知識之H.264

H.264是國際標準化組織(ISO)和國際電信聯盟(ITU)共同提出的繼MPEG4之后的新一代數字視頻壓縮格式。H.264是ITU-T以H.26x系列為名稱命名的視頻編解碼技術標準之一。H.264是ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動圖像編碼專家組)的聯合視頻組(JVT:joint video team)開發(fā)的一個數字視頻編碼標準。該標準最早來自于ITU-T的稱之為H.26L的項目的開發(fā)。H.26L這個名稱雖然不太常見,但是一直被使用著。H.264是ITU-T以H.26x系列為名稱命名的標準之一,AVC是ISO/IEC MPEG一方的稱呼。