32bpp -> 16bpp changing pixel information?

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

32bpp -> 16bpp changing pixel information?

1,035 Views
woutervh
Contributor IV

We are using a imx53 with kernel 2.6.35-maintain with following settings:

boot parameters: mxcdi0fb:RGB24,CUSTOM-1920x1080,bpp=32

static struct fb_videomode video_modes[] = {
{{
/* 1920x1080 @ 60 Hz , pixel clk @ 148Mhz */
"CUSTOM-1920x1080", 60, 1920, 1080, 6734, 148, 88, 36, 4, 44, 5,
0,
FB_VMODE_NONINTERLACED,
0,}};

static struct mxc_fb_platform_data fb_data[] = {

{
.interface_pix_fmt = IPU_PIX_FMT_RGB24,
.mode_str = "CUSTOM-1920x1080",
.mode = video_modes,
.num_modes = ARRAY_SIZE(video_modes),
},

However, on continuous video stream playback , screens were blacking out after a while with IPU int errors. Turned out the IPU had difficulties keeping up. Changing boot parameters to mxcdi0fb:RGB16,CUSTOM-1920x1080,bpp=16 solved the video issue. So everything looked ok at that time.

However, we have a different hardware, having the previous output as an input, which really interpretes some colors on pixel level. Here we see, colors are not correct anymore. Even if we use only the upper 4 bits for interpretation. I would have assumed that going from 8 - 8 - 8 to 6 - 5 -6 would only drop the LSB's from the color, but that does not seem to be the case? Anyone knows how the conversion is done? And why is it rounding up pixel data?

Our application, generating this specific pixel data is running in a browser on X11 if that matters some way

Labels (4)
0 Kudos
1 Reply

864 Views
joanxie
NXP TechSupport
NXP TechSupport

I'm confused with your question, what format do you need? if you need to change the format, you also need to change the IPU_PIX_FMT_XX  in the mxc_ipuv3_fb.c

0 Kudos