Guardar metadatos en imágenes frente a una base de datos externa

En mi búsqueda de una aplicación de administración de fotos perfecta (lo sé :), he estado haciendo un poco de comparación entre las pocas aplicaciones que me parecen atractivas en cuanto a características/costo. Una de las diferencias más importantes es que algunas aplicaciones guardan metadatos en las imágenes (sobrescribiendo los originales de alguna manera) y otras los guardan en sus bases de datos.

Aunque prefiero mantener los originales siempre intactos, puedo ver cómo el enfoque de tener todos los metadatos con la imagen en sí podría resultar beneficioso.

¿Existen ventajas/desventajas no obvias para un enfoque u otro, y lo que generalmente se considera la mejor práctica (consciente de que esto es algo subjetivo, así que si pudiera dar una razón o dos)?

Ya se ha hecho una pregunta similar, si la memoria no me falla (que también es dudoso :), pero no he podido encontrarla. Si alguien se tropieza con él, un enlace a él sería genial :)

Respuestas (4)

Si al menos alguna información de catalogación está escrita en la imagen, entonces puede volver a conectar un archivo a su base de datos. En principio, esto puede ser una única identificación única.

Esto te salva de:

  • Movió o cambió el nombre de un archivo de imagen.

Si puede escribir más información en el archivo (palabras clave, subtítulos), entonces se salva de:

  • Su base de datos está dañada.
  • Actualizaste tu computadora y tu programa de base de datos no funciona allí.

Una tercera opción es escribir metadatos en archivos sidecar. Normalmente, estos archivos tienen el mismo nombre que el archivo principal, pero un sufijo diferente.

  • Esto hace que todos sus datos sean recuperables si su base de datos falla.

Desventajas de almacenar datos en la imagen:

Escribir en los archivos originales puede dañar el archivo. La mayoría de los formatos RAW ahora se entienden lo suficientemente bien como para al menos identificar y reemplazar cadenas de metadatos con cadenas de la misma longitud. Si le dices a tu cámara que ponga la cadena de derechos de autor

Copyright 2018 J. Random Shutterbug Image XXXX-XXXX-XXXX-XXXX-XXXX-XXXX  

Entonces, mientras el DAM mantenga esa cuerda de la misma longitud, eres dorado.

Mantener todos los metadatos (o la mayor cantidad posible) en las imágenes originales hace que el acceso sea muy lento. Su programa tiene que leer al menos los primeros bloques de cada imagen.

  • La reescritura de datos lleva mucho tiempo.

  • Algunos formatos de archivo no tienen ninguna capacidad de metadatos.

  • Algunos formatos de archivo (Photoshop PSD) son conocidos por alterar los metadatos.

  • Una falla durante el proceso de escritura puede dañar el archivo de imagen. La alternativa, escribir un archivo nuevo y luego reemplazar el archivo anterior, requiere que se lea y escriba todo el archivo, en lugar de solo una parte. Esto tiene serios problemas de rendimiento.

Desventajas de las bases de datos

Las bases de datos son rápidas, pero tienen borrones, y estás escribiendo en medio de borrones de datos. Si la implementación de la base de datos es sólida, no hay mucho de qué preocuparse. Pero los discos duros tienen errores, y un solo error puede hacer que una base de datos quede parcial o totalmente inutilizable. Un buen diseño de base de datos tiene redundancia incorporada para que pueda reparar/reconstruir.

Las bases de datos son frecuentemente propietarias. Los datos pueden comprimirse para aumentar la velocidad. Obtener sus datos puede ser complicado. (Problema para las personas que usan la apertura)

Las bases de datos con frecuencia se optimizan de diferentes maneras. En general, la robustez se gana a costa del rendimiento y la complejidad. Un compromiso es escribir todos los cambios primero en un archivo de transacción (rápido...) y luego un proceso en segundo plano actualiza la base de datos en segundo plano.

Desventajas de los sidecars

Tienes que leer un trillón de archivos al inicio.

