Compressão de Vídeo MPEG
TT083
SumárioSumá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]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]Sistema Visual Humano (VHS) [2]
Azul Verde Vermelho
Sensibilidades dos três tipos de cones no olho humano
Sistema Visual Humano (VHS) [3]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]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]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]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]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]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,5 CB = (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.
4:4:4 Nenhuma informação é descartada. Pouco utilizado (24 bpp).
4:2:2 Os sinais de crominância são sub-amostrados por um fator de 2 na direção horizontal (16 bpp).
4:2:0 Os 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 [3]Espaços de Cores [3]
Espaços de Cores [4]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]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]Formatos de Vídeo [1]
- Aproximadamente 30 frames / segundo
- Não-entrelaçados
Formatos de Vídeo [2]Formatos de Vídeo [2]
Formato Tipo de serviço
Resolução
240p LDTV 320 x 240
480i SDTV 720 x 480
480p SDTV 720 x 480
720p HDTV 1280 x 720
1080i HDTV 1920 x 1080
i – interlaced; p – progressive.
Porque comprimir o sinal?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çãoCompressã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
Objetivo da Compressão de Vídeo
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.
Tipos de RedundânciaTipos de Redundância
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
REDUNDÂNCIA
TEMPORAL
REDUNDÂNCIA
PSICOVISUAL
REDUNDÂNCIA
EM ENTROPIA
Exemplo de ferramenta de compressão
DCT
Estimação de
movimento
Quantização
VLC
Métodos Óbvios de CompressãoMétodos Óbvios de Compressão
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)
Problema
Problema
Problema
Sobreposição, assim deve-se respeitar a Taxa de Nyquist
Aparece nos contornos (bordas) da imagem
Flickering
Principais Ferramentas de CodificaçãoPrincipais Ferramentas de Codificação
DCT (Discrete Cosine Transform)QuantizaçãoCodificação EntrópicaVarredura Zig-ZagEstimação e Compensação de
Movimento (EM/CM)
Estrutura Principal do CodificadorEstrutura Principal do Codificador
Temporal
Espacial
PsicoVisual Entropia
Estrutura Principal do DecodificadorEstrutura 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.
Codificação PreditivaCodificação Preditiva
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
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.
Codificação PreditivaCodificação Preditiva
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
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
Estimação e Compensação de Estimação e Compensação de Movimento (EM/CM)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 VLCZig-Zag Buffer
Estimação e Compensação de Estimação e Compensação de Movimento (EM/CM)Movimento (EM/CM)
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Estimação de MovimentoEstimaçã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 VLCZig-Zag Buffer
Estimação de MovimentoEstimaçã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 VLCZig-Zag Buffer
Estimação de MovimentoEstimaçã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 VLCZig-Zag Buffer
Estimação de MovimentoEstimação de Movimento
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
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).
Compensação de MovimentoCompensaçã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 VLCZig-Zag Buffer
Block matchingBlock 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 VLCZig-Zag Buffer
Block matchingBlock 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 VLCZig-Zag Buffer
Block matchingBlock matching
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Exemplo de Estimação de Exemplo de Estimação de Movimento Movimento ForwardForward
Grade de MB
Imagem anterior I ou P
Dentro da área de busca um bom casamento é encontrado. O codificador envia o vetor de
movimento apropriado
Imagem P
MB Atual. Visto que o casamento é encontrado este
MB é intercodificado
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Estimação de Movimento Estimação de Movimento BackwardBackward
Imagem P ou I anteriorA busca nesta imagem não
encontra um bom casamento
Imangem B atual Próxima Imagem I ou PA busca nesta imagem
encontra um bom casamento
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Codificação 3DCodificação 3D
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
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 (DCT (Discrete Cosine TransformDiscrete 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 VLCZig-Zag Buffer
DCTDCT
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 VLCZig-Zag Buffer
Bloco 8x8 e sua transformadaBloco 8x8 e sua transformada
DCTDCT
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Vantagens da DCT 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 VLCZig-Zag Buffer
Transformada Wavelet Transformada Wavelet
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
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
Análise de Multiresolução (1 estágio)Análise de Multiresolução (1 estágio)
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Análise de Multiresolução (3 estágios)Análise de Multiresolução (3 estágios)
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Síntese da Wavelet Síntese da Wavelet
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
QuantizaçãoQuantizaçã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 VLCZig-Zag Buffer
QuantizaçãoQuantizaçã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 VLCZig-Zag Buffer
QuantizaçãoQuantização
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
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.
QuantizaçãoQuantização
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Os métodos de quantização se dividem em: progressivos, escalares e vetoriais.
Quanto mais uma função de densidade de probabilidade se desvia da função uniforme (máxima entropia), maior é o ganho em se usar quantizador não-uniforme sobre o quantizador uniforme.
Um exemplo simples de um quantizador escalar é o arredondamento de um número real para o inteiro mais próximo.
Quantização LinearQuantização Linear
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Quantização VetorialQuantização Vetorial
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Método estatístico de agrupamento de dados: K-means O algoritmo k-means, baseado na técnica estatística do centróide, toma um
parâmetro inicial k e divide um conjunto de dados em k grupos de tal forma que a similaridade dentro dos grupos seja alta enquanto que a similaridade entre os grupos seja pequena.
O procedimento do algoritmo é, em primeiro lugar, selecionar aleatoriamente k objetos do conjunto de dados, onde cada um destes objetos representará inicialmente uma média do centro de cada grupo. A seguir os demais objetos são classificados nos grupos para os quais apresentam maior similaridade. Um parâmetro tipicamente utilizado como medida de similaridade é a Distância Euclidiana.
222 )()()( ccc BBGGRRd
Quantização VetorialQuantização Vetorial
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Assim, o agrupamento dos dados se dá através das menores distâncias em relação ao centro dos grupos, ou seja, cada elemento é classificado no grupo para o qual apresenta a menor distância ao seu centro. O processo interativo consiste na atualização dos centros de grupos, através da média das coordenadas dos pontos de cada grupo. Os valores dos centros dos k grupos são, então, o resultado do processo interativo do k-means e os vetores que representam estas centróides são também chamados de codewords e o conjunto das codewords forma o codebook do quantizador vetorial.
Quantização VetorialQuantização Vetorial
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Cada componente da imagem (vetor 3D) é substituído por sua respectiva codeword e o índice da codeword é que é transmitido para o receptor (que deve possuir o mesmo codebook).
Codebooks de tamanhos grandes podem ser utilizados para treinamento de redes neurais, por representarem mais fielmente os dados de um determinado conjunto.
Um codebook grande pode ter uma estrutura de árvore ou ser formado pelo produto cartesiano vários codebooks menores.
É mais usada em codificadores de formas de onda do que em codificadores de transformadas porque os dados estão mais correlacionados.
Tipos de VTipos de Varreduraarredura
Varredura Zig-Zag
Obrigatória no MPEG-1Opcional no MPEG-2
Varredura Zig-Zag Alternada Não é usada no MPEG-1 Opcional no MPEG-2
Blocos 8x8 de coeficientes DCT quantizados
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Tipos de VTipos de Varreduraarredura
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
A ordem de escaneamento das sub-bandas requer que os nós pais sejam escaneados antes dos nós filhos.Além disso, todas as posições de uma determinada sub-banda são escaneadas antes de se passar para a próxima sub-banda.EZW, SPIHT,…
Run-Level Encoder (RLE) Run-Level Encoder (RLE) • Cada coeficiente não-nulo da sequência é codificado como um
par (run, level), onde:
– Run é o número de coeficientes nulos que precedem o coeficiente não-nulo.
– Level é a amplitude do coeficiente não-nulo.
• Geralmente, a sequência é reduzida e a codificação de entropia que a vem a seguir é mais eficiente.
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Codificação de entropia Codificação de entropia
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Alfabeto da fonte
CA CB CC
A 0 0 0
B 0 010 100
C 0 01 101
D 1 10 11
Singular
Não-unicamente decodificável
Código instantâneo
Códigos de bloco
Não-singular
Unicamente decodificável
Instantâneo
Variable Length Coding (VLC)Variable Length Coding (VLC)O objetivo é sempre associar códigos mais
curtos a símbolos mais frequentes e códigos mais longos a símbolos menos frequentes.
Espera-se sempre obter um código ótimo, o qual possui comprimento médio igual à entropia da fonte.
O código de Huffman é de comprimento variável e ótimo (minimiza o comprimento médio dentre todos os códigos instantâneos), mas não é único.
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Variable Length Coding (VLC)Variable Length Coding (VLC)
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Codificação de Huffman
2,2854bits0,15)log0,1520,2log0,20,25log0,25(2)H(Χ
2,3bits30,15220,22(0,25)2l(x)p(x)L
222
Χx
Variable Length Coding (VLC)Variable Length Coding (VLC)
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
O código de Huffman é ótimo, mas somente para uma transmissão. Assim, se uma sequência de variáveis deve ser transmitida no lugar de uma única variável, outro código de Huffman deve ser projetado. Porém, se as sequências são de variáveis aleatórias independentes e com distribuição de probabilidade invariante, o código de Huffman é o mais indicado.
Caso contrário, para uso recursivo, outros códigos são melhores, mas são sub-ótimos, tais como códigos aritméticos e de Golomb.
Variable Length Coding (VLC)Variable Length Coding (VLC)
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
A codificação aritmética não faz uso de tabelas de código. Por isso, a complexidade computacional aumenta.
Codifica sequências de variáveis aleatórias de alfabeto finito (igual ao Huffman), mas com distribuições de probabilidade variantes.
Pode-se relacionar a codificação aritmética com o processo de sub-divisão de um intervalo unitário. Cada palavra de código é a soma das probabilidades dos símbolos precedentes e o comprimento ou tamanho do sub-intervalo à direita da palavra de código corresponde à probabilidade do símbolo.
Os códigos são proprietários e são usados no JPEG e no H.264 CABAC e VLC).
Variable Length Coding (VLC)Variable Length Coding (VLC)
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
O código de Golomb codifica variáveis aleatórias com distribuição de probabilidade geométrica, mas também é usado para codificar sequências de variáveis aleatórias independentes cuja distribuição de probabilidade “favorece” um dos possíveis resultados da variável.
Permite variações na distribuição de probabilidade utilizada, desde que seja lenta e conserve a propriedade de “favorecer” o mesmo resultado.
O código de Golomb é usado para codificar corridas de zeros porque existe um mapeamento biunívoco entre sequências de v.a.’s de Bernoulli e sequências de variáveis com distribuição geométrica.
Variable Length Coding (VLC)Variable Length Coding (VLC)
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Uma v.a. X com distribuição de probabilidade geométrica é uma v.a. que assume apenas valores inteiros não-negativos com probabilidade:
Uma v.a. de Bernoulli possui apenas dois resultados: fracasso (0) e sucesso (1) com probs. p e 1-p.
Assim, v.a.’s com distribuição geométrica podem ser geradas pela contagem do número de “fracassos” consecutivos antes da ocorrência de um “sucesso” em uma sequência de v.a.’s Bernoulli i.i.d.
Variable Length Coding (VLC)Variable Length Coding (VLC)
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
O principal parâmetro do codificador de Golomb é o comprimento do codificador l. Este parâmetro pode ser ajustado de acordo com a distribuição de probabilidade que está sendo codificada.
O resultado k de uma v.a. geométrica X é representado por uma palavra código formada por três partes:
- uma sequência de k / l zeros consecutivos;- Um bit ‘1’ para indicar o fim da primeira parte;- Uma palavra de código para representar o resto da
divisão k / l;
BufferBuffer A quantização dos coeficientes DCT, a codificação RLE e
codificação a VLC são processos que produzem uma taxa de bits variável
Para produzir uma taxa de bits constante (CBR) é necessário um buffer para suavizar as variações na taxa de bits
Assim, um controlador de taxa ajusta o quantizador para controlar o buffer e prevenir overflow ou underflow do buffer do decodificador
O tamanho do buffer afeta a qualidade da imagem e provoca atraso
Temporal
EM/CM
Espacial
Transformadas
PsicoVisual
Quantização
Entropia
RLE VLCZig-Zag Buffer
Compressão com e sem perdasCompressão com e sem perdas As perdas observadas no sinal reconstruído devem-
se principalmente à operação de quantização (além de operações inteiras de transformadas, etc).
Compressão sem perdas exige técnicas diferentes de codificação:
- Codificação de planos de bits (transmissão progressiva – planos + significativos são + correlacionados)
- Código Gray, codificação aritmética, de corrida de zeros, etc…
Codificação adaptativaCodificação adaptativa
A técnica de codificação é adaptativa se a estrutura dos componentes ou seus parâmetros (tais como limiares) mudam localmente dentro da imagem.
A performance do processo aumenta, mas a complexidade também aumenta.
A adaptatividade pode ocorrer de forma causal ou não-causal.
Codificação adaptativaCodificação adaptativa
Na forma causal, os parâmetros do codificador são baseados somente nos valores dos pixels previamente reconstruídos. Não há overhead, mas não se detectam mudanças bruscas no sinal e a complexidade do decodificador aumenta, pois este precisa repetir todos os processo de decisão feitos no codificador.
Na forma não-causal, os parâmetros são baseados em valores de pixels passados e futuro. Como o decodificador não tem pixels futuros, o codificador precisa enviar os bits adicionais ao decodificador para informá-lo sobre as adaptações.
Taxa de BitsTaxa de Bits
Métrica comparativa para avaliação dos codificadores.
onde: C = fator do formato de crominância (C= 1/3 para 4:4:4, ½ para 4:2:2, 2/3 para 4:2:0)
R = Taxa de Bits (bits/segundo) F = Taxa de Quadros (quadros/segundo) H, V = Tamanho Horizontal e Vertical (pixels/quadro)
bits/pixel F x V x H
R x C Bits de Taxa
Medidas de DistorçãoMedidas de DistorçãoMean Mean Squared ErrorSquared Error (M (MSESE) )
É a medida de distorção mais utilizada!
Medidas de DistorçãoMedidas de DistorçãoPeak Signal-to-Noise Ratio (PSNR)Peak Signal-to-Noise Ratio (PSNR)
3/))()()((
255log10
2
10 VMSEUMSEYMSEPSNR
MSEPSNR
B 2
10
)12(log10
Boas reconstruções têm valores de 30 dB ou superiores para valores típicos (B = 8).
Isto ocorre para taxas de 0,2; 0,5; 1; 2 bits/pixel (dependendo das características do arquivo de vídeo).
Medidas de DistorçãoMedidas de DistorçãoMean Absolute DistortionMean Absolute Distortion (MAD) (MAD)
• MAD (x,y): é a MAD entre matrizes 16x16.
• Sumprimiu-se a necessidade de multiplicações e divisões, mas é necessário obter o valor absoluto de um número.
• Vn (x+i, y+j): intensidades da matriz 16x16 na posição (x,y) do quadro da imagem atual n.
• Vm (x+dx+i, y+dy+j): intensidades da matriz 16x16 na posição (x+dx,y+dy) do quadro da imagem de referência m.
15
0
15
0
),(),(256
1 y)(x, MAD
i jmn jdyyidxxVjyixV
Complexidade ComputacionalComplexidade Computacional Medida de Complexidade:
onde: MD é a quantidade de memória dinâmica
ME é a quantidade de memória estática
OP é a soma ponderada das
operações aritméticas envolvidas
O peso associado à cada operação aritmética é dado por:
Como comparar a eficiência entre Como comparar a eficiência entre os codificadores de vídeo?os codificadores de vídeo?
Todos os codificadores de vídeo abaixo têm a mesma qualidade!– Qual tem a melhor eficiência de codificação? – Qual tem a pior eficiência?
Parametros Coder 1 Coder 2 Coder 3 Coder 4
Tamanho Imagem (HxV)
720x480 544x480 480x480 1920x1080
Taxa Bit (R) 6 Mbps 4 Mbps 6 Mbps 19 Mbps
Taxa Quadro (F) 29.97 fps 30 fps 24 fps 29.97 fps
Formato Croma 4:2:0 4:2:2 4:4:4 4:2:0
Eficiência de CodificaçãoEficiência de Codificação
A resposta pode ser obtida através da utilização da taxa de bits para comparar os quatro codificadores!
Parametros Coder 1 Coder 2 Coder 3 Coder 4
Tamanho Imagem (HxV)
720x480 544x480 480x480 1920x1080
Taxa Bit (R) 6 Mbps 4 Mbps 6 Mbps 19 Mbps
Taxa Quadro (F) 29.97 fps 30 fps 24 fps 29.97 fps
Formato Croma 4:2:0 4:2:2 4:4:4 4:2:0
Taxa de Bits 0.39 0.26 0.36 0.20
Pior eficiência. Usa mais bits/pixel
Melhor eficiência. Usa menos bits/pixel
PADRÕES DE PADRÕES DE COCOMMPRESSÃO DE PRESSÃO DE
VÍDEOVÍDEO
Principais Técnicas de Compressão Principais Técnicas de Compressão de Vídeo e Imagemde Vídeo e Imagem
Baseado em DCT– JPEG Aplicações em Estúdio– H.261 Vídeo Conferência– MPEG-1 Armazenamento em CD-ROM– MPEG-2 Broadcast DTV, DVD– MPEG-4 Broadcast DTV
Subbanda/Wavelet– EZW VLBR e aplicações de buscas
Outras– Fractal Multimídia – DPCM Broadcast– Sem perdar Imagens Médicas
Evolução dos Padrões de Evolução dos Padrões de Compressão de VídeoCompressão de Vídeo
JPEG (Joint Photographics Experts Group)– mais usado para codificação de imagens paradas (still
picture)– introduziu DCT e quantização
H.261 (px64)– usado para vídeo conferência– introduziu compensação de movimento DCT (I e P quadros)– média compressão, baixo atraso
MPEG-1, MPEG-2 (Moving Picture Expert Group)– usado para armazenamento digital e broascast– introduziu o conceito de quadros B– alta compressão, atraso médio
Exemplos
Aplicações dos Padrões de Aplicações dos Padrões de Compressão de VídeoCompressão de Vídeo
MPEG VídeoMPEG Vídeo
Padrão de Compressão MPEGPadrão de Compressão MPEG
• MPEG-1 (ISO/IEC 11172)– 11172-1: Systems– 11172-2: Video– 11172-3: Audio– 11172-4: Conformance– 11172-5: Software
• MPEG-2 (ISO/IEC 13818)– 13818-1: Systems– 13818 -2: Video– 13818 -4: Conformance– 13818 -3: Audio– 13818 -5: Software– 13818 -6: Digital Storage
Media– 13818 -7: Non-Backward
Compatible Audio– 13818 -9: Real-Time
Interface– 13818 -10: DSM-CC
Conformance
11172-2: Video 13818-2: Video
Padrão de Vídeo MPEGPadrão de Vídeo MPEG
Objetivo: criar um padrão de compressão de vídeo para aplicações de multimídia e broadcast
MPEG-1 (resolução SIF)– 352x240, 30 Hz, não entrelaçado, 1,5 Mbps– Aplicações de CD-ROM
MPEG-2 (resolução CCIR 601)– 720x480, 30 Hz, 2 a 80 Mbps– Aplicações de broadcast, incluindo HDTV
Principais áreas de aplicações do Principais áreas de aplicações do MPEG-1 e MPEG-2MPEG-1 e MPEG-2
MPEG-1 Vídeo– 1 a 3 Mbps: Armazenamento em CD-ROM
MPEG-2 Vídeo– 3 a 15 Mbps: Transmissão de SDTV, DVD– 15 a 20 Mbps: Transmissão de HDTV– 25 a 50 Mbps: Produção de SDTV– 100 a 300 Mbps: Produção de HDTV
Pontos Chaves sobre MPEG Pontos Chaves sobre MPEG VídeoVídeo
MPEG especifica somente a sintaxe do bitstream e o processo de decodificação
Algoritmo de codificação (ex., Estimação de Movimento, Controle de Taxa e Modos de Decisão) são abertos a inovações
MPEG é assimétrico, ou seja, muito menos complexidade computacional é requerida para o decodificador
O MPEG é um sistema O MPEG é um sistema potencialmente potencialmente ASSIMÉTRICOASSIMÉTRICO
O decodificador segue as direções do bitstream e assim são relativamente simples
Os codificadores, entretanto, são muito mais complexos e devem ter muito mais inteligência. O codificador deve:– Identificar áreas em movimento– Determinar os vetores de movimento ótimos– Controlar a taxa de bits– Controlar os dados do buffer de forma a não ocorrer overflow e
underflow– Determinar onde mudar a quantização– Determinar quando um dado bloco pode simplismente ser
repetido– Determinar quando codificar pela técnica Intra e Inter– Variar todos os parâmetros e decisões dinamicamente tal como
para maximizar a qualidade para uma dada taxa
MPEG-1 VídeoMPEG-1 Vídeo
Caracterísiticas PrincipaisCaracterísiticas Principais
Otimizado para taxa de bits em torno de 1,5 Mbps
Suporta somente vídeo progressivoObjetivo: armazenamento em CD-ROMUtiliza subamostragem 4:1:1 (semelhante ao
4:2:0)
Formato de EntradaFormato de Entrada
Estrutura dos DadosEstrutura dos Dados Seqüência de vídeo: formada por vários grupos de
imagem (GOP)
Grupo de pictures (GOP – Group of Pictures): formado por várias imagens (pictures)
Imagem: Intra (I), Predicted (P) e Bidirectional (B)
Slice: formado por Macroblocos
Macrobloco (MB): composto por 4 blocos Y, 1 U e 1 V
Blocos: composto pela matriz de pixels de dimensão 8x8 que é codificada com a DCT
Estrutura de DadosEstrutura de Dados
Estrutura de DadosEstrutura de Dados
Seqüência de VídeoSeqüência de Vídeo
Cabeçalho: dimensão da imagem, relação de aspecto (relação entre a largura e altura), taxa de bit, dimensão do buffer do decodificador e matrizes de quantização
É formado por um ou mais grupos de imagens (GOP)
Código de fim da seqüência (EOS – End of Sequence)
PicturePicture
São codificadas inteiramente sem referência de outras imagens
São codificadas tomando como referência a imagem anterior
São codificadas tomando como referência a imagem anterior e posterior. Nuca são usados como referência para outras imagens
Contem somente informação dos coeficientes DC. Raramente é usada
INTRA-PICTURE
(I-picure)
PREDCTED-PICTURE
(P-Picture)
BIDIRECCTIONA-PICTURE
(B-Picture)
DC-PICTURE (D-picture)
I-I-PicturePicture
Codificado sem referência das outras imagensArmazenada no buffer do codificador e
decodificadorUsado como base de predição para o GOP inteiro
P-P-PicturePictureCodificado com referência da imagem anteriorArmazenado no buffer do codificador e
decodificadorUsa forward prediction somente
B-B-PicturePictureCodificado com referência da imagem anterior e
posteriorUsa forward, backward prediction ou predição
bidirecional
Group of PictureGroup of Picture (GOP) (GOP)
É um grupo de imagens que forma uma seqüência consecutiva para visualização
Contem três tipos de imagens: Intra (I), Predicted (P) e Bidirecional (B)
Um GOP, na ordem de codificação, deve começar com uma I-picture
Um GOP, na ordem de display, deve começar com uma I ou B-picture e deve terminar com uma I ou P-picture
Ordem de um GOPOrdem de um GOP
Ordem de display (display order): Entrada do codificador e Saída do decodificador
Ordem de codificação (coder order): Saída do codificador e Entrada do decodificador
A ordem de display é diferente da ordem de codificação se há B-pictures
As B-picture devem ser ordenadas tal que a imagem de referência futura fique disponível para predição
Note que o reordenamento causa ATRASO!
Ordem de um GOP (cont.)Ordem de um GOP (cont.)
SliceSlice
Um slice é um conjunto de macroblocos
É importante para o tratamento de erros
Se um slice estiver corrompido com ruído pode saltar para o próximo slice
O número de slices em uma imagem pode variar de 1 até o número total de MB. No MPEG-1 os slices devem preencher completamente a imagem
O cabeçalho do slice contém um código de início, sua posição na imagem e o fator de quantização
Macrobloco (MB)Macrobloco (MB)
• Tamanho: 16x16 pixels
• É composto por um bloco de luminância (4x(8x8) amostras) e dois blocos de crominância (1x (8x8) + 1x (8x8) amostras) no caso do MPEG-1
BlocoBloco
Tamanho: 8x8 coeficientes DCTOs blocos podem ser codificados como inta ou
inter– Intra: usa somente informação da própria imagem,
tirando vantagem das similaridades dos coeficientes adjacentes
– Inter: tira vantagem das similaridades entre quadros de outras imagens
Estrutura Típica do Codificador Estrutura Típica do Codificador MPEGMPEG
MPEG-2 Vídeo
Características PrincipaisCaracterísticas Principais
Foi planejado para suportar:Taxa de bits mais altaTamanho maior de imagemQuandros entrelaçados
Codificação de vídeo de alta qualidade (até 80 Mbps)– Exemplos de aplicação: video on demand (VOD),
televisão digital, armazenamento em DVD, HDTV
Codificação escalável
MPEG-2MPEG-2
= MPEG-1MPEG-2
Ferramenta de Entrelaçamento
Nova estrutura de sintaxe
ModosEscaláveis
Perfil & Nível
+
Ferramentas de EntrelaçamentoFerramentas de Entrelaçamento
Field PictureField DCTModo de predição de campoVarredura AlternadaSuporte a 3:2 PulldownSuporte a Field-Based Pan-and-Scan
Melhorias do MPEG-2 em relação Melhorias do MPEG-2 em relação ao MPEG-1ao MPEG-1
MPEG-2 EstruturasMPEG-2 Estruturas Estrutura da Seqüência
– Seqüência Progressiva: contem quadros de imagens (frames pictures)
– Seqüência Entrelaçada: pode conter quadros e campos de imagens
Estrutura de Quadros– Quadro progressivo: os dois campos vêm no mesmo instante
de tempo– Quadro Entrelaçado: os dois campos vem em tempos
diferentes Estrutura da Imagem
– Quadro de Imagem (Frame picture)– Campo de Imagem (Field picture): deve ocorrer em pares;
um quadro = dois campos de imagem
Seqüência de Vídeo Progressivo e Seqüência de Vídeo Progressivo e EntrelaçadoEntrelaçado
Seqüência Entrelaçada: consite de uma série de campos (fields) reconstruídos que estão separados no tempo por um período de campo. Os dois campos de um quadro (frame) podem ser decodificados separadamente (field-picture)
Seqüência Progressiva: cada picture na seqüência deve ser um frame picture (não tem campo). A seqüência na saída do decoder consiste de uma série de quadros que são separados no tempo por um período de quadro
Na seqüência entrelaçada ambos frame-picture e fieldpicture podem ser usados em uma única seqüência de vídeo
Field Picture e Frame PictureField Picture e Frame Picture
Field Picture– Devem ocorrer em pares:
Top Field Botton Field Top Field + Botton Field: Frame
Frame Picture– Seqüência de vídeo entrelaçada usando frame
picture Os dois campos do quadro devem ser entrelaçados um
com o outro e então o quadro inteiro é codificado como um único frame
Field e Frame DCTField e Frame DCT
Quadro DCT: modo de codificação normal MPEG-1Campo DCT: Divide dentro de campos top e bottonO codificador MPEG-2 pode escolher campo DCT
em algum macrobloco
Estrutura do MacroblocoEstrutura do Macrobloco
PicturePicture Uma imagem codificada pode ser:
– Frame– Field
I-frame: – I-frame picture– um par de I-field picture
P-frame:– P-frame picture– um par de P-frame picture
B-frame– B-frame picture– um par de B-frame picture
Tipos de PicturesTipos de Pictures
Há 3 tipos de picture:– Intra-coded (I) picture: é codificada usando
informação somente dela mesma– Predicted-coded (P) picture: é codificada usando
predição de compensação de movimento dos quadros ou campos de referência da imagem passada
– Bidireccicional-coded (B) picture: é codificada usando predição de compensação de movimento dos quadros ou campos de referência da imagem passada e/ou futura
Modos de PrediçãoModos de PrediçãoHá duas classificações principais de modos de
prediçãoField Prediction: as predições são feitas
independentemente para cada campo usando dados de um ou mais campos codificados anteriormente
Frame Prediction: forma uma predição para o quadro a partir de um ou mais quadros decodificados anteriormente
Field e Frame PredictionField e Frame Prediction
Frame Prediction:melhor região 16x16 na imagem de referência. Determina o MV para o MB.Único tipo de predição permitida no MPEG-1
Field Prediction:melhor região 16x8 no campo Top ou Botton na imagem de referência. Determina os MV’s para o Top e Botton de 16x16 MB.
Modos Especiais de PrediçãoModos Especiais de Predição
Dois modos especiais de predição são usados para predição field ou frame– 16x8 motion compansation
Pode ser usada somente em campos Duas MV’s são enviados para predição forward e backward O primeiro MV é usado para as regiões 16x8 superiores e o
segundo MV para as regiões 16x8 inferiores 4 MV’s são enviados para predição bi-direcional
– Dual Prime Pode ser usada em campo ou quadro Pode somente ser usado em P-pictures Um MV + a diferença MV são enviadas para cada MB
Perfil e NívelPerfil e Nível
Perfil (Profile): define quais funcionalidades (ferramentas de codificação) poderão ser usadas na geração do feixe de bits (bitstream) do vídeo codificado
Nível (Level): é um conjunto de limitações dos parâmetros do feixe de bits (i.e. tamanho da imagem, taxa de quadros e taxa de bits)
Perfil e Nível [1]Perfil e Nível [1] Perfil: Simple Main SNR Spatial High 4:2:2
(ordem hierárquica)
Nível: Low Main High-1440 High (ordem hierárquica)
Os Perfis e Níveis possuem uma relação Hierárquica. Assim:
Sintaxe suportada pelos Perfis mais altos inclui todos os elementos da sintaxe dos perfis mais baixos (ex., para um dado nível, um Main Profile é compatível com o Simple Profile)
Limitações de parâmetros dos Níveis mais altos são iguais ou excedem os limites dos níveis mais baixos (ex., para um dado perfil, um decoder de Nível Main deve ser capaz de decodificar um bitstream em conformidade com as restrições de um nível Low)
Perfil e Nível [2]Perfil e Nível [2] Para um dado perfil o mesmo conjunto de sintaxe é suportado independente do nível
Os feixes de bits codificados pelo MPEG-1 devem ser decodificados por todos os níveis e perfis do MPEG-2 (Compatibilidade Backward)
Os perfis SNR, Spatial, High têm como ferramenta a escalabilidade, ou seja, podem usar mais de um bistream para codificar a imagem
Limitações dos PerfisLimitações dos Perfis
Rec. H.262
Número Máximo de Bits em um MBNúmero Máximo de Bits em um MB
Para todos os Perfis definidos há uma restrição no bitstream de que todos os dados para um MB devem ser representados com um número máximo de bits
Rec. H.262
Perfil x FuncionalidadesPerfil x Funcionalidades
Nível x FuncionalidadesNível x Funcionalidades
Escalabilidade [1]Escalabilidade [1]A escalabilidade foi feita para suportar
aplicações além daquelas já suportadas por uma única camada (codificação sem escalabilidade)
Possui uma camada base e 2 ou 3 camadas de enriquecimento
Extrai do mesmo feixe de bits codificado várias instâncias de vídeo com diferentes:– Níveis de qualidade– Resoluções espaciais– Resoluções Temporais
Escalabilidade [2]Escalabilidade [2] O padrão MPEG-2 definiu 5 tipos de
escalabilidade:1. Particionamento de Dados2. Escalabiliadde SNR3. Escalabilidade Temporal4. Escalabilidade Temporal5. Escalabilidade Híbrida
Todos os tipos de escalabilidades possui a vantagem de transmitir os dados + importantes com uma proteção adicional em relação aos dados menos importantes
Particionamento de DadosParticionamento de Dados
É usado quando dois canais estão disponíveis para transmissão e/ou armazenamento de um feixe de bits de vídeo
Aplicações: redes ATM, transmissão terrestre, meios magnéticos, etc
O feixe de bits é particionado entre os canais tal que:As partes + críticas (tais como, cabeçalhos, VM, coefs DCT
de baixas freqüências) são transmitidos com o melhor desempenho de erro
Dados menos críticos (tal como coefs DCT de altas freqüências) são transmitidos com um desempenho de erro mais probre
Assim, degradações de erros do canal são minimizadas
Escalabilidade SNREscalabilidade SNR
Aplicações: serviços de vídeo com múltiplas qualidades, padrões de TV e HDTV
Gera duas camadas de vídeo com a mesma resolução temporal e espacial, mas com qualidades de reprodução diferentes. Está relacionado com o passo de quantização (proteção a erros)Camada Base: passo de quantização + fino. Maior
proteção a errosCamada Enriquecimento: passo de quantização mais
grosso. Menor proteção a erros
Escalabilidade TemporalEscalabilidade Temporal Aplicações: utilizada em diversas aplicações de
vídeo, desde telecomunicações até HDTV
Motivação: Introdução gradual de sistemas + sofisticados em substituíção a sistemas já existentes
Sistemas de resolução temporal mais baixos: decodificam somente a camada base
Sistemas + sofisticados: decodificam ambas camadas, mantendo assim interoperabilidade com sistemas anteriores
Pode ser utilizada para obter interoperabilidade entre vídeo
entrelaçado e progressivo
Escalabilidade EspacialEscalabilidade Espacial Aplicações: interoperabilidade entre padrões,
interoperabilidade entre HDTV e TV, etc Oferece flexibilidade na escolha do formato de vídeo a
ser empregado em cada camada Possibilidades:
1. Camada base e camada de enriquecimento: padrão MPEG-2
2. Camada base: padrão MPEG-1 e Camada enriquecimento: padrão MPEG-2
A segunda possibilidade tem a vantagem de facilitar a interoperação entre os padrões de codificação de vídeo
Transmissão de Vídeo Simulcast de SDTV e HDTV
Escalabilidade HíbridaEscalabilidade Híbrida
É a combinação de dois tipos de escalabilidade, como por exemplo, escalabilidade espacial + escalabilidade temporal
Tipos de escalabilidade que permitem combinação (escalabilidade híbrida): SNR, Spatial e Temporal
Resolução EspacialResolução Espacial
Rec. H.262
Taxa de Bits (Mbps)Taxa de Bits (Mbps)
Número de camadas para cada Número de camadas para cada Perfil e NívelPerfil e Nível
Rec. H.262
Artefatos no MPEGArtefatos no MPEGEfeito de Bloco (Block Artifact)
– Quando o olho consegue acompanhar movimentos rápidos
– Causado por pobre estimação de movimento e ou insuficiente alocação de bits
Mosquito (“Noise Mosquito”)– Pode ser visto em bordas de textos– As bordas causam coefs DCT em altas
freqüências , os quais são quantizados compassos de quantização grosso
Tipos de Compressão em que o Tipos de Compressão em que o MPEG pode ter um desempenho ruimMPEG pode ter um desempenho ruim
Para tipos de movimento que não se ajustam a modelos de translação linear– Zoons– Rotações– Movimento de objetos que se movem de forma
transluzente/transparente Para outros tipos
– Sombras– Mudanças de brilho– Corte de cenas– Muitos detalhes (coeficientes de altas freqüências)
CONCLUSÕES [1]CONCLUSÕES [1]A grande diferença entre o padrão MPEG-1 e
MPEG-2 foi a codificação de vídeo entrelaçado o que permitiu aplicações para TV
O MPEG-2 Vídeo foi adotado em todos os três padrões de TV Digital existentes (DVB, ATSC e ISDB-T)
Uma evolução do padrão MPEG-2 Vídeo é o H.264 que permite taxas de bits ainda menores
CONCLUSÕES [2]CONCLUSÕES [2]A compressão de vídeo MPEG está sendo útil
para muitas aplicações:
CD-ROM e Multimidia
Transmissão por Satélite
Transmissão terrestre
Transmissão por cabo
Sistemas Video on demand
ReferênciasReferências
[1] SULLIVAN, Gary; ESTROP, Stephen. Video Rendering with 8-bit YUV Formats. Microsoft Digital Media Division, 2002. Disponível no MSDN Library 2005.
[2] WILSON, Dave. RGB/YUV Pixel Conversion. FOURCC.org. Disponível em
http://www.fourcc.org/fccyvrgb.php. Acesso em 08/2005.
[3] WILSON, Dave. Compressed Formats. FOURCC.org. Disponível em
http://www.fourcc.org/. Acesso em 08/2005.
[4] MALVAR, Henrique; SULLIVAN, Gary. YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range. Microsoft Corporation. Documento submetido ao Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG em 2003.
[5] LIM, Jae S. Two-dimensional Signal and Image Processing. Prentice Hall Signal Processing
Series, Engewood Cliffs, New Jersey, USA, 1990.
[6] JAIN, Anil K. Fundamentals of Digital Image Processing. Prentice Hall Information and
System Sciences Series, New Jersey, USA, 1989.
ReferênciasReferências
[7] RABBANI, Majid; JONES, Paul W. Digital Image Compression Techniques. SPIE -The International Society for Optical Engineering, Washington, USA, 1991.
[8] CHAN, Raymond K. W.; LEE, M. C. 3D-DCT Quantization as a Compression Technique for Video Sequences. International Conference on Virtual Systems and Multimedia, Geneva, Switzerland, 1997, pp. 188-196.
[9] KIM, Beong-Jo; PEARLMAN, William A. An Embedded Wavelet Video Coder Using Three-Dimensional Set Partitioning in Hierarchical Trees (SPHIT). Proceedings of the Conference on Data Compression, 1997.
[10] OLIVEIRA, Fabrício Corrêa de Araújo. Compressão Progressiva de Imagens Usando DCT e Código de Golomb. Dissertação de mestrado submetida à Universidade Estadual de Campinas em 2002.
[11] LAMAR, Marcus Vinicius. Codificação de Vídeo Utilizando Decomposição Quadtree para Estimação de Movimentos. Dissertação de mestrado submetida à Universidade Federal de Santa Catarina em 1996.
ReferênciasReferências
[11] ITU-T Generic Coding of Moving Pictures and associated audio information - video
Top Related