BRPI0615709B1 - Método e dispositivo de quantificação de vetores ao nível n, método e dispositivo para a recuperação de vetores de reprodução, sistema para a transferência de representaçõesde vetores, método e dispositivo para a determinação de um livro de código conjunto - Google Patents

Método e dispositivo de quantificação de vetores ao nível n, método e dispositivo para a recuperação de vetores de reprodução, sistema para a transferência de representaçõesde vetores, método e dispositivo para a determinação de um livro de código conjunto Download PDF

Info

Publication number
BRPI0615709B1
BRPI0615709B1 BRPI0615709-2A BRPI0615709A BRPI0615709B1 BR PI0615709 B1 BRPI0615709 B1 BR PI0615709B1 BR PI0615709 A BRPI0615709 A BR PI0615709A BR PI0615709 B1 BRPI0615709 B1 BR PI0615709B1
Authority
BR
Brazil
Prior art keywords
vectors
reproduction
codebook
vector
code book
Prior art date
Application number
BRPI0615709-2A
Other languages
English (en)
Inventor
Adriana Vasilache
Anssi Rämö
Original Assignee
Nokia Technologies Oy
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=37697832&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI0615709(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Nokia Technologies Oy filed Critical Nokia Technologies Oy
Publication of BRPI0615709A2 publication Critical patent/BRPI0615709A2/pt
Publication of BRPI0615709B1 publication Critical patent/BRPI0615709B1/pt

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0004Design or structure of the 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
    • G10L2019/0001Codebooks
    • G10L2019/0007Codebook element generation

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)
  • Theoretical Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

método de quantificação de vetores ao nível n; dispositivo para a quantificação de vetores ao nível n; produto de aplicação de software; método para a recuperação de vetores de reprodução para vetores que tenham sido quantificados ao nível n; dispositivo para a recuperação de vetores de reprodução para vetores que tenham sido quantificados ao nível n; sistema para atransferência de representações de vetores; método para a determinação de um livro de código conjunto de vetores de reprodução m para uso em uma quantificação ao nível n de vetores; dispositivo para a determinação de um livro de código conjunto de vetores de reprodução m para uso em uma quantificação ao nível n de vetores; e livro de código conjunto para uso em uma quantificação de vetores ao nível n. trata-se de um método, a um dispositivo e a um produto de aplicação de software para a quantificação de vetores ao nível v, em que n é selecionável, antes da quantificação, de um conjunto de pelo menos dois valores predefinidos que são inferiores ou iguais a um número máximo predefinido de níveis m. um vetor de reprodução para cada vetor é selecionado de um livro de código de nivel v de vetores de reprodução n que são, para cada n no conjunto de pelo menos dois valores predefinidos, representados pelos primeiros vetores de reprodução n do mesmo livro de código conjunto de vetores de reprodução m. a invenção se refere ainda a um método, a um dispositivo e a um produto de aplicação de software para a recuperação de vetores de reprodução para vetores que foram quantificados ao nível v, para um sistema para transferir representações de vetores, a um método, um dispositivo e um produto de aplicação de software para a determinação de um livro de código conjunto, e a um tal livro de código conjunto propriamente dito.

Description

