06.01 Kompresi Lossless

dokumen-dokumen yang mirip
Kompresi. Definisi Kompresi

BAB II DASAR TEORI. 2.1 Pendahuluan

MULTIMEDIA system. Roni Andarsyah, ST., M.Kom Lecture Series

BAB 2 Tinjauan Teoritis

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO MULTIMEDIA. Kompresi. Oky Dwi Nurhayati, ST, MT

Kompresi Data dengan Algoritma Huffman dan Perbandingannya dengan Algoritma LZW dan DMC

>>> Kompresi Data dan Teks <<<

ANALISA DAN PERBANDINGAN ALGORITMA RUN LENGTH ENCODING DAN ALGORITMA LZW ( LEMPEL ZIV WECH ) DALAM PEMAMPATAN TEKS

BAB II LANDASAN TEORI. Kompresi data atau pemampatan data adalah suatu proses pengubahan

Contoh kebutuhan data selama 1 detik pada layar resolusi 640 x 480 : 640 x 480 = 4800 karakter 8 x 8

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. Dalam dunia modern sekarang ini kebanyakan aktivitas manusia selalu

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

KOMPRESI STRING MENGGUNAKAN ALGORITMA LZW DAN HUFFMAN

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN Latar Belakang

Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding

BAB 2 TINJAUAN PUSTAKA

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

BAB I PENDAHULUAN. halaman khusus untuk pengaksesan dari handphone. Semakin baik informasi akan

KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA

KINERJA DAN PERFORMA ALGORITMA KOMPRESSI LOSSLESS TERHADAP OBJEK CITRA DIGITAL

BAB III METODE KOMPRESI HUFFMAN DAN DYNAMIC MARKOV COMPRESSION. Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. Dalam penggunaan sehari-hari data berarti suatu pernyataan yang diterima secara apa

KOMPRESI TEKS MENGGUNAKAN ALGORITMA DAN POHON HUFFMAN. Nama : Irfan Hanif NIM :

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

STMIK GI MDP. Program Studi Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2010/2011

[TTG4J3] KODING DAN KOMPRESI. Oleh : Ledya Novamizanti Astri Novianty. Prodi S1 Teknik Telekomunikasi Fakultas Teknik Elektro Universitas Telkom


BAB 2 LANDASAN TEORI

Kinerja Dan Performa Algoritma Kompressi Lossless Terhadap Objek Citra Digital

KOMPRESI DAN TEKS. = 4800 karakter. 8 x 8 Kebutuhan tempat penyimpanan per halaman = byte = byte = Kbyte

Bab 6. Kompresi Data dan Teks. Pokok Bahasan : Tujuan Belajar : Sekilas Kompresi Data

BAB 2 LANDASAN TEORI

KOMPRESI TEKS dengan MENGGUNAKAN ALGORITMA HUFFMAN

SISTEM ANALISA PERBANDINGAN UKURAN HASIL KOMPRESI WINZIP DENGAN 7-ZIP MENGGUNAKAN METODE TEMPLATE MATCHING

BAB 1 PENDAHULUAN 1-1

BAB 2 TINJAUAN PUSTAKA

Penerapan Algoritma LZW (Lempel-Ziv-Welch) pada Program Pemampat File

PEMAMPATAN TATA TEKS BERBAHASA INDONESIA DENGAN METODE HUFFMAN MENGGUNAKAN PANJANG SIMBOL BERVARIASI

Teknik Kompresi Citra Menggunakan Metode Huffman

1. Pendahuluan. 1.1 Latar Belakang Masalah

