Alerta a navegantes, el sustituto de x264 ya está aquí: x265

Actualizado.
El códec x264 es una implementación de la norma H.264 - MPEG-4 Part10 (AVC, Advanced Video Coding). Se ha popularizado y está implementado por la totalidad de teléfonos inteligentes. Se ha empleado para los contenidos en alta definición debido a su eficiencia en comparación con el anterior MPEG-4 (DivX, XviD) que ya en su día desplazó al MPEG-2 de los DVD. Sin embargo para contenidos de definición normal se continúa usando XviD o alguna de sus variantes. Misterios de la vida (e incompatibilidades de dispositivos también).
Yendo al tema, en enero de este año se normalizó la norma High Efficiency Video Coding, también llamada MPEG-H Part 2 o H.265. Esta norma pretende reemplazar la H.264 para ser empleada en la ultra alta definición (contenidos de 4K y 8K). Como toda norma, tiene sus implementaciones y la primera en ser software libre se llama x265. Hay un sitio web (x265.org) y también una primera publicación de código por parte de una empresa llamada MultiCoreWare.
El sitio web x265 parece pertenecer también a MultiCoreWare y dado el nombre que han elegido para su códec parecen querer apropiarse apoyarse en la marca creada por el programador de x264, persona que de momento no parece estar para nada relacionada con la creación de MultiCoreWare.
Junto al código publicado también hay un PDF y, atención, un .docx (probablemente de Microsoft Office 2010-2013 que todavía no cumple con la norma OOXML de la propia Microsoft y que es bastante incompatible con LibreOffice y OpenOffice.org) con una guía para poder evaluar el «producto». En dicha guía se establece que x265 pretende ser el mejor codificador open source con licencia dual (GPL y privativa -a lo que ellos llaman comercial aunque la GPL también es comercial-).
Como requisitos para ejecutar y/o compilar se establece Windows 7/8 y el paquete redistribuible de bibliotecas Microsoft Visual C++. En cuanto a hardware necesita una CPU con AVX y un mínimo de 8GB de RAM. Me pregunto porqué se necesita AVX cuando este tipo de códecs trabajan con transformadas discretas.

Bueno, está claro que a pesar del nombre, la orientación que lleva no es la misma que x264. Al menos esa es la primera impresión. Supongo que la multiplataforma llegará más adelante con contribuciones de otros y compatibilizando el código con GCC. El aporte actual no es portable.
Aparte de que la página del repositorio de código se ha actualizado con instrucciones para compilar en otros sistemas además de Windows, hice una lectura del Roadmap. En dicho roadmap se pueden encontrar cosas interesantes.  Primero que el proyecto pretende ser compilable con Visual C++9, 10 y 11, con MinGW, con GCC en Linux y con el Intel C++ Compiler.
Se añade soporte para uso de GPU mediante OpenCL o CUDA. Teniendo en cuenta que H.265 es muy similar a H.264 en algunos aspectos, se porta a x265 algunas funciones de x264 como son las funciones que intervienen en la estimación de movimiento futuro y en la exploración anticipada de fotogramas. También se ha portado el CABAC y control de ritmo (bitrate).

De H.265 ya hablé de él en su día, pero quizá convenga recordar algunos puntos. Como norma de compresión que es, su objetivo es utilizar la menor cantidad de bits por fotograma posible, perdiendo la menor cantidad de calidad posible. Otro de sus objetivos es cumplir su primer objetivo con la mejor eficiencia en tiempo posible, vamos, que se ejecute rapidito. Por lo general H.265 promete una reducción del 50% en tamaño para la misma calidad de vídeo, aunque a un coste computacional sensiblemente mayor. Por suerte algunas cosas de las que han cambiado con H.265 es la forma en la que se subdivide un fotograma, pasando de bloques a un quadtree (estructura ideada en 1974) para realizar la división. Con esta estructura se puede conseguir una mejor paralelización del algoritmo, pudiendo obtener más escalabilidad y así mitigar ese aumento en tiempo necesario.
El códec x264 creo recordar que no escalaba por encima de 16 hilos, mientras que el x265 promete poderse dividir mucho más y aprovechar la carga de trabajo entre esos hilos.
Una explicación más detallada de H.265 se puede leer en doom9. H.265 es más una evolución de H.264 que una revolución.
A la otra banda del ring tenemos a Google en su cruzada por masificar WebM y actor muy interesado por su portal YouTube. Tiene ya lista su contrapartida a H.265 como también la tiene para H.264. Se llama VP9. De igual modo que VP8, está libre de problemas de patentes ya que Google no pretende usarlas en contra de nadie. Éste códec recientemente fue integrado en Google Chrome y pronto pasarán a refinarse las herramientas para desarrolladores y optimizar la implementación del mismo, tanto en software como para implementaciones hardware.
Respecto a las patentes, decir que Google sigue litigando con las demandas de las patent troll y a pesar de haber llegado a acuerdos de licencia hay empresas como Nokia que se niegan a firmar dichos acuerdos que además no son del todo perfectos para el licenciatario final (+info).

Comentarios