changeset 5513:e7424e0cb60f

rdlevel: skip Intra if inter/merge sa8d less than a threshold In higher rdlevels Intra is skipped if inter/merge cu cbf is 0. A threshold of sa8d expects that cu cbf will be 0. Thresholds have to be refined further.
author Deepthi Devaki <deepthidevaki@multicorewareinc.com>
date Wed, 04 Dec 2013 13:06:38 +0530
parents 4668ede3a332
children 67d755e2a30c 6fd83a8d944c
files source/encoder/compress.cpp
diffstat 1 files changed, 5 insertions(+-), 0 deletions(-) [+]
line wrap: on
line diff
--- a/source/encoder/compress.cpp	Wed Dec 04 13:06:17 2013 +0530
+++ b/source/encoder/compress.cpp	Wed Dec 04 13:06:38 2013 +0530
@@ -515,6 +515,11 @@ void TEncCu::xCompressInterCU(TComDataCU
                         bdoIntra = (outBestCU->getCbf(0, TEXT_LUMA) ||  outBestCU->getCbf(0, TEXT_CHROMA_U) ||
                                     outBestCU->getCbf(0, TEXT_CHROMA_V));
                     }
+                    else
+                    {
+                        uint32_t threshold[4] = { 20000, 6000, 1600, 500 };
+                        bdoIntra = (outBestCU->m_totalDistortion > threshold[depth]);
+                    }
                     if (bdoIntra)
                     {
                         xComputeCostIntraInInter(m_intraInInterCU[depth], SIZE_2Nx2N);