Clone wiki

x265 / Mission

x265 Mission Statement

The goal of x265 is to become the best open source H.265/HEVC encoder,with the highest compression efficiency at the highest performance,while also allowing commercial use via a dual GPL and commercial license. In a nutshell, we would like to reproduce x264's successful development model for HEVC.

Initial development has been commercially funded in order to get the project boot-strapped and generally useful in much shorter time than it normally takes for an open sourced video encoder.

This means both identifying open source developers who are already working on HEVC codecs in their spare time and paying them to work on it full time, as well as funding a team of optimization experts (MulticoreWare) to build a codec framework that will scale well to many-core PCs and servers, graphics processors, and mobile devices.

The x265 project is being funded by commercial companies who are investing in the start up cost in return for a commercial license and the ability to direct the development requirements. Commercial licensees receive the same software as the general public, but they are able to integrate x265 into their products without having to release their entire product as GPL. See commercial [license]. Commercial licensees are required to contribute back all changes that they make to x265 source files (including changes to files with BSD license headers). They are also responsible for separately acquiring licenses for any HEVC related patents.

The x265 project has licensed the rights to utilize and modify x264 source code in x265. While x265 will not be directly based on x264 source code, our intent is to borrow heavily from x264 those features that apply to HEVC. This includes adaptive quantization, lookahead, and rate control strategies.

x265 supports both Visual Studio and GCC as dual first-class compiler targets. Intel compilers can mimic those two compilers, and will also be supported on Windows and Linux. All SIMD and assembly language optimizations will work with both compilers. x265 will be written in C++, and CMake will be used to generate Makefiles and solution files. We will write vector/intrinsic versions of all assembly optimized core routines, to both ease porting to new platforms and to ease developer adoption. We want x265 to be the first encoder a student chooses to work on.

In order to have a functioning encoder as soon as possible, we decided to base x265 on the JCT-VC HM reference encoder and to simultaneously remove cruft as we optimize and improve the performance. Over time, all of the HM source files are being replaced with more streamlined (and unambiguously GPL) sources. The HM has served as a helpful scaffold to build from.