Part Number: TDA3
We are working on Rotating of an 1280 x 768 image by 90 degree by using the Rotate kernel provided in the eve_sw_01_12_00_00 software.
In the process of the same we are using the autoincrement DMA transfer to transfer a block of 64 x 64 from the input image to the internal memory of EVE.
But while writing the 64x64 processed block to the output memory, we are not able to configure the output transfer parameters . To explain the scenario better i have taken a 4 x 3 matrix as the input image and after rotation the 4x3 matrix will become 3 x 4 matrix.
Consider a, b,c,d as 64 x 64 block
| a | b | c | d |
| e | f | g | h |
| i | j | k | l |
After Rotation
| d | h | l |
| c | g | k |
| b | f | j |
| a | e | i |
Input blocks to be transferred to the internal memory will be in the sequence a, b , c ,d.......
But while writing to the output buffer first block will come in the last row. So for each input block processing, I have to jump by a stride of (64 x 768) to place the b block into the output buffer.
Please find the dma transfer properties given below for the output transfer and correct me if I am wrong.
| initParam.transferProp[1].roiWidth | 768 |
| initParam.transferProp[1].roiHeight | 1280 |
| initParam.transferProp[1].roiOffset | 0 |
| initParam.transferProp[1].blkWidth | 64 |
| initParam.transferProp[1].blkHeight | 64 |
| initParam.transferProp[1].extBlkIncrementX | 0 |
| initParam.transferProp[1].extBlkIncrementY | -64 |
| initParam.transferProp[1].intBlkIncrementX | 0 |
| initParam.transferProp[1].intBlkIncrementY | 0 |
| initParam.transferProp[1].extMemPtrStride | 1280 |
| initParam.transferProp[1].interMemPtrStride | 64 |
| initParam.transferProp[1].extMemPtr | ptr+(1280-64)*768 |
| initParam.transferProp[1].interMemPtr | |
| initParam.transferProp[1].dmaQueNo | |
| initParam.transferProp[1].interMemPtr | blkptr |
| initParam.transferProp[1].dmaQueNo |
Regards,
Sritam