BAB 3
PERANCANGAN SISTEM
3.1. Block Diagram Perancangan Sistem
Gambar 3.1 Block Diagram Sistem Pada gambar 3.1 dapat dilihat menggunakan sebuah hardware embedded yang bernama myRIO-1900 digunakan untuk pengolahan proses kompresi citra sedangkan pada dekompresnya menggunakan simulasi labview yang berjalan pada sebuah komputer, semua hasil proses kompresi dan dekompresi yang berupa sebuah citra akan dimunculkan pada monitor komputer. Sebelum proses enkripsi ini bekerja, terlebih dahulu input dari sistem berupa gambar yaitu dengan pembacaan format gambar .png dan key dengan pembacaan format data yaitu .txt yang telah disimpan terlebih dahulu pada penyimpanan data myRIO-1900. Proses enkripsi menggunakan myRIO-1900 menggunakan sebuah program real-time labview. Program tersebut berguna mengambil data pada tempat penyimpanan yang ditentukan sebelumnya. Kemudian melakukan pengolahan gambar dan kompresi menggunakan teorema compressive sensing, hasil dari kompresi akan disimpan pada storage R:\c pada myRIO. Sedangkan pada proses 21
22 dekripsi menggunakan sebuah komputer atau personal computer (PC) yang berjalan pada program labview dengan memastikan data gambar dengan format .png dan key dengan format data .txt telah tersimpan dapat komputer. Tahap kompresi dan dekontuksi terdapat Data path berguna sebagai pengambilan kompresi blok dan gambar yang diletakan pada myRIO maupun implementasi yang dilakukan pada komputer.
Gambar 3.2. Implementasi perangkat keras dari sistem
Spesifikasi computer yang digunakan pada tahap dekripsi dapat dilihat gambar 3.2 yaitu sebagai berikut: •
Intel core 2 duo CPU E7500 2.39Ghz
•
Memory 2GB
•
Sistem operasi Windows 7 Ultimate 32-bit
3.2. Arsitektur perancangan Arsitektur perancangan sistem implementasi penginderaan kompresif pada myRIO terdiri dari dua bagian, yaitu hardware dan software. Berikut ini adalah block diagram hardware serta software yang digunakan pada penelitian ini.
3.2.1. Hardware Pada bagian ini menjelaskan mengenai detil bagian-bagian dalam block diagram sistem kesluruhan dan kinerja myRIO yang bertugas mengerjakan proses enkripsi citra.
23
Gambar 3.3. Block diagram myRIO-1900
Gambar 3.3 merupakan block diagram myRIO yang terdiri dari USB Device port merupakan sebuah kabel yaitu USB type A male to USB type B male yang digunakan untuk interaksi antar komputer dengan myRIO, dengan tujuan melakukan Deployment Progress dan pembacaan penyimpan data pada myRIO. Sedangkan Xilinx Zynq-7010 merupakan sebuah chip embedded dari Xilinx yang merupakan kombinasi dari sebuah processor dan Field Programmable Gate Array (FPGA), yang bertugas untuk melakukan perhitungan dan proses pengolahan gambar. Nonvolatie memory merupakan sebuah penyimpanan data yang berguna untuk melakukan pengambilan citra dan key dan juga untuk penyimpan hasil citra enkripsi. Sedangkan button 0 merupakan sebuah push button yang digunakan untuk pemberhentian jalannya program enkripsi. Berikut ini adalah gambar 3.4. myRIO yang digunakan dalam implementasi pengindraaan kompresif.
24
Gambar 3.4. Perangkat keras yang digunakan yaitu myRIO-1900
3.2.2. Software Pada bagian ini akan dijelaskan cara kerja sistem dari sisi software menggunakan
block
diagram
yaitu
sebagai
berikut.
Enkripsi
di
implementasikan pada myRIO dan dekripsi pada komputer dengan penggunaan software yaitu Laboratory virtual instrument enginerring workbench (Labview). Hasil percobaan enkripsi berupa data .vi yang merupakan Virtual Instument (VI) yang dapat dilihat pada Lampiran B.1. Proses enkripsi dan dekripsi membutuhkan key, dengan proses menggunakan “Gaussian matscrip.vi”, terdiri dari row dan columns yang merupakan nilai input yang digunakan untuk menentukan berapa banyak baris dan kolom yang ingin dibuat. Sedangkan “file path (savefile)” merupakan sebuah penyimpanan pada lokasi file “D:\00 Darman\ Data\Random matrix” dengan tipe file yang telah ditentukan yaitu “.txt” yang nantinya dapat digunakan lagi pada saat rekontruksi. Dapat dilihat front panel dan block diagram pada “Gaussian matscrip.vi". Sebagai contoh untuk mengenerate data matriks 8x64
menggunakan sebuah mathscript node pada labview. Dengan kodenya sebagai berikut (1/sqrt(R))*randn(R,C) dimana nilai acak akan muncul sepanjang row atau “R” sebagai contoh 8 dan columns atau “C” yang bernilai 64 yang dikalikan dengan 1/
dengan nilai “R” berupa 8, sehingga
25 terbentuk random matrix sebesar 8 kolom dan 64 baris. Kemudian nilainya diletakkan pada varibel “A” yang direpresentasikan pada 2 dimensi array dan ditulis dalam file dengan nama “RandomMatrix8x64.txt” dengan representasi nilainya yaitu 3 angka dibelakang koma.
Gambar 3.5. Block diagram tahap enkripsi untuk contoh gaussian random matrix 8x64.
26 Langkah pertama pada tahap enkripsi yang dilakukan pada MyRIO, pastikan penyimpanan data sensing matrix atau key dan citra yang akan dienkripsi sudah di letakan pada storage MyRIO pada lokasi file R:\c. Sebagai contoh dengan sensing matrix berukuran 8x64 dengan mana file “RandomMatrix8x64.txt”
dan
menggunakan
gambar
dengan
nama
“cameraman.png”. Proses kinerja enkripsi diawali dengan pengambilan gambar dan key pada lokasi file yang telah ditentukan sebelumnya menggunakan “Input Image to array 8bit.vi”. Pembacaan lokasi file gambar menggunakan “Path image input” sebagai contoh “/c/cameraman.png”, dilanjutkan dengan pembacaan gambar dengan format gambar yaitu Portable Network Graphics (PNG) yaitu “IMAQ Read Image And Vision Info.vi”. Karena gambar yang akan diolah pada tugas akhir ini menggunakan gambar grayscale, maka dibuat petakan gambar pada lokasi sementara menggunakan “IMAQ Create.vi” dengan presentasi citra 8bit pada nilai rentan antar 0 sampai dengan 255 dan tampilan gambar akan muncul pada “Image”. Citra tersebut akan diletakan pada 2 dimensi array menggunakan “IMAQ image to array.vi” dan untuk mempermudah komputasi semua dari data 2 dimensi array tersebut akan diubah kedalam tipe data double dengan rentang nilai 0 sampai dengan 1 dengan pembagian nilai sebesar 255. Setelah dilakukan pembagian tersebut, dilanjutkan dengan “Read File random matrix.vi” yang berisikan pembacaan key menggunakan VI “Read form spreadsheet file.vi” dengan tipe double yang memiliki arti pembacaan dua dimensi array dengan format data yaitu text (.txt). Pada VI ini lokasi penyimpanan data key ditentukan pada “Path Random Matrix” dan “format(%.3f)” untuk menetukan pembacaan nilai key sebesar 3 angka dibelakang koma. Dengan output yang diletakan pada “Matrix random” dengan representasi 2 dimensi array. Yang kemudian dilanjutkan pada “bloking matrix row.vi” yang betugas melakukan pengambilan blok sebanyak baris. Citra yang digunakan dalam buku ini berukuran 256x256 yang dibloking sebesar 8x8 dengan menggunakan “Array Subset.vi” dan hasil tersebut diubah menjadi 64x1 menggunakan “Reshape Array.vi” yang disebut sebagai sampling. Perkalian sampling dengan sebuah sensing matrix menggunakan sub VI “AxB.vi”
27 sebagai contoh sebesar 8x64. Sehingga menjadi matrix berukuran 8x1 (8x64 . 64x1 = 8x1). Kinerja proses bloking pada perkalian dengan sensing matrix dilakukan didalam stracked sequence stucture gunanya adalah melakukan intruksi dalam jumlah yang banyak yaitu sebesar 32 kali, sebagai dalam kasus ini pada bagian bloking melakukan pengambilan sebanyak baris dengan banyaknya pengambilan baris disatukan menggunakan “Build Matrix” secara kolom sebanyak 32 sehingga terbentuk matrix 32x8. SubVI yaitu “Bloking Matrix 8x8 and Build.vi” yang berisikan “Bloking
matrix
row.vi”
merupakan
VI
yang
betugas
melakukan
pengambilan sebanyak jumlah kolom, kemudian diletakan pada VI untuk melakukan pengambilan dengan banyaknya baris. Peletakan pada 2 dimensi array yaitu “Input Matrix 256x256” dan sensing matriks pada “Real Matrix 8x64”, kemudian dilanjutkan pada “Build Matrix.vi” secara baris sehingga terbentuk matriks sebesar 256x32 yang diletakan pada output yaitu “Matrix 256x32”. Hasil tersebut diolah menjadi sebuah gambar menggunakan “Array to image.vi”. Matriks yang berisikan pengabungan kompresi blok diubah menjadi sebuah gambar menggunakan “IMAQ ArrayToImage.vi” dengan tipe gambar yaitu grayscale 8bit. Sebelum itu pada “input image to array 8bit.vi” dilakukan pembagian dengan nilai sebesar 255, maka pada proses ini matriks dikali dengan 255 untuk mengembalikan proses nomalisasi yang dilakukan sebelumnya hasil yang berupa gambar dapat dilihat pada “image” output. “save file image .vi” merupakan VI yang bertugas melakukan penyimpanan gambar hasil enkrispi. Dapat dilihat pada block diagram terdapat “Input name file image real” yang berupa input data path yang diubah menjadi data string menggunakan path to string, dilanjutkan dengan match to pattern bertugas untuk membuang nama string yang terdapat pada regular expression. Sebagai contoh pada kasus ini cameraman.png menjadi cameraman, serta pada “input nama file matrix random” mengubah type data path menjadi type string yang akan diteruskan dengan search and replace string guna untuk pencarian nama string sebagai contoh dalam kasus ini RandomMatrix8x64.txt menjadi 8x64.txt. Pada match pattern data string yang awalnya 8x64.txt menjadi 8x64, dilanjutkan dengan pengabungan string
28 atau concatenate string pada tiga data string digabungkan menjadi cameraman8x64.png .Create path merupakan data path yang menetukan lokasi penyimpanan yang telah ditentukan sebelumnya yaitu /c. Data path tersebut digabungkan dengan data string sebagai penamaan menjadi /c/cameraman8x64.png. Gunanya memberikan penamaan sekaligus lokasi penyimpanan data yang dibutuhkan oleh “IMAQ Write File 2.vi”, dengan format citra yaitu PNG sehingga akan muncul data baru sebagai contoh dalam kasus ini yaitu cameraman8x64.png.
29
Gambar 3.6. Block diagram tahap dekripsi untuk contoh gaussian random matriks 8x64.
30 Pada proses dekompresi dilakukan proses enkrispi guna untuk mengambilan kompresi blok yang kemudian diolah untuk dilakukan rekontuksi. Hal tersebut dilakukan pada proses “dekripsi.vi”, dapat dilihat pada fornt panel yang berisikan “PSNR” dan “MSE” merupakan perhitungan nilai output. Sedangkan “image input” dan “Gaussian matrix random” merupakan sebuah pengambilan gambar asli dan sensing matrix pada penyimpanan data, sebagai contoh dalam buku ini pengambilan lokasi gambar dan key yaitu “D:\00\Darman\Data\Data\cameraman.png” dan “D:\00\Darman\Data\Data\RandomMatrix60x64.txt”.
Sedangkan
pada
“image input” dan “image output” merupakan sebuah display gambar asli dan gambar rekontuksi. Kemudian citra diletakan pada 2 dimensi array dengan presentasi nilai 0-255 yaitu 8bit dan dibagi 255 untuk menjadi tipe data double dengan rentang nilai 0-1 menggunakan VI “Input image to output array 8 bit.vi” dan dilakukan pembacaan sensing matrix pada sebuah 2 dimensi array dengan nilai 3 angka dibelakang koma pada VI “Read file random matrix.vi”. Pada
proses
dekripsi
menggunakan
pengindraan
kompresif
membutuhkan sebuah dictonary atau kamus, dimana kamus yang digunakan adalah discrete cosines transform (DCT) dapat dilihat pada VI “Dictonary DCT 64x64.vi”. Pada buku ini untuk mengenerate DCT digunakan mathscript pada labview yaitu merupakan sebuah module yang berisikan program tekstual yaitu sebagai berikut. y = dct(eye(64))'; dct merupakan fungsi DCT yaitu Discrete Cosines Transform dikombinasikan dengan fungsi eye(64) untuk menetukan ukuran matriks 64x64 dan digunakan transpose matrix dengan peletakan output berupa variable y, yang dihubungkan dengan Dictionary sebagai output. Proses perkalian matriks antara sensing matrix dengan dictionary diolah dengan menggunakan “Sensing matrix x dic.vi” dengan output berupa variable A dan dictionary dengan ukuran matriks sebesar 60x64 dan 64x64. Output “Sensing matrix x dic.vi” akan digunakan untuk peroses pengolahan OMP dapat dilihat pada “OMP matlab.vi”, perhitungan antara hasil “Sensing matrix x dic.vi” dengan kompresi blok menggunakan sebuah Math Scripst Node pada labview. Dengan input berupa variable T dan er dengan data konstan yaitu 8 dan 1e-5 (10^-5) dengan outputnya yaitu
31 “s(64x1)”. Perhitungannya yaitu berupa perkalian matriks sebagai contoh 64x60 merupakan hasil “Sensing matrix x dic.vi” yang sudah ditranspose matriks dikalikan dengan 60x1 berupa kompresi blok mejadi 64x1 akan di berikan pada sebuah variable yaitu s dengan representasi ruang 2 dimensi array. Proses OMP dilakukan pada setiap hasil kompresi blok yang dapat lihat pada “Bloking matrix row.vi”. Proses ini hampir sama dengan proses enkripsi sampai tahap pada kompresi blok bedanya adalah pada setiap output hasil kompresi yang dilakukan OMP pada VI “OMP matlab.vi” yang kemudian dilakukan perkalian matriks dengan hasil output VI “OMP matlab.vi” dengan sebuah output VI “Sensing matrix x dic.vi” yaitu (64x60. 60x1) sehingga terbentuk sebuah matriks baru yaitu 64x1, yang kemudian dilakukan perkalian matriks dengan dictionary yaitu 64x64 dengan hasil sebelumnya yaitu 64x1 menjadi 64x1. Hasil ini akan dibentuk kembali 8x8 menggunakan “arraysubset.vi” dan “Build matrix.vi”. Dari setiap hasil tersebut yang telah dibentuk menjadi 8x8 dilakukan proses “Build Matrix.vi” sepanjang 32 kolom. Semua hal tersebut dilakukan dalam stacked sequence stucture yang bertugas melakukan intuksi sebanyak 32 kali. Proses pada subVI “Bloking Matrix 8x8 and Build.vi” yang terdapat “Bloking matrix row.vi”. Yang berguna mengolah secara baris pada setiap VI “Bloking matrix row.vi” kemudian dilakukan “bulid matrix.vi” secara kolom sehingga terbentuk matrix sebesar 256x256. Berikutnya akan dilakukan proses mengubahan data array menjadi sebuah citra menggunakan “Array to image.vi”. Dengan matriks yang sudah dibentuk tadi yaitu 256x256 akan diimplementasikan dalam sebuah citra dapat dilihat pada “image output”, dilakukan perkalian 255 untuk mengembalikan proses
nomalisasi
yang dilakukan sebelumnya dan
penyimpanan gambar akan dilakukan pada “save file image.vi”. Pada sub vi “PSNR.vi” merupakan sebuah proses perhitungan PSNR, sebelum itu harus menjadi nilai Mean Squared Error (MSE) yaitu dari image asli dengan hasil rekontuksi dimana input berupa “Image awal” dan “Image akhir” masing masing nilainya akan dikurang menggunakan “Subtract.vi” yang dilakukan didalam For Loop sebanyak dua kali, gunanya untuk melakukan pengurangan pada setiap baris dan kolom dari input “Image asli”
32 dengan “Image akhir” yang kemudian dilakukan square berupa akar pangkat 2 dan dilanjutkan add array elements berguna melakukan penjumlah keluruhan dari semua baris dan kolom. Dikalikan dengan hasil pengambilan panjang baris dan kolom pada image awal dengan menggunakan matrix size yang dikalikan, kemudian di reciprocal yaitu dijadikan pencahan yang nilainya diletakan pada penyebut. Hasil dari MSE ini akan diakar kuadrat menggunakan square root dan dibagi dengan nilai max citra awal yaitu bernilai 1 dan kemudian dilakukan perkalian logaritma dengan menggunakan logarithm base 10 yaitu log10. Kemudian nilai tersebut dikali dengan 20 yang hasilnya merupakan nilai PSNR. Guna Flat Sequance Structure untuk mendahulukan kerja proses pengolahan MSE yang dilanjutkan dengan PSNR.
3.3. Panduan Pengunaan Sistem Pada proses enkripsi yaitu membutuhkan aplikasi labview dan sebuah embedded hardware yaitu MyRIO. Pengunaan berupa media kabel dan push button dapat dilihat pada gambar 3.7.
Gambar 3.7. Penggunaan Myrio.
33 1. Hardware embedded myRIO-1900. 2. Input power supply. 3. Usb driver port. 4. Button 0.
Pada tahap enkripsi yang dilakukan pada MyRIO, pastikan file sensing matrix atau key dan citra yang akan dienkripsi sudah di letakan pada storage MyRIO yang terletak pada R:\c. Sebagai contoh dengan sensing matrix sebesar 8x64 dengan mana file
“RandomMatrix8x64.txt”
dan
menggunakan
citra
dengan
nama
“cameraman.png”. Gambar 3.8 merupakan lokasi penyimpanan data pada myRIO.
Gambar 3.8. Storage location file pada myRIO.
Berikut ini merupakan tampilan pada proses enkripsi, dimana “Path Image input” dan “Path Random Matrix” merupakan pengambilan gambar asli dan file key berdasarkan
lokasi
file
yang
ditentukan
sebelumnya
sebagai
contoh
“/c/Cameraman.png” dan “/c/RandomMatrix8x64.txt”, sedangkan pada “Image Input 8bit” merupakan citra asli hasil dari pengambilan data dari “Path image input”. Sedangkan pada “Image output” merupakan hasil enkripsi dari citra asli yang tersamarkan yang akan kemudian akan disimpan pada lokasi /c menggunakan “File save” yang mentukan lokasi penyimpanan gambar yang telah terenkripsi. Dapat dilihat gambar 3.9 yang merupakan tampilan sistem.
34
Gambar 3.9.Tampilan sistem pada proses enkripsi
Gambar 3.10. Storage location setelah proses dekripsi
Dapat dilihat pada Gambar 3.10 citra baru telah disimpan pada myRIO dengan nama cameraman8x64.png. Pada tahap dekripsi yang dikerjakan pada sebuah komputer, pastikan file sensing matrix atau key dan citra sudah di letakan komputer pada lokasi file "D:\00 Darman\Data\Data\”. Sebagai contoh dengan menggunakan sensing matrix sebesar 60x64 dengan nama file RandomMatrix60x64.txt dan citranya yaitu cameraman.png.
35
Gambar 3.11. Storage location file komputer
Kemudian pada Gambar 3.11 merupakan lokasi penyimpanan pada komputer yang telah diletakan sebelumnya berupa gambar dan key sebagai contoh dengan gambar cameraman.png dan RandomMatrix60x64.txt. Pada tampilan dekripsi atau tahap rekontuksi dimana “Image input” dan “Gaussian matrix random” merupakan pengambilan citra asli dan file key berdasarkan lokasi file yang telah ditentukan, sebagai
contoh
“D:\00.Darman\Data\Data\cameraman.png”
dan
“D:\00.Darman\Data\Data\RandomMatrix60x64.txt”. Pada “Image input” merupakan sebuah hasil penampilan gambar asli hasil dan “image output” merupakan hasil rekontuksi, dimana akan disimpan pada “D:\00.Darman\Data\Data” menggunakan “File save” yang bertugas menetukan lokasi penyimpanan hasil rekontuksi. Sedangkan pada “PSNR” dan “MSE” merupakan hasil perhitungan dari citra asli dengan citra rekontuksi yang digunakan untuk pengambilan data. Berikut ini gambar 3.12. merupakan tampilan sistem rekontuksi dan gambar 3.13. berupa munculnya data baru setelah proses dekripsi yaitu “cameraman60x64.png”.
36
Gambar 3.12. Tampilan sistem pada proses dekripsi.
Gambar 3.13. location storage file komputer setelah melampaui tahap dekripsi. 3.4 Parameter-parameter yang diukur dan cara pengukuran Pada Penelitian “Implementasi penginderaan kompresif pada myRIO” ini terdapat dua parameter yang akan diukur. Cara pengukuran guna mengetahui performa dari hasil enkripsi dan dekripsi. Berikut adalah beberapa parameter yang akan diukur antara lain:
3.4.1 Hasil citra enkrispi dan pemapatan dan ukuran yang sedikit Dengan menggunakan 10 gambar test dengan ukuran 256x256 dan key yang beragam sebesar ukuran matriks yaitu 8x64, 12x64, 16x64, 20x64, 24x64, 28x64, 32x64, 36x64, 40x64, 44x64, 48x64, 52x64, 56x64, 60x64 dan 64x64 yang ditulis pada data dengan format txt. Diharapkan dapat menetukan
37 dimana penggunakan key yang tepat untuk memperoleh citra yang temapatkan dengan baik dan ukuran size yang kecil.
3.4.2 Hasil rekontuksi citra yang baik dengan perhitungan PSNR Dengan 10 gambar test yang digunakan sebagai percobaan dengan ukuran 256x256 dan key yang beragam sebesar ukuran matriks yaitu 8x64, 12x64, 16x64, 20x64, 24x64, 28x64, 32x64, 36x64, 40x64, 44x64, 48x64, 52x64, 56x64, 60x64 dan 64x64 yang dituliskan pada data dengan format .txt. Diharapkan dapat menetukan dimana penggunaan key yang tepat pada citra untuk memperoleh hasil rekontuksi yang baik dengan perhitungan PSNR.
38