Nous sommes dans UltraHD Morty! Comment regarder n'importe quel film en 4K

Vous avez probablement entendu parler de la technologie DeepHD de Yandex qu'ils ont utilisée pour améliorer la qualité des vieux dessins animés soviétiques. Malheureusement, ce n'est pas encore public, et nous, programmeurs réguliers, n'avons pas le dévouement pour écrire notre propre solution. Mais personnellement, je voulais vraiment regarder Rick et Morty sur mon écran Retina 2880x1880 . Et j'ai été profondément déçu, car même la vidéo 1080p (la plus élevée disponible pour cette série) semble vraiment floue sur un écran Retina! Ne vous méprenez pas, 1080p est souvent assez bon, mais Retina est conçu de telle manière qu'une animation avec ses contours prononcés en 1080p semble terriblement floue, comme 480p sur un moniteur FullHD.

J'ai décidé de voir Rick et Morty en 4K, même si je ne peux pas écrire de réseaux de neurones. Et, étonnamment, j'ai trouvé une solution. Vous n'avez même pas besoin d'écrire de code: tout ce dont vous avez besoin est d' environ 100 Go d'espace libre et un peu de patience. Le résultat est une image 4K nette qui est meilleure que toute interpolation.



Les préparatifs


Tout d'abord, nous devons comprendre qu'il n'existe pas de technologie pour la mise à l'échelle vidéo à l'aide de réseaux de neurones. Ou du moins, il n'est pas accessible au public. Et puisque c'est le cas, nous devons transformer notre vidéo en un tas d'images fixes!

Adobe Premiere Pro ou toute autre suite de montage vidéo peut le faire, mais, comme il n'est probablement pas installé sur beaucoup de PC, j'ai utilisé l'utilitaire de console ffmpeg . J'ai pris le premier épisode de la première série et je suis parti:

$ ffmpeg -i RiM01x01_4K.mp4 -q:v 1 IM/01x01_%05d.jpg 

Pourquoi jpg et pas PNG?
Une bonne question. Le fait est que 31 000 PNG résultants auraient pris énormément de place. À tel point qu'un léger sacrifice de qualité en vaut la peine. De plus, le paramètre = q: v 1 signifie que nous générons des JPG avec la meilleure qualité possible.

Environ 10 minutes plus tard, nous obtenons un énorme dossier rempli d'images. Pour moi, il a fallu 26 Go .

Maintenant, tout ce dont nous avons besoin est de traiter chacun d'entre eux!

Comment?


J'ai trouvé trois options qui fonctionnaient assez bien - plutôt célèbres Let's Enhance , waifu2x orienté anime et Mail.ru Vision.

Je montrerai les exemples plus tard.

Mail.ru Vision et Let's Enhance font du bon travail, mais malheureusement, ils ne sont pas open-source, ce qui signifie que pour traiter 31000 images, j'aurais besoin d'écrire un e-mail à leurs créateurs et probablement payer beaucoup. Waifu2x est open-source, mais le résultat était plutôt médiocre - beaucoup de bruits et d'artefacts. Après tout, Rick et Morty ne sont pas des anime.

Je me suis presque résigné à creuser GitHub et les forums thématiques, mais ... un sauveur est apparu! J'ai trouvé une solution qui fonctionnait localement sur la machine, traite 1 image en moins d'une seconde et livre en qualité. Vous ne croirez pas qui est venu à notre secours une fois de plus!

Adobe Photoshop!

Et non, je ne vais pas vous raconter comment vous pouvez améliorer une image avec quelques filtres. Adobe a en fait formé un réseau neuronal approprié qui peut «compléter» une image lorsque vous la mettez à l'échelle dans l'application!

Pour commencer, nous devons ouvrir l'image source, aller dans le menu du haut, puis Image - Taille de l'image, et choisir l'option de rééchantillonnage «Preserve Details 2.0».



Le résultat était étonnamment bon! Probablement seulement à la fin de Let's Enhance. Voici la comparaison (avec l'image agrandie à environ 800%):



Et maintenant? Traiter manuellement chaque image?
Bien sûr que non! Photoshop dispose de l'outil Actions qui permet d'enregistrer d'abord une séquence d'actions, puis de l'appliquer à un dossier entier d'images. Le processus est une recherche rapide sur Google.

J'ai quitté mon ordinateur portable pour traiter 31 000 images toute la nuit avec une simple instruction: «upscale 2x and save». Le lendemain matin, tout était prêt. J'avais un autre dossier plein d'images, mais maintenant en 4K et occupant 82 Go d'espace disque .

Retour à la vidéo


Ffmpeg à nouveau à la rescousse.

Tout d'abord, nous nous souvenons d'avoir oublié la piste audio et de l'extraire du fichier d'origine:

 ffmpeg -i RiM01x01_1080p.mp4 -vn -ar 44100 -ac 2 -ab 320K -f mp3 sound.mp3 

Ensuite, nous mettons le fichier audio dans le dossier avec toutes les images 4K. Nous sommes maintenant prêts pour le montage final!

 ffmpeg -i 01x01_%05d.jpg -i sn.mp3 -vcodec libx264 -preset veryslow -crf 10 -r 23.976 RiM_01x01_4K.mp4 

Attention : après -r, spécifiez le framerate exact de l'original , sinon la piste audio serait mal alignée avec la vidéo!

C'est fait!


Nous avons maintenant le premier épisode de Rick et Morty en 4K. Voici l' exemple de vidéo . Bien sûr, tout le processus était un peu amateur, mais cette approche a un sérieux avantage. Lors de l'importation des images dans Photoshop, nous pouvons les bricoler manuellement pour les obtenir juste. Ajustez la mise au point, la balance des couleurs sur la base de quelques images, écrivez-la dans une action, appliquez-la à toute la vidéo et - le tour est joué! Un résultat parfait sans trop de ruse mathématique. Cela rapproche un peu le «miracle upscaling» d'un utilisateur moyen. Les technologies les plus complexes développées depuis des siècles ne peuvent pas être utilisées rapidement et sans connaissances particulières - quel est-il, sinon l'avenir?

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


All Articles