What is chroma subsampling, and why does text look bad over HDMI?
A compression technique that stores colour information at lower resolution than brightness, exploiting the fact that human vision is far more sensitive to brightness detail than to colour detail. It is invisible in video and destructive for text.
The mechanism. An image is separated into luma (brightness) and chroma (colour). Luma is kept at full resolution; chroma is sampled less often and shared between adjacent pixels.
The notation describes how much: 4:4:4 is no subsampling, full colour resolution. 4:2:2 halves colour resolution horizontally. 4:2:0 halves it both horizontally and vertically, storing a quarter of the colour information.
Why it works for video. The eye's colour resolution genuinely is much lower than its brightness resolution, so discarding colour detail in moving photographic images is close to imperceptible while saving an enormous amount of data. Virtually all video you watch is 4:2:0 — broadcast, streaming, Blu-ray.
Why it destroys text. Text is high-contrast, thin, and coloured. Red text on a black background, or coloured syntax highlighting, consists of fine detail that exists precisely in the colour channel. Subsampling smears it, producing fringing, blurred edges and unreadable small type.
This is why a television used as a monitor frequently shows poor text. The set is applying 4:2:0 processing appropriate for video, and the text suffers.
How to fix it:
Enable the television's PC or Game mode, which on many sets switches to 4:4:4 and disables processing.
Check the HDMI input setting. Many televisions have a per-input option — frequently called Enhanced, Deep Colour or HDMI UHD Colour — that must be enabled for full bandwidth. Without it, the set falls back to subsampling.
Check bandwidth. At high resolutions and refresh rates, 4:4:4 requires more bandwidth than the cable or port supports, so the source reduces chroma automatically. A better-specified cable or a lower refresh rate can restore it.
Label the input as PC on sets that behave differently by label.
For photographic content it makes no visible difference, which is why it goes unnoticed until text appears.