ES2573113T3 - Dispositivos, procedimientos y producto de programa de ordenador para codificar y descodificar adaptativamente una señal con marcas de agua - Google Patents

Dispositivos, procedimientos y producto de programa de ordenador para codificar y descodificar adaptativamente una señal con marcas de agua Download PDF

Info

Publication number
ES2573113T3
ES2573113T3 ES11809056.2T ES11809056T ES2573113T3 ES 2573113 T3 ES2573113 T3 ES 2573113T3 ES 11809056 T ES11809056 T ES 11809056T ES 2573113 T3 ES2573113 T3 ES 2573113T3
Authority
ES
Spain
Prior art keywords
signal
watermarks
electronic device
tracks
circuits
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
ES11809056.2T
Other languages
English (en)
Inventor
Stephane Pierre Villette
Daniel J. Sinder
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2573113T3 publication Critical patent/ES2573113T3/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
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • 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/018Audio watermarking, i.e. embedding inaudible data in the audio signal
    • 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/0212Speech 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 using orthogonal transformation
    • 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/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • 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/09Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
    • 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/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Un dispositivo electrónico para descodificar un flujo de bits con marcas de agua, adaptativamente codificado, codificado usando un códec de predicción lineal excitada por código algebraico, ACELP, comprendiendo el dispositivo electrónico: circuitos de determinación de partes, que determinan una parte de baja prioridad de un flujo de bits con marcas de agua mediante la determinación de una o más pistas de libro de códigos de baja prioridad, en base a la determinación de una o más pistas de libro de códigos de alta prioridad, en donde la determinación de dichas una o más pistas de libro de códigos de alta prioridad se basa en el flujo de bits con marcas de agua; circuitos modeladores acoplados con los circuitos de determinación de partes, en donde los circuitos modeladores extraen datos de marcas de agua desde la parte de baja prioridad del flujo de bits con marcas de agua, y obtienen una primera señal en base a los datos de marcas de agua; y circuitos descodificadores que descodifican el flujo de bits con marcas de agua para obtener una segunda señal.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Dispositivos, procedimientos y producto de programa de ordenador para codificar y descodificar adaptativamente una senal con marcas de agua
