Sabemos que a estas alturas reproducir videos en HD es algo que se puede hacer con básicamente cualquier player del mercado, incluyendo muchos que son completamente gratuitos y que cumplirán el objetivo de manera aceptable, no es para ellos que escribimos esta guia.  Aquí vamos a contarles como reproducir con software gratuito al mayor nivel de calidad posible, sacando el maximo provecho  de la placa de video, en especial de GPU’s potentes. En esta guía te mostraremos como puedes utilizar tu GPU como una maquina de procesamiento para mejorar la reproducción HD a niveles realmente altos y a su vez como poder utilizar todo este poder de procesamiento para poder sacar provecho del Upscaling, una técnica que te permitirá incluso ver peliculas o videos que no estén en HD, pero rescaleados a una resolución mas alta, para lograr una mejor reproducción en pantallas grandes. Para todos aquellos que tengan tiempo y algo de espiritu aventurero y que quieran sacar el maximo provecho posible y la mejor calidad posible en la reproducción HD, aprovechando el hardware que disponen, para ellos, escribimos esta guía. Así que te has armado una PC para Home Theater y no estas satisfecho con la calidad que estas obteniendo en tu nueva mega pantalla de TV?.  Te gustaría tener un programa que te permita reproducir todos los videos del planeta, incluyendo los videos 3D en mkv y poder usar subtitulos comunes como 3D sin tener que convertirlos?.  Manos a la obra entonces!

En esta guia te vamos a enseñar

  • Como reproducir en la calidad mas alta, con control de Chroma y Motion
  • Como realizar Upscaling de contenido hacia HD  (reproducir un video calidad DVD en calidad 720p o 1080p)
  • Como realizar Downscaling de contenido hacia tu resolución nativa con mínima pérdida de calidad
  • Como potenciar la calidad de los filtros de Chroma, Upscaling y Downscaling para sacar el mayor provecho de tu GPU
  • Como poder aplicar filtros de sharpening que no afecten el proceso y mejoren considerablemente tu calidad de imagen
  • Como poder reproducir videos en 3D con subtitulos comunes convertidos a 3D en tiempo real.

Requerimientos

No tan rapido!, antes de comenzar deberás cumplir con estos requisitos:

  • Tener al menos un procesador Quad Core.
  • Como mínimo un GPU Geforce GTX serie 5 en adelante, rango medio.
  • Como mínimo un GPU AMD Serie Radeon HD 6000 en adelante rango medio.
  • Disponer de conocimientos elementales de como instalar software y configurarlo.
  • Una resolución de escritorio de al menos 1650×1050 para poder sacar provecho del Upscaling y Downscaling.
  • Disponer al menos de Windows 7

Software

Para comenzar vamos a necesitar instalar lo siguiente:

  • DirectX9c Runtime
  • Media Player Classic BE
  • madVR renderer
  • LAV Filters

Advertencia:  Es absolutamente necesario ejecutar todo el software en modo administrador, de lo contrario la instalación fallará.

Pack Completo de Instalación

Para todos los que no tienen paciencia para descargar cada archivo por separado o no tienen pensado actualizar los paquetes posteriormente pueden descargar el pack completo que armamos, listo para usar y solamente utilizar los pasos de esta guia en donde enseñamos a configurar todo.  En caso de utilizar nuestro paquete, todo lo que deben hacer para instalar los filtros es copiar el contenido del ZIP en una carpeta amigable en tu pc, por ejemplo  D:/Programas/MPC-BE  y luego ejecutar en modo administrador el archivo Install-Filters.bat que instalará todos los filtros necesarios, si haces esto, ignora por completo las instrucciones de instalación de cada filtro en esta guia y solo aprende a configuarlos.

DirectX

directx

Todo el proceso requiere que tengamos las librerias de DirectX9 en el sistema, ya que madVR y LAV hacen uso de ellas, por lo tanto, si no lo tienes lo puedes descargar aqui

Media Player Classic BE

best-mplayer-quality-01

