Tìm hiểu các thuât toán nén dữ liệu và xây dựng chương trình ứng dụng

55 1K 0
Tìm hiểu các thuât toán nén dữ liệu và xây dựng chương trình ứng dụng

Đ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

LỜI CẢM ƠN Em xin chân thành cảm ơn Ban chủ nhiệm khoa Công nghệ thông tin, thầy cô giáo, gia đình bạn bè động viên giúp đỡ em nhiều trình hoàn thành khóa luận Đặc biệt em xin bày tỏ lòng cảm ơn sâu sắc tới thầy giáo hướng dẫn Th.s Trần Tuấn Vinh tận tình tận tâm hướng dẫn em từ ý tưởng ban đầu lúc hoàn thành khóa luận quan trọng Em mong đón nhận đánh giá, bổ sung lời bảo thầy cô, giúp em tiếp tục nghiên cứu kĩ lĩnh vực Em xin chân thành cảm ơn! Hà Nội, tháng năm 2013 Sinh viên Nguyễn Công Thành LỜI CAM ĐOAN Tên em là: Nguyễn Công Thành Sinh viên: K35 – CNTT, trường Đại học Sư phạm Hà Nội Em xin cam đoan: Đề tài “Tìm hiểu thuật toán nén liệu xây dựng chương trình ứng dụng” kết tìm hiểu nghiên cứu riêng em hướng dẫn Th.s Trần Tuấn Vinh Khóa luận hoàn toàn không chép từ tài liệu có sẵn công bố khác Kết không trùng với tác giả khác Nếu sai em xin hoàn toàn chịu trách nhiệm Hà Nội, tháng 05 năm 2013 Sinh viên Nguyễn Công Thành DANH SÁCH CÁC HÌNH Hình 2.1 Sơ đồ mã hóa giải mã dùng MPEG Hình 2.2 Phân lớp mã hóa MPEG Hình 2.3 Các mẫu Audio Hình 2.4 Cấu trúc khung MPEG Hình 2.5 Cấu trúc khung MPEG Hình 2.6 Sơ đồ mã hóa giải mã MPEG Hình 3.1 Quá trình xây dựng Huffman MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN DANH SÁCH CÁC HÌNH MỞ ĐẦU CHƯƠNG SƠ LƯỢC NÉN DỮ LIỆU 1.1 Tổng quan nén liệu 1.2 Tổng quan loại mã nén 1.2.1.Các chương trình nén hoạt động nào? 1.3 Phân loại ứng dụng 13 CHƯƠNG 16 CÁC PHƯƠNG PHÁP NÉN DỮ LIỆU 16 2.1 Phương pháp nén không tổn hao 16 2.1.1 Mô hình thống kê 16 2.1.2 Mô hình từ điển 20 2.2 Phương pháp nén tổn hao 27 CHƯƠNG 42 XÂY DỰNG CHƯƠNG TRÌNH NÉN DỮ LIỆU 42 BẰNG MÃ HUFFMAN VÀ RUN-LENGTH 42 3.1 Đặc điểm thuật toán nén liệu 42 3.2 Phân tích thuật toán 43 3.2.3.1 Biến thể vào Run-length Encoding 46 3.2.3.2.Gói Replication dọc 48 CHƯƠNG 50 HÌNH ẢNH MINH HỌA CÁC CHƯƠNG TRÌNH SỬ DỤNG THUẬT TOÁN HUFFMAN VÀ RUN-LENGTH 50 TÀI LIỆU THAM KHẢO 54 MỞ ĐẦU Ngày với tiến khoa học kĩ thuật, CNTT nâng lên tầm cao Mọi ngành, nghề phải ứng dụng CNTT cách triệt để để phát triển cách tốt Ngay cụm từ “ Chính phủ điện tử” mà ta thường nghe cho ta thấy tầm quan trọng việc đưa CNTT vào sống Không nằm phát triển có tính quy luật chung xã hội, CNTT làm để phát triển ngày tốt hơn, nhanh hơn, nhẹ hơn, gọn CNTT Viễn thông có mối liên hệ tương đối chặt chẽ với Một tiêu chí giúp ngành CNTT phát triển sử dụng công nghệ bảo mật, nén liệu, thông tin lưu trữ truyền thông Bảo mật thông tin, nén liệu công việc cần thiết ngành CNTT Từ thời xa xưa, người biết gìn giữ thông tin quân sự, chiến tranh nhằm làm cho thông tin an toàn, không lọt vào tay đối phương Muốn vậy, người có nhiều cách để làm cho thông tin truyền gọn nhẹ an toàn lưu thông Để thông tin đến tay người nhận cách bí mật, gọn gàng họ phải nén thông tin lại hay dùng kí hiệu đặc biệt có quy ước trước Trong kỹ thuật truyền số liệu, bảo mật nén liệu (nguồn tin) truyền vấn đề quan trọng, nhiều sở lý thuyết mã hóa nguồn cho ta thấy tầm quan trọng việc mã hóa nén liệu Các thuật toán nén liệu đời từ lâu mã nén Shannon-Fano, Huffman, Run-length hay Lempel Ziv Welch (LZW) cho kinh điển công nghệ nén liệu Trong khóa luận này, em trình bày đôi nét thuật toán nén liệu thông dụng so sánh tính hiệu việc nén số loại liệu khác loại mã nén Run-length Huffman Khóa luận tập trung vào vấn đề xoay quanh thuật toán Run-length Huffman, phân tích ưu, nhược điểm thuật toán so với thuật toán Các phần thực khóa luận gồm: - Tìm hiểu lí thuyết nén liệu, tổng hợp kết giới nén liệu Tổng quan phương pháp mã hóa nguồn, nguyên tắc làm việc phương pháp, tốc độ tỷ lệ nén - Phân loại ứng dụng Nhiệm vụ đặt đưa nội dung thuật toán mã hóa nguồn - Nội dung thuật toán Run-length Huffman Trong phần sâu phân tích ưu, nhược điểm thuật toán, lựa chọn thuật toán Run-length Huffman để so sánh tính hiệu loại với số loại liệu khác - Hình ảnh minh họa chương trình sử dụng thuật toán Huffman Run-length CHƯƠNG SƠ LƯỢC NÉN DỮ LIỆU 1.1 Tổng quan nén liệu Trong khoa học máy tính lí thuyết thông tin, nén liệu trình mã hóa thông tin dùng bít so với thông tin chưa mã hóa cách dùng kết hợp phương pháp Dựa theo nguyên tắc giúp tránh tượng kênh truyền bị tải truyền tin trở nên kinh tế Nén liệu giúp tiết kiệm tài nguyên dung lượng nhớ, băng thông, thời gian Ngược lại, liệu nén cần phải giải nén để đọc (thực thi, nghe, xem, v.v…), trình đòi hỏi tài nguyên định Một ví dụ điển hình việc nén video đòi hỏi phần cứng đắt tiền để trình giải nén đủ nhanh để ta xem Do việc thiết kế chương trình nén liệu phụ thuộc nhiều yếu tố mức độ nén, độ méo (đối với nén có tổn hao), tài nguyên hệ thống dùng để thực trình nén giải nén liệu 1.2 Tổng quan loại mã nén 1.2.1 Các chương trình nén hoạt động nào? Nguyên tắc chương trình nén nói chung giống nhau: Tận dụng lặp lại liệu, chuỗi liệu lặp lại thay trỏ chung có độ dài bé Kỹ thuật hiệu liệu dạng text, bảng tính, file DBF (nén 70%), tính lặp lại liệu loại cao: File chương trình (.EXE COM) nén 1.2.2 Tốc độ tỷ lệ nén Ngay tất chương trình nén file dùng chung thuật toán hoạt động chúng khác Mỗi hãng triển khai thuật toán kiểu để dung hòa hai vấn đề: thời gian tỷ lệ nén Chương trình PKZIP thường trội chương trình nén khác mặt tốc độ, tỷ lệ nén, nhiều Tính ổn định chương trình nén điều cần quan tâm Các file nén nói chung bị hỏng Cũng cần lưu ý loại file nén không tương thích với nhau, tức gửi file nén cho người khác người cần phải có chương trình thích hợp giải nén Tuy nhiên để giải vấn đề này, chương trình ARC + PLUS, LHA PKZIP cho phép tạo file nén tự bung – tức file nén dạng chương trình thực hiện, chạy tự động bung Trên thị trường bắt đầu xuất chương trình chuyển đổi từ dạng file nén sang dạng file nén khác, ví dụ chương trình D’Compress for Windows chuyển file PKZIP, ARC, LHA sang dạng ARJ Các chương trình nén giá không cao (PKZIP: 47USD, LHA cung cấp miễn phí) nên dùng rộng rãi Hạn chế giao diện người dùng không thuận tiện, thường phải gõ lệnh với nhiều tham số dấu nhắc DOS để thực công việc Cải tiến theo hướng thực hiện: ARC + PLUS có giao diện kiểu menu, PKZIP có phần bổ sung PKZIP menu Nhiều chương trình quản lí file DOS Windows bắt đầu dùng kỹ thuật nén Chương trình Magellan hãng Lotus dùng PKZIP từ năm 1990, chương trình Xtree Gold đưa PKZIP vào công cụ quản lý file năm 1991 Thư mục nén rời sau lại phải bung để dùng chương trình nén file rườm rà, lí mà chương trình nén đĩa Stacker Super Store sử dụng tương đối rộng rãi Các chương trình nén đĩa hoạt động nguyên tắc giống nén file, khác chúng tự động nén bung mà người dùng quan tâm đến Thời gian tỷ lệ nén chương trình nén loại khác Để bung 3,5 MB liệu, chương trình hết 12 giây, chương trình khác 40 giây Tỷ số nén file văn khác: từ 2:1 đến 3:1 Tóm lại dùng chương trình nén đĩa, người dùng yên tâm dung lượng trống ổ cứng dường tăng khoảng lần Việc bung nén làm việc với file làm công việc chậm lại đôi chút Đối với file liệu lớn, điều thể rõ Khi làm việc, chương trình nén đĩa hoạt động dạng thường trú, mặt chiếm dụng nhớ RAM, mặt xung đột với chương trình thường trú khác Các chương trình nén file có cố hỏng vài file, chương trình nén đĩa làm hỏng ổ đĩa Tuy điều xảy làm cho nhiều người e ngại không dám dùng Để cài đặt chương trình nén đĩa cần phân chia lại ổ cứng máy tính cần khởi động đĩa nén trước chương trình nén hoạt động Nếu dùng Windows phần mềm không nén cần lớn (thông thường cần dành 10 Mb cho vùng không nén, nén vùng đĩa lại) Một điều làm người dùng đau đầu phải định tỷ lệ nén Với tỷ lệ nén 10:1 chẳng hạn, chương trình nén dành nhiều “con trỏ” để trỏ đến liệu, trỏ chiếm byte, dễ xảy trường hợp không đủ trỏ, chương trình báo đĩa đầy mà Cuối cùng, việc loại bỏ chương trình nén đĩa cài đặt vấn đề phiền toái Nhiều chương trình – chẳng hạn Double Density có 10 Khung MPEG chia thành phần, phần đầu MPEG stereo, phần mở rộng MPEG chứa tất liệu surround khác Hình 2.5 Cấu trúc khung MPEG Mã hóa giải mã MPEG 2: Hình 2.6 Sơ đồ mã hóa giải mã MPEG 41 CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH NÉN DỮ LIỆU BẰNG MÃ HUFFMAN VÀ RUN-LENGTH 3.1 Đặc điểm thuật toán nén liệu Trong giới hạn tìm hiểu liệu dạng tập tin em nhận thấy phương pháp nén dùng phổ biến có đặc điểm đáng ý: Thuật toán nén độ dài loạt (Runlength) áp dụng cho nhiều loại tập tin được, ví dụ tập tin chương trình, tập tin sở liệu loạt chạy ngắn, áp dụng thuật toán không làm bé tập tin mà làm phình to chúng Thuật toán nén LZW có ưu điểm hệ số nén tương đối cao, tập tin nén không cần phải chứa bảng mã Nhược điểm thuật toán tốn nhiều nhớ, khó thực dựa mảng đơn giản (bé 64 KB) Các thuật toán khác Huffman, Shannon-Fano, LZ77 LZW áp dụng để nén nhiều loại tập tin máy vi tính Thuật toán Huffman có ưu điểm hệ số nén tương đối cao, phương pháp thực tương đối đơn giản, đòi hỏi nhớ, xây dựng dựa mảng bé 64KB Thường sử dụng công đoạn cuối nén âm thanh, hình ảnh video Từ đặc tính thuật toán loại mã nén trên, em tập trung nghiên cứu, xây dựng mô đánh giá để làm rõ ưu nhược điểm hai loại mã nén Huffman Run-length 42 3.2 Phân tích thuật toán 3.2.1 Thuật toán Huffman Thành lập nhị phân từ tập hợp kí hiệu thông báo, kí hiệu nút Cách thành lập sau: Chọn nút a, b có xác suất nhỏ tập hợp nút, giả sử xác suất nút a nhỏ xác suất nút b Thành lập nhị phân có nút gốc x, trái a, phải b Nút x có xác suất tổng xác suất a b Tập hợp nút nút lại (đã loại bỏ a, nút x) Lặp lại cách đệ qui trình tập hợp xét tập lại nút Mã a, b tìm cách lấy mã x nối thêm cho a cho b Mã nút gốc rỗng Như vậy, thực chất trình ta xây dựng nhị phân từ tập hợp ký tự muốn mã hóa, cuối ta nhị phân có ký tự Mã ký tự đường từ gốc đến chứa kí tự, với sang trái sang phải Ý tưởng giải thuật mã hóa đơn giản, ta tìm mã cho kí tự cho kí tự có tần suất xuất cao (xác suất xuất lớn) mã ngắn (gần với gốc) để độ dài trung bình để mã hóa kí tự nhỏ Ví dụ: Cho bảng tần suất chữ A, B, C, D, E tương ứng 0.10; 0.15; 0.30; 0.16; 0.29 A B C D E 0.10 0.15 0.30 0.16 0.29 43 Hình 3.1 Quá trình xây dựng Huffman 44 Như mã tối ưu tương ứng là: A B C D E 010 011 11 00 10 - Đọc file văn bản, lưu vào mảng a - Xây dựng Huffman để giải mã dòng văn - Hiển thị Huffman bảng mã Huffman hình - Thực mã hóa dòng văn giải mã Mở rộng mã hóa giải mã file văn Kết giải mã mã hóa ghi vào file văn khác 3.2.3 Thuật toán Run-length (RLE) Thuật toán RLE thuật toán nén liệu hỗ trợ hầu hết định dạng tập tin bitmap Chẳng hạn như: TIFF, BMP PCX RLE thích hợp cho nén loại liệu nội dung thông tin nó, nội dung liệu ảnh hưởng đến tỉ lệ nén đạt RLE Mặc dù hầu hết thuật toán RLE đạt tỷ lệ nén cao phương pháp nén tiên tiến lại dễ dàng nhanh chóng để thực Điều làm cho RLE trở thành lựa chọn tốt RLE hoạt động cách giảm kích thước vật lý chuỗi lặp lặp lại, điều gọi chạy thường mã hóa thành hai byte Byte đại diện cho số lượng ký tự thời gian gọi số chạy Byte thứ hai giá trị ký tự thời gian, phạm vi từ đến 255 gọi giá trị chạy 45 Chương trình RLE đơn giản nhanh chóng hiệu nén phụ thuộc vào loại liệu mã hóa Một hình ảnh màu đen trắng mà chủ yếu màu trắng, chẳng hạn trang sách mã hóa tốt (do số lượng lớn liệu tiếp giáp màu sắc) 3.2.3.1 Biến thể vào Run-length Encoding Dữ liệu hình ảnh thường chạy dài mã hóa trình xử lý liệu hình ảnh dòng 1D, đồ 2D liệu Một biến thể RLE gặp phải thuật toán mã hóa độ tổn hao Trong thuật toán RLE liệu loại bỏ trình mã hóa thường cách quy hai bit quan trọng điểm ảnh, làm tăng tỷ lệ nén mà không ảnh hưởng xấu đến xuất hình ảnh phức tạp Biến thể RLE hoạt động tốt với hình ảnh thực tế có chứa nhiều biến thể tinh tế giá trị điểm ảnh Hãy chắn mã hóa RLE bạn luôn dừng lại cuối dòng quét liệu bitmap mã hóa Có nhiều lợi ích để làm Mã hóa dòng máy quét đơn giản thời điểm có nghĩa có kích thước đệm tối thiểu Mã hóa dòng đơn giản thời điểm ngăn chặn vấn đề gọi cross-mã hóa Chéo mã hóa kết hợp dòng quét xảy trình mã hóa khác biệt dòng quét gốc Chéo mã hóa lúc thực thêm vài byte liệu nén trình giải mã phức tạp, thêm chi phí thời gian Đối với định dạng tập tin bitmap, kỹ thuật đánh bại mục đích việc tổ chức hình ảnh bitmap dòng quét nơi 46 Khi mã hóa mã hóa hình ảnh, dấu hiệu cuối quét mạng đặt mã hóa liệu để thông báo cho phần mềm giải mã kết thúc dòng quét đạt Dấu hiệu thường gói nhất, xác định rõ ràng đặc điểm kỹ thuật RLE, nhầm lẫn với gói liệu khác Dấu hiệu cuối quét thường độ dài byte, không đóng góp bất lợi với kích thước liệu mã hóa Mã hóa dòng quét cá nhân có lợi ứng dụng cần sử dụng phần hình ảnh Hãy nói hình ảnh bao gồm 512 dòng quét cần để hiển thị dòng 100 - 110 Nếu nơi mà dòng quét bắt đầu kết thúc liệu hình ảnh mã hóa, ứng dụng phải giải mã dòng từ đến 100 hình ảnh trước tìm mười dòng Tất nhiên, trình chuyển đổi dòng quét đánh dấu số loại dễ dàng nhận biết, ứng dụng cần đọc qua liệu mã hóa Một tùy chọn khác cho vị trí điểm khởi đầu dòng quét đặc biệt khối liệu mã hóa xây dựng bảng quét trực tuyến Một bảng quét thường chứa yếu tố cho dòng quét phần tử chứa giá trị bù đắp dòng quét tương ứng Để tìm gói RLE đầu quét dòng 10, tất giải mã cần phải tìm đến giá trị vị trí bù đắp lưu trữ yếu tố thứ mười bảng tra cứu quét trực tuyến Một bảng quét giữ số lượng byte sử dụng để mã hóa dòng quét Sử dụng phương pháp để tìm gói RLE đầu quét dòng 10, giải mã bạn gắn với Gói cho dòng quét 10 byte bù đắp từ đầu liệu hình ảnh RLE mã hóa 47 Chương trình RLE sử dụng để mã hóa hình ảnh bitmap, thường chia thành lớp theo kiểu yếu tố nguyên tử (có nghĩa nhất) mà họ mã hóa Thông thường, phương pháp phải phân tích dòng liệu không nén để xác định xem có sử dụng điểm ảnh chạy chữ hay không Có hai nhược điểm tiềm phương pháp này:  Kích thước tối thiểu tăng từ ba đến bốn ký tự Điều ảnh hưởng đến hiệu nén với số loại liệu  Nếu dòng liệu unencoded chứa giá trị ký tự giá trị cờ, phải nén vào gói mã hóa 3-byte Điều ngăn cản giá trị cờ sai lầm xảy dòng liệu nén 3.2.3.2 Gói Replication dọc Một số chương trình RLE sử dụng gói mã hóa để tăng hiệu nén Một hữu ích gói gói Replication dọc Gói tin không lưu trữ liệu quét dòng thực sự, thay vào cho thấy lặp lại dòng quét trước Dưới ví dụ cách làm việc Giả sử bạn có hình ảnh có chứa dòng quét 640 byte rộng tất điểm ảnh dòng quét màu sắc Nó đòi hỏi 10 byte để chạy dài mã hóa nó, giả định lên đến 128 byte mã hóa cho gói gói hai byte Chúng ta giả định 100 dòng quét hình ảnh tất màu sắc tương tự Tại 10 byte dòng quét, sản xuất 1.000 byte chạy dài liệu mã hóa Nếu thay sử dụng gói nhân rộng theo chiều dọc có byte kích thước (có thể gói chạy dài với số chạy từ 0), đơn giản chạy dài mã hóa dòng quét (10 byte) 48 làm theo với 99 dọc gói liệu chép (99 byte) Kết liệu mã hóa sau có 109 byte Nếu gói liệu chép thẳng đứng chứa byte đếm số quét dòng lặp lại, cần gói với giá trị số 99 Các kết 10 byte quét dòng gói liệu hai byte gói nhân rộng theo chiều dọc mã hóa 100 dòng quét hình ảnh, chứa 64.000 byte 49 CHƯƠNG HÌNH ẢNH MINH HỌA CÁC CHƯƠNG TRÌNH SỬ DỤNG THUẬT TOÁN HUFFMAN VÀ RUN-LENGTH 4.1 Hình ảnh chương trình sử dụng thuật toán Huffman 50 51 4.2 Hình ảnh chương trình sử dụng thuật toán Run-length 52 53 KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN Kết luận Với phần mô thuật toán nén liệu Huffman Run – length, em phần đúc kết ưu nhược điểm hai thuật toán qua việc so sánh thuật toán nén Em tìm hiểu, thống kê số thuật toán nén khác với liệu khác file văn bản, file audio, video,… Sau mặt làm mặt hạn chế khoá luận này:  Những mặt làm được: - Mô thành công loại mã nén Huffman Run – Length - So sánh mã nén đưa kết luận - Tìm hiểu nghiên cứu thuật toán nén khác - Nén thành công file có kích thước lớn - Nén thành công loại liệu khác văn bản, audio, video,… chí nén folder  Những mặt hạn chế: Chưa thực việc so sánh cách tổng quát trực quan tất loại mã nén nay, dẫn đến việc chưa đưa kết luận loại mã nén tối ưu mã nén thông dụng Hướng phát triển Với mặt làm được, em tiếp tục cải tiến nâng cấp để nén liệu nhanh hơn, giao diện đẹp mắt hơn, dễ sử dụng thực tế Còn với mặt hạn chế, em tiếp tục hoàn thành để so sánh tổng quát trực quan loại mã nén tìm mã nén thông dụng 54 TÀI LIỆU THAM KHẢO [1] Nguyễn Lê Anh, Nguyễn Văn Xuất, Phạm Thế Long – Giáo trình lý thuyết mã hóa [2] Mark Nelson and Jean-loup Gailly – The Data Compression Book 2nd edition [3] Vũ Đức Thi – Thuật toán tin học, NXB KHKT [4] Các nguồn từ Internet 55 [...]... với các chương trình khác cần tóm các file ẩn của chương trình nén và xóa bỏ chúng đi Có khi phải format lại ổ cứng Tóm lại, dù một số hạn chế, nén dữ liệu là cách thức kinh tế nhất để mở rộng dung lượng ổ cứng Ngoài ra còn tiết kiệm được khá nhiều thời gian và kinh phí khi nén dữ liệu trước khi truyền đi 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, về cách... 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 chi phí khác như thời gian, không gian và thậm chí cả độ phức tạp tính toán nữa 11 1.2.3 Các loại dư thừa dữ liệu Như trên đã nói, nén nhằm mục đích giảm kích thước dữ liệu bằng cách loại bỏ dư thừa dữ liệu 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 phương pháp nén dữ liệu. .. pháp nén riêng cho ảnh dựa vào biến đổi ảnh hay biểu diễn ảnh 1.3 Phân loại và ứng dụng 1.3.1 Dựa vào nguyên lí nén 1.3.1.1 Các thuật toán nén không tổn hao Trong các phương pháp nén không tổn hao, dữ liệu sau khi nén sẽ giống y như ban đầu Trong đó thông dụng nhất là Lempel – Ziv (LZ), DEFLATE là một biến thể của thuật toán LZ được tối ưu hóa nhằm tăng tốc độ giải nén và tỉ lệ nén, bù lại thuật toán. .. đá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 Trong các trình bày sau khi nói đến kết quả nén, chúng ta dùng tỷ số nén, thí dụ như 10 trên 1 có nghĩa là dữ liệu gốc là 10 sau khi nén chỉ có 1 phần Tuy nhiên, cũng phải thấy rằng những số đo của một phương pháp nén chỉ có giá trị với chính sự nén đó, vì rằng hiệu quả của nén còn phụ thuộc vào kiểu dữ liệu định nén, nhiều... Shannon-Fano coding 13 Range coding 14 1.3.1.2 Các thuật toán nén tổn hao Trong các phương pháp nén tổn hao thì dữ liệu được nén khi giải nén ra sẽ không giống với dữ liệu gốc, tuy nhiên phải đảm bảo dữ liệu sau khi nén vẫn còn hữu ích Đối với hình ảnh, âm thanh, video, do giới hạn của mắt và tai người nên một lượng lớn dung lượng có thể được tiết kiệm bằng cách loại bỏ các phần dư thừa, trong khi chất lượng... 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. .. 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ó 4 kiểu dư thừa chính được trình bày ở các mục dưới đây 1.2.3.1 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 kí tự có tần suất xuất hiện cao hơn được... quá trình nén chậm DEFLATE được dùng trong PKZIP, GZIP và PNG LZW (Lempel – Ziv – Welch) được dùng trong định dạng file Gif Hai biến thể của thuật toán 13 LZ cũng đáng chú ý là LZX dùng trong định dạng file CAB của Microsoft (Microsoft còn dùng thuật toán nén này cho file CHM, các file office 2007) và thuật toán LZMA dùng trong chương trình 7-ZIP Các thuật toán nén không tổn hao được dùng trong các. .. được xây dựng đồng thời với quá trình đọc dữ liệu Sự có mặt của một chuỗi con trong từ điển khẳng định chuỗi đó đã từng xuất hiện trong phần dữ liệu đã đọc Thuật toán liên tục “tra cứu” và cập nhập từ điển sau mỗi lần đọc một ký tự dữ liệu đầu vào Do kích thước bộ nhớ ngoài không phải vô hạn và để đảm bảo tốc độ tìm kiếm, từ điển chỉ giới hạn 4096 ở phần tử dùng để lưu lớn nhất là 4096 giá trị của các. .. gọi là profiles và levels Một profile sẽ xác định một thuật toán (điều chỉnh bitstream và độ phân giải màu) và một level sẽ xác định một số tiêu chí bắt buộc cho các tham số của bức ảnh (ví dụ như kích thước và số lượng bit) 27 MPEG 4 trở thành một tiêu chuẩn cho nén ảnh kỹ thuật truyền hình số, các ứng dụng về đồ họa, video tương tác hai chiều(games, videoconferencing) và các ứng dụng multimedia tương ... đoan: Đề tài Tìm hiểu thuật toán nén liệu xây dựng chương trình ứng dụng kết tìm hiểu nghiên cứu riêng em hướng dẫn Th.s Trần Tuấn Vinh Khóa luận hoàn toàn không chép từ tài liệu có sẵn công... Tổng quan nén liệu 1.2 Tổng quan loại mã nén 1.2.1 .Các chương trình nén hoạt động nào? 1.3 Phân loại ứng dụng 13 CHƯƠNG 16 CÁC PHƯƠNG PHÁP NÉN DỮ LIỆU ... loại liệu khác - Hình ảnh minh họa chương trình sử dụng thuật toán Huffman Run-length CHƯƠNG SƠ LƯỢC NÉN DỮ LIỆU 1.1 Tổng quan nén liệu Trong khoa học máy tính lí thuyết thông tin, nén liệu trình

