[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено KPAH 18 июля 2006 г. 14:28
В ответ на: Ok..спасибо..вот например давайте попробуем этот кусочек.(в теле сообщения) отправлено Hanzo 18 июля 2006 г. 12:34

В таком виде вряд ли что-то получится - у вас данные организованы как массив структур. то есть (я делаю предположение что есть только LIST_0 и LIST_1):

struct my_struct {
ucRefFrameNum[2];
ucRefFrameIndex[2];
}
my_struct my_array_of_structs[16];

Обычно это неускоряемо.

сделайте так (это называется структура массивов):

struct my_struct_of_arrays {
ucRefFrameNum_LIST_0[16];
ucRefFrameNum_LIST_1[16];
ucRefFrameIndex_LIST_0[16];
ucRefFrameIndex_LIST_1[16];
}
my_struct_of_arrays variable;

код обнуления будет таким:

const long long MAGIC_VALUE = (INVALID_REF_FRAME<<56) | (INVALID_REF_FRAME<<48) | .... INVALID_REF_FRAME;
inline void foo(my_struct_of_arrays & restrict &S)
{
long long * restrict RF_L0 = (long long * restrict)&S.ucRefFrameNum_LIST_0[0]; // 1 такт
long long * restrict RFI_L1 = (long long * restrict)&S.ucRefFrameNum_LIST_1[0]; // на все 4
long long * restrict RFI_L0 = (long long * restrict)&S.ucRefFrameIndex_LIST_0[0]; // указателя
long long * restrict RFI_L1 = (long long * restrict)&S.ucRefFrameIndex_LIST_1[0]; // скорее всего
RF_L0[0] = MAGIC_VALUE; RF_L0[1] = MAGIC_VALUE; // 2 такта если будет выравнивание
RF_L1[0] = MAGIC_VALUE; RF_L1[1] = MAGIC_VALUE; // 2 такта если будет выравнивание
RFI_L0[0] = MAGIC_VALUE; RFI_L0[1] = MAGIC_VALUE; // 2 такта если будет выравнивание
RFI_L1[0] = MAGIC_VALUE; RFI_L1[1] = MAGIC_VALUE; // 2 такта если будет выравнивание
}

Итого: ориентировочно 9 тактов на всё.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание