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 đến 700KB), ảnh JPEG chất lượngcao 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 nó cũng có một số mặt hạn chế.
Trang 1TRƯỜ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
Xử Lý Dữ Liệu Đa Phương Tiện
Đề tài 7: Kĩ thuật nén ảnh JPEG cơ bản (Sequential DCT-Baseline JPEG)
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 Đinh Hải Anh 20111106
Hà Nội, 05/2015
Trang 2MỤC LỤC
MỞ ĐẦU 3
PHÂN CÔNG CÔNG VIỆC 4
CHƯƠNG I: GIỚI THIỆU VỀ CÁC CHUẨN JPEG 5
I.1 Tổng quan về JPEG 5
I.2 Ưu và nhược điểm của các phương pháp nén ảnh JPEG 6
I.3 Các tiêu chuẩn JPEG 6
I.3.1 JPEG 1992 6
I.3.2 LS-JPEG (Lossness JPEG) 7
I.3.3 JPEG Search 7
I.3.4 JPEG XR 8
CHƯƠNG II: CÁC KỸ THUẬT NÉN ẢNH JPEG 9
II.1 Tổng quan về các kỹ thuật nén ảnh JPEG 9
II.1.1 Phân loại các phương pháp nén ảnh 9
II.1.2 Độ dư thừa dữ liệu 9
II.1.3 Tiêu chuẩn đánh giá chất lượng hình ảnh 10
II.1.4 Mô hình hệ thống nén tín hiệu 10
II.2 Các kỹ thuật nén ảnh JPEG 12
II.2.1 Nén ảnh JPEG tuần tự (JPEG Baseline) 12
II.2.2 Nén ảnh JPEG không tổn hao (JPEG lossless) 20
II.2.3 Nén ảnh JPEG lũy tiến (JPEG progressive) 26
II.2.4 Nén ảnh JPEG phân cấp (JPEG Hierarchical) 35
CHƯƠNG III: THỬ NGHIỆM ỨNG DỤNG 38
III.3.1 Chương trình chính 40
III.3.2 Khối A: Quá trình nén ảnh 42
III.3.3 Khối B: Quá trình giải nén 47
III.3.4 Khối C: Đánh giá hiệu năng 48
KẾT LUẬN 51
Trang 3MỞ ĐẦ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ôngtin – truyền thông nói chung đã và đang tiếp tục mở rộng phát triển nhanh chóng, đạt đượcnhữ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ữngquy 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 chonhu 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ườitrong 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ênmạ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ínhhiệ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ầntrong 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ươngtiệ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áctệ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à chiphí 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áinhì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 đờisố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 tindạ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, đánhgiá 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 emxin 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 Lantrong suốt quá trình thực hiện đề tài này
Trang 4PHÂN CÔNG CÔNG VIỆC
Trang 5
CHƯƠNG I: GIỚI THIỆU VỀ CÁC CHUẨN JPEG
I.1 Tổng quan về JPEG
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ạngné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ượngcao 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éplà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àichục lần Tuy nhiên nó cũng có một số mặt hạn chế
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ừngmứ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 đencùng cỡ Với những ảnh này các phương pháp nén ảnh như IFF(Image File Format) theophương pháp RLE (Run Length Encoding) không mang lại hiệu quả vì hệ số nén chỉ đạt tới2: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ápnà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énkhác không để mất thông tin như của Lempel- Ziv -Welch (LZW) có thể cho hệ số nén tới6: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 tinmấ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ộtcá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
Trang 6giữ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 ánthích hợp
I.2 Ưu và nhược điểm của các phương pháp nén ảnh JPEG
I.2.1 Ư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áchì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 ảnhchụp và hình ảnh minh họa có số lượng màu lớn
I.2.2 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ểnsang đị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 ảnhJPEG 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ôngtin 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ạn sẽ sử dụng định dạngGIF (hoặc định dạng PNG để tạo trong suốt)
I.3 Các tiêu chuẩn JPEG
I.3.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àutrong không gian của 3 màu RGB (Red Green Blue) được biến đổi về hệ YUV (hayYCBCr) (đ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 caohơ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ũngnhư 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áccủ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
Trang 7Giai đ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ớicá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 nhaugiữ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 đổinhỏ 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áccủ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 độ caohơ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ệungắ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ìnhngượ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 hayxuấ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ệtcủ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
I.3.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ằngcá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óadựa trên các lỗi dự báo
I.3.3 JPEG Search
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ênbả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ộttậ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ànhphần của nó
Trang 8 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ắcrố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ột giaothứ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 Formatbetween Image Repositories)
I.3.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ớiJPEG để 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)
Trang 9II.1 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ầnthiế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án học để biến ma trậncá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 trongtí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ớnthì độ dư thừa cũng lớn
II.1.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ápné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 độnglên ảnh biến đổi
II.1.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 địnhnhư 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ểudiễn lượng thông tin cho trước thì độ dư thừa số liệu tương đối R D của tập số liệuthứ nhất so với tập số liệu thứ hai có thể được định nghĩa như sau:
R D=1-1/C N với C N=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ì C N tiến tối vô cùng
và R D 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ộidung ảnh Có thể đánh giá chất lượng ảnh nén theo số bit cho một điểm trong ảnhnén (N b) N b
đượ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:
Trang 10N b=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ý
II.1.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ượngthô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ữahai ả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ínhiệ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)
II.1.4 Mô hình hệ thống nén tín hiệu
Trang 11Hệ 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 gianthực sang một không gian khác, nơi các hệ số chuyển đổi có mức độ tươngquan 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ếndạ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
Trang 12 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ễutớ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êmmộ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ươngphá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.2 Các kỹ thuật nén ảnh JPEG
II.2.1 Nén ảnh JPEG tuần tự (JPEG Baseline)
II.2.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 ứngdụ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ự)
II.2.1.2 Quá trình mã hóa và giải mã ảnh JPEG tuần tự.
Trang 13 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ảmcá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ụngcá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ý
ảnh màu được chia thành các khối 8x8 , khối màu là một đơn vị dữ liệu
Mục đích: Giảm thời gian tính toán cũng như làm khả năng chính xác khi tính toán
Do các điểm ảnh lân cận có độ tương quan cao, do đó phép biển đổi DCT cho từngkhối nhỏ sẻ tập trung năng lượng vào một số ít các hệ biến đổi việc loại bỏ một số
Trang 14năng lượng thấp trong các khối chỉ tạo ra mất mát thông tin cục bộ giúp nâng caochất lượng ảnh.
Biến đổi DCT
Vai trò
DCT (Discrete Cosine Transform) là phép biến đổi Cosin rời rạc để chuyển tín hiệu từmiền thời gian hay không gian sang miền tần số Đặc điểm của phép biến đổi này là tín hiệuảnh trong miền không gian chuyển sang miền tần số thì các thành phần DC và các thànhphần AC mang hầu hết các thông tin chứa trong ảnh gốc Trong đó, DC là thành phần quantrọng nhất mang độ chói trung bình của ảnh, các thành phần AC chứa các thông tin về chitiết của ảnh Sau đó, khi qua tầng lượng tử hoá, các hệ số ít quan trọng sẽ bị loại bỏ bớt vàchỉ giữ lại một số hệ số hệ số đầu tiên gọi là hệ số DCT.Vai trỏ chủ yếu của phương phápDCT là giảm độ dư thừa dữ liệu trong pixcel ở miền tần số cao Bởi vì bất kì một giá trịpixcel nào đó cũng có thể dự đoán từ các giá trị pixcel lân cận của nó nên thông tin từ cácpixcel riêng lẻ là tương đối nhỏ.Để giảm độ dư thừa của các pixcel đặc biệt là các pixcel ởmiền tần số cao,thì phương pháp DCT là vô cùng thích hợp.Không những vậy sau khi biếnđổi DCT thì hàm giải tương quan giảm đi một cách đáng kể.Chính vì vậy mà hiệu suất nénđạt được tỉ số nén cao.Điều quan trọng là khối DCT đóng vai trò quan trọng trong quá trìnhlượng tử hóa khi thiết kế hệ thống nén video vì nó ảnh hưởng trực tiếp đến việc cho lại chấtlượng ảnh khôi phục tốt hay xấu.Có thể nói chính điều đó đã làm lên môt chuẩn JPEG đượcứng dựng rộng rãi như vậy
Mục đích:
Chuyển từ miền không gian sang miền tần số tín hiệu sẻ tập trung sang miền tần sốthấp
DCT làm giảm độ tương quan không gian block Điều đó cho phép biểu diễn thích hợp
ở miền DCT do các hệ số DCT có xu hướng có phần dư thừa ít hơn Điều này có nghĩa
là DCT gói một phần lớn năng lượng tín hiệu vào các thành phần có thành phần tần sốtương ứng để lưu trử hoặc truyền dẫn tạo 0 hoặc các giá trị thấp đối với các thành phầntần số cao, nhờ đặc tính của mắt người, các hệ số DCT có thể m mã hóa phù hợp chỉcác hệ số DCT quan trọng nhất mới được mã hóa và truyền đi DCT thuận kết hợp vớivideo đầu vào được mã hóa bằng các mẫu dài 8 bit Nếu hệ số được lượng tử hóa bằng
11 bit, thì nén sẽ tổn hao Sau khi thực hiện DCT năng lượng thấp tập trung chủ yếumiền tần số thấp
Biến đổi DCT một chiều
Trang 15DCT một chiều biến đổi biên độ tín hiệu tại các điểm rời rạc theo thời gian hoặckhông gian thành chuỗi các hệ số rời rạc, mỗi hệ số biểu diễn biên độ của một thànhphần tần số nhất định có trong tín hiệu gốc Hệ sốđầu tiên biểu diễn mức DC trung bìnhcủa tín hiệu Từ trái sang phải, các hệ số thể hiện các thành phần tần số không gian caohơn của tín hiệu và được gọi là các hệ số AC Thông thường, nhiều hệ số AC có giá trị
sẽ gần hoặc bằng 0 Quá trình biến đổi DCT thuận (FDCT) dùng trong tiêu chuẩn JPEGđược định nghĩa như sau:
Hàm biến đổi DCT ngược (một chiều):
trong đó:
X(k) là chuỗi kết quả
x(m) là giá trị của mẫu m
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
Biến đổi DCT hai chiều
Để tách tương quan nội dung ảnh cao hơn, mã hóa DCT hai chiều (2-D) được dùngcho các khối 8×8 giá trị các điểm chói Quá trình biến đổi DCT tiến FDCT (forwardDCT) dùng trong tiêu chuẩn JPEG được định nghĩa như sau:
Biến đổi DCT là một trong những công đoạn quan trọng trong Jpeg.Nhiệm vụ của
nó là tập trung năng lượng vào một số các giá trị để giải tương quan tốt nhất nhằm nângcao tỉ số nén
Trang 16trong đó:
f(j,k)- các mẫu gốc trong khối 8×8 pixel
F(u,v)-các hệ số của khối DCT 8×8
Phương trình trên là một liên kết 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ố đứng Giá trị trung bình của block 8x8 chính là hệ số thứnhất (khi u,v= 0)
Phương trình này cộng tất cả các giá trị pixel trong khối 8×8 và chia kết quả cho 8 Kếtquả phép tính bằng 8 lần giá trị pixel trung bình trong khối Do đó hệ số thứ nhất được gọi
là hệ số DC Các hệ số khác, dưới giá trị thành phần một chiều, biểu diễn các tần số cao hơntheo chiều dọc Các hệ số ở về phía bên phải của thành phần một chiều biểu thị các tần sốcao hơn theo chiều ngang Hệ số trên cùng ở cận phải (0,7) sẽ đặc trưng cho tín hiệu có tần
số cao nhất theo phương nằm ngang của ma trận 8×8, và hệ số hàng cuối bên trái (7,0) sẽđặc trưng cho tín hiệu có tần số cao nhất theo phương thẳng đứng Còn các hệ số khác ứng
Trang 17vớ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.
Trang 18Biểu diễn ma trận trước và sau khi biến đổi DCT
Nếu dùng quá trình DCT cho các tín hiệu số thành phần Y, CR,CB thì các tín hiệuCB,CR có biên độ cực đại ±128 ( giá trị nhị phân trong hệ thống lấy mẫu 8 bit), còn tínhiệu Y có một khoảng cực đại từ 0 đến 255 giá trị nhị phân Để đơn giản việc thiết kế bộ
mã hóa DCT, tín hiệu Y được dịch mức xuống dưới bằng cách trừ 128 từ từng giá trịpixel trong khối để có khoảng cực đại của tín hiệu giống như đối với các tín hiệu CR và
CB Ở phần giải mã DCT, giá trị này (128) được cộng vào các giá trị pixel chói Giá trị
hệ số DC của khối DCT có một khoảng từ –1024 đến 1016 Đối với hệ số AC ( vớiu,v=1,2, ,7), C(u) và C(v)=1 và các giá trị cực đại của nó nằm trong khoảng ±1020 theophương trình FDCT Khối 8×8 các giá trị của hệ số DCT đưa ra 1 giá trị DC lớn (ví dụ
=591), biểu diễn độ sáng trung bình của khối 8×8 và các giá trị rất nhỏ của các thànhphần tần số cao theo chiều ngang và chiều đứng
Để loại bỏ một số giá trị không cần thiết thì chúng ta cần nhân với bảng trọng số
Bảng trọng số Q(u,v)
Trang 19Tóm lại, DCT làm giảm độ tương quan không gian của thông tin trong block Điều
đó cho phép biễu diễn thích hợp ở miền DCT do các hệ số DCT có xu hướng có phần
dư thừa ít hơn Điều này có nghĩa là DCT gói một phần lớn năng lượng tín hiệu vào cácthành phần biến đổi có tần số tương đối thấp để lưu trữ hoặc truyền dẫn, tạo 0 và các giátrị rất thấp đối với thành phần tần số cao Nhờ đặc tính của hệ thống nhìn của mắtngười, các hệ số DCT có thể được mã hóa phù hợp, chỉ các hệ số DCT quan trọng nhấtmới được mã hóa và truyền đi DCT thuận kết hợp với DCT nghịch sẽ không cho tổnthất nếu độ dài từ mã của hệ số là 13 đến 14 bits cho tín hiệu video đầu vào được số hóabằng các mẫu dài 8 bit Nếu hệ số được lượng tử hóa bằng 11 bit (hoặc ngắn hơn), thìnén bằng DCT sẽ có tổn hao.Sau khi thực hiên DCT năng lượng tập trung chủ yếu ởmiền tần số thấp
Trang 20 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ữ
Trang 21II.2.2 Nén ảnh JPEG không tổn hao (JPEG lossless)
II.2.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
II.2.2.2 Các phương pháp mã hóa ảnh JPEG không tổn hao
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 ảnhdự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ếpthay 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:
Trang 22 Đố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 2chuỗ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ộtcá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
ý 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ếpphầ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
Trang 23 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 tatí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ảmchiề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áchtuầ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ã theothứ 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ấtbằ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 nhiên loại bỏ 2phầ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ìnhnà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ạocâ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 khicâ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ộtbit “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ựavà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éncù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ị 0xuấ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 đầucủ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êuchuẩn nhất định
Trang 24 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épnâ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ácchuỗ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 chocá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
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 4096phầ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=212) 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ặplớ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ôngthườ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 512phầ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ểudiễn bởi 10 bit, từ 1024 đến 2047 biểu diễn bởi 11 bit, và từ 2048 đến 4095 biểudiễ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
Trang 25tin 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 tochúng.
Hai thuật toán còn lại (Huffman và LZW) đều có thể áp dụng được để nén nhiềuloạ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ựchiệ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ơn64KB 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énkhô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 đơngiả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ắcphụ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 coinhư 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ấtmá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 trungbì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 trongnhững mẫu tiếp theo thường là gần bằng không
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:
Trang 26Sơ đồ 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ệntrong hình sau để dự báo giá trị của mẫu tại vị trí dán nhãn của X
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áncho 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ộttrong 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ácmẫu có thể được lấy và entropy-mã hóa trong một thời trang không giảm chất lượngbằ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 tracá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ụngtrong 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áthiện cạnh trung vị(Median Edge Dectection-MED)hay dự đoán LoCo-I(LoCo-Ipredictor) Điểm ảnh X được dự đoán bằng LoCo-I predictor theo tiêu chí sau đây: