【计算机科学与应用】基于多域变换的视频水印嵌入算法研究

导读:

为提升视频水印在版权保护中的实际应用效果,本文提出一种基于多域变换的视频水印嵌入算法。该算法结合离散小波变换(Discrete Wavelet Transform, DWT)与离散余弦变换(Discrete Cosine Transformation, DCT),利用其在时频域分析与能量集中特性上的优势,实现水印信息在频域中的鲁棒嵌入。水印嵌入前通过Arnold置乱增强安全性,在帧图像中选取HL子带进行DWT分解,再对其进行DCT处理,将水印嵌入中频系数区域。实验分别在高斯噪声、椒盐噪声、剪切攻击、滤波攻击等场景下对算法的鲁棒性进行评估。结果表明,该算法在保证水印不可见性的同时,具备较强的抗攻击能力,适用于数字视频的版权保护场景。

作者信息:

胡泽宁, 王金戈:北京印刷学院信息工程学院,北京;田益民*:北京印刷学院基础部,北京

正文

尽管现有视频水印算法在特定攻击场景下表现良好,但大多数方案仅能针对某一类或少数几类攻击手段,对复杂环境的适应性仍有待提高。因此,本文旨在设计一种融合多域变换、具备良好不可见性与鲁棒性的数字视频水印嵌入算法,以实现对多种常见攻击的有效抵抗,提升数字视频版权保护的实用性和安全性。

本文总体的技术路线图如图1所示。

本文使用Arnold变换完成水印的置乱。改变水印图像每个像素点的位置,得到置乱后的水印矩阵,以置乱次数作为密钥保存。

取a = 1、b = 1时,代码实现如下:

本文结合DCT变换域DWT变换,采用灰度图像作为水印信息,提出了一种基于DCT变换和DWT变换的数字视频水印算法。

1、视频水印嵌入步骤

Step 1:利用线性编辑软件Adobe Premiere对原视频进行解码,获得帧图像序列。

Step 2:对视频的每一帧嵌入水印,具体流程如下:

1) 对原始视频剪切分帧获得帧图像序列,对每一帧进行离散小波变换,得到4个子带:LL、LH、HL、HH,综合考虑不可见性和鲁棒性后,选择在HL子带中进行下一步变换。

2) 在HL系数组成的矩阵中进行分块,每个分块是8 × 8个像素点大小,即每个块包含64个像素点,随后对分块后的矩阵计算离散余弦变换。

3) 在经DCT变换后的每个图像子块中,选取一个中频系数,再随机选择该点周围的6个系数。在第K块中选取一个中频系数,设为y (ij),选取其周围的6个系数,分别为y(i + 3, j − 3)、y(i + 2, j − 2)、y(i + 1, j − 1)、y(i − 1, j + 1)、y(i − 2, j + 2)、y(i − 3, j + 3),计算其平均值aver。设watermarkImage(i, j)为经过Arnold置乱变换后的水印图像,strength为嵌入强度。然后对每一个y(ij)做嵌入运算:

4) 将DCT域嵌入水印后的每一个子块进行DCT变换的逆变换,然后进行DWT变换的逆变换,得到嵌入水印的帧图像。

5) 将嵌入水印的帧图像序列导入pr软件进行重新编码,进一步得到嵌入水印的视频。

2、水印提取步骤

Step 1:用pr软件将嵌入水印的视频解码,导出嵌入水印的帧图像序列,对嵌入水印的每一帧图像进行DWT变换,选取HL子带,将其分为8 × 8个像素点大小的块,并依次对嵌入水印的块进行DCT变换。

Step 2:在DCT变换后的系数中,找出嵌入水印信息的中频系数的位置y(ij),计算其周围6个系数的平均值aver′ 。

Step 3:按照运算(12)提取水印:

Step 4:对提取出来的水印图像进行解密,得到水印图像。

本文选取了常见的噪声、滤波、剪切、缩放等攻击,来检验嵌入水印的载体视频遭受攻击后的视频质量以及水印的鲁棒性。将攻击后的帧图像序列与原图像进行比对计算峰值信噪比,从攻击后的帧图像中提取水印,并计算其与原始水印图像的相关性系数,来检验算法的鲁棒性。

结论

实验结果表明,该算法不仅能够抵抗常见的噪声、滤波、剪切、缩放等攻击,而且能够抵抗部分针对帧攻击以及视频在传输过程中可能遭受的帧率变化、分辨率变化、运动模糊、压缩等攻击,在各种攻击下具有较好的鲁棒性。通过对视频进行多种攻击,发现对视频的视觉效果影响较小,仍然具有较强的不可见性,也印证了算法的有效性。

基金项目:

北京市教育委员会科技一般项目(KM202110015001);

北京印刷学院重点教学改革项目——工程认证背景下的工科数学教学改革对大学生创新思维与创业能力培养的研究与实践。

更多内容请点击原文链接:https://doi.org/10.12677/csa.2025.157186

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91000.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Axios基本使用

介绍 Axios 是一个基于promise网络请求库,作用于node.js和浏览器中 特性 从浏览器创建 XMLHttpRequests从 node.js 创建 http 请求支持 Promise API拦截请求和响应转换请求和响应数据取消请求自动转换JSON数据客户端支持防御XSRF 安装 项目中 npm install axi…

【大模型LLM】梯度累积(Gradient Accumulation)原理详解

梯度累积(Gradient Accumulation)原理详解 梯度累积是一种在深度学习训练中常用的技术,特别适用于显存有限但希望使用较大批量大小(batch size)的情况。通过梯度累积,可以在不增加单个批次大小的情况下模拟…

阿里云Ubuntu 22.04 ssh隔一段时间自动断开的解决方法

在使用ssh连接阿里云ubuntu22.04隔一段时间之后就自动断开,很影响体验,按照如下配置就可以解决vim /etc/ssh/sshd_config

R中匹配函数

在 R 中,字符串匹配是一个常见的任务,可以使用正则表达式或非正则表达式的方法来完成。以下是对这些方法的总结,包括在向量和数据框中的应用。 正则表达式匹配 常用函数grepl: 功能:检查向量中的每个元素是否匹配某个正…

Ubuntu服务器上JSP运行缓慢怎么办?全面排查与优化方案

随着企业系统越来越多地部署在Linux平台上,Ubuntu成为JSP Web系统常见的部署环境。但不少开发者会遇到一个共同的问题:在Ubuntu服务器上运行的JSP项目访问缓慢、页面加载时间长,甚至出现卡顿现象。这类问题如果不及时解决,容易导致…

web刷题

[极客大挑战 2019]RCE ME 打开环境,代码逻辑还是很简单的 思路是传参code参数,一般传参shell然后用蚁剑连接看flag,但是这题做了之后就会发现思路是没错但是这题多了一些验证,这题就是无字符rce,可以考虑用取反&…

FFmpeg+javacpp中FFmpegFrameGrabber

FFmpegjavacpp中FFmpegFrameGrabber1、FFmpegFrameGrabber1.1 Demo使用1.2 音频相关1.3 视频相关2、Frame属性2.1 视频帧属性2.2 音频帧属性2.3 音频视频区分JavaCV 1.5.12 API JavaCPP Presets for FFmpeg 7.1.1-1.5.12 API1、FFmpegFrameGrabber org\bytedeco\javacv\FFmpeg…

1-FPGA的LUT理解

FPGA的LUT理解 FPGA的4输入LUT中,SRAM存储的16位二进制数(如 0110100110010110)直接对应真值表的输出值。下面通过具体例子详细解释其含义: 1. 4输入LUT 4输入LUT的本质是一个161的SRAM,它通过存储真值表的方式实现任意…

Vue2文件上传相关

导入弹窗<template><el-dialog:title"title":visible.sync"fileUploadVisible"append-to-bodyclose-on-click-modalclose-on-press-escapewidth"420px"><div v-if"showDatePicker">选择时间&#xff1a;<el-date…

vue使用xlsx库导出excel

