• Tidak ada hasil yang ditemukan

PERANCANGAN DEBLOCKING FILTER UNTUK APLIKASI KOMPRESI VIDEO MENGGUNAKAN STANDAR MPEG4/H.264

N/A
N/A
Protected

Academic year: 2021

Membagikan "PERANCANGAN DEBLOCKING FILTER UNTUK APLIKASI KOMPRESI VIDEO MENGGUNAKAN STANDAR MPEG4/H.264"

Copied!
5
0
0

Teks penuh

(1)

PERANCANGAN DEBLOCKING FILTER UNTUK APLIKASI

KOMPRESI VIDEO MENGGUNAKAN STANDAR

MPEG4/H.264

Andreas Sutanto, S.T.,

[email protected]

, Dani Fitriyanto, M.T.,

[email protected]

, Trio

Adiono, Ph.D.,

[email protected]

, Laboratorium IC Design

Gedung LPPM ITB, Jalan Ganesha 10, Bandung

ABSTRAK

Teknologi broadband dewasa ini berkembang sangat pesat, seiring dengan meningkatnya kebutuhan manusia akan sarana telekomunikasi yang canggih, cepat, dan handal. Salah satu sarana telekomunikasi yang sedang dikembangkan saat ini adalah transmisi video digital, yang memungkinkan penggunanya untuk melakukan komunikasi dalam dua bentuk, yaitu gambar dan suara, dengan mempergunakan berbagai jaringan transmisi, seperti LAN, WiFi, GSM, CDMA, dan sebagainya. Untuk mendapatkan komunikasi yang efisien dan real time, salah satu sarana yang sangat diperlukan adalah kompresi video, sehingga proses transmisi gambar dapat dilakukan pada bit rate yang rendah dengan frame rate yang cukup tinggi. Sebagai akibat dari kompres data tersebut akan muncul efek distorsi dan hal ini sangat berpengaruh pada kualitas gambar yang dihasilkan. Pada penelitian ini akan dirancang sebuah modul Deblocking Filter untuk mengurangi efek distorsi tersebut dengan menggunakan standar kompresi video MPEG4/H.264.

Kata kunci: MPEG4/H.264, deblocking filter, macroblock, boundary strength, parameter kuantisasi

1. PENDAHULUAN

Dewasa ini, teknologi telekomunikasi mengalami perkembangan yang sangat pesat. Kebutuhan manusia akan sarana telekomunikasi yang canggih, cepat, dan handal, menjadi kebutuhan yang tidak dapat ditawar-tawar lagi. Salah satu sarana telekomunikasi yang banyak dikembangkan adalah transmisi video digital. Sarana ini memungkinkan terjadinya komunikasi dalam dua bentuk, yaitu gambar dan suara. Salah satu standar yang banyak digunakan dalam transmisi video digital adalah MPEG4/H.264. Dalam standar ini, terdapat salah satu modul yang bernama Deblocking Filter. Modul ini berfungsi untuk menghilangkan efek distorsi yang timbul dari kompresi yang dilakukan dalam standar ini. Dalam makalah ini, akan disajikan proses perancangan modul Deblocking Filter, mulai dari eksplorasi proses di dalamnya hingga penyusunan block diagram. Dari block diagram ini, selanjutnya dipergunakan dalam proses desain perangkat keras menggunakan VHDL dan nantinya dapat diimplementasikan, baik pada FPGA maupun desain chip rangkaian terintegrasi (IC).

2. PENGENALAN DEBLOCKING FILTER 2.1. Deblocking Filter dalam MPEG4/H.264

CoDec

Deblocking filter merupakan elemen baru dalam standar kompresi video MPEG. Dalam standar MPEG sebelum MPEG4/H.264 (MPEG1, MPEG2, MPEG4/H.261, MPEG4/H.263), elemen ini tidak dijumpai. Fungsi utama dari Deblocking Filter adalah untuk mengurangi distorsi blocking pada setiap decoded macroblock.

Pada encoder, deblocking filter diaplikasikan setelah inverse transform dan sebelum proses rekonstruksi dan penyimpanan macroblock untuk prediksi akan datang. Sementara, pada decoder, aplikasi deblocking filter dilakukan setelah inverse transform dan sebelum proses rekonstruksi dan penampilan macroblock. Proses lengkap dari MPEG4/H.264 codec ditunjukkan pada gambar 2.1 dan 2.2.

(2)

2.2. Proses Filtering

GAMBAR 2.1. MPEG4/H.264 ENCODER

GAMBAR 2.2. MPEG4/H.264 DECODER

Proses filtering diaplikasikan pada sisi vertikal maupun horizontal dari suatu makroblock 4x4, kecuali pada sisi batas slice (tiap gambar video dikodekan ke dalam satu slice atau lebih), dengan urutan sebagai berikut:

1. Filter 4 batas vertikal pada komponen luma (dengan urutan a, b, c, d pada gambar 2.3). 2. Filter 4 batas horizontal pada komponen luma

(dengan urutan e, f, g, h pada gambar 2.3). 3. Filter 2 batas vertikal pada komponen chroma

(dengan urutan i, j pada gambar 2.3).

4. Filter 2 batas horizontal pada komponen chroma (dengan urutan k,l pada gambar 2.3).

Setiap proses filtering mempengaruhi hingga 3-byte sampel pada kedua sisi batas (vertikal dan horizontal). Pada gambar 2.4 diperlihatkan 4-byte sampel pada tiap sisi batas vertikal dan horizontal, p dan q. Penentuan jenis filtering yang akan digunakan dipengaruhi oleh 2 hal, yaitu boundary strength (bS) dan gradient sampel gambar antar batas. Nilai boundary strength berkisar antara 0 – 4 dan ditentukan berdasarkan ketentuan-ketentuan, yang digambarkan dalam diagram alir pada gambar 2.5. Jika p dan atau q intra coded dan batas antara keduanya merupakan batas macroblock, maka filter terkuat diaplikasikan (bS = 4). Jika p dan q intra coded dan batas antara keduanya bukan merupakan batas macroblock, maka filter yang relatif kuat diaplikasikan (bS = 3). Jika p dan q, keduanya, tidak intra coded, sementara p dan q mengandung coded coefficient, maka filter dengan kekuatan medium diaplikasikan (bS = 2). Jika p dan q, keduanya tidak

intra coded dan tidak mengandung coded coefficient, sementara p dan q menggunakan gambar referensi yang berbeda atau jumlah gambar referensi yang berbeda atau memiliki nilai-nilai

GAMBAR 2.3. URUTAN PROSES FILTERING PADA SUATU MACROBLOCK

GAMBAR 2.4. SAMPEL_SAMPEL YANG BERDEKATAN PADA BATAS VERTIKAL DAN HORIZONTAL

GAMBAR 2.5. DIAGRAM ALIR PENENTUAN NILAI BOUNDARY STRENGTH

motion vector yang berbeda oleh sebuah sampel luma atau lebih, maka filter yang relative lemah diaplikasikan (bS = 1). Selain keempat kondisi tersebut, maka filter tidak diaplikasikan (bS = 0).

(3)

Syarat proses filtering diaplikasikan pada suatu kelompok sampel adalah:

1. bS > 0.

2. |p0 – q0| < α dan |p1 – p0| < β dan |q1 – q0| < β.

α dan β merupakan nilai threshold yang didefinisikan di dalam standar MPEG4/H.264, di mana nilainya ditentukan oleh parameter kuantisasi (QP), FilterOffsetA, dan FilterOffsetB.

Implementasi filter adalah sebagai berikut: 1. bS

{1 ,2, 3}

Filter 4-tahap diaplikasikan dengan input p1, p0, q0, dan q1, menghasilkan output p0’ dan q0’.

Untuk komponen luma:

Jika |p2 – p0| < β, maka filter 4-tahap yang lain diaplikasikan dengan input p2, p1, p0, dan q0, menghasilkan output p1’.

Jika |q2 – q0| < β, maka filter 4-tahap yang lain diaplikasikan dengan input q2, q1, q0, dan p0, menghasilkan output q1’.

2. bS = 4

Jika |p2 – p0| < β dan |p0 – q0| < round(α/4) dan blok luma:

p0’ dihasilkan dari filter 5-tahap dengan input p2, p1, p0, q0, dan q1.

p1’ dihasilkan dari filter 4-tahap dengan input p2, p1, p0, dan q0.

p2’ dihasilkan dari filter 5-tahap dengan input p3, p2, p1, p0, dan q0.

selain itu,

p0’ dihasilkan dari filter 3-tahap dengan input p1, p0, dan q1.

Jika |q2 – q0| < β dan |p0 – q0| < round(α/4) dan blok luma:

q0’ dihasilkan dari filter 5-tahap dengan input q2, q1, q0, p0, dan p1.

q1’ dihasilkan dari filter 4-tahap dengan input q2, q1, q0, dan p0.

q2’ dihasilkan dari filter 5-tahap dengan input q3, q2, q1, q0, dan p0.

selain itu,

q0’ dihasilkan dari filter 3-tahap dengan input q1, q0, dan p1.

3. DESAIN DEBLOCKING FILTER 3.1. Urutan Pemrosesan Data

Sesuai dengan konfigurasi dasar pada gambar 2.3, urutan pemrosesan data pada deblocking filter adalah sesuai dengan urutan yang digambarkan pada gambar 3.1. Pada konfigurasi ini, setiap data pada macroblock perlu diakses dan disimpan kembali dari dan ke dalam memori sebanyak 4 kali. Sebagai contoh, data block "0" (pada gambar 3.2) akan

diakses dan disimpan kembali dari dan ke dalam memori pada proses filter ke- 1, 5, 25, dan 29. Demikian juga untuk data-data yang lain pada macroblock (data 1 – 23). Jumlah akses memori, pada proses ini, tentu saja akan sangat banyak dan memerlukan bandwidth memori yang tinggi. Hal ini kurang efektif mengingat proses pengaksesan dan penyimpanan suatu data dari dan ke dalam memori (SRAM) memerlukan waktu yang cukup lama. Konfigurasi lain yang lebih efektif untuk urutan pemrosesan data ini adalah advanced filtering order yang diperlihatkan pada gambar 3.3. Konfigurasi ini mengurangi akses data dari dan ke memori, sehingga untuk setiap data blok hanya mengakses data dari dan ke memori sebanyak 2 kali. Sebagai contoh, untuk data "0" akan diakses dari memori pada proses ke- 1 dan 25 dan disimpan kembali setelah proses ke- 2 dan 26. Demikian juga untuk data-data yang lain pada macroblock.

Untuk lebih mengoptimalkan konfigurasi pemrosesan data ini, digunakan urutan seperti pada gambar 3.4. Konfigurasi ini dinamakan 2-D Processing Order. Dengan urutan ini, pengaksesan data dapat dioptimalkan sehingga hanya perlu 1 kali pengaksesan dan penyimpanan data dari dan ke memori. Sebagai contoh, untuk data "0", data diambil dari memori pada proses ke-1, lalu hasilnya digunakan kembali secara berturut-turut untuk proses ke-2 dan ke-3 dan selanjutnya disimpan ke dalam buffer untuk selanjutnya digunakan dalam proses ke-11. Setelah proses ke-11, barulah data "0" hasil filtering disimpan kembali ke dalam memori.

3.2. Pemilihan dan Pengembangan Desain

Dari ketiga konfigurasi urutan pemrosesan data di atas, dipilih konfigurasi yang terakhir untuk urutan pemrosesan data. Konfigurasi ini dipilih karena memiliki akses memori paling sedikit, sehingga proses filtering menjadi lebih cepat. Dari konfigurasi tersebut, selanjutnya dilakukan paralelisasi proses untuk lebih mengoptimalkan waktu pemrosesan data. Paralelisasi yang dilakukan di sini adalah mem-paralel proses yang dilakukan pada blok luma dan blok chroma. Jumlah proses pada blok luma adalah dua kali lipat jumlah proses pada blok chroma dan proses yang terjadi pada kedua blok ini adalah independen, sehingga proses pada blok chroma dapat dilakukan bersamaan dengan proses pada blok luma. Dengan paralelisasi ini, waktu yang dibutuhkan untuk pemrosesan seluruh data dapat direduksi menjadi hanya sebesar waktu yang diperlukan untuk pemrosesan data luma saja.

(4)

GAMBAR 3.1. URUTAN PEMROSESAN DATA MENURUT KONFIGURASI DASAR

GAMBAR 3.2. PENAMAAN BLOCK DATA LUMA DAN CHROMA

GAMBAR 3.3. ADVANCED FILTERING ORDER

GAMBAR 3.4. 2-D PROCESSING ORDER

3.3. Diagram Blok Desain

Dalam mem-paralel proses dalam deblocking filter ini, dilakukan pemisahan blok desain yang dipergunakan untuk pemrosesan data luma dan data chroma. Diagram blok untuk kedua proses ini ditunjukkan pada gambar 3.5.

Diagram blok untuk pemrosesan data luma terdiri atas beberapa bagian sebagai berikut:

1. sram

• Lebar data: 32 bit. • Lebar bus data: 32 bit.

• Jumlah baris data: 32 baris (sram 0) and 64 baris (sram 1).

• Fungsi: menerima dan menyimpan data dari memori eksternal dan juga menyediakan data untuk proses filtering.

2. BUF

• Ukuran: 4 x 32 bit.

• Fungsi: penyimpan data sementara pada saat proses filtering.

3. MT

• Struktur: 16 x register 32 bit

• Fungsi: mentranspose suatu blok sebelum dilakukan proses filtering vertical.

4. MUX6to1

• Fungsi: memilih sumber input P. 5. MUX3to1

