Modérateurs: Modération Forum Home-Cinéma, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: radian et 64 invités

Tout ce qui concerne les logiciels lié au HC sur ordinateur (PC, Mac, Linux...)
Règles du forum
Avant de poster, merci de prendre connaissance des règles du forum : à lire avant de poster

Synthèse : lecture fichiers HD avec Media Player Classic

Message » 15 Nov 2008 9:56

J'ai posté il a quelques temps des packs tous faits qui permettaient de lire de la HD en containers et de la SD DVD facilement et sans trop se prendre la tête.
Suite à de nombreuses interrogations des forumeurs et dans un souci d'explication, je vais tenter de vous narrer ce qui se passe dans ces sacrés packs et détailler les derniers réglages que j'applique (qui n'ont pas énormément changés depuis le début en fait).

Les packs sont disponibles ici en fin de premier post :
http://www.homecinema-fr.com/forum/view ... t=29897826" onclick="window.open(this.href);return false;

Mais ils sont moins actuels que tous les réglages qui vont être détaillés et qui vont vous permettre de faire votre propre config adaptée à votre bécane.

Tout ça pour lire de la HD en 720p et 1080p en container voire M2TS and co.

Avec cette qualité là SVP m'sieurs-dames :wink: :

Image


Image


Image


Image


Voici les liens vers les différentes têtes de chapitre, pour faciliter la navigation (merci à jat.gab) :


Partie 1 : Le software

Partie 2 : Installation

Partie 3 : Réglages décodeurs video/décodeurs audio/reclock

Partie 4 : Réglages FFDSHOW

Partie 5 : Réglages MPC-HC

Partie 6 : Pixel Shaders

Partie 7 : Correction de gamut

Partie 8 : Filtrage Avisynth

Partie 9 : Optimiser Reclock avec powerstrip

Partie 10 : Choix de configuration en fonction du CPU

Partie 11 : Lire un BD/HD-DVD avec MPC-HC


@+,
Xavier.

NB : JE VOUS RAPPELLE QUE POUR LES REGLAGES PROPRES A LA SD, KAZUYA ET TOUTE SON EQUIPE DE OUFS ONT DEBROUSSAILLE LE TERRAIN ICI DEPUIS DES LUNES.
=> http://www.homecinema-fr.com/forum/viewtopic.php?f=1196&t=29897826
Dernière édition par tobal le 25 Nov 2008 12:24, édité 6 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:56

Le software

Les logs utilisés se composent principalement de freeware, à une ou deux exceptions près et dans des cas bien précis.
Notez que quand j'évoque un soft payant, on trouve généralement son alternative freeware, mais moins adaptée au cas précis.

Player

=> A tout seigneur tout honneur, MPC-HC, projet développé par un membre du forum, Casimir666.
Constamment remis à jour, les dernières compils en date sont généralement disponibles ici :
http://www.xvidvideo.ru/content/category/1/1/2/
Il contient ses propres filtres audio et video et propose dans certains cas une prise en charge de l'accélération matérielle.

Les codecs:

* pour le H264

=> Remoulade/Divx 7=> très rapide.
la beta : http://www.megaupload.com/?d=X0SI5AW8
le final : http://www.divx.com/en/products/software/windows/divx

=> CoreAVC, considéré comme le décodeur H.264 software le plus rapide du marché, il est payant.
http://www.coreavc.com/index.php?option=com_content&task=category&sectionid=4&id=21&Itemid=59

=> ffdshow, l'incontournable, versions ICL10 conseillées avec les CPU récents, les versions MT sont les plus rapides avec des quads
http://sourceforge.net/project/showfiles.php?group_id=173941&package_id=199416

* pour l'audio

=> AC3filter
http://ac3filter.net/project/1/releases

=> ffdshow audio bien sûr...

Renderers

MPC-HC dispose de 2 renderers dits "exclusifs" qui permettent de lancer la video sur une couche direct3D avec comme avantage une grande stabilité.
De plus il prennent en charge l'exécution de shaders qui sont des opérations directX réalisées sur l'image directement par la carte graphique.
Il s'agit de VMR9 renderless et d'EVR custom.

=> EVR est le renderer officiel de vista, il est donc installé par défaut sur cet OS.
Toujours sous Vista, pour faire fonctionner ces modes spéciaux, il faut copier les fichiers directX9 présents dans XP dans le répertoire de MPC-HC
Ces fichiers se trouvent dans windows\system32 : d3dx9_24.dll à d3dx9_39.dll

=> VMR9 est lui dispo sur XP mais il est également possible d'installer EVR sur ce dernier.
http://www.badongo.com/file/12121420

Après choisir l'un ou l'autre de ces 2 renderers est une question de goût, perso c'est EVR sous XP.

Splitter/Reclock/Avisynth

=> Haali media splitter, le splitter par excellence... pour le meilleur et pour le pire.
Permet de séparer la video et l'audio du container pour la lecture.
HMS contient également son propre renderer, qui a quelques fans.
http://haali.cs.msu.ru/mkv/MatroskaSplitter.exe

=> Reclock, équivalent software d'un genlock, ce programme essaie tant bien que mal de synchroniser les horloges video et audio pour proposer une lecture fluide.
Indispensable mais capricieux. Freeware à la base (la version 1.7b4 est encore dispo), le projet a été repris par slysoft pour en faire un payant... ou pas.
http://forum.slysoft.com/showthread.php?t=19931

=> Avisynth, outil de post-process utilisé au départ (et toujours) pour l'encodage, il permet de faire du filtrage en temps réél à condition de disposer d'un cpu puissant.
http://downloads.sourceforge.net/avisynth2/Avisynth_257.exe?modtime=1168199840&big_mirror=0
Multithread (MT)
http://www.avisynth.org/tsp/MT_07.zip
Filtres perso :
http://badongo.com/file/11910629
miroir : http://www.zshare.net/download/54546439ef189142/

EDIT 22/01/09 : support multithread parfois foireux => une solution :

pbmtp a écrit:Salut,

J'ai aussi eut le même problème sous XP: crash dès que la dll avisynth modifiée était dans system32. Pour le résoudre, j'ai utilisé la version 2.6.0 alpha de AviSynth http://www.geocities.com/wilbertdijkhof ... 120806.exe qui contient déjà le support multithread et qui elle fonctionne (il faut toujours copier MT.dll dans le répertoire plugin de avisynth).



@+,
Xavier.
Dernière édition par tobal le 16 Nov 2008 23:25, édité 8 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:56

Installation

Là c'est simple :lol:.

Installer :

* CoreAVC si souhaité (remplace le décodage fait par ffdshow ou remoulade)
* Remoulade si souhaité (idem que précédent)
* FFDSHOW (peut décoder ou seulement post-processer)

* AC3 Filter pour l'AC3 et le DTS (si vous souhaitez vous passer du décodage inclus dans MPC-HC, c'est mon cas)

* MatroskaSplitter (dites oui quand il vous demande s'il doit se substituer au splitter interne de MPC-HC)

* EVR si souhaité...

* Reclock

* Avisynth (optionnel, cpu costaud demandé)
.Exécuter la version 2.5.7.
.Installer l'archive MT : remplacer avisynth.dll présent dans system32 par celui de l'archive et mettre MT.dll dans le dossier plugins du répertoire d'installation d'avisynth.
.Ecraser le répertoire d'avisynth dans program files avec le mien donné en lien.
Dernière édition par tobal le 22 Nov 2008 23:43, édité 5 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:56

Réglages décodeurs video/décodeurs audio/reclock


* Décodage video


Edit 09/03/09 Nouveau !
Les possesseurs de cartes Nvidia peuvent bénéficier également d'une accélération permanente sur le H.264/AVC par l'intermédiaire de coreAVC 1.9 et de CUDA, même en post-processant avec ffdshow derrière.
Notez que cette possibilité n'est accessible qu'à partir des forceware 182.06.
Voir plus bas pour la config.


NB : Les flux HD concernés sont par défaut encodés en YV12, mais les meilleurs résultats sont obtenus en convertissant le flux video en YUY2 en entrée de renderer, quand cette conversion est faite par ffdshow.

Il n'est pas nécessaire d'installer tous ces codecs, mais il est intéressant de voir lequel fonctionne le mieux sur sa machine.

Attention ! Ici il n'est question que de décodage software, basé sur la puissance brute du CPU du PC.

Il est enfin possible avec MPC-HC d'engager une accélération DXVA supportée par les cartes graphiques récentes, mais elle présente certaines limites (pas de postprocess ffdshow additionnel, ne fonctionne pas sur tous les profils d'encodage...).
Mais j'y reviendrai dans la section consacrée aux réglages de MPC-HC.

