;

Kompresi Citra

Diposting oleh wiratama Rabu, Juni 20, 2012 0 komentar

Kompresi Citra adalah aplikasi kompresi data yang dilakukan terhadap citra digital dengan tujuan untuk mengurangi redundansi dari data-data yang terdapat dalam citra sehingga dapat disimpan atau ditransmisikan secara efisien.Untuk teknik kompresi citra tetap sama yaitu:


  •  Lossy Compression:

Ukuran file citra menjadi lebih kecil dengan menghilangkan beberapa informasi dalam citra asli.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.

  •  Lossy Compression:

Biasanya digunakan pada citra foto atau image lain yang tidak terlalu memerlukan detail citra, dimana kehilangan bit rate foto tidak berpengaruh pada citra.

Beberapa teknik loseless:

  • Color reduction: untuk warna-warna tertentu yang mayoritas dimana informasi warna disimpan dalam color palette.

  • Chroma subsampling: teknik yang memanfaatkan fakta bahwa mata manusia merasa brightness (luminance) lebih berpengaruh daripada warna (chrominance) itu sendiri, maka dilakukan pengurangan resolusi warna dengan disampling ulang. Biasanya digunakan pada sinyal YUV.

  • Transform coding: menggunakan Fourier Transform seperti DCT.

  •  Fractal Compression: adalah suatu metode lossy untuk mengkompresi citra dengan menggunakan kurva fractal. Sangat cocok untuk citra natural seperti pepohonan, pakis, pegunungan, dan awan.

  • Fractal Compression bersandar pada fakta bahwa dalam sebuah image, terdapat bagian-bagian image yang menyerupai bagian bagian image yang lain.

  • Proses kompresi Fractal lebih lambat daripada JPEG sedangkan proses dekompresinya sama.

Loseless Compression:

  • Teknik kompresi citra dimana tidak ada satupun informasi citra yang dihilangkan.

  • Biasa digunakan pada citra medis.

  •  Metode loseless: Run Length Encoding, Entropy Encoding (Huffman, Aritmatik), dan Adaptive Dictionary Based (LZW)

Hal Penting Dalam Kompresi Citra

  •  Scalability/Progressive Coding/Embedded Bitstream

  • kualitas dari hasil proses pengkompresian citra karena manipulasi bitstream tanpa adanya dekompresi atau rekompresi.

  •  Biasanya dikenal pada loseless codec.

  •  Contohnya pada saat preview image sementara image tersebut didownload. Semakin baik scalability, makin bagus preview image.

  • Tipe scalability:

a. Quality progressive: dimana image dikompres secara perlahan-lahan dengan penurunan kualitasnya

b. Resolution progressive: dimana image dikompresi dengan mengenkode resolusi image yang lebih rendah terlebih dahulu baru kemudian ke resolusi yang lebih tinggi.

c. Component progressive: dimana image dikompresi berdasarkan komponennya, pertama mengenkode komponen gray baru kemudian komponen warnanya.

d. Region of Interest Coding: daerah-daerah tertentu dienkode dengan kualitas yang lebih tinggi daripada yang lain.

e. Meta Information: image yang dikompres juga dapat memiliki meta information seperti statistik warna, tekstur, small preview image, dan author atau copyright information

Pengukuran Error Kompresi Citra

  •  Dalam kompresi image terdapat suatu standar pengukuran error (galat) kompresi:

  • MSE (Mean Square Error), yaitu sigma dari jumlah error antara citra hasil kompresi dan citra asli.

  • Peak Signal to Noise Ratio (PSNR), yaitu untuk menghitung peak error.

  •  Nilai MSE yang rendah akan lebih baik, sedangkan nilai PSNR yang tinggi akan lebih baik.

Algoritma Kompresi / Dekompresi Citra

 Algoritma umum untuk kompresi image adalah:

  • Menentukan bitrate dan toleransi distorsi image dari inputan user.

  •  Pembagian data image ke dalam bagian-bagian tertentu sesuai dengan tingkat kepentingan yang ada (classifying).

  •  Menggunakan salah satu teknik: DWT (Discreate Wavelet Transform) yang akan mencari frekuensi nilai pixel masing-masing, menggabungkannya menjadi satu dan mengelompokkannya

  •  Pembagian bit-bit di dalam masing-masing bagian yang ada (bit allocation).

  •  Lakukan kuantisasi (quantization).

  •  Kuantisasi Scalar : data-data dikuantisasi sendiri-sendiri

  •  Kuantisasi Vector : data-data dikuantisasi sebagai suatu himpunan nilai-nilai vektor yang diperlakukan sebagai suatu kesatuan.

