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 isNULL.
- ippStsSizeErr
- Indicates an error condition ifroiSizehas a field with zero or negative value.
- ippStsStepErr
- Indicates an error condition ifsrcStep,dstStep, orsrcDstStephas 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