Сжатие от 10 до 20 сильно избыточных изображений с какой библиотекой сжатия? - PullRequest
3 голосов
/ 27 октября 2010

Я собираюсь генерировать изображения раз в минуту или около того из камеры с низким разрешением. Я хотел бы взять от 10 до 20 изображений и сжать их для передачи по каналу с очень ограниченной пропускной способностью. Я смотрел на использование x264, но это похоже на убийство.

Учитывая, что мои изображения имеют размер 320x240, с высоким уровнем избыточности между кадрами, какой будет лучший путь?

Кодирование не должно быть особенно быстрым, оно больше касается нахождения баланса между сложностью реализации на встроенном устройстве и уменьшением общего размера файла.

У меня будет полный контроль над программным обеспечением для просмотра, поэтому можно использовать модифицированную версию схемы сжатия.

Я буду использовать freeRTOS

Ответы [ 4 ]

1 голос
/ 27 октября 2010

Простой и надежный способ сделать это - просто закодировать каждый кадр в формате JPEG.Это может быть представлено в виде потока M-JPEG .Сжатие обычно приличное, даже если не оптимальное.Если это достаточно хорошо для вас, пойти на это.

0 голосов
/ 06 декабря 2011

Во встроенной системе H.264 является избыточным, потому что кодирование требует вычислений, а также декодирование. Еще более важным (и, следовательно, чрезмерным) использованием ffmpeg является тот факт, что ffmpeg имеет около 150 нечетных кодеков. Так что портирование их тоже становится проблемой.

Более простой подход состоит в том, чтобы проверить, является ли IJG переносимым в вашей системе. (Как таковой он оказывается наиболее переносимым на различных платформах.

В этом случае вы можете применить простую разницу кадров между последовательными кадрами и сделать из них отдельные JPEG. Если имеется избыточность, последующие JPEG будут иметь гораздо меньший размер.

Прежде чем приступить к переносу, вам следует просто проверить, действительно ли избыточность помогает снизить скорость передачи данных.

0 голосов
/ 27 октября 2010

Почему x264 перебор? Это действительно эффективный кодер, и если вы хотите использовать пространственно-временную избыточность, вам нужно использовать алгоритмы сжатия, такие как H.264, вместо набора JPEG.

0 голосов
/ 27 октября 2010

Есть ли порт libavcodec для этого устройства?Я думаю, что он имеет встроенный кодер h.264. Я не думаю, что h.264 является излишним.

Определите «ограниченную пропускную способность».Если у вас достаточно пропускной способности для передачи со скоростью 1 бит на пиксель (это будет 160 байтов в секунду на частоте 1 кадр / минута), вам не нужно выходить за пределы JPEG.Если у вас есть даже меньше, то временное сжатие (какой-то MPEG) гарантировано.

...