葛 京,楊紅梅,2,顏 斌,谷玉瑩
(1.山東科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,山東 青島 266590;2.山東科技大學(xué) 山東省智慧礦山信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,山東 青島 266590;3.山東科技大學(xué) 電子與信息工程學(xué)院,山東 青島 266590)
常用的視頻信息隱藏技術(shù)將視頻視作多幀圖像的疊加,并采用圖像數(shù)字水印隱藏算法進(jìn)行數(shù)據(jù)隱藏[1-2],雖然增加了隱藏信息的魯棒性,但是受制于傳統(tǒng)水印相對較高的算法復(fù)雜度,在現(xiàn)行的視頻應(yīng)用中并未有良好的表現(xiàn)。H.264作為常用的視頻編碼標(biāo)準(zhǔn)[3-4]是視頻傳輸與存儲(chǔ)的主要形式,結(jié)合編碼標(biāo)準(zhǔn)的視頻信息隱藏技術(shù)能更好的利用視頻的編碼特性,因此越來越多的算法開始利用視頻的編碼特性來進(jìn)行信息隱藏[5]。
利用視頻編碼特性的視頻信息隱藏技術(shù)一般包括視頻空域和頻域信息隱藏[6-8]與運(yùn)動(dòng)矢量信息隱藏[9],與視頻空域和頻域的信息隱藏研究相比,近些年基于運(yùn)動(dòng)矢量的信息隱藏研究工作相對較少,但這一類信息隱藏有其獨(dú)有的優(yōu)勢,在應(yīng)用中有著不可替代的作用。與空域和頻域的視頻信息隱藏算法相比,基于運(yùn)動(dòng)矢量的信息隱藏算法由于不改變視頻參考幀和在傳輸中的運(yùn)動(dòng)矢量,通常較少遭受破壞,在解碼端視頻質(zhì)量保障和隱藏信息保護(hù)方面均具有明顯優(yōu)勢。在這一領(lǐng)域較早的研究工作是2001年Xu等[10]提出的壓縮視頻流中的信息隱藏算法(MVCA算法),將隱藏信息嵌入在絕對值大的分量中,利用較大數(shù)據(jù)允許更大變化的特點(diǎn)改變矢量進(jìn)行數(shù)據(jù)嵌入。Fang等[11]提出了更符合矢量變化規(guī)律的相位角概念進(jìn)行信息隱藏,之后Zhu等[12]利用1/4像素進(jìn)行信息隱藏降低了矢量變化程度,蘇育挺等[13]利用菱形算法進(jìn)一步提高了嵌入強(qiáng)度。后期算法研究者又從局部最優(yōu)性和相關(guān)性等方向開展了進(jìn)一步研究工作[14-15],且更注重算法的安全性。但以上算法存在一個(gè)共同問題,就是在嵌入水印時(shí)會(huì)引起視頻運(yùn)動(dòng)矢量的改變,而解碼端無法消除這些改變所帶來的影響。一方面,由于在解碼端解碼時(shí)無法利用傳輸?shù)男畔⒔獯a原始的運(yùn)動(dòng)矢量,因此算法只能利用改變后的運(yùn)動(dòng)矢量進(jìn)行解碼操作,會(huì)造成解碼視頻質(zhì)量下降;另一方面,為了保證視頻的質(zhì)量,上述算法往往會(huì)利用嵌入信息后的運(yùn)動(dòng)矢量來進(jìn)行殘差運(yùn)算,但是運(yùn)動(dòng)矢量的計(jì)算是在殘差最小的情況下得出的,上述矢量信息隱藏算法中產(chǎn)生的運(yùn)動(dòng)矢量改變會(huì)造成殘差碼流的增加,影響傳輸效率。綜上所述,如何能在解碼端不借助大量的外部信息的同時(shí)還原未嵌入數(shù)據(jù)時(shí)的運(yùn)動(dòng)矢量信息隱藏算法成為迫切需要。針對這一問題,本研究通過在編解碼過程中引入可逆信息隱藏算法思想來解決。
可逆信息隱藏算法早期是由Tian[16]針對圖像提出的差值擴(kuò)展算法,目的是在解碼端提取隱藏?cái)?shù)據(jù)并還原載體未嵌入數(shù)據(jù)時(shí)的狀態(tài),算法通過增加相鄰像素值差值的最低有效位來實(shí)現(xiàn)數(shù)據(jù)嵌入,并利用差值擴(kuò)展與變化的控制保證水印化圖像的質(zhì)量。在此基礎(chǔ)上,Thoid等[17]提出了差值直方圖平移的改進(jìn)算法,解決了Tian算法中位置圖占有大量比特信息問題,進(jìn)一步提高了嵌入容量和嵌入后圖像的質(zhì)量。熊志勇等[18-19]也在這一領(lǐng)域進(jìn)行了研究,實(shí)現(xiàn)了單向擴(kuò)展和負(fù)數(shù)域的可逆算法來應(yīng)對更復(fù)雜的情況。
本研究利用可逆信息隱藏思想可以無損回復(fù)原始載體的特性,設(shè)計(jì)了一種基于可逆思想的運(yùn)動(dòng)矢量信息隱藏算法。算法利用EPZS算法計(jì)算出目標(biāo)運(yùn)動(dòng)矢量的最優(yōu)預(yù)測矢量,通過調(diào)整預(yù)測矢量與目標(biāo)運(yùn)動(dòng)矢量的差值實(shí)現(xiàn)水印嵌入,由于嵌入過程和提取過程引入了可逆信息隱藏的算法思想,在解碼端提取完整的嵌入信息后可以還原最優(yōu)預(yù)測情況下的視頻運(yùn)動(dòng)矢量,較好解決了基于運(yùn)動(dòng)矢量的視頻信息隱藏算法中嵌入數(shù)據(jù)導(dǎo)致運(yùn)動(dòng)矢量變化所帶來的問題。得益于運(yùn)動(dòng)矢量完全恢復(fù),在解碼視頻的質(zhì)量得到保證的同時(shí),避免了因?yàn)檫\(yùn)動(dòng)矢量改變所引起的碼流增加和預(yù)測矢量改變所造成的GOP(group of pictures)誤差積累。
當(dāng)可逆信息隱藏算法在較大的待嵌入值中嵌入信息時(shí),往往會(huì)產(chǎn)生嵌入后信息改變幅度過大的問題[16],對于運(yùn)動(dòng)矢量來講同樣會(huì)出現(xiàn)這種問題。而本算法采取在目標(biāo)運(yùn)動(dòng)矢量與其最相關(guān)矢量的差值中進(jìn)行嵌入的方案,以利用相關(guān)性使需要嵌入信息的矢量值較小。其中,找到與目標(biāo)運(yùn)動(dòng)矢量最相關(guān)矢量的方法就是對當(dāng)前的運(yùn)動(dòng)矢量進(jìn)行估計(jì)。
圖1 預(yù)測矢量選擇
H.264提供了多種運(yùn)動(dòng)矢量的估計(jì)算法,本研究選用EPZS估計(jì)算法。EPZS算法包括運(yùn)動(dòng)矢量的預(yù)測選擇、自適應(yīng)提前終止和預(yù)測矢量的修正三大部分,是由Tourapis等[21]在2002年提出的一種基于PMVFSAST[20](predictive motion vetor field adaptive search technique)和APDZS(advanced predictive diamond zonal search)的矢量預(yù)測改進(jìn)算法[21-22],旨在利用視頻臨近矢量的相關(guān)性減少預(yù)測矢量碼流。將其用于本可逆算法中,可以提高運(yùn)動(dòng)估計(jì)的準(zhǔn)確性,求得最優(yōu)預(yù)測矢量,下面給出EPZS算法的三大部分。
矢量選擇如圖1所示,通過選擇矢量構(gòu)成集合A~C。
集合A={Median(MVTop,MVLeft,MVTop_Left)},其中MVTop為當(dāng)前預(yù)測塊上塊的預(yù)測矢量,MVLeft前預(yù)測塊左塊的預(yù)測矢量,MVTop_Left前預(yù)測塊左上塊的預(yù)測矢量,Median為目標(biāo)矢量取中值操作。
子集B={MVTop,MVLeft,MVTop_Left,MVPre,(0,0)},MVPre前預(yù)測幀前一幀與當(dāng)前預(yù)測塊位置相同塊的預(yù)測矢量。
子集C={MVAcc,MVPre_Top,MVPre_down,MVPre_right,MVPre_left},MVAcc為包括加速度運(yùn)動(dòng)矢量的更復(fù)雜的運(yùn)動(dòng)預(yù)測矢量,MVPre_Top,MVPre_down,MVPre_right,MVPre_left為Frame(t-1)幀中與當(dāng)前預(yù)測塊位置相同塊的四個(gè)相鄰塊的運(yùn)動(dòng)矢量。
自適應(yīng)提前終止通過依次對集合A、B、C處理選擇在預(yù)測范圍內(nèi)的預(yù)測模式來提高預(yù)測的速度。
設(shè)定T=a×min(Min1,Min2,…,Minn)+b,其中Min1,Min2,…,Minn表示鄰塊的最小匹配誤差,a和b是依據(jù)運(yùn)動(dòng)矢量預(yù)測要求的設(shè)定值。依次遍歷數(shù)據(jù)集A到C,運(yùn)動(dòng)矢量預(yù)測參差小于預(yù)測閾值T時(shí),中止計(jì)算。
當(dāng)自適應(yīng)終止不能滿足閾值時(shí),要進(jìn)行進(jìn)一步的矢量修正,以1.2小節(jié)選擇的最優(yōu)預(yù)測矢量對應(yīng)的預(yù)測位置為中心,通過算法復(fù)雜度更高的模板,對預(yù)測矢量進(jìn)行進(jìn)一步的定位,以滿足閾值,達(dá)到準(zhǔn)確預(yù)測矢量的目的。
矢量預(yù)測完成后,得到了與目標(biāo)運(yùn)動(dòng)矢量相關(guān)性極高的預(yù)測矢量,利用預(yù)測矢量可以減少運(yùn)動(dòng)矢量的冗余度,也為進(jìn)行可逆信息的嵌入提供了與運(yùn)動(dòng)矢量相關(guān)性強(qiáng)的矢量。
本算法核心思想是基于運(yùn)動(dòng)矢量的插值擴(kuò)展,包括基于矢量預(yù)測的插值擴(kuò)展、矢量失真控制、差值擴(kuò)展標(biāo)記和嵌入位置標(biāo)記。
本算法將目標(biāo)矢量的橫向位移值與縱向位移分別與EPZS算法計(jì)算得到的最優(yōu)預(yù)測矢量的橫向位移與縱向位移做差,利用得到的差值來進(jìn)行隱秘?cái)?shù)據(jù)的嵌入。利用橫向或縱向得到的差值進(jìn)行嵌入與提取1bit數(shù)據(jù)并還原原始差值的過程示意圖如圖2所示,這樣在解碼端可以不需要通過外部信息來還原差值,從而可以通過解碼的最優(yōu)預(yù)測矢量還原原始的運(yùn)動(dòng)矢量。
圖2 在差值中嵌入與提取1bit信息的示意圖
通過改變嵌入差值的信息,可以實(shí)現(xiàn)在一個(gè)運(yùn)動(dòng)矢量中嵌入2n比特?cái)?shù)據(jù),n表示允許的擴(kuò)展位。設(shè)目標(biāo)矢量為MV(a,b),對應(yīng)的最優(yōu)預(yù)測矢量為MVP(a′,b′)。以矢量橫向位移量a為例,定義矢量的差值(Dif)如式(1):
Dif=a-a′。
(1)
在計(jì)算機(jī)中,通過對矢量差值(Dif)左移n位,然后將待嵌入的n比特?cái)?shù)據(jù)補(bǔ)位操作實(shí)現(xiàn)嵌入n比特?cái)?shù)據(jù)bt,得到變化后的差值Difch:
(2)
其中,bin2dec是比特?cái)?shù)據(jù)轉(zhuǎn)十進(jìn)制數(shù)操作,Difch為差值擴(kuò)展改變后的差值。嵌入信息后的矢量橫向位移量
(3)
(4)
提取嵌入信息如式(5):
(5)
其中dec2bin是十進(jìn)制轉(zhuǎn)比特?cái)?shù)據(jù)操作,LSBn是提取目標(biāo)最低n位有效值的操作。同理可以用同樣的方法對b進(jìn)行嵌入信息提取。
在解碼端解碼后,可以提取水印信息的同時(shí)還原原始矢量。
可逆的視頻水印雖然在解碼端可以無損恢復(fù)原始視頻矢量信息,但是由于矢量的改變,非法解碼端解碼后視頻質(zhì)量會(huì)大幅度降低。當(dāng)誤差積累時(shí),在一個(gè)GOP組中會(huì)導(dǎo)致明顯的視頻圖像失真,從而影響信息隱藏的保密性。本算法對視頻碼流采取根據(jù)需要增加解碼信息的隱蔽性方案,以提高算法在解碼端的保密性。
根據(jù)人眼對運(yùn)動(dòng)劇烈的區(qū)域不敏感的特點(diǎn),在視頻運(yùn)動(dòng)劇烈的地方嵌入水印。解碼端原始矢量在解碼完成前不可知,無法利用原始的矢量值進(jìn)行衡量。2.1節(jié)的算法未改變最優(yōu)預(yù)測矢量的值,但最優(yōu)預(yù)測矢量和當(dāng)前塊的真實(shí)矢量值具有強(qiáng)相關(guān)性,可以利用最優(yōu)預(yù)測矢量來進(jìn)行當(dāng)前塊的控制。具體方法是:對于預(yù)測得到的矢量,其運(yùn)動(dòng)程度可用式(6)進(jìn)行計(jì)算。
(6)
其中H和V是預(yù)測運(yùn)動(dòng)矢量的垂直分量和水平分量,設(shè)定允許的閾值T′。當(dāng)|MV|>T′時(shí),標(biāo)記為可嵌入塊,否則,標(biāo)記為不可嵌入塊。閾值T′可以依據(jù)當(dāng)前視頻流的運(yùn)動(dòng)程度與需要進(jìn)行嵌入的數(shù)據(jù)量進(jìn)行設(shè)定,當(dāng)需要嵌入的數(shù)據(jù)量較大且在非法的解碼端質(zhì)量要求較低的應(yīng)用中可以采用較小的閾值,反之可以適量的增大閾值以保證算法在非法解碼端的保密性。在解碼端,利用解碼前面完全恢復(fù)的矢量得到當(dāng)前塊的最優(yōu)預(yù)測矢量,通過對比解碼預(yù)測矢量的運(yùn)動(dòng)程度與允許的閾值T′,可以判斷當(dāng)前塊是否為進(jìn)行嵌入的塊。
由式(2)可知,影響矢量改變程度的最大因素為目標(biāo)矢量與最優(yōu)預(yù)測矢量的差值,所以差值擴(kuò)展運(yùn)動(dòng)矢量的變化程度依賴EPSZ算法的準(zhǔn)確度,當(dāng)運(yùn)動(dòng)矢量預(yù)測相對準(zhǔn)確時(shí)目標(biāo)矢量改變較小,反之則會(huì)使矢量偏移過大,引起解碼端視頻失真。因此,為了保證嵌入數(shù)據(jù)后的運(yùn)動(dòng)矢量與原始運(yùn)動(dòng)矢量不會(huì)有較大的偏差,引入差值擴(kuò)展標(biāo)記的概念。
在2.2節(jié)篩選出的滿足失真控制的矢量中,提取相應(yīng)的矢量MV(a,b)和最優(yōu)預(yù)測矢量MVP(a′,b′),根據(jù)預(yù)測準(zhǔn)確度的需要設(shè)定t作為預(yù)測閾值,通過式(2)得到差值與閾值t對比,設(shè)定差值擴(kuò)展標(biāo)記值mark:
(7)
對b進(jìn)行相同的操作,后續(xù)就可以利用mark的值來判斷是否滿足嵌入域值。
由于在解碼端無法知曉運(yùn)動(dòng)矢量是否進(jìn)行過水印嵌入,因此為保證解碼時(shí)辨別不同運(yùn)動(dòng)矢量的嵌入模式,需要將上述過程判斷結(jié)果以碼流形式保存,并作為水印與需要嵌入的信息同時(shí)嵌入到待嵌入視頻中,據(jù)此,引入嵌入位置標(biāo)記的概念。
首先,當(dāng)前運(yùn)動(dòng)矢量滿足2.2中的失真控制且橫向位移和縱向位移mark值為1時(shí),將矢量視為可擴(kuò)展的矢量,其余的矢量視為不可擴(kuò)展矢量。設(shè)定通過碼流集合L來記錄不可擴(kuò)展運(yùn)動(dòng)矢量的最低有效位;對于可擴(kuò)展的矢量進(jìn)行2.1節(jié)中的擴(kuò)展,并預(yù)留出可嵌入隱秘信息的n位最低有效置;對于不可擴(kuò)展的矢量,提取差值的n位最低有效位,將提取出的最低有效位記入L中,并預(yù)留出可嵌入隱秘信息的n位最低有效位。依據(jù)次序?qū)\(yùn)動(dòng)矢量進(jìn)行標(biāo)識(shí),設(shè)定通過碼流C來記錄運(yùn)動(dòng)矢量是否為可擴(kuò)展,當(dāng)為可擴(kuò)展時(shí),記錄當(dāng)前運(yùn)動(dòng)矢量的標(biāo)記碼C為1,當(dāng)為不可擴(kuò)展時(shí)記錄當(dāng)前運(yùn)動(dòng)矢量標(biāo)記碼C為0。
這樣得到各個(gè)矢量的嵌入位置標(biāo)記C+L,對其進(jìn)行JBIG2壓縮或行程編碼等無損壓縮后作為隱藏信息傳輸。在解碼端,只需提取每個(gè)運(yùn)動(dòng)矢量的n位最低有效位,就可以從中提取嵌入位置標(biāo)記C+L,從而達(dá)到解碼端對運(yùn)動(dòng)矢量是否嵌入數(shù)據(jù)可知的目的。
依據(jù)矢量差值擴(kuò)展隱藏算法思想的嵌入策略,對待嵌入碼流B實(shí)施的嵌入與提取過程分別在3.1節(jié)與3.2節(jié)介紹。
本研究在H.264編碼運(yùn)動(dòng)矢量時(shí)嵌入數(shù)字水印,信息嵌入具體過程如圖3所示。
具體步驟為:
Step 1. 選定GOP組提取視頻的運(yùn)動(dòng)矢量,得到選定塊的運(yùn)動(dòng)矢量MV(a,b) ,并通過EPZS算法得到數(shù)字視頻的最優(yōu)預(yù)測矢量MVP(a′,b′) ,將兩者做差得到運(yùn)動(dòng)矢量殘差。
Step 2. 對選定塊的運(yùn)動(dòng)矢量采取嵌入位置標(biāo)記操作,區(qū)分可擴(kuò)展和不可擴(kuò)展的矢量,得到需要傳輸?shù)奈恢脴?biāo)記C+L,并在不可擴(kuò)展的矢量中預(yù)留可嵌入的最低有效位。
Step 3. 對可擴(kuò)展的矢量進(jìn)行差值擴(kuò)展,并預(yù)留出可嵌入的位置。
Step 4. 獲得待嵌入信息,轉(zhuǎn)化為相應(yīng)的二進(jìn)制碼流B,分別將二進(jìn)制碼流C+L與碼流B進(jìn)行JBIG2壓縮或行程編碼等無損壓縮,再將壓縮碼流嵌入步驟2、3中已預(yù)留的可嵌入最低有效位。
圖3 數(shù)字水印嵌入過程
Step 5. 判需要嵌入的隱藏信息是否嵌入完全,如若沒有嵌入完全,引入下一幀進(jìn)行上述過程直到所有信息嵌入完全。
解碼過程為編碼過程的一個(gè)逆過程,過程如下:
Step 1. 找到選定的GOP組,提取嵌入幀的運(yùn)動(dòng)矢量。
Step 2. 得到選定塊的運(yùn)動(dòng)矢量MV(a,b)與最優(yōu)預(yù)測運(yùn)動(dòng)矢量MVP(a′,b′),提取兩者差值的最低有效位,還原二進(jìn)制碼流C+L,提取并得到相應(yīng)的嵌入位置標(biāo)記,區(qū)分相應(yīng)的可擴(kuò)展的矢量和不可擴(kuò)展的矢量,而后還原碼流K=C+L+B。
Step 3. 對于不可擴(kuò)展的矢量差值通過C+L中的位置標(biāo)記和提取的碼流信息,還原不可變化的運(yùn)動(dòng)矢量。
Step 4. 對于可擴(kuò)展的矢量差值通過C中的位置標(biāo)記信息,將差值行右移n位還原可變化的運(yùn)動(dòng)矢量。
Step 5. 計(jì)算下一塊的運(yùn)動(dòng)矢量直到計(jì)算完畢,如果提取的碼流B中沒有停止的標(biāo)識(shí)碼流,繼續(xù)對下一幀進(jìn)行上述操作過程。
以開源的H.264/AVC標(biāo)準(zhǔn),利用Matlab進(jìn)行仿真實(shí)驗(yàn)。實(shí)驗(yàn)使用了分辨率為 QCIF(quarter common intermediate format,176×144像素)的YUV視頻序列的灰度分量,在JM11.0上,采取IPPP模式對6個(gè)運(yùn)動(dòng)狀態(tài)不同的視頻進(jìn)行測試,包括Highway、Akiyo、Carphone、Coastguard、Suze與Stefan 6個(gè)運(yùn)動(dòng)序列。其中編碼器為基線檔次編碼器、幀率為30 Hz、QP值為28、分辨率為176×144。
對比算法為標(biāo)準(zhǔn)解碼算法、文獻(xiàn)[10]中的MVCA算法和文獻(xiàn)[13]中的菱形算法,并在嵌入水印前進(jìn)行殘差的計(jì)算,以保證算法的解碼端視頻質(zhì)量不受編碼殘差量的影響。分別對比變化平緩的視頻組Akiyo和變化劇烈的視頻組Highway。為了保證實(shí)驗(yàn)結(jié)果是在嵌入數(shù)據(jù)量相同的情況下產(chǎn)生,設(shè)定所有算法嵌入的數(shù)據(jù)量是視頻編碼中運(yùn)動(dòng)矢量數(shù)目的2倍,且三種算法對于矢量失真控制的閾值T′在相同的視頻中設(shè)定的值相同。在不改變視頻最優(yōu)預(yù)測矢量計(jì)算的殘差情況下對50幀中的運(yùn)動(dòng)矢量進(jìn)行滿嵌,通過依次比較提取數(shù)據(jù)后各個(gè)算法解碼端解碼的第n幀和標(biāo)準(zhǔn)解碼的第n幀的視頻質(zhì)量來觀察各種算法的性能。由于標(biāo)準(zhǔn)解碼與本文算法解碼后每一幀與原始視頻PSNR值的折線圖相同,因此不在折線圖5與圖7中表示標(biāo)準(zhǔn)解碼的PSNR曲線,只在表1與表2中列出具體實(shí)驗(yàn)數(shù)值。
1) 對運(yùn)動(dòng)平緩視頻進(jìn)行算法性能實(shí)驗(yàn)分析
選取運(yùn)動(dòng)平緩的視頻序列Akiyo,并給出標(biāo)準(zhǔn)解碼與三種算法解碼50幀后的圖像和解碼流程中的PSNR。
圖4和圖5給出了運(yùn)動(dòng)平緩的不同視頻組解碼端情況,從圖中可以看出,所有的測試序列的幀在視頻解碼中都保持了和標(biāo)準(zhǔn)解碼的幀基本相同的PSNR值,這是由于對于運(yùn)動(dòng)情況平緩的視頻組來講,視頻運(yùn)動(dòng)不明顯,運(yùn)動(dòng)矢量較小,使得矢量算法可以利用的矢量較少。在改變運(yùn)動(dòng)矢量少的情況下,算法均沒有明顯的視頻質(zhì)量變化,在視頻解碼對比中,幾個(gè)算法均表現(xiàn)出了良好的特性。這一結(jié)果表明,本算法對于運(yùn)動(dòng)平緩視頻進(jìn)行信息隱藏能夠很好的保證解碼視頻質(zhì)量。
2) 對運(yùn)動(dòng)劇烈視頻進(jìn)行算法性能實(shí)驗(yàn)分析
選取運(yùn)動(dòng)劇烈的視頻序列Highway,并給出四種算法解碼50幀后的圖像和解碼流程中的PSNR。
圖4 標(biāo)準(zhǔn)解碼與三種算法解碼50幀的視覺效果
圖6給出了在運(yùn)動(dòng)劇烈的Highway視頻流第50幀中解碼端圖像質(zhì)量情況。在Highway視頻組中解碼兩個(gè)對比算法視頻圖像中道路直線出現(xiàn)彎曲的情況,并且依據(jù)圖7對比算法視頻質(zhì)量較差,這是由于MVCA算法和菱形算法中存在運(yùn)動(dòng)矢量的變化,導(dǎo)致了解碼視頻質(zhì)量的下降。但本算法完全恢復(fù)了運(yùn)動(dòng)矢量,使得解碼后的視頻質(zhì)量與H.264標(biāo)準(zhǔn)解碼器解碼的視頻質(zhì)量相同,因此本算法解碼兩組視頻組后依舊保持著較高的解碼視頻質(zhì)量。且從圖7中可以看出,MVCA算法和菱形算法的PSNR會(huì)隨著預(yù)測幀的增加而減少,這是由于誤差的積累會(huì)使解碼質(zhì)量逐幀變差,從而導(dǎo)致了視頻質(zhì)量下降。由此可以看出本算法在視頻解碼質(zhì)量方面優(yōu)于MVCA算法和菱形算法,且這種優(yōu)勢隨著GOP組中編碼幀數(shù)的增加愈發(fā)明顯。
圖5 三種算法解碼50幀的每一幀與原始視頻的PSNR比較
圖6 標(biāo)準(zhǔn)解碼與三種算法解碼50幀的視覺效果
圖7 三種算法解碼50幀中每一幀與原始視頻的PSNR比較
表1給出了六個(gè)運(yùn)動(dòng)情況不同的視頻解碼第10幀與第50幀時(shí)的PSNR,通過六組視頻序列的PSNR對比,可以看出本算法與標(biāo)準(zhǔn)解碼算法的PSNR一致,均優(yōu)于MVCA算法和菱形算法。
為探究算法對于視頻碼流的影響,改變4.1節(jié)中實(shí)驗(yàn)的編碼模式,在嵌入水印過程完成后再進(jìn)行殘差運(yùn)算,保證在解碼端視頻質(zhì)量下降只與殘差的量化相關(guān)。實(shí)驗(yàn)通過控制嵌入量,同樣使算法嵌入的數(shù)據(jù)量是視頻編碼中運(yùn)動(dòng)矢量數(shù)目的2倍,且三種算法對于矢量失真控制的閾值T′在相同的視頻中設(shè)定的值相同。采用這種編碼模式完整編碼Highway、Akiyo、Carphone、Coastguard、Suze和Stefan的50幀,對比各個(gè)算法編碼量。
表1 六個(gè)視頻序列標(biāo)準(zhǔn)解碼與三種算法解碼的PSNR
表2 六個(gè)視頻序列標(biāo)準(zhǔn)解碼與三種算法編碼的碼流大小
通過表2的實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)三種算法在嵌入數(shù)據(jù)后與標(biāo)準(zhǔn)解碼相比,碼流有著不同程度的增加,其中本算法在同樣嵌入強(qiáng)度時(shí)碼量增加最少。產(chǎn)生上述結(jié)果的原因是本算法在解碼端能夠還原原始的運(yùn)動(dòng)矢量,使解碼殘差和標(biāo)準(zhǔn)解碼算法的殘差可以保持一致,且由于H.264中解碼算法的殘差是最優(yōu)預(yù)測矢量下的殘差值,殘差值在編碼過程中保持最小,編碼后的殘差的碼流量保持最少。根據(jù)實(shí)驗(yàn)結(jié)果對比與分析,本算法對編碼碼流的影響均優(yōu)于MVCA算法與菱形算法。
利用可逆算法在解碼端還原原始的矢量,確保了原始視頻運(yùn)動(dòng)矢量的局部最優(yōu)性,通過與MVCA算法和菱形算法在視頻質(zhì)量和編碼碼流的實(shí)驗(yàn)對比分析,可以看出本算法在加密信息的同時(shí)減少了碼流的增加,并且保證了視頻的解碼質(zhì)量,在運(yùn)動(dòng)劇烈的視頻中優(yōu)勢更加明顯。綜上,本算法在解碼視頻質(zhì)量和視頻編碼碼流量方面均表現(xiàn)出高性能,在醫(yī)學(xué)、法律與視頻直播等領(lǐng)域具有廣泛的應(yīng)用前景。