Si realiza un cambio por lotes (agregue la palabra clave "Italia" a las 3000 fotos de su viaje de vacaciones de verano), el programa de catálogo ha abierto, modificado y vuelto a escribir 3000 archivos.

Si cambia el nombre de un archivo y no cambia el nombre del archivo sidecar también, sus metadatos ya no están conectados a su imagen.

Mejores prácticas

Opinión solo aquí: Lo siento.

  • Quiere una etiqueta de propiedad única que resida en la imagen. Puede ser una etiqueta real como la de derechos de autor mencionada anteriormente, o puede ser una etiqueta derivada de la información de la imagen. Esta podría ser la marca de tiempo EXIF ​​(no única: múltiples tomas por segundo, varias cámaras). Si su programa lee notas de fabricante, la mejor es Modelo de cámara + Número de serie de la cámara + marca de tiempo + centésimas de segundo.
  • Quieres una base de datos para la velocidad. Por supuesto, tiene la identificación única
  • Desea sidecars para reconstruir su base de datos y para la portabilidad de datos. Tienen la identificación única.

Si la base de datos falla, se puede reconstruir desde los sidecars.

Si un sidecar está dañado, se puede reconstruir a partir de la base de datos.

Si se cambia el nombre de una imagen, la ID se puede usar para volver a conectarla al sidecar y para reparar la base de datos.

Para que esto funcione, debe usar muchas marcas de tiempo. Si el sidecar es más reciente que la última marca de tiempo en el registro de la base de datos, entonces el sidecar es el registro autorizado.

Dada la naturaleza relativamente frágil de los archivos sin formato, la mejor práctica es un sistema que solo escribe cero o una vez en el archivo sin formato. el archivo exif

No es necesario actualizar los sidecars en tiempo real. La forma ingeniosa de hacer esto sería que cada vez que la base de datos haga un cambio en un registro:

  • Cree un nuevo registro que duplique el registro anterior en la base de datos.
  • Realice el cambio en el nuevo registro.
  • El nuevo registro está marcado, "no escrito en sidecar"
  • El registro anterior está marcado como "obsoleto"
  • Otro subproceso escribe los archivos sidecar, escribe el nuevo y luego elimina el anterior (o cambia el nombre del nuevo al nombre del anterior).
  • Periódicamente ejecuta una limpieza en la base de datos eliminando los registros obsoletos que tienen más de X días. Esto le da la posibilidad de revertir los cambios.

Esto no está completo: no aborda el problema de las ediciones no destructivas. Muchos programas ahora permiten la creación de varias imágenes a partir del mismo archivo maestro y no crean un mapa de bits nuevo, sino un archivo con una serie de instrucciones sobre cómo crear la imagen a partir del maestro. AFAIK todos esos métodos son propietarios. Esto da como resultado un dilema, ya que las aplicaciones que hacen un buen trabajo de seguimiento de los metadatos pueden no ser capaces de lidiar con las ediciones no destructivas. Esto puede ser crítico si recorta a una persona de una imagen.

La solución es que siempre escriba una nueva imagen de mapa de bits de una edición seria. Idealmente, tiene una secuencia de comandos que busca nuevas ECM y escribe una imagen basada en esto, copiando los metadatos del maestro y en algún momento llevándolo a revisión para modificar los metadatos.

Esto parece ser algo muy polarizador. Si bien nunca elegiría un software que modifique mis imágenes de ninguna manera, ¡conozco personas que no elegirían uno que no almacene los metadatos en archivos!

El problema es que si los metadatos son externos, los archivos no se tocan. En mi sistema, las imágenes están montadas en una partición de solo lectura, por lo que garantizo que ningún software puede cambiarlas, lo que tiene algunas ventajas que son importantes para mí :

  • Los archivos nunca cambian: esto significa que la fecha del archivo es siempre la misma y refleja la hora de captura. El sistema operativo se puede utilizar para buscar y ordenar los archivos como lo haría con cualquier otro archivo.
  • Los archivos nunca cambian: las copias de seguridad continúan de forma incremental y no duplican ni invalidan ningún archivo. Cada archivo aparece solo una vez en la copia de seguridad de tercer nivel que se encuentra en discos ópticos.
  • Los archivos nunca cambian: no hay riesgo de corrupción, daño o sobrescritura accidentales debido a errores en la aplicación de imágenes. Obviamente, la corrupción y la pérdida aún son posibles, por lo que tengo 3 niveles de copias de seguridad.

