欢迎来到学术参考网

基于块分类的自适应视频水印算法在TMS320DM643x

发布时间:2015-12-14 14:09

摘 要:视频水印顾名思义就是加载在数字视频上的水印,其目的主要是对数字作品进行版权保护,从而确保版权所有者的合法利益。常用的视频水印的嵌入算法很多,可以分为以下两大类:在原始视频中嵌入水印和在压缩视频流中嵌入水印。  

关键词:视频水印;算法;编程

  本文所研究的视频水印处理算法为一种基于块分类的自适应视频水印处理算法。算法同时考虑帧内和帧间的信息,根据运动信息和区域复杂度对原始视频的图像块进行分类。在帧内,对8×8的图像块按其是否包含细节信息(边缘或纹理)来进行分类;同时考虑人眼对于静止物体和运动物体不同的视觉特性,在相邻帧间进行运动检测,将图像块分为慢速运动区域和快速运动区域两类。通过这两层检测机制,选择既包含细节信息、又属于快速运动区域的图像块来嵌入水印,这样使得水印嵌入的位置自适应于人类视觉系统和视频信号的特性。此外,该算法克服了大多数自适应水印处理算法不能够实现盲提取的特点,而且水印检测及提取过程中不需要参考其他附加同步信号。仿真实验验证了算法的有效性。
  本文将就如何在TMS320DM643x DSP芯片上实现基于块分类的自适应视频水印算法给出具体的编程实现方案,包括设计内容,算法实现框架和流程,DSP编程实现技术,TMS320DM643x EDMA在算法实现中的应用,视频采集、DCT变换、水印嵌入等模块编程实现,仿真测试等实现方案。
1.算法的主要内容
  经过分析,在TMS320DM643x DSP芯片上实现基于块分类的自适应视频水印算法,主要设计内容包括:
(1) 在基于TMS320DM643x的硬件平台上完成视频的实时采集;
(2) 对采集到的视频图像进行8*8图像分块切割;
(3) 对每一个8*8图像块进行快速DCT变换;
(4) 根据公式(2-1)对帧内图像块进行检测,获得高细节区域图像块集合S1;
(5) 根据公式(2-2)对帧间图像进行检测,获得快速运动区域图像块集合S2;
(6) 取集合S1和S2和交集,获得自适应的水印嵌入区域图像块集合;
(7) 生成视频水印;
(8) 嵌入视频水印;
(9) 将嵌有水印的视频在硬件平台上显示输出。
(10) 为提供仿真演示,算法还提供以下功能:
(11) 上位机通过JTAG接口传输视频水印到系统中;
(12) 根据上位机发出的请求,进行水印检测;
(13) 根据上位机发出的请求,进行水印提取;
(14) 从系统中获得视频图像及从中提取出的水印。
2.基于块分类自适应视频水印算法的程序框架与流程
  本算法的实现采用如图1所示的系统框架结构。图中虚线框所包括的部分为算法的软件实现部分,包括:视频采集模块、视频采集驱动程序、视频显示模块、视频显示驱动程序、视频水印实时嵌入模块和视频水印检测与提取模块。图中EDMA、DDR RAM和JTAG为硬件平台所提供的基础环境。其中EDMA为算法工作时实现数据传输的关键通道,视频采集所获得的视频图像、用于显示的视频图像、水印嵌入与检测时所需获取的视频图像等数据都依赖于EDMA实现CPU与DDR RAM之间的高速数据传输。上位机可通过JTAG仿真器接口完成待嵌入水印/检测和提取到的水印与DSP之间的传输。

