TE 6610 – Pengolahan Sinyal Multimedia Pengkodean Transform Transform DFT-2D DCT -2D Transform Coding
Idea Transform Coding Deretan data yg akan dikodekan dikonversikan ke deretan data baru menggunakan aturan transformasi Transformasikan input pixel x0,x1,...,xN-1 ke koefisien c0,c1,...,cN-1 (nilai real) Koefisien hasil transformasi mempunyai sifat kebanyakan dari koefisien mempunyai nilai dekat nol (kecil) Sebagian besar “energy” dimampatkan hanya pada beberapa koefisien Proses reversible – dapat kembali ke deretan original menggunakan inverse transformation Koefisien dikuantisasi scalar Ini adalah pengalokasian bit Koefisien penting, mendapat level kuantisasi yg lebih Hasil kuantisasi dikodekan dg entropy encoder Pengolahan Sinyal Multimedia Pengkodean Transform
Block Diagram of Transform Coding Pengolahan Sinyal Multimedia Pengkodean Transform
Skema Pengolahan Sinyal Multimedia Pengkodean Transform
Sifat Matematis Transformasi Transformasi Linier – didefinisikan dg suatu real matrix A = (aij) Matrix review: Pengolahan Sinyal Multimedia Pengkodean Transform
Matrix Review: Perkalian Mis A = (aij) adalah matrix n x m, dan B = (bij) adalah matrix m x k AB = C, dimana C =(cij) adalah matrix n x k didefiniskan dg Biasanya, AB ≠ BA Namun, (AB)C = A(BC) utk sembarang tiga matrix Pengolahan Sinyal Multimedia Pengkodean Transform
Matrix Review I = Identity matrix = diagonal memp nilai 1, dan bernilai 0 pd posisi lainnya Jika A adalah matrix n x n, maka AI = IA = A A-1 menyatakan inverse dari A, shg A A-1 = A-1A = I Jika A = (aij) maka AT= (aji) (disebut transpose) Jika A = (aij) dan B = (bij) maka A+B= (aij+bij) Jika A = (aij) dan adalah scalar, A = (aij) Pengolahan Sinyal Multimedia Pengkodean Transform
Transformasi Linier Transformasi Linier – Didefinisikan dg real matrix N x N, A = (aij) Mis. X = column vector dari N data points maka AX = column vector dari transformed data (juga menghasilkan N data points) A = forward transform A-1 = inverse transform Pengolahan Sinyal Multimedia Pengkodean Transform
Koefisien Pengolahan Sinyal Multimedia Pengkodean Transform
Contoh Transformasi Gunakan A utk transformasi sampel data (5, 11) Menghasilkan pemampatan (compaction) Pengolahan Sinyal Multimedia Pengkodean Transform
Sifat Matematis Transformasi Transformasi Linier – Didefinisikan dg suatu real matrix n x n, A = (aij) Transformasi orthonormal A-1 = AT Pengolahan Sinyal Multimedia Pengkodean Transform
Koefisien Pengolahan Sinyal Multimedia Pengkodean Transform
Mengapa Transformasi Orthonormal? Energi data sama dg energi koefisien Pengolahan Sinyal Multimedia Pengkodean Transform
Contoh Pemampatan (Compaction) Pengolahan Sinyal Multimedia Pengkodean Transform
Pemampatan Energi (Energy Compaction) Pada transform coding – pilih transformasi sehingga hanya subset dari koefisien-koefisien mempunyai nilai signifikan Kebanyakan energi terkandung pd satu subset koefisien yg penting Dikenal sbg ‘energy compaction’. Contoh - FT dari sinyal bandlimited: Pengolahan Sinyal Multimedia Pengkodean Transform
Coding Menggunakan Energy Compaction Energy compaction baik utk coding – hanya gunakan koefisien signifikan Jika jumlah koef signifikan << jumlah sample pd deretan original kompresi Dlm praktek: Koefisien signifikan dikodekan lebih akurat menggunakan bit lebih banyak Alokasikan jumlah bit lebih sedikit utk koefisien lainnya Pd decoder: Ambil kembali koefisien yg sdh dikodekan Rekonstruksi dg inverse transformation Pengolahan Sinyal Multimedia Pengkodean Transform
Discrete Fourier Transform 2D [DFT-2D] Discrete time Fourier transform [DTFT] menyediakan sebuah representasi Fourier dari discrete time signal. Akan tetapi selama DTFT merupakan fungsi dari variabel kontinyu w, maka dia tidak dapat langsung di terima pada komputasi digital. Untuk deretan dengan panjang terbatas, DTFT dapat dinyatakan sebagai Discrete Fourier Transform [DFT], yaitu sebuah fungsi dari variabel integer K. Maka dapat dikatakan DFT terdiri atas sample-sample DTFT, yaitu X(w1,w2) di : Sehingga : Pengolahan Sinyal Multimedia Pengkodean Transform
Discrete Fourier Transform 2D [DFT-2D]c Unitary DFT [Symmetric Form] Pengolahan Sinyal Multimedia Pengkodean Transform
Discrete Fourier Transform 2D [DFT-2D] Pengolahan Sinyal Multimedia Pengkodean Transform
Discrete Fourier Transform 2D [DFT-2D] Pengolahan Sinyal Multimedia Pengkodean Transform
Discrete Fourier Transform 2D [DFT-2D] Pengolahan Sinyal Multimedia Pengkodean Transform
Discrete Cosine Transform 2D [DCT-2D] Forward DCT [FDCT] mentranformasi sampel-sample citra [domain spatial] ke dalam sebuah susunan koefisien transform [domain transform]. Transformasi sebaliknya disebut Inverse DCT [IDCT] yaitu mentranformasi koefisien transform kedalam sample-sample citra. Forward dan Inverse Transform untuk kompresi citra dan video umumnya menggunakan 1-D atau 2-D. Versi 1-D mentrasformasi sebuah matrik sampel 1-D ke dalam matrik koefisien, sedangkan versi 2-D mentransformasi matrik 2-D [Blok] sampel kedalam blok koefisien. Pengolahan Sinyal Multimedia Pengkodean Transform
Discrete Cosine Transform 2D [DCT-2D] DCT mempunyai dua sifat utama untuk kompresi citra dan video yaitu : Mengkonsentrasikan energi citra kedalam sejumlah kecil koefisien [energi compaction] Meminimalkan saling ketergantungan diantara koefisien-koefisien [decorrelation]. Koefisien dengan nilai kecil dapat dibuang tanpa mempengaruhi secara signifikan kualitas citra Plot koefisien DCT 2-D Citra 80 x 80 pixel Energi dalam koefisien transform di konsentrasikan pojok kiri atas dari matrik koefisien. Koefisien ini berhubungan dengan frekuensi rendah. Terdapat puncak energi dan nilai koefisien akan berkurang dengan cepat sampai di pojok kanan bawah dari matrik.Koefisien yang berada pada pojok kanan bawah berhubungan dengan frekuensi tinggi. Pengolahan Sinyal Multimedia Pengkodean Transform
Discrete Cosine Transform 2D [DCT-2D] Forward DCT 2-D Dimana : Inverse DCT 2-D Pengolahan Sinyal Multimedia Pengkodean Transform
Contoh Blok 8 x 8 pixel dari citra Citra asli Pengolahan Sinyal Multimedia Pengkodean Transform
ALGORITMA CEPAT UNTUK DCT Separable Transform Untuk blok ukuran N x M = 8 x 8, 64 sampel citra. Masing-masing dari 64 koefisien FDCT merupakan fungsi pembobotan dari seluruh 64 sampel citra. Ini berarti akan dilakukan sebanyak 64 x 64 = 4096 operasi perkalian dan penjumlahan seluruh satu blok 8 x 8 FDCT. Pada Separable Transform, 2-D DCT dapat dihitung dalam dua tahapan yaitu : 1-D DCT untuk setiap baris, kemudian diikuti dengan 1-D DCT untuk setiap kolom [atau sebaliknya]. Pengolahan Sinyal Multimedia Pengkodean Transform
ALGORITMA CEPAT UNTUK DCT Separable Transform Forward DCT : 1-D FDCT [8 x 8] Dimana : Fx = 8 koefisien transform [0 – 7] Fi = 8 input sampel C(x) = konstanta [nilai sama dengan didepan] 2-D FDCT [8 x 8] Atau dapat dikatakan 2-D DCT : Pengolahan Sinyal Multimedia Pengkodean Transform
ALGORITMA CEPAT UNTUK DCT Separable Transform Invers DCT : 1-D IDCT [8 x 8] 2-D IDCT [8 x 8] Catatan : Algoritma ini memberikan dua keuntungan yaitu : Minimal komputasi : menurunkan jumlah operasi perkalian dan penjumlahan yaitu 2 x 8 x 64 = 1024. Operasi 1-D dan 2-D DCT diorganisasikan untuk mengeksploitasi kesimetrian operasi cosinus untuk meminimalkan perkalian dan penjumlahan. Keteraturan : perhitungan diorganisasikan untuk keteraturan aliran data dan urutan pemrosesan. Pengolahan Sinyal Multimedia Pengkodean Transform
ALGORITMA CEPAT UNTUK DCT Algoritma Diagram Alir Contoh : Dengan menggunakan separable Transform, hitung koefisien F2 dan Maka : Dengan melihat sifat kesimetrian fungsi kosinus : Pengolahan Sinyal Multimedia Pengkodean Transform
ALGORITMA CEPAT UNTUK DCT Algoritma Diagram Alir Dengan cara yang sama diperoleh : Kesimpulan : Pengolahan Sinyal Multimedia Pengkodean Transform
Potongan algoritma diagram alir untuk keluaran F2 dan F6 Pengolahan Sinyal Multimedia Pengkodean Transform
Algoritma diagram alir [Chen, Fralick dan Smith] Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Algoritma Transform Coding Membagi citra M x N kedalam sub-citra p x q atau blok-blok. Setiap blok ditransformasi dan dikodekan secara terpisah. Catatan : Dengan mengkodekan satu sub-citra (blok) pada satu waktu, maka coder dapat membuat karakteristik citra lokal secara adaptif Tranformasi pada ukuran sub-citra yang lebih kecil, lebih efisien untuk komputasi dan media penyimpanan. Akan tetapi ukuran yang lebih kecil akan membuat sedikit korelasi diantara intensitas pixel citra yang dapat dieksploitasi. Korelasi tinggi antara sub-citra bertetangga, tidak dapat dieksploitasi sepanjang tiap-tiap sub-citra dikodekan secara independen. Batasan ukuran sub-citra biasanya 8 x 8 atau 16 x 16 Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Metransformasi setiap sub-citra Bi , dimana i = 1,…, I (I = MN/pq) Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Menentukan koefisien-koefisien untuk dikodekan. Akibat sifat compaction energy, hanya sebagaian kecil dari koefisien transform yang perlu dikodekan. Dua pendekatan yang dapat digunakan untuk menentukan koefisien yang perlu dikodekan : Zonal Coding Hanya koefisien-joefisien dalam daerah yang dispesifikasikan yang dikodekan Beberapa faktor yang mempengaruhi zone dari daerah yang dispesikasikan diantara adalah metode transform dan jumlah bit yang dialokasikan. Contoh : DCT 2D Zone yang diarsir, banyak energi citra terkonsentrasi pada frekuensi rendah. Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Threshold Coding Koefisien-koefisien transform dibandingkan dengan sebuah threshold. Nilai yang lebih tinggi dari nilai threshold yang akan dikodekan. Lebih disukai Zonal coding : Dalam zonal coding, koefisien dengan amplituda kecil akan dikodekan dan sebaliknya amplituda besar akan dibuang Dalam threshold coding, semua amplituda besar akan dikodekan Dalam threshold coding, lokasi koefisien terkode tidak diketahui dan informasi tentang lokasi harus dienkodekan. Metode yang biasa digunakan disebut Run-Length coding Menentukan alokasi bit Mengalokasikan bit-bit antar sub-citra (bloks-blok) biasanya diberikan jumlah bit yang tetap Mengalokasikan bit-bit dalam blok (antar koefisien transform). Memberikan lebih banyak bit untuk koefisien-koefisien yang signifikan. Koefisien ini mempunyai ekspektasi varian yang besar, dimana ekspektasi varian dari setiap koefisien transform, variasinya sangat besar antar koefisien-koefisien. Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Kuantisasi Tahapan kuantisasi akan membuang informasi yang kurang penting yaitu informasi yang tidak berpengaruh secara signifikan terhadap visualisasi ketika sub-citra direkontruksi. Proses kuantisasi dapat dibedakan menjadi 2 (dua) bagian yaitu : Operasi di enkoder : mengkonversi koefisien-koefisien transform menjadi level-level kuantisasi. Operasi di dekoder : mengkonversi level-level menjadi koefisien transform rekontruksi, biasanya disebut inverse quantisation. Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Korelasi antara jumlah level-level [step] kuantiasi terhadap laju kompresi dan kualitas citra : Ukuran step kuantisasi besar, koefisien-koefisien yang signifikan akan diturunkan sedikit maka laju kompresi menjadi rendah dan rugi-rugi citra juga rendah. Ukuran step kuantisasi rendah [jarang], banyak koefisien-koefisien tranform dipaksa dibuang [bernilai 0], sehingga banyak informasi yang hilang. Laju kompresi tinggi tapi rugi-rugi citra rekontruksi menjadi besar. Fine kuantisasi coarse kuantisasi Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Rekontruksi terhadap sub-citra dengan menggunakan step kuantisasi besar [IDCT], menghasilkan kecocokan yang lebih baik terhadap blok citra asli Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Uniform Threshold Quantizer [UTQ] th = nilai threshold q = nilai ukuran step Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Terdapat dua kelas dari UTQ pada standar codec yaitu : UTQ tanpa Dead Zone : untuk kuantisasi pada koefisien DC, F[0,0] dari pengkodean blok intraframe Video UTQ dengan Dead Zone : untuk kuantiasasi koefisien AC dan koefisien DC interframe video Pada bagian pusat kuantizer, koefisien di kuantiasasi 0 Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Mengkodekan output kuantizer kedalam codeword Sebuah blok citra setelah pengkodean transform dan kuantisasi akan mengandung sedikit koefisien non-zero dan sejumlah besar koefisien nol.Data non-zero dapat secara efisien dikompress menggunakan metode kompresi secara statistik yaitu entropy coding. Dalam perancangan CODEC entropy, beberapa hal yang harus diperhatikan : Efisiensi kompresi yaitu menyatakan output model sumber dengan jumlah bit seminimal mungkin. Efisiensi komputasi yaitu rancangan CODEC harus mampu disesuaikan ketika diimplementasikan pada Platform software maupun hardware. Ketahanan terhadap error yaitu jika terjadi error pada transmisi, CODEC entropy harus mampu membuat pemulihan error dan membatasi propagasi error di dekoder. Enkoder entropy akan memetakan simbol-simbol input kedalam deretan data yang terkompress. Laju kompresi dapat dicapai dengan mengeksploitasi kelebihan susunan simbol-simbol input, dimana simbol yang sering terjadi direpresentasikan dengan jumlah bit sedikit dan sebaliknya. Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Re-order Koefisien Kuantisasi Koefisien terkuantisasi non-zero dari blok citra cendrung diclusterkan sepanjang pojok kiri atas, yaitu sepanjang frekuensi rendah. Nilai ini dapat digroupkan bersama-sama dalam deretan dengan mengurutkan kembali 64 koefisien menjadi urutan zigzag. Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Run-Level Coding Output dari proses re-order merupan susunan yang terdiri atas group koefisien non-zero diikuti oleh zeros. Tipe output ini dapat dinyatakan dengan sebagai sebuah susunan dari pasangan [run, level], dimana run menyatakan jumlah nol sebelum nilai tidak nol (non-zero) dan level menyatakan tanda dan magnituda dari koefisien non-zero. Pengolahan Sinyal Multimedia Pengkodean Transform
Transform Coding Entropy Coding Algoritma pengkodean entropy dibuat dengan memperhatikan frekuensi kejadian pasangan [run, level]. Kode word pendek diberikan untuk pasangan [run, level] yang sering terjadi dan sebaliknya. Pengolahan Sinyal Multimedia Pengkodean Transform