• Tidak ada hasil yang ditemukan

BAB III KOMPRESI DATA MENGGUNAKAN DISCRETE COSINE TRANSFORM. digunakan adalah JPEG untuk gambar, MPEG untuk video dan H.

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III KOMPRESI DATA MENGGUNAKAN DISCRETE COSINE TRANSFORM. digunakan adalah JPEG untuk gambar, MPEG untuk video dan H."

Copied!
53
0
0

Teks penuh

(1)

BAB III

KOMPRESI DATA MENGGUNAKAN DISCRETE COSINE TRANSFORM

3.1 Discrete Cosine Transform

Perkembangan aplikasi gambar digital telah meningkatkan kebutuhan akan teknik kompresi gambar dan video yang standar dan efektif. Standar yang banyak digunakan adalah JPEG untuk gambar, MPEG untuk video dan H.261 untuk video

teleconference. Ketiga standar tersebut menggunakan teknik dasar yang disebut Discrete Cosine Transform (DCT)[5].

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 signifkan dikonsentrasikan hanya pada beberapa koefisien DCT

(2)

frekuensinya. Demikian pula, dalam aplikasi pemrosesan gambar, DCT dua dimensi (2D) memetakan sebuah gambar atau sebuah segmen gambar kedalam komponen frekuensi 2D (dua dimensi nya).

Untuk aplikasi kompresi video, jika variasi dalam blok cenderung rendah, kebanyakan transformasi ini akan menghasilkan representasi blok yang lebih kompak. Blok dipadatkan dalam ‘bin’ dengan frekuensi yang lebih rendah yang sesuai.

Discrete Cosine Transform adalah sebuah skema lossy compression dimana NxN blok di transformasikan dari domain spasial ke domain DCT. DCT 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.

Kelebihan kompresi data menggunakan Discrete Cosine Transform adalah[9]:

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

(3)

domain frekuensi di dalam image, bukan pada domain spasial, sehingga 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.

3.2 Discrete Cosine Transform Satu Dimensi (1-D DCT)

Discrete Cosine Transform dari sederet n bilangan real C(x), x = 0, ... ,n-1,

dirumuskan sebagai berikut[2].

C(u) =

Untuk u = 0, 1, 2, …., N-1 (3.1)

Dengan cara yang sama, DCT balik dapat didefinisikan sebagai berikut.

F (x) =

(4)

Dengan α(u) dinyatakan sebagai berikut. α (u) = untuk u = 0

1 untuk u 0 (3.3)

Bilangan yang dihasilkan melalui transformasi DCT tidak mengandung unsur imajiner. DCT dari contoh citra 1 dimensi f (x) = (3, 4, 4, 5) adalah sebagai berikut[2]: C(0) = = (f (0) + f (1) + f (2) + f (3)) = (3 + 4 + 4 + 5) = 8 C(1) = = (3(0.92) + 4(0.38) + 4 (-0.38) + 5(-0.92)) = (-1.84) = -0.76

(5)

C(2) = = (3(0.71) + 4(-0.71) + 4 (-0.71) + 5(0.71)) = 0 C(3) = = (3(0.38) + 4(-0.92) + 4 (0.92) + 5(-0.38)) = -0.76

Jadi citra f (x) = (3, 4, 4, 5) setelah mengalami transformasi kosinus 1 D menjadi C(u) = (8, 0.76, 0, -0.76).

Fungsi basis (kernel) transformasi kosinus diskrit 1 D adalah :

g (x, u) = (3.4)

Untuk u = 0, 1, 2, …, N-1, dan x = 0, 1, 2, …, N-1, Nilai kernel dari DCT juga berada dalam interval -1 sampai 1.

Setiap element dari hasil transformasi C(u) merupakan hasil dot product atau inner product dari masukan f(x) dan basis vektor. Faktor konstanta dipilih sedemikian rupa sehingga basis vektornya orthogonal dan ternormalisasi. DCT

(6)

juga dapat diperoleh dari produk vektor (masukan) dan n x n matriks orthogonal yang setiap barisnya merupakan basis vektor.

Gambar 3.1 Grafik Fungsi Basis 1-D DCT[3]

Delapan basis vektor untuk n = 8 dapat dilihat pada Gambar 3.1 . Setiap basis vektor berkorespondensi dengan kurva sinusoid frekuensi tertentu[3].

(7)

3.3 Discrete Cosine Transform 2 Dimensi (2D-DCT)

DCT dimensi satu berguna untuk mengolah sinyal-sinyal dimensi satu seperti bentuk gelombang suara. Sedangkan untuk citra yang merupakan sinyal dua dimensi, diperlukan versi dua dimensi dari DCT . Untuk sebuah matriks n x

m, 2-D DCT dapat dihitung dengan cara 1-D DCT diterapkan pada setiap baris

dari C dan kemudian hasilnya dihitung DCT untuk setiap kolomnya[3].

Rumus transformasi 2-D DCT untuk C adalah sebagai berikut[3] :

C(u, v) =

dengan u = 0, 1, 2, …, N-1, dan v = 0, 1, 2, …, M-1, sedangkan (3.5)

α (k) = untuk k = 0

1 untuk k 0 (3.6)

Rumus 2-D DCT diatas sering juga disebut sebagai forward discrete

cosine transform (FDCT). 2-D DCT dapat dihitung dengan menerapkan

transformasi 1-D secara terpisah pada baris dan kolomnya, sehingga dapat dikatakan bahwa 2-D DCT separable dalam dua dimensi.

Seperti pada kasus satu-dimensi, setiap elemen C(u,v) dari transformasi merupakan inner product dari masukan dan basis fungsinya, dalam kasus ini, basis fungsinya adalah matriks n x m. Setiap dua-dimensi basis matriks merupakan outer product dari dua basis vektor satu-dimensinya.

(8)

Setiap basis matriks pada Gambar 3.2 dikarakterisasikan oleh frekuensi spasial horizontal dan vertikal. Frekuensi horizontal meningkat dari kiri ke kanan, dan dari atas ke bawah secara vertikal. Dalam konteks citra, hal ini menunjukkan tingkat signifikansi secara perseptual, artinya basis fungsi dengan frekuensi rendah memiliki sumbangan yang lebih besar bagi perubahan penampakan citra dibandingkan basis fungsi yang memiliki frekuensi tinggi.

Gambar 3.2 Grafik Fungsi Basis 2-D DCT[3]

Nilai konstanta basis fungsi yang terletak di bagian kiri atas sering disebut sebagai basis fungsi DC, dan DCT koefisien yang bersesuaian dengannya disebut sebagai koefisien DC (DC coefficient)[1].

Invers discrete cosine transform dimensi dua (2-D IDCT) dapat diperoleh

(9)

f (x, y) =

dengan x = 0, 1, 2, …, N-1, dan y = 0, 1, 2, …, M-1 (3.7)

Fungsi basis DCT 2 dimensi adalah :

C (x, y, u, v) =

Dengan nilai u dan x = 0, 1, 2, …, N-1, sedangkan v dan y = 0, 1, 2, …, M-1 (3.8)

3.4 Kompresi Gambar

DCT bekerja dengan memisahkan gambar ke bagian frekuensi yang berbeda. Selama langkah kuantisasi disebut, di mana bagian dari kompresi sebenarnya terjadi, frekuensi yang kurang penting dibuang. Kemudian, hanya frekuensi yang paling penting yang tetap digunakan mengambil gambar dalam proses dekompresi. Akibatnya, gambar direkonstruksi mengandung beberapa distorsi.

(10)

Berikut adalah algoritma discrete cosine transform:

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

(a) (b)

Gambar 3.4 (a) Data Citra Original ; (b) Data Citra yang Telah Dikompakkan Menjadi Beberapa Blok

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

104 101 99 97 95 95 96 99 101 96 95 95 96 98 99 99 99 92 91 92 97 102 103 99 Original = 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

(11)

Gambar 3.6 Basis Data Sebelum Dikompresi

Pada Gambar 3.6 dapat terlihat basis data sebelum dikompresi dan rentang warna(pixel) yang ada pada blok yang diambil dari gambar. Sedangkan matrik original yang sudah dikurangi dengan 128 dapat dilihat pada Gambar 3.7

-24 -27 -29 -31 -33 -33 -32 -29 -27 -32 -33 -33 -32 -30 -29 -29 -29 -36 -37 -36 -31 -36 -25 -29 -30 -38 -39 -37 -30 -24 -24 -30 M = -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 Gambar 3.7 Matriks M

(12)

Buat dan cari nilai untuk matriks Discrete Cosine Transform untuk matriks T dan buat matriks transpose nya untuk matriks T t

if i = 0

T (i, j) = if i 0

(3.9)

Maka dengan menggunakan rumusan matriks diatas dapat dihitung nilai matriks T mulai dari T (0,0) sampai T (7,7)

T (0,0) = = = 0.3536 T (0,1) = = = 0.3536 T (0,2) = = = 0.3536 T (0.3) = = = 0.3536 T (0.4) = = = 0.3536 T (0.5) = = = 0.3536 T (0.6) = = = 0.3536 T (0.7) = = = 0.3536

(13)

T (1,0) = = = 0.4904 T (1.1) = = = 0.4157 T (1.2) = = = 0.2778 T (1.3) = = = 0.0975 T (1.4) = = = -0.0975 T (1.5) = = = -0.2778 T (1.6) = = = -0.4157 T (1.7) = = = -0.4904 T (2.0) = = = 0.4619 T (2.1) = = = 0.1913 T (2.2) = = = -0.1913 T (2.3) = = = -0.4619 T (2.4) = = = -0.4619 T (2.5) = = = -0.1913 T (2.6) = = = 0.1913

