JPEG кодировщик генерирует неправильные значения яркости

В настоящее время я занимаюсь разработкой jpeg-кодера на основе dct и застрял на проблеме с каналом яркости. Значения цветности кажутся правильными.

Несколько слов о процедуре кодирования. Изображение основано на значениях цвета ycbcr. Канал Cb и Cr является субсэмплированным 2. Таким образом, субсэмплинг составляет 4:2:0. Коэффициенты постоянного и переменного тока кодируются и квантуются в dct. Сгруппированные по блокам 8x8 значения постоянного тока рассчитываются по разности дельты и их категории, значения переменного тока кодируются по длине прогона. Значения dc и ac записываются чересстрочно в формате yyyycbcr. Все коды Хаффмана кажутся правильными, и такие инструменты, как jpeg snoop, заканчивают процедуру декодирования без какого-либо предупреждения о плохих маркерах или кодах Хаффмана. все вроде хорошо. Рисунок 1 - исходное изображение в формате ppm.

Эта картинка читается и преобразуется в сжатый формат JPEG. картинка 2 демонстрирует вывод картинки 1 после сжатия. Рисунок 3 показывает изображение с максимальными значениями яркости. все значения канала y установлены на 255 на рисунке 3. Есть ли идеи, почему канал яркости способен генерировать такой шаблон на рисунке 2?

картина

0 ответов

Другие вопросы по тегам