Partagez un max ! :)

Tout savoir sur la lecture vidéo PC

(Ancien article de homeMedia (site supprimé et racheté par un annonceur 🙁 ) du coup pour pas perdre l’article en entier je le republie ici. Merci Steve)

1. Introduction

Bien configurer son système pour la lecture vidéo n’est pas simple. Il faut passer par des étapes complexes et difficiles à mettre en oeuvre.

Nous avons donc mis les pieds dans le plat en vous proposant un guide qui s’appuie sur des exemples concrets et qui vous permettront, nous l’espérons, de vous familiariser avec la lecture vidéo sur PC. Le but étant de d’obtenir un système parfaitement capable de jouer toutes les vidéos dans d’excellentes conditions, que vous possédiez un téléviseur cathodique ou un diffuseur HD.

Ce tutoriel survole volontairement certaines parties jugées importante pour certains, mais trop complexes pour d’autres. Nous traiterons donc en priorité les lecteurs vidéos, les différents filtres, décodeurs et splitters, la partie post-traitement et mise à l’échelle que nous confierons à FFDShow et aux Shaders, les renderers vidéos et les différents procédés qui permettent d’améliorer la fluidité de l’image.

Nous nous appuierons sur un cahier des charges simple : la lecture des formats haute définition (X.264, DivX et Xvid HD) et basse définition (DivX/Xvid ou DVD). Les vidéos en SD seront soumises à un processus d’upscaling (mise à l’échelle) pour un plus grand confort visuel sur des écrans HD. Nous passerons aussi rapidement sur la lecture de formats propriétaires tirés du monde de QuickTime et RealPlayer.

2. [Intro] Les logiciels de lecture vidéo

Les lecteurs les plus répandus

Malgré quelques exceptions à la règle, les logiciels sont des interfaces d’affichage, rien de plus ! Certains préfereront juger l’ergonomie du logiciel et sa facilité d’installation ou de configuration, d’autres rechercheront ceux qui sont le moins bridés au niveau de leurs options audio ou vidéo. PowerDVD et WinDVD sont devenus depuis plusieurs années des références surtout pour la lecture de DVD mais pèchent sur la lecture de vidéos d’extensions MKV par exemple, pourtant primordiale aujourd’hui avec la haute définition.

Windows Media Player est par ses fonctions tout-en-un et l’implémentation d’une bibliothèque multimédia un lecteur audio vidéo apprécié des nouveaux utilisateurs. Bien qu’il sache lire quasiment tous les formats les plus répandus, le public averti préfèrera des logiciels plus complexes à configurer mais qui pourront prendre en charge tous les fichiers vidéo, soit nativement, soit par l’intermédiare de filtres externes qui s’installent indépendamment. On pourra donc substituer un mauvais traitement vidéo natif par un traitement externe de meilleure qualité, le discours est le même pour la partie audio.

Les lecteurs les plus puissants

D’autres logiciels sortent du lot. Il y a d’abord VLC et MPlayer qui sont des logiciels indépendants capables de lire une grande majorité de formats, mais ne permettent pas de substituer le décodage à des filtres externes. Ce sont donc de bonne solutions pour tout ceux qui souhaitent avoir un lecteur prêt à l’emploi. Il y a ensuite ZoomPlayer et KMPlayer, des lecteurs vidéos très complet mais nous préfèreront Media Player Classic, et plus particulièrement sa déclinaison Homecinema (MPC-HC).

Cette dernière supporte l’accélération matérielle de certains GPU et embarque de nombreux filtres de décodage ainsi que des options très intéressantes pour gérer les sous-titres ou éliminer le tearing (bande horizontal à l’écran). C’est également un player extrêmement léger en constante évolution qui ne manque pas d’options d’affichages. Ses options de juxtaposition de filtres sont globales au lecteur et s’appliqueront donc à toutes les sources lues. Enfin, les principaux logiciel Media center ou plugins vidéo savent l’utiliser simplement comme lecteur de remplacement, c’est un point non négligeable à prendre en compte pour le montage d’un PC de salon.

3. [Intro] Les codecs, filtres et splitters

Les codecs et filtres

Contrairement aux codecs audio/vidéo, les filtres DirectShow sont moins gourmands et ne savent que décoder les formats. Certains logiciels intègrent une série de filtres, c’est le cas de Media Player Classic Homecinema qui sait décoder nativement de très nombreux formats. Il embarque entre autre un filtre DivX/Xvid mais aussi H.264 et VC-1 avec prise en charge de l’accélération matérielle. Certains préfèreront décoder les vidéos DivX/Xvid avec le codecs officiels ou bien directement avec FFDShow, d’autres préfèreront substituer le décodage H.264/X.264 au codec CoreAVC qui soulagent considérablement les processeurs.

Le choix du décodeur MPEG-2 est aussi très important pour garantir une bonne restitution des DVD. Il y en a des gratuits comme celui intégré à Windows Vista, ou bien Dscaler plus complet et plus performant. D’autres sont fournis avec les logiciels de lecture DVD (Cyberlink PowerDVD, Corel WinDVD ). Le plus performant est celui fourni avec NVIDIA PureVideo (à ne pas confondre avec le moteur d’accélération matériel des cartes graphiques), mais il est payant.

Les splitters

Vous n’êtes pas sans savoir qu’une vidéo d’extension .AVI peut contenir un film encodé en DivX ou bien en Xvid, au même titre qu’une piste audio stéréo ou AC3. Un fichier est donc un conteneur qui encapsule d’autres fichiers, principalement des flux vidéo (film [, bonus]), des pistes audio et accessoirement des sous titres, informations de chapitrage…

Le conteneur le plus répandu est l’AVI. Il est cependant limité à la prise en charge de certains vieux formats et ne supporte pas l’intégration de sous-titres. Le conteneur MKV (créé par Matroska) est sur le point de devenir son successeur, il s’est largement démocratisé depuis quelques années, notamment grâce au support des formats vidéos H.264, X.264 et des pistes audio AC3, DTS ou lossless.

Et voici les autres qui sont aussi bien répandus :

  • WMV : c’est à la fois un conteneur et un codec développé par Microsoft, il gère les DRM
  • OGM : sorte de AVI amélioré supportant l’audio au format Ogg
  • MP4 : Alternative au MKV développé par Nero
  • RMVB : Conteneur dédié aux formats propriétaires développés par Real (realPlayer)
  • MOV : Conteneur dédié aux formats propriétaires développés par Apple (Quicktime)

Certains logiciels comme MPC-HC supporte nativement de nombreux conteneurs, mais il est tout à fait possible, à l’instar du fonctionnement des codecs/filtres, de choisir un autre splitter qui se chargera de désencapsuler les données d’un fichier. Les plus connus sont les splitters Matroska et Haali. Le choix d’un splitter influe sur la prise en charge des informations encapsulées (le chapitrage, l’avance et le retour rapide qui ne fonctionnent pas par exemple), sur la prise en charge ou le dysfonctionnement de certains codecs (piste audio au format Flac non reconnue, problème de fluidité de la vidéo)…

Cas particulier des formats RealMedia et AppleMedia

Les packs RealAlternative et QuicktimeAlternative vous permettront de lire les fichiers Real et Quicktime avec d’autres logiciels comme Media Player Classic, ce qui permettra de n’avoir qu’un seul lecteur vidéo pour lire quasiment toutes vos vidéos.

4. [Intro] Notre sélection logicielle

Rappelons rapidement notre cahier des charges :

  • Le lecteur doit pouvoir lire toutes les vidéos et les DVD
  • Le traitement de mise à l’échelle des vidéos SD et DVD devra être optimisé
  • Le décodage des vidéos HD devra être optimisé
  • La fluidité de la machine devra être optimisée

Voici la liste des logiciels, codecs, filtres, splitter nécessaires pour répondre à ce cahier des charges :

1. lecteur vidéoMedia Player Classic Homecinema (opensource)
2. Filtres obligatoireFFDshow (opensource)
3. Décodeur MPEG-2Dscaler 5 (opensource) ou NVIDIA PureVideo (payant)
4. SplitterHaali Media Splitter (gratuit)
5. Filtres audioAC3Filter (opensource)
6. Codec H.264CoreAVC (optionnel et payant)
7. Logiciels additionnelsReclock (optionnel et gratuit)
PowerStrip (optionnel et gratuit)
Pack Real Alternative (optionnel et gratuit)
Pack Quicktime Alternative (optionnel et gratuit)

5. Media Player Classic Homecinema (MPC-HC)

Installation

Après avoir créé un dossier « MPC-HC » dans votre répertoire « Program files », copiez l’exécutable mplayerc-hc.exe et sa ressource française mpcresources.fr.dll dedans. Créer un raccourci de votre bureau vers mplayerc-hc.exe et le tour est joué. Il n’y a pas d’installeur pour ce logiciel.

Pour l’avoir en français, lancer Media Player Classic Homecinema (MPC-HC), aller dans le menu « View > Language » et sélectionner « French ».

Association de fichiers

Pour associer les fichiers vidéo à MPC-HC, il faut ouvrir le menu « Affichage > Options… » puis accéder au sous-menu « Formats ». Cliquez ensuite sur le bouton « Vidéo » en bas à droite puis « Appliquer ».

Les filtres et splitters internes de MPC-HC

Accéder ensuite au menu « Filtres internes ». Sur la partie gauche (« Filtres sources ») vous pouvez indiquer les conteneurs à prendre en charge nativement par MPC-HC, la partie de droite concerne quand à elle les filtres DirectShow.