(14)

T (2.7) = = = 0.4619 T (3.0) = = = 0.4157 T (3.1) = = = -0.0975 T (3.2) = = = -0.4904 T (3.3) = = = -0.2778 T (3.4) = = = 0.2778 T (3.5) = = = 0.4904 T (3.6) = = = 0.0975 T (3.7) = = = -0.4157 T (4.0) = = = 0.3536 T (4.1) = = = -0.3536 T (4.2) = = = -0.3536 T (4.3) = = = 0.3536 T (4.4) = = = 0.3536 T (4.5) = = = -0.3536

(15)

T (4.6) = = = -0.3536 T (4.7) = = = 0.3536 T (5.0) = = = 0.2778 T (5.1) = = = -0.4904 T (5.2) = = = 0.0975 T (5.3) = = = 0.4157 T (5.4) = = = -0.4157 T (5.5) = = = -0.0975 T (5.6) = = = 0.4904 T (5.7) = = = -0.4904 T (6.0) = = = 0.1913 T (6.1) = = = -0.4619 T (6.2) = = = 0.4619 T (6.3) = = = -0.1913 T (6.4) = = = -0.1913

(16)

T (6.5) = = = 0.4619 T (6.6) = = = -0.4619 T (6.7) = = = 0.1913 T (7.0) = = = 0.0975 T (7.1) = = = -0.2778 T (7.2) = = = 0.4157 T (7.3) = = = -0.4904 T (7.4) = = = 0.4904 T (7.5) = = = -0.4157 T (7.6) = = = 0.2778 T (7.7) = = = -0.0975

Maka dari perhitungan diatas didapatkan nilai untuk matriks T seperti ditunjukkan pada Gambar 3.8 dan matriks transpose T seperti ditunjukkan pada Gambar 3.9.

(17)

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 T = 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.8 Matriks T 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 T t = 0.3536 0.0975 -0.4619 -0.2778 0.3536 0.4157 -0.1912 -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.9 Matriks Tt

(18)

4. Dengan menggunakan persamaan Discrete Cosine Transform, cari matriks D dimana matriks D akan digunakan untuk kuantisasi lanjutan.

D = T . M . T t (3.10) -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 D = 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.0000 -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.10 Matriks D

Matriks D yang ditunjukkan pada Gambar 3.10 berisi koefisien DCT, yang kemudian akan dikuantisasi dengan level kuantisasi yang dipilih.

(19)

Dengan menggunakan perhitungan matriks seperti pada persamaan 3.10, maka adan diperoleh hasil untuk matriks D. Dimana matriks D akan digunakan pada langkah selanjutnya yaitu kuantisasi

5. Matriks D sekarang berisi dengan koefisien DCT, dimana data yang terletak pada kiri atas merupakan korelasi dari frekuensi - frekuensi rendah dari data original. Sedangkan yang terletak pada kanan bawah merupakan korelasi dari frekuensi – frekuensi tinggi dari data original. Setelah itu lakukan proses kuantisasi dengan Quality level 50.

16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 Q50 = 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99 Gambar 3.12 Matriks Q50

Persamaan matriks kuantisasi adalah sebagai berikut, dimana round berarti mendekatkan nilai hasil pembagian ke pembulatan bilangan integer terdekat

(20)

-15 -1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 C = 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.13 Matriks C

Gambar 3.14 Basis Data yang Telah Terkuantisasi dengan Level Kuantisasi 50 Basis dari data gambar original yang telah terkuantisasi dapat dilihat pada Gambar 3.14 dimana basis data tersebut dapat dibandingkan dengan gambar basis data sebelum dikompress seperti ditunjukkan pada Gambar 3.11.

(21)

6. Susun bilangan menggunakan fungsi zig zag scanning dimana ini merupakan langkah terakhir pada proses kompresi.

Gambar 3.15 Metode Zig Zag Scanning

Matriks C yang terkuantisasi sekarang akan dikonversi oleh encoder ke data biner (01101011 ...) Koefisien DCT terkuantisasi mengatur sehingga bit yang paring kiri berisikan nilai-nilai yang tidak 0, dan yang paling kanan bersikan bit yang bernilai 0. Setelah nanti terurut, maka proses kompresi dapat dilakukan (termasuk dengan algoritma Huffman)

Proses dekompresi dimana ini merupakan proses untuk menrekonstruksikan data hasil kompresi menjadi data yang dapat dikenali.

Persamaan matriks R adalah sebagai berikut:

R i, j = Q i, j x C i, j (3.12)

(22)

