O Chrome 70 suporta [lista de recursos] e o AV1 - por que o suporte a codec é tão importante?

A 69ª versão do Chrome foi uma grande atualização , pois mostrou uma nova interface para versões para computadores e dispositivos móveis. O Chrome 70 não é tão radical, mas seus novos recursos são muito importantes. Fizemos uma tradução adaptada e adicionamos material sobre o mais importante, em nossa opinião, importante na nova versão - suporte ao codec AV1, que define um novo padrão para o desempenho. Até o momento, o codec será usado apenas ao reproduzir vídeo, mas esperamos que ele chegue ao WebRTC - isso nos dará a oportunidade de usar a codificação avançada em videochamadas e conferências (por exemplo, usando nosso Web SDK ).



Suporte AV1


Quase 10 anos atrás, o Google lançou seu próprio codec concorrente para o H.264 - era o VP8 . Embora os concorrentes tecnológicos não fossem muito diferentes, o VP8 era gratuito e o H.264 exigia uma licença. O Android suportou o VP8 imediatamente, começando com 2.3 Gingerbread. Além disso, todos os principais navegadores (com exceção do Safari) podem reproduzir vídeo VP8.

O Google agora faz parte da Alliance for Open Media, um grupo de empresas que está desenvolvendo um sucessor do VP8 / VP9 chamado AV1. O Facebook já testou o codec em milhares de vídeos populares e descobriu que ele aumenta a compactação em mais de 30% em comparação ao VP9, ​​ou seja, em 50,3%, 46,2% e 34% (comparado ao perfil principal x264, perfil x264 e libvpx-vp9, respectivamente).

A partir do Chrome 70, o codec AV1 suporta o padrão para desktop e Android. E embora o codec leve tempo para se tornar amplamente utilizado, esse ainda é um passo importante, porque nenhum outro navegador suporta o AV1 ainda.

AV1 em detalhes


Explicação: Esta seção é trechos do artigo da próxima geração de vídeos: Introdução ao AV1 .

Croma de luma


O croma da previsão de Luma (daqui em diante - CfL) é um dos novos métodos de previsão usados ​​no AV1. CfL prediz cores em uma imagem (croma) com base em um valor de luma. Primeiro, os valores de luminância são codificados / decodificados, depois o CfL tenta prever as cores. Se a tentativa for bem-sucedida, a quantidade de informações sobre cores que precisa ser codificada é reduzida; portanto, o espaço é salvo.

Vale a pena notar que o CfL apareceu pela primeira vez não no AV1. O documento fundador da CfL remonta a 2009; ao mesmo tempo, LG e Samsung propuseram uma implementação antecipada do CfL sob o nome LM Mode , mas tudo isso foi reduzido durante o desenvolvimento do HEVC / H.265. O codec Thor da Cisco usa uma técnica semelhante e o HEVC implementou uma versão aprimorada chamada Cross-Channel Prediction (CCP).

Previsão intra melhorada


Até recentemente, a compactação de vídeo era baseada na previsão entre quadros , ou seja, na diferença do quadro dos outros, quando a previsão é baseada em quadros de referência . Apesar de essa técnica ter se desenvolvido rapidamente, ainda requer quadros de referência que não dependem de outros quadros. Como resultado, os quadros de referência usam apenas previsão intra-quadro.

Os primeiros 60 quadros do vídeo de teste. O histograma começa com um quadro de referência ~ 20 vezes maior que o restante.

Os quadros de referência são muito maiores que os intermediários - portanto, eles tentam usá-los o menos possível. Mas se houver muitos quadros de referência, isso aumentará a taxa de bits do vídeo. Para lidar com isso e reduzir o tamanho dos quadros de referência, os pesquisadores de codec se concentraram em melhorar a previsão intra-quadro (que também pode ser aplicada a quadros intermediários).

Resumindo, pode-se argumentar que CfL é precisamente a técnica avançada de previsão intra-frame, porque Funciona com base no brilho dentro do quadro .

Giz de cera colorido


O CfL é a cor de uma imagem monocromática com base em uma previsão razoável e precisa. A previsão é facilitada pelo fato de a imagem bater em pequenos blocos nos quais a codificação ocorre independentemente.

Bloqueio para maximizar a precisão da codificação.

Como o codificador não funciona com toda a imagem, mas com seus fragmentos, basta revelar correlações em pequenas áreas - é suficiente para prever cores para um brilho abençoado. Pegue um pequeno bloco de imagem:


Com base nesse fragmento, o codificador estabelecerá que brilhante = verde e, quanto mais escuro, menor a saturação. E assim com o resto dos blocos.

CFL para AV1


O CfL não começou a usar o algoritmo PVQ , portanto, os custos para os domínios de pixel e frequência são aproximadamente os mesmos. Além disso, o AV1 usa transformação discreta de seno e transformação de identidade de domínio de pixel, portanto, não é muito fácil executar o AV1 CfL no domínio de frequência. Mas - uma surpresa - o AV1 não precisa de CfL no domínio da frequência, porque As equações básicas de CfL funcionam igualmente em ambas as áreas.

O CFL no AV1 foi projetado para simplificar o máximo possível a reconstrução. Para fazer isso, você deve codificar explicitamente α e calcular β com base, embora ... Você não pode calcular β, mas use a mudança de cor DC já prevista pelo codificador (será menos preciso, mas ainda adequado):

Comparação da previsão de CD padrão (cálculo com base nos pixels vizinhos) com o valor β calculado (cálculo com base nos pixels no bloco atual).

