Với sự phát triển của khoa học công nghệ, truyền hình không ngừng được cải tiến so với các hệ thống truyền hình thô sơ, truyền hình đen trắng và màu, hệ thống tivi và truyền hình kỹ thuậ
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ
MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÁO CÁO BÀI TẬP LỚN MÔN HỌC
PHƯƠNG PHÁP TÍNH
ĐỀ TÀI 21 TÌM HIỂU VỀ BIẾN ĐỔI COSIN RỜI RẠC
TRONG NÉN ẢNH
Lớp L09 Nhóm 13 GVHD: Lê Thị Yến Nhi
Trang 2MỤC LỤC
I PHẦN MỞ ĐẦU – ĐẶT VẤN ĐỀ 3
II CƠ SỞ LÝ THUYẾT 4
1 Biến đổi cosin rời rạc (DCT) 4
2 Ứng dụng DCT trong nén ảnh 4
2.1 Quy trình nén ảnh 4
2.2 Ưu và nhược điểm 8
III CODE MATLAB 9
IV KẾT LUẬN 10
V TÀI LIỆU THAM KHẢO 11
Nguyễn Văn Hóa 2311094 100%
Lương Tuấn Kiệt 2311769 100%
Nguyễn Vũ Thiên Bình 2310302 100%
Cao Thanh Kiệt 2311751 100%
Trang 3I PHẦN MỞ ĐẦU – ĐẶT VẤN ĐỀ
Nhìn chung, truyền hình đã đáp ứng được nhiều nhu cầu quan trọng của con người như giải trí, giáo dục, văn hóa, chính trị, nghệ thuật Với sự phát triển của khoa học công nghệ, truyền hình không ngừng được cải tiến so với các hệ thống truyền hình thô sơ, truyền hình đen trắng và màu, hệ thống tivi và truyền hình kỹ thuật số
đã có bước nhảy vọt về chất với việc số hóa tín hiệu truyền hình. Sự xuất hiện của công nghệ truyền hình kỹ thuật số có nhiều ưu điểm so với truyền hình analog như: khả năng chống nhiễu tốt, chất lượng âm thanh, hình ảnh tốt và nhất quán cùng nhiều hiệu ứng đặc biệt mà truyền hình analog không thể làm được
Đặc biệt trong việc truyền dữ liệu, truyền tải, ghi âm, tín hiệu video hình ảnh đen trắng, lồng tiếng hình ảnh đen trắng, nhân bản hình ảnh màu và quảng cáo đòi hỏi phải kết hợp tín hiệu thành phần thành một tín hiệu kênh duy nhất. Sau đó, nhu cầu về các dịch vụ truyền hình đa chức năng (multimedia) và tương tác hai chiều giữa trung tâm phát hình và người sử dụng đòi hỏi độ rộng kênh truyền phải lớn mà dải thông của các kênh thông tin hạn chế Do vậy để đáp ứng nhu cầu về truyền dẫn và lưu giữ thông tin ngày càng tăng trưởng mạnh mẽ theo cấp số nhân, bên cạnh việc nghiên cứu và áp dụng các công nghệ thông tin mới thì việc áp dụng các kỹ thuật nén dữ liệu cũng đóng vai trò quyết định.Trong những năm gần đây, có rất nhiều các phương pháp đã và đang được nghiên cứu rộng rãi để thực hiện nén ảnh Tất cả đều với một mục đích chung là làm thế nào để biểu diễn một ảnh với ít “bit” nhất để có thể tối thiểu hoá dung lượng kênh truyền và không gian lưu trữ trong khi vẫn giữ được tính trung thực của ảnh Điều này tương đương với việc biểu diễn ảnh có độ tin cậy cao nhất với tốc độ “bit” nhỏ nhất Để hiểu sâu hơn về lĩnh vực nén dữ liệu
đặc biệt là nén ảnh số, nhóm chúng em đã chọn đề tài: “TÌM HIỂU VỀ
BIẾN ĐỔI COSIN RỜI RẠC ĐỂ NÉN ẢNH”
Trang 4II CƠ SỞ LÝ THUYẾT
1 Biến đổi cosin rời rạc (DCT)
DCT (Discrete Cosine Transform): biến đổi dữ liệu dưới dạng biên độ thành dữ liệu dưới dạng tần số Mục đích: loại bỏ sự dư thừa dữ liệu trong không gian
DCT chia thành 2 loại:
DCT một chiều
DCT hai chiều
Thuật toán DCT là phần quan trọng nhất trong nén ảnh JPEG, mình sẽ
sử dụng DCT hai chiều cho code nên trong bài viết này nhóm em xin giới thiệu qua về DCT-2d
F(u,v)=(2
2 ( 2
2∑
i=0
N−1
∑
J =0
M−1
2 N(2 ⅈ+1)].cos[ πv
2 M (2 ⅈ+1)]⋅f(ⅈ, j)
Chú thích:
Hình ảnh đầu vào là N by M;
f (i, j) là cường độ của pixel trong hàng i và cột j;
F (u, v) là hệ số DCT trong hàng k1 và cột k2 của ma trận DCT
Đối với hầu hết các hình ảnh, phần lớn năng lượng tín hiệu nằm ở tần số thấp; chúng xuất hiện ở góc trên bên trái của DCT
Nén được thực hiện do các giá trị bên phải thấp hơn biểu thị tần
số cao hơn và thường nhỏ - đủ nhỏ để bị bỏ qua với ít biến dạng
có thể nhìn thấy
Đầu vào DCT là một mảng 8-8 số nguyên Mảng này chứa mức độ thang màu xám của mỗi pixel;
Pixel 8 bit có các mức từ 0 đến 255
Trang 5II.1. Quy trình nén ảnh
Chia ảnh thành các khối :
Ảnh được chia thành các khối pixel không chồng lấp (thường là 8x8) Mục đích: tính toán DCT cho từng vùng dư thừa dữ liệu khác nhau
Tất cả các block có cùng kích thước và mỗi block là một ma trận điểm ảnh 8×8 pixel được lấy từ một ảnh màn hình theo chiều từ trái sang phải, từ trên xuống dưới Kích thước block là 8×8 được chọn bởi hai lý do sau:
Kích thước block lớn làm tăng độ phức tạp thuật toán
Khoảng cách giữa các pixel vượt quá 8 sẽ làm cho hàm tương quan suy giảm nhanh
Biến đổi DCT:
Mỗi khối 8x8 pixel được biến đổi bằng DCT DCT là một phép biến đổi tuyến tính, chuyển đổi dữ liệu từ miền không gian (pixel) sang miền tần số Kết quả của biến đổi DCT là một ma trận hệ số DCT, trong đó các hệ số ở góc trên bên trái đại diện cho các tần số thấp (thông tin quan trọng) và các hệ số ở góc dưới bên phải đại diện cho các tần số cao (thông tin chi tiết).
Trang 6Lượng tử hóa
Ma trận hệ số DCT được lượng tử hóa bằng cách chia mỗi hệ số cho một giá trị lượng tử tương ứng và làm tròn kết quả Các giá trị lượng tử được lựa chọn dựa trên các đặc tính thị giác của con người, với các hệ số tần số cao thường được lượng tử hóa mạnh hơn (chia cho giá trị lượng tử lớn hơn) vì mắt người ít nhạy cảm
Chức năng cơ bản: chia các hệ số F(u,v) cho các hệ số ở vị trí tương ứng trong bảng lượng tử Q(u,v) để biểu diễn số lần nhỏ hơn các giá trị cho phép của hệ số DCT:
Trong phần lượng tử hóa, để biến đổi mảng hai chiều các hệ số Fq(u,v) thành một chuối số một chiều ta sử dụng qua thuật toán zigzag
Trang 7Thu được kết quả là một chuỗi các số của ma trận cũ được lấy theo hình zigzag từ ô thứ nhất đến ô cuối cùng
Mã hóa Entropy:
Mục đích: Làm giảm độ dư thừa thống kê trong các phần tử được
mã hóa để truyền
Mã hóa entropy sử dụng mã hóa VLC và mã hóa RLC
RLC (Run Length Code): mã hóa độ dài chạy thực hiện mã hóa một hệ số khác 0 sau giá trị DC bằng một từ mã
VLC (Variable Length Code): Mã hóa độ dài biến đổi được thực thi bằng cách đặt các từ mã ngắn cho các mức có xác suất xuất hiện cao và các từ mã dài cho các mức có xác suất xuất hiện thấp
Ghép các khối
Các khối đã mã hóa được ghép lại để tạo thành ảnh nén Thông tin về các giá trị lượng tử được sử dụng cũng được lưu trữ để giải nén ảnh.
Trang 8II.2. Ưu và nhược điểm
Ưu điểm của nén ảnh bằng DCT:
Hiệu quả nén cao: DCT có khả năng loại bỏ các tần số cao
không quan trọng, giúp giảm kích thước dữ liệu ảnh đáng kể mà không làm giảm chất lượng ảnh quá nhiều
Phổ biến: DCT được sử dụng rộng rãi trong các tiêu chuẩn nén
ảnh như JPEG, MPEG và H.26x
Nhược điểm của nén ảnh bằng DCT:
Mất mát: Nén ảnh bằng DCT là một phương pháp nén mất mát,
nghĩa là một phần thông tin của ảnh gốc sẽ bị mất đi trong quá trình nén và không thể khôi phục hoàn toàn
Hiện tượng khối: Ở mức nén cao, ảnh nén bằng DCT có thể
xuất hiện hiện tượng khối, làm giảm chất lượng hình ảnh
Trang 9III CODE MATLAB
Dưới đây là ví dụ về cách sử dụng DCT để nén một ảnh trong MATLAB:
1 Đọc và chuẩn bị ảnh:
2 Chia ảnh thành các block 8x8:
3 Áp dụng DCT cho từng block:
4 Lượng tử hóa:
5 Giải lượng tử hóa và DCT ngược:
6 Ghép các block lại thành ảnh:
7 Loại bỏ phần đệm và hiển thị:
Trang 10*NHẬN XÉT CHUNG
Chất lượng hình ảnh: Quan sát ảnh gốc và ảnh tái tạo, bạn có thể
nhận thấy một số khác biệt nhỏ về độ sắc nét và chi tiết Ảnh tái tạo có thể bị mất một chút chi tiết, đặc biệt là ở các vùng có nhiều chi tiết nhỏ hoặc độ tương phản cao
Kích thước file: So sánh kích thước file của ảnh gốc (Picture1.jpg) và
ảnh tái tạo (thường được lưu dưới dạng file jpg mới) Bạn sẽ thấy kích thước file ảnh tái tạo nhỏ hơn đáng kể so với ảnh gốc
=> giảm đáng kể kích thước ảnh nhưng chất lượng ảnh giảm tối
thiểu ở mức độ mà mắt người khó nhận ra
Cải thiện và tối ưu hóa:
1 Tối ưu hóa ma trận lượng tử (Q): Ma trận Q sử dụng là ma trận
lượng tử mặc định của JPEG Tuy nhiên, có thể tinh chỉnh ma trận này để đạt được mức nén mong muốn và chất lượng hình ảnh tốt hơn Ví dụ, tăng các giá trị trong ma trận Q sẽ làm tăng độ nén nhưng giảm chất lượng hình ảnh
2 Sử dụng Zigzag Scan: Sau khi lượng tử hóa, nên sắp xếp các hệ
số DCT theo thứ tự zigzag trước khi mã hóa Việc này giúp tận dụng tính chất tập trung năng lượng ở các tần số thấp của ảnh, từ
đó cải thiện hiệu quả nén
3 Mã hóa Entropy (RLE hoặc Huffman): Để nén ảnh JPEG hiệu
quả hơn, cần mã hóa entropy dữ liệu sau khi lượng tử hóa và sắp
Trang 11xếp zigzag Hai phương pháp mã hóa entropy phổ biến là Run-Length Encoding (RLE) và Huffman Coding
IV KẾT LUẬN
Biến đổi cosin rời rạc (DCT) đã khẳng định vai trò quan trọng trong lĩnh vực nén ảnh, đặc biệt là trong chuẩn JPEG phổ biến Thông qua việc chuyển đổi tín hiệu ảnh từ miền không gian sang miền tần số, DCT cho phép loại bỏ hiệu quả các thành phần tần số cao, ít quan trọng đối với mắt người, từ đó giảm đáng kể kích thước dữ liệu ảnh mà không làm giảm quá nhiều chất lượng hình ảnh
Bài tập lớn này đã cung cấp cái nhìn tổng quan về DCT, từ cơ sở lý thuyết đến ứng dụng thực tế trong nén ảnh Việc thực hành với MATLAB đã giúp minh họa rõ ràng quá trình biến đổi DCT, lượng tử hóa,
và tái tạo lại ảnh từ các hệ số DCT
Tuy nhiên, DCT cũng có những hạn chế nhất định Quá trình nén ảnh
sử dụng DCT là một quá trình nén mất mát, nghĩa là một phần thông tin của ảnh gốc sẽ bị mất đi sau khi nén Mức độ mất mát này phụ thuộc vào ma trận lượng tử hóa được sử dụng Việc lựa chọn ma trận lượng tử hóa phù hợp là một bài toán cân bằng giữa chất lượng ảnh và
tỷ lệ nén
Trong tương lai, với sự phát triển của công nghệ, các kỹ thuật nén ảnh mới có thể sẽ được phát triển để khắc phục những hạn chế của DCT và đạt được hiệu quả nén tốt hơn Tuy nhiên, DCT vẫn sẽ là một công cụ quan trọng và không thể thiếu trong lĩnh vực nén ảnh trong nhiều năm tới
Vì thời gian và kiến thức có hạn nên bài báo cáo của chúng em còn nhiều thiếu sót cùng với đó là một đề tài khá lạ với chương trình học thường ngày, nên bài báo cáo của chúng em chỉ mới dừng lại ở việc tìm hiểu, đúng như tên đề tài nhóm đã chọn Nhưng với đề tài trên, nhóm
đã lên kế hoạch làm việc và phân chia công việc cụ thể cho từng thành viên, các thành viên trong nhóm với tinh thần phối hợp, nâng cao kiến thức đã hoàn thành được bài báo cáo này Qua bài báo cáo nhóm đã rút ra:
- Về kiến thức
Trang 12+ Ứng dụng của phép biến đổi cosin rời rạc trong thực tế, cụ thể là qui trình nén ảnh
+ Hiểu được qui trình và một vài bước mã hóa dữ liệu trong nén ảnh
- Về kĩ năng
+ Biết cách chọn lọc thông tin đầy đủ
+ Tìm hiểu tổng quát và chi tiết cách hoạt động của qui trình nén ảnh
V TÀI LIỆU THAM KHẢO
Viblo Asia: Nén ảnh theo chuẩn JPEG: https://viblo.asia/p/nen-anh-theo-chuan-jpeg-maGK7pzOZj2
Scribd: Phương pháp nén ảnh theo chuẩn
JPEG:https://www.scribd.com/doc/52683135/Ph
%C6%B0%C6%A1ng-phap-nen-%E1%BA%A3nh-theo-chu
%E1%BA%A9n-JPEG