Pages

Menghitung Hasil Kompresi Citra Dengan Huffman Tree

Kita pasti sudah sering dengar istilah kompresi. banyak data yang dikompresi seperti lagu, word, gambar dsb. kali ini saya akan membahas bagaimana sebenarnya suatu gambar bisa dikompres tanpa mempengaruhi hasilnya, sedangkan ukuran gambar bisa turun sangat drastis. metode yang digunakan kali ini adalah metode huffman, bisa dilihat pada contoh kasus berikut bagaimana sebenarnya metode huffman bekerja.

Misalnya kita memiliki citra dalam matrix sebagai berikut

2
4
4
5
2
3
4
5
3
2
3
3
5
5
5
5


Kita kelompkkan yang memiliki nilai yang sama :
222 3333 444 555555

Ada sebanyak 16 karakter, berarti memory yang dibutuhkan sebelum dikompresi adalah :
16 x 8 bit = 128 bit
Selanjutnya kita akan mencari Huffman tree, pertama yang kita lakukan adalah memberi kode nilai

2
3
Karakter 2 Sebanyak 3
3
4
Karakter 3 Sebanyak 4
4
3
Karakter 4 Sebanyak 3
5
6
Karakter 5 Sebanyak 6

Selanjutnya mencari root dengan cara binary.


root telah didapat, selanjutnya mencari Huffman Tree

Selanjutnya kita akan mencari bit dari Huffman Tree yang baru kita buat

5
0
3
10
2
110
4
1111

Dengan tabel di atas kita bisa lihat bahwa karakter 5 tinggal membutuh 1, 3 membutuhkan 2 bit... 4 membutuhkan 4 bit.

sekarang kita akan hitung tempat yang dibutuhkan setelah dikompresi.


2
3
Karakter 2 Sebanyak 3
3
4
Karakter 3 Sebanyak 4
4
3
Karakter 4 Sebanyak 3
5
6
Karakter 5 Sebanyak 6


Ukuran citra =  3*3 + 4*2 + 3*4 + 6*1 = 9 + 8 + 12 + 6 = 35 bit

berarti citra setelah dikompresi tinggal 35 bit.

bisa dilihat perbandinganya saat sebelum dikompres, dibutuhkan tempat penyimpanan sebanya 128 bit, tetapi setelah dikompresi tinggal 35 bit saja.


sekarang kita akan menghitung hasil kompresi citra


Hasil Kompresi = ((nilai awal - nilai akhir) / nilai awal ) * 100% = ((128-35)/128)*100=72,65 %
Jhohannes H Purba Coding Sederhana July 03, 2011

11 comments:

  1. Kang, Mohon petunjuknya..
    Ukuran citra = 3*3 + 4*2 + 3*4 + 6*1 = 9 + 8 + 12 + 6 = 35 bit
    Itu didapat darimana perkaliannya?

    ReplyDelete
    Replies
    1. perhatikan ini gan...
      222 3333 444 555555

      2 sebanyak 3
      3 sebanyak 4
      4 sebanyak 3
      5 sebanyak 6

      kemudian ambil dari huffman tree :
      Dengan tabel di atas kita bisa lihat bahwa karakter...
      5 membutuhkan 1 bit
      3 membutuhkan 2 bit
      2 membutuhkan 3 bit
      4 membutuhkan 4 bit

      untuk mengalikan saya buat berurutan berdasarkan jumlah karakter....



      Delete
  2. sangat membantu sekali penjelasannya kang, terima kasih :)

    ReplyDelete
  3. mohon petunjuknya master...

    pada citra digital nilai-nilai diatas, yaitu 222 3333 444 555555 menunjukan nilai apa? apakah warna atau informasi lainnya?

    thanks.

    ReplyDelete
    Replies
    1. itu adalah nilai dari citranya gan, karena citra yang diproses harus terlebih dahulu diambil nilai binernya kemudian dikonversi ke desimal.. dst..

      Delete
    2. thanks gan infonya. ane lagi latihan bikin project kompresi citra dengan hiffman coding di android. btw agan punya projectnya untuk android atau java, bisa tolong kirim ke auliawildan01@yahoo.com . ane butuh buat referensi gan. thanks..

      Delete
  4. Gan, ada syntax matlab nya?? Utk kompresi image

    ReplyDelete
  5. gan.. bisa mintak coding untuk algoritma huffmannya ?

    ReplyDelete