Remasterização de Star Trek: Deep Space 9 para a qualidade máxima





Terminei, ou pelo menos fiz o suficiente para que meu projeto pareça que vai ser lançado, e não como preso sob o pretexto de melhorias vagas e incompreensíveis.



Não é costume contar a partir do final, mas aqui não funcionará de outra forma. Nos últimos nove meses, tenho trabalhado em uma remasterização do Deep Space 9 - desde que o software de resolução de vídeo assistido por IA começou a chegar ao mercado. Depois de ver que qualidade pode ser extraída de arquivos MKV antigos, decidi começar do início usando a fonte original e de qualidade superior - DVD. Nove meses depois, alcancei meu objetivo de criar um método de remasterização e upscaling de espaço profundo 9 que não dependesse de pentear manualmente as cenas e de algoritmos de desentrelaçamento de ajuste fino em uma tentativa de minimizar os comprometimentos na qualidade da imagem. E neste artigo irei demonstrar os resultados desse trabalho.



Eu criei uma versão 23.976 progressiva do Deep Space 9 usando um modelo de codinome Rio Grande. Eu não testei esse método em toda a série ainda - no entanto, ele teve um bom desempenho em episódios selecionados das temporadas 2, 4, 5 e 6. Quero agradecer a Cyril Niderprim por encontrar a solução ridiculamente simples abaixo. E embora Rio Grande possa lançar erros - darei exemplos deles a seguir - se estraga tanto o episódio que você não consegue aceitar, há uma alternativa.



Também consegui converter para 59,94 quadros por segundo com qualidade idêntica usando um modelo de codinome "Orinoco". Orinoco retém o movimento corretamente em todas as cenas e é anexado ao projeto para fins de seguro. Em termos de qualidade, é comparável ao Rio Grande, mas tem 2,5 vezes mais molduras, que demoram 2,5 vezes mais para serem processadas. O Rio Grande deveria funcionar - mas se não funcionar, o Orinoco funcionará. Se os dois métodos não forem suficientes para um episódio específico, descobri uma maneira de ajustar o sistema manualmente.



Defina todos os vídeos do YouTube incluídos no artigo em 4K para obter a melhor qualidade de reprodução - resoluções mais baixas não transmitem qualidade de imagem.



Fiz dois títulos para demonstrar as duas opções de escala de resolução diferentes que o Topaz oferece: Theia Detail (configurações padrão) e Gaia-CG. Aqui está o resultado do Gaia-CG:





Este não é um guia passo a passo que descreve o processo de processamento de vídeo de uma forma que qualquer pessoa pode controlar. Escrever tal instrução seria um projeto separado. No entanto, vou dar informações suficientes para que alguém com um conhecimento superficial do AviSynth possa repetir as duas abordagens.



O resultado do trabalho de Theia Detail:





Parte do quadro desaparece por alguns segundos enquanto o cargueiro Bajoran dá a volta na estação. Este é um erro único, não o vi em nenhum outro lugar da série, e ocorre com bastante frequência, independentemente dos filtros usados. Sempre aparece nos créditos e quase não estraga a imagem - não há necessidade de se preocupar que frames aleatórios do vídeo percam blocos.



A maioria dos vídeos é capturada de pelo menos duas maneiras diferentes. Se você não gosta da saída de Theia, experimente Gaia-CG. Se Gaia-CG não combina com você, você pode gostar do Gaia-HQ - incluí apenas um exemplo de como ele funciona neste artigo.



Dobra máxima



Rio Grande e Orinoco tentam fazer o mínimo possível de concessões no que diz respeito à qualidade da imagem. Cada etapa do processo é pensada de forma a salvar todos os detalhes em detrimento do espaço de armazenamento até a última codificação, após a qual você tem a liberdade de escolher o grau de perda de qualidade.







Todos os clipes mostrados aqui foram codificados em 0.0 H.264, e então a resolução foi aumentada quadro a quadro e sem perda. Codifiquei esses clipes no formato H.265 e com um CRF de 6, que acabou sendo demais. Viva e aprenda. Há uma diferença sutil entre os valores de CRF de 14 e 20 em quadros congelados, e 25 já parece muito feio.



Aumente os modelos de resolução: evite Artemis e aumente a resolução em 200%



