universidade federal do rio grande do sul - ufrgs programa de pós-graduação em computação- ppgc...
TRANSCRIPT
Universidade Federal do Rio Grande do Sul - UFRGSPrograma de Pós-Graduação em Computação- PPGC
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
Defesa de Mestrado
Bruno Zatt
Sergio BampiOrientador
Sumário Introdução; H.264/AVC; HP422-MoCHA;
Compensação de Movimento; Arquitetura; Resultados e Comparação;
Modelagem SystemC do Codificador H.264/AVC; Modelagem; Arquitetura; Resultados;
Conclusão e Trabalhos Futuros.
2
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
Introdução
Mercado de vídeo voltando-se para HDTV; Necessidade de padrões de compactação
mais eficiente; Surgimento do padrão H.264/AVC, dobrando a
taxa de compressão alcançada pelo MPEG2; Necessidade de hardware dedicado para
codificação e decodificação de vídeo HDTV, em tempo real;
Necessidade de técnicas adequadas para desenvolvimento de HW em sistemas complexos.
4
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
H.264/AVC
H.264/AVC
H.264/AVC é o padrão estado da arte para compressão de vídeo definido pela ITU-T e ISO/IEC;
Orientado a macroblocos; 16x16 pixels;
Utiliza codificação diferencial; Espaço de cores YCbCr; Subamostragem de cores 4:2:0.
6
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
H.264/AVC 4 Perfis;
Baseline; Extended; Main:
Quadros B; Predição ponderada (WP); Vídeo Entrelaçado; CABAC;
High; High; High 10; High 4:2:2; High 4:4:4.
7
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Slices Redundantes
CAVLC
Grupo de Slices e ASO
Slices P
Slices I
Slices B
CABAC
Predição ponderada
Slices SP e SI
Partição de dados
Baseline
Extended Main
Transformada 8x8
Predição Intra 8x8
High
Monocromático
Quantização adaptativa
AmostrasAté 10 bits
Formato4:2:2
High 4:2:2
High 10
Codificador H.264/AVC
8
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Quadros de
Referência
+Quadro Atual(reconstruído) T-1
Compensação de Movimento
Codificaçãode Entropia
Predição Intra Quadros
Q-1
- T QQuadros Atual
(original)
Filtro
Estimação de Movimento
Decodificador H.264/AVC
9
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Quadros de Referência
+Quadro Atual
(reconstruído)
T-1
Compensação de
Movimento
Decod.de
Entropia
Predição Intra
Quadros
Q-1Filtro
Estimação de Movimento (ME)
10
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Vetor de Movimento
Quadro de Referência
Quadro de Atual
Compensação de Movimento (MC)
11
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Quadro de Referência
Quadro de Atual Reconstruído
Compensação de Movimento (MC)
12
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Quadro de AtualQuadro de Atual
Reconstruído
Predição Intra-Quadro
13
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Inovação do padrão H.264/AVC; Dois tamanhos de bloco: 4x4 e 16x16; Realizada como interpolações polinomiais
dos pixels das bordas adjacentes.
I a b c d
K i k l
A C E G
e g
m
M B D F H
J f h
L n p
j
o
Transformadas e Quantização Transformadas DCT-2D e Hadamard; 4x4 amostras (8x8 nos perfis High); Matriz Ef contém coeficientes constantes e
pode ser realizada junto à quantização; A quantização é função do parâmetro QP
utilizado para controlar qualidade e compressão.
14
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Filtro Redutor de Efeitos de Bloco
O H.264/AVC normatiza a utilização de um filtro redutor do efeito de bloco;
A predição baseada em blocos e transformadas gera artefatos de bloco;
É um filtro adaptativo, que prevê 5 diferentes pesos para a filtragem entre os blocos (0 - 4);
O peso dos filtros é definido de acordo com regras que se baseiam no modo de predição utilizado pelos blocos vizinhos.
15
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Codificação de EntropiaCAVLC
Codifica resíduos provenientes do bloco de quantização;
Produz códigos de tamanho variável dependentes do contexto;
Exploradas determinadas características dos blocos quantizados: Número de coeficientes não zero; Seqüências de valores ‘1’; Magnitude dos coeficientes; Corrida de zeros.
16
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
HP422-MoCHA
Compensação de Movimento (MC)
Múltiplos tamanhos de bloco; Múltiplos quadros de referências; Vetores apontando para fora da
imagem; Precisão de ¼ de amostra; Bi-predição; Predição ponderada.
18
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
MC nos Perfis High
High; Subamostragem de cor 4:0:0 (monocromático);
High 10; Largura de amostras de 9 e 10 bits;
High 4:2:2; Subamostragem de cor 4:2:2.
19
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Perfil Main
- Transformada 8x8- Predição Intra 8x8- Matrizes de Escala Perceptuais- Monocromático
HIGH
HIGH 10HIGH 4:2:2
HIGH 4:4:4
Amostras 8 -10 bits
Formato4:2:2
Amostras 8 -12 bits
Transformada Residual
Codificação Sem Perde
Formato 4:4:4
HP422-MoCHA – High Profile 4:2:2 Motion Compensation Hardware Architecture
Baseado na arquitetura MoCHA (Azevedo A. et alli, ISCAS 2007, UFRGS);
Desenhado como um pipeline hierárquico; Preditor de Vetores de Movimento (MVP); Acesso à Memória; Processador de Amostras.
20
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Preditor de
Vetores de
Movimento
Memória de Referências
Processamento de Luma
Processamento de Croma
Buffer de Macrobloc
o
Preditor de Vetores (MVP)
21
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
MEMORYREFRESH
SET VECTORS
SAVEMV
CONTROLFOR
CONTROLSUB-FOR
STANDARD SPATIAL TEMPORAL
PRE_PROCSPATIAL
WAITING
TEST_MB_TYPE
1
2
6
1
1
7 4 6
4
1
16
0 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
B B B B
A
A
A
A
D C
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Acesso à Memória
22
CACHE
DDR
=
Memória Interna
Linha
Coluna
POC Addr
Addr
Amostras
Amostras
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Cache 3-D para reduzir a retransmissão;
32 conjuntos; Luma;
16 linhas x 40 colunas; Chroma;
16 linhas x 20 colunas; Amostras de 10 bits
Completando com zeros os MSBs das amostras com 8 ou 9 bits;
25% de aumento; 4:2:2;
Metade das linhas de crominância não utilizadas;
33% de aumento; 400 Kb; Até 60% de redução na largura de
banda e 85% no número de acessos à memória.
Processador de Amostras
23
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
Caminho de Dados de Luma
Caminho de Dados de Croma
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Arquitetura Prévia do Interpolador de Luminância
24
*Wang, 2005
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
4 FIR Verticais; 9 FIR Horizontais; 4 Filtros Bilineares.
Interpolador de Luminância
25
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
4 FIR Verticais; 8 FIR Horizontais; 4 Filtros Bilineares.
F I R
F I R
F I R
F I R
F I R
F I R
F I R
F I R
F I R
F I R
F I R
F I R
6:2
Bilinear
6:2
Bilinear
6:2
Bilinear
6:2
Bilinear
Filtro FIR
Implementado em 3 estágios de pipeline;
Sem multiplicadores.
26
+
<<2+
- +
+<<2
+
Clip
E F G H I J
Y = (E–5F+20G+20H–5I+J)/32
↓ ↓ ↓Y = {(E+J)+(G+H)+4*[4*(G+H)–(F+I)]+ [4*(G+H)–(F+I)]}/32
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Interpolador de Croma
27
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
Chroma 1/8 pelFilter
Chroma 1/8 pelFilter
A
B
C
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Filtro de Croma
Implementação sem multiplicadores; ANDs; Deslocadores; Somadores.
28
A
X
Y
B
-
-
*
*
*
*
*
*
*
*
+
‘32’
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Clipping de Largura de Bits Variável
29
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
CLIP10
CLIP9
CLIP8
19 10 10
Resultados de Síntese
30
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
MVP Acesso
Memória
Proc. Amostras
MoCHA 4:2:0
HP 422 MoCHA
Aumento%
Slices 4.552 994 5.511 8.465 11.435 24%Flip Flops 4.649 889 5.904 5.671 9.057 11%LUTs 4.947 1.320 6.742 10.835 13.983 28%BRAM 3 30 0 21 33 28%Mult. 0 0 14 12 14 0%
FPGA:- Synplify Pro version 8.1;
- Xilinx Virtex 2 PRO (XC2VP30-7).
@ 99.9 MHz; Decodifica, em tempo real, HDTV 1080p para o perfil High
4:2:2; Até 37 quadros por segundo para slices tipo B; Até 69 quadros por segundo para slices tipo P.
Comparação
Até o momento da conclusão deste trabalho não havia nenhuma arquitetura para MC HP 4:2:2 publicada detalhadamente na literatura;
Wang S., ISCAS 2005; Perfil Baseline 1080p em tempo real; MVP em HW sem predição direta; 1 FIR a mais se com parado à HP422-MoCHA; ASIC 0.18um;
Wang R., ICASSP 2005; Perfil Baseline 720p @30qps;
Lie W., ISCAS 2005; Utiliza filtros diagonais de 4-taps inserindo ruído; Não apresenta dados da performance do HW.
31
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Comparação
Chen J., ICASSP 2006; MVP em software; 48% redução da largura de banda
X
HP422-MoCHA = 60%; 8 filtros bilineares a mais do que a HP422-MoCHA; ASIC 0.18um;
Li Y., ISCAS 2007; Sem MVP; 60%-80% redução da largura de banda; 1080p @ 30qps para perfil Main.
32
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Resultados de Síntese do Interpolador para Perfil Main
33
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
Interpolador Croma
Interpolador Luma
Total
Gate Count 3,980 8,365 12,345
Freqüência Máxima
1696.9 MHz 129.9 MHz 129.9 MHz
TSMC 0.18µm typical; Mentor Graphics Leonardo Spectrum.
@ 129.9 MHz; 163 M amostras/segundo;
@ 82 MHz; Decodificação em tempo real para HDTV 1080p @ 30
qps; 93.3 M amostras/segundo.
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Wang’03 [5]
Chen’04 [6]Wang’05
[4]Chen’06 [8] Azevedo’07[9] Li’07 [7] Proposta
Perfil Baseline Baseline Baseline Main Main Baseline Main
Arquitetura 1-DSeparada
1-DSeparada
1-DSeparada
1-DSeparada
1-DSeparada
1-DSeparada
1-D
Componetes do
Interpolador
FIR x 2
Horiz. FIR x5
Horiz. FIR x9
Horiz. FIR x4 (bilinear embarcado)
Horiz. FIR x9
FIR x4
Horiz. FIR x8
Vert. FIR x11
Vert. FIR x4Vert. FIR x8
(bilinear embarcado)
Vert. FIR x4 Vert. FIR x4
Bilinear Bilinear Bilinear x4
None (12 filtros
bilineares embarcado)
Bilinear x4 Bilinear x4 Bilinear x4
Filtro 1/8 x3 n/a Filtro 1/8 x2 n/a Filtro 1/8 nenhum Filtro 1/8
Gate Count 11.17223.872
(0.25um)20.686
(0.18um)15.000
(0.18um)18.846
(0.18um)13.027
(0.18um)12.345
(0.18um)
Tempo de Interpolação
1280 ciclos/MB (pior caso)
n/a560
ciclos/MB (pior caso)
320 ciclos/MB
(médio)
304 ciclos/MB (pior caso)
304 ciclos/MB (pior caso)
304 ciclos/MB (pior caso)
Freq. Necessária HD 1080
n/a n/a 100MHz 87MHz 82MHz 100MHz 82MHz
Comparação
34
17%
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Considerações Finais
A arquitetura HP422-MoCHA trouxe excelentes resultados acadêmicos;
Performance desejada; Área condizente com as demais arquiteturas
relacionadas; Integração se mostrou um grande desafio;
Muitos sinais de interface; Sincronização;
Estímulo para uma nova abordagem de desenvolvimento de sistemas; Bottom-up Meet-in-the-middle.
35
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Modelagem SystemC do Codificador H.264/AVC
Modelagem de Sistemas Complexos
Problemas enfrentados no desenvolvimento de SOCs:
Aumento da complexidade; Dificuldades na abordagem botton-up; Menor time-to-market;
Alternativas: Reuso; Modelagem de alto nível; Uso da abordagem meet-in-the-middle; Refinamentos sucessivos reduzindo nível de abstração.
37
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Objetivos
Desenvolver um modelo em SystemC para o codificador H.264/AVC na abordagem TLM (Transaction Level Modeling);
Especificar os módulos integrantes do sistema; Localizar simplificações orientadas a implementação em HW;
Avaliar as transações entre os módulos; Detectar gargalos do sistema; Taxa de processamento; Acesso à memória;
Servir como ferramenta para validação de módulos em HW; Permitir refinamento para níveis mais baixos de abstração.
38
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
TLM (Transaction Level Modelling) Modelos de Abstração
A. Specification Model
B. Component Assembly Model
C. Bus-Arbitration Model
D. Bus-functional Model
E. Cycle Accurate computation Model
F. Implementation Model
39
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
* CAI, L., GAJSKI, D. Transaction Level Modeling: An Overview
Codificador H.264/AVC
40
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Quadros de
Referência
+Quadro Atual(reconstruído) T-1
Compensação de Movimento
Codificaçãode Entropia
Predição Intra Quadros
Q-1
- T QQuadros Atual
(original)
Filtro
Estimação de Movimento
Codificador H.264/AVC
41
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Quadros de
Referência
+Quadro Atual(reconstruído) T-1
Compensação de Movimento
Codificaçãode Entropia
Predição Intra Quadros
Q-1
- T QQuadros Atual
(original)
Filtro
Estimação de Movimento
Arquitetura Modelada
2 estágios de macro-pipeline;
Caminho de reconstrução simplificado utilizando memória de predição.42
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Preditor Intra-Quadro
CAVLC
MB Buffer
Salva Memória
T/Q
Codificador H.264/AVC
Estimação de Movimento
IT/IQ
Modo de Decisão
Memória de Referência
1º Estágio do Macro-pipeline 2º Estágio
Preditor Intra-Quadro
43
*Bruno Zatt e Cláudio Diniz
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Base temporal para o codificador; Paralelismo de 4 amostras; Critério de similaridade: SAD; Modos de predição:
9 modos I4MB; 4 modos I16MB; 4 modos croma.
Preditor Intra-Quadro
44
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Preditor Intra-Quadro
Intra Vizinhos
Control
Cb
Save
Mem. Y
Cr
Preditor de Amostras
SAD/ I4MB Mode
Decision
Memória de Predição
Read
Save
Dual Port SRAM
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
Cycle Accurate Computation Model – Computação com precisão de ciclo e comunicação com tempo aproximado.
Canais e Interfaces
SC_METHOD/SC_THREAD
SC_MODULE
Preditor Intra-Quadro
45
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Preditor Intra-Quadro
Intra Vizinhos
Control
Cb
Save
Mem. Y
Cr
Preditor de Amostras
SAD/ I4MB Mode
Decision
Memória de Predição
Read
Save
Dual Port SRAM
sc_port<line_read_if> org_line;typedef sample_line{
int[4];}
sample_line trasformed_input;
void intra_vizinhos::atualiza_vizinhos() {
switch(next_state) { case RESET:
….. break;
case WAIT:….
} }
Preditor Intra-Quadro
46
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Preditor Intra-Quadro
Intra Vizinhos
Control
Cb
Save
Mem. Y
Cr
Preditor de Amostras
SAD/ I4MB Mode
Decision
Memória de Predição
Read
Save
Dual Port SRAM
Transformadas e Quantização (TQ)
47
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Transformadas e Quantização (TQ)
48
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Paralelismo de 4 amostras; Bus Arbitration Model –
Computação e comunicação aproximadas.
T/Q
SUB
Chroma
Luma
Luma I16MB
W R I T E
Transformadas e Quantização (TQ)
49
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
T/Q
SUB
Chroma
Luma
Luma I16MB
W R I T E
void TQ::transproc() { …. for (int i=0;i<4;i++) for (int j=0;j<4;j++) mult_temp[i][j] = (fabs(mult_temp1[i][j]) * (PF[i][j] * pow(2, qbits))/QS + f) / pow(2, qbits); …. tranform_block.notify(); }
Estimação de Movimento (ME)
50
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Paralelismo de Macrobloco; Critério de Similaridade SAD; Busca Full Search; Área de busca de até 48x48
amostras; Todos os tamanhos de blocos; SAD gerado para cada bloco 4x4,
sua acumulação define os tamanhos de bloco;
Bus Arbitration Model – Computação e comunicação aproximadas.
FIFO
ME
Leitura da
Memória
Controle da
Busca
Área de Busca
Cálculo do SAD
Acumuladores de SAD
Estimação de Movimento (ME)
51
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
FIFO
ME
Leitura da
Memória
Controle da
Busca
Área de Busca
Cálculo do SAD
Acumuladores de SAD
for (FS_Y=start_Y; FS_Y<end_Y; FS_Y++) //PERCORRE LINHAS DA AREAfor (FS_X=start_X; FS_X<end_X; FS_X++){ // PERCORRE COLUNAS DA AREA
for (i=0; i<4; i++) //BLOCOS 4X4 VERTICALMENTEfor (j=0; j<4; j++){ // BLOCOS 4X4 HORIZONTALMENTE
SAD_acc[i][j] = SAD(FS_Y, FS_X, i, j);}
MB_SAD_ready.notify();wait(); //MB TESTADO
}
Estimação de Movimento (ME)
52
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Luminância; Cb; Cr; Seguindo ordenação
duplo-Z nos blocos 4x4 de cada MB.
Quadro AtualQuadro de Referência
48
48
Espaço para Luminância
Espaço para Cb
Espaço para Cr
CAVLC
53
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Avalia uma amostra de resíduo por ciclo; Até 16 ciclos para calcular os parâmetros; Gera 1 byte do bitstream por ciclo; Bus Arbitration Model – Computação e comunicação
aproximadas.
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
Parâmetros
L E I T OR
Controle
Gera Stream
CAVLC
Análise Temporal
54
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Esquema de Cores:
Dados de Luminância I4MB
Dados de Luminância I16MB
Dados de Luminância Inter
Dados Crominância Azul (Cb)
Dados Crominância Vermelha (Cr)
Modo de Decisião
Análise Temporal
55
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
...Pred. Intra
Parâm. Intra e Atualiza Vizinhos
Unidades
IT/IQ
MD
T/Q
Memória Referência
Busca ME
(a)
...
4
8
14
20
29 32 48 64 404
406
488 555
562
58562060
4
1º Estágio de Pipeline – Caso 1 # Ciclos: 620Freq: 150 MHz
Análise Temporal
56
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
1º Estágio de Pipeline – Caso 2
...
Unidades
(b)
...
4
8
14
20
29 32 48 64 404
406 413
436
471455
# Ciclos
# Ciclos: 471Freq: 114 MHz
Pred. Intra
Parâm. Intra e Atualiza Vizinhos
IT/IQ
MD
T/Q
Memória Referência
Busca ME
Análise Temporal
57
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
1º Estágio de Pipeline – Caso 3
...
Unidades
(c)
...# Ciclos
4
8
14
20
29 32 48 64 404
406
410 475
486
509
528
544
# Ciclos: 544Freq: 132 MHz
Pred. Intra
Parâm. Intra e Atualiza Vizinhos
IT/IQ
MD
T/Q
Memória Referência
Busca ME
Análise Temporal
58
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
1º Estágio de Pipeline – Caso 4
...
Unidades
...
4
8
14
20
29 32 48 64 404
# Ciclos
Pred. Intra
Parâm. Intra e Atualiza Vizinhos
IT/IQ
MD
T/Q
Memória Referência
Busca ME
Análise Temporal
59
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
2º Estágio de Pipeline
Geração Stream
Parâmetros CAVLC
Unidades
Salva Memória Referência # Ciclos
620Variável
Máximo: 41616 162
... ...
160 164 544471
Análise da Comunicação
60
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Preditor Intra-Quadro
CAVLC
MB Buffer
Salva Memória
T/Q
Codificador H.264/AVC
Estimação de Movimento
IT/IQ
Modo de Decisão
Memória de Referência
A B
C
D E
FG
H
IJ
Conexão Tráfego de Dados
Conexão Tráfego de Dados
A 93,3 MB/s G 29.6 – 36,9 MB/sB 93,3 MB/s H 93,3 MB/sC 93,3 MB/s I 93,3 MB/sD 93,3 – 155,5MB/s J 812,8 MB/sE 93,3 MB/s L VariávelF 93,3 – 155,5MB/s
L
Análise da Comunicação
61
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Preditor Intra-Quadro
CAVLC
MB Buffer
Salva Memória
T/Q
Codificador H.264/AVC
Estimação de Movimento
IT/IQ
Modo de Decisão
Memória de Referência
A B
C
D E
FG
H
IJ
L
sMB
HL
/3,939331200030*3110400Namostra/s3110400 Namostra/q
NamostraY 1/4NamostraCrNamostraCb20736001080*1920*NamostraY
30qps1080H1920L
Análise da Comunicação
62
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Preditor Intra-Quadro
CAVLC
MB Buffer
Salva Memória
T/Q
Codificador H.264/AVC
Estimação de Movimento
IT/IQ
Modo de Decisão
Memória de Referência
A B
C
D E
FG
H
IJ
Conexão Tráfego de Dados
Conexão Tráfego de Dados
A 93,3 MB/s G 29.6 – 36,9 MB/sB 93,3 MB/s H 93,3 MB/sC 93,3 MB/s I 93,3 MB/sD 93,3 – 155,5MB/s J 812,8 MB/sE 93,3 MB/s L VariávelF 93,3 – 155,5MB/s
L
Considerações Finais
Gerado um modelo de referência de HW para codificador;
Desenvolvida para HDTV 1080p; Descrição em SystemC; De acordo com abordagem meet-in-the-middle; Ferramenta de auxílio:
Verificação; Integração; Simulações; Análises; Exploração do espaço de projeto.
63
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Trabalhos Futuros
Conclusão
Conclusão
Este trabalho apresentou duas partes distintas concluídas com sucesso; HP422-MoCHA; Modelagem SystemC do codificador
H.264/AVC; São aplicados e discutidos dois diferentes
paradigmas de desenvolvimento de HW; Resultados importantes no contexto do
projeto no qual estão inseridos.
65
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Trabalhos Futuros
Exploração de algoritmos para o modo de decisão; Simplificação do RDO (Otimização taxa distorção);
Exploração de algoritmos para a ME; Pixels fracionários; Algoritmos rápidos;
Exploração do espaço de projeto através de experimentação arquitetural;
Alteração do paralelismo; Pipeline mais profundo; Redução da largura de banda;
Implementação dos blocos restantes do codificador; CABAC; Filtro redutor de efeitos de bloco.
66
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Publicações
ZATT, Bruno ; AGOSTINI, Luciano ; SUSIN, A. A. ; BAMPI, Sergio . HP422-MoCHA: A H.264/AVC High Profile motion compensation architecture for HDTV. In: 2008 IEEE International Symposium on Circuits and Systems - ISCAS 2008.
ZATT, Bruno ; AGOSTINI, Luciano ; SUSIN, A. A. ; BAMPI, Sergio . High Throughput Architecture for H.264/AVC Motion Compensation Sample Interpolator for HDTV. In: 21th Symposium on Integrated Circuits and Systems Design (SBCCI), 2008.
ZATT, Bruno ; DINIZ, C. M. ; AGOSTINI, Luciano ; SUSIN, A. A. ; BAMPI, Sergio . SystemC Modeling of an H.264/AVC Intra Frame Encoder Architecture. In: VLSI-SOC 2008 - 16TH IFIP International Conference on Very Large Scale Integration, 2008.
67
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Publicações ZATT, Bruno ; AZEVEDO, Arnaldo ; SUSIN, A. ; BAMPI, Sergio . Preditor de
Vetores de Movimento para o Padrão H.264/AVC Perfil Main. In: XIII IBERCHIP Workshop, 2007.
ZATT, Bruno ; AZEVEDO, Arnaldo ; AGOSTINI, Luciano ; SUSIN, A. ; BAMPI, Sergio . Memory Hierarchy Targeting Bi-Predictive Motion Compensation for H.264/AVC Decoder. In: IEEE Computer Society Annual Symposium on VLSI, 2007.
AZEVEDO, Arnaldo ; ZATT, Bruno ; AGOSTINI, Luciano ; BAMPI, Sergio . MoCHA: a Bi-Predictive Motion Compensation Hardware for H.264/AVC Decoder Targeting HDTV. In: IEEE International Symposium on Circuits and Systems, 2007. ISCAS 2007.
ROSA, V. S. ; STAEHLER, W. T. ; AZEVEDO, Arnaldo ; ZATT, Bruno ; PORTO, R. E. ; AGOSTINI, Luciano ; BAMPI, Sergio ; SUSIN, A. A. . FPGA Prototyping Strategy for a H.264/AVC Video Decoder. In: 18th IEEE/IFIP International Workshop on Rapid System Prototyping, 2007. RSP 2007.
ZATT, Bruno ; AZEVEDO, Arnaldo ; AGOSTINI, Luciano ; SUSIN, A. A. ; BAMPI, Sergio . H.264/AVC HDTV Motion Compensation Soft IP. In: IP Based Eletronic System Conference & Exibition 2007, 2007.
ZATT, Bruno ; FERREIRA, V. ; AGOSTINI, Luciano ; WAGNER, F. R. ; SUSIN, A. A. ; BAMPI, Sergio . Motion Compensation Hardware Accelerator Architecture for H.264/AVC. In: IEEE Pacific-Rim Symposium on Image and Video Technology, PSIVT, 2007. Lecture Notes in Computer Science - Advances on Image and Video Technology.
68
•Introdução
•H.264/AVC
•HP422-MoCHA
- MC High
- Arquitetura
- Resultados e
Comparação
•Modelagem SC
- Modelagem
- Arquitetura
- Resultados
•Conclusão e Trabalhos Futuros
Universidade Federal do Rio Grande do Sul - UFRGSPrograma de Pós-Graduação em Computação- PPGC
Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC
Defesa de Mestrado
Bruno Zatt
Sergio BampiOrientador
Perguntas?