Bài toán overflow-underflow trong thủy vân thuận nghịch

Một phần của tài liệu thủy vân thuận nghịch sử dụng phép biến đổi mở rộng hiệu (Trang 31 - 69)

Tuy mỗi lược đồ giấu 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 đồ giấu tin 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 đồ giấu 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).

2.3. Một số hƣớng tiếp cận trong thủy vân thuận nghịch 2.3.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 . Gọi

là tổng số điểm ảnh có giá trị bằng . Khi đó, tập

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 .

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ó

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

đạ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 2.1

Hình 2.1. Điểm PeakZero

Nội dung thuật toán nhúng tin của lược đồ như sau: Thuật toán nhúng tin

là giá trị của cặp điểm Peak-

Zero >p).

như sau:

1:Dịch histogram

Như vậy, sau Bước 1, ảnh có .

2:

Gọi là dãy điểm ảnh của có giá trị bằng . Khi

đó, thuật toán nhúng dãy bít vào để nhận được

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

, như sau:

1:

Gọi là dãy điểm ảnh của có giá trị bằng

hoặc (theo thứ tự nhúng tin). Khi đó, dãy bít được xác định:

2: Khôi phục ảnh gốc từ :

Theo kết quả thực nghiệm trong [9], ả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.

Ví dụ minh họa:

Cho ảnh đa mức xám I có bảng giá trị màu như sau: 1 0 8 7 7 8 1 0 9 1 0 8 9 8 7 8 1 0 7 1 0 6 7 8 9 I =

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Nhúng tin:

Bƣớc 1: Lập bảng thống kê tần xuất của các giá trị màu (bảng Histogram)

Giá trị màu 5 6 7 8 9 10 11 12

Tần số

xuất hiện 0 1 5 6 3 5 0 0

Bƣớc 2: Xác định các cặp Peak point và Zero point <peak, zero> = <8,6>

Bƣớc 3: Nhúng 01 dãy bit vào từng cặp (các cặp được chọn không giao nhau)

Với cặp <peak, zero> = <8,6> trên ta nhúng được 6 bit. ở đây ta chọn: b = 101101.

Cụ thể:

Bƣớc 3.1: Dịch Histogram về phía Zero point (dịch về phía bên trái) Dịch từ điểm kề với peak point theo hướng về phía zero point, ta được bảng sau: 0 1 2 3 4 5 6 7 5 6 7 8 9 10 11 12 Ze ro Peak

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Giá trị màu 5 6 7 8 9 10 11 12 Tần số xuất hiện 0 1 5 6 3 5 0 0 Tần xuất sau khi dịch chuyển 1 5

Bƣớc 3.2: Nhúng dãy bit trên các điểm ảnh có giá trị bằng giá trị của peak point, cách nhúng như sau:

+ Nếu bi = 0 → Không thay đổi ảnh Pi

+ Nếu bi = 1 → Pi = Pi -1 (theo hướng bên trái)

1 0 7 6 6 8 1 0 9 1 0 7 9 7 6 8 1 0 6 1 0 5 6 7 9

Do đó, cặp Zero point mới lúc này là <8,5>

Khôi phục:

- Biết ảnh I’ và cặp peak point <8,5> - Cần tìm b1, b2 và I.

Bước 1: Duyệt Ma trận I’, nếu I’ gặp giá trị peak point lấy ra bit 0; nếu gặp peak point – 1 lấy ra giá trị 1.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 1 0 7 6 6 8 1 0 9 1 0 7 9 7 6 8 1 0 6 1 0 5 6 7 9 1 0 8 6 6 8 1 0 9 1 0 8 9 8 6 8 1 0 6 1 0 5 6 8 9 → b = 101101 Khôi phục điểm dịch chuyển

Bước 2: Ta chỉ quan tâm tới các điểm ảnh mà có giá trị từ Zero point đến Peak point – 2. Cách của nó là biến đổi theo quy tắc + 1. Ta có Ảnh gốc thu được sau khi dịch chuyển như sau:

1 0 8 7 7 8 1 0 9 1 0 8 9 8 7 8 1 0 7 1 0 6 7 8 9

+ Đối chiếu với ảnh gốc.

I’ = I =

I =

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

