aspose.info
PT

VP6 - Arquivo de vídeo TrueMotion

Atualizado em

O que é um arquivo VP6?

VP6 é um formato de vídeo de compressão com perdas que foi introduzido pelas tecnologias On2 em maio de 2003. Faz parte de uma série de codecs de vídeo desenvolvidos pela TrueMotion, incluindo V3, V4 e V5. O formato foi usado rapidamente no campo de transmissão, como com relatórios da BBC e software QuickLink. O VP6 foi sucedido pelo VP7 Codec em janeiro de 2005 com melhor compatibilidade de compressão.

Formato de arquivo VP6

As especificações completas para arquivos V6 não estão disponíveis publicamente. A On2 tornou as especificações públicas inicialmente, mas logo elas ficaram indisponíveis para usuários em geral. Uma documentação não oficial do formato de arquivo VP6 está disponível em wiki multimídia que pode ser consultada para referência do desenvolvedor.

Macroblocos (MB)

Semelhante ao MPEG-2, MPEG-4 partes 2 e 10, cada quadro de vídeo de um arquivo VP6 é composto por uma matriz de macroblocos (MB) de 16x16. Cada MB pode estar em um dos seguintes modos:

  • IntraMB
  • Inter MB, MV nulo, referência de quadro anterior
  • Inter MB, MV diferencial, referência de quadro anterior
  • Inter MB, quatro MVs, referência de quadro anterior
  • Inter MB, MV 1, referência de quadro anterior
  • Inter MB, MV 2, referência de quadro anterior
  • Inter MB, MV nulo, referência de quadro marcada
  • Inter MB, MV diferencial, referência de quadro marcada
  • Inter MB, MV 1, referência de quadro marcada
  • Inter MB, MV 2, referência de quadro marcada

Cabeçalho do quadro

O cabeçalho do quadro de um VP6 é como mostrado abaixo, que segue o empacotamento de bits big-endian.

SintaxeNúmero de bitsTipoSymantecs
frame_mode1Enum0x0 significa um intraframe
qp6Não assinadoIntervalo válido do parâmetro de quantificação 0..63
marcador1Constante0=VP61/62, 1=VP60
if (modo_quadro == 0) {0igual a INTRA_FRAME
versão5Constante6=VP60/61, 7=VP60(Electronic Arts), 8=VP62
versão22Constante0=VP60, 3=VP61/62
entrelaçar1Booleantrue (1) significa que o entrelaçamento será usado
if (marcador==1 ou versão2==0) {
deslocamento16Não assinadodeslocamento do buffer secundário (bytes relativos ao início do buffer)
}
dim_y8Não assinadoAltura do macrobloco de vídeo
dim_x8Não assinadoLargura do macrobloco de vídeo
render_y8Não assinadoExibir altura do vídeo
render_x8Não assinadoLargura de exibição do vídeo
}outra{
if (marcador==1 ou versão2==0) {
deslocamento16Não assinadoDeslocamento do buffer secundário (bytes relativos ao início do buffer)
}
}

Referências

Veja também