YCbCr vs RGB (and full vs limited range) on Mac and TV
Connecting your Mac to a TV over HDMI? Learn why YCbCr and RGB range mismatches cause washed-out grey blacks or crushed shadows, and how to fix them.
In short
- Computers render graphics internally in RGB, whereas recorded movies and broadcasts are stored in YCbCr to save bandwidth.
- Full range uses values 0 to 255 for deep blacks and bright whites, while limited video range restricts luma to 16 to 235.
- A range mismatch over HDMI causes either milky, washed-out grey blacks or crushed shadows where dark details vanish.
- Setting your TV's HDMI input to 'PC Mode' forces full 4:4:4 chroma and Full RGB range, matching your Mac's output.
On this page
When connecting an Apple Silicon Mac to a television or external monitor over HDMI, understanding the difference between YCbCr and RGB—as well as Full range versus Limited range—is essential to achieving accurate picture quality. A mismatch between how your Mac outputs color and how your TV interprets the signal is the primary cause of washed-out, milky grey blacks or severely crushed shadow details.
While computers process desktop graphics and user interfaces in full-range RGB, virtually all recorded video—from Ultra HD Blu-rays to streaming services—is encoded in limited-range YCbCr. When these two color models meet across an HDMI cable, incorrect handshakes can compromise contrast. Learning how these color formats interact and how to configure both macOS and your television ensures your movies look as the colorist intended.
What is the difference between RGB and YCbCr?
Computers and televisions use two fundamentally different color models to represent visual images:
RGB (Red, Green, Blue)
RGB is the native color language of computer monitors, graphics processors, and digital camera sensors. In an RGB signal, every individual pixel is defined by three distinct values representing the intensity of red, green, and blue light.
In standard 8-bit computing:
- Pure black is represented as
(0, 0, 0). - Pure white is represented as
(255, 255, 255). - Because red, green, and blue are carried at full resolution for every pixel, RGB is uncompressed (a 4:4:4 sampling structure). This makes RGB well suited for crisp computer text, code editing, and desktop user interfaces.
Try it
Brightness at full detail, color shared between pixels
Blocks of four share one color: a quarter of the color data. Brightness keeps every pixel.
YCbCr (Luma and Chroma)
While RGB is ideal for rendering graphics, it is less efficient for storing and transmitting video. The human eye has millions of rods that detect brightness (luminance), but far fewer cones that detect color (chrominance). We are far more sensitive to fine sharpness and black-and-white contrast than to subtle color boundaries.
To take advantage of this biological trait, video standards developed by the International Telecommunication Union (such as Rec. 709 and Rec. 2020) encode video in YCbCr:
- Y (Luma): The greyscale brightness component, carrying high-frequency image detail and sharpness.
- Cb (Chroma Blue): The blue-difference component (blue minus luma).
- Cr (Chroma Red): The red-difference component (red minus luma).
By isolating luma from chroma, video compression algorithms can discard half or three-quarters of the color information without the human eye noticing any loss in sharpness. This process—known as chroma subsampling—compresses the color data to 4:2:2 or 4:2:0, cutting bandwidth requirements in half. Commercial films, Blu-ray discs, broadcast streams, and web videos are encoded in YCbCr. To explore pixel grids and subsampling ratios, read our guide on chroma subsampling explained.
Full range vs Limited range: the 0–255 vs 16–235 dilemma
Beyond the color model, digital video signals differ in their quantization range (dynamic range bounds):
| Dynamic Range Mode | Luma (Y) / RGB Code Values | Reference Black | Reference White | Intended Application |
|---|---|---|---|---|
| Full Range (0–255) | 0 to 255 (all 256 values used) | Code 0 | Code 255 | PC monitors, computer operating systems, video games |
| Limited Range (16–235) | Y: 16 to 235; Cb/Cr: 16 to 240 | Code 16 | Code 235 | Television broadcast, Blu-ray discs, streaming video |
In limited-range video (standardized under ITU-R BT.601 and BT.709), values below code 16 are reserved as footroom to prevent signal clipping during conversion, while values from 236 to 255 serve as headroom for specular overshoots. In standard viewing, code 16 is calibrated to represent black, and code 235 represents white.
The two mismatch problems
Problems arise when your Mac and your television disagree on which range is being transmitted over the HDMI cable:
Mismatch 1: Mac sends Limited, TV expects Full (Washed-out grey blacks)
If your Mac outputs a limited-range signal (16–235) but your television’s HDMI input is set to Full range (0–255):
- The TV expects code 0 to be black.
- The lowest value coming from the Mac is code 16.
- The TV displays code 16 as dark grey (about 6 percent luminance instead of zero).
- True black is never reached. Shadows look milky and washed out, letterbox bars turn grey, and overall contrast drops noticeably.
Mismatch 2: Mac sends Full, TV expects Limited (Crushed shadows)
If your Mac outputs a full-range signal (0–255) but your television’s HDMI input is set to Limited range (16–235):
- The TV treats code 16 as black.
- Shadow details between code 0 and code 15 are clipped and crushed into solid black.
- In movie scenes set at night, dark suits, shadowy backgrounds, and hair textures disappear into solid black shapes.
- Simultaneously, bright highlights above code 235 clip into flat white.
To see how range mismatches interact with HDR, check our diagnostic on why HDR looks washed out on Mac.
Why does macOS behave differently over HDMI?
When you connect a Mac notebook or desktop to an external display, macOS inspects the display’s Extended Display Identification Data (EDID) handshake over the cable:
- DisplayPort / USB-C connections: macOS recognizes computer monitors connected via DisplayPort or Thunderbolt as PC displays, defaulting to uncompressed Full RGB (0–255).
- Built-in HDMI ports: Current Apple Silicon Macs (MacBook Pro 14-inch and 16-inch, Mac mini, Mac Studio, Mac Pro) feature built-in HDMI ports supporting high-bandwidth video as described in Apple Support documentation for HDMI. However, when connected via HDMI, if the display reports consumer television CEA/CTA extension blocks, macOS may automatically output YCbCr 4:2:2 or Limited RGB to ensure compatibility with legacy AV receivers.
If your television does not switch its internal HDMI black level automatically, you end up with a range mismatch.
How to fix YCbCr and RGB mismatches on your TV
To eliminate grey blacks or crushed shadows when connecting your Mac to a TV, use these three setup steps:
1. Label your TV’s HDMI input as “PC”
Most modern 4K televisions (such as LG OLED, Samsung QLED, and Sony models) have a dedicated PC mode:
- On LG TVs: Open Home Dashboard, click Edit (the pencil icon), select the HDMI port your Mac is connected to, and change the icon to PC.
- On Samsung TVs: Open Source, navigate to the HDMI port, press Down, and select PC.
Labeling the input as PC instructs the television’s video processor to disable aggressive consumer post-processing (noise reduction, motion smoothing), accept full uncompressed 4:4:4 RGB chroma, and automatically lock its HDMI black level to Full Range (0–255). Text becomes sharp and black levels drop to deep black.
2. Match HDMI Black Level manually
If your TV does not have a PC mode, match the black level setting manually in the TV’s picture menu:
- If your Mac outputs RGB Full (0–255): Set your TV’s HDMI Black Level to Full (or High).
- If your Mac outputs RGB Limited (16–235): Set your TV’s HDMI Black Level to Limited (or Low).
- Avoid leaving the TV set to “Auto” if blacks appear grey, as HDMI handshakes between computers and televisions frequently misinterpret signal flags.
For step-by-step connection recommendations, consult our guide on how to connect Mac to TV via HDMI.
How media players handle YCbCr-to-RGB conversion
Because movie files are encoded in YCbCr (such as 10-bit YCbCr 4:2:0) but your Mac’s screen must be driven in RGB, your video player must perform a mathematical matrix transformation on every single frame, multiplying the Y, Cb, and Cr values by a conversion matrix to calculate the corresponding Red, Green, and Blue values.
The conversion matrix differs depending on the video standard:
- Standard-definition video uses ITU-R BT.601 matrices.
- High-definition video uses ITU-R BT.709 matrices.
- 4K Ultra HD and HDR video use ITU-R BT.2020 matrices.
If a video player applies the older BT.601 matrix to a modern BT.709 HD movie, red colors shift toward orange and skin tones look unnatural. The player must also handle quantization expansion, expanding limited 16–235 movie codes into full 0–255 screen pixels without clipping or rounding errors.
Summary: quick reference for Mac to TV setups
Use this handy checklist to keep your colors accurate:
| Setting / Metric | Recommended Configuration | Why It Matters |
|---|---|---|
| TV Input Label | Set HDMI input to PC Mode | Enables 4:4:4 chroma for sharp text and locks Full RGB. |
| TV HDMI Black Level | Set to Full (or High) | Matches macOS’s native 0–255 output; eliminates milky grey blacks. |
| Cable Choice | Certified Ultra High Speed HDMI 2.1 | Carries 4K 120Hz uncompressed RGB without forcing 4:2:0 subsampling. |
| Video Player | High-precision player (MacLC) | Converts BT.709 and BT.2020 video by the tags in the file. |
Getting YCbCr and RGB ranges properly aligned transforms your home theater experience. When your Mac and television speak the exact same color language, murky greys disappear, dark shadows reveal intricate textures, and movies look rich, deep, and cinematic. To explore color science further, read our guide on color gamut explained and learn how modern displays handle 8-bit vs 10-bit color.
Questions people ask
What is the difference between RGB and YCbCr?
RGB stores images as discrete Red, Green, and Blue light values for each pixel. YCbCr splits video into brightness (Y luma) and two color difference channels (Cb and Cr), allowing color data to be compressed without degrading perceived sharpness.
Should I set my TV to Full or Limited RGB for Mac?
You must match both devices. Because macOS outputs Full RGB (0–255) by default, set your TV's HDMI Black Level to 'Full' (or 'High'). If you set the TV to 'Limited', shadows below code 16 will be crushed to solid black.
Why do blacks look grey when I connect my Mac to my TV over HDMI?
Grey blacks happen when your Mac outputs limited range (16–235) but your TV is expecting full range (0–255). The TV maps code 16 to dark grey instead of true black, reducing overall contrast ratio.
What is chroma subsampling over HDMI?
Chroma subsampling (like 4:2:2 or 4:2:0) compresses color resolution to fit within HDMI cable bandwidth limits. RGB is always 4:4:4 (uncompressed), while YCbCr can be subsampled to support high refresh rates like 4K 120Hz.