Pengantar Kompresi JPEG
Dalam tutorial terakhir kami tentang kompresi gambar, kami membahas beberapa teknik yang digunakan untuk kompresi
Kami akan membahas kompresi JPEG yang merupakan kompresi lossy, karena beberapa data pada akhirnya hilang.
Mari kita bahas dulu apa itu kompresi gambar.
Kompresi gambar
Kompresi citra merupakan metode kompresi data pada citra digital.
Tujuan utama dalam kompresi gambar adalah:
- Simpan data dalam bentuk yang efisien
- Mengirimkan data dalam bentuk yang efisien
Kompresi gambar bisa menjadi lossy atau lossless.
Kompresi JPEG
JPEG adalah singkatan dari kelompok pakar fotografi Bersama. Ini adalah standar antar-nasional pertama dalam kompresi gambar. Ini banyak digunakan saat ini. Ini bisa menjadi lossy dan juga lossless. Tetapi teknik yang akan kita bahas di sini hari ini adalah teknik kompresi lossy.
Cara kerja kompresi jpeg
Langkah pertama adalah membagi gambar menjadi blok-blok yang masing-masing memiliki dimensi 8 x8.
Sebagai catatan, katakanlah gambar 8x8 ini berisi nilai-nilai berikut.
Kisaran intensitas piksel sekarang adalah dari 0 hingga 255. Kami akan mengubah kisaran dari -128 menjadi 127.
Pengurangan 128 dari setiap nilai piksel menghasilkan nilai piksel dari -128 menjadi 127. Setelah dikurangi 128 dari masing-masing nilai piksel, kita mendapatkan hasil sebagai berikut.
Sekarang kita akan menghitung menggunakan rumus ini.
Hasilnya berasal dari ini disimpan dalam misalkan matriks A (j, k).
Ada matriks standar yang digunakan untuk menghitung kompresi JPEG, yang diberikan oleh matriks yang disebut matriks Luminance.
Matriks ini diberikan di bawah ini
Menerapkan rumus berikut
Kami mendapatkan hasil ini setelah mendaftar.
Sekarang kita akan melakukan trik sebenarnya yang dilakukan dalam kompresi JPEG yaitu gerakan ZIG-ZAG. Urutan zig zag untuk matriks di atas ditampilkan di bawah ini. Anda harus melakukan zig zag sampai Anda menemukan semua nol di depan. Karenanya gambar kita sekarang dikompresi.
Meringkas kompresi JPEG
Langkah pertama adalah mengubah gambar menjadi Y'CbCr dan cukup memilih saluran Y 'dan memecah menjadi 8 x 8 blok. Kemudian mulai dari blok pertama, petakan kisaran dari -128 hingga 127. Setelah itu Anda harus mencari transformasi Fourier diskrit dari matriks tersebut. Hasilnya harus dihitung. Langkah terakhir adalah menerapkan pengkodean dengan cara zig zag dan melakukannya sampai Anda menemukan semua nol.
Simpan larik satu dimensi ini dan Anda selesai.
Note. You have to repeat this procedure for all the block of 8 x 8.