你們都知道視頻中圖像壓縮的重要性,可是圖像的安全性也相當重要。特別是在一些須要知識產權保護的視頻文件中(好比教育類的視頻就是其中的典型),對於視頻信息的保護就顯得尤其重要。那麼今天就給你們介紹一種簡單保護視頻信息的方法(視頻防篡改)。算法
在視頻壓縮編碼的過程當中,其實就是對視頻圖像的壓縮。全部的圖像壓縮算法基本都遵循如下三點:數組
(1)把數據的重要部分和不重要部分劃分出來:安全
(2)過濾掉不重要的部分:函數
(3)保存數據信息。編碼
JPEG算法是圖像壓縮算法中的經典算。本文中就以JPEG算法壓縮圖像的過程爲例,簡單介紹一下圖像防篡改的方法。spa
JPEG算法的第一步:是圖像分割。把圖像分割成大小爲8x8的小塊,這些小塊在整個壓縮的過程當中都是單獨被處理的。分割示例以下圖(1)海島code
圖1. 海島8x8劃分視頻
JPEG算法的第二步:顏色空間的轉換。如將RGB轉換爲YCbCr。這一步不在本次視頻防篡改算法中,不作過多介紹。blog
JPEG算法的第三步:離散餘弦變換(DCT)。 DCT變換的原理是:世界上任何複雜的事物,均可以分解爲足夠多的簡單事物(相似於積分函數無限逼近)。那麼通過DCT變換,能夠把一個數組分解成數個數組的和,若是咱們把數組視爲一個一維矩陣,那麼能夠把結果看作是一系列矩陣的和。圖像在電腦中的表現形式就是數字矩陣,這一特色就徹底契合的DCT變換的特性。通過DCT變化的圖像數據,第一個數據叫作直流係數(DC),以後的數據叫作交流係數(AC)。DC係數表示的是圖像中的主要區域,AC係數表示的是圖像中的輪廓的細節部分。轉換結果如圖(2)。圖片
圖(2) DCT轉換結果
其中全是100的矩陣表明的是圖像中的背景部分,假如像素值都是同樣的,那麼通過DCT變化後圖像的能量將集中在左上角的直流部分。其他細節部分都變成了0。一個8x8的矩陣通過變換後就變成了一個只在左上角擁有一個數字的矩陣。可見DCT變換在圖像壓縮過程當中的威力有多大。
JPEG算法的第四步:數據量化。這一步在本次的視頻圖像防篡改中起到了相當重要的做用。量化的公式爲 : B = G / Q 。B表明的是量化後的結果。G表明的是輸如的值。Q表明的是量化係數。通過DCT變換以後的數據須要使用標準的量化表進行量化計算。本次視頻修改的部分只在亮度值中進行,因此介紹介紹標準亮度表。見圖(3)。
圖(3)標準亮度量化表
圖(2)的變化結果是左上角只有一個800的矩陣,通過標準量化表的量化計算(800 / 16 = 50) 那麼量化後的結果將變成左上角只有一個50的矩陣。其實在真是的圖像矩陣中,通過了量化計算後也會呈現出數字集中在左上角,右下角全是0的結果。量化的後的數據會先通過Z字型掃描。掃描過程見圖(4)
圖(4)Z字型掃描
接下來本文經過在宿主圖像的中嵌入一張指紋圖片,對視頻信息進行防篡改修改。
1.圖像的構成
圖像點和頻率的對應關係:
(1)圖像的低頻份量,圖像中主要的信息都保存在低頻信息中,他決定了圖像的灰度等級,對圖像結構的決定做用較小。
(2)圖像的中頻份量,中頻信息決定了圖像的基本結構,是圖像的主要結構。
(3)圖像的高頻份量,高頻信息是圖像的邊緣和細節,是對圖像中頻信息的進一步強化。
2.嵌入原理:
若修改低頻區域的數據,也就是修改大塊的色塊區域。容易對原始圖像形成損壞,也很容易被看出,隱蔽性較差。
若是對高頻信息進行修改,修改的部分就是圖像中的邊緣輪廓,採用這樣的方法對視頻的影響較小,可是會被大部分的高頻信息處理算法給破壞掉。達不到嵌入的目的。
而圖像中的中頻部分是比較適合進行防篡改修改的部分。
3.嵌入密鑰圖像:
(1)對圖像進行完8x8的劃分後,要計算出每一個8x8塊裏面要存放幾個像素點。
(2)嵌入像素點的個數 = 嵌入圖像像素點總數 / 被嵌入圖像劃分的8x8塊個數。
處理效果見下圖:
圖(5)原始圖像
圖(6)嵌入的密鑰圖像
圖(7)恢復 的原始圖像
圖(8)提取的密鑰圖像
參考: