三. 基於三維直方圖的可逆式資訊隱藏技術
3.1 簡介
在這個章節中,我們將詳細介紹我們所提出的演算法,並利用一個簡單的例 子來解釋所提出的方法。首先,我們先定義在本章節會使用到的符號,本論文使 用的影像大小皆為 512*512,原始影像位置(i, j)對應像素值𝑃𝑖,𝑗,而0 ≤ 𝑖, 𝑗 ≤ 511、
且0 ≤ 𝑃𝑖,𝑗 ≤ 255。𝑋𝑖,𝑗、𝑌𝑖,𝑗、𝑍𝑖,𝑗分別是用來計算𝑃𝑖,𝑗的 X、Y、Z 維度的參考值,
根據預測方法的不同計算範圍而有所不同。𝑇𝑥𝑖,𝑗是指 X 方向的預測值,也作為𝑃𝑖,𝑗 的 X 維度的座標,𝑇𝑦𝑖,𝑗是指 Y 方向的預測值,也作為𝑃𝑖,𝑗的 Y 維度的座標,𝑇𝑧𝑖,𝑗是 指 Z 方向的預測值,也作為𝑃𝑖,𝑗的 Z 維度的座標。
其次,我們將影像分為四區如圖 15,一次只對一區進行運算,接著在計算預 測值之前,我們要先進行參考值範圍的定義,預測方法跟參考值的範圍是環環相 扣的。於是,本論文提出了三種參考值取樣的方法:
圖 15. 三維直方圖預測法的影像分區
16
(1) 預測法 1
如圖 16 所示,由左至右分別是𝑋𝑖,𝑗、𝑌𝑖,𝑗、𝑍𝑖,𝑗的參考值範圍,用簡單的 3*3 影像作為例子。影像正中間是目標像素值𝑃𝑖,𝑗,參考值範圍如同灰色區塊所示。𝑋𝑖,𝑗 是取𝑃𝑖,𝑗上、下、左、右的像素值如同灰色範圍,𝑌𝑖,𝑗是取𝑃𝑖,𝑗左上、左下、右上、
右下的像素值,𝑍𝑖,𝑗是取𝑃𝑖,𝑗周邊八格的像素值。
圖 16. 預測法 1 的取樣範圍 (2) 預測法 2
如圖 17 所示,由左至右分別是𝑋𝑖,𝑗、𝑌𝑖,𝑗、𝑍𝑖,𝑗的參考值範圍,用簡單的 3*3 影像作為例子。影像正中間是目標像素值𝑃𝑖,𝑗,參考值範圍如同灰色區塊所示。𝑋𝑖,𝑗 是取𝑃𝑖,𝑗左上、上、左、右、右下、下的像素值,𝑌𝑖,𝑗是取𝑃𝑖,𝑗、左下、左、下、右、
右上、上的像素值,𝑍𝑖,𝑗是取𝑃𝑖,𝑗周邊八格的像素值。
圖 17. 預測法 2 的取樣範圍
(3) 預測法 3
如圖 18 所示,由左至右分別是𝑋𝑖,𝑗、𝑌𝑖,𝑗、𝑍𝑖,𝑗的參考值範圍,用簡單的 3*3 影像作為例子。影像正中間是目標像素值𝑃𝑖,𝑗,參考值範圍如同灰色區塊所示。𝑋𝑖,𝑗 是取𝑃𝑖,𝑗左、左上、左下、右、右上、右下的像素值,𝑌𝑖,𝑗是取𝑃𝑖,𝑗、左上、上、右 上、左下、下、右下的像素值,𝑍𝑖,𝑗是取𝑃𝑖,𝑗周邊八格的像素值。
17
圖 18. 預測法 3 的取樣範圍
參考值取樣完畢之後,下一步就是計算預測值,計算方法為用特定像素值跟 參考值的平均值之地板函數值相減,其公式如下:
{
𝑇𝑥𝑖,𝑗 = 𝑃𝑖,𝑗− ⌊∑𝑝∈𝑋𝑖,𝑗|𝑋 𝑝
𝑖,𝑗| ⌋ 𝑇𝑦𝑖,𝑗 = 𝑃𝑖,𝑗− ⌊∑𝑞∈𝑌𝑖,𝑗|𝑌 𝑞
𝑖,𝑗| ⌋ 𝑇𝑧𝑖,𝑗 = 𝑃𝑖,𝑗− ⌊∑𝑟∈𝑍𝑖,𝑗𝑟
|𝑍𝑖,𝑗| ⌋
(3.1)
利用所計算出來三個的參考值𝑇𝑥𝑖,𝑗、𝑇𝑦𝑖,𝑗、𝑇𝑧𝑖,𝑗作為三個維度的座標,進行統 計可以得到用來進行資訊隱藏的三維直方圖。將第一象限(+, +, +)與第七象限 (−, −, −)的指定像素值位移,而空出的位置可用來隱藏機密資訊。我們利用X、
Y、Z軸進行隱藏,如機密資訊為 1,則將軸上的像素值往剛才空出來的區域位 移。反之則不進行動作。該區塊藏匿完畢之後就利用反向的演算法將參考值還原 成像素值,完成隱藏動作。
如機密資訊尚未隱藏完畢,則對其餘的第二、三、四區塊進行相同的動作,
直到機密資訊藏匿完畢。三維直方圖總共有八個象限,而我們的演算法只會移動 兩個象限的像素值,也就是說有約 75%的像素值不會被移動,加上機密資訊隨機 產生,需要進行位移而藏入的機密資訊約二分之一,可維持高度的影像品質。
18