H.264 encoding fails for frame rates greater than 172fps

H.264 encoding fails for frame rates greater than 172fps

Hi,

I noticed that Intel QSV H.264 encoding fails (returns MFX_ERR_UNSUPPORTED during query API call) if I configure encoding frame rates greater than 172fps even for resolutions like 720p. Looks like there is a check for 172fps irrespective of resolution.

As per my understanding, H.264 Level 5.2 has 172fps restriction for 1080p resolution. For resolutions lesser than 1080p (like 720p) we should be able to encode at more than 172fps.

Could you please help me understand the codec behavior? I need to encode a 720p clip which is 220fps.

System Configuration:

Hardware: i7-6770HQ

Media SDK Version: 2017 R2

Regards,

Prashanth

7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Prashanth, 

What is your operating system?

Best wishes, 

Anna

Hi,

We are using "CentOS Linux release 7.2.1511"

Regards,

Prashanth Dixit

Hi Prashanth, 

According to Annex A of AVC standard its possible to encode the 720p@240 stream with level not less than 5.1. To do that with Media SDK you need to exclude framerate information from stream syntax disabling TimingInfoPresent or enabling DisableVUI option. 

Best wishes, 

Anna

Hi Anna,

Thanks for the information. I believe disabling VUI is not a standard specific restriction for 720p@240fps. Is there any reason why do we need to disable VUI in IMSDK?

I will try this out and let you know in case I face any issue.

Regards,

Prashanth Dixit

Hi Prashanth, 

Sorry for the delayed response. I doublechecked this question. 

I was wrong saying that 720p@220 fps is allowed by the standard. Sorry, it’s my mistake. According the Annex A of AVC standard, framerate can be calculated in a way below:

Let the variable fR be derived as follows:

– If picture n is a frame, fR is set equal to 1 ÷ 172.

– Otherwise (picture n is a field), fR is set equal to 1 ÷ (172 * 2).

But if the stream doesn’t contain framerate – framerate values can’t be calculated and this restriction can’t be applied.

So, Media SDK allows user to encode high framerate if user excludes framerates information. A section that describes framerate is a part of VUI. So, we need to гыу disableVUI to encode with framerate higher than 172.

Best wishes,

Anna

Hi Anna,

Thanks for the info. Even I checked the standard again, and you are right, maximum frame rate for 720pHD is 172fps according to Annex A.

We have tested by disabling TimingInfoPresent flag and it is working fine now for 720p@220 fps.

Once again thanks for your support.

Regards,

Prashanth Dixit

Leave a Comment

Please sign in to add a comment. Not a member? Join today