La ventaja citada de tener metadatos en el archivo es que estos dos no se pueden separar y siempre viajan juntos al copiar o mover archivos.

Verdadero. ¿Cuáles son sus experiencias; ¿Ha tenido algún problema al transferir las imágenes de una computadora a otra con los metadatos externos? Prefiero este enfoque, pero como trabajo con tres máquinas...
No, pero generalmente no muevo mis imágenes entre computadoras excepto para una actualización completa. Cuando muestro, envío o imprimo imágenes, utilizo la función Publicar de Lightroom que opcionalmente incrusta metadatos en el archivo de salida que finalmente se descarta. Supongo que sería más engorroso si el archivo tuviera que volver para la edición colaborativa fox example.
Solo una pregunta/ejemplo más específico; mis archivos generalmente se almacenan en el disco duro externo. ¿Lightroom admite el almacenamiento de metadatos en una base de datos en una carpeta donde se encuentran los archivos de imagen (cada carpeta tiene su propia base de datos)? ¿O algún esquema similar que sería conveniente para moverse fácilmente entre computadoras (todos los datos relevantes junto con las imágenes en un disco externo)?
La unidad de datos de Lightroom es el Catálogo . Solo se puede abrir un catálogo a la vez, pero puede usar tantos como desee. Podría usar un catálogo por HDD, por ejemplo, pero no hay una opción automática por directorio . Hay otro en el que Lightroom almacena metadatos en sidecar XMP, uno por archivo. Incluso si Lightroom escribe de nuevo en los archivos, todavía necesita un catálogo para abrir. Así es como funciona ese software y puede valer la pena ver cómo funcionan otros como AfterShot Pro. Aparentemente, ese permite el flujo de trabajo catalogado y no catalogado, pero no lo he probado.
#1 se resuelve fácilmente ya que hay muchas formas de restablecer la fecha de un archivo para que coincida con su fecha de captura EXIF.
Fácil caso por caso, sí, pero aún agrega complejidad. Tendría que volver a sincronizar la fecha después de cada edición o tener un trabajo recurrente para sincronizar los dos. En cualquier caso, esto es más complejo que no hacerlo :)
@Itai Tengo curiosidad por saber cuáles son sus tres niveles de copias de seguridad. Me doy cuenta de que es solo tangencial a la pregunta, pero ¿estaría dispuesto a ampliar su respuesta para simplemente enumerar los niveles que usa?
@MichaelKjörling: el primer nivel es una sincronización nocturna desde la fuente que se encuentra en un par de SSD a un HDD estándar. El segundo nivel es quincenal de los SSD internos a los SSD externos (para no copiar posibles errores del primer nivel) y el tercer nivel es una pila de Blu-Rays quemados por duplicado (uno para casa y otro para una caja fuerte en el banco ). Toda la pila de discos ópticos se actualiza aproximadamente cada 5 años para evitar la corrupción a largo plazo. Sí, lo sé, ¡falta una copia en línea en caso de que la ciudad se nivele!

Un gran problema con el almacenamiento de metadatos en imágenes es que los formatos como JPEG EXIF ​​tienen metadatos patentados, llamados "makernotes" producidos por los fabricantes de cámaras, editar cualquier dato EXIF ​​puede resultar en la pérdida completa de los metadatos propietarios.

Por ejemplo, el uso de versiones recientes de Picasa para asignar un título a una imagen da como resultado la pérdida de todos los datos de propiedad de Nikon sobre la lente utilizada y la configuración de la cámara (compensación de exposición utilizada, etc.). Las versiones anteriores de Picasa no tenían este problema (probablemente usaron una base de código diferente para esta función). Este es un ejemplo de cómo un flujo de trabajo que parece funcionar ahora puede tener consecuencias altamente indeseables en una versión posterior del software que utiliza.

