1. Trang chủ
  2. » Luận Văn - Báo Cáo

TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU NÉN DỮ LIỆU DẠNG VĂN BẢN SỐ (TEXT DATA)

30 778 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 235,67 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU NÉN DỮ LIỆU DẠNG VĂN BẢN SỐ (TEXT DATA) Trong khoa học máy tính và lí thuyết thông tin, 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ủa các phương pháp nào đó. Dựa theo nguyên tắc này giúptrá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.

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆ

-****** -TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU

Đề tài: “NÉN DỮ LIỆU DẠNG VĂN BẢN SỐ (TEXT DATA)”

Giảng viên: PGS.TS Trịnh Nhật Tiến

Học viên thực hiện: Hoàng Việt Hải

Ngày sinh: 07/07/1983

Mã HV: 13025199 Chuyên ngành: K20TDL&MMT Lớp MH: INT 6010 2

Điện thoại: 0982.568.151

0948.074.536

Hà Nội, 04/2014

Trang 2

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

Trong khoa học máy tính và lí thuyết thông tin, 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ùngmột hoặc kết hợp của các phương pháp nào đó Dựa theo nguyên tắc nàygiúptrá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 Nén dữ liệu giúp tiết kiệm các tài nguyên như dung lượng bộ nhớ, băngthông, thời gian Ngược lại, dữ liệu đã được nén cần phải được giải nén để đọc(thực thi, nghe, xem v.v…), quá trình này cũng đòi hỏi các tài nguyên nhất định.Một ví dụ điển hình là việc nén video đòi có thể đòi hỏi phần cứng đắt tiền đểquá trình giải nén đủ nhanh để ta có thể xem được Do đó việc thiết kế mộtchương trình nén dữ liệu phụ thuộc nhiều yếu tố như mức độ nén, độ méo (đốivới nén có tổn hao), tài nguyên hệ thống dùng để thực hiện quá trình nén và giảinén dữ liệu

I.2 TỔNG QUAN CÁC CHƯƠNG TRÌNH NÉN DỮ LIỆU

I.2.1 Nguyên tắc hoạt động của các chương trình nén

Nguyên tắc của các chương trình nén nói chung giống nhau: Tận dụng sự lặplại của dữ liệu, các chuỗi dữ liệu lặp lại được thay thế bởi con trỏ chung có độdài bé hơn Kỹ thuật này rất có hiệu quả đối với dữ liệu dạng text, bảng tính,hoặc file DBF (nén trên 70%), vì tính lặp lại của dữ liệu loại này cao: Filechương trình (.EXE hoặc COM) nén được ít hơn

I.2.2 Tốc độ và tỷ lệ nén của các chương trình nén

Ngay cả khi tất cả các chương trình nén file đều dùng chung một thuật toánthì hoạt động của chúng cũng khác nhau Mỗi hãng triển khai thuật toán mộtkiểu để dung hòa hai vấn đề: thời gian và tỷ lệ nén Chương trình PKZIP thườngtrội hơn các chương trình nén khác về mặt tốc độ, về mặt tỷ lệ nén, nhiều khi nócũng khá hơn Tính ổn định của các chương trình nén cũng là điều cần quan tâm.Các file nén nói chung rất ít khi bị hỏng Cũng cần lưu ý là các loại file nénkhông tương thích với nhau, tức là nếu gửi file nén cho người khác thì người đócần phải có chương trình thích hợp mới giải nén ra được Tuy nhiên để giải

Trang 3

quyết vấn đề này, cả 3 chương trình ARC + PLUS, LHA và PKZIP đều chophép tạo file nén tự bung - tức file nén ở dạng chương trình thực hiện, khi chạy

sẽ tự động bung ra, trên thị trường cũng bắt đầu xuất hiện chương trình chuyểnđổi từ dạng file nén này sang dạng file nén khác, ví dụ chương trình D'Compressfor Windows chuyển các 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ễnphí) nên được dùng khá rộng rãi Hạn chế hiện nay của chúng là giao diện ngườidùng không thuận tiện, thường phải gõ lệnh với nhiều tham số ở dấu nhắc củaDOS để thực hiện một công việc nào đó Cải tiến theo hướng này đang đượcthực hiện: ARC + PLUS có giao diện kiểu menu, PKZIP cũng đã có phần bổsung là PKZIP menu

Nhiều chương trình quản lý file trong DOS và trong Windows đã bắt đầudùng kỹ thuật nén Chương trình Magellan của 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 ra để dùng của các chương trình nénfile khá rườm rà, chính bởi lý do này mà các chương trình nén đĩa như Stackerhoặc Super Store được sử dụng tương đối rộng rãi Các chương trình nén đĩacũng hoạt động trên nguyên tắc giống như nén file, chỉ khác là chúng tự độngnén và bung mà người dùng không phải quan tâm đến Thời gian và tỷ lệ néncủa các chương trình nén loại này khác nhau Để bung 3,5 Mb dữ liệu, chươngtrình này hết 12 giây, chương trình khác 40 giây Tỷ số nén đối với file văn bảncũng khác: từ 2:1 đến 3:1 Tóm lại khi dùng chương trình nén đĩa, người dùngyên tâm là dung lượng trống của ổ cứng dường như tăng khoảng 2 lần

Việc bung và nén khi làm việc với file sẽ làm công việc chậm lại đôi chút.Đối với các file dữ liệu lớn, điều này thể hiện khá rõ Khi làm việc, các chươngtrình nén đĩa hoạt động ở dạng thường trú, bởi thế một mặt nó chiếm dụng bộnhớ RAM, một mặt có thể gây xung đột với các chương trình thường trú khác.Các chương trình nén file khi có sự cố chỉ hỏng một vài file, còn chương trìnhnén đĩa làm hỏng cả ổ đĩa Tuy điều này rất ít khi xảy ra nhưng nó cũng làm chonhiều người e ngại không dám dùng

Trang 4

Để cài đặt chương trình nén đĩa cần phân chia lại ổ cứng vì máy tính cầnđược khởi động bằng đĩa nén trước khi chương trình nén hoạt động Nếu dùngWindows thì phần không nén cần khá lớn (thông thường cần dành 10 Mb chovùng không nén, chỉ nén vùng đĩa còn lại)

Một điều có thể làm người dùng đau đầu là phải quyết định tỷ lệ nén là baonhiêu Với tỷ lệ nén 10:1 chẳng hạn, chương trình nén sẽ dành nhiều "con trỏ"

để trỏ đến các dữ liệu, mỗi con trỏ chiếm 2 byte, khi đó dễ xảy ra trường hợpkhông đủ con trỏ, chương trình báo đĩa đầy mà thực ra không phải như vậy Cuối cùng, việc loại bỏ chương trình nén đĩa khi đã cài đặt cũng là một vấn

đề hơi phiền toái Nhiều chương trình - chẳng hạn Double Density có chức năngloại bỏ Đối 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ộngdung 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ápnén Tuy nhiên, về cách đánh giá và các kết quả công bố trong các tài liệu cũngcần được quan tầm xem xét Nhìn chung, người ta định nghĩa tỷ lệ nén như sau :

Tỷ lệ nén = 1/ r x %

Với r là tỷ số nén được định nghĩa : r = kích thước dữ liệu gốc / kích thước

dữ liệu thu được sau nén Như vậy hiệu suất của nén là : ( 1 - tỷ lệ nén) x %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 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 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 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 đườngtruyền không

Trang 6

I.2.3 Các loại dư thừa dữ liệu mà các chương trình nén

t n dụng ận dụng.

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 choviệ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ácphươ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ácnhau Có 4 kiểu dư thừa chính được trình bày ở các mục sau đây

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ã hoá dữ liệu một cách cô đọng hơn Các ký tự cótần xuất xuất hiện cao hơn được thay thế bởi một từ mã nhị phân với số bít nhỏ;ngược lại các dãy có tần xuất xuất hiện thấp sẽ được mã hóa bởi từ mã có nhiềubít hơn Đây chính là bản chất của phương pháp mã hoá Huffman hay Shannon-Fano

Trong một số tình huống như trong ảnh, 1 ký hiệu (bít "0" hay bít "1") đượclặ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ã hóa Phươngpháp mã hoá kiểu này có tên là mã hóa loạt dài RLC (Run Length Coding)

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ã hoá bởi ít bít hơn Đây là cơ sở của phương pháp mã hoá 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) Thuật toán nén dữ liệu dựa vào mẫu sửdụng tần suất hiệu quả phải kể đến phương pháp nén dữ liệu của Shannon-Fano

và Huffman

Do sự phụ thuộc lẫn nhau của dữ liệu, đôi khi biết được ký hiệu (giá trị) xuấthiệ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 một lưới haichiều, một số điểm ở hàng dọc trong một khối dữ lệu lại xuất hiện trong cùng vị

