[x265] [PATCH] RD: change cost measurements for inter

deepthi at multicorewareinc.com deepthi at multicorewareinc.com
Thu Nov 28 07:15:13 CET 2013


# HG changeset patch
# User Deepthi Nandakumar <deepthi at multicorewareinc.com>
# Date 1385619283 -19800
# Node ID 0ab1c01bf952412026ce5b6928d1a8a61014ec51
# Parent  949f85337789c8d00f39ed1a010990efe67ebcf4
RD: change cost measurements for inter

The cost calculation for inter modes now use cost = satd(orig, pred) + lambda*mebits.
This is an estimation to the actual RD-cost.

diff -r 949f85337789 -r 0ab1c01bf952 source/encoder/compress.cpp
--- a/source/encoder/compress.cpp	Wed Nov 27 18:10:14 2013 -0600
+++ b/source/encoder/compress.cpp	Thu Nov 28 11:44:43 2013 +0530
@@ -211,12 +211,9 @@
     outTempCU->m_totalBits = 0;
     m_search->predInterSearch(outTempCU, outPredYuv, bUseMRG, true, false);
     int part = partitionFromSizes(outTempCU->getWidth(0), outTempCU->getHeight(0));
-    uint32_t distortion = primitives.sse_pp[part](m_origYuv[depth]->getLumaAddr(), m_origYuv[depth]->getStride(),
+    uint32_t distortion = primitives.satd[part](m_origYuv[depth]->getLumaAddr(), m_origYuv[depth]->getStride(),
                                                   outPredYuv->getLumaAddr(), outPredYuv->getStride());
-    m_rdGoOnSbacCoder->load(m_rdSbacCoders[outTempCU->getDepth(0)][CI_CURR_BEST]);
-    outTempCU->m_totalBits = m_search->xSymbolBitsInter(outTempCU);
-
-    outTempCU->m_totalCost = m_rdCost->calcRdCost(distortion, outTempCU->m_totalBits);
+    outTempCU->m_totalCost = m_rdCost->calcRdSADCost(distortion, outTempCU->m_totalBits);
 }
 
 void TEncCu::xComputeCostMerge2Nx2N(TComDataCU*& outBestCU, TComDataCU*& outTempCU, bool* earlyDetectionSkip, TComYuv*& bestPredYuv, TComYuv*& yuvReconBest)


More information about the x265-devel mailing list