PALETA DE LA NES/FAMICOM PARTE 2

Este articulo  pondrá más críptico, realmente quiero tratar de dilucidar cómo funcionan estos 12 patrones de señal que genera la NES/FAMICOM y que dan como resultado los colores observados.

nes color

Esto es muy detectivesco y elucubrativo ,  partí de la patente de la PPU de la NES/FAMICOM con fin de explicar algunos puntos importantes.

En los primero apartados pretendo exponer:

  1. Los fundamentos de modulación  y demodulación   de la señal de VIDEO COMPUESTO.
  2. Forma teórica y digital de 0 a 255 o de 8 bits para la forma de onda video compuesto
  3. Paleta en espacio YUV de la siguiente manera Y de 4 niveles o 2 bits, U y V de 12 niveles 3 bits aproximadamente
  4. Con estos elementos expuestos  nuestros dos posibles soluciones  para las formas de señal de los 12 patrones.

 REPASEMOS LAS ENTRADAS

El resumen de los episodios:

 NES DIRECTO

EL MISTERIO DE LOS 12 DRAGONES DE LA NES/FAMICOM

En el interior de de la PPU hay unos elementos cuyo resultado del son los colores. Estos elementos según la patente de la PPU son:

  • El PHASE SHIFTER (38)  es un divisor de la  (Sc) frecuencia crominancia.  Esto aumentar la frecuencai es 6 veces la SC.  Adicionalmente produce 12 tipos de señal con diferente fase “una de otra”
  • El PHASE SELECTOR (114)  toma los 4 bits de fase de la RAM de generador de color.

INTRODUCCIÓN A LA MODULACIÓN DE CUADRATURA

Existen dos procesos en la señal VIDEO COMPUESTO la MODULACIÓN y la DEMODULACIÓN.

En la MODULACIÓN la señal de COLOR RGB se convierte en espacio YUV en PAL y YIQ en NTSC.

Modulación de señal de TV Fuente http://www.ntsc-tv.com/

El primer paso es convertir los valores YUV o YIQ para lo cual se utilizan matrices de transformación:

Para la conformación de la señal de VIDEO COMPUESTO el LUMA Y se mantiene intacta, mientras que UV/IQ se combina para ocupar un mismo espacio de señal.

Tomaré ejemplo la señal YUV PAL:

Señal COLOR PAL = Y + U cos (2pi*Frecuencia * tiempo) + seno(2pi*Frecuencia * tiempo)

La frecuencia es lo que llama frecuencia de FRECUENCIA DE SUBPORTADORA pero yo prefiero usar el nombre técnico “COLORBURST”. Su valor es aproximada a 3,57 Mhz en NTSC  y PAL N.

cOMPOSITE

Con el fin de tener una señal de referencia para la demodulación o retirar la señal de CROMINANCIA se  incorpora el COLORBURST a la seña del VIDEO COMPUESTO. Esta va un poco después de la señal de sincronización y antes de la primera señal de color.

http://www.notanon.com/2015/01/

Simplifiquemos LA SEÑAL DE COLOR un poco, así que  obviemos la frecuencia y la LUMA, para obtener la señal de CROMINANCIA un poco mas didáctica:

SEÑAL DE CROMA = x = U cos (Angulo) + V cos (Angulo)

Lo que hacemos es sumar una onda coseno a una onda seno, moduladas o multiplicadas por U y V respectivamente.

MODULACION DE VIDEO 1.gif

Como esto sigue pareciendo una clase de trigonometría debo explicar otro elemento interesante de la siguiente ecuación.

foruma conseno

El resultado de la Modulaciones es una nueva onda Coseno con un desplazamiento. Cada color en el espacio de la modulación tiene un único valor de Amplitud y Desplazamiento, por tanto de valores únicos de UV o de IQ.

Modular es muy fácil en caso de la devaluación es mas complicado, vamos a ver si puedo exponerlo fácilmente de manera didáctica.

Nota1: Es posible convertir seno en coseno, no es necesario generar dos señales de color brust solo trasladar  Cos(Angulo) = Seno (Ángulo + 90°). Igualmente es posible mediante la integración de la señal Coseno.

