Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describen los formatos YUV de 10 y 16 bits recomendados para capturar, procesar y mostrar vídeo en el sistema operativo Microsoft Windows.
Este tema contiene las secciones siguientes:
- información general
- códigos FOURCC para YUV de 10 y 16 bits
- definiciones de superficie de
- formatos YUV preferidos
- temas relacionados
Visión general
Estos formatos usan una representación de punto fijo para el canal luma y los canales cromáticos (C'b y C'r). Los valores de ejemplo se escalan a 8 bits, mediante un factor de escala de 2^(n − 8), donde n es 10 o 16, según las secciones 7.7-7.8 y 7.11-7.12 de SMPTE 274M. Las conversiones de precisión se pueden realizar mediante desplazamientos de bits simples. Por ejemplo, si el punto blanco de un formato de 8 bits es de 235, el formato de 10 bits correspondiente tiene un punto blanco en 940 (235 × 4).
Las representaciones de 16 bits descritas aquí usan valores little-endian WORD para cada canal. Los formatos de 10 bits también usan 16 bits para cada canal, con los 6 bits más bajos establecidos en cero, como se muestra en el diagrama siguiente.
diagrama de de representación de 10 bits
Dado que las representaciones de 10 y 16 bits del mismo formato YUV tienen el mismo diseño de memoria, es posible convertir una representación de 10 bits a una representación de 16 bits sin pérdida de precisión. También es posible convertir una representación de 16 bits a una representación de 10 bits. (Los formatos Y416 e Y410 son una excepción a esta regla general, sin embargo, porque no comparten el mismo diseño de memoria).
Cuando el hardware gráfico lee una superficie que contiene una representación de 10 bits, debe omitir los 6 bits de orden bajo de cada canal. Sin embargo, si una superficie contiene datos válidos de 16 bits, debe identificarse como una superficie de 16 bits.
En los formatos que contienen alfa, un píxel completamente transparente tiene un valor alfa de cero y un píxel completamente opaco tiene un valor alfa de (2^n) – 1, donde n es el número de bits alfa. Se supone que alpha es un valor lineal que se aplica a cada componente después de que el componente se haya convertido en su forma lineal normalizada.
Para imágenes en memoria de vídeo, el controlador de gráficos selecciona la alineación de memoria de la superficie. La superficie debe estar alineada DWORD. Es decir, se garantiza que las líneas individuales dentro de una superficie comiencen en un límite de 32 bits, aunque la alineación puede ser mayor que 32 bits. El origen (0,0) es siempre la esquina superior izquierda de la superficie.
Para los fines de esta documentación, el término U equivale a Cby el término V es equivalente a Cr.
Códigos FOURCC para YUV de 10 y 16 bits
Los códigos FOURCC para los formatos descritos aquí usan la siguiente convención:
Si el formato es planar, el primer carácter del código FOURCC es "P". Si el formato está empaquetado, el primer carácter es "Y".
El segundo carácter del código FOURCC viene determinado por el muestreo cromático, como se muestra en la tabla siguiente.
Muestreo cromático Letra de código FOURCC 4:4:4 '4' 4:2:2 '2' 4:2:1 '1' 4:2:0 '0' Los dos caracteres finales de FOURCC indican el número de bits por canal, "16" para 16 bits o "10" para 10 bits.
Con este esquema, se han definido los siguientes códigos FOURCC. En este momento no se han definido formatos de 4:2:1 para YUV de 10 o 16 bits.
FOURCC | Descripción |
---|---|
P016 | Planar, 4:2:0, 16 bits. |
P010 | Planar, 4:2:0, 10 bits. |
P216 | Planar, 4:2:2, 16 bits. |
P210 | Planar, 4:2:2, 10 bits. |
Y216 | Empaquetado, 4:2:2, 16 bits. |
Y210 | Empaquetado, 4:2:2, 10 bits. |
Y416 | Empaquetado, 4:4:4, 16 bits |
Y410 | Empaquetado, 4:4:4, 10 bits. |
Los GUID de subtipo también se han definido a partir de estos FOURCC; consulte GUID de subtipo de vídeo.
Definiciones de Superficie
En esta sección se describe el diseño de memoria de cada formato. En las descripciones siguientes, el término WORD hace referencia a un valor little-endian de 16 bits y el término DWORD hace referencia a un valor de 32 bits little-endian.
Formatos 4:2:0
Se definen dos formatos 4:2:0, con los códigos FOURCC P016 y P010. Comparten el mismo diseño de memoria, pero P016 usa 16 bits por canal y P010 usa 10 bits por canal.
P016 y P010
En estos dos formatos, todas las muestras Y aparecen primero en memoria como una matriz de WORDs con un número par de líneas. El paso de la superficie puede ser mayor que el ancho del plano Y. Esta matriz va seguida inmediatamente de una matriz de WORDs que contiene muestras intercaladas y V, como se muestra en el diagrama siguiente.
diagrama de
Si la matriz de U-V combinada se aborda como una matriz de DWORDs, la palabra menos significativa (LSW) contiene el valor U y la palabra más significativa (MSW) contiene el valor V. El paso del plano U-V combinado es igual al paso del plano Y. El plano U-V tiene la mitad de las líneas que el plano Y.
Estos dos formatos son los formatos de píxeles planar 4:2:0 preferidos para representaciones YUV de mayor precisión. Se espera que sean un requisito de término intermedio para los aceleradores de aceleración de vídeo directX (DXVA) que admiten vídeos de 10 o 16 bits de 4:2:0.
Formatos 4:2:2
Se definen cuatro formatos 4:2:2, dos planar y dos empaquetados. Tienen los siguientes códigos FOURCC:
- P216
- P210
- Y216
- Y210
P216 y P210
En estos dos formatos planar, todas las muestras Y aparecen primero en memoria como una matriz de WORDs con un número par de líneas. El paso de la superficie puede ser mayor que el ancho del plano Y. Esta matriz va seguida inmediatamente de una matriz de WORDs que contiene muestras intercaladas y V, como se muestra en el diagrama siguiente.
diagrama de
Si la matriz de U-V combinada se dirige como una matriz de DWORDs, el LSW contiene el valor U y msW contiene el valor V. El paso del plano U-V combinado es igual al paso del plano Y. El plano U-V tiene el mismo número de líneas que el plano Y.
Estos dos formatos son los formatos de píxeles planar 4:2:2 preferidos para representaciones YUV de mayor precisión. Se espera que sean un requisito de término intermedio para los aceleradores de aceleración de vídeo DirectX (DXVA) que admiten vídeos de 10 o 16 bits 4:2:2.
Y216 e Y210
En estos dos formatos empaquetados, cada par de píxeles se almacena como una matriz de cuatro WORDs, como se muestra en la ilustración siguiente.
El primer WORD de la matriz contiene el primer ejemplo Y en el par, el segundo WORD contiene el ejemplo U, el tercer WORD contiene el segundo ejemplo Y y el cuarto WORD contiene el ejemplo V.
Y210 es idéntico a Y216, salvo que cada muestra contiene solo 10 bits de datos significativos. Los 6 bits menos significativos se establecen en cero, como se ha descrito anteriormente.
Formatos 4:4:4
Se definen dos formatos 4:4:4, con los códigos FOURCC Y410 y Y416. Ambos son formatos empaquetados.
Y410
Este formato es una representación empaquetada de 10 bits que incluye 2 bits de alfa. Cada píxel se codifica como un solo DWORD con el diseño de memoria que se muestra en el diagrama siguiente.
Los bits 0-9 contienen la muestra U, los bits 10-19 contienen la muestra Y, los bits 20-29 contienen la muestra V y los bits 30-31 contienen el valor alfa. Para indicar que un píxel es totalmente opaco, una aplicación debe establecer los dos bits alfa iguales a 0x03.
Y416
Este formato es una representación empaquetada de 16 bits que incluye 16 bits de alfa. Cada píxel se codifica como un par de DWORDs, como se muestra en la ilustración siguiente.
Los bits 0-15 contienen la muestra U, los bits 16-31 contienen la muestra Y, los bits 32-47 contienen la muestra V y los bits 48-63 contienen el valor alfa.
Para indicar que un píxel es totalmente opaco, una aplicación debe establecer los dos bytes alfa iguales a 0xFFFF. Este formato está pensado principalmente como un formato intermedio durante el procesamiento de imágenes para evitar la acumulación de errores.
Formatos YUV preferidos
En la tabla siguiente se enumeran los formatos YUV preferidos, incluidos los formatos de 8 bits.
Formato | Muestreo cromático | Empaquetado o planar | Bits por canal |
---|---|---|---|
AYUV | 4:4:4 | Compacto | 8 |
Y410 | 4:4:4 | Compacto | 10 |
Y416 | 4:4:4 | Compacto | 16 |
AI44 | 4:4:4 | Compacto | Palettized |
YUY2 | 4:2:2 | Compacto | 8 |
Y210 | 4:2:2 | Compacto | 10 |
Y216 | 4:2:2 | Compacto | 16 |
P210 | 4:2:2 | Planar | 10 |
P216 | 4:2:2 | Planar | 16 |
NV12 | 4:2:0 | Planar | 8 |
P010 | 4:2:0 | Planar | 10 |
P016 | 4:2:0 | Planar | 16 |
NV11 | 4:1:1 | Planar | 8 |
Se recomienda que si un objeto admite un esquema de muestreo cromático y de profundidad de bits determinado, debe admitir los formatos YUV correspondientes enumerados en esta tabla. (Los objetos pueden admitir formatos adicionales que no aparecen aquí).
Temas relacionados