SOPHON OpenCV读取图片常见问题
1. 4K图片的问题
由于VPP只支持4K大小的图片,所以通过OpenCV读取图片后,会自动保持比例缩放到一个4K以内的尺寸。
2. OpenCV读取图片,再通过cvMat转为bmimage之后,调用bmcv_image_vpp_convert做缩放或者颜色空间转换,得到的图片不一致
OpenCV内部的转换矩阵和bmcv_image_vpp_convert使用的转换矩阵不一致,需要调用bmcv_image_vpp_csc_matrix_covert, 并且指定CSC_YPbPr2RGB_BT601来进行转换才能保持一致。
3. OpenCV imread读取图片性能问题
如果碰到图片小于16x16大小的图片,或者progressive 格式的jpeg,芯片不能实现加速,结果走了CPU的路径,导致客户发现图片解码并没有加速。
4. OpenCV的imread接口读取进来的JPG图片尺寸问题
软解JPG保持原尺寸。硬解JPG的话,会使用到JPU,虽然JPU默认最大尺寸是3276832768,但VPP最大支持尺寸是40964096。 这里为满足后续VPP宽高同时小于4K的要求,会自动将图片宽高缩小到4K以下。 例如,当前wh=50003000,则会同时将宽高除以2,得到2500*1500,此时宽高均满足小于4K,则停止resize。否则会继续宽高除以2的操作,最多会进行3次下采样(32768 / 8 = 4096)。