Если вы попробуете это для различных значений, вы увидите, что оно на самом деле заставляет (ширина * 3) округлять до наименьшего кратного 4, которое будет содержать его.Он, вероятно, делает это, чтобы заставить вещи быть выровненными 32-битным.
Использование python:
>>> f = lambda x: ((x * 3) + 3) & 0xFFFC
>>> [f(x) for x in range(1, 20)]
[4, 8, 12, 12, 16, 20, 24, 24, 28, 32, 36, 36, 40, 44, 48, 48, 52, 56, 60]
Ниже показано различие между простым умножением и округлением вверх до кратного4
>>> [(3*x, f(x)) for x in range(1, 8)]
[(3, 4), (6, 8), (9, 12), (12, 12), (15, 16), (18, 20), (21, 24)]
Я удивлен, что код фактически не документирует этот факт.Переплетение битов - замечательная вещь, но это может показаться очень произвольным.