Anda di halaman 1dari 53

Your logo

Kompresi Data Citra


Pengertian Kompresi Citra

 Untuk mengurangi redundansi dari data-data dalam citra


 Redundansi = perulangan data
Faktor mengapa pada citra, video, dan audio sangat tepat dilakukan proses
kompresi.
 Korelasi spasial (spatial correlation) antar pixel dalam citra atau frame vidio.
 Terdapat korelasi yang signifikan antarsampel yang diambil oleh beberapa
sensor. Korelasi ini disebut dengan korelasi spektral (spectral correlation).
 Pada data temporal seperti video, terdapat korelasi yang signifikan antara
sampel pada segmen waktu yang berbeda. Korelasi ini disebut sebagai
korelasi temporal (temporal correlation).
 Pada suatu data terdapat informasi yang tidak relevan dengan sudut pandang
persepsi mata.
Data Redundancy

Data berlebihan ini dapat dinyatakan secara matematis. Bila n1 dan n2


menyatakan jumlah satuan unit informasi dua himpunan data (Data set) yang
mewakili data yang sama maka data berlebihan relatif (relative data redundancy)
RD dari himpunan data pertama.
 RD = 1 – 1/CR ...............................................(1)
 CR = n1/n2....................................................(2)
Dengan CR merupakan rasio kompresi (Compression Ratio) yang dinyatakan
sebagai berikut.
Dalam kompresi citra digital, terdapat 3 jenis data berlebihan, yaitu
coding redundancy,
interpixel redundancy, dan
psychovisual redundancy.
Coding Redundancy

 Coding Redundancy terjadi bila jumlah bit yang digunakan untuk mewakili suatu
nilai intensitas berlebihan.
.
Contoh

 contoh, suatu citra memiliki 8 level nilai intensitas, yaitu 0, 1, 2, 3, 4, 5, 6, dan 7.


Probabilitas kemunculan setiap nilai intensitas pixel tersebut berturut-turut adalah
0.19, 0.25, 0.21, 0.16, 0.08, 0.06, 0.03, dan 0.02. probabilitas in dapat dihitung
dngan menggunakan histogram citra, yaitu dengan membagi banyaknya
(frekuensi) kemunculan suatu nilai intensitas dengan banyaknya pixel yang
terdapat dalam citra.
Tabel berikut menyajikan pengkodean
setiap nilai pixel baik dengan panjang
tetap maupun panjang berbeda.
 
 Rata-rata panjang bit yang digunakan untuk mengkodekan setiap pixel dapat
dihitung dengan rumus sebagai berikut.

Dengan L menyatakan banyaknya level


intensitas.
Sedangkan bila menggunakan variabel code, rata-rata panjang bit yang
digunakan untuk mengkodekan setiap pixel sebagai berikut.

Rasio kompresi dari pengkodean di atas adalah:


CR= 3/2.7 = 1.11
Redundaci datanya adalah:
RD = 1- (1/1.11) = 0.099
Interpixel Redundancy

 Data berlebihan model ini terjadi karena adanya korelas antarpixel dengan pixel
tetangganya. Nilai intensitas suatu pixel dapat di prediksi dari pixel tetangganya.
Psychovisual Redundancy

 Data berlebihan model ini berakaitan secara langsung dengan informasi visual
yang dilihat dengan mata. Variasi intensitas pada suatu citra dilihat sebagai
intensitas yang konstan oleh mata.
Model Kompresi Citra

 Model Umum Kompresi Citra

f(x,y) f’(x,y)
Source Channel Channel Source
Channel
Encoder Encoder Decoder Decoder
Kriteria Mengukur Kebenaran Hasil Kompresi Citra

 Ada dua jenis kriteria yang digunakan untuk mengukur kebenarana hasil proses
kompresi, yaitu kebenaran seubjektif (subjective fidelity criteria)dan kriteria
kebenaran objektif (objective fidelity criteria).
Kriteria Kebenaran Subjektif

 Kriteria kebenaran subjektif dilakukan dengan melakukan penilaian terhadap citra


hasil kompresi dengan menanyakan secara langsung (polling) kepada orang-
orang tentang kualitas hasil kompresi.
Kriteria Kebenaran Objektif

 Kriteria kebenaran objektif ini dilakukan dengan menggunakan suatu rumus yang
merupakan fungsi dari citra asli f(x,y) dan citra hasil f’(x,y).
 Fungsi ini mengukur perbedaan distorsi antara citra asli dengan citra hasil
