Lempel – Ziv – Oberhumer - Lempel–Ziv–Oberhumer

LZO
Desenvolvedor (s) Markus FXJ Oberhumer
lançamento inicial 20 de maio de 1996 ; 24 anos atras ( 1996-05-20 )
Versão estável
2.10 / 1º de março de 2017 ; 3 anos atrás ( 01-03-2017 )
Sistema operacional Plataforma cruzada
Tipo compressão de dados
Licença GPLv2 ou comercial
Local na rede Internet www .oberhumer .com / opensource / lzo /

Lempel – Ziv – Oberhumer ( LZO ) é um algoritmo de compressão de dados sem perdas que se concentra na velocidade de descompressão.

Projeto

A implementação original "lzop", lançada em 1996, foi desenvolvida por Markus Franz Xaver Johannes Oberhumer, com base em algoritmos anteriores de Abraham Lempel e Jacob Ziv . A biblioteca LZO implementa uma série de algoritmos com as seguintes características:

  • maior velocidade de compressão em comparação com a compressão DEFLATE
  • descompressão muito rápida
  • requer um buffer adicional durante a compressão (de tamanho 8 kB ou 64 kB, dependendo do nível de compressão)
  • não requer memória adicional para descompressão além dos buffers de origem e destino
  • permite ao usuário ajustar o equilíbrio entre a taxa de compressão e a velocidade de compressão, sem afetar a velocidade de descompressão

LZO suporta compressão sobreposta e descompressão no local. Como um algoritmo de compressão de bloco, ele comprime e descomprime blocos de dados. O tamanho do bloco deve ser o mesmo para compressão e descompressão. LZO compacta um bloco de dados em correspondências (um dicionário deslizante) e executa literais não correspondentes para produzir bons resultados em dados altamente redundantes e lida de forma aceitável com dados não compactáveis, expandindo apenas os dados incompressíveis em um máximo de 1/64 do tamanho original quando medido sobre um tamanho de bloco de pelo menos 1 kB.

Implementações

A implementação de referência foi escrita em ANSI C e foi disponibilizada como software livre sob a GNU General Public License . Os direitos autorais do código pertencem a Markus FXJ Oberhumer. Foi publicado originalmente em 1996. Oberhumer também escreveu um frontend de linha de comando chamado lzop .

Versões do LZO estão disponíveis para as linguagens Perl , Python e Java . Várias implementações LZO são relatadas para funcionar em Win32 , AIX , ConvexOS, IRIX , Mac OS , Palm OS , PlayStation , Nintendo 64 , Wii , Solaris , SunOS , TOS (Atari ST), Linux e VxWorks .

O kernel Linux usa sua implementação LZO em alguns de seus recursos:

Referências

links externos