1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu về các phương pháp nén không mất thông tin

15 1,5K 3
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Tìm hiểu về các phương pháp nén không mất thông tin
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại tiểu luận
Thành phố Hà Nội
Định dạng
Số trang 15
Dung lượng 82,21 KB

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

Nội dung

Thông tin là những tính chẩt xác định của vật chất mà con người (hoặc hệ thống kĩ thuật ) nhận được từ thể giới vật chất bên ngoài hoặc từ những quá trình xảy ra trong bản thân nó.Về mặt thống kê người ta đưa ra một số khái niệm về thông tin như sau:• Ðiều gì đã xác định (khằng định được, đoán chắc được, không bấp bênh, . . .) thì không có thông tin và người ta nói rằng lượng thông tinchửa trong điều ấy bằng không• Ðiều gì không xác định (bất định) thì điều đó có thông tin và lượng thông tin chứa trong nó khác không. Nếu ta càng không thể ngờ tới điều ấy thì thông tin điều đó mang lại cho ta càng lớn.Tóm lại, ta nhận thẩy khái niệm thông tin gắn liền với sự bất định của đối mọng ta cần xét. Có sự bất định về một đối tượng nào đó thì những thông báo về đối tượngđó sẽ cho ta thông tin. Khi không có sự bất định thì sẽ không có thông tin về đối tượng đó. Như vậy, khái niệm thông tin chỉ là mộtcách diễn đạt khác đi của khái niệm sự bầt định

Trang 1

Tìm hiểu về các phương pháp nén

không mất thông tin

MỤC LỤC

I

Khái Niệm Thông Tin 3

II Tổng Quan Về nén Dữ Liệu 3

1 Nén dữ liệu: 3

2 Các chương trình nén hoạt động như thế nào 4

3 Tốc độ và tỷ lệ nén 4

4 Các loại dư thừa dữ liệu 5

5 Các tiêu chuẩn lựa chọn các phương pháp nén dữ liệu: 6

III Nén Không Mất Thông Tin : 6

IV Các phương pháp nén không mất thông tin 7

1 Phương pháp nén Shannon-Fano: 7

2 Phương pháp Huffman 8

3 Phương pháp thay thế RLE( Run Length Encoding) 10

4 Phương pháp LZW 11

5 Bảng So Sánh Tỉ Lệ Nén 15

V Kết Luận 16

VI Tài Liệu Tham Khảo 16

Trang 2

NÉN KHÔNG MẤT THÔNG TIN

LOSSLESS COMPRESSION

I Khái Niệm Thông Tin

Thông tin là những tính chẩt xác định của vật chất mà con người (hoặc hệ thống kĩ thuật ) nhận được từ thể giới vật chất bên ngoài hoặc từ những quá trình xảy ra trong bản thân nó

Về mặt thống kê người ta đưa ra một số khái niệm về thông tin như sau:

 Ðiều gì đã xác định (khằng định được, đoán chắc được, không bấp bênh, ) thì không có thông tin và người ta nói rằng lượng thông tin chửa trong điều ấy bằng không

 Ðiều gì không xác định (bất định) thì điều đó có thông tin và lượng thông tin chứa trong nó khác không Nếu ta càng không thể ngờ tới điều ấy thì thông tin điều đó mang lại cho ta càng lớn

Tóm lại, ta nhận thẩy khái niệm thông tin gắn liền với sự bất định của đối mọng ta cần xét Có sự bất định về một đối tượng nào đó thì những thông báo về đối tượngđó sẽ cho ta thông tin Khi không có sự bất định thì sẽ không có thông tin về đối tượng đó Như vậy, khái niệm thông tin chỉ là một cách diễn đạt khác đi của khái niệm sự bầt định

Trước khi nhận tin (được thông báo) về một đối tượng nào đẩy thì vẫn còn

sự bất định về đối tượng đó, tức là độ bất định về đối tượng đó khác không (có thể lớn hay nhỏ) Sau khi nhận tin (đã được hiếu rõ hoặc hiểu một phần)

về đối tượng thì độ bầt định của nó giảm đến mức thấp nhất, hoặc hoàn toàn mất Như vậy, “ thông tin là độ bầt định đã bị thủ tiêu” hay nói một cách khác “ làm giám độ bất định kết quả cho ta thông tin”

II Tổng Quan Về nén Dữ Liệu

1 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

Trang 3

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ú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 kính 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ớ, hàng thô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 thì, 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 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ột chương trình nén dữ liệu phụ thuộc nhiều yếu tế như 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 hiện quá trình nén và giải nén dữ liệu 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 tuy nhiên có thể mô

