Tìm hiểu mã hóa-nén dùng phép biến đổi TC (Transform Coding) Phần II: Tìm hiểu thuật tốn 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 số cơng cụ, phần mềm nén ảnh có ứng dụng công nghệ nén ảnh JPEG 2 Phần I: Tìm hiểu mã hóa-nén dùng phép biến đổi TC Sơ đồ TC (Transform Coding) 3 Phần II: Tìm hiểu thuật tốn sơ đồ cơng nghệ nén JPEG cơ bản (baseline JPEG) Sơ đồ mã hóa Baseline JPEG 4 Phần II: Tìm hiểu thuật tốn sơ đồ cơng nghệ nén JPEG cơ bản (baseline JPEG) I Tiền xử lí 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 thành phần màu sắc Công thức biến đổi từ RGB sang YCbCr
Trang 1Bà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 MSSVPhạm Thanh Bình 20183693Phạm Đức Đạt 20183704Phạm Văn Hưởng 20183763
Trang 2Phầ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)
Trang 3đổi TC
Sơ đồ TC (Transform Coding)
Trang 4sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
Sơ đồ mã hóa Baseline JPEG
Trang 5sơ đồ 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:
Trang 6Hình ảnh minh họa:
Trang 7sơ đồ 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ự
Trang 8sơ đồ 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
Trang 9sơ đồ 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:
Trang 11Ví dụ minh họa
Trang 12Đố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à
Trang 14Ví dụ minh họa
Trang 15chuỗi số một chiều Trong kỹ
thuật JPEG sử dụng phương
pháp đọc theo đường zig-zag
Trang 16minh họa
Trang 17sơ đồ 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:
Trang 18sơ đồ 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
Trang 19Bảng phân loại hệ số AC và DC:
Trang 20Bảng mã Huffman cho thành phần DC
Trang 21sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
II Mã hóa xử lí nén
5 Mã hóa thành phần AC
Sơ đồ khối của bộ mã hóa thành phần AC:
Chuỗi các hệ số AC được lần lượt đưa vào bộ mã hóa RLC Ở đầu ra ta nhận được các từ mã bao gồm hai thành phần:
Trang 22Bảng mã
huffman
cho thành
phần AC:
Trang 23Sau hệ số khác "0" cuối cùng, đặt từ mã đặc biệt để báo hiệu kết thúc khối, từ
mã này có tên là EOB – End Of Block Sử dụng bảng phân loại chúng ta tìm được loại của biên độ các hệ số Tín hiệu được đưa vào mã hóa Huffman có cấu trúc sau:
(1,2)(-2), (0,1)(-1), (0,1)(-1), (0,1)(-1) (2,1)(-1), (0,0)
Trong đó:
Trang 24sơ đồ công nghệ nén JPEG cơ bản (baseline JPEG)
III Hậu xử lí
Từ mã Hufman cho từng cặp giá trị chạy và loại Kết quả mã hóa các thành
phần AC và DC được tập hợp lại thành chuỗi bít có dạng như sau:
Như vậy ta cần 35 bits để truyền đi block 64 điểm ảnh, như vậy hiệu quả
nén của phương pháp JPEG trong trường hợp này là 0.5 bit/điểm ảnh
Sắp xếp, ghép các khối tạo thành dòng bit dữ liệu các từ mã và lưu file theo
định dạng file jpg chuẩn JPEG quy định
Trang 25Tỷ số nén
CR = (Dung lượng - Kích thước dữ liệu ban đầu) / Kích thước dữ liệu sau nén (ví dụ 35:1)
- Tỷ số bit/ pixel đối với ảnh Nb = Số bit sau khi nén/ Tổng số điểm ảnh (bpp)
- Tỷ số nén tốc độ dòng bit video (bit/s) , ví dụ 30:1
Độ tổn hao
- Nén không mất mát thông tin (lossless): không tổn hao
- Nén có mất mát thông tin (lossy) : Các độ đo sai số MSE, SNR (db)
Độ phức tạp
- Độ phức tạp về thời gian : Nén thời gian thực/ nén không yêu cầu thời gian thực
- Độ phức tạp về không gian, bộ nhớ
Trang 26có hiện nay và các ứng dụng của công nghệ nén ảnh JPEG.
I Các phần mềm hỗ trợ nén ảnh JPEG
JPEG Optimizer
Dựa trên kỹ thuật MagiCompress ™,
JPEG Optimizer có thể nén tới 100 hình
ảnh trong một lần mà không làm giảm chất
lượng Điều này không chỉ tiết kiệm thời
gian mà còn hạn chế sử dụng băng phông
Trang 28có hiện nay và các ứng dụng của công nghệ nén ảnh JPEG.
I Các phần mềm hỗ trợ nén ảnh JPEG
Radical Image Optimaize Tool
RIOT giúp xử lý, tối ưu hóa làm
giảm dung lượng hình ảnh nhanh
chóng Bên cạnh đó cũng hỗ trợ thay
đổi kích thước hình ảnh tối ưu gần
tương đương như file ban đầu Đây là
phần mềm hoàn toàn miễn phí
Trang 29có hiện nay và các ứng dụng của công nghệ nén ảnh JPEG.
I Các phần mềm hỗ trợ nén ảnh JPEG
OptimiZilla
Các hình ảnh được thu nhỏ tới kích
thước tối ưu nhất có thể nhưng giữ
nguyên mức chất lượng yêu cầu Cũng
như có thể tùy chọn xem trước để so
sánh mức chất lượng của hình ảnh cho
trước và sau khi nén
Trang 30có hiện nay và các ứng dụng của công nghệ nén ảnh JPEG.
I Các phần mềm hỗ trợ nén ảnh JPEG
CompressJPEG
CompressJPEG sử dụng thuật toán
gần giống như Optimizilla Nó hỗ trợ số
lượng ảnh lớn lên tới 20 bức ảnh JPEG
Trang 31có hiện nay và các ứng dụng của công nghệ nén ảnh JPEG.
II Các ứng dụng thực tế ảnh JPEG
Thị trường phát thanh truyền hình
JPEG được sử dụng trong ngành truyền hình dưới dạng
nén lớp giữa cho quy trình làm việc thời gian thực Nó
cung cấp những lợi thế độc đáo cho sản xuất video nén và
có thể thay thế video không nén Hiện tại, nó được sử
dụng trong các ứng dụng video IP chất lượng cao, độ trễ
thấp Ví dụ: liên kết (sự kiện trực tiếp đến trường quay) và
cơ sở hạ tầng phòng thu phát sóng IP mới nhất
Trang 32có hiện nay và các ứng dụng của công nghệ nén ảnh JPEG.
II Các ứng dụng thực tế ảnh JPEG
Kho lưu trữ hình ảnh và cơ sở dữ liệu
Với ưu điểm có thể nén dung lượng, điều này giúp lưu trữ được nhiều hình ảnh hơn tạo tiền đề cho việc tìm kiếm và phân loại
Trang 34THANK YOU !