[x265] [PATCH] consider skip cost in lookahead cost estimation
Sagar Kotecha
sagar at multicorewareinc.com
Fri Nov 6 07:20:53 CET 2015
On Fri, Nov 6, 2015 at 11:46 AM, Deepthi Nandakumar <
deepthi at multicorewareinc.com> wrote:
> This patch got pushed accidentally, I think we still need some work here.
>
> On Fri, Nov 6, 2015 at 10:15 AM, <sagar at multicorewareinc.com> wrote:
>
>> # HG changeset patch
>> # User sagar at multicorewareinc.com
>> # Date 1446785051 -19800
>> # Fri Nov 06 10:14:11 2015 +0530
>> # Node ID 4013786f7013c20b073cbd58ff02b64af8f4f15f
>> # Parent 39c35f175c8c515860ae4ea8ec75e15bc115d530
>> consider skip cost in lookahead cost estimation
>>
>> diff -r 39c35f175c8c -r 4013786f7013 source/encoder/slicetype.cpp
>> --- a/source/encoder/slicetype.cpp Thu Nov 05 16:01:25 2015 +0530
>> +++ b/source/encoder/slicetype.cpp Fri Nov 06 10:14:11 2015 +0530
>> @@ -2088,6 +2088,7 @@
>> for (int i = 0; i < 1 + bBidir; i++)
>> {
>> int& fencCost = fenc->lowresMvCosts[i][listDist[i]][cuXY];
>> + int skipCost = INT_MAX;
>>
>> if (!bDoSearch[i])
>> {
>> @@ -2129,6 +2130,9 @@
>> intptr_t stride = X265_LOWRES_CU_SIZE;
>> pixel *src = fref->lowresMC(pelOffset, mvc[idx],
>> subpelbuf, stride);
>> int cost = tld.me.bufSATD(src, stride);
>> + /* Except for mv0 case, everyting else is likely to have
>> enough residual to not trigger the skip. */
>> + if (!mvp.notZero() && bBidir)
>> + skipCost = cost;
>>
>
> I'm not sure this assumption is true at all. HEVC has merge MV candidates
> that make skip/merge much more cheaper. Where is mvp initialised - is this
> a bug?
>
>
It got pasted at wrong place while updating to recent tip, Will correct and
send patch soon.
> COPY2_IF_LT(mvpcost, cost, mvp, mvc[idx]);
>> }
>> }
>> @@ -2136,6 +2140,11 @@
>> /* ME will never return a cost larger than the cost @MVP, so we
>> do not
>> * have to check that ME cost is more than the estimated merge
>> cost */
>> fencCost = tld.me.motionEstimate(fref, mvmin, mvmax, mvp, 0,
>> NULL, s_merange, *fencMV);
>> + if (skipCost < 64 && skipCost < fencCost && bBidir)
>> + {
>> + fencCost = skipCost;
>> + *fencMV = 0;
>> + }
>> COPY2_IF_LT(bcost, fencCost, listused, i + 1);
>> }
>>
>> _______________________________________________
>> x265-devel mailing list
>> x265-devel at videolan.org
>> https://mailman.videolan.org/listinfo/x265-devel
>>
>
>
>
> --
> Deepthi Nandakumar
> Engineering Manager, x265
> Multicoreware, Inc
>
> _______________________________________________
> 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/20151106/23f4a420/attachment.html>
More information about the x265-devel
mailing list