16 dengan cara menghilangkan redundansi atau kemunculan berulang-ulang
dari bagian file. Berikut adalah blok dasar dari kompresi data.
Gambar I.5 Blok Dasar Kompresi Data Keterangan :
Data asli: merupakan data input yang dikompresi, bisa berupa file text, file image dan sebagainya, sekaligus sebagai output dari proses dekompresi
data. Box proses kompresi data: proses data yang akan dikompresi menjadi data
yang tidak sebenarnya. Data hasil kompresi: merupakan keluaran dari proses kompresi data[4].
1.10 Standar H.264
Standar H.264 dikembangkan dan dipublikasikan oleh MPEG Motion Picture Expert Group dan VCEG Video Coding Expert Group. Standar H.264
lebih dikenal sebagai MPEG4 part 10 atau AVC Advance Video Coding. Merupakan sebuah codec video digital yang memiliki keunggulan dalam rasio
kompresi tingkat kompresi yang tinggi dengan memanfaatkan metode blok transformasi adaptif yang efektif. Rentang kerja baik data rate dan bandwidth
H.264 sama dengan standar sebelumnya, yaitu H.263. Perbedaan yang ada hanyalah pada saat entropy coding mode diset pada mode 1. Jika H.263 menggunakan
pengkodean Huffman, maka H.264 menggunakan pengkodean Context-base Adaptive Binary Arithmetic Coding CABAC. Tambahan lain dari standar H.264,
yaitu terletak pada varian macroblock yang dapat dipakai. Jika standar sebelumnya
17 hanya mengenal ukuran block 4x4, 8x8 dan 16x16, maka standar H.264 memiliki
tujuh variasi ukuran block, 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 dan 4x4. Tujuan pengembangan H.264 adalah untuk membuat suatu standar video digital yang dapat
menghasilkan kualitas video yang baik pada bit rate yang lebih kecil dibandingkan dengan standar video digital sebelumnya H.263 tanpa harus melakukan perubahan
yang komplek dan dapat diimplementasikan dengan biaya yang murah[2].
Kompresi Intraframe
Kompresi Intrafame dilakukan dengan memanfaatkan redundansi spasial yang terdapat dalam suatu frame. Redundansi ini disebabkan karena adanya
kesamaan antara sebuah pixel dengan pixel disekitarnya. Kompresi intraframe terdiri dari proses transformasi dan kuantisasi, dalam proses transformasi
digunakan Discrete Cosinus Transform DCT untuk melakukan proses transformasi dari domain waktu ke domain ruang. Kuantisasi digunakan untuk
memotong hasil transformasi, proses selanjutnya adalah pengkodean dengan menggunakan Run Length Encoding RLE dan Variable Length Coding VLC.
Tahap paling awal pada kompresi intraframe adalah persiapan blok, yaitu suatu frame dibagi menjadi blok
– blok yang tidak saling menindih. Pembagian blok ini diperlukan agar proses kompresi menjadi efisien, karena proses akan
dilakukan pada blok – blok yang relatif kecil. Di dalam proses intrafrema juga di
kenal dengan Pencocokan blok atau block matching adalah proses pembandingan blok dengan blok
– blok pada frame sebelumnya, untuk menemukan matching block. Matching block merupakan proses yang paling banyak menyita waktu selama
encoding. Matching block cukup dilakukan pada komponen kecerahan luminance dari frame. Hal ini dikarenakan mata manusia lebih peka terhadap kecerahan.
1. Langkah pertama untuk proses ini adalah membagi frame menjadi blok – blok
berukuran tertentu. Ukuran blok yang besar mengakibatkan sedikit jumlah vektor gerak yang dihasilkan. Namun, akan sulit menemukan blok yang match
dengannya dan error yang dihasilkan perbedaan blok relatif besar. Blok yang dibandingkan dengan blok
– blok pada frame referensi disebut sebagai blok target.
18 2. Langkah selanjutnya adalah menentukan search area atau daerah pencarian
pada frame referensi. Pencarian blok yang match dapat dilakukan pada seluruh daerah frame referensi. Namun karena perubahan antarframe
cenderung kecil, daerah pencarian cukup dibatasi pada posisi sekitar blok target pada frame referensi, maka ditentukan suatu maximum displacement
yang membatasi jumlah pixel maksimum pada arah vertikal dan horizontal dari posisi blok target pada frame saat ini.
3. Langkah terakhir adalah menemukan pencocokan blok pada daerah pencarian. Proses ini dilakukan dengan membandingkan target blok dengan
blok – blok pada daerah pencarian yang disebut blok kandidat, seperti
ditunjukkan pada Gambar II.6. Semakin besar displacement, semakin luas daerah pencarian, semakin besar pula peluang untuk mendapatkan
pencocokan blok yang bagus. Namun jumlah blok kandidat meningkat secara kuadratik sebanding dengan peningkatan displacement, sehingga lebih
banyak lagi pembandingan blok yang perlu dilakukan. Pencocokan blok target dengan blok
– blok kandidat pada daerah pencarian dilakukan dengan besar step tertentu, yang merupakan besar pergeseran dalam
pencarian blok. Jumlah blok kandidat, selain ditentukan oleh ukuran daerah pencarian, ditentukan pula oleh besarnya step.
Blok Target Motion
vektor
Search Area
Blok kandidat
Gambar I.6 Blok Target
19 Setelah diperoleh matching blok, maka perbedaan posisinya dengan target
blok disebut vektor gerak motion vector, Proses ini menghasilkan vektor gerak pada arah horizontal MVx dan vektor gerak pada arah vertikal MVy.
Entropy Coding
Pada standar H.264 ada dua pilihan mode, yaitu mode nol untuk pengkodean dengan VLC dan mode satu untuk CABAC Context-Base Adaptive Binary
Arithmetic Coding 1. Variable Length Encoding VLC
VLC digunakan untuk mengkodekan simbol dengan kode – kode tertentu yang
mempunyai panjang berlainan. Pengkodean ini menggunakan prinsip entropi, yaitu simbol yang sering muncul dikodekan dengan kode yang pendek dan
simbol yang jarang muncul dikodekan dengan kode yang panjang. Dengan demikian, secara keseluruhan bit yang dibutuhkan menjadi lebih sedikit. Pada
kompresi intraframe, hasil proses RLE dikodekan dengan VLC, maka jumlah bit yang disimpan atau ditransmisikan menjadi lebih kecil.
2. CABAC Context-base Adaptive Binary Arithmetic Coding Jika pada standar H.263 algoritma yang digunakan jika VLC tidak dipilih
adalah Huffman, maka pada standar H.264 digunakan CABAC Context-base Adaptive Binary Arithmetic Coding. Ini dilakukan saat entropy coding diset ke
1 satu. Untuk membuat pengkodean dengan metode CABAC, langkah
– langkahnya sebagai berikut :
1. Binarization : mengkodekan symbol- simbol kedalam biner “0” dan “1”.
2. Context Model Selection : menentukan probabilitas simbol yang telah dibinerkan.
3. Arithmetic Encoding : Suatu coder arithmetic mengencode setiap simbol dari model probabilitas, hanya yang mengacu dengan
“0” dan “1”. 4. Probability Update : model context yang dipilih diperbaharui berdasarkan
actual.
20
1.11 Quadcopter