BRPI0806178A2 - method and apparatus for digital signal compression and decompression - Google Patents
method and apparatus for digital signal compression and decompression Download PDFInfo
- Publication number
- BRPI0806178A2 BRPI0806178A2 BRPI0806178A BRPI0806178A2 BR PI0806178 A2 BRPI0806178 A2 BR PI0806178A2 BR PI0806178 A BRPI0806178 A BR PI0806178A BR PI0806178 A2 BRPI0806178 A2 BR PI0806178A2
- Authority
- BR
- Brazil
- Prior art keywords
- sequence
- values
- bits
- value
- encoded
- Prior art date
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
MéTODO E APARATO PARA COMPRESSãO E DESCOMPRESSáO DE SINAIS DIGITAIS. A presente invenção refere-se à área de compressão e descompressão de sinais digitais. Especificamente situa-se na área de compressão e descompressão sem perda (Iossless compression) de sinais digitais, visando sua aplicação aonde estas são hoje largamente utilizadas, barramento de dados de computadores, tráfego de pacotes na internet, comunicação de celulares, etc. A presente invenção apresenta um método para compressão e descompressão de sinais digitais, que consiste na generalização do método originalmente conhecido por LLE (Limited-Length Encoding). Em especial, tira proveito da combinação dos N valores inteiros para comprimi-los, obtendo baixíssima entropia e boa taxa de compressão. Em uma realização preferencial, o método obtém, à exemplo de LLE, melhores resultados do que a codificação deita, abrange um número de casos maior do que a codificacão exponencial de Golomb, é de fácil implementação, possui complexidade O(n) e permite implementação dirigida para aplicação. Pode ser utilizado em microprocessadores e em quaisquer outras aplicações que demandem tráfego (ou armazenamento) de informações digitais.METHOD AND APPARATUS FOR DIGITAL SIGN COMPRESSION AND DECOMPRESSION. The present invention relates to the area of digital signal compression and decompression. Specifically it is located in the area of compression and lossless compression (Iossless compression) of digital signals, aiming at its application where they are widely used today, computer data bus, internet packet traffic, mobile phone communication, etc. The present invention provides a method for compressing and decompressing digital signals consisting of the generalization of the method originally known as LLE (Limited-Length Encoding). In particular, it takes advantage of the combination of N integer values to compress them, obtaining very low entropy and good compression ratio. In a preferred embodiment, the method achieves, like LLE, better results than bed coding, covers a greater number of cases than Golomb exponential coding, is easy to implement, has O (n) complexity, and allows implementation. directed to application. It can be used on microprocessors and any other applications that require digital information traffic (or storage).
Description
Relatório Descritivo de Patente de InvençãoPatent Invention Descriptive Report
Método ε Aparato para Compressão ε Descompressâo de Sinais DigitaisMethod ε Apparatus for Compression ε Digital Signal Decompression
Campo da InvençãoField of the Invention
A presente invenção refere-se à área de compressão e descompressâode sinais digitais. Especificamente situa-se na área de compressão sem perda(lossless compression) de sinais digitais, visando sua aplicação aonde estassão hoje largamente utilizadas, barramento de dados de computadores, tráfegode pacotes na internet, comunicação de celulares, etc.The present invention relates to the area of compression and decompression of digital signals. Specifically it is located in the area of lossless compression of digital signals, aiming at its application where they are widely used today, computer data bus, internet packet traffic, mobile phone communication, etc.
A presente invenção apresenta um método para compressão de sinaisdigitais, em especial dois valores inteiros, de forma bem mais condensada,bem como um aparato compreendendo meios para a realização de tal método.Apresenta ainda um aparato e um método para descompressâo dos mesmos.The present invention provides a method for compressing digital signals, especially two integer values, in a much more condensed form, as well as an apparatus comprising means for performing such a method. It further provides an apparatus and a method for decompressing them.
Antecedentes da InvençãoBackground of the Invention
A compressão convencional sem perda (lossless) de sinais digitais utilizaalgoritmos para comprimir os sinais originais, como por exemplo, código demáquina de um determinado tamanho em bits, em uma representação quedescreve o sinal original utilizando uma quantidade de bits menor que aquantidade original. A representação comprimida permite a reconstrução dedados originais sem a perda de informação. O problema consiste em reduzir otamanho de determinadas mensagens, de forma a que estas possam ocuparmenor i espaço de armazenamento e/ou possam trafegar mais rapidamenteentre dois dispositivos de comunicação.Conventional lossless compression of digital signals uses algorithms to compress the original signals, such as machine code of a certain bit size, in a representation that describes the original signal using less bits than the original amount. The compressed representation allows the reconstruction of original data without the loss of information. The problem is to reduce the size of certain messages so that they can take up less storage space and / or travel faster between two communication devices.
Para isso, a estratégia consiste em reduzir as redundâncias presentesna referida mensagem. Por redundância, entenda-se qualquer padrão queesteja bem claro e definido dentro da mensagem, como por exemplo, grandeseqüência de caracteres repetidos, correlação de trechos grandes, etc.For this, the strategy is to reduce the redundancies present in said message. Redundancy means any pattern that is very clear and defined within the message, such as repeated large character sequence, large chunk correlation, and so on.
Para reduzir redundâncias, atualmente um dos métodos mais utilizadosé a chamada codificação de Huffman. Para reduzir o tamanho da mensagem,Huffman codifica de forma mais compacta os valores que mais aparecem namensagem, em detrimento dos que menos aparecem. Como os valores menoscompactos quase não aparecem, o resultado final da codificação tende a serbom, gerando uma representação mais compacta da mensagem original.Dentre os muitos sistemas que utilizam Huffman atualmente, encontram-sesistemas largamente conhecidos, tais como as codificações JPEG, MPEG, MP3,dentre outras. Seu espectro de abrangência é bem extenso.To reduce redundancies, one of the most commonly used methods today is called Huffman coding. To reduce message size, Huffman more compactly encodes the values that appear the most in the message, rather than the ones that appear the least. As the less compact values hardly appear, the end result of the encoding tends to be good, generating a more compact representation of the original message. Among the many systems using Huffman today are widely known systems, such as JPEG, MPEG, MP3 encoding. ,among others. Its range of coverage is quite extensive.
As referências à codificação de Huffman são muitas. Embora comprimamuito bem sinais que contenham muitos bytes, Huffman não se aplicaeficientemente a mensagens pequenas, uma vez que inclui uma tabela deconversão entre os símbolos codificados e os símbolos originais.References to Huffman coding are many. Although it compresses very many-byte signals very well, Huffman does not apply effectively to small messages, as it includes a conversion table between the encoded symbols and the original symbols.
Por exemplo, ao tentar comprimir uma mensagem de 16bits, Huffmanprovavelmente gerará resultados desastrosos, uma vez que só sua tabela jáocupa mais do que os referidos 16 bits.For example, when trying to compress a 16bit message, Huffman will likely generate disastrous results, since only your table already concerns more than those 16 bits.
O método da presente invenção difere de Huffman por não precisarincluir na codificação resultante uma tabela de conversão (que possibilite adecodificação do dado codificado), uma vez que esta tabela ocupa um espaçoconsiderável. Em função disso, o método da presente invenção conseguecomprimir eficientemente mensagens pequenas.The method of the present invention differs from Huffman in that it does not need to include in the resulting encoding a conversion table (which enables the coding of the encoded data), since this table occupies a considerable space. As a result, the method of the present invention can efficiently compress small messages.
Na década de 1990, a IBM propôs um método atualmente conhecidocomo "Arithmetic Coding". Embora seja um método também muito eficientepara compressão de grandes volumes de dados, este método também (aexemplo de Huffman) pode gerar resultados desastrosos ao tentar comprimirpequenas mensagens.In the 1990s, IBM proposed a method currently known as "Arithmetic Coding". Although it is also a very efficient method for compressing large volumes of data, this method too (eg Huffman) can produce disastrous results when trying to compress small messages.
Há ainda outros métodos (RLE, Lempel-Ziv, etc) que se aplicam amensagens que contêm grande volume de dados, mas estes métodos tambémnão se aplicam eficientemente a mensagens pequenas (como por exemplo,mensagens de 16 bits).There are still other methods (RLE, Lempel-Ziv, etc.) that apply messages that contain large amounts of data, but these methods also do not apply efficiently to small messages (such as 16-bit messages).
Dentre os métodos que se predispõem a comprimir mensagenspequenas, encontram-se alguns, conforme segue abaixo.Among the methods that predispose to compress small messages are some, as follows.
A codificação exponencial de Golomb ("Exponential-Golomb Code") éutilizada no padrão de vídeo MPEG-4 e tem por característica principal o fatode cada valor possuir uma representação única que prioriza a codificaçãoeficiente de números pequenos. É importante ressaltar a forma rápida como arepresentação cresce. Ou seja, para valores relativamente pequenos (maioresdo que 8) esta compressão isoladamente já não oferece vantagem alguma emrelação ao valor não codificado.Exponential-Golomb Code (Exponential-Golomb Code) is used in the MPEG-4 video standard and its main feature is that each value has a unique representation that prioritizes the efficient coding of small numbers. It is important to emphasize the rapid way in which representation grows. That is, for relatively small values (greater than 8) this compression alone no longer offers any advantage over the uncoded value.
Embora eficiente para codificar números pequenos (por exemplo,contidos no domínio [0,8]), a codificação exponencial de Golomb não se aplicaeficientemente a números grandes (como, por exemplo, contidos no domínio[200,255]). Para evitar esta situação, métodos de codificação com perda (comoé o caso do MPEG-4) quantízam os valores de forma a garantir um domíniofavorável à compressão pelo método exponencial de Golomb.Although efficient for encoding small numbers (eg, contained in the domain [0.8]), Golomb exponential encoding does not apply efficiently to large numbers (such as those contained in the domain [200,255]). To avoid this situation, lossy coding methods (such as MPEG-4) quantify the values to ensure a favorable domain for Golomb exponential compression.
Em função do acima exposto, percebe-se que, embora eficiente paracompressão de números pequenos, este método requer uma série de cuidadosprévios para que seu resultado final não se torne desastroso e, por este motivo,sua aplicação é muito restrita.Given the above, it is clear that, although efficient for small number compression, this method requires a series of precautions so that its final result does not become disastrous and, therefore, its application is very restricted.
A literatura patentária possui diversos documentos que propõemsoluções para o problema de compressão de sinais digitais. Dentre elespodemos citar o pedido de patente deste mesmo inventor, despositado em20/05/2008, que codifica dois valores (a,b) gerando outros dois valores (c,d)aonde o número de bits utilizado para codificar d é uma função do valor obtidoem c. Para possibilitar a reconstrução do dado original, utiliza ainda um bitindicador da ordem correta original de compressão, indicando se a sequenciacorreta era (a,b) ou (b,a). A presente invenção difere deste documento pelo fatode possibilitar a codificação de mais de dois valores por codeword codificada.Considera-se que esse documento é o documento do estado da técnica quemais se aproxima da presente invenção.The patent literature has several documents that propose solutions to the problem of digital signal compression. Among them we can cite the patent application of this same inventor, filed on 05/20/2008, which encodes two values (a, b) generating two other values (c, d) where the number of bits used to encode d is a function of the value. obtained c. To enable reconstruction of the original data, it also uses a bit indicator of the correct original order of compression, indicating whether the correct sequence was (a, b) or (b, a). The present invention differs from this document in that it enables the coding of more than two values by coded codeword. It is considered that this document is the state of the art document that most closely approximates the present invention.
O documento EP 1367725, que descreve um método de compressãosem perdas onde tal método compreende as etapas de dividir os bits damensagem em grupos de bits, analisando-os um a um, independentemente dosignificado numérico original destes grupos de bits e independentemente dodomínio em que estavam originalmente contidos..A presente invenção difere deste documento pelo fato de partir dosignificado numérico do valor de seus bytes para, a seguir, codificar os bits emfunção deste significado numérico. A presente invenção toma como vantagemadicional sobre o estado da técnica, o fato de saber que o domínio derepresentação dos valores lidos está contido, por exemplo, no domínio [0,255]e tira partido disso, evitando representações desnecessárias que extrapolem oreferido domínio.EP 1367725, which describes a lossy compression method where such a method comprises the steps of dividing the message bits into bit groups, analyzing them one by one, regardless of the original numeric meaning of these bit groups and independently of the domain in which they were originally The present invention differs from this document in that it departs from the numeric meaning of its byte value and then encodes the bits for this numerical meaning. The present invention takes as a traditional advantage over the state of the art the fact that the domain representing the read values is contained, for example, in the domain [0.255] and takes advantage of it, avoiding unnecessary representations that extrapolate said domain.
Já o documento US 6,226,325 descreve um método para compressãode sinais digitais onde a compressão se dá através da divisão do sinal originalem grupos de alta-frequencia e baixa-frequencia.US 6,226,325 describes a method for compressing digital signals where compression occurs by dividing the original signal into high frequency and low frequency groups.
A presente invenção difere deste documento pelo fato de não dividir osinal original em grupos de alta-frequencia e baixa-frequencia. As poucas esimples análises são todas realizadas no domínio do tempo.The present invention differs from this document in that it does not divide the original signal into high frequency and low frequency groups. The few simple analyzes are all performed in the time domain.
O documento US 7,171,053 descreve um método para comprimir sinaisdigitais utilizando transformadas "integer-to-integer" para comprimir sinais.Preferencialmente utiliza uma variante da codificação de Rice, mas podeopcionalmente utilizar outras transformadas já previamente conhecidas.US 7,171,053 describes a method for compressing digital signals using integer-to-integer transforms to compress signals. Preferably it uses a variant of Rice coding, but may optionally use other previously known transforms.
A presente invenção difere deste documento pelo fato de utilizar umacodificação (bem distinta de Rice, Golomb, etc), que tira partido do domínio derepresentação dos valores avaliados, comprimindo apenas uma parte damensagem, aonde o tamanho de representação da parte comprimida é umafunção do significado numérico das outras partes.The present invention differs from this document in that it uses a coding (quite distinct from Rice, Golomb, etc.), which takes advantage of the domain of representation of the evaluated values, compressing only a portion of the message, where the representation size of the compressed part is a function of the meaning. of the other parts.
O documento US 7,280,052 descreve um método para compressão desinais através da comparação com dicionários.US 7,280,052 describes a method for desinal compression by comparison with dictionaries.
A presente invenção difere deste documento pelo fato de não utilizardicionários.The present invention differs from this document in that it is not used by the dictionaries.
O documento US 7,352,298 descreve um processo de compressão desinais digitais compreendendo uma etapa inicial de submeter os sinais iniciais atransformadas matemáticas (tais como wavelet, DCT, etc) para gerarcoeficientes, seguido de agrupamento desses coeficientes, onde esses gruposserão transmitidos como sinais compactados.A presente invenção difere deste documento por se tratar de umatransformada, que tem como uma das diversas vantagens, o fato de tirarpartido do domínio para conseguir representar de forma mais compacta parteda informação codificada.US 7,352,298 describes a digital signal compression process comprising an initial step of subjecting mathematical transformed initial signals (such as wavelet, DCT, etc.) to generate coefficients, followed by grouping these coefficients, where these groups will be transmitted as compressed signals. The invention differs from this document in that it is a transformed one which has as one of several advantages the fact that it takes advantage of the domain to be able to more accurately represent the encoded information.
O documento WO 2004/051862 descreve um método para compressãode sinais digitais compreendendo as etapas de construir uma janela com umasubstring da string binária inicial, e comparar a string inicial com a substringselecionada para a presença ou ausência de pelo menos um bit da substring.WO 2004/051862 describes a method for compressing digital signals comprising the steps of constructing an unsubstring window of the initial binary string, and comparing the initial string with the substring selected for the presence or absence of at least one bit of substring.
A presente invenção difere deste documento por tirar proveito dodomínio de representação do sinal de entrada. Na verdade, após verificar osdocumentos encontrados do estado da técnica, pôde-se concluir que, apresente invenção difere de todos no quesito referente ao domínio derepresentação dos valores de entrada e saída da codificação.The present invention differs from this document in that it takes advantage of the input signal representation domain. In fact, after verifying the documents found from the state of the art, it can be concluded that the present invention differs from all in that it concerns the domain of representation of encoding input and output values.
Portanto, pode-se ver que o método da presente invenção não foidescrito nem sequer sugerido pelos documentos do estado da técnica, deforma que a presente invenção é dotada de novidade e atividade inventiva.Therefore, it can be seen that the method of the present invention has not been even described by the prior art documents, so that the present invention is endowed with novelty and inventive activity.
Sumário da InvençãoSummary of the Invention
É um objeto da presente invenção um método para compressão desinais digitais compreendendo as etapas de:An object of the present invention is a method for digital signal compression comprising the steps of:
a) ordenar os valores de uma sequencia de entrada compreendendo Nvalores, onde N é maior ou igual a 2;a) sorting the values of an input sequence comprising Nvalues, where N is greater than or equal to 2;
b) codificar os valores da seqüência ordenada em uma seqüência desaída onde:b) encode the values of the ordered sequence into an output sequence where:
- o primeiro valor da seqüência ordenada é codificado em númerode bits, fixo e conhecido a priori, escolhido em um intervalo de 1 a64, preferencialmente igual a 8; e- the first value of the ordered sequence is encoded in fixed number and a priori known, chosen from 1 to 64, preferably 8; and
- os valores subseqüentes são codificados com um número de bitssignificativos menor ou igual do que o número de bits significativosutilizados para codificar o valor anterior;c) adicionar à seqüência de saída uma seqüência identificadora, onde onúmero de bits da seqüência identificadora é tal que:- subsequent values are encoded with a number of significant bits less than or equal to the number of significant bits used to encode the previous value c) add to the output sequence an identifier sequence, where the number of bits of the identifier sequence is such that:
y « log2(NI)and log2 (NI)
onde:Where:
- y é o número de bits da seqüência identificadora; e- y is the number of bits of the identifying string; and
- Iog2(NI) é o valor do logaritmo, na base 2, do fatorial do valor N.- Iog2 (NI) is the logarithm value, in base 2, of the factorial of value N.
É um adicional objeto da presente invenção um aparato para acompressão de sinais digitais compreendendo as etapas de codificar umaseqüência compreendendo dois ou mais bits, que representam diversos valoresnuméricos, contidos preferencialmente no mesmo domínio, gerando outrasequencia de bits compreendendo outros valores numéricos aonde o tamanhoocupado pela representação do primeiro valor codificado é fixa e aonde otamanho ocupado pela representação do segundo valor codificado é umafunção do primeiro valor codificado.It is a further object of the present invention a digital signal compression apparatus comprising the steps of encoding a sequence comprising two or more bits representing several numerical values preferably contained within the same domain, generating another bit sequence comprising other numerical values where the size occupied by the representation The first coded value is fixed and where the size occupied by the representation of the second coded value is a function of the first coded value.
Em uma realização preferencial o aparato para compressão de sinaisdigitais compreende:In a preferred embodiment the digital signal compression apparatus comprises:
a) meios para obtenção dos valores digitais de entrada a serem codificados.;a) means for obtaining the digital input values to be encoded;
b) meios para ordenação dos valores da etapa a);b) means for ordering the values of step a);
c) meios para obtenção do números de bits significativos utilizados paradescrever um valor;c) means for obtaining the significant bit numbers used to describe a value;
d) meios para obtenção de uma sequencia de bits que descarta umaparte ou a totalidade dos bits não-significativos utilizados para descreverum valor numérico;d) means for obtaining a bit sequence that discards a part or all of the non-significant bits used to describe a numeric value;
e) meios para obtenção de uma sequencia de bits identificadora quedescreve a ordenação obtida na etapa b);e) means for obtaining an identifying bit sequence which describes the ordering obtained in step b);
f) meios para montagem do sinal digital de saída, onde o sinal de saídacompreende:f) means for mounting the digital output signal, wherein the output signal comprises:
- a sequencia de bits obtida na etapa d);- the bit sequence obtained in step d);
- a sequencia de bits obtida na etapa e);É um adicional objeto da presente invenção um método para decodificarsinais digitais comprimidos compreendendo as etapas de:The bit sequence obtained in step e) It is a further object of the present invention a method for decoding digital compressed signals comprising the steps of:
a) identificação dos bits relacionados ao primeiro valor codificadode uma sequencia de valores digitais;a) identifying the bits related to the first coded value of a sequence of digital values;
b) identificação dos bits relacionados aos demais valorescodificados de uma sequencia de valores digitais, aonde cadavalor é codificado com um número menor ou igual do que ovalor que o precede na sequencia;b) identification of bits related to the other coded values of a sequence of digital values, where each value is coded with a number less than or equal to the value preceding it in the sequence;
c) identificação dos bits relacionados à seqüência identificadorade valores previamente intencionalmente ordenados;c) identification of bits related to the sequence identifier of previously intentionally ordered values;
d) determinação dos valores da seqüência de entrada; ed) determination of the values of the input sequence; and
e) determinação da ordem inicial dos valores da seqüência deentrada.e) determination of the initial order of the values of the input sequence.
É um adicional objeto da presente invenção um aparato para adecodificação de sinais digitais compreendendo as etapas de decodificar umaseqüência compreendendo uma seqüência de saída e uma seqüênciaidentificadora, gerando assim os valores originalmente codificados erearrumando-os na sua ordem inicial.It is a further object of the present invention a digital signal decoding apparatus comprising the steps of decoding a sequence comprising an output sequence and an identifying sequence, thereby generating the originally encoded values and rearranging them in their initial order.
Em uma realização preferencial o aparato para descompressão de sinaisdigitais compreende:In a preferred embodiment the digital signal decompression apparatus comprises:
a) meios para obtenção dos valores digitais codificados.;a) means for obtaining encoded digital values;
b) meios para identificação da seqüência de bits relacionados aosvalores codificados;b) means for identifying the sequence of bits related to the encoded values;
c) meios para identificação da seqüência identificadora;c) means for identifying the identifying sequence;
d) meios para determinação dos valores da seqüência de entrada; ed) means for determining input sequence values; and
e) meios para ordenação dos valores da seqüência de entrada.e) means for ordering the values of the input sequence.
Descrição Detalhada da InvençãoDetailed Description of the Invention
A descrição abaixo e seus exemplos têm o intuito somente deexemplificar algumas das inúmeras maneiras de se realizar a invenção, deforma que deva ser interpretada de forma ilustrativa, e não restritiva.Algumas passagens desta descrição detalhada estão representadas emtermos de algoritmos e representações simbólicas de operações de sinaisdigitais binários na memória de um computador. Essas descrições algorítmicase representações englobam as técnicas usadas pelos técnicos no assunto paratransmitir seu trabalho a outros técnicos no assunto.The description below and its examples are intended only to exemplify some of the numerous ways of carrying out the invention, so that they should be interpreted by way of illustration rather than restrictively. Some passages in this detailed description are represented by terms of algorithms and symbolic representations of operation of the invention. binary digital signals in a computer's memory. These algorithmic descriptions and representations encompass the techniques used by subject matter technicians to transmit their work to other subject matter technicians.
Para efeito dessa invenção, expressões como "processamento","cálculo", "determinação" e semelhantes se referirão à ações e/ou processos deum computador ou sistema eletrônico semelhante, capaz de manipular e/outransformar dados representados fisicamente, como por exemplo, eletrônicos,em dados de representação similar.For purposes of this invention, expressions such as "processing", "calculation", "determination" and the like will refer to the actions and / or processes of a similar computer or electronic system capable of manipulating and / or otherwise transforming physically represented data, such as electronic , in data of similar representation.
O método aqui descrito pode ser implementado em instruções demáquinas, ou alternativamente em hardwares para realização das operações,por uma combinação de componentes de computadores.The method described herein may be implemented in machine instructions, or alternatively in hardware for operations, by a combination of computer components.
A expressão "código" deve ser interpretada como um agregado deinstruções de máquina executáveis, como as encontradas por exemplo, em umarquivo binário compilado de um computador.The expression "code" should be interpreted as an aggregate of executable machine instructions, such as those found in a compiled binary file of a computer.
O método da presente invenção é denominado xLLE (eXtended Limited-Length Encoding)The method of the present invention is called xLLE (eXtended Limited-Length Encoding).
A presente invenção objetiva comprimir de forma otimizada mensagenspequenas (por exemplo contendo 5 bytes), visando sua aplicação aonde estassão hoje largamente utilizadas, barramento de dados de computadores, trafegode pacotes na internet, comunicação de celulares, etc.The present invention aims to optimally compress small messages (for example containing 5 bytes) for their application where they are widely used today, computer data bus, Internet packet traffic, mobile phone communication, etc.
Método de Compressão de SinaisSignal Compression Method
O método da presente invenção compreende as etapas de codificar umaseqüência compreendendo dois ou mais bits, que representam N valoresnuméricos, por exemplo (a,b,c), contidos preferencialmente no mesmo domínio,gerando outra seqüência de bits compreendendo outros N valores numéricos(d,e,f), aonde o tamanho ocupado pela representação de um valor é função deum outro valor da seqüência. Preferencialmente, o tamanho ocupado pelarepresentação de um dos valores codificados é fixa.A seqüência de entrada pode ser arrumada de diversas formas, desdeque seja capaz de gerar uma seqüência que permita a manipulaçãomatemática posterior. Em especial, a seqüência de entrada é ordenada emordem decrescente dos valores de entrada. Realizações opcionais, comomédia e diferença dos valores de entrada também podem ser utilzadas.The method of the present invention comprises the steps of encoding a sequence comprising two or more bits representing N numeric values, for example (a, b, c), preferably contained in the same domain, generating another sequence of bits comprising other N numeric values (d , e, f), where the size occupied by the representation of a value is a function of another value of the sequence. Preferably, the size occupied by the representation of one of the encoded values is fixed. The input sequence may be arranged in a variety of ways, provided it is capable of generating a sequence that permits subsequent mathematical manipulation. In particular, the input sequence is ordered in descending order of the input values. Optional achievements, the average and difference in input values can also be used.
Em uma realização preferencial, o método de compressão compreendeas etapas de:In a preferred embodiment, the compression method comprises the steps of:
a) ordenar os valores de uma seqüência de entrada compreendendo Nvalores, onde N é maior ou igual a 2, em ordem decrescente;a) sort the values of an input sequence comprising Nvalues, where N is greater than or equal to 2, in descending order;
b) codificar os valores da seqüência ordenada em uma seqüência desaída onde:b) encode the values of the ordered sequence into an output sequence where:
- o primeiro valor da seqüência ordenada é codificado com 8 bits; e- the first value of the ordered sequence is 8 bit encoded; and
- os valores subseqüentes são codificados com um número de bitssignificativos menor ou igual do que o número de bits significativos utilizadospara codificar o valor anterior;- subsequent values are encoded with a number of significant bits less than or equal to the number of significant bits used to encode the previous value;
c) adicionar à seqüência de saída uma seqüência identificadora, onde onúmero de bits da seqüência identificadora é tal que:c) add to the output sequence an identifier sequence, where the number of bits of the identifier sequence is such that:
y > log2(NI)y> log2 (NI)
onde:Where:
- y é o número de bits da seqüência identificadora; e- y is the number of bits of the identifying string; and
- log2(NI) é o valor do logaritmo, na base 2, do fatorial do valor N.- log2 (NI) is the value of logarithm, in base 2, of the factorial of value N.
A codificação realizada pelo método se dá através de funçõesaritméticas simples, como soma, subtração, deslocamento, testescomparativos, como por exemplo "maior que", "menor que" e/ou "igual a".The coding performed by the method takes place through simple arithmetic functions, such as sum, subtraction, displacement, comparative tests, such as "greater than", "less than" and / or "equal to".
Em uma realização preferencial, onde N é igual a 5, o número de arranjospossíveis que contenham (a,b,c,d,e) é igual a 5*4*3*2*1=120. Ou seja, basta quea sequencia identificadora contenha 7 bits para que se consiga descrever todosos arranjos possíveis (f,g,h,i,j), obtidos a partir da ordenação de (a,b,c,d,e).Assim, nesta realização o valor g é codificado com o número de bits igualao número de bits significativos utilizados para descrever o valor f.In a preferred embodiment, where N is 5, the number of possible arrays containing (a, b, c, d, e) is 5 * 4 * 3 * 2 * 1 = 120. That is, it is enough that the identifier sequence contains 7 bits to be able to describe all possible arrangements (f, g, h, i, j), obtained from the ordering of (a, b, c, d, e). In this embodiment the g value is encoded with the number of bits equal to the number of significant bits used to describe the value f.
Analogamente , o valor h é codificado com o número de bits igual ao número debits significativos utilizados para descrever o valor g, o valor i é codificado com onúmero de bits igual ao número de bits significativos utilizados para descrever ovalor h e o valor j é codificado com o número de bits igual ao número de bitssignificativos utilizados para descrever o valor i.Similarly, the h value is encoded with the number of bits equal to the number of significant bits used to describe the g value, the i value is encoded with the number of bits equal to the number of significant bits used to describe the value, and the j value is encoded with the number of bits equal to the number of significant bits used to describe the value i.
Ao final da sequencia codificada (f,g,h,i,j) inclui-se a sequenciaidentificadora, que contém a informação necessária para reordenar corretamenteos valores (a,b,c,d,e)At the end of the coded sequence (f, g, h, i, j) is included the identifier sequence, which contains the information necessary to correctly reorder the values (a, b, c, d, e)
Em todos os casos, o sinal digital de saída compreende a sequenciaidentificadora, responsável pela correta ordenação do sinal original (a,b,c,d,e).In all cases, the digital output signal comprises the identifying sequence, responsible for the correct ordering of the original signal (a, b, c, d, e).
Para N=2, a sequencia identificadora ocupa preferencialmente 1 bit. Istoporque o numero de arranjos possíveis (2*1) pode ser descrito em 1 bit (2<=21).For N = 2, the identifier sequence preferably occupies 1 bit. This is because the number of possible arrangements (2 * 1) can be described in 1 bit (2 <= 21).
Para N=3, a sequencia identificadora ocupa preferencialmente 3 bits. Istoporque o numero de arranjos possíveis (3*2*1) pode ser descrito em 3 bits (6<=23).For N = 3, the identifier sequence preferably occupies 3 bits. This is because the number of possible arrangements (3 * 2 * 1) can be described in 3 bits (6 <= 23).
Para N=4, a sequencia identificadora ocupa preferencialmente 5 bits. Istoporque o numero de arranjos possíveis (4*3*2*1) pode ser descrito em 5 bits (24<=25).For N = 4, the identifying sequence preferably occupies 5 bits. This is because the number of possible arrangements (4 * 3 * 2 * 1) can be described in 5 bits (24 <= 25).
Para N=5, a sequencia identificadora ocupa preferencialmente 7 bits. Isto porqueo numero de arranjos possíveis (5*4*3*2*1) pode ser descrito em 7 bits (120<=27).For N = 5, the identifier sequence preferably occupies 7 bits. This is because the number of possible arrangements (5 * 4 * 3 * 2 * 1) can be described in 7 bits (120 <= 27).
Para N=6, a sequencia identificadora ocupa preferencialmente 10 bits. Isto porqueo numero de arranjos possíveis (6*5*4*3*2*1) pode ser descrito em 10 bits (720<=210).For N = 6, the identifier sequence preferably occupies 10 bits. This is because the number of possible arrangements (6 * 5 * 4 * 3 * 2 * 1) can be described in 10 bits (720 <= 210).
É fácil perceber que o tamanho ocupado pela sequencia identificadoracresce rapidamente em função em N. Em função disto, sugere-se na realizaçãopreferencial que N seja inferior a 6 e, preferencialmente, igual a 5.It is easy to see that the size occupied by the identifier sequence increases rapidly as a function of N. Accordingly, it is suggested in the preferred embodiment that N be less than 6 and preferably equal to 5.
Em uma realização preferencial o aparato para compressão de sinaisdigitais compreende:In a preferred embodiment the digital signal compression apparatus comprises:
a) meios para obtenção dos valores digitais de entrada a serem codificados.;a) means for obtaining the digital input values to be encoded;
b) meios para ordenação dos valores da etapa a);b) means for ordering the values of step a);
c) meios para obtenção do números de bits significativos utilizados paradescrever um valor;d) meios para obtenção de uma sequencia de bits que descarta umaparte ou a totalidade dos bits não-significativos utilizados para descreverum valor numérico;c) means for obtaining the significant bit numbers used to write a value d) means for obtaining a bit sequence that discards a part or all of the non-significant bits used to describe a numeric value;
e) meios para obtenção de uma sequencia de bits identificadora quedescreve a ordenação obtida na etapa b);e) means for obtaining an identifying bit sequence which describes the ordering obtained in step b);
f) meios para montagem do sinal digital de saída, onde o sinal de saídacompreende:f) means for mounting the digital output signal, wherein the output signal comprises:
- a sequencia de bits obtida na etapa d);- the bit sequence obtained in step d);
- a sequencia de bits obtida na etapa e);- the bit sequence obtained in step e);
A etapa b contempla prefrencialmente a ordenação dos valores emordem decrescente dos valores da etapa a. A presente invenção pode utilizarqualquer outra forma de ordenação para gerar a nova sequencia a sercodificada, como por exemplo, relações de média e diferença entre valores dasequencia obtida no item a.Step b preferentially contemplates ordering the values in descending order of the values of step a. The present invention may use any other sorting order to generate the new sequence to be coded, for example, mean ratios and difference between string values obtained in item a.
A realização que envolve uma ordenação decrescente dos valoresobtidos na etapa a é apenas ilustrativa e não pretende limitar a abrangência dapresente invenção.The embodiment involving a descending ordering of the values obtained in step a is illustrative only and is not intended to limit the scope of the present invention.
Uma das características principais do presente método é tirar proveito deuma relação seqüencial entre valores obtidos no item b, de forma a que otamanho ocupado pela representação de um valor seja função de um outrovalor da sequencia.One of the main characteristics of the present method is to take advantage of a sequential relationship between values obtained in item b, so that the size occupied by the representation of a value is a function of another value of the sequence.
Método de Descompressão de SinaisSignal Decompression Method
O método da presente invenção compreende as etapas de:The method of the present invention comprises the steps of:
a) identificação dos bits relacionados ao primeiro valor codificado de uma sequencia de valores digitais;a) identifying the bits related to the first coded value of a digital value sequence;
b) identificação dos bits relacionados aos demais valorescodificados de uma sequencia de valores digitais, aonde cadavalor é codificado com um número menor ou igual do que ovalor que o precede na sequencia;c) identificação dos bits relacionados à sequencia identificadorade valores previamente intencionalmente ordenados;b) identification of the bits related to the other coded values of a sequence of digital values, where each value is coded with a number less than or equal to the preceding value in the sequence, c) identification of the bits related to the sequence identifier of previously intentionally ordered values;
d) determinação dos valores da sequencia de entrada; ed) determining the values of the input sequence; and
e) determinação da ordem inicial dos valores da sequencia deentrada.e) determination of the initial order of the values of the input sequence.
Em especial, tal método é realizado por um aparato para descompressãocompreendendo:In particular, such a method is performed by a decompression apparatus comprising:
a) meios para obtenção dos valores digitais codificados.;a) means for obtaining encoded digital values;
b) meios para identificação da sequencia de bits relacionados aosvalores codificados;b) means for identifying the sequence of bits related to the encoded values;
c) meios para identificação da sequencia identificadora;c) means for identifying the identifying sequence;
d) meios para determinação dos valores da sequencia de entrada; ed) means for determining input sequence values; and
e) meios para ordenação dos valores da sequencia de entrada.e) means for sorting the input sequence values.
Seguem abaixo dois exemplos ilustrativos de algumas das diversasformas que o método pode abranger. No primeiro caso (vide exemplo 1),codifica-se 5 valores utilizando a lógica "maior/menor". No segundo caso (videexemplo 2), codifica-se 2 valores utilizando a lógica "soma/diferença". Osexemplos abaixo não objetivam restringir o método, apenas ilustrar-lo.Below are two illustrative examples of some of the many ways the method can cover. In the first case (see example 1), one encodes 5 values using the "largest / smallest" logic. In the second case (see example 2), 2 values are coded using the "sum / difference" logic. The examples below are not intended to restrict the method, only to illustrate it.
Exemplo 1: Representardigitalmente a sequencia (7,0,5,1,0)Example 1: Digitally Representing the Sequence (7,0,5,1,0)
Ordena-se a sequencia original, por exemplo, em ordem decrescente,obtendo então a sequencia a codificar conforme abaixo:The original sequence is sorted, for example, in descending order, and the sequence to be coded is as follows:
{7,0,5,1,0} {7,5,1,0,0}{7.0,5,1,0} {7,5,1,0,0}
Codifica-se o primeiro valor da sequencia com valor fixo, por exemploigual a 8 bits. Assim a sequencia ficaria:00000111The first value of the fixed-value sequence is encoded, for example equal to 8 bits. So the sequence would look like: 00000111
Considerando que os números estão ordenados em ordem decrescente,o proximo valor da sequencia utilizará, no máximo, o numero de bitssignificativos utilizados na codificação da sequencia anterior e assimsucessivamente. Assim, a sequencia é codificada da seguinte forma:Since the numbers are sorted in descending order, the next sequence value will use at most the number of significant bits used in the previous sequence encoding and so on. Thus, the sequence is coded as follows:
7 5 10 000000111 101 001 0 07 5 10 000000111 101 001 0 0
Após a criação da sequencia codificada, é necessário incluir umasequencia de bits responsável por indicar qual a ordem correta deressequenciamento dos valores originais. Considerando que no exemplo acimaa sequencia original possui 5 valores a serem codificados (N=5), temos que 7bits são suficientes para descrever corretamente este ressequenciamento (umavez que 27 é maior do que 5*4*3*2*1). E assim, a sequencia final ficaria:After the coded sequence has been created, it is necessary to include a bit sequence responsible for indicating the correct order of unqualification of the original values. Considering that in the example above the original sequence has 5 values to be coded (N = 5), we have that 7bits is sufficient to correctly describe this resquencing (since 27 is greater than 5 * 4 * 3 * 2 * 1). And so, the final sequence would look like:
7 5 10 000000111 101 001 0 0 xxxxxxx7 5 10 000000111 101 001 0 0 xxxxxxx
Ou seja, aonde tínhamos 5 valores, ocupando 40bits, passamos a ter 5valores ocupando 23bits.That is, where we had 5 values, occupying 40bits, we now have 5 values occupying 23bits.
Representação original -> 40bitsOriginal representation -> 40bits
Representação codificada 23bits23bits coded representation
É fácil perceber que este método possibilita diversas variantes eotimizações claras. Uma destas muitas otimizações óbvias consiste, por exemplo,em suprimir a representação dos valores iguais a zero que são posteriores aoúltimo valor zero. Isto porque, considerando que a sequencia está ordenada,sabe-se a priori que todos os valores após zero são também iguais a zero.Assim sendo, uma variante do método aqui proposto, geraria a seguinterepresentação:It is easy to see that this method enables several variants and clear optimizations. One of these many obvious optimizations is, for example, to suppress the representation of zero values that are later than the last zero value. This is because, considering that the sequence is ordered, it is known a priori that all values after zero are also equal to zero. Thus, a variant of the method proposed here would generate the following representation:
7 5 10 07 5 10 0
00000111 101 001 0 xxxxxxx00000111 101 001 0 xxxxxxx
Assim, teríamos:So we would have:
Representação original 40bitsOriginal representation 40bits
Representação codificada -> 23bitsCoded Representation -> 23bits
Representação alternativa 22bitsAlternative Representation 22bits
É interessante notar que este método engloba o conceito original dométodo LLE (Limited-Length Encoding), generalizando-o. Neste sentido oexemplo abaixo, mostra intencionalmente que o método LLE é um casoparticular do método xLLE para o caso particular em que N é igual a 2.It is interesting to note that this method encompasses the original concept of the LLE (Limited-Length Encoding) method, generalizing it. In this sense the example below intentionally shows that the LLE method is a particular case of the xLLE method for the particular case where N is equal to 2.
Assim, segue o exemplo abaixo que utiliza dois valores.So, follow the example below that uses two values.
Exemplo 2: Representar diqitalmente a sequencia (19,37)Example 2: Digitally Representing the Sequence (19.37)
Após a obtenção da sequencia original, ordena-se a sequencia original,por exemplo, aonde o primeiro valor contém a soma dos valores a seremcodificados. Os demais valores da sequencia representarão, por exemplo, adiferença destes para a soma. Esta versão é obviamente não otimizada emeramente ilustrativa. Assim teríamos:After obtaining the original sequence, the original sequence is ordered, for example, where the first value contains the sum of the values to be coded. The other values of the sequence will represent, for example, their difference to the sum. This version is obviously not optimized and emersely illustrative. Thus we would have:
{19,37} {56,19}{19.37} {56.19}
Para evitar overflow, o primeiro valor é preferencialmente codificado com8+N-1 bits. Como N=2, então o primeiro valor é codificado com 9 bits. .Assim asequencia ficaria:56 19To avoid overflow, the first value is preferably encoded with 8 + N-1 bits. As N = 2, then the first value is encoded with 9 bits. .Such would be: 56 19
000111000 10011000111000 10011
Considerando-se que o número de valores codificados é igual a 2 (N=2),então apenas 1 bit já é suficiente para descrever o ressequenciamento correto.Assuming that the number of coded values equals 2 (N = 2), then just 1 bit is enough to describe the correct desquencing.
Assim, obtém-se como sequencia final:Thus, it is obtained as final sequence:
56 1956 19
000111000 10011 χ000111000 10011 χ
Ou seja, aonde tínhamos 2 valores, ocupando 16bits, passamos a ter 2valores ocupando 15bits.That is, where we had 2 values, occupying 16bits, we now have 2 values occupying 15bits.
Representação original 16bitsOriginal representation 16bits
Representação codificada 15bits15bits coded representation
Os exemplos acima ilustram que o método xLLE aplica-se a um númerode valores a serem codificados (N) não necessariamente iguais a 2.The above examples illustrate that the xLLE method applies to a number of values to be encoded (N) not necessarily equal to 2.
De forma análoga, demonstra também que, embora indique como formapreferencial a utilização de relações do tipo "maior que" e "menor que" entre oselementos consecutivos de uma sequencia, permite também outras formas derelação entre os elementos codificados, tais como relações do tipo "soma" e"diferença". As relações matemáticas entre os valores codificados são diversase não restritivas do método.Similarly, it also demonstrates that while it indicates as preferential the use of "greater than" and "less than" relations between consecutive elements of a sequence, it also allows other forms of relationship between coded elements, such as "type" relations. sum "and" difference ". The mathematical relations between the coded values are not restrictive of the method.
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
BRPI0806178 BRPI0806178A2 (en) | 2008-08-11 | 2008-08-11 | method and apparatus for digital signal compression and decompression |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
BRPI0806178 BRPI0806178A2 (en) | 2008-08-11 | 2008-08-11 | method and apparatus for digital signal compression and decompression |
Publications (1)
Publication Number | Publication Date |
---|---|
BRPI0806178A2 true BRPI0806178A2 (en) | 2010-10-05 |
Family
ID=42801163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BRPI0806178 BRPI0806178A2 (en) | 2008-08-11 | 2008-08-11 | method and apparatus for digital signal compression and decompression |
Country Status (1)
Country | Link |
---|---|
BR (1) | BRPI0806178A2 (en) |
-
2008
- 2008-08-11 BR BRPI0806178 patent/BRPI0806178A2/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019153700A1 (en) | Encoding and decoding method, apparatus and encoding and decoding device | |
US6885319B2 (en) | System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms | |
US6819271B2 (en) | Parallel compression and decompression system and method having multiple parallel compression and decompression engines | |
US7378992B2 (en) | Content independent data compression method and system | |
JP7031828B2 (en) | Methods, devices, and systems for data compression and decompression of semantic values | |
CN103067022B (en) | A kind of integer data lossless compression method, decompression method and device | |
CN108768403A (en) | Lossless data compression, decompressing method based on LZW and LZW encoders, decoder | |
US10666289B1 (en) | Data compression using dictionary encoding | |
JP2009542094A (en) | Data encoding method | |
WO2014021837A1 (en) | Entropy coding and decoding using polar codes | |
US8106799B1 (en) | Data compression and decompression using parallel processing | |
US7375660B1 (en) | Huffman decoding method | |
WO2017131579A1 (en) | Methods, devices and systems for compressing and decompressing data | |
WO2009009602A1 (en) | Data coding/decoding for electrical computers and digital data processing systems | |
Collet | RFC 8878: Zstandard Compression and the'application/zstd'Media Type | |
KR102068383B1 (en) | Entropy modifier and method | |
Al-Hashemi et al. | A new lossless image compression technique based on Bose, Chandhuri and Hocquengham (BCH) codes | |
Haque et al. | Study on data compression technique | |
CN104682966B (en) | The lossless compression method of table data | |
Sailunaz et al. | Data compression considering text files | |
CN112449191A (en) | Method for compressing a plurality of images, method and apparatus for decompressing an image | |
JP2010258532A (en) | Circuit and method for converting bit length into code | |
BRPI0806178A2 (en) | method and apparatus for digital signal compression and decompression | |
Wang et al. | An entropy coding based on binary encoding for mixed-radix digits | |
Ambadekar et al. | Advanced data compression using J-bit Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B03A | Publication of an application: publication of a patent application or of a certificate of addition of invention | ||
B06F | Objections, documents and/or translations needed after an examination request according art. 34 industrial property law | ||
B07A | Technical examination (opinion): publication of technical examination (opinion) | ||
B09B | Decision: refusal | ||
B09B | Decision: refusal |
Free format text: MANTIDO O INDEFERIMENTO UMA VEZ QUE NAO FOI APRESENTADO RECURSO DENTRO DO PRAZO LEGAL |