Trang 7

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ãhoá 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ểuthị 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 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ựavào biến đổi ảnh hay dựa vào biểu diễn ảnh

I.3 PHÂN LOẠI CÁC CHƯƠNG TRÌNH NÉN

I.3.1 Dựa vào nguyên lý nén:

Theo cách này người ta phân thành 2 họ:

Trong phương pháp nén không tổn hao, dữ liệu được nén sau khi giải nén sẽgiống y như ban đầu Trong đó thông dụng nhất là thuật toán 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 này có tốc độ của quá trình nén chậm.DEFLATE được dùng trong PKZIP, GZIP, và PNG LZW (Lemple-Zip-Welch)được dùng trong định dạng file GIF Hai biến thể của thuật toán LZ cũng đángchú ý là thuật toán 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 trong 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 để nén các file như file thựcthi, file văn bản, word, excel, v.v… 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:

Trang 8

 Burrows and Wheeler transform (BWT).

nén file gồm nhiều bước)

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ẫncò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ườinê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ầu như không thay đổi

Trong thực tế, các file hình ảnh âm thanh hay là video được lưu trữ trên máytính đều đã được nén có tổn hao để tiết kiệm dung lượng và băng thông Đối lậpvớ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ấtlượ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ã huffmanhoặ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ếptheo 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 trongnhiề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énkhông tổn hao được biết, trong khi vẫn đảm bảo được chất lượng Nén tổn haothường được sử dụng để nén ảnh, âm thanh, video Âm thanh có thể nén với tỉ lệ

Trang 9

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ớichất lượng giảm ít.

I.3.2 Dựa vào cách thức thực hiện nén

Theo cách này, người ta cũng phân thành hai họ:

thuộc họ này thực hiện nén bằng cách tác động trực tiếp lên việc lấy mẫu củaảnh trong miền không gian

tác động lên sự biến đổi của ảnh gốc mà không tác động trực tiếp như họtrên

Trang 10

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

DẠNG VĂN BẢN SỐII.1 PHƯƠNG PHÁP MÔ HÌNH THỐNG KÊ

II.1.1 Thuật toán Shannon-Fano:

- Bước 1: Sắp xếp các ký tự theo thứ tự giảm dần

- Bước 2: Tính xác suất

- Bước 3: Đệ quy làm hai phần, mỗi phần có tổng xác suất gần bằngnhau Mã hoá phần trên bằng bit 0 (hoặc bit 1), phần dưới bằng bit1(hoặc bit 0)

- Bước 4: Vẽ sơ đồ cây

- Bước 5: Tính Entropy, số bits mã hoá trung bình và số bit mã hoáthông thường

Thống kê lượng tin:

Mã hóa lượng tin:

II.1.2 Thuật toán Huffman

Thuật toán Huffman có ưu điểm là hệ số nén tương đối cao, phương phápthực hiện tương đối đơn giản, đòi hỏi ít bộ nhớ, có thể xây dựng dựa trên cácmảng bé hơn 64KB Nhược điểm của nó là phải chứa cả bảng mã vào tập tin nénthì phía nhận mới có thể giải mã được do đó hiệu suất nén chỉ cao khi ta thựchiện nén các tập tin lớn

Trang 11

 Nguyên lý:

Nguyên lý của phương pháp Huffman là mã hóa các bytes trong tệp

dữ liệu nguồn bằng biến nhị phân Nó tạo mã độ dài biến thiên là một tập hợpcác bits Đây là phương pháp nén kiểu thống kê, những ký tự xuất hiện nhiềuhơn sẽ có mã ngắn hơn (gần giống Shannon-Fano)

- Bước 1: Đọc lần lượt từng bit trong tập tin nén và duyệt cây nhịphân đã được xác định cho đến khi hết một lá Lấy ký tự ở lá đó ghi

ra tệp giải nén

- Bước 2: Trong khi chưa hết tập tin nén thì quay lại thực hiện bướcmột, ngược lại thì thực hiện bước tiếp theo

- Bước 3: Khi hết tập tin, kết thúc thuật toán

II.1.3 Thuật toán Run-length:

Loại dư thừa đơn giản nhất trong một tập tin là các đường chạy dài gồm các

kí tự lặp lại, điều này thường thấy trong các tập tin đồ họa bitmap, các vùng dữliệu hằng của các tập tin chương trình, một số tập tin văn bản

AAAABBBAABBBBBCCCCCCCCDABCBAAABBBBCCCD