106 101 97 96 97 98 96 93 104 100 96 95 98 99 98 96 100 97 94 94 98 101 100 99 N = 98 94 92 94 99 103 103 102 97 94 91 94 99 103 104 103 97 94 92 94 99 103 103 102 99 95 93 94 99 102 102 100 100 97 94 94 98 101 101 99 Gambar 3.16 Matriks N

Untuk proses dekompresi, merupakan pembalikan dari proses kompresi dimana persamaan untuk proses dekompresi adalah sebagai berikut

Gambar 3.17 (a) Basis Data Original (b) Basis Data Hasil Rekonstruksi Dengan menggunakan persamaan 2.9, maka didapatkan nilai PSNR sebesar 47.7416 dB.

(23)

3.5 Kompresi Video

Kompresi video adalah bentuk kompresi data yang berhubungan dengan data video digital. Kompresi video diperlukan agar penulisan data video dalam file menjadi lebih efisien. Kompresi juga diperlukan dalam streaming video agar transmisi data menjadi lebih cepat dan tidak memakan terlalu banyak

bandwidth[9].

Kompresi adalah pengubahan data kedalam bentuk yang memerlukan bit yang lebih sedikit, biasanya dilakukan agar data dapat disimpan atau dikirimkan dengan lebih efisien.

Video pada dasarnya merupakan array tiga dimensi. Dua dimensi digunakan untuk menggambarkan ruang pergerakan gambar, dan satu dimensi menggambarkan waktu. Sebuah frame adalah kumpulan pixel pada suatu waktu. Pada dasarnya, frame sama dengan gambar.

Data video mengandung redundancy (pengulangan). Kesamaan tersebut dapat dikodekan dengan mencatat perbedaan dalam sebuah frame atau antara

frame.

Video digital adalah kumpulan citra digital (disebut frame) yang ditayangkan secara berurut menurut indeks waktu. Kompresi video pada umumnya mengurangi pengulangan tersebut dengan loosy compression.

(24)

Gambar 3.18 Proses Kompresi Video

Penggunaan matrix kuantisasi memungkinkan setiap frekuensi untuk dikuantisasi pada setiap tahapan yang berbeda. Modifikasi pada matrix kuantisasi adalah cara yang utama untuk mengontrol kualitas dan rasio kompresi pada Video. Meskipun ukuran tahapan kuantisasi untuk setiap frekuensi dapat dimodifikasi, sebagian besar teknik adalah untuk memperhitungkan elemen matrix bersama-sama

(25)

BAB IV

IMPLEMENTASI DAN APLIKASI TEKNIK KOMPRESI DISCRETE COSINE TRANSFORM PADA PERANGKAT BERGERAK

4.1 Pendahuluan

Perangkat lunak akan diimplementasikan pada mobile phone, dimana memiliki beberapa perbedaan dengan implementasi pada komputer biasa. Salah satunya adalah terbatasnya jumlah memori yang dapat digunakan, yang mengakibatkan pembacaan video atau pesan harus dilakukan secara bagian per bagian. Dampak lainnya adalah pengacakan pesan tidak dapat dilakukan langsung terhadap pesan secara utuh, tetapi tiap sebagian saja, dimana dalam hal ini sejumlah 1024-bit, atau 128 byte. Perbedaan lainnya adalah pengembangan pada perangkat mobile phone biasanya lebih lambat, jika dibandingkan dengan perangkat lunak pada komputer biasa. Selain itu, tidak seragamnya spesifikasi antar mobile phone, sehingga implementasi pada mobile phone yang berbeda akan membutuhkan pengembangan perangkat lunak yang berbeda juga. Sebagai contoh, apabila ingin dibuat perangkat lunak yang dapat mendukung MIDP 1.0, maka perangkat lunak tersebut harus dikembangkan ulang yang khusus mendukung MIDP 1.0, karena akan terdapat beberapa fungsi yang tidak kompatibel dengan perangkat lunak pada MIDP 2.0.

(26)

4.2 Android

Android adalah kumpulan perangkat lunak yang ditujukan bagi perangkat bergerak mencakup sistem operasi, middleware, dan aplikasi kunci. Android

Standart Development Kid (SDK) menyediakan perlengkapan dan Application

Programming Interface (API) yang diperlukan untuk mengembangkan

aplikasi pada platform Android menggunakan bahasa pemrograman Java. Android dikembangkan oleh Google bersama Open Handset Allience (OHA) yaitu aliansi perangkat selular terbuka yang terdiri dari 47 perusahaan Hardware, Software dan perusahaan telekomunikasi ditujukan untuk mengembangkan standar terbuka bagi perangkat selular.

4.3 Anatomi Android

