BÁO cáo GIỮA kỳ CHUYÊN đề xử lý ẢNH Kỹ thuật mã hoá ảnh bằng giải thuật HUff manXây dựng bảng mã theo cây nhị phân ,sử dụng GUi trong matlab để tạo giao diện cho chương trình mô phỏng nén và giải nén ảnh có rgb bằng 3
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG KHOA ĐIỆN TỬ- VIỄN THÔNG BÁO CÁO MÔN HỌC KỸ THUẬT MULTIMEDIA Tên đề tài: NÉN / GIẢI NÉN ẢNH KHÔNG TỔN HAO BẰNG GIẢI THUẬT HUFFMAN Nhóm sinh viên thực hiện: Nguyễn Xuân Cường Lê Đức Tuấn Lớp 10DT3 Nguyễn Quốc Biển Giảng viên hướng dẫn: Lớp 10DT3 Lớp 10DT3 PGS.TS Phạm Văn Tuấn TĨM TẮT : Mục đích đề tài nhằm tìm hiểu giải thuật làm giảm số lượng bit liệu cho truyền tải lưu trữ Báo cáo khái quát loại nén với trọng tâm tập trung phân tích nén giải nén ảnh không tổn hao giải thuật Huffman.Ý tưởng nén dựa việc tính xác xuất xuất điểm ảnh, xây dựng mã Huffman, sau thực nén ảnh Quá trình giải nén ảnh trình thực ngược lại so với trình nén ảnh PHẦN A: Tổng quan nén liệu ảnh Phần nhằm cung cấp số khái niệm (thuật ngữ) như: nén , tỷ lệ nén, ý tưởng dẫn tới phương pháp nén khác nhau, phân loại, đánh giá phương pháp nén Một số khái niệm 1.1 Nén liệu ( data compression ) Nén liệu trình làm giảm lượng thông tin dư thừa liệu gốc lượng thông tin thu sau nén thường nhỏ nhiều so với liệu gốc.Với liệu ảnh, kết thường 10:1 Nhóm Sinh Viên: Nguyễn Xuân Cường Lê Đức Tuấn Nguyễn Quốc Biển Ngoài thuật ngữ ‘nén liệu’, chất kỹ thuật cịn có thêm số tên gọi khác như: giảm độ dư thừa, mã hoá ảnh gốc 1.2 Tỷ lệ nén (compression rate) Tỷ lệ nén đặc trưng quan trọng loại phương pháp nén Nhìn chung ta định nghĩa tỷ lệ nén sau : Tỷ lệ nén=(1/r)*% Với r tý số nén định nghĩa: r=kích thước liệu gốc/kích thước liệu thu sau nén.Trong trình bày, nói đến kết nén, dùng tý số nén, ví dụ nói 10:1 kích thước liệu gốc 10 kích thước liệu nén có 1.3 Các loại dư thừa liệu Việc xác định chất kiểu dư thừa liệu có ích cho việc xây dựng phương pháp nén khác Nói theo cách khác, sử dụng phương pháp nén khác sử dụng dạng dư thừa khác Có kiểu dư thừa sau: 1.3.1 Sự phân bố ký tự Trong dãy ký tự, có ký tự có tần xuất xuất lớn dãy khác Do ta mã hố liệu cách đọng Các ký tự có tần xuất cao thay từ mã nhị phân với số bit nhỏ Ngược lại, dãy có tần xuất thấp thay từ mã nhị phân có số bit lớn Đây chất phương pháp mã hoá Hufman phân tích kỹ mục sau 1.3.2 Sự lặp lại ký tự Một số ký hiệu lặp lặp lại số lần Ký thuật nén dung trường hợp thay dãy dãy gồm hai thành phần :số lần lặp ký hiệu dung để mã hoá Phương pháp mã hố kiểu có tên mã hố loạt dài RLC (Run Length coding ) 1.3.3 Những mẫu sử dụng tần xuất Có thể có dãy ký hiệu xuất với tần xuất tương đối cao Do vậy, mã hố bit Đây sở phương pháp mã hoá kiểu từ điển Lempel-Ziv đưa có cải tiến vào năm 1977,1978 có tên gọi phương pháp nén LZ77,LZ78 NĂm 1984 ,Terry Welch cải tiến hiệu đặt tên LZW (Lempel-Ziv-Welch) 1.3.4.Độ dư thừa vị trí Nhóm Sinh Viên: Nguyễn Xn Cường Lê Đức Tuấn Nguyễn Quốc Biển Do phụ thuộc lẫn liệu,đơi biết kí hiệu (giá trị) xuất vị trí,đồng thời đốn trước xuất giá trị vị trí khác cách phù hợp.Chẳng hạn,ảnh biểu diễn trông lưới hai chiều,một số điểm hàng dọc trông khối liệu lại xuất vị trí hàng khác nhau.Do vậy,thay lưu trữ liệu,ta cần lưu trữ vị trí hàng cột.Phương pháp nén dựa dư thừa gọi phương pháp mã hóa dự đoán Cách đánh giá độ dư thừa hồn tồn mạng tính trực quan nhằm biểu thị xuất nhiều lần.Đối với liệu ảnh, ngồi đặc thù chung đó,nó cịn có đặc thù riêng.Thí dụ có ứng dụng khơng cần tồn liệu thô ảnh mà cần thông tin đặc trưng biểu diễn ảnh biên ảnh hay vùng đồng nhất.Do vậy,có phương pháp nén riêng cho ảnh dựa vào biển đổi ảnh hay dựa vào biểu diễn ảnh 1.4 Phân loại phương pháp nén Có nhiều cách phân loại phương pháp nén khác nhau.Cách thứ dựa vào nguyên lý nén.Cách phân phương pháp nén thành họ lớn: 1.4.1 Nén xác hay nén khơng thơng tin Họ bao gồm phương pháp nén mà sau giải nén ta thu xác liệu gốc 1.4.2 Nén có mát thơng tin Họ bao gồm phương pháp mà sau giải nén ta không thu liệu gốc.Trong nén ảnh, người ta gọi phương pháp "tâm lý thị giác" Các phương pháp lợi dụng tính chất mắt người,chấp nhận số vặn xoắn ảnh khôi phục lại.Tuy nhiên,các phương pháp có hiệu mà độ vặn xoắn chấp nhận mắt thường hay với dung sai PHẦN B: Phương pháp mã hóa Huffman Tìm hiểu phương pháp mã hố Huffman 1.1 Ngun tắc Phương pháp mã hóa Huffman phương pháp dựa vào mơ hình thống kê Dựa vào liệu gốc, người ta tính tần suất xuất ký tự.Việc tính tần xuất thực cách duyệt tệp gốc từ đầu đến cuối.Việc xử lý tính theo bit.Trong phương pháp này, người ta gán cho ký tự có tần suất cao từ mã ngắn, ký tự có tần xuất thấp từ mã dài Nói cách khác, ký tự có tần xuất cao gắn mã ngắn ngược lại Rõ ràng Nhóm Sinh Viên: Nguyễn Xuân Cường Lê Đức Tuấn Nguyễn Quốc Biển 23 với cách thức này, ta làm giảm chiều dài trung bình từ mã hóa cách dùng chiều dài biến đổi.Tuy nhiên, số tình tần suất thấp, ta khơng lợi chút nào, chí cịn bị thiệt bit 1.2.Thuật tốn Thuật tốn bao gồm bước chính: * Giai đoạn tính tần suất ký tự liệu gốc: Duyệt tệp gốc cách từ đầu đến cuối để xây dựng bảng mã.Tiếp sau 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 tuần suất từ cuối lên đầu để thực ghép phần tử có tần suất thấp thành phần tử nhất.Phần tử có tần xuất tổng tần suất thành phần.Tiến hành cập nhật lại bảng đương nhiên loại bỏ phần tử xét.Quá trình lặp lại bảng có phần tử với xác xuất 1.Quá trình gọi trình tạo mã Huffman việc tập hợp tiến hành nhờ nhị phân với nhánh.Phần tử có tần suất bên phải,phần tử bên trái.Với cách tạo này, tất bit liệu/ ký tự nút ;các nút nút tổng hợp.Sau tạo xong,người ta tiến hành gán mã cho nút lá.Việc mã hóa đơn giản:mỗi lần xuống bên phải ta thêm bit "1" vào từ mã; lần xuống bên trái ta thêm bit "0".Tất nhiên làm ngược lại, có giá trị mã thay đổi cịn tổng chiều dài khơng đổi Cũng lý mà có tên gọi mã Huffman gọi Quá trình giải nén : Tiến hành theo chiều ngược lại đơn giản.Người ta phải dựa vào bảng mã tạo giai đoạn nén ( bảng giữ lại cấu trúc đầu tệp nén với liệu nén) Sơ đồ khối: Tạo bảng mã (tính tốn Mã hóa kí tự nguồn theo kí 1.3.Ví dụ mã hố Huffman tự (symbol by symbol) Tính tốn xác suất Thêm xác suất tính vào bảng mã Nhóm Sinh Viên: Nguyễn Xuân Cường Lê Đức Tuấn Nguyễn Quốc Biển 28 Bảng 1: Cây mã Huffman Ta có mã sau: a1=001; a2=1; a3=00001; a4=0000; a5=00000; a6=01 Lavg=1(0.4)+2(0.3)+4(0.1)+3(0.1)+5(0.06)+5(0.04)=2.2 bits H(p)=P(i)log2P(i)=2.14 bits/ký tự Hiệu suất việc mã hoá : H(p)/Lavg=97.27 % Kết thực nghiệm nén ảnh giải thuật Huffman 2.1 Demo matlab Đầu tiên nhóm chúng em xây dựng giao diện sau GUI mat lab: 2.1.1 Giải thuật chương trình: ảnh gốc Ma trận RGB Các giá trị( Symbol_y) Cây mã Huffman Sinh Nhóm Xác suất( Prob_y) Viên: Nguyễn Xuân Cường Lê Đức Tuấn Nguyễn Quốc Biển Từ mã(codeword) Mã Hoá ảnh Codeword+y+symboys Ảnh Khôi Phục Ma trận RGB code Giải mã ảnh 2.1.2 Chức nút lênh: 2.1.2.1 Nút Select Image -> chọn ảnh cần mã hóa Khi nhấn nút Select Image để chọn ảnh WorkSpace Matlab xuất thêm biến anh_goc, biến chứa ma trận điểm ảnh giá trị thang xám Ở ảnh chọn có kích thước 126x189 pixel ảnh màu, tương ứng với ma trận S có kích thước 126x189x3, ảnh màu nên anh_goc ma trận chiều R G B ( ta dễ dàng quan sát WorkSpace Matlab) Nhóm Sinh Viên: Nguyễn Xuân Cường Lê Đức Tuấn Nguyễn Quốc Biển 2.1.2.2 Nút Creat Huffman :có chức tạo mã nén Huffman dựa thống kê xác xuất thang xám ma trận S Trên WorkSpace xuất thêm biến mới: - Sysmbol_y ma trận chứa giá trị thang xám, Prob_y xác suất xuất thang xám tương ứng ảnh , Table có kiểu cấu trúc, chứa giá trị tương ứng thang xám mã huffman thang xám Nhóm Sinh Viên: Nguyễn Xuân Cường Lê Đức Tuấn Nguyễn Quốc Biển 2.1.2.3 Nút Encode: có chức mã hóa thơng tin ảnh tính tỉ số nén dựa Huffman xây dựng Sau lệnh Encode thực xong giao diện xuất mã Huffman tỉ số nén ảnh 2.1.2.4 Nút Decode :có chức giải mã dựa code mã hóa (image_code) Huffman xây dựng Sau lệnh thực thi cửa sổ WorkSpace Matlab xuất ma trận anh_giainen (image_decode) chứa thơng tin ảnh sau giải mã Nhóm Sinh Viên: Nguyễn Xuân Cường Lê Đức Tuấn Nguyễn Quốc Biển Dễ nhận thấy ma trận anh_giainen có kích thước giống ma trận anh_goc ( ma trận ảnh gốc S ban đầu ) 126x189x3 Kiểm chứng lại thông tin chứa ma trận anh_goc anh_gainen nhận thấy giá trị hoàn toàn giống (do kĩ thuật nén Huffman kĩ thuật nén khơng có tổn hao) 2.1.2.5: Kết Demo với ảnh khác nhiều chi tiết Nhóm Sinh Viên: Nguyễn Xuân Cường Lê Đức Tuấn Nguyễn Quốc Biển 2.2 Kết đạt -Hiểu phương pháp nén khác từ việc xác định dạng dư thừa khác -Biết phân biệt loại nén khác nén liệu nén khơng liệu, từ biết phạm vi áp dụng chúng -Tìm hiểu sâu phương pháp nén không liệu giải thuật Huffman: Hiểu nguyên tắc giải thuật Huffman, từ xây dựng Huffman từ tần xuất xuất điểm ảnh, mã hoá ảnh từ xây dựng -Bước đầu thực thành cơng chương trình nén giải nén sử dụng giải thuật Hufman, với giao diện GUI matlab -Xác minh tỷ số nén phụ thuộc vào liệu : Hình ảnh có nhiều chi tiết tỷ số nén nhỏ Hạn Chế : Giao diện chương trình xấu ,thời gian xử lý nén ảnh giải nén ảnh dài chưa khắc phục với laoij ảnh nhiều chi tiết 2.3.Ứng dụng phương pháp nén giải thuật Huffman Một số lĩnh vực ứng dụng yêu cầu không liệu nén: Nhóm Sinh Viên: Nguyễn Xuân Cường Lê Đức Tuấn Nguyễn Quốc Biển -Y khoa, kinh tế : văn lưu trữ -Xử lý hình ảnh vệ tinh: việc mát thong tin điều không muốn -Chụp ảnh số tia X: Thơng tin bị bao gồm chẩn đốn xác 2.4 Nhận xét Trong phương pháp nén, hiệu nén không tỷ số nén phản ánh, mà cịn phụ thuộc vào nhiều yếu tố khác kiểu liệu định nén….Tỷ số nén đặc trưng phương pháp nén Nhiều tỷ số nén cao chưa thể nói phương pháp hiệu phương pháp khác, cịn chi phí khác khơng gian, thời gian, độ phức tạp việc tính tốn Tuỳ theo mục đích nén mà ta sử dụng phương pháp nén cho phù hợp Ưu điểm nén giải thuật Huffman: Hệ số nén tương đối cao , Phương pháp thực tương đối đơn giản , Địi hỏi nhớ Nhược điểm nén giải thuật Huffman: Mất lần duyệt file nén: lần để xác định tần suất & dựng mã, lần để mã hóa Phải lưu trữ thông tin giải mã vào file nén THANKS FOR WATCHING!! Nhóm Sinh Viên: Nguyễn Xuân Cường Lê Đức Tuấn Nguyễn Quốc Biển ...Ngoài thuật ngữ ‘nén liệu’, chất kỹ thuật cịn có thêm số tên gọi khác như: giảm độ dư thừa, mã hoá ảnh gốc 1.2 Tỷ lệ... giải thuật Huffman: Hiểu nguyên tắc giải thuật Huffman, từ xây dựng Huffman từ tần xuất xuất điểm ảnh, mã hoá ảnh từ xây dựng -Bước đầu thực thành cơng chương trình nén giải nén sử dụng giải thuật. .. biến đổi.Tuy nhiên, số tình tần suất thấp, ta khơng lợi chút nào, chí cịn bị thiệt bit 1.2 .Thuật tốn Thuật tốn bao gồm bước chính: * Giai đoạn tính tần suất ký tự liệu gốc: Duyệt tệp gốc cách