Quel algorithme de redimensionnement choisir pour les vidéos?

21

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

Cependant, j'enregistre mes trucs en 1920x1080 et je les redimensionne à 1280x720. Maintenant, la question: quel algorithme dois-je choisir pour prendre une décision sur la qualité équilibrée par rapport à la taille du fichier?

Je suis toujours allé avec Lanczos parce que c'est ce qui était préconfiguré. Ces descriptions ne m'aident pas du tout dans ma question.

Ours grincheux
la source

Réponses:

25

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 :

     entrez la description de l'image ici

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".

slhck
la source
J'utilisais toujours "bicubique précis A = 100". Lors d'une réinstallation du programme mis à jour, Lanczos était par défaut, beaucoup de gens l'ont aimé. Je l'ai laissé comme ça pendant longtemps. Finalement, je me suis mis à regarder les choses Lanczos encodées plus tard, et j'ai pensé que ce n'était pas aussi bon, la prochaine série d'encodages, je l'ai retournée en bicubique. Je craquais également la compression, je pense que Lanczos aurait pu sembler meilleur si je n'essayais pas de réduire autant la taille totale des données.
Psycogeek
2
FWIW Je ne considérerais pas Jeff Atwood comme un expert en traitement d'image, et dans cet article, il n'examine rien d'autre que bilinéaire, voisin le plus proche ou (une variante particulière de) bicubique. La plupart des gens seraient d'accord avec sa recommandation d'utiliser bilinéaire lorsque l'agrandissement est mauvais.
thomasrutter
1
@thomasrutter Merci. Je suis d'accord avec vous - à l'époque où j'ai écrit ceci, je ne connaissais probablement pas autant le traitement d'image que maintenant. Je suppose que je vais supprimer la référence à cet article et trouver une autre source.
slhck
9

J'ai trouvé une bonne image qui documente une partie de cela.

entrez la description de l'image ici

Version pleine grandeur ici .

En général, vous voulez un effet de netteté doux lorsque vous faites une image plus grande en une plus petite, et un effet de flou léger lorsque vous faites une image plus petite en une plus grande. Par défaut, le jeu de filtres MadVR est Lanczos pour la mise à l'échelle et bicubique pour la mise à l'échelle.

Jeff Atwood
la source
2

Vous convertissez 3x3 pixels d'origine en 2x2 pixels cibles.

Si vous souhaitez conserver des lignes nettes, choisissez Lanczos ou quelque chose qui utilise plus de pixels environnants pour ne pas brouiller les lignes nettes (comme la fourrure ou les reflets)

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

ZaB
la source