BAB 2 LANDASAN TEORI 2.1 Citra Digital - Analisis Perbandingan Kompresi Citra Mengunakan Algoritma Transformasi Walsh-Hadamard Dengan Run Length Encoding (RLE)

BAB 2 LANDASAN TEORI

2.1 Citra Digital Secara harfiah citra (image) adalah gambar pada bidang dwimatra atau dua dimensi.

  Citra juga dapat diartikan sebagai kumpulan titik-titik dengan intesitas warna tertentu yang membentuk suatu kesatuan dan mempunyai pengertian artistik. Citra sebagai salah satu komponen multimedia yang memegang peranan sangat penting sebagai salah satu bentuk informasi visual [1].

  Pada umumnya representasi citra digital membutuhkan memori yang besar. Semakin besar ukuran citra tentu semakin besar pula memori yang dibutuhkannya. Pada sisi lain, kebanyakan citra mengandung duplikasi data. Duplikasi data pada citra dapat berarti dua hal. Pertama, besar kemungkinan suatu pixel dengan pixel tetangganya memiliki intensitas yang sama, sehingga penyimpanan setiap pixel memboroskan tempat. Kedua, citra banyak mengandung bagian (region) yang sama, sehingga bagian . yang sama ini tidak perlu dikodekan berulang kali karena redundan [9]

  Citra tidak sama dengan teks yang hanya memberikan informasi secara jelas dengan kata-kata yang dipaparkan, sedangkan citra memberikan informasi yang jelas dengan memberikan gambaran visual dan terkadang informasi yang diberikan dapat memacu imajinasi dari orang yang melihat citra untuk menyimpulkan informasi dari citra tersebut.

  Citra merupakan keluaran dari suatu sistem perekaman data yang bersifat optik, analog ataupun digital. Perekaman data citra dapat dibagi menjadi dua yaitu:

1. Citra Analog

  Citra analog yaitu terdiri dari sinyal-sinyal elektromagnetik yang tidak dapat dibedakan sehingga pada umumnya tidak dapat ditentukan ukurannya. Citra analog mempunyai fungsi yang kontinu. Hasil perekaman citra analog dapat bersifat optik yakni berupa foto (film foto konvensional) dan bersifat sinyal video seperti gambar pada monitor televisi.

  2. Citra Digital Citra digital terdiri dari sinyal-sinyal yang dapat dibedakan dan mempunyai fungsi yang tidak kontinu yakni berupa titik-titik warna pembentuk citra. Hasil perekaman citra digital dapat disimpan pada suatu media magnetik [1].

2.1.1 Pengertian Citra Digital

  Secara umum, pengolahan citra digital menunjuk pada pemrosesan gambar 2 dimensi menggunakan komputer. Dalam konteks yang lebih luas, pengolahan citra digital mengacu pada pemrosesan setiap data 2 dimensi. Citra digital merupakan sebuah larik (array) yang berisi nilai-nilai real maupun komplek yang direpresentasikan dengan deretan bit tertentu [8].

  Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila nilai x,y, dan nilai amplitudo f secara keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital. Gambar 2.1 menunjukkan posisi koordinat citra digital [8].

  Sumber: Darma, Putra. 2009.

Gambar 2.1 Ilustrasi digitalisasi citra (pixel pada koordinat x = 10, y = 7 memiliki nilai

  110)

2.1.2 Format File Citra

  Ada dua jenis format file citra yang sering digunakan dalam pengolahan citra, yaitu citra bitmap dan citra vektor. Istilah ini biasanya digunakan pada saat melakukan desain grafis.

1. Format File Citra Bitmap

  Citra bitmap sering disebut juga dengan citra raster. Citra bitmap menyimpan data kode citra secara digital dan lengkap (cara penyimpanannya adalah per pixel). Citra bitmap dipresentasikan dalam bentuk matriks atau dipetakan dengan menggunakan bilangan biner atau sistem bilangan lain. Citra ini memiliki kelebihan untuk memanipulasiwarna, tetapi untuk mengubah objek lebih sulit. Tampilan bitmap mampu menunjukkan kehalusan gradasi bayangan dan warna dari sebuah gambar. Oleh karena itu, bitmap merupakan media elektronik yang paling tepat untuk gambar-gambar dengan perpaduan gradasi warna yang rumit, seperti foto dan lukisan digital. Citra bitmap biasanya diperoleh dengan cara

  

