Studi dan implementasi Kode Huffman untuk kompresi data pada sistem Real-time Catur Wirawan Wijiutomo – NIM : 13505020 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail :
[email protected]
Abstrak Kualitas dan kuantitas adalah suatu besaran yang sangat berbeda dalam bidang informatika. Tetapi hal yang sering diinginkan dalam penyimpanan data adalah kualitas dalam kuantitas yang kecil. Oleh karena itu, banyak bermunculan teknik kompresi file. Yang pada saat ini teknik kompresi ini populer digunakan dan berkembang dalam teknik kompresi gambar bergerak. Salah satunya adalah x264 yaitu suatu codec yang mampu menkonversi data mentah MPEG-1 dari rekaman kamera yang mebutuhkan tempat penyimpanan sebesar 4.7 GB menjadi hanya sekitar 200 MB. Untuk membuat hal ini dipakai beberapa algoritma tanpa kode awalan salah satunya adalah kode Huffman. Disebut tanpa kode awalan karena tiap bit yang berbeda tidak diprepresentasikan dalam kode yang sejenis. Akan tetapi memanfaatkan teori probablilitas dan statitistika serta menggunakan teori pohon dalam implementasinya. Makalah ini membahas tentang studi dan implementasi kode Huffman, kode ini banyak digunakan untuk teknik kompresi tanpa kehilangan kualitas (lossless compression). Salah satu penerapan yang banyak digunakan antara lain adalah teknik kompresi pada format penyimpanan file yang menyimpan pixel–pixel yang membentuk gambar salah satunya adalah format penyimpanan JPEG. Dengan memakai format penyimpanan JPEG ini besar tempat penyimpanan media gambar bisa diperkecil hingga 90%. Pada perkembangannya kode Huffman mengalami beberapa variasi dari kode aslinya. pada makalah ini juga membahasa variasi-variasi kode Huffman dan aplikasi-aplikasinya pada beberapa kasus yang membutuhkan teknik kompresi. Pada makalah ini juga saya sampaikan ide saya tentang penerapan kode Huffman untuk jaringan wireless yang menggunakan 3G dalam embedded linux.
1. Pendahuluan Kode Hufman ditemukan oleh Huffman pada tahun 1952 dan dipublikasikan pada paper yang berjudul ”A method for the construction of minimum-redudancy codes”. Dan merupakan salah satu algoritma yang digunakan untuk teknik kompresi data tanpa mengorbankan kualitas. Teknik kompresi ini akan sangat berguna dalam bidang informatika khusunya pada teknologi informasi. Kita tahu bahwa internet senakin berkembang dan kebutuhan kan kecepatan akses menjadi hal yang krusial pada saat ini. akan tetapi data-data tidak semakin kecil. Jikapun diperkecil, maka kualitasnya kan berkurang. Taeapi untuk hal-hal yang penting di masa datang seperti video konferensi atau yang lebih berisikoseperti Bedah jarak jauh memanafaatkan bot dan daitur oleh dokter melalui media internet
tentu tidak bisa mengorbankan kualitas untuk kuantitas karena yang ditransmisikan adalah gambar bergerak lewat webcam yang ukurannya tentu sangat besar. Tetapi hal ini tentu saja tidak memungkinkan karena infrastruktur internet juga terbatas. Ia dianalogikan seperti jalan umum yang tidak bisa seenaknya pesawat mendarat. Terlebih jika menuruti trend saat ini media internet dapat diakses memlalui jaringan wireless 3G. yang dapat diakses lebih banyak orang. Dalam jangkauan wilayah layanannya Dengan pengguna yang cukup banyak tentu saja perusahaan penyedia layanan harus lebih baik dalam manajemen infrastruktur. Sehingga implementasi teknik kompresi yang akan mengecilkan data-data yang besar ke dalam data kecil tanpa kehilangan kualitas mutlak dibutuhkan dalam pengembangan teknologi informasi. Salah satunya adalah Kode Huffman.
2. Minimum-Redudancy menurut Huffman Dalam pengiriman informasi biasanya informasi itu dibentuk ke dalam susunan kode-kode. Jika terdapat banyak informasi akan terdapat kemungkinan kode-kode yang digunakan sama. Dan jika terdapat kode yang sama maka kita harus menggunkan lebih dari satu kode. Jika diasumsikan tiap kode membutuhkan waktu yang sama untuk transmisi maka waktu transmisi akan berbanding lurus dengan jumlah kode yang ada pada informasi tersebut. Permasalahan tersebut merupakan awal permasalahan yang membuat Huffman menciptakan kode ini yaitu penghematan waktu transmisi pesan dari pengirim ke penerima. dalam papernya Huffman menyebutkan beberapa istilah mengenai message yaitu: − message code yaitu keseluruhan simbol yang merepresentasikan pesan yang diterima. − Message ensemble yaitu keseluruhan jumlah pesan seluruhnya − Ensemble code sebuah perjanjian antara pengirim dan penerima tentang arti dari kode pada tiap pesan. Jika jumlah kode adalah N dan P(i) adalah probabilitas kode ke– i maka
N
∑ p(i) = 1 i =1
Dan panjang informasi adalah L(i) yaitu banyak digit yang dipunyai informasi itu. Maka panjang pesan rata-rata adalah: N
Lav = ∑ P(i ) L(i ) i =1
Untuk membentuk kode yang mempunyai duplikasi seminimum mungkin maka dalam paper-nya Huffman memberikan beberapa petunjuk yaitu: − Tidak ada dua simbol yang memiliki representasi kode yang sama − Pesan yang dibentuk akan dikonstruksi dalam cara yang tidak memerlukan informasi penanda dimana kode yang merepresentasikan satu simbol dimulai dan diakhiri jika kode itu telah tersusun. − L(1) ≤ L(2) ≤ .. ≤ L( N − 1) ≤ L( N ) Pada paper-nya Huffman belum menerapkan teori pohon akan tetapi ia memanfaatkan tabel ’Optimum Binary Procedure’ yang menghitung banyak munculnya tiap-tiap simbol pada data dan menghitung probabilitasnya.
menjadi 224.00 bit. Dan kita telah melakukan kompresi data sebanyak 25 %.
100 0
1
55
A:45
1
30
25
1 0
Proses dengan menggunakan tabel ini disebut static Huffman Coding.
C:12
1
0
14
B:13
D:16
0
1
F:5
E:9
3. Perbandingan Kompresi dan non-kompresi Misalkan kita memiliki 100.000 karakter yang akan kita simpan secara kompak. Kita teliti bahwa kemunculan karakter ada pada tabel. Ada beberapa cara untuk merepresentasikan informasi file tersebut. Dalam kasus ini kita reperesentasikan dalam kode biner. Setiap karakter direpresentasikan dengan string biner yang unik. Jika kita menggunkan kode panjang tetap (fixed-length code), kita mebutuhkan 3 bit untuk merepresentasikan tiap karakter: A=000, B = 001, ...F=101 Metode ini membutuhkan 300.000 bit untuk merepresentasikan 100.000 karakter tersebut.
Gambar 2.
4 Penjelasan Kode Huffman Dalam subbab makalah ini akan digunakan teori pohon untuk mendapatkan kode huffman yang nantinya disebut sebagai Adaptive Huffman coding. Untuk mendapatakan kode Huffman kita menghitung terlebih dahulu kekerapan kemuculan tiap simbol di dalam teks. Cara pembentukan kode Huffman adalah dengan membentuk pohon biner yang dinamakan pohon Huffman ,sebagai berikut: 1.
pilih dua simbol dengan peluang (probability) paling kecil (pada contoh di ats simbol B dan D). Kedua simbol tadi dikombinasikan sebagai simpul orangtua dari simbol b dan d sehingga menjadi simbol BD dengan peluang 1/7 + 1/7 = 2/7, yaitu jumlah peluang kedua anaknya. Simbol baru ini diperlakukan sebagai simpul baru dan diperhitungkan dalam mencari simbol selanjutnya yang mempunyai peluang paling kecil.
2.
selanjutnya, pilih dua simbol berikutnya, termasuk simbol baru, yangm empunyai peluang terkecil. Pada contoh ini, dua simbol tersebut adalah C (peluang 2/7) dan BD (peluang 2/7). Laukan hal yang sama seperti langkah sebelumnya sehingga dihasilkan simbol baru CBD dengan kekerapan 2/7 + 2/7 = 4/7
3.
prosedur yang sama dilakukan pada dua simbol berikutnya yang mepunyai
10 0
0
1
8
1
0
0 1
5 0
A:
2 1
0
B:
C:
1 1
D:
0
E:9
1
F:5
Gambar 1
Dengan teknik Hufman kita akan menghitung banyak kemuculan tiap karakter dan membentuk pohon Huffman sehingga panjang tiap karakter dapat dihemat dan dengan kode Huffman kita bisa memperkecil ukuran penyimpanan hanya
peluang terkecil, yaitu A (peluang = 3/7) dan CBD (peluang 4/7) sehinggga menghasilkan simpul ABCD, yang merupakan akar pohon Huffman dengan peluang 3/7 + 4/7 = 7/7.
Daun pada pohon Huffman menyatakan simbol yang digunakan dalam teks ataupun pesan. Kode setiap simbol dengan memberi label 0 pada setipa cabang sisi kiri dan label 1 pada setiap cabang kanan. Pohon huffman untuk string ’ABACCDA’ ditunjukkan pada gambar 3. ABCD, 7/7 0
1
CBD 4/7
A, 3/7 0
1
BD, 3/7
C, 2/7 0
1
B,3/7 D,3/7
Gambar 3
Dengan membuat lintasan dari akar ke daun akan dihasilkan kode untuk setiapa simbol. Dari gambar diperoleh kode untuk masing-masing simbol asal sebagai berikut: A = 0, B = 110, C = 10, D = 111 Sehingga pesan ABACCDA direpresentasikan menjadi rangkaian bit 0110010101110
5. impelementasi kode Huffman aplikasi real-time mobile Phone 3G
untuk
Pada implenmentasi ini kode huffman dipakai untuk aplikasi yang sifatnya real-time. Umumnya kode Huffman memerlukan sebuah tabel kode untuk penterjemahan data antara data asli dengan data terjemahan. Data yang kemunculannya sering diterjemahkan ke dalam kode yang pendek dan data yang kemunculannya lebih jarang diterjemahkan ke dalam kode yang lebih panjang
dan dengan proses inilah maka data yang besar dapat dikompresi. Digunakan Huffman karena proses kompresi memerlukan waktu proses yang cukup panjang dan tempat penyimpanan yang cukup banyak, sehingga aplikasi yang memanfaatkan teknik kompresi ini akan sulit untua berjalan secara real-time. Pada kode Huffman terdapat dua cara untuk menhilangkan waktu proses untuk aplikasi yang berjalan secara real-time Cara yang pertama dikenal dengan ”Static huffman Encoding” yang menggunakan tabel kode yang diketahui untuk prosese penterjemahan. Metode yang kedua dikenal dengan nama ”Adaptive Huffman Coding” yang menggunakan pohon encoding. kedua metode ini mempunyai kelemahan akan tetapi metode yang digunakan adalah metode yang pertama karena metode yang kedua akan sangat kompleks untuk diterapakan dalam sisi hardware. Penerapan teori pohon terasa lebih mudah dalam mencari kode Huffman akan tetapi pada implemantasi ini akan mempunyai efek negatif rasio dari file kompresi pada fase konstruksi dan rekonstruki pohon encoding. Pada proses rekonstruksi akan terjadi perubahan frekuensi simbol. Sehingga static hufffman coding lebih baik karena hanya membutuhkan sebuah tempat penyimpanan tabel penerjmah untuk kode Huffman. Jika kode Huffman ini diterapkan dalam aplikasi real-time maka dapat memperkecil waktu akses tanpa harus mempersiapkan data yang terkompres. Data-data itu dikompres pada saaat itu jugahampir bersamaan saat proses penerimaan . Contoh penerapan teknik ini adalah pada mobile phone. Sebenaranya kebutuhan akan koneksi super cepat dan badwith yang besar seperti 3G (UMTS) dapat direduksi dengan penggunaan sistem ini. Sistem 3G yang sekarang lebih berkembang pada menyediakan layanan bandwith yang besar agar pengguna dapat menikmati layanan-layanan yang haus tempat penyimpanan seperti video, video call, saluran TV dan lain-lain. Sebenarnya jaringan wireless dengan 3G dapat lebih dioptimalkan tanpa membangun bandwith yang lebih besar. untuk menghemat bandwith kita bisa menerapkan kode Huffman karena dengan kode Huffman data-data kan dikompresi akan tetapi tidak akan kehilangan kualitas. Hal ini tentu akan menghemat infrastruktur penyedia
layanan yang berakibat menghemat biaya tetapi tidak mengorbankan para pemakai. Suatu hardware harus dipasang pada mobile device untuk melakukan encoding kode huffman yang diterimanya pada jaringan 3G yang telah terenskripsi. Hal ini dijelaskan pada gambr.
Hi-speed Hi- quality
H U F F M A N
Small data size Low procressing time losslessnes
Gambar 4
Kata kunci dari implementasi ini adalah ukuran data yang kecil, waktu encoding yang cepat dan tanpa penurunan kualits tentui saja semua ini bisa tercapai dengan menerapkan kode Huffman
6.Arsitektur Sistem Huffman pada jaringan 3G secara Real-time Karena 3G dipakai sebagai media komunikasi maka aplikasi kode Huffman ini juga harus Realtime. Kode Huffmna membentuk tabel Huffman pada saat itu juga. Untuk menciptakan aplikasi ini maka akan dibuat suatu arsitektur sitem yang terdiri dari encoder dan reconstructor
Encoder
Reconstructor Gambar 5
Pada blok encoder inilah kode Huffman akan dimplementasikan. Kita kan membutuhkan 2 media penyimpan untuk menyimpan tabel simbol dan tabel kode. Tentu saja dibutuhkan sistem penyimpanan yang berbeda untuk dua tabel ini. Pada blok encoder ini akan dipakai sebuah CAM (Content Addressable Memory) dan dua buah SRAM untuk tabel aktif dan kabel
Pada blok rekonstruktor akan terdapat assign modul dan swap modul. Modul assign akan menggenerate kode huffman yang optimal berdasarakan distribusi frekuensi simbol-simbol pad input informasi. Kode yang teroprimasi ini akan didiskan ke tabel bayangan yang berisi tabel kode. Swap modul menggenerate sinyal pergantian tabel ke rekonstruktor dan assign modul. Saat tabel aktif dan tabel bayangan mengganti peran mereka dalam proses encoding Huffman. Arsitektur ini dapat menjaga agar rasio kompresi tetap tinggi. Model sistem daapt dilihat pada gambar 6. Dalam makalah ini saya menekankan ide bagaimana proses ini dapat dilakukan.pada blok encoder Akan terdapat tabel aktif yang yang menggenerate kode. Dan tabel bayangan yang akan mempersiapkan versi optimasi dari tabel kode yang dipakai saat ini. Sehingga akan diperlukan saklar untuk mengganti-ganti aktif dan bayangan. bayangan.konsep encoding Huffman pada blok encoder dijelaskan pada gambar 7 di bawah ini. Ketika CAM menrima input simbol. Simbol ini akan dibandingkan secara paralell dengan simbol yang disimpan. Dan port output dari CAM mengirim address yang cocock ke port yang bersesuaian pada SRAM dan pada akhirnya kode dikeluarkan. Blok ini dapat menerjemahkan simbol masukan ke kode huffman yang bersangkutan. Saat sebuah sistem yang terdiri hanya satu buah CAM membutuhkan hanya sekali clock-cycle untuk proses pembandingan. Arsitektur yang terdiri dari dua blok ini mampu melakukan proses encoding dengan cepat dan menimpa pohon biner yang lambat di algoritma encoding Huffman. Biasanya arsitektur encoding yang mengimplemantasikan tabel kode yang telah distandarkan tidak bisa mengubah isi di dalamnya. Denga arsitektur dua blok ini secara konstan mengupdate isi dari tabel bayangan berdasarkan frekuensi peneriaman input . jika distribusi frekuensi simbol pada tidak cocok dengan simbol masukan yang diterima. Arsitektur ini dapat mengganti peran dari tabel aktif dan tabel bayangan. Arsitektur ini memiliki keluwesan yang besar untuk dipakai di aplikasi manapun tidak hanya untuk jaringan 3G. Terlebih dengan menyiapakan 2 tabel kode. Masukan simbol selalau meng-encode kode ke dalam kode yang lebih pendek.
Encoder
Outp ut
input signal
controller Shadow table
Input simbol
Active table
switch
CAM
swi tch
Excahange signal
Assign module
Swap Modul;
switch
Reconstructor
Gambar 6
01100101
10000001 10000010 10000011 01100101
0000 0001 0010 0011
0011
S w i t c h
0011
1110
Tabel bayangan 00002 00023 00033 00043 | fffdf
1111
ffef
0000 0001 0010 0011 |
11111001 11111010
1110 1111
Sinyal pengubah
CAM
Table aktif Table encode berubah
Table aktif
0011 01100101
10000001 10000010 10000011 01100101 11111001 11111010 CAM
Gambar 7
00043
0000 0001 0010 0011 1110 1111
0011
S w i t c h
Sinyal pengubah
0000 0001 0010 0011 1110
00002 00023 00033 00043 | fffdf
1111
ffef
|
Tabel bayangan
00002
7. mencoba implementasi real-time dengan toeri pohon Di sini saya kan mencoba mengimplementasi bahasan tadi ke dalam teori pohon. Karena Mungkin akan sulit diwujudkan dalam bentuk hardware karena keterbatasan Hardware itu sendiri. saya mencoba mengimplemantasikannya ke dalam platform perangkat lunak hal ini tentu akan lebih mudah. Kita membutuhkan sistem operasi sedrhana yang mampu mengekskusi perintah dengan cepat Pilihan sistem jatuh pada Linux yang ternyata dapat ditanam dalam chip (embedded linux) dan melakukan ekseskusi yang terprogram. Berdasarkan data yang saya peroleh eksekusi sistem embeded linux bisa mencapai 50 microseconds.
−
sederhana, sangat memungkinkan untuk dimodifikasi oleh developer filesyste lain untuk berbagai kebutuhan
akan tertapi kelemahan
CRAMFS
juga
mempunyai
−
merupakan filesistem Read-Only untuk alasan kesederhanaan. CRAMFS dirancang untuk hanya dapat dibaca saja. Menerapkan penulisan acak pada imange terkompres merupakan hal yang susah dilakukan.
−
Ukuran filesistem maskimal adalaah 256 MB. Hal ini sebenarnya sudah jauh lebih dari cukup untuk kondisi sistem yang menggunakan CRAMFS. Pada pemrograman real-time Huffman ini paling-paling hanya dipakai 1 sampai 2 MB.
−
Ukuran file dalam filesistem maksimal 16 MB. Dalam perbandingan dengan ukuran maksimal filesistem ukuran 16 MB ini sudah sangat besar pada initial ramdisk image, harusnya tidak ada file yang berukuran samapai 16 MB. Sementaraq, pada installation iamge sekalipun, file berukuran sebesar 16 MB juga tidak ditemukan.
−
Hanaya 8 bit terendah dari informasi gid yanga akan disimpan.
−
Jika Xwindow juga terasa cukup berat maka kita dapat mengganti window manager fluxbox yang lebih hemat resource. Window manager yang rumit tidak telalu dibutuhkan karena kita akan banyak memprogram di shell. Yang berjalan pada command line interface
Hardlink didukung, namum file yang memeiliki link count 1. pada filesistem normal untuk setiap hardlink yang dikenakan pada suatu file, jumlha link count opada file tersebut akan bertambah satu.
−
Direktori pada CRAMFS memiliki entri . dan ..
−
Selain itu kita tidak akan memakai filesistem standar linux seperti EXT3 karena terlalu banyak memakan resource. Oleh karena itu filesistem bawaan slack EXT3 harus di pasang pada CRAMFS yang memiliki beberapa keunggulan yaitu:
Tidak ada informasi timestamp yang disimpan. Semua file secara default akan memiliki waktu sesuai epoch.
−
Implemenatasi CRAMFS saat ini mengharuskan CRAMFS dibuat dan dibaca pada sistem dengan Endianess yang sama.
−
CRAMFS hanya dapat dibaca pada kernel yang memiliki ukuran pafe cache 4096 (PAGE_CACHE_SIZE = 4096). Ini dipertimbangkan sebagai BUG.
Sistem real-time yang baik tentu ingin terdapat jeda proses. hal ini bisa diakali dengan mengoptimalkan sistem resource pada komputer yang kita pakai. Tentu saja saya tidak menggunakan distro linux untuk PC seperti fedora atau debian. Akan lebih baik menggunakan distro slack dan menggunakan filesistem yang minim fitur namum unggul dalam urusan hemat resource yaitu CRAMFS (Compressed ROM Filesystem). Alasan pemakaian distro slack adalah karena beberapa alas an antara lain: −
ukuran yang kecil
−
window manager Xwindow selebihnya banyak dipakai command-line interface. hemat resource sehingga akan mempercepat proses encoding.
−
kecil
−
dapat diakses tanpa harus di-Extract terlebih dahulu
tidfak
Dan dalam inplementasi ini mungkin akan memaksa kita memprogram di level kernel. akan tetapi Untuk makalah ini saya membatasi hanya sampai di level shell. Model Untuk implementasi software. Model yang digunakan akan sama dengan yang digunakan pada implementasi hardware. Di sini kita akan memprogram terlebih dahulu struktur pohon Huffman. Lalu kita akan membuat suatu modul yang menghitung probabilitas simbol pada suatu kode. Selain itu tentu kita akan membuat representasi software untuk semua modul perangkat keras yang telah dibahas di bab sebelumnya. Semua pemrograman akan dilakukan diatas Shell dengan shell Bash. Pemrograan yang dipakai juga meruipakan shell scripting. Dalam Bash kita bisa menginstall program Daemon yang akan berjalan terus menerus secara otomatis sesuai keadaan yang kita set terlebih dahulu sehingga cara kerja pada perangkat lunak akan sangat mirip dengan cara kerja pada perangkat keras. Program Daemon memungkinkan hal ini karena program ini akan berjalan setiap input dilakukan.
Dari kiri ke kanan : lenna, dawn the sun
Dari kiri ke kanan, texture, test screen
Sehingga program tidak akan berjalan sesuai perintah ekseskusi. Tetapi berjalan setiap input simbol dilakukan. Akan tetapi implementasi hal ini tidak pernah terjadi. Software memang berjalan tidak secepat hardware. Lagipula angka 50 microsecond hanya angka optimal yang cukup sulit dicapai, tetapi masih terbuka banyak kemungkinan untuk memprogram di level kernel yang akan cukup sulit untuk dilakukan. Dalam tabel berikut akan dijelaskan hasil pengujian perbandingan arsitektur yang dipakai untuk berbagai macam gambar yang akan dikompresi secara Real-time ke dalam kompresi JPEG..
tabel arsitektur Jumlah siklus clock Ukuran asli JPEG
tabel arsitektur Jumlah siklus clock Ukuran asli JPEG
(A) lenna (B) Dawn the Sun standardized optimized standardized optimized SRAM CAM software proposed SRAM CAM software proposed 30 5 1.950 5 30 5 18.452 5
248.840 40.209
2.359.350 39.017
39.075
44.599
35.502
35.597
(A)texture (B) test screen standardized optimized standardized optimized SRAM CAM software proposed SRAM CAM software proposed 30 5 593 5 30 5 2.425 5
73.782 2.380
308.278 1.961
1.973
Dari data tabel pengujian itu dapat kita simpulkan sistem yang paling baik untuk realtime adalah arsitektur dengan dua blok. Akan tetapi kita lihat sistem software cukup mendekati bahkan menempel ketat pada sistem dua blok. Pada semua pengujian gambar solusi software selalu menawarkan hasil kompresi JPEG yang lebih optimal akan tetapi solusi software meminta siklus clock yang lebih banyak. Hal itu berarti solusi software membutuhkan waktu proses yang lebih lama. Bahkan pada RAM dan CAM yang menghasilkan hasil kompresi yang lebih besar solusi software kalah jauh pada permasalahan jumlah siklus yang dibutuhkan Dari hasil pengujian itu dapat saya simpulkan bahwa teknik kompresi dengan kode Huffman secara real-time dengan implemenatasi software tidak terlalu buruk bahkan dapat mengejar solusi kompresi dengan hardware. Dan sebenarnya masih banyak algoritma kompresi selain kode Huffman yang dapat diimplementasi ke dalam solusi software. Mungkin dengan algoritma yang memiliki kompleksitas lebih minim bisa memberi jalan keluar dalam solusi perangkat lunak.
11.274
6.750
6.915
9. Kesimpulan Dari makalah yang saya tulis saya dapat menyimpulkan beberapa hal yaitu: 1.
kode Huffman merupakan algoritma yang ampuh untuk memperoleh kode yang optimum
2.
kode Huffman dipakai pada teknik kompresi
3.
Kode Huffman dapat dipakai untuk teknik kompresi secara real time.
4.
aplikasi secara real-time dapat sangat berguna di masa yang akan datang seperti pada jaringan telekomunikasi 3G
5.
Solusi perangkat lunak untuk aplikasi Real-time dapat menjadi suatu solusi yang cepat dan murah dibandingkan dengan solusi hardware dengan sistem dua blok
6.
kode huffman memiliki potensi untuk dikembangkan dan diimplementasi kepada sistem-sistem yang membutuhkan proses secara real-time
DAFTAR PUSTAKA
[1] Cormen, H.Thomas 2001. Introduction to Algorithms second edition . MIT press and Mcgraw Hill, Boston [2}
Huffman, D. (1952) A method for the construction of minimum redundancy codes. In Proc. IRE, Kansas City, 9 September 1952, vol. 40, pp. 1098–1101. The Institute of Electronics and Radio Engineers, London.
[3] Infolinux. Edisi April 2006. PT Infolinux Media Utama. Jakarta [4] ________, Edisi Mei 2006. PT Infolinux Media Utama. Jakarta [5] Munir, Rinaldi. (2004). Bahan Kuliah IF5054 Kriptografi. Departemen Teknik Informatika, Institut Teknologi Bandung. [6] S.T Klein and Y. Wiseman Applications to JPEG Parallel Hufman Decoding with.. 2003 British Computer Society, [7]
Takeshi, Kumaki (2005) huffman coding Architecture applications, Proc. IEEE symposium on circuits and 2005
CAM-Based for real-time international system. May
[8] _____, Multi port CAM based VLSI architecture for Huffman Coding with Real time optimizide code world table, Proc. IEEE international symposium on circuits and system. May 2005 [9] Yuliardi, Rofiq. Buku pintar linux Bash Scripting untuk administrasi sistem linux. 2002. Open Source Research Group