Visible to Intel only — GUID: GUID-9DA603E1-0660-47EC-AADD-0C28E43D2AA7
Visible to Intel only — GUID: GUID-9DA603E1-0660-47EC-AADD-0C28E43D2AA7
LShiftC
Shifts bits in pixel values to the left.
Syntax
Case 1: Not-in-place operation on one-channel data
IppStatus ippiLShiftC_<mod>(const Ipp<datatype>* pSrc, int srcStep, Ipp32u value, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize);
Supported values for mod:
8u_C1R |
16u_C1R |
32s_C1R |
Case 2: Not-in-place operation on multi-channel data
IppStatus ippiLShiftC_<mod>(const Ipp<datatype>* pSrc, int srcStep, const Ipp32u value[3], Ipp<datatype>* pDst, int dstStep, IppiSize roiSize);
Supported values for mod:
8u_C3R |
16u_C3R |
32s_C3R |
32s_AC4R |
8u_AC4R |
16u_AC4R |
IppStatus ippiLShiftC_<mod>(const Ipp<datatype>* pSrc, int srcStep, const Ipp32u value[4], Ipp<datatype>* pDst, int dstStep, IppiSize roiSize);
Supported values for mod:
8u_C4R |
16u_C4R |
32s_C4R |
Case 3: In-place operation on one-channel data
IppStatus ippiLShiftC_<mod>(Ipp32u value, Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize);
Supported values for mod:
8u_C1IR |
16u_C1IR |
32s_C1IR |
Case 4: In-place operation on multi-channel data
IppStatus ippiLShiftC_<mod>(const Ipp32u value[3], Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize);
Supported values for mod:
8u_C3IR |
16u_C3IR |
32s_C3IR |
8u_AC4IR |
16u_AC4IR |
32s_AC4IR |
IppStatus ippiLShiftC_<mod>(const Ipp32u value[4], Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize);
Supported values for mod:
8u_C4IR |
16u_C4IR |
32s_C4IR |
Include Files
ippi.h
Domain Dependencies
Headers: ippcore.h, ippvm.h, ipps.h
Libraries: ippcore.lib, ippvm.lib, ipps.lib
Parameters
pSrc |
Pointer to the source image ROI. |
srcStep |
Distance in bytes between starts of consecutive lines in the source image. |
value |
The number of bits to shift (constant vector in case of multi-channel images). |
pDst |
Pointer to the destination image ROI. |
dstStep |
Distance in bytes between starts of consecutive lines in the destination image. |
pSrcDst |
Pointer to the source and destination image ROI for the in-place operation. |
srcDstStep |
Distance in bytes between starts of consecutive lines in the source and destination image for the in-place operation. |
roiSize |
Size of the source and destination ROI in pixels. |
Description
This function operates with ROI (see Regions of Interest in Intel IPP).
This function changes the intensity of pixels in the source image ROI by shifting the bits in each pixel value by value bits to the left. In case of multi-channel data, each color channel can have its own shift value. The positions vacated after shifting the bits are filled with zeros. Values obtained as a result of left shift operations are not saturated. To get saturated values, use multiplication functions instead.
Note that the functions with the AC4 descriptor do not process alpha channels.
Return Values
ippStsNoErr |
Indicates no error. Any other value indicates an error or a warning. |
ippStsNullPtrErr |
Indicates an error condition if one of the specified pointers is NULL. |
ippStsSizeErr |
Indicates an error condition if roiSize has a field with zero or negative value. |
ippStsStepErr |
Indicates an error condition if srcStep, dstStep, orsrcDstStep has a zero or negative value. |
Example
The code example below illustrates the use of left shift function.
IppStatus lshift( void ) { Ipp8u img[8*8] = { 1, 0x7F, 0xFE }; IppiSize roi = { 8, 8 }; IppStatus st = ippiLShiftC_8u_C1IR( 1, img, 8, roi ); printf( "%02x %02x %02x\n", img[0], img[1], img[2] ); return st; }
Output values:
02 fe fc