摘要

在当今的视频传输与广播网络中,版权的保护问题已经变得越来越紧迫。这是因为视频拷贝的出现并没有降低原始视频文件的品质。一种保护版权的方法是在视频序列中嵌入一段数字密码,这段数字密码的学术名称叫做水印。

因此,这篇课题的目的就是研究低复杂度的压缩域H.264视频水印算法。视频编码标准决定了H.264/MPEG-4 AVC的压缩标准。这种算法充分使用了H.264压缩标准了明确性,原始视频的水印也是被随机嵌入的。这些都建立在水印算法安全的基础上。

在这种基于压缩域的H.264视频水印算法方案中,水印可以在没有原始视频序列存在的条件下被检测出来。水印可以在所选的编码器修正系数

的帮助下提取出来。

被提议的视频水印方案

导言

在这项方案中,使用的是被提议的基于压缩域的H.264视频水印算法,它工作在I帧的宏块层上。在这一层上,一个宏块中包含视频帧的一个16×16的采样区域。从这个包含于一个宏块上的16×16采样区域中,我们取出一个8×8的分块。从这个8×8的分块中,我们进一步提取一个4×4的分块,用

,

,

表示一个宏块中的4种不同的4×4分块。这个4×4分块将帮助我们在FDCT(快速离散余弦变换)之前构建4×4 DCT系数的输入分块。

对于水印的嵌入过程,选择I帧可以归结于两个主要的理由。首先,仅仅是因为它们的存在对视频序列来说是非常基本的。其次,P帧和B帧被运动补偿高度压缩,它们中只有较少的空间再嵌入水印。一个I帧中的宏块是被内部编码好的,这就意味着在同样的片段里,先前被编码的采样中,每个16×16或者4×4亮度区域和8×8色度区域是可以被预测的。正如表格3.1所示,两种亮度预测模式被赋予了不同的职责。第一,4×4亮度预测模式适用于帧的详细区域选择的;第二,16×16亮度预测模式适用于帧的平滑区域选择的。内部预测之后,残余数据的每个4×4分块被变换为一种整数形式。整数形式,意味着所有工作可以用避免降低解码精确度的整数算法来完成。如果宏块在16×16内部预测模式中编码,所有4×4分块的DC系数就被改变了。这种变换是一种在经过4×4整形变换之后的4×4哈德玛变换而形成的,为了使这些系数能够更加关联。

用被提议的视频水印算法,将水印嵌入到宏块中的一个量化系数中。水印嵌入过程中的量化系数

,是随机选择的,这就保证了方案中水印算法的安全性。即使将水印嵌入宏块的唯一一个量化系数中,也不会导致可见性。这样,攻击者也就不能确定究竟选择的是哪个量化系数。如果他想要使水印检测不能发生,他就必须改变至少一半的量化系数。如果一半量化系数被改变,视频也就无法使用了。

方案中所选的

是宏块中的AC量化系数,它利用

的几个比特来进行水印的嵌入。

控制了第i个宏块的AC量化系数

的选择。这项方案中的用到的视频水印算法,可以在自我联结攻击的情况下防止同样的

被每个视频帧使用,即使这样将会成为传输一个短

的有利条件。为了解决这个问题,我们需要对每个视频帧利用一些不同的

。这能解决一个问题,但是也产生了另一个问题。产生的问题是这样的,在这种情况下,我们需要传送一个很长的密钥

。传送一个很长的密钥

所带来的问题是,我们所用的基于压缩域的H.264视频水印算法根本无法实施。这个问题通过生成一个普通的密钥

来解决。

是来自一个公钥

和一个私钥

的结合,

是从宏块中提取的,它具有鲁棒性,

是被版权拥有者所拥有的,如图3.1所示。从每个宏块中提取

,用一种明文形式将

输入到一个密码系统中。密码系统产生一段密文,这就是第i个宏块详细的密钥。在这种情况下,利用一种又快又简单的视频水印方案比密码系统的安全性要高。

在这一过程中,我们利用了明文

的模二运算作为转换密码。密钥

的两个比特决定了宏块中8×8分块的选择,另两个比特决定了8×8分块中的4×4分块。在水印嵌入过程中,所选的4×4分块中的AC系数

是由4个比特的和所决定的。

宏块的一些特征系数很敏感,它们决定了一旦有些细微的扰乱,视频序列的品质就会降低。

