Media (Intel® oneAPI Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools from Intel. This includes Intel® oneAPI Video Processing Library and Intel® Media SDK.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
2935 Discussions

Accessing per-macroblock (QP) Quantizer Parameter in H.264/MPEG2 decode

celli4
New Contributor I
356 Views
Hello,
I am hoping somebody at Intel can answer a few questions on a video research application.
The following questions are in regards to QuickSync H.264 and MPEG2 decoding on the Sandy Bridge Gen2 processors.
1. I currently use a software based H.264 and MPEG2 video decoder which allows me to extract the stored per-macro block QP values. I have not found a way to do this using the Media SDK.
Any suggestions on how I might use the Media SDK to do this?
2. In the Media SDK decoders, where does the bitstream parsing where QP first becomes available happen?
On some GPU architectures decode bitstream parsing appears to mostly occur mostly on the host processor, so,
in fact per-macroblock QP values first becomes available on the host-CPU, not actually in the GPU.
Is this how Sandy-Bridge accelerated decoding works? Does the host CPU do the bitstream parsing to the point where per-macroblock QP is decoded?
3. Is there released source code for either H.264 or MPEG2 Quick Sync decoding using SB that would allow me to retrieve the per-macroblock QP values?
I have been experimenting with the SDK on Sandy Bridge, and love the performance.
Thank you for any answers to these questions.
Cameron
0 Kudos
4 Replies
Anthony_P_Intel
Employee
356 Views
Hi Cameron,

The Media SDK API provides elementary stream decoding at a frame level, so it does not expose an API for macroblock-level parsing. When it is used on products that supportQuick Syncvideo hardware acceleration, the processing the graphics processor handles this sub-task, leaving the host-CPU free for other tasks.

If you have an application (use-case) that requires access to lower-level details of video decoding, The Microsoft DXVA interfaces may be used, however we feel this should not been required as the Media SDK providesa higher-level (simpler) API and optimized implementation for decoding H.264 and MPEG2 elementary streams.

-Tony
celli4
New Contributor I
356 Views
Tony,
Thanks for your answer. Do you know if the per-macroblock QP values are available from the Sandy BridgeDXVA drivers?
(it seems Sandy Bridgedoes support full bitstream decode, so can the appropriate DXVA interfaces be used to getthe per-macroblock QP values)
Thank you,
Cameron
chris_pn
Beginner
195 Views

Hi,

    Although this issue is opened long time ago, I still want to know is there DXVA interfaces be used to getthe per-macroblock QP values when do h264 hardware decode?

   Thanks.

chris_pn
Beginner
156 Views

Pin for reply from Intel side!

Especially for newer intel gpu (such as from gen9).

Reply