ES2653949T3 - Sistemas, procedimientos, aparatos y medios legibles por ordenador para el control del umbral de criticidad - Google Patents
Sistemas, procedimientos, aparatos y medios legibles por ordenador para el control del umbral de criticidad Download PDFInfo
- Publication number
- ES2653949T3 ES2653949T3 ES12813204.0T ES12813204T ES2653949T3 ES 2653949 T3 ES2653949 T3 ES 2653949T3 ES 12813204 T ES12813204 T ES 12813204T ES 2653949 T3 ES2653949 T3 ES 2653949T3
- Authority
- ES
- Spain
- Prior art keywords
- frame
- information
- threshold value
- calculated
- copy
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 121
- 230000005540 biological transmission Effects 0.000 claims abstract description 63
- 230000005236 sound signal Effects 0.000 claims abstract description 55
- 238000005259 measurement Methods 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000003044 adaptive effect Effects 0.000 claims description 30
- 239000013598 vector Substances 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000001052 transient effect Effects 0.000 claims description 5
- 238000013500 data storage Methods 0.000 claims description 4
- 238000006073 displacement reaction Methods 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 50
- 238000004891 communication Methods 0.000 description 43
- 230000001419 dependent effect Effects 0.000 description 31
- 238000003860 storage Methods 0.000 description 21
- 238000012546 transfer Methods 0.000 description 19
- 238000004458 analytical method Methods 0.000 description 16
- 238000013459 approach Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000005284 excitation Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 230000003595 spectral effect Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 230000036961 partial effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 5
- 230000006866 deterioration Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 101000666657 Homo sapiens Rho-related GTP-binding protein RhoQ Proteins 0.000 description 3
- 102000003729 Neprilysin Human genes 0.000 description 3
- 108090000028 Neprilysin Proteins 0.000 description 3
- 102100038339 Rho-related GTP-binding protein RhoQ Human genes 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 239000013256 coordination polymer Substances 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000011002 quantification Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000008713 feedback mechanism Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000001755 vocal effect Effects 0.000 description 2
- 101150080339 BTS1 gene Proteins 0.000 description 1
- 241000127950 Calliope Species 0.000 description 1
- 101000795655 Canis lupus familiaris Thymic stromal cotransporter homolog Proteins 0.000 description 1
- 102000003814 Interleukin-10 Human genes 0.000 description 1
- 108090000174 Interleukin-10 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000001303 quality assessment method Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 210000001260 vocal cord Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0009—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0014—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/007—Unequal error protection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/09—Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/10—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
- G10L19/107—Sparse pulse excitation, e.g. by using algebraic codebook
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Telephonic Communication Services (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Time-Division Multiplex Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Traffic Control Systems (AREA)
- Radio Relay Systems (AREA)
- Telephone Function (AREA)
Abstract
Un procedimiento (M100, M110, M120, M200, M210, M300) de procesamiento de señales de audio, comprendiendo dicho procedimiento: calcular (T100) una medición de criticidad de una primera trama de una señal de audio a una segunda trama en base a información dentro de la primera trama, en el que la primera trama precede a la segunda trama en la señal de audio; en base a la información relacionada con un estado de un canal de transmisión, calcular (T200, T210) un valor umbral; comparar (T300) la medición de criticidad calculada con el valor de umbral calculado; y, en base a un resultado de dicha comparación, decidir transmitir (T350) una copia redundante de la primera trama en bits inicialmente asignados para una trama portadora,
Description
5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Sistemas, procedimientos, aparatos y medios legibles por ordenador para el control del umbral de criticidad Reivindicación de prioridad en virtud del artículo 35 U.S.C. §119
[0001] La presente solicitud de patente reivindica la prioridad de la solicitud provisional n.° 61/586.007 titulada "SYSTEMS, METHODS, APPARATUS, AND COMPUTER- READABLE MEDIA FOR BIT ALLOCATION FOR REDUNDANT TRANSMISSION", presentada el 12 de enero de 2012 y cedida al cesionario de la misma. La presente solicitud de patente también reivindica la prioridad de la solicitud provisional N° 61/587.507, titulada "SYSTEMS, METHODS, APPARATUS, AND COMPUTER-READABLE MEDIA FOR CRITICALITY THRESHOLD CONTROL", presentada el 17 de enero de 2012 y cedida al cesionario de la misma. La presente solicitud de patente reivindica la prioridad de la solicitud provisional n.° 61/641.093 titulada "SYSTEMS, METHODS, APPARATUS, AND COMPUTER-READABLE MEDIA FOR BIT ALLOCATION FOR REDUNDANT TRANSMISSION", presentada el 1 de mayo de 2012 y cedida al cesionario de la misma.
ANTECEDENTES
Campo
[0002] Esta divulgación se refiere a las comunicaciones de audio.
Antecedentes
[0003] Las telecomunicaciones digitales de audio se han realizado a través de redes de conmutación de circuitos. Una red de conmutación de circuitos es una red en la que se establece una ruta física entre dos terminales durante la duración de una llamada. En las aplicaciones de conmutación de circuitos, un terminal transmisor envía una secuencia de paquetes que contiene información de audio (por ejemplo, voz) a través de la ruta física al terminal receptor. El terminal receptor usa la información de audio contenida en los paquetes (por ejemplo, información de voz) para sintetizar la señal de audio correspondiente (por ejemplo, una señal de voz).
[0004] Las telecomunicaciones digitales de audio han comenzado a realizarse a través de redes de conmutación de paquetes. Una red de conmutación de paquetes es una red en la que los paquetes se enrutan a través de la red en base a una dirección de destino. Con las comunicaciones de conmutación de paquetes, los enrutadores determinan una ruta para cada paquete individualmente, enviándolo por cualquier ruta disponible para llegar a su destino. Como resultado, los paquetes pueden no llegar al terminal receptor al mismo tiempo o en el mismo orden. Puede usarse una memoria intermedia antifluctuaciones en el terminal receptor para volver a colocar los paquetes en orden y reproducirlos de manera secuencial continua.
[0005] En algunas ocasiones, se pierde un paquete en tránsito desde el terminal transmisor hasta el terminal receptor. Un paquete perdido puede degradar la calidad de la señal sintetizada de audio. Como tal, pueden obtenerse beneficios proporcionando sistemas y procedimientos para abordar una pérdida de información dentro de una trama (por ejemplo, dentro de una trama de voz).
Se pone atención en un documento de Gerardo Rubino et al.: "Evaluating the utility of media-dependent FEC in VoIP flows", publicado en Quality of Service in the Emerging Networking Panorama. Fifth International Workshop on Quality of Future Internet Services, QoflS 2004. First Workshop on Quality of Service Routing, WQoSR 2004. Fourth International Workshop on Internet Charging and, 1 de octubre 2004 (2004-10-01), páginas 31-43, XP55055283, Berlín, Alemania ISBN: 978-38-4 Obtenido de Internet: URL: http://
www.irisa.fr/armor/lesmembres/Rubino/Para ev/QQA/fec.pdf. El documento presenta un análisis del impacto del uso de la Corrección de Errores Hacia Adelante (FEC) dependiente de los medios en los flujos de VoIP a través de Internet. Este mecanismo de corrección de errores consiste en transportar una copia comprimida de los contenidos del paquete n en el paquete n + i (siendo i variable), a fin de mitigar el efecto de las pérdidas de red en la calidad de la conversación. Para evaluar el impacto de esta técnica en la calidad percibida, los autores proponen un modelo de red simple y estudian diferentes escenarios para ver cómo el aumento de la carga producido por la FEC afecta al estado de la red. Luego, se utiliza una herramienta de evaluación de calidad pseudosubjetiva con el fin de evaluar los efectos de la FEC y las condiciones de red afectadas sobre la calidad como se percibe por el usuario final.
Se pone también atención en un artículo de Gandikota V. R. et al: "Adaptive FEC-Based Packet Loss Resilience Scheme for Supporting Voice Communication over Ad hoc Wireless Networks", IEEE Transactions on Mobile Computing, Centro de Servicios del IEEE, Los Alamitos, CA, EE. UU., vol. 7, no. 10, 1 de octubre de 2008, páginas 1184-1199, XP011335279, ISSN: 1536-1233, DOI: 10.1109/TMC.2008.42. El documento describe que proporcionar soporte de voz en tiempo real a través de redes inalámbricas ad hoc multisalto (AWN) es una tarea desafiante y además que las estrategias estándar de retransmisión propuestas en la literatura no coinciden apenas con las aplicaciones de voz debido a la puntualidad y grandes encabezados implicados al transmitir paquetes de voz de pequeño tamaño. Para que una aplicación de voz sea factible a través de AWN, debe mejorarse la calidad de voz
5
10
15
20
25
30
35
40
45
50
55
60
65
percibida sin aumentar significativamente la sobrecarga del paquete. Los autores del documento sugieren la corrección de errores hacia delante adaptativa y dependiente de los medios a nivel de paquete en la capa de aplicación junto con el transporte multitrayecto para mejorar la calidad de la voz.
Se pone atención en el documento EP 0 936 772 A2 que describe un flujo de bits de información de audio que incluye bits de control de audio y bits de datos de audio que se procesa para su transmisión en un sistema de comunicación. Los bits de datos de audio se separan primero en n clases en base a la sensibilidad al error, es decir, al impacto de errores en bits de datos de audio particulares sobre la calidad percibida de una señal de audio reconstruida a partir de la transmisión. Cada una de las n clases diferentes de bits de datos de audio se proporciona con un correspondiente de diferentes n niveles de protección contra errores, donde n es mayor o igual que dos. De este modo, la protección contra errores se adapta a los bits de datos de audio para la sensibilidad de error de la fuente y del canal. Los bits de control de audio pueden transmitirse independientemente de los bits de datos de audio, usando un nivel adicional de protección de error más alto que el usado para cualquiera de las n clases de los bits de datos de audio. De manera alternativa, los bits de control pueden combinarse con una de las n clases de bits de datos de audio y proporcionarse con el más alto de los n niveles de protección contra errores. Puede proporcionarse protección adicional para los bits de control repitiendo al menos una porción de los bits de control de un paquete actual del flujo de bits de información de audio en un paquete posterior del flujo de bits de información de audio. Además, la clasificación de bits de datos de audio en n clases diferentes puede implementarse paquete por paquete fijo, o en una implementación más flexible y adaptativa en la que se usen diferentes perfiles de protección de errores multipaquete para diferentes segmentos multipaquete de una señal de audio codificada por la fuente.
RESUMEN
[0006] De acuerdo con la presente invención, se proporciona un procedimiento y un aparato, como se expone en las reivindicaciones independientes, respectivamente. Los modos de realización preferidos de la invención se describen en las reivindicaciones dependientes.
[0007] Un procedimiento de procesamiento de señales de audio de acuerdo con una configuración general incluye calcular una estimación de codificación de la dependencia de una segunda trama de una señal de audio en una primera trama que preceda a la segunda trama en la señal de audio. Este procedimiento también incluye calcular un valor umbral, en base a la información relativa a un estado de un canal de transmisión. Este procedimiento también incluye comparar la estimación calculada con el valor umbral calculado y decidir transmitir una copia redundante de la primera trama, en base al resultado de dicha comparación. Se divulgan también medios de almacenamiento legibles por ordenador (por ejemplo, medios no transitorios) que tienen características tangibles que causan que una máquina lea las características para realizar dicho procedimiento.
[0008] Un aparato para el procesamiento de señales de audio de acuerdo con una configuración general incluye medios para calcular una estimación de la dependencia de la codificación de una segunda trama de una señal de audio en una primera trama que preceda a la segunda trama en la señal de audio. Este aparato también incluye medios para calcular un valor umbral, en base a la información relativa a un estado de un canal de transmisión; medios para comparar la estimación calculada con el valor umbral calculado; y medios para decidir transmitir, en base al resultado de dicha comparación, una copia redundante de la primera trama.
[0009] Un aparato para el procesamiento de señales de audio de acuerdo con otra configuración general incluye una primera calculadora configurada para calcular una estimación de la dependencia de codificación de una segunda trama de una señal de audio en una primera trama que preceda a la segunda trama en la señal de audio. Este aparato también incluye una segunda calculadora configurada para calcular un valor umbral, en base a la información relacionada con un estado de un canal de transmisión. Este aparato también incluye un selector de modo configurado (A) para comparar la estimación calculada con el valor umbral calculado y (B) para decidir, en base a un resultado de dicha comparación, transmitir una copia redundante de la primera trama.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0010]
La FIG. 1 es un diagrama de bloques que ilustra un ejemplo de un terminal transmisor 102 y de un terminal receptor 104 en comunicación a través de una red NW10.
La FIG. 2A muestra un diagrama de bloques de una implementación NW20 de la red NW10 con diversos dispositivos terminales.
La FIG. 2B muestra un diagrama de bloques de una implementación AE20 del codificador de audio AE10.
La FIG. 3 muestra un diagrama de bloques de una implementación FE20 del codificador de trama FE10.
La FIG. 4A muestra un diagrama de flujo de un procedimiento M100 de acuerdo con una configuración general.
5
10
15
20
25
30
35
40
45
50
55
60
65
La FIG. 4B muestra un diagrama de flujo de una implementación M110 del procedimiento M100.
Las FIGS. 5A y 5B muestran ejemplos de relaciones entre la información de estado de canal y otros parámetros del sistema como se describe en el presente documento.
La FIG. 5C muestra un ejemplo de una secuencia de tramas de una señal de audio.
La FIG. 6A muestra un diagrama de flujo de una implementación M120 del procedimiento M100.
La FIG. 6B muestra un diagrama de flujo de una implementación T210 de la tarea T200.
La FIG. 7A muestra un diagrama de flujo de una implementación M200 del procedimiento M100.
La FIG. 7B muestra un diagrama de flujo de una implementación M210 del procedimiento M200.
La FIG. 8 muestra un diagrama de flujo de una implementación M300 de los procedimientos M110, M120 y M210.
La FIG. 9A es un diagrama de un paquete IPv4.
La FIG. 9B es un diagrama de un paquete IPv6.
La FIG. 9C muestra un diagrama de bloques de un dispositivo de comunicaciones D10.
La FIG. 10 muestra un ejemplo de una carga útil para un paquete RTP.
La FIG. 11 muestra un diagrama de bloques de una implementación AD20 del decodificador de audio AD10.
La FIG. 12A muestra un diagrama de bloques de un aparato MF100 de acuerdo con una configuración general.
La FIG. 12B muestra un diagrama de bloques de una implementación MF110 del aparato MF100.
La FIG. 13A muestra un diagrama de bloques de una implementación MF120 del aparato MF100.
La FIG. 13B muestra un diagrama de bloques de una implementación MF200 del aparato MF100.
La FIG. 14A muestra un diagrama de bloques de una implementación F210 de los medios F200.
La FIG. 14B muestra un diagrama de bloques de una implementación MF210 del aparato MF100.
La FIG. 15 muestra un diagrama de bloques de una implementación MF300 de los aparatos MF110, MF120 y MF210.
La FIG. 16A muestra un diagrama de bloques de un aparato AP100 de acuerdo con una configuración general.
La FIG. 16B muestra un diagrama de bloques de una implementación AP110 del aparato AP100.
La FIG. 16C muestra un diagrama de bloques de una implementación A210 de la segunda calculadora A200.
La FIG. 16D muestra un diagrama de bloques de una implementación AP120 del aparato AP100.
La FIG. 16E muestra un diagrama de bloques de un ejemplo A220 de una implementación de la segunda calculadora A200.
La FIG. 17A muestra un diagrama de bloques de una implementación AP200 del aparato AP100.
La FIG. 17B muestra un diagrama de bloques de una implementación AP210 del aparato A100.
La FIG. 17C muestra un diagrama de bloques de una implementación AP220 del aparato AP210.
La FIG. 18A muestra un diagrama de bloques de una implementación AP300 de los aparatos AP110, AP120 y AP210.
La FIG. 18B muestra un diagrama de bloques de un dispositivo inalámbrico 1102.
5
10
15
20
25
30
35
40
45
50
55
60
65
La FIG. 19 muestra un diagrama de bloques de una implementación AP400 del aparato AP300.
La FIG. 20 muestra las vistas frontal, trasera y lateral de un auricular H100.
DESCRIPCIÓN DETALLADA
[0011] Los sistemas, procedimientos y aparatos como se divulga en el presente documento pueden implementarse para ajustar uno o más valores umbral de criticidad en base a condiciones del canal, para aplicaciones de codificación de voz en las que los valores umbral se usen para controlar la frecuencia de retransmisión de tramas de voz.
[0012] A menos que se limite expresamente por su contexto, el término "señal" se usa en el presente documento para indicar cualquiera de sus significados ordinarios, incluyendo un estado de una posición de memoria (o conjunto de posiciones de memoria) como se expresa en un alambre, bus u otro medio de transmisión. A menos que se limite expresamente por su contexto, el término "generar" se usa en el presente documento para indicar cualquiera de sus significados ordinarios, tales como el cálculo o la producción de otra forma. A menos que se limite expresamente por su contexto, el término "calcular" se usa en el presente documento para indicar cualquiera de sus significados ordinarios, tales como calcular, evaluar, suavizar y/o seleccionar a partir de una lista de valores. A menos que se limite expresamente por su contexto, el término "obtener' se usa para indicar cualquiera de sus significados ordinarios, tales como calcular, derivar, recibir (por ejemplo, de un dispositivo externo) y/o recuperar (por ejemplo, de una matriz de elementos de almacenamiento). A menos que se limite expresamente por su contexto, el término "seleccionar" se usa para indicar cualquiera de sus significados ordinarios, como identificar, indicar, aplicar y/o usar al menos uno, y menos que todos, de un conjunto de dos o más. Cuando se usa el término "que comprende" en la presente descripción y en las reivindicaciones, no excluye otros elementos u operaciones. El término "basado en" (como en "A está basado en B") se usa para indicar cualquiera de sus significados ordinarios, incluidos los casos (i) "derivados de" (por ejemplo, "B es un precursor de A"), (ii) "basado al menos en" (p. ej., "A está basado al menos en B") y, si corresponde en el contexto particular, (iii) "igual a" (p. ej., "A es igual a B"). De manera similar, el término "en respuesta a" se usa para indicar cualquiera de sus significados ordinarios, incluyendo "en respuesta a al menos". A menos que se indique lo contrario, los términos "al menos uno de A, B y C" y "uno o más de A, B y C" indican "A y/o B y/o C."
[0013] A menos que se indique lo contrario, el término "serie" se usa para indicar una secuencia de dos o más elementos. El término "logaritmo" se usa para indicar el logaritmo de base diez, aunque las extensiones de dicha operación a otras bases estén dentro del alcance de la presente divulgación. El término "componente de frecuencia" se usa para indicar una de entre un conjunto de frecuencias o bandas de frecuencia de una señal, como una muestra de una representación de dominio de frecuencia de la señal (por ejemplo, producida por una transformada rápida de Fourier o MDCT) o una subbanda de la señal (por ejemplo, una escala Bark o subbanda con escala Mel).
[0014] A menos que se indique de otra forma, cualquier divulgación de una operación de un aparato que tenga una característica particular también pretende expresamente divulgar un procedimiento que tenga una característica análoga (y viceversa), y cualquier divulgación de una operación de un aparato de acuerdo con una configuración particular también pretende expresamente divulgar un procedimiento de acuerdo con una configuración análoga (y viceversa). El término "configuración" puede usarse en referencia a un procedimiento, aparato y/o sistema como se indica por su contexto particular. Los términos "procedimiento", "proceso", "procedimiento" y "técnica" se usan de forma genérica e intercambiable a menos que el contexto particular indique lo contrario. Una "tarea" que tiene múltiples subtareas también es un procedimiento. Los términos "aparato" y "dispositivo" también se usan de forma genérica e intercambiable a menos que se indique lo contrario por el contexto particular. Los términos "elemento" y "módulo" se usan típicamente para indicar una porción de una configuración mayor. A menos que se limite expresamente por su contexto, el término "sistema" se usa en el presente documento para indicar cualquiera de sus significados ordinarios, incluyendo "un grupo de elementos que interactúan para servir a un propósito común". El término "pluralidad" significa "dos o más".
[0015] A menos que se indique lo contrario, los términos "códec", "vocoder", "codificador de audio" y "codificador de voz" se refieren a la combinación de un codificador de audio y un decodificador de audio correspondiente. A menos que se indique lo contrario, el término "codificar" indica la transferencia de una señal de audio a través de un códec, incluyendo la codificación y la decodificación posterior. A menos que se indique lo contrario, el término "transmitir" indica la propagación (por ejemplo, una señal) en un canal de transmisión.
[0016] Un sistema de codificación tal como el descrito en el presente documento puede aplicarse para codificar cualquier señal de audio (por ejemplo, incluyendo el audio no vocal). De manera alternativa, puede ser deseable usar dicho sistema de codificación sólo para la voz. En dicho caso, el sistema de codificación puede usarse con un sistema de clasificación para determinar el tipo de contenido de cada trama de la señal de audio y seleccionar un sistema de codificación adecuado.
[0017] Un sistema de codificación tal como el descrito en el presente documento puede usarse como un códec principal o como una capa o etapa en un códec multicapa o multietapa. En un ejemplo de este tipo, dicho sistema de
5
10
15
20
25
30
35
40
45
50
55
60
65
codificación se usa para codificar una porción del contenido de frecuencia de una señal de audio (por ejemplo, una banda baja o una banda alta) y se usa otro sistema de codificación para codificar otra porción del contenido de frecuencia de la señal. En otro ejemplo de este tipo, dicho sistema de codificación se usa para codificar una señal de audio que sea residual (es decir, un error entre las señales original y codificada) de otra capa de codificación, tal como un residuo de una operación de análisis de codificación de predicción lineal (LPC).
[0018] Los procedimientos, sistemas y aparatos como se describe en la presente memoria pueden configurarse para procesar la señal de audio como una serie de segmentos. Las longitudes de segmento típicas oscilan entre aproximadamente cinco o diez milisegundos hasta aproximadamente cuarenta o cincuenta milisegundos y los segmentos pueden superponerse (por ejemplo, con segmentos adyacentes que se solapen un 25 % o 50 %) o no superponerse. En un ejemplo particular, la señal de audio se divide en una serie de segmentos o "tramas" no superpuestos, teniendo cada uno una longitud de diez milisegundos. En otro ejemplo particular, cada trama tiene una longitud de veinte milisegundos. Ejemplos de frecuencias de muestreo para la señal de audio incluyen (sin limitación) ocho, doce, dieciséis, 32, 44,1, 48 y 192 kilohercios.
[0019] Las aplicaciones de telecomunicaciones de audio pueden implementarse en una red de conmutación de paquetes. Por ejemplo, las aplicaciones de telecomunicaciones de audio pueden implementarse en una red de Protocolo de Transmisión de Voz por Internet (VoIP). Un paquete puede incluir una o más tramas de la señal de audio codificada y los paquetes con información de audio (por ejemplo, voz) pueden transmitirse desde un primer dispositivo a un segundo dispositivo en la red. Sin embargo, algunos de los paquetes pueden perderse durante la transmisión de los paquetes. Por ejemplo, la pérdida de múltiples paquetes (algunas veces denominada pérdida de paquetes en ráfagas) puede ser una razón para la degradación de la calidad de la voz percibida en un dispositivo receptor.
[0020] Con el fin de paliar la degradación de la calidad de la voz percibida causada por las pérdidas de paquetes en una red VoIP, existen dos tipos de soluciones. La primera solución es un enfoque del ocultamiento de pérdida de paquetes (PLC) basado en el receptor. Puede usarse un procedimiento PLC para enmascarar los efectos de la pérdida de paquetes en las comunicaciones VoIP. Por ejemplo, puede implementarse un procedimiento PLC para crear un paquete sustituto en lugar del que se perdió durante la transmisión. Dicho procedimiento PLC puede intentar crear un paquete lo más similar posible al que se perdió. Los procedimientos PLC basados en el receptor pueden no necesitar recursos adicionales ni ayuda del emisor para crear el paquete sustituto. Sin embargo, cuando se pierdan tramas de voz importantes, un procedimiento PLC puede ser ineficaz para enmascarar los efectos de la pérdida de paquetes.
[0021] La segunda solución es un enfoque resiliente de la pérdida de paquetes basada en el emisor. Dicho enfoque incluye procedimientos de corrección de errores hacia delante (FEC), que pueden incluir el envío de algunos datos adicionales con cada paquete. Los datos adicionales pueden usarse para restaurar los errores causados por la pérdida de datos durante la transmisión. Por ejemplo, los sistemas FEC pueden transmitir tramas de audio redundantes. En otras palabras, el emisor transmite más de una copia (típicamente dos) de una trama de audio. Estas dos tramas pueden denominarse copia principal y copia redundante.
[0022] Aunque los sistemas resilientes de pérdida de paquetes basados en el emisor pueden mejorar la calidad perceptual de la voz decodificada, estos sistemas pueden aumentar también el ancho de banda usado durante la transmisión de la voz. Los sistemas tradicionales FEC también pueden aumentar el retardo de extremo a extremo, lo que puede ser intolerable para las conversaciones en tiempo real. Por ejemplo, los sistemas convencionales basados en el emisor envían la misma trama de voz dos veces en dos períodos de tiempo diferentes. Este enfoque puede duplicar al menos la velocidad de transferencia de datos. Algunos sistemas convencionales pueden usar un códec de tasa de bits baja para la copia redundante con el fin de reducir la velocidad de transferencia de datos. Sin embargo, el uso de un códec de tasa de bits baja puede aumentar la complejidad en el codificador. Además, algunos sistemas convencionales pueden usar el mismo códec de tasa de bits baja tanto para la copia principal de la trama como para la copia redundante de la trama. Aunque este enfoque puede reducir la complejidad en el codificador así como reducir también la velocidad de transferencia de datos, la calidad de la línea base (es decir, la calidad de la voz cuando no se pierda ninguna trama) puede reducirse considerablemente. Además, los sistemas convencionales basados en el emisor funcionan típicamente bajo la suposición de un retardo adicional de al menos un intervalo de trama.
[0023] Los sistemas, procedimientos y aparatos que se describe en el presente documento pueden implementarse para proporcionar un sistema FEC controlado por la fuente y por el canal con el fin de obtener una compensación óptima entre la calidad de la voz, el retardo y la velocidad de transferencia de datos. El sistema fEc puede configurarse de tal manera que no se introduzca ningún retardo adicional. Puede lograrse una mejora de alta calidad de la calidad de la voz bajo aumentos moderados de la velocidad de transferencia de datos. Un sistema FEC como se describe en el presente documento también puede funcionar a cualquier velocidad de transferencia de datos de destino. En un ejemplo, el sistema FEC y una velocidad de transferencia de datos de destino pueden ajustarse de forma adaptativa en base a la condición de un canal de transmisión así como en controles externos. El sistema FEC propuesto también puede implementarse para ser compatible con dispositivos de comunicación heredados (por ejemplo, auriculares heredados).
5
10
15
20
25
30
35
40
45
50
55
60
65
[0024] Para algunos códecs para comunicaciones de audio (por ejemplo, voz), el número total de bits usados para codificar cada trama es una constante predeterminada. Ejemplos de dichos códecs incluyen el códec de voz de Tasa Múltiple Adaptativa (AMR) (por ejemplo, como se describe en la Memoria Descriptiva 3GPP (TS) 26.071, versión 11.0.0, septiembre de 2012, disponible en el Instituto Europeo de Normas de Telecomunicación (ETSI), www-dot- etsi-dot-org, Sophia Antipolis, fR) y el códec de voz AMR de banda ancha (por ejemplo, como se describe en la Recomendación UIT-T G.722.2, julio de 2003, Unión Internacional de Telecomunicaciones, www-dot-itu-dot-int, y/o en la Memoria Descriptiva Técnica 3GPP 26.190 v11.0.0 (Sep. 2012), disponible en el ETSI), en el que el número de bits está determinado por el modo de codificación seleccionado para la trama. En dichos casos, la transmisión de una copia redundante de una trama pasada puede requerir una reducción correspondiente del número de bits disponibles para codificar la información de la señal en la trama actual. Esta reducción puede tener un impacto negativo en la calidad de percepción de la voz decodificada.
[0025] Puede ser deseable implementar un enfoque flexible en el que se transmitan copias redundantes sólo para tramas críticas. Una "trama crítica" es una trama cuya pérdida se espera que tenga un impacto significativo sobre la calidad perceptual de la señal decodificada. Además, puede ser conveniente transmitir dicha copia redundante sólo si se espera que sea mínimo el impacto de cargar la copia redundante en la trama actual. Para un sistema de tasa de bits fija, puede ser deseable determinar una cantidad de bits que vaya a usarse para codificar la trama actual de modo que el total de la cantidad de bits usados para codificar la trama actual y la cantidad de bits usados para la codificación una copia redundante (por ejemplo, una copia parcial) de la trama pasada cumpla una tasa de bits fija de destino T.
[0026] La FIG. 1 es un diagrama de bloques que ilustra un ejemplo de un terminal transmisor 102 y de un terminal receptor 104 que se comunican a través de una red NW10 a través de los canales de transmisión TC10 y RC10. Cada uno de los terminales 102 y 104 puede implementarse para realizar un procedimiento como se describe en el presente documento y/o para incluir un aparato como se describe en el presente documento. Los terminales transmisor y receptor 102, 104 pueden ser cualquier dispositivo que sea capaz de soportar comunicaciones de voz que incluyan teléfonos (por ejemplo, smartphones), ordenadores, equipos de transmisión y recepción de audio, equipos de videoconferencia o similares. Los terminales transmisor y receptor 102, 104 pueden implementarse, por ejemplo, con tecnología de acceso múltiple inalámbrico, tal como la capacidad de Acceso Múltiple por División de Código (CDMA). CDMA es un sistema de modulación y de acceso múltiple basado en comunicaciones de espectro ensanchado.
[0027] El terminal transmisor 102 incluye un codificador de audio AE10 y el terminal receptor 104 incluye un decodificador de audio AD10. El codificador de audio AE10 puede usarse para comprimir información de audio (por ejemplo, voz) a partir de una primera interfaz de usuario UI10 (por ejemplo, una interfaz de micrófono y de audio) extrayendo valores de parámetros de acuerdo con un modelo de generación de voz humana. Un codificador de canal CE10 monta los valores de parámetros en paquetes y un transmisor TX10 transmite los paquetes que incluyen estos valores de parámetros a través de la red NW10, que puede incluir una red por paquetes, como Internet o una intranet corporativa, a través del canal de transmisión TC10. El canal de transmisión TC10 puede ser un canal de transmisión alámbrico y/o inalámbrico y puede considerarse que se extiende hacia un punto de entrada de la red NW10 (por ejemplo, un controlador de estación base), hacia otra entidad dentro de la red NW10 (por ejemplo, un analizador de calidad de canal) y/o hacia un receptor RX10 del terminal receptor 104, dependiendo de cómo y dónde se determina la calidad del canal.
[0028] Un receptor RX10 del terminal receptor 104 se usa para recibir los paquetes de la red NW10 a través de un canal de transmisión. Un decodificador de canal CD10 decodifica los paquetes para obtener los valores de los parámetros, y un decodificador de audio AD10 sintetiza la información de audio usando los valores de los parámetros de los paquetes. El audio sintetizado (por ejemplo, la voz) se proporciona a una segunda interfaz de usuario UI20 (por ejemplo, una etapa de salida de audio y un altavoz) en el terminal receptor 104. Aunque no se muestra, diversas funciones de procesamiento de señales pueden realizarse en el codificador de canal CE10 y en el decodificador de canal CD10 (por ejemplo, incluyendo la codificación convolucional funciones de verificación por redundancia cíclica (CRC), entrelazado) y en el transmisor TX10 y en el receptor RX10 (por ejemplo, modulación digital y demodulación correspondiente), procesamiento de espectro ensanchado, conversión de analógico a digital y digital a analógico).
[0029] Cada parte en una comunicación puede transmitir así como recibir, y cada terminal puede incluir casos de codificador de audio AE10 y de decodificador AD10. El codificador y el decodificador de audio pueden ser dispositivos independientes o integrados en un único dispositivo conocido como "codificador de voz" o "vocoder". Como se muestra en la FIG. 1, los terminales 102, 104 se describen con un codificador de audio AE10 en un terminal de la red NW10 y con un decodificador de audio AD10 en el otro.
[0030] En al menos una configuración de terminal transmisor 102, una señal de audio (por ejemplo, la voz) puede ser la entrada desde la primera interfaz de usuario UI10 hasta el codificador de audio AE10 en tramas, con cada trama dividida adicionalmente en subtramas. Dichos límites arbitrarios de tramas pueden usarse cuando se realice algún procesamiento de bloques. Sin embargo, dicha división de las muestras de audio en tramas (y subtramas)
5
10
15
20
25
30
35
40
45
50
55
60
65
puede omitirse si se implementa el procesamiento continuo en lugar del procesamiento en bloque. En los ejemplos descritos, cada paquete transmitido a través de la red NW10 puede incluir una o más tramas dependiendo de la aplicación específica y de las restricciones generales de diseño.
[0031] El codificador de audio AE10 puede ser un codificador de tasa variable o de tasa fija única. Un codificador de tasa variable puede cambiar de forma dinámica entre múltiples modos de codificador (por ejemplo, diferentes tasas fijas) de trama a trama, dependiendo del contenido de audio (por ejemplo, dependiendo de si la voz está presente y/o de qué tipo de voz está presente). El decodificador de audio AD10 también puede cambiar dinámicamente entre modos de decodificador correspondientes de trama a trama de una manera correspondiente. Puede elegirse un modo particular para cada trama para lograr la tasa de bits más baja disponible mientras se mantiene una calidad de reproducción de señal aceptable en el terminal receptor 104.
[0032] El terminal receptor 104 también puede suministrar la información de estado de canal 120 de vuelta al terminal transmisor 102. En un ejemplo de este tipo, el terminal receptor 104 está configurado para recopilar información relacionada con la calidad del canal de transmisión que transporta los paquetes desde el terminal transmisor 102. El terminal receptor 104 puede usar la información recopilada para estimar la calidad del canal. La información recopilada y/o la estimación de la calidad del canal pueden suministrarse de nuevo luego al terminal transmisor 102 como la información de estado de canal 120. Como se muestra en la FIG. 1, por ejemplo, un caso CE11 del codificador de canal CE10 puede montar la información recopilada y/o la estimación de calidad (por ejemplo, del decodificador de audio AD10) en un paquete para su transmisión a través de un caso TX11 del transmisor TX10 y de un canal de transmisión RC10 al terminal transmisor 102, donde el paquete se recibe por un caso RX11 del receptor RX10 y se desmonta por un caso CD 11 del decodificador de canal CD10, y la información y/o la estimación se suministran al codificador de audio AE10. El terminal transmisor 102 (por ejemplo, el codificador de audio AE10) puede usar la información de estado de canal 120 para adaptar una o más funciones (por ejemplo, un umbral de criticidad) que estén asociadas con un sistema resiliente de pérdida de paquetes basado en el emisor como se describe en el presente documento.
[0033] La FIG. 2A muestra un ejemplo de una implementación NW20 de la red NW10 que incluye estaciones transceptoras base BTS1-BTS3, que se comunican con estaciones móviles a través de canales de transmisión de enlace ascendente y de enlace descendente de radio. La red NW20 también incluye la red central CNW1, que está conectada a la red telefónica conmutada pública RTPC y a Internet INT, y la red central CNW2, que también está conectada a Internet INT. La red NW20 también incluye controladores de estación base BSC1-BSC3 que interconectan las estaciones transceptoras con las redes centrales. La red NW20 puede implementarse para proporcionar comunicaciones de conmutación de paquetes entre dispositivos terminales. La red central CNW1 también puede proporcionar comunicaciones de conmutación de circuitos entre los dispositivos terminales MS1 y MS2 a través de las estaciones transceptoras base BTS1, BTS2 y/o entre dicho dispositivo terminal y un dispositivo terminal en la RTPC.
[0034] La FIG. 2A también muestra ejemplos de diferentes dispositivos terminales que pueden comunicarse entre sí (por ejemplo, a través de un enlace de comunicaciones de conmutación de paquetes) a través de la red NW20: estaciones móviles MS1-MS3; teléfono VP de Voz sobre IP (VoIP); y ordenador CP, que está configurado para ejecutar un programa de telecomunicaciones (por ejemplo, software de Skype de Microsoft Skype Division, LU)). Cualquiera de los dispositivos terminales MS1-MS3, VP y de CP puede implementarse para incluir un caso de terminal transmisor 102 y un caso de terminal receptor 104. Los dispositivos móviles MS1-MS3 se comunican con la red a través de canales inalámbricos de transmisión de enlace ascendente y de enlace descendente de radio. Los terminales VP y CP se comunican con la red a través de canales de transmisión alámbricos (por ejemplo, cable Ethernet) y/o canales de transmisión inalámbricos (por ejemplo, un enlace IEEE 802.11 o "WiFi"). La red NW20 también puede incluir entidades intermedias, tales como pasarelas y/o TRAU (Unidades de Transcodificador y de Adaptador de Tasa).
[0035] El codificador de audio AE10 procesa típicamente la señal de entrada como una serie de segmentos no superpuestos en el tiempo o "tramas", con una nueva trama codificada que se calcula para cada trama. El período de trama es generalmente un período durante el cual puede esperarse que la señal sea localmente estacionaria; ejemplos comunes incluyen veinte milisegundos (equivalentes a 320 muestras a una frecuencia de muestreo de 16 kHz, 256 muestras a una frecuencia de muestreo de 12,8 kHz, o 160 muestras a una frecuencia de muestreo de ocho kHz) y diez milisegundos. También es posible implementar el codificador de audio AE10 para procesar la señal de entrada como una serie de tramas superpuestas.
[0036] La FIG. 2B muestra un diagrama de bloques de una implementación AE20 del codificador de audio AE10 que incluye un codificador de tramas FE10. El codificador de tramas FE10 está configurado para codificar cada una de una secuencia de tramas CF de la señal de entrada ("tramas de audio centrales") para producir una correspondiente de una secuencia de tramas de audio codificadas EF. El codificador de audio AE10 también puede implementarse para realizar tareas adicionales tales como dividir la señal de entrada en las tramas y seleccionar un modo de codificación para el codificador de trama FE10 (por ejemplo, seleccionar una reasignación de una asignación de bits inicial, como se describe en el presente documento con referencia a la tarea T400). La selección de un modo de codificación (por ejemplo, control de tasa) puede incluir realizar la detección de actividad de voz (VAD) y/o clasificar
5
10
15
20
25
30
35
40
45
50
55
60
65
de otra forma el contenido de audio de la trama. En este ejemplo, el codificador de audio AE20 también incluye un detector de actividad de voz VAD10 que está configurado para procesar las tramas de audio centrales CF para producir una señal de detección de actividad de voz VS (por ejemplo, como se describe en 3GPP TS 26.194 v11.0.0, septiembre de 2012, disponible en el ETSI).
[0037] El codificador de trama FE10 se implementa típicamente de acuerdo con un modelo de filtro fuente que codifica cada trama de la señal de voz de entrada como (A) un conjunto de parámetros que describe un filtro y (B) una señal de excitación que se usará en el decodificador para accionar el filtro descrito para producir una reproducción sintetizada de la trama de audio. La envolvente espectral de una señal de voz se caracteriza típicamente por picos que representan resonancias del tracto vocal (por ejemplo, la garganta y la boca) y se denominan formantes. La mayoría de los codificadores de voz codifican al menos esta estructura espectral aproximada como un conjunto de parámetros, tales como coeficientes de filtro. La señal residual restante puede modelarse como una fuente (por ejemplo, como se produce por las cuerdas vocales) que accione el filtro para producir la señal de voz y se caracteriza típicamente por su intensidad y tono.
[0038] El codificador de tramas FE10 se implementa típicamente para realizar un sistema basado en el libro de códigos (por ejemplo, predicción lineal de excitación de libro de códigos o CELP) y/o un sistema de interpolación de forma de onda prototipo (PWI) (por ejemplo, período de tono prototipo o PPP), aunque el codificador de tramas FE10 también puede implementarse para realizar otros sistemas (por ejemplo, codificación de voz sinusoidal y/o codificación basada en la transformada). Ejemplos particulares de sistemas de codificación que pueden usarse por el codificador de tramas FE10 para producir las tramas EF codificadas incluyen, sin limitación, G.726, G.728, G.729A, AMR, AMR-WB, AMR-Wb + (por ejemplo, como se describe en 3GPP TS 26.290 v11.0.0, septiembre de 2012 (disponible en ETSI)), VMR-WB (por ejemplo, como se describe en el documento Third Generation Partnership Project 2 (3GPP2) C.S0052- A v1.0, abril de 2005 (disponible en línea en www-dot-3gpp2-dot-org)), el códec de tasa variable mejorada (EVRC), como se describe en el documento 3GPP2 C.S0014-E v1.0, diciembre de 2011 (disponible en línea en www-dot-3gpp2-dot-org)), el códec de voz del Vocoder de modo seleccionable (como se describe en el documento 3GPP2 C.S0030-0, v3.0, enero de 2004 (disponible en línea en www-dot-3gpp2-dot-org)) y el códec de Servicio de Voz Mejorado (EVS, por ejemplo, como se describe en 3GPP TR 22.813 v10.0.0 (marzo de 2010), disponible en el ETSI).
[0039] La FIG. 3 muestra un diagrama de bloques de una implementación básica FE20 del codificador de trama FE10 que incluye un módulo de preprocesamiento PP10, un módulo de análisis de codificación de predicción lineal (LPC) LA10, un módulo de búsqueda de tono de ciclo abierto OL10, un módulo de búsqueda de libro de códigos adaptativo (ACB) AS10, un módulo de búsqueda de libro de códigos fijo (FCB) FS10 y un módulo de cuantificación de vector de ganancia (VQ) GV10. El módulo de preprocesamiento PP10 puede implementarse, por ejemplo, como se describe en la sección 5.1 de 3GPP TS 26.190 v11.0.0. En uno de dichos ejemplos, el módulo de preprocesamiento PP10 se implementa para realizar un muestreo descendente de la trama de audio central (por ejemplo, de 16 kHz a 12,8 kHz), el filtrado de paso alto de la trama muestreada (por ejemplo, con una frecuencia de corte de 50 Hz) y el preénfasis de la trama filtrada (por ejemplo, usando un filtro de paso alto de primer orden).
[0040] En este ejemplo, un módulo de análisis de codificación de predicción lineal (LPC) LA10 codifica la envolvente espectral de la trama de audio central como un conjunto de coeficientes de predicción lineal (LP) (por ejemplo, coeficientes de un filtro de todos los polos 1/A (z)). En un ejemplo, el módulo de análisis LPC LA10 está configurado para calcular un conjunto de dieciséis coeficientes de filtro LP para caracterizar la estructura formante de cada trama de 20 milisegundos. El módulo de análisis LA10 puede implementarse, por ejemplo, como se describe en la sección 5.2 de 3GPP TS 26.190 v11.0.0.
[0041] El módulo de análisis LA10 puede configurarse para analizar las muestras de cada trama directamente, o las muestras pueden ponderarse primero de acuerdo con una función de ventanas (por ejemplo, una ventana de Hamming). El análisis también puede realizarse sobre una ventana que sea más grande que la trama, como una ventana de 30 ms. Esta ventana puede ser simétrica (por ejemplo, 5-20-5, de tal manera que incluya los 5 milisegundos inmediatamente antes y después de la trama de 20 milisegundos) o asimétrica (por ejemplo, 10-20, de tal manera que incluya los últimos 10 milisegundos de la trama anterior). Un módulo de análisis LPC está configurado típicamente para calcular los coeficientes de filtro LP usando una recursión Levinson-Durbin o el algoritmo Leroux-Gueguen. Aunque la codificación LPC es adecuada para la voz, también puede usarse para codificar señales de audio genéricas (por ejemplo, incluyendo la no voz, tal como la música). En otra implementación, el módulo de análisis puede configurarse para calcular un conjunto de coeficientes cepstrales para cada trama en lugar de un conjunto de coeficientes de filtro LP.
[0042] Los coeficientes de filtro de predicción lineal son típicamente difíciles de cuantificar de forma eficiente y se asignan usualmente a otra representación, tal como pares espectrales de línea (LSP) o frecuencias espectrales de línea (LSF), o pares espectrales de impedancia (ISP) o frecuencias espectrales de impedancia (ISF) para la codificación de cuantificación y/o entropía. En un ejemplo, el módulo de análisis LA10 transforma el conjunto de coeficientes de filtro LP en un conjunto correspondientes de ISF. Otras representaciones uno a uno de los coeficientes de filtro LP incluyen coeficientes de parcor y valores de relación de área de registro. Típicamente, una transformada entre un conjunto de coeficientes de filtro LP y un conjunto correspondiente de LSF, LSP, ISF o ISP es
5
10
15
20
25
30
35
40
45
50
55
60
65
reversible, pero los modos de realización también incluyen implementaciones del módulo de análisis en las que la transformada no es reversible sin error.
[0043] El módulo de análisis LA10 está configurado para cuantificar el conjunto de ISF (u otra representación de coeficiente o LSF) y el codificador de trama FE20 está configurado para emitir el resultado de esta cuantificación como el índice LPC XL. Dicho cuantificador incluye típicamente un cuantificador vectorial que codifica el vector de entrada como un índice a una entrada de vector correspondiente en una tabla o libro de códigos.
[0044] El codificador de trama FE20 también incluye un módulo opcional de búsqueda de tono de bucle abierto OL10 que puede usarse para simplificar el análisis de tono y reducir el alcance de la búsqueda de tono de bucle cerrado en el módulo de búsqueda de libro de códigos adaptativo AS10. El módulo OL10 puede implementarse para filtrar la señal de entrada a través de un filtro de ponderación que esté basado en los coeficientes del filtro LP no cuantificados, para diezmar la señal ponderada por dos y para producir una estimación de tono una o dos veces por trama (dependiendo de la tasa actual). El módulo OL10 puede implementarse, por ejemplo, como se describe en la sección 5.4 de 3GPP TS 26.190 v11.0.0.
[0045] El módulo de búsqueda de libro de códigos adaptativo (ACB) AS10 está configurado para buscar el libro de códigos adaptativo (en base a la excitación pasada y también llamado "libro de códigos de tono") para producir el retardo y la ganancia del filtro de paso. El módulo AS10 puede implementarse para realizar la búsqueda de tono de bucle cerrado alrededor de las estimaciones de tono de bucle abierto en una base de subtramas en una señal de destino (como se obtiene, por ejemplo, filtrando el LP residual a través de un filtro de síntesis ponderado en base a los coeficientes de filtro LP cuantificados y no cuantificados) y luego calcular el vector de código adaptativo mediante la interpolación de la excitación pasada en el retardo de tono fraccional indicado y calcular la ganancia de ACB. El módulo AS10 también puede implementarse para usar el LP residual para extender la memoria intermedia de excitación pasada para simplificar la búsqueda de tono de bucle cerrado (especialmente para retrasos menores que el tamaño de la subtrama de 64 muestras). El módulo AS10 puede implementarse para producir una ganancia de ACB (por ejemplo, para cada subtrama) y un índice cuantificado que indique el retardo de tono de la primera subtrama (o los retrasos de tono de las primera y tercera subtramas, dependiendo de la tasa actual) y retardos de tono relativos de las otras subtramas. El módulo AS10 puede implementarse, por ejemplo, como se describe en la sección 5.7 de 3GPP TS 26.190 v11.0.0.
[0046] El módulo de búsqueda de libro de códigos fijo (FCB) FS10 está configurado para producir un índice que indique un vector del libro de códigos fijo (también llamado "libro de códigos de innovación", "libro de códigos innovador", "libro de códigos estocástico" o "libro de códigos algebraico"), que represente la porción de la excitación que no esté modelada por el vector de código adaptativo. El módulo FS10 puede implementarse para producir el índice de libro de códigos como una contraseña que contenga toda la información necesaria para reproducir el vector FCB (por ejemplo, representa las posiciones y los signos del pulso), de tal manera que no se necesita un libro de códigos. El módulo FS10 puede implementarse, por ejemplo, como se describe en la sección 5.8 de 3GPP TS 26.190 v11.0.0.
[0047] El módulo de cuantificación de vector de ganancia GV10 está configurado para cuantificar las ganancias de FCB y ACB, que pueden incluir ganancias para cada subtrama. El módulo GV10 puede implementarse, por ejemplo, como se describe en la sección 5.9 de 3GPP TS 26.190 v11.0.0
[0048] Como alternativa a un enfoque basado en el libro de códigos, un enfoque basado en la transformada puede usarse para codificar la señal residual LPC. Por ejemplo, una transformada discreta de coseno modificada (MDCT) puede usarse para codificar el residuo en parámetros que incluyan un conjunto de coeficientes MDCT, como en el códec de banda superancha de Calliope (QuALCOMM Inc., San Diego, cA) y la opción TCX del Códec AMR-WB. En otro ejemplo, se usa un enfoque basado en la transformada para codificar una señal de audio sin realizar un análisis LPC.
[0049] Puede ser deseable realizar una comunicación de voz en tiempo real entre un terminal A (por ejemplo, un equipo de usuario transmisor o UE, tal como el terminal 102) y un terminal B (por ejemplo, un UE receptor, tal como el terminal 104) sobre una o más redes de conmutación de paquetes. Las soluciones anteriores, como AMR y AMR- WB, se adaptan a las malas condiciones del canal reduciendo la tasa de bits (también llamada "adaptación de tasa"). Para los códecs de próxima generación para su uso en la VoIP (Voz sobre Protocolo de Internet), la reducción de la tasa de bits puede no ayudar a reducir significativamente la congestión en las redes (por ejemplo, debido a los encabezados del RTP, donde el RTP es el Protocolo de Transporte en Tiempo Real como se describe, por ejemplo, en RFC 3550, Norma 64 (julio de 2003), Internet Engineering Task Force (IETF)). Un procedimiento como el descrito en el presente documento puede impartir una mayor solidez al vocoder y/o resolver problemas de rendimiento del códec debido al deterioro del canal.
[0050] La calidad del canal de transmisión desde el terminal transmisor A al terminal receptor B puede estimarse por una o más entidades en la red (por ejemplo, por una estación transceptora base en el extremo de la red del canal de radio de enlace ascendente, por un analizador de tráfico en la red central, etc.) y/o por el terminal receptor B (por ejemplo, analizando la tasa de pérdida de paquetes). Puede ser deseable recibir el terminal B y/o una o más de
5
10
15
20
25
30
35
40
45
50
55
60
65
dichas entidades para transportar dicha información de estado de canal 120 de vuelta al UE transmisor usando mensajería dentro de banda, a través de señales de control (por ejemplo, paquetes de control que usen el Protocolo de Control RTP (RTCP) como se describe en, por ejemplo, RFC 1889 (enero de 1996, IETF)) y/o a través de otro mecanismo de retroalimentación de calidad de servicio (QoS). El terminal transmisor A puede implementarse para aplicar dicha información conmutando a un modo de funcionamiento (es decir, un modo "compatible con el canal") que esté optimizado para un buen rendimiento bajo canales dañados. Además, el UE transmisor puede configurarse para seleccionar un modo de funcionamiento compatible con el canal en el tiempo de establecimiento de llamada, si pueden anticiparse malas condiciones del canal (por ejemplo, redes no gestionadas).
[0051] Un vocoder puede implementarse para conmutar a un "modo robusto de deterioro del canal" en respuesta a una indicación de malas condiciones del canal (por ejemplo, errores de paquetes, alta fluctuación, etc.). En el "modo robusto de deterioro del canal", el códec de voz puede elegir retransmitir ciertas tramas críticas de la señal de entrada parcial o totalmente. Por ejemplo, un codificador de voz que funcione en un "modo robusto de deterioro del canal" puede configurarse para transmitir una copia redundante de una trama si la criticidad de la trama excede cierto umbral predeterminado. La criticidad de una trama específica puede determinarse como una función del impacto perceptivo de la pérdida de esa trama en la voz decodificada, como se estima en el codificador. Un códec compatible con canales puede configurarse para conmutar entre un modo robusto de deterioro del canal y un modo de funcionamiento normal (es decir, en el que no se envíen copias redundantes) en respuesta a una indicación del estado del canal.
[0052] Pueden implementarse sistemas, procedimientos y aparatos como se describe en el presente documento para establecer un umbral para la decisión de la retransmisión en función de una estimación de la calidad del canal. Este umbral puede usarse, por ejemplo, para determinar si una trama es crítica con respecto a la codificación de una trama posterior de la señal de audio. Para canales muy buenos, el umbral puede establecerse muy alto. A medición que la calidad del canal se degrada, el umbral puede reducirse de modo que se consideren críticas más tramas.
[0053] La FIG. 4A muestra un diagrama de flujo para un procedimiento de procesamiento de una señal de audio M100 de acuerdo con una configuración general que incluye las tareas T100, T200, T300 y T350. La tarea T100 calcula una estimación de la dependencia de la codificación de una segunda trama de la señal de audio (la trama "dependiente") en una primera trama (la trama "modelo", potencialmente una trama "crítica") que preceda a la segunda trama en la señal de audio. La tarea T200 calcula un valor umbral, en base a la información relacionada con un estado de un canal de transmisión. La tarea T300 compara la estimación calculada con el valor umbral calculado. En base a un resultado de la comparación en la tarea T300, la tarea T350 decide transmitir una copia redundante de la primera trama. La decisión de transmitir la trama redundante puede incluir indicar que la primera trama es una trama crítica. En algunos casos, el procedimiento M100 puede implementarse de tal manera que no se requiera ningún retardo adicional de codificación para determinar si se retransmite o no una trama.
[0054] Puede ser deseable reducir la probabilidad de que la trama dependiente también será una trama crítica (es decir, crítica para otra trama que sea posterior a la misma). Típicamente, esta probabilidad es más alta para la trama que sigue inmediatamente a la trama modelo y luego disminuye rápidamente para las tramas posteriores. Para la voz, es típico que la trama de inicio en una secuencia de habla sea crítica y que la trama que lo siga inmediatamente también sea crítica (por ejemplo, para cubrir el caso cuando se pierda la trama de inicio). Sin embargo, también es posible que otra trama en una secuencia de habla sea crítica (por ejemplo, para un caso en el que se desplace el retardo de tono).
[0055] Un desplazamiento de trama k puede usarse para indicar la distancia entre la trama modelo y la trama dependiente. En un ejemplo de este tipo, el valor de desplazamiento de trama k es la diferencia en el número de trama entre la trama modelo n y la trama dependiente (n + k) (por ejemplo, uno más que el número de tramas intermedias). La FIG. 5C muestra un ejemplo típico en el que el valor de k es tres. En otro ejemplo, el valor de k es cuatro. Otros valores posibles incluyen uno, dos, tres, cinco y enteros mayores que cinco.
[0056] El procedimiento M100 puede implementarse de tal manera que el desplazamiento k sea fijo (por ejemplo, durante la implementación del sistema o durante el establecimiento de llamada). El valor de k puede seleccionarse de acuerdo con la longitud de una trama (por ejemplo, en milisegundos) en la señal original de dominio de tiempo y con un retardo máximo permitido. Por ejemplo, el valor de k puede estar limitado por un valor máximo permitido (por ejemplo, para limitar el retardo de la trama). Puede ser deseable que el retardo máximo permitido tenga un valor de ochenta o cien milisegundos. En dicho caso, k puede tener un valor máximo de cuatro o cinco para un sistema que use tramas de veinte milisegundos, o un valor máximo de ocho, nueve o diez para un sistema que use tramas de diez milisegundos.
[0057] El valor de desplazamiento k también puede seleccionarse y/o actualizarse durante una llamada de acuerdo con las condiciones de canal (por ejemplo, como se indica por la retroalimentación de un receptor). Por ejemplo, puede ser deseable usar un valor más alto de k en un entorno que esté causando una pérdida frecuente de tramas consecutivas (por ejemplo, debido a desvanecimientos largos).
[0058] La tarea T100 puede implementarse para calcular la estimación de la dependencia de la codificación de la
5
10
15
20
25
30
35
40
45
50
55
60
trama dependiente en la trama modelo (también denominada "medición de criticidad") en base a uno o más criterios que vayan desde caracterizaciones generales del modelo y/o tramas dependientes a evaluaciones de impacto de pérdidas específicas. Dicha estimación puede basarse en información dentro del modelo y/o tramas dependientes y también puede basarse en información de una o más tramas que sean adyacentes a la trama modelo en la señal de entrada.
[0059] Una trama crítica puede ser una trama que, cuando se pierda, pueda causar una degradación significativa de la calidad. Las diferentes tramas modelo pueden tener diferentes niveles de criticidad. Por ejemplo, para dos tramas modelo n1 y n2, si la trama (n1 + 1) (es decir, la trama junto a la trama n1) es altamente predecible desde la trama n1 y la trama (n2+1) (es decir, la trama junto a la trama n2), no depende por completo de la trama n2, entonces la trama n1 puede ser más crítica que la trama n2, porque perder la trama n1 puede causar degradación de la calidad en más de una trama.
[0060] La tarea T100 puede implementarse para calcular la estimación de la dependencia de la codificación en base a una indicación del tipo de codificación de la trama modelo (es decir, el proceso de codificación que vaya a usarse para codificar la trama) y posiblemente de la trama dependiente y/o de cada una de una o más tramas adyacentes a la trama modelo. Los ejemplos de dicho tipo de codificación pueden incluir predicción lineal excitada por código (CELP), predicción lineal excitada por ruido (NELP), interpolación de forma de onda prototipo (PWI) o período de tono prototipo (PPP), etc. Bajo este criterio, por ejemplo, una trama modelo CELP puede considerarse más crítica que una trama modelo NELP.
[0061] Adicionalmente o de manera alternativa, la tarea T100 puede implementarse para calcular la estimación de la dependencia de la codificación en base a un modo de voz de la trama modelo (es decir, una clasificación del contenido de voz de la trama) y, posiblemente, de la trama dependiente y/o de cada una de una o más tramas adyacentes a la trama modelo. Los ejemplos del modo de voz pueden incluir voz, no voz, silencio y transitorio. Una clasificación de "voz" puede dividirse además en inicio y estacionario. Una clasificación de transitorio puede dividirse además en transitoria y no transitoria. Bajo este criterio, por ejemplo, una trama de inicio de voz (una trama inicial en una secuencia de habla) puede ser más crítica que una trama sonora estacionaria, ya que la codificación de tramas posteriores en la secuencia de habla puede depender fuertemente de la información en la trama de inicio. En un ejemplo, la tarea T100 se implementa para calcular la estimación de la dependencia de la codificación para indicar un alto grado de dependencia en respuesta a una indicación de que la trama modelo es una trama de inicio de voz y la trama dependiente es una trama sonora estacionaria.
[0062] Adicional o de manera alternativa, la tarea T100 puede configurarse para calcular la estimación de la dependencia de la codificación en base a una o más propiedades de la trama modelo (y posiblemente de la trama dependiente y/o de cada una de una o más tramas adyacentes a la trama modelo). Por ejemplo, si los valores de algunos parámetros importantes para una trama modelo difieren significativamente (por ejemplo, más que cierto umbral predeterminado) de los valores correspondientes para la trama anterior, entonces la trama modelo puede ser una trama crítica ya que puede no predecirse fácilmente a partir de la trama que la preceda, y la pérdida de la trama modelo puede afectar negativamente a las tramas posteriores que sean más similares a la trama modelo que a la trama anterior.
[0063] Un ejemplo de dicha propiedad es una ganancia de libro de códigos adaptativo (ACB). Un valor de ganancia de ACB bajo para la trama modelo puede indicar que la trama difiere significativamente de la trama que la precede, mientras que un valor de ganancia de ACB alto para la trama dependiente puede indicar que la trama depende en gran medición de la trama modelo. La FIG. 4B muestra un diagrama de flujo de una implementación M110 del procedimiento M100 que incluye las tareas T50 y T60. La tarea T50 usa información de la trama modelo (por ejemplo, una señal de excitación) para generar un vector de código adaptativo para la trama dependiente y la tarea T60 calcula un valor de ganancia de ACB para una versión codificada de la trama dependiente. En este ejemplo, la tarea T100 se implementa para calcular la estimación de la dependencia de la codificación en base a al menos el valor de ganancia de ACB calculado.
[0064] Otro ejemplo de dicha propiedad es una SNR ponderada perceptualmente (relación de señal-ruido), que puede expresarse en este caso como
donde L es la longitud de la trama en las muestras, c es la señal ponderada perceptualmente obtenida al filtrar la versión decodificada de la trama modelo n con un filtro de ponderación perceptual W(z) y e es un error ponderado perceptualmente. El error e puede calcularse, por ejemplo, como una diferencia entre (A) una versión decodificada filtrada W(z) de la trama modelo n y (B) una versión ocultada por error filtrada W(z) de la trama modelo n (es decir, suponiendo que la trama no está disponible en el decodificador). La versión ocultada por error puede calcularse en
5
10
15
20
25
30
35
40
45
50
55
base a la información de tramas anteriores de acuerdo con un algoritmo de ocultación de errores de trama. Por ejemplo, la versión ocultada por error puede calcularse de acuerdo con el procedimiento descrito en 3GPP TS 26.091, v.11.0.0 (septiembre de 2012, "Error concealment of lost frames", disponible en el ETSI). En un ejemplo, W(z) = A (z/y)H(z), donde
a1 a ap son los coeficientes de filtro LPC para la trama modelo n, y = 0,92 y H(z) = 1/(1-0,68z-1). En un ejemplo alternativo, el error e se calcula aplicando el filtro W(z) a la diferencia entre las versiones decodificada y ocultada por error.
[0065] Adicionalmente o de manera alternativa, la tarea T100 puede configurarse para calcular la estimación de la dependencia de la codificación como una estimación de un impacto de la pérdida de la trama modelo en la calidad de codificación de una o más tramas posteriores (por ejemplo, la trama dependiente). Por ejemplo, la medición de criticidad puede basarse en información a partir de una versión codificada de la trama dependiente y posiblemente de una o más tramas posteriores a la trama modelo (por ejemplo, la ganancia del libro de códigos adaptativo de la trama modelo y/o de una o más de las tramas posteriores). Adicionalmente o de manera alternativa, dicha medición puede basarse en información de una versión decodificada de la trama dependiente y posiblemente de cada una de una o más tramas posteriores a la trama modelo (por ejemplo, una SNR ponderada perceptualmente de la versión decodificada), donde la trama dependiente y/u otra trama posterior se codificó sin usar información de la trama modelo.
[0066] Un ejemplo de dicha medición para una trama dependiente (n+k) relativa a la trama modelo n puede expresarse como
donde L es la longitud de la trama en las muestras, c es la señal ponderada perceptualmente obtenida al filtrar la versión decodificada de la trama dependiente (n+k) con un filtro de ponderación perceptual W(z) y e es un error ponderado perceptualmente. El error e puede calcularse en este caso, por ejemplo, como una diferencia entre (A) una versión decodificada filtrada W(z) de la trama dependiente (n+k) sin pérdida de la trama modelo n y (B) a versión decodificada filtrada W(z) de la trama (n+k) asumiendo una versión ocultada por error de la trama modelo n. El filtro W(z) puede calcularse como se describió anteriormente usando los coeficientes de filtro LPC para la trama dependiente (n+k). En un ejemplo alternativo, el error e se calcula aplicando el filtro W(z) a la diferencia entre las versiones normalmente decodificadas y las pérdidas asumidas decodificadas de la trama dependiente (n+k).
[0067] La información que la tarea T200 usa para calcular el umbral puede incluir una o más de las siguientes mediciones, que pueden actualizarse para cada uno de una serie de intervalos de tiempo: tasa de pérdida de paquetes, fracción de pérdida de paquetes, número de paquetes esperados, tasa de pérdida por segundo, recuento de paquetes recibidos, validez de estimación de pérdida (p. ej., una medición de ponderación en base a una medición del tamaño de muestra, tal como la cantidad de paquetes esperados para el intervalo), rendimiento aparente y fluctuación. Como se indicó anteriormente, un receptor y/u otra entidad en la red (por ejemplo, a lo largo del canal de transmisión) puede configurarse para transportar dicha información de estado de canal 120 de vuelta al UE transmisor usando mensajería en banda, a través de señales de control (la mensajería RTCP es un ejemplo de uno de dichos procedimientos de señalización de control) y/o a través de otro mecanismo de retroalimentación de calidad de servicio (QoS). Ejemplos de información que pueden proporcionarse mediante mensajes RTCP (Protocolo de Control de Transporte en Tiempo Real, como se define en, por ejemplo, la memoria descriptiva IETF RFC 3550) incluyen recuentos de octetos transmitidos, recuentos de paquetes transmitidos, recuentos de paquetes esperados, número y/o fracción de pérdida de paquetes, fluctuaciones (por ejemplo, variación en el retardo) y retardo de ida y vuelta. La FIG. 6A muestra un diagrama de flujo de una implementación M120 del procedimiento M100 que incluye la tarea T70, que recibe información de estado de canal como se describe en el presente documento.
[0068] La tarea T200 también puede configurarse para calcular más de un umbral, en base a la información 120 relacionada con un estado del canal de transmisión. En dicho caso, la tarea de decisión T300 puede configurarse para usar información a partir de la trama (y/o una o más de las tramas adyacentes) para seleccionar el umbral actualizado apropiado. Por ejemplo, puede ser deseable usar un umbral de criticidad para determinar si se
5
10
15
20
25
30
35
40
45
50
55
60
65
retransmite una trama que se determine que contiene voz, y otro umbral de criticidad para determinar si se retransmite una trama que se determine que contiene ruido. En otro ejemplo, se usan umbrales diferentes para tramas de voz transitorias (por ejemplo, de inicio) y estacionarias y/o para las tramas de voz o de no voz. Para un caso en el que se use más de un umbral de criticidad, la tarea T200 puede configurarse para seleccionar, entre dos o más mediciones de criticidad, una medición de criticidad que corresponda al umbral que vaya a usarse para la trama modelo.
[0069] T300 está configurado para comparar la estimación calculada con el valor umbral calculado. La tarea T350 decide si debe transmitirse una copia redundante de la trama modelo, en base a un resultado de la comparación. Por ejemplo, la tarea T300 puede implementarse para decidir retransmitir cuando la estimación calculada exceda (de manera alternativa, no es menor que) el valor umbral calculado.
[0070] El procedimiento M100 puede implementarse de tal manera que la tarea T350 (y posiblemente las tareas T100 y/o T200) se realicen solo cuando la trama dependiente sea una trama de voz activa. De manera alternativa, el procedimiento M100 puede implementarse para considerar las tramas de no voz como tramas potencialmente críticas. Típicamente, en las conversaciones bidireccionales, cada parte habla por algún tiempo durante el que un sistema de comunicación transmite la voz de la parte (por ejemplo, menos de la mitad del tiempo) y hace pausas en otros momentos durante los que el sistema de comunicación transmite silencio o ruido de fondo. La transmisión infrecuente o la transmisión discontinua (DTX) durante el silencio (o ruido de fondo) tiene poco impacto en la calidad perceptual de la conversación pero proporciona los beneficios de reducir la interferencia entre células (por lo tanto, de aumentar potencialmente la capacidad del sistema) y de conservar la alimentación de la batería de una unidad móvil usada para la conversación.
[0071] Un sistema DTX típico se realiza mediante un codificador de voz que usa la detección de actividad de voz (VAD). Usando la VAD, el codificador puede distinguir la voz activa del ruido de fondo. El codificador codifica cada segmento de voz activo (típicamente 20 ms de longitud) con un paquete de tasa de bits de destino para su transmisión y representa segmentos de ruido de fondo críticos (de nuevo típicamente de 20 ms de longitud) con un paquete de tamaño relativamente pequeño. Este paquete pequeño puede ser un descriptor de silencio (SID) que indique silencio. Un segmento de ruido de fondo crítico podría ser el segmento de ruido de fondo que siga inmediatamente a una secuencia de habla o un segmento de ruido de fondo cuyas características sean significativamente diferentes de sus segmentos de ruido anteriores. Otros tipos de segmentos de ruido de fondo (o segmentos de ruido de fondo no críticos) pueden indicarse con cero bits, o borrarse, o no transmitirse, o suprimirse de la transmisión. Cuando dicho patrón de paquetes de salida (es decir, segmento(s) activo (s), segmento(s) de ruido de fondo crítico, segmento(s) de ruido de fondo no crítico(s)) depende puramente de la entrada del codificador de voz, o de la fuente, dicho sistema DTX se llama sistema DTX controlado por la fuente.
[0072] Las FIGS. 5A y 5B muestran ejemplos de relaciones entre la información de estado de canal, el valor de umbral de criticidad que está basado en esa información y la probabilidad resultante de que se tome una decisión de retransmisión. En el ejemplo de la FIG. 5B, la calidad informada del canal es inferior que la calidad informada del canal en la FIG. 5A. Por consiguiente, el valor umbral de criticidad en la FIG. 5B es menos selectivo que el valor umbral de criticidad en la FIG. 5A y la probabilidad resultante de que se tome una decisión de retransmisión es más alta. Si la calidad informada del canal es demasiado baja, la probabilidad resultante de que se tome la decisión de retransmitir puede ser demasiado alta.
[0073] Puede ser deseable implementar el procedimiento M100 para limitar el número o la proporción de tramas que pueda retransmitirse. Por ejemplo, puede ser deseable equilibrar la mejora del rendimiento en malas condiciones del canal con la preservación de la calidad de codificación de voz nativa y/o detener la pérdida de capacidad debido a retransmisiones que puedan desencadenarse debido a una determinación de criticidad demasiado inclusiva.
[0074] Un enfoque para limitar la frecuencia de retransmisión es implementar la tarea T200 de tal manera que el valor umbral está sometido a un valor límite bajo (es decir, un valor límite bajo o un valor mínimo) que establece un límite en cuántas tramas pueden retransmitirse. Por ejemplo, la tarea T200 puede implementarse para imponer un valor mínimo en el valor umbral calculado. La FIG. 6B muestra un diagrama de flujo de dicha implementación T210 de la tarea T200 que incluye las subtareas T210a, T210b y T210c. La tarea T210a calcula un valor de umbral candidato como se describe en el presente documento (es decir, en base a la información de estado de canal). La tarea T210b compara el valor de umbral candidato calculado con un valor límite (por ejemplo, un valor límite bajo). En base a un resultado de la comparación, la tarea T210c selecciona uno entre (A) el valor umbral candidato calculado y (B) el valor límite, de tal manera que la tarea T210 produce el valor seleccionado como el valor umbral calculado. Por ejemplo, la tarea T210c puede implementarse para seleccionar el valor candidato calculado si es mayor que (de manera alternativa, no menor que) el valor límite y para seleccionar el valor límite de otra forma. De esta manera, la tarea T210 puede configurarse para acortar el valor umbral calculado al valor límite. La tarea T210 también puede configurarse de tal manera que, cuando la comparación falla (por ejemplo, cuando se produce el acortamiento), la tarea T210 indica dicha condición a otro módulo (por ejemplo, para registrar la condición, informar la condición a la estación base y/o realizar otra acción correctiva).
[0075] Por supuesto, también es posible implementar la tarea T100 de manera alternativa de tal manera que el valor
5
10
15
20
25
30
35
40
45
50
55
60
65
calculado de la medición de criticidad es inversamente proporcional a la criticidad. En dicho caso, la tarea T350 puede configurarse para decidir retransmitir la trama cuando la medición de criticidad esté por debajo (de manera alternativa, no supera) el valor umbral calculado, y la tarea T210 puede configurarse para comparar (y posiblemente acortar) el valor umbral calculado con un valor límite alto (es decir, un valor límite alto o un valor máximo).
[0076] La FIG. 7A muestra un diagrama de flujo de una implementación M200 del procedimiento M100 que incluye una tarea T400. La tarea T400 produce una copia redundante de la trama modelo. La copia redundante típicamente tiene menos bits que la copia principal de la trama modelo en la señal codificada (es decir, la copia de la trama modelo como se codifica normalmente) y puede usarse por un decodificador para realizar una operación de corrección de errores hacia delante (FEC) para corregir los errores resultantes de la pérdida parcial o completa de la copia principal. La tarea T400 puede implementarse para producir la copia redundante antes de la tarea de decisión T350 o, de manera alternativa, en respuesta a una decisión de la tarea T350 de transmitir una copia redundante.
[0077] Típicamente, es deseable que la copia redundante proporcione una buena referencia (por ejemplo, un buen libro de códigos adaptativo) que pueda usarse para la decodificación de las tramas posteriores. La copia redundante de la trama modelo puede incluir algunos o todos los parámetros de la copia principal de la trama modelo. La tarea T400 puede implementarse para producir la copia redundante como una versión reducida de una copia principal de la trama modelo. Por ejemplo, la copia principal puede ser una versión codificada de la trama modelo que incluya componentes tales como información de envolvente de frecuencia (por ejemplo, coeficientes LPC o MDCT) y/o información de envolvente temporal (por ejemplo, índice de libro de códigos fijo, ganancia de libro de códigos fijo, ganancia de libro de códigos adaptativo, retardo de tono y ganancia de tono para un códec CELP; parámetros prototipo y/o información de tono para un códec PWI o PPP). La tarea T400 puede implementarse para producir la copia redundante para incluir una copia de parte o de la totalidad de cada uno de uno o más de dichos componentes. Por ejemplo, la tarea T400 puede implementarse para producir la copia redundante para incluir uno o más libros de códigos que identifiquen parámetros de filtro LPC cuantificados y/o parámetros de envolvente temporal cuantificados (por ejemplo, señal de excitación).
[0078] En dichos casos, la tarea T400 puede implementarse para montar la copia redundante usando (por ejemplo, duplicando y/o condensando) componentes de una copia principal de la trama modelo que ya se hayan calculado. La tarea T400 puede implementarse para producir una copia redundante de tal manera que satisfaga una restricción de bit o de conformidad con una estructura asociada con una restricción de la tasa. Dicha estructura puede incluir un número especificado de bits, para la trama o para cada una de una o más subtramas de la trama, para cada uno de una pluralidad de parámetros, tales como los mencionados anteriormente (es decir, información de filtro LPC, retardo de tono, índice/ganancia de libro de códigos fijo/adaptativo, etc.).
[0079] Adicionalmente o de manera alternativa, la tarea T400 puede implementarse para producir parte o la totalidad de la copia redundante codificando la trama modelo usando un procedimiento de codificación que sea diferente del usado para producir la copia principal de la trama modelo. En dicho caso, este procedimiento de codificación diferente tendrá una tasa menor que el procedimiento usado para producir la copia principal de la trama modelo (por ejemplo, usando un análisis LPC de orden inferior, usando un códec de banda estrecha en lugar de un códec de banda ancha, etc.). Dicho procedimiento de codificación diferente puede ser una tasa de bits diferente y/o un sistema de codificación diferente (por ejemplo, CELP para la copia principal y PPP o PWI para la copia redundante). En un ejemplo, la tarea T400 se implementa para proporcionar la trama modelo y la asignación indicada Nm (por ejemplo, como un número de bits o como una tasa de bits) a un codificador de trama (por ejemplo, el codificador de trama FE20).
[0080] El tamaño de la copia redundante puede indicarse como un número de bits o como una tasa de bits y puede ser fijo o ajustable. En un ejemplo, el tamaño de la copia redundante se indica como parte de una redistribución de una asignación de bit inicial T para una trama posterior a la trama modelo en la señal de audio y sobre la cual la copia redundante debe transportarse (la trama "portadora"). La trama portadora puede ser la misma que la trama dependiente o el procedimiento M200 puede implementarse de tal manera que las tramas dependiente y portadora pueden ser diferentes. Ejemplos particulares para el valor de T incluyen 253 bits (que corresponde, por ejemplo, a una tasa de bits de 12,65 kbps (kilobits por segundo) y a una longitud de trama de veinte milisegundos) y 192 bits (que corresponde, por ejemplo, a una tasa de bits de 9.6 kbps y a una longitud de trama de veinte milisegundos).
[0081] En dicho caso, una distribución de reasignación seleccionada Nm indica una división de una asignación de bit inicial T para la trama portadora en una asignación de Nm bits a la copia redundante de la trama modelo y en una asignación de (TNm) bits a la copia de la trama portadora. La selección de una entre un conjunto de distribuciones de una asignación de T bits puede implementarse como un cambio en la tasa de bits de la trama portadora seleccionada y la selección de un sistema de tasa de bits baja para codificar la copia redundante de la trama modelo. Por ejemplo, distribuyendo la asignación de T bits como una porción de tamaño de Nm bits para transportar una copia redundante de la trama modelo y como una porción de bits de tamaño (T - Nm) para transportar una copia principal de la trama portadora, donde T = 253 y Nm = 61, puede implementarse (por ejemplo, dentro de un códec AMR) cambiando la tasa de bits de la trama portadora de una tasa de bits de inicio de 12,65 kbps a una tasa de bits reducida de 9,6 kbps, codificando la trama portadora de acuerdo con un sistema existente de 9,6 kbps y usando un sistema de 3,05 kbps para codificar una copia redundante de la trama modelo.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0082] Puede ser deseable implementar varios sistemas de tasa de bits baja, para la codificación redundante, correspondiendo cada uno a una diferente entre el conjunto de distribuciones. Ejemplos de otras tasas de bits de arranque incluyen 8,85, 8,55, 6,6, 6,2, 4, 2,7 y 2 kbps, que corresponden (por ejemplo, para una longitud de trama de veinte milisegundos) a valores de T de 177, 171, 132, 124, 80, 54 y 40, respectivamente. Otros ejemplos de otras tasas de bits de inicio incluyen 23,85, 23,05, 19,85, 18,25, 15,85, 14,25 y 12,65 kbps, que corresponden (por ejemplo, para una longitud de trama de veinte milisegundos) a valores de T de 477, 461, 397, 365, 317, 285 y 253, respectivamente. Puede codificarse una trama de acuerdo con una tasa como se describe, por ejemplo, en la Versión 10 del códec AMR-WB al que se hace referencia en el presente documento (por ejemplo, usando un modelo de codificación CELP).
[0083] La tarea T400 puede implementarse para seleccionar el tamaño de la copia redundante (por ejemplo, para seleccionar una reasignación particular de T) de acuerdo con un valor de una medición de compresibilidad de la trama portadora. Por ejemplo, dicha tarea puede configurarse para seleccionar un tamaño mayor para la copia redundante (por ejemplo, para seleccionar una reasignación correspondiente) en respuesta a un valor que indique alta compresibilidad y para seleccionar un tamaño más pequeño para la copia redundante (por ejemplo, seleccionar una reasignación correspondiente) en respuesta a un valor que indique baja compresibilidad. Un ejemplo de una medición estática de compresibilidad es una métrica de bucle abierto que puede calcularse como una correlación de subtramas de la trama portadora entre sí (por ejemplo, la correlación máxima sobre todos los valores de retardo posibles y todos los pares (o todos los pares adyacentes) de subtramas, o un promedio de la correlación máxima sobre todos los valores de retardo posibles para cada par (o para cada par adyacente) de subtramas). Un ejemplo de una medición dinámica de compresibilidad es una métrica de bucle cerrado que indica, para cada uno de una pluralidad de candidatos de tamaño de copia redundantes y/o de candidatos de trama portadora, una medición de un cambio asociado (por ejemplo, reducción) en la calidad perceptual de la trama portadora. Por ejemplo, dicha métrica puede calcularse como una diferencia (por ejemplo, una diferencia absoluta) o una relación de (A) una medición de la calidad perceptual de la trama portadora codificada usando una asignación de bits inicial completa T y (B) una medición de la calidad perceptual de la trama portadora codificada usando solo la porción de la asignación de bit inicial que queda después de aplicar el candidato de tamaño de copia redundante.
[0084] La tarea T400 puede incluir reasignar una asignación de bits inicial T para la trama posterior en una primera porción y en una segunda porción, de acuerdo con un candidato de reasignación seleccionado, codificar una copia de la trama portadora en la primera porción y codificar la copia redundante de la trama modelo en la segunda porción. La tarea T400 puede implementarse para producir la copia de la trama portadora antes de la selección de un candidato de reasignación (por ejemplo, como un parámetro de entrada para un cálculo de métrica de decisión de reasignación) o en respuesta a la selección de un candidato de reasignación.
[0085] Aunque la aplicación de los principios descritos en el presente documento a los sistemas de tasa de bits fija se observa anteriormente (por ejemplo, en la que cada trama recibe la misma asignación de bit inicial T), también es posible aplicar dichos principios a los sistemas en los que la asignación total de tramas de T bits puede cambiar de una trama a otra. Por ejemplo, el número de bits T disponibles para codificar la trama portadora puede variar de acuerdo con si la trama portadora contiene voz o ruido, o de acuerdo con si la trama portadora contiene o no voz, etc.
[0086] Adicionalmente o como alternativa a la reasignación de bits para codificar la copia redundante, en malas condiciones de canal, puede ser deseable aumentar el número de bits usados para codificar una copia redundante de una trama crítica. En respuesta a la entrada con respecto a la condición del canal (por ejemplo, información de estado de canal como se describe en el presente documento con referencia a la tarea T70), por ejemplo, el procedimiento M200 puede implementarse para ajustar la extensión y la frecuencia de la redundancia que pueda transmitirse a través del canal dañado. El número de bits usados en la tarea T400 para codificar una copia redundante puede estar sometido a un límite elevado que refleje un equilibrio entre el rendimiento mejorado en malas condiciones de canal y la preservación de la calidad de codificación de voz nativa y/o la reducción pérdida de capacidad debido a retransmisiones. En dichos casos, el número de bits usados para codificar la copia redundante puede ser adicional a las tramas principales en lugar de reasignarse a partir de una trama posterior (es decir, a partir de una trama portadora). Por ejemplo, el número de bits para la copia redundante puede ser independiente del número de bits usados para las tramas principales y puede determinarse con referencia a la información recibida (por ejemplo, a través del canal de transmisión), tal como la capacidad del canal y/o el estado de red (por ejemplo, congestión).
[0087] El procedimiento M200 también incluye una tarea T500, que produce una señal codificada que incluye la copia redundante de la trama modelo. Por ejemplo, la tarea T500 puede implementarse para transportar la copia redundante sobre una o más tramas portadoras como se describió anteriormente (por ejemplo, tramas en la señal codificada que correspondan a tramas que sean posteriores en la señal original a la trama modelo). En dicho ejemplo, la copia redundante se incluye en un paquete asignado a una trama portadora que es posterior a la trama modelo en la señal de audio de entrada. En dicho caso, la tarea T500 puede incluir determinar el valor de un desplazamiento de portadora p, que identifique la trama posterior que deba transportar la copia redundante indicando el número de tramas entre la trama modelo y la trama portadora en la señal original. De manera alternativa
5
10
15
20
25
30
35
40
45
50
55
60
65
o adicionalmente, la tarea T400 puede incluir seleccionar un número de bits para reasignar desde la codificación de la trama posterior a la codificación de la copia redundante, cuya selección puede basarse en una medición de calidad perceptual de la trama posterior resultante como decodificada. También puede ser deseable implementar la tarea t500 para incluir, dentro de la señal codificada, información que indique el valor del desplazamiento y/o el número de bits reasignados. De manera alternativa, dicha información puede derivarse de otra información en la señal codificada mediante el decodificador.
[0088] El valor de desplazamiento de portadora p indica una distancia entre la trama modelo n y la trama portadora (n+p). El valor de desplazamiento p puede ser el mismo que el valor de desplazamiento k (es decir, de tal manera que la trama dependiente sea la trama portadora), o el procedimiento M200 puede implementarse para permitir que el desplazamiento dependiente k tenga un valor diferente al desplazamiento de la portadora p. El procedimiento M200 puede implementarse de tal manera que el desplazamiento p entre la trama modelo y la trama portadora (por ejemplo, una indicación de la diferencia en el número de trama, o una más que el número de tramas intermedias) esté fijo. En un ejemplo típico, el valor de p es tres. En otro ejemplo, el valor de p es cuatro. Otros valores posibles incluyen uno, dos, tres, cinco y enteros mayores que cinco.
[0089] La FIG. 7B muestra un diagrama de flujo para una implementación M210 del procedimiento M200 que incluye una implementación T510 de la tarea T500. La tarea T510 incluye una subtarea T510a que produce un primer paquete que contiene una copia principal de la trama modelo n. La tarea T510 también incluye una subtarea T510b que produce un segundo paquete que contiene una copia de la trama portadora (n+p) y la copia redundante de la trama modelo n producida por la tarea T400. Puede ser deseable implementar la tarea T510b para producir el segundo paquete para incluir información que indique que lleva una copia redundante de la trama modelo, que indique el valor del desplazamiento p y/o que indique la cantidad de bits reasignados Nm. De manera alternativa, dicha información puede derivarse de otra información en la señal codificada mediante el decodificador. La tarea T510 puede implementarse para realizar la tarea T510b en respuesta a la decisión de retransmisión T350. La FIG. 8 muestra un diagrama de flujo de una implementación M300 de los procedimientos M110, M120 y M210.
[0090] La tarea T500 puede implementarse para seleccionar la trama portadora (por ejemplo, para seleccionar un valor para el desplazamiento de portadora p) en base a una probabilidad estimada de que la trama portadora (por ejemplo, trama (n+p)) también sea una trama crítica, ya que puede ser deseable evitar la reasignación de bits fuera de una copia principal de otra trama crítica. Típicamente, dicha probabilidad es más alta para la trama que sigue inmediatamente a la trama crítica (es decir, trama (n+1)) y disminuye rápidamente a medida que p aumenta. Para la voz, la trama de inicio y la trama que la sigue inmediatamente (por ejemplo, para cubrir el caso en el que se pierde la trama de inicio) suelen ser críticas. Sin embargo, también es posible que otra trama posterior sea crítica (por ejemplo, para un caso en el que el retardo del tono se desplace).
[0091] Adicionalmente o de manera alternativa, la tarea T500 puede implementarse para seleccionar la trama portadora (por ejemplo, para seleccionar un valor para el desplazamiento de portadora p) de acuerdo con la longitud de una trama (por ejemplo, en milisegundos) en la señal de dominio de tiempo original y con un retardo máximo permitido. Por ejemplo, el valor de p puede estar limitado por un valor máximo permitido (por ejemplo, para limitar el retardo de tramas). Puede ser deseable que el retardo máximo permitido tenga un valor de ochenta o cien milisegundos. En dicho caso, p puede tener un valor máximo de cuatro o cinco para un sistema que use tramas de veinte milisegundos, o un valor máximo de ocho, nueve o diez para un sistema que use tramas de diez milisegundos.
[0092] Adicionalmente o de manera alternativa, la tarea T500 puede implementarse para seleccionar la trama portadora (por ejemplo, para seleccionar un valor para el desplazamiento de portadora p) de acuerdo con las condiciones del canal (por ejemplo, como se indica por la retroalimentación de un receptor y/u otra información de estado de canal como se describe en el presente documento). Por ejemplo, el valor del desplazamiento de portadora p indica la longitud de un intervalo entre el tiempo de transmisión de la copia principal de una trama y el tiempo de transmisión de la copia redundante de la trama, y puede ser deseable usar un valor más alto de p en un entorno que esté causando una pérdida frecuente de tramas consecutivas (por ejemplo, debido a desvanecimientos largos). Usualmente, las pérdidas de paquetes en una red de conmutación de paquetes son en ráfagas y las longitudes de ráfagas pueden ser diferentes en diferentes condiciones de red. Por tanto, el uso de un valor de desplazamiento de portadora ajustado dinámicamente puede dar como resultado un mejor rendimiento de protección contra errores. Puede estimarse un valor óptimo de desplazamiento de portadora usando la información de estado de canal (por ejemplo, tal como se envía por el receptor y/u otra entidad). Por ejemplo, el valor de desplazamiento de portadora puede ajustarse de forma adaptativa (por ejemplo, en tiempo de ejecución) en base a la condición del canal. De manera alternativa, el valor de desplazamiento de portadora puede estar predeterminado.
[0093] Adicionalmente y de manera alternativa, la tarea T500 puede implementarse para seleccionar la trama portadora (por ejemplo, para seleccionar un valor para el desplazamiento de portadora p) en base a un valor de una medición asociada de compresibilidad. Por ejemplo, la tarea T500 puede implementarse para seleccionar una trama portadora entre una pluralidad P de tramas que sean posteriores a la trama modelo en la señal de audio de entrada (por ejemplo, para seleccionar un valor correspondiente de p, donde 1 < p < P). En dicho caso, la tarea T500 puede implementarse para seleccionar la trama portadora como la más compresible entre las P tramas candidatas, como
5
10
15
20
25
30
35
40
45
50
55
60
65
se indica por los valores correspondientes de la medición de compresibilidad para cada una de las P tramas. Los ejemplos de mediciones de compresibilidad que pueden usarse para dicha selección de tramas incluyen mediciones estáticas (por ejemplo, métricas de bucle abierto) y mediciones dinámicas (por ejemplo, métricas de bucle cerrado) como se ha analizado anteriormente.
[0094] El procedimiento M200 puede implementarse para incluir la codificación de al menos uno de la pluralidad P de candidatos de trama portadora (por ejemplo, una trama no portadora) que use T bits. Dicho procedimiento puede incluso incluir la codificación de cada uno de los elementos no portadores de la pluralidad de P tramas candidatas que usen T bits. Sin embargo, también es posible que la señal incluya dos tramas críticas adyacentes, o dos tramas críticas que estén cerca entre sí de otra forma, de tal manera que el conjunto de P candidatos de trama portadora relativos a una trama crítica se superponga (es decir, tenga al menos una trama en común) con el conjunto de P candidatos de trama portadora relativos a la otra trama crítica. En dicho caso, una de las tramas posteriores comunes puede seleccionarse para transportar una copia redundante de una trama crítica, y otra de las tramas posteriores comunes puede seleccionarse para transportar una copia redundante de la otra trama crítica, de tal manera que cada una de estas dos tramas posteriores esté codificada usando menos de T bits. También es posible que una trama posterior seleccionada sea en sí mismo una trama crítica. En algunos casos, por ejemplo, puede esperarse que el conjunto de P candidatos de trama portadora relativos a una trama crítica pueda incluir al menos otra trama crítica aproximadamente el veinte por ciento del tiempo.
[0095] Un paquete puede incluir una o más tramas. Puede ser deseable limitar la longitud del paquete a 20 milisegundos (por ejemplo, reducir el retardo). La FIG. 9A muestra un ejemplo de sobrecarga para un paquete codificado que use una pila de protocolos típica para comunicaciones VoIP que incluya el Protocolo de Internet versión 4 (IPv4), el Protocolo de Datagramas de Usuario (UDP) y RTP. La FIG. 9B muestra un ejemplo similar para un paquete IP versión 6 (IPv6). Los ejemplos de tamaño de carga útil incluyen 160 bytes para un códec G.711, 20 bytes para un códec G.729 y 24 bytes para un códec G.723.1. Otros códecs que pueden usarse con un procedimiento de indicación de criticidad adaptativa como se describe en el presente documento incluyen, sin limitación, G.726, G.728, G.729A, AMR, AMR-WB, AMR-WB +, VMR-WB, EVRC, SMV y EVS como se ha mencionado anteriormente.
[0096] La FIG. 10 muestra un ejemplo de una carga útil para un paquete RTP que lleve una copia redundante de una trama modelo y una copia de una trama posterior a la trama modelo. La copia redundante (bits r(0) a r(176)) está codificada en el modo AMR-WB de 8,85 kbps, como lo indica el valor de uno para el correspondiente indicador de tipo de trama FT, y la copia de la trama portadora (bits p(0) a p(131)) se codifica en el modo AMR-WB de 6,6 kbps, como se indica por el valor de cero para el correspondiente indicador de tipo de trama FT. En este ejemplo, el indicador de petición de modo de códec CMR solicita al codificador en el terminal receptor que adopte el modo de 8,85 kbps y la carga útil finaliza con tres bits de relleno P para completar el último octeto. En otro ejemplo, la carga útil puede contener más de dos tramas codificadas y/o la copia redundante puede tener menos bits (es decir, puede codificarse a una tasa inferior) que la copia de la trama portadora y/o los bits de la copia redundante pueden preceder a los bits de la copia de la trama portadora en el paquete (con el orden de las entradas correspondientes de la tabla de contenidos para las copias que se conmuten en consecuencia).
[0097] Puede ser deseable implementar la tarea T510 de usar la compresión del encabezado: por ejemplo, comprimir el encabezado RTP de doce bytes hasta cuatro bytes. El encabezado RTP incluye una marca de tiempo, que puede usarse para calcular el tiempo de transmisión, y un número de secuencia, que puede usarse para presentar correctamente los paquetes que se reciban fuera de orden y/o para detectar la pérdida de paquetes. La Compresión de Encabezado Robusta (ROHC, como se describe en IETF RFC 3095, rFc 3843 y/o RFC 4815) puede usarse para admitir mayores tasas de compresión (por ejemplo, la compresión de uno o más, y posiblemente todos, los encabezados de paquetes de uno a cuatro bytes).
[0098] En una configuración, la tarea T510b se implementa para paquetizar la copia de la trama portadora (es decir, la trama de voz actual (n+p)) y la copia redundante de la trama de voz modelo n en paquetes del protocolo en tiempo real (RTP) para su transmisión a un terminal receptor. En otra configuración de la tarea T510b, una copia de la trama posterior (n+p) y la copia redundante de la trama de voz modelo n, aunque se generan al mismo tiempo, se empaquetan en correspondientes paquetes RTP diferentes y se transmiten al terminal receptor. La decisión de qué formato usar puede basarse en las capacidades de ambos terminales. Si se admiten ambos formatos en cada terminal, puede usarse el formato que cause la velocidad de transferencia de datos más baja.
[0099] La FIG. 11 muestra un diagrama de bloques de una implementación AD20 del decodificador de audio AD10. El decodificador de audio AD20 puede implementarse como parte de un vocoder, como una entidad independiente, o distribuirse a través de una o más entidades dentro del terminal receptor 104. El decodificador de audio AD20 también puede implementarse como parte de un cliente VoIP.
[0100] El decodificador de audio AD20 se describirá a continuación en términos de su funcionalidad. El decodificador de audio AD20 puede implementarse como hardware, firmware, software o cualquier combinación de los mismos, y la manera en que se implemente puede depender de la aplicación particular y de las restricciones de diseño impuestas al sistema en general. A modo de ejemplo, el decodificador de audio AD20 puede implementarse con un
5
10
15
20
25
30
35
40
45
50
55
60
65
microprocesador, con un procesador de señales digitales (DSP), con una lógica programable, con un hardware dedicado o con cualquier otra entidad de procesamiento basada en hardware y/o software.
[0101] En este ejemplo, el decodificador de audio AD20 incluye una memoria intermedia antifluctuaciones DB10 (también denominada "memoria intermedia de fluctuación"). La memoria intermedia antifluctuaciones DB10 puede ser un dispositivo de hardware o proceso de software que reduzca o elimine las fluctuaciones causadas por variaciones en el tiempo de llegada del paquete (debido, por ejemplo, a la congestión de red, a la desviación de la temporización y/o a cambios de ruta). La memoria intermedia antifluctuaciones DB10 puede recibir tramas de audio en paquetes. La memoria intermedia antifluctuaciones DB10 puede implementarse para retardar los paquetes recién llegados de modo que las tramas en los paquetes llegados anteriormente puedan proporcionarse continuamente al decodificador de tramas FD20, en el orden correcto (por ejemplo, según lo indicado por las marcas de tiempo de los paquetes), dando como resultado una clara conexión con poca distorsión de audio. La memoria intermedia antifluctuaciones DB10 puede estar fija o ser adaptativa. Una memoria intermedia antifluctuaciones fija puede introducir un retardo fijo en los paquetes. Por otro lado, una memoria intermedia antifluctuaciones adaptativa puede adaptarse a los cambios en el retardo de la red. La memoria intermedia antifluctuaciones DB10 puede proporcionar tramas de audio codificadas (por ejemplo, incluyendo índices XL, XF, XG y XP) al decodificador de tramas FD20 en el orden apropiado.
[0102] Si una copia de una trama no se recibe por la memoria intermedia antifluctuaciones, puede producirse una pérdida de trama si no se usa la FEC. Cuando se usa la FEC y se pierde la copia de la trama actual que vaya a reproducirse, la memoria intermedia antifluctuaciones DB10 puede determinar si hay una copia redundante de la trama en la memoria intermedia. Si está disponible una copia redundante para la trama actual, la copia redundante puede proporcionarse al decodificador de trama FD20 para la decodificación para generar muestras de audio.
[0103] Además, la memoria intermedia antifluctuaciones DB10 puede modificarse para procesar una trama principal (es decir, la trama crítica original) y una trama redundante (es decir, una copia de parte o de la totalidad de la trama crítica originales) de forma diferente. La memoria intermedia DB10 puede procesar estas dos tramas de forma diferente de modo que el retardo medio asociado con la implementación de una operación FEC como se describe en el presente documento no sea mayor que el retardo promedio cuando la operación FEC no se implemente. Por ejemplo, la memoria DB10 puede implementarse para detectar que un paquete entrante contiene una copia redundante (por ejemplo, que el paquete contiene dos tramas) y para iniciar la decodificación de la copia redundante en respuesta a esta detección.
[0104] Las tramas de audio liberadas de la memoria intermedia antifluctuaciones DB10 pueden proporcionarse al decodificador de trama FD20 para generar tramas de audio centrales decodificadas DF (por ejemplo, voz sintetizada). En general, el decodificador de trama FD20 puede implementarse para realizar cualquier procedimiento de decodificación de voz en voz sintetizada conocida en la técnica. En el ejemplo de la FIG. 11, el decodificador de trama FD20 usa un procedimiento de decodificación CELP que corresponde al procedimiento de codificación descrito anteriormente con referencia a la FIG. 3. En este ejemplo, el generador de vector de código fijo VG10 decodifica el índice FCB XF y una porción correspondiente del índice de ganancia XG para producir vectores de códigos fijos para cada subtrama, el cuantificador inverso IA10 y el generador de vectores A50 decodifican el índice ACB XP y una porción correspondiente del índice de ganancia XG para producir vectores de códigos adaptativos para cada subtrama, y el sumador AD10 combina los correspondientes vectores de códigos para producir la señal de excitación y actualizar la memoria ME10 (por ejemplo, como se describe en las etapas 1-8 de la sección 6.1 de 3GPP TS 26.190 v11.0.0). El cuantificador inverso IL10 y el módulo de transformada inversa IM10 decodifican el índice LPC XL para producir vectores de coeficientes de filtro LP, que se aplican a la excitación mediante el filtro de síntesis SF10 para producir una señal sintetizada (por ejemplo, como se describe en el párrafo inicial y en la etapa 4 de la sección 6.1 de 3GPP TS 26.190 v11.0.0). La señal sintetizada bruta se proporciona al filtro posterior PF10, que puede implementarse para realizar operaciones tales como filtrado de paso alto, ampliación e interpolación (por ejemplo, como se describe en la sección 6.2 de 3GPP TS 26.190 v11.0.0) para producir las tramas de audio centrales codificadas DF. De manera alternativa, y sin limitación, el decodificador de trama FD20 puede usar procedimientos de decodificación de tramas completas NELP o PPP.
[0105] Las copias redundantes de tramas que incluyan algunos (es decir, un conjunto parcial) de los valores de los parámetros de la copia principal pueden pasarse desde la memoria intermedia antifluctuaciones DB10 a un módulo de decodificación de tramas parcial. Por ejemplo, el decodificador de trama FD20 puede implementarse para generar una trama correspondiente a la trama crítica (por ejemplo, de acuerdo con un procedimiento de ocultamiento de errores como se describe en 3GPP TS 26.091, v.11.0.0 como se ha mencionado anteriormente) antes de que esté disponible la copia redundante. En este caso, el decodificador de tramas FD20 puede incluir un módulo de decodificación de tramas parcial que esté configurado para actualizar la memoria ME10 (por ejemplo, de acuerdo con los índices y ganancias del libro de códigos fijo y adaptativo de la copia redundante) antes de decodificar la trama portadora (n+p).
[0106] En el lado del receptor, las tramas de voz pueden almacenarse en la memoria intermedia antifluctuaciones DB10, que puede ser adaptativa. Como se mencionó previamente, la memoria intermedia antifluctuaciones DB10 puede diseñarse de modo que el retardo medio para las tramas de voz no sea mayor que el retardo medio sin las
5
10
15
20
25
30
35
40
45
50
55
60
65
técnicas FEC. Las tramas pueden enviarse a un decodificador de trama (por ejemplo, el decodificador FD20) en el orden apropiado a partir de la memoria intermedia antifluctuaciones DB10. Si la copia redundante es un conjunto parcial de los parámetros de la copia principal, puede usarse un módulo de decodificación parcial de tramas.
[0107] Un sistema FEC controlado por la fuente y por el canal como se describe en el presente documento puede reducir el número de pérdidas de paquetes y la ráfaga de las pérdidas con poco o ningún aumento en la velocidad de transferencia de datos. La identificación crítica de la trama puede ayudar a garantizar una buena compensación entre la calidad de percepción de la voz y la velocidad de transferencia de datos. Dicho sistema FEC puede implementarse para usar el ancho de banda disponible de forma eficiente y ser retrocompatible con dispositivos de comunicación heredados.
[0108] El codificador de audio AE10 puede implementarse para incluir un módulo de control dinámico de frecuencia. Dicho módulo puede implementar dos etapas para acercarse a una tasa de destino predeterminada. En la primera etapa, se determinan dos puntos de funcionamiento adyacentes. Estos dos puntos de funcionamiento adyacentes, que pueden ser velocidades de transferencia de datos, se eligen de modo que el valor de la velocidad de transferencia de datos de destino esté entre los valores de los dos puntos de funcionamiento. La velocidad de transferencia de datos de destino puede especificarse de forma externa en base a las demandas de capacidad. De manera alternativa, la velocidad de transferencia de datos de destino puede especificarse de forma interna en base a, por ejemplo, la información de estado de canal. Dicho control de velocidad puede implementarse para permitir que un sistema FEC como se describe en el presente documento se lleve a cabo a cualquier velocidad de transferencia de datos especificada, de modo que los operarios puedan decidir la velocidad de transferencia de datos en base a la demanda de capacidad.
[0109] La FIG. 12A muestra un diagrama de bloques de un aparato para el procesamiento de señales de audio MF100 de acuerdo con una configuración general. El aparato MF100 incluye medios F100 para calcular una estimación de la dependencia de la codificación de una segunda trama de una señal de audio en una primera trama que preceda a la segunda trama en la señal de audio (por ejemplo, como se describe en el presente documento con referencia a la tarea T100). El aparato MF100 también incluye medios F200 para calcular un valor umbral, en base a la información relacionada con un estado de un canal de transmisión (por ejemplo, como se describe en el presente documento con referencia a la tarea T200). El aparato MF100 también incluye medios F300 para comparar la estimación calculada con el valor umbral calculado (por ejemplo, como se describe en el presente documento con referencia a la tarea T300). El aparato MF100 también incluye medios F350 para decidir transmitir una copia redundante de la primera trama, en base a un resultado de la comparación (por ejemplo, como se describe en el presente documento con referencia a la tarea T350).
[0110] La FIG. 12B muestra un diagrama de bloques de una implementación MF110 del aparato MF100 que también incluye medios F50 para usar información de la primera trama para generar un vector de código adaptativo para la segunda trama (por ejemplo, como se describe en el presente documento con referencia a la tarea T50) y medios F60 para calcular un valor de ganancia de ACB para una versión codificada de la segunda trama (por ejemplo, como se describe en el presente documento con referencia a la tarea T60). En este caso, los medios F100 están configurado para calcular la estimación calculada en base al vector de código adaptativo y al valor de ganancia de ACB.
[0111] La FIG. 13A muestra un diagrama de bloques de una implementación MF120 del aparato MF100 que también incluye medios F70 para recibir información de estado de canal (por ejemplo, como se describe en el presente documento con referencia a la tarea T70). La FIG. 13B muestra un diagrama de bloques de una implementación MF200 del aparato MF100 que también incluye los medios F400 para producir una copia redundante de la primera trama (por ejemplo, como se describe en el presente documento con referencia a la tarea T400) y los medios F500 para producir una señal codificada que incluya la copia redundante (por ejemplo, como se describe en el presente documento con referencia a la tarea T500).
[0112] La FIG. 14A muestra un diagrama de bloques de un ejemplo F210 de una implementación de los medios F200 que puede usarse opcionalmente en cualquier implementación del aparato MF100 como se describe en el presente documento. El medio F210 incluye los medios F210a para comparar un valor calculado que está basado en la información relacionada con el estado del canal de transmisión con un valor límite (por ejemplo, como se describe en el presente documento con referencia a la tarea T210a) y los medios F210b para seleccionar el valor límite como el valor umbral calculado, en respuesta a un resultado de dicha comparación con el valor límite (por ejemplo, como se describe en el presente documento con referencia a las tareas T210b y T210c).
[0113] La FIG. 14B muestra un diagrama de bloques de una implementación MF210 del aparato MF200 que incluye una implementación F510 de los medios F500. Los medios F510 incluyen los medios F510a para producir un primer paquete que incluye la copia principal de la primera trama (por ejemplo, como se describe en el presente documento con referencia a la tarea T510a) y los medios F510b para producir un segundo paquete que incluya la copia redundante de la primera trama y una copia de la segunda trama, en respuesta a dicha decisión (por ejemplo, como se describe en el presente documento con referencia a la tarea T510b). La FIG. 15 muestra un diagrama de bloques de una implementación MF300 de los aparatos MF110, MF120 y MF210.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0114] La FIG. 16A muestra un diagrama de bloques de un aparato AP100 de acuerdo con una configuración general que incluye una primera calculadora A100, una segunda calculadora A200 y un selector de modo A300. La primera calculadora A100 está configurada para calcular una estimación de la dependencia de la codificación de una segunda trama de una señal de audio en una primera trama que preceda a la segunda trama en la señal de audio (por ejemplo, como se describe en el presente documento con referencia a la tarea T100). La segunda calculadora A200 está configurada para calcular un valor umbral, en base a la información relacionada con un estado de un canal de transmisión (por ejemplo, como se describe en el presente documento con referencia a la tarea T200). El selector de modo A300 está configurado (A) para comparar la estimación calculada con el valor umbral calculado y (B) para decidir transmitir una copia redundante de la primera trama, en base un resultado de la comparación (por ejemplo, como se describe en el presente documento con referencia a las tareas T300 y T350).
[0115] La FIG. 16B muestra un diagrama de bloques de una implementación AP110 del aparato AP100 que también incluye un generador de vectores A50 configurado para usar información de la primera trama para generar un vector de código adaptativo para la segunda trama (por ejemplo, como se describe en el presente documento con referencia a la tarea T50) y una calculadora de ganancia adaptativa A60 configurada para calcular un valor de ganancia de ACB para una versión codificada de la segunda trama (por ejemplo, como se describe en el presente documento con referencia a la tarea T60). En este caso, la primera calculadora A100 está configurada para calcular la estimación calculada en base al vector de código adaptativo y al valor de ganancia de ACB.
[0116] La FIG. 16C muestra un diagrama de bloques de un ejemplo A210 de una implementación de la segunda calculadora A200 que puede usarse opcionalmente en cualquier implementación del aparato AP100 como se describe en el presente documento. La calculadora A210 incluye un comparador A210a configurado para comparar un valor calculado que se esté basado en la información relacionada con el estado del canal de transmisión con un valor límite (por ejemplo, como se describe en el presente documento con referencia a la tarea T210a) y un selector A210b configurado para seleccionar el valor límite como el valor umbral calculado, en respuesta a un resultado de dicha comparación con el valor límite (por ejemplo, como se describe en el presente documento con referencia a las tareas T210b y T210c).
[0117] La FIG. 16D muestra un diagrama de bloques de una implementación AP120 del aparato AP100 que también incluye un decodificador de canal CD11 configurado para recibir información de estado de canal (por ejemplo, como se describe en el presente documento con referencia a la tarea T70). La FIG. 16E muestra un diagrama de bloques de un ejemplo A220 de una implementación de la segunda calculadora A200 que puede usarse opcionalmente en cualquier implementación del aparato AP100 como se describe en el presente documento. La segunda calculadora A220 incluye una calculadora de valor umbral A210c que está configurada para calcular, en base a la información de estado del canal, un primer valor umbral y un segundo valor umbral, y un selector de valor umbral A21 0d que está configurado para seleccionar el valor umbral calculado entre los primer y segundo valores umbral, en base a la información de al menos una entre la primera trama y una trama adyacente a la primera trama en la señal de audio (por ejemplo, como se describe en el presente documento con referencia a la tarea T200). La segunda calculadora A200 puede implementarse como una implementación de ambas calculadoras A210 y A220 (por ejemplo, de tal manera que el selector de valor umbral A210d proporcione el valor seleccionado al comparador A210a como el valor calculado).
[0118] La FIG. 17A muestra un diagrama de bloques de una implementación AP200 del aparato AP100 que también incluye una implementación A400 del codificador de trama FE10 (por ejemplo, del codificador de trama FE20) que está configurado para producir una copia redundante de la primera trama (por ejemplo, como se describe en el presente documento con referencia a la tarea T400) y una implementación A500 del codificador de canal CE10 que está configurado para producir una señal codificada que incluya la copia redundante (por ejemplo, como se describe en el presente documento con referencia a la tarea T500). El codificador de tramas A400 puede configurarse para seleccionar el tamaño de la copia redundante o para recibir una indicación del tamaño de otro módulo del aparato AP200 que esté configurado para realizar dicha selección (por ejemplo, como se describe en el presente documento con referencia a la tarea T400).
[0119] La FIG. 17B muestra un diagrama de bloques de una implementación AP210 del aparato AP200 que incluye una implementación A510 del codificador de canal A500. El codificador de canal A510 incluye un montador de paquetes A510a que está configurado para producir un primer paquete que incluya la copia principal de la primera trama (por ejemplo, como se describe en el presente documento con referencia a la tarea T510a) y para producir un segundo paquete que incluya la copia redundante de la primera trama y una copia de la segunda trama, en respuesta a dicha decisión (por ejemplo, como se describe en el presente documento con referencia a la tarea T510b). La FIG. 17C muestra un diagrama de bloques de una implementación AP220 del aparato AP210 que incluye una calculadora de desplazamiento A520 configurada para determinar el valor de un desplazamiento que indique un número total de tramas de la señal de audio entre las primera y segunda tramas (por ejemplo, como se describe en el presente documento con referencia a la tarea T500, tal como en base a la información de estado de canal y/o la compresibilidad de la segunda trama).
[0120] La FIG. 18A muestra un diagrama de bloques de una implementación AP300 de los aparatos AP110, AP120
5
10
15
20
25
30
35
40
45
50
55
60
65
y AP210. La FIG. 19 muestra un diagrama de bloques de una implementación AP400 del aparato AP300 que incluye un caso de la primera interfaz de usuario UI10 y una implementación AE30 del codificador de audio AE10 (por ejemplo, del codificador de audio AE20) que incluye un caso del aparato AP110 y está dispuesta para comprimir información de audio de la interfaz UI10. En este caso, el codificador de trama A400 puede configurarse para seleccionar el tamaño de la copia redundante o para recibir una indicación del tamaño de otro módulo del codificador de audio AE30 que esté configurado para realizar dicha selección (por ejemplo, como se describe en el presente documento con referencia a la tarea T400).
[0121] La FIG. 9C muestra un diagrama de bloques de un dispositivo de comunicaciones D10 que incluye un chip o conjunto de chips CS10 (por ejemplo, un conjunto de chips del módem de estación móvil (MSM)) que puede implementarse para incorporar los elementos de una o más de las implementaciones del aparato AP100 (o MF100) como se describe en el presente documento. El chip/conjunto de chips CS10 puede incluir uno o más procesadores, que pueden configurarse para ejecutar una parte de software y/o firmware del aparato A100 o MF100 (por ejemplo, como instrucciones). El terminal transmisor 102 puede realizarse como una implementación del dispositivo D10.
[0122] El chip/conjunto de chips CS10 incluye un receptor de radio (por ejemplo, una implementación de RX10), que está configurado para recibir una señal de comunicaciones de radiofrecuencia (RF) y para decodificar y reproducir una señal de audio (e información de estado de canal) codificada dentro de la señal de RF, y un transmisor de radio (por ejemplo, una implementación de TX10), que está configurado para transmitir una señal de audio codificada (por ejemplo, como se produce por la tarea T500) que esté basada en la información de audio recibida a través del micrófono MV10-1 y/o MV10-3 (por ejemplo, como se describe en el presente documento con referencia a la primera interfaz de usuario UI10) en un canal de transmisión como una señal de comunicaciones de RF que describa la señal de audio codificada. Dicho dispositivo puede estar configurado para transmitir y recibir datos de comunicaciones de voz de forma inalámbrica a través de uno o más códecs referidos en el presente documento.
[0123] El dispositivo D10 está configurado para recibir y transmitir las señales de comunicaciones de RF a través de una antena C30. El dispositivo D10 también puede incluir un diplexor y uno o más amplificadores de potencia en la ruta hacia la antena C30. El chip/conjunto de chips CS10 también está configurado para recibir la entrada del usuario a través del teclado numérico C10 y para visualizar información a través de la pantalla C20. En este ejemplo, el dispositivo D10 también incluye una o más antenas C40 para soportar servicios de localización del Sistema de Posicionamiento Global (GPS) y/o comunicaciones de corto alcance con un dispositivo externo tal como un auricular inalámbrico (por ejemplo, Bluetooth™). En otro ejemplo, dicho dispositivo de comunicaciones es en sí mismo un auricular Bluetooth™ y carece del teclado numérico C10, de la pantalla C20 y de la antena C30.
[0124] El dispositivo de comunicaciones D10 puede incorporarse en una variedad de dispositivos de comunicaciones, incluyendo los smartphones y los portátiles y las tablets. La FIG. 20 muestra vistas frontal, trasera y lateral de dicho ejemplo: un auricular H100 (por ejemplo, un smartphone) que tiene dos micrófonos de voz MV10-1 y MV10-3 dispuestos en la parte frontal, un micrófono de voz MV10-2 dispuesto en la parte trasera, otro micrófono ME10 (por ejemplo, para una selectividad direccional mejorada y/o para capturar el error acústico en el oído del usuario para la entrada a una operación de cancelación de ruido activa) ubicado en la esquina superior de la cara frontal y otro micrófono MR10 (por ejemplo, para una selectividad direccional mejorada y/o para capturar una referencia de ruido de fondo) ubicada en la cara trasera. Un altavoz LS10 está dispuesto en la parte superior central de la cara frontal cerca del micrófono de error ME10 y también se proporcionan otros dos altavoces LS20L, LS20R (por ejemplo, para aplicaciones de altavoces). Una distancia máxima entre los micrófonos de dicho auricular es típicamente de unos diez o doce centímetros.
[0125] La FIG. 18B muestra un diagrama de bloques de un dispositivo inalámbrico 1102 que puede implementarse para realizar un procedimiento como se describe en el presente documento (por ejemplo, uno cualquiera o más de los procedimientos M100, M110, M120, M200, M210 y M300). El terminal transmisor 102 puede realizarse como una implementación del dispositivo inalámbrico 1102. El dispositivo inalámbrico 1102 puede ser una estación remota, un terminal de acceso, un auricular, un asistente digital personal (PDA), un teléfono móvil, etc.
[0126] El dispositivo inalámbrico 1102 puede incluir un procesador 1104 que controle el funcionamiento del dispositivo. El procesador 1104 también puede denominarse unidad central de procesamiento (CPU). La memoria 1106, que puede incluir tanto memoria de sólo lectura (ROM) como memoria de acceso aleatorio (RAM), proporciona instrucciones y datos al procesador 1104. Una porción de la memoria 1106 también puede incluir memoria de acceso aleatorio no volátil (NVRAM). El procesador 1104 realiza típicamente operaciones lógicas y aritméticas en base a instrucciones de programa almacenadas dentro de la memoria 1106. Las instrucciones de la memoria 1106 pueden ejecutarse para implementar el procedimiento o los procedimientos como se describe en el presente documento.
[0127] El dispositivo inalámbrico 1102 incluye un alojamiento 1108 que puede incluir un transmisor 1110 y un receptor 1112 para permitir la transmisión y la recepción de datos entre el dispositivo inalámbrico 1102 y una ubicación remota. El transmisor 1110 y el receptor 1112 pueden combinarse en un transceptor 1114. Una antena 1116 puede conectarse al alojamiento 1108 y acoplarse de forma eléctrica al transceptor 1114. El dispositivo inalámbrico 1102 también puede incluir (no se muestran) múltiples transmisores, múltiples receptores, múltiples
5
10
15
20
25
30
35
40
45
50
55
60
65
transceptores y/o múltiples antenas.
[0128] En este ejemplo, el dispositivo inalámbrico 1102 también incluye un detector de señales 1118 que puede usarse para detectar y cuantificar el nivel de las señales recibidas por el transceptor 1114. El detector de señales 1118 puede detectar dichas señales como energía total, chips de energía piloto por pseudoruido (PN), densidad espectral de potencia y otras señales. El dispositivo inalámbrico 1102 también incluye un procesador de señales digitales (DSP) 1120 para su uso en el procesamiento de señales.
[0129] Los diversos componentes del dispositivo inalámbrico 1102 se acoplan juntos mediante un sistema de bus 1122 que puede incluir un bus de potencia, un bus de señal de control y un bus de señal de estado, además de un bus de datos. Para mayor claridad, los diversos buses se ilustran en la FIG. 18B como el sistema de bus 1122.
[0130] Los procedimientos y los aparatos divulgados en el presente documento pueden aplicarse en general en cualquier aplicación transceptora y/o detectora de audio, especialmente casos de dichas aplicaciones móviles o portátil de otra forma. Por ejemplo, el rango de configuraciones divulgadas en el presente documento incluye dispositivos de comunicación que residen en un sistema de comunicación de telefonía inalámbrica configurado para emplear una interfaz aérea de acceso múltiple por división de código (CDMA). Sin embargo, los expertos en la técnica entenderían que un procedimiento y un aparato que tengan las características que se describen en el presente documento pueden residir en cualquiera de los diversos sistemas de comunicación que empleen una amplia gama de tecnologías conocidas por los expertos en la técnica, tales como sistemas que emplean Voz sobre IP (VoIP) a través de canales de transmisión alámbricos y/o inalámbricos (por ejemplo, CDMA, TDMA, FDMA y/o TD-SCDMA).
[0131] Se contempla expresamente y se divulga por la presente que los dispositivos de comunicación divulgados en el presente documento pueden adaptarse para su uso en redes que estén conmutadas por paquetes (por ejemplo, redes alámbricas y/o inalámbricas dispuestas para transportar transmisiones de audio de acuerdo con protocolos tales como VoIP) y/o de conmutación de circuitos. También se contempla expresamente y se divulga por la presente que los dispositivos de comunicaciones divulgados en el presente documento pueden adaptarse para su uso en sistemas de codificación de banda estrecha (por ejemplo, sistemas que codifiquen un rango de frecuencia de audio de aproximadamente cuatro o cinco kilohercios) y/o para su uso en sistemas de codificación de banda ancha (por ejemplo , sistemas que codifiquen frecuencias de audio superiores a cinco kilohercios), incluyendo los sistemas de codificación de banda ancha de banda completa y los sistemas de codificación de banda ancha de banda dividida.
[0132] Se proporciona la presentación de las configuraciones descritas para permitir que cualquier experto en la técnica realice o use los procedimientos y otras estructuras divulgados en el presente documento. Los diagramas de flujo, los diagramas de bloques y otras estructuras mostradas y descritas en el presente documento son solamente ejemplos, y otras variantes de estas estructuras también están dentro del alcance de la divulgación. Son posibles diversas modificaciones de estas configuraciones, y los principios genéricos presentados en el presente documento pueden aplicarse también a otras configuraciones. Por tanto, la presente divulgación no pretende limitarse a las configuraciones mostradas anteriormente, sino que se le debe otorgar el alcance más amplio coherente con los principios y características novedosas divulgados de cualquier manera en el presente documento, incluyendo en las reivindicaciones adjuntas como se presentan, que forman una parte de la divulgación original.
[0133] Los expertos en la técnica entenderán que la información y las señales pueden representarse usando cualquiera de entre una variedad de tecnologías y técnicas diferentes. Por ejemplo, los datos, las instrucciones, los comandos, la información, las señales, los bits y los símbolos que puedan haberse mencionado a lo largo de la descripción anterior pueden representarse mediante tensiones, corrientes, ondas electromagnéticas, campos o partículas magnéticos, campos o partículas ópticos, o cualquier combinación de los mismos.
[0134] Los requisitos importantes de diseño para la aplicación de una configuración como se divulga en el presente documento pueden incluir minimizar el retardo del procesamiento y/o la complejidad computacional (medidos típicamente en millones de instrucciones por segundo o MIPS), especialmente para aplicaciones de computación intensiva, tales como la reproducción de audio comprimido o de información audiovisual (por ejemplo, un archivo o secuencia codificada de acuerdo con un formato de compresión, tal como uno de los ejemplos identificados en el presente documento) o aplicaciones para comunicaciones de banda ancha (por ejemplo, comunicaciones de voz a frecuencias de muestreo más altas que ocho kilohercios, tales como 12, 16, 32, 44,1, 48 o 192 kHz).
[0135] Un aparato como el divulgado en el presente documento (por ejemplo, cualquiera de entre los aparatos MF100, MF110, MF120, MF200, MF210, MF300, AP100, AP110, AP120, AP200, AP210, AP300 y AP400) puede implementarse en cualquier combinación de hardware con software y/o con firmware, que se considere adecuado para la aplicación prevista. Por ejemplo, los elementos de dicho aparato pueden fabricarse como dispositivos electrónicos y/u ópticos que residan, por ejemplo, en el mismo chip o entre dos o más chips en un conjunto de chips. Un ejemplo de dicho dispositivo es una matriz fija o programable de elementos lógicos, tales como transistores o puertas lógicas, y cualquiera de estos elementos puede implementarse como una o más de dichas matrices. Cualquiera de dos o más, o incluso todos, de estos elementos pueden implementarse dentro de la misma matriz o matrices. Dicha matriz o matrices pueden implementarse dentro de uno o más chips (por ejemplo, dentro de un
5
10
15
20
25
30
35
40
45
50
55
60
65
conjunto de chips que incluya dos o más chips).
[0136] Uno o más elementos de las diversas implementaciones de los aparatos divulgados en el presente documento (por ejemplo, de entre los aparatos MF100, MF110, MF120, MF200, MF210, MF300, AP100, AP110, AP120, AP200, AP210, AP300 y AP400) pueden implementarse total o parcialmente como uno o más conjuntos de instrucciones dispuestas para ejecutarse en una o más matrices fijas o programables de elementos lógicos tales como microprocesadores, procesadores incorporados, núcleos IP, procesadores de señales digitales, FPGA (matrices de puertas programables por campo), ASSP (productos estándar específicos de la aplicación) y ASIC (circuitos integrados específicos de la aplicación). Cualquiera de los diversos elementos de una implementación de un aparato como se divulga en el presente documento también puede incorporarse como uno o más ordenadores (por ejemplo, máquinas que incluyan una o más matrices programadas para ejecutar uno o más conjuntos o secuencias de instrucciones, también denominadas "procesadores"), y dos o más, o incluso todos, de estos elementos pueden implementarse dentro del mismo ordenador u ordenadores.
[0137] Un procesador u otros medios para procesar como se divulga en el presente documento pueden fabricarse como uno o más dispositivos electrónicos y/u ópticos que residan, por ejemplo, en el mismo chip o entre dos o más chips en un conjunto de chips. Un ejemplo de dicho dispositivo es una matriz fija o programable de elementos lógicos, tales como transistores o puertas lógicas, y cualquiera de estos elementos puede implementarse como una o más de dichas matrices. Dicha matriz o matrices pueden implementarse dentro de uno o más chips (por ejemplo, dentro de un conjunto de chips que incluya dos o más chips). Los ejemplos de dichas matrices incluyen matrices fijas o programables de elementos lógicos, tales como microprocesadores, procesadores integrados, núcleos IP, dSp, FPGA, ASSP y ASIC. Un procesador u otros medios para el procesamiento como se divulga en el presente documento también pueden incorporarse como uno o más ordenadores (por ejemplo, máquinas que incluyan una o más matrices programadas para ejecutar uno o más conjuntos o secuencias de instrucciones) u otros procesadores. Es posible que un procesador como se describe en el presente documento se use para realizar tareas o ejecutar otros conjuntos de instrucciones que no estén directamente relacionados con un procedimiento de una implementación del procedimiento M100, tal como una tarea relacionada con otra operación de un dispositivo o sistema en el que el aparato esté incorporado (por ejemplo, un dispositivo de detección de audio). También es posible que parte de un procedimiento como se divulga en el presente documento lo realice un procesador del dispositivo de detección de audio y que otra parte del procedimiento se realice bajo el control de uno o más de otros procesadores.
[0138] Los expertos en la técnica apreciarán que los diversos módulos, bloques lógicos, circuitos y pruebas ilustrativos y otras operaciones descritos en conexión con las configuraciones divulgadas en el presente documento puedan implementarse como hardware electrónico, software informático o combinaciones de ambos. Los diversos módulos, bloques lógicos, circuitos y operaciones pueden implementarse o realizarse con un procesador de uso general, con un procesador de señales digitales (DSP), con ASIC o un ASSP, con una FPGA o con otro dispositivo de lógica programable, puerta discreta o lógica de transistor, componentes de hardware discretos o con cualquier combinación de los mismos diseñada para producir la configuración como se divulga en el presente documento. Por ejemplo, dicha configuración puede implementarse al menos parcialmente como un circuito alámbrico, como una configuración de circuito fabricada en un circuito integrado específico de la aplicación, o como un programa de firmware cargado en un almacenamiento no volátil o un programa de software cargado a partir de o en un medio de almacenamiento de datos como código legible por máquina, siendo dicho código instrucciones ejecutables por una matriz de elementos lógicos tales como un procesador de uso general u otra unidad de procesamiento de señales digitales. Un procesador de uso general puede ser un microprocesador pero, como alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un procesador también puede implementarse como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y de un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores conjuntamente con un núcleo de DSP o cualquier otra configuración de este tipo. Un módulo de software puede residir en un medio de almacenamiento no transitorio como RAM (memoria de acceso aleatorio), ROM (memoria de sólo lectura), RAM no volátil (NVRAM) tal como memoria RAM flash, ROM programable borrable (EPROM), ROM programable eléctricamente borrable (EEPROM), registros, disco duro, un disco extraíble o un CD-ROM; o en cualquier otra forma de medio de almacenamiento conocido en la técnica. Un medio de almacenamiento ilustrativo está acoplado al procesador de tal manera que el procesador puede leer información de, y escribir información a, el medio de almacenamiento. Como alternativa, el medio de almacenamiento puede estar integrado en el procesador. El procesador y el medio de almacenamiento pueden residir en un ASIC. El ASIC puede residir en un terminal de usuario. Como alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en un terminal de usuario.
[0139] Se observa que los diversos procedimientos divulgados en el presente documento (por ejemplo, cualquiera de entre los procedimientos M100, M110, M120, M200, M210, y M300) pueden realizarse por una matriz de elementos lógicos tales como un procesador y que los diversos elementos de un aparato como se describe en el presente documento pueden implementarse como módulos diseñados para ejecutarse en dicha matriz. Como se usa en el presente documento, el término "módulo" o "submódulo" puede referirse a cualquier procedimiento, aparato, dispositivo, unidad o medio de almacenamiento de datos legible por ordenador que incluya instrucciones de ordenador (por ejemplo, expresiones lógicas) en forma de software, hardware o firmware. Deberá entenderse que
5
10
15
20
25
30
35
40
45
50
55
60
65
múltiples módulos o sistemas pueden combinarse en un módulo o sistema y un módulo o sistema puede separarse en múltiples módulos o sistemas para realizar las mismas funciones. Cuando se implementan en software o en otras instrucciones ejecutables por ordenador, los elementos de un proceso son esencialmente los segmentos de código para realizar las tareas relacionadas, tales como rutinas, programas, objetos, componentes, estructuras de datos y similares. El término "software" debería entenderse como que incluye código fuente, código de lenguaje de montaje, código de máquina, código binario, firmware, macrocódigo, microcódigo, uno o más conjuntos o secuencias de instrucciones ejecutables por una matriz de elementos lógicos y cualquier combinación de dichos ejemplos. El programa o los segmentos de código pueden almacenarse en un medio legible por procesador o transmitirse por una señal de datos informática incorporada en una onda portadora a través de un medio de transmisión o enlace de comunicación.
[0140] Las implementaciones de procedimientos, sistemas y técnicas divulgadas en el presente documento también pueden realizarse de forma tangible (por ejemplo, en características tangibles y legibles por ordenador de uno o más medios de almacenamiento legibles por ordenador como se menciona en el presente documento) como uno o más conjuntos de instrucciones ejecutables por una máquina que incluya una matriz de elementos lógicos (por ejemplo, un procesador, un microprocesador, un microcontrolador u otra máquina de estado finito). El término "medio legible por ordenador" puede incluir cualquier medio que pueda almacenar o transferir información, incluyendo medios de almacenamiento volátiles, no volátiles, extraíbles y no extraíbles. Ejemplos de un medio legible por ordenador incluyen un circuito electrónico, un dispositivo de memoria semiconductor, una ROM, una memoria flash, una ROM borrable (EROM), un disquete u otro almacenamiento magnético, un CD-ROM/DVD u otro almacenamiento óptico, un disco duro o cualquier otro medio que pueda usarse para almacenar la información deseada, un medio de fibra óptica, un enlace de radiofrecuencia (RF) o cualquier otro medio que pueda usarse para transportar la información deseada y pueda accederse a ella. La señal de datos informática puede incluir cualquier señal que pueda propagarse a través de un medio de transmisión tales como canales de red electrónica, fibras ópticas, aire, electromagnéticos, enlaces de RF, etc. Los segmentos de código pueden descargarse a través de redes informáticas tales como Internet o una intranet. En cualquier caso, el alcance de la presente divulgación no debe interpretarse como limitado por dichos modos de realización.
[0141] Cada una de las tareas de los procedimientos descritos en el presente documento pueden incorporarse directamente en hardware, en un módulo de software ejecutado por un procesador o en una combinación de los dos. En una aplicación típica de una implementación de un procedimiento como se divulga en el presente documento, una matriz de elementos lógicos (por ejemplo, puertas lógicas) está configurada para realizar una, más de una, o incluso todas las diversas tareas del procedimiento. Una o más (posiblemente todas) de las tareas también pueden implementarse como código (por ejemplo, uno o más conjuntos de instrucciones), incorporado en un producto de programa informático (por ejemplo, uno o más medios de almacenamiento de datos como discos, otras tarjetas de memoria no volátiles o flash, chips de memoria semiconductores, etc.), que sea legible y/o ejecutable por una máquina (por ejemplo, un ordenador) que incluya una matriz de elementos lógicos (por ejemplo, un procesador, un microprocesador, un microcontrolador u otra máquina de estados finitos). Las tareas de una implementación de un procedimiento como se divulga en el presente documento también pueden realizarse por más de una de dicha matriz o máquina. En estas u otras implementaciones, las tareas pueden realizarse dentro de un dispositivo para comunicaciones inalámbricas tales como un teléfono móvil u otro dispositivo que tenga dicha capacidad de comunicaciones. Dicho dispositivo puede configurarse para comunicarse con redes conmutadas de circuitos y/o conmutadas de paquetes (por ejemplo, usando uno o más protocolos tales como VoIP). Por ejemplo, dicho dispositivo puede incluir circuitos de RF configurados para recibir y/o transmitir tramas codificadas.
[0142] Se divulga expresamente que los diversos procedimientos divulgados en el presente documento pueden realizarse mediante un dispositivo de comunicaciones portátil tal como un teléfono, un auricular o un asistente digital portátil (PDA), y que los diversos aparatos descritos en este documento pueden incluirse dentro de dicho dispositivo. Una aplicación típica en tiempo real (por ejemplo, en línea) es una conversación telefónica realizada usando un dispositivo móvil de este tipo.
[0143] En uno o más modos de realización a modo de ejemplo, las operaciones descritas en el presente documento pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementa en software, dichas operaciones pueden almacenarse o transmitirse a través de un medio legible por ordenador como una o más instrucciones o códigos. El término "medios legibles por ordenador" incluye tanto medios de almacenamiento legibles por ordenador como medios de comunicación (por ejemplo, de transmisión). A modo de ejemplo, y no de limitación, los medios de almacenamiento legibles por ordenador pueden comprender una matriz de elementos de almacenamiento, tales como una memoria semiconductora (que puede incluir, sin limitación, RAM dinámica o estática, ROM, EEPROM y/o RAM flash) o memoria ferroeléctrica, magnetorresistiva, ovónica, polimérica o de cambio de fase; CD-ROM u otro almacenamiento en disco óptico; y/o dispositivos de almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético. Dichos medios de almacenamiento pueden almacenar información en forma de instrucciones o estructuras de datos a las que pueda accederse mediante un ordenador. Los medios de comunicación pueden comprender cualquier medio que pueda usarse para transportar el código de programa deseado en forma de instrucciones o de estructuras de datos y al que pueda accederse mediante un ordenador, incluyendo cualquier medio que facilite la transferencia de un programa informático de un lugar a otro. Además, cualquier conexión se denomina apropiadamente medio legible por ordenador. Por ejemplo, si
5
10
15
20
25
30
35
el software se transmite desde una página web, un servidor u otra fuente remota, que use un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnología inalámbrica tal como infrarrojos, radio y/o microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o la tecnología inalámbrica tal como infrarrojos, radio y/o microondas, se incluyen en la definición de medio. Los discos, como se usa en el presente documento, incluyen el disco compacto (CD), el disco láser, el disco óptico, el disco versátil digital (DVD), el disco flexible y el disco Blu-ray™ (Blu-Ray Disc Association, Universal City, CA), donde algunos discos reproducen usualmente datos de forma magnética, mientras que otros reproducen los datos de forma óptica con láser. Las combinaciones de lo anterior deberían incluirse también dentro del alcance de los medios legibles por ordenador.
[0144] Un aparato de procesamiento de señales acústicas como se describe en el presente documento puede incorporarse en un dispositivo electrónico que acepte una entrada de voz con el fin de controlar ciertas operaciones, o puede beneficiarse por el contrario de la separación de ruidos deseados de ruidos de fondo, tales como dispositivos de comunicaciones. Muchas aplicaciones pueden beneficiarse de la mejora o de la separación del sonido claro deseado de los sonidos de fondo procedentes de múltiples direcciones. Dichas aplicaciones pueden incluir interfaces hombre-máquina en dispositivos electrónicos o informáticos que incorporen capacidades tales como el reconocimiento y la detección de voz, la mejora y la separación de voz, el control activado por voz y similares. Puede ser deseable implementar dicho aparato de procesamiento de señales acústicas que sea adecuado en dispositivos que solo proporcionen capacidades de procesamiento limitadas.
[0145] Los elementos de las diversas implementaciones de los módulos, elementos y dispositivos descritos en el presente documento pueden fabricarse como dispositivos electrónicos y/u ópticos que residan, por ejemplo, en el mismo chip o entre dos o más chips en un conjunto de chips. Un ejemplo de dicho dispositivo es una matriz fija o programable de elementos lógicos, tales como transistores o puertas. Uno o más elementos de diversas implementaciones del aparato descrito en el presente documento pueden implementarse también total o parcialmente como uno o más conjuntos de instrucciones dispuestas para ejecutarse en una o más matrices fijas o programables de elementos lógicos tales como microprocesadores, procesadores incorporados, núcleos IP, procesadores de señales digitales, FPGA, ASSP y ASIC.
[0146] Es posible que uno o más elementos de una implementación de un aparato como se describe en el presente documento se usen para realizar tareas o ejecutar otros conjuntos de instrucciones que no estén directamente relacionados con una operación del aparato, tal como una tarea relacionada con otra operación de un dispositivo o sistema en el que el aparato esté incorporado. También es posible que uno o más elementos de una implementación de dicho aparato tengan una estructura en común (por ejemplo, un procesador usado para ejecutar porciones de código correspondientes a diferentes elementos en tiempos diferentes, un conjunto de instrucciones ejecutadas para realizar las tareas correspondientes a diferentes elementos en tiempos diferentes o una disposición de dispositivos electrónicos y/u ópticos que realicen operaciones para diferentes elementos en tiempos diferentes).
Claims (15)
- 5101520253035404550556065REIVINDICACIONES1. Un procedimiento (M100, M110, M120, M200, M210, M300) de procesamiento de señales de audio, comprendiendo dicho procedimiento:calcular (T100) una medición de criticidad de una primera trama de una señal de audio a una segunda trama en base a información dentro de la primera trama, en el que la primera trama precede a la segunda trama en la señal de audio;en base a la información relacionada con un estado de un canal de transmisión, calcular (T200, T210) un valor umbral;comparar (T300) la medición de criticidad calculada con el valor de umbral calculado; y, en base a un resultado de dicha comparación, decidir transmitir (T350) una copia redundante de la primera trama en bits inicialmente asignados para una trama portadora,en el que la trama portadora puede ser la segunda trama o una trama con desplazamiento fijo desde la primera trama.
- 2. El procedimiento de acuerdo con la reivindicación 1, en el que dicha medición de criticidad calculada está basada en una función de impacto perceptual de la pérdida de la primera trama en la señal de audio.
- 3. El procedimiento de acuerdo con la reivindicación 1, en el que dicho procedimiento incluye usar la información de la primera trama para generar (T50) un vector de código adaptativo y en el que dicha medición de criticidad calculada está basada en la información del vector de código adaptativo.
- 4. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1-3, en el que dicha medición de criticidad calculada está basada en información de una versión codificada de la segunda trama; oen el que dicha medición de criticidad calculada está basada en un valor de ganancia de libro de códigos adaptativo de una versión codificada de la segunda trama.
- 5. El procedimiento de acuerdo con la reivindicación 1, en el que dicha medición de criticidad calculada está basada en información de una primera versión codificada de la segunda trama y en información de una segunda versión codificada de la segunda trama,en el que la primera versión codificada se codifica usando información de una versión codificada de la primera trama, yen el que la segunda versión codificada se codifica sin usar dicha información de la versión codificada de la primera trama.
- 6. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1-5, en el que dicha información relacionada con el estado del canal de transmisión incluye una serie de paquetes perdidos, yen el que dicho valor umbral calculado está basado en dicho número de paquetes perdidos.
- 7. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1-6, en el que dicha información relacionada con el estado del canal de transmisión incluye un valor de fluctuación que está basado en los tiempos de tránsito de los paquetes recibidos, y en el que dicho valor umbral calculado está basado en dicho valor de fluctuación.
- 8. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1-7, en el que dicho procedimiento incluye recibir (T70) la información relacionada con el estado del canal de transmisión a través de un canal de transmisión inalámbrico.
- 9. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1-8, en el que dicho cálculo del valor umbral comprende imponer un valor mínimo sobre el valor umbral calculado; oen el que dicho cálculo del valor umbral comprende:comparar (T210a, T210b) un valor calculado que esté basado en la información relacionada con el estado del canal de transmisión a un valor límite; yen respuesta a un resultado de dicha comparación con el valor límite, seleccionar (T210c) el valor límite como el valor umbral calculado.
- 10. El procedimiento de acuerdo con cualquiera de las reivindicaciones 1-9, en el que dicho procedimiento comprende:510152025303540455055codificar la primera trama para producir una copia principal de la primera trama; producir la copia redundante de la primera trama; yproducir (T500) una señal codificada que incluya la copia principal y la copia redundante.
- 11. El procedimiento de acuerdo con la reivindicación 10, en el que la copia principal de la primera trama incluye una primera contraseña que indica una posición para cada uno de un número total P1 de pulsos unitarios de un primer vector de código algebraico de longitud L, yen el que la copia redundante de la primera trama incluye una segunda contraseña que indica una posición para cada uno de un número total P2 de pulsos unitarios de un segundo vector de código algebraico de longitud L, yen el que P1 es mayor que P2; y/o preferentemente en el que dicha producción de la señal codificada comprende:producir (T510a) un primer paquete que incluya la copia principal de la primera trama; yen respuesta a dicha decisión, producir (T510b) un segundo paquete que incluya la copia redundante de la primera trama y una copia de la segunda trama, yen el que la señal codificada incluye los primer y segundo paquetes; y/o preferentementeen el que dicho procedimiento incluye transmitir la señal codificada en el canal de transmisión.
- 12. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1-11, en el que dicho procedimiento incluye determinar el valor de un desplazamiento que indique un número total de tramas de la señal de audio entre la primera trama y la segunda trama.
- 13. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1-12, en el que dicho cálculo del valor umbral comprende:en base a la información relacionada con el estado del canal de transmisión, calcular un primer valor umbral y un segundo valor umbral; yen base a la información de al menos una entre la primera trama y una trama adyacente a la primera trama en la señal de audio, seleccionar el valor umbral calculado de entre los primer y segundo valores umbral.
- 14. Un aparato (MF100, MF110, MF120, MF200, MF210, MF300) para el procesamiento de señales de audio, comprendiendo dicho aparato:medios para calcular (F100) una medición de criticidad de una primera trama de una señal de audio a una segunda trama en base a información dentro de la primera trama, en el que la primera trama precede a la segunda trama en la señal de audio;medios para calcular (F200, F210) un valor umbral, en base a la información relacionada con un estado de un canal de transmisión;medios para comparar (F300) la medición de criticidad calculada con el valor umbral calculado; ymedios para decidir (F350) transmitir una copia redundante de la primera trama en bits asignados inicialmente para una trama portadora, en base al resultado de dicha comparación, en donde la trama portadora puede ser la segunda trama o una trama con desplazamiento fijo desde la primera trama.
- 15. Un medio de almacenamiento no transitorio de datos legible por ordenador que tiene características tangibles que causan que una máquina lea las características para realizar un procedimiento de acuerdo con una cualquiera de las reivindicaciones 1-13.
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261586007P | 2012-01-12 | 2012-01-12 | |
US201261586007P | 2012-01-12 | ||
US201261587507P | 2012-01-17 | 2012-01-17 | |
US201261587507P | 2012-01-17 | ||
US201261641093P | 2012-05-01 | 2012-05-01 | |
US201261641093P | 2012-05-01 | ||
US201213718797 | 2012-12-18 | ||
US13/718,797 US9047863B2 (en) | 2012-01-12 | 2012-12-18 | Systems, methods, apparatus, and computer-readable media for criticality threshold control |
PCT/US2012/070721 WO2013106181A1 (en) | 2012-01-12 | 2012-12-19 | Systems, methods, apparatus, and computer-readable media for criticality threshold control |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2653949T3 true ES2653949T3 (es) | 2018-02-09 |
Family
ID=48780607
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES12813204.0T Active ES2653949T3 (es) | 2012-01-12 | 2012-12-19 | Sistemas, procedimientos, aparatos y medios legibles por ordenador para el control del umbral de criticidad |
ES12813673.6T Active ES2621417T3 (es) | 2012-01-12 | 2012-12-20 | Sistema, procedimientos, aparato y medios legibles por ordenador para la asignación de bits para la transmisión redundante de datos de audio |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES12813673.6T Active ES2621417T3 (es) | 2012-01-12 | 2012-12-20 | Sistema, procedimientos, aparato y medios legibles por ordenador para la asignación de bits para la transmisión redundante de datos de audio |
Country Status (13)
Country | Link |
---|---|
US (2) | US9047863B2 (es) |
EP (2) | EP2812895B1 (es) |
JP (3) | JP2015510313A (es) |
KR (2) | KR101570631B1 (es) |
CN (2) | CN104040622B (es) |
BR (2) | BR112014017120B1 (es) |
DK (2) | DK2812895T3 (es) |
ES (2) | ES2653949T3 (es) |
HU (2) | HUE037362T2 (es) |
IN (1) | IN2014CN04644A (es) |
SI (1) | SI2803065T1 (es) |
TW (1) | TWI499247B (es) |
WO (2) | WO2013106181A1 (es) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047863B2 (en) | 2012-01-12 | 2015-06-02 | Qualcomm Incorporated | Systems, methods, apparatus, and computer-readable media for criticality threshold control |
US9356917B2 (en) | 2012-03-23 | 2016-05-31 | Avaya Inc. | System and method for end-to-end encryption and security indication at an endpoint |
US9860296B2 (en) * | 2012-03-23 | 2018-01-02 | Avaya Inc. | System and method for end-to-end call quality indication |
US9178778B2 (en) | 2012-03-23 | 2015-11-03 | Avaya Inc. | System and method for end-to-end RTCP |
EP2670060B1 (en) * | 2012-04-11 | 2015-09-09 | Huawei Technologies Co., Ltd. | Method and device for configuring transmission mode |
CN104782124B (zh) * | 2012-12-17 | 2018-09-07 | 英特尔公司 | 利用编码器硬件对视频内容进行预处理 |
TWI528777B (zh) * | 2012-12-28 | 2016-04-01 | 鴻海精密工業股份有限公司 | 音量調節方法與系統 |
US9831898B2 (en) * | 2013-03-13 | 2017-11-28 | Analog Devices Global | Radio frequency transmitter noise cancellation |
FR3007230B1 (fr) * | 2013-06-17 | 2015-07-31 | Sdmo Ind | Procede de communication dans un reseau interconnectant au moins deux groupes electrogenes, et dispositif d’interfacage correspondant. |
US10614816B2 (en) * | 2013-10-11 | 2020-04-07 | Qualcomm Incorporated | Systems and methods of communicating redundant frame information |
NO2780522T3 (es) * | 2014-05-15 | 2018-06-09 | ||
GB2527365B (en) | 2014-06-20 | 2018-09-12 | Starleaf Ltd | A telecommunication end-point device data transmission controller |
US9984699B2 (en) | 2014-06-26 | 2018-05-29 | Qualcomm Incorporated | High-band signal coding using mismatched frequency ranges |
US9680507B2 (en) | 2014-07-22 | 2017-06-13 | Qualcomm Incorporated | Offset selection for error correction data |
US9712287B2 (en) * | 2014-07-31 | 2017-07-18 | Qualcomm Incorporated | System and method of redundancy based packet transmission error recovery |
TWI602172B (zh) * | 2014-08-27 | 2017-10-11 | 弗勞恩霍夫爾協會 | 使用參數以加強隱蔽之用於編碼及解碼音訊內容的編碼器、解碼器及方法 |
BR112017016114A2 (pt) * | 2015-03-12 | 2018-03-27 | Ericsson Telefon Ab L M | método para tratar adaptação de taxa de codec em uma rede de comunicação, dispositivo sem fio, nó de rede, programa de computador, e, produto de programa de computador. |
US9948578B2 (en) * | 2015-04-14 | 2018-04-17 | Qualcomm Incorporated | De-jitter buffer update |
US20160323425A1 (en) * | 2015-04-29 | 2016-11-03 | Qualcomm Incorporated | Enhanced voice services (evs) in 3gpp2 network |
IL239333B (en) * | 2015-06-10 | 2020-06-30 | Elta Systems Ltd | A system for creating, transmitting and receiving additional signals and the useful methods by the way |
KR102420450B1 (ko) | 2015-09-23 | 2022-07-14 | 삼성전자주식회사 | 음성인식장치, 음성인식방법 및 컴퓨터 판독가능 기록매체 |
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 |
MX2018010754A (es) * | 2016-03-07 | 2019-01-14 | Fraunhofer Ges Forschung | Unidad de ocultamiento de error, decodificador de audio y método relacionado y programa de computadora que desaparece una trama de audio ocultada de acuerdo con factores de amortiguamiento diferentes para bandas de frecuencia diferentes. |
JP6883047B2 (ja) | 2016-03-07 | 2021-06-02 | フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ | 適切に復号されたオーディオフレームの復号化表現の特性を使用する誤り隠蔽ユニット、オーディオデコーダ、および関連する方法およびコンピュータプログラム |
CN107528668B (zh) * | 2016-06-21 | 2021-09-24 | 中兴通讯股份有限公司 | 一种数据传输方法及设备 |
CN107845385B (zh) | 2016-09-19 | 2021-07-13 | 南宁富桂精密工业有限公司 | 信息隐藏的编解码方法及*** |
WO2018066731A1 (ko) | 2016-10-07 | 2018-04-12 | 삼성전자 주식회사 | 통화 기능을 수행하는 단말 장치 및 방법 |
US11088941B2 (en) | 2017-03-23 | 2021-08-10 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for transmitting data, terminal device, and network device |
US10574830B2 (en) * | 2017-06-05 | 2020-02-25 | Qualcomm Incoporated | Methods for increasing VoIP network coverage |
US10645228B2 (en) * | 2017-06-26 | 2020-05-05 | Apple Inc. | Adaptability in EVS codec to improve power efficiency |
CN109286952B (zh) * | 2017-07-19 | 2022-08-02 | 中兴通讯股份有限公司 | 数据传输方法、装置及存储介质 |
CN108764469A (zh) * | 2018-05-17 | 2018-11-06 | 普强信息技术(北京)有限公司 | 一种降低神经网络所需功耗的方法和设备 |
US11456007B2 (en) | 2019-01-11 | 2022-09-27 | Samsung Electronics Co., Ltd | End-to-end multi-task denoising for joint signal distortion ratio (SDR) and perceptual evaluation of speech quality (PESQ) optimization |
US11646979B2 (en) | 2019-09-25 | 2023-05-09 | MIXHalo Corp. | Packet payload mapping for robust transmission of data |
CN110890945B (zh) * | 2019-11-20 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、终端及存储介质 |
CN112820306B (zh) * | 2020-02-20 | 2023-08-15 | 腾讯科技(深圳)有限公司 | 语音传输方法、***、装置、计算机可读存储介质和设备 |
CN112767955B (zh) * | 2020-07-22 | 2024-01-23 | 腾讯科技(深圳)有限公司 | 音频编码方法及装置、存储介质、电子设备 |
JP2024022698A (ja) * | 2020-10-30 | 2024-02-21 | 株式会社Preferred Networks | 通信装置及び通信方法 |
US12054157B2 (en) * | 2021-09-09 | 2024-08-06 | Toyota Motor North America, Inc. | Hardware timer data expiration |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2276995A (en) | 1994-04-08 | 1995-10-30 | Echelon Corporation | Method and apparatus for robust communications based upon angular modulation |
TW271524B (es) * | 1994-08-05 | 1996-03-01 | Qualcomm Inc | |
US5732389A (en) | 1995-06-07 | 1998-03-24 | Lucent Technologies Inc. | Voiced/unvoiced classification of speech for excitation codebook selection in celp speech decoding during frame erasures |
JP3254126B2 (ja) * | 1996-02-13 | 2002-02-04 | 株式会社日立国際電気 | 可変レート符号化方式 |
FI116181B (fi) * | 1997-02-07 | 2005-09-30 | Nokia Corp | Virheenkorjausta ja virheentunnistusta hyödyntävä informaationkoodausm enetelmä ja laitteet |
US6405338B1 (en) | 1998-02-11 | 2002-06-11 | Lucent Technologies Inc. | Unequal error protection for perceptual audio coders |
US6445686B1 (en) * | 1998-09-03 | 2002-09-03 | Lucent Technologies Inc. | Method and apparatus for improving the quality of speech signals transmitted over wireless communication facilities |
US20010041981A1 (en) * | 2000-02-22 | 2001-11-15 | Erik Ekudden | Partial redundancy encoding of speech |
JP2002314597A (ja) * | 2001-04-09 | 2002-10-25 | Mitsubishi Electric Corp | 音声パケット通信装置 |
JP4022427B2 (ja) * | 2002-04-19 | 2007-12-19 | 独立行政法人科学技術振興機構 | エラー隠蔽方法、エラー隠蔽プログラム、送信装置、受信装置及びエラー隠蔽装置 |
FI116016B (fi) | 2002-12-20 | 2005-08-31 | Oplayo Oy | Puskurointijärjestely |
CN1778062A (zh) * | 2003-04-21 | 2006-05-24 | Rgb网络有限公司 | 时分复用多程序加密*** |
US7546508B2 (en) | 2003-12-19 | 2009-06-09 | Nokia Corporation | Codec-assisted capacity enhancement of wireless VoIP |
US7668712B2 (en) * | 2004-03-31 | 2010-02-23 | Microsoft Corporation | Audio encoding and decoding with intra frames and adaptive forward error correction |
EP1603262B1 (en) | 2004-05-28 | 2007-01-17 | Alcatel | Multi-rate speech codec adaptation method |
US7944470B2 (en) | 2005-03-04 | 2011-05-17 | Armida Technologies Corporation | Wireless integrated security controller |
WO2007045273A1 (en) | 2005-10-17 | 2007-04-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for estimating speech quality |
US8255207B2 (en) | 2005-12-28 | 2012-08-28 | Voiceage Corporation | Method and device for efficient frame erasure concealment in speech codecs |
US20080077410A1 (en) | 2006-09-26 | 2008-03-27 | Nokia Corporation | System and method for providing redundancy management |
TWI382657B (zh) | 2007-03-01 | 2013-01-11 | Princeton Technology Corp | 音訊處理系統 |
CN101072083A (zh) * | 2007-06-04 | 2007-11-14 | 深圳市融合视讯科技有限公司 | 一种优化网络数据传输冗余纠错率的方法 |
US8352252B2 (en) | 2009-06-04 | 2013-01-08 | Qualcomm Incorporated | Systems and methods for preventing the loss of information within a speech frame |
EP2346028A1 (en) | 2009-12-17 | 2011-07-20 | Fraunhofer-Gesellschaft zur Förderung der Angewandten Forschung e.V. | An apparatus and a method for converting a first parametric spatial audio signal into a second parametric spatial audio signal |
US9047863B2 (en) | 2012-01-12 | 2015-06-02 | Qualcomm Incorporated | Systems, methods, apparatus, and computer-readable media for criticality threshold control |
-
2012
- 2012-12-18 US US13/718,797 patent/US9047863B2/en active Active
- 2012-12-19 US US13/719,701 patent/US9053702B2/en active Active
- 2012-12-19 JP JP2014552202A patent/JP2015510313A/ja not_active Ceased
- 2012-12-19 WO PCT/US2012/070721 patent/WO2013106181A1/en active Application Filing
- 2012-12-19 EP EP12813204.0A patent/EP2812895B1/en active Active
- 2012-12-19 BR BR112014017120-3A patent/BR112014017120B1/pt active IP Right Grant
- 2012-12-19 IN IN4644CHN2014 patent/IN2014CN04644A/en unknown
- 2012-12-19 KR KR1020147022449A patent/KR101570631B1/ko active IP Right Grant
- 2012-12-19 ES ES12813204.0T patent/ES2653949T3/es active Active
- 2012-12-19 CN CN201280066721.1A patent/CN104040622B/zh active Active
- 2012-12-19 DK DK12813204.0T patent/DK2812895T3/en active
- 2012-12-19 HU HUE12813204A patent/HUE037362T2/hu unknown
- 2012-12-20 KR KR1020147022450A patent/KR101585367B1/ko active IP Right Grant
- 2012-12-20 HU HUE12813673A patent/HUE032016T2/en unknown
- 2012-12-20 BR BR112014017119-0A patent/BR112014017119B1/pt active IP Right Grant
- 2012-12-20 JP JP2014552204A patent/JP5996670B2/ja active Active
- 2012-12-20 EP EP12813673.6A patent/EP2803065B1/en active Active
- 2012-12-20 WO PCT/US2012/071015 patent/WO2013106187A1/en active Application Filing
- 2012-12-20 ES ES12813673.6T patent/ES2621417T3/es active Active
- 2012-12-20 DK DK12813673.6T patent/DK2803065T3/en active
- 2012-12-20 TW TW101148840A patent/TWI499247B/zh active
- 2012-12-20 CN CN201280066664.7A patent/CN104040621B/zh active Active
- 2012-12-20 SI SI201230851A patent/SI2803065T1/sl unknown
-
2016
- 2016-04-27 JP JP2016089359A patent/JP6151405B2/ja active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2653949T3 (es) | Sistemas, procedimientos, aparatos y medios legibles por ordenador para el control del umbral de criticidad | |
US10424306B2 (en) | Frame erasure concealment for a multi-rate speech and audio codec | |
US8352252B2 (en) | Systems and methods for preventing the loss of information within a speech frame | |
US10475456B1 (en) | Smart coding mode switching in audio rate adaptation | |
RU2440628C2 (ru) | Системы и способы затенения первого пакета, соответствующего первой битовой скорости, во втором пакете, соответствующем второй битовой скорости |