bab 6 - multimedia data compression-lossless compression algorithm
DESCRIPTION
mata kuliah citra digitalTRANSCRIPT
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
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
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
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
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
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
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
Dasar-dasar Teori Informasi
Histogram 2 citra level-Gray
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
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
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
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.
Run-Length Coding
Run-Length Coding
• Reduce the number of samples to code• Implementation is simple
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
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.
Variable-Length Coding
Contoh : Asumsikan simbol yang dkodekan adalah karakterHELLO, dengan jumlah kemunculan (frekuensi) simbol adalah :
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
Variable-Length Coding
Contoh lain
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.
Variable-Length Coding
Variable-Length Coding
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
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.
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
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.
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.
LZW Compression for String
Input dataABABBABCABABBA
Initial simple dictionary only includes the possible values ofthe alphabet
Then, apply the following 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
LZW Compression Algorithm
The output codes are:
LZW Compression Algorithm
The output codes are: 1
LZW Compression Algorithm
The output codes are: 1
LZW Compression Algorithm
The output codes are: 1
LZW Compression Algorithm
The output codes are: 1 2
LZW Compression Algorithm
The output codes are: 1 2
LZW 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
LZW Decompression
LZW Decompression
LZW Decompression
LZW Decompression
LZW Decompression
LZW Decompression
LZW Decompression
LZW Decompression
LZW Decompression
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
Arithmetic Coding
Arithmetic Coding
Contoh : encoding pada arithmatic codingEnkode simbol-simbol “CAEE$” dengan distribusi probabiltassimbol seperti tabel dibawah
a. Distribusi probabilitas simbol
Arithmetic Coding
b. Graphical display of shrinking ranges
Arithmetic Coding
Arithmetic Coding
Catatan : Codeword biner terpendek diperoleh jika :1. low dan high adalah pada range terakhir2. Low < high
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
Arithmetic Coding
Arithmetic Coding Decoder
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
Lossless Image Compression
Differential Coding of Image Lossless JPEG
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
Differential Coding of Images
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.
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
Lossless JPEG
Lossless JPEG