Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

NumSlice and NumMbPerSlice

kyviquel
Beginner
426 Views

hi,

I try to understand the difference between NumSlice and NumMbPerSlice. Is it true that with NumSlice parameter all generated slices contain a fixed rows of macroblocks and  with NumMbPerSlice parameter we can generated smallest slices like one macroblock per slice? What are the restrictions for the NumMbPerSlice parameter?

thanks

Karine

0 Kudos
1 Solution
Jeffrey_M_Intel1
Employee
426 Views

Sorry for the delay in replying.  Here are the basics:

NumSlice: slices contain a fixed number of macroblock rows.  The number of rows per slice is automatically calculated.   When the number of rows is not evenly divisible slices may be different sizes (+/-1 row).  At least in my testing the smallest slice is 1 macroblock row.

NumMbPerSlice: number of slices=macroblocks in frame/NumMbPerSlice.  However, the actual number of slices depends on driver capability. If the driver can only support row slices this will provide no more flexibility than NumSlice.  Use of query is strongly recommended.  Encode may fail if the driver does not support the slice size requested.

Documentation and implementation for NumMbPerSlice are still evolving.  Please watch future releases for more developments.

View solution in original post

0 Kudos
1 Reply
Jeffrey_M_Intel1
Employee
427 Views

Sorry for the delay in replying.  Here are the basics:

NumSlice: slices contain a fixed number of macroblock rows.  The number of rows per slice is automatically calculated.   When the number of rows is not evenly divisible slices may be different sizes (+/-1 row).  At least in my testing the smallest slice is 1 macroblock row.

NumMbPerSlice: number of slices=macroblocks in frame/NumMbPerSlice.  However, the actual number of slices depends on driver capability. If the driver can only support row slices this will provide no more flexibility than NumSlice.  Use of query is strongly recommended.  Encode may fail if the driver does not support the slice size requested.

Documentation and implementation for NumMbPerSlice are still evolving.  Please watch future releases for more developments.

0 Kudos
Reply