2007年4月19日 星期四

Week 8: Machado' s Method

上週 我們介紹了針對調色盤類型影像, 將資訊嵌在像素顏色的索引值(index)中的隱藏技術, 希望同學課後將程式實作出來。一共有四位優秀的同學 - 兆廷, 佳玉, 卉妤, 可欣 - 將程式實作出來, 並完成了實驗。同學優秀的表現, 讓課堂上的討論可以延續下去, 真的很棒。

由同學們所模擬出來的調色盤我們可以觀察到: 調色盤中相鄰顏色的差異可能很大。因此, 直接在某個像素的索引值的最低位元嵌入資訊, 雖然在索引值的誤差僅僅為 1 的情況下, 像素的顏色可能改變很大, 使整張影像看起來不自然, 增加了曝露嵌入行為的風險。

為了改善這項缺失, 直覺的作法就是先將調色盤中的顏色排序, 使其相鄰的顏色差異縮小。但是, 更動調色盤中色彩的次序, 容易引起疑慮, 增加了曝露嵌入行為的可能性。所以, R. Machado 提出了另一種可行的方法, 其嵌入步驟如下:

 1. 複製一份調色盤, 依顏色的亮度做排序。使得新調色盤中, 相鄰顏色之間的色彩差異減至最低。
 2. 找出欲嵌入資訊的像素顏色值在新調色盤中的索引值。
 3. 取出一個位元的資訊, 將其嵌入至新索引值的最低位元。
 4. 取出嵌入資訊後的索引值之顏色 RGB 值。
 5. 找出這個 RGB 值在原始調色盤中的索引值。
 6. 將這個像素的索引值改成 步驟 5. 找到的索引值。

注意, 這個嵌入的方法並沒有改變原先的調色盤, 而且最後的索引值和原始的索引值之間的差異並不只是 1。然而, 這兩個索引值所代表的顏色在新調色盤中卻是相鄰的顏色, 因此差異不大。當接收者收到影像時, 取出資訊的步驟如下:

 1. 複製一份調色盤, 並對其顏色根據亮度做排序。
 2. 取出一個像素, 根據索引值在舊調色盤中, 取出其顏色 RGB 值。
 3. 找出這個 RGB 值在新調色盤中的索引值。
 4. 取出這個索引值的 LSB, 即是所要的資訊。

R. Machado 方法的優點是沒有改變調色盤的內容或次序;

沒有留言: