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

Tìm hiểu các sơ đồ nén các loại ảnh 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 (908.83 KB, 37 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
  
Báo cáo
Truyền thông đa phương tiện
Đề tài 3: Tìm hiểu các sơ đồ nén các loại ảnh JPEG, khảo sát và đánh giá thực
nghiệm chất lượng ảnh JPEG trong các trường hợp ứng dụng
GVHD: PGS.TS. Nguyễn Thị Hoàng Lan
Sinh viên thực hiện:
Nguyễn Nam Tiến 20092705
Bùi Thái Bình 20114628
Nguyễn Thành Lợi 20114633
Nguyễn Hải Anh 20111106
Hà Nội, 12/2014
1
MỤC LỤC
MỞ ĐẦU
Hiện nay, mạng Internet nói riêng và những thành tựu trong lĩnh vực công nghệ thông
tin – truyền thông nói chung đã và đang tiếp tục mở rộng phát triển nhanh chóng, đạt được
những dấu mốc quan trọng. Song hành cùng với sự phát triển đó, những khái niệm, những
quy chuẩn, những đối tượng tài nguyên mới cũng được ra đời nhằm phục vụ tốt nhất cho
nhu cầu của con người. Hơn nữa, đó cũng chính là những thành công mới của loài người
trong công cuộc khai phá tri thức.
Khi nhắc tới ngành công nghệ thông tin – truyền thông và đặc biệt là thế giới ảo trên
mạng toàn cầu rộng lớn, chúng ta sẽ phải nhắc ngay đến khái niệm Dữ liệu đa phương tiện
– một bước đột phá trong lịch sử loài người về tổ chức lưu trữ dữ liệu thông minh. Đó là
tất cả những dạng tổ chức và lưu trữ dữ liệu số hoạt động trên các thiết bị số, các máy tính
hiện đại, được các thiết bị số đó tạo ra, xử lí và được truyền thông giữa các thành phần
trong mạng thông qua những phương thức đặc thù riêng. Khái niệm về Dữ liệu đa phương
tiện rất phong phú, nhưng có thể nêu ra một số đối tượng cơ bản, phổ biến nhất như: tệp
dữ liệu âm thanh (audio file), tệp dữ liệu hình ảnh/đồ họa số (image/graphic file) hay các


tệp phim/hình chuyển động (video file)
Việc tìm hiểu, khảo sát về các đối tượng dữ liệu đa phương tiện đòi hỏi công sức và chi
phí rất lớn. Trong phạm vi của một bài tiểu luận học phần, nhóm xin đưa ra những cái
nhìn cụ thể, rõ ràng về một đối tượng trong số đó: chuẩn nén ảnh JPEG và các vấn đề cơ
bản có liên quan. Đây là một chuẩn dữ liệu được sử dụng phổ biến hiện nay, cả trong đời
sống lẫn công tác nghiên cứu khoa học. Hơn nữa, ứng dụng của chuẩn JPEG đã thực sự
mang lại những tiện ích lớn cho người dùng trong việc lưu trữ, xử lí và truyền tải thông
tin dạng hình ảnh trên mạng máy tính hay các thiết bị số khác.
Trong suốt quá trình thực hiện đề tài này, nhóm đã rất nỗ lực tìm hiểu, khảo sát, đánh
giá về những nội dung cần thực hiện. Tuy nhiên, những thiếu sót, sơ suất sẽ không thể
tránh khỏi và nhiều vấn đề cần tiếp tục nghiên cứu, cải thiện trong tương lai. Nhóm xin
2
chân thành cảm ơn sự hướng dẫn, giúp đỡ tận tình của GS. Nguyễn Thị Hoàng Lan trong
suốt quá trình thực hiện đề tài này.
CHƯƠNG I: GIỚI THIỆU VỀ CÁC CHUẨN JPEG
I. Tổng quan về JPEG
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ếnthể 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 như .jpg, .jpeg, .jpe và .jif).
JPEG được sử dụng để lưu trữ ảnh và truyền qua mạng Internet (World Wide Web).
Định dạng nén JPEG được sử dụng trong tất cả máy ảnh kỹ thuật số có kích thước rất nhỏ
nên thường chụp được nhiều ảnh trên một thẻ nhớ, JPEG dễ hiển thị trên màn hình, ảnh có
thể chuyển nhanh qua thư điện tử (dung lượng từ 300KB đến700KB), ảnh JPEG chất lượng
cao có dung lượng khoảng vài MB hay lớn hơn, khuyết điểm chính của ảnh JPEG là ảnh có
chất lượng thấp, ảnh thường bị suy giảm nếu so với ảnh gốc.
Công nghệ nén ảnh JPEG là một trong những công nghệ nén ảnh hiệu quả, cho phép
làm việc với các ảnh có nhiều màu và kích cỡ lớn. Tỷ lệ nén ảnh đạt mức so sánh tới vài

chục lần. Tuy nhiên được cái này phải mất cái khác, đó là quy luật bù trừ tự nhiên.
Thông thường các ảnh màu hiện nay dùng 8 bit (1 byte) hay 256 màu thay cho từng
mức cường độ của các màu đỏ, xanh lá cây và xanh da trời. Như thế mỗiđiểm của ảnh cần
3 byte để lưu mã màu, và lượng byte một ảnh màu này chiếm gấp 24 lần ảnh trắng đen
cùng cỡ. Với những ảnh này các phương pháp nén ảnh như IFF(Image File Format) theo
phương pháp RLE (Run Length Encoding) không mang lại hiệu quả vì hệ số nén chỉ đạt tới
2:1 hay 3:1 (tất nhiên là kết quả nén theo phương pháp RLE phụ thuộc vào cụ thể từng loại
ảnh, ví dụ như kết quả rất tốt với các loại ảnh ít đổi màu). Ưu điểm cao của phương pháp
này là ảnh đã nén sau khi giải nén sẽ trùng khớp với ảnh ban đầu. Một số phương pháp nén
3
khác không để mất thông tin như của Lempel- Ziv -Welch (LZW) có thể cho hệ số nén tới
6:1. Nhưng như thế vẫn chưa thật đáp ứng yêu cầu đòi hỏi thực tế.
Phương pháp nén ảnh theo thuẩ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 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. Tuy nhiên sự mất mát thông tin này không bị làm một
cách cẩu thả. JPEG tiến hành sửa đổi thông tin ảnh khi nén sao cho ảnh mới gần giống như
ảnh cũ, khiến phần đông mọi người không nhận thấy sự khác biệt. Và bạn hoàn toàn có thể
quản lý sự mất mát này bằng cách hạn chế hệ số nén. Như thế người dùng có thể cân nhắc
giữa cái lợi của việc tiết kiệm bộ nhớ và mức độ mất thông tin của ảnh, để chọn phương án
thích hợp
II. Ưu và nhược điểm của các phương pháp nén ảnh JPEG
 Ưu điểm
