Skip to content
Awawa edited this page Dec 3, 2024 · 16 revisions

In the past, this was a format reserved for very expensive USB grabbers such as the Elgato HD60X. It allows you to go further than typical 8-bit raw image capture, which is especially important for HDR. Currently, relatively inexpensive HDMI 2.0 grabbers are appearing on the market (although still much more expensive than the MS2130, but it is an HDMI 1.4 grabber and does not have an HDMI loop), which in addition to supporting e.g. VRR, also offer the P010 format. For licensing reasons, HDCP protected video stream is of course not recorded and still requires usage of HDMI splitters for ambient lighting.

How does this affect the quality compared to typical grabbers? Since we usually get a raw image, it does not suffer from the typical distortions when a grabber tries to improve/process an HDR signal treating it as SDR. Another advantage is the resolution of up to 10-bits, which allows to reduce the quantization effect visible in the case of tone mapping of 8-bit video source.

The P010 format is natively supported by Windows, but not by macOS and Linux... although in the case of Linux I myself added its support via a patch for the UVC module in the kernel. Thanks to this, Raspberry Pi users can also enjoy it. It can also be used for other platforms and Linux distributions. Patch source (MIT license) is here: p010.patch

Note

Of course, for Raspberry Pi users we have prepared a ready image that already contains the mentioned P010 patch, so they do not have to compile the Kernel themselves. The ready patched Raspberry Pi OS aarch64 SD image is in the HyperHDR 21 release section.

Without my patch P010 will be not recognized in dmesg logs: 5

Warning

  • P010 format requires to perform simply LUT calibration: here. The default LUT won't work for P010 video format
  • It is highly recommended to enable Quarter of frame mode in the grabber settings after calibration
  • If you don't see P010 and other supposedly supported high-resolution modes, check your grabber USB-C cable

Remember that in case of a patched OS SD image for Raspberry Pi, P010 patch will be overwritten if you upgrade Kernel. But there is a workaround that will freeze Kernel on the current version if you upgrade the rest of the system:

sudo apt-mark hold libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc libraspberrypi0
sudo apt-mark hold raspberrypi-bootloader raspberrypi-kernel raspberrypi-kernel-headers