Блок задач

13. Проекты-2

Темы
Сложность 7

Задача «Свой JPEG»

Используя библиотеку OpenCV, а также код из задач про wavelet-преобразование и арифметическое кодирование, реализовать свой формат хранения изображений à la JPEG.

Предполагается построение вейвлет разложение для изображения, затем аккуратное округление около-нулевых коэффициентов, и сжатие получившегося массива данных с помощью арифметического кодирования. Естественно, формат сжатого файла должен предполагать возможность декодирования. Приложение должно демонстрировать не только исходный и сжатый размеры, но также исходное и декодированное после сжатия изображения, а также попиксельную разность между ними.

Готовый рецепт получения удачного формата с большой степенью сжатия неизвестен. Данный проект предполагает самостоятельное проведение исследований и экспериментов. Оттолкнуться в исследованиях можно от статей с сайта habrahabr.ru: "Вейвлет-сжатие «на пальцах»", "Вейвлет-сжатие «на пальцах»: практика". В данных статьях рассматривается обработка изображений в градациях серого, для работы с цветными изображениями рекомендуется переход в цветовое пространство YCbCr.