¿Es más difícil para una cámara de video grabar a una resolución más alta para la velocidad de fotogramas?

O la cámara lo hace o no … no es exactamente “difícil”. La palabra que puede estar buscando es “computacionalmente intensa” o algo similar.

Depende del hardware. Ciertamente, la velocidad de datos sin procesar es parte de ella. Su sensor de imagen debe poder capturar, digitalizar y transmitir sus 62Mpixels por segundo (o lo que sea). Una vez capturado, su procesador DSP / cámara de video tiene que desempaquetar Bayer y luego codificar el número esperado de cuadros por segundo. Y finalmente, el procesador de la cámara y la E / S de almacenamiento tienen que poder escribir esos datos en algún tipo de almacenamiento.

Leyendo el sensor

Comencemos con el chip sensor. Primera pregunta: ¿puede el sensor procesar 270p en absoluto, solo en términos de la velocidad de conversión de analógico a digital en chip? En los viejos tiempos, es posible que solo tenga uno o solo unos pocos ADC en su antiguo CCD totalmente analógico. Pero en un chip CMOS moderno, es posible tener muchos de estos. Por lo tanto, suponiendo que el chip del sensor admita esa alta velocidad, el trabajo que se realiza a ese bajo nivel es probablemente el mismo. Aproximadamente el mismo número de conversiones que se realizan.

Digamos que tenías un sensor nativo 16: 9 1080p en ese chico malo. Entonces, de hecho, está capturando sus ~ 62Mpixels / second para su video 1080p30. Eso es 746Mb / s, suponiendo píxeles de 12 bits. Y eso en realidad está bastante bien. Uno de los estándares de interfaz de cámara más populares es MIPI, que es un poco como HDMI a la inversa. El estándar actual MIPI CSI-3 V1.1 admite una tasa utilizable de 8.9Gb / s.

Entonces, ¿qué pasa si el chip de la cámara solo puede leer fotogramas de 1080p? Leer 1080p270 va a exigir 6,718 Mb / s = 6,72 Gb / s, solo leyendo los cuadros sin procesar. Dado el límite de la interfaz de enlace de 8.9Gb / s, parece que esto funcionará, incluso dada la demanda mucho mayor de datos sin procesar.

Pero, ¿y si tuvieras una interfaz más lenta? Bueno, es posible … MIPI CSI-2 es más lento. Pero estos son como enlaces PCI Express … puede tener más de ellos cuando los necesite. Así que aún podría obtener el ancho de banda completo de 6.72Gb / s, solo necesitaría más enlaces.

Ahora, al ser un chip CMOS, es posible que el chip no tenga que enviar a la cámara la imagen completa. Todos los chips sensores CMOS tienen algún tipo de procesamiento digital realizado en chip, y todos los modernos también hacen el ADC en chip, que es parte de lo que les permite ser tan rápidos como lo son hoy. Por lo tanto, si el chip realmente hizo una agregación de líneas y píxeles o se saltó el chip, podría reducir la velocidad de datos necesaria en la cámara, cuando está en el modo de alta velocidad de fotogramas. Todavía es probable que se envíen más datos para una velocidad de cuadro alta que una velocidad de cuadro baja.

La cámara frontal

La mayoría de los procesadores de cámara tienen un poco de hardware en el extremo receptor que procesa los datos entrantes sin la necesidad de mucho trabajo de la CPU. Esto se debe a que puede ser una gran cantidad de datos, y es mucho más eficiente en el uso de hardware.

En el caso del video 1080p30, cada fotograma entrará, se desbarbará y se descargará en un búfer para enviarlo a la etapa de compresión de imagen. Esto toma los píxeles R, G o B de 12 bits y los interpola. Para video o JPEG, esto hace una interpolación de Bayer que convierte esos píxeles de 12 bits de un solo color en píxeles RGB de 24 bits. Básicamente, en la cámara, esto va de 746Mb / sa 1492Mb / s. Por cada píxel procesado, se observa un total de al menos cinco píxeles, se realizan dos interpolaciones.

