Skip to content

Commit 075b34d

Browse files
haraschaxComma Device
authored andcommitted
Calibration Transform: border pad (commaai#31495)
1 parent 6c645ee commit 075b34d

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

selfdrive/modeld/transforms/transform.cl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,20 @@ __kernel void warpPerspective(__global const uchar * src,
2222
W = W != 0.0f ? INTER_TAB_SIZE / W : 0.0f;
2323
int X = rint(X0 * W), Y = rint(Y0 * W);
2424

25-
short sx = convert_short_sat(X >> INTER_BITS);
26-
short sy = convert_short_sat(Y >> INTER_BITS);
25+
int sx = convert_short_sat(X >> INTER_BITS);
26+
int sy = convert_short_sat(Y >> INTER_BITS);
27+
28+
short sx_clamp = clamp(sx, 0, src_cols - 1);
29+
short sx_p1_clamp = clamp(sx + 1, 0, src_cols - 1);
30+
short sy_clamp = clamp(sy, 0, src_rows - 1);
31+
short sy_p1_clamp = clamp(sy + 1, 0, src_rows - 1);
32+
int v0 = convert_int(src[mad24(sy_clamp, src_row_stride, src_offset + sx_clamp*src_px_stride)]);
33+
int v1 = convert_int(src[mad24(sy_clamp, src_row_stride, src_offset + sx_p1_clamp*src_px_stride)]);
34+
int v2 = convert_int(src[mad24(sy_p1_clamp, src_row_stride, src_offset + sx_clamp*src_px_stride)]);
35+
int v3 = convert_int(src[mad24(sy_p1_clamp, src_row_stride, src_offset + sx_p1_clamp*src_px_stride)]);
36+
2737
short ay = (short)(Y & (INTER_TAB_SIZE - 1));
2838
short ax = (short)(X & (INTER_TAB_SIZE - 1));
29-
30-
int v0 = (sx >= 0 && sx < src_cols && sy >= 0 && sy < src_rows) ?
31-
convert_int(src[mad24(sy, src_row_stride, src_offset + sx*src_px_stride)]) : 0;
32-
int v1 = (sx+1 >= 0 && sx+1 < src_cols && sy >= 0 && sy < src_rows) ?
33-
convert_int(src[mad24(sy, src_row_stride, src_offset + (sx+1)*src_px_stride)]) : 0;
34-
int v2 = (sx >= 0 && sx < src_cols && sy+1 >= 0 && sy+1 < src_rows) ?
35-
convert_int(src[mad24(sy+1, src_row_stride, src_offset + sx*src_px_stride)]) : 0;
36-
int v3 = (sx+1 >= 0 && sx+1 < src_cols && sy+1 >= 0 && sy+1 < src_rows) ?
37-
convert_int(src[mad24(sy+1, src_row_stride, src_offset + (sx+1)*src_px_stride)]) : 0;
38-
3939
float taby = 1.f/INTER_TAB_SIZE*ay;
4040
float tabx = 1.f/INTER_TAB_SIZE*ax;
4141

0 commit comments

Comments
 (0)