BAB III LANDASAN TEORI. Kompresi data merupakan proses mengkonversi input data stream (aliran

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. sebelumnya oleh Anjar Setyo Nugroho (2010) telah dibuat PENERAPAN KRIPTOGRAFI PADA SMS MOBILE DENGAN

KOMPRESI DATA. Multimedia Jurusan Teknik Informatika. Riki Ruli S -

TEKNIK PENGOLAHAN CITRA. Kuliah 13 Kompresi Citra. Indah Susilawati, S.T., M.Eng.

KOMPRESI CITRA. Pertemuan 12 Mata Pengolahan Citra

TEKNIK KOMPRESI LOSSLESS TEXT

BAB 1 PENDAHULUAN. tertulis, audio dan video. Objek-objek tersebut yang sebelumnya hanya bisa

Analisa Perbandingan Rasio Kecepatan Kompresi Algoritma Dynamic Markov Compression Dan Huffman

KOMPRESI DAN TEKS M U L T I M E D I A KOMPRESI DATA

BAB 2 LANDASAN TEORI

KOMPRESI DAN TEKS. Pemrograman Multimedia KOMPRESI DATA. Diktat Kuliah

Penerapan Pengkodean Huffman dalam Pemampatan Data

Kode Huffman dan Penggunaannya dalam Kompresi SMS

BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG

UKDW BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

KONSEP. Tujuan Kompresi:

Pemampatan Citra. Esther Wibowo Erick Kurniawan

Penyandian (Encoding) dan Penguraian Sandi (Decoding) Menggunakan Huffman Coding

BAB IV HASIL DAN UJI COBA

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

BAB III ANALISIS DAN PERANCANGAN

PERBANDINGAN ALGORITMA HUFFMAN DAN ALGORITMA SHANNON-FANO PADA PROSES KOMPRESI BERBAGAI TIPE FILE. Irwan Munandar

Konstruksi Kode dengan Redundansi Minimum Menggunakan Huffman Coding dan Range Coding

BAB 2 TINJAUAN PUSTAKA

APLIKASI GREEDY PADA ALGORITMA HUFFMAN UNTUK KOMPRESI TEKS

ANALISIS PENGARUH PANJANG BIT KODE PADA KINERJA PROGRAM KOMPRESI YANG MENGGUNAKAN ALGORITMA LEMPEL ZIV WELCH (LZW) SKRIPSI FAHRUR RAZI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

IMPLEMENTASI DAN ANALISIS KINERJA ALGORITMA SHANNON- FANO UNTUK KOMPRESI FILE TEXT

BAB 1 PENDAHULUAN Latar Belakang

Image Compression. Kompresi untuk apa?

Teknik Pembangkitan Kode Huffman

Algoritma Huffman dan Kompresi Data

MODIFIKASI ALGORITMA J-BIT ENCODING UNTUK MENINGKATKAN RASIO KOMPRESI

BAB III ANALISIS DAN PERANCANGAN

1. PENDAHULUAN 1.1. Latar Belakang Masalah

Perbandingan Kompresi Data Menggunakan Algoritma Huffman dan Algoritma DMC

PENGANTAR KOMPRESI DATA

BAB I PENDAHULUAN. Meningkatnya penggunaan komputer dalam kegiatan sehari hari, secara

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

BAB III ANALISIS DAN PERANCANGAN SISTEM. Analisis sistem bertujuan untuk mengidentifikasi permasalahan

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

Implementasi Metode HUFFMAN Sebagai Teknik Kompresi Citra

DATA COMPRESSION CODING USING STATIC AND DYNAMIC METHOD OF SHANNON-FANO ALGORITHM

Semester Ganjil 2012/2013 Program Studi Multimedia - Politeknik Negeri Media Kreatif KOMPRESI DAN TEKS

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II TEORI DASAR PENGOLAHAN CITRA DIGITAL. foto, bersifat analog berupa sinyal sinyal video seperti gambar pada monitor

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT.

BAB 2 LANDASAN TEORI

ANALISIS ENKRIPSI CITRA DIGITAL MENGGUNAKAN ALGORITMA LOGISTIC MAP DENGAN ALGORITMA KOMPRESI LAMPEL-ZIV-WELCH (LZW)

Penerapan Pohon Biner Huffman Pada Kompresi Citra

Transkripsi:

1 Modul 06 Kompresi dan Dekompresi Yusep Rosmansyah, Ph.D. M. Rizki Nugraha, M.T. Chessa Nur Triejunita, S.T. Sistem dan Teknologi Informasi STEI ITB 06.01 Kompresi Lossless II3150 Sistem Multimedia Program Studi Sistem dan Teknologi Informasi

2 Run Length Encoding Kompresi Lossless Huffman Coding Arithmetic Coding Lempel-Ziv-Welch

3 Run Length Encoding (RLE) RLE merupakan algoritma kompresi data sederhana Data disusun beserta dengan jumlahnya Sangat cocok jika ada data-data yang berdekatan nilainya sama

4 Run Length Encoding (RLE) Mengurangi redudansi data dengan mengganti pengulangan karakter secara berturut-turut dalam suatu string dengan dua entitas, yaitu angka jumlah pengulangan suatu karakter dan karakter itu sendiri Contoh: BBBBEEEEEEEECCCCDAAAAA dapat direpresentasikan dengan: 4B8E4C1D5A

5 Run Length Encoding (RLE) Jika diasumsikan 1 byte per karakter, maka BBBBEEEEEEEECCCCDAAAAA adalah 22 byte, dan 4B8E4C1D5A adalah 10 byte

6 Contoh RLE 1 1 2 1 1 1 1 1 3 4 4 4 4 1 1 3 3 3 5 1 1 1 1 3 3 Susunan bilangan pada tabel adalah: 121111134444113335111133 = 24 byte

7 Contoh RLE 1 Dihitung jumlah kemunculan data: (1,1) (2,1) (1,5) (3,1) (4,4) (1,2) (3,3) (5,1) (1,4) (3,2) Data kompresi: 1 1 2 1 1 5 3 1 4 4 1 2 3 3 5 1 1 4 3 2 = 20 byte

8 Contoh RLE 2 Data asli sebagai berikut: WWWWWWWWWWWWKWWWWWWWWWWWWKKKW WWWWWWWWWWWWWWWWWWWWWWWKWWWW WWWWWWWWWW Ada 67 karakter

9 Contoh RLE 2 Data disusun dengan algoritma RLE: 12W1K12W3K24W1K14W Ada 18 karakter

10 Huffman Coding Pengkodean karakter berdasarkan frekuensi kemunculan karakter tersebut Karakter kemudian disusun menjadi pohon biner Karakter yang sering muncul terletak dekat dengan akar sedangkan karakter yang jarang muncul terletak jauh dari akar Dengan demikian, karakter yang sering muncul memiliki kode yang pendek sedangkan yang jarang muncul memiliki kode yang panjang

11 Huffman Coding 1 Frekuensi karakter dari string yang akan dikompres dianalisa terlebih dahulu Selanjutnya dibuat pohon Huffman 2 Frekuensi terkecil dikerjakan terlebih dahulu dan diletakkan ke dalam leaf Leaf-leaf dikombinasikan dan dijumlahkan probabilitasnya atau frekuensinya menjadi root di atasnya

12 Contoh Huffman Misalkan ada string: AAAABBDCCAAAEEEBBBCDDAABCCDAAA = 30 byte = 30 x 8 = 240 bit Hitung frekuensi setiap karakter: Karakter Frekuensi Probabilitas A 12 12/30 B 6 6/30 C 5 5/30 D 4 4/30 E 3 3/30

13 Contoh Huffman (2) String terdiri atas 5 karakter yaitu A, B, C, D dan E Setiap karakter menjadi Subtree yang terpisah

14 Contoh Huffman (3) Subtree untuk D dan E mempunyai frekuensi yang paling kecil, maka keduanya digabung

15 Contoh Huffman (4) Subtree untuk B dan C mempunyai frekuensi yang paling kecil, sehingga mereka digabungkan

16 Contoh Huffman (5) Subtree untuk {B, C} dan {D, E} mempunyai frekuensi terkecil, kemudian digabungkan:

17 Contoh Huffman (6) Hasil akhir :

18 Contoh Huffman (7) Untuk mengkodekan karakter, setiap cabang kiri diberi nilai 0 dan setiap cabang kanan diberi nilai 1 Maka: A dikodekan 1 B dikodekan 000

19 Contoh Huffman (8) Jumlah bit yang diperlukan dengan kompresi Huffman menjadi: 12 + 18 + 15 + 12 + 9 = 66 bit Karakter Frekuensi Kode Panjang Kode Jumlah bit=frekuensi x panjang kode A 12 1 1 12 B 6 000 3 18 C 5 001 3 15 D 4 010 3 12 E 3 011 3 9

20 Huffman Decoding A A A A B B D C C 1 1 1 1 000 000 010 001 001 Menggunakan LUT (Look Up Table), jika diterima bit: 1 A 0 ada 4 kemungkinan, lihat bit kedua bit kedua 0 ada dua kemungkinan, lihat bit ketiga bit ketiga 0 yakin bahwa karakter adalah B

21 Arithmetic Coding 1 Memetakan seluruh pesan ke dalam bilangan asli antara 0 dan 1 2 Selang tersebut memiliki jumlah bilangan asli yang tidak terbatas sehingga memungkinkan untuk encoding pesan apapun 3 Arithmeic compression memungkinkan melakukan encoding pesan tanpa meng-assign bilangan biner tetap pada setiap karakter

22 D = Batas atas (UB) Batas bawah (LB) UB = LB + D x P(x), dimana P(x) adalah probabilitas dari karakter Range karakter [R(x)] = LB : UB = LB : LB + D x P(x) Nilai tag = nilai untuk melakukan decoding

23 Contoh Arithmetic Coding Encoding Pesan MURINU Total karakter : 6 Hitung probalibitas Karakter Probabilitas P(x) U 2/6 0,33 R 1/6 0,17 N 1/6 0,17 M 1/6 0,17 I 1/6 0,17

24 MURINU 1 0,68 U R 0,34 0,2856 U R D = UB LB = 0,34 0,17 = 0,17 R(I) = LB : LB + D x P(I) = 0,17 : 0,17 + 0,17 x 0,17 = 0,17 : 0,1989 R(M) = LB : LB + D x P(M) = 0,1989 : 0,1989 + 0,17 x 0,17 = 0,1989 : 0,2278 0,51 0,34 N 0,256 7 0,2278 N R(N) = LB : LB + D x P(N) = 0,2278 : 0,2278 + 0,17 x 0,17 = 0,2278 : 0,2567 0,17 M I 0,1989 M I R(R) = LB : LB + D x P(R) = 0,2567 : 0,2567 + 0,17 x 0,17 = 0,2567 : 0,2856 0 0,17

25 1 0 0,17 I 0,34 M 0,51 0,68 R U MURINU 0,34 0,17 0,1989 I 0,2278 M 0,2567 N 0,2856 U 0,2856 I M 0,313344 N 0,322592 R U 0,322592 0,313344 I 0,31648832 M N 0,31963264 R U 0,31806048 0,31491616 0,31361127 I 0,31387854 M N R U 0,31414581 0,34 0,304096 0,294848 0,31491616 R N 0,31414581 0,31392398 I 0,31396942 M N 0,3140603 R U 0,31401486 0,31387854 0,31441308 0,313344

26 0,3140603 < U < 0,31414581 Nilai tag untuk decoding : 0,31414581 + 0,3140603 2 = 0,31410306

27 Arithmetic Coding - Decoding Diketahui: Nilai tag = 0,31410306 Banyak karakter = 6 Nilai Probabilitas Karakter Karakter Probabilitas P(x) U 0,33 R 0,17 N 0,17 M 0,17 I 0,17

28 1 0 0,17 I 0,34 M 0,51 0,68 R U Nilai tag = 0,31410306 0,34 0,17 0,1989 I 0,2278 M 0,2567 N 0,2856 U 0,2856 I M 0,313344 N 0,322592 R U 0,322592 0,313344 I 0,31648832 M N 0,31963264 R U 0,31806048 0,31491616 0,31361127 I 0,31387854 M N R U 0,31414581 0,34 0,304096 0,294848 0,31491616 R N 0,31414581 0,31392398 I 0,31396942 M N 0,3140603 R U 0,31401486 0,31387854 0,31441308 0,313344

29 Kompresi Lossless Lempel-Ziv-Welch

30 Lempel-Ziv-Welch 1 Dibuat oleh Abraham Lempel, Jacob Ziv dan Terry Welch 2 Mensubstitusi kumpulan karakter dengan suatu kode 3 Melakukan kompresi dengan menggunakan kamus Fragmen-fragmen text digantikan dengan indeks yang diperoleh dari sebuah kamus

31 Algoritma Kompresi LZW 1. Inisialisasi kamus 2. P karakter pertama dalam stream karakter 3. C karakter berikutnya dalam stream karakter 4. IF string (P+C) terdapat dalam kamus THEN P P+C ELSE Cetak indeks string P Tambahkan string (P+C) ke dalam kamus dan berikan indeks berikutnya P C 5. IF NOT EOF THEN GOTO 2 ELSE Cetak indeks string P STOP

32 Initial Dictionary

33 Algoritma Dekompresi LZW 1. Kamus diinisialisasi dengan semua karakter dasar yang ada 2. CW Input pertama 3. Lihat kamus dan simpan string dari kode tersebut (string CW) ke output 4. C karakter pertama dalam string CW

34 Algoritma Dekompresi LZW 5. PW CW; CW indeks berikutnya dalam input 6. IF string CW terdapat dalam kamus THEN 1) Simpan string CW ke output 2) P string PW 3) C karakter pertama dari string CW 4) Tambahkan string (P+C) ke dalam kamus ELSE 1) Output string S string PW + C ke stream karakter 2) P string PW 3) C karakter pertama dari string S 4) Tambahkan string (P+C) ke dalam kamus 7. Kembali ke langkah 5

