PENGOLAHAN CITRA ( PERTEMUAN 10)
REFERENSI TENTANG (SHANNON FANO, HUFFMAN, RUN LENGHT ENCODING (RLE)
____________________________________________________________________________________
Nama : Fransiskus Xaverius Budi Setiawan
Nim : 17200185
Kelas : 17.5A.07
Matkul : Pengolahan Citra
__________________________________________________________________________________
1.1 Shannon Fano
Algoritma Shannon-Fano coding ditemukan oleh
Claude Shannon (bapak teori informasi) dan Robert
Fano pada tahun 1949. Pada saat itu metode ini
merupakan metode yang paling baik tetapi hampir
tidak pernah digunakan dan dikembangkan lagi
setelah kemunculan algoritma Hufman. Pada
dasarnya
metode inimenggantikan setiap simbol dengan
sebuah alternatif kode biner yang panjangnya
ditentukan berdasarkan probabilitas dari simbol
tersebut Di bidang kompresi data, Shannon-Fano
coding adalah teknik untuk membangun sebuah kode
awalan didasarkan pada seperangkat simbol dan
probabilitas (diperkirakan atau diukur). Namun,
algoritmya ini dirasa kurang optimal dalam arti
bahwa ia tidak mampu mencapai kode seefisien
mungkin seperti kode diharapkan panjang seperti
algoritma Huffman
Menurut Salomon (2007), kompresi data adalah proses pengubahan serangkaian data
input menjadi data output yang mempunyai ukuran lebih kecil. Algoritma Shannon Fano
ditemukan dan dikembangkan oleh Claude Shannon dan Robert Fano. Algoritma Shannon
Fano mengkodekan tiap karakter yang ada dalam serangkaian data input dengan
menggunakan rangkaian beberapa bit, di mana karakter yang sering muncul dikodekan dengan
rangkaian bit yang lebih pendek dibandingkan karakter yang jarang muncul
Berikut ini adalah langkah-langkah kompresi dengan menggunakan algoritma Shannon
Fano:
1. Buat pohon Shannon dengan cara membaca semua karakter di dalam teks untuk
menghitung
probabilitas kemunculan tiap karakter.
probabilitas kemunculan tiap karakter.
2. Karakter-karakter ini kemudian disusun dari yang mempunyai probabilitas kemunculan
paling besar
ke karakter yang mempunyai probabilitas kemunculan paling kecil.
ke karakter yang mempunyai probabilitas kemunculan paling kecil.
3. Bagi dua serangkaian karakter ini menjadi 2 subset yang mempunyai jumlah probabilitas
yang sama
atau hampir sama.
atau hampir sama.
4. Semua simbol dalam subset pertama diberi kode 0 sedangkan simbol pada subset lainnya
diberi
kode 1.
kode 1.
5. Ketika pada sebuah subset hanya terdapat 2 macam simbol, kode mereka dibedakan
dengan cara memberikan 1 bit lagi ke masing-masing simbol.
6. Lakukan langkah nomor 3, 4, dan 5 pada tiap-tiap subset secara rekursif sampai tidak ada
lagi subset
yang tersisa.
yang tersisa.
1.1 Huffman
Algoritma Huffman adalah salah satu algoritma
kompresi tertua yang disusun oleh David Huffman
pada tahun 1952. Algoritma tersebut digunakan
untuk membuat kompresi jenis lossy compression,
yaitu pemampatan data dimana tidak satu byte pun
hilang sehingga data tersebut utuh dan disimpan
sesuai dengan aslinya. Pada sejarahnya, Huffman
sudah tidak dapat membuktikan apapun tentang kode
apappun yang efisien, tapi ketika tugasnya hampir
final, ia mendapatkan ide untuk menggunakan pohon
binary untuk menyelesaikan masalahnya mencari
kode yang efisien. Pada dasarnya, algoritma Huffman ini bekerja seperti mesin sandi morse, dia
membentuk suatu kode dari suatu karakter. Sehingga
karakter tersebut memiliki rangkaian bit yang lebih
pendek dibandingkan sebelumnya.
1.1 Pembuatan Pohon Huffman
Pohon Huffman ini dibentuk berdasarkan kode prefiks. Kode biner dibentuk secara prefiks dan kode biner ini tidak mungkin terbentuk sama satu sama lainnya. Karakter-karakter yang akan direpresentasikan dalam biner, dipisahkan ke dalam cabang pohon biner dan beri frekuensinya. Cabang sebelah kiri diberi bit 0 sebagai identitas, dan bit kanan diberi angka 1. pada akhirnya bit ini akan dibaca dari akar hingga simpul dari suatu karakter itu sehingga terbentuk angka biner identitas untuk meringkas memori sehingga menjadi efisien.
Pohon Huffman ini dibentuk berdasarkan kode prefiks. Kode biner dibentuk secara prefiks dan kode biner ini tidak mungkin terbentuk sama satu sama lainnya. Karakter-karakter yang akan direpresentasikan dalam biner, dipisahkan ke dalam cabang pohon biner dan beri frekuensinya. Cabang sebelah kiri diberi bit 0 sebagai identitas, dan bit kanan diberi angka 1. pada akhirnya bit ini akan dibaca dari akar hingga simpul dari suatu karakter itu sehingga terbentuk angka biner identitas untuk meringkas memori sehingga menjadi efisien.
Langkah dalam membentuk pohon Huffman ini dapat
diringkas menjadi sebagai berikut :
1. hitung semua frekuensi kemunculan tiap
karkternya. Hal ini dapat dilakukan hanya
dengan
menghitung (memroses) semua karakter dari awal hingga akhir dengan saru kali lewat (one way
pass)
menghitung (memroses) semua karakter dari awal hingga akhir dengan saru kali lewat (one way
pass)
2. kemudian terapkan strategi algoritma greedy.
Apa itu algoritma greedy? Yaitu algoritma
greedy merupakan metode yang paling populer
untuk memecahkan persoalan optimasi Ada
dua persoalan optimasi, yaitu optimasi minimum
dan maksimum, yang digunakan pada hal ini
adalah optimasi minimum. Algoritma greedy
pada pembentukan pohon di sini yaitu membagi
dua pohon menjadi frekuensi yang lebih kecil,
kemudian hubungkan pada sebuah akar. Akar
tersebut kemudian dipisah kembali dan digabung
dengan akar yang berada di atasnya (akar baru)
3. proses ketiga yaitu proses rekursif dari proses
kedua sehingga akar utama pohon memiliki
frenuensi
bernilai 1nti dari algortima huffman adalah menggunakan priority queue yang direkursif sehingga membentuk pohon dengan kompleksitas waktu On(log n)
bernilai 1nti dari algortima huffman adalah menggunakan priority queue yang direkursif sehingga membentuk pohon dengan kompleksitas waktu On(log n)
Run Length Encoding (RLE) merupakan salah satu jenis lossless yang paling sederhana dari skema
kompresi data dan didasarkan pada prinsip sederhana data encoding, RLE sangat cocok
digunakan untuk mengompresi data yang berisi karakter-karakter berulang atau data berjalan
(yaitu: urutan dimana nilai data yang sama terjadi pada banyak elemen data yang berturut-turut). Penggunaan metode RLE sangat berguna untuk data yang berisi banyak data yang berjalan misalnya: citra
grafis sederhana seperti ikon, citra garis, dan animasi. Metode ini tidak berguna untuk file yang tidak
memiliki data berjalan karena sangat dapat meningkatkan ukuran file.
Kompresi data pada file yang berisi karakter-karakter berulang dengan cara, karakter yang sama
berturut-turut diubah menjadi 2 nilai, yaitu jumlah karakter yang sama dan karakter itu sendiri Mengompresi citra menggunakan RLE didasarkan pada pengamatan bahwa jika terdapat piksel pada citra
secara acak, ada kemungkinan bahwa warna disebelahnya memiliki warna yang sama. Semakin
detail piksel pada citra, semakin buruk kompresinya.
2.1 Shannon Fano
Algoritma Shannon-Fano dinamakan berdasarkan nama
pengembangnya Claude Shannon dan Robert Fano. Algoritma
Shannon-Fano merupakan kompresi yang bersifat lossless.
Metode dimulai dengan deretan dari simbol n dengan
kemunculan frekuensi yang diketahui. Mula-mula simbol
disusun secara menaik (ascending order) berdasarkan frekuensi
kemunculannya. Lalu set simbol tersebut dibagi menjadi dua
bagian yang berbobot sama atau hampir sama. Seluruh simbol
yang berada pada subset I diberi biner 0
Sedangkan simbol
yang berada pada subset II diberi biner 1. Setiap subset dibagi
lagi menjadi dua subsubset dengan bobot kemunculan
frekuensi yang kira-kira sama, dan biner kedua diberikan
seperti subset I dan II. Ketika subset hanya berisi dua simbol,
biner diberikan pada setiap simbol. Proses akan berlanjut
sampai tidak ada subset yang tersisa (Salomon: 2010).
Algoritma Shannon-Fano merupakan algoritma kompresi data yang meng-kodekan setiap karakter dengan menggunakan beberapa rangkaian bit. Pembentukan bit yang mewakili masing-masing karakter dibuat berdasarkan frekuensi kemunculan tiap karakter. Tujuan dari penelitian ini adalah untuk menguji kompresi algoritma Shannon-Fano. Penelitian ini dilakukan terhadap dua kategori yaitu file dengan ukuran yang sama dan memiliki karakter yang bervariasi dan file dengan ukuran yang berbeda dan karakter yang bervariasi. Hasil pengujian menunjukan bahwa file text dengan karakter yang bervariasi akan menghasilkan pemampatan file yang rendah sedangkan filetext dengan karakter yang tidak bervariasi memiliki tingkat pemampatan file yang tinggi dengan ukuran file yang sama.
2.1 Huffman
sebuah tipe code yang optimal yang biasanya digunakan untuk lossless data compression. Algoritme Huffman Coding ditemukan oleh David A. Huffman pada saat ia masih seorang mahasiswa di MIT, ia menerbitkan karyanya pada tahun 1952 yang berjudul "A Method for the Construction of Minimum Redundancy Codes".
Hasil dari algoritme Huffman bisa dipandang sebagai sebuah tabel kode variabel-panjang untuk pengkodean simbol sumber (seperti sebuah karakter dalam sebuah file). Algoritme ini memperoleh dari tabel tersebut berdasarkan dari estimasi probabilitas atau frekuensi munculnya untuk setiap nilai yang mungkin dari simbol sumber. Seperti dalam metode pengkodean entropi lainnya, simbol yang lebih umum diwakili dengan bit yang lebih sedikit daripada simbol kurang umum.
Pada tahun 1951, David A. Huffman dan mahasiswa sekelasnya di teori informasi MIT diberikan pilihan untuk membuat makalah atau mengerjakan ujian akhir. Topik untuk makalah tersebut yang diberikan oleh profesor kelas itu, Robert M. Fano, adalah pencarian kode biner yang paling efisien. Huffman, yang tidak mampu untuk membuktikan kode mana yang paling efisien, hampir menyerah dan sudah mau memutuskan untuk mengambil ujian akhir-nya saja saat tiba-tiba ia terpikir sebuah ide untuk menggunakan algoritme pohon biner yang diurutkan berdasarkan frekuensi. Dengan cepat, ia langsung membuktikan kepada profesornya bahwa metode tersebut adalah metode yang paling efisien.
http://ojs.uho.ac.id/index.php/dinamika/article/view/267
https://media.neliti.com/media/publications/67427-ID-implementasi-dan-analisis-perbandingan-a.pdf
https://media.neliti.com/media/publications/67427-ID-implementasi-dan-analisis-perbandingan-a.pdf
Perangkat_Lunak_Kompresi_Teks_Menggunakan_Algoritma_Shannon_Fano
https://hendroprasetyo.com/memahami-algoritma-run-length-encoding-compressi/#.Y3X0wHZBzIV
https://id.wikipedia.org/wiki/Pengodean_Huffman
https://en.wikipedia.org/wiki/Run-length_encoding
https://media.neliti.com/media/publications/339018-analisa-kode-huffman-untuk-kompresi-data-1ab99bbd.pdf
Komentar
Posting Komentar