A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Trabalho de Diplomação em Engenharia de Computação 2006/2

Apresentações semelhantes


Apresentação em tema: "Trabalho de Diplomação em Engenharia de Computação 2006/2"— Transcrição da apresentação:

1 Trabalho de Diplomação em Engenharia de Computação 2006/2
Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC Trabalho de Diplomação em Engenharia de Computação 2006/2 BRUNO ZATT Orientador: Sergio Bampi Co-orientador: Luciano Agostini

2 Preditor de Vetores de Movimento em Hardware Segundo o Padrão H
Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC Introdução H.264/AVC Compensação de Movimento (MC) Predição de Vetores Arquitetura Validação Prototipação Resultados comparativos Conclusão Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

3 Introdução Este trabalho está inserido nos esforços de pesquisa para a definição do SBTVD (Sistema Brasileiro de Televisão Digital) Elevado interesse acadêmico e comercial no H.264/AVC; Interesse do mercado em HDTV; Necessidade do suporte de HW. Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

4 H.264/AVC H.264/AVC é o mais novo padrão de 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; Sub-amostragem de cores 4:2:0; Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

5 H.264/AVC 4 Perfis Tipos de Quadros do Perfil Main: Baseline; Extended
High; Main: Quadros B; Predição ponderada (WP); Vídeo Entrelaçado; CABAC. Tipos de Quadros do Perfil Main: Intra (I); Preditivo (P); Bi-Preditivo (B). Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

6 H.264/AVC Codificação de Entropia
Transformadas e Transformadas Inversas (T-1); Quantização e Quantização Inversa (Q-1); Predição Intra; Predição Inter (ME / MC); Filtro de Deblocagem. Quadros Referência Q-1 + T-1 Quadro Atual MC Decod. de Entropia INTRA Filtro INTER Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

7 Predição Inter-Frame (ME)
Quadro de Referência Quadro de Atual Vetor de Movimento Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

8 Predição Inter-Frame (MC)
Quadro de Atual Reconstruído Quadro de Referência Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

9 Predição Inter-Frame (MC)
Quadro de Atual Reconstruído Quadro de Atual Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

10 Motion Vector Prediction
Módulos do MC MC Frame Memory Access Motion Vector Prediction Sample Interpolation Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

11 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. Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

12 MC – Tamanho Variável de Blocos
16 16x16 8 8x16 1 1 8 16x8 16 1 2 3 8x8 8 8x8 8 8 4 4x8 1 1 8x4 8 4 4 4x4 1 2 3 Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

13 MC – Múltiplos Quadros de Referência
Lista 0 Lista 1 Quadro Atual Quadros de Referências Passados Quadro de Referências Futuros Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

14 Predição de Vetores de Movimento Predição Padrão
1 4 5 D B 2 3 C 6 7 A E 8 9 12 13 10 11 14 15 D B C A E Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

15 Predição de Vetores de Movimento Predição Direta Espacial
Testa a vizinhança; Menor positivo; Testa bloco co-localizado; Zera vetores quando: Índices de ref. lista 0 e 1 são negativos; Índice de ref. co-localizados igual a 0; MVs co-localizados entre 1 e -1; Utiliza predição padrão; Partições 4x4. Quadro Atual Quadro Co-Localizado Zerar vetores -> Movimento nulo; Índice de Ref negativo -> Não existe. Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

16 Predição de Vetores de Movimento Predição Direta Temporal
Referência Lista 0 Quadro Atual Referência Lista 1 Referência Lista 0: Ref. co-localizada remapeada; Referência Lista 1 zerada; Blocos 4x4. MVCol Bloco Co-localizado MVL0 MVL1 Bloco Direto B td tb Tempo Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

17 Predição de Vetores de Movimento Predição de Blocos Skip
Blocos que não mandam informações explícitas de MVs e resíduo; Em slices P utilizam a predição padrão; Referência 0 da lista 0; 16x16; Em slices B utilizam predição direta; Inferido 4x4. Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

18 MVP Software Reconhecimento do problema;
Auxílio ao desenvolvimento do HW; C++; Desenvolvido de forma incremental; Padrão; Espacial; Temporal. Validação utilizando vídeo Foreman QCIF; 100 quadros padrão; 100 quadros espacial IPBBP; 100 quadros temporal IPBBP. Dados do software de referência

19 Arquitetura do MVP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 B A D C C 1 2 3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 B A D C C 1 2 3 B A D Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

20 Arquitetura MVP Quadro co-localizado é armazenado na memória externa.
RESET 1 WAITING 1 TEST MB_TYPE 2 PRE_PROC SPATIAL 6 CONTROL FOR 1 4 5 1 2 3 6 7 CONTROL SUB-FOR 1 8 9 12 13 7 4 6 STANDARD SPATIAL TEMPORAL 10 11 14 15 SET VECTORS 4 1 SAVE MV Quadro co-localizado é armazenado na memória externa. 16 MEMORY REFRESH

21 Extensão Predição Direta Temporal
TEMPORAL 1 TEMPORAL 2 TEMPORAL 5 TEMPORAL 3 TEMPORAL 4 ‘16384’ ‘32’ - C L I P + D I V * + S H I F T C L I P - C L I P

22 Descrição VHDL 7500 linhas de VHDL; Xilinx ISE 8.1. 7 arquivos;
Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

