[x265] [PATCH 3 of 3] Bidir ME: store bits required for bidir which will be used for merge estimation

deepthidevaki at multicorewareinc.com deepthidevaki at multicorewareinc.com
Fri Oct 4 12:12:27 CEST 2013


# HG changeset patch
# User Deepthi Devaki <deepthidevaki at multicorewareinc.com>
# Date 1380881448 -19800
# Node ID bcf945c2f8b7811701732c606bcf6b10d98d263b
# Parent  8604d2a97e089db3300e67da380286a02f0d9fc0
Bidir ME: store bits required for bidir which will be used for merge estimation

diff -r 8604d2a97e08 -r bcf945c2f8b7 source/Lib/TLibEncoder/TEncSearch.cpp
--- a/source/Lib/TLibEncoder/TEncSearch.cpp	Fri Oct 04 15:25:15 2013 +0530
+++ b/source/Lib/TLibEncoder/TEncSearch.cpp	Fri Oct 04 15:40:48 2013 +0530
@@ -2431,7 +2431,8 @@
                 primitives.pixelavg_pp[partEnum](avg, roiWidth, ref0, ref1, m_predYuv[0].getStride(), m_predYuv[1].getStride());
 
                 int satdCost = primitives.satd[partEnum](pu, fenc->getStride(), avg, roiWidth);
-                costbi =  satdCost + m_rdCost->getCost(bits[0]) + m_rdCost->getCost(bits[1]);
+                bits[2] = bits[0] + bits[1] - mbBits[0] - mbBits[1] + mbBits[2];
+                costbi =  satdCost + m_rdCost->getCost(bits[2]);
 
                 if (mv[0].notZero() || mv[1].notZero())
                 {
@@ -2460,6 +2461,7 @@
                         costbi = costZero;
                         mvBidir[0].x = mvBidir[0].y = 0;
                         mvBidir[1].x = mvBidir[1].y = 0;
+                        bits[2] = bitsZero0 + bitsZero1 - mbBits[0] - mbBits[1] + mbBits[2];
                     }
                 }
             } // if (B_SLICE)


More information about the x265-devel mailing list