1 / 73

Здобувач : аспірант РДГУ Шпортько Олександр Володимирович Науковий керівник :

Підвищення ефективності стиснення RGB- зображень у форматі PNG. Доповідь за результатами дисертаційного дослідження за спеціальністю 01.05.03 – математичне та програмне забезпечення обчислювальних машин і систем на здобуття наукового ступеня кандидата технічних наук. Здобувач :

jasper
Télécharger la présentation

Здобувач : аспірант РДГУ Шпортько Олександр Володимирович Науковий керівник :

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Підвищення ефективності стиснення RGB-зображеньу форматі PNG Доповідь за результатами дисертаційного дослідження за спеціальністю 01.05.03 – математичне та програмне забезпечення обчислювальних машин і систем на здобуття наукового ступеня кандидата технічних наук Здобувач: аспірант РДГУ Шпортько Олександр Володимирович Науковий керівник: д.т.н., проф.Бомба Андрій Ярославович

  2. Актуальність роботи Обгрунтування Факти, що підтверджують актуальність теми дослідження: • на сьогодні в Інтернеті нараховується більше 16 млн. web-сторінок, що містять зображення у форматі PNG; • щороку кількість таких сторінок збільшується на понад 1 млн. Теоретичною та методологічною основою роботистали праці К. Шенона, Д. Кнута, Д. Хафмана, Я. Зіва, А. Лемпела, Е. Прета, Р. Гонсалеса, Р. Вудса, Д. Селомона, Дж. Міано, Т. Боутела, Д. Ватоліна, А. Ратушняка, М. Смірнова, В. Юкіна, а також аналіз функціонування існуючого програмного забезпечення для стиснення зображень. Вступ

  3. Мета і завдання дослідження Обгрунтування Мета і завдання дослідження Метою дослідження є підвищення ефективності стиснення зображень у форматі PNG як за допомогою вдосконалення і врахування взаємодії використаних алгоритмів компресії, так і шляхом застосування альтернативних чи нових методів кодування. Об'єкт дослідження – методи, алгоритми та програмне забезпечення для стиснення даних без втрат. Предмет дослідження – методи, алгоритми та програмне забезпечення для стиснення 24-бітних RGB-зображень у форматі PNG. Вступ

  4. Структура роботи Структура Структура дисертації: Вступ Розділ 1. Шляхи підвищення ефективності стиснення зображень у форматі PNG.Аналіз літературних джерел. Постановка завдань дослідження Розділ 2. Прискорення стиснення зображень у форматі PNG Розділ 3. Зменшення коефіцієнтів стиснення RGB-зображень у форматі PNG Розділ 4. Модифікації формату PNG для підвищення ефективності стиснення RGB-зображень Висновки Вступ

  5. Структура розділу Структура Розділ 1. Шляхи підвищення ефективності стиснення зображень у форматі PNG. Аналіз літературних джерел. Постановка завдань дослідження 1.1. Послідовність кодування даних зображень 1.2. Словниковий алгоритм LZ77 та основні варіанти його розкладу вхідного потоку 1.3. Кодування Хафмана та його альтернативи 1.4. Предиктори та їх використання 1.5. Додаткові методи зменшення міжелементної надлишковості, що можуть застосовуватися у форматі PNG 1.6. Тестові набори файлів зображень, апаратне, системне та прикладне програмне забезпечення для апробації розроблених алгоритмів 1.7. Висновки до розділу Розділ 1

  6. Застосування предикторів Стиснення словниковим контекстно-залежним алгоритмом LZ77 Стиснення контекстно-незалежними кодами Хафмана 1.1. Послідовність кодування даних зображень Теоретичні основи Етапи кодування зображень у форматі PNG: Розділ 1 Розділ 1

  7. 1.2. Словниковий алгоритм LZ77 Теоретичні основи Кроки алгоритму LZ77 для формування розкладу вхідного потоку елементів: • у випадку виявлення для чергової послідовності елементів буфера співпадаючої послідовності у словнику кодують її парою чисел <довжина; зміщення від закінчення словника>, інакше записують у закодовані дані перший елемент буфера без змін; • переносять закодовані елементи з початку буфера в кінець словника; • ітеративно продовжують кодування до закінчення елементів буфера. Розділ 1

  8. 1.2. Словниковий алгоритм LZ77 Приклад Формування для потоку "2, 4, 1, 2, 2, 4, 1, 3, 2, 4, 1, 2, 4, 1, 3"ітеративного "жадібного" розкладу алгоритму LZ77"2, 4, 1, 2, <3; 4>, 3, <4; 8>, <3; 7>" Розділ 1

  9. 1.2. Словниковий алгоритм LZ77 Теоретичні основи Варіанти розкладу алгоритму LZ77, що розглядалися в роботі: • “жадібний” розклад; • майже оптимальний розклад ; • розклад з “лінивими” порівняннями , ; • розклад Кадача . Розділ 1

  10. 1.2. Словниковий алгоритм LZ77. Пошук співпадаючих послідовностей Приклад Організація пошуку співпадаючих послідовностей за допомогою хешування Елемент таблиці вказівників та ланцюг вказівників (виділені сірим кольором)на ключі "2, 4, 1" (початки заштриховані) словника"2, 4, 1, 2, 2, 4, 1, 3, 2, 4, 1“перед кодуванням буфера "2, 4, 1, 3" Розділ 1

  11. 1.2. Словниковий алгоритм LZ77. Пошук співпадаючих послідовностей Приклад Елемент хеш-таблиці та хеш-ланцюг вказівників (виділені сірим кольором)на трьохелементні ключі з хеш-значенням "7"(початки заштриховані)хеш-функції сумування кодів трьохелементних ключів Розділ 1

  12. 1.3. Кодування Хафмана та його альтернативи Теоретичні основи Кроки алгоритму генерації динамічних кодів Хафмана: 1. Підраховують ймовірності окремих елементів; 2. Впорядковують елементи за спаданням ймовірностей; 3. Ітеративно поєднують до отримання одного елемента два елементи з найменшими ймовірностями (останні в утвореному списку). При цьому дописують першому з поєднуваних елементів код "0", а другому – "1", сумують ймовірності цих елементів для обчислення ймовірності утвореного елемента та вставляють утворений елемент у відсортований список ймовірностей; 4. Утворюють коди Хафмана, записуючи сформовані коди у зворотному порядку – від вершини до кожного вхідного елемента. У форматі DEFLATE літерали/базові значення довжин та базові значення зміщень, що утворюються після виконання алгоритму LZ77, кодуються різними кодами Хафмана. Це пов'язано як з неоднаковими діапазонами значень елементів так і з різними характерами нерівномірностей розподілів їх частот. Розділ 1

  13. 1.3. Кодування Хафмана та його альтернативи Теоретичні основи Обмеження середньої довжини коду Хафмана Згідно з фундаментальним положенням теорії інформації, для мінімізації довжини коду послідовності,елемент si з ймовірністю появи p(si) доцільно кодувати -log p(si) бітами. Тому середня довжина коду елемента блоку після застосування будь-якого контекстно-незалежного алгоритму (у тому числі, і кодування Хафмана), згідно з формулою Шеннона не може бути меншою ентропії джерела Ентропія джерела зменшується зі збільшенням нерівномірності розподілу ймовірностей між елементами. Середня довжина коду Хафмана для різних блоків незначно (в межах біта) перевищує ентропію і досягає цього значення лише у випадку, коли всі-log p(si) цілі числа. Розділ 1

  14. 1.3. Кодування Хафмана та його альтернативи Приклад Характеристики елементів послідовності літералів/довжин "2, 4, 1, 2, <3>" Етапи поєднання елементів послідовності літералів/довжин "2, 4, 1, 2, <3>" Розділ 1

  15. 1.3. Кодування Хафмана та його альтернативи Підвищення ефективності Шляхи підвищення ефективності кодування Хафмана, що розглядалися в роботі: • розбиття зображення на блоки рядків, результатів розкладу LZ77 – на окремі фрагменти з метою підвищення нерівномірності розподілу ймовірностей між елементами; • групове кодування яскравостей компонентів пікселів під час формування палітри (як неявне трикратне розширення джерела, що підпадає під дію першої теореми Шеннона); • застосування альтернативного арифметичного кодування зі статичною стратегією формування інтервалів елементів (див. наступний слайд). Розділ 1

  16. 1.3. Кодування Хафмана та його альтернативи Підвищення ефективності Ітеративний принцип арифметичного кодування: Під час чергової ітерації кожному елементу ставиться у відповідність підінтервал з активного інтервалу, що має довжину, пропорційну його ймовірності. Після цього для кодування чергового елемента потоку обирається і надалі розглядається підінтервал, що йому відповідає. Результатом ARIC є довільне число з останнього активного інтервалу. Етапи арифметичного кодування трьох перших елементівпослідовності літералів/довжин "2, 4, 1, 2, <3>" Розділ 1

  17. 1.4. Предиктори та їх використання Теоретичні основи Механізм застосування предикторів Предиктор – це функція, що намагається, використовуючи значення відомих суміжних елементів, спрогнозувати (змоделювати)значення чергового елемента. Результат дії предикторів обчислюється за формулою Розділ 1

  18. 1.4. Предиктори та їх використання Приклад а) б) Розподіл частот значень зеленої компоненти зображення Lena.bmpдо застосування предиктора (а) та після застосування Left-предиктора (б) Розділ 1

  19. 1.4. Предиктори та їх використання Теоретичні основи Предиктори формату PNG Схема розміщення суміжних елементів для елемента Х Предиктори формату PNG мовою C: char NonePredict(char Left, char Above, char LeftAbove) {return 0; } char LeftPredict(char Left, char Above, char LeftAbove) {return Left; } char AbovePredict(char Left, char Above, char LeftAbove) {return Above; } char AveragePredict(char Left, char Above, char LeftAbove) {return (Left+Above)/2; } char PaethPredict(char Left, char Above, char LeftAbove) {int pp=Left+Above-LeftAbove; pa=abs(pp-Left);pb=abs(pp-Above);pc=abs(pp-LeftAbove); if (pa<=pb && pa<=pc) return Left; else if (pb<=pc) return Above; else return LeftAbove; } . Альтернативний нелінійний предиктор з методу JPEG-LS: char MedPredict(char Left, char Above, char LeftAbove) {if (LeftAbove>=max(Left, Above)) return min(Left, Above); else if (LeftAbove<=min(Left, Above)) return max(Left, Above); else return Left+Above-LeftAbove; } Розділ 1

  20. 1.6. Апробація розроблених алгоритмів Забезпечення апробації алгоритмів Тестові набори файлів зображень, апаратне, системне та прикладне програмне забезпечення для апробації розроблених алгоритмів: • всі розроблені та описані в роботі алгоритми апробувалися на восьми файлах 24-бітних зображень стандартного набору ACT; • остаточні версії програм додатково апробувалися на 24 файлах 24-бітних неперервно-тонових, природних зображень стандартного набору KTCI; • тестування розроблених алгоритмів проводилися на комп'ютері з процесором AMD-K6 300 MHz, 128 Mb RAM в операційній системі Windows 98 за допомогою власних програм, розроблених на базі програми з CD для запису зображень у форматі PNG; • результати виконання остаточної програми, що реалізує стиснення за допомогою запропонованих алгоритмів в існуючому стандарті PNG порівнювалися з результатами програми OptiPNG, а програми для стиснення в модифікованому стандарті – додатково з програмами WinRAR v. 3.0, JLSEncoder v. 2.2, BMF v. 2.0, ERI v. 5.1. Розділ 1

  21. 1.6. Апробація розроблених алгоритмів Характеристики тестових зображень Розділ 1

  22. Структура розділу Структура Розділ 2. Прискорення стиснення зображень у форматі PNG 2.1. Вибір найкоротших хеш-ланцюгів у процесі пошуку співпадаючих послідовностей для розкладу алгоритму LZ77 2.2. Способи та алгоритми розрахунків довжин блоків динамічних кодів Хафмана 2.3. Висновки до розділу Розділ 2

  23. 2.1. Вибір найкоротших хеш-ланцюгів для розкладу LZ77 Опис алгоритму Основна ідея алгоритму вибору найкоротшиххеш-ланцюгів під час пошуку найдовшої співпадаючої послідовності для розкладу LZ77: подальший пошук найдовшої однакової послідовності у словнику можна виконувати по хеш-ланцюгах довільного ключа, що повністю належить розширеній послідовності буфера. • Під час реалізації пошуку врахуємо також, що: • переходити до іншого хеш-ланцюга доцільно лише тоді, коли в ньому міститься менше елементів, ніж залишилося розглянути в поточному хеш-ланцюгу; • аналізувати розширену послідовність буфера доцільно лише тоді, коли в ній міститься менше неопрацьованих ключів від нерозглянутих елементів в поточному хеш-ланцюгу. Розділ 2

  24. 2.1. Вибір найкоротших хеш-ланцюгів для розкладу LZ77 Приклад Перехід до коротшого хеш-ланцюга (позначений товстою стрілкою) в процесі пошуку найдовшої співпадаючої послідовності для буфера "2, 4, 1, 3" у словнику "2, 4, 1, 2, 2, 4, 1, 3, 2, 4, 1" з використанням хеш-функції сумування кодів трьохелементних ключів Розділ 2

  25. 2.1. Вибір найкоротших хеш-ланцюгів для розкладу LZ77 Результати тестування Основні результати застосування алгоритму вибору найкоротших хеш-ланцюгів у процесі пошуку співпадаючих послідовностей для розкладу алгоритму LZ77: • застосування розглянутого алгоритму у випадку відсікання хеш-ланцюгів не лише прискорює виконання стиснення дискретно-тонових зображень на понад 20 %, а й покращує КС окремих файлів на 0.46 % завдяки ефективнішому аналізу послідовностей словника; • використання розробленого алгоритму для аналізу всіх елементів хеш-ланцюгів дозволяє прискорити стиснення файлів набору ACT у понад 4.5рази в основному за рахунок дискретно-тонових зображень; • стиснення файлів за допомогою алгоритму вибору найкоротших хеш-ланцюгів по часу майже співпадає зі стисненням файлів за допомогою алгоритму аналізу хеш-ланцюгів згідно ключів початку буфера з відсіканням, але для дискретно-тонових зображень забезпечує відносно нього кращий КС. Розділ 2

  26. 2.2. Розрахунки довжин блоків динамічних кодів Хафмана Теоретичні основи та результати Наближене обчислення довжини блоку кодів Хафмана за допомогою ентропії Основні результати застосування способу наближеного обчислення довжини блоку кодів Хафмана за допомогою ентропії: • дає змогу прискорити ці обчислення відносно варіанту безпосередньої генерації для блоків літералів/довжин в середньому на 96.5 %, а для блоків зміщень – на 80.8 %; • додатково прискорити такі розрахунки відповідно на 0.37 % і на 0.57 % можливо за допомогою масиву значень двійкових логарифмів для малих (до 15 включно) частот. Розділ 2

  27. 2.2. Розрахунки довжин блоків динамічних кодів Хафмана Теоретичні основи Алгоритм точного обчислення довжини блоку кодів Хафмана: під час чергової ітерації до отримання однієї частоти серед всіх додатних частот знайти дві найменші, збільшити довжину блоку на суму цих частот і надалі замість цих двох частот розглядати їх суму (оскільки внаслідок ітеративного поєднання двох найменших частот у процесі генерації цих кодів довжина блоку збільшується на їх суму). Для точного обчислення довжини блоку кодів Хафмана доцільно: впорядкувати ненульові частоти за спаданням та щоразу, до отримання однієї з них, опрацьовувати дві останні частоти. Розділ 2

  28. 2.2. Розрахунки довжин блоків динамічних кодів Хафмана Приклад Приклад точного обчислення довжини блоку кодів Хафмана Ітеративні поєднання двох найменших частот в процесі точного розрахунку довжини блоку кодів Хафмана Розділ 2

  29. 2.2. Розрахунки довжин блоків динамічних кодів Хафмана Результати та вдосконалення Основні результати застосування алгоритму точного обчислення довжини блоку кодів Хафмана : • дає змогу прискорити точні розрахунки довжин блоків кодів Хафмана відносно варіанту безпосередньої генерації для блоків літералів/довжин в середньому на 87 %, а для блоків зміщень –на 78 %; • застосування однозв'язного списку для уникнення переміщень елементів в процесі вставок сум двох найменших частот дає змогу додатково прискорити ці розрахунки відповідно на 5 % і 4 %, а окреме опрацювання малих частот – ще на 4 % і 3.5 % для таких блоків за рахунок зменшення кількості ненульових частот на 30-40 %. Приклад окремого опрацювання малих частот в процесі точного розрахунку довжини блоку кодів Хафмана Розділ 2

  30. Структура розділу Структура Розділ 3. Зменшення коефіцієнтів стиснення RGB-зображень у форматі PNG 3.1. Алгоритм мінімізації розміру стиснутих блоків 3.2. Організація вибору предикторів для рядків пікселів 3.3. Фрагментування зображень 3.4. Мінімізація зміщень результатів розкладу алгоритму LZ77 3.5. Попередній аналіз зображень з розбиттям на мінімальні та однорідні блоки рядків 3.6. Висновки до розділу Розділ 3

  31. 3.1.Алгоритм мінімізації розміру стиснутих блоків Теоретичні основи Основна ідея алгоритму мінімізації розміру стиснутих блоків: зменшити розмір стиснутих блоків динамічнихкодів Хафмана у форматі PNG доцільно за рахуноквідкидання неефективних замін LZ77,заміщаючи їх відповідними літералами Заміну LZ77 слід вважати ефективною, якщо вона записуються не більшою кількістю бітів, ніж відповідні окремі літерали: Розділ 3

  32. 3.1.Алгоритм мінімізації розміру стиснутих блоків Теоретичні основи Розподіл частот елементів/довжин перших 64 Кб зображення Lena.bmp для різних предикторів та максимальних довжин неврахованих замін Без предикторів та замін Без предикторівпісля всіх замін LZ77 Без предикторів після замін LZ77від 9 елементів Після предиктора Піфа Після предиктора Піфа і всіх замін LZ77 Після предиктора Піфа і всіх замін LZ77 від 9 елементів Розділ 3

  33. 3.1.Алгоритм мінімізації розміру стиснутих блоків Теоретичні основи За результатами дослідження ефективності замін LZ77 різної довжини встановлено, що: • короткі заміни виявляються ефективними, як правило, для стиснутих блоків, у яких інші короткі заміни теж враховуються; • короткі заміни виявляються, як правило, неефективними для стиснутих блоків, у яких інші короткі заміни теж не враховуються. Розділ 3

  34. 3.1.Алгоритм мінімізації розміру стиснутих блоків Теоретичні основи Кроки алгоритму мінімізації розміру кожного стиснутого блоку: • створити альтернативні стиснуті блоки з різними максимальними довжинами неврахованих замін; • обрати серед них найкоротший блок, використовуючи алгоритми розрахунківдовжин динамічних кодів Хафманаз попереднього розділу; • ітеративно зменшити його довжину, відкидаючи щоразу неефективні та враховуючи ефективні заміни LZ77; • використати сформований блок для зберігання даних у PNG-файлі. Розділ 3

  35. 3.1.Алгоритм мінімізації розміру стиснутих блоків Результати тестування Основні результати застосування алгоритму мінімізації розміру стиснутих блоків: • КС неперервно-тонових зображень набору ACT, в яких всі заміни не враховуютьсязменшився на 2 – 6 %; • при цьому час кодування збільшився в середньому на 7 %. Область застосування в дослідженні алгоритму мінімізації розміру стиснутих блоків: • всі розроблені алгоритми компресії; • всі розроблені алгоритми попереднього аналізустиснутих блоків. Розділ 3

  36. 3.2. Організація вибору предикторів для рядків пікселів Результати тестування та висновки Основні результати аналізу впливу різних предикторів, алгоритму LZ77 та кодування Хафмана на КС стиснення зображень: • для дискретно-тонових фрагментів зображень найменші КС забезпечують предиктори NonePredict, LeftPredict чи RightPredict . Ключову роль в процесі стиснення цих фрагментів відіграє алгоритм LZ77; • для неперервно-тонових фрагментів зображень найкращі КС отримуються у випадку застосування AveragePredict чи PaethPredict . Основну роль під час стиснення таких фрагментів виконує кодування Хафмана. Висновки за результатами застосування різних способів кодування: • розклад LZ77 та кодування Хафмана у поєднанні з алгоритмом мінімізації розмірів стиснутих блоків потрібно застосовувати в процесі стиснення кожного зображення; • не існує універсального предиктора, застосування якого сприяло б найкращому стисненню всіх типів зображень. Отже, в процесі стиснення доцільно використовувати різні предиктори для різних рядків. Розділ 3

  37. 3.2. Організація вибору предикторів для рядків пікселів Теоретичні основи та висновки Розроблені способи вибору предикторів для рядків пікселів: • безпосередній ентропійний спосіб; • ентропійний спосіб після застосування коротких замін LZ77; • комбінований ентропійний спосіб; • комбінований ентропійний спосіб з додатковим попіксельним розкладом алгоритмом LZ77 оригіналу зображення; • ентропійний спосіб з прогнозуванням результатів розкладів алгоритму LZ77. Висновок за результатами застосування різних способів вибору предикторів: для кожного рядка зображення найефективнішим може виявитися один з п'яти варіантів компресії: без застосування предикторів, з використанням LeftPredict, з застосуванням RightPredict, з використанням безпосереднього ентропійного способу вибору предикторів та з застосуванням ентропійного способу вибору предикторів після імітації коротких замін LZ77. Розділ 3

  38. 3.2. Фрагментування зображень Теоретичні основи Мета застосування досліджених алгоритмів фрагментування: зменшення КС кодування Хафмана за рахунок збільшення нерівномірностей розподілів в результаті зміщення меж як між блоками рядків зображення, так і між частинами розкладу LZ77 Твердження:довжина ентропійного коду (до якої наближається довжина коду Хафмана) поєднання двох послідовностей елементів є не меншою від суми довжин ентропійних кодів цих послідовностей. Висновок:довжина ентропійного коду незначно зростає лише внаслідок поєднання блоків рядків з близькими відносними частотами окремих елементів. Залежність приросту довжини ентропійного коду від частот елемента у вхідних послідовностях Розділ 3

  39. 3.2. Фрагментування зображень Теоретичні основи та результати Досліджені алгоритми фрагментування: • розбиття зображень на блоки рядків, що базується на ітеративному поєднанні суміжних блоків з найменшим прогнозованим збільшенням довжини ентропійного коду, доки це збільшення не перевищує середнього розміру заголовка нового стиснутого блоку; • розбиття результатів розкладу LZ77 за допомогою методу О. А. Ратушняка на фрагменти з відмінними нерівномірностями розподілів відносних частот елементів. Висновки за результатами застосування алгоритмів фрагментування: • застосування алгоритму розбиття на блоки рядків ефективніше для неперервно-тонових, а фрагментування результатів розкладу LZ77 – для дискретно-тонових зображень, хоча обидва ці алгоритми зменшують КС лише на соті долі процента, що вказує на однорідність результатів дії предикторів та коректність обмеження у програмних реалізаціях максимального розміру блоку стиснутих даних формату DEFLATE 65536 елементами; • враховуючи значно вищу швидкість розбиття на блоки рядків стосовно сегментації результатів розкладу LZ77, надалі у дослідження використано саме цей алгоритм фрагментування. Розділ 3

  40. 3.4. Мінімізація зміщень результатів розкладу LZ77 Теоретичні основи Принцип мінімізації зміщень результатів розкладу LZ77 Розділ 3

  41. 3.4. Мінімізація зміщень результатів розкладу LZ77 Приклад застосування Приклад мінімізації зміщень результатів розкладу LZ77 До мінімізації зміщень: м о л м у <3; 5> н <4; 9> <3; 7> Після мінімізації зміщень: м о л м у <3; 5> н <3; 4> <4; 7> Розділ 3

  42. 3.4. Мінімізація зміщень результатів розкладу LZ77 Результати тестування Основні результати застосування алгоритму мінімізації зміщень результатів розкладу LZ77: застосування даного алгоритму скорочує відставання від результатів програми з майже оптимальним розкладом у середньому на 15 %, сповільнюючи при цьому стиснення в середньому лише на 2.46 %. Розділ 3

  43. 3.4. Розбиття на мінімальні та однорідні блоки рядків Теоретичні основи Призначення алгоритму попереднього аналізу зображень з розбиттям на мінімальні та однорідні блоки рядків: розбиття зображень на однорідні блоки та визначення для кожного з них найефективнішого (з п'яти визначених вище) варіанту і параметрів компресії, що забезпечують найменший КС зображення, використовуючи метод динамічного програмування. Етапи алгоритму: • поєднання суміжних рядків з близькими нерівномірностями розподілів частот елементів в мінімальні блоки (до 32 Кб) і визначення методом динамічного програмування для кожного з них варіанту компресії, що забезпечує загальний мінімальний КС зображення; • поєднання суміжних мінімальних блоків рядків з однаковими варіантами компресії та близькими нерівномірностями розподілів частот літералів/довжин в однорідні блоки рядків; • розрахунок для кожного з однорідних блоків рядків прогнозованих довжин кодів розподілів літералів/довжин та зміщень з прогнозованих частот розподілів цих блоків або за результатами додаткового “лінивого” розкладу для подальшого формування "лінивого" чи майже оптимального розкладу алгоритму LZ77 в процесі безпосереднього стиснення зображення. Розділ 3

  44. 3.4. Розбиття на мінімальні та однорідні блоки рядків Приклад Приклад застосування алгоритму попереднього аналізу зображень з розбиттям на мінімальні та однорідні блоки рядків Межі мінімальних та однорідних блоків рядків тестового зображення Розділ 3

  45. 3.4. Розбиття на мінімальні та однорідні блоки рядків Приклад Прогнозовані розміри мінімальних блоків рядків тестового зображення після стиснення різними варіантами компресії, бітів Розділ 3

  46. 3.4. Розбиття на мінімальні та однорідні блоки рядків Теоретичні основи Формули для визначення мінімального накопиченого прогнозованого розміру від початку зображення до кожного мінімального блоку рядків i включно за умови застосування до нього варіанта компресії j (прямий хід методу динамічного програмування): Розділ 3

  47. 3.4. Розбиття на мінімальні та однорідні блоки рядків Теоретичні основи Штрафи finek,jза відхилення між варіантами компресіїсуміжних мінімальних блоків, бітів Розділ 3

  48. 3.4. Розбиття на мінімальні та однорідні блоки рядків Теоретичні основи Формули для визначення мінімального прогнозованого розміру зображення та оптимальних варіантів компресії кожного мінімального блоку рядків i, що забезпечують цей мінімальний розмір (зворотній хід методу динамічного програмування): Розділ 3

  49. 3.4. Розбиття на мінімальні та однорідні блоки рядків Приклад Прогнозовані накопичені розміри тестового зображення для кожного мінімального блоку рядків після їх стиснення різними варіантами компресії, бітів Розділ 3

  50. 3.4. Розбиття на мінімальні та однорідні блоки рядків Теоретичні основи Особливості реалізації алгоритму попереднього аналізу зображень з розбиттям на мінімальні та однорідні блоки рядків: • уточнити розраховані за частотами елементів для кожного однорідного блоку рядків прогнозовані довжини кодів Хафмана розподілів літералів/довжин замін та зміщень (у випадку відсутності обмежень по часу) можна з розподілів, що утворюються за результатами додаткового проходу по даних зображення з застосуванням обраних предикторів, "лінивого" розкладу LZ77, кодування Хафмана та алгоритму мінімізації розміру стиснутих блоків; • визначення прогнозованих розмірів кожного блоку добре піддається розпаралеленню з використанням паралельних процесів для кожного з п'яти варіантів компресії, адже визначення прогнозованого розміру чергового мінімального блоку рядків після застосування кожного варіанту компресії не залежить від інших варіантів компресії. Застосування такого розпаралелення дає змогу підвищити швидкість розрахунку цих розмірів в 4 - 5 разів і, відповідно, прискорити стиснення зображень на 38 - 56 %. Розділ 3

More Related