// not sure about this nonsense - why is it not just avg like with 2 levels?\r
quantVal = ((quantVal < 0) * 3 + quantVal) >> 2;\r
if (quantVal / 6 >= 6)\r
- *qStepTbl = q_step_tbl[quantVal % 6] * (1 << (quantVal / 6 + 26));\r
+ *qStepTbl = q_step_tbl[quantVal % 6] << ((quantVal / 6 - 6 ) & 0x1f);\r
else\r
*qStepTbl = q_step_tbl[quantVal % 6] >> (6 - quantVal / 6);\r
}\r
{\r
int32_t quantVal = (qpTable[row0Idx++] + qpTable[row1Idx++]) / 2;\r
if (quantVal / 6 >= 6)\r
- *qStepTbl = q_step_tbl[quantVal % 6] * (1 << (quantVal / 6 + 26));\r
+ *qStepTbl = q_step_tbl[quantVal % 6] << ((quantVal / 6 - 6) & 0x1f);\r
else\r
*qStepTbl = q_step_tbl[quantVal % 6] >> (6 - quantVal / 6);\r
}\r
for (int qpRow = 0; qpRow < qpHeight; ++qpRow)\r
for (int qpCol = 0; qpCol < qpWidth; ++qpCol, ++qStepTbl, ++qpTable)\r
if (*qpTable / 6 >= 6)\r
- *qStepTbl = q_step_tbl[*qpTable % 6] * (1 << (*qpTable / 6 + 26));\r
+ *qStepTbl = q_step_tbl[*qpTable % 6] << ((*qpTable / 6 - 6) & 0x1f);\r
else\r
*qStepTbl = q_step_tbl[*qpTable % 6] >> (6 - *qpTable / 6);\r
\r