У меня есть встроенное приложение, в котором сканер изображений отправляет поток из 16-разрядных пикселей, которые позже собираются в изображение в градациях серого. Поскольку мне нужно как сохранять эти данные локально, так и перенаправлять их на сетевой интерфейс, я хотел бы сжать поток данных, чтобы уменьшить требуемое пространство для хранения и пропускную способность сети.сжатие изображения без потерь
Есть ли простой алгоритм, который я могу использовать для без сжатия данных пикселей?
Сначала я подумал о вычислении разницы между двумя последовательными пикселями и затем кодировании этой разницы с кодом Хаффмана. К сожалению, пиксели представляют собой неподписанные 16-битные величины, поэтому разница может быть где угодно в диапазоне -65535 .. +65535, что приводит к потенциально огромным длинам кодового слова. Если в строке возникает несколько действительно длинных кодовых слов, я столкнулся с проблемами переполнения буфера.
Update: моя платформа является FPGA
У меня такая же проблема, не на FPGA, но с использованием ARM и мои данные - 12 бит. Что вы в конечном итоге использовали? – user4749