H264 NumSlice SW vs QSV

H264 NumSlice SW vs QSV


I have an implementation of your h264 SW and QSV encoders. I use the NumSlice parameter to divide encoding frames into different slices. It works well in SW, I can divide each frame into at least a macroblock row.

But in QSV it seems I reach some limitations.

I encode a 1080i30M h264 QSV video with different NumSlice values and this is my results:

SliceCount = 1 OK

SliceCount = 2 OK

SliceCount = 3 OK

SliceCount = 4 returns invalid parameters and the Encode_Query() function asks me for 5

SliceCount = 5 OK

SliceCount = 6 returns invalid parameters and the Encode_Query() function asks me for 9

Can you explain what are exactly the rules for slice partitioning in QSV?

My setup:

Intel Media SDK System Analyzer (64 bit)

The following versions of Media SDK API are supported by platform/driver:

 Version Target Supported Dec Enc
 1.0 HW Yes  X X
 1.0 SW Yes  X X
 1.1 HW Yes  X X
 1.1 SW Yes  X X
 1.3 HW Yes  X X
 1.3 SW Yes  X X
 1.4 HW Yes  X X
 1.4 SW Yes  X X
 1.5 HW Yes  X X
 1.5 SW Yes  X X
 1.6 HW Yes  X X
 1.6 SW Yes  X X
 1.7 HW Yes  X X
 1.7 SW Yes  X X
 1.8 HW No    
 1.8 SW Yes  X X

Graphics Devices:
 Name                                         Version             State
 Intel(R) HD Graphics 4000                 Active
 NVIDIA GeForce GT 545                      Active

System info:
 CPU: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
 OS: Microsoft Windows 8 Enterprise
 Arch: 64-bit




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


Yes, the parameter is a suggested size and Media SDK can adjust the value based on capabilities of the platform.

Also,, if you are setting the mfxExtCodingOption2 NumMbPerSlice value, the mfxInfoMFX::NumSlice parameter is ignored.  (Some information was added to the new Reference manual for API 1.8)


Leave a Comment

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