sexta-feira, 24 de janeiro de 2014

Bits ou Bytes? Eis a questão...

Codecs e formatos de vídeo: Sopa de letrinhas...

Confundir bits com bytes pode gerar uma grande dor de cabeça e um erro oito vezes maior ou menor. Isso porque em um Byte de informação estão contidos 8 bits. Há certa confusão sobre as abreviaturas e a grafia, inclusive em literatura de fabricantes de equipamentos eletrônicos, o que é inadmissível. Muitas vezes são erros de digitação derivados da falta de conhecimento de quem diagramou o texto ou a tabela e a consequente falha do revisor. E como usamos muito essas duas grandezas de transferência e armazenamento de dados no nosso dia-a-dia profissional, é preciso não confundir e não abreviar errado esses valores.  Então para não esquecer mais e deixar tudo claro:


1 MegaByte = 8 Megabit
1 Megabit = 0,125 Megabyte

Geralmente se usa a unidade MegaByte para definir quantidade de armazenamento de dados e Megabit para definir a velocidade de transporte desses dados. Então dizer que um vídeo necessita de uma taxa de dados de 25 Mbps (ou megabit por segundo) não é o mesmo que dizer 25 MBps (ou Megabyte por segundo). Na verdade 25 MBps correspondem a 25 x 8 Mbps! Ou seja: 200 Mbps. Viram como o erro fica grande? Para não confundir as coisas deve-se sempre abreviar Megabyte com M maiúsculo e a letra B também maiúscula, grafando MB. E para o termo Megabit devemos usar o M também maiúsculo com a letra b minúscula, grafando Mb. Mais uma vez relembrando:

1 MB = 8 Mb
1 Mb = 0,125 MB

Usando como exemplo o nosso velho conhecido codec HDV da Sony, lançado em 2003, podemos ver na tabela abaixo, de onde tiraremos informações úteis para comparação com os novos codec XAVC e AVC Intra, que ele tem uma taxa de dados de 25 Mbps.

Format name
HDV 720p
HDV 1080i
Media
"Small" or "Large" DV cassette
Video
Frame aspect ratio
16x9
Frame size in pixels
1280 × 720
1440 × 1080
Pixel aspect ratio
1.0
1.33
Scanning type
progressive
interlaced
progressive (optional)
Video signal
720p/60, 720p/30, 720p/24, 720p/50, 720p/25,
1080i/30 (29.97), 1080i/25
1080p/30 (29.97), 1080p/24 (23.98), 1080p/25
Video Compression
MPEG2 Video (profile & level: MP@H-14/HL)
MPEG2 Video (profile & level: MP@H-14)
Sampling frequency for luminance
74.25 MHz
55.6875 MHz
Quantization
8 bits (both luminance and chrominance)
Compressed video bitstream rate
~18.3 Mbit/s
~25 Mbit/s
Audio
Compression
Sampling frequency
48 kHz
Quantization
16 bits
Audio modes and data rate
MPEG-1 Part 3 AL 2 Stereo (2-channel) at 384 kbit/s (192 kbit/s per channel);
optional MPEG-2 Part 3 AL 2 4-channel at 96 kbit/s per channel.
System
Stream type
Stream interface
IEEE 1394 in alpha mode (also known as FireWire 400 or i. LINK)
File extension
.m2t (generally)

Se alguém escreve essa mesma informação usando a abreviação errada, ou seja, que o codec tem uma taxa de dados de 25 MBps teremos um erro gigantesco ao calcularmos, por exemplo a quantidade de armazenamento necessária para salvar uma hora de vídeo nesse formato. Vejamos:
1 segundo de vídeo = 25 MB de espaço
1 minuto de vídeo = 25 x 60 = 1500 MB de espaço
1 hora de vídeo = 1500 x 60 = 90.000 MB de espaço
90.000 MB = 90 GB

Mas esse cálculo está superdimensionado. Porque na verdade, sabemos que nosso vídeo HDV tem uma taxa de dados de 25 Mbps.  Refazendo os cálculos teremos:

1 segundo de vídeo = 25 Mb de espaço
1 minuto de vídeo = 25 x 60 = 1500 Mb de espaço
1 hora de vídeo = 1500 x 60 = 90.000 Mb de espaço
90.000 Mb = 90 Gb
90 Gb = 90 / 8 = 11, 25 GB de espaço necessário.

Embora a primeira vista complicada e enfadonha, esse tipo de informação é necessário e útil porque nos deparamos frequentemente com esse erro  em documentos, papers de fabricantes e artigos escritos. E aí é necessário parar a leitura e ir conferir a informação. Para esse post mesmo eu me deparei com isso. Na imagem abaixo está reproduzido um trecho de um documento oficial da Panasonic. Na tabela vejam as setas vermelhas. Na coluna à esquerda a abreviatura informa MB/S:


Mais abaixo no texto explicativo a empresa afirma que o codec AVCIntra LongG 25 tem uma taxa de dados 50% menor e com a mesma eficiência dos outros concorrentes que utilizam uma taxa de 50 Mbps (ver setas vermelhas):

Diante do que já foi explicado, se o codec da Panasonic tivesse mesmo uma taxa de 25 MB/s como mostra a tabela, ele teria na verdade uma taxa de dados quatro vezes maior que os 50 Mbps do concorrente, porque 25 MB/s equivalem a 200 Mbps. Mas depois de checado o erro e a informação confirmei, em outros documentos oficiais, que o paper saiu com esse erro de grafismo. Todos os codecs AVC Intra citados no documento tem suas taxas de dados indicadas em Megabits por segundo (Mb/s) e não em Megabytes por segundo (MB/s).
Então ao ler a especificação de qualquer equipamento que faça referência a valores de dados envolvendo taxas de transferência, capacidade de armazenamento e quantidade de bits ou bytes por segundo, certifique-se que os valores expressos nas abreviaturas estão corretos ou se houve erro de impressão do documento ou mesmo erro de interpretação por quem produziu a informação.

E já que falamos também de codecs de vídeo, citando o exemplo do HDV, outra coisa importante a se conhecer, quando trabalhando ou especificando um determinado tipo de codec para arquivamento ou exportação de vídeo, além da taxa de dados necessária para se obter a qualidade ou cumprir a especificação determinada pelo cliente é saber com qual formato de compressão vamos trabalhar, qual a qualidade da amostragem de cor e que tipo de formato e compressão de áudio vamos utilizar.
No caso do nosso exemplo, o formato HDV, o codec de compressão será sempre o Mpeg2 do tipo MP@H-14, pois o padrão Mpeg2 engloba diversos perfis de compressão para finalidades diferentes.  Ainda em relação ao HDV, a taxa de amostragem de cor está padronizada em 4:2:0 @ 8 bits (e não bytes...) e o áudio pode ser Mpeg1 Layer II ou PCM, sempre a 48 KHz e 16 bits.

E finalmente, observando a tabela de características do HDV , no início desse artigo, veremos que o sistema de envelopamento ou formato (ou wrapper) usa  um transport-stream MPEG (MPEG-TS) com extensão de arquivo *.m2t e interface de comunicação IEEE1394 também conhecida como Firewire 400 ou i-Link. Observem que a Sony utiliza a extensão de arquivo *.mts  enquanto o vídeo está na câmera ou fita miniDV e depois esse arquivo é renomeado para *.m2t no sistema de arquivos do computador onde é salvo.

Esse noção de encapsulamento ou o wrapper de arquivos de vídeo ainda causa confusão a muitos profissionais ou leigos. Principalmente quando os arquivos tem uma extensão ou nome não proprietário. No caso do HDV da Sony, ele terá sempre as características que já vimos e estas não podem ser alteradas. Mas a própria Sony utiliza o sistema de compressão Mpeg2 em diversos outros formatos de vídeo e com outras extensões. Um exemplo é o padrão MXF Olp1a que também é um vídeo mpeg mas usa o sufixo final *.mxf.

Outros formatos de uso público como o AVI cujos arquivos de vídeo tem a extensão *.avi causam mais confusão ainda. Algumas pessoas acham que se trata apenas de vídeo sem compressão, mas na verdade um arquivo AVI pode ter um alto grau de compactação de dados com uso de codificadores como DiVX, MPG4, Sorenson, Vorbis, Microsoft DV, etc. Nesse caso dizemos que o stream ou wrapper é AVI e utilizamos a extensão *.avi, mas as características de amostragem de dados, taxa de compressão, formato de áudio, taxa de dados e interface de transferência podem ser completamente diferentes.

Aí vem sempre aquela clássica pergunta: Meu arquivo é um AVI simples, mas meu computador o meu programa de edição não quer abrir e não está reconhecendo. Geralmente o problema está na falta do plugin para o sistema operacional ou aplicativo que contem o decodificador para interprestar corretamente a codificação utilizada para comprimir o vídeo. E quanto maior for a capacidade de compactação de dados do codec menor será o tamanho do arquivo, mas em contrapartida maior será o trabalho do processador de vídeo para descompactar, interpretar e exibir o conteúdo.

Outro problema da compactação excessiva é a diminuição da taxa de amostragem. Um vídeo compactado a 8 bits em 4:2:0 terá menos definição de cor e de separação nas bordas de cores diferentes. Isso diminuirá a capacidade de correções e de aplicação de efeitos como o cromakey na hora da edição e finalização do trabalho. Já um formato compactado com taxa de 10 bits e esquema 4:2:2 terá muito mais flexibilidade de ajustes e precisão de cores. Por outro lado, formatos sem compressão com taxas de 12 ou 14 bits e amostragem 4:4:4 tem uma definição e separação de cores em nível altamente avançado, se prestando para produções de cinema e televisão de alto padrão.

Mas em 80% dos casos, esse tipo de qualidade é desnecessário. Além de exigir espaços muito maiores de armazenamento e computadores muito mais potentes, encarece e aumenta o tempo de finalização. Então, apesar da qualidade máxima, se torna contraproducente e inviável.

Se conhecermos as características de cada tipo de fluxo de vídeo e áudio e seus respectivos codificadores, podemos escolher, por exemplo, que tipo de câmera utilizaremos em determinado trabalho ou mesmo, dentro do menu de opções de configuração de vídeo da câmera, escolher o formato mais interessante.  A mesma coisa se passa com a escolha do formato e parâmetros para exportação do vídeo pronto para o cliente final.

Grande abraço!


Marcelo Ruiz

Nenhum comentário:

Postar um comentário

Obrigado por sua participação! Asim que eu puder, vou responder! Volte sempre!

Marcelo Ruiz

Observação: somente um membro deste blog pode postar um comentário.