Quale algorithm di ridimensionamento da scegliere per i video?

Sto utilizzando VirtualDub per la codifica con quelle impostazioni . ridimensionare gli algoritmi

Tuttavia registro la mia roba in 1920×1080 e la ridimensiono fino a 1280×720. Ora la domanda: quale algorithm dovrei scegliere quando faccio una qualità bilanciata rispetto alla dimensione del file-size?

Sono sempre andato con Lanczos perché è quello che era preconfigurato. Quelle descrizioni non mi aiutano affatto alla mia domanda.

Perchè import?

Potrebbe essere sostenuto che i filtri di ridimensionamento non import molto quando si scala un video. Ancora più importnte, hanno un impatto sulla qualità quando viene eseguito il upscaling, perché è necessario generare dati in cui non c'è in primo luogo.

Questi filtri hanno solo un impatto marginale sulle size del file. Non dovresti quindi preoccuparti di enormi differenze.

Il fatto è, come sempre quando codifica video, che il risultato dipende fortemente dal materiale di origine. Non puoi sempre predire il risultato, ma solo vedere che cosa funziona meglio per te.

Algoritmi diversi

Ad esempio, qui è l' interpolazione bicubic vs bilineare :

immettere qui la descrizione dell'immagine

Vedere che l'interpolazione bicubic produce i bordi più lisci? Questa è una dichiarazione molto generale … ma è ansible trovare una panoramica degli algoritmi di scala delle immagini qui .

  • L'interpolazione bilineare utilizza un ambiente 2×2 di un pixel e quindi prende la media di questi pixel per interpolare il nuovo valore. Non è il miglior algorithm, ma piuttosto veloce.

  • L'interpolazione bicubica utilizza un ambiente 4×4 di un pixel, pesando i pixel più intimi più alti e quindi prende la media per interpolare il nuovo valore. È – per quanto mi riguarda – il più popolare.

  • La media delle aree utilizza una mapping dei pixel di origine e di destinazione, in media dei pixel di origine rispetto alla frazione di pixel di destinazione coperti. Secondo questa pagina , dovrebbe produrre risultati migliori quando il downsampling.

  • L' interpolazione di spline e sincrono utilizza polinomi di ordine superiore e quindi è più difficile da calcolare rispetto all'interpolazione bicubica. Non credo che l'aumento complessivo del tempo di elaborazione vale la pena di usarli.

  • Il risanamento di Lanczos prevede anche un filter sincrono.

  • hqx e filtri 2xSaI vengono utilizzati per la scala pixel-art (ad es. emulatori di gioco). Non credo che ci sia un buon motivo per usarli in video.

Il confronto di Jeff Atwood

Si scopre Jeff Atwood ha fatto un confronto di algoritmi di interpolazione di image . La sua regola è stata quella di utilizzare l'interpolazione bicubica per l'abbassamento e l'interpolazione bilineare quando l'upsampling. Tuttavia, ha anche detto che …

La riduzione delle immagini è un'operazione completamente sicura e razionale. Stai semplicemente riducendo la precisione e la risoluzione scartando informazioni. Rendi l'image come piccola e vuoi, e hai fedeltà completa – entro i limiti del numero di pixel che hai permesso. Otterrai buoni risultati indipendentemente dall'algorithm che scegli. (Beh, a less che non scegliate gli algoritmi Pixel Resize o Nearest Neighbor).

Ecco alcuni esempi di algoritmi di interpolazione delle immagini , compresi quelli sopra citati.

Quindi, quale scegliere?

Finalmente ho trovato un documento dalla scena di codifica video che esplicita vieta il filtraggio bicubico. Al contrario, approva Lanczos, Spline o "resampling" Blackman. Questi ragazzi probabilmente sanno cosa stanno parlando, quindi potresti solo aderire al filtraggio di Lanczos.

Stai convertendo 3×3 pixel originali a pixel objective 2×2.

Se si desidera mantenere linee nitide scegliere Lanczos o qualcosa che utilizza più pixel circostanti per non sfocare linee nitide (come pelliccia o riflessioni)

Altrimenti la media dell'area ecc. (Anche bilineare / trilinea) sarebbe sufficiente.

Ho trovato una buona image che documenta alcuni di questo.

immettere qui la descrizione dell'immagine

Versione completa.

In generale, si desidera un effetto di messa a fuoco lievemente quando si effettua un'image più grande in una più piccola, e un effetto di sfocatura lieve quando si effettua un'image più piccola in una più grande. Il set di filter MadVR è impostato su default per Lanczos per upscaling e bicubic per la scalatura.

La dimensione del file non è veramente rilevante.

La ridimensionamento "Area" produce il risultato mathmente corretto quando si riduce un'image. L'unica ragione per utilizzare qualsiasi altra cosa è se produce risultati che soggettivamente preferite.