[x265] multi-rate feature

Tom Vaughan tom.vaughan at multicorewareinc.com
Thu Aug 25 20:09:16 CEST 2016


Hi Damian,

We have a team that is also working on improving analysis save/load/refine,
for a variety of interesting applications (not just multi-bitrate
encoding).  We would be interested in evaluating your contributions for
possible inclusion in x265, but we would first need you to sign our Contributor
License Agreement
<https://bitbucket.org/multicoreware/x265/downloads/x265ContributorAgreement.pdf>
.



If you would like to collaborate directly with our team, we would be happy
to arrange a phone call to discuss.



Best regards,

Tom



-- 

Tom Vaughan | VP and GM, Video | MulticoreWare, Inc.

12930 Saratoga Avenue, Suite B1, Saratoga, CA 95070 USA







*From:* x265-devel [mailto:x265-devel-bounces at videolan.org] *On Behalf
Of *Schroeder,
Damien
*Sent:* Wednesday, August 10, 2016 6:13 AM
*To:* x265-devel at videolan.org
*Subject:* [x265] multi-rate feature



Hello,



I recently implemented a „multi-rate“ feature for x265 based on the latest
x265 version. The target application is adaptive HTTP streaming, where you
need the same video encoded at different representations. Basically, if you
need to encode the same video at different bitrates (different qualities),
the multi-rate method allows you to pass some analysis info from a
high-quality reference encoding to lower quality dependent encodings, which
is then used to constrain the RDO (and thus, this leads to a speed-up).



This is similar to the analysis-mode option already existing in x265.
However, this analysis-mode option is not targeted at encodings at
different qualities (the rate-distortion performance is degraded if you use
this option across different qualities).



I put my code on github for the moment:
https://github.com/damjeux/multi-rate-x265



When mr-mode is 1, the CU structure of each CTU is stored in an external
file called analysisData.bin

When mr-mode is 2, analysisData.bin is loaded and the loaded CU structure
is used to constrain the RDO by stopping the recursion in the different
compressInterCU and compressIntraCU functions in analysis.cpp



I have posted some results in a blog post:
https://damienschroeder.wordpress.com/2016/08/10/multi-rate-hevc-with-x265-for-adaptive-http-streaming/



The implemented method performs better for high rd-levels (--rd 5 and 6),
because the compressInterCU_rd0_4() function already constrains the CTU
quadtree by using a minDepth.



For example, with --rd 6, I get an average reduction in encoding time of
 10% with no rate-distortion performance decrease (BD-rate -0.002%) in the
case where I encode four representations with fixed QP 22, 27, 32, and 37.



With crf 22, 27, 32, and 37, I get an average encoding time reduction of
19% and the rate-distortion performance is slightly degraded (BD-rate 0.9%).



Not sure if there is interest to include such a feature in the official
x265, but I thought I should mention this.



Best regards,

Damien Schroeder





*Dipl.-Ing. Damien Schroeder*

*Technische Universität München*

*Lehrstuhl für Medientechnik*

*Chair of Media Technology*

*Arcisstr. 21, 80333 München*

*Building 9, Room 1934*

*Phone:**     +49 89 289 23507*

*Fax:**         +49 89 289 23523*

*Email:**     damien.schroeder at tum.de <damien.schroeder at tum.de>*

*Web:      www.lmt.ei.tum.de <http://www.lmt.ei.tum.de/>*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20160825/44e1a9e4/attachment.html>


More information about the x265-devel mailing list