Comme vous pouvez le constater, MPC-HC supporte nativement de très nombreux conteneurs et formats. A vrai dire le lecteur d’origine est déjà capable de prendre en charge quasiment tous les types de fichiers.

Par défaut, tout est coché, c’est à dire que MPC-HC se servira de ces propres splitters et filtres pour traîter vos vidéos. Nous allons toutefois vous montrer l’interaction entre MPC-HC et d’autres filtres externes installés indépendamment.

6. Splitters externes : Haali, Real et Quicktime

Haali Media Splitter

Commençons gentillement en installant Haali media Splitter. Nous préconisons ce pack pour la prise en charge des conteneurs Matroska (MKV). Nos différents tests ont effectivement révélé une meilleure prise en charge des fichiers et un rendu plus fluide. Accessoirement, Il gère aussi les conteneurs AVI, MP4, OGM OGG, MPEG-TS et MPEG-PS mais nous les laisseront à MPC-HC toujours dans l’optique d’une meilleure prise en charge des fichiers. Enfin, ce pack permettra d’utiliser le Haali Renderer qui peut s’avérer intéressant, nous verrons celà en détail plus tard dans l’article.

Après avoir fermé MPC-HC, lancez l’installeur et puis finalisez l’installation :

L’assistant indique qu’il va désactiver le splitter Matroska (MKV) interne à MPC-HC, ce que nous pouvons vérifier en réaffichant les filtres internes dans les options de MPC-HC :

Pour désactiver les autres splitters natifs de MPC-HC supportés par Haali Media Splitter, vous pouvez décocher les cases associées aux conteneurs AVI, MP4/MOV, MPEG PS/TS/PVA et OGG. Ceci n’est donné qu’à titre indicatif pour expliquer le fonctionnement des splitters internes à MPC-HC et externes (en l’occurence Haali) :

QuickTime Alternative

QuickTime alternative est un pack de codecs et de splitter spécialement conçu pour lire les formats Quicktime depuis un autre logiciel. Bien que MPC-HC supporte nativement le conteneur MOV, il ne sait pas décoder les formats propriétaire Quicktime. Certains formats audio et vidéo pourront donc passer et d’autres non. Si vous avez beaucoup de fichiers MOV et que certains ne passent pas, vous résoudrez certainement le problème en installant ce pack.

Il propose l’installation de Media Player Classic qu’il ne faut bien évidemment pas cocher, poursuivez l’installation normalement… le pack est installé :
PS : Une version QuickTime Alternative Lite (QT Lite) sans Media Playser Classic est également disponible.

Real Alternative

Real Alternative fonctionne sur le même principe que QuickTime Alternative, il installe les composants (codecs, splitters) nécessaire à la lecture de fichiers RealMedia sur un autre logiciel que RealPlayer. Contrairement aux fichiers Quicktime, MPC-HC propose des spliters (pour les extension RMVB par exemple) et des filtres natifs capables de décoder la majorité des formats RealMedia. Il se peut par contre que certaines vidéos ne passent pas (conflits de filtres, mauvais splitter utilisé par défaut par votre système), auquel cas il faudra regarder cela de plus près (nous reviendrons aussi la dessus plus tard dans l’article) ou bien plus simplement installer ce pack. A l’instar de QuickTime Alternative, une version Lite existe sans l’intégration de Media Player Classic.

7. Filtres et codecs externes

Pourquoi installer d’autres codecs/filtres ?

Nous l’avons vu avec les fichiers Quicktime, MPC-HC sait lire beaucoup de chose mais pas tout. Vous devrez certainement en fonction des différents fichiers dont vous disposez installer des codecs supplémentaires à votre système.

A l’instar des splitters, vous pouvez aussi utiliser d’autres filtres/codecs que ceux intégrés à MPC-HC. On peut par exemple vouloir utiliser les codecs Xvid ou Divx officiels plutôt que les filtres de MPC-HC. On peut également substituer la partie audio au logiciel AC3Filter, un précédent article explique justement son fonctionnement.

L’exemple le plus pertinent est celui du décodage du format MPEG-4/AVC, plus communément appelé H.264 ou X.264 pour la version opensource. C’est un format extrêmement gourmand qui peut même mettre à mal des processeurs dual core. Il est géré par défaut par MPC-HC sans ou avec accélération matérielle (selon certaines conditions). Mais vous préferrerez peut être utiliser CoreAVC, un filtre très puissant qui fait diminuer considérablement la charge CPU en lecture H.264/X.264.

Comment procède t-on ?

Concrètement pour utiliser un codec/filtre externes, il faut d’abord s’assurer qu’il n’est pas pris en charge nativement par MPC-HC. Si ce n’est pas le cas, le filtre/codec que vous avez installé devrait être utilisé.

S’il est déjà supporté par MPC-HC, il suffit de le décocher dans le menu des filtres internes des options du logiciel. Imaginons que l’on souhaite utiliser le codec Xvid officiel pour décoder les formats MPEG-4 ASP (Divx, Xvid et leurs déclinaisons), il faudra alors prendre le soin de décocher les filtres de transformation “DivX” et “Xvid/MPEG-4” dans MPC-HC.

Pour vérifier la bonne configuration des filtres et savoir lequel est utilisé, faites un “Clic droit > Filtres” sur la vidéo en cours de lecture ou aller dans le menu “Lecture > Filtre”, vous verrez un sous menu de ce type :
En cliquant sur les filtres en cours d’utilisation, on accède généralement à leur configuration. Nous verrons plus tard dans l’article qu’il peut y avoir des conflits de codecs, tout simplement parce que plusieurs applications peuvent traiter le même format. Cela vaut aussi pour les splitters.

Nous allons maintenant nous intéresser à FFDShow, un puissant logiciel qui embarque des dizaines de filtres de décodage mais aussi post-traitements pour améliorer le rendu de l’image.

8. Installation de FFDShow

FFDshow est un logiciel extrêmement puissant basé sur FFMpeg, très complexe au premier abord, mais qui sait décoder de multiples formats audio et vidéo. Il intègre une très grosse partie post-traitement pour améliorer ou modifier le rendu de l’image et du son. Nous nous intéresserons d’abord à ces fonctions de décodage et à son interaction avec MPC-HC.

Plusieurs versions de FFDShow

Open source, FFDShow est disponible en plusieurs versions. Il y a tout d’abord les versions compilées par xxl supportant tous les processeurs, et des versions compilées par clsid optimisées pour les processeurs supportant les instructions MMX ou SSE. Si vous êtes un peu perdu (et il y a de quoi), prenez la dernière version en date.

Installation de FFDshow

Le processus d’installation vous propose d’installer FFDShow bien sûr mais également d’autres filtres ou applications. Vous pouvez cocher la case Dscaler et AviSynth qui vous donnera accès à de nombreux filtres post-traitement supplémentaires.

L’assistant vous proposera ensuite d’activer ou de désactiver la prise en charge de nombreux formats vidéo et audio mais aussi d’activer deux filtres post-traitements :

  • Volume Normalisation : permet de réquilibrer le niveau sonore
  • Subtitles : Active la gestion des sous-titres de FFDShow

Nous laissons les options par défaut pour continuer ce guide.

Vous avez ensuite la possibilité de préconfigurer votre système audio en spécifiant le nombre d’enceintes dont vous disposez :

A la fin de l’installation, l’assistant vous propose d’ouvrir le “Video Decoder Configuration”

Passons maintenant le configurateur vidéo en français en allant dans le menu “Tray, dialogs & Path” pour sélectionner “français” dans le menu déroulant “language”.

C’est déjà mieux ! En tout cas pour ceux qui ne comprennent pas l’anglais car les termes de l’interface de configuration sont tellement techniques qu’il peuvent être déroutant en français par rapport à l’anglais… Bref, passons à la configuration des filtres !

9. Filtres de décodage FFDShow

Activer et désactiver des filtres de décodage

Toute la partie décodage de FFDShow se configure depuis le tout premier menu « Codecs ».

De très nombreux filtres sont intégrés. Parmi la longue liste, nous ne citerons que les plus courant : H.264, Xvid, DivX 3/4/5/6, MPEG-1/2/4, WMV 1/2/3, VC-1, QuickTime, RealVideo… FFDShow se base sur la librairie opensource libavcodec pour décoder tous ces formats, mais propose également pour certains formats d’autres librairies : xvid, libmpeg2, wmv9…

Pour activer le décodage d’un format il suffit de lui associer un des décodeurs fournis (libavcodec ou un autre décodeur). Pour ne pas prendre en charge ce format avec FFDShow, spécifiez « désactivé » dans le menu déroulant. Les filtres de FFDShow décodent parfois plus facilement les formats que leurs codecs officiels. C’est le cas par exemple des formats Xvid et DivX 3/4/5/6 qui sont très bien pris en charge par la librairie libavcodec.

Seule exception à la règle : le décodage MPEG-2 en lecture de DVD ou de Rips DVD.
Il faut pour cela dans un premier temps sélectionner un décodeur pour le format MPEG-2, mais il faut absolument cocher la case “DVD Decoding” qui apparaît sous la liste de format lorsque la ligne MPEG-2 est sélectionnée.

Exemple avec le décodage Xvid et DivX par FFDShow

Si vous décidez d’utiliser FFDShow pour décoder les formats DivX et Xvid, vous devrez vous assurez de ne pas décoder ces formats nativement avec MPC-HC, donc décocher les cases “DivX” et “Xvid/MPEG-4” dans les filtre internes de MPC-HC. La procédure est exactement la même que celle présentée sur cette page avec l’utilisation du codec officiel Xvid 1.3.

