лежить ступінь втрати якості стислого зображення, для q=2 маємо матрицю квантування:
тепер потрібно кожне число в матриці квантування розділити на число у відповідній позиції у матриці RES, в результаті отримаємо:
тут є досить багато нулів, отримаємо найбільш довгу послідовність нулів, якщо будемо використовувати наступний алгоритм:
вийшла послідовність:
0 - 7 - 11 8 0 0 1 6 - 5 - 7 - 3 0 1 0 0 0 1 0 - 3 - 4 - 1 4 2 0 0 0 0
0 0 0 0 0 0 - 3 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
для більшого стиснення можна перед першим етапом JPEG можна провести Субдіскретізація, або іншими словами зменшити частоту зображення, ідея дуже проста: наприклад, у нас є наступна послідовність (Cb або Cr) 11 42 200 123 56 32 125 234 12 24 34 78 145 134 245 101 якщо будемо використовувати Субдіскретізація 4:1:1, результуюча послідовність буде: 11123125 24145101
а якщо використовувати 4:2:2 11234245
а для відновлення послідовності потрібно інтерполювати.
4. Кодування за Хаффману. Цей алгоритм грунтується на частотах появи символів, і більш часто повторюваний символ представляється більш малим кодом алгоритм:
Ініціалізуем частоти - 1 для кожного символу
Будуємо дерево, символи з меншою частотою ми об'єднуємо в один вузол поки є символи:
Шукаємо символ в дереві, якщо йдемо направо видаємо 1, інакше 0 (звичайно в бітах).
Збільшуємо частоту символу і розбудовуємо дерево.
Переходимо до 3.
Кодування послідовності.
Щоб зробити всі значення позитивними, треба додати 128:
128 121 117 136 128 128 129 134 123 121 125 128 129 128 128 128 129 128
124 127 132 130 128 128 128 128 128 128 128 128 128 128 128 125 129 129
128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128
128 128 128 128 128 128 128
для спрощення припускаємо, що всі можливі символи це:
158 128 121 117 136 129 134 123 125 124 127 132 130
(від 0 до 256)
Маємо частоти:
- 1, 128 - 1, 121 - 1, 117 - 1, 136 - 1, 129 - 1, 134 - 1, 123 - 1, 125 - 1,
124 - 1, 127 - 1, 132 - 1, 130 - 1
і дерево:
=158
для нього код буде 1111
тепер частота CHARACTER буде 2, тепер перебудуємо дерево
=128
для нього код буде 1101
тепер частота CHARACTER буде 2, тепер перебудуємо дерево
=121
для нього код буде 1011
тепер частота CHARACTER буде 2, тепер перебудуємо дерево
=117
для нього код буде 1001
тепер частота CHARACTER буде 2, тепер перебудуємо дерево
CHARACTER=136