¿Por qué hay tantos métodos diferentes de compresión de archivos?

Porque hay (y ha habido) tanta gente haciendo tales formatos de compresión por varias razones. Todos tenían una idea para hacer algo que creían que sería mejor. Desde ser mejor para tipos específicos de datos hasta pensar en un medio para comprimir algo más y / o más rápido que otros. Todo el camino para agregar características adicionales que no estaban disponibles en otros.

Primero hay 2 divisiones principales en la compresión: sin pérdida y con pérdida.

Sin pérdida

Por ejemplo, en los días de DOS, los 3 principales formatos de compresión sin pérdida eran ZIP, ARJ y LHA. ZIP fue generalmente lo suficientemente bueno y razonablemente rápido. LHA tendió a hacerlo mejor al comprimir archivos de texto. ARJ tenía algunas características adicionales como dividir el archivo en volúmenes para que quepa en pequeños discos externos como disquetes / rígidos.

Avance el reloj y muchas otras personas tuvieron ideas para mejorarlas. Por ejemplo, RAR tenía muchas de las mismas características que ARJ, pero usaba un método más nuevo de compresión, tendiendo a funcionar mejor y hacer archivos más pequeños en general (si no también más rápido). Vuele aún más y verá que la gente hizo más o menos lo mismo: cosas como 7-Zip fueron diseñadas para ser un compresor de código abierto capaz de hacer todo lo que RAR podía pero no necesitaban una licencia comercial. También se diseñaron muchas técnicas más nuevas, algunas mejores que otras en general, algunas mucho mejores para tipos específicos de datos.

Incluso obtienes cosas como estas como un proyecto de práctica que un programador hizo “solo por diversión” o “solo para aprender algo”. Por lo general, aunque estos tienden a desaparecer después de que el programador lo completó y perdió interés / obtuvo lo que quería de él. Aunque de vez en cuando alguien lo ve y piensa que es una buena idea.

Con pérdida

Estos suelen ser específicos para un tipo de datos en los que no es necesario que sea una copia exacta 1: 1. Por ejemplo, una imagen puede ajustar ligeramente los colores si pudiera almacenarlos de manera más eficiente, sin cambiar notablemente la apariencia de un humano.

Estos pasaron por numerosos “inventos” al igual que los sin pérdidas. De hecho, probablemente haya muchas más variantes de estos. Solo mirando imágenes fijas, tienes cosas como JPG, GIF, RLE, TIFF, PNG, etc. Algunas tienen pérdida o pérdida, algunos colores restringidos, otras usan otros medios de compresión, algunas permiten varias compresiones dentro de un archivo (por ejemplo, TIFF puede contiene el mismo tipo de cosas que un JPG o podría ser similar a un PNG).

Probablemente haya aún más si observa otros tipos de datos. Por ejemplo, el sonido y el video tienen numerosos formatos de compresión así como también archivos contenedores (similar a TIFF que podría contener cualquiera de varios formatos de compresión diferentes). Por ejemplo, el tipo de archivo de video AVI puede tener casi cualquier tipo de compresión de video usando cualquier códec compatible.

Una vez más, todos estos métodos de compresión, así como los formatos de archivo contenedor, se diseñaron ya que las personas tenían ideas para mejorar algo o para un propósito diferente. Por ejemplo, AVI tiende a tener problemas con las compresiones en las que el sonido usa una compresión de velocidad de bits variable, mientras que algo como MKV permite transmisiones de video y sonido múltiples muy fáciles en el mismo archivo.

De vez en cuando, a alguien se le ocurre una idea que permite compresiones mejores / más rápidas. Por ejemplo, solo observando los compresores de video en la última década, se han producido grandes mejoras, como que h265 pueda hacer un archivo que la mitad del tamaño de un MPEG2 anterior podría sin perder calidad (en comparación). Otros se introdujeron ya que los datos más nuevos debían ir más allá de los límites que tenían las cosas más antiguas, por ejemplo, SD era el límite para MPEG2 y MP4 fue diseñado para cosas como discos Blue-Ray con video de calidad HD.

Es en parte histórico. Solo porque alguien invente un mejor algoritmo de compresión, eso no hace que todos los más antiguos queden obsoletos, porque todavía hay muchos archivos comprimidos antiguos. Algunos métodos están patentados en un intento de ganar dinero, lo que limita su viabilidad en plataformas de código abierto. Algunos (por ejemplo, JPEG) son con pérdida, diseñados para comprimir audio o video a un punto que los humanos no notarán, pero no son adecuados para los datos que deben recuperarse intactos.

Algunos son más rápidos, otros ofrecen una mejor compresión. La eficiencia puede depender del tipo de entrada.