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

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

35 1,7K 9

Đ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 35
Dung lượng 431 KB

Nội dung

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.

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

Trang 2

MỤC LỤC

LỜI MỞ ĐẦU 3

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

1.1 Một số khái niệm 4 1.2 Mục đích của nén dữ liệu 5 1.3 Các loại dư thừa dữ liệu 6 1.4 Một số vấn đề gặp phải khi nén dữ liệu 7 1.5 Quá trình nén và giải nén 7 CHƯƠNG 2: CÁC PHƯƠNG PHÁP NÉN DỮ LIỆU 9

2.1 Phân loại các phương pháp nén 9 2.1.1 Cách thứ nhất dựa vào nguyên lý nén 9

2.1.2 Cách thứ hai dựa vào cách thức thực hiện nén 11

2.1.3 Cách thứ ba dựa vào lý thuyết mã hóa 11

2.2 Một số phương pháp nén 11 2.2.1 Phương pháp mã hóa Shannon – Fano 11

2.2.2 Phương pháp mã hóa Huffman 12

2.2.3 Phương pháp mã hóa RLE 16

2.2.4 Phương pháp mã hóa LZ78 18

2.2.5 Phương pháp mã hóa LZW 19

CHƯƠNG 3: CHƯƠNG TRÌNH ỨNG DỤNG 23

3.1 Giao diện chương trình 23

3.2 Một số thủ tục chính trong chương trình 23

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

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

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

TÀI LIỆU THAM KHẢO 34

Trang 3

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àmcho 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 tinlạ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ầmcao mới Mọi ngành, nghề đều phải ứng dụng CNTT một cách triệt để để phát triểnmộ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 tathấ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áttriể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áttriể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ốiliê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áttriể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ềnthông

Trang 4

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ạidò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ệuban đầ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àibá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ênngà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 quantâ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ươngphá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à

Trang 5

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ảmlượ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ìnhné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ươngtự

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êncạ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ệunhư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ácthiế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ĩnhvự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áytí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 đồngnghĩ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ạngthì 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ệuquả 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ữnghì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 nhanhhơ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ưutrữ í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ằmmục đích giảm chi phí cho người sử dụng

Trang 6

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 tintrê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ácphươ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ệukhá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ủaphươ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ởidã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óakiể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 doLempel – 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ấ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 dạng lưới haichiề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í

Trang 7

ở 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àobiể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ácnhau, 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ẫunhiê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ươngphá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 đượcthô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ệngiả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àocá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ápné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 haykhô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:

Trang 8

Sơ đồ nén và giải nén dữ liệu

Trang 9

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

2.1 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ệugố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ổnhao 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ớtcá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)

 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à

Trang 10

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ụngtí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ấpnhậ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énkhô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ấtnhanh 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ườnghợ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 đượcbiế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ônggiả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

ta thường gọi là TIFF

3 MPEG (Moving Pictures Experts Group): Phương pháp nén tổn hao dùng chovideo MPEG -1 dùng cho CD – ROM và video CD MPEG -2 nén video chotruyề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ầnchuẩ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

Trang 11

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 ảnhnén bằng JPEG

7 Window Media Technology: Sản phẩm của Microsoft, cho chất lượng âmthanh tốt hơn MP3 đối với tập tin cùng kích thước, cũng như chất lượng videogầ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

 Phương pháp không gian (Spatial Data Compression): các phương pháp 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 trongmiền không gian

 Phương pháp sử dụng biến đổi (Transform Coding): các phương pháp tác độnglên sự biến đổi của ảnh gốc mà không tác động trực tiếp như cách phân loại ởtrên

2.1.3 Cách thứ ba dựa vào lý thuyết mã hóa

 Các phương pháp nén thế hệ thứ nhất: gồm các phương pháp mà mức độ tínhtoán là đơn giản như việc lấy mẫu, gán từ mã

 Các phương pháp nén thế hệ thứ hai: gồm các phương pháp dựa vào mức độ bãohòa của tỷ lệ nén bằng cách sử dụng các phép toán tổ hợp đầu ra một cách hợp lýhoặc sử dụng biểu diễn ảnh như: phương pháp kim tự tháp Laplace, phươngpháp dựa vào vùng gia tăng, phương pháp tách hợp

2.2 Một số phương pháp nén

2.2.1 Phương pháp mã hóa Shannon – Fano

Vào những năm 1940, những năm đầu phát triển của ngành Lý thuyết thông tin,

ý tưởng phát triển một phương pháp mới để mã hóa dữ liệu đã bắt đầu xuất hiện, saukhi 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êncứu Claude Shnnon và R.M Fano đưa ra gần như đồng thời Kỹ thuật mã hóa này dựatrên tần suất xuất hiện của mỗi ký tự trong nguồn số liệu cần được mã hóa Từ bảngchứa các tần suất đó, bảng mã sẽ được xây dựng dựa vào các tính chất quan trọng sau:

- Các mã khác nhau có các bít biểu diễn khác nhau

- Ký tự có tần suất xuất hiện càng cao thì mã càng ngắn (ít bít) và ngược lại

Trang 12

- Các mã có độ dài bit khác nhau.

 Thuật toán:

Các bước thực hiện mã hóa theo thuật toán Shannon – Fano:

- Bước 1: Thiết lập bảng 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 2 phần, mỗi phần có tổng xác suất gần bằng nhau Mãhóa phần trên bằng bit 0 ( hoặc bit 1), phần dưới bằng bit 1 ( hoặc bit 0)

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

- Bước 5: Tính Entropy, số bít mã hóa trung bình và số bít mã hóa thôngthường

Trang 13

được thực hiện bằng cách duyệt tuần tự tệp gốc từ đầu đến cuối Việc xử lý ở đâytính theo bit Trong phương pháp này, người ta gán cho các ký tự có tần suất caomột từ mã ngắn, các ký tự có tần suất thâp một từ mã dài Nói cách khác, các ký tự

có tần suất càng cao được gán mã càng ngắn và ngược lại Rõ ràng với cách thứcnày, ta đã làm giảm chiều dài trung bình của từ mã bằng cách dùng chiều dài biếnđổi Tuy nhiên, trong một số tình huống khi tần suất là rất thấp, ta có thể không thuđược lợi một chút nào, thậm chí còn bị thiệt một ít bit

Thuật toán nén

Thuật toán gồm 2 bước chính:

- Bước 1: tính tần suất của các ký tự trong dữ liệu gốc

Duyệt tệp gốc một cách tuần tự từ đầu đến cuối để xây dựng bảng mã Tiếpsau đó là sắp xếp lại bảng mã theo thứ tự tần suất giảm dần

- Bước 2: mã hóa

Duyệt bảng tần suất từ cuối lên đầu để thực hiện ghép 2 phần tử có tần suấtthấp nhất thành một phần tử duy nhất Phần tử này có tần suất bằng tổng 2 tầnsuất thành phần Tiến hành cập nhật lại bảng và đương nhiên loại bỏ 2 phần

tử đã xét Quá trình được lặp lại cho đến khi bảng chỉ còn 1 phần tử Quátrình này gọi là quá trình tạo cây mã Huffman vì việc tập hợp được tiến hànhnhơ một cây nhị phân với 2 nhánh Phần tử có tần suất thấp ở bên phải, phần

tử kia ở bên trái Với cách tạo cây này, tất cả các bit dữ liệu/ ký tự là nút lá,các nút trong là các nút tổng hợp Sau khi cây đã tạo xong, người ta tiến hànhgán mã cho các nút lá Việc mã hóa rất đơn giản: mỗi lần xuống bên phải tathêm 1 bit “1” vào từ mã, mỗi lần xuống bên trái ta thêm 1 bit “0” Tất nhiên

có thể làm ngược lại, chỉ có giá trị mã thay đổi còn tổng chiều dài là khôngđổi Cũng chính vì lý do này mà cây có tên gọi là cây mã Huffman

Quá trình giải nén tiến hành theo chiều ngược lại khá đơn giản Người ta cũngphải dựa vào bảng mã tạo ra trong giai đoạn nén

Trang 15

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 nhị phân đã đượcxá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ì thực hiện bước một, ngược lại thìthực hiện bước 3

Nhược điểm:

- Mã Huffman chỉ thực hiện được khi biết 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

Trang 16

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 biệt là ảnh nhị phân).Loạt được định nghĩa là dãy các phần tử điểm ảnh (pixel) liên tiếp có cùng chung mộtgiá trị Phương pháp mã hóa loạt dài lúc đầu được phát triển dành cho ảnh nhị phânnhư các văn bản trên nền trắng, trang in, các bức vẽ kỹ thuật

Nguyên tắc

Phát hiện một loạt các bit lặp lại, thí dụ như một loạt các bit 0 nằm giữa 2 bit 1hay ngược lại, một loạt bit 1 nằm giữa 2 bit 0 Ví dụ: 110000000000000011 Dãy cácbit lặp gọi là loạt hay mạch (run) Tiếp theo, thay thế chuỗi đó bởi một chuỗi mới gồm

2 thông tin: chiều dài chuỗi và bit lặp (ký tự lặp) Như vậy, chuỗi thay thế sẽ có chiềudài ngắn hơn chuỗi cần thay

- Cần lưu ý rằng, đối với dữ liệu ảnh, chiều dài của chuỗi lặp có thể lớn hơn

255, nếu ta dùng một byte để lưu trữ chiều dài thì không đủ Giải pháp đượcdùng là tách chuỗi đó thành 2 chuỗi: một chuỗi có chiều dài 255, chuỗi kia là

số bit còn lại

- Phương pháp này chỉ có hiệu quả khi chiều dài dãy lặp lớn hơn một ngưỡngnào đó hay nói cách khác trong ảnh cần nén phải có nhiều điểm ảnh kề nhau

Trang 17

có cùng giá trị màu Do đó, phương pháp này không đem lại cho ta kết quảmột cách ổn định vì nó phụ thuộc hoàn toàn vào ảnh nén, chỉ thích hợp choảnh đen trắng hay ảnh đa cấp xá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

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] D. Salomon, Data Compression, The Complete Reference, Springer, 3rd Edition, 2004 Sách, tạp chí
Tiêu đề: Data Compression, The Complete Reference
[2] K. Sayood, Introduction to Data Compression, 2nd Edition, Morgan-Kaufman, 2000 Sách, tạp chí
Tiêu đề: Introduction to Data Compression
[3] Mark Nelson and Jean-loup Gailly, The Data Compression Book 2nd edition, M&T Books, New York, NY 1995 Sách, tạp chí
Tiêu đề: The Data Compression Book 2nd edition
[4] Yun Q. Shi and Huifang Sun, Image and video compression for multimedia engineering, CRC Press, 2000 Sách, tạp chí
Tiêu đề: Image and video compression for multimediaengineering
[5] Mohammed Ghanbari, Standard Codecs: Image Compression to Advanced Video Coding, Institution of Electrical Engineers, 2003 Sách, tạp chí
Tiêu đề: Standard Codecs: Image Compression to Advanced VideoCoding

HÌNH ẢNH LIÊN QUAN

Sơ đồ nén và giải nén dữ liệu - BÁO CÁO TIỂU LUẬN NÉN DỮ LIỆU
Sơ đồ n én và giải nén dữ liệu (Trang 8)
Bảng tần suất sắp xếp theo thứ tự giảm dần: - BÁO CÁO TIỂU LUẬN NÉN DỮ LIỆU
Bảng t ần suất sắp xếp theo thứ tự giảm dần: (Trang 13)
Bảng từ mã gán cho các ký tự bởi mã hóa Huffman: - BÁO CÁO TIỂU LUẬN NÉN DỮ LIỆU
Bảng t ừ mã gán cho các ký tự bởi mã hóa Huffman: (Trang 14)
Hình ảnh minh họa chương trình nén - BÁO CÁO TIỂU LUẬN NÉN DỮ LIỆU
nh ảnh minh họa chương trình nén (Trang 22)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w