Nota2: Es posible convertir PAL en NTSC matemáticamente ya que el espacio de color de este último tiene un desfase de +33° frente al primero. Esto se podrá entender mas adelante de lo explicado en el articulo. 

DEMODULACIÓN

Demodulación de señal de TV Fuente http://www.ntsc-tv.com/

Como la señal de COLORBURST que se agrega a la cola de la señal de VIDEO COMPUESTO,  se ha de tomar esta señal para el trabajo de modulacion.

De la trigonometría sabemos que el Cos (Ángulo) es 1 cuando el ángulo es 0 y Sen(Ángulo) es 1 cuando el ángulo es 90°. Matemáticamente esto es:

U = U Cos (0) = U cos (0 radianes)

Y = V Sen (90°) = V sen ( PI radianes)

Mixer phase response for quadrature FM demodulator

Visita: Quadrature FM Demodulator / Detector Tutorial

Así podemos determinar empíricamente los valores UV e IQ.

LA DEMODULACIÓN didácticamente se resuelve comparando el COLORBURST con la señal de video. Cuando la señal del COLORBURST esté en el su máximo se asume que tiene 0° y cuando la señal esté en el mínimo será 90°.

Phase locked loop PLL FM detector / demodulator

Fuente:  PLL FM demodulator / detector

El decodificador debe contar el número de cambios de fase de COLORBURST comparándola con la señal de VIDEO COMPUESTO. De esta manera determinar los valores en 0° y en 90°, a continuación un gráfico ilustrativo:

MODULACION DE VIDEO 2

ESTIMACIÓN DE LA FORMA DE ONDA PPU  (SI FUERA DIGITAL)

Estas elucubraciones tiene el objetivo es el  dilucidar cómo se puede generar color con patrones de TONO. Las siguiente es una representación especulativa de la señal DIGITAL generada por la PPU NES/FAMICOM

SEÑAL 256.jpg

En la gráfica anterior se observa que El DAC  de 8 bits o  256 niveles de voltaje (tensión). Consecuentemente dividí estos 256 (0 a 255) niveles reservando cada uno de los elementos requeridos por el VIDEO COMPUESTO.

  • Los primeros niveles 0 al 3  están reservados son la Sincronización H/V,
  • La modulación de LUMA  ocuparía resto de los valores. Como son 4 bits (16 valores) niveles de de LUMA por tanto 256/16  son aproximadamente 15 niveles por cada escalón (4bis).
  • Tenemos una  ONDA DE CROMA de AMPLITUD no superior a 15 niveles o mas bien 12 niveles para que esté en concordancia  con los documentos de la PATENTE.
  • Bajo esta hipótesis sobran 3 niveles,  lo que dejaría el COLORBURST un espacio bastante estrecho pero factible.

Nota Add 18-7-2017: Fotos enviadas muy amablemente por @Artemio y de los datos de NESDEV debo aclarar que el COLORBURST no es digital si no una señal análoga

caputra

Fuente: @Artemio

LIMITACIONES DE LOS VALORES YUV/YIQ

 El principal inconveniente desde el punto de vista de este articulo sobre el color de la FAMICON es que las RGB generado por una cámara son convertidos al espacio YUV/YIQ. Por tanto,  es complejo partir de  valores arbitrario  YUV/YIQ  para llegar a RGB.

En la entrada anterior genere una paleta R3G3B3, ahora mismo  como un  experimento matemático generaré una paleta en espacio  de color YUV (2 bits para Y + 4 Bits para U + 4 Bits para V = Y2U4V4)

Mi interés un poco es mostrarles como el espacio es muy limitado para la presentación de color desde  el punto de vista DIGITAL.