sehingga pendekatan objektif ini sering disebut dengan Difference distortion
measure.
metode yang dapat digunakan untuk mengukur distorsi

 Square Error

 Absolute Diffrence

 Mean Square Error (MSE)

 Signal to Noise Rasio (SNR)


Kompresi Lossles

Loseless Compression adalah teknik kompresi citra dimana


tidak ada satupun informasi citra yang dihilangkan.
 Kompresi Lossy

 Kompresi data yang bersifat


lossy mengijinkan terjadinya
kehilangan sebagian data
tertentu dari pesan tersebut,
sehingga dapat menghasilkan
rasio kompresi yang tinggi.
 Pada lossy comprssion ukuran
file citra menjadi lebih kecil
dengan menghilangkan
beberapa informasi dalam citra
asli.
Metode Kompresi

 Algoritma Shannon-Fano
 Algoritma Huffman
 Algoritma Aritmatic Coding
 Algoritma Adaptive Huffman Coding 
 Algoritma LZW (Lempel-Ziv-Welch)
Algoritma Shannon-Fano

Prinsip kerja kompresi teks yaitu karakter yang memiliki


frekuensi kemunculan lebih banyak akan membentuk kode bit
yang lebih pendek, sedangkan karakter yang memiliki
frekuensi kemuculan lebih sedikit akan membentuk kode bit
yang lebih panjang.
Langkah-langkah pembuatan pohon Shannon-Fano, sebagai
berikut
 Buat sebuah daftar sesuai frekuensi kemunculan karakter.
 Mengurutkan daftar karakter -> frekuensi kemunculan tertinggi ke
terendah.
 Membagi menjadi dua kelompok, yaitu kiri dan kanan. Jumlah
frekuensi di bagian kiri mendekati jumlah frekuensi kemunculan
karakter di bagian kanan.
 Daun di sebelah kiri yang terdiri dari beberapa karakter tersebut
diberikan kode bit 0 dan daun di sebelah kanan diberikan kode bit 1.
 Mengulangi langkah 3 dan 4 untuk masing-masing dari dua kelompok,
dibagi lagi dan menambahkan kode bit sampai setiap karakter menjadi
daun yang berdiri sendiri dan memiliki kode bit yang unik.
Algoritma Huffman
 

Huffman ini mempunyai kemiripan dengan pohon biner


Shannon-Fano, yang membedakan yaitu pendekatan dalam
pembuatan pohon biner. Pohon biner Huffman menggunakan
pendekatan a bottom-up.
Langkahlangkah pembuatan Huffman, sebagai berikut:
 Mengurutkan karakter berdasarkan frekuensi kemunculannya dari terendah
hingga tertinggi.
 Menggabungkan dua karakter atau daun yang memiliki frekuensi terendah.
 Memberikan nilai kode bit 0 di sebelah kiri dan kode bit 1 di sebelah kanan.
 Hasil penggabungan sebelumnya, digabungkan lagi dengan daun yang lainnya
sampai tidak ada lagi karakter yang memungkinkan untuk digabungkan.
 Ulangi langkah 3 dan 4 hingga terbentuk akar.
Contoh

 Contoh teknik kompresi dengan menggunakan metode Huffman pada file teks.
 Misalkan sebuah file teks yang isinya “AAAABBBCCCCCD”.
 File ini memiliki ukuran 13 byte atau satu karakter sama dengan 1 byte.

20 120 60 50

20 120 50 80

20 200 50 50

200 50 60 50
 Berdasarkan pada cara kerja di atas, dapat dilakukan kompresi sebagai berikut
:
 Mencatat karakter yang ada dan jumlah tiap karakter. A = 4, B = 3, C = 12, D =
1
 Mengurutkan karakter dari yang jumlahnya paling sedikit ke yang paling banyak
yaitu : D, B, A, C
 Membuat pohon biner berdasarkan urutan karakter yang memiliki frekuensi
terkecil hingga yang paling besar.
 Mengganti data yang ada dengan kode bit berdasarkan pohon biner yang
dibuat. Penggantian karakter menjadi kode biner, dilihat dari node yang paling
atas atau disebut node akar :
A = 01, B = 001, C = 1, D = 000.
 Selanjutnya berdasarkan pada kode biner masing-masing karakter ini, semua
karakter dalam file dapat diganti menjadi :
01010101001001001111110001111111
 Karena angka 0 dan angka 1 mewakili 1 bit, sehingga data bit di atas terdiri dari
