Custom Query (1442 matches)
Results (13 - 15 of 1442)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#1481 | fixed | computation overflow in HM reference C model | swong10 | swong10 |
Description |
We may have found a bug in the HM model. There is a mismatch between the written specification and HM reference C model. Dec 2016 Spec: 8.4.4.2.7 Decoding process for palette mode HM code version : HM-16.15+SCM-8.5 Function : TDecCu::xDecodePaletteTexture() in TDecCu.cpp The problem equation happens in both clauses of an if-else statement. The overflow happens in tmpVal, which is used to store the inverse quantized palette escape values in (8-77). tmpVal is then clipped according to (8-78) to generate the reconstructed samples. levelScale <= 72 (7-bit). In SCM, tmpVal is of type “Pel”. So, once we changed Pixel from Short to Int the overflow was fixed. It is a high bit depth problem, most likely only happen when pixel depth is > 8-bit. |
|||
#1480 | fixed | Data Overflow at Adaptive Color Transform HM Implementation | swong10 | |
Description |
There is not enough precision in the internal stages of the Adaptive Color Transform. Solution : The intermediate ACT stages must use more than 16b to avoid overflow, when not using HIGH_BIT_DEPTH_SUPPORT. Section 8.6.8.2 (H.265 12/2016 spec) – Residual samples rY[ x ][ y ], rCb[ x ][ y ] and rCr[ x ][ y ] are modified as follows: tmp = rY[ x ][ y ] − ( rCb[ x ][ y ] >> 1 ) (8-338) rY[ x ][ y ] = tmp + rCb[ x ][ y ] (8-339) rCb[ x ][ y ] = tmp − ( rCr[ x ][ y ] >> 1 ) (8-340) rCr[ x ][ y ] += rCb[ x ][ y ] (8-341) When without HIGH_BIT_DEPTH_SUPPORT, HM C-model using only Short (16b; typedef Short Pel) to store pDst0/1/2. HM-16.15+SCM-8.5 File : TComYuv.cpp, function Void TComYuv::convert() Pel* pDst0 Int t = yo - (cg>>1); pDst0[x] = cg + t; pDst1[x] = t - (co>>1); pDst2[x] = co + pDst1[x]; Thanks Sam. |
|||
#1479 | fixed | SCM/Spec mismatch in the processing order of merge candidate rounding and merge candidate bi-pred restriction | rickxu | |
Description |
In SCM8.5, after getInterMergeCandidates(), the merge candidate bi-pred restriction, i.e. xRestrictBipredMergeCand(), is done before the merge candidate rounding, i.e. roundMergeCandidates(). But in the Spec, the merge candidate list generation follows the below steps, where the bi-pred restriction should be done after the merge candidate rounding. This caused the inconsistence between SCM and Spec.
|