ISSN:2085-6989
KOMPRESI CITRA MENGGUNAKAN TEKNIK LOSSY DENGAN METODE ALGORITMA JPEG ( Image Compression Using Lossy Technique with JPEG Algorithm Method ) Oleh : Yenniwarti Rafsyam Jurusan Teknik Elektro Politeknik Negeri Padang, Kampus Unand Limau Manis Padang 25163 Telp. 0751-72590 Fax. 0751-72576
ABSTRACT This research discusses image compression using lossly technique with JPEG Algorithm method. With this technique image file become smaller by eliminating some information from a input stream. The result indicate obtained compression ratio value very high, because some it’s bit of information eliminated although it’s not change perception to the original picture. Degrading memory capacities is 71,8% from it’s original image.This research using MATLAB software, it’s use very easy with insert the original image and the result will be created as according to desire. Keywords: image compression, lossy, JPEG algorithm
PENDAHULUAN Data atau informasi tidak hanya disajikan dalam bentuk teks, tetapi juga dapat berupa gambar, audio (bunyi, suara, musik), dan video. Keempat macam data atau informasi ini sering disebut multimedia. Saat ini orang tidak hanya dapat mengirim pesan dalam bentuk teks, tetapi juga dapat mengirim pesan berupa gambar maupun video, yang dikenal dengan layanan MMS (Multimedia Message Service). Citra (image) merupakan istilah lain untuk gambar sebagai salah satu komponen multimedia yang memegang peranan sangat penting sebagai bentuk informasi visual. Citra mempunyai karakteristik yang tidak dimiliki oleh data teks, yaitu citra kaya dengan informasi. Ada ungkapan yang menyatakan bahwa satu gambar mempunyai arti seribu kata ”(a picture is
Elektron: Vol 2 No. 1, Edisi: Juni 2010 |
more than a thousand words). Maksudnya tentu sebuah gambar dapat memberikan informasi yang lebih banyak daripada informasi tersebut disajikan dalam bentuk kata-kata (tekstual). Hal ini menjadi kebenaran di zaman modern ini ketika informasi telah menjadi salah satu aset yang berharga, khususnya yang berwujud gambar atau citra. Seribu kata dapat disimpan dalam komputer digital dengan kapasitas penyimpanan yang sangat kecil, tetapi selembar gambar memerlukan kapasitas penyimpanan yang lebih besar daripada seribu kata. Tentu saja seribu gambar akan membutuhkan kapasitas yang jauh lebih besar lagi. Masalah pada citra adalah besarnya ruang penyimpanan yang diperlukan. Selain itu, data citra berukuran besar jika di kirim melalui jaringan juga membuat waktu pengiriman citra dari suatu tempat ke tempat lain menjadi lambat. Sebagai contoh, bila kecepatan transfer adalah 9600 baud (bit per detik), waktu yang dibutuhkan untuk 69
ISSN:2085-6989 pengiriman citra berukuran 512 x 512 beraras keabu-abuan adalah sebesar 3,64 menit. Lambatnya pengiriman data ini juga harus di bayar dengan biaya yang tinggi bila banyak citra yang ditransfer. Pembatasan ruang penyimpanan dan keterbatasan lebar bidang dalam sistem komunikasi telah memaksa agar diperoleh teknik kompresi citra yang efisien. Hal inilah yang mendasari perlunya suatu usaha untuk mengkompresi citra sehingga citra dapat disimpan dengan ukuran yang lebih kecil dari aslinya. Penelitian ini bertujuan untuk dapat melakukan kompresi citra menggunakan teknik Lossy dengan algoritma JPEG. Citra Citra (image) adalah gambar pada bidang dwimatra (dua dimensi). Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek, objek memantulkan kembali sebagaian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh alatalat optik, misalnya mata pada manusia, kamera dan sebagainya, sehingga bayangan objek yang disebut citra terekam (Munir, 2004). Citra yang dimaksudkan di sini adalah citra diam (still images). Citra diam adalah citra tunggal yang tidak bergerak. Gambar 1 adalah contoh dari citra diam.
70
Gambar 1. Citra Pentagon Dari citra diam tersebut dapat dilakukan perbaikan-perbaikan sesuai keinginan dan kegunaannya dengan dilakukan pengolahan citra. Pengolahan citra bertujuan memperbaiki kualitas citra agar mudah diinterpretasikan oleh manusia atau mesin (dalam hal ini komputer ). Teknik teknik pengolahan citra mentransformasikan citra menjadi citra lain (Munir, 2004). Jadi, masukannya adalah citra dan keluarannya juga citra. Kompresi Citra Salah satu bentuk operasi pengolahan citra ialah kompresi citra (image compression). Kompresi atau compression adalah proses pemampatan ukuran sebuah data tertentu menjadi ukuran data yang lebih kecil. Sedangkan definisi dari kompresi citra adalah proses untuk mengubah stream data citra masukan dengan ukuran tertentu menjadi stream data citra keluaran dengan ukuran yang lebih kecil (Mueller, 2004). Adapun tujuan kompresi citra adalah untuk mengurangi redundansi (pengulangan) dari data-data yang terdapat dalam citra sehingga dapat disimpan atau ditransmisikan secara efisien. Menurut Baxes (1994), ukuran kemampuan kompresi data dapat dilakukan dengan mudah. Besar kompresi data citra diperoleh dengan membagi | Elektron: Vol 2 No. 1, Edisi: Juni 2010
ISSN:2085-6989 ukuran citra asli (Uasli) dengan ukuran citra yang dikompresi (Upemampatan). Hasilnya disebut rasio kompresi (R):
Semakin besar rasio pemampatan berarti semakin kecil ukuran hasil pemampatan. Teknik Kompresi Lossy Teknik kompresi citra yang bersifat lossy adalah teknik kompresi yang membuat file citra menjadi lebih kecil dengan cara menghilangkan beberapa informasi dari sebuah stream input. Tetapi tetap memberikan citra hasil kompresi dengan penampakan yang mirip dengan citra asli. Sekalipun terdapat perbedaan antara citra asli dan citra rekonstruksi (hasil kompresi) pada teknik kompresi data yang bersifat lossy, sedikit perubahan atribut piksel yang menyusun suatu citra, sehingga tidak akan terlihat oleh mata manusia (Nelson dkk,1996). Lossy kompresi membuat kapasitas file sebuah gambar menjadi kecil dengan cara menghilangkan beberapa informasi dari sebuah gambar yang asli. Teknik kompresi lossy merubah detail dan warna sebuah file gambar menjadi lebih sederhana dan mempunyai kapasitas file menjadi lebih kecil tanpa terlihat perbedaan mencolok dari pandangan manusia. Berdasarkan sifat tersebut, teknik yang bersifat lossy banyak dipakai dalam kompresi data citra, mengingat teknik ini mempunyai rasio kompresi yang lebih tinggi daripada teknik yang bersifat lossless.
METODOLOGI PENELITIAN Data yang digunakan dalam penelitian ini ialah citra diam (still image) Elektron: Vol 2 No. 1, Edisi: Juni 2010 |
berasas keabuan dengan ukuran 8x8 pixel yang dapat dilihat pada gambar 1. Peralatan pendukung penelitian adalah seperangkat komputer dengan prosesor Intel Core 2 Duo T6400 (2.0 GHz, 800 MHz FSB), memori 1 GB DDR2, harddisk 250 GB dan scanner. Perangkat lunak pengolah citra menggunakan MATLAB. Sesuai dengan judul dan tujuan dari penelitian, bahwasanya teknik yang digunakan dalam kompresi citra ialah teknik lossy dengan menggunakan algoritma JPEG. Berikut dapat dilihat diagram blok kompresinya :
Gambar 2. Blok Diagram Blok Kompresi Citra dengan Algoritma JPEG Dari blok diagram di atas dapat dijelaskan bahwa sinyal, dalam hal ini original image diproses dengan suatu alihragam yang dapat balik (invertible) seperti DCT (Discrete Cosine Transform). DCT digunakan untuk memisahkan antara informasi frekuensi rendah dengan informasi frekuensi tinggi dari sebuah gambar. Pada bagian ini original image dialihragamkan ke suatu representasi yang datanya lebih jarang. Formulasi dari DCT adalah
dengan demikian informasi yang ada pada sinyal dibuat padat dengan jumlah koefisein yang lebih kecil. Koefisien alihragam yang biasanya bilangan nyata 71
ISSN:2085-6989 dengan presisi tak-berhingga, kemudian dikuantisasi dengan presisi berhingga. Kuantisasi dilakukan untuk membersihkan koefisien DCT yang tidak penting untuk pembentukan image baru. Dimana frekuensi yang tinggi akan diseleksi untuk dihilangkan yang terikat pada pengaturan kwalitas yang digunakan. Hal ini yang menyebabkan JPEG bersifat lossy. Tahap ini merupakan tahap berugi karena hasil kuantisasi tidak dapat dikembalikan menjadi koefisien dengan presisi tak-berhingga. Kuantiser yang baik akan memberikan bit yang lebih banyak untuk koefisien yang memiliki informasi lebih banyak atau persepsi yang signifikan dan bit yang makin sedikit untuk informasi yang makin sedikit namun tetap didasarkan atas alokasi bit yang tetap. Langkah terakhir adalah entropy coding yaitu proses penggunaan algoritma entropi, misalnya Huffman atau Aritmatik untuk mengkodekan koefisien hasil proses DCT yang akan mengeliminasi nilai-nilai matriks yang bernilai nol dimana akan menghilangkan kelebihan dari keluaran kuantiser secara zigzag dan akhirnya akan diperoleh image yang telah direkonstruksi (image yang sudah dikompres).
HASIL DAN PEMBAHASAN Berikut ini merupakan contoh pengkompresan dengan menggunakan teknik lossy dari sebuah citra diam dengan algoritma JPEG.
206KB
Gambar 3. Citra 8x8 Pixel Titik yang akan dikompres adalah gambar paling pojok kiri atas, sesuai yang di uraikan dalam Gambar 3, dengan menggunakan software MATLAB maka akan didapatkan hasil sampling berupa matriks 8x8, adapun derajat keabuan dalam matriks tersebut terlihat dalam Tabel 1. Untuk membuka file citra asli pada MATLAB digunakan script berikut : if ~isequal(nama_file1,0) handles.data1=imread(fullfile(nam a_path1,nama_file1)); % membaca citra asli (handles.data1 adalah nama variabel matriks citra asli) handles.current_data1=rgb2gray(ha ndles.data1); guidata(hObject, handles); axes(handles.axes1); imshow(handles.current_data1); [m n j] = size(handles.data1); set(handles.dimensi,'String',m) set(handles.dimensi2,'String',n) set(handles.dimensi3,'String',j) b = m*n*j; set(handles.b_data,'String',b)
else return; end % --- Executes on button press in Btn_kompres. function Btn_kompres_Callback(hObject, eventdata, handles) % hObject handle to Btn_kompres (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
72
| Elektron: Vol 2 No. 1, Edisi: Juni 2010
ISSN:2085-6989 % handles structure with handles and user data (see GUIDATA) [nama_file_simpan,path_simpan]=uiputf ile(... {'*.jpg','file citra(*.jpg)'; '*.jpg','citra jpg(*.jpg)';... '*.*','Semua file(*.*)'},... Untuk mengkuantisasi file citra pada MATLAB digunakan script berikut: %%%%QUANTISATION STEPS AND ZIG-ZAG SCANNING ORDER TABLE%%%% h1 = axes('Parent',h0,'Box','on','Color',d fltaxbck,'GridLineStyle','-','LineWid th',2,'NextPlot','add', ... 'Position',[0.384 0.0074 0.2062 0.3033], ... 'Tag','quant_axes','TickLength ',[0 0], ... 'XColor',[0.356862745098039 0.356862745098039 0.356862745098039],'XGrid','on ','XTick',tableticks,'XtickLab e Mode','manual','XTickMode','ma nual', ... 'YColor',[0.356862745098039 0.356862745098039 0.356862745098039],'YGrid','on ','YTick',tableticks,'YTickLab elMode','manual','YTickMode',' manual'); Berikut merupakan script untuk menyimpan file citra hasil kompresi JPEG : x1 = rgb2gray(handles.data1); map = double(gray(256)); imwrite(x1,map,fullfile(path_simpan,n ama_file_simpan),'Quality',handles.qu ality); %citra_kompres=imread(fullfile(path_s impan,nama_file_simpan)); ctr = imread(fullfile(path_simpan,nama_file _simpan)); axes(handles.axes2); imshow(ctr); %imshow(citra_kompres); if ispc set(hObject,'Backgroundcolor','white' ); else set(hObject,'Backgroundcolor',get(0,' defaultUicontrolBackgroundcolor')); end handles.ctr = ctr; guidata(hObject,handles) [m n k] = size(ctr); dim1 = m; dim2 = n; dim3 = k; bd = m*n*k*8; set(handles.dim1,'String', dim1); set(handles.dim2,'String', n);
Elektron: Vol 2 No. 1, Edisi: Juni 2010 |
set(handles.dim3,'String', k); set(handles.b_data2,'String', bd);
Tabel 1. Matriks Hasil Sampling 133 127 117 110 112 122 126 123
129 126 121 114 117 125 130 130
123 126 125 121 122 130 137 140
119 125 127 126 126 134 144 148
118 125 129 126 129 137 148 152
122 125 126 123 127 138 148 151
126 125 122 119 126 138 145 148
130 126 118 115 123 137 144 144
Matriks hasil sampling ini akan menjadi masukan dari blok berikutnya yaitu DCT (Discrete Cosine Transform) yang akan memisahkan antara informasi frekuensi rendah dengan informasi frekuensi tinggi dari citra asli. Hasil pemisahan frekuensi tersebut tercermin dalam matriks DCT seperti Tabel 2. Tabel 2. Matriks Hasil Proses DCT 6.6 -24.0 -20.2 -49.2 24.5 19.4 38.1 -1.2 11.1 -0.0 -0.2 15.3 -12.6 -0.0 -0.1 0.2 0.8 -0.0 0.3 -0.1 0.8 0.5 -0.1 -0.6
-0.2 -0.6 -0.1 -0.1 0.6 0.3 0.1 -0.2 0.4 -0.2 0.3 0.5 -0.2 0.8 -0.7 -0.1 0.5 -0.1 0.2 -0.5 -0.8 -0.4 0.6 -0.6 -0.2 0.5 0.6 0.2 0.5 -0.7 0.2 -1.1 -0.1 -0.4 0.2 0.7 -0.5 -1.1 -0.6 0.3
Hasil proses DCT digunakan sebagai masukan dari blok kuantisasi, dimana akan dilakukan proses pembersihan koefisien DCT yang tidak penting untuk pembentukan image baru. Frekuensi yang tinggi akan diseleksi untuk dihilangkan yang terikat pada pengaturan kwalitas yang digunakan. Frakuensi tinggi yang dihilangkan inilah yang menyebabkan JPEG bersifat lossy. Adapun ikatan aturan kwalitas yang digunakan ditunjukkan dalam Tabel 3. Aturan ini akan digunakan untuk mengkuantisasi dari matriks DCT dengan sistem scanning yang menggunakan aturan zigzag. Aturan atau jalur zigzag 73
ISSN:2085-6989 sebagai pedoman untuk mengkuantisasi ditunjukkan pada Gambar 4. Tabel 3. Aturan Kwalitas Kuantisasi 16 12 14 14 18 24 49 72
11 12 13 17 22 35 64 92
10 14 16 22 37 55 78 95
16 24 19 26 24 40 29 51 56 68 64 81 87 103 98 112
40 58 57 87 109 104 121 100
51 60 69 80 103 113 120 103
61 55 56 62 77 92 101 99
Dari Gambar 4 sesuai arah anak panah terlihat aliran jalur kuantisasi dengan jelas. Dengan menggunakan formula 6 .6 = 0 akan didapatkan matriks round 16 hasil kuantisasi seperti pada Tabel 4.
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
Proses pengeliminasian nilai-nilai matriks yang bernilai nol, akan dikodekan oleh entropi coding sehingga didapat matriks baru yang merupakan matriks dari gambar yang sudah dikompresi. Tabel 5. Hasil Entropi Coding 130 126 116 109 115 125 126 121
128 126 120 113 116 126 131 128
124 127 125 118 118 128 137 140
121 128 129 122 121 131 143 150
120 127 129 123 123 134 147 154
121 126 126 121 124 136 147 151
124 124 120 117 124 138 145 145
126 123 117 114 124 139 144 140
Dari Tabel 5 diatas dapat kita bandingkan dengan matriks citra aslinya sehingga akan tampak pada koordinat yang sama terjadi perubahan derajat keabuan. Perubahan inilah yang akan membawa penurun kapasitas memori dari citra asli ke dalam citra kompresi. Adapun hasil kompresi secara keseluruhan dapat dilihat pada Gambar 5.
Gambar 4. Zigzag Scanning Kuantisasi Matriks hasil kuantisasi akan digunakan oleh algoritma entropi untuk mengkodekan koefisien hasil proses DCT yang akan mengeliminasi nilai-nilai matriks yang bernilai nol secara zig-zag order. 58KB Tabel 4. Matriks Hasil Kuantisasi 0 -4 3 0 -1 0
-2 2 0 0 0 0
74
-2 1 1 1 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
Gambar 5. Citra Hasil Kompresi Citra hasil kompresi yang menggunakan algoritma JPEG ini memiliki nisbah kompresi adalah (100% 58/206 x 100%)= 71,8%. Hasil ini sangat | Elektron: Vol 2 No. 1, Edisi: Juni 2010
ISSN:2085-6989 signifikan dalam penghematan memori, padahal dilihat dari gambar hasil kompresinya tidak mempengaruhi persepsi pandangan manusia dari gambar tersebut. Dengan kata lain kwalitas gambar hasil kompresi tidak merubah ”pesan” yang akan disampaikan dari gambar aslinya. SIMPULAN Hasil penelitian menunjukan bahwa kompresi dengan teknik lossy menggunakan algoritma JPEG memiliki nisbah kompresi yang sangat tinggi, karena beberapa bit informasinya ada yang dihilangkan walaupun hasil kompresinya tidak merubah persepsi manusia terhadap gambar aslinya. Adapun nilai nisbah kompresi yang diperoleh sebesar 71,8% dari citra aslinya. Hasil ini sangat signifikan dalam penghematan memori. Selain itu besaran file asli (206 Kb) dan file hasil kompresi (58 Kb) dengan dimensi gambar/jumlah pixel/cm tidak mengalami perubahan. Proses kompresi citra menggunakan program MATLAB, dimana pengkompresian sangat mudah dilaksanakan, dengan memasukkan gambar asli maka gambar hasil kompresi akan dihasilkan sesuai dengan keinginan.
Jain, A. K,,1989, “Fundamental of Digital Image Processing”, Prentice-Hall International, Inc.,17,476-557 JPEG FAQ. Extensive information about the JPEG graphic file format, including progressive JPEGs Kadir, Abdul, “Pemampatan Data Citra Menggunakan Alihragam Gelombang Singkat”, Tesis 1998. Mueller, V., 2003, Kompresi Data dan Ilmu Bahasa Sandi, Program Pascasarjana Teknik Elektro Universitas Gadjah Mada, Yogyakarta Munir, Rinaldi., 2004, “Pengolahan Citra Digital dengan Pendekatan Algoritma”, Penerbit Informatika Nelson, M., and Gailly,J.L.,1996,”The Data Compression Book”, M&T Books, New York, 321-379 Pitas, I., 1993,”Digital Image Processing Algorithms”, Prentice Hall International Ltd, 175-221 Symes, Peter., 2001, “Video Compression Demystified”, McGraw Hill, International Edition, 0-07-118964-5 Sid-Ahmed, M.A., 1995, “Image Processing Theory, Algorithms, and Architectures”, McGraw Hill,Inc.,International Edition, 377478
DAFTAR PUSTAKA Baxes, G.A.,1994, “Digital Image Processing Principle and Applications”, John Wiley & Sons,179-215 Christyono, Yuli,”Kompresi Citra Dengan Alihragam GelombangSingkat-Jamak”, Tesis 2003 Daryanto, Tri, “Standar-Standar Kompresi Pada Gambar”, Fakultas Teknologi Informasi Universitas Budi Luhur Elektron: Vol 2 No. 1, Edisi: Juni 2010 |
75