Aula 11 Técnicas Básicas de Compressão de Vídeo Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Curso de Ciência da Computação
Introdução Vídeo sequência ordenada de (imagens); Por que comprimir? frames Vídeos são grandes eficiência de armazenamento e transmissão. Compressão Básica de Vídeo 2
Introdução Como comprimir? Abordagem básica inicial: codificação preditiva. Compressão Básica de Vídeo 3
Introdução Problema da abordagem básica: Funciona apenas para imagens estáticas! Custo alto operação pixel a pixel. Primeiro frame referência! Segundo frame em diante imagens com pixels iguais a zero alta compressão! Compressão Básica de Vídeo 4
Introdução O que ocorre com elementos móveis entre dois frames? Imagem erro com pixels diferentes de zero. Ideia de solução: Procurar por partes da imagem que contêm o elemento que se move; Subtrair apenas essa parte em relação ao frame anterior. Compressão Básica de Vídeo 5
Compensação do Movimento Conceitos: Redundância espacial pixels mudam com uma frequência baixa ao longo das dimensões da imagem. Compressão Básica de Vídeo 6
Compensação do Movimento Um vídeo é uma fila de imagens dispostas pelo tempo; Normalmente os elementos em duas imagens sequenciais não mudam rapidamente: Alta taxa de variação de frames; Elementos da câmera permanecem constantes (distância focal, posição, ângulo de visão, etc.). Vídeo redundância temporal. Compressão Básica de Vídeo 7
Compensação do Movimento A codificação ocorre entre diferenças de um frame para outro; Quanto maior a redundância temporal, melhor a codificação; Diferença resulta em valores pequenos menor entropia. Compressão Básica de Vídeo 8
Compensação do Movimento Movimento causado principalmente pelo movimento de câmera e/ou algum objeto. As regiões de movimento podem ser estimadas para agilizar a diferença entre imagens consecutivas compensação de movimento; Compressão Básica de Vídeo 9
Compensação do Movimento Passos: Estimação do movimento; Predição baseada na compensação do movimento; Derivação do erro de predição. Compressão Básica de Vídeo 10
Compensação do Movimento As imagens são divididas em macroblocos: x, y x 0, N y 0 N = 16 (imagens nível de cinza) luminância N N = 8 (imagens coloridas) crominância Compressão Básica de Vídeo 11
Compensação do Movimento A compensação do movimento é realizada nos macroblocos. Imagem atual frame alvo; Imagem passada frame de referência; Comparação entre o macrobloco do frame alvo com o mais provável macrobloco do frame de referência descobrir o vetor de movimento (MV) entre os macroblocos. Compressão Básica de Vídeo 12
Compensação do Movimento Compressão Básica de Vídeo 13
Compensação do Movimento Observação: Para a compressão baseada em compensação de movimento, após o primeiro frame, somente o vetor de movimento e as diferenças dos macroblocos precisam ser codificadas. Informação suficiente para regenerar o vídeo. Compressão Básica de Vídeo 14
Estimação do Movimento Processo de busca do macrobloco na imagem alvo pode ser demorado; Usa se busca na vizinhança do macrobloco original janela de dimensões 2p 1 2p 1 Compressão Básica de Vídeo 15
Estimação do Movimento Cálculo da diferença média absoluta: MAD i, j = 1 N 1 N 1 C x k, y l R x i k, y j l N 2 k=0 l=0 Objetivo: encontrar (i, j) (vetor de movimento) de tal forma que MAD(i, j) seja mínimo; u,v =[ i, j MAD i, j é mínimo] i [ p, p], j [ p, p] Compressão Básica de Vídeo 16
Estimação do Movimento Busca sequencial método mais simples; Faz a comparação por toda a vizinhança do macrobloco. Computacionalmente custoso. Compressão Básica de Vídeo 17
Estimação do Movimento Algoritmo min_mad = LARGE_NUMBER for i = p to p for j = p to p cur_mad = MAD(i, j) if cur_mad < min_mad min_mad = cur_mad u = i; v = j; //Inicialização Compressão Básica de Vídeo 18
Estimação do Movimento Busca Logaritmica 2D: Versão mais eficiente de busca do vetor do movimento; Resultado subótimo; Consiste em uma busca iterativa até que um critério seja atendido; Em cada iteração, o espaço de busca é reduzido pela metade. Compressão Básica de Vídeo 19
Estimação do Movimento Compressão Básica de Vídeo 20
Estimação do Movimento Compressão Básica de Vídeo 21
Estimação do Movimento Compressão Básica de Vídeo 22
Estimação do Movimento Compressão Básica de Vídeo 23
Estimação do Movimento Compressão Básica de Vídeo 24
Estimação do Movimento Compressão Básica de Vídeo 25
Estimação do Movimento Algoritmo Busca Logarítmica: offset = ceil(p/2); Especificar nove macroblocos dentro da área de busca no frame de referência (eles ficam centrados em (x0, y0), com separação horizontal e vertical por uma medida igual a offset); Enquanto last!= TRUE{ Encontrar um dos nove macroblocos que resulta no menor MAD; Se offset == 1 last == TRUE; offset = ceil(offset/2); Formar uma nova região de busca com o novo offset e novo centro; } Compressão Básica de Vídeo 26