4 ms·
Displays don't work this way. LCD panels do not have memory, they need to be periodically refreshed at least a few times a second[0], and so any sort of intrafr
by kmeisthax 3y ago
Displays don't work this way. LCD panels do not have memory, they need to be periodically refreshed at least a few times a second[0], and so any sort of intraframe compression capability requires having extra memory in the controller and scaler. This was never done because displays have always had allocated high bandwidth channels since the dawn of console televisions. If you needed to get intraframe compressed video into them, you plugged in a decoder box of some kind (e.g. your cable box, a computer with streaming software, etc) and that device would spit out the fully decompressed image.
If you're just using normal HDMI or DisplayPort cables there's no bandwidth to share, and since that's the vast majority of display inputs[1], we haven't even had interframe compression until very recently when people started wanting extremely high resolution and high refresh rate displays. The only reason why this seems incongruous now is that we also want to shove this video data through a USB-C cable. USB shares bandwidth across multiple devices based on demand, so why doesn't video over USB? Why don't we just standardize "MPEG over DisplayPort" today so we can shove a video wall of 4K displays over a single cable? Well, a few reasons...
- Computer users expect lossless reproduction. Most lossy codecs only do well on pictures, and absolutely murder text and graphics - which is what most computer users are actually watching. For various technical reasons involving an Nvidia driver bug[2], one of my three displays actually already uses a compressed input - specifically Miracast - and text 'twitches' every few seconds at every GOP[3] boundary. I hate it.
- Lossy compression codecs add latency. This is not merely an artifact of the encoders being slow, some codecs also have 'algorithmic latency' - as in you get no output until you give it a minimum amount of input because the codec needs data to reference so it can remove redundancy.
- Transient loss of USB bandwidth is extremely difficult to debug. Just as an example, Windows can't help me track down the rogue USB device in my setup that unplugs itself at 3PM sharp every day. It just says something about "the last USB device you plugged in", as in, "I can't explain what USB topology is so I'll throw all that bookkeeping work onto you". Now imagine that instead of a minor annoying pop-up, it's a device diverting bandwidth away from my display to itself. The OS developers aren't even going to flash a pop-up for that, they're just going to have the screen glitch out and hope for the best, in that I'll blame the display manufacturer rather than the computer. Neither party wants to have to deal with a tech enthusiast plugging in more displays than their cabling or USB topology can handle and not understanding what limits they hit.
[0] Judging based off the minimum refresh rates in variable refresh rate mode
[1] Desktop systems outright don't support USB-C video altmodes at all, outside of special motherboards or add-in cards for Thunderbolt that give you DisplayPort injection almost by accident. The only monitors that support USB-C video are Apple displays; everyone other monitor company ships DisplayPort or HDMI. This is why Apple users have to carry around adapters and dongles all the time, to the point where Apple actually had to walk back their "single cable future" and put HDMI back in their laptops.
[2] I have three monitors, but only two optical DisplayPort cables to go to my other room. I used to use a DisplayPort MST hub to get my two smaller (1080p) monitors on the same cable, but for some reason my 1080Ti can't read the EDID data off one of the monitors when it's behind an MST hub. I worked around this with custom resolutions - i.e. manually inputting all the display timings - and it worked until a driver update last year. Now, if I ever plug in that second monitor to the hub, the mouse cursor (which I suspect is a hardware overlay) gets stuck on my primary monitor and shows corrupted image data, making my computer unusable.
[3] Group of Pictures - the smallest seekable unit in an intraframe compressed video stream. Keyframes - i.e. frames that do not reference prior frames - are the start of a new GOP and take up significantly more bandwidth as a result.