Compression · Compresión
| English | Español |
|---|---|
| compression/kəmˈpreʃn/ | compresión |
| lossless/ˈlɒsləs/ | sin pérdidas |
| lossy/ˈlɒsi/ | con pérdidas |
| bandwidth/ˈbændwɪdθ/ | anchura de banda |
| run-length encoding/rʌn leŋθ enˈkəʊdɪŋ/ | codificación de longitud de corrida |
| dictionary coding/ˈdɪkʃənəri ˈkəʊdɪŋ/ | codificación de diccionario |
| Huffman coding/ˈhʌfmən ˈkəʊdɪŋ/ | codificación Huffman |
| spatial/ˈspeɪʃl/ | espacial |
| temporal/ˈtempərəl/ | temporal |
The three letters that made the web possible
- In 1987 a programmer named Phil Katz wrote a compression program and put the file format in the public domain. He called it ZIP. He was 24.
- Nothing about the web works without that idea. A single uncompressed second of HD video is about 187 MB; a two-hour film would be 1.3 terabytes. Streaming it over a home connection is arithmetically impossible.
- The films you watch are perhaps a thousandth of that, and they still look right, because the compression throws away things your eye was never going to notice.
- This lesson is compression 压缩: the two families, the three lossless methods, and how to justify one for a given file.
Las tres letras que hicieron posible la web
- En 1987, un programador llamado Phil Katz escribió un programa de compresión y puso el formato de archivo en dominio público. Lo llamó ZIP. Tenía 24 años.
- Sin esa idea, nada funciona en la web. Un solo segundo de video HD sin comprimir pesa unos 187 MB; una película de dos horas equivaldría a 1,3 terabytes. Transmitirlo por una conexión doméstica es aritméticamente imposible.
- Las películas que ves pesan quizás una milésima parte de eso, y aún se ven bien, porque la compresión elimina cosas que tu ojo nunca iba a notar.
- Esta lección trata sobre compresión 压缩: las dos familias, los tres métodos sin pérdida y cómo justificar la elección para un archivo dado.
Lossless and lossy
- Compression reduces a file's size, saving storage space and transmission bandwidth 带宽, and making downloads and streams faster.
- Lossless 无损 compression is compression from which the original data can be recovered exactly. ZIP and PNG are lossless.
- Lossy 有损 compression permanently removes some data, so the original cannot be recovered. JPEG, MP3 and streamed video are lossy.
Recover exactly, or shrink much further
Sin pérdida y con pérdida
- La compresión reduce el tamaño de un archivo, ahorrando espacio de almacenamiento y ancho de banda 带宽, haciendo más rápidas las descargas y las transmisiones.
- La compresión sin pérdida 无损 permite recuperar los datos originales exactamente. ZIP y PNG son sin pérdida.
- La compresión con pérdida 有损 elimina permanentemente algunos datos, por lo que el original no puede recuperarse. JPEG, MP3 y el video en streaming son con pérdida.

