VooD escribió:De C64 no sé, pero los digitalizadores de video de esa época económicos todos digitalizaban solo la luminancia, es decir en blanco y negro. Unicamente los caros tenían la circuitería necesaria para separar los componentes de la imagen en RGB y producir una imagen en color.
En Atari ST había algunos digitalizadores que con ayuda de software y "hardware" permitían capturar imágenes desde una cámara de video en color, pero tenía truco. Se trataba de incorporar a la cámara un filtro rojo, digitalizar, luego otro verde, digitalizar, y por último otro azul y digitalizar. Esto creaba tres imágenes en b y n que con ayuda de un programa se combinaban para crear una imagen en color con 512 o 4096 colores simultáneos.
Efectivamente este tipo de digitalízadores habitualmente solo capturaban la información de luminancia, pero no estaban solamente limitados por esto.
El mayor problema viene del tipo de convertidor analógico a digital, que en estos cacharros suele ser de aproximaciones sucesivas, el más barato. Esto significa que estos convertidores no son lo suficientemente rápidos para digitalizar una señal de vídeo normal, y el proceso tiene que realizarse en "varias pasadas", digitalizando la misma línea horizontal de vídeo en varias ocasiones, cada una iniciando la conversión con un pequeño offset de cada vez, y una vez obtenidas todas las muestras, se combinan en una sola línea de imagen (y lo mismo para cada linea que ha de digitalizarse).
Por esto mismo, la digitalización de un solo frame requiere varios segundos, ya que debe de realizarse el muestreo en varios cuadros de imágen.
Aparte de los convertidores, también están limitados por el sistema que utilizan para obtener las muestras, que se basa prácticamente en la CPU, efectuando esta las lecturas y trasladandolas al buffer en memoria.
En el caso del C64, la cpu puede leer como máximo 1 byte en cada ciclo de reloj que funcionando a 1Mhz son menos de 1Mbyte/s, pero luego ha de volcarlo a la memoria principal, y esto al menos le llevará otro ciclo, pero entre medias tiene que leer las instrucciones del programa que le indican que debe hacerlo, con lo cual la velocidad efectiva se ve reducida, y mucho. Y no solo afecta la CPU en esto, sino todo lo que se encuentra entre esta y el convertidor, como la CIA, que en este caso funciona a la misma velocidad que la CPU, pero en el Amiga 500 funciona a 1/10 de la frecuencia del procesador (CPU=7,5Mhz, CIA=0,75Mhz).
Teniendo en cuenta que el ancho de vídeo del sistema PAL es de aproximadamente 5Mhz, y que según el teorema de Nyquist, para obtener un muestreo correcto que no desvirtúe la señal capturada, necesitamos al menos realizarlo al doble de la frecuencia de la señal de entrada, es decir 10Mhz o más, está claro que por esta vía nunca obtendremos algo decente (en tiempo real, se entiende).
La única forma de conseguir una digitalización "on time" sería con un convertidor analógico a digital de tipo flash (muy caros en comparación) que volcase de forma directa sobre un buffer ram bastante rápido. Este tipo de digitalizadores son bastante más complejos, y por consecuencia caros, y se presentan usualmente en forma de tarjeta para el bus de expansión, o de "caja mágica" conectada al puerto paralelo, en la que se realiza la digitaliza y almacena la imagen y luego se transfiere al sistema principal a menor velocidad.
Y esto hablando de imágenes fijas, del vídeo en tiempo real mejor ni hablamos
Y de momento, hablamos de imágenes en B/N, para imágenes en color necesitamos descomponer la señal de vídeo PAL en los componentes de color básicos rojo, verde y azul (RGB) y realizar todo este proceso sobre los tres colores simultáneamente, requiriendo el triple de hardware.
Otra solución aportada por algunos fabricantes es utilizar alternadamente el mismo hardware para digitalizar cada una de las señales de color, lo que requiere que se digitalice tres veces la misma imagen, y aún así queda por solucionar el tema de separar los colores.
Ahora bien, existe otro modo de obtener una imagen en color a partir de un muestreo único de la imagen si contamos con una pequeña ayuda por parte del hardware.
Sí el hardware tiene la resolución suficiente y es capaz de muestrear la señal de burst, o por lo menos de almacenar el estado de la fase en la que se encuentra en cada línea, es posible extraer la información de color mediante software, de forma similar a como lo haría el hardware.
Aquí teneís un diseño de digitalizador que funciona de este modo, con un sistema de captura de alta velocidad basado en un convertidor flash, un buffer para almacenar la muestras, un interface para transferir las muestras por el puerto paralelo al PC/Amiga, y que realiza la decodificación de color por software:
Homebuitl video digitiser MKIICon el digitalizador para C64 lo veo un poco difícil realizar la extracción de color por software, ya que no creo que una resolución de 2 bits (4 colores) sea suficiente, aparte que este proceso requiere de cálculos matemáticos relativamente complejos y cierta cantidad de memoria que igual se le atragantan, pero en el caso de un Amiga con el DigiView es bastante factible, aunque creo que por desgracia este digitalizador descarta la señal de burst, con lo que perdemos toda posibilidad de realizarlo.
Y ahora volviendo al tema del cartucho para C64, lo que nos hacía sospechar que pudiese digitalizar en color es básicamente el programa que realiza la captura, que como podéis ver muestra un bonito botón que pone "16 Colors":
Aunque por lo que podido ver hasta ahora, lo único que hace ese botón es saltar a otro programa de digitalización que hace exactamente lo mismo que el anterior, pero deja asignar colores a los niveles de gris...
Edito:
Se me olvidaba comentar que el digitalizador para C64 tarda aproximadamente 4 segundos en capturar la imagen, que debe permanecer lo más estática posible durante ese tiempo.