Estendendo o Conjunto de Instruções de um PPC para Uso
de Transformadas do H.264
Marcelo Schiavon Porto Roger E. C. Porto
{msporto, recporto}@inf.ufrgs.br
Introdução
• O padrão H.264/AVC é o mais novo padrão para compressão de vídeo digital.
• O H.264 foi desenvolvido para proporcionar taxas de compressão significativamente superiores aos
padrões de compressão existentes até então.
Codificador H.264
Diagrama em blocos do codificador H.264
Decodificador H.264
Diagrama em blocos do decodificador H.264
Transformada Inversa
Motivação
z Possibilidade de extensão do conjunto de instruções do PPC;
z Uso de instruções especializadas para co- processamento;
Problemas encontrados
z Na realidade a extensão do conjunto de instruções só é possível para o Virtex4;
z Para o Virtex2 Pró só é possível extender o conjunto de instruções com um subconjunto oferecido pela Xilinx.
Solução aplicada
z Implementar Hadamard inversa 4x4:
z Implementação em software: rodando em um PowerPC;
z Implementação em hardware: mapeada para o FPGA.
Decodificador H.264
Seqüência de transmissão dos elementos de um macrobloco
Algoritmo da Hadamard 4x4
Algoritmo da Hadamard inversa 4x4
Arquitetura da Hadamard 4x4
Arquitetura da Hadamard inversa 4x4
Resultados de Síntese
z Dispositivo utilizado: 2vp30fg676-6
z Número de Slices: 1478 (10%)
Number of Slice Flip Flops: 2126 (7%) Number of 4 input LUTs: 606 (2%)
z Freqüência: 202,02MHz
z Throughput: 202 milhões de amostras por segundo
Metodologia
Hadamard 4x4 PPC
FPGA
MEM
Placa Digilent XUP-V2P
•FPGA Virtex II Pro XC2VP30 com 30.816
células lógicas e 2 PowerPC hardwired;
•Memória DIMM SDRAM DDR (até
2Gbytes);
•Porta USB2;
•Porta serial RS-232;
•Etc...
Xilinx Platform Studio
Detalhe do XPS mostrando a aplicação em C rodando no PowerPC
Xilinx Platform Studio
Detalhe do XPS mostrando os arquivos VHDL de uma das transformadas
Xilinx Platform Studio
Detalhe do XPS mostrando os componentes envolvidos na prototipação
Arquivos Texto
Arquivo com os valores de entrada extraídos do código de referência do H.264
Terminal
Detalhe dos resultados de cálculo sendo mostrados no terminal
Arquivos Texto
Detalhes do arquivo resultante da comparação de resultados
Tarefas
z Estudo das características do PowerPC;
z Estudo mais aprofundado sobre a comunicação entre os componentes envolvidos no projeto (processador,
memória, co-processador);
z Desenvolvimento dos códigos;
z Verificação e prototipação;
z Comparação dos resultados;
Conclusões
z Para o Virtex2 Pro só é possível extender o conjunto de instruções com um subconjunto oferecido pela Xilinx.
z Taxa de processamento da IHAD 4x4 foi de 202 milhões de amostras por segundo, suficiente para HDTV.
Trabalhos Futuros
z Como trabalhos futuros, pretendemos utilizar algum
processador descrito em VHDL que possua seu código aberto e inserir instruções especificas para o co-
processamento das transformadas do padrão H.264.
z Desta forma poderemos desenvolver, rapidamente códigos que utilizem os IPs existentes para as
transformadas do padrão.
Referências
z DIGILENT. Digilent Inc. – Digital Design Engineer’s Source. Disponível em:
<http://www.digilent.com>. Acesso em: 06 jun. 2006.
z HENNESSY, J. L. Organização e projeto de computadores : a interface hardware/software. 2. ed. Rio de Janeiro : LTC, c2000.
z IBM. PowerPC Microprocessor Family: The Programming Environments for 32-Bit Microprocessors. Disponível em: <http://www.digilent.com>. Acesso em: 19 jun.
2006.
z XILINX. PowerPC™ 405 Processor Block Reference Guide: Embedded
Development Kit. Disponível em: <http://www.xilinx.com>. Acesso em: 14 jun. 2006.
z XILINX. PowerPC Instruction Set Extension Guide: ISA Support for the PowerPC APU Controller in Virtex-4. Disponível em: <http://www.xilinx.com>. Acesso em: 14 jun. 2006.
z XILINX. Virtex II Pro: PowerPC 405 Processor. Disponível em:
<http://www.xilinx.com/products/silicon_solutions/fpgas/virtex/virtex_ii_pro_fpgas/cap abilities/powerpc.htm>. Acesso em: 06 jun. 2006.
z XILINX. Xilinx: The Programmable Logic Company. Disponível em:
<http://www.xilinx.com>. Acesso em: 06 jun. 2006.
z XILINX. Xilinx University Program Virtex-II Pro Development System: Hardware