07 image compression

Upload: sienny-angelia

Post on 05-Jul-2015

113 views

Category:

Documents


0 download

DESCRIPTION

Mata Kuliah Semester 4 - Digital Image Processing iSTTS Surabaya

TRANSCRIPT

Image Compression

Kompresi Citra Image umumnya terdiri dari sejumlah besar data. Kompresi Citra dimaksudkan untuk mengurangi jumlah data (bits) yang dibutuhkan untuk mewakili citra digital. Ini dapat dikerjakan dengan mengurangi bagian yang tidak dipakai. Kompresi Citra dibagi menjadi 2 bagian: a. Lossy (Citra hasil tidak bisa dikembalikan seperti aslinya). b. Lossless (Citra hasil dapat dikembalikan seperti aslinya). Jika n1 adalah image asli, n2 adalah image hasil maka Relative Redudancy (RD) dari image asli adalah: RD = 1-(1/CR) Dimana CR = n1/n2 CR disebut sebagai Compression RatioPengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

1

Kompresi Citra (Lanjutan .)Ada 3 macam Redudancy Data untuk image: Coding Redudancy (berdasarkan code biner yang mewakili intensitas graylevel) Interpixel Redudancy (berdasarkan pada hubungan korelasi antar pixel yang berdekatan) Psychovisual Redudancy (berdasarkan pada ketidaksamaan sensitivitas mata manusia terhadap perbedaan informasi visual)

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

2

Model Kompresi CitraImage Asli Image Rekonstruksi

Image Terkompresi

Source Encoder membuang redudancy dari input image Channel Encoder membantu mengontrol noise (menyediakan beberapa level kekebalan terhadap noise). Channel Decoder dan Source Decoder bekerja kebalikan dari proses Encoder.

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

3

Source Encoder

Source Encoder berfungsi untuk mengurangi atau membatasi setiap coding, interpixel atau psychovisual redudancy. Mapper berfungsi untuk mentransformasi data input menjadi format nonvisual, didesain untuk mengurangi redudancy antar pixel. Blok ini bersifat bolak-balik, dan mungkin mengurangi ukuran data tapi bisa juga tidak mengurangi ukuran data. Quantizer mengurangi keakuratan dari Output Mapper, dalam hubungannya dengan kriteria fidelity. Blok ini mengurangi redudancy psychovisual dan biasanya tidak bisa bolak balik. Symbol Encoder menciptakan code2 dengan panjang tetap/variabel yang mewakili output Quantizer. Blok ini bersifat bolak-balik.Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

4

Source Decoder

Source Decoder bekerja kebalikan dari Blok Source Encoder kecuali Quantizer, yang hanya berjalan 1 arah.

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

5

Kompresi Citra yang umum Run Length Encoding. Huffman Encoding. Shanon Fano Encoding Discrete Cosinus Transform

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

6

Run Length Encoding (RLE) RLE merupakan metode kompresi yang banyak didukung oleh format file gambar seperti: TIFF, BMP, PCX. RLE bekerja dengan mengurangi ukuran fisik dengan adanya pengulangan string dari deretan karakter / byte data. String perulangan ini dinamakan RUN, dan biasanya di kodekan dalam 2 byte. Byte pertama merupakan jumlah perulangan dan byte kedua adalah karakter yang diulang. Contoh: AAAAAAAABBBBBCDEEEEEFFFFF 8A5B1C1D5E5F 25 byte uncompressed 10 byte compressedPengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

7

RLE (Lanjutan .) Dari konsep sebelumnya terlihat bahwa jika data tidak bisa dikompresi (tidak ada data yang sama sacara berurutan) maka hasil kompresi memiliki ukuran data 2 x lebih besar. Untuk itu ditentukan suatu Character khusus yang akan menunjukkan data berikutnya adalah merupakan data terkompresi. Byte pertama merupakan nilai flag yang menandakan bahwa 2 byte berikutnya adalah karakter yang dikompresi. Byte kedua merupakan jumlah karakter yang dikompresi. Sedangkan byte ke tiga adalah karakter yg dikompresi. Saat proses kompresi jika nilai RUN adalah1, 2 atau 3 byte, maka Karakter akan ditulis langsung ke data stream dan tidak dilakukan kompresi. Karena itu pada teknik ini jika data tidak ada yang berurutan, ukuran output sama dengan input.Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

8

RLE (Lanjutan .)

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

9

Shannon Fano Coding Tiap kode berbeda informasi bitnya. Kode simbol yang probabilitasnya rendah mempunyai jumlah bit yang lebih banyak, dan yang probabilitasnya tinggi mempunyai jumlah bit yang lebih sedikit. Proses decoding tetap dapat dilakukan walaupun panjang kode tiap simbol berbeda. Proses kompresi terjadi karena simbol yang sering keluar dikodekan dengan jumlah bit yang sedikit.0 0 A B 1 0 C 0 D E 10 1 1 1

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

Algoritma Shannon Fano Buat daftar probabilitas kemunculan setiap simbol. Urutkan daftar dari yang paling sering keluar. Bagi daftar menjadi 2, dengan ketentuan jumlah probabilitas setengah bagian atas mendekati setengah bagian bawah. Setengah bagian atas diberi nilai 0 setengah bagian bawah diberi nilai 1. Lakukan secara rekursif langkah terakhir pada setengah bagian atas dan setengah bagian bawah.

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

11

