Anda di halaman 1dari 43

7.

Kompresi Data
Multimedia
Multimedia

Kompresi Data

Kompresi berarti memampatkan/mengecilkan ukuran

Kompresi data adalah proses mengkodekan informasi menggunakan bit atau


information-bearing unit yang lain yang lebih rendah daripada representasi data yang
tidak terkodekan dengan suatu sistem enkoding tertentu.

Contoh kompresi sederhana yang biasa dilakukan misalnya adalah menyingkat katakata yang sering digunakan tetapi sudah memiliki konvensi umum. Misalnya: kata
yang dikompres menjadi kata yg.

Department of Informatics Universitas Islam Indonesia

Kompresi Data
Pengiriman data hasil kompresi dapat dilakukan jika pihak pengirim/yang melakukan
kompresi dan pihak penerima memiliki aturan yang sama dalam hal kompresi data.
Pihak pengirim harus menggunakan algoritma kompresi data yang sudah baku dan pihak
penerima juga menggunakan teknik dekompresi data yang sama dengan pengirim
sehingga data yang diterima dapat dibaca/di-dekode kembali dengan benar.
Manfaat Kompresi data:

memperkecil kebutuhan penyimpanan data,

mempercepat pengiriman data,

memperkecil kebutuhan bandwidth.

Teknik kompresi bisa dilakukan terhadap data teks/biner, gambar, audio, dan video.

Department of Informatics Universitas Islam Indonesia

Data Teks

Contoh kebutuhan data selama 1 detik pada layar resolusi 640 x 480:

1 karakter = 2 byte (termasuk karakter ASCII Extended)

Setiap karakter ditampilkan dalam 8x8 pixel

Jumlah karakter yang dapat ditampilkan per halaman =

640 x480
4800karakter
8 x8

Kebutuhan tempat penyimpanan per halaman = 48002 B = 9600 B = 9,375 KB Data

Department of Informatics Universitas Islam Indonesia

Data Grafik Vektor

Contoh kebutuhan data selama 1 detik pada layar resolusi 640 x 480:

1 gambar diam membutuhkan 500 baris

Setiap 1 baris direpresentasikan dalam posisi horisontal, vertikal, dan field atribut
sebesar 8 bit

Sumbu Horizontal direpresentasikan dengan log2 640 = 10 bit

Sumbu Vertical direpresentasikan dengan log2 480 = 9 bit

Bit per line = 9 bit + 10 bit + 8 bit = 27 bit

Kebutuhan penyimpanan per halaman layar = 50027/8 = 1687,5 B = 1,65 KB

Department of Informatics Universitas Islam Indonesia

Kebutuhan Tempat Penyimpanan

Kebutuhan tempat penyimpanan untuk media kontinyu untuk 1 detik


playback:

Sinyal audio tidak terkompres dengan kualitas suara telepon dengan sample 8
kHz dan dikuantisasi 8 bit per sample, pada bandwidth 64 Kbps,
membutuhkan penyimpanan/second:

64Kbit / s
1s
x
8Kbyte
8bit / byte 1.024byte / Kbyte

Sinyal audio CD disample 44,1 kHz, dikuantisasi 16 bit per sample,

Kebutuhan penyimpanan = 44,1 kHz x 16 bit = 705,6 x 125 = 88.200 byte untuk
menyimpan 1 detik playback

Department of Informatics Universitas Islam Indonesia

Kebutuhan Tempat Penyimpanan

Kebutuhan sistem PAL standar

625 baris dan 25 frame/detik

3 byte/pixel (luminance, red chrome, blue chrome)

Luminance Y menggunakan sample rate 13,5 MHz

Chrominance (R-Y dan B-Y) menggunakan sample rate 6.75 MHz

Jika menggunakan 8 bit/sample, maka

Department of Informatics Universitas Islam Indonesia

Jenis Kompresi Data


Berdasarkan Mode Penerimaan Data oleh Manusia

Dialoque Mode: yaitu proses penerimaan data dimana pengirim dan penerima
seakan berdialog (real time), seperti pada contoh video conference.