Eu gravei pelo menos um exemplo para cada um dos modos de aumento de escala do Topaz, com exceção de Artemis-LQ e Artemis-HQ. Esses algoritmos são completamente inapropriados para o Deep Space 9 - não que eles distribuam algum tipo de lixo perfeito, mas eles reagem mal ao conteúdo desta série. Considere que eles não são adequados para a tarefa. O resultado do trabalho do Gaia-HQ não me impressionou muito, embora eu tenha postado um exemplo. Restam dois modelos, Theia e Gaia-CG.



Sempre gostei mais de Gaia-CG, então a maior parte dele é feito com esse modelo, embora eu também tenha demonstrado a família de algoritmos Theia. Eles têm configurações configuráveis ​​para ruído, clareza e restauração de detalhes - todos os quais podem ser muito úteis ao tentar remover o ruído de um ponto feio em uma parede ou carpete.



Deve-se evitar aumentar a resolução em 200%. Ele gera erros onde não há nenhum na fonte e a qualidade da imagem é significativamente inferior à obtida com uma ampliação de 400%. Observe que o processo de restauração tem uma peculiaridade - ele faz uma costura no lado direito ou esquerdo da moldura. Ele pode então ser facilmente cortado, mas isso deve ser levado em consideração.



Topaz oferece opções para upscaling sem perdas através de imagens ou MP4 com perdas. Todos os vídeos que você vê são feitos por meio de conversão sem perdas para PNG.



Quantas peças adicionais foram remanufaturadas?



A ideia maluca que me fez seguir esse caminho foi que eu posso extrair informações visuais adicionais acessando as fontes originais do DVD em vez dos arquivos de backup antigos. Aqui está um exemplo da minha melhor tentativa de aumentar a resolução a partir de janeiro:





É assim que era no passado.



Embora algumas melhorias sejam possíveis devido a melhorias de baixo nível nos programas de IA para aumentar a resolução, o programa precisa obter informações suficientes para aumentar a resolução da imagem sem transformá-la em uma confusão. Imagine uma cena em que tudo é renderizado em resolução de DVD e o cabelo de Odo em 4K. Seria muito estranho. Quanto mais detalhes o programa for capaz de extrair, mais chances terá de produzir algo bonito. Retornar ao DVD deu ao programa mais material para trabalhar.





É assim que parece hoje.



Para se ter uma ideia do progresso, aqui estão três frames de "Definir" - como é em DVD, a melhor ampliação que consegui obter em fevereiro e o melhor resultado até agora:





"Definir" em DVD. Melhor do que o Netflix.





Fevereiro de 2020: melhor, mas achei que poderia ser feito melhor.





Isso é muito melhor. Encoder Orinoco.



Aqui está minha foto favorita de "Design" de toda a série. Em abril, fiquei muito orgulhoso do que saiu disso. E ainda parece bom.





Eu ainda gosto, mas ainda podemos fazer melhor. A





ajuda de um modelo de IA devidamente ajustado é óbvia. O manuseio aprimorado pode resultar na limpeza do modelo de maneira um pouco diferente, no entanto, algumas partes do corpo mudaram de forma.



Os benefícios são claros. Cada vez que comparo um vídeo aprimorado feito de arquivos MKV antigos com um vídeo feito de DVD, o último vence.



Então, quão bom é o resultado?



O processamento cuidadoso e o aumento de resolução de boa resolução, na minha opinião, podem dar ao Deep Space 9 a nitidez do que é comumente referido como conteúdo "HD" - embora a imagem ainda seja limitada pelas especificidades da gama de cores NTSC, em comparação com padrões posteriores como "Rec. 709 ". Pelo menos divergindo do ideal, parece melhor do que qualquer DVD que você já viu. E nos melhores casos - e considero o quadro com Sisko um dos melhores - pelo menos na foto resultante o detalhamento chega ao nível HD.



As etapas que executei durante a recuperação corrigiram algumas das falhas da fonte, mas não todas. No episódio "The Warrior's Path" há uma sequência de frames que parece que algo foi derramado na fita - como consertar isso, não sei. Todos os resultados de codificação abaixo foram obtidos no Rio Grande.



Caminho do Guerreiro: não é uma ilusão