Là encore, on peut vérifier les filtres utilisés en faisant un « clic droit > Filtres » sur une vidéo en cours de lecture.
Un autre moyen plus rapide permet de savoir si FFDShow est utilisé en tant que filtre : un icône apparaît en bas à droite dans la barre des tâches.

10. Priorité des filtres, utilisation de filtres externes

Imaginons maintenant que vous ayez plusieurs codecs/filtres installés sur votre ordinateur capables de décoder le même format, en l’occurence un film en DivX 5. Vous disposez par exemple du « MPC Video Decoder » fourni nativement avec MPC-HC, de FFDshow, et des codecs officiels Xvid 1.3 et DivX 6. Quel filtre va être utilisé pour le décodage de ce film ?

Il faut alors introduire la valeur “Merit” affecté à chaque décodeur lors de son installation. C’est une valeur en hexadécimal qui marque l’importance d’un filtre par rapport à un autre, la valeur maximal est “Prefer+255”.

Dans le cas d’une utilisation avec MPC-HC, c’est son décodeur natif (MPC Video Decoder) qui est prioritaire, peu importe la valeur “Merit” des autres filtres.

En décochant les cases “DivX” et “Xvid/MPEG-4” dans les filtres internes de MPC-HC, le décodage est substitué aux filtres FFDShow. Ces derniers s’intercallent par défaut entre le décodeur natif de MPC-HC et les autres codecs/filtres installés indépendamment car la valeur “Merit” configurée pour les filtres FFDShow est haute. On peut la configurer dans son menu “Infos & débogage” :

Si vous désactivez le décodage des formats DivX 4/5/6 dans FFDShow, c’est un des décodeurs Xvid ou DivX qui prendra le relais, celui qui a la plus haute valeur “Merit”. Pour forcer l’utilisation du décodeur Xvid simplement, on peut l’assigner dans les filtres externes des options de MPC-HC. Pour cela on clique sur le bouton “Ajouter un filtre”, on sélectionne “Xvid MPEG-4 Video Decoder” dans la liste puis on clique sur le bouton “Ok” :

On peut alors modifier sa valeur “Merit”, le cas le plus simple consiste à cocher la case “Préférer” qui indique qu’on préférera utiliser ce décodeur plutôt qu’un autre. Dans le cas ou plusieurs décodeurs ont la même valeur “Merit”, c’est le filtre spécifié dans les filtres externes des options de MPC-HC qui sera utilisé.

11. Détection de confilts entre filtres

Le splitter OGG intégré à MPC-HC permettant de splitter les fichier vidéos d’extensions OGM fonctionne parfaitement mais nous l’avons volontairement désactivé pour illustrer un conflit typique qu’il peut y avoir entre les filtres DirectShow installés sur le système.

Nous avions préalablement installé le pack Haali Media Spliter qui embarque lui aussi un décodeur OGG/OGM. Seulement nos vidéos au format OGM (vidéo en Xvid + audio en Ogg) ne passent pas !

Lorsque nous affichons les filtres utilisés par la lecture de cette vidéo, MPC-HC indique que c’est le filtre “MainConcept (Adobe2) MPEG Splitter” qui est utilisé. Ce n’est visiblement pas le splitter OGG/OGM installé par le pack Haali.

Vérification avec GraphEdit

GraphEdit est un logiciel gratuit qui permet entre autre de réprésenter graphiquement les différents filtres utilisés pour la lecture audio et vidéo. C’est un outil autonome qui ne nécessite pas d’installation. Une fois lancé, nous pouvons nous connecter au flux audio/vidéo en cours de lecture en allant dans le menu “File > Connect to Remote Graph…”.

Le flux apparaît alors dans une nouvelle fenêtre, on double clique dessus pour voir l’aperçu du graph.

Le graph généré par GraphEdit montre que le splitter utilisé, en l’occurence “MainConcept (Adobe2) MPEG Splitter” n’arrive pas à traiter le flux vidéo, la chaîne ne prend en compte que la partie audio :

Nous allons essayer de trouver d’oû vient le problème. Cela consiste à savoir pourquoi le splitter OGG/OGM du pack Haali n’est pas pris en compte ? Certainement à cause de la propriété du filtre “MainConcept (Adobe2) MPEG Splitter” supérieure à celle du splitter Haali.

Pour vérifier cela, nous allons maintenant utiliser le logiciel OpenSource “Filter Manager” qui va permettre de lister, d’installer, de supprimer ou de modifier la priorité (valeur “Merit”) de nos filtres DirectShow. C’est également un logiciel autonome qui ne nécessite aucune installation. Voila à quoi ressemble son interface.

Dans l’arborescence principale, on déroule les “DirectShow Filters” et on recherche dans la liste le filtre “MainConcept (Adobe2) MPEG Splitter”. Une fois trouvé, on le sélectionne et on voit la valeur “Merit” du filtre positionné sur MERIT_NORMAL (00600000).

On va essayer de mettre la valeur “Merit”minimale pour ce filtre pour voir si notre splitter Haali est pris en compte. On sélectionne donc MERIT_SW_COMPRESSOR (00100000) puis on clique sur le bouton “Set Merit Value”. La priorité du filtre a été modifiée. On aurait pu également supprimer ce filtre DirectShow au risque de voir certaines applications (Adobe certainement) ne plus fonctionner correctement.

Nous relançons maintenant notre vidéo et miracle, elle fonctionne. C’est bien le splitter Haali qui a été pris en compte cette fois-ci. Nous ne pouvons par contre pas avancer ou reculer dans la vidéo. Un problème typique des splitters de mauvaise qualité. Mais rassurez-vous, celui intégré à MPC-HC fonctionne parfaitement.

On peut réafficher le graph dans GraphEdit pour voir le nouveau schéma de rendu vidéo.

Cette fois ci, c’est bien le splitter OGG/OGM du pack qui est utilisé, il arrive à traiter le flux vidéo et à le passer au décodeur Xvid. tout est rentré dans l’ordre.

Cette méthode qui consiste à changer les priorités des filtres DirectShow est celle utilisée par les packs de codecs. Elle permet d’éviter les conflits en utilisant toujours des filtres adaptés aux médias en cours de lecture… Mais comme nous allons le voir, MPC-HC, FFDshow plus quelques autres filtres/codecs permettent de quasiment tout lire sans aucun problème !

12. Les décodeurs MPEG-2

La bonne restitution d’un DVD, ou d’un rip DVD, dépend principalement du décodeur MPEG-2 utilisé. Nous avons sélectionner trois décodeurs en plus de celui intégré à MPC-HC :

  • MPC-HC : performant, opensource, simplissime
  • Dscaler 5 : performant, opensource, avec plus d’options que celui de MPC-HC
  • FFDShow : opensource, nécessaire dans certaines conditions
  • NVIDIA PureVideo Decoder : certainement le meilleur Decodeur MPEG-2 mais payant

Avant de passer à leur configuration, nous devons introduire 2 notions importantes :

Premièrement, l’algorithme de désentrelacement utilisé est très important. Les productions cinématographiques en 24 images/seconde (les films principalement) doivent être désentrelacé en mode “WEAVE” et les productions télévisuelles en 25 images/seconde (emissions, spectacles, concerts, documentaires, sport…) en mode “BOB”. Plus d’info sur le désentrelacement.

Deuxièmement, il faut savoir que certains décodeurs MPEG-2 peuvent sortir l’image de 2 façons :

  • en YV12 : un format YUV sur 12 bits respectant la norme 4:2:0
  • en YUY2 : un format YUV sur 16 bits respectant la norme 4:2:2

C’est justement le cas des décodeurs sus-cités. Sans rentrer dans des explications complexes, sachez qu’il est préférable de sortir une image encodée en YV12 pour minimiser la sollicitation CPU qu’entrainent certains filtres FFDShow comme le Redimmensionnement de l’image. Nous verrons cela en détail plus tard.

Utilisation du décodeur MPEG-2 intégré à MPC-HC

Si la case “MPEG-2 Video” est cochée dans les filtres internes des options de MPC-HC, C’est son décodeur MPEG-2 natif qui sera utilisé. On peut le vérifier en faisant un “clic droit > Filtres” sur le DVD en cours de lecture :

Lorsque l’on clique sur le “Decodeur MPEG-2”, on accède à sa configuration.

L’option “Autoriser le format YUV Planar” doit être cochée pour traîter l’image en YV12, dans le cas contraire, le format de sortie est YUY2. Le menu déroulant permet de forcer le désentrelacement WEAVE, BOB ou bien le détecter automatiquement si AUTO est sélectionné.

Utilisation de DScaler 5

Vous pouvez également utiliser en remplacement du décodeur MPEG-2 natif de MPC-HC Dscaler 5. Après l’avoir installer normalement, aucune option n’est paramétrable, il faut l’associer MPC-HC. Pour cela, il faut décochez la case “MPEG-2 Video” des filtres internes de MPC-HC. Lancez votre DVD et vérifiez que c’est bien le filtre “DScaler Mpeg-2 Video Decoder” qui est actif.

Si ce n’est pas le cas et qu’un autre filtre est utilisé, Ajouter le filtre “DScaler Mpeg-2 Video Decoder” dans les filtres externes de MPC-HC ou bien assigner lui une plus grande valeur “Merit” avec le logiciel “Filter Manager”. Relancez la lecture, MPC-HC devrait utiliser le bon filtre. On accède alors aux propriétés du filtre “DScaler Mpeg-2 Video Decoder” en cliquant dessus.

Parmi les options intéressantes, on retrouve les méthodes de désentrelacements (Auto, Weave et Bob).

Nous pouvons aussi très aisément sélectionner le mode de sortie YV12 .

Une autre option permet de forcer la reconnsaissance des DVD PAL lorsque l’on utilise FFDShow. Cochez là si vous regardez des DVD Pal et décochez là pour les DVD NTSC.

 

Utilisation du Décodeur MPEG-2 de FFDShow

FFDShow propose deux libairies pour le décodage MPEG-2 : libmpeg2 et libavcodec. Nous préconisons l’utilisation de libmpeg2 pour le décodage de vidéos au format MPEG-2.

Pour fonctionner, il faut spécifier “libmpeg2” à côté du codec “MPEG2” dans le menu Codecs de FFDShow. Tous les fichiers vidéos au format MPEG-2 seront alors pris en charge. Pour activer ce décodage sur les DVD ou les rips de DVD (lecture de dossier VIDEO_TS), il faut en plus cocher la case “DVD Decoding” qui apparaît en dessous de la liste de codecs lorsque l’on sélectionne la ligne “MPEG2”.

Le flux en sortie est de type YV12. Il faudra en revanche appliquer un filtre de désentrelacement dans FFDShow car la librairie “libmpeg2” ne s’occupe que du décodage.

Utilisation de NVIDIA PureVideo Decoder

NVIDIA PureVideo Decoder, à ne pas confondre avec le moteur de décodage des GeForce, est un décodeur MPEG-2 de bonne facture qui propose en plus quelques filtres post-traitements. Contrairement à ce que l’on pourrait croire, il fonctionne avec n’importe quelle carte graphique ou carte mère à circuit graphique intégré. Il est par contre payant, disponible à 19.95, 29.95 ou 49.95 selon les formats audio supportés.

Pour l’utiliser, il faut désactiver le “Décodeur MPEG-2” natif de MPC-HC et vérifier que le filtre “NVIDIA Video Decoder” est bien utilisé lors de la lecture de DVD. Si ce n’est pas le cas, il faut ajouter “NVIDIA Video Decoder” aux filtres externes de MPC ou bien augmenter sa valeur “Merit”.

Comme FFDShow, un icône apparaît dans la barre des tâches lorsqu’il est actif. Lorsque l’on double clique dessus, la fenêtre de configuration s’ouvre. On peut aussi l’afficher en accédant aux filtres en cours d’utilisation dans MPC-HC .

Par défaut, le décodeur active l’accélération matérielle compatible uniquement avec les GeForce 7 ou supérieures. Cette dernière peut soulager les processeurs mono core d’anciennes générations mais sera de toute façon désactivée si un filtre post-traitement FFDShow est activé. Elle n’a donc que peu d’intêret dans la mesure ou nous allons voir comment améliorer le rendu des DVD et les mettre à l’échelle avec FFDShow, mais cette option reste bénéfique pour le désentrelacement.

Dans le menu déroulant “Commande de désentrelacement”, on peut sélectionner la détection “Automatique” qui bug selon certains utilisateurs, Il vaut mieux prendre l’option “Smart” si vous regardez beaucoup de films et de concerts, spectacles, ou bien le mode “Film” pour les films et “Vidéo” pour les autres types de DVD.

On constate également que le format de sortie par défaut est YUY2, et qu’il n’y a pas possibilité de changer ce mode en YV12 depuis l’interface. Heureusement cette option est modifiable depuis la base de registre. Pour celà, tapez “regedit” dans le “Menu démarrer > Executer”. La barre de registre s’ouvre. Accédez au dossier “HKEY_LOCAL_MACHINE > SOFTWARE > NVIDIA Corporation > Filters > Video” et ajoutez une nouvelle clé de valeur DWORD.

Donnez le nom “PreferYV12” à la nouvelle clé.

Double cliquez sur cette nouvelle clé, Remplacez la valeur 0 par 1, puis validez .

A l’instar de DScaler 5 et son option “Hardcode For Pal with FFDShow”, le décodeur NVIDIA propose une option pour forcer la détection des DVD PAL avec FFDshow. Elle se présente aussi sous la forme d’une clé de registre comme “PreferYV12”. Il faut donc créer une clé intitulé “ForcePalConnection” de valeur DWORD “1”.

Voila ce qu’affiche ensuite la configuration du “NVIDIA Video Decoder”.

13. Les décodeurs MPEG-4/AVC, H.264, X.264

Intéressons nous maintenant au cas des décodeurs MPEG-4 AVC capables de traiter les formats H.264 et X.264. Nous rappelons que ce sont de loin les formats le plus gourmands et qu’ils nécessitent beaucoup de ressources. Ces formats sont le plus souvent encapsulés dans des fichiers au format MKV, on les retrouve également dans des conteneurs MP4, MOV mais aussi dans les MT2S (rip Blu-ray) et EVO (rip HD DVD).

Utilisation avec le décodeur natif de MPC-HC

Le décodeur natif de MPC-HC décode ces formats et peut même prendre en compte l’accélération matérielle des cartes graphiques dans certaines conditions. On parle d’accélération «DXVA » pour les cartes NVIDIA embarquant le moteur PureVideo HD (VP1) et ATI compatible avec le moteur AVIVO premier du nom. L’accélération « DXVA2 » est accessible avec les dernières générations de Radeon HD 2000/3000/4000 embarquant les moteurs UVD/UVD2 (sauf pour la HD 2900 XT), et de GeForce 8/9 embaquant les moteurs VP2/VP3 (sauf la première série de 8800 à base de G80).
PS : L’accélération matérielle DXVA2 est aussi supportée pour le décodage de fichier VC-1.

Pour que l’accélération matérielle fonctionne, le filtre H264/AVC (DXVA) doit être coché dans les filtres internes des options de MPC-HC :

Il faut aussi obligatoirement utiliser le mode de rendu « VRM9 » sous Windows XP (compatibilité DXVA seulement), ou bien « EVR Custom » sous Vista (compatibilité DXVA et DXVA2). Toutes les autres combinaisons ne sont pas prises en charge.

Pour vérifier la prise en charge DXVA ou DXVA2, vous pouvez consulter les «Statistiques d’affichages » (CTRL-J) depuis le menu « Affichage » de MPC-HC. L’OSD vous indiquera si l’accélération matérielle est utilisée ou non. Voici une capture faites en lecture d’un fichier MKV 1080p encodé en X.264 sur une machine à base d’AMD 780G et de processeur Athlon X2 4850E, sous Windows Vista donc. Les statistiques indiquent “DXVA : H.264 bitstream Decoder, no FGT” ce qui signifie que c’est la circuit graphique qui décode le flux via son moteur UVD. On constate aussi que la charge CPU est très basse, de l’ordre de 10% seulement :

Ce même film décodé logiciellement par FFDShow affiche une charge bien supérieure d’environ 50%, les statistiques affiche bien “DXVA : Not using DXVA” :

Attention cependant, si FFDShow se lance derrière le “MPC Video decoder”, l’accélération matérielle DXVA2 n’est plus utilisée. Nous verrons plus tard dans le dossier comment utiliser FFDShow pour qu’il ne soit utilisé que dans certaines circonstances.

Dernier point, toutes les vidéos au format MPEG-4/AVC (ou VC-1) ne bénéficieront pas forcément de l’accélération matérielle. Dans ce cas, c’est toujours le “MPC Video Decoder” mais sans l’accélération DXVA qui sera utilisé. Nous avons remarqué que FFDShow s’en tirait mieux en terme de charge CPU, certains préfereront donc l’utiliser, d’autres encore seron prêt à investir dans CoreAVC pour optimiser cette charge CPU. Sachez donc que le décodage MPEG-4/AVC externe peut être substitué à l’accélération matérielle DXVA2 si ce dernier ne peut pas prendre en charge le fichier. Pour celà, il faut double cliquer sur le filtre interne “H264/AVC (DXVA)” de MPC-HC et décoder la case “Activer Ffmpeg” tout en laissant coché la case “Activer DXVA” :

 

Utilisation de CoreAVC

CoreAVC est un logiciel payant qui se négocie à 8$ pour la version standard et 15$ pour la version professionnelle qui en plus prend en charge les flux entrelacés et le support des GPU (dans l’avenir).
C’est le décodeur MPEG-4/AVC le moins gourmand sous Windows. La sollicitation CPU est presque 2 fois moins importante qu’avec le décodeur H.264 de FFDshow, mais pas aussi basse qu’avec une accélération matérielle de dernière génération (DXVA2).

L’installation du logicielle ne demande aucune configuration. Pour utiliser le filtre MPEG-4/AVC de CoreAVC, il faut dans un premier temps décocher le filtre interne “H264/AVC (DXVA)” de MPC-HC, ou bien juste la case “Activer Ffmpeg” dans les options de ce filtre interne. Si un autre décodeur MPEG-4/AVC est pris en compte, vous pouvez baisser sa priorité avec “Filter Manager” ou bien plus simplement ajouter le filtre externe “CoreAVC Video Decoder” à MPC-HC :

Si CoreAVC est utilisé pour le décodage MPEG-4/AVC, on retrouve “CoreAVC Video Decoder” dans les filtres actifs sous MPC-HC :

En cliquant dessus, on arrive sur la fenêtre de configuration de CoreAVC :

“Input formats” permet de sélectionner les différents types de format AVC, “Output formats” permet de sélectionner et de préferer un format de sortie plutôt qu’un autre.

Les options “Input levels” et “Output levels” permettent de faire un mapping des couleurs en entrée et sortie. L’option “Deinterlacing” n’est intéressante que pour la TV HD au format 1080i, vous pouvez également cocher la case “Preferred decoder” pour augmenter sa piorité par rapport aux autres décodeurs MPEG-4/AVC installés.

Utilisation du décodeur H.264 de FFDshow

FFDShow est l’alternative la plus intéressante si vous ne pouvez pas bénéficier d’accélération matérielle et que vous n’êtes pas prêt à débourser 8 ou 15$ pour CoreAVC. L’activation du décodage est très simple, comme pour tous les autres formats, il suffit de sélectionner “libavcodec” pour le format “H.264/AVC” dans le menu “Codecs” de FFDShow :

Nous tenons encore à préciser une dernière chose. le décodage logiciel via FFDShow ou CoreAVC est une solution obligatoire si vous comptez utiliser des filtres post-traitements derrière. On ne parle pas forcément de filtres de mise à l’échelle ou d’amélioration pour les vidéos haute définition, mais plutôt des filtres de restitution de couleur comme nous le verrons plus tard dans l’article.

Utilisation des filtres de TotalMedia Theater sous MPC-HC

A titre d’information, vous pouvez utiliser les filtres de TotalMedia Theater pour utiliser l’accélération matérielle de votre carte graphique sous MPC-HC. Cela peut s’avérer intéressant puisque que contrairement au “MPC Video Decoder”, l’accélération matérielle fonctionne sous Windows Vista mais aussi sous XP, et cela peu importe le mode rendu spécifié. Vous devez simplement ajouter les filtres externes ci-dessous à MPC-HC :

  1. Arcsoft MPEG Demux (Préferer)
  2. Arcsoft Video Decoder (Préferer)
  3. Arcsoft Audio Decoder HD (Préferer)

Bloquez tous les autres filtres externes si vous en avez pour que cela fonctionne…

14. Filtres post-traitement FFDShow

Après avoir passé en revue les trois codecs les plus importants (MPEG-4/ASP, MPEG-2 et MPEG-4/AVC), nous allons maintenant nous intéresser aux filtres post-traitement FFDShow les plus intéressants et qui permettent d’améliorer sensiblement la qualité de l’image ou de la mettre à l’échelle.

Info pratique : pour mieux se rendre compte du résultat d’un filtre post-traitement, vous pouvez cocher la case “Moitié droite” située sur la partie haute de la configuration de chaque filtre. Seule la moitié droite de l’image sera alors post-traitée, l’autre restant identique à l’originale. N’hésitez pas non plus à bidouiller les réglages ou à activer/désactiver les filtres, les modifications sont appliquées en temps réel.

Infos à l’écran (OSD)

Il affiche à l’écran les informations cochées, il est particulièrement intéressant pour connaître la charge CPU, le format vidéo d’origine utilisé (4CC) ou encore les informations en entrée et sortie comme l’espace de couleur ou la résolution de la vidéo.

Post-traitement (Postprocessing)

C’est avec ce filtre que vous pourrez améliorer considérablement la qualité des vidéos qui sont les plus dégradés (macroblocks, artefacts), le plus souvent au format DivX ou Xvid SD. Plus on augmente le curseur, plus le filtre sera gourmand mais plus la correction sera bonne. L’option “Contrôle automatique de qualité” permet à FFDShow de s’adapter à la puissance de votre processeur et de juger s’il est utile d’améliorer l’image. La case “Mplayer” est le mode de déblocage par défaut, son option “Luminance” permet de supprimer le voile terne que l’on retrouve sur les vidéos de type DivX ou Xvid. Le Déblocage SSP est le plus performant mais consomme énormément de ressources processeurs.

Captures recadrées en 600 x 450 d’une vidéo DivX affichée en plein écran 1280 x 720 :

  • Pas de Post-traitement (image affichée ci-dessous)
  • Post-traitement par défaut avec l’option “Luminance” cochée
Passez votre souris sur l’image ci-dessous pour afficher l’image traitée
En comparant les 2 images, on remarque bien évidemment que l’image post-traitée est plus claire, mais on voit aussi la disparition d’artefact et d’effet de macro-blocking (juste à côté du nez côté gauche, chemise blanche de la personne en arrière plan).

Accentuation (Sharpen)

Les filtres d’accentuation permettent d’obtenir une image plus précise avec plus de piqué. Cela ne s’obtient malheuresement pas sans dégrader l’image, mais le résultat est étonnant sur les vidéos de bonne qualité. Les filtres “ASharp” avec la case “Filtrage de bloc de haute qualité” ou bien SWScaler sont selon nous ceux qui donnent le meilleur résultat, au détriment d’une charge CPU un peu plus élevée qu’avec les autres filtres.

Captures recadrées en 600 x 450 d’un DVD StarWars III affiché en plein écran 1280 x 720 :

  • Pas d’accentuation (image affichée ci-dessous)
  • Filtre ASharp activé, option “Filtrage de bloc de haute qualité” cochée
Passez votre souris sur l’image ci-dessous pour afficher l’image traitée
Ici l’accentuation est flagrante, c’est vraiment bluffant sur le personnage, la sensation de netteté et de piquée est beaucoup plus présente. Par contre l’accentuation lumineuse affiche des dérives sur les arrêtes franches : les contours du tube sur la droite de l’image sont bien trop prononcés. C’est ce que l’on peut appeler une image dure. Le filtre SWScaler a un rendu plus doux, moins prononcé !

Redimensionnement & Proportions (Resize & Aspect)

C’est ici que vous pouvez agrandir vos vidéos. Rien de plus simple, il suffit de lui spécifier la nouvelle taille horizontal et vertical, par exemple 1920 x 1080 si vous avez un diffuseur Full HD, ou bien 1280 x 720 pour un diffuseur HD Ready. Vous pouvez aussi vous contenter de spécifier le nombre de colonnes seulement (1920 ou 1280), auquel cas la hauteur de la vidéo est calculée automatiquement.

PS : Certains pensent qu’il vaut mieux mettre un multiple de 2 ou 3 pour agrandir la vidéo, surtout en hauteur pour obtenir une image plus fine. Exemple avec un DVD PAL en sortie “1440×1152” (largeur : 720 x 2 et hauteur 576 x 3), il faut à ce moment là cocher la case “ne pas corriger les proportions”.

On peut aussi redimmensionner la vidéo dans certaines conditions seulement, si la taille de la vidéo est par exemple inférieur à 1280 x 720. Mais nous verrons plus tard qu’il est préférable d’appliquer ces conditions sur des configurations différentes de FFDShow (Presets).

Cette mise à l’échelle peut utiliser différents algorithmes pour l’agrandissement de l’image. La méthode de luminance “Lanczos” est très efficace. Le résultat diffère avec le nombre de passe effectué (Number of taps). Plus on spéficie de passe, plus la qualité de la mise à l’échelle est bonne au détriment d’une sollicitation CPU beaucoup plus grande bien sûr. 4 voire 5 semble être un bon compromis entre performance et qualité du rendu. La méthode chromatique “Spline” donne aussi de bon résultat.

On peut aussi paramétrer un filtre d’accentuation, nous conseillons de positionner uniquement le curseur de “l’accentuation de luminance” sur 0.70.

Captures recadrées en 600 x 450 dun DVD StarWars III affiché en 1280 x 720 :

  • Pas de mise à l’échelle (image affichée ci-dessous)
  • Mise à l’échelle en 1280 de large, “Méthode Lum. = Lanczos, 5 passes”, “Méthode chrom. = Spline”, Accentuation de la luminance à 0.70

15. Upscaling de DVD et de vidéo SD

Rappelons brièvement la problématique, la configuration logicielle doit permettre de mettre à l’échelle les DVD et les vidéos en basse définition. Ce traitement ne doit par contre pas être effectué sur les vidéos HD sous peine de dénaturer la bonne qualité des vidéos et de trop solliciter le processeur.

Utilisation de FFDShow Raw Video

Concrètement il faut utiliser les filtres post-traitement FFDShow que lors de la lecture de DVD ou de vidéo en SD. FFDShow intègre à ce titre une option qui permet de configurer plusieurs profils (presets en anglais) et de les activer ou non selon certaines conditions.

Le plus simple consiste à systématiquement lancer FFDShow en bout de chaîne pour toutes les vidéos, il décodera les formats si on lui demande de les décoder, et il effectura les post-traitements si c’est un DVD ou une vidéo SD, et s’en abstiendra en cas de vidéo HD. Pour cela, vous pourrez utiliser la fonction “Vidéo brute” (Raw video en anglais) ou le filtre “FFDShow Raw Video”.

Utilisation de FFDShow Video Decoder

Un problème se pose alors si vous souhaitez utiliser l’accélération matérielle de votre circuit graphique. En effet, elle est systèmatiquement désactivée lorsque FFDShow intervient en fin de chaîne.

Vous allez devoir utiliser le filtre “FFDShow Video Decoder” pour contourner le problème. Ce dernier lance FFDShow uniquement lorsqu’il est sollicité pour la partie décodage. L’astuce consiste donc à configurer FFDShow uniquement pour le décodage de vidéo que l’on veut post-traiter ou mettre à l’échelle. Le décodage de formats HD devra en revanche être susbituer à d’autres filtres ou codecs.

Utilisation des Pixel Shaders 2.0

Une autre alternative intéressante et peu coûteuse en ressource processeur consiste à utiliser les Pixel Shaders de votre circuit graphique. En plus de proposer des algorithmes d’agrandissement de l’image plus évolués que ceux par défaut, vous pourrez utilisez les Pixels Shaders pour effectuer des traitements d’amélioration de l’image (accentuation, réducteur de bruit…). Dernier atout, vous pouvez utiliser sans problème en amont des filtres FFDshow (décodage ou post-traitements).

16. Upscaling avec FFDShow Raw Video

Activer la fonction “Vidéo brute” de FFDShow.

La première solution consiste à ouvrir le menu “Codecs” de FFDShow. Tout en bas de la liste, vous trouverez le format “Vidéo brut” (Raw video). Si vous spécifiez la valeur “Tous formats supportés”, FFDShow interviendra en bout de chaîne vidéo, même si ce n’est pas lui qui décode le format de la vidéo. Vous pouvez également uniquement lancer FFDShow en bout de chaîne en fonction du format en entrée (YV12, YUY2, RGB32…) :

L’autre solution est d’ajouter le filtre externe “ffdshow raw video filter” à MPC-HC :

Création de configurations différentes (Presets) dans FFDShow

Nous allons proposer 5 configurations différentes pour nous familiariser avec les presets de FFDshow, elle suppose que vous disposez d’un diffuseur Full HD capable de sortir en 1920×1080 :

1. Preset intitulé “divx” : Il sera utilisé pour la lecture de vidéos DivX/Xvid/MPEG-4-ASP en SD, nous activerons les filtres “Post-traitement” (avec l’option “Luminance” coché), “Redimensionnement” et pourquoi pas “Reduction de bruit” si vos vidéos sont de très mauvaises qualités

2. Preset intitulé “dvd” : Il sera utilisé pour la lecture de vidéo MPEG-2 en SD, principalement des DVD ou rips de DVD. Nous activerons les filtres “Post-traitement” (sans l’option “Luminance”), “Redimensionnement” et pourquoi pas “Accentuation” selon votre appréciation du rendu

3. Preset intitulé “720p” : Il sera utilisé pour la lecture de vidéos HD avec moins de 1920 colonnes, le plus souvent des rips HD en 1280 colonnes. Nous n’activerons que le filtre de “Redimensionnement” en 1920×1080.

4. Preset intitulé “sd” : Activation des mêmes options que le preset “divx” sauf que l’option “Luminance” du filtre “Post-traitement” sera décoché. Il sera utilisé pour toutes les vidéos SD qui ne correspondent pas à un des presets sus-cités

5. Preset par default de FFDshow : Aucun filtre de mise à l’échelle ou d’amélioration de l’image activé. Il sera utilisé pour les vidéo HD en 1920 colonnes ou qui ne correpondent à aucune condition des autres presets.

Configuration du preset intitulé “divx”

Rendez vous dans le menu “Configuration” de FFDshow, vous y trouverez le profil par défaut de FFDshow intitulé “default”. Commencez par cliquez sur le bouton “Nouveau”, un nouveau preset intitulé “default 1” est ajouté. Renommer le en “divx” avec le bouton “Renom.”. Sélectionnez le si ce n’est pas déjà le cas puis activez et configurez les différents filtres pour la lecture de vos vidéos au format DivX et Xvid en basse définition :

Lorsque tout vous semble bon, cliquez sur le bouton “Condition de chargement automatique” situé sous la liste de vos presets FFDShow, vous arrivez alors sur une nouvelle fenêtre ou vous pourrez configurer les conditions de chargement :

Dans le cas des formats DivX et Xvid en SD, vous spécifiez dans un premier temps les dimensions de la vidéo pour lesquelles ce profil doit se charger :

  • Largeur <= 1279 pixels
  • et
  • Hauteur <= 719 pixels

Ensuite, il faut détecter les vidéos au formats DivX et Xvid et plus globalement les formats de type MPEG-4/ASP. Vous auriez pu cocher la case “si le nom du film (+ jokers) correspond” en spécifiant par exemple dans le champ en dessous :
*.avi;*.mp4,*.ogm;*.divx

Mais ces conditions sont trop restrictives. Un fichier mp4 contenant une vidéo au format MPEG-2 serait par exemple prise en compte. La meilleure solution consiste donc à vérifiez le 4CC de la vidéo (format vidéo encodé en dur dans le fichier).

Vous pouvez alors sélectionner les différentes valeurs 4CC correspondant au vidéo de type DivX/Xvid/MPEG-4-ASP dans le champ “si le 4CC correspond” :
XVID;DIVX;DX50;MP4V;3IV1;3IV2;DIV3;DIV4;DIV5;DIV6…

La valeur 4CC d’un fichier vidéo est affiché dans le menu “Info & CPU” de FFDShow. Google sera aussi votre ami pour ce type de recherche…

Note importante sur le 4CC : Si ce n’est pas FFDShow qui décode le format de la vidéo en cours de lecture, vous devrez utilisez le champ situé juste en dessous pour spécifier le ou les 4CC à prendre en compte. Ce champ s’intitule “si le 4CC du filtre précédent correspond”.

Enfin vous spécifiez en haut de la fenêtre la condition “AND” pour que ce profil s’applique aux vidéos de type DivX/Xvid ayant une résolution inférieure à 1280×720. Sinon la condition s’applique si l’une ou l’autre des conditions spécifiés est vérifiée. Faites travailler votre logique, ca ira mieux ; )

Configuration des autres presets

Maintenant que vous savez brievement comment fonctionne la configuration de détection de preset dans FDShow, vous pouvez procéder pour les autres presets à savoir :

  • Création du preset renommé comme vous l’entendez
  • Applications des filtres que vous souhaitez pour ce preset
  • Configuration des condition de chargement automatique

Voici ce que cela donne pour la configuration du preset “DVD” :

  • Dimensions comprises entre 16×16 et 720×576
  • ET
  • 4CC correspondant à MPG2

Pour le preset “720p” :

  • Dimensions comprises entre 1280×16 et 1919×720

Pour le preset “sd” :

  • Dimensions comprises entre 16×16 et 1279×719

Enfin pour le preset par “default”, on laisse la configuration par défaut sans aucun filtre post-traitements

Vous obtenez alors dans le menu de configuration une liste de profils comme suit. Il ne reste plus qu’à cocher la case “Chargement automatique” pour activer la détection des profils dans FFDShow. N’oubliez pas d’appliquer les modifications :

FFDShow devrait alors charger un profil différent en fonction des vidéos lus. Voici une capture en lecture de DVD, vosu pouvez facilement vérifier quel configuration est utilisé en faisant un clic droit sur l’icône “FFDShow vidéo” dans la barre des tâches :

Pour finir, nous rappelons que ceci n’est qu’un exemple, et que vous pouvez configurer les presets comme bon vous semble.

17. Upscaling avec FFDShow Video Decoder

Rappel de la problèmatique

Nous rappelons que le but ici est d’utiliser l’accélération matérielle DXVA2 de votre circuit graphique pour le décodage des formats très gourmands MPEG-4/AVC (H.264, X.264) et VC-1, et de permettre par la même occasion la mise à l’échelle des DVD et des vidéos en basse définition. Cette opération est impossible avec le filtre “FFDShow Raw Video Filter” détaillé sur la page précédente, puisqu’il se greffe en bout de chaine vidéo, et désactive systématiquement l’accélération matérielle.

Vous pouvez en revanche contourner le problème en utilisant le filtre “FFDShow Video Decoder” qui ne lance FFDShow (et donc ses filtres post-traitement) uniquement lorsqu’un format est décodé par FFDShow.

Le principe est simple, tous les formats vidéos que vous souhaitez améliorer ou mettre à l’échelle devront être décodés par FFDShow, les autres devront être traités par d’autres codecs ou filtres.

Dans notre exemple de la page précédente, nous vous expliquions comment mettre à l’échelle toutes les vidéos exceptées celles en HD ayant une résolution de 1920 colonnes. Ici l’approche est différente, nous n’allons pas décoder avec FFDShow tous les formats qui peuvent être accéléré par le circuit graphique, à savoir H.264 et VC-1.

Utilisation du filtre “FFDShow Video Decoder”

En fonction de sa priorté “Merit”, c’est peut être FFDShow qui sera choisi pour décoder les formats sélectionner dans son menu “Codecs”, si ce n’est pas le cas pour certains formats, pensez simplement à rajouter le filtre externe “ffdshow Video Decoder” à MPC-HC.

Ensuite il faut désactiver les formats que vous souhaitez décoder par FFDShow, en l’occurence tous sauf les H.264 et VC-1.

Enfin dans le menu “Codecs” de FFDShow, il faut activer le décodage de tous les formats que vous souhaitez améliorer ou mettre à l’échelle, et bien entendu désactiver les autres.

Les différents formats pris en charge par FFDShow seront alors soumis aux filtres post-traitements activés, ou mieux, aux différentes configurations FFDShow (Presets) comme détaillé sur la page précédente.

18. Upscaling avec la carte graphique (Pixel Shaders)

Upscaling avec les Pixel Shader

Lorsque vous basculez une vidéo en plein écran, votre carte graphique effectue un agrandissement vers la résolution d’affichage. L’algorithme utilisé de type bilinéaire est moins performant que ceux disponibles dans FFDShow (Lanczos, bicubic…).

Seulement, MPC-HC permet d’utiliser via votre circuit graphique d’autres algorithmes d’agrandissement grâce aux fonctions des Pixel Shader 2.0. Il ne fonctionne qu’avec certains mode de rendus vidéos (EVR Custom, VRM9 renderless) mais permettent de mettre à l’échelle la vidéo plus proprement. 4 modes sont disponibles : Bilinear, Bicubic à -1.00, Bicubic à -0.75 et Bicubic à -0.60 :

