ES2764832T3 - Método de codificación y decodificación de pulso y códec de pulso - Google Patents

Método de codificación y decodificación de pulso y códec de pulso Download PDF

Info

Publication number
ES2764832T3
ES2764832T3 ES11797568T ES11797568T ES2764832T3 ES 2764832 T3 ES2764832 T3 ES 2764832T3 ES 11797568 T ES11797568 T ES 11797568T ES 11797568 T ES11797568 T ES 11797568T ES 2764832 T3 ES2764832 T3 ES 2764832T3
Authority
ES
Spain
Prior art keywords
index
pulse
track
pulses
positions
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
ES11797568T
Other languages
English (en)
Inventor
Fuwei Ma
Dejun Zhang
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2764832T3 publication Critical patent/ES2764832T3/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/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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • G10L19/107Sparse pulse excitation, e.g. by using algebraic codebook
    • 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/002Dynamic bit allocation
    • 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/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • 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/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders

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)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

Un método de codificación de pulso, que comprende: obtener (A1) pulsos que estén en las T pistas y que requieran ser codificados, en donde T en un número entero mayor o igual que 2; recopilar (A2) de manera separada, según las posiciones, estadísticas sobre al menos un pulso que se requiere codificar, para cada una de las pistas, para obtener: el número Nt de pulsos en cada una de las posiciones de pulso que tiene al menos un pulso en cada pista, la distribución de las posiciones de pulso que tienen al menos un pulso en cada pista según es representada por los vectores de posiciones de pulso Pt(Nt) = {pt(0) pt(1), ..., pt(Nt-1)}, y el número de pulsos en cada una de las posiciones de pulso que tiene al menos un pulso según es representado por los vectores de números de pulso SUt(Nt) = {sut(0), sut(1), ..., sut(Nt-1)}, en donde el subíndice t representa una pista t-ésima, y t [0, T-1], el pt(n) representa un número de serie de posición de una posición de pulso que tiene un pulso en la pista t-ésima, y sut(n) representa el número de pulsos de una posición pt(n); según el número {N0, N1, ..., NT-1} de posiciones de pulso que tienen al menos un pulso y están en cada una de las T pistas, determinar (A3) un primer índice I1, en donde el primer índice I1 corresponde a todas las posibles situaciones de distribución de posiciones de pulso que tienen al menos un pulso y están en cada una de las T pistas en el caso del número de las posiciones de pulso que tienen al menos un pulso, en donde el número {N0, N1, ..., NT-1} de las posiciones de pulso que tienen al menos un pulso es representado por el primer índice I1; determinar (A4) un segundo índice I2t de cada pista de manera separada según la distribución de las posiciones de pulso, Pt(Nt) = {pt(0) pt(1), ..., pt(Nt-1)}, que tienen al menos un pulso y están en cada pista, en donde el segundo índice indica, de entre todas las posibles situaciones de distribución correspondientes al primer índice I1, una situación de distribución que corresponde a la distribución de posiciones de pulso actuales que tienen al menos un pulso en una pista correspondiente; determinar (A5) un tercer índice I3t de cada pista de manera separada según el número de pulsos en cada posición de pulso, SUt(Nt) = {sut(0), sut(1), ..., sut(Nt-1)}, que tiene al menos un pulso y está en cada pista; y generar (A6) un índice Ind de código para las T pistas, en donde el índice de código comprende la información del primer índice y del segundo y tercer índices de cada pista; en donde: un primer índice corresponde a una combinación {N0, N1, ..., NT-1}; el índice Ind de código es generado adoptando la siguiente forma: **(Ver fórmula)** en donde Imax(t) representa un valor del límite superior de Indice(t), "∏" representa un productorio, y el Indice(t) es generado adoptando la siguiente forma: en una situación en la que un índice de símbolo no está comprendido, para una pista con un valor Nt correspondiente al primer índice: **(Ver fórmula)** , en donde "C" indica adquirir el número de combinaciones, y Mt representa el número total de posiciones en una pista t-ésima.

Description

