?

優化塊選擇策略的高性能可逆信息隱藏算法

2023-05-11 12:51周琳娜吳正哲鄧云騰李岱霖
西安電子科技大學學報 2023年2期
關鍵詞:分塊鄰域波動

周琳娜,唐 鑫,吳正哲,鄧云騰,李岱霖

(1.北京郵電大學 網絡空間安全學院,北京 100876;2.國際關系學院 網絡空間安全學院,北京 100091)

1 引 言

隨著全球信息化的建設,信息安全在各個領域變得越來越重要,例如云數據安全技術[1-3]、水印算法研究[4-5]??赡嫘畔㈦[藏[6-12]是信息安全領域的關鍵技術之一,其以可逆的方式將秘密數據嵌入到覆蓋載體中。到目前為止,可逆信息隱藏主要工作有基于差值擴展[6]、直方圖平移[7-10]和預測誤差擴展[11-12]的算法。像素值排序(Pixel Value Ordering,PVO)[13]是實現可逆信息隱藏的一種新興的有效手段。通過對一個塊中的像素值按升序排序,使用次大值像素預測最大值像素,使用次小值像素預測最小值像素,分別生成預測誤差,并通過預測誤差擴展來實現數據嵌入。與傳統的預測誤差擴展方法相比,基于像素值排序的方法通過排序使得預測更準確,從而減少了擴展中的無效平移。然而,對于粗糙塊,由于像素間的波動性較大,預測的準確性仍然面臨很大的不確定性。隨之而來的無效平移不可避免地影響了數據嵌入的不可感知性。

像素塊按波動性排序是解決這一問題的一種有效手段。通過計算像素塊的波動值,可以區分平滑塊和粗糙塊。通過優先在平滑塊中嵌入數據,可有效減少無效平移,從而提高不可感知性。當前,像素塊的波動值計算方法可分為4類。① 基于塊內的非擴展像素計算塊波動值[13-16]。其中,最常見的方法是計算塊內次大值與次小值的差值作為塊的波動值。但是,在這類方法中,外部大量像素往往被忽略,即使其中一些像素也能反映塊的波動性。而且,只使用塊內兩個像素來定義塊波動性并不準確,缺乏對于豎直和水平方向像素相關性的考量;② 考慮了外部右鄰域和下鄰域的鄰接像素,使用像素塊右側兩列像素和底部兩行像素[17-20],定義波動值為鄰接上下文像素豎直和水平方向差的絕對值之和。由于涉及到周圍塊的像素值變化,為了保證可逆性,按照從下到上、從右到左逆序進行數據提取和恢復。然而,這類方法僅僅考慮了右鄰域和下鄰域,沒有考慮左鄰域和上鄰域的上下文像素,如果擴展像素出現在塊的左上角,遠離上下文像素,預測精度會受到顯著影響;③ 使用了全包圍上下文像素策略來評估波動性[21-22],引入了更多像素,以提高波動值計算的準確性。該方法大部分的工作都是在雙層嵌入的基礎上進行設計。除邊界像素外,將載體圖像分為陰影塊和空白塊兩個塊集,選取陰影塊的4個相鄰空白塊中的像素作為上下文像素,計算陰影塊的波動值,嵌入容量一半的比特被嵌入到陰影塊后,用相同的方法計算空白塊的波動值;再將剩下的另一半比特嵌入到空白塊中,提取過程與嵌入過程相反,保證了算法的可逆性。在該類算法中,選取相鄰上下鄰域一行、左右鄰域一列或者相鄰上下鄰域兩行、左右鄰域兩列的像素作為上下文像素,塊波動值被定義為每個鄰域中兩個連續像素在豎直或水平方向上差的絕對值之和。然而,在塊波動值的計算中沒有考慮到像素在雙斜對角方向的一致性,對于較小的分塊,塊內像素距離接近且相關性較強,僅考慮水平豎直兩個方向上的上下文像素不容易區分波動性,考慮雙斜對角方向的一致性可以更好地提升預測精度。此外,對于較大或分塊不均勻的分塊,即使塊局部波動性好也不能說明該塊平滑,各個方向上的上下文像素一致性均應被納入考慮;④ 同時使用了塊內外的相關上下文像素來計算所選塊的波動值,選取與預測相關的相鄰像素[23-25]。如選取塊中最大兩個像素和最小兩個像素的周圍8個鄰接像素作為上下文像素,考慮了像素點水平、豎直、雙斜對角4個方向上像素的一致性。該算法雖然對像素點4個方向上鄰域的像素都進行了考慮,但是僅僅計算像素點的局部波動性限制了預測的準確性,對于較大的分塊不能準確地判斷塊的波動性。而且,該類算法不能適用于前沿的預測器,只適合擴展像素少的情況下秘密信息的嵌入。

針對以上提到的問題,文中提出了一種基于優化塊選擇策略的高性能像素值排序方法,以提高數據嵌入的隱蔽性。所提方法是首個同時考慮像素塊水平、豎直和雙斜對角方向像素一致性的塊選擇方法。選取塊外8個方向上的部分像素為上下文像素,并將上下文像素的一致性定義為像素兩側的上下文像素在豎直、水平或雙斜對角方向上差的絕對值。特別地,在計算完同一方向上兩個不同鄰域內的像素差后,將所得結果再次求差,體現為同一方向上的像素一致性。定義塊的波動值為上述所有數值的絕對值之和。為了進一步提高數據嵌入的不可感知性,同時考慮像素的空間位置,通過定義切比雪夫距離來過濾掉不適合進行擴展的像素,減少無效平移。實驗結果表明,所提方法相比現有方法,能夠實現不可感知性的提升。

文中工作的主要貢獻如下:

(1)提出了一種基于優化塊選擇策略的高性能可逆信息隱藏框架。該框架支持改進的塊選擇和相應的擴展像素距離篩選策略,這兩種策略都大大提高了預測的準確性和不可感知性。得益于上下文像素的定義方法,在數據提取階段,所提框架確保計算出的塊波動值與嵌入階段一致,從而確??赡嫘?。

(2)提出了一種基于多方向預測的塊波動值計算方法。該方法使用水平、豎直和雙斜對角4個方向的上下文像素計算波動值,并且對同一方向上的上下文像素綜合考慮,極大地提高了預測的準確性。

(3)加入了對擴展像素空間位置的考慮。對于需要參與擴展的像素,使用切比雪夫距離計算像素空間位置距離,并且根據分塊大小自適應確定閾值。對于較大或者長寬不均勻的平滑塊,該方案能夠篩選掉不適合擴展的像素,減少無效平移的數量,進一步提升不可感知性。實驗結果表明,在嵌入相同數量的水印比特的條件下,所提算法可實現更好的預測精度和隱蔽性。

2 相關工作

2013年,文獻[13]在預測誤差擴展(Prediction Error Expansion,PEE)算法的基礎上提出了一種基于像素值排序(PVO)的可逆信息隱藏算法。在每個塊中,像素點按照升序排序,使用次大值像素預測最大值像素,次小值像素預測最小值像素,通過所得預測誤差來確定是否進行嵌入。對于像素值排序算法,波動小的塊更有利于可逆數據隱藏[26]。優先選擇波動小的像素塊進行預測誤差擴展,可以有效減少無效平移,從而提高不可感知性。為了實現這一目的,進行塊波動值的計算,文獻[13]考慮到了塊內像素的一致性,將塊波動值定義為塊中次大值與次小值像素的差。由于其簡單性,在許多基于像素值排序算法的可逆隱藏方案中都有使用,如PVO[8]和IPVO(Improved Pixel Value Ordering)[16]。但是,由于只有兩個內部像素參與波動值計算,得到的值不能準確反映對應塊的波動性情況。作為改進,一種基于塊外像素計算波動值的方法被廣泛應用[16-19]?;舅枷胧鞘褂孟袼貕K外部的右側相鄰兩列和下側相鄰兩行的像素作為上下文像素,將波動值定義為每個相鄰像素之間豎直和水平差的絕對值之和,以提高波動值計算的準確性。在此基礎上,文獻[20]定義標準差反映像素塊中像素值的離散程度,使用像素塊的右鄰域、下鄰域和右下領域3個相鄰像素塊,通過計算相鄰像素塊的加權標準差區分平滑塊和粗糙塊,考慮到了像素塊內整體的波動性。然而,這類方法僅僅使用到了右鄰域和下鄰域,參與計算的像素數量有限,左鄰域和上鄰域的上下文像素沒有考慮,一旦目標像素出現在所選塊的左上角,且距離上下文像素較遠,則會對預測精度產生較大影響。文獻[21]提出了一種全封閉上下文策略,通過實驗對比,發現距離該塊最近的像素對波動值計算是有幫助的。因此,該算法只選擇那些接近像素塊最近一行或一列的上下文像素,塊的波動值被計算為塊中兩個連續像素在豎直和水平方向上差的絕對值之和。由于塊的上、下、左、右鄰域像素都用來作為上下文像素開展波動值計算,在此基礎上執行塊選擇策略可以更好地挑選出波動小的塊優先嵌入。文獻[22]也通過全包圍像素算法實現更精確的計算。對于邊界塊,將來自上、下、左、右鄰接像素的數量加倍,指定塊外兩行和兩列像素作為上下文像素,具體定義為水平或豎直方向上兩個連續像素之間差的絕對值之和,取得了不錯的效果。然而,雙斜對角方向的一致性并沒有被納入波動值計算之中。為了更好地選擇上下文像素,文獻[23]提出了一種同時考慮內外上下文像素的自適應波動值計算方法。具體來說,以像素值較大的一側為例,將最大值次大值的8個相鄰像素、次大值本身和包含最大值次大值的最小邊框矩形中的部分像素作為上下文像素,波動值定義為上下文像素集合中的最大值減去最小值除以像素個數。然而,對于粗糙塊,由于仍然只有兩個像素參與波動計算,改進相當有限。作為改進方案,文獻[24]改進了上下文像素的定義,以消除不必要的相鄰像素。以像素值較大的一側為例,首先,選取所選塊最大值的8個相鄰像素,刪除涉及到其他塊的最大值最小值像素,保證了算法可逆性;此外,為了進一步改進,可對上下文像素求平均值,去除了與平均值偏差較大的像素,波動值定義為上下文像素的平均值與次大值差的絕對值。該算法消除了無效的上下文像素,提高了波動值計算的準確性。然而,由于上下文像素圍繞擴展像素選取,所以該類方法對于較大的分塊不能準確地評估波動性。而且,隨著研究的進一步開展,現有的預測器可以在平滑塊中嵌入更多的比特,平滑塊內的像素需要更多的擴展,該算法僅適用于基礎像素值排序算法。

3 算法流程

面向基于像素值排序的可逆信息隱藏算法,文中提出了一種高性能的優化塊選擇策略。該方法考慮了圖像塊內像素在水平、豎直、雙斜對角4個方向的一致性,相比已有算法大大提高了所衡量圖像塊波動值的準確性。為了實現更好的不可感知性,進一步考慮了參與預測誤差計算的像素之間的位置關系,優先在空間距離接近的像素對中嵌入數據。首先給出波動值計算的過程,然后在波動值的基礎上根據擴展像素的切比雪夫距離進行二次判斷篩選,最后給出基于優化塊選擇策略的嵌入和提取過程。

3.1 波動值計算

在文中所提的塊選擇策略的像素值排序算法中,首先需要選擇上下文像素來計算每個分塊的波動值。以一個分塊為例,其內部像素在水平、豎直、雙斜對角方向的一致性均反映了其波動性。在每個方向上,像素之間的一致性越強,塊就越平滑。將圖像分成n個大小相同、互不重疊的塊,下面以圖1所示的一個t×w的圖像塊為例,介紹上下文像素選取以及塊波動值計算過程。該計算方法同樣適用于其他大小的圖像塊。

圖1 分塊與上下文像素選取

黑粗框區域為需要計算波動值的t×w像素塊,為了方便表達,中間省略的像素用…表示。使用其最外圈像素距離為2以內的部分像素點作為上下文像素來計算塊波動值,在(t+4)×(w+4)的窗口框中,未使用到的像素點用×來表示。黑色單線圓圈表示水平方向利用到的上下文像素,黑色雙線圓圈表示豎直方向利用到的上下文像素,黑色虛線圓圈表示雙斜對角方向利用到的上下文像素。為了提升嵌入容量,用于計算塊波動值的上下文像素會再次利用,在嵌入過程中按正序從左到右、從上到下掃描和處理塊,而在提取過程中按逆序從下到上、從右到左掃描和處理塊,以此保證算法的可逆性。

上下文像素包含圍繞中心點集的兩圈像素點x1,x2,…,x4w∪y1,y2,…,y4t∪z1,z2,…,z8。分別劃分為水平組、豎直組和雙斜對角組。在每個方向上,相鄰上下文像素點差值反映像素的局部同質性[27]。然而,對于較大的分塊,僅使用局部同質性并不能全面地評估像素塊的波動性。因此,基于局部相鄰上下文像素的差異,計算同一方向上所有上下文像素的一致性,并由此定義塊的波動值。同時,對于距離像素塊最近一行和一列的像素,也將其作為波動值計算的一部分。

對水平方向,定義局部波動值Hi(i∈[1,w])如下:

(1)

其中,x1,x2,…,x4w表示分塊水平方向的上下文像素。

像素塊在水平方向的全局波動值定義為

(2)

對豎直方向,定義局部波動值Vi(i∈[1,t])如下:

(3)

其中,y1,y2,…,y4t表示分塊豎直方向的上下文像素。

像素塊在豎直方向的全局波動值定義為

(4)

對雙斜對角方向,定義局部波動值Oi(i∈[1,2])如下:

(5)

其中,z1,z2,…,z8表示分塊雙斜對角方向的上下文像素。

像素塊在雙斜對角方向的全局波動值定義為

LO=O1+O2。

(6)

距離目標塊外圈像素距離為1的每兩個連續像素之間差的絕對值之和定義為c,即

(7)

像素塊的波動值L定義如下:

L=LH+LV+LO+c。

(8)

計算出像素塊的波動值后,可通過設定閾值對平滑塊開展篩選。篩選出的平滑像素塊與文中提出的空間位置篩選算法結合,優先選擇波動小的塊來嵌入信息,以減少潛在的無效平移。

3.2 空間位置篩選平滑塊

現有的基于塊選擇的像素值排序算法在數據嵌入的過程中僅通過塊波動值來判斷數據是否可嵌入,沒有考慮塊內最大值與次大值和最小值與次小值的空間位置關系。對于較大的分塊或者長寬不均勻的分塊,若用于參與擴展計算的像素空間位置相關性較弱,即使相應的塊波動值較小,在實際嵌入過程中,也仍然可能導致無效平移,從而降低秘密信息嵌入的不可感知性?;谏鲜龅膯栴},應進一步判斷最大值與次大值和最小值與次小值的像素空間位置,具體方法如下。