=> Remoulade

Image

=> CoreAVC

Image

Cocher 16-235 et yv12, le traitement de mapping 0-255 sera fait plus tard.
Cochez également "Prefer CUDA acceleration" si vous possédez une CG nvidia compatible et demandez l'affichage de l'icône dans le systray ("use tray icon").

Dorénavant si cuda est actif, en lecture de film, l'icone dans le tray est verte :
Image

Sinon elle reste bleue :
Image

=> FFdshow

Image

En choisissant le décodage effectué par ffdshow, certains utilisateurs ont pu constater un gros déséquilibre dans la charge des différents coeurs des CPU (dual core/quad).
Pour y remédier, la solution dans ce cas consiste à faire entrer le flux préalablement décodé par coreAVC ou Remoulade dans ffdshow.

Pour cela, il suffit dans windows de faire démarrer/exécuter et d'entrer la commande suivante :
Code: Tout sélectionner
rundll32 "C:\Program Files\ffdshow\ffdshow.ax",configureRaw


et de valider :

Image

Avec ce réglage, si on sélectionne ffdshow_raw dans les filtres directshow actifs, on récupèrera tout flux YV12 en provenance du décodeur sélectionné.
(Cf. "external filters" dans la partie dévolue à MPC-HC).


*Décodage audio

Considérons pour des raisons de simplicité que nous n'avons ici affaire qu'à un encodage multicanal AC3 5.1 (max 640kbs) ou DTS (max 1500kbs).
Les autres formats audio sont plutôt rares dans les containers et pourront être traités au coup par coup si besoin.

Les formats audio HD (true-hd, dts-hd MA...) présents sur les blu-ray/hd-dvd seront évoqués dans la dernière partie de cette aide ("comment lire un stream blu-ray/hd-dvd avec mpc-hc").

=> AC3filter

3 hypothèses se présentent :
- Le son est envoyé en SPDIF à l'ampli AV, c'est ce dernier qui prend en charge le décodage.
- Le son est décodé/traité (niveaux/délais/bass management) par AC3filter depuis le PC puis envoyé en analogique à l'ampli.
- Le son est décodé par AC3filter, reversé en kernel streaming par reclock et récupéré en asio via console, traité/filtré via VST et envoyé en analogique à l'ampli : je n'en parlerai pas ici, ceux qui savent faire ça n'ont a priori pas besoin de ce tutorial :mdr:.

+ en SPDIF

Image Image
Image


+ en analogique

Attention les réglages de niveaux, délais et BM sont à titre d'exemple, ne les reprenez pas à votre compte.
Calibrez plutôt votre install ! :lol:

Image
Image
Image
Image


* Reclock

Ah, reclock.
Quand on ne connait pas c'est le genre de programme qui fait peur, un peu comme girder ou ffdshow...
Quand on connaît, on regrette de ne pas l'avoir su avant, tout en pestant contre ce foutu soft. :roll:
Tout un poème et pourtant indispensable...

Ici reclock va être utilisé pour fluidifier au maximum la lecture des vidéos, éliminer le fameux judder qui donne la tremblotte à tous les travellings et autres, quitte à "tricher" un peu avec les fréquences.
Je ne parlerai ici que de fichiers HD encodés en 24p (i.e 23.976 i/s) mais il va de soi que ces principes sont applicables à toutes les fréquences (24,25,30 fps).

Le but de la manoeuvre est de faire coïncider le nombre d'images/seconde avec la fréquence de rafraichissement du diffuseur (exacte ou multiple), de manière à synchroniser les frames.
Par exemple pour du 24 i/s, 24hz/ 48/ 72 etc...

Encore une fois plusieurs situations se présentent :

- le diffuseur ne prend que le 50/60hz.