scanner, kamera digital, video capture, dan lain-lain. Bila diperbesar maka

  tampilan di monitor akan tampak pecah-pecah (kualitas citra menurun). Beberapa format yang umum digunakan dalam pemrograman pengolahan citra disajikan dalam tabel 2.1 [9].

  Nama Format Ekstensi Keterangan

  AT & T Targa Format

  Citra vektor dihasilkan dari perhitungan matematis dan tidak berdasarkan pixel, yaitu data tersimpan dalam bentuk vektor posisi, di mana yang tersimpan hanya informasi vektor posisi dengan bentuk sebuah fungsi. Pada citra vektor, mengubah warna lebih sulit dilakukan, tetapi membentuk objek dengan cara mengubah nilai lebih mudah. Oleh karena itu, bila citra diperbesar atau diperkecil, kualitas citra relatif tetap baik dan tidak berubah. Citra vektor biasanya dibuat menggunakan aplikasi-aplikasi citra vektor, seperti CorelDRAW, Adobe Ilustrator, Macromedia Freehand, Autocad, dan lain-lain [9].

  XBM Format umum untuk menyimpan bitmap yang dikembangkan untuk Windows.

  X Windows X-11 Bitmap Format

  RAS Format bitmap asli yang digunakan Sun SPARCS

  PNTG Format asli dari Macintosh Macpaint program Sun Microsystem Raster Format

  TGA Format untuk 16-bit dan 24-bit citra warna penuh diciptakan untuk system Truevision Apple Macpaint Format

  MSP Secara fungsional mirip dengan IMG dan PCX, tapi kurang popular

  Microsoft Windows Bitmap Format

  PCS Dirancang untuk menyimpan citra layar dan merupakan formatbitmap yang didukung luas Microsoft Paint Bitmap Format

  IMG Format bitmap yang dikembangkan untuk riset digital dilingkungan GEM Zsoft Pengolahan Citra Paintbrush Format

  WPG Format vektor yang juga mendukung citra bitmap GEM Image Format

  TIF Format kompleks dan multiguna yang dikembangkan oleh Aldus bersama microsoft Word Perfect Graphics Format

  GIFF Format umum citra yang dirancang untuk keperluan transmisi melalui modem Aldus Tagged Image File Format

  BMP Format umum untuk menyimpan citra bitmap yang dikembangkan oleh Microsoft Compuserve Graphics Interchange Format

2. Format File Citra Vektor

2.1.3 Pixel Pada Citra Digital

  Setiap pixel mewakili tidak hanya satu titik dalam sebuah citra melainkan sebuah bagian berupa kotak yang merupakan bagian terkecil (sel) [8]. Nilai dari sebuah pixel haruslah dapat menunjukkan nilai rata-rata yang sama untuk seluruh bagian dari sel tersebut.

  Selain itu dalam pembahasan citra digital juga terdapat istilah resolusi citra. Resolusi citra merupakan tingkat detail suatu citra. Semakin tinggi resolusi citra maka akan semakin tinggi pula tingkat detail dari citra tersebut. Satuan dalam pengukuran resolusi citra dapat berupa ukuran fisik (jumlah garis per mm/jumlah garis per inchi) ataupun dapat juga berupa ukuran citra menyeluruh (jumlah garis per tinggi citra) [8].

