Aide - Recherche - Membres - Calendrier
Version complète : SoftSharpen 5.6 - Script vidéo AviSynth
Forum Ripp-it After Me > Les ressources > Filtres avisynth....
leon1789
Je vous propose cette fonction SoftSharpen dont le but est de traiter l'image en jouant sur l'aspect flou-net (soft-sharp) en fonction du mouvement des différentes scènes de la vidéo. L'objectif essentiel de ce script est de garder toute la compressibilité du film dans son ensemble : les objets statiques sont "sharpés", tandis que ceux en mouvement sont "blurés" en fonction de la vitesse de déplacement... Lorsqu'on veut concerver la compressibilité d'un film lent, il faut limiter le niveau de "sharp". En revanche, sur les films rapides et de bonne qualité originale, le "sharp" peut être régler assez fort, à condition d'en faire autant avec le "blur" (c'est du donnant-donnant wink.gif ).

Résultat avec les réglages par défaut (sur un film "Star Wars like") :
-- Les objets statiques sont "sharpés" de manière comparable à celle du couple ASharp().AWarpSharp(), mais sans l'aliasing qui les suit !
-- La compressibilité globale obtenue pour un film rapide est comparable à celle de HybridFupp(). Le temps de traitement aussi...

Des images :
http://forum.ripp-it.com/index.php?s=&...st&p=252012
http://forum.ripp-it.com/index.php?s=&...st&p=253296
http://forum.ripp-it.com/index.php?s=&...st&p=255116
http://forum.ripp-it.com/index.php?s=&...st&p=256304
http://forum.ripp-it.com/index.php?s=&...st&p=262938
http://forum.ripp-it.com/index.php?s=&...st&p=265874


SoftSharpen( clip Video , int "Flou" , int "Net" , ...) :
-- l'argument Flou, un entier compris entre 0 et 30, permet de controler le niveau de floutage des objets en mouvement. Plus le nombre est élevé, plus le traitement est fort.
-- l'argument Net, un entier compris entre 0 et 30, permet de controler le niveau de netteté des objets figés. Plus le nombre est élevé, plus le traitement est fort.


** Pour la valeur de "Flou", c'est comme pour un débruiteur classique, du style FluxSmooth ou Convolution3D : plus la valeur est élevée, plus le traitement est fort.

Cela dit, personnellement, je pense mettre Flou=30 à peu près à tous les coups.

Mais des gens plus sensibles mettront entre 10 et 20. En contre partie, une valeur réduite de "Flou" handicapera (je me comprends) une valeur élevée de "Net"...

** En ce qui concerne le paramètre "Net", là, je pense qu'il est difficile de deviner une bonne valeur à vue d'oeil (en mon sens : concervation de la comprésibilité de la vidéo). Cette valeur est liée à la quantité de mouvement du film, et comme je disais au-dessus, plus la vidéo est rapide, plus la valeur de Net peut être élevée.

La fonction s'utilise ainsi :

video.SoftSharpen
video.SoftSharpen(30,20)
video.SoftSharpen(Larg=1024, Haut=432, Fast=true)
video.SoftSharpen(Preset="film")
video.EstimSoftSharpen(Larg=1024, Haut=432)


Le script en question :
leon1789
Si une âme généreuse pouvait prendre "5 minutes" wink.gif pour tester cette fonction et me dire ce qu'elle en pense...
Merci yahoo1.gif
leon1789
Voici une image qui permet de comprendre le fonctionnement de SoftSharpen

Dans la scène,
-- la planète est fixe : son piqué est donc renforcée par le filtre (ici, on a besoin de plus bits pour coder). Comme la planète est fixe, l' "amélioration" se voit lors du passage du film.
-- le vaisseau au premier plan est en mouvement : on voit également l'effet du filtre (ici, on a besoin de moins de bits pour coder). Comme le vaisseau est mobile, la "déterioration" ne se voit pas lors du passage du film...
Et dans l'ensemble, le nombre de bits pour encoder l'image est le même, donc pas de perte de qualité collatérale, contrairement aux filtres de sharp habituels !
micjul
Oui cela a l'air pas mal tiens ..
J'avais pas vu ton message, des que je rentre du boulot, je vais tester ton script
leon1789
merci micjul aga.gif
stp, tu pourras me dire avec quel genre de vidéo tu as testé, et avec quelles valeurs de Flou et Net ? si c'est bon ou pas ? des améliorations à apporter etc etc... aga.gif

-------> Je viens de mettre à jour le script.
leon1789
(leon1789 @ mardi 28 août 2007 à 18:38) *

-------> Je viens de mettre à jour le script.

idem !
micjul
Je testerais les 2 ... mais ce week-end, en ce moment je suis d'astreinte, et j'ai pas trop le temps de faire des tests .. je pensais hier soir, mais j'ai été appelé ...
leon1789
oki micjul
Je viens d'y inclure un bref "howto" pour fixer un peu les idées.
leon1789
j'ai encore modifié le script ... plus je me dis qu'il faut que j'arrête, plus je le modifie...
FAUT QUE J'ARRÊTE !!!!!!!!!!
micjul
Lol je viens de lancer un encodage aga.gif ... là je m'absente un petit peu (la messe yahoo.gif ) ... et je regarderais au résultat en rentrant aga.gif
micjul
Bon, j'avais perdu le sujet aga.gif ....

j'ai testé sur 2 films ... enfin 2 morceaux ... (star wars le 1er aga.gif et Ran ....
là je suis sur mon portable, mais quand j'aurais acces au PC , je mettrais un screen de la même scene avec un encodage standart et avec ton script Leon .. c'est vrai qu'il y a une différence .. enfin tout du moins sur star wars ..
En mettant les 2 valeurs à moitié, on voit pas grand chose, mais des que je mets 20 (mais pas plus sinon les avantages sont annilés par les inconvénients) ..effectivement c'est plus agréable à regarder ...
Même si l'arrière plan est plus flouté, l'objet en mouvement est bien plus net et l'oeil se concentre dessus en fait ..

Je pense que c'est un excellent script, à varier selon le film à encoder ... et il ne faut pas hésiter à faire des essais avec ..

leon1789
Merci micjul d'avoir pris du temps aga.gif

(micjul @ mercredi 05 septembre 2007 à 00:12) *


là je suis sur mon portable, mais quand j'aurais acces au PC , je mettrais un screen de la même scene avec un encodage standart et avec ton script Leon ..

Le problème des images, c'est qu'elle arrête la vidéo (forcément !), alors que l'effet est rendu sur la vidéo à vitesse réelle... pas facile d'en rendre compte sur le web.

(micjul @ mercredi 05 septembre 2007 à 00:12) *

c'est vrai qu'il y a une différence .. enfin tout du moins sur star wars ..

oui, je me demandais justement si certains films particulièrement propres, avec des lignes nettes, etc, ne seraient une cible favorite.
Par exemple, à mon avis, SoftSharpen ne va pas du tout avec une animation.

(micjul @ mercredi 05 septembre 2007 à 00:12) *

En mettant les 2 valeurs à moitié, on voit pas grand chose, mais des que je mets 20 (mais pas plus sinon les avantages sont annilés par les inconvénients) ..

ok, je prends note. Peut-être que j'ai trop tendance à monter la valeur de "Flou" (jusqu'à 30...) et du coup, le flou apparaît trop.

(micjul @ mercredi 05 septembre 2007 à 00:12) *

effectivement c'est plus agréable à regarder ...

yahoo.gif
(micjul @ mercredi 05 septembre 2007 à 00:12) *

Même si l'arrière plan est plus flouté, l'objet en mouvement est bien plus net et l'oeil se concentre dessus en fait ..

disons aussi qu'il ne faut pas que l'objet bouge trop, car alors il est flouté lui-aussi aga.gif

(micjul @ mercredi 05 septembre 2007 à 00:12) *

Je pense que c'est un excellent script, à varier selon le film à encoder ... et il ne faut pas hésiter à faire des essais avec ..

conclusion provisoire : je continue à essayer de l'améliorer car cela pourrait devenir pas mal aga.gif (enfin, j'espère ! ...mais de toute manière, ça m'amuse, alors...)
leon1789
Je viens de mettre à jour le script en :
-- réajustant les constantes gérant le Flou et le Net
-- réduisant d'un poil sa lenteur d'exécution
-- en ajoutant une fonction EstimSoftSharpen permettant d'obtenir une indication des valeurs Flou et Net adaptées à la vidéo (visant essentiellement la conservation de la compressibilité de la vidéo). Evidemment, les "bonnes" valeurs restent au goût de chacun...

Cette fonction EstimSoftSharpen donne un résultat raisonnable lorsqu'on fait un passage préliminaire sur la vidéo.
micjul
Je vais tester celui là avec les mêmes morceaux ...
leon1789
ok aga.gif