DESCRIPCIÓN
Método de codificación y decodificación de pulso y códec de pulso
Campo de la invención
La presente descripción se relaciona con un método de codificación y decodificación de pulso y un códec de pulso.
Antecedentes de la invención
En las tecnologías de codificación de vectores, a menudo se usa un libro de códigos algebraico para realizar la codificación de cuantificación sobre una señal residual después de un filtrado adaptativo. Después de obtenerse la posición y la información de símbolo de un pulso de libro de códigos algebraico óptimo en una pista mediante búsqueda, se obtiene un valor de índice correspondiente mediante el cálculo de la codificación, de manera que un extremo de decodificación pueda reconstruir una secuencia de pulsos según el valor de índice. En una precondición en la que se asegura la reconstrucción sin pérdidas, los bits requeridos por un valor de índice de código se reducen tanto como sea posible, lo cual es uno de los mayores objetivos de la investigación y el desarrollo de los métodos de codificación de pulso de libro de códigos algebraico.
Un método de codificación preferido, es decir, el método de codificación de banda ancha multi tasa adaptativo (en inglés, Adaptive Multi-Rate Wideband - AMR_WB+) en codificación de voz es tomado como un ejemplo más adelante para ilustrar un método de codificación específico adoptado por un pulso de libro de códigos algebraico existente. Según las diferentes tasas de bits de código, se pueden codificar de 1 a N pulsos en cada pista. Se supone que cada pista tiene M = 2m posiciones, en el AMR_WB+, a continuación se describen respectivamente los procesos de codificación de 1 a 6 pulsos:
® Se codifica un pulso en cada pista.
Cada pista tiene 2m posiciones, por lo tanto en cada pista, un índice de posición de pulso requiere m bits para su codificación. Un valor de índice de 1 pulso con un símbolo se codifica como:
M m ) = p s x 2m,
donde p e [0, 2m - 1] es el índice de posición del pulso; s es el índice del símbolo del pulso; cuando un símbolo de pulso es positivo, s se establece como 0, y cuando el símbolo de pulso es negativo, s se establece como 1; i iPe [o, 2m+1 _ 1]
El número de bits requerido para codificar 1 pulso en cada pista es: m+1.
© Se codifican dos pulsos en cada pista.
Según el resultado de ® , se requieren m+1 bits para codificar 1 pulso en cada pista, y codificar un índice de posición del otro pulso requiere m bits. Ya que no hay requisitos especiales para ordenar los pulsos, se puede usar una relación de valor obtenida mediante la disposición de los índices de posición de los pulsos para indicar un símbolo del otro pulso. Un valor de índice de 2 pulsos se codifica como:
I2p(m) = p1 l1po x 2m = p1 p0 x 2m s x 22m,
donde pO, p1 e [0, 2m -1 ] son los índices de posición de los 2 pulsos respectivamente; s es un índice de símbolo de un pulso pO; una regla de indicación de símbolo específica de un pulso p1 es: pO < p1 indica que 2 símbolos de pulso son el mismo, pO > p1 indica que los 2 símbolos de pulso son opuestos el uno al otro; Í2Pe [0, 2m+1 -1],
El número de bits requerido para codificar 2 pulsos en cada pista es: 2m+1.
® Se codifican tres pulsos en cada pista.
Cada pista se divide en dos secciones: la Sección A y la Sección B. Cada sección incluye de manera individual 2mA posiciones. Una determinada sección incluye al menos 2 pulsos. Según el resultado de © , se requieren 2 x (m -1 ) 1 = 2m -1 bits para codificar la sección. Se busca otro pulso en toda la pista, y según el resultado de ® , se requieren m+1 bits. Además, se requiere 1 bit adicional para indicar la sección que incluye 2 pulsos. Un valor de índice de 3 pulsos se codifica como:
Isp(m) = I2p(m _ 1) k x 22m-1 M m ) x 22m,
donde k es un índice de la Sección; M m ) e [0, 23m+1-1],
El número de bits requerido para codificar 3 pulsos en cada pista es: 3m 1.
© Se codifican cuatro pulsos en cada pista.
Cada pista se divide en dos secciones: la Sección A y la Sección B. Cada sección incluye de manera individual 2m-1 posiciones. Las combinaciones de los números de pulsos incluidos en cada sección son como se muestra en la siguiente tabla.
Figure imgf000003_0001
En la tabla anterior, las bases de los bits requeridos correspondientes a cada tipo son: Para el tipo 0 y el tipo 4, en una sección que tiene 4 pulsos, se adopta el método similar al de ® , pero el número de pulsos para la búsqueda global es 2, que es equivalente a I2p(m - 2) k x 22m-3 I2p(m -1 ) x 22m'2; para el tipo 1, es equivalente a I1p(m -1 ) I3p(m -1) x 2m; para el tipo 2, es equivalente a I2p(m -1 ) I2p(m -1 ) x 22m'1; y para el tipo 3, es equivalente a I3p(m -1 ) I1p(m -1 ) x 23m-2
El tipo 0 y el tipo 4 se consideran como una situación posible, y los tipos 1 a 3 se consideran como una situación, de manera que existen en total 4 situaciones, por lo tanto se requieren 2 bits para indicar las situaciones correspondientes, y los tipos 1 a 3 cada uno requieren 4m - 2 2 = 4m bits. Además, para la situación que incluye el tipo 0 y el tipo 4, se requiere además 1 bit para su distinción, de manera que el tipo 0 y el tipo 4 requieren 4m - 3 2 1 = 4m bits. El número de bits requeridos para codificar 4 pulsos en cada pista es: 4m.
© Se codifican cinco pulsos en cada pista.
Cada pista se divide en dos secciones: la Sección A y la Sección B. Cada sección individualmente incluye 2mA posiciones. Una determinada sección incluye al menos 3 pulsos. Según el resultado de ® , se requieren 3 x (m - 1) 1= 3m - 2 bits para codificar esta sección. Los otros dos pulsos se buscan en la totalidad de la pista, y según el resultado de © , se requieren 2m 1 bits. Además, se requiere 1 bit adicional para indicar que la sección incluye 3 pulsos. Un valor de índice de 5 pulsos se codifica como:
I5p(m) = I3p(m-1) k x 23m-2 I1p(m) x 23m'1,
El número de bits requeridos para codificar 5 pulsos en cada pista es: 5m.
© Se codifican 6 pulsos en cada pista.
Cada pista se divide en dos secciones: la Sección A y la Sección B. Cada sección individualmente incluye 2m'1 posiciones. Las combinaciones de los números de pulsos incluidos en cada sección con como se muestra en la siguiente tabla.
Figure imgf000003_0002
En la tabla anterior, las bases de los bits requeridos correspondientes a cada tipo se pueden deducir según ® , lo cual no se describirá repetidamente.
Los tipos 0 y 6, los tipos 1 y 5, los tipos 2 y 4 son cada uno considerados como una situación posible, y el tipo 3 es considerado de manera separada como una situación, de manera que existen en total 4 situaciones, por lo tanto se requieren 2 bits para indicar las situaciones correspondientes, y el tipo 3 requiere 6m - 4 2 = 6m - 2 bits. Para aquellas situaciones que incluyen tipos combinados, se requiere 1 bit adicional para la distinción, de manera que otros tipos, excepto para el tipo 3, requieren 6m - 5 2 1 = 6m - 2 bits.
El número de bits requeridos para codificar 6 pulsos en cada pista es: 6m - 2 bits.
Sin embargo, en el método de codificación de pulso algebraico proporcionado por el AMR_WB+, se adopta una lógica de codificación similar a la recursión, una situación en la que el número de pulsos codificados es relativamente grande se divide en varias situaciones en las que el número de pulsos codificados es relativamente pequeño para su procesamiento, por lo tanto se complica el cálculo, y mientras tanto, como el número de pulsos codificados en la pista aumenta, la redundancia de los índices de código se acumula de manera gradual, lo cual puede provocar fácilmente el desperdicio de bits de código.
La solicitud de patente China N° 101 295 506 A describe un método de codificación que combina los impulsos necesarios a ser codificados según las posiciones y respectivamente codifica la cantidad de posiciones de impulso, la distribución de las posiciones de impulso en un carril y la cantidad de impulsos de cada posición de impulso. La invención proporciona también un método de decodificación correspondiente y un dispositivo de codificacióndecodificación.
La solicitud de patente EP N° EP 2157573 A1 describe un método de codificación, un método de decodificación, un codificador, y un decodificador son descritos en la presente memoria. Un método de codificación incluye: obtener la distribución de pulsos sobre cómo todos los pulsos a ser codificados en una pista se distribuyen en la pista; determinar un identificador de la distribución para identificar la distribución de pulsos según la distribución de pulsos; y generar un índice de codificación que lleve el identificador de distribución. Un método de decodificación incluye: recibir un índice de codificación; extraer el identificador de distribución a partir del índice de codificación, donde el identificador de distribución identifica la distribución de pulsos sobre como todos los pulsos codificados en una pista se distribuyen en la pista; determinar la distribución de pulsos sobre cómo todos los pulsos codificados en una pista se distribuyen en la pista según el identificador de distribución; y reconstruir el orden de pulsos en la pista según la distribución de pulsos.
Compendio de la invención
La presente invención proporciona un método de codificación de pulso que es capaz de ahorrar bits de código.
La invención se define en las reivindicaciones.
Según la presente invención un método de codificación de pulso incluye: obtener los pulsos que están en las T pistas y se requieren codificar, donde T en un número entero mayor o igual que 2; recopilar de manera separada, según las posiciones, estadísticas sobre un pulso que está en cada pista y se requiere codificar, para obtener el número Nt de posiciones de pulso que tienen pulsos en cada pista, la distribución de las posiciones de pulso que tienen pulsos en la pista según es representada por los vectores de posiciones de pulso Pt(Nt) = {pt(0), pt(1), ... , pt(Nt -1)}, y el número de pulsos en cada una de las posiciones de pulso que tiene un pulso como representado por los vectores de números de pulso SUt(Nt) = {sut(0), sut(1), ..., sut(N-1)}, donde el subíndice t representa una pista t-ésima, y t e [0, T-1 ], el pt(n) representa un número de serie de posición de una posición de pulso que tiene un pulso en la pista t-ésima, y la sut(n) representa el número de pulsos de una posición pt(n); según el número {No, N1, ..., Nj-1} de posiciones de pulso que tienen pulsos y están en cada una de las T pistas, determinar un primer índice I1, donde el primer índice I1 corresponde a todas las posibles situaciones de distribución de las posiciones que tienen al menos un pulso y están en cada una de las T pistas conforme al número de las posiciones de pulso que tienen pulsos, en donde el número {No, N1, ..., Nj.
1} de las posiciones de pulso que tienen pulsos es representado por éste; determinar un segundo índice I2t, de cada pista de manera separada según la distribución de las posiciones de pulso, Pt(Nt) = {pt(0), pt(1), ..., pt(Nt - 1), que tienen pulsos en cada pista, donde el segundo índice indica, de entre todos las situaciones de distribución posibles correspondientes al primer índice, una situación de distribución que corresponde a la distribución de las posiciones de pulso actuales que tienen pulsos en una pista correspondiente; determinar un tercer índice I3t, de cada pista de manera separada según el número de pulsos en cada posición de pulso, SUt(Nt) = {sut(0), sut(1), ..., sut(N t- 1)}, que tiene un pulso y está en cada pista; y generar un índice Ind de código para las T pistas, donde el índice de código incluye información del primer índice y del segundo y tercer índices de cada pista; en donde: un primer índice corresponde a una combinación {No, N1, ..., Nj-1}; el índice Ind de código es generado adoptando la siguiente forma:
T-1
lnd = ll+ ln d ¡c e (0 )x [ 7 W 0 ln d lce
Figure imgf000004_0001
lndlce(T - 1);
t= l
t tT T I»
donde lmax(t) representa un valor límite superior del Indice(t), 11 representa un productorio, y el Indice(t) es generado adoptando la siguiente forma:
en una situación en la que un índice de símbolo no está comprendido, para una pista con un valor Nt correspondiente al primer índice:
Figure imgf000005_0001
en donde “C” indica adquirir el número de combinaciones, y Mt representa el número total de posiciones en una pista t-ésima.
En una forma de implementación preferida el método de codificación de pulso incluye: obtener los pulsos que están en las T pistas y se requieren codificar, donde T en un número entero mayor o igual que 2; de manera separada recopilar, según las posiciones, las estadísticas sobre un pulso que está en cada pista y se requiere codificar, para obtener el número Nt de posiciones que tienen pulsos en cada pista, la distribución de las posiciones que tienen pulsos en cada pista, y el número de pulsos en cada posición que tienen un pulso, donde el subíndice t representa una pista t-ésima, y t e [0, T-1 ]; según el número de posiciones que tienen pulsos y están en cada pista, determinar un primer índice 111, de cada pista, donde el primer índice I11, corresponde a todas las posibles situaciones de distribución posibles de las posiciones que tienen pulsos y están en la pista conforme al número de posiciones que tienen pulsos, donde el número de las posiciones que tienen pulsos está representado por éste; determinar un segundo índice I2t, de cada pista de manera separada según la distribución de las posiciones que tienen pulsos en cada pista, donde el segundo índice indica, de entre todas las situaciones de distribución posibles correspondientes al primer índice, una situación de distribución que corresponde a la distribución de las posiciones actuales que tienen pulsos y está en la pista; determinar un tercer índice I3i, de cada pista de manera separada según el número de pulsos en cada posición que tiene un pulso y está en cada pista; y generar un índice Ind de código, donde el índice de código incluye información del primer, segundo, y tercer índices de cada pista.
La presente invención proporciona además un método de decodificación de pulso correspondiente, y un codificador y decodificador de pulso correspondiente.
En la presente invención, se codifican más de dos pistas de manera conjunta, de manera tal que el espacio libre del libro de códigos en la situación de una codificación de pista única se puede combinar durante la codificación conjunta para resultar en bits de código que se pueden ahorrar. Además, un pulso que está en cada pista y se requiere codificar se combina según la distribución de posiciones, y el número de posiciones que tienen pulsos, de las posiciones que tienen pulsos en la pista, y el número de pulsos en cada posición que tiene un pulso se codifican de manera separada, para evitar la codificación separada realizada en múltiples pulsos de una misma posición, ahorrando de este modo bits de código adicionales.
Breve descripción de los dibujos
La FIG. 1 es un diagrama de flujo esquemático de un método de codificación según la Realización 1 de la presente invención;
La FIG. 2 es un diagrama esquemático de la correspondencia de posición de pulso según la Realización 1 de la presente invención;
La FIG. 3 es un diagrama de flujo esquemático de un método de codificación según la Realización 2 de la presente invención;
La FIG. 4 es un diagrama de flujo esquemático de un método de codificación según la Realización 3 de la presente invención;
La FIG. 5 es un diagrama esquemático de la superposición de pulso de seguimiento según la Realización 4 de la presente invención;
La FIG. 6 es un diagrama esquemático de los índices de las pistas de distribución de pulsos según la Realización 4 de la presente invención;
La FIG. 7 es un diagrama de flujo esquemático de un método de decodificación según la Realización 5 de la presente invención;
La FIG. 8 es un diagrama de flujo esquemático de un método de decodificación según la Realización 6 de la presente invención;
La FIG. 9 es un diagrama de flujo esquemático de un método de decodificación según la Realización 7 de la presente invención;
La FIG. 10 es un diagrama esquemático de una estructura lógica de un codificador según la Realización 8 de la presente invención; y
La FIG. 11 es un diagrama esquemático de una estructura lógica de un decodificador según la Realización 9 de la presente invención.
Descripción detallada de las realizaciones
Una realización de la presente invención proporciona un método de codificación de pulso, en el que se codifican de manera conjunta más de dos pistas para ahorrar bits de código. Las realizaciones de la presente invención proporcionan además un correspondiente método de decodificación de pulso y códec de pulso. Más adelante se proporcionan las descripciones respectivas en detalle.
En un codificador de voz, la información de las posiciones y los símbolos (si están involucrados) de todos los pulsos en cada pista se obtienen a través de la búsqueda en el libro de códigos. La información necesita ser transferida a un extremo de decodificación de manera completa; de manera que el extremo de decodificación pueda recuperar de manera única la información de las posiciones y los símbolos (si están involucrados) de todos los pulsos. Mientras tanto, para disminuir la tasa de bits tanto como sea posible, se espera que se usen tan pocos bits como sea posible para transferir la información.
Se puede descubrir mediante el análisis teórico que, el número de permutaciones y combinaciones de posiciones y símbolos (si están involucrados) de todos los pulsos en una misma pista es un valor mínimo del espacio del libro de códigos, y el número correspondiente de bits de código es un valor del límite inferior teórico. El número total de posiciones en una pista y el número total de pulsos en la pista son específicos. Para las situaciones en las que el número total de posiciones en una pista y el número total de pulsos en la pista tienen diferentes valores, el número de permutaciones y combinaciones de las posiciones y los símbolos de todos los pulsos no es siempre una potencia entera de 2, por lo tanto el valor del límite inferior teórico del número de bits de código no es siempre un número entero, y en este caso, el número real de bits de código de la codificación de pista única es al menos la parte entera del valor del límite inferior teórico más 1, lo que inevitablemente provoca que parte del espacio del libro de códigos esté libre. Por ejemplo, la Tabla 1 proporciona un valor del límite inferior teórico y un valor del límite inferior real del número de bits de código y la situación del espacio libre cuando el número total W de pulsos requeridos para ser codificados es de 1 a 6 en una pista con el número total de posiciones siendo de 16.
Tabla 1
Figure imgf000006_0001
Se puede ver a partir de la Tabla 1 que, en muchas situaciones, el valor real del límite inferior puede incurrir aún en un gran desperdicio del espacio del libro de códigos, por lo tanto, la presente invención propone que se realice la codificación conjunta en más de dos pistas, y de esta manera, se pueda combinar espacio libre del libro de códigos en la codificación de pista única, y una vez que el espacio libre combinado sea suficiente, se puede reducir 1 bit de código real. Obviamente, para pistas del mismo tipo (tanto los números totales de las posiciones en las pistas como los números totales de pulsos en las pistas son los mismos), si sólo se realiza la codificación conjunta en K pistas, se puede ahorrar 1 bit de código, K > 1/(1 - kk), donde kk es la parte fraccional de un valor del límite inferior teórico de la codificación de pista única. Por ejemplo, para pistas con kk siendo inferior que 0,5, tales como las pistas que están en la Tabla 1 y con el número total de pulsos siendo 3, 4, y 5, la codificación conjunta de dos entre sí puede ahorrar 1 bit de código. Para las pistas que están en la Tabla 1 y con el número total de pulsos siendo de 6, la codificación conjunta de tres entre sí puede ahorrar 1 bit de código. Definitivamente, la codificación conjunta de pistas de diferentes tipos puede alcanzar también un mismo efecto, y sólo si una suma de kk de 2 pistas es menor que 1, o una suma de kk de 3 pistas es menor que 2, se puede ahorrar 1 bit; obviamente, si una suma de kk de 3 pistas es inferior que 1, se pueden ahorrar 2 bits, y el resto se puede deducir por analogía. La Tabla 2 proporciona una comparación entre la codificación conjunta de 2 pistas de un mismo tipo y la codificación de pista única (teniendo en cuenta que un pulso tiene un símbolo), donde el número total de posiciones en la pista es 16, y el número total de pulsos Ñ requeridos para ser codificados es de 3 a 5.
Tabla 2
Figure imgf000007_0002
La Tabla 3 proporciona una comparación entre la codificación conjunta de 2 a 3 pistas de diferentes tipos y una codificación de pista única (tenido en cuenta que un pulso tiene un símbolo), donde el número total de posiciones en la pista es 16, y el número total N ' de pulsos requeridos para ser codificados es de 3 a 5.
Tabla 3
Figure imgf000007_0001
Lo anterior proporciona el análisis teórico del ahorro de un número de bits en la codificación conjunta de múltiples pistas. Para conseguir un efecto teórico, se requiere un índice de código para usar el espacio del libro de códigos de manera tan eficiente como sea posible. Los métodos de codificación para conseguir un valor real del límite inferior de bits de la codificación conjunta de múltiples pistas se proporcionan de manera separada a continuación a través de las realizaciones específicas.
Realización 1: Un método de codificación de pulso, tal como se muestra en la FIG. 1 incluye:
A1: Obtener pulsos que estén en T pistas y se requieran codificar, donde T en un número entero mayor o igual a 2.
En las T pistas, el número total de pulsos requeridos para ser codificados en cada pista se determina normalmente según una tasa de bits. Obviamente cuanto más sea el número de pulsos que se requieren codificar, mayor será el número de bits requerido por un índice de código, y mayor tasa de bits. En la especificación, num_pulsot representa el número total de pulsos que están en una pista t-ésima y son requeridos para ser codificados. Se supone que num_pulsot = %, t e [0, T-1 ]. Los números totales de pulsos en las pistas de codificación conjunta pueden ser los mismos, y también pueden ser diferentes.
A2: Recopilar de manera separada, según las posiciones, estadísticas sobre un pulso que está en cada pista y se requiere codificar, para obtener el número de Nt de posiciones que tienen pulsos en cada pista, la distribución de las posiciones que tienen pulsos en la pista, y el número de pulsos en cada posición que tiene un pulso.
En la especificación: num_pulsot representa el número de posiciones que tienen pulsos y están en la pista t-ésima. La distribución de los % pulsos en la pista puede superponer en términos de posición, y se supone que num_pulsot = Nt, de manera que obviamente Nt e [1, M],
Un vector de posiciones de pulso Pt(Nt) = {pt(0), p-i(t), ..., pt(Nt-1)} representa la distribución de las posiciones que tienen pulsos y están la pista t-ésima, donde pt(n) representa un número de serie de posición de una posición que tiene un pulso en la pista t-ésima, n e[0, Nt-1], pt(n) e [0, Mt-1], Mt en la especificación representa el número total de posiciones en la pista t-ésima, generalmente Mt puede ser 8, 16 y así sucesivamente, y los números totales de posiciones en las pistas de la codificación conjunta pueden ser las mismas, y pueden también ser diferentes.
Un vector de números de pulso SUt(Nt) = {sut(0), sut(1), ..., sut(Nt-1)} representa el número de pulsos en cada posición que tiene el pulso y está en la pista t-ésima, donde sut(n) representa el número de pulsos de una posición pt(n), y obviamente sut(0) sut(1) ...+ sut(Nt-1) = %.
Además, un pulso requerido para ser codificado puede tener un símbolo, esto es, puede tener una característica de ser positivo o negativo. En este caso, cuando se recopilan las estadísticas, según las posiciones, sobre los pulsos que están en la pista y son requeridos para ser codificados, se requiere además que se obtenga la información de pulso de cada posición que tiene el pulso, y en la especificación:
Un vector de símbolos de pulso St(Nt) = {st(0), st(1), ..., st(Nt-1)} representa la información de símbolo de pulso de cada posición que tiene el pulso y están en la pista t-ésima, donde st(n) representa un símbolo de pulso de la posición pt(n) y se llama un índice de símbolo de la posición pt(n). En base a ese símbolo de pulso representado por st(n) tiene una naturaleza binaria de ser positivo o negativo, se puede adoptar de manera general la siguiente forma de codificación simple: st(n) = 0 se usa para indicar un pulso positivo, y st(n) = 1 se usa para indicar un pulso negativo. Definitivamente, para pulsos que se requieran codificar, un símbolo de pulso no es una característica necesaria, y según las necesidades actuales, un pulso puede tener sólo características de posición y cantidad y en este caso no se requiere recopilar estadísticas sobre la información de símbolo de pulso.
Obviamente, los valores en Pt(Nt), SUt(Nt) y St(Nt) tienen una correspondencia uno a uno.
Después de que los parámetros Nt, Pt(Nt), SUt(Nt) y St(Nt) requeridos para la codificación conjunta de las pistas sean obtenidos recopilando estadísticas, se requiere que los parámetros se codifiquen en índices, y se establece la correspondencia entre los parámetros y los índices, de manera que un lado decodificador pueda recuperar los parámetros correspondientes según los índices. Se pueden adoptar dos formas indicadoras para la correspondencia. Una es que se use una forma algebraica para indicar una relación de cálculo, y en esta situación, un lado decodificador realiza el cálculo hacia delante sobre los parámetros para obtener los índices, y el lado decodificador realiza el cálculo inverso sobre los índices para obtener los parámetros. La otra es que se use una forma de correspondencia para indicar una relación de consulta, y en esta situación, los lados codificador y decodificador ambos necesitan almacenar una tabla de correspondencia que asocia los parámetros con los índices. La selección se puede realizar sobre los dos tipos de correspondencias según las características específicas de los parámetros. Hablando de manera general, en una situación con una gran cantidad de datos, la correspondencia de diseño indicada mediante la relación de cálculo puede ahorrar la cantidad de almacenamiento de los lados codificador y decodificador, y es favorable. La codificación de cada parámetro se ilustra más adelante respectivamente.
A3: Según el número {No, Ni, ..., Nt-i } de posiciones que tienen pulsos y están en cada pista, determinar un primer índice I1, donde el primer índice I1 corresponde a todas las posibles situaciones de distribución que tienen pulsos y están en cada pista conforme al número de posiciones que tienen pulsos, donde el número de posiciones que tienen pulsos es representado por éste.
T-l
n
El número total de situaciones posibles de la combinación {No, N-i, N j.i} es i=o . El valor de Nt no es grande, generalmente el número T total de pistas de la codificación conjunta es también no muy grande, de manera que el número total de situaciones posibles de la combinación {No, Ni, ..., Nt-i } no es muy grande, y por lo tanto es factible que la correspondencia entre la combinación {No, Ni, ..., Nt-i } y el primer índice I1 adopte la relación de cálculo o la relación de consulta.
Cuando la correspondencia entre la combinación {No, N1, ..., Nt-1} e I1 se establece, generalmente, se puede establecer una relación uno a uno entre estos e I1, esto es, un primer índice corresponde a una combinación {No, N1, ..., N-m }. El valor de Nt de num_post determina el número total Wt(Nt) de todas las posibles situaciones de Pt(Nt), Wt(Nt)
T-l n w >(n >) = , y “C” indica la adquisición del número de combinaciones, de manera que 11 corresponde a las t=o posibles combinaciones Pt(Nt) {Po(No), P1(N1), ..., Pt-1(Nt-1)}.
Definitivamente, si algunos valores Nt de una cierta pista corresponden a un pequeño número de situaciones de Pt(Nt), los Nt valores se pueden combinar para corresponderse a un mismo I1, esto es, al menos un I1 corresponde a más de dos combinaciones {No, N1, ..., Nt-1}, y en este caso, se requiere un índice Ift extra adicional para distinguir las combinaciones {No, N1, ..., Nt-1} correspondientes al mismo I1, esto es, el índice adicional Ift se usa para distinguir además un valor de Nt actual de una pista con un valor de Nt distinto de uno correspondiente a I1.
Se puede considerar un I1 diferente como un índice de clasificación de la codificación conjunta de las pistas, lo que divide el espacio del libro de código de la codificación conjunta total en varias partes según las combinaciones de los números de las posiciones de pulso de cada pista. Las situaciones de clasificación de combinación de la codificación conjunta se ilustran más adelante mediante los ejemplos. La Tabla 4 es un esquema de combinación de clasificación de codificación conjunta de 3 pulsos 2 pistas. En total existen 3 x 3 Nt combinaciones de valor, y cada combinación corresponde a una clasificación (I1). Se supone que los números Mt totales de las posiciones en las pistas son todos Tabla 4
Figure imgf000009_0001
La Tabla 5 es un esquema de clasificación de combinaciones de codificación conjunta de 4 pulsos 2 pistas. En total son 4 x 4 combinaciones de valores Nt, y de manera similar, cada tipo de combinación corresponde a una clasificación (I1). Se supone que los números Mt totales de las posiciones en las pistas son todos de 16.
Tabla 5
Figure imgf000009_0002
La Tabla 6 es un esquema de clasificación de combinaciones de codificación conjunta de 5 pulsos 2 pistas. Lo que es diferente de los dos ejemplos anteriores es que, las situaciones de Nt = 1, 2, 3 se combinan para la clasificación. En total existen 3 x 3 clasificaciones (I1), y algunas clasificaciones corresponden cada una a múltiples combinaciones de valores Nt. Se supone que los números Mt totales de posiciones en las pistas son todos de 16.
Tabla 6
Figure imgf000010_0002
Se puede ver a partir de la Tabla 6 que, los valores Nt (generalmente valores Nt correspondientes a los números pequeños de combinaciones de posiciones) se combinan entre sí para la clasificación, lo que puede reducir de manera efectiva el número total de clasificaciones de codificación conjunta (por ejemplo, el número de clasificaciones es 9 en la Tabla 6, lo que bastante menor que el número de clasificaciones, 25, en una situación de correspondencia de uno a uno). Definitivamente, por consiguiente, se requiere que el índice Ift extra adicional, se use para determinar un valor Nt actual en una situación de clasificación donde no existen valores Nt. Esto es, el espacio dividido por I1 se divide además en un subespacio identificado por el índice Ift adicional.
A4: Determinar un segundo índice I2t de cada pista de manera separada según la distribución Pt(Nt) de posiciones que tienen pulsos y están en cada pista, donde el segundo índice I2t, indica, entre todas las posibles situaciones de distribución correspondientes al primer índice I1, una situación de distribución que corresponde a la distribución de las posiciones actuales que tienen pulsos en una pista correspondiente.
El número posible total de Pt(Nt) es Wt(Nt) = y la cantidad de datos es grande, por lo tanto es más adecuado adoptar la relación de cálculo para la correspondencia con el segundo índice I2t, y definitivamente es factible también adoptar la relación de consulta. Obviamente, Wt(Nt) es el número de todos los posibles valores de I2t Si un valor de I2t, se cuenta empezando desde 0, I2t £[0, Wt(Nt)-1].
Definitivamente, en una situación en la que se necesita usar el índice ift adicional, el valor Nt que determina un rango de I2t se determina de manera conjunta por el primer índice I1 y el índice Ift adicional.
Para determinar la correspondencia entre Pt(Nt) e I2t a través del cálculo algebraico, se proporciona a continuación una fórmula de cálculo del segundo índice I2t:
Figure imgf000010_0001
donde pt(n) representa un número de serie de posición de una posición n-ésima que tiene un pulso en una pista, n e [0, Nt-1], p,(0) e [0, Mt -N t], pt(n )e [pt(n-1)+1, Mt -Nt n]„ p,(0) < pt(1) < ... < pt (Nt -1), o pt(0) > p,(1) >... >p t (Nt -1).
Adoptando el método anterior, se puede obtener el segundo índice I2t de cada pista a través de la relación de cálculo. Ya que la cantidad de datos ocupados por I2t en el índice de código es grande, adoptar el método de cálculo puede reducir la cantidad de almacenamiento en tanto el lado codificador como decodificador tanto como sea posible. Mientras tanto, ya que I2t se codifica de manera continua y corresponde estrictamente uno a uno a Pt(Nt), se pueden usar los bits de código a un grado máximo, evitando de este modo el desperdicio. Por principios, la deducción específica y las descripciones del método de cálculo, se puede hacer referencia a la Solicitud de Patente China (la fecha de la publicación es 29 de octubre del 2008) con el N° de publicación siendo CN 101295506, y en concreto se puede hacer referencia a la página 13 línea 18 hasta la página 15 línea 9 de la especificación del archivo de solicitud (Realización 2, dibujos 14 y 15); y para un método de cálculo de decodificación correspondiente, se puede hacer referencia a la página 16 línea 23 hasta la página 17 línea 12 de la especificación del archivo de solicitud (Realización 4).
A5: Determinar un tercer índice I3t de cada pista de manera separada según el número SUt(Nt) de pulsos en cada posición que tiene el pulso y está en la pista.
SUt(Nt) es un vector que tiene el mismo número de dimensiones que Pt(Nt), pero que está limitado a sut(0) sut(1) ... sut(Nt -1 ) = 3Ví, y de manera general el valor de % no es grande, normalmente de 1 a 6, por lo tanto el número total posible de SUt(Nt) no es grande, y es factible adoptar la relación de cálculo o la relación de consulta para la correspondencia con el tercer índice I3t. Se debería observar que, en algunas situaciones extremas, por ejemplo Nt = 1 o Nt = % , en este caso SUt(Nt) sólo tiene una situación posible, no es requerido ningún I3t específico para su indicación, y el I3t puede ser considerado como cualquier valor no afectando a la generación de un índice de código final.
Para determinar la correspondencia entre SUt(Nt) e I3t, a través de un cálculo algebraico, se proporciona a continuación un método de cálculo del tercer índice I3t:
Para una pista t-ésima, las situaciones en las que las posiciones Nt que tienen pulsos tengan % pulsos se hacen corresponder a las situaciones en que las Nt posiciones tienen % - Nt pulsos, donde 3Ví representa el número total de pulsos que se requieren codificar y en la pista t-ésima. Por ejemplo, en los cuatros tipos de situaciones de 6 pulsos 4 posiciones (% = 6, Nt = 4) mostradas en las FIG. 2, SUt(Nt) es siempre {1,2, 1, 2}, se resta 1 del número de pulsos en cada posición (ya que cada posición tiene al menos un pulso) para obtener {0, 1, 0, 1} esto es, la información de SUt(Nt) se hace corresponder a una situación de codificación de 2 pulsos 4 posiciones.
Según el orden establecido, todas las posibles situaciones de distribución de % - Nt pulsos en las Nt posiciones se disponen, se usa un número de serie de disposición como el tercer índice I3t, que indica el número de pulsos en una posición que tiene un pulso.
Una fórmula de cálculo que refleja el método de cálculo anterior es:
Figure imgf000011_0001
en donde A?Vt = % - Nt„ PPT = 5Vt -1, q(h) representa un número de serie de posición de un (h 1)-ésimo pulso, h £ [0, A?Vt -1 ], q(h) £ [0, Nt -1 ], q(0) < q(1) < ... < q(A?Vt -1), o q(0) > q(1) > ... > q(A?Vt - 1), y Z indica un sumatorio.
Por principios, la deducción específica y las descripciones del método de cálculo, se puede hacer referencia a la Solicitud de Patente China (la fecha de publicación es el 18 de Marzo de 2009) con el N° de publicación siendo CN101388210, y concretamente se puede hacer referencia a la página 8 línea 23 hasta la página 10 línea 7 de la especificación del archivo de solicitud (realización 2, dibujo 6); y para un método de cálculo correspondiente, se puede hacer referencia a la página 21 línea 10 hasta la página 21 línea 27 de la especificación del archivo de solicitud (Realización 6).
A6: Generar un índice Ind de código general de las T pistas, donde el índice Ind de código incluye información del primer índice I1 y del segundo y tercer índices I2t e I3t, de cada pista.
El I1, I2t, I3t, el índice Ift adicional (si está involucrado) y el índice Ist (si está involucrado) de símbolo se pueden ubicar en el índice de código de cualquier manera que puedan ser identificados por el lado decodificador. En consideración de una precondición de que el número total num_pulsot de pulsos requeridos para ser codificados en cada pista es específico, el valor Nt de cada num_pulsot indicado por I1 determina un rango de variación de I2t e I3t, esto es, determina el número de bits de código requeridos por I2t e I3t (si está involucrado, también determina el número de bits de código requeridos por Ist), por lo tanto, se pueden adoptar las siguientes formas para construir el índice de código.
© El primer índice 11 se usa como un valor de comienzo, y se superpone la información de otros índices. Un valor de I1 corresponde a un rango de valores independiente del índice de código. De esta manera, el lado decodificador puede determinar directamente una combinación {N0, N1, ..., N-m } de valores de num_post según el rango de valores del índice de código. Definitivamente, en una situación con el índice adicional, sólo se puede determinar una combinación de valores Nt de la pista con un valor Nt distinto de uno correspondiente al primer índice según I1, por ejemplo, la combinación “1, 2, 3” en la Tabla 6. No importa si se determina un valor Nt o una combinación de valores de Nt, se determina su espacio de codificación requerido, de manera que el rango de valores determinado por I1 (que generalmente corresponde a una cierta longitud de un campo) se pueda dividir además en T partes a ser usadas por I2t, I3t e Ift (si está involucrado) de T pistas de manera separada.
© I2t e I3t se pueden ubicar en cualquier forma que pueda ser identificada por el lado decodificador. Ya que I2t e I3t normalmente no pueden ser representados por una potencia entera de 2, para ahorrar tantos bits de código como sea posible, el I2t y el I3t de la pista t-ésima se pueden combinar de la siguiente manera para ser ubicados en una sección asignada del rango de valores determinado por I1:
donde I2t e I3t se codifican ambos comenzando desde 0, I2t e [0, Wt(Nt)-1], I3t e [0, Clase(Nt)-1], y Clase(Nt) es el número total posible de SUt(Nt). Obviamente, la manera es equivalente a la de que el rango de valores asignado de I1 se divida en las secciones de Clase(Nt) siendo la longitud Wt(Nt), y cada sección corresponde a una situación de distribución de SUt(Nt).
Definitivamente, en una situación en la que Ift necesite ser usado, el rango de valores asignado a partir de I1 a la pista necesita ser asignado primero por Ift a una Nt diferente para su uso, y después I2t e I3t se colocan en el espacio asignado a cada Nt, y en este caso,
Figure imgf000012_0001
©Definitivamente, en una situación en la que un pulso codificado es un pulso con un símbolo, cada índice(t) es requerido además para incluir información de un índice de símbolo st(n) de cada pulso. Por ejemplo, el índice de símbolo Ist de la t-ésima pista se puede usar como un campo con la longitud siendo de Nt a ser ubicado en una posición fija, por ejemplo, el final, en el rango de valores asignado a partir de I1 a la pista, y en este caso,
Indice(t) = (12, 13, x C ¡J ‘ ) x 2 N ‘ Is,
(para una pista con un valor Nt correspondiente al primer índice), o,
Indice(t) = If, (12, 13, x cJJ* ) x 2 Nf Is,
(para una pista con un valor de Nt distinto de uno correspondiente al primer índice),
donde
ls, = s,(0)x 2Nrl s,(l) x 2n*'2 ...+ s,(N,-1).
En conclusión, una forma de construcción del índice Ind de código general de las T pistas se puede indicar como:
Ind = I I lndice(T - 1) Imax(T - 1) x { ...x (|ndice(2) Imax(2) x [Indice(l) Imax( l ) x Indice(O)]}...}
T—1 T - l
= I I Indice(O) x m max( t ) ln d ic e ( l) x m max( t ) ••■+ lndice(T - 1),
t= l 1=2
donde Imax(t) representa un valor de límite superior del Indice(t), y representa un productorio.
Durante la decodificación, se puede adoptar una forma de tener un resto de Imax(t) para separar Indice(t) uno a uno. Por ejemplo, (Ind-I1) se usa para tener un resto de Imax(T-1) para obtener Indice(T-1), Indice(T-1) se resta de (Ind-I1) para obtener un valor, que se divide entre Imax(T-1), y después se obtiene un resto adicional de Imax(T-2) para obtener Indice(T-2), y el resto puede ser deducido por analogía hasta que se obtenga Indice(0).
Se debería entender fácilmente que, la forma de construcción del índice de código ejemplificada antes es sólo una forma alternativa de esta realización, y las personas expertas en la técnica pueden usar información básica que forma el índice de código para obtener de manera fácil una forma de construcción de otra estructura de índice de código. Por ejemplo, las posiciones de índice se intercambian o se recombinan. Específicamente, se pueden combinar los I2t de diferentes pistas primero, y después se combinan I3t e Ist. La forma de construcción específica del índice de código no limita la realización de la presente invención.
Realización 2: Un método de codificación de pulso, donde en esta realización, un índice de cada pista de la codificación conjunta se calcula de manera separada, y se combina para formar un índice de código, tal como se muestra en la FIG. 3, incluye las siguientes etapas:
B1: Obtener pulsos que estén en T pistas y que requieran ser codificados, donde T es un número entero mayor o igual que 2.
B2: De manera separada recopilar, según las posiciones, estadísticas sobre un pulso que esté en cada pista y requiera ser codificado, para obtener el número Nt de las posiciones que tienen pulsos en cada pista, la distribución de las posiciones que tienen pulsos en la pista, y el número de pulsos en cada posición que tiene un pulso.
Las etapas B1 y B2 se pueden ejecutar con referencia a las etapas A1 y A2 en la Realización 1.
B3: Según el número de posiciones que tienen pulsos y están en cada pista, determinar un primer índice I1t de cada pista de manera separada, donde el primer índice I1t corresponde a todas las situaciones de distribución posibles de posiciones que tienen pulsos y están en la pista conforme al número de posiciones que tienen pulsos, donde el número de posiciones que tienen pulsos es representado por el primer índice I11.
B4: Determinar un segundo índice I2t de cada pista de manera separada según la distribución de posiciones que tienen pulsos y están en cada pista, donde el segundo índice I2t indica, de entre todas las posibles situaciones de distribución correspondientes al primer índice I1t, una situación de distribución que corresponde a la distribución de posiciones actuales que tienen pulsos y están en la pista.
B5: Determinar un tercer índice I3t de cada pista de manera separada según el número de pulsos en cada posición que tiene un pulso y está en cada pista.
Las etapas B3 y B5 se pueden ejecutar con referencia a las etapas A1 y A2 en la Realización 1. Para los detalles del proceso de obtención del índice de cada pista de manera separada, se puede hacer referencia a la Solicitud de Patente China (la fecha de publicación es 29 de Octubre de 2008) con el N° de publicación siendo CN101295506, y concretamente se puede hacer referencia a la página 6 línea 13 hasta la página 15 línea 9 de la especificación del archivo de solicitud (Realización 1 y Realización 2); y para un método de cálculo de decodificación correspondiente, se puede hacer referencia a la página 15 línea 11 hasta la página 17 línea 12 de la especificación del archivo de solicitud (Realización 3 y Realización 4).
A6: Generar un índice Ind de código general de T pistas, donde el índice Ind de código incluye información del primer, segundo, y tercer índices I1t, I2t, I3t de cada pista.
El I1t, I2t, I3t, y un índice de símbolo Ist (si está involucrado) se pueden ubicar en el índice de código de cualquier forma que pueda ser identificada por un lado decodificador. Definitivamente, se puede realizar también la combinación. Por ejemplo, se combinan los índices de las pistas entre sí de manera separada y después se superponen. Esto es, se adopta la siguiente forma de construir el índice de código:
T - l T - l
Ind = Indice(O) x f^ rn a x O ) |ndice0 ) * f j l max( t ) ...+ lndice(T -1 ),
t=l t=2
donde Imax(t) representa un valor de límite superior del Indice(t),
Indice(t) = I I , 12, 13,
Figure imgf000013_0001
(una situación en la que no se tiene en cuenta un símbolo de pulso), o
Indice(t) = I I , (12, 13, x C¡J‘ ) x 2 N‘ Is,
(una situación en la que se tiene en cuenta un símbolo de pulso).
Es fácilmente entendible que, la forma de construcción del índice de código ejemplificada antes es sólo una forma alternativa de esta realización, y las personas expertas en la técnica pueden usar información básica que crea el índice de código para obtener fácilmente una forma de construcción de otra estructura de índice de código. Por ejemplo, las posiciones de índice se intercambian o se recombinan en cada pista. La forma de construcción específica del índice de código no limita la realización de la presente invención.
Realización 3: un método de codificación de pulso. Esta realización es un método propuesto en base a la Realización 1 o la Realización 2 para ahorrar más bits de códigos.
Se puede ejecutar un proceso de generación de un índice Ind de código en el método de codificación de pulso en esta realización con referencia al método en la Realización 1 o la Realización 2. Después de que se genere el índice Ind de código, se ejecutan las siguientes operaciones, tal como se muestra en la FIG. 4, e incluyen:
C1: Comparar el índice Ind de código con un umbral THR de ajuste, donde
THR < 2Bmax - Imax(T),
Imax(T) representa un valor del límite superior de Ind, Bmax representa un valor del límite superior del número de bits usados para codificar el índice de código; si Ind es menor que THR, el procedimiento procede a la etapa C2, en otro caso el procedimiento procede a la etapa C3.
C2: Codificar Ind usando bits de código, el número de los cuales es el primer número.
C3: Codificar Ind más un valor de compensación THRo usando bits de código, el número de los cuales es el segundo número, donde THR < THRo < 2Bmax - Imax(T), el así denominado primer número es menor que el segundo número, el segundo número es menor o igual que Bmax, y el primer número y el segundo número son ambos números enteros positivos.
Por ejemplo, para una situación de codificación conjunta de dos pistas de 4 pulsos (se supone que el número total de posiciones de cada pista es 16), el número total posible de Ind es Imax(T) = 44032 x 44032 (teniendo en cuenta que un pulso tiene un símbolo), se requieren 31 bits de código, su especio libre de libro de códigos es 231 - 44032 x 44032 = 208666624, se puede establecer que THR = THR0 = 208666624; cuando Ind es menor que 208666624,los bits de código, el número de los cuales es el primer número (30), se usan para codificar Ind; cuando Ind es mayor que 208666624, los bits de códigos, el número de los cuales es el segundo número (31), se usan para codificar Ind 208666624. Obviamente, existe una probabilidad de un 9,7% de ahorrar además un bit en base a los 31 bits. Definitivamente, el umbral THR de ajuste se puede establecer para ser menor que 208666624, para ahorrar más bits, pero, por consiguiente, la probabilidad de ocurrencia de una situación en la que un bit se pueda ahorrar disminuye dramáticamente, por lo que es necesaria una consideración de equilibrio.
Por principios, la deducción específica y las descripciones del método para ahorrar bits, se puede hacer referencia a la Solicitud de Patente China (la fecha de solicitud es el 19 de junio de 2009) con el N° de solicitud siendo CN200910150637.8.
Además, para aumentar la probabilidad de ocurrencia de la situación en la que se puede ahorrar el bit, se puede adoptar la siguiente forma preferida para establecer la correspondencia entre un primer índice I1 y una combinación {N0 , N1, ..., N-m } que están en el índice de código Ind. Recopilar estadísticas sobre la probabilidad de ocurrencia de la combinación {N0, N1, ..., N-m }, para hacer que un primer índice que corresponde a una combinación con una mayor probabilidad de ocurrencia sea menor, para disminuir un valor de índice codificado de la combinación con la probabilidad de ocurrencia alta tanto como sea posible.
Realización 4: un método de codificación de pulso. Esta realización propone un nuevo método para la codificación conjunta de pistas a partir de una perspectiva diferente de la Realización 1 y la Realización 2.
En la Realización 1 y la Realización 2, no importa que se realice la clasificación conjunta en las situaciones de posiciones que tienen pulsos y están en las pistas (Realización 1) o el primer índice se establezca para cada pista (Realización 2), el procesamiento necesita ser realizado de manera separada sobre la distribución de posiciones de pulso de cada pista. En esta realización, se adopta una nueva idea, esto es, las pistas de la codificación conjunta se superponen para formar 1 pista, y la información de distribución de pulsos se superpone. Por ejemplo, como se muestra en la FIG. 5, se superpones 2 pistas de 3 pulsos para forma 1 pista de 6 pulsos (se supone que el número de posiciones de cada pista es 16), y después,
® Según una situación de distribución de pulsos de una pista única, se calcula un índice de distribución de una pista superpuesta. Por ejemplo, se puede adoptar la forma de combinación de I1t, I2t, I3t, e Ist descritas en la Realización 2.
© Se establece un índice de pista según una situación de una pista a la que pertenece el pulso. Por ejemplo, tal como se muestra en la FIG. 6, las 3 posiciones 6 pulsos obtenidas mediante superposición en la FIG. 5 corresponden a diferentes situaciones de distribución de pista, y se pueden usar diferentes índices de pista para indicar las situaciones correspondientes de manera separada. En la FIG. 6, “0” representa un pulso en una pista 0, y “x” representa un pulso en una pista 1.
® El índice de distribución que es de una pista única y se obtiene mediante superposición de pulsos y el índice de pista que indica la pista a la que pertenece el pulso se combinan entre sí para obtener un índice de código final.
El método de codificación conjunta en esta realización puede ahorrar también bits de código como la Realización 1 y la Realización 2, y además, se puede usar también en combinación con la Realización 3 para conseguir el objetivo de ahorrar más bits de código.
Realización 5: Un método de decodificación de pulso, donde el método de decodificación proporcionado en esta realización decodifica un índice de código obtenido según el método de codificación en la Realización 1, y un proceso de decodificación es un proceso inverso de un proceso de codificación, tal como se muestra en la FIG. 7 incluye:
D1: Obtener un índice Ind de código, extraer un primer índice I1 a partir del índice Ind de código, y determinar, según el primer índice I1, el número {N0 , N1, ..., Nm } de posiciones que tienen pulsos y están en cada pista de las T pistas.
La extracción de la información de cada índice a partir de Ind puede ser realizada según un proceso inverso de combinación de índices en Ind durante la codificación. Por ejemplo, si cada índice se almacena en un campo fijo de manera separada, cada índice se puede extraer de manera directa.
Si Ind adopta la estructura proporcionada en la Realización 1 en la que I1 se usa como el valor de inicio para superponer otros índices, I1 se puede extraer primero, y el Indice(t) de cada pista se separa de Ind según una combinación {No, Ni, ..., Nt-i } correspondiente a I1. En este caso, un I1 corresponde a un rango de valores independientes de Ind, por lo tanto un lado decodificador puede juzgar un rango de valor al que pertenezca Ind entre los diversos conjuntos de rangos de valores independientes, y determinar el primer índice I1 según un valor de inicio correspondiente al rango de valores al que pertenece Ind.
Definitivamente, en una situación en la que existe una pista con un valor de Nt distinto de uno correspondiente al primer índice I1, para la pista, I1 determina su combinación de valores de Nt, un valor real de Nt está determinado mediante un índice Ift adicional extraído adicionalmente, y en este caso, el Indice(t) separado incluye información de Ift-
D2: extraer un segundo índice I2t de cada pista y un tercer índice I3t de cada pista a partir del índice Ind de código.
De manera similar a 11,se realiza también la extracción de I2t y I3t según un proceso inverso de combinación en lndice( 5V) y para una asignación independiente, se puede realizar la extracción de manera directa. Si se adopta una forma de codificación en la que se realiza la superposición después de la combinación, donde la forma de codificación está en la Realización 1, para I2t e I3t, en esta etapa, I2t, I3t, Ift (si está involucrado) e Ist (si está involucrado) se separan de Indice(t), y se puede realizar la operación inversa según el proceso de combinación.
Por ejemplo, en una situación en la que Ift e Ist no están involucrados, I2t = Indice(t) % Wt(Nt), e I3t = Int[Indice(t)/Wt(Nt)], donde % representa la toma de un resto, e Int representa el redondeo. En una situación en la que Ift esté involucrado, de manera similar a determinar I1, se puede determinar el índice adicional Ift según un valor de inicio correspondiente a un rango de valores al que pertenece Indice(t), y después de que Ift se separe, I2t, I3t, e Ist (si está involucrado) son extraídos de manera adicional según el valor de Nt determinado.
D3: Para cada pista, según el segundo índice I2t, determinar la distribución de posiciones que tienen pulsos en la pista conforme al número de posiciones que tienen pulsos, donde el número de posiciones que tienen pulsos corresponde al primer índice I1 y a Ift (si está involucrado).
Se adopta un proceso inverso de codificación de I2t para decodificar I2t. Si durante la codificación, I2t es obtenido adoptando una relación de cálculo, se realiza una operación inversa mediante el uso de la misma relación de cálculo durante la decodificación. Si durante la codificación, I2t es obtenida usando una relación de consulta, la misma correspondencia es consultada durante la decodificación.
D4: Para cada pista, según el tercer índice I3t, determinar el número de pulsos en cada posición que tiene un pulso.
D5: Para cada pista, según la distribución Pt(Nt) de las posiciones que tienen pulsos en la pista y el número SUt(Nt) de pulsos en cada posición que tienen el pulso, reconstruir una secuencia de pulsos en la pista.
Para una situación en la que un pulso tiene un símbolo, cuando se reconstruye una secuencia de pulsos en cada pista, se recupera una característica positiva o negativa de un símbolo de pulso de cada posición que tiene un pulso según la información de símbolo de pulso transportada en cada índice de símbolo st(n)
Realización 6: Un método de decodificación de pulso, donde el método de decodificación proporcionado en esta realización decodifica un índice de código obtenido según el método de codificación en la Realización 2, y un proceso de decodificación es un proceso inverso a un proceso de codificación, tal como se muestra en la FIG. 8, incluye:
E1: Obtener un índice Ind de código, extraer un primer índice I1t de cada pista a partir del índice Ind de código, y determinar, según el primer índice de I11, el número Ntde posiciones que tienen pulsos para cada pista.
En una situación en la que el número total % de pulsos en cada pista está determinado (bajo diferentes tasas de bits, el número total de bits del índice de código es diferente, por lo tanto un lado decodificador puede determinar el número total 5Vt de pulsos en cada pista de manera directa según la longitud (el número de bits) del índice de código), se determina un valor del límite superior Imax(t) del Indice(t), por lo tanto el Indice(t) de cada pista puede ser directamente separado a partir de Ind, y se determinan I1t y el Nt correspondiente según un rango de valores de Indice(t).
E2: Extraer un segundo índice I2t de cada pista y un tercer índice I3t de cada pista a partir del índice Ind de código. Esto es, I2t e I3t se separan de Indice(t), lo cual puede ser ejecutado con referencia a la etapa D2 en la Realización 5. Si se involucra un símbolo de pulso, se puede separar además Ist.
E3: Para cada pista, según el segundo índice I2t, determinar la distribución de las posiciones que tienen pulsos en la pista conforme al número de posiciones que tienen pulsos, donde el número de posiciones que tienen pulsos corresponde al primer índice I1t.
E4: Para cada pista, según el tercer índice I3t, determinar el número de pulsos en cada posición que tiene un pulso.
E5: Para cada pista, según la distribución Pt(Nt) de las posiciones que tienen pulsos en la pista y el número SUt(Nt) de pulsos en cada posición que tiene pulso, reconstruir una secuencia de pulsos en la pista.
Las etapas E3 a E5 se pueden ejecutar con referencia a las etapas D3 a D5 en la Realización 5.
Realización 7: Un método de decodificación de pulso, donde el método de decodificación proporcionado en esta realización corresponde al método de codificación en la Realización 3, y decodifica un flujo de código de codificación de longitud variable en la Realización 3 para obtener un índice de código, y el proceso que es como se muestra en la FIG. 9, incluye:
F1: Extraer bits de código, el número de los cuales es el primer número, desde un flujo de código codificado.
F2: Si un valor decodificado de los bits de código, el número de los cuales es el primer número, es menor que un umbral THR de ajuste, proceder a la etapa F3, en otro caso proceder a la etapa F4.
F3: Usar el valor decodificado de los bits de código, el número de los cuales es el primer número, como un índice Ind de código.
F4: En otro caso, aumentar el número de bits de código extraídos al segundo número, y usar un valor obtenido restando un valor THR0 de compensación de un valor decodificado de bits de código, el número de los cuales es el segundo número, como un índice Ind de código.
Según el método de decodificación en esta realización, después de que se obtenga el índice Ind de código a partir del flujo de código codificado, el índice Ind de código puede ser decodificado según el método de decodificación en la Realización 5 o la Realización 6.
Realización 8: Un codificador 10 de pulsos, donde el codificador proporcionado en esta realización que se puede usar para ejecutar el método de codificación en la Realización 1, tal como se muestra en la FIG. 10, incluye:
Una unidad 101 de estadísticas de pulso se configura para obtener pulsos que están en las T pistas y son requeridos para ser codificados, donde T es un número entero mayor o igual que 2; y de manera separada recopilar, según las posiciones, estadísticas sobre un pulso que está en cada pista y se requiere codificar, para obtener el número Nt de posiciones que tienen pulsos en cada pista, la distribución de las posiciones que tienen pulsos en la pista, y el número de pulsos en cada posición que tiene un pulso, donde el subíndice t representa la pista t-ésima, y t e [0, T-1 ].
Una unidad 102 de cálculo de índice incluye:
Una primera unidad 1021 de índice se configura para, según el número {N0, N1, ..., N-m } de posiciones que tienen pulsos y están en cada pista, emitir un primer índice I1, donde I1 corresponde a todas las posibles situaciones de distribución de las posiciones que tienen pulsos y están en cada pista conforme al número de posiciones que tienen pulsos, donde el número de las posiciones que tienen pulsos es representado por éste.
Una segunda unidad 1022 de índice se configura para emitir un segundo índice I2t de cada pista de manera separada según la distribución de posiciones que tienen pulsos y están en cada pista, donde I2t indica, de entre todas las posibles situaciones de distribución correspondientes a I1, una situación de distribución que corresponde a la distribución de las posiciones actuales que tienen pulsos en una pista correspondiente.
Una tercera unidad 1023 de índice se configura para emitir un tercer índice I3t de cada pista de manera separada según el número de pulsos en cada posición que tiene el pulso y está en cada pista.
Una unidad 103 de combinación de índices se configura para combinar la información del primer índice I1 y del segundo y tercer índices I2t e I3t de cada pista para formar un índice Ind de código.
En una situación en la que al menos un primer índice corresponde a más de dos combinaciones {N0 , N1, ..., N-m }, la unidad 102 de cálculo de índice puede incluir además una unidad 1024 de índice adicional (indicada mediante un bloque con bordes punteados en la FIG. 10), configurada para, para una pista con un valor de Nt distinto de uno correspondiente al primer índice, determinar un índice Ift adicional correspondiente al número de posiciones actuales que tienen pulsos y están en la pista, donde el índice Ift adicional corresponde a todas las posibles situaciones de distribución de posiciones que tienen pulsos y están en la pista conforme al número de posiciones que tienen pulsos, donde el número de posiciones que tienen pulsos es representado por éste. En este caso, la unidad 103 de combinación de índices combina además la información del índice Ift adicional en el índice Ind de código.
Además, en una situación en la que se realiza codificación de longitud variable en el índice de código adoptando el método en la Realización 3, el codificador 10 de pulsos en esta realización puede incluir además una unidad 104 de ajuste de bits de código (indicada por un bloque con bordes punteados en a FIG. 10), configurada para comparar el índice Ind de código con un umbral THR de ajuste después de que la unidad 103 de combinación de índices genere el índice de código, donde,
THR < 2",nax - l,mx(T),
Imax(T) representa un valor del límite superior de Ind, Bmax representa un valor del límite superior del número de bits usados para codificar el índice de codificación; y
Si Ind es menor que THR, los bits de código, el número de los cuales es el primer número, se usan para codificar Ind; en otro caso, los bits de código, el número de los cuales es el segundo número, se usan para codificar Ind más un valor de compensación THRo, donde THR < THRo < 2Bmax - Imax(T), el primer número usado es menor que el segundo número, el segundo número es menor o igual que Bmax, y el primer número y el segundo número son ambos números enteros positivos.
Realización 9: Un decodificador 20 de pulsos, donde el decodificador proporcionado en esta realización que se puede usar para ejecutar el método de decodificación en la Realización 5, tal como se muestra en la FIG. 11, incluye:
Una primera unidad 201 de extracción se configura para obtener un índice Ind de código, extraer un primer índice I1 a partir del índice Ind de código y determinar según el primer índice el número {No, Ni, ..., N-m } de posiciones que tienen pulsos y están en cada pista de las T pisas.
Una segunda unidad 202 de extracción se configura para extraer un segundo índice I2t de cada pista y un tercer índice I3t de cada pista a partir del índice Ind de código.
Una primera unidad 203 de decodificación se configura para, para cada pista, según el segundo índice I2t, determinar la distribución de las posiciones que tienen pulsos en la pista conforme al número de posiciones que tienen pulsos, donde el número de posiciones que tienen pulsos corresponde al primer índice.
Una segunda unidad 204 de decodificación se configura para, para cada pista, según el tercer índice I3t, determinar el número de pulsos en cada posición que tiene un pulso.
Se configura una unidad 205 de reconstrucción de pulso para, para cada pista, según la distribución de las posiciones que tienen pulsos en la pista y el número de pulsos en cada posición que tiene el pulso, reconstruir una secuencia de pulsos en la pista.
En una situación en la que al menos un primer índice corresponde a más de dos combinaciones {N0 , Ni, ..., N-m }, la decodificación en esta realización puede incluir, además:
Se configura una unidad 206 de extracción adicional (indicada por un bloque con bordes punteados en la FIG. 11) para, para una pista con un valor de Nt distinto de uno correspondiente al primer índice, extraer un índice Ift adicional correspondiente al número de posiciones actuales que tienen pulsos y están en la pista, donde el índice Ift adicional corresponde a todas las posibles situaciones de distribución de posiciones que tienen pulsos y están en la pista conforme al número de posiciones que tienen pulsos, donde el número de posiciones que tienen pulsos es representado mediante éste. En este caso, la segunda unidad 202 de extracción extrae el segundo índice I2t de la pista y el tercer índice I3tde la pista según el número de posiciones actuales que tienen pulsos y están en una pista correspondiente, donde el número de posiciones actuales que tienen pulsos y están en una pista correspondiente es determinado por el índice Ift adicional extraído por la unidad 206 de extracción adicional.
Además, en una situación en la que se realiza la decodificación en un flujo de código de codificación de longitud variable adoptando el método en la Realización 7, el decodificador 20 de pulsos en esta realización puede incluir además una unidad 207 de ajuste de bits de decodificación (indicada mediante un bloque con los bordes punteados en la FIG. 11), configurada para extraer los bits de código, el número de los cuales es el primer número, a partir de un flujo de código codificado; si un valor decodificado de los bits de código, el número de los cuales es el primer número, es menor que un umbral THR de ajuste, usar el valor decodificado de los bits de código, el número de los cuales es el primer número, como un índice Ind de código para emitirlo; en otro caso, aumentar el número de bits de código extraídos al segundo número, y usar un valor obtenido restando un valor THR0 de compensación de un valor decodificado de bits de código, el número de los cuales es el segundo número, como un índice Ind de código para emitirlo.
Las personas de experiencia ordinaria en la técnica pueden entender que, todos o una parte de las etapas en el método de las realizaciones anteriores se pueden implementar a través de un programa que da instrucciones a un hardware. El programa puede ser almacenado en un medio de almacenamiento legible por ordenador, y el medio de almacenamiento puede incluir una memoria de sólo lectura, una memoria de acceso aleatorio, un disco magnético o un disco óptico, etcétera.
Los métodos de codificación y decodificación de pulso y el códec de pulso según las realizaciones de la presente invención se describen en detalle anteriormente. Los principios y las formas de implementación de la presente invención se describen aquí a través de realizaciones específicas. La descripción sobre las realizaciones anteriores se proporciona simplemente para un entendimiento más fácil del método y sus ideas principales de la presente invención. Por lo tanto, la especificación no se debería considerar como un límite a la presente invención.

