Read English version of this Guide.
Return to translated articles index

Translated by : Filipe Drumond

DivX Quality & Bitrate Guide

Guia de Qualidade & Bitrate no DivX

 

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.

 

DENTRO DO CODEC DIVX

 

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.

 

 

 

KEYFRAMES

 

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!

 

BITRATE

 

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.

 

QUAL É A DIFERENÇA?!

 

“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

 

http://divX.ctw.cc

 

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

 

 

 Low Motion em 1500 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).