Is the IPU really OBSOLETE on the i.MX6?

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

Is the IPU really OBSOLETE on the i.MX6?

1,689 Views
claymontgomery
Contributor IV

I noticed that in the latest version of the VPU Unit Test for the i.MX6 (mxc_vpu_test) a warning message has been added that states "IPU lib is OBSOLETE, please try other renderer" and the test always fails if the IPU is selected for output, such as:

    ./mxc_vpu_test.out -D "-f0 -x1 -i akiyo.mp4"

The warning is emitted from this code in this file:

   imx-test/imx-test-3.14.28-1.0.0/test/mxc_vpu_test/main.c

    info_msg("Display through IPU LIB\n");

                    if (cpu_is_mx6x())
                        warn_msg("IPU lib is OBSOLETE, please try other renderer\n");

Is this problem with the IPU library or the IPUv3 silicon and can it be fixed or worked around? Can you point me at an app note with details on this?

I understand that V4L2 can be used instead, but does that have hardware acceleration of color space conversion (YUV -> RGB) and image scaling, as the IPU does?

Thanks, Clay

0 Kudos
8 Replies

1,191 Views
igorpadykov
NXP Employee
NXP Employee

Hi Clay

pastedImage_1.jpg

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

1,191 Views
claymontgomery
Contributor IV

Igor,

I understand that V4L2 can be used instead, but does that have hardware acceleration of color space conversion (YUV -> RGB) and image scaling, as the IPU does?

 

Thanks, Clay

0 Kudos

1,191 Views
igorpadykov
NXP Employee
NXP Employee

Hi Clay

for color space conversion please check

ipu-examples release notes - v0.1 | NXP Community 

Best regards
igor

0 Kudos

1,191 Views
claymontgomery
Contributor IV

Thanks, I have those examples, but does the V4L2 use any hardware acceleration of color space conversion (YUV -> RGB) and image scaling, as the IPU does?

Regards, Clay

0 Kudos

1,191 Views
igorpadykov
NXP Employee
NXP Employee

unfortunately I could not understand what do you mean by :

"V4L2 use any hardware acceleration of color space conversion (YUV -> RGB) and image scaling, as the IPU does?"

could you clarify ?

0 Kudos

1,191 Views
claymontgomery
Contributor IV

Certainly. I need to understand the consequences of using the V4L2 path for the output of video, rather than using the IPU for the output of video. The IPU has dedicated hardware to convert pixels from NV12 (YUV) format to RGB and the IPU also has hardware to scale video up to 1080p resolution. Do we lose both of those hardware acceleration features by using V4L2 display instead of the IPU display?

   I suspect the answer is; Yes, we lose both, (which means the V4L2 driver must do all of it in software), unless the V4L2 kernel driver is able to still utilize some parts of the IPU, such as the IC (Image Converter) or do the pixel conversion and scale using some other hardware in the i.MX6.

Thanks, Clay

0 Kudos

1,191 Views
igorpadykov
NXP Employee
NXP Employee

Hi Clay

right, using just generic V4L2 drivers will lose IPU hardware support.

Please refer to attached Linux Manual Chapter 9 Video for Linux Two (V4L2) Driver

to check what is integrated from nxp side. More documentation can be found on

http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/i.mx-applications-process...


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

0 Kudos

1,191 Views
claymontgomery
Contributor IV

Reading through that document and the kernel source, it looks like the V4L2 module named mxc_vout does use the IPU for something.

9.3 V4L2 Output Device
        The V4L2 output driver uses the IPU post-processing functions for video output.
        The driver implements the standard V4L2 API for output devices. V4L2 output device
        support can be selected during kernel configuration. The driver is available at
        <Yocto_BuildDir>/linux/drivers/media/platform/mxc/output/mxc_vout.c
        

And it's controlled by the kernel configs:
    CONFIG_VIDEO_MXC_IPU_OUTPUT=y
    CONFIG_VIDEO_MXC_PXP_V4L2=y

Thanks, Clay

0 Kudos