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 Discrete Cosine Transform berhubungan erat dengan Discrete Fourier Transform (FFT), sehingga menjadikan data direpresentasikan dalam komponen
Universitas Sumatera Utara
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 jelas, pada metode ini hal ini tidak akan terjadi karena metode ini terjadi di
Universitas Sumatera Utara
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) =
Untuk u = 0, 1, 2, …., N-1
(3.2)
Universitas Sumatera Utara
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)
=
C(1)
8
=
=
(3(0.92) + 4(0.38) + 4 (-0.38) + 5(-0.92))
=
(-1.84)
=
-0.76
Universitas Sumatera Utara
C(2)
=
=
=
C(3)
(3(0.71) + 4(-0.71) + 4 (-0.71) + 5(0.71))
0
=
=
=
(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
Universitas Sumatera Utara
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].
Universitas Sumatera Utara
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 α (k)
=
(3.5)
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.
Universitas Sumatera Utara
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 dengan rumus berikut ini :
Universitas Sumatera Utara
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.
Gambar 3.3 Komponen dari Sistem Transmisi Data Gambar atau Video[1]
Universitas Sumatera Utara
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.
Original
=
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.5 Matriks Original
Universitas Sumatera Utara
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
M
=
-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
-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
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
T=
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
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.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.0975 -0.2778
0.4157 -0.4904
0.4619 -0.4619
0.3536
0.1913
0.4904 -0.4157 0.2778 -0.0975
Gambar 3.8 Matriks T
T t=
0.3536
0.4904
0.4619
0.4157
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.3536
0.0975 -0.4619 -0.2778 0.3536
0.4157
0.3536 -0.0975 -0.4619 0.2778
0.3536
0.2778
0.3536 -0.4157
0.3536 -0.2778 -0.1913 0.4904 -0.3536 -0.0975 0.3536 -0.4157
0.1913
0.0975 -0.3536 -0.4904
0.3536 -0.4904
0.4619 -0.4157 0.3536 -0.2778
0.1913
0.4619
0.0975
0.4157
-0.1912 -0.4904 -0.1913
0.4904
0.4619 -0.4157 -0.4619
0.2778
0.1913 -0.0975
Gambar 3.9 Matriks Tt
Universitas Sumatera Utara
4. Dengan menggunakan persamaan Discrete Cosine Transform, cari matriks D dimana matriks D akan digunakan untuk kuantisasi lanjutan. D = T . M . Tt -248.00 -16.1592 11.3996 19.2935 2.2777
D=
(3.10) 0.50
6.1245
2.0431
1.5029
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
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.
Gambar 3.11 Basis Data yang Telah Berisi Koefisien DCT
Universitas Sumatera Utara
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.
Q50 =
16
11
10
16
24
40
51
61
12
12
14
19
26
58
60
55
14
13
16
24
40
57
69
56
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 Cij =
round
(3.11)
Universitas Sumatera Utara
C
=
-15
-1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
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
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.
Universitas Sumatera Utara
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)
N = round (T’ RT) + 128
(3.13)
Universitas Sumatera Utara
N
=
106
101
97
96
97
98
96
93
104
100
96
95
98
99
98
96
100
97
94
94
98
101
100
99
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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Gambar 4.2 Diagram Use Case
Universitas Sumatera Utara
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
Gambar 4.3 Diagram Alir Koefisien DCT
Universitas Sumatera Utara
Start
Input Matriks Citra
I=0
T = Sqrt (2/N)
T = Sqrt (1/N)
A = t cos (2j+1)iπ 2N
Matriks Transform
End
Gambar 4.4 Diagram Alir Matriks Transform
Universitas Sumatera Utara
Start
Input Data Download From URL
Form Matriks (inout)
Set M Set D Set Q
Set T Set R 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
A
Universitas Sumatera Utara
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 ;
Selesai
Form Matriks Output
Simpan pada SD Card
Upload
Gambar 4.5 Diagram Alir Sistem Aplikasi
Universitas Sumatera Utara
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
Preference Activity
Rsosurce
Shutdown Service
Dicretecosinetransform
Perihal
Compress
Image Manager
DCT for Compress
Uploader
Manifest
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.
Universitas Sumatera Utara
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
Pengambilan data
Pembuatan Kelas untuk Mengupload Data
Pembuatan Kelas untuk Mengdownload Data
Pembuatan Server Localhost dengan menggunakan WAMP5
Selesai
Gambar 4.7 Diagram Rancangan Sistem
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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 informasiinformasi 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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Gambar 4.10 Halaman Utama Emulator Android 2.2
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
Gambar 4.12 Tampilan Awal
Gambar 4.13 Tampilan Menu dan Klik Compress
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Gambar 4.18 Directory Local Server Pada Perangkat Yang Diuji Coba Dengan Menggunakan Wamp Server Pada Localhost
Universitas Sumatera Utara
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
Gambar 4.20 Properties Data Sebelum Dikompres
Universitas Sumatera Utara
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
Ukuran citra setelah dikompres
= 34 kB
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
Gambar 4.23 Frame Video Original
Gambar 4.24 Frame Video Setelah Pemrosesan Melalui Sistem
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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.
Universitas Sumatera Utara