Lakukan pengenkodingan untuk masing-masing bagian yang sudah dikuantisasi tadi dengan menggunakan teknik entropy coding (huffman dan aritmatik) dan menuliskannya ke dalam file hasil.

Semoga bermanfaat,berikut adalah suatu pembahasa sedikit tentang kompresi citra yang saya pelajari dikuliah semester 4.Untuk selanjutnya saya akan membahas tentang transformasi wavlet dan apa hubungannya dengan kompresi citra.

Referensi: Erick Kurniawan, S.Kom, M.Kom , DR Adi Wijaya
























Bismillah,
ok untuk hari ini kita akan belajar dasar dari windows phone,mungkin untuk memulai kita belajar dari hal yang paling mudah dulu yaitu kita akan membuat sebuah project untuk aplikasi windows pone untuk memulai pembuatan aplikasi windows phone.kita mulai dengan langkah-langkah berikut:
  • Buka Microsoft Visual Studio 2010 for Windows Phone,kemudian pilih New Project



  • Selanjutnya pilih dengan bahasa C# dan pilih template yang anda inginkan,karena kita menggunakan template standart makan pilih Windows Phone Application dan beri nama project dan lokasi penyimpananyang anda inginkan.

  • Setelah itu, Project baru telah dibuat

Kita bisa membuat aplikasi windows phone sesuka hati kita dengan fasilitas yang diberikan windows phone.Cukup mudah kan,selamat mencoba.Semoga bermanfaat.

Kompilasi Kode MPI di Linux

Diposting oleh wiratama Senin, Juni 18, 2012 0 komentar

Pada linux Ubuntu kita dapat melakuakn kompilasi kode MPI melalui konsol command line.Arahkan ke folder dimana file namafile.c berada.Selanjutnya dengan menggunakan mpicc,kita dapat melakukan kompilasi kode MPI tersebut.Cara menggunakan mpicc sama seperti menggunakan gcc karena mpicc dibuat sebagai wrapper untuk MPI,Berikut ini perintah

      mpicc namafile.c -o namafile -Wall
ini menunjukan bahwa kita melakukan kompilasi file namafile.c dan output filenya adalah namafile.Tanda -Wall untuk menampilakn semua peringatan yang dikeluarkan oleh kompilator.

Mengenal Tipe Data MPI

Diposting oleh wiratama 0 komentar

Tipe data MPI banyak digunakan untuk melakuakn pengiriman dan penerimaan data dari node cluster pada mesin paralel.Tipe data MPI dapat ditulis seperti berikut:

      MPI_Datatype dataku;
berikut merupaka salah satu contoh dari MPI_Datatype yang digunakan untuk mengirimkan kumpulan data array keseluruh node:

float a[size][size]={1.0,2.0.,3.0,4.0,5.0,6.0,7.0,8.0,9.0};
  MPI_Datatype rowtype;
for (i=0; i< numtask; i++){
MPI_Send(&a[i][0],1,rowtype,i,1,MPI_COMM_WORLD)
}

Secara umum telah menyediakan tipe data sesuai dengan implementasi dalam bahasa pemrograman.Beberapa tipe data yang disediakan dapat dikategorikan,yaitu:

  • Tipe data Dasar
  • Tipe Data Turunan
Tipe data Dasar
Tipe data dasar dapat digunakan secara langsung pada kode program kita.Tipe data berikut contoh tipe data MPI untuk bahasa C

Tipe dasar MPI                                                       Pada Bahasa C
MPI_CHAR                                                             signed char
MPI_SHORT                                                           signed short int
MPI_INT                                                                 signed int
MPI_LONG                                                             signed long int
MPI_UNSIGNED_CHAR                                      unsigned char
MPI_UNSIGNED_SHORT                                    unsigned short 
MPI_UNSIGNED                                                   unsigned int
MPI_FLOAT                                                          float
MPI_DOUBLE                                                      double
MPI_LONG_DOUBLE                                         long double 
MPI_BYTE  
MPI_UNSIGNED_LONG                                     unsigned long int
MPI_PACKED  