Dans ce cas, il faudra se placer en 50hz et accélerer le flux video en 25 i/s tout en engageant le timestretching, pour retrouver la tonalité normale (pitch) de la bande-son (contrer les effets de ce qu'on appelle le pal-speedup).
Ce traitement entraine une légère accélération du défilement au profit d'une fluidité retrouvée.

Si le son est envoyé en SPDIF il faudra dans ce cas précis, réencoder le son en AC3 à 48khz à la volée (ce que fait reclock) sous peine de perdre des paquets de données en liaison spdif, ce qui provoque des drops audio.

Image


Si le son est envoyé en analogique, pas besoin de réencoder, le réglage se présente comme suit :

Image


- le diffuseur prend du 24/48/72hz... ou vous souhaitez rester en 60hz, parce que ça vous plaît comme ça :wink:.

Reclock va dans cette hypothèse très légèrement accélerer le 23.976 en 24 i/s de manière à "matcher" au mieux le rafraichissement du diffuseur.

Pas de différence cette fois entre SPDIF et analogique :

Image

Dans tous ces cas de figure, reclock va resampler la flux audio avec plus ou moins de qualité.

Les algos de resample employés sont ce qui se fait de mieux à partir des réglages "good" jusqu'à "excellent" (best sinc), seul le rapport s/b change.
Il n'entrainent pas non plus de dégradations audibles majeures.

Personnellement, je déconseille très fortement de dépasser le resample en mode "very good", le réglage "excellent" occasionnant un surcroît de consommation CPU monstrueux sans différence qualitative palpable.

La suite des onglets :

Image

Privilégier direct draw à D3D sinon reclock va entrer en conflit avec le renderer video (D3D aussi) et empêcher l'affichage.

Reclock est également dans ses dernières versions capable de récupérer les timings de powerstrip( s'il est actif) ou de faire appel à la GDI (Graphics Device Interface : norme zindoze pour la représentation d'objets graphiques ainsi que pour leur transmission aux périphériques de sortie) pour les reconnaître.

Image

Une fois reclock lancé avec le player en lecture video, une petite icone dans le tray windows va se lancer.

Le code couleur est le suivant :
. jaune = aucun refresh n'est compatible, reclock adapte au mieux.
. clignotant rouge/vert = reclock a trouvé un refresh proche du flux video et cherche les meilleurs timings à adopter( dure plusieurs minutes)
. vert = reclock a les timings en mémoire pour ce refresh (ou alors il ne trouve carrément pas de flux video à synchroniser :mdr:).

x2-cliquer dessus et régler comme suit :
Image

Voila, reclock est configuré (enfin bon, normalement...).

@+,
Xavier.
Dernière édition par tobal le 22 Nov 2008 23:04, édité 2 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:57

Réglages FFDSHOW

Allez zou, ffdshow.

Voici des réglages destinés à optimiser le rendu video soit en masquant les défaut d'encodage (également connus sous le nom de "m.erde au chat") soit en accentuant un peu les contours etc...

NB1 : le fait d'utiliser ffdshow en post-process, empêche toute accélération matérielle du décodage par la carte-graphique, le CPU va donc se fader tout le boulot.
Sauf depuis peu bien sûr pour le H.264 avec coreAVC et CUDA pour les gentils possesseurs de Nvidia.

NB2 : l'usage de ces filtres est assez consommateur, à vous de voir si le CPU est suffisamment costaud pour supporter la charge et sur quels filtres.


* Deband

Image

Sous ce nom peu flatteur se dissimule un filtre issu du monde avisynth (gradfun2db) qui permet de lisser les dégradés (problème récurrent sur les films en images de synthèse mais pas que....) et de masquer les macroblocks résultant d'un encodage moyen (hé oui...)

Effet (clic droit, afficher image pour voir en taille réélle, ça se passe sur les arrière-plans) :

NO DEBAND
Image

DEBAND
Image


* Sharpen

Le sharpen est également faisable en pixel shaders (si on n'utilise pas ffdshow ou par choix), je détaillerai dans la section ad hoc.

Personnellement j'adore le rendu du unsharp mask ffdshow mais faiblement dosé.
A moduler en fonction de son diffuseur, de son piqué et surtout de ses goûts à soi, non mais.

Image

Effet :

NO SHARP
Image


SHARP
Image



* Decoder Options
Pour limiter les pertes de synchro, en cas de surcharge ou de seek, ffdshow recalera le son et la video tout seul en droppant les frames.
Obligatoire.

Image



* Output

Choisir YUY2, meilleur rendu que YV12 (upsampling de chroma).

Image


Différences YV12/YUY2 sur mire (zoom 4x):

YV12
Image

YUY2
Image



* Resize et Profils

Il est possible de mettre à l'échelle les fichiers (720p sur du 1080p ou inversement 1080p sur du 720p) en fonction de son diffuseur (HDReady ou HDReady 1080p donc) de 2 façons.
Comparez les résultats des deux méthodes par vous-même pour vous rendre compte du meilleur rendu et ce toujours en gardant en tête la puissance CPU disponible.

La carte graphique fait le boulot de redimensionnement en pixel shader avec un algo bicubic, ce point sera traité dans la partie consacrée à MPC-HC,
ou
ffdshow fait un resize software automatique en fonction des fichiers à lire, je vous détaille la méthode.

=> Diffuseur HDReady

Création de profils sous ffdshow.

. Premier profil 720p (le nom du profil est au choix, hein :mdr:), réglages pour un fichier 720p comme décrit précédemment (deband, sharp, yuy2...)

Image

Notez qu'il apparaît en gras (x2 cliquer dessus), c'est le profil qui sera chargé par défaut.
Sauver (save to file) dans le répertoire de MPC-HC.

. Second profil 1080p, qui doit reprendre les mêmes réglages que le précédent (new from selected et renommer) avec le resize en plus.

Image

Il faut préciser à ffdshow dans quel cas appliquer ce profil, cliquer sur "preset autoload conditions" et entrer les conditions suivantes :

Image

Concernant le réglages du resize, ici on va downscaler pour rentrer à la réso du diffuseur :

Image

Image

Retourner dans l'onglet des profils et sauver.

=> Diffuseur HDready 1080p

La démarche est la même que précédemment, sauf qu'il faut upscaler cad passer de la reso d'un fichier 720p à celle d'un 1080p.

Rapidement pour les plus manchots :

Image

Image


Enfin accessoirement pour les sous-titres embarqués dans les containers ou externes, j'utilise aussi ffdshow, mais là je vous laisse faire tout seul, tellement c'est simple.

@+,
Xavier.
Dernière édition par tobal le 24 Nov 2008 23:22, édité 5 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:57

Réglages MPC-HC

MPC-HC, nous y voilà.

Image

On va se la jouer rapide, tout est assez intuitif dans ce player.
Je m'attarderai sur les renderers et les modes D3D.

NB : J'évite a dessein d'évoquer les shaders, les réglages et leur mise en oeuvre dans MPC-HC seront abordés dans le chapitre adéquat.

En premier lieu, faites-vous une fleur et mettez à jour DX9.

Installation en ligne :

http://download.microsoft.com/download/1/7/1/1718ccc4-6315-4d8e-9543-8e28a4e18c4c/dxwebsetup.exe

ou la complète :

http://download.microsoft.com/download/0/d/3/0d307649-9967-49fa-ab27-61f11024e97f/directx_nov2008_redist.exe

http://fileforum.betanews.com/sendfile/1037189523/4/1226179792.d5ef4f7cedca6519621454d3f1ba00df7ba63084/directx_nov2008_redist.exe


* Réglages des touches

Image

Je vous livre en vrac quelques conseils sur les attributions de touches qui sont indispensables quand on passe en mode D3D.
En effet dans ce mode là, une fenêtre 3D plein écran est ouverte pour afficher la video, le bureau windows devient inaccessible, le clic droit ne fonctionne pas... et on ne peut pas sortir du player :mdr: (sauf en faisant alt+x par défaut mais faut le savoir).

Il est simplement possible via un OSD sommaire de "seeker" dans la video et d'augmenter/baisser le volume.
D'où l'intérêt de prévoir des raccourcis à l'avance.

Perso voici mes principales affectations (toutes ces touches sont ensuite affectées à ma telco, une ATI remote wonder) :

F pour enclencher/désactiver le mode D3D fullscreen
X pour quitter (éviter les combinaisons alt+chose, ça marche quand ça veut)
V next audio (permet de changer de piste audio dans un container qui en comporte plusieurs)
S next subtitle (itou pour les st)
W on/off sub
P activer/désactiver pixel shader
T tearing test (utile pour faire défiler une barre de tearing et voir si ça passe bien à l'écran)

Bref, j'imagine que tout le monde a saisi l'idée ? :wink:


* Fichier .ini

Par défaut MPC-HC stocke ses réglages dans la base de registre à cet endroit.
Code: Tout sélectionner
HKEY_CURRENT_USER\SOFTWARE\Gabest\Media Player Classic (Mod by Casimir666)


Malheureusement et aléatoirement, de temps à autre, il arrive que les réglages soient "bouffés" à la fermeture et c'est très irritant.

Pour contourner ce souci, une astuce consiste à demander au soft de stocker son setup dans un fichier *.ini dans son répertoire d'installation.

Image

Une fois les réglages définitifs effectués, il suffit de mettre le fichier mplayerc.ini en lecture seule pour être certain de retrouver sa config préféré à chaque démarrage du player.

Pratique également en cas de plusieurs install de MPC-HC (par exemple une stable en HD, une pour DVD et une autre pour faire des essais), chaque répertoire conserve son propre fichier *.ini dans ce cas et donc des réglages différents.


* Renderers

LA spécificité de MPC-HC avec les shaders :idee:.
Par défaut EVR custom et VMR9 ne sont pas en mode Direct3D, ils se comportent donc comme n'importe quel autre renderer (menu, clic droit etc...).
Le resizer interne concerne la mise à l'échelle de l'image.
Si vous appliquez un resize comme expliqué dans ffdshow, ce réglage sera inopérant.
Par contre si vous souhaitez que la CG fasse la mise à l'échelle, le réglage s'effectue ici (Bicubic A=-1.00 = plus net, Bicubic A=-0.60, moins net)

=> EVR custom

Image


=> VMR 9

Image

Alors mais quelle gueule ça a ce mode D3D ? ... bin heu... c'est sobre :mdr:.
Mais vous verrez :lol:.

Notez également que l'utilisation ou pas de reclock s'effectue dans cet écran de réglages.


* External filters

Cette page de réglages permet de choisir les filtres directshow que l'on souhaite utiliser (équivalent d'un graph) en court-circuitant les filtres internes de MPC-HC.
Mettez tous les filtres en prefer.

Par exemple, dans le cas présent :

.Remoulade décode => ffdshow raw récupère le flux video
.AC3 filter décode le son.

Image

Si on ne veut que CoreAVC :

Image

Etc, etc...

* Divers

N'oubliez pas de cocher l'OSD sinon en mode D3D vous n'aurez droit qu'à la video sans aucun affichage (et déjà que c'est minime).

Image


* Maintien du resize

Lancez une video (en mode non D3D, hein)

Si le resize (up ou down) est fait par ffsdshow, appliquer ce réglage :

Image

Si au contraire, c'est la carte graphique qui met à l'échelle, sélectionner :

Image

Notez les raccourcis L ou I, ça peut-être utile.

* Accélération DXVA

Enfin, MPC-HC a la particularité de gérer l'accélération matérielle sur les flux H.264 avec une AM DXVA.
Ca marche plus ou moins bien selon les cartes, ATI, NVIDIA, les profils d'encodage des video, l'âge du capitaine... Bref c'est souvent la fête du slip.
A essayer donc pour le fun ou si ça coince vraiment côté CPU.
Notez que les shaders restent actifs.

La marche à suivre :

- Assurez-vous qu'aucun filtre externe n'est actif en video

Image

- Pas de filtre vobsub pour la gestion des sous-titres

- VMR9 renderless obligatoire sous XP, EVR custom sous Vista

- Dans internal filters H264/AVC (DXVA) doit être coché

Image

Lancez la video et

Image

Choisissez MPC video décoder.
Si ça marche, le décodeur vous le précisera :

Image

Si vous contrôlez la conso CPU, elle est ridicule :

Image

Mais vous abandonnerez toute possibilité de filtrage ffdshow ou avisynth pour conserver cette accélération matérielle :wink:.

Xavier.
Dernière édition par tobal le 20 Nov 2008 1:20, édité 5 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:57

Pixel Shaders

Les pixel shaders permettent de opérations de filtrage sur l'image directement pris en charge par le GPU, codées en langage directX.

Avantages :
- Il permettent de remplacer un filtrage type ffdshow sans conso supplémentaire, et sans problème pour la carte graphique tant ces opérations sont "light".
- Ils sont également cumulables ce qui permet de mener des opérations complexes (un jeu comme crysis enchaine des combinaisons de +100 shaders).
- On peut voir les changements à la volée

Inconvénients :
- Il faut une carte graphique relativement récente, compatible pixel shaders 2.0 pour en bénéficier.
A partir des séries 2xxx chez ATI et séries 8xxx chez Nvidia, il ne devrait pas y avoir de problème.
- Les pixel shaders, c'est du code, il n'y a pas de GUI :mdr:, ça peut faire peur.
Mais pas d'inquiétude la plupart de ceux que je vais évoquer sont déjà compilés dans les versions récentes de MPC-HC.

NB :
- les shaders sous MPC-HC ne fonctionnent qu'avec VMR9 renderless ou EVR custom.
- à tout moment quand les shaders sont activés, il est possible de faire on/off sur une video avec "ctrl+p"




* Activer/Créer/ Editer / Cumuler les shaders sous MPC-HC


Lancez une video en mode non-d3d pour y avoir accès.
Pas la peine de laisser tourner la video, on peut se mettre en pause.

Les voilà :

Image

On peut à partir de ce menu, activer un seul shader (il suffit de le sélectionner), en cumuler plusieurs (combine), les éditer...

=> Editer un shader existant

Faites edit, et sélectionner un shader à modifier, le code apparaît.
Il suffit de modifier le code pour qu'il soit compilé à la volée (s'il est exact, sinon un message d'erreur apparaît en bas de la fenêtre d'édition).

Image

=> Créer un shader

La création d'un nouveau shader est peu plus fourbe, veillez à respecter l'ordre de ces étapes.

. Mettre le nom du nouveau shader et presser la touche return
. Laisser en PS2.0 (sauf indications contraires, param qui. agit sur le nombre de lignes de code dispo)
. Un code par défaut est généré :

Image

. Effacez-le et maintenant seulement entrez votre code, voilà votre nouveau shader est compilé :wink:, il apparaît dans la liste des shaders disponibles.

=> Cumuler les shaders

Selectionnez "combine" et ensuite c'est tout simple, il suffit de ramener les shaders souhaités dans la fenêtre avec "add".
Pas d'ordre particulier à respecter à part si vous utilisez le shader gamma, qui doit être en bout de liste.

Image


* Les shaders à utiliser

Maintenant que le principes sont acquis (j'espère) je vous livre les shaders utiles.

=> Shaders BT.709 et mapping 0-255

Que les pros ne m'en veuillent pas mais je vais être volontairement très simpliste sur la gestion des flux video, sinon ça va être trop compliqué à expliquer.
En gros ce qu'il faut savoir : les drivers des cartes graphiques pour coller aux specs video adoptent le comportement suivant dans le renderer.

SD => Espace colo BT.601 et mapping 16-235
HD => Espace colo BT.709 et mapping 0-255

Ce traitement est désactivé en sortant en RGB32_hq de ffdshow qui est censé être le meilleur traitement possible mais qui est également très consommateur (les drivers sont en qque sorte shuntés par la sortie rgb32 dans le renderer).
Nous avons vu que je proposais dans ce tuto une sortie en YUY2 (moins de conso) à qualité égale du RGB32 ou YV12 (un peu moins bonne) si votre PC ne suit pas.

Donc les drivers vont faire leur boulot.
Chez nvidia est considéré comme flux HD tout flux video dont la reso fait 1280px ou 720px.
Chez ATI est considéré comme flux HD tout flux video à partir de 720p cad 1280px et 720px.

Chez nvidia pas de problème mais les plus futés auront décelé le problème chez ATI en 720p.
Il existe en effet de nombreux encode 2.35 "croppés" dont les bandes cinemascope n'ont pas été encodées, du coup on se retrouve avec des réso tordues style 1280*544.
Et les ATI traitent ça comme un flux SD :-? (donc 16-235 et bt.601), mais les shaders sont là pour y remédier.

Donc uniquement pour les ATI, 2 petits shaders avec condition de hauteur :

Passage BT.601=>BT.709
Code: Tout sélectionner
sampler s0 : register(s0);
float4 p0 : register(c0);

// Hauteur de la frame
#define height (p0[1])

float4 main(float2 tex : TEXCOORD0) : COLOR
{
// c0 = pixel original
float4 c0=tex2D(s0,tex);

if(height >719 )
{
  return c0;
}

// r=c0[0], g=c0[1], b=c0[2]
// RGB [16,235] to YUV: 601 mode (128 is not added to Cb and Cr)
float y=0.299*c0[0] + 0.587*c0[1] + 0.114*c0[2];
float Cb=-0.172*c0[0] -0.339*c0[1] +0.511*c0[2];
float Cr=0.511*c0[0] -0.428*c0[1] -0.083*c0[2];

// YUV to RGB [16,235]: 709 mode (Cb and Cr are 128 less)
float r=y+1.540*Cr;
float g=y-0.459*Cr-0.183*Cb;
float b=y+1.816*Cb;

float4 ret=float4(r,g,b,0);

return ret;
}


Mapping 16-235 => 0-255
Code: Tout sélectionner
sampler s0 : register(s0);
float4 p0 : register(c0);
float4 p1 : register(c1);

#define width (p0[0])
#define height (p0[1])
#define counter (p0[2])
#define clock (p0[3])
#define one_over_width (p1[0])
#define one_over_height (p1[1])

#define PI acos(-1)

#define Const_1 (13/255.0)
#define Const_2 (255.0/221)

float4 main(float2 tex : TEXCOORD0) : COLOR
{
 if (height < 720)
   return( ( tex2D( s0, tex ) - Const_1 ) * Const_2 );
 else
   return tex2D( s0, tex );
}


Ce shader est réglé pour récupérer un peu de BTB dans l'image et "déboucher" un peu les noirs, en jouant avec ces valeurs (équivalent d'un 13-237 => 0-255).
Code: Tout sélectionner
#define Const_1 (13/255.0)
#define Const_2 (255.0/221)


Si vous souhaitez faire un vrai 16-235 => 0-255, remplacez par :
Code: Tout sélectionner
#define Const_1 (16.0/255.0)
#define Const_2 (255.0/219.0)


=> Sharpen

Si vous n'utilisez pas ffdshow ou unsharp mask, un sharpen efficace est possible en PS, il est dispo sous MPC-HC sous le nom de ... sharpen

Sharpen
Code: Tout sélectionner
sampler s0 : register(s0);
float4 p0 : register(c0);
float4 p1 : register(c1);
 
#define effect_width (1.6)
#define val0 (2.0)
#define val1 (-0.125)

#define width (p0[0])
#define height (p0[1])
 
float4 main(float2 tex : TEXCOORD0) : COLOR
{
   float dx = effect_width/width;
   float dy = effect_width/height;
 
   float4 c1 = tex2D(s0, tex + float2(-dx,-dy)) * val1;
   float4 c2 = tex2D(s0, tex + float2(0,-dy)) * val1;
   float4 c3 = tex2D(s0, tex + float2(-dx,0)) * val1;
   float4 c4 = tex2D(s0, tex + float2(dx,0)) * val1;
   float4 c5 = tex2D(s0, tex + float2(0,dy)) * val1;
   float4 c6 = tex2D(s0, tex + float2(dx,dy)) * val1;
   float4 c7 = tex2D(s0, tex + float2(-dx,+dy)) * val1;
   float4 c8 = tex2D(s0, tex + float2(+dx,-dy)) * val1;
   float4 c9 = tex2D(s0, tex) * val0;
   
   float4 c0 = (c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 +c9);
   
   return c0;
}


Il faut jouer ici avec la valeur effect_width pour varier l'intensité de l'effet.
Le réglage par défaut est bien trop fort : essayez 0.2 ou 0.3.

=> Chroma Upsampling

Ce shader (présent par défaut dans les dernières versions de MPC-HC) corrige une pixellisation excessive du rouge en YV12 (ou YUY2 voir plus bas)

Chroma upsampling YV12
Code: Tout sélectionner
/*
YV12 chroma upsampling fixer
by Kurt Bernhard 'Leak' Pruenner

Use with YV12 output if the half-resolution chroma
gets upsampled in hardware by doubling the values
instead of interpolating between them.

(i.e. if you're getting blocky red edges on dark
backgrounds...)
*/

sampler s0 : register(s0);
float4 p0 : register(c0);
float4 p1 : register(c1);

#define width (p0[0])
#define height (p0[1])

float4 getPixel(float2 tex, float dx, float dy)
{
   tex.x+=dx;
   tex.y+=dy;
   
   return tex2D(s0, tex);
}

float4 rgb2yuv(float4 rgb)
{
   float4x4 coeffs=
      {
          0.299, 0.587, 0.114, 0.000,
         -0.147,-0.289, 0.436, 0.000,
          0.615,-0.515,-0.100, 0.000,
          0.000, 0.000, 0.000, 0.000
      };
      
   return mul(coeffs,rgb);
}

float4 yuv2rgb(float4 yuv)
{
   float4x4 coeffs=
      {
          1.000, 0.000, 1.140, 0.000,
          1.000,-0.395,-0.581, 0.000,
          1.000, 2.032, 0.000, 0.000,
          0.000, 0.000, 0.000, 0.000
      };
   
   return mul(coeffs,yuv);
}

float4 main(float2 tex : TEXCOORD0) : COLOR
{
   float dx=1/width;
   float dy=1/height;
   
   float4 yuv00=rgb2yuv(getPixel(tex,-dx,-dy));
   float4 yuv01=rgb2yuv(getPixel(tex,-dx,  0));
   float4 yuv02=rgb2yuv(getPixel(tex,-dx, dy));
   float4 yuv10=rgb2yuv(getPixel(tex,  0,-dy));
   float4 yuv11=rgb2yuv(getPixel(tex,  0,  0));
   float4 yuv12=rgb2yuv(getPixel(tex,  0, dy));
   float4 yuv20=rgb2yuv(getPixel(tex, dx,-dy));
   float4 yuv21=rgb2yuv(getPixel(tex, dx,  0));
   float4 yuv22=rgb2yuv(getPixel(tex, dx, dy));

   float4 yuv=
      (yuv00*1+yuv01*2+yuv02*1+
       yuv10*2+yuv11*4+yuv12*2+
       yuv20*1+yuv21*2+yuv22*1)/16;
   
   yuv.r=yuv11.r;

   return yuv2rgb(yuv);
}


Attention, si vous sortez en YUY2, le shader n'est pas le même et il faut le compiler (absent par défaut).

Chroma Upsampling YUY2
Code: Tout sélectionner
sampler s0 : register(s0);
float4 p0 : register(c0);
float4 p1 : register(c1);

#define width (p0[0])
#define height (p0[1])

float4 getPixel(float2 tex, float dx)
{
   tex.x+=dx;
   
   return tex2D(s0, tex);
}

float4 rgb2yuv(float4 rgb)
{
   float4x4 coeffs=
      {
          0.299, 0.587, 0.114, 0.000,
         -0.147,-0.289, 0.436, 0.000,
          0.615,-0.515,-0.100, 0.000,
          0.000, 0.000, 0.000, 0.000
      };
      
   return mul(coeffs,rgb);
}

float4 yuv2rgb(float4 yuv)
{
   float4x4 coeffs=
      {
          1.000, 0.000, 1.140, 0.000,
          1.000,-0.395,-0.581, 0.000,
          1.000, 2.032, 0.000, 0.000,
          0.000, 0.000, 0.000, 0.000
      };
   
   return mul(coeffs,yuv);
}

float4 main(float2 tex : TEXCOORD0) : COLOR
{
   float dx=1/width;
   
   float4 yuv0=rgb2yuv(getPixel(tex,-dx));
   float4 yuv1=rgb2yuv(getPixel(tex,  0));
   float4 yuv2=rgb2yuv(getPixel(tex, dx));

   float4 yuv=(yuv0*1+yuv1*2+yuv2*1)/4;
   
   yuv.r=yuv1.r;

   return yuv2rgb(yuv);
}


Effet du shader sur le bug de chroma:

YUY2 no_shader (chroma bug)
Image

RGB32_HQ (pas de défaut de chroma nativement)
Image

YUY2_shader_chroma
Image



=> Gamma

Perso j'aime bien rajouter un petit coup de pep's à l'image avec ce shader, à mettre en fin de "combine".
A vous de voir.

Gamma
Code: Tout sélectionner
sampler s0 : register(s0);
float4 p0 : register(c0);
float4 p1 : register(c1);

#define width (p0[0])
#define height (p0[1])
#define counter (p0[2])
#define clock (p0[3])
#define one_over_width (p1[0])
#define one_over_height (p1[1])

// facteur de niveau
#define gain 1.02
// niveau 0
#define offset 0
// onegamma = 1/gamma (1=valeur neutre)
#define onegamma 1./1.03
float4 main(float2 tex : TEXCOORD0) : COLOR
{
   float4 c0=tex2D(s0,tex);
   //correction des niveaux et gamma
//   return c0;
   return pow(gain*max(c0-offset,0),onegamma);
}


Les valeurs à modifier sont là, 1.0 étant la valeur neutre.

Code: Tout sélectionner
// facteur de niveau
#define gain 1.02
// niveau 0
#define offset 0
// onegamma = 1/gamma (1=valeur neutre)
#define onegamma 1./1.03


@+,
Xavier.
Dernière édition par tobal le 28 Nov 2008 19:24, édité 5 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:57

CORRECTION DE GAMUT

NB : si vous souhaitez avoir des infos sur la manière dont fonctionnent les réglages couleurs, leur influence, la conversion des espaces colo, etc... voici de la doc (in ingliche sorry).

http://www.poynton.com/PDFs/ColorFAQ.pdf

http://www.poynton.com/PDFs/coloureq.pdf


Ce chapitre est destiné à ceux qui calibrent leur diffuseur, qu'il s'agisse d'un VP ou autre.
Brièvement ce qu'il faut savoir c'est que les pros utilisent plusieurs normes de gamut pour la video.
Aux USA, les films utilisent un espace colo dit SMPTE-C, en europe en EBU...

Pour bien comprendre, je repompe honteusement le gif posté par C.Cherel :

Image

Vous pouvez constater qu'en fonction des normes de gamut, le triangle CIE n'est pas du tout le même.

Concernant le choix du gamut :
"la moins mauvaise stratégie consiste à sélectionner le gamut EBU pour une production européenne et le gamut SMPTE-C pour une production américaine ou asiatique quelle que soit la zone du DVD ou du BluRay." (citation de MLill)


Je vous invite d'ailleurs à parcourir le thread qui traite de ce problème et des VP qui permettent une calib ad hoc :
http://www.homecinema-fr.com/forum/viewtopic.php?f=84&t=29888578&st=0&sk=t&sd=a

Et toujours notre leeperry national présent dans le coup (il a fait le tour des forums avec ce truc pour trouver une solution et fait ch... tous les codeurs, jusqu'à obtenir gain de cause :mdr:).

Mais revenons à nos boutons.
Concernant la HD, une fois que le diffuseur est calibré au mieux de ses possibilités en sRGB, comment "matcher" le gamut de la video diffusée ?
C'est là que les petits génies de AVS et Doom9 interviennent.

http://www.avsforum.com/avs-vb/showthread.php?t=912720

YesGrey a mis au point un fichier .xls qui, à l'aide des coordonnées x,y sRGB permet de générer un shader pour coller à la norme de gamut.

A récupérer ici si vous n'avez pas de compte AVS :
http://www.badongo.com/file/12155211

Alors, comment ça marche ? :mdr:

Un exemple en détail, avec la calib' de mon ancien VP, un AW-15.

Voici le diagramme CIE obtenu en RGB.

Image

Pour ceux qui ne connaissent pas : le triangle en gris clair est le triangle CIE idéal, celui en blanc est celui du VP, voyez comme il est aux fraises sur le vert (et le jaune) :roll:.

On récupère les coordonnées de chacune des primaires et on les reporte dans la moulinette, ici pour un gamut smpte-c.

Image


Le shader est généré dans le tableau : il n'y a plus qu'à le copier et à le créér dans MPC-HC (vous vous en souvenez ? Interro dans 2 minutes :mdr:)
On peut en faire un pour le gamut EBU, un pour le gamut HDTV ... et les appliquer quand il faut.

Attention, le code généré n'est pas utilisable en l'état pour cause de problème de "," au lieu de "." après les décimales (i.e dans la matrice 4x4 ce n'est pas 0,942611143071864 mais 0.942611143071864 qu'il faut inscrire).

Le code du shader doit être compilé ainsi :

Code: Tout sélectionner
sampler s0 : register(s0);
float4 p0 : register(c0);

static float4x4 r2r =
{
0.942611143071864,-0.0080608762551173,0.0654497331832544,0,
0.0247351359332918,0.975048867751808,0.000215996314904491,0,
0.0150122600076486,0.0933459517699223,0.891641788222431,0,
0, 0, 0, 0
};

float4 main(float2 tex : TEXCOORD0) : COLOR
{
    float4 c0 = tex2D(s0, tex);
    c0 = pow(c0, 1/0.45);
    c0 = mul(r2r, c0);
    c0 = saturate(c0);
    c0 = pow(c0, 0.45);

    return c0;
}


Et concrètement ça donne quoi ? :idee:

Rien ne vaut un petit avant/après (en gardant en tête que ce ne sont des corrections apportées QUE pour l'appareil calibré).

Sans correction de couleur
Image

Avec correction du shader, la couleur de peau est moins rougeaude (sur le VP en tout cas :wink:)
Image

Bref un petit shader bien utile, à condition que le mecs au mastering respectent les normes d'encodage.
Parce que parfois même chez les pros, ça s'emmêle sec les pinceaux : mais quelle est la vraie couleur de flash mc queen ? Hmmm ? :lol:

@+,
Xavier.
Dernière édition par tobal le 20 Nov 2008 1:30, édité 4 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:57

Filtrage Avisynth

Avisynth est un outil de filtrage très puissant destinés à l'encodage.
Avec la capacité actuelle des CPU modernes, il est possible de l'utiliser en temps réel.
Sachez néanmoins que sur un flux HD, la sur-consommation CPU qu'il entraine est assez importante voire parfois carrément trop (tout dépend de la complexité des filtres en fait...).

Une fois installés avisynth et MT (qui permet la répartition des opérations sur les cpu multi-coeurs), écrasez le dossier dans program files par celui contenu dans l'archive mise en lien. Il s'agit de mon dossier perso qui contient déjà beaucoup de fichiers prêts à l'emploi.

Ffdshow embarque un module qui permet d'appeler des scripts avisynth.
Il suffit de mettre le code adéquat et d'appliquer pour faire appel au programme externe et filtrer.

Image

Je serai assez succint sur les call possibles et imaginables pour la simple et bonne raison qu'il s'agit d'un domaine avec un langage complexe, des scripts abondants avec des fonctions précises etc...

Si vous êtes intéressés pour en savoir plus :

=> commencez par le media wiki
http://avisynth.org/mediawiki/Main_Page

=> les principaux coders sont sur doom9, dont un génie du nom de didée
http://forum.doom9.org/forumdisplay.php?s=&forumid=33

=> chez nous aussi ça a discuté ferme avant de retomber un peu dans l'oubli
http://www.homecinema-fr.com/forum/viewtopic.php?f=1201&t=29764728&hilit=avisynth

Je vous livre tout de même un ou deux calls, dont la mise au point (c'est de l'orfèvrerie) revient à leeperry :wink:.

=> LimitedSharpenFaster ou LSF : il s'agit d'un sharpen "intelligent" qui s'adapte à la nature de l'image et arrive en partie à minimiser le motion blur des travellings ou des mouvements de caméra.

Le call

Code: Tout sélectionner
MT("LimitedSharpenFaster(ss_x=1.0,ss_y=1.0,strength=40)",2)


Vous pouvez jouer sur l'intensité (strength) en ne forçant pas trop.
Et sur le supersampling (1.0 ou 1.1) pour améliorer la qualité, en sachant que plus il est haut plus la conso est forte.
Si vous avez un quad, remplacez en fin de call la valeur "2" par "4" : elle correspond au nombre de threads lancés simultanément par le script.

=> GrainFactory

Script qui permet de simuler du grain ciné (la première chose qui fout le camp) sur certains encodages moyens et de redonner ainsi du relief à l'image avec une sensation "péloche".
Le grain est de taille différente sur les parties sombres et lumineuses de l'image avec des phases de transition.

Code: Tout sélectionner
MT("GrainFactory_MT2(3,5,100,100,1.0,0.7,0,0,0,96,0)",2)


Vous pouvez aller farfouiller dans le script GrainFactory_MT2.avsi (éditer avec le bloc-notes) qui se trouve dans le répertoire d'avisynth dans le dossier "plugins".
Les différents paramètres et la syntaxe sont expliqués à l'intérieur.

Un dernier pour la route ?
OK pour voir si votre CPU en a sous la semelle... :lol:

Essayez ça en sortie rgb32 de ffdshow et en désactivant les shaders (notez que "add ffdshow video source" est ici décoché) :

Image

Code: Tout sélectionner
SetMTMode(2,4)
ffdshow_source()
LimitedSharpenFaster(ss_x=1.0,ss_y=1.0,strength=40)
SmoothLevels(preset="tv2pc",limiter=0,Mfactor=1,RGmode=19,useGF=false)
ConvertToRGB32(matrix="PC.709")
ddcc(chr_i=3,gam_i=5,opt=1)
Distributor()


Chez moi ça passe (sur du 720p) avec un q9450@3.4 ghz :mdr:.
Et vous ?

@+,
Xavier.
Dernière édition par tobal le 20 Nov 2008 1:16, édité 3 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:58

Optimiser Reclock avec powerstrip

NB: les cartes ATI sont très clairement avantagées sur ce point du fait de leur parfaite compatibilité avec powerstrip, qui permet d'ajuster les fréquence de refraichissement très précisément (essais fructueux réalisés sur les séries 2xxx, 3xxx et 4850).
Les cartes Nvidia sont carrément à la ramasse dans ce domaine : powerstrip les supporte très mal (par la faute de nvidia qui refuse de communiquer sa documentation) et ce n'est pas le pseudo pstrip light contenu dans le panneau de config des forceware qui va arranger les choses :-? (essai avec une 9600gt, 8800gt, 8600gts...)
C'est une des deux raisons (avec la qualité > d'image à mon goût) qui me fait systématiquement choisir une carte ATI quand je monte un PCHC.
Mais rien ne vous empêche d'essayer avec votre geforce, hein...



Ce point est assez méconnu et rarement abordé.
Il consiste à en quelque sorte à "pré-mâcher" le travail de reclock de façon à être au plus proche de la fréquence recherchée.
On évite ainsi des effets de bord et une éventuelle dérive sur la fréquence qui peuvent nuire à la fluidité après un temps de lecture et occasionner des saccades.

Si vous décidez de vous lancer en lisant le tuto, prévoyez un peu de temps devant vous, non pas que ce soit très compliqué mais plutôt assez long (et un peu roots).

Mais tout d'abord allez télécharger ce fabuleux outil qu'est powerstrip :
http://www.entechtaiwan.com/util/ps.shtm

Si vous ne connaissez pas, il s'agit d'un soft payant (30$) mais utilisable en version d'essai aussi longtemps que souhaité (au prix d'un nag screen assez irritant).
Personnellement je l'ai acheté depuis belle lurette, le développeur Rik Wang faisant un boulot exceptionnel.
Entre multiples autres choses, powerstrip permet de définir très précisément les fréquences et résolutions et c'est ici ce qui nous intéresse :wink:.

Le but de la manoeuvre ici est de modifier la fréquence du diff finement pour que reclock "voie" un nombre entier : 24.000, 48.000, 50.000 hz etc...
En effet une fois reclock actif, le soft va prendre la main sur l'ensemble des horloges A/V et tenter de les synchroniser avec la fréquence envoyée au diffuseur.

Je vous montre avec mes réglages perso.
Prêts ? C'est parti.

* Etape 1 = contrôle de la fréquence

Ne lancez pas encore powerstrip.

Ouvrez la config reclock et cliquez sur "clean up video clock timing database".
Lancez une video avec la fréquence et la reso désirées (choisies dans la panneau des drivers de la CG).

Laissez reclock se stabiliser avec l'icone verte dans le tray (ca peut prendre quelques minutes).
Voila ce que reclock "voit" chez moi sans correction avec une HD4850 :

Image

C'est déjà très précis par défaut, j'ai eu des ati avec des fréquences bien plus funky, par exemple 48.016 pour du 48hz et autres.
C'est assez variable d'un modèle de carte à l'autre, j'ai souvent remarqué que les modèles fanless étaient un peu moins précis (pll qui chauffe plus p-ê ?).

* Etape 2 = ajustement simple de la fréquence

Lancez maintenant powerstrip.
Clic droit dans le tray > display profiles > configure

Image

Sélectionnez la réso de votre diffuseur si ce n'est pas la bonne.
Et faites "advanced timing options".

Oohhhh :lol: 0o

Image

Bien. La réso est bonne : 1920*1080 et le refresh recherché 24.000hz est OK.
Si pstrip affiche un nombre qui n'est pas rond (i.e 24,003 /ex), corrigez-le a la mano et "apply".
Retournez dans "advanced timing options" pour voir si c'est OK.

Validez, pstrip reste actif en fond de tâche.

Maintenant répétez l'étape 1.

Contrôle reclock :

Image

C'est mieux, on a gagné 0.001 mais pas encore parfait :wink:.

* Etape 3 = ajustement avancé de la fréquence

Hop on retourne dans pstrip.

Et on ajoute 0.001 à la fréquence : en effet, si vous suivez, reclock voyait 23.999.

Image

Validez et puis revenez dans les timings pour contrôler si la fréquence est bien celle choisie (ie 24.001).
C'est bon ? Ok.
Pas bon ? Dans ce cas, jouez avec le réglage de back porch (+1 ou -1, ça devrait aller) et retapez la fréquence recherchée.
Répétez l'opération jusqu'à tomber pile-poile.

Et rebelote, dix de der, étape 1.

K00l, reclock voit la bonne fréquence :mdr:.
Elle est pas belle la vie ? (oui je sais, il m'en faut peu :roll:)

* Etape 3 = Conservez ses précieux timings

Bien, là vous êtes très content, les timings sont ajustés.
S'agirait de pas les perdre désormais.
Retournez dans pstrip dans les timings et faites "copy 2 clipboard" (la tite icone juste à droite de "cancel")

Ouvrez le bloc-notes et collez dedans les infos, ça donne un truc comme ça :


PowerStrip timing parameters:
1920x1080=1920,88,44,148,1080,4,5,35,59350,528

Generic timing details for 1920x1080:
HFP=88 HSW=44 HBP=148 kHz=27 VFP=4 VSW=5 VBP=35 Hz=24

VESA detailed timing:
PClk=59,35 H.Active=1920 H.Blank=280 H.Offset=72 HSW=44 V.Active=1080 V.Blank=44 V.Offset=4 VSW=5

Linux modeline parameters:
"1920x1080" 59,350 1920 2008 2052 2200 1080 1084 1089 1124 +hsync +vsync


L'info nécessaire est celle-ci :
Code: Tout sélectionner
1920,88,44,148,1080,4,5,35,59350,528


Faites un raccourci powerstrip sur le bureau, clic droit, propriétés :

Image

et après la cible entrez :
Code: Tout sélectionner
 /T:1920,88,44,148,1080,4,5,35,59350,528
=> notez l'espace avant la barre de fractionnement.

Si vos timings concernent un deuxième écran (comme moi), le code sera celui-ci :
Code: Tout sélectionner
 /target:2 /T:1920,88,44,148,1080,4,5,35,59350,528


Validez et vala un beau raccourci avec fréquence et réso personnalisées :wink:

@+,
Xavier.
Dernière édition par tobal le 24 Nov 2008 23:41, édité 5 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:58

Choix de configuration en fonction du CPU

Règle générale de base : veiller à ne pas dépasser 60%-65% de charge CPU.
Au-delà, MPC-HC peine à maintenir sur la durée un framerate stable :wink:

Lancez le fichier le plus lourd dont vous disposez en mode non-D3D et contrôlez le taux de charge (CTRL+ALT+SUPPR) et la répartition sur les différents core, s'il y a lieu, pour voir jusqu'où vous pouvez pousser la bécane.

Sachez que la conso affichée baisse significativement en mode D3D (de l'ordre de 7-10%).

Les setups sont donnés à titre indicatifs bien-sûr, les combinaisons sont multiples.


* Setup light = puissance CPU limitée

Dans ce cas la configuration la moins consommatrice sera :

- core AVC en YV12
ou
- idéalement, si elle fonctionne bien, l'accélération DXVA de MPC-HC

- tous les traitements en postprocess faits en shaders

- reclock en mode good (éviter en dessous)

- VMR9/EVR custom en D3D

Si vous êtes vraiment court, désactivez un maximum de services superflus, optimisez la mémoire cache et passez les processus liés à la lecture en priorité haute : google est votre ami pour toutes ces optimisations.


* Setup moyen = puissance CPU correcte

A vue de nez, je dirais à partir de 2.8 => 3.4 ghz sur un dual-core intel pour commencer à être à l'aise sur des fichiers 1080p.

- coreAVC/Remoulade + ffdshow raw sortie YUY2
ou
- ffdshow yuy2

-> unsharp mask, OK
-> deband = à voir, pas mal consommateur notamment en 1080p

- shaders

- reclock en mode good voire very good

- VMR9/EVR custom en D3D

* Setup optimal = puissance CPU disponible importante

Pour les C2D E6/7/8xxx (>3.4ghz) ou les quads overclockés ou pas (>3.0ghz).
Là on peut commencer à se faire plaisir sans trop se poser de questions.

- ffdshow yuy2

-> unsharp mask = OK
-> deband = OK
-> avisynth = OK (enfin en fonction du call, hein...)

- shaders

- reclock en very good

- VMR9/EVR custom en D3D

Et il reste de la puissance pour ceux qui font du retraitement du son en plus :wink:.

A titre d'information, j'ai eu successivement un e4300 stock/overclocké à 2.8 puis 3.3ghz, un e8400 overclocké d'emblée à 3.8ghz et actuellement un q9450 overclocké à 3.4ghz.

Sur un "gros" fichier 1080p en .mkv en 1.85 avec les réglages du "setup optimal", ma consommation cpu actuelle est

- de 25% sans avisynth
et
- de l'ordre de 45% environ avec avisynth grain factory activé .

@+,
Xavier.
Dernière édition par tobal le 25 Nov 2008 0:28, édité 7 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:58

Lire un BD/HD-DVD avec MPC-HC

MAJ 22/01/09

* C'est R00ts

MPC-HC a fait un grand pas vers la solution intégrée en lecture BD avec décodage graphique matériel et décodage audio HD.
Les dernières versions en date sont très concluantes (en tout cas avec une ati 4850) et du coup MPC prend une bonne tête d'avance sur les autres players gratos (ou même payants)!

Pour résumer, actuellement pour la lecture BD :

- il est possible de lire les formats HD-audio avec ffdshow (les dernières compil, sauf DTS-HD MA qui sort en coreDTS)
ou
- d'utiliser les codecs audio intégrés à MPC-HC

- Les codecs video sont disponibles sous MPC en accélération dxva avec plus ou moins de réussite selon l'OS (XP/Vista) et la carte graphique
ou
- le VC1 est lisible avec le codec de WMP11 ou avec sonic cinemaster video (sans accélération matérielle)
- les autres formats (AVC/MPEG2) en accélération matérielle avec le codec de powerdvd8 ou en software avec coreAVC etc...

Pour le moment :

- les menus ne sont pas accessibles, il faut lancer via le stream *.m2ts sur les BD, *.evo sur les HD-DVD.
- il y a de temps à autre un bug par-ci, qui oblige à trifouiller dans les filtres et leurs mérites.
- Vista est bien plus efficace que XP pour ce type de lecture et notamment pour la gestion de l'accélération matérielle.



* La liste des courses :

- Les dernières versions de MPC-HC (qui prend en charge le splitter/les sous-titres/la recherche du stream !!!): http://www.xvidvideo.ru/content/category/1/1/2/

- ffdshow récent (mini 12/08)

- Drivers UDF pour explorer sereinement le contenu des galettes HD si le besoin s'en fait sentir : http://rs324.rapidshare.com/files/94191186/XPDrv5301NEN.rar

- Anydvd-hd pour farfouiller dans le disque : http://www.slysoft.com/fr/anydvdhd.html


Video
- Codecs internes MPC-HC
ou
- VC1 : installer windows media player 11 (recommandé) ou Sonic CinePlayer HD-DVD Decoder v4.3.0 (là je peux rien pour vous, dém...-vous :lol:)
- AVC : cyberlink H.264/AVC decoder (celui de powerDVD 8 ultra) pour avoir l'accélération matérielle ou coreAVC pour faire le décodage en software
- MPEG2 : cyberlink Video SP decoder ou Nvidia Purevideo (pour l'AM) sinon dscaler...

Audio
- Codecs internes MPC-HC
ou
- FFshow audio avec les codecs audioHD : les dernières versions ICL10
http://sourceforge.net/project/showfile ... _id=199416


* S'parti


=> configuration ffdshow audio

Image

Activez ces codecs, décochez "dynamic range compression" quand c'est possible.

Bon là ça devrait aller :
- volume pour les gains
- delay pour les délais
- LFE crossover pour le bass management

Le mixer, ffdsa gère jusqu'au 7.1, on peut faire mumuse avec la matrice.

Image



Et la sortie, ffshow ne downsample le 24/96 en 16/48 pas comme powerdvd ou tmt.

Image


=> ou si on préfère MPC-HC pour tout faire


Pour les sous-titres

Image



Le renderer : VMR9 obligatoire pour avoir le DXVA sous XP et EVR Custom sous Vista (les dernières versions de mpc hc mentionnent que haali renderer supporte le dxva sous XP, pas réussi pour ma part).

En VMR9 n'oubliez pas de cocher "VMR mixer mode" pour eviter un bug sur les résolutions non-mod16.

Image



Les codecs AV : tout peut-être désormais décodé en interne par MPC. Validez tout cela :

Image



X2 cliquez sur ac3 ou dts et réglez comme suit (mettez en 16,24 ou 32 bits selon les specs de votre carte-son):

Image



Ensuite, définissez votre config-son :

Image



Veillez à ce que rien n'apparaisse en filtres externes (ou alors bloquez les filtres). Laissez tout de même ffdshow audio si c'est lui qui décode.

Image


Lecture : lancez Anydvd-HD au préalable et laissez-le scanner le disque.

MPC-HC est désormais capable d'aller explorer tout seul le BD pour lancer le film (généralement le fichier m2ts le plus gros est celui qui contient le film, c'est ce qu'il va chercher).

Image



Indiquez quel est le lecteur qui contient la galette :

Image



Les bandes-sons et sous-titres sont accessibles ici :

Image



Résultats ici avec cars en BD (clic droit>filters) :

Image Image


Le mode D3D, reclock, les shaders (yv12 chroma upsampling, sharpen, color correction...) restent bien évidemment possibles et même fortement recommandés :wink:.

Hoooo c'est bô :D :wink: !

Image

@+,
Xavier.
Dernière édition par tobal le 01 Déc 2008 19:38, édité 6 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 15 Nov 2008 9:58

Voila, fin provisoire de ce tuto, qui devrait s'enrichir au fur et à mesure des découvertes des passionnés du forum multimedia (inch'allah).
J'espère que cela vous aura plu et que ces quelques conseils vous permettront d'y voir un peu plus clair dans tout ce foutoir, un peu rebutant au premier abord (et au second aussi :lol:).

Il vous appartient maintenant de mettre en oeuvre la config de votre choix.

:wink:

@+,
Tobal.
Dernière édition par tobal le 25 Nov 2008 23:43, édité 1 fois.
tobal
 
Messages: 6118
Inscription Forum: 13 Sep 2001 2:00
Localisation: Niort
  • offline

Message » 17 Nov 2008 16:50

tobal a écrit:Le software

Après choisir l'un ou l'autre de ces 2 renderers est une question de goût, perso c'est EVR sous XP.

@+,
Xavier.


Moi aussi je suis sous XP et j'ai des soucis avec le mode Direct3D sous VMR9 (arrêt d'image toutes les trentes secondes + saccades!). Je n'ai pas ce pb avec EVR mais tu ne trouves pas qu'il y a des petits pb de couleurs sous ce mode?
Mais tu dois les corriger avec ffdshow alors que pour moi cela est impossible puisque j'utilise l'accélération matériel ou alors il faut qeu je trouveles filtres pixel shader qui vont bien.


Sinon super idée que ce topic qui devrait nous aider à mieux appréhender tout ça. Merci :)
La Reinette
 
Messages: 565
Inscription Forum: 09 Avr 2007 18:14
Localisation: La Montagne
  • offline

Message » 18 Nov 2008 12:49

La Reinette a écrit:Moi aussi j'ai une question suite à ta mise à jour : tu passes comment de la resol 50Hz au 24Hz voire au 60Hz (ce que je disais que je faisais grâce au profil du CCC)? via powerstrip parc eque comme le dit Leepery pstrip est plus stable que le CCC?
Si oui ne vaut il pas mieux forcer le 23.976 par exemple par powerstrip plutot que de dire à Reclock de tout mettre correctement en 24Hz? La question est peut être naive ...

tuto dispo ici depuis pas mal de temps pour avoir nickel la freq que tu veux dans reclock :
http://forums.entechtaiwan.net/viewtopi ... highlight=

deja teste ton diffuseur, savoir si il rebascule pas les 23.976/24Hz en 60Hz en interne....ca arrive tres souvent sur les ecrans plats.
leeperry
 
Messages: 7025
Inscription Forum: 06 Jan 2007 19:44
  • offline


Retourner vers Logiciel PC Home-cinéma

 
  • Articles en relation
    Dernier message