Ces redimensionnements sont très proches de ceux de FFDShow mais permettent d’économiser des ressources processeur, puisque c’est votre circuit graphique qui s’en charge. Notez que vous pouvez tout de même combiner un premier agrandissement léger avec FFDShow pour finir en mode plein écran avec une mise à l’échelle effectuée par votre carte graphique. Nous conseilllons de mettre à jour votre version de DirectX 9c avec celle du mois d’avril 2008.

Post-traitement avec les Pixel Shader

Mais ce n’est pas tout, vous pouvez aussi utilisez les Pixel Shader pour traiter votre image : réduction de bruit, accentuation, desentrelacement… Les filtres sont nombreux mais se configure en ligne de code.

Pour utiliser ces filtres, il est tout d’abord nécessaire de sélectionner une surface adaptée, “3D Surfaces Recommanded***” dans les options de sortie de MPC-HC (cf capture ci-dessus). Profitez en pour sélectionner un algorithme de mise à l’échelle PS 2.0.

Ensuite, il faut accéder au menu “Lecture > Shaders” de MPC-HC, le menu qui apparaît est également disponible en faisant un clic droit sur la vidéo en cours de lecture :

Par défaut, les Shaders sont désactivés, vous pouvez commencer par faire un essai en sélectionnant le filtre “Sharpen” pour accentuer le relief subjectif et la netteté de l’image :

Bien qu’ayant sélectionné ce filtre, il n’est pas encore actif puisque vous devez “Basculer en mode Pixel Shader” depuis le menu ou bien taper le raccourci “CTRL-P”. L’OSD vous indique si le mode Pixel Shader est activé ou non.

Captures recadrées en 600 x 450 du DVD StarWars III en plein écran 1280 x 720 :

  • Pas de Post-traitement via les Pixel Shaders (image affichée ci-dessous)
  • Post-traitement Sharpen via les Pixel Shaders

Voila pour l’utilisation simplifiée avec un seul filtre. Vous pouvez bien évidemment en combiner plusieurs grâce à l’option “Combiner…” disponible dans le menu “Shaders” de MPC-HC. Une fenêtre intitulée “Fusionneur de shaders” apparaît, c’est ici que vous allez pouvoir ajouter plusieurs filtres post-traitement créer par les Shaders de votre ciruit graphique.

Il convient tout simplement de les sélectionner dans le menu déroulant en bas puis de cliquez sur le bouton “Ajouter”. Vous pouvez ensuite les réorganiser les uns par rapport aux autres avec les boutons “Vers le haut” et “Vers le bas”, à l’image des filtres de FFDShow.

Configurer les filtres post-traitement des Pixel Shaders

Contrairement à FFDShow, vous allez devoir mettre les mains dans le code pour pouvoir configurer ces filtres. L’option “Modifier…” du menu “Shaders” de MPC-HC donne accès à une fenêtre qui permet de sélectionner par l’intermédiaire d’un menu déroulant les différents filtres disponibles. Un bout de code apparaît alors en dessous, c’est à partir de ces lignes que vous allez pouvoir configurer le filtre. Voici un exemple avec l’édition du filtre “Sharpen”, c’est avec la variable “#define effect_width(UNE_VALEUR)” que vous allez pouvoir peaufiner l’accentuation de l’image.

Pour ce qui est du paramétrage des autres filtres, ou de l’ajout de nouveaux, Google sera votre ami ; )

19. Les renderers vidéos

La dernière couche de la chaîne vidéo est appelée support vidéo ou renderer. Cela ne vous parle peut-être pas mais les termes Overlay ou VRM9 vous sont peut être plus familiers. Il y a en fait 2 autres renderer intéressants, l’EVR et celui du pack Haali. Vous pouvez les sélectionner depuis le menu “Sortie” des options de MPC-HC.

Overlay

L’overlay est le plus ancien support, il fonctionne avec toute les circuits graphiques et s’avère moins gourmand en ressource que les autres renderer et se configure (gamma, luminosité, contraste, couleur…) directement depuis les pilotes graphiques.

En cas de configuration avec plusieurs affichages, la vidéo ne s’affiche que sur le moniteur sur lequel est positionné le player, mais les pilotes graphiques permettent de traiter la vidéo pour l’afficher en plein écran sur un écran secondaire (mode Théatre chez ATI, mode vidéo plein écran chez NVIDIA). C’est une option qui peut s’avérer très pratique.

VRM9

Le renderer VRM9 ne fonctionne qu’avec les cartes compatibles DirectX 9 mais peut s’afficher par contre sur toutes les sorties vidéos simultanément pour peu que vous soyez en mode clone bien sûr. Il est un peu plus gourmand en ressource que l’overlay, mais affiche une image plus douce (légèrement plus flou) que l’overlay. On pourra donc plus facilement l’associer à un filtre d’accentuation. Les réglages du rendu s’effectue directement depuis le lecteur source.

EVR

L’EVR pour Enhanced Video Renderer est le nouveau support implémenté sous WIndows Vista uniquement. il est beaucoup plus élaboré que les anciens renderer et permet par exemple au logiciel MPC-HC d’utiliser les dernières accélérations matérielles.

On constate par contre des problèmes de colorimétrie flagrante, les noirs sont très peu profond et les blancs délavés. C’est particulièrement visible sur ces captures avec les bande noir du DVD qui sont grises foncés et avec une mire THX non conforme  (ombre portée du logo THX visible, toutes les nuances de noirs visibles alors qu’il ne devrait y en avoir que 7…).

Pour régler ce problème, il faut convertir le mode de sortie YV12 en RGB32. Pour cela, rendez-vous dans l’avant dernier menu “Sortie” de FFDShow et cochez uniquement les espaces de couleur “RVB32” et “Conversion YV12/RVB de haute qualité”. FFDSHow devra bien évidemment être lancé pour que cette conversion soit prise en compte.

Rendu vidéo Haali

Haali renderer est un support vidéo installé par le pack Haali Media Splitter. Il a comme particularité d’utiliser les Pixel Shaders 2.0 des circuits graphiques pour effectuer un redimensionnement de la vidéo en mode bicubique. La netteté du redimensionnement s’effectue sur une échelle de -1.00 à 0.00 par palier de 0.01, là ou MPC-HC est son redimensionnement PS 2.0 dans les support EVR et VRM9 n’est possible qu’en -0.60, -0.75 et -1.00.

L’autre avantage est la fluidité des vidéos pour une sollicitation CPU un poil plus importante qu’en VRM9.
Le Haali Renderer s’accorde par contre mal avec les fonctions Pixel Shader de MPC-HC, et n’est compatible qu’avec les mode YUY2 et RGB32. Vous pouvez accéder aux réglages du rendu Haali en cliquant sur “Haali’s Video Renderer” dans le menu “Lecture > Filtres” de MPC-HC.

20. Améliorer la fluidité de l’image

Pour avoir une vidéo fluide il faut…

Pour obtenir l’image la plus fluide possible, il n’y a pas de secret, vous devez adapter la fréquence de raffraichissement de votre diffuseur à la vidéo en cours de lecture :

  • en 24, 48 ou 72 Hz pour les vidéo en 24 images/seconde
  • en 50 ou 75 Hz pour les vidéo en 25 images/seconde
  • en 60 Hz pour les vidéo en 30 images/seconde

La plupart des diffuseurs sont aujourd’hui compatibles 50 Hz, ce qui ne devrait pas poser de problèmes avec les vidéos en basse définition et les DVD PAL qui affichent 25 images/seconde. Ce sont souvent les films en HD affichant 24 images/seconde qui saccadent. Heureusement, les diffuseurs récents sont compatibles avec le mode 24p (24 Hz progressif) et devraient vous permettre de profiter de ces vidéos dans de bonnes conditions.

Nous devons maintenant introduire le logiciel PowerStrip qui vous sera d’une très grande utilité dans votre quête de fluidité. Ce logiciel va vous permettre d’utiliser n’importe quelle fréquence de raffraichissement pour votre diffuseur, à condition que celui-ci soit compatible. En effet, les panneaux d’affichage Windows, ATI ou Intel ne vous permettent pas de spécifier de fréquence de raffraichissement à 48 ou 72 Hz… Le panneau de configuration NVIDIA est (était ?) l’exception à la règle mais nous n’avons pas trouvé l’option dans les derniers drivers…

Utilisation de PowerStrip

Après avoir téléchargé et installé le logiciel gratuit PowerStrip, son icône apparaît dans la barre des tâches. Faites un clic droit dessus puis cliquez sur le menu “Profils d’affichage > Configuration…”.


Vous tombez sur une fenêtre de ce type.


Cliquez ensuite sur le bouton “Options avancées de synchronisation”.


Lorsque l’on souhaite avoir un diffuseur en 48 Hz, on doit mettre la valeur 48 au taux de raffraichissement vertical, 72 pour 72 Hz, 75 pour 75 Hz et ainsi de suite. C’est le seul et unique paramètre à modifier pour que la nouvelle fréquence soit prise en charge.


On clique ensuite sur le bouton “Ok”, il se peut que le diffuseur ne soit pas compatibe ou que PowerStrip vous demande de redémarrer pour vérifier la compatibilité. Si votre diffuseur supporte le taux de raffraichissement spécifié pour la résolution en cours, c’est gagné. vous retombez alors sur la fenêtre précédente avec la nouvelle fréquence spécifiée (selon les diffuseurs, le chiffre indiqué peut être légèrement érroné. Ex : 71 ou lieu de 72, 49 au lieu de 50…).

