Anda di halaman 1dari 20

TUGAS V

PENGOLAHAN SINYAL MULTIMEDIA


SIMULASI TEKNIK KOMPRESI CITRA DENGAN METODE
HUFFMAN MENGGUNAKAN MATLAB

OLEH :
PEBRI YENI SAMOSIR

(1404405097)

JURUSAN TEKNIK ELEKTRO DAN KOMPUTER


FAKULTAS TEKNIK
UNIVERSITAS UDAYANA
2016

A. PENDAHULUAN
Perkembangan teknologi informasi dan telekomunikasi yang pesat telah
menjadi peran yang sangat penting untuk pertukaran informasi yang cepat.
Kecepatan pengiriman informasi dalam bentuk perpaduan teks, suara dan gambar
secara real-time akan menjadi bagian utama dalam pertukaran informasi.
Kecepatan pengiriman ini sangat bergantung kepada ukuran dari informasi
tersebut Salah satu solusi untuk masalah di atas adalah dengan melakukan
pemampatan (kompresi) data teks, suara, dan citra sebelum ditransmisikan dan
kemudian penerima akan merekonstruksinya kembali menjadi data aslinya
(dekompresi). Kompresi adalah proses pengubahan sekumpulan data menjadi
bentuk kode dengan tujuan untuk menghemat kebutuhan tempat penyimpanan
data dan waktu untuk transmisi data. Jika data tersebut hendak dipergunakan
kembali, maka harus dilakukan dekompresi, yaitu pengubahan kode-kode menjadi
data awal.
Saat ini, telah banyak tersedia algoritma untuk melakukan kompresi, antara
lain : Huffman, LIFO, LZHUF, LZ77 dan variannya (LZ78, LZW, GZIP),
Dynamic Markov Compression (DMC), Block Sorting Lossless, Run-Length,
Shannon-Fano, Arithmetic, PPM (Prediction by Partial Matching), BurrowsWheeler Block Sorting, dan Half Byte. Namun, ada beberapa faktor yang dijadikan
pertimbangan dalam memilih algoritma yang akan digunakan dalam kompresi
data, yaitu :
1. Sumber daya yang dibutuhkan (Memori, kecepatan PC),
2. Kecepatan kompresi,
3. Ukuran hasil kompresi dan besarnya redudansi,
4. Ketepatan hasil dekompresi,
5. Kompleksitas algoritma.

Gambar 1. Klasifikasi dari Beberapa Teknik Kompresi

1.1 Algoritma Huffman


1.1.1 Pengertian Metode Huffman

Huffman merupakan algoritma yang dipakai untuk mengurangi kehilangan


data pada kompresi. Pada bagian ini dianjurkan untuk menggunakan table
variable length code untuk encoding sebuah sumber data simbol (seperti sebuah
karakter pada file) di mana table variable-length code sudah dapat
memperkirakan setiap nilai kemungkinan dari sebuah sumber data simbol. Metode
ini dikembangkan oleh David A. Huffman ketika beliau sedang mengambil Ph.D.
di MIT, dan menerbitkan sebuah makalah pada tahun 1952 A Method for the
Construction of Minimum-Redundancy Codes." Huffman menjadi seorang
anggota fakultas MIT setelah kelulusan dan kemudian menjadi anggota pendiri
Bagian Ilmu Pengetahuan Komputer di Universitas California, Santa Cruz.
Huffman coding digunakan secara spesifik untuk memilih gambaran untuk setiap
simbol data, dan menghasilkan kode pada prefix free code. Prefix code merupakan
string bit yang menggambarkan suatu lambang khusus yang tidak pernah
digambarkan oleh lambang-lambang lain mana pun) yang menggambarkan
karakter yang biasa digunakan menjadi sebuah string dari sebuah bit yang lebih
pendek.
Metode Huffman merupakan salah satu metode kompresi lossles. Dimana
metode kompresi lossless merupakan metode kompresi data yang menghasilkan
data yang sama persis ketika didekompresi dengan data aslinya dengan
merekonstruksi dari data yang dikompresi.
Sifat-sifat pengkodean Huffman :
1. Prefix unik yaitu setiap kode Huffman tidak menjadi prefix dari kode
Huffman lainnya, untuk mencegah ambigu dekoding.
2. Optimality (redundansi code minimum) yaitu dua simbol dengan
frekuensi terkecil memiliki panjang kode Huffman sama, hanya berbeda
di bit terakhir. Simbol-simbol yang terjadi lebih sering memiliki kode
Huffman lebih pendek, dibandingkan dengan simbol yang jarang terjadi.
Kode Huffman selalu memiliki atribut prefik yang unik, artinya
bahwa setiap kode harus dapat didekodekan tanpa adanya
kesalahan walaupun
panjang
kodenya bervariasi. Hal
ini
dimungkinkan karena adanya pohon Huffman. Pohon Huffman pada
dasarnya merupakan pohon biner. Pada algoritma lain, seperti
Shannon-Fano, pembuatan pohon dimulai dari root lalu bergerak
ke bawah menuju daun, sedangkan pada metode pohon Huffman
dibuat mulai dari daun dan bergerak keatas menuju akar (root).
Adapun ketentuan membuat pohon Huffman adalah sebagai berikut :
1. Tentukan 2 buah node dengan jumlah kemunculan paling
jarang.
2. Bentuk sebuah node induk dari kedua node tersebut.
Probabilitasnya adalah jumlah dari kedua node tersebut.

