Opened 2 years ago
Closed 2 years ago
#9526 closed defect (invalid)
AV_PIX_FMT_YUV410P description incorrect
Reported by: | Anton1699 | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avutil |
Version: | git-master | Keywords: | pixdesc |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
[AV_PIX_FMT_YUV410P] = { .name = "yuv410p", .nb_components = 3, .log2_chroma_w = 2, .log2_chroma_h = 2, .comp = { { 0, 1, 0, 0, 8 }, /* Y */ { 1, 1, 0, 0, 8 }, /* U */ { 2, 1, 0, 0, 8 }, /* V */ }, .flags = AV_PIX_FMT_FLAG_PLANAR, }
YUV 4:1:0 contains one pair of chroma samples per 4x2
block of luma samples, so log2_chroma_h
should be 1
or am I reading this wrong?
Change History (2)
comment:1 by , 2 years ago
Summary: | AV_PIX_FMT_YUV410P description incorret → AV_PIX_FMT_YUV410P description incorrect |
---|
comment:2 by , 2 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
4:1:0 notation can be used for both one chroma pair per 4x2 block and one chroma pair per 4x4 block. However in ffmpeg AV_PIX_FMT_YUV410P means the latter, one chroma pair per 4x4 block.
Even wikipedia is confused and using both terms:
https://en.wikipedia.org/wiki/Chroma_subsampling
This notation is not valid for all combinations and has exceptions, e.g. 4:1:0 (where the height of the region is not 2 pixels, but 4 pixels, so if 8 bits per component are used, the media would be 9 bits per pixel) and 4:2:1.
but later:
This ratio uses half of the vertical and one-fourth the horizontal color resolutions, with only one-eighth of the bandwidth of the maximum color resolutions used. Uncompressed video in this format with 8-bit quantization uses 10 bytes for every macropixel (which is 4×2 pixels). Some video codecs may operate at 4:1:0.5 or 4:1:0.25 as an option, so as to allow similar to VHS quality.
So log2_chroma_h is fine as is in ffmpeg.