Um filme
é constituído por quadros (de 23 a 29 a cada segundo).
A compressão MPEG4 se baseia em que cada quadro armazene apenas
a diferença entre ele e o quadro anterior, de forma que numa
cena de um noticiário com o locutor falando, por exemplo, os
quadros acabam armazenando apenas as imagens da boca se mexendo. Esses
quadros simplificados são chamados de Delta Frames. Entretanto,
se um filme fosse constituído apenas de um quadro completo no
início e o restante apenas fossem Delta Frames, para pular para
qualquer parte desse filme não seria possível simplesmente
pular para onde você quer começar a assistir e começar
dali.Você precisaria ir até o início e computar
quadro a quadro todas as diferenças até chegar
ao ponto onde você quer assistir. Na prática algo assim
é intolerável pois demora muito. E talvez você
tenha até encontrado na Internet um AVI que, mesmo assistindo
no computador, você não consegue escolher uma cena, pois
tem sempre que assistir desde o início.
Para contornar
isso existem os keyframes (ou I-Frames). A cada X segundos ou nas mudanças
de cena, um quadro inteiro de alta qualidade é armazenado no
filme e todos os Delta Frames seguintes são computados a partir
dele. Você talvez já tenha notado que quando arrasta o
"slider" do Windows Media Player para escolher uma cena de
um filme, você curiosamente cai duas, três vezes seguidas
exatamente na mesa cena, no mesmo exato segundo. Isso ocorre porque
o WMP não inicia onde você soltou o slider, e sim no keyframe
mais próximo.
Pois a
mesma coisa ocorre com o DVP642 (e muito provavelmente com qualquer
outro player DivX). Mesmo que você defina um segundo exato onde
iniciar um filme com a função Time Search (GOTO), você
sempre vai iniciar no próximo keyframe. O espaço entre
keyframes pode ser determinado por quem comprimiu o filme, mas costuma
ser de alguns poucos segundos.
Outro efeito
visível da existência dos keyframes às vezes pode
ser visto na tela. Em determinadas situações (falha na
media, na leitura ou na compressão) você pode perceber
que o player (seja software ou hardware) de repente se perde, deixando
artefatos esquisitos na tela, que segundos depois desaparecem completamente
e de repente. O desaparecimento ocorre quando o filme alcança
o próximo keyframe e não ocorre antes porque simplesmente
não existe informação nos Delta Frames para corrigir
a falha.
Para saber
quais os keyframes de um filme, basta abri-lo no Virtualdub e usar os
botões que tem os desenhos de pequenas chaves para andar de keyframe
em keyframe.
É
também por causa dos keyframes que você encontra dificuldade
para cortar um filme exatamente onde você quer. A maioria dos
programas só permite o corte em um keyframe.
É
também possível que os keyframes estejam relacionados
com alguns dos comportamentos esquisitos do DVP642 com relação
a legendas externas, mas ainda preciso verficar isto.