大家都知道视频中图像压缩的重要性,但是图像的安全性也至关重要。特别是在一些需要知识产权保护的视频文件中(比如教育类的视频就是其中的典型),对于视频信息的保护就显得尤为重要。那么今天就给大家介绍一种简单保护视频信息的方法(视频防篡改)。
在视频压缩编码的过程中,其实就是对视频图像的压缩。所有的图像压缩算法基本都遵循以下三点:
(1)把数据的重要部分和不重要部分划分出来:
(2)过滤掉不重要的部分:
(3)保存数据信息。
JPEG算法是图像压缩算法中的经典算。本文中就以JPEG算法压缩图像的过程为例,简单介绍一下图像防篡改的方法。
JPEG算法的第一步:是图像分割。把图像分割成大小为8x8的小块,这些小块在整个压缩的过程中都是单独被处理的。分割示例如下图(1)海岛
图1. 海岛8x8划分
JPEG算法的第二步:颜色空间的转换。如将RGB转换为YCbCr。这一步不在本次视频防篡改算法中,不做过多介绍。
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.嵌入密钥图像:
#对图像进行完8x8的划分后,要计算出每个8x8块里面要存放几个像素点。
#嵌入像素点的个数 = 嵌入图像像素点总数 / 被嵌入图像划分的8x8块个数。
处理效果见下图:
图(5)原始图像
图(6)嵌入的密钥图像
图(7)恢复 的原始图像
图(8)提取的密钥图像