62
Lab. Sistem Komunikasi TeknikTelekomunikasi, JurusanTeknik Elektro FakultasTeknik Universitas Udayana Multimedia Data Compression : Lossless Compression Algorithm TE055405 Jaringan Multimedia Dr. I Made OkaWidyantara, ST, MT [email protected]

Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Embed Size (px)

DESCRIPTION

mata kuliah citra digital

Citation preview

Page 1: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Lab. Sistem KomunikasiTeknik Telekomunikasi, Jurusan Teknik Elektro

Fakultas Teknik Universitas Udayana

Multimedia Data Compression :Lossless Compression Algorithm

TE055405 Jaringan MultimediaDr. I Made Oka Widyantara, ST, MT

[email protected]

Page 2: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Lingkup Materi

Introduki dan Dasar-dasar Teori Informasi Algoritma Pengkodean Lossless◦ Run-Length Coding◦ Variable-Length Coding (VLC)◦ Dictionary-Based Coding◦ Arithmatic Coding

Lossless Image Compression

Page 3: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Introduksi

Adanya kebutuhan untuk konversi data ke bentuk digital◦ Perpustakaan, instansi pemerintahan dll◦ Menyimpan data tanpa kehilangan bentuk data dll

Contoh : Untuk menyandi (encode) 120 juta nomer telpontelpon◦ Masing-masing item membutuhkan 27 bit 227 > 120 juta◦ Kompresi diperlukan untuk menurunkan jumlah bit yang

diperlukan Data berbeda muncul pada frekuensi yang berbeda◦ Menetapkan jumlah bit lebih sedikit untuk data frekuensi

tinggi (lebih sering muncul)◦ VLC : Variable Length Code

Pengkodean tanpa rugu-rugi (Lossless coding)◦ Proses kompresi dan dekompresi tidak menginduksi

kehilangan informasi

Page 4: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Skema Kompresi Data

Definisi : Rasio Kompresi◦ Rasio Kompresi = B0 / B1

B0 = Jumlah bit sebelum kompresi B1 = Jumlah bit setelah kompresi

Rasio kompresi skema codec (encoder/dekoder) harus lebihbesar dari 1◦ Semakin tinggi rasio kompresi berarti, semakin baik skema

kompresi lossless

Page 5: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Dasar-dasar Teori Informasi

Claude E. Shannon, Entropy () dari sumber informasidengan S = {s1, s2,….., sn), dinyatakan dengan :

(*)

pi adalah probabilitas kejadian simbol si pada S

mengindikasikan jumlah informasi yang terkandungdalam si (self information), dikaitkan dengan jumlah bit yangdibutuhkan untuk enkode si

21

21

1log

log

n

ii in

i ii

H S pp

p p

21logip

Page 6: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Dasar-dasar Teori Informasi

Contoh : Jika probabilitas n dalam sebuah paper adalah 1/32,maka :◦ Self Information (I ) =

◦ String karakter nnn membutuhkan 15 bit untuk sebuahcode◦ Ini adalah dasar untuk menurunkan data dala kompresi text

(Bandingkan dengan pengkodean ASCII 8 bit perkarakter)

Entropy ?◦ Ukuran kekacauan sebuah sistem◦ Semakin banyak entropy, lebih banyak terjadi gangguan

2 21 log 32log log ( ) 5log 2( )

p n bitp n

Page 7: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Dasar-dasar Teori Informasi

Contoh◦ Asumsikan bahwa sistem memiliki 4 luaran, dengan

probabilitas masing-masing luran adalah ¼ :

◦ Jika satu state memiliki probablitas ½ , dan 3 state lainnyadengan probabilitas 1/6, maka :

Definisi Entropy : Mengidentifikasi simbol-simbol yang seringmuncul sebagai codewrs pendek.◦ Variable Length Coding (VLC)

2 2 141

1 1 1log 4 log 24n

ii i

p bitp

2 21 12 6

1 1 1 1log 3 log 1.795 22 6 bit bit

Page 8: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Dasar-dasar Teori Informasi

Histogram 2 citra level-Gray

Page 9: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Dasar-dasar Teori Informasi

Entropy dari dua citra tersebut adalah :◦ Entropy citra (a) adalah :

