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
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
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 alat-alat 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.
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
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)
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
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.
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
% 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); set(handles.dim3,'String', k); set(handles.b_data2,'String', bd);
Tabel 1. Matriks Hasil Sampling 133 129 123 119 118 122 126 130 127 126 126 125 125 125 125 126 117 121 125 127 129 126 122 118 110 114 121 126 126 123 119 115 112 117 122 126 129 127 126 123 122 125 130 134 137 138 138 137 126 130 137 144 148 148 145 144 123 130 140 148 152 151 148 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 -0.2 -0.6 -0.1 -0.1 0.6 -49.2 24.5 19.4 0.3 0.1 -0.2 0.4 -0.2 38.1 -1.2 11.1 0.3 0.5 -0.2 0.8 -0.7 -0.0 -0.2 15.3 -0.1 0.5 -0.1 0.2 -0.5 -12.6 -0.0 -0.1 -0.8 -0.4 0.6 -0.6 -0.2 0.2 0.8 -0.0 0.5 0.6 0.2 0.5 -0.7 0.3 -0.1 0.8 0.2 -1.1 -0.1 -0.4 0.2 0.5 -0.1 -0.6 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
sebagai pedoman untuk mengkuantisasi ditunjukkan pada Gambar 4.
Tabel 3. Aturan Kwalitas Kuantisasi
16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99
Dari Gambar 4 sesuai arah anak panah terlihat aliran jalur kuantisasi dengan jelas. Dengan menggunakan formula
round 0 16
6 .
6 =
akan didapatkan matriks hasil kuantisasi seperti pada Tabel 4.
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.
Tabel 4. Matriks Hasil Kuantisasi
0 -2 -2 0 0 0 0 0 -4 2 1 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 -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
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 128 124 121 120 121 124 126 126 126 127 128 127 126 124 123 116 120 125 129 129 126 120 117 109 113 118 122 123 121 117 114 115 116 118 121 123 124 124 124 125 126 128 131 134 136 138 139 126 131 137 143 147 147 145 144 121 128 140 150 154 151 145 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 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
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.
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
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, 377-478