MPEG-4视频数字水印技术的设计与实现
{
m[i]= m[i-1]+m[i-5]+m[i-6]+m[i-7];
m[i]=m[i]%2;
}
水印信息位扩展调制方式为:
·水印信息位为0,伪随机的扩展序列不变;
·水印信息位为1,伪随机的扩展序列取反。
这个过程可以用异或运算实现。代码如下:
WMij = Wi ^ m[j];
/?觹每一水印信息位扩展调制成255位的扩展调制位*/
这里Wi表示水印信息码流(WMij表示水印信息扩展调制码流。设UDCij表示视频IVOP色度DCT的直流系数)量化后、DC预测计算之前?雪序列,为了方便,用一个字节表示一位二进制码流信息。
水印嵌入过程如下:
if (WMij) UDCij |=1;
/*根据扩展调制后的码流嵌入水印信息*/
else UDCij &=0xFFFE;
2.2.2 视频数字水印的
提取
水印信息提取是水印信息嵌入的逆过程,代码如下:
if (inv_UDCij & 1) inv_WMij = 1;
else inv_WMij = 0;
这里inv_UDCij表示带有水印信息的视频IVOP色度DCT的直流系数(反量化前、DC预测计算之后)序列; inv_WMij表示检测到的水印信息扩展调制码流。每个IVOP色度子块在解码时得到一位扩展调制的信号位,每连续255个扩展调制的信号位可解调得到1位水印信息,具体分析如下:
用与原始伪随机序列结构相同且完全同步的序列与得到的连续255个扩展调制的信号接收序列进行异或运算,统计运算后1的个数记为OneCount。由于m序列的自相关函数只有两种取值(1和-1/(2n-1)),属于双值自相关序列。因此,如果数据未受到任何攻击和干扰,OneCount只有两种结果:255或0。当OneCount=255时,得到的水印信息位为1;当OneCount=0时,得到的水印信息位为0。如果数据受到攻击或干扰,OneCount有多种结果。根据统计分析,当OneCount>127时,得到的水印信息位为1,并且这255个IVOP色度子块中有(255-OneCount)个子块受到攻击或干扰;当OneCount<127时,得到的水印信息位为0,并且这255个IVOP色度子块中有OneCount个子块受到攻击或干扰。这样既可以统计总共有多少视频IVOP色度子块受到攻击或干扰,同时又能极强地恢复出原始水印信息。
3 试验结果分析
试验结果表明,m序列的长度越长,检测效果越好,但能够嵌入的水印信息量也相应地减少。本方案中水印只嵌入在视频的IVOP中,不修改PVOP和BVOP,对帧跳跃与帧删除攻击稳健,因为IVOP不可以被跳跃或删除。同时,由于水印信息嵌入在DCT的直流系数中,而直流系数的变化对视频效果会有较大的影响,所以采取将水印信息嵌入到色度子块DCT直流系数的最低位。这样不仅使水印嵌入计算的复杂度大为降低,为MPEG-4编解码节省了时间,还可取得良好的视频效果,达到了不可觉察性。从统计角度看也不会增加视频码流。另外,水印提取时无需原始视频。若水印信息未受到攻击,则本方案可准确地提取到原始视频的完全水印;若水印信息受到攻击,根据扩频解调性质,本方案可以最大限度地恢复出原始水印信息,并统计出有多少个IVOP色度子块受到攻击。
《MPEG-4视频数字水印技术的设计与实现(第3页)》