Toybrick

标题: 关于使用mpp硬解码jpeg图片的问题 [打印本页]

作者: 15195979392    时间: 2022-3-9 19:01
标题: 关于使用mpp硬解码jpeg图片的问题
       我使用官方test里的mpi_dec_test解码了一张640x480的jpg图片,没对代码做任何改动,生成的yuv文件可以正常用ffplay播放出来,我看yuv文件的大小为614400(640x480的2倍),应该是用的yuv422格式解码的,但是我没看到代码里哪里对输出格式设置为了yuv422,打印出来的是65551,对应MPP_FMT_BUTT,是未指定输出格式时默认为yuv422吗?

        还有,我根据test自己改了一版代码,在/* poll and wait here */
    ret = mApi->poll(mCtx, MPP_PORT_OUTPUT, MPP_POLL_BLOCK);
    if (ret)
    {
        // MPP_ERR("mpp output poll failed\n");dump_mpp_frame_to_file
        cout << "mpp output poll failed " << endl;

        return ret;
    }


这个函数运行时,有区别于官方test的报错打印,但是没退出,报错如下:
mpp[2208]: vcodec_ service: vcodec_ service_ reg_ wr reg size mismatch wr 636 rd 736
mpp[2208] : vcodec_ service: vcodec_ service_ cmd_ send ioctl VPU_ I0C_ SET_ REG failed ret -1 errno 14 Bad address
mpp[2208]: HAL_ JPEG_ VDPU2: hal_ jpegd_ vdpu2_ start send cmd failed 14
mpp[2208]: vcodec_ service: vcodec_ service_ cmd_ poll ioctl VPU_ I0C_ GET_ REG failed ret -1 errno 110 Connection timed out
mpp[2208]: HAL_ JPEG_ VDPU2: hal_ jpegd_ vdpu2_ wait poll cmd failed 110


第一行的打印,官方test也有,但是没有后面几行报错,我解码出来的图片大小没问题,播放出来就是花花绿绿的看不清,有时是全绿

我想请教懂的大佬第一行打印是什么意思,后面的报错可能是因为什么产生的?
(第一次接触硬解码,甚至是解码的知识,新人小白求助



作者: jefferyzhang    时间: 2022-3-10 11:21
硬件库遵循最小使用原则,编码什么格式,解码就是什么格式,
解码完自行使用其他元件再去转换格式。
有些芯片vpu支持后处理转码,3399是不带的。
作者: 15195979392    时间: 2022-3-10 15:02
jefferyzhang 发表于 2022-3-10 11:21
硬件库遵循最小使用原则,编码什么格式,解码就是什么格式,
解码完自行使用其他元件再去转换格式。
有些芯 ...

那就是说我用3399没法指定图片的解码格式是嘛?报错产生的原因也是因为我自行指定了输出格式?
作者: jefferyzhang    时间: 2022-3-10 15:09
15195979392 发表于 2022-3-10 15:02
那就是说我用3399没法指定图片的解码格式是嘛?报错产生的原因也是因为我自行指定了输出格式? ...

报错原因我没跟过不了解,但是你说用mpi_dec_test是正常的,就不会有什么太大问题。

你拿到的图片肯定是没办法在mpp里去指定特定格式输出的,可以从mpp输出得到他的格式类型,然后自行用rga或者cpu去转换。

作者: 15195979392    时间: 2022-3-10 15:16
jefferyzhang 发表于 2022-3-10 15:09
报错原因我没跟过不了解,但是你说用mpi_dec_test是正常的,就不会有什么太大问题。

你拿到的图片肯定是 ...

OK,我知道了,谢谢大佬




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3