Anda di halaman 1dari 13

KOMPRESI CITRA

Yeni Herdiyeni
Departmen Ilmu Komputer IPB

Terms
Enkoder / Compresor : software (atau hardware)
yang mengkodekan data orisinal menjadi data
terkompres
Dekoder / Decompresor : software (atau hardware)
yang mendekode data terkompres menjadi data
orisinal
Codec :
software (atau hardware) yang yang mengkodekan
dan mendekodekan data
Algoritma : teknik yang digunakan dalam proses
pengkodean/kompresi

Bit Rate
Bit Rate disebut juga dengan nama data rate
Bit rate menentukan jumlah data yang
ditampilkan saat video dimainkan, yang
dinyatakan dalam satuan bps (bit per second).
Data rate berkaitan erat dengan pemakaian
dan pemilihan codec (metode kompresi
video).

Bit Depth : Kedalaman Warna


Kedalaman warna menentukan berapa banyak
warna yang dapat ditampilkan oleh satu pixel
yang direpresentasikan dalam banyak bit yang
ditampung pada pixel
Kedalaman warna (bitdepth) :
1 bit : monokrom (2 warna)
4 bit : greyscale atau color (16 warna)
8 bit : greyscale atau color (256 warna)
16 bit : high color (16 warna)
24 bit : true color (16.777.216 warna)

Kompresi Citra
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.

Teknik Kompresi Citra (4)

Contoh Citra Medik

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)

Teknik Kompresi Citra (1)


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.
Biasanya digunakan pada citra foto atau image lain
yang tidak terlalu memerlukan detail citra, dimana
kehilangan bit rate foto tidak berpengaruh pada
citra.

Teknik Kompresi Citra (2)


Beberapa teknik lossy
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.
Chorma Subsampling terdiri dari 3 komponen :
Y (luminance) : U (CBlue) : V (CRed)

