Traitement vidéo haute définition DXVA - VideoProcessing
Ce test manuel exécute les cas de test suivants : IDXVAHD_VideoProcessor::SetVideoProcessBltState, IDXVAHD_VideoProcessor::GetVideoProcessBltState, IDXVAHD_VideoProcessor::SetVideoProcessStreamState, IDXVAHD_VideoProcessor::GetVideoProcessStreamState et IDXVAHD_VideoProcessor::VideoProcessBltHD.
Pour plus d’informations sur tous les cas de test, consultez la section « Informations de prise en charge » ci-dessous. La plupart des cas de test se présentent à l’écran pendant qu’un utilitaire post-traite les images à des fins de comparaison. La plupart des cas de test appliquent un > PSNR 20.0f entre les trames traitées logicielles et matérielles. Dans certains cas de test, le seuil est abaissé en raison d’un manque de prise en charge de certains filtres et fonctionnalités dans l’implémentation logicielle.
Le test affiche simplement, pour la plupart, un nombre de réussites d’incrément de fenêtre de type ticker et indique les variables de cas de test qui font l’objet d’une itération.
Détails du test
Spécifications |
|
Plateformes |
|
Versions prises en charge |
|
Durée d’exécution attendue (en minutes) | 2 |
Catégorie | Compatibilité |
Délai d’expiration (en minutes) | 120 |
Nécessite un redémarrage | false |
Nécessite une configuration spéciale | false |
Type | automatique |
Documentation supplémentaire
Les tests de cette zone de fonctionnalités peuvent contenir une documentation supplémentaire, notamment des informations sur les prérequis, l’installation et la résolution des problèmes, que vous trouverez dans les rubriques suivantes :
Exécution du test
Avant d’exécuter le test, effectuez la configuration du test comme décrit dans les conditions requises pour le test : Adaptateur graphique ou Prérequis de test de chipset.
En outre, ce test nécessite les logiciels suivants :
Pilote d’affichage qui prend en charge les D3DCAPS3_DXVAHD D3D9Caps.Caps3. Plus précisément :
D3D9 prend en charge l’exposition de D3DCAPS3_DXVAHD.
Formats de sortie obligatoires : D3DFMT_X8R8G8B8, D3DFMT_A8R8G8B8.
Formats d’entrée obligatoires : D3DFMT_X8R8G8B8, D3DFMT_A8R8G8B8, D3DFMT_YUY2, D3DFMT_AYUV et toutes les cibles de rendu de décodage prises en charge.
dxvahdsw.dll.
Dépannage
Pour la résolution des problèmes génériques des échecs de test HLK, consultez Résolution des échecs de test Windows HLK.
Pour plus d’informations sur la résolution des problèmes, consultez Résolution des problèmes de test Device.Graphics.
Ce test affiche simplement, pour la plupart, un nombre d’échecs d’incrémentation de fenêtre de type ticker et indique les variables de cas de test qui sont itérées.
Le test retourne réussite ou échec. Le test peut renvoyer SKIP si le pilote n’expose pas D3DCAPS3_DXVAHD. D’autres cas de test peuvent ignorer en fonction de la prise en charge de l’état du flux, des majuscules de télécine inverses, des majuscules de filtre, des majuscules de fonctionnalité et des formats pris en charge. Pour passer en revue les détails du test, passez en revue le journal des tests à partir de DTM Studio.
Plus d’informations
Après chaque SetVideoProcessBltState, appelez le GetVideoProcessBltState correspondant. L’appel garantit la création de rapports appropriés, puis traite et présente les trames par rapport aux trames de référence pour plus de précision. La plupart des BltStates sont parcourus pour chaque cycle complet d’un BltState donné, puis à nouveau pour chaque StreamState valide. Toutefois, certaines permutations ne sont pas nécessaires.
Vérifiez que les types de données non valides passés à SetVideoProcessBltState et GetVideoProcessBltState retournent E_INVALIDARG.
DXVAHD_BLT_STATE_TARGET_RECT_DATA
Vérifiez que le fait de limiter les données à une taille inférieure à la surface de sortie entraîne une mise à l’échelle correcte.
Vérifiez qu’une rect plus grande que la surface de sortie aboutit à un frame développé.
Vérifiez quand les données rect cibles sont définies et Activez la valeur false, que l’ensemble de la surface est utilisé.
Traiter une image avec des données rect cibles et Activer défini sur false. Ensuite, traitez une autre image avec les données rect cibles réduites, développées ou déplacées, et Activer a la valeur true. Vérifiez que la surface est mise à l’échelle ou se déplace en conséquence.
Vérifiez que l’absence de jeu de données par défaut entraîne l’utilisation de toute la surface.
DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA
Vérifiez que la valeur par défaut est RVB Noir.
Si YCbCr a la valeur true, vérifiez que la plage de couleurs correcte pour l’arrière-plan est effectivement présentée.
Vérifiez RVB Orange (255,165, 0) avec la valeur noire par défaut avec les valeurs alpha pour RVB et YcbCr
avec DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA
- Vérifiez que si la couleur d’arrière-plan de YCbCr est utilisée et que ColorSpaceData est de full RGB_Range, que la plage RVB de plage complète est ignorée et que la plage limitée correcte est utilisée selon les paramètres Matrix et xvYCC spécifiés.
avec DXVAHD_BLT_STATE_ALPHA_FILL
- Vérifiez la valeur alpha de la couleur d’arrière-plan donnée lorsque DXVAHD_ALPHA_FILL_MODE_BACKGROUND est utilisé sur différentes couleurs d’arrière-plan.
DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA
Vérifiez que l’utilisation par défaut, les RGB_Range, les YCbCr_Matrix et les YCbCr_xvYCC sont tous définis sur 0.
Vérifiez que la limitation RGB_Range limite correctement la plage de couleurs à 16..235.
Vérifiez que BT.709 augmente correctement luma et chroma en conséquence.
xvYCC étend avec succès la plage de couleurs. Cette validation est un cas particulier, car le processeur vidéo de référence ne prend en charge aucune surface de sortie autre que XRGB. La validation de cette opération est difficile et le processus sera documenté ultérieurement.
Vérifiez si DXVAHD_VPDEVCAPS. DeviceCaps n’a pas de DXVAHD_DEVICE_CAPS_xvYCC. Valider YCbCr_xvYCC n’ajuste aucun paramètre et est vraiment ignoré.
La tolérance est flexible initialement, mais le pourcentage de départ de la précision des pixels est de 90 %.
DXVAHD_BLT_STATE_ALPHA_FILL_DATA
Vérifiez que les surfaces de sortie non au format Alpha sont inchangées.
Vérifiez que les surfaces de sortie au format Alpha appliquent correctement des valeurs alpha à la couleur.
Vérifiez que le mode par défaut ajuste correctement les valeurs Alpha d’arrière-plan.
Surface d’entrée de test au format NonAlpha avec une surface de sortie au format Alpha. Validez l’exactitude alpha avec une précision flexible, initialement à 90 % de précision.
DXVAHD_BLT_STATE_CONSTRICTION_DATA
En raison d’un manque de prise en charge dans le pilote de référence pour la constriction M2, les cas de test doivent être validés en dehors de la comparaison directe 1:1 pour les tailles d’échantillon inférieur valides.
Vérifiez le bon échantillonnage vers le bas sur l’aire de sortie.
Si la taille est supérieure à la cible, vérifiez que la constriction est limitée à la taille de la rect cible.
Essayez de définir les tailles sur 0,* et *, 0 validez la valeur de retour E_INVALIDARG.
Si DXVAHD_VPDEVCAPS. FeatureCaps n’expose pas DXVAHD_FEATURE_CAPS_CONSTRICTION, puis vérifiez que l’erreur E_INVALIDARG est retournée lors de la tentative de définition de Constriction.
Vérifiez que valeur par défaut représente désactivé. Si désactivé est marqué et qu’une taille est spécifiée, la valeur de taille est ignorée.
DXVAHD_BLT_STATE_PRIVATE_DATA
Passez guid, DataSize et pData non valides. Vérifiez que le pilote gère en conséquence.
Null pData récupère la taille correcte de l’état blt privé.
Vérifiez que les types de données non valides passés à SetVideoProcessStreamState et GetVideoProcessStreamState retournent E_INVALIDARG.
DXVAHD_STREAM_STATE_D3DFORMAT_DATA
Validez tous les formats pris en charge signalés par GetVideoProcessorInputFormats.
Validez un format non pris en charge dans GetVideoProcessorInputFormats.
Vérifiez que D3DFORMAT par défaut est D3DFMT_UNKNOWN.
DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA
Vérifiez que la valeur par défaut est Progressive.
Vérifiez que les formats Progressif et Entrelacés sont présentés en conséquence.
Si DXVAHD_INPUT_FORMAT_CAPS_RGB_INTERLACED n’est pas signalé comme pris en charge par DXVAHD_VPDEVCAPS. InputFormatCaps, vérifiez que l’utilisation de DXVAHD_FRAME_FORMAT_INTERLACED_* est par défaut à l’aide de Progressive.
DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA
Vérifiez les valeurs par défaut.
Vérifiez que la limitation RGB_Range limite correctement la plage de couleurs à 16..235.
Si DXVAHD_VPDEVCAPS. InputFormatCaps ne signale pas la prise en charge de DXVAHD_INPUT_FORMAT_CAPS_RGB_LIMITED_RANGE, vérifiez que lorsque RGB_Range a la valeur 1, elle est ignorée et que FullRange est utilisé.
- La validation de plage limitée n’est pas possible avec une comparaison 1:1 avec la référence. Une validation lâche des blancs et des noirs peut être possible pour valider que la plage de couleurs a été limitée en conséquence.
Vérifiez que BT.709 augmente correctement l’échantillonnage des lumas et des chromas.
xvYCC étend avec succès la plage de couleurs.
Vérifiez si DXVAHD_VPDEVCAPS. DeviceCaps ne signale pas la prise en charge de xvYCC.
Si possible, et si le traitement est spécifié, validez l’augmentation des performances de conversion des couleurs.
Vérifiez si DXVAHD_VPDEVCAPS. DeviceCaps n’a pas de DXVAHD_DEVICE_CAPS_xvYCC. Valider YCbCr_xvYCC n’ajuste aucun paramètre et est vraiment ignoré.
DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA
Testez et validez les valeurs par défaut (en particulier l’interpolation se produit).
Testez NormalRate et HalfRate, en vérifiant que NormalRate est entrelacé de 2:1 à progressif, et que HalfRate est 1:1 entrelacé à progressif.
Vérifiez tous les CustomRates si GetVideoProcessorCustomRates expose un.
Spécifier des taux de télécination inverses
- La prise en charge d’ITELECINE n’étant pas disponible dans le processeur vidéo de référence, la comparaison directe est impossible. Pour validation, une trame de téléciné est générée et passée à la référence. Ensuite, le cadre non téléciné est traité et comparé à celui des images fournies par le cadre de téléciné.
Testez customRate non pris en charge, à la fois interpolé et répété.
Testez CustomRate non pris en charge à la fois à NormalRate et HalfRate. Vérifiez que le E_INVALIDARG d’erreur est retourné.
Vérifiez que les CustomRates pris en charge ne sont pas correctement définis, sauf si DXVAHD_OUTPUT_RATE_CUSTOM est spécifié.
DXVAHD_STREAM_STATE_SOURCE_RECT_DATA
Vérifiez que le fait de limiter les données à la récurrence de la surface d’entrée entraîne une mise à l’échelle correcte.
Vérifiez qu’une rect plus grande que la surface d’entrée entraîne la transparence des zones clippées.
Vérifiez que lorsque les données de rect source sont définies et que l’option Activer avec indicateur false est activée, la surface entière est utilisée.
Une fois qu’une image est traitée avec des données rect sources et que Enable a la valeur false, une deuxième image est traitée avec les données rect sources et Activer est true, vérifiez que la surface est visible et mise à l’échelle en fonction de la taille de la rect sur la surface d’entrée.
Vérifiez que l’absence de jeu de données par défaut entraîne l’utilisation de toute la surface.
DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA
Vérifiez que le fait de limiter les données à une taille inférieure à la surface de sortie entraîne une mise à l’échelle correcte.
Vérifiez qu’une rect plus grande que la surface de sortie entraîne l’a rognation des zones clippées.
Vérifiez que lorsque les données rect de destination sont définies et que l’option Activer avec indicateur false est activée, la surface entière est utilisée.
Une fois qu’une trame est traitée avec des données rect de destination et que Enable est false, une deuxième image est traitée avec les données rect de destination et Activer est true, vérifiez que la surface de sortie est visible et mise à l’échelle en fonction de la taille de la rect sur l’aire de sortie.
Vérifiez que l’absence de jeu de données par défaut entraîne l’utilisation de toute la surface.
DXVAHD_STREAM_STATE_ALPHA_DATA
Tous les cas de test Alpha nécessitent plusieurs flux vidéo, ce qui multiplie ces cas de test par deux.
Vérifiez que les valeurs par défaut alpha sont désactivées.
Vérifiez le mélange alpha faible, moyen et élevé, et vérifiez la transparence.
Vérifiez que la valeur alpha float hors plage échoue pendant le traitement.
Le niveau de tolérance pour la précision des pixels est de 10 %. La précision doit être supérieure ou égale à 90 % de précision.
DXVAHD_STREAM_STATE_PALETTE_DATA
Si aucune entrée de palette n’est définie, vérifiez que la valeur Null retourne zéro.
Avec un nombre spécifique d’entrées de palette défini, vérifiez que la valeur Null retourne le nombre attendu d’entrées de palette.
Testez les formats quatreCC palettisés 4 bits et 8 bits.
Définissez les entrées de palettes mixtes ARGB et AYUV pour valider la réussite.
Vérifiez que le mélange correct se produit lorsqu’il est utilisé avec le mélange alpha.
Le niveau de tolérance pour la précision des pixels est de 10 %. La précision doit être supérieure ou égale à 90 % de précision.
DXVAHD_STREAM_STATE_CLEAR_RECT_DATA
Si DXVAHD_VPDEVCAPS. FeatureCaps n’expose pas DXVAHD_FEATURE_CAPS_CLEAR_RECT, vérifiez que l’erreur E_INVALIDARG est retournée lorsqu’une tentative d’utilisation de ClearRects se produit.
Vérifiez que l’état RECT CLEAR par défaut est désactivé et non visible.
Vérifiez CLEAR_RECT En dehors du destrect n’est pas visible.
Vérifiez CLEAR_RECT En dehors du destrect est correctement coupé.
DXVAHD_STREAM_STATE_LUMA_KEY_DATA
Si DXVAHD_VPDEVCAPS. FeatureCaps n’expose pas DXVAHD_FEATURE_CAPS_LUMA_KEY, vérifiez que l’erreur E_INVALIDARG est retournée.
Lorsque le flux d’entrée RVB est utilisé, et DXVAHD_VPDEVCAPS. FeatureCaps n’expose pas DXVAHD_FEATURE_CAPS_RGB_LUMA_KEY, vérifiez qu’aucun luma n’est ignoré.
Vérifiez que l’option Activer a la valeur false. Luma est ignorée.
Vérifiez les valeurs hors plage pour les résultats inférieurs et supérieurs en échec pendant l’état Set (E_INVALIDARG).
Vérifiez que la valeur par défaut est Luma désactivée et que les valeurs pour Lower/Upper sont 0.
Le niveau de tolérance pour la précision des pixels est de 10 %. La précision doit être supérieure ou égale à 90 % de précision.
DXVAHD_STREAM_STATE_FILTER_DATA
Vérifiez les valeurs par défaut (Désactivé et DXVAHD_FILTER_RANGE_DATA. Valeur par défaut).
Vérifiez quand Activé et Niveau est par défaut que le flux présenté est le même que lorsque le filtre est activé.
Vérifiez niveau inférieur et supérieur à getVideoProcessorFilterRange signalé. Supérieur à doit échouer avec E_INVALIDARG.
Le niveau de tolérance pour la précision des pixels est de 10 %. La précision doit être supérieure ou égale à 90 % de précision.
DXVAHD_STREAM_STATE_PRIVATE_DATA
Passez guid, DataSize et pData non valides. Vérifiez que le pilote gère en conséquence.
Null pData récupère la taille correcte de l’état blt privé.
Vérifiez que VideoProcessBltHD pour pOutputSurface des types de surface ci-dessous ont réussi.
La Surface par défaut utilisée est une chaîne d’échange.
DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT
RENDERTARGET
Chaîne de permutation de superposition.
Chaînes d’échange de tous les autres types.
Formats de pixels de sortie et de surface d’entrée pris en charge standard, ainsi que les formats de surface de sortie et d’entrée signalés comme pris en charge pour l’appareil donné.
Vérifiez qu’une valeur OutputFrame de 1 ou supérieure, avant que l’image 0 n’ait été traitée, aboutit à E_INVALIDARG.
La validation du traitement de OutputFrame 0 deux fois dans une ligne, sans aucune modification des données de flux, entraîne une image suspendue.
La validation du traitement de OutputFrame 0 deux fois, avec des modifications de données de flux, entraîne toujours la présentation des données mises en cache (image en pause).
Vérifiez que le traitement du nombre maximal, moyen et minimal de flux est réussi.
Vérifiez que StreamCount supérieur ou inférieur au nombre de pStreams entraîne E_INVALIDARG.
Vérifiez que StreamCount n’a aucun résultat dans E_INVALIDARG.
DXVAHD_STREAM_DATA : taux normal/demi progressif, progressif à 2/1, entrelacé à vitesse normale, entrelacé à moitié taux, entrelacé à 4/5
Activez un flux de vérification du contenu présenté.
Deux flux, main flux activé avec le sous-flux désactivé. Vérifiez le contenu présenté.
Deux flux, main flux et sous-flux activés. Vérifiez le contenu présenté.
Trois flux, deux flux utilisés pour composer main flux à la fois activé, et le troisième flux en tant que sous-flux désactivé. Vérifiez le contenu présenté.
Trois flux, deux flux utilisés pour composer main flux l’un a activé l’un désactivé et le troisième comme sous-flux désactivé. Vérifiez le contenu présenté.
Trois flux, deux flux utilisés pour composer main flux à la fois activé, et le troisième en tant que sous-flux activé. Vérifiez le contenu présenté.
Trois flux, deux flux utilisés pour composer main un flux activé, un désactivé et un troisième flux lorsque le sous-flux est activé. Vérifiez le contenu présenté.
PastFrames et FutureFrames hors plage.
PastFrames et FutureFrames non valides, selon pastSurfaces et futureSurfaces donnés.
Null PastSurfaces et FutureSurfaces, avec des PastFrames non nuls avec FutureFrames.
Toutes les permutations de DXVAHD_SURFACE_TYPE_VIDEO_INPUT, de DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE, decode RenderTarget et d’une surface ordinaire hors écran sur ppPastSurfaces, pInputSurfaces, ppFutureSurfaces.
Vérifiez que ppPastSurfaces, pInputSurfaces, ppFutureSurfaces d’un SurfaceType non pris en charge retourne E_INVALIDARG.
Validez les Surfaces allouées à un pool de mémoire de type autre que DXVAHD_VPDEVCAPS. InputPool génère des E_INVALIDARG.
Syntaxe de commande
Option de commande | Description |
---|---|
DXVAHDVideoProcessing VideoProcessing |
Sans aucune option, le test énumère tous les cas de test d’arguments extrêmes non valides, à l’exception de certains. |
TestPriority :[0, 1, 2] |
Par défaut, les tests à un niveau de priorité 1, mais la priorité 2 teste chaque permutation, y compris les cas de test d’arguments extrêmes non valides. 0 correspond au niveau BVT. |
SoftwareOnly |
Teste uniquement l’implémentation logicielle du processeur vidéo. Il était principalement utilisé pour les tests initiaux avant que les pilotes ne supportent les cas de test. |
SaveAllFrames |
Le test a un nombre d’enregistrements codés en dur de trames non valides défini sur 100 si vous souhaitez qu’ils soient tous enregistrés, puis utilisez cet indicateur. Convient pour les échecs de cas de test à nombre élevé d’images. |
LogLevel:[0, 1, 2] |
Le test a la capacité d’être très détaillé dans ses méthodes de journalisation. Par défaut, le niveau 0 est défini, mais le niveau 1 collecte des informations de journalisation accrues par cas de test, y compris de nombreux états de flux/états blt définis. Le niveau 2 collecte tous les états de flux ajustés et les états blt, ainsi que toutes les informations de configuration. |
Liste de fichiers
File | Emplacement |
---|---|
DXVAHDVideoProcessing.exe |
[testbinroot]\nttest\windowstest\graphics\d3d\func\ |
Dxvahdsw.dll |
[osbinroot]\nttest\windowstest\graphics\dxva\ |
Paramètres
Nom du paramètre | Description des paramètres |
---|---|
LLU_NetAccessOnly | LLU pour l’accès net |
ConfigDisplayCommandLine | Ligne de commande personnalisée pour ConfigDisplay. Par défaut : logo |
MODIFIEDCMDLINE | Arguments de ligne de commande supplémentaires pour l’exécutable de test |