Pada bagian ke dua ini akan di bahas proses transformasi DCT (Discrete Cosine Transform).
Sebelum berlanjut, perlu di ingat kembali pada bagian sebelumnya, 1 lembar gambar berwarna dapat dibayangkan terdiri dari 3 lembar gambar: 1 gambar Red (dan gradasi Red), 1 gambar Green (dan gradasi Green), dan 1 gambar Blue (dan gradasi Blue).
3 lembar gambar ini, di konversi menjadi 3 lembar gambar baru yaitu: 1 lembar gambar Y, 1 lembar gambar Cb, 1 lembar gambar Cr. Ukuran kertas gambar Cb dan Cr separoh dari ukuran kertas gambar Y.
Selanjutnya masing-masing gambar: Y, Cb, dan Cr dilakukan transformasi DCT kepadanya.
Kenapa perlu DCT? Apa urgensi atau manfaat dilakukan DCT ini?
Pada dasarnya DCT ini mentransformasikan nilai pixel-pixel gambar dari domain spasial ke domain frekuensi. Agak sulit memang membayangkan kalimat ini "mengkonversi dari domain spasial ke domain frekuensi".
Untuk membayangkan diberikan ilustrasi sbb:
Misal ukuran gambar adalah 8x8 pixel (8 horizontal, 8 vertikal), artinya ada 64 buah pixel.
Karena 1 pixel Y mewakili 8 bit artinya nilai pixel Y berkisar antara 0 sampai 255:
0 = hitam
127= abu-abu
255=putih
Apabila 64 pixel tsb di urutkan dari urutan pixel 1 sampai pixel 64
p1, p2, p3, p4, ...., p64
dan ambil contoh nilai pixelnya sbb:
7, 20, 100, 56, 84, 230, 125, 4 ..., 39
Urutan tsb kita namakan domain spasial (domain ruang).
Apabila kita punya persamaan cosinus sbb:
c1, c2, c3, c4, ..., c64
dengan
c1 = p1 cos(z) + p2 coz (2z) + p3 cos (3z) + ... p64 cos (64z) dengan z=0
c2 = p1 cos(z) + p2 coz (2z) + p3 cos (3z) + ... p64 cos (64z) dengan z=1
...
c64 = p1 cos(z) + p2 coz (2z) + p3 cos (3z) + ... p64 cos (64z) dengan z=63
Nah akan didapat nilai baru c1, c2, c3 sd c64. Nilai baru ini disebut domain frekuensi.
Jadi transformasi DCT ini sederhananya merubah:
p1, p2, p3, p4, ...., p64
menjadi
c1, c2, c3, c4, ..., c64
Apa urgensi nya megubah dari domain spasial ke domain frekuensi?
Urgensinya begini:
Apabila kita lakukan transformasi DCT, maka nilai - nilai awal akan besar, sedangkan nilai-nilai akhir akan bernilai kecil ( apabila di bagi dengan Qunatization akan mendekati 0).
Nilai-nilai awal (frekuensi cosinus rendah) c1, c2, c3, ..., c12 bernilai besar
Nilai-nilai akhir (frekuensi cosinus tinggi) c13, c14, c15, ..., c64 bernilai kecil (mendekati 0)
Artinya apa?
Artinya dengan banyaknya nilai c yang bernilai 0, maka data dapat di kompress lagi. Itulah penyebab gambar JPEG ukuran filenya bisa menjadi sangat kecil. Sehingga dalam file bisa di ringkas penulisannya (hanya untuk ilustrasi) misal: c1:5,c2:6,c3-c64:0 (asumsi dari c3 sd c64 nilai perhitungan cosinusnya sudah sama dengan 0). Ini sudah menghemat sekian byte penulisan file.
Pada bagian 3 kita akan pelajari algoritma DCT ini dalam bahasa programming agar semakin jelas.
No comments:
Post a Comment