◦ Entropy citra (b) adalah :

Entropy lebih besar jika probabilitas seluruh sample adalahmerata, dan lebih kecil jika variasi probabilitas sample sangattinggi

255

20

1 1log 8 ; 256i ii i

p bit pp

2 21 23 3

1 1 2 1log log 0.923 3

bit

Page 10: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Dasar-dasar Teori Informasi

Entropy : M-filefunction H = entropy(S)% H = entropy(S)% S adalah probabilitas atau jumlah setiap simbol% S harus sebuah vektor dan bukan bilangan negatif

if nargin<1error('entropy: see help.')

end

N=sum(sum(S));if ((N>0) && (min(S(:))>=0))

Snz = nonzeros(S);H = log2(N)-sum(Snz.*log2(Snz))/N;

elseH=0;

end

return

Page 11: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Dasar-dasar Teori Informasi

Persamaan (*) juga menunjukan bahwa entropy () adalahjumlah bobot dari yaitu jumlah rata-rata informasiyang terkandung per simbol dalam sumber S

Entropy menyatakan batas bawah untuk rata-rata jumlah bityang dibutuhkan untuk mengkodekan setiap simbol dalam S,yaitu :

adalah panjang codeword rata-rata (dalam satuan bit)yang dihasilkan oleh enkoder

21logip

l

l

Page 12: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Run-Length Coding

RLC (RUN-LENGTH CODING)◦ Bentuk yang paling sederhana dari kompresi data

Ide Dasar:◦ Jika simbol-simbol dari sumber informasi cendrung

membentuk grup kontinyu, maka lebih efektif untukmengkodekan dalam beberapa simbol atau grup denganpanjang simbol tertentu, dibandingkan mengkodekan satuper satu simbol tersebut.

Contoh : citra bi-level ( 1 bit untuk piksel black dan white).Karena hanya terdapat dua simbol maka simbol-simbol efektifdikodekan dalam group simbol.

Page 13: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Run-Length Coding

Page 14: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Run-Length Coding

• Reduce the number of samples to code• Implementation is simple

Page 15: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Run-Length Coding

Basic idea◦ Entropy indicates the information content in an information

source◦ VLC is one of the best-know entropy

Coding methods◦ Shannon-Fano algorithm◦ Huffman coding◦ Adaptive Huffman coding

Page 16: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Variable-Length Coding

Shannon-Fano Algorithm◦ Dikembangkan oleh Shannon di Bell Labs dan Robert

Fano di MIT◦ Tahap-tahap enkoding dinyatakan dengan cara top-down Urutkan simbol-simbol sesuai dengan jumlah frekuensi

kemunculannya Bagi simbol secara rekursif menjadi dua bagian, masing-

masing dengan jumlah kemunculan yang salingmendekati, sehingga seluruh bagian hanya terdiri atassatu simbol. Penerapan prosedur diatas adalah dengan membangun

pohon biner.

Page 17: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Variable-Length Coding

Contoh : Asumsikan simbol yang dkodekan adalah karakterHELLO, dengan jumlah kemunculan (frekuensi) simbol adalah :

Page 18: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Variable-Length Coding

Entropy :

0.4×1.32+0.2×2.32+0.2×2.32+0.2×2.32=1.92 S-F algorithm untuk “Hello”:

bit rata-rata adalah 10/5 = 2 bit mendekati batas bawahdari 1.92 bit

4

21

1logii i

pp

Page 19: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Variable-Length Coding

Contoh lain

Page 20: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Variable-Length Coding

Huffman Coding First presented by David A. Huffman in 1952 Adopted in applications, Such as fax、JPEG、MPEG Algoritma : Cara bottom-up◦ Inisialisasi : tempatkan seluruh simbol pada daftar yang diatur

selaras dengan jumlah frekuensi kemunculannya.◦ Ulangi sampai daftar hanya menyisakan satu simbol Dari daftar, ambil dua simbol dengan frekuensi terendah,

kemudian bentuk sub-pohon untuk kedua simbol ini sebagaichild node dan buat parent node untuk child node tersebut. Jumlahkan child node pada parent node. Selanjutnya