在節3.1計算塊波動值時考慮了雙斜對角方向的像素一致性,所以對于某一個像素點,其在水平、豎直、雙斜對角方向的鄰接像素空間位置都應該被定義為1,因此像素空間位置的距離不能簡單地通過直線距離或者曼哈頓距離來計算。與中心像素點距離為1的8個鄰接像素點如圖2所示。

圖2 與中心像素距離為1的8個鄰接像素點

為了解決這個問題,使用切比雪夫距離來定義像素空間位置距離,在數學上也稱為棋盤距離。根據波動值劃分完平滑塊和粗糙塊后,記錄平滑塊內最大值、次大值像素和最小值、次小值像素所在的空間位置。記最大值、次大值像素分別對應點A(q1,r1)、B(q2,r2),切比雪夫距離為dmax。記最小值、次小值像素分別對應點C(q3,r3)、D(q4,r4),切比雪夫距離為dmin。則根據切比雪夫公式分別可得像素間的距離為

dmax=max(|q1-q2|,|r1-r2|) ,

(9)

dmin=max(|q3-q4|,|r3-r4|) 。

(10)

為了既能篩選掉不適合擴展的預測誤差對又能保證嵌入容量,對于一個t×w的塊,定義像素空間距離閾值為D,將其與切比雪夫距離dmax、dmin進行比較,做進一步的嵌入判斷。閾值D可表示為

