Sim, "keyframe" no caso de filmes Mpeg
é MAIS ou MENOS isto, é um frame que tem informações
completas, não só sobe a imagem, mas também
sobre o sincronismo com a trilha sonora. Para efeitos didáticos
e práticos um "keyframe" é um quadro com
informações completas. No exemplo acima apenas o primeiro
quadro é um "keyframe". O "keyframe"
serve de referência para todos os quadros contidos dali em
diante até o próximo "keyframe". O padrão
do Flask Mpeg é adicionar um "keyframe" a cada
dez segundos, isto implica em dizer que, em um filme PAL-m, com
25 fps, os 249 quadros entre um keyframe e o seguinte seriam compostos
apenas de fragmentos de imagem, combinando com o keyframe anterior
e todos os demais blocos de imagem dos "frames" anteriores
desde este "keyframe" forma-se a imagem de um determinado
quadro situado entre dois "keyframes". O quadro imediatamente
anterior a um "keyframe" acumula informações
de todos os 249 quadros anteriores, incluindo o último "keyframe"
(que a esta altura está a 249 quadros de distância)
para formar sua imagem.
Entendido, mas qual o motivo de colocar um "keyframe"
por segundo, a imagem fica melhor? A resposta é um retumbante
NÃO, a imagem não fica melhor (até pelo contrário,
como veremos adiante), as vantagens são outras. A principal
vantagem é que o filme fica muito mais fluido para avançar
e retroceder, de fato se a distância entre os "keyframes"
for muito grande, o simples fato retroceder um único quadro
pode levar mais de um minuto para o computador montar a imagem,
pois ele precisará recolher todas as informações
desde o último "keyframe" para formar o a imagem
do quadro para o qual você retrocedeu.
Ué! Mas porque que o mesmo não ocorre quando estamos
simplesmente assistindo a um filme DivX;-)? Cada "frame"
não é montado utilizando-se todas as informações
desde o último "keyframe"? Não, quer dizer,
sim. Sim e não =). Acontece que quando estamos assistindo
um filme o computador já tem montado o último quadro,
então ele simplesmente adiciona as informações
de blocos do próximo quadro à imagem já existente
na memória para formar este novo quadro. As informações
são acumuladas desde o último "keyframe"
mas isto é feito quadro a quadro, para apresentar um quadro
entre dois "keyframes" não são feitos todos
os cálculos de modificações que ocorreram desde
o último "keyframe", mas simplesmente adicionadas
informações sobre o último quadro. Mas quando
retrocedemos ou adiantamos o filme estas informações
acumuladas são esquecidas, o computador procura então
um "keyframe" anterior ao quadro que selecionamos ao adiantar
ou retroceder e monta a imagem procurando todas as modificações
que ocorreram desde este "keyframe", se houver um número
muito grande de informações intermediárias
este poderá vir a ser um processo demorado.
O melhor programa para para assistir um DivX;-) Mpeg-4, na minha
opinião é o MicroDVD (http://aw-clan.gnw.de/mdvdp),
seus controles são perfeitos e suas opções
completas. Por algum motivo ele também é muito mais
eficiente para avançar e retroceder filmes do que, por exemplo,
o Windows Media Player, embora compartilhem os mesmos codecs.
|