我正在使用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);
上面的代码将存储在fIplImageHeader中的二进制RGB图像压缩为JPEG图像。对于640 * 480图像,执行上述五行需要大约0.25秒。
有什么方法可以让它更快吗?我真的需要每秒重复压缩4次以上。
答案 0 :(得分:4)
尝试使用libjpeg-turbo
代替libjpeg
,它有MMX&amp; SSE优化。
答案 1 :(得分:1)
如果你不介意花钱 - 考虑一下英特尔性能原型 - 它的速度非常快。 AMD的Framewave应该与API兼容 - 我还没试过。
顺便说一句 - 请查看此链接Fast JPEG encoding library