AnsweredAssumed Answered

i.MX6Q VPU: Enabling intraRefresh encoding

Question asked by rebelalliance on Aug 21, 2013
Latest reply on Aug 22, 2013 by Eagle Zhou


I am interested in using the i.MX6Q VPU to encode H.264 streams with intra-refresh enabled.  For this I looked up in the i.MX 6Dual/6Quad VPU Application Programming Interface Linux Reference Manual, Rev L3.0.35_4.0.0, 05/2013, page 24 where it states that setting the intraRefresh field to a non-zero value in EncOpenParam structure and passing to the vpu_EncOpen() API will enable intra-refresh:


intraRefresh where 0 = Intra MB refresh is not used. Otherwise = At least N MB's in every P-frame are encoded as intra MB's. This value is ignored in for STD_MJPG.


So, following the above directions, I set intraRefresh to different non-zero values (800, 2400, etc) and encoded 1080 H.264 streams from the camera.  Upon examination of the streams, it looks likes there are still I-frames in the video.  I am under the impression that when intra-refresh parameter is enabled then there would be no I frames in the video, just P frames with the Intra MBs embedded within. 


I am modifying vpu_wrapper.c from the 4.0.0 LTIB release.  In VPU_EncOpen(), I set sEncOpenParam.intraRefresh = 2400.  Also tried other values.


My question is why the VPU is still generating I-frames despite the intra-refresh option set?

Also whether there are other options I need to enable/modify to get this to encode properly?