共计 1597 个字符,预计需要花费 4 分钟才能阅读完成。
大家都知道视频中图像压缩的重要性,但是图像的安全性也至关重要。特别是在一些需要知识产权保护的视频文件中(比如教育类的视频就是其中的典型),对于视频信息的保护就显得尤为重要。那么今天就给大家介绍一种简单保护视频信息的方法(视频防篡改)。
在视频压缩编码的过程中,其实就是对视频图像的压缩。所有的图像压缩算法基本都遵循以下三点:
(1)把数据的重要部分和不重要部分划分出来:
(2)过滤掉不重要的部分:
(3)保存数据信息。
JPEG 算法是图像压缩算法中的经典算。本文中就以 JPEG 算法压缩图像的过程为例,简单介绍一下图像防篡改的方法。
JPEG 算法的第一步: 是图像分割。把图像分割成大小为 8 ×8 的小块,这些小块在整个压缩的过程中都是单独被处理的。分割示例如下图(1)海岛
图 1. 海岛 8 ×8 划分
JPEG 算法的第二步: 颜色空间的转换。如将 RGB 转换为 YCbCr。这一步不在本次视频防篡改算法中,不做过多介绍。
JPEG 算法的第三步: 离散余弦变换(DCT)。DCT 变换的原理是:世界上任何复杂的事物,都可以分解为足够多的简单事物(类似于积分函数无限逼近)。那么经过 DCT 变换,可以把一个数组分解成数个数组的和,如果我们把数组视为一个一维矩阵,那么可以把结果看做是一系列矩阵的和。图像在电脑中的表现形式就是数字矩阵,这一特点就完全契合的 DCT 变换的特性。经过 DCT 变化的图像数据,第一个数据叫做直流系数(DC),之后的数据叫做交流系数(AC)。DC 系数表示的是图像中的主要区域,AC 系数表示的是图像中的轮廓的细节部分。转换结果如图(2)。
图(2)DCT 转换结果
其中全是 100 的矩阵代表的是图像中的背景部分,假如像素值都是一样的,那么经过 DCT 变化后图像的能量将集中在左上角的直流部分。其余细节部分都变成了 0。一个 8 ×8 的矩阵经过变换后就变成了一个只在左上角拥有一个数字的矩阵。可见 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)对图像进行完 8 ×8 的划分后,要计算出每个 8 ×8 块里面要存放几个像素点。
(2)嵌入像素点的个数 = 嵌入图像像素点总数 / 被嵌入图像划分的 8 ×8 块个数。
处理效果见下图:
图(5)原始图像
图(6)嵌入的密钥图像
图(7)恢复 的原始图像
图(8)提取的密钥图像
参考:
JPEG 算法解密(二)