Так берите сумму 2-х соответсвующих отсчетов вх. данных и умножайте ее на к-т фильтра. Получите (N-1)/2 суммирований и столько же умножений-накопленний. Плюс еще одно уножение накопление на средний к-т.
Исходно: y(k)=sum(data[n+k]*h(N-1-n]), сумма по n, от 0 до N-1. Учет симметрии y[k]={sum((data[k+n]+data[k+N-1-n])*h(N-1-n)}+data[k+(N-1)/2]*h[(N-1)/2]. Сумма тоже по n, но от 0 до (N-1)/2. Будет выигрыш, если имеется аппаратная поддержка или если умножение существеннее медленнеее сложения. При антисимметричных фильтрах сумма данных заменяется разностью, кстати.