Поскольку это прямоугольник angular (комментарии), эффективный способ сделать это - преобразовать данные в обычный плоский вектор объединенного размера и, по существу, передать:
message IntArray{
repeated int32 IntVal=1 [packed=true];
int32 Width=2;
}
Высота подразумевается общий размер, деленный на ширину. Упакованное кодирование здесь также важно, хотя теперь оно может быть неявным / автоматическим c в зависимости от того, какой именно инструмент вы используете.