<div dir="ltr">I have made a small patch for this and send tomorrow after testing.</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 19, 2015 at 9:49 PM, Steve Borho <span dir="ltr"><<a href="mailto:steve@borho.org" target="_blank">steve@borho.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 05/19, <a href="mailto:ashok@multicorewareinc.com">ashok@multicorewareinc.com</a> wrote:<br>
> # HG changeset patch<br>
> # User Ashok Kumar Mishra<<a href="mailto:ashok@multicorewareinc.com">ashok@multicorewareinc.com</a>><br>
> # Date 1431935793 -19800<br>
> #      Mon May 18 13:26:33 2015 +0530<br>
> # Node ID f6c9a1e184fe7a8c17744117120828458be43106<br>
> # Parent  5bc61c2bc0cec50dc33eda9638f215de21fb4bcf<br>
> analysis: model the effectiveness of --limit-ref with RD 0/4<br>
<br>
</span>the series looks good, queued for testing<br>
<span class=""><br>
> diff -r 5bc61c2bc0ce -r f6c9a1e184fe source/encoder/analysis.cpp<br>
> --- a/source/encoder/analysis.cpp     Mon May 18 13:24:42 2015 +0530<br>
> +++ b/source/encoder/analysis.cpp     Mon May 18 13:26:33 2015 +0530<br>
> @@ -850,6 +850,26 @@<br>
>              md.pred[PRED_2Nx2N].cu.initSubCU(parentCTU, cuGeom, qp);<br>
>              checkInter_rd0_4(md.pred[PRED_2Nx2N], cuGeom, SIZE_2Nx2N, refMasks);<br>
><br>
> +            if (m_param->limitReferences & X265_REF_LIMIT_CU)<br>
> +            {<br>
> +                CUData& cu = md.pred[PRED_2Nx2N].cu;<br>
> +                int refMask;<br>
> +                switch (cu.m_interDir[0])<br>
> +                {<br>
> +                case 1:<br>
> +                    refMask = 1 << cu.m_refIdx[0][0];<br>
> +                    break;<br>
> +                case 2:<br>
> +                    refMask = 1 << (cu.m_refIdx[1][0] + 16);<br>
> +                    break;<br>
> +                case 3:<br>
> +                    refMask = 1 << cu.m_refIdx[0][0];<br>
> +                    refMask |= 1 << (cu.m_refIdx[1][0] + 16);<br>
> +                    break;<br>
> +                }<br>
<br>
</span>this probably wants to eventually be a cudata helper function, and could<br>
be micro-optimized to avoid the switch statement by using:<br>
<br>
  refmask |= (cu.m_interDir[0] & (1 << list)) * listmask;<br>
<span class=""><br>
> +                allSplitRefs = splitRefs[0] = splitRefs[1] = splitRefs[2] = splitRefs[3] = refMask;<br>
> +            }<br>
> +<br>
>              if (m_slice->m_sliceType == B_SLICE)<br>
>              {<br>
>                  md.pred[PRED_BIDIR].cu.initSubCU(parentCTU, cuGeom, qp);<br>
</span>> _______________________________________________<br>
> x265-devel mailing list<br>
> <a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
> <a href="https://mailman.videolan.org/listinfo/x265-devel" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Steve Borho<br>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</font></span></blockquote></div><br></div>