diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp
index 730d0729cb06d44c25f1a2866ede605e1b81cf71..bedbcd82db94260b04bb1fdf3dc45650b4612c10 100644
--- a/source/App/EncoderApp/EncAppCfg.cpp
+++ b/source/App/EncoderApp/EncAppCfg.cpp
@@ -2088,36 +2088,87 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
   }
   m_chromaQpMappingTableParams.m_deltaQpInValMinus1[0].resize(cfg_qpInValCb.values.size());
   m_chromaQpMappingTableParams.m_deltaQpOutVal[0].resize(cfg_qpOutValCb.values.size());
-  m_chromaQpMappingTableParams.m_numPtsInCQPTableMinus1[0] = (int)cfg_qpOutValCb.values.size()-1;
+#if JVET_P0410_CHROMA_QP_MAPPING
+  m_chromaQpMappingTableParams.m_deltaQpDiffVal[0].resize(cfg_qpOutValCb.values.size());
+  m_chromaQpMappingTableParams.m_numPtsInCQPTableMinus1[0] = (int)cfg_qpOutValCb.values.size() - 2;
+#else
+  m_chromaQpMappingTableParams.m_numPtsInCQPTableMinus1[0] = (int)cfg_qpOutValCb.values.size() - 1;
+#endif
   int qpBdOffsetC = 6 * (m_internalBitDepth[CHANNEL_TYPE_CHROMA] - 8);
+#if JVET_P0410_CHROMA_QP_MAPPING
+  m_chromaQpMappingTableParams.m_qpTableStartMinus26[0] = -26 + cfg_qpInValCb.values[0];
+  CHECK(m_chromaQpMappingTableParams.m_qpTableStartMinus26[0] < -26 || m_chromaQpMappingTableParams.m_qpTableStartMinus26[0] > 36, "qpTableStartMinus26 is out of valid range of -26 -qpBdOffsetC to 36, inclusive.")
+  for (int i = 0; i < cfg_qpInValCb.values.size()-1; i++)
+#else
   for (int i = 0; i < cfg_qpInValCb.values.size(); i++)