Recuperar exactamente, o reducir mucho más
Lossless compression means: · La compresión sin pérdida significa:
Lossless compression lets you rebuild the original data exactly — essential for text, programs and ZIP/PNG. · La compresión sin pérdida permite reconstruir los datos originales exactamente — esencial para texto, programas y ZIP/PNG.
Match each compression idea to what it means. · Asocia cada idea de compresión con lo que significa.
Lossless keeps every bit (needed for text/code); lossy trades quality for size (photos, audio). · Sin pérdida conserva cada bit (necesario para texto/código); con pérdida intercambia calidad por tamaño (fotos, audio).
Lossless compression rebuilds the original data exactly (needed for text and programs), while lossy compression permanently removes some data to shrink the file (used for photos and audio). · La compresión sin pérdida reconstruye los datos originales exactamente (necesaria para texto y programas), mientras que la compresión con pérdida elimina permanentemente algunos datos para reducir el tamaño del archivo (usada para fotos y audio).
That is why a program or a ZIP must be lossless, but a photo or a song can use lossy compression. · Por eso un programa o un ZIP deben ser sin pérdida, pero una foto o una canción pueden usar compresión con pérdida.
Worked example: justify the choice
- A company archives its accounting spreadsheets. Which kind of compression, and why? Lossless, because the spreadsheet must be restored exactly; a single changed value would make the accounts wrong.
- A photographer uploads holiday photographs to a phone gallery. Lossy, because the photographs are viewed on a small screen where the dropped detail is not visible, and the smaller files upload faster and use less storage.
- Name the kind, then give the reason from the situation. "Lossy is smaller" on its own is not a justification.
Ejemplo resuelto: justificar la elección
- Una empresa archiva sus hojas de cálculo contables. ¿Qué tipo de compresión y por qué? Sin pérdida, porque la hoja de cálculo debe restaurarse exactamente; un solo valor cambiado haría incorrectos los registros contables.
- Un fotógrafo sube fotografías de vacaciones a la galería de un teléfono. Con pérdida, porque las fotografías se ven en una pantalla pequeña donde los detalles perdidos no son visibles, y los archivos más pequeños se cargan más rápido y ocupan menos almacenamiento.
- Nombra el tipo y da la razón basándote en la situación. Decir "La con pérdida es más pequeña" por sí solo no es una justificación.
Which file should be compressed losslessly? · ¿Qué archivo debería comprimirse sin pérdida?
Source code must be recovered exactly — a single changed character could break it — so it needs lossless compression. · El código fuente debe recuperarse exactamente: un solo carácter cambiado podría romperlo, así que necesita compresión sin pérdida.
Run-length encoding
- Run-length encoding 行程编码 (RLE) replaces a run of repeated values with one value and a count: instead of eight identical white pixels, store "8, white".
- It is excellent on data with long runs, such as icons, diagrams, black-and-white scans and areas of flat colour.
- It is useless, and can make a file larger, on noisy data such as a photograph, where almost no two neighbouring values are equal.
Each row becomes counts and colours
Codificación por longitud de corrida
- La codificación por longitud de corrida 行程编码 (RLE) reemplaza una secuencia de valores repetidos con un valor y un conteo: en lugar de ocho píxeles blancos idénticos, almacena "8, blanco".
- Es excelente en datos con corridas largas, como iconos, diagramas, escaneos en blanco y negro y áreas de color plano.
- Es inútil y puede hacer que un archivo sea más grande en datos ruidosos, como una fotografía, donde casi ningún par de valores vecinos es igual.

Cada fila se convierte en conteos y colores
Run-length encoding works best on data that has: · La codificación por longitud de carrera funciona mejor en datos que tienen:
RLE replaces a run of identical values with a count + value, so it shines on flat areas and is useless on noisy data. · RLE reemplaza una secuencia de valores idénticos con un conteo + valor, por lo que brilla en áreas planas y es inútil en datos ruidosos.
Worked example: encode a row with RLE
- A row of an 8-pixel black-and-white image reads: white white white black black white white white. Encode it with RLE.
- Three white, two black, three white, so
3W 2B 3W, or as pairs,(3, 0) (2, 1) (3, 0)if white is 0. - Eight values became three pairs. Now encode
W B W B W B W B. Eight runs of one:1W 1B 1W 1B 1W 1B 1W 1B, which stores more than the original. That is exactly why RLE is not used on photographs.
Ejemplo resuelto: codificar una fila con RLE
- Una fila de una imagen blanco y negro de 8 píxeles dice: blanco blanco blanco negro negro blanco blanco blanco. Codifícala con RLE.
- Tres blancos, dos negros, tres blancos, así
3W 2B 3W(o en pares,(3, 0) (2, 1) (3, 0)si el blanco es 0). - Ocho valores se convirtieron en tres pares. Ahora codifica
W B W B W B W B. Ocho corridas de uno:1W 1B 1W 1B 1W 1B 1W 1B, lo cual ocupa más que el original. Por eso es exactamente por lo que RLE no se usa en fotografías.
Run-length encoding (a lossless method) · Codificación por longitud de carrera (un método sin pérdida)
Run-length encoding replaces a run of repeated values with one value plus a count. It is lossless — the original rebuilds exactly — but only shrinks data that has long runs. · La codificación por longitud de carrera reemplaza una secuencia de valores repetidos con un valor más un conteo. Es sin pérdida: la reconstrucción original es exacta, pero solo reduce los datos que tienen largas secuencias.
Encode the pixel row W W W B B W W W with run-length encoding, using the form 3W 2B 3W. · Coda la fila de píxeles W W W B B W W W con codificación por longitud de carrera, usando la forma 3W 2B 3W.
Three white, two black, three white. Eight values become three pairs, but an alternating row would become eight pairs and grow. · Tres blancos, dos negros, tres blancos. Ocho valores se convierten en tres pares, pero una fila alternada se convertiría en ocho pares y crecería.
Run-length encoding always makes a file smaller. · La codificación por longitud de carrera siempre hace que un archivo sea más pequeño.
On data with no runs, such as a photograph or an alternating pattern, every run has length one and the encoding stores more than the original. · En datos sin secuencias, como una fotografía o un patrón alternado, cada secuencia tiene longitud uno y la codificación almacena más que el original.
Dictionary coding and Huffman coding
- Dictionary coding 字典编码, used by ZIP and PNG, builds a dictionary of repeated byte sequences and replaces each occurrence with a short index. It suits text and program code, where words and patterns recur.
- Huffman coding 霍夫曼编码 gives short codes to common symbols and long codes to rare ones, so the average code length falls. In "BANANA" the A is commonest and gets the shortest code.
- Both are lossless: the decoder rebuilds the original byte for byte.
Codificación de diccionario y codificación Huffman
- La codificación de diccionario 字典编码, usada por ZIP y PNG, construye un diccionario de secuencias de bytes repetidas y reemplaza cada ocurrencia con un índice corto. Se adapta al texto y al código de programas, donde palabras y patrones se repiten.
- La codificación Huffman 霍夫曼编码 asigna códigos cortos a símbolos comunes y códigos largos a los raros, reduciendo la longitud promedio del código. En "BANANA", la A es la más común y recibe el código más corto.
- Ambas son sin pérdida: el decodificador reconstruye el byte original byte por byte.
Huffman coding reduces size by: · La codificación Huffman reduce el tamaño mediante:
Huffman assigns the shortest codes to the most frequent symbols, lowering the average code length. · Huffman asigna los códigos más cortos a los símbolos más frecuentes, reduciendo la longitud promedio del código.
Match each lossless method to how it works. · Asocia cada método sin pérdida con cómo funciona.
All three are lossless: the decoder rebuilds the original byte for byte. · Los tres son sin pérdida: el decodificador reconstruye el byte original byte a byte.
Lossy methods
- Images (JPEG): fine detail and colour differences the eye barely notices are dropped.
- Sound (MP3, AAC): pitches we hear poorly are removed, along with quiet sounds masked by louder ones at the same moment.
- Video: spatial 空间 compression works within each frame, like JPEG, and temporal 时间 compression stores most frames as only the differences from the previous frame, since consecutive frames are nearly identical.
Métodos con pérdida
- Imágenes (JPEG): se eliminan los detalles finos y las diferencias de color apenas perceptibles por el ojo.
- Sonido (MP3, AAC): se eliminan los tonos que escuchamos mal, junto con los sonidos silenciosos enmascarados por otros más fuertes en el mismo momento.
- Video: la compresión espacial 空间 funciona dentro de cada cuadro, como JPEG, y la compresión temporal 时间 almacena la mayoría de los cuadros solo como las diferencias respecto al cuadro anterior, ya que los cuadros consecutivos son casi idénticos.
Temporal compression of video works by: · La compresión temporal de video funciona mediante:
Temporal compression stores how each frame differs from the one before, since most of the picture stays the same between frames. (Spatial compression handles within-frame detail.) · La compresión temporal almacena cómo difiere cada fotograma del anterior, ya que la mayor parte de la imagen permanece igual entre fotogramas. (La compresión espacial maneja los detalles dentro del fotograma.)
Worked example: how each kind of file is compressed
- Text file: dictionary and Huffman coding turn repeated words and common characters into short codes. It must stay lossless, because one changed character changes the meaning.
- Bitmap image: RLE for runs of identical pixels in icons and diagrams; lossy JPEG for photographs; or reduce the colour depth or resolution, which is also lossy.
- Vector graphic: the drawing list is already small. Remove drawing objects that are not needed, store coordinates to fewer decimal places, or apply a lossless method such as ZIP to the file.
- Sound file: lossy MP3 or AAC removes what the ear cannot hear; lowering the sampling rate or resolution is also lossy; lossless formats keep every sample and shrink much less.
Ejemplo resuelto: cómo se comprime cada tipo de archivo
- Archivo de texto: la codificación de diccionario y Huffman convierten palabras repetidas y caracteres comunes en códigos cortos. Debe permanecer sin pérdida, porque un solo carácter cambiado altera el significado.
- Imagen bitmap: RLE para corridas de píxeles idénticos en iconos y diagramas; JPEG con pérdida para fotografías; o reducir la profundidad de color o resolución, lo cual también es con pérdida.
- Gráfico vectorial: la lista de dibujo ya es pequeña. Elimina objetos de dibujo innecesarios, guarda coordenadas con menos decimales, o aplica un método sin pérdida como ZIP al archivo.
- Archivo de sonido: MP3 o AAC con pérdida elimina lo que el oído no puede escuchar; reducir la tasa de muestreo o resolución también es con pérdida; los formatos sin pérdida conservan cada muestra y se reducen mucho menos.
How can a vector graphic file be made smaller? Select all · todos that apply. · ¿Cómo se puede hacer más pequeño un archivo gráfico vectorial? Selecciona todos los que apliquen.
A vector file is a drawing list, not pixels, so it has no colour depth. Colour depth belongs to bitmaps. · Un archivo vectorial es una lista de dibujos, no píxeles, por lo que no tiene profundidad de color. La profundidad de color pertenece a mapas de bits.
Why streaming must be lossy
- Raw HD video is gigabytes per minute, and a home connection carries a few megabits per second.
- Lossless compression on video achieves perhaps a factor of two, nowhere near enough, so the picture would keep stopping to buffer.
- Lossy compression achieves a factor of a hundred or more by discarding detail the viewer does not notice at normal speed. The reason names the bandwidth and the data rate, not just "it is smaller".
Por qué el streaming debe ser con pérdida
- El video HD sin procesar pesa gigabytes por minuto, y una conexión doméstica transporta unos pocos megabits por segundo.
- La compresión sin pérdida en video logra quizás un factor de dos, muy lejos de ser suficiente, por lo que la imagen seguiría deteniéndose para cargar memoria caché.
- La compresión con pérdida logra un factor de cien o más descartando detalles que el espectador no nota a velocidad normal. La razón menciona el ancho de banda y la tasa de datos, no solo "es más pequeño".
Why does real-time video streaming use lossy compression? · ¿Por qué el streaming de video en tiempo real usa compresión con pérdida?
Raw HD video is gigabytes per minute; only lossy compression shrinks it enough to stream in real time without freezing. · El video HD sin procesar es gigabytes por minuto; solo la compresión con pérdida lo reduce lo suficiente para transmitir en tiempo real sin congelarse.
Marks that slip away
- Lossless means the original is recovered exactly; lossy means it cannot be. "Lossy loses quality" misses the point that the data is gone for good.
- RLE can make a noisy file larger. Say where it works and where it does not.
- Video compression is spatial and temporal; temporal stores the differences between frames.
- A "justify" answer ties the method to the file's use: exactness for accounts and medical images, size for streaming and phone galleries.
Errores comunes en calificaciones
- Sin pérdida significa que el original se recupera exactamente; con pérdida significa que no puede hacerlo. Decir "La con pérdida pierde calidad" pasa por alto que los datos se pierden para siempre.
- RLE puede hacer que un archivo ruidoso sea más grande. Indica dónde funciona y dónde no.
- La compresión de video es espacial y temporal; la temporal almacena las diferencias entre cuadros.
- Una respuesta de "justificar" vincula el método al uso del archivo: exactitud para contabilidad e imágenes médicas, tamaño para streaming y galerías de teléfonos.
You've got it
- compression saves storage and bandwidth; lossless recovers the original exactly, lossy removes data permanently
- lossless methods: RLE (a value and a count, good on runs, bad on noise), dictionary coding (repeated sequences to short indices), Huffman coding (short codes for common symbols)
- lossy methods drop what the eye or ear misses; video adds spatial within a frame and temporal between frames
- justify from the use: exact data means lossless, limited bandwidth for streaming means lossy
Ya lo tienes
- La compresión ahorra almacenamiento y ancho de banda; sin pérdida recupera el original exactamente, con pérdida elimina datos permanentemente
- Métodos sin pérdida: RLE (un valor y un conteo, bueno para corridas, malo para ruido), codificación de diccionario (secuencias repetidas a índices cortos), codificación Huffman (códigos cortos para símbolos comunes)
- Los métodos con pérdida eliminan lo que el ojo o el oído pasan por alto; el video añade compresión espacial dentro de un cuadro y temporal entre cuadros
- Justifica según el uso: datos exactos significan sin pérdida, ancho de banda limitado para streaming significa con pérdida