Downsampling
The human eye can see more detail in the Y
component (brightness) than in Cb (blue) and Cr
(red). Using this knowledge, encoders can be
designed to compress images more efficiently.
(http://en.wikipedia.org)
Transformasi warna dari RGB ke ruang warna (color
space) dinamakan YCbCr.
Pengurangan komponen Cb dan Cr dinamakan
"downsampling" atau "chroma subsampling
Downsampling the chroma components menghemat
33% atau 50% space yang digunakan image.

Teknik Kompresi Citra (3)


Transform coding : menggunakan Fourier Transform
seperti DCT (Discrete Cosine Transform).
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 image yang lain.
Proses kompresi Fractal lebih lambat daripada JPEG
sedangkan proses dekompresinya sama.

Hal-Hal Penting Dalam Kompresi Citra


Tipe scalability :
Quality progressive : dimana image dikompres secara
perlahan-lahan dengan penurunan kualitasnya.
Resolution progressive : dimana image dikompresi
dengan mengenkode resolusi image yang lebih rendah
terlebih dahulu baru kemudian ke resolusi yang lebih
tinggi.
Component progressive : dimana image dikompresi
berdasarkan komponennya, pertama mengenkode
komponen grey baru kemudian komponen warnanya.

Contoh Downsampling
Rasio downsampling
pada JPEG adalah 4:4:4
(no downsampling),
4:2:2 (reduce by factor
of 2 in horizontal
direction), dan 4:2:0
(reduce by factor of 2
in horizontal and
vertical directions).

Hal-Hal Penting Dalam Kompresi Citra


Scalability/Progressive Coding/Embedded
Bitstream
Adalah 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.

Hal-Hal Penting Dalam Kompresi Citra


Region of Interest Coding : daerah-daerah
tertentu dienkode dengan kualitas yang lebih
tinggi daripada yang lain.
Meta Information : image yang dikompres juga
dapat memiliki meta information seperti
statistik warna, tekstur, small preview image,
dan author atau copyright information

Algoritma Kompresi/Dekompresi Citra

Algoritma Kompresi/Dekompresi Citra

(1)

(2)

Algoritma umum untuk kompresi image


adalah :
1. Menentukan bitrate dan toleransi distorsi image
dari inputan user.
2. Pembagian data image ke dalam bagian-bagian
tertentu sesuai dengan tingkat kepentingan yang
ada (classifying).
Menggunakan salah satu teknik : DWT (Discreate
Wavelet Transform) : mencari frekuensi nilai pixel
masing-masing, menggabungkannya menjadi satu
dan mengelompokkannya sebagai berikut:

Algoritma Kompresi/Dekompresi Citra


(3)

Hasil dekomposisi 3 level decomposition

Dimana

LL : Low Low Frequency (most importance)


HL : High Low Frequency (lesser importance)
LH : Low High Frequency (more lesser importance)
HH : High High Frequency (most less importance)

Algoritma Kompresi/Dekompresi Citra


(4)

3. Pembagian bit-bit di dalam masing-masing


bagian yang ada (bit allocation).
4. 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.

5. Lakukan pengenkodingan untuk masing-masing


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

Algoritma Kompresi/Dekompresi Citra

Beberapa Metode Kompresi Citra

Sedangkan algoritma umum dekompresi


image adalah :
1. Baca data hasil kompresi menggunakan entropy
dekoder.
2. Dekuantisasi data.
3. Rebuild image.

Teknik Kompresi GIF


GIF (Graphic Interchange Format) dibuat oleh
Compuserve pada tahun 1987 untuk
menyimpan berbagai file bitmap menjadi file
lain yang mudah diubah dan ditransmisikan
pada jaringan komputer.
GIF merupakan format citra web yang tertua
yang mendukung kedalaman warna sampai 8
bit (256 warna), menggunakan 4 langkah
interlacing, mendukung transparency, dan
mampu menyimpan banyak image dalam 1
file.
Byte ordering : LSB MSB

Struktur file GIF (1)


Header : menyimpan informasi identitas file
GIF (3 bytes, harus string GIF) dan versinya
(3 bytes, harus string 87a or 89b)
Global Screen Descriptor (GSD) :
mendefinisikan logical screen area dimana
masing-masing file GIF ditampilkan.

Struktur file GIF (2)

Interlacing
Interlacing separates
the odd and even lines
and transmits them
separately. It allows the
overall frame rate to be
half what it would need
to be if the whole
display were delivered
progressively. Thus, it
reduces the bandwidth
required to 50% and is
therefore a form of
compression.

Struktur file GIF (3)


Global Color Table : masing-masing image
dalam GIF dapat menggunakan global color
table atau tabel warnanya sendiri-sendiri.
Penggunaan GCT akan memperkecil ukuran
file GIF.
Image1, Image2, Image3, ... Image-n : dimana
masing-masing image memiliki struktur blok
sendiri-sendiri dan terminator antar file.
Trailer : Akhir dari sebuah file GIF

Struktur file GIF (4)


Kompresi GIF menggunakan teknik LZW :
gambar GIF yang berpola horizontal dan
memiliki perubahan warna yang sedikit, serta
tidak bernoise akan menghasilkan hasil
kompresan yang baik.

Kompresi LZW (Lempel, Ziv dan Welch) pada GIF


Proses encoding yang mencari rangkaian pixel
yang sama pada gambar. Pola yang lebih
sering muncul mendapatkan sebuah kode
yang mewakili rangkaian tersebut dalam file
terkompresi.

Animated GIF
Animated GIF : tidak ada standar bagaimana
harus ditampilkan sehingga umumnya image
viewer hanya akan menampilkan image
pertama dari file GIF. Animated GIF memiliki
informasi berapa kali harus diloop.
Tidak semua bagian dalam animated GIF
ditampilkan kembali, hanya bagian yang
berubah saja yang ditampilkan kembali.

Teknik Kompresi PNG (2)


Diprakarsai oleh Thomas Boutell dari PNG
Development Group, dan versi finalnya
direlease pada 1 Oktober 1996, 1,5 tahun
sejak project berjalan.
Byte ordering : MSB-LSB

Format file GIF


GIF87a : mendukung interlacing dan mampu
manyimpan beberapa image dalam 1 file,
ditemukan tahun 1987 dan menjadi standar.
GIF89a : kelanjutan dari 87a dan ditambahkan
dengan dukungan transparency, mendukung
text, dan animasi.

Teknik Kompresi PNG (1)


PNG (Portable Network Graphics) digunakan di
Internet dan merupakan format terbaru
setelah GIF, bahkan menggantikan GIF untuk
Internet image karena GIF terkena patent LZW
yang dilakukan oleh Unisys.
Menggunakan teknik loseless dan mendukung
:
Kedalaman warna 48 bit
Tingkat ketelitian sampling : 1,2,4,8, dan 16 bit
Memiliki alpha channel untuk mengkontrol
transparency
Teknik pencocokan warna yang lebih canggih dan
akurat

Teknik Kompresi PNG (3)


Format penamaan file PNG diatur ke dalam
suatu urutan blok biner yang disebut sebagai
chunk (gumpalan), yang terdiri dari :
Length (4 bytes), berupa informasi ukuran PNG
Type (4 byte), berupa informasi nama chunk
Data (ukuran dinamis), berupa data PNG.
CRC (Cyclic Redundancy Check), berupa CRC-32
untuk pendeteksian error checking pada saat
transmisi data.

Proses PNG Decoder


Proses PNG decoder adalah sebagai berikut :
Baca chunk data size
Baca dan simpan chunk type
Jika ukuran chunk data lebih besar daripada data
buffer, alokasikan buffer yang lebih besar
Baca chunk data
Hitung CRC value dari chunk data
Baca CRC dari file yang diterima
Bandingkan hasil perhitungan CRC dengan CRC
dari file, jika tidak sama, berarti chunk invalid,
minta kirim ulang.

Struktur File PNG


Struktur file PNG adalah :
PNG Signature : tanda file PNG
IHDR chunk : menyimpan dimension, depth, dan
color type
PLTE chun k: untuk PNG yang menggunakan color
palette type
IDAT chunk 1, IDAT chunk 2, IDAT chunk 3, ... IDAT
chunk-n
IEND chunk: end of PNG image

Warna PNG
PNG mendukung 5 cara untuk
merepresentasikan warna, dimana tipe warna
disimpan dalam bagian IHDR chunk :
RGB Triple (R,G, dan B) : untuk 8 atau 16 bits
Color Palette : yang disimpan dalam PLTE chunk
dengan bit depth 1,2,4 atau 8.
Grayscale : 1 komponen warna per image, bisa
digunakan untuk semua bit depth.

Interlacing pada PNG


PNG mendukung interlacing yang disebut
Adam 7, yang menginterlace berdasarkan
pixel daripada berdasarkan baris. Adam akan
membagi image ke dalam 8x8 pixel, yang akan
diupdate dalam 7 fase interlacing.

Warna PNG
RGB Alpha Channel :

agar image dan background dapat dikombinasikan


untuk mengkontrol transparency
hanya bisa digunakan pada bit depth 8 atau 16 bits
jika alpha channel 0 berarti 100% transparan, sehingga
background terlihat seutuhnya.
Jika alpha channel 2image bit depth -1 berarti fully opaque,
sehingga background sama sekali tidak terlihat karena
tertutup oleh image.

Grayscale with Alpha Channel : hanya bisa 8/16


bits

Interlacing pada PNG


7 fase interlacing :

Teknik Kompresi PNG


Teknik kompresi yang digunakan adalah
Deflate yang merupakan kelanjutan dari
algoritma Lempel-Ziv. Cara kerja Deflate sama
dengan LZW dan melakukan scanning secara
horisontal.
.

JPEG Compression Models (1)


Sequential : kompresi dilakukan secara topdown, left-right menggunakan proses singlescan dan algoritma Huffman Encoding 8 bit
secara sekuensial.

JPEG
JPEG (Joint Photograpic Experts Group)
menggunakan teknik kompresi lossy sehingga
sulit untuk proses pengeditan.
JPEG cocok untuk citra pemandangan (natural
generated image), tidak cocok untuk citra
yang mengandung banyak garis, ketajaman
warna, dan computer generated image

JPEG Compression Models (2)


Progressive : kompresi dilakukan dengan
multiple-scan secara progresif, sehingga kita
dapat mengira-ira gambar yang akan kita
download.

JPEG Compression Models (3)

Teknik Kompresi JPEG

Hierarchical : super-progressive mode,


dimana image akan dipecah-pecah menjadi
sub image yang disebut frame. Frame pertama
akan membentuk image dalam resolusi
rendah hingga berangsur-angsur ke resolusi
tinggi.
Loseless (JPEG-LS) : exact image

JPEG merupakan nama teknik kompresi,


sedangkan nama format filenya adalah JFIF
(JPEG File Interchange Format)
Tingkat kompresi yang baik untuk JPEG adalah
10:1-20:1 untuk citra foto, 30:1-50:1 untuk
citra web, dan 60:1-100:1 untuk kualitas
rendah seperti citra untuk ponsel.
Byte order : MSB-LSB

Tahapan Kompresi JPEG (1)

Tahapan Kompresi JPEG (2)

Sampling : adalah proses pengkonversian data


pixel dari RGB ke YUV/YIQ dan dilakukan down
sampling. Biasanya sampling dilakukan per
8x8 blok, semakin banyak blok yang dipakai
makin bagus kualitas sampling yang
dihasilkan.
DCT (Discreate Cosine Transform) : hasil dari
proses sampling akan digunakan sebagai
inputan proses DCT, dimana blok 8x8 pixels
akan diubah menjadi fungsi matriks cosinus

Quantization : proses membersihkan koefisien


DCT yang tidak penting untuk pembentukan
image baru. Hal ini yang menyebabkan JPEG
bersifat lossy.
Entropy Coding : proses penggunaan
algoritma entropy, misalnya Huffman atau
Aritmatik untuk mengenkodekan koefisien
hasil proses DCT yang akan mengeliminasi
nilai-nilai matriks yang bernilai nol secara zigzag order.

Tahapan Kompresi JPEG (3)

Step 1: Picture Preparation (a)

Baseline sequential JPEG encoding and


decoding processes

Color space transformation


First, the image is converted from RGB into a different
color space called YCbCr. This is the same as the color
space used by PAL, MAC and Digital color television
transmission.
The Y component represents the brightness of a pixel
The Cb and Cr components together represent the chrominance

Y U V (Y Cb Cr) Components

475 x 330 x 3 = 157 KB

luminance

Assign more bits to Y, less bits to Cb and Cr

Y U V (Y Cb Cr) Components

Step 1: Picture Preparation (b)


Downsampling
The human eye can see more detail in the Y component
than in Cb and Cr. Using this knowledge, encoders can
be designed to compress images more efficiently.
The above transformation enables the next step, which
is to reduce the Cb and Cr components (called
"downsampling" or "chroma subsampling").
Typically each group of 4 pixels would be sampled with
4 values for Y and only 1 each for U & V (sampling ratio
of 4:1:1).
For the rest of the compression process, Y, Cb and Cr are
processed separately and in a very similar manner.

Assign more bits to Y, less bits to Cb and Cr

Step 1: Picture Preparation (b)


Downsampling

Original: 12 blocks.
Sampled: 4 + 1 + 1 = 6 blocks.
Compression ratio = 50%.
There is 75% lost in chrominance components
For the rest of the compression process, Y, Cb and Cr are
processed separately and in a very similar manner.

The 64 (8 X 8) DCT Basis Functions

Each 8x8 block can


be looked at as a
weighted sum of
these basis
functions.

Step 2: Picture Processing


Discrete Cosine Transform
Next, each component (Y, Cb, Cr) of the image is "tiled"
into sections of eight by eight pixels each, then each tile is
converted to frequency space using a two-dimensional
forward discrete cosine transform.
Within the MCU, each component is processed separately
one 8x8 block at a time.
The luminance block is shifted from numbers 0..255 to
numbers 128..127 by subtracting 128.
Chrominance values are already in the range 128..127.

Step 2: Picture Processing


Each block is transformed by the forward DCT into lowand high-frequency information.
This step is lossless, except that there may be little lost due
to rounding of DCT coefficients
If one such 88 8-bit subimage is:

The process of 2D
DCT is also the
process of finding
those weights.

10

JPEG Image Compression II


DCT: similar to FT; only real (cosine) part is kept.

Step 2: Picture Processing


which, if we now subtract 128 from each element, results in

Identifies average value (dc coefficient) and


remaining components (ac coefficients).
and then taking the DCT and rounding to the nearest integer
results in

Note the rather large value of the top-left corner. This is the DC
coefficient. The remaining 63 coefficients are called the AC
coefficients.

Step 3: Quantization

Step 3: Quantization

The human eye is good at seeing small differences in


brightness over a relatively large area, but not so good at
distinguishing the exact strength of a high frequency
brightness variation.
This fact allows one to get away with greatly reducing the
amount of information in the high frequency
components.
This is done by simply dividing each component in the
frequency domain by a constant for that component, and
then rounding to the nearest integer.
This is the main lossy operation in the whole process.

As a result of this, it is typically the case that many of


the higher frequency components are rounded to
zero, and many of the rest become small positive or
negative numbers.
A common quantization matrix is:

Step 3: Quantization

Step 4: Entropy Encoding

Using this quantization matrix with the DCT coefficient matrix


from above results in:

Entropy coding is a special form of lossless data


compression.
DC Coefficient Coding the difference between
the quantized DC coefficient of the current block
and that of the previous block of the same
component is taken.

For example, using 415 (the DC coefficient) and rounding to


the nearest integer

The quantization matrix may be scaled by a quality factor

11

AC Coefficient Coding
the 63 quantized coefficients are converted into
a one-dimensional zig-zag sequence to increase
the run length of zeros.
- zero run-length encoding is then applied.
- Huffman coding or arithmetic encoding is then
further applied.

Zig-zag Scan DCT Blocks


Why? -- To group low frequency coefficients in top of vector.
Maps 8 x 8 to a 1 x 64 vector.
Horizontal frequency

Vertical frequency

Step 4: Entropy Encoding

14

15

27

28

13

16

26

29

42

12

17

25

30

41

43

11

18

24

31

40

44

53

10

19

23

32

39

45

52

54

20

22

33

38

46

51

55

60

21

34

37

47

50

56

59

61

35

36

49

48

57

58

62

63

The zig-zag sequence for the above quantized coefficients


would be:
26,
3, 0,
3, 2, 6,
2, 4, 1, 4,
1, 1, 5, 1, 2,
1, 1, 1, 2, 0, 0,
0, 0, 0, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0,
0, 0,
0

Decoding
Decoding to display the image consists of doing all the above
in reverse.
Taking the DCT coefficient matrix (after adding the difference
of the DC coefficient back in)

DC coefficient is -26
Zero run-length encoding is
(0, -3),
(1, -3), (0, -2), (0, -6), (0, 2), (0, -4),
(0, 1), (0, -4), (0, 1), (0, 1), (0, 5), (0, 1),
(0, 2), (0, -1), (0, 1), (0, -1), (0, 2),
(5, -1), (0, -1),
(0, 0)

Decoding
and multiplying it by the quantization matrix from above
results in

which closely resembles the original DCT coefficient matrix for


the top-left portion.

Original

12

Decoding

JPEG

Taking the inverse DCT (type-III DCT) results in an image with


values (still shifted down by 128)

and adding 128 to each entry

Original

Latihan
Given the following matrices
Matrix A : 8 x 8 luminance block.
Matrix B : 8 x 8 Quantization matrix (luminance)

JPEG 2000
JPEG 2000 merupakan pengembangan kompresi
JPEG.
Didesain untuk internet, scanning, foto digital,
remote sensing, medical imegrey, perpustakaan
digital dan e-commerce
Kelebihan :
Dapat digunakan pada bit-rate rendah sehingga dapat
digunakan untuk network image dan remote sensing
Menggunakan Lossy dan loseless tergantung kebutuhan
bandwidth. Loseless digunakan untuk medical image
Transmisi progresif dan akurasi & resolusi pixel tinggi
Menggunakan Region of Interest (ROI)

a) For this luminance block, obtain a Matrix C by


subtracting each entry from 128.
b) Obtained the DCT coefficient matrix as a result of apply
DCT to Matrix C.
c) Compute the quantized coefficients using truncation to
the nearest integers and then write them out in a zigzag order.
d) Compute the quantized coefficients by rounding to the
nearest integers and then write them out in a zig-zag
order.
e) Compare the merits of using each of the techniques in
parts (d) and (e) above.

JPEG 2000
Kelebihan (lanjutan) :
Robustness to bit error yang digunakan untuk komunikasi
jaringan dan wireless
Open architecture : single compression/decompression
Mendukung protective image security : watermarking,
labeling, stamping, dan encryption
Mendukung image ukuran besar 64k x 64k, size up to 232 1
Mendukung meta data dan baik untuk computergenerated imagenary. Dulu JPEG standar baik untuk
natural imagenary.

13

Anda mungkin juga menyukai