El format de píxel és la disposició de cada píxel a les dades d'imatge en brut d'una imatge o vídeo. Indica a un programa quins components de color té la imatge i quants bits utilitzen.
Els informes de vídeo sovint mostren el camp com a pix_fmt, amb un valor com yuv420p. Un valor així mostra el model de color, el submostreig de croma i la profunditat de bits. L'espai de color és un camp separat.
Quins fitxers ho porten
El programa ffprobe de FFmpeg enumera pix_fmt per a cada flux de vídeo. Això inclou fitxers MP4, MOV, MKV i WebM.
Les imatges també informen d'un valor. FFmpeg assigna yuvj420p a un JPEG amb submostreig 4:2:0 i rgb24 a un PNG RGB de 8 bits.
Un fitxer d'àudio amb caràtula també pot informar d'un format de píxel. FFmpeg tracta aquesta imatge com un flux de vídeo.
ExifTool llegeix una etiqueta anomenada PixelFormat en fitxers Windows HD Photo (HDP i WDP). Mostra valors com 24-bit RGB i 8-bit Gray.
Com són els valors
FFmpeg construeix els seus noms a partir de parts curtes. El valor yuv420p10le té 5 parts:
yuv: el model de color. Y és la brillantor, i U i V transporten el color. U i V també s'anomenen Cb i Cr, com a YCbCr.420: el mostreig. El color té la meitat de l'amplada i de l'alçada de les dades de brillantor.p: planar. Cada component té un pla separat. Un format empaquetat manté els components junts en una sola matriu.10: els bits per a cada component. El valoryuv420pno té cap nombre aquí i utilitza 8 bits.le: l'ordre dels bytes, little-endian. El finalbevol dir big-endian.
Valors típics
Cada nombre següent és la mitjana de bits per píxel a les dades d'imatge en brut:
yuv420p: 12 bits, color a la meitat de l'amplada i de l'alçadayuv422p: 16 bits, color a la meitat de l'ampladayuv444p: 24 bits, color per a cada píxelyuvj420p: 12 bits, la disposicióyuv420pamb el rang complet que fa servir JPEGrgb24: 24 bits, vermell, verd i blau empaquetatsrgba: 32 bits, amb un valor alfa afegit per a la transparènciagray: 8 bits, només brillantorpal8: 8 bits, cada valor apunta a un color de la paleta
En rang complet, la brillantor de 8 bits va de 0 a 255. En rang limitat, va de 16 a 235. FFmpeg recomana un camp de rang separat en lloc dels noms yuvj.
D'on ve el valor
El programa que codifica el flux decideix el format de píxel. A FFmpeg, el tries amb l'opció -pix_fmt.
El nom en si normalment no s'emmagatzema al fitxer. El programa que llegeix construeix el nom a partir de les dades desades.
Per a H.264, FFmpeg utilitza la profunditat de bits i el format de croma de la capçalera del flux. Per a PNG, FFmpeg utilitza la profunditat de bits i el tipus de color de la capçalera de la imatge.
Per què és important per al teu fitxer
El format de píxel defineix la mida de les dades d'imatge en brut. Un fotograma rgb24 té 24 bits per píxel i un fotograma yuv420p en té 12. Els còdecs comprimeixen aquestes dades, així que aquests nombres no indiquen la mida final del fitxer.
El format de píxel també determina quants detalls de color conserva el fitxer. L'ull humà veu molta més definició en la brillantor que en el color, de manera que 4:2:0 causa poca pèrdua visible.
Si converteixes de 4:2:0 a 4:4:4, un programa calcula les mostres que falten a partir de les més properes. Els detalls de color que 4:2:0 ha eliminat continuen perduts.
El perfil H.264 és un altre motiu per comprovar el valor. Els perfils Main i High admeten color de 8 bits amb submostreig 4:2:0.
Un flux H.264 en yuv444p o yuv420p10le necessita un perfil més alt. Les normes HLS d'Apple requereixen H.264 en perfil High o inferior. YouTube recomana el perfil High amb 4:2:0 per a les pujades.