2016-06-03 5 views
0

У меня есть размер байт-байта размером 400 МБ. Где жетоны huffman - все возможные 4-битные значения (0-15). Я должен расшифровать его в течение 1 минуты. Мне нужен эффективный способ декодирования. В 16-гигабайтной оконной системе с частотой процессора 2,8 ГГц. я могу сделать это через 1 минуту?Быстрое декодирование таблицы huffman

+0

То, что вы говорите, не имеет смысла. У вас должно быть 256 различных токенов хаффмана, а не 16. Как вы думаете, «маркеры имеют все возможные длины» (от 1 до 15 бит)? Токены могут быть длиннее. Декодирование 7 МБ в секунду или 400 циклов на байт указывало бы на весьма плохо исполняемый код. – gnasher729

+0

Я имел в виду, что значения листьев будут 0-15 (4-битные значения). –

ответ

1

Прошло около восьми секунд на моем четырехъядерном процессоре i7 с частотой 2 ГГц, используя раздуватель раздувания zlib, учитывая только кодированный вход Huffman, который был сжат с 4: 1 до 400 МБ.

Да, вы должны быть в состоянии сделать много лучше, чем за минуту.

+0

Поскольку вы, по-видимому, не знаете, как записать «вы», тогда декодирование Хаффмана может быть слишком сложным для вас. Что это за «ds»? В любом случае вы можете посмотреть код взлома в [zlib] (http://zlib.net/) для того, как сделать быстрое декодирование Хаффмана на основе таблиц. –

+0

Спасибо. По ds я имел в виду структуры данных. –

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