• 沒有找到結果。

總結本篇論文所提出的成果

第二章 基礎理論以及技術背景介紹

第二章 基礎理論以及技術背景介紹

2.1 全像圖(Hologram)

全像術(Holography)代表全像技術的統稱,是ㄧ種 3D 成像技術,過去十多 年來,數位全像術已經被廣泛的使用,範圍也由簡單的重建影像,發展至製作全 像光學元件或是電腦全像術上,應用於即時動態光學資訊處理,包括光學計算、

光學神經網路、光學相位編碼加密等,在像是娛樂、醫療、生物學領域上都有很 大應用幅度。這種技術能把一個物體的形狀資訊紀錄下來後,可以按照原比例把 物體還原出來,可以使用者自由放大縮小,方便使用者觀察或是研究。

記錄資訊時並不是以外觀的顏色來記錄,而是記錄影像中包含振幅和相位的 資訊,這個資訊的產生的方式是先用一組固定波長的光線照射到我們想要拍攝的 物體上後,在用另一組同樣波長的光線,照射到該物體後反射出來的光線做光繞 射,把做完光繞射的結果用 CCD(Charge Couple Device)Camera 來將記錄下來,

儲存在 Hologram 裡面,就完成儲存動作。

Hologram 還原時需要一組還原參數,我們把這組還原參數當作浮水印嵌入 Hologram 後,就不必在另外傳送資料給使用者,提升方便性的同時,也避免了 另外傳送資料時被第三者攔截更改的可能危險性。

第二章 基礎理論以及技術背景介紹

2.2 Hadamard Transform

我們所使用轉換方式是 Hadamard transform,變換命名源自法國數學家 Jacques Solomon Hadamard,為一種廣義的傅立葉變換(Fourier transform), 在視 頻編碼中作為變換編碼的一種使用已有很久的歷史,Hadamard 矩陣形式為為2𝑘 Block,然後每個 Block 藉由 Hadamard transform 的方式從空間域轉到轉換域後,

從每個 Block 中提出一個係數作量化,然後再把浮水印資訊嵌入到這個量化完的 係數內,嵌入完之後再用 Hadamard transform 把 Block 從轉換域轉回到空間域上,

轉換完之後再使用四捨五入做精度調整,這樣就完成了浮水印嵌入的動作。

第二章 基礎理論以及技術背景介紹

第二章 基礎理論以及技術背景介紹

第二章 基礎理論以及技術背景介紹

圖2.1 實數軸做長度L的分割後,q為2的情況下嵌入的流程。

舉個例子說明如何嵌入流程,如圖(2.1),先對實數軸做長度為L的分割 後,我們選擇的係數c位置在靠近指標4的區間,也就是𝑝在群組4,假設今天我們 要嵌入的浮水印𝑤𝑖,𝑗=2,從圖中可以看到距離係數c最近同時屬於群組2的地方中,

指標6是最靠近了,c會重新移位到指標為6的組,即𝑝=6,移位完成後,就達成

了浮水印嵌入的流程。

在實數軸切割成等長L的區間後,因浮水印𝑤𝑖,𝑗於a群組,在尋找p*的過程中

,會對實數軸上所有屬於a群組的區間進行搜索,找到距離係數c最近的a群組,

然後再移位係數c,但是這個過程非常浪費時間,因為要對整條實數軸進行搜索。

所以在不影響廣泛性的情況下,我們假設p屬於群組b,0≤b≤ 2𝑞-1,會存在一個 整數M,使得p=M2𝑞+b。對於指標p而言,實數軸會存在著兩個屬於a群組的元素 𝑝’和𝑝’+2𝑞,這兩個元素會符合

𝑝’ ≤ 𝑝 ≤ 𝑝’ + 2𝑞 (10) 𝑝’ = {𝑀2𝑞+ 𝑎 𝑖𝑓 𝑎 ≤ 𝑏

(𝑀 − 1)2𝑞+ 𝑎 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 (11)

第二章 基礎理論以及技術背景介紹

𝑝’與𝑝’+2𝑞是在a群組別中和p的距離最近的兩個元素,其他屬於a群組一定比𝑝’小 或著是比𝑝’+2𝑞大,而因為係數c在移位時會移動到最近的a群組中,所以比𝑝’小 或著是比𝑝’+2𝑞大的就不用去考慮,所以我們只要知道𝑝’和 𝑝’+2𝑞的位置後,再去

調整p*的位置,就完成移位了。

因為我們不需要考慮比𝑝’小或著是比𝑝’+2𝑞大的值,所以p*一定會是𝑝’或 𝑝’+2𝑞這兩個其中之一的位置,而因為從公式(10)可以知道|𝑝− 𝑝| < 2𝑞−1,再依 照公式(9)就可以得知

|𝑝− 𝑝| < 2𝑞𝐿 (12) 從公式(12)可以知道,我們在浮水印嵌入流程時,量化完c嵌入浮水印後對c影響 的最大值。在我們把圖片從空間域經由Hadamard轉換公式轉換到轉換域後,我 們每個block只會選定一個係數c嵌入浮水印資訊𝑤𝑖,𝑗,而其餘剩下的係數並不會

做其他更動,所以當L或是q的值很小時,因為只更改到係數c的值的關係,所以 在整個嵌入流程當中,只會在轉換域內造成輕微失真,而不會有太大的影響。

𝑉𝑖,𝑗是尚未嵌入浮水印的圖,𝐶𝑖,𝑗是已經嵌入浮水印完的𝑉𝑖,𝑗,然後𝑉𝑖,𝑗做完 inverse Hadamark轉換得𝐵𝑖,𝑗,依照L值的不同,在𝐵𝑖,𝑗裡面的每一個pixel都可能為

第二章 基礎理論以及技術背景介紹

越高的精準度,設𝐻̅為嵌入完浮水印資訊的圖片H,𝐻̅ = {𝐵̅𝑖,𝑗, 0 ≤ 𝑖, 𝑗 ≤ 2𝑛− 1}

。這樣就完成了在轉換域中嵌入浮水印W的流程。而將浮水印嵌入到圖片H得到 嵌入完後的圖片𝐻̅的流程可以以下面的圖(2.2)和步驟說明。

圖2.2 將浮水印W嵌入至原始圖片H得到𝑯̅ 的流程圖,此Block的大小為4×4。

第二章 基礎理論以及技術背景介紹

嵌入浮水印W到圖片H的流程

Step 0:給被要嵌入浮水印的圖片H和浮水印資訊W。

Step 1:將H分割為數個同樣大小且不重疊的block 𝑈𝑖,𝑗

Step 2:透過Hadamard轉換公式轉換到轉換域上,將block 𝑈𝑖,𝑗轉換成 𝑉𝑖,𝑗

Step 3:透過使用公式(5)和公式(6)得知c所在的群組。

Step 4:透過使用公式(7)和公式(8)將浮水印嵌入至c,得𝐶𝑖,𝑗

Step 5:使用inverse Hadamard轉換轉換回空間域上,將𝐶𝑖,𝑗轉換成 𝐵𝑖,𝑗

Step 6:做四捨五入(精度修正),把 𝐵𝑖,𝑗裡的每個pixel四捨五入到精度為m個bit,

得到𝐵̅𝑖,𝑗

Step 7:獲得嵌入完浮水印的圖𝐻̅。

第二章 基礎理論以及技術背景介紹

2.3.2 浮水印截取

嵌入流程完成後,我們會得到嵌入完成的圖𝐻̅,而截取主要的流程是以圖 𝐻̅中的每個小 block𝐵̅𝑖,𝑗做為基礎,操作步驟和浮水印嵌入相似,為了截取出 浮水印𝑊̅ ,首先我們先對每個 block 𝐵̅𝑖,𝑗做 Hadamard 轉換,i≥ 0,j≤ 2𝑛 − 1

,用𝐶̅𝑖,𝑗代表𝐵̅𝑖,𝑗的 Hadamard 轉換域,在 Hadamrd 轉換域上,係數𝑐̅的位置和 係數 c 在是ㄧ樣的,再由𝐶̅𝑖,𝑗中獲得係數𝑐̅,則我們就可以由公式(12)(13)

𝑝̅ = round(𝑐̅

𝐿) (13) 𝑤̅𝑖,𝑗 = 𝑝̅ mod2𝑞 (14) 先求出係數𝑐̅所在的區間𝑝̅,然後就可以得知浮水印𝑤̅𝑖,𝑗,整個截取得就如圖

(2.3)。

圖 2.3 從已經被嵌入浮水印的圖𝑯中,截取浮水印資訊𝑾̅̅̅的流程。

依序從每個𝐵̅𝑖,𝑗截取出想要的浮水印𝑤̅𝑖,𝑗後,就可以獲得浮水印𝑊̅ ,𝑊̅ = {𝑤̅𝑖,𝑗 ,0 ≤ 𝑖, 𝑗 ≤ 2𝑛− 1 },而截取出來的浮水印𝑊̅ 再和當初嵌入進去的浮水印 𝑊做比較,就可以得知我們截取出來的結果是否正確。

第二章 基礎理論以及技術背景介紹

Step 0:給被要截取出浮水印的圖片𝐻̅。

Step 1:將𝐻̅分割為數個同樣大小且不重疊的block 𝐵̅𝑖,𝑗

Step 2:透過Hadamard轉換公式轉換到轉換域上,將block𝐵̅𝑖,𝑗轉換成𝐶̅𝑖,𝑗。 Step 3:透過使用公式(12)得知係數𝑐̅的區間𝑝̅。

Step 4:透過使用公式(13)由𝑝̅得知浮水印𝑤̅𝑖,𝑗

Step 5:獲得浮水印𝑊̅ ,𝑊̅ = {𝑤̅𝑖,𝑗 ,0 ≤ 𝑖, 𝑗 ≤ 2𝑛 − 1 }

ㄧ般來說,除了因為傳輸問題而導致的錯誤,或是第三者的惡意修改之外

,我們對已經嵌入完的浮水印的圖片𝐻̅的每一個pixel做有限的精度修正(即四捨 五入的動作),可能會汙染嵌入圖片𝐻̅裡的浮水印,另外就是在運算時,選擇分割 區間的長度L和pixel顯示的精度m會影響到我們最後做精度修正後,所產生出來 的誤差,造成一些錯誤。

而為了保證我們從𝐻̅截取出來的浮水印𝑊̅ 沒有遭到修改過,要和原始的浮水 印W是ㄧ樣的,𝑐̅必須滿足

|𝑐̅ − 𝑐| <𝐿

2 (15) 而在從公式(13)(14)可以很清楚的知道𝑝̅和𝑤̅𝑖,𝑗會與p*和𝑤𝑖,𝑗是相同的,所以

第二章 基礎理論以及技術背景介紹

第二章 基礎理論以及技術背景介紹

𝐿 = 2𝑘−𝑚+8 (20) 在選定了精度m後,我們可以依照公式(19)為基礎來選擇L的大小,這樣就可以降 低在嵌入浮水印後,因為要做精度修正而做四捨五入操作所導致的量化誤差的汙 染情形。

2.3.3 圖片還原

圖片還原是要讓我們能夠把已經嵌入浮水印的圖片𝐻̅,能夠還原成原本尚未

嵌入浮水印的圖片,假設我們原本的圖片,每一個pixel裡面都有8bits,只要在 m>8的情況下,只要把嵌入過浮水印的圖片𝐻̅四捨五入到8bits後,就能夠還原到 尚未嵌入浮水印的原圖。如圖2.4所示

圖2.4 將已嵌入浮水印的圖片𝑯̅ 四捨五入後還原至圖片H的流程

但是要把圖片𝐻̅還原成原圖H有一定的限制條件,並不是每張嵌入過後的圖

第二章 基礎理論以及技術背景介紹

第二章 基礎理論以及技術背景介紹

第二章 基礎理論以及技術背景介紹

根據公式(34),我們只要能夠滿足

2𝑞−𝑚+7+ 2−(𝑚−7) < 0.5 (35) 就可以確定公式(26)是成立的

這樣就可以保證以經嵌入玩浮水印的圖片𝐻̅能夠還原成原始的圖片H。

我們定義資訊隱藏容量Q(m)為可回復的浮水印W的體積,體積大小為2𝑛×

2𝑛× 𝑞個bits,藉由以下公式定義出來 𝑄(𝑚) = max

{2𝑞−𝑚+7+2−(𝑚−7)<0.5}2𝑛× 2𝑛× 𝑞 (36)

表格2.1 圖片體積為512×512 (i,e, N=9),block體積為4×4 (i,e, k=2),浮水印的體積為128×128 (i,e, n=2),在不同的精度m下,L與q與最大嵌入資訊數量Q(m)的關係與是否具備可逆性。

m 8 9 10 11 12

L 4 2 1 0.5 0.25

q最大值 NA NA 1 2 3

Q(m) (bits) NA NA 16384 32768 49152

可逆 X X O O O

第三章 硬體架構

第三章 硬體架構

3.1 簡介

本章節的目的是實現第二章節所提出的浮水印嵌入法則的硬體實現。在 第二章節中,我們會先把圖片切割成成數個同樣大小且不重疊的 block 後,

把每個 block 經由 Hadamard 轉換公式從空間域轉換到轉換域中,而每個 block 的大小是2𝑘× 2𝑘,會在每個 block 中取得要嵌入的係數 c 再進行嵌入,嵌入

完成後再使用 inverse Hadamard 轉換從轉換域中轉換回空間域,最後進行精 度修正,就可以得到嵌入完的圖𝐻̅。

以整體來看,嵌入浮水印的硬體架構會涉及到 block 的讀取和儲存操作

,在變換域中,會使用到轉換用的 2D Hadamard 變換和逆變換、要隱藏的浮 水印資訊和嵌入浮水印的操作。因此可以從圖(3.1)中,看到整個硬體架構 的圖,主要會使用到四個單元:I/O buffer、Hadamard 轉換單元、數據隱藏單 元和 controller。I/O buffer 主要的功能是從主記憶體中,存取我們要使用的

block,還有寫回主記憶體已經嵌入完的 block,Hadamard 轉換單元則是將 block 進行 2D 的 Hadamard 轉換,在這邊把 block 從空間域轉換到轉換域上,

要被嵌入浮水印的的係數 c 也是在這邊決定,嵌入完成後 Inverse Hadamard

第三章 硬體架構

元。而 controller 則負責控制協調上述三個單元的運作,並在做完精度修正後,

把嵌入完的嵌入完浮水印的圖𝐻̅輸出出來。

圖3.1 浮水印嵌入的硬體架構

第三章 硬體架構

3.2 Hadamard 轉換單元

在 Hadamard 轉換單元中,包含了兩個 1D Hadamard 轉換單元,在轉換完之

在 Hadamard 轉換單元中,包含了兩個 1D Hadamard 轉換單元,在轉換完之

相關文件