Hi Roman and Timo, Timo is right. As a general rule, hybrid video coding standards allow encoders to take advantage of encoding a 8-bit input as 10-bit due to the interpolation filters (inter and intra) and transform coding at 10-bit depth. This can generate a better prediction and reduced banding artifacts in smooth gradient areas, e.g., in the sky.
On the particular case of the NVIDIA Video Codec SDK, we do a simple 8 bit > 10 bit conversion. No SDR > HDR conversion is performed. Due to video being encoded as 10 bits, it results to better de-correlation and hence better compression at same quality. We have observed ~3-5% BD-rate savings due to this feature. Although you are right, that the same could be acomplished with an external filter, I would still humbly ask you to consider including this patch into FFmpeg. Besides the fact that this patch, as I explained before, is a more efficient way to achieve the same result due to memory accesses and storage, the same feature is already supported in FFmpeg for AV1 (av1_nvenc). Hence, it would not make sense to the user perfom in one way for AV1 and another way for HEVC. Best regards, Diego On 19.04.24, 09:39, "Roman Arzumanyan" <r.arzuman...@visionlabs.ai> wrote: External email: Use caution opening links or attachments Thanks for the explanation, Timo! I was hoping that 8>10 bit up-conversion which happens in the driver may bring some goodness like SDR > HDR conversion, recently presented by NV. Or some other algo which is easier to keep proprietary. Otherwise, although it is convenient in some use cases, it doesn't look more tempting than, say, a similar 8>10 bit NPP up-conversion which shall yield the same (presumably SoL) performance. чт, 18 апр. 2024 г. в 16:32, Timo Rothenpieler <t...@rothenpieler.org<mailto:t...@rothenpieler.org>>: On 18/04/2024 14:29, Roman Arzumanyan wrote: > Hi Diego, > Asking for my own education. > > As far as you've explained, the 8 > 10 bit conversion happens within the > driver, that's understandable. > But how does it influence the output? Does it perform some sort of > proprietary SDR > HDR conversion under the hood that maps the ranges? > What's gonna be the user observable difference between these 2 scenarios? > 1) 8 bit input > HEVC 8 bit profile > 8 bit HEVC output > 2) 8 bit input > 10 bit up conversion > HEVC 10 bit profile > 10 bit > HEVC output > > Better visual quality? Smaller compressed file size? > In other words, what's the purpose of this feature except enabling new > Video Codec SDK capability? Video Codecs tend to be more efficient with 10 bit, even if it's just 8 bit content that's been up-converted to 10 bit. I.e. yes, it'll (Or can, at least. Not sure if it's a given.) produce smaller/higher quality content for the same input. As for the exact reason, I can't explain, but it's a well known concept. ----------------------------------------------------------------------------------- NVIDIA GmbH Wuerselen Amtsgericht Aachen HRB 8361 Managing Directors: Rebecca Peters, Donald Robertson, Janet Hall, Ludwig von Reiche ----------------------------------------------------------------------------------- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. ----------------------------------------------------------------------------------- _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".