<div dir="ltr"><br><div>I was under the assumption that lookahead is not using qpel refinement. So had included on Fpel/Hpels in this patch. I have sent a new patch with qpel in bidir cost. So please ignore this patch.</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Oct 8, 2013 at 12:02 PM,  <span dir="ltr"><<a href="mailto:deepthidevaki@multicorewareinc.com" target="_blank">deepthidevaki@multicorewareinc.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"># HG changeset patch<br>
# User Deepthi Devaki <<a href="mailto:deepthidevaki@multicorewareinc.com">deepthidevaki@multicorewareinc.com</a>><br>
# Date 1381213898 -19800<br>
# Node ID 8f4428d24e63ae85495597864567071275397db0<br>
# Parent  d71078917df01e92605158a13b45ab35ee7cfc1c<br>
sliceype: Bidir cost estimation added to lookahead<br>
<br>
diff -r d71078917df0 -r 8f4428d24e63 source/encoder/slicetype.cpp<br>
--- a/source/encoder/slicetype.cpp      Mon Oct 07 12:48:32 2013 +0530<br>
+++ b/source/encoder/slicetype.cpp      Tue Oct 08 12:01:38 2013 +0530<br>
@@ -407,6 +407,28 @@<br>
             *fenc_costs[i] = me.motionEstimate(i ? fref1 : fref0, mvmin, mvmax, mvp, numc, mvc, merange, *fenc_mvs[i]);<br>
             COPY2_IF_LT(bcost, *fenc_costs[i], listused, i + 1);<br>
         }<br>
+        if(bBidir)<br>
+        {<br>
+            int hpel = ((*fenc_mvs[0]).y & 2) | (((*fenc_mvs[0]).x & 2) >> 1);<br>
+            pixel *src0 = fref0->lowresPlane[hpel] + pelOffset + ((*fenc_mvs[0]).x >> 2) + ((*fenc_mvs[0]).y >> 2) * fref0->lumaStride;<br>
+            hpel = ((*fenc_mvs[1]).y & 2) | (((*fenc_mvs[1]).x & 2) >> 1);<br>
+            pixel *src1 = fref1->lowresPlane[hpel] + pelOffset + ((*fenc_mvs[1]).x >> 2) + ((*fenc_mvs[1]).y >> 2) * fref1->lumaStride;<br>
+<br>
+            pixel ref[X265_LOWRES_CU_SIZE * X265_LOWRES_CU_SIZE];<br>
+            primitives.pixelavg_pp[PARTITION_8x8](ref, X265_LOWRES_CU_SIZE, src0, fref0->lumaStride, src1, fref1->lumaStride, 0);<br>
+<br>
+            int bicost = primitives.sad[PARTITION_8x8](fenc->lowresPlane[0] + pelOffset, fenc->lumaStride, ref, X265_LOWRES_CU_SIZE);<br>
+            COPY2_IF_LT(bcost, bicost, listused, 3);<br>
+<br>
+            //Try 0,0 candidates<br>
+            src0 = fref0->lowresPlane[0] + pelOffset;<br>
+            src1 = fref1->lowresPlane[0] + pelOffset;<br>
+<br>
+            primitives.pixelavg_pp[PARTITION_8x8](ref, X265_LOWRES_CU_SIZE, src0, fref0->lumaStride, src1, fref1->lumaStride, 0);<br>
+<br>
+            bicost = primitives.sad[PARTITION_8x8](fenc->lowresPlane[0] + pelOffset, fenc->lumaStride, ref, X265_LOWRES_CU_SIZE);<br>
+            COPY2_IF_LT(bcost, bicost, listused, 3);<br>
+        }<br>
     }<br>
     if (!fenc->bIntraCalculated)<br>
     {<br>
</blockquote></div><br></div>