Custom query (1557 matches)
Results (28 - 30 of 1557)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#31 | fixed | Mismatch between encoder and decoder when 4x4 coding with large QP | kkawamura | |
Description |
Encoder and decoder mismatch is occurred due to the overflow of iAdd. TComTrQuant.cpp l.5535 xQuant()
When iAdd is negative value, quantisedMagnitude becomes negative value. (It shoul be positive value.) sumAbs becomes negative value and cbf decision (subAbs > 0) is wrong. Encoder has coefficients, while decoder has no coefficients due to cbf = 0. The reason of negative value in iAdd is overflow as following mechanism.
As my case, QUANT_SHIFT = 14, cQP.per = 9, and iTransformShift = 11, then iQBits = 34, and iAdd = 85 << (34 - 9) which is larger than maximum value of signed int. It is noted that overflow risk becomes large since iTransformShift += 7 in l.5494 is introduced by QTBT If we can introduce the int64 variable, we can easily avoid this error. But, I'm not sure whether I introduce such variable. |
|||
#32 | fixed | INIT_LAST in not intialized properly | XiangLi | |
Description |
INIT_LAST[NUMBER_OF_SLICE_TYPES][NUM_CTX_LAST_FLAG_SETS * NUM_CTX_LAST_FLAG_XY] = {
}; As NUM_CTX_LAST_FLAG_XY=25, there are no enough elements for the initialization. Following code would fix the issue INIT_LAST[NUMBER_OF_SLICE_TYPES][NUM_CTX_LAST_FLAG_SETS * NUM_CTX_LAST_FLAG_XY] = {
}; |
|||
#33 | fixed | Block level IC flag may be on when slice level IC flag is off | XiangLi | |
Description |
In the following code, slice level IC flag is not checked so that block level IC flag may be on even when slice level IC flag is off. #if VCEG_AZ06_IC
#endif It is proposed to change as follows #if VCEG_AZ06_IC
#endif |