<div dir="ltr">Thanks, very interesting fix. Can you give us some background here? Where did we the divide by 3.0 come from?</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 25, 2014 at 9:01 AM, Satoshi Nakagawa <span dir="ltr"><<a href="mailto:nakagawa424@oki.com" target="_blank">nakagawa424@oki.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 Satoshi Nakagawa <<a href="mailto:nakagawa424@oki.com">nakagawa424@oki.com</a>><br>
# Date 1395672158 -32400<br>
#      Mon Mar 24 23:42:38 2014 +0900<br>
# Node ID 08584b5913bce6a5f9d2f0d408fcdace6aa83a65<br>
# Parent  fdd7c6168cf42a11240ff1c7fc7b401605524db2<br>
fix chroma lambda weighting<br>
<br>
diff -r fdd7c6168cf4 -r 08584b5913bc source/encoder/frameencoder.cpp<br>
--- a/source/encoder/frameencoder.cpp   Fri Mar 21 14:44:35 2014 -0500<br>
+++ b/source/encoder/frameencoder.cpp   Mon Mar 24 23:42:38 2014 +0900<br>
@@ -335,11 +335,10 @@<br>
     // instead we weight the distortion of chroma.<br>
     int chromaQPOffset = slice->getPPS()->getChromaCbQpOffset() + slice->getSliceQpDeltaCb();<br>
     int qpc = Clip3(0, MAX_MAX_QP, qp + chromaQPOffset);<br>
-    double cbWeight = pow(2.0, (qp - g_chromaScale[chFmt][qpc])); // takes into account of the chroma qp mapping and chroma qp Offset<br>
-<br>
+    double cbWeight = pow(2.0, (qp - g_chromaScale[chFmt][qpc]) / 3.0); // takes into account of the chroma qp mapping and chroma qp Offset<br>
     chromaQPOffset = slice->getPPS()->getChromaCrQpOffset() + slice->getSliceQpDeltaCr();<br>
     qpc = Clip3(0, MAX_MAX_QP, qp + chromaQPOffset);<br>
-    double crWeight = pow(2.0, (qp - g_chromaScale[chFmt][qpc])); // takes into account of the chroma qp mapping and chroma qp Offset<br>
+    double crWeight = pow(2.0, (qp - g_chromaScale[chFmt][qpc]) / 3.0); // takes into account of the chroma qp mapping and chroma qp Offset<br>
     double chromaLambda = lambda / crWeight;<br>
<br>
     m_rows[row].m_search.setQPLambda(qp, lambda, chromaLambda);<br>
@@ -376,10 +375,10 @@<br>
     int qpc;<br>
     int chromaQPOffset = slice->getPPS()->getChromaCbQpOffset() + slice->getSliceQpDeltaCb();<br>
     qpc = Clip3(0, MAX_MAX_QP, qp + chromaQPOffset);<br>
-    double cbWeight = pow(2.0, (qp - g_chromaScale[chFmt][qpc])); // takes into account of the chroma qp mapping and chroma qp Offset<br>
+    double cbWeight = pow(2.0, (qp - g_chromaScale[chFmt][qpc]) / 3.0); // takes into account of the chroma qp mapping and chroma qp Offset<br>
     chromaQPOffset = slice->getPPS()->getChromaCrQpOffset() + slice->getSliceQpDeltaCr();<br>
     qpc = Clip3(0, MAX_MAX_QP, qp + chromaQPOffset);<br>
-    double crWeight = pow(2.0, (qp - g_chromaScale[chFmt][qpc])); // takes into account of the chroma qp mapping and chroma qp Offset<br>
+    double crWeight = pow(2.0, (qp - g_chromaScale[chFmt][qpc]) / 3.0); // takes into account of the chroma qp mapping and chroma qp Offset<br>
     double chromaLambda = lambda / crWeight;<br>
<br>
     // NOTE: set SAO lambda every Frame<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>
</blockquote></div><br></div>