tả bằng hình dưới đây

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

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ặp lạ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 hà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: File chương trình (.EXE hoặc COM) nén được ít hơn

3 Tốc độ và tỷ lệ 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án thì hoạt động của chúng cũng khác nhau Mỗi hãng triển khai thuật toán mỗi kiểu để dung hòa hai vấn đề: thời gian và tỷ lệ nén Chương trình PKZIP thường trộ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ác hơn Tính ổn định của các chương trình nén cũng là

Trang 4

đ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 luu ý

là các loại file nén không tương thích với nhau, tức là nếu file nén cho người khác thì người đó cũng cần phải có chương trình thích hợp mới giải nén được Tuy nhiên để giải quyết vấn đề này các chương trình nén đều cho phép tạo file nén tự tời, tức là file nén ở dạng chương trình cài đặt, khi chạy chúng sẽ tự tời ra

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 Nhìn chung người ta định nghĩa tỷ lệ nén như sau:

Tỷ lệ nén= kích thước dữ liệu thu được sau nén/ kích thước dữ liệu gốc x 100%

4 Các loại dư thừa dữ liệu

Như trên ta đã nói, nén nhằm mục đích giảm kích thước dữ liệu các 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 các phương pháp nén dữ liệu khác nhau Nói một cachs 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 Người ta coi có 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 xuất cao được thay thế bởi một từ

mã nhị phân có số bít nhỏ hơn Đấy chính là bản chất của mã hóa Huffman

 Sự lặp lại của các kí tự

