ANALISIS PERBANDINGAN DAN KOMPUTASI SEKUENSI

ANALISIS PERBANDINGAN KOMPUTASI SEKUENSIAL DAN KOMPUTASI
PARALEL GPU MEMANFAATKAN TEKNOLOGI NVIDIA CUDA PADA
APLIKASI KOMPRESI CITRA MENGGUNAKAN ALGORITMA DCT 8X8
1
2
1

Andika Januarianto (50407094)

Dr.-Ing.Adang Suhendra, Ssi.,SKom., Msc

Mahasiswa Teknik Informatika, Fakultas Teknologi Industri, Universitas Gunadarma,
andika.januarianto@student.gunadarma.ac.id
2
Dosen Tetap Universitas Gunadarma, adang@staff.gunadarma.ac.id

ABSTRAKSI
Salah satu operasi pengolahan citra digital yaitu kompresi citra. Hal tersebut
bertujuan untuk menghemat bandwith saat proses transmisi citra dan menghemat ruang
penyimpanan harddisk. Dewasa ini, kompresi citra berkembang menjadi proses yang bisa
di olah secara paralel pada GPU sejak Nvidia mengeluarkan teknologi Cuda sebagai

pelopor arsitektur paralel pada dunia teknologi informasi. Dengan adanya proses paralel,
maka diharapkan proses kompresi citra bisa menghasilkan waktu yang lebih cepat.Uji
parameternya menggunakan cuda timer function untuk empat buah citra uji dengan
menggunakan algoritma DCT yang di implementasikan ke dalam bahasa CUDA C++.
Hasil perbandingan speedupnya menunjukkan bahwa proses kompresi citra pada komputasi
paralel lebih cepat daripada proses kompresi citra pada komputasi sekuensial dengan ratarata nilai sebesar 3.6.
Kata Kunci : Kompresi, Citra, Cuda, GPU, DCT.

ABSTRACT
One of digital image processing is image compression. It aims for saving bandwith
when image transmission process and for saving harddisk capacity. Nowdays, image
compression has evolved to become parallel processing on GPU since nvidia release about
cuda technology. It as pioneer of parallel architecture especially in the world of information
and technology. The existence of parallel process, it expected from process of image
compression can get the result in a faster time. Test parameters using CUDA timer function
for four test images using the DCT algorithm implemented in the CUDA C + + language.
The result of Speedup comparison results show that the process of image compression on
parallel computing faster than the process of image compression in sequential computing
with an average value of 3.6.
Keywords : Compression, Image, Cuda, GPU, DCT.


1. Pendahuluan
Perkembangan
teknologi
di
bidang multimedia dewasa ini demikian
pesatnya, khususnya dalam pemanfaatan
aplikasi citra/gambar digital. Ironisnya,
citra digital yang memiliki kandungan
informasi yang sangat penting umumnya
memiliki
ukuran
besar
sehingga
diperlukan kapasitas memori yang besar
pula untuk penyimpanan data citra
ataupun untuk penggunaan bandwith pada
transmisi data citra. Namun, dalam dua
dekade terakhir. Telah dikembangkan
salah satu teknik pengoperasian citra

digital
yang
berfungsi
untuk
menghilangkan informasi yang tidak
penting pada citra sehingga dapat
mengurangi ukuran data dari citra asli.
Dan
dengan
demikian,
ruang
penyimpanan data bisa menjadi lebih
hemat dan proses transmisi bisa menjadi
lebih cepat. Operasi pengolahan citra
tersebut dikenal dengan istilah kompresi
citra atau Image Compression.
Tamal Bose,dalam bukunya yang
berjudul “ Digital Signal dan Image
Processing “ mengatakan bahwa citra
digital memiliki ribuan piksel dan

masing-masingnya memerlukan banyak
bit untuk di representasikan, oleh karena
itu citra digital harus dikompresi.
Mengacu dari sumber yang telah
dikemukakan oleh ilmuwan di atas,
timbul suatu pertanyaan, apakah proses
kompresi citra memerlukan waktu yang
cukup lama untuk mendapatkan hasil
yang sesuai, terlebih jika proses tersebut
hanya
dilakukan
oleh
komputasi
sekuensial?. Keadaan inilah yang memicu
dilakukannya berbagai algoritma yang

