Vous êtes sur la page 1sur 9

IEEE LATIN AMERICA TRANSACTIONS, VOL. 2, NO.

1, MARCH 2004 1

Tcnicas de Reconstruo de Pacotes Aplicadas


Codificadores de Forma de Onda para VoIP
Implementao em Tempo Real
M. V. Ribeiro, Student Member, IEEE

 conclusivos so reunidos e apresentados na seo 5.


Abstract This article focuses on a real time implementation
of several signal processing techniques into a DSP board to verify II. CRITRIOS PARA A ESCOLHA DE UM PROCESSADOR DSP
their suitability for VoIP applications. The main processing
techniques addressed in this contribution are: the standard De modo geral, a escolha de um processador depende
G.722.1 speech coding from ITU-T; the RITW solution to principalmente da aplicao em questo. Assim sendo, vrios
reconstruct the lost speech segments in a transmission through IP critrios devem ser considerados a fim de facilitar a
network; and a recognition approach based on neural network to especificao e a seleo adequada de um dado processador
classify the types of speech segments. In addition, some key DSP. Entre os principais critrios, salientam-se o formato
criteria are discussed to facilitate the hard task of choosing an
aritmtico do DSP, a largura do barramento, a velocidade de
appropriate DSP solution for a target application.
processamento, a organizao da memria, a facilidade de
Index Terms speech communication, speech coding, desenvolvimento, o suporte para multiprocessadores, o
Internet, interpolation, signal reconstruction, wavelet transform, gerenciamento de energia e, finalmente, o item mais
neural network, multimedia communication and digital signal importante, o custo [6].
processors. As sees a seguir discutem cada um dos critrios citados
acima de forma a oferecer uma compreenso mais ampla das
I. INTRODUO possibilidades e limites dos processadores, favorecendo, assim

R ecentemente, processadores DSP tm sido aplicados em


diferentes reas devido aos custos decrescentes e
significativos aumentos de sua capacidade de processamento
uma escolha apropriada aplicao alvo.
A. O Formato aritmtico dos processadores DSP
[1]-[2]. Verses novas e sofisticadas so desenvolvidas e Uma das caractersticas fundamentais dos processadores
lanadas no mercado a cada dia com o objetivo de oferecer a DSP o tipo de aritmtica usada. A mais usada geralmente a
soluo mais adequada s aplicaes em questo. No entanto, aritmtica em ponto fixo, onde os nmeros so representados
rarssimas so as contribuies que tratam de critrios para a por inteiros correspondendo ao intervalo entre 1.0 e +1.0.
seleo de um processador DSP que atendam aos requisitos Alguns processadores DSP, no entanto, fazem uso da
exigidos no projeto em desenvolvimento. Nesse contexto, a aritmtica em ponto flutuante [7], onde os valores so
seo 2 do presente trabalho discute os principais critrios a representados por uma mantissa e por um expoente
serem considerados na escolha de um processador DSP. Tais ( mantissa u 2 exp oente ), sendo a mantissa uma valor fracionrio
critrios, quando utilizados de maneira apropriada, conduzem no intervalo entre 1.0 e +1.0, enquanto o expoente um
a escolhas coerentes e adequadas. inteiro que especifica o lugar do ponto binrio, anlogo ao
Po outro lado, a seo 3 reune as principais caractersticas da ponto decimal nos nmeros em base 10.
VoIP (Voice over IP) de forma a fundamentar teoricamente a A aritmtica em ponto flutuante um mecanismo mais
implementao de um prottipo para telefonia IP, o qual flexvel e geral do que a aritmtica em ponto fixo, pois os
discutido na seo 4. Como ser apontado, tal implementao sistemas projetados por ela tm acesso a uma grande faixa
em DSP e PC contempla algoritmos de reconstruo de dinmica de valores. Desta forma, os processadores DSP em
pacotes e de classificao de segmentos de sinais propostos ponto flutuante so geralmente mais fceis de programar do
em [3]-[4] juntamente com o codec G.722.1 da ITU-T [5]. O que os processadores em ponto fixo. No entanto, cumpre dizer
codec G.722.1 implementado a fim de avaliar as restries que os processadores com aritmtica em ponto flutuante
de tempo real consideradas no desenvolvimento das apresentam custo e consumo de energia superiores devido
aplicaes VoIP e telefonia IP. Por fim, alguns comentrios complexidade de hardware necessria sua implementao. J
para os processadores em ponto fixo, faz-se necessria a
correta adequao numrica dos sinais nos diferentes estgios
This work was supported in part by FAPESP under Grant 01/08513-0 and de processamento para no gerar valores fora da faixa
CNPq from Brazil.
Moiss V. Ribeiro is with DECOM/FEEC/UNICAMP, P. O. Box: 6101, dinmica limitada.
Zip Code 13 081 970, Brazil (e-mail: moviribeiro@yahoo.com.br) A maioria das aplicaes DSP de produo em larga escala
2 IEEE LATIN AMERICA TRANSACTIONS, VOL. 2, NO. 1, MARCH 2004

