La compresión sin pérdidas es un tipo de compresión de datos que permite reconstruir perfectamente los datos originales a partir de los datos comprimidos sin pérdida de información . Esto es posible porque la mayoría de los datos del mundo real presentan redundancia estadística . [ 1 ] Por el contrario, la compresión con pérdidas solo permite reconstruir una aproximación de los datos originales , aunque generalmente con tasas de compresión mucho mejores (y, por lo tanto, con tamaños de almacenamiento reducidos).
Por aplicación del principio del palomar , ningún algoritmo de compresión sin pérdidas puede reducir el tamaño de todos los datos posibles: algunos datos se alargarán al menos en un símbolo o bit.
Los algoritmos de compresión suelen ser eficaces para documentos legibles por humanos y máquinas, pero no pueden reducir el tamaño de datos aleatorios sin redundancia . Existen diferentes algoritmos diseñados pensando en un tipo específico de datos de entrada o con supuestos concretos sobre la redundancia que probablemente contengan los datos sin comprimir.
La compresión de datos sin pérdidas se utiliza en muchas aplicaciones. Por ejemplo, se emplea en el formato de archivo ZIP y en la herramienta GNU gzip . También se utiliza con frecuencia como componente dentro de las tecnologías de compresión de datos con pérdidas (por ejemplo, el preprocesamiento estéreo conjunto mid/side sin pérdidas de los codificadores MP3 y otros codificadores de audio con pérdidas). [ 2 ]
La compresión sin pérdidas se utiliza cuando es importante que los datos originales y descomprimidos sean idénticos, o cuando las desviaciones de los datos originales serían desfavorables. Ejemplos comunes son los programas ejecutables, los documentos de texto y el código fuente. Algunos formatos de archivo de imagen, como PNG o GIF , utilizan únicamente compresión sin pérdidas, mientras que otros, como TIFF y MNG, pueden utilizar métodos con o sin pérdidas. Los formatos de audio sin pérdidas se utilizan con mayor frecuencia para archivado o producción, mientras que los archivos de audio con pérdidas , más pequeños, se utilizan normalmente en reproductores portátiles y en otros casos donde el espacio de almacenamiento es limitado o no es necesaria una replicación exacta del audio.
Técnicas
La mayoría de los programas de compresión sin pérdidas realizan dos acciones en secuencia: el primer paso genera un modelo estadístico para los datos de entrada, y el segundo paso utiliza este modelo para asignar los datos de entrada a secuencias de bits de tal manera que los datos "probables" (es decir, los que se encuentran con frecuencia) produzcan una salida más corta que los datos "improbables".
Los principales algoritmos de codificación utilizados para producir secuencias de bits son la codificación Huffman (también utilizada por el algoritmo deflate ) y la codificación aritmética . La codificación aritmética logra tasas de compresión cercanas a las mejores posibles para un modelo estadístico particular, que viene dada por la entropía de la información , mientras que la compresión Huffman es más simple y rápida, pero produce resultados deficientes para modelos que manejan probabilidades de símbolos cercanas a 1.
Existen dos métodos principales para construir modelos estadísticos: en un modelo estático , se analizan los datos y se construye un modelo, que luego se almacena junto con los datos comprimidos. Este enfoque es sencillo y modular, pero tiene la desventaja de que el modelo en sí puede ser costoso de almacenar y, además, obliga a utilizar un único modelo para todos los datos que se comprimen, por lo que su rendimiento es deficiente en archivos con datos heterogéneos. Los modelos adaptativos actualizan el modelo dinámicamente a medida que se comprimen los datos. Tanto el codificador como el decodificador parten de un modelo básico, lo que resulta en una compresión deficiente de los datos iniciales, pero a medida que aprenden más sobre los datos, el rendimiento mejora. La mayoría de los tipos de compresión más utilizados actualmente emplean codificadores adaptativos.
Los métodos de compresión sin pérdida se pueden clasificar según el tipo de datos que están diseñados para comprimir. Si bien, en principio, cualquier algoritmo de compresión sin pérdida de propósito general ( es decir, que acepte cualquier cadena de bits) puede usarse con cualquier tipo de datos, muchos no logran una compresión significativa en datos que no se ajustan al formato para el que fueron diseñados. Muchas de las técnicas de compresión sin pérdida utilizadas para texto también funcionan razonablemente bien con imágenes en color indexado .
Multimedia
Estas técnicas aprovechan las características específicas de las imágenes, como el fenómeno común de áreas bidimensionales contiguas de tonos similares. Cada píxel, excepto el primero, se reemplaza por la diferencia con su vecino izquierdo. Esto hace que los valores pequeños tengan una probabilidad mucho mayor que los grandes. Esta técnica también se aplica a menudo a archivos de audio y permite comprimir archivos que contienen principalmente frecuencias bajas y volúmenes bajos. En el caso de las imágenes, este paso se puede repetir calculando la diferencia con el píxel superior, y en los vídeos, se puede calcular la diferencia con el píxel del siguiente fotograma.
La codificación adaptativa utiliza las probabilidades de la muestra anterior en la codificación de sonido, del píxel izquierdo y superior en la codificación de imágenes, y adicionalmente del fotograma anterior en la codificación de vídeo. En la transformada wavelet, las probabilidades también se transmiten a través de la jerarquía. [ 3 ]
Cuestiones jurídicas históricas
Muchos de estos métodos se implementan en herramientas de código abierto y propietarias, en particular LZW y sus variantes. Algunos algoritmos están patentados en Estados Unidos y otros países, y su uso legal requiere una licencia del titular de la patente. Debido a las patentes sobre ciertos tipos de compresión LZW , y en particular a las prácticas de concesión de licencias del titular de la patente, Unisys, que muchos desarrolladores consideraron abusivas, algunos defensores del código abierto animaron a evitar el uso del formato GIF ( Graphics Interchange Format ) para comprimir archivos de imagen fija, optando en su lugar por los gráficos de red portátiles (PNG), que combinan el algoritmo deflate basado en LZ77 con una selección de filtros de predicción específicos del dominio. Sin embargo, las patentes de LZW expiraron el 20 de junio de 2003. [ 4 ]
Muchas de las técnicas de compresión sin pérdidas utilizadas para texto también funcionan razonablemente bien para imágenes indexadas , pero existen otras técnicas que no funcionan para texto típico pero que son útiles para algunas imágenes (en particular, mapas de bits simples), y otras técnicas que aprovechan las características específicas de las imágenes (como el fenómeno común de áreas bidimensionales contiguas de tonos similares y el hecho de que las imágenes en color suelen tener una preponderancia de un rango limitado de colores de entre los que se pueden representar en el espacio de color).
Como se mencionó anteriormente, la compresión de sonido sin pérdidas es un área algo especializada. Los algoritmos de compresión de sonido sin pérdidas pueden aprovechar los patrones repetitivos que muestra la naturaleza ondulatoria de los datos , utilizando esencialmente modelos autorregresivos para predecir el siguiente valor y codificando la diferencia (posiblemente pequeña) entre el valor esperado y los datos reales. Si la diferencia entre los datos predichos y los reales (llamada error ) tiende a ser pequeña, entonces ciertos valores de diferencia (como 0, +1, -1, etc. en los valores de muestra) se vuelven muy frecuentes, lo que puede aprovecharse codificándolos en pocos bits de salida.
En ocasiones, resulta beneficioso comprimir únicamente las diferencias entre dos versiones de un archivo (o, en la compresión de vídeo , entre imágenes sucesivas dentro de una secuencia). Esto se denomina codificación delta (del griego Δ , que en matemáticas denota una diferencia), pero el término se suele utilizar solo si ambas versiones tienen sentido fuera del proceso de compresión y descompresión. Por ejemplo, si bien el proceso de comprimir el error en el esquema de compresión de audio sin pérdidas mencionado anteriormente podría describirse como una codificación delta desde la onda sonora aproximada a la onda sonora original, la versión aproximada de la onda sonora carece de sentido en cualquier otro contexto.
Métodos
Ningún algoritmo de compresión sin pérdidas puede comprimir de forma eficiente todos los datos posibles . Por este motivo, existen muchos algoritmos diferentes diseñados pensando en un tipo específico de datos de entrada o con supuestos específicos sobre qué tipo de redundancia es probable que contengan los datos sin comprimir.
A continuación se enumeran algunos de los algoritmos de compresión sin pérdidas más comunes.
Uso general
- ANS – Codificación de entropía, utilizada por LZFSE y Zstandard
- Codificación aritmética – Codificación de entropía
- Transformación reversible de Burrows-Wheeler para hacer que los datos textuales sean más compresibles, utilizada por bzip2.
- Codificación Huffman : codificación de entropía, se combina bien con otros algoritmos.
- Compresión Lempel-Ziv (LZ77 y LZ78): algoritmo basado en diccionario que constituye la base de muchos otros algoritmos.
- Deflate : combina LZ77 con la codificación Huffman, utilizada por ZIP , gzip , zlib e imágenes PNG.
- Brotli : utiliza LZ77 con un tamaño de ventana deslizante grande (hasta 16 MiB), codificación Huffman y modelado de contexto.
- LZ4 – Compresión y descompresión muy rápidas.
- Algoritmo de cadena de Markov Lempel-Ziv (LZMA): índice de compresión muy alto, utilizado por 7zip y xz.
- Lempel–Ziv–Storer–Szymanski (LZSS): utilizado por WinRAR junto con la codificación Huffman.
- Lempel–Ziv–Welch (LZW) – Utilizado por las imágenes GIF
compressy la utilidad de Unix
- Predicción mediante coincidencia parcial (PPM): optimizada para comprimir texto plano.
- Codificación de longitud de ejecución (RLE): esquema simple que proporciona una buena compresión de datos que contienen muchas secuencias del mismo valor.
Audio
- Codificación acústica de transformación adaptativa (ATRAC)
- Apple Lossless (ALAC – Códec de audio sin pérdidas de Apple)
- Codificación de audio sin pérdidas (también conocida como MPEG-4 ALS)
- Transferencia Directa de Flujo (DST)
- Dolby TrueHD
- Audio maestro DTS-HD
- Códec de audio sin pérdidas gratuito (FLAC)
- Empaquetado sin pérdidas Meridian (MLP)
- Audio de mono (Monkey's Audio APE)
- MPEG-4 SLS (también conocido como HD-AAC)
- OptimFROG
- Calidad de sonido original (OSQ)
- RealPlayer (RealAudio sin pérdidas)
- Acortar (SHN)
- TTA (Audio sin pérdidas real)
- WavPack (WavPack sin pérdidas)
- Windows Media Audio 9 sin pérdidas (WMA sin pérdidas)
Gráficos rasterizados
- Codificación sin pérdidas únicamente
- Opciones de codificación con y sin pérdida
- AVIF – Formato de archivo de imagen AV1
- FLIF – Formato de imagen sin pérdida gratuito
- HEIF – Formato de archivo de imagen de alta eficiencia, utilizando HEVC
- ILBM – (Compresión RLE de imágenes IFF de Amiga )
- JBIG2 – compresión de imágenes en blanco y negro
- JPEG 2000 – (a través de Le Gall–Tabatabai 5/3 [ 3 ] [ 5 ] [ 6 ] transformada wavelet entera reversible )
- JPEG-LS
- JPEG XL
- JPEG XR – anteriormente WMPhoto y HD Photo
- LDCT – Transformada discreta del coseno [ 7 ] [ 8 ]
- PCX – Intercambio de imágenes
- QOI – Formato de imagen bastante aceptable
- TGA – Truevision TGA
- TIFF – Formato de archivo de imagen de etiqueta
- WebP
Gráficos 3D
- OpenCTM : compresión sin pérdidas de mallas triangulares 3D.
Video
Criptografía
Los criptosistemas suelen comprimir los datos (el "texto plano") antes del cifrado para mayor seguridad. Cuando se implementa correctamente, la compresión aumenta considerablemente la distancia de unicidad al eliminar patrones que podrían facilitar el criptoanálisis . [ 9 ] Sin embargo, muchos algoritmos de compresión sin pérdida convencionales generan encabezados, envoltorios, tablas u otros resultados predecibles que, en cambio, podrían facilitar el criptoanálisis. Por lo tanto, los criptosistemas deben utilizar algoritmos de compresión cuyos resultados no contengan estos patrones predecibles.
Genética y genómica
Los algoritmos de compresión genética (que no deben confundirse con los algoritmos genéticos ) son la última generación de algoritmos sin pérdida que comprimen datos (típicamente secuencias de nucleótidos) utilizando tanto algoritmos de compresión convencionales como algoritmos específicos adaptados a datos genéticos. En 2012, un equipo de científicos de la Universidad Johns Hopkins publicó el primer algoritmo de compresión genética que no depende de bases de datos genéticas externas para la compresión. HAPZIPPER se diseñó específicamente para los datos de HapMap y logra una compresión de más de 20 veces (reducción del 95 % en el tamaño del archivo), proporcionando una compresión de 2 a 4 veces mejor y mucho más rápido que las principales utilidades de compresión de propósito general. [ 10 ]
Los algoritmos de compresión de secuencias genómicas, también conocidos como compresores de secuencias de ADN, aprovechan las propiedades características de estas secuencias, como las repeticiones invertidas. Los compresores más exitosos son XM y GeCo. [ 11 ] Para eucariotas , XM ofrece una relación de compresión ligeramente superior, aunque para secuencias de más de 100 MB sus requisitos computacionales resultan poco prácticos.
Archivos ejecutables
Los ejecutables autoextraíbles contienen una aplicación comprimida y un descompresor. Al ejecutarse, el descompresor descomprime y ejecuta la aplicación original de forma transparente. Esto se usa con frecuencia en la programación de demostraciones , donde se realizan concursos de demostraciones con límites de tamaño estrictos, de tan solo 1 kilobyte . Este tipo de compresión no se limita estrictamente a los ejecutables binarios, sino que también se puede aplicar a scripts, como JavaScript .
Puntos de referencia
Los algoritmos de compresión sin pérdidas y sus implementaciones se prueban habitualmente en comparativas directas . Existen varias comparativas de compresión conocidas. Algunas solo evalúan la tasa de compresión de datos , por lo que los programas que obtienen mejores resultados pueden no ser adecuados para el uso diario debido a su baja velocidad. Otra desventaja de algunas comparativas es que sus archivos de datos son conocidos, lo que puede llevar a que algunos programadores optimicen sus programas para obtener el mejor rendimiento en un conjunto de datos específico. Los programas que suelen obtener mejores resultados en estas comparativas pertenecen a la clase de software de compresión con mezcla de contexto .
Matt Mahoney , en su edición de febrero de 2010 del folleto gratuito Data Compression Explained , enumera además lo siguiente: [ 12 ]
- El corpus de Calgary, que data de 1987, ya no se utiliza ampliamente debido a su pequeño tamaño. Matt Mahoney mantuvo el Desafío de Compresión de Calgary, creado y mantenido desde el 21 de mayo de 1996 hasta el 21 de mayo de 2016 por Leonid A. Broukhis.
- Tanto el Large Text Compression Benchmark como el similar Hutter Prize utilizan un conjunto de datos XML UTF-8 de Wikipedia recortado .
- El Generic Compression Benchmark , mantenido por Matt Mahoney, prueba la compresión de datos generados por máquinas de Turing aleatorias .
- Sami Runsas (el autor de NanoZip) mantuvo Compression Ratings, una herramienta de evaluación comparativa similar a Maximum Compression (prueba de compresión de múltiples archivos), pero con requisitos mínimos de velocidad. Ofrecía una calculadora que permitía al usuario ponderar la importancia de la velocidad y la relación de compresión. Los programas mejor clasificados variaban considerablemente debido a los requisitos de velocidad. En enero de 2010, el programa líder era NanoZip, seguido de FreeArc , CCM , flashzip y 7-Zip .
- La prueba de rendimiento Monster of Compression, realizada por Nania Francesco Antonio, puso a prueba la compresión de 1 GB de datos públicos con un límite de tiempo de 40 minutos. En diciembre de 2009, el compresor mejor clasificado fue NanoZip 0.07a y el compresor de archivos individuales mejor clasificado fue ccmx 1.30c.
El sitio web Compression Ratings publicó un resumen gráfico de la "frontera" en relación de compresión y tiempo. [ 13 ]
Corpus de Silesia
El corpus de Silesia es una colección de archivos creada en 2003 como alternativa a los corpus de Canterbury y Calgary , debido a la preocupación por la representatividad de estos últimos respecto a los archivos modernos. Contiene diversos tipos de datos, incluyendo documentos de texto extensos, archivos ejecutables y bases de datos. [ 14 ] Se utiliza ampliamente en la investigación sobre compresión de datos. [ 15 ]
El corpus consta de 12 archivos, con un tamaño total de 211 MB. Los archivos fueron seleccionados para representar lo que el autor consideró tipos de datos que probablemente crecerían rápidamente en tamaño con el tiempo, como programas informáticos y bases de datos, junto con puntos de referencia de compresión más tradicionales, como archivos de texto grandes. [ 14 ]
Debido a que tiene una selección de tipos de datos más amplia y moderna, se considera una mejor fuente de datos de prueba para algoritmos de compresión en comparación con el corpus de Calgary . [ 16 ]
Limitaciones
Los algoritmos de compresión de datos sin pérdida no pueden garantizar la compresión para todos los conjuntos de datos de entrada. En otras palabras, para cualquier algoritmo de compresión de datos sin pérdida, habrá un conjunto de datos de entrada que no se reducirá al ser procesado por el algoritmo, y para cualquier algoritmo de compresión de datos sin pérdida que reduzca al menos un archivo, habrá al menos un archivo que aumente. Esto se demuestra fácilmente con matemáticas elementales utilizando un argumento de conteo llamado principio del palomar , como se muestra a continuación: [ 17 ] [ 18 ]
- Supongamos que cada archivo está representado como una cadena de bits de longitud arbitraria.
- Supongamos que existe un algoritmo de compresión que transforma cada archivo en un archivo de salida que no es más largo que el archivo original, y que al menos un archivo se comprimirá en un archivo de salida que es más corto que el archivo original.
- Sea M el número más pequeño tal que existe un archivo F con longitud M bits que se comprime a algo más corto. Sea N la longitud (en bits) de la versión comprimida de F.
- Como N < M , cada archivo de longitud N mantiene su tamaño durante la compresión. Hay 2N archivos de este tipo posibles. Junto con F , esto hace 2N + 1 archivos que se comprimen en uno de los 2N archivos de longitud N.
- Pero 2N es menor que 2N + 1, así que, por el principio del palomar, debe existir algún archivo de longitud N que sea simultáneamente el resultado de la función de compresión aplicada a dos entradas diferentes. Ese archivo no se puede descomprimir de forma fiable (¿cuál de los dos originales debería resultar?), lo que contradice la suposición de que el algoritmo no tenía pérdidas.
- Por lo tanto, debemos concluir que nuestra hipótesis original (de que la función de compresión no hace que el archivo sea más largo) es necesariamente falsa.
La mayoría de los algoritmos de compresión prácticos ofrecen una función de "escape" que desactiva la codificación normal para archivos que, al ser codificados, aumentarían su tamaño. En teoría, basta con un bit adicional para indicar al decodificador que la codificación normal se ha desactivado para toda la entrada; sin embargo, la mayoría de los algoritmos de codificación utilizan al menos un byte completo (y normalmente más de uno) para este fin. Por ejemplo, los archivos comprimidos con Deflate nunca necesitan aumentar su tamaño en más de 5 bytes por cada 65 535 bytes de entrada.
De hecho, si consideramos archivos de longitud N, si todos los archivos fueran igualmente probables, entonces para cualquier compresión sin pérdidas que reduzca el tamaño de algún archivo, la longitud esperada de un archivo comprimido (promediada sobre todos los archivos posibles de longitud N) debe ser necesariamente mayor que N. Por lo tanto, si no sabemos nada sobre las propiedades de los datos que estamos comprimiendo, bien podríamos no comprimirlos en absoluto. Un algoritmo de compresión sin pérdidas solo es útil cuando es más probable que comprimamos ciertos tipos de archivos que otros; entonces el algoritmo podría diseñarse para comprimir mejor esos tipos de datos.
Por lo tanto, la principal conclusión no es que se corren grandes riesgos, sino simplemente que no siempre se puede ganar. Elegir un algoritmo implica siempre seleccionar un subconjunto de todos los archivos que se acortarán de forma útil. Esta es la razón teórica por la que necesitamos diferentes algoritmos de compresión para diferentes tipos de archivos: no puede existir un algoritmo que sea bueno para todos los tipos de datos.
El "truco" que permite a los algoritmos de compresión sin pérdidas, aplicados al tipo de datos para el que fueron diseñados, comprimir consistentemente dichos archivos a un tamaño menor, reside en que los archivos sobre los que actúan estos algoritmos presentan algún tipo de redundancia fácilmente modelable que el algoritmo está diseñado para eliminar. Por lo tanto, pertenecen al subconjunto de archivos que dicho algoritmo puede acortar, mientras que otros archivos no se comprimirían o incluso aumentarían de tamaño. Los algoritmos suelen estar ajustados de forma muy específica a un tipo de archivo en particular: por ejemplo, los programas de compresión de audio sin pérdidas no funcionan bien con archivos de texto, y viceversa.
En particular, los archivos de datos aleatorios no pueden comprimirse de forma consistente mediante ningún algoritmo de compresión de datos sin pérdidas imaginable; de hecho, este resultado se utiliza para definir el concepto de aleatoriedad en la complejidad de Kolmogorov . [ 19 ]
Es demostrablemente imposible crear un algoritmo que pueda comprimir datos sin pérdida de información. Si bien a lo largo de los años se han hecho muchas afirmaciones de empresas que logran una "compresión perfecta", donde un número arbitrario N de bits aleatorios siempre se puede comprimir a N − 1 bits, este tipo de afirmaciones pueden descartarse sin siquiera examinar los detalles del supuesto esquema de compresión. Dicho algoritmo contradice leyes fundamentales de las matemáticas porque, de existir, podría aplicarse repetidamente para reducir cualquier archivo a una longitud de 1 sin pérdida de información. [ 18 ]
Por otro lado, también se ha demostrado que no existe un algoritmo para determinar si un archivo es incompresible en el sentido de la complejidad de Kolmogorov. [ 20 ] Por lo tanto, es posible que cualquier archivo en particular, incluso si parece aleatorio, pueda comprimirse significativamente, incluso incluyendo el tamaño del descompresor. Un ejemplo son los dígitos de la constante matemática pi , que parecen aleatorios pero pueden ser generados por un programa muy pequeño. Sin embargo, aunque no se puede determinar si un archivo en particular es incompresible, un teorema simple sobre cadenas incompresibles muestra que más del 99% de los archivos de cualquier longitud dada no pueden comprimirse en más de un byte (incluyendo el tamaño del descompresor).
Formación matemática
En abstracto, un algoritmo de compresión puede considerarse como una función sobre secuencias (normalmente de octetos). La compresión es exitosa si la secuencia resultante es más corta que la secuencia original (y las instrucciones para el mapa de descompresión). Para que un algoritmo de compresión sea sin pérdidas, el mapa de compresión debe formar una inyección de secuencias de bits "normales" a secuencias "comprimidas". El principio del palomar prohíbe una biyección entre el conjunto de secuencias de longitud N y cualquier subconjunto del conjunto de secuencias de longitud N −1. Por lo tanto, no es posible producir un algoritmo sin pérdidas que reduzca el tamaño de cada posible secuencia de entrada. [ 21 ]
Puntos de aplicación en la teoría de la compresión real
Los diseñadores de algoritmos de compresión reales aceptan que los flujos con alta entropía de información no se pueden comprimir y, por lo tanto, incluyen mecanismos para detectar y gestionar esta condición. Una forma obvia de detección es aplicar un algoritmo de compresión básico y comprobar si su salida es menor que su entrada. A veces, la detección se realiza mediante heurísticas ; por ejemplo, una aplicación de compresión puede considerar incompresibles los archivos cuyos nombres terminan en ".zip", ".arj" o ".lha" sin necesidad de una detección más sofisticada. Una forma común de gestionar esta situación es entrecomillar la entrada, o las partes incompresibles de la entrada, en la salida, minimizando así la sobrecarga de compresión. Por ejemplo, el formato de datos zip especifica el "método de compresión" "Almacenado" para los archivos de entrada que se han copiado textualmente en el archivo. [ 22 ]
Véase también
- Corpus de Canterbury : corpus de prueba de compresión de datos
- Comparación de archivadores de archivos
- Código basado en gramática : algoritmo de compresión de datos sin pérdidas
- Teoría de la información : estudio científico de la información digital.
- Complejidad de Kolmogorov : medida de la complejidad algorítmica.
- Lista de códecs
- Compresión de audio por transformación sin pérdidas (LTAC)
- Número normal : número con todos los dígitos con igual frecuencia.
- Computación reversible : un concepto en informática.
- Código universal (compresión de datos) – Tipo de código de prefijo
Referencias
- ↑ "Unidad 4 Laboratorio 4: Representación y compresión de datos" . BJC.EDC.org . pág. 6. Consultado el 9 de abril de 2022 .
- ↑ Price, Andy (3 de marzo de 2022). "Lossless Streaming: el futuro del audio de alta resolución" . Audio Media International . Consultado el 25 de octubre de 2025 .
- 1 2 Unser, M.; Blu, T. (2003). "Propiedades matemáticas de los filtros wavelet JPEG2000" (PDF) . IEEE Transactions on Image Processing . 12 (9): 1080– 1090. Bibcode : 2003ITIP...12.1080U . doi : 10.1109/TIP.2003.812329 . PMID 18237979 .
- ↑ "Información sobre patentes de LZW" . Acerca de Unisys . Unisys. Archivado del original el 2 de junio de 2009.
- ↑ Sullivan, Gary (8-12 de diciembre de 2003). "Características generales y consideraciones de diseño para la codificación de vídeo de subbanda temporal" . ITU-T . Grupo de Expertos en Codificación de Vídeo . Consultado el 13 de septiembre de 2019 .
- ↑ Bovik, Alan C. (2009). La guía esencial para el procesamiento de vídeo . Academic Press . pág. 355. ISBN 9780080922508.
- ↑ Ahmed, Nasir ; Mandyam, Giridhar D.; Magotra, Neeraj (17 de abril de 1995). Rodríguez, Arturo A.; Safranek, Robert J.; Delp, Edward J. (eds.). "Esquema basado en DCT para compresión de imágenes sin pérdidas". Compresión de vídeo digital: algoritmos y tecnologías 1995. 2419. Sociedad Internacional de Óptica y Fotónica: 474–478 . Bibcode : 1995SPIE.2419..474M . doi : 10.1117/12.206386 .
- ↑ Komatsu, K.; Sezaki, K. (1998). «Transformada discreta del coseno reversible». Actas de la Conferencia Internacional IEEE de 1998 sobre Acústica, Habla y Procesamiento de Señales, ICASSP '98 (Cat. No. 98CH36181) . Vol. 3. págs. 1769–1772 . doi : 10.1109/ICASSP.1998.681802 . ISBN 0-7803-4428-6.
- ↑ Menezes, Alfred J.; van Oorschot, Paul C.; Vanstone, Scott A. (16 de octubre de 1996). Manual de criptografía aplicada . CRC Press. ISBN 978-1-4398-2191-6.
- ↑ Chanda, P.; Elhaik, E.; Bader, JS (2012). "HapZipper: compartir poblaciones de HapMap ahora es más fácil" . Nucleic Acids Res . 40 (20): e159. doi : 10.1093/nar/gks709 . PMC 3488212. PMID 22844100 .
- ↑ Pratas, D.; Pinho, AJ; Ferreira, PJSG (2016). Compresión eficiente de secuencias genómicas (PDF) . Conferencia sobre compresión de datos. Snowbird, Utah.
- ↑ Mahoney, Matt (2010). "Explicación de la compresión de datos" (PDF) . págs. 3–5 .
- ↑ "Resumen" . 1 de septiembre de 2016. Archivado del original el 1 de septiembre de 2016.
- 1 2 Deorowicz, Sebastian. Algoritmos universales de compresión de datos sin pérdidas (PDF) (Tesis). Universidad Tecnológica de Silesia. págs. 93–95 . Archivado del original (PDF) el 28 de agosto de 2024.
- ↑ Maulidina, Alysha Puti; Wijaya, Rachel Anastasia; Mazel, Kimberly; Astriani, Maria Seraphina (2024). "Estudio comparativo de algoritmos de compresión de datos: Zstandard, zlib y LZ4". Ciencia, ingeniería, gestión y tecnología de la información . Comunicaciones en informática y ciencias de la información. 2198 : 394–406 . doi : 10.1007/978-3-031-72284-4_24 . ISBN 978-3-031-72283-7.
- ↑ Gupta, Apoorv; Bansal, Aman; Khanduja, Vidhi (22 de febrero de 2017). "Técnicas modernas de compresión sin pérdidas: revisión, comparación y análisis". Segunda Conferencia Internacional de Tecnologías Eléctricas, Informáticas y de Comunicación (ICECCT) de 2017. IEEE. págs. 1–8 . doi : 10.1109/ICECCT.2017.8117850 . ISBN 978-1-5090-3239-6.
- ↑ Sayood 2002 , pág. 41.
- 1 2 Bell, Tim (2015). "La sorprendente informática". Informática en las escuelas. Currículos, competencias y concursos . Notas de clase en informática. Vol. 9378. pp. 1–11 . doi : 10.1007/978-3-319-25396-1_1 . ISBN 978-3-319-25395-4.Véase en particular las páginas 8-9 .
- ↑ Sayood 2002 , pág. 38.
- ^ Li, Ming; Vitanyi, Paul (1993). Introducción a la complejidad de Kolmogorov y sus aplicaciones . Nueva York: Springer. pag. 102.ISBN 0-387-94053-7.
Teorema 2.6 La funciónno es recursivo parcial.
- ↑ Joshi, Mark (2015). «El principio del palomar». Proof Patterns . págs. 19–23 . doi : 10.1007/978-3-319-16250-8_3 . ISBN 978-3-319-16249-2.
- ↑ "Especificación del formato de archivo .ZIP" . PKWARE, Inc. capítulo V, sección J.
Lecturas adicionales
- Sayood, Khalid (27 de octubre de 2017). Introducción a la compresión de datos . Serie Morgan Kaufmann en información y sistemas multimedia (5.ª ed.). Morgan Kaufmann . ISBN 978-0-12809474-7.
- Sayood, Khalid, ed. (18 de diciembre de 2002). Manual de compresión sin pérdidas (Comunicaciones, redes y multimedia) (1.ª ed.). Academic Press . ISBN 978-0-12390754-7.
- Phamdo, Nam. "Teoría de la compresión de datos" . Compresión de datos . Archivado del original el 8 de mayo de 2016.
- "Comparación sin pérdidas" . Base de conocimientos de Hydrogenaudio . 5 de enero de 2015. Consultado el 25 de octubre de 2025 .
- "Prueba de rendimiento de compresión de imágenes" . Archivado del original el 10 de febrero de 2013.descripción general de
- Patente estadounidense n.° 7,096,360, archivada el 2 de febrero de 2017 en Wayback Machine , "[un] "método de compresión de datos basado en frecuencia-tiempo" que admite la compresión, el cifrado, la descompresión, el descifrado y la persistencia de muchos dígitos binarios a través de frecuencias donde cada frecuencia representa muchos bits."
- Compresión de datos
- Algoritmos de compresión sin pérdidas
