【計算機科學與應用】基于多域變換的視頻水印嵌入算法研究

導讀:

為提升視頻水印在版權保護中的實際應用效果,本文提出一種基于多域變換的視頻水印嵌入算法。該算法結合離散小波變換(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?(i,?j),選取其周圍的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(i,?j)做嵌入運算:

4) 將DCT域嵌入水印后的每一個子塊進行DCT變換的逆變換,然后進行DWT變換的逆變換,得到嵌入水印的幀圖像。

5) 將嵌入水印的幀圖像序列導入pr軟件進行重新編碼,進一步得到嵌入水印的視頻。

2、水印提取步驟

Step 1:用pr軟件將嵌入水印的視頻解碼,導出嵌入水印的幀圖像序列,對嵌入水印的每一幀圖像進行DWT變換,選取HL子帶,將其分為8 × 8個像素點大小的塊,并依次對嵌入水印的塊進行DCT變換。

Step 2:在DCT變換后的系數中,找出嵌入水印信息的中頻系數的位置y(i,?j),計算其周圍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
英文地址,請注明出處:http://en.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 是一個深度學習框架…