bekerja secara sekuensial kemudian
dikonversikan ke dalam banyak algoritma
paralel yang dapat berjalan pada Graphic
Processing Unit ( GPU ). Beberapa

algoritma yang terkait dengan proses
kompresi citra pada GPU antara lain yaitu
algoritma Discrete Cosine Transform (
DCT ), algoritma Fraktal, algoritma
Discrete Wavelete Transform ( DWT ) .
Pada
sebuah
penelitian
sebelumnya, yang telah dilakukan oleh
dua orang berkebangsaan Indonesia
dengan judul jurnal “Algoritma Kompresi
Fraktal Sekuensial Dan Paralel Untuk
Kompresi Citra”( Satrya N Ardhitya dan
Lely Hariyanto, 2011) menyatakan bahwa
proses kompresi citra pada komputasi
paralel GPU menghasilkan waktu yang
lebih cepat dibandingkan dengan proses
kompresi
citra
pada

komputasi
sekuensial. Oleh karena itu, penulis
mencoba membuktikan kebenaran dari
analisa tersebut dengan menggunakan
metode kompresi citra yang lain yaitu
metode DCT yang beroperasi pada blok
8x8.
Sehingga tujuan dari penelitian ini
tercapai yaitu membandingkan nilai
speedup dari beberapa sample citra uji
yang di olah dari data percobaan pada
komputasi sekuensial dan pada komputasi
paralel dengan memanfaatkan cuda timer
function sebagai uji parameter untuk
mendapatkan waktu proses kompresi citra
pada setiap sampel uji .

2. Tinjauan Pustaka
2.1 Kompresi Citra
Kompresi citra adalah aplikasi kompresi

data yang dilakukan terhadap citra digital
dengan tujuan untuk
mengurangi
redudansi dari data-data yang terdapat
dalam citra sehingga dapat disimpan atau
ditransmisikan secara efisien.
Teknik pada kompresi terbagi menjadi 2
jenis yaitu :

diman kehilangan bitrate foto tidak
berpengaruh pada citra. Metode yang
dipakai pada teknik kompresi ini antara
lain : Color Reduction, Chroma
Subsampling, Transform Coding.
Hal-hal penting dalam kompresi citra
antara lain :
1. Scalability

1. Loseless Compression
Teknik kompresi citra dimana tidak ada

satupun informasi citra yang dihilangkan,
biasanya digunakan pada citra medik.
Metode yang dipakai pada teknik
kompresi ini antara lain : Run Length
Encoding, Entropy Encoding ( Huffman,
Aritmatik ) dan Adaptive Dictionary
Based ( LZW ).

Adalah kualitas dari hasil proses
pengkompresian citra karena manipulasi
bitstream tanpa adanya dekompresi atau
rekompresi, biasanya dikenal pada
lossless codec. Contohnya pada saat
preview image sementara ketika di
unduh, semakin baik scalability, semakin
bagus preview imagenya.
2. Region of Interest Coding

2. Lossy Compression
Teknik

kompresi
citra
yang
menghilangkan beberapa informasi dalam
citra asli dan merubah ukuran file citra
menjadi lebih kecil dari citra aslinya.
Teknik ini mengubah detail dan warna
pada file citra menjadi lebih sederhana
tanpa terlihat perbedaan yang mencolok
dalam pandangan manusia, sehingga
ukurannya menjadi lebih kecil, biasanya
digunakan pada citra foto atau image lain
yang tidak memerlukan detail citra ,

Daerah-daerah tertentu dienkode dengan
kualitas yang lebih tinggi daripada yang
lain
3. Meta Information: citra yang
dikompres juga dapat memiliki meta
information seperti statistik warna,

tekstur, small preview image , dan author
atau copyright information.

2.2 Algoritma DCT
Metode DCT pertama kali
diperkenalkan oleh Ahmed, Natarajan dan
Rao pada tahun 1974 dalam makalahnya

yang berjudul “On Image Processing and
a Discrete Cosine Transform” . DCT
adalah sebuah teknik untuk mengubah

sinyal ke dalam komponen frekeunsi
dasar. DCT merepresentasikan sebuah
citra dari penjumlahan sinusoida dari
magnitude dan frekeunsi yang berubahubah. Sifat dari DCT adalah mengubah
informasi
citra
yang
signifikan

