Tải bản đầy đủ (.docx) (12 trang)

Tìm hiểu về chuẩn nén JPEG

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 (497.97 KB, 12 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CƠNG NGHỆ THƠNG TIN


BÀI BÁO
Tìm hiều chuẩn nén dữ liệu ảnh JPEG
Truyền thơng đa phương tiện
Lê Hồi Linh - 60130509

GV hướng dẫn: Đinh Đồng Lưỡng
Nha Trang, tháng 11 năm 2021
1|13


Table of Contents

2|13


1. Giới thiệu chung
1.1. JPEG là gì ?

JPEG viết tắt của Joint Photographic Experts Group là tên của một nhóm nghiên
cứu đã phát minh ra chuẩn này. Từ năm 1986 nhóm nghiên cứu đã đưa ra chuẩn nén
ảnh JPEG và đến năm 1994, JPEG được khẳng định với tiêu chuẩn ISO 10918 – 1.
JPEG là định dạng nén ảnh có tổn thất, mặc dù có sự thay đổi của các biến thể nhưng
nó vẫn giữ được nguyên lý của chuẩn nén cơ bản JPEG (các định dạng mở rộng khác
nhau như .jpg, .jpeg, .jpe, .jfif và .jif).
Phương pháp nén ảnh theo chuẩn JPEG có thể đạt hệ số nén tới 80:1 hay lớn hơn,
nhưng phải chịu mất mát thông tin (ảnh sau khi giải nén khác với ảnh ban đầu),


lượng thông tin mất mát tăng dần theo hệ số nén. Tiêu chuẩn này có hai phương
pháp nén ảnh cơ bản là: phương pháp dựa trên biến đổi cosin rời rạc (Discrete
Cosine Transformation - DCT) được đặc tả dành cho nén ảnh có tổn thất (lossy) và
phương pháp tiên đốn (predictive) được đặc tả dành cho nén ảnh không tổn thất
(lossless).
1.2. Ưu nhược điểm của phương pháp nén JPEG
 Ưu điểm

JPEG cho phép ảnh nén với tỷ số nén lên đến 80:1 hoặc cao hơn, hiển thị
các hình ảnh đầy đủ màu hơn (full - color). JPEG cũng được sử dụng rất nhiều
trên Web. Lợi ích chính của chúng là chúng có thể hiển thị các hình ảnh với
màu chính xác true – color (chúng có thể lên đến 16 triệu màu), điều đó cho
phép chúng được sử dụng tốt nhất cho các hình ảnh chụp và hình ảnh minh họa
có số lượng màu lớn.
 Nhược điểm
Nhược điểm chính của định dạng JPEG là chúng được nén bằng thuật toán
lossy (mất dữ liệu). Điều này có nghĩa rằng hình ảnh sẽ bị mất một số chi tiết
khi chuyển sang định dạng JPEG. Đường bao giữa các khối màu có thể xuất
hiện nhiều điểm mờ. và các vùng sẽ mất sự rõ nét, tỉ số nén càng cao thì sự mất
mát thơng tin trên ảnh JPEG càng lớn.
2. Các loại JPEG

Hiện tại có 3 phiên bản về JPEG được cơng bố như :
3|13


-

Tiêu chuẩn JPEG năm 1992. sử dụng mã hóa ảnh tĩnh liên tục có tổn thất (lossy)
dựa trên biến đổi cosin rời rạc DCT. Mục tiêu của tiêu chuẩn JPEG năm 1992 là

hỗ trợ nén ảnh với nhiều kích cỡ/khơng gian màu sắc, với tỉ lệ nén theo yêu cầu
người dùng, hỗ trợ tái tạo lại ảnh với chất lượng cao và hỗ trợ quản lý mức độ

-

phức tạp tính tốn khi nén ảnh.
Tiêu chuẩn JPEG-LS: sử dụng mã hóa ảnh tĩnh liên tục không tổn thất (lossless)

-

và tổn thất ít (nearlossless) dựa trên mã hóa tiên đốn và mã hóa ngẫu nhiên.
Tiêu chuẩn JPEG 2000: là hệ thống mã hóa hình ảnh mà kỹ thuật nén dựa trên kỹ
thuật sóng ngắn.

3. Kỹ thuật nén ảnh JPEG
3.1. Giới thiệu về nén ảnh jpeg

Các kỹ thuật nén ảnh hướng tới việc giải quyết bài tốn giảm khối lượng thơng tin
cần thiết để mơ tả ảnh số. Nền tảng của q trình nén là loại bỏ dư thừa có trong tín
hiệu.
Ngun lý nén đơn giản, dựa vào sự thiếu nhạy cảm của mắt người với không
gian màu U,V để ẩn giấu các thơng tin dư thừa trong ảnh.
Nén jpeg có thể thực hiện bởi bốn phương pháp mã hóa :
- Khơng tổn thất (Sequential lossless)
- Biến đổi cosin rời rạc tuần tự (Sequential DCT-based): là định dạng cơ bản
-

của JPEG
Biến đổi cosin rời rạc lũy tiến (Progressive DCT-based
Phân cấp (hierarchical): cho phép nhiều ảnh có độ phân giải khác nhau


được tổ chức trong cùng một tệp tin.
3.2. Nén ảnh jpeg
3.2.1. Sơ đồ

4|13


Hình 1:Sơ đồ khối bộ mã hóa ảnh theo JPEG
3.2.2. Không gian màu
Trước khi đưa tới bộ chuyển đổi DCT, ảnh màu gốc phải được phân tích thành các

ảnh đơn sắc và được số hóa theo một trong những tiêu chuẩn hiện hành. Ảnh màu
trong không gian của 3 màu RGB (Red Green Blue) được biến đổi về hệ YUV. Thị
giác của con người rất nhạy cảm với thành phần Y và kém nhạy cảm với hai loại U
và V. Phương pháp JPEG đã nắm bắt phát hiện này để tách những thông tin thừa của
ảnh. Hệ thống nén thành phần Y của ảnh với mức độ ít hơn so với U, V, bởi người ta
ít nhận thấy sự thay đổi của U và V so với Y .Ánh chói (Y) và hai màu đơn sắc UV
được chia thành các block 8*8 và đưa tới bộ chuyển đối DCT. Kích thước các block
8*8 được chọn bởi 2 lý do:
- Các cơng trình nghiên cứu cho thấy hàm tương quan giữa các điểm ảnh suy
-

giảm rất nhanh khi khoảng cách giữa các pixel vượt quá 8.
Kích thước 8*8 tiện lợi cho việc tính tốn và thiết kế phần cứng.

5|13


Hình 2: Chia các block 8*8

3.2.3. Giai đoạn DCT

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ố.

Hình 3: block 8*8
Để xử lý đồng nhất các thành phần hình ảnh khác nhau, bộ mã hóa DCT thường
yêu cầu giá trị trung bình dự kiến cho tất cả các pixel bằng 0. Trừ 128 cho mỗi giá trị
pixel sẽ thu được giá trị pixel từ -128 đến 127.
Biến đổi DCT được thực hiện trong phạm vi các khối 8*8.
F(u,v) =
Trong đó :
- f ( j ,k) là giá trị pixel tại tọa độ (x, y)
- F(u,v) – các hệ số của khối DCT 8*8
- C (u),C (v )=
6|13


Phương trình trên là kết quả của hai phương trình DCT một chiều, một cho tần số
ngang và một cho tần số dọc.

Hình 4: Sau khi DCT
3.2.4. 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 làm giảm số lượng bit cần thiết dùng để mô tả những hệ số đó. Mắt người
thường tập trung vào thơng tin tần số thấp hơn nhiều so với thông tin tần số cao. Do đó,
các lỗi nhỏ trong biểu diễn tần số cao không dễ dàng nhận thấy, và việc loại bỏ hoàn
toàn một số thành phần tần số cao thường có thể chấp nhận được bằng mắt thường. Q

trình lượng tử hóa JPEG tận dụng lợi thế này để giảm lượng thơng tin DCT cần được
mã hóa cho một khối 8 × 8 nhất định.
Để thực hiện q trình nén dữ liệu, ma trận các hệ số khai triển sau DCT phải được
chia cho bảng trọng số Q(u,v) để loại bỏ một phần các hệ số DCT có biên độ giá trị lớn
hơn, kết quả sẽ được làm tròn (bỏ đi các phần thập phân):
Fq(u,v) = round

7|13


(b)

(a)

Hình 5: Bảnh lượng tử (a) và kết quả lượng tử (b)

3.2.5. Phân loại 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. Việc đọc 64 hệ số của khối 8*8 pixel theo đường zig-zac làm tăng tối đa độ dài
của chuỗi các giá trị 0 liên tiếp. Như vậy, hiệu quả nén khi dùng mã RLC sẽ tăng.

AC01

DC

AC07

AC70


AC77
Hình 6: Quét zig-zag các hệ số lượng tử hóa DCT

Theo phân loại zig-zag ta được khối 64*1
15

0

-2

-1

-1

-1

0

0

-1

……..

63 hệ số AC còn lại là hệ số xoay chiều (cịn gọi là thành phần xoay chiều).
3.2.6. Mã hóa DC
8|13



Hệ số DC (cịn được gọi là thành phần khơng đổi), xác định màu sắc cơ bản cho
toàn bộ khối. 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. Trên lý thuyết,
dải động của các giá trị nhận được sau khi mã hóa DPCM lớn gấp đơi dải động của
các hệ số DCT, có nghĩa là thành phần này sẽ có giá trị nằm trong khoảng −2 11 đến
211-1. Số lượng bit cần thiết để mã hóa thành phần DC có thể lên tới 11.

Hình 7: Phân loại hệ số

Hình 8: Bảng mã Huffman cho thành phần DC
Thành phần DC trong block trên hình 6 có giá trị DCn = 15. Giả sử thành phần DC
của block trước đó là DCn-1 = 12.
9|13


Như vậy, kết quả mã hóa DPCM sẽ là giá trị ∆DC = DC n−DCn-1 = 3. Trên bảng 7,
∆DC = 3 thuộc “size” 2. Dựa vào bảng mã Huffman ta có từ mã tương ứng với “size” 2
là (011) → 2 chính là độ dài từ mã. Giá trị ∆ DC = 3 được biểu diễn bằng chuối nhị
phân “11”. Như vậy từ mã DC sẽ là 01111.
3.2.7. Mã hóa AC

Mã hóa Entropy là một dạng nén khơng mất dữ liệu. Nó liên quan đến việc sắp xếp
các thành phần hình ảnh theo thứ tự " zig-zag" sử dụng thuật tốn run-length encoding
(RLE) để nhóm các tần số tương tự lại với nhau. Thay vì phải lưu trữ tồn bộ các điểm
ảnh, chỉ cần lưu trữ chúng bằng cách sử dụng các cặp (Giá trị chạy, giá trị).
Sau quá trình quét zig-zag, từ block hệ số DCT trên hình 6 ta nhận được chuỗi hệ số
AC sau: 0, -2, -1, -1, -1, 0 , 0, -1, 0 , 0…… Chuỗi bít nhận được sau bộ mã RLC là:
(1,-2) (0, -1) (0, -1) (0, -1) (2,-1) (EOB)
Sử dụng bảng phân loại (hình 7) 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)

Giá trị
chạy

(1,2)(-2)

Giá trị

Size

10 | 1 3


Run/Size

Hình 9:Bảng mã Huffman cho thành phần AC
Từ mã Hufman cho từng cặp giá trị chạy và loại có thể được tìm ra sau khi tra
bảng trên hình 9. Kết quả mã hóa các thành phần AC:
11100101 0000 0000 0000 1101100 1010
Kết quả mã hóa các thành phần AC và Nhị
DC phân
đượccủa
tập1hợp lại thành chuỗi bít có dạng
như sau:
01111 11100101 0000 0000 0000 1101100 1010
Có thể thấy rằng chỉ cần 36 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.
4. Ứng dụng
Định dạng ảnh JPEG được sử dụng vơ cùng phổ biết và có ứng dụng rất lớn trong

thực tiễn. Nhờ đặc tính hiển thị màu và dung lượng nhỏ các bức ảnh JPEG sử dụng
để hiển thị trên các thiết bị kỹ thuật số. Các trang web, mạng xã hội và lưu trữ sẽ sử
dụng nhiều định dạng ảnh này. JPGE giúp tối ưu khơng gian lưu trữ, khả năng tương
thích và hiển thị hình ảnh tốt hơn
Trong thực tiễn định dạng ảnh JPEG được sử dụng với 3 trường hợp chính bao
gồm: Các hình ảnh tĩnh; Sử dụng lưu trữ hình ảnh trong nhiếp ảnh; và hiển thị các
11 | 1 3


hình ảnh có màu sắc phức tạp. Cùng một bức ảnh bạn sẽ thấy rằng bức ảnh có định
dạng nén JPEG cho màu đẹp và tươi hơn các định dạng ảnh khác.
5. Tài liệu tham khảo
1. />2. />3. />4. BTL-CNPDT-JPEG-MPEG.docx
5. />
12 | 1 3



×