MPEG 4 e H264 Cena 1 Seu avatar caminha através de um mundo virtual sofisticado habitado por outros avatares, propaganda de produtos e paredes de vídeo. Em uma tela de vídeo virtual está a transmissão de notícias; você quer mais notícias do mercado financeiro, então você interage com a transmissão e busca as últimas cotações. As imagens em vídeo os outros participantes, segmentadas do fundo são apresentadas contra outra tela virtual 1
Cena 2 Seu videofone 3g novo toca. Você o abre e atende a ligação. O rosto de seu amigo aparece na tela e vocês de cumprimentam. Cada um vê uma imagem pequena e clara do outro na tela do telefone. Após terminar a ligação, você se conecta à uma transmissão ao vivo de um jogo de futebol. A qualidade da imagem não está muito boa e então você muda para um fluxo premio (mais caro). Por alguns instantes o sinal de rádio falha mas você percebe apenas uma distorção temporária na imagem de vídeo. Visões das aplicações multimídia Cena 1: MPEG 4 visual Um mundo interativo on-line rico, integrando objetos sintetizados, e naturais de vídeo, imagem e objetos 2D e 3D Cena 2: H.264/AVC comunicação de vídeo altamente eficiente e confiável, suportando streaming bidirecional e aplicações broadcast e robusto à problemas no canal de comunicação 2
MPEG-4: Enfoque Sair do modelo de vídeo retangular e oferecer uma infra-estrutura (framework) aberta e flexível para comunicação visual que usa as melhores características de compressão eficiente de vídeo e processamento orientado a objetos H264 Enfoque Visão mais pragmática. Objetiva fazer o que os outros padrões faziam mas de forma mais eficiente, robusta e prática Suporta as aplicações mais comuns do mercado: broadcast, armazenamento e streaming 3
MPEG-4: Qual vai dominar? Mais maduro: padrão em 1999 Ênfase em flexibilidade H 264 Não está claro como será o licenciamento Maiores taxas de compressão Eficiência e confiabilidade Compressão de Vídeo Não é factível compressão sem perdas. Funciona pela retirada de redundância nos domínios temporais, especiais e/ou freqüência Deve atingir compressão eficiente minimizando distorção incluída pelo processo de compressão Compressão adicional pode ser atingida com código de Huffman ou codificação aritmética Leva em consideração o Sistema Visual Humano Mais sensível à freqüências baixas 4
Exemplo Background filtrado com filtro passa baixo 5
Quadro 2 6
Formatos de vídeo e qualidade Codificação de vídeo Compressão e descompressão Vídeo digital Representação de uma cena natural amostrada espacialmente e temporalmente Amostragem Ocorrem em intervalos produzindo uma moldura ou um campo Produz o sinal de vídeo Três conjuntos são necessários para produzir uma cena colorida Cenas de vídeo naturais Composta por múltiplos objetos cada qual com formato, profundidade, textura e iluminação Côr e brilho variam com diferents graus de suavidade na cena (tonalidade contínua) 7
Imagem estática de uma cena de vídeo Amostragem espacial e temporal 8
Captura A representação da cena no formato digital envolve amostrar a cena espacialmente Vídeo digital é a representação de vídeo amostrado em forma digital Cada amostra espaço-temporal (pixel) é representado como um número ou conjunto de números que descreve o brilho (iluminação) e cor da amostra Imagem com 2 telas de amostragem 9
Amostragem espacial A saída de um CCD é um sinal analógico de vídeo A qualidade da imagem é influenciada pela pelo número de pontos de amostragem Escolhendo uma grade grosseira, temos uma imagem em baixa resolução Aumentando o número de pontos melhoramos a qualidade da imagem Baixa resolução Resolução melhorada 10
Seqüência de vídeo entrelaçada Campos superiores e inferiores 11
Amostragem temporal A reprodução de séries de quadros produz a sensação de movimento Freqüências mais altas de quadros dão a sensação de suavidade de movimento < 10 quadros/segundo usados para taxas de transmissão muito baixas Movimento não natural Entre 10 e 20 qps típico em comunicação em baixas taxas Imagem mais suave mas movimentos espasmódicos 20 e 30 qps televisão 50 e 6º qps movimentos suaves mas altissímas taxas de dados Espaços de cores Imagem mono cromática requer apenas um número para indicar o brilho ou luminância de cada amostra espacial Imagem colorida requer pelo menos 3 números por pixel O método escolhido para representar brilho (limunância ou luma) e cor é descrito como um espaço de cor 12
Componentes RGB Os três componentes são igualmente importantes YCbCr (YUV) O SVH é menos sensível a cor que ao brilho Representação mais eficiente: Separar a luminância (Y) da cor Representar a luminância a uma resolução mais alta Y = kr R + kgg + kbb K são fatores de ponderação Kb = 0.114 e kr = 0.229 por recomendação do ITU 13
Representação da cor Representada como componentes de diferença de cores (crominância ou croma) Cb = B Y Cr = R Y Cg = G Y Cb, Cr e Cg representam a diferença entre a intensidade de cor e a luminância média Exemplo Diferenças de cores 14
Na imagem Cinza médio => diferença zero Cinza suave => diferença positiva Cinza escuro => diferença negativa Observe as diferenças mais fortes de Vermelho e azul Na representação Temos agora 4 componentes (e não três) Mas cb + cr + cg é uma constante Basta transmitir 2 deles Apenas Y, Cb e Cr são transmitidos Cb e Cr podem ser transmitidos em uma resolução mais baixa Representar croma com uma resolução mais baixa que a iluminância é uma forma simples de compressão As imagens são normalmente restauradas para RGB antes da apresentação 15
Transformação para RGB Formatos de codificação YCbCr (YUV) Exemplo 16
Amostragem 4:2:0 ou 12 bits por pixel (na verdade é 4:1:1) Usada em DVD Amostragem 2:2:2 Alta qualidade de cor 17
Amostragem 4:4:4 fidelidade plena 4:2:0 intrelaçado 18
Formatos de vídeo Os padrões de compressão podem capturar um grande número de formatos de molduras de vídeo Na prática, é comum capturar e converter apenas um conjunto de formatos intermediários antes da compressão e transmissão O Common Intermediate Format (CIF) é abase para um conjunto de formatos Formatos de Molduras de Vídeo 19
Moldura em diferentes resoluções Televisão: Luminância 13,5 MHz Croma 6,75 MHZ 4:2:2Y:Cb:Cr TV/DVD Vídeo conf. Apl. Móveis Televisão ITU-R BT 601-5 20
Medida Subjetiva de qualidade Fatores que influenciam: Fidelidade espacial Temporal fidelidade Ambiente Humor Grau de interação com a cena Atenção visual (efeito do recentemente) ITU-R 500 Double Stimulus Continuous Quality Scale (DSCQS) A um testador é apresentado um par de sequencia de vídeo ou de imagens e deve dar uma nota Uma sequencia é codificada e decodificada, uma é pura A ordem é aleatória Requer um certo número de testadores Alto custo 21
Seqüência DSCQS Medidas objetivas de qualidade Custo mais baixo Uma medida comum é a Peak signal to Noise Ratio (PSNR) Muitas limitações 22
PSNR Escala logarítmica Depende do erro médio quadrático (MSE) entre uma imagem original e uma imagem alterada, em relação ao quadrado do sinal mais alto possível na imagem (n é o nro de bits por amostragem da imagem Aparte, decibel Db Torna a tarefa de se calcular ganhos e perdas mais fácil. Através do uso da notação decibel podemos substituir a multiplicação (ganho) e divisão (perdas) por adição e subtração, respectivamente. O decibel nada mais é do que uma expressão da relação entre dois sinais. Os sinais podem ser tensões, correntes ou níveis de potência. Quando convertido para a forma de notação decibel, entretanto, os logaritmos das relações são usados ao invés das taxas aritméticas simples. É o uso do logaritimo das relações que torna possível substituir multiplicação e divisão por soma e subtração. 23
Exemplo: ouvido humano O ouvido responde (é mais sensível) a mudança na intensidade do som em níveis mais baixos do que altos. Um acréscimo de 4Watts para 5Watts irá parecer muito mais alto do que uma mudança de 20W para 21W, ainda que ambos incrementos sejam de 1Watt. É entretanto as relações de potencia que realmente importa (4W para 5W representa um acréscimo de 25% em potência, enquanto 20W para 21W é um acréscimo de apenas 5%. Decibel db = 10 LOG { P1/P2 } Onde : db é o equivalente decibel da relação P1/P2 P1 e P2 são os níveis de potencia (*) LOG se refere ao logaritimo de base 10 Exemplo : Um sinal de potencia de 10 watts é aplicado a uma longa linha de transmissão. A potencia medida no fim da carga é de 7 watts. Qual é a perda em decibéis? Solução : db = 10 LOG ( P1/P2 ) db = 10 LOG ( 7/10 ) db = 10 LOG ( 0.7 ) = (10)(-0.155) = -1.55 db 24
Exemplos PSNR: (a) original; (b) 30.6 db; (c) 28.3 db Imagem com fundo borrado (PSNR = 27.7 db) 25
Comparando as 4: (a) original; (b) 30.6 db; (c) 28.3 db (d) 27,7 db Qual a melhor? Conceitos de codificação de vídeo 26
Codificador / Decodificador Correlação temporal e espacial 27
Codec de Vídeo Vídeo Codec Modelo temporal: reduz redundância temporal explorando similaridades entre quadros vizinhos Modelo de Predição do quadro corrente entrada é o vídeo sem compressão Saída: quadro de resíduos e um conjunto de parâmetros de modelo (vetores de movimento) Descrevem como o movimento foi compensado Modelo Espacial: transforma resíduos em coeficientes Codificador de entropia: comprime os parâmetros do modelo temporal 28
Modelo temporal Objetivo: Reduzir redundância pela entre molduras transmitidas pela formação de uma moldura prevista e subtraindo-a da moldura atual Saída: Moldura de diferenças Quanto menor a energia, melhor o modelo A moldura de diferenças é enviada ao decodificador Imagem é recriada através de molduras passadas ou futuras (moldura de referência) Compensação de movimento melhora a qualidade do processo Predição de uma moldura anterior Forma mais simples é utilizar a moldura anterior como preditora da moldura atual Ver figura Muita energia ainda existe devido a falta de compensação de movimento 29
Alterações por movimento Causada por movimento do objeto, deformação, movimento da câmera É possível estimar a trajetória de cada pixel Fluxo óptico Cálculo muito complexo Transmissão de um vetor por pixel Anularia o efeito da compressão 30
Fluxo Óptico Compensação e previsão baseadas em blocos Compensação de movimento Compensar movimento de áreas retangulares no quadro corrente Usa o procedimento para cada amostra M x N 1. Procura uma área no quadro e referência (futuro ou passado) (previsão de movimento) 2. A área identificada se torna preditora para bloco M x N corrente e é subtraida do bloco corrente forma o bloco residual (compensação de movimento) 3. O bloco residual é codificado e transmitido e o deslocamento em relação ao bloco corrente também é transmitida (vetor de movimento) 31
Compensação de movimento Decodificador Recebe o vetor de movimento para recriar a região preditora Decodifica o bloco residual Adiciona-o ao preditor e reconstrói o bloco original Vantagens da predição baseada em bloco Relativamente direta Computacionalmente tratável Casa bem com molduras de vídeo retangulares Casa bem com transformadas baseadas em blocos (ex DST) Provê modelo temporal efetivo para muitas sequencias de vídeos 32
Desvantagens da predição baseada em bloco Objetos reais raramente têm bordas que casam com blocos retangulares Deslocamentos com freqüência são inferiores a um pixel Difícil compensar deformação de objetos, rotação, nuvens, fumaça etc. Predição de um macrobloco da compensação de movimento Macrobloco: região 16 x 16 pixel Usado em MPEG-1, MPEG-2, MPEG-4, H261, H263 e H264 33
Macrobloco 4:2:0 Estimativa de movimento Determinar uma região 16x16 da amostra que case de forma próxima com o macrobloco corrente A moldura de referência deve ter sido codificada anteriormente Pode ser anterior ou posterior O melhor casamento é determinado dentro da área de busca 34
melhor casamento Compensação de movimento A região de casamento é subtraída do bloco corrente produzindo um macrobloco residual (luminância e crominância) Transmitidos juntamente com o vetor de movimento No codificador resíduos são codificados e decodificados a adicionados à região para formar um macrobloco reconstruido armazenado como referência para compensação de movimento 35
Variações Quadro de referência pode ser Anterior, posterior ou mistura dos dois Se houver grande diferença ente os quadros Pode ser mais eficiente não usar compensação de movimento (intra-modo) Objetos raramente são retangulares e casam com 16 x 16 Usar tamanho de bloco variável Objetos se movem em fração de pixel Usar referência pra posições de sub-pixel Tamanho de bloco para compensação de movimento 36
Resíduo sem compensação de movimento Resíduo bloco 16 x 16 37
Resíduo bloco 8 x 8 Resíduo bloco 4 x 4 38
Comparando os 4 Tamanho do macrobloco Quanto menor melhor a compensação No entanto: Maior a complexidade (mais operações de busca) Maior número de vetores de movimento que precisam ser transmitidos Trade-off Tamanho do bloco dependente das características da imagem 39
Compensação de movimento subpixel close- da região de referência Região de referência interpolada à meio pixel Às vezes a melhor estimativa po ser na região interpolada Estimativa e compensação de movimento sub-pixel 40
Estimativa inteira, meio pixel e um quarto de pixel Resíduo compensação Meio pixel (bloco 4 x 4) 41
Resíduo compensação um quarto de pixel (bloco 4 x 4) Exemplo do vetor de movimento Diferenças Bloco 16 x 16 42
Vetor de movimento (16 x 16) Exemplo 2 (4x4) 43
Exemplos de ganhos Meio pixel apresenta grande ganho relativo Quanto mais difícil compensar o movimento, menor o SAE 44
Compensação de movimento baseada em região Objetos reais raramente estão alinhados com fronteiras de blocos Compensação de movimento baseada em região Pode dar melhor resultado Ex, compensar pixels dentro da oval Problemas Identificar as regiões (segmentação) Sinalizar (codificar) o contorno da fronteira Codificar o resíduo após a compensação de movimento MPEG-4 inclui ferramentas para permitir ompensção baseada em região 45
Modelo de imagem Imagens de vídeo naturais são difíceis de serem comprimidas pois há forte correlação entre amostras de imagens vizinhas Função de autocorrelação de imagem Pico indica movimento zero 46
Auto-correlação do resíduo Modelo da imagem Função Reduzir a correlação da imagem ou do resíduo, convertê-lo em uma forma que pode ser comprimida eficientemetne usando codificador entrópico Componentes Transformação (retira correlação e compacta dados) Quantização (reduz a precisão) Reordenação (arranja os dados para agrupar valors significantes 47
Codificação preditiva de imagem Sucesso da compressão depende do preditor Pode haver acumulação de erros Codificação de transformada Esta parte do CODEC converte uma imagem ou resíduo de movimento compensado em outro domínio(domínio da transformada) A escolha da transformada depende de: Dados no domínio dever ser sem correlação (componentes com inter-dependência mínima) e compacto (a maior parte da energia deve estar em poucos valores) Deve ser reversível Deve ser computacionalmente tratável 48
Exemplos de transformadas Singular Value Decomposition (SCVD) Karhunn-Loeve (KLT) Transformada Discreta de Co-senos (DCT) Transformada Discreta de Wavelet (DWT) Melhores resultados que transformadas de blocos para imagens estáticas Maiores requisitos de memória Inadequada para compensação de bloco Transformada Discreta de Co-senos (DCT) Opera em um bloco X N x N AMOSTRAS DE IMAGENS OU RESÍDUOS Cria Y, um bloco N x N de coeficientes FDCT (forward DCT) Y = AXA T Inversa (IDCT) X = A T XA X é a matriz de amostras, Y matriz de coeficientes A matriz de transformada NxN 49
Elementos de A Reescrevendo as equações 50
Exemplo: A para uma DCT A transformada de cossenos é simétrica 51
ou Calculando os cossenos 52
Exemplo Calculando a DCT de um bloco 4 x 4 X é um bloco 4x4 de uma imagem Y = AXA T FDCT de X: Y = AXA T 53
FDCT A saída de uma FCDT bidimensional é um conjunto de coeficientes NxN representando os dados do bloco da imagem no domínio DCT Estes coeficientes podem ser considerados pesos de um conjunto de padrões básicos Composições de finções cossenos 54
Padrão 4 x 4 8 X 8 55
Exemplo 2 Bloco de imagem e coeficientes DCT Ganho não é óbvio... 16 coeficientes 56
Mas, posso descartar muitos deles Wavelet Um par de filtros é apliado a um sinal decompondo-o em uma faixa de baixa freqüência (L) e uma faixa de alta freqüência Cada banda é sub-amostrada por um fator de 2 Com a correta escolha de filtros, o processo é reversível Processo pode ser estendido para um sinal bidimensional como uma imagem de intensidade 57
wavelet Imagem após um nível de decomposição 58
Decomposição wavelet em dois estágios Decomposição wavelet em cinco estágios 59