dikonsentrasikan hanya pada beberapa
koefisien DCT. DCT berhubungan erat
dengan Fast Fourier Transform ( FFT ),
sehingga
menjadikan
data
direpresentasikan
dalam
komponen
frekeunsinya. Demikian pula, dalam
aplikasi pemrosesan citra, DCT dua
dimensi memetakan sebuah citra atau
sebuah segmen gambar ke dalam
komponen frekeunsi dua dimensi ( 2D ).

tersebut ke frekeunsi spasial yang disebut
dengan koefisien DCT. Frekeunsi
koefisien DCT yang lebih rendah muncul
pada kiri atas dari sebuah matriks DCT,
dan frekeunsi koefisien DCT yang lebih
tinggi berada pada kanan bawah dari
matriks DCT. Sistem penglihatan
manusia tidak begitu sensitive dengan
error yang ada pada frekenusi tinggi
disbanding dengan yang ada pada
frekuensi rendah. Karena itu, maka
frekuensi yang lebih tinggi tersebut dapat
di kuantisasi.
Berikut skema proses kompresi
menggunakan algoritma DCT beroperasi
blok 8x8 :

DCT adalah sebuah skema lossy
compression
dimana
NxN
blok
ditransformasikan dari domain spasial ke
domain DCT. DCT menyusun sinyal
Gambar 1. Skema Algoritma DCT8x8
2.2 GPU
GPU memiliki arsitektur tertentu,
hal ini disebabkan karena GPU
merupakan prosesor multithread yang
mampu mendukung jutaan pemrosesan
data pada satu waktu [Mukhlis, Yulisdin
dan Lingga Harmanto, 2007]. Arsitektur
tersebut dapat digambarkan seperti
dibawah ini :

Gambar 2. Arsitektur GPU
Gambar di atas menggambarkan GPU
terdiri dari n thread processor dan device
memory. Setiap thread processor. Terdiri

dari beberapa precision FPU (Fragement
Processsing Unit ) . Device memory akan
menjadi
tempat
pemrosesan
data
sementara selama proses parallel. Pada
pemrosesan data, GPU menggunakan
metode shared memory multiprocessor.
Kelebihan
shared
memory
ini
dibandingkan dengan jenis paralel
computer yang lain adalah lebih cepat dan
effiisien karena kecepatan transfer data
antar unit komputasi tidak mengalami
degradasi. Shared memory multiprocessor
juga memliki kekurangan , diantaranya :
1. Relatif lebih mahal dan rumit untuk
diimplementasikan
2. Tidak tahan lama,,system jenis ini lebih
sulit untuk di upgrade

3. Sulit untuk mengkoordinasikan
pembagian memory yg tersedia untuk
masing-masing unit komputasi
2.2.1 Hirarki Kernel GPU

Banyaknya block dan thread per block
didefinisikan saat memanggil kernel
dalam program. Thread yang berada
dalam satu block dapat saling berbagi
memori, tapi tidak dengan thread yang
berada di lain block.

CUDA menyediakan ekstensi
pada bahasa C berupa fungsi yang
ditandai tag khusus: __global__
Bila
membaca
keyword
__global__, CPU akan menjalankan
fungsi tersebut di dalam GPU. Setelah
memulai eksekusi pada GPU, program
akan segera mengeksekusi perintah
berikutnya, tidak harus menunggu
eksekusi
GPU
selesai.
Hal
ini
memungkinkan
pemrogram
untuk
menjalankan komputasi secara paralel
antara CPU dan GPU.
Selain
dengan
keyword
__global__ , kernel juga dapat
dideklarasikan
dengan
keyword
__device__.
Bedanya,
kernel
__device__ini hanya dapat dipanggil oleh
kernel yang lain, alias oleh fungsi yang
sudah berjalan pada GPU. Kernel CUDA,
baik yang didefinisikan dengan keyword
__global__ maupun __device__ ,
mempunyai kelemahan: ia tak dapat
dieksekusi secara rekursif. Artinya, suatu
kernel tidak dapat memanggil dirinya
sendiri. Kernel CUDA juga tak dapat
memanggil fungsi selain kernel CUDA
yang lain. Ini berarti fungsi host (CPU)
tidak dapat dipanggil dari kernel (GPU).
Kernel sendiri dijalankan dengan
banyak thread secara bersamaan pada
GPU. Bisa dibilang thread adalah satuan
eksekuis terkecil dalam CUDA. Thread
ini dikelompokkan pada block. Jumlah
thread yang dapat dijalankan pada satu
block
terbatasi
oleh
kemampuan
hardware, tapi satu kernel dapat
dijalankan oleh banyak block sekaligus.

