本文是該系列的第20篇。數(shù)字水印是一種將標(biāo)識(shí)信息嵌入到載體當(dāng)中,且不影響載體使用的一種技術(shù),主要分為時(shí)域水印嵌入算法(將水印嵌入到時(shí)域采樣數(shù)據(jù)中)和變換域水印嵌入算法(先對(duì)音頻做變換,將水印嵌入到變換域系數(shù)中)。本文將介紹一種簡(jiǎn)單的時(shí)域水印嵌入算法——LSB算法。
LSB算法
通常數(shù)字水印技術(shù)有不可感知性的要求,即嵌入數(shù)字水印后載體數(shù)據(jù)發(fā)生了變化,但是不會(huì)影響到該數(shù)據(jù)的使用,對(duì)使用者而言也不可察覺(jué)。
該算法將水印信息嵌入到數(shù)據(jù)的最低有效位(Least Significant Bit)部分,即將數(shù)據(jù)的LSB替換為需要加入的水印信息。這正是因?yàn)榈臀粩?shù)據(jù)對(duì)整體數(shù)據(jù)的影響最小,這也導(dǎo)致嵌入的水印信息強(qiáng)度不高,否則會(huì)影響到載體的數(shù)據(jù)質(zhì)量。因此該算法僅限用于脆弱性數(shù)字水印(相較于魯棒性數(shù)字水印而言,無(wú)法承受大量失真)。
System Generator設(shè)計(jì)
該算法的實(shí)現(xiàn)很簡(jiǎn)單,在Simulink中添加block按下圖連接:
數(shù)字水印嵌入部分,載體數(shù)據(jù)量化為Fix_12_11格式,水印信息量化為Fix_4_3格式,這里選擇兩首不同的音樂(lè)作為載體和水印。使用Concat拼接兩個(gè)數(shù)據(jù),水印信息作為L(zhǎng)SB。由于Concat模塊只接收無(wú)符號(hào)整數(shù)輸入,因此需要使用Reinterpret分別轉(zhuǎn)換為UFix格式。Concat輸出的數(shù)據(jù)再由Reinterpret轉(zhuǎn)換為Fix_16_15數(shù)據(jù),導(dǎo)出到wav文件中。
數(shù)字水印提取部分,直接使用slice將音頻信號(hào)的低4Bits提取出即為數(shù)字水印信息。提取出的數(shù)據(jù)由Reinterpret轉(zhuǎn)換為Fix_4_3,寫(xiě)入到音頻文件中。
系統(tǒng)采樣率為48000Hz,仿真時(shí)長(zhǎng)10s即可。運(yùn)行仿真后可以發(fā)現(xiàn),播放添加了水印后的載體音樂(lè)時(shí),完全聽(tīng)不出其中包含水印音樂(lè);播放提取出的水印音樂(lè),發(fā)現(xiàn)由于該算法的限制性,量化位寬較少,存在一定的噪聲干擾。
block使用方法
●Concat:該block用于拼接多個(gè)比特向量,類似于Verilog語(yǔ)法中的“{ }”。該模塊的輸入只能是無(wú)符號(hào)整數(shù),因此經(jīng)常和Reinterpret(在本系列第8篇中進(jìn)行過(guò)詳細(xì)講述)配合使用。該模塊可以設(shè)置2~1024個(gè)輸入,拼接為1個(gè)輸出。
●Slice:該block用于提取輸入的二進(jìn)制序列中的某些位作為輸出,輸出格式為無(wú)符號(hào)整數(shù)。該block的配置有多種提取方式可以選擇:
“Width of slice(number of bits)”設(shè)置提取出數(shù)據(jù)的位寬。當(dāng)選中“Boolean output”,如果截取的位寬為單比特,輸出類型會(huì)變?yōu)锽oolean。
Offset of top bit和Offset of bottom bit為計(jì)算截取高位和截取低位所需的偏置值。分別有一個(gè)Relative to設(shè)置計(jì)算偏置的方式。“Specify range as”中可以選擇三種提取數(shù)據(jù)的指定方式。
上面看起來(lái)比較繞,以實(shí)例的方式理解。假設(shè)輸入數(shù)據(jù)IN為Fix_16_8格式,Specify range as選擇Two bit location,即分別指定截取高位和截取低位:
- 兩者的Relative to都設(shè)置為“LSB of input”,top bit設(shè)置為3,bottom bit設(shè)置為0。提取結(jié)果為IN[3:0],LSB of input表示從低位開(kāi)始計(jì)算偏置值(offset)。
- top bit設(shè)置為-3,對(duì)應(yīng)的relative to設(shè)置為“MSB of input”;bottom bit設(shè)置為0,對(duì)應(yīng)的relative to設(shè)置為“LSB of input”。提取結(jié)果為IN[13:0],MSB of input表示從高位開(kāi)始計(jì)算偏置值(offset),偏置值必須是負(fù)數(shù)。
- Binary point of input,表示從小數(shù)點(diǎn)位置開(kāi)始計(jì)算偏置值,設(shè)置為正數(shù)表示向高位計(jì)數(shù),設(shè)置為負(fù)數(shù)表示向低位計(jì)數(shù)。比如bottom bit不變,top bit設(shè)置為-3、Binary point of input,則提取IN[4:0];top bit設(shè)置為2、Binary point of input,則提取IN[9:0]。
Upper bit location+width、Lower bit location+width只需要設(shè)置截取高位或截取低位,只是截取長(zhǎng)度由Width of slice指定。
編輯:hfy
-
數(shù)字水印
+關(guān)注
關(guān)注
0文章
43瀏覽量
15129 -
LSB算法
+關(guān)注
關(guān)注
0文章
7瀏覽量
5861
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于音頻統(tǒng)計(jì)特性的數(shù)字水印嵌入算法
使用頻域LSB水印算法的魯棒性分析
利用數(shù)字水印技術(shù)驗(yàn)證文本信息的篡改
一種改進(jìn)的基于小波變換的數(shù)字水印算法
基于變換域的音頻數(shù)字零水印算法研究
基于余弦變換和小波變換的數(shù)字水印算法
多功能雙水印算法
基于音頻統(tǒng)計(jì)特性的數(shù)字水印嵌入算法
數(shù)字水印技術(shù)分析在電視領(lǐng)域的應(yīng)用
DCT域數(shù)字水印算法的FPGA實(shí)現(xiàn)
基于離散余弦的數(shù)字水印算法
圖像盲檢測(cè)穩(wěn)健數(shù)字水印算法

評(píng)論