Read English version of this Guide. |
Return to translated articles index |
DivX Quality & Bitrate
Guide
Todo mundo procura pelas mais atualizadas configurações!
São os únicos que vão fazer seus filmes DivX terem a melhor qualidade de imagem
possível para o menor arquivo possível! Eu também tenho gastado muito tempo
procurando este caminho secreto. E agora sinto que por este tempo perdido, eu
dou a todos um pouco de minha experiência =). Estes são apenas um punhado de
dicas que eu fiz e não deveriam ser interpretadas como se eu estivesse dizendo
a você quais configurações você deveria estar usando. Particulamente, eu espero
economizar um pouco de seu tempo e ajudar você a fazer boas escolhas a você
mesmo.
Antes de decidirmos as melhores configurações para seus
filmes, seria uma boa idéia começar observando o que todas aquelas
configurações do codec DivX fazem e quais as diferenças entre os codecs Fast Motion - Movimento Rápido
- e Low Motion - Movimento Lento.
A maioria dos formatos de video que usam compressão vão
ter keyframes. Eles ajudam o reprodutor de video a procurar facilmente as
diversas partes do filme e manter a boa qualidade da imagem. Eles também usam a
maior parte da memória de qualquer quadro do video. A maioria dos codecs vão usar
um keyframe em cada 5-10 segundos. A configuração padrão do codec DivX é 1
keyframe em cada 10 segundos. Isto está muito bom para a maior parte da duração
e mudando-o, a qualidade da imagem não vai aumentar suficientemente para que
percebamos. No passado, as pessoas começávam fazendo filmes em DivX com
keyframe a cada 9999 segundos para manter baixo o tamanho do arquivo. O
resultado era que você não conseguia retomar o video do lugar em que você
parou! Toda vez que você rodava o video, você teria que vê-lo totalmente!
Há dois tipos de configurações de bitrate usadas em
compressão de vídeo. Constant Bitrate (CBR) -
Bitrate Constante - e Variable
Bitrate (VBR) -Bitrate Variável.
Bitrate Constante: o bitrate constante representa
quanto de memória por segundo um codec vai usar para codificar um filme.
Obviamente, quanto maior é o bitrate , melhor a qualidade da imagem. Por
exemplo, em um segundo de video se passaram 25 quadros. Se eu configurei um
bitrate de 1000 Kilobits por Segundo (kbps) e codifiquei 1 segundo, cada quadro
terá usado 40 Kilobits de memória. Se eu usei um bitrate de 2000 kpbs cada
imagem poderia ter usado 80 Kilobits. Obviamente um quadro de 80 Kilobits vai
ter um aspecto muito melhor que um quadro de 40 Kilobits.
Note também que não importa que resolução usamos! Faça de
conta que codificamos um segundo de video a 1000 kbps na resulução de 352 x 288
pixels - o tamanho do arquivo final deveria ser exatamente 1000 kilobytes! De
novo, se nós codificamos um segundo de video em 1000 kbps, mas desta vez nós
usamos uma resolução de cinema de 5000 x 5000 pixels; o tamanho final do filme
ainda seria de apenas 1000 kilobytes! Eu sei que isso parece estranho, mas nós
configuramos apenas '1000 kilobits' por segundo de video e isto é tudo que o filme
vai usar!
Bitrate Variável: um codec de bitrate variável
configura seu próprio bitrate de acordo com o filme. Para ilustrar, a
compressão mpeg trabalha basicamente salvando apenas as diferenças entre
quadros. Em cenas que não tem ação há muito poucas diferenças entre quadros.
Então, se o total da quantidade de diferenças são "poucas", os
kilobits necessários para gravá-los também serão poucos. Por outro lado, se há
muitas diferenças entre quadros, ele vai usar "muitos" kilobits para
gravá-los.
É impossível saber quanto de memória um filme codificado
em Variable Bitrate vai ter porque isso depende da quantidade de cenas de
Movimento Rápido e de Movimento Lento que ele tem. Todavia, a maioria dos
codecs de bitrate variável tem limites. Por exemplo, DVD's são frequentemente
codificados usando um fixo mínimo e máximo para o bitrate o que garantirá que
não será usado muita memória e que o tamanho esperado do arquivo não será
ultrapassado ou será usado tão pouca memória que dará um aspecto ruim à imagem.
CONFIGURAÇÕES DE SUAVIDADE (SMOOTHNESS) & NITIDEZ
(CRIPINESS)
Um truque que as pessoas usam nos arquivos AVI para
reduzir o tamanho do arquivo é usar um baixo framerate. Por exemplo, filmes
NTSC usam um framerate de quase 30 quadros por segundo (fps). Se nós usássemos
apenas 15 fps então nós efetivamente teríamos dividido em dois o tamanho do
arquivo! Isto não parece ruim especialmente em desenhos animados os quais são
usualmente produzidos apenas em 15 fps de qualquer jeito!
Mas embora isto funcionou para AVIs descomprimidos, nenhum
formato Mpeg poderia fazer isto! Digamos que, por exemplo, nós tentamos
codificar um arquivo Mpeg-1 em 15 fps. O codec mpeg deveria automaticamente
adicionar quadros extras para fazer o video em no mínimo 23.976 fps que é a velocidade
capiturada com uma câmera filmadora de cinema! Então ele deveria adicionar um
código no início do filme para dizer ao video player para ele rodá-lo em 15
fps! Em outras palavras, o filme deveria ainda ter a mesma duração como um
filme de 23.976 mas rodando em 15 quadros por segundo! Quando eu primeiro
escrevi meu prévio guia de qualidade eu pensei que esta regra deveria também
ser aplicada ao DivX, mas isto não estava totalmente correto. O codec DivX é
ábil para “retirar”(“drop”) quadros afim de economizar espaço!
E aqui está onde as configurações de cripiness e
smoothness do DivX entram. As configurações de smoothness e cripiness
referem-se a preservação do framerate. Você configura o suavizador(smoother)
para que menos quadros sejam retirados. Se nós configurármos o cripiness com um
valor alto então ele vai tender a retirar quadros afim de economizar espaço,
mas o playback vai tornar-se mais sacudido! Mas antes de você começe a ferver,
esta retiragem de quadro afeta apenas em bitrates muito, muito baixos. Em
bitrate nós codificaríamos normalmente um DivX, retirar quadros não é um grande
problema. Todavia, enquanto eu usei em dizer usar apenas 100% de cripiness para
melhor qualidade, agora eu acho que mantendo-o em cerca de 75 é seguro. Meus
testes tem comvencido-me que você não deveria ter prejuízo de nenhum quadro
retirado ou playback sacudido desta maneira.
Framerates e Bitrates: Finalmente isto me traz
um estranho fato. Se nós codificármos um DivX em 30 fps ele vai realmente
acabar menor que o mesmo DivX codificado em 25 fps! Eu realmente não explico
isto, mas tenho uma teoria. Um filme de 25 fps codificado em 1000 kbps deveria
(em um contante bitrate) usar 40 kilobits por quadro. Mas um filme de 30 fps
codificado em 1000 kbps vai usar cerca de 33 kilobits por quadro. Filmes de 30
fps são basicamente filmes de 24 fps com quadros “repetidos” adiconados para
ocupar espaço. Agora, desde então, para a maioria das partes, o Mpeg-4 apenas
grava as diferenças entre quadros a total diferença entre um filme de 25 fps e
o mesmo filme em 30 fps é zero! Mas o codec está agora apenas usando um bitrate de 33 por quadro.
Isto é talvez o que faz diminuir o tamanho do arquivo, que em atividade, dá uma
baixa qualidade de imagem.
“Oi Pessoal!
Sempre a mesma questão, sempre a mesma
resposta... O codec LowMotion é um hackeado (hack) da versão 4.1.00.4920 do M$
MPEG4v3, o codec HighMotion é um hackeado da versão 4.1.4917 do MPEGv3.
Realmente
não sei a diferença interna entre o low-motion e o high-motion. Eu NOTO a
diferença e decido fazer duas versões, o low-motion que vem da versão beta e o
high-motion que é a versão 4.1.00.3917, o novo builds parece ser um estilo de
low-motion... O low-motion e o high-motion são o mesmo arquivo mas com diferentes
builds! Como voc~e sabe eu não sou o programador desta coisa então eu não posso
ajudar você mais... Eu uso principalmente o low-motion que produz um resultado
melhor de half-toning , e o high-motion quando o filme é muito movimentado.
O bitrate final é extremamente relacionado ao
CONTEÚDO do video, um filme com rápidos movimentos, muito detalhado é mais
difícil de codificar do que um filme quase parado, muito limpo... Eu acho que o
bitrate requerido é um birate MÁXIMO, e as diferenças são o caminho que o encoder(codificador)
tenta adaptar este birate, as cenas de low-motion parece alocar mais bit a cor
e é mais ‘estreito’ ao bitrate requerido, o codec high motion aloca mais bit a
luminosidade mas não é tão ‘estreito’ como o low-motion é.
Gej
Como você provavelmente adivinhou, a nota acima é do Gej, a
pessoa que fez o codec DivX! Todos os codecs Mpeg-4 são apenas hacks do codec
ASF da Micro$oft. Isto inclui o SmR (nAVI) e mesmo o codec Angel Potion (de
acordo com Avery Lee) que afirma que é o primeiro que não é um hack. Para ser
justo, o Angel Potion parece a apresentar um pouco diferentemente do resto e é
talvez um ASF altamente alterado. Mas de qualquer jeito, até esta hora de
escrita ele era cheio de bugs e então ele não é, em minha opinião, uma boa
escolha para usar. Quando eu disse eles são “hacks” a única diferença real são
eles permitirem qualquer programa usar o codec para codificar arquivos Mpeg-4.
Não ouve nenhuma alteração ao codec de nehuma maneira – isto é exatamente um
hack feito para um tempo limitado de teste, o programa hackeado em si continua
o mesmo. Então não há diferença real em qualidade entre vários hacks Mpeg-4 –
todos parecem ter basicamente a mesma qualidade!
Isto nos leva a grande questão de qual é melhor, ASF ou
DivX! E por que perder tempo hackeando isto? Bem, a Micro$soft decidiu que
nenhum pode usar o Mpeg-4 a não ser em seu cagado encoder. Arquivos ASF foram
permitidos apenas ser produzidos em resoluções muito baixas. Arquivos ASF
quando comparados ao puro arquivo Mpeg-4 deveriam adicionar quase 100MB de
dados extras a um filme de 650MB normal! Isto foi devido ao volumoso overheads
e todo o entulho designado para fazê-los rodar pela Internet. Arquivos ASF não
permitem áudio MP3 e quase sempre finalizam com sérios problemas de
sincronização de áudio. A última versão do Media Encoder(7.0) apenas permite
usar o codec Fast Motion que produz má qualidade a cenas de baixa movimetação!
Em resumo, o DivX resolveu todos estes problemas e se qualquer um que disser
que DivX é apenas uma piada e os ASFs parecem melhores, ele não sabe do que
está falando!
FAST MOTION VS LOW MOTION
Gej estava correto em sua observação dos codecs Fast e Low
Motion. Ambos os codecs são de bitrate variável o que significa que o tamanho
do arquivo final é muito difícel de prever.
O Codec Fast Motion
O codec Fast Motion é o codec mais difícil de prever o
tamanho final do arquivo. Você poderia codificar um filme em 6000 kbps e outro
em 900 kbps com o codec Fast Motion e ainda terminar com os dois filmes quase
com o mesmo tamanho! Ou o de 6000 kbps poderia terminar com o dobro do tamanho
do de 900 kbps! Não há maneira de saber! Quando nós configuramos o bitrate do
Fast Motion nós estamos configurando o bitrate Máximo! Isto significa que ele vai usar
uma média de 300 kbps até encontrar uma cena de alta ação e só então ele vai
aumentar o bitrate ao nível máximo! Isto é o porquê que as pessoas ficam
confusas, porque ele não usa o bitrate especificado até que encontre uma cena
de ação!
O Codec Low Motion
O Codec Low Motion, por outro lado, usa um bitrate Mínimo. Isto
significa que dificilmente ele vai
aumentar mais do que nós configuramos. Então se nós configuramos em 800 kbps
ele deveria usar 800 kbps na maioria das cenas e apenas usar muito pouco mais
ou menos dependendo da ação. Isto significa que o codec Low Motion é muito mais
previsível.
COMPARANDO OS DOIS CODECS
Os seguintes exmplos vão clarear os pontos fortes e fracos
dos dois codecs.
O codec Fast Motion
Aqui tem uma cena de alta-ação comprimida com o codec Fast
Motion em 6000 kbps:
Aqui tem uma cena não-ação compimida com o codec Fast Motion
em 6000 kbps:
O codec Low Motion
O seguinte é uma cena de não-ação codificada com o codec Low
Motion em 600 kbps:
Aqui tem uma cena de alta-ação comprimida com o codec Low
Motion em 600 kbps:
Pelos exemplos acima está claro que o codec Low Motion
sempre vai melhor em cenas de não-ação mesmo se ele usa um bitrate baixo como
600 kbps. Ele é notável também, embora, que quando o codec Low Motion vai sob
600 kbps ele não vai parecer significantemente melhor que o codec Fast Motion a
menos que o codec Fast Motion está configurado com o mesmo bitrate.
O Codec Fast Motion também tem um limite máximo de 2000
kbps. Ele não parece fazer muita diferença a qualidade mesmo se nós escolhermos
o Fast Motion em 2000 kbps ou 6000 kbps! Isto vai, entretanto, fazer
significante diferença no tamanho do arquivo.
Finalmente, com podemos ver pelos exemplos abaixo, quando o
codec Low Motion está configurado entre 1000-1500 kbps ele parecer ter
qualidade melhor que o codec Fast Motion não importando a que bitrate nós o
configuramos!
Fast Motion em 6000 kbps Fast Motion em 2000 kbps
CONCLUSÃO
O codec Fast Motion economiza mais espaço e vai muito bem em
cenas de alta ação. Se você está indo usar ele para filmes, sempre configure-o
em 2000 kbps. Há pouca vantagem usando outra configuração e ele tem a melhor
razão entre qualidade e tamanho. Você pode considerar em usar o codec Fast
Motion para colocar longos filmes em um único CD.
O codec Low motion configurado em 600 kbps vai fazer um
trabalho melhor que o codec Fast Motion apenas em todas as cenas de baixa ação.
Ele não pode competir com o codec Fast Motion em cenas de alta ação a menos que
nós configuramos seu bitrate entre 1000-1500 kbps. Depois distol, ele começa a
produzir resultados muito melhores que o codec Fast Motion.
Nota Final: Em resoluções muito pequenas como
320 x 240 o codec Fast Motion faz um trabalho muito ruim. É provavelmente melhor
usar o codec Low Motion todo o tempo em alguns casos. Mas, como sempre, faça
alguns testes e veja o que você acha.
QUALIDADE E RESOLUÇÃO
Todos os formatos Mpeg, incluindo o Mpeg-4 DivX, despedaçam
a imagem em 16 x 16 blocos chamados macroblocks. Em cada bloco é alocado uma
certa quantidade de memória baseado no bitrate que nós especificamos ao codec.
Mais bitrate, melhor a qualidade. Vamos ver o que acontece ao macroblocks
quando nós alocamos menos e menos bitrate a ele. O melhor meio de ver isto é alargar
o video, como isto:
Dê uma olhada nas imagens abaixo. À primeira foi dada o
maior bitrate e à imagem mais abaixo o menor bitrate. E como você pode ver,
quanto menos bitrate nós damos a ela, mais simplificados os macroblocks são!
Idealmente nós amaríamos codificar todos os filmes em alta
resolução DVD: 720 x 576. Mas nesta resolução a imagem é quebrada em 1,620
macroblocos. Isto dá uma resolução efetiva de 45 x 36 blocos.
Vamos supor que temos decidido que para colocar um filme em
DivX em um único CD nós precisamos usar um bitrate de 800 kbps. Mas quando
vemos o filme em 640 x 480 podemos ainda ver muitos artifatos de macroblocos.
Não podemos aumentar o bitrate ou ele não vai caber no CD. Muitos acham que se
nós fizermos a imagem maior (ex. tamanho máximo) os blocos vão ser menores.
Isto está errado! Grandes imagens significa mais blocos que significa menos
memória dado a cada bloco. Quando cada bloco tem menos memória alocado a ele,
ele fica cada vez mais simples até que no final, os blocos viram nada mais do
que cores brancas!
A única solução é diminuir a imagem. Imagens menores
significam menos blocos que significa mais memória alocada a cada bloco e cada
bloco parecerá mais com o do original. A resolução de 480 x 384 daríamos 30 x
24, que é 900 macroblocos a menos. Isto pode fazer uma grande diferença na
qualidade!
A metodologia acima não é nova para o DivX, a mesma coisa
tem sempre sido aplicada a todos os formatos Mpeg desde que eles foram criados.
Por causa disto na compressão a resolução do filme não é um fator que determina
a qualidade da imagem. Imagens menores realmente tem melhor aspecto que as
maiores de mesmo bitrate. A técnica para produzir a melhor qualidade de imagem
é matemática simples:
1. Use o mais
alto bitrate que você pode.
2. Se a
imagem mostra muitos macroblocos,
abaixe um pouco a resolução
3. Cheque-o
novamente. Se há ainda muitos macroblocos, abaixe um pouco mais até que eles
não são notáveis. É improvável que você livra-se de todos os macroblocos em um
único CD DivX mas você pode livrar-se da maioria deles.
Video Cds comerciais (VCD) são cosiderados pelos experts
terem a qualidade de video quase igual ao VHS. Eles usam uma resolução de
apenas 352 x 240! Isto é possível mesmo que a resolução de uma TV é algo como
576 linhas. É difícil comparar uma imagem analógica a uma imagem digital
meramente pela resolução. Em primeiro lugar, VHS usa um sinal de compresão,
sim, isto está certo, VHS também é um
formato comprimido! Mas a resposta de curva do VHS coloca –3 dB em torno de 2
Mhz da analógica luminance de largura de banda é equivalente a 200
samples/linha. O VHS chroma é consideravelmente menos denso na direção
horizontal que a fonte do video MPEG. E de uma amostragem de perspectiva de
densidade, o VHS é superior apenas na direção vertical, mas quando leva em
conta o interfield da fita magnética crosstalk e o fator do monitor de TV Kell,
não é por isto tudo. Bem, isto é o que eu leio em qualquer lugar! Mas a
conclusão deste assunto é usando pequenas resoluções que linhas de TV, pode
ainda produzir video quase tão bons quanto VHS.
Algumas
partes acima ficaram confusas, aqui está o parágrafo em inglês:
Commercial
Video CD's (VCD) are considered by experts to be almost VHS quality video. Yet
they only use a resolution of 352 x 240! This is possible even though a TV
resolution is something like 576 lines. It is hard to compare an analog image
to a digital image by mere resolution. For one thing VHS uses signal
compression, yes, that's right, VHS is also a compressed format! But the
response curve of VHS places -3 dB at around 2 MHz of analog luminance
bandwidth is equivalent to 200 samples / line. VHS chroma is considerably less
dense in the horizontal direction than MPEG source video. And from a sampling
density perspective, VHS is superior only in the vertical direction, but when
taking into account interfield magnetic tape crosstalk and the TV monitor Kell
factor, not by all that much. Well, that what I read anyway! But the conclusion
of the matter is using small resolutions than TV lines can still produce
video's almost as good as VHS.
Eu tenho apenas algumas regras, eu sempre sigo por decidir
resoluções de video. Eu nunca as faço maiores de 640 x 480 (que é maior que
resoluções de TV) e eu nunca vou menos que 240 pixels, acima disto, a menos que
absolutamente necessário.
CORTANDO O VIDEO
Considerando o fato anterior sobre macroblocos, faz sentido
que contanto as barras pretas encontradas no topo, embaixo e algumas vezes nos
lados de um filme permitiria o codec alocar mais memória a qualidade da imagem.
Mas a quantia de memória alocada a área de um pitch preto é completamente
despresível. Como a coisa mais vital para lembrar por compressão mais
eficiente é sempre cortar um pouco de pixels da imagem, como então apagar todos
as barras pretas. A Compressão do Mpeg funciona melhor em imagens coradas;
então se uma resistente linha preta é vista na margem de seu filme cortado, ele
não será comprimido efetivamente. Na verdade, se você não pode cortar a imagem,
então eu digo a você que não se aborreça cortando, por que a memória
economizada é muito pequena.
Cuidados no Corte
É apenas justo avisar a você que, embora em minha opinião o
corte melhora a qualidade da imagem do DivX em uma duração grande, antes que
você decida que o corte é o melhor caminho, você deve considerar estes quatro
fatos:
1.
Um filme cortado é algumas vezes
difícil de corverter em outro
formato. Isto por causa que você pode precisar de re-adicionar as
barras pretas ao topo e ao rodapé do filme primeiro ou a forma do filme poderá
ser esticada.
2. Um filme DivX cortado vai rodar com uma
relação de altura e largura errada no PowerDVD e em alguns outros Video
players. Por outro lado, Media Player, MicroDVD e muitos outros players vão
rodar um filme cortado perfeitamente.
3. VCDs e SVCDs não podem ser cortados se eles
estão a ser rodados em um DVD player porque ele não vai aceitá-los.
4. Finalmente, arquivos Mpeg-4 (e arquivos DVD
por aquela questão) tem problemas em rodar em alguns hardware se eles não são
codificados em tamanhos que podem ser divididos por 32. Isto significa que o
Matrox G400 ou o Nvidia GeForce provavelmente teriam problemas enviando o video
para a TV. Este problema de saída para TV é associado ao codec Mpeg-4 e não se
aplica a maioria de outros codecs.
Um exemplo:
Uma largura
de 528 pixels dividida por 32 = 16.5. Esta não é um múltiplo de 32 então pode
ter problemas. Mas uma largura de 576 pixels dividida por 32 = 18. Esta é um
múltipo de 32 e vai rodar perfeitamente.
NÃO COLOQUE A CULPA DISTO AO BITRATE!
Se você começar a codificar um filme e ele parece como a
imagem abaixo, isto não tem nenhuma ligação com a compressão. Não interessa se
você usou 6000 kbps ou 10 kbps ele não livrará daquelas linhas. O problema é o
Flask, ou qualquer outro decodificador que você está usando, não é capaz de
decodificar seu DVD corretamente!
Desde a TV, as telas são todas feitas de linhas, o DVD tem
um código interno que diz como enviar estas linhas a tela e em que ordem. Se a
ordem destes “campos” está incorreta, você vai ter o efeito chato que podemos
ver acima. Até hoje não tem solução para isto. Você pode tentar redimensionar
para menor o filme ou você pode usar o filtro deinterlace do Flask Mpeg. Há
também um super lento e aborrecido meio de corrigir isto usando DVD2AVI. Para
mais informações deste assunto cheque a informação em meu apêndice chamado:
“Video Formats: NTSC & PAL / Telecine”.
O ARTEFATO DeCSS
Como você sabe, DVDs tem um content scrambling system (CSS) –
sistema de conteúdo embaralhado – que o faz difícil de copiar. Eles requerem
chaves códigos para decriptar. Se você usa a chave errada, você vai terminar
com um arquivo corrompido. A maioria dos softwares de rippagem (ripping)
automaticamente encontram as chaves e as usa, mas é sempre uma boa idéia checar
seu DVD decodificado rodando-o em seu DVD player, apenas para ter certeza que
está correto antes que você converta-o em alguma coisa. Você vai saber se ele
está corrompido se você rodar lixo ou ver blocos verdes/rosa como na imagem
abaixo.
Como você pode ver, ‘pessoas mortas’ não é a única coisa que
esta criança vê =o).