Claims (17)

REIVINDICACIONES
1. Un método de codificación de pulso, que comprende:
obtener (A1) pulsos que estén en las T pistas y que requieran ser codificados, en donde T en un número entero mayor o igual que 2;
recopilar (A2) de manera separada, según las posiciones, estadísticas sobre al menos un pulso que se requiere codificar, para cada una de las pistas, para obtener:
el número Nt de pulsos en cada una de las posiciones de pulso que tiene al menos un pulso en cada pista, la distribución de las posiciones de pulso que tienen al menos un pulso en cada pista según es representada por los vectores de posiciones de pulso Pt(Nt) = {pt(0) pt(1), ..., pt(Nt-1)}, y
el número de pulsos en cada una de las posiciones de pulso que tiene al menos un pulso según es representado por los vectores de números de pulso SUt(Nt) = {sut(0), sut(1), ..., sut(Nt-1)},
en donde el subíndice t representa una pista t-ésima, y t e [0, T-1], el pt(n) representa un número de serie de posición de una posición de pulso que tiene un pulso en la pista t-ésima, y sut(n) representa el número de pulsos de una posición pt(n);
según el número {No, Ni, ..., N-m } de posiciones de pulso que tienen al menos un pulso y están en cada una de las T pistas, determinar (A3) un primer índice I1, en donde el primer índice I1 corresponde a todas las posibles situaciones de distribución de posiciones de pulso que tienen al menos un pulso y están en cada una de las T pistas en el caso del número de las posiciones de pulso que tienen al menos un pulso, en donde el número {No, Ni, ..., Nt-i } de las posiciones de pulso que tienen al menos un pulso es representado por el primer índice I1;
determinar (A4) un segundo índice I2t de cada pista de manera separada según la distribución de las posiciones de pulso, Pt(Nt) = {pt(0) pt(1), . , pt(Nt-1)}, que tienen al menos un pulso y están en cada pista, en donde el segundo índice indica, de entre todas las posibles situaciones de distribución correspondientes al primer índice I1, una situación de distribución que corresponde a la distribución de posiciones de pulso actuales que tienen al menos un pulso en una pista correspondiente;
determinar (A5) un tercer índice I3t de cada pista de manera separada según el número de pulsos en cada posición de pulso, SUt(Nt) = {sut(0), sut(1), . , sut(Nt-1)}, que tiene al menos un pulso y está en cada pista; y
generar (A6) un índice Ind de código para las T pistas, en donde el índice de código comprende la información del primer índice y del segundo y tercer índices de cada pista;
en donde:
un primer índice corresponde a una combinación {No, N1, ..., Nm i};
el índice Ind de código es generado adoptando la siguiente forma:
T -l T -l
Ind = 11 Indice(O) x r u max ( t ) lnd ice (l)x lndice(T - 1);
1=1 1 n=2 w t ) ...+
en donde lmax(t) representa un valor del límite superior de Indice(t), "T 1 T 1 " representa un productorio, y el Indice(t) es generado adoptando la siguiente forma:
en una situación en la que un índice de símbolo no está comprendido, para una pista con un valor Nt correspondiente al primer índice:
Indice(t) = I2 t I3t x C ^ 1
en donde “C” indica adquirir el número de combinaciones, y Mt representa el número total de posiciones en una pista t-ésima.
2. El método según la reivindicación 1, en donde:
durante la recopilación (A2) de manera separada, según las posiciones, de las estadísticas sobre un pulso que está en cada pista y se requiere codificar, según una característica positiva o negativa de un símbolo de pulso de cada posición de pulso que tiene al menos un pulso y está en cada pista, se obtiene la información de símbolo de pulso de cada posición de pulso que tiene el pulso y está en cada pista, según es representada por el vector de símbolos de pulso St(Nt) = {st(0), st(1), ..., st(Nt-1)}, donde st(n) representa un símbolo de pulso de la posición pt(n); y
el índice de código comprende además información de un índice de símbolo que corresponde a cada posición de pulso que tiene el pulso y está en cada pista, y el índice de símbolo indica información de símbolo de pulso que es de una posición de pulso que tiene un pulso y corresponde al índice.
3. El método según la reivindicación 2, en donde
en una situación en la que se comprende un índice de símbolo, para una pista con un valor Nt correspondiente al primer índice:
Indice(t) = (12, 13, x C ¡J ) x 2 N‘ Is,
en donde Ist representa un índice de símbolo de una pista t-ésima, existen Nt bits, y un valor de cada bit indica la información de símbolo de pulso que es de una posición que tiene un pulso y corresponde al bit.
4. El método según una cualquiera de las reivindicaciones 1 a 3, en donde después de la etapa de generación del índice de código, el método comprende además:
comparar el índice Ind de código con un umbral THR de ajuste, en donde
THR < 2Bmax - Imax(T),
Imax(T) representa un valor del límite superior de Ind, Bmax representa un valor del límite superior del número de bits usados para codificar el índice de codificación; y
Si Ind es menor que THR, los bits de código, el número de los cuales es el primer número, se adoptan para codificar Ind; en otro caso, los bits de código, el número de los cuales es el segundo número, se adoptan para codificar Ind más un valor de compensación THRo, donde THR < THRo < 2Bmax - Imax(T), el primer número usado es menor que el segundo número, el segundo número es menor o igual que Bmax, y el primer número y el segundo número son ambos números enteros positivos.
5. El método según la reivindicación 4, en donde la correspondencia entre el primer índice y una combinación {No, Ni, ..., Nt-i } se determina adoptando la siguiente forma: recopilar estadísticas sobre la probabilidad de ocurrencia de la combinación {No, Ni, ..., Nt-i }, para hacer un primer índice correspondiente a una combinación de mayor probabilidad de ocurrencia ser menor.
6. El método según una cualquiera de las reivindicaciones 1 a 3, en donde la etapa de determinación de un tercer índice I3t de cada pista de manera separada según el número de pulsos en cada posición que tiene pulsos y está en cada pista comprende:
para la pista t-ésima, las situaciones de que Nt posiciones que tienen pulsos tengan % pulsos se hacen corresponder a las situaciones de que Nt posiciones tengan % - Nt pulsos, en donde 'M representa el número total de pulsos que se requiere codificar en la pista t-ésima; y
según el orden establecido, todas las posibles situaciones de distribución de 5VÍ- Nt pulsos en las Nt posiciones se disponen, y se usa un número de serie de disposición como el tercer índice I3t, que indica el número de pulsos en una posición que tiene un pulso.
7. El método según la reivindicación 6, en donde la fórmula de cálculo del tercer índice I3t de cada pista es;
13,
Figure imgf000019_0001
en donde A?Vt = % - Nt„ PPT = % -1, q(h) representa un número de serie de posición de un (h 1)-ésimo pulso, h £ [0, -1 ], q(h) G [0, Nt -1 ], q(0) < q(1) < ... < q (A?Vt - 1), o q(0) > q(1) > ... > q {h% -1), y £ indica un sumatorio.
8. El método según una cualquiera de las reivindicaciones 1 a 3, en donde una fórmula de cálculo del segundo índice I2t de cada pista es:
N, -1
19 _ p N , _ p N ,
‘ ' “'M , ^ M ,- p ,(0 ) y L , r l > r N M«,-_pn _ p N , - n -i.
,(n - 1)- ^ M ,- p , ( n ) J ’
n=l
en donde pt(n) representa un número de serie de posición de una posición n-ésima que tiene un pulso en una pista, n e [0, Nt-1], p,(0)e [0, Mt- Nt], p,(n) <e [p,(n-1)+1, M,-N,+n]„ p,(0) < p,(1) < ... < p, (N,-1), o p,(0) > p,(1) >... >p,(N,-1).
9. Un método de decodificación de pulso, que comprende:
obtener un índice Ind de código generado mediante el uso del método de cualquiera de las reivindicaciones 1 a 8, extraer un primer índice a partir del índice de código, y determinar, según el primer índice, el número {N0, N1, ..., Nt-i } de posiciones que tienen pulsos y están en cada pista de las T pistas, en donde el subíndice t de Nt representa una pista t-ésima, t E [0, T-1 ], y T es un número entero mayor o igual que 2;
extraer un segundo índice I2t de cada pista y un tercer índice I3t de cada pista a partir del índice de código;
para cada pista, según el segundo índice, determinar la distribución de posiciones que tienen pulsos en la pista conforme al número de posiciones que tienen pulsos, en donde el número de posiciones que tienen pulsos corresponde al primer índice;
para cada pista, según el tercer índice, determinar el número de pulsos en cada posición que tenga un pulso; y
para cada pista, según la distribución de las posiciones que tienen pulsos en la pista y el número de pulsos en cada posición que tiene el pulso, reconstruir una secuencia de pulsos en la pista.
10. El método según la reivindicación 9, en donde la extracción del primer índice a partir del índice de código adopta: juzgar un rango de valores al que pertenece el índice de código de entre varios conjuntos de rangos de valores independientes, y determinar el primer índice según un valor de inicio correspondiente al rango de valores al que pertenece el índice de código.
11. El método según la reivindicación 9, en donde:
un primer índice corresponde a una combinación {N0, N1, . , NT-1}, o,
al menos un primer índice corresponde a más de dos combinaciones {No, N1, ..., Nt-1}, para una pista con un valor de Nt distinto de uno correspondiente al primer índice, además de extraer el segundo y tercer índices de la pista, se extrae además un índice adicional correspondiente al número de las posiciones actuales que tienen pulsos y están en la pista, y el índice adicional corresponde a todas las posibles situaciones de distribución de las posiciones que tienen pulsos y están en la pista conforme al número de posiciones que tienen pulsos, en donde el número de posiciones que tienen pulsos es representado por éste.
12. El método según una cualquiera de las reivindicaciones 9 a 11, en donde la etapa de obtención el índice Ind de código comprende:
extraer (F1) bits de código, el número de los cuales es el primer número, a partir de un flujo de código codificado;
si un valor decodificado de los bits de código, el número de los cuales es el primer número, es menor que un umbral THR de ajuste (F2), usar el valor decodificado de los bits de código, el número de los cuales es el primer número, como índice Ind de código (F3);
en otro caso, aumentar (F4) el número de bits de código extraídos al segundo número, y usar un valor obtenido restando un valor THRo de compensación de un valor decodificado de bits de código, el número de los cuales es el segundo número, como un índice Ind de código.
13. Un codificador (10) de pulso, que comprende:
una unidad (101) de estadísticas de pulso, configurada para obtener pulsos que están en T pistas y se requieran codificar, en donde T es un número entero mayor o igual que 2; y de manera separada recopilar, según las posiciones, estadísticas sobre un pulso que está en cada pista y se requiere codificar, para obtener el número Nt de posiciones de pulso que tienen pulsos en cada pista, la distribución de las posiciones de pulso que tienen pulsos en la pista según es representado por los vectores de posiciones de pulso Pt(Nt) = {pt(0), pt(1), ... , pt(Nt -1)}, y el número de pulsos en cada posición de pulso que tiene al menos un pulso como representado por los vectores de números de pulso SUt(Nt) = {sut(0), sut(1), sut(N-1)}, en donde el subíndice t representa una pista t-ésima, y t e [0, T-1], el pt(n) representa un número de serie de posición de una posición que tiene un pulso en la pista t-ésima, y la sut(n) representa el número de pulsos de una posición pt(n).
una unidad (102) de cálculo de índice, en donde la unidad de cálculo de índice comprende: una primera unidad de índice, configurada para, según el número {N0 , N1, ..., Nt-1} de posiciones de pulso que tienen pulsos y están en cada una de las T pistas, emitir un primer índice I1, en donde el primer índice corresponde a todas las posibles situaciones de distribución de posiciones de pulso que tienen pulso y están en cada una de las T pistas conforme al número de las posiciones de pulso que tienen pulsos, en donde el número {N0, N1, ..., Nt-1} de las posiciones de pulso que tienen pulsos es representado mediante el primer índice I1; una segunda unidad de índice, configurada para emitir un segundo índice I2t de cada pista de manera separada según la distribución de las posiciones de pulso, Pt(Nt) = {pt(0), pt(1), ... , pt(Nt -1)}, que tienen pulsos y están en cada pista, en donde el segundo índice indica, de entre todas las posibles situaciones de distribución correspondientes al primer índice I1, una situación de distribución que corresponde a la distribución de las posiciones de pulso actuales que tienen al menos un pulso en una pista correspondiente; y una tercer unidad de índice, configurada para emitir un tercer índice I3t de cada pista de manera separada según el número de pulsos en cada posición de pulso, SUt(Nt) = {sut(0), sut(1), ..., sut(N-1)}, que tiene un pulso y está en la pista; y una unidad (103) de combinación de índices, configurada para combinar la información del primer índice I1 y del segundo y tercer índices de cada pista para generar un índice Ind de código de las T pistas;
en donde:
un primer índice corresponde a una combinación {N0, N1, ..., N-m };
el índice Ind de código es generado adoptando la siguiente forma:
T -l T - l
Ind = I I lndice(0) x n i max(t) ln d ice (l)x n i max( t ) ...+ lndice(T - 1);
1=1 t=2
l'TT"
en donde lmax(t) representa un valor del límite superior de Indice(t), 11 representa un productorio, y el Indice(t) es generado adoptando la siguiente forma:
en una situación en la que in índice de símbolo no está comprendido, para una pista con un valor Nt correspondiente al primer índice:
„ l \ r
Indlce(t) = I2t I3 t x C M‘
en donde “C” indica adquirir el número de combinaciones, y Mt representa el número total de posiciones en una pista t-ésima.
14. El codificador según la reivindicación 13, comprendiendo además una unidad (104) de ajuste de bits de código, configurada para comparar el índice Ind de código con un umbral THR de ajuste después de que la unidad de combinación de índices genere el índice de código, en donde
THR < 2BmaX - Imax(T),
Imax(T) representa un valor del límite superior de Ind, Bmax representa un valor del límite superior del número de bits usados para codificar el índice de codificación; y
Si Ind es menor que THR, los bits de código, el número de los cuales es el primer número, se adoptan para codificar Ind; en otro caso, los bits de código, el número de los cuales es el segundo número, se adoptan para codificar Ind más un valor de compensación THR0 , en donde THR < THR0 < 2Bmax - Imax(T), el primer número es menor que el segundo número, el segundo número es menor o igual que Bmax, y el primer número y el segundo número son ambos números enteros positivos.
15. Un decodificador (20) de pulso, que comprende:
una primera unidad (201) de extracción, configurada para obtener un índice Ind de código generado mediante el codificador de cualquiera de las reivindicaciones 13 a 14, extraer un primer índice del índice de código, y determinar, según el primer índice, el número {No, N-i, ..., N-m } de posiciones que tienen pulsos y están en cada una de las pistas de las T pistas, en donde el subíndice t representa la pista t-ésima, y t e [0, T-1], y T es un número entero mayor o igual que 2;
una segunda unidad (202) de extracción, configurada para extraer un segundo índice I2t de cada pista y un tercer índice I3t de cada pista a partir del índice de código;
una primera unidad (203) de decodificación, configurada para, para cada pista, según el segundo índice, determinar la distribución de las posiciones que tienen pulsos en la pista conforme al número de posiciones que tienen pulsos, en donde el número de posiciones que tienen pulsos corresponde al primer índice;
una segunda unidad (204) de decodificación, configurada para, para cada pista, según el tercer índice, determinar el número de pulsos en cada posición que tiene pulso; y
una unidad (205) de reconstrucción de pulso, configurada para, para cada pista, según la distribución de las posiciones que tienen pulsos en la pista y el número de pulsos en cada posición que tiene pulso, reconstruir una secuencia de pulsos en la pista.
16. El decodificador según la reivindicación 15, en donde al menos un primer índice corresponde a más de dos combinaciones {N0, N1, ..., N-m },
y el decodificador comprende además:
una unidad (206) de extracción adicional, configurada para, para una pista con un valor de Nt distinto de uno correspondiente al primer índice, extraer un índice adicional correspondiente al número de posiciones actuales que tienen pulsos y están en la pista, en donde el índice adicional corresponde a todas las posibles situaciones de distribución de las posiciones que tienen pulsos y están en la pista conforme al número de posiciones que tienen pulsos, en donde el número de posiciones que tienen pulsos es representado por éste; y
la segunda unidad (202) de extracción extrae el segundo índice I2t de la pista y el tercer índice I3t de la pista según el número de posiciones actuales que tienen pulsos y están en una pista correspondiente, en donde el número de posiciones actuales que tienen pulso y están en una pista correspondiente es determinado por el índice adicional extraído por la unidad de extracción adicional.
17. El decodificador según la reivindicación 14 o 15, que comprende además una unidad de ajuste de bits de decodificación, configurada para extraer bits de código, el número de los cuales es el primer número, a partir de un flujo de código decodificado; si un valor decodificado de los bits de código, el número de los cuales es el primer número, es menor que un umbral THR de ajuste, usar el valor decodificado de los bits de código, el número de los cuales es el primer número, como un índice Ind de código para emitir; en otro caso, aumentar el número de bits de código extraídos al segundo número, y usar un valor obtenido restando un valor THRo de compensación de un valor decodificado de bits de código, el número de os cuales es el segundo número, como un índice Ind de código para emitir.
ES11797568T 2010-06-24 2011-05-31 Método de codificación y decodificación de pulso y códec de pulso Active ES2764832T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201010213451.5A CN102299760B (zh) 2010-06-24 2010-06-24 脉冲编解码方法及脉冲编解码器
PCT/CN2011/074999 WO2011160537A1 (zh) 2010-06-24 2011-05-31 脉冲编解码方法及脉冲编解码器