• Fungsi: memilih sumber input Q. 6. DB LUMA PROC

• Fungsi: melakukan proses kombnasional berupa perhitungan untuk proses filtering. 7. sram out

• Lebar data: 32 bit. • Lebar bus data: 32 bit.

• Jumlah baris data: 32 baris (sram out 0) and 64 baris (sram out 1)

• Fungsi: menerima dan menyimpan data dari DB LUMA PROC dan mengirim data ke memori eksternal setelah proses filtering selesai.

8. controller

• Fungsi: mengatur seluruh proses filtering dan aliran data dari satu modul ka modul yang lain.

Sementara itu, diagram blok untuk pemrosesan data chroma adalah analog dengan fungsi setiap modul pada arsitektur untuk data luma, hanya saja jumlah baris data sram dan sram out untuk arsitektur ini lebih kecil, yaitu 32 baris untuk setiap sram dan sram out. 3.4. Struktur Memori

(5)

Struktur memori yang dipergunakan dalam desain deblocking filter ini terdiri atas memori input (SRAM) dan output (SRAM OUT) untuk setiap blok luma dan chroma. Setiap memori input maupun output terdiri atas 2 jenis, yang pertama untuk

(a) DIAGRAM BLOK LUMA

(b) DIAGRAM BLOK CHROMA

GAMBAR 3.5. DIAGRAM BLOK DESAIN DEBLOCKING FILTER

External RAM

SRAM 0 SRAM 1 SRAM OUT 0

SRAM OUT 1

DB LUMA PROC

SRAM 2 SRAM 3 SRAM OUT 2

SRAM OUT 3

DB CHROMA PROC

GAMBAR 3.6. STRUKTUR MEMORI

menyimpan data macroblock dari frame sebelumnya, sementara yang lain untuk menyimpan data macroblock dari frame sekarang. Secara lengkap, struktur memori ini diperlihatkan pada gambar 3.6. 4. KESIMPULAN

Dalam proses desain deblocking filter, diperlukan suatu konfigurasi dalam urutan pemrosesan data-data dalam macroblock. Konfigurasi inilah yang menentukan waktu yang akan dikonsumsi oleh proses filtering di dalam desain ini. Dengan menggunakan konfigurasi desain yang optimal dalam pengaksesan memori dan melakukan proses paralelisasi, akan diperoleh suatu desain deblocking filter dengan waktu proses yang optimal pula.

5. REFERENSI

[1] Sheng, Bin; Gao, Wen; and Wu, Di , "AN

IMPLEMENTED ARCHITECTURE OF

DEBLOCKING FILTER FOR H.264/AVC", China. [2] Richardson, Iain E. G., "H.264 and MPEG-4 VIDEO COMPRESSION", John Wiley and Sons Ltd., England, 2003.

Gambar

GAMBAR 2.3. URUTAN PROSES FILTERING PADA SUATU  MACROBLOCK
GAMBAR 3.2. PENAMAAN BLOCK DATA LUMA DAN  CHROMA
GAMBAR 3.6. STRUKTUR MEMORI

Referensi

Dokumen terkait

Visi Prima Twin Putranti, S.ST, M.Kes selaku Kepala Program Studi D.III Kebidanan Fakultas Ilmu Kesehatan Universitas Muhammadiyah Ponorogo yang telah

jumlah Ibu bersalln yang ditolong oleh tenaga kesehatan dl satu wilayah kerja pada kurun waktu tertentu. Jumlah ibu bersatin di satu wilayah kerja pada kurun

Untuk menentukan sudut insersi, pedoman umum yang diikuti berkaitan dengan jumlah jaringan yang dapat dikumpulkan atau.. dipegang pada

Rapid Imaging and Mapping System (RIMS) adalah sistem instrumentasi yang digunakan untuk produksi jasa pencitraan (imaging) bumi, dan dari citra bumi tersebut dapat dihasilkan

Rancangan faktorial fraksional dilakukan jika peneliti dapat mengasumsikan bahwa interaksi orde tinggi (interaksi yang memuat lebih dari dua faktor) tertentu

Pendekatan fungsi desirability digunakan untuk mencari nilai kombinasi dari variabel faktor (blowing pressure, blowing time, dan stop time) untuk mendapatkan

Pegawai Negeri Sipil, maka Panitia Seleksi CPNS Pemerintah Kabupaten Way Kanan Tahun 2018 menetapkan Tempat dan Waktu Pelaksanaan Seleksi Kompetensi Dasar (SKD) dengan

Dalam proses perancangan, metode yang digunakan adalah metode VDI 2221 yang terdiri dari penjarbaran tugas dengan membuat daftar checklist, perancangan konsep dengan