2.3.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 [10] 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 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ự [9]cũng sử dụng 9 đường chéo như trong [11] 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 đồ [9] (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 [11] đề 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 [8]. Theo kết quả thực nghiệm trong [11], 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 [9] được đề xuất dựa trên ý tưởng nhúng tin của Iwata [10].Với mỗi khối DCTLT của thành phần Y, lược đồ [10] nhúng 9 bít dữ liệu trên 9 đường chéo song song với đường chéo chính như Hình 2.2.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ H1 H3 H5 H7 H9 H2 H4 H6 H8

Hình 2.2.Các đường chéo của khốiDCTLT

Gọi với là dãy hệ số trên đường chéo

theo thứ tự từ dưới lên trên như Hình 2.2, là số phần tử 0 liên tiếp tối

đa của tính từ hệ số . Lược đồ CLTT chọn ra các dãy

có để 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.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Thuật toánnhúng tin

Thuật toán nhúng bít dữ liệu vào dãy có

bằng cách biến đổi hệ số thành theo công thức:

Để 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 với 3

luật biến đổi:

Luật A. Nếu và có dạng với

thì:

Luật B. Nếu và có dạng với thì:

Luật C. Nếu và có dạng với thì:

(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 vào khối DCTLT trên Hình 2.3.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Dãy hệ số lƣợng tử gốc Kết quả tiền xử lý Dãy hệ 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 2.3 (klà không nhúng tin) Theo kết quả thưc nghiệm trong [9], chất lượng ảnh chứa tin của lược đồ CLTT khá tốt. Tuy nhiên theo [11], 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 theo Hình 2.3. 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úng tin phục vụ quá trình khôi phục ảnh gốc.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Với mỗi dẫy , gọi là vị trí đầu tiên để khác

0 tính từ , . Khi đó, tham số và bít dữ liệu (trường hợp

có nhúng tin) được xác định theo 1 trong 6 luật sau:

Luật 1. Nếu và thì và .

Luật2. Nếu thì và .

Luật3. Nếu , và , thì không chứa tin.

Luật4. Nếu và , thì

Luật5. Nếu và thì không chứa tin.

Luật6. Nếu không tồn tại ( ) thì và

Dựa vào nội dung thuật toán nhúng tin và Luật 1, Luật 2, Luật 4, Luật 6 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):

Bƣớc 2: Khôi phục các trường hợp nhập nhằng bằng 1 trong 3 luật sau:

Luật1. Nếu có nhúng tin, và thì hệ số

được tính:

Luật 2. Nếu không nhúng tin và hai hệ số của có dạng

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Luật 3. Nếu không nhúng tin và ba hệ số của có dạng

với , thì hệ số được tính:

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)

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

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 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 2.3. 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ự [11] đề xuất mô hình nhúng tin thuận nghịch hai lớp theo sơ đồ:

Ảnh gốc Biến đổi DCT Lƣợng tử hóa Mở rộng hiệu

CLTT Giải lƣợng tử

Biến đổi IDCT Ảnh chứa tin

Hình 2.4. Lược đồ nhúng tinLS

Giống như lược đồ CLTT, lược đồ LS cũng xét 9 dãy hệ số DCT lượng

tử theo các đường chéo như Hình 2.2. Mỗi dãy hệ số lược

đồ LS thực hiện nhúng tin hai lớp như Hình 2.4 trước tiên dùng phương pháp mở rộng hiệu [2] để 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 [11], 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ể.

2.3.3. Sử dụng nén bảo toàn

Nhiều thuật toán thuỷ vân thuận nghịch được đề xuất đến nay sử dụng hướng tiếp cận này, đó là cách nhúng thông tin vào miền không gian nén. Một ví dụ điển hình cho kỹ thuật này có thể được tìm thấy trong nghiên cứu của Fridich. Thuật toán nhúng sẽ hiệu quả hơn nếu ảnh được chia

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

thành các block để nhúng. Tuy nhiên, kỹ thuật nén bảo toàn thông tin nên được sử dụng để khôi phục ảnh gốc.

2.3.4.Sử dụng phép biến đổi mở rộng hiệu 2.3.4.1Xét ví dụ về mở rộng hiệu

Giả sử chúng ta có hai giá trị x = 206, y = 201, bít cần nhúng b = 1. Đầu tiên chúng ta tính giá trị nguyên trung bình l và hiệu h của x và y:

Việc nhúng bít b =1 vào hiệu h được thực hiện:

