¿Cómo se comprimen los archivos?

Cuando se trata de compresión, todo el mundo pensará en software de compresión como WINZIP o RAR. De hecho, la connotación y aplicación de la tecnología de compresión informática nunca se ha detenido aquí. Podemos disfrutar de hermosas películas y dulces canciones en nuestras computadoras, gracias a la tecnología de compresión. Hoy en día, cuando la velocidad de transmisión de Internet está lejos de satisfacer nuestras necesidades, la tecnología de compresión de red es particularmente importante. Es precisamente con él que podemos realizar la transmisión en tiempo real de vídeo/audio en red. La tecnología de compresión está cambiando nuestras vidas de forma inconsciente.

Conocimientos previos de codificación binaria y ASCII

La unidad de almacenamiento básica del ordenador es el byte. El código ASCII es un esquema para codificar símbolos de uso común en bytes y es popular debido a su racionalidad. Debido a que un byte tiene 8 bits, ASCII puede codificar hasta 2^8 = 256 caracteres, de los cuales los primeros 128 se denominan códigos ASCII estándar (número binario 00000000-01111165438) y los últimos 165438 se denominan códigos ASCII extendidos (número binario 10000008, como caracteres chinos " Los dos códigos ASCII ocupados por "王" son 205 y 245 respectivamente. La representación hexadecimal es CD y F5, y la representación binaria es 111101 y 1165438. En otras palabras, cuando la computadora procesa el carácter chino "王", la información en la computadora es " 1101111165438 ". Para otro ejemplo, el código ASCII de la letra mayúscula en inglés "A" es 65 y la representación hexadecimal es 41. La información en la computadora es en realidad "0100001".

Reducir la compresión

Después de conocer los principios anteriores, introduzcamos el principio de "reducir la compresión". La "abreviatura" es reducir los "bits" innecesarios en la codificación. caracteres en el archivo, lo que significa que ASCII extendido no se usa en el código de contenido, por lo que el séptimo bit (el primer bit) de todos los códigos de caracteres será 0. Usando esto, podemos reducir este bit, suponiendo que el contenido del archivo sea. ABCDEFGH

Contenido del archivo: ABCDEFGH

<. p>Contenido binario: 0100000100010000110001000100065438. 1000111 01001000

Contenido del archivo comprimido: [El contenido mostrado en chino está confuso y no se puede escribir ]

Contenido binario: 10000100010100011100065438

Este proceso de compresión consiste en eliminar todos los ceros en el encabezado original y reorganizarlo cada 8 bits, de modo que el archivo original de 8 bytes solo ocupe 7 bytes. , siempre que se agregue el séptimo bit 0 durante la descompresión, el archivo se puede restaurar a su estado original. Esta tecnología de compresión es especialmente adecuada para la compresión digital porque los códigos ASCII ocupados por los diez dígitos árabes del 0 al 9 son de 00110000-. 0011001, y los primeros cuatro dígitos son "0011". /p>

Compresión simple

El principio de compresión directa es el más fácil de entender, porque a veces es inevitable que haya caracteres continuos. el archivo, como agregar una línea "※ ※" al final del archivo ※ ※ ※ ※ ※”. De esta manera, solo necesita recordar este símbolo y el número de repeticiones, y podrá restaurarlo rápidamente.

Compresión del diccionario

La compresión del diccionario es la tecnología de compresión más importante y también la tecnología de compresión más utilizada. Esta tecnología busca cadenas repetidas en archivos, como "República Popular de China" y. "Reforma y apertura" después de la grabación (el contenido grabado se llama "diccionario"), se utiliza en el texto. Otro reemplazo de código abreviado es cuántos caracteres "Windows" y "Microsoft" están metidos en un sistema Windows. y entenderás por qué esta técnica de compresión funciona tan bien para los sistemas operativos Windows. Este esquema de compresión es particularmente adecuado para manuscritos políticos y artículos académicos.

La tecnología de compresión de diccionario es igualmente efectiva para archivos de texto y archivos de código ejecutable, y puede cubrir la tecnología de "compresión directa". Los software de compresión populares como ZIP, ARJ, RAR y AIN utilizan esta tecnología.

Sin embargo, en esta técnica, la longitud adecuada del diccionario es muy importante. Si la configuración del diccionario es demasiado grande o demasiado pequeña, afectará seriamente el efecto de compresión y la velocidad de compresión será relativamente lenta.

La mayoría del software de compresión utiliza una combinación de varias tecnologías de compresión.

Compresión vectorial

Si bien la compresión de diccionario es poderosa, no puede hacer nada con ciertos contenidos de archivos, como:

Ah, granizo, vaso, toque largo, Método Dan Ingot

De hecho, estos caracteres chinos aparentemente no escritos están intrínsecamente vinculados. Son 1601, 1702, 1803, 1904, 2005 y 2106 en GB2312 respectivamente. En este caso, la compresión de la memoria se puede realizar encontrando relaciones matemáticas entre ellas (como series, ecuaciones, etc.). ) Este tipo de compresión de memoria se llama compresión vectorial y es una tecnología de compresión emergente.

