• 沒有找到結果。

二. 文獻回顧

2.1 Yoo 等學者所提的方法

Yoo 等學者[8]為了解決溢位的問題,利用 JBIG 無失真壓縮來解決,達到多次藏入機密 資訊並增加隱藏量,產生良好的影像視覺品質。以下為 Yoo 等學者提出機密資訊方法:

機密資訊藏入演算法

輸入:原始影像 𝐼、機密資訊 𝑠。

輸出:偽裝影像 𝐼′、兩個高點ℎ1、ℎ2及溢位像素值位置。

步驟 1:

將 𝐼分割成不重疊2𝑛× 2𝑛影像,並令原始影像像素值為𝑐𝑖𝑗,0 < 𝑖 < 𝑛 − 1,0 < 𝑗 < 𝑛 − 1。

步驟 2:

依原始影像位置由左至右,由上而下依序實施檢查,運用直方圖統計每個像素值的區塊分佈 情形,並找到最高點ℎ1,並令另一個高點 ℎ2 = ℎ1+ 1。

步驟 3:

依原始影像位置由左至右,由上而下依序實施檢查原始影像 𝐼是否有下限(Lower Bound) 0 和 上限(Upper Bound) 2𝑞− 1的像素值,即為位移後的溢位像素值;如果 𝑐𝑖𝑗 = 0,則修改像素 值 𝑐𝑖𝑗= 𝑐𝑖𝑗+ 1 = 1;如果 𝑐𝑖𝑗 = 2𝑞− 1,則修改像素值為 𝑐𝑖𝑗= 2𝑞− 1 − 1 = 2𝑞− 2,並 將溢位像素值位置記錄下來。

步驟 4:

依原始影像位置由左至右,由上而下依序實施檢查,針對每一個影像像素值 𝑐𝑖與兩個高點ℎ1和 ℎ2進行比較,如果 𝑐𝑖𝑗< ℎ1,則像素值皆向直方圖左位移一個單位,即 𝑐𝑖𝑗 = 𝑐𝑖𝑗− 1;

步驟 5:

假設要藏入機密資訊為 𝑠, 𝑠𝑘是 𝑠 中第k 個位元,當機密資訊 𝑠𝑘 = 0 時,像素值 𝑐𝑖𝑗 = ℎ1或ℎ2, 則 𝑐𝑖𝑗 = 𝑐𝑖𝑗;當機密資訊 𝑠𝑘 = 1 時,如果 𝑐𝑖𝑗 = ℎ1,則將機密資訊藏入到直方圖經步驟 4 位移後所空出的左邊位置中,即 𝑐𝑖𝑗 = 𝑐𝑖𝑗− 1;如果 𝑐𝑖𝑗 = ℎ2,則將機密資訊藏入到直方圖 經 步 驟 4 位 移 後 所 空 出 的 右 邊 位 置 中 , 即 𝑐𝑖𝑗 = 𝑐𝑖𝑗+ 1 , 最 後 得 到 偽 裝 影 像 𝐼′ 。

步驟 6:

最後將偽裝影像 𝐼、雙高點ℎ1、ℎ2及溢位像素值位置傳送給接收方。

機密資訊擷取演算法

接收方收到偽裝影像 𝐼′及兩個高點ℎ1、ℎ2及溢位像素值位置。依照下面步驟擷取機密資 訊並還原原始影像。

輸入:偽裝影像 𝐼、雙高點ℎ1、ℎ2及溢位像素值位置。

輸出:原始影像 𝐼、機密資訊 𝑠。

步驟 1:

依偽裝影像位置由左至右,由上而下依序實施檢查,擷取機密資訊 𝑠:

(𝑎)如果 𝑐𝑖𝑗 = ℎ1或 𝑐𝑖𝑗 = ℎ2,則擷取機密資訊位元 0,𝑐𝑖𝑗保持不變,即 𝑐𝑖𝑗 = 𝑐𝑖𝑗。 (𝑏)如果 𝑐𝑖𝑗 = ℎ1− 1值,則擷取機密資訊位元 1,並將 𝑐𝑖𝑗值加 1,即 𝑐𝑖𝑗 = 𝑐𝑖𝑗+ 1。

(𝑐)如果 𝑐𝑖𝑗 = ℎ2+ 1值,則擷取機密資訊位元 1,並將 𝑐𝑖𝑗值減 1,即 𝑐𝑖𝑗 = 𝑐𝑖𝑗− 1。

步驟 2:

依偽裝影像位置由左至右,由上而下依序實施檢查,位移位在兩個高點ℎ1和ℎ2之外的像素值:

(𝑎)如果 𝑐𝑖𝑗 < ℎ1,則 𝑐𝑖𝑗 = 𝑐𝑖𝑗+ 1,表示直方圖中在 ℎ1 左方的像素值 𝑐𝑖𝑗皆向右位移一 個位置。

(b)如果 cij > h2,則 cij= cij − 1,表示直方圖中在 h2 右方的像素值 cij 皆向左位移一個 位置。

(𝑎)如果 𝑐𝑖𝑗 為 1,則 𝑐𝑖𝑗 = 𝑐𝑖𝑗− 1。

(𝑏)如果 𝑐𝑖𝑗 為 2𝑞− 2,則 𝑐𝑖𝑗 = 𝑐𝑖𝑗+ 1。

步驟 4:

接收方即可擷取機密資訊 𝑠 與還原原始影像 I。

機密資訊藏入與擷取範例

以圖 1 說明 Yoo 等學者[8]所提出藏入的方法。將影像切割成4 × 4影像,圖 1(𝑎)所示,

進行直方圖統計,可得知最高點為ℎ1 = 4和另一高點 ℎ2 = ℎ1+ 1 = 5,如圖 1(𝑏)所示。

首先檢查原始影像 I 是否有下限 0 和上限 7 的像素值,如果 𝑐𝑖𝑗 = 0,則修改像素值 𝑐𝑖𝑗 = 𝑐𝑖𝑗 + 1 = 1;如果 𝑐𝑖𝑗 = 7,則修改像素值 𝑐𝑖𝑗 = 𝑐𝑖𝑗 − 1 = 6,以避免溢位的問題,並 記錄溢位像素值位置。修改後影像如圖 1(𝑐)所示,修改後直方圖區塊如圖 1(𝑑)。

接著進行位移,將兩個高點左右相鄰像素值進行位移,如果 𝑐𝑖𝑗 < ℎ1,則 𝑐𝑖𝑗 = 𝑐𝑖𝑗− 1,

如果 𝑐𝑖𝑗 > ℎ2,則位移後像素值 𝑐𝑖𝑗 = 𝑐𝑖𝑗+ 1,可得到位移後空出位置的影像,如圖 1(𝑒)所 示,位移後直方圖區塊如圖 1(𝑓)。

假設要藏入的機密資訊𝑠 = 101010101。當 𝑐𝑖𝑗 = 4且藏入機密資訊 𝑠𝑘 = 1時,則偽裝影 像像素值 𝑐𝑖𝑗 = 𝑐𝑖𝑗− 1 = 3;如果 𝑐𝑖𝑗 = 5且藏入機密資訊 𝑠𝑘 = 1時,則偽裝影像像素值 𝑐𝑖𝑗 = 𝑐𝑖𝑗+ 1 = 6,如果藏入機密資訊 𝑠𝑘 = 0時,且像素值 𝑐𝑖𝑗 = 4 或 5,則 𝑐𝑖𝑗 = 𝑐𝑖𝑗。 最後可以得到偽裝影像 𝐼′如圖 1(𝑔)所示,偽裝影像直方圖區塊則如圖 1(ℎ)。傳送方將偽 裝影像 𝐼′及兩個高點4、5及溢位像素值位置傳送給接收方。

1 3 4 5 5 5 4 2

7 4 4 3

4 5 6 0

(𝑎) 原始影像 (𝑏) 原始影像直方圖區塊

1 3 4 5

5 5 4 2

6 4 4 3

4 5 6 1

(𝑐) 修改後影像 (𝑑) 修改後影像直方圖區塊

0 2 4 5

5 5 4 1

7 4 4 2

4 5 7 0

(𝑒) 位移後影像 (𝑓) 位移後影像直方圖區塊

0 2 3 5

6 5 3 1

7 4 3 2

4 6 7 0

(𝑔) 偽裝影像 (ℎ) 偽裝影像直方圖區塊

圖 1 Yoo 等學者所提出藏入的方法

以圖 2 說明如何擷取機密資訊與還原原始影像,接收方接收到偽裝影像 𝐼如圖2(𝑎),及 兩個高點ℎ1 = 4、ℎ2 = 5和溢位像素值位置,偽裝影像直方圖區塊則如圖 2(𝑏)。當圖 2(𝑎)中像 素值 𝑐𝑖𝑗等於 4 或 5 時,表示藏入的機密資訊為 0;當像素值 𝑐𝑖𝑗等於 3 或 6 時,表示藏入的 機密資訊為 1,此時就可以依序擷取機密資訊 𝑠 = 101010101。

當藏入的機密資訊 𝑠𝑘 = 1時,如果偽裝影像像素值為 𝑐𝑖𝑗 = 3,則還原位移後像素值 𝑐𝑖𝑗 = 𝑐𝑖𝑗+ 1 = 4;如果偽裝影像像素值 𝑐𝑖𝑗 = 6,則還原位移後像素值 𝑐𝑖𝑗 = 𝑐𝑖𝑗− 1 = 5,

還原成位移後影像如圖2(𝑐),位移後影像直方圖區塊如圖 2(𝑑)。

當位移後像素值 𝑐𝑖𝑗 < 4時,則修改後像素值 𝑐𝑖𝑗= 𝑐𝑖𝑗+ 1;位移後像素值 𝑐𝑖𝑗 > 5 時,則修改後像素值 𝑐𝑖𝑗 = 𝑐𝑖𝑗− 1,即可得到修改後影像如圖 2(𝑒),修改後影像直方圖區 塊如圖2(𝑓)。

最後依據所接收之溢位像素值位置,當溢位位置之修改後影像像素值𝑐𝑖𝑗= 1時,原始影 像 像 素 值𝑐𝑖𝑗 = 𝑐𝑖𝑗− 1 = 0 , 溢 位 位 置 之 修 改 後 影 像 值 𝑐𝑖𝑗= 6 時 , 原 始 影 像 像 素 值 𝑐𝑖𝑗 = 𝑐𝑖𝑗+ 1 = 7,即可還原回原始影像如圖 2(𝑔),還原後影像直方圖區塊如圖 2(ℎ)。

0 2 3 5

6 5 3 1

7 4 3 2

4 6 7 0

(𝑎) 偽裝影像 (𝑏) 偽裝影像直方圖區塊

0 2 4 5

5 5 4 1

7 4 4 2

4 5 7 0

(𝑐) 位移後影像 (𝑑) 位移後影像直方圖區塊

1 3 4 5

5 5 4 2

6 4 4 3

4 5 6 1

(𝑒) 修改後影像 (𝑓) 修改後影像直方圖區塊

1 3 4 5

5 5 4 2

7 4 4 3

4 5 6 0

(𝑔) 還原後影像 (ℎ) 還原後影像直方圖區塊

圖 2 Yoo 等學者所擷取的方法

相關文件