Profils d’affichage différents :

PowerStrip vous permet également d’utiliser des profils différents et de basculer de l’un vers l’autre à l’aide de raccourcis clavier (ce que ne permet pas de faire les pilotes NVIDIA). Pour celà, configurer un premier affichage en 24, 48 ou 72 Hz pour les vidéos en 24 fps puis cliquez sur le bouton “Enregistrer…”.


PowerStrip vous demandera alors de spécifier un nom au profil.


Faites ensuite la même chose avec un deuxième d’affichage en 50 ou 75 Hz pour les vidéos en 25 fps. Cliquez ensuite sur le bouton en forme de touche de clavier pour leur assigner un raccourci clavier à chacun.


Les profils d’affichages que vous venez de créer se trouvent tout en bas de la liste “Fonctions et profils”. Sélectionnez-en un, assignez lui un raccourci juste en dessous puis cliquez sur le bouton “Ajouter un lien”.


Faites la même chose pour le second profil. Vous devriez les retrouvez ensuite dans la liste “Liens” sur la gauche.


Les raccourcis clavier vous permettront de basculer facilement d’un profil à un autre, même à l’aide de votre télécommande. Le premier profil sera optimisé pour la lecture de vidéos en haute définition tandis que le second mode sera parfaitement fluide avec les DVD PAL et les vidéos en SD. Mais celà implique à chaque fois que vous connaissiez la vitesse de raffraichissement de la vidéo (24 ou 25 images/seconde) et que vous y adaptiez le bon profil… Pas simple !

Il existe pourtant un petit logiciel très pratique appelé Reclock qui va vous permettre de contourner le problème. Ce dernier va donc vous permettre de garder une seule fréquence de raffraichissement pour votre diffuseur (en multiple de 24 ou de 25 Hz), et de lire à la fois les vidéos en 24 et 25 images/seconde de manière fluide.

21. Reclock & le Pal Speedup Compensation

Reclock, ses fonctions ?

1. Reclock est un filtre qui remplace l’horloge interne de Windows dans le but de parfaitement synchroniser les flux audio et vidéo.

2. Il peut aussi modifier le nombre d’images/seconde d’une vidéo tout en réechantillonant la piste audio. Le but ici est de fluidifier la lecture de vidéo en s’adaptant à la fréquence de rafraichissement de votre diffuseur. Le rééchantillonement audio ne fonctionne par contre qu’avec les cartes son ou chipset audio qui sont connectés à votre système audio en analogique. Oubliez donc Reclock si vous utiliser une sortie S/PDIF.

Installation et utilisation de reclock

Après avoir téléchargé et installé reclock, vous n’avez normalement rien besoin de faire si vous utilisez MPC-HC puisque Reclock est chargé automatiquement pendant la lecture d’un film. Si vous utilisez un autre lecteur vidéo, vous devrez remplacer votre renderer audio par Reclock.

Pour le moment nous laissons tous les paramètres par défaut, nous y reviendrons plus tard.

Lorsque Reclock est chargé, un icône en forme d’horloge est visible dans la barre des tâche à côté de l’horloge. Vous accédez à la fenêtre de statistique en double cliquant dessus.

DVD Pal : correction du Pal Speedup

Les masters en cinéma sont filmés en 24 images par seconde alors que nos DVD PAL affichent 25 images par seconde. Cette différence se traduit par une légère accélération de la bande son de l’ordre de 4% (environ un demi-ton plus haut, on parle de DVD non compensés) et par un film moins long de 4% que la version cinéma ou NTSC.

Reclock permet de corriger ce phénomène de “Pal Speedup” en ralentissant la bande son de ces DVD PAL non compensés et en resynchronisant la vidéo sur 24 images/seconde. On obtient alors un résultat fidèle à l’original. La seule contrainte pour faire fonctionner le “Pal Speedup Compensation” concerne votre diffuseur qui doit avoir un taux de raffraichissement de 24, 48 ou 72 Hz. Si tout se passe comme prévu et que vous mettez un DVD PAL non compensé, vous obtenez une fenêtre Reclock de ce type.

Attention tout de même, certains DVD PAL sont déjà compensés. Pour ne subir aucune dénaturation du son, ils devront être lu en 50 ou 75 Hz sans compensation audio de la part Reclock. Pour savoir si un DVD PAL est compensé ou non, comparez la durée du film NTSC à la version PAL, seules les oreilles averties et entraînées pourront déceler le Pal Speedup ; )

Le cas des vidéos en 24 images/seconde sur un diffuseur en 50 ou 75 Hz

Prenons maintenant l’exemple inverse avec une vidéo HD en 24 images par seconde lue sur un diffuseur en 25, 50 ou 75 hz. Par défaut, Reclock passe l’image de 24 à 25 images/seconde et ré-echantillone la piste pour qu’elle soit synchronisée. Seul problème, la tonalité de la bande son est aussi revue à la hausse (comme pour le Pal Speedup) et dénature le son.

Voici une capture faites en lecture d’un Rip Blu-ray sur un diffuseur en 75 Hz (identique à 50 Hz).

Reclock propose alors une fonction qui permet de lire les vidéos en 24 images/seconde sur un diffuseur en 50 ou 75 Hz, sans dénaturer (ou presque) le son. Il s’agit des fonctions de “timestretching audio” disponibles dans la configuration audio de reclock.

Cette fonction va permettre de diminuer au maximum la différence de fréquence de rééchantillonage pour que le son soit le plus authentique possible. Il est possible de “strectcher l’audio” lorsque l’on augmente la vitesse de la vidéo (c’est notre cas passage de 24 à 25 images/seconde) mais aussi lorsque l’on réduit la vitesse de la vidéo (cas des DVD PAL ou des vidéos SD passées de 25 à 24 images/seconde). Attention toutefois à ne pas utiliser cette option lorsque l’on souhaite compenser le “Pal Speedup” sur les DVD PAL car le son sera presque identique à la fréquence d’origine, donc un demi ton haut dessus.

Dès qu’il y a un rééchantillonage audio effectué par Reclock, il est conseillé d’augmenter la qualité de rééchantillonage sur “Very Good” pour perdre le moins possible en qualité. Plus vous augmentez la qualité, plus reclock sera gourmand en charge CPU.

Voici les propriétés de reclock après avoir activer le timestreching en lecture de notre même rip Blu-ray.

 

Changer la vitesse des vidéos manuellement

En plus de l’option automatique de Reclock, vous pouvez changer manuellement le nombre d’image par seconde de votre vidéo. Celà peut être intéressant si vous souhaitez outrepasser les changements appliqués automatiquement par reclock en fonction de la vitesse de raffraichissement de votre difuseur, ou tout simplement si Reclock n’a pas réussi à détecter le nombre d’images/seconde et le taux d’échantillonage de votre fichier source.


A ce titre, vous pouvez également forcer le nombre d’images/seconde des DVD et des autres fichiers non reconnus depuis l’onglet “Vidéo settings” des options de reclock.

22. Tearing : problèmes de déchirement de l’image

Supprimer le tearing

Le tearing est un phénomène difficilement explicable qui survient avec tous les types de vidéo. Concrètement des parties de l’image se déchirent en bande horizontal qui peuvent être décalées les unes par rapport aux autres pendant une fraction de seconde.

MPC-HC possède un mode spécial intitulé « Direct3D FullScreen » qui utilise des fonctions graphiques employés dans les jeux vidéos pour restituer la vidéo en mode plein écran. Elle supprime, ou tout du moins limite le tearing à l’écran. En contre partie, vous n’aurez plus la possibilité de faire apparaître des boîtes de dialogue ou fenêtre contextuel si ce mode est activé. Oubliez alors les « clic droit » sur la vidéo en cours de lecture pour voir les filtres utilisés par exemple. Autre contrainte, le mode « Direct3D FullScreen » ne fonctionne qu’avec les rendus vidéo EVR et VRM9 renderless, mais pire, il cohabite mal avec reclock !

Pour activer ce mode, accédez au menu « Sortie » des options de MPC-HC, sélectionner le rendu vidéo « VRM9 sans rendu » ou bien « EVR » puis cochez la case « Direct3D Plein écran » située sur la partie droite. La lecture de la vidéo s’affichera automatiquement en mode plein écran et ne pourra être stoppée qu’avec le raccourci clavier « CTRL-C ».

Malgré toutes ces contraintes, c’est un mode très efficace pour lutter contre le tearing. Peut-être devriez vous envisager de l’utiliser une fois votre système parfaitement configuré !

Vérifiez si vous avez du Tearing

MPC-HC possède aussi un « Tearing-test » disponible depuis le menu « Affichage » ou depuis le raccourci clavier « CTRL-T ». Il fait défiller sur l’écran en boucle 2 barres verticales. Si les barres restent parfaitement droite au bout d’un certain nombre de passages, c’est que vous n’avez pas de Tearing, sinon, pensez à activer l’option…

23. Les parties non abordées

Par manque de temps, nous n’avons pas parlé des espaces colorimétrique SD (BT.601) et HD (BT.709) ni du mapping des couleurs 16-235 vers 0-255. Nous mettrons certainement à jour ce guide en intégrant ces notions qui s’avèrent malgré tout assez complexes.

En espérant que vous compreniez déjà un peu mieux le fonctionnement de la lecture vidéo sur PC, nous vous souhaitons une bonne configuration (de bonnes prises de tête en perspective…) et tenons surtout à vous dire une chose : Bon film !

  •  
  •  
  •  
  •  

Your email address will not be published. Required fields are marked *