3. Node induk ditambahkan ke dalam list node bebas, kemudian


2 node tersebut dihilangkan dari list.
4. Node dengan
frekuensi kemunculan
lebih
tinggi akan
dikodekan ke bit 0 dan node yang lainnya dikodekan ke bit 1.
5. Langkah sebelumnya diulangi hingga tersisa sebuah node
bebas saja. Node bebas itu merupakan akar dari pohon.

1.1.2

Prinsip Kerja Metode Huffman


Algoritma Huffman menggunakan prinsip pengkodean yang mirip dengan
kode Morse, yaitu tiap karakter (simbol) dikodekan hanya dengan rangkaian
beberapa bit, dimana karakter yang sering muncul dikodekan dengan rangkaian bit
yang pendek dan karakter yang jarang muncul dikodekan dengan rangkaian bit
yang lebih panjang. Berdasarkan tipe peta kode yang digunakan untuk mengubah
pesan awal (isi data yang diinputkan) menjadi sekumpulan codeword, algoritma
Huffman termasuk kedalam kelas algoritma yang menggunakan metode statik .
Metoda statik adalah metoda yang selalu menggunakan peta kode yang
sama, metoda ini membutuhkan dua fase (two-pass): fase pertama untuk
menghitung probabilitas kemunculan tiap simbol dan menentukan peta kodenya,
dan fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan di
transmisikan. Sedangkan berdasarkan teknik pengkodean simbol yang digunakan,
algoritma Huffman menggunakan metode symbolwise. Metoda symbolwise adalah
metode yang menghitung peluang kemunculan dari setiap simbol dalam satu
waktu, dimana simbol yang lebih sering muncul diberi kode lebih pendek
dibandingkan simbol yang jarang muncul.
Metode Huffman merupakan salah satu teknik kompresi dengan cara
melakukan pengkodean dalam bentuk bit untuk mewakili data karakter. Cara kerja
atau algoritma metode ini adalah sebagai berikut :
a. Menghitung banyaknya jenis karakter dan jumlah dari masing-masing
karakter yang terdapat dalam sebuah file.
b. Menyusun setiap jenis karakter dengan urutan jenis karakter yang
jumlahnya paling sedikit ke yang jumlahnya paling banyak.
c. Membuat pohon biner berdasarkan urutan karakter dari yang jumlahnya
terkecil ke yang terbesar, dan memberi kode untuk tiap karakter.
d. Mengganti data yang ada dengan kode bit berdasarkan pohon biner.
e. Menyimpan jumlah bit untuk kode bit yang terbesar, jenis karakter yang
diurutkan dari frekuensi keluarnya terbesar ke terkecil beserta data yang

sudah berubah menjadi kode bit sebagai data hasil kompresi. Contoh
teknik kompresi dengan menggunakan metode Huffman pada file teks.
Misalkan sebuah file teks yang isinya AAAABBBCCCCCD. File ini
memiliki ukuran 13 byte atau satu karakter sama dengan 1 byte.

Berdasarkan pada cara kerja di atas, dapat dilakukan kompresi sebagai


berikut :
a.

Mencatat karakter yang ada dan jumlah tiap karakter. A = 4, B = 3, C =


12, D = 1.

b.

Mengurutkan karakter dari yang jumlahnya paling sedikit ke yang paling


banyak yaitu : D, B, A, C.

c.

Membuat pohon biner berdasarkan urutan karakter yang memiliki


frekuensi terkecil hingga yang paling besar.

d.

Mengganti data yang ada dengan kode bit berdasarkan pohon biner yang
dibuat. Penggantian karakter menjadi kode biner, dilihat dari node yang
paling atas atau disebut node akar :
A = 01, B = 001, C = 1, D = 000
Selanjutnya berdasarkan pada kode biner masing-masing karakter ini,
semua
karakter
dalam
file
dapat
diganti
menjadi:
01010101001001001111110001111111, karena angka 0 dan angka 1
mewakili 1 bit, sehingga data bit di atas terdiri dari 32 bit atau 4 byte (1
byte = 8 bit)

e.

Menyimpan kode bit dari karakter yang frekuensinya terbesar, jenis


karakter yang terdapat di dalam file dan data file teks yang sudah
dikodekan. Cara menyimpan data jenis karakter adalah dengan
mengurutkan data jenis karakter dari yang frekuensinya paling banyak
sampai ke yang paling sedikit, menjadi : [C,A,B,D] File teks di atas,
setelah mengalami kompresi, memiliki ukuran sebesar 1 + 4 + 4 = 9 byte.
Jumlah ini terdiri dari 1 byte kode karakter yang memiliki frekuensi
terendah, 4 jenis karakter = 4 byte dan 4 byte data kode semua karakter.

Gambar 2. Contoh Pohon Huffman

Berikut merupakan contoh lain menggunakan metode Huffman :


Contoh : Terdapat data awal sebagai berikut :
Simbol A : memiliki jumlah kemunculan sebanyak 15 kali.
Simbol B : memiliki jumlah kemunculan sebanyak 7 kali.
Simbol C : memiliki jumlah kemunculan sebanyak 6 kali.
Simbol D : memiliki jumlah kemunculan sebanyak 6 kali.
Simbol E : memiliki jumlah kemunculan sebanyak 5 kali.
Maka pohon Huffman yang terbentuk akan seperti gambar di bawah ini
:

Gambar 3. Pohon Huffman untuk Contoh Soal Diatas


Tabel 1. Tabel Kode Hasil Kompresi Menggunakan static Huffman

Simbol
A
B
C
D
E

Kemuncula
n
15
7
6
6
5

Kode
0
100
101
110
111

Tabel 2. Jumlah Bit yang Dibutuhkan untuk Menyimpan Informasi dengan Algoritma Huffman

Simbol
A
B
C
D
E
Total

Kemuncula
n
15
7
6
6
5
39

Ukuran
Huffman
1
3
3
3
3

Jumlah bit
Huffman
1 x 15 = 15
3 x 7 = 21
3 x 6 = 18
3 x 6 = 18
3 x 5 = 15
87 bit

Dari hasil tabel 2 diatas dapat dilihat bahwa dengan static


Huffman untuk menyimpan 85.25 bit informasi hanya dibutuhkan
87 bit saja. Hal ini lebih baik dibandingkan Shannon-Fano yang
menyimpan dengan 89 bit.

1.1.3

Kompresi dan Dekompresi Citra Menggunakan Metode Huffman


Beberapa metode kompresi citra telah dikembangkan seperti Block coding,
Encoding, CDT, Wavelet transform dan lainnya. Metode kompresi citra terus
dikembangkan dengan tujuan untuk mengkompres hingga sekecil mungkin data

