i.MX6 VPU Automatic Frame Skip Function

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

i.MX6 VPU Automatic Frame Skip Function

1,026 Views
masa-i
Contributor I

Hi ,

I've been evaluating "enableAutoSkip" function of VPU API of i.MX6.

My current environment is :
- Target       : i.MX6Q (SABRE-SDP)
- OS           : Linux 3.14.28
- Encoding     : H.264 (1920x1080)
- VPU firmware : Ver  3.1.1_r46063
- VPU library  : Ver  5.4.28

I've tested by the following conditions here.(based on "mxc_vpu_test")
- H.264 video encoding.
- Set fixed frame rate : 30fps (also GOP=30 fixed.)
- Use same 1080P YUV image file as video input.
- Set enableAutoSkip=1(enable)
- Target bit rate is being done a little small.(from 4Mbps to 500kbps)

Assumed result:
- As a target bit rate is lowered, image quality becomes bad gradually.
- The encoded data size is always almost same.
- A frame skip occurs from some bit rate.

Actual result:
- Image quality will be gradually badly.
- The encoded data size becomes bigger than the target from some bit rate.
- A frame skip doesn't seem performed.

Generally key-frame(I-picture) doesn't skip. Then VPU shouldn't skip an I-picture
and should skip an P-picture (or P-pictures), I think.
Also by extreme setting,such as the case of setting very small target bit rate,
then all P-pictures must be skipped.

However, I can't find any skipped-frames from the result.

Would there be any mistakes in my understanding or test method?

regards,

Masahiro

Issues about "enableAutoSkip" function in VPU API

Labels (3)
0 Kudos
5 Replies

707 Views
joanxie
NXP TechSupport
NXP TechSupport

I got answer from expert team from another thead, the owner answered the same question as yours:

"

Please  check the VPU API doc,

skipPicture. If this value is 0, the encoder encodes the picture normally. If this value is 1, the encoder ignores

sourceFrame and generates a skipped picture. In this situation, the reconstructed image is a duplication of the previous

picture. The skipped picture is encoded as P-type regardless of GOP size.

enableAutoSkip. The value 0 disables automatic skip and 1 enables automatic skip in encoder operation. Automatic skip

means encoder can skip frame encoding when generated Bitstream so far is too big considering target bitrate. This parameter

will be ignored if rate control is not used (bitRate = 0).

For  automatic skip,  I think its behavior is like force enable skipPicture situation, thus there should be P-type.

"

"

I think  there should be many skip macro blocks , but may be not all of them is skip macro block.

The result is decided by encoder in the run time  , and the result may be different from case to case , may be  even encoding from same source twice you will got different result.

"

0 Kudos

707 Views
Aemj
Contributor IV

Hi Guanqiong,

We are still waiting for your comment against the Masahiro's latest post.

Is it possible to provide the actual example of skipping frames by configuring enableAutoSkip parameter?

BR,

Miyamoto/AVNET

0 Kudos

707 Views
joanxie
NXP TechSupport
NXP TechSupport

"after enable enableAutoSkip=1, some p frame  content will be dropped, but not means the frame was dropped, the frame will repeat the last frame, then it will be encoded to small size, so the display sequence number is still succession."

0 Kudos

707 Views
joanxie
NXP TechSupport
NXP TechSupport

I'm waiting for reply from expert team too, any update, I'll forward to you ASAP.

0 Kudos

707 Views
masa-i
Contributor I

Hi Guanqiong,

Thank you for the information.
Which thead did you get the answer?

I'm checking the VPU API doc of course. It says "enableAutoSkip" means encoder can skip frame encoding.
"skip macro block" is decided in the encoding process which does rate control,I think.

If all of the macro blocks in a frame is not skipped, it does not mean "skip frame".

I couldn't see any skipped frames in my test.

Masahiro

0 Kudos