Naisip mo na ba kung paano nakakakuha ng larawan ang iyong phone o camera at, makalipas ang ilang sandali, naka-store na ito bilang JPEG-mas maliit, mas mabilis, at malinaw pa rin ang itsura? Sa likod nito, may isang mahusay na proseso na gumagana, na nagpapaliit ng napakalalaking image file hanggang sa maliit na bahagi ng orihinal na laki habang pinapanatili ang mataas na kalidad. Pero paano ito talaga gumagana? Ngayon, titingnan natin ang lahat tungkol sa JPEG compression, at iho-break down ang bawat hakbang sa simpleng paraan para lubos mong maunawaan ang tila mahiwagang proseso ng image compression na ito.
Ano ang JPEG?
JPEG (short for Joint Photographic Experts Group) ay isa sa pinakakaraniwang image format. Ito ang karaniwang pinipili para sa pag-store ng digital photos. Ang tunay na lakas ng JPEG ay ang kakayahan nitong i-compress ang mga image file, ginagawang mas maliit ang mga ito nang hindi halatang bumababa ang kalidad.
Halimbawa, ang isang high-quality na uncompressed image ay maaaring umabot ng 46MB. Pagkatapos i-compress sa JPEG, ang parehong larawan ay maaaring lumiit hanggang 4.1MB na lang! Pero paano ito nagagawa habang nananatiling malinaw ang larawan?
Makikita ang sagot sa compression process, na sinasamantala ang paraan ng pagtingin ng ating mga mata at inaalis ang hindi kailangang data.
Ano ang Ginagawa ng JPEG?
Sa madaling salita, gumagana ang JPEG sa pamamagitan ng pagsusuri sa larawan at pag-alis ng mga elementong hindi madaling makita ng ating mga mata. Kapag nagco-compress ka ng image gamit ang JPEG, maaari mong kontrolin kung gaano kalakas ang compression. Sa pag-adjust ng "quality" setting, maaari mong piliin kung gaano karaming espasyo ang gusto mong masave. Habang bumababa ang quality mula 100% hanggang 0%, ang laki ng file ay bumababa rin.
Habang mas pinipiga ang compression, nananatili ang resolution ng larawan, pero maaari kang makakita ng ilang depekto o "artifacts" na lumilitaw. Mukha itong maliliit na parisukat, pero madalas hindi halata maliban kung naka-zoom in. Layunin ng JPEG na gawing maliit hangga't maaari ang file nang hindi nagmumukhang pangit ang larawan sa mata ng tao.
Mga Hakbang ng JPEG Compression
JPEG compression ay hindi lang iisang magic trick, kundi serye ng matatalinong hakbang na idinisenyo para paliitin ang laki ng image. Tingnan natin ang limang pangunahing hakbang na nagpapahusay sa JPEG.
Hakbang 1: Color Space Conversion
Binubuo ang mga larawan ng pixels, at bawat pixel ay may red, green, at blue (RGB) components na pinagsasama para makabuo ng mga kulay. Sinisimulan ng JPEG sa pamamagitan ng pag-convert ng mga RGB values sa ibang color space:
- Luminance (Brightness): Ito ang kumakatawan sa liwanag o dilim ng isang pixel at mahalaga sa pagtakda ng overall contrast ng larawan.
- Chrominance (Color): Kumakatawan sa color information, kabilang ang hue at saturation.
Sinasamantala ng conversion na ito ang katotohanang mas sensitibo ang mata ng tao sa brightness (luminance) kaysa sa kulay (chrominance). Sa pamamagitan ng paghihiwalay ng brightness at color, nagagawa ng JPEG na magbawas ng data nang mas tutok sa mga susunod na hakbang habang pinananatili ang mahahalagang visual na detalye.
Bagama't walang nawawalang data sa hakbang na ito, inihahanda nito ang larawan para sa mas episyenteng compression.
Hakbang 2: Chrominance Downsampling/Chroma Subsampling
Chroma Subsampling ay isang ay isang technique na ina-apply pagkatapos ng color space conversion. Naalala mo ba kung paano natin sinabi na hindi ganoon kagaling ang ating mga mata sa pagkakita ng mga kulay (chrominance) kumpara sa brightness (luminance)?
Sinusulit ito ng JPEG sa pamamagitan ng pagbabawas ng dami ng color data. Pinapaliit nito ang blue at red chrominance images sa pamamagitan ng pag-average ng mga ito sa blocks na tig-aapat na pixels. Mas pinapaliit nito ang color data habang nananatiling pareho ang luminance (brightness). Sa puntong ito, halos kalahati na ang na-compress sa image!
Hakbang 3: Discrete Cosine Transform (DCT)
Ang Discrete Cosine Transform (DCT) ay isang mathematical technique na ginagamit para i-convert ang image data mula sa spatial domain (kung saan kinakatawan ang image bilang grid ng pixels) papunta sa frequency domain. Tinutulungan ng prosesong ito na tukuyin kung aling bahagi ng larawan ang naglalaman ng pinakamahalagang visual na impormasyon at kung alin ang maaaring itinapon.
Hinahati ng DCT ang imahe sa mga 8x8 na blok at kino-convert ang bawat blok sa koleksyon ng mga frequency value. Mas matataas na frequency, na kumakatawan sa mabilis na pagbabago sa pixel values, gaya ng mga gilid o ingay, ay kadalasang hindi gaanong napapansin ng taong mata at maaaring pasimplihin o alisin.
Hakbang 4: Quantization
Kapag na-apply na ang DCT, ang resultang frequency data ay sasailalim sa quantization. Sa hakbang na ito, ang saklaw ng mga frequency value ay pinapaliit sa pamamagitan ng paghahati sa kanila gamit ang set ng mga constant na tinatawag na quantization table. Ang proseso ay parang pag-round off ng mga frequency value para pasimplihin ang mga ito.
Mas matataas na frequency value ang mas mabigat na na-qua-quantize, ibig sabihin mas marami silang nawawalang precision dahil mas hindi sila ganoon kahalaga sa kabuuang kalidad ng imahe. Pinapaliit ng ikaapat na hakbang na ito ang dami ng data na kailangan para i-represent ang imahe, kaya mas maliit ang file. Gayunpaman, sobra-sobrang quantization ay maaaring magdulot ng nakikitang artifacts, gaya ng pagiging bloky o malabo, lalo na sa mas matataas na compression level.
Hakbang 5: Run Length at Huffman Encoding
Pagkatapos ng quantization, hindi pa rin sapat na compact ang data para sa episyenteng pag-store. Dito papasok ang Run Length Encoding (RLE) at Huffman Encoding sa proseso.
Una, ginagamit ang RLE para pasimplihin ang mahahabang sunod-sunod na paulit-ulit na data (tulad ng mga zero) sa pamamagitan ng pag-store ng bilang ng mga pag-uulit sa halip na bawat indibidwal na value. Pagkatapos, ina-apply ang Huffman Encoding, isang teknik na pumapalit sa madalas lumabas na mga value ng mas maiikling bit code, na lalo pang nagpapaliit sa file.
These two mga encoding method na ito ay sabay na gumagana para lubos na paliitin ang laki ng file nang hindi isinusuko ang malaking bahagi ng kalidad ng imahe!
Karagdagang Tala
Bagama't napaka-episyente ng JPEG bilang format, may ilang mahahalagang bagay na dapat isaalang-alang:
- Compression Level: Pinapayagan ng JPEG ang mga user na pumili ng antas ng compression, ngunit ang mas mataas na compression ay nagpapaliit ng laki ng file at maaaring magpakita ng mga nakikitang artifact tulad ng malabong gilid o pixelation. Ito ay resulta ng masyadong matataas na value sa quantization table, na nagdudulot ng mas maraming zero, kaya mas maliit ang file ngunit kapalit nito ay kalidad ng imahe.
- High-Frequency Data Loss: Binabawasan ng quantization ang precision ng high-frequency data (mga detalye tulad ng matatalas na gilid), kaya maganda ang JPEG para sa makikinis na texture ngunit hirap ito sa matatalas na linya at vector graphics.
- Hindi Angkop para sa Vector Graphics: Hindi ideal ang JPEG para sa pag-compress ng vector graphics, dahil maaari itong magdulot ng kapansin-pansing artifacts sa mga hangganan ng mga hugis o linya.
Sa kabila ng mga limitasyong ito, nananatiling pinaka-popular na image format ang JPEG, bahagi dahil ito ay luma, mahusay nang naunawaan, at royalty-free. Gayunpaman, ang mas bagong mga format tulad ng WebP o HEIF ay nag-aalok pa ng mas mahusay na compression rates nang hindi isinusuko ang kalidad, kaya kaakit-akit na alternatibo ang mga ito sa ilang sitwasyon.
Pangwakas
Ang JPEG compression algorithm ay isang kapansin-pansing tagumpay sa pamamahala ng image data. Sa pamamagitan ng paghahati ng mga imahe sa mas maliliit na blok, pag-apply ng iba't ibang matematikal na transformasyon, at paggamit ng episyenteng encoding techniques tulad ng Run Length at Huffman Encoding, nagbibigay-daan ito na ma-store ang mga high-quality na imahe sa mas maliliit na file size.
Bagama't may ilang limitasyon ang JPEG, lalo na sa matataas na antas ng compression o sa vector graphics, ang malawak na paggamit nito at kakayahang magbigay ng magagandang resulta para sa mga photographic image ang dahilan kung bakit nananatili itong pamantayan.