citra, namun pada saat rekonstruksi diharapkan tidak satu pun data citra yang
hilang.
Berdasarkan pada landasan pikiran di atas serta hasil yang diperoleh dari
metode Huffman dimana teks hasil dekompresi yang diperoleh 100% sama
dengan teks aslinya.
Secara fisis, sebuah citra adalah merupakan representasi objek-objek baik
dalam
keadaan
diam atau bergerak pada suatu suport fisik seperti kertas, monitor
init_str
= sorted_str;
init_prob
prob_dist;
atau
lainnya. =Secara
matematis, sebuah citra dinyatakan sebagai sebuah fungsi
matematis dua dimensi 2D f(x,y) atau tiga dimensi 3D f(x,y,z). Dimana x dan y
sorted_prob = prob_dist;
menyatakan
rear = 1; posisi koordinat 2D, sedang f menyatakan nilai intensitas
while (length(sorted_prob)
> 1)
(kecerahan)
atau menyatakan warna
pada setiap posis x,y. Sebuah citra digital
dalam [sorted_prob,indeces]
sebuah komputer dinyatakan
dalam bentuk matrik 2D, dimana elemen
= sort(sorted_prob,'ascend');
matrikssorted_str
disebut pixel
dan nilai dari setiap elemen matriksnya menyatakan
= sorted_str(indeces);
new_node
=
strcat(sorted_str(2),sorted_str(1));
intensitas atau warna.
new_prob = sum(sorted_prob(1:2));
Setiap
data yang telah mengalami kompresi, tentu harus dapat
sorted_str = sorted_str(3:length(sorted_str));
merekonstruksi
kembali
data tersebut sesuai dengan aslinya. Merekonstruksi data
sorted_prob
= sorted_prob(3:length(sorted_prob));
sorted_str
=
[sorted_str,
new_node];
lebih dikenal sebagai metode dekompresi
data. Metode dekompresi Huffman
sorted_prob = [sorted_prob, new_prob];
dapat digunakan
untuk
mengembalikan
data
kode
biner menjadi file teks.
newq_str(rear) = new_node;
newq_prob(rear) = new_prob;

