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

(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,

Fakultas Teknik dan Ilmu Komputer, Program Studi Teknik Informatika


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

[11] S, R. A., & Shalahudin, M. , “Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek”,Bandung: Informatika, 2013.


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

[17] ITU-T and ISO/IEC JTC 1, Advanced Video Coding for Generic Audiovisual Services, ITU-T Rec. H.264 and ISO/IEC 14496-10 (AVC), version 1, 2003, version 2, 2004, versions 3, 4, 2005, versions 5, 6, 2006, versions 7,8, 2007, versions 9,10, 11, 2009, versions 12, 13, 2010, versions 14, 15, 2011, versions 16, 2012.


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

Standar kompresi video yang paling sukses dan masih digunakan sampai saat ini yaitu H.262/MPEG-2 Video (tahun 1994) dan H.264/MPEG-4 AVC (tahun 1999). Keduanya dikembangkan oleh dua lembaga standarisasi internasional (join project), yaitu ITU-T dan ISO/IEC. Pemutakhiran teknik kompresi video tak berhenti sampai disini. Saat ini, kedua lembaga tersebut juga tengah menetapkan standar kompresi video yang dikenal sebagai High Efficiency Video Coding (H.265/HEVC) yang telah dipublikasikan pada awal tahun 2013 (H.265/HEVC versi pertama). Format H.265/HEVC lebih menguntungkan karena ukuran file dengan durasi yang sama seperti H.264, dapat dikecilkan sampai separuh tanpa mengurangi kualitas gambar berarti. Mungkin beberapa tahun lagi, tampilan video akan lebih tajam dan lebih berwarna. Walau teknologi 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].

Mengacu pada penelitian diatas maka penelitian ini dimaksudkan untuk menganalisis & mengimplementasikan algoritma 3D-DCT (Three Dimension-DCT) dengan menggunakan pengkodean CABAC pada kompresi video. Penelitian ini merupakan pengembangan dari penelitian diatas dimana pada penelitian terdahulu pada proses transform menggunakan algoritma DCT, sedangkan pada penelitian ini akan dikembangkan lagi menjadi 3D-DCT pada proses transform-nya. Selain itu pada proses implementasi juga memadukan antara algoritma 3D-DCT pada proses transform dengan fast coding unit decision algorithm pada CU (Coding Unit) untuk menghasilkan peningkatan optimalisasi waktu kompresi (encoding time) dan ukuran bit rate (size) yang lebih baik dari penelitian sebelumnya.


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

2. Menghasilkan perpaduan antara algoritma 3D-DCT pada proses transform unit dan fast encoding unit decision algorithm pada CU dapat meningkatkan optimalisasi waktu kompresi (encoding time) dan ukuran (size) video H.265/HEVC.


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

Metode penelitian deskriptif adalah suatu metode untuk meneliti status sekelompok manusia, suatu objek, suatu set kondisi suatu sistem pemikiran ataupun suatu kelas peristiwa pada masa sekarang. Tujuan dari penelitian deskriptif ini adalah untuk membuat deskripsi, gambaran atau lukisan secara sistematis, faktual, dan akurat mengenai fakta-fakta, sifat-sifat serta hubungan antar fenomena yang diselidiki[3]. Gambar 1. 1 berikut merupakan tahap-tahap metodologi penelitian dari tugas akhir ini :