Publications (1)

Publication Number Publication Date
ES2764832T3 true ES2764832T3 (es) 2020-06-04

Family

ID=45359953

Family Applications (1)

Application Number Title Priority Date Filing Date
ES11797568T Active ES2764832T3 (es) 2010-06-24 2011-05-31 Método de codificación y decodificación de pulso y códec de pulso

Country Status (9)

Country Link
US (5) US9020814B2 (es)
EP (1) EP2587480B1 (es)
JP (3) JP5785255B2 (es)
KR (1) KR101384574B1 (es)
CN (1) CN102299760B (es)
AU (1) AU2011269502B2 (es)
ES (1) ES2764832T3 (es)
PT (1) PT2587480T (es)
WO (1) WO2011160537A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103886862B (zh) * 2010-06-24 2018-09-28 华为技术有限公司 脉冲编解码方法及脉冲编解码器
CN102623012B (zh) 2011-01-26 2014-08-20 华为技术有限公司 矢量联合编解码方法及编解码器
JP5981909B2 (ja) * 2011-06-15 2016-08-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America パルス位置探索装置、符号帳探索装置、及びこれらの方法
US9620136B2 (en) 2014-08-15 2017-04-11 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9336788B2 (en) * 2014-08-15 2016-05-10 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
CN105007094B (zh) * 2015-07-16 2017-05-31 北京中宸泓昌科技有限公司 一种指数对扩频编码解码方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631521A (en) * 1984-12-31 1986-12-23 Wang Laboratories, Inc. Method and apparatus for differential run-length coding
US5754976A (en) 1990-02-23 1998-05-19 Universite De Sherbrooke Algebraic codebook with signal-selected pulse amplitude/position combinations for fast coding of speech
JP3350385B2 (ja) 1997-01-24 2002-11-25 京セラ株式会社 符号生成方法および符号化方法
JP2943983B1 (ja) 1998-04-13 1999-08-30 日本電信電話株式会社 音響信号の符号化方法、復号方法、そのプログラム記録媒体、およびこれに用いる符号帳
JP4008607B2 (ja) 1999-01-22 2007-11-14 株式会社東芝 音声符号化/復号化方法
US6236960B1 (en) 1999-08-06 2001-05-22 Motorola, Inc. Factorial packing method and apparatus for information coding
US7363219B2 (en) 2000-09-22 2008-04-22 Texas Instruments Incorporated Hybrid speech coding and system
US6847929B2 (en) * 2000-10-12 2005-01-25 Texas Instruments Incorporated Algebraic codebook system and method
CA2327041A1 (en) 2000-11-22 2002-05-22 Voiceage Corporation A method for indexing pulse positions and signs in algebraic codebooks for efficient coding of wideband signals
JP2002330075A (ja) * 2001-05-07 2002-11-15 Matsushita Electric Ind Co Ltd サブバンドadpcm符号化方法、復号方法、サブバンドadpcm符号化装置、復号装置およびワイヤレスマイクロホン送信システム、受信システム
US6662154B2 (en) 2001-12-12 2003-12-09 Motorola, Inc. Method and system for information signal coding using combinatorial and huffman codes
JP2004120623A (ja) 2002-09-27 2004-04-15 Ntt Docomo Inc 符号化装置、符号化方法、復号装置及び復号方法
RU2331933C2 (ru) * 2002-10-11 2008-08-20 Нокиа Корпорейшн Способы и устройства управляемого источником широкополосного кодирования речи с переменной скоростью в битах
KR100463419B1 (ko) * 2002-11-11 2004-12-23 한국전자통신연구원 적은 복잡도를 가진 고정 코드북 검색방법 및 장치
JP3887598B2 (ja) * 2002-11-14 2007-02-28 松下電器産業株式会社 確率的符号帳の音源の符号化方法及び復号化方法
JP2005062453A (ja) 2003-08-12 2005-03-10 Nippon Telegr & Teleph Corp <Ntt> 秘話送信装置、秘話受信装置、秘話プログラム
FR2867648A1 (fr) 2003-12-10 2005-09-16 France Telecom Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
KR100656788B1 (ko) 2004-11-26 2006-12-12 한국전자통신연구원 비트율 신축성을 갖는 코드벡터 생성 방법 및 그를 이용한 광대역 보코더
CN100412948C (zh) 2005-01-27 2008-08-20 广达电脑股份有限公司 语音编码器中搜寻语音讯号的编码向量的搜寻系统及方法
JP4887282B2 (ja) * 2005-02-10 2012-02-29 パナソニック株式会社 音声符号化におけるパルス割当方法
CN101138022B (zh) 2005-03-09 2011-08-10 艾利森电话股份有限公司 低复杂度码激励线性预测编码及解码的方法及装置
US20070124381A1 (en) 2005-11-22 2007-05-31 Zurko Mary E Method and system for providing electronic pickup meetings
LV13528B (en) 2006-09-25 2007-03-20 Ervins Blumbergs Method and apparatus for continuous producing of metallic tifanium and titanium-bases alloys
DK2827327T3 (da) 2007-04-29 2020-10-12 Huawei Tech Co Ltd Fremgangsmåde til excitationsimpulskodning
CN101295506B (zh) * 2007-04-29 2011-11-16 华为技术有限公司 脉冲编解码方法及脉冲编解码器
CN101388210B (zh) 2007-09-15 2012-03-07 华为技术有限公司 编解码方法及编解码器
CN100530357C (zh) * 2007-07-11 2009-08-19 华为技术有限公司 固定码书搜索方法及搜索器
WO2009033288A1 (en) * 2007-09-11 2009-03-19 Voiceage Corporation Method and device for fast algebraic codebook search in speech and audio coding
US20110026581A1 (en) * 2007-10-16 2011-02-03 Nokia Corporation Scalable Coding with Partial Eror Protection
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
CN100578619C (zh) 2007-11-05 2010-01-06 华为技术有限公司 编码方法和编码器
CN101483043A (zh) * 2008-01-07 2009-07-15 中兴通讯股份有限公司 基于分类和排列组合的码本索引编码方法
EP2254110B1 (en) * 2008-03-19 2014-04-30 Panasonic Corporation Stereo signal encoding device, stereo signal decoding device and methods for them
CN101931414B (zh) 2009-06-19 2013-04-24 华为技术有限公司 脉冲编码方法及装置、脉冲解码方法及装置
US8280729B2 (en) * 2010-01-22 2012-10-02 Research In Motion Limited System and method for encoding and decoding pulse indices

