• Tidak ada hasil yang ditemukan

Analisis Dan Implementasi Algoritma 3D-DCT Dengan Menggunakan Perkodean Cabac Pada Kompresi Video H.265/HEVC

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis Dan Implementasi Algoritma 3D-DCT Dengan Menggunakan Perkodean Cabac Pada Kompresi Video H.265/HEVC"

Copied!
126
0
0

Teks penuh

(1)

NIM : 10111275

Jenis Kelamin : Perempuan

Tempat/Tanggal Lahir : Tanjungpandan / 26 Februari 1994

Agama : Islam

Alamat : Jl. Gaparman No.18 RT 10 RW 5,

Desa Lesungbatang, Kec. Tanjungpandan, Belitung

Telepon/HP : 081929706654

E-mail : alintiarossi@ymail.com

RIWAYAT PENDIDIKAN

1998 – 1999 : TK Angkasa Tanjungpandan,

1999 – 2005 : SDN 17 Tanjungpandan,

2005 – 2008 : SMPN 6 Tanjungpandan,

2008 – 2011 : SMKN 1 Tanjungpandan,

Jurusan Teknik dan Komputer Jaringan, 2011 – 2015 : Universitas Komputer Indonesia,

(2)

115

DAFTAR PUSTAKA

[1] Pereira, F. “Video compression : An evolving technology for better user experiences. In Telecommunications (CONATEL), 2011 2nd National Conference on(pp.1-6). IEEE. May 2011.

[2] Podder, P.K., Paul, M, & Murshed, M. “Efficient Coding Strategy for HEVC Performance Improvement by Exploiting Motion Features”. Bathurst: Charles Sturt University, 2014.

[3] Moh, N. “Metodologi Penelitian”. Bogor: Ghalia Indonesia. 2005 [4] S. Pressman, R. “Rekayasa Perangkat Lunak Pendekatan Praktis”, 2012. [5] Yonata, Y. “Kompresi Video”. Jakarta: PT Elex Media Komputindo, 2012. [6] Pourazad, M. T., Doutre, C., Azimi, M., & Nasopoulos, P. “HEVC : The New

Gold Standard for Video Compression”, July 2012.

[7] Bossen, F., Bross, B., Suhring. K., & Flynn. D, “HEVC Complexity and Implementation Analysis”. IEEE Transaction On Circuits and Systems for Video Technology, December 2012, pp. 22.

[8] Li. J, “Advances on Video Coding Algorithms for Next Generation Mobile Applications”, Thesis for Degree Doctor of Science. Julkaisu: Tampere University of Technology, August 2011, pp. 24-26.

[9] Westwater, R., & Furht, B. (n.d.). Three-Dimensional DCT Video Compression Technique Based On Adaptive Quantizers. Multimedia Laboratory.

[10] Wampler, B. “The Essence of Object Oriented Programming with Java and UML”, Addison Wesley, 2011.

(3)

116

[12] Jhe Hsu, W., & Ming Hang, H. (n.d.). “Fast Coding Unit Decision Algorithm for HEVC”, Taiwan: Department of Electronics Engineering, National Chiao-Tung University.

[13] Obengplus. (2013, 10 12). Technology Article. Retrieved Juny 2015, from Obengplus: http://obengplus.com/articles/3263/1/Evolusi-perkembangan-video-kompresing-digital-sampai-H265.html#.VYbP-_mqqkp

[14] Richardson, I. E., “H.264 and MPEG-4 Video Compression”. United Kingdom: John Wiley & Sons Ltd, 2003.

[15] Nouripayam, M., & Sheikipoor, N. , “HEVC (H.265) Intra-Frame Prediction Implementation Using MATLAB”, Karlskrona: Blekinge Institute of Technology, 2014.

[16] Marpe, Detlev., Schwarz, Heko., “Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard”, IEEE Transaction On Circuits and Systems for Video Technology, Vol.13, No.7, July 2013.

(4)
(5)

1 BAB 1 PENDAHULUAN

1.1 Latar Belakang

Kompresi adalah sebuah konversi data ke sebuah format yang lebih kecil, biasanya dilakukan sehingga data dapat disimpan atau disalurkan lebih efisien. Proses pengembalian data yang sudah dikecilkan tersebut disebut kompresi. Pemampatan atau kompresi video berhadapan dengan kompresi data video digital. Kompresi video dibutuhkan untuk koding data video secara efisien dalam format file video dan streaming format video [1].

Perkembangan standar kompresi video sejalan dengan kebutuhan pengguna dan kecanggihan perangkat keras yang ada saat ini. Berbagai macam teknik kompresi diteliti untuk memperoleh hasil kompresi yang terbaik, tanpa mengurangi kualitas data kompresi yang sebenarnya. Awal pengembangan teknik kompresi video telah didominasi oleh keinginan untuk memaksimalkan kemampuan kompresi. Data video asli yang ukurannya terlalu besar diharapkan dapat disimpan ke dalam ukuran file yang cukup kecil. Selain itu, aspek lain yang perlu dipertimbangkan adalah seberapa besar data yang hilang akibat kompresi.

(6)

video semakin lebar dan tajam, file video akan dipertahankan tidak membengkak dan lebih padat [13].

HEVC memiliki 4 spesifikasi transform units (TUs) berukuran 4x4, 8x8, 16x16, dan 32x32 untuk kode prediksi sisa. Yang tersisa setelah prediksi data adalah transfomasi menggunakan block transform berdasarkan Discrete Cosine Transform (DCT) atau Discrete Sine Transform (DST). Kode bitstream HEVC terdiri dari kuantisasi yang mengubah koefisien, informasi prediksi seperti model prediksi dan vektor motion, informasi partisi dan data header lain. Semua elemen yang dikodekan menggunakan CABAC (Context Adaptive Binary Arithmetic Coding). Berbeda dengan AVC yang bisa dikodekan dengan CABAC dan juga

CAVLC, maka HEVC cuma bisa dikodekan dengan CABAC.

Pada penelitian tentang encode H.265/HEVC sebelumnya yang memanfaatkan fase korelasi antara current blok dengan blok setelahnya untuk mengekstrak 3 fitur gerak berbeda yang berfokus pada tiga aspek yang berbeda pula dari gerak masing-masing CUs (Control Unit). Dari metode yang diusulkan didapat bahwa metode tersebut menghemat 1% bit rate atau meningkatkan 0.15dB PSNR di atas rata-rata dan juga mengurangi sekitar 30% waktu encoding [2].

(7)

1.2 Rumusan Masalah

Berdasarkan uraian latar belakang yang telah dikemukakan, maka rumusan masalahnya yaitu :

1. Bagaimana menganalisis dan mengimplementasikan algoritma 3D-DCT pada kompresi video H.265/HEVC dengan pengkodean CABAC.

2. Bagaimana memadukan algoritma 3D-DCT dengan algoritma fast encoding sehingga tercapainya peningkatan optimalisasi waktu

kompresi (encoding time) dan ukuran (size) pada encode HEVC.

1.3 Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dan tujuan dari penulisan tugas akhir ini adalah :

1.3.1 Maksud

Berdasarkan permasalahan yang diteliti, maka maksud dari penelitian adalah mengimplementasikan algoritma 3D-DCT pada kompresi video H.265/HEVC.

1.3.2 Tujuan

Tujuan yang ingin dicapai dalam penelitian ini adalah sebagai berikut :

1. Menghasilkan aplikasi kompresi video HEVC menggunakan teknik algoritma 3D-DCT dengan tingkat optimalisasi yang lebih besar daripada aplikasi yang pernah ada sebelumnya baik dalam optimalisasi waktu encoding maupun ukuran (size).

(8)

1.4 Batasan Masalah

Adapun batasan masalah yang diberikan adalah sebagai berikut :

1. Algoritma yang diimplementasikan adalah algoritma 3D-DCT pada proses transform-nya.

2. Teknik Kompresi menggunakan standar kompresi video H.265/HEVC.

3. Entropy coding atau pengkodean menggunakan standarisasi pengkodean kompresi video HEVC yaitu CABAC.

4. Analisis algoritma lebih di-titik beratkan pada proses transform di sisi encoder dengan menggunakan algoritma 3D-DCT.

5. Output format yang dihasilkan berupa format video H265 file (.h265) . 6. Standar untuk mengukur efisiensi coding dari video coding standar, yaitu menggunakan pengujian objective seperti rasio kompresi dan peak signal to noise ratio (PSNR) dan pengujian subjective.

7. Metode analisis perancangan yang digunakan yaitu menggunakan analisis perancangan dan pengembangan perangkat lunak berbasis objek, dengan menggunakan pemodelan Unified Modelling Language (UML).

1.5 Metodologi Penelitian

Metodologi penelitian merupakan cara utama yang digunakan peneliti untuk mencapai tujuan dan menentukan jawaban atas masalah yang diajukan [3]. Pada penelitian ini akan menggunakan metode penelitian deskriptif.

(9)

Gambar 1. 1 Metodologi Penelitian

1.5.1 Metode Pengumpulan Data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah studi literatur. Studi literatur merupakan pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan pencarian data yang bersumber dari internet berkaitan dengan aplikasi yang akan dibangun.

1.5.2 Analisis Metode

Analisis metode yang digunakan dalam penelitian ini yaitu analisis metode algoritma 3D-DCT (Three Dimensional Discrete Cosine Transform) yang bekerja pada proses transform dan metode tambahan algoritma fast coding unit decision yang bekerja pada proses partisi CU (Coding Unit).

1.5.3 Metode Pembangunan Perangkat Lunak

(10)

sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan. Dimodelkan setelah siklus rekayasa konvensional, model sekuensial linier melingkupi aktivitas-aktivitas sebagai berikut [4]:

Gambar 1. 2 Model Waterfall

1. Analisis Kebutuhan (Analysis)

Tahap analisis kebutuhan ini yaitu untuk memahami sistem yang ada pada kompresi video H.265/HEVC serta mendefinisikan permasalahan sistemnya dan selanjutnya untuk menentukan kebutuhan sistem secara garis besar.

2. Desain Sistem (Design)

Tahap desain sistem ini yaitu untuk memberikan gambaran umum kepada pengguna mengenai kompresi video H.265/HEVC yang akan dibangun dan rancang bangun yang lengkap tentang sistem kompresi video H.265/HEVC.

3. Implementasi (Code)

(11)

komponen-komponen sistem yang meliputi modul program, antarmuka, dan basis data.

4. Pengujian Program (Test)

Tahap pengujian program ini dilakukan untuk mendapatkan serta memastikan bahwa kompresi video H.265/HEVC yang dibangun sesuai kebutuhan yang telah dideskripsikan.

1.5.4 Pengujian Metode

Tahap pengujian metode pada penelitian ini membahas pengujian kualitas citra video yang dihasilkan dengan menggunakan algoritma 3D-DCT dan Fast Coding Unit Decision. Pengujian yang dilakukan bertujuan untuk menghitung optimasi ukuran dan optimasi waktu kompresi. Pengujian terdiri dari 2 pengujian yaitu pengujian secara obyektif menggunakan perhitungan MSE (Mean Square Error) dan PSNR (Peak Signal to Noise Ratio) dan pengujian subjective.

1.5.5 Hasil Penelitian

Hasil penelitian yang dihasilkan dari penerapan algoritma 3D-DCT pada kompresi video H.265/HEVC ini yaitu adanya peningkatan hasil video yang telah dikompresi dari segi ukuran dan waktu kompresi dibandingkan dengan penelitian sebelumnya pada kompresi video H.265/HEVC.

1.6 Sistematika Penulisan

Sistematika penulisan ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan dan dibagi dalam beberapa bab dengan pokok pembahasan sistematika secara umum adalah sebagai berikut :

BAB I. PENDAHULUAN

(12)

BAB II. LANDASAN TEORI

Membahas berbagai konsep dasar dan teori-teori algoritma DCT, 3D-DCT, teknik kompresi video H.265/HEVC, dan pengkodean CABAC.

BAB III. ANALISIS DAN PERANCANGAN

Bab ini terdiri dari analisis masalah dan perancangan dari implementasi algoritma 3D-DCT pada kompresi video ini, adapun tahapan dari analisis perancangan video encoder ini yaitu block partitioning, prediction, transform and quantization, dan entropy encode . Sedangkan pada proses video decoder terdiri dari entropy decode, inverse transform, predict (add) dan reconstruct. Algoritma 3D-DCT akan diimplementasikan dalam

proses transform and quantization. Kemudian pada proses perancangan akan menggunakan analisis perancangan dan pengembangan perangkat lunak berbasis objek, dengan menggunakan pemodelan Unified Modelling Language (UML).

BAB IV. IMPLEMENTASI DAN PENGUJIAN

Terdiri dari implementasi algoritma ke dalam sistem berdasarkan perancangan yang telah dibuat, serta pengujian perangkat lunak menggunakan standar untuk mengukur efisiensi coding dari video coding standar, yaitu menggunakan objective metric seperti PSNR (Peak Signal to Noise Ratio) dan MSE (Mean Square Error).

BAB V. KESIMPULAN DAN SARAN

(13)

9 BAB 2

LANDASAN TEORI

2.1 Karakteristik Video Digital

Video digital pada dasarnya tersusun atas serangkaian frame. Rangkaian frame tersebut ditampilkan pada layar dengan kecepatan tertentu, bergantung pada laju frame yang diberikan ( dalam frame / detik ). Jika laju frame cukup tinggi, mata manusia tidak dapat menangkap gambar per frame, melainkan menangkapnya sebagai rangkaian yang kontinyu. Masing - masing frame merupakan gambar / citra ( image ) digital. Suatu image digital direpresentasikan dengan sebuah matriks yang masing - masing elemennya merepresentasikan nilai intensitas. Jika I adalah matriks dua dimensi, I (x,y) adalah nilai intensitas yang sesuai pada posisi baris x dan kolom y pada matriks tersebut. Titik - titik dimana image disampling disebut sebagai picture elements atau sering dikenal sebagai pixel. Karakteristik video digital ditentukan oleh resolusi ( resolution ) atau dimensi frame ( frame dimension ), kedalaman pixel ( pixel depth ), dan laju frame ( frame rate ). Karakteristik – karakteristik ini yang akan menentukan kualitas video dan jumlah bit yang dibutuhkan untuk menyimpan atau mentransmisikannya [5].

2.1.1 Resolusi

(14)

2.1.2 Kedalaman Bit

Kedalaman bit ( bit depth ) menentukan jumlah bit yang digunakan untuk merepresentasikan tiap pixel pada sebuah frame. Kedalaman bit dinyatakan dalam bit per pixel. Semakin banyak jumlah bit yang digunakan untuk merepresentasikan sebuah pixel, berarti semakin tinggi kedalaman pixelnya, maka semakin tinggi pula kualitasnya, mengakibatkan jumlah bit yang diperlukan menjadi lebih tinggi. Satu byte (8 bit) untuk tiap pixel, diperoleh 28 atau 256 level intensitas. Dengan level intensitas sebanyak itu, umumnya mata manusia sudah dapat dipuaskan. Ke dalam pixel paling rendah terdapat pada binary-value image yang hanya menggunakan 1 bit untuk tiap pixel, sehingga hanya ada dua kemungkinan bagi tiap pixel, yaitu 0 (hitam) atau 1 (putih).

2.1.3 Laju Frame

Laju frame ( Frame rate ) menunjukkan jumlah frame yang digambar tiap detik, dan dinyatakan dengan frame per detik. Sehubungan dengan laju frame ini, ada dua hal yang perlu diperhatikan, yaitu kehalusan gerakan ( smooth motion ) dan kilatan (flash). Kehalusan gerakan ditentukan oleh jumlah frame yang berbeda per detik. Untuk mendapatkan gerakan yang halus, video digital setidaknya harus menampilkan sedikitnya 25 frame per detik. Kilatan ditentukan oleh jumlah berapa kali layar digambar per detik. Dengan 20 frame per detik, kilatan sudah dapat dilenyapkan. Video yang berkualitas baik akan memiliki laju frame yang tinggi, setidaknya sesuai dengan mata manusia, yang berarti membutuhkan jumlah bit yang lebih tinggi.

2.1.4 Representasi Warna

(15)

1. RGB

Data video dapat dipisahkan menjadi komponen – komponen untuk masing – masing warna, yaitu merah ( Red ), hijau ( Green ), dab biru ( Blue ). Warna tiap pixel ditentukan oleh kombinasi intensitas dari masing – masing komponen warna. Sebagai contoh, pada RGB 24 bit, masing – masing komponen warna dinyatakan dalam 8 bit atau 256 level.

Gambar 2. 1 Representasi RGB pada warna gambar

2. YUV

Pemisahan komponen tidak hanya dilakukan dengan pemisahan warna, namun dapat juga dilakukan dengan memisahkan menurut komponen kecerahan ( luminance ) dan komponen warna ( crominance ). Pada format PAL ( Phase

Alternating Line ), sinyal kecerahan dinyatakan dengan Y, sedangkan dua sinyal warna dinyatakan dengan U dan V. Representasi YUV lebih alami untuk kompresi gambar dan video. Transformasi tepat dari RGB representasi YUV, ditentukan oleh standar CCIR 601, dengan persamaan berikut :

