Issues about "enableAutoSkip" function in VPU API

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Issues about "enableAutoSkip" function in VPU API

2,651件の閲覧回数
masa-i
Contributor I

I'm evaluating the various functions of VPU.
I'm using SABRE-SDP with Linux environment based on Poky 1.7(Yocto).

I'm referring to the "VPU API Linux Reference Manual" and am estimating H.264 video
encoding function, but I have a doubt about the function of "enableAutoSkip".

In the API Reference Manual:
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).

I set enableAutoSkip=1 and encoding video with low bitrate at fixed frame rate(30fps/GOP=30).
I've checking "skipEncoded" in "EncOutputInfo" struct during encoding,but "skipEncoded"
never become 1 even if I changed bitrate lower.

Generated bitstream was bigger than target bitrate.

Also check the bitstream,but skipped frame was not found.

(I've tested with FullHD 30fsp video Input , and set the bitrates 50kbps to 4Mbps.)

Does anyone check this function work right?  or  Is my undestanding wrong?

ラベル(3)
0 件の賞賛
返信
14 返答(返信)

2,183件の閲覧回数
Aemj
Contributor IV

Hi team,

We are still waiting for your reply.

I wish somebody respond.

BR,

Miyamoto

0 件の賞賛
返信

2,183件の閲覧回数
Aemj
Contributor IV

Hi Guanqiong,

The customer is using unit_test(mxc_vpu_test) for the test.

They believe that frame skip will occur under the following situation.

When they set enableAutoSkip to enable and set frame-rate to fixed, if they reduce ‘target bitrate’ gradually then frame skip will occur at a certain point(target bitrate).

You can use any YUV data contents for input of mxc_vpu_test and test as above for reproducing this phenomenon.

If our understanding is wrong, please let me know.

May I ask you to reproduce this phenomenon on your side?

Does it make sense?

Thanks,

Miyamoto

0 件の賞賛
返信

2,183件の閲覧回数
masa-i
Contributor I

Hi Guanqiong,

Thank you for reply.

I've checked it by the following condition.

* Use same 1080P YUV image file as input.

* Set CBR and fixed fps(30fps), GOP=30.

* Set enableAutoSkip =1

* Encoding which bit rate is being changed gradually from 4Mbps to 500kbps.

But encoded frame was not skipped.

How did you check skipped frames ?

regards,

Masahiro

0 件の賞賛
返信

2,183件の閲覧回数
joanxie
NXP TechSupport
NXP TechSupport

enableAutoSkip parameter does work!!

did you get the same streaming or  not  when you set enableAutoSkip =1 or 0?

0 件の賞賛
返信

2,183件の閲覧回数
Aemj
Contributor IV

Hi,

Thanks for your reply.

The stream is exactly the same. Does it depend on LinuxBSP version?

BR,

Miyamoto

0 件の賞賛
返信

2,183件の閲覧回数
masa-i
Contributor I

Dear Guanqiong,

Thank you for your reply.  The frame rate is 30fps(fixed) and I've tested encoding with  lowering the bitrate gradually.

I don't use gstreamer.  I'm checking frame skip function using a test program to which API in VPU is called directly.

I'm referring the following reference manual.

[i.MX 6Dual/6Quad VPU Application Programming Interface Linux Reference Manual]

Also I found 2 more doubtful points in VPU API.

1."userQpMin" in EncOpenParam structure
The userQPMax could confirm that setting becomes effective from a encoded stream,
but userQpMin is invalid. It seems disabled in VPU driver.

If userQpMin can't be effectively, I'd like to know the reason.

2."avc_disableDeblk" in EncAvcParam structure
I want to use DBF in H.264 encoding. I was set related following parameters.
  avc_disableDeblk
  avc_deblkFilterOffsetAlpha
  avc_deblkFilterOffsetBeta
In the H.264 encoded stream (I analyzed the stream), deblocking filter is certain effectively.
But the actual effect of the filter can't be confirmed with a decoded picture.
(I've checked it by combination of various parameters.)

Is there anyone checked about this function?

Dear team,    Should I post these issues by another thread?

Masahiro

0 件の賞賛
返信

2,183件の閲覧回数
Aemj
Contributor IV

Dear Guanqiong,

As for the additional two questions written in the customer's previous post, he created two other thread as below.

https://community.freescale.com/message/642440

https://community.freescale.com/thread/391633?sr=stream

Here, we need to your comment for the original question whether enableAutoSkip=1 really work.

The customer expects the quality of the images are improved even if the skips of the frames occur.

Could you give your comment on that?

Thanks,

Miyamoto

0 件の賞賛
返信

2,183件の閲覧回数
Aemj
Contributor IV

Dear Guanqiong,

We still wait for your reply for the original question from the customer on this thread.

Please let me know if you have more information on this.

BR,

Miyamoto

0 件の賞賛
返信

2,183件の閲覧回数
Aemj
Contributor IV

Hi Guanqiong,

We believe that  enableAutoSkip and framedrop parameters do not work.

Please give your comment about whether it is true.

Thanks,

Miyamoto

0 件の賞賛
返信

2,183件の閲覧回数
joanxie
NXP TechSupport
NXP TechSupport

bad performance encoding depending differenct case, not only enableAutoSkip=1, could you tell me what frame rate and bit rate you set?? and pls give me your encoding gstreamer command to check.

and you can set framedrop=true to drop 2-3 frames when the performance is bad.

0 件の賞賛
返信

2,183件の閲覧回数
Aemj
Contributor IV

Dear Guanqiong,

Thanks for your reply.

Soon, the customer will reply to you.

Thanks,

Miyamoto

0 件の賞賛
返信

2,183件の閲覧回数
joanxie
NXP TechSupport
NXP TechSupport

Automatic frame skipping in VPU rate control is used for limiting the output amount of bitstream under the given target bit-rate. if you want to achive the requested bit rate ( low bit rate ) depend on enabling the skip frame feature, you can use this option.

0 件の賞賛
返信

2,183件の閲覧回数
masa-i
Contributor I

Thanks for your answer.

I understand the mechanism of rate control and frame skip.

But my question is the point that a frame doesn't skip  even if the enableAutoSkip is made effective.

Are there other any ideas?

0 件の賞賛
返信

2,183件の閲覧回数
Aemj
Contributor IV

Dear team,

The customer who posted the original question of this thread still needs your reply.

Some degraded images are seen in the video which is encoded by i.MX6 VPU with H.264.

They are trying to improve that by tuning some parameters in VPU APIs.

And they think that the degraded images may be improved if they can set enableAutoSkip to 1. For now, they think the “enableAutoSkip” parameter setting does not work.

Is it true?

Thanks,

Miyamoto

0 件の賞賛
返信