JPEG cho phép nén ảnh 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-colour) cho định dạng di động mà kích thước file
lạinhỏ hơn.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-colour (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 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 của bạn sẽ bị mất một số chitiế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. Nói một cách khác định dạng JPEG thực hiện bảo quản tất cả thông
tin màu trong hình ảnh đó, tuy nhiên với các hình ảnh chất lượng màu cao high-
colour như hình ảnh chụp thì điều này sẽ không hề hấn gì. Các ảnh JPEG không thể
làm trong suốt hoặc chuyển động-trong trường hợp này bạnsẽ sử dụng định dạng GIF
(hoặc định dạng PNG để tạo trong suốt).
III. Các tiêu chuẩn JPEG
1. JPEG 1992
Đây là loại JPEG tiêu chuẩn. Phương pháp nén ảnh dựa trên nguyên lý sau: Ảnh màu
trong không gian của 3 màu RGB (Red Green Blue) được biến đổi về hệ YUV (hay
4
YCBCr) (điều này không phải là nhất thiết, nhưng nếu thực hiện thì cho kết quả nén cao
hơn). Hệ YUV là kết quả nghiên cứu của các nhà sản xuất vô tuyến truyền hình hệ Pal,
Secam và NTSC, nhận thấy tín hiệu video có thể phân ra 3 thành phần Y, U, V (cũng
như phân theo màu chuẩn đỏ, xanh lá cây và xanh da trời).Và một điều thú vị là 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 độ íthơ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.
Giai đoạn tiếp theo là biến đổi những vùng thể hiện dùng biến đổi cosin rời rạc
(thông thường là những vùng 8x8 pixel). Khi đó thông tin về 64 pixel ban đầu sẽ biến
đổi thành ma trận có 64 hệ số thể hiện "thực trạng" các pixel. Điều quan trọng là ở đây hệ
số đầu tiên có khả năng thể hiện "thực trạng" cao nhất, khả năng đó giảm rất nhanh với
các hệ số khác. Nói cách khác thì lượng thông tin của 64 pixel tập trung chủ yếu ở một số
hệ số ma trận theo biến đổi trên. Trong giai đoạn này có sự mất mát thông tin, bởi không
có biến đổi ngược chính xác. Nhưng lượng thông tin bị mất này chưa đáng kể so với giai
đoạn tiếp theo. Ma trận nhận được sau biến đổi cosin rời rạc được lược bớt sự khác nhau
giữa các hệ số. Đây chính là lúc mất nhiều thông tin vì người ta sẽ vứt bỏ những thay đổi

nhỏ của các hệ số. Như thế khi giải nén ảnh đã nén bạn sẽ có được những tham số khác
của các pixel. Các biến đổi trên áp dụng cho thành phần U và V của ảnh với mực độ cao
hơn so với Y (mất nhiều thông tin của U và V hơn). Sau đó thì áp dụng phương pháp mã
hóa của Huffman: Phân tích dãy số, các phần tử lặp lại nhiều được mã hóa bằng ký hiệu
ngắn (marker). Khi giải nén ảnh người ta chỉ việc làm lại các bước trên theo quá trình
ngược lại cùng với các biến đổi ngược
Vì phương pháp này thực hiện với các vùng ảnh (thông thường là 8 x 8 pixel)nên hay
xuất hiện sự mất mát thông tin trên vùng biên của các vùng (block) này. Hiện nay người ta
đã giải quyết vấn đề này bằng cách làm trơn ảnh sau khi bung nén để che lấp sự khác biệt
của biên giới giữa các block. Một hệ nén ảnh theo chuẩn JPEG cùng algorithm làm trơn
ảnh đã được công ty ASDG đưa ra trong hệ Art Department Professional.
2. LS-JPEG (Lossness JPEG)
LS-JPEG được phát triển như sự bổ sung muộn màng cho JPEG vào năm1993, bằng
cách sử dụng một kỹ thuật khác nhau từ tiêu chuẩn JPEG cũ. Nó sử dụng 1 hệ thống dự
báo được sắp xếp dựa trên ba điểm lân cận (upper, left andupper-left) và entropy mã hóa
dựa trên các lỗi dự báo.
3. JPEG Search
5
Ngày nay, nhiều định dạng siêu dữ liệu khác nhau tồn tại để mô tả hình ảnh nhưng
vẫn còn nhiều vấn đề trong khả năng tương tác.Trong bối cảnh đó,trọng tâm chính của
JPEG Search là cung cấp một khả năng tương tác tốt hơn trong tìm kiếm hình ảnh. Phiên
bản hiện tại của dự án JPSearch được chia thành 5 phần chính.
• Phần 1 đã được đã được hoàn thành: Nó mô tả cấu trúc tổng thể của JP Search, một
tập hợp lớn các trường hợp và phác thảo một kho phục hồi hình ảnh và các thành
phần của nó.
• Phần 2: Đăng ký, nhận dạng, và quản lý các siêu dữ liệu lược đồ(Registration,
Identification, and Management of Metadata Schema): cố gắng vượt qua những rắc
rối trong mô hình siêu dữ liệu.
• Phần 3:Định dạng Truy vấn JPSearch(JPSearch Query Format): cung cấp mộtgiao
thức thông báo chuẩn để khôi phục hình ảnh.

• Phần 4: Tập tin định dạng cho các siêu dữ liệu nhúng vào dữ liệu hình ảnh (JPEG và
JPEG 2000).
• Phần 5: Định dạng trao đổi dữ liệu giữa Kho Hình ảnh(Data Interchange Format
between Image Repositories)
4. JPEG XR
Là 1 định dạng hình ảnh cung cấp 1 số cải tiến so với JPEG
• Khả năng nén tốt hơn: JPEG XR định dạng tập tin hỗ trợ tỷ lệ nén cao hơn so với
JPEG để mã hóa một hình ảnh với chất lượng tương đương.
• Nén không mất mát
• Hỗ trợ cấu trúc lát (Tile structure support) .
• Chất lượng màu tốt hơn. Hỗ trợ High Dynamic Range (HDR) imaging
• Hỗ trợ bản đồ trong suốt (Transparency map support)
• Giảm bớt vùng nén ảnh (Compressed-domain image modification)
• Hỗ trợ siêu dữ liệu (Metadata support)
6
CHƯƠNG II: CÁC KỸ THUẬT NÉN ẢNH JPEG
I. Tổng quan về các kỹ thuật nén ảnh JPEG
Các kỹ thuật nén ảnh hướng tới việc giải quyết bài toán giảm khối lượng thông tin cần
thiết để mô tả ảnh số. Nền tảng của quá trình nén là loại bỏ dư thừa có trong tín hiệu.
Phương pháp nén hiệu quả nhất thường sử dụng các biến đổi toánhọc để biến ma trận
các điểm ảnh trong không gian hai chiều sang một không gian hai chiều khác, nơi mức
độ tương quan giữa các hệ số biến đổi mới nhỏ hơn. Như chúng ta biết, độ dư thừa trong
tín hiệu ảnh số phụ thuộc vào mức độ tương quan giữa các điểm ảnh, độ tương quan lớn
thì độ dư thừa cũng lớn
1. Phân loại các phương pháp nén ảnh
 Phân loại theo nguyên lý nén.
• Nén không tổn hao (Lossless data reducation)
• Nén có tổn hao (Loss data reducation)
 Phân loại theo cách thực hiện nén.
• Phương pháp không gian ( spatial Data Compresstion): các phương pháp

nén trực tiếp tác động lên điểm ảnh .
• Phương pháp sử dụng biến đổi (Transform coding) :phương pháp nén sử
dụng phép biến đổi không gian, quá trình nén thực hiện bằng cách tác động
lên ảnh biến đổi.
2. Độ dư thừa dữ liệu
Độ dư thừa số liệu là vấn đề trung tâm trong nén ảnh số. Độ dư thừa được xác định
như sau: nếu N1 và N2 là số lương trong hai tập hợp số liệu cùng được dùng để biểu
diễn lượng thông tin cho trước thì độ dư thừa số liệu tương đối của tập số liệu thứ
nhất so với tập số liệu thứ hai có thể được định nghĩa như sau:
=1-1/ với =N1/N2.
Trong trường hợp N1=N2 thì R=0, điều này có nghĩa là so với tập số liệu thứ hai thì
tập số liệu thứ nhất không chứa số liệu dư thừa. khi N2<<N1 thì tiến tối vô cùng và
7
tiến tới một, có nghĩa là độ dư thừa số liệu tương đối của tập số liệu thứ nhất là khá
lớn so với tập số liệu thứ hai.
Chất lượng ảnh nén có thể thay đổi tùy theo đặc điểm của hình ảnh nguồn và nội
dung ảnh. Có thể đánh giá chất lượng ảnh nén theo số bit cho một điểm trong ảnh
nén ().
được xác định bằng tổng số bit dùng để mô tả ảnh nén chia cho tổng số điểm ảnh:
=số bít nén/số điểm.
Trong lý thuyết nén ảnh số có thể phân biệt ba loại dư thừa số liệu khác nhau:
- Dư thừa mã (Coding redundancy)
- Dư thừa trong pixel ( Interpixel Redundancy)
- Dư thừa tâm sinh lý
3. Tiêu chuẩn đánh giá chất lượng hình ảnh
Quá trình nén ảnh thường đi đôi với việc ảnh nén bị biến dạng so với ảnh gốc.Vì
vậy, cần xác định tiêu chí và phương pháp đánh giá một cách khách quan lượng
thông tin về ảnh đã bị mất đi sau khi nén. Có thể đánh giá mức độ sai số giữa hai
ảnh thông qua mức sai lệch trung bình bình phương – RMS (Root Mean Square).
Cho f(x,y) là ảnh gốc, f(x,y) là ảnh khôi phục sau khi nén. Khác biệt tuyệt đối giữa

hai ảnh là: e(x,y)=f(x,y)-f(x,y).
Sai số trung bình được tính theo công thức:
Thông thường, khi giá trị RMS thấp, chất lượng ảnh nén sẽ tốt. Tuy nhiên,trong một
số trường hợp chất lượng hình ảnh nén không nhất thiết phải tỷ lệ thuậnvới giá trị
RMS. Một phương pháp đánh giá chất lượng ảnh nén khác dựa trên tỷ lệ tín
hiệu/nhiễu được tính theo công thức sau:
(SNR (Signal to Noise Ratio) -tỷ lệ tín hiệu/ nhiễu)
4. Mô hình hệ thống nén tín hiệu
8
Hệ thống truyền dẫn nén tín hiệu
Hệ thống truyền dẫn sử dụng các phương pháp nén tín hiệu khác nhau có thể được
mô tả bằng sơ đồ khối như hình trên. Các thành phần quan trọng nhất trong hệ thống
là bộ mã hóa và giải mã.
• Bộ mã hóa nguồn và bộ giải mã nguồn:
Bộ mã hóa nguồn thực hiện quá trình loại bỏ các thành phần dư thừa trong
ảnh gốc. bộ mã hóa nguồn có cấu trúc như hình trên.
Bộ chuyển đổi, lượng tử hóa và mã hóa
• Bộ chuyển đổi:
Thường dùng các phép biến đổi không gian để chuyển ảnh trong không gian
thực sang một không gian khác, nơi các hệ số chuyển đổi có mức độ tương
quan thấp hơn. Kết quả nhận được là ma trận các hệ số biến đổi.
• Bộ lượng tử hóa:
Sử dụng phương pháp lượng tử không đều nhằm triệt tiêu các hệ số biến đổi
có năng lượng thấp hoặc đóng vai trò không quan trọng khi khôi phục ảnh.
Quá trình lượng tử không có tính thuận nghịch : ảnh khôi phục sẽ bị biến
dạng so với ảnh gốc.
• Bộ mã hóa:
Gán một từ mã (một dòng bit nhị phân) cho một mức lượng tử :
Cấu trúc bộ giải mã nguồn:
Sơ đồ bộ giải mã nguồn

• Bộ giải mã:
9
Thực hiện giải mã tín hiệu nhận được để cho ra ma trận các hệ số của ảnh
biến đổi.
• Bộ chuyển đổi:
Thực hiện biến đổi nghịch (so với quá trình biến đổi ở bộ mã hóa ) để khôi
phục lại ảnh số ban đầu.
• Bộ mã hóa và giải mã kênh:
Khi truyền tín hiệu qua kênh truyền có nhiễu, để làm giảm tín hiệu của nhiễu
tới tín hiệu người ta thường sử dụng các phương pháp mã bằng cách thêm
một số thông tin dư thừa vào chuỗi tín hiệu cần truyền đi. Tùy vào phương
pháp mã hóa, tại phía thu, sau khi giải mã kênh, chúng ta có thể phát hiện,
được lỗi trong chuỗi tín hiệu vừa nhận được ( do nhiễu kênh gây ra) hoặc có
thể đồng thời thực hiện sửa các lỗi đó.
II. Các kỹ thuật nén ảnh JPEG
1. Nén ảnh JPEG tuần tự (JPEG Baseline)
1.1. Khái niệm
JPEG tuần tự là phương pháp nén ảnh JPEG cơ bản và đơn giản nhất, được ứng dụng
rộng rãi. Đối với phương pháp này, ảnh JPEG được mã hóa theo thứ tự từ trái sang phải,
từ trên xuống dưới (vì thế mới có tên là JPEG tuần tự).
1.2. Quá trình nén ảnh JPEG tuần tự
10
Hình 1. Sơ đồ nén ảnh JPEG tuần tự
 Xử lý màu: chuyển từ không gian màu RGB về YCbCr
Biến đổi ảnh từ không gian màu RGB sang YCbCr: tăng thành phần độ chói, giảm các
thành phần màu sắc (mắt người nhạy cảm với độ sáng hơn so với màu sắc), sử dụng các
công thức biến đổi:
Y‘ = 0.299*R' + 0.587*G' + 0.114*B‘
U‘ = -0.147*R' - 0.289*G' + 0.436*B'
= 0.492*(B'- Y')

V‘ = 0.615*R' - 0.515*G' - 0.100*B'
= 0.877*(R'- Y')

R' = Y' + 1.140*V'
G' = Y' - 0.394*U' - 0.581*V'
B' = Y' + 2.032*U'
 Phân ảnh đầu vào thành các khối 8x8 để dễ xử lý
 Biến đổi DCT
 Vai trò
• Giảm độ dư thừa dữ liệu trong pixel ở miền tần số cao.
11
• Tập trung năng lượng vào một số các giá trị để việc giải tương quan đạt chất
lượng tốt nhất nhằm nâng cao tỉ số nén.
• Ảnh hưởng trực tiếp đến việc cho lại chất lượng ảnh được khôi phục tốt hay
xấu của quá trình lượng tử hóa.
• Hiệu suất nén đạt được tỉ số nén cao do hàm giải tương quan giảm đáng kể.
 Biến đổi DCT một chiều
Công thức biến đổi:
Trong đó:
• X(k): chuỗi kết quả
• k: chỉ số của hệ số khai triển
• m: chỉ số của mẫu
• N: số mẫu có trong tín hiệu
• C(k)
 Biến đổi DCT hai chiều
Công thức biến đổi:
7 7
0 0
( ) ( ) (2 1) (2 1)
( , ) ( , )cos cos

4 16 16
j k
C u C v j u k v
F u v f j k
π π
= =
+ +
=
∑ ∑
Trong đó:
• X(k): chuỗi kết quả
• k: chỉ số của hệ số khai triển
• m: chỉ số của mẫu
• N: số mẫu có trong tín hiệu
• C(k)
12
 Lượng tử hóa
 Nhiệm vụ: mã hóa ma trận đầu vào sau biến đổi DCT thành các giá trị mức xám
đặc trưng cho cường độ sang.
 Quá trình lượng tử hóa được coi như việc chia các hệ số DCT cho bước nhảy
lượng tử tương ứng, kết quả được làm tròn xuống số nguyên gần nhất.
 Công thức:
 Bảng lượng tử Q(u,v) thông dụng:
 Ví dụ:
Kết quả DCT (đầu vào):

 Kết quả thu được sau quá trình lượng tử hóa:
 Mã hóa
13
 Quét zig-zag: tạo ra đầu vào gồm nhiều số giống nhau. Thông thường các hệ số

tương ứng tần số cao phần lớn giá trị bằng 0 dẫn đến tạo nhiều dãy hệ số 0 liên
tiếp.
 Ví dụ:
Sử dụng bảng phân loại và bảng Huffman để mã hóa:
 Ghép các khối để tạo thành dữ liệu.
 Chuyển các dữ liệu đã mã hóa ra tệp để lưu trữ.
2. Nén ảnh JPEG không tổn hao (JPEG losless)
2.1. Khái niệm
Nén không tổn hao (Lossless) là các phương pháp nén mà sau khi giải nén sẻ thu
được chính xác dữ liệu gốc. tuy nhiên nén không tổn hao chỉ đạt hiệu quả nhỏ so với nén
có tổn hao.
2.2. Các phương pháp mã hóa ảnh JPEG không tổn hao
14
 Phương pháp mã hóa loạt dài RLE (Run Length Encoding)
Mã hoá theo độ dài loạt RLE (Run Length Encoding) là một phương pháp nén ảnh
dựa trên sự cắt bớt các dư thừa về không gian (môt vài hình ảnh có vùng màu lớn không
đổi đặc biệt đối với ảnh nhị phân). Loạt được định nghĩa là dãy các phần tử điểm ảnh
(pixel) liên tiếp có cùng chung một giá trị.
Nguyên tắc:
Nguyên tắc của phương pháp này là phát hiện một loạt các điểm ảnh lặp lại liên tiếp,
ví dụ: 110000000000000011. Ta thấy điểm ảnh có giá trị 0 xuất hiện nhiều lần liên tiếp
thay vì phải lưu trữ toàn bộ các điểm ảnh có giá trị 0 ta chỉ cần lưu trữ chúng bằng cách
sử dụng các cặp (độ dài loạt, giá trị).
Ví dụ: Cho một chuỗi nguồn d :
d =5 5 5 5 5 5 5 5 5 5 19 19 19 19 19 0 0 0 0 0 0 0 23 23 23 23 23 23 23 23
Ta sẽ có chuỗi mới : (10 5) (5 19) (7 0) (8 23)
Tỷ số nén = 30/8 = 2.5
Đối với ảnh đen trắng chỉ sử dụng 1 bit để biểu diễn 1 điểm ảnh thì phương pháp này tỏ
ra rất hiệu quả, ta thấy điều đó qua ví dụ sau :
Ví dụ: Cho một chuỗi nguồn d:

000000000000000111111111100000000001111111111000000000000000
Ta có chuỗi mới: (15, 10, 10, 10, 15)
Tỷ số nén = 60 bit / (5*4 bit) = 3 (chỉ sử dụng 4 bit để thể hiện độ dài loạt và không thể
hiện giá trị loạt vì ảnh đen trắng chỉ có 2 giá trị bit là 0 hoặc là 1)
Chú ý:
• Đối với ảnh chiều dài của một dãy lặp có thể lớn hơn 255, nếu ta dùng 1 byte để
lưu trữ chiều dài thì sẽ không đủ. Giải pháp được dùng là tách chuỗi đó thành 2
chuỗi: một chuỗi có chiều dài là 255, chuỗi kia có chiều dài còn lại.
• Phương pháp nén RLE chỉ đạt hiệu quả khi chuỗi lặp lớn hơn 1 ngưỡng nhất
định nào đó hay nói các khác trong ảnh cần nén phải có nhiều điểm ảnh kề nhau
có cùng giá trị màu. Do đó phương pháp này không đem lại cho ta kết quả một
cách ổn định vì nó phụ thuộc hoàn toàn vào ảnh nén chỉ thích hợp cho những
ảnh đen trắng hay ảnh đa cấp xám.
Ví dụ: Ta có một chuỗi nguồn: d=5 7 9 11 13 18 28 38 48 58 30 35 40 45
Chuỗi kết quả sau khi mã hoá :
1 5 1 7 1 9 1 11 1 13 1 18 1 28 1 38 1 48 1 58 1 30 1 35 1 40 1 45
Tỷ số nén = 14 / 28 = 0.2
Như vậy chuỗi sau khi mã hoá đã lớn hơn nhiều chuỗi nguồn ban đầu. Do đó cần
phương pháp cải tiến để xử lý những trường hợp như trên tránh làm mở rộng chuỗi dữ
liệu nguồn nghĩa là chỉ mã hoá độ dài loạt dữ liệu lặp lại. Người ta đã đưa ra cách đó là
15
thêm kí tự tiền tố vào trước độ dài loạt, việc giải mã được thực hiện nếu gặp kí tự tiền tố
với độ dài loạt và giá trị điểm ảnh theo sau.
Ví dụ: Ta có chuỗi nguồn: d = 5 8 4 8 8 8 8 8 8 8 8 10 10 10 10 10 10 10 10 10
Giả sử kí tự tiền tố là dấu “+” ta có : 5 8 4 +8 8 + 9 10
Tỷ số nén = 19 / 9 = 2.1
Tuy nhiên trong một số trường hợp các điểm ảnh có độ tương quan với nhau vể giá trị
mức xám như trong ví dụ dưới đây ta có thể tiến hành xử lý như sau.
Ví dụ: Ta có một chuỗi nguồn:
d = 5 7 9 11 13 18 28 38 48 58 55 60 65 70 75 80 85 90 95 100

Ta có dựa vào độ tương quan này để có được hiệu quả nén cao, bằng việc áp dụng e(i) =
d(i) - d(i-1) sẽ thu được :
5 2 2 2 2 5 10 10 10 10 -3 5 5 5 5 5 5 5 5 5
áp dụng phương pháp nén loạt dài ta dễ dàng thu được :
(5 1)( 2 4)(5 1)(10 5)(-3 1)(5 9)
Thuật toán:
- Tiến hành duyệt trên từng hàng cho đến khi kết thúc vùng dữ liệu ảnh, trong quá
trình duyệt tiến hành kiểm tra để tìm ra những loạt có cùng giá trị đồng thời chú
ý những kí hiệu xuống dòng (hay kết thúc dòng), kết thúc ảnh Bitmap, …
- Khi gặp loạt có độ dài > 3 thì nhảy đến chế độ nén ngược lại nhảy đến chế độ
không nén tuy nhiên nếu loạt > 255 thì sẽ tách ra chỉ mã < 255 sau đó mã tiếp
phần còn lại. Ngoài ra còn các chế độ khác như: bắt đầu, kết thúc 1 dòng.
- Kết thúc khi gặp kí hiệu kết thúc bitmap (end – of bitmap)
 Phương pháp mã hóa Huffman
Phương pháp mã hóa Huffman là phương pháp dựa vào mô hình thống kê. Người ta
tính tần suất xuất hiện của các ký tự bằng cách duyệt tuần tự từ đầu tệp gốc đến cuối tệp.
Việc xử lý ở đây tính theo bit. Trong phương pháp này các ký tự có tần suất cao một từ mã
ngắn, các ký tự có tần suất thấp một từ mã dài. Như vậy với cách thức này ta đã làm giảm
chiều dài trung bình của từ mã hoá bằng cách dùng chiều dài biến đổi tuy nhiên cũng có
trường hợp bị thiệt 1 ít bit khi tần suất là rất thấp.
Thuật toán
Thuật toán bao gồm 2 bước chính:
 Giai đoạn thứ nhất: tính tần suất của các ký tự trong dữ liệu gốc: duyệt tệp gốc một
cách tuần tự từ đầu đến cuối để xây dựng bảng mã. Tiếp sau đó là sắp xếp lại bảng
mã theo thứ tự tần suất giảm dần.
 Giai đoạn thứ hai: mã hóa: duyệt bảng tần suất từ cuối lên đầu để thực hiện ghép 2
phần tử có tần suất xuất hiện thấp nhất thành một phần tử duy nhất. Phần tử này có
tần suất bằng tổng 2 tần suất thành phần. Tiến hành cập nhật lại bảng và đương
16
nhiên loại bỏ 2 phần tử đã xét. Quá trình được lặp lại cho đến khi bảng chỉ có một

phần tử. Quá trình này gọi là quá trình tạo cây mã Huffman vì việc tập hợp được
tiến hành nhờ một cây nhị phân 2 nhánh. Phần tử có tần suất thấp ở bên phải, phần
tử kia ở bên trái. Với cách tạo cây này, tất cả các bit dữ liệu/ký tự là nút lá; các nút
trong là các nút tổng hợp. Sau khi cây đã tạo xong, người ta tiến hành gán mã cho
các nút lá. Việc mã hóa rất đơn giản: mỗi lần xuống bên phải ta thêm 1 bit “1” vào
từ mã; mỗi lần xuống bên trái ta thêm một bit “0”. Tất nhiên có thể làm ngược lại,
chỉ có giá trên mã thay đổi còn tổng chiều dài là không đổi. Cũng chính do lý do này
mà cây có tên gọi là cây mã Huffman như trên đã gọi.
Quá trình giải nén tiến hành theo chiều ngược lại khá đơn giản. Người ta cũng phải dựa
vào bảng mã tạo ra trong giai đoạn nén (bảng này được giữ lại trong cấu trúc của tệp nén
cùng với dữ liệu nén). Thí dụ, với một tệp dữ liệu mà tần suất các ký tự cho bởi.
==
Ví dụ :
Chuỗi nguồn : 00000000006666693333 è kích thước = 20*8=160 bit
Sử dụng mã Huffman theo bảng trên, kích thước =10*1+5*3+1*6+4*3= 43 bit (Vì gía trị 0
xuất hiện 10 lần nhưng chỉ dùng 1 bit để thể hiện, giá trị 6 xuất hiện 5 lần dùng 3 bit để thể
hiện ,giá trị 9 dùng 6 bit và giá trị 3 xuất hiện 4 lần dùng 3 bit để thể hiện)
Vậy tỷ số nén = 160 / 43 = 3.7
Trong phương pháp mã Huffman mã của ký tự là duy nhất và không mã nào là phần bắt đầu
của mã trước.Vì vậy khi đọc theo từng bit từ đầu đến cuối tệp nén ta có thể duyệt cây mã
cho đến một lá, tức là ký tự đã được giải mã. Việc giải mã chắc chắn phải sử dụng cây nhị
phân giống như trong mã hoá. Để đọc, giải mã được yêu cầu phải sử dụng theo đúng tiêu
chuẩn nhất định.
 Phương pháp mã hóa Lemple-Ziv
Giải thuật LZW hay hơn các giải thuật trước nó ở kĩ thuật tổ chức cho đến cho phép
nâng cao dựa trên tỉ lệ nén. Phương pháp này dựa trên việc xây dựng các từ điển lưu các
chuỗi kí tự có tần suất lặp lại cao và thay bằng từ mã tương ứng mỗi khi gặp lại chúng.
Giải thuật nén LZW được sử dụng cho tất cả các loại file nhị phân. Nó thường được dùng
để nén các loại văn bản, ảnh đen trắng, ảnh màu, ảnh đa mức xám… và là chuẩn nén cho
các dạng ảnh GIF và TIFF. Mức độ hiệu quả của LZW không phụ thuộc vào số bít màu của

ảnh.
Nguyên tắc:
Giải thuật nén LZW xây dựng một từ điển lưu các mẫu có tần suất xuất hiện cao
trong ảnh. Từ điển là tập hợp những cặp (từ vựng và nghĩa của từ vựng). Trong đó từ vựng
sẽ là các từ mã được sắp xếp theo thứ tự nhất định. Nghĩa là một chuỗi con trong dữ liệu
ảnh. Từ điển được xây dựng song song với quá trình đọc dữ liệu. Sự xuất hiện của chuỗi
17
con trong từ điển khẳng định rằng chuỗi đó đã từng xuất hiện trong phần dữ liệu đã được
đọc qua. Thuật toán liên tục tra cứu và sau mỗi lần đọc một ký tự ở dữ liệu đầu vào thì tiến
hành cập nhật lại từ điển.
Do giới hạn của bộ nhớ và để đảm bảo tốc độ tìm kiếm nhanh, từ điển chỉ giới hạn 4096
phần tử dùng để lưu trữ giá trị của các từ mã. Như vậy độ dài lớn nhất của từ mã là 12 bit
(4096=2
12
). Cấu trúc từ điển như sau:
• 256 từ mã đầu tiên theo thứ tự từ 0 … 255 chứa các số nguyên từ 0 … 255. Đây là
mã của 256 kí tự cơ bản trong bảng mã ASCII.
• Từ mã thứ 256 chứa một mã đặc biệt là mã xoá (CC - Clear Code). Khi số mẫu lặp
lớn hơn 4096 thì người ta sẽ coi ảnh gồm nhiều mảnh ảnh và từ điển sẽ gồm nhiều
từ điển con. Khi hết một mảnh ảnh sẽ gửi 1 mã xoá (CC ) để báo hiệu kết thúc mảnh
ảnh cũ và bắt đầu mảnh ảnh mới đồng thời sẽ khởi tạo lại từ điển.
• Từ mã thứ 257 chứa mã kết thúc thông tin (EOI - End Of Information). Thông
thường một file ảnh GIF có thể chứa nhiều mảnh ảnh, mỗi mảnh ảnh này sẽ được
mã hoá riêng. Chương trình giải mã sẽ lặp đi lặp lại thao tác giải mã từng ảnh cho
đến khi gặp mã kết thúc thông tin thì dừng lại.
• Các từ mã còn lại (từ 258 đến 4095) chứa các mẫu thường lặp lại trong ảnh. 512
phần tử đầu tiên của từ điển biểu diễn bằng 9 bit. Các từ mã từ 512 đến 1023 biểu
diễn bởi 10 bit, từ 1024 đến 2047 biểu diễn bởi 11 bit, và từ 2048 đến 4095 biểu
diễn bởi 12 bit.
 Chọn phương pháp nén

Qua ba phương pháp nén được dùng phổ biến trên, ta thấy rằng, thuật toán nén
độ dài loạt (Runlength) không thể áp dụng cho mhiều loại tập tin được, ví dụ như tập
tin chương trình, tập tin cơ sở dữ liệu vì ở đó các loạt chạy là rất ngắn, do đó nếu
áp dụng thuật toán này không những không làm bé tập tin mà còn làm phình to
chúng.
Hai thuật toán còn lại (Huffman và LZW) đều có thể áp dụng được để nén nhiều
loại tập tin trên các may vi tính.
Thuật toán Huffman có ưu điểm là hệ số nén tương đối cao, phương pháp thực
hiện tương đối đơn giản, đòi hỏi ít bộ nhớ, có thể xây dựng dựa trên các mảng bé hơn
64KB. Nhược điểm của nó là phải chứa cả bảng mã vào tập tin nén thì phía nhận mới
có thể giải mã được do đó hiệu suất nén chỉ cao khi ta thực hiện nén các tập tin lớn.
Thuật toán nén LZW có các ưu điểm là hệ số nén tương đối cao, trong tập tin nén
không cần phải chứa bảng mã. Nhược điểm của thuật toán này là tốn nhiều bộ nhớ,
khó thực hiện dựa trên các mảng đơn giản (bé hơn 64kb).
Từ các ưu và nhược điểm trên ta chọn phương pháp nén Huffman vì tính đơn
giản của nó hệ số nén lại cao.nhược điểm của phương pháp nén này là có thể khắc
18
phục bằng cách thực hiện nén một lần nhiều tập tin chuẩn bị truyền, làm như vậy coi
như chúng ta đang thực hiện nén một tập tin lớn.
 Sơ đồ không mất mát thông tin trong JPEG – LS
Không giống như chế độ mất dự liệu dựa trên DCT, các quá trình mã hóa không mất
mát thông tin dựa trên mô hình tiên đoán mã đơn giản gọi là chuyển mã xung vi sai
(Differential Pulse Code Modulation-DPCM) . Đây là một mô hình dự đoán các giá trị
mẫu từ các mẫu lân cận đã được mã hóa trong hình ảnh .Hầu hết các dự đoán lấy trung
bình của các mẫu ngay lập tức ở bên trên và bên trái của mẫu mục tiêu.DPCM mã hóa sự
khác biệt giữa các mẫu dự đoán thay vì mỗi mẫu mã hóa độclập.Sự khác biệt từ một
trong những mẫu tiếp theo thường là gần bằng không.
Hình 2. Vi sai mã hóa mô hình
Các bước chính của chế độ hoạt động không giảm chất lượng được mô tả trong hình sau:
Hình 3. Sơ đồ khối đơn giản với chế độ nén thông minh

Trong quá trình này dự báo các kết hợp tối đa ba mẫu lân cận A, B, C được thể hiện
trong hình sau để dự báo giá trị của mẫu tại vị trí dán nhãn của X.
19
Ba mẫu láng giềng phải được đã được dự đoán mẫu . Bất kỳ một trong những dự đoán
cho thấy trong bảng dưới đây có thể được sử dụng để ước tính mẫu đặt tại .Bất kỳ một
trong tám dự đoán được liệt kê trong bảng có thể được sử dụng. Lưu ý rằng các lựa chọn
1, 2, và 3 được dự đoán một chiều và lựa chọn 4, 5, 6, và 7 đượcdự đoán hai chiều. Giá
trị lựa chọn đầu tiên trong bảng, bằng không, chỉ được sử dụng để mã hóa khác biệt ở
chế độ phân cấp hoạt động. Một khi tất cả các mẫu được dự đoán, sự khác biệt giữa các
mẫu có thể được lấy và entropy-mã hóa trong một thời trang không giảm chất lượng
bằng cách sử dụng mã hóa Huffman hoặc mã số học .
Thuật toán LoCo-I
Cốt lõi của LS-JPEG dựa trên các thuật toán LoCo-I. Trong thuật toán LoCo-I, cạnh
được phát hiện ban đầu của các cạnh theo chiều ngang hoặc chiều dọc bằngcách kiểm tra
các điểm ảnh lân cận của điểm ảnh X hiện thời như trong hình 3.Cácđiểm ảnh có nhãn B
được sử dụng trong trường hợp của cạnh thẳng đứng trong khiđiểm có nhãn A sử dụng
trong trưởng hợp cạnh của cạnh nằm ngang.Điều dự đoánđơn giản này được gọi là phát
hiện cạnh trung vị(Median Edge Dectection-MED)hay dự đoán LoCo-I(LoCo-I
predictor) Điểm ảnh X được dự đoán bằng LoCo-I predictor theo tiêu chí sau đây:
Ba dự đoán đơn giản được chọn theo các điều kiện:(1) nó có khuynh hướngnhận B trong
trường hợp tồn tại cạnh dọc trái của X,(2) A trong trường hợp cạnhnằm ngang ở phía
trên, hoặc (3) A+B-C nếu không có cạnh nào được phát hiện.
3. Nén ảnh JPEG lũy tiến (JPEG progressive)
3.1. Giới thiệu về JPEG lũy tiến.
20
- Khai triển DCT là kĩ thuật then chốt trong JPEG vì nó cho phép nén ảnh với
chất lượng tốt nhất tại tốc độ bít thấp, giải thuật chuyển đổi nhanh và dễ dàng
thực hiện bằng phần cứng. Hiệu quả trong việc truyền ảnh kích thước lớn.
- JPEG lũy tiến dùng cho những ứng dụng yêu cầu truyền nhanh các ảnh có
độ phân giải cao qua mạng có băng thông giới hạn, hệ thống này hướng đến

những ứng dụng yêu cầu cần truyền nhanh, ví dụ: truyền ảnh y học, ảnh chụp
từ vệ tinh cũng như truyền hình ảnh qua Internet, phóng viên chiến trường…
- Với phương pháp nén và giải nén theo JPEG lũy tiến , người quan sát không
thấy khó chịu khi ngồi chờ trước màn hình trống trong một thời gian dài. Hơn
nữa khi quan sát được nội dung chính của ảnh, người nhận có thể nhanh chóng,
quyết định tải tiếp hay ngừng quá trình tải ảnh. Với cơ chế như vậy , bộ mã hóa
và bộ giải mã JPEG lũy tiến cần có bộ nhớ đệm, kích thước bộ nhớ đệm phải
đủ lớn để chứa tất cả các hệ số DCT của ảnh
- Với phương pháp nén và giải nén theo JPEG lũy tiến , người quan sát không
thấy khó chịu khi ngồi chờ trước màn hình trống trong một thời gian dài. Hơn
nữa khi quan sát được nội dung chính của ảnh, người nhận có thể nhanh chóng,
quyết định tải tiếp hay ngừng quá trình tải ảnh. Với cơ chế như vậy , bộ mã hóa
và bộ giải mã JPEG lũy tiến cần có bộ nhớ đệm, kích thước bộ nhớ đệm phải
đủ lớn để chứa tất cả các hệ số DCT của ảnh
3.2. Sơ đồ khối
Hình 4. Sơ đồ khối bộ mã hóa ảnh theo JPEG
Trước khi đưa đến 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 chói Y và hai ảnh đơn màu UV (chuẩn PL) hoặc IQ(chuẩn NTSC) đượ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
21
2 lý do : (1) 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 qua 8, (2)kích thước 8*8 tiện lợi
cho việc tính toán và thiết kế phần cứng.
Bộ chuyển đổi DCT biến đổi ma trận f(I,j) 8*8 thành ma trận hệ số F(u,v) cùng kích
thước. Ma trận F(u,v) được đưa tới các bộ lượng tử hóa , các hệ số DCT sẽ được lượng
tử hóa dựa trên bảng lượng tử. Tín hiệu chói và tín hiệu màu sẽ được lượng tử theo các
bảng lượng tử khác nhau. Ma trận hệ số DCT nhận được sau bộ lượng tử (u,v) . Hệ số
(0,0) là thành phần trung bình (thành phần DC) của mỗi block đưa tới bộ mã hóa vi sai
(DPCM ). Các hệ số khác (thành phần AC) trong từng block được đọc ra theo trinh tự

zigzag và đưa tới bộ mã hóa loạt dài (RLC).cuối cùng chuỗi dữ liệu từ hai bộ mã hóa
DPCM và RLC được mã hóa một lần nữa bằng mã entropy. Dữ liệu nén cùng các bảng
mã và bảng lượng tử được kết hợp lại thành file ảnh nén theo chuẩn JPEG.
Sau đây chúng ta phân tích tưng khâu trong quá trình nén ảnh JPEG lũy tiến.
3.3. Phân tích sơ đồ
 Biến đổi 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
Cosinr Transform ).DCT biến đổi dữ liệu từ miền không gian sang miền tần số . DCT
được sử dụng tương đối rộng rãi vì nó có đặc tính “gói” năng lượng rất tốt, biến đổi
DCT cho kết quả là các số thực, ngoài ra có các thuât toán nhanh để thực hiện biến đổi
này .
Biến đổi DCT được thực hiện trong khối 8x8 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 (UV và IQ).
Biến đổi DCT hai chiều (2-D) được dùng cho các khối ảnh có kích thước 8×8.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:
Trong đó: f(j,k)- các mẫu ảnh gốc trong 8x8 pixel
F(u,v) – các hệ số khối DCT 8*8
22
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 . Trong ma trận hệ số DCT hai chiều , hệ số thứ nhất DCT F(0,0)
bằng giá trị trung bình các điểm ảnh block 8*8.
Các hệ số nằm ở các dòng dưới thành phần một chiều, đặc trưng cho các tầnsố cao hơn
của tín hiệu theo chiều dọc. Các hệ số nằm ở các cột bên phải của thành phần một chiều
đặc trưng cho các tần số cao hơn theo chiều ngang. Hệ số F(0,7) làthành phần có tần số
cao nhất theo chiều ngang của block ảnh 8×8, và hệ số F(7,0)đặc trưng cho thành phần
có tần số cao nhất theo chiều dọc. Còn các hệ số khác ứngvới những phối hợp khác
nhau của các tần số theo chiều dọc và chiều ngang.
Phép biến đổi DCT hai chiều là biến đổi đối xứng và biến đổi nghịch cho phép tái
tạo lại các giá trị mẫu f(j,k) trên cơ sở các hệ số F(u,v) theo công thức sau:


Bản thân phép biến đổi DCT không nén được dữ liệu, từ 64 mẫu ta nhậnđược 64 hệ
số. Trong các hệ số DCT, thành phần DC thường có giá trị lớn nhất, cáchệ số nằm kề
nó ứng với tần số thấp có giá trị nhỏ hơn, các hệ số còn lại ứng với tầnsố cao thường có
giá trị rất nhỏ.

Trên hình vẽ 9 là một ví dụ minh họa quá trình biến đổi DCT hai chiều chomột
block 8×8 điểm ảnh (chói) được trích ra từ một ảnh thực. Thành phần chói Ysau khi số
hóa sẽ có biên độ các mẫu nằm trong khoảng 0-255, các mẫu của thành phần CR, CB
có biên độ cực đại là 128. Để có thể sử dụng bộ mã hóa DCT cho các tín hiệu chói và
màu, tín hiệu Y được dịch mức xuống dưới bằng cách trừ 128 từ mỗi giá trị pixel trong
block 8x8. ở bộ giải mã DCT, giá trị này sẽ được cộng thêm vào các giá trị chói sau khi
nén.Giá trị hệ số DC của khối DCT dao động trong khoảng đến -1
23
Hình 5. Kết quả các bước nén ảnh theo JPEG và bảng lượng tử Q(u,v)
 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ố DCTF(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ố đó.Các hệ số
tương ứng với tần số thấp thường có giá trị lớn, những hệ số này chứa phần lớn năng
lượng của tín hiệu, do đó chúng phải được lượng tử hóa với độ chínhxác cao. Riêng hệ
số DC cần mã hóa với độ chính xác cao nhất, bởi lẽ hệ số này là giá trị độ chói trung
bình của từng block ảnh. Sự thay đổi độ chói trung bình của các block sẽ ảnh hưởng rất
nhiều tới chất lượng của ảnh nén.
Để thực hiện quá trình nén dữ liệu, ma trận của các hệ số khai triển DCT phải 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 độ nhỏ ( thường là
các thành phần cao tần).
JPEG sử dụng phương pháp lượng tử không đồng đều, các hệ số có tần số thấp được
chia cho các giá trị nhỏ, các hệ số ứng với tần số cao được chia cho các 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)


Trên hình 2 mô tả quá trình DCT :ảnh gốc (a), ma trận hệ số DCT trước (b) và sau khi
lượng tử hóa(d) bằng cách chia bảng lượng tử Q(u,v)( c).
 Quét Zig-Zag.
24
Để mã hóa entropy các hệ số (u,v), trước hết cần biến đổi ma trận hệ số (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 zig-zag.Việc
đọc hệ số của khối 8*8 pixel theo đường zig zag làm tăng tối đa độ dài của chuỗi 0 liên
tiếp, như vậy hiệu quả nén khi dùng mã RLC sẽ tăng.
Hình 6. Quét zig-zag các hệ số lượng tử hóa DCT
 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 mã Huffman. Trên lý thuyết, dải động của cácgiá 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 có giá trị nằm trong khoảng đến , 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. Sơ đồ bộ mã hóa DC
Hệ số DC của các block DCT được lần lượt đưa tới bộ DPCM. Thành phần saisố giữa
hai hệ số DC lien tiếp sẽ được mã hóa trong bộ mã Huffman. Quá trình mãhóa
25

×