SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
VC1 range mapping and range reduction is implemented prior to the Chroma Upsampler (CHR_US) in the Primary Input Paths of the module.
Range Mapping is performed by setting VPE_CLKC_RANGE_MAP[6] RANGE_MAP_PRIM_ON bit to '1'. The output for every component is calculated by the follwing formulas:
Y[n] = (((Y[n] – 128) * (RANGE_MAPY_PRIM + 9) + 4) >> 3) + 128
Cb[n] = (((Cb[n] – 128) * (RANGE_MAPUV_PRIM + 9) + 4) >> 3) + 128
Cr[n] = (((Cr[n] – 128) * (RANGE_MAPUV_PRIM + 9) + 4) >> 3) + 128
In the above, VPE_CLKC_RANGE_MAP[2:0] RANGE_MAPY_PRIM and VPE_CLKC_RANGE_MAP[5:3] RANGE_MAPUV_PRIM are defined as in the register descriptions for each instantiation of this function.
Range Reduction is performed based by setting VPE_CLKC_RANGE_MAP[28] RANGE_REDUCTION_PRIM_ON bit to '1'. The output for the color components is calculated by the follwing formulas:
Y[n] =(Y[n] – 128) * 2 + 128
Cb[n] =(Cb[n] – 128) * 2 + 128
Cr[n] = (Cr[n] – 128) * 2 + 128
The block performs Range Mapping first, and the output of Range Mapping drives Range Reduction. Although Range Mapping and Range Reduction are supposed to be mutually exclusive, the implementation allows both to be done simultaneous.