реклама на сайте
подробности

 
 
> Хаффман кодирование (jpeg)
boulon
сообщение Oct 19 2015, 06:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 25-08-06
Пользователь №: 19 820



Здравствуйте, коллеги.

Строю свой кодер jpeg для ч\б 8-бит. изображения на fpga. 2D-DCT - quantization - zigzag сделал. Чтобы самому не строить дерево Хаффмана, хочу закодировать, использую стандартые таблицы кодирования (например отсюда http://www.w3.org/Graphics/JPEG/itu-t81.pdf).

Для простоты я задал тестовую матрицу 8х8, над которой далаю преобразования. У меня получилась такая последовательность посли зигзага и RLE:
DC: -19 (амплитуда);
AC: (0,-26); (0,-24); (0,-7); (0,-3); (0,-10); (0,1); (0,9); (0,10); (0,1); (0,-2); (0,-4); (0,-6); (0,-3); (0,-1); (1,1); (0,2); (0,-26); (0,3); (4,-1); (21,-1); EOB. (1-е число: кол-во предшествующих нулей "RUNLENGTH", 2-е: значение "AMPLITUDE").

DC можно разложить еще в (5, -19), где 5 - размер "SIZE".
Каждое AC можно разложить, добавив еще size, например (0,-26) в (0,5)(-26).

Общий вопрос. Зачем 2 таблицы: luminance, chrominance. У меня ч\б изображение, может достаточно одной luminance?

Как закодировать DC? Значение в первом блоке, как я понимаю, определяет общую яркость всей картинки, т.к все остальные DC будут кодироваться только как разность с предыдущей DC.
Есть 2 таблицы по 12 коэф. DC коэффициентов. (luminance DC, chrominance DC). Не могу понять, как используя их можно закодировать мое число -19.
Я могу предположить что для реального изображения разность между соседними DC будет не больше 11 и можно будет использовать всего 12 значений. Но как тогда закодировать первое значение (-19)?

Для AC также есть 2 таблицы (luminance AC, chrominance AC), они уже побольше, размер 16х11.
С AC понятно только как закодировать (0,5). Это значение 11010 в "luminance AC". Но вот что делать с -26?

В моей последовательности есть такое значение (21,-1). Это значит что перед -1 было 21 ноль. Знаю что для такого случая используется код (F,0). Как при помощи его закодировать?

Прошу помочь, кто занимался таким.
Спасибо.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th August 2025 - 22:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01347 секунд с 7
ELECTRONIX ©2004-2016