(Pers. 2. 1)

(16)

Dimana Y adalah komponen kecerahan (luminance), sedangkan U dan V adalah dua komponen warna (chrominance).

Perkiraan RGB ke transformasi YUV yang diberikan :

(Pers. 2. 2)

Transformasi ini lebih baik, ketika R+G+B, maka Y=R=G=B, dan U=V=O.

3. YIQ

Pemisahan sinyal video menjadi komponen kecerahan dan komponen warna dapat dilakukan juga sesuai dengan format NTSC ( National Television System Committee ), komponen kecerahan dinyatakan dengan Y, dan dua komponen warna dinyatakan dengan I dan Q. Karena persepsi mata manusia lebih peka pada kecerahan dari pada warna, maka crominance cukup di-sampling separuh dari luminance.

2.2 Kompresi Data

(17)

2.2.1 Teknik Kompresi Data

Teknik kompresi data dapat dibagi menjadi dua kategori besar, yaitu [14]:

1. Lossy Compression

Lossy compression menyebabkan adanya perubahan data dibandingkan sebelum dilakukan proses kompresi. Sebagai gantinya lossy compression memberikan derajat kompresi lebih tinggi. Tipe ini cocok untuk kompresi file suara digital dan gambar digital. File suara dan gambar secara alamiah masih bisa digunakan walaupun tidak berada pada kondisi yang sama sebelum dilakukan kompresi.

2. Lossless Compression

Sebaliknya Lossless Compression memiliki derajat kompresi yang lebih rendah tetapi dengan akurasi data yang terjaga antara sebelum dan sesudah proses kompresi. Kompresi ini cocok untuk basis data, dokumen atau spreadsheet. Pada lossless compression ini tidak diijinkan ada bit yang hilang dari data pada proses kompresi.

2.2.2 Manfaat Kompresi

Beberapa manfaat kompresi adalah [14]:

1. Waktu pengiriman data pada saluran komunikasi data menjadi lebih singkat. Contohnya pengiriman gambar dari faximile, video confrencing, handphone, download dari internet pengiriman data medis, pengiriman dari satelit, dan lain-lain.

2. Membutuhkan ruang memori dalam storage yang lebih sedikit dibandingkan dengan data yang tidak dimampatkan.

3. Efisiensi penggunaan bandwidth pada jaringan telekomunikasi.

2.2.3 Kriteria Kompresi

Kriteria yang digunakan untuk mengukur kompresi adalah [14]:

(18)

Proses kompresi merupakan proses mengkodekan data atau citra sehingga diperoleh data dengan representasi kebutuhan memori yang minimum. Data terkompresi disimpan dalam file dengan format tertentu, misalnya JPEG atau MPEG. Sedangkan proses dekompresi adalah proses untuk menguraikan citra atau data yang dimampatkan untuk dikembalikan lagi menjadi citra yang tidak mampat. Algoritma pemampatan yang paling baik adalah algoritma yang membutuhkan waktu untuk kompresi dan dekompresi yang paling sedikit.

2. Kebutuhan memori

Metode kompresi yang baik adalah metode kompresi yang mampu mengompresi file menjadi ukuran yang paling minimal.Algoritma pemampatan yang baik akan menghasilkan memori yang dibutuhkan untuk menyimpan hasil kompresi yang berkurang secara berarti. Biasanya semakin besar persentase pemampatan, semakin kecil kebutuhan memori yang diperlukan sehingga kualitas citra makin berkurang. Dan, sebaliknya, semakin kecil persentase citra yang dimampatkan, semakin bagus kualitas hasil pemampatan tersebut.

3. Kualitas pemampatan

Metode kompresi yang baik adalah metode kompresi yang mampu mengembalikan citra hasil kompresi menjadi citra semula tanpa kehilangan informasi apapun. Kalaupun ada informasi yang hilang akbat pemampatan, sebaiknya hal itu ditekan seminimal mungkin. Semakin berkualitas hasil pemampatan, semakin besar memori yang dibutuhkan. Sebaliknya, semakin jelek kualitas citra hasil pemampatan, semakin kecil kebutuhan memori yang harus disediakan.

(19)

Sebaliknya, semakin kecil nilai PSNR, semakin jelek kualitas citra hasil pemampatan.

2.2.4 Kriteria Penilaian Kualitas Citra

Pada bagian ini dibahas mengenai kriteria-kriteria penilaian baik-buruknya kualitas citra, yaitu kriteria penilaian secara obyektif dengan menggunakan suatu ukuran tertentu dan kriteria penilaian secara subyektif dengan berdasarkan pengamatan mata manusia.

2.2.4.1Penilaian Secara Obyektif

Kriteria penilaian secara obyektif berdasarkan pengukuran error pada citra yang diuji. Parameter-parameter yang digunakan sebagai kriteria penilaian obyektif adalah sebagai berikut :

1. Mean Square Error (MSE)

Rumus MSE dapat dituliskan sebagai berikut :

MSE =

2. Peak Signal to Noise Ratio (PSNR)

Peak Signal to Noise Ratio (PSNR) adalah perbandingan antara nilai maksimum dari sinyal yang diukur dengan besarnya derau yang berpengaruh pada sinyal tersebut. PSNR merupakan parameter standar untuk menilai kualitas suatu citra secara obyektif dengan membandingkan noise terhadap sinyal puncak.

(20)

tetapi perbandingan dua nilai untuk citra rekonstruksi yang berbeda memberikan satu nilai mutu [17].

PSNR biasanya diukur dalam satuan desibel.

Rumus PSNR adalah sebagai berikut :

PSNR = 20.log 10

2.2.4.2 Penilaian Secara Subyektif

Penentuan penilaian ini berdasarkan atas karakteristik visual manusia yang mampu melakukan pendeteksian secara langsung. Dengan menggunakan kriteria ini, baik buruknya citra hasil pengolahan ditentukan oleh pengamat sendiri sehingga bisa terjadi dua buah citra yang mempunyai nilai yang sama pada kriteria penilaian obyektif namun dapat berbeda kualitas subyektifnya tergantung dari persepsi visual pengamat. Penilaian ini diberikan oleh 30 koresponden supaya memiliki nilai yang valid.

Adapun kriteria penilaian secara subyektif yang dapat digunakan adalah sebagai berikut :

1. Unuseable (skor penilaian 0)

Citra yang diamati memiliki kualitas yang sangat rendah, sehingga sudah tidak dapat diamati lagi.

2. Inferior (skor penilaian 1)

Citra yang diamati memiliki kualitas sangat rendah tapi masih bisa diamati dengan keberadaan interferensi yang benar-benar mengganggu.

3. Marginal (skor penilaian 2)

Citra yang diamati memiliki kualitas yang rendah, sehingga diinginkan dapat diperbaiki dan interferensi masih terasa cukup mengganggu.

(21)

Citra yang diamati memiliki kualitas yang cukup tinggi, dimana interferensi terasa agak mengganggu.

5. Fine (skor penilaian 4)

Citra yang diamati memiliki kualitas yang tinggi, enak dilihat, dimana interferensi tidak terasa mengganggu.

6. Excellent (skor penilaian 5)

Citra yang dihasilkan memiliki kualitas yang sangat tinggi, sebaik-baiknya kualitas sebagaimana yang diinginkan.

2.2.5 Rasio Kompresi

Rasio kompresi adalah ukuran persentase citra yang telah berhasil dimampatkan. Secara matematis rasio pemampatan citra dituliskan sebagai berikut :

(Pers. 2. 5)

2.3 Standar H.265/HEVC

HEVC adalah standar baru untuk kompresi video yang memiliki potensi untuk memberikan kinerja yang lebih baik daripada standar sebelumnya seperti H.264/AVC. Sumber video, terdiri dari serangkaian video frame, dikodekan atau dikompresi oleh encoder video HEVC untuk membuat bitstream kompresi video. Bitsream kompresi disimpan atau ditransmisikan untuk membuat urutan decoded frame [6].

HEVC memiliki struktur dasar yang sama seperti standar sebelumnya seperti video MPEG-2 dan H.264/AVC. Namun, HEVC berisi banyak perbaikan seperti :

1. Partisi lebih fleksibel, dari ukuran partisi yang besar hingga kecil.

2. Fleksibilitas yang lebih besar dalam mode prediksi dan mengubah ukuran blok.

(22)

4. Prediksi dan mode signal dan gerakan vektor lebih canggih. 5. Fitur untuk mendukung pemrosesan efisien pararel.