faz uso dos processadores em ponto fixo, pois a prioridade a Instruction Word) [8] executam mltiplas instrues por ciclo.
minimizao dos custos e do consumo de energia. Para o Comparando-se o desempenho entre os processadores
alcance deste objetivo, necessrio determinar as faixas convencionais e os processadores com arquitetura VLIW,
dinmicas e a preciso adequada s aplicaes a serem obtem-se resultados irreais, j que estes possuem arquiteturas
desenvolvidas atravs de simulaes. J os processadores em completamente diferentes. At mesmo quando a comparao
ponto flutuante so recomendados para aplicaes DSP, entre processadores DSP convencionais, as taxas de MIPS
sensveis preciso, com uma maior demanda de faixa apresentam resultados que no refletem a realidade [9]-[10].
dinmica ou com foco na facilidade de desenvolvimento, em Alguns problemas encontrados para a avaliao destes
detrimento do custo. processadores a partir da medida MIPS so discutidos a
seguir.
B. Tamanho das palavras de dados
Alguns processadores DSP possibilitam o deslocamento de
Todos os processadores DSP em ponto flutuante usam vrios bits em uma nica instruo, enquanto que outros
palavras de dados com 32 bits. Como exemplo, pode-se processadores executam esta tarefa utilizando um ciclo de
destacar os processadores TMS320C67x da Texas Instruments instruo para cada deslocamento de bit. Alm disso, alguns
(TI). Para os processadores DSP em ponto fixo, o tamanho processadores DSP executam o deslocamento de dados em
mais comum de 16 bits, que o caso dos TMS320C62x e paralelo, ou seja, buscam os operandos e executam as
dos TMS320C64x, igualmente da TI. H tambm os instrues simultaneamente. Resta destacar que os
processadores DSP com 20 ou 24 bits, como os da famlia processadores DSP de ltima gerao possuem duas ou mais
ZR3800x da Zoran e da famlia DSP563xx da Motorola, MAC (Multiply Accumulate Unit) que executam operaes em
respectivamente. paralelo.
relevante ressaltar ainda que o tamanho das palavras De forma a tornar a anlise de desempenho uma tarefa com
usadas nos processadores DSP tem um impacto maior no seu resultados mais representativos utilizam-se benchmarks
custo, visto que este influencia diretamente as dimenses e o standard [9]. Os testes banchmarks fazem uso de diferentes
nmero de pinos necessrios no chip, bem como o tamanho conjuntos de algoritmos de processamento de sinais para
dos dispositivos de memria externa conectados aos avaliar a capacidade de processamento dos diferentes
processadores DSP. Com processadores DSP de ponto fixo de processadores DSP. Eles possibilitam ainda a anlise
16 bits possvel realizar operaes a 32 bits, a partir da comparativa confivel e representativa dos diversos
escolha criteriosa de algumas instrues, porm, com processadores DSP disponveis no mercado.
consumo maior de ciclos de relgio. Alm das informaes apresentadas e recomendadas,
Para as aplicaes DSP onde predominam operaes algumas questes merecem ainda ser consideradas. Deve-se
aritmticas de baixa preciso, o ideal escolher um atentar quanto ao uso dos termos milhes de operaes por
processador de 16 ou 20 bits. O uso de rotinas para realizar segundo (millions of operations per second MOPS) e
operaes em 32 bits poder ser considerado se alguma parte milhes de operaes em ponto flutuante por segundos
do programa necessitar de uma preciso maior. (millions of floating-point operations per second MFLOPS),
importante destacar, entretanto, que nem sempre os pois os fabricantes tm idias diferentes quanto definio do
tamanhos das palavras de dados e de instruo so iguais. Por termo operao. Por exemplo, alguns fabricantes afirmam
exemplo, os processadores DSP da famlia DSP ADSP-21xx, que seus processadores em ponto flutuante tem a taxa de
da Analog Devices usam tamanho de 16 bits para dados e 24 MFLOPS como sendo duas vezes a taxa de MIPS. A
bits para instrues. justificativa para esta afirmao que estes processadores so
C. Velocidade de processamento capazes de executar paralelamente as operaes de
Uma questo chave para a adequao de um processador multiplicao e de adio em ponto flutuante. Uma outra
DSP a uma aplicao particular a velocidade de execuo questo relevante refere-se taxa de execuo de instrues
das instrues. Desta forma, um parmetro fundamental para que pode ser igual ao clock de entrada do processador DSP ou
realizar esta anlise o tempo de ciclo de instruo do at um quarto de sua freqncia. Alm disso, muitos dos
processador definido como a quantidade de tempo necessria novos processadores DSP apresentam circuitos duplicadores
execuo das instrues rpidas. de clock ou PLL (phase-locked loops) que permitem o uso de
O recproco do tempo de ciclo de instruo dividido por clocks externos de baixa freqncia e gerao interna de altas
um milho e multiplicado pelo nmero de instrues freqncias.
executadas por ciclo chamado de processors peak D. Organizao da memria
instruction execution rate e dado em milhes de instrues A organizao do sistema de memria do processador tem
por segundo (million instructions per second - MIPS). No um grande impacto no seu desempenho. Por exemplo, as
entanto, um problema encontrado nesse parmetro de anlise MACs rpidas buscam uma palavra de instruo e duas
de desempenho o custo computacional na execuo de uma palavras de dados a cada ciclo de instruo. Para que tais
instruo rpida que pode variar enormemente para os vrios tarefas sejam realizadas, existem uma variedade de recursos
tipos de processadores disponveis. Por exemplo, os disponveis, a saber:
processadores DSP baseados na arquitetura VLIW (Very Long
RIBEIRO : PACKETS RECONSTRUCTION PROPOSALS APPLIED 3

x memrias com mltiplos barramentos;


x memrias de dados e de programas separadas,
representando a arquitetura Harvard [39] e suas
derivaes encontradas principalmente nos processadores
DSP atuais;
x memrias cache de instruo e de dados.
Um fator importante o tamanho da memria on-chip e
off-chip disponvel. As memrias tendem a ser menores na
maioria dos processadores em ponto fixo, apresentando
tamanhos de memria interna entre 4K e 64K words e
pequenos barramentos de acesso memria. Muitos
processadores DSP em ponto fixo apresentam barramento de
endereamento de 16 bits, o que limita o acesso memria
externa. Na verdade, geralmente, a melhor combinao de
organizao, tamanho e nmero de barramentos externos da
memria depende dos requisitos da aplicao DSP.
E. Facilidade de desenvolvimento
O grau de facilidade de desenvolvimento de uma aplicao
Figura 1. Interao das ferramentas de desenvolvimento para as aplicaes
DSP depende exclusivamente dos objetivos a serem DSP disponveis no mercado.
alcanados. Por exemplo, em pesquisas ou na elaborao de
prottipos, o principal requisito a utilizao de ferramentas Em relao s aplicaes DSP com o uso de compiladores
que sejam de fcil manuseio. Por outro lado, por exemplo, de linguagem em alto nvel, melhores resultados so
uma companhia envolvida no desenvolvimento de um telefone alcanados para processadores DSP em ponto flutuante do que
celular para 3G, com restries de custo no produto, deve em ponto fixo, pelas seguintes razes:
abrir mo das facilidades de desenvolvimento em face a uma x as linguagens de alto nvel no fornecem estrutura de
oferta de processadores DSP com menos recursos, porm que programao otimizada para a aritmtica em ponto fixo;
se enquadrem na planilha de custo adotada. x os processadores DSP em ponto flutuante tm
Para realizar a escolha de um processador DSP alguns itens caractersticas mais regulares, menos conjuntos de
que contemplam a facilidade de desenvolvimento devem ser instrues com restries e, conseqentemente, melhores
igualmente considerados. So eles: compiladores.
x ferramentas de software: assemblers, linkers, Os processadores em ponto flutuante, por sua vez,
simuladores, depuradores, compiladores, biblioteca de normalmente acessam maiores espaos de memria que os
cdigos e sistema de operao e monitoramento em processadores em ponto fixo, ou seja, os cdigos gerados pelo
tempo real; compilador so maiores que os gerados a partir do cdigo
x ferramentas de hardware: emuladores e placa de testes; fonte elaborado com a linguagem Assembly.
x ferramentas de alto-nvel: interface dos ambientes de Os processadores DSP baseados na arquitetura VLIW so
programao e gerao de cdigos com recursos e os mais simples, pois tm um conjunto de instrues
facilidade de utilizao, tal como o CCS (Code Composer Orthogonal RISC e grandes registradores de arquivos que
Studio) da Texas Instruments [11]. A Fig. 1, adaptada de tornam possvel a compilao otimizada dos cdigos
[12], mostra a interao entre as diferentes ferramentas elaborados em linguagem de alto nvel, tal como a linguagem
para o desenvolvimento de uma aplicao DSP. ANSI C. No entanto, estes cdigos ainda so ineficientes
Uma outra questo fundamental a ser considerada na quando comparados aos cdigos gerados e otimizados
escolha do processador DSP a linguagem de programao a diretamente em Assembly. A combinao de cdigos na
ser utilizada. As escolhas possveis so as linguagens linguagem ANSI C com algumas sees, cujo processamento
Assembly, ANSI C e Ada [13]-[15], ou a combinao das intensivo, escritas com a linguagem Assembly, uma
mesmas. Devido s restries de custo e velocidade de soluo normalmente adotada para estes processadores.
processamento, atualmente a grande maioria dos programas Alguns resultados interessantes so obtidos com os
DSP so ainda elaborados com a linguagem Assembly. Desta compiladores de programas em C, da Texas Instruments,
forma, gasta-se muito tempo na otimizao de cdigos em aplicado aos processadores DSP TMS320C6xx. O
Assembly. Esta uma realidade bastante comum nas desempenho alcanado nos benchmarks standard
aplicaes comerciais tais como celulares, CD player selecionados pela TI para teste foi de 80% a 95% em relao
portteis, telefones IP, controladores de geladeiras, entre aos cdigos escritos diretamente com a linguagem Assembly.
outras, na medida que so bastantes sensveis aos acrscimos Finalmente, os fabricantes disponibilizam ferramentas de
no custo final dos produtos devido, principalmente, grande emulao de hardware e processadores DSP com circuitos de
concorrncia existente. emulao e depurao acessados atravs de uma interface
serial padronizada, chamada de IEEE 1149.1 JTAG standard
4 IEEE LATIN AMERICA TRANSACTIONS, VOL. 2, NO. 1, MARCH 2004

[16]. Atravs desta interface serial possvel inserir x a elaborao de cdigos otimizados para a aplicao em
breakpoints, assim como observar e modificar o contedo dos questo.
registradores internos do processador. Alm disso, placas de Desta forma, a desconsiderao das caractersticas de
desenvolvimento so disponibilizadas, tais como as placas gerenciamento de energia torna difcil a obteno de uma
C6201 Evaluation Module (EVM) Bundle [17] e C6211 DSP figura de consumo do processador utilizado, j que o consumo
Starter Kit [18] da Texas Instruments, para a realizao de de energia pode variar de acordo com o tipo de instruo
simulaes em tempo real, antes que o hardware do projeto executada. A Texas Instruments, por exemplo, fornece
esteja implementado. Possibilita-se, assim, o aumento da informaes detalhadas sobre o consumo de energia associado
produtividade no desenvolvimento de novos projetos. aos tipos de instrues e configuraes de seus processadores
com o intuito de prover o engenheiro de projetos com
F. Multiprocessadores DSP
informaes necessrias elaborao de um prottipo de
Algumas aplicaes com o uso computacional intensivo, qualidade [20].
tais como as verificadas em aplicaes DSP em radar e sonar,
normalmente necessitam de mltiplos processadores. No H. Custo
entanto, sua utilizao no trivial e para o seu uso eficiente O preo dos processadores DSP o fator principal nos
deve-se considerar o seguinte: equipamentos com produo em larga escala, pois est
x a facilidade de interconexo em termos de projeto do diretamento relacionado ao custo final do produto.
circuito de comunicao entre os processadores DSP e o Normalmente, as empresas usam processadores DSP de baixo
custo de implementao da soluo; custo de forma a no ultrapassar os os custos previstos no
x a anlise do desempenho da interconexo a partir do projeto em questo, mesmo que tal deciso implique em pouca
overhead, latncia e throughput da comunicao entre os flexibilidade ou dificuldade de programao e de
processadores DSP. desenvolvimento. Entre as famlias disponveis, as de menor
Como exemplo de DSP voltados aplicaes com custo tende a ser formada de processadores com menor
mltiplos processadores, apresentam-se os processadores da memria interna e menor desempenho.
famlia ADSP-2106x, da Analog Devices, os quais contm Um fator importante no preo dos processadores DSP o
hardware de uso geral para sistemas com mltiplos custo do invlucro de empacotamento. Por exemplo, os
processadores. invlucros PQFP (Plastic Quad Flat Pack) e TQFP (Thin
Quad Flat Pack) podem ser muito mais baratos que um
G. Gerenciamento do consumo de energia
invlucro PGA (Pin Grid Array) [6].
Com o aumento explosivo do uso de processadores DSP importante destacar ainda que os preos dos
em equipamentos portteis, a utilizao de recursos que processadores DSP esto cada vez mais baixos e so
possibilitam o gerenciamento do consumo de energia e sua significativamente dependentes da quantidade a ser adquirida.
conseqente reduo por instruo executada tm influenciado
as principais implementaes DSP (telefones celulares, etc). III. CARACTERSTICAS DE VOIP
Para prover uma viso geral que possibilite um
A princpio, o termo Voz sobre IP pode ser definido como
entendimento dos principais recursos de gerenciamento de
a capacidade de realizao de chamadas telefnicas sobre uma
energia presentes em alguns processadores DSP, tais como os
rede de comutao de pacotes, sem garantia de qualidade de
da famlia TMS320C54x [19] e TMS320C55x [20],
servio e com capacidade de interoperabilidade com diferentes
necessrio o conhecimento das seguintes tcnicas de
tipos de redes. VoIP pode ser realizada de trs formas distintas
gerenciamento de energia [21]-[22]:
[4]:
x a utilizao de baixas tenses de alimentao, tais como
Atravs de um PC: Conceitualmente a mais simples.
3.3, 2.5 e 1.8 volts nas diferentes verses disponveis,
Basicamente faz uso dos equipamentos multimdia disponveis
possibilitando um consumo de energia muito abaixo dos
nos computadores, tais como microfones, placas de som e
encontrados em processadores DSP alimentados com 5
alto-falante;
volts;
Atravs de um dispositivo DSL (Digital Subscriber Line):
x os modos Sleep ou Idle possibilitam o desligamento
Neste caso, o uso do PC dispensvel. O telefone conectado
do relgio do processador em algumas partes internas
Internet atravs de um conector RJ-11 presente nos terminais
reduzindo o consumo de energia quando no h
do dispositivo DSL;
processamento em execuo;
Telefone IP: so os telefones tradicionais com conexo direta
x o divisor de tempo de ciclo de relgio programvel que Internet e com diferentes algoritmos de processamento de
configura diferentes valores de freqncias, via software, voz implementados em processador digital de sinais.
para se obter freqncia de clock mnima para uma tarefa As sees a seguir apresentam algumas informaes
particular; relevantes sobre VoIP.
x o controle dos perifricos que capacita o software DSP a
desabilitar dispositivos perifricos que no esto em uso e A. Cenrios para Aplicao de VoIP
habilit-los quando necessrio; Existem cinco cenrios possveis para transmisso de voz
RIBEIRO : PACKETS RECONSTRUCTION PROPOSALS APPLIED 5

sobre redes IP, PSTN (Packet Switched Telephone Network) e fim a fim; d) a utilizao de tcnicas de codificao de sinais
IP-PSTN (hbridas) [4], conforme descrito a seguir e ilustrado de voz e reconstruo de pacotes, enfatizando o uso eficiente
na Fig. 2: da largura de banda e a inteligibilidade do sinal.
Cenrio 1: representa o uso das redes PSTN como o nico
C. Desenvolvimento de Produtos VoIP
meio de transmisso de voz;
Cenrio 2: representa o futuro da telefonia, pois configura a De um modo geral, o desenvolvimento dos produtos para
realizao de ligaes telefnicas unicamente sobre redes por VoIP leva em conta quatro fatores importantes [4]:
comutao de pacote (redes IP); x a qualidade do sinal de voz comparada aos padres
Cenrio 3: configura a atual situao da VoIP, pois os dois disponvel para redes PSTN, mesmo considerando-se
terminais de telefonia envolvidos fazem uso de diferentes redes com diferentes nveis de QoS;
protocolos de comunicao para realizarem acesso s redes IP x a diminuio dos efeitos de latncia da rede, perda de
e PSTN; pacotes e ruptura de conexes, mesmo durante perodos
Cenrios 4 e 5: abrangem os protocolos utilizados na interface de congestionamentos ou quando mltiplos usurios
de cada terminal, enquanto outros protocolos so utilizados compartilham os mesmos recursos;
pelos backbones das redes IP e PSTN. x a interoperabilidade dos servios fornecidos pelas redes
IP e PSTN;
3
x o gerenciamento do sistema, a segurana e a forma de
PC
Telefone
bilhetagem.
Funes de Interoperabilidade

