Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Chroma subsampling
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Artifacts== {{multiple image|perrow = 1|width=220 | header = | image1 = Color-bars-original.png | caption1 = Original image without color subsampling. 200% zoom. | image2 = Color-bars-vegas-dv.png | caption2 = Image after color subsampling (Sony Vegas DV codec, box filtering.) | footer = Note the bleeding in lightness near the borders. }} Chroma subsampling suffers from two main types of artifacts, causing degradation more noticeable than intended where colors change abruptly. === Gamma luminance error === {{further|Gamma correction#Scaling and blending}} Gamma-corrected signals like Y'CbCr have an issue where chroma errors "bleed" into luma. In those signals, a low chroma actually makes a color appear less bright than one with equivalent luma. As a result, when a saturated color blends with an unsaturated or complementary color, a loss of luminance occurs at the border. This can be seen in the example between magenta and green.<ref name=better>{{cite journal |last1=Chan |first1=Glenn |title=Toward Better Chroma Subsampling: Recipient of the 2007 SMPTE Student Paper Award |journal=SMPTE Motion Imaging Journal |date=May 2008 |volume=117 |issue=4 |pages=39β45 |doi=10.5594/J15100 |url=http://www.glennchan.info/articles/technical/chroma/chroma1.htm|doi-access=free }}</ref> This issue persists in HDR video where gamma is generalized into a transfer function "[[EOTF]]". A steeper EOTF shows a stronger luminance loss.<ref name=Larbier>{{cite journal |last1=Larbier |first1=Pierre |title=High Dynamic Range: Compression Challenges |journal=SMPTE 2015 Annual Technical Conference and Exhibition |date=October 2015 |pages=1β15 |doi=10.5594/M001639|isbn=978-1-61482-956-0 }}</ref> Some proposed corrections of this issue are: * Luma-weighted average (Kornelski, experiment for mozjpeg)<ref>{{cite web |title=Gamma-correct chroma subsampling Β· Issue #193 Β· mozilla/mozjpeg |url=https://github.com/mozilla/mozjpeg/issues/193 |website=GitHub |language=en}}</ref> * Iterative ''sharp YUV'' method, used by [[WebP]] and optionally [[AVIF]]. Sharp YUV assumes a [[bilinear interpolation|bilinear]] upscaling for chroma.<ref>{{cite web |title=WebP: sharpyuv/sharpyuv.h {{!}} Fossies |url=https://fossies.org/linux/libwebp/sharpyuv/sharpyuv.h |website=fossies.org |quote=Assumes that the image will be upsampled using a bilinear filter. If nearest neighbor is used instead, the upsampled image might look worse than with standard downsampling.}}</ref> * RGB subsampling in linear space before chroma subsampling (HDRTools)<ref name=Larbier/> * Iterative or closed-form luma correction to minimize luminance error (HDRTools)<ref>{{cite conference |url=https://norkin.org/pdf/SPIE_2016_HDR_conversion_metrics.pdf |last1=Norkin |first1=Andrey |title=HDR color conversion with varying distortion metrics |date=27 September 2016 |pages=99710E |conference=SPIE Optical Engineering + Applications, 2016 |doi=10.1117/12.2237040}}</ref> [[Rec. 2020]] defines a "constant luminance" Yc'CbcCrc, which is calculated from linear RGB components and then gamma-encoded. This version does not suffer from the luminance loss by design.<ref name=Recommendation2020>{{cite news |title=BT.2020: Parameter values for ultra-high definition television systems for production and international programme exchange |publisher=[[International Telecommunication Union]] |url=https://www.itu.int/rec/R-REC-BT.2020/en |date=2014-07-17 |access-date=2014-08-31}}</ref> === Gamut clipping === Another artifact that can occur with chroma subsampling is that out-of-[[gamut]] colors can occur upon chroma reconstruction. Suppose the image consisted of alternating 1-pixel red and black lines and the subsampling omitted the chroma for the black pixels. Chroma from the red pixels will be reconstructed onto the black pixels, causing the new pixels to have positive red and ''negative'' green and blue values. As displays cannot output negative light (negative light does not exist), these negative values will effectively be clipped, and the resulting luma value will be too high. Other sub-sampling filters (especially the averaging "box") have a similar issue that is harder to make a simple example out of. Similar artifacts arise in the less artificial example of gradation near a fairly sharp red/black boundary.<ref name=better/> It is possible for the decoder to deal with out-of-gamut colors by considering how much chroma a given luma value can hold and distribute it into the 4:4:4 intermediate accordingly, termed "in-range chroma reconstruction" by Glenn Chan. The "proportion" method is in spirit similar to Kornelski's luma-weighted average, while the "spill" method resembles [[error diffusion]].<ref name=better/> Improving chroma reconstruction remains an active field of research.<ref>{{cite journal |last1=Chung |first1=Kuo-Liang |last2=Liang |first2=Yan-Cheng |last3=Wang |first3=Ching-Sheng |title=Effective Content-Aware Chroma Reconstruction Method for Screen Content Images |journal=IEEE Transactions on Image Processing |date=March 2019 |volume=28 |issue=3 |pages=1108β1117 |doi=10.1109/TIP.2018.2875340|pmid=30307864 |bibcode=2019ITIP...28.1108C |s2cid=52964340 }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)