Hi,
Page 67 in SPRUGN1C.pdf (VICP Computation Unit Library) specifies the memory conflict factor for imxenc_array_op depending on the location of the input buffers and the output buffer. In the VICP signal processing library, the arrayOp implementation puts all three in the image buffer, resulting in a memory conflict factor of 3. I'd like to get rid of the memory conflict factor by moving the input vectors to the coefficient memory instead.
I haven't tried modifying _CPIS_setDmaInTransfers to put the data in the coefficient memory instead, but I thought I would at least be able to change (in _arrayOp.c):
info.cmdlen += imxenc_array_op(
(Int16*)info.imgbufptr,
(Int16*)(info.imgbufptr + block_size),
(Int16*)(info.imgbufptr) [...]
to
memcpy((Int16*)info.coefptr, (Int16*)(info.imgbufptr + block_size), block_size);
info.coeflen += block_size;
info.cmdlen += imxenc_array_op(
(Int16*)info.imgbufptr,
(Int16*)info.coefptr,
(Int16*)(info.imgbufptr) [...]
but that results in verification errors.