Media Player Classic ha tenido varios proyectos alternativos en el transcurso de su desarrollo y es la base en la cual vamos a implementar todas las mejoras, la mejor versión posible en la actualidad es el MPC-BE ya que el Media Player Classic Home Cinema ha quedado desactualizado y carece por ejemplo de soporte para 3D, entre otras cosas. Lo primero que haremos es descargar la versión mas reciente del software, es absolutamente necesario que instalemos la versión Win32, aún cuando exista la versión de 64bits ya que de lo contrario, el renderer que usaremos para tener mejor calidad no se podrá implementar, ya que no existe en formato de 64bits.  Para instalar el Media Player Classic BE recomendamos seriamente hacerlo en un directorio amigable, para poder luego instalar en el todos los filtros necesarios, algo así como D:/Programas/MediaPlayerBE

Configuración Post-Install

Antes de comenzar a configurarlo es absolutamente necesario que ejecuten el player por primera vez en modo administrador. Si has bajado el Pack Completo que proveemos o bien no has agregado todos los formatos de video, lo primero que tienes que hacer es dirigirte a las opciones, presionando la tecla O y luego marcar todos los archivos que desees reproducir con este player. best-mplayer-quality-02

Decoding

madVR es el responsable de todo el incremento de calidad que podran experimentar al aplicar todo lo que hablaremos en esta guia, antes de proceder a instalarlo es apropiado que les contemos exactamente que es lo que vamos a hacer con madVR y porque es tan importante.

Un poco de explicación técnica

Cuando abrimos un video con cualquier player, existen varias formas en la cual la decodificación ocurre internamente, esto es, poder reproducir un archivo H264 AVC por ejemplo, tipico de las camaras de video actuales o incluso YouTube y poder verlo en pantalla.

Decoding via Software

Cuando el player no usa decoding via hardware, todo el proceso de decodificar y convertir en imagen al video se realiza via software, esto es, utilizando el CPU, este proceso es muy lento y generalmente puede poner de rodillas a un procesador Dual Core con mucha facilidad, es por ello que la mayoría de los players actuales soportan lo que se conoce como Decoding asistido via Hardware.

Decoding asistido via Hardware

Para los players actuales, que soporten lo que se conoce como Decoding Asistido via GPU tenemos varios modos que pueden estar presentes,  AMD por su parte tiene el conocido AVIVO en distintas variantes y NVIDIA dispone de su antigua variante PureVideo y la nueva CUVID, Intel por su parte dispone de una tecnología conocida como Intel Quicksync y por si esto no fuera poco, tenemos una técnica general, utilizada via DirectX que es compatible generalmente con todos los GPU’s del mercado conocida como DXVA y DXVA2. Todas estas técnicas de decoding del video via hardware lo que hacen es indicarle al GPU que utilice su porción del video decoder para realizar la descompresión y reproducción posterior, con lo cual, el uso de CPU se mantiene casi núlo y se puede también mantener un bajo consumo de GPU, dado que estamos enviando el decoding del video a un sector dedicado del GPU para realizar esta tarea. Pero, hay un gran pero,  todas estas técnicas de decoding via hardware no nos sirven para obtener la máxima calidad, como tampoco nos sirven para poder realizar Upscaling o Downscaling de una manera controlada que brinde mayor calidad, puesto que todo el decoding es manejado por la parte del GPU dedicada a esta función. el usuario no tiene forma de interceptar al decoder en el medio del proceso, ni controlar como se verá la imagen final.

Decoding via GPU Rendering

Lo que vamos a hacer es instruirle al player que todo el decoding lo realice via madVR. Este decoder ignora por completo la etapa de decodificación via hardware de los GPU’s actuales e implementa un código especial de decoding que se ejecuta en el GPU en forma de aplicación 3D.  Básicamente madVR se comporta como si la placa de video estuviera renderizando un videojuego, lo cual nos permite tener control total del proceso, pero a su vez, aumenta el consumo del GPU y si elevamos la calidad al máximo, podremos incluso poner de rodillas a un GPU high end como la Radeon R9 280X o la Geforce GTX970.

madVR

best-mplayer-quality-03

