các thuật toán cơ bản của chuẩn nén ảnh tĩnh JPEG Baseline
Trang 1CHƯƠNG 1: MỞ ĐẦU 1.1 Cơ sở nghiên cứu và mục đích của luận văn
Watermarking số là quá trình nhúng thông tin, hay một watermark, vào trong một đối tượng multimedia số, cũng như watermark có thể được phát hiện hay trích ra sau đó để đưa ra sự xác nhận về đối tượng Watermarking đã chứng tỏ nó
là công cụ đáng tin cậy cho bảo vệ bản quyền và nhận thực cho các phương tiện
số, và vì vậy có rất nhiều nghiên cứu đã và đang được thực hiện trong lĩnh vực này
Watermarking đã xuất hiện cách đây hơn 700 năm Khi đó nó là một kỹ thuật được sử dụng bởi các nhà sản xuất giấy để nhận dạng các sản phẩm của mình Ngày nay chúng ta vẫn thường xuyên bắt gặp các watermark trên giấy, ví dụ trên các tờ tiền giấy, séc, tem bưu điện, và các văn bản hành chính của nhà nước Bên cạnh các ứng dụng trên giấy, watermarking cũng có thể được sử dụng để cung các các giải pháp an ninh cho các dữ liệu đa phương tiện số như là âm thanh, hình ảnh, video…
Trong phạm vi đề tài này, đề tài lựa chọn kỹ thuật watermarking cho ảnh tĩnh
để nghiên cứu, phân tích và thực hiện với cả hai loại watermarking hiện và ẩn.Một ứng dụng rất có ý nghĩa và quan trọng của watermarking cho hình ảnh là trong nhận thực hình ảnh đầu ra của các camera giám sát hay bảo mật Việc chuyển dịch từ tương tự sang số trong lĩnh vực giám sát hình ảnh tạo ra một lỗ hổng bảo mật khi chúng ta cố gắng cung cấp các bằng chứng hình ảnh giám sát tới pháp luật Hình ảnh giám sát số không thể được chấp nhận như một bằng chứng hợp pháp bởi vì việc sửa đổi dữ liệu số là trực tiếp dễ dàng, và sự hiện
Trang 2hữu của các công cụ xử lý ảnh làm cho sự nhận thực là rất đáng ngờ Đặc biệt,
nó có thể phá rối và gây nhiễu các video số mà không hề để lại một dấu vết nào.Watermarking có thể cung cấp sự nhận thực và phát hiện phá rối cho các hệ thống giám sát số Một vài hệ thống hiện tại cung cấp các lựa chọn watermarking cho các hình ảnh lưu trữ Các hệ thống này cho rằng đường truyền dẫn từ video camera tới trung tâm lưu trữ là an toàn và chúng chỉ thực hiện tập trung bảo mật cho video khi đã ở trung tâm lưu trữ Sự thừa nhận này là không đúng nều hệ thống bị tấn công ở tầng truyền dẫn Trong trường hợp này, nhận thực phải được thực hiện ngay tại video camera để cung cấp một hệ thống bảo mật an toàn hơn Điều này có thể đạt được bằng việc sử dụng một thiết bị trên cơ sở phần cứng hay mềm để nhúng một watermark vào tín hiệu video tại ngay video camera Vì quá trình nhúng watermark yêu cầu tốc độ và độ mạnh, nên thực hiện bằng phần cứng có lẽ là cần thiết và hợp lý hơn
Ngày nay, các chíp FPGA đang cải thiện đáng kể về tốc độ, dung lượng nhớ,
sự mềm dẻo, và sự tiêu hao năng lượng theo từng năm Các ứng dụng mà FPGA
có thể được ứng dụng bao gồm xử lý tín hiệu số, xử lý âm thanh và hình ảnh, máy tính số, nhận dạng, bảo mật…Các ứng dụng mà yêu cầu rất nhiều các xử lý song song thì rất hiệu quả với kiến trúc của FPGA Với watermarking cho ảnh số thì FPGA đem lại rất nhiều hiệu quả bởi khả năng xử lý song song mạnh mẽ của
nó Nhưng hơn tất cả đó là giá thành mà FPGA mang lại là rất hợp lý
Vì vậy luận văn lựa chọn FPGA để nghiên cứu và thực hiện phát triển cho thuật toán watermarking cho ảnh số, với mục đích đóng góp chính của luận văn là:
2
Trang 3 Sự phân tích khoa học về các vấn đề liên quan đến watermarking cho ảnh
số nén
mẽ của thuật toán
nghiên cứu và thực hiện
trong các lĩnh vực bảo vệ bản quyền và nhận thực số, đặc biệt ứng dụng cho các hệ thống camera giám sát và bảo mật
khi thực hiện trên FPGA
Các kết quả được trình bày trong luận văn này đạt được từ các thuật toán cụ thể trên các thiết bị FPGA của hãng Xilinx Tuy nhiên chúng mới chỉ dừng lại ở mức độ nghiên cứu và mô phỏng đồng thiết kế Co-design trên các công cụ phát triển của hãng Xilinx trên máy tính PC
1.2 Tổ chức luận văn
Bố cục của đề tài được tổ chức thành 5 chương như sau:
đích cũng như tổ chức của luận văn
các phương pháp mô phỏng Trong chương này giới thiệu tổng quan về multimedia, nén dữ liệu multimedia, các phương pháp đánh giá chất lượng
dữ liệu và chất lượng nén đối với các thuật toán nén Lý thuyết
Trang 4watermarking và các công cụ sử dụng để thực hiện và mô phỏng cũng được giới thiệu trong chương này.
Chương 3: Cơ sở lý thuyết của các kỹ thuật nén ảnh JPEG và Watermarking cho ảnh số Trong chương này tác giả trình bày và phân tích cơ sở lý thuyết của các thuật toán và các kỹ thuật liên quan đến nén ảnh JPEG, watermarking miền DCT trong miền nén và miền chưa nén JPEG
Chương 4: Phân tích và xây dựng các khối thuật toán nén ảnh và watermarking Chương này tập trung phân tích các thuật toán nén ảnh và watermarking theo chiều sâu, từ đó xây dựng thiết kế các khối mã VHDL thực hiện thuật toán cho ứng dụng phần cứng FPGA
bày các kết quả mô phỏng mô hình mức hệ thống cho toàn bộ thuật toán dựa trên công cụ Matlab/simulink, và các kết quả thực hiện các thuật toán trên VHDL và FPGA Từ đó đưa ra nhận xét và kết luận
4
Trang 5CHƯƠNG 2: TỔNG QUAN VỀ CÁC CHUẨN NÉN MULTIMEDIA, WATERMARKING VÀ CÁC PHƯƠNG PHÁP MÔ PHỎNG
Hiện nay trên thế giới có nhiều các chuẩn nén dữ liệu multimedia khác nhau Mỗi chuẩn nén sử dụng các kỹ thuật riêng và đặc trưng cho các ứng dụng khác nhau Giống như nén dữ liệu multimedia, kỹ thuật watermarking cũng được thực hiện theo nhiều phương pháp, trong các miền làm việc khác nhau Vì vậy việc đánh giá các kỹ thuật này là rất quan trọng trong quá trình nghiên cứu cũng như trong quá trình thực hiện Trong chương này, luận văn giới thiệu tổng quan về nén dữ liệu multimedia, kỹ thuật watermarking, các phương pháp đánh giá chất lượng và các phương pháp mô phỏng phục vụ cho quá trình nghiên cứu và thực hiện các kỹ thuật này
2.1 Tổng quan về nén dữ liệu Multimedia
2.1.1 Tổng quan về multimedia
Chúng ta đang chứng kiến một cuộc cách mạng trong các công nghệ truyền thông và máy tính trong thế kỷ 21 Ngành công nghiệp viễn thông đã trải qua một sự thay đổi to lớn từ mạng tương tự sang mạng số cho phép công nghệ Internet phát triển như vũ bão như ngày nay Truyền dẫn từ tương tự sang truyền dẫn số mang lại cho chúng ta rất nhiều cơ hội trong từng khía cạnh của cuộc sống Viễn thông, Internet, giải trí số, và tính toán tổng quát đang trở thành một phần tất yếu của cuộc sống hàng ngày Ngày nay chúng ta đang nói nhiều về các mạng số, sự biểu diễn số của các ảnh, các bộ phim, video, tivi, thoại, thư viện số…tất cả bởi vì sự biểu diễn số của tín hiệu mạnh hơn rất nhiều so với sự biểu diễn tương tự về xử lý, tính toán, lưu trữ, khôi phục, và truyền dẫn qua khoảng
Trang 6cách địa lý dài Trong những năm gần đây có nhiều các thành tựu nhiều ý nghĩa trong xử lý ảnh tĩnh, video, đồ họa, thoại, và các tín hiệu audio thông qua các máy tính số để đạt được các thách thức ứng dụng khác nhau Như một kết quả tất yếu, thông tin multimedia mà bao gồm ảnh, video, audio, thoại, văn bản, và các loại dữ liệu khác có tiềm năng để trở thành chỉ là một kiểu dữ liệu Viễn thông không chỉ còn là nền tảng truyền thông thoại điểm tới điểm giữa hai đầu cuối Nhu cầu cho truyền thông các dữ liệu multimedia thông qua các mạng thông tin viễn thông và truy nhập dữ liệu multimedia thông qua Internet đang phát triển mạnh mẽ Để làm được điều đó thì cần thiết rằng sự biểu diễn dữ liệu và mã hóa
dữ liệu multimedia phải được tiêu chuẩn hóa trên các ứng dụng và các nền tảng khác nhau Dữ liệu video và ảnh tĩnh là một phần rất quan trọng của dữ liệu multimedia và chúng chiếm một phần lớn băng thông trong truyền thông multimedia Do vậy, sự phát triển các kỹ thuật nén ảnh hiệu quả đang tiếp tục trở thành một thách thức quan trọng cho chúng ta, cả trong học thuật và trong công nghiệp
Mặc dù sự biểu diễn số của các tín hiệu mang lại nhiều ưu điểm so với biểu diễn tương tự, nhưng chúng cần một số lượng rất lớn các bit cho lưu trữ và truyền dẫn Ví dụ, một tín hiệu audio chất lượng cao yêu cầu xấp xỉ 1,5Mbps cho biểu diễn số và lưu trữ [1] Một tín hiệu truyền hình màu độ phân giải thấp, tốc
độ 30 khung hình trên giây với mỗi khung bao gồm 640x480 pixels (24 bits trên một pixel màu) thì yêu cầu lớn hơn 210Mbps cho lưu trữ Và khi đó một bộ phim màu có thời gian 1 tiếng mà đã được số hóa thì yêu cầu không gian lưu trữ xấp xỉ 95 Gbytes Sự truyền dẫn các tín hiệu số này thông qua các kênh thông tin
có băng thông hữu hạn là vô cùng khó khăn và thậm trí là không thể trong định dạng dữ liệu gốc này Một điều rất quan trọng là hầu hết các tín hiệu multimedia
6
Trang 7như ảnh, video, và thoại thường bao gồm một số lượng lớn các thông tin dư thừa không cần thiết trong sự biểu diễn cũng như đối với hệ thống cảm nhận của con người Do đó chúng ta có thể thực hiện nén các dữ liệu này để giảm các dư thừa trong biểu diễn dữ liệu để đáp ứng các yêu cầu truyền thông và lưu trữ.
2.1.2 Hiệu quả nén dữ liệu multimedia
Giống như bất kỳ một hệ thống nào khác, các thước đo về hiệu quả của một thuật toán nén là các nguyên tắc quan trọng cho sự lựa chọn thuật toán Các phương pháp xác định hiệu quả của các thuật toán nén dữ liệu có thể được xem xét từ nhiều khía cạnh khác nhau phụ thuộc vào các yêu cầu ứng dụng: tỷ lệ nén đạt được, chất lượng của dữ liệu sau khi khôi phục, sự phức tạp tương đối của thuật toán, tốc độ thực hiện…
2.1.2.1 Tỷ lệ nén và số bit trên một mẫu
Thước đo phổ biến nhất xem xét hiệu quả của một thuật toán nén dữ liệu là tỷ
lệ nén Nó được định nghĩa là tỷ lệ của số lượng các bit dùng để biểu diễn dữ liệu gốc trên số bit dùng để biểu diễn dữ liệu nén Xem xét một ảnh có kích thước 256x256 yêu cầu 65536 bytes lưu trữ nếu mỗi pixel được biểu diễn bởi một byte đơn Nếu phiên bản nén của ảnh có thể được lưu trữ trong 4096 bytes, thì khi đó
tỷ lệ nén đạt được bởi thuật toán nén là 16:1
Sự biến thể của tỷ lệ nén là số bits trên một mẫu Thước đo này cho biết số lượng các bit trung bình để biểu diễn một mẫu đơn của dữ liệu (ví dụ: số lượng bits trên một pixel của ảnh mã hóa) Nếu 65536 pixels của một ảnh được nén tới
4096 bytes, thì chúng ta có thể nói rằng thuật toán nén đạt được trung bình 0,5 bit trên pixel Do vậy, số lượng bits trên mẫu có thể được đo bởi tỷ lệ của số lượng các bít của một mẫu chưa nén đơn trên tỷ lệ nén [1]
Trang 82.1.2.2 Các thước đo chất lượng
Thước đo này thì không ứng dụng cho các thuật toán nén không tổn hao Thước đo chất lượng hay độ trung thực là đặc biệt quan trọng cho các thuật toán nén có tổn hao cho video, audio, ảnh, thoại…, bởi vì dữ liệu sau khi khôi phục thì khác với dữ liệu gốc và hệ thống cảm thụ của con người là phiên tòa phân xử sau cùng chất lượng của dữ liệu sau khi khôi phục
Sự khác nhau của dữ liệu sau khi khôi phục so với dữ liệu gốc gọi là sự méo dạng Như vậy thuật toán nén cho chất lượng cao hơn chỉ khi méo dạng là nhỏ hơn Các phương pháp đo chất lượng có thể là rất chủ quan dựa vào cảm nhận của con người hay có thể được xác định khách quan dựa sử dụng sự đánh giá thống kê và toán học Thực tế có nhiều thước đo đánh giá chất lượng chủ quan
và khách quan khác nhau để đánh giá chất lượng của các thuật toán nén
- Thước đo chất lượng chủ quan: Thông thường thước đo chất lượng chủ
quan được định nghĩa như điểm số người quan sát trung bình MOS (mean observer score) Thỉnh thoảng, nó cũng còn được gọi là điểm số quan điểm trung bình (mean opinion score) Có nhiều cách thống kê khác nhau để tính MOS Trong một trong số các cách đơn giản nhất, một số những người quan sát có ý nghĩa thống kê được chọn ngẫu nhiên để đánh giá chất lượng bằng nhìn thấy của các ảnh được khôi phục lại Tất cả các ảnh được nén và giải nén bởi cùng thuật toán Mỗi người quan sát cho một điểm số cho mỗi ảnh sau khi khôi phục dựa trên sự cảm nhận về chất lượng của ảnh của anh (chị) ta Trung bình của các điểm được gán bởi tất cả những người quan sát các ảnh đã được khôi phục được gọi là điểm quan sát trung bình MOS Các kỹ thuật xác định MOS có thể khác nhau cho các loại dữ liệu thu nhận khác nhau Phương pháp để xác định chất
8
Trang 9lượng chủ quan của một ảnh tĩnh có thể hoàn toàn khác cho video hay dữ liệu thoại
- Thước đo chất lượng khách quan: Với phương pháp khách quan thì thước đo
chất lượng khách quan được sử dụng rộng rãi nhất là lỗi bình phưong trung bình căn bậc hai RMSE (Root-mean-squared error), tỷ số tín hiệu trên nhiễu SNR (signal – to – noise ratio), tỷ số tín hiệu trên nhiễu đỉnh PSNR (peak signal – to – noise ratio) Nếu I là một ảnh số MxN, I’ là ảnh được khôi phục lại tương ứng sau nén và giải nén, khi đó RMSE được tính bởi công thức sau:
(2.1)
Trong đó i,j chỉ vị trí của pixel trong ảnh
SNR theo đơn vị decibel được tính theo biểu thức sau:
(2.2)
Trong trường hợp một ảnh 8 bit, thì PSNR tương ứng được tính theo dB là:
(2.3)
Trong đó 255 là giá trị pixel có thể lớn nhất trong 8 bit
Lưu ý rằng một RMSE thấp hơn (tương ứng SNR hay PSNR cao hơn) không phải luôn luôn cần thiết để cho chất lượng chủ quan cao Các thước đo lỗi khách
j i I j i I MN
RMSE
1
2 1
)]
,('),([1
j i I RMSE
j i I MN
) , ( log
10
) , ( 1
Trang 10quan này không phải luôn luôn tương quan tốt với các thước đo chất lượng chủ quan Có nhiều trường hợp, trong đó PSNR của một ảnh đã được khôi phục có thể là tương đối cao, nhưng chất lượng chủ quan lại tương đối tồi khi được nhìn nhận bởi mắt người Vì vậy sự lựa chọn thước đo chủ quan hay khách quan để đánh giá thuật toán nén và giải nén thường phụ thuộc vào các tiêu chuẩn ứng dụng
2.1.2.3 Trễ mã hóa
Trễ mã hóa là một phương pháp đánh giá hiệu quả khác của các thuật toán nén trong các hệ thống mã hóa và giải mã tương tác (ví dụ: truyền hình hội thảo tương tác, thông tin thoại thời gian thực…) Thuật toán nén phức tạp có lẽ sẽ đem lại tỷ lệ nén tốt hơn, nhưng nó có thể dẫn tới tăng trễ mã hóa, ảnh hưởng các ứng dụng tương tác thời gian thực
2.1.2.4 Độ phức tạp mã hóa.
Độ phức tạp mã hóa của một thuật toán nén thường được xem xét là một phép
đo hiệu quả trong đó yêu cầu tính toán để thực hiện mã hóa và giải mã là một nguyên tắc quan trọng Các yêu cầu tính toán thường được xác định bằng số lượng các phép tính số học và các yêu cầu bộ nhớ Thông thường số lượng các phép tính số học được miêu tả bởi MOPS (million of operations per second) Nhưng trong kỹ thuật nén, MIPS (million of instructions per second) thường được sử dụng để xác định hiệu quả nén trong một kiến trúc thuật toán cụ thể, đặc biệt khi thực hiện các sơ đồ thuật toán nén bằng các kiến trúc bộ xử lý tín hiệu số DSP
2.1.3 Tổng quan về nén ảnh
10
Trang 11Mô hình tổng quan của nén ảnh tĩnh có thể được mô tả sử dụng một sơ đồ khối thể hiện trên Hình 1.1.
Hình 2.1: Một mô hình nén ảnh tổng quát
Phân tích thống kê của một ảnh thông thường cho thấy rằng có một tương quan rất lớn giữa các pixel liền kề nhau Điều này gây ra sự dư thừa thông tin trong ảnh Sự dư thừa này phần lớn có thể loại bỏ bằng việc giải tương quan ảnh với một vài kỹ thuật tiền xử lý Tổng quát, các kỹ thuật nén ảnh tĩnh phụ thuộc vào hai nguyên lý giảm dư thừa cơ bản là giảm dư thừa về mặt không gian và giảm dư thừa về mặt thống kê Dư thừa không gian là sự giống nhau của các pixel liền kề trong một ảnh và nó được làm giảm bằng cách các kỹ thuật giải tương quan như là mã hóa dự đoán, mã hóa chuyển đổi, mã hóa băng con,…Còn các dư thừa về mặt thống kê thì được làm giảm bằng phương pháp mã hóa entropy, như là mã hóa Huffman, mã hóa số học…
Khối giải tương quan hay tiền xử lý trong Hình 2.1 là bước thực hiện giảm dư thừa không gian của các pixel ảnh Trong chế độ mã hóa không tổn hao thì ảnh
đã được giải tương quan được xử lý trực tiếp bởi bộ mã hóa entropy Trong chế
độ mã hóa tổn hao, ảnh đã được giải tương quan là đối tượng cho xử lý cao hơn
để che hay loại đi thông tin không liên quan mà phụ thuộc vào tính tự nhiên của
ảnh nén
Giải tương quan hay tiền xử lý
Mã hóa Entropy
Khối xử lý
ảnh đầu vào Mã hóa không tổn
hao
Mã hóa tổn hao
Trang 12ứng dụng của ảnh và các yêu cầu chất lượng của ảnh khôi phục Qúa trình này được gọi là quá trình lượng tử hóa Các pixel ảnh đã được giải tương quan và giải lượng tử hóa sau đó được đưa tới quá trình mã hóa entropy để tạo ra dữ liệu ảnh nén.
2.1.4 Các chuẩn nén dữ liệu multimedia
2.1.4.1 Chuẩn mã hóa ảnh tĩnh.
Hai tổ chức chính trong lĩnh vực nén ảnh tĩnh là ISO và ITU-T ISO thực hiện
xử lý thông tin liên quan đến các vấn đề như là lưu trữ ảnh và phục hồi ảnh, trong khi đó ITU-T giải quyết các vấn đề liên quan đến truyền dẫn thông tin JPEG (Joint Photographic Expert Group) là tiêu chuẩn được phát triển bởi sự kết hợp giữa ISO và ITU-T vào năm 1992 cho các ảnh tĩnh – cho cả ảnh đen trắng
và ảnh màu Có một sự hiểu nhầm trong rất nhiều người rằng JPEG là một thuật toán đơn cho nén ảnh tĩnh Thực tế, chuẩn JPEG định nghĩa ra 4 chế độ hoạt động [1][3], chúng là: Chế độ dựa vào DCT tuần tự, chế độ không tổn hao tuần
tự, chế độ dựa vào DCT liên tục, và chế độ thứ bậc Thuật toán được sử dụng rộng rãi cho nén ảnh trong chế độ dựa vào DCT tuần tự được gọi là Baseline JPEG Hệ thống JPEG hiện tại được thực hiện với mục đích nén các ảnh tĩnh với tốc độ bit là từ 0,25 đến 2 bits trên một pixel JPEG2000 là chuẩn mã hóa ảnh tĩnh thế hệ tiếp theo nhằm đạt được các tốc độ bit thấp hơn trong khi chất lượng cao hơn với nhiều các đặc tính mong muốn thêm vào để đáp ứng các thách thức mới mà JPEG không có
Các chuẩn nén ảnh hai mức phổ biến là Group 3 và Group 4 (cũng được gọi là ITU-T rec T4 và T6) được phát triển bởi ITU-T trong năm 1980 cho nén fax, và JBIG được phát triển bởi ISO trong năm 1994 cho nén ảnh đen trắng
12
Trang 132.1.4.2 Các chuẩn mã hóa video
MPEG (Moving picture expert group) là chuẩn của ISO cho một hệ thống nén
số để xử lý các ảnh động (video) kết hợp với audio MPEG-1 (được biết như ISO 11172) là thế hệ đầu tiên của các tiêu chuẩn nén số cho video và audio stereo hai kênh để đạt được tốc độ bit khoảng 1,5Mbps cho lưu trữ trong CD-ROMS MPEG-1 đã được chuẩn hóa vào năm 1994 ISO đã phát triển một chuẩn tiếp theo là MPEG-2 (được biết như ISO 13818) vào năm 1995 để đáp ứng các yêu cầu của các hệ thống nén số cho video và audio quảng bá chất lượng cao tại tốc
độ 6-10Mbps MPEG-4 được chuẩn hóa vào năm 1998, nhằm đáp ứng các thách thức mới của mã hóa video theo đối tượng cho các ứng dụng multimedia Ủy ban MPEG cũng đang phát triển cái được gọi là giao diện mô tả nội dung multimedia, hay MPEG-7 Có một sự hiểu nhầm rất phổ biến rằng MPEG-7 là một chuẩn nén video mới khác Sự thật là MPEG-7 không định nghĩa bất kỳ một thuật toán nén mới nào Nó thực hiện giải quyết các vấn đề như định dạng file và
mô tả siêu dữ liệu của video nén để định nghĩa ra một tiêu chuẩn cho sự mô tả nhiều loại thông tin multimedia khác nhau mà đã được mã hóa bởi các bộ mã hóa tiêu chuẩn Một chuẩn khác cũng đang được phát triển bởi ủy ban MPEG là MPEG-21 MPEG-21 với mục đích là cho phép sự sử dụng tăng lớn và trong suốt các nguồn tài nguyên Multimedia dọc theo một phạm vi rộng của các mạng
và các thiết bị
Song song với ISO, ITU định nghĩa ra các chuẩn nén chuỗi ảnh cho các ứng dụng truyền dẫn như là hội thảo truyền hình, điện thoại hình…H261 là một chuẩn mà ITU đã phát triển vào năm 1990 cho phần mã hóa video của chuẩn hội thảo truyền hình (H.320) để truyền video tại tốc độ bit 56Kbps – 2 Mbps thông
Trang 14triển vào năm 1995 cho mã hóa video để truyền dẫn video tại tốc độ bit thấp hơn 28,8Kbps thông qua kênh viễn thông H264 là chuẩn mã hóa video tiên tiến, được phát triển vào năm 2003, và hiện nay đang được ứng dụng rất rộng rãi.
2.1.4.3 Chuẩn mã hóa audio
Nỗ lực chuẩn hóa cho audio số được bắt đầu trong lớp audio của chuẩn mã hóa video MPEG Luồng bit MPEG bao gồm các tín hiệu audio và video và chúng được tổng hợp tại bộ giải mã Các chuẩn mã hóa audio MPEG-1 và MPEG-2 là các chuẩn quốc tế đầu tiên trong lĩnh vực nén audio số chất lượng cao Hệ thống mã hóa audio MPEG-1 hoạt động trong các chế độ tần số đơn hay chế độ stereo hai kênh tại các tần số lấy mẫu 32KHz, 44.1KHz, 48Khz Hệ thống được định rõ trong 3 lớp: Lớp I, II và III cho các tốc độ dữ liệu khác nhau MPEG-1 lớp I cho chất lượng cao tại tốc độ dữ liệu 192Kbps/kênh, trong khi đó lớp II cung cấp audio chất lượng cao tại tốc độ dữ liệu 128Kbps, và lớp III cung cấp tốc độ dữ liệu 64Kbps Hệ thống mã hóa audio tiên tiến MPEG-2 (MPEG-2 AAC) hoạt động tại các tần số lấy mẫu giữa 8 và 96KHz và hỗ trợ lên tới 48 kênh audio MPEG-2 AAC được sử dụng như phần lõi của chuẩn mã hóa audio MPEG-4 tại các tốc độ dữ liệu bằng hay lớn hơn 16Kbps/kênh Mã hóa MPEG-4 cho các đối tượng audio cung cấp các công cụ nén khác nhau cho các âm thanh
tự nhiên cũng như các âm thanh tổng hợp cho một phạm vi tốc độ bit rộng Các chuẩn mã hóa audio khác như AC-3 Dolby, Philips DCC…MP3 là một chuẩn rất phổ biến trên internet cho audio và music Tuy nhiên, MP3 không phải là một chuẩn mã hóa audio mới, nó là chuẩn MPEG-1 audio lớp III
2.2 Watermarking
Kỹ thuật Watermarking thực hiện nhúng dữ liệu mở rộng, được gọi là Watermark, vào trong một bản tin Tại phía thu, dữ liệu nhúng này có thể được
14
Trang 15nhận biết và tách lấy bằng một phương pháp thích hợp tương ứng Việc phân loại Watermarking có thể được xem xét theo nhiều khía cạnh, cụ thể là: nếu theo cảm nhận của con người thì nó được chia ra loại ẩn và hiện Nếu theo độ mạnh của nó thì có thể chia ra loại mạnh và loại yếu Theo các ứng dụng thì nó có thể là loại
cơ sở nguồn hay đích Theo loại tài liệu thì nó có thể là text, ảnh, âm thanh, video Theo miền làm việc thì nó có thể là loại miền không gian hay miền tần số
Cả watermarking ẩn hay hiện đều có thể được sử dụng cho bảo vệ bản quyền tác giả; thêm vào đó loại ẩn cũng hữu ích trong các ứng dụng bảo mật như chuyển đổi dấu và truyền thông tin mật Loại watermarking mạnh có thể làm vô tác dụng các tấn công nhằm loại bỏ watermark Một watermark có thể được nhúng vào trong text, hình ảnh, âm thanh hay video như dữ liệu thừa Phụ thuộc vào các thuật toán nhúng mà các watermark có thể được giải tách chính xác như ban đầu hay không Do đặc tính mạnh của thuật toán watermarking trong miền DCT, đề tài lựa chọn watermarking trong miền DCT để nghiên cứu và phát triển cho ứng dụng nhận thực hình ảnh cho camera bảo mật giám sát và cho ứng dụng bảo vệ bản quyền tác giả
2.3 Thực hiện mô phỏng và phát triển trên Matlab/Simulink và FPGA
2.3.1 Các công việc cần thực hiện
Thuật toán Watermarking có thể thực hiện trên nhiều nền tảng khác nhau như phần mềm, phần cứng, điều khiển nhúng, DSP, FPGA…Với các ứng dụng thương mại yêu cầu thời gian thực thì giải pháp phần mềm sẽ gây ra trễ lớn, do vậy mục đích của nghiên cứu này là tìm hiểu và nghiên cứu giải pháp tích hợp thuật toán watermarking trên một IC cho các ứng dụng nghiên cứu FPGA là giải pháp hiệu quả cho cả tốc độ xử lý nhanh, lập trình linh hoạt và giá thành hợp lý
Trang 16Đề tài lựa chọn các công cụ phát triển FPGA của hãng Xilinx của Hoa Kỳ để nghiên cứu phát triển, đó là ISE và System Generator.
Đầu tiên các module nén ảnh JPEG, module watermarking cho ảnh số trong miền chưa nén và module watermarking cho ảnh số trong miền nén nên được xây dựng với công cụ thiết kế kiến trúc mức cao là MATLAB/SIMULINK để kiểm tra các thuật toán và hiệu quả của nó Bước tiếp theo thực hiện xây dựng các khối thuật toán trên các công cụ ISE và System generator sử dụng ngôn ngữ
mô tả phần cứng VHDL
2.3.2 Giới thiệu các công cụ của Xilinx
- ISE (10.1, 11.1): Là công cụ xây dựng và lập trình FPGA ISE thực sự là một môi trường tổng hợp và thực thi toàn diện cho các chip khả trình của Xilinx Với ISE 11.1, người thiết kế có thể lập trình, gỡ rối, mô phỏng, dịch và nạp chương trình một cách nhanh chóng và dễ dàng Người thiết kế cũng có thể thiết
kế hệ thống của mình theo nhiều cách khác nhau: với mã vhdl, với sơ đồ RTL, hoặc với sơ đồ trạng thái (state machine)
- System Generator (10.1, 11.1) (sysgen): là công cụ phát triển hệ thống cho FPGA, cho phép thiết kế hệ thống ở dạng các khối, và hỗ trợ mô phỏng, debug, tạo code để nạp vào FPGA hoặc kết hợp vào những ứng dụng lớn hơn
Sysgen được xây dựng như một Block Set của Simulink trong Matlab Do đó, sysgen thừa hưởng tất cả các ưu điểm của Simulink trong việc xây dựng hệ thống và mô phỏng Sysgen còn sử dụng thư viện của Logic Core để xây dựng các block của mình Trong thư viện của Sysgen có các khối thực hiện các chức năng từ cơ bản như cộng, trừ, nhân, các khối logic, cho đến những thiết kế phức
16
Trang 17tạp hơn như các DSPs, bộ lọc số, nhân chập, , các bộ nhớ tích hợp: Single Port, DualPort Ram, FIFOs, các thanh ghi
Sysgen còn cho phép người thiết kế tạo ra các khối để thực hiện những nhiệm
vụ riêng bằng khối Black Box, tại đây người thiết kế sẽ tạo ra các entity và cài
mã của nó vào Black Box để tạo ra các thiết kế riêng của mình
Những thiết kế của Sysgen có thể được dịch ra nhiều kiểu dữ liệu, có thể thành file bit để nạp ngay vào phần cứng, hoặc thành các thiết kế để ghép vào một hệ thống lớn hơn.Với việc kết hợp với Mathwork để xây dựng Sysgen, Xilinx đã làm cho việc thiết kế hệ thống trên nền FPGA của mình trở nên thuận tiện và đơn giản hơn rất nhiều đối với người làm kĩ thuật
Kết luận: Qua chương này, luận văn muốn gửi tới người đọc cái nhìn tổng
quan về multimedia, sự phát triển của nén dữ liệu multimedia và các kỹ thuật watermarking cho multimedia Một công cụ rất hiệu quả sử dụng để mô phỏng
và chứng minh kết quả của các thuật toán nén và watermarking cho multimedia
là Matlab/Simulink Với sự phát triển của công nghệ FPGA, cùng với sự hỗ trợ của các công cụ lập trình, việc thực hiện các thuật toán nén và watermarking phức tạp trên FPGA là có thể
Trang 18CHƯƠNG 3: CƠ SỞ LÝ THUYẾT CỦA CÁC KỸ THUẬT NÉN ẢNH
JPEG VÀ WATERMARKING CHO ẢNH SỐ
Chuẩn nén ảnh tĩnh JPEG được khảo sát và thực hiện trong luận văn này là JPEG Baseline Cơ sở toán học của JPEG Baseline là các kỹ thuật chuyển đổi không gian màu và tốc độ lấy mẫu màu, biến đổi cosine rời rạc (DCT), lượng tử hóa biến đổi, quét zigzag và mã hóa entropy Kỹ thuật watermarking cho ảnh số được khảo sát và thực hiện là kỹ thuật watermarking trong miền DCT, cả trong miền nén và miền chưa nén JPEG Mô hình lý thuyết thực hiện watermarking cho ảnh số trong chương này cũng cho phép đạt được watermarking ẩn hay hiện thông qua điều chỉnh các tham số trong mô hình
sở biến đổi DCT, nhưng cũng mang lại hiệu quả nén cao Thuật toán định nghĩa cho việc nén các ảnh tĩnh với 1 tới 4 thành phần Số lượng các thành phần cho ảnh đơn sắc là 1, trong khi đó một ảnh màu có thể có tới 4 thành phần màu Baseline Jpeg cho phép chỉ các mẫu 8 bit trong mỗi thành phần của ảnh nguồn Một ví dụ của ảnh màu 4 thành phần là ảnh CMYK (Cyan, Magenta, Yellow, và Black), đây là ảnh được sử dụng trong nhiều các ứng dụng như in ấn, scan,…Một ảnh màu thường có 3 thành phần màu cơ bản là RGB Trong một ảnh màu
18
Trang 19thông thường, sự tương quan về không gian giữa các thành phần màu R, G, B là rất lớn Để đạt được hiệu quả nén tốt thì sự tương quan giữa các thành phần màu phải được giảm đầu tiên bằng việc chuyển đổi ảnh RGB sang một không gian màu giải tương quan Trong Baseline JPEG, một ảnh 3 màu RGB được chuyển đổi sang một không gian màu L-C (chói-màu) như là YCbCr, YUV…Tiếp theo ảnh được lấy mẫu màu lại và sắp xếp để đưa tới các thuật toán lõi của JPEG Baseline Thuật toán JPEG Baseline được thể hiện theo mô hình khối ở Hình 3.1.Như vậy các thuật toán nén và giải nén ảnh JPEG Baseline gồm có: chuyển đổi không gian và tốc độ lấy mẫu màu, biến đổi cosin rời rạc (DCT) và biến đổi ngược (IDCT), lượng tử hóa và giải lượng tử hóa, quét zigzag, mã hóa entropy
và giải mã entropy Các thuật toán này sẽ được giới thiệu cụ thể trong các phần tiếp theo.
Bảng lượng tử hóa
Bảng mã Entropy
Bảng mã Entropy
Bộ giải mã hóa
IDCT Giải mã hóa
Entropy
Giải lượng tử hóa
Bảng lượng tử hóa
Dữ liệu ảnh nén
Dữ liệu ảnh khôi phục
(b)
Trang 20Hình 3.1: Baseline JPEG: (a) nén, (b) giải nén
3.1.1 Chuyển đổi không gian màu và tốc độ lấy mẫu màu
Sự thu nhận hình ảnh của con người hay hệ thống thị giác con người (HVS) có thể chỉ cảm nhận được ánh sáng có độ dài bước sóng trong phạm vi nhỏ trong phổ trường điện từ, từ 400nm đến 700nm, hay thường được gọi là cầu vồng 7 màu: đỏ, da cam, vàng, lục, lam, tràm, tím Hơn thế nữa, 7 màu sắc cầu vồng có thể được tạo thành từ 3 màu gốc cơ bản Trong ngành công nghệ video và movie, hai hệ 3 màu cơ bản được sử dụng rộng rãi là: RGB và YCbCr Mỗi một hệ ba màu cơ bản này được gọi là một không gian màu
3.1.1.1 Không gian màu RGB
Không gian màu RGB có 3 màu cơ bản là: đỏ (R-red), lục(G-green), blue) Đây là các màu mà mắt người có thể nhìn thấy và sự kết hợp của chúng trong các độ sáng khác nhau có thể tạo ra tất cả các màu trong thế giới thực Trong ảnh và video số, mỗi pixel có ba phần tử biểu diễn cho ba màu theo độ sáng
lam(B-3.1.1.2 Không gian màu YCbCr
YCbCr là một không gian màu khác bên cạnh RGB Y biểu diễn cho độ chói hay độ sáng của một pixel; Cb và Cr biểu diễn sự khác nhau về màu sắc trong một pixel RGB và YCbCr có thể chuyển đổi qua lại lẫn nhau Theo ITU-R:
=
Y)-(R0.713
Cr
Y)-0.564(BCb
0.114B0.587G
0.299RY
+
B
Cr Cb
Y G
Cr Y
R
772.1
714.0344
.0
402.1
Trang 21Từ phương trình (2.2) có thế thấy rằng Cr và Cb có thể có giá trị âm, nhưng thực tế các pixel ảnh và video biểu diễn trong 8 bit, phạm vi dữ liệu là 0~255 và chỉ mang giá trị dương Do vậy phương trình (2.2) được điều chỉnh như sau:
(3.3)
Không gian màu RGB và YCbCr có thể chuyển đổi lẫn nhau, tuy nhiên chúng được sử dụng trong các ứng dụng khác nhau RGB biểu diễn cho ảnh cuối cùng cho các kết quả hiển thị, YCbCr là dữ liệu trung gian cho quá trình xử lý ảnh và video
3.1.1.3 Tốc độ lấy mẫu màu
Vì hệ thống thị giác con người thì nhạy cảm với độ sáng hơn là với màu[3]
Không giống RGB, các màu được chứa trong cùng độ phân giải, Cb và Cr có thể trong độ phân giải thấp hơn so với Y, mặc dù chất lượng ảnh cuối cùng vẫn thỏa mãn cảm nhận thị giác của con người Từ các kết quả thực nghiệm, các nhà khoa học rút ra 3 loại tốc độ lấy mẫu màu là 4:4:4, 4:2:2 và 4:2:0 Tốc độ lấy mẫu 4:4:4 được sử dụng trong các ứng dụng quân sự, công nghiệp, thương mại mà đòi hỏi độ phân giải và tốc độ lấy mẫu rất cao Tốc độ lấy mẫu 4:2:0 giảm tốc độ lấy mẫu của không gian màu xuống một nửa so với tốc độ 4:4:4 bởi nó bỏ đi 75% các mẫu màu Tuy nhiên, bởi tính tự nhiên của hệ thống thị giác con người, mắt người thường không thể phân biệt được sự khác biệt Với các ứng dụng và các thuật toán khác nhau, Y, Cr, Cb có thể được kết hợp riêng rẽ để đạt được các hiệu ứng khác nhau
+
=
128 ) (
713 0
128 ) (
564 0
114 0 587 0 299 0
Y R Cr
Y B Cb
B G
R Y
Trang 223.1.1.4 Macroblock
Trong chuẩn JPEG, một macroblock là một khối các mẫu màu hay độ chói 16x16, 8x8, và nó là phần tử dữ liệu cơ bản cho quá trình xử lý Macroblock là đối tượng cho các hoạt động mã hóa như: biến đổi cosin rời rạc, lượng tử hóa và
mã hóa entropy Ứng với các thuật toán JPEG khác nhau thì macroblock có kích thước khác nhau Thông thường nhất là kích thước 16x16, gọi là một pel Xem xét với tốc độ lấy mẫu màu 4:2:0, với 4 mẫu khối Y, 1 mẫu khối Cb và 1 mẫu
khối Cr Nếu macroblock là 1 khối 16x16 pixel thì nó sẽ gồm có 4 khối mẫu Y
Hình 3.2: 4:2:0 macroblock
3.1.2 Biến đổi Cosin rời rạc (DCT)
Biến đổi cosine rời rạc là một công cụ toán học xử lý các tín hiệu như ảnh hay video Nó sẽ chuyển đổi các tín hiệu từ miền không gian sang miền tần số và biến đổi ngược lại từ miền tần số quay trở lại miền không gian mà không gây tổn hao đến chất lượng Biến đổi cosine rời rạc là phần thực của biến đổi Fourier, và
nó có thể được tính toán nhanh bằng phần mềm và phần cứng Để hiểu rõ hơn về biến đổi cosine rời rạc, đầu tiên đề tài sẽ bắt đầu với biến đổi Fourier
3.1.2.1 Biến đổi Fourier
22
Trang 23Trước khi thảo luận về biến đổi cosine rời rạc, biến đổi Fourier sẽ được giới thiệu ngắn gọn, bởi vì biến đổi cosine rời rạc được thừa hưởng từ biến đổi Fourier.
Theo lý thuyết Fourier thì bất kỳ một tín hiệu nào đều có thể xây dựng bằng tính tổng của một chuỗi các hàm sine và cosine theo tần số tăng dần Nó được viết như sau[2]:
2cos)(
1)
N
ux i
N
ux x
f N u
N
N
ux i
N
ux u
F x
(3.7)
Trang 24Trong đó F(u) là hệ số biến đổi Fourier rời rạc, f(x) là dữ liệu gốc đầu vào, và
N là thành phần tần số rời rạc cho việc xây dựng biến đổi Fourier rời rạc
3.1.2.2 Biến đổi cosine rời rạc (DCT)
Nếu một ảnh được coi như một hàm của biên độ với khoảng cách như là biến, thì theo lý thuyết Fourier hàm đó có thể được xây dựng bởi một chuỗi các hàm sine và cosine tăng dần theo tần số Khi hàm chỉ gồm có các thành phần sine thì gọi là biến đổi sine, và nếu hàm chỉ gồm các thành phần cosine thì nó được gọi
là biến đổi cosine Cả biến đổi Fourier, sine và cosine đều có các ứng dụng riêng trong xử lý ảnh Tuy nhiên, trong nén ảnh, video và watermarking thì hầu hết đều sử dụng biến đổi cosine Để hiểu rõ hơn, ta xem xét hai tín hiệu: một tín hiệu chẵn và một tín hiệu lẻ (Hình 3.3)
Hình 3.3: Dạng sóng tín hiệu chẵn và lẻ
Tín hiệu chẵn có biên độ khác không tại thời điểm 0 hay tần số 0 trong khi tín hiệu lẻ có biên độ là 0 Để xây dựng tín hiệu chẵn hay lẻ thì cả hàm sine hay cosine đều có thể được lựa chọn, tuy nhiên với hàm biến đổi
24
Trang 25cosine thì kết quả cho tín hiệu chẵn sẽ yêu cầu phạm vi tần số ít hơn, trong khi với hàm biến đổi sine thì kết quả cho tín hiệu lẻ sẽ có phạm vi tần số ít hơn (Hình 3.4).
Hình 3.4: Xây dựng các tín hiệu với biến đổi cosine và sine
Một ảnh có thể được xem xét như một tín hiệu chẵn bởi vì độ sáng trung bình của nó hay độ sáng tại tần số 0 luôn có biên độ khác 0 [2][3] Do đó việc xây dựng và xử lý ảnh với các hàm biến đổi cosine sẽ yêu cầu ít các thành phần tần
số hơn là so với biến đổi sine Như vậy lý do chọn biến đổi cosine cho xử lý ảnh
số là: đầu tiên, nó có thể loại bỏ sự tương quan giữa các pixel ảnh trong miền không gian Thứ hai là biến đổi cosine rời rạc yêu cầu ít sự phức tạp tính toán và tài nguyên hơn
Biến đổi cosine rời rạc một chiều:
u x x
f u u
(
N
u x u
C u x
Trang 26Ở đây, C(u) là hệ số biến đổi cosine rời rạc, f(x) là biến tín hiệu, N là số các phần tử, u=0,1,2, ,N-1, và
(3.10)Thuật toán biến đổi cosine rời rạc một chiều ở trên sẽ tốn rất nhiều tài nguyên tính toán Nếu tính toán một biến đổi 8 phần tử thì nó cần 56 bộ cộng và 72 bộ nhân Vì vậy một số thuật toán nhanh sẽ được lựa chọn và trình bày trong chương sau
Do ảnh số là các ma trận hai chiều, do đó biến đổi cosine rời rạc hai chiều được sử dụng, phương trình biến đổi cosine rời rạc 2 chiều như sau:
u x y
x f v
u v
)12(cos),()
()(),
u x v
u C v u y
)12(cos),()()()
,
0
1 0
ππ
α
Ở đây C(u,v) là hệ số biến đổi cosine rời rạc, α(u), α(v)được định nghĩa theo (3.10), f(x,y) là phần tử ma trận hai chiều đầu vào, N là số hàng hay số cột đầu vào
Một ma trận 8x8 với 8 bit cho mỗi hệ số được xem như một khối dữ liệu đơn
vị trong xử lý ảnh, khi đó phạm vi dữ liệu của các hệ số biến đổi cosine rời rạc
có thể ước lượng từ phương trình (3.11) Xem xét trường hợp xấu nhất thì giá trị của một hệ số có thể là:
,
y x
y x f v
u v
2
1 ) ( α
Với u=0 Với u≠0
Trang 27Hình 3.5: Biến đổi DCT 2 chiều 8x8 thông qua biến đổi DCT một chiều 1x8
Cùng phương pháp này thì biến đổi cosine rời rạc ngược hai chiều có thể đạt được bằng thực hiện biến đổi cosine rời rạc ngược một chiều hai lần
Sự tương quan về mặt không gian trong một ảnh không thể loại bỏ trong miền không gian vì mỗi pixel trong ảnh tương quan với các pixel khác, và sự cảm nhận hình ảnh của con người có thể dễ dàng phát hiện ra vị trí thay thế trong miền không gian Để loại bỏ sự tương quan giữa các pixel, biến đổi cosine rời rạc có thể thay đổi các biến vị trí có tương quan chặt chẽ với nhau tại miền không gian thành các tần số rời rạc khác nhau tại miền tần số
Ý nghĩa của mỗi hệ số của biến đổi cosine rời rạc là: hệ số thứ nhất của DCT
Trang 28đó tất cả các hệ số còn lại là phần AC Cho ví dụ một ma trận 8x8 phần tử ảnh,
1 ) 0 , 0 (
y x
y x f
C(0,0) là trung bình của tất cả các giá trị pixel của ma trận 8x8 trong miền không gian Hệ số DC này cho biết độ sáng trung bình của ma trận ảnh Bảng 3.1 cho biết vị trí của các hệ số DC và AC trong ma trận các hệ số biến đổi cosine rời rạc 8x8
Xem xét một ví dụ biến đổi cosine rời rạc cho ma trận điểm ảnh 8x8 như thể hiện trên Hình 3.6 Với cảm nhận thị giác của con người thì các thành phần tần số cao trong miền tần số không quá nhạy cảm như các thành phần tần số thấp Đặc tính này là rất hữu ích cho nén ảnh và watermarking
28 Bảng 3.1: Các hệ số DC và AC
Trang 293.1.3 Lượng tử hóa các hệ số DCT
Sau khi biến đổi cosine rời rạc, sự tương quan giữa các pixel của một ảnh trong miền không gian đã được giải tương quan thành các tần số rời rạc khác nhau trong miền tần số Do sự cảm nhận thị giác của con người là rất nhạy với hệ
số DC và các tần số thấp, một phương pháp lượng tử hóa vô hướng được thiết kế cẩn thận có thể giảm sự dư thừa dữ liệu mà vẫn giữ được tính trung thực của ảnh Bước này sẽ gây ra mất thông tin và do vậy tạo ra méo dạng tại ảnh khôi phục
Đó là nguyên nhân tại sao Baseline Jpeg là nén có tổn hao Mỗi hệ số của 64 hệ
số DCT được lượng tử hóa giống như nhau 64 tham số kích thước bước lượng
Hình 3.6: so sánh các ma trận trước và sau DCT
Trang 308x8 Mỗi phần tử trong ma trận lượng tử là một số nguyên có giá trị từ 1 tới 255 Mỗi hệ số DCT C(u,v) được chia bởi tham số kích thước bước lượng tử tương ứng Q(u,v) trong ma trận lượng tử và được làm tròn tới số nguyên gần nhất như phương trình sau:
) , ( ,
v u Q
v u C Round v
u
Qúa trình giải lượng tử được thực hiện theo phương trình sau:
) , (
* ) , ( )
, (
Chuẩn JPEG không định nghĩa ra bất kỳ một ma trận lượng tử cố định nào mà người sử dụng có quyền lựa chọn một ma trận lượng tử [1] Annex K của chuẩn JPEG đã cung cấp hai ma trận lượng tử tham khảo, nhưng không phải là yêu cầu bắt buộc Hai bảng lượng tử này được thể hiện trong Bảng 3.2 và Bảng 3.3 [1]
Bảng 3.2: Ma trận lượng tử cho thành phần chói
Bảng 3.2 là ma trận lượng tử cho thành phần chói dùng để thực hiện lượng tử hóa các hệ số sau biến đổi DCT của thành phần chói của ảnh Bảng 3.3 là ma trận lượng tử màu dùng để thực hiện lượng tử hóa các hệ số sau biến đổi DCT
Trang 31của các thành phần màu của ảnh Hai bảng lượng tử này được thiết kế dựa trên các kinh nghiệm thực tế về cảm nhận tâm lý hình ảnh bởi Lohscheller [1].
Bảng 3.3: Ma trận lượng tử cho thành phần màu
3.1.4 Quét zigzag các hệ số DCT
Sau khi biến đổi DCT ta thu được các khối 8x8 biểu diễn cho các hệ số tần số Trong khối này thì các hệ số tần số thấp sẽ tụm lại ở góc cao phía trái của ma trận DCT Quét zigzag sẽ sắp xếp lại thứ tự của ma trận để các hệ số được sắp xếp theo tần số theo thứ tự tăng dần (Hình 3.7)
Trang 32Hình 3.7: Quét zigzag ma trận hệ số DCT
Để dễ dàng cho lập trình, các hệ số biến đổi cosine rời rạc phải được xắp xếp lại theo một thứ tự tuyến tính với sự tăng dần của các tần số Qúa trình xắp xếp này gọi là quét zigzag vì đường đi lựa chọn các hệ số trong ma trận theo đường zigzag (Hình 3.7 a)
Quan sát Hình 3.7c và d chúng ta thấy rằng sau khi quét zigzag các hệ số được xắp xếp gần đúng theo các biên độ của chúng Mục đích của quét zigzag là để tập hợp các giá trị ‘0’ và các giá trị nhỏ khác để giảm tốc độ bit
3.1.5 Mã hóa Entropy
Sau biến đổi DCT và lượng tử hóa là các thuật toán miền mã Các thuật toán này thường được gọi là mã hóa Entropy, bao gồm mã hóa Huffman, mã hóa số học…, đây là phương pháp mã hóa không tổn hao Ý tưởng cơ bản của mã hóa Entropy là các biểu tượng thường xuyên xuất hiện sẽ được mã hóa bằng các bít
32
Trang 33ngắn, trong khi đó các biểu tượng ít xuất hiện hơn sẽ được mã hóa bằng các bít dài hơn Phương pháp này còn gọi là mã hóa có độ dài từ mã thay đổi (VLC) Điều này sẽ làm cho tốc độ bit của luồng giảm đáng kể
Hiệu quả của mã hóa Entropy phụ thuộc vào sự tính toán chính xác xác suất xuất hiện của mỗi hệ số Tuy nhiên, việc tính toán các xác suất của các hệ số là gần như không thể trong các bộ mã hóa và giải mã MPEG thời gian thực Một giải pháp là sử dụng bảng mã Huffman tính toán trước cho các ảnh cùng loại Mã hóa entropy có thể ứng dụng cho các hệ số DC của các khối khác nhau, các hệ số
AC trong cùng một khối, và các véc tơ chuyển động trong cùng một khung
3.1.5.1 Mã hóa có độ dài biến đổi
Không giống như mã hóa có độ dài cố định như ASSCI, BCD,…, mã hóa entropy là một loại mã hóa có độ dài biến đổi, có nghĩa là các bit mã cho các từ
mã khác nhau là khác nhau Sau thủ tục lượng tử hóa và cắt xén các thành phần tần số cao hơn, hầu hết các giá trị hệ số của ma trận DCT sẽ là 0 Với một thuật toán mã hóa có độ dài từ mã biến đổi thích hợp thì hầu hết các hệ số ‘0’ được nén lại Mã hóa độ dài từ mã biến đổi trong JPEG cũng còn được gọi là mã bước chạy (run level code) “run” đề cập tới có bao nhiêu giá trị ‘0’ đặt trước một số khác ‘0’, “level” biểu diễn giá trị hay mức của số Cho ví dụ: một chuỗi các hệ
số là: 7, 0, 5, 0, 0, 0, 4, 3, 0, -3,…, chúng có thể được viết lại thành các mã mức chạy như: (0,7), (1,5), (3,4), (0,3), (1,-3),…Cặp (R-L) giống như (1,5) có thể được dịch như một số 0 đứng trước số 5 Do đó mã mức chạy sẽ nén rất hiệu quả
độ dài bit cho một chuỗi với nhiều mức 0 liên tục Vì vậy nó sẽ mang lại nhiều lợi ích cho mã hóa các hệ số DCT
3.1.5.2 Mã hóa Huffman
Trang 34Để đạt được hiệu quả mã hóa cao hơn trong miền mã sau mã hóa bước chạy,
mã hóa entropy như mã hóa Huffman là sự lựa chọn cần thiết
Theo lý thuyết Shannon thì độ dài từ mã nhỏ nhất của một symbol là:
symbol trong một luồng bản tin, và entropy là số lượng bit trung bình cho một symbol tổng thể được tính theo biểu thức:
Từ các phương trình trên, các độ dài từ mã nhị phân tối ưu cho xác suất symbol của mũ 2 là dễ dàng đạt được Nhưng trong nhiều trường hợp, xác suất xuất hiện có thể không luôn luôn là mũ của 2, ví dụ là 1/23, khi đó độ dài từ mã được tạo ra bởi việc chấp nhận xác suất gần đúng sẽ không là tối ưu Ý tưởng của Huffman là sử dụng một cây Huffman để tìm một tiền tố mã duy nhất Ví dụ:
Trang 35Và cây Huffman để tìm kiếm mã của các symbol trong Bảng 3.4 là :
Hình 3.8 : Cây mã Huffman cho mã hóa Huffman
Các cành của cây được xắp xếp bởi các xác suất xuất hiện chúng Xác suất của nút là tổng của hai cành, và hai cành sẽ là mã ‘1’ hoặc mã ‘0’ Nếu một nhánh là
lá thì nó được gán là ‘1’, ngược lại nó được gán là ‘0’ Nếu cả hai đều là lá thì cái nào có xác suất cao hơn sẽ được gán là ‘1’ và cái thấp hơn được gán là ‘0’ Bằng việc tìm kiếm cây từ gốc tới ngọn, mã hóa Huffman có thể đạt được Tương tự với cùng cây mã Huffman, các mã Huffman được giải mã tới các symbols tương ứng Tuy nhiên, vì mục đích nén, để truyền tất cả các xác suất của các symbol đi là không thực tế Thực tế một bảng mã đã được tính toán từ trước cho dữ liệu ảnh được ứng dụng cho cả bộ mã hóa và bộ giải mã Bên cạnh việc không sử dụng các bít mở rộng cho bảng các xác suất sẽ tránh được việc tìm kiếm cây mã Huffman, nên cải thiện được tốc độ xử lý
3.2 Watermarking
Trang 36Ý tưởng chung của Watermarking là nhúng một vài dữ liệu mở rộng vào trong một bản tin chủ Thông tin nhúng gọi là watermark và dữ liệu chủ gọi là vật mang (carrier) Các ứng dụng của Watermarking có thể là bảo vệ bản quyền, nhận thực, ẩn dữ liệu, các thông tin mật…
3.2.1 Watermarking tại miền không gian
Các thuật toán watermarking thế hệ đầu tiên làm việc trong miền không gian bởi vì nó ít yêu cầu phức tạp và chi phí thấp trong xử lý máy tính Một phương pháp trong đó là mã hóa LSB: bit LSB của byte dữ liệu sẽ được sửa đổi để nhúng các watermark Mã hóa LSB rất dễ bị bẻ vỡ vì nó chỉ thực hiện che phần LSB của các byte dữ liệu, vì vậy nó nhanh chóng được thay thế bằng các kỹ thuật khác Các kỹ thuật trải phổ có thể trải watermark trong một phổ rộng hơn để chống lại tấn công mà nó làm việc trong một độ rộng băng tần nhất định Việc thực hiện thuật toán watermarking miền không gian cho giá thành phần cứng rẻ hơn Tuy nhiên, các kỹ thuật miền không gian không thể đạt được các yêu cầu về
độ mạnh của watermarking
3.2.2 Watermarking tại miền DCT
Chúng ta thấy rằng sau khi chuyển đổi miền làm việc từ miền không gian sang miền DCT, sự tương quan của các pixel không gian sẽ được giải tương quan thành các phần tần số rời rạc Hệ số DC và tần số thấp của ma trận DCT sẽ quyết định các đặc tính tự nhiên nhất của một ảnh Sau khi cắt xén các hệ số tần số cao, tính trung thực của ảnh vẫn còn đủ tốt cho sự cảm cảm thị giác con người thông qua biến đổi ngược IDCT Vì vậy một phương pháp tự nhiên là nhúng một ma trận các hệ số DCT watermark vào một ma trận các hệ số DCT ảnh trong vùng tần số trung bình hay thấp hơn để đạt được watermark mạnh Hình 3.9 thể hiện các vị trí có thể nhúng watermark
36
Trang 37Tính chất mạnh của watermarking DCT là nếu một kẻ tấn công cố gắng loại
bỏ watermarking tại các tần số trung bình thì sẽ phá mất đi tính trung thực của ảnh, vì một vài chi tiết thu nhận là tại các tần số trung bình[1][5][6][20]
Phương trình nhúng Watermark[1][4][5][6][7]:
(3.20)Trong đó, Cw(i,j) là hệ số DCT (i,j) sau khi nhúng watermarking; αvà β là
các chỉ số độ mạnh watermark, các chỉ số này có thể xác định liệu watermark là hữu hình hay vô hình[1][4][5][6][7]; C(i,j) là hệ số DCT ban đầu trước khi watermarking; W(i,j) là hệ số DCT watermark
Mặc dù các thuật toán trên thường được ứng dụng cho các ảnh tĩnh, chúng ta
có thể xem xét một chuỗi khung video như một chuỗi các ảnh tĩnh Một phương pháp hợp lý là xử lý mỗi khung của video như một ảnh tĩnh với các phương pháp trên trong miền không gian và miền tần số để nhúng watermark
3.2.3 Watermarking hiện và watermarking ẩn
,
C
Trang 38Watermarking ẩn tại miền DCT cũng có thể thực hiện bằng phương trình watermarking (3.20) Chỉ bằng điều chỉnh các hệ số watermarking α và β,
watermark có thể trở lên ẩn hay hiện
Watermarking hữu hình trong video được ứng dụng rất phổ biến trong video quảng bá Để thực hiện kỹ thuật này, một ma trận các hệ số 16x16 DCT sẽ được cộng trực tiếp với ma trận các hệ số 16x16 DCT ảnh[1][4][5][6][7] như phương trình (3.20), và được thể hiện ở Hình 3.10
Lý do để lựa chọn khối 16x16 thay vì khối 8x8 là do thực hiện nhúng watermarking tại các khung Y, mà đơn vị cơ bản của khung Y là pel và 1 pel có kích thước 16x16 Không giống như nhúng watermark ở tần số trung bình, trong
kỹ thuật watermarking này thì hệ số DC và tất cả hệ số AC của ma trận các hệ số DCT ảnh sẽ bị sửa đổi bởi việc nhúng watermark, vì kỹ thuật watermarking này cho kết quả là cảm nhận hữu hình các watermark đối với hệ thống thị giác con người Có hai lựa chọn để nhúng watermark vào các khung của một đoạn video
là thực hiện watermarking trước hay sau khi nén (Hình 3.11)
38
Hình 3.10: Nhúng watermark tại ma trận các hệ số 16x16
a Watermarking trong miền chưa nén (trước khi nén)
b watermarking trong miền nén (trong khi nén)
Hình 3.11: Watermarking trong miền chưa nén và miền nén
Ảnh đầu
vào
Trang 393.2.4 Một số ứng dụng của watermarking ảnh số
Trong phần này luận văn giới thiệu một số các mô tả có thể của các ứng dụng
có thể của watermarking ảnh số Các mô tả này được luận văn nghiên cứu trên
cơ sở các lo lắng và góp ý của người sở hữu nội dung và những người có liên quan đến các lĩnh vực cung cấp nội dung số
(1) Watermarking cho ứng dụng nhận thực và bảo mật cho các hệ thống camera an ninh giám sát.
Watermarking có thể cung cấp sự nhận thực và phát hiện phá rối cho các hệ thống giám sát số Một vài hệ thống hiện tại cung cấp các lựa chọn watermarking cho các hình ảnh lưu trữ Các hệ thống này cho rằng đường truyền dẫn từ video camera tới trung tâm lưu trữ là an toàn và chúng chỉ thực hiện tập trung bảo mật cho video khi đã ở trung tâm lưu trữ Sự thừa nhận này là không đúng nều hệ thống bị tấn công ở tầng truyền dẫn Trong trường hợp này, nhận thực phải được thực hiện ngay tại video camera để cung cấp một hệ thống bảo mật an toàn hơn
Trang 40Điều này có thể đạt được bằng việc sử dụng một thiết bị trên cơ sở phần cứng hay mềm để nhúng một watermark vào tín hiệu video tại ngay video camera.
(2) Watermarking hiện cho ứng dụng bảo vệ bản quyền tác giả:
Trong trường hợp ứng dụng này, các ảnh được hiện hữu thông qua Internet, và người sở hữu nội dung lo lắng rằng các ảnh sẽ được sử dụng vào mục đích thương mại (ví dụ như in ấn thương mại, sử dụng làm quảng cáo riêng…) mà không trả tiền bản quyền tác giả Ở đây, người sở hữu nội dung mong muốn một dấu quyền sở hữu hiện rõ với ảnh, nhưng không ngăn cấm ảnh được sử dụng cho các mục đích khác (ví dụ: nghiên cứu khoa học,…) Sự hiện của dấu sẽ làm rõ ràng bất kỳ sự sử dụng các ảnh với mục đích thương mại nào, và do vậy sẽ dễ dàng đòi quyền tác giả (thu nhập từ quyền sở hữu)
(3) Watermarking hiện được sử dụng để chỉ cho biết quyền sở hữu các nguyên bản gốc:
Trong trường hợp này, các ảnh được hiện hữu thông qua Internet, và người sở hữu nội dung mong muốn chỉ ra quyền sở hữu của các tài liệu cơ bản (ví dụ: thư viện sở hữu các tác phẩm bản thảo,…), vì vậy một người quan sát có lẽ được khuyến khích để giúp đỡ cá nhân, tổ chức nổi danh mà sở hữu các tài liệu này Ở đây người sở hữu nội dung mong muốn một dấu nhãn hiện để làm rõ nguồn gốc của các tài liệu Tổn thất thu nhập là vấn đề được quan tâm ít hơn so với trường
hợp ứng dụng (2).
(4) Watermarking ẩn cho một camera tin cậy:
Trong ứng dụng này, các ảnh được thu nhận với một camera số cho các ứng dụng sau trong các tiêu đề tin tức Ở đây, nó là sự mong muốn của một hãng tin tức để chứng minh rằng một ảnh là đúng với sự thu nhận ban đầu, và không bị
40