Algoritma Shannon Fano Buat daftar probabilitas kemunculan setiap simbol. Urutkan daftar dari yang paling sering keluar. Bagi daftar menjadi 2, dengan ketentuan jumlah probabilitas setengah bagian atas mendekati setengah bagian bawah. Setengah bagian atas diberi nilai 0 setengah bagian bawah diberi nilai 1. Lakukan secara rekursif langkah terakhir pada setengah bagian atas dan setengah bagian bawah.

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

12

Contoh: Shannon Fano Coding (1)Diberikan simbol:AAAAAAAAAAAAAAABBBBBBCCCCCDDDDDDEEEEEEEJika ditabelkan menjadi: A 15 E 7 B 6 D 6 C 5

Pembagian pertama Karena menghasilkan selisih Atas dan Bawah terkecil (=5) Selanjutnya semua bagian atas diberi lambang 0 dan semua bagian bawah diberi lambang 1Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

1 1 1

13

Contoh: Shannon Fano Coding (2)A 15 E 7 B 6 D 6 C 5

0 0 1 1 1 1

Pembagian kedua Untuk membagi setengah bagian atas

Selanjutnya untuk setengah bagian atas: bagian atas pembagian lambang 0 dan bagian bawah pembagian diberi lambang 1Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

14

Contoh: Shannon Fano Coding (3)A 15 E 7 B 6 D 6 C 5

0 0 1 1 1

0 1 0 1 1

Pembagian ketiga Karena menghasilkan selisih Atas dan Bawah terkecil (=5)

Selanjutnya semua bagian atas diberi lambang 0 dan semua bagian bawah diberi lambang 1Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

15

Contoh: Shannon Fano Coding (4)A 15 E 8 B 5 D 3 C 2

0 0 1 1 1

0 1 0 1 1

0 1A B C D E = = = = =

Pembagian keempat Merupakan pembagian terakhir

Sehingga dapat dikodekan:

00 01 10 110 11116

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

Huffman Coding Hasil kompresi lebih baik dari Shanon Fano. Sama dengan Shanon Fano: Kode simbol yang probabilitasnya rendah mempunyai jumlah bit yang lebih banyak, dan yang probabilitasnya tinggi mempunyai jumlah bit yang lebih sedikit. Untuk Proses decoding biasanya digunakan Binary Tree. Kode Huffman membentuk Tree dari bawah keatas. Tiap Simbol merupakan node dari ujung tree. Tiap simbol memiliki bobot berupa probabilitas frekuensi kemunculan simbol.Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

17

Huffman Coding (Lanjutan)Tree dibentuk dengan cara: Dipilih node yang masih bebas dengan bobot terendah. Dibentuk node induk dari kedua node ini, bobotnya sama dengan bobot kedua anaknya. Node induk digabungkan dalam daftfar node bebas lainnya (node yang telah digabung menjadi tidak bebas lagi). Path dari node induk ke-anak2 nya diberi simbol 0 dan 1. Pemberian simbol harus konsisten jika dibuat aturan 0 sebelah kiri, maka ketentuan ini harus berlaku sampai node bebas tinggal 1. Ulangi langkah diatas sampai node bebas tinggal 1 (=root)Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

18

Contoh: Huffman Coding (1)Diberikan simbol: AAAAAAAAAAAAAAABBBBBBCCCCCDDDDDDEEEEEEE Dengan Huffman akan menghasilkan tabel sbb:A 15 E 7 B 6 D 6 0 C 5 1 A E B DC 15 7 6 11 0 1 A EB 15 13 0 1 A 15 0 1 EBDCA 39

EBDC 24

DC 11

A= 0 B = 101 C = 111 D = 110 E = 100Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

19

Contoh: Huffman Coding (2)Atau dengan gambar tree:Root 0 39 0 24 0 13 15 A 7 E 6 B 6 D 1 0 11 5 C20

1 1 1

A= 0 B = 101 C = 111 D = 110 E = 100

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

Discrete Cosine Transform (DCT)

DCT DCT adalah transformasi yang menjadi dasar bagi kompresi citra lossy yang populer JPEG DCT bagi fungsi diskrit 2 dimensi (misalnya pada citra) didefinisikan sebagai:

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

21

Inverse DCT Inverse dari DCT dihitung dari:

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

22

Contoh DCTini citranya

Pakai DFT

ini kalau pakai DCT

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

23

Basis Fungsi DCT Dalam persamaan DCT dan IDCT terdapat basis fungsi yang bisa dihitung terlebih dulu karena nilainya tetap, sehingga proses dapat dipercepat:

Untuk citra 8x8, maka basis fungsi DCT digambarkan sebagai:

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

24

DCT untuk Kompresi Citra Kompresi dapat dilakukan karena hasil DCT hampir semuanya 0 (atau mendekati 0). Nilai-nilai 0 ini dapat dihilangkan, dan bila IDCT dilakukan, citra masih terlihat bagus Untuk mempercepat proses, citra dibagi-bagi jadi blok-blok, dan gunakan basis fungsi yang sesuai dengan ukuran blok

hampir semuanya nilainya=0

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

25

Cara Alternatif Menghitung DCT Selain dengan cara yang telah kita bahas, kita bisa menghitung DCT dengan matrix DCT Matrix DCT berukuran MxM, didefinisikan dengan:

DCT dari citra A dihitung dari: B = T * A * T Inverse DCT dihitung dari: A = T * B * T

Pengolahan Citra Digital Sekolah Tinggi Teknik Surabaya, 2011

26