2.2 Struktur Citra Format Bitmap(BMP)

  Bitmap merupakan format gambar asli yang sama sekali belum mengalami proses kompresi. Format file bmp dikembangkan oleh Microsoft untuk menyimpan gambar bitmap dan memungkinkan windows untuk menampilkan kembali gambar tersebut. Struktur file bmp ini terdiri dari header yang berisi informasi mengenai file, infoheader yang mengandung informasi mengenai gambar seperti resolusi, kedalaman warna, pixel dan lain sebagainya [4]. Untuk lebih jelasnya mengenai struktur file bmp ini dapat dilihat pada tabel 2.2 berikut ini.

  Alamat Ukuran Nama Nilai Keterangan (Byte) Standar

  1

  2 BfType 19778 ASCI=’BM’

  3

  4 BfSize ? Ukuran file dalam bmp

  7

  2 BfReserved1 Tidak digunakan

  9

  2 BfReserved2 Tidak digunakan

  11

  4 BfOfBits 1078 Posisi byte dimana gambar berada

  15

  4 BiSize

  40 Ukuran dari info dalam byte

  19

  4 BiWidth 100 Lebar gambar dalam pixel

  23

  4 BiHeight 100 Lebar gambar dalam pixel

  27

  2 BiPlanes

  1 Jumlah bidang gambar

  29

  2 BiBitCount

  8 Jumlah bit per pixel

  31

  4 BitCompression Jenis kompresi

  35

  4 BiSizeImage Ukuran data gambar

  39

  4 BiXPelsPerMeter Resolusi horizontal pixel meter

  43

  4 BiYPelsPerMeter Resolusi vertikal pixel meter

  47

  4 BiClrUsed Jumlah warna yang digunakan

  51

  4 BiClrImport Jumlah warna Untuk penyimpanan nilai pixel yang membentuk gambar dimulai dari alamat 54 sampai tidak berhingga, sesuai dengan banyaknya nilai pixel pada gambar. Jumlah warna yang terdapat pada gambar ditentukan oleh BiBitCount. Kemungkinan nilai untuk BiBitCount adalah 1 (hitam/putih), 4 (16 warna), 8 (256 warna), dan 24 (16,7 juta warna). Elemen data BiBitCount sekaligus menentukan apakah pada file BMP terdapat tabel warna atau tidak, sekaligus susunan dari tabel warnanya.

  Untuk gambar 1 bit, tabel warna hanya berisi dua warna (biasanya hitam dan putih). Jika setiap bit dari data gambar bernilai 0 maka warna yang ditunjuknya adalah warna pertama di dalam tabel warna. Jika setiap bit dari data gambar bernilai 1 maka warna yang ditunjuknya adalah warna kedua yang terdapat di dalam tabel warna [2]. merupakan ukuran dari panjang byte. Dimana dengan byte ke – 0 ukuran panjang 2 byte dispesifikasikan dengan nama tipe file yang diindikasikan berupa kode ASCII “BM”. Pada byte ke- 2 dengan ukuran panjang 4 byte, nama spesifikasinya bitmap file size yang berupa ukuran dari file dalam bentuk bytes.Untuk byte ke – 6 dan 8 yang ukurannya 2 byte berupa field cadangan di set 0. Pada byte ke – 10 ukurannya 4 byte yang merupakan spesifikasi dari struktur bitmap file header ke bit bitmap, dimana file gambar dimulai pada tahap ini. Byte ke – 14, panjangnya 4 byte dengan spesifikasi nama bitmap size yang mempunyai ukuran header 40 bytes. Byte ke – 18 dengan panjang 4 bytes merupakan lebar gambar dalam satuan pixel, serta byte ke 22 dengan panjang 4 bytes merupakan tinggi gambar dalam satuan pixel. Untuk byte ke – 26 dengan panjang 2 bytes merupakan bitmap planes dengan sejumlah planes (umumnya 1). Pada byte ke – 28 dengan panjang 2 byte merupakan jumlah bit per pixel: 1, 4, 8, atau 24. Dan untuk byte ke – 30 dengan panjang 4 byte yang merupakan tipe kompresi [13].

  (Reny, 2012)