Chuỗi này có thể được mã hoá một cách cô đọng hơn bằng cách thay thếchuỗi kí tự lặp lại bằng một thể hiện duy nhất của kí tự lặp lại cùng với một biếnđếm số lần kí tự đó được lặp lại Ta muốn nói rằng chuỗi này gồm bốn chữ A

Trang 12

theo sau bởi ba chữ B rồi lại theo sau bởi hai chữ A, rồi lại theo sau bởi năm chữB Việc nén một chuỗi theo phương pháp này được gọi là mã hoá độ dài loạt.Khi có những loạt dài, việc tiết kiệm có thể là đáng kể Có nhiều cách để thựchiện ý tưởng này, tuỳ thuộc vào các đặc trưng của ứng dụng (các loạt chạy cókhuynh hướng tương đối dài hay không ? Có bao nhiêu bit được dùng để mã hoácác kí tự đang được mã ?).

Nếu ta biết rằng chuỗi của chúng ta chỉ chứa các chữ cái, thì ta có thể mãhoá biến đếm một cách đơn giản bằng cách xen kẻ các con số với các chữ cái

Vì vậy chuỗi kí tự trên được mã hoá lại như sau:4A3BAA5B8CDABCB3A4B3CD

Ở đây "4A" có nghĩa là "bốn chữ A" Chú ý là không đáng để mã hoá cácloạt chạy có độ dài 1 hoặc 2 vì cần đến hai kí tự để mã hoá

Ðối với các tập tin nhị phân một phiên bản được tinh chế của phương phápnày được dùng để thu được sự tiết kiệm đáng kể Ý tưởng ở đây là lưu lại các độdài loạt, tận dụng sự kiện các loạt chạy thay đổi giữa 0 và 1 để tránh phải lưuchính các số 0 và 1 đó Ðiều này giả định rằng có một vài loạt chạy ngắn (Ta tiếtkiệm các bit trên một loạt chạy chỉ khi độ dài của đường chạy là lớn hơn số bitcần để biễu diễn chính nó trong dạng nhị phân), nhưng khó có phương pháp mãhoá độ dài loạt nào hoạt động thật tốt trừ phi hầu hết các loạt chạy đều dài

Việc mã hoá độ dài loạt cần đến các biễu diễn riêng biệt cho tập tin và chobản đã được mã hoá của nó, vì vậy nó không thể dùng cho mọi tập tin, điều này

có thể hoàn toàn bất lợi, ví dụ, phương pháp nén tập tin kí tự đã được đề nghị ởtrên sẽ không dùng được đối với các chuỗi kí tự có chứa số Nếu những kí tựkhác được sử dụng để mã hoá các số đếm, thì nó sẽ không làm việc với cácchuỗi chứa các kí tự đó Giả sử ta phải mã hoá bất kì kí tự nào từ một bảng chữcái cố định bằng cách chỉ dùng các kí tự từ bảng chữ cái đó Ðể minh hoạ, giả sử

ta phải mã hoá bất kì một chuỗi nào từ một chữ cái đó, ta sẽ giả định rằng ta chỉ

có 26 chữ cái trong bảng chữ cái (và cả khoảng trống) để làm việc

Ðể có thể dùng vài chữ cái để biểu diễn các số và các kí tự khác biểu diễncác phần tử của chuỗi sẽ được mã hoá, ta phải chọn một kí tự được gọi là kí tự

Trang 13

"Escape" Mỗi một sự xuất hiện của kí tự đó báo hiệu rằng hai chữ cái tiếp theo

sẽ tạo thành một cặp (số đếm, kí tự) với các số đếm được biểu diễn bằng cáchdùng kí tự thứ i của bảng chữ cái để biểu diễn số i Vì vậy, chuỗi ví dụ củachúng ta sẽ được biểu diễn như sau với Q được xem là các kí tự

Escape"QDABBBAABQHCDABCBAAAQDBCCCD

Tổ hợp của kí tự "Escape", số đếm và một kí tự lặp lại được gọi là một dãyEscape Chú ý rằng không đáng để mã hoá các đường chạy có chiều dài ít hơnbốn kí tự, vì ít nhất là cần đến ba kí tự để mã hoá bất kì một loạt chạy nào

Trong trường hợp bản thân kí tự "Escape" xuất hiện trong dãy kí tự cần mãhoá ta sử dụng một dãy "Escape" với số đếm là 0 (kí tự space) để biểu diễn kí tự

