CHƯƠNG 1: TỔNG QUAN VỀ THỦY VÂN THUẬN NGHỊCH
1.6. Thủy vân thuận nghịch
Mục trình bày một số khái niệm về thủy vân thuận nghịch và các tính chất của một lược đồ thủy vân thuận nghịch cũng như phạm vi ứng dụng của chúng.
1.6.1. Khái niệm
Thủy vân thuận nghịch (reversible watermarking) theo [3-9] là các lược đồ nhúng tin có khả năng khôi phục lại dữ liệu gốc từ dữ liệu thủy vân. Hai tính chất quan trọng nhất của chúng là khả năng nhúng tin và chất lượng ảnh thủy vân.
Thủy vân thuận nghịch có vai trò quan trọng trong một số lĩnh vực như an ninh, quốc phòng và y tế [11] . Bởi, chỉ cần một sự khác biệt nhỏ giữa ảnh sử dụng với ảnh gốc cũng có thể ảnh đến những quyết định của bác sĩ và dẫn đến những hệ lụy nghiêm trọng.
Trong các lược đồ thủy vân thuận nghịch, sau khi xác thực tính toàn vẹn của dữ liệu thủy vân thì quá trình khôi phục ảnh gốc hoặc trích thông tin mật được thực hiện. Việc khôi phục lại ảnh gốc là một trong những yêu cầu bắt buộc trong y tế, quân sự và nghệ thuật.
1.6.2. Một số hướng tiếp cận của thủy vân thuận nghịch
Thủy vân thuận nghịch có vai trò quan trọng trong lĩnh vực thủy vân, đặc biệt trong lĩnh vực xác thực dữ liệu. Nội dung phần này trình bày một số lược đồ thủy vân theo các hướng tiếp cận khác nhau như:
- Dịch chuyển Histogram - Sử dụng đặc trưng nén JPEG - Sử dụng nén bảo toàn
- Sử dụng phương pháp mở rộng hiệu trong biến đổi nguyên thuận nghịch.
1.6.2.1. Dịch chuyển Histogram
Dựa trên bảng thống kê tần xuất giá trị điểm ảnh (histogram), Zhicheng Ni và các cộng sự ( ) đã đề xuất lược đồ giấu tin thuận nghịch trên ảnh đa cấp xám [8] bằng cách dịch chuyển histogram.
Với ảnh đa cấp xám, giá trị điểm ảnh luôn thuộc tập {0,1, … ,255}. Gọi ( ) là tổng số điểm ảnh có giá trị bằng . Khi đó, tập
= { (0), (1), … (255)} chính là histogram của ảnh đa cấp xám. Theo lược đồ , trước khi nhúng tin ta cần xác định cặp điểm (Peak, Zero) như sau:
được gọi là điểm Peak nếu ( ) đạt cực đại trong một lân cận nào đó
được gọi là điểm Zero nếu ( ) = 0.
Khi đó, cặp điểm Peak – Zero được ký hiệu ( , ) và số bít có thể nhúng là ( ). Trong trường hợp không tồn tại điểm Zero, thuật toán chọn có ( ) đạt cực tiểu và thiết lập các điểm ảnh có giá trị bằng 0. Để nhúng nhiều thông tin, thuật toán có thể chọn nhiều cặp điểm (Peak – Zero) và nhúng tin trên từng cặp điểm (các cặp điểm phải không giao nhau). Các điểm Peak – Zero được mô tả như hình 1.11
Hình 1.11. Điểm Peak và Zero
Nội dung thuật toán nhúng tin của lược đồ như sau:
Thuật toán nhúng tin
Với ảnh gốc kích thước × và ( , ) là giá trị của cặp điểm Peak- Zero (giả sử z>p). Khi đó, thuật toán nhúng dãy bít = , . . , ( ) vào ảnh để nhận được ảnh chưa tin như sau:
Bước 1:Dịch histogram
, = , , ế < , ≤
, + 1, ế + 1 ≤ , ≤ 1 , = 1 … , = 1. . Như vậy, sau Bước 1, ảnh có ( + 1) = 0.
Bước 2: Nhúng tin
Gọi D = d d … d ( ) là dãy điểm ảnh của có giá trị bằng . Khi đó, thuật toán nhúng dãy bít b = b b , . . , b ( ) vào D để nhận được D = d … d ( ) theo công thức:
= + , = 1. . ( ) Thuật toán trích tin và khôi phục ảnh gốc
Từ ảnh chứa tin và hai tham số , đã sử dụng khi nhúng tin, thuật toán trích dãy bít = … ( ) ( ) và khôi phục ảnh gốc như sau:
Bước 1: Trích dãy bít
Gọi = … ( ) ( )là dãy điểm ảnh của có giá trị bằng hoặc + 1(theo thứ tự nhúng tin). Khi đó, dãy bít được xác định:
= 0, ế =
1, ế = + 1 , = 1. . ( ) + ( + 1) Bước 2: Khôi phục ảnh gốc từ :
, = , , ế < , ≤
, 1, ế + 1 ≤ , ≤
Theo kết quả thực nghiệm trong [4], ảnh chứa tin có chất lượng tương đối tốt. Tuy nhiên, cũng giống như các lược đồ giấu tin trên miền không gian khác, thông tin nhúng dễ bị biến đổi trước các phép tấn công ảnh như: nén JPEG, nhiễu và biến đổi hình học đối với ảnh chứa tin.
1.6.2.2.Sử dụng đặc trưng nén JPEG
Việc sử dụng đặc trưng ảnh nénJPEG để nhúng tin được bắt đầu nghiên cứu bởi Iwata và các đồng sự trong [7] bằng cách sử dụng các khối DCT (Discrete Cosine Transform)nhận được sau khi đã lượng tử hóa (khối DCT lượng tử). Mỗi khối này có kích thước 8 × 8 và thường chứa nhiều hệ số (phần tử) 0 ở góc dưới phải. Iwata sử dụng 9 đường chéo của khối (cùng chiều với đường chéo chính) và nhúng 1 bít trên mỗi đường chéo bằng cách biến đổi sao cho tổng số các hệ số 0 liên tiếp tính từ dưới lên của mỗi đường chéo có cùng tính chẵn lẻ với bít cần nhúng. Tuy nhiên lược đồ này chưa có tính chất thuận nghịch.
Chang và đồng sự [4]cũng sử dụng 9 đường chéo như trong [5] nhưng nhúng trên mỗi đường chéo tối đa một bít tại hai phần tử bằng 0 cuối cùng (nếu có) trong dãy các phần tử 0 liên tiếp tính từ dưới lên. Ngoài ra, phần tử khác 0 cuối cùng được biến đổi theo một qui tắc nhất định để có thể xác định chính xác vị trí nhúng tin. Do đó lược đồ [4] (lược đồ CLTT) vừa trích được các bít đã nhúng và vừa có khả năng khôi phục được ảnh gốc. Tuy nhiên khả năng nhúng tin của lược đồ này còn hạn chế. Để nâng cao khả năng nhúng tin, trong [5] đề xuất lược đồ nhúng tin hai lớp (lược đồ LS)bằng cách kết hợp lược đồ CLTT với phương pháp mở rộng hiệu[11]. Theo kết quả thực nghiệm trong [5], khả năng nhúng tin của lược đồLSđược cải thiện hơn so với lược đồ CLTT, nhưng chất lượng ảnhgiảm đáng kể.
Như đã đề cập, lược đồ nhúng tin thuận nghịchCLTT [4] được đề xuấtdựa trên ý tưởng nhúng tin củaIwata [7].Với mỗi khối DCTLT của thành phần Y,
lược đồ [7] nhúng 9 bít dữ liệu trên 9 đường chéosong song với đường chéo chính như Hình 1.12.
Hình 1.12.Các đường chéo của khốiDCTLT
Gọi = , , . . , với 1 ≤ ≤ 9,là dẫy hệ số trên đường chéo theo thứ tự từ dưới lên trên như Hình 1.12, là số phần tử 0 liên tiếp tối đacủa tính từ hệ số (0 ≤ ≤ ). Lược đồ CLTT chọn ra các dẫy có
≥ 2 để nhúng một bít dữ liệu bằng cách biến đổi tối đa hai phần tử của dẫy.
Nội dung của lược đồ CLTT gồm 3 thuật toán: nhúng tin, trích tin và khôi phục ảnh gốc.
Thuật toánnhúng tin
Thuật toán nhúng bít dữ liệu vào dẫy = ( , , . . , )có ≥ 2 bằng cách biến đổi hệ số thành theo công thức:
= 1 hoặc 1, nếu = 1
0, nếu = 0
Để tránh nhập nhằng (nhầm lẫn) trong quá trình trích tin và khôi phục ảnh gốc, thuật toán thực hiện bước tiền xử lý các tập (1 ≤ ≤ 9)với 3luật biến đổi:
Luật A. Nếu 2 ≤ ≤ 2 và có dạng , … , , , 0, với ≠ 0 thì:
= + 1 , nếu > 0
1 , nếu < 0 Luật B. Nếu = 0 và có dạng( , 0, )với ≠ 0 thì:
= + 1 , nếu > 0 1 , nếu < 0
Luật C. Nếu = 1 và có dạng(0, , 0, )với ≠ 0 thì:
= + 1 , nếu > 0 1 , nếu < 0 (ký tự * đại diện cho giá trị nguyên tùy ý).
Để tiện theo dõi thuật toán, xét ví dụ nhúng dãy bít dữ liệu = (010110)vào khối DCTLT trên Hình 1.12. Kết quả tiền xử lý và nhúng tin trình bày trong Bảng1.
Dẫy hệ số lượng tử gốc
Kết quả tiền xử lý
Dẫyhệ số lượng tử sau khi nhúng tin( ) (0,0,-1,-2,-1,2,-34) 2 (0,0,-1,-2,-1,2,-34) 0 (0,0,-1,-2,-1,2,-34) (0,0,0,0,1,-4,-41) 4 (0,0,0,0,1,-4,-41) 1 (0,0,1,0,1,-4,-41) (0,0,1,0,2,-7,-24) 2 (0,0,2,0,2,-7,-24) 0 (0,0,2,0,2,-7,-24) (0,0,1,-2,2,-1) 2 (0,0,1,-2,2,-1) 1 (1,0,1,-2,2,-1) (0,1,0,-1,-1,-20) 1 (0,2,0,-1,-1,-20) k (0,2,0,-1,-1,-20) (-1,-1,2,2,11) 0 (-1,-1,2,2,11) k (-1,-1,2,2,11) (1,0,1,11,-15) 0 (2,0,1,11,-15) k (2,0,1,11,-15) (0,0,1,-2) 2 (0,0,1,-2) 1 (1,0,1,-2) (0,0,13,35) 2 (0,0,13,35) 0 (0,0,13,35)
Bảng 1. Kết quả tiền xử lý và nhúng tin trên Hình 1.12 (klà không nhúng tin)
Theo kết quả thực nghiệm trong [4], chất lượng ảnh chứa tin của lược đồ CLTT khá tốt. Tuy nhiên theo [5], khả năng nhúng tin của lược đồ này còn hạn chế.
Thuật toán trích tin
Trên mỗi khối DCTLT của ảnh chứa tin, thuật toán xác định các dẫy = ( , , . . , ) với 1 ≤ ≤ 9 theo Hình 1.12. Ngoài việc trích bít dữ liệu
từdẫy thuật toán còn xác định vị trí nhúngtin phục vụ quá trình khôi phục ảnh gốc.
Với mỗi dẫy = ( , , . . , ),gọi là vị trí đầu tiên để khác 0 tính từ ,1 ≤ ≤ . Khi đó, tham số và bítdữ liệu (trường hợp có nhúng tin) được xác định theo 1 trong6 luật sau:
Luật 1.Nếu = ±1 và = 0, thì = 1 và = .
Luật2.Nếu = ±1 , ≠ 0 và ≥ 3, thì = 0 và = 2.
Luật3. Nếu = ±1, ≠ 0và ≤ 2, thì không chứa tin.
Luật4. Nếu ≠ ±1 và ≥ 3, thì = 0 và = 2.
Luật5. Nếu ≠ ±1 và ≤ 2, thì không chứa tin.
Luật6. Nếu không tồn tại ( = 0 với = 1 … ) thì = 0 và = 1.
Dựa vào nội dung thuật toán nhúng tinvàLuật1, Luật2, Luật4, Luật6 của thuật toán ta thấy: trong trường hợp có nhúng tin, giá trị hệ số chính là bít đã nhúng. Nói cách khác, là vị trí đã nhúng bít .
Thuật toán khôi phục ảnh gốc
Thuật toánthực hiện khi đã hoàn thành quá trình trích tin trên các dẫy = ( , , . . , ). Dựa vào vị trí nhúng tin thuật toán khôi phục dẫyhệ số DCTLT gốc = , , . . , gồm hai bước:
Bước 1:Khôi phục vị trí nhúng tin (trường hợp có nhúng tin):
= 0
Bước 2:Khôi phục các trường hợp nhập nhằng bằng1 trong 3 luật sau:
Luật1. Nếu có nhúng tin,4 ≤ z + 3 ≤ và = 0 , thì hệ số được tính:
= 1, ế > 0
+ 1, ế < 0
Luật 2. Nếu không nhúng tin và hai hệ số ( , ) của có dạng ( , 0) với ≠ 0, thì hệ số được tính:
= 1, ế > 0
+ 1, ế < 0
Luật 3. Nếu không nhúng tin và ba hệ số ( , , ) của có dạng (0, , 0) với ≠ 0, thì hệ số được tính:
= 1, ế > 0
+ 1, ế < 0
Các hệ số còn lại của dẫy có giá trị tương ứng với các hệ số trong . Xét ví dụ minh họa thuật toán trích tin, thuật toán khôi phục ảnh gốc ứng với các tập hệ số DCTLTchứa tin trong Bảng 1. Kết quả thực hiện trình bày trong Bảng 2.
Dẫy hệ số lượng tử chứa tin
Dẫy hệ số lượng tử gốc
(0,0,-1,-2,-1,2,-34) 3 0 1 (0,0,-1,-2,-1,2,-34) (0,0,1,0,1,-4,-41) 3 1 3 (0,0,0,0,1,-4,-41) (0,0,2,0,2,-7,-24) 3 0 1 (0,0,1,0,2,-7,-24) (1,0,1,-2,2,-1) 1 1 1 (0,0,1,-2,2,-1) (0,2,0,-1,-1,-20) 2 K (0,1,0,-1,-1,-20)
(-1,-1,2,2,11) 1 K (-1,-1,2,2,11)
(2,0,1,11,-15) 1 K (1,0,1,11,-15)
(1,0,1,-2) 1 1 1 (0,0,1,-2)
(0,0,13,35) 3 0 1 (0,0,13,35)
Bảng 2. Kết quả trích tin và khôi phục ảnh gốc (klà không nhúng tin)
Các số liệu trong Bảng 2 cho thấy, ngoài việc trích được dãy bít đã nhúng
= (010110) thuật toán còn khôi phục thành công các dẫy hệ số DCT lượng tử gốc như trên Hình 1.12.
Lược đồnhúng tin thuận nghịchLS
Với mục đích nâng cao khả năng nhúng tin, Lin và cộng sự [5] đề xuất mô hình nhúng tin thuận nghịch hai lớp theo sơ đồ:
Hình 1.13.Lược đồ nhúng tinLS
Giống như lược đồ CLTT, lược đồ LS cũng xét 9dẫy hệ số DCT lượng tử theo các đường chéo như Hình 1.12. Mỗi dẫy hệ số (1 ≤ ≤ 9) lược đồ LS thực hiện nhúng tin hai lớp như Hình 1.13: trước tiên dùng phương pháp mở rộng hiệu [10] để nhúng một bít trên hai hệ số DCT lượng tử lân cận, sau đó sử dụng lược đồ CLTT để nhúng thêm một bít.
Theo kết quả thực nghiệm trong [5], khả năng nhúng tin của lược đồ LS được cải thiện hơn so với lược đồ CLTT, nhưng chất lượng ảnh lại giảm đáng kể.
1.6.2.3. Phương pháp nén bảo toàn
Đối với các lược đồ sử dụng phương pháp nén bảo toàn, các lược đồ thủy vân thường dùng một số thuật toán nén như: Run-length, Huffman và mã hóa số học để nén các bít thấp của dữ liệu nhằm tạo ra một khoảng trống dùng để chứa dấu thủy vân. Do vậy, khả năng nhúng tin của các lược đồ thủy vân phụ thuộc vào tính hiệu quả của phương pháp nén. Trong thực tế, các bít thấp của dữ liệu ảnh và âm thanh thường có xu hướng ngẫu nhiên nên tỉ lệ nén không cao. Do vậy, khả năng nhúng tin của các lược đồ thủy vân thuộc phương pháp này thường thấp.
1.6.2.4. Phương pháp mở rộng hiệu
Tuy mỗi lược đồ nhúng tin ở trên có cách tiếp cận và kỹ thuật khác nhau tùy theo từng dạng ảnh. Nhưng điểm chung trong thuật toán trích tin của các lược đồ là: biết chính xác vị trí điểm ảnh bị thay đổi và giá trị gốc của chúng. Để thực hiện điều này, các lược đồ thủy vân thuận nghịch thường cố định vị trí nhúng tin, và sử dụng hàm đổi hai chiều khi cần thay đổi giá trị điểm ảnh trong quá trình nhúng tin, hoặc sử dụng phương pháp nén để có thể gửi giá trị gốc của các điểm ảnh thay đổi kèm theo ảnh chứa tin. Ngoài ra, nhiều lược đồ nhúng tin còn gặp phải khó khăn chung là giá trị sau khi biến đổi vượt ra khỏi phạm vi giá trị của điểm ảnh (overflow and underflow).
Đối các phép biến đổi nguyên thuận nghịch, phương pháp mở rộng hiệu được đánh giá là một trong những phương pháp có khả năng nhúng tin cao và có nhiều tiềm năng ứng dụng. Nội dung phương pháp này và một số phương pháp cải tiến sẽ được trình bày chi tiết trong Chương 2 của luận văn.