tempatkan hasil penjumlahan tersebut dalam daftar sehinggaorde dapat dijaga. Hapus child node dari daftar

◦ Tetapkan sebuah codeword dengan mengikuti jalur dimulai dariroot.

Page 21: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Variable-Length Coding

Page 22: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Variable-Length Coding

Page 23: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Variable-Length Coding

Untuk contoh “HELLO” diatas, Pengkodean Huffmanmenghasilkan pengkodean yang sama dengan Shannon-Fano

Contoh lainnya :A:(15), B:(7), C:(6), D:(6) and E:(5)

– Shannon-Fano needs 89bits;– Huffman needs 87 bits

Page 24: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Variable-Length Coding

Sifat-sifat pengkodean Huffman1. Prefix unik: setiap kode Huffman tidak menjadi prefix dari

kode Huffman lainnya untuk mencegah ambigudekoding. Juga diterapkan pada Shannon-Fano Code

2. Optimality: redundansi code minimum Dua simbol dengan frekuensi terkecil memiliki panjang

kode Huffman sama, hanya berbeda di bit terakhir. Simbol-simbol yang terjadi lebih sering memiliki kode

Huffman lebih pendek, dibandingkan dengan simbolyang jarang terjadi. Rata-rata panjang kode untuk sumber informasi S

adalah kurang dari η + 1.

Page 25: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Variable-Length Coding

Extended Huffman Coding◦ Motivasi: Seluruh codeword dalam pengkodean Huffman

memiliki panjang bit integer. Adalah sangat tidak efisien(boros) ketika pi adalah sangat besar , dimana :

◦ Mengapa tidak mengelompokan beberapa simbol danmenetapkan sebuah codeword untuk kelompok tersebut◦ Cara ini disebut dengan Extended Huffman Coding.

Untuk alphabet S = {s1, s2, . . . , sn}, jika terdapat k simboldikelompokan, kemudian diperluas:

◦ Ukuran alphabet baru S(k) adalah nk.

21log mendekati 0ip

21logip

Page 26: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Variable-Length Coding

Jika entropy dari S adalah , telah dibuktikan bahwa rata-ratajumlah bit untuk setiap simbol adalah :

Terdapat perbaikan pada original Huffman coding

Persoalan : Jika k adalah relatif besar (seperti., k ≥ 3), makauntuk aplikasi dimana n >>1, nk merupakan jumlah yangsangat besar dan juga membutuhkan tabel simbol yangsangat besar. Hal ini menyebabkan Extended HuffmanCoding menadi Impraktikal.

Page 27: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Dictionary-Based Coding

Pertama kali diajukan oleh Ziv dan Lempel tahun 1977dan1978.

Terry Welch telah memperbaiki teknik ini di tahun 984 Menggunakan fixed-length codeword◦ Menunjukan nilai yang mungkin dari string panjang

variable (simbol atau karakter) yang umum terjadi secarabersama-sama, seperti kata-kata dalam text

Lempel-Ziv-Welch algorithm (called LZW compression)adalah adaptif, teknik berbasis-kamus (dictionary)◦ Unix compress, GIF files.◦ Enkoder dan dekoder LZW membangun kamus yang sama

secara dinamik selama penerimaan data.

Page 28: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Compression for String

Input dataABABBABCABABBA

Initial simple dictionary only includes the possible values ofthe alphabet

Then, apply the following algorithm

Page 29: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Compression Algorithm

BEGINs = first input character;while not EOF{

c = next input character;if s + c exists in the dictionary

s = s + c;else{output the code for s;add string s + c to the dictionary with a new code;s = c;}

}output the code for s;END

Page 30: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Compression Algorithm

The output codes are:

Page 31: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Compression Algorithm

The output codes are: 1

Page 32: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Compression Algorithm

The output codes are: 1

Page 33: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Compression Algorithm

The output codes are: 1

Page 34: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Compression Algorithm

The output codes are: 1 2

Page 35: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Compression Algorithm

The output codes are: 1 2

Page 36: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Compression Algorithm

Page 37: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Decompression

BEGINs = NIL;while not EOF{

k = next input code;entry = dictionary entry for k;output entry;if (s != NIL)

add s + entry[0] to dictionary with a new code;s = entry;

}END