(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

Metode yang akan digunakan pada kasus ini adalah metode Waterfall. Model ini mengusulkan sebuah pendekatan kepada perkembangan aplikasi yang


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

Tahap implementasi yaitu untuk merancang sistem dengan cara mengimplementasikan algoritma 3D-DCT pada aplikasi kompresi video menggunakan bahasa pemrogaman C#. Tahap ini dilakukan pembuatan


(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

Menguraikan tentang dasar-dasar pemikiran yang berisi tentang latar belakang masalah, perumusan masalah, maksud dan tujuan, batasan masalah, metode penelitian, serta sistematika penulisan.


(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

Berisi mengenai hal-hal penting yang telah dibahas dan kemudian dibuat kesimpulan dari hasil penulisan skripsi ini dan saran yang diberikan untuk pengembang selanjutnya.


(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 imagedigital 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

Resolusi ( resolution ) atau dimensi frame ( frame dimension ) adalah ukuran sebuah frame pada videodigital. Resolusi dinyatakan dalam pixel x pixel. Semakin tinggi resolusi, semakin baik kualitas video tersebut, dalam arti bahwa dalam ukuran fisik yang sama, video dengan resolusi tinggi akan lebih detil. Namun, resolusi yang tinggi akan mengakibatkan jumlah bit yang diperlukan untuk menyimpan atau mentransmisikannya meningkat. Misalnya pada format QCIF ( Quarter Common Intermediate Formats ), resolusinya adalah 144 pixel x 176 pixel, ukuran ini umum digunakan untuk konferensi video.


(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

Pada video digital, umumnya data video dipisahkan menjadi komponen – komponen, baik komponen warna maupun komponen kecerahan. Penyajian semacam ini disebut component video. Pada component video, tiap komponen dipisahkan dengan cara tertentu. Beberapa cara pemisahan komponen tersebut adalah [5]:


(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

Kompresi data merupakan cabang ilmu komputer yang bersumber dari Teori Informasi. Teori informasi sendiri adalah salah satu cabang Matematika yang berkembang sekitar akhir dekade 1940-an. Tokoh utama dari Teori Informasi adalah Claude Shannon dari Bell Laboratory. Teori Informasi memfokuskan pada berbagai metode tentang informasi termasuk penyimpanan dan pemrosesan pesan. Teori Informasi mempelajari pula tentang redudancy (informasi tak berguna) pada pesan. Semakin banyak redudancy semakin besar pula ukuran pesan, upaya mengurangi redudancy inilah yang akhirnya melahirkan subyek ilmu tentang 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]: 1. Waktu kompresi dan waktu dekompresi


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

Kualitas citra hasil pemampatan dapat diukur secara kuantitatif menggunakan besaran PSNR( Peak Signal to Noise Ratio). Semakin besar nilai PSNR maka citra hasil pemampatan semakin mendekati citra aslinya, dengan kata lain semakin bagus kualitas citra hasil pemampatan tersebut.


(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 =

N

M

.

1

   



     1 0 1 0 2 , , M x N y y x g y x

f ……….…….. (Pers. 2. 3)

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.

Nilai PSNR yang baik biasanya berkisar antara 20dB sampai dengan 40dB. Pada umumnya disajikan dengan angka desimal yaitu dua angka dibelakang koma. Nilai nyata (actual value) tidak sepenuhnya berarti,


(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

MSE

255

………..………. (Pers. 2. 4)

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 : 1. Partisi setiap gambar ke beberapa unit.


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

4. Maksimum kecepatan video sampai 300 fps, untuk versi awal masih 59,94 fps.


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

a. Kompresi Intraframe : Kompresi Intra Prediksi dilakukan dengan memanfaatkan redundansi spasial yang terdapat dalam suatu frame. Redundansi ini disebabkan karena adanya kesamaan antara sebuah


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

Dalam melakukan pencocokan tersebut, lokasi dari blok yang paling mirip atau match pada frame referensi (reference frame) berbeda dari lokasi blok


(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

3. Objek yang dilewati objek lain tidak dapat ditangani dengan metode ini. Blok – blok yang terletak pada pinggiran frame, diestimasi dan vektor gerak boleh melebihi batas frame. Pixelpixel pinggir digunakan untuk


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

Langkah terakhir adalah menemukan pencocokan blok pada daerah pencarian. Proses ini dilakukan dengan membandingkan target blok dengan blok – blok pada daerah pencarian yang disebut blok kandidat, seperti ditunjukkan pada Gambar 2. 6. Semakin besar displacement, semakin luas daerah pencarian, semakin besar pula peluang untuk mendapatkan pencocokan blok yang bagus. Namun jumlah blok kandidat meningkat secara kuadratik sebanding dengan peningkatan displacement, sehingga lebih banyak lagi pembandingan blok yang perlu dilakukan.


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

Quantum adalah matriks kuantisasi. Matriks kuantisasi dapat dipilih


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

Discrete Cosine Transform adalah sebuah skema lossy compression


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

Pada dekompresi, untuk mentransformasikan kembali data dari domain frekuensi ke domain ruang, digunakan inverse dari discrete cosine transform atau IDCT.


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

Hasil dari operasi kuantisasi adalah sekumpulan nilai kecil koefisien, dimana nilai terbesarnya adalah 0. Koefisien ini kemudian diubah menjadi urutan biner yang kompak menggunakan entropy coder.


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

UML adalah penerus gelombang beriorientasi objek analisis dan desain (OOA & D) metode yang muncul di akhir ’80-an dan 90-an awal. Hal yang paling langsung menyatukan metode Booch, Rumbaugh (OMT), dan Jacobson, tapi jangkauan lebih luas dari itu. UML pergi melalui proses standarisasi dengan OMG (Object Management Group) dan sekarang menjadi standar OMG.


(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].

1. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem yang akan dibuat diluar sistem yang akan dibuat itu


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

Banyaknya diagram sekuen yang harus digambarkan adalah sebanyak pendefinisian use case yang memiliki proses itu sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak [11].


(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].

Dengan alasan demikian maka dikembangkanlah suatu kompresi video H.265/HEVC dengan menggunakan algoritma 3D-DCT pada proses transform -nya dan dikombinasikan dengan algoritma fast coding unit decision yang diterapkan pada proses partisi CU untuk menghasilkan peningkatan optimasi waktu yang lebih baik dari penelitian sebelumnya.


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

Algoritma 3D-DCT (Three Dimension-Discrete Cosine Transform) pada proses kompresi video ini berjalan pada proses terakhir di sisi encoder yaitu proses transform. Berikut ini adalah tahap-tahap algoritma 3D-DCT yang berjalan pada sisi proses encoder dan decoder kompresi video seperti Error! Reference source not found. yang telah dipaparkan di bab 2 :


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

Gambar 3. 1. (a) Data Citra Original ; (b) Data Citra yang Telah Dikelompokkan Menjadi Beberapa Blok


(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 : C(0,0)=

√ √ = 0,3536,

C(0,7)=

√ √ = 0,3536,

Namun apabila nilai maka rumus yang digunakan untuk menghitung nilai matriks yaitu √

, dimana nilai

= . Kemudian hitung nilai C(1,0) hingga C(7,7):

C(1,0)= √

= √

= 0,4904

C(7,7)= √

= √


(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 :

Dari hasil perhitungan kuantisasi aka didapatkan nilai-nilai koefisien yang kemudian akan digunakan CABAC untuk mengkonversikan kedalam bentuk biner, matriks kuantisasi dan hasil kuantisasi seperti terlihat pada Gambar 3. 7 dan Gambar 3. 8.


(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

Dari hasil kuantisasi seperti terlihat pada Gambar 3. 8 terlihat bahwa terdapat beberapa angka integer ‘zero’ dan ‘non zero’. Macroblock [8x8] yang telah terkuantisasi tersebut kemudian akan dilakukan pemrosesan zigzag scan blok.


(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 -DCT terkuantisasi mengatur sehingga bit yang paling kiri berisikan nilai-nilai yang tidak 0, dan yang paling kanan berisikan bit yang bernilai 0. Hasil zig-zag kemudian akan dikirimkan ke block CABAC untuk dilakukan proses yang menghasilkan codeword bit-bit biner ‘0’


(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 :

Gambar 3. 10 PU yang memungkinkan untuk CU 2Nx2N pada low complexity setting


(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

Pada video digital, umumnya data video dipisahkan menjadi komponen-komponen, baik komponen warna (crominance) maupun komponen kecerahan (luminance) . Pada komponen video, tiap komponen dipisahkan dengan cara


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

Format CIF yang berukuran 480x368 piksel dibagi menjadi blok-blok yang berukuran 16x16 piksel, maka dalam suatu frame akan terdapat


(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

Seperti yang terlihat pada Gambar 3. 16 diketahui bahwa frame per piksel dibagi ke dalam CU ukuran 4x4 dan 16x16.


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

Berikut Gambar 3. 17 dan Gambar 3. 18 dimana terdapat frame video yang sudah dalam proses prediksi, frame yang diambil yaitu frame ke 0 dan frame ke 1:


(54)

Gambar 3. 17 Frame 0 yang sudah diprediksi

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

Proses transformasi dan kuantisasi juga merupakan bagian dari kompresi intraframe yang bersifat lossy, serta pengkodean yang bersifat lossless. Disini digunakan 3D-DCT untuk melakukan proses transformasi dari domain waktu ke


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

Masing-masing context model terdiri dari dua nilai, yaitu 6-bit state sebagai index probabilitas dan satu bit yang merepresentasikan MPS (Most Probable Symbol). Pada tahap modeling, model probabilitas dipilih untuk masing-masing simbol yang dikodekan. Standard menjelaskan proses pemilihan context model yang sesuai untuk tiap tahap proses decoding. Proses pemilihan context model tidak dijelaskan lebih lanjut


(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 jumlahnya banyak). Perancangan ini membuat tiap context model di CABAC dapat ditentukan oleh dua parameter : nilai kemungkinan LPS


(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

Pada gambar Gambar 3. 24 dijelaskan bahwa ketika terjadi perubahan di MPS, indeks state sebelumnya akan ditambahkan 1, kecuali sudah di 62 dimana probabilitas LPS sudah minimum atau sebaliknya MPS sudah maksimum. Bila indeks di 62, maka indeks akan tetap sampai ada perubahan LPS yang kemudian akan mengurangi indeks dengan suatu aturan tertentu seperti yang diilustrasikan oleh garis putus-putus di Gambar 3. 24. Pada kenyataannya, indeks nomor 63 digunakan oleh aritmatik decoding yang tidak adaptif. Sehingga hanya 63 model yang dapat digunakan.


(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

Pada Gambar 3. 25, gambar kiri menunjukkan kasus ketika masukan data jatuh di MPS, dimana nilai offset kurang dari rMPS. Gambar kanan menunjukkan kasus dimana data jatuh di LPS, dimana offset lebih besar


(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

Sedangkan kebutuhan perangkat keras untuk menjalankan aplikasi yang dibangun, yang harus dipenuhi yaitu seperti pada Tabel 3. 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.


(1)

BAB 2 ... 9

2.1 Karakteristik Video Digital ... 9

2.1.1 Resolusi ... 9

2.1.2 Kedalaman Bit ... 10

2.1.3 Laju Frame ... 10

2.1.4 Representasi Warna ... 10

2.2 Kompresi Data ... 12

2.2.1 Teknik Kompresi Data ... 13

2.2.2 Manfaat Kompresi ... 13

2.2.3 Kriteria Kompresi... 13

2.2.4 Kriteria Penilaian Kualitas Citra ... 15

2.2.5 Rasio Kompresi ... 17

2.3 Standar H.265/HEVC ... 17

2.4 Cara Kerja HEVC (High Eficiency Video Coding)... 18

2.4.1 Partitioning ... 20

2.4.2 Prediction ... 20

2.4.3 Transform dan Quantization ... 24

2.4.4 Entropy Coding ... 29

2.5 Unified Modeling Language (UML) ... 29

2.5.1 Diagram UML ... 30

BAB 3 ... 33

3.1 Analisis Perangkat Lunak ... 33

3.1.1 Analisis Masalah ... 33

3.1.2 Analisis Metode ... 34

3.1.3 Analisis Sistem Yang Akan Dibangun ... 44

3.1.4 Analisis Kebutuhan Non Fungsional ... 57


(2)

vii

3.2 Perancangan Sistem ... 80

3.2.1 Perancangan Arsitektur ... 80

BAB 4 ... 87

4.1 Implementasi ... 87

4.1.1 Implementasi Perangkat Pendukung ... 87

4.1.1.1 Implementasi Perangkat Keras ... 87

4.1.1.2 Implementasi Perangkat Lunak ... 88

4.1.2 Implementasi Antarmuka ... 88

4.2 Pengujian Sistem ... 91

4.2.1 Pengujian Black Box ... 92

4.2.1.1 Kasus dan Hasil Pengujian Black Box ... 92

4.2.3 Pengujian Performansi ... 103

4.2.3.1 Pengujian Subjektif ... 103

4.2.3.2 Pengujian Objektif ... 107

BAB 5 ... 113

5.1 Kesimpulan ... 113

5.2 Saran ... 114


(3)

KATA PENGANTAR

Assalamu’alaikum Wr. Wb.

Puji dan syukur penulis panjatkan ke hadirat Allah SWT, atas rahmat dan karunia-Nya penyusunan skripsi dengan judul “Analisis dan Implementasi Algoritma 3D-DCT Dengan Menggunakan Pengkodean CABAC Pada Kompresi Video H.265/HEVC” dapat diselesaikan tepat pada waktunya. Skripsi ini diajukan untuk memenuhi syarat dalam menempuh ujian akhir sarjana program strata satu (S1) Program Studi Teknik Informatika Universitas Komputer Indonesia Bandung.

Selama penyususnan tugas akhir ini, penulis telah mendapatkan banyak sekali bimbingan dan bantuan serta motivasi dari berbagai pihak dengan segenap hati dan keikhlasan dalam menyelesaikan tugas akhir ini. Penulis ucapkan terima kasih yang sebesar-besarnya kepada :

1. Allah SWT yang telah memberikan rahmat, kasih dan hidayah-Nya maupun kekuatan lahir dan bathin sehingga dapat diselesaikannya skripsi ini.

2. Keluarga tercinta terutama orangtua Ayahku Rozaini, Umakku tercinta Raya Sinarsih, Ibu, dan Bapak yang selalu memberikan support baik moril maupun materil serta memberikan doa, kasih sayang, dan semangat tiada hentinya. 3. Ibu Utami Dewi Widianti, S.Kom.,M.Kom. selaku dosen wali IF 1 yang

senantiasa memberikan semangat dan dukungan selama ini.

4. Bapak Irfan Maliki, S.T., M.T. selaku dosen pembimbing yang telah banyak memberikan ilmu, bimbingan dan masukan selama penulisan skripsi ini. 5. Bapak Eko Budi Setiawan, S.Kom., M.T. selaku dosen reviewer yang telah


(4)

iv

6. Fahrurrozi selaku orang yang terkasih yang selalu memberikan kasih sayang dan dukungan setiap harinya, tak luput juga keluarganya mamak bapak nenek yang selalu memberikan doa dan dukungan selama ini.

7. Delsy Septrizal , Anisah Fauziyyah, Gracevina Hermawan, dan Riska Endang Aprianti selaku sahabat maupun teman seperjuangan selama belajar di UNIKOM yang telah memberikan bantuan, motivasi, dan masukan.

8. Sahabat-sahabat seperjuangan dari bumi perantauan tercinta yang selalu memberikan dukungan, semangat dan doa yang tidak bisa disebutkan satu persatu tidak terkecuali Ardela Munika.

9. Abdulah Usman selaku sahabat yang telah banyak memberikan bantuan, motivasi, dan masukan.

10. Rekan-rekan kelas IF-1 dan IF-5 angkatan 2011 serta rekan satu bimbingan. 11. Semua pihak yang telah membantu penulis yang tidak bisa penulis sebutkan

satu persatu.

Penulis menyadari bahwa dalam penyusunan skripsi ini masih terdapat banyak kekurangan dan jauh dari predikat sempurna, maka untuk itu kritik dan saran yang membangun sangat penulis harapkan dari pembaca.

Terlepas dari kekurangan yang ada semoga skripsi ini dapat bermanfaat bagi saya khususnya dan bagi para pembaca pada umumnya dalam upaya meningkatkan pengetahuan kita semua. Amin.

Wassalamu’alaikum Wr.Wb.

Bandung, Juli 2015 Penulis


(5)

(6)