vp8

46
 VP8 Luiz Augusto dos Santos Carvalho 50448 Nayara Consuelo Gomes Rangel    50457

Upload: rogeriohenrique

Post on 25-May-2015

455 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Vp8

   

VP8

Luiz Augusto dos Santos Carvalho 50448Nayara Consuelo Gomes Rangel    50457

Page 2: Vp8

   

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.

Page 3: Vp8

   

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 ).

Page 4: Vp8

   

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.

Page 5: Vp8

   

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.

Page 6: Vp8

   

WebM Project

● http://www.webmproject.org/● Fundada pela Google em maio de 2010● Open­source, licença BSD.● Otimizado para internet.

– Baixa complexidade computacional– Container simples

Page 7: Vp8

   

WebM

● Container  é  uma  simplificação  do  container Matroska que contêm:

– VP8 video– Vorbis audio

● Extensão *.webm

Page 8: Vp8

   

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.

Page 9: Vp8

   

Aplicações

● Algumas aplicações importantes utilizando WebM:

– Youtube – Adicionar &webm=1 na url– Flash– Skype 5.0– Nvidia

Page 10: Vp8

   

WebM

● Suporte de hardware:– AMD– ARM– Broadcom– MIPS– Nvidia– Texas Instruments

Page 11: Vp8

   

WebP

● O algoritmo de compressão do WebP é baseado na codificação intra­frame do VP8 com o container RIFF.

Page 12: Vp8

   

WebP

Page 13: Vp8

   

Como funciona o VP8

Page 14: Vp8

   

Cores

Page 15: Vp8

   

Diagrama

Page 16: Vp8

   

Geração de blocos

Page 17: Vp8

   

Geração de blocos

Page 18: Vp8

   

Intra frame prediction

Page 19: Vp8

   

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.

Page 20: Vp8

   

Modos de predição chroma

● Horizontal

● Vertical

Page 21: Vp8

   

Modos de predição chroma

● DC

Page 22: Vp8

   

Modos de predição chroma

● TrueMotion

Page 23: Vp8

   

Modos de predição luma

● Praticamente os mesmos dos do chroma com 16x16

● Mais o modo B que divide o bloco em sub­blocos 4x4 que são previstos separadamente e cada um deles possui 10 modos de previsão.

Page 24: Vp8

   

Estimativa de movimento

Page 25: Vp8

   

Estimativa de movimento

● Vetores de movimento para blocos 16x16, 16x8, 8x16, 8x8 e 4x4.

● Vetores de movimento vizinhos podem ser referenciados.

Page 26: Vp8

   

Compensação de movimento

Page 27: Vp8

   

Compensação de movimento

● Aplica vetores de movimento nos frames anteriores.

● Gera um frame previsto.● Somente a diferença é transmitida.

Page 28: Vp8

   

Inter frame prediction

Page 29: Vp8

   

Inter frame prediction

● Explora as coerências entre os frames vizinhos.

● Tipos:– Frames chave– Frames previstos– B­Frames

Page 30: Vp8

   

Inter frame prediction

● Explora as coerências entre os frames vizinhos.

● Tipos:– Frames chave– Frames previstos– B­Frames

Page 31: Vp8

   

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

Page 32: Vp8

   

Recuperação de erro

Page 33: Vp8

   

Transformação

Page 34: Vp8

   

Transformação

● DCT● Walsh­Hadamard, funciona como uma simples 

multiplicação de matrizes.

● Divisão dos macroblocos em sub­blocos.

Page 35: Vp8

   

Quantização

Page 36: Vp8

   

Quantização

● Quantização dos coeficientes de transformação:

– Menos dados por coeficiente– Mais zeros

● Quantização adaptativa, de até 4 segmentos:

Page 37: Vp8

   

Adaptive Loop Filtering

Page 38: Vp8

   

Adaptive Loop Filtering

Page 39: Vp8

   

Adaptive Loop Filtering

Page 40: Vp8

   

Entropy Encoding

Page 41: Vp8

   

Entropy Encoding

● Frames são divididos em 3 partições.● Codificados em 2 passos:

– Huffman tree– Aritmética binária

Page 42: Vp8

   

H.264 x VP8

● http://qpsnr.youlink.org/vp8_x264/VP8_vs_x264.html

● http://www.quavlive.com/video_codec_comparison

Page 43: Vp8

   

H.264 x VP8

Page 44: Vp8

   

H.264 x VP8

Page 45: Vp8

   

Conclusão

● VP8 é bom o suficiente para concorrer com o H.264, com a vantagem de ser open­source.

● 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.

Page 46: Vp8

   

Referências

● http://x264dev.multimedia.cx

● http://multimedia.cx/eggs

● http://www.slideshare.net/DSPIP/google­vp8

● http://qpsnr.youlink.org/vp8_x264/VP8_vs_x264.html

● http://tools.ietf.org/html/draft­bankoski­vp8­bitstream­01

● http://www.webmproject.org/