最近在做一个视频监控的项目,采用QT编程,移植到ARM板发现CPU占用率高达50%而且图像延时挺严重,测试的摄像头格式为YUYV,软件编码转换为RGB格式,paintEvent函数代码如下:
rs = vd->get_frame(&yuv_buffer_pointer,&len);
convert_yuv_to_rgb_buffer();
frame->loadFromData(rgb_buffer,640 * 480 * 3);
ui->label->setPixmap(QPixmap::fromImage(*frame,Qt::AutoColor));
rs=vd->unget_frame();
其中一部分原因是软件进行格式转换,那么另一部分原因会不会是setPixmap这个函数效率太低呢?各位大侠支支招,是否有其他更好的方法,格式转换这部分可以忽略,因为以后使用的摄像头数据格式不是YUYV,而是RGB888,,谢谢了!!!!