BAB I PENDAHULUAN 1 1.1
BAB I PENDAHULUAN
Latar Belakang Gambar digital telah digunakan secara luas dalam grafika komputer.
Gambar digital tersebut banyak ditemukan pada website, foto digital, desain grafis, dll. Terdapat dua cara yang berbeda dalam merepresentasikan gambar digital yakni raster/bitmap dan vektor. Vector graphic biasa diimplementasikan pada gambar digital yang akan dicetak sehingga tidak ada perubahan kualitas jika gambar tersebut mengalami perubahan ukuran resolusinya. Berbeda dengan raster graphic dimana kualitas gambar akan berbeda jika ukuran gambar diperbesar. Raster graphic inilah yang digunakan sebagai tekstur pada aplikasi 3D/2D. Dalam grafika komputer, tekstur ialah representasi digital dari permukaan sebuah
objek.
Sedangkan
texture
mapping
merupakan
teknik
dalam
mengaplikasikan sebuah gambar pada sebuah permukaan (Tong, 2006). Texture mapping ditujukan untuk meningkatkan kualitas visual pada sebuah skenario (contoh pada sebuah game) tanpa menambah kompleksitas geometrinya (Heckbert, 1986). Dewasa ini pengimplementasian tekstur pada aplikasi 2D maupun 3D juga acap kali diterapkan termasuk pada perangkat bergerak. Kemampuan perangkat bergerak telah berkembang pesat sejak pertama kali perangkat bergerak dikenalkan. Telah banyak beredar pula di pasaran perangkat bergerak yang dibekali dengan kemampuan 3D hardware acceleration. Akan tetapi keterbatasan sumber daya seperti memory, 3D hardware, maupun baterai pada perangkat bergerak telah menghantarkan pada penelitian yang berkelanjutan untuk menghasilkan metode yang efisien dalam masalah perenderan objek 3D (Tan, et al., 2007). Hal ini dikarenakan sangat banyaknya proses komputasi yang dibutuhkan oleh aplikasi rendering untuk memperoleh real-time rendering yang optimal seperti yang disebutkan Chang dan Ger (2002). Sementara itu kompresi data dapat membantu menghemat kapasitas memori maupun penggunaan bandwidth. Oleh karena itu, salah satu cara untuk membantu mempercepat proses rendering dan menghemat sumber daya pada perangkat 1
2
bergerak (dalam penelitian menggunakan perangkat android) yaitu dengan melakukan perenderan tekstur secara langsung dari data yang telah terkompresi. Terdapat banyak teknik untuk kompresi gambar. Secara garis besar teknik kompresi terbagi menjadi dua bagian yakni lossless dan lossy. Lossless menjaga informasi tetap sama dengan data awal, sedangkan lossy akan terdapat sebagian informasi yang hilang ketika proses kompresi sehingga data akhir akan berbeda dengan data awal. Sebagian dari teknik kompresi ini didesain untuk gambar tertentu sehingga teknik tersebut tidak cocok untuk jenis gambar yang lainnya (Vijayvargiya, et al., 2013). Dalam papernya, Beers, et al. (1996) menjelaskan setidaknya terdapat empat aspek mengapa skema kompresi vector quantization (VQ) cocok untuk texture mapping. Kecepatan decoding menjadi aspek terpenting, sehingga dibutuhkan proses decoding yang mudah dan murah (dari segi komputasi). Dengan menggunakan VQ, decoding dilakukan melalui pencarian pada sebuah tabel (table lookup) dan prosesnya pun sangat cepat. Hal ini berbanding terbalik dengan proses encoding pada VQ. Untuk menghasilkan hasil kompresi yang optimal, VQ memerlukan proses yang mahal dan lama. Untungnya untuk kompresi tekstur, kecepatan decoding jauh lebih penting daripada kecepatan encoding. Dengan kata lain, teknik kompresi menggunakan VQ cocok untuk aplikasi-aplikasi dimana sumber daya yang tersedia untuk decoding adalah kurang dari sumber daya yang tersedia untuk encoding (Merchant, 2011).
1.2
Perumusan Masalah Berdasarkan latar belakang di atas dapat disimpulkan rumusan masalah
yang akan diselesaikan yaitu: 1.
Bagaimana melakukan rendering dari data terkompresi pada perangkat android?
2.
Apakah rendering dari tekstur terkompresi lebih cepat daripada cara baseline dalam penelitian ini yaitu rendering tekstur dari file PNG?
3.
Seberapa efisien metode tersebut dalam menghemat sumber daya (memori dan RAM) pada perangkat android?
3
1.3
Batasan Masalah Batasan masalah dari penelitian yang dibuat ini adalah sebagai berikut:
1.
Penelitian ini menerapkan vector quantization sebagai teknik kompresi.
2.
Algoritma Linde-Buzo-Gray dan Nearest Neighbour digunakan untuk menghasilkan codebook.
3.
Baseline file gambar yang dipakai hanya file dengan format PNG.
4.
Aplikasi ini dibangun di atas bahasa pemrograman Java dengan JDK 8.0 (versi minimal JDK 8.0 untuk menjalankan aplikasi).
5.
Aplikasi ini hanya menggunakan Android SDK.
6.
Aplikasi ini diimplementasikan pada platform Android KitKat 4.4.2.
7.
Aplikasi ini menggunakan OpenGL ES sebagai grafis 3D API.
1.4
Tujuan Penelitian Tujuan dari penelitian ini adalah untuk membangun sebuah metode/aplikasi
yang dapat melakukan rendering dari tekstur terkompresi pada perangkat android dan melakukan beberapa pengujian pada metode tersebut.
1.5
Manfaat Penelitian Penelitian ini diharapkan dapat menghasilkan sebuah metode yang dapat
mempercepat proses rendering dan dapat menghemat sumber daya pada perangkat android.
1.6
Metodologi Penelitian Dalam penelitian kali ini metode penelitian yang akan digunakan adalah:
1.
Tinjauan pustaka, dilakukan dengan mempelajari buku-buku atau penelitian-penelitian sebelumnya yang berkaitan dengan penelitian ini. Informasi yang didapatkan akan digunakan untuk membantu dalam proses penyelesaian penelitian ini.
4
2.
Analisis, dilakukan dengan memahami dan menelaah apa saja yang dibutuhkan guna menjawab pertanyaan yang terdapat pada perumusan masalah.
3.
Perancangan, dilakukan dengan membuat use case diagram, class diagram, dan flowchart diagram yang diperlukan untuk membuat aplikasi guna melakukan perbandingan antara rendering dari tekstur yang terkompresi dengan rendering dari file gambar PNG.
4.
Implementasi, dilakukan dengan membangun bagian encoder pada komputer dengan berbasiskan bahasa pemrograman java dan membangun decoder pada perangkat android Kitkat.
5.
Pengujian, dilakukan beberapa pengujian diantaranya pengujian untuk memilih algoritma antara linde-buzo-gray dan nearest neighbour serta pengujian untuk membandingkan rendering dari tekstur terkompresi dan rendering dari file gambar PNG.
1.7
Sistematika Penulisan Sistematika penulisan yang akan digunakan dalam penelitian ini adalah
sebagai berikut: 1.
PENDAHULUAN, berisi penjelasan tentang latar belakang, perumusan masalah, tujuan penelitian, manfaat penelitian, serta metodologi penelitian.
2.
TINJAUAN PUSTAKA, berisi uraian secara ringkas mengenai penelitianpenelitian terkait sebelumnya.
3.
LANDASAN TEORI, berisi penjelasan tentang materi-materi yang digunakan dalam penelitian ini serta penjelasan tentang beberapa definisi yang digunakan untuk menghindari ambiguitas.
4.
ANALISIS DAN PERANCANGAN, berisi penjelasan tentang analisis dan semua kebutuhan aplikasi-aplikasi serta perancangannya berdasarkan analisis tersebut.
5.
IMPLEMENTASI, berisi penjelasan bagaimana menerapkan semua rancangan yang telah dibuat untuk dibangun menjadi sebuah aplikasi yang utuh.
5
6.
PENGUJIAN DAN PEMBAHASAN, berisi penjelasan tentang proses pengujian terhadap aplikasi yang telah dibangun kemudian dilanjutkan dengan penjelasan pembahasan dari hasil pengujian tersebut.
7.
KESIMPULAN DAN SARAN, berisi penjelasan tentang kesimpulan berdasarkan hasil dari penelitian dan saran yang ditujukan untuk penelitian lebih lanjut.