Iam работает над реализацией FPGA MJPEG Encoder
, который использует стандартные quantisation
и huffman tables
.Создание таблиц Huffman для Motion JPEG на FPGA
Вопрос:
Можно ли генерировать Хаффмана таблицы на лету?.
Я имею в виду, что после ввода кадра в качестве входного сигнала блок в FPGA
должен генерировать соответствующий huffman tables
для frame
.
block
может хоть немного расслабиться, потому что несколько предстоящих кадров будут похожи друг на друга.
Я уже прошел через vitter algorithm
(динамическое кодирование huffman). Но я сомневаюсь, что это будет аппаратно эффективным.
Будет полезно, если я получу несколько идей от людей вокруг или от тех, кто уже реализовал такие вещи уже на FPGA.
Что-то вроде этого:
tables = huffmantables(frame)
// wait for some frames
Спасибо заранее !!
Я использую стандартные таблицы, и коэффициент сжатия хорош. Я прочитал некоторые исследовательские работы, они предлагают удвоить коэффициент сжатия с помощью динамических таблиц. Я еще не использовал оптимальные таблицы. В соответствии с вашим советом я сначала попробую «оптимизированные таблицы Хаффмана», а затем проверит коэффициент сжатия. Мне действительно не нравится жестко кодировать все 'Huffman ROM'' для' Cr' и 'Y'. Стандартные данные не обеспечивают вероятности, которые они назначили для каждого значения пикселя. Было бы очень полезно помочь, если вы разделите ресурс с вероятностью пикселя. Я их не найду. – vikram9866
Это зависит от того, что вы кодируете, и от таблиц квантования. Если вы кодируете темные изображения, более низкие значения Y будут иметь более высокую вероятность. Если у вас есть фиксированное использование, просто пойдите с образцом видео для анализа. В противном случае я бы использовал стандартные таблицы из JPEG или другого видеостандарта, такого как MPEG2. В некоторых профессиональных видеоформатах фиксированная таблица Хаффмана (например, DNxHD), и они работают достаточно хорошо. Вы можете сделать лучше, но тогда более новый формат с адаптивным энтропийным кодированием лучше справляется с меньшей сложностью ... Просто убедитесь, что это действительно стоит, прежде чем делать это! Будь проще! –