Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Compression & Huffman Code. Teknik Kompresi Definisi –Reduksi ukuran data (jumlah bit yang dibutuhkan untuk merepresentasikan data) Benefit –Mengurangi.

Presentasi serupa


Presentasi berjudul: "Compression & Huffman Code. Teknik Kompresi Definisi –Reduksi ukuran data (jumlah bit yang dibutuhkan untuk merepresentasikan data) Benefit –Mengurangi."— Transcript presentasi:

1 Compression & Huffman Code

2 Teknik Kompresi Definisi –Reduksi ukuran data (jumlah bit yang dibutuhkan untuk merepresentasikan data) Benefit –Mengurangi storage yang dibutuhkan –Mengurangi cost/latency/bandwidth transmisi

3 Sources of Compressibility Redundancy –Recognize repeating patterns –Exploit using: Dictionary Variable Length Encoding Human Percetion –Less sensitive to some information –Can discard less important data

4 Type of Compression Lossless –Preserves all information –Exploits redundancy in data –Applied to general data Lossy –May lose some information –Exploits redundancy & human perception –Applied to audio, image, video

5 Effectiveness of Compression Metrics –Bits per byte (8 bits) 2 bits / byte  ¼ original size 8 bits / byte  no compression –Percentage 75% compression  ¼ original size

6 Effectiveness of Compression Depends on data –Random data  hard Example:  ? –Organized data  easy Example:  1  10 Corollary –No universally best compression algorithm

7 Effectiveness of Compression Lossless Compression is not always possible –If compression is always possible (alternative view) Compress file (reduce size by 1 bit) Recompress output Repeat (until we can store data with 0 bits)

8 Lossless Compression Techniques LZW (Lempel-Ziv-Welch) compression –Build pattern dictionary –Replace patterns with index into dictionary Run length encoding –Find & compress repetitive sequences Huffman codes –Use variable length codes based on frequency

9 Huffman Code Approach –Variable length encoding of symbols –Exploit statistical frequency of symbols –Efficient when symbol probabilities vary widely Principle –Use fewer bits to represent frequent symbols –Use more bits to represent infrequent symbols

10 10 Fixed-length code Karakter a b c def Frekuensi 45% 13% 12% 16% 9% 5% Kode ‘bad’ dikodekan sebagai ‘ ’ Pengkodean karakter membutuhkan bit.

11 11 Variable-length code (Huffman code) Karakter a b c d e f Frekuensi 45% 13% 12% 16% 9% 5% Kode ‘bad’ dikodekan sebagai ‘ ’ Pengkodean karakter membutuhkan (0,45  1 + 0,13  3 + 0,12  3 + 0,16  3 + 0,09  4 + 0,05  4)  = bit Nisbah pemampatan: ( – )/  100% = 25,3%

12 Huffman Code Data Structures Binary (Huffman) tree –Represents Huffman code –Edge  code (0 or 1) –Leaf  symbol –Path to leaf  encoding –Example A = “0”, B = “101”, C = “100”

13 Huffman Code Algorithm Overview Encoding –Calculate frequency of symbols in file –Create binary tree representing “best” encoding –Use binary tree to encode compressed file For each symbol, output path from root to leaf Size of encoding = length of path –Save binary tree

14 Huffman Code – Creating Tree Algorithm –Place each symbol in leaf Weight of leaf = symbol frequency –Select two trees L and R (initially leafs) Such that L, R have lowest frequencies in tree –Create new (internal) node Left child  L Right child  R New frequency  frequency( L ) + frequency( R ) –Repeat until all nodes merged into one tree

15 15 Contoh: Karakterabcdef Frekuensi

16 16

17 17

18 18

19 Huffman EnCode Example A = 0 B= 101 C = 100 D = 111 E = 1101 F= 1100 Input DAD Output (111)(0)(111) =

20 Huffman Decode Decoding –Read compressed file & binary tree –Use binary tree to decode file Follow path from root to leaf

21 Huffman DeCode Example A = 0 B= 101 C = 100 D = 111 E = 1101 F= 1100 Input Output ????

22 Huffman Code Properties Prefix code –No code is a prefix of another code –Example Huffman(“I”)  00 Huffman(“X”)  001 // not legal prefix code –Can stop as soon as complete code found –No need for end-of-code marker

23 Huffman Code Properties Greedy algorithm –Chooses best local solution at each step –Combines 2 trees with lowest frequency Still yields overall best solution –Optimal prefix code –Based on statistical frequency Kompleksitas algoritma Huffman: O(n log n)

24 Practise Diketahui serangkaian kalimat sbb: “aku suka kamu dan kita sama sama suka ada di dalam kampus uns maka aku dan kamu ada disini” Susun huffman code berdasarkan kalimat diatas. Gambarkan tree-nya!


Download ppt "Compression & Huffman Code. Teknik Kompresi Definisi –Reduksi ukuran data (jumlah bit yang dibutuhkan untuk merepresentasikan data) Benefit –Mengurangi."

Presentasi serupa


Iklan oleh Google