vp8
TRANSCRIPT
VP8
Luiz Augusto dos Santos Carvalho 50448Nayara Consuelo Gomes Rangel 50457
Problemas
● Nenhum codec de video opensource com poder suficiente para concorrer com H.264
● Nenhum codec padrão para videos na internet.● Utilizados atualmente:
– H.264: codec patenteado.– Theora: tecnologia ultrapassada.
História
● VP8 é o codec de vídeo mais recente da On2 Technologies, desenvolvido para substituir seu precedente VP7. Foi anunciado em 13 de setembro de 2008.
● Google adquire On2 em 2010.● No dia 19 de Março de 2010, a Google durante
a conferência I/O, liberou o VP8 sob código aberto ( licença BSD ).
História
● Implementação do codec VP8 mais rápido desenvolvido pelos desenvolvedores do x264 em julho de 2010 o ffvp8.
● Codec VP8 ainda não é padronizado, o código é o padrão.
● Situação de patente ainda obscuro.
História
● MPEG LA ameaça processar Google por quebra de patentes.
● MPEG LA faz uma chamada para que outras empresas se juntem a ela para processar o Google em fevereiro de 2011.
● Até o momento não houve nenhum processo por parte da MPEG LA contra o Google.
WebM Project
● http://www.webmproject.org/● Fundada pela Google em maio de 2010● Opensource, licença BSD.● Otimizado para internet.
– Baixa complexidade computacional– Container simples
WebM
● Container é uma simplificação do container Matroska que contêm:
– VP8 video– Vorbis audio
● Extensão *.webm
Web video
● O grande problema que surgiu entre Google e MPEG LA foi devido ao codec que será utilizado no HTML 5, que ainda não foi decidido.
Aplicações
● Algumas aplicações importantes utilizando WebM:
– Youtube – Adicionar &webm=1 na url– Flash– Skype 5.0– Nvidia
WebM
● Suporte de hardware:– AMD– ARM– Broadcom– MIPS– Nvidia– Texas Instruments
WebP
● O algoritmo de compressão do WebP é baseado na codificação intraframe do VP8 com o container RIFF.
WebP
Como funciona o VP8
Cores
Diagrama
Geração de blocos
Geração de blocos
Intra frame prediction
Intra frame prediction
● Explora coerência espacial entre os frames.● Utiliza blocos já codificados dentro do frame
atual.● Aplica aos macroblocos do frame interno e
também dos macroblocos de um frame chave.● Componentes 16x16 luma e 8x8 chroma são
previstos de forma independente.
Modos de predição chroma
● Horizontal
● Vertical
Modos de predição chroma
● DC
Modos de predição chroma
● TrueMotion
Modos de predição luma
● Praticamente os mesmos dos do chroma com 16x16
● Mais o modo B que divide o bloco em subblocos 4x4 que são previstos separadamente e cada um deles possui 10 modos de previsão.
Estimativa de movimento
Estimativa de movimento
● Vetores de movimento para blocos 16x16, 16x8, 8x16, 8x8 e 4x4.
● Vetores de movimento vizinhos podem ser referenciados.
Compensação de movimento
Compensação de movimento
● Aplica vetores de movimento nos frames anteriores.
● Gera um frame previsto.● Somente a diferença é transmitida.
Inter frame prediction
Inter frame prediction
● Explora as coerências entre os frames vizinhos.
● Tipos:– Frames chave– Frames previstos– BFrames
Inter frame prediction
● Explora as coerências entre os frames vizinhos.
● Tipos:– Frames chave– Frames previstos– BFrames
Tipos de frames previstos
● Frame anterior– Ultimo frame decodifidado
● Alternate Reference Frame– Frame buffer decodifidado– Usado para redução de ruido
● Golden Reference Frame– Buffer de imagem totalmente decodifidado– Usado para recuperação de erros
Recuperação de erro
Transformação
Transformação
● DCT● WalshHadamard, funciona como uma simples
multiplicação de matrizes.
● Divisão dos macroblocos em subblocos.
Quantização
Quantização
● Quantização dos coeficientes de transformação:
– Menos dados por coeficiente– Mais zeros
● Quantização adaptativa, de até 4 segmentos:
Adaptive Loop Filtering
Adaptive Loop Filtering
Adaptive Loop Filtering
Entropy Encoding
Entropy Encoding
● Frames são divididos em 3 partições.● Codificados em 2 passos:
– Huffman tree– Aritmética binária
H.264 x VP8
● http://qpsnr.youlink.org/vp8_x264/VP8_vs_x264.html
● http://www.quavlive.com/video_codec_comparison
H.264 x VP8
H.264 x VP8
Conclusão
● VP8 é bom o suficiente para concorrer com o H.264, com a vantagem de ser opensource.
● Ainda é muito cedo para saber qual o futuro do VP8, muitos testes foram realizados em 2010 revelam que a qualidade do VP8 não é muito inferior ao H.264
● Possivel problema de patentes.● Nenhuma especificação ainda foi feita, o código
é usado como especificação.
Referências
● http://x264dev.multimedia.cx
● http://multimedia.cx/eggs
● http://www.slideshare.net/DSPIP/googlevp8
● http://qpsnr.youlink.org/vp8_x264/VP8_vs_x264.html
● http://tools.ietf.org/html/draftbankoskivp8bitstream01
● http://www.webmproject.org/