32 bit atau 4 byte (1 byte = 8 bit).
 Menyimpan kode bit dari karakter yang frekuensinya terbesar, jenis karakter
yang terdapat di dalam file dan data file teks yang sudah dikodekan. Cara
menyimpan data jenis karakter adalah dengan mengurutkan data jenis karakter
dari yang frekuensinya paling banyak sampai ke yang paling sedikit, menjadi :
[C,A,B,D]
Algortima Arithmetic Coding

• Pririsip Arithmetic coding diperkenalkan pertama kail


oleh Peter Elias sekitar tahun 1960-an.
• Teknik aritmatika juga membuat code word untuk
setiap simbol. Hanya saja, bila pada metode Huffman
kode setiap simbol berupa suatu bilangan integer unik.
Pada metode aritmatika kode simbol berupa suatu
interval bilangan pecahan.
Algortima Arithmetic Coding

LOW 0.0
HIGH 1.0
WHILE not end of input stream
get next CHARACTER
RANGE = HIGH - LOW
HIGH = LOW + RANGE * high range of CHARACTER
LOW = LOW + RANGE * low range of CHARACTER
END WHILE
output LOW
Contoh

Tulisan yang akan dikompresi adalah


“Gadjah Mada”
Batas dan batas bawah interval karakter
Karakter Jumlah Peluang Low High_
Karakter (propability) range range
A 4 0.4 0 0.4
D 2 0.2 0.4 0.6
G 1 0.1 0.6 0.7
H 1 0.1 0.7 0.8
J 1 0.1 0.8 0.9
M 1 0.1 0.9 1
Dekompresi Arithmetic Coding

Set X = (x-low_range(karakter))/Range

Range = High_range(karakter)-Low_range(karakter)
Proses Kompresi Arithmetic Coding

karakter  Low High range


  0 1 1
g 0.600000000 0.700000000 0.100000000
a 0.600000000 0.640000000 0.040000000
d 0.616000000 0.624000000 0.008000000
j 0.622400000 0.623200000 0.000800000
a 0.622400000 0.622720000 0.000320000
h 0.622624000 0.622656000 0.000032000
m 0.622652800 0.622656000 0.000003200
a 0.622652800 0.622654080 0.000001280
d 0.622653312 0.622653568 0.000000256
a 0.622653312 0.622653414 0.000000102

Hasil kompresi tulisa n Gadjah Mada adalah 0,62265


Hasil Dekompresi 0,62265

Set X = (x-low_range(karakter))/Range
Range = High_range(karakter)-Low_range(karakter)

Code Low High Range out


Karakter

Peluang
0.62265 0.6 0.7 0.1 g
Jumlah

range

range
High
Low 0.22653 0.0 0.4 0.4 a
0.56634 0.4 0.6 0.2 d
A 4 0.4 0 0.4
0.83168 0.8 0.9 0.1 j
D 2 0.2 0.4 0.6
0.31677 0.0 0.4 0.4 a
G 1 0.1 0.6 0.7
0.79192 0.7 0.8 0.1 h
H 1 0.1 0.7 0.8 0.91920 0.9 1.0 0.1 m
J 1 0.1 0.8 0.9 0.19200 0.0 0.4 0.4 a
M 1 0.1 0.9 1 0.48000 0.4 0.6 0.2 d
0.40000 0.0 0.4 0.4 a
Algortima Zero Compression

Zero compression merupakan salah satu teknik


kompresi yang diterapkan pada sekumpulan data
yang sering terjadi perulangan data bernilai nol yang
berurutan.
Tugas

NAMA SAYA ………………. TINGGAL DI JALAN ……………. ASAL


SEKOLAH…………….(SMA/SMK)

Di kompresi dan dekompresi menggunakan algoritme arithmetic coding dan


shannon fano dan metode huffman
Bandingkan Cr dan Rd setiap metode.
Cont’d

 Algoritma ini dapat digambar seperti berikut:


00000245200007891
jika terhadap data tersebut dilakukan pengkodean dengan teknik Zero
Compression maka di dapat kode data sebagai berikut.
052452047891
yang berarti:
nilai 0 diulang 5 kali, nilai berikutnya ialah 2,4,5,2 tanpa dikompresi,
nilai 0 diulang 4 kali, nilai berikutnya ialah 7,8,9,1 tanpa kompresi.
Metode RLE (Run Length Encoding)

 RLE didasarkan pada pengamatan bahwa suatu pixel dalam suatu citra akan
memiliki nilai yang cenderung sama dengan nilai pixel tetangganya.
 Metode ini mengasumsikan bahwa setiap citra dimulai dengan suatu pixel putih.