Ngày đăng: 09/11/2015, 14:04

Từ khóa liên quan

Mục lục

  • LỜI CẢM ƠN

  • LỜI CAM ĐOAN

  • DANH SÁCH CÁC HÌNH

  • MỤC LỤC

  • MỞ ĐẦU

  • CHƯƠNG 1

  • SƠ LƯỢC NÉN DỮ LIỆU

    • 1.1. Tổng quan về nén dữ liệu

    • 1.2. Tổng quan các loại mã nén

      • 1.2.1. Các chương trình nén hoạt động như thế nào?

      • 1.3. Phân loại và ứng dụng

      • CHƯƠNG 2

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

        • 2.1. Phương pháp nén không tổn hao

          • 2.1.1. Mô hình thống kê

          • 2.1.2. Mô hình từ điển

          • 2.2. Phương pháp nén tổn hao

          • CHƯƠNG 3

          • XÂY DỰNG CHƯƠNG TRÌNH NÉN DỮ LIỆU

          • BẰNG MÃ HUFFMAN VÀ RUN-LENGTH

            • 3.1. Đặc điểm của các thuật toán nén dữ liệu

            • 3.2. Phân tích thuật toán

              • 3.2.3.1. Biến thể vào Run-length Encoding

              •  Nếu các dòng dữ liệu unencoded chứa một giá trị ký tự bằng giá trị cờ, nó phải được nén vào một gói mã hóa 3-byte. Điều này ngăn cản các giá trị cờ sai lầm xảy ra trong dòng dữ liệu nén.

              • 3.2.3.2. Gói Replication dọc

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

Tài liệu liên quan