4 Os requisitos tcnicos bsicos para suportar bem as


aplicaes de VoIP so [4]: a) algoritmos de compresso de
Redes PSTN

PC 2 Telefone sinais de udio e voz; b) algoritmos para a supresso de


Redes IP

silncio; c) garantia de QoS; d) sinalizao para trfego de


PC Telefone
voz; e) comutao para a rede PSTN; f) algoritmos para
5
controle ou cancelamento de eco acstico; g) algoritmos de
reconstruo de pacotes.
PC Telefone
1 D. Softwares de Funcionalidade para Prover VoIP
Os mdulos de processamento necessrios funcionalidade
PC Telefone
de um terminal VoIP so os seguintes [4]:
Figura 2. Cenrios possveis para a transmisso de sinais de voz. x Processamento da voz (Voice Processing): realiza a
codificao, decodificao, cancelamento de eco acstico,
B. QoS em Redes IP
deteco de voz, gerao e deteco de tons DTMF,
A garantia de QoS para uma aplicao em tempo real reconstruo de pacotes, aquisio e playout do sinal de
atravs da Internet, tal como VoIP, deve levar em voz;
considerao os seguintes parmetros [23]: a) a largura de x Processamento de chamadas (Call Processing): atua
banda sob demanda; b) o atraso fim a fim; c) A taxa de como um gateway de sinalizao, permitindo que as
variao do atraso (Jitter); d) taxas aceitveis de erro ou de chamadas sejam estabelecidas atravs de uma rede de
perda sem retransmisso. Uma classificao de QoS em pacotes;
comunicao multimdia (voz, udio e vdeo) [4] x Processamento de pacotes (Packet Processing): processa
apresentada a seguir: os pacotes de sinalizao e de voz, adicionando um
x conversao fim a fim: contempla as aplicaes de cabealho de transporte apropriado antes do envio pela
telefonia e videoconferncia. caracterizada pelas rede IP;
restries sobre os atrasos fim a fim; x Gerenciamento de rede (Network Management): fornece a
x servios de broadcasting : a principal diferena entre este funcionalidade dos agentes de gerenciamento ao permitir
tipo de servio e a conversao bidirecional a sua maior a bilhetagem, o controle remoto de falha, a configurao,
tolerncia a atrasos; a segurana, o atendimento remoto e o acesso aos
x aplicaes sob demanda: as informaes so armazenadas diretrios de discagem.
e, posteriormente, entregues aos usurios podendo tolerar
grandes atrasos. IV. DESCRIO DA IMPLEMENTAO DO PROTTIPO PARA
Os nveis de garantia para prover QoS na classificao TELEFONIA IP
acima so os seguintes [4]: a) garantia determinstica; b)
Os processadores escolhidos para implementao do codec
garantia estatstica; c) melhor esforo.
G.722.1 da tcnica de reconstruo de pacote, baseada na
As aes a serem tomadas para prover garantia de QoS so
transformada wavelet (tcnica RITW), e do classificador de
as seguintes [4]: a) o aumento da velocidade e da largura de
segmento de sinais de voz propostos em [3]-[4] foram o
banda; b) a utilizao dos modelos de arquitetura IntServ,
TMS320C6201 e TMS320C6211 [18]. Entre as placas de
DiffServ e o protocolo MPLS (Multiprotocol label Switching);
desenvolvimento disponveis no mercado que utilizam estes
c) a elaborao de mecanismos alternativos para garantir QoS
6 IEEE LATIN AMERICA TRANSACTIONS, VOL. 2, NO. 1, MARCH 2004

