Following @aiaf's project in the thread I disabled dithering on Apple silicon + Introducing Stillcolor macOS M1/M2/M3 (which I believe was partially inspired by the information in this thread), I purchased a Blackmagic Design UltraStudio Recorder 3G and downloaded ffmpeg to perform my own testing for temporal dithering and try to contribute some more data to the community here. However, a few things are unclear and I want to ensure I am collecting valid data.
First, I observed that several GPUs (specifically NVIDIA) on both macOS and Windows exhibit temporal dithering when I use a DisplayPort to HDMI cable, but do not exhibit dithering when using a straight HDMI cable from the HDMI output port of the GPU. I tried an older HDMI cable as well as an "Ultra High Speed" cable, but it seemed to make no difference. I read in another thread that older HDMI cables may effectively reduce color depth via their limited bandwidth, but otherwise I was unsure whether this is the expected outcome.
Second, I am beginning to question whether the GPU/OS will send the same kind of output to the capture card as to a normal display. After inspecting the EDID of the capture card, it appears to advertise itself as a "non-RGB color display" taking YCbCr input. On macOS at least, I suspect the capture card was being detected as a television (if I am interpreting the output of AllRez correctly). On Windows, I noticed that when both a normal display and the capture card were connected to my NVIDIA GTX 3070, dithering was evident on the capture card side, but ColorControl (with automatic settings) appeared to indicate that dithering was only active on the capture card and not on the normal display:
I don't know of a way to determine dithering status in an equivalent way on macOS. Basically, I am concerned that we may be comparing apples to oranges with this method.
Lastly, some of the results simply do not make sense. A capture from my AMD Radeon Pro WX 5100 (on both macOS High Sierra and Monterey via OpenCore) exhibited no temporal dithering, while the picture on normal monitors seemed (subjectively) very unstable and I strongly suspect temporal dithering is in effect. On the flip side, my original NVIDIA GT120 exhibits (again, subjectively) the most stable picture of all the GPUs I tested on a normal monitor, but the capture output seemed to show the most significant temporal dithering of all samples. At this point, I am starting to wonder if slower/deeper temporal dithering may be easier on the eyes than the barely-perceptible kind because our eyes and brains can actually make sense of it.
Any thoughts would be appreciated. Here is the parsed EDID data for the Blackmagic capture card:
Block 0, Base EDID:
EDID Structure Version & Revision: 1.3
Vendor & Product Identification:
Manufacturer: BMD
Model: 0
Serial Number: 1 (0x00000001)
Made in: week 52 of 2012
Basic Display Parameters & Features:
Digital display
Maximum image size: 71 cm x 40 cm
Gamma: 2.50
Non-RGB color display
First detailed timing is the preferred timing
Color Characteristics:
Red : 0.6396, 0.3447
Green: 0.2910, 0.6347
Blue : 0.1630, 0.0927
White: 0.2880, 0.2958
Established Timings I & II:
DMT 0x04: 640x480 59.940476 Hz 4:3 31.469 kHz 25.175000 MHz
Standard Timings: none
Detailed Timing Descriptors:
DTD 1: 1920x1080 60.000000 Hz 16:9 67.500 kHz 148.500000 MHz (800 mm x 450 mm)
Hfront 88 Hsync 44 Hback 148 Hpol P
Vfront 4 Vsync 5 Vback 36 Vpol P
DTD 2: 1920x1080 50.000000 Hz 16:9 56.250 kHz 148.500000 MHz (800 mm x 450 mm)
Hfront 528 Hsync 44 Hback 148 Hpol P
Vfront 4 Vsync 5 Vback 36 Vpol P
Display Product Name: 'BMD HDMI'
Display Range Limits:
Monitor ranges (GTF): 50-60 Hz V, 15-45 kHz H, max dotclock 80 MHz
Extension blocks: 1
Checksum: 0x01
----------------
Block 1, CTA-861 Extension Block:
Revision: 3
Basic audio support
Supports YCbCr 4:4:4
Supports YCbCr 4:2:2
Native detailed modes: 2
Video Data Block:
VIC 5: 1920x1080i 60.000000 Hz 16:9 33.750 kHz 74.250000 MHz (native)
VIC 4: 1280x720 60.000000 Hz 16:9 45.000 kHz 74.250000 MHz (native)
VIC 6: 1440x480i 59.940060 Hz 4:3 15.734 kHz 27.000000 MHz (native)
VIC 20: 1920x1080i 50.000000 Hz 16:9 28.125 kHz 74.250000 MHz (native)
VIC 19: 1280x720 50.000000 Hz 16:9 37.500 kHz 74.250000 MHz (native)
VIC 21: 1440x576i 50.000000 Hz 4:3 15.625 kHz 27.000000 MHz (native)
VIC 32: 1920x1080 24.000000 Hz 16:9 27.000 kHz 74.250000 MHz (native)
VIC 33: 1920x1080 25.000000 Hz 16:9 28.125 kHz 74.250000 MHz (native)
VIC 34: 1920x1080 30.000000 Hz 16:9 33.750 kHz 74.250000 MHz (native)
VIC 31: 1920x1080 50.000000 Hz 16:9 56.250 kHz 148.500000 MHz (native)
VIC 16: 1920x1080 60.000000 Hz 16:9 67.500 kHz 148.500000 MHz (native)
VIC 3: 720x480 59.940060 Hz 16:9 31.469 kHz 27.000000 MHz
VIC 18: 720x576 50.000000 Hz 16:9 31.250 kHz 27.000000 MHz
VIC 1: 640x480 59.940476 Hz 4:3 31.469 kHz 25.175000 MHz
Audio Data Block:
Linear PCM:
Max channels: 8
Supported sample rates (kHz): 48 44.1 32
Supported sample sizes (bits): 24
Speaker Allocation Data Block:
FL/FR - Front Left/Right
LFE1 - Low Frequency Effects 1
FC - Front Center
BL/BR - Back Left/Right
FLc/FRc - Front Left/Right of Center
Vendor-Specific Data Block (HDMI), OUI 00-0C-03:
Source physical address: 0.0.0.0
Vendor-Specific Data Block, OUI 00-00-00:
Colorimetry Data Block:
BT2020YCC
BT2020RGB
HDR Static Metadata Data Block:
Electro optical transfer functions:
Traditional gamma - SDR luminance range
SMPTE ST2084
Hybrid Log-Gamma
Supported static metadata descriptors:
Static metadata type 1
Checksum: 0x3a Unused space in Extension Block: 84 bytes