23 Resultados de Síntese MVP Predição Padrão Predição Direta Espacial
149,5 MHz Clock 2 (1%) BRAMs 2119(7%) Registers 2244(8%) LUTs 3 (2%) Multiplicadores 133,9 MHz 3596 (13%) 6221 (22%) 146,1 MHz 3358 (12%) 5961 (21%) MVP Predição Padrão Lista 0 Lista 1 Predição Direta Espacial Predição Direta Temporal

24 Resultados de Desempenho
Seqüência de Quadros Pior caso (ciclos) Nº de quadros HDTV no pior caso (quadros) Caso médio Nº de quadros HDTV no caso médio(quadros) P 236 69 64 254 B c/ pred. direta espacial 242 67 161 101 B c/ pred. direta temporal 100 162 I-P-B-B-P c/ direta espacial 127 128 I-P-B-B-P c/ direta temporal 88 185 Mesmo no pior caso, em todas as situações, a arquitetura atinge o dobro do desempenho exigido para decodificar HDTV em tempo real.

25 Validação Dados extraídos de sequência reais de vídeo;
Software de referência JM 9.5; Validação utilizando vídeo Froreman QCIF; 100 quadros padrão; 100 quadros espacial IPBBP; 100 quadros espacial IPBBP. Simulação Utilizando Mentor ModelSim; Comparação de resultados por software; Método apresentado em: ZATT, B.; AZEVEDO, A.; AGOSTINI, L.; BAMPI, S “Validação de uma arquitetura para compensação de movimento segundo o padrão H.264/AVC”. IBERCHIP, 2006. Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

26 Prototipação - Plataforma
Placa de Prototipação XUP Virtex II PRO: Digilent Inc.; Virtex II PRO FPGA; 30 k células lógicas; 2,5 Mb RAM; 136 18x18 multiplicadores; 2 PowerPC 405; 512 MB DDR; RS-232; Ferramentas: Xilinx EDK/ISE. Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

27 Prototipação MVP Placa Power PC PC Host Interface RS-232
FPGA Memória Externa Power PC MVP Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

28 Síntese dos Protótipos
3 (2%) Multiplicadores 41,2 MHz Clock 52 (38%) BRAMs 6313 (23%) Registers 8580 (31%) LUTs 40 MHz 5994 (21%) 8107 (29%) MVP Predição Padrão Lista 0 Lista 1 Predição Direta Espacial Predição Direta Temporal Incluindo todos os wrappers necessários à prototipação; Degradação na freqüência de operação é função dos wrappers. Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

29 Implementações Comparativas - SW
Plataforma x86 / Linux Pentium 4 3,2 GHz; 1 GB DDR; White Box Linux; G ; GNU Profiler. Plataforma Sun / SunOS UltraSPARC 900 MHz; 4 GB RAM; SunOS 5.9; G ; GNU Profiler. Plataforma Mac / Mac OS PowerPC G4 733 MHz; 512 MB RAM; Mac OS X; G++ 3.2; GNU Profiler. Porque implementações em SW? Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

30 Standard Cell Standard Cell Gates 17454 Clock 227,1
TSMC 0,18 µm Típica. Gates 17454 Clock 227,1 MVP Predição Padrão Lista 0 MVP Predição Padrão Lista 0 Lista 1 Predição Direta Espacial Gates 36690 Clock 227,8 MVP Predição Padrão Lista 0 Lista 1 Predição Direta Espacial Predição Direta Temporal Gates 46886 Clock 129,3

31 Resultados Comparativos
IPBBP direta espacial IPBBP direta temporal FPGA Freqüência (MHZ) 146 MHZ 133 MHZ Quadros HDTV / s 139 185 x86 3200 MHZ 40 60 Sun 900 MHZ 5,5 8,6 Mac 733 MHZ 8 ASIC 227 MHZ 129 MHZ 219 179 Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

32 Resultados Comparativos
HW tende a não degradar seu desempenho quando integrado a outros módulos; Em SW, devido a natureza serial dos GPPs, quando rodando outros módulos do decodificador, o desempenho a diminuir consideravelmente; Apesar da natureza serial do MVP, é necessário um HW para esta função; SW em um processador embarcado não atingiria o desempenho necessário. Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

33 Literatura Atual Wang ’03 Deng ’04 Chen ’05 Li ’06 Arq. Proposta MVP
SW - Incompleto HW* HW** HW Main Freq. 629 MHz 153 MHz 275 MHz 150 MHz 100 MHz Tabela extraída de Li ’06. Única solução, em HW, completa de MVP no Perfil Main do H.264/AVC presente na literatura. Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

34 Conclusão Arquitetura para o Preditor de Vetores de Movimento (MVP) para o padrão H.264/AVC perfil Main; Arquitetura apresentada em detalhes; Implementação em HW para FPGA e Standard Cell; Implementação em SW para x86, Sun e Mac; A solução é capaz de decodificar HDTV (1920x1080) em tempo real a 30 quadros por segundo; Não foi encontrada descrição de arquiteturas semelhantes na literatura atual. Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

35 Trabalho de Diplomação em Engenharia de Computação 2006/2
Obrigado! Perguntas? Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC Trabalho de Diplomação em Engenharia de Computação 2006/2 BRUNO ZATT Orientador: Sergio Bampi Co-orientador: Luciano Agostini


Carregar ppt "Trabalho de Diplomação em Engenharia de Computação 2006/2"

Apresentações semelhantes


Anúncios Google