Gambar 2.2 Palet warna kuning 255 255 0
2.4 Joint Photograpic Expert Group JPEG
JPEG didirikan oleh komite Joint Photographic Expert Group yang mengeluarkan standart pada tahun 1992. JPEG menetapkan standart yaitu codec. Codec menjelaskan
tentang bagaimana sebuah gambar dikompresi menjadi aliran byte dan dikompres kembali menjadi sebuah gambar serta digunakan sebagai streaming sebuah file. Citra
Joint Photograpic Expert Group JPEGmerupakan yang terbaik untuk foto-foto dan lukisan pemandangan yang realistis dengan variasi warna yang halus dan senada.
Kompresi yang umum pada JPEG adalah Lossy, yaitu beberapa kualitas visual akan hilang dalam proses dan tidak dapat dikembalikan. Metode kompresi Lossy data
dari encoding ketika diterapkan untuk input yang memiliki 24 bit per pixel masing- masing delapan untuk merah, hijau dan biru. Metode pertama dari metode kompresi
Lossy data adalah transformasi warna, adapun langkah pertama adalah langkahnya adalah mengubah gambar dari RGB menjadi berbagai warna ruang YCbCr. Y
kecerahan dan pixel, Cb dan Cr Chrominancebiru dan merah komponen. Ruang warna YCbCr konversi memungkinkan kompresi lebih besar tanpa
perceptual signifikan terhadap kualitas gambar atau lebih besar perceptual kualitas gambar yang sama untuk kompresi. Langkah selanjutnya adalah untuk mengurangi
resolusi spasial dari komponen Cb dan Cr disebut dengan downsampling atau subsampling chroma. Gambar berikut adalah gambaran algoritma kompresi JPEG:
W.Y. Yang, 2009.
2.5 Kompresi Citra
Kompresi citra adalah proses pemampatan citra yang bertujuan untuk mengurangi duplikasi data pada citra sehingga memory yang digunakan untuk merepresentasikan
citra menjadi lebih sedikit daripada representasi citra semula. Sutoyo, 2009
Universitas Sumatera Utara
Pemampatan citra atau kompresi bertujuan untuk meminimalkan kebutuhan memori dalam merepresentasikan citra digital dengan mengurangi duplikasi data di
dalam citra sehingga memori yang dibutuhkan menjadi lebih sedikit daripada representasi citra semula.
2.5.1 Teknik Kompresi Citra
Ada dua teknik yang dapat dilakukan dalam melakukan kompresi citra yaitu: 1. Lossless Compression
Metode Lossless merupakan kompresi citra dimana hasil dekompresi dari citra yang terkompresi sama dengan citra aslinya, tidak ada informasi yang hilang. Sayangnya,
untuk ratio kompresi citra metode ini sangat rendah. secara umum teknik lossless digunakan untuk penerapan aplikasi yang memerlukan kompresi tanpa cacat, seperti
pada aplikasi radiografi, kompresi citra hasil diagnose medis atau gambar satelit, di mana kehilangan gambar sekeil apa pun akan menyebabkan hasil yang tidak
diharapkan. Contoh metode ini adalah Shannon-Fano Coding, Huffman Coding, Arithmetic Coding, Run-Length Encodingdan lain sebagainyaSutoyo, 2009
2. Lossy Compression Metode Lossy merupakan kompresi citra dimana hasil dekompresi dari citra yang
terkompresi tidak sama dengan citra aslinya, artinya bahwa ada informasi yang hilang, tetapi masih bisa ditolerir oleh persepsi mata. Metode ini menghasilkan ratio kompresi
yang lebih tinggi dari pada metode lossless. Contohnya adalah color reduction, chroma subsampling, dan transform coding, seperti transformasi Fourier, Wavelet dll.
Sutoyo, 2009
2.5.2 Kriteria Kompresi Citra
Dalam kompresi citra biasanya kriteria yang digunakan untuk mengukur pemampatan citra adalah:
1. Waktu kompresi dan waktu dekompresi
Proses kompresi merupakan proses mengkodekan citra encode sehingga diperoleh citra dengan representasi kebutuhan memori yang minimum. Citra terkompresi
disimpan dalam file dengan format tertentu. Sedangkan proses dekompresi adalah
Universitas Sumatera Utara
proses untuk menguraikan citra yang dimampatkan untuk dikembalikan lagi decoding menjadi citra yang tidak mampat mengembalikan ke bentuk semula.
Algoritma pemampatan yang baik adalah algoritma yang membutuhkan waktu untuk kompresi dan dekompresi paling sedikit paling cepat. Gambar 2 merupakan gambar
mengenai proses kompresi dan dekompresi citra Sutoyo, et al. 2009.
2. Kebutuhan memori
Suatu metode kompresi yang mampu mengompresi file citra menjadi file yang berukuran paling minimal adalah metode kompresi yang baik. Dimana memori yang
dibutuhkan untuk menyimpan hasil kompresi berkurang secara berarti. Akan tetapi biasanya semakin besar persentase pemampatan, semakin kecil memori yang
diperlukan sehingga kualitas citra makin berkurang. Sebaliknya semakin kecil persentase yang dimampatkan, semakin bagus kualitas hasil pemampatan tersebut
Sutoyo, et al. 2009.
3. Kualitas pemampatan Metode kompresi yang baik adalah metode yang dapat mengembalikan citra hasil
kompresi menjadi citra semula tanpa kehilangan informasi apapun. Walaupun ada informasi yang hilang akibat pemampatan, sebaiknya hal tersebut ditekan seminimal
mungkin. Semakin berkualitas hasil pemampatan, semakin besar memori yang dibutuhkan, sebaliknya semakin jelek kualitas pemampatan, semakin kecil kebutuhan
memori yang harus disediakan Sutoyo, et al. 2009.
2.5.3 Parameter Perbandingan
1. Compression Ratio C
r
Compression Ratio C
r
adalah persentase besar data terkompresi, hasil perbandingan antara data yang sudah dikompresi dengan data yang belum
dikompresi Salomon, 2007.
Universitas Sumatera Utara
C
r
=
� ℎ �� �� � ℎ��
� � �
ℎ �� �� � ��
� �
X 100 1
2. Ratio of Compression R
c
Ratio of Compression R
c
adalah hasil perbandingan antara data yang belum dikompresi dengan data yang sudah dikompresi Salomon, 2007.
R
c
=
� ℎ �� �� �
�� � �
� ℎ �� �� � ℎ��
� �
X 1002
3. Redundancy Data R
d
Redundancy Data adalah kelebihan yang terdapat di dalam data sebelum dikompresi. Jadi setelah data dikompresi dapat dihitung Redundancy data yaitu
persentasi dari hasil selisih antara ukuran data sebelum dikompresi dengan data setelah dikompresi. Salomon Motta, 2010.
R
d
= 100 – C
r
3
4. Waktu Kompresi Waktu kompresi merupakan waktu yang dibutuhkan oleh sebuah sistem untuk
menginput file teks yang akan dikompresi sampai dengan selesainya proses kompresi. Semakin sedikit waktu yang dibutuhkan oleh sebuah sistem untuk
melakukan sebuah kompresi, maka metode kompresi yang digunakan semakin efektif.
2.6 Kompleksitas Algoritma
Algoritma merupakan salah satu cabang ilmu komputer yang membahas prosedur penyelesaian suatu permasalahan. Dalam beberapa konteks, algoritma merupakan
spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Algoritma adalah prosedur komputasi yang terdefenisi dengan baik yang menggunakan beberapa nilai
sebagai masukan dan menghasilkan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran. Munir R, 2007.
Universitas Sumatera Utara
Adanya algoritma yang baik mbaka komputer bisa menyelesaikan perhitungan dengan cepat dan benar. Sebaliknya jika algoritma kurang baik maka penyelesaian
lambat dan bahkan tidak didapat solusi yang diharapkan. Baik buruknya sebuah algoritma dapat dibuktikan dari kompleksitas waktu yang digunakan.
Dua hal penting untuk mengukur efektivitas suatu algoritma yaitu kompleksitas ruang keadaan dan kompleksitas waktu. Kompleksitas ruang berkaitan
dengan sistem memori yang dibutuhkan dalam eksekusi program. Kompleksitas waktu dari algoritma berisi ekspresi bilangan dan jumlah langkah yang dibutuhkan sebagai
fungsi dari ukuran permasalahan. Analisa asimtotik menghasilkan notasi Ο Big O
dan dua notasi untuk komputer sain yaitu ϴ Big Theta dan Ω Big Omega .
Kinerja algoritma dibuktikan dengan menjumlahkan bilangan bulat dari masing-masing operasi ketika algoritma di jalankan. Kinerja sebuah algoritma
dievaluasi sebagai fungsi ukuran masukan n dan konstanta modulo pengali yang digunakan. Pada penelitian ini kompleksitas yang digunakan adalah Big
ϴ.
2.6.1 Big-O O
Secara informal, Ogn adalah himpunan semua fungsi yang lebih kecil atau dengan urutan yang sama dengan gn hingga beberapa konstanta, sampai n ke tak terhingga.
Sebuah fungsi tn dikatakan bagian dari Οgn yang dilambangkan dengan tn Є
Οgn, jika tn batas atasnya adalah beberapa konstanta gn untuk semua n besar, jika terdapat konstanta c positif dan beberapa bilangan bulat non-negatif n
seperti tn ≤ cgn untuk semua n≥n
. Levitin A, 2011
2.6.2 Big Omega Ω
Ωgn merupakan himpunan semua fungsi dengan tingkat pertumbuhan lebih besar atau sama dengan gn hingga beberapa konstanta, sampai n ke tak terhingga.
Sebuah fungsi tn dikatakan bagian dari Ωgn, dilambangkan dengan tn Є
Ωgn, jika tn batas bawahnya adalah beberapa konstanta positif dari gn untuk semua n besar. Terdapat konstanta c positif dan beberapa bilangan bulat non-negatif
n seperti
tn ≥ cgn, untuk setiap n ≥ n . Levitin A, 2011
2.6.3 Big Theta θ
θ gn adalah himpunan semua fungsi yang memiliki tingkat pertumbuhan yang sama dengan gn hingga beberapa konstanta, sampai n ke tak terhingga. Sebuah
Universitas Sumatera Utara
fungsi tn dikatakan bagian dari θ gn, dilambangkan dengan tn Є θ gn, jika
tn batas atas dan bawahnya adalah beberapa konstanta positif gn untuk semua n yang besar, yaitu jika ada beberapa konstanta positif c
1
dan c
2
serta beberapa bilangan bulat non-negatif n
seperti c
2
gn ≤ tn ≤ c
1
gn untuk semua n ≥ n
. Levitin A, 2011
2.7 Dekompresi Citra
Sebuah citra yang sudah terkompresi tentunya harus dapat dikembalikan lagi kebentuk aslinya, prinsip ini dinamakan dekompresi. Untuk dapat merubah citra yang
terkompresi diperlukan cara yang berbeda seperti pada waktu proses kompresi dilaksanakan. Jadi pada saat dekompresi catatan header yang berupa byte-byte
tersebut terdapat catatan isi mengenai isi dari file tersebut. Alkhudri, 2015 Catatan header akan menuliskan kembali mengenai isi dari file tersebut, jadi
isi dari file sudah tertulis oleh catatan header sehingga hanya tinggal menuliskan kembali pada saat proses dekompresi. Proses dekompresi sempurna dan kembali ke
bentuk aslinya. Parameter perbandingan dalam dekompresi adalah waktu dekompresi. Waktu
dekompresi adalah waktu yang dibutuhkan oleh sebuah sistem untuk melakukan proses dekompresi dari mulai pembacaan data hingga proses decoding pada data
tersebut. Semakin kecil waktu yang diperoleh maka semakin efisien metode yang digunakan dalam proses kompresi dan dekompresi itu. Alur proses kompresi dan
dekompresi pada citra dapat dilihat pada gambar 2.3 berikut.
Gambar 2.3Alur kompresi-dekompresi citra Alkhudri, 2015
2.8 Algoritma Alternate Reverse Unary Code