Gambar 3. Hirarki Kernel GPU
2.2.2 Hirarki Thread GPU
Blok Thread diperlukan untuk
mengeksekusi secara mandiri. Ini
mungkin untuk mengeksekusi mereka
dalam urutan apapun, secara paralel atau
seri. Persyaratan ini memungkinkan blok
thread secara mandiri untuk dijadwalkan
dalam urutan apapun di setiap jumlah
core, memungkinkan programmer untuk
menulis kode yang timbangan dengan
jumlah core. Jumlah blok thread di grid
biasanya ditentukan oleh ukuran data
yang sedang diproses bukan oleh jumlah
prosesor dalam sistem.

Gambar 4. Hirarki Thread GPU

2.2.3 Hirarki Memori GPU
CUDA thread mengijinkan akses
data dari banyak ruang pada meori ketika
sedang mengeksekusi program CUDA.
Setiap thread memiliki private local
memory. Masing-masing thrad block
memiliki shared memory yang bisa di
implementasikan untuk semua thread
pada blok. Oleh karena itu, semua thread
memiliki akses untuk global memori yang
sama. Global, konstan dan tekstur memori
di optimalkan untuk kebutuhan yang

berbeda-beda. Global, konstan dan tekstur
memori diakses pada seluruh fungsi
kernel pada aplikasi yang sama.

Gambar 5. Hirarki Memori GPU

2.4 Cuda
CUDA merupakan akronim dari
Compute Unified Device Architecture
yaitu
sebuah
teknologi
yang
dikembangkan oleh NVIDIA untuk
mempermudah utilitasi GPU untuk
keperluan umum (non-grafis).
Arsitektur
CUDA
ini
memungkinkan pengembang perangkat
lunak untuk membuat program yang
berjalan pada GPU buatan NVIDIA
dengan syntax yang mirip dengan syntax
C yang sudah banyak dikenal.
Pemorgraman CUDA sama seperti
membuat program C biasa. Saat
kompilasi, syntax2 C biasa akan diproses
oleh compiler C, sedangkan syntax
dengan keyword CUDA akan diproses
oleh compiler CUDA (nvcc).
Arsitektur
CUDA
memiliki
beberapa keunggulan, diantaranya adalah
:
1. CUDA menggunakan bahasa “C”
standar, dengan beberapa ekstensi yang
simpel.
2.
Shared
memory

CUDA
menyingkapkan wilayah memory yang
cepat (berukuran 16 KB) yang dapat di

bagi diantara Start Debugging.yang ada.
Hal ini dapat digunakan sebagai usermanaged-cache, sehingga mengaktifkan
bandwitdth yang lebih besar (dari besaran
bandwidth
yang
dimungkinkan),
menggunakan texture loops.
3. Support penuh terhadap operasi integer
dan bitwise.
Namun dibalik beberapa kelebihan itu,
CUDA juga memiliki kekurangan.
Kekurangan dari arsitektur CUDA adalah
:
1. CUDA
tidak
support
texture
rendering.
2. Bus Bandwidth dan latensi antara CPU
dengan GPU bisa jadi tidak imbang.
3. CUDA hanya terdapat pada GPU
Nvidia.
Untuk dapat bekerja dengan teknologi
CUDA ada 3 komponen yang harus
tersedia pada perangkat PC atau
notebook. Komponen tersebut antara lain
:

1. CUDA driver, merupakan driver yang
harus sudah terinstal pada device yang
akan digunakan untuk menjalankan
program CUDA. Device tersebut harus
menggunakan kartu grafis dari Nvidia.
2. CUDA toolkit, merupakan ruang
lingkup pengembangan CUDA dari
bahasa C sehingga akan menghasilkan
CUDA-enabled GPU.
3. CUDA SDK, berisi sample-sample
program CUDA dan header yang dapat
dijalankan oleh program CUDA.
3. Metode Penelitian
Penelitian ini dilakukan untuk
mencapai tujuan yang diharapkan yaitu
mengukur kinerja teknologi CUDA
menggunakan algoritma DCT 8x8 blok
untuk melakukan proses kompresi citra
dengan cara mengukur speed up atau
kecepatan yang dapat dicapai oleh
teknologi CUDA yang mengerjakan
proses secara paralel dan kemudian
membandingkan speedup yang didapat
dengan algoritma DCT yang dilakukan
secara sekuensial.
Penelitian ini dilakukan agar dapat
menjawab beberapa masalah, antara lain :
1.Mengetahui speedup dari proses yang
dikerjakan
secara
paralel
dengan
menggunakan teknologi CUDA yang
berasal dari GPU Nvidia GeForce GT
540M.
2.Mengetahui speedup dari proses yag
dilakukan secara sekuensial dengan
menggunakan processor i3-2310M.
3.Dapat membandingan kedua speedup
diatas, yaitu speed up dari proses yag
dikerjakan secara sekuensial dan paralel.
Untuk dapat menjawab beberapa masalah

diatas, maka ada beberapa langkah
penelitian yang harus penulis lakukan
terlebih
dahulu.
Langkah-langkah
penelitian tersebut antara lain :
1. Mempersiapkan program CUDA untuk
Paralel GPU
Pada bagian ini, penulis akan
mempersiapkan program CUDA yang
membahas tentang kompresi citra dengan
menggunakan algoritma DCT 8x8.
Program CUDA ini harus dapat
dijalankan pada GPU Nvidia GT 540M.
Pada forum nvidia, beberapa developer
telah membuat program kompresi citra
menggunakan metode DCT 8x8. Program
ini berisi tahap-tahap dalam melakukan
proses kompresi citra mulai dari tahap
mengambil citra uji. sampling, DCT ,
Quantization, Entropy coding hingga
mendapakan citra hasil kompresi .
Pada algoritma DCT8x8, di
sesuaikan dengan batasan masalah bahwa
Metode DCT 8x8 yag digunakan hanya
dengan menggunakan pendekatan 1
kernel . Program ini akan menghasilkan
output berupa waktu yang dihasilkan dari
eksekusi kernel selama proses kompresi
citra berlangsung berlangsung. Waktu
yang dihasilkan dengan satuan waktu
berupa ms (millisecond) dengan input
berupa empat buah citra uji dengan
masing-masing citra uji memliki dimensi
yaitu
256x256px,
512x512px,
1024x1024px, 2048x2048px.
2. Mempersiapkan program C++ untuk
komputasi sekuensial
Pada bagian ini, kita akan
mempersiapkan program C++ yang akan
dijalankan pada CPU berupa intel
processor i3 2310M. Program didapat
dari satu paket dengan program yang
dijalankan pada proses paralel. Pada

program
ini,
kompresi
citra
memanfaatkan perkalian matriks 8x8
dengan input berupa beberapa dimensi
citra uji. Program pada cpu dinamai
dengan file dct8x8_Gold.cpp. dan pada
program CPU ini akan di proses loading
untuk memproses citra original menjadi
citra yang telah dikompresi.
3. Membandingkan speed up antara GPU
dan CPU Setelah program CPU dan GPU
berhasil dijalankan, maka langkah
selanjutnya adalah membandingkan speed
up antara program yang dikerjakan oleh
GPU dan CPU.
4. Menarik kesimpulan berdasarkan
penelitian yang telah dilakukan.
Berdasarkan proses perbandingan yang
telah dilakukan sebelumnya, kita dapat
menarik kesimpulan apa yang didapat
dari percobaan yang telah dilakukan dan
proses yang lebih cepat dikerjakan antara
GPU dan CPU. Bagaimana perbandingan
yang dihasilkan antara kedua program
diatas.

dengan beberapa metode yang terpisah.
Berbeda halnya dengan CUDA, peta
pendekatan dijelaskan baik untuk model
pemrograman CUDA dan arsitektur
parallel khususnya.
Gambar dibagi menjadi satu set
blok seperti yang ditunjukkan pada
gambar (1). Setiap satu set blok-CUDA
menjalankan 64 thread untuk melakukan
penghitungan DCT.
Masing-masing
thread di blok-CUDA menghitung
koefisien DCT tunggal. Semua bentuk
persinyalan sebelum di hitung akan
disimpan dalam bentuk array yang
terletak pada memori.

3.1 Algoritma DCT 8x8 pada Cuda

DCT ukuran NxN didefinisikan sebagai

Berdasarkan referensi dari sumber
pengembang program cuda Anton
Obhukov dan Alexander Kharlamov:2008
, maka diperlukan tahapan-tahapan
hingga tercapai penggunaan teknologi
CUDA pada algoritma DCT 8x8 untuk
proses kompresi citra. Beberapa tahapan
fase tersebut yaitu :
Pelaksanaan DCT8x8 menurut
definisi
ini
dilakukan
dengan
menggunakan dasar perkalian mariks.
Untuk mengkonversi 8x8 masukan
sampel ke dalam domain transform, dua
perkalian dua matriks mutlak diperlukan.
Namun, solusi ini prakteknya
tidak
pernah digunakan ketika menghitung
DCT8x8 pada CPU.Karena menunjukkan
tinggi kompleksitas komputasi relatif

Array

pada

memori

konstan

tersebut ditampilkan sebagai array dua
dimensi yang berisi nilai-nilai fungsi
dasar yaitu A (x,u). Fungsi Dua dimensi

berikut :

Gambar 6. Sampel citra yang dibagi ke
dalam 8x8 blok.
Dua dimensi DCT
dilakukan
dalam
empat
langkah
( mempertimbangkan jumlah thread ):

1.

2.

3.

4.

Thread
dengan
koordinat
(ThreadIdx.x, ThreadIdx.y) memuat
satu
pixel
dari
tekstur
untuk memori bersama. Untuk
memastikan seluruh blok dimuat
untuk
saat
ini,
semua thread yang melewati titik
sinkronisasi.
Thread menghitung dot product
antara
dua
vektor:
Kolom
ThreadIdx.y dari kosinus koefisien
(yang sebenarnya deretan AT dengan
nomor yang sama) dan ThreadIdx.x
kolom dari blok masukan. Untuk
memastikan semua koefisien dari
ATX adalah dihitung, dan harus di
sinkronisasikan.
Thread dihitung dengan formula (
ATX ) A , dengan cara yang sama
seperti langkah 2
Seluruh blok akan disalin dari shared
memory untuk hasil output dalam
global
memory
dan setiap thread bekerja dengan
single pixel.

elemen matriks. Blok biru menunjukkan
bagaimana perhitungan dilakukan .
Elemen pada matriks asli dan
transfer matriks koefisien disorot dengan
warna yang berbeda. Untuk mentransfer
kolom kedua, matriks akan bertukar
posisi.

Gambar 8. Model komputasi DCT pada
memory GPU
Setiap elemen me-load dari
memori global untuk berbagi memori .
Karena ukuran blok di atur menjadi 8x8,
maka indeks thread akan menjadi jumlah
indeks pada bank memori. Setelah
menyelesaiakan
perhitungan,
data
memori akan di-load kembali ke memori
global.
Untuk
menyesuaikan
model
perhitungan dengan ukuran piksel matriks
. Maka dibuatlah padding lokasi yang di
set sebagai warna biru terang agar akses
memori
menjadi
selaras
ketika
mengeksekusi program.
3.2 Kompleksitas Algoritma DCT

Gambar 7. Model komputasi DCT pada
Thread GPU
Model komputasi DCT pada GPU
ditunjukkan pada gambar di atas. Setiap
blok thread menghitung satu sub persegi
untuk mendapatkan hasil perhitungan
matriks ( Kotak persegi hijau ). Setiap
thread dalam blok menghitung satu

Algoritma
DCT
memiliki
kompleksitas waktu Total sebesar O ( N
log N), dengan kompleksitas waktu yang
diterapkan pada formula perkalian dua
matriks sebesar O ( N3 ). Oleh karena itu,
jika Algoritma DCT menggunakan blok
8x8 maka inputan n = 8, membutuhkan
( 83 ) langkah untuk menyelesaikan
proses perkalian matriksnya.

3.3 Spesifikasi Hardware dan Software
Pada saat pembuatan dan menjalankan
program terutama program CUDA
dibutuhkan spesifikasi-spesifikasi tertentu
untuk perangkat yang digunakan.
Dibawah ini akan diuraikan perangkat
yang digunakan baik hardware maupun
software.






Spesifikasi Hardware (Perangkat
Keras)
o Notebook ASUS N43SL
o Prosesor Intel Core i3 2310M 2.2
GHz
o GPU Nvidia GeForce GT 540 M 2
GB yang mendukung teknologi
CUDA
o Memori DDR3 1333 MHz
SDRAM 2 GB
o Harddisk 640 GB
Spesifikasi
Software
(Perangkat
Lunak)
o Sistem
Operasi
Microsoft
Windows 7
o Microsoft Visual Studio 2008
sebagai IDE
o NVIDIA Graphics Driver 285.62
o NVIDIA CUDA Toolkit v3.2
o NVIDIA GPU Computing SDK
3.2
Spesifikasi GPU Nvidia Cuda
Geforce GT540M
o CUDA Cores : 96
o Processor Clock ( MHz ): 1344
o Memory Clock ( MHz ): 900
o Memory Interface Width : 128-bit
o Memory Bandwidth (GB/Sec)
: 28.8
o Microsoft DirectX: 11

4. Hasil Pengujian dan Analisa
Data yang digunakan berupa waktu
proses kompresi yang didapat dari

beberapa kali percobaan pada program
sekuensial dan parallel. Cara melakukan
percobaan adalah dengan melakukan
build pada project, jika tidak ditemukan
error lagi atau dengan kata lain program
sukses di build kemudian pada menu pilih
debug lalu klik Start Debugging.
4.1
Hasil
Pengujian
Waktu
perbandingan Kompresi citra pada
komputasi sekuensial dan parallel

Gambar 9. Grafik perbandingan waktu
proses kompresi citra pada komputasi
sekuensial dan paralel
1. pada data pertama dengan citra uji 256
x 256 piksel, perbandingan antara
komputasi sekuensial dan paralel tidak
menunjukan perbedaan yang signifikan.
pada komputasi sekuensial proses
kompresinya membutuhkan waktu 0.674
ms sedangkan pada komputasi parallel
proses kompresinya membutuhkan waktu
0.452 ms.
2. pada data kedua dengan citra uji 512 x
512
piksel,
perbandingan
antara
komputasi sekuensial dan paralel juga
tidak menunjukan perbedaan yang
signifikan. pada komputasi sekuensial
proses kompresinya membutuhkan waktu
4 ms sedangkan pada komputasi parallel
proses kompresinya membutuhkan waktu
0.948 ms.
3. pada data ketiga dengan citra uji 1024
x 1024 piksel, perbandingan antara
komputasi sekuensial dan paralel
menunjukan perbedaan yang cukup

terlihat. pada komputasi sekuensial proses
kompresinya membutuhkan waktu 17.294
ms sedangkan pada komputasi parallel
proses kompresinya membutuhkan waktu
3.508 ms.
4. pada data keempat dengan citra uji
2048 x 2048 piksel, perbandingan antara
komputasi sekuensial dan paralel
menunjukan perbedaan yang signifikan.
pada komputasi sekuensial proses
kompresinya membutuhkan waktu 68.144
ms sedangkan pada komputasi parallel
proses kompresinya membutuhkan waktu
13.53 ms.

Gambar 10. Speedup kompresi Citra
DCT 8x8
5. Kesimpulan
Berdasarkan grafik pada ujicoba dan
analisa terhadap beberapa citra uji maka
penulis dapat menarik kesimpulan, antara
lain :

4.2 Speedup
Mengacu pada rumus
௧௦
S(p) =
௧௣

Keterangan rumus :
S (p) = nilai speedup
ts
= Waktu Pemrosesan Sekuensial
tp
=Waktu
pemrosesan
parallel
dengan p processor
maka di dapat nilai speedup sebagai
berikut :
Tabel 1. Nilai speedup untuk setiap citra
uji
Dimensi Citra
Speedup
Uji (px)
256 x 256

0.36

512 x 512

4.25

1024 x 1024

4.78

2048 x 2048

5.02

