Sơ đồ của quy trình nhúng

Một phần của tài liệu nghiên cứu phương pháp giấu tin không làm mất thông tin trong ảnh chứa tin (Trang 59)

Bây giờ một ví dụ đơn giản sử dụng để minh họa cho thủ tục nhúng thông tin. Giả sử S = s0s1s2 = 1012 là thông điệp được nhúng. Các ảnh gốc I kích thước 4 x 4 điểm ảnh như trong hình 2.14a.

Hình 2.14. Ví dụ về các bit bí mật ẩn. (a) hình ảnh gốc, (b) khởi tạo ma trận I’, và (c) - (f) kết quả xử lý pixel trong ma trận I’.

Đầu tiên đưa ra ma trận rỗng I’ kích thước 4x4, và sau đó khởi tạo hàng đầu và cột bên trái của I’, kết quả là thể hiện trong hình 2.14b. Đặt a = I’1,0 = 154, b = I’0,1 = 156 và c = I’0,0 = 154, các dự đốn Ỵ’1,1 = 156 của I’1,1 có thể được thu được bằng cách sử dụng biểu thức (2.10). Bây giờ, e = I1,1 - Ỵ’0,1 = 0, do đó, điểm ảnh này là điểm nhúng. Trích xuất bit bí mật s0 = 1 từ S, sau đó sửa đổi các sai số dự đoán e bằng cách thiết lập e = e + 1 = 0+1 = 1, và sau đó thiết lập I’1,1 = Ỵ’1,1 + e = 157 ảnh stego sau khi nhúng được hiển thị trong hình 2.14c.

Tiếp theo, tiến hành dự đoán I’1,2. Đặt a = I’1,1 = 157; b = I’0,2 = 153 và c = I’0,1 = 156, giá trị tiên đoán của I’1,2 , Ỵ’1,2 = 154. Bởi vì e = I1,2 - Ỵ’1,2 = - 4, khơng có dữ liệu được nhúng; do đó, thiết lập e = e -1 = - 5, và I’1,2 = Ỵ’1,2 + e = 149. Tiếp theo các thủ tục, có được I’1,3 = 148 (giá trị được nhúng là s1 = 0), và I’2,1 = 158 (giá trị nhúng là s2 = 1). Ảnh stego được thể hiện trong hình 2.14d.

Dự đốn I’2,2 . Giá trị dự đoán của I’2,2 là Iˆ'2,2 = 150, do đó e = I

2,2 - Ỵ’2,2 = 7. Vì tất cả các bit trong S được nhúng, thiết lập L =(2,2). Sau khi thiết lập L, không có cần phải sửa đổi sai số dự đốn e, vì vậy thiết lập trực tiếp I’2,2 = Ỵ’2,2 + e = 157 các ảnh stego được thể hiện trong hình 2.14e. Cuối cùng, tính tốn giá trị pixel cho

các điểm ảnh còn lại trong các ảnh stego I’, và cuối cùng ảnh stego được hiển thị trong hình 2.14f.

b. Thuật tốn trích rút và khơi phục ảnh

Sau khi nhận được ảnh stego I’, sử dụng cùng một thứ tự quét như trong giai đoạn nhúng để dự đốn các giá trị điểm ảnh lại, và tính tốn sai số dự đốn e. nếu giá trị e là 0 hoặc 1, các bit bí mật được nhúng là 0.

Nếu giá trị e là 1 hoặc -2, thì các bit bí mật được nhúng là 1. Nếu giá trị e không phải là một trong bốn số -2, -1, 0 và 1, thì khơng có bit nhúng. Khi sửa các sai số dự đốn trong q trình nhúng, ảnh gốc có thể được khôi phục bằng cách thay đổi các sai số dự đoán so lại với giá trị gốc.

Các bước chi tiết cho giải nén thơng điệp bí mật và khơi phục hình ảnh gốc được liệt kê dưới đây, và sơ đồ được thể hiện trong hình 2.15.

Input: ảnh stego I’, điểm cuối của vị trí nhúng L và thơng tin phụ trợ A. Output: dãy bit S và ảnh gốc I’’.

Các bước thực hiện

- Bước 1. Ma trận I’’ để lưu trữ ảnh được thu hồi. Kích thước của I’’ bằng ảnh stego I’’. Khởi tạo các giá trị điểm ảnh trong hàng đầu tiên và cột đầu tiên của I’’ điểm ảnh giá trị trong các vị trí tương ứng của I’. Đối với 1  i  M -1 và 1  j  N - 1, quét từng điểm ảnh I’i,j trong ảnh stego bằng cách sử dụng thứ tự quét raster.

- Bước 2. Nếu (i, j) được ghi nhận như các thơng tin phụ trợ trong A, sau đó thiết lập I’’i,j = I’i,j và xử lý điểm ảnh kế tiếp.

- Bước 3. Sử dụng biểu thức (2.10) để dự đoán giá trị của I’i,j bằng cách sử dụng a = I’i,j-1, b= I’i-1,j và c = I’i-1,j-1. Giả sử dự đoán giá trị là

j i

Iˆ', . - Bước 4. Tính các sai số dự đốn e = I’i,j -

j i

Iˆ',

- Bước 5. Theo tham số L, quyết định tất cả các thông tin được nhúng đã được trích ra hay khơng. Nếu có, sau đó chuyển đến Bước 11.

- Bước 6. Nếu e = 0, thì các bit bí mật được nhúng bằng 0, và sai số dự đốn e vẫn khơng thay đổi.

- Bước 7. Nếu e = 1, thì các bit bí mật được nhúng là 1, và sai số dự đoán e được sửa đổi để e - 1.

- Bước 8. Nếu e = -1, thì các bit bí mật được nhúng là 0, và sai số dự đoán e vẫn không thay đổi.

- Bước 9. Nếu e = -2, thì các bit bí mật được nhúng là 1, và sai số dự đoán e được sửa đổi để e + 1.

- Bước 10. Nếu e > 1 thì sai số dự đốn e được sửa e -1, nếu e >-2 thì sai số dự đốn e được sửa e + 1.

- Bước 11. Đặt I’’i,j =

j i

Iˆ', + e

- Bước 12. Nếu i  M-1 hoặc j N -1, thì cập nhật giá trị của i và j chuyển đến các điểm ảnh kế tiếp, và chuyển đến bước 2, ngược lại, hồn thành việc trích rút các tin nhắn bí mật và khơi phục ảnh gốc.

Minh họa làm thế nào để trích xuất các thơng tin được nhúng và khơi phục lại hình ảnh ban đầu. Ảnh stego từ tiểu mục được hiển thị trong hình 2.16a. Để trích xuất các thơng tin được nhúng, chuẩn bị một ma trận I’’ kích thước 4x 4, và sau đó khởi tạo nó, kết quả được thể hiện trong hình 2.16b.

Tiếp theo, dự đốn a = I’1,0 = 154, b = I’0,1 = 156 và c = I’0,0 = 154. Kết quả dự đoán Iˆ'1,1 = 156 và sai số dự đoán e = I’

1,1 - Iˆ'1,1 = 157 - 156 =1. Vì vậy, các bít bí mật được nhúng là 1, Sửa đổi sai số dự đoán e là e-1 = 1-1 = 0, nên giá trị điểm ảnh gốc được tìm thấy là I’’1,1 = Iˆ'1,1 +e = 156+0=156. Ảnh gốc I’’

1,1 được thể hiện trong hình 2.16c.

Start

Input I’, Khởi tạo I’’ i=j=1

(i,j)  A

Dự đốn I’i,j sử dụng cơng thức 2.10 tìm ra giá trị dự đốn Ỵ’i,j e = I’i,j - Ỵ’i,j (i,j)=L e = 0 e = 1 Trích 0 e = e Trích 1 e = e-1 e = e+1 e = e-1 e = e I’’i,j = I’i,j+e i ≠ M -1 or j ≠N-1

Cập nhật i và j Output I’’I,j, S End đặt I’’i,j = I’i,j

xử lý tới pixel tiếp

y n y n n y n y n I’: Ảnh Stego I’’: Ảnh khơi phục Ỵ’: giá trị dự đoán e: giá trị lỗi S: dữ liệu mật e = -1 e = -2 e >0 Trích 0 e = e Trích 1 e = e-1 n n n y y y y

Giá trị dự đoán của I’1,2 là Iˆ'1,2 = 154 ( a = I’

1,1 = 157, b = I’0,2 = 153, c = I’0,1 =156) và e = I’1,2 - Iˆ'1,2 = -5, do đó khơng có giá trị bia mật được nhúng. Sau đó sửa e thành -4, thu được I’’1,2 = Iˆ'1,2 +e = 154 - 4 =150, giá trị dự đoán

3 , 1 ' ˆ I của điểm ảnh I’1,3 là 149, e = I’1,3 - Iˆ'1,3 = -1, vì vậy, bít nhúng là 0. Tại đó e giữ lại khơng thay đổi và I’’1,3 =Ỵ’1,3 + e = 148 giá trị dự đoán Iˆ'2,1 của I’

2,1 là 157 và giữ lại e =1, sau đó e được sửa thành 0, I2,1 = Iˆ'2,1 +e = 157.

Cuối cùng, giá trị dự đoán của I’2,2 là Iˆ'2,2 =150 và sai khác dự đoán e = I’

2,2 - 2 , 2 ' ˆ

I = 7. Bởi vì L(2,2) người giải mã biết tất cả thơng tin nhúng được trích rút theo cùng một cách cho đến khi tất cả các điểm ảnh được duyệt, ảnh khơi phục cuối cùng được thể hiện trong hình 2.16f.

Hình 2.16. Thí dụ về trích rút dữ liệu bí mật và khơi phục ảnh gốc. (a) Ảnh stego, (b) Ma trận khởi tạo I’, (c)-(f) các kết quả của phân tử xử lý trong ma trận I’.

Kết luận

Kỹ thuật giấu tin thuận nghịch mới dựa trên sửa đổi các sai số dự đoán. Các giá trị pixel được dự đoán đầu tiên và sau đó các giá trị sai số thu được. Các bit thông điệp được nhúng thuận nghịch bằng cách thay đổi các giá trị của các sai số dự đoán. Biện pháp MPE khắc phục những hạn chế của phương pháp Ni và cộng sự - khả năng nhúng thấp và khơng có khả năng để kiểm sốt khả năng chứa bằng cách nhúng các bit thơng điệp bí mật vào các giá trị sai số. MPE có khả năng để giữ cho sự biến dạng thấp khi nhúng các thơng điệp ít hơn và tự động bỏ trống không gian

đủ để nhúng tải trọng mong muốn. Bên cạnh đó, PSNR của ảnh stego được đưa ra bởi MPE là đảm bảo trên 48 dB.

2.4.3. Phƣơng pháp giấu thuận nghịch HKC

Kỹ thuật HKC do Hwang và cộng sự đề xuất năm 2006 [21] dựa trên phương pháp cải tiến kỹ thuật giấu NSAS của Ni và cộng sự năm 2003 [19]. Kỹ thuật giấu NSAS đưa ra phương pháp giấu đầu tiên dựa vào dịch chuyển biểu đồ tần số.

Thuật tốn giấu thuận nghịch HKC được trình bày như sau:

- Bước 1. Tìm ra một điểm peak (giả sử đó là vị trí 154 trong ảnh ví dụ Lena) và hai điểm min (đó là vị trí 23 và 255). Điểm peak và các điểm min tương ứng với số pixel của chúng là lớn nhất và nhỏ nhất trong ảnh (xem hình 2.17 (a)).

- Bước 2. Nhằm để khơi phục chính xác ảnh gốc, một bản đồ định vị được đề xuất dùng để lưu trữ thơng tin vị trí của các pixel (như là điểm peak, điểm min bên trái điểm peak, lượng pixel ban đầu của điểm min bên trái, điểm min bên phải điểm peak, lượng pixel ban đầu của điểm min bên phải) trong lược đồ HKC.

- Bước 3. Khởi tạo không gian để nhúng tin. Các pixel được định vị trong histogram nằm ở bên trái giữa điểm peak và điểm min bên trái sẽ dịch sang trái một pixel. Tương tự, các pixel được định vị nằm ở bên phải giữa điểm peak và điểm min bên phải sẽ dịch sang phải một pixel.

- Bước 4. Nhúng thông tin vào trong ảnh. Nếu pixel đang xét có giá trị bằng peak-2 hoặc peak +2 thì kiểm tra bit cần nhúng trong chuỗi bit thông điệp: nếu bit thông điệp là 1 thì pixel có giá trị là peak-2 sẽ tăng lên 1, pixel có giá trị là peak+2 sẽ giảm đi 1, còn nếu bit thơng điệp là 0 thì vẫn duy trì như cũ. Hình 2.17 (b) Histogram của ảnh sau khi giấu tin.

Hình 2.17. (a) Biểu đồ tần số ảnh Lena gốc, (b) Biểu đồ tần số ảnh giấu tin sử dụng HKC

2.4.4. Phƣơng pháp giấu tin dựa trên sự khác biệt

Kỹ thuật giấu tin thuận nghịch dựa trên Difference Expansion do Jun Tian đề xuất năm 2002 [6].

Ý tưởng và thuật toán: Kỹ thuật này nhúng thông điệp cần giấu vào sự khác biệt của cặp giá trị điểm ảnh.

Một số công thức và định nghĩa a) Một số công thức:

Từ cặp giá trị điểm ảnh (x,y) của ảnh, ta tính giá trị trung bình l và sự khác

biệt h theo công thức:

      2 y x l , hxy (2.11) trong đó  . là phép tốn lấy phần nguyên.

Từ (2.11) ta biến đổi:        2 1 h l x ,  2 h l y (2.12)

Mà giá trị của điểm ảnh trong ảnh xám nằm trong [0,255], ta có: 255 2 1 0l h  và 255 2 0lh Công thức ) 1 2 ), 255 ( 2 min(    l l h (2.13)

Công thức này được sử dụng để kiểm tra h sau khi thay đổi để tránh vấn đề tràn sau khi nhúng vào ảnh.

LSB của h sẽ được chọn làm vùng để nhúng bit dữ liệu: ) ( 2 . 2 LSB h h h  

Với LSB(h) = 0 hoặc 1, để tránh vấn đề tràn, chúng ta chỉ nhúng vào những giá trị h có thể thay đổi(changeable).

Định nghĩa: Cho một cặp giá trị điểm ảnh xám (x,y) chúng ta nói h là có thể thay đổi nếu h thỏa mãn điều kiện sau:

) 1 2 ), 255 ( 2 min( 2 . 2       l l b h cho cả b=0 và 1

Định nghĩa: Cho một cặp giá trị điểm ảnh xám (x,y) chúng ta nói h là có thể mở rộng nếu h thỏa mãn điều kiện sau:

) 1 2 ), 255 ( 2 min( . 2hb  l l cho cả b=0 và 1

Q trình giấu thơng tin

Digital Image

Differences EveragesInterger

Pairs of pixel Messager Restoration Information Location Map Modified Differences Watermarked Image

Hình 2.18. - Lược đồ quá trình giấu tin [6].

Các bước thực hiện:

- Bước 1:

Chúng ta áp dụng công thức (2.11) cho mỗi cặp điểm ảnh.

Tiếp theo chúng ta phân loại h thành 5 loại EZ,NZ,EN,CNE va NC: 1. EZ: expandable zeros. Cho tất cả h 0,1 mà có thể mở rộng.

2. NZ: not expandable zeros. Cho tất cả h 0,1 mà không thể mở rộng. 3. EN: expandable nonzeros. Cho tất cả h 0,1 mà có thể mở rộng.

4. CNE: changeablable, but not expandable. Cho tất cả h h 0,1 mà có thể thay đổi nhưng khơng thể mở rộng.

5. NC: not changeable. Cho tất cả h h 0,1 mà không thể thay đổi.

- Bước 2:

Dựa vào 5 thành phần có được ở bước 1 chúng ta sẽ tạo bản đồ định vị (location map) những cặp mà có h thuộc EZ hoặc EN chúng ta sẽ thiết lập giá trị là 1, còn những cặp mà có h thuộc NZ,CNE hoặc NC chúng ta sẽ thiết lập giá trị là 0. Bản đồ định vị (bitmap 1bit) sẽ được nén xuống bởi thuật toán nén JBIG2 [8] hoặc mã đoạn dài. Chuỗi bit sau khi nén sẽ được kí hiệu là L.

Chúng ta sẽ thu thập giá trị LSB gốc của h trong CNE tạo thành chuỗi bit C, với h=1 hoặc -2 thì LSB sẽ không được thêm vào C.

Với bản đồ định vị L, giá trị LSB gốc C, và chuỗi bit thông điệp P chúng ta kết hợp chúng thành chuỗi bit B:

P C L

B  

Tùy vào h mà chúng ta sẽ có những cơng thức nhúng bit b riêng: - EZ hoặc EN: h2.hb

- CNE : hh.2b

2

- NZ hoặc NC : không thay đổi giá trị của h. Với b lần lượt là những bit thuộc chuỗi bit B.

- Bước 3:

Sau khi các bit b đã được nhúng hết vào trong h. Chúng ta áp dụng công thức (2.12) để nhúng vào trong ảnh gốc.

Watermarked Image

Differences EveragesInterger Pairs of pixel Messager Restoration Information Location Map Original Differences Original Image

Hình 2.19. - Lược đồ quá trình tách tin [6].

Các bước thực hiện:

Quá trình giải mã ngược lại với quá trình giấu - Bước 1:

Áp dụng công thức (2.11) cho mỗi cặp giá trị điểm ảnh Tiếp theo chúng ta chia h làm 2 phần C và NC:

1. C: changeable. Cho tất cả h có thể thay đổi

2. NC: not changeable. Cho tất cả h không thể thay đổi.

Tiếp theo chúng ta thu thập tất cả LSB của h trong C sẽ được chuỗi bit B. Từ B chúng ta sẽ có L,C và P. Từ L chúng ta giải mã được bản đồ định vị (location map). Với bản đồ định vị chúng ta sẽ khôi phục lại giá trị h ban đầu như sau:

- Nếu hC và bản đồ định vị có giá trị là 1, khi đó

     2 h h

- Nếu h thuộc C, bản đồ định vị có giá trị là 0 và 2h1khi đóh2

- NếuhC, bản đồ định vị có giá trị là 0 và h2hoặc h3khi đó

b h h .2

2

- Nếu h thuộc NC, h không thay đổi. - Bước 2:

Sau khi tất cả h đã được khôi phục, chúng ta áp dụng công thức (2.12) để khôi phục lại ảnh gốc.

Một phần của tài liệu nghiên cứu phương pháp giấu tin không làm mất thông tin trong ảnh chứa tin (Trang 59)