引入xlsx库 import XLSX from "xlsx";将后端接口返回的数据和列名&#xff0c;拼接到XLSX.utils.aoa_to_sheet中exportExcel() {debugger;if (!this.feedingTableData || this.feedingTableData.length "0") {this.$message.error("投料信息为空&…

卷积神经网络(CNN)处理流程(简化版)

前言 是看了这个大佬的视频后想进行一下自己的整理&#xff08;流程只到了扁平化&#xff09;&#xff0c;如果有问题希望各位大佬能够给予指正。卷积神经网络&#xff08;CNN&#xff09;到底卷了啥&#xff1f;8分钟带你快速了解&#xff01;_哔哩哔哩_bilibilihttps://www.…

DBSyncer:开源免费的全能数据同步工具,多数据源无缝支持!

DBSyncer&#xff08;英[dbsɪŋkɜː]&#xff0c;美[dbsɪŋkɜː 简称dbs&#xff09;是一款开源的数据同步中间件&#xff0c;提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务&#xff0c;提供…

kafka开启Kerberos使用方式

kafka SASL_PLAINTEXT serviceName 配置&#xff1a; /etc/security/keytabs/kafka.service.keytab 对应的用户名 $ cat /home/sunxy/kafka/jaas25.conf KafkaClient { com.sun.security.auth.module.Krb5LoginModule required useKeyTabtrue renewTickettrue serviceName“ocd…

Unity教程(二十四)技能系统 投剑技能(中)技能变种实现

Unity开发2D类银河恶魔城游戏学习笔记 Unity开发2D类银河恶魔城游戏学习笔记目录 技能系统 Unity教程&#xff08;二十一&#xff09;技能系统 基础部分 Unity教程&#xff08;二十二&#xff09;技能系统 分身技能 Unity教程&#xff08;二十三&#xff09;技能系统 掷剑技能…

局域网TCP通过组播放地址rtp推流和拉流实现实时喊话

应用场景&#xff0c;安卓端局域网不用ip通过组播放地址实现实时对讲功能发送端: ffmpeg -f alsa -i hw:1 -acodec aac -ab 64k -ac 2 -ar 16000 -frtp -sdp file stream.sdp rtp://224.0.0.1:14556接收端: ffmpeg -protocol whitelist file,udp,rtp -i stream.sdp -acodec pcm…

基于深度学习的医学图像分析:使用YOLOv5实现细胞检测

最近研学过程中发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的…

32.768KHZ 3215晶振CM315D与NX3215SA应用全场景

在现代电子设备中&#xff0c;一粒米大小的晶振&#xff0c;却是掌控时间精度的“心脏”。CITIZEN的CM315D系列与NDK的NX3215SA系列晶振便是其中的佼佼者&#xff0c;它们以 3.2 1.5 mm 的小尺寸”(厚度不足1mm)&#xff0c;成为智能设备中隐形的节奏大师。精准计时的奥秘这两…

嵌软面试——ARM Cortex-M寄存器组

Cortex-M内存架构包含16个通用寄存器&#xff0c;其中R0-R12是13个32位的通用寄存器&#xff0c;另外三个寄存器是特殊用途&#xff0c;分别是R13&#xff08;栈指针&#xff09;,R14&#xff08;链接寄存器&#xff09;,R15&#xff08;程序计数器&#xff09;。对于处理器来说…

7.DRF 过滤、排序、分页

过滤Filtering 对于列表数据可能需要根据字段进行过滤&#xff0c;我们可以通过添加django-fitlter扩展来增强支持。 pip install django-filter在配置文件中增加过滤器类的全局设置&#xff1a; """drf配置信息必须全部写在REST_FRAMEWORK配置项中""…

二、CUDA、Pytorch与依赖的工具包

CUDA Compute Unified Device Architecture&#xff08;统一计算架构&#xff09;。专门用于 GPU 通用计算 的平台 编程接口。CUDA可以使你的程序&#xff08;比如矩阵、神经网络&#xff09;由 GPU 执行&#xff0c;这比CPU能快几十甚至上百倍。 PyTorch 是一个深度学习框架…