Apabila dimulai dengan warna hitam maka di awal output ditambah nilai 0 yang
artinya 0 pixel putih.
Cont’d

Permasalahan dari RLE adalah untuk membedakan angka yang menyatakan


banyaknya nilai suatu pixel dengan nilai pixel itu sendiri. Beberapa langkah yang
sering ditempuh untuk menyelesaikan masalah di atas adalah sbb:
Jika citra grayscale memiliki nilai maksimum 128 maka 1 bit pada setiap byte dapat
digunakan untuk membedakan byte nilai grayscale atau nilai yang menyatakan
jumlah.
Cont’d

 Jika citra grayscale dengan nilai maksimum 256, maka nilai tersebut dapat
dikurangi menjadi 255 dengan nilai disiapkan sebagai penanda. Misalkan saja nilai
penanda tersebut adalah 255, maka deret di atas menjadi:
255,10,12,35,76,112,255,4,87,255,6,5,1,...
 Solusi ketiga adalah 1 bit dari setiap byte disiapkan sebagai penunjuk byte tersebut
merupakan nilai intensiats atau nilai banyaknya pixel. Namun pada solusi ketiga ini
1 bit ekstra tersebut disisipkan ke dalam deret 8 bit. Deret bit ekstra tersebut
kemudian diikuti atau didahului oleh nilai-nilai yang menyatakan ontensitas dan
banyakanya pixl. Contoh:
[10],12,35,76,112,[4],87,[6],5,1,..
[10000101],10,12,35,76,112,4,87,6,[100..],5,1,...
ukuran total dari bit ekstra adalah 1/8 dari total output. Sehingga terjadi
peningkatan dari hasil kompresi sebelumnya sejumlah 12,5%
Algoritma LZW (Lempel-Ziv-Welch)

 Algortima ini menggunakan teknik dictionary dalam kompresinya. Dimana string


karakter digantikan oleh kode table yang dibuat setiap ada string yang masuk.
 Ukuran tabel dictionary pada algoritma LZW asli adalah 4096 sampel atau 12 bit,
dimana 256 sampel pertama digunakan untuk table karakter single (Extended
ASCII), dan sisanya digunakan untuk pasangan karakter atau string dalam data
input.
 Berikut contoh suatu citra grayscale 8-bit dengan nilai sebagai berikut.
12,12,12,12,12,12,12,12,12,12,35,76,112,87,87,87,87,5,5,5,5,5,5,1,....
hasilnya menjadi:
10,12,35,76,112,4,87,6,5,1,...
Nomor dengan garis bawah menyatakan banyaknya pixel dengan nilai pixel yang
ditunjukkan oleh nomor berikutnya.
Algoritma kompresi LZW secara lengkap :

 KAMUS diinisialisasi dengan semua karakter dasar yang ada : {‘A’..’Z’,’a’..’z’,’0’..’9’}.


 W karakter pertama dalam stream karakter.
 K  karakter berikutnya dalam stream karakter.
Lakukan pengecekan apakah (W+K) terdapat dalam KAMUS
 Jika ya, maka W  W + K (gabungkan W dan K menjadi string baru).
 Jika tidak, maka :
Output sebuah kode untuk menggantikan string W.
Tambahkan string (W+ K) ke dalam dictionary dan berikan nomor/kode berikutnya yang
belum digunakan dalam dictionary untuk string tersebut.
W  K.
Lakukan pengecekan apakah masih ada karakter berikutnya dalam stream karakter
 Jika ya, maka kembali ke langkah 2.
 Jika tidak, maka output kode yang menggantikan string W, lalu terminasi proses (stop).
Flowchart Algoritma LZW
 Sebagai contoh, string : “ABBABABAC” akan dikompresi dengan LZW. Isi
dictionary pada awal proses di set dengan tiga karakter dasar yang ada: “A”,
“B”, “C”. Tahapan proses kompresi di tunjukkan pada tabel:
 Kolom posisi menyatakan posisi sekarang dari sistem karakter dan kolom
karakter menyatakan karakter yang terdapat pada posisi tersebut. Kolom
dictionary menyatakan string baru yang sudah ditambahkan ke dalam
dictionary dan nomor indeks untuk string tersebut ditulis dalam kurung siku.
Kolom output menyatakan kode output yang dihasilkan oleh langkah kompresi.
Hasil proses kompresi di tunjukkan pada gambar 2.
Thanks !!!   

Anda mungkin juga menyukai