Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 77 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
77
Dung lượng
1,14 MB
Nội dung
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÊ VĂN NINH NÉN DỮ LIỆU THEO KỸ THUẬT MOVE – TO - FRONT Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 60 48 01 LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH Thái Nguyên - 2011 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Lêi c¶m ¬n! Em xin chân thành cảm ơn các thầy giáo trong Viện công nghệ thông tin, Viện khoa học và công nghệ Việt Nam; các thầy giáo, cô giáo trường Đại học CNTT & TT - Đại học Thái Nguyên đã tạo điều kiện, giúp đỡ em hoàn thành luận văn này. Đặc biệt, em xin chân thành cảm ơn PGS.TSKH Nguyễn Xuân Huy, thầy giáo đã giảng dạy và trực tiếp hướng dẫn trong suốt quá trình nghiên cứu và hoàn thành luận văn. Dù đã có nhiều cố gắng, nhưng chắc chắn luận văn sẽ không tránh khỏi những thiếu sót và hạn chế. Vì vậy, rất mong được sự góp ý, chỉ dẫn của các thầy, cô giáo, bạn bè và đồng nghiệp. Trân trọng cảm ơn! Thái Nguyên, tháng 11 năm 2011 Lê Văn Ninh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn DANH MỤC TỪ VIẾT TẮT Move – To – Front (Di chuyển lên phía trước) MTF Borrows – Wheeler Tranform (Chuyển đổi BW) BWT Run length (Mã hóa Run Length) RUL Inversion Frequencies (Sự đả o ngượ c tầ n số ) IF Distance Coding (Mã hóa khoảng cách) DC Weighted Frequency Count (Đếm trọng số tần số) WFC Increased Frequency Count (Đếm gia tăng tần số) IFC Local to Global Transform (Chuyển đổi từ cục bộ đến tổ ng thể ) LGT Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn DANH MỤC HÌNH VẼ PAGE Hình 1.1: Máy nén và máy giải nén. Hình 1.2: Bộ mã hóa và bộ giải mã Hình 1.3: Nhữ ng thuật toán nén không hao tổn Hình 1.4: Các thuật toán nén tổn hao Hình 1.5: Dữ liệu về nén Hình 1.6: Dữ liệu về giải nén Hình 1.7: Dữ liệu ký hiệ u về nén Hình 1.8: Mã và dữ liệu nguồn Hnh 1.9: Mã tiền tố Hnh 1.10: Đc tnh tiền tố và các cây nh phân Hnh 1.11: Không phả i mã tiề n tố nhưng có thể giả i mã duy nhấ t Hình 1.12: Các điểm ảnh với các màu giống nhau Hình 1.13: Một biểu đồ trong nhữ ng khoả ng xá c đị nh Hình 1.14: Một số dữ liệu ma trận được tập hợp dọc theo một dòng Hình 1.15: Một dãy các frame hoạt hình Hình 2.1(a) Mảng A chứa tất cả các phép quay của đầu vào mississippi Hình 2.1(b) A s thu được bằng cách sắp xếp A. Cột cuối của A s (k hiệu L) là đầ u ra củ a BWT Hình 2.2 Mảng R được sử dụng để sắp xếp file mẫu mississippi Hình 2.3 Mảng A s với mississippi. F và L là các cột đầu và cuối tương ứng Hình 2.4 Sử dụng thứ tự k tự để thực hiện chuyển đổi ngược Hình 2.5 Mảng (A s ) mc nhiên được khôi phục để giải mã xâu pssmipissii Hình 2.6 Các mảng phụ trợ V và W có thể được sử dụng để giải mã xâu mẫu Hình 2.7 Một số văn bản được chuyển đổi sinh ra từ “Hamlet” của Shakespeare. Hình 2.8: Mã hóa Huffman Hình 2.9: Mã hóa Huffman ngược Hình 2.10: Xác suất và khoảng con khởi tạo của biểu tượng Hình 2.11: Mã hóa số học Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn MỤC LỤC PAGE Lời cảm ơn! Danh mục các ký hiệu, viết tắt Danh mục các hình vẽ Mục lục MỞ ĐẦU 3 Chương I. TỔNG QUAN VỀ NÉN DỮ LIỆU 5 1.1. Giới thiệu 5 1.1.1. Một số vấn đề về Nén dữ liệu 6 1.1.2 Nén không tổn hao và nén tổn hao 9 1.1.2.1 Nén không tổn hao 9 1.1.2.2 Nén tổn hao 9 1.1.3 Đơn v đo đc tnh nén 11 1.2. Mã hóa dữ liệu ký hiệu 13 1.2.1. Thông tin, dữ liệu và các mã 14 1.2.2 Dữ liệu k hiệu 17 1.2.3 Mã chiều dài thay đổi 19 1.2.4 Cơ bả n về lý thuyế t thông tin 26 1.2.5 Sự dư thừa 27 Chương II. KỸ THUẬT NÉN DỮ LIỆU BURROWS WHEELER 31 2.1 Chuyể n đổ i Burrows-Wheeler (BWT) 31 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 2.1.1 Cách làm việc của chuyể n đổ i Burrows-Wheeler 33 2.1.1.1 Chuyển đổi Burrows – Wheeler thuận 33 2.1.1.2 Chuyển đổi Burrows – Wheeler nghch 35 2.1.2 Cc mã với chuyển đi Burrows-Wheeler 41 2.1.2.1 Mã hóa Entropy 42 2.1.2.2 Mã hóa Huffman 42 2.1.2.3 Mã hóa số học 43 2.1.2.4 Mã hóa khoảng cách 46 2.1.2.5 Mã hóa run length 47 2.1.2.6 Các phương pháp đếm tần số 48 2.2 Mã hóa Move – To – Front 49 2.2.1 Mã hóa MTF với các biểu tượng là tập hợp các số nguyên 52 2.2.2 Hiệu suất mã hóa MTF 54 Chương III. GIẢI THUẬT MOVE – TO – FRONT VÀ DEMO 60 3.1. Thuậ t toá n né n dữ liệ u Move – To - Front 60 3.1.1. Thuật toán mã hóa 61 3.1.2. Thuật toán giải mã 62 3.2. Thực hiện giải thuật bằng ngôn ngữ C 62 KẾT LUẬN 72 TÀI LIỆU THAM KHẢO 73 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 1 MỞ ĐẦU 1. Lý do chọn đề tài Trong các lĩnh vực của công nghệ thông tin và viễn thông hiện nay, việc truyền tải tin tức là công việc xảy ra thường xuyên. Tuy nhiên, thông tin được truyền tải đi thường rất lớn, điều này gây khó khăn cho công việc truyền tải như: gây tốn kém tài nguyên mạng, tiêu phí khả năng của hệ thống, Để giải quyết vấn đề đó, các thuật toán nén dữ liệu đã được ra đời. Các kỹ thuật nén được nhúng ngày càng nhiều trong phần mềm và đã trở thành yêu cầu chung cho hầu hết phần mềm ứng dụng như một lĩnh vực nghiên cứu quan trọng và tích cực trong khoa học máy tính. Trong kỹ thuật truyền tin nối tiếp, do các bit dữ liệu được truyền đi nối tiếp, lại bị giới hạn về dải thông của kênh truyền và giới hạn về các chuẩn ghép nối nên tốc độ truyền tin tương đối chậm. Nén dữ liệu trước khi truyền đi là một trong các phương pháp nhằm tăng tốc độ truyền dữ liệu. Nguyên tắc của nén dữ liệu là quá trình mã hóa thông tin dùng ít bit hơn so với thông tin chưa được mã hóa bằng cách dùng một hoặc kết hợp các phương pháp nào đó. Dựa theo nguyên tắc này giúp tránh các hiện tượng kênh truyền bị quá tải và việc truyền tin trở nên kinh tế hơn. Mặc dù các chương trình nén dữ liệu thường sử dụng kết hợp nhiều thuật toán có độ phức tạp khác nhau nhằm đạt được hiệu quả cao nhất cho dữ liệu được nén để đáp ứng yêu cầu đặt ra. Nhưng nhìn chung không thể có phương pháp nén tổng quát nào cho kết quả tốt đối với tất cả các loại tập tin. Kỹ thuật nén tập tin thường được áp dụng cho các tập tin văn bản (Trong đó có một số kí tự nào đó có xác suất xuất hiện nhiều hơn các kí tự khác), các tập tin ảnh bitmap (Mà có thể có những mảng đồng nhất), các tập tin dùng để biểu diễn âm thanh dưới dạng số hoá và các tín hiệu tương tự khác (các tín hiệu này có thể có các mẫu được lặp lại nhiều lần). Ðối với các tập tin nhị phân như tập tin chương trình thì sau khi nén cũng không tiết kiệm được Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 2 nhiều. Ngoài ra, trong một số trường hợp để nâng cao hệ số nén người ta có thể bỏ bớt một số thông tin của tập tin (Ví dụ như kỹ thật nén ảnh JPEG). Nén dữ liệu theo kỹ thuật Move-To-Front (MTF) là một trong những kỹ thuật nén dữ liệu được thiết kế để cải tiến hiệu quả của kỹ thuật né n mã hóa entropy. Nó được sử dụng sau kỹ thuật chuyển đổi Burrows-Wheeler để xếp hạ ng các biểu tượng theo tần số tương quan của chúng. Mục đích là để đạt được một hiệu suất nén tốt hơn cho mã hóa entropy. Xuất phát từ ý tưởng đó, tôi đã lựa chọn đề tài ―Nén dữ liệu theo kỹ thuật Move – To – Front‖. 2. Đối tượng nghiên cứu: - Kỹ thuật nén dữ liệu Move-To-Front 3. Phạm vi nghiên cứu: - Tìm hiểu tổng quan về nén dữ liệu - Nén dữ liệu Burrows-Wheeler - Nén dữ liệu theo kỹ thuật Move – to – front 4. Mục tiêu nghiên cứu Luận văn tập trung nghiên cứu, đánh giá về nén dữ liệu theo kỹ thuật Move-To-Front. Vận dụng nén dữ liệu trong một số lĩnh vực đặc thù. 5. Ý nghĩa khoa học của đề tài - Giúp tìm hiểu, đánh giá khái quát về nén dữ liệu theo kỹ thuật MTF. - Vận dụng được phương pháp nén dữ liệu theo kỹ thuật MTF trong một số lĩnh vực đặc thù. 6. Phương php nghiên cứu Sử dụng các phương pháp nghiên cứu chính sau: - Phương pháp nghiên cứu lý thuyết - Phương pháp thực nghiệm - Phương pháp thống kê - Phương pháp trao đổi khoa học, lấy ý kiến chuyên gia. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 3 Chương I. TỔNG QUAN VỀ NÉN DỮ LIỆU 1.1. Giới tiệu Nén dữ liệu trong ngữ cảnh khoa học máy tính là khoa học để biểu diễn thông tin dướ i dạ ng thu gọn . Nói cách khác nén dữ liệu là việc thực hiện thu gọn kích thước các tập tin hoặc làm cho thông tin lưu trữ chiếm không gian lưu trữ ít nhất. Có nhiều cách để thực hiện điều này tùy vào từng đối tượng cụ thể. Nén dữ liệu đã trở thành yêu cầu chung cho hầu hết phần mềm ứng dụng như một lĩnh vực nghiên cứu quan trọng và tích cực trong khoa học máy tính. Nếu không có các kỹ thuật nén, Internet sẽ không bao giờ phát triển, TV kỹ thuật số , các kỹ thuật tru yền thông di động hoặ c truyề n thông video đã được phát triển trên thực tế. Các lĩnh vực ứng dụng có liên quan và đượ c thúc đẩy bởi nén dữ liệu gồ m có : Các hệ thống truyền thông cá nhân: Fax, thư thoại (voice mail) và điện thoại. Các hệ thống máy tính: Cấu trúc bộ nhớ, đĩa và băng. Tính toán di động. Các hệ thống máy tính phân tán. Mạng máy tính, đặc biệt là Internet. Sự phát triển đa phương tiện, hình ảnh, xử lý tín hiệu. Lưu trữ hình ảnh và hội nghị truyền hình. Ti vi kỹ thuật số và truyền hình vệ tinh. Nhiều vấn đề trên thực tế đã thúc đẩy nhiều nghiên cứu khác nhau về nén dữ liệu. Tương tự , nghiên cứu về nén dữ liệu cũng đã dựa trên hay được Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 4 kích thích bởi các lĩ nh vự c mới khác. Một phần do phạm vi ứng dụng rộng rãi của nó, nén dữ liệu bao trùm nhiều ngành khoa học và có thể được tìm thấy trong nhiều lĩnh vực khác nhau như: Lý thuyết thông tin; Lý thuyết mã hóa; Mạng máy tính và viễn thông; Xử lý tín hiệu kỹ thuật số; Xử lý ảnh; Đa phương tiện; Bảo mật máy tính Trong nén dữ liệu, từ dữ liệu có nghĩa là thông tin ở dạng kỹ thuật số mà nhữ ng chương trình máy tính hoạ t độ ng và nén, có nghĩa là quá trình loại bỏ dư thừa trong dữ liệu. Cụm từ ―nén dữ liệu‖, có nghĩa là đưa ra các kỹ thuật hay cụ thể hơn là thiết kế nhữ ng thuật toán hiệu quả nhằm để: Biểu diễn dữ liệu theo dạ ng mà chứ a ít dư thừa. Loại bỏ dư thừa trong dữ liệu. Cài đặt thuật toán nén và giải nén. 1.1.1. Một số vấn đề về Nén dữ liệu Một vấn đề nén liên quan đến việc tìm một thuật toán hiệu quả để loại bỏ dư thừa khác nhau từ một kiểu dữ liệu nhất định. Ví dụ cho một xâu s, câu hỏi là dãy các biểu tượng có thể thay thế mà chiếm t không gian lưu trữ là dãy nào? Giải pháp cho vấn đề nén là thuật toán nén nhằ m đưa ra dãy các biểu tượng chứa í t số lượng bit hơn , cộng với các thuật toán giải nén để phục hồi xâu gốc. Vậy số lượng bit í t hơn là bao nhiêu ? Điều đó phụ thuộc vào nhữ ng thuật toán nhưng nó cũ ng phụ thuộc vào sự dư thừa có thể chiế t ra từ dữ liệu gốc là bao nhiêu. Dữ liệu khác nhau có thể yêu cầu nhữ ng kỹ thuật khác nhau để xác định dư thừa và loại bỏ dư thừa trong dữ liệu. Không có giả i phá p nà o phù hợp cho tất cả vấn đề nén dữ liệu . Theo các nghiên cứu về nén dữ liệu , ta chủ yếu phải phân tích nhữ ng đặc tính của dữ liệu đã đượ c nén và hy vọng đưa ra một số mô hì nh để đạ t đượ c sự biểu [...]... dạng của mô hình dữ liệu và ́ nhưng kỹ thuật biểu diễn, đo la điêm quan trong của kỹ thuật nén ̃ ́ ̀ ̉ ̣ 1.1.1.1 Vấn đề về nén Nén dữ liệu có thể được xem như một phương tiện truyền thông biểu diễn hiệu quả nguồn dữ liệu kỹ thuật số như văn bản , hình ảnh, âm thanh hay bất kỳ sự kết hợp của các kiểu dữ liệu đó như video Mục đích của nén dữ liệu là biểu diễn dư liêu nguồn theo dạng kỹ thuật số với càng... bản chất của dữ liệu nén Từ nén ngụ ý là ngữ cảnh của cả nén và giải nén Trong luận văn này, đôi khi không đề cập nhưng thuật to n giải nén ̃ khi quá trình giải nén là hiển nhiên hay có thể dễ dàng được suy ra từ quá trình nén Trong nhiều trường hợp thực tiễn, hiệu quả của thuật to n giải nén đươc quan tâm hơn thuật to n nén Ví dụ như dữ liệu phim ảnh , hình ảnh, và ̣ âm thanh thường được nén một lần... nhưng vấn đề nén , ta phải xem xét khía cạnh hiệu quả ̀ ̃ của các thuật to n cũng như hiệu quả nén Bằng trực quan, tính chất của thuật to n nén sẽ phụ thuộc vào dữ liệu và cấu trúc bên trong của nó Việc dư thừa càng nhiều của dữ liệu nguồn, càng làm cho một thuật to n nén có thể hiệu quả hơn 1.1.1.2 Vấn đề về giải nén Bất kỳ thuật to n nén sẽ không làm việc trừ khi một phương tiện giải nén được cung... nhưng vấn đề cụ thể , đôi khi ta xem xét vấn đề nén và ̃ giải nén như hai quá trình đồng bộ và không đồng bộ riêng biệt Hình 1.1 Cho thấy một mô hình dựa trên mối quan hệ giữa các thuật to n nén và giải nén Hình 1.1: Máy nén và máy giải nén Một thuật to n nén thường được gọi là máy nén và thuật to n giải nén được gọi là máy giải nén Máy nén và máy giải nén có thể được đăt tại ̣ nguôn và đí ch của một... của dữ liệu ký hiệu là 001 000 000 000 000 000 000 000 010 (không có các dấu cách) Đây là dữ liệu nguồn theo biểu diễn nhị phân , là đầu vào của thuật to n nén Hy vong kích thước ̣ của file dữ liệu nguồn nhị phân này được giảm bởi thuật to n nén Điều này có thể được thấy từ Hình 1.8 Hình 1.8: Mã và dữ liệu nguồn 1.2.3 Mã chiều dài thay đôi ̉ Các mã chiều dài thay đổi rất được mong đợi cho nén d ữ liệu. .. quả một thuật to n nén dữ liệu có thể tiết kiệm được không gian lưu trữ là bao nhiêu? Ví dụ, đo tỷ lệ phần trăm của hiệu giữa kích thước của file đầu vào trước khi nén và kích thước của file đầu ra sau khi nén sẽ cung cấp một dấu hiệu tốt về hiệu quả nén Nhìn chung rất khó để đo hiệu suất của một thuật to n nén vì tính chất nén của nó phụ thuộc rất nhiều vào dữ liệu chứa dư thừa mà thuật to n tìm... lý do thú vị để nghiên cứu nhưng thuật to n nén ̃ Nhưng thuật to n nén có thể được phân loại theo hai lớp đại cương như sau : ̃ Nén tổn hao và không tổn hao Đặc tính nén có thể được đo bằng nhiều cách khác nhau 1.2 Mã hóa dữ liệu ký hiệu Nén dữ liệu là khoa học vê biểu diễ n thông tin theo một hình thức thu ̀ gọn Tuy nhiên , thông tin là gì ? Thông tin được biểu diễn theo một dạng ―chuẩn‖ như thế nào,... gọi là nén không tổn hao và ̃ ̣ nén tổn hao 1.1.2.1 Nén không tổn hao Một phương pháp nén là không tổn hao nếu và chỉ nếu nó có thể khôi phục chính xác dữ liệu gốc từ phiên bản đã được nén Đó là không mất bất kỳ thông tin nao trong suốt quá trình nén ̀ Ví dụ, trong Hình 1.3, xâu đầu vào AABBBA được khôi phục lại sau khi thực hiện thuật to n nén va đươc theo sau bơi thuật to n giải nén ̀ ̣ ̉ Nén không... thuật to n giải nén ̀ ̣ ̉ Nén không tổn hao được gọi là nén thuận nghịch vì dữ liệu gốc có thể được phục hồi hoàn to n bơi qua trì nh giải nén ̉ ́ Hình 1.3: Nhưng thuật to n nén không hao tổn ̃ Nhưng kỹ thuật nén không tổn hao được sử dụng khi dữ liệu gốc của ̃ nguồn là rất quan trọng mà ta không thể để mất bất kỳ chi tiết nào Các ví dụ về dữ liệu nguồn như các hình ảnh y tê , văn bản và các hình... to n tìm kiếm Tính chất nén cũng phụ thuộc vào việc ta cho phép dữ liệu được khôi phục giống với dữ liệu nguồn Do đó ta sẽ thảo luận đơn vị đo theo hai trường hợp cu thê là nén không tổn hao và nén tổn hao ̣ ̉ Nén không tổn hao: Đối với các thuật to n nén không tổn hao , ta đo hiệu quả nén băng số ̀ lượng hao hụt của file nguồn so với kích thước của phiên bản đã được nén Tỉ lệ nén: Đơn giản là tỉ lệ . tài Nén dữ liệu theo kỹ thuật Move – To – Front . 2. Đối tượng nghiên cứu: - Kỹ thuật nén dữ liệu Move- To- Front 3. Phạm vi nghiên cứu: - Tìm hiểu tổng quan về nén dữ liệu - Nén dữ liệu. Burrows-Wheeler - Nén dữ liệu theo kỹ thuật Move – to – front 4. Mục tiêu nghiên cứu Luận văn tập trung nghiên cứu, đánh giá về nén dữ liệu theo kỹ thuật Move- To- Front. Vận dụng nén dữ liệu trong. tập tin (Ví dụ như kỹ thật nén ảnh JPEG). Nén dữ liệu theo kỹ thuật Move- To- Front (MTF) là một trong những kỹ thuật nén dữ liệu được thiết kế để cải tiến hiệu quả của kỹ thuật né n mã hóa