Nim : 21060114120003
CHAPTER 4
4.1 PENDAHULUAN
Sebagian besar jaringan saat ini tidak memberikan jaminan kualitas layanan (QoS)
sehingga diperlukan mekanisme adaptasi bandwidth agar tersedia aplikasi pengiriman
multimedia yg sukses secara real-time.
Misalnya, user yang sedang dalam perjalanan ingin mengakses video yang direkam
oleh kamera pengintai dirumahnya menggunakan ponsel. Agar pemutaran video dapat
memberikan kualitas yang konstan, sistem harus kuat terhadap fluktuasi bandwidth. Bab ini
akan menjelaskan teknik yang memungkinkan aplikasi yang melibatkan transmisi multimedia
untuk mengatasi perubahan bandwidth yang signifikan.
Perbedaan utama antara streaming dan download adalah pada streaming, pemutaran
media dimulai saat data masih diterima, sehingga pemutaran bisa terganggu jika decoder
kehabisan data untuk didekode.
1. Data request permintaan dikirim ke media pengirim shg data streaming ke penerima
dimulai.
2. Client buffer loading data yang menjangkau klien tidak akan langsung didecoding.
Sebagai gantinya, klien akan menunggu sampai data yang diterima telah cukup untuk
memulai decoding.
3. Playback
Pada saat pemutaran dimulai, decoder akan memiliki sejumlah bit yang tersedia untuk
decoding. Data yang tersedia ini diterjemahkan ke dalam durasi pemutaran (misalnya, jika ada
N frame yang dikompresi dalam buffer dekoder dan K frames / detik didekodekan, maka
decoder akan dapat memutar dari buffer untuk N / K detik). Dengan demikian jumlah data yang
tersedia di buffer decoder pada waktu tertentu memberitahu kita berapa lama pemutaran dapat
dilanjutkan, bahkan jika tidak ada data yang akan diterima dari jaringan.
Asumsikan terdapat tingkat pemutaran media yang konstan, Misalnya, jumlah frame
per detik yang tetap dalam aplikasi video. Bila bandwidth jaringan lebih rendah dan jumlah bit
per frame tidak berubah, maka jumlah frame per detik yang diterima pasti akan
berkurang. Karena receiver terus memutar frame dengan laju yang sama, pada akhirnya tidak
akan ada frame yang tersisa untuk diputar di buffer penerima sehingga pemutaran akan
terganggu.
Tujuan umum mekanisme adaptasi bandwidth adalah mengatur kualitas frame yang
ditransmisikan sehingga ketika bandwidth yang tersedia berkurang, laju (dan karenanya
kualitas) frame yang dipancarkan juga berkurang.
1. Adaptation points, yaitu lokasi di jaringan dimana aliran bit menyesuaikan kebutuhan
bandwidth tertentu.
4.3.1 Trade-offs
(ii) kepentingan relative dari informasi yang dikodekan dalam aliran media
Gambar 4.2 Adaptasi bandwidth dibuat berdasarkan sumber dan informasi saluran yang
tersedia. Informasi terkait sumber diketahui lebih akurat pada pengirim, sedangkan informasi
saluran lebih akurat pada klien. Sebuah proxy, yang berada di tengah jaringan, dapat mencapai
kompromi yang baik antara adaptasi server dan klien.
GAMBAR 4.2: Perdagangan-off antara keakuratan informasi sumber dan informasi saluran yang
tersedia di berbagai lokasi jaringan.
Kedua, dua faktor utama mempengaruhi kinerja algoritma adaptasi bandwidth untuk satu klien,
yaitu
(i) granularitas dimana bandwidth dapat disesuaikan.
(ii) kecepatan perubahan yang dapat dilakukan untuk bereaksi terhadap variasi perilaku
jaringan.
Gambar 4.3 menggambarkan bahwa ketika adaptasi aktual (yaitu, perubahan tingkat di
mana data dikirim ke klien) dilakukan di server, perincian yang lebih baik dapat
dicapai. Sebaliknya, ketika adaptasi berlangsung di server waktu reaksi mungkin lebih lama
karena paket yang dihasilkan dari adaptasi akan memakan waktu lebih lama untuk sampai pada
klien.
Ketiga, Sering kali penting untuk mempertimbangkan tingkat trade-off sistem. Tidak
hanya bagaimana kualitas klien tertentu dipengaruhi oleh adaptasi bandwidth, melainkan
bagaimana adaptasi mempengaruhi kinerja jaringan secara keseluruhan.
Gambar 4.4 Jika keputusan tentang bagaimana mengubah bandwidth, dan bahkan
adaptasi itu sendiri dilakukan dekat dengan klien, sistem akan lebih mudah untuk
diukur. Namun, jika adaptasi bandwidth dilakukan dekat dengan klien, ini akan mengurangi
pemanfaatan jaringan secara keseluruhan, karena reduksi data rate hanya akan mengurangi
utilisasi yang dekat dengan klien
GAMBAR 4.3: Perbandingan fleksibilitas adaptasi bandwidth dan waktu reaksi untuk melayani satu
klien.
GAMBAR 4.4: Perbandingan skalabilitas layanan dan pemanfaatan jaringan secara keseluruhan saat
melayani banyak klien.
4.3.2 Dimana Seharusnya Adaptation points dipilih?
4.3.2.1 Pengirim
pengirim biasanya paling tidak dibatasi dalam hal penyimpanan dan pemrosesan.
Jika perubahan bandwidth diminta oleh klien, membiarkan adaptasi terjadi di server
akan menyebabkan penundaan yang signifikan dalam bereaksi yang dapat
mengurangi efektifitas adaptasi bandwidth
4.3.2.2 Klien
4.3.2.3 Proxy
bertanggung jawab untuk jumlah klien yang lebih sedikit daripada server
mendekati klien sehingga dapat merespons lebih cepat terhadap perubahan yang
mempengaruhi klien
(+) Informasi tentang status data yang didekode paling baik bila keputusan adaptasi bandwidth
dibuat oleh klien, misalnya kedatangan atau tidak kedatangan paket secara individual.
(-) adaptasi bandwidth pada klien hanya dapat membantu mengurangi kerumitan decoding
sehingga ada beberapa latency sebelum perubahan bandwidth bisa diimplementasikan.
(-) klien seperti perangkat genggam dengan daya rendah tidak memiliki daya komputasi yang
memadai untuk menerapkan proses keputusan yang rumit.
4.3.3.2 Keputusan Berbasis Proxy
(+) Proxy dapat memperkirakan keadaan jaringan (atau mendapatkan informasi ini dari klien)
kemudian memutuskan perubahan yang sesuai pada bandwidth yang akan digunakan oleh
aliran media.
(+) Proxy dapat memilih paket tertentu untuk diteruskan ke klien, mengubah parameter
transcoding, atau mengirim instruksi ke server sehingga server dapat mengubah informasi yang
dikirimkannya.
(+) berpotensi mencapai penggunaan bandwidth yang lebih baik daripada sistem yang
digerakkan oleh klien atau server.
(+) Pendekatan berbasis server memiliki sebagian besar informasi tentang sumber (misalnya,
tentang titik operasi kemungkinan-distorsi) sehingga dapat bekerja dengan algoritma adaptasi
yang lebih fleksibel dan efisien dalam hal pengodean sumber.
(+) server dapat mengatur koneksi dengan klien yang berbeda secara keseluruhan untuk
meningkatkan pemanfaatan bandwidth secara keseluruhan.
(-) server mungkin tidak memiliki informasi yang dapat diandalkan atau tepat waktu tentang
keadaan jaringan di dekat klien.
Kriteria utama untuk evaluasi kinerja mekanisme adaptasi bandwidth adalah kualitas
media yang dihasikna di receiver dengan adanya variasi bandwidth yang umum.
Evaluasi kualitas juga lebih rumit setelah mekanisme adaptasi bandwidth diberlakukan
karena mekanisme ini bersifat dinamis sehingga adaptasi bandwidth beroperasi hanya jika
bandwidth turun di bawah tingkat tertentu dan menyebabkan perubahan pada kualitas media
(misalnya, dalam konteks video, variasi dalam frame rate, resolusi frame, kualitas frame).
Penundaan end-to-end yang lebih lama menyebabkan lebih banyak unit multimedia
(misalnya, frame video) yang disimpan di buffer decoder sehingga aplikasi dapat menyerap
variasi bandwidth jangka pendek.
Penundaan end-to-end yang lama merupakan solusi praktis hanya untuk aplikasi
transmisi satu arah. Untuk komunikasi dua arah, penundaan yang lama akan membatasi
interaktivitas. Dalam kasus komunikasi satu arah, keterlambatan end-to-end yang berlebihan
menyebabkan latensi awal yang lebih tinggi
4.3.4.3 Kompleksitas
4.3.4.4 Penyimpanan
Dalam bandwidth sistem kabel digital diharapkan dapat diandalkan dan ada interaksi
minimal antara receiver dan pengirim. Sebagai gantinya, arsitektur adaptasi bandwidth yang
diusulkan sering memerlukan informasi tambahan untuk dipertukarkan antara klien dan
pengirim.
1. Tipe frame (misalnya, I-, P-, atau B-frame) yang akan dipilih atau apakah
frame tersebut harus dilewati, yaitu tidak dikodekan sama sekali.
2. Mode yang akan digunakan untuk setiap MB, misalnya Intra, Inter, Skip, dll
3. Jika MB dikodekan dalam mode INTRA,
a) Berapa ukuran langkah kuantisasi (QP) yang harus digunakan untuk
mengkodekan koefisien DCT pada masing-masing blok?
b) Jika prediksi intra diperbolehkan, misalnya, di H.264, bagaimana melakukan
intra predictio n; Artinya, bagaimana cara menghasilkan blok referensi dari
blok tetangga dalam frame yang sama.
4. Jika MB dikodekan dalam mode INTER,
a) Kompensasi gerak apa yang harus digunakan, misalnya dengan atau tanpa
tumpang tindih, pemilihan kerangka referensi, jangkauan pencarian, dan ukuran
blok?
b) Bagaimana kode kerangka sisa, misalnya QP mana yang harus dipilih?
Singkatnya, pilihan algoritma kontrol tingkat yang sesuai bergantung pada aplikasi
multimedia, terutama mengenai apakah delay dibatasi. Misalnya, pendekatan yang rumit dapat
digunakan untuk pengkodean off-line. Namun, pendekatan heuristik mungkin lebih praktis
untuk komunikasi multimedia live live.
4.4.2 Transcoding
Aplikasi transcoding yang khas adalah menyesuaikan laju bit dari aliran video yang
dikompresikan ke bandwidth kanal yang dikurangi. Jelas, pertama-tama kita dapat
merekonstruksi video kembali ke domain piksel dengan mendekodekan bit input yang
dikompres dan kemudian mengkodekan ulang video yang didekode untuk memenuhi bit rate
target. Rate Control yang dijelaskan sebelumnya dapat digunakan pada tahap pengkodean.
Namun, keseluruhan proses (decoding dan encoding) komputasi sangat mahal, dan teknik yang
lebih efisien telah dikembangkan sehingga menggunakan kembali informasi yang terdapat
pada aliran bit input asli.
Kelemahan utama dari teknik transkoding yang lebih efisien ini adalah masalah drift.
Drift dibuat jika frame referensi yang digunakan untuk kompensasi gerak pada encoder berbeda
dengan yang digunakan pada decoder. Hal ini terjadi, misalnya, ketika transcoder hanya
meminta koefisien DCT residual dengan QP yang lebih besar untuk mengurangi laju bit output.
Ketika sebuah decoder menerima aliran bit transkode, ia merekonstruksi frame pada kualitas
yang dikurangi dan menyimpannya ke dalam buffer frame. Jika frame ini digunakan sebagai
prediksi untuk frame masa depan, kesalahan mismatch akan terdapat sisa frame yang
diprediksi, yang mengarah ke kualitas terdegradasi untuk semua frame berikutnya sampai
frame berikutnya. Berdasarkan trade-off antara kompleksitas dan kualitas coding, kami secara
singkat mendeskripsikan dua arsitektur transcoding dasar, yaitu loop loop terbuka dan
transkode tertutup.
Gambar 4.5a menunjukkan arsitektur loop terbuka berdasarkan pendekatan
requantization. Aliran bit diquantisasi dan diminta untuk menyesuaikan target bit
rate. Pendekatan loop terbuka lainnya adalah membuang koefisien DCT frekuensi tinggi untuk
mengurangi laju. Semua operasi ini bekerja pada koefisien DCT secara langsung, dan dengan
demikian beban komputasi ringan namun arsitektur ini melayang.
GAMBAR 4.5: Arsitektur transkoding untuk reduksi bit-bit [4]: (a) Open loop. (b) loop tertutup
Metode pengkodean yang telah dibahas sejauh ini dalam bab ini bertujuan untuk
mengoptimalkan kualitas media dengan bit rate tetap. Ini menimbulkan masalah ketika
beberapa pengguna mencoba mengakses sumber media yang sama melalui tautan jaringan yang
berbeda dan dengan kekuatan komputasi yang berbeda. Bahkan dalam kasus pengguna tunggal
yang mengakses satu sumber media melalui hubungan dengan kapasitas saluran yang
bervariasi, bergantung pada algoritma kontrol tingkat yang kompleks dan kompleks untuk
membuat penyesuaian tarif secara real time mungkin tidak praktis (misalnya, jika perubahan
tingkat harus dilakukan terjadi dalam jangka waktu yang sangat singkat). Oleh karena itu,
pengkodean skalabel dirancang untuk memfasilitasi adaptasi bandwidth pada rentang
kecepatan bit tertentu, dan juga memberikan ketahanan kesalahan untuk kesalahan
transmisi potensial .
Scalable coding, atau coding berlapis, menentukan format multilayer di mana urutan
video dikodekan menjadi lapisan dasar dan satu atau lebih lapisan penyempurnaan. Lapisan
dasar memberikan tingkat kualitas minimum yang dapat diterima, dan setiap lapisan tambahan
tambahan secara bertahap memperbaiki kualitasnya. Dengan demikian, degradasi anggun
dalam menghadapi tetes bandwidth atau kesalahan transmisi dapat dicapai dengan
mendekodekan hanya lapisan dasar, sekaligus membuang satu atau lebih lapisan
penyempurnaan. Lapisan penyempurnaan tergantung pada lapisan dasar dan tidak dapat
didekode jika lapisan dasar tidak diterima. Aliran bit terkompresi terukur biasanya berisi
beberapa himpunan bagian yang disematkan, yang masing-masing mewakili konten video asli
dalam resolusi amplitudo tertentu (disebut skalabilitas SNR), resolusi spasial (skalabilitas
spasial)resolusi temporal (skalabilitas temporal), atau resolusi frekuensi (skalabilitas frekuensi
atau, dalam beberapa kasus, partisi data). Scalable coders dapat memiliki granularity kasar atau
granularity yang bagus. Dalam skalabilitas granularitas MPEG-4 yang baik (FGS), aliran bit
tahap tambahan dapat terpotong pada titik mana pun, di mana kualitas video yang
direkonstruksi meningkat dengan jumlah bit yang diterima.
Dalam pendekatan ini, setiap sumber media hanya dikompresi menjadi beberapa aliran
bit nonscalabel independen dengan kecepatan bit dan kualitas yang berbeda. Selama transmisi,
server beralih ke aliran bit tertentu yang transmisi menghasilkan distorsi direkonstruksi
minimum berdasarkan perkiraan karakteristik bandwidth dan kehilangan saluran aktual.
Idealnya, sekali perubahan bandwidth jaringan terdeteksi, server akan langsung beralih ke
aliran yang lebih tepat untuk segera mencerminkan perubahannya. Namun, karena prediksi
gerak, beralih antara aliran bit pada lokasi yang sewenang-wenang, seperti frame P, dapat
mengenalkan efek drift yang parah karena frame referensi berbeda pada encoder dan decoder.
Cara termudah untuk mencapai switching bebas drift adalah dengan memasukkan I-
frame secara berkala di setiap aliran dan membiarkan perpindahan dari arus ke arus hanya
terjadi pada frame I tersebut. Jelas, karena permintaan adaptasi hanya berlaku saat frame I
tercapai, ini meningkatkan latency adaptasi bandwidth. Untuk memberikan adaptasi yang lebih
fleksibel, frekuensi I-frame harus ditingkatkan dengan biaya bit rate yang meningkat secara
signifikan untuk mencapai kualitas yang sama. Dengan demikian, memungkinkan peralihan
aliran yang lebih efektif datang dengan mengorbankan penurunan kualitas video untuk tingkat
bit target yang diberikan. Selain itu, fleksibilitas adaptasi bandwidth juga bergantung pada
jumlah bit stream yang berbeda yang tersedia, masing-masing dikodekan pada bit rate yang
berbeda. Semakin sedikit aliran bit yang tersedia, penyesuaian bandwidth level yang lebih
akurat dan lebih baik dapat didukung.Inefisiensi pengkodean I-frame menghasilkan kebutuhan
penyimpanan yang jauh lebih besar pada server media bila jumlah bit stream yang didukung
berukuran besar. Trade-off antara efisiensi pengkodean dan fleksibilitas switching menjadi
pertimbangan utama dalam desain pendekatan switching bebas-drift.
Pendekatan yang lebih efisien untuk switching bebas drift bertujuan untuk
menghilangkan overhead yang terkait dengan I-frame, yang bahkan ada untuk transmisi normal
tanpa beralih antara aliran bit. Untuk memudahkan perpindahan pada antar frame (yaitu, P- /
B-frames), aliran bit ekstra dibuat pada setiap titik switching yang telah ditentukan sebelumnya
pada biaya tingkat yang meningkat saat terjadi switching, sekaligus menjaga efisiensi
pengkodean untuk transmisi normal pada saat yang sama atau dekat dengan tanpa mendukung
fungsionalitas switching. Salah satu cara adalah dengan mengkodekan perbedaan frame
referensi pada titik-titik switching dan mentransmisikan ini sebagai bit stream tambahan, yang
dapat digunakan untuk kompensasi drift pada decoder. Ketidakcocokan dapat dihapus jika
kompresi lossless diterapkan. Cara lain adalah dengan mengenalkan P-frame yang dikodekan
secara khusus, yang disebut S-frame,untuk mencapai switching pada lokasi antar frame.
P sebagai target frame. Pendekatan ini tidak bisa sepenuhnya menghilangkan drift. Namun,
dengan mengurangi QP dari S-frame, jumlah drift dapat dikontrol dan dibuat relatif
kecil. Kelemahan lain dari pendekatan ini adalah bahwa tingkat yang dibutuhkan untuk S-
frame bisa sangat besar karena QP kecil yang dibutuhkan. Frame SP- / SI yang akan
diperkenalkan pada bagian selanjutnya memberikan pendekatan switching drift-free yang
ditingkatkan ke S-frame. Selain beralih antara aliran bit yang tidak dapat dihitung, pengalihan
aliran bit juga dapat dilakukan untuk beberapa aliran terukur yang dikodekan secara mandiri.
GAMBAR 4.6: Beralih dari aliran bit 1 ke bit stream 2 melalui frame yang dikodekan secara khusus:
(a) frame S dan (b) frame SP.
4.4.4.2 Gambar SP / SI
Profil diperpanjang H.264 / MPEG-4 bagian 10 AVC [5] memperkenalkan dua tipe
frame baru yang disebut sebagai frame SP dan frame SI. SP- dan SI-frame memfasilitasi
perpindahan antara beberapa bit stream berkode independen dan juga menyediakan
fungsionalitas "VCR", seperti akses acak, fast forward, fast backward, dan sebagainya.
Dalam setiap bit stream yang dikodekan, frame SP dibuat pada titik-titik switching
dalam dua tipe yang berbeda, yaitu frame SP primer dan frame sekunder SP (lihat Gambar
4.6b). Frame SP utama (frame SP 1, t dan SP 2, t pada Gambar 4.6b) dibuat dengan prediksi
gerak-kompensasi dari frame yang direkonstruksi sebelumnya dalam aliran bit yang sama,
sedangkan frame sekunder sekunder (frame SP 12, t sebagai contoh) dihasilkan, dengan nilai
direkonstruksi identik sebagai kerangka utama SP (frame SP 2, t ), dengan menggunakan nilai
yang direkonstruksi sebelumnya dari aliran bit yang lain. Frame SP utama dikodekan dengan
efisiensi pengkodean yang hampir sama dengan frame P yang sesuai. Perbedaan antara frame
SP dan P- / S terletak pada hal itu, karena pengkodean khusus dari frame SP sekunder, pasangan
frame SP dapat direkonstruksi secara identik bahkan jika diprediksi menggunakan frame yang
berbeda. Dibandingkan dengan I-frame, SP-frame dapat mencapai fungsi peralihan yang sama
dengan bit yang lebih sedikit secara signifikan dengan memanfaatkan pengkodean prediksi
gerak-kompensasi. Sebuah alternatif untuk kerangka SP sekunder adalah frame SI, dengan
hanya menggunakan prediksi intra untuk menghasilkan nilai rekonstruksi yang sama seperti
frame SP primer yang sesuai. Hal ini terutama digunakan ketika prediksi gerak tidak efisien,
seperti beralih antara bit stream yang mewakili rangkaian video yang sama sekali berbeda,atau
untuk akses acak di mana decoding dari frame saat ini tidak bergantung pada frame
sebelumnya.
Sebagai gantinya, aliran bit lapisan dasar "berubah morf" ke dalam aliran bit resolusi
tinggi, di mana decoder standar digunakan (misalnya, dekoder MPEG-2 pada contoh kita).
Perhatikan juga bahwa tingkat kualitas pada decoder ditentukan dengan tepat oleh dua (atau
lebih) versi yang dikodekan semula.di mana decoder standar digunakan (misalnya, dekoder
MPEG-2 dalam contoh kita). Perhatikan juga bahwa tingkat kualitas pada decoder ditentukan
dengan tepat oleh dua (atau lebih) versi yang dikodekan semula.di mana decoder standar
digunakan (misalnya, dekoder MPEG-2 dalam contoh kita). Perhatikan juga bahwa tingkat
kualitas pada decoder ditentukan dengan tepat oleh dua (atau lebih) versi yang dikodekan
semula.
4.5 KESIMPULAN
Dalam bab ini, kita telah membahas teknik alternatif untuk adaptasi bandwidth dan manfaat
relatifnya. Poin utama yang dibuat dalam bab ini dirangkum sebagai berikut.
• Arsitektur adaptasi bandwidth memiliki tiga keputusan desain dasar, yaitu pemilihan
adaptation points, decision agents, dan source coding techniques. Adaptasi bandwidth dibuat
berdasarkan sumber dan informasi saluran yang tersedia. Informasi sumber yang terkait
diketahui lebih akurat pada pengirim, sedangkan informasi saluran lebih akurat pada
klien. Sebuah proxy, yang berada di tengah jaringan, dapat mencapai kompromi yang baik
antara adaptasi server dan klien.
• Jika pengirim adalah decision agents, ia akan memiliki akses ke informasi sumber yang lebih
akurat, namun mungkin tidak memiliki informasi yang dapat diandalkan atau tepat waktu
mengenai status jaringan di dekat receiver. Pendekatan ini membantu meningkatkan utilisasi
bandwidth secara keseluruhan saat beberapa receiver dilayani oleh pengirim. Sebaliknya, jika
klien bertindak sebagai decision agents, ada potensi untuk adaptation points yang lebih baik
mengingat semakin tinggi akurasi jaringan dan informasi kedatangan paket. Namun, ketika
keputusan yang dibuat oleh penerima harus dilakukan oleh pengirim, latency yang terlibat
dapat menyebabkan efisiensi adaptasi yang lebih rendah.
• Rate control techniques digunakan selama proses pengkodean untuk menyesuaikan parameter
pengkodean agar memenuhi target tingkat pengkodean. Teknik transcoding, yang digunakan
pada server atau proxy, mengambil aliran media terkompresi sebagai masukan dan
mengubahnya menjadi aliran terkompresi lainnya. Scalable coding memberikan adaptasi
bandwidth yang fleksibel pada rentang bit rate tertentu daripada pada bit rate tetap.
REFERENSI
[1] Y. J. Liang, N. Farber, and B. Girod. Adaptive playout scheduling and loss
concealment for voice communication over IP networks. IEEE Transactions on
Multimedia, 5(4), December 2003.
[2] J. Chakareski, P. A. Chou, and B. Girod. Rate-distortion optimized streaming from
the edge of the network. In Proc. Workshop on Multimedia Signal Processing,
December 2002.
[3] C.-Y. Hsu, A. Ortega, and M. Khansari. Rate control for robust video transmission
over burst-error wireless channels. IEEE J. Selected Areas in Communications,
17(5):1–18, May 1999.
[4] A. Vetro, C. Christopoulos, and H. Sun. Video transcoding achitectures and
techniques: an overview. IEEE Signal Processing Magazine, 20(2):18–29, March
2003.
[5] ISO/IEC 14496-10 and ITU-T Rec. H.264. Advanced video coding. 2003.