Processamento Distribuído de Multimídia em Tempo Real com Baixa Latência Nelson Posse Lago 1 , Fabio Kon 1 1 Departamento de Ciência da Computação Instituto de Matemática e Estatística da Universidade de São Paulo http://gsd.ime.usp.br/software/DistributedAudio lago@ime.usp.br, kon@ime.usp.br Resumo. Este artigo discute diversos aspectos a ser considerados no desen- volvimento de aplicações distribuídas para o processamento de multimídia com necessidade de baixa latência. Além disso, descreve a implementação de um me- canismo para a distribuição de algoritmos de processamento de sinais de áudio em ambiente Linux desenvolvido de acordo com os problemas levantados. Inicialmente, caracterizamos aplicações para o processamento de multimídia com necessidade de baixa latência como aplicações de tempo real firme e que devem operar sob a gerência direta das interrupções periódicas dos dispositi- vos de hardware. A seguir, descrevemos uma técnica adequada para a troca de dados via rede com baixa latência baseada na idéia de janelas deslizantes. Finalmente, propomos a utilização de CORBA para tarefas não-dependentes do tempo e discutimos as características do sistema de processamento de áudio implementado. 1. Introdução Em diversos sistemas computacionais voltados para o processamento de multimídia (tais como sistemas interativos para a criação e edição de conteúdo multimídia, em particular áudio, ou sistemas para o reconhecimento de padrões em mídia contínua), é desejável a possibilidade de operação em tempo real e com baixa latência (onde “baixa latência”, em geral, significa “abaixo do limiar perceptível pelo usuário”). Um exemplo simples dessa situação é a gravação de um instrumento acústico processado (por exemplo, uma guitarra elétrica sobre a qual é aplicado um efeito em tempo real): ao mesmo tempo em que executa seu instrumento, o músico precisa ouvir o som que está sendo produzido; se a latência do processamento é muito grande, o músico terá dificuldades para a execução. Outro exemplo possível é um jogo interativo onde a imagem dos jogadores é capturada por uma câmera e apresentada na tela do jogo. O limiar de percepção da latência varia grandemente de acordo com a situação e o usuário e, aparentemente, não há estudos conclusivos a respeito, mas parece ser recomendável que ela seja menor que 5ms 1 nas aplicações mais críticas. 1 De fato, no caso do áudio, se o som processado for misturado de alguma maneira com o som original, distorções no sinal semelhantes às provocadas por fenômenos acústicos (tais como comb filtering) podem ocorrer. Sobre comb filtering e distorção acústica, veja [D’Antonio, sd].