BAB IV IMPLEMENTASI DAN PEMBAHASAN PROGRAM
D. Perbandingan Hasil Pemampatan
2. Metode “Langsung”
a. Citra dengan resolusi 64 x 64 pixel
Citra ini diuji dengan nilai prosentase kuantisasi yang berbeda.
Hasil dari pengujian tersebut terlihat seperti tabel di bawah ini:
Tabel 4.11 Data pengujian program metode Langsung 64x64
No Ukuran file Asli Prosentase Kuantisasi Besar data asli (Matriks) Besar data transformasi MSE Total PSNR Total (dB) Rasio (%) 1 8 KB 10 4096 3686 223,65 24,64 89,99 2 20 4096 3276 210,66 24,90 79,98 3 50 4096 2048 144,99 26,52 50,00 4 75 4096 1024 242,64 24,28 25,00 5 90 4096 409 364,31 22,52 9,99 6 99 4096 40 731,60 19,49 0,98
Hasil pengujian citra dengan metode yang berbeda ini
menunjukkan hasil yang berbeda pula. Dalam tabel 4.11 terlihat citra
dengan besar data matriks asli adalah 4096 (64x64 pixel) diuji dengan tingkatan prosentase kuantisasi yang berbeda. Prosentase ini yang nantinya
akan dipakai untuk melakukan proses kuantisasi, sampai seberapa persen
matriks yang akan di-nol-kan.
Dari hasil pengujian tersebut, semakin besar prosentase kuantisasi,
yang berarti bahwa semakin banyak nilai matriks yang di-nol-kan, maka
besar data yang harus disimpan (besar data transformasi) akan semakin
kecil. Hal ini berakibat pada nilai error (MSE) yang didapat semakin besar, sedangkan nilai PSNR (Peak Signal to Noise Ratio) akan semakin
kecil. Jika nilai-nilai tersebut direpresentasikan sebagai sebuah citra, maka
kualitas citra akan terlihat lebih buruk, dan hasil matriks citra rekonstruksi
semakin berbeda dari matriks citra asli. Demikian pula yang terjadi pada
nilai rasio (prosentase perbandingan antara “Besar Data Transformasi”
dengan “Besar Data Asli”) akan semakin kecil.
b. Citra dengan resolusi 128 x 128 pixel
Tabel 4.12 Data pengujian program metode Langsung 128x128
No Ukuran file Asli Prosentase Kuantisasi Besar data asli (Matriks) Besar data transformasi MSE Total PSNR Total (dB) Rasio (%) 1 8 KB 10 16384 14745 422,48 21,87 90,00 2 20 16384 13107 390,64 22,21 80,00 3 50 16384 8192 222,22 24,66 50,00 4 75 16384 4096 450,99 21,59 25,00 5 90 16384 1638 771,04 19,26 10,00 6 99 16384 163 1420,11 16,61 0,99
Tabel di atas menggambarkan bahwa berapapun ukuran citra, dengan
prosentase kuantisasi yang semakin besar maka data transformasi (data
yang harus disimpan) akan semakin kecil, yang berakibat pada besarnya
nilai error yang didapat. Sehingga kualitas citra pun akan semakin tidak menyerupai citra aslinya. Demikian pula sebaliknya, semakin kecil
prosentase kuantisasi, maka semakin kecil pula error yang didapat, tetapi data transformasi menjadi lebih besar jika dibandingkan dengan prosentase
kuantisasi yang lebih besar. Tetapi hal ini mengakibatkan kualitas citra
93 BAB V
KESIMPULAN DAN SARAN
A. Kesimpulan
Dari data yang diperoleh saat hasil pengujian program, maka dapat diambil beberapa kesimpulan yang dapat diambil dari penulisan tugas akhir ini adalah: 1. Metode Discrete Cosine Transform (DCT) dapat digunakan untuk proses
pemampatan file citra.
2. Dalam proses pemampatan tersebut dapat menggunakan berbagai cara kuantisasi, diantaranya adalah dengan menentukan nilai ambang kuantisasi atau dengan menentukan prosentase untuk kuantisasi.
3. Kualitas pemampatan tergantung dari cara dan besarnya ambang kuantisasi. Semakin kecil ukuran file yang dihasilkan, maka semakin besar pula nilai MSE yang didapat dan semakin kecil nilai PSNR.
4. Dari kedua metode yang diterapkan, metode “Blok Matriks” menghasilkan output yang lebih baik daripada metode “Langsung”. Hal tersebut disebabkan karena nilai ambang kuantisasi pada metode “Blok Matriks” dapat ditentukan oleh user sehingga nilai-nilai yang penting dapat diminimalisasi untuk dikuantisasi. Sedangkan pada metode “Langsung” user tidak dapat menentukan sendiri batas nilai yang akan dikuantisasi karena metode tersebut
akan mengambil nilai berdasarkan prosentase, dan tidak menghiraukan apakah nilai yang dikuantisasi itu nilai yang penting atau bukan.
5. Dari hasil pengujian yang dilakukan, dengan citra “naga.bmp” yang mempunyai resolusi 128x128 pixel, maka nilai yang didapat untuk hasil yang masih baik adalah dengan metode blok matriks, dengan besar blok 8x8 dan nilai ambang kuantisasi dibawah 50.
B. Saran
Pada perkembangan selanjutnya dapat dikembangkan suatu program pemampatan citra dengan resolusi M x N dan citra berwarna. Dan juga dapat dikembangkan sebuah aplikasi yang tidak hanya sekedar untuk menganalisis, tetapi juga hasil dari pemampatan dapat disimpan, sehingga dapat benar-benar menghemat media penyimpanan data.
Daftar Pustaka
Gonzales, Rafael C., Richard E. Woods, Steven L. Eddins, 2004, Digital Image Processing Using MATLAB, Upper Saddle River, Prentice Hall, New Jersey.
Hankerson, Darel, Greg A. Harris, and Peter D. Johnson, Jr., 2003, Introduction to Information Theory and Data Compression, 2nd ed., A CRC Press Company, Wasington, DC.
Hansen Per C., James G. Nagy, Dianne P. O’Leary, 2006, Deblurring Images Matrices, Spectra, and Filtering, Society for Industrial and Applied Mathematics, Philadelphia.
Magrab, Edward B., Shapour Azarm, Balakumar Balachandran, James H. Duncan, Keith E. Herold, Gregory C. Walsh, 2005, An Engineer’s Guide to MATLAB, 2nd ed., Upper Saddle River, Prentice Hall, New Jersey. Munir, Renaldi, 2004, Pengolahan Citra Digital dengan Pendekatan Algoritmik,
Informatika, Bandung.
Nelson, Mark, 1992, The Data Compression Book, M&T Publishing Inc, Borel Avenue, San Mateo, California.
Pitas, Ioannis, 1993, Digital Image Processing Algorithms, Prentice Hall International, United Kingdom.
Salomon, David, 2001, Data Compression The Complete Reference, Dept. Of Computer Science, California State University, Northridge, USA.
Sonka, M., Vaclav Hlavac, dan Roger Boyle, Image Processing, Analysis, and Machine Vision, 2nd ed., 1998, International Thompson Publishing, CA Steinmetz, Ralf dan Klara Nahrstedt, Multimedia: Computing, Communication,
and Application, 1995, Prentice Hall Inc., NJ
Yonata, Yosi, 2002, Kompresi Video, PT Elex Media Komputindo, Jakarta: Gramedia
http://en .wikipedia.org, diakses tanggal 08 Oktober 2006
http://www.cs.af.ac.uk, diakses tanggal 20 Maret 2007
PERBANDINGAN CITRA ASLI DENGAN CITRA HASIL REKONSTRUKSI
Citra resolusi 128x128 dengan Blok Matriks 8x8
Citra Asli
Ambang kuantisasi = 10 Ambang kuantisasi = 50
Citra resolusi 128x128 dengan Blok Matriks 16x16
Citra Asli
Ambang kuantisasi = 10 Ambang kuantisasi = 50
Citra resolusi 128x128 dengan Blok Matriks 32x32
Citra Asli
Ambang kuantisasi = 10 Ambang kuantisasi = 50
Citra resolusi 128x128 dengan Blok Matriks 64x64
Citra Asli
Ambang kuantisasi = 10 Ambang kuantisasi = 50
Citra resolusi 128x128 dengan Blok Matriks 128x128
Citra Asli
Ambang kuantisasi = 10 Ambang kuantisasi = 50
Citra resolusi 128x128 dengan metode langsung
Citra asli Prosentase = 10%
Prosentase = 20% Ambang kuantisasi = 50%
LISTING PROGRAM %---DCT---% function citra_transform=dct2blok(citra,blk,selek); %Input: % X - matriks harus 2^n x 2^n
% blok - ukuran blok harus square (8x8, 16x16, ...) %
%Output:
% citra_transform - DCT matriks terbagi dalam blok % global selek if selek==1 blok=blk; elseif selek==0 [m n]=size (citra); blok=m; end j1=0:blok-1; j2=0:blok-1; [J1,J2]=meshgrid(j1,j2); C=cos(((2.*J1+1).*J2*pi)/(blok*2)); D=C'; citra=double(citra)./(blok/2); ukuran=size(citra,1); nblok=ukuran/blok; brsklm=1:blok;
[baris,kolom]=meshgrid(0:(nblok-1), 0:(nblok-1));
baris=baris(:); kolom=kolom(:); citra_transform = zeros(size(citra)); for k=1:length(baris) x=citra(baris(k)*blok+brsklm,kolom(k)*blok+brsklm); D1=x*D; D2=C*D1; D2(:,1)=D2(:,1).*(1/sqrt(2)); D2(1,:)=D2(1,:).*(1/sqrt(2)); citra_transform(baris(k)*blok+brsklm,kolom(k)*blok+brsklm)=D 2(brsklm,brsklm); end; %---IDCT---% function citra_rekons=blkidct2cos(citra,dqZig,blk,selek,qZig); %Output:
% citra - inverse transformed matrix
% qmtrx=get(findobj(figura,'Tag','quant_axes'),'UserData'); % dqZig=round(blkproc(Z,[8 8],'x./P1',qmtrx)); if selek==1 blok=blk; else [m n]=size (citra); blok=m; end blok=blk; j1=0:blok-1; j2=0:blok-1; [J1,J2]=meshgrid(j1,j2); C=cos(((2.*J1+1).*J2*pi)/(blok*2)); D=C';
dqZig=double(dqZig)./(blok/2);
ukuran=size(dqZig,1);
nblok=ukuran/blok;
brsklm=1:blok;
[baris,kolom]=meshgrid(0:(nblok-1), 0:(nblok-1));
baris=baris(:); kolom=kolom(:); citra_rekons = zeros(size(dqZig)); for k=1:length(baris) x=dqZig(baris(k)*blok+brsklm,kolom(k)*blok+brsklm); x(:,1)=x(:,1).*(1/sqrt(2)); x(1,:)=x(1,:).*(1/sqrt(2)); D1=x*C; D2=D*D1; citra_rekons(baris(k)*blok+brsklm,kolom(k)*blok+brsklm)=D2 (brsklm,brsklm); end;