Pemampatan citra atau image compression merupakan operasi pengolahan citra
yang bertujuan untuk memampatkan citra sehingga memori yang dibutuhkan untuk
menyimpan citra lebih kecil, tetapi hasil citra yang telah dimampatkan tetap
memiliki kualitas gambar yang bagus (misal dari .BMP menjadi .JPG).
Kebanyakan citra mengandung duplikasi data yg dapat berarti:
1. Besar kemungkinan suatu pixel dengan pixel tetangganya memiliki
intensitas yang sama, sehingga penyimpanan setiap pixel memboroskan tempat.
2. Citra banyak mengandung bagian yang sama, sehingga tidak perlu dikodekan
berulang.
Ada 2 proses utama dalam pemampatan citra:
1. Pemampatan citra (image compression) contoh citra belum dimampatkan dalam
format bitmap dan yang sudah dimampatkan disimpan dalam format JPG dan GIF
2. Penirmampatan citra (image decompression) Mengembalikan citra yang
termampatkan menjadi data bitmap.
Aplikasi Pemampatan Citra
1. Data transmission, waktu pengiriman data lebih cepat. contoh: pengiriman
gambar lewat fax, videoconferencing, download gambar dr internet
2. Data storing, butuh memori lebih kecil Contoh: aplikasi basis data
gambar, video storage sprti VCD dll.
Kriteria pemampatan citra:
1. Waktu compression dan decompression sebaiknya cepat
2. Kebutuhan memori
Memori yang dibutuhkan untuk merepresentasikan citra seharusnya berkurang
secara berarti. Pada beberapa metode ukuran memori hasil pemampatan bergtung pd
citra itu sendiri. Citra dengan elemen duplikasi yang banyak, misal langit
cerah tanpa awan, lantai keramik, umumnya dapat dimampatkan dengan memori lebih
sedikit dibanding citra yang mengandung objek, misal pemandangan alam.
3. Kualitas
Informasi yang hilang akibat pemampatan seminimal mungkin agar kualitas
tetap dipertahankan. kualitas citra bersifat subyektif dan relatif, tergantung
penilaian seseorang. Ukuran kualitas hasil pemampatan citra menjadi ukuran
kuantitatif menggunakan PSNR, mengukur perbedaan citra semula dengan hasil
pemampatan
4. Format keluaran
Format citra hasil pemampatan sebaiknya cocok u pengiriman dan penyimpanan
data. Pembacaan citra bergantung pd bagaimana citra tsb direpresentasikan atau
disimpan.
Jenis Pemampatan Citra:
Ada 4 pendekatan:
1. Pendekatan statistik, yang didasarkan pd frek kemunculan derajat keabuan
pixel pada seluruh bagian gambar, contoh metode Huffman Coding.
2. Pendekatan ruang, didasarkan pd hub spasial antara pixel-pixel dalam
suatu kelompok yang memiliki derajat keabuan yang sama di dalam suatu daerah di
dalam gambar, contoh metode Run-Length Encoding.
3. Pendekatan kuantisasi, pemampatan citra dilakukan dengan mengurangi jumlah
derajat keabuan yang tersedia, contoh metode pemampatan kuantisasi.
4. Pendekatan fraktal, didasarkan pada kenyataan bahwa kemiripan bagian-bagian
dalam citra dapat dieksploitasi dengan suatu matriks transformasi, contoh metode
Fractal Image Compression.
Metode Pemampatan Huffman
Menggunakan prinsip nilai atau derajat keabuan yang sering muncul dikodekan
dengan jml bit Lebih sedikit dan yang frek kemunculannya sedikit dikodekan
dengan jlh bit yang lebih panjang.
Algoritma metode Huffman:
1. Urutkan secara ascending nilai-nilai keabuan berdasarkan frek kemunculan
atau peluang kemunculan, Pk yaitu frek kemunculan nk dibagi dengan jlh pixel
dalam citra (n). Setiap nilai keabuan dinyatakan sebagai pohon bersimpul
tunggal. Setiap simpul ditandai dengan frek kemunculan nilai keabuan tsb.
2. Gabung 2 buah pohon yang mempyai frek kemunculan paling kecil pd sebuah
akar. Akar mempyai frek yang merupakan jlh dr frek 2 buah pohon penyusunnya
3. Ulangi langkah 2 sampai tersisa hy satu pohon biner.
4. Beri label setiap sisi pohon biner. Sisi kiri dilabeli dengan 0 dan sisi
kanan dilabeli 1.
5. Telusuri pohon biner dr akar ke daun.
Barisan label2 sisi dr akar ke daun menyatakan kode Huffman u derajat keabuan
yang bersesuain
Program
Koding pad OpenCv
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
int main(int argc, char **argv)
{
int p[3];
IplImage *img = cvLoadImage("../images/tom.bmp");
p[0] = CV_IMWRITE_JPEG_QUALITY;
p[1] = 5;
p[2] = 0;
cvSaveImage("a_worse.jpg", img, p);
p[0] = CV_IMWRITE_JPEG_QUALITY;
p[1] = 100;
p[2] = 0;
cvSaveImage("a_better.jpg", img, p);
exit(0);
}
Hasil Setelah dilakukan pemampatan citra
Gambar Asli (Ukuruan 189kb(.bmp))
Gambar kompres (Ukuran 142kb(.jpg))
Nama : Mohammad Rizqy Maulana (54410506)
Rinoldi V Papasoka (55410998)
0 komentar:
Posting Komentar