Search Results for

    Show / Hide Table of Contents

    10-Bit Video

    AVPro Video has growing support for playback of 10-bit content. Encoding videos as 10-bit can give improved quality for very little extra storage space, especially for gradients.

    Note

    We are not talking about HDR videos here. We're simply talking about videos encoded with a higher per-pixel bit depth.

    Note

    Even if you are displaying the 10-bit video on an 8-bit screen, there are still quality benefits to using 10-bit video.

    Warning

    Ability to decode 10-bit depending on your operating system and GPU capabilities. This is still a relatively new technology and shouldn't be used if compatibility is a high priority.

    Editions

    Ultra Edition

    The Ultra edition now supports 10-bit textures on Windows, macOS, iOS, tvOS and visionOS.

    Core Edition

    On the Core Edition only 8-bit textures are supported. In this case the 10-bit videos will be rendered to 8-bit, either directly or sometimes the driver will apply some smart dithering.

    Platform Specifics

    Windows Support

    In the Ultra Edition you can specify to use 10-bit textures (in the Platform Specific section). This will give the best results when displaying to a 10-bit back buffer and monitor. We have found that using the WinRT API setting gives the best quality decode for 10-bit, whereas Media Foundation API setting still seems to add some sort of dithering/resolve step.

    Currently Windows is only officially supported:

    H.264 Main 10 Profile HEVC Main 10 Profile VP9 AV1
    Windows (WinRT / Media Foundation) . 1 ✓ 2 ? ?
    Windows (DirectShow) ✓ 3 ✓ 3 ? ?

    1 Microsoft's H.264 Decoder doesn't support the Main 10 profile or output to 10-bit (P010) textures

    2 Requires Windows 10 and Microsoft's HEVC Video Extensions. WinRT API gives the best quality results

    3 Only when using a suitable 3rd-party codec such as LAV Filters

    iOS / macOS / tvOS / visionOS

    iOS 11.0 and above

    Only HEVC Main 10 Profile is supported.

    iOS, macOS, tvOS and visionOS will automatically generate textures capable of supporting 10 bits per component when the source media is 10-bit.

    Depending on the texture format chosen this will be:

    Texture Format
    BGRA
    Y CbCr 420

    Other platforms

    This is a new feature which we hope to expand support and documentation for soon.

    Encoding

    Using the command-line tool FFMPEG we have found the following command useful in testing:

    ffmpeg -y -i %1 -pix_fmt yuv420p10le -color_primaries 1 -color_trc 1 -colorspace 1 -color_range 2 -crf 4 -vcodec libx265 -movflags +write_colr -movflags +faststart %i-hevc-10bit-rec709-high.mp4
    
    Note

    For best results use Rec709 as we do not yet support other primaries/colorspaces and incorrect rendering of colours will result otherwise.

    In This Article