[FFmpeg-user] should I shoot the dog?

Mark Filipak (ffmpeg) markfilipak at bog.us
Tue Sep 29 19:24:46 EEST 2020


On 09/29/2020 11:44 AM, Devin Heitmueller wrote:
> On Tue, Sep 29, 2020 at 11:29 AM Mark Filipak (ffmpeg)
> <markfilipak at bog.us> wrote:
>> Oh, dear, that's what "packed" means? ...very misleading name, eh? How are fields handled? Are the
>> pixels assumed to be unfielded (meaning so-called "progressive")?
> 
> So the topic of how interlaced video is handled in subsampled video is
> something we could spend an hour on by itself.  In the Luma space, the
> Y samples are organized in interleaved form (i.e. lines of
> top/bottom/top/bottom). ...

Top/bottom/top/bottom, especially if full lines, seems like straightforward interlaced to me. Or do 
I misunderstand?

>... Because of chroma subsampling and the fact
> that multiple lines can share chroma samples, this gets tricky. ...

Our messages crossed in transit, but I'm going to assume that you've seen my "In macroblock 
format..." post (in this subject thread).

>... In
> the simple progressive case for 4:2:0, you'll have the first Chroma
> sample corresponding to the first two luma samples on line 1 and the
> first two luma samples on line 2. ...

I assume you meant to write "and the *next* two luma samples on line 2". That 'sounds' like what I'm 
calling sample-quads. The following is from the glossary I'm working on (reformatted to fit email).

YCbCr420 sampleset:
   A sampleset with sample-quads:
   .---.---.
   ¦ S ¦ S ¦
   :---:---:
   ¦ S ¦ S ¦
   '---'---', reduced to 1/4 chrominance resolution:
   .---.---. .-------. .-------.
   ¦ Y ¦ Y ¦ ¦       ¦ ¦       ¦
   :---:---: ¦Cb     ¦ ¦Cr     ¦
   ¦ Y ¦ Y ¦ ¦       ¦ ¦       ¦
   '---'---' '-------' '-------', distinguished by binary metadata:
   'chroma_format' = 01. (See "Cb420 & Cr420 macroblocks", "Y macroblock".)

YCbCr422 sampleset:
   A sampleset with sample-quads:
   .---.---.
   ¦ S ¦ S ¦
   :---:---:
   ¦ S ¦ S ¦
   '---'---', reduced to 1/2 chrominance resolution:
   .---.---. .-------. .-------.
   ¦ Y ¦ Y ¦ ¦Cb     ¦ ¦Cr     ¦
   :---:---: :-------: :-------:
   ¦ Y ¦ Y ¦ ¦Cb     ¦ ¦Cr     ¦
   '---'---' '-------' '-------', distinguished by binary metadata:
   'chroma_format' = 10. (See "Cb422 & Cr422 macroblocks", "Y macroblock".)

YCbCr444 sampleset:
   A sampleset with sample-quads:
   .---.---.
   ¦ S ¦ S ¦
   :---:---:
   ¦ S ¦ S ¦
   '---'---', having full chrominance resolution:
   .---.---. .---.---. .---.---.
   ¦ Y ¦ Y ¦ ¦Cb ¦Cb ¦ ¦Cr ¦Cr ¦
   :---:---: :---:---: :---:---:
   ¦ Y ¦ Y ¦ ¦Cb ¦Cb ¦ ¦Cr ¦Cr ¦
   '---'---' '---'---' '---'---', distinguished by binary metadata:
   'chroma_format' = 11. (See "Cb444 & Cr444 macroblocks", "Y macroblock".)

>... If the video frame is interlaced
> however, the first chroma sample corresponds to the first two luma
> samples on line 1 and the first two luma samples on line 3.  The first
> chroma sample on the second line of chroma corresponds with the first
> two luma samples on line 2 and the first two luma samples on line 4.

I have pictures of those, too. What do you think of the above pictures? Do you a, like them, or b, 
loathe them, or c, find them unnecessary?

> This is known as "interlaced chroma" and a Google search will reveal
> lots of cases where it's done wrong and what the effects are.  This is
> the article I usually refer people to:
> 
> https://hometheaterhifi.com/technical/technical-reviews/the-chroma-upsampling-error-and-the-420-interlaced-chroma-problem/
> 
> The above article does a really good job explaining the behavior (far
> better than I could do in the one paragraph above).

I've seen that produce mild combing. I'll read your reference.

-- 
-- 
The U.S. political problem? Amateurs are doing the street fighting.
The Princeps Senatus and the Tribunus Plebis need their own armies.


More information about the ffmpeg-user mailing list