Page 38: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Decompression

Page 39: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Decompression

Page 40: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Decompression

Page 41: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Decompression

Page 42: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Decompression

Page 43: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Decompression

Page 44: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Decompression

Page 45: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Decompression

Page 46: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

LZW Decompression

Page 47: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Arithmetic Coding

Arithmetic coding dilakukan pada seluruh message denganhalf-open interval [a,b) dalam [0,1).

Panjang interval [a,b) sama dengan probabilitas message.Pilih sebuah desimal dalam [a,b) dan transformasikankedalam bentuk biner sebagai output coding

Setiap karakter dapat mempersingkat interval, sehingga lebihbanyak karakter dalam message, interval menjdai lebihpendek

Interval menjadi lebih pendek, maka lebih banyak bit yangdibutuhkan untuk mewakili interval

Page 48: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Arithmetic Coding

Page 49: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Arithmetic Coding

Contoh : encoding pada arithmatic codingEnkode simbol-simbol “CAEE$” dengan distribusi probabiltassimbol seperti tabel dibawah

a. Distribusi probabilitas simbol

Page 50: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Arithmetic Coding

b. Graphical display of shrinking ranges

Page 51: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Arithmetic Coding

Page 52: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Arithmetic Coding

Catatan : Codeword biner terpendek diperoleh jika :1. low dan high adalah pada range terakhir2. Low < high

Page 53: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Arithmetic Coding

Low = 0.33184 ; high = 0.3322 Tetapkan 1 untuk bit pecahan biner pertama◦ Code = 0.1◦ Desimal = value(code) = value(0.1) = 2-1 = 0.5 > high◦ Ganti bit pertama dengan 0 Code = 0.0

◦ Karena value(0.0) = 0 < low, while loop continue Tetapkan 1 untuk bit kedua◦ Code = 0.01◦ Desimal = value(0.01) = 2-2 = 0.25 < high◦ Value(0.01) < low, iterasi berlanjut

……………….. Codeword biner yang dihasilkan : 0.01010101

Desimal = value(0.01010101) = 2-2+2-4+2-6+2-8 = 0.33203125

Page 54: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Arithmetic Coding

Arithmetic Coding Decoder

Page 55: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Arithmetic Coding

Arithmetic coding: decode symbols “CAEE$” Inisial : value = 0.33203125 Range_Low(C)=0.3 0.33203125<0.5 =Range-high(C)◦ Output simbol pertama = C◦ Nilai value baru = [0.33203125-0.3]/0.2 = 0.16015625◦ Output simbol kedua = A

Page 56: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Lossless Image Compression

Differential Coding of Image Lossless JPEG

Page 57: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Differential Coding of Images

Given an original image I (x, y), defining a difference image d(x, y) : Using a simple difference operator

d(x,y)=I(x,y)-I(x-1,y) Discrete 2D Laplacian operator

d(x,y)=4I(x,y)-I(x,y-1)-I(x,y+1)-I(x+1,y)-I(x-1,y) Due to spatial redundancy existed in normal images I, the

difference image d will have a narrower histogram and hencea smaller entropy : VLC -- shorter bit-length for the difference image Compression works better on a difference image

Page 58: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Differential Coding of Images

Page 59: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Lossless JPEG

Lossless JPEG: A special case of the JPEG imagecompression.

• The Predictive method1. Forming a differential prediction: A predictor combines

the values of up to three neighboring pixels as thepredicted value for the current pixel, indicated by ‘X’ inFig. 7.10. The predictor can use any one of the sevenschemes listed in Table 7.6.

2. Encoding: The encoder compares the prediction withthe actual pixel value at the position ‘X’ and encodes thedifference using one of the lossless compressiontechniques we have discussed, e.g., the Huffman codingscheme.

Page 60: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Lossless JPEG

Note: Any of A, B, or C has already been decoded before itis used in the predictor on the decoder side of an encodedecode cycle

Fig. 7.10: Neighboring Pixels for Predictors in Lossless JPEG

Page 61: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Lossless JPEG

Page 62: Bab 6 - Multimedia Data Compression-Lossless Compression Algorithm

Lossless JPEG