processadores, optou-se pelas placas EVM C6201 e DSK ControladorCodificao: Neste bloco esto contidas as rotinas
C6211. Os critrios utilizados para esta seleo foram os para habilitar o bloco ChaveI, a partir da informao de
seguintes: classificao dos sub-quadros de sinal de voz que permite o
x a obteno de uma placa que permitisse a implementao processo de embaralhamento, codificao e envio do quadro
dos algoritmos sem uma grande preocupao de custo codificado para o host atravs de uma conexo HPI do DSP
computacional juntamente ao fabricante, no caso a TI; [30]-[31], implementada no bloco DSPHostCom. Alm disso,
x a escolha de um processador com aritmtica em ponto o ControladorCodificao configura o codificador G.722.1
fixo e 16 bits, pois os mesmos tm custo menor que os [6] para as taxas de 16k, 24k e 32kbits/s e controla a execuo
processadores com aritmtica em ponto flutuante; das rotinas presentes no bloco Microfone, a partir das
x um ambiente de desenvolvimento de fcil familiarizao e informaes recebida do PC.
aprendizado. Por exemplo, o CCS da Texas Instruments ChaveI: realiza o embaralhamento SIF 2 [3]-[4] das
que se constitui num excelente ambiente de amostras pares ou mpares a serem submetidas ao processo de
desenvolvimento de algoritmos DSP; codificao, executado no bloco CodificadorG.722.1, de
x a necessidade de uma memria interna de tamanho acordo com a sinalizao do ControladorCodificao,.
razovel que minimizasse a quantidade de acessos BufferAmostrasPares: armazena as amostras pares do quadro
memria externa ao processador e, conseqentemente, o de 40ms ou 640 amostras a serem submetidas codificao,
uso eficiente da capacidade de processamento do DSP; ou seja, armazena 20ms ou 320 amostras do sinal de voz.
x a possibilidade de implementao de vrios canais, assim BufferAmostrasImpares: armazena as amostras mpares do
como em [23]-[24]; quadro de 40ms ou 640 amostras a serem submetidas
x a capacidade de processamento. codificao, ou seja, armazena 20ms ou 320 amostras do sinal
A Fig. 3 mostra o diagrama de blocos da implementao de voz.
em DSP dos algoritmos de processamento de sinais de voz no CodificadorG.722.1: contm as rotinas para realizar a
transmissor. Estes algoritmos foram implementados com a codificao dos buffers de amostras pares e mpares de acordo
linguagem ANSI C no ambiente de programao CCS da com a norma G.722.1 da ITU-T. Os quadros codificados so
Texas Instruments. O processador considerado foi o entregues ao bloco DSPHostCom.
TMS320C6201. DSPHostCom: realiza a comunicao entre o DSP e o PC
Os blocos do diagrama do codificador, conforme mostrado atravs de uma conexo HPI. responsvel pelo envio dos
na fig. 3, realizam as tarefas especificadas a seguir: quadros de amostras pares e mpares codificadas para o PC.
Microfone: Este bloco realiza a aquisio dos quadros de Alm disso, ele transfere as informaes e sinalizaes do PC
40ms ou 640 de sinal de voz, submetido a taxa de amostragem para o bloco ControladorCodificao.
igual a 16kHz e quantizados a 16 bits. Para realizar esta tarefa, Os blocos presentes no diagrama de blocos do
so implementadas as rotinas de configurao do Codec decodificador, mostrado na Fig. 5, realizam as seguintes
CS4231A da placa EVM C6201 [25] e do McBSP [26]-[27] tarefas:
para a comunicao entre o DSP e o codec de udio. Alm DSPHostCom: Alm das tarefas especificadas acima para o
disso, os canais de DMA 1 e 2 so configurados para a codificador, este bloco recebe os quadros vindos do PC,
realizao da aquisio dos quadros de amostras de voz atravs da conexo HPI, e envia e recebe a sinalizao para
utilizando o conceito ping-pong [28]. garantir a decodificao dos quadros codificados e recebidos
ClassificaoQuadroVoz: Neste bloco o quadro de 40 ms ou do PC.
640 amostras de sinal de voz dividido em 4 sub-quadros de ControladorDecodificao: Recebe o quadro codificado
10ms. Cada sub-quadro de 10ms submetido ao algoritmo juntamente com as informaes de codificao para realizar a
baseado em redes neurais para a classificao em silncio, voz reconstruo dos pacotes perdidos ou o desembaralhamento
sonora ou surda proposta em [3]-[4]. A Fig. 4 mostra a dos quadros recebidos, se no houver perda.
estrutura da rotina dentro deste bloco. As seguintes BufferAmostrasPares e BufferAmostrasImpares: realizam as
consideraes sobre esta estrutura foram implementadas: mesmas tarefas especificadas no diagrama do codificador.
x se todos os sub-quadros so classificados como silncio, DecodificadorG.722.1: contm os algoritmos para realizar a
ento o quadro de 40ms no submetido ao processo de decodificao dos quadros de amostras pares e/ou mpares. A
embaralhamento, codificao e envio para o PC; decodificao habilitada pelo ControladorDecodificao, a
x se no mximo trs sub-quadros so classificados como partir das informaes de perda dos quadros recebidas do PC.
silncio, ento os quadros classificados como silncio, ChaveI: de acordo com a sinalizao do
por sua vez, so especificados como surdos e os ControladorDecodificao executa o processo de
processos de embaralhamento, codificao e envio dos desembaralhamento ou de reconstruo de pacotes de acordo
quadros codificados para o PC so realizados. A com a sinalizao do ControladorDecodificao. Se por um
especificao dos sub-quadros de silncio como surdos lado a escolha da opo de desembaralhamento significa que
realizada para informar ao controlador de decodificao no houve perda de pacotes durante a transmisso, por outro,
que estes sub-quadros sero reconstrudos a partir da a considerao da reconstruo de pacotes executada quando
rotina para a reconstruo de voz surda. h perda de pacotes.
RIBEIRO : PACKETS RECONSTRUCTION PROPOSALS APPLIED 7

BufferAmostras Codificador
Pares G.722.1

Microfone ChaveI DSPHostCom

ClassificaQuadro BufferAmostras Codificador


Audio Impares G.722.1

Controlador
Codificaao

Figura 3. Diagrama de bloco do codificador implementado no DSP.

Desembaralhamento: contm a rotina que realiza o linguagem Assembly para otimizar o cdigo.
desembaralhamento dos quadros de amostras pares e mpares A utilizao da linguagem Assembly relevante para se
decodificadas. obter um melhor desempenho. No entanto, alguns problemas
ReconstruoPacote: contm as rotinas para realizar a de ordem prtica so observados, tais como:
reconstruo das amostras pares ou mpares com a tcnica x as rotinas em Assembly so dependentes da estrutura do
RITW para reconstruo de pacotes proposta [3]-[4]. A DSP;
estrutura implementada dentro deste bloco ilustrada na Fig. x a elaborao de rotinas em Assembly requer bastante
6. A reconstruo dos pacotes de amostras pares ou mpares conhecimento da mesma e da estrutura interna do DSP
ocorre em sub-quadros de 10ms armazenados nos blocos Sub- para se obter melhor desempenho do DSP.
QuadroiComPerda, i 1,...,4 . Posteriormente, os blocos A partir das consideraes acima, pode-se argumentar que
AmostrasSonoras e AmostrasSurdas armazenam os quadros a linguagem Assembly deve ser utilizada quando o programa
de amostras decodificados com perdas de acordo com a em questo implementado para alguma aplicao comercial,
classificao efetuada pelo algoritmo de classificao de j que o foco neste caso, a minimizao dos custos de
segmentos de voz no transmissor. Finalmente, os sub-quadros implementao dos equipamentos ou dispositivos. Por
so submetidos ao algoritmo de reconstruo contido nos exemplo, em [23] apresentada uma implementao de vrios
blocos Sub-QuadroiReconstrudo, i 1,...,4 . Os sub-quadros codificadores para 10 canais de telefonia, enquanto que a
reconstrudos so ordenados no bloco QuadroReconstrudo. implementao do codec G.722.1, proposta na presente
ChaveII: este bloco seleciona o quadro de sinal de voz original contribuio, contempla no mximo 4,2 canais, considerando
na sada do bloco Desembaralhamento, se no houve perda de f CPU 200 MHz .
pacotes, ou na sada do bloco ReconstruoPocote se houve A implementao do algoritmo RITW para a reconstruo
perda de pacotes, a partir da sinalizao do dos segmentos de sinais de voz foi bastante simples, pois a
ControladorDecodificao. mesma foi previamente implementada no MatLab com
AutoFalante: contm as rotinas para realizar a transferncia do aritmtica de 16 bits e, posteriormente, transladada para o
sinal de voz reconstrudo ou desembaralhado, via DMA, entre DSP [3]-[4].
a memria de dados e o auto-falante acoplado sada do CculoNz
codec CS4231A.
RedeNeural Classificao
O uso das tcnicas de otimizao de algoritmos DSP, Sub-Quadro1 ClculoEs
MLP
Decisor
Sub-Quadro1
disponveis em [31]-[36], possibilitou a diminuio do tempo
ClculoC1
de execuo das rotinas implementadas nos blocos descritos
acima para 7.85ms. Para se atingir os valores de otimizao CculoNz
mencionado anteriormente foi considerada a seguinte
RedeNeural Classificao
metodologia prtica: Sub-Quadro2 ClculoEs
MLP
Decisor
Sub-Quadro2
1o Passo: Limpar o cdigo ou torn-lo o mais simples possvel;
ClculoC1
2o Passo: Inserir intrinsic para operaes em 32 bits;
3o Passo: Inserir adaptaes da intrinsic de 32 bits para CculoNz

