<div dir="ltr"><div>Hello,</div><div><br></div><div>I've made a tag on the stable branch for 0.4.1. This email describes the state of the encoder at that tag.<br></div><div><br></div><div>x265 can be compiled and run on Linux, Mac OS X, and Windows. Its cmake based build system supports MSVC 9-11, Xcode, gcc+gmake, MinGW/MSYS, and Intel C++ (both icl and icpc)<br>
</div><div><br></div><div><div>x265 currently generates HM11 compliant bitstreams.</div></div><div><br></div><div>= New features since 0.3 =</div><div><br></div><div>1. Frame parallelism</div><div><br></div><div> * The GOP level parallelism and mini-gop cadence of the 0.3 release</div>
<div> were removed and replaced with fine-grained frame level parallelism.</div><div> * The memory requirements were drastically reduced, x265 no longer</div><div> caches subpel planes per reference frame</div><div>
* Latency is drastically reduced, WPP + 5 frame threads is enough to</div><div> saturate a dual socket 8 core Xeon.</div><div><br></div><div>2. New simple average bitrate (ABR) rate control</div><div><br></div><div> * converges on target bitrate via frame level QP adjustments</div>
<div> * algorithm was adapted from x264 for HEVC</div><div> * safe for use in combination with frame parallelsim (new since 0.4)</div><div><br></div><div>3. New Lookahead</div><div><br></div><div> * three complexity levels of slice decision with scene cut and flash detection</div>
<div> * algorithm was adapted from x264 for HEVC</div><div> * still missing bidir cost estimates, multiple refs, weightp, and MBtree</div><div><br></div><div><br></div><div>= Disabled Features since 0.3 =</div><div><br>
</div><div> * weightp and weighted bidir prediction are both disabled; they were</div><div> broken when we stopped pre-generating reference (subpel) pixels</div><div> * GOP parallelism is dead, hopefully to never return to the core</div>
<div> library. It could be added above x265 if necessary.</div><div> * many CLI options were added, removed, or renamed since 0.3. Consult</div><div> the online help for the current set of options.</div><div><br>
</div><div><br></div><div>= Known Bugs =</div><div><br></div><div> * all intra encodes (--keyint 1) require --b-adapt 0 to avoid</div><div> a lookahead bug</div><div> * --no-sao-lcu-bounds cannot be used in conjunction with frame</div>
<div> parallelism. The encoder will use incomplete reference pixels</div><div> with predictable bad effects.</div><div> * we have a report that our DPB signalling is potentially incorrect</div><div> for decoders which respect max DPB size. This is under investigation.</div>
<div><br></div><div>ABR and lookahead are very new and we will not be surprised to find bugs in those features. Please report any bugs you find to this mailing list.</div><div><br></div><div><br></div><div>= Performance Characteristics =</div>
<div><br></div><div>See <a href="https://bitbucket.org/multicoreware/x265/wiki/Performance">https://bitbucket.org/multicoreware/x265/wiki/Performance</a></div><div><br></div><div><br></div><div>= Upcoming features =</div>
<div><br></div><div>We are trying to make the encoder deterministic with -Fn for all values of n greater than 1. In other words, there will always be a slight benefit to having only one frame thread (unlimited motion search to reference frames) but -F2 and -F10 should output the exact same bitstream with CQP rate control. This is considered a debugging feature to validate our frame parallelism.</div>
<div><br></div><div>We are also planning to swap out the HM's bidir search with logic adapted from x264 (for performance reasons) and to add estimation logic for this new bidir search to the lookahead (to improve lookahead accuracy).</div>
<div><br></div><div>We plan to repair the weighted prediction features and re-enable its command line options.</div><div><br></div><div>Lastly, the lookahead will use wave-front scheduling of the lowres CUs using the existing thread pool. This should lesson the bottlenecking effects of --b-adapt 2.</div>
<div><br></div>-- <br>Steve Borho
</div>