﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
201	Subtract Bias Module	gusciora@…	eugene	"What data types should the bias subtraction module be implemented for?

There are many requirements dependent on the values of the various
parameters to this functions.  In several cases, these requirements are
contradictory.  For example, what are we to do if the bias image is
non-Null, yet the overscans is non-NULL and overscanaxis is ROW or COL?  If
we filled out a full binary truth table for all the options in the function
prototype and the requirements specified in the SDR, there will be many
contradictory actions.

The SDR states that multiple overscans may be specified.  If so, how are we
to use them?  Also, can I assume that they all have the same size?

What is a ""prescan"" region?  How is it to be used?

What is the point of fitting a spline to this vector?  A spline will
interpolate between the supplied data points, but does not change the
supplied data points.  If I have an image with 512 rows, a bias vector with
512 elements, fit a spline to that vector, then subtract that vector, the
values subtracted will be no different then if the spline had not been fit.

""fitSpec"" is to be interpreted as type psPolynomial1D or psSPline1D.  Can I
assume you mean a pointer to one of those types?

The SDR states that a warning shall be generated if the overscanAxis is
PM_OVERSCAN_NONE or PM_OVERSCAN_ALL and the ""fit"" is PM_FIT_NONE.  What then?
Return NULL, or return the original image, or maybe subtract the bias
readout?

This may be obvious to you.  SDR states that if the overscan is not defined
for each row/column, then interpolate using the functional form specified in
""fit"".  Can I assume that this means:
    1: Compute a overscan vector.
    2: Create a new overscan vector with a size equal to the row/column of
       the image..
    3: For each element of the new overscan vector, use the specified type
       of interpolation ""fit"" to determine what that value is in the
       original overscan vector?
Also, can I assume this is to be performed before any binning?

The Modules SDR states that the bias image need not be the same size as the
input image.  The function should use the offsets (in->x0 and in->y0) to
determine the correct pixel in the bias image.
    Q1: There are no in->x0 and in->y0 members in the psImage data structure.
        Do you mean the row0 and col0 members?

    Q2: If so, how are the offsets to be used?
            Does image[i][j] correspond to bias[i + in->x0][j + in->y0]?
            Does image[i + in->x0][j + in->y0] correspond to bias[i][j]?
        Robert had another suggestion:
            image[i][j] corresponds to
            bias[i+in->row0-bias->row0][j+in->col0-bias->col0]

    Q3: ""in"" is of type psReadout, and has members row0 and col0.  ""in"" also
        has a member of type psImage which has members row0 and col0.  Can
        I assume that those row0/col0 members will be equal?  If not, which
        ones should I use?"	defect	closed	high		IPP SDRS	unspecified	normal	fixed		
