Confronto dei codec HEVC dell'Università statale di Mosca. Come migliorare i risultati
By Olga Krovyakova - modified October 6, 2023, created April 3, 2019.
Nell'ottobre 2015 il gruppo video Graphics & Media Lab del Dipartimento di informatica dell'Università statale di Mosca (CS MSU Graphics & Media Lab) ha pubblicato un'altra recensione comparativa dei codec , questa volta includendo diversi codec in formato HEVC.
Il punto di partenza di questa ricerca è stato il fatto che abbiamo notato la differenza nelle preimpostazioni per i test AVC e HEVC. Per AVC è stato utilizzato un profilo veloce non modificato con un singolo GOP, mentre per i test HEVC è stato utilizzato un profilo modificato con diversi GOP. Inoltre, il codificatore x264 ha mostrato risultati migliori rispetto a x265 sulla transcodifica veloce nei diagrammi di correlazione SSIM/bitrate indipendentemente dalla velocità di codifica – per “Apple Tree”, l'unico file descritto nel rapporto aperto. Immediatamente è sorta una domanda: e se queste o altre opzioni evidenti potessero cambiare il quadro?
Il rapporto confronta le preimpostazioni ma’non consiglia alcun miglioramento correlato. In questo articolo abbiamo condotto una revisione simile e sviluppato consigli per modificare le preimpostazioni dell'encoder x265. Per la sequenza video identica a quella analizzata nella versione gratuita del report, le modifiche suggerite ai parametri di codifica aiutano ad aumentare l'efficienza di compressione e a riabilitare il codificatore x265 nella creazione del diagramma del report.
Le preimpostazioni modificate non hanno alcuna pretesa di universalità, poiché il test su più sequenze video va oltre lo scopo di questa ricerca. Tuttavia, possono essere consigliati come punto di partenza per cercare opportunità per migliorare l'efficienza della codifica x265.
Informazioni sul progetto
Il compito della codifica video nel processo di elaborazione multimediale, sia esso trasmissione, taglio, editing o archiviazione, è onnipresente nello sviluppo e nella configurazione di applicazioni/servizi durante il funzionamento. A causa della grande quantità di codec video popolari disponibili, spesso dello stesso tipo,’non è facile scegliere quello migliore e quindi applicare le giuste impostazioni. È’molto probabile che queste considerazioni abbiano incoraggiato il progetto di confronto video in corso avviato e gestito dal Laboratorio di Computer Grafica e Multimedia di CMC MSU negli anni 2000. Nell'ottobre 2015 è stato pubblicato un rapporto comparativo di codec che ha registrato diversi formati HEVC. codec e altri codec in fase di sviluppo attivo. x264 è stato scelto come modello di compressore nel loro rapporto. Uno degli altri compressori interessanti menzionati era x265. È questo formato che costituirà l'argomento principale del nostro studio.
Lo strumento per l'analisi è SolveigMM Zond 265, un analizzatore HEVC/H.265 e AVC/H.264.
La metodologia di confronto dei codec e selezione dei parametri
Descriviamo’la metodologia. Il confronto è condotto sulla base di questi criteri: bitrate – qualità (SSIM, PSNR) – prestazioni. La metodologia per confrontare la correlazione bitrate/qualità metrica (vedi punto C4) è la seguente.
Selezioniamo diversi valori di bitrate (ad esempio, 7 valori: 1, 2, 4, 6, 8, 10 e 12 Mbps) e calcoliamo tutti i parametri di qualità necessari per ciascun codec.
Posizioniamo i valori di output sul diagramma: metrica di qualità (asse orizzontale) – bitrate (asse verticale).
- Facciamo un'interpolazione lineare.
- Selezioniamo un intervallo massimo in cui tutti i diagrammi sono definiti e rileviamo le aree sotto tutti i diagrammi al suo interno.
- Come unamisura di qualità di un codec specifico (o preimpostato) prendiamo la relazione tra la sua area e l'area del codec del modello. Minore è il valore ricevuto, più efficace è il codec.
Come modello selezioniamo x265 con il preset scelto nel report (tabella 1). Il report utilizza una versione precedente del compressore che può essere trovata qui: x265 1.5+460-ac85c775620f. Tuttavia, l'ultima versione’non apporta cambiamenti radicali.
I preset del compressore utilizzati sono indicati nella tabella 1 (per la piattaforma desktop).
Strappare | x265 -p veryslow --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Codifica universale | x265 -p medio --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Transcodifica veloce | x265 -p ultraveloce --ref 3 --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Per suggerire raccomandazioni sulla modifica delle preimpostazioni, conduciamo un test di tutte le impostazioni di formazione delle preimpostazioni per valutare il loro impatto individuale sulla qualità e sulle prestazioni. Ecco il piano d'azione:
- Codifichiamo il file modificando ogni parametro preimpostato: dalla transcodifica veloce all'universale, dall'universale al ripping, risparmiando tempo di codifica.
- Calcoliamo la misura della qualità (allo stesso modo dell'area sopra) e il tempo di codifica referenziale (il valore minimo della codifica FPS per il file "parametro preimpostato modificato" relativo a tutti i valori di bitrate selezionati).
- Dalla tabella composta da parametro modificabile, misura di qualità e FPS minimo, scegliamo i parametri che possono essere utilizzati per migliorare i preset.
Ci limitiamo alle preimpostazioni per la codifica e il ripping universali (tabella 2), sbloccando i parametri "-p medium" e "-p ultrafast". Ne aggiungiamo anche altri due che erano stati omessi nel rapporto: "--keyint -1 --tune ssim". Integriamo le preimpostazioni con i parametri menzionati rispettivamente per la transcodifica veloce e universale.
Tabella 2. Parametri – candidati per la modifica delle preimpostazioni del rapporto di confronto dei codec video MSU HEVC.
Codifica universale | --rc-lookahead 20 --scenecut 40 --ctu 64 --min-cu-size 8 --bframes 4 --b-adapt 2 --subme 1 --me hex --early-skip --sao -- signhide --weightp --rd 3 --aq-strength 1.0 --aq-mode 1 --cutree --no-fast-intra |
"Strappando" | --weightb --amp --rect --rc-lookahead 40 --bframes 8 --tu-inter- Depth 3 --tu-intra-Depth 3 --rd 6 --rdoq 2 --psy-rdoq 1.0 - -subme 4 --max-merge 4 --me star --ref 5 --b-intra --lookahead-slices 0 |
Test
Non è disponibile alcun collegamento per il download per la sequenza di prova "Apple Tree" (immagine 1) utilizzata nella versione gratuita del rapporto.’ne sceglieremo uno simile utilizzando il primo piano della sua caratteristica principale – , una grande quantità di piccoli dettagli. Ad esempio "big_buck_bunny_1080p_h264.mov", l'intervallo di 338 fotogrammi dal secondo 24:
ffmpeg -i big_buck_bunny_1080p_h264.mov -ss 00:00:24 -frames:v 338 -c:v rawvideo -pix_fmt yuv420p sample.yuv
Fig. 1. Caratteristiche della sequenza "Apple Tree"
Per realizzare i tre passaggi del piano precedente e risparmiare tempo copiando le figure necessarie dall'interfaccia Zond 265, è’conveniente utilizzare la funzionalità operativa della riga di comando (tabella 3):
zond265_x64 %COMPRESSED_FILE% -iref %REFERENCE_420P_FILE% -nowait -report t=quality,statstream qm=SSIM o=%TARGET_CSV_FILE%
È possibile visualizzare l'elenco di tutti i parametri e la loro descrizione completa nella pagina Zond 265.
Tabella 3. Parametri della riga di comando di Zond 265 richiesti per la compilazione dello script.
Parametro | Descrizione |
---|---|
-iref | Impostazione del file YUV di riferimento |
-rapporto | Indica la modalità operativa di Zond 265 nella riga di comando |
t=qualità,statstream | Generazione di due report selezionati: statistiche sulla qualità e sul flusso video. |
qm=SSIM | Metrica di qualità per il calcolo |
o | Percorso del file di report in formato CSV |
-non aspettare | Senza pause. Zond 265 naviga automaticamente da un file all'altro senza ritardi. |
Ecco due script per Python 2.7: uno per codificare 266 file (20 impostazioni per il primo, 18 impostazioni per il secondo preimpostato, per 7 valori di bitrate: 1, 2, 4, 6, 8 , 10, 12 Mbps), l'altro per compilare un report in formato CSV (il file – la relazione della codifica FPS con la configurazione del modello – la relazione della metrica SSIM con la configurazione del modello).
Come puoi vedere nelle tabelle del rapporto per il frammento di file "big_buck_bunny_1080p_h264.mov" (tabelle 5 e 6), le configurazioni possono essere modificate, ad esempio, come indicato in’nella tabella 4. Basta un promemoria: per ottenere risultati migliori il valore della "Misura della qualità" dovrebbe essere inferiore all'unità e il valore del "Tempo di codifica relativo" – maggiore dell'unità.
Il test è stato eseguito utilizzando la seguente configurazione hardware: Intel Core i7-2600@3,4 GHz, 16 GB RAM. Il maggiore miglioramento qualitativo per la configurazione della codifica veloce è reso dal parametro "--min-cu-size 8", in caso di codifica universale’è il parametro"--rdoq-level 2" (tuttavia rallenta codifica di più).
Tabella 4. Modifica delle preimpostazioni del report di confronto dei codec video MSU HEVC per migliorare l'efficienza di codifica con la stessa velocità di codifica.
Transcodifica veloce | x265 -p ultrafast --ref 3 --rc-lookahead 20 --min-cu-size 8 --bframes 4 --early-skip --cutree --tune ssim --bitrate %BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Codifica universale | x265 -p medio --weightb --bframes 8 --tu-intra-deep 3 --psy-rdoq 1.0 --b-intra --lookahead-slices 0 --tune ssim --bitrate % BITRATE_KBPS% %SOURCE_FILE% -o %TARGET_FILE% --input-res %WIDTH%x%HEIGHT% --fps %FPS% |
Tabella 6. Il rapporto sulla modifica della preimpostazione della codifica universale.
Configurazione | Misura della qualità | Tempo di codifica relativo |
---|---|---|
Transcodifica veloce (modello) | 1 | 1 |
Transcodifica veloce (modificata) | 0,69 | 0,97 |
Transcodifica universale (modello) | 1 | 1 |
Transcodifica universale (modificata) | 0,85 | 0,94 |
Valutiamo’l'impatto della modifica delle opzioni – in Zond 265 apriamo il file codificato con il preset modificato in modalità di transcodifica veloce per il bitrate di 8 Mbps e confrontiamolo con il file codificato con il preset non modificato. La dimensione dell'unità di codifica più grande rimane invariata ed è pari a 32x32 (campo "--ctu 32"). Tuttavia la dimensione dell'unità minima scende da 16 a 8 (campo "--min-cu-size 8"). È stato questo parametro a garantire il maggiore miglioramento della qualità. Il numero di fotogrammi B è aumentato da 3 a 4 (campo "—bframes"), tuttavia è aumentato anche il numero massimo di fotogrammi di riferimento (campo "--ref 4"). Il campo "SSIM" segna due valori massimi per i diagrammi SSIM/PSNR per tre componenti: luminosità (Luma) e due componenti di colore (Cb, Cr). I loro valori sono aumentati da 0,9623-0,9966 a 0,9771-0,9991. I restanti parametri aggiuntivi (--rc-lookahead 20 --early-skip --cutree) influenzano l'algoritmo di codifica ma non il tipo di video in uscita, ciò si riflette principalmente nella velocità di codifica (vedere tabella 5). Vale la pena’ricordare che l'immagine del fotogramma decodificato è cambiata visivamente. – Gli artefatti di codifica non vengono più visualizzati.
Fig. 2. Screenshot di un file Zond 265 codificato utilizzando la configurazione di codifica rapida modificata
Puoi anche controllare i parametri del file codificato con una preimpostazione di codifica universale modificata e non modificata (fig. 3). La dimensione delle partizioni minime della TU non è cambiata’e rimane uguale a 4x4 (campo "--tu-intra-depth 3"), anche il numero di B-frame è rimasto invariato ed è pari a 3 (campo "--bframes 3"). SSIM è aumentato da 0,9789-0,9994 a 0,9811-0,9992. Rispetto alla configurazione di transcodifica veloce, la dimensione dell'unità massima è aumentata ed è ora pari a 64x64 (campo "--ctu 64"), è stato aggiunto il filtro SAO (campo "--sao").
Fig. 3. Screenshot del file Zond 265 codificato utilizzando la configurazione di codifica universale modificata
Come risultato dei test eseguiti, suggeriamo un elenco di opzioni per migliorare l'efficienza di codifica (miglioramento del valore della metrica SSIM con lo stesso bitrate e velocità di codifica) per le configurazioni di codifica veloci e universali. Utilizzando le modifiche suggerite per il file con una grande quantità di piccoli dettagli, il valore della "misura di qualità" integrale del rapporto di confronto dei codec video HEVC di MSU è migliorato del 31% sulla transcodifica veloce e del 15% sulla transcodifica universale, con un valore insignificante modifica della velocità di codifica. Poiché il test è stato effettuato separatamente per ciascuna opzione, in pratica ha senso scegliere solo alcune opzioni convenienti anziché l'intero elenco suggerito.
Riferimenti
Olga Krovyakova is the Technical Support Manager in Solveig Multimedia since 2010.
She is the author of many text and video guidelines of company's products: Video Splitter, HyperCam, WMP Trimmer Plugin, AVI Trimmer+ and TriMP4.
She works with programs every day and therefore knows very well how they work. Сontact Olga via support@solveigmm.com if you have any questions. She will gladly assist you!