¿Se pueden comprimir los datos a un tamaño menor que el límite de compresión de datos de Shannon?


17

Estaba leyendo sobre algoritmos de compresión de datos y el límite teórico para la compresión de datos. Recientemente encontré un método de compresión llamado "Codificación de entropía combinatoria", la idea principal de este método es codificar el archivo como los caracteres presentados en el archivo, sus frecuencias y el índice de permutación de estos caracteres representado por el archivo.

Estos documentos pueden ayudar a explicar este método:

https://arxiv.org/pdf/1703.08127

http://www-video.eecs.berkeley.edu/papers/vdai/dcc2003.pdf

https://www.thinkmind.org/download.php?articleid=ctrq_2014_2_10_70019

Sin embargo, en el primer documento que leí que al usar este método podrían comprimir algo de texto por debajo del límite de Shannon (no consideraron el espacio necesario para guardar la frecuencia de los caracteres y el espacio necesario para guardar el meta datos del archivo). Lo pensé y descubrí que este método no será muy eficiente para archivos muy pequeños, pero por otro lado puede funcionar bien con archivos grandes. En realidad no entiendo muy bien este algoritmo o el límite de Shannon, solo sé que es la suma de la probabilidad de cada personaje multiplicada por del recíproco de la probabilidad.log2

Entonces tengo algunas preguntas:

  1. ¿Este método de compresión realmente comprime archivos más pequeños que el límite de Shannon?

  2. ¿Hay algún algoritmo de compresión que comprima archivos a menos del límite de Shannon (la respuesta a esta pregunta hasta donde sé es que no)?

  3. ¿Puede existir un método de compresión que comprima archivos más pequeños que el límite de Shannon?

  4. Si la codificación combinatoria realmente comprime archivos más allá del límite de Shannon, ¿no es posible comprimir el archivo una y otra vez hasta que alcancemos el tamaño de archivo que queremos?


26
Shannon demostró que no puedes comprimir por debajo del límite de Shannon.
Yuval Filmus

11
Puede ir por debajo del límite de Shannon con compresión con pérdida . Shannon solo mostró que no puedes comprimir por debajo del límite sin perder información . @YuvalFilmus. Al igual que en una imagen RGB, puede tirar los bits de orden inferior de los componentes R, G, B.
smci


66
@smci Eso es en gran medida irrelevante en cualquier discusión sobre la teoría de la compresión. Obviamente puedo tirar todo y llamarlo compresión.
tubería

1
Digamos que tengo un archivo grande como una imagen. Ahora en el modelo mapeo la imagen completa a "1" ha ... Me he comprimido por debajo del límite de Shannon ya que toda la imagen está comprimida a "1" ......
Pieter B

Respuestas:


34

En realidad, no entiendo muy bien este algoritmo o el límite de Shannon, solo sé que es la suma de la probabilidad de cada personaje multiplicada por log2 del recíproco de la probabilidad.

Aquí yace el quid. El límite de Shannon no es una propiedad universal de una cadena de texto. Es la propiedad de una cadena de texto más un modelo que proporciona probabilidades (posiblemente dependientes del contexto) de símbolos. Nos dice qué tan bien ese modelo podría comprimir el texto, suponiendo que el modelo sea exacto .

Si usa un modelo para calcular el límite de Shannon y luego un modelo diferente para comprimir, si el segundo modelo es más preciso, puede superar el límite original de Shannon que había calculado, pero eso no es realmente relevante.


44
Para hacer un ejemplo práctico, si sabe que sus datos consisten en una sola letra repetida N veces, puede lograr tasas de compresión arbitrariamente grandes (es decir, pasar de 10 mil millones de 'a' a una tupla ('a', 10000000))
Ant

12

Es trivialmente simple demostrar que puede comprimir por debajo del límite de Shannon: tome un compresor de trampa que tenga un montón de archivos comunes asignados a tokens. Dichos archivos se almacenan como esos tokens. (Obviamente, el compresor debe estar muy grande o estar dibujando en una biblioteca muy grande).

Sin embargo, el compresor será inherentemente menos eficiente en el manejo de cualquier archivo que no esté en su biblioteca, ya que de alguna manera debe distinguir un token de una compresión normal.

Lo que no puede hacer es tener un compresor que supere el límite de Shannon en todos los archivos .


11

Primero aplica el modelo a los datos, calculando la secuencia de probabilidades, fe 1/ /2, 1/ /3, 1/ /6 6. Luego, para codificar cada símbolo con probabilidadpag, necesitas losol2(1/ /pag)bits Y dado un modelo particular, no puede comprimir datos mejor que la entropía de probabilidades de Shannon producida por este modelo particular.

Pero si aplica otro modelo, obtendrá otra secuencia de probabilidades. Por ejemplo, la letra "u" es bastante rara, por lo que su probabilidad sobre el texto completo puede ser del 3%, y es la probabilidad que tiene que asignar a esta letra utilizando un modelo de Markov de orden 0 .

Pero en los textos en inglés, después de "q" usualmente viene una "u", por lo tanto, utilizando un modelo de orden 1, puede asignar una probabilidad mucho mayor a "u" que va después de "q", mejorando así la relación de compresión.

Además, algunos modelos generan menos símbolos que los de entrada, por ejemplo, LZ77 reemplaza las repeticiones de texto con referencias inversas, por lo que "abababab" se convierte en "ab [2,8]".

Cuando alguien habla de la entropía de Shannon de algunos datos en lugar de datos comprimidos por un modelo en particular, generalmente se refiere a la entropía de Shannon producida por un modelo de orden 0, es decir, asignar a cada símbolo su probabilidad sobre todo el texto. Obviamente, puede superar este margen aplicando un modelo más sofisticado a los datos.


3

Otra posible interpretación del texto: el algoritmo de compresión dado le dará una mejor compresión de algunos textos, y una peor compresión en otros. Sin embargo, los usuarios generalmente se preocupan por algunos tipos de archivos (páginas HTML en inglés, código de máquina 80386) más que otros (tablas de números verdaderamente aleatorios, ruido sin sentido seleccionado para minimizar la repetición). Cualquier esquema de compresión va a compensar ser mejor para comprimir datos del mundo real con ser peor que inútil para comprimir ciertos otros tipos de cadenas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.