definiciones de formato de píxel ffmpeg

9

ffmpeg -pix_fmtsenumera muchos formatos de píxeles. En mi ffmpeg, hay 66 formatos de píxeles diferentes que comienzan con yuv . Algunos de ellos me son familiares (por ejemplo, yuv422p), pero la mayoría de ellos no lo son (por ejemplo, yuva422p16be).

¿Dónde se definen estos formatos de píxeles?

Doug Richardson
fuente
3
La mayoría se describen a sí mismos. yuva422p16be YUV son planos de luma y croma. a es el canal alfa. 422 es la descripción del tamaño del plan, p significa más plana, 16be significa 16 bits por píxel en formato big endian.
SlimSCSI
Gracias @SlimSCSI. ¿Sabes lo que significa j en yuvj440p?
Doug Richardson
55
YUV420P utiliza el rango de 16 a 239 para describir los valores de luminancia y croma, por lo que los valores de 0 a 16 se asignan al mismo nivel de salida, al igual que los valores 239-255. YUVJ420P usa el rango completo de 0 a 255. Sin embargo, no estoy seguro de por qué es J.
stib
44
En libavutil/pixfmt.h: AV_PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range.
llogan

Respuestas:

7

Si tu pregunta fuera

¿Dónde se definen estos formatos de píxeles?

Vaya a http://ffmpeg.org/download.html y descargue la fuente de ffmpeg. Luego descomprimirlo

tar -xavf FILENAME.tar.*

y desciende a la carpeta en el código fuente que se llama libavutil

cd ffmpeg-*/libavutil/

y abra el archivo pixfmt.hdonde encontrará una descripción de todos los formatos de píxeles. Algunas líneas de muestra

AV_PIX_FMT_YUV420P,   ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)          
AV_PIX_FMT_YUYV422,   ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
AV_PIX_FMT_RGB24,     ///< packed RGB 8:8:8, 24bpp, RGBRGB...
AV_PIX_FMT_BGR24,     ///< packed RGB 8:8:8, 24bpp, BGRBGR...
AV_PIX_FMT_YUV422P,   ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)

Además, puede leer https://en.wikipedia.org/wiki/YUV y sus fuentes citadas y enlaces externos.

erik
fuente