Citation:
En particulier le truc qui me plaît pas avec Floyd-Steinberg, c'est dans les zones ou l'image est "presque blanche" ou "presque noire" et ou on va accumuler l'erreur petit à petit et faire un pixel de temps en temps. On se retrouve donc avec des points assez visiblement alignés
Ca c'est le
worm effect. C'est lié à deux choses:
- un parcours uniquement de gauche à droite alors que pour une bonne diffusion d'erreur ll faut faire gauche à droite puis droite à gauche (serpentine disent les anglais)
- le fait de ne pas utiliser les coefficients variables de Viktor Ostromoukhov qui sont précisément conçus pour éliminer cet effet.
Citation:
L'autre intérêt que j'y vois, spécifiquement pour les Thomson, ce serait de parcourir les pixels dans un ordre qui pourrait prendre en compte les contraintes du mode vidéo. Je ne pense pas que le Floyd-Steinberg classique marche très bien si il diffuse l'erreur principalement sur le pixel juste à droite du pixel en cours, et donc probablement dans le même bloc de 8 pixels. Inévitablement cette erreur va se retrouver sur le groupe de 8 pixels suivants, alors que probablement il faudrait la diffuser plutôt verticalement sur la ligne d'en-dessous.
Bah tu peux balayer autrement que de haut en bas, et faire colonne par colonne pour pousser le plus gros coef (40% de l'erreur) au groupe de 8 pixels au dessus ou au dessous.
Cela dit, le plus gros coef est plus petit que la somme des autres lors du balayage classique, donc en fait l'erreur est quand même essentiellement (60%) poussée "en dessous". Du coup les contraintes thomsons sont encaissées sans trop de soucis vu que l'essentiel des erreurs est poussé (en étant plus diffusée certes) vers le bas. J'avais même, au tout début de ce fil, sur des images depuis disparues utilisé des coefficients exclusivement "en dessous" (genre 0.25, 0.5, 0.25). Ca crée des artefacts très "thomson" (à savoir des alternances de lignes horiz). C'est un style comme on dit, mais je ne l'ai pas retenu (les coefs variables de Ostro rendent bien mieux)
La lecture des discussion de la wiki au
sujet du dither par
Sam Hocevar est instructive. Il y explique pourquoi il a viré cet algo de la wiki et je suis assez d'accord d'avec ce qu'il dit:
Sam_Hocevar a écrit:
I removed mention of Riemersma (Hilbert-Peano) (...). Riemersma dithering is either a joke or a disgrace for dithering algorithm designers. It gives pathetic results, performs irregularly depending on the image dimensions, offers no demonstrated performance gain and breaks cache efficiency.
Bon après j'imagine que ca dépend des images et qu'il faut peut-être expérimenter sur celles qu'on veut convertir.