6
BAB II DASAR TEORI
2.1 Video streaming
Video streaming adalah sekumpulan dari gambar yang dikirimkan dalam bentuk yang telah dikompresi melalui suatu jaringan dan ditampilkan oleh player
ketika video tersebut telah diterima oleh user yang membutuhkan. Player merupakan aplikasi khusus yang melakukan dekompresi data berupa video. Sebuah
player dapat berupa sebuah perangkat lunak atau bagian dari browser. Media streaming telah ada selama 70 tahun. Media streaming dapat berupa
video ataupun audio. Pertama kali video diolah dan ditransmisikan dalam bentuk analog. Munculnya digital IC Integrated Circuit dan berkembangnya komputer
telah membantu terbentuknya video digital, salah satu penerapan video digital yang digunakan dalam transmisi pada jaringan komputer adalah video streaming .
Streaming dapat dianggap sebagai bagian dari webcasting, namun streaming tidak harus menggunakan web. Aliran data dapat disampaikan melalui wireless jaringan
atau intranet pribadi [6].
2.2 Coder
dan Decoder
CODEC Coder-Decoder adalah suatu metode yang digunakan untuk melakukan sampling terhadap sinyal analog kemudian sebelum ditransmisikan
sinyal analog tersebut dikonversi ke dalam bit-bit digital, lalu mengubahnya kembali agar dapat digunakan. CODEC mempunyai fungsi untuk mengecilkan
compress file berupa video dan audio ke dalam ukuran data yang lebih kecil
Universitas Sumatera Utara
7
kemudian mengembalikannya keukuran semula decompress. Prosedur pengiriman video terkompresi ditunjukkan pada Gambar 2.1 [6].
Gambar 2.1 Prosedur Pengiriman Data Video Terkompresi [6]
CODEC digunakan untuk menghemat bandwidth. Namun, resikonya suara dan gambar yang dihasilkan menjadi kurang jernih. Terdapat 2 jenis CODEC, yaitu
lossy CODEC dan lossless CODEC. Berikut ini akan dibahas jenis CODEC tersebut.
2.2.1 Lossy CODEC
Lossy CODEC merupakan jenis kompresi dengan melakukan pengurangan ukuran data dari data yang sebenarnya. Banyak CODEC yang popular termasuk
dalam katagori ini. CODEC ini akan mengurangi kualitas data. Biasanya CODEC ini digunakan untuk menyimpan data pada media penyimpanan yang berukuran
terbatas seperti CD-ROM dan DVD.
2.2.2 Lossless CODEC
Berbeda halnya dengan kompresi Losy CODEC, Lossless CODEC merupakan jenis kompresi tanpa terjadi pengurangan data. Akibatnya, ukuran data
Lossless CODEC lebih besar dari Lossy CODEC. Penggunaan lossless CODEC
Universitas Sumatera Utara
8
sering digunakan pada video yang masih memerlukan editing atau penggunaan dalam aplikasi kedokteran yang harus menampilkasn citra asli.
2.3 Kompresi Video
Ada banyak redudansi dalam sinyal video digital. Secara rinci, terdapat korelasi yang besar antara piksel tetangga spasial dan frame berikutnya
temporal. Redundansi berarti informasi yang umum ditemukan pada lebih dari satu gambar atau video. Gambar 2.2 menunjukkan data video berdasarkan spatial
dan temporal [7].
Gambar 2.2 Spatial dan Temporal Dari Urutan Suatu Gambar [7]
Banyak teknik pengkodean kompresi video telah dikembangkan untuk mengurangi redudansi diantaranya adalah transform coding, entropi coding, loop
filter, dll.. Gambar 2.3 mengilustrasikan garis waktu untuk teknik kompresi [8].
Gambar 2.3 Perkembangan Teknik Kompressi Video [8]
Universitas Sumatera Utara
9
2.4 Standar Kompresi Video
ITU-T International Telecommunication Union – Telecommunication Sector membuat beberapa standar yang direkomendasikan untuk kompresi video.
Beberapa standar tersebut diantaranya adalah H.261,H.263,H.264, dan H.265. Berikut akan dibahas jenis standar tersebut:
2.4.1 Kompresi H.261
Standar H.261 adalah standar yang diterbitkan oleh ITU-T pada tahun 1990. Standar H.261 didesain untuk kompresi video yang akan ditansmisikan
melalui jaringan ISDN Integrated Services Digital Network dengan bandwidth sebesar pK64 Kbits, dimana p berkisar antara 1 sampai 30. Gambar 2.4
menunjukkan komponen utama yang digunakan untuk code dan decode bitstreams H.261 berdasarkan dokumentasi ITU [9].
Gambar 2.4 Blok Diagram H.261 Menurut Rekomendasi ITU [9]
Standar H.261 ini diimplementasikan untuk aplikasi conference dan videophone. Pengiriman video melalui H-261 ISDN berbeda dengan H.263.
Universitas Sumatera Utara
10
H.261 di rancang untuk pengiriman video melalui jaringan ISDN Integrated Services Digital Network yang merupakan standar video coding yang dibuat oleh
CCITT Consultative Commitee for International Telephone and Telegraph. H.261 merekomendasikan sebuah standar coding untuk pengiriman data
dengan kelipatan m K 384Kbps m=1,2,..5 dan dirancang untuk video conference. Kecepatan bitrate antara p K 64 Kbps. Dimana p adalah frame rate antara 1 sampai
30. Susunan frame H.261 berurutan dimana tiap - tiap 3 buah frame I dibatasi dengan 1 buah interframe P [9].
2.4.2 Kompresi H.263
Pada Februari 1995 ITU-T SG15 mengeluarkan standar H.263 yang dirancang untuk penggunaan komunikasi bitrate namun tidak pernah berjalan
dengan baik ketika melalui jaringan POTS Plain Old Telephone Service. Standar H.263 telah menggantikan standar H.261 untuk video conference dibeberapa
aplikasi yang mendominasi standarisasi untuk beberapa aplikasi internet video streaming sekarang ini.
Prinsip kerja H.263 yaitu video frame akan ditangkap di sumber pengirim dan di encode dikompresi dengan video encoder. File video yang terkompres
kemudian dikirimkan melalui jaringan atau saluran telekomunikasi dan di decode dekompresi menggunakan video decoder. Frame yang di decode ini yang
kemudian akan di tampilkan. Pada saat ini, cukup banyak standar yang ada, masing-masing di desain
untuk keperluan tertentu. Masing-masing standar pun memiliki prinsip kerja yang berbeda. Gambar 2.5 menunjukkan blok diagram CODEC H.263 [9].
Universitas Sumatera Utara
11
Gambar 2.5 Blok Diagram H.263 [9]
2.4.3 Kompresi
H.264
CODEC H.264 dapat melakukan proses decoding secara lengkap, inverse transform untuk menghasilkan sebuah urutan video yang telah di-encode. Encoder
pada H.264 menggunakan prediksi intra-frame atau estimasi gerak untuk memprediksi piksel dari setiap blok gambar.
Prediksi intra-frame menggunakan piksel blok tetangga untuk memprediksi piksel dari blok saat ini. Perbedaan antara piksel diprediksi dan piksel yang
sebenarnya berubah menjadi domain frekuensi, menghasilkan blok koefisien frekuensi. koefisien ini terkuantisasi, dan bitstream output dikompresi
menggunakan pengkodean entropy. Ada dua jenis entropy coder pada CODEC H.264 yang dapat digunakan.
Dua jenis tersebut yaitu context adaptive based arithmetic coding CABAC dan context adaptive variable length coding CAVLC. Gambar 2.6 menunjukkan blok
diagram CODEC H.264 [10].
Universitas Sumatera Utara
12
Gambar 2.6 Blok Diagram H.264 [10]
2.4.4 Kompresi H.265
H.265 atau High Efficiency Video Coding HEVC merupakan CODEC yang mimilii kualitas video yang setara dengan CODEC yang ada saat ini yaitu
H.264 namun hanya membutuhkan setengah bandwidth dari CODEC lama tersebut. Cara Kerja H.265 ini sama seperti H.264 dan Mpeg-2, H.265 menggunakan
3 jenis frame yaitu : I-,B-,dan P-frame dalam sekumpulan gambar, menggabungkan ke dua elemen kompresi intra dan inter frame. Efesiensi yang diterapkan pada
H.265 diantaranya mengunakan coding tree block CTB dan intra prediction direction [1]. Untuk lebih jelasnya, dapat dilihat sebagai berikut.
1. Coding Tree Blocks, sebelumnya H.264 menggunakan macro block dengan ukuran maksimalnya yaitu 16K 16 pixel. Dengan CTB, ukuran maksimal
standar H.265 ialah 64 K 64 piksel. Gambar 2.7 memperlihatkan perbedaan macro block pada H.264 dengan tree block pada H.265 [1].
Universitas Sumatera Utara
13
Gambar 2.7 Perbandingan Macro Block a dan Tree Block b [1]
2. Lebih banyak intra prediction direction, H.264 menggunakan 9 intra prediction direction sedangkan H.265 menggunakan lebih dari 35 intra prediction
direction. Gambar 2.8 memperlihatkan perbedaan antara intra prediction direction pada CODEC H.264 dengan H.265 [1].
a b
Gambar 2.8 Intra Prediction Direction H.265 a dan H.264 b [1]
Pembahasan secara singkat di atas dapat diilustrasikan menggunakan pendekatan berbasis diagram blok yang ditunjukkan pada Gambar 2.9 [1].
Universitas Sumatera Utara
14
Gambar 2.9 Blok Diagram CODEC H.265 [1]
2.5 Konsep Kompresi Interframe
Kompresi interframe merupakan kompresi yang terpenting saat proses kompresi video. Konsep dasar kompresi interframe menggunakan redudansi
temporal yang terdapat dalam sekelompok frame. Metode yang digunakan adalah sebagai berikut:
2.5.1 Prediksi Dari Frame Video Sebelumnya Difference Coding
Metode paling sederhana dari prediksi temporal adalah dengan menggunakan frame sebelumnya sebagai prediktor untuk frame sekarang. Dua
frame berturut-turut dari urutan video yang ditampilkan pada Gambar 2.10 dan Gambar 2.11. Frame 1 digunakan sebagai prediktor untuk residu frame 2 yang
dibentuk dengan mengurangkan prediktor frame 1 dengan frame sekarang frame 2 ditunjukkan pada Gambar 2.12 [7].
Universitas Sumatera Utara
15
Gambar 2.10 Frame ke-1 [7]
Gambar 2.11 Frame ke-2 [7]
Gambar 2.12 Selisih Besar Piksel Pada Gambar 2.10 dan Gambar 2.11 [7]
2.5.2 Estimasi Dan Kompensasi Gerak
Perubahan antara frame video dapat disebabkan oleh gerakan objek misalnya sepeda yang bergerak, lengan bergerak, kamera motion panning, tilt,
zoom, rotasi, dan perubahan pencahayaan. Perubahan pergerakan tersebut memungkinkan untuk memperkirakan lintasan setiap piKel video, medan lintasan
pixel dikenal sebagai aliran optik.
Universitas Sumatera Utara
16
Gambar 2.13 menunjukkan medan aliran optik untuk frame dari Gambar 2.10 dan Gambar 2.11 [7].
Gambar 2.13 Medan Aliran Optik [7]
Jika medan aliran optik secara akurat dikenal, dimungkinkan membentuk prediksi yang akurat dari sebagian besar piksel frame dengan memindahkan setiap
pixel dari kerangka acuan di sepanjang vektor aliran optik. Untuk membentuk kompensasi gerak yang akurat dibutuhkan komputasi secara intensif .
Estimasi gerak motion estimation merupakan teknik kompresi
interframe yang memprediksi sebuah frame dari frame sebelumnya reference frame , dengan mengestimasi gerakan blok – blok antar frame tersebut. Frame
dibagi menjadi blok – blok yang tidak overlap. Tiap blok dibandingkan dengan blok – blok berukuran sama, pada frame sebelumnya dengan melakukan
pencocokan blok block matching . Dalam melakukan pencocokan tersebut, lokasi dari blok yang paling mirip pada frame referensi reference frame berbeda dari
lokasi blok target target block. Perbedaan relatif posisi ini disebut vektor gerak motion vector. Gambar 2.14 menunjukkan contoh vektor gerak [7].
Universitas Sumatera Utara
17
Gambar 2.14 Vektor gerak [7]
Vektor geraknya bernilai nol jika posisi blok target dan blok yang match sama. Ketika mengkodekan tiap blok dari frame yang diprediksi, vektor gerak yang
menunjukkan posisi blok yang match pada frame referensi, dikodekan pada posisi blok yang match pada frame referensi, dikodekan pada posisi target blok itu sendiri,
maka terjadi kompresi, karena jumlah bit yang diperlukan untuk mengkodekan vektor gerak lebih sedikit daripada untuk mengkodekan suatu blok secara utuh.
Pada dekompresi, dekoder menggunakan vektor gerak untuk menemukan matching block pada frame referensi dan menyalin matching block tersebut ke
posisi yang sesuai pada frame yang sedang diprediksi. Dengan demikian, suatu frame prediksi tersusun atas blok – blok dari frame sebelumnya.
2.6 Konsep Kompresi Intraframe
Selain kompresi interframe dibutuhkan kompresi intraframe untuk melakukan kompresi pada bidang spatial. Konsep dasar kompresi intraframe
menggunakan redudansi spatial yang terdapat dalam sekelompok block di dalam satu frame. Beberapa teknik intraframe di antaranya discrete cosine transform dan
kuantisasi.
Universitas Sumatera Utara
18
2.6.1 Discrete Cosine Transform DCT
Prinsip dasar yang dilakukan dengan Discrete Cosine Transform DCT adalah mentransformasikan data dari domain ruang ke domain frekuensi. Discrete
Cosine Transform DCT beroperasi pada X blok N × N sampel dan menghasilkan matrik Y. DCT dapat dirumuskan sebagai berikut [7]:
Y = AXA
T
2.1 X=A
T
YA 2.2
dimana: X= matrik samples,
Y= matrik hasil transformasi A= N K N matriks transformasi
Untuk mencari elemen dari matrik A dapat menggunakan persamaan berikut [7]: A
ij
= C
i
2.3 dimana:
C
i
= = 0 2.4
C
i
= 0 2.5
Persamaan 2.1 dan 2.2 dapat ditulis dalam bentuk penjumlahan yaitu [7]:
= ∑
∑ cos
cos
2.6
= ∑
∑ cos
cos
2.7
2.6.2 Kuantisasi
Proses kuantisasi merupakan proses untuk mengurangi jumlah bit yang diperlukan untuk menyimpan suatu nilai dengan memperkecilnya. Proses ini
Universitas Sumatera Utara
19
diterapkan pada keluaran proses DCT. Kuantisasi dilakukan dengan membagi keluaran proses DCT dengan suatu nilai yang ditetapkan dalam matriks kuantisasi
atau disebut quantum. Kuantisasi uniform secara umum dapat dirumuskan dengan [7]:
Z = round 2.8
dimana: Z= Nilai terkuantisasi
Y= Nilai DCT Q= table kuantisasi
2.7 Entropy Coder
Entropy encoder mengkonversi serangkaian simbol yang mewakili unsur urutan video menjadi bitstream terkompresi yang cocok untuk transmisi atau
penyimpanan. Beberapa teknik entropy coder antara lain Huffman coding dan context adaptive binary arithmetic coding:
2.7.1 Huffman Coding
Kode Huffman pada dasarnya merupakan kode prefiks prefix code. Kode prefiks adalah himpunan yang berisi sekumpulan kode biner, dimana pada kode
prefik ini tidak ada kode biner yang menjadi awal bagi kode biner yang lain. Kode prefiks biasanya direpresentasikan sebagai pohon biner yang diberikan nilai atau
label. Untuk cabang kiri pada pohon biner diberi label 0, sedangkan pada cabang kanan pada pohon biner diberi label 1.
Universitas Sumatera Utara
20
Rangkaian bit yang terbentuk pada setiap lintasan dari akar ke daun merupakan kode prefiks untuk karakter yang berpadanan. Pohon biner ini biasa
disebut pohon Huffman. Langkah-langkah pembentukan pohon Huffman adalah sebagai berikut [11] :
1. Baca semua karakter di dalam teks untuk menghitung frekuensi kemunculan setiap karakter. Setiap karakter penyusun teks dinyatakan sebagai pohon
bersimpul tunggal. Setiap simpul di-assign dengan frekuensi kemunculan karakter tersebut.
2. Terapkan strategi algoritma greedy sebagai berikut : Gabungkan dua buah pohon yang mempunyai frekuensi terkecil pada sebuah akar. Setelah
digabungkan akar tersebut akan mempunyai frekuensi yang merupakan jumlah dari frekuensi dua buah pohon-pohon penyusunnya.
3. Ulangi langkah 2 sampai hanya tersisa satu buah pohon Huffman. Agar pemilihan dua pohon yang akan digabungkan berlangsung cepat, maka
semua yang ada selalu terurut menaik berdasarkan frekuensi.
2.7.2 Context Adaptive Binary Arithmetic Coding CABAC
CODEC H.261 dan CODEC H.263 menggunakan Huffman Coding untuk pembentukan bitstream. Sedangkan context-based adaptive binary aritmethic
coding CABAC digunakan pada CODEC H.265 dan CODEC H.264. CABAC adalah suatu bentuk coding untuk membentuk bit-bit tertentu
untuk selanjutnya di salurkan ke jaringan berdasarkan prinsip aritmethic coding. Untuk lebih jelasnya, prinsip kerja CABAC ditunjukkan pada Gambar 2.15.
Universitas Sumatera Utara
21
Gambar 2.15 Blok Diagram CABAC [1]
CABAC terdiri atas 3 bagian coding yaitu binarization, context modeling, binary aritmethic [1].
1. Binarization Pengurangan alphabet dilakukan oleh binarization untuk tiap non binary element menghasilkan suatu intemediate unik codeword biner
untuk unsur sintaksis yang ditentukan yang disebut bin string. 2. Context modeling digunakan untuk membersihkan interface antara
modeling dan model. Setiap distribusi model akan diberi simbol yang kemudian didalam langkah coding selanjutnya, memandu coding engine to
generate suatu urutan bit sebagai code pada simbol menurut distribusi
model.
3. Binary Arimethic Coding adalah berdasarkan pada prinsip pengulangan interval [lower, upper yang melibatkan operasi perkalian dasar dan juga
berdasar pada arithmethic coding.
Universitas Sumatera Utara
22
2.8 Bitrate Video
Bitrate video adalah jumlah jumlah bit yang diproses per satu satuan waktu. Bitrate video dapat dikatakan dengan transfer speed, kecepatan koneksi,
bandwidth, throughput maksimum. Bitrate juga bisa diartikan sebagai jumlah bit yang diproses dalam satu satuan waktu untuk mewakili media seperti video dan
audio setelah dilakukan kompresi. Satuannya adalah bit per second bps. Kualitas video diatur dalam proses encoding videonya. Semakin tinggi bitrate maka akan
semakin banyak informasi data videonya. Oleh karena itu, gambar akan menjadi semakin baik kedalaman warnanya [12].
2.9 Konsep TCPIP