O'zbek

JPEG algoritmi bo'yicha to'liq qo'llanma: uning tamoyillari, qo'llanilishi, afzalliklari va kamchiliklari. JPEG siqish va raqamli tasvirlashga ta'sirini bilib oling.

Tasvirni siqish: JPEG algoritmining sirlarini ochish

Bugungi raqamli dunyoda tasvirlar hamma joyda. Ijtimoiy tarmoqlardan tortib veb-saytlar va mobil ilovalargacha, vizual kontent aloqa va axborot almashishda hal qiluvchi rol o'ynaydi. Biroq, yuqori aniqlikdagi tasvirlar sezilarli darajada saqlash joyi va o'tkazuvchanlikni talab qilishi mumkin, bu esa yuklanish vaqtining sekinlashishiga va saqlash xarajatlarining oshishiga olib keladi. Aynan shu yerda tasvirni siqish texnikasi yordamga keladi. Mavjud bo'lgan turli xil tasvirni siqish usullari orasida JPEG algoritmi eng keng tarqalgan va tan olingan standartlardan biri sifatida ajralib turadi. Ushbu maqola JPEG algoritmini, uning asosiy tamoyillarini, qo'llanilishini, afzalliklari va kamchiliklarini tushunish uchun to'liq qo'llanmani taqdim etadi.

Tasvirni siqish nima?

Tasvirni siqish - bu tasvir fayli hajmini uning vizual sifatini sezilarli darajada pasaytirmasdan kamaytirish jarayonidir. Maqsad, tasvirning qabul qilinadigan darajadagi ishonchliligini saqlab qolgan holda saqlash joyi va o'tkazuvchanlik talablarini minimallashtirishdir. Tasvirni siqish texnikasini keng ma'noda ikki toifaga bo'lish mumkin:

JPEG algoritmi bilan tanishuv

JPEG (Joint Photographic Experts Group - Birlashgan Fotografiya Ekspertlari Guruhi) - bu raqamli tasvirlar uchun keng qo'llaniladigan yo'qotishli siqish algoritmidir. U 1992-yilda standartlashtirilgan va o'shandan beri fotografik tasvirlarni saqlash va almashish uchun asosiy formatga aylangan. JPEG algoritmi inson ko'rish xususiyatlaridan foydalanib, qabul qilinadigan tasvir sifatini saqlagan holda yuqori siqish nisbatlariga erishadi. U inson ko'zi uchun kamroq seziladigan ma'lumotlarni, masalan, yuqori chastotali detallar va ranglarning nozik o'zgarishlarini olib tashlash orqali ishlaydi.

JPEG algoritmi yagona algoritm emas, balki bir qator texnika va variantlardan iborat. Eng keng tarqalgan ishlash rejimi - bu asosiy JPEG bo'lib, u o'zining asosiy transformatsiyasi sifatida Diskret Kosinus Transformatsiyasidan (DKT) foydalanadi. Ushbu qo'llanmada biz asosiy JPEG ga e'tibor qaratamiz.

JPEG algoritmining asosiy bosqichlari

JPEG algoritmi quyida keltirilgan bir nechta asosiy bosqichlarni o'z ichiga oladi:

1. Ranglar fazosini o'zgartirish

JPEG algoritmidagi birinchi qadam tasvirni asl ranglar fazosidan (masalan, RGB) YCbCr deb nomlangan boshqa ranglar fazosiga o'zgartirishdir. Bu ranglar fazosi tasvirni uchta komponentga ajratadi:

Ushbu o'zgartirishning sababi shundaki, inson ko'zi xrominantlik (rang) o'zgarishlariga qaraganda yorqinlik (brightness) o'zgarishlariga ko'proq sezgir. Ushbu komponentlarni ajratish orqali, JPEG algoritmi qabul qilingan tasvir sifati uchun muhim bo'lgan yorqinlik ma'lumotlarini saqlashga ustuvor ahamiyat berishi mumkin.

Misol: Smartfon yordamida olingan raqamli fotosurat odatda RGB ranglar fazosida saqlanadi. JPEG algoritmi keyingi siqish bosqichlariga o'tishdan oldin bu tasvirni avval YCbCr ga o'zgartiradi.

2. Xroma subsamplingi (Chroma Subsampling)

YCbCr ranglar fazosiga o'zgartirilgandan so'ng, JPEG algoritmi odatda xroma subsamplingini (chrominance subsampling deb ham ataladi) amalga oshiradi. Bu usul ba'zi rang ma'lumotlarini o'rtachalashtirish yoki olib tashlash orqali xrominantlik komponentlarini (Cb va Cr) ifodalovchi ma'lumotlar miqdorini kamaytiradi. Inson ko'zi rang o'zgarishlariga kamroq sezgir bo'lgani uchun, bu jarayon qabul qilingan tasvir sifatiga sezilarli ta'sir qilmasdan fayl hajmini sezilarli darajada kamaytirishi mumkin.

