Anar al contingut

Zstandard

De L'Enciclopèdia, la wikipedia en valencià

Zstandard és un algoritme de compressió de senyes sense pèrdua desenrollat per Yann Collet en Facebook. zstd és l'implementació de referència corresponent en C, publicada com software de còdic obert el 31 d'agost de 2016.[1][2]

En 2018 l'algoritme es va publicar com Plantilla:IETF RFC, que també definix un tipo de mig associat "application/zstd", extensió de nom d'archiu "zst" i codificació de contingut HTTP "zstd". [3]

Característiques

[editar | editar còdic]

Zstandard va ser dissenyat per a oferir una relació de compressió comparable a la de l'algoritme DEFLATE (desenrollat en 1991 i utilisat en els programes originals ZIP i gzip), pero més ràpida, especialment per a la descompressió. Es pot ajustar en nivells de compressió que van des de -7 (el més ràpit) [4] a 22 (la velocitat de compressió més llenta, pero la millor relació de compressió).

A partir de la versió 1.3.2 (octubre de 2017), zstd implementa opcionalmente la busca i deduplicación de ranc molt llarc ( Plantilla:Còdic, finestra de 128 MiB) similar a rzip o lrzip.[5]

La velocitat de compressió pot variar en un factor de 20 o més entre els nivells més ràpits i més llents, mentres que la descompressió és uniformemente ràpida, variant en menys del 20% entre els nivells més ràpits i més llents.[6] La llínea de comandos Zstandard té un modo "adaptatiu" (Plantilla:Còdic) que varia el nivell de compressió depenent de les condicions d'I/S, principalment quina tan ràpit pot escriure l'eixida.

Zstd en el seu nivell de compressió màxim proporciona una relació de compressió propenca a lzma, lzham i ppmx, i rendix millor que lza o bzip2.[7][8] Zstandard alcança la frontera actual de Pareto, ya que es descomprime més ràpit que qualsevol atre algoritme actualment disponible en una relació de compressió similar o millor.[9][10]


Els diccionaris poden tindre un gran impacte en la taxa de compressió d'archius menuts, per lo que Zstandard pot utilisar un diccionari de compressió proporcionat per l'usuari. També oferix un modo d'entrenament, capaç de generar un diccionari a partir d'un conjunt de mostres.[11][12] En particular, es pot carregar un diccionari per a processar grans conjunts d'archius en redundància entre archius, pero no necessàriament dins de cada archiu, com en el cas dels archius de registre.

Zstandard combina una etapa de coincidència de diccionari (LZ77) en una gran finestra de busca i una etapa ràpida de codificació d'entropía. Utilisa tant la codificació Huffman (usada per a les entrades en la secció Lliterals)[13] com la entropía d'estats finitos (FSE), una versió ràpida en taules de ANS, tANS, utilisada per a les entrades en la secció Seqüències. Per la forma en que FSE transferix l'estat entre símbols, la descompressió implica processar els símbols dins de la secció Seqüències de cada bloc en orde invers (de l'últim al primer).

Vore també

[editar | editar còdic]
  • LZ4 (algoritme de compressió): un membre ràpit de la família LZ77
  • LZFSE: un algoritme similar d'Apple utilisat des de iOS 9 i OS X 10.11 i que es va convertir en còdic obert l'1 de juny de 2016
  • Zlib

Referències

[editar | editar còdic]
  1. «[1]», InfoQ. Consultat el 2019-04-20.
  2. «[2]», The Register. Consultat el 2016-09-06.
  3. Plantilla:Cita IETF
  4. «Release Zstandard v1.3.4 - faster everything · facebook/zstd» (en en). GitHub. Consultat el 2024-03-27.
  5. «Command Line Interface for Zstandard library» (en en). GitHub.
  6. «ZStandard in ZFS». open-zfs.org. Consultat el 2019-04-20.
  7. Matt Mahoney. «Silesia Open Source Compression Benchmark». Consultat el 2019-05-10.
  8. Matt Mahoney. «Large Text Compression Benchmark, .2157 zstd». Consultat el 2016-09-01.
  9. Erro en la seqüencia d'órdens: no existix el mòdul «Citas».
  10. Erro en la seqüencia d'órdens: no existix el mòdul «Citas».
  11. «Facebook developers report massive speedups and compression ràtio improvements when using dictionaries» (PDF). Fermilab. Consultat el 2024-03-27.
  12. «Smaller and faster data compression with Zstandard». Facebook.
  13. «facebook/zstd». GitHub.


Referències

[editar | editar còdic]