static SplitFunc splitTab[] =
{
- (SplitFunc)split8u, (SplitFunc)split8u, (SplitFunc)split16u, (SplitFunc)split16u,
- (SplitFunc)split32s, (SplitFunc)split32s, (SplitFunc)split64s, 0
+ (SplitFunc)GET_OPTIMIZED(split8u), (SplitFunc)GET_OPTIMIZED(split8u), (SplitFunc)GET_OPTIMIZED(split16u), (SplitFunc)GET_OPTIMIZED(split16u),
+ (SplitFunc)GET_OPTIMIZED(split32s), (SplitFunc)GET_OPTIMIZED(split32s), (SplitFunc)GET_OPTIMIZED(split64s), 0
};
static MergeFunc mergeTab[] =
{
- (MergeFunc)merge8u, (MergeFunc)merge8u, (MergeFunc)merge16u, (MergeFunc)merge16u,
- (MergeFunc)merge32s, (MergeFunc)merge32s, (MergeFunc)merge64s, 0
+ (MergeFunc)GET_OPTIMIZED(merge8u), (MergeFunc)GET_OPTIMIZED(merge8u), (MergeFunc)GET_OPTIMIZED(merge16u), (MergeFunc)GET_OPTIMIZED(merge16u),
+ (MergeFunc)GET_OPTIMIZED(merge32s), (MergeFunc)GET_OPTIMIZED(merge32s), (MergeFunc)GET_OPTIMIZED(merge64s), 0
};
}
dst = _dst.getMat();
if( depth == CV_8U )
- CvtColorLoop(src, dst, RGB2RGB<uchar>(scn, dcn, bidx));
+ {
+#ifdef HAVE_TEGRA_OPTIMIZATION
+ if(!tegra::cvtBGR2RGB(src, dst, bidx))
+#endif
+ CvtColorLoop(src, dst, RGB2RGB<uchar>(scn, dcn, bidx));
+ }
else if( depth == CV_16U )
CvtColorLoop(src, dst, RGB2RGB<ushort>(scn, dcn, bidx));
else
CV_Assert( (scn == 3 || scn == 4) && depth == CV_8U );
_dst.create(sz, CV_8UC2);
dst = _dst.getMat();
+
+#ifdef HAVE_TEGRA_OPTIMIZATION
+ if(code == CV_BGR2BGR565 || code == CV_BGRA2BGR565 || code == CV_RGB2BGR565 || code == CV_RGBA2BGR565)
+ if(tegra::cvtRGB2RGB565(src, dst, code == CV_RGB2BGR565 || code == CV_RGBA2BGR565 ? 0 : 2))
+ break;
+#endif
CvtColorLoop(src, dst, RGB2RGB5x5(scn,
code == CV_BGR2BGR565 || code == CV_BGR2BGR555 ||