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
2
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 à
Enfoque
• MPEG-4:
– 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
Enfoque
• H264
– 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
4
Qual vai dominar?
• MPEG-4:
– 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
Exemplo
Background filtrado com filtro
passa baixo
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)
8
Imagem estática de uma cena de
vídeo
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
10
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
Seqüência de vídeo entrelaçada
12
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
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
14
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
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
16
Transformação para RGB
Formatos de codificação YCbCr
(YUV)
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
18
Amostragem 4:4:4
fidelidade plena
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
20
Moldura em diferentes resoluções
TV/DVD Vídeo conf. Apl. Móveis Televisão: Luminância 13,5 MHz Croma 6,75 MHZ 4:2:2Y:Cb:Cr
Televisão ITU-R BT 601-5
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
22
Seqüência DSCQS
Medidas objetivas de qualidade
• Custo mais baixo
• Uma medida comum é a Peak signal to
Noise Ratio (PSNR)
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.
24
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 )
Exemplos PSNR:
(a) original; (b) 30.6 dB; (c) 28.3 dB
Imagem com fundo borrado
(PSNR = 27.7 dB)
26
Comparando as 4:
(a) original; (b) 30.6 dB; (c) 28.3 dB (d) 27,7 db
Qual a melhor?
Codificador / Decodificador
28
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
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
30
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
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)
32
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
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
34
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
“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íduossão codificados e decodificados a adicionados à região para formar um macrobloco reconstruido
armazenado como referência para compensação de movimento
36
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
Resíduo sem compensação de
movimento
38
Resíduo bloco 8 x 8
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
40
Compensação de movimento
sub-pixel
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-pixelEstimativa inteira, meio pixel e um
quarto de pixel
Resíduo compensação Meio pixel
(bloco 4 x 4)
42
Resíduo compensação um quarto
de pixel (bloco 4 x 4)
Exemplo do vetor de movimento
Diferenças Bloco 16 x 16
Vetor de movimento (16 x 16)
44
Exemplos de ganhos
Meio pixel apresenta grande ganho relativo
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
46
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
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
48
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
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 = AXAT
• Inversa (IDCT)
– X = ATXA
• X é a matriz de amostras, Y matriz de coeficientes A matriz de transformada NxN
50
Elementos de A
Exemplo: A para uma DCT
A transformada de cossenos é
simétrica
52
ou
Exemplo Calculando a DCT de um
bloco 4 x 4
• X é um bloco 4x4 de uma imagemFDCT de X: Y = AXA
T• Y´ = AXA
T54
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
Padrão 4 x 4
56
Exemplo 2 – Bloco de imagem e
coeficientes DCT
Ganho não é óbvio ... 16
coeficientes
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 bi-dimensional como uma imagem de intensidade
58
wavelet
Imagem após um nível de
decomposição
Decomposição wavelet em dois estágios Decomposição wavelet em cinco estágios