Tải bản đầy đủ (.pdf) (143 trang)

các thuật toán cơ bản của chuẩn nén ảnh tĩnh JPEG Baseline

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.32 MB, 143 trang )

CHƯƠ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
1
hữ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
 Sự phân tích khoa học về các vấn đề liên quan đến watermarking cho ảnh
số nén.
 Các kết quả mô phỏng mức hệ thống khẳng định tính đúng đắn và mạnh
mẽ của thuật toán.
 Các phân tích tối ưu thuật toán cho việc thực hiện trên phần cứng được
nghiên cứu và thực hiện.
 Khảo sát đánh giá và đưa ra các ứng dụng quan trọng của watermarking
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.
 Quy trình thiết kế số và các công cụ sử dụng trong thiết kế và mô phỏng
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ương 1: Mở đầu. Tác giả trình bày tóm tắt cơ sở nghiên cứu và mục
đích cũng như tổ chức của luận văn.
 Chương 2: Tổng quan về các chuẩn nén multimedia, watermarking và
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
3
watermarking 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.
 Chương 5: Kết quả mô phỏng và thực hiện phát triển. Chương này trình
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
CHƯƠ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
5
cá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
như ả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].
7
2.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
lượ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
9
∑∑
= =
−=
M
i

N
j
jiIjiI
MN
RMSE
1
2
1
)],('),([
1















=















=
∑∑
∑∑
∑∑
= =
= =
= =
M
i
M
j
M
i
N
j
M
i
N
j
jiIjiI

jiI
RMSE
jiI
MN
SNR
1 1
2
1 1
2
10
1 1
2
2
)],('),([
),(
log10
),(
1
log20






=
RMSE
PSNR
255
log20

10
quan 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
Mô 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
11
ả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
ứ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
2.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
qua kênh viễn thông. H.263 là chuẩn mã hóa video tốc độ bit thấp, được phát
13
triể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
nhậ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ý.
15
Đề 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

tạ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ể.
17
CHƯƠ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.
3.1. Kỹ Thuật nén ảnh số JPEG
JPEG đã được giới thiệu trong Chương 2. JPEG định nghĩa ra 4 chế độ hoạt

động trong đó có cả nén có tổn hao và không tổn hao. Đề tài lựa chọn chế độ nén
có tổn hao trên cơ sở biến đổi DCT để thực hiện nén ảnh và watermarking. Thuật
toán được lựa chọn cho nén ảnh là thuật toán nén JPEG Baseline. Đây là thuật
toán được sử dụng rộng rãi và khá đơn giản trong chế độ nén ảnh JPEG trên cơ
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
thô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.
FDCT Lượng tử hóa Quét zigzag Mã hóa Entropy Dữ liệu ảnh nén
Bảng lượng tử
hóa
Bảng mã
Entropy
Dữ liệu ảnh đầu

vào
Block 8x8
Bộ mã hóa
(a)
Quét zigzag
ngược
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)
19
Hì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), lam(B-
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.
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:
(3.1)

(3.2)
20





=
=
++=
Y)-(R 0.713 Cr
Y)-0.564(B Cb
0.114B 0.587G 0.299R Y






+=
−−=
+=
CbYB
CrCbYG
CrYR
772.1
714.0344.0
402.1
Từ 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.

21





+−=
+−=
++=
128)(713.0
128)(564.0
114.0587.0299.0
YRCr
YBCb
BGRY
3.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
8x8, một khối Cb 8x8 và một khối Cr 8x8.
Y Cb Cr
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
8x8 8x8
8x8 8x8
8x8
8x8
Trướ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]:
( ) ( )( )


∞−
−=
dxuxiuxxfuF
ππ
2sin2cos)()(
(3.4)
Trong đó f(x) là tín hiệu với biến thời gian x, và F(u) là kết quả biến đổi với
biến tần số u. Một đặc tính rất quan trọng của biến đổi Fourier là hàm biến đổi
ngược có thể chuyển đổi tín hiệu từ miền tần số trở lại miền thời gian, theo
phương trình sau:
( ) ( )( )



∞−
−=
duuxiuxuFxf
ππ
2sin2cos)()(
(3.5)
Bên cạnh thực hiện chuyển đổi từ miền không gian sang miền tần số và ngược
lại, biến đổi Fourier cũng có thể làm việc trong miền không gian để thực hiện
biến đổi từ miền không gian sang miền tần số và ngược lại. Để xử lý các tín hiệu
rời rạc như các ảnh số hóa, âm thanh,…là các tín hiệu rời rạc, thì biến đổi
Fourier rời rạc và biến đổi ngược của nó được suy luận ra như các biểu thức sau
[2]:
























=
1
0
2
sin
2
cos)(
1
)(
N
N
ux
i
N
ux
xf
N
uF
ππ
(3.6)
























=
1
0
2
sin
2
cos)()(
N
N
ux
i

N
ux
uFxf
ππ
(3.7)
23
Trong đó 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
cosine 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:
(3.8)
(3.9)
25


=






+
=
1
0
2
)12(
cos)()()(
N
x
N
ux
xfuuC
π

α


=






+
=
1
0
2
)12(
cos)()()(
N
u
N
ux
uCuxf
π
α

×