Campo da Invenção
A presente invenção refere-se a um método, um dispositivo, bem como a um produto de aplicação de software para uma quantificação vetorial de nível N, onde N 10 pode ser selecionado antes da dita quantificação a partir de um conjunto de pelo menos dois valores predefinidos menores que ou iguais a um número máximo de níveis M predeterminado. A presente invenção se refere ainda a um método, um dispositivo, bem como a um produto de programa de computador para a recuperação de vetores de reprodução para os vetores que foram quantificados no nível N, a um 15 sistema para a transparência de representações vetoriais, a um método, um dispositivo, bem como a um produto de aplicação de software para a determinação de um livro de código (livro-código) para ser utilizado em tal quantificação, e no próprio livro de código.
Fundamentos da Invenção
Os algoritmos de codificação de áudio e voz têm uma ampla variedade de aplicações nos sistemas de comunicação, de multimídia e de
Petição 870190016915, de 19/02/2019, pág. 8/18
2/46 armazenamento. O desenvolvimento de tais algoritmos de codificação é motivado pela necessidade de poupar capacidade de transmissão e armazenamento, mantendo uma alta qualidade do sinal codificado. A complexidade do codificador é limitada pela força de processamento da plataforma de aplicação. Em algumas aplicações, como, por exemplo, no armazenamento de voz, o codificador pode ser altamente complexo, enquanto o decodificador deverá ser o mais simples possível.
Em um codificador de voz típico, um sinal de voz de entrada é processado em segmentos, chamados quadros. Normalmente, o tamanho de quadro é de 10-30 ms, e um segmento dianteiro de 5-15 ms do quadro subseqüente encontra-se também disponível. O quadro pode ainda ser dividido em uma série de sub-quadros. Para cada quadro, o codificador determina uma representação paramétrica do sinal de entrada, por exemplo, pela Codificação Preditiva Linear (LPC). Os parâmetros obtidos são quantificados e transmitidos através de um canal de comunicação, ou armazenados em um meio de armazenamento em uma forma digital. Na extremidade receptora, o decodificador constrói um sinal sintetizado baseado nos parâmetros recebidos.
Neste caso, os coeficientes de codificação LPC (ou as Freqüências de Espectro de Linha (LSF) correspondentes) obtidos pela codificação LPC são hoje em dia geralmente quantificados com uma Quantificação Vetorial (VQ) por meio do empilhamento dos coeficientes de codificação LPC / freqüência LSF em um vetor. Do mesmo modo, também os parâmetros relacionados ao sinal de excitação (por exemplo, os parâmetros de ganho, de densidade horizontal ou de voz) dentre vários quadros ou sub-quadros subseqüentes podem ser quantificados por meio de uma quantificação VQ.
A quantificação VQ é um método de compactação de dados com perda baseado no princípio da codificação de blocos. Em uma quantificação VQ de nível N, os vetores são quantificados por meio da seleção, a partir de um livro de código contendo os vetores de reprodução N (as chamadas palavras código), dos vetores de reprodução que provocam a menor distorção com relação aos vetores (sendo a dita distorção determinada por uma medida de distorção
3/46
I adequada, como, por exemplo, a distância euclidiana ou a distância euclidiana quadrada, para citar apenas alguns exemplos). Esses vetores de reprodução selecionados podem ser exclusivamente identificados pelos respectivos identificadores. Quando os vetores quantificados devem ser transmitidos através 5 de um canal de transmissão e, quando o livro de código é conhecido em um local receptor, o mesmo pode então ser suficiente para trocar apenas os identificadores entre o quantificador no local de transmissão e uma unidade no local de recepção que deve recuperar o vetor de reprodução selecionado para um vetor no local de
I*· transmissão. Esta unidade então simplesmente recupera o vetor de reprodução 10 identificado pelo identificador do livro de código. Frequentemente, N é escolhido para ser uma potência de 2 e, em seguida, palavras binárias de um comprimento de palavra n = Iog2 (N) podem ser utilizadas como identificadores para os vetores de reprodução. O tamanho de palavra n, então é proporcional à taxa de bits de saída do quantificador. Com o aumento do tamanho de palavra η, o número de 15 níveis N = 2 e, assim, a resolução do quantificador aumenta, mas também a taxa de bits de saída do quantificador aumenta.
A quantificação dos parâmetros requer livros de código, que contêm vetores de reprodução otimizados para a tarefa de quantificação. Antes, a concepção de livros de código para a quantificação VQ era considerada uma 20 tarefa difícil, devido à necessidade de uma integração multidimensional. Em 1980, Linde, Buzo e Gray (LBG) propôs o chamado algoritmo de LBG para gerar livros de código baseados em uma seqüência de vetores de treinamento (ver Linde, Y., Buzo, A. e Gray, R. M., An algoritm for Vector Quantification, IEEE Transactions in Communications, vol. 28, N° 1, Janeiro de 1980). A utilização de uma seqüência 25 de vetores de treinamento ultrapassa a necessidade de integração multidimensional. O algoritmo de LBG pode ser considerado como uma generalização multidimensional do clássico algoritmo de Lloyd, que é adequado para a construção de livros de código para uma quantificação escalar.
O algoritmo de LBG produz um livro de código para um número 30 desejado de níveis N. Se no mesmo codec, vários números de níveis N têm de ser
4/46 suportados e, em seguida, para cada número de níveis N, um respectivo livro de código tem de ser treinado, e armazenado em ambos o quantificador e em uma unidade que é usada para recuperar os vetores de reprodução a partir dos identificadores dos vetores de reprodução. Essa necessidade de vários números de níveis N pode, por exemplo, surgir na codificação de cenários nos quais está envolvida a transmissão para terminais com diferentes capacidades de armazenamento e processamento, ou quando as características do canal de transmissão são variantes no tempo, ou quando a taxa de bits totalmente disponível é dinamicamente alocada entre a fonte e a codificação de canal, para citar apenas alguns exemplos. O armazenamento dos respectivos livros de código para vários números diferentes de níveis N aumenta desvantajosamente as exigências de memória de ambos o quantificador e uma unidade para a recuperação dos vetores de reprodução que foram quantificados, aumentando, assim, o tamanho e os custos. Além disso, a estrutura do quantificador e da unidade de recuperação de vetor de reprodução torna-se tolhida, uma vez que o acesso a vários livros de código tem de ser controlado.
O documento da técnica anterior, de autoria de Haoui, A. e Messerschmitt, D. G.: Embedded Coding of Speech: A Vector Quantification Approach, Proceedinqs IEEE International Conference on Accoustics, Speech and Siqnal Processinq (ICASSP), de abril de 1985, vol. 10, pp. 1703-1706, se refere a codificadores de voz embutidos. Um codificador de voz embutido é um codificador de fonte com a propriedade de que a fidelidade de sua reprodução do sinal de entrada se degrada graciosamente conforme a taxa de bits é reduzida em etapas a partir de uma taxa máxima para uma taxa mínima. Neste caso, o codificador não conhece a verdadeira taxa de bits que está sendo transmitida, e só conhece a ordem na qual os bits serão descartados (por exemplo, o fluxo de bits transmitido pode ser orientado em byte, com os bits descartados em ordem, do menos para o mais significante). Um livro de código é projetado para a taxa máxima, e a quantificação é sempre feita para um número fixo de níveis que corresponde a esta taxa máxima, independentemente do número de bits que serão descartados
5/46 durante a transmissão (deste modo, afetando a real taxa de bits). Para ter em conta o descarte de bits, por exemplo, é proposto atribuir duas palavras binárias que diferem apenas no bit menos significativo para as duas palavras código que ficam próximos um dos outro na distância euclidiana de modo que a substituição do bit menos significativo por zero levará a um pequeno aumento do erro.
O documento da técnica anterior, de autoria de Ragot, S., Bessette,
B. e Lefebvre, R.: Low-Complexity Multi-Rate Lattice Vector Quantification with Application to Wideband TCX Speech Coding at 32 kbit/s, Proceedings IEEE Internatíonal Conference on Accoustics, Speech and Signal Processing (ICASSP), 2004, vol. 1, pp. 501-504, se refere a uma quantificação vetorial de uma grade de múltiplos níveis. Neste caso, um vetor 8-dimensional é codificado em um dentre 6 livros de código, os quais, respectiva mente, formam as conchas de uma grade de inteiros RE8. A quantificação VQ de grades é auto-escalável, ou seja, a escolha do livro de código, e, portanto, o tamanho de palavra n, dependerão do vetor a ser quantificado e não poderão, portanto, ser selecionados antes da quantificação. Os vetores do código são algebricamente construídos e, deste modo, não têm de ser treinados nem armazenados. A flexibilidade da quantificação VQ em grade é geralmente limitada pelo fato de cada livro de código ser composto de várias conchas da grade, cuja cardinalidade depende da grade. Ao se combinar várias conchas em conjunto, o tamanho dos livros de código poderá, por exemplo, ser feito uma potência de 2 ou ainda de outros números, mas não de qualquer número desejado.
Sumário da Invenção
Em virtude dos problemas acima mencionados, é, designadamente, um objeto da presente invenção prover um método aperfeiçoado, um dispositivo e um produto de aplicação de software para uma quantificação vetorial de nível N com diferentes números selecionáveis de níveis N.
É ainda um objeto da presente invenção prover um método aperfeiçoado, um dispositivo e um produto de aplicação de software para a
6/46 recuperação de vetores de reprodução que foram quantificados em níveis N com diferentes números selecionáveis de níveis Λ/.
É mais um objeto do presente invenção prover um sistema aperfeiçoado de transferência de representações de vetores.
É ainda um objeto da presente invenção prover um método aperfeiçoado, um dispositivo e um produto de aplicação de software para a determinação de um livro de código para uso em uma quantificação vetorial de nível Λ/com diferentes números selecionáveis de níveis N.
É mais um objeto do presente invenção prover um livro de código aperfeiçoado para uso em uma quantificação vetorial de nível N com diferentes números selecionáveis de níveis /V.
Primeiro Aspecto da Invenção:
De acordo com um primeiro aspecto da presente invenção, um método de quantificação vetorial de nível N é proposto, em que N é selecionável antes da dita quantificação a partir de um conjunto de pelo menos dois valores predefínidos menores que ou iguais a um número máximo predefinido de níveis M. O dito método compreende a seleção de um vetor de reprodução para cada vetor a partir de um livro de código de nível N dentre os vetores de reprodução N que são, para cada N do dito conjunto de pelo menos dois valores predefínidos, representados pelos primeiros vetores de reprodução N de um mesmo livro de código conjunto de vetores de reprodução M.
Neste caso, os ditos vetores e ditos vetores de reprodução são vetores dimensionais k, com k sendo maior que ou igual a 1, de modo que ambos os casos de quantificação escalar e vetorial possam ser objetivados. Os ditos vetores contêm dados que devem ser quantificados. Os ditos dados contidos em cada vetor podem, por exemplo, ser um conjunto de parâmetros, como, por exemplo, um conjunto de coeficientes de codificação LPC / freqüência LSF de um quadro ou subquadro de um sinal de voz ou de áudio, ou um conjunto de parâmetros de ganho, de densidade horizontal ou de voz dentre um ou mais quadros ou subquadros subseqüentes.
7/46
F
Os ditos vetores são quantificados em nível N por meio da seleção de uma um vetor de reprodução a partir de um livro de código de nível N. A dita seleção pode, por exemplo, ser regida por um critério de distorção que quantifica a distorção (por exemplo, a distância euclidiana ou a distância euclidiana quadrada, 5 ou outros critérios) entre o vetor e o vetor de reprodução e, em seguida, o vetor de reprodução que minimiza o dito critério de distorção é selecionado. Um identificador do dito vetor de reprodução selecionado, em seguida, é emitido como um resultado da quantificação e permite que uma unidade de recuperação de vetor de reprodução, tendo em conta o fato de que esta unidade conhece o dito livro de 10 código, recupere o vetor de reprodução selecionado. Neste caso, a distorção entre o dito vetor e o vetor de reprodução selecionado geralmente diminui com o aumento do número de níveis N, uma vez que com o aumento de N, o livro de código de nível N contém mais vetores de reprodução e, portanto, é capaz de cobrir de uma maneira melhor o espaço vetorial no qual o dito vetor está contido.
No entanto, com o crescente número de N, também em geral, o armazenamento e/ou a transmissão dos ditos identificadores fica mais complexa.
Neste caso, o dito número de níveis N é selecionável antes da dita quantificação (em contraste com a quantificação vetorial de grade auto-escalável da técnica anterior, na qual a quantificação é auto-escalável e determina o número 20 mais adequado de níveis durante a quantificação, com base no vetor em questão a ser quantificado) a partir de um conjunto de pelo menos dois valores predefinidos menores que ou iguais a um número máximo predeterminado de níveis M (em contraste com a codificação embutida da técnica anterior, na qual a quantificação é sempre realizada com um número fixo de níveis correspondentes à taxa de bits 25 máxima). Por exemplo, M pode ser 256, e o dito conjunto de valores predefinidos a partir dos quais o dito número de níveis N pode ser selecionado pode ser definido como {2,4,8,16,32,64128256}.
No entanto, M e/ou N não necessariamente têm de ser potências de
2, uma vez que, em algumas aplicações de quantificação, pode ser mais eficiente 30 se usar livros de código compreendendo uma série de vetores de reprodução que
8/46 não uma potência de 2, por exemplo, quando, como um identificador do dito vetor de reprodução selecionado, nenhuma palavra binária de comprimento n = log2 (N) é usada. M pode então, por exemplo, ser qualquer número inteiro desejado, e N pode então ser qualquer número pretendido com 1 < N < M.
A dita seleção dos ditos números de níveis M pode, por exemplo, ser realizada por uma instância externa com relação ao dito quantificador. A dita seleção do dito número de níveis Λ/ pode, por exemplo, ser realizada na dependência das características de transmissão de um canal de transmissão através do qual as informações sobre os ditos vetores quantificados têm de ser transmitidas, ou na dependência da capacidade de armazenamento de uma unidade de armazenamento na qual as informações sobre os ditos vetores quantificados têm de ser armazenadas, para citar apenas algumas possibilidades.
De acordo com este primeiro aspecto da presente invenção, a quantificação vetorial é realizada para diferentes números de níveis N com base no mesmo livro de código conjunto. Este livro de código conjunto contém todos os livros de código de nível N exigido para as quantificações com um número diferente de níveis N <M. Para cada N, os ditos livros de código de nível N são representados pelos respectivos primeiros vetores de reprodução N do livro de código conjunto. Por exemplo, se M = 256, e se o dito conjunto predefinido de pelo menos dois valores para N é {128,256}, no caso de N = 128, os primeiros 128 vetores de reprodução do dito livro de código de vetores de reprodução M = 256 formam o livro de código para a quantificação de nível 128 e, no caso de N = 256, os primeiros 256 vetores de reprodução do dito mesmo livro de código de vetores de reprodução M = 256 formam o livro de código para a quantificação de nível 256. Torna-se prontamente evidente para uma pessoa versada na técnica que, de uma forma igual mente bem, o dito livro de código de nível N pode ser posicionado no final do livro de código conjunto, caso seja mais adequado.
Em contrapartida à técnica anterior, na qual um respectivo livro de código tem de ser construído e armazenado para cada número desejado de níveis N, de acordo com a presente invenção, apenas um livro de código conjunto tem de
9/46 ser construído e armazenado. Por exemplo, quando o número máximo de níveis M é definido para ser 256, de acordo com a presente invenção, apenas um livro de código com 256 vetores de reprodução tem de ser construído e armazenado, uma vez que o mesmo também compreende o livro de código para um número menor de níveis N, por exemplo, para N = 128, enquanto que, na técnica anterior, dois livros de código (com 256 e 128 vetores de reprodução) teriam de ser construídos e armazenados. Isto contribui substancialmente para reduzir os requisitos de armazenamento de ambos o quantificador e a unidade que recupera os vetores de reprodução dentre os vetores que foram quantificados no nível N, como também simplifica a estrutura do quantificador e de uma tal unidade, uma vez que apenas o acesso a um livro de código tem de ser controlado. A utilização de um livro de código conjunto para diferentes números de níveis N torna-se possível por meio da construção conseguinte de um livro de código conjunto. Geralmente, o número N de vetores de reprodução em cada livro de código de nível N contido no livro de código conjunto, de acordo com a presente invenção, pode ser escolhido de maneira flexível e, em especial, não se restringe à cardinalidade das conchas de grade, como no caso da quantificação VQ de grade da técnica anterior. Sendo assim, o livro de código conjunto de acordo com a presente invenção permite uma escolha particularmente flexível do número de níveis de quantificação. Um outro grau de flexibilidade é provido pela possibilidade de se selecionar a dimensão do dito vetor, de modo que tanto o caso da quantificação escalar como também o da quantificação vetorial possam ser tratados.
No método, de acordo com o primeiro aspecto da presente invenção, pode-se manter N=2n e M=2m, sendo que N e Msão valores inteiros. Limitar M e N como potências de dois pode ser particularmente vantajoso se as palavras binárias com comprimento de palavra N puderem ser usadas como identificadores dos vetores de reprodução selecionados, uma vez que uma palavra binária com comprimento i permite a indexação de vetores de reprodução diferentes 2*.
No método, de acordo com o primeiro aspecto da presente invenção, cada um dos ditos vetores de reprodução no dito nível de livro de código N pode
10/46 ser identificado por uma palavra binária de n-bit. No caso de N=2n, a dita palavra binária pode, então, indexar todos os vetores de reprodução N=2n no dito nível de livro de código N. No método, de acordo com o primeiro aspecto da presente invenção, os ditos vetores podem compreender parâmetros relacionados à Codificação Preditiva Linear de uma seqüência de dados. Os ditos parâmetros podem, por exemplo, ser coeficientes LPC/LSF que caracterizam um trato vocal durante um ou diversos quadros ou sub-quadros de um sinal de fala ou áudio e/ou parâmetros relacionados com um sinal de excitação (tal como ganho, densidade horizontal e voz) em um ou diversos quadros ou sub-quadros subsequentes do dito sinal de fala ou áudio.
No método, de acordo com o primeiro aspecto da presente invenção, a dita etapa de seleção pode ser realizada por um dispositivo de comunicação portátil. O dito dispositivo de comunicação portátil pode, por exemplo, ser um telefone celular, a Assistente Digital Pessoal (PDA), a computador portátil ou similar. Da mesma maneira, a dita etapa certamente pode ser realizada em um dispositivo de comunicação fixa, como por exemplo, estação de base ou elemento de rede de núcleo de um sistema de comunicação.
Além disso, de acordo com o primeiro aspecto da presente invenção, propõe-se um dispositivo para nível de quantificação N de vetores, onde N é selecionável antes da dita quantificação de um conjunto de pelo menos dois valores pré-definidos que são menores ou iguais a um número máximo prédefinido de níveis Μ. O dito dispositivo compreende meios para selecionar um vetor de reprodução em cada vetor de um nível de livro de código N de vetores de reprodução N que são, em cada N no dito conjunto de pelo menos dois valores pré-definidos, representados pelos primeiros vetores de reprodução N do mesmo livro de código conjugado de vetores de reprodução M.
Para este dispositivo, de acordo com o primeiro aspecto da presente invenção, aplicam-se as mesmas características e vantagens já discutidas no contexto do método.
11/46
O dito dispositivo, de acordo com o primeiro aspecto da presente invenção, pode ser um dispositivo de comunicação portátil. O dito dispositivo de comunicação portátil pode ser, por exemplo, um telefone celular, um Assistente Digital Pessoal (PDA), um computador portátil ou similar. Igualmente, o dito dispositivo pode ser, certamente, um dispositivo de comunicação fixa, como por exemplo, uma estação de base ou elemento de rede de núcleo de um sistema de comunicação.
Além disso, de acordo com o primeiro aspecto da presente invenção, propõe-se um produto de aplicação de software que compreende um meio de armazenamento que possui uma aplicação de software para o nível de quantificação N de vetores embutidos no mesmo, onde N é selecionável antes da dita quantificação de um conjunto de pelo menos dois valores pré-definidos que são menores ou iguais a um número máximo pré-definido de níveis Μ. A dita aplicação de software compreende um código de programa para selecionar um vetor de reprodução para cada vetor de um nível de livro de código N de vetores de reprodução N que são, para cada N no dito conjunto de pelo menos dois valores pré-definidos, representados pelos primeiros vetores de reprodução N do mesmo livro de código conjugado de vetores de reprodução Μ. O dito meio de armazenamento pode ser qualquer elemento de memória ou armazenamento volátil ou não volátil, tais como, por exemplo, uma Memória Somente Leitura (ROM), Memória de Acesso Aleatório (RAM), um cartão de memória e um disco óptica, elétrica ou magneticamente legível. O dito código de programa contido na dita aplicação de software pode ser executado em uma linguagem de programação processual ou orientada por objeto de alto nível para se comunicar com um sistema de computador ou em linguagem de montagem ou máquina para se comunicar com um processador digital. De qualquer maneira, o dito código de programa pode ser um código compilado ou interpretado.
Para este produto de aplicação de software, de acordo com o primeiro aspecto da presente invenção, aplicam-se as mesmas características e vantagens já discutidas no contexto do método.
12/46
Segundo Aspecto da Invenção
De acordo com um segundo aspecto da presente invenção, propõese um método para recuperar vetores de reprodução para os vetores que foram quantificados em nível N, onde N é selecionável antes de uma quantificação dos ditos vetores de um conjunto de pelo menos dois valores pré-definidos que são menores ou iguais a um número máximo pré-definido de níveis Μ. O dito método compreende receber um identificador de um vetor de reprodução que foi selecionado para um vetor na dita quantificação; e recuperar, com base no dito identificador, o dito vetor de reprodução de um nível de livro de código N de vetores de reprodução N que são, para cada N no dito conjunto de pelo menos dois valores pré-definidos, representados pelos primeiros vetores de reprodução N do mesmo livro de código conjugado de vetores de reprodução M.
Neste particular, deve-se notar que a descrição dos vetores e dos vetores de reprodução, da seleção dos inúmeros níveis N é da seleção do vetor de reprodução para cada vetor apresentado no contexto do primeiro aspecto da presente invenção também se aplica ao segundo aspecto da presente invenção.
Os ditos vetores foram quantificados selecionando-se um vetor de reprodução de um nível de livro de código N, de acordo com um critério de distorção, conforme descrito, por exemplo, no contexto do primeiro aspecto da presente invenção. Este vetor de reprodução é identificado por um identificador, que pode ser, por exemplo, uma palavra binária de n-bit e que pode ser, por exemplo, transmitida através de um canal de transmissão para um dispositivo que realiza o método de acordo com o segundo aspecto da presente invenção. Mediante a recepção do dito identificador e com base no dito identificador, o vetor de reprodução correspondente é recuperado a partir do nível de livro de código N que é representado pelos primeiros vetores de reprodução N do dito livro de código conjugado. O fato de que para todos os N que são selecionáveis para a dita quantificação, os níveis de livros de código N correspondentes são contidos no dito livro de código conjugado reduz amplamente a capacidade de armazenamento que é requerida em uma unidade que realiza o método, de acordo com o segundo
13/46 aspecto da presente invenção. Além disso, a operação desta unidade é simplificada, já que se requer somente o acesso a um único livro de código (o livro de código conjugado) e não a uma pluralidade de livros de código.
Além disso, de acordo com o segundo aspecto da presente invenção, propõe-se um dispositivo para recuperar vetores de reprodução para vetores que foram quantificados em nível N, onde N é selecionável antes de uma quantificação dos ditos vetores de um conjunto de pelo menos dois valores pré-definidos que são menores ou iguais a um número máximo pré-definido de níveis Μ. O dito dispositivo compreende meios para receber um identificador de um vetor de reprodução que foi selecionado para um vetor na dita quantificação; e meios para recuperar com base no dito identificador, o dito vetor de reprodução de um livro de código de nível Λ/ de vetores de reprodução /V que são, para cada Λ/ no dito conjunto de pelo menos dois valores pré-definidos, representados pelos primeiros vetores de reprodução N do mesmo livro de código conjugado de vetores de reprodução M.
Além disso, de acordo com o segundo aspecto da presente invenção, propõe-se um produto de aplicação de software que compreende um meio de armazenamento que tem uma aplicação de software para recuperar vetores de reprodução para os vetores que foram quantificados em nível N embutidos neste, onde N é selecionável antes de uma quantificação dos ditos vetores de um conjunto de pelo menos dois valores pré-definidos que são menores ou iguais a um número máximo pré-definido de níveis Μ. A dita aplicação de software compreende um código de programa para receber um identificador de um vetor de reprodução que foi selecionado para um vetor na dita quantificação e o código de programa para recuperar, com base no dito identificador, o dito vetor de reprodução de um nível de livro de código N de vetores de reprodução N que são, para cada N no dito conjunto de pelo menos dois valores pré-definidos, representados pelos primeiros vetores de reprodução N do mesmo livro de código conjugado de vetores de reprodução M.
14/46
O dito meio de armazenamento pode ser qualquer elemento de memória ou armazenamento volátil ou não volátil, tais como, por exemplo, uma Memória Somente Leitura (ROM), uma Memória de Acesso Aleatório (RAM), um cartão de memória e um disco óptica, elétrica ou magneticamente legível. O dito código de programa contido na dita aplicação de software pode ser executado em uma linguagem de programação processual ou orientada por objeto de alto nível para se comunicar com um sistema de computador ou em linguagem de montagem ou máquina para se comunicar com um processador digital. De qualquer maneira, o dito código de programa pode ser um código compilado ou interpretado.
Terceiro Aspecto da Invenção
De acordo com um terceiro aspecto da presente invenção, propõe-se um sistema para transferir representações de vetores. O sistema compreende meios para selecionar um vetor de reprodução para cada vetor de um nível de livro de código N de vetores de reprodução N, onde N é selecionável antes da dita seleção de um conjunto de pelo menos dois valores pré-definidos que são menores ou iguais a um número máximo pré-definido de níveis M e, onde os ditos vetores de reprodução N são, para cada N no dito conjunto de pelo menos dois valores pré-definidos, representados pelos primeiros vetores de reprodução N de um primeiro livro de código conjugado de vetores de reprodução M; meios para transmitir um identificador do dito vetor de reprodução selecionado através de um canal de transmissão; meios para receber o dito identificador e meios para recuperar, com base no dito identificador, o dito vetor de reprodução de um nível de livro de código N de vetores de reprodução N representados pelos primeiros vetores de reprodução N de um segundo livro de código conjugado de vetores de reprodução M que iguala o dito primeiro livro de código conjugado.
Neste particular, deve-se notar que a descrição dos vetores e dos vetores de reprodução, da seleção dos inúmeros níveis N e da seleção do vetor de reprodução para cada vetor apresentado no contexto do primeiro aspecto da presente invenção também se aplica ao terceiro aspecto da presente invenção.
15/46
Selecionando-se um vetor de reprodução para cada vetor de um nível de livro de código N que é contido no dito primeiro livro de código conjugado e transmitir um identificador somente do dito vetor de reprodução, tal como, por exemplo, uma palavra binária de n-bit com n=log2 (N), obtém-se uma transferência particularmente eficiente de uma representação do dito vetor (isto é, o dito vetor de reprodução ou seu identificador correspondente), uma vez que a informação sobre o identificador ativa uma unidade que recebe o dito identificador para recuperar o dito vetor de reprodução de um nível de livro de código N correspondente contido no dito segundo livro de código conjugado (que iguala o dito primeiro livro de código). Neste particular, a distorção do vetor que é causada pelo fato de que os vetores de reprodução se originam de um livro de código com um número limitado de vetores de reprodução e, deste modo, geralmente se diferem do dito vetor, diminui com o aumento de N, considerando que o comprimento de palavra da palavra binária de n-bit aumenta. Deste modo, através de N, pode-se controlar a permutação entre a precisão e a capacidade de transmissão requerida.
A dita seleção do dito vetor de reprodução (isto é, a dita quantificação do vetor) pode ocorrer, por exemplo, em um transmissor em uma rede de comunicação, tal como, um sistema de rádio móvel, e a dita recuperação do dito vetor de reprodução, então, pode ser realizada em um receptor na dita rede de comunicação. Um canai de transmissão entre o dito transmissor e o dito receptor pode ser um canal de transmissão com ou sem fio. O dito canal de transmissão também pode ser entendido como uma representação de um meio de armazenamento no qual o dito identificador do dito vetor de reprodução é armazenado no site transmissor e lido no site receptor. Além disso, o dito identificador pode ser submetido a uma codificação de canal ou processamento adicional antes de ser transmitido.
Quarto Aspecto da Invenção
De acordo com um quarto aspecto da presente invenção, propõe-se um método para determinar um livro de código conjugado de vetores de reprodução M para uso em uma quantificação de vetores de nível N, onde M é um
16/46 número máximo pré-definido de níveis, onde /V é selecionável antes da dita quantificação de um conjunto de pelo menos dois valores pré-definidos que são menores ou iguais a M, e onde na dita quantificação, um vetor de reprodução para cada vetor é selecionado a partir de um nível de livro de código N de vetores de reprodução N que são, para cada N no dito conjunto de pelo menos dois valores pré-definidos, representados pelos primeiros vetores de reprodução N do dito livro de código conjugado. O dito método compreende a geração dos ditos vetores de reprodução por um algoritmo de treinamento baseado, pelo menos parcialmente, em uma pluralidade de vetores de treinamento; e dispõe os ditos vetores de reprodução gerados no dito livro de código conjugado de acordo com um algoritmo de ajuste, de modo que para cada N, os primeiros vetores de reprodução N no dito conjunto de vetores de reprodução M formem um nível de livro de código N que permita uma distorção média pequena dos ditos vetores quando usados na dita quantificação dos ditos vetores.
Neste particular, deve-se notar que a descrição dos vetores e dos vetores de reprodução, da seleção dos inúmeros níveis N e da seleção do vetor de reprodução para cada vetor apresentado no contexto do primeiro aspecto da presente invenção também se aplica ao quarto aspecto da presente invenção.
O livro de código conjugado determinado pelo dito método, de acordo com o quarto aspecto da presente invenção, então, pode ser armazenado, por exemplo, em uma memória de um dispositivo que usa um quantificador e/ou uma unidade que recupera os vetores de reprodução de vetores que foram quantificados em nível N. O ajuste específico dos vetores de reprodução M no dito livro de código conjugado, de acordo com dito algoritmo de ajuste, permite que o dito livro de código conjugado seja usado como um único livro de código para a quantificação de vetores com números diferentes selecionáveis de níveis NíMe, deste modo, contribui com a economia de memória no quantificador e em uma unidade de recuperação de vetor de reprodução.
O dito algoritmo de treinamento produz um conjunto de vetores de reprodução L baseado pelo menos parcial mente na dita pluralidade de vetores de
17/46 treinamento, onde L pode ser arbitrariamente selecionado. O dito algoritmo de treinamento pode ser, por exemplo, um algoritmo LBG ou qualquer outro tipo de algoritmo de treinamento do livro de código. Uma forma do algoritmo LBG consiste no algoritmo LBG para uma distribuição desconhecida dos vetores, como proposta na referência da técnica anterior de Linde et al. citada na parte aberta desta especificação de patente. Além da dita pluralidade de vetores de treinamento, o dito algoritmo pode ser dotado de um ou mais vetores de reprodução que devem ser considerados fixos durante a dita geração do dito conjunto de vetores de reprodução L.
A dita etapa de geração dos ditos vetores de reprodução não precisa ser necessariamente realizada somente uma vez para se obter todos os vetores de reprodução M, a mesma pode ser igualmente realizada diversas vezes (por exemplo, com números crescentes de vetores de reprodução sendo gerados a cada vez).
O dito algoritmo de ajuste tem como objetivo para cada N, os primeiros vetores de reprodução N no dito conjunto de vetores de reprodução M que formam um nível de livro de código N que permite uma distorção média pequena dos ditos vetores quando usada no dito nível de quantificação N dos ditos vetores. Neste particular, a dita distorção quantifica um desvio do vetor a partir do vetor de reprodução que é selecionado a partir do nível de livro de código N na dita quantificação do dito vetor. De acordo com o algoritmo de ajuste usado, os livros de código de vetores de reprodução diferentes M podem ser produzidos. Além disso, é prontamente claro que, com os números crescentes de níveis N (isto é, números crescentes de vetores de reprodução no nível de livro de código N) , a distorção média dos ditos vetores diminui devido à disponibilidade de um número aumentado de vetores de reprodução no nível de livro de código N. Deste modo, por exemplo, uma distorção média realizável com um livro de código com 64 vetores de reprodução pode ser significativamente maior que uma distorção média realizável com um livro de código com 128 vetores de reprodução, mas ainda pode
18/46 ser considerada pequena dentro do contexto do livro de código com 64 vetores de reprodução.
No dito método de acordo com o quarto aspecto da presente invenção, pode-se manter N=2n e M=2m, sendo que Ne M são valores inteiros. Isto pode ser particularmente vantajoso se as palavras binárias com comprimento de palavra N puderem ser usadas como identificadores dos vetores de reprodução selecionados, uma vez que uma palavra binária com comprimento i permite a indexação de vetores de reprodução diferentes 2' e, deste modo, representa um meio eficiente para transferir e armazenar informações nos vetores de reprodução selecionados.
Uma primeira modalidade do método de acordo com o quarto aspecto da presente invenção compreende gerar de um livro de código inicial de vetores de reprodução M pelo dito algoritmo de treinamento: gerar um livro de código de dois níveis de dois vetores de reprodução pelo dito algoritmo de treinamento; selecionar os dois vetores de reprodução a partir do dito livro de código inicial que sejam mais similares aos ditos dois vetores de reprodução no dito livro de código de dois níveis; copiar os ditos dois vetores de reprodução selecionados a partir do dito livro de código inicial para as primeiras duas posições no dito livro de código conjugado e apagar os ditos dois vetores de reprodução selecionados do dito livro de código inicial; e repetir, para 1 < i < m, as seguintes etapas: gerar um livro de código com I níveis de vetores de reprodução l=2f pelo dito algoritmo de treinamento; identificar estes vetores de reprodução I/2 a partir do dito livro de código com I níveis que sejam mais similares aos ditos vetores de reprodução I/2 já copiados ao dito livro de código conjugado; para os vetores de reprodução i/2 restantes não-identificados no dito livro de código com I níveis, selecionar os vetores de reprodução i/2 a partir do dito livro de código inicial que sejam mais similares aos ditos vetores de reprodução l/2 restantes nãoidentificados; e copiar os ditos vetores de reprodução I/2 selecionados a partir do dito livro de código inicial para as próximas posições livres, em lógica crescente no
19/46 dito livro de código conjugado e apagar os ditos vetores de reprodução i/2 selecionados a partir do dito livro de código inicial.
Nesta primeira modalidade, onde se supõe que N e M sejam potências de 2, primeiramente, todos os vetores de reprodução M (o livro de código inicial) são gerados de uma vez só pelo dito algoritmo de treinamento com base em uma pluralidade de vetores de treinamento, e, depois, os vetores de reprodução gerados são sequencialmente dispostos no dito livro de código conjugado, onde a dita disposição, para cada estágio i do algoritmo, compreende a geração de livros de código de vetores de reprodução I pelo dito algoritmo de treinamento de modo a permitir uma orientação no melhor livro de código respectivo do dito estágio i. Nesse particular, avalia-se a semelhança dos vetores por meio de um critério de semelhança, que pode, por exemplo, ser a distância euclidiana entre os vetores ou a distância euclidiana quadrática, para citar alguns.
Uma segunda modalidade do método de acordo com to quarto aspecto da presente invenção compreende gerar um livro de código de dois níveis de dois vetores de reprodução pelo dito algoritmo de treinamento; copiar os ditos dois vetores de reprodução a partir do dito livro de código de dois níveis para as primeiras duas posições no dito livro de código conjugado; e repetir para 1 < i m, as seguintes etapas: gerar um Livro de código com I níveis de vetores de reprodução 1=2* pelo dito algoritmo de treinamento, onde no dito algoritmo de treinamento, os vetores de reprodução 1/2 já copiados para o dito livro de código conjugado formam a primeira parte de um livro de código de vetores de reprodução I, que serve como uma inicialização do dito Livro de código com I níveis gerado pelo dito algoritmo de treinamento, e se supõe que sejam fixos ao longo de todo o dito algoritmo de treinamento; e copiar os últimos vetores de reprodução 1/2 do dito livro de código com I níveis gerado para as próximas posições 1/2 livres aumentando a lógica no dito livro de código conjugado.
Nesta segunda modalidade, onde se supõe que N e M sejam potências de 2, os vetores de reprodução para o dito livro de código conjugado não são gerados de uma só vez, porém, sequencialmente em blocos de tamanho
20/46
Ι/2. Nesse particular, os graus de liberdade do algoritmo de treinamento na geração de um livro de código de vetores de reprodução I são limitados dotandose o algoritmo de treinamento de primeiros vetores de reprodução I/2 do dito livro de código e exigindo que estes vetores de reprodução permaneçam fixos durante a geração dos vetores de reprodução I/2 restantes. Como uma alternativa à cópia dos últimos vetores de reprodução I/2 do livro de código gerado para as próximas posições I/2 livres no livro de código conjugado, naturalmente, todo o livro de código gerado (compreendendo vetores de reprodução I) poderia, também, ser copiado para as primeiras posições I no livro de código.
Uma primeira alternativa de uma terceira modalidade do método de acordo com o quarto aspecto da presente invenção compreende gerar um livro de código inicial de vetores de reprodução M pelo dito algoritmo de treinamento com base em uma pluralidade de vetores de treinamento; selecionar, a partir do dito livro de código inicial, os dois vetores de reprodução que sejam mais diferentes entre si; copiar os ditos dois vetores de reprodução selecionados a partir do livro de código inicial para as primeiras duas posições no dito livro de código conjugado e apagar os ditos dois vetores de reprodução selecionados a partir do dito livro de código inicial; e repetir, embora o dito livro de código inicial seja não-vazio, as seguintes etapas: selecionar o vetor de reprodução a partir do dito livro de código inicial que seja mais diferente em relação a todos os vetores de reprodução já copiados ao dito livro de código conjugado; copiar o dito vetor de reprodução selecionado a partir do dito livro de código inicial para a próxima posição, em lógica crescente no dito livro de código conjugado e apagando o dito vetor de reprodução selecionado a partir do dito livro de código inicial.
Uma segunda alternativa da terceira modalidade do método de acordo com o quarto aspecto da presente invenção compreende gerar um livro de código inicial de vetores de reprodução M pelo dito algoritmo de treinamento com base em uma pluralidade de vetores de treinamento; selecionar, a partir do dito livro de código inicial, o vetor de reprodução que seja mais similar a todos os ditos vetores de treinamento; copiar o dito vetor de reprodução selecionado a partir do
21/46 dito livro de código inicial para a primeira posição no dito livro de código conjugado e apagar o dito vetor de reprodução selecionado a partir do dito livro de código inicial; e repetir, embora o dito livro de código inicial seja não-vazio, as seguintes etapas: selecionar o vetor de reprodução a partir do dito livro de código inicial que seja mais diferentes em relação a todos os vetores de reprodução já copiados ao dito livro de código conjugado; copiar o dito vetor de reprodução selecionado a partir do dito livro de código inicial para a próxima posição livre, em lógica crescente no dito livro de código conjugado e apagando o dito vetor de reprodução selecionado a partir do dito livro de código inicial.
Nesta terceira modalidade, primeiramente, todos os vetores de reprodução M (o livro de código inicial) são gerados de uma só vez pelo dito algoritmo de treinamento com base nos dados de treinamento, e, depois, os vetores de reprodução gerados são sequencialmente dispostos no dito livro de código conjugado, onde se tenta dispor os vetores de reprodução a partir do dito livro de código inicial no dito livro de código conjugado com diminuição do grau de diferença, contados do início do dito livro de código conjugado, de tal modo que a maior parte dos vetores de reprodução diferentes fiquem posicionados no início do livro de código conjugado. Nesse particular, a diferença entre os vetores é avaliada com base em um critério de diferença, como, por exemplo, a distância Euclidiana entre os vetores ou a distância Euclidiana quadrática, para citar alguns. De acordo com a primeira alternativa, os dois vetores de reprodução no dito livro de código inicial que são mais diferentes entre si são copiados para as primeiras duas posições no dito livro de código conjugado, enquanto que, de acordo com a segunda alternativa, o vetor de reprodução a partir do dito livro de código inicial que seja mais similar a todos os vetores de treinamento na dita pluralidade de vetores de treinamento é copiado para a primeira posição no dito livro de código conjugado.
Nesta terceira modalidade, pode ser benéfico impor alguns limites de tal modo que os vetores de reprodução muito rara mente usados não se tornem as primeiras entradas no livro de código conjugado. Isso pode, por exemplo, ser
22/46 realizado exigindo-se que a magnitude dos componentes do vetor de reprodução não exceda certo limite, onde este limite pode ser pequeno para os vetores de
reprodução no início do livro de código conjugado e pode ser aumentado em direção ao fim do livro de código conjugado.
Uma quarta modalidade do método de acordo com o quarto aspecto da presente invenção compreende gerar um livro de código inicial de vetores de reprodução M pelo dito algoritmo de treinamento; repetir, embora o dito livro de código inicial seja não-vazio, as seguintes etapas: selecionar os dois vetores de reprodução a partir do dito livro de código inicial que sejam mais similares entre si; copiar o primeiro dos ditos dois vetores de reprodução selecionados a partir do dito livro de código inicial para a próxima posição livre, em lógica decrescente que se inicia a partir da última posição, no dito livro de código conjugado e apagando o dito primeiro dos ditos dois vetores de reprodução selecionados a partir do dito livro de código inicial.
Nesta quarta modalidade, primeiramente, todos os vetores de reprodução M (o livro de código inicial) são gerados de uma só vez pelo dito algoritmo de treinamento com base nos dados de treinamento, e, depois, os vetores de reprodução gerados são sequencialmente dispostos no dito livro de código conjugado, onde se tenta dispor os vetores de reprodução a partir do dito livro de código inicial no dito livro de código conjugado com grau crescente de diferença a outros vetores de reprodução, porém, contando-se do fim do dito livro de código conjugado. Nesse particular, a semelhança entre os vetores é avaliada com base em um critério de semelhança, como, por exemplo, a distância euclidiana entre os vetores ou a distância euclidiana quadrática, para citar alguns.
Em uma quinta modalidade do método de acordo com o quarto aspecto da presente invenção, o dito conjunto de pelo menos dois valores prédefinidos para N que são menores ou iguais à M contém K valores Ni, onde i=1,...,K e Nj_i < Nj < M onde j = 2,..., K. Logo, o dito método compreende gerar um livro de código inicial de vetores de reprodução M pelo dito algoritmo de treinamento com base em uma pluralidade de vetores de treinamento; selecionar,
23/46 a partir do dito livro de código inicial, vetores de reprodução Nide tal modo que uma distorção de um livro de código que contenha os ditos vetores de reprodução selecionados em relação a todos os ditos vetores de treinamento seja mínima; copiar os ditos vetores de reprodução selecionados a partir do dito livro de código inicial to dito livro de código conjugado e apagar os ditos vetores de reprodução selecionados a partir do dito livro de código inicial; e repetir, para cada Nj onde 1 < i < K, as seguintes etapas: selecionar, a partir do dito livro de código inicial, vetores de reprodução Ni - Nm de tal modo que uma distorção de um livro de código que contenha os vetores de reprodução Nm já copiados ao dito livro de código conjugado e ditos vetores de reprodução selecionados em relação a todos os ditos vetores de treinamento seja mínima; e copiar os ditos vetores de reprodução selecionados a partir do dito livro de código inicial para a próxima posição livre, em lógica crescente no dito livro de código conjugado e apagando os ditos vetores de reprodução selecionados a partir do dito livro de código inicial.
Nesta quinta modalidade, primeiramente, todos os vetores de reprodução M (o livro de código inicial) são gerados de uma só vez pelo dito algoritmo de treinamento com base em dados de treinamento, e, depois, os vetores de reprodução gerados são dispostos no dito livro de código conjugado em uma base de livro de código-por-livro de código. Para cada um dos K livros de código com tamanho Nj (onde i=1, ...,K, e Nk pode, por exemplo, ser igual a M) que deve estar contido no dito livro de código conjugado, os vetores de reprodução são selecionados a partir do livro de código inicial de tal modo que a distorção do livro de código, que contenha os vetores de reprodução já determinados em estágios anteriores e os ditos vetores de reprodução recentemente selecionados, em relação aos vetores de treinamento usados pelo algoritmo de treinamento seja mínima. Nesse particular, Nk pode ou não ser igual a Μ. A distorção do livro de código pode, por exemplo, ser determinada calculando-se a soma da distorção de cada vetor de reprodução contido no livro de código em relação a todos os vetores de treinamento a partir da célula Voronoi do vetor de reprodução e somando-se as soma das distorções de todos os vetores de reprodução no dito livro de código
24/46 para se chegar a um valor final. Uma célula Voronot do vetor de reprodução pode ser considerada como o conjunto de vetores de entrada que, sob uma distância
dada, são mais próximos ao vetor de reprodução considerado do que qualquer outro vetor de reprodução a partir do livro de código que contenha o dito vetor de reprodução considerado. Nesse particular, os vetores de entrada são todos os vetores com possível quantificação através do livro de código dado, de tal modo que o conjunto de vetores de treinamento seja, geralmente, um subconjunto do conjunto de vetores de entrada (no caso degenerado do livro de código com apenas um vetor de reprodução, a célula Voronoi daquele único vetor de reprodução consiste em todo o espaço vazio). A distorção é determinada por meio de um critério de distorção, que pode, por exemplo, ser a distância Euclidiana entre os vetores, ou a distância derivada da forma 1i, para citar alguns.
De acordo com o quarto aspecto da presente invenção, propõe-se, ainda, um dispositivo para determinação de um livro de código conjugado de vetores de reprodução M para uso em uma quantificação de vetores com N níveis, onde M é um número máximo predefinido de níveis M, onde N é selecionável antes da dita quantificação de um conjunto de pelo menos dois valores prédefinidos que são menores ou iguais a M, e onde na dita quantificação, um vetor de reprodução para cada vetor é selecionado a partir de um nível de livro de código N de vetores de reprodução N que são, para cada N no dito conjunto de pelo menos dois valores pré-definidos, representados pelos primeiros vetores de reprodução N do dito livro de código conjugado. O dito dispositivo compreende meios para geração dos ditos vetores de reprodução por um algoritmo de treinamento ao menos parcialmente baseado em uma pluralidade de vetores de treinamento; e meios para disposição dos ditos vetores de reprodução gerados no dito livro de código conjugado de acordo com um algoritmo de ajuste, de tal modo que para cada N, os primeiros vetores de reprodução N no dito conjunto de vetores de reprodução M formem um nível de livro de código N que permita uma pequena média de distorção dos ditos vetores quando usados na dita
25/46 quantificação dos ditos vetores. Nesse particular, o dito algoritmo de treinamento pode, por exemplo, ser um algoritmo LBG.
De acordo com o quarto aspecto da presente invenção, propõe-se, ainda, um produto de aplicação de software, que compreende um meio de armazenamento com uma aplicação de software para determinação de um livro de código conjugado de vetores de reprodução M para uso em um nível de quantificação N de vetores aqui incluso, onde M é um número máximo predefinido de níveis M, onde N é selecionável antes da dita quantificação de um conjunto de pelo menos dois valores pré-definidos que são menores ou iguais à M, e onde na dita quantificação, um vetor de reprodução para cada vetor é selecionado a partir
V de um nível de livro de código N de vetores de reprodução N que são, para cada N no dito conjunto de pelo menos dois valores pré-definidos, representados pelos primeiros vetores de reprodução N do dito livro de código conjugado. A dita aplicação de software compreende um código de programa para geração dos ditos vetores de reprodução por um algoritmo de treinamento pelo menos parcialmente baseado em uma pluralidade de vetores de treinamento; e um código de programa que disposição dos ditos vetores de reprodução gerados no dito livro de código conjugado de acordo com um algoritmo de ajuste, de tal modo que para cada N, os primeiros vetores de reprodução N no dito conjunto de vetores de reprodução M formem um nível de livro de código N que permita uma pequena média de distorção dos ditos vetores quando usados na dita quantificação dos ditos vetores. Nesse particular, o dito algoritmo de treinamento pode, por exemplo, ser um algoritmo LBG.
O dito meio de armazenamento pode ser qualquer elemento de memória ou armazenamento volátil ou não volátil, como, por exemplo, uma Memória Somente Leitura (ROM), uma Memória de Acesso Aleatório (RAM), um cartão de memória, e um disco legível óptica, elétrica ou magneticamente. O dito código de programa compreendido na dita aplicação de software pode ser implementado em uma linguagem de programação processual ou orientada por objeto de alto nível para se comunicar com um sistema de computador ou em
26/46 linguagem de montagem ou máquina para se comunicar com um processador digital. De qualquer maneira, o dito código de programa pode ser um código compilado ou interpretado.
Quinto Aspecto da Invenção
Finalmente, de acordo com um quinto aspecto da presente invenção, propõe-se um livro de código conjugado para uso em uma quantificação de vetores com N níveis, onde M é um número máximo predefinido de níveis, onde N é selecionável antes da dita quantificação de um conjunto de pelo menos dois valores pré-definidos que são menores ou iguais à M, e onde na dita quantificação, um vetor de reprodução para cada vetor é selecionado a partir de um nível de livro de código N de vetores de reprodução N que são, para cada N no dito conjunto de pelo menos dois valores pré-definidos, representados pelos primeiros vetores de reprodução N do dito livro de código conjugado de vetores de reprodução Μ. O dito livro de código conjugado compreende um conjunto de vetores de reprodução M, onde os ditos vetores de reprodução no dito conjunto de vetores de reprodução M são gerados por um algoritmo de treinamento pelo menos parcialmente baseado em uma pluralidade de vetores de treinamento; e onde os ditos vetores de reprodução são dispostos no dito conjunto de vetores de reprodução M de acordo com um algoritmo de ajuste, de tal modo que para cada N, os primeiros vetores de reprodução N no dito conjunto de vetores de reprodução M formem um nível de livro de código N que permite uma pequena distorção média dos ditos vetores quando usados na dita quantificação dos ditos vetores.
Nesse particular, deve-se notar que a descrição dos vetores e dos vetores de reprodução, a seleção do número de níveis N e a seleção do vetor de reprodução para cada vetor apresentado no contexto do primeiro aspecto da presente invenção também se aplicam ao quinto aspecto da presente invenção. O dito algoritmo de treinamento pode, por exemplo, ser o algoritmo LBG.
O livro de código de acordo com o quinto aspecto da presente invenção pode, exemplo, ser armazenado em uma memória de um dispositivo que utiliza um quantificador e/ou uma unidade que restaura vetores de reprodução de
27/46 vetores que foram quantificados em N níveis. A disposição específica dos vetores de reprodução M no dito livro de código que compreende o dito conjunto de vetores de reprodução M de acordo com o dito algoritmo de ajuste permite que o dito livro de código seja usado como um único livro de código para a quantificação de vetores com diferentes números selecionáveis de níveis /V <= Me, desse modo, contribui para economizar espaço na memória tanto em um quantificador como em uma unidade de restauração de vetor de reprodução.
Estes e outros aspectos da invenção tornar-se-ão aparentes a partir das modalidades descritas mais adiante e esclarecidos com referência às mesmas.
Breve Descrição das Figuras
Nas figuras constam:
A Figura 1: uma apresentação esquemática de uma modalidade de um dispositivo para a quantificação de nível N de vetores segundo o primeiro aspecto da presente invenção, e de uma modalidade destinada à recuperação de vetores de reprodução para vetores que tenham sido quantificados em nível N de acordo com o segundo aspecto da presente invenção, compreendido em um sistema para a transferência de representações de vetores de acordo com um terceiro aspecto da presente invenção.
A Figura 2a: um fluxograma de uma modalidade de um método para a quantificação em nível N de vetores de acordo com o primeiro aspecto da presente invenção;
A Figura 2b: um fluxograma de uma modalidade de um método destinado a recuperar vetores de reprodução para vetores que foram quantificados em nível N de acordo com o segundo aspecto da presente invenção;
A Figura 3: uma apresentação esquemática de uma modalidade de um dispositivo para a determinação de um livro de código conjunto para usar em uma quantificação de nível N de vetores de acordo com o quarto aspecto da presente invenção;
A Figura 4a: um fluxograma de uma primeira modalidade de um
28/46 método destinado a determinar um livro de código conjunto para uso em uma quantificação em nível N de vetores segundo o quarto aspecto da presente invenção;
A Figura 4b: um fluxograma de uma segunda modalidade de um método para determinar um livro de código conjunto destinado ao uso em uma quantificação em nível N de vetores de acordo com o quarto aspecto da presente invenção;
A Figura 4c: um fluxograma de uma terceira modalidade de um método para determinar um livro de código conjunto para usar em uma quantificação de nível N de vetores de acordo com o quarto aspecto da presente invenção;
A Figura 4d: um fluxograma de uma quarta modalidade de um método destinado a determinar um livro de código conjunto para uso em uma quantificação em nível N de vetores de acordo com o quarto aspecto da presente invenção;
Figura 4e: um fluxograma de uma quinta modalidade de um método destinado a determinar um livro de código conjunto para uso em uma quantificação de nível Λ/de vetores de acordo com o quarto aspecto da presente invenção; e
A Figura 5: uma apresentação esquemática de um livro de código conjunto de acordo com o quinto aspecto da presente invenção.
Descrição Detalhada da Invenção
A presente invenção refere-se, em geral, ao contexto da quantificação em nível N de vetores, onde um vetor de reprodução de um livro de código de nível N é selecionado para o dito vetor. Embora a quantificação possa ser executada para diferentes números selecionáveis de níveis N retirados de um conjunto pré-definido, os vetores de reprodução N de todos os livros de código de nível N são representados pelos respectivos primeiros vetores de reprodução N em um único livro de código conjunto que compreende vetores de reprodução M, sendo que M assinala o número máximo selecionável de níveis.
A esse respeito, o primeiro aspecto da presente invenção visa à
29/46 quantificação de nível N de vetores, um segundo aspecto visa à recuperação dos vetores de reprodução para vetores que foram quantificados de nível N, um terceiro aspecto visa à transferência de representações de vetores, um quarto aspecto visa à determinação de um livro de código conjunto que fornece livros de código de nível N para uma diversidade de diferentes quantificações de nível N, e um quinto aspecto visa o dito livro de código conjunto em si.
A Figura 1 é uma apresentação esquemática de uma modalidade de um sistema 4 destinado à transferência da representação de vetores de acordo com o terceiro aspecto da presente invenção. Esse sistema 4 compreende um dispositivo 1 para a quantificação de nível N de vetores de acordo com o primeiro aspecto da presente invenção, e um dispositivo 2 destinado à recuperação de vetores de reprodução de vetores que foram quantificados em nível N. Esse sistema, por exemplo, pode estar inserido em um sistema de comunicação que permite a comunicação entre duas unidades de comunicação, onde uma primeira unidade de comunicação compreende então o dispositivo 1, e uma segunda unidade de comunicação compreende o dispositivo 2. Um exemplo do dito sistema de comunicação é o sistema de rádio móvel, no qual os dados de áudio ou voz são transferidos segundo um codec de áudio e voz que envolve a quantificação dos ditos dados de áudio ou de voz.
O dispositivo 1 compreende uma unidade de seleção e mapeamento 10, uma memória de livro de código conjunto 11 e uma unidade de transmissão 12. A unidade de seleção e mapeamento 10 é capaz de receber uma seqüência de vetores k-dimensionais, com k > 1, de selecionar, para cada um dos ditos vetores, um vetor de reprodução k-dimensional oriundo de um livro de código de nível N, e de mapear o vetor de reprodução selecionado para um identificador que unicamente identifique o dito vetor de reprodução selecionado. Os ditos vetores podem, por exemplo, compreender dados empilhados relacionados ao código de voz ou áudio, por exemplo, coeficientes ou ganhos LPC/LSF, densidade horizontal de parâmetros de voz de um ou mais quadros ou sub-quadros de um sinal de voz ou de áudio. A esse respeito, o dito parâmetro N, denotando o número de níveis
30/46 de quantificação é inserido dentro da dita unidade 10 a partir de uma unidade externa, por exemplo, de um controlador central de uma unidade de comunicação que compreende o dispositivo 1.
A dita seleção dos ditos vetores de reprodução é executada com base em um critério de distorção, que quantifica uma diferença entre o vetor e cada vetor de reprodução. Uma diversidade de critérios de distorção é apresentada, por exemplo, na referência à técnica anterior de Linde et al. citadas na introdução da presente especificação da patente, por exemplo, a distorção por erro quadrático ou a norma de Holder, para citar apenas alguns. Em geral, a unidade de seleção 10 selecionará um vetor de reprodução do dito livro de código de nível A/ que minimiza o critério de distorção aplicado em relação aos demais vetores de reprodução contidos no dito livro de código de nível N.
A dita unidade de seleção e mapeamento 10 obtém o dito livro de código de nível /V a partir da memória do livro de código conjunto 11, que armazena um livro de código conjunto de acordo com o quinto aspecto da presente invenção. O livro de código conjunto compreende vetores de reprodução M, onde M é um valor pré-definido. O dito livro de código conjunto pode, por exemplo, ter sido armazenado na dita memória 11 durante a fabricação do dispositivo 1, por exemplo, se a dita memória 11 for um ROM. Da mesma forma, o dito dispositivo 1 pode compreender uma interface através da qual o dito livro de código conjunto pode ser alterado ou atualizado a partir da unidade externa como, por exemplo, um servidor de livro de código. A dita memória 11 pode, por exemplo, ser um RAM.
O livro de código conjunto, de acordo com o quinto aspecto da presente invenção é caracterizado pelo fato de compreender livros de código de nível N para uma diversidade de valores distintos de N pré-definidos, onde Ws M. Nesse aspecto, M define o número máximo de níveis para o qual o dispositivo 1 é capaz de executar a quantificação. Assim, de acordo com a presente invenção, apenas um único livro de código conjunto deve ser armazenado., enquanto o dispositivo for capaz de executar uma quantificação de nível N para uma
31/46 diversidade de valores N. Os livros de código de nível N requeridos para a quantificação de nível N são os respectivos primeiros vetores de reprodução N contidos no livro de código conjunto. Essa propriedade é atingida a partir da determinação apropriada do livro de código conjunto, conforme será descrito em maiores detalhes abaixo.
A Figura 5 descreve um exemplo ilustrativo do dito livro de código conjunto 5 de acordo com o quinto aspecto da presente invenção, sendo que M=16 e N é selecionável a partir do conjunto {2, 4, 8, 16}. O livro de código conjunto 5 compreende vetores de reprodução k-dimensionais M=16, retratados como barras horizontais. Mais além, a Figura 5 retrata a associação dos vetores de reprodução com o livro de código conjunto para os únicos livros de código de nível N através dos respectivos marcadores de variação 52-55. Por exemplo, o livro de código de nível 2 para N=2 contém apenas os dois primeiros vetores de reprodução do livro de código conjunto, conforme indicado pelo marcador de variação 52, o livro de código de nível 4 para N=4 contém apenas os quatro primeiros vetores de reprodução do livro de código conjunto do livro de código conjunto, conforme indicado pelo marcador de variação 53, e assim por diante. Finalmente, o marcador de variação 55 indica que, para N=M=16, o livro de código de nível 16 para N=16 compreende todos os vetores de reprodução M=16 do livro de código conjunto. Para cada livro de código de nível N, os N vetores de reprodução contidos no mesmo podem ser mapeados para uma palavra binária de N bits, com n=log2 (N). Por exemplo, para N=4 (i.e. n=2), o primeiro vetor de reprodução no livro de código de nível 4 pode ser identificado por meio da palavra binária de 2 bits Ό0’, o segundo vetor de reprodução através da palavra binária de 2 bits ΌΓ, o terceiro vetor de reprodução através da palavra binária de 2 bits ‘10’ e o quarto vetor de reprodução através da palavra binária de 2 bits Ί1’. Desse modo, 2 bits do vetor de reprodução devem ser usados nesse caso. Para N=8 (i.e. n=3), devem-se usar 3 bits e assim por diante.
Para ser mais explícito, apresenta-se a seguir um livro de código conjunto exemplificativo com vetores de reprodução l-dimensional M=16 para uso
32/46 na quantificação de um parâmetro de ganho de um sinal de áudio ou de voz. Esse exemplo coincide com o livro de código conjunto 5 da Figura 5. O parâmetro de ganho a ser quantificado varia de 0 dB a 96 dB, e o livro de código conjunto pode ser ajustado para a quantificação de nível 2, nível 4, nível 8 e nível 16, de modo que os livros de códigos para N=2, 4, 8 e 16 devem estar compreendidos no livro de código conjunto. Assumindo que o parâmetro de ganho esteja uniformemente distribuído no intervalo compreendido entre 0 dB e 96 dB, um livro de código conjunto adequado é fornecido como (todos os vetores de reprodução em dB):
[24, 72, 0, 48, 12, 36, 60, 84, 6, 18, 30, 42, 54, 66, 78, 90], de modo que os livros de códigos de nível N contidos no mesmo assumam (com todos os vetores de reprodução fornecidos em dB):
N=2: [24,72]
N=4: [24, 72, 0, 48]
N=8: [24,72,0,48, 12, 36,60,84]
N=16: [24, 72, 0, 48, 12, 36, 60, 84, 6,18, 30, 42, 54, 66, 78, 90].
Podemos observar de imediato que para cada valor de N, os livros de código contêm vetores de reprodução que se esforçam em cobrir uniformemente a variação entre 0 dB e 96 dB o melhor possível, onde a cada aumento de N a distância euclidiana entre os vetores de reprodução diminui. Por exemplo, para N=2, a distância é de 48 dB, para N=4, essa distância é 24 dB, para N=8 essa distância é de 12 dB e para N=16, essa distância é de apenas 6 dB. Assim, a cada duplicação de N, essa distância se reduz à metade.
Agora considere o caso exemplificativo de que uma realização do parâmetro de ganho será quantificada, equivalendo à dita realização a 40 dB. Se apenas n=1 bit (N=2) será usado para quantificação, e se a distância euclidiana for escolhida como critério de distorção, o primeiro vetor de reprodução no livro de código de nível 2, i.e. 24 dB será selecionado. Dessa forma, a distorção causada por esse vetor de reprodução é 40-24 dB=16 dB. Utilizando-se mais um bit, i.e. n=2 (N=4), o melhor vetor de reprodução no livro de código de nível 4 é o de 48 dB e, da mesma forma, a distorção é de apenas 8 dB. Para n=3 bits por vetor de
33/46 reprodução (N=8), o melhor vetor de reprodução é 36 dB, diminuindo assim a distorção até o valor de 4 dB. Finalmente, para n=4 bits por vetor de reprodução (N=16), o melhor vetor de reprodução no livro de código de nível 16 é o de 42 dB, diminuindo em seguida a distorção até o valor de 2 dB.
Observa-se com clareza que, por meio da seleção de N, a distorção pode ser permutada contra a capacidade de transmissão/armazenagem requerida.
De volta à Figura 1, a seleção supra-descrita de vetores de reprodução para cada vetor a ser quantificado no nível N e o mapeamento de vetores de reprodução selecionados a valores binários de comprimentos de palavra n=log2 (N) é executada através da unidade de mapeamento e seleção 10 do dispositivo 1. Os identificadores obtidos dessa forma são então encaminhados à unidade Tx 12, que realiza o processo posterior para permitir que o identificador seja transmitido através de um canal de transmissão. Esse processamento pode, por exemplo, compreender a codificação de canal, intercalagem, modulação da banda base e/ou processamento RF. O dito canal de transmissão também pode ser bem compreendido como um meio de armazenamento onde o dito identificador é armazenado. Nesse caso, a unidade Tx 12 realiza o processamento para permitir o armazenamento do identificador no dito meio de armazenamento.
O dispositivo 2 no sistema 4 da Figura 1 compreende uma unidade de Recepção (Rx) 23, uma unidade 20 para a recuperação de vetores de reprodução para vetores que foram quantificados a nível Λ/ no dispositivo 1, e uma memória de livro de código conjunto 21. Nesse aspecto, o livro de código conjunto armazenado na memória 21 é o mesmo livro de código conjunto armazenado na memória 11 do dispositivo 1. A unidade Rx 23 recebe identificadores transmitidos pela unidade Tx 12 do dispositivo 1, realizando, por exemplo, o processamento RF, a sincronização, a equalização, a demodulação, a de-intercalagem e/ou decodificação do canal. Se o dito canal de transmissão representa um meio de armazenamento, a unidade Rx 23 realiza o processamento para ler os identificadores desse meio de armazenamento. Os identificadores recebidos são então encaminhados para a unidade 20 que, com base nos identificadores
34/46 recebidos, o parâmetro N e o livro de código conjunto armazenados na memória 21, recupera o vetor de reprodução correspondente ao identificador recebido. Isso requer que o mapeamento dos vetores de reprodução para os identificadores seja o mesmo para ambos os dispositivos 1 e 2. Além disso, o parâmetro N tem que ser inserido na unidade 20, de modo que a unidade 20 seja habilitada a extrair o livro de código de nível N correto do livro de código conjunto. Por exemplo, N pode ser disponibilizado para a unidade 20 através de uma unidade externa, como, por exemplo, um controlador central de uma unidade de comunicação que abriga o dispositivo 2. O vetor de reprodução recuperado pode então ser produzido através do dispositivo 2 para os estágios futuros de processamento.
O sistema 4, de acordo com o terceiro aspecto da presente invenção permite assim a transferência de representações de vetores através de um canal de transmissão. Percebe-se de imediato que o vetor de reprodução recuperado no dispositivo 2 não é, em geral, uma representação isenta de distorção do vetor que é quantificado no dispositivo 1, desde que os livros de código de nível N disponíveis para a quantificação contenham apenas um número limitado de vetores de reprodução para escolha. Com N crescente, a distorção pode ser reduzida, mas o número de bits que devem ser utilizados para a identificação dos vetores de reprodução aumenta na mesma proporção. Assim, através do parâmetro N, a distorção pode ser permutada contra os requerimentos da largura da banda de transmissão (ou requerimentos de armazenamento, se o dito canal de transmissão for representado por uma portadora de dados).
A Figura 2a representa um fluxograma de uma modalidade de um método para uma quantificação a nível /V de vetores de acordo com o primeiro aspecto da presente invenção. Esse método pode, por exemplo, ser executando através da unidade de mapeamento e seleção 10 do dispositivo 1 no sistema 4 da Figura 1. Até essa finalização, as etapas desse método podem ser implantadas em uma aplicação de software de um produto para aplicação de software que é operado por um processador digital do dito dispositivo 1.
Em uma primeira etapa 100, o parâmetro N é inicializado, por
35/46 exemplo, recebendo um valor para N de uma unidade externa. Na etapa 101, verificam-se então se os vetores para quantificação estão disponíveis. Se não for o caso, o método é encerrado. De outro modo, um vetor é recebido em uma etapa 102 e em seguida em uma etapa 103, então um vetor de reprodução é selecionado a partir do livro de código a nível Λ/ correspondente, representado pelos primeiros vetores de reprodução N do livro de código conjunto, de forma que esse vetor de reprodução minimiza um critério de distorção. Em uma etapa 104, um identificador do dito vetor de reprodução selecionado é produzido, por exemplo, para a unidade Tx 12 do dispositivo 1 na Figura 1.
É então verificado na etapa 105 se o parâmetro N deve ser alterado, por exemplo, em função de sinalização externa. Se não for esse o caso, o método retorna à etapa 101 para quantificar outros vetores.
De outro modo, uma nova seleção para N é recebida na etapa 106 e então apenas o método retorna para a etapa 101.
A Figura 2 representa um fluxograma de uma modalidade de um método destinado à recuperação de vetores de reprodução para vetores que foram quantificados a nível N de acordo com o segundo aspecto da presente invenção. Esse método pode, por exemplo, ser executado pela unidade 20 do dispositivo 2 no sistema 4 da Figura 1. Nesse ponto, as etapas do presente método podem ser implantadas em uma aplicação de software de um produto de aplicação de software que seja executado por um processador digital do dito dispositivo 2.
Na primeira etapa 200, o parâmetro N é inicializado, por exemplo, recebendo um valor para N de um elemento externo. É requerido que N selecione o livro de código de nível N apropriado do livro de código conjunto. É, então, verificado na etapa 201 se há identificadores disponíveis. Se não for esse o caso, o método é encerrado. Caso contrário, um identificador é recebido na etapa 202. Na etapa 203, um vetor de reprodução conforme identificado pelo dito identificador é recuperado do livro de código de nível N representado pelos primeiros vetores N de reprodução no dito livro de código conjunto. Esse vetor de reprodução recuperado é produzido na etapa 204. Na etapa 205, verifica-se se há
36/46 necessidade de se modificar o parâmetro N. Se não for esse o caso, o método retorna à etapa 201 para receber outros identificadores. Caso contrário, uma nova seleção de N é recebida na etapa 206 e o método então retorna à etapa 201.
A Figura 3 é uma apresentação esquemática de uma modalidade do dispositivo 3 destinada a determinar um livro de código conjunto para uso em uma quantificação em nível N de vetores de acordo com o quarto aspecto da presente invenção. Esse dispositivo 3 pode, por exemplo, ser posicionado para construção dos livros de código conjuntos para dispositivos como o dispositivo 1 ou o dispositivo 2 do sistema 4 da Figura4. O livro de código conjunto determinado pode ser armazenado nas memórias 11 e 21 dos dispositivos 1 e 2, respectivamente, durante a fabricação desses dispositivos ou depois, por exemplo, através de uma interface para as ditas memórias 11 e 21.
O dispositivo 3 compreende uma unidade de controle 30, uma unidade LBG 31 e uma unidade de arranjo 32.
Nisto, a unidade LBG 31 é capaz de executar um algoritmo LBG para produzir um conjunto de vetores de reprodução L com base em uma pluralidade de vetores de treinamento, onde L é um número inteiro selecionável. O dito algoritmo LBG pode, por exemplo, basear-se no algoritmo para uma distribuição desconhecida de vetores que devem ser quantificados segundo proposto na referência à técnica anterior citada por Linde et al. na introdução da especificação dessa patente. Além da dita diversidade dos vetores de treinamento, o dito algoritmo LBG pode ser fornecido com um ou mais vetores de reprodução que serão considerados fixados durante a dita geração do dito conjunto de vetores de reprodução L, conforme será explicado em maior detalhe com referência a segunda modalidade do método de acordo com o quarto aspecto da presente invenção com referência à Figura 4b abaixo. Compreende-se de imediato que o uso do algoritmo LBG nas modalidades da presente invenção é apenas de natureza exemplificativa. Com a mesma eficiência podem ser aplicados outros algoritmos de treinamento de livro de código.
A unidade de arranjo 32 é capaz de dispor os vetores de reprodução
37/46 produzidos pela unidade LBG 32 no livro de código conjunto de acordo com um algoritmo de arranjo, de modo que para cada N, os primeiros vetores N de reprodução no livro de código conjunto constituam um livro de código de nível N que permita uma pequena distorção média de vetores quando os livros de código em nível N forem usados em quantificações em nível N desses vetores.
A unidade de controle 30 controla a operação geral do dispositivo 3 e em particular a interoperação da unidade LBG 31 e a unidade de arranjo 32.
Para a determinação do livro de código conjunto, o dispositivo 3 é fornecido com o número máximo de níveis M projetados para o livro de código conjunto, e com diversos vetores representativos dos vetores que serão posteriormente quantificados com base no livro de código conjunto. Como opção, também podem ser fornecidos ao dispositivo 3.um conjunto pré-definido de números de níveis N para o qual o livro de código conjunto conterá livros de código em nível N. Por exemplo, se M=256, pode ser suficiente que o livro de código conjunto contenha apenas livros de código para N=128 e N=256, e em seguida, o conjunto pré-definído de números de N níveis seria {128, 256}. Essa informação pode ser explorada pelo dispositivo 3 para determinar um livro de código otimizado para apenas esses dois números de níveis, em lugar de tentar determinar um livro de código otimizado para todos os N=2, 4, 8, 16, 32, 64, 128, 256. Nesse ponto, pode-se notar que a escolha de N como uma potência de 2 é unicamente de natureza exemplificativa. O dito dispositivo 3 pode ser igualmente capaz de determinar livros de código conjunto para números de N níveis que não sejam potências de 2 a fim de aumentar a flexibilidade do livro de código.
A Figura 4a consiste de um fluxograma de uma primeira modalidade de um método utilizado para determinar um livro de código conjunto de acordo com o quarto aspecto da presente invenção. Essa primeira modalidade pode, por exemplo, ser implantada pelo dispositivo 3 da Figura 3.
Na primeira etapa 400, o livro de código conjunto que deve ser construído é inicializado como um livro de código vazio com capacidade de armazenamento para vetores de reprodução M. Na etapa 401, um contador de
38/46 circuitos i é inicializado em 1. Na etapa 402, o denominado livro de código “iniciar de nível M é gerado de acordo com o algoritmo LBG, com base em uma diversidade de vetores de treinamento, isso pode ser realizado, por exemplo, pela unidade LBG 31 do dispositivo 3 (veja a Figura3). As etapas restantes do fluxograma da Figura 4a são então direcionadas de modo a dispor os vetores de reprodução contidos no dito livro de código inicial dentro do dito livro de código conjunto inicializado na etapa 400. Esse arranjo pode ser realizado, por exemplo, pela unidade de arranjo 32 do dispositivo 3 (veja a Figura 3).
Nesse ponto, na etapa 403, o livro de código de nível 2 é determinado pelo algoritmo LBG, com base na mesma seqüência de treinamento usada na etapa 402. Isso também pode ser realizado pela unidade LBG 31 do dispositivo 3 (veja a Figura 3). Na etapa 404, os dois vetores de reprodução no dito livro de código inicial mais semelhantes (em termos de minimizar determinado critério de distorção) aos dois vetores de reprodução no dito livro de código em nível 2 são identificados e, na etapa 405, são copiados para as duas primeiras posições no livro de código conjunto inicializadas na etapa 400. Na etapa 406, um contador de posição Pos é ajustado em 2.
As etapas seguintes 407 a 412 são realizadas repetidamente até que todos os vetores de reprodução do livro de código inicial tenham sido organizados no livro de código conjunto.
Na etapa 407, um livro de código em nível I é determinado com base no algoritmo LBG e os mesmos vetores de treinamento usados nas etapas 402 e 403, sendo esta etapa implantada, por exemplo, pela unidade LBG 31 do dispositivo 3 (veja a Figura 3). Assim, l=2‘ é fixado, sendo i um contador de circuito inicializado na etapa 401. Esse livro de código em nível I representa o livro de código ótimo para N=l. Contudo, uma vez no livro de código conjunto e que os primeiros vetores de reprodução l/2 já tinham sido dispostos nas etapas do fluxograma realizadas antes, o arranjo só é possível para os últimos vetores de reprodução I/2. Portanto, na etapa 408, são identificados (e ignorados) os vetores de reprodução I/2 no dito livro de código de nível I determinados como sendo mais
39/46 semelhantes (em termos de minimizar determinado critério de distorção) aos
vetores de reprodução I/2 já contidos no livro de código conjunto. Em seguida, na etapa 409, os vetores de reprodução l/2 no dito livro de código inicial mais semelhantes (em termos de minimizar determinado critério de distorção) aos vetores de reprodução restantes (não identificados na etapa 408) do dito livro de código em nível I são selecionados e, na etapa 410, são copiados para as posições Pos + 1 e Pos I+2 no dito livro de código conjunto. Na etapa 411, o contador de posição Pos é então aumentado por I/2, e o contador de circuito também é elevado em 1 na etapa 412. Na etapa 413 verifica-se se o contador de circuito é maior do que m, sendo m=Log2(M). Se for esse o caso, todos os vetores de reprodução do livro de código inicial foram dispostos no livro de código conjunto e o método é encerrado. Caso contrário, o método retorna à etapa 407 e executa o arranjo para o próximo livro de código contido no livro de código conjunto.
A Figura 4b consiste de um fluxograma da segunda modalidade de um método para determinação de um livro de código conjunto de acordo com o quarto aspecto da presente invenção. Essa segunda modalidade pode, por exemplo, ser implantada pelo dispositivo 3 da Figura 3.
Em uma primeira etapa 420, inicializa-se um livro de código conjunto (alvo) com capacidade para os vetores M de reprodução. Na etapa 421, um contador de circuito é inicializado em 1. Na etapa 422, um livro de código em nível é gerado pelo algoritmo LBG, com base em diversos vetores de treinamento, podendo ser executado, por exemplo, pela unidade LBG 31 do dispositivo 3 da Figura 3. Os dois vetores de reprodução desse livro de código em nível 2 são copiados para as duas primeiras posições do livro de código conjunto na etapa 423. Na etapa 424, um contador de posição Pos é ajustado em 2. Após essa operação preliminar que determina e dispõe os vetores de reprodução do primeiro livro de código (N=2) no livro de código conjunto, executam-se repetidamente as etapas 425 a 428 a fim de gerar e determinar os próximos livros de código com nível mais elevado.
Nesse ponto, na etapa 425, um livro de código de nível I é
40/46 determinado pelo algoritmo LBG com base em vários vetores de treinamento, onde 1=21 é fixado, sendo i o contador de circuito inicializado na etapa 421. Na verdade, esse livro de código de nível I representaria o livro de código ótimo para N=l. No entanto, uma vez no livro de código conjunto, estando já dispostos os primeiros vetores de reprodução I/2 nas etapas do fluxograma executado anteriormente, o arranjo só é possível para os últimos vetores de reprodução I/2. De acordo com a segunda modalidade do método de acordo com o quarto aspecto da presente invenção esse problema é solucionado inicializando o algoritmo LBG com um livro de código que compreende os primeiros vetores de reprodução I/2 que já tinham sido copiados para o livro de código conjunto e solicitando que esses primeiros vetores de reprodução I/2 permaneçam fixos durante a operação do algoritmo LBG. Isso assegura que o livro de código em nível I produzido pelo algoritmo LBG consista desses primeiros vetores de reprodução I/2 que já estão contidos no livro de código conjunto (e foram otimizados para livros de código de níveis inferiores), e de vetores de reprodução I/2 que sejam otimizados para o atual livro de código de nível I, enquanto ainda considerando (e parcialmente compensando) o fato de que os primeiros vetores de reprodução I/2 no dito livro de código de nível I estão fixados. Os últimos vetores de reprodução I/2 do livro de código de nível I determinados na etapa 425 podem então ser copiados para as posições Pos +1 para Pos + I/2 do livro de código conjunto na etapa 426.
A repetição apropriada dessas etapas 425 e 426 são asseguradas pela atualização do contador de Posição Pos na etapa 427, aumentando o contador de circuito na etapa 428 e contrastando com o valor m=log2(M) na etapa 429. Se i for maior do que m, o método é encerrado, caso contrário, retorna à etapa 425.
A Figura 4c consiste de um fluxograma da terceira modalidade de um método para determinação de um livro de código conjunto de acordo com o quarto aspecto da presente invenção. Essa terceira modalidade pode ser implantada, por exemplo, pelo dispositivo 3 da Figura 3.
Na primeira etapa 440, inicializa-se um livro de código conjunto (alvo)
41/46 com capacidade para vetores de reprodução M. Em uma segunda etapa 441, um denominado livro de código “inicial” de nível M é gerado segundo o algoritmo LBG com base em diversos vetores de treinamento. Isso, por exemplo, pode ser realizado pela unidade LBG 31 do dispositivo 3 (veja a Figura3). As etapas restantes do fiuxograma da Figura 4c são então direcionadas a dispor os vetores de reprodução contidos no dito livro de código inicial dentro do dito livro de código conjunto inicializado na etapa 440. Esse arranjo, por exemplo, pode ser executado pela unidade de arranjo 32 do dispositivo 3 (veja Figura 3).
Após a etapa 441, há duas alternativas para a seleção do(s) primeiro(s) vetor(es) de reprodução do dito livro de código iniciai que é/são copiados para a(s) primeíra(s) posição(ões) no livro de código conjunto.
De acordo com a primeira alternativa, na etapa 442a, os dois vetores de reprodução mais diferentes entre si (em termos de maximizar determinado critério de distorção) são selecionados de um livro de código inicial. Em seguida, na etapa 443a, os dois vetores de reprodução selecionados são copiados do livro de código inicial para as duas primeiras posições no livro de código conjunto. Além disso, esses vetores de reprodução são excluídos do livro de código inicial. Em seguida, na etapa 444a, um contador de posição Pos é inicializado em 3.
De acordo com a segunda alternativa, na etapa 442b, seleciona-se o
vetor de reprodução do livro de código iniciai que for mais semelhante a todos os vetores de treinamento usados na geração do livro de código inicial pelo algoritmo LBG na etapa 441. Em seguida, na etapa 443b, o vetor de reprodução selecionado é copiado do livro de código inicial para a primeira posição no livro de código conjunto. Além disso, esse vetor de reprodução é excluído do livro de código inicial. Na etapa 444b, um contador de posição Pos é inicializado em 2.
Enquanto o livro de código inicial não estiver vazio, o que é controlado pela etapa 445, as etapas seguintes 446 a 448 são repetidas (independente da alternativa realizada antes), cada vez dispondo um vetor de reprodução do dito livro de código inicial para a próxima posição Pos livre no dito livro de código conjunto.
42/46
Nesse ponto, na etapa 446, seleciona-se o vetor de reprodução no
dito livro de código inicial que seja mais distinto de todos os vetores de reprodução já contidos no dito livro de código. O vetor de reprodução mais diferente de todos os vetores de reprodução já contidos no dito livro de código conjunto pode ser determinado, por exemplo, computando, para cada candidato a vetor de reprodução no dito livro de código conjunto, a respectiva distorção relacionada a todos os demais vetores de reprodução no dito livro de código inicial e somando essas distorções para que se atinja um único valor por candidato a vetor de reprodução. O candidato a vetor de reprodução com o maior valor de distorção pode então ser considerado como o mais diferente de todos os vetores de reprodução já contidos no dito livro de código conjunto. Na etapa 447, esse vetor de reprodução selecionado é copiado para a (próxima e livre) posição Pos no livro de código conjunto e é excluída do livro de código inicial. Na etapa 448, o contador de posição Pos é aumentado em 1 e o método retorna à etapa 445.
Nesse sentido, o livro de código conjunto é sequencialmente preenchido com vetores de reprodução do dito livro de código inicial que sejam mais diferentes dos vetores de reprodução já contidos no dito livro de código conjunto, assegurando assim uma ampla cobertura do espaço vetorial dos vetores que devam ser quantificados mesmo para livros de código de nível baixo.
Para evitar que os vetores de reprodução raramente utilizados tornem-se as primeiras entradas no livro de código conjunto, pode-se impor restrições adicionais no algoritmo de arranjo refletido pelo fluxograma da Figura 4c.
Por exemplo, na etapa 446, pode-se selecionar o vetor de reprodução mais diferente de todos os vetores de reprodução já contidos no dito livro de código conjunto enquanto todos os seus componentes vetoriais estiverem abaixo de um determinado limite, e em seguida copiá-lo para um livro de código conjunto 447. O dito limite pode depender, por exemplo, da posição real Pos no livro de código conjunto para o qual um vetor de reprodução deva ser selecionado no livro de código inicial. Por exemplo, para as posições correspondentes ao livro de código em nível 2 no livro de código conjunto (as posições 1 e 2 no livro de código
43/46 conjunto), pode-se aplicar um primeiro limite para as posições correspondentes à segunda metade do livro de código de nível 4 (posições 3 e 4 no livro de código conjunto), pode-se aplicar um segundo limite e assim por diante. Os valores dos ditos limites podem aumentar com vantagem (i.e. sendo o primeiro limite menor do que o segundo limite, que é menor do que o terceiro limite, e assim por diante).
A Figura 4d consiste de um fluxograma de uma quarta modalidade de um método usado para determinar um livro de código conjunto de acordo com o quarto aspecto da presente invenção. Essa quarta modalidade pode ser implantada, por exemplo, pelo dispositivo 3 da Figura 3.
Na primeira etapa 460, inicializa-se um livro de código conjunto (alvo) com capacidade para os vetores de reprodução M. Na segunda etapa 461, o denominado livro de código “inicial” de nível M é gerado de acordo com o algoritmo LBG, com base na pluralidade de vetores de treinamento. Esse pode ser realizado, por exemplo, pela unidade LBG 31 do dispositivo 3 (veja a Figura 3). Na etapa 462, o contador de posição Pos é inicializado em M. As etapas restantes do fluxograma da Figura 4d são direcionadas de modo a dispor os vetores de reprodução contidos no dito livro de código inicial dentro do dito livro de código conjunto inicializado na etapa 460. Esse arranjo pode ser executado, por exemplo, pelo arranjo da unidade 32 do dispositivo 3 (veja a Figura3).
Enquanto o livro de código inicial não estiver vazio, o que é controlado pela etapa 463, repetem-se as etapas seguintes 464 a 466, a cada vez dispondo um vetor de reprodução do dito livro de código inicial dentro da próxima posição livre Pos no dito livro de código conjunto, mas agora iniciando pela parte final do livro de código conjunto e prosseguindo até o início.
Nesse ponto, na etapa 464, selecionam-se os dois vetores de reprodução no dito livro de código inicial mais semelhantes (em termos de minimizar determinado critério de distorção) entre si. Na etapa 465, o primeiro desses dois vetores de reprodução selecionados é copiado para a (próxima e livre) posição Pos no livro de código conjunto, e é excluído do livro de código inicial. Na etapa 466, o contador de posição Pos é subtraído de um, e o método retorna à
44/46 etapa 463.
Dessa forma, o livro de código conjunto é sequencialmente preenchido desde a parte final com vetores de reprodução do dito livro de código inicial que sejam semelhantes a outros vetores de reprodução no dito livro de código inicial. Isso assegura ampla cobertura do espaço vetorial dos vetores que devam ser quantificados mesmo para livros de código de nível baixo, por isso os vetores de reprodução são posicionados no início do livro de código conjunto quando esses livros de códigos forem de nível baixo.
A Figura 4e consiste de um fluxograma da quinta modalidade de um método para determinar um livro de código conjunto de acordo com o quarto aspecto da presente invenção. Essa quinta modalidade pode ser implantada, por exemplo, pelo dispositivo 3 da Figura 3.
Na primeira etapa 480, inicializa-se um livro de código conjunto (alvo) com capacidade para vetores de reprodução M. Na segunda etapa 481, é gerado o denominado livro de código “inicial” de nível M de acordo com o algoritmo LBG, com base em inúmeros vetores de treinamento. Isso pode ser realizado, por exemplo, através da unidade LBG 31 do dispositivo 3 (veja Figura 3). As etapas restantes do fluxograma da Figura 4e são em seguida direcionadas a dispor os vetores de reprodução contidos no livro de código inicial dentro do dito livro de código conjunto inicializado na etapa 480. Essa disposição pode ser realizada, por exemplo, através da unidade de arranjo 32 do dispositivo 3 (veja Figura 3).
Na etapa 482, um contador i é inicializado em zero. Em seguida, uma variável No é definida como zero. Finalmente, um contador de posição Pos é inicializado em zero.
As etapas 483 a 487 descrevem um circuito que é repetido k vezes. No mesmo, k denota o número dos tamanhos do livro de código N( (sendo i=1,...K e Nj-i < Nj M com j=2, ..., k) que deverá ser fornecido pelo livro de código conjunto. Em cada circuito i, completa-se um livro de código de tamanho Ni, conforme será descrito abaixo.
Na etapa 484 do circuito, os vetores de reprodução Νι-Νμ são
45/46 selecionados a partir do livro de código inicial, copiados para as próximas posições livres no livro de código conjunto e excluídos do livro de código inicial. A seleção desses vetores de reprodução é realizada de forma a reduzir ao máximo a distorção de um livro de código de nível Nj que contenha vetores de reprodução Nj que já tenham sido copiados para o livro de código conjunto nos circuitos anteriores e os ditos vetores de reprodução selecionados em relação aos vetores de treinamento usados no algoritmo LBG (veja a etapa 481). Para i=1 (e, da mesma maneira, Nj=No=O), nenhum vetor de reprodução foi copiado para o livro de código conjunto até o momento, e assim a seleção dos vetores de reprodução é executada de modo a reduzir ao máximo a distorção do livro de código de nível Ni que contém apenas os vetores de reprodução selecionados em relação aos vetores de treinamento utilizados no algoritmo LBG.
No mesmo, a distorção do livro de código pode ser determinada, por exemplo, calculando a distorção total de cada vetor de reprodução contido no livro de código de nível Nj em relação a todos os vetores de treinamento da célula Voronoi do vetor de reprodução considerado e somando as distorções totais de todos os vetores de reprodução no dito livro de código para se atingir um valor final. A distorção é determinada, por exemplo, por meio da distância euclidiana entre vetores, ou da distância derivada da norma h, para citar apenas alguns.
Na etapa 485 do circuito, os vetores de reprodução selecionados são copiados para as posições Pos+1 para Pos+Ní-Nm no livro de código conjunto (que são as próximas posições livres no livro de código conjunto), e os vetores de reprodução selecionados são excluídos do livro de código inicial, de forma que não sejam considerados durante a seleção dos vetores de reprodução no próximo circuito. Como pode ser observado, apenas as últimas posições Ní-Nm do respectivo livro de código de nível N, são determinados em cada circuito i, porque as primeiras posições Nm já tinham sido determinadas em circuitos anteriores. Assim, pode se dizer que o livro de código de nível N, está “completado” (mas não totalmente determinado) no circuito i.
Na etapa 486, o contador de posição Pos é da mesma forma elevado
46/46 em Ni-N|.-|. Na etapa 487, verifica-se se todos os livros de código k que devem estar contidos no livro de código conjunto já foram processados (i=K). Se for esse o caso, o método é encerrado. Caso contrário (i<K), o método retorna à etapa 483 para encerrar o próximo livro de código.
Como exemplo, se M=4, Ni=2 e N2=4 mantêm, no primeiro circuito, i=1, os vetores de reprodução Ni=2 do livro de código inicial desse modo, será mínima a distorção do livro de código com 2 elementos que contém esses dois vetores em relação aos vetores de treinamento. Esses 2 vetores de reprodução são copiados para as posições 1 e 2 no livro de código conjunto (de modo que o livro de código de 2 elementos contido no início do livro de código conjunto seja completado) e são excluídos do livro de código inicial. Em um próximo circuito i=2, são selecionados vetores de reprodução N2-Ni=2, de modo que o livro de código com os 2 vetores de reprodução já contidos no livro de código conjunto e os 2 vetores de reprodução selecionados apresentem distorção mínima em relação aos vetores de treinamento. Em seguida, os dois vetores de reprodução são copiados para as posições 3 e 4 no livro de código conjunto (de forma que o livro de código de 4 elementos contido no início do livro de código conjunto seja completado) e excluído do livro de código inicial. No mesmo, fica imediatamente compreendido que a escolha de M e de Nj não se limita necessariamente a ser uma potência de
2.
A invenção foi descrita acima por meio de modalidades exemplificativas. Deve-se notar que há formas alternativas e variações nítidas para os indivíduos versados na técnica e que podem ser implantadas sem se desviar do escopo e da essência das reivindicações apensas. Em particular, a presente invenção não se limita à aplicação no contexto do processamento de áudio e voz. Pode ser igualmente construída para a quantificação de qualquer outro tipo de dados.

Claims (19)

1. Método de quantificação de vetores ao nível N, em que N é selecionável, antes da quantificação, de um conjunto de pelo menos dois valores predefinidos que são inferiores ou iguais a um número predefinido máximo de níveis M, compreendendo:
- seleção, na quantificação de vetores ao nível N, de um vetor de reprodução para dito vetor de um livro de código de níveis N de vetores de reprodução N que são, para cada N no conjunto de pelo menos dois valores predefinidos, representados pelos primeiros vetores de reprodução N do mesmo livro de código conjunto de vetores de reprodução M; e caracterizado por adicionalmente compreender um sinal identificador que identifica o referido vetor de reprodução selecionado, compreendendo o processamento do referido sinal identificador de sinal para armazenamento no meio de armazenamento ou para transmissão no canal de transmissão de um sistema de comunicação.
2. Método, de acordo com a reivindicação 1, caracterizado por N=2n e M=2m serem fixos, sendo nem valores inteiros.
3. Método, de acordo com a reivindicação 1, caracterizado por cada vetor de reprodução no livro de código de níveis N ser identificado por uma palavra binária de n bits.
4. Método, de acordo com a reivindicação 1, caracterizado por os vetores compreenderem parâmetros relacionados com a Codificação Previsora Linear de uma sequência de dados.
Petição 870190016915, de 19/02/2019, pág. 9/18
2/9
5. Método, de acordo com a reivindicação 1, caracterizado por a etapa de seleção ser conduzida por um dispositivo de comunicação portátil.
6. Dispositivo para a quantificação de vetores ao nível N, sendo N selecionável, antes da quantificação, de um conjunto de pelo menos dois valores predefinidos que são inferiores ou iguais a um número máximo predefinido de níveis M, caracterizado por compreender:
- meios para a seleção, na quantificação de vetores ao nível N, de um vetor de reprodução para dito vetor de um livro código de níveis N dos vetores de reprodução N que são, para cada N no conjunto de pelo menos dois valores predefinidos, representados pelos primeiros vetores de reprodução N do mesmo livro de código conjunto de vetores de reprodução M e para prover um sinal identificador que identifica o referido vetor de reprodução selecionado, e meios para processamento do referido sinal identificador de sinal para armazenamento no meio de armazenamento ou para transmissão no canal de transmissão de um sistema de comunicação.
7. Método para a recuperação de vetores de reprodução para vetores que tenham sido quantificados ao nível N, sendo N selecionável, antes da quantificação dos vetores, de um conjunto de pelo menos dois valores predefinidos que são inferiores ou iguais a um número máximo predefinido de níveis Mi, caracterizado por compreender:
- o recebimento de um identificador de sinal do meio de armazenamento ou através de um canal de comunicação, o referido identificador de sinal indicativo de um vetor de reprodução que tenha sido selecionado para um vetor na quantização de nível N do referido vetor; e
- recuperação, com base no identificador, do vetor de reprodução de um livro de código de níveis N, de vetores de reprodução N que são, para cada N no conjunto de pelo menos dois valores predefinidos, representados pelos
Petição 870190016915, de 19/02/2019, pág. 10/18
3/9 primeiros vetores de reprodução N do mesmo livro de código conjunto de vetores de reprodução M, dito vetor de reprodução de recuperação para saída para outras etapas de processamento.
8. Método, de acordo com a reivindicação 7, caracterizado por N=2n e M=2m serem fixos, sendo nem valores inteiros.
9. Dispositivo para a recuperação de vetores de reprodução para vetores que tenham sido quantificados ao nível N, sendo N selecionável, antes de uma quantificação dos vetores, de um conjunto de pelo menos dois valores predefinidos que são inferiores ou iguais a um número máximo predefinido de níveis M, caracterizado por compreender:
- meios para receber um identificador de sinal do meio de armazenamento ou através de um canal de comunicação, o referido identificador de sinal indicativo de um vetor de reprodução que tenha sido selecionado para um vetor na quantização de nível N do referido vetor; e
- meios para recuperação, com base no identificador, do vetor de reprodução de um livro de código de níveis N, de vetores de reprodução N que são, para cada N no conjunto de pelo menos dois valores predefinidos, representados pelos primeiros vetores de reprodução N do mesmo livro de código conjunto de vetores de reprodução M, dito vetor de reprodução de recuperação para saída para outras etapas de processamento.
10. Sistema para a transferência de representações de vetores, caracterizado por compreender:
- meios para a seleção de um vetor de reprodução para cada vetor de um livro de código de níveis N de vetores de reprodução N, sendo N selecionável, antes da seleção, de um conjunto de pelo menos dois valores predefinidos que são inferiores ou iguais a um número máximo predefinido de níveis M, e
Petição 870190016915, de 19/02/2019, pág. 11/18
4/9 sendo os vetores de reprodução N, para cada N no conjunto de pelo menos dois valores predefinidos, representados pelos primeiros vetores de reprodução N de um primeiro livro de código conjunto de vetores de reprodução M;
- meios para a transmissão de um identificador do vetor de reprodução selecionado por meio de um canal de transmissão; meios para receber tal identificador; e meios para a recuperação, com base no identificador, do vetor de reprodução, de um livro de código de níveis N de vetores de reprodução N representados pelos primeiros vetores de reprodução N de um segundo livro de código conjunto de vetores de reprodução M que corresponde ao primeiro livro de código.
11. Método para a determinação de um livro de código conjunto de vetores de reprodução M para uso em uma quantificação ao nível N de vetores, sendo M um número máximo predefinido de níveis, sendo N selecionável, antes da quantificação, de um conjunto de pelo menos dois valores predefinidos que são inferiores ou iguais a M, e sendo, na quantificação, um vetor de reprodução para cada vetor selecionado, de um livro de código de níveis N, de vetores de reprodução N que são, para cada N no conjunto de pelo menos dois valores predefinidos, representados pelos primeiros vetores de reprodução N do livro de código conjunto, caracterizado por compreender:
- gerar os vetores de reprodução por um algoritmo de treinamento pelo menos parcialmente baseado em uma multiplicidade de vetores de treinamento; e armazenamento e
- dispor os vetores de reprodução gerados na memória de acordo com um algoritmo de disposição de modo que para formar o dito livro de código conjunto de modo que para cada N, os primeiros vetores de reprodução N no livro de código conjunto formem um livro de código de níveis N que permite uma ligeira distorção média dos vetores quando usado na quantificação dos vetores.
Petição 870190016915, de 19/02/2019, pág. 12/18
5/9
12. Método de acordo com a reivindicação 11, caracterizado por N=2n e M=2m serem fixos, sendo nem valores inteiros.
13. Método de acordo com a reivindicação 12, caracterizado por compreender:
- gerar um livro de código inicial de vetores de reprodução M pelo algoritmo de treinamento;
- gerar um livro de código de nível 2 de vetores de reprodução 2 pelo algoritmo de treinamento;
- selecionar esses vetores de reprodução 2 do livro de código inicial que sejam mais semelhantes aos vetores de reprodução 2 no livro de código de nível 2;
- copiar os vetores de reprodução 2 do livro de código inicial para as primeiras 2 posições no livro de código conjunto e apagar, do livro de código inicial, os vetores de reprodução 2 selecionados; e
- repetir para 1 < i < m, as seguintes etapas:
- gerar um livro de código de nível I de vetores de reprodução I = 21 pelo algoritmo de treinamento;
- identificar esses vetores de reprodução I/2 do livro de código de nível I que sejam mais semelhantes aos vetores de reprodução I/2 já copiados ao livro de código conjunto;
- para o restante de vetores de reprodução I/2 não identificados no livro de código de nível I, selecionar os vetores de reprodução I/2 do livro de código inicial que sejam mais semelhantes aos restantes vetores de reprodução I/2 não identificados; e
- copiar os vetores de reprodução I/2 do livro de código inicial para as posições livres seguintes no sentido crescente no livro de código conjunto, e apagar, do livro de código inicial, os vetores de reprodução I/2 selecionados.
14. Método de acordo com a reivindicação 12, caracterizado por compreender:
Petição 870190016915, de 19/02/2019, pág. 13/18
6/9
- gerar um livro de código de nível 2 de vetores de reprodução 2 pelo algoritmo de treinamento;
- copiar os vetores de reprodução 2 do livro de código de nível 2 para as 2 primeiras posições no livro de código conjunto; e
- repetir, para 1 < i < m, as seguintes etapas:
- gerar um livro de código de nível I de vetores de reprodução l=21 pelo algoritmo de treinamento, em que no algoritmo de treinamento, os vetores de reprodução I/2 já copiados do livro de código conjunto formam a primeira parte de um livro de código de vetores de reprodução I, que serve como uma inicialização do livro de código de nível I gerado pelo algoritmo de treinamento, e é pressuposto que sejam fixados pelo algoritmo de treinamento; e
- copiar os últimos vetores de reprodução I/2 do livro de código de níveis I gerado para as seguintes posições I/2 livres no sentido crescente no livro de código conjunto.
15. Método de acordo com a reivindicação 11, caracterizado por compreender
- gerar um livro de código inicial de vetores de reprodução M pelo algoritmo de treinamento com base em uma multiplicidade de vetores de treinamento;
- selecionar, do livro de código inicial, os dois vetores de reprodução que são mais diferentes entre si;
- copiar os dois vetores de reprodução selecionados do livro de código inicial para as duas primeiras posições no livro de código conjunto, e apagar, do livro de código inicial, os dois vetores de reprodução selecionados; e
- repetir, enquanto o livro de código inicial ainda não esta esvaziado, as seguintes etapas:
- selecionar o vetor de reprodução do livro de código inicial que é o mais diferente em comparação com todos os vetores de reprodução já copiados para o livro de código conjunto;
Petição 870190016915, de 19/02/2019, pág. 14/18
7/9
- copiar o vetor de reprodução selecionado do livro de código inicial para a seguinte posição livre no sentido crescente no livro de código conjunto e apagar, do livro de código inicial, o vetor de reprodução selecionado.
16. Método de acordo com a reivindicação 11, caracterizado por compreender:
- gerar um livro de código inicial de vetores de reprodução M pelo algoritmo de treinamento com base em uma multiplicidade de vetores de treinamento;
- selecionar do livro de código inicial, o vetor de reprodução que é mais semelhante a odos os vetores de treinamento;
- copiar o vetor de reprodução selecionado do livro de código inicial para a primeira posição no livro de código conjunto e apagar do livro de código inicial o vetor de reprodução selecionado; e
- repetir, enquanto o livro de código inicial ainda não esta vazio, as seguintes
etapas: - selecionar o vetor de reprodução do livro de código inicial que é o mais diferente de todos os vetores de reprodução já copiados para o livro de código conjunto; - copiar o vetor de reprodução selecionado do livro de código inicial para a primeira posição seguinte em sentido crescente no livro de código conjunto e apagar do livro de código inicial o vetor de reprodução selecionado.
17. Método de acordo com a reivindicação 11, caracterizado por compreender:
- gerar um livro de código inicial de vetores de reprodução M pelo algoritmo de treinamento;
- repetir, enquanto o livro de código inicial ainda não está vazio, as seguintes etapas:
Petição 870190016915, de 19/02/2019, pág. 15/18
8/9
- selecionar os vetores de reprodução 2 do livro de código inicial que são o mais semelhante entre si;
- copiar o primeiro dos dois vetores de reprodução selecionados do livro de código inicial para a seguinte posição livre, no sentido decrescente, começando da última posição no livro de código conjunto e apagar, do livro de código inicial, o primeiro dos dois vetores de reprodução selecionados.
18. Método de acordo com a reivindicação 11, em que o conjunto de pelo menos dois valores predefínidos para N que são inferiores ou iguais a M contém K valores Ni sendo i=1, . . . , K e Nj-i < Nj és M para j = 2,..., K, caracterizado por compreender:
- gerar um livro de código inicial de vetores de reprodução M pelo algoritmo de treinamento com base em uma multiplicidade de vetores de treinamento;
- selecionar, do livro de código inicial, vetores de reprodução Ni de modo tal, que uma distorção de um livro de código que contém os vetores de reprodução selecionados seja mínima no tocante a todos os vetores de treinamento;
- copiar os vetores de reprodução selecionados do livro de código inicial para o livro de código conjunto e apagar, do livro de código inicial, os vetores de reprodução selecionados; e
- repetir, para cada Ni com 1 < i < K, as seguintes etapas:
- selecionar, do livro de código inicial, vetores de reprodução Ní-Ní-í de modo tal, que uma distorção de um livro de código que contém os vetores de reprodução Nm já copiados para o livro de código conjunto e os vetores de reprodução selecionados seja mínima no tocante a todos os vetores de treinamento; e
- copiar os vetores de reprodução selecionados do livro de código inicial para as seguintes posições livres no sentido decrescente no livro de código conjunto e apagar, do livro de código inicial, os vetores de reprodução selecionados.
Petição 870190016915, de 19/02/2019, pág. 16/18
9/9
19. Dispositivo para a determinação de um livro de código conjunto de vetores de reprodução M para uso em uma quantificação ao nível N de vetores, em que M é um número máximo predefinido de níveis M, em que N é selecionável, antes da quantificação, de um conjunto de pelo menos dois valores predefinidos que são inferiores ou iguais a M, e em que, na quantificação, um vetor de reprodução para cada vetor é selecionado de um livro de código de níveis N de vetores de reprodução N que são, para cada N no conjunto de pelo menos dois valores predefinidos, representados pelos primeiros vetores de reprodução N do livro de código conjunto, caracterizado por compreender:
- meios para a geração dos vetores de reprodução por um algoritmo de treinamento pelo menos parcialmente baseado em uma multiplicidade de vetores de treinamento; e
- meios para armazenar e dispor os vetores de reprodução gerados na memória de acordo com um algoritmo de disposição, de modo para formar o livro de código conjunto de modo que para cada N, os primeiros vetores de reprodução N no conjunto de vetores de reprodução M formam um livro de código de níveis N que permite uma ligeira distorção média dos vetores quando usado na quantificação dos vetores.
BRPI0615709-2A 2005-08-29 2006-08-25 Método e dispositivo de quantificação de vetores ao nível n, método e dispositivo para a recuperação de vetores de reprodução, sistema para a transferência de representaçõesde vetores, método e dispositivo para a determinação de um livro de código conjunto BRPI0615709B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/214,484 2005-08-29
US11/214,484 US7587314B2 (en) 2005-08-29 2005-08-29 Single-codebook vector quantization for multiple-rate applications
PCT/IB2006/052956 WO2007026295A2 (en) 2005-08-29 2006-08-25 Single-codebook vector quantization for multiple-rate applications

Publications (2)

Publication Number Publication Date
BRPI0615709A2 BRPI0615709A2 (pt) 2011-05-24
BRPI0615709B1 true BRPI0615709B1 (pt) 2019-08-20

Family

ID=37697832

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0615709-2A BRPI0615709B1 (pt) 2005-08-29 2006-08-25 Método e dispositivo de quantificação de vetores ao nível n, método e dispositivo para a recuperação de vetores de reprodução, sistema para a transferência de representaçõesde vetores, método e dispositivo para a determinação de um livro de código conjunto

Country Status (17)

Country Link
US (1) US7587314B2 (pt)
EP (1) EP1920434B1 (pt)
JP (1) JP4777429B2 (pt)
KR (1) KR100982211B1 (pt)
CN (1) CN101288118B (pt)
AT (1) ATE446571T1 (pt)
AU (1) AU2006286177C1 (pt)
BR (1) BRPI0615709B1 (pt)
DE (1) DE602006009950D1 (pt)
ES (1) ES2332330T3 (pt)
HK (1) HK1122640A1 (pt)
MX (1) MX2008002434A (pt)
MY (1) MY144576A (pt)
PL (1) PL1920434T3 (pt)
RU (1) RU2391715C2 (pt)
WO (1) WO2007026295A2 (pt)
ZA (1) ZA200801844B (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7966175B2 (en) * 2006-10-18 2011-06-21 Polycom, Inc. Fast lattice vector quantization
US7961640B2 (en) * 2006-10-26 2011-06-14 Qualcomm Incorporated Method and apparatus for codebook exchange in a multiple access wireless communication system
KR101083291B1 (ko) * 2006-12-05 2011-11-14 후아웨이 테크놀러지 컴퍼니 리미티드 벡터 양자화를 위한 방법 및 장치
US7813922B2 (en) * 2007-01-30 2010-10-12 Nokia Corporation Audio quantization
RU2461079C2 (ru) * 2008-02-15 2012-09-10 Нокиа Корпорейшн Упрощенная индексация и деиндексация векторов
US20100257174A1 (en) * 2009-04-02 2010-10-07 Matthew Dino Minuti Method for data compression utilizing pattern-analysis and matching means such as neural networks
CN101577551A (zh) * 2009-05-27 2009-11-11 华为技术有限公司 一种生成格型矢量量化码书的方法及装置
KR101826331B1 (ko) 2010-09-15 2018-03-22 삼성전자주식회사 고주파수 대역폭 확장을 위한 부호화/복호화 장치 및 방법
CA2929800C (en) * 2010-12-29 2017-12-19 Samsung Electronics Co., Ltd. Apparatus and method for encoding/decoding for high-frequency bandwidth extension
ES2745143T3 (es) * 2012-03-29 2020-02-27 Ericsson Telefon Ab L M Cuantificador vectorial
US9304703B1 (en) * 2015-04-15 2016-04-05 Symbolic Io Corporation Method and apparatus for dense hyper IO digital retention
WO2016030568A1 (en) * 2014-08-28 2016-03-03 Nokia Technologies Oy Audio parameter quantization
CN108028045A (zh) * 2015-07-06 2018-05-11 诺基亚技术有限公司 用于音频信号解码器的位错误检测器
US10531099B2 (en) * 2016-09-30 2020-01-07 The Mitre Corporation Systems and methods for distributed quantization of multimodal images
CN112036821B (zh) * 2020-08-24 2024-02-02 智能创谷(北京)科技有限公司 基于网格图规划专线的量化方法、装置、介质和电子设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0365822A (ja) * 1989-08-04 1991-03-20 Fujitsu Ltd ベクトル量子化符号器及びベクトル量子化復号器
US5734791A (en) * 1992-12-31 1998-03-31 Apple Computer, Inc. Rapid tree-based method for vector quantization
US5481739A (en) * 1993-06-23 1996-01-02 Apple Computer, Inc. Vector quantization using thresholds
WO1995010760A2 (en) * 1993-10-08 1995-04-20 Comsat Corporation Improved low bit rate vocoders and methods of operation therefor
GB2300548B (en) * 1995-05-02 2000-01-12 Motorola Ltd Method for a communications system
US6215910B1 (en) * 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US6952671B1 (en) * 1999-10-04 2005-10-04 Xvd Corporation Vector quantization with a non-structured codebook for audio compression
US6504877B1 (en) * 1999-12-14 2003-01-07 Agere Systems Inc. Successively refinable Trellis-Based Scalar Vector quantizers
CA2388358A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
US8090577B2 (en) 2002-08-08 2012-01-03 Qualcomm Incorported Bandwidth-adaptive quantization
CA2415105A1 (en) * 2002-12-24 2004-06-24 Voiceage Corporation A method and device for robust predictive vector quantization of linear prediction parameters in variable bit rate speech coding
JP4579930B2 (ja) * 2004-01-30 2010-11-10 フランス・テレコム 次元ベクトルおよび可変解像度量子化
KR101010585B1 (ko) * 2004-07-23 2011-01-24 텔레콤 이탈리아 소시에떼 퍼 아찌오니 벡터 코드북 생성 방법, 데이터 압축 방법 및 장치, 및분산 음성 인식 시스템
US20060080090A1 (en) * 2004-10-07 2006-04-13 Nokia Corporation Reusing codebooks in parameter quantization
US8510105B2 (en) * 2005-10-21 2013-08-13 Nokia Corporation Compression and decompression of data vectors
KR101083291B1 (ko) * 2006-12-05 2011-11-14 후아웨이 테크놀러지 컴퍼니 리미티드 벡터 양자화를 위한 방법 및 장치

Also Published As

Publication number Publication date
AU2006286177C1 (en) 2011-08-18
ATE446571T1 (de) 2009-11-15
US7587314B2 (en) 2009-09-08
KR20080039523A (ko) 2008-05-07
AU2006286177A1 (en) 2007-03-08
EP1920434B1 (en) 2009-10-21
WO2007026295A3 (en) 2007-07-05
MX2008002434A (es) 2008-04-03
BRPI0615709A2 (pt) 2011-05-24
CN101288118A (zh) 2008-10-15
JP4777429B2 (ja) 2011-09-21
HK1122640A1 (en) 2009-05-22
JP2009506368A (ja) 2009-02-12
PL1920434T3 (pl) 2010-03-31
RU2391715C2 (ru) 2010-06-10
ES2332330T3 (es) 2010-02-02
ZA200801844B (en) 2009-10-28
RU2008106651A (ru) 2009-10-10
KR100982211B1 (ko) 2010-09-14
MY144576A (en) 2011-10-14
CN101288118B (zh) 2011-07-20
US20070055509A1 (en) 2007-03-08
DE602006009950D1 (de) 2009-12-03
EP1920434A2 (en) 2008-05-14
WO2007026295A2 (en) 2007-03-08
AU2006286177B2 (en) 2011-04-14

Similar Documents

Publication Publication Date Title
BRPI0615709B1 (pt) Método e dispositivo de quantificação de vetores ao nível n, método e dispositivo para a recuperação de vetores de reprodução, sistema para a transferência de representaçõesde vetores, método e dispositivo para a determinação de um livro de código conjunto
US7680670B2 (en) Dimensional vector and variable resolution quantization
EP2274833B1 (en) Vector quantisation method
JP4224021B2 (ja) 信号のマルチレートによる格子ベクトル量子化の方法とシステム
ES2821432T3 (es) Cuantificación de audio mediante indexación de vectores de complejidad reducida
BRPI0910787B1 (pt) método para codificar um símbolo, método para decodificar um símbolo, método para transmitir um símbolo de um transmissor a um receptor, codificador, decodificador e sistema para transmitir um símbolo de um transmissor a um receptor
WO2009059557A1 (fr) Procédé et appareil de quantification à niveaux multiples
JP4601690B2 (ja) ベクトル符号化/復号化方法、装置、及びストリーム・メディア・プレイヤー
CN114153848B (zh) 区块链数据存储方法及装置、电子设备
BR122020009462A2 (pt) codificadores de áudio, decodificadores de áudio, métodos e programas de computador que adaptam uma codificação e decodificação de bits menos significativos
CN101266795B (zh) 一种格矢量量化编解码的实现方法及装置
US9318115B2 (en) Efficient coding of binary strings for low bit rate entropy audio coding
RU2461079C2 (ru) Упрощенная индексация и деиндексация векторов
Vasilache et al. Robust indexing of lattices and permutation codes over binary symmetric channels
CN116192340B (zh) 光通信网络中的差错控制方法和装置
Shoham Hierarchical vector quantization with application to speech waveform coding
TW202301346A (zh) 半導體裝置以及半導體裝置的信號處理方法
Patel Combined source coding and modulation for bandwidth efficient communications
JPH06510888A (ja) 符号語検索方法および符号語検索装置
Hui Asymptotic performance and complexity of quantization

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: NOKIA TECHNOLOGIES OY (FI)

B15K Others concerning applications: alteration of classification

Ipc: H03M 7/30 (2006.01), G10L 19/24 (2013.01)

B15K Others concerning applications: alteration of classification

Ipc: G10L 19/24 (2013.01), H03M 7/30 (2006.01)

B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: G10L 19/24 , H03M 7/30

Ipc: H03M 7/30 (1985.01), G10L 19/24 (2013.01)

B06T Formal requirements before examination [chapter 6.20 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H03M 7/30 , G10L 19/24 , G10L 19/00

Ipc: H03M 7/30 (1985.01), G10L 19/24 (2013.01)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 20/08/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 20/08/2019, OBSERVADAS AS CONDICOES LEGAIS