В настоящее время я имею дело с программным обеспечением для обработки видео, в котором данные изображения (8-битные со знаком и без знака) хранятся в массивах из 16-ти целых чисел, выделенных как
__declspec(align(16)) int *pData = (__declspec(align(16)) int *)_mm_malloc(width*height*sizeof(int),16);
В общем, разве это не позволило бы ускорить чтение и запись, если бы кто-нибудь использовал массивы символов со знаком или без знака, как это?:
__declspec(align(16)) int *pData = (__declspec(align(16)) unsigned char *)_mm_malloc(width*height*sizeof(unsigned char),16);
Я мало знаю о размере строк кэша и оптимизации передачи данных, но, по крайней мере, я знаю, что это проблема. Кроме того, SSE будет использоваться в будущем, и в этом случае char-массивы, в отличие от массивов int, уже имеют формат упакованный . Так какая версия будет быстрее?