kompresi data harus berada dalam batas penglihatan dan pendengaran manusia.
Waktu tunda (delay) tidak boleh lebih dari 150 ms, dimana 50 ms untuk proses
kompresi dan dekompresi, 100 ms mentransmisikan data dalam jaringan.

Retrieval Mode: yaitu proses penerimaan data tidak dilakukan secara real
time

Dapat dilakukan fast forward dan fast rewind di client

Dapat dilakukan random access terhadap data dan dapat bersifat interaktif

Department of Informatics Universitas Islam Indonesia

Jenis Kompresi Data


Berdasarkan Output

Lossy Compression

Teknik kompresi dimana data hasil dekompresi tidak sama dengan data sebelum kompresi
namun sudah cukup untuk digunakan. Teknik ini efektif digunakan untuk kompresi graphic
images dan suara digital dimana kehilangan visual dapat ditoleransi.

Contoh: MP3, streaming media, JPEG, MPEG, dan WMA.

Kelebihan: ukuran file lebih kecil dibanding loseless namun masih tetap memenuhi syarat
untuk digunakan.

Biasanya teknik ini membuang bagian-bagian data yang sebenarnya tidak begitu berguna,
tidak begitu dirasakan, tidak begitu dilihat oleh manusia sehingga manusia masih beranggapan
bahwa data tersebut masih bisa digunakan walaupun sudah dikompresi.

Misal terdapat image asli berukuran 12,249 bytes, kemudian dilakukan kompresi dengan JPEG kualitas
30 dan berukuran 1,869 bytes berarti image tersebut 85% lebih kecil dan ratio kompresi 15%.

Department of Informatics Universitas Islam Indonesia

Jenis Kompresi Data


Berdasarkan Output

Lossless Compression

Teknik kompresi dimana data hasil kompresi dapat didekompres lagi dan hasilnya tepat sama
seperti data sebelum proses kompresi. Contoh aplikasi: ZIP, RAR, GZIP, 7-Zip

Contoh: data teks, data program/biner, beberapa image seperti GIF dan PNG.

Kadangkala ada data-data yang setelah dikompresi dengan teknik ini ukurannya menjadi lebih
besar atau sama.

Contoh metode: Run Length Encoding (RLE), Shannon-Fano Huffman, Lempel-Ziv-Welch (LZW)

Department of Informatics Universitas Islam Indonesia

10

Kriteria Algoritma dan Aplikasi


Kriteria Algoritma dan Aplikasi Kompresi Data

Kualitas data hasil enkoding: ukuran lebih kecil, data tidak rusak untuk
kompresi lossy.

Kecepatan, ratio, dan efisiensi proses kompresi dan dekompresi

Ketepatan proses dekompresi data: data hasil dekompresi tetap sama dengan
data sebelum dikompres (kompresi loseless)

Department of Informatics Universitas Islam Indonesia

11

Klasifikasi Teknik Kompresi


Entropy Encoding

Bersifat lossless

Tekniknya tidak berdasarkan media dengan spesifikasi dan karakteristik


tertentu namun berdasarkan urutan data.

Statistical encoding, tidak memperhatikan semantik data.

Misal: Run-length coding, Huffman coding, Arithmetic coding

Department of Informatics Universitas Islam Indonesia

12

Klasifikasi Teknik Kompresi


Source Coding

Bersifat lossy

Berkaitan dengan data semantik (arti data) dan media.

Misal: Prediction (DPCM, DM), Transformation (FFT, DCT), Layered Coding (Bit
position, sub sampling, sub-band coding), Vector quantization

Hybrid Coding

Gabungan antara lossy + loseless

Misal: JPEG, MPEG, H.261, DVI

Department of Informatics Universitas Islam Indonesia

13

Algoritma Kompresi

Beberapa contoh algoritma kompresi

Run-Length-Encoding (RLE)

Static Huffman Coding (SHC)

Shannon-Fano Algorithm (SFA)

Adaptive Huffman Coding (AHC)

