[FFmpeg-user] should I shoot the dog?

Mark Filipak (ffmpeg) markfilipak at bog.us
Tue Sep 29 18:25:51 EEST 2020


On 09/29/2020 10:46 AM, Michael Koch wrote:
> Am 29.09.2020 um 16:26 schrieb Mark Filipak (ffmpeg):
>> On 09/29/2020 09:37 AM, Michael Koch wrote:
>>> Am 29.09.2020 um 14:58 schrieb Mark Filipak (ffmpeg):
>>>> On 09/29/2020 04:06 AM, Michael Koch wrote:
>>>>> Am 29.09.2020 um 04:28 schrieb Mark Filipak (ffmpeg):
>>>>>>
>>>>>> I just want to understand the frame structures that ffmpeg creates, and that ffmpeg uses in 
>>>>>> processing and filtering. Are Y, Cb, Cr separate buffers? That would be logical. Or are the Y, 
>>>>>> Cb, Cr values combined and organized similarly to macroblocks? I've found some code that 
>>>>>> supports that. Or are the Y, Cb, Cr values thrown together, pixel-by-pixel. That would be 
>>>>>> logical, too.
>>>>>
>>>>> As far as I understood it, that depends on the pixel format.
>>>>> For example there are "packed" pixel formats rgb24, bgr24, argb, rgba, abgr, bgra,rgb48be, 
>>>>> rgb48le, bgr48be, bgr48le.
>>>>> And there are "planar" pixel formats gbrp, bgrp16be, bgrp16le.
>>>>
>>>> Hi Michael,
>>>>
>>>> "Packed" and "planar", eh? What evidence do you have? ...Share the candy!
>>>
>>> As far as I know, this is not described in the official documentation. You can find it for 
>>> example here:
>>> https://video.stackexchange.com/questions/16374/ffmpeg-pixel-format-definitions
>>
>> Thanks for that. It saved me some time. ...So, what does "planar" mean? What does "packed" mean?
> 
> Here is an example for a very small image with 3 x 2 pixels.
> In (packed) RGB24 format:   RGBRGBRGBRGBRGBRGB

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")?

> In (planar) GBRP format: GGGGGGBBBBBBRRRRRR

What about fields?

In macroblock format, samples are 1st spacially divided vertically into by-16 slices, then spacially 
divided within slices into by-16 macroblocks, then, within macroblocks, divided by into (combined) 
colorant-field blocks: Ytop Ytop Ybottom Ybottom Cb Cr, and, within Cb Cr colorants, into field 
half-blocks, and finally, interleaved by 2 levels of interleaving. ...An overly complicated and (to 
me) ill-conceived set of datasets that illustrates (to me) that the video "engineers" of the Motion 
Pictures Expert Group are lightweight engineers and have hacked a "system".

It is structure to the field-level that I'm most interested in, but a deep dive would be fun.


-- 
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