Full HD H.264 Transcoding on i.MX6

cancel
Showing results for 
Search instead for 
Did you mean: 

Full HD H.264 Transcoding on i.MX6

Jump to solution
269 Views
erlend_eriksen
Contributor III

Is the i.MX6Q able to do 1920x1080 30fps transcoding in real time?

I seem to get a delay of around 3 seconds after 10 seconds of transcoding.

I have overclocked my vpu to 352 MHz.

My gstreamer pipeline is as following:

gst-launch-1.0 -v v4l2src device=/dev/video2 ! "video/x-h264, width=1920,height=1080, framerate=30/1" ! queue max-size-bytes=0 max-size-time=0 max-size-buffers=0 ! imxvpudec ! imxvpuenc_h264 bitrate=14000 ! h264parse  ! mp4mux ! filesink location=out.mp4 -e
Is this transcoding scenario supported?
I have seen the figure of 72,576,000 pixels/s maximum throughput, which my scenario would exceed, but isn't this figure larger with an overclocked vpu?
Labels (3)
1 Solution
89 Views
igorpadykov
NXP TechSupport
NXP TechSupport

Hi Erlend

in theory this is possible as described on p.19 presentation

FTF-INS-F1191.pdf 

However on real board it depends on use case (processor and internal buses loading,

how many other applications are running).

Gstreamer-imx plugins seems are used in the case, also one can try with nxp

imx-gst1.0-plugins, usage is described in Linux Guide included in linux documentation on

i.MX Software | NXP and linux from nxp source.codeaurora.org/external/imx/linux-imx repository

linux-imx - i.MX Linux kernel 

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

View solution in original post

3 Replies
89 Views
erlend_eriksen
Contributor III

Thank you for your answer Igor.

It would be great to hear from someone who has gotten the Full HD H.264 transcoding to work on their i.MX6.

Two questions:

1. With regards to what other processes are running, it was my understanding that this would not affect the transcoding since that's done entirely on the separate VPU processor. However, from slide 21 in http://cache.freescale.com/files/training/doc/ftf/2014/FTF-CON-F0165.pdf , it looks like the VPU shares SDRAM with the host application running on the ARM processor. Is this why the number of applications running on the ARM processor affects the transcoding performance?

2. I have also noticed that some specs refer to what I guess is DDR bus frequency, for instance at slide 7 in the same document (DDR=532MHz). Does this mean I should modify my i.MX6 firmware or use a DDR3 initialization script as described in MX6DQP DDR3 Script Aid  in order to get the specified DDR frequency and achieve better transcoding performance?

0 Kudos
89 Views
igorpadykov
NXP TechSupport
NXP TechSupport

Hi Erlend

yes vpu also uses ddr, in general there is tool for measuring ddr utilization

README\mmdc\test - imx-test - i.MX Driver Test Application Software 

Regarding DDR bus frequency, it is set to max. automatically by linux and

with settings provided by i.MX6/7 DDR Stress Test Tool V3.00 

Best regards
igor

0 Kudos
90 Views
igorpadykov
NXP TechSupport
NXP TechSupport

Hi Erlend

in theory this is possible as described on p.19 presentation

FTF-INS-F1191.pdf 

However on real board it depends on use case (processor and internal buses loading,

how many other applications are running).

Gstreamer-imx plugins seems are used in the case, also one can try with nxp

imx-gst1.0-plugins, usage is described in Linux Guide included in linux documentation on

i.MX Software | NXP and linux from nxp source.codeaurora.org/external/imx/linux-imx repository

linux-imx - i.MX Linux kernel 

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

View solution in original post