Gambar 2.2 Struktur File BMP

  Pada 1 – 14 bytes pertama disebut File header yang merupakan tempat penyimpanan informasi umum tentang file gambar bitmap. Untuk 15 – 54 bytes berikutnya disebut info header, dimana pada blok ini berisi tentang informasi secara detail tentang gmabar bitmapnya. Dan pada 55 byte seterusnya berupa data/pixel dan padding yang merupakan isi dari gambar bitmap. Proses kompresi merupakan proses mereduksi ukuran suatu data untuk menghasilkan representasi digital yang padat atau mampat namun tetap dapat mewakili kuantitas informasi yang terkandung pada data tersebut. Pada citra, video, dan audio, kompresi mengarah pada minimisasi jumlah bit rate untuk representasi digital. Pada beberapa literatur, istilah kompresi sering disebut juga

  source coding, data compression, bandwidth compression, dan signal compression [8]. Kompresi data adalah proses mengubah suatu input data menjadi

  data lain dengan format berbeda dan ukuran yang lebih kecil, atau proses pengkodean dari suatu data untuk mengurangi kebutuhan akan media penyimpanan. Salah satu jenis berkas yang paling banyak membutuhkan proses kompresi adalah berkas citra. Citra asli umumnya disimpan dalam format Bitmap. Format ini menghasilkan ukuran berkas yang besar dan tidak efektif untuk disimpan atau ditransfer. Teknik dan algoritma kompresi dapat digunakan untuk menghasilkan berkasbaru dari citra yang asli dengan ukuran yang lebih kecil dari berkasaslinya tanpa mengurangi kualitas dari citranya [7].

  Data dan informasi adalah dua hal yang berbeda pada data terkandung suatu informasi. Namun tidak semua bagian data terkait dengan informasi tersebut atau pada suatu data terdapat bagian-bagian data yang berulang untuk mewakili informasi yang sama. Bagian data yang tidak terkait atau bagian data yang berulang tersebut disebut dengan data berlebihan (redudancy data). Tujuan daripada kompresi data tiada lain adalah untuk mengurangi data berlebihan tersebut sehingga ukuran data menjadi lebih kecil dan lebih ringan dalam proses transmisi [8].

  Kompresi citra dapat dimodelkan dan dibuat menjadi dua bagian utama yaitu bagian encoder dan decoder. Encoder berfungsi membuat representasi simbol-simbol (kode) dari citra input f(x,y). Dengan kata lain encoder berfungsi membuat citra kompresi dari citra input. Setelah melalui transmisi pada kanal (channel), citra terkompresi tersebut masuk ke sistem decoder. Pada sistem ini, f’(x,y) [8]. f(x,y)

  Encoder Decoder f'(x,y) Source Channel Source

  Channel Channel

  Encoder Encoder Decoder Decoder Sumber: Putra, Darma. 2009.

Gambar 2.3 Model umum kompresi citra

  Berdasarkan kandungan informasi pada citra hasil maka sifat kompresi data dapat dikelompokkan menjadi dua yaitu kompresi lossless dan kommpresi lossy.

2.3.1 Kompresi Lossless

  Kompresi jenis ini informasi yang terkandung pada citra hasil sama dengan informasi pada citra asli. Citra hasil proses kompresi dapat dikembalikan secara sempurna menjadi citra asli, tidak terjadi kehilangan informasi, tidak terjadi kesalahan informasi. Oleh karena itu metode ini disebut juga error free

  compression [8].

  Pada kompresi lossless, karena harus mempertahankan kesempurnaan informasi, sehingga hanya terdapat proses coding dan decoding, tidak terdapat proses kuantisasi. Kompresi tipe ini cocok diterapkan pada berkas basis data, spread sheet, berkas word processing, citra biomedis, dan lain sebagainya.

  BAABB 000011100101011

  Algoritma Coding BAABB

  000011100101011 Algoritma Decoding Sumber: Putra, Darma. 2009.

Gambar 2.4 Ilustrasi kompresi lossless Kompresi data yang bersifat lossy mengijinkan terjadinya kehilangan sebagian data tertentu dari pesan tersebut, sehingga dapat menghasilkan rasio kompresi yang tinggi. Apabil citra terkompresi direkonstruksi kembali maka hasilnya tidak sama dengan citra aslinya, tetapi informasi yang terkandung tidak sampai berubah atau hilang. Sebagian besar kompresi data lossy memiliki pengaturan tingkat kompresi yang berbeda-beda. Hal ini dilakukan agar kompresinya lebih efektif dan informasi yang terkandung pada citra tidak sampai berubah dan hilang. Kompresi data lossy ini efektif jika diterapkan pada penyimpanan data analog yang didigitalisasi seperti gambar, video dan suara.

  0001100001010110

  3.26 Algoritma Coding 00011000010101

  5.26 Algoritma Decoding Sumber: Putra, Darma. 2009.