Suponiendo que la cámara puede manejar las velocidades, el procesador de video tomaría 1080p270 cuadros y reduciría a 360p270. No se necesita una interpolación real, ya que nueve píxeles de entrada van en un solo píxel de salida. Entonces, suponiendo que el hardware esté diseñado para esto, se hacen tres promedios a partir de estos nueve píxeles para obtener el mejor resultado (por ejemplo, todos los rojos, todos los verdes, todos los azules en esa celda de 3 × 3). La salida es de 360p270 con píxeles de 24 bits, también es de 1492Mb / s.

Matemáticamente, la interpolación y el promedio funcionan de la misma manera. Por lo tanto, habrá un poco más de matemática que hacer en la agregación de reducción de personal que en la eliminación de Bayering, suponiendo que lo hagan lo mejor posible. Es técnicamente posible también usar solo un píxel en cada bloque, pero el resultado no será tan bueno.

El motor de compresion

Las cámaras de video digitales también contienen algún tipo de procesador de señal de video, generalmente con asistencia de hardware paralela, para hacer algún tipo de compresión MPEG, generalmente AVC en estos días, aunque algunos modelos más nuevos usan HEVC y algunos todavía usan MPEG-2 o Motion-JPEG.

Si bien parece que la carga de trabajo es casi la misma en ambos casos, no estoy completamente seguro. En ambos casos, la altura del marco no es divisible por 16, lo que significa que es probable que la fama esté acolchada. 1080p30 siempre se procesa como 1088p30, y los marcos de 360p deberán procesarse a 368p270. Pero parece lo mismo.

Creo que puede haber menos caballos de fuerza utilizados en la búsqueda de movimiento para los nueve cuadros de 360p en comparación con cada cuadro individual de 1080p, simplemente debido a los límites impuestos en la búsqueda de movimiento sobre un cuadro tan pequeño. En resumen, la búsqueda de movimiento / estimación de movimiento en un solo cuadro de 1080p no es matemáticamente equivalente a la estimación de movimiento en nueve cuadros de 360p. Para hacer coincidir un bloque por fuerza bruta se requieren 1012 comparaciones en el video de 360p, 8179 en el video de 1080p … por cada bloque, eso equivale a 1.025M comparaciones por cada cuadro de 360p, aproximadamente 66M comparaciones por cuadro de 1080p. Claramente, los nueve cuadros de video de 360p son más simples.

Sin embargo, los algoritmos modernos de estimación de movimiento como la búsqueda piramidal reducen esto enormemente. Éste funciona por búsqueda sucesiva. Reducirá el 1080p a 540p y luego a 270p, digamos. Luego realiza una estimación de movimiento en el marco de 270p. Toma esos vectores y los usa para regionalizar la estimación de movimiento en el cuadro de 540p, y luego esos vectores del cuadro de 540p para regionalizar la búsqueda de cuadro de 1080p. Mucho más complejidad, pero mucho más cerca, posiblemente incluso más rápido, que la búsqueda de movimiento limitada en nueve cuadros de 360p. Estos también tienen límites … no necesariamente vale la pena hacer una búsqueda piramidal en el marco de 360p … es posible, pero no el mismo tipo de ahorro en complejidad.

Almacenamiento

Una crisis típica de video de 1080p30 se ejecuta a unos 25Mb / s para una compresión IPB AVC completa, lo suficientemente lenta para el almacenamiento estándar de la tarjeta SD. La eficiencia de la compresión puede disminuir un poco a medida que disminuye la resolución, pero aún deberíamos encontrar que nuestro 360p270 funciona bien en una tarjeta SD, no hay preocupaciones especiales aquí.

Línea de fondo

La mayor parte de la pregunta va a estar en el sensor y la conexión frontal, donde el video de alta velocidad de fotogramas podría ser sustancialmente más desafiante. La cosa es que, en hardware correctamente diseñado, está allí, es compatible y funciona, o no existe en esa cámara. El síntoma de “más difícil” sería “este modo consume un poco más de potencia que ese modo”. Eso es todo lo que verá como usuario externo.

