TỔNG QUAN KỸ THUẬT THỦY VÂN SỐ
Ứng dụng thủy vân số
Kỹ thuật thủy vân có nhiều ứng dụng khác nhau, với sức chụi đựng đề cập đến khả năng phát hiện thủy vân sau khi tín hiệu trải qua các quá trình như nén mất mát, in ấn, quét và biến dạng hình học Không phải tất cả các ứng dụng đều yêu cầu sức chụi đựng cao, nhưng mức độ chụi đựng của thủy vân sẽ khác nhau tùy vào mục đích sử dụng Ví dụ, trong bảo vệ quyền tác giả, thủy vân cần phải mạnh mẽ để chống lại các sửa đổi, trong khi ứng dụng nội dung xác thực chỉ cần thủy vân dễ vỡ để phát hiện ngay cả những thay đổi nhỏ nhất.
1.3.1 Bảo vệ quyền tác giả
Các vấn đề về bảo vệ quyền tác giả đang ngày càng trở nên quan trọng, đặc biệt là trong bối cảnh ứng dụng thủy vân Mục tiêu chính của thủy vân là nhúng thông tin vào các mã nguồn để xác định quyền sở hữu tác giả, từ đó đảm bảo sự công bằng trong quyền sở hữu Để đạt được điều này, thủy vân cần phải rõ ràng và không mập mờ, ngay cả khi các bên khác cũng áp dụng thủy vân Các ứng dụng này đang trở nên thiết yếu trên các trang web toàn cầu, nơi có hàng triệu hình ảnh thiếu tài liệu tham khảo cho quyền sở hữu.
Việc kiểm tra hình ảnh phổ biến trong nghiên cứu xử lý hình ảnh, như bức ảnh của Lena Sjooblom (hình 1.2), không tham khảo chủ sở hữu hợp pháp Bức ảnh này lần đầu tiên xuất hiện trong tạp chí Playboy và đã bị cắt xén, chỉ còn lại mặt và vai bên trái, cùng với việc gỡ bỏ thông báo bản quyền Nhiều nhà nghiên cứu sử dụng hình ảnh này không nhận thức được việc vi phạm bản quyền của Playboy Playboy đã quyết định giám sát việc sử dụng rộng rãi hình ảnh này.
Lấy dấu vân tay liên quan đến việc nhúng thủy vân vào mỗi bản sao phân tán nhằm xác định phân phối duy nhất của dữ liệu Ứng dụng này tập trung vào việc cung cấp thông tin pháp lý, hỗ trợ giám sát và theo dõi việc sản xuất bất hợp pháp các bản sao dữ liệu, tương tự như số sê-ri sản phẩm phần mềm Để đảm bảo hiệu quả, thủy vân trong ứng dụng cần đạt tiêu chuẩn cao về độ chắc chắn, chống lại việc xử lý dữ liệu và các tấn công ác hiểm.
Việc sử dụng bản sao được bảo vệ để ngăn chặn sao chép trái phép phương tiện truyền thông là rất quan trọng Trong các hệ thống đóng, việc áp dụng các biện pháp bảo vệ như thủy vân có thể thực hiện được, cho phép xác định xem dữ liệu có thể được sao chép hay không Ví dụ, trong hệ thống DVD, thông tin sao chép được nhúng dưới dạng thủy vân; nếu có thủy vân "copy never", đầu DVD sẽ không cho phép sao chép, trong khi thủy vân "copy once" cho phép sao chép một lần duy nhất Mặc dù đây là một phương pháp hiệu quả để bảo vệ dữ liệu khỏi việc sao chép bất hợp pháp, nhưng việc thực hiện trên thực tế vẫn gặp nhiều khó khăn.
KỸ THUẬT NÉN ẢNH JPEG2000
Khái niệm nén ảnh
- Nén là quá trình làm giảm thông tin dư thừa trong dữ liệu gốc
Hình 2.1 ảnh ban đầu(a) và ảnh sau khi nén(b)
Nén ảnh giúp giảm kích thước tệp, rút ngắn thời gian truyền tải và tiết kiệm chi phí xử lý, đồng thời vẫn đảm bảo chất lượng hình ảnh tốt.
Sự ra đời của JPEG2000
Vào tháng 12 năm 1999, một bản phác thảo tiêu chuẩn nén hình ảnh mới mang tên JPEG2000 đã được giới thiệu, nhằm thay thế cho chuẩn nén ảnh tĩnh JPEG, với mục tiêu nâng cao hiệu quả nén ảnh.
- Tháng 8/2000, bản phác thảo về tiêu chuẩn JPEG2000 đã được lưu hành trong giới chuyên gia hình ảnh
- JPEG-2000 sử dụng kỹ thuật mã hóa dạng sóng rời rạc (DWT – Descrete Wavelet Transform) dùng mã số học.
Các tính năng của JPEG2000
JPEG2000 sở hữu nhiều chức năng vượt trội hơn so với các chuẩn nén ảnh tĩnh khác như JPEG và GIF Dưới đây là những ưu điểm nổi bật của JPEG2000 so với các định dạng nén ảnh tĩnh khác.
Cho chất lượng ảnh tốt nhất khi áp dụng nén ảnh tĩnh có tổn thất
Sử dụng được với truyền dẫn và hiển thị lũy tiến về chất lượng, độ phân giải, các thành phần màu và có tính định vị không gian
Sử dụng cùng một cơ chế nén ảnh cho cả hai dạng thức nén
Truy nhập và giải nén tại mọi thời điểm trong khi nhận dữ liệu
Giải nén từng vùng trong ảnh mà không cần giải nén toàn bộ ảnh
Có khả năng mã hóa với tỷ lệ nén theo từng vùng khác nhau
Nén một lần nhưng có thể giải nén với nhiều cấp chất lượng tùy theo yêu cầu của người sử dụng.
Các bước thực hiện nén ảnh theo chuẩn JPEG2000
Hình 2.2 Trình tự mã hóa và giải mã JPEG2000
2.4.1 Xử lí trước khi biến đổi
Để sử dụng biến đổi Wavelet trong JPEG2000, dữ liệu ảnh đầu vào cần phải có dạng đối xứng qua 0 Giai đoạn xử lý trước biến đổi là rất quan trọng để đảm bảo dữ liệu nén ảnh đạt yêu cầu này Trong quá trình giải mã, giai đoạn xử lý sau biến đổi sẽ khôi phục giá trị gốc của dữ liệu ảnh.
2.4.2 Biến đổi liên thành phần
Giai đoạn này loại bỏ tính tương quan giữa các thành phần của ảnh bằng cách sử dụng hai loại biến đổi liên thành phần trong JPEG2000: biến đổi thuận nghịch (RCT) và biến đổi không thuận nghịch (ICT) RCT làm việc với các giá trị nguyên, trong khi ICT xử lý các giá trị thực Cả hai biến đổi này chuyển dữ liệu ảnh từ không gian màu RGB sang YCrCb, với RCT được áp dụng cho nén có tổn thất nhằm tăng hiệu quả nén Các thành phần Cr và Cb ít ảnh hưởng đến cảm nhận hình ảnh của mắt, trong khi thành phần độ chói Y có tác động lớn hơn, như minh họa trong hình 2.3.
Hình 2.3 Minh họa ảnh với RGB và YcrCb
2.4.3 Biến đổi riêng thành phần (biến đổi Wavelet)
Biến đổi Wavelet là phương pháp chính được áp dụng trong JPEG2000, nhằm đảm bảo tính toàn vẹn thông tin thông qua các phép biến đổi thuận nghịch hoặc không thuận nghịch Khác với biến đổi DCT, biến đổi Wavelet không phải là một phép biến đổi trực giao mà là một phép biến đổi băng con, cho phép phân chia các thành phần thành các băng tần số khác nhau để mã hóa riêng biệt JPEG2000 sử dụng biến đổi Wavelet nguyên thuận nghịch 5/3 (IWT) và biến đổi thực không thuận nghịch Daubechies 9/7, với việc tính toán được thực hiện theo phương pháp Lifting.
Phương pháp Lifting ID trong JPEG2000 được thể hiện qua sơ đồ ở hình 2.4, cho thấy cách tính toán biến đổi Wavelet ID 2D dựa trên biến đổi Wavelet ID theo các phương pháp phân giải ảnh tùy chọn JPEG2000 cung cấp ba phương pháp giải ảnh, trong đó phương pháp kim tự tháp là phương pháp phổ biến nhất.
Hình 2.4 Phương pháp Lifting 1D dùng tính toán biến đổi Wavelet
Biến đổi Wavelet 5/3 là một phương pháp biến đổi thuận nghịch, cho phép nén ảnh theo cả hai phương pháp có tổn thất và không tổn thất Trong khi đó, biến đổi Wavelet 9/7 chỉ được áp dụng cho nén ảnh theo phương pháp có tổn thất thông tin.
2.4.4 Lƣợng tử hóa – Giải lƣợng tử hóa
Các hệ số của phép biến đổi sẽ được tiến hành lượng tử hóa để đạt tỉ lệ nén cao hơn, thể hiện các giá trị biến đổi với độ chính xác cần thiết cho các mức chi tiết của ảnh Việc lượng tử hóa sẽ được thực hiện theo phép lượng tử hóa vô hướng, với các hàm lượng tử hóa khác nhau được áp dụng cho các băng con khác nhau.
Trong quá trình lượng tử hóa, ∆ đại diện cho bước lượng tử, U(x, y) là giá trị băng con đầu vào, và V(x, y) là giá trị sau khi lượng tử hóa Đối với dạng biến đổi nguyên, bước lượng tử được xác định là 1, trong khi với dạng biến đổi thực, bước lượng tử được chọn phù hợp cho từng băng con riêng biệt Do đó, bước lượng tử của mỗi băng cần được truyền đi trong dòng bit để phía thu có thể thực hiện quá trình giải lượng tử cho ảnh.
Công thức giải lượng tử hóa là :
Trong JPEG2000, tham số r xác định dấu và quá trình làm tròn, với các giá trị U(x, y) và V(x, y) tương ứng là giá trị khôi phục và giá trị lượng tử hóa Mặc dù JPEG2000 không quy định giá trị r cụ thể, nhưng thường thì r được chọn là ẵ.
2.4.5 Mã hóa và kết hợp dòng dữ liệu sau mã hóa
JPEG2000, theo khuyến nghị của ủy ban JPEG quốc tế, sử dụng nhiều phương pháp mã hóa và biến đổi Wavelet khác nhau để đạt được chất lượng ảnh tối ưu cho từng ứng dụng Điều này mang lại tính linh hoạt cao hơn so với JPEG Các phương pháp mã hóa này cũng được áp dụng trong nén ảnh động bằng biến đổi Wavelet, với hai phương pháp chủ yếu là SPIHT và EZW Hiện tại, JPEG2000 vẫn sử dụng hai phương pháp này cùng với một phương pháp phát triển từ chúng là mã hóa mặt phẳng bit Sự kết hợp dòng dữ liệu sau mã hóa của JPEG2000 nhằm thực hiện các tính năng đặc biệt như tính năng ROI.
2.4.6 Phương pháp mã hóa SPIHT
Trong quá trình áp dụng biến đổi Wavelet và các phương pháp phân giải ảnh, các băng con có thứ tự thấp chứa các thành phần tần số cao, mang lại thông tin chi tiết về ảnh, trong khi các băng con có thứ tự cao hơn lại chứa các thành phần tần số thấp, cung cấp thông tin chính về ảnh Điều này cho thấy rằng các hệ số chi tiết sẽ giảm dần từ băng con mức thấp (như HH1) đến băng con mức cao, phản ánh sự tương đồng về không gian giữa các băng con.
Phương pháp SPIHT (Set Partitioning in Hierarchical Trees) được phát triển để tối ưu hóa việc truyền dẫn lũy tiến trong mã hóa hình ảnh Điều này cho phép chất lượng ảnh hiển thị tại mỗi thời điểm giải nén là tốt nhất có thể với số lượng bit đã giải mã cho đến thời điểm đó Ngoài ra, SPIHT áp dụng kỹ thuật embedded coding, cho phép một ảnh nén với kích cỡ lớn chứa dữ liệu của ảnh nén với kích cỡ nhỏ, giúp bộ mã hóa chỉ cần nén một lần nhưng có thể giải nén ra nhiều mức chất lượng khác nhau.
Giả sử các pixel trong một ảnh p cần mã hóa được ký hiệu là pi,j Bằng cách áp dụng một phép biến đổi Wavelet T cho các pixel này, ta thu được các hệ số Wavelet ci,j Những hệ số này sẽ tạo ra một ảnh biến đổi.
C Phép biến đổi này được viết dưới dạng toán tử như sau: C=T(p) Trong phương pháp truyền dẫn lũy tiến với ảnh thì bộ mã hóa sẽ bắt đầu quá trình khôi phục (giải nén) ảnh bằng cách đặt các giá trị của ảnh khôi phục từ các hệ số biến đổi là ĉ Sử dụng các giá trị giải mã của các hệ số biến đổi để tạo ra một ảnh khôi phục (vẫn chưa áp dụng biến đổi ngược Wavelet) là ĉ và sau đó áp dụng biến đổi Wavelet để tạo ra ảnh cuối cùng là pt với pt = T -1 (ĉ)
Phương pháp truyền dẫn ảnh lũy tiến, đặc biệt là SPIHT, tập trung vào việc truyền các giá trị thông tin quan trọng nhất để giảm thiểu độ méo của ảnh Nguyên tắc chính của phương pháp này là ưu tiên truyền các hệ số lớn trước, vì chúng mang thông tin quan trọng nhất trong dữ liệu nhị phân SPIHT sắp xếp các hệ số biến đổi và truyền các bit có trọng số lớn nhất, cho phép quá trình giải mã diễn ra tại bất kỳ bước nào tương ứng với giá trị ảnh cần mã hóa Đây là cách mà phương pháp mã hóa SPIHT thực hiện việc tổn thất thông tin.
2.4.7 Phương pháp mã hóa EZW
Phương pháp mã hóa EZW (Embedded Zerotree Wavelet Encoder) sử dụng kỹ thuật mã hóa lũy tiến tương tự như SPIHT, với trọng tâm là khái niệm về cây zero Thuật toán này dựa trên hai nguyên tắc cơ bản đã được trình bày trong phương pháp mã hóa SPIHT, tạo ra một cách tiếp cận hiệu quả trong việc nén dữ liệu hình ảnh.
KỸ THUẬT GIẤU THỦY VÂN
Thủy vân số trong DWT
Hình 3.1 Hai lần phân tách wavelet
Sự phân giải của sóng có thể được tối ưu hóa bằng thuật toán hình chóp thông qua việc kết hợp hai bộ lọc low-pass và high-pass Quá trình này phân tích ảnh thành bốn dải tần số: thấp-thấp (LL), thấp-cao (LH), cao-thấp (HL) và cao-cao (HH) Trong dải LL, chất lượng ảnh giảm sút, trong khi dải HH có thể khiến thông tin bị giấu dễ bị phát hiện và gây nguy hiểm Thủy vân số thường được nhúng vào các dải tần số trung gian như HL hoặc LH Quá trình xử lý có thể được lặp lại nhiều lần theo yêu cầu của người dùng Ngoài ra, từ các hệ số DWT, ảnh gốc có thể được khôi phục thông qua quá trình đảo ngược DWT (IDWT).
Sự tương quan giữa các hệ số các dải giữa với sự biến đổi cấp xám
Các dải LH và HL, được gọi là các dải ở giữa, chứa thông tin chi tiết về một chiều cùng với các thông tin suy ra từ các chiều khác Nghiên cứu thực nghiệm đã chỉ ra mối quan hệ giữa các hệ số của dải giữa và sự biến đổi cấp xám, dựa trên cơ sở trực giao Harr.
Hình 3.2 trình bày hai ảnh cấp xám baboon (256x256) và lena (512x512) sau khi thực hiện cân bằng mức xám, cho thấy sự khác biệt rõ rệt Chỉ số PSNR được sử dụng để đo lường sự khác biệt giữa các ảnh đã chỉnh sửa và ảnh gốc PSNR được định nghĩa như một chỉ số quan trọng trong việc đánh giá chất lượng hình ảnh.
Với MSE là số các ô lỗi giữa ảnh gốc và ảnh đã biến đổi
Hình 3.2 cho thấy quy trình cân bằng mức xám, trong đó ảnh đã được phân giải gấp đôi và lựa chọn các dải LH2 và HL2 để kiểm tra độ tương quan giữa các hệ số trước và sau khi biến đổi Độ tương quan được định nghĩa như sau:
Trong các dải HL và LH, thông tin thường được ẩn giấu trong các hệ số ít quan trọng, giúp bảo vệ chúng khỏi các cuộc tấn công vào ảnh Hệ số này được sử dụng để đo mối tương quan, với một cặp dải tần số trung gian nằm ở cùng vị trí trong dải HL và LH, như thể hiện trong hình 3.3 Tỉ lệ giữa các giá trị trước và sau khi bị tấn công được sử dụng để chứng minh sự thay đổi của hệ số tại vị trí (i, j): cong trước j i LH ABS cong sau j i LH j ABS i LH.
Chúng ta có thể tính toán tỷ lệ giữa Ratio(LH2(I, j)) và Ratio(Hl2(I, j)) trong số các hệ số của ảnh Baboon sau khi đã cân bằng histogram Các hệ số này đại diện cho những yếu tố ít quan trọng nhất, như thể hiện trong hình 3.4.
Hình 3.4 Mối quan hệ cặp dải trung gian LH2 và HL2 sau khi cân bằng Histogram
Dưới tác động của các cuộc tấn công, sự thay đổi của cặp tần số trung gian cho thấy mối tương quan khác nhau Khi mức độ tấn công giảm, tỷ lệ trung bình Ratio(LH2(I,j)) của một nửa các hệ số lớn nhất đạt 0.8368, trong khi tỷ lệ trung bình Ratio(HL2(i,j)) là 0.8461 Ngược lại, khi mức độ tấn công tăng, tỷ lệ trung bình Ratio(LH2(I,j)) của một nửa các hệ số lớn nhất tăng lên 1.2621, và tỷ lệ trung bình Ratio(HL2(i,j)) cũng tăng lên 1.2300.
Thuật toán nhúng và tách thủy vân
Sử dụng một hệ số trong cặp tần số trung gian làm mức để lượng tử hóa hệ số còn lại Bước lượng tử hóa là một phần cố định của hệ số lớn hơn, trong khi hệ số nhỏ hơn được lượng tử hóa dựa trên bước này.
Hình 3.5 Lượng tử hóa cặp tần số dải trung gian
3.3.2 Kỹ thuật nhúng thủy vân
Bước 1: Thủy vân là một ảnh nhị phân Ảnh gốc được tách thành 2 mức
Nhúng thủy vân vào các dải LH2 và HL2 Giả sử kích thước của LH2 là m X n và của thủy vân là r X l Thủy vân được nhúng ít nhất là [ m X n / r X l ] lần
Bước 2 : Đặt T là ngưỡng cho các hệ số nhỏ,nó là hệ số lớn nhất trong
1/3 các hệ số nhỏ nhất của tất cả các hệ số trong dải tần LH2 và
HL2 là khoảng cách cố định và D là số chia cố định Thủy vân được nhúng vào dải LH2 và HL2 cho đến khi tất cả các hệ số được lượng tử hóa Vị trí (i, j) được lượng tử hóa theo 1 bit thủy vân; nếu bit này bằng 1, hệ số sẽ được làm tròn đến số lẻ gần nhất, còn nếu bằng 0, nó sẽ được làm tròn đến số chẵn gần nhất, như minh họa trong hình 3.5.
For tất cả hệ số có trong dải LH2 và HL2
If ABS(HL2(i, j))