Unfortunately, this feature isn’t available in the existing SDK for HEVC. The support is there for H264. We will put this on our SDK roapmap and try to expose this capability in one of our upcoming SDKs.
Non-disabling deblocking across slice/tile boundaries deteriorates error resilience. Indeed, if a slice or detected as corrupted then a player usually replaces it with a co-located slice/tile. If deblocking across slice /tile boundaries is off then the corruption is not “spilt” from the corrupted slice/tile boundaries.
However, if the deblocking is ON then the corruption is spread by deblocking to neighboring slices in same frame.
It seems there is some confusion, In the shipping nvEncodeAPI.h, we have a flag NV_ENC_CONFIG_HEVC:: disableDeblockAcrossSliceBoundary to disable deblocking across slice boundary? Is this what you need?
i don’t use nvEncodeAPI.h, i use NvIFRHWEnc.h and NvIFR dll.
In NvIFR there is the enum NV_HW_ENC_DEBLOCKING_FILTER_MODE:
NV_HW_ENC_DEBLOCKING_FILTER_MODE_DEFAULT = 0x0, /< Deblocking is enabled across the complete frame. */
NV_HW_ENC_DEBLOCKING_FILTER_MODE_DISABLE = 0x01, /< Deblocking is disabled completely. */
NV_HW_ENC_DEBLOCKING_FILTER_MODE_SLICE = 0x02, /**< Deblocking is enabled but disabled across the slice boundary. */
i found experimentally on M60 that deblocking is always enabled and applied across slice boundaries.
Probably, there is a flaw in NvIFR dll-file.