Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique décrit les formats YUV 10 et 16 bits recommandés pour capturer, traiter et afficher des vidéos dans le système d’exploitation Microsoft Windows.
Cette rubrique contient les sections suivantes :
- Vue d’ensemble
- codes FOURCC pour les YUV 10 bits et 16 bits
- définitions de surface
- formats YUV préférés
- rubriques connexes
Aperçu
Ces formats utilisent une représentation à point fixe pour le canal luma et les canaux chroma (C’b et C’r). Les valeurs d’exemple sont mises à l’échelle 8 bits, à l’aide d’un facteur de mise à l’échelle de 2^(n − 8), où n est soit 10 ou 16, conformément aux sections 7.7-7.8 et 7.11-7.12 de SMPTE 274M. Les conversions de précision peuvent être effectuées à l’aide de décalages de bits simples. Par exemple, si le point blanc d’un format 8 bits est 235, le format 10 bits correspondant a un point blanc à 940 (235 × 4).
Les représentations 16 bits décrites ici utilisent des word valeurs pour chaque canal. Les formats 10 bits utilisent également 16 bits pour chaque canal, avec les 6 bits les plus bas définis sur zéro, comme illustré dans le diagramme suivant.
diagramme
Étant donné que les représentations 10 bits et 16 bits du même format YUV ont la même disposition de mémoire, il est possible de convertir une représentation 10 bits en une représentation 16 bits sans perte de précision. Il est également possible de convertir une représentation 16 bits en représentation 10 bits. (Les formats Y416 et Y410 sont une exception à cette règle générale, cependant, car ils ne partagent pas la même disposition de mémoire.)
Lorsque le matériel graphique lit une surface qui contient une représentation 10 bits, il doit ignorer les 6 bits de faible ordre de chaque canal. Si une surface contient des données 16 bits valides, toutefois, elle doit être identifiée comme une surface 16 bits.
Dans les formats qui contiennent l’alpha, un pixel complètement transparent a une valeur alpha de zéro, et un pixel complètement opaque a une valeur alpha de (2^n) – 1, où n est le nombre de bits alpha. Alpha est supposé être une valeur linéaire appliquée à chaque composant une fois que le composant a été converti en sa forme linéaire normalisée.
Pour les images en mémoire vidéo, le pilote graphique sélectionne l’alignement de la mémoire de la surface. La surface doit être DWORD alignée. Autrement dit, les lignes individuelles d’une surface sont garanties pour commencer à une limite 32 bits, bien que l’alignement puisse être supérieur à 32 bits. L’origine (0,0) est toujours le coin supérieur gauche de la surface.
Dans le cadre de cette documentation, le terme U équivaut à Cb, et le terme V équivaut à Cr.
Codes FOURCC pour 10 bits et 16 bits YUV
Les codes FOURCC pour les formats décrits ici utilisent la convention suivante :
Si le format est planaire, le premier caractère du code FOURCC est « P ». Si le format est emballé, le premier caractère est « Y ».
Le deuxième caractère du code FOURCC est déterminé par l’échantillonnage chromatique, comme indiqué dans le tableau suivant.
Échantillonnage chromatique LETTRE DE CODE FOURCC 4:4:4 '4' 4:2:2 '2' 4:2:1 '1' 4:2:0 '0' Les deux derniers caractères du FOURCC indiquent le nombre de bits par canal, soit « 16 » pour 16 bits, soit « 10 » pour 10 bits.
À l’aide de ce schéma, les codes FOURCC suivants ont été définis. Aucun format 4:2:1 pour 10 bits ou 16 bits YUV n’a été défini pour l’instant.
FOURCC | Description |
---|---|
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 | Packed, 4:2:2, 16 bits. |
Y210 | Packed, 4:2:2, 10 bits. |
Y416 | Packed, 4:4:4, 16 bits |
Y410 | Packed, 4:4:4, 10 bits. |
Les GUID de sous-type ont également été définis à partir de ces QUATRECC ; voir GUID de sous-type vidéo.
Définitions de surface
Cette section décrit la disposition de la mémoire de chaque format. Dans les descriptions qui suivent, le terme WORD fait référence à une valeur 16 bits de little-endian, et le terme DWORD fait référence à une valeur 32 bits de peu endian.
Formats 4:2:0
Deux formats 4:2:0 sont définis, avec les codes FOURCC P016 et P010. Ils partagent la même disposition de mémoire, mais P016 utilise 16 bits par canal et P010 utilise 10 bits par canal.
P016 et P010
Dans ces deux formats, tous les exemples Y apparaissent d’abord en mémoire sous la forme d’un tableau de words avec un nombre pair de lignes. La progression de la surface peut être supérieure à la largeur du plan Y. Ce tableau est suivi immédiatement par un tableau de WORDs qui contient des exemples vous et V entrelacés, comme illustré dans le diagramme suivant.
diagramme
Si le tableau U-V combiné est traité en tant que tableau de DWORD, le mot le moins significatif (LSW) contient la valeur U et le mot le plus significatif (MSW) contient la valeur V. La progression du plan U-V combiné est égale à la progression du plan Y. Le plan U-V a la moitié autant de lignes que le plan Y.
Ces deux formats sont les formats de pixel planaire préférés de 4:2:0 pour les représentations YUV de précision supérieure. Ils sont censés être une exigence intermédiaire pour les accélérateurs d’accélération vidéo DirectX (DXVA) qui prennent en charge la vidéo 10 bits ou 16 bits 4:2:0.
Formats 4:2:2
Quatre formats 4:2:2 sont définis, deux planaires et deux emballés. Ils ont les codes FOURCC suivants :
- P216
- P210
- Y216
- Y210
P216 et P210
Dans ces deux formats planaires, tous les exemples Y apparaissent d’abord en mémoire sous la forme d’un tableau de WORDs avec un nombre pair de lignes. La progression de la surface peut être supérieure à la largeur du plan Y. Ce tableau est suivi immédiatement par un tableau de WORDs qui contient des exemples vous et V entrelacés, comme illustré dans le diagramme suivant.
diagramme
Si le tableau U-V combiné est traité en tant que tableau de DWORD, le LSW contient la valeur U et msW contient la valeur V. La progression du plan U-V combiné est égale à la progression du plan Y. Le plan U-V a le même nombre de lignes que le plan Y.
Ces deux formats sont les formats de pixel planaire préférés de 4:2:2 pour les représentations YUV de précision supérieure. Ils sont censés être une exigence intermédiaire pour les accélérateurs d’accélération vidéo DirectX (DXVA) qui prennent en charge la vidéo 10 bits ou 16 bits 4:2:2.
Y216 et Y210
Dans ces deux formats emballés, chaque paire de pixels est stockée sous la forme d’un tableau de quatre words, comme illustré dans l’illustration suivante.
Le premier WORD dans le tableau contient le premier exemple Y de la paire, le deuxième WORD contient l’exemple U, le troisième WORD contient le deuxième échantillon Y et le quatrième WORD contient l’exemple V.
Y210 est identique à Y216, sauf que chaque échantillon contient seulement 10 bits de données significatives. Les 6 bits les moins significatifs sont définis sur zéro, comme décrit précédemment.
Formats 4:4:4
Deux formats 4:4:4 sont définis, avec les codes FOURCC Y410 et Y416. Les deux sont des formats emballés.
Y410
Ce format est une représentation 10 bits empaquetée qui comprend 2 bits d’alpha. Chaque pixel est encodé sous la forme d’un seul DWORD avec la disposition de mémoire indiquée dans le diagramme suivant.
Les bits 0-9 contiennent l’exemple U, les bits 10-19 contiennent l’exemple Y, les bits 20-29 contiennent l’exemple V et les bits 30-31 contiennent la valeur alpha. Pour indiquer qu’un pixel est entièrement opaque, une application doit définir les deux bits alpha égaux à 0x03.
Y416
Ce format est une représentation 16 bits empaquetée qui comprend 16 bits d’alpha. Chaque pixel est encodé sous la forme d’une paire de DWORDs, comme illustré dans l’illustration suivante.
Les bits 0-15 contiennent l’exemple U, les bits 16-31 contiennent l’exemple Y, les bits 32-47 contiennent l’exemple V et les bits 48-63 contiennent la valeur alpha.
Pour indiquer qu’un pixel est entièrement opaque, une application doit définir les deux octets alpha égaux à 0xFFFF. Ce format est destiné principalement à un format intermédiaire pendant le traitement de l’image pour éviter l’accumulation d’erreurs.
Formats YUV préférés
Le tableau suivant répertorie les formats YUV préférés, y compris les formats 8 bits.
Format | Échantillonnage chromatique | Emballé ou planaire | Bits par canal |
---|---|---|---|
AYUV | 4:4:4 | Bondé | 8 |
Y410 | 4:4:4 | Bondé | 10 |
Y416 | 4:4:4 | Bondé | 16 |
AI44 | 4:4:4 | Bondé | Palettized |
YUY2 | 4:2:2 | Bondé | 8 |
Y210 | 4:2:2 | Bondé | 10 |
Y216 | 4:2:2 | Bondé | 16 |
P210 | 4:2:2 | Planaire | 10 |
P216 | 4:2:2 | Planaire | 16 |
NV12 | 4:2:0 | Planaire | 8 |
P010 | 4:2:0 | Planaire | 10 |
P016 | 4:2:0 | Planaire | 16 |
NV11 | 4:1:1 | Planaire | 8 |
Il est recommandé qu’un objet prenne en charge un schéma d’échantillonnage de profondeur de bits et de chroma donné, il doit prendre en charge les formats YUV correspondants répertoriés dans ce tableau. (Les objets peuvent prendre en charge des formats supplémentaires non répertoriés ici.)
Rubriques connexes