Я думаю, что прочитал itu-t81.pdf документ несколько раз.Но я не мог понять, как получить данные блока (значения постоянного и переменного тока) из потока битов.
Проблема в том, что я не мог понять, как получить значения Хаффмана из битового потока.В приложении F раздел F.2.2.3 Процедура DECODE описывает таблицы DECODE, EXTEND и декодера.
Вопрос 1: Я думаю, что я должен построить таблицы декодера после (или во время) анализа маркера DHT, я прав?
Вопрос 2: Рисунок Рисунок F.15 - Генерация таблицы декодера использует HUFFCODE , но в разделе маркера DHT есть список HUFFVAL (Li, Vi, j), B.2.4.2 Синтаксис спецификации таблицы Хаффмана говорит:
Vi, j: значение, связанное с каждым кодом Хаффмана - задает для каждого i,значение, связанное с каждым кодом Хаффмана длины i.Значение каждого значения определяется моделью кодирования Хаффмана.Vi, j - это элементы списка HUFFVAL
Так что у меня нет списка HUFFCODE У меня есть только список HUFFVAL, полученный из маркера DHT.Как я могу получить или построить список HUFFCODE?
Приложение C также определяет, как строить таблицы Хаффмана, есть раздел о том, как построить список / таблицу HUFFCODE ( Рисунок C.2 - Генерация таблицы кодов Хаффмана ) Думаю, я должен использовать это для построения таблицы HUFFCODE.Но он также использует биты (я).Что это за значение?БИТЫ (I) приходят от DHT?
Исходя из моего понимания, я должен следовать следующим шагам:
- Анализ маркера DHT для получения таблицы / списка HUFFVAL
- Создание таблицы / списка HUFFCODE с помощью???
- Создание таблиц декодера (MAXCODE, MINCODE, VALPTR) с использованием таблиц HUFFCODE
- В маркере сканирования используйте DECODE и EXTEND, чтобы получить значение Хаффмана, используя MAXCODE, MINCODE, VALPTRтаблицы
Я не уверен, какие данные передать в битах (i) для получения HUFFCODE.
Спасибо за разъяснение шагов
PS: я не понимаюЯ не хочу строить дерево Хаффмана, вместо этого я хочу построить таблицу поиска.