Community
cancel
Showing results for 
Search instead for 
Did you mean: 
word_t_
Beginner
586 Views

HEVC 10 Bit Hardware Accelerated Decoding

I am trying to decode HEVC 10 bit video stream on Intel HD 5500 and the newer skylake platform, which is supposed to support HEVC 10 decoding. I used to use Microsoft mft interface to do the hardware decoding with h264. With mft, does HEVC still work?

Intel media SDK does have HEVC decoder sample, but it is just too hard to use. Is there a simple sample on how to use it?

Another question is, is the decoded frame available as an OpenGL frame? In the example, it was passed to a Direct3D surface.

0 Kudos
11 Replies
586 Views

Hi There, 

Let me answer your question one by one so we do not miss out on any:

I used to use Microsoft mft interface to do the hardware decoding with h264. With mft, does HEVC still work? -> Microsoft(MSFT) provides own HEVC decoder mft's with Windows. I recommed checking with MSFT support team if it supports 10 bit decoding. 

Intel media SDK does have HEVC decoder sample, but it is just too hard to use. Is there a simple sample on how to use it?

-> Unfortunately, we do not have a simpler sample than existing samples to showcase specific feature set. But, do let me know your questions and we will be glad to answer and resolve them.

Another question is, is the decoded frame available as an OpenGL frame? In the example, it was passed to a Direct3D surface.-> You might be interested in taking a look at ocl_media_sdk_interop sample ( https://software.intel.com/sites/default/files/managed/b7/7e/MediaSamples_Windows_2016.msi) and modify it to your use-case. If any questions in OpenGL please ask in our forum: https://software.intel.com/en-us/forums/opencl. 

Thanks,

 

word_t_
Beginner
586 Views

I just need a simple sample to do the HEVC 10 bit decoding. The provided sample has too much code and it is hard to absorb.

Harsh Jain (Intel) wrote:

Intel media SDK does have HEVC decoder sample, but it is just too hard to use. Is there a simple sample on how to use it?

-> Unfortunately, we do not have a simpler sample than existing samples to showcase specific feature set. But, do let me know your questions and we will be glad to answer and resolve them.

word_t_
Beginner
586 Views

The ocl_media_sdk_interop sample takes opencl to directx for display. I am more interested in opengl here. 

Even with in this ocl_media_sdk_interop sample, I could not compile the code, The include file "dxsdkver.h" can not be found. I installed windows sdk, intel opencl sdk, media sdk, searched all the files in the drive and could not find this file.

Harsh Jain (Intel) wrote:

Another question is, is the decoded frame available as an OpenGL frame? In the example, it was passed to a Direct3D surface.-> You might be interested in taking a look at ocl_media_sdk_interop sample ( https://software.intel.com/sites/default/files/managed/b7/7e/MediaSample...) and modify it to your use-case. If any questions in OpenGL please ask in our forum: https://software.intel.com/en-us/forums/opencl

word_t_
Beginner
586 Views

Another question: is HEVC 10 bit decoding available on HD 5500 GPU?

586 Views

Hello there, 

I just need a simple sample to do the HEVC 10 bit decoding. The provided sample has too much code and it is hard to absorb -> I understand and agree that its hard to go through samples at once, so to make it simpler to understand the samples we have tutorials which showcase basic mediaSDK pipelines block by block. Please find tutorial package here (take a look at simple_decode): https://software.intel.com/sites/default/files/mediasdk-tutorials-0.0.3.zip. Now, after going through the tutorials, I am sure understanding HEVC decoder implementation in samples will be easier. As I mentioned above we do not have a simpler sample to existing samples to showcase this specific feature set. If you have any questions or any difficulty, let us know and we will be glad to solve them. 

Can you please clarify what you meant by "I am more interested in opengl here", are you looking for a sample using openGL? If yes, then currently with current samples release we do not have sample using OpenGL feature. But definitely you can expect new features with future sample releases.

In regard to compilation code error: "include file "dxsdkver.h" can not be found" -> This is a Windows SDK version installed and linkage issue. Please share your system details OS, version of Windows SDK (Installed), VS version etc? I tried on my end with system configuration (VS 2013, Win8.1 OS) was able to build interlop sample successfully. You might be interested in taking a look at this thread : https://social.msdn.microsoft.com/Forums/windowsapps/en-US/ca03a834-1108-4767-b19c-773cfd8a47e5/is-d...;

Thanks,

 

586 Views

is HEVC 10 bit decoding available on HD 5500 GPU? -> Yes, both  5th and 6th generation support HEVC 10 bit decoding and its a Hybrid implementation (partially accelerated) and Windows only.

Thanks, 

word_t_
Beginner
586 Views

Thanks for the reply. For simple_decode sample, I tried it with HEVC 10 bit stream but it gave me an error saying it's unsupported. I did change the codecId to MFX_CODEC_HEVC in the main() function. If it works, I would like to use this code. Please let me know if HEVC10 works with this sample code.

I was able to decode the same stream with the sample_decode sample from the SDK. It looks like it recognizes the input size as 1920x1088 and the default output format is P010. But I could not get the yuv output look correctly. From the file size it looks like the yuv is in 1920x1080 with chroma sampling at 420, and each pixel is in 16 bit (effective bits are in lower 10bit?). But how comes the output is wrong?

word_t_
Beginner
586 Views

If that's the case, why I can't run with '–p 33a61cb4c27454ca8d85dde757c6f8e' command line option with sample_decode? Without this option, is it running with software decoder?

Harsh Jain (Intel) wrote:

is HEVC 10 bit decoding available on HD 5500 GPU? -> Yes, both  5th and 6th generation support HEVC 10 bit decoding and its a Hybrid implementation (partially accelerated) and Windows only.

Thanks, 

586 Views

Simple_decode is a tutorial easy to understand and is an intro to mediaSDK pipeline and makes understanding of samples easier. Tutorial by itself does not support  the specific feature set ( HEVC10 bit) and will need further changes to code along with Codec ID. Here is a article which explains the MediaSDK framework for developing application:https://software.intel.com/en-us/articles/framework-for-developing-applications-using-media-sdk. Follow the article and make suitable changes to tutorial code base. 

Can you please further clarify in detail for "I was able to decode the same stream with the sample_decode sample from the SDK" and "If that's the case, why I can't run with '–p 33a61cb4c27454ca8d85dde757c6f8e' command line option with sample_decode" ? with command line you are using to run sample, a log from system analyzer tool (https://software.intel.com/en-us/articles/media-sdk-tools), if you have modified the sample( share the reproducer), input stream. Please share these details, so we can better understand your  system configuration and use case scenario and provided our best inputs. 

Also, check and confirm if latest drivers are installed on the machine from: https://downloadcenter.intel.com/, for your test environment. 

Thanks,

 

word_t_
Beginner
586 Views

I read the link you mentioned but still did not have a clue on what needs to be modified other than CodecID for Simple_decode to work with HEVC 10 bit stream. Were you able to use Simple_decode for the same purpose?

Thanks ahead.

Mark_L_Intel1
Moderator
586 Views

Hi Word,

As Harsh said, our tutorial code was not updated with the latest release. So if you want to use it for the HEVC 10bit, you have to modify it.

I just tried the sample_decode to run HEVC 10bit and I can run it although you have to comment the following line:

https://github.com/Intel-Media-SDK/samples/blob/master/samples/sample_decode/src/pipeline_decode.cpp...

You could use this as a reference to change the simple_decode. Basically HEVC 10 bit sets the BitDepthLuma and BitDepthChroma to 10 in the FrameInfo.

Mark

Reply