ES2718935T3 - Método y codificador para la codificación conjunta de vectores de una señal de voz - Google Patents

Método y codificador para la codificación conjunta de vectores de una señal de voz Download PDF

Info

Publication number
ES2718935T3
ES2718935T3 ES16160251T ES16160251T ES2718935T3 ES 2718935 T3 ES2718935 T3 ES 2718935T3 ES 16160251 T ES16160251 T ES 16160251T ES 16160251 T ES16160251 T ES 16160251T ES 2718935 T3 ES2718935 T3 ES 2718935T3
Authority
ES
Spain
Prior art keywords
index
divided
combined
indt
coding
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
ES16160251T
Other languages
English (en)
Inventor
Fuwei Ma
Dejun Zhang
Lei Miao
Fengyan Qi
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 ES2718935T3 publication Critical patent/ES2718935T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01LMEASURING FORCE, STRESS, TORQUE, WORK, MECHANICAL POWER, MECHANICAL EFFICIENCY, OR FLUID PRESSURE
    • G01L19/00Details of, or accessories for, apparatus for measuring steady or quasi-steady pressure of a fluent medium insofar as such details or accessories are not special to particular types of pressure gauges
    • G01L19/08Means for indicating or recording, e.g. for remote indication
    • G01L19/12Alarms or signals
    • 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
    • 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/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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0004Design or structure of the codebook
    • G10L2019/0005Multi-stage vector quantisation

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)
  • Spectroscopy & Molecular Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (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)

Abstract

Un método de codificación de pulsos conjunta de vectores para una señal de voz, que comprende: el cálculo (B1) de un índice de codificación Indt de cada vector, en donde un sub-índice t designa un t-ésimo vector, t∈[0, T-1], y T es el número de vectores y es un número entero mayor o igual a 2, y el índice de codificación es un índice utilizado para indicar la distribución de pulsos en la pista, en donde cada vector representa una distribución de pulsos en una pista; la división (B2) de al menos un índice Indt al menos una vez en al menos dos secciones, en donde la división comprende al menos una vez la división del índice Indt en dos índices divididos Indt0 e Indt1 en conformidad con un factor establecido SLFt, siendo el factor SLFt un número entero positivo, el índice Indt0 indica un número de serie de un intervalo al que pertenece el índice Indt, el índice Indt1 indica un número de serie del índice Indt en el intervalo al que pertenece el índice Indt, no siendo la longitud del intervalo mayor que el factor SLFt, y en donde la división (B2) del índice Indt en dos índices divididos Indt0 e Indt1 en conformidad con un factor preestablecido SLFt es concretamente: Indt0=Int(Indt/SLFt), en donde Int() designa un redondeo al número entero inferior, y Indt1=Indt%SLFt, en donde % designa la utilización de un resto; la combinación (B3) de un índice dividido de al menos un vector y de índices divididos o de índices de codificación de otros vectores para generar un índice combinado IndSLF; en donde la combinación (B3) de un índice dividido de al menos un vector y de índices divididos o de índices de codificación de otros vectores para generar un índice combinado IndSLF; consiste concretamente en: para un vector t, que proporciona un índice dividido para participar en la combinación, la selección de un índice dividido capaz de representar características de ocupación de espacio del índice Indt, para participar en la combinación, en donde ser capaz de representar características de ocupación de espacio del índice Indt se refiere a que, en comparación con otros índices divididos, una tasa de ocupación de un margen de valores de un índice dividido seleccionado para un espacio de codificación es el más próximo a una tasa de ocupación de un margen de valores del índice Indt para el espacio de codificación; y la realización (B4) de una codificación en conformidad con el índice combinado y otros índices divididos no combinados; en donde la codificación según el índice combinado y otros índices divididos no combinados comprende la división adicional del índice combinado, la recombinación del índice combinado dividido con otros índices divididos no combinados y la codificación de lo resultante de la recombinación.

Description

DESCRIPCIÓN
Método y codificador para la codificación conjunta de vectores de una señal de voz
CAMPO DE LA INVENCIÓN
La presente invención se refiere a un método de codificación conjunta de vectores y un codificador conjunto de vectores.
ANTECEDENTES DE LA INVENCIÓN
Cuando se procesa una señal, generalmente la señal puede dividirse en múltiples vectores. A modo de ejemplo, haciendo referencia a la Figura 1, se clasifica el muestreo de señales, se clasifican varios valores de muestreo como un grupo, que puede referirse como un vector, y el número de este grupo de valores de muestreo se refiere como la dimensión del vector. En un codificador de voz basado en un modelo de predicción lineal excitada por un código (CELP: Code Excited Linear Prediction), en general, varios pulsos se utilizan para indicar una excitación de ruido cuasi-blanco. Con el fin de reducir la complejidad del codificador, generalmente una señal de entrada se divide en varias subtramas a procesarse y durante el procesamiento de un libro de códigos fijado, generalmente una señal de cada subtrama se divide, además, en varias pistas. Sobre la base del conocimiento anterior sobre el vector, puede considerarse que los puntos de muestreo en una pista pueden formar un vector multidimensional. A modo de ejemplo, para una pista que tenga dieciséis posiciones, se supone que un caso de muestreo de señales en una pista se describe utilizando un pulso y un valor puede representarse como [-1, -5, 0, -5, 12, 0, ..., 0]. Desde la perspectiva del pulso, se indica que esta pista tiene cuatro pulsos no cero, es decir, una primera posición tiene un pulso con su amplitud siendo 1 y un símbolo que es "-"; una segunda posición tiene un pulso con una amplitud de 5 y un símbolo que es "-"; una tercera posición tiene un pulso con su amplitud siendo cero y el resto puede deducirse por analogía. Desde la perspectiva del vector, un vector de 16 dimensiones tiene cuatro componentes no cero.
Es bien conocido que, en el campo de la codificación de voz, un codificador de voz basado en el modelo CELP se aplica de forma muy amplia, tal como: G.729, GSM y G.723.1, que están ya ampliamente aplicados en varios procesadores de señales digitales (DSP: Digital Signal Processor), dispositivos integrados, teléfonos móviles y ordenadores personales (PC: Personal Computer). En comparación con otros tipos de codificadores de voz, el codificador/decodificador de voz basado en el modelo CELP puede conseguir una buena calidad de voz en un caso de una tasa de codificación extremadamente baja y tendrá, no obstante, un excelente rendimiento en un caso de tasa de códigos alta.
En la tecnología de codificación de vectores, normalmente un libro de códigos algebraico se utiliza para realizar una codificación de cuantización sobre una señal residual después de un filtrado adaptativo. Después de la información de una posición y un símbolo de un pulso de libro de códigos algebraico óptimo en una pista se obtiene mediante búsqueda, un valor de índice correspondiente se obtiene mediante cálculo de codificación, de modo que un extremo de decodificación puede restablecer una secuencia de pulsos en conformidad con el valor del índice. Bajo la premisa operativa de garantizar un restablecimiento sin pérdidas, para reducir bits, que se necesitan para un valor de índice de codificación, en tanto que sea posible que uno de los principales objetivos de la investigación y desarrollo de un método de codificación de pulsos de libro de códigos algebraico.
A continuación, se describe, a modo de ejemplo, un método de codificación preferible en la codificación de voz denominado como un método de codificación de banda ancha de múltiples tasas adaptativas (AMR_WB+: Adaptive Multi-Rate Wideband), para introducir un método de codificación específico adoptado para un pulso de libro de códigos algebraico existente. En conformidad con la diferencia entre tasas de códigos de codificación, 1 a N pulsos pueden codificarse en cada pista y se supone que cada pista tiene M=2m posiciones y los procedimientos para codificar uno a seis pulsos en cada pista en AMR_WB+ se describen, respectivamente, como sigue:
® Un solo pulso se codifica en cada pista.
Puesto que cada pista tiene 2m posiciones, un índice de posición de un pulso en cada pista necesita codificarse con m bits, y un índice de símbolos del pulso necesita codificarse con 1 bit. Un valor de índice para la codificación de un pulso con un símbolo es:
Figure imgf000002_0001
en donde pe[0, 2m-1] es un índice de posición del pulso, s es un índice de símbolo del pulso y cuando un símbolo del pulso es positivo, s se establece a 0 y cuando el símbolo del pulso es negativo, s se establece a 1; hpe[0, 2m+1-1]. El número de bits necesarios para codificar un pulso en cada pista es: m+1.
@ Dos pulsos se codifican en cada pista.
En conformidad con un resultado de ® , m+1 bits se necesitan para codificar un pulso en cada pista, y m bits se necesitan para codificar un índice de posición de otro pulso; puesto que el orden de pulsos no es particularmente necesario, un símbolo de otro pulso puede indicarse mediante una relación de tamaños obtenida disponiendo índices de posiciones de los pulsos. Un valor de índice para codificar dos pulsos es:
Figure imgf000003_0002
en donde p0 y p1e[0, 2m-1] son índices de posición de dos pulsos, respectivamente; s es un índice de símbolo del pulso p0; una regla de indicación específica para un símbolo de pulso p1 es: p0 < p1 que indica que los dos símbolos de los dos pulsos son el mismo y p0 > p1 indica que los símbolos de los pulsos son opuestos; hpG[0, 22m+1-1].
El número de bits necesarios para codificar dos pulsos en cada pista es: 2m+1.
@ Tres pulsos se codifican en cada pista.
Cada pista está dividida en dos secciones: Sección A y Sección B y cada sección incluye 2m"1 posiciones. Una determinada sección incluye al menos dos pulsos y en conformidad con un resultado de @, 2*(m-1)+1=2m-1 bits se necesitan para codificar la sección; otro pulso realiza la búsqueda en la pista completa, y en conformidad con un resultado de ® , m+1 bits se necesitan; además, un bit se necesita, asimismo, para indicar una sección que incluye dos pulsos. Un valor de índice para codificar tres pulsos es:
Figure imgf000003_0001
en donde k es un índice de Sección; I3pG[0, 23m+1-1].
El número de bits necesarios para codificar tres pulsos en cada pista es: 3m+1.
© Cuatro pulsos se codifican en cada pista.
Cada pista está dividida en dos secciones: Sección A y Sección B y cada sección incluye 2m"1 posiciones. Casos de combinaciones de los números de pulsos incluidos en cada sección se muestran en la tabla siguiente:
Figure imgf000003_0003
En la tabla anterior, la base del número de bits necesarios, que corresponde a cada tipo es que: para el tipo 0 y tipo 4, un método similar al de @ se adopta en una sección que tenga cuatro pulsos, pero el número de pulsos para realizar la búsqueda completa es dos, que es equivalente a l2p(m-2)+k*22m"3+l2p(m-1)x22m"2; para el tipo 1, es equivalente a Iip(rn-1)+l3p(rn-1)x2m; para el tipo 2, es equivalente a I2p(m-1)+l2p(rn-1)x22m'1; y para el tipo 3, es equivalente a l3p(m-1)+hp(m-1)x23m'2.
El tipo 0 y el tipo 4 se consideran como una clase de caso posible, del tipo 1 al tipo 3 se utilizan cada uno como un caso y en total, existen cuatro casos; por lo tanto, se necesitan dos bits para indicar un caso correspondiente, por lo que del tipo 1 al tipo 3 todos necesitan 4m-2+2=4m bits; además, para el caso que incluye el tipo 0 y el tipo 4, se necesita un bit adicional para distinguirlos y por lo tanto, el tipo 0 y el tipo 4 necesitan 4m-3+2+1=4m bits.
El número de bits necesarios para codificar cuatro pulsos en cada pista es: 4m.
© Cinco pulsos se codifican en cada pista.
Cada pista está dividida en dos secciones: Sección A y Sección B y cada sección incluye 2m-1 posiciones. Una determinada sección incluye al menos tres pulsos, y en conformidad con un resultado de @, se necesitan 3*(m-1)+1=3m-2 bits para codificar la sección; los dos pulsos restantes se buscan en la pista completa y en conformidad con un resultado de @, se necesitan 2m+1 bits; además, un bit adicional se necesita para indicar una sección que incluye tres pulsos. Un valor de índice para codificar cinco pulsos es:
Figure imgf000004_0001
El número de bits necesarios para codificar cinco pulsos en cada pista es: 5m.
© Seis pulsos se codifican en cada pista.
Cada pista está dividida en dos secciones: Sección A y Sección B y cada sección incluye 2m-1 posiciones. Casos de combinaciones de los números de pulsos incluidos en cada sección se muestra en la tabla siguiente:
Figure imgf000004_0002
En la tabla anterior, la base del número de bits necesarios, que corresponde a cada tipo, puede deducirse siguiendo @, y por ello no se repite aquí de nuevo.
El tipo 0 y el tipo 6 , el tipo 1 y el tipo 5, el tipo 2 y el tipo 4 se consideran cada uno como un caso posible, el tipo 3 se utiliza como un caso independiente y en total, existen cuatro casos; por lo tanto, dos bits se necesitan para indicar un caso correspondiente y el tipo 3 necesita 6m-4+2=6m-2 bits; para los casos que incluyen tipo combinado, se necesita un bit adicional para la distinción y por lo tanto, otros tipos, excepto para el tipo 3 requieren 6m-5+2+1=6m-2 bits.
El número de bits necesarios para codificar seis pulsos en cada pista es: 6m-2.
En el proceso de proponer la presente invención, se observa que, en un método de codificación de pulsos algebraico proporcionado por AMR_WB+, una lógica de codificación similar a la recursión se adopta para dividir un caso de codificación de un gran número de pulsos en varios codificados de codificación de un pequeño número de pulsos para su procesamiento, en donde la complejidad del cálculo es grande y asimismo, con el aumento del número de pulsos codificados en una pista, se acumula gradualmente la redundancia de un índice de codificación, lo que produce fácilmente un uso innecesario de bits de codificación.
En el documento US2006/290539, se describe cómo un índice se divide en un grupo formado por los g bits superiores y el resto. Estos últimos pueden producirse sin codificación adicional a partir de una secuencia que se codifica de la misma manera (a saber, iteración adicional) que la secuencia original de m1 bloques de índice.
SUMARIO DE LA INVENCIÓN
La invención se define en las reivindicaciones adjuntas.
En las formas de realización de la presente invención, más de dos vectores son conjuntamente codificados y un índice de codificación de al menos un vector se divide y luego se combina entre vectores diferentes, de modo que se pueda recombinar la codificación de espacios inactivos de diferentes vectores, con lo que se ayuda a economizar bits de codificación y puesto que un índice de codificación de un vector se divide y luego índices divididos más cortos (en comparación con un índice antes de la división) se recombina, lo que ayuda a reducir las exigencias para la anchura binaria de las partes operativas en el cálculo de codificación/decodificación.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La Figura 1 es un diagrama esquemático de la división vectorial de una señal;
La Figura 2 es un diagrama de flujo esquemático de un método de codificación según la forma de realización 1; La Figura 3 es un diagrama de flujo esquemático de un método de codificación según la forma de realización 2, en conformidad con la presente invención;
La Figura 4 es un diagrama de flujo esquemático de un método de codificación según la forma de realización 3; La Figura 5 es un diagrama de flujo esquemático de un método de codificación según la forma de realización 4; La Figura 6 es un diagrama de flujo esquemático de un método de codificación según la forma de realización 5; La Figura 7 es un diagrama de flujo esquemático de un método de decodificación según la forma de realización 6; La Figura 8 es un diagrama de flujo esquemático de un método de decodificación en conformidad con la forma de realización 7;
La Figura 9 es un diagrama estructural lógico esquemático de un codificador según la forma de realización 8;
La Figura 10 es un diagrama estructural lógico esquemático de un codificador según la forma de realización 9, La Figura 11 es un diagrama estructural lógico esquemático de un decodificador según la forma de realización 10; La Figura 12 es un diagrama estructural lógico esquemático de un decodificador según la forma de realización 11; La Figura 13 es un diagrama esquemático de un procedimiento de codificación conjunta de los 4 bits más altos de 4 pistas; y
La Figura 14 es un diagrama esquemático de un procedimiento de codificación conjunta de los 8 bits más altos en cascada de 2 etapas en 4 pistas.
DESCRIPCIÓN DETALLADA DE LAS FORMAS DE REALIZACIÓN
Una forma de realización de la presente invención da a conocer un método de codificación conjunta de vectores, siendo más de dos vectores conjuntamente codificados y un índice de codificación de al menos un vector se divide y luego se combina entre diferentes vectores, con lo que se economizan bits de codificación y se reduce la longitud de
datos que participan en el cálculo. La realización 2 y la realización 8 (cuando se usa para ejecutar el método de codificación provisto en la Realización 2) constituyen realizaciones de la presente invención. Las realizaciones restantes no comprenden necesariamente todas las características definidas por las reivindicaciones anexas, pero constituyen ejemplos adicionales útiles para comprender la invención.
En un codificador de voz, la información sobre las posiciones y símbolos (si están relacionados) de todos los pulsos
en cada pista se obtiene mediante una búsqueda del libro de códigos y la información necesita transferirse completamente a un extremo de decodificación, de modo que la información sobre las posiciones y los símbolos (si están relacionados) de todos los pulsos puede recuperarse, de forma única, en el extremo de decodificación y asimismo, con el fin de recudir una tasa binaria lo más posible, se espera utilizar bits lo menos posible para transferir la información.
Puede conocerse mediante un análisis teórico que el número de permutaciones y combinaciones de posiciones y símbolos (si están relacionados) de todos los pulsos en una misma pista es un valor mínimo de un espacio de libro
de códigos, y el número de bits de codificación correspondiente es un valor límite inferior teórico. El número total de posiciones y el número de total de pulsos en una pistan están fijados. En lo que respecta un caso en el que el número total de posiciones y el número total de pulsos en una pista son valores diferentes, el número de permutaciones y combinaciones de posiciones y símbolos de todos los pulsos no es siempre una potencia entera de
2 y por lo tanto, el valor límite inferior teórico del número de bits de codificación no es siempre un número entero y en este caso, el número real de bits de codificación para una codificación de pista única es al menos la sección
entera del valor límite inferior teórico más 1, de modo que es inevitable la ocurrencia de un espacio de libro de códigos inactivo parcial. A modo de ejemplo, la tabla 1 proporciona un valor límite inferior teórico y un valor límite
inferior real del número de bits de codificación y una situación de un espacio inactivo, que están en una pista con el número total de posiciones que es 16 en un caso en que el número total N de pulsos necesarios para la codificación
es 1 a 7 (teniéndose en cuenta que un pulso tiene un símbolo).
Tabla 1
Figure imgf000005_0001
Figure imgf000006_0001
Puede deducirse de la tabla 1 que, en una mayoría de casos, el valor límite inferior real sigue dando lugar a un importante desperdicio del espacio del libro de códigos y por lo tanto, más de dos pistas están conjuntamente codificadas, un índice de codificación de al menos una pista se divida en al menos dos índices divididos y luego, un índice dividido de una pista e índices divididos o índices de codificación de otras pistas se combinen y luego se utilicen para la codificación.
Este método está basado en una idea como sigue: la codificación conjunta para más de dos pistas puede permitir espacios del libro de códigos inactivos en una codificación de pista única a combinarse y una vez combinada, los espacios inactivos son suficientes, pudiéndose reducir un bit de codificación real. Sin embargo, si los índices de codificación en más de dos pistas se combinan directamente, una longitud de codificación final puede ser grande, o incluso puede superar la anchura binaria (tal como 64 bits) generalmente utilizada para la operación y en este momento, se necesita diseñar códigos de procedimiento de procesamiento de cálculo dedicados para operaciones de codificación o decodificación tales como adición, sustracción, multiplicación y división, con lo que se obtiene un aumento de la complejidad del procesamiento.
Por lo tanto, se tiene en cuenta que un índice de codificación de al menos una pista es objeto de división, la combinación interpistas se realiza con al menos un índice dividido y de este modo, los espacios inactivos interpistas pueden combinarse en una cierta medida y asimismo, se reduce también la longitud de un valor que participa en la operación.
El análisis teórico para el principio de la codificación conjunta de múltiples pistas de la presente invención da a conocer anteriormente, y a continuación, varias soluciones preferibles y ejemplos adicionales útiles para la comprensión de la invención se ilustran en detalle en las siguientes formas de realización, respectivamente.
Forma de realización 1: Un método de codificación de pulsos conjunto de pistas, según se ilustra en la Figura 2, incluye las etapas siguientes:
A1: Calcular un índice de codificación Indt de cada pista, en donde un sub-índice t indica una t-ésima pista, te[0, T-1], y T es el número de pistas y es un número entero mayor o igual a 2.
Varios métodos existentes pueden adoptarse para el cálculo del índice Indt de cada pista. A modo de ejemplo, para el método de cálculo del índice de codificación de pista única dado a conocer en la solicitud de patente China (con fecha de publicación de 29 de octubre de 2008) con número de publicación CN101295506, puede hacerse especial referencia a la línea 18, página 13 a la línea 9, página 15 (forma de realización 2, Figura 14 y Figura 15) en la especificación del documento de solicitud de patente y para un método de cálculo de decodificación correspondiente, puede hacerse a la línea 23, página 16 a la línea 12, página 17 (forma de realización 4) en la especificación del documento de solicitud de patente. También a modo de ejemplo, para el método de cálculo del índice de codificación de pista única dado a conocer en la solicitud de patente China (con fecha de publicación de 18 de marzo de 2009) con número el número de publicación siendo CN101388210, puede hacerse referencia especial a la línea 23, página 8 a la línea 7, página 10 (forma de realización 2, Figura 7) en la especificación del documento de solicitud de patente y para un método de cálculo de decodificación correspondiente, puede hacerse referencia a la línea 10, página 21 a la línea 27, página 21 (forma de realización 6) en la especificación del documento de solicitud de patente.
Con el fin de economizar mejor los bits de codificación, durante la selección de un método de cálculo del índice Indt, un método de cálculo capaz de alcanzar el valor límite inferior teórico del número de bits de codificación de pista única puede seleccionarse en tanto que sea posible. Además, un método de cálculo que permite que sea continuo el margen de valores del índice Indt o que sea continuo lo más posible se utiliza también de forma preferentemente, con el fin de utilizar el espacio inactivo. Conviene señalar que, en tanto que ambos extremos de codificación y de decodificación puedan determinar un método de cálculo adoptado por una pista, pistas diferentes pueden adoptar métodos de cálculo del índice Indt diferentes.
A2: Dividir al menos un índice Indt al menos una vez en al menos dos secciones, en donde la división al menos una vez sea equivalente a dividir el índice Indt en dos índices divididos Indto e Indti en conformidad con un factor establecido SLFt.
La división de Indt puede entenderse como sigue: que la información del índice se soporta por un parámetro que se convierte en la información de índice que se soporta por más de dos parámetros. A modo de ejemplo, el hecho de que originalmente un parámetro con el margen de valores de [0, 99] indica un centenar de casos en que pueden dividirse en esos dos parámetros con el margen de valores siendo [0, 9] indicando normalmente un centenar de casos.
El índice Indt puede dividirse en múltiples índices divididos tales como Indtc, Indt1, Indt2, Indt3, ....., y así sucesivamente. En el cálculo real, un índice dividido puede obtenerse dividiendo directamente el índice Indt o puede obtenerse dividiendo de nuevo una sección divida por el índice Indt; sea cual fuere el caso, la división para obtener el índice dividido (es decir, un índice dividido utilizado para una combinación posterior) puede entenderse equivalentemente como un proceso de dividir el índice Indt en dos índices divididos Indtc e Indt1, uno de los cuales es un índice dividido utilizado para una combinación posterior, y el otro puede entenderse como una sección que incluye la información restante del índice Indt.
Por lo tanto, el factor SLFt puede entenderse como sigue: el margen de valores del índice Indt original se divide en varios intervalos, siendo la longitud de cada intervalo no superior al valor de SLFt, siendo SLFt un número entero positivo y Indto indica un número de serie de un intervalo al que pertenece el índice Indt e Indti indica un número de serie del índice Indt en el intervalo al que pertenece el índice Indt (evidentemente, Indti^SLFt), y:
Indt<IndtoxSLFt+Indt];
Cuando el signo de 'menos que' se toma en la fórmula anterior, ello significa que un espacio proporcionado conjuntamente por Indto e Indti puede ser mayor que un espacio originalmente ocupado por el índice Indt; puesto que, en general, el espacio de codificación inactivo del índice Indt tiene algunos restos, si el espacio conjunto de Indto e Indti es ligeramente mayor, en general la economía de bits de codificación final puede no resultar desfavorablemente influida.
Por supuesto, el caso más económico es que la división sea capaz de realizarse en tanto que sea posible en conformidad con el tamaño del espacio del índice Indt, esto es:
Indto=Int(Indt/SLFt), en donde Int() indica un redondeo al número entero inferior y
Indti=Indt%SLFt, en donde % indica que se forma un resto.
En este caso, el margen de valores del índice Indt es continuo, en comparación con el margen de valores del índice Indt, que es inactivo en el espacio conjuntamente proporcionado por Indto e Indti que solamente un diferencia entre un valor máximo de Indti y SLFt cuando Indto toma un valor máximo.
Diferentes pistas pueden adoptar SLFt, diferentes y si múltiples índices divididos se dividen en una misma pista, cada división puede utilizar también un SLFt, diferente en tanto que SLFt utilizado por una determinada división de índices divididos por una determinada pista se determine a tal respecto.
A3: Combinar un índice dividido de al menos una pista y los índices divididos o índices de codificación de otras pistas para generar un índice combinado IndSLF.
En correspondencia con la "división", la "combinación" puede entenderse como sigue: que la información de índice se soporta por más de dos parámetros que se convierten en la información de índice que se soporta por un solo parámetro. Evidentemente, el margen de valores de un parámetro después de la combinación es mayor que, o al menos igual a un producto de margen de valores de cada parámetro antes de la combinación. La combinación de múltiples parámetros puede indicarse por una fórmula como sigue:
A I= ((((a tx A n a t_,) ........)* A 2+ a 2) x A j a i) x A 0+ao
en donde AI indica un parámetro después de la combinación, ai indica I+i parámetros antes de la combinación, ie[o, I], y Ai indican el número de todos los valores de ai. Esta manera de la combinación es la más compacta, siendo el margen de valores de un parámetro después de la combinación igual a un producto de los márgenes de valores de cada parámetro antes de la combinación y toda la combinación de parámetros aquí mencionada puede adoptar esta manera operativa. Por supuesto, pueden adoptarse también otras maneras de la combinación. A modo de ejemplo, el margen de valores de un parámetro después de la combinación puede ser mayor que un producto de márgenes de valores de cada parámetro antes de la combinación en tanto que un parámetro después de la combinación pueda retener completamente información de cada parámetro antes de la combinación; si el espacio de valor de un parámetro después de la combinación no se supera excesivamente en comparación con un producto de espacio de valor de cada parámetro antes de la combinación, en general la economía de bits de codificación final no puede influirse de forma desfavorable.
Un índice combinado generado incluye al menos un índice dividido de una pista y además, los índices divididos o los índices de codificación de otras pistas pueden participar en la combinación. Si una pista proporciona múltiples índices divididos para participar en la combinación, los índices divididos pueden combinarse respectivamente en índices combinados diferentes.
A4: Realizar una codificación en conformidad con un índice combinado y otros índices divididos no combinados. ® El índice combinado y cada índice dividido no combinado pueden codificarse de forma directa, respectivamente. Puesto que cada sección de combinación en el índice combinado incluye una parte de un espacio inactivo de una pista, es posible economizar bits de codificación de forma fija.
@ Además, una manera de codificación de longitud variable puede adoptarse también para un índice combinado, con el fin de economizar más bits de codificación del índice combinado, es decir:
comparar el índice combinado IndSLF y ajustar un valor umbral THR, en donde,
THR<2A(KsLF)-IndsLF,max,
2a(Kslf) indica una potencia de 2 de Kslf, siendo Kslf la longitud de la secuencia binaria del índice IndsLF,max, y el índice IndsLF,max indica un valor máximo del índice IndsLFi
si el índice IndsLF es menor que el umbral THR, se realiza la codificación del índice IndsLF utilizando un primer número de bits de codificación; de no ser así, se realiza la codificación del índice IndsLF añadido con un valor de compensación THRo utilizando un segundo número de bits de codificación, en donde se tiene la relación THR<THRo<2A(KsLF)-IndsLF,max, siendo el primer número menor que el segundo número, el segundo número es menor o igual a Kslf, y el primer número y el segundo número son ambos números enteros positivos.
Para el principio, la deducción y descripción específicas del método anterior para economizar bits, se hace referencia a la solicitud de patente China con número de aplicación siendo CN200910150637.8 (siendo la fecha de solicitud de la patente el 19 de junio de 2009).
@ El índice combinado puede dividirse y luego combinarse con otros índices divididos no combinados y luego, procederse a su codificación.
Es decir, el índice combinado se divide en T1 índices recombinados Indto' en conformidad con un margen de valores establecidos, en donde T1 es menor o igual al número de pistas que generan el índice combinado (el número de valores de t puede ser aquí menor que el número T de valores de t lo que indica originalmente una t-ésima pista, pero puesto que se utiliza un índice recombinado para la recombinación con un índice dividido no combinado de una pista t correspondiente, el sub-índice t se sigue utilizando continuamente para indicar que está en correspondencia con una pista), un margen de valores de al menos un índice Indto' es mayor que un margen de valores del índice dividido, que participa en la combinación, de la pista t correspondiente y un margen de valores de al menos un índice Indto' es menor que un margen de valores del índice dividido, que participa en la combinación, de la pista t correspondiente. En este caso, la división de un índice combinado puede realizarse con referencia a la división de un índice de codificación en la etapa A2, pero se necesita dividir T1 índices recombinados, pudiéndose basar cada división en el mismo o diferente margen de valores y la limitación anterior al margen de valores del índice recombinado dividido permite la convergencia del espacio inactivo por el índice combinado a concentrarse en determinados índices recombinados en una cierta medida durante la división, con lo que se facilita la económica de bits de codificación.
Cada índice recombinado y un índice dividido no combinado de una pista correspondiente se combinan respectivamente y luego se codifican, y si existe una pista sin que le sea asignado un índice recombinado, se codifica un índice dividido no combinado de la pista. Para la combinación de un índice recombinado y un índice dividido de una pista correspondiente, puede hacerse referencia al proceso de combinación de índices combinados antes citados. Puesto que el índice combinado agrega el espacio inactivo, en un caso en que los bits de codificación de una pista original para un índice recombinado asignado no se incrementa, la división del índice combinado se completa antes de que a algunas pistas pueda asignarse un índice recombinado y en este caso, solamente puede codificarse el índice dividido no combinado de la pista.
Por supuesto, si existe otra pista que no proporcione un índice dividido y cuyo índice de codificación no participe en la combinación, la pista puede considerarse como una pista de codificación independiente y no se examina en la presente invención.
Forma de realización 2: Un método de codificación de pulsos conjunto de pistas en conformidad con la invención. Esta forma de realización da a conocer una solución preferible para seleccionar índices divididos a combinarse sobre la base de la forma de realización 1, según se ilustra en la Figura 3, que incluye las etapas siguientes:
B1: Calcular un índice de codificación Indt de cada pista.
B2: Dividir al menos un índice Indt al menos una vez en al menos dos secciones, en donde la división al menos una vez es equivalente a la división de Indt en dos índices divididos Indtü e Indt1 en conformidad con un factor SLFt establecido.
La etapa B1 y la etapa B2 pueden realizarse con referencia a la etapa A1 y etapa A2 de la forma de realización 1. B3: Combinar un índice dividido de al menos una pista e índices divididos o índices de codificación de otras pistas para generar un índice combinado IndsLF, y, cuando se selecciona un índice dividido que participa en la combinación, seleccionar, para una pista t, un índice dividido capaz de representar las características de ocupación del espacio del índice Indt para participar en la combinación.
El hecho de ser capaz de representar las características de ocupación de espacio del índice Indt se refiere a que, en comparación con otros índices divididos, una tasa de ocupación de un margen de valores de índice dividido seleccionado para un espacio de codificación es la más próxima a una tasa de ocupación de un margen de valores del índice Indt para el espacio de codificación.
En la presente invención, puesto que los espacios inactivos de diferentes pistas se combinan para ayudar a economizar bits de codificación, con el fin de conseguir un mejor efecto de utilizar el espacio inactivo, se espera que el margen de valores del índice dividido que representa la pista t para realizar la combinación pueda mantener la proporción inactiva del espacio de codificación del margen de valores del índice Indt en tanto que sea posible, lo que significa que el margen de valores de la sección restante del índice Indt está más próximo a la utilización completa del espacio de codificación, como tal, próximo a una potencia entera de 2.
B4: Realizar una codificación en conformidad con el índice combinado y otros índices divididos no combinados. La etapa B4 puede ejecutarse con referencia a la etapa A4 de la forma de realización 1.
La adopción de la solución de esta forma de realización puede garantizar, además, el efecto de que un índice combinado economiza bits de codificación.
Forma de realización 3: Un método de codificación de pulsos conjunto de pistas. Esta forma de realización da a conocer una solución preferible para dividir un índice de codificación sobre la base de la forma de realización 1, según se ilustra en la Figura 4, que incluye las etapas siguientes:
C1: Calcular un índice de codificación Indt de cada pista.
La etapa C1 puede ejecutarse con referencia a la etapa A1 de la forma de realización 1.
C2: Dividir al menos un índice Indt al menos una vez en al menos dos secciones, en donde la división al menos una vez es equivalente a dividir el índice Indt en dos índices divididos Indtü e Indt1 en conformidad con factor SLFt establecido, Indto=Int(Indt/SLFt), y Indt1=Indt%SLFt, en donde, SLFt=2A(Kt), o SLFt=Int(Indt,max/2A(Kt)), siendo Kt un número entero positivo y el índice Indtmax indica un valor máximo del índice Indt.
© Cuando SLFt=2A(Kt),
Figure imgf000009_0001
En este caso, el margen de valores del índice Indt1 puede utilizar completamente un espacio de codificación, siendo inactivo solamente una diferencia entre un valor máximo de Indt1 y 2A(Kt) cuando el índice Indtü adopta un valor máximo, y el margen de valores del índice Indtü conserva completamente las características de ocupación de espacio del índice Indt. Evidentemente, cuanto más pequeño sea el valor de Kt, tanto más próximas son las características de espacio de Indtü a las de Indt y cuanto Kt es 0, el índice Indtü se degenera en el índice Indt.
© Cuando SLFt=Int(Indt,max/2A(Kt)),
este caso es simplemente opuesto al de © , y realmente, es equivalente al de los índices Indtü e Indt1 en © intercambian posiciones, el margen de valores del índice Indto puede utilizar completamente el espacio de codificación y el margen de valores del índice Indti conserva completamente las características de ocupación de espacio del índice Indt. Evidentemente, cuanto más pequeño sea el valor de Kt, tanto más próximas las características de espacio de Indt1 son con respecto a Indt, y cuando Kt es 0, el índice Indt1 se degenera en el índice Indt.
C3: Combinar un índice dividido de al menos una pista y los índices divididos o índices de codificación de otras pistas para generar un índice combinado IndSLF.
Puede conocerse, en conformidad con el análisis realizado en la forma de realización 2, que si un índice combinado necesita conseguir un mejor efecto de economizar bits de codificación, es necesario seleccionar un índice dividido que mantenga las características de espacio del índice Indt en tanto que sea posible y por lo tanto, para la pista t que proporciona un índice dividido para participar en la combinación,
si SLFt=2A(Kt), es adecuado seleccionar el índice Indto para participar en la combinación y
si SLFt=Int(Indt,max/2A(Kt)), es adecuado seleccionar el índice Indti para participar en la combinación.
Además, puede conocerse en conformidad con el análisis realizado en la etapa C2 que, cuanto más pequeño sea el valor de Kt, tanto mejor serán conservadas las características de espacio por el índice dividido seleccionado para participar en la combinación. Sin embargo, la longitud de un índice combinado correspondiente se aumenta, y por lo tanto, la longitud del índice dividido que participa en la combinación puede determinarse en conformidad con la condición de una pista real (tal como la longitud del índice de codificación original y la extensión inactiva del espacio). Durante el diseño real, las proporciones de espacios inactivos, que pueden conservarse por los índices divididos utilizados para la combinación y que corresponden a diferentes valores de Kt, pueden calcularse uno a uno y un valor Kt que puede mantener un espacio inactivo de una alta proporción y no causar que un índice dividido participe en la combinación siendo excesivamente largo se selecciona a este respecto. A modo de ejemplo, puede seleccionarse que Kt=Kt,max-2, o Kt=Kt,max-3, o Kt=Kt,max-4, en donde Kt,max es la longitud de una secuencia binaria del índice Indt,max.
C4: Realizar la codificación en conformidad con el índice combinado y otros índices divididos no combinados.
La etapa C4 puede ejecutarse con referencia a la etapa A4 de la forma de realización 1.
La manera de dividir el índice Indt, dada a conocer en esta forma de realización, puede garantizar que uno de los índices divididos conserve las características de ocupación de espacio del índice Indt en tanto que sea posible, de modo que el índice combinado pueda economizar mejor bits de codificación.
Forma de realización 4: Un método de codificación de pulsos conjunto de pistas. Esta forma de realización da a conocer una solución simple, cómoda y fácil para dividir un índice de codificación sobre la base de la forma de realización 1, según se ilustra en la Figura 5, que incluye las etapas siguientes:
Di: Calcular un índice de codificación Indt de cada pista.
La etapa D1 puede ejecutarse con referencia a la etapa A1 de la forma de realización 1.
D2: Dividir al menos un índice Indt al menos una vez en al menos dos secciones, en donde la división al menos una vez sea equivalente a dividir el índice Indt en dos índices divididos Indto e Indt1 en conformidad con un factor SLFt establecido y la práctica específica es la de seleccionar un valor de un bit situado en una posición establecida de Indt como Indto, y valor de bits en las posiciones restantes como Indt1.
En esta forma de realización, un índice dividido se obtiene directamente a partir del índice Indt en conformidad con una manera de división binaria. Evidentemente, en este caso, SLFt=2A(Kt), en donde el número de bits en la posición establecida es Kto, el número de bits en la posición restante es Kt, Kto+Kt=Kt,max, siendo Ktmax la longitud de la secuencia binaria del índice Indtmax y el índice Indtmax indica un valor máximo del índice Indt.
Se entiende fácilmente que, cuando los bits establecidos que forman un determinado índice dividido no son continuos, ello significa que el margen de valores del índice Indt es asignado de forma discontinua, en varios intervalos con una longitud de SLFt pero las características de ocupación del índice dividido para el espacio de codificación no resultan influidas por el hecho de que un margen de valores incluido sea continuo, o no, y solamente depende de si los intervalos están completamente ocupados.
Conviene señalar que, cuando un parámetro se divide en una manera a nivel de bits, una posición de un bit se describe en conformidad con la longitud de secuencia binaria del valor máximo del parámetro. A modo de ejemplo, si la longitud de la secuencia binaria del índice Indtmax es 1o, un valor del índice Indt puede ser simplemente 2 en un determinado momento (a menos que no se ilustre especialmente de otro modo, siendo los valores utilizados todos
1o
ellos decimales) y la longitud de secuencia binaria efectiva del índice Indt son solamente 2 bits, pero cuando el parámetro se divide en una manera a nivel de bits, una posición necesaria para dividir un bits es todavía calculada comenzando desde los 10 bits de orden superior.
Además, puede deducirse a diferencia de la situación ® descrita en la etapa C2 de la forma de realización 3 que la situación ® es realmente equivalente a la de la secuencia binaria con una longitud siendo de Ktmax, comenzando el valor de Kt0 bits a partir del bit de orden superior del índice Indt que se selecciona como el índice Indtü, y un valor de bits restantes se selecciona como Indti, es decir, el índice Indt se divide en dos segmentos en conformidad con una prioridad binaria y un valor de cada segmento es correspondiente a un índice dividido.
D3: Combinar un índice dividido de al menos una pista en índices divididos o índices de codificación de otras pistas para generar índice combinado IndsLF, y la práctica específica es la de seleccionar un índice dividido de Indt que incluya al menos valores de los dos bits superiores para participar en la combinación.
Puede conocerse en conformidad con el análisis en la forma de realización 2 que si se necesita un índice combinado para conseguir un mejor efecto de economizar bits de codificación, es necesario seleccionar un índice dividido que conserve las características de espacio del índice Indt en la mayor medida posible, y cuando el índice Indt se divide en una manera a nivel de bits, evidentemente, varios bits superiores son los más capaces de reflejar las características de espacio del índice Indt y por lo tanto, no importa si los bits que forman un índice dividido sean continuos, o no, incluyendo un índice dividido valores de los dos bits superiores que se seleccionan preferentemente para participar en la combinación. Por supuesto, una situación más preferible es, cuando el índice Indt se divide en conformidad con la prioridad binaria de la secuencia binaria, que un índice dividido correspondiente a un segmento dividido localizado en un bit de orden superior sea seleccionado para participar en la combinación, tal como Indtü en la situación ® descrita en la etapa C2 de la forma de realización 3.
D4: Realizar la codificación en conformidad con el índice combinado y otros índices divididos no combinados.
La etapa D4 puede ejecutarse con referencia a la etapa A4 de la forma de realización 1. Además, si se adopta una manera en la que el índice combinado sea dividido, combinándose luego con otros índices divididos no combinados y luego codificados, la división del índice combinado puede realizarse también con referencia a la etapa D2 anterior, es decir,
dividir la longitud total Kslf de la secuencia binaria del índice combinado en T i secciones en conformidad con una longitud establecida, en donde T i es menor o igual al número de pistas que generan el índice combinado, un valor de cada sección está en correspondencia con un índice Indtü', siendo Kslf la longitud de la secuencia binaria del IndsLF,max, y el índice IndsLF,max indica un valor máximo del índice IndsLF. A modo de ejemplo, la división de Kslf en conformidad con un valor de Kto usado por la pista t que genera el índice combinado en donde el número de bits divididos por cada índice Indto' en correspondencia es menor o igual al valor de Kto utilizado por una pista t correspondiente.
A modo de ejemplo, si existen cuatro pistas, y cada pista extrae respectivamente los cuatros bits superiores de un índice de codificación como un índice dividido para participar en la combinación, después de la combinación, el índice combinado puede dividirse análogamente con cuatro bits como un segmento, y se utiliza como un índice recombinado para sustituir a los cuatros bits superiores de un índice de codificación original. El índice combinado combina un espacio inactivo, y la longitud de secuencia binaria puede ser menor que 4+4+4+4, con lo que el índice recombinado obtenido por una determinada pista puede tener solamente 3 bits o incluso menos, lo que hace que se economicen bits de codificación de manera fija. Conviene señalar que cuando los índices divididos se combinan en un índice combinado, la operación de economizar bits está completada, por lo que cuando el índice combinado se divide en una manera a nivel de bits, no se necesita ninguna regla especial, y en tanto que un extremo de codificación y un extremo de decodificación adopten una misma regla, se pueden segmentar bits continuamente o no se pueden extraer de forma continua.
Esta forma de realización da a conocer una manera de división simple, cómoda y fácil del índice Indt, que puede no solamente garantizar que uno de los índices divididos conserve las características de ocupación de espacio del índice Indt en la medida de lo posible, sino que también se pone en práctica de forma conveniente.
Forma de realización 5: Un método de codificación de pulsos conjunto de pistas. Esta forma de realización da a conocer un método de codificación de pulsos conjunto de pistas dispuestas en cascada de capas sobre la base de la forma de realización 1, según se ilustra en la Figura 6, que incluye las etapas siguientes:
E1: Pistas del grupo participan en la codificación conjunta, en donde cada grupo incluye al menos dos pistas.
A modo de ejemplo, dieciséis pistas participan en la codificación conjunta, formando cada cuatro pistas un grupo y en total, se constituyen cuatro grupos.
E2: Dividir y combinar un índice de codificación en cada grupo con referencia a la manera descrita en la forma de realización 1.
Es decir, se calcula un índice de codificación de cada pista; al menos dos índices de codificación son divididos; cada índice de codificación se divide al menos una vez en al menos dos secciones, en donde la división al menos una vez es equivalente a dividir un índice de codificación en dos índices divididos de una sola etapa en conformidad con un factor de una sola etapa establecido, un índice dividido de una sola etapa indica números serie de varios intervalos con una longitud no superior a un valor establecido, el otro índice dividido de una etapa indica un número de serie del índice de codificación en el intervalo al que pertenece el índice de codificación; y los índices divididos de una sola etapa procedentes de al menos dos pistas se combinan para generar un índice combinado de una sola etapa. E3: Comenzando desde m=2, repetir la operación siguiente de generar un índice combinado de m-etapas hasta m=M; dividir al menos dos índices combinados de (m-1)-etapas, en donde me[2, M], siendo M un número entero mayor o igual a 2; dividir cada índice combinado de (m-1)-etapas al menos una vez en al menos dos secciones, en donde la división al menos una vez es equivalente a dividir un índice combinado de (m-1)-etapas en dos índices divididos de m-etapas en conformidad con un factor de m-etapas y combinar índices divididos de m-etapas a partir de al menos dos índices combinados de (m-1)-etapas para generar un índice combinado de m-etapas.
Considerando el índice combinado de (m-1)-etapas necesario para dividirse como el índice de codificación en cada forma de realización antes citada, el procedimiento de división y combinación anterior para cada etapa puede realizarse con referencia a la descripción correspondiente y por ello no se repite aquí de nuevo. A modo de ejemplo, con referencia a la forma de realización 4, el índice dividido de una sola etapa utilizado para generar el índice combinado de una etapa puede ser un valor interceptado a partir de un bit establecido de un índice de codificación correspondiente que comienza desde el bit de orden superior y el índice dividido de m-etapas utilizado para generar el índice combinado de (m-1)-etapas puede ser un valor interceptado desde un bit establecido de un índice combinado de (m-1)-etapas comenzando desde el bit superior.
E4: Realizar la codificación en conformidad con el índice combinado de M-etapas y otros índices divididos de una etapa a (M-1)-etapas.
De forma similar a la etapa A4 en la forma de realización 1, el índice combinado de M-etapas y otros índices divididos de una etapa a (M-1)-etapas no combinados pueden codificarse de forma directa, respectivamente. O, además, el índice combinado de M-etapas puede dividirse y luego combinarse con otros índices divididos de (M-1)-etapas no combinados y luego codificados, por lo que aquí no se repite de nuevo.
Conviene señalar que, aunque el procedimiento de codificación anterior, con el fin de hacer la descripción más clara y proporcionarse con una operabilidad cíclica, el procedimiento de división y combinación de cada etapa se describe de forma coherente, y en realidad puede ser también la misma que la descrita en la forma de realización 1. Un índice dividido se permite que participe en la combinación y también un índice de codificación (para combinación de primera etapa) o índice combinado (para combinación de segunda etapa anterior) se permite para participar directamente en la combinación, o incluso puede permitirse a un índice dividido participar en la combinación, tal como un índice dividido de una etapa no combinado participa en la generación de un índice combinado de tres etapas) con el salto operativo de una etapa, pero en estos casos, se necesita establecer una regla de división y combinación para cada etapa, de modo que el extremo de codificación y el extremo de decodificación se mantengan compatibles.
Esta forma de realización es aplicable a la codificación conjunta para pistas excesivas, tales como 16 o 32 o incluso más pistas, en un caso de múltiples pistas, aun cuando cada pista solamente extraiga varios de bits de índices divididos para combinarse, el índice combinado se hace también excesivamente largo y, en este caso, se adopta la manera de procedimiento en cascada de capas anterior, a través del procedimiento de división y combinación de múltiples capas, lo que puede asegurar que los espacios inactivos estén completamente combinados y el índice combinado no se haga excesivamente largo.
Forma de realización 6 : Un método de decodificación de pulsos conjunto de pistas. El método de decodificación dado a conocer en esta forma de realización decodifica el código conjunto obtenido en conformidad con el método de codificación de la forma de realización 1 a la forma de realización 4 y un procedimiento de decodificación es un procedimiento inverso para un procedimiento de codificación, según se ilustra en la Figura 7, que incluye las etapas siguientes.
F1: Adquirir un código conjunto y adquirir, a partir del código conjunto, un índice combinado y un índice dividido no combinado que corresponde a una pista.
El proceso de extraer cada índice a partir del código conjunto puede realizarse en conformidad con el proceso inverso de realizar una operación en cada índice durante la codificación.
A modo de ejemplo, si un extremo de codificación codifica directamente un índice combinado y codificada índice dividido no combinado, respectivamente, cada índice se decodifica de forma directa.
También, a modo de ejemplo, si el extremo de codificación adopta una manera de codificación de longitud variable para el índice combinado, la longitud de codificación del índice combinado se determina y luego se decodifica en correspondencia (con referencia a la solicitud de patente China con número de publicación siendo CN200910150637.8).
Además, a modo de ejemplo, si el extremo de codificación divide el índice combinado, que luego se combina con otros índices divididos no combinados y a continuación se codifica, un código correspondiente a cada pista se extrae a partir del código conjunto y un índice recombinado y un índice dividido no combinado se dividen a partir de un código de cada pista; si existe un código que no incluye ningún índice recombinado, un índice dividido no combinado correspondiente a una pista en correspondencia se obtiene directamente y luego, todos los índices recombinados se dividen en un índice combinado en conformidad con la manera de división del extremo de codificación.
F2: Dividir el índice combinado en índices divididos correspondientes a la pista o dividir el índice combinado en un índice dividido y un índice de codificación que corresponden a la pista.
Esta etapa se realiza inversamente con referencia a la manera en la que el extremo de codificación genera el índice combinado.
A modo de ejemplo, si el extremo de codificación genera un índice combinado en una manera expresada por AI=((((a|XAi-i+ai-i)..... )*A2+a2)xAi+ai)*Ao+ao, durante la decodificación, un valor de ao puede obtenerse calculando AI% Ao, con lo que puede obtenerse entonces un valor de ai calculando Int(AI/Ao) % Ai, y el resto puede deducirse por analogía, hasta que se obtengan todos los valores de ai
F3: Para cada pista que participe en la división del índice de codificación, segmentar, en conformidad con una manera de división de un extremo de codificación, un índice dividido que no participa en la combinación y un índice dividido que participa en la combinación de la pista para generar el índice de codificación de la pista.
Por supuesto, para las pistas que no estén divididas pero que utilicen directamente un índice de codificación para participar en la combinación, la etapa F2 puede obtener el índice de codificación de dichas pistas y se puede omitir esta etapa.
F4: Restablecer una secuencia de pulsos en la pista en conformidad con el índice de codificación de la pista para cada pista.
El extremo de codificación utiliza la manera en la que se combinan los índices divididos, por lo que, de modo similar, un extremo de decodificación puede obtener el beneficio de reducir el requisito de anchura binaria para el procesamiento de valores.
Forma de realización 7: Un método de decodificación de pulsos conjunto de pistas. El método de decodificación dado a conocer en esta forma de realización decodifica el código conjunto obtenido en conformidad con el método de codificación en cascada de capas de la forma de realización 5, y un procedimiento de decodificación es un procedimiento inverso de un procedimiento de codificación, según se ilustra en la Figura 8, que incluye las etapas siguientes:
G i: Adquirir un código conjunto, y la adquisición, a partir del código conjunto, de un índice combinado de M-etapas, un índice dividido de m-etapas no combinado correspondiente a cada índice combinado de (m-i)-etapas y un índice dividido de una etapa no combinado correspondiente a cada pista en donde M es un número entero mayor o igual a 2, y me[2, M].
Haciendo referencia a la etapa Fi de la forma de realización 6, el proceso de extracción de índices se realiza en conformidad con el proceso de inverso de realizar una operación en cada índice durante la codificación de forma similar y por ello no se repite aquí de nuevo.
G2: Comenzando desde m=M, repetir la siguiente operación de generar un índice combinado de (m-i)-etapas hasta m=2; dividir cada índice combinado de m-etapas en un índice dividido de m-etapas correspondiente a cada índice combinado de (m-i)-etapas para generar el índice combinado de m-etapas; y para cada índice combinado de (m-i)-etapas, segmentar en conformidad con una manera de división de un extremo de codificación, un índice dividido de m-etapas que no participa en la combinación y un índice dividido de m-etapas que participa en la combinación del índice combinado de (m-i)-etapas para generar el índice combinado de (m-i)-etapas.
G3: Dividir cada índice combinado de una etapa en un índice dividido de una etapa correspondiente a cada pista en un grupo de pistas para generar el índice combinado de una etapa y para cada pista en cada grupo de pistas, segmentar, en conformidad con la manera de división del extremo de codificación, un índice dividido de una etapa que no participe en la combinación y un índice dividido de una etapa que participa en la combinación de la pista para generar un índice de codificación.
i3
G4: Restablecer una secuencia de pulsos en la pista en conformidad con el índice de codificación para cada pista en cada grupo de pistas.
Forma de realización 8: Un codificador de pulsos conjunto de vectores 10. El codificador dado a conocer en esta forma de realización puede utilizarse para realizar el método de codificación dado a conocer en la forma de realización 1 a la forma de realización 4, según se ilustra en la Figura 9, que incluye:
una unidad de cálculo del índice de codificación 101, configurada para calcular un índice de codificación Indt de cada vector, en donde un sub-índice indica un t-ésimo vector, te[0, T-1] y T es un número entero mayor o igual a 2; una unidad de división de índice de vector 102, configurada para dividir al menos un índice Indt al menos una vez en al menos dos secciones, en donde la división al menos una vez es equivalente a dividir el índice Indt en dos índices divididos Indtü e Indt1 en conformidad con un factor SLFt establecido, siendo SLFt un número entero positivo, el índice Indtü indica un número de serie de un intervalo al que pertenece el índice Indt, el índice Indt1 indica un número de serie del Indt en el intervalo al que pertenece el índice Indt, siendo una longitud del intervalo no superior a SLFt, y se verifica Indt^IndtoxSLFt+Indt1;
una unidad de combinación de índices 103, configurada para combinar un índice dividido de al menos un vector e índices divididos o índices de codificación de otros vectores para generar un índice combinado IndsLF; y una unidad de codificación 104, configurada para realizar una codificación en conformidad con el índice combinado generado por la unidad de combinación de índices 103 y otros índices divididos no combinados divididos por la unidad de división de índices de vectores 102.
Además, la unidad de codificación 104 puede incluir:
una sub-unidad de recombinación 1041, configurada para dividir el índice combinado en T1 índices recombinados Indt0' en conformidad un margen de valores establecido, en donde T1 es menor o igual al número de vectores que genera el índice combinado, un margen de valores de al menos un índice Ind» es mayor que un margen de valores del índice dividido, que participa en la combinación, del vector t correspondiente y un margen de valores de al menos un índice Ind» es menor que el margen de valores del índice dividido, que participa en la combinación, del vector t correspondiente; y
una sub-unidad de codificación 1042, configurada para combinar cada índice recombinado y un índice dividido no combinado de un vector correspondiente, respectivamente, y luego codificarlo, y si existe un vector sin que le sea asignado un índice recombinado, codificar un índice dividido no combinado del vector.
Forma de realización 9: Un codificador de pulsos conjunto de vectores 20. El codificador dado a conocer en esta forma de realización puede utilizarse para realizar el método de codificación dado a conocer en la forma de realización 5, según se ilustra en la Figura 10, que incluye:
una unidad de cálculo de índice de vector 201, configurada para agrupar vectores que participan en la codificación conjunta, en donde cada grupo al menos incluye dos vectores; en cada grupo, calcular un índice de codificación de cada vector, dividir al menos dos índices de codificación; dividir cada índice de codificación al menos una vez en al menos dos secciones, en donde la división al menos una vez es equivalente a dividir un índice de codificación en dos índices divididos de una etapa en conformidad con un factor de una etapa establecido, un índice dividido de una etapa indica números de serie de varios intervalos con una longitud no mayor que un valor establecido, el otro índice dividido de una etapa indica un número de serie del índice de codificación en un intervalo al que pertenece el índice de codificación y combinar índices divididos de una etapa a partir de al menos dos vectores para generar un índice combinado de una etapa;
una unidad de cálculo en cascada 202, configurada para: comenzando desde m=2 , repetir la operación siguiente de generar un índice combinado de m-etapas hasta m=M; dividir al menos dos índices combinados de (m-1)-etapas, en donde me[2, M], siendo M un número entero mayor o igual a 2; dividir cada índice combinado de (m-1)-etapas al menos una vez en al menos dos secciones, en donde la división al menos una vez es equivalente a dividir un índice combinado de (m-1)-etapas en dos índices divididos de m-etapas en conformidad con un factor de m-etapas establecido; y combinar los índices divididos de m-etapas a partir de al menos dos índices combinados de (m-1)-etapas para generar un índice combinado de m-etapas; y
una unidad de codificación 203, configurada para realizar una codificación en conformidad con el índice combinado de M-etapas y otros índices divididos no combinados de una etapa a (M-1)-etapas.
Durante la puesta en práctica, la unidad de cálculo en cascada 202 puede multiplexar una sección en la unidad de cálculo de índice de vectores 201, en donde la sección se utiliza para dividir y combinar un índice de codificación.
Forma de realización 10: Un decodificador de pulsos conjunto de vectores 30. El decodificador dado a conocer en esta forma de realización puede utilizarse para realizar el método de decodificación de la forma de realización 6 , según se ilustra en la Figura 11, que incluye:
una unidad de decodificación 301, configurada para adquirir un código conjunto y para adquirir, a partir del código conjunto, un índice combinado y un índice dividido no combinado correspondiente a un vector;
una unidad de división de índices 302, configurada para dividir el índice combinado adquirido por la unidad de decodificación 301 en índices divididos correspondientes al vector, o dividir el índice combinado en un índice dividido y un índice de codificación que corresponden al vector;
una unidad de restablecimiento de índice de vectores 303, configurada para: para cada vector que participe en la división del índice de codificación, segmentar, en conformidad con una manera de división de un extremo de codificación, un índice dividido que no participa en la combinación y un índice dividido que participa en la combinación del vector para generar el índice de codificación del vector; y
una unidad de restablecimiento de vectores 304, configurada para restablecer el vector en conformidad con el índice de codificación del vector para cada vector.
Además, la unidad de decodificación 301 puede incluir:
una sub-unidad de decodificación 3011, configurada para extraer, a partir del código conjunto, un código correspondiente a cada vector; dividir un índice recombinado y un índice dividido no combinado a partir del código de cada vector; y si existe un código que no incluye ningún índice recombinado, obtener directamente un índice dividido no combinado correspondiente a un vector en correspondencia; y
una sub-unidad de segmentación 3012, configurada para segmentar todos los índices recombinados en un índice combinado en conformidad con la manera de división del extremo de codificación.
Forma de realización 11: Un decodificador de pulsos conjunto de vectores 40. El decodificador dado a conocer en esta forma de realización puede utilizarse para realizar el método de decodificación de la forma de realización 7, según se ilustra en la Figura 12, que incluye:
una unidad de decodificación 401, configurada para adquirir un código conjunto, y para adquirir, a partir del código conjunto, un índice combinado de M-etapas, un índice dividido de m-etapas no combinado correspondiente a cada índice combinado de (m-1)-etapas y un índice dividido de una etapa no combinado correspondiente a cada vector, en donde M es un número entero mayor o igual a 2 y me[2, M];
una unidad de recuperación en cascada 402, configurada para: comenzando desde m=M, repetir la operación siguiente de generar un índice combinado de (m-1)-etapas hasta m=2 ; dividir cada índice combinado de m-etapas en un índice dividido de m-etapas correspondiente a cada índice combinado de (m-1)-etapas para generar el índice combinado de m-etapas, y para cada índice combinado de (m-1)-etapas, segmentar, en conformidad con una manera de división de un extremo de codificación, un índice dividido de m-etapas que no participa en la combinación y un índice dividido de m-etapas que participa en la combinación del índice combinado de (m-1)-etapas para generar el índice combinado de (m-1)-etapas;
una unidad de restablecimiento de índices de vectores 403, configurada para dividir cada índice combinado de una etapa en un índice dividido de una etapa correspondiente a cada vector en un grupo de vectores para generar el índice combinado de una etapa; y para cada vector en cada grupo de vectores, segmentar, en conformidad con la manera de división del extremo de codificación, un índice dividido de una etapa que no participa en la combinación y un índice dividido de una etapa que participa en la combinación del vector para generar un índice de codificación; y una unidad de restablecimiento de vectores 404, configurada para restablecer el vector en conformidad con el índice de codificación para cada vector en cada grupo de vectores.
Durante la puesta en práctica, la unidad de recuperación en cascada 402 puede multiplexar una sección en la unidad de restablecimiento de índices de vectores 403, en donde la sección se utiliza para dividir y segmentar un índice combinado de una etapa.
Con el fin de entender mejor el contenido de la presente invención, se dan a conocer a continuación dos ejemplos específicos.
Ejemplo 1: Se supone que cuatro pistas participan en una codificación conjunta, y cinco pulsos con símbolos se codifican en cada pista (el número de pulsos codificados en cada pista puede variar también). Cada pista divide un índice dividido que participa en la combinación en una manera de interceptar los cuatro bits superiores de un índice de codificación (el número de bits interceptados por cada pista puede variar también). Según se ilustra en la Figura 13, el procedimiento de codificación es como sigue:
® Codificación de los índices Indü, Ind-i, Ind2, e Ind3 de cuatro pistas se calculan respectivamente, y si el número total de posiciones de pistas es 16, el margen de valores de un índice de codificación de cinco pulsos es 0 a 285088 y el número de bits necesarios es 19.
@ Los cuatro bits superiores de cada índice de codificación se interceptan para utilizarse como el índice dividido Indto que participa en la combinación y los 15 bits restantes se utilizan como el índice dividido Indti que no participa en la combinación. Es decir, es equivalente a SLFt=2A15.
@ Los índices Indoo, Ind-io, Ind2o, e Ind3o se combinan para generar el índice combinado IndsLF, y puesto que el número de valores del índice de codificación de cinco pulsos es 285o88, que se divide por SLFt=2A15=32768 para obtener un cociente que sea 8.7oo1953125, el margen de valores de Indto es o a 8, es decir, el número de valores de Indto es 9 (el número de valores de Indto con otro número de pulsos puede deducirse por analogía, por lo que no se repite aquí de nuevo) y por lo tanto,
IndsiF=((Incbox9+ Ind2c)x9+ lndio)x9+ Indoo
Puede conocerse que el margen de valores del índice IndsLF es o a 656o y una longitud de secuencia binaria es 13.
© En este caso, los índices IndsLF, Indo1, Indu, Ind21, e Ind31 pueden codificarse de forma directa, una longitud de codificación total es 13+15+15+15+15 y se economizan tres bits en comparación con una codificación de pista única.
Además, el índice IndsLF puede dividirse y luego combinarse con Indt1 y luego codificarse, es decir, el índice IndsLF se divide con cuatro bits como un grupo (la división del índice combinado en conformidad con la longitud del índice dividido que participa en la combinación puede representar intuitivamente el efecto de economizar bits y por supuesto, la división puede realizarse también en conformidad con otras longitudes; los bits de cada índice recombinado pueden variar y los bits que forman un mismo índice recombinado pueden ser innecesariamente continuos, lo que incluye sobre el efecto de economizar bits), se obtienen los índices Ind3o', Ind2o', IndW, y Indoo' y evidentemente, la longitud del último índice recombinado Ind3o' es solamente 1 bit; y
a continuación, cada índice recombinado se combina con un índice dividido no combinado de una pista correspondiente, es decir, los cuatro bits superiores del índice de codificación de la pista correspondiente se sustituyen con cada índice recombinado para obtener nuevos índices de codificación Ind3', Ind2', Ind-T, y Indo', y evidentemente, la longitud del nuevo índice de codificación Indo' es solamente 16 bits y por lo tanto, se economizan tres bits de manera fija.
Ejemplo 2: se supone que cuatro pistas se dividen en dos grupos (dos pistas forman un grupo y el número de pistas incluidas en cada grupo puede variar también) para participar en una codificación conjunta en cascada de dos etapas y cinco pulsos con símbolos se codifican en cada pista (el número de pulsos codificados en cada pista puede variar también). Cada pista divide un índice dividido que participa en la combinación en una manera de interceptación de los ocho bits superiores de un índice de codificación (el número de bits interceptados en cada pista puede variar también). según se ilustra en la Figura 14, el procedimiento de codificación es como sigue:
® Los índices de codificación Indo, Ind1, Ind2, y Ind3 de dos pistas respectivas en dos grupos se calculan respectivamente, en donde Indo, e Ind1 son índices de codificación de dos pistas del primer grupo, e Ind2, e Ind3 son índices de codificación de dos pistas del segundo grupo. si el número total de posiciones de pistas es 16, el margen de valores del índice de codificación de cinco pulsos es o a 285o88 y el número de bits requeridos 19.
@ Los 8 bits superiores de un índice de codificación en el primer grupo y en el segundo grupo son interceptados para utilizarse como un índice dividido de una etapa Ind1,to que participa en la combinación (el primer sub-índice 1 indica el número de etapas y es el mismo a continuación) y los 11 bits restantes se utilizan como un índice dividido de una etapa Ind1t1 que no participa en la combinación. Es decir, es equivalente al del factor de una etapa sLFt,t=2A11.
@ Los índices Ind1,oo e Ind1,1o se combinan para generar un índice combinado de una etapa Ind1,sLF,o, y los índices Ind 1,2o e Ind1,3o se combinan para generar un índice combinado de una etapa Ind1,sLF,1; el número de valores del índice de codificación de cinco pulsos es 285o88, que se divide por sLFt=2A11=2o48 para obtener un cociente que es 139.2o3125, de modo que el margen de valores del índice Ind1,to sea o a 139, es decir, el número de valores de Ind1,to es 14o, y por lo tanto:
Indi ,slf,o~ Indi jo x 140+Indi.oo
Indi,$LF,i=Indi,3ox 140+Indi,2o
Puede conocerse que el número de valores de los índices combinados de una etapa Indi,sLF,o e Indi,sLF,i es 19600, y una longitud de secuencia binaria es 15 y por lo tanto, cada índice combinado de una etapa economiza un bit y la codificación conjunta de una etapa economiza dos bits.
© La operación de codificación conjunta de dos etapas continúa realizándose sobre la base de los índices Ind1,SLF,0 e Ind 1,slf ,1 (cuando se realiza una codificación conjunta de múltiples etapas, un índice combinado de la etapa anterior puede considerarse como un índice de codificación en una codificación conjunta de una etapa para dividirse similarmente y combinarse y por lo tanto, un sub-índice t es posteriormente utilizado continuamente para indicar un tésimo índice combinado de la etapa anterior); los 8 bits superiores del índice Ind1,SLF,t se interceptan para utilizarse como un índice dividido de dos etapas Ind2,SLF,t0 que participa en la combinación y los 7 bits restantes se utilizan como un índice dividido de dos etapas Ind2,SLF,t1 que no participa en la combinación. Es decir, es equivalente al factor de dos etapas SLF2,t=2A7.
© Los índices Ind2,sLF,00 e Ind2,sLF,10 se combinan para generar un índice combinado de dos etapas Ind2,sLF; puesto que el número de valores del índice Ind1,sLF,t es 19600, que se divide por SLF2,t=2A7=128 para obtener un cociente que es 153.125, el margen del valor del índice Ind2,sLF,t0 es 0 a 153, es decir, el número de valores de Ind2,sLF,t0 es 154, y por lo tanto,
Ind2,sLF—Ind2,sLF,iox154+Ind2,sLF,oo
Puede conocerse que el número de valores del índice combinado de dos etapas Ind2,sLF es 23716 y la longitud de la secuencia binaria es 15, con lo que la codificación conjunta de dos etapas economiza de nuevo un bit.
(© En este caso, los índices Ind2,sLF, Ind2,sLF,01, Ind2,sLF,11, Ind 1,01, Ind1,n, Ind1,21, e Ind 1,31 pueden codificarse directamente, una longitud de codificación total es 15+7+7+11+11 11 11=73, y se economizan tres bits en total en comparación con una codificación de pista única.
Además, el índice Ind2,sLF puede dividirse y luego combinarse con Ind1,sLF,t1 y a continuación, codificarse, es decir, el índice Ind2,sLF se divide con 8 bits como un grupo (la división del índice combinado de m-etapas en conformidad con la longitud del índice dividido de m-etapas que participa en la combinación puede representar intuitivamente el efecto de economizar bits y por supuesto, la división puede realizarse también en conformidad con otras longitudinales; los bits de cada índice recombinado pueden variar y los bits que forman un mismo índice recombinado pueden ser innecesariamente continuos, lo que no influye sobre el efecto de economizar bits), los índices Ind2,sLF,W e Ind2,sLF© se obtienen y evidentemente, la longitud del último índice recombinado Ind2,sLF,00' es solamente de 7 bits; y
entonces, cada índice recombinado se combina con un índice dividido de dos etapas no combinado de un índice combinado de una etapa correspondiente, es decir, los cuatro bits superiores del índice combinado de una etapa correspondiente se sustituyen con cada índice recombinado para obtener nuevos índices combinados de una etapa Ind 1,sLF,1 ' e Ind 1,slf,0', y evidentemente, la longitud del nuevo índice combinado de una etapa Ind1,sLF,0' es solamente de 14 bits.
En este caso, los índices Ind1,sLF,1', Ind1,sLF,0', Ind01, Indu, Ind21, e Ind31 pueden codificarse directamente, siendo la longitud de codificación total de 15+14+11 11 11 11=73, y se economizan tres bits en total en comparación con la codificación de pista única.
Además, los índices Ind1,sLF,1 e Ind1,sLF,0' pueden dividirse y luego combinarse con Ind1,t1 y luego codificarse, es decir,
el índice Ind1,sLF,1 se divide con 8 bits como un grupo para obtener los índices Ind1© e Ind1© , y evidentemente, la longitud del índice recombinado Ind1© es solamente de 7 bits; el índice Ind1,sLF,0' se divide con 8 bits como un grupo para obtener los índices Ind1,W e Ind1© , y evidentemente, la longitud del índice recombinado Ind1© es solamente de 6 bits, y
a continuación, cada índice recombinado se combina con un índice dividido de una etapa no combinado de un índice de codificación correspondiente, es decir, los cuatro bits superiores del índice de codificación del índice de codificación correspondiente se sustituyen con cada índice recombinado para obtener nuevos índices de codificación Ind3', Ind2', IndV, e Ind0', y evidentemente, la longitud del índice Ind2' es solamente de 18 bits, la longitud del índice Ind0' es solamente de 17 bits y por lo tanto, se economizan tres bits de manera fija.
La tabla 2 proporciona un caso en el que durante una codificación conjunta de cuatro pistas, la codificación conjunta de los cuatro bits superiores economizan bits en un caso de diferente número de pulsos (pulso con un símbolo) en una pista y otros casos en el que un índice dividido o conjunto de múltiples pistas intercepta diferentes bits que pueden deducirse por analogía.
Tabla 2
Figure imgf000018_0001
Puede deducirse que se pueden economizar efectivamente bits de codificación utilizando el método de codificación conjunta de la presente invención. Los bits economizados utilizando una codificación conjunta pueden utilizarse para reducir una tasa de código de transmisión y pueden utilizarse también para la cuantización de coeficientes de ISF, la precisión del periodo de intervalos y la ganancia de otros módulos, con el fin de utilizarse para mejorar la calidad de la codificación.
A modo de ejemplo, el número de pulsos en una pista puede aumentarse (se aumenta el número de pulsos de códigos de excitación ACELP) en un caso en una tasa de código invariable, con el fin de mejorar la calidad de codificación. A modo de ejemplo, varios libros de códigos fijos de alta tasa de codificación de ACELP para AMR-WB+, después de utilizar la codificación conjunta de los cuatro bits superiores ilustrada en la tabla 2, puede añadirse con varios pulsos a una tasa de código original y sus detalles son como sigue:
® 3 pulsos se añaden en 18.25 kbps
Figure imgf000018_0002
@ 6 pulsos se añaden a 19.85 kbps
Figure imgf000018_0003
Figure imgf000019_0001
@ 6 pulsos se añaden a 19.85 kbps
Figure imgf000019_0002
© 7 pulsos se añaden a 19.85 kbps
Figure imgf000019_0003
© 8 pulsos se añaden a 23.05 kbps
Figure imgf000019_0004
Los expertos en esta técnica deben entender que la totalidad o una parte de las etapas de los métodos en conformidad con las formas de realización pueden ponerse en práctica mediante un programa informático que proporcione instrucciones a un hardware pertinente. El programa puede memorizarse en un soporte de memorización legible por ordenador y el soporte de memorización puede incluir una memoria de solamente lectura, una memoria de acceso aleatorio, un disco magnético o un disco óptico.
Las descripciones anteriores de las formas de realización son simplemente para entender mejor el método y las ideas básicas de la presente invención, que se definen por las reivindicaciones adjuntas.

Claims (2)

REIVINDICACIONES
1. Un método de codificación de pulsos conjunta de vectores para una señal de voz, que comprende:
el cálculo (B1) de un índice de codificación Indt de cada vector, en donde un sub-índice t designa un t-ésimo vector, te[0, T-1], y T es el número de vectores y es un número entero mayor o igual a 2, y el índice de codificación es un índice utilizado para indicar la distribución de pulsos en la pista, en donde cada vector representa una distribución de pulsos en una pista;
la división (B2) de al menos un índice Indt al menos una vez en al menos dos secciones, en donde la división comprende al menos una vez la división del índice Indt en dos índices divididos Indt0 e Indt1 en conformidad con un factor establecido SLFt, siendo el factor SLFt un número entero positivo, el índice Indt0 indica un número de serie de un intervalo al que pertenece el índice Indt, el índice Indt1 indica un número de serie del índice Indt en el intervalo al que pertenece el índice Indt, no siendo la longitud del intervalo mayor que el factor SLFt, y
Figure imgf000020_0001
en donde la división (B2) del índice Indt en dos índices divididos Indt0 e Indt1 en conformidad con un factor preestablecido SLFt es concretamente:
Indt0=Int(Indt/SLFt), en donde Int() designa un redondeo al número entero inferior, y
Indt1=Indt%SLFt, en donde % designa la utilización de un resto;
la combinación (B3) de un índice dividido de al menos un vector y de índices divididos o de índices de codificación de otros vectores para generar un índice combinado IndSLF; en donde la combinación (B3) de un índice dividido de al menos un vector y de índices divididos o de índices de codificación de otros vectores para generar un índice combinado IndSLF; consiste concretamente en:
para un vector t, que proporciona un índice dividido para participar en la combinación, la selección de un índice dividido capaz de representar características de ocupación de espacio del índice Indt, para participar en la combinación, en donde ser capaz de representar características de ocupación de espacio del índice Indt se refiere a que, en comparación con otros índices divididos, una tasa de ocupación de un margen de valores de un índice dividido seleccionado para un espacio de codificación es el más próximo a una tasa de ocupación de un margen de valores del índice Indt para el espacio de codificación; y
la realización (B4) de una codificación en conformidad con el índice combinado y otros índices divididos no combinados;
en donde la codificación según el índice combinado y otros índices divididos no combinados comprende la división adicional del índice combinado, la recombinación del índice combinado dividido con otros índices divididos no combinados y la codificación de lo resultante de la recombinación.
2. Un codificador conjunto de pulsos de vectores destinado a codificar una señal de voz, que comprende: una unidad de cálculo de índice de codificación (101), configurada para calcular un índice de codificación Indt de cada vector, en donde un subíndice t indica un t-ésimo vector, te[0, T-1], y T es un número entero mayor o igual a 2, y el índice de codificación es un índice utilizado para indicar la distribución de pulsos en la pista, en donde cada vector representa una distribución de pulsos en una pista;
una unidad de división de índice de vector (102), configurada para dividir al menos un índice Indt al menos una vez en al menos dos secciones, en donde la división al menos una vez comprende la división del índice Indt en dos índices divididos Indt0 e Indt1 en conformidad con un factor SLFt establecido, en donde la división del índice Indt en dos índices divididos Indtü e Indt1 en conformidad con un factor SLFt establecido comprende:
Indt0=Int(Indt/SLFt), en donde Int() designa un redondeo al número entero inferior, y
Indt1=Indt%SLFt, en donde % designa la utilización de un resto,
el factor SLFt es un número entero positivo, el índice Indt0 indica un número de serie de un intervalo al que pertenece el índice Indt, el índice Indt1 indica un número de serie del índice Indt en el intervalo al que pertenece el índice Indt, una longitud del intervalo no es superior al factor SLFt, y se verifica IndtáIndt0xSLFt+Indn;
una unidad de combinación de índices (103), configurada para combinar un índice dividido de al menos un vector e índices divididos o índices de codificación de otros vectores para generar un índice combinado IndSLF; en donde la combinación de un índice dividido de al menos un vector y de índices divididos o de índices de codificación de otros vectores para generar un índice combinado IndsLF consiste concretamente en: para un vector t que proporciona un índice dividido para participar en la combinación, la selección de un índice dividido capaz de representar características de ocupación de espacio del índice Indt para participar en la combinación, en donde ser capaz de representar características de ocupación de espacio del índice Indt se refiere al hecho de que, en comparación con otros índices divididos, una tasa de ocupación de un margen de valores de un índice dividido seleccionado para un espacio de codificación es la más próxima de una tasa de ocupación de un margen de valores del índice Indt para el espacio de codificación; y
una unidad de codificación (104), configurada para realizar una codificación en conformidad con el índice combinado y con otros índices divididos no combinados;
en donde la codificación según el índice combinado y otros índices divididos no combinados comprende la división adicional del índice combinado, la recombinación del índice combinado dividido con otros índices divididos no combinados y la codificación del resultado de la recombinación resultante.
ES16160251T 2011-01-26 2011-11-30 Método y codificador para la codificación conjunta de vectores de una señal de voz Active ES2718935T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110028694.6A CN102623012B (zh) 2011-01-26 2011-01-26 矢量联合编解码方法及编解码器

Publications (1)

Publication Number Publication Date
ES2718935T3 true ES2718935T3 (es) 2019-07-05

Family

ID=46562892

Family Applications (2)

Application Number Title Priority Date Filing Date
ES11856688.4T Active ES2588356T3 (es) 2011-01-26 2011-11-30 Método y codificador para la codificación conjunta de vectores de una señal de voz
ES16160251T Active ES2718935T3 (es) 2011-01-26 2011-11-30 Método y codificador para la codificación conjunta de vectores de una señal de voz

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES11856688.4T Active ES2588356T3 (es) 2011-01-26 2011-11-30 Método y codificador para la codificación conjunta de vectores de una señal de voz

Country Status (8)

Country Link
US (5) US8930200B2 (es)
EP (2) EP3174048B1 (es)
JP (4) JP5731675B2 (es)
KR (4) KR102017721B1 (es)
CN (1) CN102623012B (es)
ES (2) ES2588356T3 (es)
PT (1) PT2669890T (es)
WO (1) WO2012100596A1 (es)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102623012B (zh) 2011-01-26 2014-08-20 华为技术有限公司 矢量联合编解码方法及编解码器
EP2668651A4 (en) * 2011-01-28 2014-07-30 Nokia Corp CODING BY COMBINING CODE VECTORS
US9742672B1 (en) * 2014-12-29 2017-08-22 Juniper Networks, Inc. Signaling priority information for encapsulated packets
WO2021062814A1 (zh) * 2019-09-30 2021-04-08 Oppo广东移动通信有限公司 上行控制信息的传输方法及装置
CN113628630B (zh) * 2021-08-12 2023-12-01 科大讯飞股份有限公司 基于编解码网络的信息转换方法和装置、电子设备

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0222982A (ja) * 1988-07-12 1990-01-25 Mitsubishi Electric Corp 静止画像伝送装置
US5012518A (en) * 1989-07-26 1991-04-30 Itt Corporation Low-bit-rate speech coder using LPC data reduction processing
US4975956A (en) * 1989-07-26 1990-12-04 Itt Corporation Low-bit-rate speech coder using LPC data reduction processing
US5701392A (en) * 1990-02-23 1997-12-23 Universite De Sherbrooke Depth-first algebraic-codebook search for fast coding of speech
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
CA2010830C (en) * 1990-02-23 1996-06-25 Jean-Pierre Adoul Dynamic codebook for efficient speech coding based on algebraic codes
FR2729245B1 (fr) * 1995-01-06 1997-04-11 Lamblin Claude Procede de codage de parole a prediction lineaire et excitation par codes algebriques
DE69516522T2 (de) * 1995-11-09 2001-03-08 Nokia Mobile Phones Ltd Verfahren zur Synthetisierung eines Sprachsignalblocks in einem CELP-Kodierer
US6009387A (en) * 1997-03-20 1999-12-28 International Business Machines Corporation System and method of compression/decompressing a speech signal by using split vector quantization and scalar quantization
KR100198476B1 (ko) * 1997-04-23 1999-06-15 윤종용 노이즈에 견고한 스펙트럼 포락선 양자화기 및 양자화 방법
US5808572A (en) * 1997-05-22 1998-09-15 National Science Council Method and apparatus for finite-length arithmetic coding
US6073092A (en) * 1997-06-26 2000-06-06 Telogy Networks, Inc. Method for speech coding based on a code excited linear prediction (CELP) model
US5924062A (en) * 1997-07-01 1999-07-13 Nokia Mobile Phones ACLEP codec with modified autocorrelation matrix storage and search
US6161086A (en) * 1997-07-29 2000-12-12 Texas Instruments Incorporated Low-complexity speech coding with backward and inverse filtered target matching and a tree structured mutitap adaptive codebook search
US6385576B2 (en) * 1997-12-24 2002-05-07 Kabushiki Kaisha Toshiba Speech encoding/decoding method using reduced subframe pulse positions having density related to pitch
US7117146B2 (en) * 1998-08-24 2006-10-03 Mindspeed Technologies, Inc. System for improved use of pitch enhancement with subcodebooks
US6104992A (en) * 1998-08-24 2000-08-15 Conexant Systems, Inc. Adaptive gain reduction to produce fixed codebook target signal
US7272556B1 (en) * 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
JP4008607B2 (ja) * 1999-01-22 2007-11-14 株式会社東芝 音声符号化/復号化方法
JP4173940B2 (ja) * 1999-03-05 2008-10-29 松下電器産業株式会社 音声符号化装置及び音声符号化方法
US6295520B1 (en) * 1999-03-15 2001-09-25 Tritech Microelectronics Ltd. Multi-pulse synthesis simplification in analysis-by-synthesis coders
JP3533339B2 (ja) 1999-04-16 2004-05-31 シャープ株式会社 復号化装置および復号化方法、並びに、プログラム記録媒体
JP4005359B2 (ja) * 1999-09-14 2007-11-07 富士通株式会社 音声符号化及び音声復号化装置
US6728669B1 (en) 2000-08-07 2004-04-27 Lucent Technologies Inc. Relative pulse position in celp vocoding
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
CA2430111C (en) * 2000-11-27 2009-02-24 Nippon Telegraph And Telephone Corporation Speech parameter coding and decoding methods, coder and decoder, and programs, and speech coding and decoding methods, coder and decoder, and programs
JP3916934B2 (ja) 2000-11-27 2007-05-23 日本電信電話株式会社 音響パラメータ符号化、復号化方法、装置及びプログラム、音響信号符号化、復号化方法、装置及びプログラム、音響信号送信装置、音響信号受信装置
CA2388358A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
US7363218B2 (en) * 2002-10-25 2008-04-22 Dilithium Networks Pty. Ltd. Method and apparatus for fast CELP parameter mapping
KR100463419B1 (ko) 2002-11-11 2004-12-23 한국전자통신연구원 적은 복잡도를 가진 고정 코드북 검색방법 및 장치
US7249014B2 (en) * 2003-03-13 2007-07-24 Intel Corporation Apparatus, methods and articles incorporating a fast algebraic codebook search technique
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
US7860710B2 (en) * 2004-09-22 2010-12-28 Texas Instruments Incorporated Methods, devices and systems for improved codebook search for voice codecs
KR100656788B1 (ko) * 2004-11-26 2006-12-12 한국전자통신연구원 비트율 신축성을 갖는 코드벡터 생성 방법 및 그를 이용한 광대역 보코더
US7265691B2 (en) * 2005-06-23 2007-09-04 1Stworks Corporation Modeling for enumerative encoding
US20070150266A1 (en) * 2005-12-22 2007-06-28 Quanta Computer Inc. Search system and method thereof for searching code-vector of speech signal in speech encoder
WO2008035949A1 (en) * 2006-09-22 2008-03-27 Samsung Electronics Co., Ltd. Method, medium, and system encoding and/or decoding audio signals by using bandwidth extension and stereo coding
CN100525262C (zh) * 2006-12-28 2009-08-05 北京航空航天大学 一种信源信道联合编解码器及编解码方法
CN101266796B (zh) * 2007-03-12 2012-05-23 华为技术有限公司 一种量化编解码方法及装置
KR20090130206A (ko) * 2007-04-20 2009-12-18 인터디지탈 테크날러지 코포레이션 Mimo 통신에 대한 효과적인 프리코딩 정보 검증을 위한 방법 및 장치
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 华为技术有限公司 编解码方法及编解码器
CN100583649C (zh) 2007-07-23 2010-01-20 华为技术有限公司 矢量编/解码方法、装置及流媒体播放器
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
CN101281750B (zh) * 2008-05-29 2010-12-22 上海交通大学 基于变长***表的矢量量化高阶码本扩展编码及解码***
WO2010028301A1 (en) * 2008-09-06 2010-03-11 GH Innovation, Inc. Spectrum harmonic/noise sharpness control
US8577673B2 (en) * 2008-09-15 2013-11-05 Huawei Technologies Co., Ltd. CELP post-processing for music signals
CN101577721A (zh) * 2008-12-05 2009-11-11 湖南大学 一种索引拆分布鲁姆过滤器及其***、删除和查询方法
CN101931414B (zh) 2009-06-19 2013-04-24 华为技术有限公司 脉冲编码方法及装置、脉冲解码方法及装置
CN102299760B (zh) 2010-06-24 2014-03-12 华为技术有限公司 脉冲编解码方法及脉冲编解码器
CN102623012B (zh) 2011-01-26 2014-08-20 华为技术有限公司 矢量联合编解码方法及编解码器
ES2716652T3 (es) * 2013-11-13 2019-06-13 Fraunhofer Ges Forschung Codificador para la codificación de una señal de audio, sistema de transmisión de audio y procedimiento para la determinación de valores de corrección

Also Published As

Publication number Publication date
US20160307577A1 (en) 2016-10-20
EP2669890A4 (en) 2013-12-04
JP5731675B2 (ja) 2015-06-10
JP2017112626A (ja) 2017-06-22
US20130317810A1 (en) 2013-11-28
KR20150135541A (ko) 2015-12-02
PT2669890T (pt) 2016-09-09
KR20170141829A (ko) 2017-12-26
US20150127328A1 (en) 2015-05-07
KR101735698B1 (ko) 2017-05-15
JP6143115B2 (ja) 2017-06-07
JP2014505434A (ja) 2014-02-27
KR102017721B1 (ko) 2019-09-03
US9704498B2 (en) 2017-07-11
US20180137870A1 (en) 2018-05-17
US9881626B2 (en) 2018-01-30
WO2012100596A1 (zh) 2012-08-02
KR101571459B1 (ko) 2015-11-24
US8930200B2 (en) 2015-01-06
JP2018182747A (ja) 2018-11-15
US20170221493A1 (en) 2017-08-03
ES2588356T3 (es) 2016-11-02
EP2669890A1 (en) 2013-12-04
US9404826B2 (en) 2016-08-02
JP6363741B2 (ja) 2018-07-25
KR20130116929A (ko) 2013-10-24
JP6657322B2 (ja) 2020-03-04
JP2015130703A (ja) 2015-07-16
CN102623012B (zh) 2014-08-20
KR101926006B1 (ko) 2018-12-06
EP3174048A1 (en) 2017-05-31
EP2669890B1 (en) 2016-06-08
US10089995B2 (en) 2018-10-02
KR20170053749A (ko) 2017-05-16
EP3174048B1 (en) 2019-01-09
CN102623012A (zh) 2012-08-01

Similar Documents

Publication Publication Date Title
ES2718935T3 (es) Método y codificador para la codificación conjunta de vectores de una señal de voz
ES2529292T3 (es) Método de codificación y de decodificación
US9858938B2 (en) Pulse encoding and decoding method and pulse codec
ES2639646T3 (es) Codificación y decodificación de posiciones de impulso de pistas de una señal de audio