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

Topic 9 adaptive huffma

79 548 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 79
Dung lượng 4,76 MB

Nội dung

ADAPTIVE HUFFMAN David A Huffman (9/8/1925 – 7/10/1999) Topic 9: Adaptive Huffman Nhóm thực hiện:  Lữ Cao Tiến 0612444  Nguyến Khắc Tiệp 0612449  Lê Phước Trung 0612461  Lưu Đức Trí 0612484 Adaptive Huffman        Giới thiệu: Hạn chế thuật toán Huffman tĩnh Ý tưởng Lịch sử hình thành Ưu điểm Thuật toán tổng quát Cây Huffman (động)  Tính chất anh em (Sibling property)      Hình thành cập nhật Các vi phạm cách giải Thuật toán nén (Encoding) Thuật toán giải nén (Decoding) Demo minh họa Adaptive Huffman - Giới thiệu:  Giới thiệu: Hạn chế thuật toán Huffman tĩnh  Ý tưởng  Lịch sử hình thành  Ưu điểm   Thuật toán tổng quát  Cây Huffman (động)  Tính chất anh em (Sibling property) Hình thành cập nhật  Các vi phạm cách giải     Thuật toán nén (Encoding) Thuật toán giải nén (Decoding) Demo minh họa Adaptive Huffman - Giới thiệu (tt):  Hạn chế thuật toán Huffman tĩnh  Trong trình nén cần đến lần duyệt File → Chi phí nén cao  Cần phải lưu trữ thông tin để giải nén → Làm tăng kích thước liệu nén  Dữ liệu nén cần phải có sẵn → Không nén liệu phát sinh theo thời gian thực Adaptive Huffman - Giới thiệu (tt): Ý tưởng:  Thuật toán dựa ý tưởng Huffman sử dụng vài bit (bit code) để biểu diễn kí tự  Độ dài “mã bit” cho kí tự không giống nhau: Kí tự xuất nhiều lần→biểu diễn mã ngắn o Kí tự xuất → biểu diễn mã dài o  Tạo sẵn “tối thiểu” ban đầu, liệu nén cập nhật dần vào Giới thiệu (tt):  Lịch sử hình thành:  Được đề xuất (độc lập) Faller (1973) Gallager (1978)  Năm 1985 Knuth đưa số cải tiến hoàn chỉnh thuật toán Vì thuật toán gọi thuật toán FGK  Năm 1987 Vitter trình bày cải tiến liên quan tới việc tối ưu Huffman Giới thiệu (tt):  Ưu điểm:  Không cần tính trước số lần xuất kí tự  Quá trình nén cần lần duyệt file  Không cần lưu thông tin phục vụ cho việc giải nén  Nén “online” liệu phát sinh theo thời gian thực Adaptive Huffman  Giới     thiệu: Hạn chế thuật toán Huffman tĩnh Ý tưởng Lịch sử hình thành Ưu điểm  Thuật toán tổng quát  Cây Huffman (động)  Tính chất anh em (Sibling property)  Hình thành cập nhật Các vi phạm cách giải   Thuật toán nén (Encoding) Thuật toán giải nén (Decoding)  Adaptive Huffman - Thuật toán tổng quát:  Static o  Huffman: Cây Huffman tạo thành từ bảng thống kê số lần xuất kí tự Adaptive Huffman: Nén “online” → trước thống kê o Phương pháp: khởi tạo “tối thiểu” ban đầu, cập nhật dựa liệu phát sinh trình nén giải nén o Adaptive Huffman – Ví dụ (tt) c #3 W=3 #3 W=1 #1 #1 E c W=1 #2 E #5 a W=1 W=2 b W=1 #2 #4 Adaptive Huffman – Ví dụ (tt) W=3 #3 #1 E #3 #5 W=1 c W=1 #2 #5 #7 a W=2 W=1 b W=1 #2 #4 #4 #6 Adaptive Huffman – Ví dụ (tt) W=3 W =4 Cập nhật trọng số node có liên quan #3 #1 E #5 a W=2 W=1 W =2 b W=1 W=1 c W=1 #7 #2 #4 #6 Adaptive Huffman – Ví dụ (tt) B5: Đọc bit duyệt Tăng trọng số node b thêm #5 Cập nhật lại trọng số node liên quan Di chuyển đầu đọc đến #3 W=1 vị trí output = abacb #1 W=4 W=2 W =3 b W=1 W =2 c W=1 E #7 a W=2 #6 #4 #2 fseek input = 01100001001100010100011000100110001100100101 Adaptive Huffman – Ví dụ (tt) W=4 W=5 Vi phạm tính chất anh em Ta phải xoay lại Cập nhật lại trọng số Node liên quan #1 #3 E #5 W=3 W=1 #4 c W=1 #7 a W=2 b W=2 #2 #6 Adaptive Huffman – Ví dụ (tt) B6: Đọc bit duyệt Ta thêm “d” vào thành node Di chuyển đầu đọc đến vị trí W=5 #7 #5 a W=2 #6 W=3 #3 b W=2 #4 W=1 output = abacbd #1 E fseek c W=1 #2 input = 01100001001100010100011000100110001100100101 Adaptive Huffman – Ví dụ (tt) d W=5 W=1 #3 #5 #1 E #7 d W=1 a W=2 #3 #2 #1 E W=3 W=1 #4 c W=1 #6 b W=2 #2 Adaptive Huffman – Ví dụ (tt) W=5 #3 #1 E W=1 #5 #7 d W=1 #2 a W=2 #3 #5 #7 #9 W=3 #6 #8 b W=2 W=1 c W=1 #2 #4 #4 #6 Adaptive Huffman – Ví dụ (tt) W=5 W=6 Cập nhật lại trọng số node có liên quan #7 a W=2 #5 #3 #1 E #9 W=3 W=4 b W=2 W=1 W=2 c W=1 W=1 d W=1 #8 #2 #4 #6 Adaptive Huffman – Ví dụ (tt) B7: Đọc bit duyệt Tăng trọng số node c thêm #7 output = abacbdc #3 1000110001001100 01100100101 #1 E #9 a W=2 #5 input = 01100001001100010 fseek W=6 W=4 #8 W=2 c W=2 W=1 W=1 d W=1 #2 b W=2 #4 #6 Adaptive Huffman – Ví dụ (tt) W=6 Cập nhật lại trọng số node #7 liên quan hiệu chỉnh lại Vi phạm tính chất anh em Ta phải xoay lại a W=2 #5 #3 #1 E #9 W=4 b W=2 W=2 W=3 c W=2 W=1 d W=1 #8 #2 #4 #6 Adaptive Huffman – Ví dụ (tt) #9 W=6 a W=2 #5 #3 #1 E W=4 #7 #8 b W=2 W=3 c W=2 W=1 d W=1 #2 #4 #6 Adaptive Huffman – Ví dụ (tt) Vi phạm tính chất anh em #9 W=6 Ta hiệu chỉnh lại #7 a W=2 b W=2 #3 #1 E W=4 #8 #5 W=3 #6 c W=2 W=1 d W=1 #2 #4 Adaptive Huffman – Ví dụ (tt) kiểm tra trọng số node liên quan W=6 W=3 #3 #1 E W=1 #7 c W=2 #4 d W=1 #9 #2 output = abacbdc W=4 b W=2 #5 #8 a W=2 #6 Adaptive Huffman Huffman !!!??? Oh! I see [...]... số (1) C W=3 W=2 #1 B W=11 #7 W =9 #6 T W=3 #2 D W=4 #3 L W=5 #4 Adaptive Huffman - Cây Huffman (động):  Khi thêm một node mới hoặc tăng trọng số:  Vi phạm tính chất anh em  Tràn số Adaptive Huffman - Cây Huffman (động): W= 29 #9 Vi phạm tính chất anh em: B W=17 #8 W=12 #7 W=6 #6 W=6 #5 Tăng trọng số (1) D C W=4 W=3 #1 T W=3 #2 D W=3 #3 L W=3 #4 Adaptive Huffman - Cây Huffman (động): Hiệu chỉnh cây... cho 2 làm mất phần dư của số nguyên) Adaptive Huffman - Cây Huffman (động):  Xử lí tràn số: (tt) W=255 W=116 #9 B W=135 W=67 #8 W= 59 W=120 #7 W=55 W=27 W=65 W=32 #6 #5 C W=25 W=12 #1 T W=30 W=15 #2 D W=30 W=15 #3 L W=35 W=17 #4 Adaptive Huffman        Giới thiệu: Hạn chế của thuật toán Huffman tĩnh Ý tưởng Lịch sử hình thành Ưu điểm Thuật toán tổng quát Cây Huffman (động)  Tính chất anh em... trong cây theo thứ tự tăng dần của trọng số thì mỗi node luôn kề với node anh em của nó Adaptive Huffman - Cây Huffman (động): Root W=17 #9 Ví dụ:  E W=10 #8 W=7 #7 W=3 #5 A W=1 #1 W=4 #6 B W=2 #2 C W=2 #3 D W=2 #4 Thứ tự #1 #2 #3 #4 #5 #6 #7 #8 #9 Wi 1 2 2 2 3 6 7 10 17 Giá trị A B C D E Root Adaptive Huffman - Cây Huffman (động):  Cách thức tạo cây: b1: Khởi tạo cây “tối thiểu”, chỉ có node Escape... nhật kí tự c vào cây Kết thúc Adaptive Huffman - Thuật toán tổng quát: Thuật toán giải nén Đọc dữ liệu nén b Khởi tạo cây “tối thiểu” b != EOF Yes Cây Huffman Giải nén b thành c Dữ liệu giải nén c Cập nhật kí tự c vào cây No Kết thúc Adaptive Huffman  Giới thiệu: Hạn chế của thuật toán Huffman tĩnh  Ý tưởng  Lịch sử hình thành  Ưu điểm   Thuật toán tổng quát  Cây Huffman (động)  Tính chất anh... của các node liên quan trong cây Adaptive Huffman - Cây Huffman (động): Thuật toán cập nhật trọng số:  Tăng trọng số của node lá lên 1  Đi từ node lá đến node gốc tăng trọng số của các node lên 1 Kiểm tra tính chất anh em và hiệu chỉnh lại cây nếu có vi phạm Adaptive Huffman - Cây Huffman (động): Tăng trọng số (cuối) Tăng trọng số (3) W=26 W=25 #10 W=15 W=14 #8 W=11 #9 Tăng trọng số (2) W=6 W=5 #5... không còn node vi phạm Adaptive Huffman - Cây Huffman (động):  Vấn đề tràn số:  Quá trình cập nhật cây → làm tăng trọng số các node  Trọng số node gốc tăng nhanh → có thể vượt quá khả năng lưu trữ của kiểu dữ liệu o Kiểu int → giá trị max = 215- 1 o Kiểu unsigned int → giá trị max = 216 – 1 o Kiểu long → giá trị max = 231 - 1 Adaptive Huffman - Cây Huffman (động):  Ví.. .Adaptive Huffman - Thuật toán tổng quát: Dữ liệu phát sinh Khởi tạo cây “tối thiểu” Cây Huffman Nén/ giải nén Cập nhật cây Dữ liệu nén/giải nén Sự phối hợp giữa việc dùng cây (cho thuật toán nén/giải nén) và cập nhật cây Adaptive Huffman - Thuật toán tổng quát: Đọc kí tự c Thuật toán nén Khởi tạo cây “tối thiểu” No c != EOF Yes Cây Huffman Mã hóa (nén kí tự c) Dữ liệu... node c lên 1 và cập nhật lại cây Adaptive Huffman        Giới thiệu: Hạn chế của thuật toán Huffman tĩnh Ý tưởng Lịch sử hình thành Ưu điểm Thuật toán tổng quát Cây Huffman (động)  Tính chất anh em (Sibling property)      Hình thành và cập nhật cây Các vi phạm và cách giải quyết Thuật toán nén (Encoding) Thuật toán giải nén (Decoding) Demo minh họa Adaptive Huffman  Thuật toán giải nén:... trọng số (1) D C W=4 W=3 #1 T W=3 #2 D W=3 #3 L W=3 #4 Adaptive Huffman - Cây Huffman (động): Hiệu chỉnh cây để thỏa tính chất anh em: W=30 W= 29 #9 #10 B W=17 #8 W=13 W=12 #7 #8 W=7 W=6 #6 W=6 #5 C W=4 #1#1 T W=3 #2 D W=3 #3 L W=3 #4 Adaptive Huffman - Cây Huffman (động):  Thuật toán xác định node vi phạm:  Gọi x là node hiện hành  So sánh x với các node tiếp theo sau (theo thứ tự từ trái sang phải,... (Sibling property) Hình thành và cập nhật cây  Các vi phạm và cách giải quyết     Thuật toán nén (Encoding) Thuật toán giải nén (Decoding) Demo minh họa Adaptive Huffman - Cây Huffman (động):     o o Một cây nhị phân có n node lá được gọi là cây Huffman nếu thỏa: Các node lá có trọng số wi ≥ 0, i ∈ [1,n] Các node nhánh có trọng số bằng tổng trọng số của các node con của nó Tính chất Anh/ em (Sibling ... #2 D W=4 #3 L W=5 #4 Adaptive Huffman - Cây Huffman (động):  Khi thêm node tăng trọng số:  Vi phạm tính chất anh em  Tràn số Adaptive Huffman - Cây Huffman (động): W= 29 #9 Vi phạm tính chất.. .Topic 9: Adaptive Huffman Nhóm thực hiện:  Lữ Cao Tiến 0612444  Nguyến Khắc Tiệp 06124 49  Lê Phước Trung 0612461  Lưu Đức Trí 0612484 Adaptive Huffman       ... #4 Adaptive Huffman - Cây Huffman (động): Hiệu chỉnh để thỏa tính chất anh em: W=30 W= 29 #9 #10 B W=17 #8 W=13 W=12 #7 #8 W=7 W=6 #6 W=6 #5 C W=4 #1#1 T W=3 #2 D W=3 #3 L W=3 #4 Adaptive Huffman

Ngày đăng: 03/12/2015, 17:10

TỪ KHÓA LIÊN QUAN

w