El mejor algoritmo de compresión para fotos timelapse

9

Tengo una carpeta que contiene aproximadamente 9,000 fotos JPEG (aproximadamente 30 Gb), que quiero archivar con algún tipo de compresión. Entiendo que comprimir archivos JPEG normalmente no es muy efectivo, pero estas fotos son cuadros de un lapso de tiempo, por lo que hay una gran cantidad de puntos en común entre la mayoría de las imágenes. ¿Es probable que obtenga más reducción de tamaño de archivo de lo normal en este caso? ¿Existe un algoritmo de compresión particular (común) que pueda funcionar particularmente bien en este escenario?

Stephen
fuente
1
¿Puedes simplemente usar un códec de video estándar como h264?
CodesInChaos 01 de

Respuestas:

9

Esa es una pregunta interesante: ¿pueden los algoritmos de compresión populares seguir utilizando la redundancia en cuadros después de haber sido comprimidos individualmente, o es la compresión individual demasiado buena para "dejar rastros"? No lo sé, y tendrías que probarlo para obtener una respuesta confiable.

Sin embargo, es casi seguro que sea una mejor idea almacenar todos estos cuadros como una secuencia de video en primer lugar, porque los codificadores de video están escritos específicamente para el trabajo. (Reutilizar bibliotecas exitosas es casi siempre más rápido y más eficiente que rodar las suyas). Siempre puede extraer cada fotograma individual del video si lo necesita. No creo que pueda encontrar un compresor estándar que funcione tan bien en esta tarea como los que están personalizados para el trabajo.

Kilian Foth
fuente
2
@Stephen Puede usar ffmpeg para convertir sus imágenes en un video. trac.ffmpeg.org/wiki/… Esto comprimiría con pérdida las imágenes. Luego, podría usar ffmpeg para extraer los marcos. Potencialmente, esto podría ser muy con pérdidas, pero puede ajustar los niveles de calidad para mitigar esto.
Sirisiano
6

Los métodos de compresión de datos que explotan la redundancia entre grupos de datos individuales de un conjunto (generalmente un conjunto de imágenes similares) se denominan Compresión de redundancia de conjunto (el SRC fue propuesto en primer lugar por Kosmas Karadimitriou en 1996).

Existen cuatro tipos conocidos de técnicas de SRC:

  • Método diferencial Min-Max (MMD)
  • Método predictivo Min-Max (MMP)
  • método centroide
  • método centroide multinivel

Una comparación de las técnicas de compresión de redundancia de conjuntos (Samy Ait-Aoudia y Abdelhalim Gabis) contiene una breve descripción y comparación de los diversos algoritmos.

Los métodos MMP generalmente funcionan mejor que las otras técnicas SRC.

SRC es un campo de investigación activo, pero difícilmente encontrará un software listo para usar.


Dado que sus fotos son cuadros de un lapso de tiempo, tiene una alta "redundancia temporal" y los métodos de compresión de video se pueden usar de manera efectiva. Sin embargo:

  • una imagen no puede descomprimirse sin descomprimir varias otras imágenes;
  • La mayoría de los métodos de compresión de video son con pérdida.

También considere que los archivos JPEG pueden comprimirse aún más: el software basado en el algoritmo de mezcla de contexto (por ejemplo , los archivadores de compresión de datos sin pérdida PAQ ) son bastante buenos en este sentido (a expensas de la velocidad y la memoria).

manlio
fuente