By Pradeep Ramachandran
Encoder enhancements
- Improved grain handling with
--tune
grain option by throttling VBV operations to limit QP jumps. - Frame threads are now decided based on number of threads specified in the
--pools
, as opposed to the number of hardware threads available. The mapping was also adjusted to improve quality of the encodes with minimal impact to performance. - CSV logging feature (enabled by
--csv
) is now part of the library; it was previously part of the x265 application. Applications that integrate libx265 can now extract frame level statistics for their encodes by exercising this option in the library. - Globals that track min and max CU sizes, number of slices, and other parameters have now been moved into instance-specific variables. Consequently, applications that invoke multiple instances of x265 library are no longer restricted to use the same settings for these parameter options across the multiple instances.
- x265 can now generate a seprate library that exports the HDR10+ parsing API. Other libraries that wish to use this API may do so by linking against this library. Enable ENABLE_HDR10_PLUS in CMake options and build to generate this library.
- SEA motion search receives a 10% performance boost from AVX2 optimization of its kernels.
- The CSV log is now more elaborate with additional fields such as PU statistics, average-min-max luma and chroma values, etc. Refer to documentation of
--csv
for details of all fields. - x86inc.asm cleaned-up for improved instruction handling.
API changes
- New API x265_encoder_ctu_info() introduced to specify suggested partition sizes for various CTUs in a frame. To be used in conjunction with
--ctu-info
to react to the specified partitions appropriately. - Rate-control statistics passed through the x265_picture object for an incoming frame are now used by the encoder.
- Options to scale, reuse, and refine analysis for incoming analysis shared through the x265_analysis_data field in x265_picture for runs that use
--analysis-reuse-mode
load; use options--scale
,--refine-mv
,--refine-inter
, and--refine-intra
to explore. - VBV now has a deterministic mode. Use
--const-vbv
to exercise.
Bug fixes
- Several fixes for HDR10+ parsing code including incompatibility with user-specific SEI, removal of warnings, linking issues in linux, etc.
- SEI messages for HDR10 repeated every keyint when HDR options (
--hdr-opt
,--master-display
) specified.
Tarball can be downloaded from here (md5: 192e54fa3068b594aa44ab2b703f071d).Full documentation is available at http://x265.readthedocs.io/en/stable/
Happy compressing!