O episódio apresenta duas das melhores cenas de batalha da quarta temporada. No primeiro, Sisko usa Defynt para resgatar uma nave Cardassiana sendo alvejada pelos Klingons. Percebe-se que os especialistas em efeitos especiais experimentaram reapresentar a morte de personagens, feita de uma perspectiva externa - o que não é o caso em The Next Generation. Obviamente, os caras dos efeitos especiais se divertiram muito com "Defynt".





A segunda grande cena de batalha é mostrada abaixo. Tem um grande aceno para o piloto do show, onde Kira blefa para fazer um esquadrão de navios cardassianos acreditar que a estação está muito melhor armada do que realmente está.



Mas desta vez tudo é feito de forma diferente. Primeiro, o vídeo é ampliado com Theia Fidelity com as configurações padrão e, em seguida, processado em Gaia-CG. O último que usei anteriormente para tirar screenshots:





Incluí cenas de comunicação dos personagens na análise para demonstrar que essas tecnologias de processamento funcionam para mais do que apenas combate no espaço ou naves espaciais. Deep Space 9 não é apenas sobre batalhas filmadas em um computador, mas existem alguns ótimos exemplos dessas batalhas na série, especialmente para os padrões dos anos 90. Abaixo está Gaia-CG:





Paraíso Perdido



O Defiant luta contra os Lakota nesta batalha, enquanto parte da Frota Estelar tenta um golpe. O clipe mostra especificamente o que acontece quando o Rio Grande não processa a cena corretamente. Na maior parte, funciona, mas no final se contrai visivelmente. E fiz questão de que o caso aqui do Rio Grande - Orinoco lide com tudo perfeitamente bem. Se você não está preocupado com um pequeno espasmo, use o Rio Grande. Se estiver preocupado, experimente o Orinoco.





Muito além das estrelas



Um dos benefícios da ficção científica é que os criadores de programas podem facilmente lidar com as questões da viagem no tempo. Neste episódio, Benjamin Sisko é abandonado nos anos 1950 - pelo menos do seu ponto de vista - e enfrenta as injustiças raciais da época. Resolução aumentada em Gaia-CG:





No luar pálido



O melhor episódio de Deep Space 9 termina com um monólogo arrepiante. Resolução aumentada em Gaia-CG:





A mesma cena renderizada em Theia Detail com 10% de nitidez, 20% de remoção de ruído e 20% de restauração de detalhes.



Sacrifício de anjos



Você sabia que voltaríamos a este episódio? No episódio "Primeira Frota" (abaixo, renderizado em Gaia-CG), a federação decide batalhar as forças militares superiores combinadas dos Cardassianos e Domínios. Gosto das manobras das naves da classe Galaxy. De certos ângulos, muitas vezes parecem grossos e estranhos, enquanto de outros parecem muito bons. Em "Deep Space 9" a situação é muito melhor do que em "The Next Generation".





O primeiro ataque impede Defynt de abrir a lacuna de que precisa. A Frota Estelar decide tentar romper a frente inimiga, embora as forças inimigas sejam duas vezes maiores. Decidi representar essa cena de maneiras diferentes. Primeiro - Gaia-CG:





Então Gaia-CG com CRF = 20. Aqui a perda de qualidade acabou sendo pequena, mas não recomendo aumentar mais esse valor. O problema de usar DVD como fonte é que a qualidade começa a diminuir depois que uma pequena quantidade de detalhes é perdida, e as informações obtidas da imagem interpolada e ampliada não são particularmente boas de qualquer maneira. Com uma diminuição gradual da qualidade, em algum ponto, ela cai muito drasticamente. CRF = 25 acabou sendo demais.





Gaia-HQ:





Detalhe de Theia, configurações padrão:





Finalmente, Theia Fidelity com 20% de nitidez, 30% de restauração de detalhes, 20% de redução de ruído:





Embora eu tenha me concentrado nas últimas temporadas do programa, esse tipo de codificação e aprimoramento funciona nas primeiras temporadas. Esteja ciente de que o material de origem das primeiras temporadas disponível para nós não é de boa qualidade.



A demonstração terminou. Vamos falar sobre implementação.



Como codificar o Rio Grande



Por razões que ainda não estão claras para mim, os arquivos que StaxRip cria usando os métodos acima não são reproduzidos normalmente no Windows Media Player ou no Apple Quicktime. Mas eles jogam bem no VLC ou MPC-HC. Se os scripts abaixo retornarem um erro, certifique-se de que o editor não substitua as aspas.



Para a codificação Rio Grande, você precisa extrair o DVD com o DVD Decrypter e criar um arquivo de índice D2V usando DGIndex ou outro programa semelhante. Em seguida, abra sua interface AviSynth favorita, se estiver usando uma. Eu pessoalmente uso StaxRip.



O script para AviSynth é fornecido abaixo:



    TFM()
    TDecimate()
    QTGMC2 = QTGMC(Preset="Very Slow", SourceMatch=3, InputType=2, Lossless=2, MatchEnhance=0.75, Sharpness=0.5, MatchPreset="Very Slow", MatchPreset2="Very Slow")
    QTGMC3 = QTGMC(preset="Very Slow", inputType=3, prevGlobals="Reuse")
    Repair(QTGMC2, QTGMC3, 9)


Uma alternativa aos modelos Rio Grande e Orinoco, que eu, no entanto, não testei por muito tempo:



    TFM()
    TDecimate()
    QTGMC2 = QTGMC(Preset="Very Slow", SourceMatch=3, TR2=5, InputType=2, Lossless=2, noiserestore=0.1, NoiseDeint="Generate", grainrestore=0.1, MatchEnhance=0.75, Sharpness=0.5, MatchPreset="Very Slow", MatchPreset2="Very Slow")
    QTGMC3 = QTGMC(preset="Very Slow", SourceMatch=3, Lossless=2, InputType=3, TR2=5)
    Repair(QTGMC2, QTGMC3, 9)


Esse script parece fornecer qualidade um pouco melhor do que o Orinoco Standard em termos de ondulações.



Se sua imagem estiver distorcida, tente reverter para TR2 = 4. O mesmo se aplica ao Orinoco, só que precisará ser retirado InputType=2 InputType=3do Rio Grande.



Isso é tudo. Você também poderá inserir ruído de volta no vídeo enquanto esses scripts estão sendo executados. O ruído adicionado a uma das passagens do QTGMC permanecerá na imagem após a recuperação. O Rio Grande não oferece uma imagem 100% perfeita, mas com 29,976 fps funciona quase perfeitamente em todas as cenas que testei, exceto uma. Se ele tem mais problemas do que eu esperava, foi exatamente por isso que fiz o Orinoco. Tecnicamente, será possível renderizar uma cena específica a 59,94 fps e, em seguida, incluí-la na versão de 23,976 fps reunindo um arquivo VFR durante a compilação das imagens resultantes em vídeo.



É necessário executar o QTGMC para melhorar a imagem e, embora esteja aberto a sugestões, até agora nada do que tentei chegou perto da qualidade que esse script produz. Pode ser ajustado em termos da profundidade do impacto na imagem e do tempo de processamento, mas você notará que quando vai de Muito lento para Lento ou Médio, a qualidade se deteriora de forma bastante perceptível. Se você adora ruído na imagem e não se importa em perder tempo procurando artefatos (ou sabe como se livrar deles de outra forma), Slow é sua escolha.



A única desvantagem desta forma de executar o QTGMC é que às vezes produz ondulações em alguma parte da cena. É mais fácil para mim ignorar isso, e todas as soluções para esse problema que tentei encontrar, no final, prejudicam ainda mais. E embora eu gostaria de me livrar disso, por enquanto ele pertence à categoria de um "recurso" tolerável.







As sequências são InputType=2 InputType=3muito importantes. Executar uma única cópia do QTGMC não terá o mesmo efeito. Executar duas cópias com InputType=2não terá o mesmo efeito. Existem nove maneiras possíveis de combinar tipos de entrada ao executar a recuperação de imagem e tentei todas elas. O 2,3 funciona melhor, desde O emissário até O que você deixou para trás.



Também testei todos os 25 modos funcionais de reparo compatíveis com o AviSynth. Você precisa de um modo, 9. Se por algum motivo não se adequar a você, experimente, 1. A maioria dos outros praticamente não tem efeito no resultado, e alguns deles até quebram o quadro de uma maneira interessante. Verifiquei todos eles várias vezes apenas para ver como o resultado final muda dependendo do modo que escolhi.



Como codificar Orinoco



O Orinoco não é fácil de codificar, mas é muito melhor do que eu esperava.



Tudo começa com o fato de que, em vez de um arquivo, criamos dois. Codifique a primeira versão da sequência usando o seguinte script:



    TDeint(mode=1, type=2, tryweave=true, mtnmode=3, full=false, ap=10, aptype=2, slow=2)


Ele instrui o TDeint a emitir um conjunto duplo de quadros, interpolar o kernel [interpolação do kernel], tentar recuperar o quadro usando entrelaçamento, se o resultado for menos artefatos do que com desentrelaçamento, e aplicar desentrelaçamento aos quadros onde há entrelaçamento. Este modo preserva os quadros progressivos incluídos na fonte NTSC. A segunda melhor opção depois de Type = 2 era Type = 5, mas apresentava mais problemas do que resolvia.







Agora vamos deixar de lado o clipe resultante e passar para outro. Ele precisa ser executado por meio do seguinte script:



    QTGMC2 = QTGMC(Preset="Very Slow", SourceMatch=3, Lossless=2, MatchEnhance=0.75, Sharpness=0.5, MatchPreset="Very Slow", MatchPreset2="Very Slow")
    QTGMC3 = QTGMC(preset="Very Slow", prevGlobals=”Reuse”)
    Repair(QTGMC2, QTGMC3, 9)


O roteiro é semelhante, mas não idêntico ao que usamos para o Rio Grande. Essa implementação QTGMC é executada em modo progressivo. No caso do Orinoco, precisamos dobrar a taxa de quadros, de 29,97 fps para 59,94 fps. Depois que as taxas de quadros de QTGMC e TDeint coincidirem, lançamos a recuperação neles também. Se você executar dois clipes em taxas de quadros diferentes no modo Reparar, você verá imediatamente - verá uma costura estranha em movimento na tela.



É claro que, pelo que entendi, essa é uma abordagem de cabeça para baixo para a edição de vídeo - mas minha loucura faz sentido. A razão pela qual as pessoas normalmente não inserem um monte de quadros de vídeo para aumentar o VFR de 23,976 / 29,97 para 59,94 fps é porque as placas interpoladas dessa forma que aumentam a frequência podem causar erros visuais e outros problemas. Aí está o problema: se você não incluí-los, o arquivo de saída ficará irregular. Se ativada, a alteração dos limites do quadro às vezes parecerá muito estranha ou diferentes partes do quadro se fundirão. A situação é razoável.



Mas existe uma maneira de consertar isso.



    clip1=FFVideoSource(“C:\DS9S6D2\Sacrifice-TDeint.mkv”)
    clip2=FFVideoSource(“C:\DS9S6D2\Sacrifice-QTGMC-ToPairWithTDeint.mkv”)
    Repair(clip1, clip2, 9)


Criamos um arquivo QTGMC interpolado para torná-lo uma fonte nítida e limpa para o Sacrifice-TDeint. Como eu disse, eu uso o QTGMC porque não encontrei outro método para obter um vídeo limpo. Use a configuração Muito lento para reduzir o ruído na imagem.



No vídeo resultante, você pode opcionalmente executar o QTGMC novamente, mas então o vídeo parecerá muito processado. Os modelos Theia são capazes de compensar um pouco esse efeito graças a um algoritmo de redução de ruído bastante eficaz.



Em termos de qualidade, Orinoco e Rio Grande dão aproximadamente o mesmo resultado, e muitas vezes nem percebo a diferença ao compará-los quadro a quadro (além de quadros interpolados, é claro). Prefiro o Rio Grande porque é mais simples e rápido, mas não posso garantir que funcionará em todos os 176 episódios da série. Se você se deparar com um episódio em que o movimento esteja tremendo ou saltando, experimente dirigir pelo Orinoco em vez do Rio Grande.



Desvantagens e problemas



Orinoco e Rio Grande não são perfeitos. Ainda estou procurando um método para eliminar as ondulações. Este é um pequeno problema, mas praticamente o único a ser resolvido. De longe, a melhor solução seria usar MCTemporalDenoise, no entanto, esse método parece ser completamente de thread único e também me dá outros problemas de qualidade.



