[FFmpeg-user] Chroma subsampling formats
Paul B Mahol
onemda at gmail.com
Tue Jul 22 08:01:18 EEST 2025
On Mon, Jul 21, 2025 at 11:12 PM Mark Filipak <markfilipak.imdb at gmail.com>
wrote:
> On 21/07/2025 18.54, Paul B Mahol wrote:
> > On Mon, Jul 21, 2025 at 10:12 PM Mark Filipak <
> markfilipak.imdb at gmail.com>
> > wrote:
> >
> >> On 21/07/2025 17.50, Paul B Mahol wrote:
> >>
> >>> Number of Cb pixels === Number of Cr pixels, ALWAYS!
> >>
> >> I know that's what a lot of people assume, but it doesn't jibe with what
> >> I'm seeing. Perhaps that's part of the confusion I see.
> >>
> >> Do you have an authoritative source for what you write?
> >>
> >
> > Yes, I have. Me!
> >
> > I'm the authority.
>
> Excellent! I'd welcome your comments on the following:
>
>
> Q1. I show five conjectures: 4:4:2 and 4:4:1 and 4:2:1 and 4:1:0 and
> 4:0:0. In your judgment, do those conjectured notations exist? Are they
> correct?
>
4:0:0 would be gray only pixel format
look at ffmpeg pixfmt list, you will find yuv444, yuv420, yuv422, yuv440,
yuv410, yuv411.
>
> Q2. For 4:2:2 and 4:2:0 and 4:1:1, I see a difference between Poynton's
> descriptions and Wikipedia's. As I see it, Poynton shows chroma samples
> that are a half-pixel offset to the left. What is your judgment?
Wikipedia article doesn't much elaborate on positions of Cb/Cr samples
picking.
And from Poynton's pdf its obvious that each standard may impose different
rules.
Like I was not aware that DV25 have different offsets for Cb and Cr.
>
> References.
> Poynton: https://www.poynton.ca/PDFs/Chroma_subsampling_notation.pdf
> QuestTel: https://questtel.com/wiki/chroma-sub-mapping-types
> Wikipedia: https://en.wikipedia.org/wiki/Chroma_subsampling
>
> KEY:
> : • : depicts a luma pixel.
> : • • : 2 consecutive luma pixels.
> : • • • • : 4 consecutive luma pixels.
> : = : a chroma pixel.
> : = = : a unit of 2 chroma pixels.
> : = = = = : a unit of 4 chroma pixels.
> : © : a chroma sample.
> : © = : a sample and a pixel, plus another pixel to the right.
> : ©= = : a sample 1/2 pixel to the left of its 2 pixels.
> : ©= =©= = : the same, plus a second one.
> : © = = = : a sample and a pixel, plus 3 more pixels to the right.
> : ©= = = = : a sample 1/2 pixel to the left of its 4 pixels.
> : © = = = = : a sample 1 and 1/2 pixels to the left of its 4 pixels.
> : ——[1]—— : asserts that there is no chroma subpicture there [1].
>
> Shown next is the top-left corner of the sampled film.
> +—————————
> | • • • • <== Four consecutive pixels in line 0 of subpicture-0.
> | • • • • <== Four consecutive pixels in line 0 of subpicture-1.
> | The above illustrates how pixels populate subpictures and how
> subpictures are combined.
>
> Shown next is the loci of Y, Cb, and Cr separated as element 'planes'.
> | Y Cb Cr
> | • • • • | © © © © | © © © © 4:4:4, Poynton, Wikipedia.
> | • • • • | © © © © | © © © ©
>
> | • • • • | © © © © | © © © © 4:4:2, conjecture.
> | • • • • | © = © = | © = © =
>
> | • • • • | © © © © | © © © © 4:4:1, conjecture.
> | • • • • | © = = = | © = = =
>
> | • • • • | © © © © | © © © © 4:4:0, Wikipedia.
> | • • • • | ——[1]—— | ——[1]——
>
> | • • • • | © = © = | © = © = 4:2:2, Wikipedia.
> | • • • • | © = © = | © = © =
>
> | • • • • |©= =©= = |©= =©= = 4:2:2 (BT.601), Poynton.
> | • • • • |©= =©= = |©= =©= = [2]
>
> | • • • • | © = © = | © = © = 4:2:1, conjecture.
> | • • • • | © = = = | © = = =
>
> | • • • • | © = = = | © = © = 4:2:1, QuestTel (vaguely
> | • • • • | © = = = | © = © = described, not pictured).
>
> | • • • • | © = © = | © = © = 4:2:1 (JPEG variant, irregular),
> | • • • • | ——[1]—— | © = = = Wikipedia.
>
> | • • • • | © = © = | © = © = 4:2:0 (MPEG1, H.261), Poynton,
> | • • • • | ——[1]—— | ——[1]—— Wikipedia.
>
> | • • • • |©= =©= = |©= =©= = 4:2:0 (MPEG2 frames), Poynton,
> | • • • • | ——[1]—— | ——[1]—— QuestTel. [2]
>
> | • • • • | © = = = | © = = = 4:1:1, QuestTel, Wikipedia.
> | • • • • | © = = = | © = = =
>
> | • • • • © = = = = | ©= = = = 4:1:1 (480i), Poynton.
> | • • • • © = = = = | ©= = = = [2]
>
> | • • • • | © = = = | © = = = 4:1:0, conjecture.
> | • • • • | ——[1]—— | ——[1]——
>
> | • • • • | ——[1]—— | ——[1]—— 4:0:0, (monochrome) conjecture.
> | • • • • | ——[1]—— | ——[1]——
>
> | • • • | © = = | © = = 3:1:1 (Sony), Poynton,
> | • • • | © = = | © = = Wikipedia.
>
> [1] The chroma subpicture is void. If both chroma subpictures-0 and -1
> are void (e.g. 4:0:0), then there are no chroma subpictures and the
> composited pixels carry luma only. Otherwise, the decoder copies chroma
> subpicture-0 to chroma subpicture-1. Note that though it is possible,
> the condition: chroma subpicture-0 void and chroma subpicture-1
> populated, has not been seen in the wild.
>
> [2] The chroma samples are shown left-shifted by one-half pixel,
> presumably due to sampling one-half pixel to the left. Since the actual
> pixels cannot be moved, their values must be derived, usually by mixing.
> Note that mixing is most accurately accomplished in frame pictures and
> that the left edges of spans become slightly blurry. Note also that
> chroma spans are assumed to be truncated as needed at the left edge of
> film frames, e.g. in 4:1:1.
>
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>
More information about the ffmpeg-user
mailing list