# MPEG2Dec

## Résumé

auteurs: Dividee et d'autres
version: 1.10
catégorie: Plugins (source) décodeurs MPEG
téléchargement: http://www.avisynth.org/warpenterprises/ (vous pouvez trouver les sources sur la page de Dividee)
outils nécessaires:

## Description

Ce filtre renvoie une sortie dans les formats de couleurs RGB ou YUY2
C'est un décodeur MPEG-2 qui est capable de lire n'importe quel flux MPEG-2 lu par DVD2AVI 1.76

## Filtres

Une liste de tout les filtres inclus dans cette version spéciale de mpeg2dec.dll:

### TemporalSmoother

`TemporalSmoother` (clip, int "strength", int "radius")

C'est un port du filtre TemporalSmoother de VirtualDub. Il travaille en RGB32 & YUY2.
Dans le fichier d'aide de VirtualDub, on trouve:

> Ce filtre est un réducteur de bruit adaptatif, travaillant sur l'axe temporel; il est particulièrement efficace quand l'image ne bouge pas trop. Augmentez la force (strength) du filtre pour augmenter la réduction de bruit, et diminuez la pour réduire les artefacts de tâches ou d'images fantômes. Il est recommandé d'utiliser ce filtre conjointement avec un filtre de réduction de bruit spatial (basé sur la surface) pour obtenir un meilleur résultat. Toutes les images à l'intérieure de la plage définie par le rayon (radius) sont examinées. Le rayon minimum est 1, le maximum est 7. Des valeurs importantes entraîneront un traitement plus lent. La valeur par défaut est 3, qui est la valeur utilisée dans VirtualDub. La valeur par défaut de la force est 2.

Notez que contrairement à son équivalent de VirtualDub, ce filtre n'a pas de latence. Cela permet d'être sûr que les images nécessaires pour son travail sont dans son réservoir (buffer). En conséquence, l'accès aléatoire dans le clip est lent, surtout avec une grande valeur de rayon.

Exemple:

    # Les effets de ce filtre en RGB et en YUV ne sont pas à 100% équivalents, surtout quand la force (strenght) est grande:
    # Observons ces différences

    cYUY2 = ConvertToRGB(TemporalSmoother(ConvertToYUY2,10))
    cRGB = TemporalSmoother(10)
    Subtract(cYUY2, cRGB)

### SelectRangeEvery

`SelectRangeEvery` (clip, int every, int length, int "offset")

Sélectionne length images toute les every images, en commençant après un décalage (offset) initial.

SelectRangeEvery(every, length, offset) est équivalent à SelectRangeEvery(Trim(offset, 0), every, length)

### BlendFields

`BlendFields` (clip)

Désentrelace un clip en mélangeant les champs ensemble. Cela correspond au mode de mélange du filtre de désentrelacement de VirtualDub porté sous AviSynth. Il travail en RGB ou en YUV. Si AviSynth indique un clip basé sur des champs, Weave est appliqué pour que la sortie soit basée sur des images complètes. Si AviSynth se trompe, utilisez AssumeFrameBased juste avant.

### MotionMask

`MotionMask` (clip, int mode, int treshold, bool "denoise", bool "fast")

Crée un clip possédant deux couleurs identifiant les partie mobiles des images. L'algorithme provient de la version 2.5 du filtre Smart Deinterlacer pour VirtualDub écrit par Donald Graft. mode est un entier qui peut avoir 3 valeurs: 1 pour les différences d'images uniquement, 2 pour les différences de champs uniquement, et 3 pour les différences d'images et de champs. treshold est un entier qui correspond à la sensibilité du filtre. Un treshold bas rend le filtre plus sensible au mouvement, en donc au bruit. denoise (booléen, par défaut=true) active un filtrage additionnel pour réduire les erreurs de détection de mouvement dûs au bruit. Il permet ainsi d'utiliser des thresholds plus petits. fast (booléen, par défaut=false) permet au filtre d'être plus rapide en travaillant sur deux pixels en même temps mais en étant moins précis.

Pour une description plus précise des paramètres, veuillez vous référer au fichier d'aide inclut avec le filtre Smart Deinterlacer pour VirtualDub (en anglais).

Actuellement `MotionMask` supporte seulement le format YUY2. Notez également que le mode couleur du filtre de VirtualDub n'est pas supporté (pour l'instant).

### MaskedDeinterlace

`MaskedDeinterlace` (clip, clip mask, bool blend)

`MaskedDeinterlace` est conçu pour travailler avec `MotionMask`. Il désentrelace le clip en fonction des valeurs du paramètre mask. Où mask est un clip renvoyé par `MotionMask`. blend (booléen, par défaut=false) indique si le désentrelacement est fait en éliminant la moitié des lignes (un champ) et les interpoles (quand blend est false), ou s'il mélange les lignes adjacentes (quand blend est true (vrai)).

mask et clip doivent avoir la même largeur, la même hauteur, et le même format de pixels.

### SmartDeinterlace

`SmartDeinterlace` (clip, clip mode, int treshold, int "denoise", bool "blend", bool "fast"`)`

C'est un raccourci de:

> MaskedDeinterlace (clip, MotionMask(clip, mode, treshold, denoise, fast), blend)

Cela montre vraiment que ces filtres sont seulement un portage du filtre Smart Deinterlacer de Donald Graft.

### MaskedMix

`MaskedMix` (clip1, clip2, clip mask)

Renvoie un clip où chaque pixel provient soit de clip1 ou de clip2 en se basant sur le paramètre mask de chaque pixel. Les trois clips doivent avoir la même largeur, la même hauteur et le même format de pixels. Cela vous permet d'utiliser d'autres méthodes de désentrelacement que celle proposées avec `MaskedDeinterlace`.

Par exemple, le script suivant peut être utilisé pour reproduire l'option "Show motion areas only" (montre les surfaces en mouvement uniquement) du filtre Smart Deinterlacer de VirtualDub:

    mask = MotionMask(3, 10, true)
    deint = BlendFields
    tmp = Blackness.Levels(0,1,255,127,127)
    MaskedMix(tmp, deint, mask)

`$English date: 2004/08/13 21:57:25 $
French translation: 2005/10/31 JasonFly macpaille@users.sourceforge.net`