MIPI RAW10 data expansion by i.MX6Q

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

MIPI RAW10 data expansion by i.MX6Q

811 Views
shkolnyykonstan
Contributor III

I'm trying to receive RAW10 data from a MIPI camera. The camera is configured to send a test pattern. According to the manufacturer, it sends the following 10-bit values (shown as 16-bit with actual data in the 10 high bits):

ffc0, cc80, 9940, 6600, 3300, 0000

Instead, I receive them in memory like this:

expected     actual
value           value
c0 ff             ff ff
80 cc           b3 cc
40 99           66 99
00 66           19 66
00 33           0c 33
00 00           00 00

The high 10 bits contain the expected values. But the low 6 bits are not filled with 0 as I expected.
I think I see a pattern, though. i.MX6 takes the high byte, inverts it, and copies the resulting low 6 bits into the low 6 bits of the final value. Unless the high byte is ff or 00, in which case the 6 bits are all set or cleared, respectively,.

Is this the proper functioning of i.MX6? Can someone confirm?

Labels (3)
0 Kudos
2 Replies

506 Views
igorpadykov
NXP Employee
NXP Employee

Hi Konstantin

please check sect.40.5.15 RAW10 Data Reception i.MX6DQ Reference Manual

http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

506 Views
shkolnyykonstan
Contributor III

sect.40.5.15 shows how 4 10-bit pixels are packed in 5 bytes of memory. This is NOT what I observe. I observe that every 10-bit pixel takes 2 bytes of memory. If I simply remove all bytes at offsets 0, 2, 4, 6, ... (that is, remove the 2 least significant RAW10 bits and the 6 bits added by i.MX6)  I get the same picture as I get in RAW8 mode where every pixel takes 1 byte. So, I guess, now we have 2 problems:

1) Who expands RAW10 pixels to 16 bits?

2) How are the added 6 bits generated? (original question)

0 Kudos