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 18.104.22.168. 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
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 22.214.171.124, but it has the same problem: it places the decoded 10-bit data in the low bits of the 16-bit uncompressed data.