Você provavelmente já ouviu falar
da tecnologia DeepHD da Yandex, que eles costumavam usar para melhorar a qualidade dos antigos desenhos animados soviéticos. Infelizmente, ainda não é público, e nós, programadores regulares, não temos a dedicação de escrever nossa própria solução. Mas, pessoalmente, eu realmente queria assistir Rick e Morty na minha
tela Retina de
2880x1880 . Fiquei profundamente desapontado, pois até o vídeo
1080p (o mais alto disponível para esta série) parece realmente desfocado em uma tela Retina! Não me entenda mal, 1080p geralmente é bom o suficiente, mas o Retina é projetado de tal maneira que uma animação com contornos pronunciados em 1080p parece tremidamente embaçada, como 480p em um monitor FullHD.
Decidi que queria ver Rick e Morty em 4K, mesmo que não consiga escrever redes neurais. E, surpreendentemente, encontrei uma solução. Você nem precisa escrever nenhum código: tudo o que você precisa é de
cerca de 100 GB de espaço livre e um pouco de paciência. O resultado é uma imagem 4K nítida que parece melhor do que qualquer interpolação.

Preparações
Primeiro, precisamos entender que não existe uma tecnologia para aumentar o vídeo usando redes neurais. Ou pelo menos não está disponível ao público. E como esse é o caso, precisamos transformar nosso vídeo em vários quadros estáticos!
O Adobe Premiere Pro ou qualquer outro conjunto de edição de vídeo pode fazer isso, mas, como provavelmente não está instalado em muitos PCs, usei o utilitário de console
ffmpeg . Levei o primeiro episódio da primeira série e fui embora:
$ ffmpeg -i RiM01x01_4K.mp4 -q:v 1 IM/01x01_%05d.jpg
Por que jpg e não PNG?Uma pergunta justa. O problema é que 31.000 PNGs resultantes teriam ocupado muito espaço. Tanto que um pequeno sacrifício de qualidade vale a pena. Além disso, o parâmetro = q: v 1 significa que estamos produzindo JPGs com a maior qualidade possível.
Cerca de 10 minutos depois, temos uma enorme pasta cheia de imagens. Para mim, foram necessários 26
GB .

Agora tudo o que precisamos é processar cada um deles!
Como
Encontrei três opções que funcionavam razoavelmente bem - o famoso
Let's Enhance , o
waifu2x orientado a
anime e o Mail.ru Vision.
Vou mostrar os exemplos mais tarde.
O Mail.ru Vision e o Let's Enhance fazem um bom trabalho, mas infelizmente não são de código aberto, o que significa processar 31.000 imagens. Preciso escrever um e-mail para seus criadores e provavelmente pagar um pouco. O Waifu2x é de código aberto, mas o resultado foi bastante ruim - muitos ruídos e artefatos. Afinal, Rick e Morty não são anime.
Eu quase me resignei a cavar GitHub e fóruns tópicos, mas ... um salvador apareceu! Encontrei uma solução que funcionava na máquina localmente, processa 1 imagem em menos de um segundo e oferece qualidade. Você não vai acreditar em quem veio em nosso socorro mais uma vez!
Adobe Photoshop!E não, não vou contar uma história sobre como você pode aprimorar uma imagem com alguns filtros. Na verdade, a Adobe treinou uma rede neural adequada que pode "concluir" uma imagem quando você a aprimora no aplicativo!
Para começar, precisamos abrir a imagem de origem, ir para o menu superior e, em seguida, Imagem - Tamanho da imagem e escolher a opção de reamostragem "Preserve Details 2.0".

O resultado foi surpreendentemente bom! Provavelmente apenas à direita, vamos melhorar. Aqui está a comparação (com a imagem ampliada em cerca de 800%):
E agora? Processar manualmente todos os quadros?Claro que não! O Photoshop possui a ferramenta Actions, que permite gravar primeiro uma sequência de ações e aplicá-la a uma pasta inteira de imagens. O processo é uma pesquisa superficial do Google.
Deixei meu laptop para processar 31.000 quadros durante a noite com uma instrução simples: "aprimore 2x e economize". Na manhã seguinte, tudo estava pronto. Eu tinha outra pasta cheia de imagens, mas agora em 4K e ocupando
82 GB de espaço em disco .
Voltar ao vídeo
Ffmpeg para o resgate novamente.
Primeiro, lembramos que esquecemos a faixa de áudio e a extraímos do arquivo original:
ffmpeg -i RiM01x01_1080p.mp4 -vn -ar 44100 -ac 2 -ab 320K -f mp3 sound.mp3
Em seguida, colocamos o arquivo de som na pasta com todas as imagens em 4K. Agora estamos prontos para a montagem final!
ffmpeg -i 01x01_%05d.jpg -i sn.mp3 -vcodec libx264 -preset veryslow -crf 10 -r 23.976 RiM_01x01_4K.mp4
Cuidado : depois de -r especifique a
taxa de quadros exata do original , ou a faixa de áudio ficará desalinhada com o vídeo!
Está feito!
Agora temos o primeiro episódio de Rick e Morty em 4K. Aqui está o
exemplo de vídeo . Obviamente, todo o processo foi um pouco amador, mas essa abordagem tem uma vantagem séria. Ao importar as imagens para o Photoshop, podemos mexer manualmente com elas para fazer o que é certo. Ajuste o foco, o equilíbrio de cores com base em alguns quadros, grave-o em uma Ação, aplique-o ao vídeo inteiro e - pronto! Um resultado perfeito sem muitos truques matemáticos. Isso aproxima o "milagre do upscaling" de um usuário comum. As mais complexas tecnologias em desenvolvimento há séculos não podem ser usadas rapidamente e sem conhecimento especial - o que é, senão o futuro?