MỤC LỤC
CHưƠNG 1 4
TỔNG QUAN VỀ CÁC KỸ THUẬT NÉN ẢNH . 4
1.1. Giới thiệu chung về nén ảnh số . 4
1.2. Phân loại các kỹ thuật nén . 6
1.2.1. Nén tổn hao và không tổn hao . 6
1.2.2. Mã hoá dự đoán và mã hoá dựa trên phép biến đổi . 6
1.2.3. Mã hoá băng con 7
1.3. Tiêu chuẩn đánh giá chất lượng mã hoá ảnh . 7
1.4. Các kỹ thuật nén có tổn hao 7
1.4.1. Kỹ thuật mã hoá băng con . 7
1.4.2. Kỹ thuật mã hóa dựa trên phép biến đổi . 9
1.4.2.1. Kỹ thuật mã hóa dựa trên phép biến đổi DCT 9
1.4.2.2. Kỹ thuật mã hoá dựa trên phép biến đổi DWT. Mối quan hệ giữa biến đổi
Wavelet và Fourier 10
CHưƠNG 2 CƠ SỞ LÝ THUYẾT CỦA BIẾN ĐỔI WAVELET . 13
2.1. Cơ sở toán học. . 13
2.1.1. Biến đổi Wavelet liên tục. 13
2.1.2. Biến đổi Wavelet rời rạc . 13
2.1.3. Tính chất của biến đổi Wavelet. . 14
2.2. Giới thiệu một số họ Wavelet. . 15
2.2.1. Biến đổi Wavelet Haar. 15
2.2.2. Biến đổi Wavelet Meyer . 15
2.2.3. Biến đổi Wavelet Daubechies. 16
2.3. Một số ứng dụng nổi bật của Wavelet. 16
2.3.1. Nén tín hiệu. 16
2.3.2. Khử nhiễu. . 17
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
ii
2.3.3. Mã hoá nguồn và mã hoá kênh. 17
CHưƠNG 3 CHUẨN NÉN ẢNH TĨNH DỰA TRÊN BIẾN ĐỔI WAVELET
JPEG2000 . 18
3.1. Lịch sử ra đời và phát triển chuẩn JPEG2000. 18
3.2. Các tính năng của JPEG2000 . 18
3.3. Các bước thực hiện nén ảnh theo chuẩn JPEG2000. . 19
3.3.1. Xử lý trước biến đổi. 19
3.3.2. Biến đổi liên thành phần. 19
3.3.3. Biến đổi riêng thành phần (biến đổi Wavelet). 20
3.3.4. Lượng tử hoá - Giải lượng tử hoá. 20
3.3.5. Mã hoá và kết hợp dòng dữ liệu sau mã hoá. 21
3.3.6. Phương pháp mã hoá SPIHT. . 21
3.3.7. Phương pháp mã hoá EZW. 23
3.4. So sánh chuẩn JPEG2000 với JPEG và các chuẩn nén ảnh tĩnh khác. 24
CHưƠNG 4 ỨNG DỤNG THỦY VÂN TRONG MÁY ẢNH KỸ THUẬT SỐ 27
4.1. Giới thiệu về máy ảnh kỹ thuật số. 27
4.2. Kỹ thuật thuỷ vân sử dụng phép biến đổi DWT. 28
4.3. Đề xuất qui trình nén và thủy vân ảnh trong máy ảnh số 42
53 trang |
Chia sẻ: maiphuongtl | Lượt xem: 2400 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu một số kỹ thuật nén dữ liệu dựa trên phép biến đổi sóng nhỏ rời rạc và ứng dụng trong máy ảnh kỹ thuật số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
, và
chỉ mã hoá sự sai lệch giữa chúng. Phƣơng pháp này đơn giản và rất phù
hợp với việc khai thác các đặc tính cục bộ của bức ảnh. Kỹ thuật DPCM
chính là một ví dụ điển hình của phƣơng pháp này. Trong khi đó, mã hoá
dựa trên phép biến đổi (transform based coding) thì lại thực hiện nhƣ sau:
trƣớc tiên thực hiện phép biến đổi với ảnh để chuyển sự biểu diễn ảnh từ
miền không gian sang một miền biểu diễn khác. Các phép biến đổi
thƣờng dùng là: DCT - biến đổi Cosine rời rạc, DWT - biến đổi Wavelet rời
rạc, LT - biến đổi trồng (lapped) , tiếp đó thực hiện mã hoá đối với các hệ số
biến đổi. Phƣơng pháp này có hiệu suất nén cao hơn rất nhiều so với
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
7
phƣơng pháp nén dự đoán bởi vì chính các phép biến đổi (sử dụng các
thuộc tính nén năng lƣợng của mình) đã gói gọn toàn bộ năng lƣợng bức
ảnh chỉ bằng một số ít các hệ số, số lớn các hệ số còn lại ít có ý nghĩa hơn sẽ
bị loại bỏ sau khi lƣợng tử hoá.
1.2.3. Mã hoá băng con
Bản chất của kỹ thuật mã hoá băng con (subband coding) là chia băng
tần của tín hiệu (ảnh) thành nhiều băng con (subband). Để mã hoá cho mỗi
băng con, chúng ta sử dụng một bộ mã hoá và một tốc độ bít tƣơng ứng với
tính chất thống kê của băng con.
1.3. Tiêu chuẩn đánh giá chất lƣợng mã hoá ảnh
Để đánh giá chất lƣợng của bức ảnh (hay khung ảnh video) ở đầu ra của
bộ mã hoá, ngƣời ta thƣờng sử dụng hai tham số: Sai số bình phƣơng trung
bình – MSE (mean square error) và tỉ số tín hiệu trên nhiễu đỉnh – PSNR
(peak to signal to noise ratio). MSE thƣờng đƣợc gọi là phƣơng sai lƣợng tử.
Một tham số khác hay sử dụng trong các hệ thông viễn thông đó là tỉ số
tín hiệu trên nhiễu - SNR.
1.4. Các kỹ thuật nén có tổn hao
Trong phần này, trình bày hai kỹ thuật nén tổn hao cho nén ảnh tĩnh và
ảnh động đó là: mã hoá băng con (subband coding) và mã hoá sử dụng phép
biến đổi (transform coding). Đây là hai kỹ thuật nén điển hình và cho hiệu quả
nén cũng nhƣ chất lƣợng ảnh cao.
1.4.1. Kỹ thuật mã hoá băng con
Tƣ tƣởng chính của kỹ thuật mã hoá băng con là: các ảnh đƣợc lấy mẫu
ở đầu vào đƣợc phân ly thành các băng tần khác nhau (gọi là các tín hiệu băng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
8
con). Yêu cầu của kỹ thuật này là làm thế nào các băng con không bị chồng
chéo lên nhau. Để có thể phân ly tín hiệu ở bộ mã hoá (encoder) thành các
băng con, ảnh đƣợc cho qua một bank lọc (filter bank) gọi là bank lọc phân
tích và mỗi đầu ra của bank lọc băng con đƣợc lấy mẫu xuống hệ số 2. Các
đầu ra băng con tần số đƣợc lẫy mẫu xuống sẽ lần lƣợt đƣợc: lƣợng tử hoá độc
lập bằng các bộ lọc vô hƣớng khác nhau, mã hoá entropy, lƣu trữ và truyền đi.
Ở phía bộ giải mã (decoder), quá trình đƣợc thực hiện ngƣợc lại: giải lƣợng tử
băng con tần số, lấy mẫu lên với hệ số 2, cho đi qua bank lọc băng con tổng
hợp rồi cộng tất cả các đầu ra của bộ lọc để khôi phục lại ảnh.
Hình 1.2 dƣới đây là sơ đồ tổng quát giải thích kỹ thuật mã hoá băng
con.
Hình 1.2. Sơ đồ minh hoạ kỹ thuật mã hoá băng con – M băng con
Trong các hệ thống mã hóa băng con hai chiều thực tế, ngƣời ta chia
miền tần số - không gian hai chiều của ảnh gốc thành các băng khác nhau ở
bất kỳ mức nào.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
9
1.4.2. Kỹ thuật mã hóa dựa trên phép biến đổi
Một phép biến đổi là một hàm toán học đƣợc sử dụng để biến đổi một
tập các giá trị này thành một tập giá trị khác và tạo ra một cách biểu diễn mới
cho cùng một nguồn tin. Tất cả các phép biến đổi trình bầy dƣới đây đều là
không tổn hao (lossless); với sự chính xác của các phép toán số học thì các
phép biến đổi vẫn bảo tồn đƣợc độ chính xác ở bất kỳ mức độ nào. Nhƣng hầu
hết các kỹ thuật mã hoá đều có tổn hao ở bƣớc lƣợng tử hóa do có sự làm tròn
giá trị cho các hệ số phép biến đổi.
1.4.2.1. Kỹ thuật mã hóa dựa trên phép biến đổi DCT
Phép biến đổi cosine rời rạc – DCT (Discrete Cosine Transform) biến
đổi thông tin ảnh từ miền không gian sang miền tần số để có thể biểu diễn
dƣới dạng gọn hơn. Để hiểu rõ kỹ thuật này trƣớc hết ta cần tìm hiểu biến đổi
Fourier.
* Biến đổi Fourier – FT
Biến đổi Fourier – FT (Fourier Transform) là một phép biến đổi thuận
nghịch, nó cho phép sự chuyển đổi thuận – nghịch giữa thông tin và tín hiệu
đƣợc xử lý. Phép biến đổi FT cũng có thể đƣợc áp dụng cho tín hiệu không ổn
định (non-stationary) nếu chỉ quan tâm đến thành phần phổ nào có trong tín
hiệu mà không quan tâm đến khi nào xuất hiện trong tín hiệu. Tuy nhiên, nếu
thông tin về thời gian xuất hiện của phổ trong tín hiệu là cần thiết, thì phép
biến đổi FT không có khả năng đáp ứng đƣợc yêu cầu này, đây là hạn chế của
phép biến đổi này.
* Nén và giải nén ảnh dựa theo phép biến đổi DCT trong JPEG
JPEG là chuẩn nén số quốc tế đầu tiên cho các ảnh tĩnh có tông màu
liên tục gồm cả ảnh đơn sắc và ảnh màu. Trong kỹ thuật này các khối ảnh kích
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
10
thƣớc 8x8 đƣợc áp dụng để thực hiện DCT, sau đó lƣợng tử hoá các hệ số rồi
mã hoá entropy sau lƣợng tử.
Đối với những ảnh màu RGB, để áp dụng kỹ thuật nén này, trƣớc hết
phải chuyển sang chế độ màu YUV (Y là thành phần chói, U và V là 2 thành
phần màu). Thành phần độ chói là ảnh đơn sắc xám. Hai thành phần màu còn
lại chứa thông tin về màu. Sơ đồ khối bộ mã hoá và giải mã của JPEG nhƣ
sau:
Hình 1.3. Sơ đồ bộ mã hoá theo chuẩn JPEG
1.4.2.2. Kỹ thuật mã hoá dựa trên phép biến đổi DWT. Mối quan hệ giữa
biến đổi Wavelet và Fourier
Wavelet là phép biến đổi đƣợc sử dụng để phân tích các tín hiệu không
ổn định (non-stationary) – là những tín hiệu có đáp ứng tần số thay đổi theo
thời gian.
Để khắc phục những hạn chế của biến đổi FT, phép biến đổi Fourier
thời gian ngắn – STFT đƣợc đề xuất.
Trên cơ sở cách tiếp cận biến đổi STFT, biến đổi Wavelet đƣợc phát
triển để giải quyết vấn đề về độ phân giải tín hiệu mà STFT vẫn còn hạn chế.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11
Biến đổi Wavelet đƣợc thực hiện theo cách: tín hiệu đƣợc nhân với hàm
Wavelet rồi thực hiện biến đổi riêng rẽ cho các khoảng tín hiệu khác nhau
trong miền thời gian tại các tần số khác nhau. Cách tiếp cận nhƣ vậy còn
đƣợc gọi là: phân tích đa phân giải – MRA (Multi Resolution Analysis): phân
tích tín hiệu ở các tần số khác nhau và cho các độ phân giải khác nhau.
MRA khi phân tích tín hiệu cho phép: phân giải thời gian tốt và phân giải
tần số kém ở các tần số cao; phân giải tần số tốt và phân giải thời gian kém ở các
tần số thấp.
* Biến đổi Wavelet rời rạc – DWT
Bƣớc này có thể hiểu phép biến đổi DWT nhƣ là áp dụng một tập các
bộ lọc: thông cao và thông thấp. Thiết kế các bộ lọc này tƣơng đƣơng nhƣ kỹ
thuật mã hoá băng con (subband coding). Tuy nhiên khác với mã hoá băng
con, các bộ lọc trong DWT đƣợc thiết kế phải có đáp ứng phổ phẳng,
trơn và trực giao.
Từ biến đổi DWT một chiều có thể mở rộng định nghĩa biến đổi DWT
hai chiều theo cách: Sử dụng các bộ lọc riêng biệt, thực hiện biến đổi
DWT một chiều dữ liệu vào (ảnh) theo hàng rồi thực hiện theo cột. Theo
cách này nếu thực hiện biến đổi DWT ở mức 1, sẽ tạo ra 4 nhóm hệ số
biến đổi.
* Hai thuật toán nén sử dụng DWT điển hình.
Nén ảnh dựa trên biến đổi DWT đã có những cải tiến đáng kể, đó là
bƣớc đột phá sử dụng DWT để nén ảnh bắt đầu là kỹ thuật mã hoá – EZW
(embedded zero-tree wavelet).
Thuật toán EZW dựa trên khả năng khai thác các thuộc tính đa
phân giải của biến đổi Wavelet để đƣa ra một thuật toán ít phức tạp trong
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
12
tính toán mà vẫn cho hiệu quả nén cao. Những cải tiến và nâng cấp của
EZW về sau đã ra đời một số thuật toán tƣơng tự nhƣ: SPIHT (set
partitationing in hierarchical tree – cây phân cấp phân tập) và ZTE
(zero-tree entropy coding – mã hoá entropy cây zero).
Gần đây còn có thêm một thuật toán nữa đƣợc đề xuất đó là LS
(lifting scheme) sử dụng để tạo các biến đổi Wavelet số nguyên. Kỹ thuật
này sử dụng các bộ lọc Wavelet trực giao đem lại hiệu quả rất cao cho các
ứng dụng nén ảnh có tổn hao.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
13
CHƢƠNG 2
CƠ SỞ LÝ THUYẾT CỦA BIẾN ĐỔI WAVELET
2.1. Cơ sở toán học.
2.1.1. Biến đổi Wavelet liên tục.
Biến đổi Wavelet liên tục (Continuous Wavelet Transform - CWT) của một
hàm f tđƣợc bắt đầu từ một hàm Wavelet mẹ (mother Wavelet) t . Hàm
Wavelet mẹ tcó thể là bất kỳ một hàm số thực hoặc phức liên tục nào thoả mãn
các tính chất sau đây:
- Tích phân suy rộng trên toàn bộ trục t của hàm t là bằng 0.
- Tích phân năng lƣợng của hàm trên toàn bộ trục t là một số hữu
hạn.
2.1.2. Biến đổi Wavelet rời rạc.
Việc tính toán các hệ số Wavelet tại tất cả các tỉ lệ là một công việc hết
sức phức tạp. Để giảm thiểu công việc tính toán ngƣời ta chỉ chọn ra một
tập nhỏ các giá trị tỉ lệ và các vị trí để tiến hành tính toán. Quá trình chọn
các tỷ lệ và các vị trí để tính toán nhƣ trên tạo thành lƣới nhị tố
(dyadic). Một phân tích nhƣ trên hoàn toàn có thể thực hiện đƣợc nhờ
biến đổi Wavelet rời rạc (DWT). Do đó, việc tính toán biến đổi DWT thực
chất là sự rời rạc hoá biến đổi Wavelet liên tục (CWT); việc rời rạc hoá
đƣợc thực hiện với sự lựa chọn các hệ số a và b nhƣ sau:
a 2m ; b 2m n; m, n
Z (2.1)
Việc tính toán hệ số của biến đổi Wavelet có thể dễ dàng thực hiện bằng
các băng lọc số nhiều nhịp đa kênh, một lý thuyết rất quen thuộc trong xử lý tín
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14
hiệu.
Hình 2.1. Minh hoạ lƣới nhị tố dyadic với các giá trị của m và n
2.1.3. Tính chất của biến đổi Wavelet.
Biến đổi Fourier là một biến đổi đã và đang đƣợc áp dụng rộng rãi
trong nhiều ngành khoa học và kỹ thuật khác nhau. Biến đổi Fourier
chuyển một hàm tín hiệu từ miền thời gian sang miền tần số. Sử dụng biến
đổi Fourier ta có thể biết đƣợc trong tín hiệu f(t)có các thành phần tần số
nào. Tuy nhiên biến đổi Fourier có một nhƣợc điểm cơ bản là với một tín
hiệu f(t) ta không thể biết đƣợc rằng tại một thời điểm t thì tín hiệu có các
thành phần tần số nào. Một phép biến đổi tốt hơn biến đổi Fourier phải là
phép biến đổi có đầy đủ tính năng của biến đổi Fourier và có khả năng xác
định xem tại một thời điểm t bất kỳ trong tín hiệu f(t) có thành phần tần số
nào. Phép biến đổi Wavelet ra đời đã khắc phục đƣợc các nhƣợc điểm của
biến đổi Fourier trong phân tích tín hiệu. Biến đổi Wavelet dù chỉ làm việc
với các tín hiệu một chiều (liên tục hoặc rời rạc) nhƣng sau khi biến đổi
xong ta thu đƣợc một hàm số hai biến hoặc một tập các cặp giá trị W a, b
minh họa các thành phần tần số khác nhau của tín hiệu xảy ra tại thời
điểm t . Các giá trị W ai , b tạo thành một cột (i=1, 2,...., n) cho biết một
thành phần tần số có trong những thời điểm t nào và các giá trị W a, bi tạo
thành hàng cho biết tại một thời điểm t của tín hiệu f(t) có các thành phần
m = -2
m = -2
m = -2
m = -2
m = -2
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
15
tần số nào.
Tham số b trong biến đổi Wavelet cho biết khoảng dịch của hàm
Wavelet mẹ và độ phân giải các tần số khác nhau của f t đƣợc minh họa bởi hệ
tỷ lệ chính là a. Biến đổi Wavelet ngày càng đƣợc áp dụng rộng rãi đặc biệt là
trong xử lý tiếng nói, xử lý ảnh số. Xử lý tín hiệu ảnh số là xử lý tín hiệu hai
chiều và do đặc điểm của ảnh số là bao giờ cũng có tính định hƣớng và tính
định vị. Tính định hƣớng của một ảnh nghĩa là trong ảnh bao giờ cũng có một
số ít các thành phần tần số nhƣng các thành phần tần số này trải rộng trên toàn
bộ không gian ảnh còn tính định vị của ảnh chính là tính chất biểu thị rằng tại
một vùng của ảnh có thể có rất nhiều thành phần tần số. Ảnh biểu thị tính định
vị rõ nhất chính là ảnh có nhiều biên vùng phân tách rõ rệt, tại các đƣờng biên
bao giờ cũng có nhiều thành phần tần số khác nhau, còn hầu hết các ảnh có
tông liên tục đều là những ảnh có tính định hƣớng.
2.2. Giới thiệu một số họ Wavelet.
2.2.1. Biến đổi Wavelet Haar.
Biến đổi Haar Wavelet là biến đổi đơn giản nhất trong các phép
biến đổi Wavelet. Hình vẽ 2.3 cho thấy dạng của hàm t với biến đổi
Haar. Do tính chất đơn giản của biến đổi Haar mà nó đƣợc ứng dụng
tƣơng đối nhiều trong nén ảnh, khi áp dụng biến đổi này để nén ảnh thì
thuật toán nén ảnh trên máy tính có một số điểm khác với công thức toán
học của biến đổi Haar.
2.2.2. Biến đổi Wavelet Meyer.
Yves Meyer là một trong những nhà khoa học đã đặt nền móng cho
phép biến đổi Wavelet. Phép biến đổi Wavelet mang tên Meyer cũng là
một phép biến đổi thông dụng, biến đổi này có khả năng phân tích tín
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
16
hiệu tốt hơn nhiều so với biến đổi Haar.
2.2.3. Biến đổi Wavelet Daubechies.
Giống nhƣ Meyer, Daubechies cũng là một nhà khoa học có công
lao to lớn trong việc nghiên cứu phát triển phép biến đổi Wavelet. Biến
đổi Daubechies là một trong những phép biến đổi phức tạp nhất trong
biến đổi Wavelet. Họ biến đổi này đƣợc ứng dụng hết sức rộng rãi, biến
đổi Wavelet áp dụng trong JPEG2000 là một biến đổi trong họ biến đổi
Wavelet Daubechies.
2.3. Một số ứng dụng nổi bật của Wavelet.
Phần này chỉ nêu ra các lĩnh vực mang tính chất tổng quát các ứng
dụng của Wavelet với tính chất giới thiệu và gợi mở.
2.3.1. Nén tín hiệu.
Do đặc điểm của mình, Wavelet đặc biệt tốt khi sử dụng để nén hay
phân tích các tín hiệu không dừng; đặc biệt là tín hiệu ảnh số và các ứng
dụng nén tiếng nói, nén dữ liệu. Việc sử dụng các phép mã hoá băng con,
băng lọc số nhiều nhịp và biến đổi Wavelet rời rạc tƣơng ứng với loại tín
hiệu cần phân tích có thể mang lại những hiệu quả rất rõ rệt trong nén tín
hiệu. Do tính chất chỉ tồn tại trong các khoảng thời gian rất ngắn (khi
phân tích tín hiệu trong miền thời gian tần số) mà các hệ số của biến đổi
Wavelet có khả năng tập trung năng lƣợng rất tốt vào các hệ số biến đổi.
Các hệ số mang thông tin chi tiết của biến đổi Wavelet thƣờng rất nhỏ và có
thể bỏ qua mà không ảnh hƣởng tới việc mã hoá dữ liệu (trong phƣơng pháp
mã hoá ảnh hay tiếng nói là những tín hiệu cho phép mã hoá có tổn thất
thông tin).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
17
2.3.2. Khử nhiễu.
Tính chất của biến đổi Wavelet mà chúng ta đã xét tới trong phần ứng
dụng cho nén tín hiệu đƣợc mở rộng bởi Iain Johnstone và David
Donohos trong các ứng dụng khủ nhiễu cho tín hiệu. Phƣơng pháp khử
nhiễu này đƣợc gọi là Wavelet Shrinkage Denoising (WSD). Ý tƣởng cơ
bản của WSD dựa trên việc tín hiệu nhiễu sẽ lộ rõ khi phân tích bằng biến đổi
Wavelet ở các hệ số biến đổi bậc cao. Việc áp dụng các ngƣỡng loại bỏ
tƣơng ứng với các bậc cao hơn của hệ số Wavelet sẽ có thể dễ dàng loại
bỏ nhiễu trong tín hiệu.
2.3.3. Mã hoá nguồn và mã hoá kênh.
Sở dĩ Wavelet đƣợc ứng dụng trong mã hoá nguồn và mã hoá kênh vì
trong mã hoá nguồn thì chúng ta cần khả năng nén với tỷ lệ nén cao còn
trong mã hoá kênh thì cần khả năng chống nhiễu tốt. Biến đổi Wavelet
kết hợp với một số phƣơng pháp mã hoá nhƣ mã hoá Huffman hay mã hoá
số học có thể thực hiện đƣợc cả hai điều trên.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
18
CHƢƠNG 3
CHUẨN NÉN ẢNH TĨNH DỰA TRÊN BIẾN ĐỔI
WAVELET JPEG2000
3.1. Lịch sử ra đời và phát triển chuẩn JPEG2000.
Nhƣ chúng ta đã biết, sự ra đời của JPEG mang lại nhiều lợi ích to
lớn về nhiều mặt. JPEG có thể giảm nhỏ kích thƣớc ảnh, giảm thời gian
truyền và làm giảm chi phí xử lý ảnh trong khi chất lƣợng ảnh là khá tốt.
Để việc nén ảnh có hiệu quả hơn, Ủy ban JPEG đã đƣa ra một chuẩn nén
ảnh mới là JPEG2000. JPEG2000 sử dụng biến đổi Wavelet và các
phƣơng pháp mã hoá đặc biệt để có đƣợc ảnh nén ƣu việt hơn hẳn JPEG.
JPEG2000 hiện vẫn đang tiếp tục đƣợc phát triển, nhƣng phần I đã đƣợc tổ
chức ISO chấp nhận là chuẩn nén ảnh quốc tế áp dụng cho ảnh tĩnh.
Chuẩn nén ảnh JPEG2000 mà xƣơng sống là biến đổi Wavelet với
tính năng vƣợt trội so với JPEG chắc chắn sẽ đƣợc sử dụng trong các
ứng dụng.
3.2. Các tính năng của JPEG2000
JPEG2000 có nhiều chức năng đặc biệt hơn mọi chuẩn nén ảnh
tĩnh khác nhƣ JPEG hay GIF. Dƣới đây là các chức năng ƣu việt của
JPEG2000 so với các chuẩn 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ị luỹ 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.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
19
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ã hoá ảnh 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 tuỳ theo
yêu cầu của ngƣời sử dụng.
3.3. Các bƣớc thực hiện nén ảnh theo chuẩn JPEG2000.
Hình 3.1: Trình tự mã hoá (a) và giải mã JPEG2000 (b)
3.3.1. Xử lý trƣớc biến đổi.
Do sử dụng biến đổi Wavelet, JPEG2000 cần có dữ liệu ảnh đầu
vào ở dạng đối xứng qua 0. Xử lý trƣớc biến đổi chính là giai đoạn đảm
bảo dữ liệu đƣa vào nén ảnh có dạng trên. Ở phía giải mã, giai đoạn xử lý
sau biến đổi sẽ trả lại giá trị gốc ban đầu cho dữ liệu ảnh.
3.3.2. Biến đổi liên thành phần.
Giai đoạn này sẽ loại bỏ tính tƣơng quan giữa các thành phần của
ảnh. JPEG2000 sử dụng hai loại biến đổi liên thành phần là biến đổi màu
thuận nghịch (Reversible Color Transform - RCT) và biến đổi màu không
thuận nghịch (Irreversible Color Transform - ICT) trong đó biến đổi
M· ho¸ Xö lý tr•íc
biÕn ®æi
BiÕn ®æi thuËn
liªn thµnh
phÇn
BiÕn ®æi
thuËn riªng
thµnh phÇn
L•îng tö hãa ¶nh gèc
¶nh sau
khi
m· ho¸
(a)
Xö lý sau
biÕn ®æi
Gi¶i m· ho¸
Gi¶i l•îng
tö ho¸
BiÕn ®æi
ng•îc riªng
thµnh phÇn
BiÕn ®æi
ng•îc liªn
thµnh phÇn
¶nh m· ho¸
¶nh kh«i
phôc
(b)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
20
thuận nghịch làm việc với các giá trị nguyên, còn biến đổi không thuận
nghịch làm việc với các giá trị thực. ICT và RCT chuyển dữ liệu ảnh từ
không gian màu RGB sang YCrCb. RCT đƣợc áp dụng trong cả hai dạng
thức nén có tổn thất và không tổn thất, còn ICT chỉ áp dụng cho nén có
tổn thất. Việc áp dụng các biến đổi này trƣớc khi nén ảnh không nằm ngoài
mục đích làm tăng hiệu quả nén. Các thành phần Cr, Cb có ảnh hƣởng rất
ít tới sự cảm nhận hình ảnh của mắt trong khi thành phần độ chói Y có ảnh
hƣởng rất lớn tới ảnh.
3.3.3. Biến đổi riêng thành phần (biến đổi Wavelet).
Biến đổi riêng thành phần đƣợc áp dụng trong JPEG2000 chính là
biến đổi Wavelet. Do phép biến đổi Wavelet không phải là một phép biến
đổi trực giao nhƣ biến đổi DCT mà là một phép biến đổi băng con nên các
thành phần sẽ đƣợc phân chia thành các băng tần số khác nhau và mỗi
băng sẽ đƣợc mã hóa riêng rẽ. JPEG2000 áp 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. Việc tính toán biến đổi trong JPEG2000 này sẽ đƣợc thực
hiện theo phƣơng pháp Lifting.Việc tính toán biến đổi Wavelet 2D suy ra
từ biến đổi Wavelet 1D theo các phƣơng pháp phân giải ảnh tuỳ chọn. Trong
JPEG2000 có 3 phƣơng pháp phân giải ảnh nhƣng phƣơng pháp đƣợc sử
dụng nhiều nhất chính là phương pháp kim tự tháp.
3.3.4. Lƣợng tử hoá - Giải lƣợng tử hoá.
Các hệ số của phép biến đổi sẽ đƣợc tiến hành lƣợng tử hoá. Quá
trình lƣợng tử hoá cho phép đạt tỷ lệ nén cao hơn bằng cách thể hiện các giá
trị biến đổi với độ chính xác tƣơng ứng cần thiết với mức chi tiết của ảnh
cần nén. Các hệ số biến đổi sẽ đƣợc lƣợng tử hoá theo phép lƣợng tử hoá vô
hƣớng. Các hàm lƣợng tử hoá khác nhau sẽ đƣợc áp dụng cho các băng con
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
21
khác nhau.
Trong dạng biến đổi nguyên, đặt bƣớc lƣợng tử bằng 1.Với dạng biến
đổi thực thì bƣớc lƣợng tử sẽ đƣợc chọn tƣơng ứng cho từng băng con riêng
rẽ. Bƣớc lƣợng tử của mỗi băng do đó phải có ở trong dòng bít truyền đi để
phía thu có thể giải lƣợng tử cho ảnh.
3.3.5. Mã hoá và kết hợp dòng dữ liệu sau mã hoá.
JPEG2000 theo khuyến nghị của uỷ ban JPEG quốc tế có thể sử
dụng nhiều phƣơng pháp mã hoá khác nhau cũng nhƣ nhiều cách biến đổi
Wavelet khác nhau để có thể thu đƣợc chất lƣợng ảnh tƣơng ứng với ứng
dụng cần xử lý. Việc áp dụng các phƣơng pháp mã hoá khác nhau cũng
đƣợc mở rộng sang lĩnh vực nén ảnh động bằng biến đổi Wavelet. Trong
thực tế các phƣơng pháp mã hoá ảnh đƣợc áp dụng khi nén ảnh bằng biến
đổi Wavelet cũng nhƣ JPEG2000 thì có hai phƣơng pháp đƣợc coi là cơ sở và
đƣợc áp dụng nhiều nhất: phƣơng pháp SPIHT và phƣơng pháp EZW.
Hiện nay JPEG2000 vẫn đƣợc áp dụng mã hoá bằng hai phƣơng pháp
này và một phƣơng pháp phát triển từ hai phƣơng pháp này là phƣơng
pháp mã hoá mặt phẳng bít.
3.3.6. Phƣơng pháp mã hoá SPIHT.
Dù áp dụng biến đổi Wavelet nào hay cùng với nó là một phép phân
giải ảnh nào thì trong các băng con có số thứ tự thấp cũng là những thành
phần tần số cao (mang thông tin chi tiết của ảnh) trong khi những băng
con có số thứ tự cao hơn thì sẽ chứa những thành phần tần số thấp (mang
thông tin chính về ảnh). Điều đó nghĩa là các hệ số chi tiết sẽ giảm dần từ
băng con mức thấp xuống băng con mức cao và có tính tƣơng tự về không
gian giữa các băng con. Phƣơng pháp SPIHT (Set partitioning in
hierarchical trees - phƣơng pháp mã hoá phân cấp theo phân vùng).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
22
Phƣơng pháp SPIHT đƣợc thiết kế tối ƣu cho truyền dẫn luỹ tiến. Điều
này có nghĩa là tại mọi thời điểm trong quá trình giải nén ảnh theo
phƣơng pháp mã hoá này thì chất lƣợng ảnh hiển thị tại thời điểm ấy là tốt
nhất có thể đạt đƣợc với một số lƣợng bít đƣa vào giải mã tính cho tới thời
điểm ấy. Ngoài ra, phƣơng pháp này sử dụng kỹ thuật embedded coding;
nghĩa là một ảnh sau nén với kích cỡ (lƣu trữ) lớn (tỷ lệ nén thấp) sẽ chứa
chính dữ liệu sau nén của ảnh có kích cỡ (lƣu trữ) nhỏ (tỷ lệ nén cao). Bộ
mã hoá 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ử gọi các pixel trong một ảnh p cần mã hoá là pi, j. Áp dụng
một phép biến đổi Wavelet T nào đó cho các pixel trong ảnh để tạo ra các
hệ số của phép biến đổi Wavelet là ci, j. Các hệ số này tạo ra một ảnh biến
đổi là 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 luỹ tiến với ảnh thì bộ mã hoá 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à
Cˆ
. 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à
Cˆ
và sau đó áp dụng biến đổi ngƣợc Wavelet để tạo ra ảnh
cuối cùng là
pˆ
. Chúng ta có thể viết dƣới dạng toán tử nhƣ sau:
1ˆ ˆ( )p T c
.
Nguyên tắc quan trọng của phương pháp truyền dẫn ảnh theo kiểu
lũy tiến chính là phương pháp này luôn truyền đi các giá trị mang thông
tin quan trọng hơn của ảnh đi trước. Sở dĩ làm nhƣ vậy là do các thông tin
đó chính là các thông tin sẽ làm giảm thiểu nhiều nhất độ méo dạng của
ảnh (sự sai khác giữa ảnh gốc và ảnh khôi phục). Đây chính là lý do tại sao
phƣơng pháp SPIHT luôn truyền đi các hệ số lớn trƣớc và cũng là một
nguyên tắc quan trọng của phƣơng pháp này. Một nguyên tắc nữa là các
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
23
bít có trọng số lớn bao giờ cũng mang thông tin quan trọng nhất trong
dữ liệu nhị phân. Phƣơng pháp SPIHT sử dụng cả hai nguyên tắc này; nó
sắp xếp các hệ số biến đổi và truyền đi các bít có trọng số lớn nhất. Quá
trình giải mã có thể dừng lại ở bất kỳ một bƣớc nào ứng với giá trị ảnh cần
mã hoá yêu cầu. Đây chính là cách mà phƣơng pháp mã hoá SPIHT làm tổn
thất thông tin.
3.3.7. Phƣơng pháp mã hoá EZW.
Phƣơng pháp mã hoá EZW (Embedded Zerotree Wavelet Encoder)
cũng dựa trên cơ sở phép mã hoá luỹ tiến (progressive coding) giống nhƣ
phƣơng pháp mã hoá SPIHT. Phƣơng pháp này chủ yếu dựa trên khái
niệm về cây zero (zerotree).
Cây tứ phân: Sau khi áp dụng biến đổi Wavelet ứng với các mức
phân giải khác nhau có thể biểu diễn các hệ số biến đổi dƣới dạng một
cây. Với cây biểu diễn cứ mỗi nút cha thì có 4 nút con, do quá trình biến
đổi Wavelet ở các tỷ lệ khác nhau. Ta gọi đây là các cây tứ phân (quadtree).
Cây zero (zerotree): Cây zero là một cây tứ phân, trong đó tất cả các
nút của nó đều nhỏ hơn nút gốc. Khi mã hoá sẽ đƣợc mã hoá bằng một đối
tƣợng duy nhất và khi giải mã thì cho tất cả các giá trị bằng không. Ngoài
ra để có thể mã hoá đƣợc các hệ số Wavelet thì giá trị của nút gốc phải
nhỏ hơn giá trị ngƣỡng đang đƣợc xem xét ứng với hệ số Wavelet đó.
Sau khi có đủ các khái niệm cần thiết về cây tứ phân và cây zero,
chúng ta có thể trình bày nguyên lý hoạt động của thuật toán. Thuật toán sẽ
mã hoá các hệ số theo thứ tự giảm dần. Chúng ta sẽ dùng một giá trị gọi
là ngƣỡng (threshold) và sử dụng ngƣỡng này để tiến hành mã hoá các hệ
số biến đổi. Các hệ số đƣợc mã hoá theo thứ tự từ vùng tần số thấp đến vùng
tần số cao. Và chỉ những hệ số có giá trị tuyệt đối lớn hơn hoặc bằng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
24
ngƣỡng thì mới đƣợc mã hoá. Tiếp theo giảm ngƣỡng và tiếp tục làm nhƣ
vậy cho tới khi ngƣỡng đạt tới một giá trị nhỏ hơn giá trị của hệ số nhỏ
nhất. Cách giảm giá trị ngƣỡng ở đây thực hiện tƣơng đối đặc biệt, giá trị
của ngƣỡng giảm xuống một nửa so với trƣớc đó. Bộ giải mã phải biết các
mức ngƣỡng này thì mới có thể giải mã ảnh thành công. Khi d i chuyển từ
hệ số này đến hệ số khác theo thứ tự nhƣ thế nào. Việc sắp xếp này còn phải
đƣợc quy ƣớc thống nhất giữa quá trình mã hoá và quá trình giải mã để
việc giải mã ảnh đƣợc thành công.
3.4. So sánh chuẩn JPEG2000 với JPEG và các chuẩn nén ảnh
tĩnh khác.
Một tính năng quan trọng và là ƣu điểm rõ nét nhất của JPEG2000 so
với JPEG cũng nhƣ các chuẩn nén ảnh khác nhƣ MPEG 4 VTC hay JPEG
- LS v. v.... là JPEG2000 đƣa ra cả hai kỹ thuật nén có tổn thất và không
tổn thất theo cùng một cơ chế mã hoá nghĩa là JPEG2000 thực hiện tất cả
các dạng thức của JPEG chỉ bằng một cơ chế mã hoá duy nhất. Nếu xét về
sự tồn tại của hai kỹ thuật này thì JPEG cũng có khả năng nén ảnh có tổn
thất và không tổn thất thông tin. Tuy nhiên với JPEG thì cơ chế mã hoá
với hai dạng này là khác nhau và rất khó để sử dụng cả hai dạng này cùng
lúc cho cùng một ứng dụng. Do đó, có thể thấy rằng JPEG có tính mềm dẻo
hơn bất kỳ chuẩn nén ảnh tĩnh. Hơn thế, chúng ta đã thấy rằng tất cả
các phƣơng pháp thiết kế cho chuẩn JPEG2000 đều ƣu việt và có nhiều
tính năng hơn so với JPEG; ngoài ra những thống kê về thực tế cho thấy
với cùng một tỷ lệ nén và một loại ảnh thì ảnh đƣợc nén bởi JPEG2000
hầu nhƣ luôn có chất lƣợng tốt hơn so với JPEG.
Tính năng ƣu việt thứ hai của JPEG2000 so với JPEG chính là
trong dạng thức nén có tổn thất thông tin, JPEG2000 có thể đƣa ra tỷ lệ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
25
nén cao hơn nhiều so với JPEG. Theo công thức tính PSNR trong đơn vị
dB, chúng ta có: (b là số bít dùng biểu diễn một pixel trên ảnh gốc)
PSNR(dB) = -20 log
RMSE
2 1b
Sự so sánh về tham số PSNR cho trên bảng 3.1. Để có thể so sánh dễ
dàng hơn, ta xét ảnh đƣợc nén với các tỷ lệ khác nhau (đo lƣờng bởi hệ số
bít/pixel hay bpp). Tất cả các số liệu trên bảng đều cho thấy JPEG2000 nén
ảnh tốt hơn là JPEG; hơn thế hệ số PSNR mà chúng ta xét trong bảng đƣợc đo
trong hệ đơn vị logarit.
Bit per pixel 0. 125 0. 50 2.00
Ảnh 1 theo JPEG 24.42 31.17 35. 15
Ảnh 1 theo JPEG2000 28. 12 32.95 37. 35
Ảnh 2 theo JPEG 22.6 28. 92 35. 99
Ảnh 2 theo JPEG2000 24.85 31.13 38. 80
Bảng 3.1: So sánh JPEG và JPEG2000
Tính năng ƣu việt thứ 3 của JPEG2000 so với JPEG là chuẩn nén
ảnh này có thể hiển thị đƣợc các ảnh với độ phân giải và kích thƣớc khác
nhau từ cùng một ảnh nén. Tính năng này là một lợi thế đặc biệt quan
trọng của JPEG2000, để thu đƣợc chất lƣợng với từng lần nén khác
nhau thì với JPEG2000 ta chỉ cần nén một lần còn chất lƣợng ảnh thì sẽ
đƣợc quyết định tuỳ theo ngƣời sử dụng trong quá trình giải nén ảnh theo
JPEG2000.
JPEG2000 còn có một khả năng đặc biệt ƣu việt hơn so với JPEG, đó
chính là khả năng vƣợt trội trong khôi phục lỗi. Khi một ảnh đƣợc truyền
trên mạng viễn thông thì thông tin có thể bị nhiễu; với các chuẩn nén ảnh
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
26
nhƣ JPEG thì nhiễu này sẽ đƣợc thu vào và hiển thị, tuy nhiên với
JPEG2000, do đặc trƣng của phép mã hoá có thể chống lỗi, JPEG2000 có
thể giảm thiểu các lỗi này tới mức hầu nhƣ không có.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
27
CHƢƠNG 4
ỨNG DỤNG THỦY VÂN TRONG MÁY ẢNH KỸ THUẬT SỐ
Cuộc cách mạng thông tin kỹ thuật số đã đem lại những thay đổi sâu
sắc trong xã hội và trong cuộc sống của chúng ta. Những thuận lợi mà thông
tin kỹ thuật số mang lại cũng sinh ra những thách thức và cơ hội mới cho đổi
mới. Sự ra đời những phần mềm có tính năng rất mạnh, các thiết bị mới nhƣ
máy ảnh kỹ thuật số, máy quét chất lƣợng cao, máy in, máy ghi âm kỹ thuật
số, ... đã với tới thế giới tiêu dùng rộng lớn để sáng tạo, xử lý và thƣởng thức
các dữ liệu đa phƣơng tiện. Mạng Internet đã trở thành một xã hội thông tin số
nơi diễn ra quá trình trao đổi thông tin trong mọi lĩnh vực chính trị, quân sự,
quốc phòng, kinh tế, thƣơng mại... Và chính trong môi trƣờng mở và tiện nghi
nhƣ vậy xuất hiện những vấn nạn, tiêu cực đang rất cần đến các giải pháp hữu
hiệu cho vấn đề an toàn thông tin nhƣ nạn ăn cắp bản quyền, nạn xuyên tạc
thông tin, truy cập thông tin trái phép... Đi tìm giải pháp cho những vấn đề
này không chỉ giúp hiểu thêm về công nghệ phức tạp đang phát triển rất
nhanh mà còn đƣa ra những cơ hội kinh tế mới. Trong nội dung chƣơng này
đi sâu vào ứng dụng của thủy vân vào máy ảnh kỹ thuật số.
4.1. Giới thiệu về máy ảnh kỹ thuật số.
Máy ảnh số là một máy điện tử dùng để thu và lƣu giữ hình ảnh một
cách tự động thay vì phải dùng phim ảnh giống nhƣ máy chụp ảnh thƣờng.
Máy ảnh kỹ thuật số đƣợc thiết kế đựa trên 2 nền tảng là nhiếp ảnh và tin học.
Cho tới ngày nay thiết bị điện tích kép "Charged – Couple Device gọi tắt là
CCD" và "Complement Metal Oxide Semiconductor gọi tắt là CMOS" đƣợc
gọi chung là bộ cảm biến hình ảnh, đây có thể nói chính là linh hồn của máy
ảnh kỹ thuật số.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
28
Còn ảnh số là ảnh đƣợc hợp thành bởi các phân tử hình ảnh (pixels),
các phân tử hình ảnh này rất nhỏ.
Với máy ảnh kỹ thuật số thì ta có thể xem hình trực tiếp khi vừa chụp
xong, thể hiện qua màn hình LCD nhỏ nằm phía sau máy hoặc có thể nối máy
với màn hình ti vi, máy vi tính, máy phóng .v.v....
Hình ảnh chụp từ máy ảnh KTS đƣợc lƣu giữ theo một định dạng ngày
càng phổ thông (lƣu giữ trên các thẻ nhớ hoặc bộ nhớ trong của máy), khiến
cho ngƣời dùng có thể dễ dàng thuyên chuyển các hình ảnh giữa các loại thiết
bị và các phần mềm ứng dụng khác nhau. Ví dụ chèn trực tiếp vào căn bản
(báo, bài học .v.v..), gửi hình ảnh bằng thƣ điện tử, đƣa hình lên web .v.v.v....
Chính vì những yếu tố này mà ảnh số ngày càng đƣợc sử dụng rộng rãi,
phổ biến.
4.2. Kỹ thuật thuỷ vân sử dụng phép biến đổi DWT.
Giấu thông tin là một kỹ thuật nhúng (giấu) một lƣợng thông tin số nào
đó vào trong một đối tƣợng dữ liệu số khác.
Dƣới đây là mô hình của kỹ thuật giấu tin cơ bản đƣợc mô tả theo hai
hình vẽ sau:
Hình 4.1: Lƣợc đồ chung cho quá trình giấu tin.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
29
Hình vẽ trên biểu diễn quá trình giấu tin cơ bản. Phƣơng tiện chứa bao
gồm các đối tƣợng đƣợc dùng làm môi trƣờng để giấu tin ảnh ..., thông tin
giấu là một lƣợng thông tin mang một ý nghĩa nào đó nhƣ ảnh, logo, đoạn văn
bản,... tuỳ thuộc vào mục đích của ngƣời sử dụng. Thông tin sẽ đƣợc giấu vào
trong phƣơng tiện chứa nhờ một bộ nhúng, bộ nhúng là những chƣơng trình,
triển khai các thuật toán để giấu tin và đƣợc thực hiện với một khoá bí mật
giống nhƣ các hệ mã mật cổ điển. Sau khi giấu tin ta thu đƣợc phƣơng tiện
chứa bản tin đã giấu và phân phối sử dụng trên mạng.
Hình 4.2: Lƣợc đồ chung cho quá trình giải mã
Hình vẽ trên chỉ ra các công việc giải mã thông tin đã giấu. Sau
khi nhận đƣợc đối tƣợng phƣơng tiện chứa có giấu thông tin, quá trình giải mã
đƣợc thực hiện thông qua một bô giải mã tƣơng ứng với bộ nhúng thông tin
cùng với khoá của quá trình nhúng. Kết quả thu đƣợc gồm phƣơng tiện chứa
gốc và thông tin đã giấu. Bƣớc tiếp theo thông tin giấu sẽ đƣợc xử lí kiểm
định so sánh với thông tin giấu ban đầu.
Kỹ thuật giấu thông tin nhằm mục đích đảm bảo an toàn và bảo
mật thông tin rõ ràng ở hai khía cạnh. Một là bảo mật cho giữ liệu đƣợc đem
giấu, hai là bảo mật cho chính đối tƣợng đƣợc dùng để giấu tin. Hai khía cạnh
khác nhau này dẫn đến hai khuynh hƣớng kỹ thuật chủ yếu của giấu tin.
Khuynh hƣớng thứ nhất là giấu tin mật. Khuynh hƣớng này tập trung vào các
kỹ thuật giấu tin sao cho thông tin giấu đƣợc nhiều và quan trọng là ngƣời
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
30
khác khó phát hiện đƣợc một đối tƣợng có bị giấu tin bên trong hay không.
Khuynh hƣớng thứ hai là thuỷ vân số. Khuynh hƣớng thuỷ vân số đánh giấu
vào đối tƣợng nhằm khẳng định bản quyền sở hữu hay phát hiện xuyên tạc
thông tin. Thuỷ vân số có miền ứng dụng lớn hơn nên đƣợc quan tâm nghiên
cứu nhiều hơn và thực tế đã có nhiều những kỹ thuật dành cho khuynh hƣớng
này. Mỗi ứng dụng của thuỷ vân có yêu cầu riêng, do đó các kỹ thuật thuỷ
vân cũng có những tính năng khác biệt tƣơng ứng
Trong kỹ thuật giấu tin, thì thuỷ vân ảnh số đang đƣợc quan tâm nhiều.
Khi thực hiện thuỷ vân ảnh số thì cần phải có một số tính chất để đánh giá
chất lƣợng của giải thuật. Các tính chất đó nhƣ sau:
Tính vô hình (Imperceptibility): Khi nhúng thuỷ vân vào trong ảnh, thì phải
đƣa theo giải thuật thích hợp để ngƣời dùng không nhận thấy sự thay đổi đó.
Thuỷ vân phải không ảnh hƣởng nhiều đến chất lƣợng của ảnh. Thông thƣờng
các bit ít nhạy cảm sẽ đƣợc ƣu tiên dùng để chứa thuỷ vân.
Tính bền vững (Robustness): Tùy vào từng loại ứng dụng mà có thể xem
tính bền vững này bằng nhiều điểm khác nhau, nếu nhƣ đối với các ứng dụng
dùng để bảo vệ quyền sở hữu thì thuỷ vân cần phải bền vững qua một số các
tác động ảnh. Nếu nhƣ đối với ứng dụng để chống làm giả hoặc chống lại sự
thay đổi trên phƣơng tiện kỹ thuật số thì đòi hỏi thuỷ vân phải huỷ bỏ khi xảy
ra các thao tác này.
Tính không phân chia (Inseparability): Sau khi ảnh chứa thuỷ vân thì rất
khó hoặc không thể phân chia thành 2 thành phần riêng biệt nhƣ lúc đầu.
Bảo mật (Security): Sau khi đă đƣa thuỷ vân ảnh, thì yêu cầu là chỉ cho phép
những ngƣời có quyền sử dụng dụng đƣợc chỉnh sửa và phát hiện đƣợc thuỷ
vân điều này đƣợc thực hiện nhờ vào khóa mã dùng làm khoá trong giải thuật
đƣa thuỷ vân vào ảnh số và giải thuật phát hiện ra thuỷ vân trong ảnh số.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
31
Thuỷ vân số có ứng dụng rất rộng trong nhiều lĩnh vực, dƣới đây sẽ liệt kê
một số ứng dụng chính của thuỷ vân.
Bảo vệ quyền sở hữu (Copyright Protection): đây là ứng dụng cơ bản nhất
của kỹ thuật thủy vân. Một thông tin nào đó mang ý nghĩa quyền sở hữu tác
giả sẽ đƣợc nhúng vào trong các sản phẩm, thủy vân đó chỉ một mình ngƣời
chủ sở hữu hợp pháp các sản phẩm đó có và đƣợc dùng làm minh chứng cho
bản quyền sản phẩm. Để bảo vệ các sản phẩm chống lại các hành vi lấy cắp
hoặc làm nhái cần phải có một kỹ thuật để "dán tem bản quyền" vào sản phẩm
này. Việc dán tem hay chính là việc nhúng thủy vân cần phải đảm bảo không
để lại một ảnh hƣởng lớn nào đến việc cảm nhận sản phẩm. Yêu cầu kỹ thuật
đối với ứng dụng này là thủy vân phải tồn tại bền vững cùng với sản phẩm,
muốn bỏ thủy vân này mà không đƣợc phép của ngƣời chủ sở hữu thì chỉ còn
cách phá huỷ sản phẩm.
Chống nhân bản bất hợp pháp (Copy Protection): Các sản phẩm có chứa
thuỷ vân số biểu hiện cho việc sản phẩm này không đƣợc nhân bản, vì nếu
nhân bản sẽ phạm luật. Nhà sản xuất sẽ trang bị cho các phƣơng tiện dùng để
nhân bản (nhƣ CD writer…) khả năng phát hiện xem ảnh có chứa thuỷ vân
hay không, nếu có thì sẽ từ chối không nhân bản.
Theo dõi quá trình sử dụng (Tracking): Thuỷ vân số có thể đƣợc dùng để
theo dõi quá trình sử dựng của ảnh số. Mỗi bản sao của sản phẩm đƣợc chứa
bằng một thuỷ vân duy nhất dùng để xác định ngƣời có quyền sử dụng là ai.
Nếu có sự nhân bản bất hợp pháp, thì có thể truy ra ngƣời vi phạm nhờ vào
thuỷ vân đƣợc chứa bên trong ảnh số.
Chống giả mạo (Tamper Proofing): Thuỷ vân số có thể đƣợc dùng để chống
sự giả mạo. Nếu có bất cứ sự thay đổi nào về nội dung của các ảnh số thì thuỷ
vân này sẽ bị huỷ đi. Do đó rất khó làm giả các ảnh số có chứa thuỷ vân.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
32
Theo dõi truyền thông (Broadcast Monitoring): Các công ty truyền thông
và quảng cáo có thể dùng kỹ thuật thuỷ vân để quản lý xem có bao nhiêu
khách hàng đã dùng dịch vụ cung cấp.
Truyền tin bí mật (Concealed Communication): Bởi vì thuỷ vân số là một
dạng đặc biệt của việc ẩn dữ liệu nên ngƣời ta có thể dùng để truyền các
thông tin bí mật.
Thuỷ vân số là một trong những kỹ thuật giấu dữ liệu hiện đại. Nó
đƣợc định nghĩa nhƣ là quá trình chèn thông tin vào dữ liệu đa phƣơng tiện
nhƣng bảo đảm không cảm thụ đƣợc, nghĩa là chỉ làm thay đổi nhỏ dữ liệu
gốc.
Tất cả các phƣơng pháp thuỷ vân đều có chung các khối sau: một hệ
thống nhúng thuỷ vân và một hệ thống khôi phục thuỷ vân.
Hình 4.3. Sơ đồ nhúng thuỷ vân
Hình 4.3 trình bày quá trình nhúng thuỷ vân tổng quát. Dữ liệu đầu vào
là thuỷ vân, dữ liệu cần nhúng và mã cá nhân hay công cộng. Thuỷ vân có thể
ở bất kì dạng nào nhƣ chữ số văn bản hay hình ảnh. Khoá có thể đƣợc dùng
để tăng cƣờng tính bảo mật, nghĩa là ngăn chặn những kẻ không có bản quyền
Thuỷ vân
Dữ liệu
gốc
Dữ liệu
nhúng
Mã cá nhân/
công cộng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
33
khôi phục hay phá hủy thuỷ vân. Các hệ thống thực tế dùng ít nhất là một
khoá, thậm chí kết hợp nhiều khoá. Dữ liệu đầu ra là dữ liệu đã đƣợc thuỷ
vân.
Hình 4. 4. Sơ đồ tách thuỷ vân
Quá trình khôi phục thuỷ vân tổng quát đƣợc cho ở Hình 4.4. Các dữ
liệu đầu vào là dữ liệu đã thuỷ vân, khoá và dữ liệu gốc (có thể có hoặc không
tuỳ thuộc vào phƣơng pháp). Dữ liệu đầu ra hoặc là thuỷ vân khôi phục đƣợc
hoặc đại lƣợng nào đó chỉ ra mối tƣơng quan giữa nó và thuỷ vân cho trƣớc ở
đầu vào.
Trong kỹ thuật thuỷ vân thì thông tin nhúng có thể là một chuỗi các ký
tự, hay một hình ảnh nào đó ... Với kiểu thuỷ vân dùng chuỗi các ký tự nhúng
trực tiếp lên ảnh mang một số thông tin thƣờng là những thông tin có liên
quan đến sản phẩm. Tuy nhiên, kiểu này có một hạn chế đó là một bit bị lỗi
thì sẽ làm sai cả ký tự và chỉ cần một phép biến đổi đơn giản cũng có thể làm
cho thuỷ vân bị sai lệch rất nhiều. Ngoài kiểu thuỷ vân dùng chuỗi các ký tự
nhúng trực tiếp, thì kiểu sử dụng ảnh để nhúng sẽ cho ảnh trong ảnh. Khi giải
tin thì một số điểm ảnh có thể bị sai nhƣng hình tổng thể sẽ đƣợc giữ nguyên.
Thuỷ vân
Dữ liệu
nhúng
Khôi phục
thuỷ vân
Mã cá nhân/
công cộng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
34
Có nhiều phép biến đổi cho nhúng thuỷ vân, một trong các phép biến
đổi đó là phép biến đổi sóng nhỏ rời rạc (DWT).
Do đặc tính đa phân giải, sơ đồ mã hoá Wavelets đặc biệt thích hợp cho
các ứng dụng mà tính vô hƣớng và suy biến đóng vai trò quan trọng. Minh
chứng cho điều này là phép biến đổi DWT đã đƣợc dùng nhƣ một tiêu
chuẩn trong nén JPEG2000. Ngoài ra, tính đa phân giải của Wavelets còn hữu
ích trong việc phân phối thông điệp vào đối tƣợng bao phủ trong khi vẫn
đảm bảo tính bền vững và chất lƣợng hiển thị. Do đó, kỹ thuật thuỷ vân
ảnh số dùng DWT làm dự báo sự sống còn của thuỷ vân sau tác động nén có
tổn hao JPEG2000 trong khi vẫn đảm bảo sự suy giảm chất lƣợng ảnh cho
phép. Nói một cách tổng quát, biến đổi sóng nhỏ thực hiện khai triển tần số -
không gian đa tỉ lệ của một ảnh. Khai triển này tạo ra các hệ số xấp xỉ và các
hệ số chi tiết ngang, dọc và chéo. Quá trình khai triển lại tiếp tục với các hệ số
xấp xỉ ở các mức phân tích cao hơn. Các hệ số xấp xỉ sau cùng chứa thông tin
về băng tần thấp nhất trong khi các hệ số chi tiết chứa thông tin về băng tần
cao hơn.
Kỹ thuật thuỷ vân ảnh số đƣợc tạo ra từ bộ tạo số giả ngẫu nhiên với
một khoá bí mật. Chiều dài của thuỷ vân xác định mức độ thuỷ vân phân vào
ảnh. Trong phần lớn trƣờng hợp, chiều dài thuỷ vân càng lớn thì độ mạnh
thuỷ vân đòi hỏi càng nhẹ. Nhƣng nói chung, không có chiều dài thuỷ vân
thích hợp cho tất cả các ảnh.
Trong quá trình nhúng thuỷ vân, chúng ta thực hiện DWT cho ảnh.
Một tập các hệ số lớn nhất (có chiều dài bằng chiều dài thuỷ vân) trong băng
tần thích hợp đƣợc tách ra và cộng với thuỷ vân. Từ đó có thể thấy rằng các
hệ số gốc rất cần thiết cho quá trình tách.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
35
Sau đây là một thuật toán thủy vân sử dụng phép biến đổi DWT do tác
giả đề xuất. Thuật toán này thủy vân một chuỗi bit nhị phân vào một bức ảnh
chủ đa cấp xám. Tuy nhiên có thể dễ dàng mở rộng cho các ảnh màu bằng
cách nhúng thủy vân vào một trong các lớp màu của ảnh.
* Mô tả thuật toán
Input:
Một ảnh nhỏ hoặc một dãy các bít nhị phân đƣợc sử dụng làm thuỷ vân
Một ảnh F cần nhúng thuỷ vân để bảo vệ bản quyền
Một khoá bí mật để nhúng và giải thuỷ vân
Output:
Một ảnh sau khi thuỷ vân, F‟
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
36
Qui trình nhúng thuỷ vân
Đọc ảnh chủ , thuỷ vân và
khóa bí mật K
Dùng DWT, phân tích ảnh chủ thành 4
băng A1, H1, V1, D1
Đặt khoá K làm giống
và sinh 2 chuỗi giả ngẫu nhiên
Tại những điểm thuỷ vân bằng 0, cộng thêm cho giá
trị tƣơng ứng của băng H1 và V1 một số giả ngẫu
nhiên tƣơng ứng trong hai chuỗi
Tổng hợp ảnh chủ bằng IDWT từ các băng A1, D1
và các băng đã nhúng thuỷ vân H1 và H2
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
37
Qui trình tìm lại thuỷ vân
Đọc ảnh chủ đã thuỷ vân
Đọc thuỷ vân gốc và khóa K
Phân tích DWT mức 1 cho ảnh chủ đã
thuỷ vân
Đặt khoá K làm giống cho bộ sinh chuỗi
giả ngẫu nhiên
Tính các hệ số đồng tƣơng quan giữa các băng
H1, V1với các dãy số giả ngẫu nhiên
Xác định các bit thuỷ vân thông qua
các hệ số đồng tƣơng quan
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
38
* Chương trình thực nghiệm trên MATLAB7
Chƣơng trình nhúng thủy vân
%Mục đích: Nhúng thuỷ vân vào ảnh chủ bằng DWT
clear all;
% ghi lai thời gian bắt đầu
tgbd=cputime;
k=2; % đặt hệ số nhúng
% đọc ảnh chủ
tentep='_Bachtuyet_std_bw.bmp';
anhchu=double(imread(tentep));
% xác định cỡ của ảnh chủ
Mc=size(anhchu,1);
Nc=size(anhchu,2);
% đọc ảnh thuỷ vân và chuyển thành một vector
tentep='_Banquyen.bmp';
thuyvan=double(imread(tentep));
Mm=size(thuyvan,1);
Nm=size(thuyvan,2);
thuyvan_vector=round(reshape(thuyvan,Mm*Nm,1)./256);
% đọc khoá làm trạng thái cho bộ sinh số giả ngẫu nhiên
tentep='_key.bmp';
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
39
key=double(imread(tentep))./256;
% đặt trạng thái cho bọ sinh số giả ngẫu nhiên về trạng thái "key"
rand('state',key);
% biến đổi DWT một mức cho ảnh chủ
[cA1,cH1,cV1,cD1] = dwt2(anhchu,'haar');
% cộng thêm dãy số giả ngẫu nhiên vào các băng H1 và V1 khi thuyvan
= 0
for (kk=1:length(thuyvan_vector))
pn_sequence_h=round(2*(rand(Mc/2,Nc/2)-0.5));
pn_sequence_v=round(2*(rand(Mc/2,Nc/2)-0.5));
if (thuyvan_vector(kk) == 0)
cH1=cH1+k*pn_sequence_h;
cV1=cV1+k*pn_sequence_v;
end
end
% biến đổi ngƣợc (tổng hợp) IDWT
anhchu_thuyvan= idwt2(cA1,cH1,cV1,cD1,'haar',[Mc,Nc]);
% chuyển sang dạng uint8
anhchu_thuyvan_uint8=uint8(anhchu_thuyvan);
% ghi ảnh chủ đã thuỷ vân lên đĩa
imwrite(anhchu_thuyvan_uint8,'anhchu_thuyvan_dwt.bmp','bmp');
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
40
% hiện thời gian thực hiện
elapsed_time=cputime-start_time,
% hiện ảnh đã thuỷ vân
figure(1)
imshow(anhchu_thuyvan_uint8,[ ])
title(„Anh da duoc thuy van‟)
Chƣơng trình giải thủy vân
%Mục đích: Giải thuỷ vân từ ảnh đã đƣợc nhúng thuỷ vân bằng DWT
clear all;
% ghi lại thời gian bắt đầu
tgbd=cputime;
% đọc ảnh đã thuỷ vân bằng DWT
tentep='anhchu_thuyvan_dwt.bmp';
anhchu_thuyvan=double(imread(tentep));
%xác định cỡ của ảnh chủ
Mw=size(anhchu_thuyvan,1);
Nw=size(anhchu_thuyvan,2);
% đọc ảnh thuỷ vân gốc
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
41
tentep='_Banquyen.bmp';
thuyvan_goc=double(imread(tentep));
Mo=size(thuyvan_goc,1);
No=size(thuyvan_goc,2);
% đọc khoá cho bộ sinh số giả ngẫu nhiên
tentep='_key.bmp';
key=double(imread(tentep))./256;
rand('state',key);
% khởi tạo thuỷ vân tất cả bằng 1
thuyvan_vector=ones(1,Mo*No);
[cA1,cH1,cV1,cD1] = dwt2(anhchu_thuyvan,'haar');
% Tính các hệ số đồng tƣơng quan giữa các băng cH1, cV1 với các dãy
giả ngẫu nhiên
for (kk=1:length(thuyvan_vector))
pn_sequence_h=round(2*(rand(Mw/2,Nw/2)-0.5));
pn_sequence_v=round(2*(rand(Mw/2,Nw/2)-0.5));
correlation_h(kk)=corr2(cH1,pn_sequence_h);
correlation_v(kk)=corr2(cV1,pn_sequence_v);
correlation(kk)=(correlation_h(kk)+correlation_v(kk))/2;
end
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
42
for (kk=1:length(thuyvan_vector))
if (correlation(kk) > mean(correlation))
thuyvan_vector(kk)=0;
end
end
% hiệu chỉnh thuyvan_vector và hiện thuỷ vân đã tìm thấy .
figure(2)
thuyvan=reshape(thuyvan_vector,Mo,No);
imshow(thuyvan,[ ])
title('Thuy van da tim thay')
% hiện thời gian thực hiện
tgth=cputime – tgbd
4.3. Đề xuất qui trình nén và thủy vân ảnh trong máy ảnh số.
Căn cứ qui trình nén ảnh trong phần 3.3, có thể đƣa ra một qui trình kết
hợp việc nén ảnh với việc nhúng thuỷ vân bản quyền ngay trong các máy ảnh
số. Qui trình này có thể bao gồm các bƣớc sau:
1. Xử lý trƣớc biến đổi
2. Biến đổi liên thành phần
3. Biến đổi riêng thành phần
4. Lƣợng tử hoá
5. Nhúng thủy vân bản quyền
6. Mã hoá
Do thời gian có hạn nên tác giả mới chỉ đƣa ra qui trình nhƣng chƣa có
điều kiện thử nghiệm.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
43
KẾT LUẬN
* Kết quả đạt đƣợc và ứng dụng của luận văn.
Luận văn đã trình bày các kỹ thuật nén ảnh, các nguyên lý nén và một
số khái niệm quan trọng trong lĩnh vực xử lý ảnh. Và tập trung trình bầy các
nguyên lý nén có tổn hao điển hình đang là các kỹ thuật cốt lõi của các chuẩn
nén (JPEG, JPEG2000, MPEG,…).
Với mục đích của luận văn là nghiên cứu về kỹ thuật nén ảnh sử dụng
biến đổi Wavelet từ đó áp dụng trong máy ảnh kỹ thuật số, nên đã đi sâu
nghiên cứu cơ sở lý thuyết của phép biến đổi này đồng thời cũng giới thiệu
chuẩn nén ảnh JPEG2000 – là chuẩn nén phổ biến dựa trên biến đổi Wavelet.
Hơn nữa chuẩn này cũng sẽ là một lựa chọn hiệu quả bổ sung chuẩn JPEG
đang đƣợc sử dụng trong các server chuyển đổi định dạng ảnh.
Luận văn cũng đã giới thiệu một kỹ thuật thủy vân nhúng trong ảnh số,
một phƣơng tiện, một công nghệ mới đƣợc đánh giá mang lại nhiều hứa hẹn
trong ứng dụng bảo vệ bản quyền, phát hiện xuyên tạc, điều khiển truy cập
đối với các dữ liệu đa phƣơng tiện. Qua quá trình khảo sát, có thể kết luận
rằng thực hiện kỹ thuật thuỷ vân ảnh số trong miền DWT làm cho hệ thống
trở nên mạnh mẽ và bền vững trong khi vẫn đảm bảo yêu cầu, đặc biệt là
trong các tác động nén JPEG2000, lọc trung bình, lọc Gaussian, lọc sắc nét và
co dãn ảnh. Xét về mặt thời gian cũng nhƣ độ phức tạp thì việc thực hiện
nhúng thuỷ vân trong miền DWT là hoàn toàn khả thi. Điều này mở ra một
hƣớng nghiên cứu dùng phép biến đổi sóng nhỏ trong kỹ thuật thuỷ vân cho
các ứng dụng đòi hỏi thời gian thực nhƣ điều khiển và chống sao chép hay
xác nhận lấy dấu tay.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
44
* Hƣớng phát triển nghiên cứu.
Tác giả xin đề cập một số hƣớng nghiên cứu trong tƣơng lai:
Tiến hành thực hiện kỹ thuật nhúng thuỷ vân cho chuỗi dữ liệu video
với một số điều chỉnh hợp lý để đạt kết quả tốt hơn.
Kết hợp thực hiện với dữ liệu audio để nhúng thuỷ vân cho dữ liệu của
các phƣơng tiện kỹ thuật số khác.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
45
TÀI LIỆU THAM KHẢO
1. PGS. TS. Hồ Anh Tuý - “Xử lý tín hiệu số” (2002)
2. Lƣơng Mạnh Bá - TS. Nguyễn Thanh Thuỷ - “Nhập môn xử
lý ảnh số”(1999)
3. Nguyễn Kim Sách – “Xử lý ảnh và video số” – NXB KHKT, 1997
4. Anil K. Jain - “Fundamental of Digital Image Processing”(1994)
5. Geoffrey Davis - Arina Nosratinia - “Waveled-Based Image
Encoding - Overview” (1997)
6. Jin Li - “Image Compression - the Mechanics of the
JPEG2000”(2001)
7. Michael David Adams - “JPEG2000 - The Next Standard for Still
Image Compressing” (12/2002)
8. Martin Vetterli - Jelena Kovacevic - “Wavelet and Subband
Coding”(1995)
9. R. Mehul and R. Priti, “Discrete Wavelet Transform Based Multiple
Watermarking Scheme” Proceedings of IEEE Region 10 Technical
Conference on Convergent Technologies for the Asia-Pacific,
Bangalore, India, October 14-17, 2003.
10. Thomas Sikora – “MPEG-1 and MPEG-2 Digital Video Coding
Standards”.
11. Thomas Sikora – “Digital Video Coding Standards and Their
Role in Video” Communications - Signal Processing for
Multimedia, J.S. Byrnes (Ed), IOS Press, 1999.
Các file đính kèm theo tài liệu này:
- 18LV09_CNTT_KHMTNguyenHongNgoc.pdf