Conceptos Esenciales de Compresión y Errores en Imágenes y Video Digital
Enviado por Programa Chuletas y clasificado en Plástica y Educación Artística
Escrito el en español con un tamaño de 7,75 KB
Indexación de Color
La información de color no es transportada directamente por los datos de los píxeles de la imagen, sino que se guarda en la paleta (un arreglo de colores, donde cada color es indexado por su posición en el arreglo). Los píxeles de la imagen no contienen la especificación completa de su color, sino su índice en la paleta.
Compresión JPEG (JPG)
El formato JPG logra reducir significativamente el tamaño de las imágenes. El algoritmo de compresión JPEG es un algoritmo con pérdidas; esto quiere decir que pierde información y, por lo tanto, calidad de imagen.
Lo primero que hace el algoritmo es representar la imagen en un canal de luminancia (brillo) y dos canales de crominancia (color), en lugar de los tres canales de color iniciales (rojo, azul y verde). Luego, se submuestrea la resolución de los canales de color. Esto se logra asignando un mismo color a un bloque de píxeles, buscando que sea lo más parecido posible a la imagen original. Esto se debe a que el ojo humano es más sensible a los cambios de luminancia (brillo) que a los cambios de crominancia (color), ya que posee más bastones que conos.
El segundo paso es suavizar los cambios bruscos de brillo y de color. Finalmente, se aplica un algoritmo de compresión sin pérdidas (como Huffman) para optimizar el tamaño.
Conceptos de Movimiento en Video
Fast Motion
Fast motion: Se dice que un video es fast motion cuando la mayoría de sus píxeles cambian frecuentemente.
Slow Motion
Slow motion: Se dice que un video es slow motion cuando la mayoría de sus píxeles cambian con poca frecuencia.
Algoritmos de Compresión de Video
Compresión Independiente de Fotogramas
- Comprime cada fotograma como una imagen individual.
- Ideal para dispositivos con bajo poder de procesamiento.
- Eficiencia: 75% para fast motion y 75% para slow motion.
- Es un método económico y rápido.
Compresión en Profundidad (Inter-fotograma)
- Busca detectar elementos que permanecen fijos a lo largo del tiempo para almacenarlos una única vez, optimizando el espacio.
- Eficiencia: 75% para fast motion y 95% para slow motion.
- Requiere alto costo computacional.
Pasadas de Compresión
Definición de Pasadas
Pasadas: Se refiere a la cantidad de veces que el algoritmo debe leer el archivo para realizar la compresión.
Compresión de 1 Pasada (Base)
- Compresión de 1 pasada: Comprime el video a medida que lo lee. No diferencia eficientemente entre fast motion y slow motion.
Compresión de 2 Pasadas
- Compresión de 2 pasadas: Permite detectar y optimizar la compresión para fast motion y slow motion, resultando en mayor eficiencia.
Compresión de N Pasadas
- Compresión de N pasadas: Se utiliza para añadir detalles estéticos y mejoras visuales al video.
Bitrate en Video
Definición de Bitrate
Bitrate: Representa la tasa de transferencia de un archivo de video, es decir, la cantidad de información por segundo de video.
Tipos de Bitrate
- Constante (CBR): Mantiene una tasa de bits fija, lo que puede generar oscilaciones en la calidad o una baja calidad general en escenas complejas.
- Variable (VBR): Permite que el bitrate oscile según la complejidad de la escena, con un tope máximo definido, optimizando la calidad y el tamaño.
- Promedio (ABR): Establece un bitrate promedio deseado. La desmejora en la calidad no es tan pronunciada como en CBR.
Errores Comunes en Imágenes Digitales
Tipos de Errores
- Error por un bit: Aunque solo una pequeña parte de la imagen esté dañada (a menudo por el método de compresión), una gran parte puede verse afectada. Esto suele ocurrir por errores de almacenamiento o transmisión. Se manifiesta como regiones de líneas descoloridas y desalineadas horizontalmente. Estos errores pueden solucionarse al 100% ya que la información de la imagen aún está presente.
- Cabecera inválida: Si la cabecera de la imagen es inválida, su reparación es casi imposible. Se podría intentar usar la cabecera de otra imagen similar. Dado que ocupa un porcentaje muy pequeño (aproximadamente 0.05%) del archivo total, es poco probable que solo la cabecera esté dañada. Puede ser causada por mala codificación. Si una cabecera optimizada (única para un cuerpo de archivo específico) se daña, no se le puede asignar una cabecera estándar.
- Miniatura (Thumbnail) visible, archivo no abrible: Se puede visualizar la miniatura de la imagen, pero el archivo principal no se puede abrir. Esto ocurre porque las cámaras suelen guardar una miniatura en la cabecera del archivo, la cual es leída por el sistema operativo sin necesidad de acceder al cuerpo del archivo. Si el error está solo en el cuerpo del archivo y no en la cabecera, la vista previa sigue siendo accesible.
- Imagen incompleta (Áreas grises): Ocurre cuando una gran parte de la información de la imagen se pierde y el archivo no tiene un final válido. Generalmente es causada por fallas en el medio físico de almacenamiento. Los datos perdidos no se pueden recuperar, pero si la cabecera aún contiene una vista previa, la imagen puede ser reemplazada por su miniatura.
- Imagen fragmentada (En pedazos): Durante la recuperación de datos de un medio dañado, el cuerpo de una imagen puede mezclarse con otros tipos de archivos o fragmentarse. Estos fragmentos pueden ser reunidos para reconstruir la imagen original.
Ejemplo de Comando MEncoder
A continuación, se presenta un ejemplo de comando MEncoder con sus parámetros explicados:
mencoder salida.avi \
-vf <video_filter> \
-ovc lavc \
lavcopts vcodec=mpeg:vbitrate=<bitrate_value> \
-oac mp3lame \
-o <output_file> \
-of <output_format>
mencoder
: Ejecutable del programa MEncoder.salida.avi
: Nombre del archivo de salida de video.-vf <video_filter>
: Opción para aplicar filtros de video.-ovc lavc
: Configura el códec de video de salida usando la librería libavcodec (lavc).lavcopts vcodec=mpeg:vbitrate=<bitrate_value>
: Opciones específicas para lavc, definiendo el códec de video como MPEG y estableciendo el bitrate del video.-oac mp3lame
: Configura el códec de audio de salida usando la librería MP3 LAME.-o <output_file>
: Define el nombre del archivo de salida final.-of <output_format>
: Especifica el formato del archivo de salida (ej. avi, mp4).