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.

HEVC Hardware Decoding

Matej_K_1
Beginner
2,385 Views

I have Intel HD 4600, driver version 10.18.14.4156, SDK version 6.0.0.308. According to this announcement

https://communities.intel.com/thread/59216

it should be able to decode 8-bit HEVC in hardware. However when I call DecodeHeader with byte-stream containing VPS, SPS and PPS it always returns MFX_ERR_UNSUPPORTED.

Am I doing something wrong? Is this supposed to work?

0 Kudos
1 Solution
Harshdeep_B_Intel
2,385 Views

Hi,

I am assuming you have installed the drivers correctly. Can you run the following command line. 

sample_decode h265 –i InputHEVCfile.265 –o outputfile.ext –hw –p 33a61c0b4c27454ca8d85dde757c6f8e –d3d -w (width) –h (height) –b (bitrate).

Let me know if it works!

View solution in original post

0 Kudos
11 Replies
Harshdeep_B_Intel
2,385 Views

Hi,

Error MFX_ERR_UNSUPPORTED is returned when the driver is not installed correctly(reinstall again) or MSDK dispatcher is not able to find the Intel Graphics device. What is status of Query when you call the HW by mfxIMPL impl = MFX_IMPL_HARDWARE, through Dispatcher, assuming you have donot have any other 3rd party graphics(AMD/Nvidia)? Can you attach the log from System Analyzer <mediaSDK>\tools\SystemAnalyzer.

Also, is there anything special about the test bit stream? I used sample_decode with a bigsbunny clip and was able to HW decode. What is the command line are you using? Try HEVC HW decode with the sample_decode from samples:  https://software.intel.com/en-us/media-client-solutions-support/code-samples. Let me know if this helps. 

Also HEVC 8-bit decode is supported only on HSW-U sku and above. More information will help us understand your setup environment.

Thanks,

0 Kudos
Matej_K_1
Beginner
2,385 Views

Hi Harsh,

the original announcement did not mention anything about HSW-U. I have i5-4670 with HD4600. Does this mean it is not capable of decoding HEVC in hardware?

I get same error with sample_decode (however the example seems to force hevc sw plugin, I have commented that out)

0 Kudos
Harshdeep_B_Intel
2,386 Views

Hi,

I am assuming you have installed the drivers correctly. Can you run the following command line. 

sample_decode h265 –i InputHEVCfile.265 –o outputfile.ext –hw –p 33a61c0b4c27454ca8d85dde757c6f8e –d3d -w (width) –h (height) –b (bitrate).

Let me know if it works!

0 Kudos
Matej_K_1
Beginner
2,385 Views

Hi Harsh,

with plugin it seems to work (the sample doesn't fail anymore). What does that mean?

0 Kudos
Matej_K_1
Beginner
2,385 Views

Actually, I see now MFX_PLUGINID_HEVCD_HW; I didn't realize plugin is required for HEVC decoding.

0 Kudos
Harshdeep_B_Intel
2,385 Views

Hi,

That is the hw plugin for hevc hw decode to enable on Intel hw. Please refer to the MSDK manual for further details on hevc hw decode. So this confirms, your hw supports hevc hw decoding.

Please refer to the sample_decode and the Plugin section from manual and design your application for HW decode. So circling back, your HW supports hevc hw decoding.

0 Kudos
Matej_K_1
Beginner
2,385 Views

Hi Harsh,

thanks for the assistance. I got the decoding working, but I have one more issue.

Every time session with HEVC decoder plugin is closed, it freezes the application for several seconds. This happens regardless of whether the plugin is unloaded first. The stacktrace of the session.close call contains symbols from libmfxhw64.dll, dxva2.dll, d3d9.dll, igdumdim64.dll and finally ntdll (I can provide complete stacktrace if it helps).

Is this a known issue? Btw. are other codecs also decoded through DXVA, or is it just HEVC with the plugin?

0 Kudos
Harshdeep_B_Intel
2,385 Views

Hi,

No, we do not have any application freeze issues in regard to HEVC decode plugin. Probably this may be happening due to any other function calls your application is running in background as expected with 4K video content. and plugin is required only with hevc. Other codecs should run fine and donot require plugins. Please refer to manual for complete details.
 

Thanks, 

0 Kudos
Matej_K_1
Beginner
2,385 Views

I'll see if I can reproduce this with sample_decode. Our application doesn't do anything that should interfere with MFXClose(session) call. Once the plugin is instantiated, the MFXClose call on session takes several seconds (blocking all other application threads). This does not happen if HEVC plugin is not instantiated. So the only difference is the HEVC plugin instance. 

As for the second question - I'm well aware that other codecs don't require plugins. I was just curious whether those are also internally implemented on top of DXVA2. We're using Intel Media SDK to do transcoding and using DXVA2 for means the video data needs to be copied from DX9/11 texture to system memory (we need MFX_IOPATTERN_OUT_SYSTEM_MEMORY). If HEVC it is only decoder that's using DXVA2 (and "native" decoders don't), are there any plans to have HEVC decoder without plugin? In my experience copying the decoded video data from texture infers a significant penalty, even on integrated GPUs.

0 Kudos
Harshdeep_B_Intel
2,385 Views

Hi,

A reproducer will definitely help isolate any issue related to MSDK. Coming to second question, Internally when have different tools which are not implemented on top DXVA. There are no immediate plans on changes to the feature support, but if things change in future, we will update.

Thanks,

0 Kudos
吴_一_
Beginner
2,385 Views

hi intel guys, i encounter the similar issue with mate,my application is decode two h.265 1080P60 steams and display them on two Monitors at the same time.

however,if i use HW decode,the FPS can't get 60,the command line as following:
start sample_decode h265 -i 4_DanceKiss_1080p50.h265 -f 60 -r -p 33a61c0b4c27454ca8d85dde757c6f8e -wall 1 1 0 0 1 100000 
start sample_decode h265 -i 5_OldTownCross_1080p25.h265 -f 60 -r -p 33a61c0b4c27454ca8d85dde757c6f8e -wall 1 1 0 1 1 100000 
 
if i use the SW decode,the command line as following,it would be quit after a while.i don't know why.
start sample_decode h265 -i 4_DanceKiss_1080p50.h265 -f 60 -r -sw -wall 1 1 0 0 1 100000 
start sample_decode h265 -i 5_OldTownCross_1080p25.h265 -f 60 -r -sw -wall 1 1 0 1 1 100000 
 
remark: the CPU is I7-4770 and the system is win7-64
so could you help me?
0 Kudos
Reply