Estoy generando una animación en Matlab, compuesta de diagramas simples. Las imágenes se caracterizan por estructuras finas, fuertes contrastes y colores discretos en su mayoría, por ejemplo, hay líneas negras anchas de pocos píxeles, puntos o pequeños parches de color uniforme, texto antialias alto de pocos píxeles, etc. Aquí hay una captura de pantalla de un marco típico :
Lo que cambia de cuadro a cuadro son los parches de color a la izquierda, el tiempo ("t =") y la posición del punto negro en el panel derecho.
El uso de un códec de video estándar en este que fue diseñado para imágenes fotográficas en movimiento de cuadro completo genera fuertes artefactos incluso con una compresión débil. Sin embargo, sin compresión, el archivo de video se vuelve inmanejablemente grande.
Mi pregunta: ¿Hay algún códec de video que esté optimizado para este tipo de material? Si es posible, sería óptimo si se incluye un codificador en ffmpeg y si hay un decodificador (implementación de códec) disponible para Windows.
Leí un poco e hice algunos experimentos con códecs sin pérdidas, obteniendo resultados decentes. Me interesaría recibir comentarios sobre esto, especialmente si hay alternativas sin pérdida o con pérdida que pasé por alto.
Probé los siguientes códecs/formatos en ffmpeg:
Movimiento sin pérdidas JPEG2000 / AVI
ffmpeg -i test.avi -vcodec jpeg2000 -strict -2 -pred 1 test_jpeg2000.avi
relación de compresión 19,59%
VP9 sin pérdidas / WebM
ffmpeg -i test.avi -vcodec vp9 -lossless 1 test_vp9.webm
relación de compresión 0,52%
HuffYUV / AVI
ffmpeg -i test.avi -vcodec huffyuv test_huffyuv.avi
relación de compresión 37,42%
H.264 / MP4 sin pérdidas
ffmpeg -i test.avi -vcodec h264 -qp 0 -preset veryslow test_h264.mp4
relación de compresión 0,53%
Dado que HuffYUV no funcionó bien, lo excluí de otras pruebas.
Luego probé la compatibilidad con la reproducción en Linux y Windows, probando mplayer, xine, vlc, chrome y firefox en Linux (pruebas de Debian) y vlc, windows media player, chrome y firefox en Windows (8.1). Incluí navegadores porque WebM está diseñado específicamente para video web. Resultados:
Movimiento sin pérdidas JPEG2000 / AVI
juega en Linux con mplayer
VP9 sin pérdidas / WebM
juega en Linux con vlc y chrome y en Windows con chrome y firefox
H.264 / MP4 sin pérdidas
se reproduce en Linux con mplayer, vlc y chrome, y en Windows con vlc y chrome
Que un video se "reproduzca" significa que el reproductor lo admite desde el primer momento y que la reproducción es correcta. Encontré varios casos en los que el video era "compatible", pero la reproducción tenía errores.
Aunque Lossless VP9 tiene la mejor relación de compresión (por un pequeño margen), por el momento decidí usar Lossless H.264 porque tiene mejor soporte de reproducción.
.flv
códec On2 VP6
en Adobe Media Encoder. Aproximadamente 200 Mb por 40 minutos de presentación de diapositivas 640x480 1fsSi está de acuerdo con los formatos que requieren codificadores propietarios, le sugiero que consulte RealVideo . No he usado este formato por un tiempo, pero recuerdo que hace 10 años podía comprimir dibujos animados de DVD en archivos RMVB de <500 MB con muy poca pérdida de calidad, mientras que los archivos XviD de tasa de bits similar eran extremadamente bloqueados.
Otro códec que suena adecuado, al menos en teoría, es QuickTime RLE .
Sorprendentemente, aunque parece haber una investigación moderna sobre códecs de video similares a dibujos animados, ninguno de los esfuerzos pasó de la etapa de "prueba de concepto".
Supongo que su animación de MATLAB será similar a los dibujos animados: se usan pocos colores, bordes nítidos entre los colores, solo una pequeña parte del marco cambia activamente, etc.
gian
A. Donda
A. Donda