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.
3072 Discussions

Problem decoding 10-bit HEVC using software decoder

Silviu_B
Beginner
1,015 Views

We have bough the Intel HEVC Software Pack a few years ago, which enabled us to encode and decode HEVC streams using software encoding/decoding. We bought this in 2014, before the Haswell support for hardware acceleration.

But now I noticed a difference in the decoding of 10-bit streams between the hardware decoder and the software decoder. The software decoder places the decoded 10-bit data in the low 10 bits of each 16-bit value. But the hardware decoder places the decoded 10-bit data in the upper 10-bits. 

The hardware decoder seems to do this properly, because it matches the description of the P010 format. 

All of this occurs with the Windows binaries. The software plugin dll that I have has a version 1.14.6.19. Is there an updated version of the software HEVC plugin decoder that handles this properly?

I can add workarounds and shift the data returned by the software decoder, but I would prefer to avoid that :-).

The data returned by the decoders looks like this:

(SW) Y = 0x0094  U = 0x023d  V = 0x0200

(HW) Y = 0x2500  U = 0x8f40  V = 0x8000

0 Kudos
1 Reply
Silviu_B
Beginner
1,015 Views

I just tried the latest software decoder included in Intel® Media Server Studio 2017. Intel® Media Server Studio 2017 installs mfxplugin64_hevcd_sw.dll with a product version 1.19.7.45, but it has the same problem: it places the decoded 10-bit data in the low bits of the 16-bit uncompressed data. 

0 Kudos
Reply