Quel algorithme de redimensionnement choisir pour les vidéos?

J'utilise VirtualDub pour l'encodage avec ces paramètres . Redimensionner les algorithmes

Cependant, je enregistre mes affaires en 1920×1080 et redimensionne-la jusqu'à 1280×720. Maintenant, la question: quel algorithme devrais-je choisir lors de la prise de décision de qualité équilibrée par rapport à la taille du fichier?

J'ai toujours été avec Lanczos parce que c'est ce qui a été préconfiguré. Ces descriptions ne m'aident pas du tout dans ma question.

En quoi est-ce important?

On pourrait soutenir que les filtres de redimensionnement n'importent pas beaucoup lorsque vous réduisez la taille d'une vidéo. Plus important encore, ils ont un impact sur la qualité lors de la mise à l'échelle, car il faut générer des données là où il n'y a pas lieu.

Ces filtres n'ont qu'un impact marginal sur la taille du fichier. Vous ne devriez donc pas vous soucier d'énormes différences là-bas.

Le fait est, comme toujours lors de l'encodage vidéo, que le résultat dépend fortement du matériau source. Vous ne pouvez pas toujours prédire le résultat, mais juste voir ce qui vous convient le mieux.

Différents algorithmes

À titre d'exemple, voici l' interpolation bicubique versus bilinéaire :

Entrez la description de l'image ici

Voyez-vous que l'interpolation bicubique entraîne 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 de l'image ici .

  • L'interpolation bilinéaire utilise un environnement 2×2 d'un pixel puis prend 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 4×4 d'un pixel, pesant les pixels les plus internes plus haut, puis prend la moyenne pour interpoler la nouvelle valeur. C'est – en ce qui me concerne – le plus populaire.

  • La moyenne de la zone utilise un mappage des pixels source et de destination, en faisant la moyenne des pixels sources en fonction de la fraction de pixels de destination couverte. Selon cette page , il devrait produire de meilleurs résultats lors de l'échantillonnage en aval.

  • L' interpolation spline et sinc. Utilise 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 vaut les utiliser.

  • Le rééchantillonnage Lanczos implique également un filtre sinc.

  • Hqx ainsi que les filtres 2xSaI sont utilisés pour la mise à l'échelle des pixels (par exemple, les émulateurs de jeux). Je ne pense pas qu'il y ait une bonne raison de les utiliser dans la vidéo.

Comparaison de Jeff Atwood

Il s'avère que Jeff Atwood a fait une comparaison des algorithmes d'interpolation d'image . Sa règle de base était d'utiliser l'interpolation bicubique pour l'échantillonnage en panne et l'interpolation bilinéaire lors de l'échantillonnage. Cependant, il a également mentionné que …

Réduire les images est une opération complètement sûre et rationnelle. Vous réduisez simplement la précision et la résolution en rejetant les informations. Rendez l'image aussi petite que vous le souhaitez, et vous avez une fidélité complète – 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 Neuf Pixel Resize ou Next Neighbor).

Voici d' autres exemples d'algorithmes d'interpolation d'image , y compris ceux que j'ai mentionnés ci-dessus.

Alors, lequel choisir?

J'ai finalement trouvé un document de la scène de codage vidéo qui interdit explicitement le filtrage bicubique. Au lieu de cela, il appuie le rééchantillonnage Lanczos, Spline ou Blackman. Ces types savent probablement de quoi ils parlent, alors vous voudrez peut-être rester dans le filtrage de Lanczos.

Vous transformez les pixels originaux 3×3 en pixels cibles 2×2.

Si vous souhaitez garder des lignes pointues choisissez Lanczos ou quelque chose qui utilise plus de pixels environnants pour ne pas flouer les lignes pointues (comme la fourrure ou les réflexions)

Sinon, la moyenne de la zone, etc. (également bilinéaire / trilinéaire) suffirait.

J'ai trouvé une bonne image qui documente quelque chose.

Entrez la description de l'image ici

Version pleine grandeur ici .

En général, vous voulez un effet d'affûtage doux lorsque vous créez une image plus grande dans une plus petite, et un léger effet de flou lorsque vous faites une image plus petite dans une plus grande. Le filtre MadVR définit par défaut Lanczos pour upscaling et bicubic pour downscaling.

La taille du fichier n'est pas vraiment pertinente.

Le redimensionnement "Zone" produit le résultat mathématiquement correct lors du rétrécissement d'une image. La seule raison d'utiliser toute autre chose est si elle produit des résultats que vous aimez subjectivement mieux.