[x265] [PATCH] lookahead: fix crash for I frame cost estimation
Deepthi Nandakumar
deepthi at multicorewareinc.com
Thu Sep 19 11:41:36 CEST 2013
Can you try sending this as a fresh patch to the mailing list? Does not
apply cleanly to the parent node.
On Thu, Sep 19, 2013 at 2:46 PM, Deepthi Devaki Akkoorath <
deepthidevaki at multicorewareinc.com> wrote:
> # HG changeset patch
> # User Deepthi Devaki <deepthidevaki at multicorewareinc.com>
> # Date 1379582068 -19800
> # Node ID d52de033d7dde002bbbb55e9d55ece138c33fd61
> # Parent 26d6f155f8df69147f40f4945d99c29a52988c56
> lookahead: fix crash for I frame cost estimation
>
> diff -r 26d6f155f8df -r d52de033d7dd source/encoder/slicetype.cpp
> --- a/source/encoder/slicetype.cpp Wed Sep 18 16:13:33 2013 -0500
> +++ b/source/encoder/slicetype.cpp Thu Sep 19 14:44:28 2013 +0530
> @@ -360,44 +360,46 @@
> mvmax.x = (uint16_t)((widthInCU - cux - 1) * cuSize + 8);
> mvmax.y = (uint16_t)((heightInCU - cuy - 1) * cuSize + 8);
>
> - for (int i = 0; i < 1 + bBidir; i++)
> + if (p0 != p1)
> {
> - if (!bDoSearch[i])
> + for (int i = 0; i < 1 + bBidir; i++)
> {
> - /* Use previously calculated cost */
> + if (!bDoSearch[i])
> + {
> + /* Use previously calculated cost */
> + COPY2_IF_LT(bcost, *fenc_costs[i], listused, i + 1);
> + continue;
> + }
> + int numc = 0;
> + MV mvc[4], mvp;
> + MV *fenc_mv = fenc_mvs[i];
> +
> + /* Reverse-order MV prediction. */
> + mvc[0] = 0;
> + mvc[2] = 0;
> +#define MVC(mv) mvc[numc++] = mv;
> + if (cux < widthInCU - 1)
> + MVC(fenc_mv[1]);
> + if (cuy < heightInCU - 1)
> + {
> + MVC(fenc_mv[widthInCU]);
> + if (cux > 0)
> + MVC(fenc_mv[widthInCU - 1]);
> + if (cux < widthInCU - 1)
> + MVC(fenc_mv[widthInCU + 1]);
> + }
> +#undef MVC
> + if (numc <= 1)
> + mvp = mvc[0];
> + else
> + {
> + x265_median_mv(mvp, mvc[0], mvc[1], mvc[2]);
> + }
> +
> + *fenc_costs[i] = me.motionEstimate(i ? fref1 : fref0, mvmin,
> mvmax, mvp, numc, mvc, merange, *fenc_mvs[i]);
> COPY2_IF_LT(bcost, *fenc_costs[i], listused, i + 1);
> - continue;
> }
> - int numc = 0;
> - MV mvc[4], mvp;
> - MV *fenc_mv = fenc_mvs[i];
> -
> - /* Reverse-order MV prediction. */
> - mvc[0] = 0;
> - mvc[2] = 0;
> -#define MVC(mv) mvc[numc++] = mv;
> - if (cux < widthInCU - 1)
> - MVC(fenc_mv[1]);
> - if (cuy < heightInCU - 1)
> - {
> - MVC(fenc_mv[widthInCU]);
> - if (cux > 0)
> - MVC(fenc_mv[widthInCU - 1]);
> - if (cux < widthInCU - 1)
> - MVC(fenc_mv[widthInCU + 1]);
> - }
> -#undef MVC
> - if (numc <= 1)
> - mvp = mvc[0];
> - else
> - {
> - x265_median_mv(mvp, mvc[0], mvc[1], mvc[2]);
> - }
> -
> - *fenc_costs[i] = me.motionEstimate(i ? fref1 : fref0, mvmin,
> mvmax, mvp, numc, mvc, merange, *fenc_mvs[i]);
> - COPY2_IF_LT(bcost, *fenc_costs[i], listused, i + 1);
> }
> -
> if (!fenc->bIntraCalculated)
> {
> int nLog2SizeMinus2 = g_convertToBit[cuSize]; // partition size
>
>
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20130919/f75c4cd6/attachment.html>
More information about the x265-devel
mailing list