Una excelente manera de explicar esto es con una analogía.
Imagine que en lugar de tener palabras cortas para representar definiciones complejas, todos tenemos que usar definiciones complejas. La compresión toma ideas complejas y las comprime en palabras más pequeñas.
Como ejemplo, hagamos algo de compresión en la vida real.
- ¿Cómo las funciones de movilidad en el software HCM nos hacen la vida más fácil?
- Cómo analizar aplicaciones telefónicas e identificar las aplicaciones que se pueden comprar a bajo costo
- Si solo tuviera $ 1000 para obtener una nueva aplicación de descubrimiento social para sus primeros 10K usuarios, ¿qué haría?
- ¿Cuáles son los diseños más estúpidos en los productos de Apple (hardware y software)?
- Estamos desarrollando una aplicación y no estamos seguros si después de registrarse, los usuarios deben recibir una verificación por correo electrónico o no. ¿Cuáles son los claros beneficios de verificar las direcciones de correo electrónico de los usuarios frente a no requerir una verificación por correo electrónico?
Digamos que tengo una oración para enviar a un amigo:
“Tengo un gran deseo de que todas las personas comiencen la práctica de transacciones comerciales y comerciales no contenciosas sobre la gran roca en la que actualmente estamos vivos”.
Es una oración bastante prolija para representar la idea de que quiero la paz mundial, pero mi amigo solo puede entender estas palabras y no las más complejas que usamos con más frecuencia. Solo, no podemos hacer esta oración mucho más corta sin el conocimiento de más palabras más allá de las proporcionadas. ¡Podemos generar una oración más corta si creamos un diccionario de palabras cortas para representar las frases más largas!
Diccionario:
Bobble: tengo un gran deseo
Gafas: todas las personas
Frithy: la práctica del comercio no contencioso
Hobot: transacciones comerciales
Tierra: la gran roca en la que actualmente estamos vivos
Nueva oración [usando el diccionario]
“Bobble que las gafas comenzarían frithy y hobot sobre la Tierra”.
¡La oración es definitivamente más corta! Cuando el amigo quiere darle sentido a la oración, simplemente puede sustituir las palabras en el diccionario que aparecen en la oración con su definición correspondiente, ¡y no se pierde información en la sustitución!
Desafortunadamente, esto en realidad no hace que los datos se envíen más pequeños, solo esa oración. Esto se debe a que debemos enviar el diccionario ADEMÁS a la nueva oración. Esto elimina el beneficio de la nueva oración y, de hecho, AUMENTA el tamaño de los datos totales que se transmiten.
Entonces puede que se pregunte cuál es el punto de la analogía; después de todo, solo aumentamos el tamaño de los datos, no los comprimimos.
Bueno, este enfoque de sustitución de diccionario no funciona para cadenas de datos sin patrones. Digamos que tengo algo como esto para enviarle a mi amigo:
“la gran roca en la que actualmente estamos vivos. La gran roca en la que actualmente estamos vivos. La gran roca en la que actualmente estamos vivos. La gran roca en la que actualmente estamos vivos. Catorce. La gran roca en la que estamos actualmente vivo en. la gran roca en la que actualmente estamos vivos. en la gran roca en la que actualmente estamos vivos. en la gran roca en la que actualmente estamos vivos. Púrpura “.
Esa oración tiene la misma frase repetida ocho veces: ¡algo con lo que la sustitución del diccionario puede ayudarnos!
Diccionario:
E: “la gran roca en la que actualmente estamos vivos”.
Nueva oración [usando el diccionario]
“EEEEFourteen. EEEEPurple”
¡Esa es una diferencia de tamaño increíble, incluso cuando incluye el diccionario!
Esto es similar a cómo funciona la compresión en las computadoras: el programa de compresión analiza los datos de los elementos que se repiten con frecuencia, crea una entrada en un diccionario y luego reemplaza cada aparición del objeto repetido con la palabra en el diccionario correspondiente al patrón. Esta es la esencia de la compresión sin pérdidas. Existen otros tipos de compresión especializados para otras tareas, pero esta es la compresión de datos genérica.
La diferencia entre la forma en que ciertas aplicaciones comprimen archivos es puramente un detalle de implementación. Compiten tratando de encontrar la forma más rápida o efectiva de encontrar patrones y crear entradas de diccionario. Algunos programas dicen que es su camino, mientras que otros dicen que es otro. El que mejor se usa a menudo está determinado por el tipo de archivo que está comprimiendo.