Comparaison des codecs HEVC de MSU. Comment améliorer les résultats

En octobre 2015, un autre rapport de comparaison de codecs a été publié au VMiK de l'Université d'État de Moscou, cette fois il comprenait plusieurs codecs HEVC.

Le point de départ de l'étude était que nous avons remarqué une différence de préréglages dans les tests pour AVC et HEVC - pour AVC, un profil rapide non modifié avec un GOP a été utilisé, et pour HEVC, un profil modifié avec plusieurs GOP a été utilisé. Dans le même temps, pour le seul fichier «Apple Tree» décrit dans le rapport ouvert, l'encodeur x264 s'est avéré meilleur que x265 lorsqu'il a été rapidement transcodé sur les graphiques de la dépendance de SSIM sur le débit sans égard à la vitesse d'encodage. La question s'est immédiatement posée: peut-être que ces options ou d'autres évidentes peuvent changer cette image.

Le rapport compare les préréglages, mais ne fournit pas de recommandations pour les corriger. Dans cet article, nous avons fait une comparaison similaire et fait des recommandations pour modifier les préréglages de l'encodeur x265. Pour une séquence vidéo similaire à celle étudiée dans la version gratuite du rapport, les modifications proposées aux paramètres d'encodage peuvent améliorer l'efficacité de la compression, tout en réhabilitant l'encodeur x265 lors du traçage du rapport.

Les préréglages modifiés ne prétendent pas à l'universalité, les tests sur un grand nombre de séquences vidéo dépassent le cadre de cette étude. Cependant, ils peuvent être recommandés comme point de départ lors de la recherche d'opportunités pour augmenter l'efficacité de codage de x265.

À propos du projet



La tâche de l'encodage vidéo dans le traitement multimédia, que ce soit la transmission, l'édition ou l'édition, le stockage, se pose constamment à la fois lors du développement d'applications et de services, et lorsqu'ils sont configurés au moment de l'utilisation. En raison du grand nombre de codecs vidéo populaires, même souvent du même type, il n'est pas facile de choisir le meilleur parmi eux, puis de définir les paramètres appropriés. Probablement, guidés par de telles considérations, dans le laboratoire d'infographie et de multimédia de la faculté de mathématiques computationnelles et cybernétique (VMiK) de l'Université d'État de Moscou depuis les années 2000, un projet de comparaison de codecs vidéo est en cours.

En octobre 2015, un rapport de comparaison de codecs a été publié qui comprenait certains codecs au format HEVC, ainsi que plusieurs autres en cours de développement actif. Comme compresseur de référence adopté "x264". L'un des éléments intéressants du rapport est le compresseur x265, et nous l'étudierons.
Comme outil d'analyse, nous utiliserons SolveigMM Zond 265, l'analyseur de fichiers HEVC / H.265 et AVC / H.264.

image


Méthodes de comparaison des codecs et de sélection des paramètres





Nous décrivons la technique. La comparaison dans le rapport est effectuée selon les critères de qualité de débit binaire (SSIM, PSNR). La procédure décrite dans le rapport pour comparer le rapport débit binaire / qualité métrique (paragraphe C.4) est la suivante.
Nous sélectionnons plusieurs valeurs de bitrate (par exemple, 7 valeurs: 1, 2, 4, 6, 8, 10 et 12 Mbps), pour elles nous considérons les métriques de qualité nécessaires pour chaque codec.

Nous marquons les valeurs obtenues sur le graphique: métrique de qualité (axe des abscisses) - débit binaire (axe des ordonnées).

  1. Interpoler linéairement.
  2. Nous sélectionnons la plage la plus large sur laquelle tous les graphiques sont définis et trouvons la zone sous tous les graphiques.
  3. Pour mesurer la qualité d'un codec particulier (ou préréglé), nous prenons le rapport de sa zone à la zone du codec de référence. Plus le nombre est bas, plus le codec est efficace.

Pour référence, sélectionnez x265 avec le préréglage sélectionné dans le rapport (tableau 1). Le rapport n'utilise pas la dernière version du compresseur, il peut être trouvé ici: x265 1.5 + 460-ac85c775620f . Cependant, lors de l'utilisation de la dernière version, rien ne change fondamentalement.
Les préréglages de compresseur utilisés sont indiqués dans le tableau 1 (pour la plate-forme de bureau).

