TL; DR
Lors de l'échantillonnage: utilisez le filtrage Lanczos ou Spline.
Lors de l'échantillonnage: utilisez le filtrage Bicubic ou Lanczos.
Ceux-ci sont basés sur des documents que j'ai lus au fil des ans et sur ce que j'ai vu utilisé dans l'industrie. Les recommandations peuvent varier en fonction du type de contenu et du domaine d'application.
En quoi est-ce important?
On pourrait faire valoir que les filtres de redimensionnement importent peu lorsque vous réduisez une vidéo. Plus important encore, ils ont un impact sur la qualité lors de la mise à l'échelle, car vous devez générer des données là où il n'y en a pas en premier lieu.
Ces filtres n'ont tous qu'un impact marginal sur la taille du fichier. Vous ne devez donc pas vous inquiéter des différences énormes là-bas.
Le fait est, comme toujours lors de l'encodage vidéo, que le résultat dépend fortement du matériel source. Vous ne pouvez pas toujours prédire le résultat, mais voyez simplement ce qui vous convient le mieux.
Différents algorithmes
À titre d'exemple, voici l' interpolation bicubique vs bilinéaire :
Vous voyez que l'interpolation bicubique donne des bords plus lisses? C'est une déclaration très générale… mais vous pouvez trouver un aperçu des algorithmes de mise à l'échelle des images ici .
L'interpolation bilinéaire utilise un environnement 2x2 d'un pixel et prend ensuite la moyenne de ces pixels pour interpoler la nouvelle valeur. Ce n'est pas le meilleur algorithme, mais plutôt rapide.
L'interpolation bicubique utilise un environnement 4x4 d'un pixel, pesant les pixels les plus intérieurs plus haut, puis prend la moyenne pour interpoler la nouvelle valeur. C'est - en ce qui me concerne - le plus populaire.
La moyenne de zone utilise un mappage des pixels source et de destination, faisant la moyenne des pixels source par rapport à la fraction de pixels de destination qui sont couverts. Selon cette page , il devrait produire de meilleurs résultats lors du sous-échantillonnage.
La spline et l' interpolation sinc utilisent des polynômes d'ordre supérieur et sont donc plus difficiles à calculer que l'interpolation bicubique. Je ne pense pas que l'augmentation globale du temps de traitement en vaille la peine.
Le rééchantillonnage Lanczos implique également un filtre sinc. Il est plus coûteux en termes de calcul, mais généralement décrit comme de très haute qualité et peut être utilisé pour le sous-échantillonnage et le sous-échantillonnage.
Les filtres hqx ainsi que 2xSaI sont utilisés pour la mise à l'échelle pixel-art (par exemple, les émulateurs de jeux). Je ne pense pas qu'il y ait une bonne raison de les utiliser en vidéo.
Comparaison de Jeff Atwood
Il s'avère que Jeff Atwood a fait une comparaison des algorithmes d'interpolation d'images . Sa règle de base était d'utiliser l'interpolation bicubique pour le sous-échantillonnage et l'interpolation bilinéaire lors du suréchantillonnage. Cela dit, ce n'est pas ce qui est généralement recommandé pour le codage vidéo - et certains commentateurs ont émis des doutes quant à l'expertise d'Atwood dans le domaine.
Cependant, il a également mentionné que…
La réduction des images est une opération totalement sûre et rationnelle. Vous réduisez simplement la précision et la résolution en supprimant les informations. Rendez l'image aussi petite que vous le souhaitez et vous avez une fidélité totale - dans les limites du nombre de pixels que vous avez autorisé. Vous obtiendrez de bons résultats quel que soit l'algorithme que vous choisissez. (Eh bien, à moins que vous ne choisissiez les algorithmes de redimensionnement de pixel de la nef ou de voisin le plus proche.)
Autres exemples
Voici quelques autres exemples d'algorithmes d'interpolation d'images , y compris ceux que j'ai mentionnés ci-dessus.
J'ai également trouvé des documents (règles de scène) de la scène d'encodage vidéo qui interdisent explicitement le filtrage bicubique pour le sous-échantillonnage. Au lieu de cela, ils approuvent le rééchantillonnage de Lanczos, Spline ou "Blackman".