From SPRU977A–March 2008 page 39:
Data is right-shifted to align the data in the least significant bits of the data bus and provide the
maximum dynamic range for the remainder of the processing (SYN_MODE.DATSIZ). This also sets
the maximum data size allowed in subsequent clipping/limiting operations and is the output data
alignment if data is written to DDR2.
We are using a 12bit camera chip and generating a test pattern of "walking ones" where the pixel data sequence is 0x0001, 0x0002, 0x0004,0x0008, etc. When we reduce the data size down we lose high order bits instead of the low order bits like I would expect if the data were right shifted. We get the expected results at 12 bits. I did not change anything other than the SYN_MODE.DATSIZ field.
Does the VPFE not do the right shift stated in the documentation?