realizar operaes em 16 bits;


RedeNeural Classificao
4o Passo: Rearranjar os laos para que vrias operaes SubQuadro3 ClculoEs
MLP
Decisor
Sub-Quadro3

possam ser executadas em paralelo;


ClculoC1
5o Passo: Utilizar o conjunto de opes de configurao para a
compilao e a otimizao do cdigo no CCS, visando o CculoNz

equilbrio entre a velocidade e/ou o tamanho do cdigo. RedeNeural Classificao


sub-Quadro4 ClculoEs Decisor
Entretanto, deve-se salientar que tais procedimentos no MLP Sub-Quadro4

contemplam a otimizao baseada na mudana da forma de ClculoC1


implementao das rotinas, tais como a modificao da rotina
de execuo da MLT (modulated Lapped transform) [4]-[5], Figura 4. Estrutura interna do bloco ClassificaoQuadroVoz.
implementada no codec G.722.1, e o uso extensivo da
8 IEEE LATIN AMERICA TRANSACTIONS, VOL. 2, NO. 1, MARCH 2004

Bu ffe r Am os tr as De cod icad or De s e m b ar alh a


Par e s G.722.1 m e nto

Con tr olad or
DSPHo s tCo m Ch ave I Ch ave II Au to Falan te
De co dificao