La compresión vectorial a veces puede aportarnos un disfrute inesperado. Mucha gente se sorprende de que FLASH pueda brindarnos tanta información en un volumen tan pequeño porque FLASH utiliza tecnología de compresión vectorial. Memorizar la trayectoria de un punto mediante ecuaciones es mucho menos costoso que memorizar todas las posiciones de ese punto. Por otro lado, la tecnología de vectorización actual aún no puede encontrar una solución regular y de alta fidelidad a partir de fotografías y grabaciones, por lo que todavía hay margen para un mayor desarrollo de la tecnología de compresión.

Compresión con pérdida y VCD

La aparición del VCD se atribuye a los esfuerzos del Joint Photographic Experts Group (JPEG). Propusieron un nuevo estándar de tecnología de compresión, que también se puede decir que es un nuevo concepto de compresión. Este concepto catalizó el nacimiento del estándar MPEG y la realización de la industrialización del VCD. La tecnología de compresión de imágenes JPEG utiliza cada matriz de puntos de 8*8 de la imagen como unidad de procesamiento. Dentro de este rango, si todo es de un solo color y solo unos pocos colores más, los demás colores se ignoran. En teoría, esta tecnología de compresión tiene una relación de compresión de hasta 64:1. ¿Ahora un archivo de 64 MB solo necesita 1 MB? Esto es realmente emocionante. Para ampliar aún más el efecto de compresión y mejorar el alcance de aplicación de esta tecnología, JPEG se ha ajustado de manera flexible. Permite al usuario establecer el tamaño de la unidad de procesamiento y el grado en que se ignoran otros colores, razón por la cual las imágenes JPEG tienen un atributo de "calidad".

El concepto de "compresión con pérdida" propuesto por JPEG hace que esta tecnología de compresión tenga ciertas limitaciones. Por ejemplo, JPEG no es adecuado para comprimir materiales como dibujos de ingeniería e imágenes médicas. Pero sus ideas prácticas han inspirado mucho a la gente. RealPlayer tomó la iniciativa en este camino para realizar la reproducción en tiempo real de vídeos en línea. El sonido despojado de la imagen en VCD se ha ido convirtiendo poco a poco en música MP3 popular. (El esquema de codificación de compresión de sonido es demasiado complejo y no se analizará en este artículo).

Brecha de archivos comprimidos

Además de estas tecnologías de compresión, el propio sistema DOS/Windows También deja una brecha de compresión para todos. En los sistemas DOS/Windows, el espacio de almacenamiento en disco se divide en pequeños bloques para su uso, en lugar de mezclar todos los archivos bajo el control del sistema como UNIX o Novell. Aunque este formato de archivo de disco abierto no es seguro (nada seguro), es eficiente y fácil de operar. Esta también puede ser una razón importante por la que DOS/Windows derrotó a UNIX y Novell en los mercados doméstico y comercial, pero siempre ha sido inferior a ellos en el campo de servidores. - Debido a que cada bloque de asignación solo puede ser utilizado por un archivo, incluso si el archivo (o el último bloque del archivo) solo tiene un byte, debe ocupar un bloque de asignación. Debido a que solo quedan dos bytes para asignar este bloque de almacenamiento (dos bytes son 16 bits, este mecanismo de asignación se llama FAT16), no importa cuán grande sea la partición, solo se puede dividir en 2 bloques de asignación de 16 = 65536 como máximo. . Por ejemplo, el tamaño del bloque de asignación de una partición de 2 GB es 32 KB; cuando la partición supera los 2 GB, el bloque de asignación debe crecer hasta 64 KB. Piénselo, si un archivo de bytes también ocupara 64 KB del suyo, ¿no le molestaría? Por lo tanto, a partir de la versión OSR2 de Windows 95, Microsoft introdujo una solución FAT32. Pero aun así, la "brecha de documentación" todavía existe.