Keng tarqalgan xroma subsampling nisbatlariga 4:4:4 (subsampling yo'q), 4:2:2 (gorizontal subsampling) va 4:2:0 (gorizontal va vertikal subsampling) kiradi. 4:2:0 nisbati har to'rtta yorqinlik namunasi uchun ikkita Cb namunasi va ikkita Cr namunasi mavjudligini anglatadi. Bu xrominantlik ma'lumotlari miqdorining 50% ga kamayishiga olib keladi.

Misol: Yuqori aniqlikdagi tasvir maksimal rang ishonchliligini saqlab qolish uchun 4:4:4 xroma subsamplingidan foydalanishi mumkin. Biroq, veb tasvirlar uchun tasvir sifati va fayl hajmi o'rtasidagi yaxshiroq muvozanatga erishish uchun ko'pincha 4:2:0 subsampling ishlatiladi.

3. Bloklarga bo'lish

JPEG algoritmi tasvirni 8x8 pikselli bloklarga ajratadi. Keyin har bir blok mustaqil ravishda qayta ishlanadi. Ushbu bloklarga asoslangan yondashuv parallel ishlov berish imkonini beradi va keyingi bosqich bo'lgan Diskret Kosinus Transformatsiyasini (DKT) hisoblashni soddalashtiradi.

Misol: 640x480 pikselli tasvir 4800 ta 8x8 pikselli bloklarga bo'linadi (640/8 * 480/8 = 80 * 60 = 4800).

4. Diskret Kosinus Transformatsiyasi (DKT)

Diskret Kosinus Transformatsiyasi (DKT) - bu har bir 8x8 pikselli blokni fazoviy sohadan chastota sohasiga o'zgartiradigan matematik transformatsiyadir. Chastota sohasida har bir blok 64 ta DKT koeffitsientlari to'plami bilan ifodalanadi, ular turli fazoviy chastotalarning amplitudasini aks ettiradi.

DKT signal energiyasining ko'p qismini bir nechta past chastotali koeffitsientlarga jamlash xususiyatiga ega. Buning sababi, tabiiy tasvirlar silliq o'zgarishlar va rang hamda intensivlikdagi asta-sekin o'zgarishlarga ega bo'ladi. O'tkir qirralar va mayda detallarni ifodalovchi yuqori chastotali koeffitsientlar odatda kichikroq amplitudaga ega bo'ladi.

Misol: Silliq gradientni o'z ichiga olgan 8x8 blokni ko'rib chiqing. DKT qo'llanilgandan so'ng, DC komponentiga (o'rtacha qiymat) mos keladigan koeffitsient katta bo'ladi, yuqori chastotalarga mos keladigan koeffitsientlar esa nolga yaqin bo'ladi.

5. Kvantlash

Kvantlash - bu JPEG algoritmidagi yuqori siqish nisbatlariga erishish uchun eng muhim qadamdir. U har bir DKT koeffitsientini kvantlash qiymatiga bo'lish va natijani eng yaqin butun songa yaxlitlashni o'z ichiga oladi. Kvantlash qiymatlari JPEG algoritmining muhim parametri bo'lgan kvantlash jadvalida ko'rsatilgan. Turli xil siqish darajalari va tasvir sifatiga erishish uchun turli xil kvantlash jadvallaridan foydalanish mumkin.

Kvantlash jarayoni DKT koeffitsientlarida mavjud bo'lgan ba'zi ma'lumotlarni olib tashlash orqali yo'qotishga olib keladi. Inson ko'zi uchun kamroq seziladigan yuqori chastotali koeffitsientlar odatda past chastotali koeffitsientlarga qaraganda tajovuzkorroq kvantlanadi (ya'ni, kattaroq qiymatlarga bo'linadi). Bu yuqori chastotali koeffitsientlarning ko'prog'i nolga aylanishiga olib keladi, bu esa siqishga hissa qo'shadi.

Misol: Qiymati 10 bo'lgan koeffitsient 5 kvantlash qiymati bilan kvantlanishi mumkin, natijada kvantlangan qiymat 2 bo'ladi (10/5 = 2). Qiymati 2 bo'lgan koeffitsient 10 kvantlash qiymati bilan kvantlanishi mumkin, natijada kvantlangan qiymat 0 bo'ladi (2/10 = 0.2, 0 ga yaxlitlanadi). Bu kichikroq qiymatlarning nolga teng bo'lish ehtimoli yuqori ekanligini va bu siqishga olib kelishini ko'rsatadi.

6. Entropiya kodlash

Kvantlashdan so'ng, kvantlangan DKT koeffitsientlari entropiya kodlash usullari yordamida yanada siqiladi. Entropiya kodlash - bu ma'lumotlarni yanada samaraliroq ifodalash uchun ularning statistik xususiyatlaridan foydalanadigan yo'qotishsiz siqish usulidir. JPEG algoritmi odatda ikkita entropiya kodlash usulidan foydalanadi:

Misol: Kvantlangan DKT koeffitsientlari ketma-ketligini ko'rib chiqing: [10, 5, 0, 0, 0, 0, 0, -2, 0, 0, ...]. RLE bu ketma-ketlikni [10, 5, (0, 5), -2, (0, 2), ...] sifatida kodlashi mumkin, bunda (0, 5) 5 ta nol ketma-ketligini ifodalaydi.

JPEG dekodlash jarayoni

JPEG dekodlash jarayoni kodlash jarayonining teskarisidir. U quyidagi bosqichlarni o'z ichiga oladi:

  1. Entropiya dekodlash: Entropiya bilan kodlangan ma'lumotlar Xaffman dekodlashi va Ketma-ketlik uzunligi bo'yicha dekodlash yordamida kvantlangan DKT koeffitsientlarini tiklash uchun dekodlanadi.
  2. Dekvantlash: Kvantlangan DKT koeffitsientlari asl DKT koeffitsientlarini taxmin qilish uchun kvantlash jadvalidagi mos keladigan kvantlash qiymatlariga ko'paytiriladi.
  3. Teskari Diskret Kosinus Transformatsiyasi (TDKT): TDKT har bir 8x8 DKT koeffitsientlari blokiga ularni fazoviy sohaga qaytarish uchun qo'llaniladi, natijada tiklangan piksel qiymatlari hosil bo'ladi.
  4. Xroma yuqori diskretlash (Chroma Upsampling): Agar kodlash paytida xroma subsamplingi ishlatilgan bo'lsa, xrominantlik komponentlari asl aniqligiga qaytariladi.
  5. Ranglar fazosini o'zgartirish: Tasvir YCbCr ranglar fazosidan asl ranglar fazosiga (masalan, RGB) qaytariladi.

JPEG algoritmining afzalliklari

JPEG algoritmi uning keng tarqalishiga hissa qo'shgan bir qancha afzalliklarga ega:

JPEG algoritmining kamchiliklari

Afzalliklariga qaramay, JPEG algoritmining ba'zi kamchiliklari ham mavjud:

JPEG algoritmining qo'llanilishi

JPEG algoritmi keng ko'lamli ilovalarda qo'llaniladi, jumladan:

JPEG alternativlari va kelajakdagi tendensiyalar

JPEG dominant format bo'lib qolayotgan bo'lsa-da, so'nggi yillarda yaxshilangan unumdorlik va xususiyatlarni taklif qiluvchi bir nechta muqobil tasvir siqish algoritmlari paydo bo'ldi:

Tasvirni siqish kelajagi yuqori sifatli tasvirlar va videolarga bo'lgan talabning ortib borishi, shuningdek, saqlash joyi va o'tkazuvchanlik sarfini kamaytirish zarurati bilan belgilanadi. WebP, HEIF va AVIF kabi yangi siqish algoritmlari eskirgan JPEG standartiga nisbatan yaxshilangan unumdorlik va xususiyatlarni taklif qilib, raqamli landshaftda yanada muhim rol o'ynashga tayyor. Biroq, JPEG ning keng tarqalgan mosligi uning ko'p yillar davomida dolzarbligini saqlab qolishini ta'minlaydi.

Xulosa

JPEG algoritmi o'nlab yillar davomida raqamli tasvirlashning tamal toshi bo'lib kelgan. Uning qabul qilinadigan tasvir sifatini saqlab qolgan holda yuqori siqish nisbatlariga erishish qobiliyati uni fotografik tasvirlarni saqlash va almashish uchun dominant formatga aylantirdi. JPEG algoritmining tamoyillari va cheklovlarini tushunish raqamli tasvirlar bilan ishlaydigan har bir kishi uchun muhimdir, xoh ular fotosuratchilar, veb-dasturchilar yoki grafik dizaynerlar bo'lsin. Yangi tasvir siqish algoritmlari paydo bo'layotgan bo'lsa-da, JPEG ning merosi va keng tarqalgan mosligi uning raqamli dunyoda doimiy ahamiyatini ta'minlaydi.

JPEG algoritmining nozikliklarini tushunib, siz tasvirni siqish bo'yicha ongli qarorlar qabul qilishingiz va tasvirlaringizni turli ilovalar uchun optimallashtirishingiz mumkin, bunda tasvir sifati, fayl hajmi va moslikni muvozanatlab, eng yaxshi natijalarga erishasiz.