Bu ffe r Am os tr as De co d ificad or Re co ns tr u o
Im p ar e s G.722.1 Paco te

Figura 5. Diagrama de bloco do Decodificador implementado no DSP.

G0 2 g0(n)

Amostras Sub-Quadro1
Sonoras Reconstrudo

Sub-Quadro1 G1 2 g1(n)
ComPerda

Amostras Sub-Quadro1
G0 2 g0(n)
Surdas Reconstrudo

G0 2 g0(n)

Amostras Sub-Quadro2
Sonoras Reconstrudo

Sub-Quadro2 G1 2 g1(n)
ComPerda

Amostras Sub-Quadro2
G0 2 g0(n)
Surdas Reconstrudo

Quadro
G0 2 g0(n) Resconstrudo

Amostras Sub-Quadro3
Sonoras Reconstrudo

Sub-Quadro3 G1 2 g1(n)
ComPerda

Amostras Sub-Quadro3
G0 2 g0(n)
Surdas Reconstrudo

G0 2 g0(n)

Amostras Sub-Quadro4
Sonoras Reconstrudo

Sub-Quadro4 G1 2 g1(n)
ComPerda

Amostras Sub-Quadro4
G0 2 g0(n)
Surdas Reconstrudo

Figura 6. Estrutura implementada no bloco ReconstruoPacote.

Por outro lado, a implementao da rotina de classificao pacotes sem problema de perda apresentada na Tab. 2. A
de segmentos de voz [3]-[4] teve um custo computacional tabela 3 mostra a largura de banda requisitada, pressupondo o
bastante elevado, pois esta realiza vrias operaes em ponto envio dos quadros de amostras pares submetidos ao codec
flutuante e como o processador C6201 de 16 bits, tais G.722.1 e a reconstruo das amostras mpares com a tcnica
operaes consomem bastante ciclos de execuo. RITW.
As colunas 2 e 3 da Tab. 1 mostram os desempenhos, em Como pode ser observado, o codec G.722.1, com algumas
milisegundos, das rotinas implementadas no DSP adaptaes, pode ser usado com taxas equivalentes aos codecs
TMS320C6201 (placa EVM C6201) e no TMS320C6211 para telefonia em banda estreita para canais de comunicao
(placa DSK C6211). A coluna 4, por sua vez, exibe os ganhos com garantia de QoS.
obtidos em porcentagem (%). Estes ganhos informam o TABELA 1.
CUSTO COMPUTACIONAL.
quanto a metodologia prtica foi eficiente em relao
Algoritmos C6201 C6211 Ganho
implementao direta das rotinas nos DSPs. EVM (ms) DSK (ms) (%)
Os algoritmos implementados no PC para interfaceamento Classificador Neural 3.00 3.60 128%
com a placa EVM C6201 e para a comunicao via Internet Embaralhamento 0.05 0.06 146%
com o protocolo UDP (User Data Protocol) foram elaborados Codificador G.722.1 3.99 4.85 331%
com a linguagem de programao C++ [37]-[38]. Decodificador G.722.1 3.86 4.78 335%
A largura de banda necessria para a transmisso dos Reconstruo de Pacotes 0.30 0.36 133%
Desembarralhamento 0.05 0.06 149%
RIBEIRO : PACKETS RECONSTRUCTION PROPOSALS APPLIED 9

TABELA 2. [13] T. Birus, D. Syiek, Optimizing ada compilers for DSP avionics
LARGURA DE BANDA REQUISITADA. applications, DSP Applications, Abril, 1993.
Codificador G.722.1 sem Codificador G.722.1 com [14] Ada C3x Development Tools, http://focus.ti.com/docs/tool/
supresso de silncio supresso de silncio toolfolder.jhtml? PartNumber=C3X-ADA-XX.
16kbits/s 8kbps [15] Ada 95, Certified processor list, http://adaic.org/compilers/cpl/lists/CPL-
ft-frame.html.
24kbtis/s 12kbps [16] IEEE Standards, http://www.techstreet.com/info/ieee.html.
32kbits/s 16kpbs [17] DSP Village - Texas Instruments. http:// dspvillage.ti.com.
TABELA 3. [18] TMS320C6211, http://focus.ti.com/docs/tool/toolfolder.jhtml, 2000.
LARGURA DE BANDA REQUISITADA. [19] B. Kornmeier, D. Gehrke, TPS330x supervising DSP and processor
applications, AAP power management, Texas Instruments Application
Codificador G.722.1 com Perda Codificador G.722.1 com Perda das
Report, SLVA056A, Ago., 2000.
das Amostras mpares Amostras mpares e supresso de
[20] TMS320C55x, Technical overview, Texas Instruments Application
silncio Report, SPRU393, Fev., 2000.
16kbits/s 8kbits/s [21] K. K. Parhi, VLSI digital signal processing systems, New York, Wiley,
12kbtis/s 6kbits/s 1999.
8kbits/s 4kbits/s [22] K. K. Parhi, Approaches to low-power implementations of DSP
systems, IEEE Trans. on Circuits and Systems I: fundamental
Theory and Applications, vol. 48, no. 10, pags. 1214-1224, Out., 2001
V. CONCLUSES [23] X. Fu, Z. Zhang, TMS320C6000 multichannel vocoder technology
demonstration kit host side design, Texas Instruments Application
A presente contribuio reuniu e discutiu os principais Report, SPRA558B, 2000.
critrios a serem considerados para a escolha adequada de um [24] X. Fu, TMS320C6000 multichannel vocoder technology demonstration
DSP. Alm disso, uma implementao em tempo real de kit target side design, Texas Instruments Application Report,
SPRA560B, Fev., 2000.
vrios algoritmos de processamento de sinais [3]-[4] passveis
[25] B. G. Carlson, TMS320C6000 McBSP interface to the CS4231A
de serem implementados numa soluo VoIP foi apresentada. multimedia audio codec, DNA Enterprises, Inc., Texas Instruments
Finalmente, utilizando-se o codec G.722.1 mostrou-se a baixa Application Report, SPRA477, Dez., 1998.
complexidade computacional e a aplicabilidade das tcnicas [26] S. Anjanaiah, TMS320C6000 McBSP initialization, Texas Instruments
Application Report, SPRA488, Nov., 1998.
proposta em [3]-[4] para reconstruir e classificar os segmentos [27] S. Anjanaiah. Using the TMS320C6x McBSP as a high speed
de sinais de voz e para gerar baixas taxas de transmisso. communication port, Texas Instruments Application Report, SPRA455,
May, 1998.
[28] D. Bell, TMS320C6000 DMA Example Applications, Texas
VI. AGRADECIMENTOS Instruments Application Report, SPRA529, Mar., 1999.
O autor agradece Texas Instruments do Brasil, na pessoa [29] E. Biscondi, Implementing the TMS320C6201/C6701/C6211 HPI boot
process, Texas Instruments Application Report, SPRA512, Jan., 1999.
dos amigos Nncio Perrella e Rafael de Souza, pelo apoio e [30] Z. Nikolic, TMS320C6201/6701 DSP host port interface (HPI)
suporte, sem os quais a implementao aqui mostrada no performance, Texas Instruments Application Report, SPRA449A, Abril,
seria possvel. Patrcia Nora de Souza Ribeiro pela preciosa 1998.
[31] Digital Signal Processing Solutions, TMS320C6000 programmers
contribuio na reviso do presente trabalho.
guide, Texas Instruments Application Report, SPRU198D, Maro,
2000.
VII. REFERNCIAS BIBLIOGRFICAS [32] Digital Signal Processing Solutions, Optimizing compiler users
guide. Texas Instruments Application Report, SPRU187I, Abril, 2000.
[1] J. Eyre, The digital signal processor derby, IEEE Spectrum, Junho
[33] R. Scales, ETSI math operations in C for the TMS320C62x, Texas
2001.
Instruments Application Report, SPRA617A, Nov., 2000.
[2] J. Eyre, J. Bier, DSPs court the consumer, IEEE Spectrum, Maro
[34] B. Huber, How to write multiplies correctly in C code, Texas
1999.
Instruments Application Report, SPRA683, June, 2000.
[3] M. V. Ribeiro, Tcnicas de reconstruo de pacotes aplicadas a
[35] R. Scales, Loop partitioning on the TMS320C6x, Texas Instruments
codificadores de forma de onda para VoIP Tcnicas propostas,
Application Report, SPRA517, Feb., 1999.
Revista de Engenharia Eltrica do IEEE Amrica Latina, 2003. (aceito
[36] R. Scales. Nested loop optimization on the TMS320C6x, Texas
para publicao)
Instruments Application Report, SPRA519, Feb., 1999.
[4] M. V. Ribeiro, Tcnicas de reconstruo de pacotes baseadas na
[37] R. C. Leinecker, T. Archer, G. Pease, Visual C++ 6 bible, Hungry
transformada wavelet e nas redes neurais aplicadas a codificadores de
Minds, Inc., 1998.
forma de onda em telefonia IP, Tese de Mestrado, UNICAMP, 2001.
[38] I. Horton, Beginning with visual C++ 6, Wrox Press Inc., 1998.
[5] ITU-T Recommendation G.722.1. Coding at 24 and 32kbit/s for hands-
[39] P. Lapsley, J. Bier, A. Shoham, Ed. A. Lee, DSP Processor
free operation in systems with low frame loss (PREPUBLISHED
Fundamentals : Architectures and Features, IEEE Press Series on Signal
RECOMMENDATION), 09/1999.
Processing, Wiley-IEEE Computer Society, 2001.
[6] Berkely Design Technology Inc., Choosing a DSP processor - white
paper, 2003.
[7] E. Goubault, Static analyses of floating-point operations, in Proc. 8th VIII. BIOGRAPHIES
International Static Analysis Symposium, Julho, 2001.
Moiss Vidal Ribeiro was born in Trs Rios, Brazil,
[8] Berkely Design Technology Inc., DSPs adapt to new challenges - white
in 1974. He received the B.S. degree from the
paper, 2003.
Federal University of Juiz de Fora (1999), and the
[9] Berkely Design Technology Inc., The BDTImark2000: A Summary
M.Sc. degree from the State University of Campinas-
Measure of DSP Speed - white paper, 2003.
UNICAMP (2001), both in Electrical Engineering.
[10] Berkely Design Technology Inc., Evaluating DSP processor
He is now pursuing his Ph.D. degree at UNICAMP.
performance - white paper, 2003.
He was granted Student Awards by both IECON01
[11] Digital Signal processing Solutions, Code Composer Studio - white
and ISIE03. His research interests concern linear
paper, Texas Instruments Application Report, SPRA520, maio, 1999.
and non-linear signal processing techniques applied
[12] Berkely Design Technology Inc., The evolution of DSP processors
to multimedia communication, power quality
white paper, 2003.
evaluation and powerline communicationS.

Vous aimerez peut-être aussi