Khi đó, cặp điểm ảnh được xác định theo công thức:

Để trích bít b và khôi phục cặp điểm ảnh gốc từ cặp điểm ảnh đã

nhúng tin ta thực hiện như sau:

Trích bít tin đã nhúng:

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Qua ví dụ trên ta thấy, có thể nhúng một bít vào mỗi cặp điểm ảnh để nhận được cặp điểm ảnh chứa tin . Từ cặp điểm ảnh có thể trích được bít đã nhúng và khôi phục được cặp điểm ảnh Tuy nhiên có thể thấy rằng: sau khi nhúng có bít b vào cặp điểm thuộc miền giá trị [0..255] theo cách thức trên thì có thể vượt ra ngoài miền giá trị [0..255]. Do vậy, không phải mọi cặp điểm ảnh

đều có thể sử dụng cách nhúng như trên.

2.3.4.2 Khả mở và khả biến

Theo [2], mỗi cặp điểm ảnh (x,y) với thuộc một trong 3

nhóm: khả mở (expandable) khả biến (changeable) và không khả biến. Để tiện theo dõi, trước tiên luận văn trình bày một số định nghĩa sử dụng trong nhóm phương pháp mở rộng hiệu.

Định nghĩa 1: Cặp điểm ảnh (x,y) với được gọi là khả mở nếu thỏa mãn điều kiện:

và Trong đó:

Điều kiện khả mở trên cũng tương đương với điều kiện: với

Định nghĩa 2: Cặp điểm ảnh (x,y) được gọi là khả biến nếu thỏa mãn điều kiện:

với

Các cặp điểm ảnh không thỏa mãn điều kiện khả biến thì được gọi là khả biến.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Nhận xét 1: Nếu (x,y) khả mở thì (x,y) cũng thỏa mãn điều kiện khả biến nhưng (x,y) khả biến thì chưa chắc đã khả mở.

2.3.4.3 Nhúng tin và khôi phục theo khả mở, khả biến

Đối với phương pháp mở rộng hiệu, việc nhúng bít b và khôi phục cặp điểm ảnh gốc (x,y) thực hiện theo các công thức khác nhau tùy theo (x,y) là khả mở hay khả biến. Để tiện theo dõi, trước tiên luận văn trình bày thuật toán nhúng và khôi phục ứng với từng trường hợp khác nhau.

a) Nhúng tin và khôi phục đối với (x,y) khả mở

Thuật toán nhúng

Việc nhúng bít b vào cặp điểm ảnh khả mở (x,y) để nhận được cặp

điểm ảnh được thực hiện theo các bước sau:

Bƣớc 1: tính

Bƣớc 2: Nhúng tin

Thuật toán trích tin và khôi phục cặp ảnh gốc

Để trích bít đã nhúng b và khôi phục cặp điểm ảnh gốc (x,y) từ cặp

điểm ảnh được thực hiện theo các bước:

Bƣớc 1: Tính

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Bƣớc 3: Khôi phục cặp điểm ảnh (x,y)

b) Nhúng tin và khôi phục đối với (x,y) khả biến

Với cặp điểm ảnh (x,y) không khả mở nhưng khả biến thì thuật toán nhúng tin là không thuận nghịch. Để thuật toán thành thuận nghịch thì ta cần lưu lại bít thấp của hiệu (h) trong quá trình nhúng tin.

Thuật toán nhúng

Việc nhúng bít b vào cặp điểm ảnh khả biến (x,y) để nhận được cặp

điểm ảnh được thực hiện theo các bước sau:

Bƣớc 1: tính

, lưu lại bít thấp của h

Bƣớc 2: Nhúng tin

Thuật toán trích tin và khôi phục cặp ảnh gốc

Để trích bít đã nhúng b và khôi phục cặp điểm ảnh gốc (x,y) từ cặp

điểm ảnh được thực hiện theo các bước:

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Bƣớc 2: trích bít dữ liệu

Bƣớc 3: Khôi phục cặp điểm ảnh (x,y)

Nhận xét 2: Nếu (x,y) khả mở và nhúng theo thuật toán khả mở thì khả biến

Nhận xét 3: Nếu (x,y) khả biến và nhúng theo thuật toán khả biến thì

Một phần của tài liệu thủy vân thuận nghịch sử dụng phép biến đổi mở rộng hiệu (Trang 31 - 69)