PXP Rotation with destination offsets not divisible by BLOCK_SIZE?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

PXP Rotation with destination offsets not divisible by BLOCK_SIZE?

1,211 Views
AndyCapon
Contributor II

Hi Guys,

If I do a PXP rotate to coordinates divisible by the BLOCK_SIZE then everything looks good. I am using a block size of 8x8,  coords = 128, 128:

IMG_0029.jpg

 

coords = 132, 132. Not so good:

IMG_0030.jpg

I am setting the ps buffer config 

.bufferAddr  = (uint32_t)s_psBufferPxp - uSourceOffset

Where:

 uint16_t uSourceOffset = (uXTop%8)   * 2;

 

Is it possible to rotate to offsets within the blocks or does PXP only support rotation to coordinates divisible by the block size?

 

Cheers

 

Andy

 

0 Kudos
Reply
2 Replies

1,201 Views
AndyCapon
Contributor II

Ok I "Fixed" the issue by calculating the destination address and changing outputBufferConfig.buffer0Addr.

Then setting outputBufferConfig.height to the width of my source buffer.

And using PXP_SetProcessSurfacePosition() with a an upper x and y of 0 and the lower x and y set to height and width.

This all seems a bit strange, am I misunderstanding what PXP_SetProcessSurfacePosition does?

This approach seems to be 1.4 times faster and works!

0 Kudos
Reply

1,175 Views
Alexis_A
NXP TechSupport
NXP TechSupport

Hello @AndyCapon,

I think this problem shown is addressed in section 36.4.26 of the RM, not calculating the surface position correctly could cause one of the two following cases:

Alexis_A_0-1617810749419.png

Best Regards,

Alexis Andalon

 

0 Kudos
Reply