Thuật toán DC T1

Một phần của tài liệu Hệ thống thủy vân số và ứng dụng (Trang 37)

L ỜI CAM ĐOAN

2.3.3.Thuật toán DC T1

a/ Ý tưởng

Thuật toán sử dụng phƣơng pháp nhúng thủy vân trong miền tần số của ảnh, dải tần đƣợc sử dụng để chứa tín hiệu thủy vân là miền tần số ở giữa của các khối ảnh cùng kích thƣớc đã đƣợc chọn ra từ ảnh ban đầu và đƣợc áp dụng phép biến đổi cosin rời rạc DCT (Discrete Cosine Transform) để chuyển sang miền tần số. Mỗi bit tín hiệu thủy vân sẽ đƣợc nhúng trong một khối.

b/ Quá trình nhúng thủy vân Input:

Một chuỗi các bit cần nhúng Một ảnh

Output:

Một ảnh sau khi nhúng thủy vân Khóa để giải mã

Thực hiện:

Một ảnh có kích thƣớc M x N sẽ đƣợc chia thành (M x N)/64 khối 8x8, mỗi bit thủy vân sẽ đƣợc giấu trong một khối.

Bƣớc 1: Chọn một khối bất kỳ B và biến đổi DCT khối đó thu đƣợc B’

Bƣớc 2: Chọn hai hệ số ở vị trí bất kỳ trong miền tần số ở giữa của khối B’, giả sử đó là B’(i,j) và B’(p,q).

Bƣớc 3: Tính độ chênh lệch d= || B’(i,j) | - | B’(p,q)|| mod a, trong đó a là một tham số thỏa mãn a=2(2t+1), t là số nguyên dƣơng.

Bƣớc 4: Bit thủy vân si sẽ đƣợc nhúng sao cho thỏa mãn điều kiện

d>=2t+1 nếu si=1 d<2t+1 nếu si=0

Nếu d<2t+1 mà Si=1 thì một trong hai hệ số DCT b’(i,j) hoặc b’(p,q) có trị tuyệt đối lớn hơn sẽ bị thay đổi để d>=2t+1 theo công thức sau:

Max(|b’(i,j)|, |b’(p,q)|) + (INT(0.75 x a) –d)

Với hàm max(|b’(i,j)|, b’(p,q)|) là hàm chọn ra hệ số có trị tuyệt đối lớn hơn, hệ số đƣợc chọn sẽ đƣợc cộng thêm một lƣợng là (INT(0.75 x a) –d), hoặc cũng có thể biến đổi một trong hai hệ số theo công thức:

Min(|b’(i,j) , |b’(p,q)|) - (INT(0.25 x a) +d), INT() là hàm lấy phần nguyên của một số thực.

Tƣơng tự, nếu d>=2t+1 mà Si=0 thì một trong hai hệ số DCT b’(i,j) hoặc b’(p,q) có trị tuyệt đối lớn hơn sẽ đƣợc thay đổi để thỏa mãn d<2t+1 nhƣ sau:

Max(|b’(i,j) , |b’(p,q)|) – (d - (INT(0.75 x a) )

Hàm max(|b’(i,j)| , |b’(p,q)|) là hàm chọn ra hệ số có trị tuyệt đối lớn hơn, hệ số đƣợc chọn sẽ bị trừ đi một lƣợng là (d – INT(0.25 x a)), hoặc cũng có thể biến đổi một trong hai hệ số theo công thức:

Min(|b’(i,j) , |b’(p,q)|) + (INT(0.25 x a) - d)

Hàm Min(|b’(i,j) , |b’(p,q)|) là hàm chọn ra hệ số có trị tuyệt đối nhỏ hơn, hệ số đƣợc chọn sẽ đƣợc cộng thêm một lƣợng là (INT(0.25 x a) - d)

Bƣớc 5: Thực hiện phép biến đổi ngƣợc IDCT đối với khối ảnh đã nhúng bit thông tin thủy vân. Ghép các khối ảnh kết quả để đƣợc ảnh chứa thủy vân.

Khóa K chứa các chỉ số của các khối chọn ngẫu nhiên khi nhúng và vị trí các hệ số đã sửa trong mỗi khối tƣơng ứng.

Ví dụ minh họa:

Giả sử cần nhúng bit b vào khối ảnh B. Ta chọn tham số a=18= 2(2x4+1), do đó t=4. Quá trình giấu tin đƣợc thực hiện nhƣ sau:

Giả sử có bảng giá trị của một khối B đƣợc lấy ra từ thành phần Blue của một ảnh màu 24 bit. Dùng phép biến đổi DCT thu đƣợc khối ảnh B’ có chứa hệ số DCT

Từ khối hệ số B’ nói trên ta sẽ chọn bất kỳ hai hệ số trong miền tần số ở giữa (đƣợc đánh dấu sẫm). Giả sử đó là hai vị trí B’[4,2] và B’[8,1] giá trị tƣơng ứng là 144 và 72. Tính d: d=||144|-|72|| mod 18=0. Khi đó d<2t+1

+ Nếu phải giấu bit s=0 vào khối này thì ta sẽ giữ nguyên khối vì d đã thỏa mãn điều kiện giấu là d<2t+1

Trong trƣờng hợp này, thực hiện phép biến đổi DCT ngƣợc ta thu lại đƣợc chính khối B ban đầu IDCT(B’, B, n).

+Nếu phải chọn giấu bit s=1 vào B thì ta phải thay đổi một trong hai hệ số đã chọn để thu đƣợc hệ thức d>=2t+1. (adsbygoogle = window.adsbygoogle || []).push({});

Vì B’[4,2]=144 có trị tuyệt đối lớn hơn B’[8,1]=72 nên B’[4,2] đƣợc chọn để sửa trị. Giá trị mới của B’[4,2] khi đó sẽ là:

B’[4,2]:= B’[4,2] + INT(0.75 x a)-d=144+INT(0.75x18)-0=157 Bây giờ, tính lại d với trƣờng hợp hệ số B’[4,2] đã thay đổi thành 157.

D=(157-72) mod 18 = 13>9=2t+1 và thỏa mãn điều kiện giấu bit 1 vào khối. Sau đó, khối B’ lại đƣợc biến đổi ngƣợc DCT để thu đƣợc khối ảnh mới đã đƣợc nhúng bit s.

Bảng 2.2. Minh họa thuật toán DCT 1 58 75 77 55 55 55 55 55 26 77 77 77 55 77 77 76 78 25 77 77 77 78 26 76 33 26 33 27 27 26 26 77 203 202 202 202 27 26 26 26 202 202 151 149 150 201 26 27 244 202 40 201 202 102 244 201 202 208 202 202 202 202 202 201

(a) Khối ảnh B tách từ mầu Blue

862 117 3 0 36 6 -17 -50 -409 -63 -28 -53 -30 -6 50 9 174 -123 13 32 0 -8 -58 18 30 144 -18 28 -18 1 -22 -43 -38 40 11 -76 -23 21 16 5 -71 -109 57 53 72 -6 -59 22 4 47 -70 44 -26 -38 100 -7 72 63 28 -40 47 59 -51 1

(b) Khối ảnh B’ tạo ra sau khi biến đổi DCT

61 78 57 78 55 53 52 52 25 77 76 77 55 77 77 77 74 23 75 76 77 79 29 80 32 25 32 26 27 27 27 78 205 203 203 202 26 25 24 25 206 205 152 150 150 200 23 24 245 202 41 202 201 102 244 200 199 206 201 202 203 204 204 204

c/ Quá trình tách thủy vân Input:

Một ảnh đã nhúng thủy vân Khóa để giải mã

Output:

Thủy vân là dãy bit đã nhúng

Thực hiện:

Tách ảnh đã nhúng thủy vân thành các khối, lấy ra các khối đã chọn ở quá trình nhúng thủy vân. Biến đổi DCT các khối này để đƣợc khối biến đổi DCT.

Đọc khối DCT và vị trí hai hệ số đã biến đổi.

Tính độ chênh lệch d= || B’(i,j) | - | B’(p,q)|| mod a, trong đó a là một tham số thỏa mãn a=2(2t+1), t là số nguyên dƣơng.

Nếu d>=2t+1 thì gán si=1 Nếu d<2t+1 thì gán si=0

d/ Kết luận

Do thuật toán thủy vân có độ phức tạp tính toán là O(n2log2n) nên độ phức tạp tính toán của thuật toán sẽ là O(mn2log2n), trong đó m là chiều dài tính theo số bit của thủy vân, n là bậc của một khối ảnh.

Kích thƣớc khối ảnh nêu trong kỹ thuật là 8 x 8. Tuy nhiên, có thể lựa chọn các kích thƣớc khác nhau tùy ý theo kích thƣớc từng ảnh gốc và kích thƣớc thực tế của thủy vân.

Việc chọn một cặp hệ số trong miền tần số giữa có thể đƣợc chọn cố định cho tất cả các khối trong quá trình nhúng thủy vân. Khi đó, thủy vân có thể rất dễ bị phát hiện thông qua việc thử lần lƣợt các cặp hệ số trong miền tần số giữa. Có thể làm tăng độ an toàn và khó phát hiện thủy vân bằng cách đƣa ra một thuật toán có sử dụng khóa cho sự lựa chọn cặp hệ số trong miền tần số giữa cho từng khối DCT. Khi đó, vị trí của cặp hệ số đƣợc chọn cho quá trình nhúng thủy vân trong từng khối sẽ đƣợc lƣu sử dụng làm khóa cho quá trình tách thủy vân.

Trong kỹ thuật này, quá trình tách thủy vân không cần sử dụng ảnh gốc. Tham số a trong kỹ thuật đóng vai trò nhƣ là hệ số tƣơng quan giữa tính ẩn và tính bền vững của thủy vân. Khi tăng hệ số a lên thì độ sai lệch của thủy vân giảm đi và nhƣ vậy nó bền vững hơn. Tuy nhiên, nếu tăng a thì chất lƣợng ảnh sau khi giấu sẽ giảm. Điều này rất dễ hiểu vì a lớn nghĩa là phân lớp khoảng cách hai hệ số lớn nên khoảng biến đổi của một hệ số để thỏa mãn điều kiện giấu lớn dẫn đến ảnh hƣởng nhiều đến chất lƣợng ảnh.

Một phần của tài liệu Hệ thống thủy vân số và ứng dụng (Trang 37)