Pernah terfikir bagaimana telefon atau kamera anda boleh menangkap gambar dan dalam sekelip mata menyimpannya sebagai JPEG - lebih kecil, lebih pantas, dan masih kelihatan tajam? Di sebalik tabir, terdapat proses yang cekap yang mengecilkan fail imej yang besar kepada sebahagian kecil daripada saiz asalnya sambil mengekalkan kualiti yang tinggi. Tetapi bagaimana sebenarnya ia berfungsi? Hari ini, kami akan terangkan secara terperinci tentang Pemampatan JPEG, dan menghuraikan setiap langkah dengan istilah yang ringkas supaya anda benar-benar faham proses pemampatan imej ini.
Apakah JPEG?
JPEG (singkatan bagi Joint Photographic Experts Group) ialah salah satu format imej yang paling biasa digunakan. Ia pilihan utama untuk menyimpan foto digital. Kelebihan utama JPEG ialah keupayaannya memampatkan fail imej, menjadikannya jauh lebih kecil tanpa kehilangan kualiti yang ketara.
Sebagai contoh, satu imej berkualiti tinggi tanpa mampatan boleh bersaiz sehingga 46MB. Selepas dimampatkan ke JPEG, imej yang sama boleh mengecil sehingga hanya 4.1MB! Tetapi bagaimana ia melakukannya sambil mengekalkan ketajaman imej?
Jawapannya terletak pada compression process, yang memanfaatkan cara mata kita berfungsi dan membuang data yang tidak diperlukan.
Apa Yang Dilakukan JPEG?
Secara ringkas, JPEG berfungsi dengan menganalisis imej dan membuang elemen yang mata kita sukar nampak. Apabila anda memampatkan imej dengan JPEG, anda boleh mengawal berapa banyak mampatan yang digunakan. Dengan melaraskan tetapan "quality", anda boleh tentukan berapa banyak ruang yang ingin dijimatkan. Apabila kualiti dikurangkan daripada 100% ke 0%, saiz fail turut berkurangan.
Apabila anda memampatkan lebih banyak, resolusi gambar kekal sama, tetapi anda mungkin mula nampak beberapa kecacatan atau "artifacts" muncul. Kecacatan ini kelihatan seperti kotak-kotak kecil, tetapi selalunya sukar dilihat kecuali anda zum masuk. Matlamat JPEG ialah menjadikan fail sekecil mungkin tanpa menjadikan imej kelihatan teruk pada mata manusia.
Langkah-Langkah Pemampatan JPEG
Pemampatan JPEG bukan sekadar satu helah tunggal, tetapi satu siri langkah pintar yang direka untuk mengurangkan saiz imej. Mari lihat lima langkah utama yang menjadikan JPEG begitu cekap.
Langkah 1: Penukaran Ruang Warna
Imej terdiri daripada piksel, dan setiap piksel mempunyai komponen merah, hijau, dan biru (RGB) yang digabungkan untuk menghasilkan warna. JPEG bermula dengan menukar nilai RGB ini kepada ruang warna yang berbeza:
- Luminans (Kecerahan): Ini mewakili kecerahan atau tahap cahaya sesuatu piksel dan penting untuk menentukan kontras keseluruhan imej.
- Krominans (Warna): Mewakili maklumat warna, termasuk rona (hue) dan ketepuan (saturation).
Penukaran ini memanfaatkan fakta bahawa mata manusia lebih sensitif terhadap kecerahan (luminans) berbanding warna (krominans). Dengan mengasingkan kecerahan daripada warna, JPEG membolehkan pengurangan data yang lebih disasar dalam langkah seterusnya sambil mengekalkan butiran visual penting.
Walaupun tiada data hilang dalam langkah ini, ia menyediakan asas untuk pemampatan yang lebih cekap.
Langkah 2: Pensampelan Turun Krominans/Chroma Subsampling
Chroma Subsampling ialah ialah teknik yang digunakan selepas penukaran ruang warna. Ingat bagaimana kami jelaskan bahawa mata kita tidak begitu baik dalam melihat warna (krominans) berbanding kecerahan (luminans)?
JPEG memanfaatkan fakta ini dengan mengurangkan jumlah data warna. Ia mengecilkan imej krominans biru dan merah dengan mempuratakan nilainya dalam blok empat piksel. Ini menjadikan data warna jauh lebih kecil sambil mengekalkan luminans (kecerahan) tanpa perubahan. Pada tahap ini, imej sudah dimampatkan kira-kira separuh!
Langkah 3: Transformasi Kosinus Diskret (DCT)
Transformasi Kosinus Diskret (DCT) ialah teknik matematik yang digunakan untuk menukar data imej daripada domain spatial (di mana imej diwakili sebagai grid piksel) kepada domain frekuensi. Proses ini membantu mengenal pasti bahagian imej yang mengandungi maklumat visual paling penting dan bahagian yang boleh dibuang.
DCT memecahkan imej kepada blok 8x8 dan menukar setiap blok kepada satu set nilai frekuensi. Frekuensi lebih tinggi, yang mewakili perubahan pantas dalam nilai piksel seperti pinggir atau hingar, selalunya kurang ketara kepada mata manusia dan boleh dipermudah atau dibuang.
Langkah 4: Kuantisasi
Selepas DCT digunakan, data frekuensi yang terhasil akan melalui kuantisasi. Dalam langkah ini, julatan nilai frekuensi dikurangkan dengan membahagikannya dengan set pemalar yang dipanggil jadual kuantisasi. Proses ini pada asasnya membundarkan nilai frekuensi untuk memudahkannya.
Nilai frekuensi yang lebih tinggi dikuantisasikan dengan lebih kuat, bermakna ia kehilangan lebih banyak ketepatan kerana ia kurang penting kepada kualiti imej keseluruhan. Langkah keempat ini mengurangkan jumlah data yang diperlukan untuk mewakili imej, menjadikan fail lebih kecil. Namun, kuantisasi yang terlalu tinggi boleh menyebabkan artifak yang ketara, seperti kelihatan berblok atau kabur, terutamanya pada tahap pemampatan yang lebih tinggi.
Langkah 5: Pengekodan Run Length dan Huffman
Selepas kuantisasi, data masih belum cukup padat untuk penyimpanan yang cekap. Di sinilah Run Length Encoding (RLE) dan Pengekodan Huffman digunakan.
Mula-mula, RLE digunakan untuk memudahkan jujukan panjang data berulang (seperti sifar) dengan menyimpan bilangan ulangan bukannya setiap nilai secara individu. Kemudian, Pengekodan Huffman digunakan, satu teknik yang menggantikan nilai yang kerap muncul dengan kod bit yang lebih pendek, menjadikan fail lebih kecil lagi.
These two kaedah pengekodan ini bekerjasama untuk mengurangkan saiz fail dengan ketara tanpa mengorbankan banyak kualiti imej!
Nota Tambahan
Walaupun JPEG ialah format yang sangat cekap, terdapat beberapa perkara penting untuk dipertimbangkan:
- Tahap Pemampatan: JPEG membenarkan pengguna memilih tahap pemampatan, tetapi pemampatan yang lebih tinggi mengurangkan saiz fail dan boleh menghasilkan artifak ketara seperti pinggir kabur atau pikselasi. Ini berlaku apabila nilai dalam jadual kuantisasi terlalu tinggi, yang menyebabkan lebih banyak sifar ditambah, menjadikan fail lebih kecil tetapi dengan mengorbankan kualiti imej.
- Kehilangan Data Frekuensi Tinggi: Kuantisasi mengurangkan ketepatan data frekuensi tinggi (perincian seperti pinggir tajam), sebab itu JPEG sesuai untuk tekstur yang licin tetapi boleh bermasalah dengan garisan tajam dan grafik vektor.
- Tidak Sesuai untuk Grafik Vektor: JPEG bukan pilihan terbaik untuk memampatkan grafik vektor kerana ia boleh menyebabkan artifak ketara pada sempadan bentuk atau garisan.
Walaupun ada had ini, JPEG kekal sebagai format imej paling popular, sebahagiannya kerana ia lama, mudah difahami dan bebas royalti. Namun, format lebih baharu seperti WebP atau HEIF menawarkan kadar pemampatan yang lebih baik tanpa menjejaskan kualiti, menjadikannya alternatif yang menarik dalam situasi tertentu.
Kesimpulan
Algoritma pemampatan JPEG ialah pencapaian penting dalam pengurusan data imej. Dengan memecahkan imej kepada blok yang lebih kecil, menggunakan pelbagai transformasi matematik, dan menggunakan teknik pengekodan cekap seperti Run Length dan Pengekodan Huffman, ia membolehkan kita menyimpan imej berkualiti tinggi dalam saiz fail yang jauh lebih kecil.
Walaupun JPEG mempunyai beberapa batasan, terutamanya dengan tahap pemampatan yang tinggi atau grafik vektor, penggunaan meluasnya dan keupayaannya memberikan hasil yang baik untuk imej fotografi menjadikannya satu piawaian yang kekal.