2016-04-02 4 views
0

Я пытался реализовать алгоритм сжатия JPEG на Matlab. Единственная часть, с которой я сталкиваюсь, - это кодировка huffman. Я действительно понимаю DCT в квантование и зигзагообразную матрицу 8x8. Я также понимаю, как работает кодировка хаффмана. Что я не понимаю, после того, как у меня есть выходной бит и словарь, который переводит последовательные биты в их исходную форму, что мне делать с выходом? Как я могу сказать компьютеру перевести этот выходной поток, используя словарь, который я создал для него? Кроме того, каждая матрица 8x8 будет иметь собственный выход и словарь. Как все эти выходы можно объединить в один? Потому что в конце дня результат должен быть изображением. Возможно, я неправильно понял некоторые шаги, и в этом случае я извиняюсь за любую путаницу, вызванную этим. Любая помощь была бы чрезвычайно appriciated!Matlab - сжатие JPEG. Huffman Encoding

EDIT: Извините, мой вопрос, похоже, не был достаточно ясным. Скажем, я использую Matlabs, встроенный в функции huffman (huffmanenco и huffmandict), что я должен делать со значением, возвращаемым huffmanenco? Часть того, что делать с выходной строкой бит, мне не понятна, поскольку кодировка хаффмана идет и на других языках IDE и на языках программирования.

ответ

0

У вас есть два варианта с кодировкой huffman.

  1. Используйте предварительно заправленный стол хаффмена.
  2. Сделайте два прохода над данными, в которых первый проход генерирует таблицы huffman и кодировку второго прохода.

У вас не может быть другого словаря для каждого MCU.

Вы говорите, что у вас есть закодированные значения длины пробега. Вы huffman кодируете их и записываете в выходной поток.

EDIT:

Вы должны быть уверены в том, что MATLAB Хаффмана endocoder является JPEG-совместимым. Существуют разные способы кодирования huffman.

Вам необходимо записать биты из кодировщика в поток JPEG. Это означает, что вам нужна процедура ввода/вывода на уровне бит. PLUS вам нужно преобразовать значения FF в сжатые данные в значения FF00 в потоке JPEG.

Я предлагаю получить копию

http://www.amazon.com/Compressed-Image-File-Formats-JPEG/dp/0201604434/ref=pd_sim_14_1?ie=UTF8&dpID=41XJBED6RCL&dpSrc=sims&preST=_AC_UL160_SR127%2C160_&refRID=1DYN5VCQQP0N88E64P5Q

, чтобы показать, как это делается кодирование.

+0

Прежде всего, спасибо, что ответили. Мой вопрос относительно кодировки может показаться действительно основным для тех, кто уже это понимает. Я отредактировал его, чтобы уточнить, что я имел в виду. –

Смежные вопросы