关于VPU编码的问题

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

关于VPU编码的问题

4,380 Views
juzichen
Contributor I

之前在IMX6DL3.0.35内核版本上,利用V4L2框架获取YUV422视频,通过IPU转码成YUV420,再通过VPU硬编码已经完成!

    现在我需要移植到L3.14.52内核上,需要做哪些改变?2个版本的VPU编码是否存在差异?

    应用程序不改变时,运行时的一些log

    imx-ipuv3 2800000.ipu: IPU Warning - IPU_INT_STAT_9 = 0x04000000

    mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: mipi_lane_bps = 324 Mbps

    mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: value = 0x48.

    imx-ipuv3 2800000.ipu: handler already installed on irq 20.Error registering rot irq

    VIDIOC_STREAMON error

    imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00100000

    imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_9 = 0x04000000

    imx-ipuv3 2400000.ipu: ERR:[0xa88e4000]-no:0xd0 "wait_for_comp_timeout" ret:0,line:2967

    imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_9 = 0x04000000

    imx-ipuv3 2400000.ipu: ERR:[0xa88e2e00]-no:0xe0 "wait_for_comp_timeout" ret:0,line:2967

    imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_9 = 0x04000000

    imx-ipuv3 2400000.ipu: ERR:[0xa88e2e00]-no:0xf0 "wait_for_comp_timeout" ret:0,line:2967

    imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_9 = 0x04000000

    imx-ipuv3 2400000.ipu: ERR:[0xa88e2e00]-no:0x100 "wait_for_comp_timeout" ret:0,line:2967

    imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_9 = 0x04000000

    imx-ipuv3 2400000.ipu: ERR:[0xa88e2e00]-no:0x110 "wait_for_comp_timeout" ret:0,line:2967

    imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_9 = 0x04000000

这些好像是IPU的问题,当我把IPU关掉不用然后,再从V4L2那边直接获取YUV420视频格式的码流,直接VPU编码,能够编码,但是没有SPS和PPS字符串,全部是I帧和P帧。这个是什么问题?

而当我手动的把3.0.35上编码获得的SPS和PPS写到3.14.52编码后的avi文件时,播放的情况是这样的:如附件所示:

SPS:0x00,0x00,0x00,0x01,0x67,0x42,0x40,0x1e,0xa6,0x80,0xb0,0x12,0x64

PPS: 0x00,0x00,0x00,0x01,0x68,0xce,0x30,0xa4,0x80

出现这种图像叠加的情况,这个又是怎么问题呢?

谢谢!

0 Kudos
Reply
3 Replies

3,628 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello juzi chen ,

    原则上,应用程序,不需要做特别的改变,就可以直接在高版本上运行的。

请把下面的两个patch打上去,试试。

这里是IPU和VPU 资源,内有很多debug文档,对你调试很有帮助:

IPU:IPU Resources 

VPU:i.MX6 VPU Resources 


Have a great day,
TIC  Weidong sun

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

3,628 Views
juzichen
Contributor I

你好!非常感谢你的回复!

    无法打开你发的2个地址!如下所示:

pastedImage_2.png

除此之外,我再咨询一个问题,现在我的分辨率是D1的,当我做720P的时候,出现如下的一些提示:

imx-ipuv3 2400000.ipu: IC output size(1280) cannot exceed 1024

imx-ipuv3 2400000.ipu: failed to calculate prpenc width scaling coefficients

ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0

比较奇怪的是IPU我已经关掉了,还是显示ipu相关的信息?

做720p分辨率跟做D1的,除了分辨率不同之外,其它的需要修改哪些地方呢?

谢谢!

0 Kudos
Reply

3,628 Views
15203565340
Contributor II

你好,我最近也在做视频格式转换,平台IMX6Q,版本是3.0.35。我要在JNI中利用v4l2框架获取yuyv422,然后转为yuv420p,传给android显示。但转换很耗费cpu,现在想把转换通过ipu来做,但这一步不知道怎么做。请问你有详细步骤或者资料么,或者可以把你的这一部分的代码发给我么,494727564qq@.com。

希望能够回复我,谢谢了!

0 Kudos
Reply