Berikut ini merupakan contoh penggunaannya untuk menerima dan mengirim data melalui MPI_Recv dan MPI_Send:

        INT token,total=100;
        DOUBLE array[100];
        MPI_Recv(&token,1,MPI_INT,1,0,MPI_COMM_WORLD,NULL);
        MPI_Send(array,total,MPI_DOUBLE,1,0,MPI_COMM_WORLD);

Pada kode diatas,MPI Recv menerima dan bertipe MPI_INT sedangkan pada MPI_Send kode diatas melakukan pengiriman array data bertipe DOUBLE maka kita memberikan tipe data MPI_DOUBLE pada MPI_Send.
data yang dibuat dari tipe  data dasar MPi.Implementasi paling mudah adalah memanfaatkan data array atau struct,Misalkan mempunyai tipe dasar struct pada bahasa C sebagai berikut.


typedef struct{
   float x,y,z;
   float velo;
   int n,type;
}particle;

Selanjutnya,tipe data ini akan digunakan pada apliaksi MPI kita.Oleh kareuna itu,kita perlu membuat suatu tipe data turunan dasar adar tipe data struct kita dipergunakan sesuai standart MPI.

Tipe data Turunan
untuk tipe data  dasar turunan kita menggunakan beberapa tipe dasar turunan yang dapat kita gunakan dalam apllikasi MPI.Beberapa tipe data turunan yang dibahas yaitu:
  • kontinu
  • vektor
  • struct
  • index
Setiap kita membuat tipe data turunan pada MPI,kita harus melakukan konfirmasi dengan memanggil MPI_Type_commit().Sedangkan untuk menghapus tipe data turunan yang telah dibuat dapat menggunakan MPI_Type_free().Deklarasi masing-masing fungsi ini dapat dilihat berikut ini:

int MPI_Type_commit(MPI_Datatype *datatype);
int MPI_Type_free(MPI_Datatype *datatype);

datatype adalah tipe data turunan yang akan dibuat atau dihapus.

Mengenal Microsoft Visual C-Sharp

Diposting oleh wiratama Minggu, Juni 17, 2012 0 komentar

Microsoft Visual C-Sharp atau yang lebih dikenal dengan Visual C# adalah sebuah bahasa yang tidak diragukan lagi dalam proses pengembangan aplikasi yang berbasis .NET Framework,dimana C# bebas dari masalah kompatibilitas dilengkapi dengan berbagai fitur yang sebagian besar merupakan fitur baru,menarik,dan tentu saja menjanjikan.

Visual C# dibuat berdasarkan pemrograman C# yang merupakan bahasa pemrograman berorientasi objek dan mempunyaio banyak kesamaan dengan C++,Java,dan VB.C# pada faktanya merupaka kombinasi antara efisiensi pemrograman C++,kesederhanaan pemrogram Java,dan penyerderhanaan dari pemrograman Visual Basic.

Seperti pemrograman Java,C# juga tidak diperbolehkan multiple inheritence atau penggunaan pointer(pada safe/managed code),tetapi C#menyediakan garbage memory collection pada saat runtimedan pada saat pengecekan akses memori.

Meskipun bertentangan denga pemrograman JAVA,C# tetap mempertahankan operasi unik yang terdapat pada bahasa pemrograman C++ seperti overloading,enumeraion,pre-procssor directive,pointer,dan fungsi pointer.Seperti halnya Visual Basic,bahasa pemrograman C# juga dilengkapi dengan properties.

Segabai tambahan,bahasa pemrograman C# juga datang dengan beberapa fitur baru dan sangat menarik seperti reflection,attribute,marshalling,remote,thread,streams data access dengan ADO.NET dan masih banyak lagi.

Mungkin cukup itu saja yang isa dijelaskan,untuk contoh dan tutorial tentang C# akan saya posting selanjutnya.semoga bermanfaat

UPDATE ANTIVIRUS



TRANSLATE


English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese

BLOG TEMEN SEPERJUANGAN

Mengenai Saya

Foto saya
magetan, jawatimur, Indonesia
sesuatu yang indah jika kita merasakan keindahannya..!!!

MOHON ISI BUKU TAMU


ShoutMix chat widget