Jurusan Teknik Informatika
Fakultas Teknologi Informasi
Institut
Teknologi Sepuluh Nopember
Digital Image Coding
Kompresi gambar
adalah penerapan teknik kompresi data gambar digital dua dimensi I ( x, y ) untuk mengurangi redundansi data gambar untuk
penyimpanan atau transmisi dalam bentuk yang efisien. Kompresi gambar dapat
diklasifikasikan ke dalam dua kategori, yaitu :
1.
Kompresi Lossless
Kompresi
yang mencapai rasio kompresi lebih kecil dari kompresi lossy, terutama
mengambil keuntungan dari isi gambar yang mengandung distribusi probabilitas yang
tidak seragam untuk merepresentasikan variabel panjang dari pixel gambar.
Gambar tersebut termasuk gambar teknis , ikon atau komik , dan isinya bernilai
tinggi seperti citra medis atau gambar scan dibuat untuk keperluan arsip .
2.
Kompresi Lossy
Kompresi
yang utamanya ketika mereka mencapai rasio kompresi yang sangat tinggi, dapat
memperkenalkan artefak kompresi . Namun demikian , kompresi lossy sangat cocok
untuk gambar alam seperti foto dalam
aplikasi dimana minor loss kadang-kadang tak terlihat ketika diinginkan untuk
mencapai pengurangan substansial dalam bitrate .
Sebagian besar gambar
seni kompresi gambar secara standar menggunakan kombinasi algoritma lossy dan
lossless untuk mencapai kinerja terbaik .
4.1 Basics of
information theory for image compression
Menurut teori
informasi Shannon untuk komunikasi, seorang sumber di saluran komunikasi
mentransmisikan aliran simbol input yang dipilih dari satu set diskrit dari
huruf A = {a1, a2,. . . , An}, yang
harus dikodekan ketika dikirim melalui saluran yang berpotensi rusak oleh
kebisingan
Di sisi lain
dari saluran, penerima menerjemahkan aliran data dan informasi yang berasal
dari urutan output simbol B = {b1, b2,. .
. , Bm}. Saluran ini dapat ditandai oleh seperangkat probabilitas kondisional {P (An
|Bm)}. Perlu dicatat bahwa belum tentu ada jumlah simbol yang sama dalam input
dan output set, karena kebisingan saluran.
Satu pertanyaan
penting adalah apakah campuran simbol input A = {a1, a2,. . . , An} harus digunakan untuk mencapai kapasitas saluran
sedekat mungkin? Dengan kata lain, untuk setiap saluran yang diberikan, apakah
ada cara pengkodean simbol masukan sehingga kita dapat memanfaatkan saluran
sebagai dekat dengan kapasitas (seperti yang kita inginkan) dan pada saat yang
sama memiliki tingkat kesalahan mendekati nol seperti yang kita harapkan?
Shannon menunjukkan bahwa mungkin untuk
menggunakan pengkodean entropi untuk menjaga tingkat kesalahan rendah dan masih
menggunakan saluran untuk transmisi informasi di (atau dekat) kapasitasnya.
4.2 Entropy coding
Sebuah pengkodean entropi adalah skema pengkodean
yang memberikan kode untuk simbol sehingga panjang kode cocok dengan probabilitas dari simbol. Biasanya,
encoders entropi digunakan untuk kompres data dengan simbol mengganti diwakili
oleh kode yang sama panjang dengan simbol diwakili oleh kode di mana panjang
setiap codeword sebanding dengan negatif logaritma probabilitas.
4.2.1 Huffman
coding
Huffman coding, dikembangkan oleh David A. Huffman
pada tahun 1952 [5], merupakan algoritma pengkodean entropi digunakan untuk
kompresi data lossless yang menggunakan panjang tabel kode biner variabel untuk
encoding satu set simbol sumber. Huffman kode mengungkapkan simbol yang paling
sering menggunakan string pendek bit daripada yang digunakan untuk simbol
sumber yang lebih sering. Huffman mampu merancang metode kompresi yang paling
efisien.
Contoh :
Misalnya, diberi satu set sumber simbol A = {a1, a2,.
. . , A6} dan terjadinya probabilitas yang sesuai P = {0,12, 0,42, 0,04, 0,09, 0,02, 0,31}.
4.2.2
Aritmethic Coding
Arithmetic coding melibatkan kode non-blok tanpa korespondensi
satu-ke-satu antara simbol sumber dan codeword dari kode Huffman. Sebuah
terbatas-panjang urutan seluruh simbol sumber diberikan sebuah codeword
aritmatika tunggal yang mendefinisikan interval bilangan real antara 0 dan 1.
Sebagai jumlah simbol dalam urutan meningkat, interval yang digunakan untuk
mewakili menjadi lebih kecil. Prinsip coding didasarkan pada asumsi bahwa
setiap simbol urutan dapat membantu mengurangi ukuran interval sesuai dengan
probabilitas.
4.2.3
Context-adaptive binary arithmetic coding (CABAC)
Pembahasan sebelumnya dan analisis aritmatika coding
berfokus pada coding sumber set beberapa simbol, meski pada prinsipnya berlaku
untuk sumber simbol biner juga. Hal ini berguna untuk membedakan dua kasus
karena kedua coder dan antarmuka untuk model yang sederhana untuk sumber biner
, memproduksi bi-level ( hitam dan putih , atau 0 dan 1 ) gambar . Konteks
adaptif biner aritmatika coder ( CABAC ) adalah teknik yang efisien untuk
bersyarat coding entropi.
4.2.4
Run-length coding (RLC)
Run - length coding ( RLC ) mengkodekan urutan simbol
biner dengan berjalan data (yaitu , urutan di mana nilai data yang sama terjadi
pada banyak elemen data yang berurutan) . Run - length coding dapat berfungsi
sebagai metode pengkodean lossless yang mencatat jalankan sebagai nilai data
tunggal dan menghitung bukan sebagai menjalankan asli. Hal ini berguna untuk
data yang mengandung banyak berjalan , seperti karakter yang dicetak pada citra
dokumen .
Sebagai contoh, perhatikan satu baris teks tercetak
dengan tinta hitam ( dilambangkan sebagai 1 ) pada latar belakang putih (
dilambangkan sebagai 0 ) :
Lossless kompresi saja tidak cukup untuk kompres
sebagian gambar untuk memuaskan bitrate rendah. Oleh karena itu kita harus
resor untuk pendekatan kompresi lossy, yang memperkenalkan distorsi melalui
proses kuantisasi sinyal. Kuantisasi dapat dilakukan baik dalam ruang atau
dalam domain transform. Sampel domain yang paling spasial atau mengubah gambar
dapat mengasumsikan nilai-nilai sewenang-wenang. Sebagai contoh, RGB nilai
integer {f (x, y)} ditangkap oleh kamera harus dikonversi ke kontinyu (real)
nilai YCbCr untuk manipulasi lebih
lanjut.
4.4 Joint
Photographic Experts Group (JPEG)
Ada banyak parameter yang terkait dengan proses
kompresi JPEG. Dengan menyesuaikan parameter, seseorang dapat trade off ukuran
gambar dikompresi terhadap kualitas gambar direkonstruksi pada rentang yang
sangat luas. Misalnya, kualitas gambar dapat terdegradasi dengan efek gumpal
jelas pada rasio kompresi yang lebih tinggi dari 100, atau kualitas gambar juga
dapat hampir tidak bisa dibedakan dari aslinya dengan rasio kompresi sekitar 3.
4.4.1 Source
image data preparation: chroma subsampling
Data sumber gambar yang dibahas dalam Gambar 4.7 dan
data citra rekonstruksi pada Gambar 4.8 terutama untuk data gambar
tunggal-komponen seperti gambar grayscale. Alasan untuk melakukan transformasi
ini warna adalah bahwa kita mampu untuk menghilangkan informasi lebih lanjut
dalam komponen chrominance daripada di komponen luminance, karena mata manusia
kurang sensitif terhadap isi chroma-frekuensi tinggi daripada isi pencahayaan
highfrequency.
4.4.2
Block-based discrete cosine transform
Untuk setiap gambar komponen, dengan atau tanpa
subsampling kroma, kami akan mengelompokkan nilai piksel {f (x, y)} menjadi 8 x
8 blok untuk discrete cosine transform (DCT), yang
menciptakan nyata dihargai (bukan kompleks dihargai,
seperti yang dihasilkan oleh Transformasi Fourier) dan peta frekuensi energi
kompak {F (u, v)} dari data dua dimensi.
FDCT dapat dipandang sebagai analisa harmonik dan
IDCT sebagai synthesizer harmonis. Output dari FDCT adalah satu set 64
basis-sinyal amplitudo atau Koefisien DCT (11-12 bit per koefisien), yang
nilainya ditentukan secara unik oleh sinyal input 64-titik tertentu. Koefisien
dengan frekuensi nol di kedua dimensi disebut koefisien DC dan sisanya 63
koefisien disebut koefisien AC.
4.4.3 Quantization
of DCT coefficients
Setelah keluaran dari FDCT, masing-masing dari 64
koefisien DCT F (u, v) secara seragam dikuantisasi menggunakan 64-elemen tabel
kuantisasi prespecified di mana masing-masing koefisien dibagi oleh tabel
terpisah entri Q (u, v), di mana setiap entri menentukan ukuran langkah
quantizer untuk koefisien DCT yang sesuai. Operasi kuantisasi dapat dinyatakan
sebagai berikut :
4.4.4 DC
coding and zigzag sequence
Setelah kuantisasi, koefisien DC, yang biasanya
memiliki nilai cukup besar, diperlakukan secara terpisah dari koefisien AC 63.
Karena ada korelasi biasanya kuat antara koefisien DC yang berdekatan 8x8 blok,
koefisien DC terkuantisasi dikodekan sebagai perbedaan dari istilah DC dari
blok sebelumnya dalam urutan pengkodean.
4.4.5 Entropy
coding
Entropy coding kemudian digunakan untuk mencapai
kompresi tambahan losslessly dengan pengkodean multi-simbol RLC urutan
koefisien DCT terkuantisasi lebih kompak, dengan menggunakan karakteristik
statistik mereka.
Koefisien DC dan 2-tupel representasi RLC koefisien
AC terkuantisasi selanjutnya diubah menjadi sebuah perwakilan intermedit,
seperti yang ditunjukkan di atas. Lebih khusus, representasi menengah [S, V]
untuk dikuantisasi DC koefisien perbedaan dengan nilai "V = 3"
ditambahkan dengan kategori ukuran "S = 2" atas dasar jangkauan
besarnya.
4.4.6 Header
information and JPEG decoding
Dalam sebuah "pertukaran" file JPEG normal,
semua parameter kompresi termasuk dalam header, sehingga decoder dapat
membalikkan proses. Parameter ini meliputi tabel kuantisasi dan pengkodean
Huffman tabel. Untuk aplikasi khusus dalam sistem tertutup, spesifikasi
memungkinkan meja tersebut harus dihilangkan dari file, ini akan menghemat
beberapa ratus byte overhead tetapi itu berarti bahwa decoder harus tahu
apriori tabel yang digunakan oleh kompresor.
4.4.7 Trading off
compression and picture quality
Untuk gambar berwarna dengan adegan cukup kompleks,
semua mode berbasis DCT operasi biasanya menghasilkan tingkat kualitas gambar
yang tercantum di bawah untuk rentang ditunjukkan kompresi "bit per
pixel" berarti jumlah bit di compress gambar, termasuk komponen chrominance,
dibagi dengan jumlah sampel dalam komponen pencahayaan.
4.4.8 JPEG
progressive mode
Modus progresif JPEG dimaksudkan untuk mendukung
real-time transmisi gambar, di mana preview berkualitas rendah dapat dikirim
diikuti sangat cepat dengan versi halus sebagai waktu memungkinkan. Mode ini
terdiri dari FDCT yang sama dan langkah-langkah kuantisasi seperti yang
digunakan oleh modus berurutan dasar. Perbedaan utama adalah bahwa setiap
komponen gambar dikodekan dalam beberapa scan daripada dalam satu scan.
Dalam rangka untuk mencapai transmisi progresif,
memori penyangga berukuran gambar diperlukan pada output dari quantizer,
sebelum masukan ke encoder entropi. Setelah setiap blok koefisien DCT
terkuantisasi, akan disimpan dalam buffer memori koefisien, dimana
terkuantisasi DCT koefisien informasi dapat dilihat sebagai sebuah persegi
panjang yang sumbu adalah koefisien DCT (dalam zigzag order) dan amplitudo
mereka.
4.4.9 JPEG
hierarchical mode
Modus hirarkis digunakan untuk merepresentasikan
sebuah citra di beberapa resolusi, misalnya, untuk kompres gambar dalam hal 256
· 256, 512 · 512, dan 1024 · 1024. Menggunakan konsep skala spasial, gambar
resolusi tinggi dapat dikodekan sebagai perbedaan dari gambar berikutnya yang
lebih kecil dan dengan demikian akan membutuhkan banyak lebih sedikit bit
daripada jika mereka disimpan secara independen pada resolusi yang lebih
tinggi. Namun, jumlah bit akan lebih besar dari yang dibutuhkan untuk menyimpan
hanya kerangka resolusi tertinggi dalam bentuk dasar.
4.4.10 JPEG
lossless mode
Karena kesalahan pembulatan diperkenalkan oleh
kuantisasi koefisien DCT, lossless modus JPEG tidak bisa lagi menggunakan DCT.
Untuk alasan yang sama, seseorang tidak akan biasanya menggunakan konversi
warna-ruang atau downsampling, meskipun ini diijinkan oleh standar. The
lossless modus hanya kode, menggunakan pengkodean entropi, perbedaan antara
setiap pixel dan "prediksi" nilai untuk pixel mana encoders dapat
menggunakan presisi sumber gambar dari dua hingga 16 bit per sampel. Prediktor
A menggabungkan nilai hingga tiga sampel tetangga (A, B, dan C) untuk membentuk
prediksi sampel X. Prediksi ini kemudian dikurangi dari nilai sebenarnya dari
sampel X, dan perbedaan dikodekan losslessly oleh salah satu metode pengkodean
entropi, Huffman atau aritmetika.
4.4.11 JPEG
codestream
4.5 JPEG2000
Terlepas dari semakin populernya gambar JPEG coding,
terutama di World Wide Web dan masih kamera digital, ada pengamatan lebih dan
lebih dari JPEG bila diterapkan semakin banyak aplikasi baru yang lebih canggih
dan ditingkatkan dan fungsi yang dituntut dari coding gambar.
Lebih khusus, kekurangan adalah sebagai berikut :
(1). Distortion
and artifacts
(2). Ineffective
handling of high-quality images
(3). Lack of
effective color-space support
(4). Ineffective
progressive and hierarchical modes
(5). Poor
lossless compression performance
4.5.1
Technical overview of JPEG2000
Gambar 4.15 mengilustrasikan blok bangunan dasar dari
JPEG2000: langkah preprocessing yang biasanya terdiri dari ubin, tingkat DC
pergeseran, dan transformasi multi-komponen (digunakan untuk input warna RGB),
kemudian DWT, diikuti oleh quantizer (untuk kompresi lossy hanya ), seorang
coder entropi (CABAC), dan, akhirnya, langkah organisasi bitstream untuk
mempersiapkan codestream akhir dari gambar terkompresi.
4.5.2 JPEG2000
for Digital Cinema Initiatives
Sebuah sistem sinema digital dapat dibagi menjadi
empat tahap (lihat Gambar 4.31): menguasai, transportasi, penyimpanan dan
pemutaran, dan proyeksi. Pada tahap mastering film dikompresi, dienkripsi, dan
dikemas untuk pengiriman ke bioskop. Data tersebut kemudian diangkut ke lokasi
pameran, di mana itu adalah ecrypted, tidak dikompresi, dan diputar ulang.
Usaha DCI sedang mencari algoritma kompresi yang
merupakan standar terbuka, sehingga banyak produsen hardware akan mampu
membangun sistem sinema digital. Algoritma kompresi yang diperlukan untuk
mendukung kedalaman bit yang tinggi dan perangkat-independen ruang warna XoYoZo
tanpa subsampling kroma.
Ada beberapa persyaratan khusus yang dikenakan pada
JPEG2000 untuk digunakan dalam DCI. Untuk contoh, ubin gambar dianulir, yaitu,
seluruh gambar harus dikodekan sebagai ubin tunggal. Jumlah maksimum tingkat
wavelet-transform adalah lima untuk konten 2K dan enam untuk konten 4K. Ukuran
codeblock dibatasi menjadi 32 · 32 dan ukuran polisi di semua resolusi
ditetapkan menjadi 256 x 256, kecuali untuk subband frekuensi terendah, di mana
ukuran polisi 128 x 128 yang digunakan.
4.5.3 New
parts of JPEG2000
Pada tahun 2002, komite JPEG mulai menyelidiki empat
area aplikasi yang dianggap penting bagi JPEG 2000, dan secara resmi mendirikan
empat bagian baru dari JPEG2000 untuk mengatasi aplikasi ini: JPIP, JPSEC,
JP3D, dan JPWL, masing-masing. Bagian-bagian baru ini dirancang untuk memenuhi
kebutuhan standarisasi area aplikasi spesifik dimana set kaya teknologi dari
JPEG2000 berlaku.
JPSEC-JPEG2000 Part 8: Secure JPEG2000
Mind Map Digital Image Coding