SOLICITUDES RELACIONADAS
Esta solicitud esta relacionada con, y reivindica prioridad sobre, la Solicitud Provisional de Patente Estadounidense con N° de Serie 61 / 440.313, presentada el 7 de febrero de 2011, de “MARCAS DE AGUA ADAPTATIVAS”.
CAMPO TECNICO
La presente divulgacion se refiere, en general, a dispositivos electronicos. Mas especfficamente, la presente divulgacion se refiere a dispositivos para codificar y descodificar adaptativamente una senal con marcas de agua.
ANTECEDENTES
En las ultimas decadas, el uso de dispositivos electronicos se ha hecho algo comun. En particular, los avances en la tecnologfa electronica han reducido el coste de dispositivos electronicos crecientemente complejos y utiles. La reduccion de costes y la demanda de los consumidores han hecho proliferar el uso de dispositivos electronicos, por lo que son practicamente ubicuos en la sociedad moderna. Segun se ha expandido el uso de dispositivos electronicos, tambien lo ha hecho la demanda de caracterfsticas nuevas y mejoradas de los dispositivos electronicos. Mas especfficamente, son buscados con frecuencia dispositivos electronicos que realicen funciones mas rapidamente, mas eficazmente o con mayor calidad.
Algunos dispositivos electronicos (p. ej., los telefonos celulares, los telefonos inteligentes, los ordenadores, etc.) usan senales de audio o de habla. Estos dispositivos electronicos pueden codificar senales del habla para su almacenamiento o transmision. Por ejemplo, un telefono celular captura la voz o el habla de un usuario usando un microfono. Por ejemplo, el telefono celular convierte una senal acustica en una senal electronica, usando el microfono. Esta senal electronica puede luego ser formateada para su transmision a otro dispositivo (p. ej., un telefono celular, un telefono inteligente, un ordenador, etc.), o para su almacenamiento.
A menudo se busca la calidad mejorada o la capacidad adicional en una senal comunicada. Por ejemplo, los usuarios de telefonos celulares pueden desear una mayor calidad en una senal de habla comunicada. Sin embargo, la calidad mejorada o la capacidad adicional pueden requerir a menudo recursos mayores de ancho de banda y / o una nueva infraestructura de red. Como puede observarse a partir de esta exposicion, los sistemas y procedimientos que permiten la comunicacion eficaz de senales pueden ser beneficiosos.
La solicitud de patente EP1503369A1 divulga un dispositivo de incrustacion de datos y un dispositivo de extraccion de datos que usa parametros de codec de CELP (LSP, rezago de tono, codigos fijos y de ganancia). Una valoracion de incrustacion determina si los datos deberfan ser incrustados o no en un codigo parametrico predeterminado usando parametros de control. En particular, si se valora que una trama no es de habla, entonces los datos son incrustados.
La publicacion de B. Geiser y P. Vary “Ocultacion de datos de alta velocidad en codecs de habla de ACELP”, Anales de IEEE ICASSP 2008, revela la incrustacion de datos usando la segunda posicion definida en cada pista de libro de codigos de un libro de codigos algebraico.
RESUMEN
La invencion esta definida por los dispositivos electronicos de acuerdo a las reivindicaciones 1, 6, los procedimientos, de acuerdo a las reivindicaciones 12, 13, y un producto de programa de ordenador, de acuerdo a la reivindicacion 15.
BREVE DESCRIPCION DE LOS DIBUJOS
La Figura 1 es un diagrama de bloques que ilustra una configuracion de dispositivos electronicos, en la cual pueden ser implementados sistemas y procedimientos para codificar y descodificar adaptativamente una senal con marcas de agua;
la Figura 2 es un diagrama de flujo que ilustra una configuracion de un procedimiento para codificar adaptativamente una senal con marcas de agua;
la Figura 3 es un diagrama de flujo que ilustra una configuracion de un procedimiento para descodificar una senal con marcas de agua, adaptativamente codificada;
la Figura 4 es un diagrama de bloques que ilustra una configuracion de dispositivos de comunicacion inalambrica, en la cual pueden ser implementados sistemas y procedimientos para codificar y descodificar adaptativamente una senal con marcas de agua;
5
10
15
20
25
30
35
40
45
50
55
60
65
la Figura 5 es un diagrama de bloques que ilustra un ejemplo de un codificador de marcas de agua de acuerdo a los sistemas y procedimientos divulgados en la presente memoria;
la Figura 6 es un diagrama de bloques que ilustra un ejemplo de un descodificador de marcas de agua de acuerdo a los sistemas y procedimientos divulgados en la presente memoria;
la Figura 7 es un diagrama de bloques que ilustra ejemplos de un codificador y un descodificador que pueden ser implementados de acuerdo a los sistemas y procedimientos divulgados en la presente memoria; la Figura 8 es un diagrama de bloques que ilustra una configuracion de un dispositivo de comunicacion inalambrica, en el cual pueden ser implementados sistemas y procedimientos para codificar y descodificar adaptativamente una senal con marcas de agua;
la Figura 9 ilustra diversos componentes que pueden ser utilizados en un dispositivo electronico; y
la Figura 10 ilustra ciertos componentes que pueden ser incluidos dentro de un dispositivo de comunicacion
inalambrica.
DESCRIPCION DETALLADA
Los sistemas y procedimientos divulgados en la presente memoria pueden ser aplicados a una amplia variedad de dispositivos electronicos. Los ejemplos de dispositivos electronicos incluyen los grabadores de voz, las camaras de video, los reproductores de audio (p. ej., los reproductores del Grupo-1 de Expertos en Pelfculas (MPEG-1) o de la Capa 3 de Audio de MPEG-2 (Mp3)), los reproductores de video, los grabadores de audio, los ordenadores de sobremesa, los ordenadores portatiles, los asistentes digitales personales (PDA), los sistemas de juegos, etc. Una clase de dispositivo electronico es un dispositivo de comunicacion, que puede comunicarse con otro dispositivo. Los ejemplos de dispositivos de comunicacion incluyen los telefonos, los ordenadores portatiles, los ordenadores de sobremesa, los telefonos celulares, los telefonos inteligentes, los modems inalambricos o cableados, los libros electronicos, los dispositivos de tableta, los sistemas de juegos, las estaciones base o nodos telefonicos celulares, los puntos de acceso, las pasarelas inalambricas y los encaminadores inalambricos.
Un dispositivo electronico o dispositivo de comunicacion puede funcionar de acuerdo a ciertas normas industriales, tales como las normas de la Union Internacional de Telecomunicacion (ITU) y / o las normas del Instituto de Ingenieros Electricos y Electronicos (IEEE) (p. ej., las normas de Fidelidad Inalambrica o “Wi-Fi”, tales como 802.11a, 802.11b, 802.11g, 802.11n y / o 802.11ac). Otros ejemplos de normas que un dispositivo de comunicacion puede cumplir incluyen la IEEE 802.16 (p. ej., la Interoperabilidad Mundial para el Acceso por Micro-ondas, o “WiMAX”), el Proyecto de Colaboracion de Tercera Generacion (3GPP), la Evolucion a Largo Plazo (LTE) del 3GPP, el Sistema Global para Telecomunicaciones Moviles (GSM) y otras (donde un dispositivo de comunicacion puede ser mencionado como un Equipo de Usuario (UE), un Nodo B, un Nodo B evolucionado (eNB), un dispositivo movil, una estacion movil, una estacion de abonado, una estacion remota, un terminal de acceso, un terminal movil, un terminal, un terminal de usuario, una unidad de abonado, etc., por ejemplo). Si bien algunos de los sistemas y procedimientos divulgados en la presente memoria pueden ser descritos en terminos de una o mas normas, esto no deberfa limitar el ambito de la divulgacion, ya que los sistemas y procedimientos pueden ser aplicables a muchos sistemas y / o normas.
Deberfa observarse que algunos dispositivos de comunicacion pueden comunicarse inalambricamente y / o pueden comunicarse usando una conexion o enlace cableado. Por ejemplo, algunos dispositivos de comunicacion pueden comunicarse con otros dispositivos usando un protocolo de Ethernet. Los sistemas y procedimientos divulgados en la presente memoria pueden ser aplicados a dispositivos de comunicaciones que se comunican inalambricamente y / o que se comunican usando una conexion o enlace cableado. En una configuracion, los sistemas y procedimientos divulgados en la presente memoria pueden ser aplicados a un dispositivo de comunicacion que se comunica con otro dispositivo usando un satelite.
Segun se usa en la presente memoria, el termino “acoplar” puede indicar una conexion directa o una conexion indirecta. Por ejemplo, si un primer componente esta acoplado con un segundo componente, el primer componente puede estar directamente acoplado con el segundo componente, o puede estar indirectamente acoplado con el segundo componente (a traves de un tercer componente, por ejemplo).
Los sistemas y procedimientos divulgados en la presente memoria describen las marcas de agua adaptativas. Por ejemplo, los sistemas y procedimientos divulgados en la presente memoria pueden ser usados para las marcas de agua adaptativas para codecs de prediccion lineal excitada de codigo algebraico (ACELP).
Las marcas de agua, o la ocultacion de datos, en flujos de bits de codecs del habla, permiten la transmision de datos extra en banda, sin ningun cambio en la infraestructura de red. Esto puede ser usado para una cierta gama de aplicaciones (p. ej., autenticacion, ocultacion de datos, etc.) sin incurrir en los altos costes de despliegue de nueva infraestructura para un nuevo codec. Una posible aplicacion de los sistemas y procedimientos divulgados en la presente memoria es la extension del ancho de banda, en la cual el flujo de bits de un codec (p. ej., un codec desplegado) se usa como una portadora para bits ocultos que contienen informacion para la extension del ancho de banda de alta calidad. La descodificacion del flujo de bits portador y los bits ocultos permite la sfntesis de un ancho de banda que es mayor que el ancho de banda del codec portador (p. ej., un ancho de banda mas amplio puede lograrse sin alterar la infraestructura de red).
5
10
15
20
25
30
35
40
45
50
55
60
65
Por ejemplo, un codec estandar de banda estrecha puede ser usado para codificar una parte de banda baja, de entre 0 y 4 kilohercios (kHz), del habla, mientras que una parte de banda alta, de entre 4 y 7 kHz, se codifica por separado. Los bits para una banda alta pueden estar ocultos dentro del flujo de bits de habla de banda estrecha. En este caso, la banda ancha puede ser descodificada en el receptor a pesar de usar el flujo heredado de bits de banda estrecha. En otro ejemplo, un codec estandar de banda ancha puede ser usado para codificar una parte de banda baja de entre 0 y 7 kHz del habla, mientras que una parte de banda alta de entre 7 y 14 kHz es codificada por separado y oculta en el flujo de bits de banda ancha. En este caso, la banda super-ancha puede ser descodificada en el receptor a pesar de usar el flujo heredado de bits de banda ancha.
Las tecnicas de marcas de agua actualmente conocidas pueden ocultar bits en un libro de codigos fijo (FCB) de un codificador de prediccion lineal excitada de codigo algebraico (ACELP) (p. ej., la banda estrecha adaptativa de multiples velocidades, o AMR-NB), ocultando un numero fijo de bits por pista de FCB. Los bits se ocultan restringiendo el numero de combinaciones de pulsos admitidas. En el caso de AMR-NB, donde hay dos pulsos por pista, un enfoque incluye restringir las posiciones de pulsos de modo que una operacion de O exclusivo (XOR) de las dos posiciones de pulsos en una pista dada sea igual a la marca de agua a transmitir. Uno o dos bits por pista pueden ser transmitidos de esta manera.
En la practica, esto puede anadir una distorsion significativa, ya que puede alterar significativamente los principales pulsos de tono. Esto puede ser especialmente perjudicial para aplicaciones de extensiones del ancho de banda, donde la excitacion de banda baja se usa para generar la excitacion de banda alta, ya que la degradacion de banda baja tambien puede provocar la degradacion en la banda alta.
Este es el caso al usar modelos de banda alta que extienden el residuo de banda baja, tal como el modelo de banda alta de extension no lineal de codec mejorado de banda ancha de velocidad variable (EVRC-WB), por encima de un codec portador tal como AMR-NB o la banda ancha adaptativa de multiples velocidades (AMR-WB).
En los sistemas y procedimientos divulgados en la presente memoria, la marca de agua se hace adaptativa. En lugar de incrustar un numero fijo de bits por pista de pulsos (p. ej., uno o dos), puede intentarse determinar cuales pistas son perceptivamente mas importantes. Esto puede hacerse, por ejemplo, usando informacion ya presente tanto en un codificador como en un descodificador, de modo que la informacion que indica cuales pistas son perceptivamente las mas importantes no necesariamente debe ser transmitida adicionalmente, o por separado. En una configuracion, una contribucion de la prediccion a largo plazo (LTP) puede ser usada para proteger las pistas mas importantes ante la marca de agua. Por ejemplo, la contribucion de LTP exhibe normalmente maximos claros en el principal pulso de tono, y puede estar disponible ya tanto en el codificador como en el descodificador.
En algunas configuraciones de los sistemas y procedimientos divulgados en la presente memoria, puede usarse la AMR-NB 12.2. Otras velocidades de la AMR-Nb pueden tener una configuracion similar, o disfmil. En la AMR-NB 12.2, hay cinco pistas de ocho posiciones por sub-trama de 40 muestras. En un ejemplo, dos pistas correspondientes a los mas altos valores absolutos de la contribucion de LTP pueden ser consideradas importantes (o designadas como pistas de “alta prioridad”) y no reciben marcas de agua. Es probable que las otras tres pistas sean menos importantes (y pueden ser designadas o mencionadas como pistas de “baja prioridad”, por ejemplo), y pueden recibir una marca de agua. Por tanto, si las tres pistas restantes reciben marcas de agua con dos bits cada una, esto lleva a seis bits de marca de agua por sub-trama de cinco milisegundos (ms), para un total de 1,2 kilobits por segundo (kbps) llevados en la marca de agua con impacto reducido (p. ej., mfnimo) para el principal pulso de tono.
Un refinamiento proporcionado por los sistemas y procedimientos divulgados en la presente memoria puede incluir reemplazar la contribucion de LTP por una contribucion de LTP limitada en memoria, porque la senal de LTP es sensible a errores y perdidas de paquetes, y los errores pueden propagarse indefinidamente. Esto puede llevar a que el codificador y el descodificador esten fuera de sincronfa durante largos periodos despues de un borrado o de errores de bits. En cambio, una version limitada en memoria de la LTP puede ser estructurada solamente en base a los valores cuantizados de tono y las contribuciones de libro de codigos de las ultimas N tramas, mas la trama actual. Las ganancias pueden ser fijadas en la unidad. Por ejemplo, con N = 2, se observo que las prestaciones son equivalentes a las obtenidas con la contribucion de LTP original, mientras que las prestaciones en caso de errores fueron sumamente mejoradas. Deberfa observarse que la LTP original puede ser usada para la codificacion de banda baja. En algunas configuraciones, la LTP limitada en memoria puede ser usada unicamente para determinar la prioridad de las pistas con fines de colocacion de marcas de agua.
La adaptacion de la marca de agua a las caracterfsticas del habla puede permitir una mejor calidad del habla, ocultando la marca de agua cuando sea perceptivamente menos importante. En particular, la preservacion del pulso de tono puede tener un impacto positivo sobre la calidad del habla. Otras tecnicas documentadas de colocacion de marcas de agua para la ACELP no abordan esta cuestion. Cuando no se usan los sistemas y procedimientos descritos en la presente memoria, por ejemplo, el impacto sobre la calidad de una marca de agua a la misma velocidad de bits puede ser mas severo.
5
10
15
20
25
30
35
40
45
50
55
En algunas configuraciones, los sistemas y procedimientos divulgados en la presente memoria pueden ser usados para proporcionar un codec que sea una version interoperable inversa de la AMR 12.2 (donde 12.2 puede referirse a una velocidad de bits de 12,2 kilobits por segundo (kbps)). Para mayor comodidad, este codec puede ser mencionado como “eAMR” en la presente memoria, aunque el codec podna ser mencionado usando un termino distinto. eAMR puede tener capacidad de transportar una capa “delgada” de informacion de banda ancha oculta dentro de un flujo de bits de banda estrecha. Esto puede proporcionar autentica codificacion de banda ancha y no extension ciega del ancho de banda. eAMR puede hacer uso de la tecnologfa de las marcas de agua (p. ej., la esteganograffa) y puede no requerir ninguna senalizacion fuera de banda. La marca de agua usada puede tener un impacto despreciable sobre la calidad de la banda estrecha (para la inter-operacion heredada). Con la marca de agua, la calidad de la banda estrecha puede estar levemente degradada en comparacion con la AMR 12.2, por ejemplo. En algunas configuraciones, un codificador puede detectar una herencia remota (por no detectar una marca de agua en el canal de retorno, por ejemplo) y dejar de anadir marcas de agua, volviendo al funcionamiento de la AMR 12.2 heredada.
Una comparacion entre eAMR y la Banda Ancha Adaptativa de Multiples Velocidades (AMR-WB) se da a continuacion. eAMR puede proporcionar verdadera calidad de banda ancha, y no extension ciega del ancho de banda. eAMR puede usar una velocidad de bits de 12,2 kilobits por segundo (kbps). En algunas configuraciones, eAMR puede requerir nuevos equipos de mano (con acustica de banda ancha, por ejemplo). eAMR puede ser transparente para la infraestructura existente de la Red de Acceso por Radio del GSM (GRAN) y / o la Red Universal de Acceso Terrestre por Radio (UTRAN) (no teniendo por tanto ningun impacto de coste de red, por ejemplo). eAMR puede ser desplegada en redes tanto de 2G como de 3G, sin ninguna actualizacion de software en la red central. eAMR puede requerir el funcionamiento libre de tandem, o libre de transcodificador (TFO / TrFO), de una red para mayor calidad de banda ancha. eAMR puede adaptarse automaticamente a cambios en el TFO / TrFO. Deberfa observarse que, en algunos casos, algunas redes de TrFO pueden manipular bits de ganancia de libros de codigos fijos (FCB). Sin embargo, esto puede afectar o no al funcionamiento de eAMR.
eAMR puede ser comparada con AMR-WB de la siguiente manera. AMR-WB puede ofrecer verdadera calidad de banda ancha. AMR-WB puede usar una velocidad de bits de 12,65 kbps. AMR-WB puede requerir nuevos equipos de mano (con acustica de banda ancha, por ejemplo) y modificaciones de infraestructura. AMR-WB puede requerir una nueva Portadora de Acceso por Radio (RAB) y los costes asociados de despliegue. La implementacion de AMR- WB puede ser una cuestion significativa en la red de 2G heredada y puede requerir la restructuracion global del centro de conmutacion movil (MSC). AMR-WB puede requerir el TFO / TrFO para mayor calidad de banda ancha. Deberfa observarse que los cambios en el TFO / TrFO pueden ser potencialmente problematicos para AMR-WB.
Se da a continuacion mas detalle sobre un ejemplo de un libro de codigos fijo de ACELP de AMR 12.2. La excitacion del libro de codigos se compone de pulsos y permite calculos eficaces. En la Velocidad Maxima Mejorada (EFR), cada trama de 20 milisegundos (ms) (de 160 muestras, por ejemplo) se divide en 4 tramas de 5 ms de 40 muestras. Cada sub-trama de 40 muestras se divide en cinco pistas entrelazadas con ocho posiciones por pista. Pueden usarse dos pulsos y un bit de signo por pista, donde el orden de los pulsos determina el segundo signo. Puede permitirse el apilamiento. (2*3+1)*5 = 35 bits pueden ser usados por sub-trama. Un ejemplo de pistas, pulsos, amplitudes y posiciones que pueden ser usados de acuerdo al libro de codigos fijo de ACELp se da en la Tabla (1).
Tabla (1)
Pista
Pulsos Amplitudes Posiciones
1
0, 5 + 1 + 1 0, 5, 10 15, o' CM 25, 30, 35
2
1, 6 + 1 + 1 1, 6, 11, 16, 21, CD CM 31, 36
3
2, 7 + 1 + 1 2, 7, 12 17, 22, 27, 32, 37
4
3, 8 + 1 + 1 3, 8, 14 18, 23, 28, 33, 00 CO
5
4, 9 + 1 + 1 4, 9, 15 19, CM 29, 34, 39
Se da un ejemplo de colocacion de marcas de agua segun lo siguiente. Una marca de agua puede anadirse a un libro de codigos fijo (FCB) limitando las combinaciones de pulsos permitidas. La colocacion de marcas de agua en un FCB de AMR 12.2 puede ser lograda en una configuracion segun lo siguiente. En cada pista, (pos0Apos1) & 001 = 1 bit con marca de agua, donde el operador “A” se refiere a una operacion logica o exclusivo (XOR), “&” se refiere a una operacion logica Y, y pos0 y pos1 se refieren a indices. Basicamente, el XOR del ultimo bit de los dos indices pos0 y pos1 puede ser restringido a que sea igual al bit escogido de informacion a transmitir (p. ej., la marca de agua). Esto llega a un bit por pista (p. ej., cinco bits por sub-trama), lo que proporciona 20 bits / trama = 1 kbps. Alternativamente, (pos0Apos1) & 011 = 2 bits con marca de agua, dando como resultado 2 kbps. Por ejemplo, el XOR de los dos bits menos significativos (LSB) de los indices puede ser restringido para que sea los dos bits de informacion a transmitir. Las marcas de agua pueden ser anadidas limitando las busquedas en la busqueda de FCB de AMR. Por ejemplo, puede realizarse una busqueda sobre las posiciones de pulsos que seran descodificadas como la marca de agua correcta. Este enfoque puede proporcionar una baja complejidad. En este enfoque, sin embargo, el pulso de tono principal puede ser afectado significativamente (p. ej., las marcas de agua pueden impedir el apilamiento de pulsos).
5
10
15
20
25
30
35
40
45
50
55
De acuerdo a los sistemas y procedimientos divulgados en la presente memoria, las pistas con el maximo impacto pueden ser identificadas, y no dotadas de marcas de agua. En un enfoque, una contribucion de prediccion a largo plazo (LTP) puede ser usada para identificar dos pistas importantes (p. ej., de “alta prioridad”) y tres pistas menos importantes (p. ej., de “baja prioridad”). El uso de este enfoque puede permitir 2*0 bits + 3*2 bits = 6 bits / (sub-trama de 5 ms) = 1,2 kbps. Sin embargo, este enfoque puede requerir una contribucion de LTP identica en un codificador y un descodificador. La Tasa de Errores de Bit (BER) o la Tasa de Errores de Trama (FER) y la Transmision Discontinua (DTX) pueden provocar un desajuste sobre multiples tramas. Mas especfficamente, la BER y la FER pueden provocar un desajuste. En teorfa, la DTX no deberfa hacerlo, dado que tanto el codificador como el descodificador deberfan ser conscientes de la DTX al mismo tiempo. Sin embargo, es una peculiaridad de los codecs de AMR-NB, o de velocidad maxima mejorada (EFR), que la DTX puede provocar, muy ocasionalmente, tales desajustes.
En otro enfoque, puede usarse la LTP de memoria limitada. En este enfoque, una contribucion de LTP puede ser recalculada usando solamente las M tramas pasadas de excitacion y rezagos de tono. Esto puede eliminar la propagacion de errores mas alla de M tramas. En una configuracion, M = 2 puede proporcionar buena identificacion de pulsos, y se desempena adecuadamente con la DTX y la FER. Deberfa observarse que una unica perdida de trama puede implicar que se pierdan potencialmente tres tramas para una banda alta, cuando se proporciona una indicacion de trama erronea desde la banda baja a la banda alta. Mas especfficamente, una indicacion de trama erronea (BFI) es un indicador que un descodificador de canal proporciona a un descodificador del habla, indicando cuando no ha logrado descodificar debidamente una trama. El descodificador puede luego ignorar los datos recibidos y realizar la ocultacion de errores. Por ejemplo, una unica perdida de trama puede provocar que M+1 tramas tengan una LTP de memoria limitada incorrecta. Por lo tanto, cada vez que se recibe una BFI para el codec, puede indicarse al descodificador de banda alta que las proximas M+1 tramas de datos son invalidas y no deberfan ser usadas. La ocultacion de errores puede entonces ser realizada en la banda alta (p. ej., parametros adecuados pueden ser determinados a partir de los valores pasados, en lugar de usar los valores descodificados).
Deberfa observarse que, aunque se da una velocidad de bits de 12,2 kbps como ejemplo en la presente memoria, los sistemas y procedimientos divulgados pueden ser aplicados a otras velocidades de eAMR. Por ejemplo, un punto operativo de eAMR es de 12,2 kbps. En una configuracion de los sistemas y procedimientos divulgados en la presente memoria, pueden usarse (p. ej., se puede conmutar a) velocidades inferiores en condiciones malas de canal y / o de red. Por tanto, la conmutacion del ancho de banda (entre banda estrecha y banda ancha, por ejemplo) puede ser un reto. El habla de banda ancha, por ejemplo, puede ser mantenida con velocidades inferiores de eAMR. Cada velocidad puede usar un esquema de marcas de agua. Por ejemplo, el esquema de marcas de agua usado para una velocidad de 10,2 kbps puede ser similar a un esquema usado para la velocidad de 12,2 kbps. Un esquema de LTP de memoria limitada podrfa ser usado para otras velocidades. La Tabla (2) ilustra ejemplos de asignaciones de bits por trama para velocidades diferentes. Mas especfficamente, la Tabla (2) ilustra un numero de bits por trama que pueden ser asignados para comunicar distintos tipos de informacion, tales como las Frecuencias Espectrales de Lfnea (LSF), la forma de ganancia, la trama de ganancia y el Control de Redundancia Cfclica (CRC).
Tabla (2)
Velocidad (kbps)
12,2 10,2 7,95 7,4 6,7 5,9 5,15 4,75
LSF
8 8 8 8 4 4 4 4
Forma de Ganancia
8 8 0 0 0 0 0 0
Trama de Ganancia
4 4 4 4 4 4 4 4
CRC
4 4 4 4 4 4 4 4
Total
24 24 16 16 12 12 12 12
Una configuracion de los sistemas y procedimientos divulgados en la presente memoria puede ser usada para la extension de codificadores del habla de prediccion lineal excitada por codigo (CELP), usando tecnicas de marcas de agua para incrustar datos. La codificacion de banda ancha (p. ej., de entre 0 y 7 kilohercios (kHz)) del habla proporciona calidad superior a la de la codificacion de banda estrecha (p. ej., de entre 0 y 4 kHz) del habla. Sin embargo, la mayorfa de las redes existentes de comunicacion movil dan soporte a la codificacion de banda estrecha solamente (p. ej., la banda estrecha adaptativa de multiples velocidades (AMR-NB)). El despliegue de codificadores de banda ancha (p. ej., de banda ancha adaptativa de multiples velocidades (AMR-WB)) puede requerir cambios significativos y costosos para la infraestructura y el despliegue de servicios.
Ademas, la proxima generacion de servicios puede dar soporte a codificadores de banda ancha (p. ej., de AMR- WB), mientras que los codificadores de banda super ancha (p. ej., de entre 0 y 14 kHz) estan siendo desarrollados y estandarizados. Nuevamente, los operadores pueden afrontar eventualmente los costes de despliegue de otro codec mas para llevar a los clientes a la banda super ancha.
Una configuracion de los sistemas y procedimientos divulgados en la presente memoria puede usar un modelo avanzado que puede codificar ancho de banda adicional muy eficazmente y ocultar esta informacion en un flujo de
5
10
15
20
25
30
35
40
45
50
55
60
65
bits ya con soporte por parte de la infraestructura de red existente. El ocultamiento de informacion puede ser realizado colocando marcas de agua en el flujo de bits. Un ejemplo de esta tecnica coloca marcas de agua en el libro de codigos fijo de un codificador de CELP. Por ejemplo, la banda superior de una entrada de banda ancha (p. ej., de entre 4 y 7 kHz) puede ser codificada y transportada como una marca de agua en el flujo de bits de un codificador de banda estrecha. En otro ejemplo, la banda superior de una entrada de banda super ancha (p. ej., de entre 7 y 14 kHz) puede ser codificada y transportada como una marca de agua en el flujo de bits de un codificador de banda ancha. Otros flujos de bits secundarios, tal vez no relacionados con la extension del ancho de banda, pueden ser asimismo transportados. Esta tecnica permite al codificador producir un flujo de bits compatible con las infraestructuras existentes. Un descodificador heredado puede producir una salida de banda estrecha con una calidad similar al habla codificada estandar (sin la marca de agua, por ejemplo), mientras que un descodificador que es consciente de la marca de agua puede producir habla de banda ancha.
Se describen ahora diversas configuraciones con referencia a las Figuras, donde los nombres iguales de elementos pueden indicar elementos funcionalmente similares. Los sistemas y procedimientos, segun se describen e ilustran generalmente en las Figuras en la presente memoria, podrfan ser dispuestos y disenados en una amplia variedad de configuraciones distintas. Por tanto, la siguiente descripcion mas detallada de varias configuraciones, segun lo representado en las Figuras, no esta concebida para limitar el ambito, segun lo reivindicado, sino que es meramente representativa de los sistemas y procedimientos.
La Figura 1 es un diagrama de bloques que ilustra una configuracion de dispositivos electronicos 102, 134, en la cual pueden ser implementados sistemas y procedimientos para codificar y descodificar adaptativamente una senal con marca de agua. Los ejemplos del dispositivo electronico A 102 y del dispositivo electronico B 134 pueden incluir dispositivos de comunicacion inalambrica (p. ej., telefonos celulares, telefonos inteligentes, asistentes digitales personales (PDA), ordenadores portatiles, libros electronicos, etc.) y otros dispositivos.
El dispositivo electronico A 102 puede incluir un bloque / modulo codificador 110 y / o una interfaz de comunicacion 124. El bloque / modulo codificador 110 puede ser usado para codificar y dotar de marcas de agua a una senal. La interfaz de comunicacion 124 puede transmitir una o mas senales a otro dispositivo (p. ej., el dispositivo electronico B 134).
El dispositivo electronico A 102 puede obtener una o mas senales A 104, tales como senales de audio o habla. Por ejemplo, el dispositivo electronico A 102 puede capturar la senal A 104 usando un microfono, o puede recibir la senal A 104 desde otro dispositivo (p. ej., un auricular de Bluetooth). En algunas configuraciones, la senal A 104 puede ser dividida en distintas senales componentes (p. ej., una senal componente de mayor frecuencia y una senal componente de menor frecuencia, una senal monofonica y una senal estereo, etc.). En otras configuraciones, pueden obtenerse senales no relacionadas A 104. La(s) senal(es) A 104 puede(n) ser proporcionada(s) a los circuitos modeladores 112 y a los circuitos codificadores 118 en un codificador 110. Por ejemplo, una primera senal 106 (p. ej., un componente de senal) puede ser proporcionada a los circuitos modeladores 112, mientras que una segunda senal 108 (p. ej., otro componente de senal) es proporcionada a los circuitos codificadores 118.
Deberfa observarse que uno o mas de los elementos incluidos en el dispositivo electronico A 102 pueden ser implementados en hardware, software o una combinacion de ambos. Por ejemplo, el termino “circuitos”, segun se usa en la presente memoria, puede indicar que un elemento puede ser implementado usando uno o mas componentes de circuitos (p. ej., transistores, resistores, registros, inductores, condensadores, etc.), incluyendo bloques de procesamiento y / o celulas de memoria. Por tanto, uno o mas de los elementos incluidos en el dispositivo electronico A 102 pueden ser implementados como uno o mas circuitos integrados, circuitos integrados especfficos de la aplicacion (ASIC), etc., y / o usando un procesador e instrucciones. Tambien deberfa observarse que el termino “bloque / modulo” puede ser usado para indicar que un elemento puede ser implementado en hardware, software o una combinacion de ambos.
Los circuitos codificadores 118 pueden realizar la codificacion sobre la segunda senal 108. Por ejemplo, los circuitos codificadores 118 pueden realizar la codificacion adaptativa de multiples velocidades (AMR) sobre la segunda senal 108. Por ejemplo, los circuitos codificadores 118 pueden producir un flujo de bits codificado en el que pueden ser incrustados los datos con marcas de agua 116. Los circuitos modeladores 112 pueden determinar los datos de marca de agua 116 (p. ej., parametros, bits, etc.), en base a la primera senal 106 que pueda ser incrustada en la segunda senal 108 (p. ej., la senal “portadora”). Por ejemplo, los circuitos modeladores 112 pueden codificar por separado la primera senal 106 en los datos de marca de agua 116 que pueden ser incrustados en el flujo de bits codificado. En otro ejemplo mas, los circuitos modeladores 112 pueden proporcionar bits procedentes de la primera senal 106 (sin modificacion) como datos de marca de agua 116 a los circuitos codificadores 118. En otro ejemplo, los circuitos modeladores 112 pueden proporcionar parametros (p. ej., bits de banda alta) como datos de marca de agua 116 a los circuitos codificadores 118. La segunda senal codificada 108 con la senal de marca de agua incrustada puede ser mencionada como una segunda senal con marca de agua 122.
Los circuitos codificadores 118 pueden codificar (p. ej., cifrar) la segunda senal 108. En algunas configuraciones, esta codificacion puede producir datos 114, que pueden ser proporcionados a los circuitos modeladores 112. En una configuracion, los circuitos modeladores 112 pueden usar un modelo de EVRC-WB para modelar componentes de
5
10
15
20
25
30
35
40
45
50
55
60
65
mayor frecuencia (a partir de la primera senal 106), que se apoya en componentes de menor frecuencia (a partir de la segunda senal 108) que pueden ser codificados por los circuitos codificadores 118. Por tanto, los datos 114 pueden ser proporcionados a los circuitos modeladores 112 para su uso en la modelizacion de los componentes de mayor frecuencia. Los datos componentes resultantes de marcas de agua de mayor frecuencia 116 pueden luego ser incrustados en la segunda senal 108 por los circuitos codificadores 118, produciendo por ello la segunda senal con marcas de agua 122.
Los circuitos codificadores 118 pueden incluir un bloque / modulo adaptativo de marcas de agua 120. El bloque / modulo adaptativo de marcas de agua 120 puede determinar una parte de baja prioridad de la segunda senal 108 e incrustar los datos de marcas de agua 116 en la parte de baja prioridad de la segunda senal 108. Un ejemplo de los circuitos codificadores 118 es un codificador de prediccion lineal excitada por codigo algebraico (ACElp). En este ejemplo, los circuitos codificadores 118 pueden usar un libro de codigos (p. ej., un libro de codigos fijo (FCB)) a fin de codificar la segunda senal 108. El libro de codigos puede usar un cierto numero de pistas en el proceso de codificacion. Por ejemplo, la codificacion de AMR-NB usa cinco pistas de ocho posiciones para una sub-trama de 40 muestras. El bloque / modulo adaptativo de marcas de agua 120 puede usar la segunda senal 108 para determinar una o mas pistas de alta prioridad. Por ejemplo, las pistas de alta prioridad pueden ser pistas en las cuales esta representado un pulso de tono. En una configuracion, el bloque / modulo adaptativo de marcas de agua 120 puede tomar esta determinacion en base a una contribucion de filtro (o filtro de tono) de prediccion a largo plazo (LTP). Por ejemplo, el bloque / modulo adaptativo de marcas de agua 120 puede examinar la salida del filtro de LTP para determinar la mas grande contribucion de LTP para un numero designado de pistas. Por ejemplo, puede hallarse la mayor energfa en la salida del filtro de LTP, tomando el maximo mas grande para cada pista. En una configuracion, las dos pistas con la mas grande contribucion de LTP pueden ser designadas “pistas de alta prioridad” o pistas importantes. Una o mas pistas restantes pueden ser designadas como “pistas de baja prioridad” o pistas menos importantes.
Este enfoque puede ser usado, pues todas las pistas no pueden tener el mismo impacto sobre la calidad del habla. Por ejemplo, puede ser importante en la codificacion del habla representar debidamente el pulso de tono principal. En consecuencia, si hay un pulso de tono en una sub-trama, los sistemas y procedimientos divulgados en la presente memoria pueden asegurar que este bien representado. Esto se deduce, dado que las marcas de agua pueden poner una restriccion adicional en el sistema, similar a la adicion de ruido. En otras palabras, si se anade ruido a las posiciones (p. ej., pistas) donde esta representado el pulso de tono, la calidad puede ser degradada. Por tanto, los sistemas y procedimientos divulgados en la presente memoria pueden intentar determinar donde estaran las ubicaciones de pulsos de tono, en base a la historia pasada de los parametros de tono. Esto se hace estimando donde estaran las posiciones de tono. Luego, los datos de marcas de agua 116 pueden no ser incrustados en esas pistas correspondientes. Sin embargo, mas datos de marcas de agua 116 pueden ser colocados en otras pistas de “baja prioridad”.
Una vez que las pistas de alta prioridad y de baja prioridad han sido determinadas o estimadas, los circuitos codificadores 118 pueden incrustar los datos de marcas de agua 116, provenientes de los circuitos modeladores 112, en la(s) pista(s) de baja prioridad. Asf, por ejemplo, los circuitos codificadores 118 pueden evitar incrustar datos de marcas de agua en una pista que se usa para representar el tono. La senal resultante (p. ej., la senal “portadora” con los datos de marcas de agua incrustados) puede ser mencionada como una segunda senal con marcas de agua 122 (p. ej., un flujo de bits).
Deberfa observarse que el proceso de colocacion de marcas de agua puede alterar algunos de los bits de una segunda senal codificada 108. Por ejemplo, la segunda senal 108 puede ser mencionada como una senal “portadora” o flujo de bits. En el proceso de colocacion de marcas de agua, algunos de los bits que componen la segunda senal codificada 108 pueden ser alterados a fin de incrustar o insertar los datos de marcas de agua 116
obtenidos de la primera senal 106 en la segunda senal 108, para producir la segunda senal con marcas de agua
122. En algunos casos, esto puede ser un origen de degradacion en la segunda senal codificada 108. Sin embargo, este enfoque puede ser ventajoso, dado que los descodificadores que no estan disenados para extraer la informacion con marcas de agua pueden recuperar aun una version de la segunda senal 108, sin la informacion adicional proporcionada por la primera senal 106. Por tanto, los dispositivos “heredados” y la infraestructura pueden funcionar aun, independientemente de las marcas de agua. Este enfoque permite ademas que se usen otros descodificadores (que estan disenados para extraer la informacion con marcas de agua) para extraer la informacion adicional de marcas de agua proporcionada por la primera senal 106.
La segunda senal con marcas de agua 122 (p. ej., el flujo de bits) puede ser proporcionada a la interfaz de comunicacion 124. Los ejemplos de la interfaz de comunicacion 124 pueden incluir transceptores, tarjetas de red, modems inalambricos, etc. La interfaz de comunicacion 124 puede ser usada para comunicar (p. ej., transmitir) la
segunda senal con marcas de agua 122 a otro dispositivo, tal como el dispositivo electronico B 134 por una red 128.
Por ejemplo, la interfaz de comunicacion 124 puede estar basada en tecnologfa cableada y / o inalambrica. Algunas operaciones realizadas por la interfaz de comunicacion 124 pueden incluir la modulacion, el formateo (p. ej., la paquetizacion, el entrelazado, el cifrado, etc.), el aumento de frecuencia, la amplificacion, etc. Por tanto, el dispositivo electronico A 102 puede transmitir una senal 126 que comprende la segunda senal con marcas de agua 122.
5
10
15
20
25
30
35
40
45
50
55
60
65
La senal 126 (incluyendo la segunda senal con marcas de agua 122) puede ser enviada a uno o mas dispositivos de red 130. Por ejemplo, una red 128 puede incluir dichos uno o mas dispositivos de red 130 y / o medios de transmision para comunicar senales entre dispositivos (p. ej., entre el dispositivo electronico A 102 y el dispositivo electronico B 134). En la configuracion ilustrada en la Figura 1, la red 128 incluye uno o mas dispositivos de red 130. Los ejemplos de dispositivos de red 130 incluyen estaciones base, encaminadores, servidores, puentes, pasarelas, etc.
En algunos casos, uno o mas dispositivos de red 130 pueden transcodificar la senal 126 (que incluye la segunda senal con marcas de agua 122). La transcodificacion puede incluir descodificar la senal transmitida 126 y re- codificarla (en otro formato, por ejemplo). En algunos casos, la transcodificacion de la senal 126 puede destruir la informacion de marca de agua incrustada en la senal 126. En tal caso, el dispositivo electronico B 134 puede recibir una senal que ya no contiene la informacion de marcas de agua. Otros dispositivos de red 130 pueden no usar ninguna transcodificacion. Por ejemplo, si una red 128 usa dispositivos que no transcodifican senales, la red 128 puede proporcionar el funcionamiento libre de tandem, o libre de transcodificador (TFO /TrFO). En este caso, la informacion de marcas de agua incrustada en la segunda senal con marcas de agua 122 puede ser preservada, ya que es enviada a otro dispositivo (p. ej., al dispositivo electronico B 134).
El dispositivo electronico B 134 puede recibir una senal 132 (mediante la red 128), tal como una senal 132 con informacion preservada de marcas de agua, o una senal 132 sin informacion de marcas de agua. Por ejemplo, el dispositivo electronico B 134 puede recibir una senal 132 usando una interfaz de comunicacion 136. Los ejemplos de la interfaz de comunicacion 136 pueden incluir transceptores, tarjetas de red, modems inalambricos, etc. La interfaz de comunicacion 136 puede realizar operaciones tales como la reduccion de frecuencia, la sincronizacion, la anulacion de formato (p. ej., despaquetizacion, descifrado, desintercalacion, etc.) y / o la descodificacion de canal sobre la senal 132, para extraer un flujo de bits recibido 138. El flujo de bits recibido 138 (que puede o no ser un flujo de bits con marcas de agua) puede ser proporcionado a un bloque / modulo descodificador 140. Por ejemplo, el flujo de bits recibido 138 puede ser proporcionado a los circuitos modeladores 142 y a los circuitos descodificadores 150.
El bloque / modulo descodificador 140 puede incluir los circuitos modeladores 142, los circuitos de determinacion de partes 152 y / o los circuitos descodificadores 150. El bloque / modulo descodificador 140 puede incluir optativamente los circuitos combinadores 146. Los circuitos de determinacion de partes 152 pueden determinar informacion de partes 144 que indica una parte (de baja prioridad) del flujo de bits recibido 138, en la cual pueden estar incrustados datos de marcas de agua. Por ejemplo, los circuitos descodificadores 150 pueden proporcionar informacion 148 que los circuitos de determinacion de partes 152 pueden usar para determinar la ubicacion de datos de marcas de agua en el flujo de bits recibido 138. En una configuracion, los circuitos descodificadores 150 proporcionan la informacion 148 proveniente de un filtro de prediccion a largo plazo (LTP) o filtro de tono, que puede permitir a los circuitos de determinacion de partes 152 determinar o estimar una o mas pistas en las cuales pueden estar incrustados datos de marcas de agua. Esta determinacion puede tomarse de manera similar a la determinacion de pistas de baja prioridad realizada por el codificador 110. Por ejemplo, los circuitos de determinacion de partes 152 pueden determinar pistas que tienen la mas grande contribucion de LTP. Un cierto numero de pistas (p. ej., dos) pueden ser determinadas (p. ej., designadas) como las pistas de alta prioridad, mientras que las otras pistas pueden ser determinadas (p. ej., designadas) como las pistas de baja prioridad. En una configuracion, una indicacion de las pistas de baja prioridad puede ser proporcionada a los circuitos modeladores 142 como informacion de partes 144.
La informacion de partes 144 puede ser proporcionada a los circuitos modeladores 142. Si la informacion con marcas de agua se incrusta en el flujo de bits recibido 138, los circuitos modeladores 142 pueden usar la informacion de partes 144 (p. ej., la indicacion de pista de baja prioridad) para extraer, modelar y / o descodificar los datos de marcas de agua procedentes del flujo de bits recibido 138. Por ejemplo, los circuitos modeladores 142 pueden extraer, modelar y / o descodificar datos de marcas de agua provenientes del flujo de bits recibido 138 para producir una primera senal descodificada 154.
Los circuitos descodificadores 150 pueden descodificar el flujo de bits recibido 138. En algunas configuraciones, los circuitos descodificadores 150 pueden usar un descodificador “heredado” (p. ej., un descodificador estandar de banda estrecha) o un procedimiento de descodificacion que descodifica el flujo de bits recibido 138 independientemente de cualquier informacion de marcas de agua que pueda estar incluida en el flujo de bits recibido 138. Los circuitos descodificadores 150 pueden producir una segunda senal descodificada 158. Asf, por ejemplo, si no se incluye ninguna informacion de marcas de agua en el flujo de bits recibido 138, los circuitos descodificadores 150 pueden aun recuperar una version de la segunda senal 108, que es la segunda senal descodificada 158.
En algunas configuraciones, las operaciones realizadas por los circuitos modeladores 142 pueden depender de operaciones realizadas por los circuitos descodificadores 150. Por ejemplo, un modelo (p. ej., de EVRC-WB) usado para una banda de mayor frecuencia puede depender de una senal de banda estrecha descodificada (p. ej., la segunda senal descodificada 158, descodificada usando AMR-NB). En este caso, la segunda senal descodificada 158 puede ser proporcionada a los circuitos modeladores 142.
5
10
15
20
25
30
35
40
45
50
55
60
65
En algunas configuraciones, una segunda senal descodificada 158 puede ser combinada, con una primera senal descodificada 154, por los circuitos combinadores 146, para producir una senal combinada 156. En otras configuraciones, los datos de marcas de agua provenientes del flujo de bits recibido 138, y el flujo de bits recibido 138, pueden ser descodificados por separado para producir la primera senal descodificada 154 y la segunda senal descodificada 158. Por tanto, una o mas senales B 160 pueden incluir una primera senal descodificada 154 y una segunda senal descodificada 158, por separado, y / o pueden incluir una senal combinada 156. Deberfa observarse que la primera senal descodificada 154 puede ser una version descodificada de la primera senal 106 codificada por el dispositivo electronico A 102. Adicionalmente, o alternativamente, la segunda senal descodificada 158 puede ser una version descodificada de la segunda senal 108 codificada por el dispositivo electronico A 102.
Si no esta incrustada ninguna informacion con marcas de agua en la senal recibida 132, los circuitos descodificadores 150 pueden descodificar el flujo de bits recibido 138 (en una modalidad de herencia, por ejemplo) para producir la segunda senal descodificada 158. Esto puede proporcionar una segunda senal descodificada 158, sin la informacion adicional proporcionada por la primera senal 106. Esto puede ocurrir, por ejemplo, si la informacion de marcas de agua (a partir de la primera senal 106, por ejemplo) es destruida en una operacion de transcodificacion en la red 128.
En algunas configuraciones, el dispositivo electronico B 134 puede ser incapaz de descodificar los datos de marcas de agua incrustados en el flujo de bits recibido 138. Por ejemplo, el dispositivo electronico B 134 puede no incluir circuitos modeladores 142 para extraer los datos incrustados de marcas de agua en algunas configuraciones. En tal caso, el dispositivo electronico B 134 puede descodificar sencillamente el flujo de bits recibido 138 para producir la segunda senal descodificada 158.
Deberfa observarse que dichos uno o mas de los elementos incluidos en el dispositivo electronico B 134 pueden ser implementados en hardware (p. ej., circuitos), software o una combinacion de ambos. Por ejemplo, uno o mas de los elementos incluidos en el dispositivo electronico B 134 pueden ser implementados como uno o mas circuitos integrados, circuitos integrados especfficos de la aplicacion (ASIC), etc., y / o usando un procesador e instrucciones.
En algunas configuraciones, un dispositivo electronico (p. ej., el dispositivo electronico A 102, el dispositivo electronico B 134, etc.) puede incluir tanto un codificador como un descodificador para codificar y descodificar adaptativamente una senal con marcas de agua, adaptativamente codificada. Por ejemplo, el dispositivo electronico A 102 puede incluir tanto el codificador 110 como un descodificador similar al descodificador 140 incluido en el dispositivo electronico B 134. En algunas configuraciones, tanto el codificador 110 como un descodificador similar al descodificador 140, incluido en el dispositivo electronico B 134, pueden estar incluidos en un codec. Por tanto, un unico dispositivo electronico puede ser configurado tanto para producir senales con marcas de agua, adaptativamente codificadas, como para descodificar senales con marcas de agua, adaptativamente codificadas.
Deberfa observarse que la segunda senal con marcas de agua 122 puede no ser necesariamente transmitida a otro dispositivo electronico, en algunas configuraciones y / o ejemplos. Por ejemplo, el dispositivo electronico A 102, en cambio, puede almacenar la segunda senal con marcas de agua 122 para un acceso posterior (p. ej., descodificacion, reproduccion, etc.).
La Figura 2 es un diagrama de flujo que ilustra una configuracion de un procedimiento 200 para codificar adaptativamente una senal con marcas de agua. Un dispositivo electronico 102 (p. ej., un dispositivo de comunicacion inalambrica) puede obtener 202 una primera senal 106 y una segunda senal 108. Por ejemplo, el dispositivo electronico 102 puede capturar o recibir una o mas senales 104. En una configuracion, el dispositivo electronico 102 puede dividir optativamente una senal 104 en una primera senal 106 y una segunda senal 108. Esto puede hacerse usando un banco de filtros de analisis, por ejemplo, cuando los componentes de frecuencia alta y baja de una senal del habla han de ser codificados como una senal con marcas de agua. En tal caso, los componentes inferiores (p. ej., la segunda senal 108) pueden ser codificados convencionalmente, y los componentes superiores (p. ej., la primera senal 106) pueden ser incrustados como una marca de agua sobre la senal codificada convencionalmente. En otras configuraciones, el dispositivo electronico 102 puede sencillamente tener una senal individual, o parte de informacion, para ser incrustada dentro de una senal “portadora” (p. ej., la segunda senal 108). Por ejemplo, el dispositivo electronico 102 puede obtener 202 una primera senal 106 y una segunda senal 108, donde la primera senal 106 ha de ser incrustada dentro de la segunda senal 108 como datos de marcas de agua 116.
El dispositivo electronico 102 puede determinar 204 una parte de baja prioridad de la segunda senal 108. Por ejemplo, el dispositivo electronico 102 puede determinar una parte de baja prioridad de la segunda senal 108 que sea perceptivamente menos importante que otra parte de la segunda senal 108. La parte de baja prioridad, o la parte perceptivamente menos importante de la segunda senal 108, puede ser una parte que no se usa para representar informacion de tono, por ejemplo.
En una configuracion, el dispositivo electronico 102 puede determinar una parte de alta prioridad de la segunda senal 108. Esto puede hacerse a fin de determinar 204 la parte de baja prioridad de la segunda senal 108. La parte de alta prioridad de la segunda senal 108 puede ser una parte que se usa para representar informacion de tono.
5
10
15
20
25
30
35
40
45
50
55
60
65
En un enfoque, la parte de alta prioridad de la segunda senal 108 puede estar indicada por una o mas pistas de libro de codigos, que tengan una mayor contribucion de prediccion a largo plazo (LTP) que otras pistas de libro de codigos. El dispositivo electronico 102 puede realizar operaciones de codificacion predictiva lineal (LPC) y de prediccion a largo plazo (LTP) (p. ej., filtrado de tono) sobre la segunda senal 108, para obtener una contribucion de LTP para cada una de las pistas de libro de codigos. El dispositivo electronico 102 puede determinar una o mas pistas que tengan una mayor, o maxima, contribucion de LTP. Por ejemplo, el dispositivo electronico 102 puede designar una o mas (p. ej., dos) pistas entre un cierto numero de pistas (p. ej., cinco) como pistas de alta prioridad que tienen mayores contribuciones de LTP que las restantes pistas (p. ej., tres). Una o mas de las pistas restantes (p. ej., tres pistas) pueden ser designadas como pistas de baja prioridad (p. ej., menos importantes). La mayor contribucion de LTP puede indicar que un pulso de tono esta representado en las pistas de alta prioridad.
En una configuracion, la determinacion 204 de la parte de baja prioridad de la segunda senal 108 puede estar basada en una senal actual y / o una senal pasada (p. ej., la trama actual y / o la trama pasada). Por ejemplo, el dispositivo electronico 102 puede determinar 204 la parte de baja prioridad de la segunda senal 108, en base a una trama actual de la segunda senal 108 y a una o mas tramas pasadas de la segunda senal 108. Por ejemplo, la operacion de LTP puede ser realizada usando una trama actual y una o mas tramas pasadas.
En algunas configuraciones, se puede usar una contribucion de LTP limitada en memoria para determinar dichas una o mas pistas de libro de codigos de alta prioridad. En otras palabras, la contribucion de LTP puede ser reemplazada por una contribucion de LTP limitada en memoria. Una version de memoria limitada de la LTP puede ser estructurada en base solamente a los valores de tono cuantizados y a las contribuciones del libro de codigos de unas ultimas N tramas, mas la trama actual. Las ganancias pueden ser fijadas en la unidad. Por ejemplo, con N = 2, las prestaciones del codificador en caso de errores pueden ser mejoradas en gran medida. La contribucion de LTP limitada en memoria puede ser usada, ya que la senal de LTP efectiva o regular puede ser muy sensible a los errores de canal (porque tiene un tiempo infinito de propagacion de errores). Por tanto, puede usarse una LPC modificada, o limitada en memoria, borrando con ceros la memoria despues de un cierto numero de tramas.
El dispositivo electronico 102 puede determinar 206 datos de marcas de agua 116, en base a la primera senal 106 En un ejemplo, uno o mas bits no modificados de la primera senal 106 pueden ser designados (p. ej., determinados 206) como datos de marca de agua 116. En otro ejemplo, el dispositivo electronico 102 puede codificar o modelar la primera senal 106 a fin de producir los datos de marcas de agua 116 (p. ej., bits). Por ejemplo, la primera senal 106 puede ser codificada para producir datos de marcas de agua 116. En general, los datos de marcas de agua 116 pueden ser informacion o una senal que ha de ser incrustada en una segunda senal 108 (p. ej., la segunda senal codificada 108). En algunas configuraciones, los datos de marcas de agua 116 pueden ser determinados en base a los datos 114 provenientes de los circuitos codificadores 118. Este puede ser el caso, por ejemplo, cuando la primera senal 106 comprende un componente de mayor frecuencia, a modelar en base a un componente codificado de menor frecuencia (p. ej., los datos 114 determinados en base a la segunda senal 108).
El dispositivo electronico 102 puede incrustar 208 los datos de marcas de agua 116 en la parte de baja prioridad de la segunda senal 108, para producir una segunda senal con marcas de agua 122. Por ejemplo, el dispositivo electronico 102 puede incrustar 208 los datos de marcas de agua 116 en una o mas pistas del libro de codigos (usadas para codificar la segunda senal 108), que son pistas del libro de codigos de baja prioridad. Por ejemplo, los bits de marcas de agua pueden ser incrustados restringiendo el numero de combinaciones permitidas de pulsos sobre las pistas de baja prioridad. En el caso de AMR-NB, donde hay dos pulsos por pista, por ejemplo, las posiciones de pulsos pueden ser restringidas de modo que un O exclusivo (XOR) de las dos posiciones de pulsos sobre una pista de baja prioridad sea igual a la marca de agua a transmitir.
En algunas configuraciones, el tamano de la marca de agua tambien puede variar en base a la determinacion de las pistas de alta prioridad y / o de baja prioridad. Por ejemplo, la marca de agua puede ser mayor en las pistas de baja prioridad, segun el numero de pistas de alta prioridad y la capacidad de pista para las marcas de agua. Por ejemplo, si una pista tiene una capacidad de marcas de agua de dos bits y se dispone de tres pistas de baja prioridad, entonces pueden ser distribuidos seis bits de marcas de agua uniformemente entre las pistas de baja prioridad. Sin embargo, si se dispone de cuatro pistas de baja prioridad, entonces puede ser incrustado un mayor numero de bits de marcas de agua en las pistas de la mas baja prioridad, Por ejemplo, dos bits de marcas de agua podrfan ser incrustados en cada una de las dos pistas de baja prioridad de mas baja contribucion de LTP, mientras que un bit podrfa ser incrustado en cada una de las otras dos pistas de baja prioridad. Adicionalmente, o alternativamente, el numero de bits que admiten marcas de agua puede depender del numero de pistas disponibles de baja prioridad y de su capacidad de colocacion de marcas de agua. Pueden ser usados esquemas similares en un descodificador para extraer diversos tamanos de marcas de agua.
El dispositivo electronico 102 puede enviar 210 una senal basada en la segunda senal con marcas de agua 122. Por ejemplo, el dispositivo electronico 102 puede transmitir una senal que comprende la segunda senal con marcas de agua 122 a otro dispositivo 134, mediante una red 128.
5
10
15
20
25
30
35
40
45
50
55
60
65
La Figura 3 es un diagrama de flujo que ilustra una configuracion de un procedimiento 300 para descodificar una senal con marcas de agua, adaptativamente codificada. Un dispositivo electronico 134 puede recibir 302 una senal 132. La senal 132 puede comprender una segunda senal con marcas de agua 122, por ejemplo. En algunas configuraciones, un dispositivo electronico 134 puede recibir 302 una senal electromagnetica usando una conexion inalambrica y / o una conexion cableada.
El dispositivo electronico 134 puede extraer 304 un flujo de bits con marcas de agua (p. ej., el flujo de bits recibido 138), en base a la senal 132. Por ejemplo, el dispositivo electronico 134 puede reducir la frecuencia, desmodular, amplificar, sincronizar, anular el formato y / o descodificar el canal de la senal 132, a fin de obtener un flujo de bits con marcas de agua (p. ej., el flujo de bits recibido 138).
El dispositivo electronico 134 puede determinar 306 una parte de baja prioridad del flujo de bits con marcas de agua. Por ejemplo, la parte de baja prioridad puede ser una parte del flujo de bits con marcas de agua que incluye informacion perceptivamente menos importante que otra parte del flujo de bits con marcas de agua. Por ejemplo, la parte de baja prioridad puede no incluir informacion que represente al tono. Esta determinacion 306 puede estar basada en una trama actual y / o una trama pasada. En una configuracion, esta parte de baja prioridad no incluye pistas de libro de codigos de alta prioridad. Por ejemplo, el dispositivo electronico 134 puede determinar una o mas pistas de libro de codigos de alta prioridad, en base al flujo de bits con marcas de agua. La determinacion 306 de la parte de baja prioridad puede estar basada en la determinacion de dichas una o mas pistas de libro de codigos de alta prioridad, en base al flujo de bits con marcas de agua. Por ejemplo, la parte de baja prioridad puede ser determinada 306 o designada como una o mas pistas de libro de codigos que no son pistas de libro de codigos de alta prioridad. En una configuracion, el dispositivo electronico 134 puede obtener una salida de filtro de LTP o de tono. El dispositivo electronico 134 puede examinar la salida de filtro de LTP o de tono para determinar una o mas pistas de libro de codigos que tengan una mayor, o maxima, contribucion de LTP. En una configuracion, el dispositivo electronico 134 puede determinar que las dos pistas con la maxima contribucion de LTP sean pistas de libro de codigos de alta prioridad, mientras que las pistas restantes (p. ej., tres) de libro de codigos pueden ser consideradas pistas de libro de codigos de baja prioridad.
En algunas configuraciones, puede ser usada una contribucion de LTP limitada en memoria para determinar dichas una o mas pistas de libro de codigos de alta prioridad. En otras palabras, puede ser usada, alternativamente, una contribucion de LTP limitada en memoria, en lugar de la contribucion de LTP. Una version de memoria limitada de la LTP puede ser estructurada en base solamente a los valores de tono cuantizados y a contribuciones de libro de codigos de las ultimas N tramas, mas la trama actual. Las ganancias pueden ser fijadas en la unidad. Por ejemplo, con N = 2, las prestaciones en caso de errores pueden ser mejoradas en gran medida. La contribucion de LTP limitada en memoria puede ser usada alternativamente, dado que una senal de LTP efectiva o regular puede ser muy sensible a errores de canal (porque tiene un tiempo infinito de propagacion de errores). Por tanto, puede ser usada una LPC modificada, o limitada en memoria, borrando con ceros la memoria despues de un cierto numero de tramas. Deberfa observarse que la determinacion 306 de una parte de baja prioridad del flujo de bits con marcas de agua puede ser llevada a cabo de manera similar a la determinacion 204 de una parte de baja prioridad de la segunda senal, segun lo descrito con relacion a la Figura 2 en algunas configuraciones.
El dispositivo electronico 134 puede extraer datos de marcas de agua desde la parte de baja prioridad del flujo de bits con marcas de agua (p. ej., el flujo de bits recibido 138). En una configuracion, el dispositivo electronico 134 puede extraer 308 datos de marcas de agua desde el flujo de bits con marcas de agua, en base a dichas una o mas pistas de libro de codigos de alta prioridad. Por ejemplo, el dispositivo electronico 134 puede extraer datos de marcas de agua solamente de pistas de libro de codigos que no sean pistas de libro de codigos de alta prioridad (pero que sean pistas de libro de codigos de baja prioridad, por ejemplo).
El dispositivo electronico 134 puede obtener 310 una primera senal (p. ej., una primera senal descodificada 154) en base a los datos de marcas de agua. En una configuracion, por ejemplo, el dispositivo electronico 134 puede modelar los datos de marcas de agua usando un modelo de EVRC-WB para obtener la primera senal (p. ej., los datos de banda alta). Adicionalmente, o alternativamente, el dispositivo electronico 134 puede obtener 310 la primera senal descodificando los datos de marcas de agua. Alternativamente, la primera senal puede comprender los datos de marcas de agua. En algunas configuraciones, el dispositivo electronico 134 puede obtener 310 la primera senal en base a una segunda senal (p. ej., la segunda senal descodificada 158). Por ejemplo, un modelo (p. ej., de EVRC-WB) usado para una banda de mayor frecuencia puede depender de una segunda senal descodificada 158 (descodificada usando AMR-NB, por ejemplo). En este caso, el dispositivo electronico 134 puede usar la segunda senal descodificada 158 para modelar o descodificar los datos de marcas de agua, para obtener 310 la primera senal (p. ej., la primera senal descodificada 154).
El dispositivo electronico 134 puede descodificar 312 el flujo de bits con marcas de agua, para obtener una segunda senal (p. ej., la segunda senal descodificada 158). Por ejemplo, el dispositivo electronico 134 puede usar un descodificador (p. ej., los circuitos descodificadores 150) para descodificar 312 el flujo de bits con marcas de agua, para obtener la segunda senal. En una configuracion, el dispositivo electronico 134 puede usar un descodificador convencional (p. ej., “heredado”) de AMR-NB para obtener la segunda senal (p. ej., los datos de banda estrecha).
5
10
15
20
25
30
35
40
45
50
55
60
65
Segun se ha descrito anteriormente, la segunda senal (p. ej., la segunda senal descodificada 158) puede ser usada para obtener 310 la primera senal (p. ej., la primera senal descodificada 154) en algunas configuraciones.
En algunas configuraciones, el dispositivo electronico 134 puede combinar optativamente 314 la primera senal (p. ej., la primera senal descodificada 154) y la segunda senal (p. ej., la segunda senal descodificada 158) para obtener una senal combinada 156. Por ejemplo, el dispositivo electronico 134 puede combinar una primera senal que comprende datos de banda alta y una segunda senal que comprende datos de banda baja o de banda estrecha, usando un banco de filtros de sfntesis. En otras configuraciones, el dispositivo electronico 134 puede no combinar la primera senal y la segunda senal.
La Figura 4 es un diagrama de bloques que ilustra una configuracion de dispositivos de comunicacion inalambrica 402, 434, en la cual pueden ser implementados sistemas y procedimientos para codificar y descodificar adaptativamente una senal con marcas de agua. Los ejemplos del dispositivo de comunicacion inalambrica A 402 y del dispositivo de comunicacion inalambrica B 434 pueden incluir los telefonos celulares, los telefonos inteligentes, los asistentes digitales personales (PDA), los ordenadores portatiles, los libros electronicos, etc.
El dispositivo de comunicacion inalambrica A 402 puede incluir un microfono 462, un codificador de audio 410, un codificador de canal 466, un modulador 468, un transmisor 472 y una o mas antenas 474a a 474n. El codificador de audio 410 puede ser usado para codificar el audio y colocar marcas de agua en el audio. El codificador de canal 466, el modulador 468, el transmisor 472 y una o mas antenas 474a a 474n pueden ser usados para preparar y transmitir una o mas senales a otro dispositivo (p. ej., el dispositivo de comunicacion inalambrica B 434).
El dispositivo de comunicacion inalambrica A 402 puede obtener una senal de audio 404. Por ejemplo, el dispositivo de comunicacion inalambrica A 402 puede capturar la senal de audio 404 (p. ej., de habla) usando un microfono 462. El microfono 462 puede convertir una senal acustica (p. ej., sonidos, habla, etc.) en la senal de audio electrica o electronica 404. La senal de audio 404 puede ser proporcionada al codificador de audio 410, que puede incluir un banco de filtros de analisis 464, un bloque / modulo de modelacion de banda alta 412 y un bloque / modulo de codificacion con marcas de agua 418.
La senal de audio 404 puede ser proporcionada al banco de filtros de analisis 464. El banco de filtros de analisis 464 puede dividir la senal de audio 404 en una primera senal 406 y en una segunda senal 408. Por ejemplo, la primera senal 406 puede ser una senal componente de mayor frecuencia y la segunda senal 408 puede ser una senal componente de menor frecuencia. La primera senal 406 puede ser proporcionada al bloque / modulo de modelacion de banda alta 412. La segunda senal 408 puede ser proporcionada al bloque / modulo de codificacion con marcas de agua 418.
Deberfa observarse que uno o mas de los elementos (p. ej., el microfono 462, el codificador de audio 410, el codificador de canal 466, el modulador 468, el transmisor 472, etc.) incluidos en el dispositivo de comunicacion inalambrica A 402 pueden ser implementados en hardware, software o una combinacion de ambos. Por ejemplo, uno o mas de los elementos incluidos en el dispositivo de comunicacion inalambrica A 402 pueden ser implementados como uno o mas circuitos integrados, circuitos integrados especfficos de la aplicacion (ASIC), etc., y / o usando un procesador e instrucciones. Tambien debena observarse que el termino “bloque / modulo” tambien puede ser usado para indicar que un elemento puede ser implementado en hardware, software o una combinacion de ambos.
El bloque / modulo de codificacion con marcas de agua 418 puede realizar la codificacion sobre la segunda senal 408. Por ejemplo, el bloque / modulo de codificacion con marcas de agua 418 puede realizar la codificacion adaptativa de multiples velocidades (AMR) sobre la segunda senal 408. El bloque / modulo de modelacion de banda alta 412 puede determinar los datos de marcas de agua 416 que pueden ser incrustados en la segunda senal (p. ej., la senal “portadora”) 408. Por ejemplo, el bloque / modulo de codificacion con marcas de agua 418 puede producir un flujo de bits codificado en el que pueden ser incrustados bits de marcas de agua. La segunda senal codificada 408 con los datos incrustados de marcas de agua 416 puede ser mencionada como una segunda senal con marcas de agua 422.
El bloque / modulo de codificacion con marcas de agua 418 puede codificar (p. ej., cifrar) la segunda senal 408. En algunas configuraciones, esta codificacion puede producir datos 414, que pueden ser proporcionados al bloque / modulo de modelacion de banda alta 412. En una configuracion, esta codificacion puede producir datos 414, que pueden ser proporcionados al bloque / modulo de modelacion de banda alta 412. En una configuracion, el bloque / modulo de modelacion de banda alta 412 puede usar un modelo de EVRC-WB para modelar componentes de mayor frecuencia (a partir de la primera senal 406), que se apoya en componentes de menor frecuencia (a partir de la segunda senal 408), que pueden ser codificados por el bloque / modulo de codificacion con marcas de agua 418. Por tanto, los datos 414 pueden ser proporcionados al bloque / modulo de modelacion de banda alta 412 para su uso en la modelacion de los componentes de mayor frecuencia. Los datos componentes resultantes de marcas de agua de mayor frecuencia 416 pueden luego ser incrustados en la segunda senal 408 por el bloque / modulo de codificacion con marcas de agua 418, produciendo por ello la segunda senal con marcas de agua 422. La incrustacion de los datos de marcas de agua 416 (p. ej., los bits de banda alta) puede implicar el uso de un libro de
5
10
15
20
25
30
35
40
45
50
55
60
65
codigos de marcas de agua (p. ej., el libro de codigos fijo, o FCB) para incrustar los datos de marcas de agua 416 en la segunda senal 408, para producir la segunda senal con marcas de agua 422 (p. ej., un flujo de bits con marcas de agua).
El bloque / modulo de codificacion con marcas de agua 418 puede incluir un bloque / modulo adaptativo de marcas de agua 420. El bloque / modulo adaptativo de marcas de agua 420 puede determinar una parte de baja prioridad de la segunda senal 408 e incrustar los datos de marcas de agua 416 (p. ej., los bits de banda alta) en la parte de baja prioridad de la segunda senal. Un ejemplo del bloque / modulo de codificacion con marcas de agua 418 es un codificador de prediccion lineal excitada por codigo algebraico (ACELP). En este ejemplo, el bloque / modulo de codificacion con marcas de agua 418 puede usar un libro de codigos (p. ej., el libro de codigos fijo (FCB)) a fin de codificar la segunda senal 408. El libro de codigos puede usar un cierto numero de pistas en el proceso de codificacion. Por ejemplo, la codificacion de AMR-NB usa cinco pistas de ocho posiciones para una sub-trama de 40 muestras. El bloque / modulo adaptativo de marcas de agua 420 puede usar la segunda senal 408 para determinar una o mas pistas de alta prioridad. Por ejemplo, las pistas de alta prioridad pueden ser pistas en las cuales esta representado un pulso de tono. En una configuracion, el bloque / modulo adaptativo de marcas de agua 420 puede tomar esta determinacion en base a una contribucion de filtro de prediccion a largo plazo (LTP) (o filtro de tono). Por ejemplo, el bloque / modulo adaptativo de marcas de bloque 420 puede examinar la salida del filtro de LTP para determinar la mayor contribucion de LTP para un numero designado de pistas. Por ejemplo, la mayor energfa en la salida del filtro de LTP puede ser hallada tomando un maximo mas grande para cada pista. En una configuracion, las dos pistas con las mas grandes contribuciones de LTP pueden ser designadas “pistas de alta prioridad”, o pistas importantes. Una o mas pistas restantes pueden ser designadas como “pistas de baja prioridad” o pistas menos importantes.
Puede usarse este enfoque, dado que no todas las pistas pueden tener el mismo impacto sobre la calidad del habla. Por ejemplo, puede ser importante en la codificacion del habla representar debidamente el principal pulso de tono. En consecuencia, si hay un pulso de tono en una sub-trama, los sistemas y procedimientos divulgados en la presente memoria pueden asegurar que este bien representado. Esto se deduce, dado que las marcas de agua pueden poner una restriccion adicional en el sistema, similar a la adicion de ruido. En otras palabras, si se anade ruido a las posiciones (p. ej., pistas) donde esta representado el pulso de tono, la calidad puede ser degradada. Por tanto, los sistemas y procedimientos divulgados en la presente memoria pueden intentar determinar donde estaran las ubicaciones de pulsos de tono, en base a una historia pasada de los parametros de tono. Esto se hace estimando donde estaran las posiciones de tono. Luego, los datos de marcas de agua 416 pueden no ser incrustados en esas pistas correspondientes. Sin embargo, mas datos de marcas de agua 416 pueden ser colocados en otras pistas de “baja prioridad”.
Una vez que las pistas de alta prioridad o de baja prioridad han sido determinadas o estimadas, el bloque / modulo de codificacion con marcas de agua 418 puede incrustar los datos de marcas de agua 416 (p. ej., los bits de banda alta), a partir del bloque / modulo de modelacion de banda alta 412, en la(s) pista(s) de baja prioridad. Asf, por ejemplo, el bloque / modulo de codificacion con marcas de agua 418 puede evitar incrustar datos de marcas de agua en una pista que se usa para representar el tono. La senal resultante (p. ej., la senal “portadora” con los datos de marcas de agua incrustados 416) puede ser mencionada como una segunda senal con marcas de agua 422 (p. ej., un flujo de bits).
Deberfa observarse que el proceso de colocacion de marcas de agua puede alterar algunos de los bits de una segunda senal codificada 408. Por ejemplo, la segunda senal 408 puede ser mencionada como una senal “portadora” o flujo de bits. En el proceso de colocacion de marcas de agua, algunos de los bits que componen la segunda senal codificada 408 pueden ser alterados a fin de incrustar o insertar los datos de marcas de agua 416, obtenidos a partir de la primera senal 408, en la segunda senal 408, para producir la segunda senal con marcas de agua 422. En algunos casos, esto puede ser un origen de degradacion en la segunda senal codificada 408. Sin embargo, este enfoque puede ser ventajoso, ya que los descodificadores que no estan disenados para extraer la informacion con marcas de agua pueden recuperar aun una version de la segunda senal 408, sin la informacion adicional proporcionada por la primera senal 406. Por tanto, los dispositivos “heredados” y la infraestructura pueden funcionar todavfa, independientemente de las marcas de agua. Este enfoque permite ademas a otros descodificadores (que estan disenados para extraer la informacion con marcas de agua) ser usados para extraer la informacion adicional de marcas de agua proporcionada por la primera senal 406.
La segunda senal con marcas de agua 422 (p. ej., el flujo de bits) puede ser proporcionada al codificador de canal 466. El codificador de canal 466 puede codificar la segunda senal con marcas de agua 422, para producir una senal codificada por canal 467. Por ejemplo, el codificador de canal 466 puede anadir codificacion de deteccion de errores (p. ej., un control de redundancia cfclica (CRC)) y / o codificacion de correccion de errores (p. ej., codificacion de correccion anticipada de errores (FEC)) a la segunda senal con marcas de agua 422.
La senal codificada por canal 467 puede ser proporcionada al modulador 468. El modulador 468 puede modular la senal codificada por canal 467, para producir una senal modulada 470. Por ejemplo, el modulador 468 puede correlacionar bits en la senal codificada por canal 467 con puntos de constelacion. Por ejemplo, el modulador 468 puede aplicar un esquema de modulacion a la senal codificada por canal 467, tal como la modulacion binaria por
5
10
15
20
25
30
35
40
45
50
55
60
65
desplazamiento de fase (BPSK), la modulacion por amplitud de cuadratura (QAM), la modulacion por desplazamiento de frecuencia (FSK), etc., para producir la senal modulada 470.
La senal modulada 470 puede ser proporcionada al transmisor 472. El transmisor 472 puede transmitir la senal modulada 470 usando dichas una o mas antenas 474a a 474n. Por ejemplo, el transmisor 472 puede aumentar en frecuencia, amplificar y transmitir la senal modulada 470 usando dichas una o mas antenas 474a a 474n.
La senal modulada 470 que incluye la segunda senal con marcas de agua 422 (p. ej., una “senal transmitida”) puede ser transmitida desde el dispositivo de comunicacion inalambrica A 402 a otro dispositivo (p. ej., el dispositivo de comunicacion inalambrica B 434), por una red 428. La red 428 puede incluir dichos uno o mas dispositivos de red 428 y / o medios de transmision para comunicar senales entre dispositivos (p. ej., entre el dispositivo de comunicacion inalambrica A 402 y el dispositivo de comunicacion inalambrica B 434). Por ejemplo, la red 428 puede incluir una o mas estaciones base, encaminadores, servidores, puentes, pasarelas, etc.
En algunos casos, uno o mas dispositivos de red 428 pueden transcodificar la senal transmitida (que incluye la segunda senal con marcas de agua 422). La transcodificacion puede incluir descodificar la senal transmitida y re- codificarla (en otro formato, por ejemplo). En algunos casos, la transcodificacion puede destruir la informacion de marcas de agua incrustada en la senal transmitida. En tal caso, el dispositivo de comunicacion inalambrica B 434 puede recibir una senal que ya no contiene la informacion de marcas de agua. Otros dispositivos de red 428 pueden no usar ninguna transcodificacion. Por ejemplo, si una red 428 usa dispositivos que no transcodifican senales, la red puede proporcionar funcionamiento libre de tandem, o libre de transcodificador (TFO / TrFO). En este caso, la informacion de marcas de agua incrustada en la segunda senal con marcas de agua 422 puede ser preservada, ya que es enviada a otro dispositivo (p. ej., el dispositivo de comunicacion inalambrica B 434).
El dispositivo de comunicacion inalambrica B 434 puede recibir una senal (mediante la red 428), tal como una senal que tenga preservada informacion de marcas de agua, o una senal sin informacion de marcas de agua. Por ejemplo, el dispositivo de comunicacion inalambrica B 434 puede recibir una senal usando una o mas antenas 476a a 476n y un receptor 478. En una configuracion, el receptor 478 puede reducir la frecuencia y digitalizar la senal para producir una senal recibida 480.
La senal recibida 480 puede ser proporcionada a un demodulador 482. El demodulador 482 puede desmodular la senal recibida 480 para producir una senal desmodulada 484, que puede ser proporcionada a un descodificador de canal 486. El descodificador de canal 486 puede descodificar la senal (p. ej., detectar y / o corregir errores usando codigos de deteccion y / o correccion de errores) para producir un flujo de bits recibido (descodificado) 438.
El flujo de bits recibido 438 puede ser proporcionado a un descodificador de audio 440. Por ejemplo, el flujo de bits recibido 438 puede ser proporcionado a un bloque / modulo de modelacion de banda alta 442 y a un bloque / modulo de descodificacion 450.
El descodificador de audio 440 puede incluir un bloque / modulo de modelacion de banda alta 442, un bloque / modulo de determinacion de pista 452 y / o un bloque / modulo de descodificacion 450. El descodificador de audio 440 puede incluir optativamente un banco de filtros de sfntesis 446. El bloque / modulo de determinacion de pista 452 puede determinar la informacion de pista 444 que indica una o mas pistas del flujo de bits recibido 438, en el cual pueden ser incrustados datos de marcas de agua. Por ejemplo, el bloque / modulo de descodificacion 450 puede proporcionar informacion 448 que el bloque / modulo de determinacion de pista 452 puede usar para determinar la ubicacion de datos de marcas de agua en el flujo de bits recibido 438. En una configuracion, el bloque / modulo de descodificacion 450 proporciona informacion 448 desde un filtro de prediccion a largo plazo (LTP) o un filtro de tono, que puede permitir al bloque / modulo de determinacion de pista 452 determinar o estimar una o mas pistas en las cuales pueden ser incrustados datos de marcas de agua. Esta determinacion puede ser tomada de manera similar a la determinacion de pista de prioridad baja, llevada a cabo por el codificador de audio 410. Por ejemplo, el bloque / modulo de determinacion de pista 452 puede determinar una o mas pistas que tengan la(s) mayor(es) contribucion(es) de LTP. Un cierto numero de pistas (p. ej., dos) pueden ser determinadas (p. ej., designadas) como las pistas de alta prioridad, mientras que las otras pistas pueden ser determinadas (p. ej., designadas) como las pistas de baja prioridad. En una configuracion, una indicacion de las pistas de baja prioridad puede ser proporcionada al bloque / modulo de modelacion de banda alta 442, como la informacion de pista 444.
La informacion de pista 444 puede ser proporcionada al bloque / modulo de modelacion de banda alta 442. Si la informacion con marcas de agua esta incrustada en el flujo de bits recibido 438, el bloque / modulo de modelacion de banda alta 442 puede usar la informacion de pista 444 (p. ej., la indicacion de pista de baja prioridad) para modelar y / o descodificar los datos de marcas de agua a partir del flujo de bits recibido 438. Por ejemplo, el bloque / modulo de modelacion / descodificacion puede extraer, modelar y / o descodificar datos de marcas de agua a partir del flujo de bits recibido 438, para producir una primera senal descodificada 454.
El bloque / modulo de descodificacion 450 puede descodificar el flujo de bits recibido 438. En algunas configuraciones, el bloque / modulo de descodificacion 450 puede usar un descodificador de “herencia” (p. ej., un descodificador estandar de banda estrecha), o un procedimiento de descodificacion, que descodifica el flujo de bits
5
10
15
20
25
30
35
40
45
50
55
60
65
recibido 438, independientemente de cualquier informacion de marcas de agua que pueda estar incluida en el flujo de bits recibido 438. El bloque / modulo de descodificacion 450 puede producir una segunda senal descodificada 458. Asf, por ejemplo, si no esta incluida ninguna informacion de marcas de agua en el flujo de bits recibido 438, el bloque / modulo de descodificacion 450 puede aun recuperar una version de la segunda senal 408, que es la segunda senal descodificada 458.
En algunas configuraciones, las operaciones realizadas por el bloque / modulo de modelacion de banda alta 442 pueden depender de operaciones realizadas por el bloque / modulo de descodificacion 450. Por ejemplo, un modelo (p. ej., de EVRC-WB) usado para una banda de frecuencia superior puede depender de una senal de banda estrecha descodificada (p. ej., la segunda senal descodificada 458, descodificada usando AMR-NB). En este caso, la segunda senal descodificada 458 puede ser proporcionada al bloque / modulo de modelacion de banda alta 442.
En algunas configuraciones, una segunda senal descodificada 458 puede ser combinada con una primera senal descodificada 454, por un banco de filtros de sfntesis 446, para producir una senal combinada 456. Por ejemplo, la primera senal descodificada 454 puede incluir informacion de audio de frecuencia superior, mientras que la segunda senal descodificada 458 puede incluir informacion de audio de frecuencia inferior. Deberfa observarse que la primera senal descodificada 454 puede ser una version descodificada de la primera senal 406, codificada por el dispositivo de comunicacion inalambrica A 402. Adicionalmente, o alternativamente, la segunda senal descodificada 458 puede ser una version descodificada de la segunda senal 408, codificada por el dispositivo de comunicacion inalambrica A 402. El banco de filtros de sfntesis 446 puede combinar la primera senal descodificada 454 y la segunda senal descodificada 458, para producir la senal combinada 456, que puede ser una senal de audio de banda ancha.
La senal combinada 456 puede ser proporcionada a un altavoz 488. El altavoz 488 puede ser un transductor que convierte senales electricas o electronicas en senales acusticas. Por ejemplo, el altavoz 488 puede convertir una senal electronica de audio de banda ancha (p. ej., la senal combinada 456) en una senal acustica de audio de banda ancha.
Si no esta incrustada ninguna informacion de marcas de agua en el flujo de bits recibido 438, el bloque / modulo de descodificacion de audio 450 puede descodificar el flujo de bits recibido 438 (en una modalidad de herencia, por ejemplo), para producir la segunda senal descodificada 458. En este caso, el banco de filtros de sfntesis 446 puede ser omitido, para proporcionar la segunda senal descodificada 458, sin la informacion adicional proporcionada por la primera senal 406. Esto puede ocurrir, por ejemplo, si la informacion de marcas de agua (a partir de la primera senal 406, por ejemplo) es destruida en una operacion de transcodificacion en la red 428.
Deberfa observarse que uno o mas de los elementos (p. ej., el altavoz 488, el descodificador de audio 440, el descodificador de canal 486, el demodulador 482, el receptor 478, etc.) incluidos en el dispositivo de comunicacion inalambrica B 434 pueden ser implementados en hardware, software o una combinacion de ambos. Por ejemplo, uno o mas de los elementos incluidos en el dispositivo de comunicacion inalambrica B 434 pueden ser implementados como uno o mas circuitos integrados, circuitos integrados especfficos de la aplicacion (ASIC), etc., y / o usando un procesador e instrucciones.
La Figura 5 es un diagrama de bloques que ilustra un ejemplo de un codificador de marcas de agua 510, de acuerdo a los sistemas y procedimientos divulgados en la presente memoria. En este ejemplo, el codificador 510 puede obtener una senal de habla de banda ancha (WB) 504, que varfa entre 0 y 8 kilohercios (kHz). La senal de habla de banda ancha 504 puede ser proporcionada a un banco de filtros de analisis 564, que divide la senal 504 en una primera senal 506, o componente de frecuencia superior (p. ej., de entre 4 y 8 kHz), y una segunda senal 508, o componente de frecuencia inferior (p. ej., de entre 0 y 4 kHz).
La segunda senal 508, o el componente de frecuencia inferior (p. ej., de entre 0 y 4 kHz), puede ser proporcionado a un codificador modificado de banda estrecha 518. En un ejemplo, el codificador modificado de banda estrecha 518 puede codificar la segunda senal 508 usando AMR-NB 12.2, con una marca de agua de FCB. El codificador modificado de banda estrecha 518 puede proporcionar los datos 514 (p. ej., una excitacion codificada) al bloque / modulo de modelacion de banda alta 512 en una configuracion.
La primera senal 506, o el componente de frecuencia superior, puede ser proporcionado al bloque / modulo de modelacion de banda alta 512 (que usa un modelo de EVRC-WB, por ejemplo). El bloque / modulo de modelacion de banda alta 512 puede codificar o modelar la primera senal 506 (p. ej., el componente de frecuencia superior). En algunas configuraciones, el bloque / modulo de modelacion de banda alta 512 puede codificar o modelar la primera senal 506 en base a los datos 514 (p. ej., una excitacion codificada) proporcionados por el codificador modificado de banda estrecha 518. La codificacion o modelacion realizada por el bloque / modulo de modelacion de banda alta 512 puede producir datos de marcas de agua 516 (p. ej., bits de banda alta) que son proporcionados al codificador modificado de banda estrecha 518.
El codificador modificado de banda estrecha 518 puede incrustar los datos de marcas de agua 516 (p. ej., bits de banda alta) como una marca de agua en la segunda senal 508. El codificador modificado de banda estrecha 518 puede codificar adaptativamente una segunda senal con marcas de agua 522. Por ejemplo, el codificador modificado
5
10
15
20
25
30
35
40
45
50
55
60
65
de banda estrecha 518 puede incrustar los datos de marcas de agua 516 en una parte de baja prioridad (p. ej., pistas de baja prioridad) de la segunda senal 508, segun lo descrito anteriormente. Deberfa observarse que la segunda senal con marcas de agua 522 (p. ej., el flujo de bits) puede ser descodificable por un descodificador estandar (p. ej., convencional), tal como el de AMR estandar. Sin embargo, si un descodificador no incluye funcionalidad de descodificacion de marcas de agua, puede solamente ser capaz de descodificar una version de la segunda senal 508 (p. ej., un componente de frecuencia inferior).
La Figura 6 es un diagrama de bloques que ilustra un ejemplo de un descodificador de marcas de agua 640, de acuerdo a los sistemas y procedimientos divulgados en la presente memoria. El descodificador de marcas de agua 640 puede obtener un flujo de bits recibido 638 (p. ej., una segunda senal con marcas de agua). El flujo de bits recibido 638 puede ser descodificado por el bloque / modulo de descodificacion estandar de banda estrecha 650, para obtener una segunda senal descodificada 658 (p. ej., una senal componente de frecuencia inferior (p. ej., de entre 0 y 4 kHz). La senal componente de frecuencia inferior descodificada 658 puede ser proporcionada a un bloque / modulo de modelacion de banda alta 642 (p. ej., un modelador / descodificador) en algunas configuraciones.
El bloque / modulo de descodificacion estandar de banda estrecha 650 puede proporcionar informacion 648 a un bloque / modulo de determinacion de pista 652. En una configuracion, la informacion 648 puede ser proporcionada desde un filtro de LTP o filtro de tono, segun lo descrito anteriormente con relacion a la informacion 148 o la informacion 448. El bloque / modulo de determinacion de pista 652 puede determinar una o mas pistas de baja prioridad, y proporcionar informacion de parte o de pista 644 a un bloque / modulo de modelacion de banda alta 642, segun lo descrito anteriormente.
El bloque / modulo de modelacion de banda alta 642 puede extraer y / o modelar informacion de marcas de agua incrustada en el flujo de bits recibido 638 (usando la informacion de pista 644 y / o la segunda senal descodificada 658), para obtener una primera senal descodificada 654 (p. ej., una senal componente de frecuencia superior, que oscila entre 4 y 8 kHz). La informacion de pista 644 puede indicar cuales pistas del flujo de bits recibido 638 contienen datos de marcas de agua. La primera senal descodificada 654 y la segunda senal descodificada 658 pueden ser combinadas por un banco de filtros de sfntesis 646, para obtener una senal de habla de salida de banda ancha 656 (p. ej., con muestras de entre 0 y 8 kHz, y de 16 kHz). Sin embargo, en un caso de “herencia” o en un caso en que el flujo de bits recibido 638 no contiene los datos de marcas de agua, el descodificador de marcas de agua 640 puede producir una senal de salida de habla de banda estrecha (p. ej., de entre 0 y 4 kHz) (p. ej., la segunda senal descodificada 658).
La Figura 7 es un diagrama de bloques que ilustra ejemplos de un codificador 710 y un descodificador 740, que pueden ser implementados de acuerdo a los sistemas y procedimientos divulgados en la presente memoria. El codificador 710 puede obtener una primera senal 706 y un segunda senal 708. Los ejemplos de la primera senal 706 y de la segunda senal 708 incluyen dos componentes de una senal de habla de banda ancha, una senal de habla monofonica y una senal componente estereo y dos senales no relacionadas. La primera senal 706 puede ser proporcionada a los circuitos modeladores 712 en el codificador 710 que modela y / o codifica la primera senal 706 en datos de marcas de agua 716.
La segunda senal 707 se proporciona a los circuitos codificadores 718. Los circuitos codificadores 718 pueden incluir un bloque / modulo de codificacion predictiva lineal (LPC) 790, un bloque / modulo de prediccion a largo plazo (LTP) 792, un bloque / modulo de determinacion de pista 796 y un bloque / modulo de libro de codigos fijo (FCB) 798. En algunas configuraciones, el bloque / modulo de codificacion predictiva lineal (LPC) 790 y el bloque / modulo de prediccion a largo plazo 792 pueden realizar operaciones similares a las de un codificador tradicional de prediccion lineal excitada por codigo (CELP) o un codificador de prediccion lineal excitada por codigo algebraico (ACELP). El bloque / modulo de LPC 790 puede realizar una operacion de LPC sobre la segunda senal 708.
La salida 705 del bloque / modulo de LPC 790 es proporcionada al bloque / modulo de LTP 792 (p. ej., un filtro de tono) que realiza una operacion de LTP sobre la salida 705 del bloque / modulo de LPC 790. La salida 707 del bloque / modulo de LTP 792 es proporcionada al bloque / modulo de determinacion de pista 796 y al bloque / modulo de FCB 798. Deberfa observarse que la LTP original puede ser usada para la codificacion de banda baja. En algunas configuraciones, la LTP limitada en memoria puede ser usada unicamente para determinar la prioridad de las pistas con fines de colocacion de marcas de agua. El bloque / modulo de determinacion de pista puede usar una contribucion de LTP (indicada por la salida de LTP 707, por ejemplo) para determinar pistas de alta prioridad, a fin de determinar pistas de baja prioridad para el bloque / modulo de fCb 798. Por ejemplo, el bloque / modulo de determinacion de pista 796 puede estimar, o intentar determinar, pistas de alta prioridad que se usan para representar el tono en la segunda senal 708. La salida 709 del bloque / modulo de determinacion de pista 796 se proporciona al bloque / modulo de FCB 798, que codifica la segunda senal 708 e incrusta los datos de marcas de agua 716 provenientes de los circuitos modeladores 712 en las pistas de alta prioridad indicadas por la salida 709 del bloque / modulo de determinacion de pista 796. Esta configuracion o enfoque puede tener una desventaja en cuanto a que la senal de LTP es sensible a errores, y las perdidas y errores de paquetes pueden propagarse indefinidamente. Esto puede llevar a que el codificador 710 y el descodificador 740 esten fuera de sincronfa durante largos periodos despues de una borradura o errores de bits.
5
10
15
20
25
30
35
40
45
50
55
60
65
En otra configuracion, el bloque / modulo de LTP 792 puede usar una limitacion de memoria 794. En otras palabras, una contribucion de LTP limitada en memoria puede ser usada en lugar de una contribucion de LTP. Una version de memoria limitada de la LTP puede ser estructurada en base solamente a los valores de tono cuantizados y a las contribuciones de libro de codigos de las ultimas N tramas, mas la trama actual. Las ganancias pueden ser fijadas en la unidad. Por ejemplo, con N = 2, las prestaciones del codificador 710 en caso de errores pueden mejorar en gran medida. Mas especfficamente, el bloque / modulo de determinacion de pista 796 puede usar en cambio una contribucion de LTP limitada en memoria, proveniente del bloque / modulo de LTP 792, para determinar pistas de alta prioridad y / o de baja prioridad.
El bloque / modulo de FCB 798 puede codificar la segunda senal 708 e incrustar los datos de marcas de agua 716 en la segunda senal 708, para producir una segunda senal con marcas de agua 722. La segunda senal con marcas de agua 722 puede ser enviada, transmitida y / o proporcionada a un descodificador 740. El envfo del flujo de bits con marcas de agua puede o no implicar la codificacion de canal, el formateo, la transmision por un canal inalambrico, la anulacion del formateo, la descodificacion de canal, etc.
El descodificador 740 puede recibir la segunda senal con marcas de agua 722, que puede ser proporcionada a los circuitos modeladores 742 y / o a los circuitos descodificadores 750. Los circuitos descodificadores 750 pueden incluir un bloque / modulo de prediccion a largo plazo (LTP) 701. El bloque / modulo de LTP 701 puede proporcionar informacion 748 (p. ej., una o mas contribuciones de LTP) a los circuitos de determinacion de pista 752, en base a la segunda senal con marcas de agua 722. En algunas configuraciones, el bloque / modulo de LTP 701 puede incluir una limitacion de memoria 703. Por ejemplo, la informacion 748 proporcionada a los circuitos de determinacion de pista 752 puede comprender una contribucion de LTP o una contribucion de LTP limitada en memoria. El indicador de contribucion de LTP normal puede tener el inconveniente descrito anteriormente (p. ej., los errores pueden propagarse indefinidamente). Sin embargo, la contribucion de LTP limitada en memoria puede ser usada para mejores prestaciones, en particular cuando han ocurrido borraduras o errores de bit.
Los circuitos de determinacion de pista 752 en el descodificador 740 pueden usar la informacion 748 (p. ej., una o mas contribuciones de LTP) para determinar las pistas de alta prioridad y / o de baja prioridad. Por ejemplo, los circuitos de determinacion de pista 752 pueden usar una o mas contribuciones de LTP, o una o mas contribuciones de LTP limitadas en memoria, para determinar una o mas pistas de alta prioridad y / o de baja prioridad, segun lo descrito anteriormente. Los circuitos de determinacion de pista 752 pueden proporcionar informacion de pista 744 a los circuitos modeladores 742 que indica una o mas pistas de la segunda senal con marcas de agua 722, que puede incluir datos de marcas de agua. Los circuitos modeladores 742 pueden usar la informacion de pista 744 para extraer, descodificar y / o modelar los datos de marcas de agua incrustados. Por ejemplo, los circuitos modeladores 742 pueden obtener datos de marcas de agua a partir de las pistas de baja prioridad (de libro de codigos).
Los circuitos descodificadores 750 pueden producir una segunda senal descodificada 758, mientras que los circuitos modeladores 742 pueden producir una primera senal descodificada 754. En algunas configuraciones, la primera senal descodificada 754 y la segunda senal descodificada 758 pueden ser combinadas por los circuitos de combinacion 746, para producir una senal combinada 756. Por ejemplo, la primera senal descodificada 754 puede ser una senal componente de mayor frecuencia y la segunda senal descodificada 758 puede ser una senal componente de menor frecuencia, que son combinadas por un banco de filtros de sfntesis para producir la senal combinada 756 (p. ej., una senal de habla de banda ancha descodificada).
La Figura 8 es un diagrama de bloques que ilustra una configuracion de un dispositivo de comunicacion inalambrica 821 en el cual pueden ser implementados sistemas y procedimientos para codificar y descodificar adaptativamente una senal con marcas de agua. El dispositivo de comunicacion inalambrica 821 puede ser un ejemplo del dispositivo electronico A 102, el dispositivo electronico B 134, el dispositivo de comunicacion inalambrica A 402 o el dispositivo de comunicacion inalambrica B 434, descritos anteriormente. El dispositivo de comunicacion inalambrica 821 puede incluir un procesador de aplicaciones 825. El procesador de aplicaciones 825 procesa en general instrucciones (p. ej., ejecuta programas) para realizar funciones en el dispositivo de comunicacion inalambrica 821. El procesador de aplicaciones 825 puede ser acoplado con un codificador / descodificador (codec) de audio 819.
El codec de audio 819 puede ser un dispositivo electronico (p. ej., un circuito integrado) usado para codificar y / o descodificar senales de audio. El codec de audio 819 puede ser acoplado con uno o mas altavoces 811, un audffono 813, un enchufe de salida 815 y / o uno o mas microfonos 817. Los altavoces 811 pueden incluir uno o mas transductores electro-acusticos que convierten senales electricas o electronicas en senales acusticas. Por ejemplo, los altavoces 811 pueden ser usados para reproducir musica o emitir una conversacion de fono-altavoz. El audffono 813 puede ser otro altavoz o transductor electro-acustico que puede ser usado para emitir senales acusticas (p. ej., senales de habla) a un usuario. Por ejemplo, el audffono 813 puede ser usado de modo que solamente un usuario pueda ofr fiablemente la senal acustica. El enchufe de salida 815 puede ser usado para acoplar otros dispositivos al dispositivo de comunicacion inalambrica 821, para emitir audio, tales como auriculares. Los altavoces 811, el audffono 813 y / o el enchufe de salida 815 pueden ser usados generalmente para emitir una senal de audio desde el codec de audio 819. Dichos uno o mas microfonos 817 pueden ser uno o mas transductores acustico-electricos
5
10
15
20
25
30
35
40
45
50
55
60
65
que convierten una senal acustica (tal como la voz de un usuario) en senales electricas o electronicas que son proporcionadas al codec de audio 819.
El codec de audio 819 puede incluir un codificador 810a. Los codificadores 110, 410, 510, 710 descritos anteriormente pueden ser ejemplos del codificador 810a (y / o el codificador 810b). En una configuracion alternativa, un codificador 810b puede ser incluido en el procesador de aplicaciones 825. Uno o mas de los codificadores 810a a 810b (p. ej., el codec de audio 819) pueden ser usados para realizar el procedimiento 200 descrito anteriormente con relacion a la Figura 2, para codificar adaptativamente una senal con marcas de agua.
El codec de audio 819 puede incluir, adicionalmente o alternativamente, un descodificador 840a. Los descodificadores 140, 440, 640, 740 descritos anteriormente pueden ser ejemplos del descodificador 840a (y / o del descodificador 840b). En una configuracion alternativa, un descodificador 840b puede ser incluido en el procesador de aplicaciones 825. Uno o mas de los descodificadores 840a a 840b (p. ej., el codec de audio 819) pueden realizar el procedimiento 300 descrito anteriormente con relacion a la Figura 3 para descodificar una senal con marcas de agua, adaptativamente codificada.
El procesador de aplicaciones 825 tambien puede ser acoplado con un circuito de gestion de energfa 835. Un ejemplo del circuito de gestion de energfa 835 es un circuito integrado de gestion de energfa (PMIC), que puede ser usado para gestionar el consumo de energfa electrica del dispositivo de comunicacion inalambrica 821. El circuito de gestion de energfa 835 puede ser acoplado con una baterfa 837. La baterfa 837 puede proporcionar generalmente energfa electrica al dispositivo de comunicacion inalambrica 821.
El procesador de aplicaciones 825 puede ser acoplado con uno o mas dispositivos de entrada 839 para recibir entrada. Los ejemplos de los dispositivos de entrada 839 incluyen sensores infrarrojos, sensores de imagenes, acelerometros, sensores tactiles, paneles de teclas, etc. Los dispositivos de entrada 839 pueden permitir la interaccion del usuario con el dispositivo de comunicacion inalambrica 821. El procesador de aplicaciones 825 puede tambien ser acoplado con uno o mas dispositivos de salida 841. Los ejemplos de los dispositivos de salida 841 incluyen impresoras, proyectores, pantallas, dispositivos hapticos, etc. Los dispositivos de salida 841 pueden permitir al dispositivo de comunicacion inalambrica 821 producir salida que puede ser experimentada por un usuario.
El procesador de aplicaciones 825 puede ser acoplado con la memoria de aplicaciones 843. La memoria de aplicaciones 843 puede ser cualquier dispositivo electronico que sea capaz de almacenar informacion electronica. Los ejemplos de la memoria de aplicaciones 843 incluyen la memoria de acceso aleatorio dinamica y sfncrona de doble velocidad de datos (DDRAM), la memoria de acceso aleatorio dinamica y sfncrona (SDRAM), la memoria flash, etc. La memoria de aplicaciones 843 puede proporcionar almacenamiento para el procesador de aplicaciones 825. Por ejemplo, la memoria de aplicaciones 843 puede almacenar datos y / o instrucciones para el funcionamiento de programas que son ejecutados en el procesador de aplicaciones 825.
El procesador de aplicaciones 825 puede ser acoplado con un controlador de visor 845, el cual, a su vez, puede ser acoplado con un visor 847. El controlador de visor 845 puede ser un bloque de hardware que se usa para generar imagenes en el visor 847. Por ejemplo, el controlador de visor 845 puede traducir instrucciones y / o datos procedentes del procesador de aplicaciones 825 en imagenes que pueden ser representadas en el visor 847. Los ejemplos del visor 847 incluyen paneles de visores de cristal lfquido (LCD), paneles de diodos emisores de luz (LED), visores de tubo de rayos catodicos (CRT), visores de plasma, etc.
El procesador de aplicaciones 825 puede ser acoplado con un procesador de banda base 827. El procesador de banda base 827 procesa generalmente senales de comunicacion. Por ejemplo, el procesador de banda base 827 puede desmodular y / o descodificar senales recibidas. Adicionalmente, o alternativamente, el procesador de banda base 827 puede codificar y / o modular senales en preparacion para la transmision.
El procesador de banda base 827 puede ser acoplado con la memoria de banda base 849. La memoria de banda base 849 puede ser cualquier dispositivo electronico capaz de almacenar informacion electronica, tal como SDRAM, DDRAM, memoria flash, etc. El procesador de banda base 827 puede leer informacion (p. ej., instrucciones y / o datos) desde, y / o escribir informacion en, la memoria de banda base 849. Adicionalmente, o alternativamente, el procesador de banda base 827 puede usar instrucciones y / o datos almacenados en la memoria de banda base 849 para realizar operaciones de comunicacion.
El procesador de banda base 827 puede ser acoplado con un transceptor de frecuencia de radio (RF) 829. El transceptor de RF 829 puede ser acoplado con un amplificador de potencia 831 y una o mas antenas 833. El transceptor de RF 829 puede transmitir y / o recibir senales de frecuencia de radio. Por ejemplo, el transceptor de RF 829 puede transmitir una senal de Rf usando un amplificador de potencia 831 y una o mas antenas 833. El transceptor de RF 829 tambien puede recibir senales de rF usando dichas una o mas antenas 833.
La Figura 9 ilustra diversos componentes que pueden ser utilizados en un dispositivo electronico 951. Los componentes ilustrados pueden estar situados dentro de la misma estructura ffsica, o en cubiertas o estructuras por separado. Uno o mas de los dispositivos electronicos 102, 134 previamente descritos pueden ser configurados de
5
10
15
20
25
30
35
40
45
50
55
60
65
manera similar al dispositivo electronico 951. El dispositivo electronico 951 incluye un procesador 959. El procesador 959 puede ser un microprocesador de proposito general de chip unico o multiples chips (p. ej., un ARM), un microprocesador de proposito especial (p. ej., un procesador de senales digitales (DSP)), un micro-controlador, una formacion de compuertas programables, etc. El procesador 959 puede ser mencionado como una unidad central de procesamiento (CPU). Aunque se muestra solo un unico procesador 959 en el dispositivo electronico 951 de la Figura 9, en una configuracion alternativa, podrfa usarse una combinacion de procesadores (p. ej., un ARM y un DSP).
El dispositivo electronico 951 tambien incluye la memoria 953 en comunicacion electronica con el procesador 959. Es decir, el procesador 959 puede leer informacion de, y / o escribir informacion en, la memoria 953. La memoria 953 puede ser cualquier componente electronico capaz de almacenar informacion electronica. La memoria 953 puede ser memoria de acceso aleatorio (RAM), memoria de solo lectura (ROM), medios de almacenamiento de disco magnetico, medios de almacenamiento optico, dispositivos de memoria flash en RAM, memoria de a bordo incluida con el procesador, memoria programable de solo lectura (PROM), memoria programable y borrable de solo lectura (EPROM), PROM electricamente borrable (EEPROM), registros, etc., incluyendo combinaciones de los mismos.
Los datos 957a y las instrucciones 955a pueden ser almacenados en la memoria 953. Las instrucciones 955a pueden incluir uno o mas programas, rutinas, sub-rutinas, funciones, procedimientos, etc. Las instrucciones 955a pueden incluir una unica sentencia legible por ordenador o muchas sentencias legibles por ordenador. Las instrucciones 955a pueden ser ejecutables por el procesador 959 para implementar uno o mas de los procedimientos 200, 300 descritos anteriormente. La ejecucion de las instrucciones 955a puede implicar el uso de los datos 957a que estan almacenados en la memoria 953. La Figura 9 muestra algunas instrucciones 955b y datos 957b al ser cargados en el procesador 959 (que pueden proceder de las instrucciones 955a y los datos 957a).
El dispositivo electronico 951 tambien puede incluir una o mas interfaces de comunicacion 963 para comunicarse con otros dispositivos electronicos. Las interfaces de comunicacion 963 pueden estar basadas en tecnologfa de comunicacion cableada, tecnologfa de comunicacion inalambrica, o ambas. Los ejemplos de distintos tipos de interfaces de comunicacion 963 incluyen un puerto en serie, un puerto en paralelo, un Bus Universal en Serie (USB), un adaptador de Ethernet, una interfaz del bus IEEE 1394, una interfaz del bus de interfaz de sistemas de ordenadores pequenos (SCSI), un puerto de comunicacion infrarroja (IR), un adaptador de comunicacion inalambrica de Bluetooth, etc.
El dispositivo electronico 951 tambien puede incluir uno o mas dispositivos de entrada 965 y uno o mas dispositivos de salida 969. Los ejemplos de distintas clases de dispositivos de entrada 965 incluyen un teclado, un raton, un microfono, un dispositivo de control remoto, un boton, una palanca de juegos, una bola de rastreo, un panel tactil, un lapiz de luz, etc. Por ejemplo, el dispositivo electronico 951 puede incluir uno o mas microfonos 967 para capturar senales acusticas. En una configuracion, un microfono 967 puede ser un transductor que convierte senales acusticas (p. ej., voz, habla) en senales electricas o electronicas. Los ejemplos de distintas clases de dispositivos de salida 969 incluyen un altavoz, una impresora, etc. Por ejemplo, el dispositivo electronico 951 puede incluir uno o mas altavoces 971. En una configuracion, un altavoz 971 puede ser un transductor que convierte senales electricas o electronicas en senales acusticas. Un tipo especffico de dispositivo de salida que puede ser incluido habitualmente en un dispositivo electronico 951 es un dispositivo visor 973. Los dispositivos visores 973 usados con las configuraciones divulgadas en la presente memoria pueden utilizar cualquier tecnologfa adecuada de proyeccion de imagenes, tales como un tubo de rayos catodicos (CRT), un visor de cristal lfquido (LCD), un diodo emisor de luz (LED), plasma de gas, electroluminiscencia o similares. Un controlador de visor 975 tambien puede ser proporcionado, para convertir datos almacenados en la memoria 953 en texto, graficos y / o imagenes en movimiento (segun corresponda) mostrados en el dispositivo visor 973.
Los diversos componentes del dispositivo electronico 951 pueden ser acoplados entre sf por uno o mas buses, que pueden incluir un bus de energfa, un bus de senales de control, un bus de senales de estado, un bus de datos, etc. Para mayor simplicidad, los diversos buses estan ilustrados en la Figura 9 como un sistema de bus 961. Deberfa observarse que la Figura 9 ilustra solamente una posible configuracion de un dispositivo electronico 951. Pueden ser utilizados otras diversas arquitecturas y otros diversos componentes.
La Figura 10 ilustra ciertos componentes que pueden ser incluidos dentro de un dispositivo de comunicacion inalambrica 1077. Uno o mas de los dispositivos electronicos 102, 134, 951 y / o uno o mas de los dispositivos de comunicacion inalambrica 402, 434, 821 descritos anteriormente pueden ser configurados de manera similar al dispositivo de comunicacion inalambrica 1077 que se muestra en la Figura 10.
El dispositivo de comunicacion inalambrica 1077 incluye un procesador 1097. El procesador 1097 puede ser un microprocesador de proposito general, de chip unico o multiples chips (p. ej., un ARM), un microprocesador de proposito general (p. ej., un procesador de senales digitales (DSP)), un micro-controlador, una formacion de compuertas programables, etc. El procesador 1097 puede ser mencionado como una unidad central de procesamiento (CPU). Aunque se muestra solo un unico procesador 1097 en el dispositivo de comunicacion
5
10
15
20
25
30
35
40
45
50
55
60
65
inalambrica 1077 de la Figura 10, en una configuracion alternativa podrfa usarse una combinacion de procesadores (p. ej., un ARM y un DSP).
El dispositivo de comunicacion inalambrica 1077 tambien incluye la memoria 1079 en comunicacion electronica con el procesador 1097 (es decir, el procesador 1097 puede leer informacion de, y / o escribir informacion en, la memoria 1079). La memoria 1079 puede ser cualquier componente electronico capaz de almacenar informacion electronica. La memoria 1079 puede ser memoria de acceso aleatorio (RAM), memoria de solo lectura (ROM), medios de almacenamiento de disco magnetico, medios de almacenamiento optico, dispositivos de memoria flash en RAM, memoria de a bordo incluida con el procesador, memoria programable de solo lectura (PROM), memoria programable y borrable de solo lectura (EPROM), PROM electricamente borrable (EEPROM), registros, etc., incluyendo combinaciones de los mismos.
Los datos 1081a y las instrucciones 1083a pueden ser almacenados en la memoria 1079. Las instrucciones 1083a pueden incluir uno o mas programas, rutinas, sub-rutinas, funciones, procedimientos, codigo, etc. Las instrucciones 1083a pueden incluir una unica sentencia legible por ordenador o muchas sentencias legibles por ordenador. Las instrucciones 1083a pueden ser ejecutables por el procesador 1097 para implementar uno o mas de los procedimientos 200, 300 descritos anteriormente. La ejecucion de las instrucciones 1083a puede implicar el uso de los datos 1081a que estan almacenados en la memoria 1079. La Figura 10 muestra algunas instrucciones 1083b y datos 1081b al ser cargados en el procesador 1097 (que pueden proceder de las instrucciones 1083a y los datos 1081a).
El dispositivo de comunicacion inalambrica 1077 tambien puede incluir un transmisor 1093 y un receptor 1095 para permitir la transmision y recepcion de senales entre el dispositivo de comunicacion inalambrica 1077 y una ubicacion remota (p. ej., otro dispositivo electronico, un dispositivo de comunicacion inalambrica, etc.). El transmisor 1093 y el receptor 1095 pueden ser mencionados colectivamente como un transceptor 1091. Una antena 1099 puede estar electricamente acoplada con el transceptor 1091. El dispositivo de comunicacion inalambrica 1077 tambien puede incluir multiples transmisores, multiples receptores, multiples transceptores y / o multiples antenas (no mostrados).
En algunas configuraciones, el dispositivo de comunicacion inalambrica 1077 puede incluir uno o mas microfonos 1085 para capturar senales acusticas. En una configuracion, un microfono 1085 puede ser un transductor que convierte senales acusticas (p. ej., la voz, el habla) en senales electricas o electronicas. Adicionalmente, o alternativamente, el dispositivo de comunicacion inalambrica 1077 puede incluir uno o mas altavoces 1087. En una configuracion, un altavoz 1087 puede ser un transductor que convierte senales electricas o electronicas en senales acusticas.
Los diversos componentes del dispositivo de comunicacion inalambrica 1077 puede estar acoplados entre si por uno o mas buses, que pueden incluir un bus de energfa, un bus de senales de control, un bus de senales de estado, un bus de datos, etc. Para mayor simplicidad, los diversos buses estan ilustrados en la Figura 10 como un sistema de bus 1089.
En la descripcion anterior, han sido usados a veces numeros de referencia con relacion a diversos terminos. Allf donde se usa un termino con relacion a un numero de referencia, esto puede estar concebido para referirse a un elemento especffico que se muestra en una o mas de las Figuras. Allf donde se usa un termino sin un numero de referencia, esto puede estar concebido para referirse generalmente al termino sin limitacion a ninguna Figura especffica.
El termino “determinar” abarca una amplia variedad de acciones y, por lo tanto, “determinar” puede incluir calcular, computar, procesar, obtener, investigar, consultar (p. ej., consultar una tabla, una base de datos u otra estructura de datos), averiguar y similares. Ademas, “determinar” puede incluir recibir (p. ej., recibir informacion), acceder (p. ej., acceder a datos en una memoria) y similares. Ademas, “determinar” puede incluir resolver, seleccionar, escoger, establecer y similares.
La frase “basado en” no significa “basado solamente en”, a menos que se especifique expresamente lo contrario. En otras palabras, la frase “basado en” describe tanto “basado solamente en” como “basado al menos en”.
Las funciones descritas en la presente memoria pueden ser almacenadas como una o mas instrucciones en un medio legible por procesador o legible por ordenador. El termino “medio legible por ordenador” se refiere a cualquier medio disponible al que se pueda acceder por parte de un ordenador o procesador. A modo de ejemplo, y no de limitacion, un medio de ese tipo puede comprender RAM, ROM, EEPROM, memoria flash, CD-ROM u otro almacenamiento de disco optico, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, o cualquier otro medio que pueda ser usado para almacenar codigo de programa deseado en forma de instrucciones o estructuras de datos, y al que se pueda acceder por parte de un ordenador o procesador. Los discos, segun se usan en la presente memoria, incluyen el disco compacto (CD), el disco laser, el disco optico, el disco versatil digital (DVD), el disco flexible y el disco Blu-ray®, donde algunos discos reproducen los datos magneticamente, mientras que otros discos reproducen los datos opticamente con laseres. Deberfa observarse que un medio legible por ordenador puede ser tangible y no transitorio. El termino “producto de programa de ordenador”
se refiere a un dispositivo informatico o procesador en combinacion con codigo e instrucciones (p. ej., un “programa”) que pueden ser ejecutados, procesados o calculados por el dispositivo informatico o procesador. Segun se usa en la presente memoria, el termino “codigo” puede referirse a software, instrucciones, codigo o datos que sea(n) ejecutable(s) por un dispositivo informatico o procesador.
5
El software o las instrucciones tambien pueden ser transmitidos por un medio de transmision. Por ejemplo, si el software es transmitido desde una sede de la Red, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra optica, un par cruzado, una lfnea de abonado digital (DSL), o tecnologfas inalambricas tales como los infrarrojos, la radio y las micro-ondas, entonces el cable coaxial, el cable de fibra optica, el par cruzado, la DSL, o las 10 tecnologfas inalambricas tales como los infrarrojos, la radio y las micro-ondas estan incluidos en la definicion de medio de transmision.
Los procedimientos divulgados en la presente memoria comprenden una o mas etapas o acciones para llevar a cabo el procedimiento descrito. Las etapas y / o acciones de procedimientos pueden ser intercambiadas entre si sin 15 apartarse del ambito de las reivindicaciones. En otras palabras, a menos que se requiera un orden especffico de las etapas o acciones para el funcionamiento adecuado del procedimiento que esta siendo descrito, el orden y / o el uso de etapas y / o acciones especfficas pueden ser modificados sin apartarse del ambito de las reivindicaciones.
Ha de entenderse que las reivindicaciones no estan limitadas a la configuracion precisa ni a los componentes 20 ilustrados anteriormente. Diversas modificaciones, cambios y variaciones pueden hacerse en la disposicion, el funcionamiento y los detalles de los sistemas, procedimientos y aparatos descritos en la presente memoria, sin apartarse del ambito de las reivindicaciones.

Claims (10)

10
15
2.
20
3.
25 4.
5. 30
6.
35
40
7. 45
8.
50
9.
10. 55
11.
60 12.
REIVINDICACIONES
Un dispositivo electronico para descodificar un flujo de bits con marcas de agua, adaptativamente codificado, codificado usando un codec de prediccion lineal excitada por codigo algebraico, ACELP, comprendiendo el dispositivo electronico:
circuitos de determinacion de partes, que determinan una parte de baja prioridad de un flujo de bits con marcas de agua mediante la determinacion de una o mas pistas de libro de codigos de baja prioridad, en base a la determinacion de una o mas pistas de libro de codigos de alta prioridad, en donde la determinacion de dichas una o mas pistas de libro de codigos de alta prioridad se basa en el flujo de bits con marcas de agua;
circuitos modeladores acoplados con los circuitos de determinacion de partes, en donde los circuitos modeladores extraen datos de marcas de agua desde la parte de baja prioridad del flujo de bits con marcas de agua, y obtienen una primera senal en base a los datos de marcas de agua; y circuitos descodificadores que descodifican el flujo de bits con marcas de agua para obtener una segunda senal.
El dispositivo electronico de la reivindicacion 1, en el que la determinacion de dichas una o mas pistas de libro de codigos de alta prioridad se basa en una contribucion de prediccion a largo plazo (LTP), o en una contribucion de prediccion a largo plazo (LTP) limitada en memoria.
El dispositivo electronico de la reivindicacion 1, que comprende ademas circuitos combinadores que combinan la primera senal y la segunda senal.
El dispositivo electronico de la reivindicacion 1, en el que la parte de baja prioridad del flujo de bits con marcas de agua incluye informacion que es perceptivamente menos importante.
El dispositivo electronico de la reivindicacion 1, en el que los circuitos de determinacion de partes, los circuitos modeladores y los circuitos descodificadores estan incluidos en un codec de audio.
Un dispositivo electronico configurado para codificar adaptativamente una senal usando un codec de prediccion lineal excitada por codigo algebraico, ACELP, para generar una senal con marcas de agua, comprendiendo el dispositivo electronico:
circuitos modeladores que determinan datos de marcas de agua, en base a una primera senal; y circuitos codificadores acoplados con los circuitos modeladores, en donde los circuitos codificadores:
determinan una parte de baja prioridad de una segunda senal mediante la determinacion de una o mas pistas de libro de codigos de alta prioridad, en base a la segunda senal, y designando una o mas pistas de libro de codigos de baja prioridad, que no son las pistas de libro de codigos de alta prioridad; e incrustan los datos de marcas de agua en la parte de baja prioridad de la segunda senal, para producir la senal con marcas de agua.
El dispositivo electronico de la reivindicacion 6, en el que la parte de baja prioridad de la segunda senal es perceptivamente menos importante que otra parte de la segunda senal.
El dispositivo electronico de la reivindicacion 6, en el que la determinacion de dichas una o mas pistas de libro de codigos de alta prioridad esta basada en una contribucion de prediccion a largo plazo (LTP) o en una contribucion de prediccion a largo plazo (LTP) limitada en memoria.
El dispositivo electronico de la reivindicacion 6, en el que dichas una o mas pistas de libro de codigos de alta prioridad se usan para representar el tono.
El dispositivo electronico de la reivindicacion 6, en el que la primera senal es una senal componente de mayor frecuencia y la segunda senal es una senal componente de menor frecuencia.
El dispositivo electronico de la reivindicacion 6, en el que los circuitos modeladores y los circuitos codificadores estan incluidos en un codec de audio.
Un procedimiento para codificar adaptativamente una senal, usando un codec de prediccion lineal excitada por codigo algebraico, ACELP, para generar una senal con marcas de agua en un dispositivo electronico, comprendiendo el procedimiento:
obtener una primera senal y una segunda senal;
5
10
15
20
25
30
35
determinar una parte de baja prioridad de la segunda senal mediante la determinacion de una o mas pistas de libro de codigos de alta prioridad, en base a la segunda senal, y designando una o mas pistas de libro de codigos de baja prioridad, que no son las pistas de libro de codigos de alta prioridad; determinar datos de marcas de agua en base a la primera senal; e
incrustar los datos de marcas de agua en la parte de baja prioridad de la segunda senal, para producir la senal con marcas de agua.
Un procedimiento para descodificar un flujo de bits con marcas de agua, adaptativamente codificado, codificado usando un codec de prediccion lineal excitado por codigo algebraico, ACELP, en un dispositivo electronico, comprendiendo el procedimiento:
recibir una senal;
extraer un flujo de bits con marcas de agua, en base a la senal;
determinar una parte de baja prioridad del flujo de bits con marcas de agua mediante la determinacion de una o mas pistas de libro de codigos de baja prioridad, en base a la determinacion de una o mas pistas de libro de codigos de alta prioridad, en donde la determinacion de dichas una o mas pistas de libro de codigos de alta prioridad se basa en el flujo de bits con marcas de agua;
extraer datos de marcas de agua desde la parte de baja prioridad del flujo de bits con marcas de agua; obtener una primera senal en base a los datos de marcas de agua; y descodificar el flujo de bits con marcas de agua para obtener una segunda senal.
El procedimiento de la reivindicacion 12 o la reivindicacion 13, en el que la determinacion de dichas una o mas pistas de libro de codigos de alta prioridad esta basada en una contribucion de prediccion a largo plazo (LTP) o en una contribucion de prediccion a largo plazo (LTP) limitada en memoria.
Un producto de programa de ordenador para codificar adaptativamente una senal con marcas de agua, que comprende un medio tangible no transitorio, legible por ordenador, con instrucciones en el mismo, comprendiendo las instrucciones:
codigo para hacer que un dispositivo electronico realice el procedimiento de acuerdo a una cualquiera de las reivindicaciones 12 a 14.
ES11809056.2T 2011-02-07 2011-12-27 Dispositivos, procedimientos y producto de programa de ordenador para codificar y descodificar adaptativamente una señal con marcas de agua Active ES2573113T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161440313P 2011-02-07 2011-02-07
US201161440313P 2011-02-07
US13/275,997 US8880404B2 (en) 2011-02-07 2011-10-18 Devices for adaptively encoding and decoding a watermarked signal
US201113275997 2011-10-18
PCT/US2011/067405 WO2012108943A1 (en) 2011-02-07 2011-12-27 Devices for adaptively encoding and decoding a watermarked signal

Publications (1)

Publication Number Publication Date
ES2573113T3 true ES2573113T3 (es) 2016-06-06

Family

ID=46601279

Family Applications (1)

Application Number Title Priority Date Filing Date
ES11809056.2T Active ES2573113T3 (es) 2011-02-07 2011-12-27 Dispositivos, procedimientos y producto de programa de ordenador para codificar y descodificar adaptativamente una señal con marcas de agua

Country Status (9)

Country Link
US (1) US8880404B2 (es)
EP (1) EP2673769B1 (es)
JP (1) JP5797780B2 (es)
KR (1) KR101548846B1 (es)
CN (1) CN103299365B (es)
BR (1) BR112013020010A2 (es)
ES (1) ES2573113T3 (es)
HU (1) HUE027046T2 (es)
WO (1) WO2012108943A1 (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110153337A1 (en) * 2009-12-17 2011-06-23 Electronics And Telecommunications Research Institute Encoding apparatus and method and decoding apparatus and method of audio/voice signal processing apparatus
US9767822B2 (en) 2011-02-07 2017-09-19 Qualcomm Incorporated Devices for encoding and decoding a watermarked signal
US9767823B2 (en) 2011-02-07 2017-09-19 Qualcomm Incorporated Devices for encoding and detecting a watermarked signal
RU2505868C2 (ru) * 2011-12-07 2014-01-27 Ооо "Цифрасофт" Способ встраивания цифровой информации в аудиосигнал
US8806558B1 (en) * 2013-09-20 2014-08-12 Limelight Networks, Inc. Unique watermarking of content objects according to end user identity
US9191516B2 (en) 2013-02-20 2015-11-17 Qualcomm Incorporated Teleconferencing using steganographically-embedded audio data
WO2015038546A1 (en) * 2013-09-12 2015-03-19 Dolby Laboratories Licensing Corporation Selective watermarking of channels of multichannel audio
US9293143B2 (en) 2013-12-11 2016-03-22 Qualcomm Incorporated Bandwidth extension mode selection
US9426525B2 (en) 2013-12-31 2016-08-23 The Nielsen Company (Us), Llc. Methods and apparatus to count people in an audience
US10410643B2 (en) * 2014-07-15 2019-09-10 The Nielson Company (Us), Llc Audio watermarking for people monitoring
CN109841216B (zh) * 2018-12-26 2020-12-15 珠海格力电器股份有限公司 语音数据的处理方法、装置和智能终端

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6418424B1 (en) * 1991-12-23 2002-07-09 Steven M. Hoffberg Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US6266419B1 (en) * 1997-07-03 2001-07-24 At&T Corp. Custom character-coding compression for encoding and watermarking media content
US6330672B1 (en) * 1997-12-03 2001-12-11 At&T Corp. Method and apparatus for watermarking digital bitstreams
US6332030B1 (en) * 1998-01-15 2001-12-18 The Regents Of The University Of California Method for embedding and extracting digital data in images and video
JP2005506584A (ja) * 2001-10-25 2005-03-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 減少された帯域幅の伝送路上での広帯域オーディオ信号の伝送方法
US20030101049A1 (en) * 2001-11-26 2003-05-29 Nokia Corporation Method for stealing speech data frames for signalling purposes
JP4330346B2 (ja) * 2002-02-04 2009-09-16 富士通株式会社 音声符号に対するデータ埋め込み/抽出方法および装置並びにシステム
JP4578145B2 (ja) * 2003-04-30 2010-11-10 パナソニック株式会社 音声符号化装置、音声復号化装置及びこれらの方法
JP4527369B2 (ja) * 2003-07-31 2010-08-18 富士通株式会社 データ埋め込み装置及びデータ抽出装置
JP4625841B2 (ja) * 2004-06-14 2011-02-02 ザ・ユニバーシティ・オブ・ノース・カロライナ・アット・グリーンズボロ デジタルコンテンツセキュリティのためのシステムおよび方法
US7644281B2 (en) * 2004-09-27 2010-01-05 Universite De Geneve Character and vector graphics watermark for structured electronic documents security
JP4531653B2 (ja) * 2005-08-05 2010-08-25 大日本印刷株式会社 音響信号からの情報の抽出装置
US20070217626A1 (en) * 2006-03-17 2007-09-20 University Of Rochester Watermark Synchronization System and Method for Embedding in Features Tolerant to Errors in Feature Estimates at Receiver
WO2008045950A2 (en) * 2006-10-11 2008-04-17 Nielsen Media Research, Inc. Methods and apparatus for embedding codes in compressed audio data streams
US8054969B2 (en) * 2007-02-15 2011-11-08 Avaya Inc. Transmission of a digital message interspersed throughout a compressed information signal

Also Published As

Publication number Publication date
US20120203561A1 (en) 2012-08-09
WO2012108943A8 (en) 2013-02-07
BR112013020010A2 (pt) 2017-03-21
JP2014509409A (ja) 2014-04-17
KR101548846B1 (ko) 2015-08-31
CN103299365A (zh) 2013-09-11
JP5797780B2 (ja) 2015-10-21
KR20130126700A (ko) 2013-11-20
US8880404B2 (en) 2014-11-04
HUE027046T2 (en) 2016-08-29
EP2673769B1 (en) 2016-02-24
CN103299365B (zh) 2015-05-20
EP2673769A1 (en) 2013-12-18
WO2012108943A1 (en) 2012-08-16

Similar Documents

Publication Publication Date Title
ES2573113T3 (es) Dispositivos, procedimientos y producto de programa de ordenador para codificar y descodificar adaptativamente una señal con marcas de agua
ES2566103T3 (es) Procedimiento, programa informático y aparato para detectar una señal con marca de agua y descodificar una señal de voz o de audio
JP6768886B2 (ja) 冗長フレーム情報を通信するシステムおよび方法
ES2544538T3 (es) Dispositivos, procedimientos, programa de ordenador para generar y decodificar una señal de audio con marca de agua
ES2576232T3 (es) Clasificación de señal de múltiples modos de codificación
RU2434333C2 (ru) Устройство и способ передачи последовательности пакетов данных и декодер и аппаратура для распознавания последовательности пакетов данных