(LZW)
Compression
TEORI PENGOLAHAN CITRA DIGITAL
3 TI-A
Kelompok 6
Adinda Fiandini
Maria Ferolia S
Wahyu Gunanda
Yeni Rorita
Sejarah Algoritma LZW
Dikembangkan oleh Terry A.Welch dari
metode kompresi sebelumnya yang
ditemukan oleh Abraham Lempel dan
Jacob Ziv pada tahun 1977.
Sifat Algoritma LZW
Bersifat lossless
Menggunakan metode dictionary
Kode 0-255 mewakili urutan satu karakter
dengan ukuran 8 bit per karakter
Algoritma LZW melakukan kompresi
dengan mengunakan kode table 256
hingga 4095 untuk mengkodekan
pasangan byte, Code Words, atau string
Code Words
Merupakan kode yang bersifat unik
Mewakili karakter atau string baru yang
terbentuk setiap kali algoritma LZW memproses
inputan
Jumlah dari string-string yang terdapat dalam
dictionary ditentukan dari besarnya bit dictionary
yang dipakai dimana code word mewakili setiap
string-string tersebut, semakin banyak string
yang dihasilkan maka semakin besar pula bit
dictionary yang dibutuhkan untuk memberikan
indek bagi setiap string yang dihasilkan.
Flowchart Algoritma
Kompresi LZW
Contoh Kasus
Berikut ini adalah urutan hasil representasi
kode yang digunakan pada format TIFF, GIF,
PDF :
8 12 4 8 12 4 8 4 4 8 4 12 8 4 12 8
256 8 12
257 12 4
258 4 8
259 8 12 4
259 256 4
Penyelesaian Soal [bag.3]
8 12 4 8 12 4 8 4 4 8 4 12 8 4 12 8
260 4 8 4
260 258 4
261 4 4
262 4 8 4 12
262 260 12
Penyelesaian Soal [bag.4]
8 12 4 8 12 4 8 4 4 8 4 12 8 4 12 8
263 12 8
264 8 4
265 4 12
Penyelesaian Soal [bag.5]
Hasilnya :
8 12 4 8 12 4 8 4 4 8 4 12 8 4 12 8
Menjadi
[Size kode hasil = 9 bit x 11] < [Size kode awal = 8 bit x 16]
Tabel Ringkasan Penyelesaian Soal
Code Words (w) Next Code (k) w+k Index Code Output
8 12 8 12 256 8
12 4 12 4 257 12
4 8 4 8 258 4
8 12 8 12 256 -
256 (w=wk) 4 256 4 259 256
4 8 4 8 258 -
258 4 258 4 260 258
4 4 4 4 261 4
4 8 4 8 258 -
8 4 4 8 4 = 258 4 260 -
260 12 4 8 4 12 262 260
12 8 12 8 263 12
8 4 8 4 264 8
4 12 4 12 265 4
12 8 12 8 263 -
263 - - - 263
Dekompresi LZW
Langkah Dekompresi LZW
1. Menginisialisasi seluruh dictionary yang mengandung
karakter-karekter ASCII (karakter dasar).
2. Baca kode (huruf atau code word) pertama dari hasil
kompresi LZW kemudian outputkan karakter yang dibaca
kemudian simpan kode ke variable w.
3. Baca kode selanjutnya
4. Copy kode yang dibaca ke varible entry
5. Outputkan kode (karakter)
6. Gabungkan value dari karakter sebelumnya dari entry
dengan variable w kemudian simpan sebagai dictionary
7. Isi variable w dengan value dari variable entry.
8. Kembali ke langkah 3
Tabel Hasil Dekompresi
Code Words w Entry Code Dictionary Index Code Output
8 8 8 - - 8
12 12 12 8 12 256 12
4 4 4 12 4 257 4
256 8 8 4 8 258 8
- 12 12 8 12 256 12
258 4 4 8 12 4 259 4
- 8 8 4 8 258 8
4 4 4 4 8 4 260 4
260 4 4 4 4 261 4
- 8 8 4 8 258 8
- 4 4 4 84 260 4
12 12 12 4 8 4 12 262 12
8 8 8 12 8 263 8
4 4 4 8 4 264 4
263 12 12 4 12 265 12
- 8 8 12 8 263 8
Apakah ada pertanyaan?
End of Presentation