Intentaré crear una nueva paleta digital (en  YUV/YIQ) parto de los siguientes ajustes:

  • LUMA Y  dispone de 2 bits pudiendo representar en binario 0,1,10 y 11 lo cual concuerda con  LEVEL DECODER tiene una salida de 4 niveles.
    • El valor máximo de Y de la paleta NESDEV es 0.916 y el valor mínimo 0,120 esto sirvió de base par repartir los valores binarios.
  • EL CROMA (UV y IQ)  dispondrá para este escenario de 12 niveles un poco mas de 4 bits
    • Lo mejor es partir de un valor máximo es 12 y el mínimo es 0, pero el rango de niveles de  6 a -6 lo que corresponde a -1 a 1 en señal análoga.
  • El ajuste de los valores es heurístico.

Estas suposiciones matemáticas me llevan considerar en este punto que desde el punto de vista DIGITAL la paleta no es tan amplia como plantean otros desarrollos en construcción de paletas.

La solución es muy inestable y tiende a saturar los canales, pero todo es meramente educativo. La llamaré Y2U4V4, click para agrandar!

Y3U4V4

Es claro en este punto no pueden generar ondas arbitrarias moduladas directamente en el espacio YUV para para obtener los colores requeridos como se supondría de primera mano con la lectura de la patente. En este caso la patente no necesariamente es una solución matemática.

LA SEÑAL DEL “COLOR GENERARTOR”ES UNA ONDA CUADRADA?

A continuación intentare exponer como se relaciona la modulación de cuadratura con posibles patrones de señal generados por el COLOR GENERATOR.

Si el patrón fuera como se expone de forma breve en la wiki de NESDEV el 50% del tiempo esta en valor 12 o alto y el 50% en nivel bajo o mas bien cero (o).

There are 12 color square waves, spaced at regular phases. Each runs at the ~3.58 MHz colorburst rate : NESDEV

Esta suposición los valores UV e IQ  deberán cumplir estas dos condiciones: SEÑAL 1.png

La gráfica anterior  muestra dos opciones la primera esta en fase con el COLORBURST y la segunda está retrasada 45°. Los resultados no son positivos porque ninguno de los dos tipos resultan  en colores RGB válidos.  Esto obliga a modificar un poco la ecuación a una tercera opción.

SEÑAL 2.png

Estas nuevas ecuaciones daría mas flexibilidad a la paleta, requiere tener una porción de  ROM con cada uno de los valores UV e IQ, estimados según la paleta Y2V4U4 =>  12btis x 18 valores =256 btis . No es impráctico pero no sigue los parámetros de la patente.MODULACION DE VIDEO 3

GENERADOR DE COLOR Y SEÑAL SINUSOIDAL?

Es posible generar otros patrones de señal mediante registros de desplazamiento y la lectura de una ROM que sería muy pequeña. Pero mostrare como esta hipótesis se desmorona a pedazos.

Lo primero que pensaríamos es que que el desfase de cada uno de las SEÑALES DE CROMA debería seguir una serie matemática donde: 

Anngulo_desfase=Maximo_valor_desfase / 12

Es decir  algo como que si el ángulo máximo es 360° para 12 muestras son 30° para cada fase 0°, 30°, 60°, 90° ….360°. Aun con el divisor de frecuencia tendría  60°/12°=5°.

ESTO NO ES CORRECTO! Para que una solución matemática YUV/YIQ a RGB el  PHASE SHIFTER debe contener valores de desplazamiento predeterminados como expuse con la onda cuadrada. Insistiendo, que estos serán  seleccionados a partir de unos valores fijos previamente, pero no mostrando progresión numérica alguna .

Lo segundo que pensaríamos es que tendríamos una onda sinusoidal perfecta también es falso porque solo tenemos 12 niveles para cada fase. Pero si usáramos los 12 niveles no tendríamos una señal tipo sinusoidal.

CERCA DEL SECRETO PERO NO TANTO

  • El divisor de COLORBRUST, es posible bajo estas suposiciones que el divisor redujera el número de bits necesarios en los registros del PHASE SHIFTER.
  • Finalizando este proceso no he logrado resolver del todo el misterio y por el contrario he logrado perder el tiempo con algunas ideas respecto a una paleta rica en matices por una paleta limitada en rango  y consecuentemente saturable.
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s