一種基于視頻幀dct域的水印算法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及一種基于視頻幀DCT域的水印算法。
【背景技術(shù)】
[0002]近年來(lái),人們可愈加便捷地通過(guò)網(wǎng)絡(luò)發(fā)布視頻等多媒體作品。但是,盜用者也可以通過(guò)網(wǎng)絡(luò)輕松且無(wú)失真地獲得他人的原始作品。盜用者對(duì)原作品進(jìn)行任意復(fù)制傳播并獲利,這將為作品的版權(quán)所有人帶來(lái)巨大的經(jīng)濟(jì)損失。對(duì)于諸如電視臺(tái)、視頻網(wǎng)站等擁有海量視頻資源的版權(quán)所有者而言,損失將會(huì)更大。
[0003]在信息安全領(lǐng)域中,數(shù)字水印技術(shù)可以將版權(quán)所有者的信息嵌入到視頻中,在經(jīng)受一定人為或必須的攻擊的情況下,仍然能夠提取或檢測(cè)出所有者的信息。因此可以利用數(shù)字水印進(jìn)行版權(quán)認(rèn)證及盜版跟蹤。
[0004]目前該領(lǐng)域的方法有很多,例如基于運(yùn)動(dòng)矢量、預(yù)測(cè)方式等結(jié)合壓縮標(biāo)準(zhǔn)的方法,它們普遍對(duì)尺度縮放攻擊缺乏魯棒性,需要先矯正視頻尺寸再提取/檢測(cè)水印。還有的方法將視頻流解碼出每幀,然后在其中嵌入水印,這類方法對(duì)于不同尺寸的視頻缺乏自適應(yīng)調(diào)整嵌入強(qiáng)度的能力,往往會(huì)造成視頻質(zhì)量或者魯棒性的下降。
【發(fā)明內(nèi)容】
[0005]基于此,有必要提供一種具有自適應(yīng)嵌入強(qiáng)度、可用以對(duì)抗尺寸變換、碼率變換等轉(zhuǎn)碼攻擊的基于視頻幀DCT域的水印算法。
[0006]根據(jù)本發(fā)明的一方面,提供了一種基于視頻幀DCT域的水印算法,包括視頻水印嵌入方法和視頻水印提取方法,
[0007]視頻水印嵌入方法包括如下步驟:
[0008]將嵌入信息按照三等分分段成三個(gè)數(shù)字并轉(zhuǎn)換成三個(gè)二進(jìn)制水??;
[0009]將每個(gè)視頻幀解碼并提取灰度圖像;
[0010]對(duì)幀信息進(jìn)行分析并判斷該幀是否嵌入水印,若可嵌入水印則進(jìn)行后續(xù)步驟,否則繼續(xù)解碼下一個(gè)視頻幀;
[0011 ]對(duì)當(dāng)前幀的灰度圖像進(jìn)行DCT變換得到系數(shù)矩陣;
[0012]提取系數(shù)矩陣低頻區(qū)域的系數(shù)并作排序,提取排序后的低頻系數(shù)組成一維數(shù)組;
[0013]根據(jù)當(dāng)前幀的尺寸計(jì)算水印的嵌入強(qiáng)度;
[0014]根據(jù)水印比特位和嵌入強(qiáng)度,以量化方式修改一維數(shù)組的系數(shù);
[0015]將三個(gè)二進(jìn)制水印分別嵌入連續(xù)三幀的不同位置中,并重復(fù)此過(guò)程;
[0016]將修改后的系數(shù)放回原位并作反向排序,進(jìn)行DCT反變換得到含有水印的視頻幀;
[0017]視頻水印提取方法包括如下步驟:
[0018]對(duì)待驗(yàn)證視頻的關(guān)鍵幀進(jìn)行解碼并提取灰度圖像;
[0019]對(duì)幀信息進(jìn)行分析并判斷該關(guān)鍵幀是否提取水印,若可提取水印進(jìn)行后續(xù)步驟,否則繼續(xù)解碼下一個(gè)關(guān)鍵幀;
[0020]對(duì)當(dāng)前關(guān)鍵幀的灰度圖像進(jìn)行DCT變換得到系數(shù)矩陣;
[0021 ]提取系數(shù)矩陣低頻區(qū)域的系數(shù)并作排序;
[0022]對(duì)排序后的序列分別提取三組系數(shù),提取位置與視頻水印嵌入方法中的嵌入位置相同;
[0023]根據(jù)當(dāng)前關(guān)鍵幀的尺寸計(jì)算量化步長(zhǎng);
[0024]分別對(duì)三組系數(shù)根據(jù)步長(zhǎng)提取二進(jìn)制水印,并轉(zhuǎn)換成三個(gè)數(shù)字,分別保存在各自的集合中;
[0025]統(tǒng)計(jì)集合中出現(xiàn)最多且高于閾值的三個(gè)數(shù)字,將該三個(gè)數(shù)字按照視頻水印嵌入方法中的分段順序重新合并成一個(gè)數(shù)字。
[0026]在其中一個(gè)實(shí)施例中,視頻水印嵌入方法中,對(duì)幀信息進(jìn)行分析并判斷該幀是否嵌入水印的步驟中,幀信息包括頻率、亮度和紋理。
[0027]在其中一個(gè)實(shí)施例中,視頻水印嵌入方法中,提取系數(shù)矩陣低頻區(qū)域的系數(shù)并作排序的步驟中,排序方法為之字形排序。
[0028]在其中一個(gè)實(shí)施例中,視頻水印嵌入方法中,將修改后的系數(shù)放回原位并作反向排序的步驟中,反向排序方法為反之字形排序。
[0029]在其中一個(gè)實(shí)施例中,視頻水印提取方法中,提取系數(shù)矩陣低頻區(qū)域的系數(shù)并作排序的步驟中,排序方法為之字形排序。
[0030]這種基于視頻幀DCT域的水印算法具有自適應(yīng)嵌入強(qiáng)度的特點(diǎn),不同尺寸的視頻都能得到合適的強(qiáng)度,兼顧了視頻質(zhì)量和魯棒性的折中,尤其是當(dāng)視頻尺度變化的情況下,效果尤其好。其中,判斷幀是否適合隱藏水印的步驟提升了含水印視頻的視覺(jué)質(zhì)量,只對(duì)合適的關(guān)鍵幀進(jìn)行提取提高了系統(tǒng)的魯棒性,同時(shí)加快了提取速度,而且對(duì)亮度、飽和度調(diào)整、模糊等攻擊也具有很好的魯棒性。在本算法中,數(shù)字分段嵌入的方法在不降低正確率的情況下,極大提升了水印容量,在實(shí)際提取時(shí),只要某個(gè)數(shù)字出現(xiàn)的次數(shù)滿足一定的預(yù)設(shè)條件,就可以把該數(shù)字當(dāng)作最終結(jié)果,而不需要將視頻的關(guān)鍵幀全部提取一遍,因此還減少了運(yùn)算時(shí)間。
【具體實(shí)施方式】
[0031]為了便于理解本發(fā)明,下面將用具體實(shí)施例對(duì)本發(fā)明進(jìn)行更全面的描述。但是,本發(fā)明可以以許多不同的形式來(lái)實(shí)現(xiàn),并不限于本文所描述的實(shí)施例。相反地,提供這實(shí)施例的目的是使對(duì)本發(fā)明的公開(kāi)內(nèi)容的理解更加透徹全面。
[0032]本發(fā)明一實(shí)施例的基于視頻幀DCT域的水印算法,包括視頻水印嵌入方法和視頻水印提取方法。
[0033]A、視頻水印嵌入方法包括如下步驟:
[0034]Al、將嵌入信息(數(shù)字)按照位數(shù)三等分成三個(gè)數(shù)字(例如一個(gè)長(zhǎng)度為15位的數(shù)字,根據(jù)前中后的順序可以被分成三個(gè)5位數(shù)字),再將這三個(gè)數(shù)字轉(zhuǎn)換成二進(jìn)制水印,數(shù)字的每一位對(duì)應(yīng)一組預(yù)先設(shè)定的二進(jìn)制序列;
[0035]A2、將視頻幀解碼并轉(zhuǎn)換到Y(jié)UV空間,提取Y通道得到灰度圖像;
[0036]A3、為了減少水印對(duì)視頻質(zhì)量的影響,對(duì)幀的頻率、亮度和紋理等信息進(jìn)行分析以判斷該幀是否嵌入水印,如亮度很高/低或紋理復(fù)雜,則適合嵌入水印,反之則不適用,放棄該幀并返回步驟A2;
[0037]A4、對(duì)灰度圖像做DCT變換得到系數(shù)矩陣;
[0038]A5、由于矩陣左上角對(duì)應(yīng)低頻,而右下角對(duì)應(yīng)高頻部分,因此,取出系數(shù)矩陣左上角(低頻)區(qū)域的系數(shù),并做之字形排序,提取排序后的若干低頻系數(shù)組成一個(gè)一維數(shù)組。
[0039]具體地,步驟A5中,之字形排序是從系數(shù)矩陣左上角的直流系數(shù)開(kāi)始向右下角最高頻系數(shù)以折線掃描的方式依次取出系數(shù),并組成一維矩陣;
[0040]A6、根據(jù)當(dāng)前幀的尺寸計(jì)算水印嵌入強(qiáng)度;
[0041]A7、根據(jù)水印比特位和步驟A6中算得的嵌入強(qiáng)度,以量化的方式修改數(shù)組中的系數(shù),實(shí)現(xiàn)水印嵌入;
[0042]A8、將步驟Al中的三個(gè)水印分別嵌入在連續(xù)的三幀中并重復(fù)這一過(guò)程,它們的嵌入位置互不相同;
[0043]A9、將修改后的系數(shù)放回原來(lái)的位置,反之字形排序,并進(jìn)行DCT反變換得到含有水印的視頻幀。
[0044]B、視頻水印提取方法包括如下步驟:
[0045]B1、對(duì)待驗(yàn)證視頻的關(guān)鍵幀進(jìn)行解碼,并將其轉(zhuǎn)換成灰度圖像;
[