TUGAS MAKALAH
PENGOLAHAN
CITRA
PEMANPATAN
CITRA
Disusun Oleh :
Kelompok 3
1.
Amran Ryan Sitohang
2.
Juandi Syahputra Simatupang
3.
Petrus Sibuea
4.
Philisman Bu’ulolo
STMIK
PELITA NUSANTARA
JURUSAN
TEKNIK INFORMATIKA
MEDAN
2018
PEMAMPATAN CITRA
A.
Pendahuluan
Pada umumnya, representasi citra digital membutuhkan
memori yang besar. Sebagai contoh, citra
Lena dalam format bitmap yang berukuran 512 512 pixel membutuhkan memori sebesar 32 KB (1 pixel = 1
byte) untuk representasinya. Semakin besar ukuran citra tentu semakin besar
pula memori yang dibutuhkannya. Pada sisi lain, kebanyakan citra mengandung duplikasi data. Duplikasi data
pada citra dapat berarti dua hal. Pertama, besar kemungkinan suatu pixel dengan pixel tetanggganya memiliki initensitas yang sama,
sehingga penyimpanan setiap pixel memboroskan tempat. Kedua, citra banyak mengandung bagian (region) yang sama, sehingga bagian
yang sama ini tidak perlu dikodekan berulang kali karena mubazir atau
redundan.
Saat ini, kebanyakan aplikasi menginginkan representasi
citra dengan kebutuhan memori yang sesedikit mungkin. Pemampatan citra atau kompresi citra
(image compression) bertujuan meminimalkan kebutuhan memori untuk
merepresentasikan citra digital. Prinsip umum yang digunakan pada proses
pemampatan citra adalah mengurangi duplikasi data di dalam citra sehingga memori yang
dibutuhkan untuk merepresentasikan citra menjadi lebih sedikit daripada
representasi citra semula.
B.
Pemampatan Citra versus Pengkodean Citra
Pemampatan
citra kadang-kadang disalahmengertikan dengan pengkodean citra (image
encoding), yaitu persoalan bagaimana pixel-pixel di dalam citra dikodekan dengan
representasi tertentu. Pengkodean citra tidak selalu menghasilkan representasi
memori yang minimal. Pengkodean citra yang menghasilkan representasi memori yang
lebih sedikit daripada representasi aslinya itulah yang dinamakan pemampatan
citra.
Ada dua proses utama dalam persoalan pemampatan citra:
1.
Pemampatan citra (image
compression).
Pada proses ini, citra dalam
representasi tidak mampat dikodekan dengan representasi yang
meminimumkan kebutuhan memori. Citra dengan format bitmap pada umumnya tidak
dalam bentuk mampat Citra yang sudah dimampatkan disimpan ke dalam arsip dengan format
tertentu. Kita mengenal format JPG dan GIF sebagai format citra yang sudah
dimampatkan.
2.
Penirmampatkan citra (image
decompression).
Pada proses ini, citra yang sudah
dimampatkan harus dapat dikembalikan lagi (decoding) menjadi
representasi yang tidak mampat. Proses ini diperlukan jika citra tersebut
ditampilkan ke layar atau disimpan ke dalam arsip dengan format tidak mampat.
Dengan kata lain, penirmampatan citra mengembalikan citra yang termampatkan menjadi
data bitmap.
C.
Aplikasi Pemampatan Citra
Pemampatan citra memberikan sumbangsih manfaat yang
besar dalam industry multimedia saat ini. Pemampatan citra bermanfaat untuk aplikasi yang
melakukan:
1.
Pengiriman data (data
transmission) pada saluran komunikasi
data
-
Citra yang telah dimampatkan membutuhkan waktu pengiriman yang lebih singkat dibandingkan dengan citra yang tidak dimampatkan. Contohnya aplikasi pengiriman gambar lewat fax, videoconferencing, pengiriman data medis, pengiriman gambar dari satelit luar angkasa, pengiriman gambar via telepon genggam. download gambar dari internet, dan sebagainya.2. Penyimpanan data (data storing) di dalam media sekunder (storage)Citra yang telah dimampatkan membutuhkan ruang memori di dalam media storage yang lebih sedikit dibandingkan dengan citra yang tidak dimampatkan. Contoh aplikasi nya antara lain aplikasi basisdata gambar, office automation, video storage (seperti Video Compact Disc), dll.
D.
Kriteria Pemampatan Citra
Saat
ini sudah banyak ditemukan metode-metode pemampatan citra. Kriteria yang
digunakan dalam mengukur metode pemampatan citra adalah [LOW91]:
1.
Waktu pemampatan dan penirmampatan
(decompression).
Waktu
pemampatan citra dan penirmampatannya sebaiknya cepat. Ada metode pemampatan
yang waktu pemampatannya lama, namun waktu penirmampatannya cepat. Ada pula metode
yang waktu pemampatannya cepat tetapi waktu penirmampatannya lambat. Tetapi ada
pula metode yang waktu pemampatan dan penirmampatannya cepat atau keduanya lambat.
2.
Kebutuhan memori.
Memori yang dibutuhkan untuk merepresentasikan
citra seharusnya berkurang secara berarti. Ada metode yang berhasil memampatkan
dengan persentase yang besar, ada pula yang kecil. Pada beberapa metode, ukuran
memori hasil pemampatan bergantung pada citra itu sendiri. Cira yang mengandung
banyak elemen duplikasi (misalnya citra langit cerah tanpa awan, citra lantai keramik)
umumnya berhasil dimampatkan dengan memori yang lebih sedikit dibandingkan
dengan memampatkan citra yang mengandung banyak objek (misalnya citra
pemandangan alam).
3.
Kualitas pemampatan (fidelity)
Informasi yang hilang akibat pemampatan seharusnya
seminimal mungkin sehingga kualitas hasil pemampatan tetap dipertahankan. Kualitas
pemampatan dengan kebutuhan memori biasanya berbanding terbalik. Kualitas
pemampatan yang bagus umumnya dicapai pada proses pemampatan yang menghasilkan pengurangan
memori yang tidak begitu besar, demikian pula sebaiknya.
Dengan
kata lain, ada timbal balik (trade off) antara kualitas citra dengan ukuran
hasil pemampatan. Kualitas sebuah citra bersifat subyektif dan relatif,
bergantung pada pengamatan orang yang menilainya. Seseorang dapat saja
mengatakan kualitas suatu citra bagus, tetapi orang lain mungkin mengatakan
kurang bagus, jelek, dan sebagainya.
Kita dapat membuat ukuran kualitas hasil pemampatan
citra menjadi ukuran kuantitatif dengan menggunakan besaran PSNR
(peak signal-to-noise ratio). PSNR dihitung untuk mengukur perbedaan antara
citra semula dengan citra hasil pemampatan (tentu saja citra hasil
pemampatan harus dinirmampatkan terlebih dahulu) dengan citra semula, dengan rumus:
dengan b adalah nilai sinyal terbesar (pada citra
hitam-putih, b = 255) dan rms adalah akar pangkat
dua dari selisih antara citra semula dengan citra hasil pemampatan. Nila rms
dihitung dengan rumus:
yang dalam hal ini,
f dan 'f masing-masing menyatakan nilai pixel citra semula dan nilai pixel
citra hasil pemampatan. PSNR memiliki satuan decibel (dB). Persamaan (10.2)
menyatakan bahwa PSNR hanya dapa dihitung setelah proses pernirmapatan citra.
Dari persamaan (10.2) terlihat bahwa PSNR berbanding terbalik dengan rms. Nilai rms yang rendah yang
menyiratkan bahwa
citra hasil pemampatan tidak jauh berbeda dengan citra semula akan menghasilkan
PSNR yang tinggi, yang berarti kualitas pemampatannya bagus. Semakin besar nilai PSNR,
semakin bagus kualitas pemampatannya. Seberapa besar nilai PSNR yang bagus
tidak dapat dinyatakan secara eksplisit, bergantung pada citra yang dimampatkan.
Namun kita dapat mengetahui hal ini jika kita melakukan pengujian dengan
mencoba berbagai kombinasi parameter pemampatan yang digunakan. Jika nilai PSNR
semakin membesar, itu berarti parameter pemampatan yang digunakan sudah menuju
nilai yang baik. Parameter pemampatan citra bergantung pada metode pemamapatan
yang digunakan.
4.
Format keluaran
Format citra hasil pemampatan sebaiknya cocok
untuk pengiriman dan penyimpanan data. Pembacaan citra bergantung pada
bagaimana citra tersebut direpresentasikan (atau disimpan). Pemilihan kriteria yang tepat bergantung pada
pengguna dan aplikasi. Misalnya, apakah pengguna menginginkan pemampatan yang
menghasilkan kualitas yang bagus, namun pengurangan memori yang dibutuhkan
tidak terlalu besar, atau sebaliknya. Atau jika waktu pemampatan dapat diabaikan dari pertimbangan (dengan asumsi bahwa
pemampatan hanya sekali saja dilakukan, namun pernirmampatan dapat
berkali-kali), maka metode yang menghasilkan waktu penirmampatan yang cepat
yang perlu dipertimbangkan.
E.
Jenis Pemampatan Citra
Ada empat pendekatan yang digunakan dalam pemampatan
citra [LOW91]:
1.
Pendekatan statistik.
Pemampatan citra didasarkan pada
frekuensi kemunculan derajat keabuan
pixel di dalam seluruh bagian
gambar.
Contoh metode: Huffman Coding.
2.
Pendekatan ruang
Pemampatan citra didasarkan pada
hubungan spasial antara pixel-pixel di 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: metode pemampatan kuantisasi.
4.
Pendekatan fraktal
Pemampatan citra didasarkan pada
kenyataan bahwa kemiripan bagian-bagian di dalam citra dapat dieksploitasi
dengan suatu matriks transformasi. Contoh metode: Fractal Image Compression.
F.
Klasifikasi Metode Pemampatan
Metode
pemampatan citra dapat diklasifiksikan ke dalam dua kelompok besar:
1.
Metode lossless
Metode
lossless selalu menghasilkan citra hasil penirmampatan yang tepat sama dengan
citra semula, pixel per pixel. Tidak ada informasi yang hilang akibat
pemampatan. Sayangnya nisbah (ratio) pemampatan citra metode lossless sangat
rendah.
Contoh
metode lossless adalah metode Huffman.
Nisbah pemampatan citra
dihitung dengan rumus
Metode
lossless cocok untuk memampatkan citra yang mengandung informasi penting yang
tidak boleh rusak akibat pemampatan. Misalnya memampatkan gambar hasil diagnosa medis.
2.
Metode lossy
Metode
lossy menghasilkan citra hasil pemampatan yang hampir sama dengan citra semula.
Ada informasi yang hilang akibat pemampatan, tetapi dapat ditolerir oleh
persepsi mata. Mata tidak dapat membedakan perubahan kecil pada gambar. Metode
pemampatan lossy menghasilkan nisbah pemampatan yang tinggi daripada metode
lossless. Gambar 10.1 adalah citra
sebelum
dimampatkan, dan Gambar 10.2 adalah hasil pemampatan citra
kapal
dengan metode lossy.
Contoh metode lossy adalah metode JPEG dan metode
fraktal.
Gambar 10.2
Citra kapal setelah dimampatkan dengan sebuah metode lossy .
G.
Metode Pemampatan Huffman
Metode
pemampatan Huffman menggunakan prinsip bahwa nilai (atau derajat) keabuan yang
sering muncul di dalam citra akan dikodekan dengan jumlah bit yang lebih
sedikit sedangkan nilai keabuan yang
frekuensi kemunculannya sedikit dikodekan dengan jumlah bit yang lebih panjang.
Algoritma metode Huffman:
1. Urutkan secara menaik
(ascending order) nilai-nilai keabuan berdasarkan frekuensi kemunculannya (atau
berdasarkan peluang kemunculan, pk, yaitu frekuensi kemunculan (nk) dibagi
dengan jumlah pixel di dalam gambar (n)). Setiap nilai keabuan dinyatakan
sebagai pohon bersimpul tunggal. Setiap simpul di-assign dengan frekuensi
kemunculan nilai keabuan tersebut.
2. Gabung dua buah pohon yang mempunyai frekuensi kemunculan paling kecil pada sebuah akar. Akar mempunyai frekuensi yang merupakan jumlah dari frekuensi dua buah pohon penyusunnya.
3. Ulangi langkah 2 sampai tersisa hanya satu buah pohon biner.Agar pemilihan dua pohon yang akan digabungkan berlangsung cepat, maka semua pohon yang ada selalu terurut menaik berdasarkan frekuensi.
4. Beri label setiap sisi pada pohon biner. Sisi kiri dilabeli dengan 0 dan sisi kanan dilabeli dengan 1.
2. Gabung dua buah pohon yang mempunyai frekuensi kemunculan paling kecil pada sebuah akar. Akar mempunyai frekuensi yang merupakan jumlah dari frekuensi dua buah pohon penyusunnya.
3. Ulangi langkah 2 sampai tersisa hanya satu buah pohon biner.Agar pemilihan dua pohon yang akan digabungkan berlangsung cepat, maka semua pohon yang ada selalu terurut menaik berdasarkan frekuensi.
4. Beri label setiap sisi pada pohon biner. Sisi kiri dilabeli dengan 0 dan sisi kanan dilabeli dengan 1.
Simpul-simpul daun pada pohon biner menyatakan nilai
keabuan yang terdapat di dalam citra semula. Untuk mengkodekan setiap pixel di
dalam di dalam citra, lakukan langkah kelima berikut:
1.
Telusuri pohon biner dari akar
ke daun. Barisan label-label sisi dari akar ke daun menyatakan kode Huffman
untuk derajat keabuan yang bersesuaian.
Setiap kode Huffman
merupakan kode prefiks, yang artinya tidak ada kode biner suatu nilai keabuan
yang merupakan awalan bagi kode biner derajat keabuan yang lain. Dengan cara
ini, tidak ada ambiguitas pada proses penirmampatan citra.
Contoh 1.1. Misalkan terdapat citra
yang berukuran 64 64 dengan 8 derajat keabuan (k) dan
jumlah seluruh pixel (n) = 64 64 = 4096.
Proses pembentukan pohon Huffman yang terbentuk dapat
dilihat pada Gambar 10.3. Setiap simpul di dalam pohon berisi pasangan nilai
a:b, yang dalam hal ini a menyatakan nilai keabuan dan b menyatakan peluang
kemunculan nilai keabuan tersebut di dalam citra. Dari pohon Huffman tersebut
kita memperoleh kode untuk setiap derajat keabuan sebagai berikut:
0 = 00 2 = 01 4 = 1110 6 = 111101
1 = 10 3 = 110 5 = 11111 7 = 111100
Ukuran citra sebelum pemampatan (1 derajat keabuan = 3
bit) adalah 4096 x 3 bit = 12288 bit, sedangkan Ukuran citra setelah
pemampatan:
Jadi, kebutuhan memori telah dikurangi dari 12288 bit
menjadi 11053 bit. Jelas ini tidak banyak menghemat, tetapi jika 256 nilai
keabuan yang digunakan (dibanding dengan 8 derajat keabuan deperti pada contoh
di atas) , penghematan memori dapat bertambah besar.
1.3 Tahapan
pembentukan pohon Huffman untuk Contoh 10.1 di atas
Gambar 10.3 (lanjutan)
H. Metode Pemampatan Run-Length
Encoding (RLE)
Metode RLE cocok digunakan untuk memampatkan citra yang
memiliki kelompok-kelompok pixel berderajat keabuan sama. Pemampatan citra
dengan metode RLE dilakukan dengan membuat rangkaian pasangan nilai (p, q)
untuk setiap baris pixel, nilai pertama (p) menyatakan derajat keabuan,
sedangkan nilai kedua (q) menyatakan jumlah pixel berurutan yang memiliki
derajat keabuan tersebut (dinamakan run length).
Contoh 1.2. [LOW91] Tinjau citra 10
10 pixel dengan 8 derajat keabuan yang dinyatakan sebagai matriks derajat
keabuan sebagai berikut :
semuanya ada 100
buah nilai.
Pasangan nilai untuk
setiap baris run yang dihasilkan dengan metode pemampatan RLE:
(0, 5), (2, 5)
(0, 3), (1, 4), (2, 3)
(1, 10)
(4, 4), (3, 4), (2 2)
(3, 3), (5, 2), (7, 4), (6, 1)
(2, 2), (6, 1), (0, 4), (1, 2), (0, 1)
(3, 2), (4, 2), (3, 1), (2, 2), (1, 2)
(0, 8), (1, 2)
(1, 4), (0, 3), (2, 3)
(3, 3), (2, 3), (1, 4)
semuanya ada 31 pasangan nilai atau 31 2 =
62 nilai.
Versi lain dari metode RLE adalah dengan menyatakan
seluruh baris citra menjadi sebuah baris run, lalu menghitung run-length untuk
setiap derajat keabuan yang berurutan. Sebagai contoh, tinjau sebuah citra
sebagai berikut:
Nyatakan sebagai barisan nilai derajat keabuan:
1
2 1 1
1 1 3
4 4 4
4 1 1
3 3 3
5 1 1
1 1 3 3
semuanya ada 24 nilai.
Pasangan nilai dari run yang dihasilkan dengan
metode pemampatan RLE:
(1,
1) (2, 1) (1, 5)
(3, 1) (4, 4) (1, 2)
(3, 3) (5, 1) (1, 4)
(3, 2)
Hasil pengkodean:
1 1 2
1 1 5
3 1 4
4 1 2
3 3 5
1 1 4
3 2
semuanya ada 20 nilai. Jadi, kita sudah
menghemat 4 buah nilai.
Metode RLE dapat dikombinasikan dengan metode
Huffman untuk mengkodekan nilai-nilai hasil pemampatan RLE guna meningkatkan
nisbah pemampatan. Mula-mula lakukan pemampatan RLE, lalu hasilnya dimampatkan
lagi dengan metode Huffman
I. Metode Pemampatan
Kuantisasi (Quantizing Compression)
Metode ini mengurangi jumlah derajat keabuan, misalnya
dari 256 menjadi 16, yang tentu saja mengurangi jumlah bit yang dibutuhkan untuk
merepresentasikan citra. Misalkan P adalah jumlah pixel di dalam citra semula,
akan dimampatkan menjadi n derajat keabuan. Algoritmanya adalah sebagai
berikut:
1. lgoritma metode kuantisasi:
Buat
histogram citra semula (citra yang akan dimampatkan).
2. Identifikasi n buah kelompok di
dalam histogram sedemikian sehingga
setiap kelompok mempunyai kira-kira P/n buah pixel.
3. Nyatakan setiap kelompok dengan derajat keabuan 0
sampai n –1. Setiap pixel di dalam kelompok dikodekan kembali dengan nilai
derajat keabuan yang baru.
Contoh 1.3. [LOW91] Tinjau citra yang berukuran 5 13
pixel:
yang akan dimampatkan menjadi citra dengan 4 derajat
keabuan (0 s/d 3), jadi setiap derajat
keabuan direpresentasikan dengan 2 bit.
Histogram citra semula
0 **
1
**
2
*********
3
***********
4
*********
5 ****
6
*****
7
********
8
*********
9
******
Ada 65 pixel, dikelompokkan menjadi 4 kelompok derajat
keabuan. Tiap kelompok ada sebanyak rata-rata 65/4 = 16.25 pixel per kelompok:
Citra setelah dimampatkan menjadi:
0
3 2 1
3 0 2
1 3 2
3 1 2
1
3 2 1 2 2
1 3 0
3 1 2
1
1
3 1 2
1 3 0
1 3 0
2 1 3
1
3 1 2
0 2 2
0 0 2
2 1 0
0
0 1 1
3 3 2
1 2 0
0 3 0
Ukuran citra sebelum pemampatan (1 derajat keabuan = 4
bit):
65 x 4 bit = 260 bit
Ukuran citra setelah
pemampatan (1 derajat keabuan = 2 bit):
65 x 2 bit = 130 bit
Kelemahan
metode pemampatan kuantisasi adalah banyaknya informasi yang hilang, tapi
kehilangan informasi ini dapat diminimalkan dengan menjamin bahwa tiap kelompok
mempunyai jumlah pixel yang hampir sama.
J. Metode Pemampatan Fraktal
Metode pemampatan fraktal adalah metode yang relatif
baru. Prinsipnya adalah mencari bagian di dalam citra yang memiliki kemiripan
dengan bagian lainya namun ukurannya lebih besar (self similarity). Kemudian
dicari matriks yang mentransformasikan bagian yang lebih besar tersebut dengan
bagian yang lebih kecil. Kita cukup hanya menyimpan elemen-elemen dari
sekumpulan matriks transformasi tersebut (yang disebut matriks transformasi
affine). Pada proses penirmampatan, matriks ransformasi affine di-iterasi
sejumlah kali terhadap sembarang citra awal. Hasil iterasi akan konvergen ke
citra semula. Metode ini menghasilkan nisbah pemampatan yang tinggi namun waktu pemampatannya
relatif lama, sedangkan waktu penirmamoatannya berlangsung cepat.
Tidak ada komentar:
Posting Komentar