x265 version 2.8 with cool new features including AVX512 accelerating, dynamic refinement (that enables optimized encoding for ABR streaming), support for measuring VMAF has been released! More details in our release notes at http://x265.readthedocs.io/en/stable/releasenotes.html#version-2-8
By Ashok Kumar Mishra
x265 version 2.7 is now out! The key new improvements include support for RADL pictures, moving from YASM to NASM assembler and reduced x265 build time by more than 50%.
The tarball of this release can be downloaded from here. The latest release notes are available here.
By Pradeep Ramachandran
- Improved grain handling with
--tunegrain 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
--csvfor 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-infoto 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-modeload; use options
- VBV now has a deterministic mode. Use
By Pradeep Ramachandran
- HDR10+ supported. Dynamic metadata may be either supplied as a bitstream via the userSEI field of x265_picture, or as a json jile that can be parsed by x265 and inserted into the bitstream; use
--dhdr10-infoto specify json file name, and
--dhdr10-optto enable optimization of inserting tone-map information only at IDR frames, or when the tone map information changes.
- Lambda tables for 8, 10, and 12-bit encoding revised, resulting in significant enhancement to subjective visual quality.
- Enhanced HDR10 encoding with HDR-specific QP optimzations for chroma, and luma planes of WCG content enabled; use
- Ability to accept analysis information from other previous encodes (that may or may not be x265), and selectively reuse and refine analysis for encoding subsequent passes enabled with the
- Slow and veryslow presets receive a 20% speed boost at iso-quality by enabling the
- The bitrate target for x265 can now be dynamically reconfigured via the reconfigure API.
- Performance optimized SAO algorithm introduced via the
--limit-saooption; seeing 10% speed benefits at faster presets.
- x265_reconfigure API now also accepts rate-control parameters for dynamic reconfiguration.
- Several additions to data fields in x265_analysis to support
--refine-level: see x265.h for more details.
- Avoid negative offsets in x265 lambda2 table with SAO enabled.
- Fix mingw32 build error.
- Seek now enabled for pipe input, in addition to file-based input
- Fix issue of statically linking core-utils not working in linux.
- Fix visual artifacts with
- Fix bufferFill stats reported in csv.
By Pradeep Ramachandran
Release date – 15th February, 2017.
- New SSIM-based RD-cost computation for improved visual quality, and efficiency; use
- Multi-pass encoding can now share analysis information from prior passes (in addition to rate-control information) to improve performance and quality of subsequent passes; to your multi-pass command-lines that use the
--multi-pass-opt-distortionto share distortion information, and
--multi-pass-opt-analysisto share other analysis information.
- A dedicated thread pool for lookahead can now be specified with
- option:–dynamic-rd dynamically increase analysis in areas where the bitrate is being capped by VBV; works for both CRF and ABR encodes with VBV settings.
- The number of bits used to signal the delta-QP can be optimized with the
--opt-cu-delta-qpoption; found to be useful in some scenarios for lower bitrate targets.
- Experimental feature option:–aq-motion adds new QP offsets based on relative motion of a block with respect to the movement of the frame.
- Reconfigure API now supports signalling new scaling lists.
- x265 application’s csv functionality now reports time (in milliseconds) taken to encode each frame.
--strict-cbrenables stricter bitrate adherence by adding filler bits when achieved bitrate is lower than the target; earlier, it was only reacting when the achieved rate was higher.
--hdrcan be used to ensure that max-cll and max-fall values are always signaled (even if 0,0).
- Fixed incorrect HW thread counting on MacOS platform.
- Fixed scaling lists support for 4:4:4 videos.
- Inconsistent output fix for
--opt-qp-pssby removing last slice’s QP from cost calculation.
- VTune profiling (enabled using ENABLE_VTUNE CMake option) now also works with 2017 VTune builds.
By Pradeep Ramachandran
Release date – 26th December, 2016.
- Enhancements to TU selection algorithm with early-outs for improved speed; use
- New motion search method SEA (Successive Elimination Algorithm) supported now as :option: –me 4
- Bit-stream optimizations to improve fields in PPS and SPS for bit-rate savings through
- Enabled using VBV constraints when encoding without WPP.
- All param options dumped in SEI packet in bitstream when info selected.
- x265 now supports POWERPC-based systems. Several key functions also have optimized ALTIVEC kernels.
- Options to disable SEI and optional-VUI messages from bitstream made more descriptive.
- New option
--scenecut-biasto enable controlling bias to mark scene-cuts via cli.
- Support mono and mono16 color spaces for y4m input.
--min-cu-sizeof 64 no-longer supported for reasons of visual quality (was crashing earlier anyways.)
- API for CSV now expects version string for better integration of x265 into other applications.
- Several fixes to slice-based encoding.
--log2-max-poc-lsb‘s range limited according to HEVC spec.
- Restrict MVs to within legal boundaries when encoding.