35 LZW Contoh 1 (1) (Kompresi) Input : ABABBABCAB Initial dictionary A = 1, B = 2, C = 3 Input = P NxCh = C Output Add to Dictionary Index Index String A B 1 4 AB B A 2 5 BA A B AB B 4 6 ABB B A BA B 5 7 BAB B C 2 8 BC C A 3 9 CA A B AB EOF 4 Output: 1 2 4 5 2 3 4

36 LZW Contoh 1 (2) (Dekompresi) Input : 1 2 4 5 2 3 4 Initial dictionary PW String 1 = A, 2 = B, 3 = C Add to CW P C Output Dictionary Index String Index String NULL 1 A A A A 2 B A B B 4 AB B 4 AB B A AB 5 BA AB 5 BA AB B BA 6 ABB BA 2 B BA B B 7 BAB B 3 C B C C 8 BC C 4 AB C A AB 9 CA AB EOF Output: A B AB BA B C AB

37 LZW Contoh 2 (1) (Kompresi) Input : ITETEBEBE Initial dictionary Input = P NxCh = C A=1,..., Z=26, (B=2, E=5, I=9, T=20) Output Add to Dictionary Index Index String I T 9 27 IT T E 20 28 TE E T 5 29 ET T E TE B 28 30 TEB B E 2 31 BE E B 5 32 EB B E BE EOF 31 Output: 9 20 5 28 2 5 31

