Simulador de estimativa de movimento
Simule a estimativa de movimento entre quadros, a correspondência de blocos, os padrões de busca e os resíduos de compressão.
SAD e ineficiências da busca 🖖
A estimativa de movimento é o gargalo da compressão de vídeo. Um macrobloco de tamanho 16x16 é comparado ao quadro de referência dentro de uma janela de busca para encontrar o candidato com a menor soma das diferenças absolutas (SAD). A busca completa exaustiva avalia todas as (2r+1)² posições, o que é lento. Algoritmos rápidos como a busca em diamante e hexagonal avaliam apenas uma fração dos pontos, deslocando o centro de busca de forma iterativa e parando quando o mínimo está no centro do padrão. Passe o mouse sobre qualquer bloco para ver sua janela de busca e as avaliações de candidatos em tempo real.
Por que enviar movimento, não pixels 🖖
Quadros de vídeo consecutivos são quase idênticos, então, em vez de guardar cada quadro por inteiro, um codec descreve o quadro atual como pedaços do anterior que se deslocaram. Cada bloco de 16×16 recebe um vetor de movimento apontando para sua melhor correspondência, mais um pequeno resíduo com aquilo que o deslocamento não conseguiu explicar. A lição: panorâmicas suaves de câmera comprimem lindamente, pois um único vetor substitui milhares de pixels.
Vetores de movimento não são movimento real 🖖
O codificador nunca pergunta o que de fato se moveu: ele apenas caça o bloco de menor SAD. Por isso, em regiões planas ou ruidosas, o vetor vencedor pode apontar para um lugar absurdo, nada parecido com o deslocamento verdadeiro. Aumente o controle de ruído e veja o campo de vetores se espalhar em puro caos. É por isso que vetores de movimento servem mal como fluxo óptico, mas perfeitamente para compressão: eles obedecem à taxa de bits, não à física.
Problemas de exemplo
- Panorâmica lenta - Panorâmica horizontal lenta: resíduo quase nulo, vetores de movimento apontam uniformemente para a direita
- Panorâmica rápida - Panorâmica rápida: SAD maior no limite de busca, resíduos de alta energia nas bordas
- Zoom divergente - Movimento de zoom-in: vetores divergindo a partir do centro, nenhum vetor de translação único se ajusta
- Câmera de mão com ruído - Câmera ruidosa: SAD alto apesar de vetores corretos — a energia do ruído domina o resíduo