BAB 2 LANDASAN TEORI
Sebelum melakukan penelitian, penulis mengumpulkan informasi berupa teori-teori yang berkenaan atau yang relevan dengan objek penelitian yaitu kompresi file audio berformat Wav serta algoritma kompresi yang digunakan. Adapun teori-teori yang menyangkut penelitian ini adalah sebagai berikut.
2.10
Pengertian Audio Digital
Suara yang kita dengar sehari-hari adalah merupakan gelombang analog. Gelombang ini berasal dari tekanan udara yang ada di sekeliling kita, yang dapat kita dengar dengan bantuan gendang telinga. Gendang telinga ini bergetar, dan getaran ini dikirim dan diterjemahkan menjadi informasi suara yang dikirimkan ke otak, sehingga kita dapat mendengarkan suara. Suara yang kita hasilkan sewaktu berbicara berbentuk tekanan suara yang dihasilkan oleh pita suara. Pita suara ini akan bergetar, dan getaran ini menyebabkan perubahan tekanan udara, sehingga kita dapat mengeluarkan suara (Binanto,2010).
Komputer hanya mampu mengenal sinyal dalam bentuk digital. Bentuk digital yang dimaksud adalah tegangan yang diterjemahkan dalam angka “0” dan “1”, yang juga disebut dengan istilah “bit”. Tegangan ini berkisar 5 volt bagi angka “1” dan mendekati 0 volt bagi angka “0”. Dengan kecepatan perhitungan yang dimiliki komputer, komputer mampu melihat angka “0” dan “1” ini menjadi kumpulan bit-bit dan menerjemahkan kumpulan bit-bit tersebut menjadi sebuah informasi yang bernilai.
Bagaimana caranya memasukkan suara analog ini sehingga dapat dimanipulasi oleh peralatan elektronik yang ada? Alat yang diperlukan untuk melakukan ini adalah transducer. Dalam hal ini, transducer adalah istilah untuk menyebut sebuah peralatan yang dapat mengubah tekanan udara (yang kita dengar sebagai suara) ke dalam tegangan elektrik yang dapat dimengerti oleh perangkat elektronik, serta sebaliknya.
Universitas Sumatera Utara
Contoh transducer adalah mikrofon dan speaker. Mikrofon dapat mengubah tekanan udara menjadi tegangan elektrik, sementara speaker melakukan pekerjaan sebaliknya.
Tegangan elektrik diproses menjadi sinyal digital oleh sound card. Ketika Anda merekam suara atau musik ke dalam komputer, sound card akan mengubah gelombang suara (bisa dari mikrofon atau stereo set) menjadi data digital, dan ketika suara itu dimainkan kembali, sound card akan mengubah data digital menjadi suara yang kita dengar (melalui speaker), dalam hal ini gelombang analog. Proses pengubahan gelombang suara menjadi data digital ini dinamakan Analog-to-Digital Conversion (ADC), dan kebalikannya, pengubahan data digital menjadi gelombang suara dinamakan Digital-to-Analog Conversion (DAC).
Proses pengubahan dari tegangan analog ke data digital ini terdiri atas beberapa tahap yang ditunjukkan pada Gambar 2.1, yaitu: 1.
Membatasi frekuensi sinyal yang akan diproses dengan Low Pass Filter.
2.
Mencuplik sinyal analog ini (melakukan sampling) menjadi beberapa potongan waktu.
3.
Cuplikan-cuplikan ini diberi nilai eksak, dan nilai ini diberikan dalam bentuk data digital.
Gambar 2.1 Konversi Sinyal Analog ke Digital (Binanto, 2010)
Proses sebaliknya, yaitu pengubahan dari data digital menjadi tegangan analog juga terdiri atas beberapa tahap, yang ditunjukkan pada gambar 2.2, yaitu: 1. Menghitung data digital menjadi amplitudo-amplitudo analog. 2. Menyambung amplitudo analog ini menjadi sinyal analog. 3. Memfilter keluaran dengan Low Pass Filter sehingga bentuk gelombang keluaran menjadi lebih mulus.
Universitas Sumatera Utara
Gambar 2.2 Konversi Sinyal Digital ke Analog (Binanto, 2010)
Proses pengubahan sinyal analog menjadi digital harus memenuhi sebuah kriteria, yaitu kriteria Nyquist. Kriteria ini mengatakan bahwa untuk mencuplik sebuah sinyal yang memiliki frekuensi X Hertz, maka harus mencupliknya minimal dua kali lebih rapat, atau 2X Hertz. Jika tidak, sinyal tidak akan dapat dikembalikan ke dalam bentuk semula.
2.11Kelebihan Audio Digital
Kelebihan audio digital adalah kualitas reproduksi yang sempurna. Kualitas reproduksi
yang
sempurna
yang
dimaksud
adalah
kemampuannya
untuk
menggandakan sinyal audio secara berulang-ulang tanpa mengalami penurunan kualitas suara.
Kelebihan lain dari audio digital adalah ketahanan terhadap noise (sinyal yang tidak diinginkan). Pada saat transmisi data dan pemrosesan dengan komponenkomponen elektrik, pada sinyal analog sangat mudah sekali terjadi gangguangangguan berupa noise. Suara desis pada kaset rekaman merupakan salah satu contoh terjadinya noise berupa gangguan pada frekuensi tinggi.
Audio digital akan mempermudah pemrosesan sinyal, karena proses-proses pengolahan sinyal digital dapat dilakukan dengan menggunakan operasi-operasi matematis yang diimplementasikan dalam bentuk digital signal processor atau melalui software. Operasi-operasi tersebut antara lain meliputi mixing, filtering, volume control, equalizing, noise reduction, high frequency rebirth, DC offset correction, pengaturan tempo, penambahan efek dan sebagainya.
Universitas Sumatera Utara
2.12 Istilah dalam Audio Digital
Dalam dunia audio digital, ada beberapa istilah yaitu channel (jumlah kanal), sampling rate (laju pencuplikan), bandwidth, bit per sample (banyaknya bit dalam satu sample), bit rate (laju bit) (Dangarwala, 2010).
2.12.1 Channel (Jumlah Kanal)
Jumlah kanal menentukan banyaknya kanal audio yang digunakan. Audio satu kanal dikenal dengan mono, sedangkan audio dua kanal dikenal dengan stereo. Saat ini untuk audio digital standar, biasanya digunakan dua kanal, yaitu kanal kiri dan kanal kanan. Audio untuk penggunaan theater digital menggunakan lebih banyak kanal. Ada yang menggunakan tiga kanal, yaitu 2 kanal depan
dan surround. Ada yang
menggunakan 6 kanal (dikenal dengan format audio 5.1) yaitu terdiri dari 2 kanal depan dan 2 kanal surround, 1 kanal tengah dan 1 kanal subwoofer. Bahkan ada yang menggunakan 8 kanal (format audio 7.1) yaitu terdiri dari 2 kanal depan dan 2 kanal surround, 1 kanal tengah dan 1 kanal subwoofer dan ditambah 2 buah speaker EX (Environmental Extended) untuk menghasilkan suara dari belakang.
2.12.2 Sampling Rate (Laju Pencuplikan)
Ketika sound card mengubah audio menjadi data digital, sound card akan memecah suara tadi menurut nilai menjadi potongan-potongan sinyal dengan nilai tertentu. Proses sinyal ini bisa terjadi ribuan kali dalam satuan waktu. Banyak pemotongan dalam satu satuan waktu ini dinamakan sampling rate (laju pencuplikan). Satuan sampling rate yang biasa digunakan adalah KHz (kilo Hertz) (Binanto, 2010).
Kerapatan laju pencuplikan ini menentukan kualitas sinyal analog yang akan diubah menjadi data digital. Makin rapat laju pencuplikan ini, kualitas suara yang dihasilkan akan makin mendekati suara aslinya. Sebagai contoh, lagu yang disimpan dalam Compact Disc Audio (CDA) memiliki sampling rate 44.1 KHz, yang berarti lagu ini dicuplik sebanyak 44100 kali dalam satu detik untuk memastikan kualitas suara yang hampir sama persis dengan aslinya.
Universitas Sumatera Utara
Tabel 2.1 Frekuensi Sampling dan Kualitas Suara yang Dihasilkan Sampling Rate (KHZ) 8 11,025 16 22,025 32,075 44,1 48
Aplikasi Telepon Radio AM Kompromi antara 11,025 dan 22,025 KHz Mendekati Radio FM Lebih baik dari Radio FM Compact Disc Audio (CDA) Digital Audio Tape (DAT)
Sampling rate yang umumnya digunakan antara lain 8 KHz, 11 KHz, 16 KHz, 22 KHz, 24 KHz, 44 KHz, 88 KHz. Makin tinggi sampling rate, semakin baik kualitas audio. Teori Nyquist menyatakan bahwa sampling rate yang diperlukan minimal 2 kali bandwidth sinyal. Hal ini berkaitan dengan kemampuan untuk merekonstruksi ulang sinyal audio.
2.12.3 Bandwidth
Bandwitdth adalah selisih antara frekuensi tertinggi dan frekuensi terendah yang akan diolah. Misalnya sinyal audio pada telepon yang digunakan untuk menyampaikan sinyal dengan frekuensi 300 – 3400 Hz (ucapan manusia), berarti bandwidth-nya adalah 3100 Hz (3400 dikurangi 300). Maka sampling rate minimum yang diperlukan adalah 2 kali yaitu 6,2 KHz. Demikian pula dengan frekuensi suara secara umum, frekuensi yang dapat didengar manusia adalah 20 – 20.000 Hz, dengan bandwidth 19.980. Berarti sampling rate minimum yang digunakan adalah 39.960 Hz. Jadi frekuensi sampling yang mencukupi adalah 44.100 Hz.
2.12.4 Bit Per Sample (Banyaknya Bit Dalam Satu Sampel)
Bit per sample menyatakan seberapa banyak bit yang diperlukan untuk menyatakan hasil sample tersebut, hal ini berkaitan dengan proses kuantisasi. Bit rate yang digunakan adalah 8 bit per sample atau 16 bit per sample. Proses kuantisasi akan mengubah amplitudo sinyal audio menjadi suatu level sinyal tertentu. Dengan 8 bit per sample akan ada 256 level pilihan sedangkan 16 bit per sample akan ada 65.536 level pilihan. Makin tinggi bit per sample makin teliti proses kuantisasi. Dalam contoh
Universitas Sumatera Utara
ini, penggunaan 16 bit per sample dibandingkan penggunaan 8 bit per sample akan mempertinggi ketelitian kualitas kuantisasi sebanyak 256 kali.
2.12.5 Bit Rate (Laju Bit )
Istilah bit rate merupakan gabungan dari istilah sampling rate dan bit per sample. Bit rate menyatakan banyaknya bit yang diperlukan untuk menyimpan audio selama satu detik, satuannya adalah bit per detik. Bit rate (dengan satuan bit per detik) diperoleh dengan rumus yang sederhana yaitu perkalian antara jumlah kanal, sampling rate (dengan satuan Hertz) dan bit per sample (dengan satuan bit).Seperti dapat dilihat di Tabel 2.2 di bawah ini
Tabel 2.2 Tabel Penyimpanan Berbagai Konfigurasi Audio Digital Sampling
Bit per
Jumlah
rate
sample
kanal
12 kHz
8
1
12 kHz
8
12 kHz
Bit rate
Byte rate (1
Byte rate
byte = 8 bit)
per menit
96.000
12.000
720 KB
2
192.000
24.000
1,44 MB
16
1
192.000
24.000
1,44 MB
12 kHz
16
2
348.000
48.000
2,88 MB
24 kHz
8
1
192.000
24.000
1,44 MB
24 kHz
8
2
348.000
48.000
2,88 MB
24 kHz
16
1
348.000
48.000
2,88 MB
24 kHz
16
2
768.000
96.000
5,76 MB
44.1 kHz
8
1
352.800
44.100
2,646 MB
44.1 kHz
8
2
705.600
88.200
5,292 MB
44.1 kHz
16
1
705.600
88.200
5,292 MB
44.1 kHz
16
2
1.411.200
176.400
10,584 MB
Audio sekualitas CD Audio menggunakan sampling rate 44,1 kHz, 16 bit per sample, 2 kanal. Total media yang diperlukan untuk menyimpan data audio ini perdetik adalah 176.400 byte, untuk durasi 1 menit diperlukan 10,584 MB. Jika ratarata durasi satu lagu selama 5 menit, maka dibutuhkan tempat lebih dari 50 MB untuk
Universitas Sumatera Utara
menyimpan data audio lagu tersebut jika diasumsikan 1 KB = 1.000 byte dan 1 MB = 1.000 KB = 1.000.000 byte.
2.13
Data Audio
Salah satu tipe data multimedia adalah audio yang berupa suara ataupun bunyi, data audio sendiri telah mengalami perkembangan yang
cukup pesat seiring dengan
semakin umumnya orang dengan perangkat multimedia. Tentunya yang merupakan syarat utama supaya komputer mampu menjalankan tipe data tersebut adalah adanya speaker yang merupakan output untuk suara yang dihasilkan dan untuk menghasilkan maupun mengolah data suara yang lebih kompleks seperti *.WAV, *.MIDI tersebut tentunya sudah diperlukan perangkat yang lebih canggih lagi yaitu sound card.
Tipe dari pelayanan audio memerlukan format yang berbeda untuk informasi audio dan teknologi yang berbeda untuk menghasilkan suara. Windows menawarkan beberapa tipe dari pelayanan audio : 1.
Pelayanan audio Waveform menyediakan playback dan recording untuk perangkat keras digital audio. Waveform digunakan untuk menghasilkan nonmusikal audio seperti efek suara dan suara narasi. Audio ini mempunyai keperluan penyimpanan yang sedang dan keperluan untuk tingkat transfer paling kecil yaitu 11 K/detik.
2.
Midi Audio, menyediakan pelayanan file MIDI dan MIDI playback melalui synthesizer internal maupun eksternal dan perekaman MIDI. MIDI digunakan untuk aplikasi yang berhubungan dengan musik seperti komposisi musik dan program MIDI sequencer. Karena memerlukan tempat penyimpanan lebih kecil dan tingkat transfer yang lebih kecil daripada Waveform audio, maka sering digunakan untuk keperluan background.
3.
Compact Disc Audio (CDA) menyediakan pelayanan untuk playback informasi Red Book Audio dalam CD dengan drive CD-ROM pada komputer multimedia. CD menawarkan kualitas suara tertinggi, namun juga memerlukan daya penyimpanan yang paling besar pula, sekitar 176 KB/detik.
4.
Wave Audio merupakan kreasi perusahaan raksasa perangkat lunak Microsoft yang berasal dari standar RIFF (Resource Interchange File Format). Wave audio
Universitas Sumatera Utara
ini telah menjadi standar format file audio komputer dari suara sistem dan games sampai CD Audio. File Wave diidentifikasikan dengan nama yang berekstensi *.WAV. Format asli dari tipe file tersebut sebenarnya berasal dari bahasa C.
2.14 Struktur File Wave
Aplikasi multimedia seperti diketahui memerlukan manajemen penyimpanan dari sejumlah jenis data yang bervariasi, termasuk bitmap, data audio, data video, informasi mengenai kontrol device periperal. Rule Interchange File Format (RIFF) menyediakan suatu cara untuk menyimpan semua jenis data tersebut (Dangarwala, 2010). Tipe data pada sebuah file RIFF dapat diketahui dari ekstensi filenya. Sebagai contoh jenis-jenis file yang disimpan dalam bentuk format RIFF adalah sebagai berikut:
1. Audio/visual interleaved data (.AVI) 2. Waveform data (.WAV) 3. Bitmapped data (.RDI) 4. MIDI information (.RMI) 5. Color palette (.PAL) 6. Multimedia Movie (.RMN) 7. Animated cursor (.ANI)
Pada saat ini, file *.AVI merupakan satu-satunya jenis file RIFF yang telah secara penuh diimplementasikan menggunakan spesifikasi RIFF. Meskipun file *.WAV juga menggunakan spesifikasi RIFF, karena struktur file *.WAV ini begitu sederhana maka banyak perusahaan lain yang mengembangkan spesifikasi dan standar mereka masing-masing.
Format file WAVE seperti yang diketahui, merupakan bagian dari spesifikasi RIFF Microsoft yang digunakan sebagai penyimpan data digital audio. Format file ini merupakan salah satu format file audio pada PC. Seiring dengan popularitas Windows maka banyak aplikasi yang mendukung format file ini. Karena bekerja pada
Universitas Sumatera Utara
lingkungan Windows yang menggunakan prosesor Intel, maka format data dari file WAVE disimpan dalam
format urutan little-endian (least significant byte) dan
sebagian dalam urutan big-endian.
File WAVE menggunakan struktur standar RIFF yang mengelompokkan isi file (sampel format, sampel digital audio, dan lain sebagainya) menjadi “chunk” yang terpisah, setiap bagian mempunyai header dan byte data masing-masing. Header chunck
menetapkan jenis dan ukuran dari byte data chunk. Dengan metoda
pengaturan seperti ini maka program yang tidak mengenali jenis chunk yang khusus dapat dengan mudah melewati bagian chunk ini dan melanjutkan langkah memproses chunk yang dikenalnya. Jenis chunk tertentu mungkin terdiri atas sub-chunk. Sebagai contoh, pada gambar 2.3 dapat dilihat chunk “fmt ” dan “data” sebenarnya merupakan sub-chunk dari chunk “RIFF”.
Chunk pada file RIFF merupakan suatu string yang harus diatur untuk tiap kata. Ini berarti ukuran total dari chunk harus merupakan kelipatan dari 2 byte (seperti 2, 4, 6, 8 dan seterusnya). Jika suatu chunk terdiri atas jumlah byte yang ganjil maka harus dilakukan penambahan byte (extra padding byte) dengan menambahkan sebuah nilai nol pada byte data terakhir. Extra padding byte ini tidak ikut dihitung pada ukuran chunk. Oleh karena itu sebuah program harus selalu melakukan pengaturan kata untuk menentukan ukuran nilai dari header sebuah chunk untuk mengkalkulasi offset dari chunk berikutnya. Layout file wave dapat dilihat seperti pada Gambar 2.3.
Gambar 2.3 Layout File Wave (Dangarwala,2010)
Universitas Sumatera Utara
2.14.1 Header File Wave
Header file Wave mengikuti struktur format file RIFF standar. Delapan byte pertama dalam file adalah header chunk RIFF standar yang mempunyai chunk ID “RIFF” dan ukuran chunk didapat dengan mengurangkan ukuran file dengan 8 byte yang digunakan sebagai header. Empat byte data yaitu kata “RIFF” menunjukkan bahwa file tersebut merupakan file RIFF. File Wave selalu menggunakan kata “WAVE” untuk membedakannya dengan jenis file RIFF lainnya sekaligus digunakan untuk mendefinisikan
bahwa
file
tersebut
merupakan
file
audio
waveform
(Dangarwala,2010). Seperti terlihat pada Tabel 2.3.
Tabel 2.3 Nilai Jenis Chunk RIFF Offset Ukuran
Deskripsi
Nilai
0x00
4
Chunk ID
0x04
4
Ukuran Data Chunk (ukuran file) – 8
0x08
4
Jenis RIFF
0x10
"RIFF" (0x52494646)
"WAVE" (0x57415645) Chunk WAVE
2.14.2 Chunk File WAVE
Ada beberapa jenis chunk untuk menyatakan file Wave. Kebanyakan file Wave hanya terdiri atas 2 buah chunk, yaitu Chunk Format dan Chunk Data. Dua jenis chunk ini diperlukan untuk menggambarkan format dari sampel digital audio. Meskipun tidak diperlukan untuk spesifikasi file Wave yang resmi, lebih baik menempatkan Chunk Format sebelum Chunk Data. Kebanyakan program membaca chunk tersebut dengan urutan di atas dan jauh lebih mudah dilakukan streaming digital audio dari sumber yang membacanya secara lambat dan linear seperti Internet. Jika Chunk Format lebih dulu ditempatkan sebelum Chunk Data maka semua data dan format harus di-stream terlebih dahulu sebelum dilakukan playback (Dangarwala, 2010). Seperti terlihat pada Tabel 2.4.
Universitas Sumatera Utara
Tabel 2.4 Format Chunk RIFF Offset Ukuran (byte)
Deskripsi
0x00
4
Chunk ID
0x04
4
Ukuran Data Chunk
0x08
Byte Data Chunk
2.14.3 Chunk Format
Chunk format terdiri atas informasi tentang bagaimana suatu data waveform disimpan dan cara untuk dimainkan kembali, termasuk jenis kompresi yang digunakan, jumlah kanal, laju pencuplikan (sampling rate), jumlah bit tiap sampel dan atribut lainnya. Chunk format ini ditandai dengan chunnk ID “fmt“ (Kadhim, 2012). Seperti dapat kita lihat Tabel 2.5.
Tabel 2.5 Nilai-Nilai Chunk Format File Wave (Kadhim, 2012) Offset Ukuran
Deskripsi
Nilai
0x00
4
Chunk ID
"fmt " (0x666D7420)
0x04
4
Ukuran Data Chunk
16 + extra format bytes
0x08
2
Kode Kompresi
1 - 65,535
0x0a
2
Jumlah Kanal
1 - 65,535
0x0c
4
Laju Pencuplikan
1 - 0xFFFFFFFF
0x10
4
Jumlah rata-rata byte tiap detik 1 - 0xFFFFFFFF
0x14
2
Block align
1 - 65,535
0x16
2
Bit Significant tiap sampel
2 - 65,535
0x18
2
Extra format bytes
0 - 65,535
0x1a
Extra format bytes
Universitas Sumatera Utara
A. Chunk ID dan Ukuran Data Chunk ID selalu ditandai dengan kata “fmt “ (0x666D7420) dan ukurannya sebesar data format Wave (16 byte) ditambah dengan extra format byte yang diperlukan untuk format Wave khusus, jika tidak terdiri atas data PCM tidak terkompresi. Sebagai catatan string chunk ID ini selalu diakhir dengan karakter spasi (0x20). Chunk ID “fmt “ digunakan sebagai informasi file Wave, informasi ini berupa: Compression Code, Number of Channels, Sample Rate, Average Bytes per Second, Block Align, Significant Bits per Sample, Extra Format Bytes.
B. Compression Code Setelah chunk ID dan ukuran data chunk maka bagian pertama dari format data file Wave menyatakan jenis kompresi yang digunakan pada data Wave. Seperti terlihat pada Table 2.6.
Tabel 2.6 Compression Code Wave (Gunawan, 2005) Kode
Deskripsi
0 (0x0000)
Tidak Diketahui
1 (0x0001)
PCM / Tidak Terkompresi
2 (0x0002)
Microsoft ADPCM
6 (0x0006)
ITU G.711 a-law
7 (0x0007)
ITU G.711 µ-law
17 (0x0011)
IMA ADPCM
20 (0x0016)
ITU G.723 ADPCM (Yamaha)
49 (0x0031)
GSM 6.10
64 (0x0040)
ITU G.721 ADPCM
80 (0x0050)
MPEG
65,536 (0xFFFF) Tahap Uji Coba C. Number of Channels Jumlah kanal menyatakan berapa banyak signal audio terpisah yang di-encode dalam chunk data Wave. Nilai 1 (satu) berarti merupakan signal mono, nilai 2 (dua) berarti signal stereo dan seterusnya.
Universitas Sumatera Utara
D. Sampling Rate Menyatakan jumlah potongan sampel tiap detik. Nilai ini tidak dipengaruhi oleh jumlah kanal. E. Average Bytes Per Second Nilai ini mengindikasikan berapa besar byte data Wave harus di-stream ke konverter D/A (Digital Audio) tiap detik sewaktu suatu file Wave dimainkan. Informasi ini berguna ketika terjadi pengecekan apakah data dapat di-stream cukup cepat dari suatu sumber agar sewaktu playback pembacaan data tidak terhenti. Nilai ini dapat dihitung dengan menggunakan rumus di bawah ini: .................................................................. (2.1)
AvgBytesPerSec = SampleRate * BlockAlign
F. Block Align Menyatakan jumlah byte tiap potongan sampel. Nilai ini tidak dipengaruhi oleh jumlah kanal dan dapat dikalkulasi dengan rumus di bawah ini: BlockAlign = SignificantBitsPerSample / 8 * NumChannels .................... (2.2)
G. Significant Bits Per Sample Nilai ini menyatakan jumlah bit yang digunakan untuk mendefinisikan tiap sampel. Nilai ini biasanya berupa 8, 16, 24 atau 32 (merupakan kelipatan 8). Jika jumlah bit tidak merupakan kelipatan 8 maka jumlah byte yang digunakan tiap sampel akan dibulatkan ke ukuran byte paling dekat dan byte yang tidak digunakan akan diset 0 (nol) dan diabaikan. H. Extra Format Byte Nilai ini menyatakan berapa banyak format byte tambahan. Nilai ini tidak ada jika kode kompresi adalah 0 (file PCM yang tidak terkompresi). Jika terdapat suatu nilai pada bagian ini maka ini digunakan untuk menentukan jenis file Wave yang memiliki kompresi dan ini memberikan informasi mengenai jenis kompresi apa yang diperlukan untuk men-decode data Wave. Jika nilai ini tidak dilakukan word aligned (merupakan kelipatan 2), penambahan byte (padding) pada bagian akhir data ini harus dilakukan.
Universitas Sumatera Utara
2.14.4 Chunk Data
Chunk ini ditandai dengan adanya string “data”. Chunk Data pada file Wave terdiri atas sampel digital audio yang mana dapat didecode kembali menggunakan metode kompresi atau format biasa yang dinyatakan dalam chunk format Wave. Jika kode kompresinya adalah 1 (jenis PCM tidak terkompresi), maka “Data Wave” terdiri atas nilai sampel mentah (raw sample value).Seperti terlihat pada Tabel 2.7.
Tabel 2.7 Format Data Chunk (Gunawan,2005) Offset Ukuran
Tipe
Deskripsi
Nilai
0x00
4
char[4] chunk ID
0x04
4
dword Ukuran chunk
0x08
"data" (0x64617461) Tergantung pada panjang sampel dan jenis kompresi
Sampel data
Sampel digital audio multi-channel disimpan dalam bentuk data wave Interlaced. File wave multi-channel (seperti stereo dan surround) disimpan dengan mensiklus tiap kanal sampel audio sebelum melakukan pembacaan lagi untuk tiap waktu cuplik berikutnya. Dengan cara seperti ini maka file audio tersebut dapat dimainkan atau di-stream tanpa harus membaca seluruh isi file. Lebih praktis dengan cara seperti ini ketika sebuah file wave dengan ukuran yang besar dimainkan dari disk (mungkin tidak dapat dimuat seluruhnya ke dalam memori) atau ketika melakukan streaming sebuah file wave melalui jaringan internet.
Seperti dikemukan di atas, semua chunk pada RIFF (termasuk chunk Wave “data”) harus di-word align. Jika data sampel menggunakan byte angka ganjil, maka dilakukan penambahan sebuah byte dengan nilai nol yang ditempatkan pada bagian akhir sampel data. Ukuran Header chunk “data” tidak termasuk byte ini.
Universitas Sumatera Utara
2.14.5 Format Wave PCM
Jenis format Wave ini merupakan jenis file Wave yang paling umum dan hampir dikenal oleh setiap program. Format Wave PCM (Pulse Code Modulation) adalah file wave yang tidak terkompresi, akibatnya ukuran file sangat besar jika file mempunyai durasi yang panjang. Berikut ini diagram (Gambar 2.4) yang menggambarkan format file Wave PCM. (Kadhim,2012).
Gambar 2.4 Diagram Format File Wave (Kadhim,2012).
Universitas Sumatera Utara
Berikut ini penjelasan mengenai struktur file Wave yang dimulai dengan header RIFF: Seperti terlihat pada Tabel 2.8.
Tabel 2.8 Penjelasan Struktur File Wave (Gunawan,2005) Offset 0
Size 4
Nama Field ChunkID
Deskripsi Terdiri atas kata “RIFF” dalam bentuk ASCII (0x52494646 dalam bentuk big-endian).
4
4
Chunksize
36 + SubChunk2Size atau lebih tepatnya: 4 + (8 + SubChunk1Size) + (8 + SubChunk2Size). Ini adalah besar seluruh file dalam byte dikurangi 8 byte untuk 2 field yang tidak termasuk dalam hitungan: ChunkID dan ChunkSize
8
4
Format
Terdiri atas kata “WAVE” (0x57415645 dalam bentuk big-endian).
12
4
SubChunk1ID
Terdiri atas kata “fmt “ (0x666d7420 dalam bentuk big-endian).
16
4
SubChunk1Size
16 untuk jenis PCM.
20
2
AudioFormat
PCM = 1 (Linear quantization). Nilai lebih dari 1 mengindikasikan file Wave kompresi.
22
2
NumChannels
Mono = 1, Stereo = 2 dan seterusnya
24
4
SampleRate
8000, 44100, dan seterusnya dalam satuan Hz
28
4
ByteRate
= SampleRate * NumChannels * BitsPerSample / 8
32
2
BlockAlign
= NumChannels * BitsPerSample / 8 Jumlah byte untuk satu sampel termasuk semua channel.
34
2
BitsPerSample
8 bits = 8, 16 bits = 16, dan seterusnya.
36
4
SubChunk2ID
Terdiri atas kata “data” (0x64617461 dalam bentuk big-endian).
40
4
SubChunk2Size
= NumSamples * NumChannels * BitsPerSample / 8
44
*
Data
Data Sound sebenarnya.
Universitas Sumatera Utara
Keterangan:
Format “WAVE” terdiri atas 2 buah SubChunk2: “fmt ” dan “data”. SubChunk “fmt “ menggambarkan format data sound. SubChunk “data” terdiri atas ukuran besar data dan data sound sebenarnya.
Sebagai contoh, berikut ini merupakan 72 byte pertama dari sebuah file Wave yang ditampilkan dalam heksadesimal: 52 49 46 46 24 08 00 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 02 00 22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 00 00 00 00 24 17 1e f3 3c 13 3c 14 16 f9 18 f9 34 e7 23 a6 3c f2 24 f2 11 ce 1a 0d
Berikut ini (Gambar 2.5) interpretasi dari tiap byte pada file Wave di atas:
Gambar 2.5 Interpretasi tiap Byte pada File Wave (Gunawan, 2005)
Selain bentuk standar dari file Wave di atas, seperti yang dikemukakan sebelumnya file Wave dapat ditambahkan chunk-chunk lain. Penambahan ini tidak berpengaruh sebab suatu program yang membaca file Wave jika tidak memerlukan informasi pada chunk ini akan mengabaikannya dan mencari chunk lain yang diperlukannya. Sebagai contoh berikut ini ditampilkan suatu tabel sebuah file Wave dengan penambah chunk “rgad”.Seperti terlihat pada table dibawah ini
Universitas Sumatera Utara
Tabel 2.9 Penambahan Chunk Lain Pada File Wave(Gunawan,2010) Start Chunk Chunk
Field Name
contents
Byte 0
contents
bytes Format
(HEX) RIFF
Name
4
Size
"RIFF" 52 49 46 46
4
ASCII
176444
4
uInt32
4
ASCII
4
ASCII
3C B1 02 00
8
WAVE
Name
12
Fmt
Name
"WAVE" 57 41 56 45 "fmt "
66 6D 74 20
16
Size
16
10 00 00 00
4
uInt32
20
wFormatTag
1
01 00
2
uInt16
22
nChannels
2
02 00
2
uInt16
24
nSamplesPerSec
44100
44 AC 00
4
uInt32
4
uInt32
00 28
nAvgBytesPerSec
176400
10 B1 02 00
32
nBlockAlign
4
04 00
2
uInt16
34
nBitsPerSample
16
10 00
2
uInt16
name
"rgad"
72 67 61 64
4
ASCII
40
size
8
08 00 00 00
4
uInt32
44
fPeakAmplitude
1
00 00 80 3F
4
float32
48
nRadioRgAdjust
10822
46 2A
2
uInt16
50
nAudiophileRgAdjust
18999
37 4A
2
uInt16
name
"data"
64 61 74 61
4
ASCII
size
176400
10 B1 02
4
uInt32
36
52 56
Rgad
Data
00 60
waveform data
.....
.....
176400 Int16
Universitas Sumatera Utara
2.15 Hubungan Multimedia dengan Aplikasi Windows
Arsitektur dari pelayanan multimedia dirancang berdasarkan konsep dari extensibilitas (ekstensibility) dan device independence (kebebasan alat). Berdasarkan kata multimedia dapat diasumsikan bahwa multimedia merupakan suatu wadah atau penyatuan beberapa media menjadi satu. Elemen-elemen dalam pembentukan aplikasi multimedia adalah teks, gambar, suara dan video. Untuk itu ekstensibilitas memungkinkan arsitektur perangkat lunak dengan mudah mengakomodasikan lebih canggih dalam teknologi tanpa perubahan pada arsitektur itu sendiri (Santi,2010).
Kebebasan alat memungkinkan aplikasi multimedia menjadi lebih mudah dikembangkan yang akan berjalan pada perangkat keras yang berbeda-beda. 3 (tiga) elemen desain dari perangkat lunak sistem mendukung ekstensibilitas dan kebebasan alat yaitu: 1. Lapisan translasi (MMSystem) yang mengisolasikan aplikasi dari driver peralatan dan memusatkan pada kode kebebasan alat. 2. Hubungan run-time yang memungkinkan lapisan translasi untuk menghubungkan dengan driver yang dibutuhkan. 3. Suatu bentuk yang diatur sesuai dan driver konsisten interface yang meminimalkan kode khusus dan membuat instalasi dan meningkatkan proses menjadi lebih mudah. Untuk lebih jelasnya maka digambarkan bagaimana lapisan translasi menterjemahkan sebuah fungsi multimedia menjadi panggilan kepada driver alat audio:
Level Aplikasi
Level Translasi
Level Device Driver
Gambar 2.6 Lapisan-Lapisan Multimedia dengan Windows
Universitas Sumatera Utara
2.7
Kompresi Data
Kompresi data dilakukan untuk mereduksi ukuran data atau file. Dengan melakukan kompresi atau pemadatan data maka ukuran file atau data akan lebih kecil sehingga dapat mengurangi waktu transmisi sewaktu data dikirim dan tidak banyak menghabiskan ruang media penyimpan (Nadarajan, 2008).
2.7.1 Teori Kompresi Data
Dalam makalahnya di tahun 1948, “A Mathematical Theory of Communication”, Claude E. Shannon merumuskan teori kompresi data. Shannon membuktikan adanya batas dasar (fundamental limit) pada kompresi data jenis lossless. Batas ini, disebut dengan entropy rate dan dinyatakan dengan simbol H. Nilai eksak dari H bergantung pada informasi data sumber, lebih terperinci lagi, tergantung pada statistikal alami dari data sumber. Adalah mungkin untuk mengkompresi data sumber dalam suatu bentuk lossless, dengan laju kompresi (compression rate) mendekati H. Perhitungan secara matematis memungkinkan ini dilakukan lebih baik dari nilai H (Adhitama, 2009).
Shannon juga mengembangkan teori mengenai kompresi data lossy. Ini lebih dikenal sebagai rate-distortion theory. Pada kompresi data lossy, proses dekompresi data tidak menghasilkan data yang sama persis dengan data aslinya. Selain itu, jumlah distorsi atau nilai D dapat ditoleransi. Shannon menunjukkan bahwa, untuk data sumber (dengan semua properti statistikal yang diketahui) dengan memberikan pengukuran distorsi, terdapat sebuah fungsi R(D) yang disebut dengan rate-distortion function. Pada teori ini dikemukakan jika D bersifat toleransi terhadap jumlah distorsi, maka R(D) adalah kemungkinan terbaik dari laju kompresi (Dangarwala, 2010).
Ketika kompresi lossless (berarti tidak terdapat distorsi atau D = 0), kemungkinan laju kompresi terbaik adalah R(0) = H (untuk sumber alphabet yang terbatas). Dengan kata lain, laju kompresi terbaik yang mungkin adalah entropy rate. Dalam pengertian ini, teori rate-distortion adalah suatu penyamarataan dari teori kompresi data lossless, dimana dimulai dari tidak ada distorsi (D = 0) hingga terdapat beberapa distorsi (D > 0).
Universitas Sumatera Utara
Teori kompresi data lossless dan teori rate-distortion dikenal secara kolektif sebagai teori pengkodean sumber (source coding theory). Teori pengkodean sumber menyatakan batas fundamental pada unjuk kerja dari seluruh algoritma kompresi data. Teori tersebut sendiri tidak dinyatakan secara tepat bagaimana merancang dan mengimplementasikan algoritma tersebut. Bagaimana pun juga algoritma tersebut menyediakan beberapa petunjuk dan panduan untuk memperoleh unjuk kerja yang optimal. Dalam bagian ini, akan dijelaskan bagaimana Shannon membuat model dari sumber informasi dalam istilah yang disebut dengan proses acak (random process). Di bagian selanjutnya akan dijelaskan mengenai teorema pengkodean sumber lossless Shannon, dan teori Shannon mengenai rate-distortion. Latar belakang mengenai teori probabilitas diperlukan untuk menjelaskan teori tersebut.
2.7.2 Pemodelan Sumber (Source Modeling)
Pada umumnya perpustakaan mempunyai pilihan buku-buku yang banyak, misalnya terdapat 100 juta buku dalam perpustakaan tersebut. Tiap buku dalam perpustakaan ini sangat tebal, sebagai contoh tiap buku mempunyai 100 juta karakter (atau huruf). Ketika anda pergi ke perpustakaan tersebut, mengambil sebuah buku secara acak dan meminjamnya. Buku yang dipilih tersebut merupakan informasi sumber yang akan dikompresi. Buku yang terkompresi tersebut disimpan pada zip disk untuk dibawa pulang, atau ditransmisi secara langsung melalui internet ke rumah anda ataupun bagaimana kasusnya. Secara matematis buku yang dipilih tersebut didenotasikan sebagai: X = (X1, X2, X3, X4, …) Dimana X merepresentasikan seluruh buku, dan X1 merepresentasikan karakter pertama dari buku tersebut, X2 merepresentasikan karakter kedua, dan seterusnya. Meskipun pada kenyataannya panjang karakter dalam buku tersebut terbatas, secara matematis diasumsikan mempunyai panjang karakter yang tidak terbatas. Alasannya adalah buku tersebut terlalu tebal dan dapat dibayangkan jumlah karakternya terlalu banyak. Untuk menyederhanakan hal tersebut, misalkan diasumsi semua karakter dalam buku tersebut terdiri atas huruf kecil (‘a’ hingga ‘z’) atau SPACE. Sumber alphabet misalkan A didefinisikan merupakan kumpulan dari 27 kemungkinan nilai dari tiap karakter:
Universitas Sumatera Utara
A={a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, SPACE}
Sekarang jika seorang yang ingin merancang suatu algoritma kompresi maka sangat sulit baginya untuk mengetahui buku yang mana yang akan dipilih. Orang tersebut hanya mengetahui bahwa seseorang akan memilih sebuah buku dari perpustakaan tersebut. Dengan cara pandangnya, karakter-karakter dalam buku merupakan (Xi, i = 1, 2 , …) merupakan variabel acak yang diambil dari nilai alphabet A. Keseluruhan buku, X merupakan urutan tak berhingga dari variabel acak, makanya X merupakan suatu proses acak. Ada beberapa cara untuk menyatakan model statistik dari buku tersebut: A. Zero-Order Model. Tiap karakter distatistik secara bebas dari semua karakter dan 27 kemungkinan nilai dalam alphabet A dinyatakan sama seperti yang muncul. Jika model tersebut akurat, maka cara tipikal untuk membuka sebuah buku adalah seperti berikut (Dangarwala, 2010) rxkhrjffjuj zlpwcfwkcyj ffjeyvkcqsghyd qpaamkbzaacibzlhjqd
B.
First-Order Model. Dalam bahasa Inggris diketahui beberapa huruf muncul lebih sering dibandingkan huruf yang lain. sebagai contoh, huruf ‘a’ dan ‘e’ lebih umum daripada huruf ‘q’ dan ‘z’. Jadi dalam model ini karakter masih secara bebas terhadap satu sama lain, tetapi distribusi probabilitas dari karakter-karakter tersebut menurut distribusi statistikal urutan pertama dari teks bahasa Inggris. Teks yang secara tipikal dari model ini berbentuk seperti ini: ocroh hli rgwr nmielwis eu ll nbnesebya th eei alhenhttpa oobttva nah brl
C.
Second-Order Model. Dua model sebelumnya diasumsi menurut statistik secara bebas dari satu karakter hingga karakter berikutnya. Ini tidak begitu akurat dibandingkan dengan bahasa alami Inggris. Sebagai contoh, beberapa huruf dalam kalimat tersebut hilang. Bagaimanapun juga, kita masih dapat menerka huruf-huruf tersebut dengan mencarinya pada konteks kalimat. Ini mengimplikasikan beberapa ketergantungan antara karakter-karakter. Secara alami, karakter yang saling berhubungan dekat lebih saling bergantung
Universitas Sumatera Utara
daripada karakter yang berhubungan jauh satu sama lainnya. Pada model ini, karakter yang ada Xi bergantung pada karakter sebelumnya Xi−1, tetapi secara kondisional tidak bergantung dengan semua karakter (X1, X2, …, Xi−2). Menurut model ini, distribusi probabilitas dari karakter Xi beragram menurut karakter sebelumnya Xi−1. Sebagai contoh, huruf ‘u’ jarang muncul (probabilitas = 0.022). Bagaimanapun juga, jika dinyatakan karakter sebelumnya adalah ‘q’ maka probabilitas dari ‘u’ dalam karakter berikutnya lebih tinggi (probabilitas = 0.995). Teks tipikal untuk model ini terlihat seperti berikut: on ie antsoutinys are t inctore st be s deamy achin d ilonasive tucoowe at teasonare fuso tizin andy tobe seace ctisbe
D.
Third-Order Model. Ini merupakan pengembangan model sebelumnya. Berikut ini merupakan karakter Xi yang bergantung pada dua karakter sebelumnya (Xi−2, Xi−1) tetapi secara kondisional tidak bergantung pada semua karakter sebelumnya sebelum: (X1, X2,…, Xi−3). Pada model ini, distribusi dari Xi beragam menurut (Xi−2, Xi−1). Teks tipikal dari model ini seperti bentuk berikut ini: in no ist lat whey cratict froure birs grocid pondenome of demonstures of the reptagin is regoactiona of cre Penyusunan kembali menjadi teks Inggris asli akan memudahkan tiap teks di atas dapat dibaca.
E.
General Model. Pada model ini, buku X merupakan proses acak seimbang yang berubah-ubah. Properti statistikal pada model seperti ini terlalu kompleks untuk dipertimbangkan sebagai tujuan praktikal. Model ini disukai hanya dalam sudut pandang teoritikal saja. Model A di atas merupakan kasus khusus dari model B. Model B merupakan
kasus spesial dari Model C. Model C merupakan kasus spesial dari model D. Model D merupakan kasus spesial dari model E.
Universitas Sumatera Utara
2.7.3
Entropi Rate Dari Suatu Sumber
Entropy rate dari suatu sumber adalah suatu bilangan yang bergantung hanya pada statistik alami sumber. Jika sumber mempunyai suatu model sederhana, maka nilai tersebut dapat dengan mudah dikalkulasi. Berikut ini, contoh dari sumber yang berubah-ubah: X = (X1, X2, X3, X4, ...), Dimana X merupakan teks dalam bahasa Inggris. Maka model statistik sumber di atas adalah sebagai berikut: A.
Zero-Order Model. Karakter-karakter secara statistik bersifat bebas untuk setiap alphabet A dan secara bersamaan muncul. Misalkan m merupakan ukuran dari alphabet. Dalam kasus ini, entropy rate dapat dinyatakan dengan persamaan: H= log2m bits/char ..................................................................................... (2.3) Untuk teks dalam bahasa Inggris, ukuran alphabet m = 27. Jadi, jika ini merupakan model akurat untuk teks dalam bahasa Inggris, maka entropy rate akan bernilai H = log2 27 = 4,75 bits/character.
B.
First-Order Model. Karakter-karakter secara statistik bersifat bebas. Misalkan m adalah ukuran dari alphabet dan misalkan Pi merupakan probabilitas dari huruf ke-i dalam alphabet. Entropy ratenya adalah: H= ∑𝑚 𝑖=1 𝑝𝑖 𝑙𝑜𝑔2 𝑝𝑖 bits/char .............................. (2.4)
Dengan menggunakan first-order distribution, entropy rate dari teks Inggris
sebesar 4,07 bits/character. A. Second-Order Model. Misalkan Pji adalah probabilitas yang berkondisi untuk karakter yang berlaku saat ini dan merupakan huruf ke-j dalam alphabet yang merupakan karakter sebelumnya yaitu huruf ke-i. maka entropy ratenya adalah: 𝑚 H= ∑𝑚 𝑖=1 𝑝𝑖 ∑𝑗=1 𝑝𝑗|𝑖 𝑙𝑜𝑔2 𝑝𝑗|𝑖 bits/char ................................................... (2.5)
Dengan menggunakan second-order distribution, entropy rate dengan model di atas adalah 3,36 bits/character.
Universitas Sumatera Utara
D.
Third-Order Model. Misalkan Pkj,i
adalah probabilitas berkondisi yang
berlaku untuk karakter saat ini dan merupakan karakter ke-k dalam alphabet yang didapat dari karakter sebelumnya yaitu huruf ke-j dan satu karakter sebelum huruf ke-i. Entropy rate untuk model tersebut adalah: 𝑚 𝑚 H= ∑𝑚 𝑖=1 𝑝𝑖 ∑𝑗=1 𝑝𝑗|𝑖 ∑𝑘=1 𝑝𝑘|𝑗,𝑖 𝑙𝑜𝑔2 𝑝𝑘|𝑗,𝑖 bits/char ............................... (2.6)
Dengan menggunakan third-order distribution, entropy rate dari teks Inggris dengan model di atas adalah 2,77 bits/character.
B. General Model. Misalkan Bn merepresentasikan karakter n pertama. Entropy rate dalam kasus yang umum dinyatakan dengan persamaan berikut ini: 1
H = lim𝑛→∞ ∑ 𝑝(𝐵)𝑛 𝑙𝑜𝑔2 𝑝(𝐵)𝑛 bits/char ......................................... (2.7) 𝑛
Dimana seluruh jumlah dari semua mn merupakan kemungkinan nilai dari Bn. Adalah tidak mungkin untuk menghitung entropy rate menurut persamaan di atas. Dengan menghitung metoda prediksi, Shannon mampu memperkirakan entropy rate dari ke-27 teks Inggris adalah 2,3 bits/character. Hanya terdapat satu entropy rate untuk suatu sumber yang diberikan. Semua definisi di atas untuk entropy rate saling bersesuaian satu sama lainnya.
2.7.4 Dalil Shannon Mengenai Lossless Source Coding
Dalil Shannon mengenai Lossless Source Coding berdasarkan pada konsep dari block coding. Untuk mengilustrasikan konsep tersebut, diperkenalkan suatu sumber informasi khusus dimana suatu alphabet terdiri atas hanya dua huruf: A = {a,b} Di sini, huruf ‘a’ dan ‘b’ sama-sama mempunyai kemungkinan untuk muncul. Bagaimanapun juga, misalkan ‘a’ muncul dalam karakter sebelumnya, probabilitas ‘a’ untuk muncul lagi dalam karakter saat ini adalah 0,9. Sama halnya dengan ‘b’ muncul sebagai karakter sebelumnya, probabilitas ‘b’ akan muncul sekali lagi sebagai karakter saat ini adalah 0,9. Ini dikenal sebagai Binary Symmetric Markov Source.
Suatu urutan block code ke-n merupakan suatu pemetaan yang ditetapkan untuk tiap blok dari karakter berurutan n dalam suatu untaian bit dengan panjang yang beragam. Contoh berikut mengilustrasikan konsep ini:
Universitas Sumatera Utara
1.
First-Order Block Code. Tiap karakter dipetakan sebagai suatu bit tunggal.
B1 P(B1) Codeword a
0.5
0
b
0.5
1
R =1 bit/character Contoh: Original Data
:aaaaaaa bbbbbbbbbbbbbaaaa
Compressed Data
:000000011111111111110000
Sebagai catatan 24 bit dipakai untuk merepresentasi 24 karakter − rata-rata 1 bit / karakter. 2.
Second-Order Block Code. Tiap pasangan karakter dipetakan dengan satu, dua, atau tiga bit. P(B2) Codeword B2 aa 0.45 0 bb 0.45 10 ab 0.05 110 ba 0.05 111 R=0.825 bits/character
Contoh: Original Data
:a a a a a a a b bb bb bb bb bb bb aa aa
Compressed Data
: 0
0
0 110 10 10
10 10
10
10 10
10
Sebagai catatan 20 bit dipakai untuk merepresentasi 24 karakter − rata-rata 0,83 bit / karakter. 3.
Third-Order Block Code. Triplet dari karakter dipetakan dengan satu urutan bit dengan panjang mulai dari satu hingga enam.
Universitas Sumatera Utara
B3 P(B3) Codeword aaa 0.405 0 bbb 0.405 10 aab 0.045 1100 abb 0.045 1101 bba 0.045 1110 baa 0.045 11110 aba 0.005 111110 bab 0.005 111111 R=0.68 bits/character
Contoh: Original Data
: aaa aaa abb bbb bbb bbb bba aaa
Compressed Data
: 0
0
0 110 10 10
1110 0
Sebagai catatan 17 bit dipakai untuk merepresentasi 24 karakter− rata -rata 0,71 bit / karakter. Dengan catatan: A. Nilai tingkat yang ditunjukkan pada tabel dikalkulasi dengan persamaan: 1
R = ∑ 𝑝(𝐵)𝑛 𝑙 (𝐵)𝑛 bits/sampel 𝑛
........................................................... (2.8)
dimana l(Bn) adalah panjang dari codeword untuk block Bn. B. Semakin tinggi urutan, maka semakin rendah laju berarti semakin baik kompresinya. C. Kode yang dipakai sebagai contoh di atas merupakan kode Huffman. D. Code Table yang ditampilkan merupakan data terkompresi yang diturunkan dari data asli. Semua contoh yang ditampilkan merupakan lossless.
Dalil: Misalkan Rn* adalah laju untuk urutan ke-n dari kode kompresi data lossless yang optimal (dalam bit / karakter). Maka:
Universitas Sumatera Utara
-
1
∑ ∑ 𝑝 (𝐵𝑛 ) 𝑙𝑜𝑔2 𝑝(𝐵𝑛 ) ≤ 𝑅 ∗𝑛 < − 𝑛
1
𝑛
∑ 𝑝 (𝐵𝑛 ) 𝑙𝑜𝑔2 𝑝(𝐵𝑛 ) +
1
𝑛
......... (2.9)
Dikarenakan baik upper dan lower bound dari Rn* mendekati entropy rate. H maka n menuju ketakterhinggaan, maka: lim𝑛→∞ 𝑅𝑛∗ = H. .................................................................................................. (2.10) Jadi, dalil ditetapkan bahwa entropy rate adalah laju untuk kode kompresi data lossless optimal. Limit yang berada sepanjang sumber diistilah sebagai stationary.
2.7.5
Perbedaan Antara Lossless dan Lossy Compression
Dalam kompresi data lossless, data yang dikompresi dan didekompresi mempunyai replikasi yang sama dengan data asli. Sedangkan pada kompresi data lossy, data yang didekompresi dapat berbeda dari data asli. Secara tipikal, ada beberapa distorsi antara data asli dan signal yang direproduksi.
Program kompresi data populer seperti WinZip, WinRar, WinAce, dan PkZip merupakan salah satu contoh data kompresi data lossless. JPEG merupakan salah satu contoh dari kompresi data lossy. Program kompresi lossless lainnya adalah Zero compression dan Difference Coding yang banyak digunakan untuk kompresi file audio maupun video digital.
2.7.6 Perbedaan Antara Compression Rate dan Compression Ratio
Terdapat dua jenis utama dalam aplikasi kompresi data yaitu transmisi dan penyimpanan. Suatu contoh dari yang terlebih dahulu adalah speech compression untuk transmisi secara real time melalui jaringan digital selular. Contoh untuk kasus yang kedua adalah kompresi file (contoh seperti program DriveSpace dan DoubleSpace) (Kodituwakku, 2010).
Istilah “compression rate” dipakai dalam transmisi, sementara istilah “compression ratio” berasal dari istilah teknik penyimpanan data.
Universitas Sumatera Utara
Compression rate atau laju kompresi adalah laju dari data yang dikompresi. Secara tipikal, satuannya adalah bit/sampel, bits/karakter, bits/piksel, atau bit/detik. Compression ratio atau rasio kompresi adalah rasio atau perbandingan antara ukuran atau laju data yang dikompresi dengan ukuran atau laju dari data asli.
Compression Ratio
=
𝑆𝑖𝑧𝑒 𝑜𝑟 𝑟𝑎𝑡𝑒 𝑜𝑓 𝑐𝑜𝑚𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛 𝑑𝑎𝑡𝑎 𝑆𝑖𝑧𝑒 𝑜𝑟 𝑟𝑎𝑡𝑒 𝑜𝑓 𝑜𝑟𝑖𝑔𝑖𝑛𝑎𝑙 𝑑𝑎𝑡𝑎
𝑥 100 % ........ (2.17)
Sebagai contoh, jika suatu image gray-scale aslinya direpresentasi oleh 8 bits /pixel (bpp) dan jika dikompresi hingga 2 bpp, maka dapat dikatakan rasio kompresinya adalah 1 banding 4 (1 : 4). Kadang-kadang dikatakan rasio kompresinya adalah 75%.
Laju kompresi merupakan istilah yang mutlak, sementara rasio kompresi merupakan istilah yang relatif. Sebagai catatan dalam suatu aplikasi tertentu keduanya dapat dipertimbangkan untuk transmisi dan penyimpanan (storage). Sebagai contoh, suatu gambar format JPEG yang terdapat pada website. Ini tidak hanya menghemat ruang penyimpan pada disk lokal, gambar tersebut juga menambah kecepatan transmisi ketika dikirim sebagai image melalui internet.
2.8
Kompresi Metode Zero Compression
Pada metode Zero Compression, kompresi file audio dilakukan pada sampel audio yang bernilai nol (0) berurutan. Ada dua tahap utama kompresi dengan metode Zero Compression untuk data audio, yaitu reading redudance data dan coding. Reading redudance data adalah merepresentasikan frekuensi kemunculan setiap sampel audio kedalam bilangan eksak. Coding adalah menuliskan kode yang berisi nilai sampel dengan frekuensi kemunculannya (Putra, 2010). Sebagai contoh diberikan sampel audio sebagai berikut: 0 0 0 0 0 2 4 5 2 0 0 0 0 7 8 9 1 adalah 17 byte. Reading Redudance Data: 0 = 5, 2 = 1, 4 = 1, 5 = 1, 2 = 1, 0 = 4, 7 =1, 8 = 1, 9 = 1, 1 = 1 Coding sampel audio hasil kompresi adalah: 052452047891 adalah 12 byte
Universitas Sumatera Utara
Rasio kompresinya adalah: ((17 -12) byte/ 17 byte ) x 100 % = 29 % Contoh lain adalah sebagai berikut: Diketahui sample audio 0 0 0 0 0 2 4 5 2 0 0 0 0 7 8 9 1 adalah 17 byte
52 48 46 46 24 08 00 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 02 00 22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 # -1 0 0 0 129 129 0 0 0 -1 -1 3d 0 #12 07 3d 3d 0 3d 0 2 9a 2a 4f 3e 3d 0 0 -1-10 -1 #3 3d 10 0 2 f 10 10 -1 0 12 10 5 -3 13 0 0 #4 11 23 0 0 0 -1 -1 -3 -2 9a 2a 9 f #5 10 -1 0 12 -10 5 -3 13 0 0 -6 11 #6 23 0 f 10 10 -1 0 12 -10 5 -3 13 #7 0 -6 11 6 23 0 0 0 -1 -1 -3 -2 #8 9a 2a f 10 10 1 0 12 -10 5 -3 #9 0 -6 11 23 0 0 0 -1 -1 -3 0 -3 -2 9a 2a #10 3d 10 0 2 f 10 10 -1 0 12 -10 #11 -3 13 0 0 - 07 3d 10 0 2 f 10 10 #12
Gambar 2.7 Nilai Sample Audio (Putra, 2010) Keterangan: 1.
Data audio dengan tulisan miring (italic) adalah sample audio yang dikompres.
2.
Data audio dengan tulisan normal adalah header-header file audio.
Dari data hasil pembacaan sample audio diperoleh data mulai dari sample ke 1 dengan tanda #-1 sampai sample ke 23 dengan tanda #12 pada blok terakhir data sample audio. Misalnya dari nilai sample 1 audio (#-1) di atas yang akan di-encoding adalah: -1 0 0 0 129 129 0 0 0 -1 -1 3d 0 sama dengan 13 byte. Coding sampel audio hasil kompresi adalah: -1 03 129 129 03 -1 -1 3d 01 adalah 9 byte. Rasio kompresinya adalah: ((13 -9) byte/ 13 byte ) x 100 % = 30 %
2.9 Kompresi Metode Difference Coding
Pada metode Difference Coding kompresi file audio dilakukan pada sampel audio dengan mengurangi nilai sampel dengan nilai sampel sebelumnya. Ada dua tahap utama kompresi dengan metode Difference Coding untuk data audio, yaitu data difference dan coding. Data difference adalah pengurangan nilai sampel audio dengan nilai sampel audio sebelumnya ke dalam nilai eksak. Coding adalah menuliskan kode yang berisi nilai sampel dengan hasil pengurangannya (Putra, 2010).
Universitas Sumatera Utara
Sebagai contoh diberikan sampel audio sebagai berikut: 40 40 40 40 40 43 43 100 102 102 102 adalah 11 byte x 8 bit adalah 88 bit. Data difference adalah selisih data ke dua dengan pertama yaitu 40 – 40 0. Data pertama dilakukan coding yaitu 40 ditambah hasil selisih menjadi: 40 0. Selanjutnya lakukan cara difference untuk data 3, 4 dan seterusnya sehingga menghasilkan kode hasil kompresi sebagai berikut: 40 0 0 0 0 3 0 57 2 0 0 0 adalah 4 byte dan 8 bit yaitu 4 byte adalah 4 x 8 bit = 32 bit. Jadi ada 36 bit hasil kompresi. Langkah: 1. Baca nilai sampel audio dari awal sampai akhir. 2. Bandingkan data sampel pertama dengan kedua. 3. Hitung selisihnya. 4. Coding data sebagai nilai sampel dengan selisihnya. 5. Ulangi langkah 2 sampai 4 sampai sampel habis. 6. Simpan hasil coding data terkompresi Contoh sampel audio adalah sebagai berikut: 40 40 40 40 40 43 43 100 102 102 102 Sampel audio ke: n1= 40
0
n2= 40 0
n3= 40 0
n4= 40 0
n5= 40 3
n6= 43
40 0 0 0 0 3 0 57 2 0 0 0 = 32 bit 0
n7= 43 57
n8= 100 2
n9= 102 0
n10= 102 0
n11= 102 Rasio kompresinya adalah: ((88 -32) byte/ 88 byte ) x 100 % = 63 %
Universitas Sumatera Utara