Lempel-Ziv-Welch (LZW)

Department of Informatics Universitas Islam Indonesia

14

Run-Length-Encoding (RLE)

Teknik yang digunakan untuk mengurangi ukuran data teks jika ada beberapa huruf
yang sama yang ditampilkan berturut-turut:

Misal:
Data: ABCCCCCCCCDEFGGGG = 17 karakter
RLE tipe 1 (min. 4 huruf sama) : ABC!8DEFG!4 = 11 karakter

RLE tipe 1 menggunakan suatu karakter yang tidak digunakan dalam teks tersebut
seperti misalnya ! untuk menandai.

Kompresi secara normal diukur dengan rasio kompresi :


rasio kompresi = ukuran asli/ukuran terkompres : 1

Contoh 11karakter 'H secara normal membutuhkan tempat penyimpanan 11 byte :


HHHHHHHHHHH dengan RLE tipe 2, hanya membutuhkan dua byte untuk menyimpan,
jumlah (11) disimpan sebagai byte pertama dan simbol (H) sebagai byte kedua.

Department of Informatics Universitas Islam Indonesia

15

Run-Length-Encoding (RLE)

Contoh 1 :
16 karakter string : hhhOOOOOOaaaaXXX
Dikompres menjadi --> 3(h),6(O),4(a),3(X)
16 byte string hanya membutuhkan 8 byte data untuk merepresentasi string.
rasio kompresi = 2 : 1.

Contoh 2 (pengulangan sumber):


9 karakter : 1,3,5,1,3,5,1,3,5
Dikompres menjadi --> 3(1,3,5)
rasio kompresi = 9/4 : 1, mendekati 2 : 1.

Department of Informatics Universitas Islam Indonesia

16

Run-Length-Encoding (RLE)

Kelemahan: Jika ada karakter angka, mana tanda mulai dan akhir?

Misal data : ABCCCCCCCCDEFGGGG = 17 karakter RLE tipe 2: -2AB8C-3DEF4G = 13 karakter

Misal data : AB12CCCCDEEEF = 13 karakter RLE tipe 2: -4AB124CD3EF = 12 karakter

RLE ada yang menggunakan flag bilangan negatif untuk menandai batas sebanyak
jumlah karakter tersebut.

Berguna untuk data yang banyak memiliki kesamaan, misal teks ataupun grafik seperti
icon atau gambar garis-garis yang banyak memiliki kesamaan pola.

Best case: untuk RLE tipe 2 adalah ketika terdapat 127 karakter yang sama sehingga akan
dikompres menjadi 2 byte saja.

Worst case: untuk RLE tipe 2 adalah ketika terdapat 127 karakter yang berbeda semua, maka
akan terdapat 1 byte tambahan sebagai tanda jumlah karakter yang tidak sama tersebut.

Department of Informatics Universitas Islam Indonesia

17

Run-Length-Encoding (RLE)

Contoh kegagalan RLE :

Karakter : XttmprsQssqznO

RLE : 1(X),2(t),1(m),1(p),1(r),1(s),1(Q),2(s),1(q), 1(z),1(n),1(O)

RLE FAILED

gagal untuk mengkompres.

Ukuran jadi lebih besar dari data asli.

Department of Informatics Universitas Islam Indonesia

18

Run-Length-Encoding (RLE)

Contoh untuk data image:

Department of Informatics Universitas Islam Indonesia

19

Static Huffman Coding

Tipe 1

Frekuensi karakter dari string yang akan dikompres dianalisis terlebih dahulu.

Selanjutnya dibuat pohon huffman yang merupakan pohon biner dengan root awal
yang diberi nilai 0 (sebelah kiri) atau 1 (sebelah kanan), sedangkan selanjutnya
untuk dahan kiri selalu diberi nilai 1(kiri) - 0(kanan) dan di dahan kanan diberi nilai
0(kiri) 1(kanan)

Pendekatan bottom-up = frekuensi terkecil dikerjakan terlebih dahulu dan


diletakkan ke dalam leaf (daun).

