1/. Xét bài toán có
- Input: +Một file ảnh màu gốc S.
+Thông điệp cần thủy vân (S): một chuỗi ký tự hoặc một ảnh nhỏ. -Output: + Một file ảnh đã nhúng thủy vân S‟.
2/. Ý tƣởng
Tách ra các bit ít quan trọng LSB của mỗi điểm ảnh, sau đó ta sẽ giấu thông điệp tại mỗi bit không quan trọng đó.
3/. Các bƣớc thực hiện thủy vân
- Chuyển thủy vân cần giấu sang dạng nhị phân.
- Đọc dữ liệu của ảnh (sử dụng kỹ thuật Lockbit để tăng tốc độ xử lý).
- Tại mỗi điểm ảnh, xét thành phần Blue (thành phần mắt người khó phân biệt), và nhúng bit thủy vân. Cụ thể:
+Biến đổi giá trị của Blue của điểm ảnh sang dạng nhị phân 8 bit (B) và tính tổng số bít 1 (T).
+Thực hiện nhúng thủy vân:
Nhúng bit 1:
*Khi T = 1 (T lẻ), ta không thay đổi giá trị bit cuối cùng của B;
*Khi T = 0 (T chẵn), ta đổi bit cuối cùng của B (nếu đang là 1 thì chuyển thành 0 và ngược lại)
Nhúng bit 0:
*Khi T = 1, ta đổi bít cuối của B (nếu đang là 1 thì chuyển thành 0 và ngược lại) *Khi T =0, ta không thay đổi giá trị bít cuối cùng của B:
+Trả lại giá trị mới cho thành phần Blue của điểm ảnh đang xét. - Quá trình được thực hiện cho đến khi giấu hết các bít thủy vân vào ảnh.
- Như vậy đảm bảo được khi xét mỗi thành phần Blue của mỗi điểm ảnh đã biến đổi. Nếu : +Tổng số bít 1 là chẵn bít ta giấu là 0
4/. Các bƣớc tách thủy vân
- Xét thành phần Blue của những điểm ảnh đã thực hiện biến đổi theo trình tự đã giấu. Căn cứ theo quy tắc:
+Tổng số bít 1 là chẵn tức bít ta giấu là 0 +Tổng số bit 1 là lẻ tức bít ta giấu là 1 - Lưu các giá trị đó lại ta sẽ được thủy vân đã giấu.