Habi Hablóg
Declaro:
XML válidoXHTML válido800x600 +
RSS válidoCSS válidoNavegador digno
  Blog   Archivo   Contacto   Administración  

Acerca de

Matemático, informático, aficionado a la electrónica, friki... y otras cosas que no vienen a cuento ni pasan los filtros de palabras.

¿Queríais un blog? Ahí va.

Red antisocial

¡Me van a volver loca! 2.0
La Fragata Portuguesa

Z
¡Me van a volver loca!

Últimos posts

El expediente X que nadie pidió
eNigma
La cuadratura del píxel
Portando desde Spectrum
Inexorable

Últimos comentarios

Habi
NoSupoResolverLaFuncion
Edu
Habi
EnriqueGG

Calendario

No hay fechas.

Categorías

Chorradas
Paranoias
Posts lúcidos
Tecnoesoterismo
Yuyus

Cenas de Abj

Abj debe 7 cenas.

Frase célebre

Habi dice: así que se lo sacó y era de 40 cm 
 
Abj dice: yo esperaba que me lo clavara 
 
Abj dice: mierda, no debería haber dicho eso después de la frase de habi

La cuadratura del píxel

Habi - 05/03/2023 21:59:19 - Tecnoesoterismo

Los píxeles cuadrados son un lujo moderno. Los microordenadores antiguos sacaban una imagen analógica como buenamente podían, y el resultado eran píxeles no del todo cuadrados.

Empecemos por analizar la señal de vídeo PAL.

En vertical tenemos 625 filas, es decir, 312,5 por campo o 312 a secas si usamos un modo progresivo que es el caso que nos interesa, con lo que pasamos de 50 Hz a 50,08. En cualquier caso, tenemos 576 filas visibles (18,4 ms), unas 288 por campo y ese es el valor que nos interesa.

En horizontal tenemos una zona de sincronismos de 12,05 us (1,65 porche A, 4,7 sincronismo y 5,7 porche B) y una zona visible de 51,95 us. De nuevo, ese es el valor que nos interesa.

Los ordenadores de los que hablamos no aprovechan al completo la zona visible, sino que ocupan una zona activa centrada y dejan una el resto como overscan (borde) por seguridad y por simplificar hasta rellenar la visible. Esto no nos va a afectar pues vamos a analizar las frecuencias del reloj de píxeles, pero bueno es saberlo.

Sabiendo que la pantalla CRT clásica tiene una relación 4:3, entonces las cuentas son fáciles. Asumimos cada fila de igual alto con lo que tenemos 4/3*288=384 píxeles visibles en horizontal en cada una. Si ahora dividimos por el tiempo que pasamos en su zona visible (los 51,95 us) nos salen unos 7,3917… Mhz en nuestra zona visible.

Comparemos ahora algunos ordenadores y sus relojes:

Un caso interesante es el de los Spectrum 128: tienen un reloj de 2*3,5469=7,0938, con lo que tenemos un error del 4,03%. Aunque no nos influye para esto, el tiempo horizontal total son 456 px totales en vez de los 454 teóricos (228 ciclos del Z80 vs 227) que debieran ser; a cambio, sacan una fila menos (311 totales vs 312) para compensar.

Todos estos errores son relativamente pequeños, y en los emuladores se suele "arreglar" el tamaño final escogiendo la zona visible que convenga (bordes distintos a los originales para encajar en el aspecto deseado).

Mención especial a la burrada de hacer píxeles cuadrados en el modo VGA 320x200 (400 doblados vs 480 doblados nativos) que comete un error de 16,7%, claramente visible. ¿Por qué DOSBox o ScummVM no aplican el reescalado por defecto y hay que modificar la configuración? Todos los juegos se ven terribles por defecto, causando sangrado de ojos.

Y hablando de burradas, otra es ajustar el aspecto de la imagen a la del monitor en vez de mantenerlo (4:3 en 16:9 se ve un 25% más ancho, causando ya daños cerebrales).

En conclusión: aparte de haber compartido este TOC mío, si todo el mundo tuviese pantallas con muchos DPI se podría hacer un buen reescalado (y buenos efectos CRT) que mantenga el aspecto sin perder definición, pero supongo que de momento no es el caso.


EnriqueGG - 15/03/2023 16:52:02

¿Y qué configuración recomiendas en DOSBox?



Habi - 22/03/2023 23:34:31

No suelo usar DOSBox, pero supongo que usando "aspect=true", y escogiendo un scaler decente (DOSBox aplica primero el scaler y luego ajusta a "fullresolution" o "windowresolution"). 
 
Sé que hay gente que escala primero a 640x1200 con "vecino cercano" para luego escalar a 640x480 con filtrado bilineal, y así tiene una imagen limpia en horizontal, pero ignoro si se puede en DOSBox. 
 
Yo prefiero usar un PC viejo + monitor CRT, que para eso los tengo.




Añadir comentario

Nombre:
Email:
Comentario:
Pregunta: Sea f(x)=8x2+8x+2. ¿Cuánto vale f(x) para x=2?
Respuesta: