2. Các thuật toán thủy vân ảnh dựa vào phép biến đổi Cosine rời rạc
2.3. Một số cải tiến, mở rộng đối với các thuật toán thuỷ vân dựa vào phép
chuyển dữ liệu về tần số của khối ảnh. Miền tần số thấp của khối ảnh đã được chứng minh là chứa dữ liệu nhìn thấy của ảnh, các thay đổi dữ liệu trên miền này sẽ dẫn đến thay đổi đáng kể ảnh hiển thị. Ngược lại, miền tần số cao chứa dữ liệu ảnh không ảnh hưởng đáng kể đến tri giác ảnh. Đây là miền tần số cho phép thay đổi mà không gây nhiễu nhiều đến ảnh. Tuy nhiên, thuỷ vân trong miền này lại không bền vững với các phép biến đổi ảnh thông thường. Với thuật toán này, miền được chọn để giấu tin là miền có tần số ở giữa tần số cao và tần số thấp, kết quả thực nghiệm của thuật toán cũng cho thấy thuỷ vân đảm bảo được tính chất ẩn trên ảnh và bền vững trên một số phép biến đổi ảnh thông thường.
2.3. Một số cải tiến, mở rộng đối với các thuật toán thuỷ vân dựa vào phép biến đổi Cosine rời rạc phép biến đổi Cosine rời rạc
Kỹ thuật thuỷ vân cải tiến trên miền tần số giữa của phép biến đổi DCT Hầu hết các kỹ thuật thuỷ vân sử dụng phép biến đổi Cosine rời rạc đều có ý tưởng nhúng thuỷ vân vào miền tần số giữa của khối DCT vì nếu nhúng vào miền tần số thấp thì chất lượng của ảnh chứa sẽ bị giảm sút, còn nếu nhúng thông tin vào miền tần số cao thì thuỷ vân lại không bền vững trước những biến đổi thông thường chẳng hạn như phép nén JPEG. Với phương pháp này, chất lượng của ảnh sau khi nhúng thuỷ vân đã được cải tiến đáng kể, đồng thời vẫn giữ nguyên được tính bền vững của thuỷ vân trước các tấn công trên ảnh.
Việc nhúng thuỷ vân được thực hiện bằng cách chọn cố định hoặc ngẫu nhiên một cặp hai hệ số thuộc miền tần số giữa rồi tuỳ theo bít thuỷ vân cần nhúng mà biến đổi cặp hệ số đã chọn cho thoả mãn điều kiện nhúng.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Kỹ thuật thuỷ vân sử dụng biến đổi DCT của Shoemarker: Với ý tưởng nhúng bit tín hiệu thuỷ vân vào miền tần số giữa của khối biến đổi DCT. Kỹ thuật sử dụng phép biến đổi DCT để phân tích khối được chọn từ ảnh gốc thành các miền tần số F, rồi chọn một cặp hai hệ số trong miền tần số giữa F(u,v) và F(p,q) để thực hiện quá trình nhúng bit thuỷ vân. Quá trình nhúng đảm bảo: Nếu bít cần nhúng là 0 thì sau khi nhúng F(u,v)>F(p,q), nếu bít cần nhúng là 1 thì F(u,v)<= F(p,q), đồng thời sau khi nhúng thì khoảng cách giá trị giữa hai hệ số được chọn luôn lớn hơn hoặc bằng k (k là số tự nhiên được chọn trước) là hệ số tương quan giữa tính ẩn và tính bền vững của thuỷ vân.
Quá trình tách thuỷ vân được thực hiện theo các bước: Đọc vào thứ tự khối ảnh đã nhúng thuỷ vân, sử dụng DCT để biến đổi khối sang miền tần số, lấy hai hệ số ở vị trí đã chọn trong quá trình nhúng thuỷ vân rồi tính
k= F(u,v)-(p,q). Nếu k>0 thì bit thuỷ vân tương ứng là 0, ngược lại được bit 1. Ghép các bít để được thuỷ vân đầy đủ. Nếu hệ số k càng lớn thì chất lượng ảnh sau khi nhúng thuỷ vân càng giảm, đồng thời tính bền vững của thuỷ vân trong ảnh trước những tấn công bên ngoài càng tăng. Việc chọn cặp hai hệ số F(u,v) và F(p,q) trong miền tần số giữa được nêu là cố định hoặc ngẫu nhiên. Do đó, dẫn đến việc thường xuyên phải thay đổi các hệ số đã cho để thoả mãn điều kiện nhúng bít thuỷ vân tương ứng.
Nếu hệ số được chọn theo phương pháp của Shoemarket thì thường xuyên phải biến đổi cho phù hợp với điều kiện cho nhúng bít thuỷ vân. Vậy phải tìm ra thuật toán sao cho khả năng biến đổi cặp hệ số chọn là ít nhất nhưng vẫn đảm bảo được tính bền vững của thuỷ vân trước những tấn công bên ngoài.
Quá trình nhúng thuỷ vân:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Thuỷ vân là một chuỗi bít hoặc ảnh nhị phân đã chuyển sang chuỗi bit.
Ra: Ảnh F’ chứa thuỷ vân, khoá để tách thuỷ vân.
Thực hiện:
(1) Ảnh gốc F được chia thành các khối 8x8, mỗi bit thuỷ vân được nhúng trong một khối.
(2) Chọn một khối ảnh chưa nhúng thuỷ vân B, thực hiện DCT(B) để được B’.
(3) Xác định B’(u,v) là phần tử nhỏ nhất và B’(p,q) là phần tử lớn nhất trong miền tần số giữa của khối B’.
(4) Nếu bit thuỷ vân cần nhúng vào khối hiện tại là bit 0 thì lưu vị trí (p,q) vào biến max và lưu vị trí (u,v) vào biến min; ngược lại nếu bit cần nhúng là bit 1 thì lưu vị trí (u,v) vào biến max và lưu vị trí (p,q) vào biến min.
(5) Tính d = B’(p,q) – B’(u,v). Nếu d < k với k là số tự nhiên được chọn trước thì tiến hành thay đổi các hệ số đã cho theo công thức:
B’(p,q) = B’(p,q) + (k-d)/2, B’(u,v) = B’(u,v) + (k-d)/2
(6) Thực hiện phép biến đổi ngược IDCT với khối B’ mới, ghép các khối kết quả để được ảnh đã nhúng thuỷ vân F’. Khoá để tách thuỷ vân là các biến lưu vị trí max và min.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Tại bước (3) và (4), quá trình nhúng thuỷ vân vào từng khối B’ luôn thoả mãn tính chất: Nếu bit cần nhúng là 0 thì B’(max) > B’(min), nếu bít cần nhúng là 1 thì B’(max) < B’(min)
Bước (5), độ lệch giữa hai hệ số được chọn sau khi nhúng tối thiểu là k, công thức trong (5) cho ta thấy độ lệch giữa hai hệ số được chọn còn nhỏ hơn k thì cả hai hệ số sẽ đều được biến đổi tăng và giảm một lượng bằng (k- d)/2. Về khoảng cách thì việc thay đổi này tương đương với việc chỉ tăng B’(p.q) lên (k - d) hoặc giảm B’(u,v) đi (k - d), nếu làm như vậy sẽ gây thay đổi lớn đối với một hệ số dẫn đến làm ảnh hưởng đến chất lượng thị giác của ảnh chứa thủy vân.
Quá trình tách thuỷ vân:
Vào: Ảnh chứa thuỷ vân F’ (có thể đã bị tấn công) Khoá để tách thuỷ vân max, min
Ra: Thuỷ vân dạng chuỗi bit
Thực hiện:
(1) Ảnh chứa thuỷ vân F’ được chia thành các khối 8x8
(2) Chọn theo thứ tự khối ảnh B’, thực hiện DCT(B’) để thu được B. (3) Đọc vị trí các hệ số tương ứng với khối B trong biến max và min (4) Nếu B(max) – B(min) > 0 thì lấy bit 0, ngược lại lấy bit 1.
(5) Ghép các bit để được thuỷ vân đầy đủ.
Nhận xét:
Quá trình tách thuỷ vân không cần sử dụng ảnh gốc, không sử dụng đến hệ số k đã được chọn trong quá trình nhúng thuỷ vân.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trong thuật toán nhúng, khối DCT sau khi nhúng luôn thoả tính chất hai hệ số được chọn là hai hệ số có độ lệch cao nhất. Vì vậy, khi nhận ảnh chứa thuỷ vân, ta có thể dò thuỷ vân bằng cách đọc vào các khối DCT rồi tìm ra cặp hệ số có độ lệch cao nhất trong khối. Do đó, thuỷ vân dễ dàng bị loại bỏ.
Giải pháp an toàn:
Để khắc phục nhược điểm của kỹ thuật trên, ta sẽ đưa ra một giải pháp để được hệ thuỷ vân có độ an toàn cao đối với thuỷ vân đã được nhúng trong ảnh.
Quá trình nhúng thuỷ vân: Vào: Ảnh gốc F
Thuỷ vân là một chuỗi bit hoặc ảnh nhị phận đã chuyển sang chuỗi bit. Ra: Ảnh F’ chứa thuỷ vân, khoá để tách thuỷ vân.
Thực hiện:
(1) Ảnh gốc F đựoc chia thành các khối 8x8, mỗi bit đựoc nhúng trong một khối.
(2) Chọn một khối ảnh chưa nhúng thuỷ vân B, thực hiện DCT(B) để được B’.
(3) Gọi MID là dãy 22 phần tử các hệ số thuộc miền tần số giữa của B’, xây dựng một ma trận độ lệch DM kích thước 22x22 với các phần tử là độ lệch giữa MID(i) mà MID(j)
DM(i,j) = |MID(i) – MID(j)|
Gọi TK là dãy gồm t phần tử trong DM có giá trị ≥ k (k là hệ số tương quan giữa tính ẩn và tính bền vững của thuỷ vân) đã được chọn trước.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Nếu t = 0 thì thực hiện bước (4), ngược lại chọn ngẫu nhiên một số tự nhiên vt trong đoạn [1,t] rồi xác định cặp hệ số có độ lệch tương ứng bằng TK(vt). Đặt B’(v,t) là phần tử lớn hơn trong cặp hệ số vừa chọn. Thực hiện bước (5).
(4) Xác định B’(u,v) là phần tử nhỏ nhất và B’(p,q) là phần tử lớn nhất trong miền tần số giữa của khối B’.
Tính d = B’(p,q) – B’(u,v). Nếu d < k thì tiến hành thay đổi hệ số đã chọn theo công thức:
B’(p,q) = B’(p,q) + (k - d)/2, B’(u,v) = B’(u,v) - (k - d)/2
(5) Nếu bit thuỷ vân cần nhúng vào khối hiện tại là bit 0 thì lưu vị trí (p,q) vào biến max đồng thời lưu vị trí (u,v) vào biến min, ngược lại nếu bit cần nhúng là bit 1 thì lưu vị trí (u,v) vào biến max đồng thời lưu vị trí (p,q) vào biến min.
(6) Thực hiện phép đổi ngược IDCT với khối B’ mới, ghép cấc khối kết quả để được ảnh đã nhúng thuỷ vân F’. Khoá để tách thuỷ vân là các biến lưu vị trí max và min.
Quá trình tách thuỷ vân: được thực hiện như đã trình bầy ở trên.
Nhận xét:
Giải pháp này đưa ra một ma trận độ lệch nhằm tính giá trị độ lệch giữa các cặp hệ số thuộc miền tần số giữa của khối DCT. Căn cứ vào sự so sánh các phần tử thuộc ma trận độ lệch với hệ số k để chọn ra những cặp hệ số thoả mãn điều kiện nhúng có thể được sử dụng.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trong trường hợp ở khối hiện tại không có cặp hệ số nào thoả mãn điều kiện nhúng thì buộc phải thay đổi hệ số.
Trong trường hợp ở khối đang xét có nhiều hơn một cặp hệ số thoả mãn điều kiện nhúng thì ta đưa ra thuật toán chọn ngẫu nhiên một cặp để ghi nhận và sử dụng làm khoá cho quá trình tách thủy vân. Điều này làm tăng đáng kể tính bí mật cho bit thuỷ vân được nhúng vào khối tương ứng.
Trong kỹ thuật thuỷ vân thì ảnh chủ có thể được chia thành các khối 8x8; 16x16; 32x32…Ta sẽ so sánh chất lượng ảnh sau khi nhúng thuỷ vân và thuỷ vân sau khi tách trong trường hợp chia ảnh chủ thành khối 8x8 và khối 16x16
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Ảnh sau khi nhúng:
Ảnh sau khi thuỷ vân psnr = 5.5388e+005 dB
Thuỷ vân sau khi tách
Hình 2.16: K = 5; Cỡ khối = 8
Ảnh sau khi thuỷ vân PSNR = 94.0 dB
Thuỷ vân sau khi tách
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Bằng một số phép nén và biến đổi thông thường lên ảnh đã thuỷ vân, sau đó tìm lại thuỷ vân ta vẫn thu được kết quả như trong trường hợp chưa nén.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƢƠNG 3: THIẾT KẾ VÀ PHÁT TRIỂN CHƢƠNG TRÌNH THỬ NGHIỆM