Also Published As

Publication number Publication date
KR20130023373A (ko) 2013-03-07
JP6042949B2 (ja) 2016-12-14
EP2587480A1 (en) 2013-05-01
JP2013533505A (ja) 2013-08-22
US20180190304A1 (en) 2018-07-05
EP2587480B1 (en) 2019-10-16
US20130124199A1 (en) 2013-05-16
JP2017068273A (ja) 2017-04-06
US20140122066A1 (en) 2014-05-01
AU2011269502B2 (en) 2015-01-15
KR101384574B1 (ko) 2014-04-11
WO2011160537A1 (zh) 2011-12-29
US8959018B2 (en) 2015-02-17
CN102299760B (zh) 2014-03-12
PT2587480T (pt) 2019-11-20
US20150081284A1 (en) 2015-03-19
CN102299760A (zh) 2011-12-28
US9508348B2 (en) 2016-11-29
US9020814B2 (en) 2015-04-28
EP2587480A4 (en) 2013-12-25
US10446164B2 (en) 2019-10-15
JP6301431B2 (ja) 2018-03-28
US20170053657A1 (en) 2017-02-23
JP2015215630A (ja) 2015-12-03
US9858938B2 (en) 2018-01-02
AU2011269502A1 (en) 2013-02-07
JP5785255B2 (ja) 2015-09-24

Similar Documents

Publication Publication Date Title
ES2764832T3 (es) Método de codificación y decodificación de pulso y códec de pulso
ES2639646T3 (es) Codificación y decodificación de posiciones de impulso de pistas de una señal de audio
ES2817906T3 (es) Método de codificación de impulsos de las señales de excitación
ES2969117T3 (es) Dispositivo de codificación de audio de voz, y procedimiento de codificación de audio de voz
ES2588356T3 (es) Método y codificador para la codificación conjunta de vectores de una señal de voz
KR101621331B1 (ko) 펄스 인코딩 방법 및 장치와, 펄스 디코딩 방법 및 장치
AU2015201436B2 (en) Pulse encoding and decoding method and pulse codec
ES2821725T3 (es) Codificación y decodificación de posiciones de impulso de pistas de una señal de audio
Lee et al. Compacted codeword Huffman decoding method for MPEG-2 AAC decoder