Se você quiser experimentar MCTemporalDenoise, recomendo definir o número de pixels em 7 e a intensidade do efeito não excedendo 2-3. As ondulações não desaparecem completamente, mas em alguns lugares elas melhoram. Se você não gostar da qualidade resultante, contorne os modelos de aumento de resolução da Theia e tente aplicar uma redução de ruído de 10-20%.



Meu objetivo era criar um modelo universal para todo o projeto, mas estarei registrando todas as alterações que precisam ser feitas nos modelos para lidar com episódios problemáticos.



Aviso importante sobre a leitura do DVD da 1ª temporada



StaxRip se comporta de maneira muito estranha ao carregar um arquivo D2V contendo 98-99% do vídeo. Ele mudou a taxa de quadros para mim mais de uma vez - de automática 29,97 para 23,976. E, nesses casos, ele sobrescreve o arquivo gerado pelo DGIndex. Se você aplicar o modelo Rio Grande a um arquivo 23.976, obterá um conteúdo de 19 fps que parece muito ruim.



Ainda estou tentando descobrir por que isso está acontecendo. Em episódios com 98,5-99,5% de vídeo, você geralmente pode presumir que apenas os títulos estão indo com uma frequência de 29,97 e codificar esses episódios omitindo os segmentos TFM / TDecimate.



Da próxima vez ... no projeto de aprimoramento de resolução Deep Space 9



Depois de terminar o projeto, posso começar a saquear episódios dos discos e codificar. Vou escrever um kit de treinamento com instruções sobre como fazer isso, fazer um teste de velocidade para estações de trabalho e resolver problemas com episódios específicos. Eu criei um método totalmente gratuito para aumentar a resolução, que, embora não funcione tão bem como o Topaz, obviamente melhora a imagem. Eu também quero lidar com PAL.







ViacomCBS não considera Deep Space 9 digno de remasterização. Eu penso que eles estão errados. A qualidade que pode ser extraída de um DVD não é a ideal, então eu não chamo os resultados do meu trabalho de 4K ou UHD, embora as pessoas frequentemente usem esses termos em tais projetos. Você pode esticar Deep Space 9 para 4K, mas não pode espremer essa qualidade de uma fonte de DVD. A solução não é perfeita, mas está muitos anos-luz à frente de todas as opções anteriores. Se descobrirmos que o Rio Grande costuma cometer erros com uma frequência de 23.976, encontraremos uma solução para esses epíodos. Há todos os motivos para acreditar que a nova placa Nvidia GeForce RTX 3080 acelerará seriamente esse aumento na resolução, o que facilitará a conversão para uma taxa de quadros de 59,94.



Nenhum outro fanático por Jornada nas Estrelas terá que esperar que a ViacomCBS encontre o valor financeiro de investir em seu próprio arquivo. Os DVDs e o software custarão dinheiro e você terá que gastar muito tempo de computação no projeto. Em uma placa RTX 2080, leva cerca de 8-11 horas para aumentar a resolução de um episódio a uma taxa de quadros de 23,976. Uma frequência de 59,94 leva proporcionalmente mais tempo, embora a codificação possa ser pausada e continuada conforme necessário. Até o momento, a melhor taxa foi de 10 a 14 horas por episódio. Isso é cerca de 2.464 horas, ou cerca de 103 dias para toda a série. O projeto está aproximadamente no limite do que é possível para um indivíduo.



Novamente, você pode simplesmente executar o DVD por meio do AviSynth para melhorar drasticamente a qualidade e a resolução de episódios individuais. Eu, por exemplo, pensei em pular a 1ª e a 2ª temporadas. Também espero que o Ampere seja capaz de melhorar significativamente a eficiência de seu motor AI.



A maioria das pessoas fará isso? Não. A maioria das pessoas assistirá a série no Netflix, onde a qualidade será muito menor do que no DVD.



Mas a partir de hoje, ninguém é obrigado a fazer isso. Agora você pode ver o trabalho de atores e especialistas em efeitos visuais conforme pretendido. Orinoco e Rio Grande não são perfeitos, mas mostram quanta qualidade você pode extrair dos DVDs do final dos anos 90. As GPUs estão ficando mais rápidas. Os impulsionadores de resolução AI0 estão ficando mais inteligentes. Mesmo que o seu computador ou GPU atual não consiga lidar com esse projeto, o próximo pode estar no ombro.



All Articles