Gambar 2.5 Ilustrasi kompresi Lossy

2.4 RLE (Run Length Encoding)

  RLE (Run Length Encoding) adalah kompresi yang umum digunakan untuk data grafis (citra). Kompresi citra dengan menggunakan RLE didasarkan pada pengamatan bahwa suatu pixel dalam suatu citra akan memiliki nilai yang cenderung sama dengan nilai piksel tetangganya. Bila suatu citra biner dimulai dengan 20 pixel putih kemudian diikuti dengan 3 pixel hitam kemudian diikuti lagi dengan 65 pixel putih maka hanya nilai 20, 3 dan 65 yang akan menjadi output untukmewakili nilai dari masing-masing pixel input [8].

  Metode ini mengasumsikan bahwa setiap citra dimulai dengan suatu pixel putih. Apabila dimulai dengan pixel warna hitam maka di awal output ditambah nilai 0 yang artinya 0 pixel putih. RLE juga dapat digunakan untuk melakukan kompresi pada citra grayscale. Setiap deret pixel dengan intensitas yang sama nilai pixel yang sama dan kemudian diikuti dengan nilai pixel.

  Permasalahan dari RLE adalah untuk membedakan angka yang menyatakan banyaknya nilai suatu pixel dengan nilai pixel itu sendiri. Beberapa langkah yang sering ditempuh untuk menyelesaikan masalah di atas sebagai berikut [8].

  1. Jika citra grayscale memiliki nilai maksimum 128 maka 1 bit pada setiap byte dapat digunakan untukmembedakan byte nilai grayscale atau nilai menyatakan jumlah.

  2. Jika citra grayscale dengan nilai maksimum 256, maka nilai tersebut dapat dikurangi menjadi 255 dengan 1 nilai disiapkan sebagai penanda. Misalkan saja nilai penanda tersebut adalah 255.

  3. Solusi ketiga adalah 1 bit dari setiap byte disiapkan sebagai penunjuk byte tersebut merupakan nilaiintensitas atau nilai banyaknya pixel. Namun pada solusi ketiga ini 1 bit ekstra tersebut disisipkan ke dalam deret 8 bit. Deret bit ekstra tersebut kemudian diikuti atau didahului oleh nilai-nilai menyatakan intensitas dan banyaknya pixel.

  4. Solusi keempat adalah menggunakan nilai negatif dari selisih antara nilai intensitas dan banyaknya pixel yang ditempatkan setelah deretan intesintas dan banyaknya pixel.

  Algoritma metode kompresi RLE hanya efisien dengan data file yang berisi kelompok data(byte/karakter) yang berulang dan dapat digunakan pada file teks. File teks berisi banyak kelompok data yang berupa spasi atau tabulator, tetapi juga dapat diterapkan untuk citra (gambar) yang berisi area hitam atau putih yang besar. [10]

  Secara fisik, citra adalah representasi dari objek-objek dalam keadaan diam atau bergerak pada suatu media seperti kertas, film atau monitor. Representasi objek untuk menghasilkan suatu citra dapat dilakukan secara analog dan secara digital.[10] Ada sejumlah varian run-length encoding. Data citra biasanya run-length encoded dalam proses sekuensial yang memperlakukan data gambar sebagai aliran 1D, bukan sebagai peta 2D data. Dalam pengolahan sekuensial, bitmap dikodekan mulai di sudut kiri atas dan melanjutkan dari kiri ke kanan di setiap garis pindai (sumbu X) ke sudut kanan bawah bitmap (ditunjukkan dalam Gambar 2.6, a). Tapi skema RLE alternatif juga dapat ditulis untuk menyandikan data di sepanjang bitmap (sumbu Y) sepanjang kolom (ditunjukkan dalam Gambar 2.6, b), untuk menyandikan bitmap menjadi keramik 2D (ditunjukkan dalam Gambar 2.6 , c), atau bahkan untuk mengkodekan piksel pada diagonal secara zig-zag (ditunjukkan dalam Gambar 2.6, D). RLE varian aneh seperti yang terakhir ini mungkin digunakan dalam aplikasi yang sangat khusus namun biasanya cukup langka [13].

  (Reny, 2012)

