1 / 35

Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

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

guri
Download Presentation

Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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.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 • 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. INTER Quadros Referência MC INTRA Quadro Atual Filtro T-1 Q-1 Decod. de Entropia + 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. 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. 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. 16 8 8 16 8 8 8 0 0 1 8 0 0 0 1 16 8 1 2 3 8 16x16 8x16 16x8 8x8 8 4 4 8 4 4 0 4 4 0 1 0 1 8 0 8 4 1 4 2 3 8x8 4x8 8x4 4x4 MC – Tamanho Variável de Blocos 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 MovimentoPredição Padrão 1 0 4 5 D B C 3 2 7 6 A E 8 12 9 13 11 15 10 14 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 MovimentoPrediçã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 MovimentoPrediçã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 MovimentoPrediçã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. B D B C B B 1 A 0 4 5 B B C D 3 A 2 7 6 1 0 A A 8 12 9 13 3 2 A 11 15 A 10 14 Arquitetura do MVP Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

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

  21. Extensão Predição Direta Temporal TEMPORAL 0 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; • 7 arquivos; • Xilinx ISE 8.1. Preditor de Vetores de Movimento em Hardware Segundo o Padrão H.264/AVC

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

  24. Resultados de Desempenho • 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 PC Host Placa 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. LUTs 8107 (29%) • MVP Predição Padrão • Lista 0 • Lista 1 • Predição Direta Espacial Registers 5994(21%) BRAMs 52 (38%) Clock 40 MHz LUTs 8580 (31%) • MVP Predição Padrão • Lista 0 • Lista 1 • Predição Direta Espacial • Predição Direta Temporal Registers 6313 (23%) BRAMs 52 (38%) Multiplicadores 3 (2%) Clock 41,2 MHz Síntese dos Protótipos • 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 HT @ 3,2 GHz; • 1 GB DDR; • White Box Linux; • G++ 3.2.3; • GNU Profiler. • Plataforma Sun / SunOS • UltraSPARC III+ @ 900 MHz; • 4 GB RAM; • SunOS 5.9; • G++ 3.3.2; • GNU Profiler. • Plataforma Mac / Mac OS • PowerPC G4 7450 @ 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 • TSMC 0,18 µm Típica. • MVP Predição Padrão • Lista 0 • MVP Predição Padrão • Lista 0 • Lista 1 • Predição Direta Espacial • MVP Predição Padrão • Lista 0 • Lista 1 • Predição Direta Espacial • Predição Direta Temporal

  31. Resultados Comparativos 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 • 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. 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

More Related