Interesante. No me encontré con eso, pero de hecho, Google estaba paranoico con los virus incrustados en los archivos y con tanta frecuencia recodificaba las imágenes, lo que significaba que incluso su rotación sin pérdidas* no era sin pérdidas y reducía significativamente el tamaño de la imagen en cámaras con una compresión extremadamente baja como la serie K de Pentax cuando IQ se establece en 4 estrellas. Esto ahora se ha ido con la transición a Ricoh.

Si selecciona cuidadosamente una solución DAM correcta que no dañe sus metadatos existentes mientras actualiza sus imágenes (como dijo RedGrittyBrick), tendrá más beneficios al guardar sus metadatos en imágenes:

  • Puede recuperar fácilmente todas las descripciones de sus imágenes (y cientos de horas de arduo trabajo) de los metadatos en caso de que falle la base de datos. Solo responda a una pregunta: si está listo para comenzar a anotar su colección de imágenes nuevamente.
  • Puede incrustar sus derechos de autor en las imágenes para que otros no puedan ilegalmente
  • No es estricto con su solución DAM y puede migrar fácilmente a otra solución DAM más adelante. Entonces, al menos considere usar una solución DAM que le permita almacenar metadatos en imágenes si los necesita algún día.
  • Puede intercambiar información entre dos aplicaciones a nivel de metadatos: por ejemplo, use Publicación, Edición y su herramienta DAM.

Por supuesto, lo dicho anteriormente es cierto si su solución DAM es un producto maduro con un seguimiento comprobado de clientes, y sus metadatos se escribirán correctamente en las imágenes de acuerdo con la especificación XMP/MWG.

Y, por supuesto, necesita hacer una copia de seguridad de sus imágenes originales y organizar copias de seguridad automáticas y diarias de su base de datos.

Evite las soluciones DAM con los siguientes problemas:

  • Soporte limitado de estándares de metadatos. Soporte aleatorio para XMP o metadatos específicos de formato nativo.
  • Metadatos escritos incorrectamente que no se pueden leer de la misma forma en que se escribieron. Por ejemplo, muy pocos productos pueden guardar/leer correctamente palabras clave jerárquicas y dividir la ubicación en Región\País\Estado\Ciudad\Ubicación según las especificaciones IPTC\XMP\MWG.
  • Éxito limitado en la escritura de metadatos para varios formatos, incluidos Camera RAW, PNG o PDF.
Fuera de su lista de ventajas de almacenar metadatos en el archivo de imagen propiamente dicho: #1 está cubierto por copias de seguridad, que necesitará de todos modos en cualquier flujo de trabajo sensible. (Solo incluye la base de datos/catálogo/como se llame). El #2 es discutible, ya que los metadatos se pueden eliminar fácilmente y por sí solos no evitan el uso no autorizado (aunque podría hacer que sea más fácil probar que una imagen es tuya si la encuentras). #3 puede ser manejado por la funcionalidad de importación/exportación de metadatos o herramientas de terceros. #4 es una posible ventaja.
#1. Parte de su base de datos podría estar dañada y no verá este problema inmediatamente (digamos después de una semana). Si sus copias de seguridad se ejecutan durante la noche y tendrá un problema con su base de datos por la noche, perderá un día de trabajo. #2. Sí, pero esta es una información adicional sobre sus derechos, y algunos sitios para compartir fotos extraerán y publicarán sus derechos de autor junto con otra información de metadatos. #3. Es posible que su solución DAM actual no esté en la lista de importación de su futura solución DAM, digamos después de 5 años. Si bien todos los DAM serios deben poder extraer metadatos de los documentos.
Y cómo me gustaría que tuviéramos una selección de buenos DAM con los que trabajar. No conozco ninguno que se acerque a mis necesidades.