1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ĐIỆN tử VIỄN THÔNG ma nen khotailieu

18 27 0

Đ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 18
Dung lượng 665 KB

Nội dung

Mã nén  Mục đích nén liệu   Giảm dung lượng Một số thuật toán nén:  Run-length  Vi phân  Huffman  Shanon Fanon  LSW Run-length    Loại dư thừa đơn giản tập tin đường chạy dài gồm kí tự lặp lại, điều thường thấy tập tin đồ hoạ bitmap, vùng liệu tập tin chương trình, số tập tin văn Tất từ mã có số bit chẵn Ví dụ, xét chuỗi sau: AAAABBBAABBBBBCCCCCCCCDABCBAAABBBBCCCD 4A3BAA5B8CDABCB3A4B3CD Chú ý không đáng để mã hoá loạt chạy có độ dài cần đến hai kí tự để mã hố Mã vi phân     Trong nhiều trường hợp, liệu liên tiếp thay đổi Thí dụ trường hợp mã tín hiệu hình ảnh kỹ thuật video Nguyên tắc mã vi phân sau: khung thứ phát đồng thời lưu đệm máy phát thu Máy phát so sánh khung thứ hai với khung thứ này, mã khác biệt phát dạng khung Ví dụ: Mã vi phân Mã vi phân     Trong nhiều trường hợp, liệu liên tiếp thay đổi Thí dụ trường hợp mã tín hiệu hình ảnh kỹ thuật video Nguyên tắc mã vi phân sau: khung thứ phát đồng thời lưu đệm máy phát thu Máy phát so sánh khung thứ hai với khung thứ này, mã khác biệt phát dạng khung Ví dụ: Ví dụ cho ta thấy xuất chuỗi dài bit có thể nén nhờ phương pháp Run length Huffman Các tập tin máy tính lưu dạng kí tự có chiều dài khơng đổi bits  Trong nhiều tập tin, xác suất xuất kí tự nhiều kí tự khác, từ ta thấy dùng vài bit để biểu diễn cho kí tự có xác suất xuất lớn dùng nhiều bit để biểu diễn cho kí tự có xác suất xuất nhỏ tiết kiệm độ dài tập tin cách đáng kể  Ví dụ: "ABRACADABRA" Nếu mã hố chuỗi dạng mã nhị phân bit ta có dãy bit sau: 0000100010100100000100011000010010000001000101001000001  Ta gán chuỗi bit ngắn cho kí tự dùng phổ biến nhất, giả sử ta gán: A 0, B 1, R 01, C 10 D 11 chuỗi biễu diễn sau: 01 10 11 01  Huffman Khái niệm: mã có tính prefix: Không có từ mã tiền tố từ mã khác  Ví dụ: Giả sử mã hóa từ "ARRAY", tập ký hiệu cần mã hóa gồm chữ "A","R","Y" Nếu mã hóa từ mã có độ dài ta dùng bit cho chữ chẳng hạn "A"=00, "R"=01, "Y"=10 Khi đó mã hóa từ 0001010010 Để giải mã ta đọc hai bit đối chiếu với bảng mã  Nếu mã hóa "A"=0, "R"=01, "Y"=11 từ mã khơng mã tiền tố ví từ mã "A" tiền tố từ mã "R" Để mã hóa từ ARRAY phải đặt dấu ngăn cách vào từ mã 0,01,01,0,11  Nếu mã hóa "A"=0, "R"=10, "Y"=11 mã mã tiền tố Với mã tiền tố mã hóa xâu "ARRAY" ta có 01010011  Huffman     Giải thuật: Trong giải thuật tham lam giải toán xây dựng mã tiền tố tối ưu Huffman, bước ta chọn hai chữ có tần số thấp để mã hóa từ mã dài Giả sử có tập A gồm n ký hiệu hàm trọng số tương ứng W(i),i = n Khởi tạo: Tạo rừng gồm n cây, có nút gốc, nút gốc tương ứng với kí tự có trọng số tần số/tần suát kí tự đó W(i) Lăp:    Mỗi bước sau thực rừng cây: Chọn hai có số gốc nhỏ hợp thành cách thêm gốc nối với hai gốc đã chọn Trọng số gốc tổng trọng số hai gốc tạo thành nó Như bước số bớt Khi rừng đó biểu diễn mã tiền tố tối ưu với ký tự đặt tương ứng Huffman   Ví dụ: Cho bảng tần suất chữ A,B,C,D,E sau tương ứng 0.10; 0.15; 0.30; 0.16; 0.29 Như mã tối ưu tương ứng A B C D E 010 011 11 00 109 Huffman  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ớ, có thể xây dựng dựa mảng bé 64KB Nhược điểm nó phải chứa bảng mã vào tập tin nén phía nhận có thể giải mã đó hiệu suất nén cao ta thực nén tập tin lớn 10 Phương pháp nén LZW     Nguyên tắc hoạt động nó sau: Một xâu kí tự tập hợp từ hai kí tự trở lên Nhớ tất xâu kí tự đã gặp gán cho nó dấu hiệu (token) riêng Nếu lần sau gặp lại xâu kí tự đó, xâu kí tự thay dấu hiệu nó 11 Phương pháp nén LZW    Khi byte liệu cần nén đem đến, chúng liền giữ lại đệm chứa (Accumulator) đem so sánh với chuỗi đã có "từ điển" Nếu chuỗi liệu đệm chứa không có "từ điển" nó bổ sung thêm vào "từ điển" số chuỗi "từ điển" dấu hiệu chuỗi Nếu chuỗi đệm chứa đã có "từ điển" dấu hiệu chuỗi đem thay cho chuỗi dòng liệu 12 Phương pháp nén LZW  qui tắc 1: 256 dấu hiệu dành cho kí tự đơn (0 0ffh)  qui tắc 2: Cố gắng so sánh với "từ điển" đệm chứa đã có nhiều hai kí tự qui tắc 3: Các kí tự đầu vào (Nhận từ tập tin nén) bổ sung vào đệm chứa đến chuỗi kí tự đệm chứa không có "từ điển" qui tắc 4: Khi đệm chứa có chuỗi mà "từ điển" khơng có chuỗi đệm chứa đem vào "từ điển" Kí tự cuối chuỗi kí tự đệm chứa phải lại đệm chứa để tiếp tục tạo thành chuỗi   13 Phương pháp nén LZW  Ví dụ: Các bước để mã hoá chuỗi "!BAN!BA!BAA!BAR!" sau STT Bộ đệm chứa Dữ liệu Dữ liệu vào (12 Bits) (8 Bits) Từ điển - ! - - ! B ! 100h=!B B A B 101h=BA A N A 102h=AN N ! N 103h=N! ! B - - !B A 104h=!BA A ! A 105h=A! ! B - - 10 !B A - - 14 Phương pháp nén LZW  Ví dụ: Các bước để mã hố chuỗi "!BAN!BA!BAA!BAR!" sau STT Bộ đệm chứa Dữ liệu vào (8 Bits) Dữ liệu (12 Bits) Từ điển 11 !BA A 106h=!BAA 12 A ! - - 13 A! B 107h=A!B 14 B A - - 15 BA R 108h=BAR 16 R ! R 109h=R! 17 ! B - - 18 !B A - - 19 !BA T 10Ah=!BAT 20 - - T - 15 Phương pháp nén LZW     Trong thuật toán nén này, phần lớn thời gian bắt đầu nén chủ yếu vào việc tạo "từ điển" Khi "từ điển" đủ lớn, xác suất gặp chuỗi đệm chứa "từ điển" tăng lên nén nhiều Một điều cần ý dấu hiệu, ta phải lưu chuỗi "từ điển" để so sánh Vì dấu hiệu biểu diễn số 12 bits nên "từ điển" có 4096 lối vào, tăng số bit dể biễu diễn dấu hiệu lên hiệu nén tốt lại bị chiếm nhớ máy tính 16 Shannon Fanon        Phương pháp bao gồm bước sau: Sắp xếp xác suất theo thứ tự giảm dần Không tổng quát giả sử p ≥ ≥ p K Phân xác suất thành nhóm có tổng xác suất gần nhất, nhóm bao gồm xác suất đứng gần (không cách quãng) Gán cho hai nhóm kí hiệu (hoặc ngược lại) Tuy nhiên có thể qui ước gán cho nhóm kí hiệu 0, nhóm kí hiệu Lặp lại bước cho nhóm khơng thực Tức ứng với nhóm bước lại phân nó thành nhóm nhỏ có tổng xác suất gần nhất, nhóm bao gồm xác suất đứng gần Từ mã ứng với tin chuỗi bao gồm kí hiệu theo thứ tự gán cho nhóm có chứa xác suất tương ứng tin 17 Shannon Fanon 18 ... "Y"=10 Khi đó ma hóa từ 0001010010 Để giải ma ta đọc hai bit đối chiếu với bảng ma  Nếu ma hóa "A"=0, "R"=01, "Y"=11 từ ma khơng ma tiền tố ví từ ma "A" tiền tố từ ma "R" Để ma hóa từ... 11 01  Huffman Khái niệm: mã có tính prefix: Khơng có từ ma tiền tố từ ma khác  Ví dụ: Giả sử ma hóa từ "ARRAY", tập ký hiệu cần ma hóa gồm chữ "A","R","Y" Nếu ma hóa từ ma có độ... ARRAY phải đặt dấu ngăn cách vào từ ma 0,01,01,0,11  Nếu ma hóa "A"=0, "R"=10, "Y"=11 ma ma tiền tố Với ma tiền tố ma hóa xâu "ARRAY" ta có 01010011  Huffman     Giải thuật: Trong giải

Ngày đăng: 12/11/2019, 13:45

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w