Tóm lại, DCT làm giảm độ tương quan khơng gian của thơng tin trong khối ảnh. Điều đó, cho phép biểu diễn thích hợp ở miền DCT do các hệ số DCT có xu hướng có phần dư thừa ít hơn. Hơn nữa, các hệ số DCT chứa thông tin về nội dung tần số không gian của thông tin trong khối. Nhờ các đặc tính tần số khơng gian của hệ thống nhìn của mắt người, các hệ số DCT có thể được mã hóa phù hợp, chỉ các hệ số DCT quan trọng nhất mới được mã hóa để truyền đi.
Khối hệ số DCT có thể chia thành ba miền, miền tần số thấp, chứa các thông tin quan trọng ảnh hưởng đến tri giác, miền tần số giữa, và miền tần số cao. Các thông tin trong miền tần số cao thường khơng mang tính tri giác cao, khi nén JPEG
thì thường loại bỏ thơng tin trong miền này. Hình 2.2 dưới đây mơ tả sự phân chia ba miền tần số của phép biến đổi DCT.
Trong các thuật toán thủy vân, miền hệ số DCT tần số cao thường khơng được sử dụng do nó thường không bền vững với các phép xử lý ảnh hoặc nén ảnh JPEG. Miền tần số thấp cũng khó được sử dụng do một sự thay đổi dù nhỏ trong miền này cũng ảnh hưởng đến chất lượng tri giác của ảnh. Vì vậy, miền tần số ở giữa thường hay được sử dụng nhất và cũng cho kết quả tốt nhất.
(a)
(b)
(c)
Hình 2.2. Phân chia 3 miền tần số của phép biến đổi DCT (a) Miền tần số thấp, (b) miền tần số ở giữa, (c) miền tần số cao
2.3.3. Phép biến đổi sóng nhỏ - Descrete Wavelet Transform (DWT)
Ý tưởng của DWT cho tín hiệu một chiều như sau: tín hiệu được chia thành 2 phần, phần tần số cao và phần tần số thấp. Thành phần tần số thấp lại được chia tiếp thành hai phần có tần số cao và thấp. Với các bài tốn nén và thủy vân thường áp dụng không quá năm lần bước phân chia trên. Ngồi ra, từ các hệ số DWT, ta có thể tạo lại ảnh ban đầu bằng q trình DWT ngược hay IDWT.
Có thể mơ tả bằng tốn học DWT và IDWT như sau. Đặt
k jkw ke h H() , và jkw k ke g
G() là lọc thông thấp và lọc thông cao tương ứng, mà thỏa mãn một vài điều kiện cho việc tái xây dựng ảnh ban đầu. Một tín hiệu F(n) có thể được phân tích đệ quy như sau:
) ( ) ( 2 1 k h f n f n j k n low j và f 1 (k) g 2 fj(n) n k n high j (2.5)
với j=J+1, J,…, J0 với fj+1(k)=F(j), kZ, J+1 là chỉ số mức phân giải cao con J0 là chỉ số mức phân giải thấp. Các hệ số: ( ), ( ), ( ),..., ( ) 0 0 0 0 k f k f 1 k f k f high J low J high J low J được gọi
là các hệ số của tín hiệu F(n), với ( )
0 k
fJlow là phần tử nhỏ nhất (xấp xỉ) của F(n) và
) (k
fJhigh là phần chi tiết của F(n) tại các dải tần khác nhau. Tín hiệu ban đầu F(n) được xây dựng lại từ các hệ số DWT bằng cách đệ quy như sau:
) ( . . ) (n h 2 f 1 g 2 f 1 k f jhigh k k n k j k k n low J (2.6)
Để đảm bảo quan hệ giữa DWT và IDWT, H() và G()phải thỏa mãn điều kiện trực giao sau : |H()|2 + |G()|2=1.
Biến đổi DWT và IDWT cho mảng hai chiều MxN được định nghĩa tương tự bằng cách thực hiện các biến đổi một chiều DWT và IDWT cho mỗi chiều tương ứng.
Trong hình sau, sau hai lần thực hiện phép biến đổi DWT, ta thu được bảy băng tần con. Các tần số thấp (đạt được bằng lọc thông thấp liên tiếp) tập trung ở góc trái trên và trơng giống như một ảnh thu nhỏ của ảnh gốc, vì vậy dải phụ này còn được gọi là băng tần chi tiết cịn lại.
H ì n h 2 .3. Cấu trúc phân tích và ảnh nhận được qua phép biến đổi sóng nhỏ hai chiều
Biến đổi sóng nhỏ có rất nhiều lợi thế so với các biến đổi khác đó là: L L xấp xỉ H L2 HL1 chi tiết ngang L H2 H H2 LH1 chi tiết dọc HH1 chi tiết chéo
- Biến đổi sóng nhỏ là một mơ tả đa độ phân giải của ảnh. Q trình giải mã có thể được xử lý tuần tự từ độ phân giải thấp cho đến độ phân giải cao.
- Biến đổi DWT gần gũi với hệ thống thị giác người hơn biến đổi DCT. Vì vậy, có thể nén với tỉ lệ cao bằng DWT mà sự biến đổi ảnh khó nhận thấy hơn nếu trùng DCT với tỉ lệ tương tự.
2.4. Các phƣơng pháp giấu tin thuận nghịch
2.4.1. Phƣơng pháp giấu thuận nghịch dựa trên biến đổi sóng kỹ thuật số Haar (HDWT).
Mục tiêu của phương pháp này là trình bày một phương pháp giấu tin thuận nghịch với khả năng cung cấp tải trọng (payload) cao trong khi giữ ảnh giấu tin với chất lượng ảnh trực quan tốt.
Phương pháp biến đổi wavelet kỹ thuật số Haar (HDWT) chuyển đổi một ảnh miền không gian thành một ảnh miền tần số mà bao gồm cả các dải tần số khác nhau. Các hệ số trong dải tần số thấp mô tả các cấu trúc biểu hiện của ảnh, trong khi những dải tần số cao chỉ ra các kết cấu nhỏ của ảnh. Kết quả là, khi các hệ số tần số thấp được biến đổi, thì thị giác có thể chú ý quan sát những thay đổi đó trên ảnh miền khơng gian. Ngược lại, nếu các hệ số tần số cao được thay đổi thì thị giác khó nhìn thấy và sẽ khơng nhận thấy được những thay đổi một cách dễ dàng. Phương pháp đưa ra sự biến đổi wavelet rời rạc Haar (HDWT) là biến đổi ảnh miền không gian thành ảnh miền tần số và sau đó sử dụng hệ số tần số cao để giấu dữ liệu bí mật. Nói chung, phần lớn các hệ số tần số cao gần với 0. Dựa trên thuộc tính này, các hệ số tần số cao đủ mạnh để nén bằng phương pháp mã hóa Huffman (hay số học). Kết quả là, chỉ một dung lượng rất nhỏ để giữ các dữ liệu nén để mà các hệ số tần số cao ban đầu có thể được phục hồi.
2.4.1.1. Biến đổi wavelet rời rạc Haar
Phương pháp biến đổi wavelet rời rạc (DWT) hai chiều (2D) là một trong những kỹ thuật quan trọng nhất trong việc biến ảnh miền không gian thành ảnh miền tần số. HDWT được thực hiện bằng hai qui trình: (1) thao tác ngang và (2) thao tác dọc.
Trước tiên, các thao tác nằm ngang được sử dụng để phân tích một ảnh vào dải tần số thấp L và dải tần số cao H.
Hình 2.4. Phân tích một khối của HDWT mức 1. (a) khối 10x10 vào ảnh ''Lena". (b) Các hệ số của dải tần số LL, HL, LH, và HH của khối trong (a) Thứ hai là sử dụng thao tác theo pha dọc, L và H có thể được chia thành các dải tần số khác LL, LH, và HL, HH một cách tương ứng, mỗi dải tần số chiếm 1/4 kích thước ảnh gốc. HH đại diện cho dải tần số cao, LL là dải tần số thấp, LH và HL là những dải tần số trung. Các hệ số trong LL thì cao. Nếu bất kỳ hệ số nào trong dải tần số LL được thay đổi, thì việc quan sát có thể thấy rõ ràng là ảnh miền khơng gian đã bị thay đổi. Thị giác không nhạy cảm với sự thay đổi của các hệ số HDWT trong HH. Vì lý do này, khi có bất kỳ hệ số trong HH thay đổi thì việc quan sát rất khó có thể phân biệt sự thay đổi trong ảnh miền khơng gian.
Hình 2.5. Các HHS, HHI, và HHD của các hệ số từ HH trong hình 2.4b.
2.4.1.2. Phƣơng pháp giấu tin
Theo phân tích của HDWT mức 1, phương pháp giấu tin thuận nghịch dựa trên HDWT biến đổi ảnh gốc miền không gian fc thành một ảnh gốc miền tần số fhc, bao gồm bốn dải tần số khác nhau LL, LH, HL, và HH. Dải tần số thấp mô tả các liên kết cơ bản của fc. Nếu bất kỳ hệ số trong dải tần số thấp được thay đổi thì nội dung fc sẽ thay đổi đáng kể. Các dải tần số cao minh họa cấu trúc chi tiết của fc. Kết quả là, chỉ có kết cấu chi tiết của fc bị ảnh hưởng nếu các hệ số HDWT trong dải tần số cao bị phá huỷ. Để giữ sự tương tự cao giữa ảnh giấu tin và ảnh gốc miền không gian fc, phương pháp này sẽ giấu dữ liệu ẩn S chỉ trong dải tần HH.
Hình 2.7. HDWT dựa trên ảnh miền tần số của fc trong hình 2.6
Hình 2.8. Các dải tần HH, HHS, HHI, và HHD của fhc.
Do thực tế hầu hết các hệ số trong dải tần số cao cận 0, chúng có thể được mã hóa hiệu quả bởi phương pháp mã hóa Huffman (hay số học). Trên thực tế, dữ liệu nén có thể được giữ một lượng nhỏ của khơng gian bộ nhớ. Để đảm bảo rằng ảnh gốc có thể được khơi phục khơng mất thơng tin, phương pháp đưa ra các hệ số nén của HH bằng phương pháp mã hoá Huffman (hay số học) và cũng như ẩn dữ liệu nén trong HH. Phương pháp này có thể giấu dữ liệu bí mật thành cơng và cũng khơi phục lại hoàn toàn các hệ số của HH thông qua các dữ liệu nén ẩn.
Phương pháp giấu tin thuận nghịch dựa trên HDWT chứa hai giai đoạn: một là giai đoạn nhúng và hai là giai đoạn khơi phục và rút trích. Giai đoạn nhúng ẩn dữ liệu bí mật và dữ liệu nén trong ảnh gốc. Giai đoạn khôi phục và giải nén khôi phục lại ảnh gốc hoàn toàn và lấy các dữ liệu bí mật từ ảnh giấu tin ra ít ảnh hưởng đến ảnh gốc. Sau đây là mô tả hai giai đoạn cụ thể.
a. Giai đoạn nhúng
Cho S là một chuỗi các dữ liệu bí mật nhị phân và fc là khối mxn điểm ảnh. Do đó, mỗi dải tần LL, HL, LH, và HH gồm (m/2) x (n/2) điểm ảnh.
Hình 2.4 cho thấy các hệ số của dải tần LL, HL, LH, và HH trong một khối 10x10 của ảnh ''Lena". Phương pháp giấu tin thuận nghịch dựa trên HDWT chia tách tất cả các hệ số trong dải tần HH thành ký hiệu, số nguyên, và các phân đoạn thập phân. Những phân đoạn được ghi lại riêng lẻ trong ba ma trận khác nhau với cùng kích thước như HH: (1) các dấu hiệu ma trận HHS, (2) các ma trận số nguyên HHI, và (3) các ma trận thập phân HHD. Hình 2.5 cho thấy HHS, HHI, và HHD của các hệ số của HH trong hình 2.4b và biểu lộ rằng các số nguyên của các hệ số trong HH thì cận 0. Tại thời điểm này, vì lẽ đó những dấu hiệu tích cực và tiêu cực là tương ứng thể hiện ở chỉ số 0 và 1. Các biểu đồ cũng chỉ ra rằng các số nguyên của các hệ số trong HH thì cận tới 0.
Các hệ số trong dải tần HH có đặc trưng là rất nhỏ. Tuy nhiên, tại mỗi thời điểm, các hệ số lớn có thể xuất hiện, chẳng hạn như các hệ số tương ứng với các cạnh cắt - xoá trong ảnh gốc. Ngồi ra, phương pháp mã hóa Huffman (hay số học) sẽ tạo ra một bảng mã Huffman lớn (hay số học) để mã hóa các hệ số lớn. Điều này địi hỏi khả năng ẩn rất cao về việc che giấu các dữ liệu nén. Vì những lý do này,
phương pháp giấu tin thuận nghịch HDWT chỉ sử dụng các hệ số có giá trị nhỏ để che giấu các dữ liệu bí mật.
Sau khi giấu dữ liệu nén và dữ liệu bí mật trong các hệ số của dải tần HH, việc đảo ngược lại từ ảnh giấu tin miền tần số trở lại với ảnh miền khơng gian có thể gây ra vấn đề vượt ngưỡng trên và ngưỡng dưới. Bởi vì việc đảo ngược này, một số điểm ảnh màu sẽ lớn hơn 255 hoặc nhỏ hơn 0, đặc biệt là khi các điểm màu trong ảnh gốc miền không gian đến gần 255 hoặc 0. Để giải quyết vấn đề này, thì phương pháp giấu tin thuận nghịch dựa trên HDWT tạo ra hai ngưỡng là Tl và Tu. Nếu bất kỳ hệ số của LL nhỏ hơn Tl hoặc lớn hơn Tu, thì hệ số khơng thể được sử dụng để mang dữ liệu bí mật vì vấn đề vượt ngưỡng trên hoặc vượt ngưỡng dưới có thể xảy ra.
Để tập hợp các giá trị trong dải tần HHI cho việc giấu các dữ liệu bí mật và nén dữ liệu, đầu tiên phương pháp giấu dữ liệu thuận nghịch dựa trên HDWT đặt Tl = 0 và Tu = 255. Sau đó nó quét mỗi số nguyên HHI [i, j] trong HHI và các bit có trọng số nhỏ T của HHI [i, j] bị sao chép vào một tập ED nếu Tl <= LL[i,j] <= Tu.
For i = 1 to m/2 For j = 1 to n/2
If (Tl <= LL[i, j] <= Tu) then thêm các bit có trọng nhỏ nhất T của HHI[i,j] vào
phía sau của tập ED.
Thứ hai, để mã hóa tập ED sử dụng phương pháp mã hóa Huffman (hoặc số học). Điều này tạo ra hai nhóm dữ liệu: một là bảng Huffman (hay số học) HT và hai là mã số Huffman (hay số học) HC. Mỗi mục trong HT tương ứng với một mã Huffman (hay số học) c. Mã số c chứa một cặp dữ liệu (s, c), ở đó kích thước │s│của s bằng các bít T và s = ( log2│c│) cho thấy rằng │c│= 2s
bit. Bởi vì mỗi mã c nhỏ hơn 2T, hồn tồn tiếp nhận có 2T
trong HT, c trong các cặp dữ liệu 0th là
mã Huffman (hay số học) của dữ liệu đã cho, mà giá trị thập phân là 0, trong cặp dữ liệu thứ nhất là mã số Huffman (hay số học) của dữ liệu đã cho có giá trị thập phân là 1, và cứ tiếp tục như vậy. HC được tạo ra bằng cách thay thế từng dữ liệu trong ED bằng mã Huffman (hay số học) tương ứng của nó.
Thứ ba, HT và HC được nối vào một chuỗi nhị phân CD. Trong quá trình nhúng dữ liệu, đầu tiên phương pháp đưa ra liên kết với chuỗi nhị phân CD,
│S│của S thành một chuỗi nhị phân HD sẽ được giấu trong dải tần HH của fhc. Để ngăn chặn truy cập trái phép từ việc chỉ ra bất kỳ thơng điệp nào trong các dữ liệu bí mật, phương pháp này có một khố riêng PK, với hơn 512 bit, phát sinh số ngẫu nhiên G. Điều này được thực hiện để tạo ra một trình tự của chuỗi nhị phân K, khi đó │K│ = │HD│. Phương pháp này sau đó tính tốn HD' = K HD, Dải tần HD' sau đó ẩn trong các bit có trọng số nhỏ T của dữ liệu trong HHI bằng bit. Quá trình ẩn là
For i = 1 to m/2 For j = 1 to n/2
Nếu (Tl ≤ LL [i, j] ≤ Tu) và (HHI [i, j] <2T) thì sau đó dịch chuyển các bit T từ phía trái u từ HD’ và thay thế các bit quan trọng nhỏ nhất T của HHI [i, j] bằng u. sau đó kết hợp HHS, HHI, và HHD tạo thành một HH’ mới.
Quá trình sát nhập là For i = 1 to m/2 For j = 1 to n/2
HH[i, j] = HHI[i, j] + HHD[i, j]
Một ví dụ về cách thực hiện thủ tục nhúng được thể hiện trong hình 2.6. Hình này cho thấy các điểm ảnh của một ảnh gốc fc cỡ 16x16. Hình 2.7 giải thích những ảnh miền tần số fhc của fc thu được bằng phân tích HDWT mức một và hình 2.8 cho thấy các dải tần HHS, HHI, và HHD chiết xuất từ dải tần HH của fhc. Rõ ràng là các dữ liệu bí mật S = {10011101001100100110100011110010} và 6 bit được sử dụng để mô tả │S│với S = 100000 và T = 2. Vì lý do này, ED = {0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 1, 1, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}. Sau khi mã hóa ED bằng phương pháp mã hóa Huffman (Hoặc số học) hai nhóm dữ liệu là HT = {(00, 0), (01,10), (10110), (10111)} cũng như HC = {0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 10,0, 0, 0, 10,0,111,0, 0 , 0, 0, 0, 0, 0, 0, 10,110,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0,0} được tạo ra.
Vì thế CD = {000011010110101110000000000000000000000011100000000101100000000000 00000000 000000}. CD, │S│, và S được tích hợp vào HD = {000011010110101110000001010000100111000000001011000000 000000000000000000010000010011101001100100110100011110010}. Đầu tiên bộ phát số ngẫu nhiên G tạo ra một chuỗi nhị phân K ={01101010100110010011011011010001110100011010001011110010011100101 00101101100110110010100100111001}, và sau đó HD’ = K HD = {010101101101101000111010000111100001001101110101110010110011000101 111001001100010110110000101010010100000111001011}.
Sau đó HD' được ẩn trong các bit quan trọng nhỏ nhất T của các hệ số trong dải tần HHI. Cuối cùng, các dải tần LL, LH, HL, và HH’ được kết hợp vào ảnh giấu tin miền không gian fst, bằng cách của HDWT đảo ngược.
b. Giai đoạn phục hồi và trích rút dữ liệu