Hasilnya adalah pengkodean standar yang dapat memungkinkan kompresi yang lebih baik, pada biaya peningkatan kekuatan pemrosesan video. Dengan HEVC, harus memungkinkan untuk menyimpan atau mengirimkan video yang lebih efisien dibandingkan dengan teknologi sebelumnya. Ini berarti:

1. Pada ukuran gambar dan kualitas yang sama, sebuah video sequence HEVC harus menempati sedikit kapasitas panyimpanan atau kapasitas transmisi daripada setara dengan H.264 video sequence.

2. Pada penyimpanan atau transmisi bandwith yang sama, kualitas dan atau resolusi sebuah video sequence HEVC harus lebih tinggi dari video sequence H.264.

Gambar 2. 2 Potensi keuntungan dari HEVC vs H.264 (tanpa skala)

(Sumber : http://vcodex.com)

2.4 Cara Kerja HEVC (High Eficiency Video Coding)

Langkah-langkah yang dilakukan oleh video encoder meliputi :

(23)

2. Prediksi setiap unit menggunakan inter atau intra prediksi, dan mengurangi prediksi dari unit.

3. Transform dan kuantisasi sisa (perbedaan antara unit gambar asli dan prediksi)

4. Entropy coding, prediksi informasi, modus informasi dan header.

Langkah-langkah Video decoder kebalikan dari video encoder yaitu :

1. Entropy encoding dan mengekstraksi unsur-unsur dari urutan kode. 2. Rescaling dan membalik tahap transform.

3. Prediksi setiap unit dan menambahkan prediksi output pengubah invers. 4. Merekonstruksi gambar video decoded.

Gambar 2. 3 Struktur sebuah HEVC encoder dan decoder

(Sumber : http://vcodex.com)

Keuntungan atau kelebihan dari HEVC/H.265 yaitu :

1. Mendukung tayangan UHDTV/8K dengan resolusi 8192 x 4320 pixel. 2. Warna 12 bit, menayangkan gambar lebih berwarna dibanding

kompresi video generasi sebelumnya. 3. Chroma sub sampling 4:4:4 dan 4:2:2.

(24)

5. Targetnya memberikan tayangan gambar lebih baik tapi kompresi video hanya separuh dari H.264.

2.4.1 Partitioning

HEVC mendukung partisi yang sangat fleksibel dari video sequence. Setiap kode video frame, atau gambar, dibagi kedalam Tiles dan atau Slices, yang selanjutnya dibagi ke Coding Tree Units (CTUs). CTU adalah unit dasar coding, analog dengan Macroblock standar sebelumnya, dan dapat menjadi hingga 64x64 pixel dalam satu ukuran. CTU dapat dibagi menjadi persegi yang dikenal sebagai Coding Units (CUs) menggunakan struktur quadtree [7].

Gambar 2. 4 Video frame yang menunjukkan Slices dan CTUs

(source : Parabola search)

2.4.2 Prediction

CUs dipartisi ke satu atau lebih Prediction Units (PUs), masing-masing yang diprediksi menggunakan Intra atau Inter Prediksi.

(25)

Kompresi intraframe terdiri dari proses transformasi dan kuantisasi, dalam proses transformasi digunakan 3D-DCT untuk melakukan proses transformasi dari domain waktu ke domain ruang. Kuantisasi digunakan untuk memotong hasil transformasi, proses selanjutnya adalah pengkodean dengan menggunakan CABAC.

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.

b. Kompresi Interframe : kompresi interframe dilakukan dengan memanfaatkan redudansi temporal yang terdapat antar frame. Redudansi temporal disebabkan adanya pixel-pixel yang berkorelasi di antara frame-frame tersebut, terutama dikarenakan banyak bagian frame yang berubah dibanding frame sebelum atau sesudahnya.

Proses yang digunakan dalam kompresi interframe adalah estimasi gerak (motion compensation) dengan teknik pencocokan blok (matching block) untuk mendapatkan vektor gerak (motion vector).

1. Estimasi dan Kompensasi Gerak

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 ).

(26)

target (target block). Perbedaan relatif posisi ini disebut vektor gerak (motion vector), seperti ditunjukkan pada Gambar 2. 5.

Gambar 2. 5 Vektor Gerak

Jika posisi blok target dan blok yang match sama, maka vektor geraknya adalah nol. Vektor gerak inilah yang menunjukkan pergeseran blok – blok antar frame. 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, decoder 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.

Keefektifan teknik kompresi menggunakan kompensasi gerak berbasis blok ini bergantung pada beberapa kondisi berikut :

1. Objek bergerak pada bidang datar. Efek dari zoom dan rotasi tidak dapat ditangani dengan metode ini.

2. Pencahayaan harus konstan dan seragam. Objek yang mengalami perubahan pencahayaan tidak dapat dikenali

(27)

melakukan kompensasi bila vektor gerak menunjuk ke pixel yang berada diluar batas frame.

2. Block Matching

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.

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. 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 antar frame 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.

(28)

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 2. 6 Pencocokan Blok

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.

2.4.3 Transform dan Quantization

Data sisa yang tersisa setelah prediksi adalah mentransformasikan blok yang berdasarkan Discrete Cosine Transform (DCT) atau Discrete Sine Transform (DST). Satu atau lebih blok diubah dalam ukuran 32x32, 16x16, 8x8, dan 4x4 yang diterapkan sisa data dalam setiap CU [15].

Proses kuantisasi merupakan proses untuk mengurangi jumlah bit yang diperlukan untuk menyimpan suatu nilai dengan memperkecilnya. Proses ini diterapkan pada keluaran proses DCT. Kuantisasi dilakukan dengan membagi keluaran proses DCT dengan suatu nilai yang ditetapkan dalam matriks kuantisasi.

(29)

mempunyai besar yang sama, sedangkan, pada matriks kuantisasi nonuniform, koefisien – koefisien pada matriks meningkat tajam dari titik pusat. Hal ini akan mengakibatkan nilai frekuensi tinggi pada keluaran DCT akan dipotong dengan cepat, sehingga kompresi yang dilakukan lebih efektif [15].

Transformin Forward integer HEVC adalah perkiraan DCT yang ditetapkan sebagai perkalian matriks. Integer DCT adalah [8] :

(Pers. 2. 6)

Dimana X adalah residual block (sisa blok), Y adalah koefisien peubah matriks, dan C adalah inti transformasi matriks. Persamaan tersebut menunjukkan bentuk umum NxN blok diubah oleh integer DCT di HEVC.

2.3.3.1 Discrete Cosine Transform (DCT)

Metode DCT (Discrete Cosine Transform) yang pertama kali diperkenalkan oleh Ahmed, Natarajan dan Rao pada tahun 1974 dalam makalahnya yang berjudul “On Image Processing and a Discrete Cosine Transform”.

Discrete Cosine Transform adalah sebuah teknik untuk mengubah sebuah sinyal kedalam komponen frekuensi dasar. Discrete Cosine Transform merepresentasikan sebuah citra dari penjumlahan sinusoida dari magnitude dan frekuensi yang berubah-ubah. Sifat dari DCT adalah mengubah informasi citra yang signifikan dikonsentrasikan hanya pada beberapa koefisien DCT.

Discrete Cosine Transform berhubungan erat dengan Discrete Fourier Transform (DFT), sehingga menjadikan data direpresentasikan dalam komponen frekuensinya. Demikian pula, dalam aplikasi pemrosesan gambar, DCT tiga dimensi (3D) memetakan sebuah gambar atau sebuah segmen gambar kedalam komponen frekuensi 3D (tiga dimensinya).

(30)

menyusun sinyal tersebut ke frekuensi spasial yang disebut dengan koefisien DCT. Frekuensi koefisien DCT yang lebih rendah muncul pada kiri atas dari sebuah matriks DCT, dan frekuensi koefisien DCT yang lebih tinggi berada pada kanan bawah dari matriks DCT. Sistem penglihatan manusia tidak begitu sensitive dengan error-error yang ada pada frekuensi tinggi dibanding dengan yang ada pada frekuensi rendah. Karena itu, maka frekuensi yang lebih tinggi tersebut dapat dikuantisasi [5].

Kelebihan kompresi data menggunakan Discrete Cosine Transform adalah :

1. DCT menghitung kuantitas bit-bit data gambar dimana pesan tersebut disembunyikan didalamnya. Walaupun gambar yang dikompresi dengan lossy compression akan menimbulkan kecurigaan karena perubahan gambar terlihat jelas, pada metode ini hal ini tidak akan terjadi karena metode ini terjadi di domain frekuensi di dalam image, bukan pada domain spasial, sehigga tidak akan ada perubahan yang terlihat pada cover gambar, dan

2. Kokoh terhadap manipulasi pada stego-object.

Sedangkan kekurangan kompresi data menggunakan Discrete Cosine Transform adalah :

1. Tidak tahan terhadap perubahan suatu objek dikarenakan pesan mudah dihapus karena lokasi penyisipan data dan pembuatan data dengan metode DCT diketahui.

2. Implementasi algoritma yang panjang dan membutuhkan banyak perhitungan.

(31)

2.3.3.2 Three Dimesion-Discrete Cosine Transform (3D-DCT)

Diagram blok 3D-DCT coder dari data multidimensi ditunjukkan pada Gambar 2. 7. Pertama, data 2D dibagi menjadi kumpulan kelompok frame (paling sering 8 frame per kelompok). Kemudian masing-masing kelompok frame dibagi menjadi kubus 3D, biasanya berukuran 8x8x8. Kemudian, 3D-DCT diterapkan untuk setiap kubus. Karena dekorelasi dari DCT, sebagian besar dari energi terkonstentrasi di sejumlah kecil koefisien. Kuantisasi digunakan untuk menghapus beberapa yang kurang relevan, untuk mengamati, informasi dan untuk memfasilitasi kompresi lebih jauh. Setelah itu, entropy encoding dilakukan. Agar efisien, entropy encoding dilakukan secara terpisah untuk berbagai komponen DCT spektrum. Koefisien DC bisa diprediksi efisien dari blok tetangga. Dengan demikian, perbedaannya antara diprediksi dan nilai riil yang dikodekan. [9] .

Gambar 2. 7 Blok Diagram 3D-DCT dari Data Multidimensi

(Sumber : Three-Dimensional DCT Video Compression Technique Based On Adaptive Quantizers. Multimedia Laboratory)

(32)

∑ ∑ ∑ ( ) ( ) ( )

(Pers. 2. 7)

Dimana :

x,y,z adalah index pixels dari ruang pixel (pixel space),

f(x,y,z) adalah nilai sebuah pixel dalam ruang pixel (pixel space),

u,v,w adalah index pixels dalam ruang DCT (DCT space),

F(u,v,w) adalah transformasi nilai pixel kedalam ruang DCT (DCT space), dan

{ √

Kuantisasi dikerjakan sesuai dengan persamaan berikut :

(Pers. 2. 8)

Dimana :

F(u,v,w) adalah elemen sebelum kuantisasi,

Fq(u,v,w) adalah elemen yang sudah terkuantisasi, dan

Q(u,v,w) adalah elemen dari tabel kuantisasi.

(33)

2.4.4 Entropy Coding

Bitstream kode HEVC terdiri dari quantized transform coefficients, prediksi informasi seperti mode prediksi dan gerakan vektor, partisi informasi dan data header lainnya. Semua elemen ini dikodekan menggunakan Context Adaptive Binary Arithmetic Coding (CABAC). Operasi entropy coding dimulai dengan penataan kembali koefisien dalam urutan menurun dari nilai yang diharapkan.

2.4.4.1 CABAC (Context Adaptive Binary Arithmetic Coding)

Jika pada standar H.264 bisa menggunakan algoritma CABAC ataupun CAVLC pada proses entropy coding, maka lain halnya dengan H.265/HEVC yang hanya bisa menggunakan CABAC pada proses entropy coding.

CABAC merupakan sebuah pengkode entropi yang melakukan pengkodean aritmatika biner secara adaptif, berdasarkan context dari data yang dikodekan. CABAC merupakan algoritma yang secara dinamis, dapat memprediksi tingkat kemungkinan pemunculan simbol (symbol probability), pada sistem pengkodean aritmatika biner. Sehingga kemungkinan pemunculan simbol pada pengkodean aritmatik dapat terus ter-update untuk simbol-simbol baru, yang akhirnya dapat menghasilkan kompresi yang lebih baik [16]. CABAC digunakan pada 2 sisi yaitu pada sisi Encoder dan sisi Decoder.

2.5 Unified Modeling Language (UML)

(34)

UML disebut bahasa pemodelan, bukan metode. Sebagian besar metode terdiri, setidaknya pada prinsipnya, kedua model sebuah bahasa dan proses. Bahasa pemodelan adalah notasi (terutama grafis) bahwa metode digunakan untuk mengekspresikan desain. Proses ini menyatakan mereka apa langkah yang harus diambil dalam melakukan desain.

Bagian proses dalam buku banyak metode yang agak samar. Selain itu, kebanyakan orang, ketika mereka mengatakan bahwa mereka menggunakan metode, menggunakan bahasa pemodelan, tapi mereka jarang mengikuti proses. Jadi dalam banyak hal pemodelan bahasa adalah bagian paling penting untuk komunikasi. Jika anda ingin mendiskusikan desain anda dengan seseorang, itu adalah bahasa pemodelan yang anda berdua perlu pahami, bukan proses yang digunakan untuk sampai ke desain tersebut [10].

2.5.1 Diagram UML

Menggunakan berbagai macam diagram dengan fungsi masing-masing untuk menggambarkan setiap proses dari sistem berorientasi objek. Berikut meruapakan beberapa diagram UML diantaranya [11] :

a. Use Case Diagram

Use Case atau diagram use case merupakan pemodelan yang digunakan untuk menggambarkan kelakuan (behavior) dari sistem yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut.

Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut aktor dan usecase [11].

(35)

sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang.

2. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit atau aktor.

b. Activity Diagram

Diagram aktivitas atau activity diagram adalah sebuah diagram yang menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Dalam diagram aktivitas yang perlu diperhatikan adalah bahwa diagram aktivitas menggambarkan aktivitas sistem, bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem [10]. Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut [11] :

1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan. 2. Urutan atau pengelompokkan tampilan dari sistem/user interface

dimana setiap aktivitas dianggap memiliki seuah rancangan antarmuka tampilan.

3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya.

(36)

c. Class Diagram

Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi [11]. 1. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas. 2. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu

kelas.

d. Sequence Diagram

Diagram sekuen adalah diagram yang menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambarkan diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.

(37)

33 BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Perangkat Lunak

Analisis perangkat lunak dapat didefinisikan sebagai penguraian dari suatu perangkat lunak yang utuh ke dalam bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya.

3.1.1 Analisis Masalah

Setelah menemukan beberapa penelitian yang telah ada sebelumnya mengenai kompresi video HEVC dengan berbagai macam teknik maupun algoritma yang digunakan dalam proses kompresi maka ditemukan masalah yang akan diperbaiki oleh penggunaan algoritma lain dan juga kombinasi antara satu algoritma dengan algoritma lain.

Mengacu pada penelitian sebelumnya tentang encode H.265/HEVC sebelumnya yang memanfaatkan fase korelasi antara current blok dengan blok setelahnya untuk mengekstrak 3 fitur gerak berbeda yang berfokus pada tiga aspek yang berbeda pula dari gerak masing-masing CUs (Control Unit). Dari metode yang diusulkan didapat bahwa metode tersebut menghemat 1% bit rate atau meningkatkan 0.15dB PSNR di atas rata-rata dan juga mengurangi sekitar 30% waktu encoding [2].

(38)

3.1.2 Analisis Metode

Analisis metode digunakan untuk mengetahui alur proses dari sebuah metode yang digunakan dapat diterapkan ke dalam aplikasi yang dibangun. Algoritma yang akan digunakan dalam pembangunan kompresi video ini yaitu algoritma 3D-DCT yang diterapkan pada proses transform dan algoritma Fast Coding Unit Decision yang diterapkan pada proses partisi CU (Coding Unit).

3.1.2.1 Analisis Algoritma 3D-DCT (Three Dimension-Discrete Cosine Transform)

(39)

Dalam proses transformasi block images ke dalam 3D-DCT berlaku rumus seperti Persamaan (2.7) :

{ √ √

Sebagai ilustrasi transformasi coding MB [8x8] dimana akan mentransmisikan bit-bit biner saja ‘0’ atau ‘1’, maka akan dibahas proses yang terjadi dari setiap block pada transform coding.

Berikut adalah proses yang terjadi dari setiap blok pada transform coding menggunakan algoritma 3D-DCT :

1. Sebelum dilakukan proses transform pada proses encode kompresi video telah dilalui proses partition dimana sebuah masukan video dibagi menjadi beberapa frame atau gambar terlebih dahulu.

2. Gambar dibagi menjadi beberapa blok, dan masing-masing blok memiliki 8 piksel x 8 piksel.

(40)

3. Data matriks original dikurangi dengan 128 karena algoritma 3D-DCT bekerja pada rentang -127 sampai 127 sesuai dengan ketentuan pengolahan citra digital pada citra berwarna. Matriks original dapat dilihat pada Gambar 3. 2.

104 101 99 97 95 95 96 99

101 96 95 95 96 98 99 99

99 92 91 92 97 102 103 99

98 90 89 91 98 104 104 98

98 90 89 92 97 103 104 98

99 91 90 92 97 102 103 98

99 92 91 93 97 102 102 98

100 93 92 94 98 102 102 98

Gambar 3. 2. Original Image [8x8]

Matriks original yang sudah dikurangi dengan 128 dapat dilihat pada Gambar 3. 3.

-24 -27 -29 -31 -33 -33 -32 -29 -27 -32 -33 -33 -32 -30 -29 -29 -29 -36 -37 -36 -31 -36 -25 -29

X = -30 -38 -39 -37 -30 -24 -24 -30 -30 -38 -39 -36 -31 -25 -24 -30 -29 -37 -38 -36 -31 -26 -25 -30 -29 -36 -37 -35 -31 26 -26 -30 -28 -35 -36 -34 -30 -26 -26 -30

(41)

4. Buat dan cari nilai untuk matriks 3D-DCT untuk matriks C dan buat matriks transpose nya untuk matriks Ct.

{ √ √

Maka dengan menggunakan rumus matriks diatas dapat dihitung nilai matriks C mulai dari C(0,0) sampai C(7,7).

Nilai i=0 maka rumus menggunakan Cij = , dimana nilai N adalah banyaknya blok. Sehingga didapat hasil sebagai berikut :

(42)

Maka dari perhitungan diatas didapatkan nilai untuk matriks C seperti ditunjukkan pada Gambar 3. 4. Dan matriks transpose C ditunjukkan pada Gambar 3. 5.

0.3536 0.3536 0.3536 0.3536 0.3536 0.3536 0.3536 0.3536 0.4904 0.4157 0.2778 0.0975 -0.0975 -0.2778 -0.4157 -0.4904 0.4619 0.1919 -0.1913 -0.4619 -0.4619 -0.1913 0.1913 0.4619 C = 0.4157 -0.0975 -0.4904 -0.2778 0.2778 0.4904 0.0975 -0.4157

0.3536 -0.3536 -0.3536 0.3536 0.3536 -0.3536 -0.3536 0.3536 -0.2778 -0.4904 0.0975 0.4157 -0.4157 -0.0975 -0.4904 -0.2778

0.1913 -0.4619 0.4619 -0.1913 -0.1913 0.4619 -0.4619 0.1913 0.0975 -0.2778 0.4157 -0.4904 0.4904 -0.4157 0.2778 -0.0975

Gambar 3. 4 Nilai Matriks C

0.3536 0.4904 0.4619 0.4157 0.3536 -0.2778 0.1913 0.0975 0.3536 0.4157 0.1919 -0.0975 -0.3536 -0.4904 -0.4619 -0.2778 0.3536 0.2778 -0.1913 -0.4904 -0.3536 0.0975 0.4619 0.4157 CT = 0.3536 0.0975 -0.4619 -0.2778 0.3536 0.4157 -0.1913 -0.4904

0.3536 -0.0975 -0.4619 0.2778 0.3536 -0.4157 -0.1913 0.4904 0.3536 -0.2778 -0.1913 0.4904 -0.3536 -0.0975 0.4619 -0.4157 0.3536 -0.4157 0.1913 0.0975 -0.3536 -0.4904 -0.4619 0.2778 0.3536 -0.4904 0.4619 -0.4157 0.3536 -0.2778 0.1913 -0.0975

Gambar 3. 5. Matriks CT

5. Dengan menggunakan persamaan 3D-DCT, cari matriks Y dimana matriks Y akan digunakan untuk kuantisasi lanjutan.

(43)

-248.00 -16.1592 11.3996 19.2935 0.50 6.1245 2.0431 1.5029 2.2777 8.2394 1.8936 -6.5075 0.8284 -1.8108 0.0814 -0.2827 3.9989 11.1516 0.6036 -7.3684 1.5772 -1.8480 0.1036 -0.8600 Yij = 0.2381 4.3461 0.8372 -2.9047 0.6091 -0.2061 -0.2008 -0.4762

1.0000 1.3390 -0.3266 -0.1420 0 -0.1829 -0.1353 -0.1688 0.0710 0.1907 0.1665 0.3974 -0.4070 -0.5022 0.2587 0.0355 0.5084 0.2214 0.6036 0.1661 -0.1121 -0.0122 -0.1036 0.3436 0.0179 -0.1792 0.2387 -0.3785 -0.1648 0.2781 -0.1218 -0.3325

Gambar 3. 6 Matriks Y

Matriks Y yang ditunjukkan Gambar 3. 6 berisi koefisien DCT, yang kemudian akan dikuantisasi dengan level kuantisasi yang dipilih.

6. Setelah didapatkan data Matriks Y atau F(u,v,w)dari hasil 3D-DCT transform maka proses selanjutnya adalah kuantisasi. Dengan menggunakan rumus pada Persamaan 2.8 :

Dimana tanda […] hasil akan dibulatkan ke nilai integer yang terkecil. Oleh karena Q(u,v,w) merupakan matriks [8 8] dengan nilai konstan = 16, karena menerjemahkan kedalam blok Simulink agak sulit maka diganti dengan proses perkalian dengan nilai konstan = 1/16. Sehingga rumus proses kuantisasi akan menjadi :

(44)

16 16 16 16 16 16 16 16

16 16 16 16 16 16 16 16

16 16 16 16 16 16 16 16

Q = 16 16 16 16 16 16 16 16

16 16 16 16 16 16 16 16

16 16 16 16 16 16 16 16

16 16 16 16 16 16 16 16

16 16 16 16 16 16 16 16

Gambar 3. 7 Matriks Kuantisasi

-15 -1 0 1 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

= 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Gambar 3. 8 Matriks Hasil Kuantisasi

(45)

7. Susun bilangan menggunakan fungsi zig zag scanning dimana ini merupakan langkah terakhir dalam proses transform.

Gambar 3. 9. Metode Zig Zag Scanning

Matriks R yang terkuantisasi sekarang akan dikonversi sekarang akan

dikonversi oleh encoder ke data biner (01101011 …). Koefisien 3D

(46)

3.1.2.2 Analisis Algoritma Fast Coding Unit Decision

Dalam spesifikasi HEVC, CU adalah sebuah blok persegi 2Nx2N dan 2N bisa 64, 32, 16 atau 8. CU terbesar juga disebut LCU (Large Coding Unit). Di dalam HEVC, slice dalam frame terdiri dari banyak LCUs, dan sebuah CU besar dapat dibagi menjadi 4 CUs kecil. Masing-masing CU dipartisi secara rekursif hingga ukuran terkecil dari CU tercapai. Salah satu CU 2N x 2N yang diproses di setiap kedalaman yaitu analisis encoder Rate-Distortion (RD) mode. Prediction Unit (PU) hanya didefinisikan pada daun node dari CU dari setiap level

kedalaman [12]. PU yang memungkinkan untuk CU 2Nx2N pada low complexity setting dapat dilihat seperti Gambar 3. 10 berikut :

(47)

Algoritma dasar untuk fast CU size decision dan dua tools tambahan yang berguna untuk meningkatkan performa pengkodean dan meningkatkan pengurangan masing-masing waktu [12]. Flowchart dari algoritma ini seperti Gambar 3. 11 berikut :

(48)

3.1.3 Analisis Sistem Yang Akan Dibangun

Analisis sistem yang akan dibangun ini dilakukan untuk mengetahui tahapan-tahapan yang terjadi pada proses pembuatan aplikasi kompresi video dimana analisis lebih ditekankan pada metode-metode yang akan diterapkan pada tahapan pembuatan aplikasi tersebut. Gambar 3. 12 berikut adalah tahapan yang dilakukan dalam proses encoding dan decoding kompresi video HEVC/H.265.

(49)

a. Langkah-langkah utama pada encoding HEVC/H.265 yaitu :

1. Membagi (partition) setiap gambar menjadi beberapa bagian CUs (Coding Units).

2. Memprediksi (prediction) setiap unit menggunakan inter atau intra dan mengurangi prediksi dari setiap unit, kebanyakan HEVC menggunakan intra prediction.

3. Mengubah (transform) dan mengkuantisasi (quantization) proses (perbedaan antara unit asli dan prediksinya).

4. Mengubah pengkodean output (entropy coding). Lalu informasi prediksi diberikan header dan informasi.

b. Langkah-langkah utama pada decoding HEVC/H.265 yaitu :

1. Melakukan decoding entropi dan mencari unsur-unsur dari urutan setiap kode (entropy decode).

2. Melakukan pengubahan ukuran dan melakukan tahap pembalikan transformasi (inverse transform)

3. Membangun gambar video yang sudah di transformasi (reconstruct).

3.1.3.1 Analisis Masukan

Dalam perancangan teknik kompresi pada video yang terdiri Encoder-Decoder (CODEC) pertama kali adalah menentukan input video yang ingin diolah atau dikompres. Input data video mempunyai spesifikasi sebagai berikut :

1. Nama file = videocontoh.mp4 2. Format video = mp4 (MPEG-4) 3. Frame rate = 25 fps

4. Type file = Y|U|V

5. Resolusi spatial = [480x368] piksel

(50)

tertentu. Sesuai dengan tipe file video yang digunakan disini pemisahan komponen disajikan dengan bentuk Y|U|V. Y menyatakan sinyal kecerahan, sedangkan U dan V menyatakan sinyal warna.

Video yang digunakan memiliki resolusi 480x368 piksel dimana video tersebut tergolong dalam format video diatas CIF. Kedalaman piksel adalah sebesar 8 bit/piksel dan laju frame-nya adalah 25 fps. Dengan demikian kita dapat menghitung jumlah bit yang dibutuhkan, yaitu : 480 x 368 piksel x 1,5 x 8 bit/piksel x 25 fps = 52.992.000 bit/s.

Jumlah bit yang diperlukan sekitar 52 Mbit/s. Ini bukanlah jumlah yang kecil. Pada format yang memiliki kedalaman bit tinggi (misal 24 bit) dan resolusi tinggi, jumlah bit yang diperlukan tentu saja jauh lebih tinggi. Oleh karena itu, maka kompresi diperlukan untuk memampatkan data seefisien mungkin.

3.1.3.2 Encoding

Pengkodean atau penyandian (Encoding) adalah proses konversi informasi dari suatu sumber (objek) menjadi data, yang selanjutnya dikirimkan ke penerima atau pengamat, seperti pada sistem pemrosesan data. Pada encoder, mula-mula ditentukan apakah suatu frame akan dikompresi secara interframe atau intraframe. Namun pada HEVC encoder pengkompresian dilakukan secara intraframe, dimana pada data video yang masuk dilakukan transformasi dengan DCT, selanjutnya dilakukan kuantisasi. Tahap-tahap dan metode yang digunakan pada encoding adalah sebagai berikut :

a. Partition

Pada proses partisi, video tersusun atas frame-frame yang frame atau gambar tersebut dibagi kedalam Tiles dan atau Slices, yang selanjutnya dibagi ke CTUs. CTU dapat dibagi menjadi persegi-persegi yang dikenal sebagai CU menggunakan struktur quadtree.

(51)

[(

] = ±172 buah blok. Pada tiap-tiap blok itulah diterapkan

langkah-langkah kompresi intraframe. Partisi per frame pada video ini disajikan dalam Gambar 3. 13, Gambar 3. 14 dan Gambar 3. 15 ini, sample diambil hanya pada frame 0, frame 1, dan frame 2 :

(52)

Gambar 3. 14 Partisi video pada frame 1

Gambar 3. 15 Partisi video pada frame 2

(53)

Gambar 3. 16 Ukuran CU yang digunakan pada piksel

b. Prediction

Prediksi CU pada kasus kompresi video ini menggunakan kompresi intraframe. Kompresi intraframe dilakukan dengan memanfaatkan redudansi spasial yang terdapat dalam suatu frame. Redudansi ini disebabkan karena adanya korelasi antara sebuah piksel disekitarnya.

Intra prediksi HEVC dilakukan pada prediction unit (PU)-wilayah frame video. Nilai-nilai piksel PU harus diprediksi paling dekat dengan nilai piksel asli sebanyak mungkin untuk meningkatkan efisiensi kompresi. Terdapat sebanyak 35 mode intra-prediksi di HEVC yaitu Planar (mode 0), DC (modus 1) dan 33 angular modes (2-34 mode).

(54)

Gambar 3. 17 Frame 0 yang sudah diprediksi

Gambar 3. 18 Frame 1 yang sudah diprediksi c. Transformasi (Transform) dan Kuantisasi (Quantization)

(55)

domain ruang. Dengan melakukan proses transformasi ini, maka data vital akan terkumpul pada frekuensi DC. Gambar 3. 19 berikut adalah blok diagram dari proses Transform Coding :

Gambar 3. 19 Blok Diagram Transform Coding

Skema dari transform seperti terlihat pada contoh Gambar 3. 20 berikut :

(56)

d. Entropy Coding

Semua elemen dikodekan menggunakan CABAC (Context Adaptive Binary Arithmetic Coding). Operasi entropy coding dimulai dengan penataan kembali koefisien dalam urutan menurun dari nilai yang diharapkan. Gambar 3.21 berikut adalah tahapan dalam blok diagram encoder CABAC :

Gambar 3. 21 Blok diagram encoder CABAC

1. Binarization 2. Context Modelling 3. Binary Arithmetic Coding

e. Entropy Decode

Secara umum decoder CABAC bekerja dalam tiga tahap, yaitu [16]:

Gambar 3. 22 Blok diagram decoder CABAC

1. Context Modeling

CABAC memiliki kompresi yang baik, karena adanya perkiraan probabilitas yang tepat. Pada CABAC, perkiraan probabilitas ini diwakili oleh context model.

(57)

karena modul Inverse CABAC pada tugas akhir ini menerima input berupa alamat context model yang harus dipilih untuk setiap proses decoding.

a. Proses Inisialisasi Context Model

Nilai awal context model dapat dihitung dengan menggunakan persamaan pada gambar berikut :

Gambar 3. 23 Prosedur untuk Inisialisasi Context Model

Dari persamaan diatas dilihat bahwa untuk membentuk nilai awal context model diperlukan kedua nilai parameter kuantisasi (SliceQP), dan parameter µᵧ dan vᵧ. kedua parameter µᵧ dan vᵧ ini telah dicantumkan pada standar.

b. Perkiraan Probabilitas

Untuk CABAC, 64 nilai representasi probabilitas, atau yang biasa disebut dengan indeks model ini diturunkan untuk LPS dari persamaan :

, untuk

dan

Jumlah nilai representas yang berjumlah 64 ini merupakan kompromi

antara adaptasi yang cepat ( α 0, dan jumlahnya sedikit) dan kebutuhan

akan banyaknya tabel yang cukup agar lebih akurat ( α  1, dan

(58)

sekarang, yang diturunkan dari indeks state antara 0-63 dan nilai MPS yang dapat berupa 0 atau 1.

Gambar 3. 24 Memperlihatkan nilai probabilitas LPS p antara 0 dan 0,5 (pada sumbu y) yang berpasangan dengan nilai state index antara 0-63 (pada sumbu x).

Gambar 3. 24 Nilai Probabilitas LPS dan aturan transisi

(59)

2. Binary Arithmetic Coding

Untuk men-decode sebuah bin, binary arithmetic decoder membutuhkan nilai range, offset, dan context model yang bersangkutan. Nilai offset ini merupakan kriteria untuk menentukan nilai bin yang di-decode, dan diinisialisasi dengan mengambil 9 bit pertama dari bit stream yang telah di-encode. Gambar 3. 25 dibawah menggambarkan pemroses binary arithmatic decoder untuk satu bin. CABAC decoding engine akan selalu melakukan update terhadap dua register 9-bit : range dan offset selama proses decoding berlangsung. Register range memantau lebar dari interval saat ini sedangkan register offset memantau aliran bit masukan. Ketika melakukan decoding sebuah bin, range dibagi menjadi dua daerah : rLPS untuk rentang perkiraan LPS dan rMPS untuk rentang perkiraan MPS. Ketika proses pengkodean berlangsung, nilai rLPS dibaca dari sebuah tabel 2 dimensi 256-byte, dialamatkan oleh 2-bit nilai range dan 6-bit nilai state. Subinterval tempat suatu bit input terjadi (ditandai dengan offset), menentukan bin itu MPS atau LPS.

Gambar 3. 25 Proses Decoding

(60)

(atau sama dengan) nilai rMPS. Maka nilai baru dari range dan offset adalah :

Jika MPS: range_baru = rMPS; offset_baru = offset

Selain itu: range_baru = rLPS; offset_baru = offset - rMPS

Untuk menjaga ketelitian selama proses decoding berlangsung, range_baru dan offset_baru harus selalu di-renormalisasi untuk memastikan MSB dari range selalu 1, misalnya: range_new : 9’b001010110, offset_baru : 9’b000110010, selama proses renormalisasi, range_baru di ‘geser kiri’ dua bit sehingga MSB-nya 1 dan dua bit terakhir ditambahkan 2’b00. Nilai offset_baru secara bersamaan juga di ‘geser kiri’ dua bit dan dua bit akhir ditambahkan data masukan. Dengan cara ini, offset menerima bit dari masukan untuk menjaga jejak posisi bit masukan pada interval saat ini. Pada proses ini, probabilitas LPS (pLPS) diperkirakan oleh context model yang bersangkutan.

Untuk mode bypass, pLPS dibuat tetap 0,5 dan tidak dibutuhkan context model. Pada kasus ini, offset akan selalu dibandingkan dengan nilai range/2 untuk menentukan apakah bin itu MPS atau LPS. Pada mode ini, untuk menjaga ketelitian integer, nilai offset di ‘geser kiri’ satu bit dan menerima satu bit (di LSB) dari data masukan. Kemudian nilai offset baru dibandingkan dengan nilai range untuk menentukan bin itu 1 atau 0.

3. Inverse Binerisasi

Ada 5 jenis binerisasi yang digunakan pada CABAC, yaitu : 1. Unary Binarization (U)

2. Truncated Unary Binarization (TU)

3. Concatenated Unary/k-th Order Exp-Golomb Binarization (UEGk) 4. Fixed-length Binarization (FL)

(61)

3.1.4 Analisis Kebutuhan Non Fungsional

Analisis kebutuhan non fungsional merupakan analisis yang dibutuhkan untuk menentukan spesifikasi kebutuhan sistem. Spesifikasi ini juga meliputi elemen atau komponen-komponen apa saja yang dibutuhkan untuk sistem yang akan dibangun sampai dengan sistem tersebut diimplementasikan. Analisis kebutuhan ini juga menentukan spesifikasi masukan yang diperlukan sistem, keluaran yang akan dihasilkan sistem dan proses yang dibutuhkan untuk mengolah masukan sehingga menghasilkan suatu keluaran yang diinginkan. Pada analisis kebutuhan sistem non fungsional ini dijelaskan analisis kebutuhan perangkat keras, analisis kebutuhan perangkat lunak, dan analisis pengguna.

3.1.4.1 Analisis Kebutuhan Perangkat Keras

Perangkat keras merupakan salah satu kebutuhan yang sangat penting bagi proses kompresi video. Perangkat keras akan mempengaruhi kinerja dari proses kompresi video, semakin tinggi spesifikasi dari perangkat keras yang digunakan maka akan semakin cepat pula proses kompresi yang akan dijalankan.

Perangkat keras yang digunakan pada pembangunan aplikasi kompresi video ini yaitu seperti terlihat pada Tabel 3. 1.

Tabel 3. 1 Spesifikasi Perangkat Keras

Nama Perangkat Spesifikasi

Processor Intel(R) Core(TM) i3

RAM 2 GB

Harddisk 500 GB

VGA Card Intel(R) HD Graphics Mouse dan keyboard Standard PS/2

(62)

Tabel 3. 2. Spesifikasi Perangkat Keras

Nama Perangkat Spesifikasi Processor Intel(R) Core(TM) i5 2,67GHz

RAM Min 2 GB untuk resolusi dibawah HD, dan 8 GB untuk resolusi diatas HD. Harddisk Min. 500 GB

VGA Card Min. Intel(R) HD Graphics Mouse dan keyboard Standard PS/2

3.1.4.2 Analisis Kebutuhan Perangkat Lunak

Perangkat lunak yang digunakan untuk membangun aplikasi kompresi video ini yaitu seperti pada Tabel 3. 3.

Tabel 3. 3 Spesifikasi Perangkat Lunak

Nama Perangkat Spesifikasi Sistem Operasi Windows 7 Ultimate 64-bit Bahasa Pemrograman C#

Aplikasi pemrograman IDE Visual Studio 2010 Library ffmpeg

Pemodelan UML

Video Player 1. VLC

2. Multimedia Player Classic

3.1.4.3 Analisis Kebutuhan Pengguna

Analisis pengguna aplikasi ditujukan untuk seluruh user yang ingin melakukan pemampatan video yang menurut mereka ukuran video tersebut terlalu besar dan perlu dilakukan kompresi agar sesuai dengan ukuran yang mereka inginkan. Karakteristik pengguna untuk menggunakan aplikasi ini adalah :

1. Minimal dapat mengoperasikan komputer.

(63)

3.1.5 Analisis Kebutuhan Fungsional Perangkat Lunak

Analisis kebutuhan fungsional menggambarkan proses kegiatan yang akan diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan sistem agar sistem dapat berjalan dengan baik.

Analisis yang dilakukan dimodelkan dengan menggunakan UML (Unified Modeling Language). Tahap-tahap pemodelan dalam analisis tersebut antara lain

identifikasi aktor, use case diagram, skenario use case, activity diagram, sequence diagram, class diagram.

3.1.5.1 Use case Diagram

Pemodelan use case adalah pemodelan sistem dari perspektif pandangan pemakai aktif (end user). Model use case adalah pandangan dari luar sistem, sementara model rancangan adalah pandangan dari dalam. Model use case menangkap penggunaan-penggunaan sistem, sedangkan model rancangan merepresentasikan pembangunan dari sistem. Gambar 3. 26 berikut ini adalah gambar dari use case untuk aplikasi kompresi video.

(64)

a. Identifikasi Actor

Actor adalah abstraksi dari orang dan sistem yang lain yang mengaktifkan fungsi dari target sistem. Berikut adalah aktor yang berperan dalam menjalankan aplikasi yang dibangun seperti terlihat pada Tabel 3. 4.

Tabel 3. 4 Use Case Actor

No Actor Deskripsi

A-01 User Merupakan aktor dari sistem yang dibangun atau pengguna sistem yang akan menjalankan segala fungsionalitas yang ada pada aplikasi kompresi.

b. Identifikasi Use case Diagram

Berikut Tabel 3. 5 identifikasi use case yang terdapat pada aplikasi :

Tabel 3. 5 Identifikasi Use Case

No Use Case Deskripsi

UC-01 Mengelola file kompresi

Proses yang didalamnya mengatur segala pengaturan yang akan dan sedang berlangsung pada file video kompresi seperti menambahkan file video yang akan dikompresi, menghapus file video yang batal dikompresi, maupun mengatur segala pengaturan keluaran video yang sudah dikompresi.

UC-02 Browse File Proses untuk mengambil file video dari source.

UC-03 Kompresi Proses yang didalamnya terdapat fungsionalitas Start yang dimana fungsi tersebut terjadi proses kompresi video

UC-04 Audio Channel Proses untuk mengatur audio channel dari video yang akan dikompresi.

UC-05 Audio Bitrate Proses untuk mengatur audio bitrate dari video yang akan dikompresi.

UC-06 Video Framesize Proses untuk mengatur video frame size dari video yang akan dikompresi.

UC-07 Audio Samplerate Proses untuk mengatur audio samplerate dari video yang akan dikompresi.

(65)

dikompresi.

UC-9 Output Folder Proses untuk mengatur output folder dari video yang akan dikompresi.

3.1.5.2 Skenario Use Case

Gambar

Gambar 2. 7  Blok Diagram 3D-DCT dari Data Multidimensi
Gambar 3. 10
Gambar 3. 11 berikut :
Gambar 3. 12 Langkah-langkah proses Encoding dan Decoding HEVC/H.265
+7

Referensi

Dokumen terkait

Penyaluran dana zakat kepada entitas pengelola

Yohanes Indrayono/Iman Santoso, S.E.. Yohanes Indrayono/Iman

JURUSAN TEKNIK INFORMATIKA, KOMPUTERISASI AKUNTANSI DAN MANAJEMEN INFORMATIKA JADWAL SERTIFIKASI SEMESTER GENAP TA... Basis Data Remedia

[r]

Dari diagram aktivitas belajar siklus I dan siklus II dapat dijelaskan mengenai peningkatan aktivitas belajar peserta didik, perolehan data pada siklus I indikator pertama

berdasar data tersebut, dengan latar belakang adat ketimuran yang bekerja adalah laik-laki sebagai kepala keluarga, maka seharusnya jam kerja perempuan harus tidak lebih

Beberapa orang (atau grup dari sebuah proyek besar) dapat diberikan tanggung jawab untuk melakukan tugas atau menyelesaikan kegiatan-kegiatan yang dilibatkan... Anda dapat

Biaya pendidikan adalah keseluruhan pengeluaran baik yang bersifat uang maupun bukan uang, sebagai ungkapan rasa tanggung jawab semua pihak (masyarakat, orang tua, dan