Сжатие JPEG с использованием DCT - PullRequest
0 голосов
/ 09 ноября 2018

Я немного запутался в коде Хаффмана. Поэтому, когда я читаю книги, в нем говорится, что после зигзагообразного упорядочения это будет кодировка длины пробега и Хаффман для длины пробега. У меня есть 3 вопроса: 1) Нужно ли выполнять как кодирование длины прогона, так и Хаффмана, или просто Хаффмана для всего изображения (которое является серой шкалой). Я имею в виду, что я могу просто отсканировать блок 8х8 и посчитать частоту появления символов, а затем создать кодовые слова. 2) Если я использую кодирование длины прогона для каждого блока, то Хаффман также подходит для каждого блока 8x8, или мне приходится сканировать все изображение целиком. 3) В книге говорится, что мы могли бы просто использовать таблицу K.3 и таблицу K.5 в приложении K для кодирования коэффициентов постоянного и переменного тока. Могу ли я не использовать эти таблицы и генерировать свои собственные, основываясь на теории в вопросе 2, которую я тоже запутал. Спасибо за помощь мне Это ссылка на приложение K https://www.w3.org/Graphics/JPEG/itu-t81.pdf

1 Ответ

0 голосов
/ 10 ноября 2018

Вы МОЖЕТЕ сжать, как говорите, но это не будет JPEG. Процесс кодирования довольно сложен в JPEG. Это не совсем кодировка значений Хаффмана. Это кодирование Хаффманом инструкций при нулевых запусках и число дополнительных необработанных битов, которые необходимо прочитать.

1) Необходимо ли выполнять как кодирование длины пробега, так и Хаффмана, или просто Хаффмана для всего изображения (которое является серой шкалой).

Чтобы это был поток JPEG, вам нужно сделать оба.

2) 2) Если я использую кодирование длины серии для каждого блока, то Хаффман также предназначен для каждого блока 8x8, или мне приходится сканировать все изображение целиком.

Некоторые кодировщики делают это для генерации оптимальных таблиц Хаффмана.

3) В книге говорится, что мы могли бы просто использовать Таблицу K.3 и Таблицу K.5 в Приложении K для кодирования коэффициентов постоянного и переменного тока. Могу ли я не использовать эти таблицы и генерировать свои собственные, основываясь на теории в вопросе 2, которую я тоже запутал.

Некоторые кодировщики делают это, чтобы не делать два прохода по данным DCT для генерации таблиц Хаффмана.

...