@@ -688,7 +688,7 @@ template<typename _Tp> struct RGB2RGB
688
688
for ( int i = 0 ; i < n; i += 4 )
689
689
{
690
690
_Tp t0 = src[i], t1 = src[i+1 ], t2 = src[i+2 ], t3 = src[i+3 ];
691
- dst[i] = t2 ; dst[i+1 ] = t1; dst[i+2 ] = t0 ; dst[i+3 ] = t3;
691
+ dst[i+bidx ] = t0 ; dst[i+1 ] = t1; dst[i+(bidx^ 2 ) ] = t2 ; dst[i+3 ] = t3;
692
692
}
693
693
}
694
694
}
@@ -802,25 +802,25 @@ template<> struct RGB2RGB<uchar>
802
802
for ( ; i <= n - 64 ; i += 64 )
803
803
{
804
804
uint8x16x4_t v_src = vld4q_u8 (src + i), v_dst;
805
- v_dst.val [0 ] = v_src.val [2 ];
805
+ v_dst.val [0 ] = v_src.val [bidx ];
806
806
v_dst.val [1 ] = v_src.val [1 ];
807
- v_dst.val [2 ] = v_src.val [0 ];
807
+ v_dst.val [2 ] = v_src.val [bidx^ 2 ];
808
808
v_dst.val [3 ] = v_src.val [3 ];
809
809
vst4q_u8 (dst + i, v_dst);
810
810
}
811
811
for ( ; i <= n - 32 ; i += 32 )
812
812
{
813
813
uint8x8x4_t v_src = vld4_u8 (src + i), v_dst;
814
- v_dst.val [0 ] = v_src.val [2 ];
814
+ v_dst.val [0 ] = v_src.val [bidx ];
815
815
v_dst.val [1 ] = v_src.val [1 ];
816
- v_dst.val [2 ] = v_src.val [0 ];
816
+ v_dst.val [2 ] = v_src.val [bidx^ 2 ];
817
817
v_dst.val [3 ] = v_src.val [3 ];
818
818
vst4_u8 (dst + i, v_dst);
819
819
}
820
820
for ( ; i < n; i += 4 )
821
821
{
822
822
uchar t0 = src[i], t1 = src[i+1 ], t2 = src[i+2 ], t3 = src[i+3 ];
823
- dst[i] = t2 ; dst[i+1 ] = t1; dst[i+2 ] = t0 ; dst[i+3 ] = t3;
823
+ dst[i+bidx ] = t0 ; dst[i+1 ] = t1; dst[i+(bidx^ 2 ) ] = t2 ; dst[i+3 ] = t3;
824
824
}
825
825
}
826
826
}
0 commit comments