# X264

x264 es una biblioteca libre para codificar flujos de video H.264/MPEG-4 AVC. El código está escrito desde cero por Loren Merritt, Jason Garrett-Glaser, Laurent Aimar, Eric Petit, Min Chen, Justin Clay, Måns Rullgård, Radek Czyz, Alex Izvorski, Alex Wright y Christian Heine. Fue liberado bajo la licencia pública GPL, pero esta licencia puede ser incompatible con las licencias de patentes de MPEG-LA en las jurisdicciones que reconocen patentes de software.
x264 está disponible como un Codificador de video del tipo Video for Windows y también como una interfaz de línea de comandos. Esta última siempre está al día, mientras que la versión "Video For Windows", ha sido cesada a partir de la r532, y requiere hacks para manejar los B frames, (una limitación del formato AVI fuerza el uso de packed bitstream). Se han hecho muchas interfaces gráficas de la versión de línea de comandos, incluyendo MeGUI, AutoAC y una GUI.NET (1.1) basada en x264CLI.
x264 ha formado una comunidad notable de usuarios, sobre todo en Doom9 Archivado el 16 de diciembre de 2006 en Wayback Machine., donde tienen lugar las discusiones para hacer mejoras al desarrollo.

## Capacidades

A la fecha de abril de 2008, es uno de los codificadores AVC liberados al público más avanzados. También es uno de los pocos de tipo "High Profile AVC" que se han puesto a disposición del público. Soporta:
* "Context-based Adaptive Binary Arithmetic Coding" (CABAC), y "Context-based Adaptive Variable Length Coding" (CAVLC)
* "Multiple reference frames"
* "All intra-predicted macroblock types" (16x16, 8x8 y 4x4 -- 8x8 es parte de AVC High Profile)
* "All P-frame inter-predicted macroblock types"
* "B-Inter-predicted macroblock types from 16x16 down to 8x8"
* "Rate Distortion Optimization"
* "Multiple ratecontrol modes: constant quantizer, constant quality, single or multipass ABR with the option of VBV"
* Detección de cambios de escena
* "Adaptive B-frame placement, with the option of keeping B-frames as references / arbitrary frame order" (orden adaptativo de fotogramas B, con la opción para tenerlas de referencia o de forma arbitraria)
* "8x8 and 4x4 adaptive spatial transform" (trasformación espacial adaptativa de 4x4 y 8x8) en el High Profile (modo high).
* "Lossless mode" (modo sin pérdida de calidad) del tipo "High 4:4:4 Profile"
* Custom quantization matrices (High Profile)
* "Parallel encoding of multiple slices" (compresión paralela de múltiples trozos)
* "Adaptive quantization", una nueva característica que permite utilizar diferentes valores de cuantización para diferentes partes del cuadro. Esto permite una asignación más efectiva de bits en áreas más complejas reduciendo los efectos de compresión.
De momento las versiones base del códec no son compatibles con los estándares Bluray/HD DVD debido a la falta de ciertos metadatos necesarios (Telecine, Sequence End Code information, etc.), aunque hay varias personas que han creado sus propias compilaciones / parches con las modificaciones necesarias para lograr la compatibilidad, al 1 de diciembre ya existen parches en proceso de oficialización que permitirían crear contenidos adecuados para Blu-ray.
Otras funciones importantes en la que los autores están ya trabajando son modelos de codificación optimizados para retener grano, ya que muchas veces éste es eliminado por x264 creando una imagen plana y con pocos detalles, Dark Shikari es el programador encargado del tema, decidiendo utilizar el modelo "Psy RDO" utiliza el hecho de que el ojo humano no sólo quiere una imagen similar, sino también una imagen con complejidad similar, por lo que preferimos ver una imagen detallada aunque esté ligeramente distorsionada que una imagen plana sin detalle alguno. En corto, más que retener el ruido original crea uno "similar" por lo menos para nuestros ojos.

## Comparación con otros codecs

x264 ha ganado premios en las siguientes comparaciones de codecs:
* "Doom9's 2005 codec shoot-out"
* "Second annual MSU MPEG-4 AVC/ H.264 codecs comparison"
* "MSU Subjective Comparison of Modern Video Codecs"

## Proyectos que usan x264

* ARx264: Proyecto creado para utilizar x264 (cli). En castellano
* Avidemux
* ffdshow
* FFmpeg
* Gordian Knot
* Handbrake
* MeGUI
* MEncoder
* MediaCoder
* pspVideo9
* RealAnime
* StaxRip
* TCVP
* VLC Media Player
* MPlayer
* VirtualDub
* Connecta 2000: software de videoconferencia peer-to-peer