1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Adaptive Huffman Code

12 232 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

Cấu trúc

  • Static Huffman Code

  • Applications Motivating 1-Pass Huffman

  • Adaptive Huffman Code

  • Adaptive Huffman Code - encoding

  • Adaptive Huffman Code – encoding (cont’d)

  • Slide 6

  • Slide 7

  • Slide 8

  • Adaptive Huffman Code - decoding

  • Adaptive Huffman Code – decoding (cont’d)

  • Slide 11

  • Variable Length Codes (cont’d)

Nội dung

Static Huffman Code • Static 2-pass – Pass 1: read all input to compute Huffman code – Pass 2: re-read input and use code to compress • good method when – full input is provided, and – there are no time constraints • Static 1-pass – Pass 1: compress input using a previously developed code 1 Applications Motivating 1-Pass Huffman VERY LARGE FILE Real time Source (input) … 2 passes may be too slow Sender coder Receiver … channel … decoder (output) … 2 passes are not possible! BUT … what if input distribution is unknown? 1 pass static is not possible! 2 Adaptive Huffman Code • 1-pass adaptive – build code and compress input simultaneously – code is built dynamically at both coder and decoder – code changes with each character encoded ! ENCODER DECODER Initialize_model(); while ((c = getc (input)) != eof) { encode (c, output); update_model (c); } Initialize_model(); while ((c = decode (input)) != eof) { putc (c, output); update_model (c); } Encoder and decoder must use identical Initialize_model and update_model routines 3 Adaptive Huffman Code - encoding Time = 0 Time = 1 Time = 2 z 01111010 A 01000001 B 01000010 z 01111010 A 01000001 B 01000010 z 01111010 A 01000001 B 01000010 Z 01011010 Z 01011010 Z 01011010 ... ... ... ... Static table (ASCII) a 01100001 b 01100010 ... Static table (ASCII) a 01100001 b 01100010 ... Static table (ASCII) a 01100001 b 01100010 Huffman table Huffman table Huffman table NYT 0 NYT 0 (1) a 1 NYT 0 (2) a 1 Input: a Output: 001100001 NYT = Not Yet in Table a 1 B 001000010 4 Adaptive Huffman Code – encoding Time = 3 Time = 4 (cont’d) Time = 5 z 01111010 A 01000001 B 01000010 z 01111010 A 01000001 B 01000010 z 01111010 A 01000001 B 01000010 Z 01011010 Z 01011010 Z 01011010 NYT 00 (2) a 1 (1) B 01 Input: c Output: 0001100011 ... ... ... Huffman table ... Static table (ASCII) a 01100001 b 01100010 ... Static table (ASCII) a 01100001 b 01100010 ... Static table (ASCII) a 01100001 b 01100010 Huffman table Huffman table NYT 000 (2) a 1 (1) B 01 (1) c 001 NYT 000 (2) a 1 (2) B 01 (1) c 001 B 01 B 01 5 Adaptive Huffman Code – encoding Time = 8 Static table (ASCII) a 01100001 b 01100010 ... Time = 7 Static table (ASCII) a 01100001 b 01100010 ... ... Time = 6 Static table (ASCII) a 01100001 b 01100010 (cont’d) Z 01011010 Z 01011010 Z 01011010 Huffman table NYT 000 (2) a 01 (3) B 1 (1) c 001 Input: Output: c Huffman table Huffman table NYT 000 (2) a 01 (3) B 1 (2) c 001 NYT 000 (2) a 001 (3) B 1 (3) c 01 c 001 ... z 01111010 A 01000001 B 01000010 ... z 01111010 A 01000001 B 01000010 ... z 01111010 A 01000001 B 01000010 c 001 01 6 Adaptive Huffman Code – encoding Time = n Time = 9 Static table (ASCII) a 01100001 b 01100010 Static table (ASCII) ... Huffman table NYT 000 (2) a 001 (3) B 01 (4) c 1 Input: Output: c 1 ... NYT 00000000000000 (233) a 001 (128) b 0110 ... ... Z 01011010 Huffman table (12) z 011110100001 (35) A 01010 (17) B 01000010 (2) ... ... z 01111010 A 01000001 B 01000010 (cont’d) Z 0101101000011 7 Adaptive Huffman Code – encoding (cont’d) Result: a a B c B B c c c c 001100001 1 001000010 0001100011 01 01 001 001 01 1 8 Adaptive Huffman Code - decoding Time = 0 Time = 1 Time = 2 z 01111010 A 01000001 B 01000010 z 01111010 A 01000001 B 01000010 z 01111010 A 01000001 B 01000010 Z 01011010 Z 01011010 Z 01011010 ... ... ... ... Static table (ASCII) a 01100001 b 01100010 ... Static table (ASCII) a 01100001 b 01100010 ... Static table (ASCII) a 01100001 b 01100010 Huffman table Huffman table Huffman table NYT 0 NYT 0 (1) a 1 NYT 0 (2) a 1 Input: 001100001 Output: a NYT = Not Yet in Table 1 a 001000010 B 9 Adaptive Huffman Code – decoding Time = 3 Time = 4 (cont’d) Time = 5 z 01111010 A 01000001 B 01000010 z 01111010 A 01000001 B 01000010 z 01111010 A 01000001 B 01000010 Z 01011010 Z 01011010 Z 01011010 NYT 00 (2) a 1 (1) B 01 Input: 0001100011 c Output: ... ... ... Huffman table ... Static table (ASCII) a 01100001 b 01100010 ... Static table (ASCII) a 01100001 b 01100010 ... Static table (ASCII) a 01100001 b 01100010 Huffman table Huffman table NYT 000 (2) a 1 (1) B 01 (1) c 001 NYT 000 (2) a 1 (2) B 01 (1) c 001 01 B 01 B 10 Adaptive Huffman Code – decoding Time = 8 Static table (ASCII) a 01100001 b 01100010 ... Time = 7 Static table (ASCII) a 01100001 b 01100010 ... ... Time = 6 Static table (ASCII) a 01100001 b 01100010 (cont’d) Z 01011010 Z 01011010 Z 01011010 Huffman table NYT 000 (2) a 01 (3) B 1 (1) c 001 Input: 001 c Output: ... z 01111010 A 01000001 B 01000010 ... z 01111010 A 01000001 B 01000010 ... z 01111010 A 01000001 B 01000010 Huffman table Huffman table NYT 000 (2) a 01 (3) B 1 (2) c 001 NYT 000 (2) a 001 (3) B 1 (3) c 01 001 c 01 c 11 Variable Length Codes (cont’d) Summary • disadvantages – less tolerant to bit errors – requires accurate knowledge of underlying distribution of characters • advantage – on average, uses fewer bits/character 12 [...].. .Adaptive Huffman Code – decoding Time = 8 Static table (ASCII) a 01100001 b 01100010 Time = 7 Static table (ASCII) a 01100001 b 01100010 Time = 6 Static table (ASCII) a 01100001 b 01100010 (cont’d) Z 01011010 Z 01011010 Z 01011010 Huffman table NYT 000 (2) a 01 (3) B 1 (1) c 001 Input: 001 c Output: z 01111010 A... B 1 (1) c 001 Input: 001 c Output: z 01111010 A 01000001 B 01000010 z 01111010 A 01000001 B 01000010 z 01111010 A 01000001 B 01000010 Huffman table Huffman table NYT 000 (2) a 01 (3) B 1 (2) c 001 NYT 000 (2) a 001 (3) B 1 (3) c 01 001 c 01 c 11 Variable Length Codes (cont’d) Summary • disadvantages – less tolerant to bit errors – requires accurate knowledge of underlying distribution of characters

Ngày đăng: 22/10/2015, 17:09

TỪ KHÓA LIÊN QUAN

w