madVR es el renderer por defecto que se usa para lograr la máxima calidad posible, el proyecto es de 32bits por lo tanto requiere que el Media Player BE sea instalado en su versión de 32bits, lo descargaremos y copiaremos el contenido del zip dentro de un directorio llamado madvr  dentro del directorio donde instalamos el MediaPlayer Classic BE. madVR tiene 2 archivos .bat importantes, install.bat y uninstall.bat estos archivos permiten instalar o desinstalar el filtro del sistema, es fundamental entender que madvr va dentro de la carpeta del Media Player Classic, ya que el sistema leerá estos archivos a la hora de utilizar el filtro de rendering.

Ejecutamos entonces el archivo install.bat pero con permisos de administrador para instalar madVR en el sistema.

Una vez finalizado pasamos a activar madVR.  Abrimos MPC-BE y lo seleccionamos como renderer. best-mplayer-quality-07

LAV Filters

best-mplayer-quality-04

LAV Filters proporciona una serie de Decoders y Filtros de imagen (3 en total) que le permiten entre otras cosas oficiar de etapa final de puesta en pantalla, LAV Video Decoder, procesar el track de audio y ajustarlo en cualquier forma posible, LAV Audio Decoder, y por último implementar filtros que nos permiten insertar subtitulos e incluso convertir subtitulos de 2D a 3D, LAV Splitter. La pregunta es, porque usamos LAV en vez de implementar los decoders incluídos dentro del MPC-BE,  por una simple razon,  LAV implementa decoders sumamente optimizados, un mejor control de los subtitulos, optimización multithreading, que hace uso de varios Cores de tu CPU y se actualiza de manera constante. Ahora, para poder utilizar LAV vamos descomprimir el contenido del ZIP dentro de una carpeta llamada LAV en la carpeta donde instalamos MPC-BE y procedemos a ejecutar los 3 archivos .bat en modo administrador que se encargarán de registrar los decoders en el sistema, estos son: install-audio.bat, install-video.bat y install_splitter.bat. Antes de configurar LAV vamos a indicarle al MPC-BE que utilice los subtitulos renderizando en la resolución nativa de nuestro escritorio. best-mplayer-quality-05 Ahora deberemos indicarle al MPC-BE que no utilice sus decoders internos, simplemente basta con desmarcar todos los decoders y filtros internos. best-mplayer-quality-06 Al hacer esto en las 3 ventanas, cuando abramos un video MPC-BE simplemente buscará el decoder apropiado en el sistema y LAV entrará en acción automáticamente.

Configuración Final

Ahora sí, podemos descargar un video de youtube y ver el resultado, para corroborar que todos los filtros hayan sido instalados apropiadamente, deberán tener sonido e imagen. best-mplayer-quality-08 Ahora nos resta terminar de configurar el MPC-BE y madVR para obtener el máximo provecho posible del decoding.

