1 / 1

Norma 3GPP TS 26.071 V6.0.0 (2004-12).

Hardware/Software co-design para aplicações de processamento de voz 1 Faculdade de Engenharia da Universidade do Porto, 2 CHIPIDEA Microelectrónica SA Orientação: 1 Prof. Dr. Aníbal João Ferreira, 1 Prof. Dr. João Canas Ferreira 2 Eng.º António Pacheco, 2 Eng.º Vasco Santos Alunos:

Télécharger la présentation

Norma 3GPP TS 26.071 V6.0.0 (2004-12).

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. Hardware/Software co-design para aplicações de processamento de voz 1Faculdade de Engenharia da Universidade do Porto, 2CHIPIDEA Microelectrónica SA Orientação: 1Prof. Dr. Aníbal João Ferreira, 1Prof. Dr. João Canas Ferreira 2Eng.º António Pacheco, 2Eng.º Vasco Santos Alunos: 1Pedro Manuel Fonseca da Mota, 1Pedro Manuel Vieira dos Santos PROFILING DO CODEC AMR SUMÁRIO A sociedade moderna assenta a sua dinâmica nas telecomunicações e contacto em tempo real. Por essa razão vários sistemas capazes de realizar a codificação de voz têm sido desenvolvidos. Integrado no contexto mencionado, neste projecto pretendeu-se realizar a implementação de um codificador de voz de débito variável, usando um processador dedicado, OpenRisc1200. Isto passa pela optimização dos algoritmos do codec e o refinamento da arquitectura do processador. • Análise ao código revelou que a escrita dos diferentes algoritmos está feita de forma eficiente. • A norma inclui funcionalidades para realizar profiling às diferentes partes do codec. • O peso computacional associado à codificação de frames de voz é o de maior valor. • Codificador de voz apresenta um peso computacional 6 vezes superior ao descodificador. • Resultados revelaram que a pesquisa no codebook fixo pode ser um factor limitativo da performance total do codec. • Norma define operações básicas a serem usadas ao longo do algoritmo do codec. Os resultados destas operações são saturados e garantem a máxima precisão possível. • Operações mac representam cerca de 43% de todas as operações. Profiling do codificador de no modo de 12.2 kbit/s. Codificação de frames de voz. Peso das diferentes operações do codec AMR CODIFICADOR AMR • Norma 3GPP TS 26.071 V6.0.0 (2004-12). • Codificador AMR de 8 débitos diferentes desde 4.75 a 12.2 kbit/s. • Incorpora: codificador de voz de débitos múltiplos; detector de presença de voz; gerador de ruído de conforto. • Sintetizador de voz baseado do modelo CELP. CUMPRIR RESTRIÇÕES DE ESPAÇO DA FPGA XCV600 • Usado em sistemas de telefonia de voz de banda estreita em sistemas UMTS. • Norma define código em linguagem C para a implementação do codec em vírgula fixa. OPTIMIZAÇÃO DO ALGORITMO DO CODEC AMR • Alteração na pesquisa ao codebook fixo. • Efectuar um maior número de subconjuntos de pesquisas mas sendo estas por si só menos extensas que as originais. • Optimização realizada reflecte-se numa diminuição em 15% do peso computacional do codificador, quando este se encontra a funcionar no seu pior caso para o modo analisado. • Optimização não causou degradação audível no sinal de saída. • Síntese do Or1k teve de ser feita para cumprir limitações de espaço impostas pela FPGA de interesse: 6912 slices! • Unidade composta por Core do CPU, Cache de dados e instruções de 1KB e interface wishbone ocupa 4353 slices. • Unidades adicionais do top-level do Or1k, removidas através do comentário de macros. • Aumento das caches de 1KB para 4KB implica a passagem de 476 para 1726 slices. • Frequência máxima de funcionamento para a unidade básica 17.082 MHz. Aumento de 7 MHz na frequência, • quando se compara o modelo usado para cumprir as restrições com o que contém todas as unidades disponíveis. ORGANIZAÇÃO DO SISTEMA A IMPLEMENTAR ADAPTAÇÃO DO TOP-LEVEL PARA COMUNICAR COM A MEMÓRIA CPU/DSP CORE Wishbone interface Inst. Cache Wishbone interface Arbitrador de acessos Memory Controller Cypress SSRAM Data • Memória da plataforma de desenvolvimento sem interface Wishbone! • Solução: controlador de memórias com suporte para SSRAM com esse interface. A solução não é suficiente. Tentativas de acesso à memória por parte da cache de dados e de instruções obedece a um mecanismo de prioridades. • Proposta : Adicionar um Arbitrador de acessos. • O controlador de memórias implica um aumento em 1407 slices e o arbitrador de acessos 890 slices. • A área total do sistema será de 6650 slices. Restrições de espaço cumpridas! Wishbone interface Addr Wishbone interface Data Cache Wishbone interface Control CONCLUSÕES ADAPTAÇÃO DO CODEC PARA O PROCESSADOR • Escassez de documentação relativa ao correcto manuseamento das ferramentas que auxiliam o processador Or1k. • Familiarização com as ferramentas e o próprio ambiente onde estão integradas foi lenta. • Optimização do algoritmo da norma do codec produziu uma redução de 15% da capacidade máxima de processamento no modo de maior débito. • O uso de macros para se optimizar as operações básicas possibilitou uma redução em 2.3 vezes nas operações necessárias. • As macros possibilitaram a passagem de 317.4 MIPS para 137.5 MIPS no caso do codificador e de 44.66 MIPS para 20.51 MIPS, sendo estes os valores mínimos para o processamento em tempo real. • A fase de substituição das funções por macros, não foi completada devido a erros que surgiram na simulação do programa do codec. Estes erros estão fundamentalmente associados ao compilador. • O uso do compilador que é fornecido pelo processador revelou ser instável. • Para cumprir requisitos de tempo real, um conjunto de instruções dedicadas tem de ser necessariamente incorporado no processador. Destas, aquela de maior importância é a de leitura do acumulador da MAC. Como é inúmeras vezes chamada no interior de ciclos, esta tem um peso importante no processamento já que a sua codificação em assembly é extensa. • Colocação inline das operações básicas do algoritmo, é vital para uma eficiente optimização. • Uso de macros, escritas todas elas em assembly, foi a solução adoptada para a escrita das operações básicas. Estas não retornam valores, pelo que foi necessário reescrever todas as chamadas a estas operações no código. • Durante este processo foram encontrados diversos problemas devido ao compilador e simulador, pelo que não se conseguiu completar esta tarefa na sua totalidade. Optimizações realizadas sobre o codec AMR. (valores acumulados) • No entanto, até ao momento conseguiu-se uma redução de cerca de 60% no processamento total. Em contrapartida a memória de programa aumentou em 11%.

More Related