AV1@Scale: o despertar da síntese de granulação de filme
(netflixtechblog.com)- A Netflix está expandindo globalmente os streams com Film Grain Synthesis (FGS) do AV1 para reduzir o uso de dados no streaming, preservando ao mesmo tempo a textura da granulação de filme
- Em vez de comprimir a granulação diretamente, o FGS envia o vídeo com a granulação removida e os parâmetros do modelo de granulação, sintetizando-a novamente em blocos no momento da reprodução
- No exemplo de They Cloned Tyrone, o AV1 FGS ficou em 2804 kbps contra 8274 kbps do AV1 comum, mostrando cerca de 66% de redução de bitrate em cenas com granulação intensa
- Na avaliação de cerca de 300 títulos, conteúdos em 1080p ou mais tiveram 36% de redução média de bitrate, enquanto abaixo de 1080p o efeito ficou em torno de 10% devido à redução de ruído causada pelo downscaling
- Em testes A/B antes do rollout, foram observadas reduções de 24% no bitrate inicial, 31,6% no bitrate médio, 10% no rebuffering e 10% na latência de início, e a aplicação em larga escala nos dispositivos compatíveis está em andamento desde março de 2025
Expansão do AV1 Film Grain Synthesis da Netflix
- A Netflix recentemente expandiu os streams com AV1 Film Grain Synthesis (FGS) para membros do mundo todo
- O FGS já fazia parte do padrão AV1 desde o início, mas no lançamento inicial do codec AV1 pela Netflix em 2021 ele foi habilitado apenas para um número limitado de títulos
- O objetivo desta expansão é preservar a integridade artística da granulação de filme enquanto aumenta a eficiência de dados
- A granulação de filme é um elemento que cria textura, realismo e nostalgia em filmes clássicos, mas, por ter alta aleatoriedade, a compressão tradicional exigia um compromisso entre reduzir o tamanho do arquivo e preservar os grãos
- Mesmo em vídeo digital, há ruído do sensor da câmera ou granulação adicionada intencionalmente na pós-produção, o que dificulta ainda mais a compressão
Como o AV1 FGS trata a granulação
- Em vez de comprimir a granulação diretamente, o AV1 FGS primeiro codifica um denoised video, removendo a granulação do vídeo original
- Parâmetros que modelam a forma e a intensidade da granulação são transmitidos junto com os dados de vídeo comprimido, e a granulação é sintetizada novamente durante a reprodução
- O padrão AV1 não define um método específico para remover a granulação, então o usuário pode escolher o denoiser que preferir
- Na etapa de reprodução, a granulação de filme é restaurada com um método baseado em blocos otimizado para funcionar de forma fluida em dispositivos de consumo
- Uma explicação mais detalhada está disponível no artigo original
Modelo de padrão e intensidade da granulação
-
Film Grain Pattern
- Um modelo auto-regressivo (auto-regressive model) replica o padrão da granulação de filme
- O parâmetro principal são os coeficientes AR, que podem ser estimados a partir do resíduo entre o vídeo de origem e o denoised video
- Esse modelo captura a correlação espacial entre amostras da granulação, preservando as características originais do ruído
- Ao ajustar os coeficientes AR
{ai}, é possível deixar a forma da granulação mais áspera ou mais fina - Esses coeficientes geram um template de ruído 64x64 e, durante a reprodução, patches 32x32 aleatórios são extraídos e somados ao vídeo decodificado
-
Film Grain Intensity
- Uma função de escala controla a aparência da granulação de acordo com as condições de brilho
- Essa função é estimada durante a codificação e modela a relação entre o valor do pixel e a intensidade do ruído como uma função linear por trechos
- A intensidade da granulação é ajustada conforme o brilho e a cor do vídeo para reproduzir melhor a aparência do material original
Melhora de qualidade de imagem e redução de bitrate
- A Netflix comparou AV1 comum e AV1 FGS usando como exemplo um frame de They Cloned Tyrone
- O AV1 comum ficou em 8274 kbps, enquanto o AV1 FGS ficou em 2804 kbps, uma redução de bitrate de cerca de 66%
- Nesse exemplo com granulação de filme intensa, o AV1 comum pode apresentar ruído distorcido com padrões semelhantes a DCT, mas a versão com FGS preserva a integridade da granulação mesmo com bitrate mais baixo
- O ruído sintetizado pode mascarar artefatos de compressão e proporcionar uma experiência visual melhor
- No stream AV1 comum e no stream AV1 FGS sem ruído sintetizado, artefatos de compressão são visíveis
- No stream AV1 FGS com síntese de granulação aplicada, parte dos artefatos de compressão é ocultada pelo mascaramento de contraste do sistema visual humano
Limites da medição de qualidade e avaliação do catálogo
- Atualmente, a Netflix não possui um modelo de qualidade dedicado para síntese de granulação de filme
- Como o ruído no vídeo de origem e no vídeo decodificado aparece em posições de pixel diferentes, métodos de comparação por pixel como PSNR ou VMAF podem atribuir notas de qualidade mais baixas
- Avaliações internas confirmaram melhorias de qualidade visual e valor técnico
- Cerca de 300 títulos com diferentes níveis de granulação foram selecionados para avaliar o impacto do AV1 FGS
- Em resoluções de 1080p ou superiores, o bitrate médio caiu 36%
- Em resoluções abaixo de 1080p, a redução de bitrate ficou em cerca de 10%
- Uma possível razão para o efeito menor em baixas resoluções é que o ruído é filtrado durante o processo de downscaling
- Ao ativar a ferramenta de codificação FGS, um overhead de sintaxe continua sendo adicionado ao bitstream
Impacto no streaming observado em testes A/B
- Antes do rollout, a Netflix avaliou com testes A/B o impacto da ativação do AV1 FGS no streaming como um todo
- Os resultados do teste levaram a uma QoE mais suave e estável
- As melhorias observadas foram as seguintes
- No início da reprodução, o bitrate caiu 24% e o bitrate médio caiu 31,6%, reduzindo a necessidade de largura de banda da rede e de armazenamento dos streams de download
- A taxa de erros de reprodução caiu cerca de 3%
- O número de rebufferings caiu 10% e a duração do rebuffering caiu 5%
- A latência de início caiu 10%, possivelmente porque, com bitrate menor, os dispositivos alcançaram mais rápido o nível de buffer desejado
- Quedas perceptíveis de bitrate caíram 10%, e o tempo gasto pelos usuários ajustando a posição de reprodução também caiu 10%
- Em dispositivos com suporte a 4K, cerca de 0,7% do tempo de visualização migrou de 1080p ou menos para 2160p
- Essa migração de resolução ocorreu porque a redução de bitrate nos pontos de troca facilitou atingir a maior resolução da sessão
Status do rollout e próximos planos
- A Netflix vem fazendo o rollout em larga escala do FGS desde março de 2025, e atualmente muitos usuários já podem assistir a streams com FGS ativado em dispositivos compatíveis
- Como exemplos para experimentar streams com FGS, foram citados The Hot Spot, Kung Fu Cult Master, Initial D, God of Gamblers II, Baahubali 2: The Conclusion, Dept. Q
- Em alguns títulos, talvez seja necessário desativar o HDR no menu de configurações para experimentar diretamente o novo stream com FGS
- No próximo texto, a Netflix pretende abordar como implementou esse trabalho em seu pipeline de codificação de vídeo e os insights obtidos
1 comentários
Opiniões do Hacker News
Está deixando passar o fato de que o ruído sintetizado pode não conter os detalhes e informações que existiam no ruído original
Ao ver uma codificação de alta qualidade com ruído real, a resolução aumenta de forma surpreendente quando se passa de uma imagem estática para vídeo. O ruído parece dançar sobre o sinal e, a 24 fps, o sinal por trás dele ainda aparece nítido
Por outro lado, se você descarta o ruído quadro a quadro e depois recoloca um ruído artificial “esteticamente” parecido, os detalhes originais não podem ser recuperados e, ao assistir a 24 fps, o resultado fica fundamentalmente mais borrado. Em filmes antigos com muito ruído, a diferença de detalhe pode chegar a 2x
Se H.265 ou AV1 levarem o movimento em conta, olhando vários quadros anteriores e posteriores juntos para criar um quadro com “remoção de ruído”, em teoria poderiam encontrar e codificar o sinal com todos os detalhes ao longo do eixo temporal, mas não sei se isso é feito na prática. Gostaria de saber se eu estiver errado
O ponto central é que a comparação entre remoção de ruído e síntese não deve ser feita com imagens estáticas. Para saber se detalhes estão sendo descartados ou preservados, é preciso comparar os vídeos reais lado a lado. Ruído não é só ruído; também é detalhe
Do ponto de vista estético, o grão sintetizado do AV1 não parece levar em conta o tamanho dos grãos do vídeo original. Por isso, o grão espesso vindo dos grandes cristais de haleto de prata de filmes antigos pode aparecer na síntese como um grão fino, ficando estranho. Um bom removedor de ruído de filme talvez atenue isso
Ele também não modela corretamente os componentes de cor separados do filme, mas dizem que isso não é um grande problema porque as fontes de vídeo da Netflix muitas vezes já vêm com chroma subsampling: https://norkin.org/pdf/DCC_2018_AV1_film_grain.pdf
Só li um pouco sobre essa área, então posso estar errado
Para explicar o aspecto temporal, basta pensar em um projetor de filme tradicional. Entre cada quadro, você vê escuridão total por um período muito curto. Poderíamos chamar essa escuridão de “ruído” e, se ficássemos naquele instante, não veríamos nenhum sinal original
Mas nosso sistema visual faz uma média temporal até certo ponto, então mal percebemos essa cintilação (https://en.wikipedia.org/wiki/Flicker_fusion_threshold). Ruído e grão parecem ser percebidos de modo semelhante, ficando menos proeminentes do que as partes estáveis do sinal/imagem
Assim como astrofotógrafos empilham imagens ruidosas para obter uma imagem com alta relação sinal-ruído, acho que o cérebro também faz isso em alguma medida. Não quero dizer que ele alucine detalhes inexistentes, mas que o ruído registrado retorna à média ao longo do tempo, e essa média representa o sinal real com mais clareza. Claro que isso não é perfeito por causa de ruído sistemático/não aleatório, mas em geral isso é menos importante
Algoritmos de remoção de ruído que processam apenas quadros individuais não têm esse contexto e acabam perdendo detalhes ou tentando corrigi-los por palpite. O AV1 não impõe um algoritmo específico, então, em teoria, um algoritmo inteligente poderia usar o contexto temporal para preservar detalhes adicionais
Se você tirar a média de alguns quadros estáticos, o sinal que não muda é preservado e o ruído aleatório se cancela, melhorando a relação sinal-ruído. Preservar o ruído em si não é útil
O efeito percebido pode ser uma preferência estética pelo comportamento do grão original, ou pode vir da comparação de conteúdo de baixa largura de banda com artefatos fortes de compressão, como suavização/filtro passa-baixa, contra uma versão de alta largura de banda que mantém todos os detalhes. Isso é independente do grão sobreposto
O valor de adicionar ruído é algo que pode ser debatido filosoficamente, mas o problema do exemplo aqui é que o processo de remoção de ruído deixa tudo excessivamente borrado, fazendo com que tanto a versão sem ruído quanto a imagem com grão sintetizado pareçam visivelmente menos nítidas que o original
O próprio grão também parece ruído básico demais, e não se parece de fato com grão de filme
Como resultado, o grão original “se espalha” por áreas maiores e fica turvo, e, ao tentar codificar grãos nítidos, perde-se até a nitidez da cena real
A síntese de grão de filme faz sentido em streaming com largura de banda limitada. Dito isso, concordo que o grão sintetizado do exemplo não parece muito com grão. E, dependendo da quantidade e do método de remoção de ruído, os detalhes da cena podem ficar borrados
Seria bom oferecer a opção de ativar e desativar a simulação de filme
Um dos meus filmes favoritos, The Holdovers, fez uma simulação de filme muito boa. Ele se passa nos anos 70 e tenta parecer um filme daquela época
Aos meus olhos ficou excelente, mas um verdadeiro entusiasta de película provavelmente perceberia muitas partes imprecisas
Num futuro próximo, talvez a Netflix processe alguns efeitos de pós-produção no cliente. Se a pessoa tiver daltonismo, usa um modo adequado; se não gostar de grão falso, desativa
Há alguns pontos de atenção
Quadros estáticos não são um método muito bom para avaliar qualidade de vídeo
Mesmo um filtro de remoção de ruído teoricamente perfeito[1] sempre parecerá ter menos detalhes do que a fonte original. Isso porque o sistema cérebro/olho cria mais detalhes em uma imagem com ruído do que em uma imagem borrada
[1] Perfeito aqui significa preservar 100% dos detalhes que não são grão, não restaurar magicamente detalhes perdidos por causa do ruído
Como bônus, muitos espectadores receberiam bem uma opção para desativá-lo
A verdadeira história aqui é a parte de “aplicação em larga escala”. A síntese de grão de filme já existe há algum tempo em encoders AV1 comuns, mas exigia certo ajuste manual para evitar problemas
Por isso, em ambientes de produção, era usada apenas em catálogos muito limitados ou em títulos especialmente importantes. Aqui eles não detalham como superaram esse problema, mas é bom ver uma distribuição mais ampla
Quanto ao lado que detesta grão, tudo naturalmente tem algum nível de ruído ou grão. Até os melhores sensores digitais têm, e até os olhos têm
Ele é útil para além de um simples efeito estético. Tende a aumentar a nitidez percebida e a esconder defeitos como banding de cor ou artefatos de compressão
Isso não significa que todo ruído e grão sejam bons. Eles podem ser inevitáveis por limitações técnicas, podem resultar de uma má decisão criativa e podem distrair
Mas considero muito pior a alternativa de aplicar remoção de ruído em tudo. Muitas câmeras hoje fazem isso por padrão, e, aos meus olhos, a suavização causada pela remoção de ruído muitas vezes parece irreal e muito mais incômoda
Não entendo a ideia de “grão = realismo”. Meus olhos, na prática, não têm grão
Ainda assim, reconheço o papel do grão como ferramenta artística, então a tecnologia em si continua interessante
Se você olhar ao redor, quase toda superfície tem algum tipo de textura fina e não é visualmente uniforme. Quando isso é registrado em vídeo, a textura fina se reduz por causa da óptica da câmera, da resolução limitada e da suavização da compressão. O grão de filme fornece parte do estímulo visual de alta frequência que foi perdido
Nossos olhos e cérebro gostam desse tipo de estímulo de alta frequência e não são exigentes quanto a reproduzir exatamente o padrão de ruído da cena original. Por isso, o encoder x265, que cria vídeos H.265, não tem síntese de grão, mas tem o parâmetro psy-rd. Ele é mais ou menos “faça o vídeo comprimido parecer ter tanta ‘energia’ quanto o original, mesmo que essa energia não esteja exatamente no mesmo lugar”, enquanto psy-rdoq é mais próximo de “prefira uma energia mais alta de modo geral”
Ajustar esses parâmetros pode fazer um vídeo comprimido parecer melhor sem armazenar mais dados
Felizmente, nossos olhos são muito mais sensíveis que câmeras. Mas aqui o “realismo” vem da forma como aquilo era capturado com a tecnologia da época. Não é diferente do ruído de um gramofone ou da forma como um sinal de CRT se desfoca. É “real” em relação à tecnologia que o diretor usou e à forma como ele sabia que o público veria o filme
É como as pinceladas de Van Gogh serem reais para as pinturas dele. Você não iria querer lixar uma pintura a óleo até deixá-la lisa. Porque essa é a realidade do meio original. Por isso, em uma cópia digital de um filme, também dá vontade de preservar ao máximo a realidade do original
Quando você sabe muito sobre um tema, consegue ler muita história naquele objeto, e isso também muda a emoção
Uma criança que se diverte, prende a respiração e dá risadinhas vendo um esquete de Buster Keaton, e um crítico de cinema que sabe qual filme e qual câmera foram usados, o que significa a abstração da cena e até como é o tecido da roupa de Keaton, terão experiências estéticas subjetivas diferentes do mesmo meio
O gosto estético subjetivo está no campo da cognição. Precisamos de uma teoria formal da inteligência mapeada no cérebro humano, e esses fenômenos subjetivos acabam se reduzindo a processamento de dados personalizado e condições iniciais
Em contraste com animação em cel limpa, o grão de filme pode facilitar a suspensão da descrença. Isso porque as pessoas aprenderam a associar a ausência de grão a animações irreais, certos meios e CGI. Como vídeos caseiros e noticiários tinham grão e baixa qualidade, o grão passou a se correlacionar com o “real”
Para mim, não há nada mais profundo do que isso. Somos produtos da nossa época. Daqui a 40 anos, o meio pode mudar e o grão de filme pode passar a ser associado ao surrealismo, ou pode ser totalmente removido por ser, fundamentalmente, ruído
Não conheço bem a psicologia visual por trás disso. Talvez ele acrescente as altas frequências que a compressão lava para fora, ou talvez funcione como algum tipo de dithering
Quanto aos olhos, pela física quântica, provavelmente é correto dizer que eles também têm grão. Só não percebemos porque o cérebro filtra. Não sei bem como isso interage com o grão de filme
Imagino que os fabricantes de vidro do passado ficariam extremamente fascinados com a possibilidade de fazer placas de vidro grandes e uniformes como hoje, mas nós imitamos os compromissos que eles foram obrigados a aceitar só porque nos parecem familiares
A frase “ao assistir a filmes clássicos, o movimento sutil do grão de filme acrescenta autenticidade e nostalgia a cada cena” me parece apenas adicionar ruído visual que encobre os detalhes da cena real
A nostalgia poderia se prender a pistas visuais mais marcantes, como atores antigos ou lembranças antigas da primeira vez que se viu aquilo
A afirmação de que “contribui para o realismo do filme” também é o oposto, já que na realidade não existe grão
Ainda assim, é bom ver o AV1 continuar evoluindo e ter um mecanismo algorítmico de substituição em vez de desperdiçar bitrate codificando lixo visual. Assim fica mais fácil desligar também
Se o grão de filme faz parte da visão do diretor, ele é tão válido quanto a escolha de colocar uma música dramática não diegética por trás de uma cena. Isso é muito inautêntico, mas muito eficaz para evocar emoções, e esse é o objetivo da arte
O diretor de fotografia Steve Yedlin descreve isso como dar aos olhos do público algo para “segurar”
Em chamadas de celular, o codec AMR-WB nominalmente captura de 50 Hz a 7000 Hz. Mas isso só acontece no bitrate mais alto disponível, 23,85 Kbps
No mais comum, 12,65 Kbps, ele só carrega até 6400 Hz, e sintetiza a faixa de 6400 a 7000 Hz com frequências baixas e ruído. Porque soa melhor ter ruído do que não ter
O grão de filme deveria desaparecer. Essa era já passou. Fotos em sépia e filmes mudos de 16 fps rodados a 24 fps também já morreram, e o próximo é o grão de filme
O Eastman Business Park de Rochester também foi demolido
E eu gostaria que parassem de colocar poeira e arranhões em vídeos do YouTube
É meio frustrante a ideia de primeiro filmar o vídeo, remover o ruído na pós-produção, recolocar ruído, remover ruído de novo na codificação e então recolocar ruído na decodificação
iluminação falsa, sombras falsas, céu falso etc.
Agora tudo é falso. Quero uma tecnologia que funcione com scans do filme original. Seria bom se nem usasse compressão JPEG, que é o primeiro passo da perda de detalhes
Detecção de movimento, keyframes e frames delta tudo bem, mas teria de ser vídeo sem perdas. Claro, para colocar em Blu-ray; streaming não me importa muito