Bhinish Dhiman
Video a GIF: cuántos bytes por píxel por cuadro ocupa, medido
Traducido del original en inglés. Leer el original
Con el codificador que usa nuestra herramienta, 50 cuadros a 480 × 270 cuestan 0.644 bytes por píxel por cuadro en una foto en movimiento (4.17 MB) y 0.111 en la grabación de una interfaz con desplazamiento (716 KB). En H.264 con CRF 23 pesaban 78 KB y 132 KB: el GIF es 53 y 5.4 veces más grande. Una paleta de 16 colores redujo la foto a la mitad.
Nuestra herramienta de video a GIF calcula el tamaño del resultado con una constante de 0.45 bytes por píxel por cuadro y advierte que la cifra puede fallar por un factor de dos hacia arriba o hacia abajo. Medimos cuánto falla, y con qué contenido.
La unidad
Bytes por píxel por cuadro es el tamaño de un GIF dividido entre su ancho, su alto y su número de cuadros. Aísla aquello en lo que GIF es malo (guardar cada cuadro como una imagen completa de 8 bits comprimida con LZW, sin referencia al cuadro anterior) de las decisiones que solo lo escalan. Reducir el ancho a la mitad divide el archivo entre cuatro con cualquier valor de este número; el número en sí lo decide la imagen.
La medición
Dos clips de cuatro segundos, ambos decodificados a 50 cuadros de 480 × 270 y 12.5 cuadros por segundo: una fotografía con un paneo y un zoom lentos, para que cada cuadro sea distinto del anterior, y una grabación de pantalla de Chromium en la que se desplazan dos páginas de este sitio. Cada conjunto de cuadros se codificó en Chromium sin interfaz con modern-gif 2.1.0, el codificador que usa la herramienta, con cinco tamaños de paleta, con y sin tramado Floyd–Steinberg. Los mismos 50 cuadros también se codificaron con FFmpeg 6.0 en H.264 con CRF 23 y CRF 18, y en VP9 con CRF 33. Se ejecutó el 1 de octubre de 2026.
| Paleta | Foto en movimiento | Bytes por píxel por cuadro | Grabación de pantalla | Bytes por píxel por cuadro |
|---|---|---|---|---|
| 255 colores, con tramado | 4 171 930 B | 0.644 | 716 151 B | 0.111 |
| 255 colores, sin tramado | 4 188 639 B | 0.646 | 685 764 B | 0.106 |
| 128 colores, con tramado | 3 674 083 B | 0.567 | 685 507 B | 0.106 |
| 64 colores, con tramado | 3 115 969 B | 0.481 | 637 659 B | 0.098 |
| 32 colores, con tramado | 2 569 888 B | 0.397 | 549 810 B | 0.085 |
| 16 colores, con tramado | 2 010 333 B | 0.310 | 506 418 B | 0.078 |
La primera fila es lo que entrega la herramienta, porque codifica con 255 colores y el tramado activado. El codificador de paleta propio de FFmpeg produjo 3 670 375 bytes y 726 687 bytes con las mismas dos entradas a 256 colores, a menos de un 12% de modern-gif en la foto y a un 1.5% en la grabación, así que las cifras describen el formato y no una biblioteca concreta.
Los mismos cuadros como video
| Codificación | Foto en movimiento | Grabación de pantalla |
|---|---|---|
| GIF, 255 colores, con tramado | 4 171 930 B | 716 151 B |
| H.264, CRF 18 | 178 684 B | 179 566 B |
| H.264, CRF 23 | 78 138 B | 131 975 B |
| VP9, CRF 33 | 39 613 B | 105 788 B |
“Un GIF pesa unas diez veces lo que el MP4” es la cifra que se suele dar. En la foto fueron 53 veces con CRF 23, 23 veces incluso con CRF 18, y 105 veces frente a VP9. En la grabación de pantalla fueron 5.4 veces. La foto es el caso en que los códecs de video rinden al máximo, porque la predicción de movimiento convierte una imagen que se desplaza en unas pocas instrucciones por bloque; GIF no tiene nada parecido y paga cada píxel en cada cuadro.
Lo que se gana con la paleta
Bajar de 255 colores a 16 redujo la foto a la mitad y le quitó un 29% a la grabación. Es un ahorro real y es el más feo que hay: bandas en cada degradado y piel posterizada. Bajar el ancho de 480 a 340 ahorra el mismo 50% y se nota mucho menos, y por eso nuestra herramienta muestra el ancho y la frecuencia de cuadros antes que cualquier otro ajuste.
El tramado casi no costó bytes (menos de un 1% en la foto y un 4% en la grabación) y sí entre dos y cuatro veces más tiempo de codificación. Con 16 colores, los archivos con y sin tramado pesaron exactamente lo mismo, byte por byte, en los dos clips.
La estimación frente a la medición
Con 0.45 bytes por píxel por cuadro, la herramienta habría estimado 2.92 MB para los dos clips. La foto salió un 43% por encima de eso y la grabación de pantalla un 75% por debajo. Una sola constante no puede describir un formato cuya proporción depende por completo del contenido, y por eso la estimación se presenta como aproximada y la cifra real se muestra al lado una vez terminado. Medida sobre un solo cuadro, la foto costó 0.668 bytes por píxel y la interfaz 0.224, así que si necesitas saberlo de antemano, pasar un cuadro por el codificador predice mejor que cualquier constante.
En resumen
Para imágenes fotográficas, cuenta con unos 0.6 bytes por píxel por cuadro y un archivo cincuenta veces más grande que el MP4; para grabaciones de interfaces planas, unos 0.1 y cinco veces. El ancho es la palanca; la paleta, el último recurso; y pasados unos segundos, un GIF es un video con la extensión equivocada.