TL; DR
Durante il campionamento: utilizzare il filtro Lanczos o Spline.
Durante il campionamento: utilizzare il filtro Bicubic o Lanczos.
Questi sono basati sul materiale che ho letto negli anni e da quello che ho visto utilizzato nel settore. I consigli possono variare in base al tipo di contenuto e all'area dell'applicazione.
Perchè importa?
Si potrebbe obiettare che i filtri di ridimensionamento non contano molto quando si ridimensiona un video. Ancora più importante, hanno un impatto sulla qualità durante l'upscaling, perché è necessario generare dati in cui non ci sono in primo luogo.
Tutti questi filtri hanno solo un impatto marginale sulla dimensione del file. Pertanto non dovresti preoccuparti delle enormi differenze lì.
Il fatto è, come sempre quando si codifica il video, che il risultato dipende fortemente dal materiale sorgente. Non puoi sempre prevedere il risultato, ma vedi cosa funziona meglio per te.
Algoritmi diversi
Ad esempio, ecco l' interpolazione bicubica vs. bilineare :
Vedi che l'interpolazione bicubica produce bordi più lisci? Questa è un'affermazione molto generale ... ma si possono trovare una panoramica degli algoritmi di scaling dell'immagine qui .
L'interpolazione bilineare utilizza un ambiente 2x2 di un pixel e quindi prende la media di questi pixel per interpolare il nuovo valore. Non è l'algoritmo migliore, ma piuttosto veloce.
L'interpolazione bicubica utilizza un ambiente 4x4 di un pixel, pesando i pixel più interni più in alto e quindi prende la media per interpolare il nuovo valore. È - per quanto mi riguarda - il più popolare.
La media dell'area utilizza una mappatura dei pixel di origine e di destinazione, calcolando la media dei pixel di origine rispetto alla frazione dei pixel di destinazione coperti. Secondo questa pagina , dovrebbe produrre risultati migliori durante il downsampling.
L' interpolazione spline e sinc utilizza polinomi di ordine superiore e pertanto è più difficile da calcolare dell'interpolazione bicubica. Non credo che valga la pena usarli per l'aumento complessivo dei tempi di elaborazione.
Il ricampionamento di Lanczos comporta anche un filtro sinc. È più costoso dal punto di vista computazionale ma di solito viene descritto come qualità molto elevata e può essere utilizzato per il campionamento in alto e in basso.
i filtri hqx e 2xSaI vengono utilizzati per il ridimensionamento della pixel art (ad es. emulatori di giochi). Non credo ci sia una buona ragione per usarli nel video.
Il confronto di Jeff Atwood
Si scopre che Jeff Atwood ha fatto un confronto tra gli algoritmi di interpolazione delle immagini . La sua regola empirica era quella di utilizzare l'interpolazione bicubica per il downsampling e l'interpolazione bilineare durante l'upsampling. Detto questo, questo non è ciò che è generalmente raccomandato per la codifica video - e alcuni commentatori hanno sollevato dubbi sull'esperienza di Atwood nel settore.
Tuttavia, ha anche detto che ...
Ridurre le immagini è un'operazione completamente sicura e razionale. Stai semplicemente riducendo la precisione e la risoluzione scartando le informazioni. Rendi l'immagine piccola quanto vuoi e hai la fedeltà completa, entro i limiti del numero di pixel che hai permesso. Otterrai buoni risultati, indipendentemente dall'algoritmo che scegli. (Beh, a meno che tu non scelga gli algoritmi Pixel Resize o Neighbor più vicino.)
Altri esempi
Ecco alcuni altri esempi di algoritmi di interpolazione di immagini , inclusi quelli che ho menzionato sopra.
Ho anche trovato documenti (regole di scena) della scena di codifica video che vietano esplicitamente il filtro bicubico per il downsampling. Al contrario, appoggiano il ricampionamento di Lanczos, Spline o "Blackman".