Kemudian leaf-leaf akan dikombinasikan dan dijumlahkan probabilitasnya menjadi


root diatasnya.

Department of Informatics Universitas Islam Indonesia

20

Static Huffman Coding

Misal: MAMA SAYA

A =4 -> 4/8=0.5

M =2 -> 2/8=0.25

S =1 -> 1/8=0.125

Y =1 -> 1/8=0.125

Total = 8 karakter

Buat pohon Huffman (dengan pembobotan) seperti berikut

Sehingga w(A) = 1, w(M) = 00, w(S) = 010, dan w(Y) = 011

Department of Informatics Universitas Islam Indonesia

21

Static Huffman Coding

Tipe 2

Contoh mengkodekan kata MULTIMEDIA

Kodekan setiap karakter dalam ASCII :

Jika multimedia diubah dalam bit, menjadi : 01001101 01010101 01001100 01010100
01001001 01001101 01000101 01000100 01001001 01000001 - total 80 bit

Department of Informatics Universitas Islam Indonesia

22

Static Huffman Coding


1.

Menghitung jumlah frekuensi tiap karakter

2.

Mengurutkan tiap karakter dari frekuensi terendah, jika ada karakter yang
sama jumlah frekuensinya, urutkan sesuai ASCII binary.

Department of Informatics Universitas Islam Indonesia

23

Static Huffman Coding


3.

Gambar pohon Huffman dari karakter-karakter.


a.

Ambil 2 node di sebelah kiri (A and D), kemudian buatlah node baru yang
merupakan kombinasi dari kedua node. Kombinasi node akan mempunyai dua
cabang dari kedua komponen node. Frekuensi dari kombinasi node merupakan
jumlah frekuensi kedua cabang node.

Department of Informatics Universitas Islam Indonesia

24

Static Huffman Coding


3.

Gambar pohon Huffman dari karakter-karakter.


b.

Urutkan sesuai frekuensi. Ulangi langkah

Department of Informatics Universitas Islam Indonesia

25

Static Huffman Coding


3.

Gambar pohon Huffman dari karakter-karakter.


c.

Urutkan sesuai frekuensi. Ulangi langkah

Department of Informatics Universitas Islam Indonesia

26

Static Huffman Coding


3.

Gambar pohon Huffman dari karakter-karakter.


d.

Urutkan sesuai frekuensi. Ulangi langkah

Department of Informatics Universitas Islam Indonesia

27

Static Huffman Coding


3.

Gambar pohon Huffman dari karakter-karakter.


e.

Urutkan sesuai frekuensi. Ulangi langkah

Department of Informatics Universitas Islam Indonesia

28

Static Huffman Coding


3.

Gambar pohon Huffman dari karakter-karakter.


f.

Jika sudah selesai, letakkan bit 0 dan 1 pada pohon

Department of Informatics Universitas Islam Indonesia

29

Static Huffman Coding


4.

Buat daftar kode Huffman dari pohon

Department of Informatics Universitas Islam Indonesia

30

Static Huffman Coding


5.

Kodekan setiap karakter berdasar pada urutan kode Huffman

Menggunakan algoritma Huffman coding, menghemat 80 - 30 = 50 bit.

Department of Informatics Universitas Islam Indonesia

31

Shannon-Fano Algorithm

Dikembangkan oleh Shannon (Bell Labs) dan Robert Fano (MIT)

Pendekatan top-down

Contoh: HELLO

Jika digunakan binary ASCII untuk menyimpan HELLO, dibutuhkan 5 x 8 bit =


40 bit

Department of Informatics Universitas Islam Indonesia

32

Shannon-Fano Algorithm

Algoritma :
1.

Urutkan simbol berdasarkan frekuensi kemunculannya

2.

Bagi simbol menjadi 2 bagian secara rekursif,


dengan jumlah yang kira-kira
sama pada kedua bagian, sampai tiap bagian hanya
terdiri dari 1 simbol.

Cara yang paling tepat untuk mengimplementasikan adalah dengan membuat


binary tree.

