JPEG. Algoritma komprési

Halo deui! Kuring mendakan tulisan ieu ditulis deui dina Méi 2019. Ieu mangrupikeun tuluyan tina séri artikel ngeunaan WAVE sareng JPEG, di dieu mimitina. Publikasi ieu bakal ngalebetkeun inpormasi ngeunaan algoritma panyandian gambar sareng formatna nyalira.

A ciwit sajarah

Hiji séndok artikel Wikipedia:

JPEG (Joint Photographic Experts Group) mangrupikeun salah sahiji format grafik raster populér anu dianggo pikeun nyimpen poto sareng gambar anu sami.

Standar ieu dikembangkeun ku Joint Photographic Experts Group dina taun 1991 pikeun komprési gambar anu éfisién.

Kumaha cara gambar tina atah ka JPEG?

Sababaraha urang nganggap yén gambar JPEG mangrupikeun data atah anu dikomprés nganggo metode Huffman, tapi ieu sanés leres. Sateuacan komprési kontrol, data ngarambat jauh.

Kahiji, modél warna dirobah tina RGB ka YCbCr. Malah aya algoritma khusus pikeun ieu - di dieu. Y teu keuna, sabab tanggung jawab kacaangan, sarta robah na bakal noticeable.

Hal kahiji anu kudu dipigawé kalayan gambar téh "nipis" (subsampling). Gampang kahartos: Asép Sunandar Sunarya 2x2 piksel dicandak, teras Cb sareng Cr dicandak - nilai rata-rata unggal komponén YCbCr tina 4 piksel ieu. Janten, urang meunang 6 bait, tinimbang 4 Y, 4 Cb, 4 Cr kami meunang 4 Y jeung Cb sarua jeung Cr pikeun tiap sahijina (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6). Malah dina skala 2x2, komprési lossy kalayan rasio komprési 2:1 disada padet. Ieu lumaku pikeun sakabéh gambar. Jeung saterusna - maranéhanana turun satengah ukuran. Sareng urang tiasa nganggo téknik ieu berkat persépsi warna urang. Hiji jalma bakal gampang perhatikeun bédana kacaangan, tapi henteu dina warna, upami rata-rata dina blok leutik piksel. Thinning ogé bisa dipigawé dina garis, 4 piksel horizontal sarta vertikal. Pilihan kahiji dianggo langkung sering. Upami kualitas gambar penting, maka decimation henteu dilaksanakeun pisan.
Ilustrasi visual ngeunaan thinning (Habr henteu ngijinkeun kuring nyelapkeun gif) - https://i.ibb.co/Rg5Th9H/150953010617579181.gif

Bagian utama persiapan

PrEP

Ayeuna datang bagian hardest jeung paling diperlukeun. Sakabéh gambar dibagi kana 8x8 blok (keusikan dipaké lamun resolusina teu kakalian sisi blok).

Ayeuna dilarapkeun ka unggal blok DCT (Transformasi Kosinus Diskrit). Dina bagian ieu, sagalana nu teu perlu dicokot kaluar tina gambar. Ngagunakeun DCT, anjeun kudu ngarti naha blok dibikeun (8× 8) ngajelaskeun sagala bagian monoton gambar: langit, témbok; atawa ngandung struktur kompléks (bulu, simbol, jsb). Éta logis yén 64 piksel warna sarupa bisa digambarkeun ku ngan 1, sabab ukuran blok geus dipikawanoh. Janten seueur pikeun komprési: 64 ka 1.

DCT ngarobah blok kana spéktrum, sarta dimana bacaan robah sharply, koefisien janten positif, sarta seukeut transisi, nu leuwih luhur kaluaran bakal. Dimana koefisien anu langkung luhur, gambar nunjukkeun transisi anu jelas dina warna sareng kacaangan, dimana éta langkung handap - parobihan lemah (lemes) dina nilai-nilai komponén YCbCr dina blok.

Kuantisasi

Setélan komprési parantos diterapkeun di dieu. Unggal koefisien dina unggal matriks 8x8 dibagi ku angka nu tangtu. Upami anjeun henteu ngirangan kualitas gambar saatos sadaya modifikasi, maka divisor kedah janten hiji. Upami mémori anu ditempatan ku poto ieu langkung penting pikeun anjeun, maka divisor bakal langkung ageung tibatan 1, sareng quotient bakal dibunderkeun. Tétéla yén sanggeus rounding anjeun mindeng mungkas nepi ka loba nol.

Kuantisasi dilakukeun pikeun nyiptakeun kamungkinan komprési anu langkung ageung. Di dieu Kang kumaha eta Sigana mah ngagunakeun conto quantizing grafik y = sin(x):

JPEG. Algoritma komprési

Komprési

Mimiti urang ngaliwat matriks dina pola zig-zag:

JPEG. Algoritma komprési

Simkuring meunang Asép Sunandar Sunarya hiji diménsi kalawan angka. Urang nempo yén aya loba enol di dinya, aranjeunna bisa dihapus. Jang ngalampahkeun ieu, tinimbang runtuyan loba nol, urang asupkeun 1 enol sarta sanggeus éta angka nunjukkeun jumlah maranéhanana dina urutan. Ku cara kieu anjeun tiasa ngareset kana 1/3 ukuran sakabéh Asép Sunandar Sunarya. Teras we ngan saukur niiskeun Asép Sunandar Sunarya ieu nganggo metode Huffman sareng nyerat kana file éta sorangan.

Dimana dipaké

Di mana-mana. Sapertos PNG, JPEG dianggo dina kaméra, OS (salaku logo perusahaan, ikon aplikasi, gambar leutik) sareng di sadaya daérah anu mungkin dimana gambar kedah disimpen sacara éfisién.

kacindekan

Di momen, pangaweruh ngeunaan JPEG kiwari berharga ukur keur kaperluan atikan, sabab geus diwangun di madhab sarta dioptimalkeun ku grup badag jalma, tapi granit elmu masih ngeunah.

sumber

Artikel ngeunaan YCbCr dina Wikipedia
Artikel Wikipedia ngeunaan JPEG
Sakedik ngeunaan PrEP tina pos Pikabu
Artikel Wikipedia ngeunaan PrEP

sumber: www.habr.com

Tambahkeun komentar