Trong một số tình huống như trong ảnh, 1 ký hiệu ( bit”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 bít 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,

Trang 5

LZ78 Năm 1984, Terry Welch đã cải tiến hiệu quả hơn và đặt tên

là LZW (Lempel-liz- Welch)

 Do sự phụ thuộc lẫn nha 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 một lưới 2 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ác đánh giá độ dư thùa như trên hoàn toàn mang tính trực quan nhằm biểu thị 1 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 đặt trưng biểu diễn ảnh như biên ảnh hay vùng đồng nhất Do vậy, có 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

5 Các tiêu chuẩn lựa chọn các phương pháp nén dữ liệu:

o Tỷ lệ nén: tỷ lệ giữa kích thước khối thông tin sau khi nén với kích

thước trước khi nén

o Chất lượng nén:

- Nén mất thông tin

- Nén không mất thông tin

- Chất lượng cảm nhận thông tin

o Tốc độ của các thuật toán:

- Tốc độ nén

- Tốc độ giải nén

III Nén Không Mất Thông Tin :

Tổng quan:

- Phương pháp nén không mất thông tin cho phép khôi phục lại hoàn toàn khối dữ liệu ban đầu qua các chu trình nén, giải nén

Trang 6

- Đòi hỏi phải có thiết bị lưu trữ và đường truyền lớn hơn phương pháp nén mất thông tin

- Các thuật toán của nén không mất dữ liệu dựa vào việc thay thế một nhóm các ký tự trùng lặp bởi một nhóm các ký tự đặc biệt khác ngắn hơn không quan tâm tới ý nghĩa của dữ liệu

Thuật toán nén không mất thông tin:

Có 3 dạng:

o Các thuật toán mã hoá thống kê:

- Các thuật toán này hoạt động dựa trên tần suất xuất hiện của các ký tự mã trong khối thông tin Giảm số lượng bit dùng để biểu diễn các ký tự mã xuất hiện thường xuyên

- Tăng số lượng bit dùng để biểu diễn những ký tự mã ít xuất hiện

o Các thuật toán dựa trên sự thay thế các chuỗi:

các thuật toán này nén các chuỗi chứa các ký tự đồng nhất

o Các thuật toán dựa trên từ điển:

- Giảm số lượng các bit dùng để chứa các từ xuất hiện thường xuyên

- Tăng số lượng các bit để chứa các từ xuất hiện thưa thớt

IV Các phương pháp nén không mất thông tin

1 Phương pháp nén Shannon-Fano:

Nguyên lý:

- Các từ mã có độ dài biến thiên

- Độ dài mã tỷ lệ nghịch với xác suất xuất hiện của ký tự

- Từ mã được giải mã một cách duy nhất

Thuật toán:

- Xác định các xác suất xuất hiện của các ký tự trong bản tin

- Sắp xếp các ký tự theo trình tự xác suất xuất hiện giảm dần

Trang 7

- Phân chia các ký tự thành hai nhóm có tổng xác suất xấp xỉ(nếu dùng mã nhị phân thì phân chia làm hai nhóm, nếu mã

cơ số m thì chia làm m nhóm)

- Gán cho mỗi nhóm ký hiệu mã 0 hoặc 1

- Tiếp tục phân chia cho tới khi trong các nhóm chỉ chứa một

ký hiệu

- Từ mã cho ký hiệu là tổ hợp của các ký hiệu của các nhóm chứa ký hiệu tính theo thứ tự từ lần tạo nhóm đầu tiên

Ưu nhược điểm.

o Nhược điểm:

Thuật toán Shanon fano có hệ số nén khá thấp Ưu điểm: Thuật toán khá đơn giản

Ví dụ mô tả thuật toán :

Cho thông điệp :

“BBCAACADBDCADAEEEAACDBACADCBAEABEABEA AA”

Ta có :

- Thống kê lượng tin :

Số lần xuất hiện 15 7 6 5 6

- Mã Hóa :

Số lượng bit dùng để mã hóa chuỗi mã:

30 + 14 + 12 +18 + 15= 89 bit

Số lượng bít nếu dùng ASCII :

(15 + 7 + 6 +5 + 6) x 8 = 312 bit

Tỷ lệ nén : 89/312 x100% = 28.5%

Trang 8

2 Phương pháp Huffman

Nguyên lý:

- Các từ mã có độ dài biến thiên

- Độ dài mã tỷ lệ nghịch với xác suất xuất hiện của ký tự

- Từ mã được giải mã một cách duy nhất

Thuật toán:

-Xây dựng danh sách các ký tự với xác suất xuất hiện giảm dần

- Các ký tự sẽ là các nút của cây Huffman

- Mã hoá bắt đầu với hai ký hiệu có xác suất nhỏ nhất Hai ký hiệu được hợp lại, hai nhánh được gán ký hiệu 0 hoặc 1

- Nút của hai nhánh được coi là một ký hiệu mới có xác suất xuất hiện bằng tổng hai xác suất xuất hiện của hai ký hiệu tạo

ra nút

- Tiếp tục quá trình trên với hai nút có xác suất xuất hiện nhỏ nhất

- Từ mã ứng với mỗi ký hiệu nguồn là tổ hợp của các ký hiệu

mã ở các nhánh tính từ gốc

Ưu nhược điểm:

o Nhược điểm:

- Mã Huffman chỉ thực hiện được khi biết được tần suất xuất hiện của các ký tư

- Mã Huffman chỉ giải quyết được độ dư thừa phân bố ký tư

- Huffman tĩnh đòi hỏi phải xây 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

o Ưu điểm:

Thuật toán tương đối đơn giản, đòi hỏi ít bộ nhớ, có thể xây dựng dựa trên các mảng bé hơn 64KB

Ví dụ mô tả thuật toán :

Trang 9

Cho thông điệp:

“BBCAACADBDCADAEEEAACDBACADCBAEABEABE AAA”

Ta có :

- Thống kê lượng tin :

Số lần xuất

hiện

- Mã Hóa :

Số lượng bit dùng để mã hóa chuỗi mã:

15 + 21 + 18 +15 + 18= 87 bit

Số lượng bít nếu dùng ASCII :

(15 + 7 + 6 +5 + 6) x 8 = 312 bit

Tỷ lệ nén : 87/312 x100% = 27.88%

3 Phương pháp thay thế RLE( Run Length Encoding)

Nguyên lý:

- Tối ưu hoá mã bằng cách thay thế các chuỗi ký tự giống nhau liên tiếp

- Ứng dụng trong các loại ảnh BMP, TIFF Các điểm ảnh liên tiếp có giá trị như nhau sẽ được thay thế bằng một điểm ảnh và chỉ rõ số lượng điểm

Các bước thuật toán:

- Tìm trong thông điệp những ký tự liên tiếp lặp lại

- Thay thế chuỗi ký tự đó bằng:

- Một ký tự đặc biệt chỉ việc nén

- Số lần lặp lại của ký tự

- Ký tự lặp lại được nén

Ví dụ mô tả thuật toán:

Trang 10

Cho thông điệp sau: “ABCCCCCCDDEEEE”

- Ta thấy:

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í n: đó được lặp lại Ta muốn nói rằng chuỗi này gồm 6 chủ C rồi 4 chữ E 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ực hiệ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 sau khi đc mã hóa có dạng: AB6CDD4E

- Tỷ lệ nén: 8/14 x100% = 57%

4 Phương pháp LZW

Nguyên lý:

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 cao trong dữ liệu 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ỗi con trong dũ liệu , 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ặp nhặ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ừ mã Như vậy độ dài lớn nhất của

từ mã là 12 bits (4096 = 2^12 ) Cấu trúc từ điển diễn biến như sau

Trang 11

255 255

256 256| Clear Code

257 257| End of Information

4095 Chuỗi mới 256: Mã xóa CC để khắc phục tình trạng mẫu

lặp lớn hơn 4096, nếu mẫu lặp lớn hơn 4096 thì

gọi CC để xây dựng từ điển cho phần tiếp theo

- 256 từ mà đầu tiên theo thử tư từ 0 255 chứa các số nguyên

từ 0 255 Đây là mã của 256 ký tư cơ bản trong hàng mà ASCII

- Từ mã thứ 256 chứa một mă đặc biệt là “mà xoá” (CC- Clear Code) Mục đích việc dùng mà xoá nhằm khắc phục tình trạng

số mẫu lặp trong ảnh lớn hơn 4096 Khi đó một ảnh được quan niệm là nhiều mảnh ảnh, và từ điển là một bộ từ điển gồm nhiều từ diền con Cử hêt một mànhĩănh người ta lại gửi một

mà xoá để báo hiệu kết thúc mành ảnh cũ, bắt đầu mành ảnh mới đồng thời khởi tạo lại từ điển cho mảnh ảnh mới Mã xoá

có giá trị là 256

- Từ mã thứ 257 chứa mã kết thúc thông tin (BOI - End of infomation) Mã này có giá trị là 257 Như chúng ta đã biết, một file ảnh GIF có thể có chửa nhiều ảnh Mỗi một ảnh sẽ được mà hoá rỉêng Chương trình giải mã sẽ lặp lại thao tác giải mã từng ảnh cho đến khi gặp mà kết thúc thông tin thì dừng lại

- Các từ mà còn lại (từ 258 đến 4095) chứa các mẫu thường lặp lại trong ảnh 512 phần từ đầu tiên của từ điền biều diễn bẳng 9 bit Các từ mà từ 512 đến 1023 biểu diễn bởi 10 bit, từ 1024 đến 2047 biều diễn bởi 11 bit và từ 2048 đến 4095 biếu diễn bởi 12 bit

 Nguyên tắc chung :

Trang 12

Nguyên tắc hoạt động của nó như sau:

- Một xâu kí tư là một tập hợp từ hai kí tư trở lên

- Nhớ tẩt cả các xâu kí đã gặp và gán cho nó một dấu hiệu (token) riêng

- Nếu lần sau gặp lại xâu kí tư đó, xâu kí tư sẽ được thay thể bằng đầu hiệu của nó Phần quan trọng nhất của phương pháp nén này là phải tạo một mảng rất lớn dùng để lưu giữ các xâu kí

tư đã gặp (Mảng này được gọi là "Từ điền") Khi các byte dữ liệu cần nén được đem đến, chúng liền được giữ lại trong một

bộ đệm chứa (Accumulator) và đem so sánh với các chuỗi đã có trong "từ điển" Nếu chuỗi dữ liệu trong bộ đệm chửa không có trong "từ điền" thì nó được bồ sung thêm vào "từ điển" và chỉ

số của chuỗi ở trong “từ điển" chính là đầu hiệu của chuỗi Nếu chuỗi trong bộ đệm chứa đã có trong "từ điển" thì đầu hiệu của chuỗi được đem ra thay

cho chuỗi ở dòng dữ liệu ra Có bốn qui tắc để thục hiện việc nén dữ liệu theo thuật toán LZW là:

Qui tắc l : 256 đầu hiệu đầu tiên được dành cho các kí tự

đơn

Qui tắc 2: Cố gắng so sánh với “từ điển" khi trong bộ

đệm chứa đã có nhiều hơn hai kí tư

Qui tắc 3: Các kí tự ở đầu vào (Nhận từ tập tin sẽ được

nén) được bổ sung vào bộ đệm chửa đến khi chuỗi kí tư trong bộ đệm chửa không có trong "từ điển"

Qui tắc 4: Khí bộ đệm chứa có một chuỗi mà trong "từ

điền" không có thì chuỗi trong bộ đệm chứa được đem

Ngày đăng: 22/08/2013, 01:52

HÌNH ẢNH LIÊN QUAN

5. Bảng So Sánh Tỉ Lệ Nén - Tìm hiểu về các phương pháp nén không mất thông tin
5. Bảng So Sánh Tỉ Lệ Nén (Trang 14)

TỪ KHÓA LIÊN QUAN

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

w