BRPI0514801B1 - Buffer de-jitter adaptativo para voz sobre ip - Google Patents
Buffer de-jitter adaptativo para voz sobre ip Download PDFInfo
- Publication number
- BRPI0514801B1 BRPI0514801B1 BRPI0514801-4A BRPI0514801A BRPI0514801B1 BR PI0514801 B1 BRPI0514801 B1 BR PI0514801B1 BR PI0514801 A BRPI0514801 A BR PI0514801A BR PI0514801 B1 BRPI0514801 B1 BR PI0514801B1
- Authority
- BR
- Brazil
- Prior art keywords
- packets
- time
- jitter buffer
- packet
- jitter
- Prior art date
Links
- 239000000872 buffer Substances 0.000 claims abstract description 431
- 230000003044 adaptive effect Effects 0.000 claims abstract description 127
- 238000000034 method Methods 0.000 claims abstract description 44
- 230000002123 temporal effect Effects 0.000 claims description 88
- 238000007906 compression Methods 0.000 claims description 61
- 230000006835 compression Effects 0.000 claims description 61
- 238000012545 processing Methods 0.000 claims description 46
- 230000003111 delayed effect Effects 0.000 claims description 42
- 230000003466 anti-cipated effect Effects 0.000 claims description 24
- 230000005055 memory storage Effects 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 8
- OFPXSFXSNFPTHF-UHFFFAOYSA-N oxaprozin Chemical compound O1C(CCC(=O)O)=NC(C=2C=CC=CC=2)=C1C1=CC=CC=C1 OFPXSFXSNFPTHF-UHFFFAOYSA-N 0.000 claims description 6
- 229960002739 oxaprozin Drugs 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 101100242901 Quaranfil virus (isolate QrfV/Tick/Afghanistan/EG_T_377/1968) PB2 gene Proteins 0.000 claims description 4
- 101150082826 Segment-2 gene Proteins 0.000 claims description 4
- 101100194052 Thogoto virus (isolate SiAr 126) Segment 2 gene Proteins 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 55
- 230000033458 reproduction Effects 0.000 description 104
- 238000010586 diagram Methods 0.000 description 32
- 230000005540 biological transmission Effects 0.000 description 27
- 230000001934 delay Effects 0.000 description 21
- 230000006872 improvement Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 238000012217 deletion Methods 0.000 description 11
- 230000037430 deletion Effects 0.000 description 11
- 230000006866 deterioration Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 9
- KSORMZFPXQKUAB-FQEVSTJZSA-N tert-butyl N-[(2S)-1-(1H-indol-3-yl)-3-[3-oxo-3-(pyridin-3-ylmethylamino)propyl]sulfanylpropan-2-yl]carbamate Chemical compound CC(C)(C)OC(=O)N[C@H](CSCCC(=O)NCc1cccnc1)Cc1c[nH]c2ccccc12 KSORMZFPXQKUAB-FQEVSTJZSA-N 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000006978 adaptation Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 230000001788 irregular Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000010355 oscillation Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000009395 breeding Methods 0.000 description 2
- 230000001488 breeding effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002542 deteriorative effect Effects 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 208000035742 Air-borne transmission Diseases 0.000 description 1
- 101100020619 Arabidopsis thaliana LATE gene Proteins 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 206010011878 Deafness Diseases 0.000 description 1
- 240000000731 Fagus sylvatica Species 0.000 description 1
- 235000010099 Fagus sylvatica Nutrition 0.000 description 1
- 208000032041 Hearing impaired Diseases 0.000 description 1
- 230000005557 airborne transmission Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001850 reproductive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/062—Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
- H04J3/0632—Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
- H04L49/9089—Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
- H04L49/9094—Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Dc Digital Transmission (AREA)
- Telephone Function (AREA)
- Time-Division Multiplex Systems (AREA)
- Telephonic Communication Services (AREA)
- Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
Abstract
buffer de-jitter adaptativo para voz sobre ip. trata-se de um buffer de-jitter adaptativo para voz sobre ip (voip) para comunicações comutadas por pacote. os métodos e o equipamento do buffer de-jitter apresentados evitam a reprodução de underflows ao mesmo tempo em que equilibram o retardo fim-a-fim. em um exemplo, o buffer dejitter é recalculado no começo de cada jorro de fala. em outro exemplo, os pacotes do jorro de fala são compactados quando do recebimento de todos os pacotes restantes.
Description
BUFFER DE-JITTER ADAPTATIVO PARA VOZ SOBRE IP
FUNDAMENTOS
Campo
A presente invenção refere-se a sistemas de comunicação sem fio e, especificamente, a um buffer dejitter adaptativo para Voz sobre o Protocolo Internet (VoIP) para comunicações comutadas por pacote. A invenção aplica-se a qualquer sistema onde pacotes podem ser perdidos.
Fundamentos
Em um sistema de comunicação, o retardo fim-a-fim de um pacote pode ser definido como o tempo a partir de sua qeração na fonte até o momento em que o pacote alcança o seu destino. Em um sistema de comunicação comutado por 15 pacotes, o retardo em que os pacotes viajam da fonte até o destino pode variar, dependendo de diversas condições operacionais, que incluem as, mas não se limitam às, condições de canal e carga na rede. As condições de canal referem-se à qualidade do link sem fio. Alguns fatores que 20 determinam a qualidade do link sem fio são a potência de sinal, a velocidade de um móvel e/ou as obstruções físicas.
retardo fim-a-fim inclui os retardos introduzidos na rede e os diversos elementos através dos quais o pacote passa. Muitos fatores contribuem para o 25 retardo fim-a-fim. Variância no retardo fim-a-fim é referida como jitter. Jitter pode fazer com que os pacotes sejam recebidos depois de não serem mais úteis. Por exemplo, em uma aplicação de baixa latência, tal como voz, se o pacote for recebido tarde demais, ele pode ser 30 descartado pelo receptor. Tais condições causam deterioração na qualidade da comunicação.
BREVE DESCRIÇÃO DOS DESENHOS
A figura 1 e um diagrama de blocos de um sistema de comunicação da técnica anterior, no qual um Terminal de Acesso inclui um buffer de-jitter.
A figura 2 ilustra um buffer de-jitter da técnica anterior.
A figura 3 é um diagrama de temporização que ilustra a transmissão, recebimento e reprodução para pacotes que resultam em um underflow.
As figuras 4A e 4B são diagramas de temporização que ilustram o cálculo de comprimentos de buffer de-jitter ótimos em dois cenários.
| A figura | 5 | é um diagrama de | temporização que | |
| ilustra a execução | de | underflows resultantes de | pacotes | |
| retardados. | ||||
| A figura | 6 é | um fluxograma que | ilustra o | cálculo |
do comprimento de buffer de-jitter.
A figura 7A é um diagrama de temporização que ilustra a transmissão de pacotes em um primeiro cenário.
A figura 7B é um diagrama de temporização que ilustra o recebimento de pacotes sem adaptação de buffer de-j itter.
A figura 7C é um diagrama de temporização que ilustra o recebimento de pacotes com adaptação de buffer de-jitter, em que o receptor pode receber um pacote subseqüente ao tempo esperado para o pacote.
A figura 8A é um fluxograma que ilustra um exemplo de adaptação de buffer implícita, que permite ao receptor receber um pacote subsequente ao tempo esperado para o pacote.
A figura 8B é um diagrama de estado dos modos cie funcionamento para um buffer de-jitter adaptativo.
Ά figura 9 e um diagrama de temporização que ilustra a aplicação da adaptação de buffer de-jitter de acordo com outro exemplo.
A figura 10 é um diagrama que ilustra a transmissão de informações de voz em jorros de fala de acordo com um exemplo, em que o retardo do buffer de-jitter não é suficiente para evitar a colisão de dados.
A figura 11 é um diagrama de blocos de um sistema de comunicação que concretiza um buffer de-jitter adaptativo.
A figura 12 é um diagrama de blocos de uma parte de um receptor que inclui um buffer de-jitter adaptativo e uma unidade de deformação temporal.
A figura
13A ilustra um exemplo de buffer dejitter adaptativo, que inclui limites de compressão e expansão.
A figura
13B ilustra um exemplo de buffer dejitter adaptativo, que inclui múltiplos limites de compressão e expansão.
A figura 14 é um diagrama de temporização que ilustra a deformação temporal quando do recebimento de pacotes que têm diversos retardos.
A figura 15 é um diagrama de temporização que ilustra exemplos de: i) compressão da parte de silêncio de um segmento de fala; e (ii) expansão da parte de silêncio de um segmento de fala.
A figura 16 é um diagrama de temporização que ilustra um sinal de conversa, em que partes do sinal de fala podem repetir-se.
A figura 17A é um diagrama que ilustra um segmento de fala, em que é identcf içado o número de amostras PCM en uma janela de referência para uma operação de adicionar-sobrepor, referida como TamanhoDeJanelaR, e em
4/77 que é identificado o tamanho de segmento alvo ou desejado, referido como Segmento.
A figura 17B é um diagrama que ilustra a aplicação de uma operação de adicionar-sobrepor para comprimir o segmento de fala de acordo com um exemplo.
A figura 18A é um diagrama que ilustra múltiplos segmentos de conversa, em que é identificado o número de amostras PCM em uma janela de referência para uma operação de adicionar-sobrepor, referida como TamanhoDeJanelaR, em que é identificado o tamanho de segmento alvo ou desejado, referido como Segmento, em preparação para a expansão do segmento de conversa atual.
A figura 18B é um diagrama que ilustra a aplicação de uma operação de adicionar-sobrepor para expandir uma amostra de conversa de acordo com um exemplo.
A figura 18C é um diagrama que ilustra a aplicação de uma operação para expandir uma amostra de fala de acordo com um exemplo alternativo.
A figura 19 é um diagrama que ilustra a expansão de pacotes para permitir a chegada de pacotes retardados e pacotes que chegam fora de ordem, como é o caso em uma transmissão ARQ Híbrida.
A figura 20 é um diagrama que ilustra a linha de
| tempo de uma conversa entre dois | usuários. | ||||
| A figura 21 | é | um | fluxograma que | ilustra | o |
| aperfeiçoamento no começo | de | um | jorro de fala de | acordo | com |
| um exemplo. | |||||
| A figura 22 | é | um | diagrama que | ilustra | o |
| aperfeiçoamento no começo | de | um | jorro de fala de | acordo | com |
| um exemplo alternativo. | |||||
| A figura 23 | é | um | diagrama que | ilustra | o |
| aperfeiçoamento no final | dos | jorros de fala. |
5/77
A figura 24 é um fluxograma que ilustra o aperfeiçoamento no final de um jorro de fala de acordo com um exemplo.
A figura 25 é um diagrama que ilustra o funcionamento de um buffer de-jitter da técnica anterior e sistema decodificador, em que o buffer de-jitter entrega pacotes para o decodificador a intervalos de tempo regulares.
A figura 26 é um diagrama que ilustra o funcionamento de um buffer de-jitter adaptativo e um decodificador de acordo com um exemplo, em que o buffer dejitter adaptativo entrega pacotes para o decodificador a intervalos de tempo irregulares.
A figura 27 é um diagrama de blocos que ilustra um Terminal de Acesso (AT) de acordo com um exemplo, que inclui um buffer de-jitter adaptativo e uma unidade de controle de deformação temporal.
A fiçura 28 ilustra uma parte de um receptor, que inclui um buffer de-jitter adaptativo, e adaptado para deformar temporalmente pacotes de acordo com um exemplo.
A figura 29 ilustra um exemplo alternativo de receptor, que inclui um buffer de-jitter adaptativo, e adaptado para deformar temporalmente pacotes de acordo com outro exemplo.
A figura 30 é um fluxograma que ilustra um exemplo de programador em um decodificador em um exemplo de receptor, que inclui um buffer de-jitter adaptativo, e adaptado para deformar temporalmente pacotes de acordo com um exemplo.
A figura 31 é um fluxograma que ilustra um programador em uma unidade de interface de áudio em um exemplo de receptor.
6/77
| A figura | 32 | ilustra a | unidade | de | deformação |
| temporal na qual | a | programação | é calculada | fora do | |
| decodificador. | |||||
| A figura | 33 | ilustra a | unidade | de | deformação |
temporal onde a programação é calculada na unidade de deformação temporal do decodificador.
DESCRIÇÃO DETALHADA
Em sistemas comutados por pacote, os dados são formados em pacotes e roteados através de uma rede. Cada pacote é enviado a um destino na rede, com base no endereço atribuído contido no pacote, tipicamente em um cabeçalho. 0 retardo fim-a-fim dos pacotes, ou o tempo que leva um pacote para viajar dentro da rede de um primeiro usuário ou remetente até um segundo usuário ou receptor, varia, dependendo das condições de canal, da carga na rede, nas capacidades de Qualidade de Serviço (QoS) do sistema e de outras correntes que competem pelos recursos, entre outras coisas. Note-se que, para bem da clareza, na discussão seguinte são descritos sistemas de comunicação com espelhamento espectral que suportam comunicações de dados em pacote, que incluem, mas não se limitam a, sistemas de Acesso Múltiplo por Divisão de Código (CDMA), Acesso Múltiplo por Divisão de Freqüência Ortogonal (OFDMA), Acesso Múltiplo por Divisão de Código de Banda Larga (WCDMA), sistemas do Sistema Global para Comunicações Móveis (GSM), sistemas que suportam padrões IEEE, tais como o 802.11 (A,B,G), o 802.16, etc.
Em um sistema de comunicação sem fio, cada pacote pode incorrer um retardo de uma fonte até um destino diferente do experimentado por outros pacotes pertencentes à mesma corrent.e. Esta variação no retardo é conhecida como jitter. Jitter cria complicações adicionais para as aplicações no lado do receptor. Se o receptor não tiver o
7/77 jitter corrigido, a mensagem recebida sofrerá distorção quando os pacotes são remontados. Alguns sistemas têm seu jitter corrigido quando se reconstroem mensagens a partir dos pacotes recebidos. Tais sistemas incorporam um buffer de-jitter, que adiciona um tempo de espera, referido como retardo de buffer de-jitter. Quando o buffer de-jittèr aplica um retardo de buffer de-jitter grande, fixo, ele pode acomodar uma quantidade elevada de jitter na chegada dos pacotes; entretanto, esta utilização não é eficaz, uma 10 vez que os pacotes que têm um retardo menor são também processados utilizando-se o retardo de buffer de-jitter grande, embora estes pacotes não pudessem ter sido processados antes. Isto provoca, para estes pacotes, retardos fim-a-fim maiores do que o que foi alcançado 15 utilizando-se um retardo de buffer de-jitter menor.
De modo a se impedir isto, os sistemas VoIP que incorporam buffers de de-jitter podem tentar adaptar-se a alterações no retardo de pacotes. Per exemplo, um buffer de-jitter pode detectar alterações no retardo de pacotes 20 analisando estatísticas sobre chegada de pacotes. Muitas implementações de buffer de-jitter não adaptam seu retardo de maneira nenhuma e são configuradas para terem um retardo conservadoramente grande. Neste caso, o buffer de-jitter pode adicionar retardo excessivo aos pacotes, fazendo com 25 que a experiência do usuário seja sub-ótima.
A discussão seguinte descreve um buffer de-jitter adaptativo que se adapta às alterações no comportamento de retardo dos pacotes alterando seu retardo de buffer dejitter. Este buffer de-jitter faz uso da deformação 30 temporal de conversa para melhorar a capacidade de rastrear o retardo variável dos pacotes. A discussão seguinte é aplicável a comunicações empacotadas, tais como comunicações que têm transmissão periódica de dados,
exigências de baixa latência, processamento sequencial de dados ou uma taxa de reprodução designada. Em particular, a discussão seguinte detalha uma comunicação de voz, na qual os dados, ou a fala e o silêncio, se originam em uma fonte e são transmitidos a um destino para reprodução. Os dados originais são empacotados e encodifiçados utilizando-se um esquema de encodificação conhecido. No receptor, o esquema de encodificação é determinado para cada pacote de dados. Em uma comunicação de fala, por exemplo, o tipo de encodificação da fala é diferente do tipo de encodificação do silêncio. Isto permite que o sistema de comunicação tire vantagem da natureza periódica da conversa, que inclui partes de silêncio. Para uma comunicação de conversa, os dados parecem como em rajadas, e o conteúdo da conversa pode parecer reprodutivo. A transmissão da conversa empacotada tem exigências de baixa latência, uma vez que os participantes de uma comunicação de voz não querem ouvir retardos, mas a qualidade da comunicação permite apenas retardos limitados. A fala empacotada pode tomar diferentes percursos para chegar ao receptor, mas, quando do recebimento, os pacotes são re-compilados em sua sequência original. Portanto, a conversa empacotada recebida é reproduzida sequencialmente. Se um pacote for perdido em uma transmissão através do ar ou em um processamento de camada física, o pacote não é recuperado, mas o receptor pode estimar ou adivinhar qual era c conteúdo do pacote.
Além disto, a taxa de reprodução das comunicações de conversa tem uma de reprodução predeterminada.
Se a reprodução estiver fora da faixa, qualidade no receptor é deteriorada.
aplicação comunicações de conversa é um exemplo de aplicação presente discussão. Outras aplicações podem incluir comunicações de vídeo, comunicações de jogos ou outras
9/77 comunicações com características, especificações e/ou exigências semelhantes às das comunicações de conversa. Por exemplo, nas comunicações de vídeo pode-se desejar acelerar ou retardar a reprodução. A presente discussão pode ser desejável para tal uso. Conforme apresentado aqui, um buffer de-jitter adaptativo pode permitir que o receptor obtenha a qualidade de serviço especificada pelas exigências de jitter do sistema. O buffer de-jitter adaptativo adapta um comprimento de buffer de-jitter, como, por exemplo, a quantidade de dados armazenados no buffer de-jitter, à temporização e à quantidade de dados recebidos no buffer de-jitter adaptativo. Além disto, um buffer dejitter adaptativo utiliza o status ou o tamanho do buffer de-jitter, como, por exemplo, a medida dos dados armazenados no buffer de-jitter adaptativo, de modo se determinar quando a deformação temporal é benéfica para o processamento e a reprodução dos dados recebidos. Por exemplo, se os dados estiverem chegando ao buffer de-jitter adaptativo a uma taxa lenta, o buffer de-jitter adaptativo fornece esta informação a uma unidade de deformação temporal, permitindo que a unidade de deformação temporeil expanda os pacotes recebidos. Se os dados armazenados no buffer de-jitter adaptativo ultrapassarem um valor limite, o buffer de-jitter adaptativo alerta a unidade de deformação temporal para comprimir os pacotes de modo a acomodar de maneira eficaz os dados entrantes. Note-se que a deformação temporal está dentro de limites, que podem ser definidos pela aplicação e o tipo de comunicação. Nas comunicações de conversa, por exemplo, a deformação temporal não deve comprimir a conversa, isto é, aumentar a densidade, de modo que o ouvinte não seja capaz de entender a comunicação. De maneira semelhante, a deformação temporal não deve expandir a conversa além da faixa. De modo ideal,
10/7 a faixa de deformação temporal é definida de modo a permitir ao ouvinte pouco ou nenhum desconforto.
Sistema de Comunicação
A figura 1 é um diagrama de blocos que ilustra um sistema de comunicação digital 50. Dois Terminais de Acesso (ATs) 52 e 82 comunicam-se por meio de uma Estação Base (BS) 70. Dentro do AT 52, a unidade de processamento de transmissão 64 transmite dados de voz a um encodificador 60, que encodif ica e empacota os dados de voz e envia os dados empacotados a uma unidade de processamento de camada inferior 58. Para transmissão, os dados são em seguida enviados à BS 70. BS 70 processa os dados recebidos e transmite os dados ao AT 82, em que os dados são recebidos na unidade de processamento de camada inferior 88. Os dados são então providos ao buffer de-jitter 86, que armazena os dados de modo a ocultar ou reduzir o impacto do jitter. Os dados são enviados do buffer de-jitter 86 para o decodificador 84 e para a unidade de processamento de recepção 92.
Para transmissão do AT 82, dados/voz são providos da unidade de processamento de transmissão 94 ao encodificador 90. Unidade de processamento de camada inferior 88 processa os dados para transmissão à BS 70. Para recebimento dos dados da BS 70 no AT 52, os dados são recebidos na unidade de processamento de camada inferior 58. Pacotes de dados são então enviados a um buffer dejitter 56, onde eles são armazenados até que um comprimento ou retardo de buffer necessário seja atingido. Uma vez que tenha chegado a este comprimento ou retardo, o buffer dejitter 56 começa a enviar dados a um decodificador 54. O decodificador 54 converte os dados empacotados em pacotes de dados de voz e envia os pacotes à unidade de
11/77 processamento de recepção 62. No presente exemplo, o comportamento do AT 52 é análogo ao do AT 82.
Buffer De-Jitter
Um armazenamento ou buffer de-jitter é utilizado nos ATs, tais como os descritos acima, para ocultar os efeitos do jitter. Em um exemplo, um buffer de-jitter adaptativo é utilizado em comunicações comutadas por pacote, tais como comunicação VoIP. O buffer de-jitter tem uma memória de armazenamento adaptativa e utiliza distorção 10 no tempo da conversa para melhorar sua capacidade de rastrear o retardo e o jitter variáveis. Neste exemplo, o processamento do buffer de-jitter é coordenado com o do decodificador, em que o buffer de-jitter identifica una oportunidade ou necessidade de deformar temporalmente os 15 pacotes e instrui o decodificador para deformar temporalmente os pacotes. O decodificador distorce no tempo os pacotes comprimindo ou expandindo os pacotes, como instruído pelo buffer de-jitter.
A figura 2 ilustra um exemplo de buffer de20 jitter. Pacotes encodifiçados entrantes são acumulados e armazenados no buffer. Em um exemplo, o buffer é um buffer Primeiro a Entrar, Primeiro a Sair (FIFO), em que os dados são recebidos em uma ordem particular e processados nessa mesma ordem; os primeiros dados processados são os 25 primeiros dados recebidos. Em outro exemplo, o buffer dejitter é uma lista ordenada que fica de olho em qual pacote é o próximo a ser processado. O buffer de-jitter adaptativo pode ser uma unidade de armazenamento de memória, em que o status do buffer de-jitter é uma medida dos dados (ou o 30 número de pacotes) armazenados no buffer de-jitter adaptativo. Os dados processados pelo buffer de-jitter podem ser enviados a um decodificador ou outro utilitário do buffer de-jitter. Os pacotes encodifiçados podem
12/77 corresponder a uma quantidade fixa de dados de conversa, como, por exemplo, 20 ms, o que corresponde a 160 amostras de dados de conversa, a uma taxa de amostragem de 8 Khz. Em um exemplo da presente invenção, o número de amostras produzidas pelo decodificador, com capacidades de deformação temporal, pode variar com base em ser o pacote deformado ou não. Quando o buffer de-jitter instrui o decodificador/deformação temporal a expandir um pacote, o decodificador/deformação temporal pode produzir mais de 160 amostras. Por outro lado, quando o buffer de-jitter instrui o decodificador/deformação temporal a comprimir um pacotp, o decodificador/deformação temporal pode produzir menos de 160 amostras. Note-se que sistemas alternativos podem ter diferentes esquemas de reprodução, tais como outros que não uma codificação de voz (vocoding) de 20 ms.
Pacotes que chegam ao buffer de-jitter podem não chegar a intervalos regulares. Um dos objetivos projetados de um buffer de-jitter é, portanto, ajustar a irregularidade dos dados entrantes. Em um exemplo desta invenção, um buffer de-jitter tem um comprimento de buffer de-jitter alvo. O comprimento de buffer de-jitter alvo refere-se à quantidade necessária de dados a serem
| acumulados | no | buffer de-jitter antes de se começar | a |
| reproduzir | o | primeiro pacote. Em outro exemplo, | o |
| comprimento | de | buffer de-jitter alvo pode referir-se | à |
| quantidade | de | tempo na qual é necessário retardar | o |
primeiro pacote no buffer de-jitter antes que ele seja reproduzido. O comprimento de buffer de-jitter alvo é ilustrado na figura 2. Pela acumulação de pacotes suficientes no buffer de-jitter antes do inicio da reprodução dos pacotes, o buffer de-jitter é capaz de reproduzir pacotes subseqüentes a intervalos regulares ao mesmo tempo reduzindo ao mínimo o potencial de esgotamento
13/77 de pacotes. A figura 2 ilustra um buffer de-jitter, em que o primeiro pacote de vocoder recebido no buffer de-jitter é o próximo pacote programado para saída do buffer de-jitter. O buffer de-jitter inclui pacotes suficientes para alcançar o retardo necessário do buffer de-jitter. Desta maneira, o buffer de-jitter uniformiza o jitter experimentado pelos pacotes e oculta a variação no tempo de chegada dos pacotes no receptor.
A figura 3 ilustra linhas de tempo de transmissão, recebimento e reprodução para pacotes em diversos cenários. 0 primeiro pacote, PKT 1, é transmitido no tempo t0 e é reproduzido quando recebido no tempo ti. Pacotes subseqüentes, PKT 2, PKT 3 e PKT 4, são transmitidos a intervalos de 20 ms depois do PKT 1. Na ausência da deformação temporal, os decodificadores reproduzem os pacotes a intervalos de tempo regulares (20 ms, por exemplo) do tempo de reprodução do primeiro pacotes. Por exemplo, se um decodificador reproduzir pacotes a intervalos regulares de 20 ms, um primeiro pacote recebido é reproduzido no tempo t1A e os pacotes subseqüentes serão reproduzidos 20 ms após o tempo ti, 4 0 ms após o tempo t·, 60 ms após o tempo ti, etc. Conforme ilustrado na figura 3, o tempo de reprodução antecipada (sem retardo do buffer dejitter) do PKT 2 é t2 = ti + 2 0 ms. PKT 2 é recebido antes de seu tempo de reprodução antecipada, t2. Pacote 3, por outro lado, é recebido após seu tempo de reprodução antecipada t3 = t2 + 20 ms. Esta condição é referida como underflow. Um underflow ocorre quando o utilitário de reprodução está pronto para reproduzir um pacote, mas o pacote não está presente no buffer de-jitter. Underflows, tipicamente, fazem com que o decodificador produza apagamentos e deteriore a qualidade da reprodução.
14/77
A figura 3 ilustra adicionalmente um segundo cenário, no qual o buffer de-jitter introduz um retardo, tdjb, antes da reprodução do primeiro pacote. Neste cenário, o retardo do buffer de-jitter é adicionado para permitir que o utilitário de reprodução receba pacotes (ou amostras) a cada 20 ms. Neste cenário, embora o PKT 3 seja recebido após seu tempo de reprodução antecipada, t3, a adição do retardo do buffer de-jitter permite que o PKT 3 seja reproduzido 20 ms após a reprodução do PKT 2.
PKT 1 é enviado no tempo to, recebido no tempo t3 e, em vez de ser reproduzido no tempo t3 conforme foi feito anteriormente, é agora reproduzido no tempo tx + tdjb = ti' . O utilitário de reprodução reproduz o PKT 2 a um intervalo predeterminado, como, por exemplo, 20 ms, após PKT 1 ou no t-2 t tdjb e
PKT no tempo t3' = t3'+ tdjb.
o terceiro pacote seja reproduzido
O retardamento da reprodução em tdjb sem que seja permite que causado um underflow. Assim, conforme ilustrado na figura 3, introdução do retardo de buffer de-jitter pode reduzir os underflows impedir que a qualidade da fala se deteriore.
fala e períodos impacto
Uma conversa consiste períodos de silêncio.
de silêncio tem um sobre a qualidade da em períodos de jorros
A expansão/compressão dos de impacto mínimo ou nenhum fala. Isto permite que buffer de-jitter retarde a reprodução do primeiro pacote de maneira diferente para cada jorro de fala.
As figuras 4A e 4B ilustram linhas de tempo de transmissão e recebimento para diferentes jorros de falai. Note-se que o grau de retardo de buffer de-jitter é determinado de modo a impedir underflows. Isto é referido como retardo ótimo do buffer de-jitter. O retardo ótimo do buffer de-jitter está relacionado com o comprimento alvo do buffer de-jitter. Em outras palavras, o comprimento al\o
15/77 do buffer de-jitter é determinado de modo a permitir que dados suficientes sejam armazenados no buffer de modo que os pacotes sejam reproduzidos em conformidade com as especificações do utilitário de reprodução. O retardo ótimo do buffer de-jitter pode ser determinado pelo maior retardo fim-a-fim experimentado pelo sistema. Alternativamente, o retardo ótimo do buffer de-jitter pode ser baseado no retardo médio experimentado pelo sistema. Outros métodos para determinar o retardo ótimo do buffer de-jitter podem ser também implementados como específicos de um dado critério ou projeto de sistema. Além disto, o comprimento alvo do buffer de-jitter é determinado de modo a se efetuar o retardo ótimo do buffer de-jitter e, portanto, o comprimento alvo do buffer de-jitter pode ser calculado com base nas taxas dos pacotes recebidos, na Taxa de Erros de Pacote (PER) ou em outras estatísticas operacionais.
As figuras 4A e 4B ilustram retardos ótimos do buffer de-jitter para dois exemplos. Conforme ilustrado, o tempo entre a. transmissão e o recebimento de pacotes sequenciais varia ao longo do tempo. Uma vez que o PKT 3 tem o mais longo retardo da transmissão até o recebimento, esta diferença é utilizada para determinar o retardo ótimo para processamento de de-jitter.
A utilização de um buffer de-jitter com um comprimento alvo do buffer de-jitter pode evitar pelo menos algumas condições de underflow. Novamente com referência à figura 3, o segundo cenário impediu um underflow (que ocorreu quando o decodificador esperava um pacote e o utilitário de reprodução estava pronto para executar um pacote, mas nenhum pacote estava presente no buffer de pacotes). Aqui, PKT 2 é reproduzido após um intervalo predeterminado, de 20 ms, subsequente a ti, onde ti é o tempo de reprodução de PKT 1. Embora o PKT 3 seja
16/77 programado ou antecipado para reprodução no tempo t3, PKT 3 não é recebido até após o tempo t3. Em outras palavras, o utilitário de reprodução está pronto para reproduzir o PKT 3, mas este pacote não está presente no buffer de armazenamento. Uma vez que o PKT 3 não está disponível para reprodução no tempo antecipado, e não é reproduzido, disso resulta um grau elevado de jitter e um underflow com relação ao PKT 3. PKT 4 é reproduzido em t4, o tempo de reprodução antecipada para o PKT 4. Note-se que o tempo antecipado t4 é calculado a partir do tempo t3. Uma vez que cada pacote pode conter mais de um pacote de voz, a perda de pacotes devido aos underflows deteriora a qualidade de voz.
Um outro cenário para consideração envolve a execução de underflows devido a pacotes retardados, conforme mostrado na figura
5, onde transmissão, recebimento e tempo de reprodução antecipada dos pacotes
| são ilustrados no tempo. Neste cenário, | cada | pacote é | |||
| recebido | em um curto | tempo depois de | seu | tempo de | |
| reprodução | antecipada. | Por exemplo, tempo | de | reprodução | |
| antecipada | para. PKT 50 | é | t0, mas o PKT 50 | não | é recebido |
até o tempo to' após t0. 0 pacote seguinte, 51, é antecipado no tempo ti, mas não é recebido até o tempo ti , após ti. Isto provoca a execução de underflows, o que leva a uma alta porcentagem de underflows retardados, underflows devido a um pacote retardado e, portanto, retardos fim-a-fim superiores.
Evidentemente, um buffer de-jitter que retarde a reprodução em um grau elevado será bem-sucedido na manutenção dos underflows em um mínimo. Tal buffer dejitter, contudo, introduz um retardo de buffer de-jitter grande no retardo fim-a-fim dos pacotes. Um retardo fim-a fim grande pode provocar dificuldade na manutenção da
17/77 corrente de uma conversa. Retardos de mais de 100 ms podem fazer com que a parte ouvinte pense que a parte falante não acabou de falar. Uma boa qualidade, portanto, considera idealmente tanto que se evitem os underflows quanto se reduza o retardo fim-a-fim. Existe um problema no fato de que a resolução de um problema pode piorar o outro. Em outras palavras, retardos fim-a-fim resultam geralmente em mais underflows e vice-versa. Há, portanto, necessidade de equilibrar estes objetivos em competição. Especificamente, há necessidade de que o buffer de-jitter rastreie e evite underflows ao mesmo tempo em que reduz o retardo fim-a-fim. Comprimento Alvo do Buffer De-Jitter objetivo projetado de um buffer de-jitter adaptativo é permitir que o sistema alveje uma taxa de underflows especifica de pacotes de voz, obtendo ao mesmo tempo retardos fim-a-fim reduzidos. Uma vez que a qualidade percebida é uma função da porcentagem de underflows, a capacidade de alvejar uma porcentagem particular de underflows permite o controle da qualidade de voz.
Underflows de pacotes no buffer de-jitter podem ocorrer quando há pacozes faltantes. Um pacote pode estar faltando quando é perdido ou retardado. Um pacote perdido provoca um underflow quando descartado antes que alcance o receptor, como quando é descartado em algum lugar na rede de acesso, como, por exemplo, na camada física ou no programador de link direto. Neste roteiro, o underflow não pode ser corrigido utilizando-se um retardo de buffer de-jitter porque o pacote nunca chega ao buffer de-jitter. Alternativamente, um underflow pode ocorrer como resultado de um pacote que é retardado, e chega após seu tempo de reprodução. Além de rastrear underflows devido a pacotes retardados, o buffer de-jitter adaptativo pode também rastrear underflows devido a pacotes perdidos.
18/77
O número de underflows devido a um pacote retardado pode ser controlado compensando-se os underflows pelo retardo do buffer de-jitter. Um valor que representa a porcentagem alvo de underflows devido a pacotes retardados é referido como underflow alvo. Este valor é o valor alvo para o funcionamento do buffer de-jitter e é selecionado de modo a se manter o retardo fim-a-fim dentro de limites razoáveis. Em um exemplo, um valor de 1% (0,01) pode ser utilizado como o underflow alvo. Em outro exemplo jé utilizado um valor de 0,5% (0,005). De modo a se obter um underflow alvo, o retardo do buffer de-jitter pode ser adaptado.
Em um exemplo da presente invenção, o valor filtragem da porcentagem de underflows devido a pacotes retardados (daqui por diante referidos como underflows ser utilizado para adaptar o retardo do buffer de-j itter.
No final de cada período de silêncio (ou começo de cada jorro o retardo do buffer dej itter é atualizado conforme ilustrado na figura
Conforme ilustrado na figura 6, o algoritmo especifica o seguinte:
Se (PERretardo < VALOR
ALVO), então
RETARDO_DE_JITTER = RETARDO_DE_JITTER - CONSTANTE;
) Se (PERretardo > VALOR ALVO PERre^-ardo ^> = último_PERs.etardo) r então
RETARDO_DE_JITTER = RETARDO_DE_JITTER + CONSTANTE;
3) Fixar RETARDO_DE_JITTER = ΜΆΧ (JITTER_MIN,
RETARDO DE JITTER);
4) RETARDO_DE_JITTER = MIN (JITTER_MAX,RETARDO_DE_JITTER) (D
No presente exemplo, o retardo inicial do armazenador de de-jitter pode ser fixado em um valor constante, tal como 40 ms. O VALOR_ALVO é um valor alvejado
19/77 de underflows retardados (1%, por exemplo) . PERretardo é um valor filtrado da taxa de underflow retardado dos pacotes, em que os parâmetros do filtro permitem que se obtenha o VALOR_ALVO. O último PER_retardo θ o valor de PER_retardo na atualização anterior do retardo do buffer dejitter. O RETARDO_DE_JITTER é o comprimento alvo do buffer de-jitter, conforme definido acima. No presente exemplo, CONSTANTE é igual a 20 ms. JITTER_MIN e JITTER_MAX são os valores mínimo e máximo do retardo de buffer de-jitter; de acordo com um exemplo esses estão configurados a 20ms e 80ms, respectivamente. JITTER_MIN e JITTER_MAX podem ser estimadas com base na simulação do sistema. Os valores (JITTER_MIN, JITTER_MAX, CONSTANTE) podem ser otimizados dependendo do sistema de comunicação no qual o buffer dejitter é utilizado.
PERretardo pode ser atualizado no final de cada período de silêncio ou no início de cada jorro de fala, em que PERretardo é calculada da seguinte maneira: PERretardo=CONSTANTE_PERxPERretardo+ (1~CONSTANTE_PER) x PERretaido_Atu<il (2í
CONSTANTE_PER é a constante de tempo para o filtro utilizado para estimar PERretarcto. O valor para esta constante determina a memória do filtro e permite que o
| VALOR ALVO | seja obtido. | PERretardo_Atual é | a taxa | de |
| underflows | retardados | observada entre | a últ | iri.a |
| atualização | de PERretardo 6 ã | atualização atual. | ||
| PERret.ardo AtUâl é | definido como uma | relação | do |
número de pacotes de underflows retardados/o número total de pacotes recebidos entre a última atualização de PERretaido e a atualização atual.
„„„ , , Número de underflows retardados desde a última atualização
PERretardo _ Atual =-------------------------------------------------------— (3)
Número de pacotes recebidos desde a última atualização
20/77
Com referência à figura 6, o processo 100 para calcular e atualizar o retardo do buffer de-jitter começa na etapa 101 com a iniciação do RETARDO_DE_JITTER. Na etapa 102, o PERretardo é comparado com o VALOR_ALVO. Se o PERretardo for menor que o VALOR_ALVO, o valor de CONSTANTE é subtraído do RETARDO_DE_JITTER na etapa 104. Se o PERretardo for maior que o VALOR_ALVO na etapa 102 e o PERretardo for maior que o VALOR_ALVO e maior ou igual ao ÚLTIMO_PERRETARDO na etapa 103, não for menor que o último PERretardo na etapa 102, então o processamento continua até a decisão 108. O RETARDO_DE_JITTER é configurado no RETARDO_DE_JITTER mais o valor de CONSTANTE na etapa 108. Continuando da etapa 103, se o PERretardo não for maior que o VALOR_ALVO e não maior ou igual ao ÚLTIMO_PERRETARDO, processamento continua até a etapa 110. Além disto, continuando da etapa 104, o RETARDO_DE_JITTER é fixado como igual ao máximo do JITTER_MIN e do RETARDO_DE_JITTER na etapa 110. Da etapa 110, processamento continua até a etapa 112 de modo a se fixar o RETARDO_DE_ JITTER como igual ao mínimo do jitter_MAX e do RETARDO_DE_JITTER na etapa 112. Rastreando Retardo
O buffer de-jitter entra com um modo no qual rastreia retardo (em vez de rastrear a taxa de underflows; . O retardo rastreado pode ser o retardo fim-a-fim ou o retardo do buffer de-jitter. Em um caso, o buffer de-jitter entra com um modo de rastrear retardo, quando a taxa de underflow alvo pode ser facilmente encontrada. Isto significa que o buffer de-jitter é capaz de obter uma taxa de underflow mais baixa que a taxa de underflow alvo durante algum período de tempo. Este período de tempo pode estar situado em qualquer ponto entre algumas centenas de ms e alguns segundos.
21/77
Neste modo, o buffer de-jitter tem um valor de retardo alvo. Este é semelhante ao valor alvo de underflow descrito acima. Equação (1) acima pode ser utilizada para se alvejar uma taxa de underflow alvo de maneira análoga ao cálculo de um valor de Retardo Alvo. Quando o buffer dejitter entra neste modo, no qual alveja um valor de Retardo Alvo, isto pode permitir que ele reduza sua taxa de underflow Alvo desde que o Retardo Alvo seja mantido. Adaptação Implícita do Buffer
Em algumas situações, o decodificador pode esperar reproduzir um pacote que ainda não foi recebido. Esta situação é mostrada na figura 5, onde o tempo de reprodução antecipada do PKT 50 é to, mas o PKT 50 é recebido depois deste tempo. Da mesma maneira, PKT 51 é recebido depois de seu tempo de reprodução antecipada ti, PKT 52 é recebido depois de seu tempo de reprodução antecipada t2 θ assim por diante. Deve-se observar aqui que os pacotes chegam de maneira razoavelmente regular, mas uma vez que o PKT 50 foi recebido ligeiramente depois de seu tempo de reprodução antecipada, isto fez com que todos os pacotes subsequentes perdessem seus tempos de reprodução. Se, por outro lado, o decodificador pudesse inserir um apagamento em t0 e ainda reproduzir o PKT 50 em ti, ele permitiría que todos os pacotes encontrassem seus tempos de reprodução. Pela reprodução do PKT 5 0 depois de um apagamento em lugar do PKT 50, o comprimento do buffer dejitter é adaptado de maneira eficaz.
Note-se que a reprodução do PKT 50 após su apagamento pode causar descontinuidades, que podem ser removidas utilizando-se a técnica de casamento de fases descrita no pedido copendente número 11/192.231, intitulado PHASE MATCHING IN VOCODERS, depositado a 7 de julho de
2005.
22/77
Conforme ilustrado na figura 7A, pode haver intervalos no recebimento de pacotes, tais como o intervalo de tempo entre o PKT 3 e o PKT 4. O retardo na chegada dos pacotes pode ser diferente para cada pacote. O buffer dejitter pode responder imediatamente com ajustes para compensar o retardo. Conforme mostrado, PKT 1, PKT 2 e PKT 3 são recebidos nos tempos ti, t2 e t3, respectivamente. No tempo to antecipa-se que o PKT 4 será recebido, mas o PKT 4 ainda não chegou. Presume-se na figura 7A que se espera que os pacotes sejam recebidos a cada 20 ms. Na presente ilustração, PKT 2 é recebido 20 ms depois do PKT 1 e o PKT 3 é recebido 40 ms depois do PKT 1. Espera-se que o PKT 4 seja recebido 60 ms depois do PKT 1, mas não chega até 80 ms depois do PKT 1.
Na figura 7B, um retardo inicial é introduzido no buffer de-jitter antes da reprodução do primeiro pacote recebido, PKT 1. Aqui, o retardo inicial é Diniciai- Neste caso, PKT 1 será reproduzido pelo buffer no tempo DiniCia_, PKT 2 no tempo DiniCial + 2 0 ms, PKT 3 em DiniCiai + 4 0 ms, etc. Na figura 7B, quando o PKT 4 deixa de chegar no tempo esperado, Dini;iai + 60 ms, um apagamento pode ser reproduzido pelo buffer de-jitter. No tempo seguinte, paj'a reproduzir um pacote, o buffer de-jitter procurará reproduzir PKT 4. Se o PKT 4 ainda não tiver chegado, um outro apagamento pode ser enviado no tempo DiniCial + 8 0 ms. Apagamentos continuarão a ser reproduzidos até que o PKT 4 chegue ao buffer de-jitter. Uma vez que o PKT 4 chegue ao buffer de-jitter, o PKT 4 é então reproduzido. Tal processamento resulta em retardo, uma vez que nenhum outro pacote é executado até que o PKT 4 seja recebido. Quando o sistema não é capaz de recuperar, isto é, jamais recebe o PKT 4, o sistema pode aplicar uma reiniciação do processo, permitindo a reprodução dos pacotes subseqüentes ao PKT 4
sem a reprodução do PKT 4. No cenário descrito acima, retardo fim-a-fim do buffer de-jitter tem o potencial de aumentar, uma vez que o envio de apagamentos pode continuar durante um longo período de tempo antes que o PKT 4 chegue.
Em contraste, de acordo com um exemplo ilustrado na figura 7C, se um pacote deixa de chegar ou se o recebimento do pacote é retardado, um apagamento é reproduzido no tempo de reprodução esperado do PKT 4. Isto é semelhante ao cenário descrito com relação à figura 7B acima, na qual o sistema esperou o PKT 4. No tempo de reprodução seguinte, se o PKT 4 ainda não tiver chegado, mas se o pacote seguinte, PKT 5 tiver chegado, então o PKT 5 é reproduzido. Como ilustração adicional, suponha-se que o recebimento do PKT 4 é retardado e que o buffer de-jitter espera receber o PKT 4 no tempo Diniciai + 80 ms. Quando o PKT 4 é retardado, um apagamento é reproduzido. No tempo Dinicíai + 100 ms, se o PKT 4 ainda não tiver chegado, em vez de se reproduzir outro apagamento, PKT 5 é reproduzido. Neste segundo cenário, ajustes no retardo são feitos imediatamente, e retardos fim-a-fim excessivos na rede de comunicação são evitados. Este processo pode ser referido como IBA, uma vez que o tamanho dos dados armazenados no buffer antes da reprodução aumenta e diminui de acordo com o recebimento dos dados.
O processo de adaptação implícita do buffer (IBA)
200 é ilustrado por um fluxograma na figura 8A. O processo 200 pode ser implementado em um controlador dentro de um buffer de-jitter adaptativo, tal como no controlador de saída 760 ou no controlador 756 do buffer de-jitter. O processo 200 pode residir em outras partes dentro de um sistema que suporte um buffer de-jitter adaptativo. Na etapa 202, é recebido no buffer de-jitter adaptativo um pedido de fornecimento de um pacote seguinte para
24/77 reprodução. O pacote seguinte é identificado como um pacote que tem um índice i em uma seqüência, especificamente PKT[z]. Em 204, se o modo de Adaptação Implícita do Buffer (IBA) for habilitado, o processamento continua até 206 de modo a processar de acordo com o modo IBA; e se o modo IBA é desabilitado, o processamento continua até 226, de modo: a processar sem o modo IBA.
Se o PKT [z] for recebido em 206, então o buffer de-jitter adaptativo provê o PKT [z ] para reprodução na etapa 208. Modo IBA é desabilitado na etapa 210 e o índice, z, é incrementado, isto é, (z=z+l). Adicionalmente, se o PKT [z] não for recebido em 206 e se o PKT [z+1] for recebido em 214, o processamento continua até a etapa 216 de modo a reproduzir o PKT [z+1]. O modo IBA é desabilitado na etapa 218 e o índice, i, é incrementado, isto é, (z=z+2), na etapa 220.
Se, em 214, o PKT [ z ] e o PKT [z+1] não forem recebidos, então o controlador inicia a reprodução de um apagamento na etapa 222; e o índice i é incrementado na etapa 224. Note-se, no presente exemplo, que, quando no modo IBA, o controlador verifica até dois (2) pacotes em resposta a uma solicitação de um pacote seguinte, tal como o recebido na etapa 202. Isto implementa efetivamente uma janela de pacotes através da qual o controlador busca os pacotes recebidos. Exemplos alternativos podem implementar um tamanho de janela diferente, como, por exemplo, buscar três (3) pacotes, que neste exemplo, seriam os números de seqüência de pacotes i, z+1 e z+2.
Voltando a 204, se o modo IEA não for habilitado, o processamento continua até 226 de modo a determinar se o PKT [z] foi recebido. Se recebido, o PKT [z] é provido para reprodução na etapa 22 8, e o índice, z, é incrementado na etapa 230. Se o PKT [z] não for recebido em 226, o buffer
25/7 de-jitter adaptativo provê um apagamento para reprodução na etapa 232. Modo IBA é habilitado, uma vez que o PKT [z] não foi recebido e, em vez disso, um apagamento foi reproduzido.
A figura 8B é um diagrama de estados relacionado com o modo IBA. Quando no modo normal 242, se o buffer dejitter adaptativo apresentar o PKT [i] para reprodução, o controlador permanece no modo normal. O controlador transita do modo normal 242 para o modo IBA 240, quando um apagamento é reproduzido. Uma vez no modo IBA 240, o controlador permanece ai quando da reprodução de um apagamento. O controlador transita do modo IBA 240 para o modo normal 242 quando da reprodução do PKT [z] ou do PKT [z+1] ·
A figura 9 é um exemplo de buffer de-jitter que implementa o IBA, conforme ilustrado nas figuras 8A e 8B. Na presente ilustração, o utilitário de reprodução solicita de um decodificador amostras para reprodução. O decodificador em seguida solicita do buffer de-jitter pacotes suficientes para permitir a reprodução ininterrupta pelo utilitário de reprodução. Na presente ilustração, os pacotes portam comunicação de voz, e o utilitário de reprodução reproduz uma amostra a cada 20 ms. Sistemas alternativos podem prover os dados empacotados do buffer de-jitter para o utilitário de reprodução através de outras configurações, e os dados empacotados podem ser outros que não comunicações de voz.
buffer de-jitter é ilustrado na figura 9 como uma pilha de pacotes. Nesta ilustração, o buffer recebe o PKT 49 primeiro e em seguida recebe o PKT 50, 51, o PKT 52, o PKT 53, etc. O número do pacote nesta ilustração referese a uma sequência de pacotes. Em uri sistema empacotado, contudo, não há garantia de que os pacotes serão recebidos
26/77 nesta ordem. Para bem da clareza de entendimento, nesta ilustração os pacotes são recebidos na mesma seqüência numérica em que foram transmitidos, que é também a ordem de reprodução.
Para fins de exemplificação, na figura 9 os pacotes recebidos em seguida são empilhados no topo dos pacotes recebidos anteriormente no buffer de-jitter;
por exemplo, o PKT 49 é empilhado no topo do PKT 50, o PKT é
empilhado no topo do PKT 50, etc. 0 pacote na base da pilha no buffer de-jitter é o primeiro a ser enviado ao utilitário de reprodução.
Note-se também, na presente ilustração, que o comprimento alvo do buffer de-jitter não é mostrado.
Na figura 9, o recebimento dos pacotes, o tempo de recebimento antecipado dos pacotes e o tempo de reprodução dos pacotes são representados graficamente versus tempo. 0 status atualizado do buffer é ilustrado cada vez que um pacote é recebido. Por exemplo, o PKT 49 é recebido no tempo t0, em que o PKT 4 9 é antecipado para reprodução no tempo ti. O status do buffer quando do recebimento do PKT 49 é ilustrado no topo do gráfico acima do tempo t0, o tempo de recebimento do PKT 49. O tempo de recebimento para cada pacote recebido no buffer de-jitter é representado graficamente como RECEBIDO. O tempo de REPRODUÇÃO ANTECIPADA é representado graficamente imediatamente abaixo do tempo RECEBIDO . Os tempos de reprodução são identificados como REPRODUÇÃO.
Neste exemplo, inicialmente o pacote seguinte para reprodução é o PKT 49, que é antecipado para ser reproduzido no tempo t0 O pacote seguinte na seqüência é esperado no tempo tx, etc. O primeiro pacote, PKT 49, é recebido antes do tempo de reprodução antecipada to. Portanto, o PKT 49 é reproduzido no tempo to conforme antecipado. 0 pacote seguinte, PKT 50, é antecipado no
27/77 tempo ti. Recebimento do PKT 50, contudo, é retardado, e um apagamento é enviado ao utilitário de reprodução, em lugar do PKT 50. 0 retardo do PKT 50 provoca um underflow, conforme descrito anteriormente. PKT 50 é recebido após o tempo de reprodução antecipada, ti, e antes do tempo de reprodução antecipada, t2· Uma vez recebido, o PKT 50 é armazenado no buffer de-jitter. Portanto, quando a solicitação seguinte de um pacote para reprodução no tempo t2 é recebida, o sistema procura o pacote mais baixo na sequência no buffer de-jitter; e o PKT 50 é provido ao utilitário de reprodução para reprodução no tempo t2. Notese que, utilizando-se a IBA, embora o PKT 50 não seja recebido em tempo para ser reproduzido como antecipado, o PKT 50 é reproduzido posteriormente e o resto da seqüência retomada desse ponto. Conforme ilustrado, os pacotes subseqüentes, PKT 51, PKT 52, etc., são recebidos e reproduzidos em tempo, evitando-se assim outros apagamentos.
Embora possa parecer que a IBA aumenta o retardo fim-a-fim dos pacotes, este não é realmente o caso. Uma vez que a IBA leva a um número menor de underflows, o valor do buffer de-jitter estimado a partir da Equação 1 acima é mantido em um valor menor. Portanto, o efeito total da IBA pode ser uma redução no retardo fim-a-fim médio dos pacotes como um todo.
IBA pode melhorar o processamento de comunicação que tenha jorros de fala. Um jorro de fala refere-se à parte de conversa de uma comunicação de voz, em que uma comunicação de voz inclui partes de conversa e de silêncio, compatíveis com padrões de conversa normais. No processamento da conversa, um vocoder produz um tipo de pacote para conversa e outro tipo para o silêncio. Os pacotes de conversa são encodifiçados a uma taxa de
28/77 encodificação, e o silêncio é encodificado a uma taxa de encodificação diferente.
Quando pacotes encodifiçados são recebidos no buffer de-jitter, o buffer de-j itter identifica o tipo de pacote a partir da taxa de encodificação.
O buffer de-jitter supõe que um quadro de conversa é parte de um jorro de fala. 0 primeiro quadro não de silêncio é o começo de um jorro de fala. O jorro de fala finaliza quando um pacote de silêncio é recebido. Em uma transmissão descontínua, nem todos os pacotes de silêncio são transmitidos, enquanto o receptor puder implementar um ruído simulado para levar em consideração as partes de silêncio da comunicação. Na transmissão contínua, todos os pacotes de silêncio são transmitidos e recebidos. Em um exemplo, o buffer de-jitter ajusta o comprimento do buffer de-jitter de acordo com o tipo dos pacotes recebidos. Em outras palavras, o sistema pode decidir reduzir o comprimento do buffer de-jitter necessário para as partes de silêncio da comunicação. Note-se que os métodos IBA podem ser aplicados a quaisquer comunicações nas quais a reprodução se faça de acordo com um esquema de temporização predeterminado, tal como uma taxa fixa, etc.
Deformação Temporal
Um jorro de fala é geralmente constituído de múltiplos pacotes de dados. Em um exemplo, a reprodução de um primeiro pasote de um jorro de fala pode ser retardado em um comprimento igual ao retardo do buffer de-jitter. O retardo do buffer de-jitter pode ser determinado de diversas maneiras. Em um cenário, o retardo do buffer dejitter pode ser um retardo de buffer de-jitter calculado, baseado nem uni algoritmo como o da Equação 1 acima. Em outro cenário, o retardo do buffer de-jitter pode ser o tempo que leva para receber dados de voz que equivalem ao comprimento do retardo do buffer de-jitter.
29/77
Alternativamente, o retardo do buffer de-jitter pode ser selecionado como o menor dos valores antes mencionados. Neste exemplo, suponha-se que o retardo do buffer de-jitter seja calculado como 60 ms utilizando-se a Equação 1 e o primeiro pacote de um jorro de fala de um jorro de fala seja recebido em um primeiro tempo ti. Quando o pacote seguinte do jorro de fala é recebido 50 ms após o primeiro pacote, os dados do buffer de-jitter adaptativo equivalem ao retardo de-jitter, 60 ms. Em outras palavras, o tempo do recebimento de um pacote no buffer de-jitter adaptativo até a reprodução é de 60 ms. Note-se que o comprimento alvo do buffer de-jitter adaptativo pode ser ajustado de modo a se alcançar um retardo de 60 ms. Tal cálculo determina o número de pacotes a serem armazenados de modo a obter o tempo de retardo.
O buffer de-jitter adaptativo monitora o enchimento e o esvaziamento dos dados do buffer e ajusta a saída do buffer, de modo a manter o buffer no comprimento de retardo alvo, isto é, a quantidade de dados para se alcançar o tempo de retardo alvo. Quando o buffer de-jitter envia o primeiro pacote do jorro de fala para ser reproduzido, há um retardo igual a Δ, onde Δ = MIN (retardo do buffer de-jitter, o tempo levado para receber dados de voz iguais ao retardo de-jitter). Pacotes subseqüentes do jorro de fala são retardados em Δ mais o tempo que se leva para reproduzir os pacotes anteriores. Assim, o retardo do buffer de-jitter dos pacotes subseqüentes do mesmo jorro de fala é implicitamente definido uma vez definido o retardo do buffer de-jitter para o primeiro pacote. Na prática, esta definição do retardo do buffer de-jitter pode exigir considerações adicionais para acomodar situações como as ilustradas na figura 10.
30/77
A figura 10 ilustra a transmissão de informações de voz em jorros de fala. Jorro de fala 150 é recebido no tempo t0 e o jorro de fala 154 é recebido no tempo t2. Há um período de silêncio 152 recebido entre o jorro de fala 150 e o jorro de fala 154 de 20 ms. Quando do recebimento, o buffer de-jitter adaptativo pode armazenar os dados recebidos e determinar os retardos para reprodução de cada jorro de fala. Neste exemplo, o jorro de fala 150 é recebido no buffer de-jitter no tempo t0, em que o tempo de retardo do buffer de-jitter adaptativo é calculado como 80 ms. O retardo do buffer de-jitter é adicionado ao tempo de recebimento, resultando no tempo de reprodução. Desta maneira, o jorro de fala 150 é retardado pelo buffer dejitter adaptativo em 8 0 ms antes da reprodução. Jorro de fala 150 começa a reprodução no tempo ti, onde ti= t0 + 80 ms, ou 80 ms depois de recebido o jorro de fala 150; e completa a reprodução no tempo t4. Utilizando um algoritmo como o da Equação 1 para calcular o comprimento alvo do buffer dejitter como acima, o retardo do buffer de-jitter aplicado ao jorro de fala 150 é de 40 ms. Isto significa que o primeiro pacote do jorro de fala 154 será reproduzido no tempo t3, onde t3 = t2 + 40 ms, ou 40 ms depois de recebido o jorro de fala 154. Reprodução do pacote 154 no tempo tj, contudo, entra em conflito com a reprodução do último pacote do jorro de fala 150, que conclui a reprodução no tempo t4. Portanto, o retardo calculado de 40 ms do buffer de-jitter (para o pacote 154) não permite tempo suficiente para que o jcrro de fala 150 conclua a execução. Para evitar tal conflito e permitir que ambos os pacotes sejam reproduzidos corretamente, o primeiro pacote do jorro de fala 154 deve ser executado depois cie executado o último pacote do jorro de fala 150 com um período de silêncio entre eles. Neste exemplo, o jorro de fala 150 e o jorro de
31/77 fala 154 se sobrepõem do tempo t3 para t4. Portanto, o método de reprodução neste cenário não é desejável. De modo a prevenir sobreposições entre as reproduções de pacotes conforme descrito aqui, há necessidade de detectar quando o último pacote do jorro de fala anterior é reproduzido. Assim, o cálculo do retardo do buffer de-jitter para um pacote pode considerar a temporização da reprodução dos pacotes reproduzidos anteriormente, de modo a evitar sobreposição ou conflito.
Conforme descrito acima, em um exemplo o buffer de-jitter retardado é calculado ou atualizado no começo de um jorro de fala. Restrição da atualização do retardo do buffer de-jitter ao começo de um jorro de fala, contudo, pode ser limitante, uma vez que os jorros de fala variam freqüentemente no comprimento e as condições operacionais podem alterar-se durante um jorro de fala. Considere-se o exemplo da figura 10. Assim, pode haver necessidade de atualizar o retardo do buffer de-jitter durante um jorro de fala.
Note-se que é desejável controlar a corrente de dados para fora do buffer de-jitter adaptativo de modo a manter o comprimento de retardo alvo. Desta maneira, se o buffer de-jitter adaptativo estiver recebendo dados com retardos variáveis, os dados oriundos do buffer de-jitter adaptativo são ajustados de modo a permitir que o buffer seja preenchido com dados suficientes para se obter o comprimento alvo do buffer de-jitter adaptativo. A deformação temporal pode ser utilizada para expandir os pacotes quando o buffer de-jitter adaptativo não estiver recebendo pacotes suficientes para manter o comprimento de retardo alvo. Da mesma maneira, a deformação temporal pode ser utilizada para comprimir os pacotes quando o buffer dejitter adaptativo estiver recebendo pacotes demais e
32/77 estiver armazenando pacotes acima do comprimento de retardo alvo. O buffer de-jitter adaptativo pode funcionar em coordenação com um decodificador de modo a deformar temporalmente os pacotes, conforme descrito aqui.
A figura 11 é um diagrama de blocos de um sistema que inclui dois receptores que se comunicam através de um elemento de rede. Os receptores são o AT 252 e o AT 282; conforme ilustrado, os ATs 252 e 282 são adaptados para comunicação através de uma BS 2J70. No AT 252, a unidade de processamento de transmissão 264 transmite dados de voz a um encodif icador 260, que digitaliza os dados de voz e envia os dados empacotados à unidade de processamento de camada inferior 258. Pacotes são então enviados à BS 270. Quando AT 252 recebe dados da BS 270, os dados são primeiro processados na unidade de processamento de camada inferior 258, da qual os pacotes de dados são providos a um buffer de-jitter adaptativo 256. Pacotes recebidos são armazenados no buffer de-jitter adaptativo 256 até que o comprimento alvo do buffer de-jitter seja atingido. Uma vez atingido o comprimento alvo do buffer de-jitter, o buffer de-jitter adaptativo 256 envia os dados a um decodificador 254. No exemplo ilustrado, a compressão e a expansão para implementar a deformação temporal podem ser efetuadas no decodificador 254, que converte os dados empacotados em dados de voz e envia os dados de voz a uma unidade de processamento de recepção 262. Em outro exemplo desta invenção, a compressão e a expansão do tempo (deformação temporal) podem ser efetuadas dentro do buffer de-jitter adaptativo por um controlador (não mostrado) . O funcionamento do AT 282 é semelhante ao do AT 252. AT 282 transmite dados em um percurso da unidade de processamento de transmissão 294 até o encodificador 290 até a unidade de processamento de camada inferior 288 e finalmente até a BS
0. AT 282 recebe dados em um percurso da unidade de processamento de camada inferior 288 até o buffer de-jitter adaptativo 286 até o decodificador 284 até a unidade de processamento de recepção 292. Processamento adicional não é ilustrado, mas pode afetar a reprodução de dados, tais como voz, e pode envolver processamento de áudio, exibições em tela, etc. L
As equações do buffer de-jitter apresentadas na
Equação 1 calculam o retardo do buffer de-jitter no começo de um jorro de fala. O retardo do buffer de-jitter pode representar um número especifico de pacotes, tal como o determinado pelos jorros de fala, ou pode representar um tempo esperado equivalente para reprodução de dados, tais como dados de voz. Note-se aqui que o buffer de-jitter tem um tamanho alvo, e isto determina a quantidade de dados que o buffer de-jitter espera ser armazenada em todos os pontos no tempo.
Variação no retardo dos pacotes devido às condições de canal e a outras condições operacionais pode levar a diferenças no tempo de chegada dos pacotes no buffer de-jitter. Consequentemente, a quantidade de dados (número de pacotes) no buffer de-jitter adaptativo pode ser menor ou maior do que o valor de retardo calculado do buffer de-jitter, RETARDO_DE-JITTER. Por exemplo, os pacotes podem chegar ao buffer de-jitter a uma taxa ma:.s lenta ou mais rápida do que a dos pacotes que foram gerados originalmente no encodificador. Quando os pacotes chegam ao buffer de-jitter a uma taxa mais lenta que a esperada, o buffer de-jitter pode começar a se esvaziar, uma vez que os pacotes entrantes não encherão novamente os pacotes que saem à mesma taxa. Alternativamente, se os pacotes chegarem a uma taxa mais rápida que a taxa de geração no encodificador, o buffer de-jitter pode iniciar o aumento de
tamanho, uma vez que os pacotes não saem do buffer dejitter tão rápido quanto entram. A primeira condição pode levar a underflows, ao passo que a última condição pode provocar retardos fim-a-fim elevados devido a tempos de armazenamento maiores no buffer importante porque, se o retardo dados em pacote diminuir (AT se carregada ou o usuário se moveu de-jitter. Esta última é
| f im- | a-fim do | sistema de | |
| move | até uma | área | menos |
| até | uma área | com | melhor |
qualidade de canal), é desejável incorporar esta redução de retardo à reprodução da conversa. O retardo fim-a-fim é um fator de qualidade de conversa importante, e qualquer redução no retardo de reprodução é percebida como um aumento na qualidade da conversa ou discurso.
Para corrigir as discrepâncias no buffer dejitter entre o RETARDO_DE_JITTER e a quantidade de dados realmente presente no buffer de-jitter, um exemplo de um buffer de-jitter emprega deformação temporal. Deformação temporal envolve expandir ou comprimir a duração de um pacote de conversa. O buffer de-jitter implementa a deformação temporal expandindo os pacotes de conversa quando o buffer de-jitter adaptativo inicia o esvaziamento e comprimindo os pacotes de conversa quando o buffer dejitter adaptativo se torna maior do que o RETARDO_DE_JITTER. O buffer de-jitter adaptativo pode funcionar em coordenação com um decodificador de modo a deformar pacotes temporais. Deformação temporal proporciona melhora substancial na qualidade da conversa sem aumentar o retardo fim-a-fim.
A figura 12 é um diagrama de blocos de um exemplo de buffer de-jitter adaptativo que implementa a deformação temporal. A unidade de processamento de camada física 302 provê dados à pilha de dados 304. A pilha de dados 304 emite pacotes à unidade de buffer de-jitter adaptativo e
35/7
controle 306. A unidade de processamento de Controle de Acesso ao Meio (MAC) de Link Direto (FL) 300 provê uma indicação de handoff à unidade de processamento de dejitter 306. A camada MAC implementa protocolos para receber e enviar dados na camada física, isto é, através do ar. A camada MAC pode incluir criptografia, autenticação e suporta IS-856, a camada MAC Canal de Controle, o Canal de de Tráfego Direto e Reverso, alvo 314 provê o comprimento buffer de-jitter utilizando informações de segurança, conexão. Em um sistema que contém normas que regulam ' o Acesso, assim como os Canais
O estimador de comprimento alvo do buffer de-jitter ao os cálculos apresentados na
Equação 1. A entrada no estimador de comprimento alvo 314 inclui informações de chegada de pacotes e a taxa de erros de pacote atual (PER).
Note-se que configurações alternativas podem incluir o estimador de comprimento alvo 314 dentro da unidade de buffer de-jitter adaptativo e controle 306.
Em um exemplo, a unidade de buffer de-jitter adaptativo e controle 306 inclui controle de reprodução, que controla a taxa de dados provida para reprodução. Da unidade de buffer de-jitter adaptativo e controle 306, os pacotes são enviados a uma unidade de Transmissão Descontínua (DTX) 308, em que a unidade DTX 308 provê informações de ruído de fundo ao decodificador 310 quando dados de conversa não estão sendo recebidos. Note-se que os pacotes providos pela unidade de buffer de-jitter adaptativo e controle 306 estão prontos para processamento de decodificação e podem ser referidos como pacotes de vocoder. 0 Decodificador 310 decodifica os pacotes e provê amostras de conversa Moduladas pelo Código de Pulso (PCM) à unidade de deformação temporal 312. Em exemplos alternativos, a unidade de deformação temporal 312 pode ser
36/77 implementada dentro do decodificador 310. Unidade de deformação temporal 312 recebe um indicador de deformação temporal da unidade de buffer de-jitter adaptativo e controle 306. O indicador de deformação temporal pode ser um sinal de controle, um sinal de instrução ou um flag. Em um exemplo, um indicador de deformação temporal pode ser um indicador de multiestados, que tem, por exemplo, uma compressão, uma expansão e nenhuma deformação temporal.
í·
Pode haver diferentes valores para os diferentes níveis de compressão e/ou diferentes níveis de expansão. Em um exemplo, o indicador de deformação temporal instrui a unidade de deformação temporal 312 a expandir ou comprimir dados. O indicador de deformação temporal indica expandi.1?, comprimir ou nenhuma deformação. O indicador de deformação temporal pode ser considerado um sinal de controle que inicia a ação na unidade de deformação temporal 312. O indicador de deformação temporal pode ser uma mensagem que especifica como expandir ou comprimir os pacotes. O indicador de deformação temporal pode identificar os pacotes a serem deformados temporalmente assim como a ação a ser executada, expandir ou comprimir. Além disto, o indicador de deformação temporal pode prover uma escolha de opções à unidade de deformação temporal 312. Durante um intervalo de silêncio, o módulo DTX modifica o fluxo de apagamentos provido pelo buffer de-jitter em um fluxo de apagamentos e quadros de silêncio que o decodificador utiliza para reconstruir um ruído de fundo mais preciso e de qualidade mais elevada. Em um exemplo alternativo, o indicador de deformação temporal ativa e desativa a deformação temporal. Em ainda outro exemplo, o indicador identifica o grau de compressão e expansão utilizado paia reprodução. A unidade de deformação temporal 312 pode modificar as amostras do decodificador e provê as amostreis
37/77 ao processamento de áudio 316, que pode incluir uma unidade de interface e conversão, assim como um driver de áudio e um alto-falante.
Embora o indicador de deformação temporal identifique quando comprimir ou quando expandir, há necessidade de determinar quanta deformação temporal aplicar a um dado pacote. Em uma modalidade, a quantidade de deformação temporal é fixa e os pacotes são deformados temporalmente de acordo com o ciclo de conversa, ou densidade.
Em uma modalidade, o indicador de deformação temporal é comunicado como uma porcentagem do nível de expansão alvo ou de compressão alvo. Em outras palavras, o indicador de deformação temporal instrui a comprimir em uma dada porcentagem ou a expandir em uma dada porcentagem.
Em um cenário, pode ser necessário reconhecer uma característica conhecida dos dados entrantes. Por exemplo, um encodif icador pode antecipar os dados de um tom conhecido ou que têm características específicas de comprimento, por exemplo. Nesta situação, uma vez que uma característica particular é antecipada, não seria desejável modificar os dados recebidos utilizando-se a deformação temporal. Por exemplo, um encodificador pode esperar que os dados entrantes tenham um comprimento de tom particular. Entretanto, se a deformação temporal for habilitada, o comprimento do tom pode ser modificado pela deformação temporal. Portanto, neste cenário a deformação temporal não deve ser habilitada. Comunicações baseadas em tons incluem, mas não se limitam a, informações do Dispositivo de TeleMáquinaDeEscrever/Telecomunicações para os Surdos (TTY/TDD), aplicações que utilizam entradas de teclado ou outras aplicações que utilizam comunicações baseadas em tons. Em tais comunicações, o comprimento das informações
38/77 portadoras de tom e que, portanto, modificam a densidade ou o comprimento do tom, tal como a compressão ou expansão na reprodução, pode resultar em perda dessas informações. No TTY/TDD e em outras aplicações que permitem o recebimento por receptores com deficiências de audição, o decodificador também provê o status de seu processamento dentro da banda de tal comunicação. Esta indicação é utilizada papa mascarar as indicações de deformação temporal providas pelo buffer de-jitter. Se o decodificador estiver processando pacotes com informações TTY/TDD, a deformação temporal deve ser desabilitada. Isto pode ser feito de 2 maneiras; prover o status do TTY/TDD ao controlador do buffer de-jitter ou prover o status do TTY/TDD à unidade de deformação temporal. Se o status de TTY/TDD do decodificador é provido ao controlador do buffer de-jitter, o controlador não deve fornecer qualquer indicação de expansão ou compressão quando o vocoder indicar o processamento do TTY/TDD. Se o status de TTY/TDD é provido à unidade de deformação temporal, isto atua como um filtro, e a unidade de deformação temporal não atua sobre as indicações de deformação temporal se o decodificador estiver processando informações do TTY/TDD.
Em um sistema como o ilustrado na figura 12, a unidade de buffer de-jitter adaptativo e controle 306 monitora a taxa dos dados entrantes e gera um indicador de deformação temporal quando pacotes demais ou de menos estão disponíveis ou em buffer. A unidade de buffer de-jitter adaptativo e controle 306 determina quando deformar temporalmente e qual ação executar. A figura 13A ilustra o funcionamento de um exemplo de buffer de-jitter adaptativo que faz determinações de deformação temporal utilizando limites de compressão e expansão. O buffer de-jitter acumula pacotes que podem ter chegado a intervalos de tempo
39/77 irregulares. O estimador de comprimento alvo de-jitter 314 gera um comprimento alvo de buffer de-jitter; o comprimento alvo de buffer de-jitter é então aplicado ao buffer dejitter. Na prática, uma unidade de buffer de-jitter adaptativo e controle 306 utiliza o valor de comprimento do buffer de-jitter para tomar decisões de controle sobre o funcionamento do buffer de-jitter e o controle de reprodução. O limite de compressão e o limite de expansão indicam quando a compressão ou expansão é acionada, respectivamente. Estes limites podem ser especificados coírio uma fração do comprimento alvo de de-jitter.
Conforme ilustrado na figura 13A, o comprimento alvo do buffer de-jitter é dado como LAlvo. O limite de compressão é dado como TComprimir , e o limite de expansão é dado como TExpandir· Quando o comprimento do buffer de-jitter aumenta acima do limite de compressão, TComprimir, o buffer de-jitter indica ao decodificador que os pacotes devem ser comprimidos.
De maneira semelhante, quando o comprimento do buffer de-jitter se esvazia abaixo do limite de expansão, TExpandir, o buffer de-jitter indica ao decodificador que os pacotes devem ser expandidos e efetivamente reproduzidos a uma taxa mais lenta.
Um ponto operacional entre os limites de expansão e compressão evita underflows assim como aumentos excessivos nos retardos fim-a-fim. Portanto, a operação alvo é entre TCoItiprimir e TExpandir· Em um exemplo, os valores para os limites de expansão e compressão são ajustados em respectivamente 50% e 100% do valor alvo do buffer dejitter. Embora em um exemplo a deformação temporal possa ser efetuada dentro do decodificador, em exemplos alternativos esta função pode ser desempenhada fora do decodificador, como, por exemplo, após a decodificação.
40/77
Entretanto, pode ser mais simples deformar temporalmente o sinal antes da sintetização do sinal. Se tais métodos de deformação temporal viessem a ser aplicados após a decodificação do sinal, seria necessário estimar o período de densidade do sinal.
Em determinados cenários, o comprimento do buffer de-jitter pode ser maior, como, por exemplo, em um sistema W-CDMA. Um gerador de limites de deformação temporal pode gerar múltiplos limites de compressão e expansão. Estes limites podem ser calculados em resposta às condições operacionais. Limites a multiniveis são ilustrados na figura 13B. TCi é um primeiro limite de compressão, TC2 é um segundo limite de compressão e Tc3 é um terceiro limite de compressão. São também ilustrados TEi, TE2 e TE3, que representam três diferentes valores para os limites de expansão. Os limites podem ser baseados na porcentagem de deformação temporal (quantos pacotes se tornam deformados no tempo), nos pacotes comprimidos, na porcentagem de pacotes expandidos ou na razão destes dois valores. 0 número de limites pode ser alterado conforme necessário, isto é, mais ou menos limites podem ser necessários. Cada um dos limites refere-se a uma taxa de compressão ou expansão diferente, como, por exemplo, para sistemas que exigem granularidade mais refinada, mais limites podem ser utilizados e, para granularidade mais grosseira, menos limites podem ser utilizados. TEi, TE2 e TE2, etc., podem ser uma função do comprimento de retardo alvo. Limite pode ser alterado rastreando-se os underflows retardados e com base em estáticas de; erros, tal como a PER.
A figura 14 ilustra a reprodução de pacotes com e sem deformação temporal. Na figura 14, o PKT 1 é transmitido no tempo ti, o PKT 2 é enviado no tempo t2 e assim por diante. Os pacotes chegam ao receptor conforme
41/77 indicado, isto é, o PKT 1 chega em t2' e o PKT 2 chega em t2'’. Para cada pacote, o tempo de reprodução sem a utilização da deformação temporal é dado como REPRODUÇÃO SEM DEFORMAÇÃO. Em contraste, o tempo de reprodução em que 5 se utiliza deformação temporal é dado como REPRODUÇÃO COM
DEFORMAÇÃO. Uma vez que o presente exemplo é para dados em tempo real, tais como comunicações de conversa, o tempo de reprodução antecipada dos pacotes se dá a intervalos de tempo fixos. Durante a reprodução, idealmente cada pacote 10 chega antes do tempo de reprodução antecipada. Se um pacote chega tarde demais para reprodução no tempo antecipado, pode haver um impacto sobre a qualidade da reprodução.
PKTs 1 e 2 são recebidos na hora certa, e são reproduzidos, sem deformação temporal. Tanto o PKT 3 quanto 15 o PKT 4 são recebidos ao mesmo tempo, t4' . O tempo de recebimento para ambos os pacotes é satisfatório, uma vez que cada pacote é recebido antes dos tempos de reprodução antecipada afins, t4'' para o PKT 3 e t5' para o PKT 4. PKTs 3 e 4 são reproduzidos na hora certa sem deformação. 20 Um problema surge quando o PKT 5 é recebido no tempo tg' , após o tempo de reprodução antecipada. Um apagamento é reproduzido no lugar do PKT 5 no tempo de reprodução antecipada. PKT 5 chega mais tarde, depois que o apagamento tiver começado a reprodução.
Em um primeiro cenário sem deformação, o PKT 5 é descartado e o PKT 6 é recebido e reproduzido no tempo de reprodução antecipada seguinte. Note-se, neste caso, que o PKT 6 foi recebido a tempo para reprodução. Em um segundo cenário, se o PKT 5 e todos os pacotes subseqüentes ao PKT 30 5 forem retardados, cada pacote pode chegar tarde demais para reprodução antecipada, do que pode resultar uma cadeia de apagamentos. Em ambos estes cenários, as informações são perdidas, isto é, o PKT 5 é descartado no primeiro cenário;
42/77 o PKT 5 e os pacotes subsequentes são perdidos no segundo cenário.
Alternativamente, a utilização de uma técnica IBA permite que o PKT 5 seja reproduzido no tempo de reprodução antecipada seguinte, em que os pacotes subseqüentes continuam a partir desse ponto. IBA impede perda de dados, mas retarda o fluxo de pacotes.
Tal reprodução sem deformação temporal pode aumentar o retardo fim-a-fim em um sistema de comunicação. Conforme ilustrado na figura 14, os retardos inter-pacote podem resultar em informações perdidas ou em retardos na reprodução.
Pela implementação da deformação temporal, quando o PKT 5 chega após seu tempo de reprodução antecipada, os pacotes são expandidos e um apagamento pode ser evitado. Por exemplo, a expansão do PKT 4 pode provocar reprodução em 23 ms em vez de em 20 ms. PKT 5 é reproduzido quando é recebido. Isto se dá mais cedo do que teria sido com a reprodução caso um apagamento tivesse sido enviado como substituto (conforme ilustrado em uma alternativa para a reprodução sem deformação temporal, mas com a IBA, conforme descrito na figura 14). A expansão do PKT 4 em vez do envio de um apagamento resulta em menos deterioração na qualidade da reprodução. Assim, a deformação temporal provê melhor qualidade de reprodução total, assim como redução na latência. Conforme ilustrado na figura 14, com a utilização da deformação temporal os pacotes subseqüentes ao PKT 5 são reproduzidos mais cedo do que sem a utilização da técnica de deformação temporal. Neste exemplo especifico, PKT 7 é reproduzido no tempo t9, quando a deformação temporal é utilizada, o que ocorre mais cedo do que sem deformação temporal.
Uma aplicação de deformação temporal para melhorar a qualidade da reprodução ao mesmo tempo considerando-se as alterações de condições operacionais assim como as alterações nas características das informações transmitidas na transmissão da conversa. Na medida em que as características variam, havendo jorros de fala e períodos de silêncio, o comprimento alvo do buffer de-jitter e os limites de compressão e expansão para cada tipo de dados podem ser diferentes.
A figura 15 ilustra exemplos de compressão de silêncio e expansão de silêncio devido a diferenças no retardo de-jitter de um jorro de fala para outro. Na figura 15, as regiões sombreadas 120, 124 e 128 representam jorros de fala, enquanto as regiões não sombreadas 122 e 126 representam os períodos de silêncio das informações recebidas. Recebido, o jorro de fala 120 começa no tempo ti e termina no tempo t2. No receptor, o retardo do buffer dejitter é introduzido e, portanto, a reprodução do jorro de fala 120 começa no tempo ti' . O retardo do buffer de-jitter é identificado como a diferença entre o tempo ti'e o tempo ti. Recebido, o período de silêncio 122 inicia-se no tempo t2'e finaliza no tempo t3. O período de silêncio 122 é comprimido e reproduzido como o período de silêncio 132 do tempo t2'para o tempo t3' que é menor que a duração de tempo original do período de silêncio 122 recebido. Jorro de fala 124 inicia-se no tempo t3 e finaliza no tempo t4 na fonte. Jorro de fala 104 é reproduzido no receptor do tempo t3' para o tempo t4' . Período de silêncio 126 (do tempo t4 para t5) é expandido no receptor quando da reprodução como período de silêncio 136, em que (t5 ,-t4'') é maior que (t5-t4). Um período de silêncio pode ser comprimido quando é necessário o buffer de-jitter reproduzir pacotes e expandido quando é necessário um
44/77 buffer de-jitter retardar a reprodução dos pacotes. Em um exemplo, a compressão ou' a expansão dos períodos de silêncio provoca uma deterioração insignificante na qualidade de voz. Assim, os retardos de-jitter adaptativo podem ser obtidos sem deterioração da qualidade de voz. No exemplo da figura 15, o buffer de-jitter adaptativo comprime e expande os períodos de silêncio conforme identificados e controlados pelo buffer de-jitter adaptativo.
Note-se que, conforme aqui utilizada, a deformação temporal refere-se ao controle adaptativo da reprodução em resposta ao tempo de chegada e ao comprimento dos dados recebidos. Deformação temporal pode ser implementada utilizando-se a compressão dos dados quando da reprodução, a expansão dos dados quando da reprodução ou utilizando-se tanto a compressãoquanto a expansão dos dados quando da reprodução. Em um exemplo, um limite é utilizado para acionar a compressão. Em outro exemplo, um limite é utilizado para acionar a expansão. Em ainda outro exemplo, dois acionadores são utilizados: um para compressão e um para expansão. Em ainda outros exemplos podem ser empregados múltiplos acionadores, indicando diversos níveis de deformação temporal, como, por exemplo, reprodução rápida a taxas diferentes.
Deformação temporal pode ser também efetuada dentro do decodificador. Técnicas para efetuar a deformação temporal no decodificador são descritas no pedido copendente N° 11/123.467, intitulado TIME WARPING FRAMES INSIDE THE VOCODER BY MODIFYING THE RESIDUAL, depositado em 5 de maio de 2005.
Em um exemplo, a deformação temporal incorpora um método para unir segmentos de conversa. União de segmentos de conversa envolve comparar amostras de conversa
em pelo menos dois segmentos de conversa consecutivos e, se uma correlação for encontrada entre os segmentos comparados, criar um único segmento de pelo menos dois segmentos consecutivos. União da conversa é feita enquanto se tenta preservar a qualidade da conversa. Preservação da qualidade da conversa e a redução ao minimo da introdução de artefatos, tais como sons que deterioram a qualidade para o usuário, inclusive cliques e pops, na conversa de saída são obtidas pela seleção cuidadosa do segmento a ser unido. A seleção dos segmentos de conversa é baseada na semelhança ou correlação dos segmentos.
a semelhança dos segmentos da conversa,
Quanto mais íntima melhor a qualidade de conversa resultante e menor probabilidade de introdução de um artefato de conversa.
A figura 16 ilustra um sinal de conversa representado graficamente ao longo do tempo. O eixo geométrico vertical representa a amplitude do sinal; e o eixo geométrico horizontal representa o tempo. Note-se que o sinal de conversa tem um padrão distintivo, no qual partes do sinal de conversa se repetem ao longo do tempo. Neste exemplo, o sinal de conversa inclui um primeiro segmento do tempo ti até t2, que se repete como um segundo segmento durante t2 até t3. Quando tal repetição de um segmento é encontrada, um dos segmentos ou mais, como o do tempo t2 até o tempo t3, podem ser eliminados com pouco ou efetivamente nenhum impacto sobre a qualidade de reprodução da amostra.
Em um exemplo, Equação 4, como apresentada a seguir, pode ser utilizada para se encontrar uma relação entre os dois segmentos de conversa. Correlação é uma medida da intensidade da relação entre os dois segmentos. Equação 4 provê um fator de correlação absoluto e delimitado (de -1 a +1) como uma medida da intensidade da
46/77 relação, onde um número negativo baixo reflete uma relação mais frágil, isto é, menos correlação, do que um número positivo elevado, que reflete uma relação mais forte, isto é, mais correlação. Se a aplicação da Equação 4 indica boa semelhança, a deformação temporal é executada. Se a aplicação da Equação 4 mostra pouca semelhança, artefatos podem estar presentes em um segmento de conversa unido. A correlação é dada como:
£[«>·)-</)-»>.)]
............
Na Equação 4, x e y representam os dois segmentos de conversa, m representa a janela através da qual a correlação entre os dois segmentos está sendo calculada, d representa a parte de correlação e i é um índice. Se a aplicação da Equação 4 indicar que segmentos podem ser unidos sem a introdução de artefatos, união pode ser feita utilizando-se uma técnica de adicionar-sobrepor. A técnica de adicionar-sobrepor combina os segmentos comparados e produz um segmento de conversa a partir de dois segmentos de conversa separados. A combinação com a utilização de adição-sobreposição pode ser baseada em uma equação como a Equação 5, apresentada como:
Segmento Fora [i ] = (Segmento !(/) * (TamanhodeJanela — 0 4· (Segmento 2(í) Tamanhode Janela
Tamanhode Janela (3) i 0. .Tamanho de Janela -1 Tamanho de Janela = TamanhodeJanela R
As amostras resultantes podem ser amostras com Modulação por Código de Pulso (PCM) . Cada amostra PCM tem um formato predeterminado, que define o comprimento dos bits e o formato da amostra PCM. Por exemplo, um número
assinalado por 16 bits pode ser o formato a representar uma amostra PCM. A técnica de adição-sobreposição produzida pela aplicação da Equação 5 inclui ponderação de modo a prover uma transição suave entre a primeira amostra PCM do
Segmentol e a última amostra PCM do Segmento2. Na Equação
5,
TamanhoDeJanelaR é o número de amostras
PCM em uma janela de referência e SegmentoFora é o tamanho do segmento adicionado-sobreposto resultante.
TamanhoDeJanela é igual ao tamanho da janela de referência e Segmento é o tamanho de segmento alvo. Estas variáveis são determinadas de acordo com a taxa de amostragem, o teor de frequência da conversa e a compensação desejada entre a qualidade e a complexidade computacional.
A técnica de adição-sobreposição descrita acima é ilustrada nas figuras 17A e 17B. Na figura 17A, é mostrado um segmento de conversa constituído por 160 amostras PCM. Neste exemplo, o TamanhoDeJanelaR é representado pelas amostras PCM 0 - 47. Em outras palavras, as amostras PCM 0-47 correspondem ao número de amostras na janela de referência de tamanho TamanhoDeJanela. Segmento refere-se ao tamanho da área de busca alvo e é representado pelas amostras PCM 10 104. Neste exemplo, as amostras PCM 0-47 são comparadas com as amostras 10-104, uma amostra PCM de uma vez, de modo a se encontrar a melhor correlação entre as amostras de referência e a área de busca alvo. A localização dentro da área de busca alvo onde a correlação máxima é encontrada é referida como offset. No ponto de offset, o TamanhoDeJanelaR pode ser combinado com a parte do Segmento que corresponde ao tamanho do TamanhoDeJanelaR. O segmento de conversa correspondente às amostras PCM 104-160 é deixado intocado.
/77
Na figura 17B, as primeiras amostras do TamanhoDeJanelaR do segmento de conversa são comparadas com as partes subsequentes do segmento de fala, uma amostra PCM de uma vez. A localização onde a correlação máxima é encontrada entre o TamanhoDeJanelaR e um comprimento correspondente de amostras dentro da área de busca alvo {Segmento) é o offset. O comprimento do offset é a distância do começo do segmento de conversa até o ponto de correlação máxima entre o TamanhoDeJanelaR e o Segmento. Uma vez encontrada a correlação máxima, o TamanhoDeJanelaR é unido (no ponto de offset) com um Segmento de comprimento correspondente. Em outras palavras, a adição-sobreposição é efetuado adicionando-se TamanhoDeJanelaR a uma parte do Segmento do mesmo comprimento. Isto é feito no ponto de offset, conforme ilustrado. O restante das amostras é copiado do segmento original, conforme ilustrado. O segmento de conversa resultante consiste nas amostras restantes copiadas, como é o caso, do segmento de conversa original e anexadas ao segmento unido, conforme ilustrado. O pacote resultante é mais curto que o segmento original pelo comprimento do offset. Este processo é referido como compressão da conversa. Quanto menos um segmento de conversa é comprimido, menor a probabilidade de que alguém detecte qualquer deterioração na qualidade.
Expansão de conversa é efetuada quando o buffer de-jitter contiver um número baixo de pacotes de voz. A probabilidade de underflows é aumentada se o buffer dejitter tiver um número baixo de pacotes. O buffer de-jitter pode alimentar um apagamento no decodificador quando ocorre um underflow. Isto, contudo, leva à deterioração na qualidade de voz. De modo a prevenir tal deterioração na qualidade de voz, a reprodução dos últimos poucos pacotes
49/77 no buffer de-jitter pode ser retardada. Isto é. feito expandindo-se os pacotes.
Expansão de conversa pode ser efetuada repetindose múltiplas amostras PCM de um segmento de conversa. Repetição de múltiplas amostras PCM evitando-se defeitos ou achatamento da densidade é efetuada trabalhando-se com mais amostras PCM do que quando a compressão do tempo de conversa é efetuada. Por exemplo, o número de amostras PCM utilizadas para implementar a expansão da conversa pode ser o dobro do número de amostras PCM utilizadas na compressão do tempo de conversa. As amostras PCM adicionais podem ser obtidas dos pacotes de conversa anteriores executados.
A figura 18A ilustra um exemplo de expansão da conversa, em que cada pacote ou segmento de conversa é de 160 amostras PCM de comprimento e um segmento de conversa pré-expandido é gerado. Neste exemplo, são comparados dois segmentos de conversa; um segmento de conversa atual e um segmento de conversa anterior. As primeiras amostras PCM de TamanhoDeJanelaR do segmento de conversa atual são selecionadas como amostras de referência. Estas amostras de TamanhoDeJanelaR são comparadas com o Segmento de um pacote de conversa anterior, em que é determinado um ponto de correlação (ou offset) máxima. As amostras PCM de TamanhoDeJanelaR são adicionadas-sobrepostas ao tamanho correspondente do Segmento dentro do pacote anterior no ponto de offset. Um segmento de fala pré-expandido é criado copiando-se e anexando-se o restante das amostras do segmento de conversa anterior ao segmento adicionadosobreposto, conforme ilustrado na figura 18A. O comprimento do segmento de conversa expandido é então o comprimento do segmento pré-expandido mais o comprimento do segmento de conversa atual, conforme ilustrado na figura 18A. Neste
50/77 exemplo, as amostras PCM são deslocadas do começo de um segmento de conversa.
Em outro exemplo, o pacote ou amostra de conversa atual é expandida conforme ilustrado na figura 18B. As amostras de referência, TamanhoDeJanelaR, são localizadas no começo do segmento de conversa atual. TamanhoDeJanelaR é comparado com o restante do pacote de conversa atual até que um ponto de correlação (offset) máxima seja localizado. As amostras de referência são adicionadas-sobrepostas às amostras PCM correspondentes que se verificou terem correlação máxima dentro do segmento de conversa atual. 0 segmento de conversa expandido é então criado copiando-se as amostras PCM começando no inicio do pacote até o ponto de offset, anexando-se o segmento adicionado-superposto a isto e copiando-se e anexando-se as amostras PCM restantes, não modificadas, do pacote atual. O comprimento do segmento de conversa expandido é igual à soma do offset mais o comprimento do pacote original.
Em outro exemplo, conversa é expandida conforme ilustrado na figura 18C, em que o TamanhoDeJanelaR é embutido no pacote ou segmento de conversa atual e não ocorre no começo do pacote. OffsetR é o comprimento do segmento de conversa que corresponde à distância entre o começo do pacote atual e o ponto no qual o TamanhoDeJanelaR começa. TamanhoDeJanelaR é adicionado-sobreposto ao tamanho correspondente das amostras PCM no pacote atual encontrado no ponto de correlação máxima. O segmento de conversa expandido então criado copiando-se as amostras PCM, começando no início do pacote original ou de um pacote atual e finalizando no offset e anexando-se o segment.o adicionado-sobreposto e as amostras PCM restantes do pacote original. O comprimento do segmento de conversa expandido resultante é o comprimento do pacote original mais o offset
51/77 menos as amostras de OffsetR, isto é, o número de amostras
PCM em OffsetR, conforme definido acima·.
Limites de Deformação Temporal Filtrados
Para evitar decisões oscilantes sobre compressão e expansão, quando o número de pacotes armazenados no buffer de-jitter adaptativo varia rapidamente, as variáveis utilizadas para avaliar o status do buffer de-jitter adaptativo, isto é, o número de pacotes armazenados no
I buffer de-jitter adaptativo, um exemplo filtra tais variáveis através de uma janela de amostragem. O status do buffer de-jitter adaptativo pode referir-se ao número de pacotes armazenados no buffer de-jitter adaptativo ou a quaisquer variáveis utilizadas para avaliar os dados armazenados no buffer de-jitter adaptativo. Em um sistema que suporta entrega de dados em rajadas, IS-855 referido como lxEV-DO, o envio de pacote a um dado receptor é multiplexado por divisão de tempo no receptor pode receber vários pacotes de link direto, e o uma vez, seguidos de nenhum pacote durante algum tempo.
Isto resulta no recebimento de dados em rajadas no buffer de-jitter adaptativo do receptor.
Os dados recebidos estão efetivamente sujeitos ao agrupamento, em que pode haver ocorrências de dois ou mais pacotes chegando bem próximos uns dos outros no tempo. Tal enfeixamento pode resultar facilmente em oscilações entre a expansão e a compressão dos pacotes, em que o buffer de-jitter adaptativo provê instruções de deformação temporal em resposta à taxa des dados recebidos e ao status do buffer. Por exemplo, considere-se um exemplo no qual o valor calculado (ae retardo ou comprimento) do buffer de-jitter é de 40 ms no começo de um jorro de fala. Em um momento posterior, a carga do buffer de-jitter cai abaixo do limite de expansão, do que resulta a decisão de expandir um pacote de dados.
52/77
Imediatamente após a reprodução deste pacote, um feixe de três pacotes chega; os dados que chegam preenchem o tamanho do buffer de-jitter, de modo que o limite de compressão é ultrapassado. Isto fará com que os pacotes sejam comprimidos. Uma vez que a chegada de um feixe de pacotes pode ser seguida de chegadas de nenhum pacote durante algum tempo, o buffer de-jitter pode ser novamente esvaziado, fazendo com que os pacotes sejam expandidos. Esta espécie de alternância entre expansão e compressão pode fazer com que uma alta porcentagem de pacotes seja deformada temporalmente. Isto é indesejável, uma vez que se gostarra de restringir a porcentagem de pacotes cujas informações de sinal foram modificadas devido à deformação temporal a um pequeno valor.
Em um exemplo, tais oscilações são evitadas suavizando-se os efeitos que o enfeixamento pode ter sobre o controle adaptativo do buffer de-jitter adaptativo e sobre a deformação temporal e a reprodução dos dados. Neste exemplo são utilizados valores médios na determinação de quando se deve efetuar a deformação temporal. As médias são calculadas filtrando-se as variáveis utilizadas em ta:..s cálculos. Em um exemplo, os limites de compressão e expansão são determinados filtrando-se ou efetuando-se média do tamanho do buffer de-jitter. Note-se que o tamanho do buffer refere-se ao status atual do buffer.
Comparação do valor filtrado do tamanho do buffer com o limite de expansão pode resultar em um número mais elevado de underflows, uma vez que alguns pacotes que teriam sido expandidos por meio de um valor não filtrado não são expandidos por meio de um valer filtrado. Por outro lado, a comparação de um valor filtrado com o limite de compressão pode servir para amortecer a maioria de.s oscilações (ou alternância entre os controles de deformação
53/77 temporal) com impacto negativo minimo ou efetivamente nenhum impacto negativo. Portanto, os limites de compressão e expansão podem ser tratados de maneira diferente.
Em um exemplo, o valor instantâneo do tamanho do buffer de-jitter adaptativo é verificado em comparação com o limite de expansão. Em contraste, o valor filtrado do buffer de-jitter é verificado em comparação com o limite çle compressão. Em uma configuração, é utilizado um filtro de Resposta ao Impulso Infinita (IIR) para determinar o tamanho 10 médio do buffer de-jitter adaptativo, em que o buffer de-jittpr adaptativo tem um valor filtrado que pode ser recomputado periodicamente, tal como uma vez a cada 60 ms. A constante de tempo do filtro pode ser derivada de estatísticas de enfeixamento, e um exemplo disto para o lxEV-DO Rev A pode 15 ser de 60 ms. As estatísticas de enfeixamento são utilizadas para se obter a constante de tempo de filtro, uma vez que elas têm uma forte correlação com a maneira pela qual o tamanho instantâneo do buffer de-jitter oscila durante o funcionamento.
Expansão Devido a Pacotes Faltantes
Conforme observado acima, o buffer de-jitter adaptativo e cs diversos métodos para controlar o buffer de-jitter adaptativo e controlar a deformação temporal dos dados recebidos podem ser adaptados às especificações e 25 condições operacionais específicas do sistema. Para sistemas de comunicação que implementam um esquema de solicitação de repetição de modo a melhorar o desempenho, tal como o esquema de Solicitação de Repetição Automática Híbrida (H-ARQ), tal processamento de repetição tem 30 implicações sobre a maneira pela qual um pacote de conversa é expandido. Especificamente, H-ARQ pode fazer com que os pacotes cheguem reordenados (isto é, fora de ordem). Considere-se a figura 19, que ilustra um buffer de-jitter de
determinado comprimento e limite de expansão, TExpanCür, dado como 50% do comprimento alvo do buffer de-jitter. O pacote atual que é reproduzido tem o número de seqüência 20, PKT 20. 0 buffer de-jitter contém três pacotes que têm os números de seqüência 21, 23 e 24, identificados como PKT 21, PKT 23 e PKT 24, respectivamente. Quando um utilitário de reprodução solicita o pacote seguinte após reproduzir o PKT 20, , o limite de expansão não é acionado, uma vez que o buffer déjitter contém pacotes suficientes para manter um comprimento de; buffer com mais de 50% do comprimento calculado do buffer de-jitter. No presente exemplo, o PKT 21 não é, portanto, expandido. Isto pode provocar um underflow se o PKT 22 não chegar no momento em que o PKT 21 acaba de ser reproduzido, uma vez que os pacotes são reproduzidos em seqüência e, portanto, o utilitário de reprodução pode não reproduzir o PKT 23 antes do PKT 22. Embora o limite de expansão não tenha sido acionado, em um exemplo é antecipada a descontinuidade nos pacotes recebidos e é selecionada a expansão do PKT 21 de modo a permitir ao PKT 22 mais tempo para chegar. Desta maneira, a expansão do PKT 21 pode evitar um pacote faltante e um apagamento. Deste modo, um pacote pode ser expandido mesmo se o comprimento do buffer de-jitter estiver acima do limite de expansão TExpandir.
As condições nas quais os pacotes serão expandidos podem ser aperfeiçoadas. Conforme descrito acima, um pacote pode ser expandido se o tamanho do buffer de-jitter estiver abaixo do limite c^e expansão. Em outro cenário, um pacote pode ser expandido se o pacote que tem o número de seqüência seguinte não estiver presente no buffer de-j itter.
Conforme mencionado anteriormente, o retardo do buffer de-jitter pode ser calculado no começo de um jorro
55/77 de fala. Uma vez que as condições da rede, que incluem as, mas não se limitam às, condições de canal e condições de carga, podem alterar-se durante um jorro de fala, particularmente durante um jorro de fala longo, um exemplo é configurado para alterar o retardo do buffer de-jitter durante um jorro de fala. Assim, as equações de buffer déjitter apresentadas acima podem ser recalculadas periodicamente, a cada segundo de ALTERAR_TEMPO_DE_JITTER durante um jorro de fala. Alternativamente, as variávezs podem ser recalculadas quando de um evento de acionamento, tal como uma alteração significativa nas condições operacionais, carga, indicadores de interface aérea ou outros eventos. Em um exemplo, o valor de ALTERAR_TEMPO_DE_JITTER pode ser fixado em 0,2 s (200 ms),
Os limites de deformação temporal, como, por exemplo, os limites de compressão e expansão, podem fornecer orientação sobre como alterar valores durante os jorros de fala. 0 funcionamento normal refere-se ao funcionamento do receptor quando o status do buffer de20 jitter adaptativo está entre os limites de compressão e expansão e em torno do comprimento alvo do buffer dejitter. Cada limite atua como um acionador. Quando um limite é atingido ou violado, os pacotes no buffer dejitter adaptativo podem ser expandidos ou comprimidos dependendo do limite. O tamanho do buffer de-jitter adaptativo pode continuar a expandir-se ou contrair-se à medida que receba pacotes. Esta alteração constante no tamanho do buffer de-jitter adaptativo indica que se pode aproximar continuamente dos limites de expansão e compressão durante a comunicação. Em geral, o sistema tenta manter o tamanho do buffer de-jitter entre os limites de expansão e compressão que é considerado um estado estável. No estado estável, o tamanho do buffer de-jitter não é
6/7 alterado; e uma alteração no recebimento dos pacotes e, portanto, uma alteração no tamanho do buffer de-jitter adaptativo, podem fazer automaticamente com que o limite de compressão/expansão respectivamente acione e comprima/expanda os pacotes, até que o novo retardo do buffer de-jitter adaptativo seja obtido. Neste cenário, ' o comprimento de retardo alvo do buffer de-jitter adaptativo é atualizado de acordo com a ALTERAÇÃO_DE_TEMPO_DE_JITTER. O tamanho efetivo do buffer de-jitter pode não ser necessariamente calculado, uma vez que o tamanho do buffer de-jitter se altera automaticamente quando acionado em consequência de terem sido atingidos os limites de expansão/compressão de deformação temporal. Em um exemplo, o valor da ALTERAÇÃO_DE_TEMPO_DE_JITTER pode ser ajustado em 0,2 s (200 ms).
PRÉ-DEFORMAÇÃO COM HANDOFF
Handoffs são tipicamente acompanhados por perda de cobertura durante um curto período de tempo. Quando o handoff é iminente, o AT pode experimentar condições de canal precárias e aumento nos retardos dos pacotes. Em um exemplo, são processadas as condições de handoff de maneira especial, aplicando-se a deformação temporal a pacotes de conversa. Assim que o AT decide realizar handoff para uma nova estação base, esta informação pode ser utilizada para controlar o buffer de-jitter. Ao receber este sinal de handoff, o AT introduz um modo de pré-deformação, como o modo de pré-deformação 244 ilustrado na figura 8B. Neste modo, o AT expande pacotes até encontrar uma de duas condições. Sob a primeira condição, o buffer de-jitter continua a acumular pacotes, e a expansão cumulativa resulta em um tamanho de buffer de-jitter de EXPANSÃO_PRÉ_DEFORMAÇÃO. Em outras palavras, a expansão dos pacotes é efetuada até que a EXPANSÃO_PRÉ_DEFORMAÇÃO seja
alcançada. Alternativamente, sob uma segunda condição, um período de tempo TEMPO_DE_DEFORMAÇÃO foi satisfeito. Um temporizador é iniciado quando do recebimento de um sinal de handoff ou indicador de interrupção; o temporizador expira no TEMPO_DE_DEFORMAÇÃO. Uma vez que uma destas condições tenha sido satisfeita, o AT sai do modo de pré deformação. Durante o modo de pré-deformação, nenhum pacote é comprimido a menos que a condição Finalizar_Jorro_De_Fala (descrita mais adiante) seja satisfeita, isto porque o buffer de-jitter desejará acumular pacotes suficientes para enviá-los ao utilitário de reprodução intervalos regulares.
Em um exemplo no qual os pacotes são esperados a intervalos regulares, como, da EXPANSÃO_PRÉ_DEFORMAÇÃO do TEMPO_DE_DEFORMAÇÃO por pode como exemplo, de ms, o valor
Handoffs são apenas interrupção. O buffer mecanismo para tratar ser ajustado em 40 sendo equivalente uma de-j itter com handoffs ms
100 forma de eventos pode ou de implementar um outros tipos de interrupção. As para isto são quantidade de excesso tratar da interrupção de-jitter que é (EXPANSÃO_PRÉ_DEFORMAÇÃO) e por necessária para quanto tempo o buffer de-jitter continuará funcionando neste modo de rej eição de interrupção (TEMPO_DE_DEFORMAÇÃO).
CONTAGEM DE UNDERFLOWS RETARDADOS
Uma vez que as equações de buffer de-j itter providas acima são projetadas para terem como alvo una porcentagem de underflows retardados, é desejável medir com precisão o número de underflows retardados. Quando ocorre um underflow, não se sabe se o underflow foi causado a um retardo de pacote ou a um pacote descartado em algum lugar na rede, isto é, no percurso de transmissão. Ilá
t
I necessidade, portanto, de se dar conta com precisão do tipo de underflow.
Em um exemplo, para comunicações em que se utiliza RTP/UDP/IP, cada pacote inclui um número de seqüência RTP. Números de seqüência são utilizados para dispor os pacotes recebidos na ordem em que foram transmitidos.
Quando ocorre um underflow, o número cie seqüência
RTP do pacote que causa o underflow pode ser armazenado em uma memória, tal como em um arranjo de memórias.
Se um pacote com o número de seqüência identificado chegar mais tarde, este underflow é contado como underflow de retardo.
número de
A taxa de underflows underflow retardado é a para o número de pacotes razão do recebidos totais. O número de underflows e o número de pacotes recebidos são ambos ajustados em zero cada vez que as equações de buffer de-jitter são atualizadas.
Aperfeiçoamento no Começo e ao Fim de um Jorro de Fala
Considere-se tempo de uma conversa os eixos geométricos a figura 20, que ilustra a linha de entre dois usuários. Neste gráfico, verticais representam o tempo. Cada usuário transmite jorros de fala e períodos de silêncio, que são então recebidos pelo outro usuário. Por razões de clareza, os segmentos de bloco sombreados 400 e 430 representam jorros de fala (segmentos de conversa) para o Usuário 1. O s€;gmento de bloco não sombreado 405 representa os jorros de fala para o Usuário 2. As áreas fora dos jorros de fala na linha de tempo representam os momentos em que os usuários não estão falando, mas podem estar escutando um ao outro ou recebendo um período de silêncio. Segmento 400 é reproduzido no Usuário 2. Uma vez terminada a reprodução do segmento de conversa 400 no Usuário 2, o Usuário 2 aguarda durante um curto intervalo de tempo antes
59/ΊΊ de começar a falar. 0 começo do primeiro segmento de fala 405 do Usuário 2 é em seguida ouvido pelo Usuário 1. O Retardo de Ida e Volta (RTD) relativo à conversa percebido pelo Usuário 1 é o intervalo de tempo entre o momento em 5 que o Usuário 1 parou de falar e o momento em que o Usuário ouviu o começo do segmento de fala do Usuário 2. RTD relativo à conversa não é um retardo fim-a-fim unidirecional, mas é especifico do usuário e significativo do ponto de vista dos usuários. Por exemplo, se o RTD relativo à conversa for grande demais para o Usuário 1, será mostrado um prompt para o Usuário 1 iniciar a conversa novamente sem esperar que o segmento de conversa do Usuário seja reproduzido. Isto quebra a corrente da conversa e é percebido como deterioração na qualidade da conversa.
0 RTD relativo à conversa experimentado pelo
Usuário 1 pode ser alterado de diferentes maneiras. Em um exemplo, o tempo em que o final do segmento de conversa do Usuário 1 é reproduzido para o Usuário 2 pode ser alterado. Em um segundo exemplo, o tempo em que o começo do segmento de conversa do Usuário 2 é reproduzido para o Usuário 1 é alterado. Note-se que os retardos apenas do começo e fim dos jorros de fala influem sobre a qualidade de voz em uma conversa. Um objetivo projetado é adicionalmente reduzir os retardos no começo e no fim dos jorros de fala.
Em um exemplo, o objetivo é aperfeiçoar o começo de um jorro de fala. Este aperfeiçoamento pode ser obtido manipulando-se o primeiro pacote de um jorro de fala do Usuário 1 de modo que um ouvinte, o Usuário 2, receba o pacote mais cedo do que se os retardo de buffer de-jitter 30 adaptativo defaults tivessem sido implementados. O retardo aplicado a um pacote em um buffer de-jitter adaptativo pode ser o retardo de buffer de-jitter adaptativo default, um valor calculado, ou um valor selecionado de modo a se ter
60/77 como resultado a recepção, pelo ouvinte, do pacote em um momento particular. Em um exemplo, a temporização de um primeiro pacote de um jorro de fala varia recalculando-se o retardo do buffer de-jitter adaptativo no começo de cada jorro de fala recebido. Quando o retardo de buffer dejitter adaptativo aplicado ao primeiro pacote de um jorro de fala diminui, este primeiro pacote é despachado para o ouvinte. Quando o retardo aplicado aumenta, o primeiro pacote é recebido pelo ouvinte em um momento posterior. 0 retardo de buffer de-jitter default para um primeiro
pode ser menor que o retardo calculado do buffer de-jitter e vice-versa. No exemplo ilustrado, o retardo de-jitter do primeiro pacote de cada jorro de fala é restringido por um valor referido como RETARDO_INICIAL_MAX, que pode ser medido em segundos. Este valor pode ser um retardo recalculado de buffer de-jitter ou um retardo projetado para se obter como resultado a recepção, pelo ouvinte, do pacote em um momento designado.
valor do
RETARDO
DE_COMEÇO_MAX pode ser menor que o retardo calculado real de buffer de-j itter.
Quando
RETARDO_DE_COMEÇO_MAX é menor que o retardo calculado do buffer de-jitter e é aplicado ao primeiro pacote de um j orro de fala, os pacotes subseqüentes do jorro de faia serão expandidos automaticamente. Expansão automática dos pacotes subseqüentes ocorre porque um buffer de-jitter não pode receber pacotes à mesma taxa à qual reproduz os pacotes. Na medida em que o buffer de-jitter reproduz os pacotes, o buffer de-jitter diminui de tamanho e aproximase do limite de expansão. Uma vez alcançado o limite de expansão, a expansão é acionada e os pacotes subseqüentes no jorro de fala são expandidos até que o buffer de-jitter receba pacotes entrantes suficientes para ultrapassar o limite de expansão. Pela implementação de um valor de
61/77
RETARDO_DE_COMEÇO_MAX, o primeiro pacote do jorro de fala é recebido pelo ouvinte mais cedo, enquanto os pacotes são expandidos. 0 ouvinte está satisfeito por receber o pacote inicial mais cedo. O aperfeiçoamento do começo de um jorro de fala tem o potencial de aumentar o número de underflows em uma pequena quantidade; entretanto, um valor apropriado do RETARDO_DE_COMEÇO_MAX atenua este efeito. Em um exemplo, o valor do RETARDO_DE_COMEÇO_MAX é calculado como uipia fração do alvo de-jitter real; como exemplo, um valor de RETARDO_DE_COMEÇO_MAX de 0,7 do COMPRIMENTO_ALVO_DE_BUFFER_DE_JITTER pode levar a um aumento insignificante de underflows. Em outro exemplo, o valor de RETARDO_DE_COMEÇO_MAX pode ser um número fixo, como o de 40 ms, que leva a um aumento insignificante de underflows, como, por exemplo, em um sistema que suporta o lxEV-DO Rev A.
Expansão dos pacotes subseqüentes em um jorro de fala não deteriora a qualidade de voz total. Isto é ilustrado na figura 20, na qual o Usuário 2 recebe o primeiro pacote de um jorro de fala do Usuário 1 e o retardo inicial ou retardo unidirecional é restrito a um Tdl. Conforme ilustrado, o segmento de conversa 400 é recebido no Usuário 2 sem qualquer expansão ou compressão, mas o segmento 405 é comprimido no Usuário 1 ao ser recebido.
A figura 21 é um fluxoçrama que ilustra o aperfeiçoamento no começo dos jorros de fala. Na etapa 510, primeiro se determina se o sistema está no modo de silêncio. Modo de silêncio pode corresponder a um período de silêncio entre jorros de fala, ou ao momento em que os pacotes não estão sendo recebidos pelo buffer de-jitter. Se o sistema não estiver no modo de silêncio, o processo finaliza. Se estiver no modo de silêncio, estimação do
comprimento alvo de-jitter e feita na etapa 520. Em seguida, determina-se se o sistema é aperfeiçoado na etapa 530. O aperfeiçoamento, de acordo com um exemplo, indica que o comprimento alvo calculado de-jitter adaptativo é maior que um dado valor, que em um exemplo é dado como um fator de aperfeiçoamento, tal como o RETARDO_DE_COMEÇO_MAX;
o sistema aguarda durante um período igual ao fator õu fração de aperfeiçoamento do comprimento alvo de modo a iniciar a execução, na etapa
540. Se o sistema não for aperfeiçoado, o sistema espera que um novo pacote inicie a reprodução, na etapa 550. O valor do novo alvo pode ser igual ao comprimento alvo calculado do buffer de-jitter ou ao comprimento máximo do buffer de-jitter.
A figura 22 ilustra também o aperfeiçoamento no início de um jorro de fala. O processo 580 é ilustrado iniciando quando da identificação de um jorro de fala. Dois cenários são considerados: i) com deformação temporal; e ii) sem deformação temporal. Neste exemplo, são utilizados pacotes de fala de 20 ms de comprimento. Podem ser implementados pacotes de fala de qualquer comprimento. Aqui, o buffer de-jitter adaptativo aguarda durante 120 ms antes de reproduzir os pacotes. Este valor é o comprimento alvo de buffer de-jitter adaptativo e é recebido de um estimador de alvos de buffer de-jitter adaptativo na etapa 582. No presente exemplo, 120 ms equivalem ao recebimento de seis (6) pacotes, cada um de 20 ms de comprimento, sem deformação temporal. Se a deformação temporal não for utilizada em 584, seis (6) pacotes são providos em 120 ms. No primeiro cenário, portanto, o buffer de-jitter começará a reproduzir pacotes após receber seis pacotes. Isto é equivalente em tempo a 120 ms de retardo. No segundo cenário, com a implementação da deformação temporal, o buffer de-jitter pode expandir os quatro (4) primeiros
63/77 pacotes recebidos e começar a reproduzir os pacotes ao receber quatro (4) pacotes. Assim, embora o retardo de 80 ms de buffer de-jitter seja neste caso menor que o retardo estimado de 120 ms do buffer de-jitter, underflows potenciais podem ser evitados com a expansão dos primeiros poucos pacotes. Em outras palavras, a reprodução dos pacotes pode começar mais cedo com a deformação temporal do que sem a deformação temporal. Assim, a deformação temporal pode ser utilizada para aperfeiçoar o início de um jorro de fala sem afetar o número de underflows.
Em outro exemplo, o final de um jorro de fala pode ser aperfeiçoado. Isso é conseguido comprimindo-se os últimos poucos pacotes de um jorro de fala, reduzindo-se assim o retardo fim-a-fim. Em outras palavras, o retardo no final de um jorro de fala se torna menor e um segundo usuário ouve de volta mais rápido de um primeiro usuário. O aperfeiçoamento no final de um jorro de fala é ilustrado na figura 23. Aqui, um pacote com taxa de 1/8 indica o final de um jorro de fala. Isso difere de pacotes com taxa total (taxa 1) , meia taxa (taxa 1/2) ou um quarto de taxa (taxa 1/4), que podem ser utilizados na transmissão de dados de voz. Pacotes com outras taxas podem ser também utilizados para transmissão durante períodos de silêncio ou no final des jorros de fala. A implementação de pacotes com 1/8 de taxa como pacotes indicadores de silêncio na comunicação de voz é adicionalmente descrita no Pedido de Patente U.S. copendente N° 11/123.478, com data de prioridade de l2 de fevereiro de 2005 e intitulado METHOD FOR DISCONTINUOUS TRANSMISSION AND ACCURATE REPRODUCTION OF BACKGROUND NOISE INFORMATION.
Conforme ilustrado na figura 23, sem deformação temporal os pacotes de N a N+4 são reproduzidos em 100 ms. Pela compressão dos últimos poucos pacotes do jorro de
64/77 fala, os mesmos pacotes de N a N+4 podem ser reproduzidos em 70 ms e vez de 100 ms. A qualidade da fala pode ter pouca ou efetivamente nenhuma deterioração quando a compressão do tempo é implementada. Aperfeiçoamento no final de um jorro de fala presume que o receptor tenha conhecimento para identificar o final do jorro de fala e antecipar quando o final está se aproximando.
Embora enviando os pacotes de voz sobre o Protocolo de Transporte em Tempo Real (RTP) em um exemplo, um indicador de final de jorro de fala pode ser ajustado no último pacote de cada jorro de fala. Quando um pacote está sendo provido para reprodução, verifica-se o indicador de final de jorro de fala dos pacotes no buffer dejitter. Se este indicador for ajustado em um dos pacotes e não houver números de sequência faltantes entre o pacote atual que está sendo provido para reprodução e o pacote de final de jorro de fala, o pacote que está sendo provido para reprodução é comprimido, assim como todos os pacotes futuros do jorro de fala atual.
Em outro exemplo, o sistema transita para o silêncio se estiver em um jorro de fala e ou um pacote com 1/8 de taxa ou um pacote com o conjunto de bits da Descrição do Indicador de Silêncio (SID) é entregue ao utilitário de reprodução. Um pacote com 1/8 de taxa pode ser detectado verificando-se seu tamanho. O bit SID é portado no cabeçalho RTP. O sistema transita para o jorro de fala se estiver em silêncio, e um pacote que não tenha 1/8 de taxa nem o conjunto de bits SID é entregue para reprodução. Ncte-se, em um exemplo, que os métodos de armazenamento de-jitter adaptativo apresentados aqui podem ser executados quando o sistema estiver no estado de jorro de fala e podem ser ignorados quando em um período de silêncio.
65/77
Note-se que este método pode descartar pacotes duplicados que tenham chegado tarde. Se um pacote duplicado chega, ele simplesmente será descartado, uma vez que a primeira ocorrência do pacote foi reproduzida no momento apropriado e sua sequência não foi salva no arranjo que contém os candidatos a underflows de retardo.
Embora enviando pacotes de voz sobre o RTP em um exemplo, um indicador de final de fala pode ser ajustado no último pacote de cada jorro de fala. Quando um pacote está sendo provido para reprodução, verifica-se o indicador de final de jorro de fala dos pacotes no buffer dejitter. Se este indicador for ajustado em um dos pacotes e não houver números de seqüência faltantes entre o pacote atual que está sendo provido para reprodução e o pacote de final de jorro de fala, o pacote que é provido para reprodução é comprimido, assim como os pacotes futuros do jorro de fala atual.
É ilustrado na figura 24 um fluxograma que ilustra o aperfeiçoamento no final dos jorros de fala de acordo com um exemplo. Um novo pacote começa na etapa 600. Na etapa 605, se o comprimento do buffer de-jitter for maior ou igual ao limite de compressão, uma indicação de compressão é gerada na etapa 635 e a extremidade final é fornecida ao novo pacote na etapa 600. Na etapa 605, se o buffer de-jitter não for maior ou igual ao limite de compressão, determina-se na etapa 610 se o comprimento do buffer de-jitter é menor ou igual a um limite de expansão. Caso seja, a etapa 615 determina se a extremidade final é igual a uma taxa de pacote que pode representar um período de silêncio ou um final de jorro de fala. Em um exemplo, uma sére de contínua de pacotes com 1/8 de taxa pode ser enviado a intervalos constantes, como, por exemplo, de 20 ms, durante um período de silêncio ou no final de um jorro de fala. Na figura
66/77
24, se for determinado na etapa 615 que a extremidade final não é igual a um pacote com 1/8 de taxa, o segmento é expandido na etapa 620 e volta ao novo pacote na etapa 600. Na etapa 625 se determina se a extremidade final é igual a 1/8. Na etapa 625, se a extremidade final for igual a uma taxa de 1/8, uma indicação de compressão é gerada na etapa 635. Se não for igual à taxa de 1/8, então a reprodução é normal, sem deformação temporal, na etapa 630.
OTIMIZADOR DE QUALIDADE DE DEFORMAÇÃO TEMPORAL <
Quando vários pacotes consecutivos são comprimidos (ou expandidos) , isto pode acelerar (ou retardar) sensivelmente o áudio e provocar deterioração na qualidade. Tal deterioração pode ser evitada espaçando-se os pacotes deformados no tempo, isto é, um pacote deformado no tempo é sucedido por alguns pacotes não deformados no tempo antes que outro pacote seja deformado.
Se o espaçamento acima dos pacotes deformados for aplicada à expansão, ele pode fazer com que alguns pacotes que de outro modo seriam expandidos não sejam expandidos. Isto pode provocar underflows, uma vez que a expansão dos pacotes é efetuada quando o buffer de-jitter está sem pacotes. Assim, em um exemplo, o espaçamento acima de fora dos pacotes deformados pode ser aplicado a pacotes comprimidos, isto é, um pacote comprimido pode ser seguido por alguns pacotes não comprimidos antes que outro pacote possa ser comprimido. O número de tais pacotes que não devem ser comprimidos entre dois pacotes comprimidos pode ser tipicamente; ajustado em 2 ou 3.
Conjunto de Condições para Acionar a Deformação Temporal
São descritas aqui várias condições para acioncir a deformação temporal (expansão/compressão) de pacotes de voz. Segue-se um conjunto combinado de normas (sob a forma
67/77 de pseudocódigo) para determinar se um pacote deve ser comprimido, expandido ou nem um nem outro.
Se (na Fase de Pré-Deformação (Handoff Detectado) e nenhum Final de Jorro de Fala Detectado) e ALVO_DE_JITTER + EXPANSÃO_PRÉ_DEFORMAÇÃO não alcançadas)
Expandir Pacote
Terminar Se
Caso Contrário
Se (Final de Jorro de Fala Detectado)
Comprimir
Finalizar Se
Caso Contrário
Se (Limite de Compressão Acionado)
Comprimir
Finalizar Se
Caso Contrário (Expandir Limite Acionado ou Próximo Pacote não na Fila)
Expandir
Finalizar Se
Finalizar Se
Finalizar Se.
A figura 25 ilustra a implementação de um buffer de-jitter tradicional acoplado a uma função de decodificador. Na figura 25, espera-se que os pacotes cheguem ao buffer de-jitter a intervalos de 20 ms. Observase, neste exemplo, que os pacotes chegam a intervalos regulares, isto é, com jitter. O buffer de-jitter acumula os pacotes até que um comprimento específico do buffer dejitter seja atingido, de modo que o buffer de-jitter não seja esvaziado uma vez que comece a enviar pacotes a intervalos regulares, tais como de 20 ms. No comprimento necessário do buffer de-jitter, o buffer de-jitter começa a reproduzir os pacotes a intervalos regulares de 20 ms. Um decodificador recebe estes pacotes a intervalos regulares e
68/77 converte cada pacote em 20 ms de voz por pacote. Em exemplos alternativos, podem ser escolhidos outros intervalos de tempo.
Em comparação, a figura 26 ilustra um exemplo de buffer de-jitter adaptativo que suporta deformação temporal. Aqui, os pacotes chegam ao buffer de-jitter adaptativo a intervalos regulares. Neste caso, contudo, a comprimento alvo do buffer de-jitter é muito menor. Isto é porque a deformação temporal permite que os pacotes sejam expandidos se o buffer de-jitter começar a esvaziar-se, propiciando tempo para que o buffer de-jitter adaptativo se encha de novo. O decodificador pode expandir os pacotes se o buffer de-jitter adaptativo começar a esvaziar-se e comprimir os pacotes se o buffer de-jitter adaptativo começar a acumular pacotes demais. Observa-se que uma entrega irregular de pacotes de voz é introduzida no decodificador e na unidade de deformação temporal a partir do buffer de-jitter adaptativo. Permite-se que estes pacotes cheguem a intervalos irregulares porque com a deformação temporal, o decodificador converte cada pacote a um comprimento diferente de pacote de voz, dependendo do tempo de chegada do pacote original. Nesta ocorrência, por exemplo, o decodificador converte cada pacote em 15-35 ms de voz por pacote. Uma vez que os pacotes podem ser reproduzidos mais cedo devido à deformação temporal, o tamanho de buffer necessário é menor, do que resulta menos latência na rede.
A figura 27 é um diagrama de blocos que ilustra um AT de acordo com um exemplo. Buffer de-jitter adaptativo 706, unidade de controle de deformação temporal 718, conjunto de circuitos de recepção 714, controle de processador 722; memória 710, conjunto de circuitos de transmissão 712, Decodificador 708, Controle H-ARQ 720,
69/77 encodificador 716, processamento de fala 724, ID de Jorro de Fala 726, correção de erros 704 podem ser acoplados uns aos outros conforme mostrado nas modalidades precedentes. Além disto, eles podem ser acoplados uns aos outros via o barramento de comunicação 702 mostrado na figura 27.
A figura 28 ilustra o processamento de pacotes em um exemplo no qual os pacotes são recebidos por um buffer de-jitter e finalmente reproduzidos por um narrador. Conforme ilustrado, os pacotes são recebidos no buffer dejitter. O buffer de-jitter envia os pacotes e as informações de deformação temporal ao decodificador mediante as solicitações de pacotes do decodificador. O decodificador envia amostras ao driver de saída mediante as solicitações do driver de saída.
O controlador de entrada no buffer de-jitter mantém rastreamento dos pacotes entrantes e indica se há erro nos pacotes entrantes. O buffer de-jitter pode receber pacotes que tenham números de seqüência. Um erro pode ser detectado pelo controlador de entrada quando, por exemplo, um pacote entrante tem um número de seqüência que é mais baixo que o número de seqüência do pacote anterior. Uma unidade de classificação, localizada dentro do controlador de entrada na figura 28 classifica os pacotes entrantes. Diferentes categorias definidas pela unidade de classificação podem incluir pacotes bons, pacotes retardados, pacotes ruins, etc. A unidade de controle de entrada também-, pode comparar os pacotes e enviar esta informação ao controlador do buffer de-jitter.
O controlador do buffer de-jitter ilustrado na figura 28 recebe entradas bidirecionais do controlador de entrada e saída do buffer de-jitter. O controlador do buffer de-jitter recebe dados do controlador de entrada, em que tais dados indicam as características dos dados
entrantes, como o numero de bons pacotes recebidos, o número de pacotes ruins recebidos, etc. O buffer de-jitter pode utilizar estas informações para determinar quando o buffer de-jitter precisa encolher ou crescer, o que pode resultar em um sinal para que o controlador de deformação temporal comprima ou expanda. Uma unidade de Taxa de Erro de Pacote (PER) dentro da unidade de controlador de buffer de-jitter calcula o retardo PER. O controlador de saida do buffer de-jitter solicita pacotes do buffer de-jitter. A unidade de controlador de saida de buffer de-jitter pode indicar também qual foi o último pacote reproduzido.
O decodificador envia pedidos de pacotes ao buffer de-jitter e recebe pacotes do buffer de-jitter mediante tais solicitações. Uma unidade de controlador de deformação temporal dentro do decodificador recebe informações de controle de deformação temporal do controlador de saida do buffer de-jitter. As informações de controle de deformação temporal indicam se os pacotes serão comprimidos, expandidos ou deixados não modificados. Os pacotes recebidos pelo decodificador são decodificados e convertidos em amostras de conversa; e, mediante solicitação de um buffer dentro de um driver de saida, amostras são enviadas ao driver de saida. As solicitações de amostras do driver de saida são recebidos por um controlador de saida dentro do decodificador.
Casamento de Fase
Conforme observado anteriormente, o recebimento de um pacote após seu tempo de reprodução antecipada pode resultar na reprodução de apagamentos em lugar do pacote retardado. 0 recebimento de apagamentos ou pacotes faltantes no buffer de-jitter adaptativo pode provocar descontinuidades na conversa decodificada. Quando descontinuidades potenciais são reconhecidas pelo buffer
71/77 de-jitter adaptativo, o buffer de-jitter adaptativo pode solicitar ao decodificador que efetue casamento de fase. Conforme ilustrado na figura 28, o buffer de-jitter adaptativo 750 pode incluir um controlador de casamento de fase que recebe entradas do controlador de saida 7 60. ]\s informações de controle de casamento de fase são enviadas a uma unidade de casamento de fase, que pode ser localizada no decodificador 762. Em um exemplo, as informações de controle de casamento de fase podem incluir informações sobre offset de fase e sobre comprimento executado. O offset de fase é a diferença entre o número de pacotes que o decodificador decodificou e o número de pacotes que o encodificador encodificou. O comprimento executado referese ao número de apagamento consecutivos que o decodificador decodificou imediatamente antes da decodificação do pacote atual.
Em um exemplo, o casamento de fase e a deformação temporal são ambos implementados em um decodificador que tem código ou software de controle comum. Em um exemplo, o decodificador implementa interpolação de formas de onda, na qual:
a) Se não forem utilizados a deformação temporal e o casamento de fase, a codificação de voz é feita utilizando-se interpolação_de_formas_de_onda com 160 amostras;
b) Se a deformação temporal for utilizada, mas nenhum casamento de fase, codificação de voz é feita utilizando decodifioação_de_interpolação_de_formas_de_onda com (160 +-N * Período de Densidade) amostras, onde N pode ser 1 ou 2.
c) Se não forem utilizados deformação temporal e casamento de fase, codificação de voz é feita utilizando decodificação_de_interpolação_de_formas_
de onda com
Δ) amostras, onde Δ valor de
Casamento de
Fase.
d) Se utilizados tanto
Casamento de
Fase quanto deformação temporal, codificação de voz é feita utilizando decodificação_de_interpolamento de formas de onda com (160
Δ +-N * Período de
Densidade), onde Δ é o valor de Casamento de Fase.
Uma entrada de relógio no driver de saída determina com que freqüência os dados são solicitados pelo principal no sistema e pode ser implementado de muitas maneiras diferentes. O relógio dominante do sistema pode ser derivado exemplo, se pela taxa de amostragem das amostras PCM. Por uma conversa de banda estreita estiver sendo comunicada, o sistema reproduz 8000 amostras
PCM por segundo (8 relógio pode disparar o resto do sistema. Uma abordagem é deixar que a interface de áudio
770 solicite mais amostras do decodificador quando forem necessárias.
Uma outra abordagem é deixar que o decodificador/deformação temporal seja executado de maneira independente e, uma vez que este módulo sabe quantas amostras PCM foram, enviadas anteriormente, ele sabe, quando prover mais amostras em seguida.
Um programador pode ser localizado no decodificador
762 ou na interface de áudio e na unidade de controle 810.
juando localizado na unidade de controle de interface de áudio 810, o programador baseia a solicitação de pacotes seguinte no número de amostras PCM recebidas.
Quando o programador é localizado no decodificador, o programador pode solicitar pacotes a cada t ms.
Por exemplo, o programador do decodificador pode solicitar do buffer de-jitter adaptativo 750 pacotes a cada 2 ms. Se a
73/77 deformação temporal não for habilitada no decodificador, ou se a unidade de deformação temporal não estiver localizada no decodificador 762, o programador envia um conjunto de amostras à unidade de interface de áudio e controle 770 que 5 corresponde ao número exato de amostras em 1 pacote. Por exemplo, no caso da unidade de interface de áudio 770 solicitar amostras a cada 2 ms, o controlador de saida 766 do decodificador envia 16 amostras PCM (1 pacote corresponde a 160 amostras de 20 ms de dados de fala, à 10 taxa de amostragem de 8 Khz). Em outras palavras, quando o controlador de deformação temporal estiver fora do decodificador, a saida do decodificador é uma conversão de pacote normal em amostra. A unidade de interface de áudio 770 converte o número de amostras no número de amostras que 15 teria recebido caso o decodificador tivesse executado deformação temporal.
Em outro cenário, quando o controlador de deformação temporal estiver localizado dentro do decodificador, e quando a deformação temporal for habilitada, no modo de compressão, o decodificador pode emitir um número menor de amostras; e, no modo de expansão, o decodificadoi? pode emitir mais amostras.
A figura 30 ilustra adicionalmente um cenário no qual a função de programação é desempenhada pelo 25 decodificador. Na etapa 902, o decodificador solicita um pacote do buffer de-jitter. O pacote é recebido na etapa 904. O pacote é convertido em N amostras na etapa 906. As N amostras geradas são entregues à unidade de controle de interface de áudio na etapa 908 e, na etapa 910, a 30 solicitação de pacote seguinte é programada com uma função de N.
A figura 31 ilustra a programação fora do decodificador, na unidade de interface de áudio e controle.
4/77
A unidade de interface de áudio primeiro solicita um conjunto de amostras PCM na etapa 1002. As amostras PCM solicitadas são recebidas na etapa 1004 e, na etapa 1006, a solicitação de pacote seguinte é programada como uma função 5 de N.
O indicador de deformação temporal pode ser uma parte da instrução do buffer de-jitter adaptativo, tal como um indicador de não deformação temporal. A figura 32 ilustra a unidade de deformação temporal onde a programação 10 é calculada fora do decodificador, como, por exemplo, na unidade de interface de áudio e controle. O tipo de pacote, o indicador de deformação temporal e o valor de deformação a ser efetuado são introduzidos na unidade de deformação temporal.
A figura 33 ilustra a unidade de deformação temporal onde a programação é calculada na unidade de deformação temporal no decodificador. Entrada na unidade de deformação temporal inclui o tipo de pacote, indicador de deformação temporal e valor de deformação a ser efetuado. O 20 valor de deformação e a habilitação são introduzidos na unidade de otimização de quantidade da unidade de deformação temporal. As informações de deformação temporal são emitidas.
Embora o relatório descreva exemplos particulares 25 da presente invenção, os versados na técnica podem conceber variações da presente invenção sem abandonarem o conceito inventivo. Por exemplo, os presentes ensinamentos referemse a elementos de rede comutados por circuito, mas são igualmente aplicáveis a elementos de rede em domínio 30 comutado por pacotes. Além disto, os presentes ensinamentos não estão limitados a pares de triplet de autenticação, mas podem ser também aplicados à utilização de um único triplet
75/77 que inclui dois valores de SRES (um formato comum e um formato mais novo aqui revelados).
Os versados na técnica entenderão que as informações e sinais podem ser representados utilizando-se qualquer uma de diversas tecnologias e técnicas diferentes. Por exemplo, dados, instruções, comandos, informações, sinais, bits, símbolos e chips referidos ao longo de toda a descrição acima podem ser representados por tensões, correntes, ondas eletromagnéticas, campos ou partículas magnéticas, campos ou partículas ópticas ou qualquer combinação deles.
Os versados na técnica entenderão adicionalmente que os diversos blocos lógicos, módulos, circuitos, métodos e algoritmos descritos com relação aos exemplos apresentados no presente relatório podem ser implementados como hardware eletrônico, software de computador, ou combinações de ambos. Para ilustrar claramente esta intercambialidade de hardware e software, diversos componentes, blocos, módulos, circuitos, métodos e algoritmos ilustrativos foram descritos de maneira geral em termos de sua funcionalidade. Quer a funcionalidade seja implementada como hardware ou software depende da aplicação particular e das restrições de projeto impostas ao sistema como um todo. Versados na técnica podem implementar a funcionalidade descrita de diversas maneiras para cada aplicação particular, mas tais decisões de implementação não devem ser interpretadas como provocando um afastamento do escopo da invenção.
Os diversos blocos, módulos e circuitos lógicos ilustrativos descritos em relação aos exemplos aqui apresentados podem ser implementados ou executados com um processador para fins gerais, um processador de sinais digitais (DSP), um circuito integrado especifico de
6/7 aplicação (ASIC), um arranjo de porta programável em campo (FPGA) ou outro dispositivo lógico programável, porta discreta ou lógica de transistor, componentes de hardware discretos ou qualquer combinação deles projetada para executar as funções descritas aqui. Um processador para fins gerais pode ser vantajosamente um microprocessador, mas alternativamente o processador pode ser qualquer processador, controlador, microcontrolador convencional, ou máquina de estado. Um processador pode ser também implementado como uma combinação de dispositivos de computação, como, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo DSP, ou qualquer outra configuração que tal.
Os métodos ou algoritmos descritos com relação aos exemplos aqui descritos podem ser corporifiçados diretamente em hardware, em um módulo de software executado por um processador ou uma combinação dos dois. Um módulo de software pode residir em memória RAM, memória flash, memória ROM, memória EPROM, memória EEPROM, registradores, disco rígido, um disco removível, um CD-ROM ou qualquer outra forma de meio de armazenamento conhecido na técnica.
Um meio de armazenamento pode ser acoplado ao processador de modo que o processador possa ler informações do, e gravar informações no, meio de armazenamento.
Alternativamente, o meio de armazenamento pode ser integrante com o processador. O processador e o meio de armazenamento podem residir em um ASIC.
A descrição anterior dos exemplos descritos é provida para permitir que qualquer pessoa versada na técnica fabrique ou utilize a presente invenção. Diversas modificações nestes exemplos serão prontamente evidentes aos versados na técnica, e os princípios gerais definidos
77/77 aqui podem ser aplicados a outros exemplos sem que se afaste do espirito ou escopo da invenção. Assim, a presente invenção não pretende ser limitada aos exemplos mostrados aqui, mas receberá o mais amplo escopo compatível com os 5 princípios e características novas revelados aqui.
Claims (31)
- REIVINDICAÇÕES1. Equipamento, caracterizado pelo fato de que compreende:uma unidade de armazenamento (256) de memória configurada para armazenar pacotes de dados; e um primeiro controlador (254) configurado para comparar um número de pacotes armazenados na unidade de armazenamento de memória com um primeiro limite de deformação temporal de compressão e um primeiro limite de deformação temporal de expansão para a unidade de armazenamento de memória, o primeiro controlador adicionalmente próprio para gerar um sinal de controle de deformação temporal indicando compressão se o número de pacotes armazenados ultrapassar o primeiro limite de deformação temporal de compressão e para gerar um sinal de controle de deformação temporal indicando expansão se o número de pacotes armazenados ultrapassar o primeiro limite de deformação temporal de expansão, em que o primeiro controlador é configurado para identificar o começo e o final de um jorro de fala, em que o primeiro controlador é configurado para identificar a parte final do jorro de fala (510) e comprimir pelo menos um pacote na parte final do jorro de fala.
- 2. Equipamento, de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro controlador é adicionalmente próprio para comparar o número de pacotes armazenados com um conjunto de limites de deformação temporal de compressão e um conjunto de limites de deformação temporal de expansão, em que cada um dentre o conjunto de limites de deformação temporal de compressão e cada um dentre o conjunto de limites de deformação temporal de expansão correspondem a porcentagens únicas de umPetição 870190022203, de 07/03/2019, pág. 5/142/9 comprimento de retardo alvo para a unidade de armazenamento de memória.
- 3. Equipamento, de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro controlador é adicionalmente configurado para gerar o sinal de controle de deformação temporal para expansão se o pacote seqüencial seguinte for recebido após um tempo de reprodução antecipada para o pacote seqüencial seguinte.
- 4. Equipamento, de acordo com a reivindicação 3, caracterizado pelo fato de que o primeiro controlador é adicionalmente configurado para efetuar média de um status da unidade de armazenamento de memória através de uma janela de tempo antes de comparar o número de pacotes armazenados com limites de deformação temporal.
- 5. Equipamento, de acordo com a reivindicação 4, caracterizado pelo fato de que o primeiro controlador é adicionalmente configurado para filtrar o número de pacotes armazenados na unidade de armazenamento de memória através de uma janela de tempo.
- 6. Equipamento, de acordo com a reivindicação 5, caracterizado pelo fato de que o primeiro controlador é adicionalmente configurado para determinar um comprimento de retardo alvo e determinar a janela de tempo como uma função do comprimento de retardo alvo.
- 7. Equipamento, de acordo com a reivindicação 6, caracterizado pelo fato de que o primeiro controlador é adicionalmente configurado para determinar o comprimento de retardo alvo como um número alvo de pacotes a serem armazenados na unidade de armazenamento de memória.
- 8. Equipamento, de acordo com a reivindicação 4, caracterizado pelo fato de que o primeiro controlador é adicionalmente configurado para comparar um número médio dePetição 870190022203, de 07/03/2019, pág. 6/143/9 pacotes armazenados na unidade de armazenamento de memória com limites de deformação temporal.
- 9. Equipamento, de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro controlador é adicionalmente configurado para gerar um sinal de controle de deformação temporal, que é um sinal de controle de multiestados.
- 10. Equipamento, de acordo com a reivindicação 9, caracterizado pelo fato de que o primeiro controlador é adicionalmente configurado para determinar um comprimento de retardo alvo para a unidade de armazenamento de memória, em que a unidade de armazenamento de memória é um buffer de-jitter adaptativo e em que o comprimento de retardo alvo é um retardo de buffer de-jitter alvo.
- 11. Equipamento, de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro controlador é adaptado adicionalmente para iniciar compressão de pelo menos um pacote quando um número de pacotes armazenados ultrapassar o comprimento de retardo alvo.
- 12. Equipamento, de acordo com a reivindicação11, caracterizado pelo fato de que o primeiro controlador é adicionalmente configurado para manter uma dada porcentagem de underflows devido a pacotes retardados.
- 13. Equipamento, de acordo com a reivindicação12, caracterizado pelo fato de que o primeiro controlador é adicionalmente configurado para:subtrair o comprimento de retardo alvo do buffer de-jitter adaptativo por um valor pre-definido caso a taxa de underflows seja menor que a taxa almejada;somar o comprimento de retardo alvo do buffer dejitter adaptativo por um valor pre-definido caso a taxa de underflows seja maior que a taxa almejada e maior que a última taxa de underflows;Petição 870190022203, de 07/03/2019, pág. 7/144/9 ajustar o comprimento de retardo alvo em função dos comprimentos de retardo alvo máximo e mínimo;em que PERretardo é a taxa de underflows devido a pacotes retardados, VALOR_ALVO é uma taxa almejada de pacotes retardados, RETARDO_DE-JITTER é o comprimento de retardo alvo do buffer de-jitter adaptativo, CONSTANTE é um valor pré-definido e JITTER_MAX e JITTER_MIN são valores predefinidos representando os comprimentos de retardo alvo máximo e mínimo, respectivamente.
- 14. Equipamento, de acordo com a reivindicação13, caracterizado pelo fato de que o primeiro controlador é configurado para calcular o PERretardo da seguinte maneira: PERretardo = CONSTANTE_PER x PERretardo + (1-CONSTANTE_PER) xPERretardo—Atual, em que CONSTANTE_PER é a constante de tempo para o filtro utilizado para estimar PERretardo.
- 15. Equipamento, de acordo com a reivindicação14, caracterizado pelo fato de que o primeiro controlador compreende:uma unidade de cálculo de erros de pacotes configurada para calcular o PERretardo_Atual como uma taxa de pacotes retardados, em que pacotes retardados são recebidos após um tempo de reprodução antecipada, e em que o PERretardo_Atual.
- 16. Equipamento, de acordo com a reivindicação15, caracterizado pelo fato de que a unidade de cálculo de erros de pacotes é configurada para calcular o PERretardo_Atual como uma relação pacotes retardados/pacotes totais recebidos, inclusive pacotes retardados, medida a partir de uma última atualização de PERretardo até uma atualização atual e calculada como:P A, l _ Número de Underflows Re tardados Desde Última AtualizaçãoPerreatrdo _AtUal ,Número de Pa cot es Re cebidos Desde Última AtualizaçãoPetição 870190022203, de 07/03/2019, pág. 8/145/9
- 17. Equipamento, de acordo com a reivindicação16, caracterizado pelo fato de que o primeiro controlador é configurado para identificar uma primeira parte de pacotes recebidos, em que a primeira parte corresponde a um jorro de fala, e em que o jorro de fala compreende uma pluralidade de pacotes seqüenciais.
- 18. Equipamento, de acordo com a reivindicação17, caracterizado pelo fato de que o primeiro controlador é configurado para identificar a primeira parte pela encodificação da primeira parte.
- 19. Equipamento, de acordo com a reivindicação18, caracterizado pelo fato de que o primeiro controlador é configurado para determinar um tempo de reprodução antecipada para um primeiro pacote do jorro de fala, e para iniciar reprodução do primeiro pacote do jorro de fala antes do tempo de reprodução antecipada.
- 20. Equipamento, de acordo com a reivindicação19, caracterizado pelo fato de que o primeiro controlador é adicionalmente configurado para iniciar expansão de pacotes subseqüentes após reprodução do primeiro pacote.
- 21. Equipamento, de acordo com a reivindicação11, caracterizado pelo fato de que o primeiro controlador é configurado para identificar uma parte final do jorro de fala por uma taxa de encodificação de pacotes recebidos.
- 22. Equipamento, de acordo com a reivindicação21, caracterizado pelo fato de que o primeiro controlador é configurado para identificar a parte final do jorro de fala por um indicador de silêncio.
- 23. Equipamento, de acordo com a reivindicação22, caracterizado pelo fato de que o primeiro controlador é configurado para identificar a parte final do jorro de fala por um indicador de final de jorro de fala.Petição 870190022203, de 07/03/2019, pág. 9/146/9
- 24. Método para processar dados empacotados, caracterizado pelo fato de que compreende:armazenar pacotes de dados em uma unidade de armazenamento de memória;determinar um comprimento de retardo alvo (100) para a unidade de armazenamento de memória;avaliar um status da unidade de armazenamento de memória com relação ao comprimento de retardo alvo, em que o status da unidade de armazenamento de memória é uma medida de dados armazenados na unidade de armazenamento de memória;iniciar deformação temporal de pelo menos um pacote da unidade de armazenamento de memória se o status do armazenamento de memória violar o comprimento de retardo
alvo; identificar o começo e o final de um jorro de fala; identificar uma parte final do jorro de fala (510); e comprimir pelo menos um pacote na parte final do jorro de fala. 25. Método, de acordo com a reivindicação 24, caracterizado pelo fato de que compreende adicionalmente:subtrair o comprimento de retardo alvo do buffer de-jitter adaptativo por um valor pre-definido caso a taxa de underflows seja menor que a taxa almejada;somar o comprimento de retardo alvo do buffer dejitter adaptativo por um valor pre-definido caso a taxa de underflows seja maior que a taxa almejada e maior que a última taxa de underflows;ajustar o comprimento de retardo alvo em função dos comprimentos de retardo alvo máximo e mínimo;Petição 870190022203, de 07/03/2019, pág. 10/14 em que PERretardo é uma taxa de underflows devido a pacotes retardados, VALOR_ALVO é uma taxa almejada de pacotes retardados, o RETARDO_DE-JITTER é o comprimento de retardo alvo do buffer de-jitter adaptativo, a CONSTANTE é um valor predefinido e o JITTER_MAX e JITTER_MIN são valores predefinidos que representam os comprimentos de retardo alvo máximo e mínimo, respectivamente. - 26. Método, de acordo com a reivindicação 25, caracterizado pelo fato de que compreende adicionalmente:gerar um sinal de controle de deformação temporal;receber uma pluralidade de pacotes seqüenciais; e adicionar-sobrepor segmentos em resposta ao sinal de controle de deformação temporal.
- 27. Método, de acordo com a reivindicação 26, caracterizado pelo fato de que a adição-sobreposição compreende:combinar pelo menos dois dentre a pluralidade de segmentos como:, „ (Segmentol(i) * (TamanhodeJanela - i) + (Segmento2(i) * i)a) Segmento de Saida[i\ =---------------------------------------------------------Tamanho de Janela Ί , , r (Segmento2(i) * (TamanhodeJanela - i) + (Segmentol(i) * i)b) Segmento de Saida[i] =---------------------------------------------------------TamanhodeJanela i=0..TamanhodeJanela-1 TamanhodeJanela=TamanhodeJanelaR em que SegmentodeSaída é um segmento adicionado-sobreposto resultante, Segmentol e Segmento2 são os segmentos a serem adicionados-sobrepostos, TamanhodeJanela corresponde a um primeiro segmento, e TamanhodeJanelaR corresponde a um segundo segmento.
- 28. Método, de acordo com a reivindicação 27, caracterizado pelo fato de que a adição-sobreposição compreende adicionalmente:Petição 870190022203, de 07/03/2019, pág. 11/148/9 identificar uma parte de correlação máxima entre o primeiro segmento e o segundo segmento.
- 29. Método, de acordo com a reivindicação 28, caracterizado pelo fato de que identificar a parte de correlação máxima entre o primeiro segmento e o segundo segmento compreende adicionalmente:identificar a parte de correlação máxima calculando a correlação máxima da seguinte maneira:Σ [(r(zj - mx) x (y(i - d) - my)]Corr (d) = . i =----. = /Σ (x(i) - mxV2 (y(i - d) - my)A2 em que x representa o primeiro segmento, y representa o segundo segmento de conversa, m representa a janela de correlação, i é um valor de índice, e d representa a parte de correlação.
- 30. Método, de acordo com a reivindicação 24, caracterizado pelo fato de que compreende adicionalmente:deformar no tempo uma pluralidade de pacotes seqüenciais;inibir deformação temporal para pelo menos um pacote seqüencial, em que o pelo menos um pacote seqüencial é subseqüente à pluralidade de pacotes seqüenciais; e habilitar deformação temporal em seguida ao pelo menos um pacote seqüencial.
- 31. Método, de acordo com a reivindicação 24, caracterizado pelo fato de que compreende adicionalmente:calcular uma taxa de deformação temporal, em que a taxa de deformação temporal é um número de pacotes deformados no tempo através de uma janela de tempo; e iniciar deformação temporal de pacotes como uma função da taxa de deformação temporal.Petição 870190022203, de 07/03/2019, pág. 12/149/9
- 32. Memória legível por computador, caracterizada pelo fato de que compreende gravado na mesma o método de acordo com qualquer uma das reivindicações de 24 a 31.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US60603604P | 2004-08-30 | 2004-08-30 | |
| US60/606,036 | 2004-08-30 | ||
| PCT/US2005/030894 WO2006026635A2 (en) | 2004-08-30 | 2005-08-30 | Adaptive de-jitter buffer for voice over ip |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| BRPI0514801A BRPI0514801A (pt) | 2008-06-24 |
| BRPI0514801B1 true BRPI0514801B1 (pt) | 2019-06-18 |
Family
ID=35700421
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0514801-4A BRPI0514801B1 (pt) | 2004-08-30 | 2005-08-30 | Buffer de-jitter adaptativo para voz sobre ip |
Country Status (17)
| Country | Link |
|---|---|
| US (4) | US7830900B2 (pt) |
| EP (4) | EP2189978A1 (pt) |
| JP (4) | JP2008512062A (pt) |
| KR (4) | KR100938032B1 (pt) |
| CN (5) | CN101873266B (pt) |
| AT (1) | ATE488838T1 (pt) |
| BR (1) | BRPI0514801B1 (pt) |
| CA (4) | CA2691589A1 (pt) |
| DE (1) | DE602005024825D1 (pt) |
| DK (1) | DK2200024T3 (pt) |
| ES (2) | ES2355039T3 (pt) |
| MX (1) | MX2007002483A (pt) |
| MY (1) | MY149811A (pt) |
| PL (2) | PL2200024T3 (pt) |
| PT (1) | PT2200024E (pt) |
| TW (1) | TWI454101B (pt) |
| WO (1) | WO2006026635A2 (pt) |
Families Citing this family (169)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8017791B2 (en) * | 2003-03-28 | 2011-09-13 | Wayne State University | Tri-substituted 2-benzhydryl-5-benzylamino-tetrahydro-pyran-4-ol and 6-benzhydryl-4-benzylamino-tetrahydro-pyran-3-ol analogues, and novel, 3,6-disubstituted pyran derivatives |
| CN101873266B (zh) * | 2004-08-30 | 2015-11-25 | 高通股份有限公司 | 用于语音ip传输的自适应去抖动缓冲器 |
| US7674096B2 (en) * | 2004-09-22 | 2010-03-09 | Sundheim Gregroy S | Portable, rotary vane vacuum pump with removable oil reservoir cartridge |
| US8085678B2 (en) * | 2004-10-13 | 2011-12-27 | Qualcomm Incorporated | Media (voice) playback (de-jitter) buffer adjustments based on air interface |
| US7672742B2 (en) * | 2005-02-16 | 2010-03-02 | Adaptec, Inc. | Method and system for reducing audio latency |
| US20060187970A1 (en) * | 2005-02-22 | 2006-08-24 | Minkyu Lee | Method and apparatus for handling network jitter in a Voice-over IP communications network using a virtual jitter buffer and time scale modification |
| US8355907B2 (en) * | 2005-03-11 | 2013-01-15 | Qualcomm Incorporated | Method and apparatus for phase matching frames in vocoders |
| US7746847B2 (en) * | 2005-09-20 | 2010-06-29 | Intel Corporation | Jitter buffer management in a packet-based network |
| US8102878B2 (en) * | 2005-09-29 | 2012-01-24 | Qualcomm Incorporated | Video packet shaping for video telephony |
| US8411662B1 (en) | 2005-10-04 | 2013-04-02 | Pico Mobile Networks, Inc. | Beacon based proximity services |
| US8257177B1 (en) | 2005-10-04 | 2012-09-04 | PICO Mobile Networks, Inc | Proximity based games for mobile communication devices |
| US8514711B2 (en) * | 2005-10-21 | 2013-08-20 | Qualcomm Incorporated | Reverse link lower layer assisted video error control |
| US8406309B2 (en) * | 2005-10-21 | 2013-03-26 | Qualcomm Incorporated | Video rate adaptation to reverse link conditions |
| US8842555B2 (en) * | 2005-10-21 | 2014-09-23 | Qualcomm Incorporated | Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems |
| US8548048B2 (en) * | 2005-10-27 | 2013-10-01 | Qualcomm Incorporated | Video source rate control for video telephony |
| JP4640824B2 (ja) * | 2006-01-30 | 2011-03-02 | 富士通株式会社 | 通信環境の測定方法、受信装置、及びコンピュータプログラム |
| JP4573780B2 (ja) * | 2006-02-02 | 2010-11-04 | 富士通株式会社 | パケット記録再生装置 |
| US20070201656A1 (en) * | 2006-02-07 | 2007-08-30 | Nokia Corporation | Time-scaling an audio signal |
| US20070186146A1 (en) * | 2006-02-07 | 2007-08-09 | Nokia Corporation | Time-scaling an audio signal |
| US8832540B2 (en) | 2006-02-07 | 2014-09-09 | Nokia Corporation | Controlling a time-scaling of an audio signal |
| JP4983054B2 (ja) * | 2006-03-10 | 2012-07-25 | 富士通株式会社 | サーバ装置及び同装置におけるバッファ制御方法 |
| US20070294087A1 (en) * | 2006-05-05 | 2007-12-20 | Nokia Corporation | Synthesizing comfort noise |
| US20070263672A1 (en) * | 2006-05-09 | 2007-11-15 | Nokia Corporation | Adaptive jitter management control in decoder |
| JP2008005392A (ja) * | 2006-06-26 | 2008-01-10 | Kddi Corp | 通信端末装置およびバッファ制御方法 |
| US8005094B2 (en) * | 2006-06-30 | 2011-08-23 | Agere Systems Inc. | Method and apparatus for circuit emulation services over cell and packet networks |
| US8619623B2 (en) * | 2006-08-08 | 2013-12-31 | Marvell World Trade Ltd. | Ad-hoc simple configuration |
| US8024192B2 (en) * | 2006-08-15 | 2011-09-20 | Broadcom Corporation | Time-warping of decoded audio signal after packet loss |
| CN101375330B (zh) * | 2006-08-15 | 2012-02-08 | 美国博通公司 | 丢包后解码音频信号的时间扭曲的方法 |
| US7573907B2 (en) * | 2006-08-22 | 2009-08-11 | Nokia Corporation | Discontinuous transmission of speech signals |
| US8239190B2 (en) * | 2006-08-22 | 2012-08-07 | Qualcomm Incorporated | Time-warping frames of wideband vocoder |
| US7680099B2 (en) * | 2006-08-22 | 2010-03-16 | Nokia Corporation | Jitter buffer adjustment |
| DE602006005360D1 (de) * | 2006-08-24 | 2009-04-09 | Ntt Docomo Inc | Verfahren und Vorrichtung für nahtloses Handover |
| US7796626B2 (en) * | 2006-09-26 | 2010-09-14 | Nokia Corporation | Supporting a decoding of frames |
| KR101347404B1 (ko) * | 2006-10-05 | 2014-01-02 | 엘지전자 주식회사 | 무선통신 시스템에서 음성 패킷의 전송 방법 |
| US9135951B2 (en) * | 2006-10-10 | 2015-09-15 | Qualcomm Incorporated | System and method for dynamic audio buffer management |
| US8233456B1 (en) | 2006-10-16 | 2012-07-31 | Marvell International Ltd. | Power save mechanisms for dynamic ad-hoc networks |
| US8274945B2 (en) * | 2006-10-16 | 2012-09-25 | Qualcomm Incorporated | Method and apparatus for time-warping packets at the sender side |
| US8732315B2 (en) | 2006-10-16 | 2014-05-20 | Marvell International Ltd. | Automatic ad-hoc network creation and coalescing using WiFi protected setup |
| US8855275B2 (en) * | 2006-10-18 | 2014-10-07 | Sony Online Entertainment Llc | System and method for regulating overlapping media messages |
| US9308455B1 (en) | 2006-10-25 | 2016-04-12 | Marvell International Ltd. | System and method for gaming in an ad-hoc network |
| US8817740B2 (en) * | 2006-10-31 | 2014-08-26 | Motorola Mobility Llc | Methods and devices of a queue controller for dual mode bidirectional audio communication |
| US8792945B2 (en) * | 2006-10-31 | 2014-07-29 | Motorola Mobility Llc | Methods and devices for dual mode bidirectional audio communication |
| US7970384B1 (en) | 2006-11-21 | 2011-06-28 | Picomobile Networks, Inc. | Active phone book enhancements |
| US7978699B1 (en) | 2006-11-21 | 2011-07-12 | Picomobile Networks, Inc. | Protocol compression with synchronized sequence numbers |
| US8279884B1 (en) | 2006-11-21 | 2012-10-02 | Pico Mobile Networks, Inc. | Integrated adaptive jitter buffer |
| US7961756B1 (en) | 2006-11-21 | 2011-06-14 | Picomobile Networks, Inc. | Integrated multimedia system |
| US7889686B1 (en) | 2006-11-21 | 2011-02-15 | Picomobile Networks, Inc. | Seamless switching of media streams between different networks |
| JP5295120B2 (ja) * | 2006-12-06 | 2013-09-18 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | ジッタバッファ制御 |
| US8111720B2 (en) * | 2007-01-09 | 2012-02-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus to indicate maximum scheduling delay for jitter buffer implementations |
| US8537197B2 (en) * | 2007-01-10 | 2013-09-17 | Qualcomm Incorporated | Content- and link-dependent coding adaptation for multimedia telephony |
| US7983309B2 (en) * | 2007-01-19 | 2011-07-19 | Nokia Corporation | Buffering time determination |
| JP5140684B2 (ja) * | 2007-02-12 | 2013-02-06 | ドルビー ラボラトリーズ ライセンシング コーポレイション | 高齢又は聴覚障害聴取者のための非スピーチオーディオに対するスピーチオーディオの改善された比率 |
| WO2008106036A2 (en) | 2007-02-26 | 2008-09-04 | Dolby Laboratories Licensing Corporation | Speech enhancement in entertainment audio |
| GB0705329D0 (en) * | 2007-03-20 | 2007-04-25 | Skype Ltd | Method of transmitting data in a communication system |
| EP2111073B1 (en) * | 2007-06-13 | 2010-01-13 | NTT DoCoMo, Inc. | Method and apparatus for performing a seamless handover of a mobile entity |
| US8918051B1 (en) | 2007-06-18 | 2014-12-23 | Marvell International Ltd. | Method and apparatus for performing a handoff of a data communication session from one network to another network |
| US8628420B2 (en) * | 2007-07-03 | 2014-01-14 | Marvell World Trade Ltd. | Location aware ad-hoc gaming |
| US8401865B2 (en) * | 2007-07-18 | 2013-03-19 | Nokia Corporation | Flexible parameter update in audio/speech coded signals |
| US20090028300A1 (en) * | 2007-07-25 | 2009-01-29 | Mclaughlin Tom | Network communication systems including video phones |
| US8340121B2 (en) * | 2007-08-22 | 2012-12-25 | Qualcomm Incorporated | Method and apparatus for transmission of circuit switched voice over packet switched networks |
| AU2007358152B2 (en) * | 2007-08-24 | 2013-01-31 | Alcatel Lucent | Method for scheduling resource, network element and user equipment |
| KR101418354B1 (ko) * | 2007-10-23 | 2014-07-10 | 삼성전자주식회사 | 음성 통신 시스템에서 플레이아웃 스케줄링 방법 및 장치 |
| WO2009084689A1 (ja) * | 2007-12-27 | 2009-07-09 | Kyocera Corporation | 無線通信装置 |
| US8797850B2 (en) * | 2008-01-10 | 2014-08-05 | Qualcomm Incorporated | System and method to adapt to network congestion |
| US8254376B2 (en) * | 2008-01-25 | 2012-08-28 | Telefonaktiebolaget L M Ericsson (Publ) | Simple adaptive jitter buffering algorithm for network nodes |
| US8532062B2 (en) * | 2008-02-27 | 2013-09-10 | Kyocera Corporation | Wireless communication apparatus |
| US8649353B2 (en) | 2008-03-04 | 2014-02-11 | Interdigital Patent Holdings, Inc. | Method and apparatus for accessing a random access channel by selectively using dedicated or contention-based preambles during handover |
| WO2009109069A1 (en) * | 2008-03-07 | 2009-09-11 | Arcsoft (Shanghai) Technology Company, Ltd. | Implementing a high quality voip device |
| US8406715B2 (en) * | 2008-03-27 | 2013-03-26 | Panasonic Automotive Systems of America, division of Panasonic Corporation of North America | Method and apparatus for dynamically adapting FM tuner sensitivity to a local environment for a single-tuner system |
| CN101304557B (zh) * | 2008-04-25 | 2012-09-05 | 华为技术有限公司 | 一种分组传输控制方法及装置 |
| CN102057423B (zh) * | 2008-06-10 | 2013-04-03 | 杜比实验室特许公司 | 用于隐藏音频伪迹的方法、系统、计算机系统用途 |
| US8055292B1 (en) * | 2008-06-12 | 2011-11-08 | Sprint Spectrum L.P. | Method and system for power level adjustment of forward channels |
| US8488661B2 (en) * | 2008-06-13 | 2013-07-16 | Verizon Patent And Licensing Inc. | Systems and methods for data streaming |
| US8670573B2 (en) * | 2008-07-07 | 2014-03-11 | Robert Bosch Gmbh | Low latency ultra wideband communications headset and operating method therefor |
| WO2010024350A1 (ja) * | 2008-08-28 | 2010-03-04 | 京セラ株式会社 | 無線端末及び通信端末 |
| US20100202302A1 (en) * | 2008-09-21 | 2010-08-12 | Research In Motion Limited | System and method for reserving and signaling hybrid automatic repeat request identifiers |
| US8245229B2 (en) * | 2008-09-30 | 2012-08-14 | Microsoft Corporation | Temporal batching of I/O jobs |
| US8346995B2 (en) | 2008-09-30 | 2013-01-01 | Microsoft Corporation | Balancing usage of hardware devices among clients |
| US8479214B2 (en) * | 2008-09-30 | 2013-07-02 | Microsoft Corporation | Hardware throughput saturation detection |
| US7920475B2 (en) * | 2008-12-15 | 2011-04-05 | Verizon Patent And Licensing Inc. | System and method for adaptive removal of delay jitter effect and low end-to-end delay |
| EP2211335A1 (en) * | 2009-01-21 | 2010-07-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus, method and computer program for obtaining a parameter describing a variation of a signal characteristic of a signal |
| US8611337B2 (en) * | 2009-03-31 | 2013-12-17 | Adobe Systems Incorporated | Adaptive subscriber buffering policy with persistent delay detection for live audio streams |
| US9137719B2 (en) * | 2009-10-27 | 2015-09-15 | Clearwire Ip Holdings Llc | Multi-frequency real-time data stream handoff |
| KR101590972B1 (ko) * | 2009-12-24 | 2016-02-02 | 텔레콤 이탈리아 소시에떼 퍼 아찌오니 | 통신 네트워크에서의 전송 스케줄링 방법, 해당 통신 노드 및 컴퓨터 프로그램 생성물 |
| US9380401B1 (en) | 2010-02-03 | 2016-06-28 | Marvell International Ltd. | Signaling schemes allowing discovery of network devices capable of operating in multiple network modes |
| US9158589B2 (en) | 2010-04-05 | 2015-10-13 | Futurewei Technologies, Inc. | Method for dynamic migration of a process or services from one control plane processor to another |
| US8532804B2 (en) * | 2010-06-18 | 2013-09-10 | Microsoft Corporation | Predictive resampler scheduler algorithm |
| US8744367B2 (en) | 2010-08-31 | 2014-06-03 | At&T Intellectual Property I, L.P. | Tail optimization protocol for cellular radio resource allocation |
| KR101399604B1 (ko) * | 2010-09-30 | 2014-05-28 | 한국전자통신연구원 | 지터버퍼 조정장치, 전자장치 및 그 방법 |
| US8527627B2 (en) | 2010-12-14 | 2013-09-03 | At&T Intellectual Property I, L.P. | Intelligent mobility application profiling with respect to identified communication bursts |
| KR20120108564A (ko) * | 2011-03-24 | 2012-10-05 | 삼성전자주식회사 | 데이터 처리 시스템 및 그 동작 방법 |
| US9177570B2 (en) * | 2011-04-15 | 2015-11-03 | St-Ericsson Sa | Time scaling of audio frames to adapt audio processing to communications network timing |
| US9220066B2 (en) | 2011-06-20 | 2015-12-22 | At&T Intellectual Property I, L.P. | Bundling data transfers and employing tail optimization protocol to manage cellular radio resource utilization |
| US9264872B2 (en) | 2011-06-20 | 2016-02-16 | At&T Intellectual Property I, L.P. | Controlling traffic transmissions to manage cellular radio resource utilization |
| US8797874B2 (en) | 2011-09-09 | 2014-08-05 | Futurewei Technologies, Inc. | Apparatus and system for packet routing and forwarding in an interior network |
| GB2520866B (en) | 2011-10-25 | 2016-05-18 | Skype Ltd | Jitter buffer |
| CN107978325B (zh) * | 2012-03-23 | 2022-01-11 | 杜比实验室特许公司 | 语音通信方法和设备、操作抖动缓冲器的方法和设备 |
| EP2672393A1 (en) * | 2012-06-04 | 2013-12-11 | Dialog Semiconductor B.V. | Circuit and methods to use an audio interface to program a device within an audio stream |
| US9787416B2 (en) * | 2012-09-07 | 2017-10-10 | Apple Inc. | Adaptive jitter buffer management for networks with varying conditions |
| US10356143B2 (en) * | 2012-10-10 | 2019-07-16 | Samsung Electronics Co., Ltd. | Method and apparatus for media data delivery control |
| CN102970133B (zh) * | 2012-11-12 | 2015-10-14 | 安徽量子通信技术有限公司 | 量子网络的语音传输方法和语音终端 |
| KR20140067512A (ko) * | 2012-11-26 | 2014-06-05 | 삼성전자주식회사 | 신호 처리 장치 및 그 신호 처리 방법 |
| CN103888381A (zh) | 2012-12-20 | 2014-06-25 | 杜比实验室特许公司 | 用于控制抖动缓冲器的装置和方法 |
| US9526037B2 (en) * | 2013-02-04 | 2016-12-20 | Apple Inc. | SRVCC handover indication for remote party to voice call |
| US9420475B2 (en) * | 2013-02-08 | 2016-08-16 | Intel Deutschland Gmbh | Radio communication devices and methods for controlling a radio communication device |
| US9565139B2 (en) | 2013-03-15 | 2017-02-07 | Comcast Cable Communications, Llc | Remote latency adjustment |
| US9107159B2 (en) * | 2013-06-07 | 2015-08-11 | Apple Inc. | Enhancing jitter buffer performance through radio level feedback |
| KR101953613B1 (ko) * | 2013-06-21 | 2019-03-04 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 지터 버퍼 제어부, 오디오 디코더, 방법 및 컴퓨터 프로그램 |
| MY171256A (en) | 2013-06-21 | 2019-10-07 | Fraunhofer Ges Forschung | Time scaler, audio decoder, method and a computer program using a quality control |
| CN103474083B (zh) * | 2013-09-18 | 2015-11-18 | 中国人民解放军电子工程学院 | 基于正交正弦脉冲序列定位标签的语音时间规整方法 |
| GB201318653D0 (en) * | 2013-10-22 | 2013-12-04 | Microsoft Corp | Adapting a jitter buffer |
| US9525641B1 (en) * | 2014-01-24 | 2016-12-20 | Google Inc. | Facilitating buffer wait time determination based on device- or entity-related conditions |
| US9338259B2 (en) | 2014-02-05 | 2016-05-10 | Sergio Ammirata | User defined protocol for zero-added-jitter and error free transmission of layer-2 datagrams across lossy packet-switched network links |
| KR102163269B1 (ko) * | 2014-03-04 | 2020-10-08 | 삼성전자주식회사 | 브이오아이피 프레임 전송 방법 및 장치 |
| US20160142840A1 (en) * | 2014-03-14 | 2016-05-19 | Qualcomm Incorporated | Features and optimizations for personal communication device based public addressing system |
| WO2015147710A1 (en) * | 2014-03-26 | 2015-10-01 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and equipment for management of playback buffers |
| CN105207955B (zh) * | 2014-06-30 | 2019-02-05 | 华为技术有限公司 | 数据帧的处理方法和装置 |
| US9762355B2 (en) * | 2014-07-31 | 2017-09-12 | Qualcomm Incorporated | System and method of redundancy based packet transmission error recovery |
| EP3202106B1 (en) | 2014-10-02 | 2018-12-12 | Jacoti BVBA | Method to handle problematic patterns in a low latency multimedia streaming environment |
| KR101600284B1 (ko) | 2014-10-17 | 2016-03-07 | 주식회사 이노와이어리스 | 영상 품질 측정 방법 |
| CN104410587A (zh) * | 2014-11-13 | 2015-03-11 | 京信通信系统(中国)有限公司 | 一种接收缓冲区容量控制方法及装置 |
| US9826445B2 (en) | 2015-05-21 | 2017-11-21 | At&T Mobility Ii Llc | Facilitation of adaptive dejitter buffer between mobile devices |
| US9998386B2 (en) * | 2015-05-21 | 2018-06-12 | At&T Mobility Ii Llc | Facilitation of adaptive dejitter buffer |
| US9788026B2 (en) * | 2015-08-25 | 2017-10-10 | Imagine Communications Corp. | Converting adaptive bitrate chunks to a streaming format |
| US10412453B2 (en) * | 2015-10-13 | 2019-09-10 | Futurewei Technologies, Inc. | Probability weighted DASH based video streaming over an information-centric network |
| US10204635B1 (en) * | 2015-12-01 | 2019-02-12 | Marvell International Ltd. | Device and method for processing media samples |
| US20170187635A1 (en) * | 2015-12-28 | 2017-06-29 | Qualcomm Incorporated | System and method of jitter buffer management |
| KR102419595B1 (ko) | 2016-01-07 | 2022-07-11 | 삼성전자주식회사 | 재생 지연 조절 방법 및 이를 적용한 전자 장치 |
| US10349430B2 (en) * | 2016-08-03 | 2019-07-09 | Vasona Networks, Inc. | Dejittering system |
| CN106656649B (zh) * | 2016-09-14 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 一种实时通话过程中基于测速的通道切换方法、客户端与服务器 |
| CN107945807B (zh) * | 2016-10-12 | 2021-04-13 | 厦门雅迅网络股份有限公司 | 基于静音游程的语音识别方法及其系统 |
| JP6919261B2 (ja) | 2017-03-24 | 2021-08-18 | ヤマハ株式会社 | 音データ処理装置、音データ処理方法及びプログラム |
| US10454811B2 (en) * | 2017-04-07 | 2019-10-22 | Qualcomm Incorporated | Apparatus and method for de-jitter buffer delay adjustment |
| US10978096B2 (en) * | 2017-04-25 | 2021-04-13 | Qualcomm Incorporated | Optimized uplink operation for voice over long-term evolution (VoLte) and voice over new radio (VoNR) listen or silent periods |
| US10998002B2 (en) * | 2017-05-31 | 2021-05-04 | Nxp B.V. | Audio time stretching |
| US10616123B2 (en) * | 2017-07-07 | 2020-04-07 | Qualcomm Incorporated | Apparatus and method for adaptive de-jitter buffer |
| US10313416B2 (en) * | 2017-07-21 | 2019-06-04 | Nxp B.V. | Dynamic latency control |
| US20190102223A1 (en) * | 2017-09-29 | 2019-04-04 | Niall Power | System, Apparatus And Method For Real-Time Activated Scheduling In A Queue Management Device |
| EP3794783A1 (en) * | 2018-05-16 | 2021-03-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Delay-aware resource sharing |
| US10616304B2 (en) * | 2018-05-30 | 2020-04-07 | Qualcomm Incorporated | Audio dejittering using delay standard deviation |
| US11240176B2 (en) | 2018-08-21 | 2022-02-01 | At&T Intellectual Property I, L.P. | Time-spaced messaging for facilitating network communications |
| US10812216B2 (en) | 2018-11-05 | 2020-10-20 | XCOM Labs, Inc. | Cooperative multiple-input multiple-output downlink scheduling |
| US10659112B1 (en) | 2018-11-05 | 2020-05-19 | XCOM Labs, Inc. | User equipment assisted multiple-input multiple-output downlink configuration |
| US10432272B1 (en) | 2018-11-05 | 2019-10-01 | XCOM Labs, Inc. | Variable multiple-input multiple-output downlink user equipment |
| US10756860B2 (en) | 2018-11-05 | 2020-08-25 | XCOM Labs, Inc. | Distributed multiple-input multiple-output downlink configuration |
| US12074809B2 (en) * | 2018-11-19 | 2024-08-27 | Nokia Technologies Oy | Signalling of dejittering buffer capabilities for TSN integration |
| KR20210087089A (ko) | 2018-11-27 | 2021-07-09 | 엑스콤 랩스 인코퍼레이티드 | 넌-코히어런트 협력 다중 입출력 통신 |
| WO2020122782A1 (en) * | 2018-12-12 | 2020-06-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Communication system with de-jitter buffer for reducing jitter |
| US10756795B2 (en) | 2018-12-18 | 2020-08-25 | XCOM Labs, Inc. | User equipment with cellular link and peer-to-peer link |
| US11063645B2 (en) | 2018-12-18 | 2021-07-13 | XCOM Labs, Inc. | Methods of wirelessly communicating with a group of devices |
| US11330649B2 (en) | 2019-01-25 | 2022-05-10 | XCOM Labs, Inc. | Methods and systems of multi-link peer-to-peer communications |
| US10756767B1 (en) | 2019-02-05 | 2020-08-25 | XCOM Labs, Inc. | User equipment for wirelessly communicating cellular signal with another user equipment |
| US10896021B2 (en) | 2019-02-26 | 2021-01-19 | Nvidia Corporation | Dynamically preventing audio underrun using machine learning |
| JPWO2020217605A1 (pt) * | 2019-04-23 | 2020-10-29 | ||
| US10735057B1 (en) | 2019-04-29 | 2020-08-04 | XCOM Labs, Inc. | Uplink user equipment selection |
| US10686502B1 (en) | 2019-04-29 | 2020-06-16 | XCOM Labs, Inc. | Downlink user equipment selection |
| US11411778B2 (en) | 2019-07-12 | 2022-08-09 | XCOM Labs, Inc. | Time-division duplex multiple input multiple output calibration |
| US11411779B2 (en) | 2020-03-31 | 2022-08-09 | XCOM Labs, Inc. | Reference signal channel estimation |
| US12088499B2 (en) | 2020-04-15 | 2024-09-10 | Virewirx, Inc. | System and method for reducing data packet processing false alarms |
| US11889128B2 (en) | 2021-01-05 | 2024-01-30 | Qualcomm Incorporated | Call audio playback speed adjustment |
| KR102463916B1 (ko) * | 2021-02-04 | 2022-11-04 | 상명대학교산학협력단 | 시간 동기화 없는 결정론적 네트워크를 위한 지터 상한 보장 방법 |
| WO2022183431A1 (zh) * | 2021-03-04 | 2022-09-09 | 华为技术有限公司 | 数据处理方法和设备 |
| WO2022212968A1 (en) * | 2021-03-30 | 2022-10-06 | Qualcomm Incorporated | Dejitter target delay value based on silence descriptors |
| WO2022241436A1 (en) | 2021-05-14 | 2022-11-17 | XCOM Labs, Inc. | Scrambling identifiers for wireless communication systems |
| DE102021117762B3 (de) * | 2021-07-09 | 2022-08-18 | Dfs Deutsche Flugsicherung Gmbh | Verfahren zur Jitter-Kompensation bei einem Empfangen von Sprachinhalt über IP basierte Netzwerke und Empfänger hierfür sowie Verfahren und Vorrichtung zum Senden und Empfangen von Sprachinhalt mit Jitter-Kompensation |
| AU2023223376A1 (en) * | 2022-02-28 | 2024-07-18 | Arris Enterprises Llc | Method of measuring timing holdover performance in an r-phy system |
| US20230328000A1 (en) * | 2022-03-23 | 2023-10-12 | Meta Platforms Technologies, Llc | Systems and methods of dynamic discard timer adjustment for wireless communication |
| CA3260305A1 (en) * | 2022-07-01 | 2024-01-04 | Arris Enterprises Llc | METHOD FOR MEASURING NETWORK JIGGY |
| CN119360863A (zh) * | 2024-10-21 | 2025-01-24 | 东莞市敏动电子科技有限公司 | 一种低延迟自适应无线音频传输方法 |
Family Cites Families (145)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US16711A (en) * | 1857-03-03 | Pen and pencil holder | ||
| US185186A (en) * | 1876-12-12 | Improvement in mail-bag fastenings | ||
| US152152A (en) * | 1874-06-16 | Improvement in bob-sleds | ||
| US179474A (en) * | 1876-07-04 | Improvement in the manufacture of gas for illuminating and heating | ||
| US243846A (en) * | 1881-07-05 | David buick | ||
| US89003A (en) * | 1869-04-20 | Improved railway-carriage wheel | ||
| US742026A (en) * | 1903-07-09 | 1903-10-20 | Isaac Pendleton Henthorn | Embryotractor. |
| JPS5643800A (en) | 1979-09-19 | 1981-04-22 | Fujitsu Ltd | Multilayer printed board |
| JPS57158247A (en) | 1981-03-24 | 1982-09-30 | Tokuyama Soda Co Ltd | Flame retardant polyolefin composition |
| JPS57159038A (en) | 1981-03-25 | 1982-10-01 | Fujitsu Ltd | Forming method for v-shaped isolation region |
| JPS57158247U (pt) | 1981-03-30 | 1982-10-05 | ||
| JPS59153346A (ja) | 1983-02-21 | 1984-09-01 | Nec Corp | 音声符号化・復号化装置 |
| JPS61156949A (ja) | 1984-12-27 | 1986-07-16 | Matsushita Electric Ind Co Ltd | 音声パケツト通信方式 |
| JPS61158949A (ja) | 1985-01-07 | 1986-07-18 | Toyo Gosei Kogyo Kk | 2−(4′−アミルベンゾイル)安息香酸混合物の製造方法 |
| JPH0650888B2 (ja) * | 1985-09-20 | 1994-06-29 | 日本電信電話株式会社 | 音声パケツト通信方式 |
| JPS637297A (ja) | 1986-06-24 | 1988-01-13 | 辻 賢二 | 横ミシン刄固定具 |
| BE1000415A7 (nl) | 1987-03-18 | 1988-11-22 | Bell Telephone Mfg | Asynchroon op basis van tijdsverdeling werkend communicatiesysteem. |
| JPS6429141A (en) | 1987-07-24 | 1989-01-31 | Nec Corp | Packet exchange system |
| JPH01113744A (ja) | 1987-10-27 | 1989-05-02 | Ritsutai Shiyashinzou Kk | 立体写真像製作方法およびその装置 |
| JP2760810B2 (ja) | 1988-09-19 | 1998-06-04 | 株式会社日立製作所 | 音声パケット処理方法 |
| SE462277B (sv) | 1988-10-05 | 1990-05-28 | Vme Ind Sweden Ab | Hydrauliskt styrsystem |
| JPH02288441A (ja) * | 1989-04-28 | 1990-11-28 | Oki Electric Ind Co Ltd | 音声パケット受信回路 |
| GB2243793B (en) * | 1990-05-09 | 1993-08-18 | Pall Corp | Filter assemblies |
| JPH04113744A (ja) | 1990-09-04 | 1992-04-15 | Fujitsu Ltd | 可変速度パケット伝送方式 |
| CN1031540C (zh) | 1990-09-19 | 1996-04-10 | 菲利浦光灯制造公司 | 记录载体、主数据和控制文件的记录方法和装置及读出装置 |
| JP2846443B2 (ja) | 1990-10-09 | 1999-01-13 | 三菱電機株式会社 | パケット組立分解装置 |
| JPH04331529A (ja) * | 1991-05-07 | 1992-11-19 | Fujitsu Ltd | ゆらぎ吸収バッファの制御装置 |
| CA2483324C (en) | 1991-06-11 | 2008-05-06 | Qualcomm Incorporated | Estimation of background noise in a variable rate vocoder |
| US5283811A (en) | 1991-09-03 | 1994-02-01 | General Electric Company | Decision feedback equalization for digital cellular radio |
| US5371853A (en) * | 1991-10-28 | 1994-12-06 | University Of Maryland At College Park | Method and system for CELP speech coding and codebook for use therewith |
| JPH06152648A (ja) * | 1992-11-09 | 1994-05-31 | Mitsubishi Electric Corp | データ・パケット通信方法 |
| US5317604A (en) * | 1992-12-30 | 1994-05-31 | Gte Government Systems Corporation | Isochronous interface method |
| JP3186315B2 (ja) | 1993-02-27 | 2001-07-11 | ソニー株式会社 | 信号圧縮装置、信号伸張装置、信号送信装置、信号受信装置及び信号送受信装置 |
| US5490479A (en) | 1993-05-10 | 1996-02-13 | Shalev; Matti | Method and a product resulting from the use of the method for elevating feed storage bins |
| US5440582A (en) | 1993-05-28 | 1995-08-08 | Motorola, Inc. | Method and apparatus for determining signal usability |
| US5640368A (en) * | 1993-07-26 | 1997-06-17 | Exxon Production Research Company | Migration velocity analysis using limited-aperture and monte carlo migration |
| US5440562A (en) | 1993-12-27 | 1995-08-08 | Motorola, Inc. | Communication through a channel having a variable propagation delay |
| US5784532A (en) | 1994-02-16 | 1998-07-21 | Qualcomm Incorporated | Application specific integrated circuit (ASIC) for performing rapid speech compression in a mobile telephone system |
| EP1628306B1 (en) | 1994-08-12 | 2011-12-07 | Sony Corporation | Video signal editing apparatus |
| NL9401696A (nl) | 1994-10-14 | 1996-05-01 | Nederland Ptt | Bufferuitleesbesturing van ATM ontvanger. |
| US5602959A (en) | 1994-12-05 | 1997-02-11 | Motorola, Inc. | Method and apparatus for characterization and reconstruction of speech excitation waveforms |
| US5699478A (en) | 1995-03-10 | 1997-12-16 | Lucent Technologies Inc. | Frame erasure compensation technique |
| JP3286110B2 (ja) | 1995-03-16 | 2002-05-27 | 松下電器産業株式会社 | 音声パケット補間装置 |
| US5929921A (en) * | 1995-03-16 | 1999-07-27 | Matsushita Electric Industrial Co., Ltd. | Video and audio signal multiplex sending apparatus, receiving apparatus and transmitting apparatus |
| KR0164827B1 (ko) | 1995-03-31 | 1999-03-20 | 김광호 | 프로그램 가이드신호 수신기 |
| RU2163032C2 (ru) | 1995-09-14 | 2001-02-10 | Эрикссон Инк. | Система адаптивной фильтрации аудиосигналов для улучшения разборчивости речи при наличии шума |
| JPH09127995A (ja) | 1995-10-26 | 1997-05-16 | Sony Corp | 信号復号化方法及び信号復号化装置 |
| US5640388A (en) * | 1995-12-21 | 1997-06-17 | Scientific-Atlanta, Inc. | Method and apparatus for removing jitter and correcting timestamps in a packet stream |
| JPH09261613A (ja) | 1996-03-26 | 1997-10-03 | Mitsubishi Electric Corp | データ受信再生装置 |
| US5866187A (en) * | 1996-08-28 | 1999-02-02 | Bunge Foods Corporation | Baking formulation containing pelletized shortening |
| KR0185858B1 (ko) * | 1996-08-31 | 1999-05-15 | 대우전자주식회사 | 에이티엠망에서의 이디디를 이용한 스톱-앤-고우 큐 서비스방법 |
| US5940479A (en) | 1996-10-01 | 1999-08-17 | Northern Telecom Limited | System and method for transmitting aural information between a computer and telephone equipment |
| JPH10190735A (ja) | 1996-12-27 | 1998-07-21 | Secom Co Ltd | 通話システム |
| JPH10313315A (ja) | 1997-05-12 | 1998-11-24 | Mitsubishi Electric Corp | 音声セルゆらぎ吸収装置 |
| US6073092A (en) | 1997-06-26 | 2000-06-06 | Telogy Networks, Inc. | Method for speech coding based on a code excited linear prediction (CELP) model |
| JP3075246B2 (ja) * | 1998-01-26 | 2000-08-14 | 日本電気株式会社 | 音声パケット送受信方法および装置 |
| US6240386B1 (en) | 1998-08-24 | 2001-05-29 | Conexant Systems, Inc. | Speech codec employing noise classification for noise compensation |
| US6259677B1 (en) | 1998-09-30 | 2001-07-10 | Cisco Technology, Inc. | Clock synchronization and dynamic jitter management for voice over IP and real-time data |
| US6370125B1 (en) * | 1998-10-08 | 2002-04-09 | Adtran, Inc. | Dynamic delay compensation for packet-based voice network |
| JP2000124947A (ja) | 1998-10-13 | 2000-04-28 | Oki Electric Ind Co Ltd | 音声パケット受信装置及び方法 |
| WO2000024144A1 (en) | 1998-10-21 | 2000-04-27 | Tiernan Communications, Inc. | Method and apparatus for de-jittering asynchronous data transfer delay |
| US6473399B1 (en) | 1998-11-30 | 2002-10-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for determining an optimum timeout under varying data rates in an RLC wireless system which uses a PDU counter |
| US6456964B2 (en) | 1998-12-21 | 2002-09-24 | Qualcomm, Incorporated | Encoding of periodic speech using prototype waveforms |
| US6922669B2 (en) * | 1998-12-29 | 2005-07-26 | Koninklijke Philips Electronics N.V. | Knowledge-based strategies applied to N-best lists in automatic speech recognition systems |
| US6311154B1 (en) * | 1998-12-30 | 2001-10-30 | Nokia Mobile Phones Limited | Adaptive windows for analysis-by-synthesis CELP-type speech coding |
| US6452950B1 (en) | 1999-01-14 | 2002-09-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive jitter buffering |
| US20020101885A1 (en) * | 1999-03-15 | 2002-08-01 | Vladimir Pogrebinsky | Jitter buffer and methods for control of same |
| US7117156B1 (en) * | 1999-04-19 | 2006-10-03 | At&T Corp. | Method and apparatus for performing packet loss or frame erasure concealment |
| KR100633720B1 (ko) | 1999-04-19 | 2006-10-16 | 에이티 앤드 티 코포레이션 | 패킷 손실 또는 프레임 삭제 은폐를 수행하는 방법 및 장치 |
| JP2000307654A (ja) | 1999-04-23 | 2000-11-02 | Canon Inc | 音声パケット伝送システム |
| GB9911737D0 (en) | 1999-05-21 | 1999-07-21 | Philips Electronics Nv | Audio signal time scale modification |
| US6785230B1 (en) | 1999-05-25 | 2004-08-31 | Matsushita Electric Industrial Co., Ltd. | Audio transmission apparatus |
| JP4218186B2 (ja) * | 1999-05-25 | 2009-02-04 | パナソニック株式会社 | 音声伝送装置 |
| JP3506960B2 (ja) * | 1999-08-03 | 2004-03-15 | シャープ株式会社 | パケット処理装置及びパケット処理プログラムを記録した記憶媒体 |
| JP4895418B2 (ja) * | 1999-08-24 | 2012-03-14 | ソニー株式会社 | 音声再生方法および音声再生装置 |
| JP4005359B2 (ja) | 1999-09-14 | 2007-11-07 | 富士通株式会社 | 音声符号化及び音声復号化装置 |
| US6377931B1 (en) | 1999-09-28 | 2002-04-23 | Mindspeed Technologies | Speech manipulation for continuous speech playback over a packet network |
| US6859460B1 (en) * | 1999-10-22 | 2005-02-22 | Cisco Technology, Inc. | System and method for providing multimedia jitter buffer adjustment for packet-switched networks |
| US6665317B1 (en) * | 1999-10-29 | 2003-12-16 | Array Telecom Corporation | Method, system, and computer program product for managing jitter |
| US6496794B1 (en) * | 1999-11-22 | 2002-12-17 | Motorola, Inc. | Method and apparatus for seamless multi-rate speech coding |
| US6693921B1 (en) * | 1999-11-30 | 2004-02-17 | Mindspeed Technologies, Inc. | System for use of packet statistics in de-jitter delay adaption in a packet network |
| US6366880B1 (en) | 1999-11-30 | 2002-04-02 | Motorola, Inc. | Method and apparatus for suppressing acoustic background noise in a communication system by equaliztion of pre-and post-comb-filtered subband spectral energies |
| EP1254574A1 (en) | 2000-02-08 | 2002-11-06 | Siemens AG | Method and system for integrating pbx features in a wireless network |
| JP3841256B2 (ja) * | 2000-02-15 | 2006-11-01 | 三菱電機株式会社 | 通信システム及び通信方法及び送信端末 |
| GB2360178B (en) * | 2000-03-06 | 2004-04-14 | Mitel Corp | Sub-packet insertion for packet loss compensation in Voice Over IP networks |
| US6813274B1 (en) * | 2000-03-21 | 2004-11-02 | Cisco Technology, Inc. | Network switch and method for data switching using a crossbar switch fabric with output port groups operating concurrently and independently |
| AU2001247578A1 (en) | 2000-04-03 | 2001-10-15 | Ericsson Inc. | Method and apparatus for efficient handover in packet data communication system |
| US6763375B1 (en) | 2000-04-11 | 2004-07-13 | International Business Machines Corporation | Method for defining and controlling the overall behavior of a network processor device |
| EP1279167B1 (en) | 2000-04-24 | 2007-05-30 | QUALCOMM Incorporated | Method and apparatus for predictively quantizing voiced speech |
| US6584438B1 (en) | 2000-04-24 | 2003-06-24 | Qualcomm Incorporated | Frame erasure compensation method in a variable rate speech coder |
| US7246057B1 (en) * | 2000-05-31 | 2007-07-17 | Telefonaktiebolaget Lm Ericsson (Publ) | System for handling variations in the reception of a speech signal consisting of packets |
| EP1182875A3 (en) * | 2000-07-06 | 2003-11-26 | Matsushita Electric Industrial Co., Ltd. | Streaming method and corresponding system |
| CN1119890C (zh) * | 2000-09-30 | 2003-08-27 | 华为技术有限公司 | 一种ip语音数据包的抗丢包处理方法 |
| JP4110734B2 (ja) * | 2000-11-27 | 2008-07-02 | 沖電気工業株式会社 | 音声パケット通信の品質制御装置 |
| US7155518B2 (en) * | 2001-01-08 | 2006-12-26 | Interactive People Unplugged Ab | Extranet workgroup formation across multiple mobile virtual private networks |
| JP2002223247A (ja) * | 2001-01-25 | 2002-08-09 | Matsushita Electric Ind Co Ltd | リアルタイム音声再生装置 |
| US20020133334A1 (en) | 2001-02-02 | 2002-09-19 | Geert Coorman | Time scale modification of digitally sampled waveforms in the time domain |
| US20040204935A1 (en) | 2001-02-21 | 2004-10-14 | Krishnasamy Anandakumar | Adaptive voice playout in VOP |
| US7005511B2 (en) | 2001-02-26 | 2006-02-28 | The Regents Of The University Of California | Fluorescent protein variants and methods for making same |
| US7212517B2 (en) * | 2001-04-09 | 2007-05-01 | Lucent Technologies Inc. | Method and apparatus for jitter and frame erasure correction in packetized voice communication systems |
| AU2001258364A1 (en) * | 2001-04-24 | 2002-11-05 | Nokia Corporation | Methods for changing the size of a jitter buffer and for time alignment, communications system, receiving end, and transcoder |
| JP3644404B2 (ja) * | 2001-04-27 | 2005-04-27 | 三菱電機株式会社 | 光加入者線端局装置及びaponシステム及びセル遅延ゆらぎ抑制方法 |
| US7006511B2 (en) | 2001-07-17 | 2006-02-28 | Avaya Technology Corp. | Dynamic jitter buffering for voice-over-IP and other packet-based communication systems |
| US7266127B2 (en) | 2002-02-08 | 2007-09-04 | Lucent Technologies Inc. | Method and system to compensate for the effects of packet delays on speech quality in a Voice-over IP system |
| US7079486B2 (en) | 2002-02-13 | 2006-07-18 | Agere Systems Inc. | Adaptive threshold based jitter buffer management for packetized data |
| US7158572B2 (en) * | 2002-02-14 | 2007-01-02 | Tellabs Operations, Inc. | Audio enhancement communication techniques |
| US7126957B1 (en) | 2002-03-07 | 2006-10-24 | Utstarcom, Inc. | Media flow method for transferring real-time data between asynchronous and synchronous networks |
| US7263109B2 (en) | 2002-03-11 | 2007-08-28 | Conexant, Inc. | Clock skew compensation for a jitter buffer |
| US6944540B2 (en) * | 2002-03-28 | 2005-09-13 | Motorola, Inc. | Time determination in satellite positioning system receivers and methods therefor |
| US20030187663A1 (en) | 2002-03-28 | 2003-10-02 | Truman Michael Mead | Broadband frequency translation for high frequency regeneration |
| JP3761486B2 (ja) | 2002-03-29 | 2006-03-29 | Necインフロンティア株式会社 | 無線lanシステム、主装置およびプログラム |
| AU2002307884A1 (en) * | 2002-04-22 | 2003-11-03 | Nokia Corporation | Method and device for obtaining parameters for parametric speech coding of frames |
| US7496086B2 (en) * | 2002-04-30 | 2009-02-24 | Alcatel-Lucent Usa Inc. | Techniques for jitter buffer delay management |
| US7280510B2 (en) | 2002-05-21 | 2007-10-09 | Nortel Networks Limited | Controlling reverse channel activity in a wireless communications system |
| AU2002309146A1 (en) * | 2002-06-14 | 2003-12-31 | Nokia Corporation | Enhanced error concealment for spatial audio |
| US20040001494A1 (en) * | 2002-07-01 | 2004-01-01 | Zarlink Semiconductor V.N. Inc | Architecture for obtaining playback time from a packet sequence number in AAL2 SSCS voice |
| US7336678B2 (en) * | 2002-07-31 | 2008-02-26 | Intel Corporation | State-based jitter buffer and method of operation |
| US8520519B2 (en) | 2002-09-20 | 2013-08-27 | Broadcom Corporation | External jitter buffer in a packet voice system |
| JP3796240B2 (ja) | 2002-09-30 | 2006-07-12 | 三洋電機株式会社 | ネットワーク電話機および音声復号化装置 |
| JP4146708B2 (ja) | 2002-10-31 | 2008-09-10 | 京セラ株式会社 | 通信システム、無線通信端末、データ配信装置及び通信方法 |
| US6996626B1 (en) | 2002-12-03 | 2006-02-07 | Crystalvoice Communications | Continuous bandwidth assessment and feedback for voice-over-internet-protocol (VoIP) comparing packet's voice duration and arrival rate |
| KR100517237B1 (ko) | 2002-12-09 | 2005-09-27 | 한국전자통신연구원 | 직교 주파수 분할 다중화 무선 통신 시스템에서의채널품질 추정과 링크적응 방법 및 그 장치 |
| US7525918B2 (en) | 2003-01-21 | 2009-04-28 | Broadcom Corporation | Using RTCP statistics for media system control |
| US7394833B2 (en) | 2003-02-11 | 2008-07-01 | Nokia Corporation | Method and apparatus for reducing synchronization delay in packet switched voice terminals using speech decoder modification |
| JP2004266724A (ja) | 2003-03-04 | 2004-09-24 | Matsushita Electric Ind Co Ltd | リアルタイム音声用バッファ制御装置 |
| JP3825007B2 (ja) | 2003-03-11 | 2006-09-20 | 沖電気工業株式会社 | ジッタバッファの制御方法 |
| JP4034217B2 (ja) | 2003-03-20 | 2008-01-16 | クボタ松下電工外装株式会社 | 出隅部材とこれを用いた出隅納め構造 |
| US7551671B2 (en) * | 2003-04-16 | 2009-06-23 | General Dynamics Decision Systems, Inc. | System and method for transmission of video signals using multiple channels |
| JP2005057504A (ja) | 2003-08-05 | 2005-03-03 | Matsushita Electric Ind Co Ltd | データ通信装置及びデータ通信方法 |
| EP1668828B1 (en) | 2003-08-15 | 2008-10-01 | Research in Motion Limited | Apparatus, and an associated method, for preserving service quality levels during hand-off in a radio communication system |
| US7596488B2 (en) * | 2003-09-15 | 2009-09-29 | Microsoft Corporation | System and method for real-time jitter control and packet-loss concealment in an audio signal |
| US7505764B2 (en) | 2003-10-28 | 2009-03-17 | Motorola, Inc. | Method for retransmitting a speech packet |
| US7272400B1 (en) | 2003-12-19 | 2007-09-18 | Core Mobility, Inc. | Load balancing between users of a wireless base station |
| US7424026B2 (en) * | 2004-04-28 | 2008-09-09 | Nokia Corporation | Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal |
| JP4076981B2 (ja) | 2004-08-09 | 2008-04-16 | Kddi株式会社 | 通信端末装置およびバッファ制御方法 |
| CN101873266B (zh) * | 2004-08-30 | 2015-11-25 | 高通股份有限公司 | 用于语音ip传输的自适应去抖动缓冲器 |
| US8085678B2 (en) * | 2004-10-13 | 2011-12-27 | Qualcomm Incorporated | Media (voice) playback (de-jitter) buffer adjustments based on air interface |
| SG124307A1 (en) * | 2005-01-20 | 2006-08-30 | St Microelectronics Asia | Method and system for lost packet concealment in high quality audio streaming applications |
| US8102872B2 (en) | 2005-02-01 | 2012-01-24 | Qualcomm Incorporated | Method for discontinuous transmission and accurate reproduction of background noise information |
| US20060187970A1 (en) | 2005-02-22 | 2006-08-24 | Minkyu Lee | Method and apparatus for handling network jitter in a Voice-over IP communications network using a virtual jitter buffer and time scale modification |
| US8355907B2 (en) | 2005-03-11 | 2013-01-15 | Qualcomm Incorporated | Method and apparatus for phase matching frames in vocoders |
| US8155965B2 (en) * | 2005-03-11 | 2012-04-10 | Qualcomm Incorporated | Time warping frames inside the vocoder by modifying the residual |
| US8260611B2 (en) * | 2005-04-01 | 2012-09-04 | Qualcomm Incorporated | Systems, methods, and apparatus for highband excitation generation |
| US11966757B2 (en) | 2022-08-30 | 2024-04-23 | SOURCE Ltd. | System and method for selecting an execution strategy depending on validations |
| US12347805B2 (en) | 2023-05-11 | 2025-07-01 | Infineon Technologies Austria Ag | Inkjet printing of diffusion solder |
-
2005
- 2005-08-30 CN CN201010202729.9A patent/CN101873266B/zh not_active Expired - Lifetime
- 2005-08-30 DE DE602005024825T patent/DE602005024825D1/de not_active Expired - Lifetime
- 2005-08-30 KR KR1020077007479A patent/KR100938032B1/ko not_active Expired - Lifetime
- 2005-08-30 CN CN2005800366303A patent/CN101048813B/zh not_active Expired - Lifetime
- 2005-08-30 US US11/215,931 patent/US7830900B2/en active Active
- 2005-08-30 CN CN201010203619A patent/CN101867522A/zh active Pending
- 2005-08-30 CN CN2012102366244A patent/CN102779517A/zh active Pending
- 2005-08-30 CA CA2691589A patent/CA2691589A1/en not_active Abandoned
- 2005-08-30 EP EP10154337A patent/EP2189978A1/en not_active Withdrawn
- 2005-08-30 US US11/216,872 patent/US8331385B2/en active Active
- 2005-08-30 MY MYPI20054077A patent/MY149811A/en unknown
- 2005-08-30 PT PT101543312T patent/PT2200024E/pt unknown
- 2005-08-30 KR KR1020097002285A patent/KR100964437B1/ko not_active Expired - Lifetime
- 2005-08-30 DK DK10154331.2T patent/DK2200024T3/da active
- 2005-08-30 CA CA2691762A patent/CA2691762C/en not_active Expired - Lifetime
- 2005-08-30 ES ES05794150T patent/ES2355039T3/es not_active Expired - Lifetime
- 2005-08-30 ES ES10154331T patent/ES2405750T3/es not_active Expired - Lifetime
- 2005-08-30 PL PL10154331T patent/PL2200024T3/pl unknown
- 2005-08-30 AT AT05794150T patent/ATE488838T1/de not_active IP Right Cessation
- 2005-08-30 CA CA2691959A patent/CA2691959C/en not_active Expired - Lifetime
- 2005-08-30 CA CA2578737A patent/CA2578737C/en not_active Expired - Lifetime
- 2005-08-30 EP EP10154334.6A patent/EP2204796B1/en not_active Expired - Lifetime
- 2005-08-30 MX MX2007002483A patent/MX2007002483A/es active IP Right Grant
- 2005-08-30 BR BRPI0514801-4A patent/BRPI0514801B1/pt active IP Right Grant
- 2005-08-30 WO PCT/US2005/030894 patent/WO2006026635A2/en not_active Ceased
- 2005-08-30 TW TW094129711A patent/TWI454101B/zh not_active IP Right Cessation
- 2005-08-30 PL PL05794150T patent/PL1787290T3/pl unknown
- 2005-08-30 CN CN2010102036527A patent/CN101873267B/zh not_active Expired - Lifetime
- 2005-08-30 KR KR1020097002284A patent/KR100938034B1/ko not_active Expired - Lifetime
- 2005-08-30 KR KR1020097002283A patent/KR100964436B1/ko not_active Expired - Lifetime
- 2005-08-30 US US11/216,601 patent/US7817677B2/en active Active
- 2005-08-30 US US11/216,799 patent/US7826441B2/en active Active
- 2005-08-30 JP JP2007530289A patent/JP2008512062A/ja not_active Withdrawn
- 2005-08-30 EP EP10154331A patent/EP2200024B1/en not_active Expired - Lifetime
- 2005-08-30 EP EP05794150A patent/EP1787290B1/en not_active Expired - Lifetime
-
2009
- 2009-10-26 JP JP2009245217A patent/JP4933605B2/ja not_active Expired - Lifetime
-
2010
- 2010-05-12 JP JP2010110176A patent/JP5389729B2/ja not_active Expired - Lifetime
-
2012
- 2012-10-05 JP JP2012223579A patent/JP5591897B2/ja not_active Expired - Lifetime
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BRPI0514801B1 (pt) | Buffer de-jitter adaptativo para voz sobre ip | |
| US7924711B2 (en) | Method and apparatus to adaptively manage end-to-end voice over internet protocol (VolP) media latency | |
| HK1177977A (en) | Adaptive de-jitter buffer for voice over ip |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B15K | Others concerning applications: alteration of classification |
Ipc: H04L 12/66 (2006.01), G10L 19/005 (2013.01), H04J |
|
| B06T | Formal requirements before examination [chapter 6.20 patent gazette] | ||
| B06A | Patent application procedure suspended [chapter 6.1 patent gazette] | ||
| B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
| B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 18/06/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 18/06/2019, OBSERVADAS AS CONDICOES LEGAIS |