Department of Informatics Universitas Islam Indonesia

33

Shannon-Fano Algorithm

Hanya butuh 10 bit, dari 40 bit. Hemat 30 bit

Department of Informatics Universitas Islam Indonesia

34

Shannon-Fano Algorithm

Solution 2

Department of Informatics Universitas Islam Indonesia

35

Adaptive Huffman Coding

Metode SHC mengharuskan kita mengetahui terlebih dahulu frekuensi masing-masing


karakter sebelum dilakukan proses pengkodean.

Metode AHC merupakan pengembangan dari SHC dimana proses penghitungan frekuensi
karakter dan pembuatan pohon Huffman dibuat secara dinamis pada saat membaca
data.

Algoritma Huffman sangat tepat bila dipergunakan pada informasi yang bersifat statis.
Sedangkan untuk aplikasi multimedia, dimana data yang datang belum dapat dipastikan
kedatangannya (audio dan video streaming), maka dapat digunakan algoritma Adaptive
Huffman.

Metode SHC maupun AHC merupakan kompresi yang bersifat loseless.

Dibuat oleh David A. Huffman dari MIT tahun 1952. Huffman banyak dijadikan back-end pada
algoritma lain, seperti Arithmetic Coding, aplikasi PKZIP, JPEG, dan MP3.

Department of Informatics Universitas Islam Indonesia

36

Adaptive Huffman Coding

Department of Informatics Universitas Islam Indonesia

37

Dictionary-Based Coding: LZW

Algoritma Lempel-Ziv-Welch (LZW) menggunakan teknik adaptif dan berbasiskan


kamus

Pendahulu LZW adalah LZ77 dan LZ78 yang dikembangkan oleh Jacob Ziv dan Abraham
Lempel pada tahun 1977 dan 1978. Terry Welch mengembangkan teknik tersebut pada
tahun 1984.

LZW banyak dipergunakan pada UNIX, GIF, V.42 untuk modem.

Contoh: string ABABBABCABABBA

Buat tabel seperti ini:

Department of Informatics Universitas Islam Indonesia

38

LZW

Dikodekan menjadi

Output:

124523461

Meskipun ada 14 karakter


hanya 9 kode yang dikirim
Rasio kompresi=14/9=1.56

Department of Informatics Universitas Islam Indonesia

39

LZW

Contoh Dekompresi

Input : 1 2 4 5 2 3 4 6 1

Department of Informatics Universitas Islam Indonesia

40

Aplikasi Kompresi: ZIP

Ditemukan oleh Phil Katz untuk program PKZIP kemudian dikembangkan untuk WinZip,
WinRAR, 7-Zip.

Berekstensi *.zip dan MIME application/zip

Dapat menggabungkan dan mengkompresi beberapa file sekaligus menggunakan


bermacam-macam algoritma, namun paling umum menggunakan Katzs Deflate Algorithm.

Beberapa metode Zip:

1.

Shrinking : merupakan metode variasi dari LZW

2.

Reducing : merupakan metode yang mengkombinasikan metode same byte sequence based dan
probability based encoding.

3.

Imploding : menggunakan metode byte sequence based dan Shannon-Fano encoding.

4.

Deflate : menggunakan LZW

5.

Bzip2, dan lain-lain

Aplikasi: WinZip oleh Nico-Mak Computing

Department of Informatics Universitas Islam Indonesia

41

Aplikasi Kompresi: RAR

Ditemukan oleh Eugene Roshal, sehingga RAR merupakan singkatan dari Roshal Archive
pada 10 Maret 1972 di Rusia.

Berekstensi .rar dan MIME application/x-rar-compressed

Proses kompresi lebih lambat dari ZIP tapi ukuran file hasil kompresi lebih kecil.

Aplikasi: WinRAR yang mampu menangani RAR dan ZIP, mendukung volume split,
enkripsi AES.

Department of Informatics Universitas Islam Indonesia

42

Thank you
See you next lecture!!
Multimedia Semester Ganjil 2012/2013

Anda mungkin juga menyukai