5 research outputs found
New Algorithms and Lower Bounds for Sequential-Access Data Compression
This thesis concerns sequential-access data compression, i.e., by algorithms
that read the input one or more times from beginning to end. In one chapter we
consider adaptive prefix coding, for which we must read the input character by
character, outputting each character's self-delimiting codeword before reading
the next one. We show how to encode and decode each character in constant
worst-case time while producing an encoding whose length is worst-case optimal.
In another chapter we consider one-pass compression with memory bounded in
terms of the alphabet size and context length, and prove a nearly tight
tradeoff between the amount of memory we can use and the quality of the
compression we can achieve. In a third chapter we consider compression in the
read/write streams model, which allows us passes and memory both
polylogarithmic in the size of the input. We first show how to achieve
universal compression using only one pass over one stream. We then show that
one stream is not sufficient for achieving good grammar-based compression.
Finally, we show that two streams are necessary and sufficient for achieving
entropy-only bounds.Comment: draft of PhD thesi
Brotli: A General-Purpose Data Compressor
Brotli is an open source general-purpose data compressor introduced by Google in late 2013 and now adopted in most known browsers and Web servers. It is publicly available on GitHub and its data format was submitted as RFC 7932 in July 2016. Brotli is based on the Lempel-Ziv compression scheme and planned as a generic replacement of Gzip and ZLib. The main goal in its design was to compress data on the Internet, which meant optimizing the resources used at decoding time, while achieving maximal compression density.
This article is intended to provide the first thorough, systematic description of the Brotli format as well as a detailed computational and experimental analysis of the main algorithmic blocks underlying the current encoder implementation, together with a comparison against compressors of different families constituting the state-of-the-art either in practice or in theory. This treatment will allow us to raise a set of new algorithmic and software engineering problems that deserve further attention from the scientific community
Statistical and repetition-based compressed data structures
[Abstract]
In this thesis we present several practical compressed data structures that address
open problems related to statistically-compressible and highly repetitive databases.
In a the first part, we focus on statistical-based compressed data structures,
targeting the problem of managing large alphabets. This problem arises when
typical sequence-based compression is used as a basis for compressed data structures
representing more general structures like grids and graphs. Concretely, (a) we
provide space-efficient solutions to represent prefix-free codes when the alphabet
is large; (b) we also present a new wavelet-tree based data structure to solve rank
and select queries that obtains zero-order compression and outperforms previous
wavelet tree implementations on large alphabets.
In the second part of this thesis, we focus on highly repetitive datasets. We
present (c) a very space efficient grammar-based compressed data structure to solve
rank and select on these scenarios; (d) the first LZ77-space bounded compressed
data structure that solves rank and select queries in O(1) time and is in practice
almost as fast as statistically-compressed structures; and (e) the first practical
version of grammar-compressed tree topologies, obtaining unprecedented results in
the representation of repetitive trees.
Additionally, we apply our new solutions to several problems of interest: point
grids, inverted indexes, self-indexes, XPath systems, and compressed suffix trees of
highly repetitive inputs, displaying various space-time tradeoffs of interest.[Resumen]
En esta tesis presentamos varias estructuras de datos comprimidas de naturaleza
práctica, centradas en problemas abiertos relacionados con bases de datos
estadísticamente compresibles y bases de datos cuyo contenido es altamente
repetitivo.
En la primera parte, nos centramos en las estructuras de datos comprimidas para
bases de datos estadísticamente compresibles, más concretamente, en problemas
relativos al manejo de alfabetos grandes. Este tipo de problemas aparecen
cuando usamos técnicas clásicas de compresión estadística en estructuras de datos
comprimidas para secuencias, y éstas a su vez se aplican a problemas tales como
la representación de grillas de puntos o grafos. Concretamente, (a) presentamos
soluciones muy eficientes en términos de espacio para representar códigos libres de
prefijo cuando el alfabeto el grande; (b) y también presentamos una nueva estructura
de datos comprimida basada en wavelet trees para resolver consultas rank y select
que obtiene compresión de orden cero y mejora las implementaciones previas de
wavelet trees en alfabetos grandes.
En la segunda parte de esta tesis, nos centramos en las bases de datos altamente
repetitivas. Presentamos (c) una estructura de datos comprimida basada en
gramáticas para resolver consultas rank y select en este tipo de contextos y
que usa muy poco espacio; (d) la primera estructura de datos comprimida que
obtiene espacio proporcional al de un compresor LZ77 y resuelve consultas rank y
select en tiempo O(1), siendo en la práctica casi tan rápido como las estructuras de
datos basadas en compresión estadística; (e) la primera estructura de datos práctica
que utiliza gramáticas para comprimir topologías de árboles, obteniendo resultados
sin precedentes para la representación de árboles repetitivos.
Adicionalmente, mostramos varias aplicaciones en las que las estructuras de datos
que proponemos a lo largo de la tesis resultan de utilidad. Desde representaciones
de grillas de puntos, índices invertidos, auto-índices, sistemas XPath, hasta árboles
de sufijos comprimidos para colecciones altamente repetitivas, mostrando diferentes
resultados de interés tanto en términos de tiempo como de espacio.[Resumo]
Nesta tese presentamos varias estruturas de datos comprimidas de natureza práctica,
centradas en problemas abertos no ámbito das bases de datos estatisticamente
compresibles e das bases de datos altamente repetitivas.
Na primeira parte da tese, centrámonos nas estruturas de datos comprimidas para
as bases de datos estatisticamente compresibles. Máis concretamente en problemas
relativos ó manexo de alfabetos grandes. Este tipo de problemas aparecen cando
usamos técnicas de compresión estatística en estruturas de datos comprimidas para
secuencias, e esta á sua vez se utilizan para aplicacións tales como a representación de
grellas de puntos ou para a representación de grafos. Concretamente, (a) presentamos
solucións que son moi eficientes en termos espaciais para representar códigos libres
de prefixo cando o alfabeto é grande; e (b) tamén presentamos unha nova estructura
de datos comprimida baseada en wavelet trees para resolver consultas rank e select
que obtén compresión de orde cero e mellora as implementacións previas de wavelet
trees para alfabetos grandes.
Na segunda parte da tese, centrámosnos nas bases de datos con contido altamente
repetitivo. Presentamos (c) unha estrutura de datos comprimida baseada en
gramáticas que usa moi pouco espazo e resolve eficientemente consultas rank e
select en este tipo de contextos repetitivos; (d) a primeira estrutura de datos
comprimida que obtén espazo proporcional ó que obtén un compresor LZ77 e resolve
consultas rank e select en tempo O(1), sendo na práctica tan rápido coma as
estruturas de datos baseadas en compresión estatística; (e) a primeira estrutura de
datos práctica que utiliza gramáticas para comprimir topoloxías de árbores, obtendo
uns resultados sin precedentes para a representación de árbores repetitivos.
Adicionalmente, mostramos varias aplicacións nas que as estruturas de datos
que propoñemos ó longo da tese resultan de utilidade: representacións de grellas
de puntos, índices invertidos, auto-índices, sistemas XPath e árbores de sufixos
comprimidos para colecións altamente repetitivas, mostrando diferentes resultados
de interese, tanto en termos de espazo coma de tempo