应该被提取出来,以防攻击者想要细微的改变这些特征系数,然后视频序列的品质就降低了。这些特征系数在宏块中是确实存在的,因此应该切实得考虑它们。在这篇文章中,我们使用宏块中

分块的水平差分直流DC系数作为一种特征系数来提取

。第二种方法是利用宏块中的垂直差分系数

.

在水印嵌入过程中,我们只是利用了4×4内部预测编码的宏块。不用

预测编码宏块的理由是这样的,

内部预测模式已经被帧的平滑区域使用,同时水印的嵌入导致了

内部预测模式的可见性。另一个理由是,

内部预测编码的哈德玛变换增加了DC系数的去相关性,而且,许多去相关DC系数的值是零。所以,懂得怎样从宏块中提取

是很重要的。

公钥

的提取

应该用一种具有鲁棒性的方法提取,这样就能防止对视频序列的有害影响。这意味着

的提取不仅具有随机性,而且具有鲁棒性。为了完成目标,一种特性是利用了人类视觉的敏感性,还有一种是利用

分块的DC系数。虽然现在有两种特性我们可以使用,但是我们必须找出一种最好的方法来防止攻击者的攻击。

我们可以用DC系数本身来提取公钥

。但是在这种方法中存在一种威胁,攻击者已经有能力用精确的方法改变每个宏块的DC系数,而不影响宏块的总数。这样做的后果是,水印的检测会被完全阻碍,也就是说水印将不可能被提取。对这种行为的后果是可以预见的,尽管这种后果不会造成视频帧品质的改变。

另一方面,也可以用图3.1所表示的

分块的差分DC系数来提取

。使用这种方法后,攻击者将很难让版权拥有者对水印的检测不能发生。这是因为,他必须完成一个或多个宏块中DC系数的增加或减少,使

的提取完全不可能。一旦攻击者完成这项操作,将会造成可见性被辨认出的后果。用

表示

分块中的差分DC系数来提取

,如图3.1所示,1≤α≤M,1≤β≤N ,M × N是视频帧的总共大小。

另一个提取

的特征系数是垂直差分系数,

时,变化为

公钥

的决定

首先,我们提取第i个宏块中的

分块的

系数;第二,我们希望所有这些提取的

系数将呈现一种混乱形式。为了达到这个目的,所有提取的

系数将呈现为DC系数的矢量形式

。矢量形式的量化DC系数

是在第i个宏块中的,它是由24个块构成的。亮度分量Y提供了16个块给

,而色度分量

各提供了4个块给

,如下图3.3所示。

用第i个比特位表示出构成公钥的

所在第i个宏块中的位置。公钥在宏块中的位置,是从矢量形式的量化DC系数

中获得的。下面的式子就是获得的方法:

  

水印的嵌入过程

在压缩域的水印嵌入过程进行之前,首先要进行压缩视频比特流的解码,这是为了更接近熵编码标准。一旦熵编码标准与水印嵌入过程更接近以后,计算量将更少,因此也更适合于实时应用。此外,水印嵌入过程越接近DCT变换过程,对压缩视频比特流的品质影响就越小。在量化之后进行水印的嵌入过程是非常值得的,这是为了确保水印没有被消除,量化过程也没有产生损耗。因此,在这篇文章中,我们准备在重新排序的量化AC系数中嵌入水印。这是因为这样将避免量化过程产生损耗,熵编码与解码是一个快速的过程,水印的嵌入与提取也可以在实时的状态下完成。

我们可以发现,

实际上是由24个比特构成的,这些比特没有完全被利用。只有其中的几个比特,在系数

中被选择出来用作水印嵌入。从第i个宏块中选取的系数

是被修正过了,为了在宏块中嵌入水印信息

。如下所示的表格3.2揭示了所选系数

的修改方法。

V是原始视频序列,

是水印嵌入后的视频序列,S是比例系数,

是嵌入第i个宏块中的水印信号,

是第i个宏块中随机选取的用作水印嵌入的修正系数。从下面的式子中,我们可以得到嵌入水印的视频序列。

                                       (8)

当    

 时                                       

(8)式变化为

这只是最大限度改变水印嵌入的量化系数的一步,因此,一个宏块修正的量化步长值和同一个宏块的非量化DCT系数一样大。最终,水印嵌入导致的量化误差造成了视频的品质降低了。