All posts

Why Do Red Text and Logos Look Blurry in JPEG Images? How 4:2:0 Chroma Subsampling Compresses Color Resolution

Take a crisp screenshot of a user interface or brand banner featuring bright red text (#FF0000) or electric blue icons (#0000FF) on a dark charcoal background, and save it as a standard web JPEG (or lossy WebP) at Quality 80. When you open the exported file at 100% zoom, the white and green text still looks sharp—yet the red and blue letters look fuzzy, blocky, and fringed with muddy 2×2 pixel stairs, even if you raise the JPEG quality slider to 85. That blur is not caused by DCT frequency quantization; it is caused by an earlier step in the compression pipeline called 4:2:0 chroma subsampling, which throws away 75% of your image’s color pixels before compression even begins.

When you batch-convert screenshots, product graphics, and photography in BatchPad, understanding how YCbCr color encoding separates brightness (Y') from color (Cb, Cr) shows you exactly when 4:2:0 saves 50% bandwidth for free—and when you must switch to lossless PNG/WebP or 4:4:4 chroma.

How YCbCr Splits Brightness From Color (and Why 4:2:0 Drops 3 Out of 4 Color Pixels)

When an image encoder prepares an RGB image for JPEG, WebP, AVIF, or H.264/HEVC video compression, it first transforms every pixel from [R, G, B] into three decorrelated channels defined by Y′CbCr (ITU-R BT.601 or BT.709):

Chart comparing retained spatial color resolution percentage and raw bandwidth savings across YCbCr 4:4:4, 4:2:2, 4:2:0, 4:1:1, and 4:1:0 chroma subsampling schemes
Figure 1: Retained spatial color (Cb/Cr) resolution (% of full pixel grid) and raw uncompressed data savings across five YCbCr subsampling schemes. Download the complete technical comparison table in chroma-subsampling-444-422-420-color-resolution-comparison.csv.

Comparing Chroma Subsampling Schemes: Resolution, Bandwidth, and Text Artifacts

Why does 4:2:0 look completely invisible on a landscape photograph or portrait, yet immediately ruin a UI screenshot containing red badges or blue links?

Subsampling Ratio Luma (Y′) Samples per 4×2 Chroma (Cb/Cr) Samples per 4×2 Retained Color Resolution Raw Chroma Data Savings Visual Impact on Fine UI Text & Logos
YCbCr 4:4:4 (Full) 8 of 8 (1×1) 8 Cb + 8 Cr 100.0% 0.0% Razor-sharp 1-pixel red, blue, and magenta strokes
YCbCr 4:2:2 (Broadcast) 8 of 8 (1×1) 4 Cb + 4 Cr (2×1) 50.0% 33.3% Sharp horizontal lines; minor 2px horizontal bleed
YCbCr 4:2:0 (Web Default) 8 of 8 (1×1) 2 Cb + 2 Cr (2×2) 25.0% 50.0% 75% color dropped; blurry 2×2 blocks on red/blue text
YCbCr 4:1:1 (Legacy DV) 8 of 8 (1×1) 2 Cb + 2 Cr (4×1) 25.0% 50.0% 4-pixel horizontal color smearing on vertical edges
YCbCr 4:1:0 (Extreme) 8 of 8 (1×1) 1 Cb + 1 Cr (4×2) 12.5% 62.5% 87.5% color dropped; severe color halos

“Because Luma Y′ = 0.2126R + 0.7152G + 0.0722B derives 71.5% of its brightness from green and only 21.3% from red (and 7.2% from blue), a pure red letter on a dark gray background has almost zero luma contrast—forcing its edges to rely on the 1/4-resolution Cr chroma grid.”

Three Rules for Choosing Image Formats Without Blurry Color Edges

  1. Why Lossy WebP Still Uses 4:2:0 (YUV420p) by Default: Many developers assume switching a UI screenshot from JPEG to lossy WebP will fix blurry red text. However, standard lossy WebP is built on the VP8 video intra-frame coder, which uses YCbCr 4:2:0 exclusively (though WebP’s "Sharp YUV" option iteratively optimizes the 2×2 chroma downsampling to reduce color bleeding). For pixel-exact UI screenshots, use Lossless WebP or PNG (which stay in full RGB 4:4:4).
  2. When Exporting High-Quality JPEGs (Q ≥ 90), Check the Subsampling Toggle: Most JPEG encoders (libjpeg-turbo, Photoshop, ImageMagick) automatically switch from 4:2:0 (2×2 subsampling) to 4:4:4 (1×1 no subsampling) when quality is set to 90 or above (or in Photoshop Save for Web at Quality 51+). If you export a product graphic with red typography at Quality 85, forcing 4:4:4 chroma produces cleaner text than raising DCT quality alone.
  3. Add Subtle Luma Contrast Behind Red or Blue UI Badges: If your asset must be delivered over a 4:2:0 video stream or thumbnail feed, avoid placing pure red (Y' = 0.21) against a dark gray background of identical luma (#363636, Y' = 0.21). Shifting the background darker (#141414) or the text lighter gives the full-resolution Y' luma channel a crisp edge to anchor the eye.

Batch-converting product photos, web graphics, and UI screenshots across PNG, JPEG, and WebP? Open BatchPad to process your images locally in your browser with full control over format and quality, or browse our image compression guides.