Tìm hiểu một số thuật toán mã hóa và nén dữ liệu, xây dựng ứng dụng để nén dữ liệu ảnh

27 387 0
Tìm hiểu một số thuật toán mã hóa và nén dữ liệu, xây dựng ứng dụng để nén dữ liệu ảnh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN THÀNH DƢƠNG TÌM HIỂU MỘT SỐ THUẬT TOÁN MÃ HÓA VÀ NÉN DỮ LIỆU, XÂY DỰNG ỨNG DỤNG ĐỂ NÉN DỮ LIỆU ẢNH LUẬN VĂN THẠC SỸ KHOA HỌC Th¸i Nguyªn - 2012 MỤC LỤC Trang TRANG PHỤ BÌA LỜI CAM ĐOAN MỤC LỤC LỜI CÁM ƠN DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC HÌNH VẼ MỞ ĐẦU Chƣơng 1: CƠ SỞ LÝ THUYẾT 1.1 Mã hóa thông tin 1.2 Nén liệu 1.3 Entropy 1.4 Các kết nén liệu 1.4.1 Phân loại nén liệu 1.4.2 Các định lý nén liệu 1.5 Lý thuyết hình ảnh 1.5.1 Giới thiệu ảnh số xử lý ảnh số 1.5.2 Mục đích cần thiết nén ảnh 1.5.3 Phân loại phƣơng pháp nén ảnh Chƣơng 2: MỘT SỐ THUẬT TOÁN MÃ HÓA VÀ NÉN DỮ LIỆU 2.1 Thuật toán HUFFMAN 2.1.1 Ý tƣởng thuật toán 2.1.2 Thuật toán 2.2 Thuật toán tách đoạn (RLE – Runlength Coding) 2.2.1 Ý tƣởng thuật toán 2.2.2 Thuật toán 2.4 Thuật toán nén ảnh JPEG 2.3.1 Ý tƣởng thuật toán 2.3.2 Thuật toán nén ảnh JPEG 2.4 Thuật toán nén ảnh nâng cao AIC 2.4.1 Chuẩn H.264/AVC 2.4.2 Thuật toán AIC 2.4.3 Các kết AIC Chƣơng 3: XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM 3.1 Xây dựng chƣơng trình 3.2 Một số thủ tục chƣơng trình chạy thử nghiệm 3.2.1 Thủ tục chƣơng trình nén ảnh giải nén thuật toán i iii iv v vi 4 5 8 14 14 15 16 19 19 19 19 22 22 24 25 25 26 32 34 40 55 56 56 56 56 HUFFMAN 3.2.2 Thủ tục chƣơng trình nén ảnh giải nén thuật toán RLE 3.2.3 Thủ tục chƣơng trình nén ảnh thuật toán JPEG 3.3 Giao diện chƣơng trình 3.4 Các bƣớc thực chƣơng trình 3.5 So sánh kết thử nghiệm KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN TÀI LIỆU THAM KHẢO 61 62 64 66 68 72 74 PHẦN MỞ ĐẦU Nén liệu đƣợc sử dụng hầu nhƣ nơi Tất hình ảnh mà xem chép đƣợc từ trang web tệp hình ảnh đƣợc nén, thông thƣờng định dạng JPEG GIF; đa số modem sử dụng tính nén liệu; truyền hình độ phân giải cao (HDTV) sử dụng phƣơng pháp nén theo chuẩn MPEG-2 Một số hệ thống quản lý tệp tin tự động nén tệp tin lƣu trữ thƣờng sử dụng chƣơng trình nén khác để nén tệp liệu Quá trình làm giảm kích thƣớc tệp liệu đƣợc gọi cách phổ biến nén liệu (data compresion), tên gọi lý thuyết thông tin mã hóa nguồn (source coding) Trong khoa học máy tính lý thuyết thông tin, nén liệu (hoặc mã hóa nguồn) việc mã hóa thông tin số bit so với biểu diễn ban đầu Có thể chia phƣơng pháp nén hai lớp: nén không thông tin nén có thông tin Nén không thông tin làm giảm bit số bít biểu diễn cách xác định loại bỏ độ dƣ thừa thống kê cách biểu diễn ban đầu Nhƣ tên gọi, thông tin không bị trình nén không thông tin Nén có thông tin cố gắng giảm số bit cách xác định thông tin không quan trọng loại bỏ chúng Nếu nói ngắn gọn chất nén, tập hợp thuật toán, bao gồm từ phân loại, hàm băm, biến đổi Fourier nhanh (FFT), Ngoài thuật toán dựa tảng lý thuyết vững đóng vai trò quan trọng ứng dụng thực tế Nén liệu hữu ích giúp giảm tài nguyên sử dụng nhƣ không gian lƣu trữ liệu dung lƣợng truyền Vì liệu nén phải đƣợc giải nén trƣớc sử dụng, điều đòi hỏi thêm chi phí tính toán để giải nén Ví dụ, chƣơng trình nén cho video yêu cầu phần cứng đắt tiền cho video đƣợc giải nén đủ nhanh để đƣợc xem nhƣ đƣợc giải nén, tùy chọn để giải nén video đầy đủ trƣớc xem bất tiện yêu cầu lƣu trữ bổ sung Việc thiết kế chƣơng trình nén liệu liên quan đến việc dung hòa yếu tố khác nhau, bao gồm mức độ nén, lƣợng thông tin bị sử dụng phƣơng pháp nén liệu có thông tin nguồn lực tính toán cần thiết để nén giải nén liệu Thuật ngữ tƣơng đƣơng thông điệp, tin hay dãy tin đƣợc sử dụng chung cho đối tƣợng cần nén Nhiệm vụ nén liệu bao gồm hai thành phần: thuật toán mã hóa nhận tin ban đầu (mà ta gọi tin gốc) biểu diễn dƣới dạng "nén" (hy vọng với bit hơn), thuật toán giải mã đƣợc dùng để tái tạo lại tin ban đầu xấp xỉ tin ban đầu từ tin đƣợc nén Hai thành phần thƣờng đƣợc xây dựng gắn kết với Nén không thông tin nén có thông tin: Nén không thông tin thƣờng đƣợc sử dụng cho văn nén có thông tin thƣờng đƣợc sử dụng để nén tệp âm hình ảnh việc số bit thông tin độ phân giải thƣờng phát đƣợc chấp nhận đƣợc Tuy nhiên nén có thông tin nghĩa bị pixel cách ngẫu nhiên, thay vào có nghĩa mát đại lƣợng nhƣ thành phần tần số, nhiễu Chẳng hạn, ngƣời ta nghĩ nén văn có thông tin chấp nhận đƣợc họ nghĩ tới việc chuyển đổi ký tự Thay ta nghĩ tới hệ thống câu chuẩn, từ thay từ đồng nghĩa, nhờ nén tập tin tốt Về mặt kỹ thuật nén liệu gây thay đổi văn bản, nhƣng ý nghĩa tính rõ ràng văn đƣợc giữ nguyên chí cải thiện Khi xét thuật toán nén, điều quan trọng cần phân biệt hai thành phần: mô hình mã hóa Mô hình cho biết phân phối xác suất dãy tin cách nhận biết phát cấu trúc đầu vào Bộ mã hóa tạo dãy mã dựa xác suất tạo mô hình Để có hiệu nén, mã hóa thƣờng tạo dãy mã dài cho dãy tin có xác suất thấp gán dãy mã ngắn cho dãy tin có xác suất cao Ví dụ, bảng chữ ngôn ngữ tự nhiên thƣờng có vài chữ xuất văn viết với xác suất cao chữ khác, điều rõ ràng với cặp chữ Khi mã hóa gán từ mã có độ dài ngắn cho chữ xuất với xác suất cao ngƣợc lại Thông thƣờng tách biệt mô hình thành phần mã hóa luôn đƣợc xác định cách rõ ràng Lý thuyết thông tin lĩnh vực gắn mô hình với thành phần mã hóa Nó cho lý thuyết tốt liên quan xác suất độ dài từ mã Lý thuyết phù hợp với thực tế gần nhƣ hoàn hảo, đạt đƣợc độ dài mã gần nhƣ giống hệt với lý thuyết dự đoán Trong trƣờng hợp mã hóa có thông tin, ta lấy tiêu chuẩn đánh giá thời gian nén, thời gian để tái tạo lại dãy tin ban đầu (giải mã) kích thƣớc tệp nén Trong trƣờng hợp nén có thông tin, tiêu chuẩn thƣờng phức tạp hơn, chẳng hạn xấp xỉ dãy tin ban đầu nhƣ đƣợc gọi chấp nhận đƣợc Thông thƣờng cần dung hòa kích thƣớc nén, thời gian chạy, chất lƣợng dãy tin đƣợc giải mã Nội dung luận văn bao gồm chƣơng: Chƣơng 1: CƠ SỞ LÝ THUYẾT Trình bày khái niệm bản, lý thuyết chung mã hóa, nén liệu, định lý nén liệu, lý thuyết xử lý ảnh số Chƣơng 2: MỘT SỐ THUẬT TOÁN MÃ HÓA VÀ NÉN DỮ LIỆU Chƣơng trình bày ý tƣởng thuật toán mã hóa nén liệu nhƣ: RLE, HUFFMAN, JPEG, H.264/ACV, AIC Chƣơng 3: XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM Chƣơng trình bày kết cài đặt chạy thử nghiệm thuật toán mã hóa nén liệu nhƣ: RLE, HUFFMAN, JPEG Các kết so sánh với phần mềm có Chƣơng CƠ SỞ LÝ THUYẾT 1.1 Mã hóa thông tin Để tìm hiểu mã hóa thông tin, ta khái niệm sau: Bảng chữ cái: Bảng chữ tập hữu hạn phần tử, khác rỗng Mỗi phần tử bảng chữ gọi kí tự Bản tin: Cho chữ A = {a1,a2, an}, dãy X gồm kí tự A gọi tin Bản tin theo nghĩa rộng ảnh, băng ghi âm v.v…, nhiên thực số hóa để lƣu trữ hay truyền phải sử dụng bảng chữ Mã hoá: Giả sử có bảng chữ A = {a1,a2, ,an}, X tin bảng chữ A Ta gọi tin Y bảng chữ B = {b1,b2,…,bm} mã tin X tồn ánh xạ f cho Y = f(X) Khi f đƣợc gọi phép mã hóa Cách ghi mã: Có nhiều cách ghi mã, giả sử mã văn ngƣời ta hay sử dụng nhóm ký hiệu đƣợc phân cách dấu Space, cách mã nhƣ gọi mã phƣơng pháp từ Mã sử dụng hai ký tự "0" "1" để biểu diễn gọi mã nhị phân Loại mã dùng ký hiệu nhóm ký tự có độ dài định cho từ mã mã có độ dài cố định Loại mã ta giải mã đƣợc Nhƣng lƣu trữ nhƣ tốn kém, nên ngƣời ta thƣờng dựa vào tần suất xuất chữ để mã, với tần suất nhiều mã ngắn Mã nhƣ gọi mã có độ dài thay đổi Tuy nhiên độ dài từ mã thay đổi với ánh xạ mã giải mã đƣợc Xét ví dụ ánh xạ mã: a  100; b  1000; c0 Mã "ac" "b" dãy bit "1000" Nhƣ nhận đƣợc chuỗi bit 1000 biết đƣợc văn ban đầu "b" "ac" Cho nên mã hoá sử dụng mã có độ dài thay đổi cần có tính chất giải mã đƣợc, tính phân tách Tính phân tách đƣợc đƣa dƣới đảm bảo cho tính giải đƣợc mã Xét A B hai đoạn mã tạo từ bít 0/1 Ta nói A đầu B nhƣ có đoạn C cho B = A + C Một tập hợp M tạo đƣợc gọi phân tách đoạn đầu đoạn khác Nhƣ vậy, mã có độ dài từ mã cố định mã phân tách 1.2 Nén liệu Dữ liệu: Giả sử có bảng chữ A = {x1,x2, xn}, X tin bảng chữ A Ta gọi tin Y bảng chữ nhị phân B = {0,1} mã tin X, tồn ánh xạ f cho Y = f(X) Khi Y đƣợc gọi liệu tin X Nén liệu: Ta kí hiệu L(Y) số bít tin Y Giả sử Lf (Y) dung tích liệu tin X với phép mã hóa f, việc tìm phép mã hóa g cho Lg(Y)  Lf(Y) gọi nén liệu Từ khái niệm, định nghĩa nêu dễ dàng nhận chất việc nén liệu tìm phép mã hóa tin cho dung tích liệu nhỏ tốt Một file liệu nén đến tuỳ ý cần đảm bảo tồn liệu Một file liệu nén đến giới hạn định, giới hạn gọi Entropy Entropy phụ thuộc vào liệu, không phụ thuộc vào thuật toán 1.3 Entropy * Độ đo Logarit thông tin: Giả sử có hai biến ngẫu nhiên X Y; X nhận giá trị tập {x1,x2, ,xn} Y nhận giá trị tập {y1,y2,…,ym} Chúng ta cần xác định mặt định lƣợng thông tin kiện X = xi biết Y = yj Rõ ràng X Y hai biến độc lập việc biết trƣớc Y = yj không cho lƣợng thông tin việc xảy X = xi Mặt khác X Y phụ thuộc đầy đủ Y = yj xác định đƣợc X = xi nội dung thông tin (Information Content) đơn giản đƣợc cho X = xi Khi thông tin có đƣợc việc xảy kiện X = xi nhờ xảy kiện Y = yj đƣợc tính bằng: I ( xi , y j )  log p ( xi / y j ) p ( xi ) 1.1 kí hiệu: p(xi|yj) = p(X=xi|Y=yj) p(X=xi) = p(xi) Trong đó: I(xi,yj) số đo thông tin liên quan xi yj Đơn vị I(xi,yj) đƣợc xác định số Logarit ngƣời ta thƣờng lấy e, số ta gọi đơn vị I bit, e ta gọi đơn vị tự nhiên Công thức chuyển đổi đơn vị : lna = ln2log2a = 0,69315log2a 1.2 Trƣờng hợp X Y hai biến độc lập p(xi|yj) = p(xi) từ công thức 1.1 suy I(xi,yj) = Khi kiện Y = yj xảy ra, mà chắn chắn kiện X = xi xảy thì: p(xi|yj) = Khi công thức 1.1 có dạng: I(xi,yj) = log 1/p(xi) hay I(xi,yj) = - log p(xi) 1.3 Công thức 1.3 thông tin kiện X = xi, viết công thức 1.3 dạng: I(xi) = - log p(xi) 1.4 Cần ý từ 1.4 suy kiện có xác suất cao lƣợng thông tin mang lại kiện có xác suất thấp Rõ ràng với kiện x mà p(x) = I(x) = 0, nghĩa việc xảy kiện x không mang lại lƣợng thông tin Xét ví dụ sau: Giả sử có nguồn rời rạc phát bit 0, với xác suất 1/2 t giây thông tin đƣa từ nguồn là: I(xi) = - log2 1/2 = bit, xi = xi = Hoặc ví dụ khác: Giả sử xét mô hình thống kê độc lập Xét dãy k bít nguồn phát đi, rõ ràng có tất M = 2k dãy k bit khác dãy có xác suất xuất 1/2k Khi đó: I(xi) = - log2 1/2k = k bit khoảng thời gian k.t Nhƣ thấy độ đo Logarit thông tin có tính chất cộng ta coi đầu nguồn dãy 10 Bây ý tới đẳng thức sau: p(xi|yj)/p(xi) = p(xi|yj)p(yj)/p(xi)p(yj) = p(xi,yj)/p(xi)p(yj) = p(yj |xi)/p(yj) Từ suy ra: I(xi,yj) = I(yj ,xi) 1.5 Nhƣ thông tin kiện X = xi xảy kiện Y = yj xảy thông tin kiện Y = yj kiện X = xi xảy Ngoài từ định nghĩa thông tin phụ thuộc lẫn (Mutual Information) thông tin độc lập (Self Information) đƣợc dùng để xác định thông tin có điều kiện (Condition self - Information) I(xi|yj) = log [1/ p(xi|yj)] = -log p(xi|yj) 1.6 Kết hợp đẳng thức 1.1 1.4 ta có: I(xi,yj) = I(xi)- I(xi|yj) 1.7 Từ 1.7 suy thông tin phụ thuộc lẫn cặp kiện dƣơng, âm Trung bình thông tin phụ thuộc: Từ định nghĩa thông tin phụ thuộc lẫn cặp kiện (xi, yj) hai biến ngẫu nhiên X Y, ta nhận đƣợc giá trị trung bình thông tin phụ thuộc hai biến ngẫu nhiên X, Y có dạng: I ( X ,Y )  Hay : n m   P( x , y i 1 j 1 n m i 1 j 1 i j ) I ( xi , y j ) I ( X , Y )    P ( xi , y j ) P ( xi , y j ) p ( xi ) p ( y j ) 1.8 1.9 Ta thấy I(X,Y) = X Y độc lập, đặc trƣng quan trọng I(X,Y) I(X,Y)  Tƣơng tự nhƣ định nghĩa thông tin trung bình: n n i 1 i 1 H ( X )   P( xi ) I ( xi )   P( xi ) log P( xi ) 1.10 Khi X bảng chữ bao gồm kí tự sinh nguồn, H(X) trung bình thông tin kí tự data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read ... thuyết xử lý ảnh số Chƣơng 2: MỘT SỐ THUẬT TOÁN MÃ HÓA VÀ NÉN DỮ LIỆU Chƣơng trình bày ý tƣởng thuật toán mã hóa nén liệu nhƣ: RLE, HUFFMAN, JPEG, H.264/ACV, AIC Chƣơng 3: XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM... hình ảnh 1.5.1 Giới thiệu ảnh số xử lý ảnh số 1.5.2 Mục đích cần thiết nén ảnh 1.5.3 Phân loại phƣơng pháp nén ảnh Chƣơng 2: MỘT SỐ THUẬT TOÁN MÃ HÓA VÀ NÉN DỮ LIỆU... 2.4 Thuật toán nén ảnh JPEG 2.3.1 Ý tƣởng thuật toán 2.3.2 Thuật toán nén ảnh JPEG 2.4 Thuật toán nén ảnh nâng cao AIC 2.4.1 Chuẩn H.264/AVC 2.4.2 Thuật

Ngày đăng: 21/04/2017, 14:03

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan