BR112016007940B1 - Método e aparelho de codificação de um quadro e memória legível por computador - Google Patents

Método e aparelho de codificação de um quadro e memória legível por computador Download PDF

Info

Publication number
BR112016007940B1
BR112016007940B1 BR112016007940-0A BR112016007940A BR112016007940B1 BR 112016007940 B1 BR112016007940 B1 BR 112016007940B1 BR 112016007940 A BR112016007940 A BR 112016007940A BR 112016007940 B1 BR112016007940 B1 BR 112016007940B1
Authority
BR
Brazil
Prior art keywords
frame
audio frame
audio
bits
redundant
Prior art date
Application number
BR112016007940-0A
Other languages
English (en)
Other versions
BR112016007940A2 (pt
Inventor
Venkatraman S. Atti
Venkatesh Krishnan
Vivek Rajendran
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112016007940A2 publication Critical patent/BR112016007940A2/pt
Publication of BR112016007940B1 publication Critical patent/BR112016007940B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech 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 using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/002Dynamic bit allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0014Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0075Transmission of coding parameters to receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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
    • G10L2019/0001Codebooks

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

SISTEMAS E MÉTODOS DE COMUNICAÇÃO DE INFORMAÇÃO DE QUADRO REDUNDANTE. A presente invenção se refere a um método que inclui o recebimento de um segundo quadro de áudio em um decodificador. O segundo quadro de áudio segue um primeiro quadro de áudio em um sinal de áudio e inclui um primeiro número de bits alocados para informação de codificação primária associada com o segundo quadro de áudio, um segundo número de bits alocados para informação de codificação redundante associada com o primeiro quadro de áudio, e um indicador de um tipo de quadro do primeiro quadro de áudio. Em resposta a uma condição de apagamento de quadro associada com o primeiro quadro de áudio, o segundo número de bits é determinado com base no indicador e usado para decodificar o primeiro quadro de áudio. Em condições de canal limpo, o primeiro quadro de áudio é recebido e decodificado com base em bits de codificação primária no primeiro quadro de áudio, e o primeiro número de bits é determinado com base no indicador e usado para decodificar o segundo quadro de áudio.

Description

REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
[0001] O presente pedido reivindica prioridade do Pedido de Patente Provisório US n° 61/890.092, intitulado “SYSTEMS AND METHODS OF COMMUNICATING REDUNDANT FRAME INFORMATION”, depositado em 11 de outubro de 2013 e Pedido de Patente Não Provisório US n° 14/509.817, intitulado “SYSTEMS AND METHODS OF COMMUNICATING REDUNDANT FRAME INFORMATION”, depositado em 08 de outubro de 2014, cujos conteúdos são incorporados por referência em sua totalidade.
CAMPO
[0002] A presente invenção é geralmente relacionada com a comunicação de informação de quadro redundante.
DESCRIÇÃO DA TÉCNICA RELACIONADA
[0003] Os avanços na tecnologia resultaram em dispositivos de computação menores e mais potentes. Por exemplo, existe atualmente uma variedade de dispositivos de computação portáteis pessoais, incluindo dispositivos de computação sem fios, tais como telefones portáteis sem fios, assistentes digitais pessoais (PDAs) e dispositivos de paginação (paging) são pequenos, leves e facilmente transportados por usuários. Mais especificamente, telefones sem fio portáteis, como telefones celulares e telefones de Protocolo de Internet (IP), podem comunicar pacotes de voz e dados através de redes sem fios. Além disso, muitos desses telefones sem fio incluem outros tipos de dispositivos que são incorporados. Por exemplo, um telefone sem fio também pode incluir uma câmera digital, uma câmera de vídeo digital, um gravador digital e um reprodutor de arquivos de áudio.
[0004] Aparelhos eletrônicos, como telefones celulares, podem enviar e receber dados através de redes. Por exemplo, dados de áudio podem ser enviados e recebidos através de uma rede comutada por circuitos (por exemplo, a rede telefônica pública comutada (PSTN), uma rede de sistema global para comunicações móveis (GSM), etc.) ou uma rede comutada por pacotes (por exemplo, uma voz através da rede de protocolo de internet (VoIP), uma voz através de evolução a longo prazo (VoLTE), etc.). Em uma rede comutada por pacotes, pacotes de áudio podem ser encaminhados individualmente a partir de um dispositivo de origem para um dispositivo de destino. Devido às condições da rede, os pacotes de áudio podem chegar fora de ordem. O dispositivo de destino pode armazenar pacotes recebidos em um buffer de compensação de jitter e pode reorganizar os pacotes recebidos, se necessário.
[0005] Vários esquemas de codificação podem ser usados durante a comunicação de dados de áudio. Por exemplo, dependendo do tipo de quadro de áudio, uma abordagem de predição linear excitada por código (CELP) ou uma transformada de cosseno discreta modificada com base em domínio de frequência (MDCT) pode ser usada para representar compactamente a voz e o áudio. A fim de melhorar a eficiência da codificação em taxas de bits baixas, (por exemplo, 13,2 kilobits por segundo (kbps), 24.4 kbps, etc.) quando se codifica maiores larguras de banda, por exemplo, até 8 quilohertz (kHz) de banda larga (WB), 16 kHz de banda super larga (SWB) ou 20 kHz de banda completa, o núcleo de banda inferior (por exemplo, até 6,4 kHz ou até 8 kHz) é normalmente codificado usando técnicas de codificação de correspondência de forma de onda, tal como CELP ou MDCT. É realizada uma extensão de largura de banda (BWE) que modela a banda alta (por exemplo, > 6,4 kHz ou > 8 kHz) e codifica “informação secundária” (por exemplo, associada com parâmetros de banda elevada). A informação secundária de banda alta pode incluir coeficientes de filtro de predição linear (LP) e parâmetros de ganho modelam tanto a evolução temporal fina quanto grossa. Um codificador ou um dispositivo de origem pode enviar as informações secundárias juntamente com a parte de baixa frequência para o dispositivo de destino, para que o dispositivo de destino possa sintetizar a parte de alta frequência do quadro de áudio no dispositivo de destino para reconstrução de alta qualidade.
SUMÁRIO
[0006] Uma vez que os pacotes em redes comutadas por pacotes podem chegar fora de ordem, é possível que, mesmo que um pacote particular (por exemplo, correspondente ao quadro de áudio N) seja corrompido ou perdido, um pacote subsequente (por exemplo, correspondente ao quadro de áudio N + 2) pode ser livre de erros e disponível no buffer de compensação de jitter. Assim, pode ser útil incluir, no quadro subsequente (por exemplo, quadro N + 2), informação de codificação redundante (por exemplo, informação de correção de erros) que pode ser usada para reconstruir o quadro anterior (por exemplo, quadro N).
[0007] A presente invenção descreve sistemas e métodos de comunicação de informação de quadro redundante. De acordo com as técnicas descritas, quando um esquema de extensão de largura de banda (BWE) está em uso, um quadro de áudio pode incluir quatro tipos de dados: um núcleo de baixa banda codificado, informação secundária de banda alta, informação de codificação redundante associada com uma parte de banda baixa de um quadro anterior, e informação de codificação redundante associada com parâmetros de banda alta do quadro anterior. O núcleo de banda baixa e informação secundária de banda alta para um quadro corrente podem ser coletivamente referidos como uma codificação “primária”. A informação de codificação redundante para a banda baixa e banda alta para um quadro anterior pode ser coletivamente referida como uma “cópia parcial”. Assim, um quadro pode incluir bits de codificação primária para a sua própria banda baixa e banda alta, e o quadro pode também incluir bits de cópia parcial para banda baixa e banda alta de um quadro anterior.
[0008] Quando ocorre uma condição de apagamento de quadro (por exemplo, o quadro anterior não é recebido ou é danificado devido a um erro de rede), a informação de codificação redundante pode ser utilizada por um receptor para reconstruir a imagem anterior. Além disso, o número de bits alocados para cada um dos quatro tipos de dados, isto é, núcleo de banda baixa, informação secundária de banda alta, cópia parcial do núcleo de banda baixa do quadro anterior e cópia parcial da banda alta do quadro anterior, podem ser dinamicamente ajustados com base nas propriedades de um sinal de áudio sendo transmitido. Mesmo quando o quadro anterior é recebido com êxito (por exemplo, em condições de canal limpas), um decodificador pode separar os bits de codificação primária dos bits de cópia parcial antes de decodificar os bits de codificação primária.
[0009] Em um aspecto particular, um método de decodificação de um quadro inclui o recebimento de um segundo quadro de áudio em um decodificador de um dispositivo de computação, em que o segundo quadro de áudio segue um primeiro quadro de áudio em um sinal de áudio. O segundo quadro de áudio inclui um primeiro número de bits alocados para informação de codificação primária (por exemplo, parâmetros de núcleo de banda baixa e de banda alta codificados) associada com o segundo quadro de áudio. O segundo quadro de áudio também inclui um segundo número de bits alocados para informação de codificação redundante (por exemplo, cópia parcial) associada com o primeiro quadro de áudio. O segundo quadro de áudio inclui ainda um indicador de um tipo de quadro (por exemplo, tipo de quadro de cópia parcial) do primeiro quadro de áudio. O método inclui, em resposta a uma condição de apagamento de quadro associada com o primeiro quadro de áudio, determinar, com base no indicador, o segundo número de bits do segundo quadro de áudio que são alocados a informação de codificação redundante associada com o primeiro quadro de áudio. O método inclui ainda a decodificação do primeiro quadro de áudio com base na informação de codificação redundante.
[0010] Em outro aspecto particular, um método de decodificação de um quadro inclui receber um primeiro quadro de áudio e um segundo quadro de áudio em um decodificador de um dispositivo de computação. O segundo quadro de áudio segue o primeiro quadro de áudio em um sinal de áudio. O segundo quadro de áudio inclui um primeiro número de bits alocados para informação de codificação primária associada com o segundo quadro de áudio, um segundo número de bits alocados para informação de codificação redundante associada com o primeiro quadro de áudio, e um indicador de um tipo de quadro do primeiro quadro de áudio. O método também inclui a decodificação do primeiro quadro de áudio. O método inclui ainda determinar, com base no indicador, o primeiro número de bits do segundo quadro de áudio que são alocados para informação de codificação primária associada com o segundo quadro de áudio. O método inclui a decodificação do segundo quadro de áudio com base na informação de codificação primária. Em uma forma de realização particular, o método inclui determinar o primeiro número de bits alocados para informação de codificação primária associada com o segundo quadro de áudio, subtraindo o segundo número de bits alocado para a cópia parcial do primeiro quadro de áudio a partir de um número total de bits (por exemplo, usado para representar o segundo quadro de áudio).
[0011] Em outro aspecto particular, um método de codificação de um quadro inclui codificar um primeiro quadro de áudio de um sinal de áudio em um codificador de um primeiro dispositivo de computação e transmitir o primeiro quadro de áudio do primeiro dispositivo de computação a um segundo dispositivo de computação. O método também inclui determinar, com base num tipo de quadro do primeiro quadro de áudio, um primeiro número de bits de um segundo quadro de áudio para alocação da informação de codificação primária associada com o segundo quadro de áudio e um segundo número de bits do segundo quadro de áudio para alocação da informação de codificação redundante associada com o primeiro quadro de áudio. O segundo quadro de áudio segue o primeiro quadro de áudio no sinal de áudio. O método também inclui codificar o segundo quadro de áudio e transmitir o segundo quadro de áudio a partir do primeiro dispositivo de computação para o segundo dispositivo de computação. O segundo quadro de áudio inclui o primeiro número de bits de informação de codificação primária, o segundo número de bits de informação de codificação redundante, e um indicador do tipo de quadro do primeiro quadro de áudio.
[0012] Em outro aspecto particular, um aparelho inclui um receptor configurado para receber um segundo quadro de áudio. O segundo quadro de áudio segue um primeiro quadro de áudio em um sinal de áudio. O segundo quadro de áudio inclui um primeiro número de bits alocado para informação de codificação primária associada com o segundo quadro de áudio. O segundo quadro de áudio também inclui um segundo número de bits alocados para informação de codificação redundante associada com o primeiro quadro de áudio. O segundo quadro de áudio inclui ainda um indicador de um tipo de quadro do primeiro quadro de áudio. O aparelho também inclui um decodificador configurado para, em resposta a uma condição de apagamento de quadro associada com o primeiro quadro de áudio, determinar, com base no indicador, o segundo número de bits do segundo quadro de áudio que estão alocados para informação de codificação redundante associada com o primeiro quadro de áudio. O decodificador é configurado para decodificar o primeiro quadro de áudio com base na informação de codificação redundante.
[0013] Em outro aspecto particular, um aparelho inclui um receptor configurado para receber um primeiro quadro de áudio e um segundo quadro de áudio que segue o primeiro quadro de áudio em um sinal de áudio. O segundo quadro de áudio inclui um primeiro número de bits alocados para informação de codificação primária associada com o segundo quadro de áudio. O segundo quadro de áudio inclui também um segundo número de bits alocados para informação de codificação redundante associada com o primeiro quadro de áudio. O segundo quadro de áudio inclui ainda um indicador de um tipo de quadro do primeiro quadro de áudio. O aparelho também inclui um decodificador configurado para decodificar o primeiro quadro de áudio e para determinar, com base no indicador, o primeiro número de bits do segundo quadro de áudio que são alocados para informação de codificação primária associada com o segundo quadro de áudio. O decodificador é configurado para decodificar o segundo quadro de áudio com base na informação de codificação primária.
[0014] Em outro aspecto particular, um aparelho inclui um codificador configurado para codificar um primeiro quadro de áudio de um sinal de áudio. O codificador também é configurado para determinar, com base em um tipo de quadro do primeiro quadro de áudio, um primeiro número de bits de um segundo quadro de áudio para alocar a informação de codificação primária associada com o segundo quadro de áudio e um segundo número de bits do segundo quadro de áudio para alocação da informação de codificação redundante associada com o primeiro quadro de áudio. O codificador é ainda configurado para codificar o segundo quadro de áudio. O segundo quadro de áudio segue o primeiro quadro de áudio em um sinal de áudio. O segundo quadro de áudio inclui o primeiro número de bits de informação de codificação primária, o segundo número de bits de informação de codificação redundante e um indicador do tipo de quadro do primeiro quadro de áudio. O aparelho também inclui um transmissor configurado para transmitir o primeiro quadro de áudio e o segundo quadro de áudio para um dispositivo de destino.
[0015] Vantagens particulares fornecidas por pelo menos uma das formas de realização divulgadas incluem uma capacidade para fornecer informação de codificação redundante para um quadro anterior de um fluxo de áudio em um quadro posterior do fluxo de áudio. A informação de codificação redundante incluída no quadro posterior pode permitir a reconstrução do quadro anterior, tal como quando a estrutura anterior é corrompida ou perdida devido a um erro na rede. Outros aspectos, vantagens e características da presente invenção serão evidentes após revisão de todo o aplicativo, incluindo as seguintes seções: Breve Descrição dos Desenhos, Descrição detalhada e Reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0016] A FIG. 1 é um diagrama para ilustrar uma forma de realização particular de um sistema que pode ser operado para comunicar informação de quadro redundante;
[0017] A FIG. 2 é um diagrama para ilustrar uma forma de realização particular de um quadro de áudio que inclui informação de codificação redundante para outro quadro de áudio;
[0018] A FIG. 3 é um diagrama para ilustrar outra forma de realização particular de um quadro de áudio que inclui informação de codificação redundante para outro quadro de áudio;
[0019] A FIG. 4 é um diagrama para ilustrar uma forma de realização particular de uma tabela de codificação de quadro de ganho de banda alta;
[0020] A FIG. 5 é um diagrama para ilustrar uma forma de realização particular de um codificador de percurso paralelo configurado para codificar informação de quadro redundante;
[0021] A FIG. 6 é um diagrama para ilustrar uma forma de realização particular de um decodificador de percurso único configurado para decodificar informação de quadro redundante;
[0022] As FIG. 7 e FIG. 8 representam coletivamente um fluxograma para ilustrar uma forma de realização particular de um método de decodificação de um quadro com base na informação de codificação redundante incluída em um quadro subsequente;
[0023] A FIG. 9 é um fluxograma para ilustrar uma forma de realização particular de codificação de informação de codificação redundante para um quadro em um quadro subsequente; e
[0024] A FIG. 10 é um diagrama em blocos de um dispositivo sem fios que pode operar para realizar operações de acordo com os sistemas e métodos das Figs. 19.
DESCRIÇÃO DETALHADA
[0025] Formas de realização particulares da presente invenção são descritas abaixo com referência aos desenhos. Na descrição e os desenhos, características comuns são designadas por números de referência comuns para clareza das formas de realização, conforme ilustrado e descrito.
[0026] Com referência à FIG. 1, uma forma de realização particular de um sistema que pode ser operado para comunicar informação de quadro redundante é mostrada e geralmente designada por 100. O sistema 100 inclui um primeiro dispositivo de computação 110 e um segundo dispositivo de computação 120. O primeiro dispositivo de computação 10 e o segundo dispositivo de computação 120 podem ser configurados para comunicar dados, tal como quadros de áudio, através de uma rede comutada por pacotes. Por exemplo, a rede comutada por pacotes pode incluir uma rede VoIP, uma rede VoLTE ou outra rede comutada por pacotes. Em uma forma de realização ilustrativa, o primeiro dispositivo de computação 110 e o segundo dispositivo de computação 120 incluem, cada um, um telefone móvel, um dispositivo de computação (por exemplo, um computador portátil, um computador de mesa, um tablet, um computador servidor, etc.), um leitor de mídia, um dispositivo de jogos, um dispositivo de set-top box, um dispositivo de navegação, um componente de uma rede comutada por pacotes, outro dispositivo configurado para comunicar dados de áudio ou qualquer combinação dos mesmos.
[0027] O primeiro dispositivo de computação 110 pode incluir um processador 112 (por exemplo, uma unidade de processamento central (CPU), um processador de sinal digital (DSP), etc) e uma memória 114. Em uma forma de realização particular, a memória 114 armazena instruções executáveis pelo processador 112 para executar várias operações aqui descritas. O primeiro dispositivo de computação 110 também pode incluir um codificador 116 e um transmissor 118. O codificador 116 pode codificar quadros de áudio que são transmitidos pelo transmissor 118 (por exemplo, através de uma rede comutada por pacotes). Em formas de realização alternativas, o primeiro dispositivo de computação 110 pode incluir um receptor além do transmissor 118, ou pode incluir um transceptor configurado para transmitir e receber dados. O codificador 116 pode codificar uma sequência de quadros de áudio, incluindo quadros de áudio ilustrativos 131, 132, 133 e 134. Na FIG. 1, os quadros de áudio 131, 132, 133 e 134 são quatro quadros sucessivos de um sinal de áudio e são designados como um (N-1)-ésimo quadro, um N-ésimo quadro, um (N+1)- ésimo quadro e um (N+2)-ésimo quadro, respectivamente. Para facilitar a leitura, estes quadros são aqui referidos como quadroN-1, quadroN, quadroN+1 e quadroN+2, respectivamente. Deve ser notado que, embora os quadros de áudio 131-134 sejam ilustrados na FIG. 1 em ordem da esquerda para a direita, isso não deve ser interpretado como implicação de que os quadros de áudio 131-134 são recebidos em tal ordem pelo segundo dispositivo de computação 120. Como aqui adicionalmente descrito, os quadros de áudio podem chegar em um dispositivo de destino fora de ordem ou podem ser perdidos devido a um erro de rede.
[0028] Cada um dos quadros de áudio 131-134 pode incluir um sinal de banda baixa codificado (“Núcleo LB”) e parâmetros de banda alta (“Parâmetros HB”). O núcleo LB e parâmetros HB de um quadro podem ser coletivamente referidos como uma codificação primária do quadro. Em uma forma de realização particular, cada um dos quadros de áudio 131-134 tem um tamanho fixo, e a quantidade de largura de banda (por exemplo, número de bits de um quadro) alocada ao núcleo de baixa banda codificado e aos parâmetros de banda alta pode ser ajustada dinamicamente de quadro para quadro, como ainda aqui descrito. Para melhorar o desempenho da decodificação de áudio na presença de erros de rede, um ou mais dos quadros de áudio 131-134 pode incluir informação de codificação redundante de um quadro anterior. A informação de codificação redundante pode incluir informação de codificação redundante de banda baixa e / ou informação de codificação redundante de parâmetro de banda alta. A informação de codificação redundante para a banda baixa e banda alta de um quadro anterior pode ser coletivamente referida como uma “cópia parcial” do quadro anterior. Em uma forma de realização particular, a quantidade de largura de banda (por exemplo, número de bits de um quadro) alocada para a informação de codificação redundante de banda baixa e para a informação de codificação redundante de banda alta pode ser ajustada dinamicamente de quadro para quadro, como ainda aqui descrito.
[0029] Por exemplo, o codificador 116 pode codificar a informação de codificação redundante para o quadroN 132 em um quadroN+COMPENSAÇÃO subsequente, onde COMPENSAÇÃO é um número inteiro maior ou igual a 1. Quando os quadros são transmitidos através de uma rede comutada por pacotes, cada quadro pode ser encaminhado individualmente a um dispositivo de destino e quadros podem chegar fora de ordem. Assim, mesmo que o quadroN 132 (ou uma parte dele) possa ser danificada ou possa não chegar ao segundo dispositivo de computação 120 (coletivamente aqui referido como uma condição de “apagamento de quadro” com respeito ao quadroN 132), o quadroN+COMPENSAÇÃO pode chegar (ou pode já ter chegado) no segundo dispositivo de computação 120 intacto. A informação de codificação redundante no quadroN+COMPENSAÇÃO pode ser utilizada pelo segundo dispositivo de computação 120 para reconstruir o quadroN 132 (ou uma parte dele) ou prender uma grave propagação de erro introduzindo artefato.
[0030] No exemplo da FIG. 1, COMPENSAÇÃO é igual a 2. Assim, informação de codificação redundante para o quadro quadroN-1 131 é adicionada ao quadroN+1 133, informação de codificação redundante para o quadroN 132 é adicionada ao quadroN+2 134, etc. Em formas de realização alternativas, o parâmetro COMPENSAÇÃO pode ter um valor diferente de 2. O valor do parâmetro COMPENSAÇÃO pode ser definido por um padrão da indústria (por exemplo, um padrão de serviços de voz avançados (EVS)), pode ser negociado pelos dispositivos de computação 110 e 120, e / ou pode ser determinado com base em erros de rede medidos ou estimados. Em uma forma de realização ilustrativa, o primeiro dispositivo de computação 110 pode ser configurado para determinar se deve ou não enviar informação de codificação redundante. Por exemplo, o primeiro dispositivo de computação 110 pode determinar se deve ou não enviar informação de quadro redundante para o quadroN 132 no quadroN+2 134 com base em um parâmetro de “criticalidade” associado com o quadroN 132, em que o parâmetro de criticalidade indica uma importância relativa do quadroN 132 na redução ou minimização de artefatos em um sinal de áudio caso o quadroN 132 seja perdido durante a transmissão. Assim, a comunicação de informação de quadro redundante pode ser realizada, dependendo de parâmetros controlados de origem, bem como com base nas condições de rede ou canal, em uma base por quadro.
[0031] Em uma forma de realização particular, a quantidade de espaço (por exemplo, número de bits) ocupada em um quadro por núcleo LB, parâmetros HB, informação de codificação redundante HB e informação de codificação redundante LB é ajustada dinamicamente pelo codificador 116. Por exemplo, como mostrado na FIG. 1, a razão de informação de codificação redundante HB para LB é inferior no quadroN+1 133 do que no quadroN+2 134. Em uma forma de realização particular, a informação de codificação redundante HB para LB para varia entre uma divisão [25%, 75%] e uma divisão [5%, 95%]. Como outro exemplo, como mostrado na FIG. 1, a razão de parâmetros HB para núcleo LB é inferior no quadroN-1 131 do que no quadroN+1 133, e a razão de parâmetros HB para núcleo LB é inferior no quadroN+1 133 do que no quadroN 132 e o quadroN+2 134.
[0032] Como exemplo, a taxa de bits de codificação nominal para um quadro de áudio pode ser de 13,2 kbps quando nenhuma informação de codificação redundante está incluída no quadro de áudio. Para acomodar a informação de codificação redundante, a taxa de codificação para o núcleo LB e parâmetros HB do quadro de áudio pode ser reduzida para 9,6 kbps. O restante da largura de banda de 3,6 kbps pode ser utilizado para codificar a informação de codificação redundante HB e LB para um quadro anterior, onde a divisão entre informação de codificação redundante HB e LB pode dinamicamente variar de quadro para quadro entre uma divisão [25%, 75%] e uma divisão [5%, 95%]. Deve ser notado que as taxas de bits e separações descritas são apenas para exemplo. Em formas de realização alternativas, as técnicas descritas podem ser usadas com diferentes taxas de bits e diferentes divisões. Em outra forma de realização particular, a razão de bits distribuídos entre o quadro redundante e o quadro principal pode ser adaptável. Por exemplo, o quadro principal pode usar 11,6 kbps, enquanto o quadro redundante pode usar 1,6 kbps do total de 13,2 kbps. Em outro exemplo, o quadro principal pode usar 12,6 kbps, enquanto o quadro redundante pode usar 0,6 kbps do total de 13,2 kbps. Com base em um parâmetro de “criticalidade”, essa alocação dinâmica de bit pode ser conseguida e pode limitar a degradação da qualidade de quadro principal na presença de nenhum erro de rede ou em condições de canal limpo quando alguns bits são usados para codificação de quadro redundante.
[0033] Ao determinar a quantidade de espaço a ser alocado para a informação de codificação redundante HB e para a informação de codificação redundante LB em um quadro específico (por exemplo, quadroN+2 134), o codificador 116 pode levar em conta propriedades da rede comutada por pacotes sendo utilizada, o quadro em particular, e / ou o quadro anterior para o qual a informação de codificação redundante está sendo transmitida (por exemplo, quadroN 132). Exemplos de informação de codificação redundante e ajuste dinâmico da quantidade de espaço alocado para tal informação de codificação redundante dentro de um quadro de áudio são ainda descritos com referência às Figs. 2-9.
[0034] O segundo dispositivo de computação 120 pode incluir um processador 122 e uma memória 124. Em uma forma de realização particular, a memória 124 armazena instruções executáveis pelo processador 122 para executar várias operações aqui descritas. O segundo dispositivo de computação 120 pode também incluir um decodificador 126 e um receptor 128. O decodificador 126 pode decodificar os quadros de áudio que são recebidos pelo receptor 128 (por exemplo, através de uma rede comutada por pacotes), tal como os quadros de áudio 131, 132, 133 e / ou 134. Em formas de realização alternativas, o segundo dispositivo de computação 120 pode incluir um transmissor em adição ao receptor 128, ou pode incluir um transceptor configurado para transmitir e receber dados.
[0035] Em uma forma de realização particular, o segundo dispositivo de computação 120 inclui um buffer, o qual é ilustrado na FIG. 1 como um buffer de compensação de jitter 129. O receptor 128 pode armazenar pacotes recebidos (por exemplo, quadros de áudio) no buffer de compensação de jitter 129. Visto que pacotes transmitidos através de redes comutadas por pacotes podem chegar fora de ordem, o buffer de compensação de jitter 129 pode ser usado para armazenar e reordenar os pacotes recebidos com base, por exemplo, na marcação horária do pacote. Na presença de erros de rede, o decodificador 126 pode não ser capaz de decodificar a totalidade ou parte de um ou mais pacotes, porque os pacotes (ou parte(s) deles) podem ser corrompidos ou perdidos (por exemplo, não recebidos). Por exemplo, durante a transmissão dos quadros de áudio 131-134, o quadroN 132 pode ser perdido. O decodificador 126 pode reconstruir o quadroN perdido 132 a partir da informação de codificação redundante no quadroN+2 134. Exemplos de informação de codificação redundante e reconstrução de um quadro de áudio perdido são ainda descritos com referência às Figs. 2-9.
[0036] Durante o funcionamento, o primeiro dispositivo de computação 110 pode codificar e transmitir os quadros de áudio 131-134 para o segundo dispositivo de computação 120 por meio de uma rede comutada por pacotes. O segundo dispositivo de computação 120 pode estabilizar (buffer) quadros de áudio recebidos no buffer de compensação de jitter 129. O decodificador 126 pode recuperar quadros de áudio armazenados a partir do buffer de compensação de jitter 129 e decodificar os quadros de áudio. Quando o decodificador 126 determina que é incapaz de decodificar um quadro de áudio em particular (ou parte dele) (por exemplo, porque o quadro ou parte dele está corrompida ou não recebida), o decodificador 126 pode verificar o buffer de compensação de jitter 129 quanto à disponibilidade de um quadro que inclui informação de codificação redundante para o quadro corrompido / perdido (por exemplo, um quadro “futuro” que segue o quadro corrompido / perdido em um fluxo de áudio). Se esse quadro futuro estiver disponível, o decodificador 126 pode utilizar a informação de codificação redundante do quadro futuro para reconstruir e decodificar o quadro de áudio em particular (ou parte dele). O sistema 100 da FIG. 1 pode, assim, permitir a comunicação de informação de quadro redundante que pode ser utilizada para melhorar o desempenho da decodificação de áudio na presença de condições de rede adversas.
[0037] Deve ser notado que, na descrição anterior, várias funções realizadas pelo sistema 100 da FIG. 1 são descritas como sendo realizadas por certos componentes ou módulos. No entanto, essa divisão de componentes e módulos é somente para ilustração. Em uma forma de realização alternativa, uma função realizada por um componente ou módulo particular pode, em vez disso, ser dividida entre vários componentes ou módulos. Além disso, em uma forma de realização alternativa, dois ou mais componentes ou módulos da Fig. 1 podem ser integrados em um único componente ou módulo. Cada componente ou módulo ilustrado na Fig. 1 pode ser implementado utilizando hardware (por exemplo, um dispositivo de arranjo de porta programável em campo (FPGA), um circuito integrado de aplicação específica (ASIC), um DSP, um controlador, etc.), software (por exemplo, instruções executáveis por um processador), ou qualquer combinação deles.
[0038] Com referência à FIG. 2 e FIG. 3, formas de realização ilustrativas do quadro de áudio 134 são mostradas. O quadro de áudio 134 pode incluir uma parte LB codificada, designada “núcleo LB”. A parte LB codificada pode incluir filtro de predição linear LB e informações de excitação. Por exemplo, a parte de banda baixa codificada pode incluir índice(s) de par espectral linear (LSP) LB e excitação LB 201. Em formas de realização alternativas, o núcleo LB de um quadro de áudio pode incluir informações diferentes. O quadro de áudio 134 também pode incluir parâmetros HB, designados como “Parâmetros HB”. Os parâmetros HB ocupam menos espaço do que o núcleo LB codificado e incluem um conjunto de parâmetros que pode ser usado por um decodificador, de acordo com um modelo de codificação do sinal de áudio, para reconstruir uma parte HB de um quadro de áudio. No exemplo da FIG. 2, os parâmetros HB podem incluir uma excitação LB transformada 202, uma forma de ganhl HB 203, um quadro de ganho HB 204 e o(s) índice(s) LSP HB 205. Em formas de realização alternativas, um quadro de áudio pode incluir diferentes parâmetros HB.
[0039] Em uma forma de realização particular, o(s) índice(s) LSP LB e excitação LB 201, a excitação LB transformada 202, a forma de ganho HB 203, o quadro de ganho HB 204 e o(s) índice(s) LSP HB 205 são gerados durante análise de áudio em um codificador (por exemplo, o codificador 116 da Fig. 1 ou um codificador 500 descrito com referência à FIG. 5). Por exemplo, um sinal de áudio pode ser passado através de um banco de filtros de análise que separa o sinal de áudio em um sinal LB e um sinal HB. Os sinais LB e HB podem ou não sobrepor-se. O sinal LB pode ser introduzido em um módulo de análise LP que codifica um envelope espectral do sinal LB como um conjunto de coeficientes LP (LPCs). Um módulo de transformada pode transformar os LPCs em LSPs, que podem ser alternativamente referidos como pares espectrais lineares (LSPs). Um quantificador pode quantificar os LSPs, identificando uma entrada de uma tabela de codificação LSP LB que é “mais próxima” dos LSPs. O quantificador pode gerar o índice da entrada na tabela de codificação como o(s) índice(s) LSP LB (ES) mostrado em 201. O módulo de análise LB pode também gerar a excitação LB mostrada em 201 e a excitação LB transformada 202. Por exemplo, a excitação LB pode ser um sinal codificado que é gerado por quantificação de um sinal residual LP gerado durante o processo LP executado pelo módulo de análise LP. O sinal residual LP pode representar erro de predição.
[0040] Um módulo de análise HB pode receber o sinal HB a partir do banco de filtros de análise e o sinal de excitação de banda baixa do módulo de análise LB. O módulo de análise HB pode gerar o(s) índice(s) LSP HB 205 usando uma codificação LPC, transformada e processo de quantização semelhante ao processo descrito para gerar o(s) índice(s) LSP LB e excitação LB 201. O(s) índice(s) LSP HB 205 pode ocupar menos bits do que o(s) índice(s) LSP LB. O módulo de análise HB pode também gerar a forma de ganho HB 203 e o quadro de ganho HB 204. A forma de ganho HB 203 e quadro de ganho HB 204 podem permitir que um decodificador (por exemplo, o decodificador 126 da FIG. 1 ou um decodificador descrito com referência à Fig. 6) ajuste a forma de ganhar HB e ganho de quadro para reproduzir com mais precisão o sinal HB.
[0041] Quando a comunicação de informação de codificação de quadro redundante é habilitada, o quadro de áudio 134 inclui ainda informação de codificação redundante LB 214 e informação de codificação redundante HB 210 para outro quadro de áudio. O quadro de áudio 134 pode também incluir um indicador de tipo de quadro 215. Como descrito adicionalmente com referência às Figs. 5-6, em uma forma de realização ilustrativa, o indicador de tipo de quadro 215 é um indicador de 3 bits que indica um tipo de quadro do outro quadro de áudio e indica quantos bits do quadro de áudio 134 são alocados para a informação de codificação redundante LB 214 e para a informação de codificação redundante HB 210. Em uma forma de realização particular, a informação de codificação redundante LB 214 ou a informação de codificação redundante HB 210 pode ser opcional. A informação de codificação redundante HB 210 pode incluir um indicador de forma de ganho HB 211, um indicador de quadro de ganho HB 212 e um indicador de LSP HB 213, como mostrado na FIG. 2. Em formas de realização alternativas, a informação de codificação HB 210 pode incluir um indicador diferente ou combinação de indicadores. Por exemplo, o indicador de LSP HB 213 pode ser incluído na informação de codificação redundante HB 210 para comunicação em banda super larga, mas pode ser omitido para comunicação em banda larga. Como outro exemplo, o indicador de forma de ganho HB 211 e / ou o indicador de quadro de ganho HB 212 pode ser omitido para certos tipos de quadros.
[0042] Em uma forma de realização particular, o indicador de forma de ganho HB 211 pode ser um indicador de um único bit que está associado com uma forma de ganho HB de um quadro de áudio anterior (por exemplo, quadroN 132). O codificador pode definir um valor do indicador de forma de ganho HB 211 com base em uma correlação entre as partes HB do quadroN 132 e quadroN+2 134. Por exemplo, uma correlação HB normalizada entre quadros entre o quadroN 132 e o quadroN+2 134 pode ser calculada com base na fórmula:
Figure img0001
[0043]em que XN(k) é um valor de forma de ganho k-ésimo para o N-ésimo quadro. Em um exemplo, uma janela de rolagem de um ou mais subquadros pode ser utilizada para determinar quatro valores de forma de ganho por quadro (por exemplo, k varia de 1 a 4). Se o valor de correlação for maior do que um limiar (por exemplo; 0,75), então o codificador define o valor do indicador de forma de ganho HB 211 a um primeiro valor (por exemplo, GS_bit = 1). Quando o indicador de forma de ganho HB 211 tem o primeiro valor, o decodificador pode reutilizar a forma de ganho HB 203 do quadroN+2 134 como uma forma de ganho HB estimada do quadroN 132 durante a decodificação / reconstrução de quadro redundante do quadroN 132. Se o valor de correlação é menor do que o limiar, então o codificador define o valor do indicador de forma de ganho HB 211 a um segundo valor (por exemplo, GS_bit = 0). Quando o indicador de forma de ganho HB 211 tem o segundo valor, o decodificador pode usar uma forma de ganho constante como a forma de ganho estimada, ou pode executar algum outro(s) método(s) de predição para estimar a forma de ganho do quadroN 132.
[0044] Em uma forma de realização particular, o codificador pode determinar o valor do indicador de forma de ganho HB 211 com base na distância do índice da tabela de codificação em vez de, ou em adição a, correlação de forma de ganho HB. Por exemplo, o codificador pode manter ou ter acesso a uma tabela de codificação de forma de ganho HB que é usada para quantificar a informação de forma de ganho HB 203. O codificador pode determinar um primeiro índice da tabela de codificação relacionado com a forma de ganho HB do quadroN 132 e um segundo índice da tabela de codificação relacionado com a forma de ganho HB do quadroN+2 134. O codificador pode definir o valor do indicador de forma de ganho HB 211 (por exemplo, GS_bit = 1 ou GS_bit = 0) com base em uma distância (por exemplo, uma distância de erro ao quadrado menos significativa) entre os índices da tabela de codificação.
[0045] O indicador de quadro de ganho HB 212 pode ser um indicador de bit único ou um indicador de vários bits. Em uma forma de realização particular, um tamanho do indicador de quadro de ganho HB 212 é ajustado de forma dinâmica pelo codificador. Por exemplo, uma rede comutada por pacotes pode ser usada para transmitir vários tipos de quadros de áudio, incluindo quadros de áudio sonoros, quadros de áudio genéricos, quadros de áudio de transição, e quadros de áudio sem voz. Pode ser útil usar uma gama dinâmica mais ampla para quantificação de quadro de ganho de quadros sem voz do que para os quadros sonoros / genéricos / de transição. Quantificação de quadro de ganho mais grosseira pode ser suficiente para representar de forma eficaz a razão de ganho de HB para LB para quadros sonoros / genéricos / de transição. Assim, se o quadroN 132 é um quadro sem voz, o codificador pode alocar um primeiro número maior de bits (por exemplo, 3 a 6 bits) para o indicador de quadro de ganho HB 212. Se o quadroN 132 não é um quadro sem voz, o codificador pode alocar um segundo menor número de bits (por exemplo, 1 a 2 bits) para o indicador de quadro de ganho HB 212.
[0046] No exemplo mostrado na FIG. 2, ao indicador de quadro de ganho HB 212 é alocado um número maior de bits (por exemplo, 3-6 bits). Em contraste, a FIG. 3 ilustra um exemplo em que a um indicador de quadro de ganho HB 312 é alocado um número menor de bits (por exemplo, 1-2 bits) do que o indicador de quadro de ganho HB 212 da FIG. 2. Uma vez que o indicador de quadro de ganho HB 312 é alocado com um número menor de bits, bits adicionais podem estar disponíveis para uso na representação de informação de codificação redundante LB 314, que é maior do que a informação de codificação redundante LB 214 da FIG. 2. Em alternativa, os bits adicionais podem ser atribuídos ao núcleo LB ou aos parâmetros HB do quadroN+2 134. Nas Figs. 2-3, esta flexibilidade na alocação de bits é ilustrada por meio de três linhas divisórias 250, 260 e 270. A primeira linha divisória 250 separa a informação de codificação primária da informação de codificação redundante e pode ser ajustada para a esquerda e direita na medida em que um codificador ajusta de forma dinâmica a razão entre bits de codificação primária e bits de codificação redundante. A segunda linha divisória 260 separa o núcleo LB e os parâmetros HB dentro da informação de codificação primária e pode ser ajustada para cima e para baixo na medida em que um codificador ajusta dinamicamente a razão de bits de núcleo LB para bits de parâmetros HB dentro da informação de codificação primária. A terceira linha divisória 270 separa a informação de codificação redundante LB e a informação de codificação redundante HB e pode ser ajustada para cima e para baixo na medida em que um codificador ajusta dinamicamente a razão de bits redundantes HB à de bits redundantes LB.
[0047] Em uma forma de realização particular, o codificador pode ajustar dinamicamente o número de bits alocados a cada uma das quatro partes do quadro (por exemplo, “mover” de forma dinâmica as linhas divisórias 250, 260 e / ou 270) com base em uma “criticalidade” e / ou tipo de quadro de quadroN 132 e / ou quadroN+2 134. Para ilustrar, as alocações de bits entre as quatro partes do quadro podem basear-se no equilíbrio de uma criticalidade de um quadro anterior (para o qual a informação de codificação redundante será incluída no quadro) e na degradação de áudio resultante de ter menos bits do quadro disponível para representar a informação de codificação primária para o quadro. A incapacidade de decodificar um certo tipo de quadro pode ser mais perceptível para um ouvinte do que a incapacidade de decodificar outro tipo de quadro. Assim, certos quadros de um sinal de áudio podem ser considerados como sendo mais “críticos” do que outros quadros. Por exemplo, um primeiro quadro de um fluxo de áudio pode ter maior “criticidade” do que um segundo quadro do fluxo de áudio quando a decodificação errônea do primeiro quadro é mais susceptível de causar artefatos de decodificação perceptíveis do que a decodificação errônea do segundo quadro. Podem ser alocados mais bits para informação de codificação redundante para um quadro crítico que são alocados para informação de codificação redundante para um quadro não crítico. Em alternativa, ou em adição, menos bits de um quadro crítico podem ser alocados para informação de codificação redundante do que são alocados em um quadro não crítico.
[0048] Por exemplo, quadros de voz podem ser classificados em tipos de quadro “todo preditivo”, “previsão linear excitada por ruído (NELP)”, “genérico” e “não preditivo”. Os quadros preditivos no todo podem corresponder à mensagem de voz e podem constituir 50% ou mais dos quadros ativos em um sinal de áudio correspondente à comunicação baseada em voz. Quadros NELP podem corresponder a dados sem voz e podem constituir 10% - 20% dos quadros. Os 30% -40% restantes dos quadros podem ser quadros genéricos ou quadros não preditivos. Quadros genéricos podem ser quadros de modo misto que incluem tanto informação da tabela de codificação adaptativa (ACB) quanto informação da tabela de codificação fixa (FCB), tais como os índices da tabela de codificação. Quadros preditivos podem não corresponder a transições de áudio e podem incluir informações FCB. Quadros genéricos e não preditivos podem ser mais “autossuficientes” do que os quadros totalmente preditivos e NELP. Assim, se um quadro genérico ou nenhum quadro preditivo é corrompido ou não recebido, um decodificador pode ser menos capaz de confiar em outros quadros para regenerar o quadro. Consequentemente, quadros genéricos e não preditivos podem ser considerados mais críticos, ao passo que os quadros totalmente preditivos e quadros NELP podem ser considerados menos críticos para esse quadro particular (o impacto de quadros totalmente preditivos e NELP pode ser diferente para um quadro futuro).
[0049] No exemplo da FIG. 2, o quadroN+2 134 inclui informação de codificação redundante para o quadroN 132. Se o quadroN 132 é considerado crítico, bits adicionais podem ser alocados para informação de codificação redundante (por exemplo, a primeira linha divisória 250 pode ser ajustada para a esquerda). Se o quadroN+2 134 é considerado crítico, menos bits podem ser alocados para informação de codificação redundante (por exemplo, a primeira linha divisória 250 pode ser ajustada para a direita), de modo que pode ser reduzida uma degradação na qualidade do quadroN+2 134. Assim, em formas de realização em que o quadroN+2 134 é considerado crítico e o quadroN 132 não é considerado crítico, poucos ou zero bits podem ser alocados para a informação de codificação redundante. Por outro lado, em formas de realização onde o quadroN+2 134 não é considerado crítico e o quadroN 132 é considerado crítico, um grande número de bits pode ser alocado para a informação de codificação redundante. Assim, o número de bits alocados aos parâmetros HB, núcleo LB, informação de codificação redundante LB e / ou informação de codificação redundante HB pode ser determinado com base em um tipo de quadro do quadroN 132 e / ou um tipo de quadro do quadroN+2 134.
[0050] Em uma forma de realização particular, quando ao indicador de quadro de ganho HB 212 é alocado o primeiro número de bits (por exemplo, 3-6 bits), o primeiro número de bits é utilizado para representar um índice da tabela de codificação. Quando ao indicador de quadro de ganho HB 212 é alocado o segundo número de bits (por exemplo, 1 bit), o segundo número de bits é utilizado para indicar que metade da tabela de codificação corresponde ao quadro de ganho HB do quadroN 132.
[0051] A título de exemplo, com referência à FIG. 4, os quadros de áudio 131-134 podem ter os valores do quadro de ganho HB 1,6; 3,6; 1,6 e 1,0, respectivamente, e a tabela de codificação de quadro de ganho HB pode incluir 8 índices. Se o quadroN 132 é um quadro sem voz, ao indicador de quadro de ganho HB 212 são alocados três bits que são ajustados ao valor “100”, isto é, que é a representação binária do índice da tabela de codificação 4 correspondente ao valor de quadro de ganho HB 3,6. Caso contrário, ao indicador de quadro de ganho HB 212 é atribuído um bit que é ajustado como “1”, indicando que o valor do quadro de ganho de 3,6 está em uma primeira parte (por exemplo, a metade superior, que corresponde a índices 4-7) da tabela de codificação. O valor seria ajustado a “0” se o valor de quadro de ganho HB estivesse em uma segunda parte (por exemplo, a metade inferior, que corresponde a índices 0-3) da tabela de codificação. O decodificador pode usar um valor de quadro de ganho HB para um quadro anterior (por exemplo, quadroN-1) juntamente com a informação de que o valor de quadro de ganho HB para o quadroN está na metade superior da tabela de codificação para estimar um valor de quadro de ganho HB para o quadroN.
[0052] Assim, em uma forma de realização particular, o indicador de quadro de ganho HB 212 pode ser alocado e definido por um codificador de acordo com o seguinte pseudocódigo em estilo C: /* Se o tipo de quadro redundante é NELP*/ se(st->rf_frame_type == RF_NELP) { /* Ganho de quadro; potencialmente codificado usando 5 bits para quadros NELP */ Etapa 1: dequantificar o índice de ganho HB de quadro redundante; Etapa 2: converter o ganho de domínio de log em valor real (isto é, 10Again), se necessário; } Ainda /* Se o tipo de quadro redundante é ALL_PRED ou GENERIC ou NO_PRED */ { smoothFactor = 0,0f; /* Ganho de Quadro */ comutar (gainIndex) /* codificado utilizando 2 bits */ { caso 0: GainFrame = 0,5f; /* Se o índice de ganho é 0 * / se (ganho do quadro anterior <= 1,25) {smoothFactor = 0,8f; } pausa; caso 1 : GainFrame = 2,0f; /* Se o índice de ganho é 1 */ se(ganho do quadro anterior > 1,25 && <= 3) {smoothFactor = 0,8f; } pausa; caso 2: GainFrame = 4,0f; /* Se o índice de ganho é 2 */ se (ganho do quadro anterior > 3 && <= 6) {smoothFactor = 0,8f; } pausa; caso 3: GainFrame = 8,0f /* Se o índice de ganho é 3 */ se (ganho do quadro anterior > 6 && <= 16) {smoothFactor = 0,8f; } pausa; } GainFrame = (1- smoothFactor)*GainFrame+smoothFactor*(ganho do quadro anterior); }
[0053] O indicador de LSP HB 213 pode ser um indicador de um único bit que informa a um receptor como derivar LSPs HB do quadroN 132. Para determinar o valor do indicador de LSP HB 213, o codificador pode estimar uma variação LSP HB entre quadros utilizando um indicador de distorção espectral entre o quadroN 132 e o quadroN+2 134. Em alternativa, ou em adição, pode ser utilizada uma distância do índice da tabela de codificação entre o(s) índice(s) LSP HB dos quadros de áudio. Quando a variação espectral entre o quadroN e o quadroN+2 for inferior a um limiar determinado (por exemplo, 2 decibéis (dB)), o codificador pode ajustar o indicador de LSP HB 213 a um primeiro valor (por exemplo, HBLSP_bit = 0). Quando o indicador de LSP HB 213 tem o primeiro valor, o decodificador pode usar o(s) índice(s) LSP HB 205 do quadroN+2 como o(s) índice(s) LSP HB estimado do quadroN. Quando a variação espectral é maior do que ou igual ao limiar particular (por exemplo, 2 dB), o codificador pode ajustar o indicador de LSP HB 213 a um segundo valor (por exemplo, HBLSP_bit = 1). Quando o indicador de LSP HB 213 tem o segundo valor, o decodificador pode derivar o(s) índice(s) LSP HB para o quadroN por interpolação ou extrapolação. Por exemplo, se a variação espectral está dentro de um intervalo de limiar (por exemplo, 2 dB < variação < 4 dB), o decodificador pode derivar o(s) índice(s) LSP HB para o quadroN por interpolação de LSPs HB do quadroN-1 para o quadroN+2. Se a variação espectral está fora do intervalo de limiar (por exemplo,> = 4 dB), o decodificador pode derivar o(s) índice(s) LSP HB para o quadroN por extrapolação de quadros anteriores (por exemplo, quadroN-1 e quadroN-2).
[0054] Em uma forma de realização alternativa, para definir um valor do indicador de LSP HB 213, um codificador pode determinar uma diferença (por exemplo, delta) entre os LSPs HB do quadroN e o quadroN+2. O codificador pode definir o valor do indicador de LSP HB 213 com base na diferença, e o decodificador pode usar o valor do indicador de LSP HB 213 para derivar os LSPs HB do quadroN a partir dos LSPs HB do quadroN+2. Em uma forma de realização alternativa, o indicador de LSP HB 123 não está incluído na informação de codificação redundante.
[0055] Assim, tal como descrito com referência às Figs. 2-4, um codificador pode ajustar dinamicamente a quantidade de espaço ocupado pela informação de codificação redundante HB 210 e pode definir valores da informação de codificação redundante HB 210 para permitir que um descodificador reconstrua um quadro perdido (ou uma parte dele).
[0056] Com referência à FIG. 5, é mostrada uma forma de realização particular de um codificador 500. Em uma forma de realização ilustrativa, o codificador 500 corresponde ao codificador 116 da FIG. 1. O codificador 500 inclui dois percursos de codificação que operam em paralelo: um percurso de codificação primária 510 e um percurso de codificação redundante 520 (alternativamente referido como “cópia parcial”). Os percursos de codificação 510, 520 são acoplados a um dispositivo de enquadramento (ou multiplexador de bit) 540. Na FIG. 5, os percursos de codificação 510, 520 são configurados para comunicar através de uma memória compartilhada 530. A memória compartilhada 530 pode corresponder à memória baseada em cache, memória baseada em registo ou outra memória de um processador (por exemplo, um DSP). Em formas de realização alternativas, os percursos de codificação 510, 520 podem se comunicar utilizando outro mecanismo.
[0057] Durante o funcionamento, os dados de quadro para cada quadro de áudio a ser codificado podem ser fornecidos para ambos o percurso de codificação primária 510 e o percurso de codificação redundante 520. Por exemplo, a FIG. 5 ilustra que os dados de quadro 501, 502, 503 e 504 para o quadroN-2 551, quadroN 132, quadroN+2 134 e quadroN+4 554, respectivamente, são fornecidos a ambos os percursos de codificação 510, 520. Os dados de quadro de quadros sucessores (por exemplo, quadroN-1 131, quadroN+1 133 e quadroN+3) não são mostrados para facilidade de ilustração. O percurso de codificação primária 510 pode gerar informação de codificação primária para quadros de áudio e o percurso de codificação redundante 520 pode gerar informação redundante para quadros de áudio. O multiplexador de bits ou dispositivo de enquadramento 540 pode concatenar bits recebidos dos percursos de codificação 510, 520 para gerar quadros de áudio codificados. No exemplo da FIG. 5, o dispositivo de enquadramento 540 gera o quadroN-2 551, quadroN 132, quadroN+2 134 e quadroN+4 554, cada um dos quais é fornecido a um sistema de empacotamento e transporte para comunicação a um dispositivo de destino.
[0058] As operações de codificação executadas pelo percurso de codificação primária 510 podem depender das operações de codificação executadas pelo percurso de codificação redundante 520, e vice-versa. Para ilustrar, o codificador 500 pode codificar os quadros de áudio a uma taxa de bits de 13,2 kbps e cada quadro pode incluir 264 bits (em formas de realização alternativas, pode ser utilizada uma taxa de bits diferente e um número diferente de bits). O percurso de codificação primária 510 pode determinar quantos dos 264 bits estão disponíveis para codificar a informação de codificação primária (por exemplo, núcleo LB e parâmetros HB) de um quadro baseado em quantos bits o percurso de codificação redundante 520 utilizou para codificar a informação de codificação redundante para um quadro anterior. O percurso de codificação redundante 520 pode codificar informação de codificação redundante para um quadro com base em parâmetros determinados pelo percurso de codificação primária 510 durante a codificação primária do quadro. Assim, como demonstrado utilizando a memória compartilhada 530 da FIG. 5, o percurso de codificação primária 510 pode comunicar parâmetros LB / HB para o percurso de codificação redundante 520, e o percurso de codificação redundante 520 pode comunicar o número de bits utilizados para realizar a codificação redundante de um quadro para o percurso de codificação primária 510.
[0059] Quando o percurso de codificação primária 510 recebe os dados de quadro 501 para o quadroN-2 551, o percurso de codificação primária 510 pode determinar quantos bits o percurso de codificação redundante 520 usou para executar a codificação redundante do quadroN-4 (não mostrado). No exemplo da FIG. 5, a codificação redundante não foi realizada para o quadroN-4. Assim, o percurso de codificação primária 510 pode alocar todos os 264 bits disponíveis para a informação de codificação primária gerada a partir dos dados de quadro 501, e o quadroN-2 551 podem incluir os 264 bits codificados recebidos a partir do percurso de codificação primária 510. Para ilustrar, como descrito com referência às FIGs. 2-3, os 264 bits podem incluir índices LSP, informações ACB, informações FCB, informações de excitação, informações de excitação transformada, informações de forma de ganho e / ou informações de quadro de ganho, entre outras alternativas. Em paralelo com as operações executadas pelo percurso de codificação primária 510 para os dados de quadro 501, o percurso de codificação redundante 520 pode determinar quantos bits usar para a codificação redundante do quadroN-2 551. No exemplo da FIG. 5, a codificação redundante do quadroN-2 551 não é executada (por exemplo, o quadroN-2 551 é determinado para ser “não crítico”). Em uma forma de realização ilustrativa, o percurso de codificação redundante 520 determina quantos bits usar para a codificação redundante de um quadro com base em um tipo de quadro do quadro. Por exemplo, podem ser utilizados 41 bits para codificação redundante de um quadro NELP, 58 bits podem ser utilizados para a codificação redundante de um quadro todo preditivo, e 72 bits podem ser utilizados para codificação redundante de um quadro genérico (Em formas de realização alternativas, um número diferente de bits pode ser usado para vários tipos de quadros). A informação de quadro redundante LB / HB particular que é representada quando 41 bits são usados, quando 58 bits são usados, quando 72 bits são usados, etc., pode ser especificada em um padrão da indústria (por exemplo, o padrão EVS do Projeto de Parceria de Terceira Geração (3GPP)).
[0060] Quando o percurso de codificação primária 510 recebe os dados de quadro 502 para o quadroN 132, o percurso de codificação primária 510 pode determinar quantos bits o percurso de codificação redundante 520 usou para realizar a codificação redundante do quadroN-2 551. Porque a codificação redundante não foi realizada pelo quadroN-2 551, o percurso de codificação primária 510 pode utilizar todos os 264 bits disponíveis para representar o núcleo LB e parâmetros HB derivados dos dados de quadro 502, e o quadroN 132 gerado pelo dispositivo de enquadramento 540 podem incluir os 264 bits codificados recebidos a partir do percurso de codificação primária 510. O percurso de codificação redundante 520 pode usar 41 bits para executar a codificação redundante para o quadroN 132 (por exemplo, o quadroN 132 pode ser um quadro NELP). Em particular, os 41 bits podem ser utilizados para representar certos parâmetros LB / HB “críticos” que são determinados pelo percurso de codificação primária 510 durante a codificação primária para o quadroN 132. Para ilustrar, tal como descrito com referência às Figs. 2-3, a informação de codificação redundante pode incluir informação de forma de ganho, informação de quadro de ganho e / ou informação LSP, entre outras alternativas. A codificação redundante de 41 bits para o quadroN 132 pode ser armazenada (por exemplo, na memória compartilhada 530) para utilização subsequente.
[0061] Quando o percurso de codificação primária 510 recebe os dados de quadro 503 para o quadroN+2 134, o percurso de codificação primária 510 pode determinar (por exemplo, com base nos dados armazenados na memória compartilhada 530), que 41 bits foram usados para a codificação redundante do quadroN 132. Assim, o percurso de codificação primária 510 pode usar 264-41 = 223 bits para codificar informações de núcleo LB e parâmetro HP para o quadroN+2 134. O percurso de codificação redundante 520 pode determinar a usar 72 bits para executar a codificação redundante para o quadroN+2 134 (por exemplo, o quadroN+2 134 pode ser um quadro genérico). A codificação redundante de 72 bits para o quadroN+2 134, que pode representar parâmetros selecionados para o quadroN+2 134 que são determinados pelo percurso de codificação primária 510, pode ser armazenada para uso posterior. O dispositivo de enquadramento 540 pode concatenar a codificação primária de 223 bits recebidos do percurso de codificação primária 510 com a codificação redundante de 41 bits previamente armazenada para o quadroN 132 para gerar o quadroN+2 134, como mostrado.
[0062] Quando o percurso de codificação primária 510 recebe os dados de quadro 504 para o quadroN+4 554, o percurso de codificação primária 510 pode determinar que 72 bits foram usados para codificação redundante do quadroN+2 134. Assim, o percurso de codificação primária 510 pode usar 264-72 = 192 bits para codificar informações de núcleo LB e parâmetro HP para o quadroN+4 554. Em paralelo, o percurso de codificação redundante 520 pode realizar a codificação redundante para o quadroN+4 554. O dispositivo de enquadramento 540 pode concatenar a codificação primária de 192 bits recebidos a partir do percurso de codificação primária 510 com a codificação redundante de 72 bits anteriormente armazenada para o quadroN+2 134 para gerar o quadroN+4 554, como mostrado.
[0063] Em uma forma de realização particular, os últimos três bits de um quadro codificado representam um indicador de tipo de quadro para dados de codificação redundante incluídos no quadro. Por exemplo, porque o quadroN-2 551 e o quadroN codificado 132 não incluem qualquer informação de codificação redundante para outro quadro, os últimos três bits do quadroN-2 551 e quadroN 132 podem ter um primeiro valor (por exemplo, 000). Porque o quadroN+2 134 inclui 41 bits de informação de codificação redundante e o quadroN é um quadro NELP, os últimos três bits do quadroN+2 134 podem ter um segundo valor (por exemplo, 001 ou outro valor de 3 bits único). Porque o quadroN+4 554 inclui 72 bits de informação de codificação redundante e o quadroN+2 134 é um quadro genérico, os últimos três bits do quadroN+4 554 podem ter um terceiro valor (por exemplo, 010 ou outro valor de 3 bits único). Valores adicionais do indicador de tipo de quadro de 3 bits podem ser utilizados para indicar outros tipos de quadro e para sinalizar outra informação (por exemplo, cópias parciais no domínio de frequência). Assim, no exemplo descrito, os últimos três bits de cada quadro indicam um tipo de quadro de um quadro anterior e quantos bits de informação de codificação redundante para o quadro anterior estão incluídos no quadro. Assim, 261 bits além dos 264 bits podem ser compartilhados entre o percurso de codificação primária 510 e o percurso de codificação redundante 520, e os 3 bits restantes podem ser reservados para o indicador de tipo de quadro redundante.
[0064] Quadros de áudio codificados podem ser transmitidos por um dispositivo de origem (por exemplo, o primeiro dispositivo de computação 110 da Fig. 1) para um dispositivo de destino (por exemplo, o segundo dispositivo de computação 120 da FIG. 1), que pode decodificar os quadros de áudio recebidos. Por exemplo, a FIG. 6 ilustra uma forma de realização particular de um decodificador 600 que é operável para decodificar os quadros de áudio recebidos. O decodificador 600 pode corresponder ao decodificador 126 da FIG. 1. O decodificador 600 inclui um buffer de compensação de jitter 610 (por exemplo, correspondente ao buffer de compensação de jitter 129 da FIG. 1). Ao passo que o codificador 500 inclui os percursos paralelos de codificação 510-520, o decodificador 600 inclui um único percurso de decodificação 620.
[0065] Como os quadros de áudio são recebidos por um receptor, os quadros de áudio podem ser armazenados no buffer de compensação de jitter 610. Tal como descrito com referência à FIG. 1, devido às condições da rede, quadros enviados por um dispositivo de origem a um dispositivo de destino podem chegar fora de ordem, podem estar corrompidos ou podem não chegar. O percurso de decodificação 620 pode recuperar quadros a partir do buffer de compensação de jitter 610 de acordo com uma sequência de quadros (por exemplo, com base em números de sequência de quadros ou outras informações de sequenciação incluídas nos quadros de áudio). Por exemplo, o percurso de decodificação 620 pode tentar recuperar e decodificar o quadroN-2 551 antes do quadroN 132, o quadroN 132 antes do quadroN+2 134 e o quadroN+2 134 antes do quadroN+4 554. Para facilidade de ilustração, a decodificação de quadros sucessores (por exemplo, quadroN-1 131, quadroN+1 133 e quadroN+3) não é mostrada na FIG. 6.
[0066] Para iniciar a decodificação do quadroN-2 551, o percurso de decodificação 620 pode verificar se o quadroN-2 551 está disponível no buffer de compensação de jitter 610. No exemplo da FIG. 6, o quadroN-2 551 está disponível no buffer de compensação de jitter 610. O percurso de decodificação 620 pode determinar quantos bits do quadroN-2 551 estão sendo usados para informação de codificação redundante de outro quadro. Por exemplo, com base nos últimos três bits do quadroN-2 134 com o valor 000 (como descrito com referência à FIG. 5), o percurso de decodificação 620 pode determinar que não há bits do quadroN-2 134 representando a informação de quadro redundante. Assim, o percurso de decodificação 620 pode recuperar todos os 261 bits do quadroN-2 551, como mostrado em 651, e pode gerar dados decodificados 601. Os dados decodificados 601 podem ser fornecidos para um dispositivo de saída (por exemplo, um alto-falante) para reprodução. Será apreciado que, dependendo da qualidade da codificação realizada no codificador 500 e a qualidade da descodificação realizada no decodificador 600, os dados 601 podem ser idênticos ou uma aproximação dos dados 501 da FIG. 5. Durante a decodificação do quadroN-2 551 com base nos 261 bits primários, valores de parâmetros de decodificação particulares podem ser armazenados em uma memória de decodificação primária 622 para uso durante a decodificação de um quadro subsequente.
[0067] No exemplo da FIG. 6, o quadroN 132 não está disponível no buffer de compensação de jitter 610. Em alternativa, o percurso de decodificação 620 pode determinar que o quadroN 132 está disponível no buffer de compensação de jitter 610, mas pode ocorrer um erro durante a decodificação dos bits primários do quadroN 132. Em ambos os casos, o percurso de decodificação 620 pode verificar se a informação de quadro redundante para o quadroN 132 está disponível no buffer de compensação de jitter 610. Por exemplo, com base em uma compensação conhecida de 2 quadros entre informações de codificação primária e informações de codificação redundante (outras compensações , por exemplo, 3 ou 5 ou 7, podem ser usadas em outras formas de realização), o percurso de decodificação 620 pode verificar se o quadroN+2 134 está disponível no buffer de compensação de jitter 610. Se o quadroN+2 134 também está indisponível, o percurso de decodificação 620 pode dar início a um procedimento de dissimulação de erro para gerar dados decodificados 602 para o quadroN 132. No exemplo da FIG. 6, no entanto, o quadroN+2 134 está disponível no buffer de compensação de jitter 610. Com base nos últimos três bits do quadroN+2 134 com o valor 001 (como descrito com referência à FIG. 5), o percurso de decodificação 620 pode determinar que 41 bits do quadroN+2 134 representam informação de codificação redundante para o quadroN 132. O percurso de decodificação 620 pode recuperar os 41 bits de codificação redundantes para o quadroN 132, como mostrado em 652, e pode gerar os dados 602. Assim, o percurso de decodificação 620 pode determinar quantos bits de codificação redundantes estão disponíveis e recuperar os bits de codificação redundantes com base no número determinado (por exemplo, quando X bits de codificação redundantes estão disponíveis, o percurso de decodificação 620 pode recuperar esses últimos X bits de um quadro ou um pacote que é armazenado no tampão de compensação de jitter 610 associado com um número de sequência do pacote determinado pela COMPENSAÇÃO). Na FIG. 6, dados decodificados gerados a partir de informação de quadro redundantes (por exemplo, os dados 602) são mostrados com um padrão hachurado. Durante a decodificação do quadroN 132 com base nos 41 bits da informação de codificação redundante, os valores de certos parâmetros podem ser armazenados em uma memória de decodificação redundante 624 para uso posterior. Em uma forma de realização alternativa, a memória de decodificação redundante 624 e a memória de decodificação primária 622 podem sobrepor-se ou podem ser iguais.
[0068] Assim, o percurso de decodificação 620 pode manter memórias separadas para decodificação com base em pedaços primários e decodificação com base em bits redundantes. Em uma forma de realização particular, os dados na memória de decodificação primária 622 podem ser usados durante a decodificação de outros bits primários, mas não durante a decodificação de bits redundantes. Da mesma forma, os dados da memória de decodificação redundante 624 podem ser utilizados durante a decodificação de bits redundantes, mas não durante a decodificação de bits primários. Em uma forma de realização alternativa, os dados da memória de decodificação primária 622 podem ser usados durante a decodificação de bits redundantes e / ou dados da memória de decodificação redundante 624 podem ser usados durante a decodificação de bits primários. Por exemplo, parâmetros de vários quadros anteriormente decodificados podem ser utilizados durante a interpolação e / ou predição de um parâmetro para um quadro “corrente”.
[0069] O percurso de decodificação 620 pode decodificar o quadroN+2 134 e o quadroN+4 554, que estão disponíveis no buffer de compensação de jitter 610, como descrito para o quadroN-2 551. Com base nos últimos três bits do quadroN+2 134 com o valor 001 (como descrito com referência à FIG. 5), o percurso de decodificação 620 pode recuperar 264-41 = 223 bits de primários do quadroN+2 134, como mostrado em 653, para gerar dados decodificados 603. Com base nos últimos três bits do quadroN+4 554 com o valor 010 (como descrito com referência à FIG. 5), o percurso de decodificação 620 pode recuperar 264-72 = 192 bits primários do quadroN+4 134, como mostrado em 653, para gerar dados decodificados 604.
[0070] Deve ser notado que o decodificador 600 pode também usar um indicador de tipo de quadro de cópia parcial ao executar operações de decodificação em condições de “canal limpo”. Por exemplo, quando o quadroN 132 é recebido no buffer de compensação de jitter 610, uma condição de apagamento de quadro pode não existir para o quadroN 132. No entanto, o decodificador 600 pode avaliar o indicador do tipo de quadro para determinar quantos bits do quadroN+2 134 são bits de codificação primária e quantos bits do quadroN+2 134 são bits de cópia parcial para o quadroN 132. O percurso de decodificação 620 pode decodificar o quadroN+2 134, com base nos bits de codificação primária. Os bits de cópia parcial para o quadroN 132 podem ser descartados, porque o quadroN 132 pode ter sido recebido com sucesso e decodificado antes da decodificação do quadroN+2 134. Assim, a informação de quadro redundante pode ser processada pelo decodificador 600 em condições de canal ruidoso (durante a quais um quadro pode ser descartado e reconstruído), bem como em condições de canal limpo.
[0071] Deve ser notado que, para facilidade de explicação, os percursos de codificação 510, 520 da FIG. 5 e o percurso de decodificação 620 da FIG. 6 são ilustrados como componentes em blocos. No entanto, deve ser entendido que o percurso de codificação primária 510, o percurso de codificação redundante 520 e / ou o percurso de decodificação 620 podem incluir subcomponentes que são operáveis para executar as operações de codificação e / ou decodificação descritas com referência às Figs. 1-4. Por exemplo, um ou mais dos percursos 510, 520 ou 620 podem incluir um banco de filtros de análise, um módulo de análise LP, um módulo de transformada, um quantificador, um módulo de análise HB, ACBs, FCBs, etc. Em formas de realização particulares, um ou ambos os percursos de codificação 510-520 podem incluir componentes de decodificação que também estão incluídos no percurso de decodificação 620 (por exemplo, como um “decodificador local” do codificador 500).
[0072] As FIGs. 5-6 ilustram assim exemplos de um codificador 500 e um decodificador 600 que podem ser usados para codificar e decodificar informação de quadro redundante. Comunicar bits de codificação redundante para um quadro em um quadro subsequente pode melhorar a reconstrução de áudio (por exemplo, síntese) em um dispositivo de destino, na presença de condições de rede adversas. Por exemplo, bits de codificação redundantes podem ser utilizados para reconstruir um quadro, quando o quadro não é recebido em um dispositivo de destino. Como outro exemplo, quando ocorre um erro ao decodificar os bits primários para um quadro, bits de codificação redundante para o quadro podem ser recuperados a partir de outro quadro e podem ser utilizados em vez de, ou em conjunto com, os bits primários.
[0073] Com referência às Figs. 7-8, um fluxograma de uma forma de realização particular de um método de decodificação de um quadro com base na informação de codificação redundante incluída em um quadro subsequente é mostrado e geralmente designado por 700. Em uma forma de realização ilustrativa, o método 700 pode ser realizado em um dispositivo de destino (por exemplo, o segundo dispositivo de computação 120 da FIG. 1) e / ou um decodificador (por exemplo, o decodificador 600 da Fig. 6).
[0074] O método 700 inclui o recebimento de um segundo quadro de áudio em um decodificador (por exemplo, através de uma rede comutada por pacotes), em 702. O segundo quadro de áudio segue um primeiro quadro de áudio em um sinal de áudio. O segundo quadro de áudio inclui um primeiro número de bits alocados para informação de codificação primária associada com o segundo quadro de áudio, um segundo número de bits alocados para informação de codificação redundante associada com o primeiro quadro de áudio, e um indicador de tipo de quadro do primeiro quadro de áudio. Por exemplo, na FIG. 6, o decodificador 600 pode receber quadroN+2 134, que segue o quadroN 132 em um sinal de áudio.
[0075] O método 700 inclui também armazenamento do segundo quadro de áudio em um buffer de compensação de jitter, em 704. Por exemplo, na FIG. 6, o quadroN+2 134 pode ser armazenado no buffer de compensação de jitter 610. O método 700 inclui determinar se uma condição de apagamento de quadro está associada com o primeiro quadro de áudio, em 706. Em resposta à determinação de que uma condição de apagamento de quadro está associada com o primeiro quadro de áudio (por exemplo, o primeiro quadro de áudio foi descartado ou corrompido devido a condições pobres do canal), o método 700 inclui ainda determinar, com base no indicador, o segundo número de bits do segundo quadro de áudio que estão alocados para informação de codificação redundante associada com o primeiro quadro de áudio, em 708. Por exemplo, na FIG. 6, o percurso de decodificação 620 pode determinar que o quadroN 132 não está disponível no buffer de compensação de jitter 610 e pode determinar, com base em um indicador de tipo de quadro no quadroN+2 134, que 41 bits do quadroN+2 134 representam informação de codificação redundante para o quadroN 132.
[0076] O método 700 inclui a decodificação do primeiro quadro de áudio com base na informação de codificação redundante, em 710. Por exemplo, na FIG. 6, o percurso de decodificação 620 pode decodificar o quadroN 132 faltante, ou uma aproximação dos mesmos, com base nos 41 bits de informação de codificação redundante incluídos no quadroN+2 134.
[0077] Quando uma condição de apagamento de quadro não está associada com o primeiro quadro de áudio, o método 700 inclui a decodificação do primeiro quadro de áudio com base na informação de codificação primária no primeiro quadro de áudio, em 712. Por exemplo, em condições de canal limpo, o quadro do quadroN 132 pode ter sido previamente recebido e armazenado no buffer de compensação de jitter 610, e o percurso de decodificação 620 pode decodificar o quadroN 132 com base em bits de codificação primária do quadroN 132.
[0078] Independentemente do primeiro quadro de áudio ser decodificado usando informação de codificação redundante ou informação de codificação primária, o método 700 pode incluir a determinação, com base no indicador, do primeiro número de bits do segundo quadro de áudio que estão alocados para informação de codificação primária associada com o segundo quadro de áudio, em 714. O método 700 pode também incluir a decodificação do segundo quadro de áudio com base na informação de codificação primária, em 716.
[0079] Um exemplo particular de uma ou mais operações que podem ser executadas durante a decodificação do primeiro quadro de áudio (por exemplo, o quadroN 132) com base na informação de codificação redundante incluída no segundo quadro de áudio (por exemplo, o quadroN+2 134) é ainda descrito com referência à FIG. 8. Assim, uma ou mais das operações ilustradas na FIG. 8 podem ser realizadas como parte da operação 710 da FIG. 7. Em algumas formas de realização, uma ou mais operações mostradas na FIG. 8 podem ser omitidas. Deve ser notado que a FIG. 8 ilustra decodificação HB com base em informações de quadro redundante. Embora não mostrado na FIG. 8, decodificação LB com base na informação de quadro redundante pode também ser realizada em um decodificador durante a operação 710 da FIG. 7.
[0080] O decodificador pode determinar um valor de um indicador de forma de ganho incluído na informação de codificação redundante, em 810. Quando o indicador de forma de ganho tem um primeiro valor, o decodificador pode usar a forma de ganho de banda alta do segundo quadro de áudio como a forma de ganho estimada do primeiro quadro de áudio, em 812. Por exemplo, com referência às FIGs. 2-3, o decodificador pode usar a forma de ganho HB 203. Quando o indicador de forma ganho tem um segundo valor, o decodificador pode usar uma forma de ganho constante como a forma ganho estimada ou algum outro método(s) de predição para estimar a forma ganho do primeiro quadro de áudio, em 814.
[0081] O decodificador pode também determinar quantos bits são alocados a um indicador de quadro de ganho HB na informação de codificação redundante, em 820. Quando um primeiro (por exemplo, maior) número de bits é alocado, o decodificador pode determinar um quadro de ganho HB do primeiro quadro de áudio utilizando o indicador de quadro de ganho HB como um índice da tabela de codificação, em 822. Quando um segundo (por exemplo, menor) número de bits é alocado, tal como um único bit, o decodificador pode determinar o quadro de ganho do HB primeiro quadro de áudio, acessando uma parte indicada (por exemplo, metade superior ou inferior) da tabela de codificação, em 824.
[0082] O decodificador pode ainda determinar um valor de um indicador de LSP HB, em 830. Quando o indicador de LSP HB tem um primeiro valor, o decodificador pode usar o(s) índice(s) LSP HB (ou LSPs HB) do segundo quadro de áudio como o(s) índice(s) LSP HB estimado (ou LSPs HB) do primeiro quadro de áudio, em 832. Quando o indicador de LSP HB tem um segundo valor, o decodificador pode determinar se uma distorção espectral entre os primeiro e segundo quadros de áudio está dentro de um intervalo de limiar, em 834. Quando a distorção espectral está dentro do intervalo de limiar, o decodificador pode determinar o(s) índice(s) LSP HB (ou LSPs HB) do primeiro quadro de áudio através de interpolação (por exemplo, interpolação entre o quadroN-1 131 e o quadroN+2 134), em 836. Quando a distorção espectral está fora do intervalo de limiar, o decodificador pode determinar o(s) índice(s) LSP HB (ou LSPs HB) do primeiro quadro de áudio através de extrapolação (por exemplo, extrapolação do quadroN-2 551 e quadroN-1 131), em 838.
[0083] Em formas de realização particulares, o método 700 das FIGs. 7-8 pode ser implementado por meio de hardware (por exemplo, um dispositivo FPGA, um ASIC, etc.) de uma unidade de processamento, tal como uma CPU, um DSP, ou um controlador, por meio de um dispositivo de firmware, ou qualquer combinação dos mesmos. Como um exemplo, o método 700 das FIGs. 7-8 pode ser realizado por um processador que executa instruções, tal como descrito em relação à FIG. 10.
[0084] Com referência à FIG. 9, um fluxograma de uma forma de realização particular de um método de codificação de informação de codificação redundante para um quadro em um quadro subsequente é mostrado e geralmente designado por 900. Em uma forma de realização ilustrativa, o método 900 pode ser realizado em um dispositivo de origem (por exemplo, o primeiro dispositivo de computação 110 da FIG. 1) e / ou um codificador (por exemplo, o codificador 500 da FIG. 5).
[0085] O método 900 inclui a codificação e transmissão de um primeiro quadro de áudio de um sinal de áudio, em 902. Por exemplo, na FIG. 5, o codificador 500 pode codificar e transmitir o quadroN 132. O método 900 também inclui determinar, com base em um tipo de quadro do primeiro quadro de áudio, um primeiro número de bits de um segundo quadro de áudio para alocação da informação de codificação primária associada com o segundo quadro de áudio, em 904. O segundo quadro de áudio segue o primeiro quadro de áudio no sinal de áudio. Também é determinado um segundo número de bits do segundo quadro de áudio para alocação da informação de codificação redundante associada com o primeiro quadro de áudio. Por exemplo, como mostrado na FIG. 5, o codificador pode determinar, com base em um tipo de quadro do quadroN 132, que 41 bits do quadroN+2 134 devem ser alocados para informação de codificação redundante para o quadroN 132 de quadro e que 223 bits do quadroN+2 134 devem ser alocados para informação de codificação primária para o quadroN+2 134.
[0086] O método 900 inclui codificando o segundo quadro de áudio, em 906. O segundo quadro de áudio inclui o primeiro número de bits de informação de codificação primária, o segundo número de bits de informação de codificação redundante e um indicador do tipo de quadro do primeiro quadro de áudio.
[0087] Por exemplo, um codificador pode definir um valor de um indicador de forma de ganho de bit único, em 908. O valor pode ser definido com base em uma correlação entre as partes de HB dos primeiro e segundo quadros de áudio e / ou uma distância entre índices da tabela de codificação associados com formas de ganho HB dos primeiro e segundo quadros de áudio.
[0088] O codificador pode alocar um número particular de bits a um indicador de quadro de ganho HB, em 910. O número particular de bits pode ser determinado com base em se o primeiro quadro de áudio é um quadro sem voz. O codificador também pode definir os bits alocados a um valor particular com base em uma tabela de codificação (por exemplo, a tabela de codificação de quadro de ganho HB mostrada na FIG. 4).
[0089] O codificador pode definir um valor de um indicador de LSP HB de bit único com base em uma distorção espectral entre os primeiro e segundo quadros de áudio e / ou uma distância entre os índices da tabela de codificação associados com os LSPs HB dos primeiro e segundo quadros de áudio, em 912. Como alternativa, o codificador pode determinar uma diferença (por exemplo, delta) entre LSPs de banda alta dos primeiro e segundo quadros de áudio e definir um valor do indicador de LSP HB com base na diferença, em 914. Em formas de realização alternativas, diferentes informações de codificação redundante podem ser determinadas pelo codificador. Além disso, deve ser notado que os exemplos acima mencionados de determinados tipos de indicadores sendo de bit único ou vários bits são apenas para exemplo, e não devem ser considerados limitantes. Em formas de realização alternativas, diferentes tipos de informação de codificação primária e / ou redundante podem ser representados usando um número de bits diferente.
[0090] O método 900 inclui ainda transmitir o segundo quadro de áudio, em 916. Por exemplo, na FIG. 1, o transmissor 118 pode transmitir o quadroN+2 134 para o receptor 128, em que o quadroN+2 134 inclui informação de codificação redundante para o quadroN 132.
[0091] Em formas de realização particulares, o método 900 da FIG. 9 pode ser implementado por meio de hardware (por exemplo, um dispositivo FPGA, um ASIC, etc.) de uma unidade de processamento tal como uma CPU, um DSP, ou um controlador, por meio de um dispositivo de firmware, ou qualquer combinação dos mesmos. Como exemplo, o método 900 da FIG. 9 pode ser realizado por um processador que executa instruções, tal como descrito em relação à FIG. 10.
[0092] Deve ser notado que a ordem das operações ilustradas nas FIGs. 7-9 é apenas para fins ilustrativos e não deve ser considerada limitativa. Em formas de realização alternativas, certas operações podem ser realizadas em uma ordem diferente e / ou podem ser realizadas simultaneamente uma com a outra (ou pelo menos parcialmente simultaneamente).
[0093] Com referência à FIG. 10, um diagrama em blocos de uma forma de realização ilustrativa particular de um dispositivo de comunicação sem fios está representado e genericamente designado 1000. O dispositivo 1000 inclui um primeiro processador 1010 (por exemplo, uma CPU) acoplado a uma memória 1032 (por exemplo, um dispositivo de armazenamento de leitura por computador). O dispositivo 1000 inclui ainda um segundo processador 1080 (por exemplo, um DSP). A memória 1032 pode incluir instruções 1060 executáveis pelo primeiro processador 1010 e / ou o segundo processador 1080 para executar os métodos e processos aqui descritos, tais como os métodos das FIGs. 7-9.
[0094] O segundo processador 1080 pode incluir um codificador de voz 1087, um decodificador de voz 1088 e uma memória 1085 que armazena uma ou mais tabelas de codificação 1086 (por exemplo, uma tabela de codificação LSP LB, uma tabela de codificação LSP HB, uma tabela de codificação de quadro de ganho, etc.). A uma ou mais tabelas de codificação 1086 pode incluir ACBs, FCBs ou ambos. Em uma forma de realização ilustrativa, o codificador de voz 1087 é o codificador 116 da FIG. 1 e / ou o codificador 500 da FIG. 5, o decodificador de voz 1088 é o decodificador 126 da FIG. 1 e / ou o decodificador 600 da FIG. 6, e a memória 1085 inclui o buffer de compensação de jitter 129 da FIG. 1, a memória compartilhada 530 da FIG. 6 e / ou o buffer de compensação de jitter 610 da FIG. 6. Em formas de realização alternativas, o codificador de voz 1087 e / ou o decodificador de voz 1088 podem ser externos ao segundo processador 1088 (por exemplo, podem ser incluídos no primeiro processador 1010 ou em um processador ou bloco de hardware diferente). O codificador de voz 1087 e o decodificador de voz 1088 podem ser implementados por meio de hardware dedicado (por exemplo, circuitos), por um processador que executa instruções para executar uma ou mais tarefas, ou uma combinação destes. Como exemplo, a memória 1032 ou a memória 1085 pode ser um dispositivo de memória, como uma memória de acesso aleatório (RAM), memória de acesso aleatório magneto- resistiva (MRAM), MRAM de transferência de torque por meio da rotação do spin (STT-MRAM), memória flash, memória somente de leitura (ROM), memória somente leitura programável (PROM), memória somente de leitura programável apagável (EPROM), memória somente leitura programável eletricamente apagável (EEPROM), registos, disco rígido, um disco removível ou uma memória de disco óptico (por exemplo, memória somente de leitura em disco compacto (CD- ROM), disco de vídeo digital (DVD), blu-ray, etc.). O dispositivo de memória pode incluir instruções (por exemplo, as instruções de 1060) que, quando executadas por um computador (por exemplo, o primeiro processador 1010 e / ou o segundo processador 1080), fazer com que o computador execute várias operações aqui descritas.
[0095] A FIG. 10 também mostra um controlador de exibição 1026 que é acoplado ao primeiro processador 1010 e a um visor 1028. Um codificador / decodificador (codec) 1034 pode ser acoplado ao primeiro processador 1010 e ao segundo processador 1080, como mostrado. Um alto-falante 1036 e um microfone 1038 podem ser acoplados ao CODEC 1034. Em uma forma de realização particular, o CODEC 1034 é um componente front-end de processamento de áudio analógico. Por exemplo, o CODEC 1034 pode executar o ajuste de ganho analógico e configuração do parâmetro para os sinais recebidos do microfone 1038 e os sinais transmitidos para o alto-falante 1036. O CODEC 1034 pode também incluir conversores analógico-para-digital (A / D) e digital-para- analógico (D / A). Em um exemplo particular, o CODEC 1034 também inclui um ou mais moduladores e filtros de processamento de sinal. Em formas de realização selecionadas, o CODEC 1034 inclui uma memória para estabilizar os dados de entrada recebidos a partir do microfone 1038 e para estabilizar os dados de saída que devem ser fornecidos ao alto-falante 1036.
[0096] A FIG. 10 também indica que um controlador sem fios 1040 pode ser acoplado ao primeiro processador 1010 e a uma antena 1042. Em uma forma de realização particular, o primeiro processador 1010, o segundo processador 1080, o controlador de exibição 1026, a memória 1032, o CODEC 1034 e o controlador sem fios 1040 são incluídos em um dispositivo de sistema-em-pacote ou sistema-em-chip (por exemplo, um modem da estação móvel (MSM)) 1022. Em uma forma de realização particular, um dispositivo de entrada 1030, tal como uma tela sensível ao toque e / ou um teclado, e uma fonte de alimentação 1044 são acoplados ao dispositivo de sistema-em-chip 1022. Além disso, em uma forma de realização particular, tal como ilustrado na FIG. 10, o visor 1028, o dispositivo de entrada 1030, o alto-falante 1036, o microfone 1038, a antena 1042 e a fonte de alimentação 1044 são externos ao dispositivo de sistema-em-chip 1022. No entanto, cada um dentre o visor 1028, o dispositivo de entrada 1030, o alto- falante 1036, o microfone 1038, a antena 1042 e a fonte de alimentação 1044 pode ser acoplado a um componente do dispositivo do sistema-em-chip 1022, tal como uma interface ou um controlador.
[0097] Em conjunto com as formas de realização descritas, é descrito um aparelho que inclui meios para receber um segundo quadro de áudio, em que o segundo quadro de áudio segue um primeiro quadro de áudio em um sinal de áudio. O segundo quadro de áudio inclui um primeiro número de bits alocados para informação de codificação primária associada com o segundo quadro de áudio, um segundo número de bits alocados para informação de codificação redundante associada com o primeiro quadro de áudio, e um indicador de um tipo de quadro do primeiro quadro de áudio. Por exemplo, os meios para receber podem incluir o receptor 128 da FIG. 1, a antena 1042 da FIG. 10, o controlador sem fios 1040 da FIG. 10, um ou mais dispositivos configurados para receber um quadro de áudio, ou qualquer combinação dos mesmos. O aparelho pode também incluir meios para determinar, com base no indicador, o segundo número de bits do segundo quadro de áudio que são alocados para informação de codificação redundante associada com o primeiro quadro de áudio. Por exemplo, os meios para determinação podem incluir o processador 122 da FIG. 1, o decodificador 126 da FIG. 1, o decodificador 600 da FIG. 6, o primeiro processador 1010 da FIG. 10, o segundo processador 1080 da FIG. 10, o decodificador de voz 1088 da FIG. 10, um ou mais dispositivos configurados para determinar uma série de bits alocados para informação de codificação redundante, ou qualquer combinação dos mesmos. O aparelho pode também incluir meios para decodificar o primeiro quadro de áudio com base na informação de codificação redundante. Por exemplo, o meio para decodificação pode incluir o decodificador 126 da FIG. 1, o decodificador 600 da FIG. 6, o primeiro processador 1010 da FIG. 10, o segundo processador 1080 da FIG. 10, o decodificador de voz 1088 da FIG. 10, um ou mais dispositivos configurados para decodificar um quadro de áudio com base na informação de codificação redundante, ou qualquer combinação dos mesmos.
[0098] É descrito um segundo aparelho que inclui meios para codificação de um primeiro quadro de áudio e um segundo quadro de áudio em um sinal de áudio, em que o segundo quadro de áudio segue um primeiro quadro de áudio em um sinal de áudio. Por exemplo, o meio para codificação pode incluir o codificador 116 da FIG. 1, o codificador 500 da FIG. 5, o primeiro processador 1010 da FIG. 10, o segundo processador 1080 da FIG. 10, o codificador de voz 1087 da FIG. 10, um ou mais dispositivos configurados para codificar um quadro de áudio, ou qualquer combinação dos mesmos. O aparelho pode também incluir meios para determinar, com base em um tipo de quadro do primeiro quadro de áudio, um primeiro número de bits do segundo quadro de áudio para alocação da informação de codificação primária associada com o segundo quadro de áudio e um segundo número de bits do segundo quadro de áudio para alocação da informação de codificação redundante associada com o primeiro quadro de áudio. Por exemplo, o meio para determinação pode incluir o processador 112 da FIG. 1, o codificador 116 da FIG. 1, o codificador 500 da FIG. 1, o primeiro processador 1010 da FIG. 10, o segundo processador 1080 da FIG. 10, o codificador de voz 1087 da FIG. 10, um ou mais dispositivos configurados para determinar bits alocados para informação de codificação primária e para informação de codificação redundante, ou qualquer combinação dos mesmos. O aparelho pode também incluir meios para transmissão do primeiro quadro de áudio e o segundo quadro de áudio a um dispositivo de destino. O segundo quadro de áudio inclui o primeiro número de bits da informação de codificação primária, o segundo número de bits da informação de codificação redundante e um indicador do tipo de quadro do primeiro quadro de áudio. Por exemplo, o meio para transmissão pode incluir o transmissor 118 da FIG. 1, a antena 1042 da FIG. 10, o controlador sem fio 1040 da FIG. 10, um ou mais dispositivos configurados para transmitir um quadro de áudio, ou qualquer combinação dos mesmos.
[0099] Os especialistas irão ainda apreciar que os vários blocos lógicos, configurações, módulos, circuitos e etapas de algoritmo ilustrativos descritos em ligação com as formas de realização aqui descritas podem ser implementados como hardware eletrônico, software de computador executado por um dispositivo de processamento, tal como um processador de hardware, ou combinações de ambos. Vários componentes ilustrativos, blocos, configurações, módulos, circuitos e etapas foram descritos acima, geralmente em termos de sua funcionalidade. Se tal funcionalidade é implementada como hardware ou software executável depende da aplicação específica e limitações de concepção impostas ao sistema global. Os especialistas na técnica podem implementar a funcionalidade descrita de maneiras diferentes para cada aplicação em particular, mas tais decisões de execução não devem ser interpretadas como causando um afastamento do âmbito da presente invenção.
[00100] As etapas de um processo ou algoritmo descrito em ligação com as formas de realização aqui descritas podem ser incorporadas diretamente em hardware, em um módulo de software executado por um processador, ou em uma combinação dos dois. Um módulo de software pode residir em um dispositivo de memória (por exemplo, dispositivo de armazenamento de leitura por computador ou de leitura por processador), tal como RAM, MRAM, STT-MRAM, memória flash, ROM, PROM, EPROM, EEPROM, registos, disco rígido, um disco removível ou uma memória em disco óptico. Um dispositivo de memória exemplar é acoplado ao processador de modo que o processador pode ler informação a partir de, e escrever informação para, o dispositivo de memória. Em alternativa, o dispositivo de memória pode ser parte integrante do processador. O processador e o meio de armazenamento podem residir em um ASIC. O ASIC pode residir em um dispositivo de computação ou um terminal de usuário. Em alternativa, o processador e o meio de armazenamento podem residir como componentes discretos em um dispositivo de computação ou um terminal de usuário. Um dispositivo de armazenamento de leitura por computador ou de leitura por processador não é um sinal.
[00101] A descrição anterior das formas de realização descritas é proporcionada para permitir que um perito na arte possa fazer ou utilizar as formas de realização reveladas. Várias modificações a estas formas de realização serão prontamente aparentes para aqueles peritos na arte, e os princípios aqui definidos podem ser aplicados a outras formas de realização, sem afastamento do âmbito da descrição. Assim, a presente invenção não deve ser limitada às formas de realização aqui apresentadas, mas deve receber o escopo mais amplo possível, consistente com os princípios e características inovadoras, tal como definido pelas reivindicações a seguir.

