BAB 2 LANDASAN TEORI 2.1 Citra Digital Citra adalah suatu representasi, kemiripan atau imitasi dari suatu objek atau benda, misal: foto seseorang mewakili entitas dirinya sendiri di depan kamera. Sedangkan citra digital adalah citra yang disimpan dalam format digital (dalam bentuk file) yang dapat diolah oleh komputer. Jenis citra lain jika akan diolah dengan komputer harus diubah dulu menjadi citra digital. Sebuah citra digital dapat diwakili oleh sebuah matriks yang terdiri dari M kolom dan N baris, dimana perpotongan antara kolom dan baris disebut piksel, yaitu elemen terkecil dari sebuah citra. Piksel mempunyai dua parameter, yaitu koordinat dan intensitas atau warna. Nilai yang terdapat pada koordinat (x,y) adalah f(x,y), yaitu besar intensitas dari piksel di titik itu. Oleh sebab itu, sebuah citra digital dapat ditulis dalam bentuk matriks berikut [7]: ff(0,0) ff(0,1) ff(0, MM 1) ff(1,0) ff(1, MM 1) f(x,y)= ff(nn 1,0) ff(nn 1,1) ff(nn 1, MM 1) Berdasarkan gambaran matriks tersebut, secara matematis citra digital dapat dituliskan sebagai fungsi intensitas f(x,y), dimana x (baris) dan y (kolom) merupakan koordinat posisi dan f(x,y) adalah nilai fungsi pada setiap titik (x,y) yang menyatakan besar intensitas citra atau tingkat keabuan atau warna dari piksel di titik tersebut.
2.2 Jenis Citra Digital Nilai suatu piksel memiliki nilai rentang tertentu, dari nilai minimum sampai nilai maksimum.jangkauan yang digunakan berbeda-beda tergantung dari jenis warnanya.namun, secara umum jangkauannya adalah 0 255.Berikut adalah jenisjenis citra berdasarkan nilai pikselnya. 2.2.1 Citra Biner Citra biner adalah citra digital yang hanya memiliki dua kemungkinan nilai piksel yaitu hitam dan putih. Nilai 0 mewakili warna hitam dan nilai 1 mewakili warna putih. Citra biner disebut juga dengan citra B&W (black & white)atau citra monokrom. Oleh karena itu, hanya dibutuhkan 1 bit untuk mewakili nilai setiap piksel dari citra biner. Contoh citra biner dapat di lihat pada gambar 2.1. Gambar 2.1 Contoh Citra Biner Berukuran 10 x 11 piksel dan Representasinya dalam data digital 2.2.2 Citra Grayscale Citra grayscale merupakan citra yang hanya memiliki satu nilai kanal pada setiap pikselnya, dengan kata lain nilai Red = Green = Blue. Nilai intensitas yang dimiliki adalah 0 (hitam) sampai 255 (putih). Rentang ini berarti bahwa setiap piksel dapat direpresentasikan oleh delapan bit atau satu byte. Jenis citra ini disebut dengan
araskeabuan karena warna abu-abu diantara warna minimum (hitam) dan warna maksimum (putih). Pada umumnya citra grayscale memiliki kedalaman piksel 4 bit dan 8 bit. Citra dengan 4 bit memiliki 2 4 = 16 kemungkinan warna, yaitu 0 (minimal) 15 (maksimal). Sementara citra dengan 8 bit memiliki 2 8 = 256 warna, yaitu 0 (minimal) hingga 255 (maksimal). Contoh citra grayscale dapat di lihat pada gambar 2.2. Gambar 2.2 Contoh Citra Grayscale skala keabuan 8 bit 2.2.3 Citra Warna Setiap piksel pada citra warna mewakili warna yang merupakan kombinasi dari tiga warna dasar yaitu warna merah (R, red), hijau (G, green) dan biru (B, blue), sehingga warna ini disebut juga dengan citra RGB.Banyaknya warna yang mungkin digunakan tergantung kepada kedalaman piksel citra yang bersangkutan. Jika setiap komponen warna tersebut memiliki rentang intensitas 0-255, maka terdapat sejumlah 255 3 = 16.777.216 kemungkinan jenis warna pada citra ini. Citra warna ini dipandang sebagai penumpukan tiga matriks yang masing-masing matriksnya merepresentasikan nilainilai merah, hijau dan biru pada setiap pikselnya.hal ini menyebabkan setiap piksel pada citra warna membutuhkan media penyimpanan 3 byte.contoh citra warna dapat di lihat pada gambar 2.3.
Gambar 2.3 Contoh Citra Warna 2.3 Kompresi Citra Kompresi citra adalah proses pemampatan citra yang bertujuan untuk mengurangi duplikasi data pada citra sehingga memory yang digunakan untuk merepresentasikan citra menjadi lebih sedikit daripada representasi citra semula. Rasio citra kompresi adalah ukuran persentase citra yang telah berhasil dimampatkan. Secara matematis rasio pemampatan data ditulis sebagai berikut [7]: R = 100% - (K 1 /K o ) x 100 % Dimana: R adalah rasio kompresi. K o adalah Ukuran file asli. K 1 adalah Ukuran file terkompresi. Secara garis besar metode pemampatan citra atau kompresi citra dapat dikelompokkan dalam dua kelompok besar yaitu metode lossless dan metode lossy yaitu [7]:
1. Metode lossless Merupakan kompresi citra dimana hasil dekompresi dari citra yang terkompresi sama dengan citra aslinya, tidak ada informasi yang hilang. Sayangnya, untuk ratio kompresi citra metode ini sangat rendah. secara umum teknik lossless digunakan untuk penerapan aplikasi yang memerlukan kompresi tanpa cacat, seperti pada aplikasi radiografi, kompresi citra hasil diagnose medis atau gambar satelit, di mana kehilangan gambar sekeil apa pun akan menyebabkan hasil yang tidak diharapkan. Contoh metode ini adalah Shannon-Fano Coding, Huffman Coding, Arithmetic Coding, Run Length Encodingdan lain sebagainya. 2. Metode lossy Merupakan kompresi citra dimana hasil dekompresi dari citra yang terkompresi tidak sama dengan citra aslinya, artinya bahwa ada informasi yang hilang, tetapi masih bias ditolerir oleh persepsi mata. Metode ini menghasilkan ratio kompresi yang lebih tinggi dari pada metode lossless. Contohnya adalah color reduction, chroma subsampling, dan transform coding, seperti transformasi Fourier, Wavelet dll. 2.4 Dekompresi Sebuah citra yang sudah dikompres tentunya harus dapat dikembalikan lagi kebentuk aslinya, prinsip ini dinamakan dekompresi. Untuk dapat merubah citra yang terkompres diperlukan cara yang berbeda seperti pada waktu proses kompres dilaksanakan. Jadi pada saat dekompres catatan header yang berupa byte-byte tersebut terdapat catatan isi mengenai isi dari file tersebut. Catatan headerakan menuliskan kembali mengenai isi dari file tersebut, jadi isi dari file sudah tertulis oleh catatan header sehingga hanya tinggal menuliskan kembali pada saat proses dekompres. Proses dekompresi sempurna (kembali kebentuk aslinya). Secara umum proses kompresi dan dekompresi dapat dilihat pada gambar 2.4 [4]: CitraAsli CitraHasil Kompresi
Kompresi Dekompresi Ukuran Citra Asli Ukuran Citra Hasil Kompresi Gambar 2.4 Alur kompresi-dekompresi citra 2.5 Run Length Encoding (RLE) Berbeda dengan teknik-teknik yang bekerja berdasarkan karakter per karakter, teknik run length ini bekerja berdasarkan sederetan karakter yang berurutan. Run Length Encoding adalah suatu metode kompresi data yang bersifat lossless.metode ini mungkin merupakan metode yang paling mudah untuk dipahami dan diterapkan.run Length Encoding (RLE) adalah metode kompresi yang sangat mendasar. Metode kompresi ini sangat sederhana, yaitu hanya memindahkan pengulangan byte yang sama berturut-turut (secara terus menerus) [2]. Sebagai contoh adalah sebuah data angka numerik 122221113113444 akan di-encode dengan metode RLE maka hasilnya adalah sebagai berikut. (1,1)(2,4)(1,3)(3,1)(1,2),(3,1)(4,3) Hasil pengkodean adalah: 11241331123143, semuanya = 14 byte. Ukuran citra sebelum dikompresi = 15 x 8 bit = 120 bit. Ukuran citra sesudah dikompresi = 14 x 8 bit = 112 bit. 100% 112 xx 100 % = 6.66 %, artinya 6.66 % dari citra semula telah dikompresi. 120 2.6 Metode Huffman Metode Huffman adalah metode pengkodean yang telah banyak diterapkan untuk aplikasi kompresi citra. Seperti metode Shannon Fano, metode Huffman juga membentuk pohon atas dasar probabilitas setiap simbol, namun teknik pembentukan pohonnya berbeda. Berikut ini adalah langkah-langkah metoden Huffman:
1. Data dianalisis dahulu dengan cara membuat table frekuensi kemunculan setiap simbol ASCII, table frekuensi tersebut memiliki atribut berupa simbol ASCII dan frekuensi. 2. Dua data yang memiliki frekuensi kemunculan paling kecil dipilih sebagai simpul pertama pada pohon Huffman. 3. dari dua simpul ini dibuat simpul induk yang mencatat jumlah frekuensi dua simpul pertama. 4. Kemudian dua simpul tersebut dihapus dari table digantikan oleh simpul induk tadi. Simpul ini kemudian dijadikan acuan untuk membentuk pohon. 5. Langkah 3-5 dilakukan dengan berulang-ulang hingga isi table tinggal satu saja. Data inilah yang akan menjadi simpul bebas atau simpul akar. 6. Setiap simpul yang terletak pada cabang kiri (simpul dengan frekuensi lebih besar) diberi nilai 0 dan simpul yang terletak pada cabang kanan (simpul dengan frekuensi lebih kecil) diberi nilai 1. 7. Pembacaan dilakukan dari simpul akar kearah simpul daun dengan memperhatikan nilai setiap cabang. Berikut adalah contoh implementasi metode Huffman yang telah dipaparkan di atas. Kata yang ingin dikompresi : muhammadsaidalkhudri Tabel 2.1 Frekuensi Simbol Simbol Frekuensi a 4 d 3 m 3 h 2 u 2 i 2 k 1 l 1 r 1 s 1
Proses pembentukan pohon Huffman dimulai dari menggabung simbol s dan r (dua simbol terbawah) dengan frekuensi berjumlah 2. Gabungan 2 simbol tersebut ( sr ) dipakai sebagai acuan untuk bergerak ke atas. Karena simbol l frekuensinya masih lebih kecil dari simbol sr, maka simbol l digabung dengan simbol di atasnya ( k ) menghasilkan simbol lk. Gabungan tersebut menghasilkan freuensi berjumlah 2. Simbol sr dan lk membentuk pohon Huffman dengan total frekuensi berjumlah 4. Proses pergerakan ke atas kemudian dilanjutkan sehingga dihasilkan pohon Huffman. Pohon Huffman pada Gambar 2 dibentuk atas dasar simbol yang memiliki frekuensi lebih tinggi dikodekan dengan nilai 0 dan yang lebih rendah dengan nilai 1. 0 1 0 1 0 1 0 1 0 1 0 1 0 1 m h a d 0 1 0 1 i u r s k l Gambar 2.5 Pohon Huffman dari kata muhammadsaidalkhudri Berdasarkan Gambar 2.5 di atas, maka setiap simbol dapat dikodekan seperti ditunjukkan pada Tabel 2: Tabel 2.2 Hasil Proses Pengkodean Huffman Simbol Frekuensi Kode Jumlah Bit Kode Total Bot a 4 110 3 12 d 3 111 3 9 m 3 100 3 9 h 2 101 3 6
u 2 011 3 6 i 2 010 3 6 k 1 0010 4 4 l 1 0011 4 4 r 1 0000 4 4 s 1 0001 4 4 Total 20 64 bit Setelah mengamati hasil pengkodean Huffman di atas dapat dilihat bahwa jumlah total bit dari seluruh simbol adalah 64 bit. Dalam ukuran byte, hasil kompresi di atas menjadi 8 byte (64 bit/8 byte = 8).