BT

Apple abre o código fonte de seu novo algoritmo de compressão LZFSE

| por Sergio De Simone Seguir 14 Seguidores , traduzido por João Talles Seguir 1 Seguidores em 05 ago 2016. Tempo estimado de leitura: 2 minutos |

A Apple abriu o código fonte de seu novo algoritmo de compressão conhecido como LZFSE, anunciado o ano passado com o lançamento do iOS 9 e o OSX 10.10. De acordo com a Apple, o LZFSE proporciona o mesmo ganho de compressão do algoritmo ZLib nível 5 sendo de 2 a 3 vezes mais rápido e com melhor melhor eficiência de compressão.

O LZFSE é baseado no algoritmo Lempel-Ziv e utiliza um recurso conhecido como Codificação Entrópica de Estado Finito, baseado no trabalho de Jarek Duda sobre Sistemas Numéricos Assimétricos (sigla ANS em inglês) para codificação entrópica. Para resumir, o algoritmo ANS tem como objetivo "eliminar o gap entre velocidade e taxa de compressão" e pode ser utilizado tanto para codificação precisa quanto para encoding rápido com suporte para encriptação de dados. O LZFSE é um dos vários algoritmos de compressão que utiliza ANS como substituto de algoritmos de compressão tradicionais como o Huffman e codificação aritmética.

O LZFSE não tem como objetivo ser o melhor ou o mais rápido algoritmo de compressão disponível. Na verdade, a Apple declara que o LZ4 é mais rápido que o LZSFE e o LZMA e proporciona taxas de compressão mais altas, apesar de ser bem mais lento do que as alternativas disponíveis no SDK da Apple. O LZFSE é a alternativa sugerida pela Apple quando compressão e velocidade são igualmente importantes e deseja reduzir o consumo de energia.

A documentação do LZFSE está disponível no GitHub. Para efetuar o build no MacOS, execute o comando a seguir:

$ xcodebuild install DSTROOT=/tmp/lzfse.dst

Para efetuar o build do LZFSE no dispositivo iOS, basta executar o seguinte comando:

$ xcodebuild install DSTROOT=/tmp/lzfse.dst

Além da documentação da API, um recurso útil para começar a utilizar o LZFSE é o projeto de exemplo disponibilizado pela Apple no ano passado que demonstra como utilizar o LZFSE tanto para compressão em bloco quanto em stream.

O LZFSE segue a mesma linha do algoritmo Brotli do Google, que também teve o código aberto no ano passado. Em comparação com o LZFSE, o Brotli parece ser otimizado para um caso de uso diferente, como a compressão de recursos estáticos para Web e aplicações Android (APKs), na qual a taxa de compressão é de extrema importância.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT