Я использую 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 раз в секунду.