ES2716756T3 - Codificación de las posiciones de los picos espectrales - Google Patents

Codificación de las posiciones de los picos espectrales Download PDF

Info

Publication number
ES2716756T3
ES2716756T3 ES17170337T ES17170337T ES2716756T3 ES 2716756 T3 ES2716756 T3 ES 2716756T3 ES 17170337 T ES17170337 T ES 17170337T ES 17170337 T ES17170337 T ES 17170337T ES 2716756 T3 ES2716756 T3 ES 2716756T3
Authority
ES
Spain
Prior art keywords
positions
coding
bits
spectral peaks
spectral
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
Application number
ES17170337T
Other languages
English (en)
Inventor
Volodya Grancharov
Sigurdur Sverrisson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2716756T3 publication Critical patent/ES2716756T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech 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/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/20Vocoders using multiple modes using sound class specific coding, hybrid encoders or object based coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech 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/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/22Mode decision, i.e. based on audio signal content versus external parameters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

DESCRIPCIÓN
Codificación de las posiciones de los picos espectrales
CAMPO TÉCNICO
La tecnología propuesta se relaciona de manera general a la codificación/decodificación de segmentos de una señal de audio y en particular a la codificación/decodificación de las posiciones de los picos espectrales
ANTECEDENTES
Muchas técnicas de codificación de audio explotan las características del oído humano. Por ejemplo un tono débil cercano a un tono fuerte puede no necesitar ser codificado, ya que el sistema auditivo humano es menos sensible a dichos tonos débiles. En los sistemas tradicionales, la así llamada codificación de audio perceptual, la cuantificación de los diferentes datos de frecuencia está basada en modelos del oído humano. Por ejemplo, se asignan más bits a los datos de frecuencias perceptualmente importantes y así la cuantificación es más fina y viceversa.
Un tipo de codificación de audio es la así llamada codificación de transformación. En la codificación de transformación, un bloque de muestras de audio de entrada es transformado, por ejemplo, a través de la Transformada de Coseno Discreta Modificada, procesado, y cuantificado. La cuantificación de los coeficientes transformados se realiza en base a su importancia perceptual. Un parámetro de audio que necesita ser codificado son las posiciones de picos espectrales. Se muestra un ejemplo de posiciones de picos espectrales para un segmento de audio, en el dominio transformado, en la figura 1a.
Las posiciones de picos espectrales son codificadas normalmente mediante el uso de un esquema de codificación sin pérdidas, tal como una codificación Huffman. Del documento US 2008/0312758 A1 también se conoce una aproximación para el intercambio entre dos esquemas de codificación sin pérdidas para codificar las posiciones de picos espectrales. Sin embargo, las soluciones de la técnica anterior consumen muchos bits en la codificación de los picos espectrales.
COMPENDIO
Sería deseable codificar las posiciones de los picos espectrales de una manera más eficiente que en las soluciones de la técnica anterior.
Según un primer aspecto, se proporciona un método de codificación de las posiciones de los picos espectrales de un segmento de señal de audio. El método comprende determinar cuál de los dos esquemas de codificación sin pérdidas requiere el menor número de bits para codificar las posiciones de los picos espectrales del segmento de la señal de audio, en donde un primer esquema de codificación sin pérdidas es adecuado para codificar distribuciones de posiciones de picos espectrales periódicas o semi periódicas y un segundo esquema de codificación sin pérdidas es adecuado para codificar distribuciones de posiciones de picos espectrales dispersas. El método comprende además seleccionar el esquema de codificación que requiera el menor número de bits para codificar las posiciones de los picos espectrales del segmento de la señal de audio e indicar el esquema de codificación seleccionado a un decodificador en asociación con las posiciones de los picos espectrales codificadas. El segundo esquema de codificación sin pérdidas comprende dividir un vector de bits que representa las posiciones de los picos espectrales en grupos de bits de igual tamaño consecutivos, realizando la operación lógica O de los bits de cada grupo de bits para formar un vector de bits de grupo, comprimiendo los grupos de bits distintos de cero explotando las limitaciones en la mínima distancia permitida entre dos picos consecutivos y formando un vector de bits comprimido concatenando el vector de bits de grupo y los grupos de bits distintos de cero comprimidos. Según un segundo aspecto, se proporciona un codificador de audio para codificar las posiciones de los picos espectrales de un segmento de señal de audio. El codificador de audio se configura para determinar cuál de los dos esquemas de codificación sin pérdidas requiere el menor número de bits para codificar las posiciones de los picos espectrales del segmento de la señal de audio, en donde un primer esquema de codificación sin pérdidas es adecuado para codificar distribuciones de posiciones de picos espectrales periódicas o semi periódicas y un segundo esquema de codificación sin pérdidas es adecuado para codificar distribuciones de posiciones de picos espectrales dispersas. El codificador de audio se configura además para seleccionar el esquema de codificación que requiere el menor número de bits para codificar las posiciones de los picos espectrales del segmento de la señal de audio y para indicar el esquema de codificación seleccionado a un decodificador en asociación con las posiciones de los picos espectrales codificadas. El segundo esquema de codificación sin pérdidas comprende dividir un vector de bits que representa las posiciones de los picos espectrales en grupos de bits de igual tamaño consecutivos, realizar la operación lógica O de los bits de cada grupo de bits para formar un vector de bits de grupo, comprimir los grupos de bits distintos de cero explotando las limitaciones en la mínima distancia permitida entre dos picos consecutivos y formar un vector de bits comprimido concatenando el vector de bits de grupo y los grupos de bits distintos de cero.
Según un tercer aspecto, se proporciona un dispositivo inalámbrico, que comprende un codificador de audio según el segundo aspecto.
Según un cuarto aspecto, se proporciona un programa informático para llevar a cabo el método según el primer aspecto. BREVE DESCRIPCIÓN DE LOS DIBUJOS
Las realizaciones, junto con los objetivos y las ventajas adicionales de las mismas, pueden ser comprendidas mejor haciendo referencia a la siguiente descripción tomada en conjunto con los dibujos adjuntos, en los cuales:
Las Figuras 1a y 1b son ejemplos de distribuciones de posiciones de picos espectrales.
Las Figuras 2 a 4 son diagramas de flujo que ilustran de manera ejemplar realizaciones del método de codificación de la tecnología propuesta.
La Figuras 5 a 9 son diagramas de bloques que ilustran de manera ejemplar realizaciones del codificador propuesto. La Figura 10 es un diagrama de bloques que ilustra una realización de un terminal de usuario propuesto.
La Figura 11 es un diagrama de flujo que ilustra un ejemplo del método de decodificación de la tecnología propuesta. Las Figuras 12 a 15 son diagramas de bloques que ilustran de manera ejemplar ejemplos del decodificador propuesto. Las Figura 16 es un diagrama de bloques que ilustra un ejemplo de un terminal de usuario propuesto.
DESCRIPCIÓN DETALLADA
En todos los dibujos, las mismas designaciones de referencia se pueden usar para elementos similares o correspondientes.
La tecnología propuesta lidia con la codificación sin pérdidas de las posiciones de los picos espectrales, como las extraídas de un pequeño segmento, por ejemplo de 10-40ms, de una señal de audio. La tecnología propuesta también lidia con la decodificación de las posiciones de los picos espectrales que han sido codificadas de acuerdo con esta tecnología.
Se sabe por los inventores que los métodos convencionales para codificar las posiciones de los picos espectrales fallan al abordar el hecho de que las posiciones de los picos en las señales de audio pueden tener cambios muy abruptos en su distribución, lo que hace ineficiente codificar las posiciones de los picos con un esquema de codificación único. En ciertos casos el espectro puede ser semi periódico, lo que hace a un esquema de codificación diferencial, o delta muy eficiente. En otros casos, los picos espectrales se pueden agrupar, dejando grandes regiones dispersas.
Un concepto principal de la tecnología propuesta es usar esquemas de codificación dedicados para las diferentes distribuciones de posiciones de los picos, y cambiar entre los esquemas de codificación de una manera cerrada. Cada uno de los diferentes esquemas de codificación debería ser adecuado para una distribución de posiciones de picos específica. Se entiende por adecuado por ejemplo que el esquema de codificación es especialmente eficiente para un cierto tipo de distribución de picos espectrales. Cuando se dice en la presente memoria que un esquema de codificación A es adecuado para una distribución de picos C y un esquema de codificación B es adecuado para una distribución de picos D, se debe suponer que generalmente A es más eficiente que B para la distribución de picos C, mientras que generalmente B es más eficiente que A para una distribución de picos D.
Supongamos que tenemos un conjunto de N posiciones espectrales {P1, P2, P3,..., Pn}, las cuales se han de comprimir y transmitir de una manera sin pérdidas. El número de picos así como su distribución varía con el tiempo. En las figuras 1a y 1b se ilustran ejemplos de los dos diferentes conjuntos de posiciones de picos espectrales.
La Figura 1a ilustra una distribución de picos espectrales que está cercana de ser periódica. Este caso es manejado de manera eficiente por, por ejemplo, la codificación delta descrita a continuación.
La Figura 1b ilustra una distribución de picos espectrales que está muy dispersa y tiene una gran distancia entre dos picos vecinos. Este caso es difícil de manejar con una codificación delta debido a la gran delta entre los picos.
Se ha descubierto por los inventores que grandes variaciones en el número de picos y en su distribución pueden, de manera ventajosa, ser manejados por una codificación con una compresión o esquema de codificación alternativos. En el presente documento, se pone el foco sobre dos esquemas de codificación ejemplares, que pueden ser designados como codificación delta y codificación dispersa, y que se describen a continuación. La codificación delta se podría designar de manera alternativa como codificación periódica. Sin embargo, es factible usar más de dos esquemas de codificación adecuados para diferentes distribuciones de posiciones de picos.
Codificación delta
Este esquema de codificación es adecuado para distribuciones de picos como la ilustrada en la figura 1a, que se puede caracterizar como periódica o semi periódica o cercana a ser periódica. El concepto de la codificación delta es formar diferencias, que en el presente documento se designan como d o A, entre las posiciones de picos espectrales consecutivos Pj o (P-i, P2, P3,..., Pn), en un segmento de señal de audio como:
4 =■ *!-/;
d2 =P1 I]
d n — P<t ~ ( -i j
Las diferencias, también designadas como deltas, son codificadas después usando un método de codificación adecuado. Un método de codificación preferido para las diferencias es la codificación Huffman. Supongamos que tenemos M deltas de diferentes tamaños. Estas se hacen corresponder con palabras de códigos de longitud variable, por ejemplo
Figure imgf000004_0001
Aquí, d(1) es la diferencia o el tamaño de paso dj que aparece más a menudo y que se hace corresponder por lo tanto a la palabra de código más corta “0”, mientras que d(M) es muy rara y se hace corresponder por lo tanto a la palabra de código más larga “111110”. En este ejemplo, la palabra de código más larga requiere 6 bits, pero tanto la palabra de código larga como la corta son factibles. Mediante la correspondencia de la delta más frecuente a la palabra de código más corta y de las deltas raras a las palabras de códigos más largas, el número de bits usados para codificar las deltas se minimizará. Este método de codificación es eficiente siempre que no haya muchos tamaños de paso que aparezcan demasiado frecuentemente. Dicho de otra manera, cuanto más diferentes sean los tamaños de paso más largas serán las palabras de código, y cuanto más a menudo aparezcan los tamaños de paso correspondidos a palabras de códigos largas, más disminuirá la eficiencia del método de codificación.
Las palabras de códigos Huffman se transmiten al decodificador, y las deltas correspondientes son entonces extraídas por el decodificador. Conociendo dj y Pj-1, el decodificador puede reconstruir Pj por iteración.
Además de las deltas, el decodificador necesita saber la posición inicial P0. Debido a las limitaciones impuestas sobre la distancia mínima entre picos, P0 es considerado como un caso especial. Por ejemplo, puede haber una restricción de que dos picos vecinos han de estar separados por al menos 2 posiciones vacías. Ya que no hay deltas más cortas que 3 en este caso, no son necesarias ningunas palabras de código Huffman para dichas deltas durante el resto del segmento o trama. Sin embargo, el primer pico en un segmento P0 de la señal de audio puede aparecer al comienzo de la escala (espectro) con un desplazamiento desde 0 que es menor que 3. Para evitar este problema, sin tener que añadir una serie de palabras de códigos Huffman para estas posibles deltas iniciales menores que 3, se usa un desplazamiento determinado desde -3 en lugar de un desplazamiento determinado desde 0. Así, cuando P0 está ubicado por ejemplo en la posición 1, se usa la palabra de código para A = 4, El resultado de dicha simple operación es que es posible limitar el número de palabras de código Huffman usadas. Esto minimizará la longitud de las palabras de código Huffman usadas, ya que en general, menos palabras de código Huffman proporciona palabras de código Huffman más cortas.
Codificación dispersa
Este esquema de codificación es adecuado para distribuciones de picos como la ilustrada en la figura 1b, que puede ser caracterizada como dispersa. Por dispersa se considera que implica que puede haber grandes distancias entre picos consecutivos y que los picos no son necesariamente periódicos. Suponiendo un ejemplo a continuación de un vector de posiciones de picos espectrales donde los unos “1” indican la presencia de un pico y los ceros “0” indican la ausencia de un pico:
Figure imgf000004_0002
En la codificación delta esto implicaría {P1 = 2 y P2 = 18}. El vector de posiciones de picos ejemplar anterior debería ilustrar los picos espectrales que están muy alejados en relación a las otras diferencias de picos, incluso aunque la distancia 16 pueda no considerarse muy lejana en un vector de ejemplo más auténtico.
El primer paso de este esquema de codificación dispersa es formar grupos de igual tamaño de, por ejemplo, 5 bits, como:
Figure imgf000004_0003
Entonces cada grupo es verificado en busca de elementos distintos de cero, por ejemplo mediante la realización de la operación O a los elementos dentro de cada grupo. El resultado se almacena en un segundo vector de bits, que es 5 veces más corto. Este vector de bit se ilustra en negrita a continuación para ser más fácilmente distinguible:
Figure imgf000004_0004
En esta realización ejemplar, el flujo de bits que debería transmitirse al decodificador se parecería a:
Figure imgf000004_0005
El decodificador lee la capa de señalización “1001” del flujo de bits. Estos 4 bits indican que lo que seguirá en el flujo de bits es una descripción del 1er y el 4° grupo, mientras que el 2° y 3er grupo han de ser rellenados con ceros.
Debido a las limitaciones anteriormente mencionadas en la mínima distancia permitida entre dos picos consecutivos, el esquema anterior se puede modificar para alcanzar además, aún sin pérdidas, una ganancia de compresión. Ya que sólo hay 8 posibles niveles para cada vector de 5 dimensiones, debido a la limitación de que los picos deben estar separados por al menos dos posiciones, estos vectores se pueden indexar con sólo 3 bits, véase la Tabla 1 más adelante. En esta realización el flujo de bits se parecería a:
Figure imgf000005_0001
y en lugar de 5 bits, como en el ejemplo de más arriba, sólo se requieren 3 bits para identificar cada grupo de bits distinto de cero.
Tabla 1: Indexación de vectores de 5 dimensiones. El índice de 3 bits se extrae del flujo de bits y se reconstruye el vector de 5 dimensiones correspondiente. grupo designado anteriormente y en la tabla,
Tabla 1
Figure imgf000005_0004
Un esquema de codificación de las posiciones de los picos espectrales dispersa sin pérdidas alternativo se puede basar en la operación lógica O entre bits tal como se describe en [1].
Cada uno de los esquemas de codificación descritos anteriormente tienen problemas para ciertas distribuciones de posiciones de pico:
• Un problema con el esquema de codificación dispersa es que puede aumentar realmente la cantidad de datos si la entrada no está suficientemente dispersa.
• Un problema con el esquema de codificación delta es que es muy ineficiente para valores atípicos, por ejemplo, pasos delta muy grandes, cuando la mayoría de las distancias son pequeñas.
Sin embargo, los dos esquemas de codificación descritos anteriormente pueden ser vistos como que se complementan el uno al otro, y se ha descubierto por los inventores que un sistema de codificación muy eficiente puede estar formado mediante la combinación de sus puntos fuertes. A continuación se esboza un ejemplo de una lógica de decisión en bucle cerrado:
Figure imgf000005_0002
donde
Ld es el número total de bits consumidos por el esquema de codificación delta.
Ls es el número total de bits consumidos por el esquema de codificación dispersa.
La lógica de decisión (8) requiere que ambos esquemas de codificación se puedan realizar realmente. En algunos casos, cuando la distancia más larga dmax entre dos picos consecutivos es mayor que la mayor distancia T que es posible para el código delta, basado en la tabla Huffman pre almacenada, el número total de bits Ld consumidos por el esquema de codificación delta no se puede calcular explícitamente. Para cubrir dichos casos la lógica de decisión (8) se puede modificar ligeramente a:
Figure imgf000005_0003
La primera parte de la sentencia O en la lógica de decisión (9) se puede considerar como un método abreviado ya que la codificación delta no se tiene que realizar explícitamente si la distancia dmax > T. Expresado de manera diferente, cuando el criterio dmax > T se cumple para un segmento o trama de una señal de audio, la codificación delta no se debería realizar, y se puede decidir usar la codificación dispersa sin comparar el resultado de ambos métodos de codificación. Esto es, en este caso se puede considerar que Ld es mayor que Ls por defecto, y sólo se necesita realizar la codificación dispersa.
Las Figuras 2 y 3 son diagramas de flujo que ilustran el método de la tecnología propuesta según al menos una realización. El método está dirigido a ser realizado por un codificador de audio, operable para codificar segmentos de señales de audio. En esta realización, se implementa la lógica de decisión (9), y el número ejemplar de esquemas de codificación sin pérdidas es dos. El método comprende determinar en 201 cuál de los dos esquemas de codificación de posiciones de picos espectrales es el que requiere el menor número de bits para codificar las posiciones de los picos espectrales de un segmento de una señal de audio; y seleccionar en 202 el esquema de codificación de posiciones de picos espectrales que requiere el menor número de bits para codificar los picos espectrales del segmento de la señal de audio. Esta realización podría también describirse, con más detalle, con referencia a la figura 3. En una acción 301, se determina si dmax, designada de manera alternativa como Amax, es mayor o no que T; (dmax > T). La condición podría, obviamente, de manera alternativa ser formulada por ejemplo como dmax ^ T'. Cuando dmax es mayor que T, se selecciona la codificación dispersa en 304, y las posiciones de los picos espectrales se pueden codificar usando el esquema de codificación dispersa. Esto permite tomar una decisión respecto a qué esquema de codificación usar antes de la codificación de las posiciones de los picos espectrales cuando dmax > T. La codificación delta se puede configurar para codificar de manera eficiente deltas que sean menores que T, mientras que no maneja necesariamente deltas mayores que T. En otras palabras, el tamaño de la tabla Huffman se puede optimizar junto con el esquema de codificación de las posiciones de los picos dispersa, de manera tal que la eficiencia del esquema de codificación dispersa para las deltas por encima de un cierto tamaño es explotado por dichas deltas que no están representadas en la tabla Huffman. Esta optimización resulta en un tamaño general de palabra de código corto en la tabla Huffman, lo cual es muy beneficioso para la eficiencia de la codificación. El esquema de codificación dispersa es el esquema de codificación que requiere el menor número de bits para dmax > T.
Cuando dmax no es mayor que T, esto es cuando la condición 301 no se cumple, las posiciones de los picos espectrales se codifican en 302 usando ambos esquemas de codificación. Esto es, las posiciones de los picos espectrales se codifican usando la codificación delta y la codificación dispersa, respectivamente, procesando dos resultados diferentes. Cada uno de los esquemas de codificación requiere un cierto número de bits, cf. los Ld y Ls anteriores, para codificar el conjunto actual de posiciones de los picos espectrales. Este número de bits se puede observar y los números se pueden comparar para determinar que esquema de codificación fue el más eficiente para la distribución de picos actual. Basado en el número respectivo de bits requeridos para los diferentes métodos, se puede determinar cuál de los esquemas de codificación requiere el menor número de bits para codificar el conjunto actual de posiciones de los picos espectrales, y el esquema de codificación que requiere el menor número de bits se puede seleccionar en 303. La determinación, esto es la comparación del número requerido de bits en este caso, se podría considerar como incorporada en la acción 303 o en la acción 302. El esquema de codificación seleccionado, ya sea el seleccionado en la acción 304 o en la acción 303, se puede entonces indicar en 306 al decodificador en asociación con las posiciones de los picos espectrales codificados. Esto es, en asociación con la transmisión de la versión de las posiciones de los picos espectrales que fue codificada mediante el uso del esquema de codificación seleccionado. La versión codificada con el otro esquema de codificación, el no seleccionado, no se ha de usar y se puede descartar.
La codificación delta, la cual también se puede designar como el primero de los dos esquemas de codificación de posiciones de picos espectrales sin pérdidas, es adecuada para la codificación de distribuciones de posiciones de picos espectrales periódicas o semi periódicas; y la codificación dispersa, la cual también se puede designar como el segundo de los dos esquemas de codificación de posiciones de picos espectrales sin pérdidas, es adecuada para las distribuciones de posiciones de picos espectrales dispersas. La codificación delta preferiblemente comprende la codificación delta de las posiciones de los picos espectrales y la codificación Huffman de los códigos delta, como se describió anteriormente. Esto podría ser referido de manera alternativa como codificación delta-Huffman.
El esquema de codificación de posiciones de picos espectrales dispersa puede, como se describió anteriormente, comprender dividir un vector de bits que representa las posiciones de los picos espectrales en grupos de bits de igual tamaño consecutivos (véase la expresión (4)); haciendo la operación O a los bits en cada grupo de bits para formar un vector de bits de grupo (véase la expresión (5)); comprimiendo los grupos de bits distintos de cero mediante la explotación de las limitaciones en la distancia mínima permitida entre dos picos consecutivos (véase la expresión (6) y la tabla 1); y formando además un vector de bits comprimido concatenando el vector de bits de grupo y los grupos de bits distintos de cero comprimidos (véase la expresión (7)). Se considera que el término “operación O” también abarca las variantes donde los bits de un grupo son revisados en busca de “1” de alguna otra forma, dando el mismo resultado que con la operación O. Por ejemplo, los bits del grupo podrían ser revisados uno a uno, y si se detecta un “1”, se determina que el grupo es un grupo de bits distinto de cero.
La Figura 4 es un diagrama de flujo que ilustra el método de la tecnología propuesta según una realización que implementa al menos la lógica de decisión (8) descrita anteriormente. El paso 401 codifica las posiciones de los picos espectrales de un segmento de una señal de audio de acuerdo con al menos dos esquemas de codificación de posiciones de picos espectrales sin pérdidas adecuados para las diferentes distribuciones de posiciones de picos espectrales. El paso 402 selecciona el esquema de codificación de posiciones de picos espectrales que requiere el menor número de bits para codificar las posiciones de los picos espectrales del segmento de la señal de audio. Las acciones 401 y 402 podrían ser idénticas a las acciones 302 y 303 de la figura 3.
Los pasos, funciones, procedimientos, módulos, unidades y/o bloques descritos en la presente memoria se pueden implementar en hardware usando cualquier tecnología convencional, tal como la tecnología de circuitos discretos o de circuitos integrados, que incluye tanto los circuitos electrónicos de propósito general como los circuitos específicos de aplicación.
Los ejemplos particulares incluyen uno o más procesadores digitales de señales configurados de manera adecuada y otros circuitos electrónicos conocidos, por ejemplo las puertas lógicas discretas interconectadas para realizar una función especializada o los Circuitos Integrados para Aplicaciones Específicas (ASIC).
De manera alternativa, al menos algunos de los pasos, funciones, procedimientos, módulos, unidades y/o bloques descritos anteriormente se pueden implementar en software tal como un programa informático para la ejecución por medio de un circuito de procesamiento adecuado que incluye una o más unidades de procesamiento.
El diagrama o los diagramas de flujo presentados en la presente memoria pueden considerarse como un diagrama o diagramas de flujo de ordenador, al ser realizados por uno o más procesadores. Se puede definir un aparato correspondiente como un grupo de módulos de función, donde cada paso realizado por el procesador corresponde a un módulo de función. En este caso, los módulos de función se implementan como un programa informático ejecutándose en el procesador.
Ejemplos de circuitos de procesamiento incluyen, pero no se limitan a, uno o más microprocesadores, uno o más Procesadores Digitales de Señales, DSP, una o más Unidades de Procesamiento Central, CPU, hardware de aceleración de video, y/o circuitos de lógica programable adecuados tales como una o más Matrices de Puertas Programables en Campo, FPGA, o uno o más Controladores Lógicos Programables, PLC.
También debería ser entendido que puede ser posible reusar las capacidades de procesamiento generales de cualquier dispositivo o unidad convencional en la cual se implemente la tecnología propuesta. Puede ser posible también reusar software existente, por ejemplo, mediante la reprogramación del software existente o mediante el añadido de nuevos componentes de software.
Las realizaciones descritas en la presente memoria también se relacionan a un codificador operable para codificar señales de audio. El codificador se configura para realizar al menos una realización del método realizado por un codificador descrito anteriormente. El codificador se asocia con las mismas características técnicas, objetivos y ventajas que el método descrito anteriormente y se ilustra por ejemplo en la figura 3. El codificador será descrito brevemente para evitar la repetición innecesaria.
A continuación se describirá un codificador ejemplar 500, configurado para permitir la realización de un método descrito anteriormente para la codificación de las posiciones de los picos espectrales con referencia a la figura 5. El codificador puede estar incluido en un terminal de usuario o estar incluido en un nodo de red, tal como una puerta de enlace. Se puede asumir que el codificador 500 se configura con la funcionalidad para realizar los dos esquemas de codificación de posiciones de picos espectrales, descritos anteriormente.
La figura 5 es un diagrama de bloques que ilustra una realización de un codificador 10 propuesto. Esta realización incluye los medios de procesamiento en forma de un procesador 22 y una memoria 24.
La memoria incluye instrucciones, por ejemplo, en forma de un programa informático que cuando son ejecutadas por los medios de procesamiento provocan que el codificador 10 determine cuál de los dos esquemas de codificación de posiciones de picos espectrales sin pérdidas requiere el menor número de bits para codificar las posiciones de los picos espectrales de un segmento de una señal de audio. Preferiblemente, el codificador 10 se configura para aplicar la lógica de decisión (9) como se describió anteriormente. Esto se puede realizar para determinar si un parámetro dmax excede un umbral, y si no, comparar, después de codificar las posiciones de los picos espectrales con ambos esquemas de codificación, el número de bits requeridos por los dos esquemas de codificación para codificar las posiciones de los picos espectrales. La ejecución de las instrucciones provoca además que el codificador 10 seleccione el esquema de codificación de posiciones de picos espectrales que requiere el menor número de bits para codificar las posiciones de los picos espectrales del segmento de la señal de audio. El codificador 10 se configura con los dos esquemas de codificación, que pueden ser parte de las instrucciones almacenadas en la memoria 24, o de manera alternativa se puede almacenar o implementar en alguna otra parte del codificador (no mostrada). Como antes, el primero de los dos esquemas de codificación de posiciones de pico espectrales sin pérdidas es adecuado para distribuciones de posiciones de picos espectrales periódicas o semi periódicas; y el segundo de los dos esquemas de codificación de las posiciones de pico espectrales sin pérdidas es adecuado para distribuciones de posiciones de pico espectrales dispersas. Esto podría describirse también como que el codificador 10 está operativo para codificar picos espectrales en dos modos de codificación diferentes;
Las instrucciones se pueden almacenar como un producto 20 de programa informático en un medio legible por ordenador (medio tangible no transitorio) y se pueden transferir a la memoria 24, como se indica por la flecha discontinua en el lado izquierdo de la figura. El segmento de la señal de audio se envía al procesador 22 sobre una unidad de entrada ENTRADA, y las posiciones de los picos espectrales se envían a un decodificador sobre una unidad de salida SALIDA. El esquema de codificación seleccionado se puede señalizar de manera explícita al decodificador, como se indica por la flecha discontinua en la figura 5, o como alternativa, puede ser detectado en el decodificador mediante una decodificación de prueba de la secuencia de bits recibidos en los modos de decodificación posibles y seleccionando el que resulte exitoso. La primera alternativa es menos compleja, pero requiere más ancho de banda. La segunda alternativa requiere menos ancho de banda, pero es más compleja. Alternativas similares aplican a las otras realizaciones descritas a continuación.
Una realización alternativa del codificador 10 se muestra en la figura 6. La figura 6 ilustra un codificador 10, operable para codificar señales de audio. El codificador 10 comprende una unidad de determinación 603 configurada para determinar cuál de los esquemas de codificación de posiciones de picos espectrales sin pérdidas requiere menor número de bits para codificar las posiciones de los picos espectrales de un segmento de una señal de audio. El codificador 10 comprende además una unidad de selección 604, configurada para seleccionar el esquema de codificación de posiciones de picos espectrales que requiere el menor número de bits para codificar las posiciones de los picos espectrales del segmento de la señal de audio.
La figura 7 es un diagrama de bloques que ilustra una realización ejemplar de un codificador 10 propuesto. El codificador 10 se configura para realizar un método para la codificación de las posiciones de los picos espectrales que implementa al menos la lógica de decisión (8) como se describió anteriormente. Un segmento de una señal de audio se envía a una unidad 16 de análisis de señal, que analiza el segmento para propósitos de codificación, Una de las características extraídas de este análisis es un conjunto de posiciones de picos espectrales. Este análisis puede ser realizado mediante el uso de un método adecuado de la técnica anterior. Estas posiciones de picos espectrales se envían a un codificador 12 de posiciones de picos espectrales configurado para codificar las posiciones de los picos espectrales del segmento de la señal de audio de acuerdo con al menos dos esquemas de codificación de posiciones de picos espectrales sin pérdidas adecuados para las diferentes distribuciones de posiciones de picos espectrales. El número total de bits de cada esquema de codificación, esto es, el número de bits requerido por el método respectivo para codificar las posiciones de los picos espectrales, se envía a un selector 14 de esquema de codificación configurado para seleccionar el esquema de codificación de posiciones de picos espectrales que requiera el menor número de bits para codificar las posiciones de los picos espectrales del segmento de la señal de audio. Las posiciones codificadas de los picos espectrales se envían a una unidad de salida 18 y se envían a un decodificador.
La figura 8 es un diagrama de bloques que ilustra otra realización del codificador 10 propuesto. Se envía un conjunto de posiciones de picos espectrales al codificador 10, el cual incluye un módulo 12 de codificación de posiciones de picos espectrales para la codificación espectral de las posiciones de picos del segmento de la señal de audio de acuerdo con al menos dos esquemas de codificación de posiciones de picos espectrales sin pérdidas adecuados para las diferentes distribuciones de posiciones de picos espectrales. El codificador 10 también incluye un módulo 14 de selección de esquema de codificación para seleccionar el esquema de codificación de posiciones de picos espectrales que requiere el menor número de bits para codificar las posiciones de picos espectrales del segmento de la señal de audio. Las posiciones de picos espectrales se envían a un decodificador, El esquema de codificación seleccionado también se puede indicar al decodificador, como se señaló anteriormente.
Cuando el codificador 10 se configura para soportar la lógica de decisión (9) descrita anteriormente, el esquema de codificación que selecciona el módulo 14 debería estar configurado además para determinar cuál de los al menos dos esquemas de codificación de posiciones de picos espectrales sin pérdidas requiere el menor número de bits para codificar las posiciones de los picos espectrales dependiendo también de un criterio relacionado a la distancia máxima entre dos posiciones de picos consecutivas. Esto es, el módulo 14 de selección de esquema de codificación debería ser configurado para determinar, antes de codificar las posiciones de los picos espectrales, si la distancia máxima dmax excede un umbral predeterminado o no, y tomar una acción de acuerdo con el resultado, cf. la figura 3.
La figura 9 es un diagrama de bloques que ilustra otra realización del codificador 10 propuesto. Esta realización está basada en un procesador 22, por ejemplo un microprocesador, que ejecuta un programa 30 informático para codificar las posiciones de picos espectrales de un segmento de una señal de audio. El programa informático se almacena en la memoria 24. El procesador 22 se comunica con la memoria sobre un bus de sistema. Los segmentos de la señal de audio entrantes son recibidos por un controlador 26 de entrada/salida (I/O) que controla un bus de I/O, al cual están conectados el procesador 22 y la memoria 24. Las posiciones codificadas de los picos espectrales obtenidas del software 30 son sacadas de la memoria 24 por el controlador 26 de I/O sobre el bus de I/O. El programa 30 informático incluye una unidad 32 de código para codificar las posiciones de los picos espectrales de un segmento de una señal de audio de acuerdo con dos esquemas de codificación de posiciones de picos espectrales sin pérdidas adecuados para las diferentes distribuciones de posiciones de picos espectrales, y una unidad 34 de código para determinar y seleccionar el esquema de codificación de posiciones de picos espectrales que requiere el menor número de bits para codificar las posiciones de picos espectrales del segmento de la señal de audio.
El programa informático que reside en la memoria se puede organizar como módulos de función apropiados configurados para realizar, al ser ejecutados por el procesador, al menos parte de los pasos y/o tareas descritas anteriormente, Un ejemplo de dichos módulos de función se ilustra en la figura 8. El software o programa informático puede realizarse como un producto de programa informático, que normalmente se carga o almacena en un medio legible por ordenador (medio tangible no transitorio). El medio legible por ordenador puede incluir uno o más dispositivos de memoria extraíbles o no extraíbles que incluyen, pero no se limitan a una Memoria de Sólo Lectura, ROM, una Memoria de Acceso Aleatorio, RAM, un Disco Compacto, CD, un Disco Versátil Digital, DVD, una memoria Bus Serie Universal, USB, una Unidad de Disco Duro, un dispositivo de almacenamiento HDD, una memoria flash, o cualquier otro dispositivo de memoria convencional. El programa informático puede así ser cargado en la memoria operativa de un ordenador o dispositivo de procesamiento equivalente para su ejecución por el circuito de procesamiento del mismo.
Por ejemplo, el programa informático incluye instrucciones ejecutables por el circuito de procesamiento, por lo cual el circuito de procesamiento es capaz o está operativo para ejecutar los pasos, funciones, procedimientos y/o bloques descritos en la presente memoria. El ordenador o circuito de procesamiento no tienen que estar dedicados a ejecutar sólo los pasos, funciones, procedimientos y/o bloques descritos en la presente memoria, sino que puede también ejecutar otras tareas. La tecnología propuesta también incluye un terminal de usuario que incluye un codificador de un segmento de una señal de audio como se describió anteriormente. El terminal de usuario puede ser un dispositivo por cable o inalámbrico.
Como se ha usado en la presente memoria, el término “dispositivo inalámbrico” puede referirse a un Equipo de Usuario, UE, un teléfono móvil, un teléfono celular, una Asistente Digital Personal, PDA, equipado con capacidades de comunicación por radio, un teléfono inteligente, un portátil o un Ordenador Personal, PC, equipado con un módem de banda ancha interno o externo, una tableta PC con capacidades de comunicación por radio, un dispositivo de comunicación por radio electrónico portátil, un dispositivo sensor equipado con capacidades de comunicación por radio o similares. En particular, el término “UE” debería ser interpretado como un término no limitante que comprende cualquier dispositivo equipado con un circuito de radio para la comunicación inalámbrica según cualquier estándar de comunicación relevante.
Como se ha usado en la presente memoria, el término “dispositivo por cable” puede referirse a al menos alguno de los dispositivos anteriores, con o sin capacidad de comunicación por radio, por ejemplo un PC, cuando se configura para la conexión por cable a una red.
La figura 10 es un diagrama de bloques que ilustra una realización de un terminal 50 de usuario propuesto. El ejemplo ilustra un UE. Una señal de audio se envía desde un micrófono a un conversor analógico/digital A/D, y la señal digital es procesada por un codificador 10 de acuerdo con la tecnología propuesta. En particular el codificador 10 codifica las posiciones de los picos espectrales de los segmentos de la señal de audio como se describió anteriormente (normalmente el codificador puede realizar otras tareas, tales como la transformación en frecuencia de los segmentos de la señal de audio y la codificación de otros parámetros que describen el segmento, pero estas tareas no se describen ya que son bien conocidas en la técnica y no forman una parte esencial de la tecnología propuesta). Las posiciones codificadas de los picos espectrales (y otros parámetros) se envían a una unidad de radio 40 para su transmisión a un decodificador. De manera opcional el esquema de codificación seleccionado puede ser también enviado al decodificador, como se señaló anteriormente.
Los ejemplos descritos en la presente memoria también se relacionan a un método de decodificación de un segmento de una señal de audio para decodificar las posiciones de picos espectrales. El método es un método correspondiente al método de codificación descrito anteriormente.
La figura 11 es un diagrama de flujo que ilustra un ejemplo del método de decodificación de la tecnología propuesta. En la acción 1101 se reciben las posiciones codificadas de los picos espectrales de un segmento de una señal de audio. En la acción 1102 se recibe un indicador del esquema de codificación que fue seleccionado para codificar las posiciones de los picos espectrales. En la acción 1103, se decodifican las posiciones de los picos espectrales en un modo de decodificación que se corresponde al esquema de codificación indicado. Esto se puede expresar también como que las posiciones de los picos espectrales se decodifican de acuerdo con el esquema de codificación indicado, esto es, mediante el uso de un esquema de decodificación correspondiente al esquema de codificación indicado. El esquema de codificación indicado es uno de los dos esquemas de codificación de posiciones de picos espectrales sin pérdidas, donde, como antes, el primero de los dos esquemas de codificación de posiciones de picos espectrales sin pérdidas es adecuado para distribuciones de posiciones de picos espectrales periódicas o semi periódicas; y el segundo de los dos esquemas de codificación de posiciones de picos espectrales sin pérdidas es adecuado para distribuciones de posiciones de picos espectrales dispersas.
Cuando se indica un esquema de codificación adecuado para distribuciones de posiciones de picos espectrales dispersas, las posiciones codificadas de los picos espectrales se pueden recibir en forma de un vector de bits de grupo y se pueden comprimir los grupos de bits distintos de cero indicados por el vector de bits de grupo. Esto se corresponde al esquema de codificación dispersa descrito anteriormente. Las posiciones respectivas en el vector de bits de grupo pueden representar entonces grupos de bits de igual tamaño consecutivos. Además, un grupo de igual tamaño que incluye un pico espectral debería ser separable de un grupo de igual tamaño que no incluye un pico espectral. Un grupo de igual tamaño que incluye un pico espectral podría ser también designado como un grupo de bits distintos de cero, y se indica de manera diferente en el vector de bits de grupo que un grupo de igual tamaño que no incluye un pico espectral. Por ejemplo, un grupo de bits distintos de cero podría ser indicado por “1” y un grupo que no incluye un pico espectral podría ser indicado por “0” en el vector de bits de grupo, como en las expresiones (5)-(7) anteriores.
Los grupos de bits distintos de cero, si hay alguno indicado en el vector de bits de grupo, se podrían descomprimir entonces basándose en las limitaciones en la distancia mínima permitida entre dos picos consecutivos. Esto es, los grupos de bits distintos de cero, que pueden ser concatenados al vector de bits de grupo en forma comprimida, pueden ser descomprimidos deshaciendo la correspondencia mediante el uso de por ejemplo una tabla, tal como la tabla 1 descrita anteriormente. Debido a las limitaciones o restricciones respecto a la distancia mínima permitida entre picos, no todas las secuencias son posibles para los grupos de bits distintos de cero, y así cada posible secuencia se puede hacer corresponder a una secuencia más corta, esto es, comprimirse, como se describió anteriormente.
Los grupos de “bits cero”, esto es los grupos que no incluyen ningún pico espectral, si hay alguno indicado en el vector de bits de grupo, se podrían descomprimir mediante la generación de una secuencia de ceros. Dicha secuencia de ceros debería ser del mismo tamaño que el grupo de bits distintos de cero descomprimidos, ya que los grupos deberían ser de igual tamaño. Habrá normalmente grupos de bits cero indicados en el vector de bits de grupo, dado que el esquema o modo de codificación dispersa se aplica para distribuciones de picos espectrales dispersas.
Cuando el esquema de codificación de posiciones de picos espectrales indicado es un esquema adecuado para distribuciones de posiciones de picos espectrales periódicas o semi periódicas, la decodificación de las posiciones de los picos espectrales recibidas puede comprender la decodificación Huffman y la decodificación delta, correspondiente a la codificación anteriormente descrita. El tamaño de la tabla Huffman usada para la decodificación Huffman se puede optimizar junto con el segundo esquema de codificación de posiciones de pico espectrales como se describió anteriormente.
En ejemplos alternativos, donde el codificador no indica el esquema de codificación seleccionado al decodificador, el método de decodificación de la tecnología propuesta podría comprender la así llamada decodificación de prueba de las posiciones de los picos espectrales en dos modos de decodificación de posiciones de picos espectrales adecuados para las diferentes distribuciones de posiciones de picos espectrales. El esquema o modo de decodificación que resulta en un conjunto decodificado exitosamente de posiciones de picos espectrales se supone corresponde al esquema de codificación seleccionado.
Los ejemplos descritos en la presente memoria también se relacionan a un decodificador operable para decodificar señales de audio. El decodificador se configura para realizar al menos un ejemplo del método de decodificación del segmento de la señal de audio para decodificar las posiciones de los picos espectrales descritas anteriormente. El decodificador se asocia con las mismas características técnicas, objetivos y ventajas que el codificador correspondiente y los métodos para la codificación y decodificación de las posiciones de picos espectrales descritas anteriormente. El decodificador será descrito brevemente para evitar la repetición innecesaria.
La figura 12 es un diagrama de bloques que ilustra un ejemplo de un decodificador 110 propuesto de segmentos de la señal de audio. Una unidad de entrada 116 recibe las posiciones codificadas de los picos espectrales y un indicador de esquema de codificación. El decodificador 110 incluye un decodificador 112 de posiciones de picos espectrales en un modo de decodificación que se corresponda al indicado de entre los dos modos de codificación de las posiciones de los picos espectrales adecuados para las diferentes distribuciones de las posiciones de los picos espectrales. Una unidad de salida 118 saca las posiciones decodificadas de los picos espectrales. Decodificar en un cierto “modo de decodificación” podría ser expresado de manera alternativa como usar un esquema de decodificación que se corresponde a un cierto esquema de codificación indicado para decodificar las posiciones codificadas recibidas de los picos espectrales.
En un ejemplo el decodificador 112 de las posiciones de los picos espectrales se configura para recibir las posiciones de los picos espectrales de un segmento de la señal de audio; para recibir un indicador del esquema de codificación que se seleccionó para codificar las posiciones de los picos espectrales; y para decodificar las posiciones de los picos espectrales en un modo de decodificación que se corresponda al esquema de codificación indicado. Lo último podría expresarse de manera alternativa por ejemplo como decodificar las posiciones de los picos espectrales basado en el esquema de codificación indicado, o como decodificar las posiciones de los picos espectrales de acuerdo con el esquema de codificación indicado. La figura 13 es un diagrama de bloques que ilustra otro ejemplo del decodificador 110 de segmentos de la señal de audio propuesto. Las posiciones codificadas de los picos espectrales y el indicador de esquema de codificación se envían a un módulo 112 de decodificación de posiciones de picos espectrales, el cual saca las posiciones decodificadas de los picos espectrales.
En un ejemplo el decodificador 110 de la figura 13 incluye un módulo 112 de decodificación de las posiciones de los picos espectrales para decodificar las posiciones codificadas recibidas de los picos espectrales de un segmento de una señal de audio en posiciones de picos espectrales en un modo de decodificación que se corresponda a un indicador recibido de un esquema de codificación que fue seleccionado para codificar las posiciones de los picos espectrales.
En otro ejemplo el decodificador 110 de la figura 13 incluye un módulo 112 de decodificación de las posiciones de los picos espectrales para la decodificación de prueba de las posiciones de los picos espectrales recibidas de un segmento de una señal de audio en posiciones de picos espectrales en al menos dos modos de decodificación de las posiciones de los picos espectrales adecuados para las diferentes distribuciones de posiciones de picos espectrales, y sacando un conjunto de posiciones de picos espectrales decodificadas con éxito.
La figura 14 es un diagrama de bloques que ilustra un ejemplo del decodificador propuesto. Este ejemplo incluye un procesador 22 y una memoria 24, donde la memoria contiene instrucciones ejecutables por el procesador. La ejecución de las instrucciones hace al decodificador 110 operativo para decodificar las posiciones de los picos espectrales en un modo de decodificación que se corresponde a uno de los al menos dos modos de codificación de posiciones de picos espectrales adecuados para las diferentes distribuciones de posiciones de picos espectrales. Las instrucciones se pueden almacenar como un producto 120 de programa informático en un medio legible por ordenador y ser transferidas a la memoria 24, como se indica por la flecha discontinua en el lado derecho de la figura. Las posiciones codificadas de picos espectrales y el esquema de codificación se envían al procesador 22 sobre una unidad de entrada ENTRADA, y las posiciones de picos espectrales decodificadas se sacan sobre una unidad de salida SALIDA.
En un ejemplo la ejecución de las instrucciones por el procesador representa al decodificador de la figura 14 operativo para recibir las posiciones codificadas de los picos espectrales de un segmento de una señal de audio; para recibir un indicador del esquema de codificación que fue seleccionado para codificar las posiciones de los picos espectrales; y para decodificar las posiciones de los picos espectrales en un modo de decodificación que se corresponde al esquema de codificación indicado.
La figura 14 es un diagrama de bloques que ilustra otro ejemplo del decodificador 110 propuesto. Este ejemplo está basado en un procesador 22, por ejemplo un microprocesador, que ejecuta un programa 130 de ordenador para decodificar las posiciones de los picos espectrales de un segmento de una señal de audio. El programa informático se almacena en la memoria 24. El procesador 22 se comunica con la memoria sobre un bus de sistema. Las posiciones codificadas de los picos espectrales y el indicador del esquema de codificación entrante son recibidos por un controlador 26 de entrada/salida (I/O) que controla un bus de I/O, al cual están conectados el procesador 22 y la memoria 24. Las posiciones (decodificadas) de los picos espectrales obtenidas del software 130 son sacadas de la memoria 24 por el controlador 26 de I/O sobre el bus de I/O. El programa 130 de ordenador incluye una unidad 132 de código para recibir las posiciones codificadas de los picos espectrales de un segmento de la señal de audio, una unidad 134 de código para recibir un indicador del esquema de codificación que fue seleccionado para codificar las posiciones de los picos espectrales, y una unidad 136 de código para decodificar las posiciones de los picos espectrales en un modo de decodificación que se corresponda al esquema de codificación indicado. Lo último también se puede expresar como: para decodificar las posiciones de los picos espectrales en correspondencia con el esquema de codificación indicado.
El programa informático que reside en la memoria se puede organizar como módulos de función apropiados configurados para realizar, al ser ejecutados por el procesador, al menos parte de los pasos y/o tareas descritas anteriormente. Un ejemplo de dichos módulos de función se ilustra en la figura 15.
La figura 16 es un diagrama de bloques que ilustra un ejemplo de un terminal de usuario propuesto. El ejemplo ilustra un UE. Se envía una señal de radio desde una antena a una unidad de radio 160, y la señal digital de la unidad de radio es procesada por un decodificador 110 de acuerdo con la tecnología propuesta. En particular el decodificador 110 decodifica las posiciones codificadas de los picos espectrales de los segmentos de una señal de audio como se describió anteriormente (normalmente el codificador puede realizar otras tareas, tales como la decodificación de otros parámetros que describen el segmento, pero estas tareas no se describen ya que son bien conocidas en la técnica y no forman parte esencial de la tecnología propuesta). Las posiciones decodificadas de los picos espectrales (y otros parámetros) se envían a una unidad 142 de reconstrucción de la señal conectada a un altavoz. El esquema de codificación seleccionado se puede recibir también en el decodificador, como se señaló anteriormente.
Las realizaciones descritas anteriormente son dadas simplemente como ejemplos, y debería ser entendido que la tecnología propuesta no se limita a estas. Será entendido por aquellos expertos en la técnica que varias modificaciones, combinaciones y cambios se pueden hacer a las realizaciones sin salir del alcance actual de la invención como se define en las reivindicaciones adjuntas. En particular, soluciones de partes diferentes en las diferentes realizaciones se pueden combinar en otras configuraciones, donde sea técnicamente posible.
Abreviaturas
ASIC Circuitos Integrados para Aplicaciones Específicas
CPU Unidad Central de Procesamiento
DSP Procesador Digital de Señales
FPGA Matrices de Puertas Programables en Campo
PLC Controlador Lógico Programable
Referencias
[1] D. Salomon, G. Motta, “Manual de Compresión de Datos”, Quinta Edición, 2010, p. 1111.

Claims (10)

REIVINDICACIONES
1. Un método de codificación de segmentos de una señal de audio para codificar las posiciones de los picos espectrales, comprendiendo el método:
- determinar (201) cuál de los dos esquemas de codificación de posiciones de picos espectrales sin pérdidas usar para codificar las posiciones de los picos espectrales de un segmento de una señal de audio, en donde un primer esquema de codificación de posiciones de picos espectrales sin pérdidas es adecuado para distribuciones de posiciones de picos espectrales periódicos o semi periódicos, y un segundo esquema de codificación de posiciones de picos espectrales sin pérdidas es adecuado para distribuciones de posiciones de picos espectrales dispersas
- seleccionar (202) el esquema de codificación que requiera el menor número de bits para codificar las posiciones de los picos espectrales del segmento de la señal de audio; e
- indicar (306) el esquema de codificación seleccionado a un decodificador en asociación con las posiciones de los picos espectrales codificadas;
caracterizado por que el segundo esquema de codificación sin pérdidas comprende:
- dividir un vector de bits que representa las posiciones de los picos espectrales en grupos de bits de igual tamaño consecutivos;
- realizar la operación O lógica de los bits de cada grupo para formar un vector de bits de grupo;
- comprimir los grupos de bits distintos de cero explotando las limitaciones en la mínima distancia permitida entre dos picos consecutivos; y
- formar un vector de bits comprimido mediante la concatenación del vector de bits de grupo y los grupos de bits distintos de cero comprimidos.
2. El método según la reivindicación 1, en donde la determinación se basa en la comparación del número de bits requeridos para el respectivo esquema después de la codificación (302, 401) del segmento de la señal de audio usando los dos esquemas.
3. El método según la reivindicación 1 o 2, en donde el primer esquema de codificación de las posiciones de los picos espectrales sin pérdidas comprende:
- la codificación delta de posiciones de pico;
- la codificación Huffman de los códigos delta.
4. Un codificador (10) de audio para codificar las posiciones de los picos espectrales de un segmento de la señal de audio, estando el codificador configurado para:
- determinar cuál de los dos esquemas de codificación de las posiciones de los picos espectrales sin pérdidas usar para codificar las posiciones de los picos espectrales de un segmento de una señal de audio, en donde un primer esquema de codificación de posiciones de picos espectrales sin pérdidas es adecuado para distribuciones de posiciones de picos espectrales periódicas o semi periódicas, y un segundo esquema de codificación de posiciones de picos espectrales sin pérdidas es adecuado para distribuciones de posiciones de picos espectrales dispersas;;
- seleccionar el esquema de codificación que requiera el menor número de bits para codificar las posiciones de los picos espectrales del segmento de la señal de audio; e
- indicar el esquema de codificación seleccionado a un decodificador en asociación con las posiciones de los picos espectrales codificadas;
caracterizado por que el segundo esquema de codificación sin pérdidas comprende:
- dividir un vector de bits que representa las posiciones de los picos espectrales en grupos de bits de igual tamaño consecutivos;
- realizar la operación O lógica de los bits de cada grupo para formar un vector de bits de grupo;
- comprimir los grupos de bits distintos de cero explotando las limitaciones en la mínima distancia permitida entre dos picos consecutivos; y
- formar un vector de bits comprimido mediante la concatenación del vector de bits de grupo y los grupos de bits distintos de cero comprimidos.
5. El codificador de audio según la reivindicación 4, estando además configurado para determinar cuál de los dos esquemas de codificación de las posiciones de los picos espectrales sin pérdidas es el que requiere el menor número de bits basado en la comparación del número de bits requeridos para los respectivos esquemas después de la codificación del segmento de la señal de audio usando los dos esquemas.
6. El codificador de audio según la reivindicación 4 o 5, en donde el primer esquema de codificación de las posiciones de los picos espectrales sin pérdidas comprende:
- la codificación delta de las posiciones de los pico;
- la codificación Huffman de los códigos delta.
7. Un dispositivo inalámbrico que comprende el codificador (10) de audio de acuerdo con cualquiera de las reivindicaciones 4 a 6.
8. El dispositivo inalámbrico de la reivindicación 7, en donde el dispositivo inalámbrico es uno de entre: un teléfono móvil, un teléfono celular, una Asistente Digital Personal, PDA equipada con capacidades de comunicación por radio, un teléfono inteligente, un portátil o un Ordenador Personal, PC, equipado con un módem de banda ancha interno o externo, una tableta PC con capacidades de comunicación por radio, y un dispositivo de comunicación por radio electrónico portátil, un dispositivo sensor equipado con capacidades de comunicación por radio.
9. Un nodo de red que comprende el codificador (10) de audio de acuerdo con cualquiera de las reivindicaciones 4 a 6.
10. Un programa (30) informático que comprende instrucciones que, al ser ejecutadas por un procesador, provocan que el procesador lleve a cabo el método según cualquiera de las reivindicaciones 1 a 3.
ES17170337T 2013-10-18 2014-10-10 Codificación de las posiciones de los picos espectrales Active ES2716756T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201361892652P 2013-10-18 2013-10-18

Publications (1)

Publication Number Publication Date
ES2716756T3 true ES2716756T3 (es) 2019-06-14

Family

ID=51868288

Family Applications (3)

Application Number Title Priority Date Filing Date
ES14795690.8T Active ES2638201T3 (es) 2013-10-18 2014-10-10 Codificación de las posiciones de los picos espectrales
ES17170337T Active ES2716756T3 (es) 2013-10-18 2014-10-10 Codificación de las posiciones de los picos espectrales
ES18209882T Active ES2814601T3 (es) 2013-10-18 2014-10-10 Codificación de las posiciones de los picos espectrales

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES14795690.8T Active ES2638201T3 (es) 2013-10-18 2014-10-10 Codificación de las posiciones de los picos espectrales

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES18209882T Active ES2814601T3 (es) 2013-10-18 2014-10-10 Codificación de las posiciones de los picos espectrales

Country Status (18)

Country Link
US (3) US9997165B2 (es)
EP (3) EP3058567B1 (es)
JP (3) JP6181863B2 (es)
KR (3) KR101870594B1 (es)
CN (3) CN110767241B (es)
AU (3) AU2014337410B2 (es)
BR (1) BR112016007515B1 (es)
CA (1) CA2927877C (es)
DK (1) DK3058567T3 (es)
ES (3) ES2638201T3 (es)
MX (3) MX350815B (es)
MY (1) MY176776A (es)
PL (3) PL3226242T3 (es)
PT (2) PT3058567T (es)
RU (3) RU2750644C2 (es)
TR (1) TR201901696T4 (es)
WO (1) WO2015057135A1 (es)
ZA (2) ZA201801760B (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK2831757T3 (da) * 2012-03-29 2019-08-19 Ericsson Telefon Ab L M Vektorkvantiserer
DK3058567T3 (en) * 2013-10-18 2017-08-21 ERICSSON TELEFON AB L M (publ) CODING POSITIONS OF SPECTRAL PEAKS
WO2021075167A1 (ja) * 2019-10-16 2021-04-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 量子化スケール係数決定装置、及び、量子化スケール係数決定方法
US11342932B2 (en) * 2020-05-13 2022-05-24 Computational Systems, Inc. Machine spectral data compression
US11544323B2 (en) 2020-07-20 2023-01-03 Microsoft Technology Licensing, Llc Annotations for enterprise knowledge graphs using multiple toolkits
US11573967B2 (en) 2020-07-20 2023-02-07 Microsoft Technology Licensing, Llc Enterprise knowledge graphs using multiple toolkits
WO2022128062A1 (en) * 2020-12-14 2022-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Transform for communication symbols
US11677416B2 (en) * 2021-05-17 2023-06-13 Radu Mircea Secareanu Hardware implementable data compression/decompression algorithm

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3155499B2 (ja) * 1997-11-26 2001-04-09 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 光ディスクのビット変換の方法、復調方法および装置
JP3434260B2 (ja) * 1999-03-23 2003-08-04 日本電信電話株式会社 オーディオ信号符号化方法及び復号化方法、これらの装置及びプログラム記録媒体
US6978236B1 (en) * 1999-10-01 2005-12-20 Coding Technologies Ab Efficient spectral envelope coding using variable time/frequency resolution and time/frequency switching
WO2001078062A1 (en) 2000-04-06 2001-10-18 Telefonaktiebolaget Lm Ericsson (Publ) Pitch estimation in speech signal
CA2388352A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for frequency-selective pitch enhancement of synthesized speed
US20040260540A1 (en) * 2003-06-20 2004-12-23 Tong Zhang System and method for spectrogram analysis of an audio signal
FI119533B (fi) * 2004-04-15 2008-12-15 Nokia Corp Audiosignaalien koodaus
CN101656074B (zh) * 2004-05-14 2013-01-23 松下电器产业株式会社 音频解码装置、音频解码方法以及通信终端和基站装置
US7930184B2 (en) * 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
US7885809B2 (en) * 2005-04-20 2011-02-08 Ntt Docomo, Inc. Quantization of speech and audio coding parameters using partial information on atypical subsequences
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
KR100851970B1 (ko) 2005-07-15 2008-08-12 삼성전자주식회사 오디오 신호의 중요주파수 성분 추출방법 및 장치와 이를이용한 저비트율 오디오 신호 부호화/복호화 방법 및 장치
CN101273404B (zh) * 2005-09-30 2012-07-04 松下电器产业株式会社 语音编码装置以及语音编码方法
RU2427978C2 (ru) * 2006-02-21 2011-08-27 Конинклейке Филипс Электроникс Н.В. Кодирование и декодирование аудио
BRPI0719886A2 (pt) * 2006-10-10 2014-05-06 Qualcomm Inc Método e equipamento para codificação e decodificação de sinais de áudio
EP2015293A1 (en) * 2007-06-14 2009-01-14 Deutsche Thomson OHG Method and apparatus for encoding and decoding an audio signal using adaptively switched temporal resolution in the spectral domain
US7774205B2 (en) * 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
US8527265B2 (en) * 2007-10-22 2013-09-03 Qualcomm Incorporated Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs
US8515767B2 (en) * 2007-11-04 2013-08-20 Qualcomm Incorporated Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs
AU2008339211B2 (en) * 2007-12-18 2011-06-23 Lg Electronics Inc. A method and an apparatus for processing an audio signal
ATE518224T1 (de) 2008-01-04 2011-08-15 Dolby Int Ab Audiokodierer und -dekodierer
ES2372014T3 (es) * 2008-07-11 2012-01-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Aparato y método para calcular datos de ampliación de ancho de banda utilizando un encuadre controlado por pendiente espectral.
EP2144230A1 (en) * 2008-07-11 2010-01-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Low bitrate audio encoding/decoding scheme having cascaded switches
US20100017196A1 (en) * 2008-07-18 2010-01-21 Qualcomm Incorporated Method, system, and apparatus for compression or decompression of digital signals
US8798776B2 (en) * 2008-09-30 2014-08-05 Dolby International Ab Transcoding of audio metadata
KR20100136890A (ko) 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
WO2011026247A1 (en) * 2009-09-04 2011-03-10 Svox Ag Speech enhancement techniques on the power spectrum
WO2011086923A1 (ja) * 2010-01-14 2011-07-21 パナソニック株式会社 符号化装置、復号装置、スペクトル変動量算出方法及びスペクトル振幅調整方法
PL2532001T3 (pl) * 2010-03-10 2014-09-30 Fraunhofer Ges Forschung Dekoder sygnału audio, koder sygnału audio, sposoby i program komputerowy wykorzystujące zależne od częstotliwości próbkowania kodowanie krzywej dopasowania czasowego
WO2012005210A1 (ja) * 2010-07-05 2012-01-12 日本電信電話株式会社 符号化方法、復号方法、装置、プログラムおよび記録媒体
KR101144016B1 (ko) * 2010-07-20 2012-05-09 한국과학기술원 Wi?Fi 신호지문 데이터베이스 확보 방법 및 이를 위한 시스템
KR101140737B1 (ko) * 2010-07-26 2012-05-03 전자부품연구원 기본 주파수 추출 장치, 보컬 멜로디 추출 장치 및 방법
US8924222B2 (en) * 2010-07-30 2014-12-30 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for coding of harmonic signals
US8990094B2 (en) * 2010-09-13 2015-03-24 Qualcomm Incorporated Coding and decoding a transient frame
MX2014004797A (es) * 2011-10-21 2014-09-22 Samsung Electronics Co Ltd Método y aparato de codificación sin perdida de energia, método y aparato de codificación de audio, método y aparato de decodificación sin perdida de energia y método y aparato de decodificación de audio.
DK3058567T3 (en) * 2013-10-18 2017-08-21 ERICSSON TELEFON AB L M (publ) CODING POSITIONS OF SPECTRAL PEAKS
MY182165A (en) 2014-05-08 2021-01-18 Ericsson Telefon Ab L M Audio signal discriminator and coder

Also Published As

Publication number Publication date
DK3058567T3 (en) 2017-08-21
RU2017138252A (ru) 2019-02-11
KR101940464B1 (ko) 2019-01-18
EP3471096A1 (en) 2019-04-17
PL3471096T3 (pl) 2020-11-16
KR20170105129A (ko) 2017-09-18
EP3226242B1 (en) 2018-12-19
US9997165B2 (en) 2018-06-12
US20210050027A1 (en) 2021-02-18
KR101782278B1 (ko) 2017-10-23
RU2017138252A3 (es) 2020-12-07
KR20180071390A (ko) 2018-06-27
MY176776A (en) 2020-08-21
RU2750644C2 (ru) 2021-06-30
ZA201901522B (en) 2020-09-30
AU2017203091A1 (en) 2017-06-01
ES2814601T3 (es) 2021-03-29
MX2016004448A (es) 2016-07-05
EP3058567A1 (en) 2016-08-24
CN110767241A (zh) 2020-02-07
AU2014337410B2 (en) 2017-02-23
CA2927877C (en) 2017-06-13
EP3226242A1 (en) 2017-10-04
JP2019124947A (ja) 2019-07-25
BR112016007515A2 (pt) 2017-08-01
MX368569B (es) 2019-10-08
JP6181863B2 (ja) 2017-08-16
BR112016007515B1 (pt) 2021-11-16
US10796705B2 (en) 2020-10-06
AU2019201596A1 (en) 2019-04-04
MX2019011955A (es) 2019-10-30
TR201901696T4 (tr) 2019-02-21
CN110910894A (zh) 2020-03-24
PL3226242T3 (pl) 2019-06-28
CA2927877A1 (en) 2015-04-23
KR101870594B1 (ko) 2018-06-22
AU2017203091B2 (en) 2018-12-20
RU2635876C1 (ru) 2017-11-16
PT3471096T (pt) 2020-07-06
CN110767241B (zh) 2023-04-21
JP2018022148A (ja) 2018-02-08
EP3471096B1 (en) 2020-05-27
KR20160070148A (ko) 2016-06-17
CN110910894B (zh) 2023-03-24
PT3058567T (pt) 2017-07-27
CN105849803A (zh) 2016-08-10
JP6486420B2 (ja) 2019-03-20
US20180247658A1 (en) 2018-08-30
EP3058567B1 (en) 2017-06-07
MX350815B (es) 2017-09-21
AU2019201596B2 (en) 2021-02-11
US20160225378A1 (en) 2016-08-04
RU2765886C1 (ru) 2022-02-04
CN105849803B (zh) 2019-10-15
AU2014337410A1 (en) 2016-05-12
ZA201801760B (en) 2019-07-31
PL3058567T3 (pl) 2017-11-30
JP6698897B2 (ja) 2020-05-27
WO2015057135A1 (en) 2015-04-23
ES2638201T3 (es) 2017-10-19
JP2016533515A (ja) 2016-10-27

Similar Documents

Publication Publication Date Title
ES2716756T3 (es) Codificación de las posiciones de los picos espectrales
ES2930366T3 (es) Método y aparato de codificación de audio
ES2822607T3 (es) Método de predicción y dispositivo de codificación/decodificación para una señal de banda de alta frecuencia
OA17868A (en) Coding and decoding of spectral peak positions.
OA18807A (en) Coding and decoding of spectral peak positions.