BAB 1 PENDAHULUAN
1.1
Latar Belakang Masalah
Teknologi komunikasi digital telah berkembang dengan sangat pesat. Telepon seluler yang pada awalnya hanya memberikan layanan komunikasi suara, sekarang sudah bisa memberikan layanan dalam bentuk komunikasi suara dan juga visual. Selain melalui komunikasi selular, pengiriman (streaming) video dengan kualitas yang baik melalui internet juga sudah dianggap sebagai suatu keharusan, selain kemampuannya mengirimkan data dan suara. Tuntutan kemampuan pengiriman video juga berkembang ke bidang lainnya. Teknologi penyiaran televisi yang selama ini dilakukan secara analog pun, mulai digeser dengan penggunaan televisi digital. Semua aplikasi yang telah disebutkan di atas, melibatkan data video dalam jumlah besar dan laju transisi frame (frame rate) yang cepat, yang kadangkala tidak dapat dipenuhi dengan media transmisi yang ada. Oleh karena itu, besarnya data video yang harus ditransfer ini membutuhkan teknologi kompresi yang sangat efisien agar dapat diaplikasikan pada kanal komunikasi yang ada saat ini. Di dunia komunikasi video, terdapat beberapa standar yang mendefinisikan cara, algoritma dan media yang baku untuk mengirimkan data video. H.264/MPEG-4 AVC (Advanced Video Coding) adalah standar internasional terbaru untuk video coding yang dikembangkan oleh Joint Video Team dari MPEG dan ITU. Standar ini memiliki efisiensi kompresi yang sangat tinggi bila dibandingkan dengan standar-standar sebelumnya. Dibandingkan dengan MPEG-2 yang lebih dahulu populer, standar ini dapat menghasilkan video dengan kualitas yang relatif sama dengan bit rate yang hanya setengah dari bit rate pada MPEG-2. Terdapat beberapa pengembangan algoritma pada H.264/MPEG-4 AVC, terutama di bagian kompensasi gerakan, bagian prediksi dan bagian pengkode entropi, yang
1
membuatnya lebih baik mengkompresi data video. Blok keseluruhan dari sistem H.264/MPEG-4 AVC dapat dilihat pada gambar 1.1.
Gambar 1.1 Blok Diagram Sistem Pengkode H.264/MPEG-4 AVC [1]
Pengkode entropi menjadi bagian yang cukup penting karena di bagian ini data citra, pergerakan dan data kontrol-nya dimampatkan (kompresi) menjadi urutan bilangan yang representasi bit-nya lebih sedikit. Penggunaan algoritma CABAC (Context-based Adaptive Binary Arithmatic Coding) pada modul entropy coder/decoder memungkinkan standar H.264/MPEG-4 AVC memiliki efisiensi kompresi yang sangat baik. CABAC merupakan algoritma yang secara dinamis, dapat memprediksi tingkat kemungkinan pemunculan simbol (symbol probability), pada sistem pengkodean aritmetik biner. Sehingga kemungkinan pemunculan simbol pada pengkodean aritmatik dapat terus ter-update untuk simbol-simbol baru, yang akhirnya dapat menghasilkan kompresi yang lebih baik. Pada dasarnya algoritma CABAC bersifat sekuensial dan membutuhkan komputasi yang sangat banyak dan rumit sehingga pada implementasi menggunakan perangkat lunak, diperlukan waktu yang lama dan kemampuan proses yang besar. Dengan demikian, perlu dirancang suatu dedicated hardware
2
untuk mempercepat waktu proses. Dalam tugas akhir ini akan dilakukan perancangan modul CABAC decoder (Inverse-CABAC) yang sesuai dengan standar H.264/MPEG-4 AVC. 1.2
Deskripsi Masalah
Program acuan yang melakukan fungsi encoder dan decoder H.264/MPEG-4 AVC secara keseluruhan telah dikembangkan oleh Joint Video Team dari MPEG dan ITU. Program acuan yang dibuat dalam bahasa C ini dimanfaatkan untuk mendapatkan pemahaman yang utuh tentang kapabilitas dan spesifikasi standar H.264/MPEG-4 AVC. Dengan menjalankan program acuan ini diketahui bahwa proses decoding H.264/MPEG-4 AVC memakan waktu yang lama bila dilakukan hanya dengan aplikasi software sehingga kurang cocok untuk penggunaan secara real-time. Salah satu bottleneck proses ini berada pada bagian pengkode entropi. Pada tugas akhir ini dirancang Inverse-CABAC (CABAC decoder) untuk menjalankan fungsi entropy decoding pada decoder H.264/MPEG-4 AVC. Bagian encoder telah dikerjakan pada pekerjaan tesis terdahulu [9]. Perancangan ke dalam bentuk dedicated hardware ini dimaksudkan untuk mengatasi masalah lambatnya proses entropy decoding di H.264/MPEG-4 AVC yang menggunakan aplikasi software, disebabkan oleh rumitnya proses komputasi dengan menggunakan algoritma CABAC. Adapun kedudukan modul Inverse-CABAC pada decoder H.264/MPEG-4 AVC diperlihatkan pada gambar 1.2.
Gambar 1.2 Diagram Blok Proses Decoding H.264/MPEG-4 AVC [1]
3
1.3
Tujuan
Tugas akhir ini memiliki beberapa tujuan, yaitu: 1. Menguraikan algoritma decoder CABAC berdasarkan standar dan program acuan yang didapat. 2. Mendesain arsitektur hardware berdasarkan algoritma CABAC untuk diimplementasikan pada FPGA. 3. Memodifikasi program acuan agar dapat menghasilkan testbench dan output acuan. 1.4
Ruang Lingkup dan Batasan Masalah
Untuk membatasi kompleksitas perancangan tanpa mengurangi kompatibilitas terhadap standard, maka diperlukan pembatasan dari ruang lingkup yang akan dirancang dan diimplementasikan. Target rancangan yang hendak dipenuhi dalam tugas akhir ini adalah sebagai berikut: 1. Tugas akhir ini dirancang berdasarkan program acuan [2] dari ITU dan MPEG yang telah tersedia sebagai pembanding. Bila output hasil implementasi sama dengan output dari program acuan ini, maka hasil implementasi tersebut dianggap sudah berfungsi dengan benar. 2. Titik berat perancangan ditekankan pada fungsionalitas. Walaupun demikian, optimasi area, kecepatan clock dan konsumsi daya tetap diperhatikan pada proses perancangan. 3. Proses perancangan dilakukan untuk dua dari tiga bagian utama pada CABAC. Algoritma CABAC terdiri atas 3 bagian, yaitu context modeling, arithmetic decoding, dan inverse binerisasi. Dua bagian yang dirancang pada tugas akhir ini adalah bagian context modeling dan arithmetic decoding. 4. Test-bench atau test-vector yang digunakan untuk memeriksa fungsionalitas dari rancangan yang dibuat, adalah test-vector yang dibuat sendiri dari program acuan yang digunakan. 5. Implementasi dilakukan pada FPGA Xilinx dengan perangkat lunak pengembangan dari vendor tersebut.
4
1.5
Tahapan Pengerjaan Tugas Akhir
Reference Program
Verification Methodology Algorithm Exploration
Test Pattern
Architecture Design
RTL Testbench
RTL Design
Functional Simulation
PASS? Y
Logic Synthesis
Mapping & PAR
Gate Level Simulation
Netlist
PASS? Hardware Design
Y
FPGA Implementation
Gambar 1.3 Tahapan Pengerjaan Tugas Akhir
Dalam perancangan decoder CABAC ini ada beberapa tahap yang dilakukan, yaitu: 1. Memahami algoritma dan blok Inverse-CABAC pada standar H.264/MPEG-4 AVC.
5
2. Memodifikasi program acuan untuk algoritma Inverse-CABAC untuk menghasilkan test vector acuan. 3. Perancangan arsitektur VLSI berdasarkan algoritma Inverse-CABAC. 4. Perancangan Inverse-CABAC dalam kode HDL (Hardware Description Language). 5. Melakukan verifikasi fungsional terhadap rancangan yang dibuat. 6. Implementasi rancangan pada FPGA. 7. Melakukan pengujian, analisa kinerja sistem dan pengambilan kesimpulan. Keterkaitan tahap-tahap yang dilakukan dalam perancangan Inverse-CABAC ini dapat dilihat pada gambar 1.3.
1.6
Sistematika Penulisan
Sistematika penulisan Laporan Tugas Akhir ini adalah sebagai berikut: Bab 1 Pendahuluan. Bab ini menguraikan latar belakang dari topik yang dipilih untuk Tugas Akhir, deskripsi masalah, tujuan yang ingin dicapai, batasan masalah dari topik yang akan dirancang, tahapan pengerjaan tugas akhir dan sistematika penulisan Laporan Tugas Akhir. Bab 2 Standard H.264/MPEG-4 dan Algoritma CABAC. Pada bab ini diterangkan tentang standard MPEG-4 H.264/AVC dan algoritma CABAC. Bab 3 Perancangan Awal Inverse-CABAC. Bagian ini menjelaskan langkah dan teknik yang diambil dalam merancang arsitektur Inverse-CABAC yang diinginkan, serta penjelasan fungsi dan perancangan awal dari setiap blok yang terdapat dalam dekoder tersebut. Bab 4 Perancangan Arsitektur Inverse-CABAC. Bagian ini merupakan kelanjutan dari bab sebelumnya, dengan fokus utama pada perancangan yang sebenarnya dengan memperhatikan batasan area, daya dan kecepatan.
6
Bab 5 Verifikasi dan Implementasi Inverse-CABAC. Bab ini mendeskripsikan proses verifikasi dan implementasi Inverse-CABAC. Pada bagian awal dijelaskan mengenai verifikasi fungsional yang meliputi metodologi verifikasi, arsitektur sistem verifikasi, test vector, serta hasil verifikasi. Kemudian dijelaskan proses sintesis dengan menggunakan ISE Xilinx. Bab 6 Kesimpulan dan Saran. Bab ini memuat kesimpulan dari pelaksanaan Tugas Akhir serta saran untuk pengembangan topik Tugas Akhir ini.
7