This is the version history page for x265, showing the last 20 software updates. You can return to the main page for this software by clicking here.
- Version 3.2 (Sep 27, 2019)
- Version 3.1 (Jun 19, 2019)
- Version 3.0 (Jan 28, 2019)
- Version 2.9 (Oct 8, 2018)
- Version 2.8+40 Nightly (Jul 8, 2018)
- Version 2.8+26 Nightly (Jul 6, 2018)
- Version 2.8+25 Nightly (Jul 4, 2018)
- Version 2.8 (May 22, 2018)
- Version 2.7+351 Nightly (May 19, 2018)
- Version 2.7 (Feb 22, 2018)
- Version 2.6 (Nov 30, 2017)
- Version 2.5 (Jul 14, 2017)
- Version 2.4+98 Nightly (Jul 8, 2017)
- Version 2.4+97 Nightly (Jul 7, 2017)
- Version 2.4+96 Nightly (Jul 1, 2017)
- Version 2.4+90 Nightly (Jun 30, 2017)
- Version 2.4+89 Nightly (Jun 29, 2017)
- Version 2.4+87 Nightly (Jun 24, 2017)
- Version 2.4+74 Nightly (Jun 22, 2017)
- Version 2.4+73 Nightly (Jun 20, 2017)
- Release Date: Sep 27, 2019
- 3-level hierarchical motion estimation using --hme and --hme-search.
- New AQ mode (--aq-mode 4) with variance and edge information.
- selective-sao to selectively enable SAO at slice level.
- Enhancements to existing features
- New implementation of --refine-mv with 3 refinement levels.
- Encoder enhancements
- Improved quality in the frames following dark scenes in ABR mode.
- API changes
- Additions to x265_param structure to support the newly added features --hme, --hme-search and selective-sao.
- Fixed encoder crash with --zonefile during failures in encoder_open().
- Fixed JSON11 build errors with HDR10+ on MacOS high sierra.
- Signalling out of range scaling list data fixed.
- Inconsistent output fix for 2-pass rate-control with cutree ON.
- Build dependency on changeset cf37911 of SVT-HEVC.
- Release Date: Jun 19, 2019
- x265 can invoke SVT-HEVC library for encoding through --svt.
- x265 can now accept interlaced inputs directly (no need to separate fields), and sends it to the encoder with proper fps and frame-size through --field.
- --fades can detect and handle fade-in regions. This option will force I-slice and initialize RC history for the brightest frame after fade-in.
- A new flag to signal MasterDisplayParams and maxCll/Fall separately
- Encoder enhancements
- Improved the performance of inter-refine level 1 by skipping the evaluation of smaller CUs when the current block is decided as “skip” by the save mode.
- New AVX2 primitives to improve the performance of encodes that enable --ssim-rd.
- Improved performance in medium preset with negligible loss in quality.
- Bug fixes for zones.
- Fixed wrap-around from MV structure overflow occurred around 8K pixels or over.
- Fixed issues in configuring cbQpOffset and crQpOffset for 444 input
- Fixed cutree offset computation in 2nd pass encodes.
- Known issues
- AVX512 main12 asm disabling.
- Inconsistent output with 2-pass due to cutree offset sharing.
- Release Date: Jan 28, 2019
- option:: ‘–dolby-vision-profile <integer|float>’ generates bitstreams confirming to the specified Dolby Vision profile. Currently profile 5, profile 8.1 and profile 8.2 enabled, Default 0 (disabled)
- option:: ‘–dolby-vision-rpu’ File containing Dolby Vision RPU metadata. If given, x265’s Dolby Vision metadata parser will fill the RPU field of input pictures with the metadata
- read from the file. The library will interleave access units with RPUs in the bitstream. Default NULL (disabled).
- option:: ‘–zonefile <filename>’ specifies a text file which contains the boundaries of the zones where each of zones are configurable.
- option:: ‘–qp-adaptation-range’ Delta-QP range by QP adaptation based on a psycho-visual model. Default 1.0.
- option:: ‘–refine-ctu-distortion <0/1>’ store/normalize ctu distortion in analysis-save/load. Default 0.
- Experimental feature option:: ‘–hevc-aq’ enables adaptive quantization
- It scales the quantization step size according to the spatial activity of one coding unit relative to frame average spatial activity. This AQ method utilizes the minimum variance of sub-unit in each coding unit to represent the coding unit’s spatial complexity.
- Preset: change param defaults for veryslow and slower preset. Replace slower preset with defaults used in veryslow preset and change param defaults in veryslow preset as per experimental results.
- AQ: change default AQ mode to auto-variance
- Cutree offset reuse: restricted to analysis reuse-level 10 for analysis-save -> analysis-load
- Tune: introduce –tune animation option which improves encode quality for animated content
- Reuse CU depth for B frame and allow I, P frame to follow x265 depth decision
- RC: fix rowStat computation in const-vbv
- Dynamic-refine: fix memory reset size.
- Fix Issue #442: linking issue on non x86 platform
- Encoder: Do not include CLL SEI message if empty
- Fix issue #441 build error in VMAF lib
Version 2.8+40 Nightly
- Release Date: Oct 8, 2018
Support for chunked encoding
:option:`--chunk-start and --chunk-end` Frames preceding first frame of chunk in display order will be encoded, however, they will be discarded in the bitstream. Frames following last frame of the chunk in display order will be used in taking lookahead decisions, but, they will not be encoded. This feature can be enabled only in closed GOP structures. Default disabled.
Support for HDR10+ version 1 SEI messages.
Create API function for allocating and freeing x265_analysis_data.
CEA 608/708 support: Read SEI messages from text file and encode it using userSEI message.
Disable noise reduction when vbv is enabled.
Support minLuma and maxLuma values changed by the commandline.
Version 2.8+26 Nightly
- Release Date: Jul 8, 2018
Version 2.8+25 Nightly
- Release Date: Jul 6, 2018
- Release Date: Jul 4, 2018
Version 2.7+351 Nightly
- Release Date: May 22, 2018
Release date - 21/05/2018
--asm avx512 used to enable AVX-512 in x265. Default disabled.
For 4K main10 high-quality encoding, we are seeing good gains; for other resolutions and presets, we don’t recommend using this setting for now.
--dynamic-refine dynamically switches between different inter refine levels. Default disabled.
It is recommended to use :option:`–refine-intra 4’ with dynamic refinement for a better trade-off between encode efficiency and performance than using static refinement.
Encode SEI messages in a single NAL unit instead of multiple NAL units. Default disabled.
--max-ausize-factor controls the maximum AU size defined in HEVC specification.
It represents the percentage of maximum AU size used. Default is 1.
VMAF (Video Multi-Method Assessment Fusion) Added VMAF support for objective quality measurement of a video sequence. Enable cmake option ENABLE_LIBVMAF to report per frame and aggregate VMAF score. The frame level VMAF score does not include temporal scores. This is supported only on linux for now.
Introduced refine-intra level 4 to improve quality.
Support for HLG-graded content and pic_struct in SEI message.
Fix 32 bit build error (using CMAKE GUI) in Linux.
Fix 32 bit build error for asm primitives.
Fix build error on mac OS.
Fix VBV Lookahead in analysis load to achieve target bitrate.
- Release Date: May 19, 2018
- Release Date: Feb 22, 2018
- :option:`--gop-lookahead` can be used to extend the gop boundary(set by --keyint). The GOP will be extended, if a scene-cut frame is found within this many number of frames.
- Support for RADL pictures added in x265. :option:`--radl` can be used to decide number of RADL pictures preceding the IDR picture.
- Encoder enhancements
- Moved from YASM to NASM assembler. Supports NASM assembler version 2.13 and greater.
- Enable analysis save and load in a single run. Introduces two new cli options --analysis-save <filename> and --analysis-load <filename>.
- Comply to HDR10+ LLC specification.
- Reduced x265 build time by more than 50% by re-factoring ipfilter.asm.
- Fixed inconsistent output issue in deblock filter and --const-vbv.
- Fixed Mac OS build warnings.
- Fixed inconsistency in pass-2 when weightp and cutree are enabled.
- Fixed deadlock issue due to dropping of BREF frames, while forcing slice types through qp file.
- Release Date: Nov 30, 2017
- x265 can now refine analysis from a previous HEVC encode (using options --refine-inter, and --refine-intra), or a previous AVC encode (using option --refine-mv-type). The previous encode’s information can be packaged using the x265_analysis_data_t data field available in the x265_picture object.
- Basic support for segmented (or chunked) encoding added with --vbv-end that can specify the status of CPB at the end of a segment. String this together with --vbv-init to encode a title as chunks while maintaining VBV compliance!
- --force-flush can be used to trigger a premature flush of the encoder. This option is beneficial when input is known to be bursty, and may be at a rate slower than the encoder.
- Experimental feature --lowpass-dct that uses truncated DCT for transformation.
- Slice-parallel mode gets a significant boost in performance, particularly in low-latency mode.
- x265 now officially supported on VS2017.
- x265 now supports all depths from mono0 to mono16 for Y4M format.
- Options that modified PPS dynamically (--opt-qp-pps and --opt-ref-list-length-pps) are now disabled by default to enable users to save bits by not sending headers. If these options are enabled, headers have to be repeated for every GOP.
- Rate-control and analysis parameters can dynamically be reconfigured simultaneously via the x265_encoder_reconfig API.
- New API functions to extract intermediate information such as slice-type, scenecut information, reference frames, etc. are now available. This information may be beneficial to integrating applications that are attempting to perform content-adaptive encoding. Refer to documentation on x265_get_slicetype_poc_and_scenecut, and x265_get_ref_frame_list for more details and suggested usage.
- A new API to pass supplemental CTU information to x265 to influence analysis decisions has been added. Refer to documentation on x265_encoder_ctu_info for more details.
- Bug fixes when --slices is used with VBV settings.
- Minor memory leak fixed for HDR10+ builds, and default x265 when pools option is specified.
- HDR10+ bug fix to remove dependence on poc counter to select meta-data information.
Version 2.4+98 Nightly
- Release Date: Jul 14, 2017
- 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.
- 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.
- 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.
Version 2.4+97 Nightly
- Release Date: Jul 8, 2017
Version 2.4+96 Nightly
- Release Date: Jul 7, 2017
Version 2.4+90 Nightly
- Release Date: Jul 1, 2017
Version 2.4+89 Nightly
- Release Date: Jun 30, 2017
Version 2.4+87 Nightly
- Release Date: Jun 29, 2017
Version 2.4+74 Nightly
- Release Date: Jun 24, 2017
Version 2.4+73 Nightly
- Release Date: Jun 22, 2017
- Release Date: Jun 20, 2017