AnsweredAssumed Answered

PXP PS Scaling

Question asked by Steve Schefter on Jun 11, 2019

Can someone clarify the setting of the PS Scale Factor Register (PXP_PS_SCALE) in the Pixel Pipeline?

The description in the iMX6 RMs is a tad confusing/incomplete.


The manual says that each X/Y scale is "two bit integer and 12 bit fractional representation" (total 14 bits) but shows the scales occupying 15 bits each (plus a single reserved bit to make up one 16 bit half-word).  Am I correct to assume they are really 14 bits each (bits 29-16, 13-0) plus two reserved bits?


Next, the manual says "The reciprocal of the scale factor should be loaded into this register", but it is not clear how to make a "reciprocal" out of the above bit fields.


The following up scaling examples are provided:
00.0100_0000_0000    scale up by 4
00.0010_0000_0000    scale up by 2
00.1010_0000_0000    scale up by 8/5

Especially with the last one I don't see where they are getting the register settings.

The 2x and 4x examples might make sense to me, except that I wonder why the most significant nibble is being set.  And how, in that case, would you represent a scaling factor of 0x20 for example?