Я посмотрел на этот пример https://github.com/googlesamples/android-BasicRenderScript. В этом проекте у них есть следующая строка:
mInAllocation = Allocation.createFromBitmap(rs, mBitmapIn);
, где mBitmapIn имеет тип Bitmap, представляющий изображение для обработки.Позже они асинхронно вызывают функцию ядра с именем saturation в файле .rs через AsyncTask:
mScript.forEach_saturation(mInAllocation, mOutAllocations[index]);
В файле saturation.rs они имеют:
uchar4 __attribute__((kernel)) saturation(uchar4 in)
{
float4 f4 = rsUnpackColor8888(in);
...
Из этого потока Renderscript, что такое параметр `in`? Я знаю, что параметр 'in' указывает на данные, которые нужно обработать (в нашем случае это пиксель, верно?) Итак, я знаю, что пиксель состоитиз 4 цветовых каналов, и поэтому они используют uchar4 , который является вектором 4 учаров (см. https://developer.android.com/guide/topics/renderscript/reference/rs_value_types.html#android_rs:uchar4).Но почему учар ?Почему бы, скажем, не uint4 ?Или прямо уфлоат4 ??