|
Uma
das questões mais importantes - e, no entanto, menos compreendidas -
do video digital se refere a escolha do CODEC. O assunto é vasto e complexo.
O texto a seguir não pretende esgotá-lo nem estipular receitas prontas
que determinem as melhores escolhas; é apenas uma pequena introdução.
Espera-se que sirva para lançar alguma luz sobre a questão. Com uma
compreensão um pouco melhor sobre CODECs e suas limitações, espera-se
que as decisões acerca de seu uso sejam facilitadas.
Aspectos Teóricos
O
que são CODECs?
Mas,
afinal, o que são CODECs? CODECs são algoritmos, ou seja, "receitas
matemáticas" que definem como deve ser processado um determinado
conjunto de informações. Os alogaritmos podem determinar como as informações
de video e/ou áudio de um arquivo serão comprimidas (COmpress) durante
a gravação e descomprimidas (DECompress) durante a reprodução, de forma
a reduzir o grande volume de dados em arquivos menores.
Essa redução tem dois propósitos: primeiro economizar espaço de armazenamento;
e segundo reduzir a taxa de transmissão necessária (também expressa
comumente como largura de banda) para aplicações como Internet, TV digital
por satélite, telefones celulares etc. A possibilidade de se criar e
distribuir video e áudio digital nesses diversos veiculos só aconteceu
(e vem acontecendo) porque as soluções vêm em duas frentes: de um lado
o aumento das capacidades de armazenamento e das taxas de transmissão
a custos cada vez menores, e de outro a redução da demanda por essas
capacidades de armazenamento e taxas de transmissão, conseguidas através
da redução do tamanho dos arquivos de video e áudio a serem armazenados
e transmitidos. Redução essa desempenhada pelos CODECs.
Arquivos
Praticamente
todos os arquivos de áudio e video utilizam algum tipo de CODEC.
O mp3, por exemplo, é um formato de arquivo de áudio comprimido por
um CODEC altamente eficiente. A rigor, a sigla mp3 se refere ao algoritmo
em si, mas foi adotada também como extensão para o nome do arquivo que
o utiliza. Já o wav é associado a arquivos de áudio sem compressão alguma.
Com os arquivos de video avi e mov, não há associação direta entre a
extensão do nome do arquivo e o CODEC utilizado. O video contido dentro
de um arquivo avi, por exemplo, pode não conter compressão alguma, resultando
em arquivos enormes; ou podem ser comprimidos por algum CODEC, o que
é normalmente o caso. De qualquer forma, há uma grande variedade de
CODECs que podem ser utilizados por arquivos avi e mov. Para que sejam
reproduzidos em uma dada máquina, é necessário que o CODEC com o qual
foram comprimidos esteja devidamente instalado.
Para os arquivos RealPlayer há um tipo de CODEC específico, o que praticamente
implica em dizer que a extensão rm desses arquivos e o CODEC utilizado
se confundem.
Uma família de CODECs particularmente popular é o mpeg. Pela sua eficácia,
tornou-se o padrão utilizado em DVDs, (S)VCDs e TV por satélite. É comumente
encontrado em arquivos com extensões mpg ou mpeg, muito embora o mpeg4
(e sua corruptela DivX) encontrem-se em uso em arquivos de extensão
avi.
Relação
Custo x Benefício
Há
três aspectos dos CODECs que são intimamente relacionados: taxa de compressão,
qualidade e velocidade de processamento.
A maioria dos CODECs permite que se configure com que taxa será feita
a compressão. Para um CODEC específico, aumentar a taxa de compressão
– o que implica em arquivos menores – resulta em maior perda de qualidade.
Essencialmente, todo CODEC tem algum tipo de perda, pois é de sua natureza
descartar informações irrelevantes ou redundantes. Aumentar a taxa de
compressão é basicamente aumentar a abrangência do que é considerado
irrelevante ou redundante.
Cada CODEC, em cada aplicação específica, para cada usuário, tem um
ponto ideal de utilização, em que há a melhor relação custo (tamanho
do arquivo) versus benefício (qualidade).
Ao invés de taxa de compressão, pode-se falar também em taxa de bits
(bitrate) uma vez que são grandezas inversamente proporcionais. Ou seja,
dizer que houve aumento na taxa de compressão é o mesmo que dizer que
houve diminuição na taxa de bits, para um mesmo CODEC. Por exemplo,
tanto os SVCDs quanto os DVDs utilizam mpeg2 como CODEC, mas a taxa
de bits dos primeiros é bem menor que a dos segundos, ou seja, a taxa
de compressão dos SVCDs é maior do que a dos DVDs, e portanto também
suas perdas. Taxa de bits mais alta implica em dizer que, em média,
são necessários mais bits de informação por segundo de áudio e/ou video.
Assim, taxa de bits é, a grosso modo, a relação entre o tamanho do arquivo
e sua duração.
Então, resumindo: para um mesmo CODEC, quanto maior a compressão, menor
a taxa de bits (menor o tamanho do arquivo) e maior a perda de qualidade.
No entanto, alguns CODECs são mais eficazes do que outros: para qualidades
equivalentes, conseguem taxas de bits menores. Esse ganho em eficácia
deriva de cálculos mais complexos, cuja implementação depende, de modo
geral, de uma maior capacidade de processamento. Conforme os processadores
(Pentium, por exemplo) foram evoluindo, foi sendo possível criar CODECs
mais poderosos, com melhores relações “taxa de compressão versus qualidade”.
O mp3, por exemplo, que a uma taxa de bits de 128 Kbps tem qualidade
comparável a CD, só começou a se popularizar com o surgimento de máquinas
mais velozes 2 , capazes de descompactar a informação contida nos arquivos
transformando-a em áudio em tempo real.
Durante a evolução dos processadores, vários CODECs foram sendo criados
e constantemente aprimorados. Nos primórdios do video digital, a falta
de capacidade de processamento forçou a utilização de algoritmos mais
simples e portanto menos eficazes. Em alguns casos, chegou-se a implementação
via hardware dedicado. Um exemplo é o mpeg2, que durante um bom tempo
só podia ser conseguido através de placas específicas para essa tarefa.
Com o aumento da capacidade de processamento das CPUs, elas puderam
assumir para si essa tarefa, e a implementação do mpeg2 tornou-se possível
via software. Com o surgimento de CODECs mais eficazes, aqueles mais
primitivos foram gradualmente sendo abandonados, tornando-se obsoletos.
É o caso dos CODECs utilizados nos primórdios do multimídia.
Aspectos
Práticos
Criando
programas de áudio e video com CODECs
Como
criar um programa de áudio e video com um CODEC específico?
Para os arquivos tipo avi ou mov, a escolha do CODEC ocorre durante
a renderização (depois de se criar uma edição no Adobe Premiere, por
exemplo, ou uma animação no 3D Studio Max, é necessário que se renderize
o programa de áudio e/ou video para se construir o arquivo avi ou mov).
Os CODECs de áudio e video a serem utilizados são um dos parâmetros
a ser configurados antes de se renderizar.
Arquivos do tipo mpg, rm ou mp3 podem ser criados a partir de arquivos
em outros formatos (como avi, mov ou wav, por exemplo) por programas
de conversão específicos, que comprimem o arquivo utilizando o CODEC
desejado. O RealProducer (disponível também em versão freeware), por
exemplo, é o programa da RealNetworks que converte arquivos de áudio
e/ou video para o formato RealPlayer (extensão rm).
Também é possível encontrar plug-ins que renderizam nesses formatos
diretamente de programas de edição não-linear (o bbMPEG, por exemplo,
é um plug-in freeware para a renderização em mpeg1 e mpeg2 diretamente
do Adobe Premiere).
Demanda
de Processador
Foi
dito anteriormente que CODECs com maior poder de compressão, com pouca
perda, demandam cálculos mais complexos, e portanto, maior capacidade
de processamento.
Há, na verdade, duas velocidades envolvidas: a de compressão e a de
descompressão. Normalmente, a compressão não precisa ser feita em tempo
real (uma exceção é o caso em que é feita compressão durante a captura),
enquanto a descompressão sim, pois ocorre durante a reprodução.
Portanto, enquanto a velocidade de compressão não é crítica como fator
determinante para a escolha de um CODEC, a velocidade de descompressão
o é. O produtor de um programa de áudio e video pode normalmente lidar
com o maior tempo de renderização, apesar do inconveniente que isso
representa, mas nem todos os computadores são capazes de reproduzir
em tempo real os programas de áudio e video comprimidos com os CODECs
mais poderosos, o que inviabiliza sua utilização nesse caso.
Outro aspecto da velocidade de descompressão se refere a edição de arquivos
comprimidos com CODECs, pois a visualização quadro-a-quadro exige que
o arquivo seja descomprimido. Quanto maior a demanda de processamento
para a reprodução, mais lenta tende a ficar essa descompressão. Dependendo
da capacidade do processador utilizado, o fluxo de trabalho de edição
pode ficar seriamente comprometido.
CODEC
sobre CODEC
Outro
aspecto importante a se considerar é a utilização consecutiva de CODECs,
e sua implicação em termos de perda de qualidade.
Todo CODEC apresenta perda. Depois de aplicar um CODEC sobre um arquivo
de áudio ou video, algumas informações são permanentemente perdidas.
O tipo de perda apresentada depende do CODEC. Enquanto alguns promovem
perda de resolução, outros tendem a embaçar a imagem; alguns criam indefinições
de borda ou deixam a imagem quebrada em blocos; e por ai afora. O mesmo
ocorre com o áudio e suas características específicas (harmônicos, ruído
de quantização etc.)
Quando um CODEC é aplicado sobre outro, as perdas promovidas por cada
um se somam, resultando em uma degradação maior da imagem e/ou som.
Esse fenômeno aparentemente contraria o senso comum de que video e áudio
digitais não apresentam degradação de uma geração para outra. Na verdade,
não há degradação entre cópias. Se houver processamento entre as gerações,
é provável que ocorram perdas. A aplicação de CODECs é um tipo de processamento,
e resulta em perdas.
Tome-se o áudio, por exemplo. Os 16 bits de resolução utilizados nos
CDs são suficientes para reproduzir sons com a qualidade exigida pela
audição humana. No entanto, quando originalmente gravados por engenheiros
de som, normalmente é usada a resolução de 24 bits. Os 8 bits adicionais
servem para compensar erros de arredondamento que ocorrerão durante
os subseqüentes processamentos digitais dos sinais (como equalização,
filtragem, alteração de volume e pitch, mixagem etc.).
O ideal, portanto, é que se mantenha o mínimo de compressão possível
até a renderização do programa final, evitando-se também a utilização
de vários CODECs diferentes entre as várias fases do projeto.
Mas
afinal, qual o CODEC ideal?
Não
há uma resposta correta (mesmo porque, o mais provável não é que se
chegue a um CODEC ideal, e sim a um mais adequado). Depende de vários
fatores, alguns deles subjetivos. Qual a aplicação? Qual o tamanho de
arquivo esperado para a duração do programa? Quanto se está disposto
a sacrificar da qualidade? Quanto tempo se tem para renderizar? Onde
se dará a reprodução? A máquina onde será reproduzido o programa consegue
utilizar o CODEC em tempo real? O CODEC escolhido é amplamente suportado
em outras máquinas?
Como foi dito na introdução, este texto não pretende estipular receitas
prontas que determinem as melhores escolhas. Espera-se, ao invés disso,
que sirva de esclarecimento para algumas questões sobre o assunto, e
que esse esclarecimento ajude nas escolhas.
A única sugestão que pode ser dada com garantia de acerto é: faça testes!
E, com uma compreensão um pouco melhor sobre o assunto, escolha a partir
deles.
Para
maiores informações ou para entrar em contato com Pedro
Daldegan, acesse a lista Cineamador.
*
Envie essa página para um amigo!
|