图1  水印系统软件模块结构图
  TI公司针对TMS320DM643x平台提供了一个简单的DSP/BIOS实时操作系统环境。在该操作系统环境中,我们可以编写mini-Driver驱动程序来完成对视频采集/视频显示设备的控制,并按DSP/BIOS约定使用其FVID视频设备标准设备驱动接口进行编程。因此,视频采集模块、视频显示模块的实现相对比较简单,只需按FVID驱动接口调用相关的FVID函数及设置配置参数即可。有关视频采集和显示的重点和难点在于TVP5150采集芯片和SAA7105显示芯片的mini-Driver驱动程序编写。
  在"帧间运动检测"模块中,按公式(2-2),将本次DCT变换后每一图像块的直流系数与所缓存的前一帧图像DCT变换结果("前一帧DCT变换缓存"模块功能)的对应位置图像块的直流系统相减取绝对值,如果绝对值大于阈值Tm,则将该图像块的位置编号(i,j)记录下来,存储为集合S2。
  "帧间运动检测"模块检测结束后,将本次DCT变换的结果将由"前一帧DCT变换缓存"模块进行缓存。
  "计算水印嵌入区域"模块计算集合S1与S2的交集,确定水印的嵌入位置。
  "水印获取"模块通过DSP/BIOS RTDX模块,利用JTAG接口从上位机获得待嵌入的水印信息。通常来讲,水印获取工作仅需在第一次嵌入水印时执行,后续的嵌入操作可直接利用缓存的水印信息。
  "水印生成"模块将水印信息转换为二值水印、变换为双极性形式。当要嵌入水印的大小大于8*8时,则将水印分割为若干8*8的子块。根据预先设定的密钥,将水印置乱。
  "位平面水印嵌入"模块将生成的加密后的水印与计算出的水印嵌入区域,按位平面替换算法将水印嵌入到视频图像中。
  如果检测出图像含有水印信息,则包含水印信息的结果信息可交由"水印检测结果输出"模块进行输出(告知图像中含有水印)。
  检测出水印信息后,"水印提取算法"模块按"加权综合法"进行提取。
  "水印解密与恢复"模块将提取出的水印信息依"水印生成密钥"进行解密,还原水印二值图像,并通过"提取水印输出"模块将水印图像输出到特定位置。
3算法在TMS320DM643x芯片上的编程实现技术
  TI公司为其所生产的DSP系列芯片提供了Code Compose Studio(CCS)集成开发环境。该集成开发环境包含对不同系列的DSP芯片编程所需C/C++编译器、汇编程序、链接程序、配置工具和实时调试工具。本算法的编程采用了CCS 2.2版本,该版本的集成开发环境对TMS320DM643x提供了良好的支持。
  CCS 2.2集成开发环境下,对DSP的编程可采用C/C++高级语言,也可使用汇编语言,或二者混合。C/C++编程语言简单方便,但编程时无法针对TMS320DM643x芯片的指令并发执行和指令流水线特点进行人为指定和优化,因此,使用C/C++编程对程序的指令执行性能优化完全依赖于编译器的自动优化功能。汇编语言则完全可由编程者自行安排指令的执行顺序、并发执行时所分配的执行单元等,因此,编写良好的汇编程序将高效地发挥DM643x芯片的指令并发和流水执行效率,提升程序的性能。然而,要有效地编写汇编程序,需要深入了解DSP芯片的硬件细节,程序的编写复杂且效率较低。
  
  本文首先阐述了视频水印技术,以及基于块分类的自适应视频水印处理算法的主要内容,和设计思路,通过分析得出基于块分类 自适应视频水印算法的程序框架与流程,随即简要介绍了算法在TMS320DM643x芯片上的编程实现技术,对基于块分类的自适应视频水印处理算法在DM643X上的实现提出了一个良好的模型,并对后期的编程和实现起指导作用。
  
参考文献:
[1] 邬少飞,张炫.数字视频水印技术研究.网络安全技术与应用,2006.3:75-76
[2] 刘连山、李人厚、高琦.视频数字水印技术综述.计算机辅助设计与图形学学报,2005 年3 月,第17 卷第3 期:379-386
[3] 易威.基于DSP的视频水印系统:[硕士学位论文].武汉,武汉理工大学,2006.4  

上一篇:MPEG-1声音压缩与MP3

下一篇:浅谈数理逻辑在计算机科学中的应用