Pour les valeurs de Flou et Net, tu verras ce que tu en penses, mais personnellement, en fonction des films (sw, anim, genre vhs, etc. ) je mets :
-- Flou entre 18 et 24 (donc 20 a l'air d'être une valeur moyenne correcte : je l'ai mise comme valeur par défaut)
-- Net entre 2 et 26... là, ça dépend vraiment du mouvement de la vidéo : 2 pour une anime qui ne bouge pas (et alors SoftSharpen n'a aucun intérêt pour cette vidéo), 26 pour une vhs qui tremble un peu tout le temps... (j'ai laissé 20 comme valeur par défaut)
leon1789
J'ai mis à jour le script (c'est une habitude) : j'ai surtout fait en sorte que le script soit moins lent. Pour cela, j'ai carrément supprimer certaines lignes et modifier en conséquence celles qui restent pour garder la qualité visuelle du script.

(micjul @ mercredi 05 septembre 2007 à 00:12) *
c'est vrai qu'il y a une différence .. enfin tout du moins sur star wars ..

effectivement, je crois qu'en fonction de la luminosité (est-ce vraiment ça ?) du film source, l'effet de sharp est plus ou moins visible : le sharp est faible sur des structures trop lumineuses pour éviter de l'aliasing, et d'être trop coûteux niveau bitrate.
micjul
Alors je viens de tester celui juste avant celui là (je suis toujours en retard aga.gif ) et je le préfère à celui d'avant pour une bonne raison ..
Il y a moins de contraste entre le sujet qui bouge et qui et net et le fond plus flouté ..
Sur le 1er essayé, en exagérant pour te faire comprendre ce que je ressentai , cela faisait un peu comme si l'on faisait défilé un décor derrière l'objet en premier plan et en mouvement ... un peu comme dans les vieux films ... mais j'exagere le rendu, c'est juste pour que tu imagines aga.gif ..
La le dernier (enfin l'avnt dernier aga.gif ) .. me convient mieux ..c'est quasi parfait (ben oui faut que tu bosses encore qu'est ce que tu crois aga.gif )
leon1789
Merci micjul, tu me dis que le script évolue dans le bon sens yahoo.gif

... si ton analyse est "post mortem", c'est de ma faute : avec un script fixé pour plusieurs jours, ça irait peut-être mieux, mais je peux pas m'arrêter... Cela dit, le script n'évolue pas à vitesse grand V, d'un extrême à l'autre, et les défauts sont toujours bons à être signaler.

Que le Net soit net, c'est voulu (faut pas oublier que c'est un script sharpen). Parfois, il peut être un peu trop prononcé, mais je le limite pour éviter l'aliasing et une perte de compressibilité. Donc, normalement, le Net reste raisonnable. Tellement raisonnable que sur certains films, il ne se voit pas... bof.gif

En rechanche, apparemment, le Flou arrivait trop vite, il était trop présent : au début, je floutais fort pour faire une hausse forte de netteté. Sur certaines scènes, le résultat pouvait être "dérangeant" car le passage entre net et flou était trop rapide. Maintenant, j'essaie de temporiser le passage entre ce qui est sharpé et ce qui est flouté.
leon1789
...heu... mise à jour du script... (désolé)

Cette fois, j'ai :
-- corrigé un bug de la version précédente (vu l'erreur, je ne sais même pas pourquoi la version précédente fonctionnait !!!)
-- réduit encore un poil la lenteur du script (une instruction vidéo a sauté)
-- et surtout ajouté des presets : "film", "low motion", "fast motion", "anim", "vhs"
micjul
Mais je vais revenir t'embeter yahoo.gif ... ne crois pas t'en sortir comme çà .. an_coucou.gif
leon1789
Même si SoftSharpen n'est pas fait initialement pour encoder des animes, on peut toujours l'essayer... Personnellement, je n'aime pas trop les "animes", et je n'en ai pas chez moi... juste un dessin animé très connu (mais d'assez mauvaise qualité vidéo).

Voici une image comparant ShoftSharpen(preset="anim") et HybridFupp(preset="anim1"). Encore une fois, une seule petite image ne veut pas dire grand chose : il faut regarder la vidéo pour ce faire une idée...



leon1789
nouvelle version du script permettant diverse optimisation avec l'utilisation de librairies (filtres avisynth) plus récentes...
leon1789
J'ai utilisé SoftSharpen sur un certain nombre de films... Normalement tout va bien (je trouve), mais là je tombe sur un hic !

Ce week-end, j'ai testé SoftSharpen sur le film "le dahlia noir" : sans parler du sénario, mais uniquement de la vidéo, c'est un film très spécial car :
-- il a peu de couleurs (images "jaunies" ... style des années 1940 oblige)
-- des dégradés de couleurs sombres sur de grandes surfaces
-- vidéo très statique ! (comparable à un dessin animé... enfin presque...)
-- s'encode avec une très bonne qualité à faible bitrate.

Sur ce genre de film, impossible de mettre un effet de sharp sans hausse significative du bitrate (Net=10 pas davantage...)
De plus, les grands dégradés de couleurs sont détériorés si la valeur Flou est trop importante (Flou=15 pas davantage). Je ne comprends pas encore pourquoi, mais c'est un fait.

Moralité, si on veut utiliser SoftSharpen sur ce film, mieux vaut lancer SoftSharpen(Flou=15, Net=10). Mais avec ce genre de paramétrage, on n'obtient aucun effet réel... mise à part une perte de temps à l'encodage...
Davcop
(leon1789 @ lundi 22 octobre 2007 à 09:17) *

Moralité, si on veut utiliser SoftSharpen sur ce film, mieux vaut lancer SoftSharpen(Flou=15, Net=10). Mais avec ce genre de paramétrage, on n'obtient aucun effet réel... mise à part une perte de temps à l'encodage...


C'est embêtant effectivement good.gif
Donc pour toi c'est du à cette teinte spéciale de l'image et au fait qu'elle soit très sombre?
leon1789
(Davcop @ lundi 22 octobre 2007 à 09:35) *

Donc pour toi c'est du à cette teinte spéciale de l'image et au fait qu'elle soit très sombre?

oui, j'ai l'impression que la combinaison "image sombre + grand dégradé + SoftSharpen" n'est pas au point bof.gif
Voilà en images (il faut regarder ça dans le noir complet pour observer les vagues sur le mur...) :


Du coté gauche, SoftSharpen est vraiment mieux qu'un simple BilinearResize... mais au milieu, aie aie aie... et une compression divx accentue le défaut......... re aie aie aie...
Davcop
Oui du côté gauche c'est bien moins flou qu'avec BilinearResize par contre pour le mur c'est vrai qu'on perçoit des vagues...
sykes2477
Pour tester le fameux script avec un anime, j'ai choisi une scène qui se passe surtout sous un éclairage limité, avec 2 passages: Le premier est statique, et puis paf, arrive l'autre ou on saute et court dans tous les sens, et voila le résultat.
Soyez indulgents, c'est la première fois que je fais ce genre de tests:

Scène 01:

Image originale:


Video.SoftSharpen(preset="anim"):


Video.SoftSharpen(preset="anim",fast=false):


Video.SoftSharpen(preset="anim",fast=false,net=20):


Scène 02:

Image originale:


Video.SoftSharpen(preset="anim"):


Video.SoftSharpen(preset="anim",fast=false):


Video.SoftSharpen(preset="anim",fast=false,net=20):

Voila!!

On remarque une différence, mais franchement, je ne saurais vous dire quelle image est mieux. Peut-être, est ce dû à mes yeux qui ne sont pas aussi experts que les votres, ou parce que la résolution de la vidéo ne permet pas de juger. A vous de voir.
Sinon, pour le moment, je n'arrive pas à voir une grosse différence pour les scènes qui se passent sous une bonne lumière... Ca fera peut être le sujet d'un autre post.

P.S: Si, si, les images sont de Samurai Champloo d'ou est extrait mon avatar!!! yahoo1.gif
leon1789
Effectivement, les différences ne sont pas significatives (sur mon écran 17" cathodique).

En ce qui concerne Video.SoftSharpen(preset="anim") et Video.SoftSharpen(preset="anim",fast=false), c'est normal qu'il n'y est pas de différence sur tes images car la différence se fait sur les images de changement de scène essentiellement et dans d'autres circonstances un peu spéciales. (bien sûr, le traitement avec fast=true est plus rapide...)

En revanche, je suis étonné que Video.SoftSharpen(preset="anim",fast=false,net=20) n'apporte pas un petit regain de netteté. Et avec Net=30 ??
sykes2477
Voili voilou:


Scène 01:
Video.SoftSharpen(preset="anim",fast=false,net=30):



Scène 02:
Video.SoftSharpen(preset="anim",fast=false,net=30):


Sur la première image on ne remarque rien, en tout cas pas grand chose (c'est normal donc!!), par contre sur la 2éme, là ou il y'a de l'action, il y'a un mieux.

P.S: Nous avons le même type d'écrans Léon!!! yahoo1.gif
leon1789
Je parlais d'une faible différence entre Video.SoftSharpen(preset="anim") et Video.SoftSharpen(preset="anim",fast=false) aga.gif

Non, c'est pas normal qu'on ne voit pas la différence avec l'original. Normalement, avec Net=30, on doit voir une hausse de netteté notable, surtout en scène statique ! Un peu comme ceci :
net = 0 :
net = 30 :

Là, je ne comprends pas pourquoi on ne voit rien sur ton exemple. bof.gif
Est-ce que tu peux déposer un tout petit bout de ta vidéo (un bout de vidéo de 25 images suffira) sur le forum pour que je travaille dessus ?


leon1789
Sykes,
il doit y avoir un problème quelque part (script, config, etc.), surtout si l'image est "fixe", parce que je viens de faire des essais. J'obtiens par exemple

image originale :

Video.SoftSharpen(preset="anim",net=25) :

Cette image est bien différente de l'originale : l'oeil et les lunettes sont plus nets, mais au niveau des sous-titres, il y a bcp d'artefacts !

idem avec la seconde image :
originale :

Video.SoftSharpen(preset="anim",net=25) :
sykes2477
Oui, tu as raison!!
Je vais re-vérifier mes réencodages et te rendre la réponse.
leon1789
Cela dit, la valeur net=25 m'a l'air trop importante, et j'ai peur que les sous-titres posent problème pour le traitement de l'image. Tu peux aussi jouer sur Debr (valeur inférieur à 30). Bon courage ! aga.gif
leon1789
Merci Rol, je peux attacher des fichiers maintenant !!! yahoo1.gif

Mise à jour SoftSharpen 5.3
leon1789
Mise à jour 5.4 :
suite à une discussion sur unité vidéo http://www.unite-video.com/phpbb/viewtopic...p;postorder=asc
jabali m'a donné un moyen d'améliorer sensiblement le script : le résultat est maintenant moins bruité et plus net... globalement gain en compressibilité et sans perte au niveau temps de calcul ! yahoo1.gif
Voir le résultat ici http://www.unite-video.com/phpbb/viewtopic.php?p=86733#86733
leon1789
Suite au coup du double resize de Manao (sur unité vidéo) pour flouter une vidéo, j'ai modifié le script.
http://www.unite-video.com/phpbb/viewtopic...3772976bb#86786
Comme le flou produit par le double resize est très prononcé, un réajustement des constantes a été obligatoire...
Résultat : gain en vitesse, gain en compressibilité (transformé en gain de netteté).


(leon1789 @ lundi 22 octobre 2007 à 08:57) *

oui, j'ai l'impression que la combinaison "image sombre + grand dégradé + SoftSharpen" n'est pas au point bof.gif
Voilà en images (il faut regarder ça dans le noir complet pour observer les vagues sur le mur...) :


Du coté gauche, SoftSharpen est vraiment mieux qu'un simple BilinearResize... mais au milieu, aie aie aie... et une compression divx accentue le défaut......... re aie aie aie...

Ce problème de banding (les "vagues", c'est un effet de banding) a été résolu, justement par la modification du script au niveau du flou... yahoo1.gif
micjul
Et encore, je pense que l'image que tu nous donne, n'est pas fidele à 100 % .. cela doit être mieux ..
leon1789
L'image que je donne juste au-dessus est une ancienne image (du mois d'octobre 2007) aga.gif Je ne vous donne pas la nouvelle image car, en fait, j'ai fait des tests sur d'autres vidéos...

Allez, je ne résiste pas à vous donner encore une petite image (tirée du Dernier Sykes) :
On voit bien le flou sur le cheval en mouvement et le net sur le samouraï fixe.

Sur une belle vidéo source, au niveau compressibilité et netteté, SoftSharpen (plus rapide en traitement) est comparable à FFT3DFilter(sharpen=0.7) ou à un enchaînement HybriddFupp.LimitedSharpenFaster.

Je me suis aperçu aussi, qu'en fonction des librairies dll utilisées (le script teste les versions installées et s'en accommode), les résultats peuvent différer assez visiblement...
leon1789
Allez, encore un coup de SoftSharpen dans le rôle du traitement de la vidéo familliale...
L'original :
Cliquez pour voir le fichier-joint

Et après un coup de SoftSharpen( debr = 30 ) :
Cliquez pour voir le fichier-joint

YannBresil
vends le code à google street! il floute les visages!
leon1789
ha oui, tu as raison, je n'avais pas remarqué aga.gif
leon1789
mise à jour 5.6
C'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez SoftSharpen 5.6 - Script vidéo AviSynth.
Invision Power Board © 2001-2008 Invision Power Services, Inc.