Presentasi 50407094 Andika
Presentasi 50407094 Andika
LATAR BELAKANG
Ingin membuktikan kebenaran, apakah proses kompresi citra
dengan metode DCT 8x8 memang dapat di implementasikan
pada komputasi paralel GPU?
Ingin membuktikan kebenaran dari analisa pada percobaan
sebelumnya,apakah komputasi paralel GPU juga dapat
mempercepat proses kompresi citra dengan menggunkan
metode DCT 8x8?
RUMUSAN MASALAH
1. Bagaimana cara kerja algoritma DCT 8x8 pada komputasi sekuensial dan
komputasi paralel ?
2. Berapa lama waktu yang dibutuhkan untuk menghasilkan citra yang telah
dikompresi dengan komputasi sekuensial maupun komputasi paralel GPU ?
4. Berapa nilai speedup yang diperoleh dari hasil kompresi setiap citra uji ?
BATASAN MASALAH
1. Algoritma kompresi citra yang digunakan adalah algoritma DCT yang beroperasi pada blok 8x8 dengan pendekatan 1 kernel.
2. Untuk proses yang bekerja secara sekuensial menggunakan bahasa pemrograman C++ sedangkan untuk proses yang bekerja secara
paralel GPU menggunakan teknologi dari Nvidia yang dapat membaca kartu grafis yaitu teknologi Compute Unified Device
Architecture ( CUDA ).
3. Parameter yang digunakan untuk menghitung komputasinya menggunakan cuda timer function.
4. Waktu yang didapat dari dua penelitian diatas dinyatakan dengan satuan waktu berupa millisecond.
5. Citra uji yang dikompresi sebanyak empat buah dengan masing-masing piksel berukuran dari 256 x 256 px , 512 x 512 px, 1024 x
1024 px dan 2048 x 2048 px dengan depth sebesar 24 bit dan bitmap sebagai format setiap citra uji.
6. Penelitian tentang kompresi citra dengan algoritma DCT 8x8 hanya di lakukan pada CPU Intel Core I3-2310M dan GPU Nvidia Cuda
Geforce GT540M menggunakan sistem operasi Windows7 Ultimate 32bit , Compiler NVCC untuk CUDA dan Visual Studio 2008
sebagai IDEnya serta menggunakan pustaka cuda yaitu cudart.lib dan cutil32.lib
7. Penelitian ini dibuat hanya untuk membuktikan apakah komputasi paralel GPU memang lebih cepat daripada kinerja komputasi
secara sekuensial?. Dan mendapatkan nilai speedup pada proses kompresi citra
TUJUAN PENELITIAN
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 :
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 ).
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 ,
diman kehilangan bitrate foto tidak berpengaruh pada citra. Metode yang dipakai pada teknik kompresi ini
antara lain : Color Reduction, Chroma Subsampling, Transform Coding ( termasuk DCT di dalamnya )
ALGORITMA DCT
Metode DCT pertama kali diperkenalkan oleh Ahmed, Natarajan dan Rao pada tahun 1974
DCT adalah sebuah teknik untuk mengubah sinyal ke dalam komponen frekeunsi dasar. DCT merupakan
sebuah skema lossy compression dimana NxN blok ditransformasikan dari domain spasial ke domain DCT.
Algoritma DCT memiliki kompleksitas waktu Total sebesar O ( N log N), dengan kompleksitas waktu yang
diterapkan pada formula perkalian dua matriks sebesar O ( N^{\text{3}}). Oleh karena itu, jika Algoritma
DCT menggunakan blok 8x8 maka inputan n = 8, membutuhkan ( 8^{\text{3}}) langkah untuk
menyelesaikan proses perkalian matriksnya.
ALGORITMA DCT
1. DCT menghitung kuantitas bit-bit data citra dimana pesan tersebut disembunyikan di dalamnya.
Walaupun gambar yang dikompresi dengan lossy compression akan menimbulkan kecurigaan karena
perubahan gambar terlihat jelas, pada metode ini hal ini tidak akan terjadi karena metode ini terjadi
di domain frekeunsi di dalam citra, bukan domain spasial, sehingga tidak akan ada perubahan yang
terlihat pada cover gambar.
2. Kokoh terhadap manipulasi pada stego-object.
1. Tidak tahan terhadap perubahan suatu objek dikarenakan pesan mudah dihapus karena lokasi
penyisipan data dan pembuatan data dengan metode DCT diketahui.
2.
ARSITEKTUR CUDA
CUDA merupakan akronim dari Compute Unified Device Architecture yaitu sebuah teknologi yang dikembangkan
oleh NVIDIA untuk mempermudah utilita.si GPU untuk keperluan umum (non-grafis).
1.
2.
Shared memory CUDA menyingkapkan wilayah memory yang cepat (berukuran 16 KB) yang dapat di bagi
diantara thread-thread yang ada. Hal ini dapat digunakan sebagai user-managed-cache, sehingga mengaktifkan
bandwitdth yang lebih besar (dari besaran bandwidth yang dimungkinkan), menggunakan texture loops.
1.
2.
Bus Bandwidth dan latensi antara CPU dengan GPU bisa jadi tidak imbang.
3.
ARSITEKTUR CUDA
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
1.
2.
3.
ARSITEKTUR CUDA
4. Langsung tersedia untuk kernel, tidak perlu di pass sebagai parameter
5. Tidak perlu di frre memory setelah eksekusi
Keuntungan menggunakan constant memory adalah dia diakses secara half-warp, sehingga 16
threads yang mengakses alamat yang sama cukup melakukan satu kali pembacaan memori.
Karena sifatnya yang konstan, constant memory juga dicache secara agresif oleh GPU.
2. Thread menghitung dot product antara dua vektor: Kolom ThreadIdx.y dari kosinus
koefisien (yang sebenarnya deretan A^T dengan nomor yang sama) dan ThreadIdx.x
kolom dari blok masukan. Untuk memastikan semua koefisien dari (A^T)X adalah
dihitung, dan harus di sinkronisasikan.
3. Thread dihitung dengan formula ( A^TX ) A , dengan cara yang sama seperti langkah 2
4. Seluruh blok akan disalin dari shared memory untuk hasil output dalam global
memorydan setiap thread bekerja dengan single pixel.
Jika dilihat model komputasi algoritma DCT 8x8 pada thread yaitu sebagai
berikut :
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 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.
KESIMPULAN
Proses kompresi citra dengan metode DCT 8x8 dapat diimplementasikan
pada arsitektur parallel GPU sehingga dapat menjadi pilihan alternatif untuk
memproses kompresi suatu citra dengan tidak hanya memanfaatkan
arsitektur sekuensial saja.
Nilai Speedup dari beberapa citra uji
KESIMPULAN
Hasil akhir yang didapat dapat disimpulkan bahwa speed up bersifat terus
meningkat terhadap data citra uji serta speedup bersifat non-linear
terhadap data citra uji. Karena pengaruh jumlah piksel yang semakin besar
menyebabkan penghitungan bit-bit citra menjadi lebih kompleks.
Dari percobaan yang telah dilakukan pada beberapa citra uji tentang
komputasi sekuensial dan komputasi parallel pada proses kompresi maka
speedup akan terus meningkat jika jumlah piksel semakin besar. Hal ini
sesuai dengan Hukum Gustafson yang berbunyi Speedup akan meningkat
jika ukuran data juga ditingkatkan .
SARAN
Mengingat masih banyaknya perbaikan yang perlu dilakukan pada skripsi ini,
maka penulis mempertimbangkan beberapa saran yang diperlukan dalam
proses untuk mengembangkan materi skripsi penulis di kemudian hari,
diantaranya adalah :
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.