Un fotograma 4K contiene más de ocho millones de píxeles. Enviar treinta de esos fotogramas por segundo sin compresión crea un flujo de datos muy grande. Por lo tanto, los módulos de cámara USB a menudo utilizan MJPEG porque la compresión JPEG reduce la cantidad de datos que deben viajar a través del enlace USB.
USB2.0 tiene mucho menos ancho de banda práctico que USB3.x. Incluso en USB3.x, los modos de alta tasa de bits sin comprimir pueden competir con otros dispositivos y los límites del controlador host. MJPEG permite que la misma interfaz física transporte una mayor resolución o velocidad de fotogramas al reducir el número de bytes por fotograma.
A diferencia de los códecs de video de GOP largo como H.264/H.265, MJPEG comprime fotogramas individuales como imágenes JPEG. Esto hace que el acceso aleatorio a fotogramas sea relativamente simple y evita dependencias de predicción inter-fotogramas. Para algunas aplicaciones de visión, esa simplicidad es útil, aunque los artefactos de compresión permanecen.
La compresión no hace desaparecer los datos; traslada el trabajo a otro lugar. La cámara o el puente comprimen la imagen y el host la decodifica. Un procesador integrado débil puede tener dificultades con varias transmisiones MJPEG 4K, incluso si el bus USB puede transportarlas.
Para sistemas multiconexión, mida tanto la utilización de USB como la carga de decodificación de CPU/GPU.
El host aún debe negociar el modo, recibir la transmisión, decodificar los fotogramas y moverlos a la memoria. Los marcos de software pueden copiar búferes o convertir formatos de color, lo que agrega latencia. La calidad del cable y el uso compartido del controlador USB también pueden afectar el rendimiento sostenido.
Una especificación debe verificarse en el host final en lugar de asumirse a partir de una prueba exitosa en una PC de escritorio.
Si un algoritmo es sensible a los artefactos JPEG, requiere valores de píxeles consistentes o evita la latencia del decodificador, se puede preferir YUY2 u otra ruta sin comprimir/cruda. En ese caso, puede ser necesario USB3.x, una resolución más baja, una velocidad de fotogramas más baja o una interfaz diferente.
Compare la tabla de modos: resolución, velocidad de fotogramas y formato. Luego, verifique la versión de USB, la carga de decodificación del host, la latencia y si la aplicación procesa cada fotograma. Un módulo que anuncia ‘4K30’ puede comportarse de manera muy diferente dependiendo de si ese modo es MJPEG, H.264 u otro formato.
Una sola cámara MJPEG 4K30 puede transmitir de manera confiable en un host, pero cuatro cámaras idénticas pueden abrumar la topología USB o los recursos del decodificador. La compresión redujo el ancho de banda de cada enlace, pero el sistema combinado aún tiene que recibir y decodificar cuatro transmisiones. Por lo tanto, el diseño multiconexión requiere mediciones agregadas, no una suposición por cámara.
La declaración completa debe incluir el formato y la interfaz: por ejemplo, 3840×2160 a 30 fps en MJPEG a través de un enlace USB específico. Sin el formato, el número oculta la restricción de ingeniería clave. Este hábito de lectura evita muchos errores de selección.
Es un formato de compresión con pérdida, por lo que son posibles los artefactos. Si importan o no depende de la configuración de compresión y la aplicación.
H.265 puede comprimir de manera más eficiente, pero agrega complejidad al códec y, a menudo, más latencia. MJPEG es simple e independiente del fotograma.
Puede ser posible para algunos formatos e implementaciones, pero se deben verificar la tasa de datos exacta, la sobrecarga del protocolo y la canalización del host. No lo asuma solo por el nombre de la interfaz.