Configuramos la reproducción en Touch Window from Outside para que siempre se respete al máximo tamaño de la pantalla y luego vamos al menu de shaders. best-mplayer-quality-11 Es escencial aplicar un filtro post-resize, para lo cual seleccionamos del menu sharpen complex 2, nos paramos sobre la venana de post-resize y luego clickeamos en Add, esto le permitirá al player aplicar un filtro de sharpen al resultado final de todo el proceso, via Pixel Shaders. Ahora vamos a configurar madVR.  Abrimos un video, lo pausamos y cuando lo tenemos en pausa, simplemente accedemos a la opción Edit madVR Settings que se encuentra clickeando en el icono al lado de la hora de tu windows un simbolo textual que dice MAD, esto permite abrir las opciones de Rendering. best-mplayer-quality-12 Lo primero que vamos a hacer es quitarle el modo de pantalla completa exclusivo, esto se hace en rendering -> general settings. best-mplayer-quality-17 Los efectos de banding pueden resultar molestos en un video, aquí aconsejamos solo aplicar Low y Medium, esto permite remover artefactos del video sin afectar la nitidez. best-mplayer-quality-13       Chroma es la habilidad del renderer de determinar los colores apropiados y su intensidad dentro de una escena como así también controlar los brillos, madVR tiene varias técnicas para realizar el chroma y upscaling, que es lo que nos va a permitir mejorar la calidad de imagen, el proceso requiere la ejecución de un algoritmo para procesar la imagen, a mas complejo el algoritmo, cuanto mas sufrirá nuestro GPU para procesarlo, generalmente Bicubic es el de peor calidad pero el mas rapido y NNEDI3 es el de mejor calidad pero con casi el cuadruple de complejidad y requerimientos de GPU, para el Chroma recomendamos usar Jinc y activar el anti-ringing. best-mplayer-quality-14 Upscaling es el proceso por el cual se eleva la calidad de la imagen (se introducen puntos adicionales) cuando vemos un video en baja resolución, aquí aconsejamos usar Jinc, apropiado para la mayor cantidad de GPUs, solo utilizar NNEDI3 si tu GPU es de gama alta, además de esto debes activar la opción de anti-ringing como está en el ejemplo.  La idea es balancear para obtener el mínimo posible de aliasing, ringing y otros artefactos y aumentar lo mayor posible el sharpness. Lo mismo puedes hacer en image downscaling, aplicando Lanczos, que es un filtro de menor carga, no te aconsejamos meterte con las opciones de image doubling ya que si usas NNEDIS en cualquiera de sus dos variantes, para duplicar Luma o Chroma, tu GPU será una nube de calor y no podrás apreciar diferencias significativas que justifiquen cargarlo de tal manera cuando ves una película o video.  Una configuración aqui de 64 neurons puede tirar abajo incluso una Geforce GTX970, están avisados.

Subtitulos 3D

Si lo que deseas es ver una película 3D pero utilizando los subtitulos comunes que puedes encontrar en cualquier sitio, como SubDivx, simplemente sigue los pasos en la imagen a continuación. stereo3d Esto te permitirá simplemente usar cualquier subtitulo sin tener que convertirlos con ningún programa, de una forma sencilla y rapida.

Resultados

Veamos como luce la imagen final, con el trailer 1080p de San Andreas

Como puedes apreciar, la nitidéz de la imagen en el ejemplo de la derecha habla por si sola.

Conclusión

Se puede obtener una mucho mejor calidad de video que cualquier player tradicional y todo con software libre, a su vez, sacar un mayor provecho de tu hardware y experimentar con diferentes opciones, esto es algo que esperamos que todos los que hayan leido nuestra guía lo hagan. Los invitamos a todos los fanaticos del video a compartir a continuación sus configuraciones, nosotros hemos indicado la mas compatible que brinda la mejor calidad de imagen vs performance, después de semanas de experimentación,  pero siempre es bienvenido escuchar vuestras experiencias,   en caso de querer profundizar en el tema, les dejamos la wiki completa sobre madvr. Espero que hayan disfrutado de esta guía y si les ha sido util, agradecemos mucho compartirla.

  • Rafael de Jesús Albores Moreno

    Solo falto ver el resultado final porque a mi solo me aparece publicidad. Lo que quisiera saber realmente es, ¿Puedo quemar en un dvd, una pelicula con estas configuraciones? sobre todo con upscaling en NNEDI3 y el donwscaling en Lanczos.. e buscado demaciado y esto es lo mejor de lo mejor que e enontrado, pero desafortunadamente no leí nada acerca de convertir a formato DVD. Por cierto uso ConvertXToDVD 6 que con Lanczos y unas cuantos ajustes da excelentes resultados, casi HD en un reproductor DVD convencional con HDMI, y si bien hace poco me resigne que la maxima resolucion posible del un DVD NTSC (NO EN DATOS) es 720 x 480.. pues Lanczos a hecho que esa baja resolucion parezcan 1080 x 720. Y ahora que mis ojos han visto lo que NNEDI3 puede hacer.. realmente oajalá que alguien me responda. ¿Puedo quemar un DVD llamese DVD5 o 9 pero con el shader NNEDI3?

    • La idea es buena, lamentablemente no será posible, verás, primero que nada tenemos que diferenciar algo que es muy importante en esto del video. Tenemos que separar el realtime rendering (via GPU) del offline processing (procesar la imagen para luego convertirla en video.

      Lo que se puede hacer, sin embargo, es utilizar algun plugin especializado que implemente la función de NNEDI3 y te permita exportar luego en un archivo, algo asi como reproducir el video mientras se hace offline rendering a un archivo, pero no he visto ninguna aplicacion que lo haga. La razón es que el procesamiento lo hace el GPU via pixel shaders y compute y esto lo manda directo a la pantalla (realtime) por lo tanto, no podes luego exportar esto a un archivo, solamente sirve para mejorar la calidad en tiempo real de la reproducción.

      El DVD ya tiene su tiempo en el mercado, lo mejor que puedes hacer es un Upscaling y luego un filtro muy pequeño de ruido para filtrar las imperfecciones que puedan quedar, pero no vas a lograr una calidad HD porque es imposible aumentar la fidelidad que no tiene la fuente, si puedes mejorarlo mucho y las pruebas están cuando realizas esta guia paso a paso y ves el resultado, es solo que las diferencias las veras solo cuando reproduces en tiempo real, no tienes forma de expotar todo esto a un archivo y luego quemar un dvd, además, si haces eso volveras a tener la limitacion de 720×480 por lo tanto, ningun proesamiento podrá mejorarte el DVD.

      Piensa que el DVD ha pasado ya por todos los filtros de procesamiento posibles para verse, lo mejor posible en esa resolución, si tu le haces un upscaling para luego tener que renderizarlo offline y exportarlo a formato DVD, en la misma exportacion tendrás luego un downscaling y la calidad te quedará aun peor que el DVD original.

      Esta guia te permite ver los DVDs con mejor calidad pero solo al momento de reproducirlos, nada mas se puede hacer lamentablemente.

      Gracias por leer el articulo y por tu comentario y cualquier duda que tengas, me la haces saber.

  • Nicolás Botta

    Alex querido ! Me acorde de esta guia el otro dia viendo peliculas, y ahora que tengo una computadora decente me propuse a hacer todos estos cambios y ver los resultados jeje Te queria hacer varias consultas, antes que nada mi pc es un i5 2500k y una Sapphire 280x vapor-x
    Lo del pixel shader lo agregue como dice ahi, imagino que se sobreentiende que hay que dejar tildada la opcion de enable post resize para que funcione verdad? Ahi no lo aclara pero imagino por sentido comun nomas jaja
    Cuando configuramos el madVr l chroma upscaling lo podré poner en NNEDI3 como dice ahi que es mejor o lo dejo en el que indica? Esto es unicamente cuando veo un archivo de menos resolucion se activa solo ? Si veo un video 1080p no pasa nada? jaja No termine de entender, de igual forma probe los dos y no note cambios a simple viste asi nomas..
    En donde si note cambios fue en activar o desactivar el post resize pixel shader.. le da como mayor nitides..

    Los lav filters los pusimos pero no se los configuro en ningun momento, hay que dejarlos asi como viene predeterminados? Solo se instalan y chau? Los que yo puse se instalaron los 3 automaticamente, parece ser una version nueva jaja Tuve que bajar todo por separado porque el link del pack no esta funcionando 😛

    Estuve probando en diferentes peliculas, y en videos 1080p de buena calidad si se mejora la imagen, realmente se ve mejor, aunque en videos de no tanta definicion por decirlo de alguna manera como que vuelve a la imagen muy “granulosa” .. sobre todo lo note en capitulos de The Walking Dead que ya de por si son asi y esto es como que empeora un poco la situacion no se si sera normal que eso pase. Salvo en esa serie en gral en las peliculas si se gana mayor definicion, a lo mejor es por el modo de filmar que tiene esa serie que ya escuche q lo hace de esa manera, con ese efecto ..

    Para terminar y perdon por preguntar tantas cosas y mezclar todo jaja Esta configuracion se mantiene igual sea que lo vea con el monitor de la pc o que conecte al tv led ? O hay que cambiar algo?
    Muchas gracias desde ya 😀