D=max(t,w)-1 。

(11)

為了在保證嵌入容量的同時篩選掉不適合擴展的像素,如果最大值與次大值的切比雪夫距離dmax和最小值與次小值的切比雪夫距離dmin都大于等于D,則即使此塊波動值很小,也不考慮進行擴展嵌入。特別注意的是,當分塊大小為2×2時,不考慮位置篩選,因為塊內的4個像素互相距離都為1,沒有遠近之分。

為了更清晰地說明文中算法,取一個5×2的塊為例,具體樣例如圖3所示。

(a) 兩對像素空間位置距離都過大

對于圖3(a),按照從左到右、從上到下的順序掃描像素,可得序列{85,77,81,82,82,80,81,80,79,83},從大到小排序后可得序列{85,83,82,82,81,81,80,80,79,77}。通過切比雪夫距離公式可得dmax=4,dmin=4,說明該塊擴展像素距離過遠,由相鄰像素的一致性可得,其并不適合擴展嵌入。對于圖3(b),按照從左到右、從上到下的順序掃描像素,可得序列{85,83,83,82,83,81,82,80,84,84},從大到小排序后可得序列{85,84,84,83,83,83,82,82,81,80}。通過切比雪夫距離公式可得dmax=4,dmin=1,雖然最大值與次大值距離較遠,但整體來看,塊內的波動性不大,適合擴展嵌入。