Claims (13)

1. Método de codificação de um quadro, o método caracterizado pelo fato de que compreende: codificar (902) um primeiro quadro de áudio (132) de um sinal de áudio em um codificador de um primeiro dispositivo de computação, sendo que o primeiro quadro de áudio (132) tem um tipo de quadro que classifica o primeiro quadro de áudio (132) em uma de uma pluralidade de classes que incluem um quadro sonoro, um quadro sem voz, um quadro de transição de áudio e um quadro de modo misto que incluem tanto informação da tabela de codificação adaptativa (ACB) quanto informação da tabela de codificação fixa (FCB); transmitir (902) o primeiro quadro de áudio (132) do primeiro dispositivo de computação para um segundo dispositivo de computação; determinar (904), com base em qual da pluralidade de classes que o tipo de quadro do primeiro quadro de áudio (132) classifica o primeiro quadro de áudio (132), um primeiro número de bits de um segundo quadro de áudio (134) para alocar para a informação de codificação primária associada ao segundo quadro de áudio (134) e um segundo número de bits do segundo quadro de áudio (134) para alocar para informação de codificação redundante associada ao primeiro quadro de áudio (132), em que o segundo quadro de áudio (134) segue o primeiro quadro de áudio (132) no sinal de áudio; codificar (906) o segundo quadro de áudio (134), em que o segundo quadro de áudio (134) inclui o primeiro número de bits de informação de codificação primária, o segundo número de bits de informação de codificação redundante e um indicador (215) do tipo de quadro do primeiro quadro de áudio; e transmitir (916) o segundo quadro de áudio (134) do primeiro dispositivo de computação para o segundo dispositivo de computação.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o indicador (215) de tipo de quadro do primeiro quadro de áudio (132) está incluído nos últimos três bits do segundo quadro de áudio (134).
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a informação de codificação redundante inclui um indicador de forma de ganho (211) associado a uma forma de ganho de banda alta do primeiro quadro de áudio (132), e sendo que o método compreende adicionalmente definir (908) um valor do indicador de forma de ganho (211) com base em um ou mais dentre: i) uma correlação entre uma porção de banda alta do primeiro quadro de áudio (132) e uma porção de banda alta do segundo quadro de áudio (134); e ii) uma distância entre um primeiro índice da tabela de codificação associado à forma de ganho de banda alta do primeiro quadro de áudio (132) e um segundo índice da tabela de codificação associado a uma forma de ganho de banda alta do segundo quadro de áudio (134).
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que a informação de codificação redundante inclui um indicador de quadro de ganho de banda alta (212) associado a um quadro de ganho de banda alta do primeiro quadro de áudio.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende adicionalmente pelo menos um dentre: i) quando o primeiro quadro de áudio for um quadro sem voz, configurar (910) o indicador de quadro de ganho de banda alta (212) para um índice da tabela de codificação; e ii) quando o primeiro quadro de áudio não for um quadro sem voz, configurar o indicador de quadro de ganho de banda alta (212) para um valor que indica se o quadro de ganho de banda alta do primeiro quadro de áudio (132) corresponde a um índice da tabela de codificação em uma primeira parte de uma tabela de codificação que corresponde aos altos índices da tabela de codificação ou em uma segunda parte da tabela de codificação que corresponde aos baixos índices da tabela de codificação.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que a informação de codificação redundante inclui um indicador de par espectral de linha, LSP, de banda alta (213) associado aos LSPs de banda alta do primeiro quadro de áudio (132), sendo que o método compreende adicionalmente configurar (912) um valor do indicador de LSP de banda alta com base em um ou mais dentre: uma distorção espectral entre o primeiro quadro de áudio (132) e o segundo quadro de áudio (134); e uma distância entre um primeiro índice da tabela de codificação associado aos LSPs de banda alta do primeiro quadro de áudio (132) e um segundo índice da tabela de codificação associado aos LSPs de banda alta do segundo quadro de áudio (134).
7. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que a informação de codificação redundante inclui um indicador de par espectral de linha, LSP, de banda alta (213) associado aos LSPs de banda alta do primeiro quadro de áudio (132), sendo que o método compreende adicionalmente: determinar (914) uma diferença entre os LSPs de banda alta do primeiro quadro de áudio (132) e os LSPs de banda alta do segundo quadro de áudio (134); e definir (914) um valor do indicador de LSP de banda alta com base na diferença.
8. Aparelho caracterizado pelo fato de que compreende: um codificador configurado para: codificar (902) um primeiro quadro de áudio (132) de um sinal de áudio, sendo que o primeiro quadro de áudio (132) tem um tipo de quadro que classifica o primeiro quadro de áudio (132) em uma de uma pluralidade de classes que incluem um quadro sonoro, um quadro sem voz, um quadro de transição de áudio e um quadro de modo misto que incluem tanto informação da tabela de codificação adaptativa (ACB) quanto informação da tabela de codificação fixa (FCB); determinar (904), com base na classe particular da pluralidade de classes na qual o tipo de quadro do primeiro quadro de áudio (132) classifica o primeiro quadro de áudio (132), um primeiro número de bits de um segundo quadro de áudio (134) para alocar para a informação de codificação primária associada ao segundo quadro de áudio (134) e um segundo número de bits do segundo quadro de áudio (134) para alocar para informação de codificação redundante associada ao primeiro quadro de áudio (132), em que o segundo quadro de áudio (134) segue o primeiro quadro de áudio (132) no sinal de áudio; e codificar (906) o segundo quadro de áudio (134), em que o segundo quadro de áudio (134) inclui o primeiro número de bits de informação de codificação primária, o segundo número de bits de informação de codificação redundante e um indicador (215) do tipo de quadro do primeiro quadro de áudio; e um transmissor configurado para transmitir (902, 916) o primeiro quadro de áudio (132) e o segundo quadro de áudio (134) para um dispositivo de destino.
9. Aparelho, de acordo com a reivindicação 8, caracterizado pelo fato de que: o codificador compreende dois percursos de codificação que operam em paralelo, os dois percursos de codificação incluindo um percurso de codificação primário (510) e um percurso de codificação redundante (520), e em que o primeiro número de bits de informação de codificação primária é gerado pelo percurso de codificação primária (510), e o segundo número de bits da informação de codificação redundante é gerado pelo percurso de codificação redundante (520).
10. Aparelho, de acordo com a reivindicação 8 ou 9, caracterizado pelo fato de que o indicador (215) de tipo de quadro do primeiro quadro de áudio (132) está incluído nos últimos três bits do segundo quadro de áudio (134).
11. Aparelho, de acordo com qualquer uma das reivindicações 8 a 10, caracterizado pelo fato de que a informação de codificação redundante inclui um indicador de forma de ganho (211) associado a uma forma de ganho de banda alta do primeiro quadro de áudio (132), e sendo que o aparelho é adicionalmente configurado para definir (908) um valor do indicador de forma de ganho (211) com base em um ou mais dentre: i) uma correlação entre uma porção de banda alta do primeiro quadro de áudio (132) e uma porção de banda alta do segundo quadro de áudio (134), e ii) uma distância entre um primeiro índice da tabela de codificação associado à forma de ganho de banda alta do primeiro quadro de áudio (132) e um segundo índice da tabela de codificação associado a uma forma de ganho de banda alta do segundo quadro de áudio (134).
12. Aparelho, de acordo com qualquer uma das reivindicações 8 a 11, caracterizado pelo fato de que a informação de codificação redundante inclui um indicador de quadro de ganho de banda alta (212) associado a um quadro de ganho de banda alta do primeiro quadro de áudio (132).
13. Memória legível por computador caracterizada pelo fato de que tem instruções armazenadas na mesma que, quando executadas por um computador, fazem com que o computador realize um método conforme definido em qualquer uma das reivindicações 1 a 7.
BR112016007940-0A 2013-10-11 2014-10-09 Método e aparelho de codificação de um quadro e memória legível por computador BR112016007940B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361890092P 2013-10-11 2013-10-11
US61/890,092 2013-10-11
US14/509,817 2014-10-08
US14/509,817 US10614816B2 (en) 2013-10-11 2014-10-08 Systems and methods of communicating redundant frame information
PCT/US2014/059931 WO2015054512A1 (en) 2013-10-11 2014-10-09 Systems and methods of communicating redundant frame information

Publications (2)

Publication Number Publication Date
BR112016007940A2 BR112016007940A2 (pt) 2017-08-01
BR112016007940B1 true BR112016007940B1 (pt) 2023-03-07

Family

ID=52810405

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016007940-0A BR112016007940B1 (pt) 2013-10-11 2014-10-09 Método e aparelho de codificação de um quadro e memória legível por computador

Country Status (21)

Country Link
US (2) US10614816B2 (pt)
EP (2) EP3700111B1 (pt)
JP (2) JP6553025B2 (pt)
KR (1) KR102229487B1 (pt)
CN (1) CN105594148B (pt)
AU (1) AU2014331824B2 (pt)
BR (1) BR112016007940B1 (pt)
CA (1) CA2925582C (pt)
CL (1) CL2016000833A1 (pt)
DK (1) DK3055939T3 (pt)
ES (2) ES2805849T3 (pt)
HK (1) HK1219582A1 (pt)
HU (1) HUE049089T2 (pt)
MX (1) MX365608B (pt)
MY (1) MY179633A (pt)
PH (1) PH12016500652A1 (pt)
RU (1) RU2673847C2 (pt)
SA (1) SA516370874B1 (pt)
SG (1) SG11201601782VA (pt)
WO (1) WO2015054512A1 (pt)
ZA (1) ZA201602114B (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2527365B (en) * 2014-06-20 2018-09-12 Starleaf Ltd A telecommunication end-point device data transmission controller
TWI602172B (zh) * 2014-08-27 2017-10-11 弗勞恩霍夫爾協會 使用參數以加強隱蔽之用於編碼及解碼音訊內容的編碼器、解碼器及方法
US9948578B2 (en) * 2015-04-14 2018-04-17 Qualcomm Incorporated De-jitter buffer update
WO2017000117A1 (zh) 2015-06-29 2017-01-05 华为技术有限公司 数据处理的方法及接收设备
US10504525B2 (en) * 2015-10-10 2019-12-10 Dolby Laboratories Licensing Corporation Adaptive forward error correction redundant payload generation
US10049681B2 (en) * 2015-10-29 2018-08-14 Qualcomm Incorporated Packet bearing signaling information indicative of whether to decode a primary coding or a redundant coding of the packet
US10049682B2 (en) * 2015-10-29 2018-08-14 Qualcomm Incorporated Packet bearing signaling information indicative of whether to decode a primary coding or a redundant coding of the packet
JP6409812B2 (ja) * 2016-04-01 2018-10-24 横河電機株式会社 冗長化装置、冗長化システム、及び冗長化方法
CN108011686B (zh) * 2016-10-31 2020-07-14 腾讯科技(深圳)有限公司 信息编码帧丢失恢复方法和装置
CN106710606B (zh) * 2016-12-29 2019-11-08 百度在线网络技术(北京)有限公司 基于人工智能的语音处理方法及装置
US20190051286A1 (en) * 2017-08-14 2019-02-14 Microsoft Technology Licensing, Llc Normalization of high band signals in network telephony communications
CN111133510B (zh) * 2017-09-20 2023-08-22 沃伊斯亚吉公司 用于在celp编解码器中高效地分配比特预算的方法和设备
US10475456B1 (en) * 2018-06-04 2019-11-12 Qualcomm Incorporated Smart coding mode switching in audio rate adaptation
EP4035288A1 (en) 2019-09-25 2022-08-03 Mixhalo Corp. Packet payload mapping for robust transmission of data
US11811686B2 (en) * 2020-12-08 2023-11-07 Mediatek Inc. Packet reordering method of sound bar
CN112735446B (zh) * 2020-12-30 2022-05-17 北京百瑞互联技术有限公司 在lc3音频码流中添加额外信息的方法、系统及介质

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141638A (en) 1998-05-28 2000-10-31 Motorola, Inc. Method and apparatus for coding an information signal
US7117146B2 (en) 1998-08-24 2006-10-03 Mindspeed Technologies, Inc. System for improved use of pitch enhancement with subcodebooks
US7272556B1 (en) 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
GB2342829B (en) 1998-10-13 2003-03-26 Nokia Mobile Phones Ltd Postfilter
CA2252170A1 (en) 1998-10-27 2000-04-27 Bruno Bessette A method and device for high quality coding of wideband speech and audio signals
US6449313B1 (en) 1999-04-28 2002-09-10 Lucent Technologies Inc. Shaped fixed codebook search for celp speech coding
US6704701B1 (en) 1999-07-02 2004-03-09 Mindspeed Technologies, Inc. Bi-directional pitch enhancement in speech coding systems
US6801499B1 (en) 1999-08-10 2004-10-05 Texas Instruments Incorporated Diversity schemes for packet communications
AU2001241475A1 (en) 2000-02-11 2001-08-20 Comsat Corporation Background noise reduction in sinusoidal based speech coding systems
US6757654B1 (en) 2000-05-11 2004-06-29 Telefonaktiebolaget Lm Ericsson Forward error correction in speech coding
US6760698B2 (en) 2000-09-15 2004-07-06 Mindspeed Technologies Inc. System for coding speech information using an adaptive codebook with enhanced variable resolution scheme
AU2001287970A1 (en) 2000-09-15 2002-03-26 Conexant Systems, Inc. Short-term enhancement in celp speech coding
US6804218B2 (en) * 2000-12-04 2004-10-12 Qualcomm Incorporated Method and apparatus for improved detection of rate errors in variable rate receivers
US6766289B2 (en) 2001-06-04 2004-07-20 Qualcomm Incorporated Fast code-vector searching
JP3457293B2 (ja) 2001-06-06 2003-10-14 三菱電機株式会社 雑音抑圧装置及び雑音抑圧方法
US6993207B1 (en) 2001-10-05 2006-01-31 Micron Technology, Inc. Method and apparatus for electronic image processing
US7146313B2 (en) 2001-12-14 2006-12-05 Microsoft Corporation Techniques for measurement of perceptual audio quality
US7047188B2 (en) 2002-11-08 2006-05-16 Motorola, Inc. Method and apparatus for improvement coding of the subframe gain in a speech coding system
US20070013873A9 (en) * 2004-04-29 2007-01-18 Jacobson Joseph M Low cost portable computing device
US7930184B2 (en) 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
US7788091B2 (en) 2004-09-22 2010-08-31 Texas Instruments Incorporated Methods, devices and systems for improved pitch enhancement and autocorrelation in voice codecs
JP2006197391A (ja) 2005-01-14 2006-07-27 Toshiba Corp 音声ミクシング処理装置及び音声ミクシング処理方法
KR100612889B1 (ko) * 2005-02-05 2006-08-14 삼성전자주식회사 선스펙트럼 쌍 파라미터 복원 방법 및 장치와 그 음성복호화 장치
US8280730B2 (en) 2005-05-25 2012-10-02 Motorola Mobility Llc Method and apparatus of increasing speech intelligibility in noisy environments
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
DE102006022346B4 (de) 2006-05-12 2008-02-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Informationssignalcodierung
US8682652B2 (en) 2006-06-30 2014-03-25 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder and audio processor having a dynamically variable warping characteristic
US7877253B2 (en) * 2006-10-06 2011-01-25 Qualcomm Incorporated Systems, methods, and apparatus for frame erasure recovery
PT2102619T (pt) * 2006-10-24 2017-05-25 Voiceage Corp Método e dispositivo para codificação de tramas de transição em sinais de voz
US9009032B2 (en) 2006-11-09 2015-04-14 Broadcom Corporation Method and system for performing sample rate conversion
US20100332223A1 (en) 2006-12-13 2010-12-30 Panasonic Corporation Audio decoding device and power adjusting method
US20080208575A1 (en) 2007-02-27 2008-08-28 Nokia Corporation Split-band encoding and decoding of an audio signal
EP2381580A1 (en) 2007-04-13 2011-10-26 Global IP Solutions (GIPS) AB Adaptive, scalable packet loss recovery
US8352252B2 (en) 2009-06-04 2013-01-08 Qualcomm Incorporated Systems and methods for preventing the loss of information within a speech frame
US8428938B2 (en) * 2009-06-04 2013-04-23 Qualcomm Incorporated Systems and methods for reconstructing an erased speech frame
US8484020B2 (en) 2009-10-23 2013-07-09 Qualcomm Incorporated Determining an upperband signal from a narrowband signal
JP5812998B2 (ja) 2009-11-19 2015-11-17 テレフオンアクチーボラゲット エル エム エリクソン(パブル) オーディオコーデックにおけるラウドネスおよびシャープネスの補償のための方法および装置
US8600737B2 (en) 2010-06-01 2013-12-03 Qualcomm Incorporated Systems, methods, apparatus, and computer program products for wideband speech coding
US8738385B2 (en) 2010-10-20 2014-05-27 Broadcom Corporation Pitch-based pre-filtering and post-filtering for compression of audio signals
US9026434B2 (en) * 2011-04-11 2015-05-05 Samsung Electronic Co., Ltd. Frame erasure concealment for a multi rate speech and audio codec
WO2012158157A1 (en) 2011-05-16 2012-11-22 Google Inc. Method for super-wideband noise supression
CN102802112B (zh) 2011-05-24 2014-08-13 鸿富锦精密工业(深圳)有限公司 具有音频文件格式转换功能的电子装置
US9047863B2 (en) 2012-01-12 2015-06-02 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for criticality threshold control
US9275644B2 (en) 2012-01-20 2016-03-01 Qualcomm Incorporated Devices for redundant frame coding and decoding

Also Published As

Publication number Publication date
WO2015054512A1 (en) 2015-04-16
AU2014331824B2 (en) 2018-12-06
EP3700111C0 (en) 2023-11-22
MX365608B (es) 2019-06-07
CN105594148B (zh) 2019-07-05
SA516370874B1 (ar) 2020-09-21
RU2016116793A (ru) 2017-11-16
CN105594148A (zh) 2016-05-18
EP3055939A1 (en) 2016-08-17
US10614816B2 (en) 2020-04-07
ES2967136T3 (es) 2024-04-26
PH12016500652A1 (en) 2016-05-30
ZA201602114B (en) 2020-09-30
JP2019215545A (ja) 2019-12-19
JP6553025B2 (ja) 2019-07-31
KR20160072145A (ko) 2016-06-22
ES2805849T3 (es) 2021-02-15
JP2016539536A (ja) 2016-12-15
BR112016007940A2 (pt) 2017-08-01
CA2925582C (en) 2022-01-04
AU2014331824A1 (en) 2016-03-31
EP3700111A1 (en) 2020-08-26
CA2925582A1 (en) 2015-04-16
DK3055939T3 (da) 2020-05-18
KR102229487B1 (ko) 2021-03-17
MX2016004529A (es) 2016-07-22
EP3055939B1 (en) 2020-04-15
MY179633A (en) 2020-11-11
JP6768886B2 (ja) 2020-10-14
EP3700111B1 (en) 2023-11-22
NZ717780A (en) 2021-05-28
HK1219582A1 (zh) 2017-04-07
US20200194010A1 (en) 2020-06-18
US20150106106A1 (en) 2015-04-16
HUE049089T2 (hu) 2020-09-28
RU2673847C2 (ru) 2018-11-30
SG11201601782VA (en) 2016-04-28
RU2016116793A3 (pt) 2018-06-20
CL2016000833A1 (es) 2016-11-25

Similar Documents

Publication Publication Date Title
US20200194010A1 (en) Systems and methods of communicating redundant frame information
DK2803065T3 (en) SYSTEM, PROCEDURES, DEVICE, AND COMPUTER READABLE MEDIA FOR BITAL LOCATION FOR REDUNDANT AUDIO DATA
JP5405456B2 (ja) ピッチ調整コーディング及び非ピッチ調整コーディングを使用する信号符号化
ES2777282T3 (es) Extensión de ancho de banda armónico de señales de audio
ES2844231T3 (es) Modelado de señales de banda alta
BR112018002979B1 (pt) Controle de sinal-alvo de banda alta
BR112017027364B1 (pt) Dispositivo e método para processamento de sinal, e memória legível por computador
BR122020015614B1 (pt) Método e dispositivo para interpolar parâmetros de filtro de predição linear em um quadro de processamento de sinal sonoro atual seguindo um quadro de processamento de sinal sonoro anterior
ES2807258T3 (es) Escalado para circuitería de forma de ganancia
KR20240016448A (ko) 대역폭 트랜지션 주기 동안의 신호 재사용
NZ717780B2 (en) Systems and methods of communicating redundant frame information
BR112017001088B1 (pt) Dispositivo e método de recuperação de erro de transmissão de pacote com base em redundância
BR112017000791B1 (pt) Sistema e método de recuperação de erro de transmissão de pacote com base em redundância
BR112016007914B1 (pt) Estimativa de formato de ganho para rastreamento aperfeiçoado de características temporais de banda alta
BR112016007938B1 (pt) Estimação de fatores de mistura para gerar sinal de excitação de banda alta

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 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: 20 (VINTE) ANOS CONTADOS A PARTIR DE 09/10/2014, OBSERVADAS AS CONDICOES LEGAIS