1.45k likes | 1.74k Views
Compressão de Vídeo MPEG. TT083. Sumário. Sistema Visual Humano Formatos de Vídeo Compressão de Vídeo Medidas de Distorção Taxa de Bits Complexidade Computacional Técnicas de Compressão de Vídeo MPEG-1 Vídeo MPEG-2 Vídeo Conclusões. Sistema Visual Humano (VHS) [1].
E N D
Compressão de Vídeo MPEG TT083
Sumário • Sistema Visual Humano • Formatos de Vídeo • Compressão de Vídeo • Medidas de Distorção • Taxa de Bits • Complexidade Computacional • Técnicas de Compressão de Vídeo • MPEG-1 Vídeo • MPEG-2 Vídeo • Conclusões
Sistema Visual Humano (VHS) [1] • Na retina do olho existem diversos tipos de elementos foto-sensíveis (cones e bastonetes). • Existem três classes de células cones (foto-receptores de cor no olho) que têm sensibilidades diferentes aos comprimentos de onda do espectro visível. Fundamentalmente, são sensíveis às cores vermelho, verde e azul (padrão RGB). • As demais cores são formadas como médias ponderadas das cores primárias: C = r x R + g x G + b x B onde r, g e b representam o quanto um determinado comprimento de onda estimulou as três classes de receptores.
Sistema Visual Humano (VHS) [2] Azul Verde Vermelho Sensibilidades dos três tipos de cones no olho humano
Sistema Visual Humano (VHS) [3] • O olho humano é mais sensível ao verde, depois ao vermelho e por último ao azul. • Estes efeitos interessam em compressão porque não é necessário reproduzir fielmente detalhes que o olho não pode ver. • Desta forma, pode-se representar a imagem em outros padrões que explorem estas características, como em termos de luminância e crominância. • Luminância está relacionada ao brilho da imagem e é proporcional à energia emitida pela fonte. • Crominância está associada à percepção de saturação e matiz.
Sistema Visual Humano (VHS) [4] • O olho percebe mais detalhes espaciais na componente de luminância do que na de crominância. • A maioria dos componentes de alta frequência de uma imagem está na luminância. • A sensibilidade cai em alta frequência para todos os componentes. • A maior sensibilidade está na componente de luminância em baixas frequências.
Sistema Visual Humano (VHS) [5] • Componentes de alta frequência em uma imagem correspondem às bordas, detalhes, limites e ruído da imagem. Então, o maior conteúdo da imagem está em baixa frequência. • Ao se realizar uma filtragem passa-baixa em uma imagem, esta perderá a nitidez, mas as componentes de crominância quase não serão afetadas (uma imagem clara continuará clara e uma imagem escura continuará escura).
Sistema Visual Humano (VHS) [6] • Devido à sensibilidade do olho humano à magnitude e à fase da imagem, pode-se fazer uma análise objetiva dos codificadores de vídeo, uma vez que as formas de onda de entrada e saída devem ser iguais. • Lei de Weber = Resposta não-linear às mudanças na saturação - inversamente proporcional à saturação. Sensibilidade maior para níveis de saturação menor. • A região de fundo também deve ser levada em consideração. Se a saturação do fundo for maior (fundo mais escuro), a sensibilidade diminui. • Maior sensibilidade à padrões horizontais e verticais do que à padrões diagonais.
Espaços de Cores [1] • RGB, YUV, YCRCB, YCoCg… • Em sistemas de vídeo, as componentes RGB (já com correção de gama) estão definidas em uma escala relativa entre 0 e 1. • Os tons de cinza da imagem são produzidos quando R = G = B (gerando imagens com oito bits/pixel). • Branco – R = G = B = 1 • Preto – R = G = B = 0 • R, G e B contribuem para o brilho, mas precisam ser ponderadas de acordo com a sensibilidade relativa do olho à cada cor primária. Assim, tem-se a seguinte conversão para a componente de luminância: Y = 0,229 x R + 0,587 x G + 0,114 x B
Espaços de Cores [2] • Para a representação da matiz e da saturação usam-se diferenças de cores: U = B – Y V = R – Y • Para eliminar os possíveis valores negativos, as componentes U e V são escalonadas e deslocadas, tal que: CR = (V / 1,6) + 0,5CB = (U / 2) + 0,5 • Para obter a representação das componentes por oito bits, basta multiplicá-las por 255 (imagem colorida com 24 bits/pixel). • Uma das vantagens do YUV (YCRCB) é que as componentes de crominância podem ter uma taxa de amostragem menor sem degradação perceptível do sinal.
Espaços de Cores [3] • 4:4:4Nenhuma informação é descartada. Pouco utilizado (24 bpp). • 4:2:2Os sinais de crominância são sub-amostrados por um fator de 2 na direção horizontal (16 bpp). • 4:2:0Os sinais de crominância são sub-amostrados por um fator de 2 nas duas direções, horizontal e vertical. É o mais utilizado (12 bpp).
Espaços de Cores [4] • Os formatos YUV são divididos em formatos empacotados e planares. Em um formato empacotado, as componentes Y, U e V estão armazenadas em um único vetor e os pixels estão organizados em grupos de macropixels. Em um formato planar, as componentes Y, U e V são armazenadas em três planos diferentes. • Formatos empacotados: YUY2, UYVY, … formato 4:2:2 preferido Direct-X • Formatos planares: YV12, IMC2, IMC4, NV12,…
Espaços de Cores [5] • YCoCg (luminância + offset laranja + offset verde) Y = 0,25 x R + 0,5 x G + 0,25 x B R = Y – Co – Cg Co = 0,5 x R – 0,5 x B G = Y + Cg Cg = -0,25 x R + 0,5 x G – 0,25 x B B = Y – Co – Cg • Ainda não é completamente reversível. Se todas as operações fossem multiplicadas por quatro, a reversibilidade seria alcançada, porém haveriam componentes de cor com mais de dois bits. • Solução = YCoCg – R (completamente reversível). Porém usa um bit a mais para cada componente de crominância. • Resultados melhores que os obtidos com YCRCB e com RCT (transformada de cor reversível do JPEG 2000).
Formatos de Vídeo [1] - Aproximadamente 30 frames / segundo - Não-entrelaçados
Formatos de Vídeo [2] i – interlaced; p – progressive.
Porque comprimir o sinal? TV de Alta Definição (HDTV) - 1920x1080 - Taxa de Bits sem compressão: 1,5 Gbps - Nível aceitável para transmissão: 19 Mbps TV de Definição Padrão (SDTV) - 720x480 - Taxa de Bits sem compressão: 270 Mbps - Nível aceitável para transmissão: 4 a 5 Mbps Daí a necessidade de comprimir o sinal! Largura de Banda 6 MHz = 19 Mbps
Compressão vs. Compactação • Compressão: redução do número de bits utilizados para representar uma imagem, podendo ou não, ter uma imagem reconstruída diferente diferente da original (com perdas) • Compactação: compressão sem perdas. Aquela em que a imagem reconstruída deve ser identica a original
Uma seqüência de vídeo digitalizada apresenta grande quantidade de redundância. A codificação de vídeo (= compressão de vídeo) objetiva reduzir a Taxa de Bits através da redução de redundâncias. Objetivo da Compressão de Vídeo
Tipos de Redundância Exemplo de ferramenta de compressão • Os valores dos pixels são correlacionados com seus vizinhos, dentro do mesmo quadro. • Os valores dos pixels são correlacionados com seus vizinhos entre quadros consecutivos. • Algumas componentes são irrelevantes para o sistema visual humano. • Alguns coeficientes codificados ocorrem com mais freqüência que outros. REDUNDÂNCIA ESPACIAL DCT Estimação de movimento REDUNDÂNCIA TEMPORAL REDUNDÂNCIA PSICOVISUAL Quantização REDUNDÂNCIA EM ENTROPIA VLC
Métodos Óbvios de Compressão Sobreposição, assim deve-se respeitar a Taxa de Nyquist Problema • Redução da Taxa de amostragem • Redução do número de níveis de quantização • Redução da Taxa de Atualização (refresh) Aparece nos contornos (bordas) da imagem Problema Flickering Problema
Principais Ferramentas de Codificação • DCT (Discrete Cosine Transform) • Quantização • Codificação Entrópica • Varredura Zig-Zag • Estimação e Compensação de Movimento (EM/CM)
Estrutura Principal do Codificador Temporal PsicoVisual Entropia Espacial
Estrutura Principal do Decodificador Como o decodificador não tem acesso aos quadros originais de referência para reconstituir os quadros preditos, o codificador deve utilizar os mesmos quadros de referência utilizados pelo decodificador. Assim, é necessário aplicar uma quantização inversa e DCT inversa.
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Codificação Preditiva • A maior parte da informação de um quadro pode ser predita a partir do quadro anterior. • A simples subtração entre frames consecutivos já reduz a energia do quadro a ser transmitido, porém ainda há uma quantidade significativa de energia a ser comprimida. Para isso, podem ser técnicas de compensação de movimento.
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Codificação Preditiva • O DPCM faz a codificação do erro de predição gerado pela estimação do quadro a partir de quadros anteriores. • A faixa dinâmica do erro de predição resultante é menor do que a faixa do sinal. Assim, tem-se uma quantização mais precisa do erro do que do próprio sinal. A imagem diferencial é menos correlacionada, com variância menor, distribuição laplaciana com pico em zero. Energia de um quadro e seu erro de predição
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Estimação e Compensação de Movimento (EM/CM) • Estimação de Movimento é o processo pelo qual vetores de deslocamento são calculados no codificador. Usa o quadro anterior predito (do buffer) e o atual para determinar os vetores de deslocamento para os macroblocos. Assim, determina-se a quantidade de movimento existente entre os dois quadros. • Compensação de Movimento explora o fato de que a maior parte do movimento é previsível. Usa o quadro do buffer e os vetores de deslocamento para predizer o quadro atual. A predição é subtraída do quadro atual e o erro de predição é codificado.
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Estimação e Compensação de Movimento (EM/CM)
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Estimação de Movimento • Um vetor de deslocamento é gerado para cada macrobloco para indicar a posição de um determinado bloco do quadro anterior no quadro atual, melhorando a predição do quadro atual. • O vetor de deslocamento é composto de duas componentes (horizontal e vertical). • De acordo com o erro de predição obtido, o modo de codificação do macrobloco pode ser: INTRA, INTER ou INTER + CM. Se o último modo for selecionado, além do erro de predição, estes vetores de deslocamento são transformados, quantizados e transmitidos para o decodificador como parte da bistream. • A imagem entre o quadro e a sua predição é a MCD (Motion Compensated Difference). Esta é a imagem codificada. • No MPEG, EM/CM é ainda mais desenvolvido, pois tem interpolação de quadros (quadros I, P e B).
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Estimação de Movimento • Algoritmos de EM recursivos: • Podem ser aplicados à blocos de pixels ou à um único pixel. • PRA : Pel Recursive Algorithm. Assume que cada pixel da imagem de um corpo rígido teve um deslocamento transversal paralelo ao plano da câmera. • Necessitam apenas do deslocamento anterior e de uma lei recursiva de estimação. • Não têm efeitos de blocagem. Porém, têm alta complexidade computacional • Este tipo de EM é chamada de “Backward Motion Estimation”.
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Estimação de Movimento • Algoritmos de EM baseados em casamento de blocos: • Partem do princípio de que o movimento é sempre de um objeto rígido translacional e paralelo ao plano da câmera. • O quadro é dividido em pequenos blocos que são procurados no quadro anterior a fim de se determinar o movimento dos blocos. • A procura é realizada em uma região limitada do quadro anterior, chamada de janela de busca. • Define-se, também uma função de casamento para a escolha da melhor posição.
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Estimação de Movimento A diferença entre as coordenadas do bloco no quadro atual e as coordenadas deste mesmo bloco no quadro anterior é armazenada no vetor de deslocamento (VD).
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Compensação de Movimento • Após a estimação do movimento, cada bloco do quadro anterior é deslocado de acordo com seu vetor de deslocamento. • A imagem assim gerada é a estimação do quadro atual baseada no quadro anterior.
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Block matching • A precisão da estimação depende de três importantes fatores: • Tamanho do bloco; • Tamanho da janela de busca; • Função de casamento. • As medidas de erro geralmente usadas são: • MSE: Mean Square Error • MAD: Mean Absolute Distortion (Mais usado) • NCCF: Normalized Cross-Correlation Function
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Block matching • Algoritmos de busca rápida do vetor deslocamento: • A idéia é considerar que a função casamento é decrescente no sentido do vetor deslocamento correto. Esta direção é chamada de DMD – Direction of Minimum Distortion. • TSS (Three-Step Search) – semelhante ao DMD com a diferença de que a cada passo 9 pontos são avaliados. • OTS (One-at-a-time search) • CDS (Conjugate Direction Search)
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Block matching
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Exemplo de Estimação de Movimento Forward Grade de MB Imagem P MB Atual. Visto que o casamento é encontrado este MB é intercodificado Imagem anterior I ou P Dentro da área de busca um bom casamento é encontrado. O codificador envia o vetor de movimento apropriado
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Estimação de Movimento Backward Imagem P ou I anterior A busca nesta imagem não encontra um bom casamento Próxima Imagem I ou P A busca nesta imagem encontra um bom casamento Imangem B atual
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Codificação 3D • Uma sequência de vídeo também pode ser vista como um volume de dados, como um sinal tri-dimensional. • Elimina-se os problemas causados pela estimação de movimentos: atrasos, perdas, dificuldades em sequências de vídeo que apresentam movimentos rápidos ou que tenham rotação, zoom e mascaramento de objetos. • Ocorre uma perda na taxa de compressão, mas a qualidade do sinal reconstruído é alta.
DCT (Discrete Cosine Transform) A imagem é dividida em blocos 8x8 = 64 coeficientes não correlacionados. Concentra a energia nos coeficientes de baixa freqüência. O coeficiente mais importante ocupa a posição relativa (0,0) no bloco (coeficiente DC). Organiza a informação de forma que facilita a compressão. Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer DCT DC: significa que não há mudanças de intensidade (baixas freqüências AC: a intensidade do bloco varia rapidamente de pixel p/ pixel (altas freqüências
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer DCT
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Vantagens da DCT • Os coeficientes DCT são quase completamente descorrelacionados, ou seja, independentes um dos outros e portanto podem ser codificados independentemente • A forma como decompõe os dados em freqüências é muito importante para a compressão pois permite que os coeficientes DCT sejam reduzidos de maneira consistente com com as propriedades do sistema visual humano
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Transformada Wavelet • Apresenta grande capacidade de concentrar a energia • Explora as características do Sistema Visual Humano • Diminui sensívelmente o efeito de bloco (bloccking effect) que é um dos principais problemas do JPEG baseado em DCT
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Análise de Multiresolução (1 estágio)
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Análise de Multiresolução (3 estágios)
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Síntese da Wavelet
Quantização É usada para reduzir a precisão dos coeficientes É a principal fonte de perda de informação Os coeficientes DCT são divididos por um valor de quantização e arredondados Quanto maior o valor de quantização menor é a precisão do coeficiente DCT quantizado Os valores de quantização são escolhidos para minimizar a distorção na imagem reconstruída usando os princípios básicos do sistema visual humano Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Quantização • As transformadas não compactam o sinal, apenas descorrelacionam os dados originais e compactam a energia em poucos coeficientes (aproximadamente sem perda). • A quantização é uma função que mapeia muitos pontos em um, reduzindo a precisão dos coeficientes. Por isso, não é reversível e não há como recuperar os valores originais após a quantização.
Temporal EM/CM Espacial Transformadas PsicoVisual Quantização Entropia RLE VLC Zig-Zag Buffer Quantização • O vetor quantizado possui entropia menor que a entropia do vetor original e portanto, necessita de menos bits para ser representado digitalmente. • Assim, a escolha do número de níveis de quantização é que determina o número de bits necessários para a codificação. • Os coeficientes DCT são divididos por um valor de quantização e arredondados. • Quanto maior o passo de quantização menor é a precisão do coeficiente DCT quantizado.