Here's my latest revision preceded by some of my ramblings. Oh, Brother, showing pixels as areas of light really is a siren enticing me to go overboard and swim to the island. But it's death that's on the island.
I've had to remind myself, over and over, that pixels are 'dimensionless' points of light, that a 4-by-1 array of pixels is a line of dots, not an area, that a 4-by-2 array of pixels is 2 lines of dots, not an area. That dots, not areas, are sampled. That dots, not areas, are seen. With each step I take I'm amazed by how I led myself astray in the past, only to realize that I'm still leading myself astray on some unquestioned aspect. Pixels don't move. A line of 4 pixels, as a unit, doesn't mean that their sample point was half-way between the 2nd and 3rd pixel. "Of course", you say. "There's center-sample and left-sample and corner-sample". "Sure," I say, "but in those pretty pictures, the sampling points aren't shown. We know that RGB samples are taken just once, at the loci of the luma pixels, but some of what I've seen looks impossible." Sampling. Such a simple thing. How can so many get it so wrong for so long? Dear Dr. Poynton, Thank you for providing valuable guidance to so many people for so many years. You may know that Wikipedia contains a rather tortured description of chroma subsampling. I seek to simplify the description and to expand the scope to include the five notations that I label "conjecture", below. I'm associated with the ffmpeg-user mailing list, and though I speak solely for myself, I have the entirety of ffmpeg as an audience. I would be delighted to receive the opinions of an authority. All comments are welcome. I will not post on ffmpeg-user or Wikipedia or anywhere else any replies you may make without your expressed permission. Note however that I have posted drafts of this message on ffmpeg-user, prompting for comments. 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? Q2. For 4:2:2 and 4:2:0 and 4:1:1, I see a difference between your descriptions and Wikipedia's. As I see it, you show chroma samples that are a half-pixel offset to the left. Do my diagrams correctly depict your judgment? Thank you. I hope you respond but I also wish to not burden you. Warm Regards, Mark Filipak. 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 chroma sample overlapped by a 2-chroma unit. : © = = = : a chroma sample overlapped by a 4-chroma unit. : ©= = = = : a sample made 1/2 pixel to the left of a 4-chroma unit. : © = = = = : a sample made 3/2 pixels to the left of a 4-chroma unit. : ©= = : a sample made 1/2 pixel to the left of a 2-chroma unit. : ©= =©= = : the same, plus another one. : ——[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@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".