BRPI0909699B1 - Métodos para codificação combinatória de baixa complexidade de sinais, codificador e decodificador - Google Patents

Métodos para codificação combinatória de baixa complexidade de sinais, codificador e decodificador Download PDF

Info

Publication number
BRPI0909699B1
BRPI0909699B1 BRPI0909699-0A BRPI0909699A BRPI0909699B1 BR PI0909699 B1 BRPI0909699 B1 BR PI0909699B1 BR PI0909699 A BRPI0909699 A BR PI0909699A BR PI0909699 B1 BRPI0909699 B1 BR PI0909699B1
Authority
BR
Brazil
Prior art keywords
positions
occupied
unoccupied
vector
encoding
Prior art date
Application number
BRPI0909699-0A
Other languages
English (en)
Inventor
Udar Mittal
James P. Ashley
Original Assignee
Google Technology Holdings LLC
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=40811155&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI0909699(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Google Technology Holdings LLC filed Critical Google Technology Holdings LLC
Publication of BRPI0909699A2 publication Critical patent/BRPI0909699A2/pt
Publication of BRPI0909699A8 publication Critical patent/BRPI0909699A8/pt
Publication of BRPI0909699B1 publication Critical patent/BRPI0909699B1/pt

Links

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

métodos para codificação combinatória de baixa complexidade de sinais, codificador e decodificador método e estrutura para codificar e decodificar posição de pulso e/ou magnitudes de pulso que comutam adaptativamente entre codificação da posição de pulsos tendo um valor não-zero e codificação da posição de pulsos tendo valor zero.

Description

MÉTODOS PARA CODIFICAÇÃO COMBINATÓRIA DE BAIXA COMPLEXIDADE DE SINAIS, CODIFICADOR E DECODIFICADOR
ANTECEDENTES
Métodos para codificar quantidades de vetor ou matriz para fala, áudio, imagem, vídeo, e outros sinais também conhecidos. Um desses métodos é descrito na Patente dos Estados Unidos 6.236.960 por Peng e outros, (que é aqui incorporada mediante referência) é conhecido como Codificação de Pulso Fatorial (ou FPC). FPC pode codificar um vetor xi utilizando um total de M bits, dado que:
n-\
i=0 e todos os valores do vetor xi são de valor integral de tal modo que m < .\< m onde é o número total de pulsos de amplitude unitária, e n é o comprimento de vetor. Os M bits totais são usados para codificar N combinações de uma maneira maximamente eficiente, de tal modo que a seguinte expressão, que descreve o número mínimo teórico de combinações, é verdadeira:
N = ^F(n,d)D(m,d)2d <2M . (2) cl=l
Para essa equação, F(n,d) é o número de combinações de d elementos de vetor não-zero em relação a n posições dadas por:
F(n
nl d\(n
(3)
D(m,d) é o número de combinações de d elementos de vetor não-zero dados m pulsos unitários totais dados por: D(m,d) = F(m -l,d -1), (4)
Petição 870190061263, de 01/07/2019, pág. 18/24
2/48 e 2d representa as combinações exigidas para descrever a polaridade (sinal) dos d elementos de vetor não-zero. O termo min(m,n) permite o caso onde o número de pulsos de magnitude unitária m excede o comprimento de vetor n. Um método e aparelho para codificar e decodificar vetores dessa forma foi integralmente descrito na técnica anterior. Além disso, uma implementação prática desse método de codificação foi descrita em 3GPP2 padrão C.S0014-B, onde o comprimento de vetor n = 54 e o número de pulsos de magnitude unitária m = 7 produzem um M = palavra código de 35 bits.
Embora esses valores de n e m não causem qualquer peso de complexidade não razoável, valores maiores podem rapidamente causar problemas, especialmente em dispositivos de mão, móveis, que precisam manter memória e complexidade computacional as mais baixas possíveis. Por exemplo, o uso desse método de codificação para algumas aplicações (tal como codificação de áudio) pode exigir n = 144 e m = 28, ou superior. Sob essas circunstâncias, o custo associado com a produção da expressão combinatória F(n,d) usando os métodos da técnica anterior pode ser muito alto para implementação prática.
Observando-se esse custo em maior detalhe, podemos reescrever a Equação 3 como:
A implementação direta é problemática porque F(144,28) exigiria 197 bits de precisão no numerador e 98 bits de precisão no denominador para produzir um quociente de 99
Petição 870170093866, de 04/12/2017, pág. 7/58
3/48 bits. Como a maioria dos processadores de sinal digital (DSPs) utilizados nos dispositivos de mão atuais suporta tipicamente apenas operações de multiplicação de 16 bits x 16 bits, rotinas especiais de multiplicação/divisão de multiprecisão precisariam ser empregadas. Tais rotinas requerem uma série de operações de multiplicar/acumular embutidas que tipicamente requerem na ordem de k operações de multiplicar/acumular (MAC), onde k é o número de segmentos de 16 bits no operando. Para um operando de 197 bits, A/ = |”197/16| = 13 . Assim, a execução de uma única multiplicação de 197 x 16 bits exigiria um mínimo de 13 operações MAC; acrescidas de operações de deslocamento e de armazenamento. O termo denominador é calculado de uma maneira similar para produzir um resultado de 98 bits. Além disso, uma divisão de 197/98 bits é exigida, que é uma operação extremamente complexa, desse modo a computação da relação fatorial inteira na Equação 5 exigiria recursos consideráveis.
Em um esforço para reduzir a complexidade, a Equação 5 pode ser reescrita para distribuir as operações de dividir para produzir o seguinte:
F(n, d) = round
(d-2) n-d+2Ί|n-d+1
Π Ϊ (6)
Nessa expressão, a faixa dinâmica das operações de dividir é dividida, mas infelizmente, a resolução aumentada do quociente é necessária para representar com exatidão a divisão por 3, 7, 9, etc. Para acomodar essa estrutura, uma operação de arredondamento também é necessária para garantir um resultado de número inteiro. Dado o grande
Petição 870170093866, de 04/12/2017, pág. 8/58
4/48 número de operações de divisão de alta precisão, essa implementação não resolve adequadamente o problema de complexidade para m e n, grandes, e adicionalmente tem o potencial de produzir um resultado incorreto devido aos erros acumulados em precisão.
Em ainda outra implementação, a Equação 5 pode ser rearranjada da seguinte maneira:
F(n,d) = /7 - (/7-1) - í—| - (/7-2) ·ί—|···(/7-<7 + 2) -í—-—| -(/7 -d + 1) - í — |. (7)
J J \d-\) \d)
Se essa expressão for avaliada da esquerda para a direita, o resultado sempre produzirá um valor de número inteiro. Embora esse método controle o problema de faixa dinâmica e de precisão até certo ponto, valores grandes de m e n ainda requerem uso extensivo de operações de multiplicar e dividir de multiprecisão.
Finalmente, para minimizar a complexidade computacional, pode ser possível pré-computar e armazenar todas as combinações fatoriais em uma tabela de consulta. Assim, todos os valores de F(n,m) podem ser simplesmente armazenados em uma matriz n x m e recuperados apropriadamente a partir da memória utilizando muito poucos ciclos de processador. O problema com essa abordagem, contudo, é que à medida que n e m se tornam muito grandes, o mesmo acontece com a exigência de memória associada. Citando o exemplo anterior, F(144, 28) exigiria 144 x 28 x |~99 bits/8 bits/byte! = 52,416 bytes de armazenamento, o que não é razoável para a maioria dos dispositivos de mão, móveis. Portanto, existe a necessidade de um método e aparelho para Codificação de Pulso Fatorial combinatória de
Petição 870170093866, de 04/12/2017, pág. 9/58
5/48 baixa complexidade de vetores.
Um artigo intitulado “Algoritmos de compressão de imagens multiespectrais” por T. Markas e outros, Conferência Data Compression, 1993, DCC'93, Snowbird, UT, USA, de 30 de março a 2 de abril de 1993, Los Alamitos, CA,USA, IEEE Comput. SOC, US, 30 de março de 1993 páginas 391-400 descrevem um algoritmo de compressão de dados que é capaz de reduzir significativamente a grande quantidade de informações contidas em imagens multiespectrais e hiperespectrais. O algoritmo desenvolvido leva em consideração as correlações espectrais e espaciais encontradas em imagens multiespectrais. O esquema proposto utiliza um codificador de transformação unidimensional para remover a redundância espectral e uma transformada wavelet bidimensional para remover a redundância espacial de imagens multiespectrais. As imagens transformadas são posteriormente divididas em regiões ativas que contêm coeficientes de wavelet significativos. Cada bloco ativo é então codificado hierarquicamente usando árvores de mapas de bits multidimensionais.
Breve Descrição dos Desenhos
As características da invenção consideradas como novéis são apresentadas com particularidade nas reivindicações anexas. A própria invenção, contudo, tanto em relação à organização como em relação ao método de operação, em conjunto com objetivos e vantagens da mesma, pode ser mais bem-entendida mediante referência à descrição detalhada seguinte da invenção, a qual descreve certas modalidades exemplares da invenção, considerada em conjunto com os desenhos anexos nos quais:
Petição 870170093866, de 04/12/2017, pág. 10/58
6/48
A Figura 1 é um diagrama de blocos de um codificador.
A Figura 2 é um diagrama de blocos de um decodificador.
A Figura 3 é um fluxograma mostrando a operação de um gerador de função combinatória da Figura 1 e da Figura 3.
A Figura 4 é um diagrama de blocos de um codificador de acordo com várias modalidades.
A Figura 5 é um fluxograma mostrando a operação do codificador de acordo com diversas modalidades.
A Figura 6 é um diagrama de blocos de um decodificador de acordo com diversas modalidades.
A Figura 7 é um fluxograma mostrando a operação do decodificador de acordo com várias modalidades.
A Figura 8 é um fluxograma mostrando a operação de um codificador utilizando densidade estimada de acordo com diversas modalidades.
A Figura 9 é um fluxograma mostrando a operação de um decodificador utilizando a densidade estimada de acordo com várias modalidades.
A Figura 10 é um fluxograma mostrando a operação de um codificador em relação a um valor limite de acordo com várias modalidades.
A Figura 11 é um fluxograma mostrando a operação de um decodificador em relação a um valor limite de acordo com diversas modalidades.
Aqueles versados na técnica considerarão que os elementos nas figuras são ilustrados para simplicidade e clareza e não foram necessariamente traçados em escala. Por exemplo, as dimensões de alguns dos elementos nas figuras podem ser exageradas em relação a outros elementos para
Petição 870170093866, de 04/12/2017, pág. 11/58
7/48 ajudar a aperfeiçoar o entendimento das modalidades da presente invenção.
Descrição Detalhada
Embora essa invenção seja suscetível de modalidade em muitas formas diferentes, serão mostradas nos desenhos e serão aqui descritas em detalhe, específica as modalidades, com o entendimento de que a presente revelação deve ser considerada como um exemplo dos princípios da invenção e não destinada a limitar a invenção às modalidades específicas mostradas e descritas. Na descrição abaixo, os numerais de referência semelhantes são usados para descrever as mesmas, similares ou correspondentes partes nas várias vistas dos desenhos.
Nesse documento, termos relacionais tais como primeiro e segundo; superior e inferior; e semelhantes, podem ser usados apenas para distinguir uma entidade ou ação de outra entidade ou ação sem necessariamente exigir ou sugerir qualquer tal relação ou ordem efetiva entre tais entidades ou ações. Os termos: compreende, compreendendo, ou suas variações, pretendem abranger uma inclusão não exclusiva, de tal modo que um processo, método, artigo, ou aparelho que compreende uma lista de elementos não inclui apenas esses elementos, mas pode incluir outros elementos não relacionados expressamente ou inerentes ao tal processo, método, artigo, ou aparelho. Um elemento precedido por compreende... um não impede, sem mais restrições, a existência de elementos idênticos adicionais no processo, método, artigo, ou aparelho que compreende o elemento.
Referência do princípio ao fim desse documento a uma modalidade; certas modalidades; determinada
Petição 870170093866, de 04/12/2017, pág. 12/58
8/48 modalidade”; ou termos similares; significa que uma característica específica, estrutura, ou aspecto descrito em conexão com a modalidade é incluído ao menos em uma modalidade da presente invenção. Assim, os surgimentos de tais frases ou em diversos locais por todo esse relatório descritivo não estão todos necessariamente se referindo à mesma modalidade. Além disso, os aspectos, estruturas, ou características específicas podem ser combinados em qualquer forma adequada em uma ou mais modalidades sem limitação.
O termo “ou” conforme aqui usado deve ser interpretado como inclusivo ou significando qualquer um ou qualquer combinação. Portanto, A, B ou C” significa qualquer um dos seguintes: A; B; C; A e B; A e C; B e C; A, B e C”. Uma exceção a essa definição ocorrerá apenas quando uma combinação de elementos, funções, etapas ou ações forem de certa forma inerentemente exclusivas mutuamente.
A presente invenção se refere geralmente aos vetores de codificação e, particularmente, à Codificação de Pulso Fatorial combinatória de vetores.
Voltando-se agora para os desenhos, em que numerais semelhantes designam componentes semelhantes, a Figura 1 é um diagrama de blocos do codificador 100. O codificador 100 compreende o gerador de vetor 102, conjunto de circuitos de codificação combinatória (codificador) 106, gerador de função de combinação 108, e outro conjunto de circuitos de codificação 104. Durante operação, um sinal de entrada a ser codificado é recebido pelo gerador de vetor 102. Conforme sabido na técnica, o sinal de entrada pode compreender sinais tais como fala, áudio, imagem, vídeo, e
Petição 870170093866, de 04/12/2017, pág. 13/58
9/48 outros sinais.
O gerador de vetor 102 recebe o sinal de entrada e cria o vetor xi. O gerador de vetor 102 pode compreender qualquer número de paradigmas de codificação incluindo, mas não limitado à codificação de fala de Predição Linear Estimulada por Código (CELP) conforme descrito por Peng e outros, codificação de domínio de transformada para áudio, imagens e vídeo incluindo métodos baseados em Transformada Discreta de Fourier (DFT), Transformada Discreta de Cosseno (DCT), e Transformada de Cosseno Discreta Modificada (MDCT) codificação de transformada baseada em oscilação de onda, modulação de código de pulso de domínio de tempo, direta (PCM), PCM diferencial, PCM diferencial adaptativa (ADPCM), ou qualquer uma de uma família de técnicas de codificação de sub-banda que são bem conhecidas na arte. Virtualmente qualquer vetor de sinal da forma dada acima pode ser vantajosamente processado de acordo com certas modalidades da presente invenção.
Conjunto de circuitos de codificação combinatória 106 recebe o vetor xi e utiliza Codificação de Pulso Fatorial para produzir uma palavra-código C. Conforme discutido acima Codificação de Pulso Fatorial pode codificar um vetor
Η I xi utilizando um total de M bits, dado que Z-n=ol u, e todos os valores do vetor xi são estimados integralmente de tal modo que , onde m é o número total de pulsos de amplitude unitária, e n é o comprimento de vetor. Conforme discutido acima, valores maiores de m e n podem rapidamente causar problemas, especialmente nos dispositivos de mão, móveis, os quais precisam manter a memória e a complexidade computacional as mais baixas
Petição 870170093866, de 04/12/2017, pág. 14/58
10/48 possíveis.
Para resolver esse problema, o gerador de função combinatória 108 utiliza uma técnica de baixa complexidade para produzir F'(n,d). Conjunto de circuitos de codificação combinatória 106 então utiliza F' (n,d) para produzir a palavra-código C. O conjunto de circuitos 108 utiliza aproximações de resolução relativamente baixa (bits de precisão) de combinações fatoriais F' (n,d), que proporcionam apenas precisão suficiente para permitir que uma palavra-código válida seja gerada. Isto é, desde que certas propriedades sejam mantidas, uma aproximação adequada da função F(n,d) é suficiente para garantir que a palavra-código resultante seja decodificável de forma única.
Para descrever a geração de F' (n,d), deixemos prosseguir mediante primeiramente derivação de uma função F' (n,d) que é uma aproximação adequada de F(n,d) . A primeira etapa é a de pegar o logaritmo de uma base arbitrária a da Equação 5, e pegar a base logarítmica inversa a dos termos rearranjados:
F(w,ó/) = expa ^loga(z)-^loga(j) , ^z=w-í7+1 y=l ;
(8) onde a função exP«(^) a . a seguir, definir funções P(i),
Q(d), e R(k), e substituir na Equação 8 de tal modo que:
onde e R(k) = expa (k) = ak
Contudo, de acordo com uma modalidade exemplar da presente invenção, não é necessário que F(n,d) e F'(n,d)
Petição 870170093866, de 04/12/2017, pág. 15/58
11/48 sejam equivalentes para que a palavra-codigo resultante seja decodificável de forma única. Há apenas duas condições que são suficientes para que isso seja verdadeiro:
e
Para a primeira condição, a restrição simplesmente diz que se F'(n,d)<F(n,d), então haverá espaços-código sobrepostos, e subsequentemente, haverá mais do que uma entrada capaz de gerar uma palavra-código específica; assim, a palavra-código é decodificável de forma única. A segunda condição declara que o erro para um determinado n, d deve ser maior do que ou igual à soma dos termos de erro associados com o elemento anterior da relação recursiva descrita por Peng e outros na Patente dos Estados Unidos 6.236.960. Pode ser mostrado que F(n,d} = F(n-1,íZ) + F(n — \,d-1), que é apenas verdadeiro se a expressão combinatória for exatamente igual a F(n,d} — Cd-n\ld\(n-d)\. Contudo, enquanto a desigualdade na Equação 11 é suficiente, pode então ser necessariamente verdadeiro para todos os valores de n e d. Para tais valores F(n,d) pode satisfazer outra desigualdade derivada da Equação 31 de Peng e outros, e dada por:
d
F(n,í/)>^F(n-(íZ-/+1),/). (12) z=l
Nesse caso, a Equação 11 tem que ser satisfeita com desigualdade estrita para certo (m^)> d), isto é:
Petição 870170093866, de 04/12/2017, pág. 16/58
12/48
Com referência de volta à Figura 9, agora pretendemos gerar F' (n,d) mediante criação das funções P' (i), Q' (d) e R' (k), com aproximações de baixa complexidade das funções originais de tal modo que:
F'(n,d) = R'( (14) \i=n-d+1 / e onde as condições dadas nas Equações 10 e 11 são satisfeitas. Considerando P(i), podemos desejar aproximar a função de tal modo que 0) - l°ga0)’z e [1, 2,..., «] . ge escolhermos a = 2 e então limitarmos P' (i) a 32 bits de precisão, as operações resultantes são fáceis de implementar em um dispositivo móvel de mão uma vez que a maioria dos DSPs suporta adições de 32 bits de ciclo único. Portanto, definimos:
P'(zj = 2^(!)|_2Z(!) log2(z)+1J , (15) onde l(i) é um fator de deslocamento que pode variar como uma função de i. Na modalidade preferida, l(i) = l = 21, mas muitos outros conjuntos de valores são possíveis. Para esse exemplo, o fator 2l é equivalente a um deslocamento de l bit à esquerda, pelo que a função de piso Lx+1J remove os bits fracionários enquanto arredondando para o próximo número inteiro mais elevado, e finalmente o fator 2_l desloca o resultado de volta para a direita por l bits. Utilizando-se essa metodologia, a função ^(0-^2(0 para todos i>1, e também provê faixa dinâmica e precisão, suficientes, utilizando apenas 32 bits porque 9 bits de resolução de número inteiro positivo no domínio log2 podem
Petição 870170093866, de 04/12/2017, pág. 17/58
13/48 representar um número de 512 bits. Para evitar a complexidade de computar esses valores em tempo real, eles podem ser pré-computados e armazenados em uma tabela utilizando apenas 144 x 4 bytes de memória para o exemplo F(144, 28). Utilizando-se uma metodologia similar para aproximar Q(d), obtemos:
QW = o, (16) onde a função de piso |_x-1_l é usada devido à subtração da quantidade a partir ô 60 - Σ7·=ι 1O®2(2) de modo que a do total. Isso garante que contribuição de Q'(d) garantirá
F'(n,d)>F(n,d). Embora l(j) possa assumir muitos valores dependendo da configuração de utiliza um valor de l(j) deslocamento variável. Como computado e armazenado em uma m e n, a modalidade preferida = l= 14 para o fator de P'(i), Q'(d) pode ser prétabela utilizando apenas 28 x bytes de memória para o exemplo F(144, 28). Para definir
R'(k), precisamos primeiramente definir k como:
k= ΣΡ'(ί)-0(ά). (17) i=n-d+l
Com P'(i) e Q'(d) definidos acima, k é preferivelmente um número de 32 bits com um componente de número inteiro sem sina de 8 bits ki e um componente fracionário de 24 bits ky. Utilizando isso, podemos derivar R' (k)>exp2( k)=2k ao deixar k = ki + ky e então pegando a base de logaritmo inverso 2 para produzir 2^=2^27. Podemos então utilizar uma expansão da série Taylor para estimar o componente fracionário para a precisão desejada, representada por /ç = 2kf f , arredondando o resultado utilizando a função de
Petição 870170093866, de 04/12/2017, pág. 18/58
14/48 teto, e então deslocando apropriadamente o resultado para formar um resultado de multiprecisão (com apenas l bits significativos), de tal modo que:
(18) onde 2 é o fator de deslocamento de número inteiro aplicado ao resultado de expansão da série Taylor. Aqui, l é um fator de deslocamento usado de uma maneira similar para as Equações 15 e 16 para garantir R' (k) >2k. Contudo, como R' (k) não pode ser praticamente pré-computado para operação em tempo real eficiente, deve-se tomar muito cuidado na especificação das operações exatas necessárias em ambos, no codificador e no decodificador para garantir que o vetor de sinal reconstruído combine exatamente com o vetor de sinal de entrada. Observar que R' (k) pode ser obtido a partir do deslocamento esquerdo o qual pode ser representado precisamente por l bits.
Na discussão acima, as funções P' (i), Q' (d) e R' (k) foram escolhidas de tal modo que cada estimativa de função individual garante que o F'(n,d)>F(n,d). Contudo, é necessário apenas para efeito agregado satisfazer essa condição. Por exemplo, P'(i) e Q'(d) podem ser descritos como acima, mas R' (k) pode ser uma função R' (k) « 2k mais convencional que pode truncar ou arredondar os bits menos significativos de tal modo que R'(k) pode ser inferior a 2k para alguns valores de k. Isso é aceitável desde que esse efeito seja pequeno em relação aos efeitos de P' (i) e Q'(d), de modo que as propriedades das Equações 10 e 11 ainda são verdadeiras.
Além disso, quaisquer funções P'(i), Q'(d) e R'(k)
Petição 870170093866, de 04/12/2017, pág. 19/58
15/48 podem ser usadas sem perda de generalidade desde que as propriedades nas Equações 10 e 11 sejam satisfeitas. Devese tomar cuidado, contudo, no sentido de que um aumento na taxa de bits pode ocorrer se muito pouca precisão for utilizada. Deve-se observar também que há uma contrapartida inerente em taxa de bits e complexidade, e para valores grandes de m n, um aumento de 1 ou 2 bits pode ser uma contrapartida razoável para uma redução significativa em complexidade.
A formulação da palavra-código parcial C, para posição e magnitudes, no conjunto de circuitos de codificação combinatória 106 é descrita agora. Deixemos π ~ {Ρ^Ρ^····’Ρν\ ser as posições de pulso não-zero (na ordem crescente) e μ - {m1,m2,....,mv} ser as magnitudes em posições respectivas dentro de um vetor x. O código para as posições de pulso é dado por:
IQ = ÈF(A^) ^-th<n·,(19) k=\ e o código para as magnitudes de pulso é dado por:
Iv—1 k,k
Ç, = ΣΓ(Σ^7 “W \<Σιη·Λ<ιη.
k=\ 7=17=1
Assim, a formulação dessa palavra-código requer adição de números de multiprecisão v e v-1. Operações de subtração similares são necessárias no decodificador. Essas operações também aumentam a complexidade do método FPC quando n e m são grandes. Considere a codificação/decodificação de um sinal de áudio para um sistema de codificação integrado de múltiplas camadas. Essa técnica é usada para codificar a transformada do sinal de erro residual nas três camadas do
Petição 870170093866, de 04/12/2017, pág. 20/58
16/48 sistema de múltiplas camadas. Deixemos o tamanho de um bloco de 20 ms ser n = 280 e é o mesmo para todas as camadas. O número dos pulsos para codificação depende da taxa de bits de cada camada. Se cada camada for de 8 kbps, 16 kbps, ou 32 kbps, então elas precisam de 160 bits, 320, bits e 640 bits para codificação do bloco de 20 ms, respectivamente. Utilizando a técnica FPC um bloco de comprimento 280 pode ser codificado utilizando 28, 74, e 230 pulsos para 160 bits, 320 bits, e 640 bits por camada, respectivamente. As operações de multiprecisão nas Equações (19) e (20) são realizadas em um processador de sinal digital que opera tipicamente em palavras de 16 bits. Assim, para formação de palavra-código de 16 bits, operações de adição precisam ser realizadas através de 10 palavras e para palavra-código de 640 bits a operação de adição deve ser realizada sobre 40 palavras. Cada operação de adição pega 4 unidades (geração de carregar, mover para arranjar, adicionar com carregar). Portanto, a codificação/decodificação da palavra-código de k-bits em pcamadas de um sistema de múltiplas camadas requer 400.p.Pk/16l. (2m-3) operações/segundo. Para diversos valores de n, m, e p a complexidade das operações de adição/subtração de multiprecisão é mostrada na Tabela 1. Nessa tabela, WMOPS significa Milhões de Operações Ponderadas por Segundo.
Tabela 1: Complexidade de Adição/Subtração na Codificação/Decodificação FPC utilizando um Método da Técnica Anterior
Número Tamanho Taxa de Bits Número Complexidade de
de de de de Adição/Subtração
Petição 870170093866, de 04/12/2017, pág. 21/58
17/48
Camadas Bloco Camada/Bits Pulsos de Multiprecisão
(p) (n) por Bloco de (m)
20 ms (k)
3 280 8 kbps/160 28 0,64 WMOPs
3 280 16 kbps/320 74 3.48 WMOPs
3 280 32 kbps/640 230 22.0 WMOPs
A partir da Tabela 1, observamos que quando dobra a taxa de bits, a complexidade da adição de multiprecisão aumenta seis vezes.
Conforme mencionado anteriormente, a função combinatória é substituída por uma função aproximada
F'(n,r) a qual é dada como:
F'(n,r) = R\ \i=n-r+l .
(21) onde
0, r = 1 r>1. (22)
U=2 e R'(k) é uma aproximação da função R' (k) ^2' dada como:
ã'(£) = L2MsL2/s^JJ, (23) onde k = ki + k/ é desmembrado em componentes
K = 2kf fracionários e de número inteiro de k, e f é uma expansão da série Taylor de baixa resolução do componente fracionário de k. Com base nas funções predefinidas acima Q' (r) e R' (k), P' (i) são primeiramente obtidos de modo que a desigualdade da capacidade de decodificação singular
F'(n, d) > F'(n-\, d) + F'(n-1, d-\) (24) é satisfeita para todos os valores de n e d.
Petição 870170093866, de 04/12/2017, pág. 22/58
18/48
Retornando às Equações (19) e (20), substituindo as funções aproximadas F' no lugar das funções atuais F produz:
V
IC„=^F\pk,k) Q<pk<n,(25) k=\ v-1 k,k = ΣΓ'(Σ*7 “ W ^Tmpmk<m k=\ 7=17=1
Codificação de Número de Posições Não-zero:
O formato de representação de mantissa e expoente 1rbit também tem vantagens na codificação do número de posições não-zero. A codificação do número de posições nãozero v é dada por:
C,_ = jvwmrn-u-l® (27) k=v+\
Pode ser facilmente visto que a multiplicação de duas funções aproximadas pode ser muito mais fácil no formato de mantissa e expoente do que no formato de multiprecisão. A principal vantagem, contudo, é quando desejamos reduzir a complexidade utilizando então a representação de mantissa e expoente lR-bit, cada um de F' (n,k) e F' (m-1,k-1) pode ser pré-armazenado utilizando apenas duas palavras (produto de suas mantissa lR-bit e soma de seu expoente também podem ser pré-armazenados). Isso possibilita codificação mais rápida de v sem qualquer exigência de ROM, significativa.
A Figura 2 é um diagrama de blocos do decodificador 200. Conforme mostrado, o decodificador 200 compreende conjunto de circuitos de decodificação combinatória 206, conjunto de circuitos de reconstrução de sinal 210, outro conjunto de circuitos de decodificação 204, e gerador de
Petição 870170093866, de 04/12/2017, pág. 23/58
19/48 função combinatória 108. Durante operação uma palavracódigo combinatória é recebida pelo conjunto de circuitos de decodificação combinatória 206. O conjunto de circuitos de decodificação combinatória 206 provê n e d ao gerador de função combinatória, e recebe F'(n,d) em resposta. O conjunto de circuitos de decodificação 302 cria então o vetor xi com base em F'(n,d). O conjunto de circuitos 206 opera de uma maneira similar ao conjunto de circuitos 106, exceto que subtração substitui as operações de adição. Em ψ'=ψ' -F'(n k} outras palavras, k ' 7. O vetor xi é passado para o conjunto de circuitos de reconstrução de sinal 210 onde o sinal de saída (por exemplo, fala, áudio, imagem, vídeo, ou outros sinais) é criado com base em xi e outros parâmetros a partir de outro conjunto de circuitos de decodificação 204. Mais especificamente, os outros parâmetros podem incluir qualquer número de parâmetros de reconstrução de sinal associados com o paradigma de codificação de sinal sendo usado em uma modalidade específica. Esses podem inclui, mas não são limitados a escalonamento de sinal e parâmetros de energia, e modelagem espectral e/ou parâmetros de filtro de síntese. Normalmente esses parâmetros são usados para escalonar a energia de, e/ou modelar espectralmente o vetor de sinal reconstruído xi de tal modo a reproduzir o sinal de saída final.
A Figura 3 é um fluxograma mostrando a operação de um gerador de função combinatória da Figura 1 e da Figura 3. Mais particularmente, o fluxo lógico 300 da Figura 3 mostra aquelas etapas para gerador de função combinatória 108 para produzir F'(n,d). O fluxo lógico começa em 301, 302 onde as entradas n e d são recebidas. Em 303 o acumulador A é
Petição 870170093866, de 04/12/2017, pág. 24/58
20/48 ajustado para 0. Em 304 o contador i é ajustado igual a n d + 1. Em 306 a aproximação de logaritmo P'(i) é adicionada ao acumulador A. Em 310 o contador i é incrementado por 1.
306 e 310 são repetidos em um ciclo até que o contador i
seja maior do que n . 312 test a i > n e termina o ciclo
quando i se torna maior do que n. Nesse estágio o
acumulador contém o logaritmo aproximado do numerador da
função combinatória F(n, d) . Uma aproximação de logaritmo do denominador da função combinatória Q' (d) é subtraída do acumulador em 316 para obter uma aproximação de logaritmo da função combinatória. Em 318 uma aproximação exponencial R' (A) do acumulador é considerada para gerar a aproximação B da função combinatória. Em 314, B é emitido como F'(n,d).
Embora o uso da computação combinatória de complexidade reduzida descrita acima sirva para reduzir significativamente a complexidade, a computação dessas funções ainda contribui grandemente para a complexidade dos métodos de codificação e de decodificação. Para tratar disso, certas modalidades da presente invenção proporcionam comutação adaptativa entre métodos de codificar e decodificar as posições de pulso e/ou magnitudes de pulso para diminuir o número de vezes em que a computação da função combinatória deve ser realizada.
Com referência outra vez às equações (19) e (20), assim como as suas equações de implementação de complexidade reduzida, correspondentes (25) e (26), observar que o processo de codificação na Equação (19) e Equação (25) requer v computações de funções combinatórias F e F', respectivamente. Similarmente, as Equações (20) e (26) requerem v-1 computações dessas funções. A
Petição 870170093866, de 04/12/2017, pág. 25/58
21/48 decodificação das posições de pulso e magnitude de pulso é iterativa e, portanto, o número de vezes que essas funções são computadas é tipicamente muito superior. No decodificador, o número de computações dessas funções aumenta linearmente com o número de posições não-zero ou posições ocupadas v. Para reduzir a complexidade da codificação/decodificação das posições de pulso e/ou magnitudes de pulso, certas modalidades alternativas da invenção proporcionam um método para codificar e decodificar a posição de pulso e/ou magnitudes de pulso que requer números menores de computações dessas funções combinatórias. Nessas modalidades alternativas, propomos a modificação para as Equações (19) e (20), e por extensão, modificação das Equações (25) e (26), para codificar seletivamente as posições não ocupadas.
Referir-se em primeiro lugar à Equação (20) e à equação de complexidade reduzida correspondente (26) . Se definirmos k
(28)
7=1 então a Equação (20) pode ser reescrita como:
0<//'<w-1 (20a)
4=1
E a equação (26) pode ser reescrita como:
0</X-<w-1 (26a)
4=1
Observar que as equações (20a) e (26a) são similares em estrutura às equações (19) e (25), respectivamente, com pk substituído por p'k, n substituído por m-1, e posições ocupadas v substituídas por v-1, isto é, a codificação das
Petição 870170093866, de 04/12/2017, pág. 26/58
22/48 magnitudes de pulso pode ser vista como codificação de posição de v-1 pulsos substituída em m-1 locais, onde as posições ocupadas são identificadas por p'k. Na realidade, as magnitudes de pulsos de codificação podem ser vistas como as magnitudes mj dos pulsos ocupados, sendo convertidas para gerar pseudo-posições definidas pelos termos pj e uj. Assim, qualquer modificação no método de codificação das posições de pulso pode ser facilmente estendida para a codificação de magnitudes de pulso e vice versa.
De acordo com algumas das modalidades alternativas, então, propomos a otimização de codificação das magnitudes de pulso e/ou posições de pulso para reduzir o número de computações exigidas de funções combinatórias. Antes da codificação/decodificação das posições de pulso, v é codificado/decodificado (equação 27). Portanto, se duas vezes o número de posições não-zero for maior do que o número de locais, isto é, 2’v > n, então o número de posições não ocupadas u^ui^--^u v é menor do que o número de posições ocupadas v. Assim, em tais casos a codificação/decodificação das posições não ocupadas utilizando uma equação similar à equação (19) ou (25) resultará em um número menor de computações das funções combinatórias e, portanto, terá complexidade inferior. Para ilustrar isso matematicamente, definiremos primeiramente uk como as posições não ocupadas, e U seria o conjunto de posições não ocupadas, isto é,
U= {0,1,p2,...,pv}. (29)
Observar que o tamanho de U é n-v. Agora, sempre que
Petição 870170093866, de 04/12/2017, pág. 27/58
23/48
2’v > n o código para posição é computado agora como n-v
C, = YF(uk,k) 0<uk<n (19z)
4=1 ou
In-v
0<uk<n. (25z)
4=1
Similarmente, para codificação de magnitudes se 2’(v-l)>(m-l),, então m-v
Cp = YJF(uk,k) 0<u’k<m-l,(20z)
4=1 ou
Im-V
Cp = YJF’(uk,k) 0<u'k<m-l,(26z)
4=1 onde u'k pertence a um conjunto U' definido como
U= {0,1,..., m -2} - {p[, p'2,..., p'v_x},(30) e p'k é conforme definido na Equação (28).
Avaliaremos agora como o método proposto de codificar seletivamente as posições não ocupadas pode reduzir a complexidade mediante aplicação da técnica proposta na codificação de 27 pulsos em 280 locais, isto é, n = 280 e m = 27. Como 2-m<77, a abordagem de codificação proposta pode não ser necessária para gerar o código para as posições de pulso Cn. Contudo, para codificação da magnitude de pulso a técnica proposta será vantajosamente usada.
Verifica-se que, sem usar a técnica proposta a complexidade do pior caso do algoritmo de codificação/decodificação (quando as funções combinatórias de baixa complexidade são usadas) nesse exemplo específico é quando o número de posições não-zero (v) está entre 25 e
Petição 870170093866, de 04/12/2017, pág. 28/58
24/48
27, isto é, entre m e m-2. Quando v=25, então, utilizando equação (26) exigirá 24 computações da função combinatória para codificar e várias mais para decodificar. O uso da técnica proposta (equação (26z)) em tal situação exigirá a computação da função combinatória apenas duas vezes no codificador e um número significativamente menor de vezes no decodificador em comparação com outras técnicas de decodificação.
De acordo com a técnica proposta para codificar/decodificar consistente com as modalidades da presente invenção, a complexidade do pior caso nesse exemplo é quando v está próximo de m/2. Nesse caso a codificação e a decodificação do número de posições nãozero v utilizando equação 27 fazem uma contribuição significativa para a complexidade. O armazenamento dos parâmetros (armazenamento de 54 palavras exigido nesse exemplo) conforme descrito na seção “Codificação do Número de Posições Não-zero” reduz ainda mais a complexidade.
A tabela abaixo mostra a redução em complexidade quando o método proposto de codificação das posições não ocupadas é usado para codificar 27 pulsos em 280 locais, e a codificação é realizada duas vezes em um quadro de 20 ms. A tabela também mostra a vantagem a ser obtida a partir do armazenamento dos parâmetros usados em computação de código para o número de posições não-zero (equação 27). A partir da tabela vemos que a codificação seletiva das posições não ocupadas resultou em um aperfeiçoamento de complexidade de 0,6 WMOPs (3,59 a 2,9) e se também armazenarmos os parâmetros usados na equação (27) então a economia é de 0,75 WMOPs (3,59 a 2,75).
Petição 870170093866, de 04/12/2017, pág. 29/58
25/48
A decodificação é um inverso do processo de codificação e envolve em primeiro lugar a decodificação do número de posições não-zero (v) com base na palavra-código recebida C. Vários métodos, por exemplo, aquele em Peng e outros e Mittal e outros (Patente dos Estados Unidos 6.662.154), para codificar/decodificar o número de posições não-zero pode ser adotado para essa finalidade. Palavrascódigo Ck e Cp para magnitudes são extraídas com base na palavra-código C e v. A posição Z71’ P2’ ’PV é decodificada com base na palavra-código Ck. As magnitudes mi> m2> > mv são decodificadas com base na palavra-código Cp. O sinal codificado é agora decodificado:
x =mksk (31)
Armazenando Parâmetros Codificando Posições não ocupadas quando necessário Complexidade (WMOPs)
NÃO NÃO 3,59
SIM NÃO 3,50
NÃO SIM 2,90
SIM SIM 2,75
A técnica aqui descrita de reduzir o número de computações da função combinatória mediante comutação entre codificação de posições, ocupadas e não ocupadas, pode ser adicionalmente aperfeiçoada mediante uma função combinatória aproximada aperfeiçoada conforme será descrito agora. A mesma se baseia no reconhecimento de que o decodificador tem complexidade significativa causada pela necessidade do decodificador em encontrar repetidamente o
Petição 870170093866, de 04/12/2017, pág. 30/58
26/48 maior valor de pk de tal modo que F' (pk, k) seja menor do que um número de multiprecisão Ck. O decodificador iterativamente obtém tal valor de pk. Essas iterações podem exigir várias computações das funções combinatórias F' que aumentam a complexidade do processo de decodificação.
Para reduzir ainda mais a complexidade da função combinatória aproximada em (21), em vez de pré-armazenar P' (i), uma soma parcial de P' (i) tal como:
ΧνηΣΠΟ, (32) i=l e agora a equação (21) pode ser computada equivalentemente como:
Embora o uso das funções combinatórias aproximadas tenha reduzido significativamente a complexidade, a computação dessas funções ainda forma uma das principais partes da complexidade da codificação. Um método de reduzir o número de computação de função combinatória mediante comutação entre codificação de posição ocupada e uma posição não ocupada foi recentemente revelada em uma revelação separada. Mesmo com esses aperfeiçoamentos, o decodificador tem uma complexidade significativa. Isso porque o decodificador precisa achar repetidamente o maior valor de pk de tal modo que F'(pk, k) seja menor do que um número de multiprecisão Ck. O decodificador iterativamente obtém tal valor de pk. Essas iterações podem exigir várias computações das funções combinatórias que aumentam a complexidade do processo de decodificação.
Em reconhecimento de que existe a necessidade de um método de codificação onde o decodificador não precisa
Petição 870170093866, de 04/12/2017, pág. 31/58
27/48 iterar para obter p2, uma função combinatória aperfeiçoada na qual o decodificador não precisa iterar para obter pk é apresentada. Se a equação (33) for usada para definir F' (pk, k) então pode não ser praticável obter tal solução sem as iterações.
Redefinimos a função combinatorial aproximada como:
F\n,d) =
R'(d P’(2 n - d +1) - d - Q\d})
F(fí,n-d} n>2 d
Caso contrário (34) onde
P'(j) = 2 z</> |_2Z</* log2(z)+ 1J , i e [1, 2,n] é o logaritmo de i, até 1(1)=16 locais decimais, e Q(d)=Q'(d)+d é calculado e armazenado de tal modo que F'(n, d) definido em (34) satisfaz a desigualdade de capacidade de decodificação única (24).
Com Q' (d) definido em (16) como o logaritmo aproximado (base 2) de d!, o F'(n, d) definido em (34) é uma aproximação da função combinatória efetiva definida na equação (3) e equação (5) . Retornando à equação (5), o numerador pode ser considerado como a d° potência da média geográfica de: n - 1. n-J2^ ...,n - d+1 A média aritmética n-desses números é 2 . Se aproximarmos a média geométrica com uma média aritmética a aproximação da equação (5) pode ser escrita como:
( 2 )
F\n,d^ / ( (35)
ΠΜΟ)
Se pegarmos o logaritmo (base 2) da equação (34) e usarmos uma abordagem similar àquela usada na obtenção da equação (21), obtemos
Petição 870170093866, de 04/12/2017, pág. 32/58
28/48
F\n,d) = R\d log2(2 -n - d +1) - d - ^log2(z)) (36) z=l assim
p'(w>iog2(zz), R(^k onde /=1 . Uma série de Taylor de baixa complexidade é usada para gerar R'(k). O método para gerar R' (k) é descrito na discussão após a equação (18) acima.
Conforme aqui usado e nas reivindicações anexas, diversas combinações fatoriais, isto é, função combinatorial F ou combinações fatoriais aproximadas F' , geralmente denotada em F', podem ser usadas sem se afastar do escopo das várias modalidades apresentadas. Conforme descrito acima, essas funções combinatórias podem incluir, mas não ser limitadas às seguintes equações:
F(n, d) = exp
F'(n,d) = R'\ YP’(i)-Q\d)\, F\n,r) = R\ TP'(i)-Q'(F) .
\i=n-d + l ) \i=n-r+í )
F'(n,d) = R'(S'(n)-S\n -d)-Q'(d)) θ
F'(n,d) = R'(d ·P'(2-n-d + V)-d -Q'(dy) .
Comutar adaptativamente entre métodos de codificação e decodificação de posições de pulso e/ou magnitudes de pulso para diminuir o número de vezes em que a computação da função combinatória deve ser realizada pode ser adicionalmente entendido mediante referência aos desenhos.
Com referência agora à Figura 4, um diagrama de blocos 400 do codificador é ilustrado. Conforme pode ser visto esse codificador, embora de certo modo similar àquele da Figura 1, possui o comutador 410, o qual é controlado pela
Petição 870170093866, de 04/12/2017, pág. 33/58
29/48 informação de densidade fornecida pelo estimador de densidade de posição 408, conforme mostrado. O vetor alvo x é introduzido no estimador de densidade de posição 408, que emite a densidade em termos do número total de posições ocupadas (v) , e em termos do número de posição ocupada que ainda deve ser codificada (η) e o número possível de locais dessas posições ocupadas (p). O bloco de codificação combinatória 106 pode gerar e emitir ambas, a posição ocupada (pk) e a posição não ocupada (uk) para o comutador 410. Quais dessas duas, (pk) ou (uk) que deve ser fornecido ao gerador de função combinatória 108 a partir do comutador 410 é decidido pelo comutador 410. O comutador pode passar a posição não ocupada (uk) para 108 se o número de posições não-zero for superior a algum valor predefinido. O comutador também pode passar a posição não ocupada (uk) se a relação do número de posições ocupadas que ainda serão codificadas para o possível número de locais dessas posições ocupadas for maior do que um valor predefinido.
A Figura 5 é um fluxograma mostrando a representação simplificada da operação do codificador da Figura 4. O fluxo lógico começa em 510 onde um sinal de entrada é recebido pelo gerador de vetor 102. Conforme discutido acima, o sinal de entrada pode compreender fala, áudio, imagem, vídeo, ou outros sinais. Em 520 o vetor xi é produzido e introduzido no conjunto de circuitos de codificação combinatória 106 onde m e v são determinados e passados para o gerador de função combinatória 108. Conforme discutido acima, m é o número total de pulsos de amplitude unitária (ou soma dos valores absolutos dos componentes de valor integral de xi) e v é o número de
Petição 870170093866, de 04/12/2017, pág. 34/58
30/48 elementos não-zero de xi. Em 530 F' (pj, j) é criado pelo gerador de função combinatória 108 e passado para o conjunto de circuitos de codificação combinatória 106, onde o vetor xi é codificado para criar a palavra-código combinatória C em 540. Como discutido acima, F' (pj, j) é criado mediante substituição das funções P(i), Q(j), e R(k) em F(pj, j), com aproximações de baixa complexidade das funções originais de tal modo que as condições dadas nas equações 10 e 11 são satisfeitas.
Com referência agora à Figura 6, é ilustrado um diagrama de blocos 600 de um decodificador consistente com certas modalidades. O decodificador 600 opera de forma inversa ao codificador 400. Como mostrado, o decodificador 600 compreende conjunto de circuitos de decodificação combinatória 206, conjunto de circuitos de reconstrução de sinal 210, outro conjunto de circuitos de decodificação 204, gerador de função combinatória 208, comutador 610, e estimador de densidade de posição 608. Durante operação uma palavra-código combinatória é recebida pelo conjunto de circuitos de decodificação combinatória 206. O conjunto de circuitos de decodificação combinatória 206 provê n e d ao gerador de função combinatória, e recebe F' (n,d) em resposta. O conjunto de circuitos de decodificação 302 cria então o vetor xi com base em F'(n,d). O conjunto de circuitos 206 opera de maneira similar ao conjunto de circuitos 106, exceto que a subtração substitui as ψ' = ψ' _ p'( n operações de adição. Em outras palavras, k χα+ι 1 . o vetor xi é passado para o conjunto de circuitos de reconstrução de sinal 210 onde o sinal de saída (por exemplo, fala, áudio, imagem, vídeo, ou outros sinais) é
Petição 870170093866, de 04/12/2017, pág. 35/58
31/48 criado com base em xi e outros parâmetros a partir de outro conjunto de circuitos de decodificação 204. Mais especificamente, os outros parâmetros podem incluir qualquer número de parâmetros de reconstrução de sinal associados com o paradigma de codificação de sinal sendo usado em uma modalidade específica. Esses podem incluir, mas não são limitados aos parâmetros de escalonamento e de energia de sinal, e parâmetros de modelagem espectral e/ou de filtro de síntese. Normalmente esses parâmetros são usados para escalar a energia e/ou modelar espectralmente o vetor de sinal reconstruído xi de tal modo a reproduzir o sinal de saída final.
A Figura 7 é um fluxograma mostrando a representação simplificada da operação do decodificador da Figura 6. O fluxo lógico começa em 710 onde uma palavra-código combinatória é recebida pelo decodificador combinatório 206. Em 720 pj e j são passados a partir do decodificador combinatório 206 para o gerador de função combinatória 208 e F(pj, j) é retornado ao decodificador 206 em 730. A palavra-código é decodificada pelo decodificador 206 com base em F(pj, j) em 740 para produzir o vetor xi e xi é passado para o conjunto de circuitos de reconstrução de sinal 210 onde um sinal de saída é criado em 750.
Pode ser visto que um método proposto de codificação de “posição não ocupada” em várias modalidades é aplicado em ambas, codificação de posições e magnitude. Contudo, aqueles de conhecimento comum na técnica verão que esse método pode ser empregado para codificação de qualquer um desses parâmetros. Similarmente, o decodificador opera no inverso do codificador. Embora um decodificador da técnica
Petição 870170093866, de 04/12/2017, pág. 36/58
32/48 anterior sempre decodifique a posição (pk) e (p'k), um decodificador consistente com as modalidades da presente invenção pode decodificar as posições não ocupadas (uk) quando Tv> n, ou pode decodificar u'k quando 2’(v-l) > m-1. Após decodificar uk e u'k, o decodificador pode converter os mesmos em pk, p'k, e mk.
Começando com uma visão geral simples da codificação de acordo com certas modalidades da presente invenção, considere o seguinte fluxo:
um sinal codificado utilizando sequência de pulsos é recebido;
o número da posição de pulsos não-zero (v) é determinado e o código Cu para o v utilizando a equação (27) pode ser gerado (observar que essa é uma etapa opcional e a palavra-código (C) pode na realidade ser aproximada pelos códigos Cn e Cp) ;
posições de pulsos não-zero Τ’1’ Τ’2’ ···’ Py são determinadas; se 2’v < n então gerar código Cn para a posição utilizando a equação (25) caso contrário gerar código Cn para a posição utilizando a equação (25z);
magnitudes de pulsos não-zero Wv são determinadas; se 2’(v-l) < m-1 então gerar código Cp para a magnitude utilizando equação (26) caso contrário gerar o código Cp para a magnitude utilizando equação (26z);
combinar códigos Cu, Cn e Cp para formar uma palavracódigo (C).
Um fluxo simplificado para decodificação de acordo com certas modalidades pode ser considerado:
receber uma palavra-código (C) representando um sinal codificado utilizando a sequência de pulsos;
Petição 870170093866, de 04/12/2017, pág. 37/58
33/48 encontrar o número de posição de pulso não-zero (v) em que v é o valor mais amplo de tal modo que Cu na equação (21) não é mais do que C. (outra vez, observar que a decodificação pode ocorrer sem explicitamente determinar Cu na equação (21);
extrair a palavra-código C~ e Cp com base na palavra código C e o número de posições não-zero (v);
se 2’v < n então decodificar as posições ocupadas Ρΐ’Ρϊ’—’Ρν com base em Ck; caso contrário decodificar as posições não ocupadas uY,u2,...,uv e computar as posições ocupadas a partir das posições não ocupadas;
se 2’(v 1) < m 1 então decodificar ΡνΡΐ’—’Ρν-χ com base em
Cp; caso contrário decodificar
Obter as magnitudes ρ{,ρ'2,...,ρ'ν_γ de posições não-zero com base em
VI \ · Z/p 9 · · · 9 Z/,, i ou 19 2’ ’ v_1;
decodificar o sinal codificado utilizando equação (31) com base na posição não-zero decodificada e as magnitudes decodificadas das posições não-zero.
Esses fluxos simplificados serão examinados adicionalmente abaixo.
Com referência agora à Figura 8, o fluxo 800 ilustra um processo de codificação de operar um codificador de acordo com certas modalidades da presente invenção que pode ser considerada em termos de comutação adaptativa entre codificação de posições ocupadas e não ocupadas de um vetor como uma função da densidade estimada. No bloco 810, o vetor (x) tendo n posições a serem codificadas é recebido. No bloco 820, uma densidade estimada de uma pluralidade de posições ocupadas nas n posições do vetor (x) é determinada. No bloco 830, ocorre comutação adaptativa
Petição 870170093866, de 04/12/2017, pág. 38/58
34/48 entre a codificação das várias posições ocupadas e a codificação de uma pluralidade de posições não ocupadas das n posições de acordo com a densidade estimada das várias posições ocupadas para gerar um valor codificado. A densidade estimada de uma posição é determinada por um número da pluralidade de posições não ocupadas em relação a um número da pluralidade de posições ocupadas e então comutando adaptativamente entre a codificação da pluralidade de posições ocupadas e codificação da pluralidade de posições não ocupadas compreende ainda codificar a pluralidade de posições não ocupadas quando um número das várias posições não ocupadas for menor do que um valor limite; e codificar a pluralidade de posições ocupadas quando um número das várias posições não ocupadas não for menor do que o limite. O valor limite pode ser considerado como o número das várias posições ocupadas, tal como n/2. A palavra-código (C) é gerada a partir da pluralidade de valores de código, cada valor determinado em uma pluralidade de posições das n posições do vetor (x).
Com referência agora à Figura 9, o fluxo 900 ilustra um processo de decodificação de operar um decodificador de acordo com certas modalidades da presente invenção. No bloco 910, a palavra-código (C) representando um sinal codificado utilizando uma sequência de pulsos é recebida. No bloco 920, uma densidade estimada de uma pluralidade de posições ocupadas de n posições do vetor (x) com base na palavra-código C é determinada. No bloco 930, é realizada a comutação adaptativa entre a decodificação da pluralidade de posições ocupadas e a decodificação de uma pluralidade de posições não ocupadas do vetor x de acordo com a
Petição 870170093866, de 04/12/2017, pág. 39/58
35/48 densidade estimada das várias posições ocupadas para gerar um valor decodificado. A densidade estimada de uma posição pode ser determinada por um número da pluralidade de posições não ocupadas em relação a o número da pluralidade de posições ocupadas e comutação adaptativa entre a decodificação da pluralidade de posições ocupadas e a decodificação da pluralidade de posições não ocupadas pode compreender ainda: decodificar a pluralidade de posições não ocupadas para gerar uma pluralidade de posições não ocupadas decodificadas e gerar uma pluralidade de posições ocupadas decodificadas a partir das várias posições não ocupadas decodificadas quando o número da pluralidade de posições não ocupadas for menor do que um valor limite; e decodificar a pluralidade de posições ocupadas quando o número da pluralidade de posições não ocupadas não for menor do que o limite. O valor limite pode ser o número da pluralidade de posições ocupadas. O vetor (x) é gerado conformemente a partir do valor decodificado nessa instância. Isso pode ser realizado adicionalmente mediante extração de um código Ομ e um código Οπ a partir da palavra-código (C) com base em um número de uma pluralidade de posições ocupadas v do vetor x.
Expressos em termos ligeiramente diferentes, os fluxos 1000 e 1100 das Figuras 10 e 11, respectivamente, ilustram o uso da densidade estimada, mas em termos de olhar diretamente para o número de posições não ocupadas em relação a um limite, tal como o número de posições ocupadas. O fluxo 1000 da Figura 10 ilustra um método para operar um codificador que é operável para codificar uma palavra-código (C) a partir de um vetor x. No bloco 1010, o
Petição 870170093866, de 04/12/2017, pág. 40/58
36/48 vetor (x) tendo n posições a ser codificado é recebido. O bloco de decisão 1020 indaga se um número das várias posições não ocupadas das n posições do vetor (x) é menor do que um limite. Se positivo, então no bloco 1030, os valores de uma pluralidade de posições não ocupadas das n posições do vetor (x) são determinados e a palavra-código (C) gerada a partir dos valores das várias posições não ocupadas. Se negativo, então no bloco 1040, valores das várias posições ocupadas são determinados e a palavracódigo (C) é gerada a partir dos valores da pluralidade de posições ocupadas.
Para a codificação de magnitudes de pulso em uma modalidade exemplar na qual o número da pluralidade de posições não ocupadas das n posições do vetor (x) é inferior ao limite, igual a (m-1)/2, determinar os valores da pluralidade de posições não ocupadas pode compreender ainda: determinar uma pluralidade de magnitudes de pulso m\, m2, ...,mv da pluralidade de posições ocupadas; gerar uma pluralidade de posições de pulso não ocupadas u'k com base na pluralidade de magnitudes de pulso; e codificar a pluralidade de magnitudes quando 2-(v-l)>(m-l) mediante codificação de posição de m-v posições de pulso não ocupadas localizadas em locais m-1 para gerar um código Cp para a pluralidade de magnitudes de pulso. A codificação da pluralidade de magnitudes de pulso da pluralidade de posições não ocupadas pode então compreender ainda: gerar um código Cp para a pluralidade de magnitudes de acordo com m—v
C = y\F\u'k,k) , , *=i ~ k , onde u'k pertence a um conjunto U' , , , , p'k = Σ^,·-1 definido como _ {0,1,...,m 2} {Pi, p2,···, Pv-i} _ j=i .
Petição 870170093866, de 04/12/2017, pág. 41/58
37/48
A palavra-código (C) nessa instância pode ser pelo menos parcialmente determinada pelo código Cp da pluralidade de magnitudes de pulso.
Continuando com a modalidade exemplar na qual o número da pluralidade de posições não ocupadas das n posições do vetor (x) é menor do que o limite, a codificação de uma pluralidade de posições de pulso da pluralidade de posições não ocupadas para gerar um código Ck para a pluralidade de posições não ocupadas também pode opcionalmente ser realizada. O código Ck para a pluralidade de posições não ocupadas é gerado de acordo com n-v c, =^F'(uk,k) Q<uk<n k=l
Além disso, a codificação de uma pluralidade de posições de pulso da pluralidade de posições ocupadas para gerar um código Ck para a pluralidade de posições ocupadas = o<pk<n pode ser realizada de acordo com Í=1.
Desnecessário dizer, que em tais casos, a palavra-código (C) é determinada ao menos parcialmente pelos códigos Ck e Cp.
Embora tenha sido descrito que a codificaçãode posição e magnitude pode ser realizada e a codificação de posição realizada em combinação com a codificaçãode magnitude, esses dois tipos de codificação podem ser realizados separadamente ou em combinação. Por exemplo, em uma instância na qual se deseja realizar apenas a codificação de posição, considere o seguinte; determinar uma pluralidade de posições de pulso não-zero P\> Pu···’Pv dentro do vetor x pode compreender: seletivamente codificar
Petição 870170093866, de 04/12/2017, pág. 42/58
38/48 a pluralidade de posições não ocupadas para gerar um código Οπ para a pluralidade de posições não ocupadas de acordo c.=^F'(Pk^ 0<pk<n com /;=l . Inversamente, se apenas a codificação de magnitude for realizada e onde o número da pluralidade de posições não ocupadas das n posições do vetor (x) não for menor do que o limite, igual a (m-1)/2, determinar os valores da pluralidade de posições ocupadas e gerar a palavra-código (C) a partir dos valores da pluralidade de posições ocupadas pode compreender ainda: determinar uma pluralidade de magnitudes de pulso mi.fly da pluralidade de posições ocupadas quando 2-(v1)< m-1 para gerar o código Ομ para as magnitudes de pulso de acordo com v-l k k = ΣΚ'(Σ^7 -1?^) \^Lmpmk<m.
k=[ 7=1 e gerar a palavra-código C a partir pelo menos do código Ομ.
Naquelas ocorrências, contudo, onde se o número da pluralidade de posições não ocupadas das n posições do vetor (x) não for menor do que o limite, o método incluiria determinar os valores da pluralidade de posições ocupadas e gerar a palavra-código (C) a partir dos valores da pluralidade de posições ocupadas e no caso de codificação de posição compreender adicionalmente: codificar uma pluralidade de posições de pulso Τ’1’/72’ ---Ά da pluralidade de posições ocupadas para gerar o código Οπ de acordo com Q = ΣΡ'(Ρ^ ^<pk<n.
4=1
Com referência de volta à Figura 4, a operação do codificador 400 compreendería o seguinte do conjunto de circuitos de codificação combinatória 106: receber um vetor
Petição 870170093866, de 04/12/2017, pág. 43/58
39/48 (x) tendo n posições a serem codificadas; determinar uma densidade estimada de uma pluralidade de posições ocupadas das n posições do vetor (x) ; e comutar adaptativamente entre codificação da pluralidade de posições ocupadas e codificação de uma pluralidade de posições não ocupadas das n posições de acordo com a densidade estimada da pluralidade de posições ocupadas para gerar um valor codificado. Como previamente ensinado, a densidade estimada de uma posição pode ser determinada por um número da pluralidade de posições não ocupadas em relação a um número da pluralidade de posições ocupadas e comutar adaptativamente entre codificação da pluralidade de posições ocupadas e codificação da pluralidade de posições não ocupadas realizadas pelo conjunto de circuitos de codificação combinatória. Essa codificação compreendería ainda: codificação da pluralidade de posições não ocupadas quando um número da pluralidade de posições não ocupadas é menor do que um valor limite; e codificar a pluralidade de posições ocupadas quando um número da pluralidade de posições não ocupadas não é menor do que o limite. Como será descrito adicionalmente, determinar a densidade estimada e comutar adaptativamente entre codificação da pluralidade de posições ocupadas e codificação da pluralidade de posições não ocupadas com base na densidade estimada pode ser realizado dinamicamente em uma pluralidade de posições das n posições do vetor (x).
O fluxo 1100 da Figura 11 ilustra um método para operar um decodificador que é operável para gerar um vetor (x) a partir de uma palavra-código recebida (C) . No bloco 1110, uma palavra-código (C) representando um sinal
Petição 870170093866, de 04/12/2017, pág. 44/58
40/48 codificado utilizando uma sequência de pulsos é recebida. No bloco de decisão 1120, a indagação de se um número de uma pluralidade de posições não ocupadas das n posições do vetor (x) é menor do que um limite. Se positivo, então no bloco 1130, várias posições não ocupadas das n posições do vetor (x) e a pluralidade de posições ocupadas, com base na pluralidade decodificada das posições não ocupadas, são decodificadas. No bloco 1140, uma pluralidade de valores de posição ocupada, decodificados a partir da pluralidade de posições não ocupadas é gerada e o vetor (x) é gerado a partir dos vários valores de posição não ocupada decodificada e ocupada decodificada. Se negativo, então o fluxo continua para o Bloco 1150, onde as várias posições ocupadas são decodificadas.
Pode-se entender que um código Ομ e um código Οπ podem ser extraídos a partir da palavra-código (C) com base em um número de uma pluralidade de posições ocupadas v do vetor (x).
Na condição na qual o número da pluralidade de posições não ocupadas das n posições do vetor (x) é menor do que o limite, decodificação de magnitude pode compreender ainda: decodificar uma pluralidade de posições de pulso não ocupadas u'k, decodificar uma pluralidade de magnitudes de pulso m1, m2, da pluralidade de posições ocupadas a partir do código extraído Ομ e a pluralidade de posições de pulso não ocupadas decodificadas u'k; e decodificar a palavra-código (C) utilizando a pluralidade decodificada de magnitudes de pulso m1, m2, da pluralidade de posições ocupadas para gerar o vetor (x) de , x = m.s.
acordo com y .
Petição 870170093866, de 04/12/2017, pág. 45/58
41/48
Similarmente, quando o número da pluralidade de posições não ocupadas das n posições do vetor (x) é menor do que o limite, decodificação de posição pode compreender: decodificar uma pluralidade de posições de pulso não ocupadas uk; gerar uma pluralidade de posições de pulso ocupadas decodificadas a partir da pluralidade de posições de pulso não ocupadas decodificadas uk; e decodificar a palavra-código (C) utilizando as posições de pulso não ocupadas decodificadas e as posições de pulso ocupadas decodificadas para gerar o vetor (x).
Com referência de volta à Figura 6, a operação do decodificador 600 compreendería o seguinte do conjunto de circuitos de decodificação combinatória 206: receber a palavra-código (C) representando um sinal codificado utilizando uma sequência de pulsos; determinar uma densidade estimada de uma pluralidade de posições ocupadas de n posições do vetor (x) com base na palavra-código C; e comutar adaptativamente entre a decodificação da pluralidade de posições ocupadas e decodificação de uma pluralidade de posições não ocupadas do vetor (x) de acordo com a densidade estimada da pluralidade de posições ocupadas para gerar um valor decodificado. Outra vez, conforme descrito acima, a densidade estimada de uma posição pode ser determinada por um número da pluralidade de posições não ocupadas em relação ao número da pluralidade de posições ocupadas e comutar adaptativamente entre a decodificação da pluralidade de posições ocupadas e a decodificação da pluralidade de posições não ocupadas realizadas pelo conjunto de circuitos de decodificação combinatória compreenderia ainda: decodificar a pluralidade
Petição 870170093866, de 04/12/2017, pág. 46/58
42/48 de posições não ocupadas para gerar uma pluralidade de posições não ocupadas decodificadas e gerar uma pluralidade de posições ocupadas decodificadas a partir da pluralidade de posições não ocupadas decodificadas quando o número da pluralidade de posições não ocupadas for menor do que um valor limite; e decodificar a pluralidade de posições ocupadas quando o número da pluralidade de posições não ocupadas não for menor do que o limite. Conforme será descrito adicionalmente, determinar a densidade estimada e comutar adaptativamente entre a decodificação da pluralidade de posições ocupadas e a decodificação da pluralidade de posições não ocupadas com base na densidade estimada pode ser realizado dinamicamente em uma pluralidade de posições das n posições do vetor (x).
Conforme mencionado previamente, a comutação entre os modos de codificação ou decodificação pode ocorrer dinamicamente em mais do que um local como uma função da densidade estimada em vários locais.
De acordo com diversas modalidades da presente invenção, se a codificação das posições ocupadas ou a codificação da posição não ocupada se baseia na densidade média que é definida como a relação das posições ocupadas/número de locais. Na seção anterior, ilustramos um método no qual a decisão é tomada apenas uma vez e a mesma abordagem, isto é, a codificação das posições ocupadas ou a codificação da posição não ocupada é adotada para todas as posições. Como a distribuição da posição ocupada pode não ser uniforme por todos os locais, a densidade também não é uniforme. Portanto, pode valer à pena manter a comutação da decisão para codificar as posições ocupadas ou não ocupadas
Petição 870170093866, de 04/12/2017, pág. 47/58
43/48 com base na densidade em várias instâncias.
Deixe-nos ilustrar isso por intermédio de um exemplo. Considere que de n=27 locais haja 16 posições ocupadas. As posições ocupadas são 0, 7, 9, 10, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24 e 25. No método da técnica anterior essas posições ocupadas são codificadas diretamente utilizando-se a equação (26), e conforme descrito acima, o número de posições ocupadas sendo maior do que n/2, as posições não ocupadas 1, 2, 3, 4, 5, 6, 8, 11, 14, 23 e 26 são codificadas utilizando a equação (26z) . Observar que um codificador da técnica anterior exigiu 16 computações de função combinatória enquanto o codificador na presente invenção requer 11 computações da função combinatória F ou F' nesse exemplo. Observando as posições ocupadas e não ocupadas, pode ser visto que codificação utilizando a posição ocupada até as primeiras cinco posições de pulso, isto é, posições 0, 7, 9, 10 e 12 e, então, codificando-se as posições não ocupadas, isto é, as posições 14, 23 e 26, isso será reduzido para oito computações das funções combinatórias no codificador. Contudo, o decodificador precisa saber qual método é usado para codificação e onde a comutação a partir de um método para outro método ocorreu. Como o decodificador começa a decodificação a partir da posição mais elevada para a posição mais baixa, a posição mais elevada é codificada com base no número de posições ocupadas. Subsequentemente, a densidade das posições ocupadas é estimada e se a densidade for menor do que 0,5 então a próxima posição ocupada é codificada caso contrário a próxima posição não ocupada é codificada.
Para ilustrar isso, considere outra vez o exemplo
Petição 870170093866, de 04/12/2017, pág. 48/58
44/48 acima. Como a densidade de posição ocupada inicial é maior do que 0,5, a posição não ocupada mais elevada 26 é codificada como F' (26,11) . Agora a densidade estimada das posições ocupadas é a posição 16 em 26 locais que também é maior do que 0,5 e, portanto, a próxima posição não ocupada 23 é codificada como F' (23,10) . Agora pode ser inferido (mesmo no decodificador) que as posições 24 e 25 foram ocupadas. A densidade da posição ocupada agora se torna 14 posições ocupadas em 23 locais que ainda é mais do que 0,5 e, portanto, a próxima posição não ocupada 14 é codificada como F' (14,9) . Pode ser facilmente estimada que a densidade da posição ocupada restante seja de 16 pulsos em 14 locais o que é inferior a 0,5. Agora, a próxima posição ocupada 13 é codificada como F'(13,6). Agora a densidade das posições ocupadas é estimada como 5 pulsos em 13 locais que é menos do que 0,5 e, portanto, a próxima posição ocupada é codificada, isto é, a posição 12 é codificada como F' (12,5) . Agora há 4 posições ocupadas em 12 locais, e, portanto, outra vez a posição ocupada é codificada como F' (10,4) . Utilizando os mesmos argumentos, as próximas três posições ocupadas são codificadas como F' (9,3), F' (7,2), e F' (0,1) . Assim a palavra-código
IQ = F'(0,l) + F'(7,2) + F'(9,3) + F'(10,4) + F'(12,5) + F'(13,6)
F'(14,9) + F'(23,10) + F'(26,l 1) precisa de nove computações das funções combinatórias nesse exemplo.
COMUTAÇÃO DINÂMICA - CODIFICADOR
Com relação à codificação dinâmica entre metodologias de codificação em um ou mais locais de posição, tal comutação pode ser uma função da densidade estimada
Petição 870170093866, de 04/12/2017, pág. 49/58
45/48 determinada em um ou mais locais. Assim, determinar a densidade estimada e comutar adaptativamente entre a codificação das várias posições ocupadas e codificação das várias posições não ocupadas com base na identidade estimada é realizado dinamicamente em diversas posições das n posições do vetor (x) . As posições ocupadas P^P2’ ’Ρν e não ocupadas wi, «2, ···, w„_v. das n posições do vetor (x) são determinadas. Para as posições pk das n posições:
a. se 2’v > n codificar a posição não ocupada mais elevada como F(un-v,v), mas se 2v < n então codificar a posição não ocupada mais elevada como F (pv,v), em que a última posição codificada (p) é ajustada para pv ou un-v;
b. calcular um número de posições ocupadas (η) e um número de posições não ocupadas (ε) que são inferiores à última posição codificada (p);
c. se então obter uma posição máxima ocupada
Ρ'Ύίίκ /7) como ' em que a pk menos do que p e codificar a posição última posição codificada é P Pk;
d. se 2 7 então obter uma posição ocupada uk inferior a p e codificar a posição máxima não como F (u-k,s), em que a última posição codificada é p = uk.
e. repetir b, c, e d até que η ou ε seja igual a 0;
Os códigos de posição gerados em d e e podem ser somados para gerar o código de posição Οπ.
No caso de codificação e magnitude, uma pluralidade das magnitudes de pulso mb m2, Wv da pluralidade de posições ocupadas é determinada. Adicionalmente, as posições ocupadas ...,Pv-i e as posições não ocupadas u i, u 2, u m-v- das n posições do vetor (x) com base na pluralidade de magnitudes de pulso mb m2, Wv também são
Petição 870170093866, de 04/12/2017, pág. 50/58
46/48 determinadas. Para as posições p'k das n posições:
a. se 2 (v-1) > m-1 codificando uma posição não ocupada mais elevada como F’(u’m-v,v-1), mas se então codificar a posição não ocupada mais elevada como v,v-l), em que a última posição codificada (p') é ajustada para p'v ou u'm-v;
b. calcular um número de posições ocupadas (η') e um número de posições não ocupadas (ε' ) que são menores do que a última posição codificada (p' ) ;
c. se 7 — P então obter uma posição máxima ocupada p'k menos do que p' e codificar a posição como F(P k,il), em que a última posição codificada é P Pk;
d. se 2 7 > p então obter uma posição máxima não ocupada u'k menos do que p' e codificar a posição como F (u k,s) r em que a última posição codificada é P Uk.
e. repetir b, c, e d até que η' ou ε' seja igual a 0;
Os códigos de posição gerados em d e e são somados para gerar o código de posição Cp.
COMUTAÇÃO DINÂMICA - DECODIFICADOR
Com relação à comutação dinâmica durante a decodificação, a densidade estimada é determinada e comutação adaptativa entre a decodificação da pluralidade de posições ocupadas e a decodificação da pluralidade de posições não ocupadas com base na densidade estimada é realizada dinamicamente em uma pluralidade de posições das n posições do vetor (x). Para a decodificação de posição, a comutação compreende para as posições pk das n posições:
a. se 2'v > n decodificar a posição não ocupada mais elevada como F(un-v,v) a partir do código Cn, mas se 2-v < n
Petição 870170093866, de 04/12/2017, pág. 51/58
47/48 então decodificar a posição mais alta ocupada como
F'(py,v) em que a última posição decodificada (p) é ajustada para
Pv ou un-v;
b. calcular um número de posições ocupadas (η) e um número de posições não ocupadas (ε) que são inferiores última posição decodificada (p);
c. se 2η <p então obter uma posição ocupada máxima pk menos do que p e decodificar a posição como (ρί·,η) em que a última posição decodificada é P Pk ;
d. se 2 7 > p então obter uma posição não ocupada máxima uk menos do que p e decodificar a posição como F (uk,s), em que a última posição decodificada é p = uk;
e. repetir b, c, e d até que η ou ε seja igual a 0;
A pluralidade de posições ocupadas a partir das posições ocupadas máximas pk e as posições não ocupadas máximas uk geradas em a, b, c, d e e são decodificadas.
Com relação à decodificação de magnitude, uma pluralidade de magnitudes de pulso mb m2, -,mv da pluralidade de posições ocupadas é determinada. As posições ocupadas ,Ρν-ι e as posições não ocupadas u i, u 2, u m-v- das n posições do vetor (x) com base na pluralidade das magnitudes de pulso mb m2, Fiv também são determinadas. E, para as posições p'k das n posições:
a. se 2 (v-lj > m-1 decodifi car uma posição não ocupada mais elevada como F’(u’m-v,v-1) codificar Cp, mas se 2'(v-\) <m-\ então decodificar a posição ocupada mais elevada como F(p v,v-l), em que a última posição decodificada (p' ) é ajustada para p'v ou u'm-v;
b. calcular um número de posições ocupadas (η') e um número de posições não ocupadas (ε' ) que são menos do que a
Petição 870170093866, de 04/12/2017, pág. 52/58
48/48 última posição decodificada (p');
c. se 7 _P então obter uma posição ocupada máxima p'k menos do que p' e codificar a posição como F (P kPl’)·, em que a última posição decodificada é P Pk;
d. se 2 η > p então obter uma posição não ocupada máxima u'k menos do que p' e decodificar a posição como F (u k,s) r em que a última posição decodificada é P Uk.
e. repetir b, c, e d até que η' ou ε' seja igual a 0;
A pluralidade de posições ocupadas a partir das posições ocupadas máximas pk e as posições não ocupadas máximas uk geradas em a, b, c, d e e são decodificadas.
No relatório descritivo precedente, foram descritas modalidades específicas da presente invenção. Contudo, aqueles de conhecimento comum na técnica consideram que várias modificações e alterações podem ser feitas sem se afastar do escopo da presente invenção como apresentado nas reivindicações abaixo. Consequentemente, o relatório descritivo e as figuras devem ser considerados em um sentido ilustrativo mais propriamente do que em um sentido restritivo, e pretende-se que todas as modificações sejam incluídas no escopo da presente invenção. Os benefícios, vantagens, soluções para os problemas, e qualquer elemento(s) que possa fazer com que ocorra qualquer benefício, vantagem, ou solução ou se torne mais acentuado não devem ser consideradas como características ou elementos cruciais, exigidos ou essenciais de qualquer uma ou de todas as reivindicações. A invenção é definida apenas pelas reivindicações anexas incluindo quaisquer emendas feitas durante a pendência desse pedido.

Claims (10)

  1. REIVINDICAÇÕES
    1. Método para operar um codificador que codifica uma palavra-código (C) a partir de um vetor (x), usando Codificação de Pulso Fatorial (FPC), o método caracterizado por compreender:
    receber o vetor (x) tendo n posições, em que as posições n estão disponíveis para serem codificadas;
    determinar uma densidade estimada de uma pluralidade
    de posições ocupadas das n posições do vetor (x); e comutar adaptativamente entre a codificação da pluralidade de posições ocupadas e a codificação de uma pluralidade de posições não ocupadas das n posições de
    acordo com a densidade estimada da pluralidade de posições ocupadas para gerar a palavra-código (C), em que a palavracódigo (C) é uma Codificação de Pulso Fatorial.
  2. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a determinação da densidade estimada e a comutação adaptativa entre a codificação da pluralidade de posições ocupadas e a codificação da pluralidade de posições não ocupadas com base na densidade estimada são realizadas dinamicamente em uma pluralidade de posições das n posições do vetor (x).
  3. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a densidade estimada de uma posição é determinada por um número da pluralidade de posições não ocupadas em relação a um número da pluralidade de posições ocupadas e a comutação adaptativa entre a codificação da pluralidade de posições ocupadas e codificação da pluralidade de posições não ocupadas compreende ainda:
    Petição 870190061263, de 01/07/2019, pág. 19/24
    2/5 se o número da pluralidade de posições não ocupadas das n posições do vetor (x) for menor do que um limite, determinar os valores da pluralidade de posições não ocupadas das n posições do vetor (x) e gerar a palavracódigo (C) a partir dos valores da pluralidade de posições não ocupadas, e caso contrário, se o número da pluralidade de posições não ocupadas do vetor (x) não for menor do que o limite, determinar valores da pluralidade de posições ocupadas e gerar palavra-código (C) a partir dos valores da pluralidade de posições ocupadas.
  4. 4. Codificador, caracterizado por compreender:
    conjunto de circuitos de codificação combinatória operável para codificar uma palavra-código (C) a partir de um vetor (X) usando Codificação de Pulso Fatorial, o conjunto de circuitos de codificação combinatória operável para realizar:
    receber um vetor (x) tendo n posições, em que as posições n estão disponíveis para serem codificadas;
    determinar uma densidade estimada de uma pluralidade de posições ocupadas das n posições do vetor (x);
    comutar adaptativamente entre codificação da pluralidade de posições ocupadas e codificação de uma pluralidade de posições não ocupadas das n posições de acordo com a densidade estimada da pluralidade de posições ocupadas para gerar uma palavra-código (C), em que a palavra-código (C) é uma Codificação de Pulso Fatorial.
  5. 5. Codificador, de acordo com a reivindicação 4, caracterizado pelo fato de que a densidade estimada de uma
    Petição 870190061263, de 01/07/2019, pág. 20/24
    3/5 posição é determinada por um número da pluralidade de posições não ocupadas em relação a um número da pluralidade de posições ocupadas e a comutação adaptativa entre a codificação da pluralidade de posições ocupadas e codificação da pluralidade de posições não ocupadas realizada pelo conjunto de circuitos de codificação combinatória compreende ainda:
    codificar a pluralidade de posições não ocupadas quando um número da pluralidade de posições não ocupadas for menor do que um valor limite; e codificar a pluralidade de posições ocupadas quando um número da pluralidade de posições não ocupadas não for menor do o limite.
  6. 6. Codificador, de acordo com a reivindicação 4, caracterizado pelo fato de que a determinação da densidade estimada e a comutação adaptativa entre a codificação da pluralidade de posições ocupadas e codificação da pluralidade de posições não ocupadas com base na densidade estimada são realizadas dinamicamente em uma pluralidade de posições das n posições do vetor (x).
  7. 7. Método para operar um decodificador que gera um vetor (x) a partir de uma palavra-código (C), usando Codificação de Pulso Fatorial, o método caracterizado por compreender:
    receber a palavra-código (C), a palavra-código (c) sendo uma Codificação de Pulso Fatorial representando um sinal codificado utilizando uma sequência de pulsos;
    determinar uma densidade estimada de uma pluralidade de posições ocupadas de n posições do vetor (x) com base na palavra-código (C); e
    Petição 870190061263, de 01/07/2019, pág. 21/24
    4/5 comutar adaptativamente entre a decodificação da pluralidade de posições ocupadas e a decodificação de uma pluralidade de posições não ocupadas do vetor (x) de acordo com a densidade estimada da pluralidade de posições o ocupadas para gerar um valor decodificado.
  8. 8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que a determinação da densidade estimada e a comutação adaptativa entre decodificação da pluralidade de posições ocupadas e decodificação da pluralidade de posições não ocupadas com base na densidade estimada são realizadas dinamicamente em uma pluralidade de posições das n posições do vetor (x).
  9. 9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que a densidade estimada de uma posição é determinada por um número da pluralidade de posições não ocupadas em relação ao número da pluralidade de posições ocupadas, e a comutação adaptativa entre, a decodificação da pluralidade de posições ocupadas, e a decodificação da pluralidade de posições não ocupadas, compreende ainda:
    se o número da pluralidade de posições não ocupadas das n posições do vetor (x) for menor do que um limite, decodificar a pluralidade das posições não ocupadas das n posições do vetor x e decodificar a pluralidade de posições ocupadas com base na pluralidade decodificada de posições não ocupadas;
    gerar uma pluralidade de valores de posição ocupada, decodificados a partir da pluralidade de posições não ocupadas e gerar o vetor (x) a partir da pluralidade de valores de posição não ocupada decodificada e ocupada
    Petição 870190061263, de 01/07/2019, pág. 22/24
    5/5 decodificada, e caso contrário, se o número da pluralidade de posições não ocupadas do vetor (x) não for menor do que o limite, decodificar a pluralidade de posições ocupadas.
  10. 10. Decodificador, caracterizado por compreender:
    conjunto de circuitos de decodificação combinatória operável para gerar um vetor (X) a partir de uma palavracódigo (C) usando Codificação de Pulso Fatorial, o conjunto de circuitos de codificação combinatória operável para realizar:
    receber a palavra-código (C) , a palavra-código (C) sendo uma Codificação de Pulso Fatorial representando um sinal codificado utilizando uma sequência de pulsos;
    determinar uma densidade estimada de uma pluralidade de posições ocupadas de n posições do vetor (x) com base na palavra-código (C);
    comutar adaptativamente entre a decodificação da pluralidade de posições ocupadas e decodificação de uma pluralidade de posições não ocupadas do vetor (x) de acordo com a densidade estimada da pluralidade de posições ocupadas para gerar um valor decodificado.
BRPI0909699-0A 2008-03-13 2009-03-09 Métodos para codificação combinatória de baixa complexidade de sinais, codificador e decodificador BRPI0909699B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/047,586 2008-03-13
US12/047,586 US7889103B2 (en) 2008-03-13 2008-03-13 Method and apparatus for low complexity combinatorial coding of signals
PCT/US2009/036479 WO2009114453A1 (en) 2008-03-13 2009-03-09 Apparatus and method for low complexity combinatorial coding of signals

Publications (3)

Publication Number Publication Date
BRPI0909699A2 BRPI0909699A2 (pt) 2017-10-31
BRPI0909699A8 BRPI0909699A8 (pt) 2018-01-02
BRPI0909699B1 true BRPI0909699B1 (pt) 2019-10-08

Family

ID=40811155

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0909699-0A BRPI0909699B1 (pt) 2008-03-13 2009-03-09 Métodos para codificação combinatória de baixa complexidade de sinais, codificador e decodificador

Country Status (9)

Country Link
US (1) US7889103B2 (pt)
EP (1) EP2277268A1 (pt)
KR (1) KR101233057B1 (pt)
CN (1) CN102037650B (pt)
BR (1) BRPI0909699B1 (pt)
MX (1) MX2010010044A (pt)
MY (1) MY151357A (pt)
RU (1) RU2471288C2 (pt)
WO (1) WO2009114453A1 (pt)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461106B2 (en) 2006-09-12 2008-12-02 Motorola, Inc. Apparatus and method for low complexity combinatorial coding of signals
US8576096B2 (en) * 2007-10-11 2013-11-05 Motorola Mobility Llc Apparatus and method for low complexity combinatorial coding of signals
US8209190B2 (en) * 2007-10-25 2012-06-26 Motorola Mobility, Inc. Method and apparatus for generating an enhancement layer within an audio coding system
US20090234642A1 (en) * 2008-03-13 2009-09-17 Motorola, Inc. Method and Apparatus for Low Complexity Combinatorial Coding of Signals
US8639519B2 (en) 2008-04-09 2014-01-28 Motorola Mobility Llc Method and apparatus for selective signal coding based on core encoder performance
US8140342B2 (en) * 2008-12-29 2012-03-20 Motorola Mobility, Inc. Selective scaling mask computation based on peak detection
US8200496B2 (en) * 2008-12-29 2012-06-12 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal
US8175888B2 (en) * 2008-12-29 2012-05-08 Motorola Mobility, Inc. Enhanced layered gain factor balancing within a multiple-channel audio coding system
US8219408B2 (en) * 2008-12-29 2012-07-10 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal
US9185423B2 (en) * 2009-02-12 2015-11-10 Zoran (France) S.A. Frame buffer compression for video processing devices
CN102598124B (zh) 2009-10-30 2013-08-28 松下电器产业株式会社 编码装置、解码装置及其方法
US8149144B2 (en) * 2009-12-31 2012-04-03 Motorola Mobility, Inc. Hybrid arithmetic-combinatorial encoder
US8428936B2 (en) * 2010-03-05 2013-04-23 Motorola Mobility Llc Decoder for audio signal including generic audio and speech frames
US8423355B2 (en) * 2010-03-05 2013-04-16 Motorola Mobility Llc Encoder for audio signal including generic audio and speech frames
US8751244B2 (en) * 2011-05-02 2014-06-10 Motorola Mobility Llc Apparatus and method for low complexity combinatorial coding and decoding of signals
US8731081B2 (en) 2011-12-07 2014-05-20 Motorola Mobility Llc Apparatus and method for combinatorial coding of signals
US9129600B2 (en) 2012-09-26 2015-09-08 Google Technology Holdings LLC Method and apparatus for encoding an audio signal
US9620136B2 (en) * 2014-08-15 2017-04-11 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9990931B2 (en) 2014-08-15 2018-06-05 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9336788B2 (en) 2014-08-15 2016-05-10 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9672838B2 (en) * 2014-08-15 2017-06-06 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
JP6267250B2 (ja) * 2016-02-25 2018-01-24 株式会社Subaru 油圧回路の異常検知装置、及び、油圧回路の異常検知方法
US10395542B2 (en) * 2016-03-28 2019-08-27 Cisco Technology, Inc. Drone traffic engineering
US10366698B2 (en) * 2016-08-30 2019-07-30 Dts, Inc. Variable length coding of indices and bit scheduling in a pyramid vector quantizer
CN113642276B (zh) * 2021-08-18 2023-05-05 电子科技大学 一种基于数据预编码的sram架构

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8006165A (nl) * 1980-11-12 1982-06-01 Philips Nv Systeem voor het overdragen van digitale informatie, codeerinrichting voor toepassing in dat systeem, decodeerinrichting voor toepassing in dat systeem en registratiedrager voor toepassing in dat systeem.
US4560977A (en) * 1982-06-11 1985-12-24 Mitsubishi Denki Kabushiki Kaisha Vector quantizer
US4670851A (en) * 1984-01-09 1987-06-02 Mitsubishi Denki Kabushiki Kaisha Vector quantizer
US4727354A (en) * 1987-01-07 1988-02-23 Unisys Corporation System for selecting best fit vector code in vector quantization encoding
JP2527351B2 (ja) * 1987-02-25 1996-08-21 富士写真フイルム株式会社 画像デ―タの圧縮方法
US5067152A (en) * 1989-01-30 1991-11-19 Information Technologies Research, Inc. Method and apparatus for vector quantization
DE68922610T2 (de) * 1989-09-25 1996-02-22 Rai Radiotelevisione Italiana Umfassendes System zur Codierung und Übertragung von Videosignalen mit Bewegungsvektoren.
US5754976A (en) * 1990-02-23 1998-05-19 Universite De Sherbrooke Algebraic codebook with signal-selected pulse amplitude/position combinations for fast coding of speech
CN1062963C (zh) * 1990-04-12 2001-03-07 多尔拜实验特许公司 用于产生高质量声音信号的解码器和编码器
IT1281001B1 (it) 1995-10-27 1998-02-11 Cselt Centro Studi Lab Telecom Procedimento e apparecchiatura per codificare, manipolare e decodificare segnali audio.
JP3063668B2 (ja) * 1997-04-04 2000-07-12 日本電気株式会社 音声符号化装置及び復号装置
DE69926821T2 (de) * 1998-01-22 2007-12-06 Deutsche Telekom Ag Verfahren zur signalgesteuerten Schaltung zwischen verschiedenen Audiokodierungssystemen
US6904174B1 (en) * 1998-12-11 2005-06-07 Intel Corporation Simplified predictive video encoder
KR100354531B1 (ko) * 1998-05-06 2005-12-21 삼성전자 주식회사 실시간 복호화를 위한 무손실 부호화 및 복호화 시스템
KR100409167B1 (ko) * 1998-09-11 2003-12-12 모토로라 인코포레이티드 정보 신호를 부호화하는 방법 및 장치
US6236960B1 (en) * 1999-08-06 2001-05-22 Motorola, Inc. Factorial packing method and apparatus for information coding
US6504877B1 (en) * 1999-12-14 2003-01-07 Agere Systems Inc. Successively refinable Trellis-Based Scalar Vector quantizers
US6445313B2 (en) * 2000-02-07 2002-09-03 Lg Electronics Inc. Data modulating/demodulating method and apparatus for optical recording medium
JP4149637B2 (ja) * 2000-05-25 2008-09-10 株式会社東芝 半導体装置
US6304196B1 (en) * 2000-10-19 2001-10-16 Integrated Device Technology, Inc. Disparity and transition density control system and method
AUPR105000A0 (en) * 2000-10-27 2000-11-23 Canon Kabushiki Kaisha Method for generating and detecting marks
US7068946B2 (en) * 2001-01-23 2006-06-27 At&T Corp. Modulation scheme for tedons
JP3404024B2 (ja) * 2001-02-27 2003-05-06 三菱電機株式会社 音声符号化方法および音声符号化装置
US6658383B2 (en) * 2001-06-26 2003-12-02 Microsoft Corporation Method for coding speech and music signals
US20030108108A1 (en) * 2001-11-15 2003-06-12 Takashi Katayama Decoder, decoding method, and program distribution medium therefor
US6662154B2 (en) * 2001-12-12 2003-12-09 Motorola, Inc. Method and system for information signal coding using combinatorial and huffman codes
US6947886B2 (en) 2002-02-21 2005-09-20 The Regents Of The University Of California Scalable compression of audio and other signals
WO2003077235A1 (en) 2002-03-12 2003-09-18 Nokia Corporation Efficient improvements in scalable audio coding
JP3881943B2 (ja) 2002-09-06 2007-02-14 松下電器産業株式会社 音響符号化装置及び音響符号化方法
US7876966B2 (en) * 2003-03-11 2011-01-25 Spyder Navigations L.L.C. Switching between coding schemes
KR101000345B1 (ko) 2003-04-30 2010-12-13 파나소닉 주식회사 음성 부호화 장치, 음성 복호화 장치 및 그 방법
JP2005005844A (ja) * 2003-06-10 2005-01-06 Hitachi Ltd 計算装置及び符号化処理プログラム
JP4123109B2 (ja) * 2003-08-29 2008-07-23 日本ビクター株式会社 変調装置及び変調方法並びに復調装置及び復調方法
AU2003279612A1 (en) * 2003-11-04 2005-05-19 Sunsail Development Avv Method and system for loss-less data compression
SE527670C2 (sv) 2003-12-19 2006-05-09 Ericsson Telefon Ab L M Naturtrogenhetsoptimerad kodning med variabel ramlängd
US7161507B2 (en) * 2004-08-20 2007-01-09 1St Works Corporation Fast, practically optimal entropy coding
EP1818911B1 (en) 2004-12-27 2012-02-08 Panasonic Corporation Sound coding device and sound coding method
EP1912206B1 (en) 2005-08-31 2013-01-09 Panasonic Corporation Stereo encoding device, stereo decoding device, and stereo encoding method
DE602006015097D1 (de) 2005-11-30 2010-08-05 Panasonic Corp Skalierbare codierungsvorrichtung und skalierbares codierungsverfahren
US7230550B1 (en) * 2006-05-16 2007-06-12 Motorola, Inc. Low-complexity bit-robust method and system for combining codewords to form a single codeword
US7414549B1 (en) * 2006-08-04 2008-08-19 The Texas A&M University System Wyner-Ziv coding based on TCQ and LDPC codes
US7461106B2 (en) * 2006-09-12 2008-12-02 Motorola, Inc. Apparatus and method for low complexity combinatorial coding of signals
US8576096B2 (en) * 2007-10-11 2013-11-05 Motorola Mobility Llc Apparatus and method for low complexity combinatorial coding of signals
US8209190B2 (en) * 2007-10-25 2012-06-26 Motorola Mobility, Inc. Method and apparatus for generating an enhancement layer within an audio coding system
US20090234642A1 (en) * 2008-03-13 2009-09-17 Motorola, Inc. Method and Apparatus for Low Complexity Combinatorial Coding of Signals
US8639519B2 (en) * 2008-04-09 2014-01-28 Motorola Mobility Llc Method and apparatus for selective signal coding based on core encoder performance
US8219408B2 (en) * 2008-12-29 2012-07-10 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal
US8140342B2 (en) * 2008-12-29 2012-03-20 Motorola Mobility, Inc. Selective scaling mask computation based on peak detection
US8200496B2 (en) * 2008-12-29 2012-06-12 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal
US8175888B2 (en) 2008-12-29 2012-05-08 Motorola Mobility, Inc. Enhanced layered gain factor balancing within a multiple-channel audio coding system

Also Published As

Publication number Publication date
BRPI0909699A2 (pt) 2017-10-31
CN102037650B (zh) 2014-02-19
EP2277268A1 (en) 2011-01-26
RU2010141852A (ru) 2012-04-20
RU2471288C2 (ru) 2012-12-27
KR101233057B1 (ko) 2013-02-13
US20090231169A1 (en) 2009-09-17
KR20100135801A (ko) 2010-12-27
BRPI0909699A8 (pt) 2018-01-02
US7889103B2 (en) 2011-02-15
MY151357A (en) 2014-05-15
MX2010010044A (es) 2011-03-28
CN102037650A (zh) 2011-04-27
WO2009114453A1 (en) 2009-09-17

Similar Documents

Publication Publication Date Title
BRPI0909699B1 (pt) Métodos para codificação combinatória de baixa complexidade de sinais, codificador e decodificador
TWI587640B (zh) 用於音訊/視訊樣本向量之錐型向量量化檢索/解檢索之方法及裝置
EP2062149B1 (en) Apparatus and method for low complexity combinatorial coding of signals
WO2009114454A1 (en) Apparatus and method for low complexity combinatorial coding of signals
BR112019005074B1 (pt) Método para um dispositivo para codificação de dados com um código polar, dispositivo para codificação de dados com um código polar, método de decodificação para um dispositivo, dispositivo para decodificação com um código polar, e meio legível por computador
EP2215722A2 (en) Apparatus and method for low complexity combinatorial coding of signals
BRPI0816136B1 (pt) Método e dispositivo para processamento de sinal
EP3639375B1 (en) Polar coder with logical three-dimensional memory, communicaton unit, integrated circuit and method therefor
BR112015025009B1 (pt) Unidades de quantização e quantização inversa, codificador e decodificador, métodos para quantizar e dequantizar
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
BR112013020700B1 (pt) Codificação e decodificação de posições de pulso de faixas de um sinal de áudio
CN114301468A (zh) 一种fse编码方法、装置、设备及存储介质
WO2019214266A1 (zh) 计算crc编码的方法和装置
CN113196671B (zh) 用于获得级联码结构的装置和方法及其计算机程序产品
Spurek et al. The memory center
Barcucci et al. Reconstruction of discrete sets from two absorbed projections: an algorithm
KR101578989B1 (ko) 신호들의 저 복잡성 결합 코딩 및 디코딩을 위한 장치 및 방법

Legal Events

Date Code Title Description
B25D Requested change of name of applicant approved

Owner name: MOTOROLA SOLUTIONS, INC. (US)

B25A Requested transfer of rights approved

Owner name: MOTOROLA MOBILITY, INC. (US)

B25G Requested change of headquarter approved

Owner name: MOTOROLA MOBILITY, INC. (US)

B25E Requested change of name of applicant rejected

Owner name: MOTOROLA MOBILITY, INC. (US)

B25D Requested change of name of applicant approved

Owner name: MOTOROLA MOBILITY LLC (US)

B25A Requested transfer of rights approved

Owner name: GOOGLE TECHNOLOGY HOLDINGS LLC (US)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06T Formal requirements before examination [chapter 6.20 patent gazette]

Free format text: PARECER 6.20

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 08/10/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 08/10/2019, OBSERVADAS AS CONDICOES LEGAIS