本發(fā)明涉及數(shù)字信息內(nèi)容和版權(quán)保護技術(shù)領(lǐng)域,具體而言,涉及一種魯棒性水印嵌入、檢出方法及裝置。
背景技術(shù):
電影的盜版違法行為屢禁不止,嚴重損害了影視影業(yè)的發(fā)展。目前針對數(shù)字影院盜版電影,國內(nèi)還沒有有效的方法來定位版權(quán)盜版的源頭。其主要原因在于現(xiàn)有的視頻數(shù)字水印技術(shù)在對抗基于D/A轉(zhuǎn)換的攝像機盜錄時,其水印的存在性和完整性受到極大的影響,并不具備抵抗這類攻擊的能力。目前,基于視頻的魯棒性水印還沒有真正得到公認的可靠方法,較為成熟的魯棒性水印的成功方案都集中在抵抗數(shù)字轉(zhuǎn)換攻擊領(lǐng)域,例如針對視頻的壓縮、剪裁等。而在模擬轉(zhuǎn)換攻擊領(lǐng)域,例如攝像機盜錄,不能簡單的把數(shù)字轉(zhuǎn)換攻擊中的魯棒性水印方法拷貝過來,原因在于D/A轉(zhuǎn)換帶入大量自然光噪聲使得水印失效。面向數(shù)字轉(zhuǎn)換攻擊領(lǐng)域,典型盲數(shù)字水印方法主要基于量化索引調(diào)制方法(Quantization Index Modulation,QIM),其方法在頻域中通過對原信號點強度的預(yù)定義量化,以損失信號精度的方式進行水印的嵌入和檢出;典型的非盲數(shù)字水印主要基于擴頻通信(Spread Spectrum,SS)原理,通過在不同信號頻帶上附加與水印信號呈正相關(guān)關(guān)系的信息已完成水印的嵌入。
由于視頻在受盜錄攻擊過程中經(jīng)過未知且隨機的光路傳播,根據(jù)光傳播原理其成像質(zhì)量可能受到折射和漫反射的影響,隨之帶來大量自然光噪聲,使得QIM的方法往往在加入此類隨機噪聲后信號點強度跳躍出量化范圍,使得水印失效。若簡單的采用增加水印的嵌入強度來防止水印失效,但若每張圖片都嵌入相同的多位水印,那么當水印達到一定長度時,單幀圖像會出現(xiàn)明顯條紋狀,嚴重影響觀看質(zhì)量,而若嵌入強度極小以至于不影響單幀圖片質(zhì)量,那么面向數(shù)字轉(zhuǎn)換攻擊的水印方法并不能抵抗以DCT變換為基礎(chǔ)的H.264壓縮。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例的目的在于提供一種魯棒性水印嵌入方法及裝置,使用該方法及裝置進行水印的嵌入可以在增加視頻的水印容量的同時保證視頻內(nèi)容的觀看質(zhì)量,抵抗視頻遭受模擬攻擊時水印信息不失效。
本發(fā)明實施例的另一目的在于提供一種魯棒性水印檢出方法及裝置,使用該方法及裝置能夠檢出上述魯棒性水印嵌入方法及裝置嵌入的水印信息,以此可追蹤盜版視頻的盜版源。
本發(fā)明的實施例是這樣實現(xiàn)的:
一種魯棒性水印嵌入方法,包括:根據(jù)多幀視頻內(nèi)容所對應(yīng)的多個幀指紋信息,將需要嵌入的水印信息轉(zhuǎn)化為多個單比特水印信息,所述幀指紋信息與所述單比特水印信息一一對應(yīng);根據(jù)各個所述幀指紋信息,分別生成與各個單比特水印信息對應(yīng)的水印矩陣;根據(jù)各個所述水印矩陣,分別將所述單比特水印信息嵌入與該單比特水印信息對應(yīng)的根據(jù)幀指紋信息所生成的水印矩陣所對應(yīng)的一幀視頻內(nèi)容中,生成水印視頻信息。
優(yōu)選地,將所述單比特水印信息嵌入與該單比特水印信息對應(yīng)的根據(jù)幀指紋信息所生成的水印矩陣所對應(yīng)的一幀視頻內(nèi)容中,生成水印視頻信息的步驟,包括:根據(jù)所述多幀視頻內(nèi)容,在YUV色彩空間中,對所述單比特水印信息需要進行嵌入的一幀視頻內(nèi)容的U分量數(shù)據(jù)和V分量數(shù)據(jù)進行變換,得到該幀視頻內(nèi)容的U分量數(shù)據(jù)對應(yīng)的U矩陣和所述V分量數(shù)據(jù)對應(yīng)的V矩陣;在所述單比特水印信息需要進行嵌入的一幀視頻內(nèi)容所對應(yīng)的U矩陣中和V矩陣的相同區(qū)域劃分出對應(yīng)該幀視頻內(nèi)容的嵌入矩陣,該嵌入矩陣的二維尺寸相同與所述水印矩陣相同;根據(jù)所述單比特水印信息所對應(yīng)的水印矩陣,將該單比特水印信息嵌入到所述嵌入矩陣中。
優(yōu)選地,根據(jù)所述單比特水印信息所對應(yīng)的水印矩陣,將該單比特水印信息嵌入到所述嵌入矩陣中的步驟,包括:查找所述水印矩陣中滿足預(yù)設(shè)條件的位置;根據(jù)所述水印矩陣中滿足預(yù)設(shè)條件的位置,在嵌入矩陣中進行查找相匹配的位置,將該相匹配的位置作為嵌入位置;將該水印矩陣對應(yīng)的單比特水印信息嵌入到所述嵌入位置中。
優(yōu)選地,根據(jù)所述多幀視頻內(nèi)容,在YUV色彩空間中,對所述單比特水印信息需要進行嵌入的一幀視頻內(nèi)容的U分量數(shù)據(jù)和V分量數(shù)據(jù)進行變換,得到該幀視頻內(nèi)容的U分量數(shù)據(jù)對應(yīng)的U矩陣和所述V分量數(shù)據(jù)對應(yīng)的V矩陣的步驟中的具體變換方法為:離散余弦變換。
優(yōu)選地,該方法還包括:標記嵌入的所述單比特水印信息的嵌入位置。
優(yōu)選地,標記嵌入的所述單比特水印信息的嵌入位置的具體步驟,包括:修改嵌入所述單比特水印信息為1的位置所對應(yīng)的所述U矩陣和V矩陣在該位置的元素數(shù)值,以使U矩陣在該位置的元素數(shù)值與V矩陣在該位置的元素數(shù)值滿足第一預(yù)設(shè)關(guān)系;修改嵌入所述單比特水印信息為0的位置所對應(yīng)的所述U矩陣和V矩陣在該位置的元素數(shù)值,以使U矩陣在該位置的元素數(shù)值與V矩陣在該位置的元素數(shù)值滿足第二預(yù)設(shè)關(guān)系。
優(yōu)選地,根據(jù)各個所述幀指紋信息,分別生成與各個單比特水印信息對應(yīng)的水印矩陣的步驟,包括:根據(jù)每個所述幀指紋信息,獲得與該幀指紋信息對應(yīng)的水印比特位編號;根據(jù)每個所述水印比特位編號獲得與該水印比特位編號對應(yīng)的水印矩陣。
一種魯棒性水印檢出方法,用于恢復(fù)根據(jù)上述的方法獲取的水印視頻信息中的水印信息,包括:根據(jù)多幀視頻內(nèi)容,在YUV空間進行變換,分別得到每一幀視頻內(nèi)容的U分量數(shù)據(jù)對應(yīng)的U矩陣和V分量數(shù)據(jù)對應(yīng)的V矩陣;根據(jù)多幀視頻內(nèi)容對應(yīng)的多個幀指紋信息,分別生成恢復(fù)矩陣;根據(jù)各個嵌入矩陣中各個位置所對應(yīng)的U矩陣和V矩陣的預(yù)設(shè)關(guān)系以及恢復(fù)矩陣,恢復(fù)出每個幀指紋信息所對應(yīng)的單比特水印信息;根據(jù)每個所述幀指紋信息所對應(yīng)的單比特水印信息,獲得完整的水印信息。
一種魯棒性水印嵌入裝置,包括:單比特水印信息生成模塊,根據(jù)多幀視頻內(nèi)容所對應(yīng)的多個幀指紋信息,將需要嵌入的水印信息轉(zhuǎn)化為多個單比特水印信息,所述幀指紋信息與所述單比特水印信息一一對應(yīng);水印矩陣生成模塊,用于根據(jù)每個所述幀指紋信息及對應(yīng)的所述單比特水印信息,分別生成與各個單比特水印信息對應(yīng)的水印矩陣;水印信息嵌入模塊,用于根據(jù)各個所述水印矩陣,分別將所述單比特水印信息嵌入與該單比特水印信息對應(yīng)的根據(jù)幀指紋信息所生成的水印矩陣所對應(yīng)的一幀視頻內(nèi)容中,生成水印視頻信息。
一種魯棒性水印檢出裝置,包括:視頻內(nèi)容轉(zhuǎn)換模塊,用于根據(jù)多幀視頻內(nèi)容,在YUV空間進行變換,分別得到每一幀視頻內(nèi)容的U分量數(shù)據(jù)對應(yīng)的U矩陣和V分量數(shù)據(jù)對應(yīng)的V矩陣;恢復(fù)矩陣生成模塊,用于根據(jù)多幀視頻內(nèi)容對應(yīng)的多個幀指紋信息,分別生成恢復(fù)矩陣;恢復(fù)模塊,用于根據(jù)各個嵌入矩陣中各個位置所對應(yīng)的U矩陣和V矩陣的預(yù)設(shè)關(guān)系以及恢復(fù)矩陣,恢復(fù)出每個幀指紋信息所對應(yīng)的單比特水印信息;水印信息還原模塊,用于根據(jù)每個所述幀指紋信息所對應(yīng)的單比特水印信息,獲得完整的水印信息。
本發(fā)明實施例所提供的一種魯棒性水印嵌入方法及裝置,該方法根據(jù)多幀視頻內(nèi)容所對應(yīng)的多個幀指紋信息,將需要嵌入的水印信息轉(zhuǎn)化為多個單比特水印信息,而使轉(zhuǎn)換得到的多個單比特水印信息與多個幀指紋信息映射形成一一對應(yīng)的關(guān)系。這樣就可以使得一個單比特水印信息定位到應(yīng)當嵌入的一幀視頻內(nèi)容中。然后根據(jù)每個所述幀指紋信息,分別生成與各個單比特水印信息對應(yīng)的水印矩陣,以一個水印矩陣對應(yīng)著唯一的一個單比特水印信息。利用水印矩陣再在對應(yīng)的一幀視頻內(nèi)容中尋找確定應(yīng)該將水印信息嵌入到該幀視頻內(nèi)容中的具體位置,可以嵌入多個位置。使用此方法分別將每個單比特水印信息嵌入到相應(yīng)的一幀視頻內(nèi)容中,最終將完整的水印信息嵌入到多幀視頻內(nèi)容中,以此提高該方法的視頻時間軸的自適應(yīng)能力。將水印信息分解為多個單比特水印信息進行分布式的嵌入能夠在擴大視頻水印容量,可抗擊視頻盜錄的模擬轉(zhuǎn)換攻擊,防止水印失效,同時避免出現(xiàn)視頻條紋,保證了觀看質(zhì)量。
本發(fā)明實施例還提供的一種魯棒性水印檢出方法及裝置,使用該方法及裝置可以,檢出上述魯棒性水印嵌入方法及裝置所嵌入視頻內(nèi)容中的水印信息。該方法通過對已經(jīng)嵌入水印的多幀視頻內(nèi)容在YUV空間進行變換,得到每一幀視頻內(nèi)容的U分量數(shù)據(jù)對應(yīng)的U矩陣和V分量數(shù)據(jù)對應(yīng)的V矩陣;然后尋找到其中的嵌入矩陣,通過多幀視頻內(nèi)容對應(yīng)的多個幀指紋信息,分別生成恢復(fù)矩陣。再根據(jù)嵌入矩陣和恢復(fù)矩陣的對應(yīng)關(guān)系,確定嵌入矩陣各個位置對應(yīng)的U矩陣和V矩陣的預(yù)設(shè)關(guān)系進行水印矩陣的恢復(fù),并得到水印信息。以此可檢出盜錄視頻中的水印信息。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為本發(fā)明較佳實施例提供的魯棒性水印檢出設(shè)備的方框示意圖。
圖2為本發(fā)明較佳實施例提供的魯棒性水印嵌入方法的流程圖。
圖3為本發(fā)明較佳實施例提供的魯棒性水印嵌入方法的步驟S13的詳細步驟流程圖。
圖4為本發(fā)明較佳實施例提供的魯棒性水印嵌入方法的步驟S133的詳細步驟流程圖。
圖5為本發(fā)明較佳實施例提供的魯棒性水印嵌入裝置的功能模塊示意圖。
圖6為本發(fā)明較佳實施例提供的魯棒性水印檢出方法的流程圖。
圖7為本發(fā)明較佳實施例提供的魯棒性水印檢出裝置的功能模塊示意圖。
圖標:10-魯棒性水印嵌入設(shè)備;100-魯棒性水印嵌入裝置;101-存儲器;102-存儲控制器;103-處理器;104-外設(shè)接口;105-輸入輸出單元;106-音頻單元;107-顯示單元;110-單比特水印信息生成模塊;120-水印矩陣生成模塊;130-水印信息嵌入模塊;200-魯棒性水印檢出裝置;210-視頻內(nèi)容轉(zhuǎn)換模塊;220-恢復(fù)矩陣生成模塊;230-恢復(fù)模塊;240-水印信息還原模塊。
具體實施方式
下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例。基于本發(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
應(yīng)注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。同時,在本發(fā)明的描述中,術(shù)語“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
如圖1所示,是本發(fā)明整體硬件裝置魯棒性水印嵌入設(shè)備10的方框示意圖。所述魯棒性水印嵌入設(shè)備10包括魯棒性水印嵌入裝置100、存儲器101、存儲控制器102、處理器103、外設(shè)接口104、輸入輸出單元105、音頻單元106、顯示單元107。
所述存儲器101、存儲控制器102、處理器103、外設(shè)接口104、輸入輸出單元105、音頻單元106、顯示單元107各元件相互之間直接或間接地電性連接,以實現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件相互之間可通過一條或多條通訊總線或信號線實現(xiàn)電性連接。所述魯棒性水印嵌入裝置100包括至少一個可以軟件或固件(firmware)的形式存儲于所述存儲器101中或固化在所述魯棒性水印嵌入設(shè)備10的操作系統(tǒng)(operating system,OS)中的軟件功能模塊。所述處理器103用于執(zhí)行存儲器101中存儲的可執(zhí)行模塊,例如所述魯棒性水印嵌入裝置100包括的軟件功能模塊或計算機程序。
其中,存儲器101可以是,但不限于,隨機存取存儲器(Random Access Memory,RAM),只讀存儲器(Read Only Memory,ROM),可編程只讀存儲器(Programmable Read-Only Memory,PROM),可擦除只讀存儲器(Erasable Programmable Read-Only Memory,EPROM),電可擦除只讀存儲器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存儲器101用于存儲程序,所述處理器103在接收到執(zhí)行指令后,執(zhí)行所述程序,前述本發(fā)明實施例任一實施例揭示的流過程定義的服務(wù)器所執(zhí)行的方法可以應(yīng)用于處理器103中,或者由處理器103實現(xiàn)。
處理器103可能是一種集成電路芯片,具有信號的處理能力。上述的處理器103可以是通用處理器,包括中央處理器(Central Processing Unit,簡稱CPU)、網(wǎng)絡(luò)處理器(Network Processor,簡稱NP)等;還可以是數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。可以實現(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器103也可以是任何常規(guī)的處理器等。
所述外設(shè)接口104將各種輸入/輸入裝置耦合至處理器103以及存儲器101。在一些實施例中,外設(shè)接口104,處理器103以及存儲控制器102可以在單個芯片中實現(xiàn)。在其他一些實例中,他們可以分別由獨立的芯片實現(xiàn)。
輸入輸出單元105用于提供給用戶輸入數(shù)據(jù)實現(xiàn)用戶與所述魯棒性水印嵌入設(shè)備10的交互。所述輸入輸出單元105可以是,但不限于,鼠標和鍵盤等。
音頻單元106向用戶提供音頻接口,其可包括一個或多個麥克風、一個或者多個揚聲器以及音頻電路。
顯示單元107在所述服務(wù)器(或本地終端)與用戶之間提供一個交互界面(例如用戶操作界面)或用于顯示圖像數(shù)據(jù)給用戶參考。在本實施例中,所述顯示單元107可以是液晶顯示器或觸控顯示器。若為觸控顯示器,其可為支持單點和多點觸控操作的電容式觸控屏或電阻式觸控屏等。支持單點和多點觸控操作是指觸控顯示器能感應(yīng)到來自該觸控顯示器上一個或多個位置處同時產(chǎn)生的觸控操作,并將該感應(yīng)到的觸控操作交由處理器103進行計算和處理。
請參閱圖2,是本發(fā)明較佳實施例提供的應(yīng)用于圖1所示的魯棒性水印嵌入設(shè)備10的魯棒性水印嵌入方法的流程圖。下面將對圖2所示的具體流程進行詳細闡述。
步驟S11,根據(jù)多幀視頻內(nèi)容所對應(yīng)的多個幀指紋信息,將需要嵌入的水印信息轉(zhuǎn)化為多個單比特水印信息。
在該步驟S11之前,還可以包括視頻解碼的過程。在該步驟S11中,對于每一幀視頻內(nèi)容都可以提取表征該幀視頻內(nèi)容的幀指紋信息??蓪⒁曨l內(nèi)容在頻域進行處理得到幀指紋信息。水印信息轉(zhuǎn)換為多個單比特水印信息(即0/1),其中每個水印信息都應(yīng)該唯一對應(yīng)一個幀指紋信息。作為一種實施方式,具體的幀指紋信息獲取方式可以如下(以水印長度為16比特為例,但不限于此),在YUV(亦稱YCrCb,是被歐洲電視系統(tǒng)所采用的一種顏色編碼方法,屬于PAL,是PAL和SECAM模擬彩色電視制式采用的顏色空間,也是當前數(shù)字視頻編解碼中通常采用的一種顏色編碼格式。其中,Y表示明亮度,也就是灰階值;而“U”和“V”表示的則是色度,作用是描述影像色彩及飽和度,用于指定像素的顏色?!癠”和“V”是構(gòu)成彩色的兩個分量)色彩空間中,將Y分量進行離散余弦變換(Discrete Cosine Transform,DCT)變換,在變換后得到的矩陣邊緣選擇最靠近直流系數(shù)(DC)的橫向和縱向系數(shù)來確定指紋信息的數(shù)值,例如水印長度為16時,就選擇最靠近直流系數(shù)(DC)的4組二維頻域方向上的對應(yīng)系數(shù)來生成一個1-16之間的數(shù)(包含1和16),作為幀指紋信息,以此來定位該幀視頻內(nèi)容中應(yīng)該嵌入的單比特水印信息,另外還可根據(jù)幀指紋信息對水印信息進行置亂和加密,在水印信息中添加全長糾錯碼,以提升水印的隱蔽性和置信度;比如可以利用這4組對應(yīng)系數(shù)大小關(guān)系來確定各個幀指紋信息所對應(yīng)的單比特水印信息。在一個完整水印信息的嵌入過程中,可將16個可能的幀指紋信息與16個單比特水印信息唯一的對應(yīng)起來,即找到了各個單比特水印信息應(yīng)該嵌入的目標視頻幀內(nèi)容中。需要說明的是,在一段視頻中水印信息是可以循環(huán)嵌入的,例如,一段64幀的視頻中就可以循環(huán)嵌入4組單比特水印信息,每組對應(yīng)16個單比特水印信息(對應(yīng)一個完整水印信息)。采用視頻內(nèi)容的幀指紋信息與水印長度相對應(yīng)的目的在于,在水印嵌入或檢出時能夠依據(jù)統(tǒng)一標準對水印進行對應(yīng)位置的計算,而不會造成嵌入或檢出時的亂序?qū)е聶z測錯誤。
另外,幀指紋信息和單比特水印信息匹配時的Y分量處理過程中還可以將Y替換為V分量進行離散余弦變換;幀指紋的生成方法還可以是,將各幀視頻內(nèi)容中Y分量先上下劃分為兩部分,然后將每部分再橫向等分成4等份。然后上下對應(yīng)兩部分的數(shù)值信息來生成幀指紋信息?;蛘邔⒏鲙曨l內(nèi)容中Y分量分為上下兩部分,分別算出平均值,將較小的值除以較大的值的1/16,來得到幀指紋信息,以此確定單比特水印信息和各幀視頻內(nèi)容的對應(yīng)關(guān)系。
步驟S12,根據(jù)各個所述幀指紋信息,分別生成水印矩陣。
在該步驟S12中應(yīng)當說明的是,每個單比特水印信息應(yīng)該有一個相對應(yīng)的0/1水印矩陣。作為一種實施方式,生成水印矩陣的方法可以如下,將所得到的幀指紋信息的值作為水印比特位編號,以此為種子來生成一個預(yù)定義大小的隨機矩陣,該預(yù)定義大小可以根據(jù)實際操作需求來規(guī)定(例如,2x2矩陣,2×3矩陣,5×5矩陣,N×M矩陣等等)。然后再將該隨機矩陣進行二值化操作,最后得到一個二進制矩陣來作為水印矩陣(需要說明的是,水印矩陣也不限于二進制矩陣,例如八進制,十六進制等也可)。利用產(chǎn)生的水印矩陣為隨機矩陣,通過偽隨機性可提升水印隱蔽性。
步驟S13,根據(jù)各個所述水印矩陣,分別將所述單比特水印信息嵌入與該單比特水印信息對應(yīng)的根據(jù)幀指紋信息所生成的水印矩陣所對應(yīng)的一幀視頻內(nèi)容中,生成水印視頻信息。
在該步驟S13中,所進行的為單比特水印信息的嵌入,例如根據(jù)水印矩陣中的元素值的大小來進行單比特水印信息的嵌入。作為一種實施方式,若該水印矩陣為二進制矩陣,那么就可根據(jù)該二進制矩陣中的各個位置的元素值為0或1來進行相應(yīng)的單比特水印信息的嵌入。例如,該位置的元素值為1時,則在對應(yīng)的一幀視頻內(nèi)容中的與水印矩陣中元素為1所對應(yīng)的位置進行單比特水印信息的嵌入,生成水印視頻信息。若該位置為0,則在對應(yīng)的一幀視頻內(nèi)容中對應(yīng)的位置不嵌入單比特水印信息。
請參照圖3,該圖具體的示出了單比特水印信息的詳細嵌入步驟。具體步驟如下:
步驟S131:根據(jù)所述多幀視頻內(nèi)容,在YUV色彩空間中,得到該幀視頻內(nèi)容的U分量數(shù)據(jù)對應(yīng)的U矩陣和所述V分量數(shù)據(jù)對應(yīng)的V矩陣。具體的,對圖像的U、V分量分別進行離散余弦變換離散余弦變換(Discrete Cosine Transform,DCT)后,得到和圖像二維尺寸相同的U分量對應(yīng)的U矩陣,以及V分量對應(yīng)的V矩陣。該步驟利用了在視頻內(nèi)容的色度分量上進行處理,可以減小水印對視頻質(zhì)量的影響,增強水印的隱蔽性。
步驟S132:在所述單比特水印信息需要進行嵌入的一幀視頻內(nèi)容所對應(yīng)的U矩陣中和V矩陣的相同區(qū)域劃分出對應(yīng)該幀視頻內(nèi)容的嵌入矩陣。在上述單比特水印信息定位到應(yīng)當嵌入的一幀視頻內(nèi)容之后,還需要定位應(yīng)當嵌入到該幀視頻內(nèi)容的具體相對位置。優(yōu)選地,作為一種實施方式,可以在U矩陣和V矩陣中對應(yīng)的中低頻區(qū)域,劃分出一塊大小與水印矩陣大小相同的嵌入矩陣。該嵌入矩陣的具體位置可以人為劃定,不作限制。
步驟S133:根據(jù)所述單比特水印信息所對應(yīng)的水印矩陣,將該單比特水印信息嵌入到所述嵌入矩陣中。請參照圖4,具體的嵌入方法有以下步驟:
步驟S133a:查找所述水印矩陣中的滿足預(yù)設(shè)條件的位置。該處所述的預(yù)設(shè)條件可以為一預(yù)設(shè)數(shù)值,例如,水印矩陣為二值化矩陣的時候,該預(yù)設(shè)條件可以為數(shù)值為1的位置,或數(shù)值為0的位置。
步驟S133b:根據(jù)所述水印矩陣中的滿足預(yù)設(shè)條件的位置,在嵌入矩陣中進行查找相匹配的位置,將該相匹配的位置作為嵌入位置。若該預(yù)設(shè)條件為水印矩陣中滿足數(shù)值為1的位置,則水印矩陣中所有數(shù)值為1的位置都對應(yīng)著嵌入矩陣中的一個坐標與該位置相同的位置,并將嵌入矩陣中的該位置作為嵌入位置。若預(yù)設(shè)條件為水印矩陣中滿足數(shù)值為0的位置,同理可知,在嵌入矩陣中定位到與水印矩陣為0的位置相同的位置,來做為嵌入位置。在同一幀視頻內(nèi)容中嵌入位置可以是多個,這樣即增加了視頻的水印容量,同時在嵌入水印后也增強了水印的魯棒性。
步驟S133c:將該水印矩陣對應(yīng)的單比特水印信息嵌入到所述嵌入位置中。根據(jù)各個水印矩陣中的位置將所有單比特水印信息嵌入到對應(yīng)的一幀視頻內(nèi)容中。一個單比特水印信息可嵌入到所述嵌入矩陣中的多個位置(多位置重復(fù)嵌入),進一步增強水印的魯棒性,防止盜錄轉(zhuǎn)換過程中水印的丟失。
步驟S14,標記嵌入的所述單比特水印信息的嵌入位置。
在該步驟S14中,主要作用為將該單比特水印信息的嵌入位置進行一個標記,可以方便對視頻中的水印信息進行檢出的時候快速的定位到嵌入水印信息的位置。本實施例提供一種標記水印信息的嵌入位置的實施方式,如下,修改嵌入所述單比特水印信息為1的位置所對應(yīng)的所述U矩陣和V矩陣在該位置的元素數(shù)值,以使U矩陣在該位置的元素數(shù)值與V矩陣在該位置的元素數(shù)值滿足第一預(yù)設(shè)關(guān)系;修改嵌入所述單比特水印信息為0的位置所對應(yīng)的所述U矩陣和V矩陣在該位置的元素數(shù)值,以使U矩陣在該位置的元素數(shù)值與V矩陣在該位置的元素數(shù)值滿足第二預(yù)設(shè)關(guān)系。其中,優(yōu)選地,第一預(yù)設(shè)關(guān)系可以是嵌入位置對應(yīng)的U矩陣的數(shù)值大于V矩陣在該位置的數(shù)值。例如,在一嵌入矩陣中嵌入的單比特水印信息為1,則在修改嵌入位置的U矩陣的數(shù)值和V矩陣的數(shù)值,使其滿足第一預(yù)設(shè)關(guān)系;在另一嵌入矩陣中嵌入的單比特水印信息為0,則在修改嵌入位置的U矩陣的數(shù)值和V矩陣的數(shù)值,使其滿足第二預(yù)設(shè)關(guān)系。另外,上述的第一預(yù)設(shè)關(guān)系和第二預(yù)設(shè)關(guān)系的標記關(guān)系可以相互交換,第一預(yù)設(shè)關(guān)系用于標記為0的單比特水印信息,第二預(yù)設(shè)關(guān)系用于標記為1的單比特水印信息。還可以是其他預(yù)設(shè)關(guān)系,只要能夠?qū)^(qū)分所嵌入的0/1單比特水印信息即可。例如修改數(shù)值使在嵌入位置的U矩陣數(shù)值大于或等于、小于、小于或等于V矩陣在該位置的數(shù)值,或使U矩陣數(shù)值和V矩陣數(shù)值在該嵌入位置成預(yù)設(shè)的倍數(shù)關(guān)系等,具體標記方式不作限定。
需要說明的是,步驟S14與步驟S13的先后順序不做限定,也可以是步驟S14在前,步驟S13在后,即先對單比特水印信息的嵌入位置做標記,然后再將單比特水印信息嵌入到嵌入位置。
需要說明的是,為方便視頻數(shù)據(jù)的傳輸需要,在上述步驟進行完成之后也可以有視頻編碼步驟。
如圖5所示,本發(fā)明實施例還提供一種魯棒性水印嵌入裝置100,所述裝置包括:單比特水印信息生成模塊110、水印矩陣生成模塊120、水印信息嵌入模塊130和位置標記模塊。
單比特水印信息生成模塊110,用于根據(jù)多幀視頻內(nèi)容所對應(yīng)的多個幀指紋信息,將需要嵌入的水印信息轉(zhuǎn)化為多個單比特水印信息,所述幀指紋信息與所述單比特水印信息一一對應(yīng)。
水印矩陣生成模塊120,用于根據(jù)各個所述幀指紋信息,分別生成與各個單比特水印信息對應(yīng)的水印矩陣;具體的包括:水印比特位編號獲取子模塊,用于根據(jù)每個所述幀指紋信息,獲得與該幀指紋信息對應(yīng)的水印比特位編號;水印矩陣獲取子模塊,用于根據(jù)每個所述水印比特位編號獲得與該水印比特位編號對應(yīng)的水印矩陣。
水印信息嵌入模塊130,用于根據(jù)各個所述水印矩陣,分別將所述單比特水印信息嵌入與該單比特水印信息對應(yīng)的根據(jù)幀指紋信息所生成的水印矩陣所對應(yīng)的一幀視頻內(nèi)容中,生成水印視頻信息。
該水印信息嵌入模塊130中還包括:
U、V矩陣生成子模塊,用于根據(jù)所述多幀視頻內(nèi)容,在YUV色彩空間中,對所述單比特水印信息需要進行嵌入的一幀視頻內(nèi)容的U分量數(shù)據(jù)和V分量數(shù)據(jù)進行變換,得到該幀視頻內(nèi)容的U分量數(shù)據(jù)對應(yīng)的U矩陣和所述V分量數(shù)據(jù)對應(yīng)的V矩陣。
嵌入矩陣生成子模塊,用于在所述單比特水印信息需要進行嵌入的一幀視頻內(nèi)容所對應(yīng)的U矩陣中和V矩陣的相同區(qū)域劃分出對應(yīng)該幀視頻內(nèi)容的嵌入矩陣,該嵌入矩陣的二維尺寸相同與所述水印矩陣相同。
第一查找子模塊,用于查找所述水印矩陣中的滿足預(yù)設(shè)條件的位置。
第二查找子模塊,用于根據(jù)所述水印矩陣中的滿足預(yù)設(shè)條件的位置,在嵌入矩陣中進行查找相匹配的位置,將該相匹配的位置作為嵌入位置。
嵌入子模塊,用于將該水印矩陣對應(yīng)的單比特水印信息嵌入到所述嵌入位置中。
位置標記模塊,用于標記嵌入的所述單比特水印信息的嵌入位置。具體的,用于修改嵌入所述單比特水印信息為1的位置所對應(yīng)的所述U矩陣和V矩陣在該位置的元素數(shù)值,以使U矩陣在該位置的元素數(shù)值與V矩陣在該位置的元素數(shù)值滿足第一預(yù)設(shè)關(guān)系;修改嵌入所述單比特水印信息為0的位置所對應(yīng)的所述U矩陣和V矩陣在該位置的元素數(shù)值,以使U矩陣在該位置的元素數(shù)值與V矩陣在該位置的元素數(shù)值滿足第二預(yù)設(shè)關(guān)系。
上述本發(fā)明實施例中提供的一種魯棒性水印嵌入方法及裝置,將需要嵌入的水印信息轉(zhuǎn)化為多個單比特水印信息,而使轉(zhuǎn)換得到的多個單比特水印信息與多個幀指紋信息映射形成一一對應(yīng)的關(guān)系。這樣就可以使得一個單比特水印信息定位到應(yīng)當嵌入的一幀視頻內(nèi)容中。然后根據(jù)每個所述幀指紋信息,生成與各個單比特水印信息對應(yīng)的水印矩陣,以一個水印矩陣對應(yīng)著唯一的一個單比特水印信息。利用水印矩陣再在對應(yīng)的一幀視頻內(nèi)容中尋找水印信息在該幀的嵌入位置,可以嵌入多個位置,提高了水印魯棒性。使用此方法分別將每個單比特水印信息嵌入到相應(yīng)的一幀視頻內(nèi)容中,最終將完整的水印信息嵌入到多幀視頻內(nèi)容中,以此提高該方法的視頻時間軸的自適應(yīng)能力。通過幀指紋的方式確定水印嵌入位置,即降低對原視頻質(zhì)量影響同時提升視頻水印荷載。將水印信息分解為多個單比特水印信息進行分布式的嵌入能夠在擴大視頻水印容量,同時提高水印魯棒性,可抗擊視頻盜錄的模擬轉(zhuǎn)換攻擊,同時避免出現(xiàn)視頻條紋,保證了觀看質(zhì)量,例如該裝置和方法能夠在數(shù)字影院放映內(nèi)容時進行水印嵌入,并通過水印檢測出,可得知電影院錄屏后的盜版電影的盜版源。
請參照圖6,本發(fā)明實施例還提供一種魯棒性水印檢出方法,圖6示出了該方法的具體流程圖。下面對流程圖的各步驟做詳細的解釋和說明。
步驟S21,根據(jù)多幀視頻內(nèi)容,在YUV空間進行變換,分別得到每一幀視頻內(nèi)容的U分量數(shù)據(jù)對應(yīng)的U矩陣和V分量數(shù)據(jù)對應(yīng)的V矩陣。變換的方式可為離散余弦變換(Discrete Cosine Transform,DCT)變換。另外還可以將DCT變換替換為離散傅里葉變換(Discrete Fourier Transform,DFT)/小波變換(在魯棒性水印嵌入方法中也可適用),該方法可適用于無壓縮編碼的視頻版權(quán)保護環(huán)境。
步驟S22,根據(jù)多幀視頻內(nèi)容對應(yīng)的多個幀指紋信息,分別生成恢復(fù)矩陣。該恢復(fù)矩陣中的各元素值需要通過嵌入單比特水印信息時劃定的嵌入矩陣中各個位置所對應(yīng)的U矩陣和V矩陣的預(yù)設(shè)關(guān)系進行恢復(fù)。該恢復(fù)矩陣的二維尺寸與嵌入矩陣相同。
步驟S23,根據(jù)各個嵌入矩陣中各個位置所對應(yīng)的U矩陣和V矩陣的預(yù)設(shè)關(guān)系以及恢復(fù)矩陣,恢復(fù)出每個幀指紋信息所對應(yīng)的單比特水印信息。嵌入矩陣中各個位置所對應(yīng)的U矩陣和V矩陣的預(yù)設(shè)關(guān)系可以是大小關(guān)系。例如,對應(yīng)嵌入時,以U矩陣的數(shù)值大于V矩陣的數(shù)值標記的嵌入位置時,則可根據(jù)恢復(fù)矩陣在嵌入矩陣中找到嵌入位置,在根據(jù)在該位置的U矩陣的數(shù)值和V矩陣的數(shù)值滿足的預(yù)設(shè)關(guān)系(第一預(yù)設(shè)關(guān)系或者第二預(yù)設(shè)關(guān)系),相應(yīng)的恢復(fù)單比特水印信息1或0(應(yīng)當根據(jù)嵌入時的規(guī)則進行恢復(fù),如滿足第一預(yù)設(shè)關(guān)系恢復(fù)1,滿足第二預(yù)設(shè)關(guān)系恢復(fù)0)。由于在單幀視頻內(nèi)容中嵌入了多個單比特水印信息,在恢復(fù)時,就可以以多數(shù)的恢復(fù)結(jié)果來確定,該幀視頻內(nèi)容所對應(yīng)的單比特水印信息。然后,還可以在多幀視頻內(nèi)容中,對應(yīng)與嵌入了相同單比特水印信息的幀視頻內(nèi)容中,對相同嵌入位置所對應(yīng)的恢復(fù)位的結(jié)果進行統(tǒng)計,以多數(shù)的恢復(fù)結(jié)果決定最終單比特水印信息在該位置的值。例如,在檢測時,檢測出50個視頻幀對應(yīng)第16比特的水印信息,則最終的第16比特的檢測結(jié)果由這五十幀中較多的檢測結(jié)果決定。假設(shè)50幀中有多于25幀恢復(fù)出0,則第16比特的檢測結(jié)果為0,反之為1。這樣通過多數(shù)投票的恢復(fù)方法可適用于在盜錄過程中盜錄環(huán)境產(chǎn)生較大變化的情況,例如光線的劇烈變化。
步驟S24,根據(jù)每個所述幀指紋信息所對應(yīng)的單比特水印信息,獲得完整的水印信息。恢復(fù)出各個恢復(fù)矩陣對應(yīng)的所有單比特水印信息,然后將單比特水印信息根據(jù)水印比特位編號恢復(fù)出成完整的水印信息。
請參照圖7,本發(fā)明實施例還提供一種魯棒性水印檢出裝置200,包括:視頻內(nèi)容轉(zhuǎn)換模塊210、恢復(fù)矩陣生成模塊220、恢復(fù)模塊230和水印信息還原模塊240。
視頻內(nèi)容轉(zhuǎn)換模塊210,用于根據(jù)多幀視頻內(nèi)容,在YUV空間進行變換,分別得到每一幀視頻內(nèi)容的U分量數(shù)據(jù)對應(yīng)的U矩陣和V分量數(shù)據(jù)對應(yīng)的V矩陣。
恢復(fù)矩陣生成模塊220,用于根據(jù)多幀視頻內(nèi)容對應(yīng)的多個幀指紋信息,分別生成恢復(fù)矩陣。
恢復(fù)模塊230,用于根據(jù)各個嵌入矩陣中各個位置所對應(yīng)的U矩陣和V矩陣的預(yù)設(shè)關(guān)系以及恢復(fù)矩陣,恢復(fù)出每個幀指紋信息所對應(yīng)的單比特水印信息。
水印信息還原模塊240,用于根據(jù)每個所述幀指紋信息所對應(yīng)的單比特水印信息,獲得完整的水印信息。
本發(fā)明實施例提供的一種魯棒性水印檢出方法和裝置,能夠檢出上述的魯棒性水印嵌入方法或裝置嵌入的水印信息,該魯棒性水印檢出方法和裝置,可通過對已經(jīng)嵌入水印的多幀視頻內(nèi)容在YUV空間進行變換,得到每一幀視頻內(nèi)容的U分量數(shù)據(jù)對應(yīng)的U矩陣和V分量數(shù)據(jù)對應(yīng)的V矩陣;然后尋找到其中的嵌入矩陣,通過多幀視頻內(nèi)容對應(yīng)的多個幀指紋信息,分別生成恢復(fù)矩陣。再根據(jù)嵌入矩陣和恢復(fù)矩陣的對應(yīng)關(guān)系,確定嵌入矩陣各個位置對應(yīng)的U矩陣和V矩陣的預(yù)設(shè)關(guān)系進行水印矩陣的恢復(fù),并得到水印信息。以此可檢出盜錄視頻中的水印信息。由于檢出時需要檢出嵌入位置中的多個單比特水印信息,所以即使被檢視頻質(zhì)量受到了很大的影響,也能夠通過該魯棒性水印檢出方法和裝置檢出完整的水印信息。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的裝置、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當注意,在有些作為替換的實現(xiàn)方式中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。
所述功能如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。應(yīng)注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準。