15 #ifndef VISIONTRANSFER_BITCONVERSIONS_H 16 #define VISIONTRANSFER_BITCONVERSIONS_H 24 static void decode12BitSplit(
int startRow,
int stopRow,
unsigned const char* src,
25 unsigned char* dst,
int srcStride,
int dstStride,
int rowWidth);
27 static void decode12BitPacked(
int startRow,
int stopRow,
unsigned const char* src,
28 unsigned char* dst,
int srcStride,
int dstStride,
int rowWidth);
31 template <
bool alignedLoad>
32 static void decode12BitSplitSSE2(
int startRow,
int stopRow,
const unsigned char* dispStart,
33 const unsigned char* subpixStart,
int width,
unsigned short* dst,
int srcStride,
int dstStride);
35 template <
bool alignedLoad>
36 static void decode12BitSplitAVX2(
int startRow,
int stopRow,
const unsigned char* dispStart,
37 const unsigned char* subpixStart,
int width,
unsigned short* dst,
int srcStride,
int dstStride);
39 static void decode12BitSplitFallback(
int startRow,
int stopRow,
const unsigned char* dispStart,
40 const unsigned char* subpixStart,
int width,
unsigned short* dst,
int srcStride,
int dstStride);
42 template <
bool alignedLoad>
43 static void decode12BitPackedSSE4(
int startRow,
int stopRow,
const unsigned char* dispStart,
44 int width,
unsigned short* dst,
int srcStride,
int dstStride);
46 template <
bool alignedLoad>
47 static void decode12BitPackedNEON(
int startRow,
int stopRow,
const unsigned char* dispStart,
48 int width,
unsigned short* dst,
int srcStride,
int dstStride);
50 static void decode12BitPackedFallback(
int startRow,
int stopRow,
const unsigned char* dispStart,
51 int width,
unsigned short* dst,
int srcStride,
int dstStride);
Various implementations for converting from 12-bit to 16-bit per pixels formats.