Mô tả:
Bài tập lớn
Truyền thông đa phương tiện
Mã hóa - nén ảnh JPEG và ứng dụng
GVHD: PGS.TS. Nguyễn Thị Hoàng Lan
Sinh viên
MSSV
Phạm Thanh Bình 20183693
Phạm Đức Đạt
20183704
Phạm Văn Hưởng 20183763
1
Phần I: Tìm hiểu về mã hóa-nén dùng phép
biến đổi TC (Transform Coding)
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline
JPEG)
Mục lục
• Sơ đồ nén ảnh gồm 3 bước:
• Tiền xử lí:
• Mã hóa xử lí-nén:
• Hậu xử lí:
• Tính độ đo hiệu năng của sơ đồ nén:
• Tỉ số nén.
• Độ tổn hao.
Phần III: Tìm hiểu về một số công cụ, phần
mềm nén ảnh đang có hiện nay và các ứng
dụng của công nghệ nén ảnh JPEG.
2
2
Phần I: Tìm hiểu về mã hóa-nén dùng phép biến
đổi TC
Sơ đồ TC (Transform Coding)
3
3
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
Sơ đồ mã hóa Baseline JPEG
4
4
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
I. Tiền xử lí
1. Xử lý màu
Chuyển từ không gian màu RGB sang YCBCR .
Mục đích: tăng thành phần độ chói, giảm các thành phần màu sắc.
Công thức biến đổi từ RGB sang YCbCr:
5
5
Hình ảnh minh họa:
6
6
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
I. Tiền xử lí
2. Thực hiện bù mức (level offset) các giá trị điểm ảnh
Lúc mã hóa -128 với mỗi điểm ảnh
Lúc giải mã +128 với mỗi điểm ảnh
Mục đích của điều này để đảm bảo tất cả các hệ số DCT sẽ là các đại
lượng có dấu với dải rộng động tương tự.
7
7
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
I. Tiền xử lí
3. Chia khối ảnh đầu vào thành các khối 8x8 pixels để xử lý khối
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
8
8
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
II. Mã hóa xử lí nén
1.Biến đổi Cosin (DCT) đối với mỗi khối
Công đoạn đầu tiên của quá trình nén theo JPEG là biến đổi cosin rời rạc
DCT (Discrete Cosine Transform). DCT biến đổi dữ liệu từ miền không gian sang
miền tần số.
Biến đổi DCT được thực hiện trong phạm vi các khối 8*8 mẫu tín hiệu chói Y
và các khối tương ứng của tín hiệu màu (Cb, Cr)
Biến đổi DCT hai chiều (2-D) được dùng cho các khối ảnh có kích thước 8x8.
Quá trình biến đổi thuận DCT (Forward DCT) dùng trong tiêu chuẩn JPEG được
định nghĩa như sau:
9
9
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
II. Mã hóa xử lí nén
Chú ý: F(0, 0) là giá trị trung bình của tất cả các điểm ảnh trong block.
10
10
Ví dụ minh họa
11
11
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
II. Mã hóa xử lí nén
2. Lượng tử hóa
Bước tiếp theo của quá trình nén ảnh là bước lượng tử hóa các hệ số DCT
F(u , v) với mục đích chuyển các giá trị hệ số sang số nguyên để chuẩn bị cho
mã hóa huffman.
Mã hóa huffman là một thuật toán mã hóa dùng để nén dữ liệu. Nó dựa trên
bảng tần số xuất hiện các ký tự cần mã hóa để xây dựng một bộ mã nhị phân
cho các ký tự đó sao cho dung lượng (số bit) sau khi mã hóa là nhỏ nhất.
Đố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 DCT
Nén được thể 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ị loại bỏ qua với ít biến dạng có thể nhìn thấy
12
12
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
II. Mã hóa xử lí nén
Để thực hiện việc nén dữ liệu ta thực hiện chia các hệ số
DCT cho bảng trọng số Q(u, v).
13
13
Ví dụ minh họa
14
14
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
II. Mã hóa xử lí nén
3. Quét zig-zag
Để mã hóa entropy các hệ số
Fq (u, v ), trước hết cần biến đổi
ma trận hệ số Fq (u, v ) thành
chuỗi số một chiều. Trong kỹ
thuật JPEG sử dụng phương
pháp đọc theo đường zig-zag.
15
15
Ví dụ
minh họa
16 16
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
II. Mã hóa xử lí nén
4. Mã hóa thành phần DC
Các hệ số DC là giá trị trung bình của các khối ảnh 8x8. Độ chói trung bình
của các block ảnh gần nhau thường ít biến đổi, do đó trong chuẩn nén JPEG,
các hệ số DC được mã hóa theo phương pháp DPCM. Để tăng hiệu suất nén,
kết quả nhận được sau đó được mã hóa tiếp bằng Huffman.
Sơ đồ mã hóa thành phần DC:
17
17
Phần II: Tìm hiểu thuật toán của
sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
II. Mã hóa xử lí nén
Hệ số DC của các block DCT được lần lượt đưa tới bộ DPCM. Thành phần
sai số giữa hai hệ số liên tiếp sẽ được mã hóa trong bộ mã Huffman. Quá
trình mã hóa Huffman được thực hiện cho thành phần DC như sau:
- Dò tìm trong bảng phân loại để tìm “loại” của giá trị ∆DC. (“loại” chính là
chiều dài từ mã dùng để mã hóa thành phần ∆DC).
- Dùng bảng mã Huffman cho thành phần DC để tìm ra từ mã cho “loại” ∆DC
tìm được ở trên
- Mã hóa nhị phân giá trị ∆DC
- Ghép các từ mã Huffman và giá trị nhị phân của ∆DC để có được từ mã
cho thành phần DC.
18
18
Bảng phân loại hệ số AC và DC:
19
19
Bảng mã Huffman cho thành phần DC
20
20
- Xem thêm -