Gambar 2.6 Varian Run Length Encoding

  2.5 Walsh Hadamard Transform

  Transformasi walsh hadamard merupakan transformasi yang hanya memiliki fungsi basis dalam dua jenis nilai yaitu -1 dan 1. Transformasi walsh hadamard dapat digunakan untuk melakukan kompresi citra dengan sifat kompresi yaitu

  lossy dimana diperbolehkan terjadinya kehilangan beberapa data maupun sebagian

  besar data pada citra. Transformasi walsh hadamard 1 dimensi pada citra f(x) dapat dinyatakan dengan rumus walsh maupun rumus hadamard. Untuk fungsi basis (kernel) dari transformasi hadamard dapat menggunakan rumus sebagai berikut.

  −1

  1 ∑ ( ) ( )

  =0 ( ........................................................................... (2.1) ( , ) = −1)

  Dengan u = 0,1,2,...,N-1, dan x=0,1,2,...,N-1, sedangkan nilai n mengikuti

  n

  aturan N=2 . Dari rumus diatas N merupakan banyaknya data, bi(x) menyatakan bit ke-i dari representasi biner x. Begitu juga berlaku untuk bi(u) dimana nilai bit- bitnya tergantung pada nilai u. Setelah diperoleh matriks walsh hadamard kemudian matriks tersebut dikalikan dengan nilai pixel pada citra kemudian dilakukan proses perhitungan walsh hadamard.

  Dalam metode ini rumus yang digunakan adalah rumus hadamard. Rumus hadamard didalam pembentukan matriks transformasinya adalah sebagai berikut.

  −1

  1 −1 ∑ ( ) ( ) =0

  .............................................................. (2.2)

  ( ) = ∑ ( )(−1) =0

  Persamaan (2.2) diatas digunakan untuk melakukan proses kompresi citra, dimana bi merupakan posisi nilai biner dari x maupun u. Dimana f(x) merupakan nilai fungsi citra yang asli sebelum dilakukan proses kompres. Sedangkan nilai -1 merupakan nilai ketetapan dari metode walsh-hadamard. Untuk fungsi balik menggunakan metode hadamard dapat menggunakan rumus berikut.

  −1

  1 −1 ∑ ( ) ( ) =0

  .............................................................. (2.3)

  ( ) = ∑ ( )(−1) =0

  Persamaan (2.3) diatas menunjukkan rumus yang digunakan untuk melakukan proses dekompresi terhadap citra yang telah dikompres. Yang membedakan fungsi kompresi dan dekompresi hanya terletak dari nilai yang diproses, dimana pada proses dekompresi ini nilai yang diproses merupakan nilai

  inilah yang digunakan untuk mendapatkan nilai balik yang menjadi hasil dari proses dekompresi menggunakan metode walsh-hadamard.

2.6 Flowchart

  Flowchart atau bagan alir, awal mulanya memang berkembang dari industri komputer yaitu untuk menggambarkan urutan proses penyelesaian masalah. Suatu flowchart dapat dengan mudah menjelaskan suatu urutan-urutan proses yang relatif rumit bila diuraikan dalam kata-kata. Dengan visualisasi maka adanya

  

bottleneck (penumpukan) atau ketidak-efisiensian dari suatu proses dapat

  terdeteksi untuk dilakukan perbaikan. Oleh karena itu flowchart juga diterima di kalangan lain seperti manufaktur, sain, militer, manajemen, dsb. Flowchart sangat berguna khususnya untuk menjelaskan urutan-urutan proses yang pelaksanaannya mempunyai banyak pilihan atau percabangan [12].

  Flowchart pada umumnya dibuat dengan simbol-simbol standard (yang telah disepakati bersama), tetapi bila perlu dapat juga dibuat simbol khusus asalkan pemakaiannya konsisten tidak berubah-ubah. Beberapa bentuk-bentuk simbol flowchart yang dapat digunakan untuk pemrograman komputer.

  Simbol Keterangan

  Proses Proses-proses Proses yang telah didefinisikan, misal dalam bentuk sub- routine Operasi manual Proses pendahuluan Arah aliran program Proses input/output data Kode mulai/ berhenti Konektor, jika flowchartnya besar sehingga perlu dipisah Pengambilan keputusan