"Escape" Như vậy trong trường hợp kí tự "Escape" xuất hiện nhiều thì có thểlàm cho tập tin nén phình to hơn trước

Các loạt chạy dài có thể được cắt ra để mã hoá bằng nhiều dãy Escape, ví dụ,một loạt chạy gồm 51 chữ A sẽ được mã hoá như QZAQYA bằng cách dùngtrên

Phương pháp mã hoá độ dài loạt thường được áp dụng cho các tập tin đồ hoạbitmap vì ở đó thường có các mảng lớn cùng màu được biểu diễn dưới dạngbitmap là các chuỗi bit có đường chạy dài Trên thực tế, nó được dùng trong cáctập tin PCX, RLE

II.2 MÔ HÌNH TỪ ĐIỂN

II.2.1 Thuật toán LZ78 (Lempel - Ziv – 1978)

Là một thuật toán nén được phát minh bởi Lempel - Zip vào những năm

1977 và 1978

Thay vì thông báo vị trí đoạn văn lặp lại trong quá khứ, mã LZ78 đánh số tất

cả các đoạn văn sao cho mỗi đoạn ghi nhận số hiệu đoạn văn lặp lại trong quákhứ cộng với một ký tự mà nó làm cho đoạn đó khác với đoạn trong quá khứ.Như vậy mỗi đoạn mới là một đoạn ký tự trong quá khứ cộng với một ký tựtrong quá khứ Chính vì thế đoạn mới khác với đoạn cũ trong quá khứ

Ví dụ: Giả sứ ta có đoạn văn bản sau:” aaabbabaabaaabab”

Theo thuật toán LZ78 thì chúng được phân đoạn như sau:

Trang 14

Như vậy bản nén của chúng ta là: (0,a); (1,a); (0,b); (3,a); (4,a); (5,a); (4,b)

Đọc tiếp ký tự tiếp theo w:= ww+ch;

If w thuộc từ điển then ww:=w;

Bước 1: Đọc thông tin về từ điển đã được lưu trong tệp nén, tl:=false;

Bước 2: while not eof(f) do

Trang 15

Ghi s ra tệp giải nén Thêm s vào từ điển End

khá tốt, có thời gian chạy chương trình tương đối nhanh tuy nhiên khảnăng tiết kiệm chưa được khai thác

II.2.2 Thuật toán LZW (Lempel - Zip - Welch)

Là một thuật toán nén được phát minh bởi Lempel - Zip và Welch

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ệncao trong ảnh Từ điển là tập hợp những cặp từ vựng và nghĩa của nó Trong đó,

từ vựng sẽ là các từ mã được sắp xếp theo thứ tự nhất định Nghĩa là một chuỗicon trong dữ liệu ảnh Từ điển đượ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 rằng 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ậpnhật 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ớ 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 từ

Ngày đăng: 19/10/2014, 17:01

HÌNH ẢNH LIÊN QUAN

SƠ ĐỒ CỦA BỘ MÃ HOÁ VÀ GIẢI MÃ DÙNG MPEG-2 - TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU NÉN DỮ LIỆU DẠNG VĂN BẢN SỐ (TEXT DATA)
2 (Trang 23)
Hình 2. Phân lớp mã hóa MPEG 1 - TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU NÉN DỮ LIỆU DẠNG VĂN BẢN SỐ (TEXT DATA)
Hình 2. Phân lớp mã hóa MPEG 1 (Trang 25)
Hình 3. Các mẫu Audio - TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU NÉN DỮ LIỆU DẠNG VĂN BẢN SỐ (TEXT DATA)
Hình 3. Các mẫu Audio (Trang 27)
Hình 4. Kiến trúc 3 lớp của MPEG-1 - TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU NÉN DỮ LIỆU DẠNG VĂN BẢN SỐ (TEXT DATA)
Hình 4. Kiến trúc 3 lớp của MPEG-1 (Trang 27)
Hình 7. Sơ đồ mã hóa và giải mã MPEG 2 - TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU NÉN DỮ LIỆU DẠNG VĂN BẢN SỐ (TEXT DATA)
Hình 7. Sơ đồ mã hóa và giải mã MPEG 2 (Trang 30)
Hình 6. Cấu trúc khung MPEG 2 - TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU NÉN DỮ LIỆU DẠNG VĂN BẢN SỐ (TEXT DATA)
Hình 6. Cấu trúc khung MPEG 2 (Trang 30)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w