O documento discute o formato de compressão H.264/MPEG-4 AVC, descrevendo suas principais características como predição intra-frame direcional, compensação de movimento de blocos de tamanho variável, e filtragem de-blocking para remover artefatos de codificação.
1. O Formato de Compressão
H.264 / MPEG- 4 AVC
Mestrado em Engenharia de Telecomunicações
Seminário sobre temas de estudo
Orientador: Carlos Pedroso
Aluno: Paulo Silveira
2. Evolução da codificação de vídeo
• A digitalização dos sinais de vídeo criou muitos serviços para a
entrega de conteúdo:
Satélite
Cable TV
Televisão
Vídeo sobre IP
OTT
• Para otimizar estes serviços, há necessidade de:
Alta qualidade dos serviços (QoS)
Baixa taxa de bit.
Baixo consumo de energia.
• A codificação da fonte de vídeo é responsável pela redução do
bit-rate.
Conflito
3. Evolução da codificação de vídeo
• Os esforços para maximizar a eficiência da codificação ao lidar
com:
Diversificação dos tipos de rede.
Características de formatação e requerimento de robustez
(perdas/erros).
5. Imagens, quadros e campos
• Imagens codificadas podem representar um quadro inteiro ou
um único campo.
• Um quadro de vídeo pode ser considerado como contendo dois
campos entrelaçados.
• Quadro entrelaçado: os dois campos de um quadro foram
capturados em diferentes instantes de tempo.
• Quadro Progressivo.
• A representação da codificação em H.264/AVC é principalmente
agnóstico em relação a esta característica de vídeo.
6. Funcionamento de Codificação de Campo/Quadro Adaptativo
• Em quadros entrelaçados com as regiões de objetos em movimento,
duas linhas adjacentes tendem a mostrar um reduzido grau de
dependência estatística.
• O formato H.264/AVC permite qualquer uma das seguintes decisões
para codificar um quadro:
Modo quadro: combina os dois campos juntos.
Modo campo: não combina os dois campos juntos.
• A escolha pode ser feita de forma adaptativa para cada quadro e é
referenciado como uma imagem adaptável a codificação de quadro
/ campo.
• Modo campo:
Compensação de movimento utiliza campos de referência
Desbloqueio do filtro não é utilizado para as bordas horizontais dos
macroblocos.
• Região MovimentoModo Campo
• Região Não MovimentoModo Quadro
7. Amostragem
• YCbCr espaço
de cor
• H.264/AVC utiliza uma estrutura de amostragem chamada
amostragem 4:2:0 com 8 bits de precisão por amostra.
• A componente de crominância tem um quarto do número de
amostras do que a componente de luminância (em ambas as
dimensões horizontal e vertical)
• Y é chamado luminâcia e representa o
brilho.
• Cb e Cr são chamados de crominância e
representam o desvio do cinza para azul e
vermelho.
8. Macroblocos e “Slices”
• Macroblocos é a partição de um quadro de tamanho fixo, com
amostras de 16x16 da componente de luminância e de amostras
de 8x8 de cada um dos dois componentes da crominância.
• “Slices” são uma sequência de macroblocos que são
processados na ordem de uma varredura de digitalização quando
não estiver usando Ordenamento de Macrobloco Flexível (FMO).
• Uma imagem é uma coleção de um ou mais “slices” do
H.264/AVC.
• Cada “slice” pode ser decodificado corretamente, sem o uso de
dados de outros “slice”.
9. Recursos para a melhoria da predição
• Predição espacial direcional para a codificação
intra.
• Compensação de movimento de blocos de
tamanho variável com tamanho de blocos
pequeno.
• Precisão de compensação de movimento com
¼ das amostras.
• Vetores de movimento ao longo dos limites da
imagem.
• Compensação de movimento em imagem de
referência múltipla
• Dissociação de referenciar o formulário de
ordem relativo a ordem de visualização.
• Dissociação dos métodos de representação da
capacidade de referenciamento da imagem.
• Predição ponderada.
• Melhoria dos “saltos” e inferência no
movimento “direto”.
• “De-blocking”: circuito de filtragem.
10. Recursos para melhorar a eficiência de codificação e robustez
• Recursos para melhorar a eficiência de codificação
Transforma o tamanho de pequenos blocos.
Transforma a inversa da exata correspondência.
Transforma o comprimento de palavras menores.
Transforma o bloco hierárquico.
Codificação de entropia aritmética.
Codificação de entropia adaptativa ao contexto.
• Recursos para robustez a erros e perdas nos dados
Estrutura do conjunto de parâmetros.
Estrutura de sintaxe unitária (NAL).
Tamanho flexível dos “slices”.
Ordenação de macroblocos flexíveis (FMO).
Ordenação de “slices arbitrária” (ASO).
Imagens redundantes.
Particionamento de dados.
Chaveamento e sincronização de imagens
11. Estrutura de codificação do macrobloco
Entropy
Coding
Scaling &
Inv.
Transform
Motion-
Compensation
Control
Data
Quant.
Transf. coeffs
Motion
Data
Intra/Inter
Coder
Control
Decode
r
Motion
Estimation
Transform/
Scal./Quant.-
Input
Video
Signal
Split into
Macroblocks
16x16 pixels
Intra-frame
Prediction
De-blocking
Filter
Outpu
t
Video
Signal
17. Características da codificação
• Predição espacial direcional para a codificação
intra:
• Intra predição é prever a textura no bloco atual utilizando as
amostras de pixel a partir de blocos vizinhos.
• Prever a semelhança entre os pixels vizinhos de um quadro
com antecedência, e explorar a transformação da codificação
diferencial para remover a codificação de redundância..
Vertical
Horizontal + + + +
+
+
+
+
Mean
DC Diagonal down-
left
Horizontal up
Vertical right
Vertical leftHorizontal down
Intra
Prediction
Transform/
Quantization
Entropy
Coding
18. Características da codificação
• Transformação do bloco hierárquico
Para os macroblocos é codificado em 16 16 intra modo
e blocos de crominância.
Os coeficientes DC são ainda agrupados e
transformados.
A transformação de Hadamard é utilizada para o bloco
de crominância.
Destina-se a codificação de áreas suaves.
19. Predição espacial direcional para a codificação intra - 16 16
Intra16x16PredMo
de
Name of Intra16x16PredMode
0 Vertical (prediction mode)
1 Horizontal (prediction mode)
2 DC (prediction mode)
3 Plane (prediction mode)
20. Flexível ordenação de macroblocos
• Imagem pode ser particionada dentro de regiões
(“slices”).
• Cada região pode ser decodificada
independentemente.
• Um “slice” é uma sequencia de macroblocos dentro
do mesmo grupo de “slices”.
21. Predição ponderada de quadros B
• Ordem de reprodução: I0 B1 B2 B3 P4 B5 B6 ...
• Ordem do bitstream : I0 P4 B1 B3 B2 P8 B5 ...
I0 B1 B2 B3 P4 B5 B6
Time
22. Compensação de movimento
Entropy
Coding
Scaling &
Inv.
Transform
Motion-
Compensation
Control
Data
Quant.
Transf. coeffs
Motion
Data
Intra/Inter
Coder
Control
Decode
r
Motion
Estimation
Transform/
Scal./Quant.-
Input
Video
Signal
Split into
Macroblocks
16x16 pixels
Intra-frame
Prediction
De-blocking
Filter
Output
Video
Signal
Various block sizes and shapes
8x8
0
4x8
0 1
0 1
2 3
4x48x4
1
08x8
Types
0
16x16
0 1
8x16
MB
Types
8x8
0 1
2 3
16x8
1
0
23. Compensação de movimento de blocos de tamanho
variável com blocos de tamanho pequeno
• Particionado em 2 estágios.
• No1⁰ estagio, determina os primeiros
4 modos:
1616, 168, 816, 88
• Se o modo 4 (88) é escolhido,
temos também a partição em blocos
menores para cada bloco 8x8:
84, 48, 44
• No máximo 16 vetores de movimento
podem ser transmitidos para um
macrobloco 16 16.
• Grande complexidade computacional
para determinar os modos.
• Melhora a flexibilidade de
comparação.
• Reduz o erro de comparação.
0
0
1
0
2 3
0 1
1
16 x
16
16 x
8
8 x
16
8 x
8
0
0
1
0
2 3
0 1
1
8 x
8
8 x 4 4 x
8
4 x
4
24. Múltiplos quadros de referencia
Entropy
Coding
Scaling &
Inv.
Transform
Motion-
Compensation
Control
Data
Quant.
Transf. coeffs
Motion
Data
Intra/Inter
Coder
Control
Decode
r
Motion
Estimation
Transform/
Scal./Quant.-
Input
Video
Signal
Split into
Macroblocks
16x16 pixels
Intra-frame
Prediction
De-blocking
Filter
Output
Video
Signal
Multiple Reference Frames for
Motion Compensation
25. Compensação de movimento de imagens
de referência múltipla (“Slices” P)
• Mais de uma imagem codificada previamente pode ser
usado como referência para a predição do MC.
• O parâmetro do índice da referencia é transmitido para
cada MC 16x16, 16x8, 8x16 or 8x8.
• Para os blocos menores dentro do bloco 8x8 usar o
índice de referência 1.
• O macrobloco P pode também ser codificado no tipo P
(salto).
26. Remoção da redundância perceptiva
• Circuito de “De-blocking”- filtragem
Remove o artefato de “blocking”
o Resultado de compensação de movimento baseada em
blocos.
o O resultado de um bloco de codificação baseado na
transformada.
o Reduz significativamente os resíduos de predição
Without filter with H.264/AVC De-blocking
27. Transformação do bloco (44)
Entropy
Coding
Scaling &
Inv.
Transform
Motion-
Compensation
Control
Data
Quant.
Transf. coeffs
Motion
Data
Intra/Inter
Coder
Control
Decod
er
Motion
Estimation
Transform/
Scal./Quant.-
Input
Video
Signal
Split into
Macroblocks
16x16 pixels
Intra-frame
Prediction
De-blocking
Filter
Outp
ut
Video
Signa
l
4x4 Block Integer Transform
Main Profile: Adaptive Block
Size
Transform (8x4,4x8,8x8)
Repeated transform of DC
coeffs for 8x8 chroma and
16x16 Intra luma blocks
1 1 1 1
2 1 1 2
1 1 1 1
1 2 2 1
H
28. Modos de predição intra-frame
Entropy
Coding
Scaling &
Inv.
Transform
Motion-
Compensation
Control
Data
Quant.
Transf. coeffs
Motion
Data
Intra/Inter
Coder
Control
Decode
r
Motion
Estimation
Transform/
Scal./Quant.-
Input
Video
Signal
Split into
Macroblocks
16x16 pixels
Intra-frame
Prediction
De-blocking
Filter
Outpu
t
Video
Signal
Directional spatial prediction
(9 types for luma, 1 chroma)
• e.g., Mode 3:
diagonal down/right prediction
a, f, k, p are predicted by
(A + 2Q + I + 2) >> 2
Q A B C D E F G
H
I a b c d
J e f g h
K i j k l
L m n o p
M
N
O
P
1
0
34
56
7
8
2-
DC
29. Referencias:
1)I.E.G. Richardson, “H.264/MPEG4 Part 10: Intra Prediction,”
available at http://www.vcodex.com
2)I.E.G. Richardson, “H.264/MPEG4 Part 10: Inter Prediction,”
available at http://www.vcodex.com
3)I.E.G. Richardson, “H.264/MPEG4 Part 10: Transform and
Quantization,” available at http://www.vcodex.com
4)IEEE Transactions on Circuits and Systems for Video
Technology (2003): Special Issue on the H.264/AVC Video Coding
Standard
5)Signal Processing: Image Communication (2004):
Video coding using the H.264/MPEG-4 AVC compression standard
6)Ralf Schafer, Thomas Wiegand and Heiko Schwarz, “The
emerging H.264/AVC standard,” in EBU technical review, Jan.
2003
7)Jorn Ostermann et al., “Video coding with H.264/AVC: Tools,
Performance, and Complexity,” in IEEE Circuit and systems
magazine, first quarter. 2004.