BÁO CÁO TIỂU LUẬN NÉN DỮ LIỆU

33 1.7K 9
BÁO CÁO TIỂU LUẬN NÉN DỮ LIỆU

Đ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

MỤC LỤCLỜI MỞ ĐẦU3CHƯƠNG 1: TỔNG QUAN VỀ NÉN DỮ LIỆU41.1.Một số khái niệm41.2.Mục đích của nén dữ liệu51.3.Các loại dư thừa dữ liệu61.4.Một số vấn đề gặp phải khi nén dữ liệu71.5.Quá trình nén và giải nén7CHƯƠNG 2: CÁC PHƯƠNG PHÁP NÉN DỮ LIỆU92.1.Phân loại các phương pháp nén92.1.1.Cách thứ nhất dựa vào nguyên lý nén92.1.2.Cách thứ hai dựa vào cách thức thực hiện nén112.1.3.Cách thứ ba dựa vào lý thuyết mã hóa112.2.Một số phương pháp nén112.2.1.Phương pháp mã hóa Shannon – Fano112.2.2.Phương pháp mã hóa Huffman122.2.3.Phương pháp mã hóa RLE162.2.4.Phương pháp mã hóa LZ78182.2.5.Phương pháp mã hóa LZW19CHƯƠNG 3: CHƯƠNG TRÌNH ỨNG DỤNG233.1. Giao diện chương trình233.2. Một số thủ tục chính trong chương trình233.2.1. Thủ tục xây dựng cây Huffman233.2.2. Thủ tục nén dữ liệu253.2.3. Thủ tục giải nén dữ liệu28TÀI LIỆU THAM KHẢO34 LỜI MỞ ĐẦUBảo mật thông tin, nén dữ liệu là công việc cần thiết trong ngành CNTT. Từ thời xa xưa, con người đã biết gìn giữ thông tin trong quân sự, trong chiến tranh nhằm làm cho thông tin được an toàn, không lọt vào tay đối phương. Muốn vậy, con người có nhiều cách để làm cho thông tin truyền đi được gọn nhẹ và an toàn khi lưu thông. Để thông tin đến tay người nhận một cách bí mật, gọn gàng nhất thì họ phải nén thông tin lại hay dùng các ký hiệu đặc biệt có quy ước trước.Ngày nay, với sự tiến bộ của khoa học kỹ thuật, CNTT được nâng lên một tầm cao mới. Mọi ngành, nghề đều phải ứng dụng CNTT một cách triệt để để phát triển một cách tốt nhất. Ngay như cả cụm từ “Chính phủ điện tử” mà ta thường nghe cho ta thấy tầm quan trọng của việc đưa CNTT vào cuộc sống. Không nằm ngoài sự phát triển có tính quy luật chung của xã hội, CNTT đã và đang làm hết sức mình để phát triển ngày một tốt hơn, nhanh hơn, nhẹ hơn, gọn hơn… CNTT và viễn thông có mối liên hệ tương đối chặt chẽ với nhau. Một trong những tiêu chí giúp ngành CNTT phát triển là sử dụng công nghệ bảo mật, nén dữ liệu, thông tin trong lưu trữ và truyền thông.

ĐẠI HỌC QUỐC GIA HÀ NỘI ĐẠI HỌC CÔNG NGHỆ BÁO CÁO TIỂU LUẬN ĐỀ TÀI 2.19 NÉN DỮ LIỆU GVHD: PGS. TS. Trịnh Nhật Tiến HV: Đỗ Thị Chi Hà Nội 08/12/2013  MỤC LỤC    !! !" #$%&'()*+, ')*/012- #$%&'-3-+4567/ #$%&'.686-3-+4567/9 :;<=  LỜI MỞ ĐẦU Bảo mật thông tin, nén dữ liệu là công việc cần thiết trong ngành CNTT. Từ thời xa xưa, con người đã biết gìn giữ thông tin trong quân sự, trong chiến tranh nhằm làm cho thông tin được an toàn, không lọt vào tay đối phương. Muốn vậy, con người có nhiều cách để làm cho thông tin truyền đi được gọn nhẹ và an toàn khi lưu thông. Để thông tin đến tay người nhận một cách bí mật, gọn gàng nhất thì họ phải nén thông tin lại hay dùng các ký hiệu đặc biệt có quy ước trước. Ngày nay, với sự tiến bộ của khoa học kỹ thuật, CNTT được nâng lên một tầm cao mới. Mọi ngành, nghề đều phải ứng dụng CNTT một cách triệt để để phát triển một cách tốt nhất. Ngay như cả cụm từ “Chính phủ điện tử” mà ta thường nghe cho ta thấy tầm quan trọng của việc đưa CNTT vào cuộc sống. Không nằm ngoài sự phát triển có tính quy luật chung của xã hội, CNTT đã và đang làm hết sức mình để phát triển ngày một tốt hơn, nhanh hơn, nhẹ hơn, gọn hơn… CNTT và viễn thông có mối liên hệ tương đối chặt chẽ với nhau. Một trong những tiêu chí giúp ngành CNTT phát triển là sử dụng công nghệ bảo mật, nén dữ liệu, thông tin trong lưu trữ và truyền thông.  CHƯƠNG 1: TỔNG QUAN VỀ NÉN DỮ LIỆU 1.1. Một số khái niệm • Nén dữ liệu (Data compression) Nén dữ liệu là quá trình làm giảm lượng thông tin “dư thừa” trong dữ liệu gốc, do vậy lượng thông tin thu được sau khi nén thường nhỏ hơn dữ liệu gốc rất nhiều. Hay ta có thể hiểu: Nén dữ liệu thực chất là một hình thức mã hóa dữ liệu để ghi lại dòng dữ liệu sao cho tốn ít bộ nhớ hơn mà lại cho phép chúng ta khôi phục lại dữ liệu ban đầu. Ngoài thuật ngữ “nén dữ liệu”, do bản chất của kỹ thuật này nó còn có một số tên gọi khác như: giảm độ dư thừa, mã hóa ảnh gốc. Từ hơn 2 thập kỷ nay, có rất nhiều kỹ thuật nén đã được công bố trên các tài liệu về nén và các phần mềm nén dữ liệu đã xuất hiện ngày càng nhiều trên thương trường. Tuy nhiên, chưa có phương pháp nén nào được coi là phương pháp vạn năng (Universal) vì nó phụ thuộc vào nhiều yếu tố và bản chất của dữ liệu gốc. Trong bài báo cáo này, chúng ta không thể hy vọng xem xét tất cả các phương pháp nén. Hơn thế nữa, các kỹ thuật nén dữ liệu chung đã được trình bày trong nhiều tài liệu chuyên ngành. Ở đây, chúng ta chỉ đề cập một số phương pháp nén dữ liệu phổ biến. • Tỷ lệ nén (Compression rate) Tỷ lệ nén là một trong các đặc trưng quan trọng nhất của mọi phương pháp nén. Tuy nhiên, cách đánh giá và các kết quả công bố trong các tài liệu cũng cần được quan tâm xem xét. Tỷ lệ nén = % Với r là tỷ số nén được định nghĩa như sau: r = kích thước dữ liệu gốc/ kích thước dữ liệu thu được sau khi nén. Như vậy, hiệu suất nén là: (1 – tỷ lệ nén) % Tuy nhiên, tỷ lệ nén cũng chỉ là một trong những đặc trưng cơ bản của phương pháp nén. Nhiều khi tỷ lệ nén cao cũng chưa thể nói rằng phương pháp đó là hiệu quả hơn các phương pháp khác vì còn có các chi phí khác như thời gian, không gian và  thậm chí cả độ phức tạp tính toán. Thí dụ như nén phục vụ trong truyền dữ liệu: vấn đề đặt ra là hiệu quả nén có tương hợp với đường truyền không. Cũng cần phân biệt dữ liệu với nén băng truyền. Mục đích chính của nén là giảm lượng thông tin dư thừa và dẫn tới giảm kích thước dữ liệu. Tuy vậy, đôi khi quá trình nén cũng làm giảm băng truyền tín hiệu số hóa thấp hơn so với truyền tín hiệu tương tự. 1.2. Mục đích của nén dữ liệu Một trong những chức năng chính của máy tính là xử lý dữ liệu và lưu trữ. Bên cạnh việc xử lý nhanh, người ta còn quan tâm đến việc lưu trữ được nhiều dữ liệu nhưng lại tiết kiệm được vùng nhớ và giảm chi phí lưu trữ. Về mặt lý thuyết thì các thiết bị lưu trữ là không có giới hạn nhưng ngày nay do nhu cầu xử lý nhiều tập tin, nhiều loại dữ liệu trong cùng một tệp do vậy mà kích thước tệp trở nên khá lớn. Ngày nay, những lợi ích Internet cung cấp rất đa dạng và phong phú trên các lĩnh vực khác nhau của xã hội như cung cấp, trao đổi thông tin giữa các máy tính, giữa máy tính với server hoặc giữa các server với nhau. Điều này dẫn đến phải làm như thế nào để giảm thiểu thời gian, chi phí sử dụng để trao đổi dữ liệu trên mạng. Nó cũng đồng nghĩa với việc bên cạnh nâng cao chất lượng của các thiết bị truyền dữ liệu trên mạng thì mặt khác chúng ta phải nghĩ ra một phương pháp nào để việc truyền dữ liệu có hiệu quả hơn. Tất cả những vấn đề trên nảy sinh ra khái niệm nén dữ liệu. Một trong những hình thức nén dữ liệu đầu tiên là hệ chữ Braille, là một hệ chữ dùng phương pháp mã hóa ký hiệu cho người mù có thể đọc và viết. Ngày nay, nén dữ liệu mang lại nhiều lợi ích khác nhau mà điển hình là: - Đối với việc tìm kiếm thì đôi khi tìm kiếm thông tin trên dữ liệu nén lại nhanh hơn so với việc tìm kiếm thông tin trên dữ liệu không nén vì do dữ liệu lưu trữ ít nên số phép toán để tìm kiếm giảm và lượng thông tin cao. - Nén dữ liệu đặc biệt hiệu quả với việc truyền dữ liệu trên mạng. Khi nén dữ liệu thì chi phí cho việc truyền dữ liệu trên mạng giảm, mặt khác tốc độ đường truyền sẽ tăng lên vì cùng một lượng thông tin đó thời gian truyền dữ liệu sẽ giảm. Do đó, với những ưu điểm trên thì việc nén dữ liệu là giải pháp hợp lý nhất nhằm mục đích giảm chi phí cho người sử dụng. > Tóm lại, những lợi ích mà nén dữ liệu mang lại xoay quanh vấn đề tiết kiệm tối đa chi phí cho việc mua các thiết bị lưu trữ dữ liệu và cho việc luân chuyển thông tin trên mạng. 1.3. Các loại dư thừa dữ liệu Thông thường, hầu hết các tập tin trong máy tính có rất nhiều thông tin dư thừa, việc thực hiện nén tập tin thực chất là mã hoá lại các tập tin để loại bỏ các thông tin dư thừa. Việc xác định bản chất các kiểu dư thừa dữ liệu rất có ích cho việc xây dựng các phương pháp nén dữ liệu khác nhau. Nói một cách khác, các phương pháp nén dữ liệu khác nhau là do sử dụng các kiểu dư thừa dữ liệu khác nhau. Có thể phân thành 4 kiểu dư thừa chính: • Sự phân bố ký tự Trong một dãy ký tự, có một số ký tự có tần suất xuất hiện nhiều hơn một số dãy khác. Do vậy, ta có thể mã hóa dữ liệu một cách cô đọng hơn. Các dãy ký tự có tần suất cao được thay bởi một từ mã nhị phân với số bit nhỏ; ngược lại các dãy có tần suất thấp được mã hóa bởi từ mã có nhiều bit hơn. Đây chính là bản chất của phương pháp mã hóa Hufman. • Sự lặp lại của các ký tự Trong một số tình huống như dữ liệu ảnh, ký hiệu bít “0” hay bít “1” được lặp đi lặp lại một số lần. Kỹ thuật nén dùng trong trường hợp này là thay dãy lặp đó bởi dãy mới gồm 2 thành phần: số lần lặp và ký hiệu dùng để mã. Phương pháp mã hóa kiểu này có tên là mã hóa loạt dài RLC (Run Length Coding). • Những mẫu sử dụng tần suất Có thể có dãy ký hiệu nào đó xuất hiện với tần suất tương đối cao. Do vậy, có thể mã hóa bởi ít bit hơn. Đây là cơ sở của phương pháp mã hóa kiểu từ điển do Lempel – Ziv đưa ra và có cải tiến vào năm 1977, 1978 và do đó có tên gọi là phương pháp nén LZ77, LZ78. Năm 1984, Terry Welch đã cải tiến hiệu quả hơn và đặt tên là LZW (Lempel – Ziv - Welch). • Độ dư thừa vị trí Do sự phụ thuộc lẫn nhau của dữ liệu, đôi khi biết được ký hiệu (giá trị) xuất hiện tại một vị trí, đồng thời có thể đoán trước sự xuất hiện của các giá trị ở các vị trí khác nhau một cách phù hợp. Chẳng hạn, ảnh biểu diễn trong dạng lưới hai chiều, một số điểm ở hàng dọc trong một khối dữ liệu lại xuất hiện trong cùng vị trí ? ở các hàng khác nhau. Do vậy, thay vì lưu trữ dữ liệu ta chỉ cần lưu trữ vị trí hàng và cột. Phương pháp nén dựa trên sự dư thừa này gọi là phương pháp mã hóa dự đoán. Cách đánh giá độ dư thừa như trên hoàn toàn mang tính trực quan nhằm biểu thị một cái gì đó xuất hiện nhiều lần. Đối với dữ liệu ảnh, ngoài đặc thù chung đó nó còn có những đặc thù riêng. Thí dụ như có ứng dụng không cần toàn bộ dữ liệu thô của ảnh mà chỉ cần có các thông tin đặc trưng biểu diễn ảnh như biên ảnh hay vùng đồng nhất. Do vậy, có những 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. Một số vấn đề gặp phải khi nén dữ liệu - Các thuật toán thực hiện trước hết phải giảm chi phí lưu trữ. - Các thuật toán được thực hiện nhanh, hiệu quả. Nhìn chung không có phương phát 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. Với nhiều loại thông tin khác nhau mà ta có các kỹ thuật nén khác nhau, có hiệu quả khác nhau. Ví dụ như nén tệp văn bản thường tiết kiệm 20% - 50%, còn đối với tập tin nhị phân khoảng 50% - 90%, tuy nhiên đối với các tập tin ngẫu nhiên thì lượng không gian tiết kiệm được rất ít hoặc hầu như không tiết kiệm được ( chẳng hạn như tệp *.exe,…). Do dữ liệu có độ dư thừa khác nhau nên mỗi phương pháp nén nếu áp dụng không đúng sẽ trở nên không cần thiết và không có độ linh hoạt. 1.5. Quá trình nén và giải nén Quá trình nén và giải nén dữ liệu là một quá trình gồm 2 công đoạn: - Công đoạn nén: dữ liệu gốc qua bộ mã hóa dữ liệu, bộ mã hóa này thực hiện nén dữ liệu đến một mức thích hợp cho việc lưu trữ và truyền dẫn thông tin. Quá trình này sẽ thực hiện việc loại bỏ hay cắt bớt những dữ liệu dư thừa để thu được thông tin cần thiết nhưng vẫn đảm bảo chất lượng. - Công đoạn giải nén: dữ liệu nén đi qua bộ giải mã dữ liệu, bộ giải mã thực hiện giải nén để thu được dữ liệu gốc ban đầu. Việc giải nén này thường phải dựa vào các thông tin đi kèm theo dữ liệu nén, tùy thuộc vào kiểu nén hay phương pháp nén mà dữ liệu giải nén được có hoàn toàn giống với dữ liệu gốc ban đầu hay không. Tóm lại quá trình nén và giải nén dữ liệu có thể mô tả một cách tóm tắt theo sơ đồ dưới đây: 9 Sơ đồ nén và giải nén dữ liệu @ CHƯƠNG 2: CÁC PHƯƠNG PHÁP NÉN DỮ LIỆU  Phân loại các phương pháp nén Có nhiều cách phân loại các phương pháp nén khác nhau. 2.1.1. Cách thứ nhất dựa vào nguyên lý nén • Nén không tổn hao (Lossless compression): Gồm các phương pháp nén mà sau khi giải nén ta 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 phương pháp nén tổn hao. Các thuật toán nén không tổn hao được dùng để nén các file như: file thực thi, file văn bản, word, excel,… Các loại dữ liệu này không thể sai lệch dù chỉ một bit, nhất là các file chương trình. Các thuật toán nén không tổn hao cơ bản: 1. Run – length encoding (RLE): 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 là ảnh nhị phân) 2. Dictionary coders 3. LZ – 77 & LZ – 78 4. LZW 5. Burrows and Wheeler transform (BWT) 6. Prediction by partial matching (PPM) 7. Context mixing (CM) 8. Entropy encoding 9. Huffman coding 10.Adaptive Huffman 11.Arithematic 12.Shannon – Fano coding 13.Range coding • Nén tổn hao (Lossy compression): Gồm các phương pháp nén mà sau khi giải nén ta không thu được dữ liệu như bản gốc. Đối với tín hiệu âm thanh, hình ảnh, video, kiểu nén tổn hao thường được sử dụng. Âm thanh và video có thể nén xuống còn 5% so với kích thước gốc, tai và mắt người khó có thể phát hiện được sự thất thoát dữ liệu này. Trong nén ảnh, người ta gọi là các phương pháp “tâm lý thị giác”. Các phương pháp này lợi dụng tính chất của mắt người, chấp nhận một số vặn xoắn trong ảnh khi khôi phục lại. Tuy nhiên, các phương pháp này chỉ có hiệu quả khi mà độ vặn xoắn là chấp nhận được bằng mắt thường hay với dung sai nào đó. " Trong thực tế, các file hình ảnh, âm thanh hay video được lưu trữ trên máy tính đều đã được nén có tổn hao để tiết kiệm dung lượng và băng thông. Đối lập với nén không tổn hao, các phương pháp nén có tổn hao thường gây giảm chất lượng rất nhanh khi thực hiện nén và giải nén đệ qui nhiều lần. Các mẫu hình ảnh, âm thanh sẽ được chia thành các phần nhỏ và được biến đổi qua miền khác. Các hệ số biến đổi này sẽ được lượng tử hóa sau đó được mã hóa bằng mã Huffman hoặc mã hóa số học. Các mẫu hình ảnh, âm thanh trước được sử dụng để dự đoán các mẫu tiếp theo. Sai số giữa dữ liệu dự đoán và dữ liệu thực sẽ được lượng tử hóa rồi mã hóa. Ưu điểm của nén tổn hao so với nén không tổn hao là nén tổn hao trong nhiều trường hợp cho tỷ lệ nén cao hơn rất nhiều so với bất cứ thuật toán nén không tổn hao được biết, trong khi vẫn đảm bảo được chất lượng. Nén tổn hao thường được sử dụng để nén ảnh, âm thanh, video. Âm thanh có thể nén với tỷ lệ 10:1 mà hầu như không giảm chất lượng. Video có thể nén với tỷ lệ 300:1 với chất lượng giảm ít. Các chuẩn nén tổn hao: 1. JPEG (Joint Photographic Experts Group): Phương pháp nén ảnh tĩnh với tỷ lệ nén lên đến 20 -1 mà không làm mất thông tin đáng kể. 2. LZW (Lempel – Ziv - Welch): Giải thuật này được dùng trong nhiều định dạng nén, kể cả định dạng có thể trao đổi đồ họa và Tag Image File Format mà ta thường gọi là TIFF. 3. MPEG (Moving Pictures Experts Group): Phương pháp nén tổn hao dùng cho video. MPEG -1 dùng cho CD – ROM và video CD. MPEG -2 nén video cho truyền hình thông thường và độ nét cao. 4. MP3 (MPEG Audio Layer 3): Công nghệ nén âm thanh sử dụng một phần chuẩn MPEG – 1 để nén âm thanh chất lượng CD với hệ số 12. 5. Fractal: Phương pháp nén tổn hao dữ liệu cho ảnh màu, rất phù hợp với những đối tượng tự nhiên, tỷ lệ nén có thể lên đến 100 – 1. 6. Wavelet: Phương pháp nén tổn hao sử dụng hàm toán học để nén hình ảnh với tỷ lệ lớn hơn các phương pháp khác, có thể đạt ¼ kích thước của cùng bức ảnh nén bằng JPEG. 7. Window Media Technology: Sản phẩm của Microsoft, cho chất lượng âm thanh tốt hơn MP3 đối với tập tin cùng kích thước, cũng như chất lượng video gần bằng DVD. 2.1.2. Cách thứ hai dựa vào cách thức thực hiện nén A [...]... 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 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à để... 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 có thể khắc 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 21 CHƯƠNG 3: CHƯƠNG TRÌNH ỨNG DỤNG 3.1 Giao diện chương trình Chương trình mô phỏng nén dữ liệu dựa trên thuật toán nén Huffman Một số chức năng chính của chương trình:... trên thuật toán nén Huffman Một số chức năng chính của chương trình: - Mở tệp nguồn: có chức năng mở 1 tệp nguồn cần giải nén Xuất tệp nén: có chức năng lưu tệp đã được nén Giải nén tệp: có chức năng giải nén 1 tệp Nén tệp: có chức năng nén 1 tệp Hình ảnh minh họa chương trình nén 3.2 Một số thủ tục chính trong chương trình 3.2.1 Thủ tục xây dựng cây Huffman class HuffmanTree { #region Members ///... 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ì... bit Tỷ số nén = 112/ 84 = 1.3 Quá trình giải nén thực hiện như sau: Code Outbuff() 72 69 76 76 79 258 260 262 259 76 EOI H E L L O HE LL OH EL L AddToDictionary() CodeWord String 258 259 260 261 262 263 264 265 266 HE EL LL LO OHE HEL LLO OHE ELL Chuỗi thu được sau giải nén: “HELLOHELLOHELL” 2.3 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... pháp trước đó ở kỹ thuật tổ chức từ điển cho phép nâng cao tỷ lệ nén Giải thuật LZW được dùng cho tất cả các loại file nhị phân, thường được dùng để nén các loại dữ liệu như: văn bản, ảnh đen trắng, ảnh màu, ảnh đa cấp xám… và là chuẩn nén cho các dạng ảnh GIF và TIFF Số bit/pixel không ảnh hưởng đến hiệu quả của LZW • 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... để mã hóa dữ liệu đã bắt đầu xuất hiện, sau khi các nhà nghiên cứu đã khám phá ra Entropy và độ dư thừa dữ liệu Phương pháp mã hóa đầu tiên được nhiều người biết đến vào cuối những năm 1940 là phương pháp mã hóa Shannon – Fano Phương pháp này được 2 nhà nghiên cứu Claude Shnnon và R.M Fano đưa ra gần như đồng thời Kỹ thuật mã hóa này dựa trên tần suất xuất hiện của mỗi ký tự trong nguồn số liệu cần... dựng cây nhị phân sẵn chứa các khả năng Điều này đòi hỏi thời gian không ít do ta không biết trước kiểu dữ liệu sẽ - được thực hiện nén Quá trình giải nén phức tạp do chiều dài mã không biết trước cho đến khi ký tự đầu tiên được tìm ra 2.2.3 Phương pháp mã hóa RLE Mã hóa loạt dài RLE 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... rộng chuỗi dữ liệu nguồn nghĩa là chỉ mã hóa độ dài loạt dữ liệu lặp lại Người ta đưa ra cách là 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à “@” ta có chuỗi sau khi mã hóa: 5 8 4 @ 7 8 @ 9 10 Tỷ số nén = 19/9/... vậy, khi đọc tệp nén từng bit từ đầu đến cuối ta có thể duyệt cây mã cho đến một lá, tức là ký tự đã được giải nén Cây mã Huffman Bảng từ mã gán cho các ký tự bởi mã hóa Huffman: Ký tự “0” “6” “.” “” “3” “5” “2” “-” “4” “+” “1” “8” “7” “9” Từ mã 10 010 001 000 1110 1100 0111 0110 11110 11011 111111 111110 110101 110100 • Thuật toán giải nén - Bước 1: Đọc lần lượt từng bit trong tập tin nén và duyệt cây . String 72 H 69 E 25 8 HE 76 L 25 9 EL 76 L 26 0 LL 79 O 26 1 LO 25 8 HE 26 2 OHE 26 0 LL 26 3 HEL 26 2 OH 26 4 LLO 25 9 EL 26 5 OHE 76 L 26 6 ELL EOI Chuỗi thu được sau giải nén: “HELLOHELLOHELL” 2. 3. Chọn. suất “0” 15 32 0 .27 70 “6” 6 02 0.1088 “.” 536 0.0969 “ ” 535 0.0967 “3” 4 12 0.0746 “5” 385 0.0696 2 323 0.0585 - 315 0.0569 “4” 22 6 0.0409 “+” 22 0 0.0396 “1” 1 52 0. 027 5 “8” 1 12 0. 020 3 “7” 92 0.0167  “9”. giai đoạn nén. • Ví dụ Một tệp dữ liệu mà tần suất các ký tự cho bởi: Ký tự Tần suất “1” 1 52 2 323 “3” 4 12 “4” 22 6 “5” 385 “6” 6 02 “7” 92 “8” 1 12 “9” 87 “0” 15 32 “.” 536 “+” 22 0 - 315 “ ”

Ngày đăng: 21/08/2014, 15:38

Từ khóa liên quan

Mục lục

  • LỜI MỞ ĐẦU

  • CHƯƠNG 1: TỔNG QUAN VỀ NÉN DỮ LIỆU

  • CHƯƠNG 2: CÁC PHƯƠNG PHÁP NÉN DỮ LIỆU

    • 3.2.1. Thủ tục xây dựng cây Huffman

    • 3.2.2. Thủ tục nén dữ liệu

    • 3.2.3. Thủ tục giải nén dữ liệu

    • TÀI LIỆU THAM KHẢO

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

Tài liệu liên quan