[x265] [PATCH 2 of 2] rc: change the predictors update algorithm
Deepthi Nandakumar
deepthi at multicorewareinc.com
Tue Nov 17 11:19:17 CET 2015
Hmm, queued. But interesting that these 2 patches do not change outputs.
On Thu, Nov 12, 2015 at 2:45 PM, <aarthi at multicorewareinc.com> wrote:
> # HG changeset patch
> # User Aarthi Thirumalai
> # Date 1447240285 -19800
> # Wed Nov 11 16:41:25 2015 +0530
> # Node ID 44c08c1f5d3c88cf9cb3dd85cd9e2c4904cebb16
> # Parent ca5137a54613304a6351a31c022806686898a52a
> rc: change the predictors update algorithm
>
> diff -r ca5137a54613 -r 44c08c1f5d3c source/encoder/ratecontrol.cpp
> --- a/source/encoder/ratecontrol.cpp Wed Nov 11 16:24:10 2015 +0530
> +++ b/source/encoder/ratecontrol.cpp Wed Nov 11 16:41:25 2015 +0530
> @@ -928,16 +928,20 @@
> /* Frame Predictors used in vbv */
> for (int i = 0; i < 4; i++)
> {
> + m_pred[i].coeffMin = 1.0 / 4;
> m_pred[i].coeff = 1.0;
> m_pred[i].count = 1.0;
> m_pred[i].decay = 0.5;
> m_pred[i].offset = 0.0;
> }
> m_pred[0].coeff = m_pred[3].coeff = 0.75;
> + m_pred[0].coeffMin = m_pred[3].coeffMin = 0.75 / 4;
> if (m_param->rc.qCompress >= 0.8) // when tuned for grain
> {
> + m_pred[1].coeffMin = 0.75 / 4;
> m_pred[1].coeff = 0.75;
> - m_pred[0].coeff = m_pred[3].coeff = 0.50;
> + m_pred[0].coeff = m_pred[3].coeff = 0.5;
> + m_pred[0].coeffMin = m_pred[3].coeffMin = 0.5 / 4;
> }
> }
>
> @@ -997,6 +1001,7 @@
> {
> for (int j = 0; j < 2; j++)
> {
> + rce->rowPreds[i][j].coeffMin = 0.25 / 4;
> rce->rowPreds[i][j].coeff = 0.25;
> rce->rowPreds[i][j].count = 1.0;
> rce->rowPreds[i][j].decay = 0.5;
> @@ -2149,7 +2154,8 @@
> return;
> const double range = 2;
> double old_coeff = p->coeff / p->count;
> - double new_coeff = bits * q / var;
> + double old_offset = p->offset / p->count;
> + double new_coeff = X265_MAX((bits * q - old_offset) / var,
> p->coeffMin );
> double new_coeff_clipped = x265_clip3(old_coeff / range, old_coeff *
> range, new_coeff);
> double new_offset = bits * q - new_coeff_clipped * var;
> if (new_offset >= 0)
> diff -r ca5137a54613 -r 44c08c1f5d3c source/encoder/ratecontrol.h
> --- a/source/encoder/ratecontrol.h Wed Nov 11 16:24:10 2015 +0530
> +++ b/source/encoder/ratecontrol.h Wed Nov 11 16:41:25 2015 +0530
> @@ -48,6 +48,7 @@
>
> struct Predictor
> {
> + double coeffMin;
> double coeff;
> double count;
> double decay;
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
--
Deepthi Nandakumar
Engineering Manager, x265
Multicoreware, Inc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20151117/f8f6b630/attachment.html>
More information about the x265-devel
mailing list