¡Por fin!: Decoder MPEG-4 HEVC por GPU, con OpenCL

Pues ya se habian tardado, muchos meses ya de queson oficiales los requerimiento y como trabaja el nuevo formato de video MPEG-4 HEVC [h265], y han salido varios modelos de GPUs pára PC y ninguno sin soporte oficial para h265, mientras que SoCs ARM anunciados recientemente, cuentan con GPUs que si soportan la decodificacion de este formato de video.

Pues bien, esta nota me alegra ya que resulve dos dudas que tenuia a este respecto:
* ¿Para cuando el soporte en los GPUs de PC?, y
* ¿Porque no sacan un filtro decodificador empleando OpenCL DirectCompute, como los hay que usan CUDA?

AMD junto con Strongene sacan un filtro decodificador de MPEG-4 HEVC [h265] empleando OpenCL, el cual puede ser usado por Windos Media o en si cualquier programa de video que pueda emplear los filtros instalados en windows [PotPlayer, KMPlayer, o MPC-HC, por ejemplo].

Requiere de Winjdows 7 como minimo, y aunque hace alusion solo a GPUs de AMD, al ser OpenCL deberia funcionar sobre cualquier GPU intel o nvidia compatible con esta API de OpenCL. El filtro cuenta con su propio splitter para soporte a contenedores de video como MP4, MKV, FLV y TS, aunque si usan FFDShow-TryOuts o FAVFilters pueden omitir su instalacion.

OpenCL HEVC Decoder Installation Guide-1.0 escribió:Installation Guide - OpenCL HEVC Decoder
This document descripts the requirements and step-by-step installation guide for Strongene
OpenCL HEVC decoder. This decoder will enable GPU/OpenCL acceleration based on the
hardware capability. If the OpenCL is enabled, the end user will notice a huge CPU loading saving.
This feature benefits the user experience especially on outdated hardware platform.
1. Supported OpenCL devices
AMD discrete GPU, AMD Radeon HD5000 or above is recommended.
AMD APU, including Desktop APU and laptop APU.
The supported video resolution upper limit differs according to different devices.
2. OS
Windows OS.
For OpenCL support, Windows7 or above and AMD catalyst 13.12 or above driver required.
Please download the driver from http://support.amd.com/zh-cn/download
3. Player
Windows Media Player 32bit
4. Supported video format
Support MP4, flv (Strongene self-owned), mkv and ts. The MP4 and flv splitter has been
included in this release package, for other container, should be supported by 3 party splitter
(like LAV splitter: https://github.com/Nevcairiel/LAVFilters/releases ).
5. Step-by-step instruction
a. Download OpenCL HEVC decoder release package
b. Unzip the package, you can get the folder like below.
c. Click right-key on reg.bat, select “run with the administor”, register all necessary .dll
into the OS.
d. Play back videos with Windows Media Player.
6. NOTES
a. WMP supports MP4. For other container, click right-key on the video files and
choose “open with” WMP to play back.
b. This decoder can’t guarantee the compatibility of these 3 rd party. The compatibility
testing is on-going.


Descarga: http://xhevc.com/en/downloads/downloadCenter.jsp

Tambien intel esta trabajando en su propio HEVC decoder: Intel Haswell HEVC dxva with beta driver

Y otra opcion mas estable y comercial es usara CyberLink PowerDVD 14, al cual tiene tambien un filtro OpenCL para decodificar video HEVC.

Imagen
h265.

A grandes rasgos, ¿mejor calidad menor peso?
o que tiene de mejora?
Sugun parece puede comprimir generalmente en torno a la mitad de "peso" que h264 con un menor bitrate y manteniendo la misma calidad.
Mu rico. A ver si se empiezan a ver vídeos en este formato para ver el peso.
¡Exacto!

Tendras la misma calidad, pero con la mitad de peso de si codificaras en h264. HEVC o h265 esta pensado en el video por internet, o streaming, por ello es que para no saturar el ancho de banda [o hebra de banda] mas comun que hay en los paises [solo algunos paises cuentan con redes publicas de muy alta velocidad], requiere de una alta compresion, pero sin que afecte a la calidad de un video HD o FullHD, tambien para seguir usando la tecnologia actual de los discos BluRay, se podra tener peliculas UltraHD en esos 25GB-50GB de 2 o 3 horas. Si se usara el anterior h264, tendrias una pelicula de mas o menos 1/2 hora o poco menos en UltraHD con buena calidad, o cerca de una hora en UHD pero con una calidad de imagen regular a mala.


Ya hay videos en h265 por la red, son videos de prueba y de material de libre distribucion, aunque conforme se esta madurando el encoder x265 y otros gratuitos, empezara a haber mas RIPs, porque imagina, uno de esos famosos RIPs de HD Ligerosen h265 de 100MB que tendran una calidad de imagen que ahora tenemos en videos de 300 o 400MB.
Hay una ligera actualizacion del decoder HEVC de Strongene, minima pero la hay. Y ojala mas programas decodificadores decidieran crear su codigo para OpenCL y asi no depender si el diseñador del GPU decide o no dar soporte a X o Y formato de video.
TRASTARO escribió:Hay una ligera actualizacion del decoder HEVC de Strongene, minima pero la hay. Y ojala mas programas decodificadores decidieran crear su codigo para OpenCL y asi no depender si el diseñador del GPU decide o no dar soporte a X o Y formato de video.

Impresionante, acabo de comparar tiempos de renderizado con este video usando el Media player classic de 64 Bits y con LAV me da tiempos de renderizado de aproximadamente 40Ms, con Lentoid HEVC Decoder de entre 6-7 Ms.
Estamos hablando de un vídeo a 720p reescalado a 1080p con algunas opciones de mejora de imagen y escalado a traves del renderizador de video Madvr.
Ah caray, una barbaridad de diferencia @Valkyrjur, ¿como esta midiendo el tiempo porque si que es una diferencia abismal?

Ese video test veo que sigue siendo el estandar/blanco de comparacion para evaluacion de rendimiento, pense que ya lo habrian cambiado porque tambien las especificaciones del HEVC han variado desde la salida de ese video.
TRASTARO escribió:Ah caray, una barbaridad de diferencia @Valkyrjur, ¿como esta midiendo el tiempo porque si que es una diferencia abismal?

Ese vídeo test veo que sigue siendo el estándar/blanco de comparación para evaluación de rendimiento, pensé que ya lo habrían cambiado porque también las especificaciones del HEVC han variado desde la salida de ese vídeo.

En el MPC pulsas Ctrl+J cuando se este reproduciendo un vídeo y te saldrán las estadísticas. Abajo del todo de la lista aparecen los tiempos de renderizado de los frames como puedes ver en esta imagen
Imagen

He hecho una serie de pruebas y segun parece el vídeo de test el comportamiento es extraño. He probado una par de videos a 720p, 1080p y 2160p y los tiempos de renderizado de los dos decodificadores son prácticamente los mismos, en algunos gana por pocos ms LAV video (version 64 bits). Lo que si se nota que en el caso de LAV la gráfica trabaja mas, mi amd 280x empieza a subir revoluciones rápidamente cosa que con lentoid no pasa.
El problema viene ahora y no se si es cosa del decoder o no. Los vídeos codificados con una profundidad de 10 bits en h265 lentoid no los reproduce cosa que lav si.
Conclusiones parciales es que lav renderiza un pelin mas rapido pero vamos es casi despreciable la diferencia con respecto al otro. Eso si el uso de la GPU es mas intensivo con LAV que eso quiere decir que gastaras mas energia electrica para reproducir lo mismo, en ese aspecto gana lentoid.
Haré cuando tenga un poco más de tiempo mas pruebas a ver si es cosa del reproductor, del decoder, alguna incompatibilidad con madvr y opciones de este, etc, etc...
Otro organismo que promueve y estudia estas tecnologias del computo heterogeneo

http://lpgpu.org

La cual muestra un trabajo de estudio [articulo] sobre procesamiento de video h264 empleando OpenCL, especificamente un filtro de compensacion de movimiento. Quiza con la llegada de este tipo de organismos y la promocion de las investigaciones y publicaciones de sus experiencias, los desarrolladores tengan mas herramientas para crear decodificadores [y cualquier otro software] que le saque el maximo provecho a los GPUs actuales.

http://ieeexplore.ieee.org/stamp/stamp. ... er=4358651


.
Valkyrjur escribió:Conclusiones parciales es que lav renderiza un pelin mas rapido pero vamos es casi despreciable la diferencia con respecto al otro. Eso si el uso de la GPU es mas intensivo con LAV que eso quiere decir que gastaras mas energia electrica para reproducir lo mismo, en ese aspecto gana lentoid.
Haré cuando tenga un poco más de tiempo mas pruebas a ver si es cosa del reproductor, del decoder, alguna incompatibilidad con madvr y opciones de este, etc, etc...


Pues ahora que esta en controversia los shader de computo asincronos de AMD y como impacta en el rendimiento, pudiera ser que Lentoid este emplenado mas estos shaders de computo asincrono, lo que lleva a una mejor optimizacion de recursos en lo referente al tiempo de ejecucion, mientras que LAVFilters siga usando solo el computo sincrono, donde para poder cubrir alguna instruccion en la decodificacion pues deba de 'acelerar el paso' en la ejecucion del resto de instrucciones [lo que conlleva a usar las frecuencias mas altas].

Lo de los 10bit de color debe ser que Lentoid aun no incorpora la decodificacion al perfil Hi10/High10, por lo que el reproductor usaria decodificacion por software.
Algo de habilitar la decodificacion por hardware de video intel en Kodi/XBMC
http://forum.kodi.tv/showthread.php?tid=215534
Tengo varias pelis y series 1080p comprimidas en 265 HEVC, y con mplayer van de lujo en mi Pentium 4

Eso si, a mismos MB no puedo ver la diferencia con el codec h264, posteen algunos ejemplos, porque en las pelis que tengo no noto nada
¿En que ves las peliculas, en el moniotor o en un televisor y a que resolucion [monitor o televisor]?
¿El H265 no salió más con miras puestas en Internet?. Se supone que facilita de alguna forma el streaming de multimedia en UHD.
Si, el HEVC esta optimizado para aprovechar el bajo ancho de banda de las lineas de muchos paises, por ello que pueda usar un bitrate bajo y aun asi dar una cantidad de detalles [complejidad de la imagen] superior al AVC.
El formato VP9 tambien tiene sus decodificasdores y encoders con OpenCL
http://www.phoronix.com/scan.php?page=n ... P9-Encoder


.
Liegras mejoras con OpenCL en sus ultimas API.
Enn los controladores Crimson 16.7.1 es que quiza en esta version se implementen el soporte DXVA para video en MPEG-4 HEVC [h265] a 10bit de color.

We promised an update today (July 5, 2016) following concerns around the Radeon™ RX 480 drawing excess current from the PCIe bus. Although we are confident that the levels of reported power draws by the Radeon RX 480 do not pose a risk of damage to motherboards or other PC components based on expected usage, we are serious about addressing this topic and allaying outstanding concerns. Towards that end, we assembled a worldwide team this past weekend to investigate and develop a driver update to improve the power draw. We’re pleased to report that this driver—Radeon Software 16.7.1—is now undergoing final testing and will be released to the public in the next 48 hours.

In this driver we’ve implemented a change to address power distribution on the Radeon RX 480 – this change will lower current drawn from the PCIe bus.

Separately, we’ve also included an option to reduce total power with minimal performance impact. Users will find this as the “compatibility” UI toggle in the Global Settings menu of Radeon Settings. This toggle is “off” by default.

Finally, we’ve implemented a collection of performance improvements for the Polaris architecture that yield performance uplifts in popular game titles of up to 3%. These optimizations are designed to improve the performance of the Radeon RX 480, and should substantially offset the performance impact for users who choose to activate the “compatibility” toggle.

AMD is committed to delivering high quality and high performance products, and we’ll continue to provide users with more control over their product’s performance and efficiency. We appreciate all the feedback so far, and we’ll continue to bring further performance and performance/W optimizations to the Radeon RX 480.
Fleiker escribió:Hola, buenos dias,

no se si sera este el lugar adecuado para preguntarlo pero alguien me podria recomendar algun reproductor para que HEVC X265 que funcione bien sobre androidTV Minix Neo X8-H???

Un saludo y gracais de antemano.



Si usa un procesador ARM reciente, este ya trae un circuito decodificador integrado, con lo que el reproductor que tenga instalado debe poder reproducirklo sin problema.
TRASTARO escribió:
Fleiker escribió:Hola, buenos dias,

no se si sera este el lugar adecuado para preguntarlo pero alguien me podria recomendar algun reproductor para que HEVC X265 que funcione bien sobre androidTV Minix Neo X8-H???

Un saludo y gracais de antemano.



Si usa un procesador ARM reciente, este ya trae un circuito decodificador integrado, con lo que el reproductor que tenga instalado debe poder reproducirklo sin problema.


Modelo MINIX NEO X8-H
CPU Amlogic S802 Cortex A9r4 Quad Core
GPU Mali-450MP8
Sistema operativo Android 4.4.2
RAM 2GB DDR3
Nand Flash 16 GB eMMC
WiFi WiFi 802.11, 2.4G / 5G
Bluetooth Si 4.0

Puertos 1x MicroUSB OTG
3x USB 2.0
1x SD
1x HDMI 1.4b
1x Audio óptico
1x Conexión Ethernet
1x Jack auriculares
1x Jack microfono

Otros 1x Led estado
1x Botón encendido
1x Botón recovery

Contenido 1x Mando a distancia IR
1x Cargador 5V 3A
1x Cable OTG
1x Cable HDMI
1x Cable microUSB / USB
1x Antena Wifi dual
Fleiker escribió:GPU Mali-450MP8


Ese mali 450 ya tiene rato en el mercado, asi que solo tendra decodificacion hasta el h264.


.
22 respuestas