DLP VGA-> HVGA conversion

The DLP contains 320x480 pixels but presents itself as a 640x480 device so somewhere some conversion
of the image must take place, does anyone know where I can find the technical details for this please?

I have tried various patterns and it isn’t clear to me how the down conversion is bring performed.

Cheers,

SA

It seems to make some rescaling. Circles become ellipses.

R.

I still cannot work out how the DLP scales 640480->480320 but it is quite important
because some of the artifacts it introduces are quite striking and very noticable (see
enclosed code).

Since the DLP can (apparently accept HVGA) can I make the beagleboard change
resolution to 480*320?

Cheers,
SA

#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <linux/fb.h>

main(){

int fbdev;
unsigned int *fb;
int x,y,px;
unsigned int bg=0,fg=0xffffff;

fbdev=open("/dev/fb0", O_RDWR);
fb=(unsigned int )mmap(0, 640480*sizeof(unsigned int), PROT_WRITE, MAP_SHARED, fbdev, 0);

int step=8,start=0,n=0;
// blank screen
for(y=0;y<480;y++){
for(x=0;x<640;x++){
fb[x+y*640]=bg;
}
}

// h-line
for(x=0;x<640;x++){
fb[x+200640]=fg;
}
// tick marks
for(x=0;x<640;x+=8){
fb[x+201
640]=fg;
}

// moving lines
for(n=0;n<100;n++){
for(start=0;start<step;start++){
for(y=0;y<199;y++){
for(x=0;x<640;x++){
fb[x+y640]=bg;
}
}
for(y=0;y<199;y++){
for(x=start;x<640;x+=step){
fb[x+y
640]=fg;
}
}
usleep(500000);
}
}
}

No. And AFAIR the pico do not accept 480x320.

What do you want to do? Maybe I can help you.

R.

because some of the artifacts it introduces are quite striking and very
noticable (see
enclosed code).

Since the DLP can (apparently accept HVGA) can I make the beagleboard change
resolution to 480*320?

No. And AFAIR the pico do not accept 480x320.

What do you want to do? Maybe I can help you.

R.

For my application I need detailed single pixel / mirror control - basically I want to park the mirrors
one way or the other and I don’t want any colour dithering. The vga->hvga conversion plus other processing
in the DLP chipset is introducing visually obvious artifacts making it clear that it is going to be difficult
to achieve this. If I could drive the DLP at its native resolution HVGA then I could eliminate at least
one part of this problem. Alternatively if I knew VGA->HVGA conversion algorithm (and disabled
the artifact suppression and image enhancement in the DLP chipset) I could (possibly) preprocess the
image to undo the effects of the conversion.

According to the documentation HVGA and QVGA downloading is possible via “cpu mode” rather than
DVI-D mode which can be setup via the I2C but it is unclear if this requires specialist hardware to drive
(the CPU mode interface is over the HDMI connector and the signal chain looks incredibly similar).

Any ideas?

Basically I need to feed the DLP with something that creates a pattern consisting of 100% ons and 100% offs
for the pixels and I want the simplest (and fastest) method.

Cheers,

SA