ЈПЕГ. Алгоритам компресије

Здраво поново! Пронашао сам овај чланак написан још у мају 2019. Ово је наставак серије чланака о ВАВЕ-у и ЈПЕГ-у, овде прво. Ова публикација ће укључити информације о алгоритму за кодирање слике и самом формату у целини.

Прстохват историје

Кашика чланка на Википедији:

ЈПЕГ (Јоинт Пхотограпхиц Екпертс Гроуп) је један од популарних формата растерске графике који се користи за чување фотографија и сличних слика.

Овај стандард је развила Јоинт Пхотограпхиц Екпертс Гроуп још 1991. године за ефикасну компресију слике.

Како слике прелазе из необрађених у ЈПЕГ?

Неки људи мисле да су ЈПЕГ слике сирови подаци компримовани Хафмановом методом, али то није тачно. Пре контролне компресије, подаци путују дуг пут.

Прво, модел боја је промењен из РГБ у ИЦбЦр. Постоји чак и посебан алгоритам за ово - овде. И се не дира, јер је одговоран за осветљеност, а његова промена ће бити приметна.

Прва ствар коју треба урадити са сликом је "проређивање" (подузорковање). Лако је разумети: узима се низ пиксела 2к2, затим се узимају Цб и Цр - просечне вредности сваке од ИЦбЦр компоненти ова 4 пиксела. Тако, освојили смо 6 бајтова, уместо 4 И, 4 Цб, 4 Цр добили смо 4 И и исто Цб и Цр за сваки од њих (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6). На чак 2к2 скали, компресија са губицима са односом компресије 2:1 звучи солидно. Ово се односи на целу слику. И тако - пали су за пола величине. А ову технику можемо користити захваљујући нашој перцепцији боја. Особа ће лако приметити разлику у осветљености, али не и у боји, ако је усредњена на мали блок пиксела. Разређивање се такође може урадити у линији, 4 пиксела хоризонтално и вертикално. Прва опција се користи чешће. Ако је квалитет слике важан, онда се децимација уопште не врши.
Визуелна илустрација стањивања (Хабр ми није дозволио да убацим гиф) - https://i.ibb.co/Rg5Th9H/150953010617579181.gif

Главни део припреме

ДЦМ

Сада долази најтежи и најнеопходнији део. Цела слика је подељена на блокове 8к8 (испуњавање се користи ако резолуција није вишеструка од стране блока).

Сада примените на сваки блок ДЦТ (дискретна косинусна трансформација). У овом делу се извлачи све непотребно. Користећи ДЦТ, морате да разумете да ли дати блок (8×8) описује било који монотони део слике: небо, зид; или садржи сложену структуру (коса, симболи, итд.). Логично је да се 64 пиксела сличне боје може описати само са 1, јер величина блока је већ позната. Толико о компресији: 64 према 1.

ДЦТ претвара блок у спектар, а тамо где се очитавања нагло мењају, коефицијент постаје позитиван, а што је транзиција оштрија, то ће бити већи излаз. Тамо где је коефицијент већи, слика показује јасне прелазе у боји и осветљености, где је нижи - слабе (глатке) промене вредности ИЦбЦр компоненти у блоку.

Квантизација

Подешавања компресије су већ примењена овде. Сваки од коефицијената у свакој од 8к8 матрица подељен је одређеним бројем. Ако нећете смањити квалитет слике након свих њених модификација, онда би делилац требало да буде један. Ако вам је важнија меморија коју заузима ова фотографија, онда ће делилац бити већи од 1, а количник ће бити заокружен. Испоставило се да након заокруживања често завршите са пуно нула.

Квантизација се врши да би се створила могућност још веће компресије. Ево како то изгледа на примеру квантовања графика и = син(к):

ЈПЕГ. Алгоритам компресије

Компресија

Прво пролазимо кроз матрицу у цик-цак обрасцу:

ЈПЕГ. Алгоритам компресије

Добијамо једнодимензионални низ са бројевима. Видимо да у њему има пуно нула, могу се уклонити. Да бисмо то урадили, уместо низа од много нула, уносимо 1 нулу и после ње број који означава њихов број у низу. На овај начин можете ресетовати на 1/3 величине читавог низа. А онда једноставно компримујемо овај низ користећи Хафманов метод и уписујемо га у саму датотеку.

Вхере усед

Свуда. Као и ПНГ, ЈПЕГ се користи у камерама, оперативним системима (као логотипи компаније, иконе апликација, сличице) и у свим могућим областима где слике треба ефикасно да се складиште.

Излаз

Тренутно је знање о ЈПЕГ-у вредно само у образовне сврхе, јер је већ свуда уграђено и оптимизовано од стране великих група људи, али је гранит науке и даље укусан.

izvori

Чланак о ИЦбЦр на Википедији
Чланак на Википедији о ЈПЕГ-у
Мало о ПрЕП-у из Пикабу поста
Чланак на Википедији о ПрЕП

Извор: ввв.хабр.цом

Додај коментар