Вы правы - алгоритм Хаффмана последовательный, хотя и не является узким местом для высокоскоростного кодирования. Пожалуйста, посмотрите на следующую сессию GTC 2012 . Это реальное решение, а не просто пример.
Вы можете найти там некоторые тесты для CPU и GPU, касающиеся кодирования и декодирования Хаффмана. Кодирование Хаффмана на GPU намного быстрее, чем на CPU. Декодирование JPEG на GPU может быть намного медленнее по сравнению с CPU только в том случае, если в изображении JPEG нет маркеров перезапуска.
Если вам нужен Хаффман не для JPEG, то следует использовать двухпроходный алгоритм. На первом проходе можно собирать статистику и выполнять кодирование на втором проходе. Оба прохода могут выполняться параллельно, поэтому лучше использовать графический процессор вместо центрального процессора.
Есть много газет, в которых говорится, что GPU не подходит для Хаффмана. Это просто означает, что было много попыток решить проблему. Идея решения довольно проста: используйте кодирование Хаффмана для небольших порций данных и попробуйте обрабатывать их параллельно.