Assim, a complexidade da aproximação no lado do codificador é otimizada ao máximo através do uso de previsão. Se a previsão não for suficiente, as transformações restantes serão executadas; se a previsão não fornecer benefícios em bits, ela não será usada.

Alguns testes


A Open Media Alliance usa uma série de testes , que também estão disponíveis no site Já estamos compactados?

Abaixo está uma tabela com uma taxa de bits no contexto de diferentes indicadores. Preste atenção ao CIE delta-E 2000, esta é uma métrica de erro de cor perceptualmente uniforme. É notável como a taxa de bits é salva? Até 8%!
Bd-rate
PSNRPSNR-HVSSSIMCIEDE2000PSNR CbPSNR CrMS SSIM
Média-0,43-0,42-0,38-2,41-5,85-5,51-0,40
1080p-0,32-0,37-0,28-2,52-6,80-5,31-0,31
Tela de 1080p-1,82-1,72-1,71-8,22-17,76-12,00-1,75
720p-0,12-0,11-0,07-0,52-1,08-1,23-0,12
360p-0,15-0,05-0,10-0,80-2,17-6,45-0,04

... e outros novos itens no Chrome 70


PWA no Windows


Embora o suporte a aplicativos progressivos da Web seja implementado principalmente em plataformas móveis , o Google não esquece o desktop. No Chrome 67 da área de trabalho, o botão de instalação do PWA apareceu e o Chrome 70 já trouxe várias melhorias para os usuários do Windows.


Agora, o Chrome mostra o pop-up "Instalar aplicativo?" para PWA (depois de interagir com eles por um tempo). Se você instalar o PWA, o navegador criará um atalho para o PWA no menu Iniciar. Semelhante à experiência móvel, a interface do navegador ficará oculta no PWA aberto.

O Google promete implementar essa funcionalidade para Mac e Linux na versão 72.

API de detecção de forma


Os aplicativos da Web podem ler códigos de barras e reconhecer rostos de maneiras diferentes, geralmente usando bibliotecas JS de aprendizado de máquina, mas isso pode funcionar muito lentamente. Para tornar esse recurso mais acessível e produtivo, o Google está apresentando sua própria funcionalidade na detecção de formas do Chrome.

A API de detecção de forma no Chrome 70 é um teste de origem, ou seja, ainda não está pronto para uso generalizado. A API pode definir 3 tipos de objetos / imagens - faces, códigos de barras e texto. No momento, a compatibilidade varia entre plataformas, porque o sistema operacional requer funcionalidade para definir objetos. Você pode tentar a demonstração aqui .

TLS 1.3


O Transport Layer Security é um protocolo que permite transferir dados com segurança pela Internet. Quando você usa o site em HTTPS, provavelmente os dados são enviados via TLS. O Chrome 70 suporta o TLS 1.3, lançado no mês passado.

A lista de alterações está disponível aqui , mas, em geral, a versão 1.3 melhora a eficiência e a segurança (por exemplo, BREACH e CRIME "venceram", graças à qual você pode novamente usar com segurança a compactação no https - comentário do tradutor , graças à menstenebris ). Menos etapas são necessárias para estabelecer uma conexão, para que você possa notar uma ligeira melhora no tempo (se o site visitado for compatível com TLS 1.3, é claro). Aqui está uma comparação clara das diferenças do CloudFlare :



Com o lançamento do TLS 1.3, o suporte para recursos antigos, como SHA1 e MD5, também cessa. O Google anunciou isso na página de status :
O TLS 1.3 foi um projeto plurianual que reuniu apoiadores de várias indústrias, grupos de pesquisa e outros participantes enquanto trabalhava no padrão. Anteriormente, experimentamos versões de rascunho do padrão, mas quando o padrão foi totalmente implementado, podemos finalmente implementá-lo no Chrome.

O Firefox 60 adicionou suporte ao TLS 1.3 (rascunho 23), lançado em maio deste ano; então o CloudFlare começou a usá-lo.

Outros recursos


Como sempre, o Chrome 70 inclui inovações para usuários e desenvolvedores. Aqui está uma lista de outras alterações nesta atualização:

  • A API de síntese de fala não funcionará até que a página tenha interagido pelo menos uma vez com essa API. Essa API é frequentemente usada para pop-ups de spam em dispositivos móveis até a nova política de reprodução automática no Chrome 66;
  • O Touch ID no Macbook Pro pode ser usado como um método de login na API de autenticação da Web;
  • se a página estiver no modo de tela cheia, a aparência do pop-up trará a página para fora da tela cheia;
  • O AppCache não funciona mais em páginas NÃO https;
  • em dispositivos Android, o número de compilação do OC (por exemplo, "NJH47F") não é mais incluído no agente do usuário para impedir a identificação do navegador. O Chrome no iOS deixará o número de compilação “15E148” em vez de removê-lo completamente para acompanhar a implementação no Safari;
  • o opus audio agora é suportado para contêineres MP4, Ogg e WebM;
  • O WebUSB agora usa o contexto de um trabalhador individual, o que deve aumentar a produtividade;
  • O Bluetooth da Web agora funciona no Windows 10;
  • nova caixa de diálogo de sincronização da área de trabalho;
  • os funcionários do serviço podem receber nomes;
  • A API de gerenciamento de credenciais agora suporta PublicKeyCredential ;
  • implementações iniciais de elementos personalizados, importações de HTML, navigator.getGamepads e a API Shadow DOM agora estão com status obsoleto;
  • O Lazy Loading agora pode ser ativado usando os sinalizadores # enable-lazy-frame-loading e # enable-lazy-image-loading .

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


All Articles