[sane-devel] genesys backend

Stéphane VOLTZ stefdev at modulonet.fr
Mon Aug 29 20:22:07 UTC 2005


Le Lundi 29 Août 2005 20:01, Pierre Willenbrock a écrit :
> Hi
>
> As promised
>
> Pierre Willenbrock schrieb:
> > Next i will implement the slope table generation in the way Stéphane
> > suggested.
>
> i am sending the result of this work. I introduced a new flag
> GENESYS_FLAG_ALT_SLOPE_CREATE to indicate that the alternate slope
> creation functions should be used.
>
> Apart from that the patch contains my version of
> sanei_genesys_exposure_time(called sanei_genesys_exposure_time2 to not
> collide with uses of the other function) and a few bug fixes:
>  * size argument of sanei_genesys_create_gamma_table changed from float
> to int
>  * sanei_genesys_read_reg_from_set and sanei_genesys_set_reg_from_set
> check for address of current register. If this is 0 they should stop.
>  * fixed raw data dumping: should write first set of data and close file
>  * moved call to sanei_genesys_init_structs to before init_options as
> init_options depends on an initialized device struct.
>
> Next i'd like to rewrite genesys_read_ordered_data to be more
> maintainable and able to convert the cis style planar data to "chunky"
> data.
>       
        It is indeed a rather complicated function. Data doesn't come in an 
easy form. But I don't exactly see why you want to convert to planar data
first.

> For that i need to know what the "stagger" effect exactly is. I am not
> sure i got that one right.
>

        At high motor resolution, lines are staggered, ie they aren't
horizontal lines. On pixel is on a line, the folowing colunm is on another ...
        A drawing may be more evident:

        'O' are pixel of on horizontal line, '.' other lines data

        ...O.....O.....O.....O.....O.....O.....O
        ..O.O...O.O...O.O...O.O...O.O...O.O...O.
        .O...O.O...O.O...O.O...O.O...O.O...O.O..
        O.....O.....O.....O.....O.....O.....O...



> The conversion stack i have in mind looks like this:
>
>   1. (opt)uncis         (assumes color components to be laid out planar)
>   2. (opt)unstagger     (assumes pixels to be depth*channels/8 bytes,
> unshrinked)
>   3. (opt)shrink_lines  (assumes pixels to be depth*channels/8 bytes)
>   4. (opt)reverse_RGB   (assumes pixels to be BGR or BBGGRR))
> here we should save the finished lines for use with line distance
> correction 5. (opt)line_distance_correction (assumes RGB or RRGGBB)
>
> My implementation currently used for Canon LiDE 35 does quite a lot byte
> moving which considerably slows down the conversion, and is probably not
> correct regarding the stagger effect.
>
> Regards,
>   Pierre

        I'll test and check in your patch Wednesday morning.

Regards,
        Stef
 





More information about the sane-devel mailing list