Dalam paket sistem operasi Android tediri dari beberapa unsur seperti tampak pada gambar. Secara sederhana arsitektur Android merupakan sebuah kernel Linux dan sekumpulan pustaka C / C++ dalam suatu framework yang menyediakan dan mengatur alur proses aplikasi.

(27)

Gambar 4.1 Anatomi Android

4.4 Spesifikasi Perangkat Lunak

Dalam menerapkan rancangan yang telah dibuat, dibutuhkan beberapa

software untuk membuat program yaitu[12]:

1. Bahasa Pemrograman Java

Dalam hal ini digunakan Java Development Kid (JDK) 1.6 dan Java Runtime

Environment (JRE).

2. Sistem Operasi

Untuk penggunaan sistem operasi dapat digunakan Windows XP (32-bit) atau Vista (32 atau 64 bit), Mac OS X 10.4.8 atau diatasnya, dan Linux.

(28)

3. Integrated Development Environment (IDE) Eclipse 3.4 atau 3.5

Untuk memudahkan dalam pengembangan aplikasi, maka digunakan IDE karena memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak. Adapun dalam pengembangan ini digunakan Eclipse v 3.4 atau 3.5 dikarenakan telah mendukung Android Development Tools.

4. Android Software Development Kit (Android SDK)

Android SDK menyediakan development environment dengan semua komponen yang diperlukan. Antara lain tools pengembangan, libraries, dokumentasi, dan contoh aplikasi serta disertakan pula emulator untuk mensimulasikan aplikasi berjalan pada perangkat.

5. Android Development Tools (ADT)

Android membuat kostum plugin untuk IDE Eclipse, sehingga dengan adanya ADT ini memberikan kemudahan dalam pengembangan aplikasi, membuat tampilan antarmuka aplikasi, menambahkan komponen yang diperlukan, men-debug aplikasi dengan menggunakan perangkat SDK Android, dan bahkan membungkus aplikasi yang telah dikembangkan untuk di distribusikan. Adapun ADT yang digunakan adalah ADT 0.9.5.

(29)

4.5 Use Case Diagram

Use case merupakan gambaran skenario dari interaksi antara user dengan

sistem. Sebuah diagram use case menggambarkan hubungan antara aktor dan kegiatan yang dapat dilakukannya terhadap aplikasi.

(30)

Di dalam diagram terdapat sebuah extend yang digunakan untuk menunjukkan bahwa satu use case merupakan tambahan fungsional dari use case lain jika kondisi tertentu terpenuhi.

4.6 Diagram Alir

Diagram Alir atau flowchart merupakan serangkaian bagian-bagian yang menggambarkan alir program. Pada diagram alir ini digambarkan urutan prosedur dalam metode dan aplikasi.

Start

Input Matriks T M Tt

DCT = T M Tt

Koefisien DCT

End

(31)

Start

Input Matriks Citra

I = 0 T = Sqrt (1/N) A = t cos (2j+1)iπ 2N T = Sqrt (2/N) Matriks Transform End

(32)

Start

Input Data Download From URL

Form Matriks (inout)

Set M Set T

Set D Set R

Set Q Set N

for (I = 0 ; I < N ; I ++ ) { for ( j = 0 ; j < N ; j ++ ) {

temp [i] [j] = T [j] [i] ; Return temp i

tempResult[i] [j] = tempDataOriginal [i] [j] This .M = tempResult

Return this .M ;

tempResult [i] [j] = tempM [i] [j] * tempCT [i] [j] tempResult [i] [j] = tempT [i] [j] * tempResult [i] [j]

Return this .Di

(33)

A

Q = this .Q50i Return this .Qi

tempResult [i] [j] = Math.round (tempD [i] j] / tempQ [i] [j] Return tempResult ;

String s = ‘’ ‘’ S = output [i] [j] + “ “ ; Toast.makeText (null, s, 2000).show ( ) ;

huff [index] = data ; huff [index + 1] = (double) count ;

Index = index + 2 Data = zigzag [i]

Count = 1 ;

Form Matriks Output

Selesai Simpan pada SD Card

Upload

(34)

4.7 Diagram Kelas

Diagram kelas merupaka suatu diagram struktural yang menggambarkan interaksi sekumpulan kelas interface, kolaborasi, dan relasinya. Diagram kelas digambarkan dengan kotak dan pada dasarnya terdiri atas beberapa bagian.

Activity

Rsosurce Image Manager

Preference Activity

Shutdown Service Perihal DCT for Compress Manifest

Dicretecosinetransform Compress Uploader Download File

Gambar 4.6 Diagram Kelas Sistem

Gambar 4.6 menggambarkan proses static dari aplikasi yang dibuat. Gambar 4.6 merupakan hasil pengaturan dari beberapa elemen dan merupakan hasil transformasi serta rancangan kinerja dari aplikasi yang dibuat.

(35)

4.8 Penulisan Kode Program (Coding)

Penulisan kode program pada aplikasi ini dimulai dari pembuatan kelas-kelas untuk dapat melakukan metode seperti yang telah dibahas sebelumnya. Adapun langkah-langkah pembuatan akan dijelaskan oleh Gambar 4.7.

Start

Pembuatan Antarmuka

Pembuatan Kelas Utama

Pembuatan Kelas – Kelas yang Berfungsi Sebagai Engine

Pembuatan Kelas untuk

Meng-upload Data

Pembuatan Kelas untuk

Meng-download Data

Pengambilan data

Pembuatan Server Localhost dengan menggunakan WAMP5

Selesai

(36)

4.8.1 Pembuatan Tampilan Antar Muka (Interface)

Perancangan interface adalah bagian yang penting dalam aplikasi, karena yang pertama kali dilihat ketika aplikasi dijalankan adalah tampilan antar muka (interface) aplikasi.

Pembuatan tampilan antarmuka pada sistem Android di implementasikan dalam bentuk XML. Setiap elemen dalam tampilan antarmuka perlu ditambahkan atribut pengenal, sehingga elemen tersebut akan di generate dalam kelas Resource dan memudahkan untuk digunakan pada kelas yang memerlukan. Adapun kode antarmuka tampilan utama dapat dilihat pada Lampiran 1 point 1.

4.8.2 Pembuatan Kelas Utama DCTforCompress

Kelas DCTforCompress merupakan kelas utama yang berfungsi untuk menampilkan menu dan urutan urutan activity pada aplikasi dan melakukan pemanggilan terhadap kelas yang dipilih dan kemudian di eksekusi sehingga proses berjalan. Adapun kode program dapat dilihat pada Lampiran 1 point 2.

4.8.3 Pembuatan Kelas Compres

Kelas Compress merupakan kelas yang berfungsi untuk memproses perhitungan dari metode metode pada algoritma discrete cosine transform serta melakukan penulisan file. Selain itu, kelas ini menyediakan zig zag scanning yang harus dilakukan untuk coding data hasil kompresi pada metode DCT. Adapun kode program dapat dilihat pada Lampiran 1 point 3.

(37)

4.8.4 Pembuatan Kelas Decompress

Kelas ini bertujuan untuk melakukan dekompresi pada data yang telah dikompresi. Adapun kode program dapat dilihat pada Lampiran 1 point 4.

4.8.5 Pembuatan Kelas DownloadFile

Kelas DownloadFile bertujuan untuk melakukan proses download pada data yang kita perlukan baik itu ingin di kompresi maupun ingin dikompresi. Adapun kode programnya dapat dilihat pada Lampiran 1 point 5.

4.8.6 Pembuatan Kelas Upload

Kelas Upload dibuat apabila ingin melakukan proses upload data yang belum atau sudah di kompres sehingga memudahkan untuk melakukan pengiriman file data. Adapun kode programnya dapat dilihat pada Lampiran 1 point 6.

Pada kelas ini diperlukan pembuatan php script untuk membuat sebuah receiver pada local server agar local server dapat menerima data yang di upload oleh perangkat bergerak berbasis android. Adapun php script untuk receiver.php dapat dilihat pada Lampiran 1 point 7.

(38)

4.8.7 Pembuatan Kelas Uploader

Kelas uploader dibuat untuk membuat koneksi http pada server dan memastikan susunan data ketika data diupload. Adapun kode programnya dapat dilihat pada Lampiran 1 point 8.

4.8.8 Pembuatan Kelas DiscreteCosineTransform

Kelas DiscreteCosineTransform merupakan kelas yang berisi informasi-informasi matriks yang sudah ditetapkan untuk memudahkan dilakukannya langkah langkah kompresi. Proses yang terjadi di kelas ini merupakan proses kompresi utama dimana matriks matriks ini di komputasi pada kelas ini bila dipanggil oleh resources yang lain. Adapun kode programnya dapat dilihat pada Lampiran 1 point 9.

4.8.9 Pembuatan Manifest Aplikasi

Manifest pada android berguna untuk member izin kepada aplikasi untuk mengambil data baik pada internet ataupun local server. Selain itu manifest disini berisi parameter parameter tertentu dimana identitas sebuah kelas ada dan dapat berhubungan dengan kelas yang lain. Adapun kode programnya dapat dilihat pada Lampiran 1 point 10.

(39)

4.9 Pengujian

Pengujian pada aplikasi ini dilakukan dengan menguji atribut dan metode yang ada pada kelas- kelas yang dibangun sesuai dengan proses pembuatan dan pengembangan pada aplikasi ini.

Pengukuran hasil kompresi dengan teknik discrete cosine transform dilakukan dengan menggunakan pendekatan subjektif maupun objektif. Berikut adalah hasil dari implementasi sistem yang telah dibuat:

Gambar 4.8 Proses Pemunculan dan Eksekusi Aplikasi yang Berhasil

Pada gambar 4.8 terlihat bahwa activity telah berhasil di launch dan kemudian dilakukan proses peng-installan aplikasi dimana ditandai dengan

Installing DCTforCompress.apk…dan kemudian aplikasi akan berjalan dengan

melakukan launch emulator android 2.2. Pada gambar 4.9 Terlihat proses loading dari emulator tersebut.

(40)

Gambar 4.9 Proses Loading Emulator Android Versi 2.2

Emulator android 2.2 berhasil ditampilkan dan kemudian emulator inilah yang menjadi device tempat instalasi program aplikasi DCTforCompress.

(41)

Gambar 4.10 memperlihatkan halaman utama dari emulator android 2.2, dimana emulator inilah yang akan difungsikan sebagai device sebe;lum diimplementasikan langsung pada mobile phone sesungguhnya.

Gambar 4.11 Memulai Aplikasi dengan Mengklik Widget Aplikasi DCTforCompress

Untuk memulai aplikasi, klik widget DCTforCompress seperti terlihat pada gambar 4.11, kemudian tunggu dan kemudian akan muncul tampilan seperti gambar 4.12.

(42)

Gambar 4.12 Tampilan Awal

Gambar 4.13 Tampilan Menu dan Klik Compress

(43)

Gambar 4.14 Proses Kompresi yang Terjadi pada Perangkat Lunak Dapat Dilihat pada Debug

Pada gambar 4.13 dapat dilihat bahwa terjadi suatu proses komputasi dengan suatu metode yang telah disebutkan pada pembuatan kelas. Pada gambar 4.13 proses pembacaan matriks dan pengkodean matriks sedang berjalan dan hasil matriksnya akan ditampilkan pada gambar 4.13

(44)

Gambar 4.15 Matriks Hasil Kompresi yang Ditampilkan

Gambar 4.16 File Hasil Kompresi yang Terletak pada sdcard Device dan Ukuran Datanya

Dari gambar 4.16 dapat dilihat bahwa file hasil kompresi telah tersimpan pada directory /sdcard/ pada device. Selain itu terlihat bahwa ukuran data menjadi mengecil dari sebelumnya yaitu dari 93 KB menjadi 34 KB dengan menggunakan level kuantisasi 50.

(45)

Gambar 4.17 Proses Upload Data Hasil Kompresi

Gambar 4.17 menunjukkan proses untuk melakukan upload pada data yang telah dikecilkan. Sesuai tujuan kompresi, yaitu untuk mengecilkan data sebelum dikirimkan ke server atau ke host yang telah di tentukan sebelumnya pada proses coding yang dilampirkan pada Lampiran 1.

(46)

Dengan menggunakan software wamp5, server pada localhost dibuat dan menjadi tujuan upload dari device android tersebut. Membuka directory www dari wamp dibuka dari browser dengan mengetikkan alamat http;//localhost pada

browser.

Gambar 4.19 File Telah Berhasil Di-upload

(47)

Gambar 4.21 Properties Data Setelah Dikompres

Berdasarkan hasil pengujian yang dilihat dari hasil properties diatas dapat dihitung rasio kompresi dengan menggunakan persamaan (2.11)

Rasio = 100% - (HasilKompresi/CitraAsli x 100%)

Maka dapat dihitung

Ukuran citra sebelum dikompres = 93 kB

(48)

Rasio pemampatan = 100% - (34 KB/ 93 KB x 100%)

= 100% - 36 %

= 64%

Artinya,64% dari data semula telah dimampatkan.

Waktu yang dibutuhkan untuk melakukan kompresi data pada data video berukuran 93 KB adalah 114 detik dengan level kuantisasi 50.

Gambar 4.22 Properties Data Hasil Kompresi dengan Menggunakan Level Kuantisasi 10

(49)

Berdasarkan hasil pengujian yang dilihat dari hasil properties diatas dapat dihitung rasio kompresi dengan menggunakan persamaan (2.11)

Rasio = 100% - (HasilKompresi/CitraAsli x 100%)

Maka dapat dihitung

Ukuran citra sebelum dikompres = 93 kB

Ukuran citra setelah dikompres = 2.91 kB

Rasio pemampatan = 100% - (2.91 KB/ 93 KB x 100%)

= 100% - 3,1%

= 96,9%

Artinya, 96,9% dari data semula telah dimampatkan.

Waktu yang dibutuhkan untuk melakukan kompresi data pada data video berukuran 93 KB adalah 142 detik dengan level kuantisasi 10.

Pada Gambar 4.23 dapat dilihat cuplikan salah satu frame data original sebelum melalui pemrosesan pada sistem implementasi yang dibuat.

(50)

Gambar 4.23 Frame Video Original

(51)

Gambar 4.25 Perbedaan Grafik Frame Video Original dengan Frame Video Setelah Melalui Pemrosesan

Dengan menggunakan software MSU, dapat dilihat bahwa dengan menggunakan level kuantisasi 50 didapat nilai PSNR sebesar 34,117 dan dari gambar 4.25 dapat dilihat adanya perbedaan grafik pada data original dibandingkan dengan data setelah melalui pemrosesan.

Untuk proses eksekusi program aplikasi pada mobile phone, dapat dilihat pada Lampiran 2 dimana tampilan pada mobile phone akan mengikuti seperti yang dirancang pada emulator Android 2.2. Sedangkan untuk skema jaringan pengujiannya dapat dilihat pada Lampiran 3.

(52)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

1. Kompresi video diperlukan untuk memperkecil ukuran data sehingga akan lebih efisien dalam penyimpanan data pada memory maupun untuk mempermudah dalam proses transmisi untuk berbagai keperluan.

2. Pada contoh yang dipaparkan, kompresi dengan algoritma Discrete Cosine Transform mempunyai rasio kompresi 64% dengan menggunakan level kuantisasi 50 dan mempunyai rasio kompresi 96,9 % dengan menggunakan level kuantisasi 10.

3. Pada contoh yang dipaparkan,diperlukan waktu 114 detik untuk melakukan kompresi dengan level kuantisasi 50 dan 142 detik untuk melalkukan kompresi dengan level kuantisasi 10.

4. Berdasarkan pengujian, nilai PSNR yang didapat untuk frame video dengan level kuantisasi 50 adalah 34,117 dB.

5. Algoritma Discrete Cosine Transform dapat diterapkan pada perangkat bergerak berbasis Android 2.2

(53)

5.2 Saran

1. Untuk pengembangan lebih lanjut, metode kompresi yang digunakan tidak hanya satu tapi dapat dikombinasikan dari beberapa metode kompresi yang lain sehingga dapat dicapai hasil yang lebih maksimal dan lebih efisien.

2. Untuk selanjutnya,diharapkan aplikasi ini dapat dikembangkan pada perangkat lunak dan perangkat bergerak tidak hanya pada satu jenis platform,tapi juga berbagai jenis platform lainnya.

3. Untuk pengembangan yang lebih lengkap dapat dikembangkan codec tertentu yang dapat mengakomodasi proses dekompresi secara maksimal.

4. Untuk perhitungan PSNR pada selanjutnya diharapkan dapat dimasukkan ke dalam pembuatan kelas pada aplikasi.

Gambar

Gambar 3.1 Grafik Fungsi Basis 1-D DCT[3]
Gambar 3.2 Grafik Fungsi Basis 2-D DCT[3]
Gambar 3.4 (a) Data Citra Original ; (b) Data Citra yang Telah Dikompakkan  Menjadi Beberapa Blok
Gambar 3.14  Basis Data yang Telah Terkuantisasi dengan Level Kuantisasi 50  Basis dari data gambar original yang telah terkuantisasi dapat dilihat pada  Gambar 3.14 dimana basis data tersebut dapat dibandingkan dengan gambar basis  data sebelum dikompress
+7

Referensi

Dokumen terkait

:6. Harun Nasution adalah putra dari Adul 4aar Ahmad dan +aimunah yang lahir pada hari Selasa di Pematangsiantar, Tapanuli Selatan, Sumatera 5tara &amp;6 Septemer %0%0.

MUI mengingatkan antara lain bahwa anak hasil zina tidak mempunyai hubungan nasab, wali nikah waris, dan nafaqah dengan lelaki yang menyebabkan

Guru Besar Hukum Pidana untuk mata kuliah Pertanggungjawaban Pidana Korporasi pada Program Magister Khusus Kejaksaan pada Universitas Indonesia dan Sekolah Tinggi

SEKTOR PENGURUSAN SISA PEPEJAL (PEMBINAAN KEMUDAHAN PSP) (PKP) Waktu Beroperasi 7.00 pagi – 7.00 malam (lebih masa tidak dibenarkan) Waktu Kehadiran Pelanggan Tidak

Saat pemasangan balok induk Bix2, distribusi beban pelat dan balok anak yang bekerja pada balok induk Bix2 adalah sama dengan pada balok Bix1.. Hanya pada balok Bix2, karena

[r]

Puji syukur kehadirat Allah SWT atas segala rahmat dan hidayah-Nya, sehingga penyusun dapat menyelesaikan penulisan laporan skripsi dengan judul “Perilaku Lentur

&#34;Berdasarkan permasalahan adanya produk rusak yang disebabkan oleh lengkungan kuningan tidak sesuai, ukuran kaca terlalu tebal, kaca tergoras, kaca pecah, kuningan