Как сделать это сжатие JPEG быстрее - PullRequest
3 голосов
/ 27 декабря 2010

Я использую OpenCV для сжатия двоичных изображений с камеры:

vector<int> p;

p.push_back(CV_IMWRITE_JPEG_QUALITY);

p.push_back(75); // JPG quality

vector<unsigned char> jpegBuf;

cv::imencode(".jpg", fIplImageHeader, jpegBuf, p);

Приведенный выше код сжимает двоичное изображение RGB, сохраненное в fIplImageHeader, в изображение JPEG. Для изображения 640 * 480 выполнение пяти строк выше занимает около 0,25 секунды.

Есть ли способ сделать это быстрее? Мне действительно нужно повторять сжатие более 4 раз в секунду.

Ответы [ 2 ]

4 голосов
/ 27 декабря 2010

Попробуйте использовать libjpeg-turbo вместо libjpeg, он имеет оптимизацию MMX и SSE.

1 голос
/ 27 декабря 2010

Если вы не против потратить деньги - рассмотрите Intel Performance Primitives - это очень быстро. У AMD есть Framewave, предположительно API-совместимый - я не пробовал.
Кстати - проверьте эту ссылку Быстрая библиотека кодирования JPEG

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