Coding Redundancy terjadi bila jumlah bit yang digunakan untuk mewakili suatu
nilai intensitas berlebihan.
.
Contoh
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
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 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
Algoritma Shannon-Fano
Algoritma Huffman
Algoritma Aritmatic Coding
Algoritma Adaptive Huffman Coding
Algoritma LZW (Lempel-Ziv-Welch)
Algoritma Shannon-Fano
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
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
Set X = (x-low_range(karakter))/Range
Range = High_range(karakter)-Low_range(karakter)
Proses Kompresi Arithmetic Coding
Set X = (x-low_range(karakter))/Range
Range = High_range(karakter)-Low_range(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
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
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)