Para resolver la brecha de archivos, Microsoft lanzó el espacio dual (DBLSPACE) en la era DOS 6.0 y luego lo cambió a DRVSPACE, que todavía existe en Windows 95/98/ME. En ese momento se decía que podía duplicar la capacidad del disco duro, lo que entusiasmó a todos, pero después de probarlo, fueron engañados. Resulta que Microsoft simplemente copió a otros y utilizó la tecnología de "volumen virtual", que solo puede guardar espacios en blanco como máximo, lo cual es inútil para los usuarios que solo almacenan un archivo grande en todo el disco.

Ahora hay una mejor manera de comprimir espacios entre archivos, que es usar WINZIP para empaquetar archivos usados ​​con poca frecuencia en un paquete, especialmente para una gran cantidad de archivos pequeños y/o en un entorno FAT16, use esto El método puede ahorrarle mucho espacio en disco. Pero pase lo que pase, la "brecha de archivos" parece existir siempre en los sistemas Windows.

¿Cuanto mayor es la presión?

¿El archivo se hará más grande? La respuesta es: sí. Debido a que los archivos comprimidos requieren un encabezado de archivo (formato de archivo, diccionario, etc.) para controlar la descompresión, al comprimir un archivo ya "abrumado", solo se agregará un encabezado de archivo y, por supuesto, el archivo se hará cada vez más grande. Además, aunque los archivos comprimidos ahorran más espacio y son más seguros (los archivos comprimidos se pueden cifrar, los archivos de texto normales no), si el encabezado del archivo está dañado, no se puede descomprimir todo el archivo. Por eso comprimir el encabezado del archivo es muy importante. Esto contrasta con las diferencias que acabamos de mencionar entre el formato FAT y los formatos de volumen UNIX/Novell. Sin embargo, si todos sus archivos ZIP están dañados, se recomienda probar la versión DOS del descompresor ZIP PKUNZIP, tal vez pueda guardar parte de él.

Compresión de archivos ejecutables

No solo se pueden comprimir archivos de documentos y archivos de datos, sino que también se pueden comprimir archivos ejecutables. Cuando PKWARE Inc, que se dedica a la tecnología de compresión, lanzó por primera vez el software PKZIP (alrededor de 1990), había tres programas principales, a saber, PKZIP (para compresión), PKUNZIP.EXE (para descompresión) y PKLITE.EXE (para comprimir archivos ejecutables). ). El proceso de comprimir archivos ejecutables es mágico. El nombre del archivo no cambiará, pero se reducirá la longitud. Un archivo comprimido de este tipo se libera en la memoria cuando se ejecuta y luego se reubica y se vuelve a cargar antes de la ejecución. Debido a que la computadora lo hace instantáneamente, casi no siento que el archivo esté comprimido. Esta herramienta fue muy útil en la época en que los disquetes eran comunes.

Hoy en día, los programas en Windows son cada vez más grandes, por lo que muchos programadores comprimen sus programas principales, lo que también puede desempeñar un papel antipiratería. La famosa "Alerta Roja" adoptó este enfoque. Con el desarrollo del software de comunicación por Internet, muchos programas se empaquetan en programas ejecutables, que se pueden ampliar e instalar haciendo clic en ellos. Estos también son ejemplos de compresión de archivos ejecutables.

Análisis dialéctico de la tecnología de compresión

Desde una perspectiva histórica, la tecnología de compresión está destinada a perecer. Ahora nos fijamos en la era anterior al DOS 10, donde la compresión con fines de almacenamiento ahora se ve abrumada por la capacidad de los dispositivos de almacenamiento masivo. En teoría, la compresión nos hace perder tiempo y energía. Si hay suficiente espacio de almacenamiento, no tenemos motivos para comprimir. En cuanto a los propósitos de compresión actuales, excepto una pequeña parte para facilitar la recuperación, una gran cantidad de compresión es para adaptarse a la lenta velocidad de transmisión de Internet. Entonces, cuando la velocidad de la red nos permite arrastrar el contenido de todo el disco duro a la red en cualquier momento, ¿aún necesitamos compresión? Cuando la capacidad del disco óptico sea lo suficientemente grande, ¿toleraremos que la tecnología JPEG pierda uno o dos puntos de color?

Sin embargo, la filosofía nos orienta a que las cosas siempre están evolucionando y siempre tienen otras características. Cuando la capacidad ya no es el propósito de la compresión, la transmisión se convierte en otro propósito de nuestra compresión. ¿Quién puede predecir si el próximo propósito de la compresión será y cuál será? (Fin del texto completo)