前言:
LSB的方法,需先將256色調色盤降為32色,
最後的調色盤可被分群為32個group,導致調色盤的不自然,使之容易被破解。
為了改善此缺點,於是有另外一派的研究希望嵌入資訊時,能夠不改變調色盤。
Index Embedded 就是其中一種不更改調色盤的方法。
以下文章描述Index Embedded 的方法,並在結尾提出結論與問題。
以圖一為例(下圖)
基於 GIF檔 有256種顏色,每張GIF 檔都有一個自己的調色盤。
換言之,不同的圖有不同的調色盤。
首先建立調色盤並且給予相對應的索引值。
第一個顏色給0,第二個顏色給1...依此類推。(圖二)
將調色盤,兩兩分組(Pair)。
Index 0 與 Index 1 為一組(Pair)
Index 2 與 Index 3 為一組(Pair)
並將原圖的像素對應到該像素的索引值(Index)(圖三)
接著嵌入訊息至原圖中:
假若嵌入的資訊為 1010110 1010110
第 1 個bit 1 嵌入第 1 個像素 0(Index值) , 1和0 (Index值)的LSB不相同,
該像素的 index 加1。(找該Index的Pair) 變成 : 0 + 1 = 1(index值為1的顏色)
剩餘嵌入的資訊為 010110 1010110
第 2 個bit 0 嵌入第 2 個像素 0(Index值) , 0和0(Index值)的LSB相同,
該像素的 index 不變。
剩餘嵌入的資訊為 10110 1010110
第 3 個bit 1 嵌入第 3 個像素 0(Index值) , 1和0 (Index值)的LSB不相同,
該像素的 index 加1。變成 : 0 + 1 = 1(index值為1的顏色)
剩餘嵌入的資訊為 0110 1010110
第 4 個bit 0 嵌入第 4 個像素 0(Index值) , 0和0(Index值)的LSB相同,
該像素的 index 不變。
剩餘嵌入的資訊為 110 1010110
第 5 個bit 1 嵌入第 5 個像素 0(Index值) , 1和0 (Index值)的LSB不相同,
該像素的 index 加1。變成 : 0 + 1 = 1(index值為1的顏色)
剩餘嵌入的資訊為 10 1010110
第 6 個bit 1 嵌入第 6 個像素 1(Index值) , 1和1(Index值)的LSB相同,
該像素的 index 不變。
剩餘嵌入的資訊為 0 1010110
第 7 個bit 0 嵌入第 7 個像素 1(Index值) , 0和1(Index值) 的LSB不相同,
該像素的 index 減1。(找該Index的Pair) 變成 : 0 + 1 = 1(index值為1的顏色)
剩餘嵌入的資訊為 1010110
第 8 個bit 1 嵌入第 8 個像素 1(Index值) , 1和1(Index值)的LSB相同,
該像素的 index 不變。
剩餘嵌入的資訊為 010110
第 9 個bit 0 嵌入第 9 個像素 1(Index值) , 0和1(Index值) 的LSB不相同,
該像素的 index 減1。(找該Index的Pair) 變成 : 0 + 1 = 1(index值為1的顏色)
剩餘嵌入的資訊為 10110
第 10 個bit 1 嵌入第 10 個像素 1(Index值) , 1和1(Index值)的LSB相同,
該像素的 index 不變。
剩餘嵌入的資訊為 0110
第 11 個bit 0 嵌入第 11 個像素 2(Index值) , 0 和 2 (Index值)的LSB相同,
該像素的 index 不變。
剩餘嵌入的資訊為 110
第 12 個bit 1 嵌入第 12 個像素 2(Index值) , 1 和 2 (Index值)的LSB不相同,
該像素的 index 加1。(找該Index的Pair)變成 : 2 + 1 = 3(index值為3的顏色)
剩餘嵌入的資訊為 10
第 13 個bit 1 嵌入第 13 個像素 2(Index值) , 1 和 2 (Index值)的LSB不相同,
該像素的 index 加1。(找該Index的Pair)變成 : 2 + 1 = 3(index值為3的顏色)
剩餘嵌入的資訊為 0
第 14 個bit 0 嵌入第 14 個像素 2(Index值) , 0 和 2 (Index值)的LSB相同,
該像素的 index 不變。
PS:上面的步驟是為了目前還不太懂的同學寫的,如果有疑問可以直接找我,
因為我有可能會有筆誤,或是哪裡觀念錯誤,請不吝指正,謝謝。
下圖為原圖與嵌入資訊後的圖片(偽裝媒體)
欲取出資訊時,直接取每個像素值的索引值的LSB即可得到隱藏訊息。
<<結論>>
與LSB比較起來,Index Embedded 的方式雖然不改變調色盤,
但是視覺(Visual)上容易察覺圖片可能會是偽裝媒體,
因為造成了顏色不協調的缺點。
在 week 6 看見鄭可欣同學的文章後,立刻與本泰討論顏色不協調的原因,
本泰認為調色盤應該需要經過排序,排序過後應該會使顏色看起來較為協調,
除此之外,Index Embedded 能夠嵌入的資訊量也比 LSB 方法 "少"。
LSB 的方法每個像素可以嵌入3bit,而Index Embedded 每個像素只能嵌入1 bit
除此之外,我提出一個問題是,當原本的圖片並非256色,而是255色時(或更少色時),
原先256色將會有128組pair,但255色將會有127組pair和一個"落單的顏色",
此時應該如何應對?
Week 7 將延續 Week 6 探討改進的方法
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言