3.3 自適應選擇最佳分塊

首先,將圖像劃分為m個大小相同且互不重疊的塊,塊內n個像素值從小到大排序后表示為xσ(1)≤xσ(2)≤…≤xσ(n-1)≤xσ(n),如果xσ(u)=xσ(v)并且u

對于不同的圖像,或同一圖像下不同的嵌入容量,固定的分塊會限制算法的最優解。比如紋理平滑的圖像在低嵌入容量下更適應較大的分塊,一方面更多的上下文像素參與到塊的波動值計算,另一方面切比雪夫距離的評估也更加準確。相反,對于紋理復雜的圖像,小的分塊可以保證更大的嵌入容量。自適應選擇最佳分塊的算法可用偽代碼描述如算法1所示。

算法1自適應選擇最佳分塊算法。

使用窮舉方法羅列每種分塊大小的可能:

size_set=[] 存儲不同分塊

a,b=2,5 設置每個分塊邊的最小值和最大值(只能在2~5之間取)

foriin range(a,b+1):

forjin range(a,b+1):

size_set.append((i,j)) 將不同的分塊存入size_set

best_para={} psnr最大時的分塊參數(閾值和大小)

比較不同分塊結果:

for item in res: 遍歷結果

if not item[0]:

比較生成的結果,得到的結果比當前max_psnr大則更改相應參數

if item[1][′psnr′] > max_psnr:

max_psnr=item[1][′psnr′]

best_para[′T′]=item[1][′T′]

best_para[′size′]=item[1][′size′]

best_para[′psnr′]=′%.3f′ % max_psnr 取3位小數

print(best_para) 輸出最合適的參數結果。

3.4 數據的嵌入

圖4是所提出的基于優化塊選擇策略的可逆數據隱藏算法的圖示。從流程圖可以看出,該框架由兩個模塊組成:數據嵌入模塊和數據提取模塊。以嵌入為例,它可以進一步分為4個部分:圖像分割和上下文像素選擇、波動值計算、塊選擇、秘密數據嵌入。具體嵌入過程將在下面進行詳細介紹。

圖4 方法框圖

步驟1 預測誤差擴展。首先,按照節3.3的方法對圖像分割并計算塊的波動值。計算完波動值后,對低于波動值閾值的塊進行預測誤差擴展,預測誤差可表示為

emax=xσ(n)-xσ(n-1),

(12)

emin=xσ(1)-xσ(2),

(13)

其中,xσ(n)表示分塊中的最大值,xσ(n-1)表示分塊中的次大值,xσ(1)表示分塊中的最小值,xσ(2)表示分塊中的次小值。

步驟2 溢出分析與輔助信息嵌入。為了防止255或0像素值上溢或下溢,可通過找出可能下溢或上溢的像素,并在位置圖中標出它們的位置。若像素塊內最大值像素為 255,將其減1并使用位置圖將該像素標記為1。若像素塊內最小值像素為 0,將其加1并使用位置圖將該像素標記為1,其他非溢出點標記為0。輔助信息由位數(5 bit)、溢出點位置圖長度(18 bit)、最后嵌入塊的索引(16 bit)及其嵌入容量(1 bit)、分塊大小(4 bit)、q個閾值(q×10 bit)組成。利用LSB(Least Significant Bits)方法將輔助信息作為嵌入的一部分嵌入到載體圖像第1行的最低有效位。

步驟3 秘密信息嵌入。為了在達到最大容量之前實現較高的不可感知性,優先選擇波動值小于的塊進行嵌入,同時利用切比雪夫距離對需要進行成對擴展的像素點進行判斷,確定最終的擴展像素。特別的是,位置圖中標記為1的像素不進行考慮。剩余的像素,可表示為

(14)

如果emax=1,則通過預測誤差擴展,將一個秘密比特b∈{0,1}嵌入到塊的最大像素中;如果emax>1,則最大像素增加1。

另一側,可表示為

(15)

如果emin=-1,則通過預測誤差擴展,將一個秘密比特b∈{0,1}嵌入到塊的最小像素中;否則,如果emin<-1,則最小像素減小1。

3.5 數據的提取和圖像恢復

如框架圖4所示,在接收端的步驟與嵌入相反,詳細步驟如下。

步驟1 輔助信息提取。首先利用LSB方法提取載體圖像第1行像素的最低有效位,以獲得輔助信息。然后根據輔助信息確定分塊的大小、閾值等參數。

(16)

所示的規則,提取一個秘密位。最后,通過

(17)

恢復最大的像素。

(18)

最后,通過

(19)

恢復最大的像素。

4 實驗結果

通過實驗來驗證所提方案的有效性并評估其性能。采用了一臺inter Core i5-6500 CPU @ 3.20 GHz、16 GB RAM和1 TB硬盤驅動器的工作站,所有算法都使用Python 3.7版本實現。從USC-SIPI 圖像數據庫[28]選取6張512×512的灰度圖Lena、Baboon、Clock、Airplane、Lake、Sand進行實驗,分別如圖5所示。

(a) Lena

4.1 可逆性驗證

首先通過可逆性驗證檢查算法的正確性。以圖6(a)Lena圖為例,具體來說,通過判斷原始圖像與恢復后的圖像是否相同來決定算法是否可逆。嵌入10 000個隨機生成的秘密比特以獲得一個隱藏圖像,如圖6(b)所示。對圖6(a)和圖6(b)進行異或運算,結果如圖6(c)所示,表明已經成功嵌入秘密比特。

(a) 原始圖像

嵌入提取過程按照像素塊掃描順序正序嵌入、逆序提取,參與波動值計算的像素實際上沒有改變,因此得到的序列與嵌入前的序列相同??墒褂孟嗤谋容^過程找出提取秘密比特的具體位置,提取完10 000位秘密比特后,可以獲得恢復的圖像。圖7(a)和圖7(b)為原始圖像和恢復后的圖像,對原始圖像和恢復圖像進行異或運算如圖7(c)所示。根據異或運算原理,可以推斷出恢復后的圖像與原始圖像完全一致。因此,驗證了算法的可逆性。

(a) 原始圖像

4.2 固定嵌入容量下不可感知性對比

為了評估該算法在視覺質量和嵌入容量方面的性能,比較在相同嵌入容量下的峰值信噪比。分別與文獻[13]、文獻[20]、文獻[23]、文獻[24]4種經典或最新的方案進行了比較。這4種方案都是屬于基于塊選擇改進的方案且嵌入方式相同,按照其最優的參數復現并與文中的方案進行對比,所有的結果都是平均20次嘗試的結果。

為了更好地比較算法的不可感知性,在考慮圖像最大嵌入容量后,在固定嵌入容量下對6副圖片的峰值信噪比進行比較。表1顯示了在10 000比特的嵌入容量下,文中算法與其他幾種算法峰值信噪比數值的對比。

表1 10 000比特嵌入容量下峰值信噪比對比 dB

從表1可以看出,在10 000比特的嵌入容量下,提出的方法在Lena、Baboon、Clock、Airplane、Lake、Sand圖像上都產生了令人滿意的性能。對于紋理平滑圖像,以Airplane為例,文中方案峰值信噪比約為63.308 dB,分別約高于文獻[13]1.281 dB、文獻[20]0.084 dB、文獻[23] 0.291 dB、文獻[24]1.839 dB。對于紋理復雜圖像Baboon,所提出的方法比上述4種方法更有效。此外,文中提出的方案6副圖像的峰值信噪比分別約為60.660 dB、54.431 dB、65.175 dB、63.308 dB、59.304 dB、54.818 dB;文中算法的平均峰值信噪比約為59.616 dB,分別約領先文獻[13]0.666 dB、文獻[20]0.232 dB、文獻[23] 0.175 dB、文獻[24]1.129 dB。由此可見,文中算法具有更好的性能。

4.3 不同嵌入容量不可感知性的對比

為了更好地體現文中框架的優越性,根據圖像本身的特點對于不同的嵌入容量設定不同的分塊大小和閾值空間。分別比較了這4種算法與文中算法在不同嵌入容量下的峰值信噪比,結果如圖8所示。

(a) Lean

從圖8中可清楚地看出,隨著嵌入容量的不斷增加,文中算法的峰值信噪比數值在大多數情況下都超過了目前最先進的方法。以測試圖像Clock為例,在5 000、10 000、15 000位的嵌入容量下,文中方案的峰值信噪比分別約為68.232 dB、65.175 dB、63.299 dB,明顯優于其他方案。究其原因,在PVO方案中,只選取了塊內的兩個像素點來計算波動值,這是非常不準確的。在文獻[23-24]的方案中,僅僅將波動性局限于從局部的區域選取上下文像素,同時只針對最大值次大值或者最小值次小值附近的像素,非常有限。在文獻[20]的方案中,僅僅考慮了像素塊右鄰域和下鄰域的像素,雖然使用標準差更精確,但很多左鄰域和上鄰域相關性高的像素被忽略。作為對比,文中提出的方案不僅保證了參與波動值計算的像素個數與準確性,而且將同一方向上的上下文像素進行二次運算,提高了算法性能。同時,考慮了像素的空間位置,在波動值篩選后,利用切比雪夫距離公式對擴展像素之間的空間位置進一步判斷篩選,有效地減少了無效平移。因此,文中方案實際上實現了較好的不可感知性。

5 結束語

筆者提出了一種基于優化塊選擇策略的高性能可逆信息隱藏算法。首先,改進了波動性的現有定義,同時考慮了塊外沿水平、豎直和雙斜對角方向的一致性;其次,考慮了像素塊內擴展像素的空間位置關系,使用波動值區分分塊波動性后通過切比雪夫距離公式篩選掉不適合擴展的像素塊。實驗結果表明,在所設計的波動值計算公式和像素空間位置判斷的幫助下,文中提出的方案提高了算法的性能,實現了較好的不可感知性。

猜你喜歡
分塊鄰域波動
稀疏圖平方圖的染色數上界
分塊矩陣在線性代數中的應用
羊肉價回穩 后期不會大幅波動
微風里優美地波動
2019年國內外油價或將波動加劇
基于鄰域競賽的多目標優化算法
干濕法SO2排放波動對比及分析
關于-型鄰域空間
反三角分塊矩陣Drazin逆新的表示
基于自適應中值濾波的分塊壓縮感知人臉識別
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合