1. Waktu yang dibutuhkan oleh
komputasi sekuensial CPU untuk
mengerjakan proses kompresi citra lebih
lama dibanding waktu yang dibutuhkan
oleh komputasi paralel GPU dengan
selisih 0.22ms untuk citra uji 256x256px,
3.052 untuk citra uji 512x512px, 13.786
untuk citra uji 1024x1024px, dan 54.614
untuk citra uji 2048x2048px
2. Proses komputasi waktu secara
signifikan terlihat ketika dimensi citra uji
telah mencapai 2048 x 2048 px. Hal ini
dikarenakan terjadi overhead pada sistem
parallel misalnya komputasi tambahan
yang dibutuhkan pada sistem paralel,
lambatnya komunikasi antar prosesor dan
proses sinkronisasi antar thread tidak
sepenuhnya berjalan optimal karena GPU
tidak
hanya
memproses
program
kompresi citra ketika debugging tetapi
menjalankan program lain di waktu yang
bersamaan.
3. Setalah melalui analisa dari percobaan
pada komputasi sekuensial, komputasi
paralel
dan
peghitungan
formula
kompleksitas algoritma kompresi DCT,

maka
dapat
disimpulkan
dari
penggambaran grafik pada proses
komputasi melalui percobaan sesuai
dengan penggambaran grafik pada
penghitungan formula DCT yaitu data
yang dihasilkan bersifat non-linear.
Karena, semakin besar blok proses pada
DCT membutuhkan perhitungan yang
semakin kompleks dan bit-bit image yang
direpresentasikan harus melalui beberapa
tahapan perhitungan seperti kuantisasi
maupun
enthropy
coding
yang
menyebabkan komputasi tidak efisien.
4. speedup bersifat terus meningkat
terhadap data citra uji serta non-linear
terhadap data citra uji. Karena pengaruh
jumlah piksel yang semakin besar
menyebabkan penghitungan bit-bit citra
menjadi lebih kompleks. Hal ini sesuai
dengan Hukum Gustafson yang berbunyi
“Speedup akan meningkat jika ukuran
data juga ditingkatkan” .
5. Hasil speedup pada uji citra 256x256
px dengan 512x512 px mengalami
kenaikan yang cukup signifikan karena
proses preprocessing pada penjadwalan
kerja dari masing-masing prosessor tidak
bisa dikerjakan secara parallel. Hal ini
yang menyebabkan lambatnya proses
penyalinan memori utama ke memori
VGA untuk diproses oleh procesoor
VGA.
Untuk penelitian selanjutnya, eksperimen
yang akan dilakukan difokuskan pada
beberapa hal berikut :
1.
Melakukan ujicoba jika metode
DCT8x8 pada CUDA di implementasikan
untuk transmisi citra menggunakan kanal
multipath.
2.
Melakukan
perbandingan
komputasi waktu setiap citra uji antara

metode DCT 8x8 pada CUDA dengan
metode Fraktal pada CUDA.
6.Referensi
[1]Anonim.NVIDIACUDAProgramming
Guide2.3NvidiaCorporation,http://deve
loper.download.nvidia.com, 2009.
[2] Anonim. Kompresi data menggunakan
discrete
cosine
transform.
http://repository.usu.ac.id , 2010.
[3]Antonius
Rachmat
Chrismanto.
Kompresicitra.http://lecturer.ukdw.ac.i
d , 2006.
[4]Anton Obhukov and Alexander Kh
armalov. Discrete Cosine Transform
for 8x8 Blocks . Nvidia Corporation,
2008.
[5]Maria Kartawijaya. Analisis kinerja
perkalian
matriks
paralel
menggunakan metrik isoefisiensi.
TESL A , 10, 2008.
[6] Rosni Gonindjaya. Konsep dasar citra.
http://rosnigj.staff.gunadarma.ac.id/D
ownloads/files/15421/Konsep+Dasar+
Citra.pdf , 2006.
[7]Tamal Bose. Digital Signal and Image
Processing. John Willey and Sons (
ASIA ), 2004.
[8]Zainuddin Muhammad Agus Febri,
Ikhsan P ratama and Tri Budi Santoso.
Analisis kinerja transmisi citra
menggunakan tra nsformasi dct
melalui
kanal
multipath.
http://www.eepis-its.edu , 2009.