rear = rear
1;
1.2 Simulasi
Pohan+ Huffman
Menggunakan Matlab
end
1.2.1 Syntax Matlab untuk Simulasi Pohon Biner Huffman
tree = [newq_str,init_str];
% Pebri Yeni
Samosir
tree_prob
= [newq_prob,
init_prob];
% 1404405097
% Teknik Elektro dan Komputer
[sorted_tree_prob,indeces]
= sort(tree_prob,'descend');
clc;
sorted_tree
= tree(indeces);
clear all;
close all;
parent(1) = 0;
num_children = 2;
my_str
'Sinyal';
for
i = =2:length(sorted_tree)
auto_prob
= 1;
me = sorted_tree{i};
count = 1;
if (auto_prob
== =
1)sorted_tree{i-count};
parent_maybe
diff = strfind(parent_maybe,me);
prob_dist
= double(my_str);
while
(isempty(diff))
else
count = count + 1;
parent_maybe = sorted_tree{i-count};
diff = =strfind(parent_maybe,me);
prob_dist
[20 19 30 40 50];
end end
parent(i)
= i - count;
num_bits
= ceil(log2(length(prob_dist)))
end
disp('Character Probability:');
for i = 1:length(prob_dist)
display(strcat(my_str(i),' --> ',num2str(prob_dist(i))));
treeplot(parent);
end
title(strcat('Huffman
Coding Tree - "',my_str,'"'));
total = sum(prob_dist)
display(sorted_tree)
for i = 1:length(my_str)
display(sorted_tree_prob)
sorted_str{i} = my_str(i);
end
[xs,ys,h,s]
= treelayout(parent);
init_str = sorted_str;
text(xs,ys,sorted_tree);
for i = 2:length(sorted_tree)
my_x = xs(i);

my_x = xs(i);
my_y = ys(i);
parent_x = xs(parent(i));
parent_y = ys(parent(i));
mid_x = (my_x + parent_x)/2;
mid_y = (my_y + parent_y)/2;

end

slope = (parent_y - my_y)/(parent_x - my_x);


if (slope > 0)
weight(i) = 1;
else
weight(i) = 0;
end
text(mid_x,mid_y,num2str(weight(i)));

for i = 1:length(sorted_tree)
code{i} = '';
index = i;
p = parent(index);
while(p ~= 0)
w = num2str(weight(index));
code{i} = strcat(w,code{i});
index = parent(index);
p = parent(index);
end
end
codeBook = [sorted_tree', code']

1.2.2

Hasil Simulasi Pohon Biner Huffman Menggunakan Matlab

Gambar 4. Hasil Simulasi Pohon Biner Coding Huffman

Gambar 5. Hasil Probabilitas Coding Huffman

1.3 Simulasi Kompresi Citra dengan Metode Huffman Menggunakan


Matlab
Kompresi adalah proses pengubahan sekumpulan data menjadi bentuk kode
dengan tujuan untuk menghemat kebutuhan tempat penyimpanan data dan waktu
untuk transmisi data. Jika data tersebut hendak dipergunakan kembali, maka harus
dilakukan dekompresi, yaitu pengubahan kode-kode menjadi data awal. Sama
halnya dengan mengkompresi suatu citra (image). Kali ini penulis akan
menjelaskan tentang bagaimana mengkompresi dan dekompresi suatu citra
dengan metode huffman menggunakan Matlab.
Sebelumnya kita harus tahu, semakin besar ukuran sebuah citra, semakin
besar memori yang dibutuhkan. Namun, kebanyakan citra mengandung duplikasi
data, yaitu: Suatu piksel memiliki intensitas yang sama dengan piksel
tetangganya, sehingga penyimpanan setiap piksel memboroskan memori dan
mengandung region yang sama, sehingga bagian yang sama ini tidak perlu
dikodekan berulang kali.
Kompresi citra bertujuan untuk meminimalkan kebutuhan memori untuk
merepresentasikan citra digital dengan mengurangi duplikasi data di dalam
citra sehingga memori yang dibutuhkan menjadi lebih sedikit. Hal ini nantinya
akan berpengaruh pada waktu pengiriman citra yang menjadi lebih singkat.
1.3.1

Flowchart
Berikut merupakan flowchart dari realisasi sebuah simulasi kompresi dan
dekompresi citra dengan metode Huffman menggunakan software Matlab.

1.3.2

Syntax Matlab untuk Kompresi Citra dengan Metode Huffman

%===================================================
% PEBRI YENI SAMOSIR
% 1404405097
% TEKNIK ELEKTRO dan KOMPUTER
%===================================================
%clearing all variableas and screen
clc;
clear all;
close all;
%Reading image
a=imread('d:/new folder/Bong.jpg');
figure(1);
imshow(a),title('Original Image');
pause (0.1);
vec_size = 1;
for
p = 1:m an image to grayscale
%converting
for
q = 1:n
I=rgb2gray(a);
newvec(vec_size)
= I(p,q);
imwrite(I,'gray.jpg');
vec_size
= vec_size+1;
figure(2);
end
imshow(I),title('Grayscale Image');
end
pause (0.1);
%Huffman
%size of Encodig
the image
hcode
= huffmanenco(newvec,dict);
[m,n]=size(I);
Totalcount=m*n;
%Huffman Decoding
dhsig1
= huffmandeco(hcode,dict);
%variables
using to find the probability
cnt=1;
%convertign
dhsig1 double to dhsig uint8
sigma=0;
dhsig = uint8(dhsig1);
%computing the cumulative probability.
%vector
to array conversion
for i=0:255
dec_row=sqrt(length(dhsig));
k=I==i;
dec_col=dec_row;
count(cnt)=sum(k(:))
%variables
to convert
vector 2 array
%pro array using
is having
the probabilities
arr_row
= 1;
pro(cnt)=count(cnt)/Totalcount;
arr_col
= 1;
sigma=sigma+pro(cnt);
vec_si
=
1;
cumpro(cnt)=sigma;
cnt=cnt+1;
end;
for x = 1:m
%Symbols
for an image
for
y = 1:n
symbols = [0:255];
back(x,y)=dhsig(vec_si);
arr_col = arr_col+1;
vec_si
= vec_si
+ 1;
%Huffman
code Dictionary
end
dict = huffmandict(symbols,pro);
arr_row = arr_row+1;
end
%function which converts array to vector
%converting
for p = 1:m image from grayscale to rgb
[deco, map] = gray2ind(back,256);
RGB = ind2rgb(deco,map);
imwrite(RGB,'rgb.jpg');
figure(3);
imshow (RGB),title('Huffman Image');
pause (0.1);

1.3.3

Hasil dan Analisis Simulasi Kompresi Citra dengan Metode Huffman

Gambar 6. Citra Original

Berdasarkan gambar 6 dapat dlihat gambar atau citra yang akan dikompresi.
Dimana ukuran (size) gambar original tersebut 16,957 bytes dengan dimensi 574 x
495 pixels. Tampilan citra true color 24 bit citra dikonversi terlebih dahulu
menjadi citra grayscale 8 bit, selanjutnya citra disimpan kedalam file dokumen
untuk dilakukan proses kompresi dengan metode Huffman.

Gambar 7. Grayscale Image

Berdasarkan gambar 7 dapat dlihat gambar atau citra yang sudah diubah
(transformasi) dari RGB ke ruang warna grayscale. Dimana ukuran (size) gambar
grayscale tersebut 15,136 bytes dengan dimensi 574 x 495 pixels. Kemudian
dilakukan kompresi dengan metode Huffman. Terlebih dahulu dihitung
frekuensi dari tiap nilai keabuan untuk setiap baris sampai setinggi citra dan

setiap kolom sampai setinggi citra. Sehingga akan diperoleh frekuensi setiap
nilai keabuan (piksel). Setiap nilai piksel merupakan sebuah simpul yang
mempunyai data nilai keabuan dan jumlah frekuensi. Dari simpul-simpul
tersebut, cari simpul yang memiliki jumlah frekuensi terkecil pertama.
Kemudian cari simpul yang mempunyai jumlah frekuensi terkecil kedua. Dari
kedua simpul tadi jumlahkan frekuensinya. Hasil penjumlahan dari kedua
simpul tadi menjadi sebuah simpul baru yang memiliki dua cabang kedua
simpul tadi. Simpul yang memiliki jumlah frekuensi terkecil pertama menjadi
cabang kiri dan simpul yang memiliki jumlah frekuensi terkecil kedua menjadi
cabang kanan. Simpul baru ini selanjutnya dimasukkan daftar dalam beserta
kedua cabang untuk dilakukan pencarian frekuensi terkecil, dan pembuatan
simpul baru. Proses ini berlanjut sampai semua simpul telah masuk ke dalam
pohon dan frekuensi akar (root) dari pohon akan merupakan hasil penjumlahan
semua frekuensi yang ada. Setelah terbentuk pohon Huffman dilakukan
penelusuran terhadap pohon Huffman dengan memberikan kode 0untuk
setiap cabang kiri dan 1 untuk setiap cabang kanan. Kemudian dilakukan
penelusuran pada pohon Huffman. Dimulai dari akar, penelusuran menurun
didapatkan simpul tanpa cabang (daun). Begitu didapatkan daun, maka nilai
piksel dimasukkan dalam tabel beserta angka-angka bit (0 atau 1) dari
cabang-cabang yang dilalui untuk sampai pada daun ini. Maka diperoleh kode
Huffman dari masing-masing nilai kebuan. Setiap nilai kebauan yang memiliki
frekuensi dalam jumlah besar akan dikodekan dengan jumlah bit yang lebih
sedikit. Sedangkan nilai keabuan yang memiliki jumlah frekuensi sedikit akan
dikodekan dengan jumlah bit yang lebih panjang. Kode Huffman dari masingmasing nilai keabuan tersebut disimpan dalam memori komputer. Kode-kode
Huffman tersebut harus disimpan ke dalam memori komputer untuk
mempermudah dalam proses dekompresi. Proses perhitungan hasil kompresi
dengan cara mengalikan panjang kode dengan jumlah frekuensi setiap nilai
keabuan.

Gambar 8. Huffman Image

Berdasarkan gambar 8 dapat dlihat gambar atau citra yang sudah


dikompresi dengan metode huffman. Dimana ukuran (size) citra hasil kompresi
Huffman tersebut adalah sebesar 14,991 bytes dengan dimensi 574 x 495 pixels.
Pada tampilan Huffman Image terlihat pengurangan kebutuhan memory
dibandingkan dengan tampilan pada grayscale dengan dimensi gambar yang tetap,
artinya kompresi bersifat lossless karena tidak terdapat adanya pengurangan
informasi selama proses kompresi. Huffman memiliki kemampuan dekompresi
sehingga citra tersebut kembali keukuran semula dan tidak ada file yang hilang
ataupun citra yang rusak saat pengkompresian berlangsung.
Berdasarkan dari ketiga gambar, dapat kita ketahui bahwa terdapat
perbedaan pixel pada masing-masing citra namun dimensi citra ketiganya tidak
terjadi perubahan. Perubahan pixel yang terjadi pada citra karena adanya proses
kompresi. Dimana kompresi bertujuan untuk meminimalkan kebutuhan memori
untuk merepresentasikan citra digital dengan mengurangi duplikasi data di
dalam citra sehingga memori yang dibutuhkan menjadi lebih sedikit. Sehingga
citra hasil kompresi memiliki ukuran (size) yang lebih kecil dari citra aslinya. Hal
ini sangat bermanfaat untuk meminimalisasi penyimpanan memori.
.

1.4 Kesimpulan
Berdasarkan hasil dan analisis simulasi yang telah dilakukan maka dapat
diambil beberapa kesimpulan, sebagai berikut :
1. Metoda Huffman dapat diterapkan untuk kompresi data citra, tidak hanya untuk
kompresi file teks. Huffman merupakan algoritma yang dipakai untuk
mengurangi kehilangan data pada kompresi.
2. Citra hasil kompresi memiliki ukuran (size) yang lebih kecil dari citra aslinya.
Sehingga dapat menghemat memori penyimpanan. Namun proses kompresi
tidak mempengaruhi dimensi citra tersebut.
3. Resolusi citra dengan jumlah warna yang sama tidak banyak mempengaruhi nilai
rasio kompresi.
4. Jika data hendak dipergunakan kembali, maka harus dilakukan dekompresi, yaitu
pengubahan kode-kode menjadi data awal. Sama halnya dengan
mengdekompresi suatu citra (image).
5. Kualitas citra hasil dekompresi, baik untuk sekali iterasi maupun untuk dua
kali iterasi sama dengan citra aslinya. Hal ini terjadi karena data warna
atau derajat keabuan (piksel citra) hanya dikodekan dalam bentuk kode
pohon biner Huffman dan rekonstruksi datanya (dekompresi) hanya tinggal
mengonversikan kode pohon biner Huffman menjadi data aslinya.
6. Teknik kompresi citra dengan metode Huffman pada citra grayscale 8 bit
dilakukan dengan pembuatan pohon Huffman berdasarkan frekuensi
kemunculan nilai piksel. Pohon Huffman akan menghasilkan kode biner
yang disimpan dalam tabel Huffman tiap 8 bit.
7. Kode biner yang dihasilkan dari Metode Huffman adalah setiap nilai piksel yang
mempunyai frekuensi terbesar mempunyai jumlah bit yang pendek
sedangkan nilai piksel yang mempunyai frekuensi kecil mempunyai bit
yang lebih panjang.

REFERENSI
[1]

[2]

[3]
[4]
[5]

Zulen, A. 2013. Penerapan Pohon Biner Huffman Pada Kompresi Citra.


Teknik Elektro dan Informatika Institut Teknologi Bandung. Vol 1 Nomor
2.
Imbar dan Chandra. 2009. Aplikasi Enkripsi Tanda Tangan Di PT.BPR
Daya Lumbung Asia. Sistem Informasi Universitas Maranatha Bandung.
Vol 5. Nomor 1.
Linawati dan Henry. 2004. Perbandingan Kinerja Algoritma Huffman, LZW
dan DMC pada berbagai tipe file , Integral, Volume 9, Nomor 1.
Huffman Coding. http://www.en.wikipedia.org/wiki/Huffman_coding.
Huffman
algorithm,
making
codes
from
probabilities
http://www.arturocampos.com/

Anda mungkin juga menyukai