No estoy seguro de si alguien ha explicado aún por qué el número mágico parece ser exactamente 1: 2 y no, por ejemplo, 1: 1.1 o 1:20.
Una razón es que, en muchos casos típicos, casi la mitad de los datos digitalizados es ruido , y el ruido (por definición) no se puede comprimir.
Hice un experimento muy simple:
Tomé una tarjeta gris . Para un ojo humano, se ve como una simple pieza neutral de cartón gris. En particular, no hay información .
Y luego tomé un escáner normal, exactamente el tipo de dispositivo que la gente podría usar para digitalizar sus fotos.
Escaneé la tarjeta gris. (En realidad, escaneé la tarjeta gris junto con una tarjeta postal. La tarjeta postal estaba allí para verificar la cordura para poder asegurarme de que el software del escáner no haga nada extraño, como agregar contraste automáticamente cuando ve la tarjeta gris sin características).
Recorté una parte de 1000x1000 píxeles de la tarjeta gris y la convertí a escala de grises (8 bits por píxel).
Lo que tenemos ahora debería ser un buen ejemplo de lo que sucede cuando estudias una parte sin rasgos distintivos de una foto escaneada en blanco y negro , por ejemplo, cielo despejado. En principio, no debería haber exactamente nada que ver.
Sin embargo, con un aumento mayor, en realidad se ve así:
No hay un patrón claramente visible, pero no tiene un color gris uniforme. Parte de esto es probablemente causado por las imperfecciones de la tarjeta gris, pero supongo que la mayor parte es simplemente ruido producido por el escáner (ruido térmico en la celda del sensor, amplificador, convertidor A / D, etc.). Se parece bastante al ruido gaussiano; Aquí está el histograma (en escala logarítmica ):
Ahora, si suponemos que cada píxel tiene su sombra seleccionada en esta distribución, ¿cuánta entropía tenemos? Mi script de Python me dijo que tenemos hasta 3.3 bits de entropía por píxel . Y eso es mucho ruido.
Si este fuera realmente el caso, implicaría que no importa qué algoritmo de compresión usemos, el mapa de bits de 1000x1000 píxeles se comprimiría, en el mejor de los casos, en un archivo de 412500 bytes. Y lo que sucede en la práctica: obtuve un archivo PNG de 432018 bytes, bastante cerca.
Si generalizamos demasiado, parece que no importa qué fotos en blanco y negro escanee con este escáner, obtendré la suma de lo siguiente:
- información "útil" (si la hay),
- ruido, aprox. 3 bits por píxel.
Ahora, incluso si su algoritmo de compresión comprime la información útil en << 1 bits por píxel, seguirá teniendo hasta 3 bits por píxel de ruido incompresible. Y la versión sin comprimir es de 8 bits por píxel. Por lo tanto, la relación de compresión estará en el estadio de 1: 2, sin importar lo que haga.
Otro ejemplo, con un intento de encontrar condiciones sobre idealizadas:
- Una cámara réflex digital moderna, que utiliza la configuración de sensibilidad más baja (menos ruido).
- Una toma desenfocada de una tarjeta gris (incluso si hubiera alguna información visible en la tarjeta gris, sería borrosa).
- Conversión de archivo RAW en una imagen en escala de grises de 8 bits, sin agregar ningún contraste. Usé configuraciones típicas en un convertidor RAW comercial. El convertidor intenta reducir el ruido por defecto. Además, estamos guardando el resultado final como un archivo de 8 bits: en esencia, estamos tirando los bits de orden más bajo de las lecturas sin procesar del sensor.
¿Y cuál fue el resultado final? Se ve mucho mejor que lo que obtuve del escáner; el ruido es menos pronunciado y no hay exactamente nada que ver. Sin embargo, el ruido gaussiano está ahí:
¿Y la entropía? 2.7 bits por píxel . Tamaño del archivo en la práctica? 344923 bytes para 1M píxeles. En el mejor de los casos, con algunas trampas, empujamos la relación de compresión a 1: 3.
Por supuesto, todo esto no tiene exactamente nada que ver con la investigación de TCS, pero creo que es bueno tener en cuenta lo que realmente limita la compresión de datos digitalizados del mundo real. Los avances en el diseño de algoritmos de compresión más sofisticados y la potencia de CPU sin procesar no ayudarán; Si desea guardar todo el ruido sin pérdidas, no puede hacerlo mucho mejor que 1: 2.