Topic 9 adaptive huffma

79 548 0
Topic 9  adaptive huffma

Đ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

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

Mục lục

  • Adaptive Huffman - Giới thiệu:

  • Adaptive Huffman - Giới thiệu (tt):

  • Adaptive Huffman - Thuật toán tổng quát:

  • Adaptive Huffman - Cây Huffman (động):

  • Adaptive Huffman – Ví dụ

  • Adaptive Huffman – Ví dụ (tt)

Tài liệu cùng người dùng

Tài liệu liên quan