Extraction
x265 -p veryslow --bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
Codage universel
x265 -p moyen --bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
Recodage rapide
x265 -p ultra-rapide - ref 3 --bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
Tableau 1. Paramètres du compresseur x265 du rapport «Comparaison des codecs vidéo MSU HEVC».

Pour obtenir des recommandations de modification des préréglages, nous testons tous les paramètres qui les composent - la contribution de chaque composant à la qualité et à la vitesse. Le plan ici est le suivant.
  1. Nous encodons le fichier, en changeant chaque paramètre du preset: du transcodage rapide à l'universel, de l'universel au «ripping». En même temps, nous économisons le temps d'encodage.
  2. Nous calculons la mesure de qualité (comme la zone indiquée ci-dessus) et le temps d'encodage relatif (la valeur d'encodage FPS minimum pour le fichier "paramètre modifié par défaut" par rapport à toutes les valeurs de débit sélectionnées).
  3. Dans le tableau composé d'un paramètre variable, d'une mesure de qualité, d'un FPS minimum, nous sélectionnons les paramètres qui peuvent être utilisés pour améliorer les préréglages.

Nous nous limitons aux paramètres des préréglages pour le codage universel et pour le «ripping» (tableau 2), révélant les paramètres «-p medium» et «-p ultrastast». Ajoutez-leur deux autres manquants dans le rapport: «--keyint -1 --tune ssim». Nous compléterons les paramètres répertoriés avec des préréglages pour un transcodage rapide et universel, respectivement.
Codage universel
--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
Extraction
--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
Tableau 2. Paramètres candidats pour la modification des préréglages du rapport de comparaison du codec vidéo MSU HEVC


Test



Le lien de téléchargement de la séquence de test Apple Tree (Fig. 1), utilisé dans la version gratuite du rapport, n'est pas spécifié. Nous en choisirons un similaire, en utilisant sa caractéristique clé - un gros plan, un grand nombre de petits détails. Par exemple, " big_buck_bunny_1080p_h264.mov ", un intervalle de 338 images sur 24 secondes:

ffmpeg -i big_buck_bunny_1080p_h264.mov -ss 00:00:24 -frames: v 338 -c: v rawvideo -pix_fmt yuv420p échantillon

image
de la séquence de caractères 1.yuv Apple Tree »

Afin de ne pas passer beaucoup de temps à écrire les numéros nécessaires à partir de l'interface Zond 265 lors de la mise en œuvre des trois étapes du plan indiqué ci-dessus, il est pratique d'utiliser sa capacité à travailler sur la ligne de commande (tableau 3):
zond265_x64% COMPRESSED_FILE% -iref% REFERENCE_420P_FILE% -nowait -report t = quality, statstream qm = SSIM o =% TARGET_CSV_FILE%
Une liste de tous les paramètres, ainsi que leur description détaillée, se trouve sur la page de documentation du Zond 265 .

Paramètre
La description
-iref
Définition du fichier YUV de référence
-Rapport
Spécification du mode de fonctionnement du Zond 265 sur la ligne de commande
t = qualité, statstream
Ici, la génération de deux rapports est sélectionnée: qualité et statistiques sur le flux vidéo
qm = SSIM
Mesure de qualité pour le calcul
o
Chemin d'accès au fichier de rapport CSV
-maintenant
Sans pause, le Zond 265 lui-même doit passer de fichier en fichier sans délai
Tableau 3. Paramètres de ligne de commande Zond 265 nécessaires à la compilation d'un script

Voici deux scripts pour Python 2.7: un pour coder 266 fichiers (20 paramètres pour le premier, 18 paramètres pour le second préréglage, pour 7 débits binaires: 1, 2, 4, 6, 8, 10, 12 Mbps), le second pour la compilation d'un rapport au format CSV (fichier - le rapport du codage FPS sur la configuration de référence - le rapport de la métrique SSIM sur la configuration de référence).
Comme le montrent les tableaux de rapport pour le fragment du fichier " big_buck_bunny_1080p_h264.mov " (tableaux 5 et 6), vous pouvez modifier la configuration, par exemple, comme indiqué dans le tableau 4. Rappeler pour améliorer l'efficacitéla valeur de la mesure de qualité doit être inférieure à un et la valeur de temps de codage relatif doit être supérieure à un.
Le test a été effectué sur un ordinateur avec la configuration suivante: Intel Core i7-2600@3,4 GHz, 16 Go de RAM. La plus grande amélioration de la qualité est apportée par le paramètre «--min-cu-size 8» pour la configuration d'un encodage rapide, pour l'encodage universel le paramètre «--rdoq-level 2» (mais il ralentit également l'encodage surtout).

Recodage rapide
x265 -p ultra-rapide - ref 3 - tête de lecture rc 20 - taille min-cu 8 - cadres 4 - saut précoce - cutree - syntonisation ssim - débit% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
Codage universel
x265 -p moyen --weightb --bframes 8 --tu-intra-profondeur 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%
Tableau 4. Modification des préréglages du rapport de comparaison des codecs vidéo MSU HEVC pour augmenter l'efficacité du codage au même taux de codage

Tableau 5. Rapport sur la modification du préréglage de recodage rapide
image
5.


Tableau 6. Rapport sur la modification du préréglage de codage universel
image
6.


Le bon choix d'options est facile à vérifier en exécutant le script d'encodage avec les préréglages modifiés (tableau 7).

La configuration
Mesure de qualité
Temps de codage relatif
Transcodage rapide (référence)
1
1
Transcodage rapide, modifié
0,69
0,97
Transcodage universel (référence)
1
1
Transcodage universel, modifié
0,85
0,94
Tableau 7. Efficacité du codage à l'aide de préréglages modifiés par rapport aux préréglages du rapport «Comparaison des codecs vidéo MSU HEVC»

Essayons de voir ce que le changement d'options a influencé - nous ouvrirons dans Zond 265 un fichier codé par le préréglage modifié lors du transcodage rapide pour un débit de 8 Mbps et le comparerons avec le fichier, préréglage inchangé codé. La taille de l'unité de codage maximale reste la même et est de 32x32 (zone "--ctu 32"). Mais la taille du bloc minimum est passée de 16 à 8 (la zone «--min-cu-size 8»), c'est ce paramètre qui a donné la plus grande augmentation de qualité. Le nombre de trames B est passé de 3 à 4 (zone «--bframes 4»), mais le nombre maximal de trames «de référence» a augmenté (zone «--ref 4»). La zone SSIM affiche les graphiques SSIM / PSNR maximum pour trois composants: luminosité (Luma) et deux composants de couleur (Cb, Cr). Ils sont passés de 0,9623-0,9966 à 0,9771-0,9991. Les autres paramètres supplémentaires (--rc-lookahead 20 --early-skip --cutree) affectent l'algorithme d'encodage, et non le type de la vidéo résultante, cela se reflète principalement dans la vitesse d'encodage (voir Tableau 5). Il faut notervisuellement, l'image de la trame décodée a changé - les artefacts d'encodage ne sont plus visibles.

image
Figure 2. Capture d'écran du fichier Zond 265 encodé en utilisant la configuration corrigée de l'encodage rapide

De même, vous pouvez vérifier les paramètres du fichier encodé avec le préréglage d'encodage universel modifié et inchangé (Figure 3). La taille des partitions TU minimales n'a pas changé et est restée égale à 4x4 (zone «--tu-intra-profondeur 3»), le nombre de trames B est resté inchangé et égal à 3 (zone «--bframes 3»). SSIM est passé de 0,9789-0,9994 à 0,9811-0,9992. Par rapport à la configuration de transcodage rapide, la taille maximale des blocs a augmenté, est devenue égale à 64x64 (zone «--ctu 64»), un filtre SAO (zone «--sao») a été ajouté.

image
Figure 3. Capture d'écran du fichier Zond 265 codé à l'aide de la configuration de codage universel corrigée.

Ainsi, sur la base des tests, une liste d'options est proposée pour améliorer l'efficacité du codage (amélioration de la métrique SSIM avec le même débit et la même vitesse de codage) pour des configurations de codage rapides et universelles. En utilisant les modifications proposées pour un fichier contenant un grand nombre de petits détails, la valeur de la «mesure de qualité» intégrale du rapport «Comparaison des codecs vidéo MSU HEVC» s'est améliorée de 31% pour un transfert rapide et de 15% lorsqu'il est universel, le taux de codage n'a pas changé de manière significative. Parce que Étant donné que les tests ont été effectués séparément pour chaque option, dans la pratique, vous pouvez sélectionner et utiliser uniquement certaines options pratiques, et non la liste complète proposée.

Les références



  1. HEVC Video Codecs Comparison
  2. Blender Foundation | www.blender.org
  3. Zond 265 home page

Source: https://habr.com/ru/post/fr388423/


All Articles