martes, 19 de julio de 2011

Quitar jitter en televisiones Samsung LED

Tengo una televisión Samsung LED 3d, es una maravilla por varios motivos:
Sus entrañas son gobernadas por un sistema operativo Linux, y reproduce por defecto peliculas mkv, etc.
Realiza una interpolación increible en las imagenes, por ejemplo, si reproduces una pelicula rodada en 25 Hz, la television la reproduce a 200Hz interpolando las imagenes con un algoritmo magnífico que hace que los pannings se vean perfectamente nitidos.

La visualización de la television TDT por defecto o las películas reproducidas via USB se ven perfectas, pero el problema aparece cuando conectas un ordenador o consola por HDMI y reproduces video. En esta modalidad la imagen cada pocos segundos se engancha y la visualización pierde toda la magia para ojos exigentes como los míos.

En mi casa vemos la television a traves del ordenador, con ayuda del programa mythtv, y por tanto me encuentro en esta situación desagradable con estos glitches periodicos. 
Después de buscar por foros y no encontrar respuesta, a pesar del gran numero de voces que denuncian el problema, conseguí averiguar qué estaba sucediendo pensando un poco en la manera que tiene la televisión para conseguir la interpolación.
Hay gente que dice que se consiguen mejoras modificando parametros de la television como el jitter y el judder, pero en mi caso, no se arreglaba absolutamente nada. 

El error y la solución que encontre finalmente no iba por esos derroteros.
Haciendo un resumen muy tosco se puede decir que la televisión tiene potencia para hacer una interpolación sin fallos cuando la pelicula tiene menos de 30 frames por segundo.
Cuando enganchas un aparato por HDMI, la television se queda siempre en 1080p 50Hz o 60Hz independientemente del contenido que le mande el ordenador, y por tanto no le da tiempo a hacer esa compleja operación sin fallos.
¿Pero por que no cambia de modo si el ordenador/consola al principio de la película le dice a la televisión que haga un cambio de frecuencia?

Misteriosamente, la televisión ofrece una tabla EDID de frecuencias para que los gadgets puedan cambiar de modo, pero si el ordenador usa estos parametros automaticos, la television se niega a cambiar y no sucede absolutamente nada.

La solución es ignorar la tabla EDID de la televisión y poner los modelines que expongo a continuación:

Estos modelines se han de introducir en el /etc/Xorg.conf

# 1920x1080p @ 50Hz (EIA/CEA-861B)
        ModeLine "1920x1080@50" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
        # 1920x1080p @ 60Hz (EIA/CEA-861B)
        ModeLine "1920x1080@60" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
        # 1920x1080p @ 24Hz (EIA/CEA-861B)
        ModeLine "1920x1080@24" 74.250 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync
        # 1920x1080p @ 23.976Hz (EIA/CEA-861B)
        ModeLine "1920x1080@23.976" 74.175 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync
        # 1920x1080i @ 50Hz (EIA/CEA-861B)
        Modeline "1920x1080@50i" 74.250 1920 2448 2492 2640 1080 1085 1095 1125 +hsync +vsync Interlace
        # 1920x1080i @ 60Hz (EIA/CEA-861B)
        Modeline "1920x1080@60i" 74.250 1920 2008 2052 2200 1080 1085 1095 1125 +hsync +vsync interlace
        # 1920x1080p @ 59.94Hz (EIA/CEA-861B)
        ModeLine "1920x1080@59.94" 148.350 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
        # 1920x1080i @ 59.94Hz (EIA/CEA-861B)
        Modeline "1920x1080@59.94i" 74.175 1920 2008 2052 2200 1080 1085 1095 1125 +hsync +vsync Interlace
        # 1920x1080p @ 25Hz (EIA/CEA-861B)
        ModeLine "1920x1080@25" 74.250 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
        # 1920x1080p @ 29.97Hz (EIA/CEA-861B)
        ModeLine "1920x1080@29.97" 74.175 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
        # 1920x1080p @ 30Hz (EIA/CEA-861B)
        ModeLine "1920x1080@30" 74.250 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
#1280x720p @ 50Hz
   ModeLine "1280x720@50" 74.100 1280 1720 1760 1976 720 731 736 750 +hsync +vsync
   #1280x720p @ 48Hz / for display 24p video
   ModeLine "1280x720@48" 71.135 1280 1720 1760 1976 720 731 736 750 +hsync +vsync
   #1280x720p @ 60Hz
   ModeLine "1280x720@60" 74.25 1280 1320 1376 1650 720 722 728 750

#          1.  1280x720p @ 50Hz (EIA/CEA-861B)
        ModeLine "1280x720_eia_50" 74.400 1280 1720 1760 1984 720 725 730 750 +hsync +vsync #INTEL
#   1. 1280x720p @ 59.94Hz (EIA/CEA-861B)
        ModeLine "1280x720_eia_59.94" 74.400 1280 1390 1430 1612 720 725 730 770 +hsync +vsync #INTEL
#   1. 1280x720p @ 60Hz (EIA/CEA-861B)
        ModeLine "1280x720_eia_60" 74.400 1280 1390 1420 1623 720 725 730 764 +hsync +vsync #INTEL
        ModeLine "720x576" 27.00 720 732 796 864 576 581 586 625 -HSync -VSync
        #Modeline "736x575i" 14.16 736 760 824 904 575 580 585 625       -hsync -vsync Interlace
ModeLine "702x576@25i" 13.5 702 722 785 864 576 581 586 625 -hsync -vsync Interlace
ModeLine "704x576@25i" 13.5 704 723 786 864 576 581 586 625 -hsync -vsync Interlace
ModeLine "720x576@25i" 13.5 720 732 795 864 576 581 586 625 -hsync -vsync Interlace
ModeLine "768x576@25i" 14.75 768 789 858 944 576 581 586 625 -hsync -vsync Interlace
ModeLine "720x576@50" 27 720 732 795 864 576 581 586 625 -hsync -vsync
ModeLine "768x576@50" 29.5 768 789 858 944 576 581 586 625 -hsync -vsync


Para tarjetas NVIDIA hay que poner estas opciones para evitar la tabla EDID de la tele y usar la que hemos puesto:

       Option "ExactModeTimingsDVI" "True"
       Option "UseEDIDFreqs" "FALSE"
       Option "UseEDIDDpi" "FALSE"
       Option "ModeValidation" "NoEdidModes"




Si haces esto tendrás la televisión sin ningún fallo con contenido via HDMI, e incluso con contenido 3D.
Verás que funciona por que cada vez que cambia de modo, aparece un banner en una esquina con el nuevo modo de frecuencia. 

¿Por qué Samsung tiene este fallo tan grave durante tanto tiempo y no lo arregla con sus numerosas actualizaciones de Firmware?

Siento ser mal pensado, pero creo que a alguien no le interesa que el contenido via HDMI por ordenador se vea demasiado bien. Es muy sospechoso que la televisión mienta sobre sus propias frecuencias de sincronismos a los aparatos que enchufas via HDMI.

No lo he probado pero seguramente si alguien enchufa un aparato BlueRay, la película se verá perfecta por que casualmente el aparato use las frecuencias aquí publicadas, y no las que comunica la television al aparato.

No hay comentarios:

Publicar un comentario