+#endif
   {
     CHECK(cfg_qpInValCb.values[i] < -qpBdOffsetC || cfg_qpInValCb.values[i] > MAX_QP, "Some entries cfg_qpInValCb are out of valid range of -qpBdOffsetC to 63, inclusive.");
     CHECK(cfg_qpOutValCb.values[i] < -qpBdOffsetC || cfg_qpOutValCb.values[i] > MAX_QP, "Some entries cfg_qpOutValCb are out of valid range of -qpBdOffsetC to 63, inclusive.");
+#if JVET_P0410_CHROMA_QP_MAPPING
+    m_chromaQpMappingTableParams.m_deltaQpInValMinus1[0][i] = cfg_qpInValCb.values[i+1] - cfg_qpInValCb.values[i] - 1;
+    m_chromaQpMappingTableParams.m_deltaQpOutVal[0][i] = cfg_qpOutValCb.values[i+1] - cfg_qpOutValCb.values[i];
+    m_chromaQpMappingTableParams.m_deltaQpDiffVal[0][i] = m_chromaQpMappingTableParams.m_deltaQpOutVal[0][i] - m_chromaQpMappingTableParams.m_deltaQpInValMinus1[0][i];
+#else
     m_chromaQpMappingTableParams.m_deltaQpInValMinus1[0][i] = (i == 0) ? cfg_qpInValCb.values[i] + qpBdOffsetC : cfg_qpInValCb.values[i] - cfg_qpInValCb.values[i - 1] - 1;
     m_chromaQpMappingTableParams.m_deltaQpOutVal[0][i] = (i == 0) ? cfg_qpOutValCb.values[i] + qpBdOffsetC : cfg_qpOutValCb.values[i] - cfg_qpOutValCb.values[i - 1];
+#endif
   }
   if (!m_chromaQpMappingTableParams.m_sameCQPTableForAllChromaFlag)
   {
     m_chromaQpMappingTableParams.m_deltaQpInValMinus1[1].resize(cfg_qpInValCr.values.size());
     m_chromaQpMappingTableParams.m_deltaQpOutVal[1].resize(cfg_qpOutValCr.values.size());
-    m_chromaQpMappingTableParams.m_numPtsInCQPTableMinus1[1] = (int)cfg_qpOutValCr.values.size()-1;
+#if JVET_P0410_CHROMA_QP_MAPPING
+    m_chromaQpMappingTableParams.m_deltaQpDiffVal[1].resize(cfg_qpOutValCr.values.size());
+    m_chromaQpMappingTableParams.m_numPtsInCQPTableMinus1[1] = (int)cfg_qpOutValCr.values.size() - 2;
+#else
+    m_chromaQpMappingTableParams.m_numPtsInCQPTableMinus1[1] = (int)cfg_qpOutValCr.values.size() - 1;
+#endif
+#if JVET_P0410_CHROMA_QP_MAPPING
+    m_chromaQpMappingTableParams.m_qpTableStartMinus26[1] = -26 + cfg_qpInValCr.values[0];
+    CHECK(m_chromaQpMappingTableParams.m_qpTableStartMinus26[1] < -26 || m_chromaQpMappingTableParams.m_qpTableStartMinus26[0] > 36, "qpTableStartMinus26 is out of valid range of -26 -qpBdOffsetC to 36, inclusive.")
+    for (int i = 0; i < cfg_qpInValCr.values.size()-1; i++)
+#else
     for (int i = 0; i < cfg_qpInValCr.values.size(); i++)
+#endif
     {
       CHECK(cfg_qpInValCr.values[i] < -qpBdOffsetC || cfg_qpInValCr.values[i] > MAX_QP, "Some entries cfg_qpInValCr are out of valid range of -qpBdOffsetC to 63, inclusive.");
       CHECK(cfg_qpOutValCr.values[i] < -qpBdOffsetC || cfg_qpOutValCr.values[i] > MAX_QP, "Some entries cfg_qpOutValCr are out of valid range of -qpBdOffsetC to 63, inclusive.");
+#if JVET_P0410_CHROMA_QP_MAPPING
+      m_chromaQpMappingTableParams.m_deltaQpInValMinus1[1][i] = cfg_qpInValCr.values[i+1] - cfg_qpInValCr.values[i] - 1;
+      m_chromaQpMappingTableParams.m_deltaQpOutVal[1][i] = cfg_qpOutValCr.values[i+1] - cfg_qpOutValCr.values[i];
+      m_chromaQpMappingTableParams.m_deltaQpDiffVal[1][i] = m_chromaQpMappingTableParams.m_deltaQpOutVal[1][i] - m_chromaQpMappingTableParams.m_deltaQpInValMinus1[1][i];
+#else
       m_chromaQpMappingTableParams.m_deltaQpInValMinus1[1][i] = (i == 0) ? cfg_qpInValCr.values[i] + qpBdOffsetC : cfg_qpInValCr.values[i] - cfg_qpInValCr.values[i - 1] - 1;
       m_chromaQpMappingTableParams.m_deltaQpOutVal[1][i] = (i == 0) ? cfg_qpOutValCr.values[i] + qpBdOffsetC : cfg_qpOutValCr.values[i] - cfg_qpOutValCr.values[i - 1];
+#endif
     }
     m_chromaQpMappingTableParams.m_deltaQpInValMinus1[2].resize(cfg_qpInValCbCr.values.size());
     m_chromaQpMappingTableParams.m_deltaQpOutVal[2].resize(cfg_qpOutValCbCr.values.size());
-    m_chromaQpMappingTableParams.m_numPtsInCQPTableMinus1[2] = (int)cfg_qpOutValCbCr.values.size()-1;
+#if JVET_P0410_CHROMA_QP_MAPPING
+    m_chromaQpMappingTableParams.m_deltaQpDiffVal[2].resize(cfg_qpOutValCbCr.values.size());
+    m_chromaQpMappingTableParams.m_numPtsInCQPTableMinus1[2] = (int)cfg_qpOutValCbCr.values.size() - 2;
+#else
+    m_chromaQpMappingTableParams.m_numPtsInCQPTableMinus1[2] = (int)cfg_qpOutValCbCr.values.size() - 1;
+#endif
+#if JVET_P0410_CHROMA_QP_MAPPING
+    m_chromaQpMappingTableParams.m_qpTableStartMinus26[2] = -26 + cfg_qpInValCbCr.values[0];
+    CHECK(m_chromaQpMappingTableParams.m_qpTableStartMinus26[2] < -26 || m_chromaQpMappingTableParams.m_qpTableStartMinus26[0] > 36, "qpTableStartMinus26 is out of valid range of -26 -qpBdOffsetC to 36, inclusive.")
+    for (int i = 0; i < cfg_qpInValCbCr.values.size()-1; i++)
+#else
     for (int i = 0; i < cfg_qpInValCbCr.values.size(); i++)
+#endif
     {
       CHECK(cfg_qpInValCbCr.values[i] < -qpBdOffsetC || cfg_qpInValCbCr.values[i] > MAX_QP, "Some entries cfg_qpInValCbCr are out of valid range of -qpBdOffsetC to 63, inclusive.");
       CHECK(cfg_qpOutValCbCr.values[i] < -qpBdOffsetC || cfg_qpOutValCbCr.values[i] > MAX_QP, "Some entries cfg_qpOutValCbCr are out of valid range of -qpBdOffsetC to 63, inclusive.");
+#if JVET_P0410_CHROMA_QP_MAPPING
+      m_chromaQpMappingTableParams.m_deltaQpInValMinus1[2][i] = cfg_qpInValCbCr.values[i+1] - cfg_qpInValCbCr.values[i] - 1;
+      m_chromaQpMappingTableParams.m_deltaQpOutVal[2][i] = cfg_qpOutValCbCr.values[i+1] - cfg_qpOutValCbCr.values[i];
+      m_chromaQpMappingTableParams.m_deltaQpDiffVal[2][i] = m_chromaQpMappingTableParams.m_deltaQpOutVal[2][i] - m_chromaQpMappingTableParams.m_deltaQpInValMinus1[2][i];
+#else
       m_chromaQpMappingTableParams.m_deltaQpInValMinus1[2][i] = (i == 0) ? cfg_qpInValCbCr.values[i] + qpBdOffsetC : cfg_qpInValCbCr.values[i] - cfg_qpInValCbCr.values[i - 1] - 1;
       m_chromaQpMappingTableParams.m_deltaQpOutVal[2][i] = (i == 0) ? cfg_qpOutValCbCr.values[i] + qpBdOffsetC : cfg_qpOutValCbCr.values[i] - cfg_qpOutValCbCr.values[i - 1];
+#endif
     }
   }
 
diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp
index f2daa629f1c435543d730a2fc1f3b63ebf54dfc9..d489c07316e3b81745e842e05aa794ac5d2d1b6b 100644
--- a/source/Lib/CommonLib/Slice.cpp
+++ b/source/Lib/CommonLib/Slice.cpp
@@ -1730,6 +1730,10 @@ void ChromaQpMappingTable::setParams(const ChromaQpMappingTableParams &params, c
   {
     m_numPtsInCQPTableMinus1[i] = params.m_numPtsInCQPTableMinus1[i];
     m_deltaQpInValMinus1[i] = params.m_deltaQpInValMinus1[i];
+#if JVET_P0410_CHROMA_QP_MAPPING
+    m_qpTableStartMinus26[i] = params.m_qpTableStartMinus26[i];
+    m_deltaQpDiffVal[i] = params.m_deltaQpDiffVal[i];
+#endif
     m_deltaQpOutVal[i] = params.m_deltaQpOutVal[i];
   }
 }
@@ -1743,6 +1747,17 @@ void ChromaQpMappingTable::derivedChromaQPMappingTables()
   {
     const int qpBdOffsetC = m_qpBdOffset;
     const int numPtsInCQPTableMinus1 = getNumPtsInCQPTableMinus1(i);
+#if JVET_P0410_CHROMA_QP_MAPPING
+    std::vector<int> qpInVal(numPtsInCQPTableMinus1 + 2), qpOutVal(numPtsInCQPTableMinus1 + 2);
+
+    qpInVal[0] = getQpTableStartMinus26(i) + 26;
+    qpOutVal[0] = qpInVal[0];
+    for (int j = 0; j <= getNumPtsInCQPTableMinus1(i); j++)
+    {
+      qpInVal[j+1] = qpInVal[j] + getDeltaQpInValMinus1(i, j) + 1;
+      qpOutVal[j+1] = qpOutVal[j] + getDeltaQpInValMinus1(i, j) + getDeltaQpDiffVal(i, j);
+    }
+#else
     std::vector<int> qpInVal(numPtsInCQPTableMinus1 + 1), qpOutVal(numPtsInCQPTableMinus1 + 1);
 
     qpInVal[0] = -qpBdOffsetC + getDeltaQpInValMinus1(i, 0);
@@ -1752,6 +1767,7 @@ void ChromaQpMappingTable::derivedChromaQPMappingTables()
       qpInVal[j] = qpInVal[j - 1] + getDeltaQpInValMinus1(i, j) + 1;
       qpOutVal[j] = qpOutVal[j - 1] + getDeltaQpOutVal(i, j);
     }
+#endif
 
     for (int j = 0; j <= getNumPtsInCQPTableMinus1(i); j++)
     {
@@ -1764,16 +1780,33 @@ void ChromaQpMappingTable::derivedChromaQPMappingTables()
     {
       m_chromaQpMappingTables[i][k] = Clip3(-qpBdOffsetC, MAX_QP, m_chromaQpMappingTables[i][k + 1] - 1);
     }
+#if JVET_P0410_CHROMA_QP_MAPPING
+    for (int j = 0; j <= numPtsInCQPTableMinus1; j++)
+#else
     for (int j = 0; j < numPtsInCQPTableMinus1; j++)
+#endif
     {
+#if JVET_P0410_CHROMA_QP_MAPPING
+      int sh = (getDeltaQpInValMinus1(i, j) + 1) >> 1;
+#else
       int sh = (getDeltaQpInValMinus1(i, j + 1) + 1) >> 1;
+#endif
       for (int k = qpInVal[j] + 1, m = 1; k <= qpInVal[j + 1]; k++, m++)
       {
+#if JVET_P0410_CHROMA_QP_MAPPING
+        m_chromaQpMappingTables[i][k] = m_chromaQpMappingTables[i][qpInVal[j]]
+          + ((qpOutVal[j+1] - qpOutVal[j]) * m + sh) / (getDeltaQpInValMinus1(i, j) + 1);
+#else
         m_chromaQpMappingTables[i][k] = m_chromaQpMappingTables[i][qpInVal[j]]
           + (getDeltaQpOutVal(i, j + 1) * m + sh) / (getDeltaQpInValMinus1(i, j + 1) + 1);
+#endif
       }
     }
+#if JVET_P0410_CHROMA_QP_MAPPING
+    for (int k = qpInVal[numPtsInCQPTableMinus1+1] + 1; k <= MAX_QP; k++)
+#else
     for (int k = qpInVal[numPtsInCQPTableMinus1]+1; k <= MAX_QP; k++)
+#endif
     {
       m_chromaQpMappingTables[i][k] = Clip3(-qpBdOffsetC, MAX_QP, m_chromaQpMappingTables[i][k - 1] + 1);
     }
diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h
index 3baa39d3c1d921e5b4792e6ac902302ebffa35c7..d7baf29f5289d15b10cc0913adb4d1d4f4b467dd 100644
--- a/source/Lib/CommonLib/Slice.h
+++ b/source/Lib/CommonLib/Slice.h
@@ -538,9 +538,15 @@ struct ChromaQpMappingTableParams {
   bool              m_sameCQPTableForAllChromaFlag;
 #if JVET_P0667_QP_OFFSET_TABLE_SIGNALING_JCCR
   int               m_numQpTables;
+#endif
+#if JVET_P0410_CHROMA_QP_MAPPING
+  int               m_qpTableStartMinus26[MAX_NUM_CQP_MAPPING_TABLES];
 #endif
   int               m_numPtsInCQPTableMinus1[MAX_NUM_CQP_MAPPING_TABLES];
   std::vector<int>  m_deltaQpInValMinus1[MAX_NUM_CQP_MAPPING_TABLES];
+#if JVET_P0410_CHROMA_QP_MAPPING
+  std::vector<int>  m_deltaQpDiffVal[MAX_NUM_CQP_MAPPING_TABLES];
+#endif
   std::vector<int>  m_deltaQpOutVal[MAX_NUM_CQP_MAPPING_TABLES];
 
   ChromaQpMappingTableParams()
@@ -551,7 +557,13 @@ struct ChromaQpMappingTableParams {
     m_numQpTables = 1;
 #endif
     m_numPtsInCQPTableMinus1[0] = 0;
+#if JVET_P0410_CHROMA_QP_MAPPING
+    m_qpTableStartMinus26[0] = 0;
+#endif
     m_deltaQpInValMinus1[0] = { 0 };
+#if JVET_P0410_CHROMA_QP_MAPPING
+    m_deltaQpDiffVal[0] = { 0 };
+#endif
     m_deltaQpOutVal[0] = { 0 };
   }
 
@@ -560,12 +572,21 @@ struct ChromaQpMappingTableParams {
 #if JVET_P0667_QP_OFFSET_TABLE_SIGNALING_JCCR
   void      setNumQpTables(int n)                                     { m_numQpTables = n; }
   int       getNumQpTables()                                     const { return m_numQpTables; }
+#endif
+#if JVET_P0410_CHROMA_QP_MAPPING
+  void      setQpTableStartMinus26(int tableIdx, int n)                         { m_qpTableStartMinus26[tableIdx] = n; }
+  int       getQpTableStartMinus26(int tableIdx)                          const { return m_qpTableStartMinus26[tableIdx]; }
 #endif
   void      setNumPtsInCQPTableMinus1(int tableIdx, int n)                      { m_numPtsInCQPTableMinus1[tableIdx] = n; }
   int       getNumPtsInCQPTableMinus1(int tableIdx)                       const { return m_numPtsInCQPTableMinus1[tableIdx]; }
   void      setDeltaQpInValMinus1(int tableIdx, std::vector<int> &inVals)       { m_deltaQpInValMinus1[tableIdx] = inVals; }
   void      setDeltaQpInValMinus1(int tableIdx, int idx, int n)                 { m_deltaQpInValMinus1[tableIdx][idx] = n; }
   int       getDeltaQpInValMinus1(int tableIdx, int idx)                  const { return m_deltaQpInValMinus1[tableIdx][idx]; }
+#if JVET_P0410_CHROMA_QP_MAPPING
+  void      setDeltaQpDiffVal(int tableIdx, std::vector<int>& outVals)          { m_deltaQpDiffVal[tableIdx] = outVals; }
+  void      setDeltaQpDiffVal(int tableIdx, int idx, int n)                     { m_deltaQpDiffVal[tableIdx][idx] = n; }
+  int       getDeltaQpDiffVal(int tableIdx, int idx)                      const { return m_deltaQpDiffVal[tableIdx][idx]; }
+#endif
   void      setDeltaQpOutVal(int tableIdx, std::vector<int> &outVals)           { m_deltaQpOutVal[tableIdx] = outVals; }
   void      setDeltaQpOutVal(int tableIdx, int idx, int n)                      { m_deltaQpOutVal[tableIdx][idx] = n; }
   int       getDeltaQpOutVal(int tableIdx, int idx)                       const { return m_deltaQpOutVal[tableIdx][idx]; }
diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h
index 3876f1699cdea85ccaa5df809c9997618b9c0158..6025c743d3b57a327e7edec8844772bcf13d2748 100644
--- a/source/Lib/CommonLib/TypeDef.h
+++ b/source/Lib/CommonLib/TypeDef.h
@@ -51,6 +51,8 @@
 #include <cassert>
 #define JVET_P01034_PRED_1D_SCALING_LIST                  1 // JVET-P1034: 1D Scaling list index and add predictor mode 
 
+#define JVET_P0410_CHROMA_QP_MAPPING                      1 // JVET-P0410: Chroma QP Mapping signalling
+
 #define JVET_P0345_LD_GOP_8                               1 // JVET-P0345: low-delay gop size 8
 
 #define JVET_P0371_CHROMA_SCALING_OFFSET                  1 // JVET-P0371: Signalling offset for chroma residual scaling
diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp
index b2305548fdd18d5737ae17c31e4587112ca68627..ce7fd9bf413c67c1b6a0dd1feb4dd767444a17d7 100644
--- a/source/Lib/DecoderLib/VLCReader.cpp
+++ b/source/Lib/DecoderLib/VLCReader.cpp
@@ -1389,15 +1389,30 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS)
     for (int i = 0; i < (chromaQpMappingTableParams.getSameCQPTableForAllChromaFlag() ? 1 : 3); i++)
 #endif
     {
+#if JVET_P0410_CHROMA_QP_MAPPING
+      int32_t qpTableStart = 0;
+      READ_SVLC(qpTableStart, "qp_table_starts_minus26"); chromaQpMappingTableParams.setQpTableStartMinus26(i, qpTableStart);
+#endif
       READ_UVLC(uiCode, "num_points_in_qp_table_minus1"); chromaQpMappingTableParams.setNumPtsInCQPTableMinus1(i,uiCode);
       std::vector<int> deltaQpInValMinus1(chromaQpMappingTableParams.getNumPtsInCQPTableMinus1(i) + 1);
+#if JVET_P0410_CHROMA_QP_MAPPING
+      std::vector<int> deltaQpDiffVal(chromaQpMappingTableParams.getNumPtsInCQPTableMinus1(i) + 1);
+#endif
       std::vector<int> deltaQpOutVal(chromaQpMappingTableParams.getNumPtsInCQPTableMinus1(i) + 1);
       for (int j = 0; j <= chromaQpMappingTableParams.getNumPtsInCQPTableMinus1(i); j++)
       {
         READ_UVLC(uiCode, "delta_qp_in_val_minus1");  deltaQpInValMinus1[j] = uiCode;
+#if JVET_P0410_CHROMA_QP_MAPPING
+        int32_t deltaQpDiff = 0;
+        READ_SVLC(deltaQpDiff, "delta_qp_diff_val");  deltaQpDiffVal[j] = deltaQpDiff;
+#else
         READ_UVLC(uiCode, "delta_qp_out_val");        deltaQpOutVal[j] = uiCode;
+#endif
       }
       chromaQpMappingTableParams.setDeltaQpInValMinus1(i, deltaQpInValMinus1);
+#if JVET_P0410_CHROMA_QP_MAPPING
+      chromaQpMappingTableParams.setDeltaQpDiffVal(i, deltaQpDiffVal);
+#endif
       chromaQpMappingTableParams.setDeltaQpOutVal(i, deltaQpOutVal);
     }
     pcSPS->setChromaQpMappingTableFromParams(chromaQpMappingTableParams, pcSPS->getQpBDOffset(CHANNEL_TYPE_CHROMA));
diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp
index 0da12c14f7a57372474d592637043db3680235e6..832608597de1b5b4654e5d8d963fb8bede5d3b59 100644
--- a/source/Lib/EncoderLib/VLCWriter.cpp
+++ b/source/Lib/EncoderLib/VLCWriter.cpp
@@ -835,12 +835,19 @@ void HLSWriter::codeSPS( const SPS* pcSPS )
     for (int i = 0; i < (chromaQpMappingTable.getSameCQPTableForAllChromaFlag() ? 1 : 3); i++)
 #endif
     {
+#if JVET_P0410_CHROMA_QP_MAPPING
+      WRITE_SVLC(chromaQpMappingTable.getQpTableStartMinus26(i), "qp_table_starts_minus26");
+#endif
       WRITE_UVLC(chromaQpMappingTable.getNumPtsInCQPTableMinus1(i), "num_points_in_qp_table_minus1");
 
       for (int j = 0; j <= chromaQpMappingTable.getNumPtsInCQPTableMinus1(i); j++)
       {
         WRITE_UVLC(chromaQpMappingTable.getDeltaQpInValMinus1(i,j),  "delta_qp_in_val_minus1");
+#if JVET_P0410_CHROMA_QP_MAPPING
+        WRITE_SVLC(chromaQpMappingTable.getDeltaQpDiffVal(i, j),      "delta_qp_diff_val");
+#else
         WRITE_UVLC(chromaQpMappingTable.getDeltaQpOutVal(i, j),       "delta_qp_out_val");
+#endif
       }
     }
   }