38 LZW Contoh 2 (2) (Dekompresi) Input : 9 20 5 28 2 5 31 Initial dictionary PW String A=1,..., Z=26, (B=2, E=5, I=9, T=20) Add to CW P C Output Dictionary Index String Index String NULL 9 I I I I 20 T I T T 27 IT T 5 E T E E 28 TE E 28 TE E T TE 29 ET TE 2 B TE B B 30 TEB B 5 E B E E 31 BE E 31 BE E B BE 32 EB BE EOF Output: I T E TE B E BE

39 LZW SOAL 1 (1) (Kompresi) Buatlah kompresi dan dekompresi LZW Input : LOSSLESSLOSSLESS Initial dictionary A=1,, Z=26 Input = P NxCh = C Output Add to Dictionary Index Index String L O 12 27 LO

40 LZW SOAL 1 (2) (Kompresi) Input = P NxCh = C Output Add to Dictionary Index Code String Output:

41 LZW SOAL 1 (3) (Dekompresi) Input : 12 15 19 19 12 5 29 27 33 32 19 Initial dictionary A=1,, Z=26 PW String Add to CW P C Output Dictionary Index String Index String NULL 12 L L L

42 LZW SOAL 1 (4) (Dekompresi) PW String CW Add to Dictionary P C Output Index String Index String Output:

43 JAWABAN LZW SOAL 1 (1) (Kompresi) Input : LOSSLESSLOSSLESS Initial dictionary A=1,, Z=26 Input = P NxCh = C Output Add to Dictionary Index Index String L O 12 27 LO O S 15 28 OS S S 19 29 SS S L 19 30 SL L E 12 31 LE E S 5 32 ES S S SS L 29 33 SSL L O LO S 27 34 LOS

44 JAWABAN LZW SOAL 1 (2) (Kompresi) Input = P S SS NxCh = C S L Output Add to Dictionary Index Code String SSL E 33 35 SSLE E S ES S 32 36 ESS S EOF 19 Output: 12 15 19 19 12 5 29 27 33 32 19

45 JAWABAN SOAL 1 (3) (Dekompresi) Input : 12 15 19 19 12 5 29 27 33 32 19 Initial dictionary A=1,, Z=26 PW String Add to CW P C Output Dictionary Index String Index String NULL 12 L L L L 15 O L O O 27 LO O 19 S O S S 28 OS S 19 S S S S 29 SS S 12 L S L L 30 SL L 5 E L E E 31 LE E 29 SS E S SS 32 ES SS 27 LO SS L LO 33 SSL

46 JAWBAN LZW SOAL 1 (4) (Dekompresi) PW String CW P C Output Add to Dictionary Index String Index String SS 33 SSL SS S SSL 34 SSS SSL 32 ES SSL E ES 35 SSLE ES 19 S ES S S 36 ESS S EOF Output: L O S S L E SS LO SSL ES S