Esta pregunta no tiene mucho sentido; como si los pequeños chips pobres sudarán más en un modo que en el otro.

Las cámaras, imágenes fijas y movimiento, generalmente usan ASIC o FPGA que implementan una tubería de etapas de procesamiento en hardware discreto (puertas, registros, LUT, etc., procesamiento efectivamente paralelo) para lidiar con las altas velocidades de datos entre el sensor de imagen, a través de varias etapas de procesamiento, para el medio de grabación, porque intentar hacerlo en la programación lineal de una CPU generalmente no es práctico. Esta es una distinción importante.

Este tipo de dispositivos están diseñados deliberadamente, con una atención minuciosa a los detalles minuciosos, para funcionar en todos los modos anunciados en la caja.

En uno de sus ejemplos, el tamaño de fotograma es alto, pero la velocidad de fotogramas es normal. En el otro, el tamaño de fotograma es pequeño, pero la velocidad de fotogramas es muy alta. De cualquier manera, el límite general del sistema probablemente estará determinado por la rapidez con la que los datos pueden salir del sensor de imagen. En esta nota, su matemática puede ser correcta, o puede ser una cuarta parte del número real de píxeles, dependiendo de la resolución real del sensor y del algoritmo de desmarque utilizado.

También es una pregunta abierta, sin conocer detalles específicos sobre el sistema: cómo están escalando la resolución del sensor de imagen a las velocidades de fotogramas más altas de menor resolución: ¿están simplemente muestreando 1 en 3 o 1 en 4 píxeles, o la imagen El sensor tiene un modo de submuestreo incorporado donde se combinan varios píxeles para generar 1 píxel ‘virtual’? Sin convertir esto en un proyecto de investigación sobre componentes en teléfonos inteligentes o cámaras / videocámaras cuyas hojas de datos generalmente solo se comparten con aquellos que prometen comprar un millón de unidades a la vez y firmar NDA hasta que las vacas lleguen a casa, es imposible decirlo.

Mi presentimiento es que la velocidad de 270 fps representará el ancho de banda máximo de procesamiento de datos del sistema, sin embargo, los chips ASIC / FPGA simplemente procesarán esos datos en diferentes combinaciones, marcos más pequeños, pero más, pero para llamar a esto “más difícil” está antropomorfizando algo que simplemente ha sido diseñado para funcionar en varias configuraciones diferentes.

Si la cámara está diseñada específicamente para esto, puede hacer ambas cosas. Ahora mismo en mi mesa tengo una cámara que puede hacer 720p a 300 fps o 600 × 400 a 1000 fps. Tiene un sensor interno de 1280 × 1024 y requiere un circuito dedicado para extraer rápidamente una sección de ese sensor en lugar de leer todo. Es un poco más difícil hacer una resolución más baja / fps más altos, porque algunas operaciones no escalan con el número de píxeles. Conceptualmente, si tiene que gastar, digamos, 1 milisegundo por cuadro simplemente configurando las cosas antes de comenzar a capturar, significará una penalización mucho mayor de la tasa de píxeles a 300 fps que a 30 fps.

La mayoría de las videocámaras / cámaras de consumo no tienen los circuitos necesarios y simplemente barren todo el sensor cada vez, por lo que no hay una opción de “uno u otro”.

En igualdad de condiciones, la calidad será sustancialmente peor a 270 fps que a 30 fps debido a la menor exposición, y es más difícil hacer una cámara que funcione bien a 270 fps con poca luz porque necesita preocuparse por el ruido del sensor.

No estoy seguro, pero si tengo que adivinar, diría que una resolución más baja pero con una velocidad de cuadro más alta sería más difícil, porque en lugar de 30 cuadros en un solo segundo, tiene que hacer 270 cuadros en un solo segundo. ¡Piénsalo un momento! Una resolución más alta solo significa que el sensor usa más píxeles y obviamente una resolución más baja significa que usa menos píxeles.