Struct rk3399_pac::Isp1
source · pub struct Isp1 { /* private fields */ }
Expand description
Image Signal Processor 1 (ISP1) Registers
Implementations§
source§impl Isp1
impl Isp1
sourcepub const PTR: *const RegisterBlock = {0xff920000 as *const isp::RegisterBlock}
pub const PTR: *const RegisterBlock = {0xff920000 as *const isp::RegisterBlock}
Pointer to the register block
sourcepub const fn ptr() -> *const RegisterBlock
pub const fn ptr() -> *const RegisterBlock
Return the pointer to the register block
sourcepub unsafe fn steal() -> Self
pub unsafe fn steal() -> Self
Steal an instance of this peripheral
§Safety
Ensure that the new instance of the peripheral cannot be used in a way that may race with any existing instances, for example by only accessing read-only or write-only registers, or by consuming the original peripheral and using critical sections to coordinate access between multiple new instances.
Additionally, other software such as HALs may rely on only one peripheral instance existing to ensure memory safety; ensure no stolen instances are passed to such software.
Methods from Deref<Target = RegisterBlock>§
sourcepub fn img_eff_ctrl(&self) -> &ImgEffCtrl
pub fn img_eff_ctrl(&self) -> &ImgEffCtrl
0x200 - Global control register
Note: full_range for image effects is supported in ISP M5_v6, M5_v7 only
sourcepub fn img_eff_color_sel(&self) -> &ImgEffColorSel
pub fn img_eff_color_sel(&self) -> &ImgEffColorSel
0x204 - Color selection register (for color selection effect)
sourcepub fn img_eff_mat_1(&self) -> &ImgEffMat1
pub fn img_eff_mat_1(&self) -> &ImgEffMat1
0x208 - 3x3 matrix coefficients for emboss effect (1)
Note: possible values for coefficients: 000 (1), 001 (2), 010 (4), 011 (8),100 (-1), 101
(-2), 110 (-4), 111 (-8)
sourcepub fn img_eff_mat_2(&self) -> &ImgEffMat2
pub fn img_eff_mat_2(&self) -> &ImgEffMat2
0x20c - 3x3 matrix coefficients for emboss effect (2)
sourcepub fn img_eff_mat_3(&self) -> &ImgEffMat3
pub fn img_eff_mat_3(&self) -> &ImgEffMat3
0x210 - 3x3 matrix coefficients for emboss(3) effect /
sketch/sharpen(1) effect
Note: possible values for
coefficients: 000 (1), 001 (2), 010
(4), 011 (8),
100 (-1), 101 (-2), 110 (-4), 111 (-8)
sourcepub fn img_eff_mat_4(&self) -> &ImgEffMat4
pub fn img_eff_mat_4(&self) -> &ImgEffMat4
0x214 - 3x3 matrix coefficients for sketch/sharpen effect (2)
Note: possible values for coefficients: 000 (1), 001 (2), 010 (4), 011 (8),
100 (-1), 101 (-2), 110 (-4), 111 (-8)
sourcepub fn img_eff_mat_5(&self) -> &ImgEffMat5
pub fn img_eff_mat_5(&self) -> &ImgEffMat5
0x218 - 3x3 matrix coefficients for sketch/sharpen effect (3)
Note: possible values for coefficients: 000 (1), 001 (2), 010 (4), 011 (8),
100 (-1), 101 (-2), 110 (-4), 111 (-8)
sourcepub fn img_eff_tint(&self) -> &ImgEffTint
pub fn img_eff_tint(&self) -> &ImgEffTint
0x21c - Chrominance increment values of a tint (used for sepia effect)
Note: Calculation process of incr_cr and incr_cb:
tint values given in RGB format: R G B
converted to Cb and Cr: Cb = -0.148R - 0.291G + 0.439B + 128 Cr = 0.439R -
0.368G - 0.071B + 128
calculating of the increments inc_Cb = (128 – Cb)/110 inc_Cr = (128 – Cr)/110
register entry of the increments with an accuracy of 1/64 incr_cb = inc_Cb * 64
incr_cr = inc_Cr * 64
sourcepub fn img_eff_ctrl_shd(&self) -> &ImgEffCtrlShd
pub fn img_eff_ctrl_shd(&self) -> &ImgEffCtrlShd
0x220 - Shadow register for control register
sourcepub fn img_eff_sharpen(&self) -> &ImgEffSharpen
pub fn img_eff_sharpen(&self) -> &ImgEffSharpen
0x224 - Factor and threshold for sharpen effect
Note: For the sharpening effect the convolution mask must be set to the values [-1 -1 -1;
-1 8 -1; -1 -1 -1].
The convolution mask for sharpening is defined by the values sket_coef_xx in registers
IMG_EFF_MAT_3 through IMG_EFF_MAT_5. Sketch effect and sharpening effect share the
same mask registers.
sourcepub fn super_imp_ctrl(&self) -> &SuperImpCtrl
pub fn super_imp_ctrl(&self) -> &SuperImpCtrl
0x300 - Global control register
Note: in the bypass mode the data stream from Image
Effect is transmitted to MUX module without overlaying
sourcepub fn super_imp_offset_x(&self) -> &SuperImpOffsetX
pub fn super_imp_offset_x(&self) -> &SuperImpOffsetX
0x304 - Offset x register
sourcepub fn super_imp_offset_y(&self) -> &SuperImpOffsetY
pub fn super_imp_offset_y(&self) -> &SuperImpOffsetY
0x308 - Offset y register
Note: the offset_y is positive and refers to the
reference image
sourcepub fn acq_h_offs(&self) -> &AcqHOffs
pub fn acq_h_offs(&self) -> &AcqHOffs
0x408 - horizontal input offset
sourcepub fn acq_v_offs(&self) -> &AcqVOffs
pub fn acq_v_offs(&self) -> &AcqVOffs
0x40c - vertical input offset
sourcepub fn acq_h_size(&self) -> &AcqHSize
pub fn acq_h_size(&self) -> &AcqHSize
0x410 - horizontal input size
sourcepub fn acq_v_size(&self) -> &AcqVSize
pub fn acq_v_size(&self) -> &AcqVSize
0x414 - vertical input size
sourcepub fn acq_nr_frames(&self) -> &AcqNrFrames
pub fn acq_nr_frames(&self) -> &AcqNrFrames
0x418 - Number of frames to be captured
sourcepub fn gamma_dx_lo(&self) -> &GammaDxLo
pub fn gamma_dx_lo(&self) -> &GammaDxLo
0x41c - De-Gamma Curve definition lower x increments (sampling points)
sourcepub fn gamma_dx_hi(&self) -> &GammaDxHi
pub fn gamma_dx_hi(&self) -> &GammaDxHi
0x420 - De-Gamma Curve definition higher x increments (sampling points)
sourcepub fn gamma_r_y(&self, n: usize) -> &GammaRY
pub fn gamma_r_y(&self, n: usize) -> &GammaRY
0x424..0x468 - De-Gamma Curve definition y red n (n=0..16)
Note: The reset values define a linear curve which has the same effect as bypass.
Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04
= 0x0400,Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800, Y_09 =
0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 = 0x0D00, Y_14 =
0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF
sourcepub fn gamma_r_y_iter(&self) -> impl Iterator<Item = &GammaRY>
pub fn gamma_r_y_iter(&self) -> impl Iterator<Item = &GammaRY>
Iterator for array of: 0x424..0x468 - De-Gamma Curve definition y red n (n=0..16)
Note: The reset values define a linear curve which has the same effect as bypass.
Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04
= 0x0400,Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800, Y_09 =
0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 = 0x0D00, Y_14 =
0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF
sourcepub fn gamma_g_y(&self, n: usize) -> &GammaGY
pub fn gamma_g_y(&self, n: usize) -> &GammaGY
0x468..0x4ac - De-Gamma Curve definition y green n (n=0..16)
Note: The reset values define a linear curve which has the same effect as bypass.
Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04
= 0x0400,Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800, Y_09 =
0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 = 0x0D00, Y_14 =
0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF
sourcepub fn gamma_g_y_iter(&self) -> impl Iterator<Item = &GammaGY>
pub fn gamma_g_y_iter(&self) -> impl Iterator<Item = &GammaGY>
Iterator for array of: 0x468..0x4ac - De-Gamma Curve definition y green n (n=0..16)
Note: The reset values define a linear curve which has the same effect as bypass.
Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04
= 0x0400,Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800, Y_09 =
0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 = 0x0D00, Y_14 =
0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF
sourcepub fn gamma_b_y(&self, n: usize) -> &GammaBY
pub fn gamma_b_y(&self, n: usize) -> &GammaBY
0x4ac..0x4f0 - De-Gamma Curve definition y blue n (n=0..16)
Note: The reset values define a linear curve which has the same effect as bypass.
Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04
= 0x0400,
Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800,
Y_09 = 0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 =
0x0D00, Y_14 = 0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF
sourcepub fn gamma_b_y_iter(&self) -> impl Iterator<Item = &GammaBY>
pub fn gamma_b_y_iter(&self) -> impl Iterator<Item = &GammaBY>
Iterator for array of: 0x4ac..0x4f0 - De-Gamma Curve definition y blue n (n=0..16)
Note: The reset values define a linear curve which has the same effect as bypass.
Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04
= 0x0400,
Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800,
Y_09 = 0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 =
0x0D00, Y_14 = 0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF
sourcepub fn awb_prop(&self) -> &AwbProp
pub fn awb_prop(&self) -> &AwbProp
0x510 - Auto white balance properties
Note: The following conversion matrix is used for calculating the YCbCr values:
Y = 16 + 0.2500 R + 0.5000 G + 0.1094 B
Cb = 128 - 0.1406 R - 0.2969 G + 0.4375 B
Cr = 128 + 0.4375 R - 0.3750 G - 0.0625 B
sourcepub fn awb_h_offs(&self) -> &AwbHOffs
pub fn awb_h_offs(&self) -> &AwbHOffs
0x514 - Auto white balance horizontal offset of measure window
sourcepub fn awb_v_offs(&self) -> &AwbVOffs
pub fn awb_v_offs(&self) -> &AwbVOffs
0x518 - Auto white balance vertical offset of measure window
sourcepub fn awb_h_size(&self) -> &AwbHSize
pub fn awb_h_size(&self) -> &AwbHSize
0x51c - Auto white balance horizontal window size
sourcepub fn awb_v_size(&self) -> &AwbVSize
pub fn awb_v_size(&self) -> &AwbVSize
0x520 - Auto white balance vertical window size
sourcepub fn awb_frames(&self) -> &AwbFrames
pub fn awb_frames(&self) -> &AwbFrames
0x524 - Auto white balance mean value over multiple frames
sourcepub fn awb_thresh(&self) -> &AwbThresh
pub fn awb_thresh(&self) -> &AwbThresh
0x52c - Auto white balance threshold values
sourcepub fn awb_gain_g(&self) -> &AwbGainG
pub fn awb_gain_g(&self) -> &AwbGainG
0x538 - Auto white balance gain green
sourcepub fn awb_gain_rb(&self) -> &AwbGainRb
pub fn awb_gain_rb(&self) -> &AwbGainRb
0x53c - Auto white balance gain red and blue
sourcepub fn awb_white_cnt(&self) -> &AwbWhiteCnt
pub fn awb_white_cnt(&self) -> &AwbWhiteCnt
0x540 - Auto white balance white pixel count
sourcepub fn cc_coeff_0(&self) -> &CcCoeff0
pub fn cc_coeff_0(&self) -> &CcCoeff0
0x570 - Color conversion coefficient 0
Note: all color conversion coefficients are signed integer values with 7 bit fractional
part, range -2 to 1.992
sourcepub fn cc_coeff_1(&self) -> &CcCoeff1
pub fn cc_coeff_1(&self) -> &CcCoeff1
0x574 - Color conversion coefficient 1
sourcepub fn cc_coeff_2(&self) -> &CcCoeff2
pub fn cc_coeff_2(&self) -> &CcCoeff2
0x578 - Color conversion coefficient 2
sourcepub fn cc_coeff_3(&self) -> &CcCoeff3
pub fn cc_coeff_3(&self) -> &CcCoeff3
0x57c - Color conversion coefficient 3
sourcepub fn cc_coeff_4(&self) -> &CcCoeff4
pub fn cc_coeff_4(&self) -> &CcCoeff4
0x580 - Color conversion coefficient 4
sourcepub fn cc_coeff_5(&self) -> &CcCoeff5
pub fn cc_coeff_5(&self) -> &CcCoeff5
0x584 - Color conversion coefficient 5
sourcepub fn cc_coeff_6(&self) -> &CcCoeff6
pub fn cc_coeff_6(&self) -> &CcCoeff6
0x588 - Color conversion coefficient 6
sourcepub fn cc_coeff_7(&self) -> &CcCoeff7
pub fn cc_coeff_7(&self) -> &CcCoeff7
0x58c - Color conversion coefficient 7
sourcepub fn cc_coeff_8(&self) -> &CcCoeff8
pub fn cc_coeff_8(&self) -> &CcCoeff8
0x590 - Color conversion coefficient 8
sourcepub fn out_h_offs(&self) -> &OutHOffs
pub fn out_h_offs(&self) -> &OutHOffs
0x594 - Horizontal offset of output window
sourcepub fn out_v_offs(&self) -> &OutVOffs
pub fn out_v_offs(&self) -> &OutVOffs
0x598 - Vertical offset of output window
sourcepub fn out_h_size(&self) -> &OutHSize
pub fn out_h_size(&self) -> &OutHSize
0x59c - Output horizontal picture size
sourcepub fn out_v_size(&self) -> &OutVSize
pub fn out_v_size(&self) -> &OutVSize
0x5a0 - Output vertical picture size
sourcepub fn flags_shd(&self) -> &FlagsShd
pub fn flags_shd(&self) -> &FlagsShd
0x5a8 - Flags (current status) of certain signals and Shadow regs
for enable signals
sourcepub fn ct_coeff(&self, n: usize) -> &CtCoeff
pub fn ct_coeff(&self, n: usize) -> &CtCoeff
0x5d0..0x5f4 - cross-talk configuration register (color correction matrix) n (n=0..8)
Note: Reset values generate a matrix which does not modify the pixel values. Reset
values are: coeff_0 = 0x80, coeff_1 = 0x00, coeff_2 = 0x00, coeff_3 = 0x00, coeff_4 = 0x80,
coeff_5 = 0x00, coeff_6 = 0x00, coeff_7 = 0x00, coeff_8 = 0x80
sourcepub fn ct_coeff_iter(&self) -> impl Iterator<Item = &CtCoeff>
pub fn ct_coeff_iter(&self) -> impl Iterator<Item = &CtCoeff>
Iterator for array of: 0x5d0..0x5f4 - cross-talk configuration register (color correction matrix) n (n=0..8)
Note: Reset values generate a matrix which does not modify the pixel values. Reset
values are: coeff_0 = 0x80, coeff_1 = 0x00, coeff_2 = 0x00, coeff_3 = 0x00, coeff_4 = 0x80,
coeff_5 = 0x00, coeff_6 = 0x00, coeff_7 = 0x00, coeff_8 = 0x80
sourcepub fn gamma_out_mode(&self) -> &GammaOutMode
pub fn gamma_out_mode(&self) -> &GammaOutMode
0x5f4 - gamma segmentation mode register for output gamma
sourcepub fn gamma_out_y(&self, n: usize) -> &GammaOutY
pub fn gamma_out_y(&self, n: usize) -> &GammaOutY
0x5f8..0x63c - Gamma Out Curve definition y_ n (n=0..16)
Note: Reset values generate a standard gamma of 2.2. Reset values are:
y_00 = 0x000, y_01 = 0x049, y_02 = 0x089, y_03 = 0x0B7, y_04 = 0x0DF, y_05 =
0x11F, y_06 = 0x154, y_07 = 0x183, y_08 = 0x1AD, y_09 = 0x1F6, y_10 = 0x235, y_11 =
0x26F, y_12 = 0x2D3, y_13 = 0x32A, y_14 = 0x378, y_15 = 0x3BF, y_16 = 0x3FF
sourcepub fn gamma_out_y_iter(&self) -> impl Iterator<Item = &GammaOutY>
pub fn gamma_out_y_iter(&self) -> impl Iterator<Item = &GammaOutY>
Iterator for array of: 0x5f8..0x63c - Gamma Out Curve definition y_ n (n=0..16)
Note: Reset values generate a standard gamma of 2.2. Reset values are:
y_00 = 0x000, y_01 = 0x049, y_02 = 0x089, y_03 = 0x0B7, y_04 = 0x0DF, y_05 =
0x11F, y_06 = 0x154, y_07 = 0x183, y_08 = 0x1AD, y_09 = 0x1F6, y_10 = 0x235, y_11 =
0x26F, y_12 = 0x2D3, y_13 = 0x32A, y_14 = 0x378, y_15 = 0x3BF, y_16 = 0x3FF
sourcepub fn err(&self) -> &Err
pub fn err(&self) -> &Err
0x63c - ISP error register
Note: For debug purposes the ISP_ERR und ISP_ERR_CLR are implemented. For the case
when a PIC_SIZE_ERR interrupt is signaled the SW is able to see in which submodule this error
is generated. Writing to the ISP_ERR_CLR register clears this bit.
sourcepub fn frame_count(&self) -> &FrameCount
pub fn frame_count(&self) -> &FrameCount
0x644 - Frame counter
Note: In the ISP_FRAME_COUNT register the number of processed frames are displayed.
For example: If a 8 is programmed into the ISP_ACQ_NR_FRAMES register, a read access to
the ISP_FRAME_COUNT register during processing of the first picture shows a 7.
After the entire frames are processed the ISP_OFF interrupt is generated and the
ISP_FRAME_COUNT has the count zero. In case a ‘0’ is programmed into the
ISP_ACQ_NR_FRAMES register (continues mode) the ISP_FRAME_COUNT register keeps the
value ‘0’.
sourcepub fn ct_offset_r(&self) -> &CtOffsetR
pub fn ct_offset_r(&self) -> &CtOffsetR
0x648 - cross-talk offset red
sourcepub fn ct_offset_g(&self) -> &CtOffsetG
pub fn ct_offset_g(&self) -> &CtOffsetG
0x64c - cross-talk offset green
sourcepub fn ct_offset_b(&self) -> &CtOffsetB
pub fn ct_offset_b(&self) -> &CtOffsetB
0x650 - cross-talk offset blue
sourcepub fn flash_cmd(&self) -> &FlashCmd
pub fn flash_cmd(&self) -> &FlashCmd
0x660 - Flash command
Note: This is the command register for flash light and prelight activation. If the ‘rw’ bits
(e.g. ‘fl_cap_del’) are re-programmed during operation, the following scheme shall be
applied:
prelight is active (prelight_on = 1 has been set before): Every write access to this register
shall use prelight_on = 1 (to prevent undesired switch off of the prelight).
prelight is off: Every write access to this register shall use prelight_on = 0 (to prevent
undesired switch on of the prelight).
sourcepub fn flash_config(&self) -> &FlashConfig
pub fn flash_config(&self) -> &FlashConfig
0x664 - Flash config
sourcepub fn flash_prediv(&self) -> &FlashPrediv
pub fn flash_prediv(&self) -> &FlashPrediv
0x668 - Flash Counter Pre-Divider
sourcepub fn flash_delay(&self) -> &FlashDelay
pub fn flash_delay(&self) -> &FlashDelay
0x66c - Flash Delay
Note: Example:
fl_delay = (10s * 100MHz) / (1023 + 1) – 1 = 976561
sourcepub fn flash_time(&self) -> &FlashTime
pub fn flash_time(&self) -> &FlashTime
0x670 - Flash time
Note: Example:
fl_time = (500ms * 100MHz) / (700 + 1) – 1 = 71530
sourcepub fn flash_maxp(&self) -> &FlashMaxp
pub fn flash_maxp(&self) -> &FlashMaxp
0x674 - Maximum value for flash or preflash
Note: Example:
fl_maxp = (10s * 100MHz) / (16384) – 1 = 61034
sourcepub fn sh_delay(&self) -> &ShDelay
pub fn sh_delay(&self) -> &ShDelay
0x688 - Delay register
Note: Example:
sh_delay = (250us * 100MHz) / (50 + 1) – 1 = 489
sourcepub fn sh_time(&self) -> &ShTime
pub fn sh_time(&self) -> &ShTime
0x68c - Time register
Note: Example:
sh_time = (10s * 100MHz) / (1023 + 1) – 1 = 976561
sourcepub fn cproc_ctrl(&self) -> &CprocCtrl
pub fn cproc_ctrl(&self) -> &CprocCtrl
0x800 - Global control register
sourcepub fn cproc_contrast(&self) -> &CprocContrast
pub fn cproc_contrast(&self) -> &CprocContrast
0x804 - Color Processing contrast register
sourcepub fn cproc_brightness(&self) -> &CprocBrightness
pub fn cproc_brightness(&self) -> &CprocBrightness
0x808 - Color Processing brightness register
sourcepub fn cproc_saturation(&self) -> &CprocSaturation
pub fn cproc_saturation(&self) -> &CprocSaturation
0x80c - Color Processing saturation register
sourcepub fn mrsz_scale_hy(&self) -> &MrszScaleHy
pub fn mrsz_scale_hy(&self) -> &MrszScaleHy
0xc04 - horizontal luminance scale factor register
Note: The size of the output picture is calculated as follows:
upscaling: (size_in - 1) / (size_out - 1)) = scale downscaling: (size_out - 1) / (size_in - 1))
= scale,
where size_in/out is the width or height of the in/output picture. The value of the
respective MRSZ_SCALE register then has to be
int(scale x 2^14) for upscaling and
int(scale x 2^14)+1 for downscaling.
For downscaling this formula has no restriction. In upscaling processes the limit is factor 5.
The output is at max. 5 MegaPixel.
If a format conversion is performed, the scale factors have to be different for the
luminance and the chrominance component, respectively. For example, for a format
conversion from 4:2:2 to 4:2:0 the scale register value for the vertical
chrominance component should be half of the vertical luminance scale register value.
sourcepub fn mrsz_scale_hcb(&self) -> &MrszScaleHcb
pub fn mrsz_scale_hcb(&self) -> &MrszScaleHcb
0xc08 - horizontal Cb scale factor register
sourcepub fn mrsz_scale_hcr(&self) -> &MrszScaleHcr
pub fn mrsz_scale_hcr(&self) -> &MrszScaleHcr
0xc0c - horizontal Cr scale factor register
sourcepub fn mrsz_scale_vy(&self) -> &MrszScaleVy
pub fn mrsz_scale_vy(&self) -> &MrszScaleVy
0xc10 - vertical luminance scale factor register
sourcepub fn mrsz_scale_vc(&self) -> &MrszScaleVc
pub fn mrsz_scale_vc(&self) -> &MrszScaleVc
0xc14 - vertical chrominance scale factor register
Note: The size of the output picture is calculated as follows: (size_out - 1) / (size_in - 1))
= scale,
where size_in/out is the width or heigth of the in/output picture. The values of the
MRSZ_SCALE registers then have to be int(scale x 2^14)+1
sourcepub fn mrsz_phase_hy(&self) -> &MrszPhaseHy
pub fn mrsz_phase_hy(&self) -> &MrszPhaseHy
0xc18 - horizontal luminance phase register
sourcepub fn mrsz_phase_hc(&self) -> &MrszPhaseHc
pub fn mrsz_phase_hc(&self) -> &MrszPhaseHc
0xc1c - horizontal chrominance phase register
sourcepub fn mrsz_phase_vy(&self) -> &MrszPhaseVy
pub fn mrsz_phase_vy(&self) -> &MrszPhaseVy
0xc20 - vertical luminance phase register
sourcepub fn mrsz_phase_vc(&self) -> &MrszPhaseVc
pub fn mrsz_phase_vc(&self) -> &MrszPhaseVc
0xc24 - vertical chrominance phase register
sourcepub fn mrsz_scale_lut_addr(&self) -> &MrszScaleLutAddr
pub fn mrsz_scale_lut_addr(&self) -> &MrszScaleLutAddr
0xc28 - Address pointer of up-scaling look up table
sourcepub fn mrsz_scale_lut(&self) -> &MrszScaleLut
pub fn mrsz_scale_lut(&self) -> &MrszScaleLut
0xc2c - Entry of up-scaling look up table
sourcepub fn mrsz_ctrl_shd(&self) -> &MrszCtrlShd
pub fn mrsz_ctrl_shd(&self) -> &MrszCtrlShd
0xc30 - global control shadow register
sourcepub fn mrsz_scale_hy_shd(&self) -> &MrszScaleHyShd
pub fn mrsz_scale_hy_shd(&self) -> &MrszScaleHyShd
0xc34 - horizontal luminance scale factor shadow register
sourcepub fn mrsz_scale_hcb_shd(&self) -> &MrszScaleHcbShd
pub fn mrsz_scale_hcb_shd(&self) -> &MrszScaleHcbShd
0xc38 - horizontal Cb scale factor shadow register
sourcepub fn mrsz_scale_hcr_shd(&self) -> &MrszScaleHcrShd
pub fn mrsz_scale_hcr_shd(&self) -> &MrszScaleHcrShd
0xc3c - horizontal Cr scale factor shadow register
sourcepub fn mrsz_scale_vy_shd(&self) -> &MrszScaleVyShd
pub fn mrsz_scale_vy_shd(&self) -> &MrszScaleVyShd
0xc40 - vertical luminance scale factor shadow register
sourcepub fn mrsz_scale_vc_shd(&self) -> &MrszScaleVcShd
pub fn mrsz_scale_vc_shd(&self) -> &MrszScaleVcShd
0xc44 - vertical chrominance scale factor shadow register
sourcepub fn mrsz_phase_hy_shd(&self) -> &MrszPhaseHyShd
pub fn mrsz_phase_hy_shd(&self) -> &MrszPhaseHyShd
0xc48 - horizontal luminance phase shadow register
sourcepub fn mrsz_phase_hc_shd(&self) -> &MrszPhaseHcShd
pub fn mrsz_phase_hc_shd(&self) -> &MrszPhaseHcShd
0xc4c - horizontal chrominance phase shadow register
sourcepub fn mrsz_phase_vy_shd(&self) -> &MrszPhaseVyShd
pub fn mrsz_phase_vy_shd(&self) -> &MrszPhaseVyShd
0xc50 - vertical luminance phase shadow register
sourcepub fn mrsz_phase_vc_shd(&self) -> &MrszPhaseVcShd
pub fn mrsz_phase_vc_shd(&self) -> &MrszPhaseVcShd
0xc54 - vertical chrominance phase shadow register
sourcepub fn srsz_scale_hy(&self) -> &SrszScaleHy
pub fn srsz_scale_hy(&self) -> &SrszScaleHy
0x1004 - horizontal luminance scale factor register
Note: The size of the output picture is calculated as follows:
upscaling: (size_in - 1) / (size_out - 1)) = scale downscaling: (size_out - 1) / (size_in - 1))
= scale,
where size_in/out is the width or height of the in/output picture. The value of the
respective SRSZ_SCALE register then has to be
int(scale x 2^14) for upscaling and
int(scale x 2^14)+1 for downscaling.
For downscaling this formula has no restriction. In upscaling processes the limit is factor 5.
If a format conversion is performed, the scale factors have to be different for the luminance
and the chrominance component, respectively. For example, for a
format conversion from 4:2:2 to 4:2:0 the scale register value for the vertical
chrominance component should be half of the vertical luminance scale register value.
sourcepub fn srsz_scale_hcb(&self) -> &SrszScaleHcb
pub fn srsz_scale_hcb(&self) -> &SrszScaleHcb
0x1008 - horizontal chrominance scale factor register
sourcepub fn srsz_scale_hcr(&self) -> &SrszScaleHcr
pub fn srsz_scale_hcr(&self) -> &SrszScaleHcr
0x100c - horizontal chrominance scale factor register
sourcepub fn srsz_scale_vy(&self) -> &SrszScaleVy
pub fn srsz_scale_vy(&self) -> &SrszScaleVy
0x1010 - vertical luminance scale factor register
sourcepub fn srsz_scale_vc(&self) -> &SrszScaleVc
pub fn srsz_scale_vc(&self) -> &SrszScaleVc
0x1014 - vertical chrominance scale factor register
sourcepub fn srsz_phase_hy(&self) -> &SrszPhaseHy
pub fn srsz_phase_hy(&self) -> &SrszPhaseHy
0x1018 - horizontal luminance phase register
sourcepub fn srsz_phase_hc(&self) -> &SrszPhaseHc
pub fn srsz_phase_hc(&self) -> &SrszPhaseHc
0x101c - horizontal chrominance phase register
sourcepub fn srsz_phase_vy(&self) -> &SrszPhaseVy
pub fn srsz_phase_vy(&self) -> &SrszPhaseVy
0x1020 - vertical luminance phase register
sourcepub fn srsz_phase_vc(&self) -> &SrszPhaseVc
pub fn srsz_phase_vc(&self) -> &SrszPhaseVc
0x1024 - vertical chrominance phase register
sourcepub fn srsz_scale_lut_addr(&self) -> &SrszScaleLutAddr
pub fn srsz_scale_lut_addr(&self) -> &SrszScaleLutAddr
0x1028 - Address pointer of up-scaling look up table
sourcepub fn srsz_scale_lut(&self) -> &SrszScaleLut
pub fn srsz_scale_lut(&self) -> &SrszScaleLut
0x102c - Entry of up-scaling look up table
sourcepub fn srsz_ctrl_shd(&self) -> &SrszCtrlShd
pub fn srsz_ctrl_shd(&self) -> &SrszCtrlShd
0x1030 - global control shadow register
sourcepub fn srsz_scale_hy_shd(&self) -> &SrszScaleHyShd
pub fn srsz_scale_hy_shd(&self) -> &SrszScaleHyShd
0x1034 - horizontal luminance scale factor shadow register
sourcepub fn srsz_scale_hcb_shd(&self) -> &SrszScaleHcbShd
pub fn srsz_scale_hcb_shd(&self) -> &SrszScaleHcbShd
0x1038 - horizontal Cb scale factor shadow register
sourcepub fn srsz_scale_hcr_shd(&self) -> &SrszScaleHcrShd
pub fn srsz_scale_hcr_shd(&self) -> &SrszScaleHcrShd
0x103c - horizontal Cr scale factor shadow register
sourcepub fn srsz_scale_vy_shd(&self) -> &SrszScaleVyShd
pub fn srsz_scale_vy_shd(&self) -> &SrszScaleVyShd
0x1040 - vertical luminance scale factor shadow register
sourcepub fn srsz_scale_vc_shd(&self) -> &SrszScaleVcShd
pub fn srsz_scale_vc_shd(&self) -> &SrszScaleVcShd
0x1044 - vertical chrominance scale factor shadow register
sourcepub fn srsz_phase_hy_shd(&self) -> &SrszPhaseHyShd
pub fn srsz_phase_hy_shd(&self) -> &SrszPhaseHyShd
0x1048 - horizontal luminance phase shadow register
sourcepub fn srsz_phase_hc_shd(&self) -> &SrszPhaseHcShd
pub fn srsz_phase_hc_shd(&self) -> &SrszPhaseHcShd
0x104c - horizontal chrominance phase shadow register
sourcepub fn srsz_phase_vy_shd(&self) -> &SrszPhaseVyShd
pub fn srsz_phase_vy_shd(&self) -> &SrszPhaseVyShd
0x1050 - vertical luminance phase shadow register
sourcepub fn srsz_phase_vc_shd(&self) -> &SrszPhaseVcShd
pub fn srsz_phase_vc_shd(&self) -> &SrszPhaseVcShd
0x1054 - vertical chrominance phase shadow register
sourcepub fn mi_mp_y_base_ad_init(&self) -> &MiMpYBaseAdInit
pub fn mi_mp_y_base_ad_init(&self) -> &MiMpYBaseAdInit
0x1408 - Base address for main picture Y component, JPEG or raw data
Note: This register protects from non-aligned access. The bits 0 to 2 are hard wired to
‘000’. As a consequence any byte address that is written to the register will automatically be
re-mapped to the next lower 64 bit aligned address: write(MI_MP_Y_BASE_AD_INIT,
address_value) is equivalent to write(MI_Y_BASE_AD_INIT, address_value & 0xFFFFFFF8).
Anyhow, in order to avoid confusion it is NOT recommended to use non-aligned address values
for access. It is also NOT recommended to actively consider the register slice for register
access in order to avoid unneccessary mask and shift operations.
In addition, if ISP provides AXI interfaces the programmed base address shall be
burst aligned with respect to the burst length configured in MI_CTRL .
Set control bit init_base_en before updating so that a forced or automatic update can take
effect.
sourcepub fn mi_mp_y_size_init(&self) -> &MiMpYSizeInit
pub fn mi_mp_y_size_init(&self) -> &MiMpYSizeInit
0x140c - Size of main picture Y component, JPEG or raw data
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Set control bit init_base_en before updating so that a forced or automatic update can take
effect.
sourcepub fn mi_mp_y_offs_cnt_init(&self) -> &MiMpYOffsCntInit
pub fn mi_mp_y_offs_cnt_init(&self) -> &MiMpYOffsCntInit
0x1410 - Offset counter init value for main picture Y, JPEG or raw data
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Set control bit init_base_en before updating so that a forced or automatic update can
take effect. Check exceptional handling in skip modes.
sourcepub fn mi_mp_y_offs_cnt_start(&self) -> &MiMpYOffsCntStart
pub fn mi_mp_y_offs_cnt_start(&self) -> &MiMpYOffsCntStart
0x1414 - Offset counter start value for main picture Y, JPEG or raw data
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_y_irq_offs_init(&self) -> &MiMpYIrqOffsInit
pub fn mi_mp_y_irq_offs_init(&self) -> &MiMpYIrqOffsInit
0x1418 - Fill level interrupt offset value for main picture Y, JPEG or raw data
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cb_base_ad_init(&self) -> &MiMpCbBaseAdInit
pub fn mi_mp_cb_base_ad_init(&self) -> &MiMpCbBaseAdInit
0x141c - Base address for main picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for
AXI.
sourcepub fn mi_mp_cb_size_init(&self) -> &MiMpCbSizeInit
pub fn mi_mp_cb_size_init(&self) -> &MiMpCbSizeInit
0x1420 - Size of main picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cb_offs_cnt_init(&self) -> &MiMpCbOffsCntInit
pub fn mi_mp_cb_offs_cnt_init(&self) -> &MiMpCbOffsCntInit
0x1424 - Offset counter init value for main picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cb_offs_cnt_start(&self) -> &MiMpCbOffsCntStart
pub fn mi_mp_cb_offs_cnt_start(&self) -> &MiMpCbOffsCntStart
0x1428 - Offset counter start value for main picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cr_base_ad_init(&self) -> &MiMpCrBaseAdInit
pub fn mi_mp_cr_base_ad_init(&self) -> &MiMpCrBaseAdInit
0x142c - Base address for main picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for
AXI.
sourcepub fn mi_mp_cr_size_init(&self) -> &MiMpCrSizeInit
pub fn mi_mp_cr_size_init(&self) -> &MiMpCrSizeInit
0x1430 - Size of main picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cr_offs_cnt_init(&self) -> &MiMpCrOffsCntInit
pub fn mi_mp_cr_offs_cnt_init(&self) -> &MiMpCrOffsCntInit
0x1434 - Offset counter init value for main picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cr_offs_cnt_start(&self) -> &MiMpCrOffsCntStart
pub fn mi_mp_cr_offs_cnt_start(&self) -> &MiMpCrOffsCntStart
0x1438 - Offset counter start value for main picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_y_base_ad_init(&self) -> &MiSpYBaseAdInit
pub fn mi_sp_y_base_ad_init(&self) -> &MiSpYBaseAdInit
0x143c - Base address for self picture Y component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for
AXI.
sourcepub fn mi_sp_y_size_init(&self) -> &MiSpYSizeInit
pub fn mi_sp_y_size_init(&self) -> &MiSpYSizeInit
0x1440 - Size of self picture Y component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_y_offs_cnt_init(&self) -> &MiSpYOffsCntInit
pub fn mi_sp_y_offs_cnt_init(&self) -> &MiSpYOffsCntInit
0x1444 - Offset counter init value for self picture Y component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_y_offs_cnt_start(&self) -> &MiSpYOffsCntStart
pub fn mi_sp_y_offs_cnt_start(&self) -> &MiSpYOffsCntStart
0x1448 - Offset counter start value for self picture Y component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_y_llength(&self) -> &MiSpYLlength
pub fn mi_sp_y_llength(&self) -> &MiSpYLlength
0x144c - Line length of self picture Y component
Note: Programmed value becomes effective
immediately. So write to the register only if no picture data
is sent to the self path.
sourcepub fn mi_sp_cb_base_ad_init(&self) -> &MiSpCbBaseAdInit
pub fn mi_sp_cb_base_ad_init(&self) -> &MiSpCbBaseAdInit
0x1450 - Base address for self picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for
AXI.
sourcepub fn mi_sp_cb_size_init(&self) -> &MiSpCbSizeInit
pub fn mi_sp_cb_size_init(&self) -> &MiSpCbSizeInit
0x1454 - Size of self picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_cb_offs_cnt_init(&self) -> &MiSpCbOffsCntInit
pub fn mi_sp_cb_offs_cnt_init(&self) -> &MiSpCbOffsCntInit
0x1458 - Offset counter init value for self picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_cb_offs_cnt_start(&self) -> &MiSpCbOffsCntStart
pub fn mi_sp_cb_offs_cnt_start(&self) -> &MiSpCbOffsCntStart
0x145c - Offset counter start value for self picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_cr_base_ad_init(&self) -> &MiSpCrBaseAdInit
pub fn mi_sp_cr_base_ad_init(&self) -> &MiSpCrBaseAdInit
0x1460 - Base address for self picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for
AXI.
sourcepub fn mi_sp_cr_size_init(&self) -> &MiSpCrSizeInit
pub fn mi_sp_cr_size_init(&self) -> &MiSpCrSizeInit
0x1464 - Size of self picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_cr_offs_cnt_init(&self) -> &MiSpCrOffsCntInit
pub fn mi_sp_cr_offs_cnt_init(&self) -> &MiSpCrOffsCntInit
0x1468 - Offset counter init value for self picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_cr_offs_cnt_start(&self) -> &MiSpCrOffsCntStart
pub fn mi_sp_cr_offs_cnt_start(&self) -> &MiSpCrOffsCntStart
0x146c - Offset counter start value for self picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_byte_cnt(&self) -> &MiByteCnt
pub fn mi_byte_cnt(&self) -> &MiByteCnt
0x1470 - Counter value of JPEG or RAW data bytes
sourcepub fn mi_ctrl_shd(&self) -> &MiCtrlShd
pub fn mi_ctrl_shd(&self) -> &MiCtrlShd
0x1474 - global control internal shadow register
sourcepub fn mi_mp_y_base_ad_shd(&self) -> &MiMpYBaseAdShd
pub fn mi_mp_y_base_ad_shd(&self) -> &MiMpYBaseAdShd
0x1478 - Base address shadow register for main picture Y
component, JPEG or raw data ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_y_size_shd(&self) -> &MiMpYSizeShd
pub fn mi_mp_y_size_shd(&self) -> &MiMpYSizeShd
0x147c - Size shadow register of main picture Y component, JPEG
or raw data
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_y_offs_cnt_shd(&self) -> &MiMpYOffsCntShd
pub fn mi_mp_y_offs_cnt_shd(&self) -> &MiMpYOffsCntShd
0x1480 - Current offset counter of main picture Y component, JPEG
or raw data ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_y_irq_offs_shd(&self) -> &MiMpYIrqOffsShd
pub fn mi_mp_y_irq_offs_shd(&self) -> &MiMpYIrqOffsShd
0x1484 - Shadow register of fill level interrupt offset value for main
picture Y component, JPEG or raw data
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cb_base_ad_shd(&self) -> &MiMpCbBaseAdShd
pub fn mi_mp_cb_base_ad_shd(&self) -> &MiMpCbBaseAdShd
0x1488 - Base address shadow register for main picture Cb
component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cb_size_shd(&self) -> &MiMpCbSizeShd
pub fn mi_mp_cb_size_shd(&self) -> &MiMpCbSizeShd
0x148c - Size shadow register of main picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cb_offs_cnt_shd(&self) -> &MiMpCbOffsCntShd
pub fn mi_mp_cb_offs_cnt_shd(&self) -> &MiMpCbOffsCntShd
0x1490 - Current offset counter of main picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cr_base_ad_shd(&self) -> &MiMpCrBaseAdShd
pub fn mi_mp_cr_base_ad_shd(&self) -> &MiMpCrBaseAdShd
0x1494 - Base address shadow register for main picture Cr
component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cr_size_shd(&self) -> &MiMpCrSizeShd
pub fn mi_mp_cr_size_shd(&self) -> &MiMpCrSizeShd
0x1498 - Size shadow register of main picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_mp_cr_offs_cnt_shd(&self) -> &MiMpCrOffsCntShd
pub fn mi_mp_cr_offs_cnt_shd(&self) -> &MiMpCrOffsCntShd
0x149c - Current offset counter of main picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_y_base_ad_shd(&self) -> &MiSpYBaseAdShd
pub fn mi_sp_y_base_ad_shd(&self) -> &MiSpYBaseAdShd
0x14a0 - Base address shadow register for self picture Y
component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_y_size_shd(&self) -> &MiSpYSizeShd
pub fn mi_sp_y_size_shd(&self) -> &MiSpYSizeShd
0x14a4 - Size shadow register of self picture Y component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_y_offs_cnt_shd(&self) -> &MiSpYOffsCntShd
pub fn mi_sp_y_offs_cnt_shd(&self) -> &MiSpYOffsCntShd
0x14a8 - Current offset counter of self picture Y component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_cb_base_ad_shd(&self) -> &MiSpCbBaseAdShd
pub fn mi_sp_cb_base_ad_shd(&self) -> &MiSpCbBaseAdShd
0x14b0 - Base address shadow register for self picture Cb
component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_cb_size_shd(&self) -> &MiSpCbSizeShd
pub fn mi_sp_cb_size_shd(&self) -> &MiSpCbSizeShd
0x14b4 - Size shadow register of self picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_cb_offs_cnt_shd(&self) -> &MiSpCbOffsCntShd
pub fn mi_sp_cb_offs_cnt_shd(&self) -> &MiSpCbOffsCntShd
0x14b8 - Current offset counter of self picture Cb component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_cr_base_ad_shd(&self) -> &MiSpCrBaseAdShd
pub fn mi_sp_cr_base_ad_shd(&self) -> &MiSpCrBaseAdShd
0x14bc - Base address shadow register for self picture Cr
component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_cr_size_shd(&self) -> &MiSpCrSizeShd
pub fn mi_sp_cr_size_shd(&self) -> &MiSpCrSizeShd
0x14c0 - Size shadow register of self picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_sp_cr_offs_cnt_shd(&self) -> &MiSpCrOffsCntShd
pub fn mi_sp_cr_offs_cnt_shd(&self) -> &MiSpCrOffsCntShd
0x14c4 - Current offset counter of self picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
sourcepub fn mi_dma_y_pic_start_ad(&self) -> &MiDmaYPicStartAd
pub fn mi_dma_y_pic_start_ad(&self) -> &MiDmaYPicStartAd
0x14c8 - Y component image start address
Note: Must be multiple of 4 in interleaved mode.
sourcepub fn mi_dma_y_pic_width(&self) -> &MiDmaYPicWidth
pub fn mi_dma_y_pic_width(&self) -> &MiDmaYPicWidth
0x14cc - Y component image width
sourcepub fn mi_dma_y_llength(&self) -> &MiDmaYLlength
pub fn mi_dma_y_llength(&self) -> &MiDmaYLlength
0x14d0 - Y component original line length
sourcepub fn mi_dma_y_pic_size(&self) -> &MiDmaYPicSize
pub fn mi_dma_y_pic_size(&self) -> &MiDmaYPicSize
0x14d4 - Y component image size
sourcepub fn mi_dma_cb_pic_start_ad(&self) -> &MiDmaCbPicStartAd
pub fn mi_dma_cb_pic_start_ad(&self) -> &MiDmaCbPicStartAd
0x14d8 - Cb component image start address
Note: Must be multiple of 2 in semi-planar mode.
sourcepub fn mi_dma_cr_pic_start_ad(&self) -> &MiDmaCrPicStartAd
pub fn mi_dma_cr_pic_start_ad(&self) -> &MiDmaCrPicStartAd
0x14e8 - Cr component image start address
sourcepub fn mi_imsc(&self) -> &MiImsc
pub fn mi_imsc(&self) -> &MiImsc
0x14f8 - Interrupt Mask („1‟: interrupt active, „0‟: interrupt masked)
sourcepub fn mi_status_clr(&self) -> &MiStatusClr
pub fn mi_status_clr(&self) -> &MiStatusClr
0x1510 - MI Status Clear Register
sourcepub fn mi_sp_y_pic_width(&self) -> &MiSpYPicWidth
pub fn mi_sp_y_pic_width(&self) -> &MiSpYPicWidth
0x1514 - Y component image width
Note: Programmed value becomes effective
immediately. So write to the register only if no picture
data is sent to the self path.
sourcepub fn mi_sp_y_pic_height(&self) -> &MiSpYPicHeight
pub fn mi_sp_y_pic_height(&self) -> &MiSpYPicHeight
0x1518 - Y component image height
Note: Programmed value becomes effective
sourcepub fn mi_sp_y_pic_size(&self) -> &MiSpYPicSize
pub fn mi_sp_y_pic_size(&self) -> &MiSpYPicSize
0x151c - Y component image size
Note: Programmed value becomes effective
immediately. So write to the register only if no picture
data is sent to the self path.
sourcepub fn mi_dma_ctrl(&self) -> &MiDmaCtrl
pub fn mi_dma_ctrl(&self) -> &MiDmaCtrl
0x1520 - DMA control register
Note: The dma_ready
interrupt is raised as usual, but the dma_frame_end
interrupt will not be generated until v_end has been
enabled again.
9 dma_continuous_en Enables continuous mode. If set the same frame is
read back over and over. A start pulse on dma_start is
needed only for the first time. To stop continuous mode
reset this bit (takes effect after the next frame end) or
execute a soft reset. This bit is intended to be used in
conjunction with the Superimpose feature.
8 dma_byte_swap Enables change of DMA byte order of the 32 bit
input word at read port
1: byte order is mirrored but the bit order within one
byte doesn‟t change
0: no byte mirroring
7:6 dma_inout_format Selects input/output format of
DMA picture. 11: YCbCr 4:4:4
10: YCbCr 4:2:2
01: YCbCr 4:2:0
00: YCbCr 4:0:0
5:4 dma_read_format Defines how YCbCr picture data is read from
memory. 00: planar
01: semi planar, for YCbCr 4:2:x
10: interleaved (combined), for YCbCr 4:2:2 and RGB
only 11: reserved
3:2 dma_burst_len_chrom Burst length for Cb or Cr data affecting DMA
read port. 00: 4-beat bursts
01: 8-beat bursts
10: 16-beat bursts
11: reserved
Ignored if 8- or 16-beat bursts are not supported.
DMA control register Reset value: 0000’0000H
Address: ISP_MI_BASE + 0120H Mode : rw
Bit
s
Name Description
1:0 dma_burst_len_lum Burst length for Y data affecting DMA read port.
00: 4-beat bursts
01: 8-beat bursts
10: 16-beat bursts
11: reserved
Ignored if 8- or 16-beat bursts are not supported.
sourcepub fn mi_dma_start(&self) -> &MiDmaStart
pub fn mi_dma_start(&self) -> &MiDmaStart
0x1524 - DMA start register
sourcepub fn mi_dma_status(&self) -> &MiDmaStatus
pub fn mi_dma_status(&self) -> &MiDmaStatus
0x1528 - DMA status register
sourcepub fn mi_pixel_cnt(&self) -> &MiPixelCnt
pub fn mi_pixel_cnt(&self) -> &MiPixelCnt
0x152c - Counter value for defect pixel list
sourcepub fn mi_mp_y_base_ad_init2(&self) -> &MiMpYBaseAdInit2
pub fn mi_mp_y_base_ad_init2(&self) -> &MiMpYBaseAdInit2
0x1530 - Base address 2 (ping pong) for main picture Y component,
JPEG or raw data
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for
AXI.
sourcepub fn mi_mp_cb_base_ad_init2(&self) -> &MiMpCbBaseAdInit2
pub fn mi_mp_cb_base_ad_init2(&self) -> &MiMpCbBaseAdInit2
0x1534 - Base address 2 (pingpong) for main picture Cb component
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for
AXI.
sourcepub fn mi_mp_cr_base_ad_init2(&self) -> &MiMpCrBaseAdInit2
pub fn mi_mp_cr_base_ad_init2(&self) -> &MiMpCrBaseAdInit2
0x1538 - Base address 2 (pingpong) for main picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for
AXI.
sourcepub fn mi_sp_y_base_ad_init2(&self) -> &MiSpYBaseAdInit2
pub fn mi_sp_y_base_ad_init2(&self) -> &MiSpYBaseAdInit2
0x153c - Base address 2 (ping pong) for self picture Y component
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for
AXI.
sourcepub fn mi_sp_cb_base_ad_init2(&self) -> &MiSpCbBaseAdInit2
pub fn mi_sp_cb_base_ad_init2(&self) -> &MiSpCbBaseAdInit2
0x1540 - Base address 2 (pingpong) for self picture Cb component
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for
AXI.
sourcepub fn mi_sp_cr_base_ad_init2(&self) -> &MiSpCrBaseAdInit2
pub fn mi_sp_cr_base_ad_init2(&self) -> &MiSpCrBaseAdInit2
0x1544 - Base address 2 (pingpong) for self picture Cr component ring buffer
Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT
register description for details.
Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for
AXI.
sourcepub fn mi_xtd_format_ctrl(&self) -> &MiXtdFormatCtrl
pub fn mi_xtd_format_ctrl(&self) -> &MiXtdFormatCtrl
0x1548 - Extended Storage Format Control for main, self and dma read path
sourcepub fn mipi_status(&self) -> &MipiStatus
pub fn mipi_status(&self) -> &MipiStatus
0x1c04 - global status register
sourcepub fn mipi_icr(&self) -> &MipiIcr
pub fn mipi_icr(&self) -> &MipiIcr
0x1c14 - Interrupt clear register
Note: clears corresponding bits in MIPI_RIS register
sourcepub fn mipi_isr(&self) -> &MipiIsr
pub fn mipi_isr(&self) -> &MipiIsr
0x1c18 - Interrupt set register
Note: sets corresponding bits in MIPI_RIS register
sourcepub fn mipi_cur_data_id(&self) -> &MipiCurDataId
pub fn mipi_cur_data_id(&self) -> &MipiCurDataId
0x1c1c - Current Data Identifier
sourcepub fn mipi_img_data_sel(&self) -> &MipiImgDataSel
pub fn mipi_img_data_sel(&self) -> &MipiImgDataSel
0x1c20 - Image Data Selector
sourcepub fn mipi_add_data_sel_1(&self) -> &MipiAddDataSel1
pub fn mipi_add_data_sel_1(&self) -> &MipiAddDataSel1
0x1c24 - Additional Data Selector 1
sourcepub fn mipi_add_data_sel_2(&self) -> &MipiAddDataSel2
pub fn mipi_add_data_sel_2(&self) -> &MipiAddDataSel2
0x1c28 - Additional Data Selector 2
sourcepub fn mipi_add_data_sel_3(&self) -> &MipiAddDataSel3
pub fn mipi_add_data_sel_3(&self) -> &MipiAddDataSel3
0x1c2c - Additional Data Selector 3
sourcepub fn mipi_add_data_sel_4(&self) -> &MipiAddDataSel4
pub fn mipi_add_data_sel_4(&self) -> &MipiAddDataSel4
0x1c30 - Additional Data Selector 4
sourcepub fn mipi_add_data_fifo(&self) -> &MipiAddDataFifo
pub fn mipi_add_data_fifo(&self) -> &MipiAddDataFifo
0x1c34 - Additional Data Fifo
sourcepub fn mipi_compressed_mode(&self) -> &MipiCompressedMode
pub fn mipi_compressed_mode(&self) -> &MipiCompressedMode
0x1c3c - controls processing of compressed raw data types
Note: This register is only available in MIPI interface version 2 of ISP
sourcepub fn mipi_frame(&self) -> &MipiFrame
pub fn mipi_frame(&self) -> &MipiFrame
0x1c40 - frame number from frame start and frame end short packets
Note: This register is only available in MIPI interface version 2 of ISP
sourcepub fn mipi_gen_short_dt(&self) -> &MipiGenShortDt
pub fn mipi_gen_short_dt(&self) -> &MipiGenShortDt
0x1c44 - data type flags for received generic short packets
Note: This register is only available in MIPI interface version 2 of ISP
sourcepub fn mipi_gen_short_8_9(&self) -> &MipiGenShort8_9
pub fn mipi_gen_short_8_9(&self) -> &MipiGenShort8_9
0x1c48 - data field for generic short packets of data type 0x8 and 0x9
Note: This register is only available in MIPI interface version 2 of ISP
sourcepub fn mipi_gen_short_a_b(&self) -> &MipiGenShortAB
pub fn mipi_gen_short_a_b(&self) -> &MipiGenShortAB
0x1c4c - data field for generic short packets of data type 0xA and 0xB
Note: This register is only available in MIPI interface version 2 of ISP
sourcepub fn mipi_gen_short_c_d(&self) -> &MipiGenShortCD
pub fn mipi_gen_short_c_d(&self) -> &MipiGenShortCD
0x1c50 - data field for generic short packets of data type 0xC and 0xD
Note: This register is only available in MIPI interface version 2 of ISP
sourcepub fn mipi_gen_short_e_f(&self) -> &MipiGenShortEF
pub fn mipi_gen_short_e_f(&self) -> &MipiGenShortEF
0x1c54 - data field for generic short packets of data type 0xE and 0xF
Note: This register is only available in MIPI interface version 2 of ISP
This is the control register for AF measurement unit Reset value: 0000’0000H
Address: ISP_AFM_BASE + 0000H Mode : rw
Bit
s
Name Description
31:
1
— unused
0 afm_en AF measurement enable
0: AF measurement is
disabled 1: AF
measurement is enabled
Writing a 1 to this register starts a new measurement
and resets the afm_fin (measurement finished) interrupt
to 0.
As long as the afm_en is 1, the AFM unit
sourcepub fn afm_var_shift(&self) -> &AfmVarShift
pub fn afm_var_shift(&self) -> &AfmVarShift
0x2020 - Variable shift register
sourcepub fn lsc_r_table_addr(&self) -> &LscRTableAddr
pub fn lsc_r_table_addr(&self) -> &LscRTableAddr
0x2204 - Table RAM Address for red component
Note: The table values are written into an internal RAM. The RAM Address is generated per
auto- increment. The tables values will be read back by a continuous read access to the
corresponding register. The read address is auto-incremented for each read access to that
register and is reset to a specific value by a write access to the ISP_LSC_TABLE_ADDR
register.
Table set 0 access by SW at table address 0…152. Table set 1 access at table address
153…305.
sourcepub fn lsc_gr_table_addr(&self) -> &LscGrTableAddr
pub fn lsc_gr_table_addr(&self) -> &LscGrTableAddr
0x2208 - Table RAM Address for green (red) component
Note: MKOE tbc: Orignial register mode was rwh which is no longer supported with new
version of SIG-> rwhh Table set 0 access by SW at table address 0…153. Table set 1 access at
table address 154…307.
sourcepub fn lsc_b_table_addr(&self) -> &LscBTableAddr
pub fn lsc_b_table_addr(&self) -> &LscBTableAddr
0x220c - Table RAM Address for blue component
Note: MKOE tbc: Orignial register mode was rwh which is no longer supported with new
version of SIG-> rwhh Table set 0 access by SW at table address 0…153. Table set 1 access at
table address 154…307.
sourcepub fn lsc_gb_table_addr(&self) -> &LscGbTableAddr
pub fn lsc_gb_table_addr(&self) -> &LscGbTableAddr
0x2210 - Table RAM Address for green (blue) component
Note: MKOE tbc: Orignial register mode was rwh which is no longer supported with new
version of SIG-> rwhh Table set 0 access by SW at table address 0…153. Table set 1 access at
table address 154…307.
sourcepub fn lsc_r_table_data(&self) -> &LscRTableData
pub fn lsc_r_table_data(&self) -> &LscRTableData
0x2214 - Sample table red
Note: The programmed sample value is immediately written into the RAM. The RAM
address is generated per auto-increment. The parameter RAMs for Lens Shade Correction and
Bad Pixel Correction can only be programmed, if the RGB Bayer path is switched on via
ISP_CTRL register (ISP_MODE bits).
Table set 0 access by SW at table address 0…153. Table set 1 access at table address
154…307.
sourcepub fn lsc_gr_table_data(&self) -> &LscGrTableData
pub fn lsc_gr_table_data(&self) -> &LscGrTableData
0x2218 - Sample table green (red)
Note: The programmed sample value is immediately written into the RAM. The RAM
address is generated per auto-increment. The parameter RAMs for Lens Shade Correction and
Bad Pixel Correction can only be programmed, if the RGB Bayer path is switched on via
ISP_CTRL register (ISP_MODE bits).
Table set 0 access by SW at table address 0…153. Table set 1 access at table address
154…307.
sourcepub fn lsc_b_table_data(&self) -> &LscBTableData
pub fn lsc_b_table_data(&self) -> &LscBTableData
0x221c - Sample table blue
Note: The programmed sample value is immediately written into the RAM. The
RAM address is generated per auto-increment. The parameter RAMs for Lens Shade
Correction and Bad Pixel Correction can only be programmed, if the RGB Bayer path is
switched on via ISP_CTRL register (ISP_MODE bits).
Table set 0 access by SW at table address 0…153. Table set 1 access at table address
154…307.
sourcepub fn lsc_gb_table_data(&self) -> &LscGbTableData
pub fn lsc_gb_table_data(&self) -> &LscGbTableData
0x2220 - Sample table green (blue)
Note: The programmed sample value is immediately written into the RAM. The RAM
address is generated per auto-increment. The parameter RAMs for Lens Shade Correction and
Bad Pixel Correction can only be programmed, if the RGB Bayer path is switched on via
ISP_CTRL register (ISP_MODE bits).Table set 0 access by SW at table address 0…153. Table
set 1 access at table address 154…307.
sourcepub fn lsc_xgrad_01(&self) -> &LscXgrad01
pub fn lsc_xgrad_01(&self) -> &LscXgrad01
0x2224 - Gradient table x
sourcepub fn lsc_xgrad_23(&self) -> &LscXgrad23
pub fn lsc_xgrad_23(&self) -> &LscXgrad23
0x2228 - Gradient table x
sourcepub fn lsc_xgrad_45(&self) -> &LscXgrad45
pub fn lsc_xgrad_45(&self) -> &LscXgrad45
0x222c - Gradient table x
sourcepub fn lsc_xgrad_67(&self) -> &LscXgrad67
pub fn lsc_xgrad_67(&self) -> &LscXgrad67
0x2230 - Gradient table x
sourcepub fn lsc_ygrad_01(&self) -> &LscYgrad01
pub fn lsc_ygrad_01(&self) -> &LscYgrad01
0x2234 - Gradient table y
sourcepub fn lsc_ygrad_23(&self) -> &LscYgrad23
pub fn lsc_ygrad_23(&self) -> &LscYgrad23
0x2238 - Gradient table y
sourcepub fn lsc_ygrad_45(&self) -> &LscYgrad45
pub fn lsc_ygrad_45(&self) -> &LscYgrad45
0x223c - Gradient table y
sourcepub fn lsc_ygrad_67(&self) -> &LscYgrad67
pub fn lsc_ygrad_67(&self) -> &LscYgrad67
0x2240 - Gradient table y
sourcepub fn lsc_xsize_01(&self) -> &LscXsize01
pub fn lsc_xsize_01(&self) -> &LscXsize01
0x2244 - Size table
Note: The sector size in x-direction must be greater than 12 pixels. The sum of the sector
sizes in x- direction must be ‘picture width / 2’. The sum of the sector sizes in y-direction must
be ‘picture height / 2’. No interrupt is generated if above requirements are not fulfilled and the
behaviour of the hardware cannot be predicted.
The sector size in x-direction was defined to be 9 bits for preliminary ISP versions.
sourcepub fn lsc_xsize_23(&self) -> &LscXsize23
pub fn lsc_xsize_23(&self) -> &LscXsize23
0x2248 - Size table
Note: minimum sector size is 10 in x direction
sourcepub fn lsc_xsize_45(&self) -> &LscXsize45
pub fn lsc_xsize_45(&self) -> &LscXsize45
0x224c - Size table
Note: minimum sector size is 10 in x direction
sourcepub fn lsc_xsize_67(&self) -> &LscXsize67
pub fn lsc_xsize_67(&self) -> &LscXsize67
0x2250 - Size table
Note: minimum sector size is 10 in x direction
sourcepub fn lsc_ysize_01(&self) -> &LscYsize01
pub fn lsc_ysize_01(&self) -> &LscYsize01
0x2254 - Size table
Note: minimum sector size is 8 in y direction.
The sector size in y-direction was defined to be 9 bits for preliminary ISP versions.
sourcepub fn lsc_ysize_23(&self) -> &LscYsize23
pub fn lsc_ysize_23(&self) -> &LscYsize23
0x2258 - Size table
Note: minimum sector size is 8 in y direction
sourcepub fn lsc_ysize_45(&self) -> &LscYsize45
pub fn lsc_ysize_45(&self) -> &LscYsize45
0x225c - Size table
Note: minimum sector size is 8 in y direction
sourcepub fn lsc_ysize_67(&self) -> &LscYsize67
pub fn lsc_ysize_67(&self) -> &LscYsize67
0x2260 - Size table
Note: minimum sector size is 8 in y direction
sourcepub fn lsc_table_sel(&self) -> &LscTableSel
pub fn lsc_table_sel(&self) -> &LscTableSel
0x2264 - Lens shade table set selection
Note: Table set 0 access by SW at table address 0…153. Table set 1 access at table
address 154…307. For LSC4_MSZ the table set 1 is physically not available:
ISP_LSC_TABLE_SEL shall always be 0 for this HW configuration.
sourcepub fn lsc_status(&self) -> &LscStatus
pub fn lsc_status(&self) -> &LscStatus
0x2268 - Lens shade status
sourcepub fn is_recenter(&self) -> &IsRecenter
pub fn is_recenter(&self) -> &IsRecenter
0x2304 - Recenter register
sourcepub fn is_displace(&self) -> &IsDisplace
pub fn is_displace(&self) -> &IsDisplace
0x2320 - Camera displacement
sourcepub fn is_h_offs_shd(&self) -> &IsHOffsShd
pub fn is_h_offs_shd(&self) -> &IsHOffsShd
0x2324 - current horizontal offset of output window (shadow register)
sourcepub fn is_v_offs_shd(&self) -> &IsVOffsShd
pub fn is_v_offs_shd(&self) -> &IsVOffsShd
0x2328 - current vertical offset of output window (shadow register)
sourcepub fn is_h_size_shd(&self) -> &IsHSizeShd
pub fn is_h_size_shd(&self) -> &IsHSizeShd
0x232c - current output horizontal picture size (shadow register)
sourcepub fn is_v_size_shd(&self) -> &IsVSizeShd
pub fn is_v_size_shd(&self) -> &IsVSizeShd
0x2330 - current output vertical picture size (shadow register)
sourcepub fn hist_prop(&self) -> &HistProp
pub fn hist_prop(&self) -> &HistProp
0x2400 - Histogram properties
Note: If RGB combined mode is used, then the 3 color components are sampled one
after the other. The software has to assure that all 3 color components are inside the
selected window.
sourcepub fn hist_h_offs(&self) -> &HistHOffs
pub fn hist_h_offs(&self) -> &HistHOffs
0x2404 - Histogram window horizontal offset for first window of
25 sub- windows
Note: histogram measurement is done in 25 sub-windows like the exposure
measurement, if histogram version 3 is implemented. All earlier versions use just one
window.
sourcepub fn hist_v_offs(&self) -> &HistVOffs
pub fn hist_v_offs(&self) -> &HistVOffs
0x2408 - Histogram window vertical offset for first window of 25 sub-windows
Note: histogram measurement is done in 25 sub-windows like the exposure
measurement, if histogram version 3 is implemented. All earlier versions use just one window.
sourcepub fn hist_h_size(&self) -> &HistHSize
pub fn hist_h_size(&self) -> &HistHSize
0x240c - Horizontal (sub-)window size
Note: hist_h_offset + hist_h_size x 5 should be less than or equal to the horizontal size
of the picture, if histogram version 3 is implemented. Otherwise hist_h_size is the horizontal
size of the measurement window in pixels.
sourcepub fn hist_v_size(&self) -> &HistVSize
pub fn hist_v_size(&self) -> &HistVSize
0x2410 - Vertical (sub-)window size
Note: hist_v_offset + hist_v_size x 5 should be less than or equal to the vertical size
of the picture, if histogram version 3 is implemented. Otherwise hist_v_size is the vertical
size of the measurement window in lines.
sourcepub fn hist_bin(&self, n: usize) -> &HistBin
pub fn hist_bin(&self, n: usize) -> &HistBin
0x2414..0x2454 - histogram measurement result bin n (n=0..15)
Note: MKOE tbc: Orignial register mode was rh which is no longer supported with new
version of SIG -> r
sourcepub fn hist_bin_iter(&self) -> impl Iterator<Item = &HistBin>
pub fn hist_bin_iter(&self) -> impl Iterator<Item = &HistBin>
Iterator for array of: 0x2414..0x2454 - histogram measurement result bin n (n=0..15)
Note: MKOE tbc: Orignial register mode was rh which is no longer supported with new
version of SIG -> r
sourcepub fn hist_weight_00to30(&self) -> &HistWeight00to30
pub fn hist_weight_00to30(&self) -> &HistWeight00to30
0x2454 - Weighting factor for sub-windows
Note: Allowed value range for weight factor is 0 to 16. The resulting weight is
register_value / 16. The host software has to limit the register value for each factor to 16.
Weight registers are available, if histogram version 3 is implemented.
sourcepub fn hist_weight_40to21(&self) -> &HistWeight40to21
pub fn hist_weight_40to21(&self) -> &HistWeight40to21
0x2458 - Weighting factor for sub-windows
Note: Allowed value range for weight factor is 0 to 16. The resulting weight is
register_value / 16. The host software has to limit the register value for each factor to 16.
Weight registers are available, if histogram version 3 is implemented.
sourcepub fn hist_weight_31to12(&self) -> &HistWeight31to12
pub fn hist_weight_31to12(&self) -> &HistWeight31to12
0x245c - Weighting factor for sub-windows
Note: Allowed value range for weight factor is 0 to 16. The resulting weight is
register_value / 16. The host software has to limit the register value for each factor to 16.
Weight registers are available, if histogram version 3 is implemented.
sourcepub fn hist_weight_22to03(&self) -> &HistWeight22to03
pub fn hist_weight_22to03(&self) -> &HistWeight22to03
0x2460 - Weighting factor for sub-windows
Note: Allowed value range for weight factor is 0 to 16. The resulting weight is
register_value / 16. The host software has to limit the register value for each factor to 16.
Weight registers are available, if histogram version 3 is implemented.
sourcepub fn hist_weight_13to43(&self) -> &HistWeight13to43
pub fn hist_weight_13to43(&self) -> &HistWeight13to43
0x2464 - Weighting factor for sub-windows
Note: Allowed value range for weight factor is 0 to 16. The resulting weight is
register_value / 16. The host software has to limit the register value for each factor to 16.
Weight registers are available, if histogram version 3 is implemented.
sourcepub fn hist_weight_04to34(&self) -> &HistWeight04to34
pub fn hist_weight_04to34(&self) -> &HistWeight04to34
0x2468 - Weighting factor for sub-windows
Note: Allowed value range for weight factor is 0 to 16. The resulting weight is
register_value / 16. The host software has to limit the register value for each factor to 16.
Weight registers are available, if histogram version 3 is implemented.
sourcepub fn hist_weight_44(&self) -> &HistWeight44
pub fn hist_weight_44(&self) -> &HistWeight44
0x246c - Weighting factor for sub-windows
Note: Allowed value range for weight factor is 0 to 16. The resulting weight is
register_value / 16. The host software has to limit the register value for each factor to 16.
Weight registers are available, if histogram version 3 is implemented.
sourcepub fn filt_thresh_bl0(&self) -> &FiltThreshBl0
pub fn filt_thresh_bl0(&self) -> &FiltThreshBl0
0x2528 - Blurring threshold 0
Note: sum_grad is calculated by the texture detection unit as the sum of
horizontal and vertical gradients
sourcepub fn filt_thresh_bl1(&self) -> &FiltThreshBl1
pub fn filt_thresh_bl1(&self) -> &FiltThreshBl1
0x252c - Blurring threshold 1
Note: sum_grad is calculated by the texture detection unit as the sum of horizontal and
vertical gradients
sourcepub fn filt_thresh_sh0(&self) -> &FiltThreshSh0
pub fn filt_thresh_sh0(&self) -> &FiltThreshSh0
0x2530 - Sharpening threshold 0
Note: sum_grad is calculated by the texture detection unit as the sum of horizontal and
vertical gradients
sourcepub fn filt_thresh_sh1(&self) -> &FiltThreshSh1
pub fn filt_thresh_sh1(&self) -> &FiltThreshSh1
0x2534 - Sharpening threshold 1
Note: sum_grad is calculated by the texture detection unit as the sum of horizontal and
vertical gradients
sourcepub fn filt_lum_weight(&self) -> &FiltLumWeight
pub fn filt_lum_weight(&self) -> &FiltLumWeight
0x2538 - Parameters for luminance weight function
sourcepub fn filt_fac_sh1(&self) -> &FiltFacSh1
pub fn filt_fac_sh1(&self) -> &FiltFacSh1
0x253c - filter factor sharp1
sourcepub fn filt_fac_sh0(&self) -> &FiltFacSh0
pub fn filt_fac_sh0(&self) -> &FiltFacSh0
0x2540 - filter factor sharp0
sourcepub fn filt_fac_mid(&self) -> &FiltFacMid
pub fn filt_fac_mid(&self) -> &FiltFacMid
0x2544 - filter factor middle
sourcepub fn filt_fac_bl0(&self) -> &FiltFacBl0
pub fn filt_fac_bl0(&self) -> &FiltFacBl0
0x2548 - Parameter for blur 0 filter
sourcepub fn filt_fac_bl1(&self) -> &FiltFacBl1
pub fn filt_fac_bl1(&self) -> &FiltFacBl1
0x254c - Parameter for blur 1 filter
sourcepub fn cac_ctrl(&self) -> &CacCtrl
pub fn cac_ctrl(&self) -> &CacCtrl
0x2580 - Control register for chromatic aberration correction
Note: Clipping behavior can be controlled by clip_mode bits. If no clipping occurs, because
displacement is below the maximum correctable displacement, then it does not matter which
mode is selected.
sourcepub fn cac_count_start(&self) -> &CacCountStart
pub fn cac_count_start(&self) -> &CacCountStart
0x2584 - Preload values for CAC pixel and line counter
Note: Reset value is valid for 8192 x 8192 image resolution with centered chromatic
aberration (no offset from image center).
sourcepub fn cac_x_norm(&self) -> &CacXNorm
pub fn cac_x_norm(&self) -> &CacXNorm
0x2594 - Normalization parameters for calculation of image
coordinate x_d relative to optical center
Note: These values need to be programmed according to the image resolution and the
center offset of the chromatic aberration.
The parameters are necessary to avoid high gate count of the CAC hardware block. The
reset value is valid for an image resolution of 2600 x 1950 and center offset 0.
sourcepub fn cac_y_norm(&self) -> &CacYNorm
pub fn cac_y_norm(&self) -> &CacYNorm
0x2598 - Normalization parameters for calculation of image
coordinate y_d relative to optical center
Note: These values need to be programmed according to the image resolution and the
center offset of the chromatic aberration.
The parameters are necessary to avoid high gate count of the CAC hardware block. The
reset value is valid for an image resolution of 2600 x 1950 and center offset 0.
sourcepub fn exp_h_offset(&self) -> &ExpHOffset
pub fn exp_h_offset(&self) -> &ExpHOffset
0x2604 - Horizontal offset for first block
sourcepub fn exp_v_offset(&self) -> &ExpVOffset
pub fn exp_v_offset(&self) -> &ExpVOffset
0x2608 - Vertical offset for first block
sourcepub fn exp_h_size(&self) -> &ExpHSize
pub fn exp_h_size(&self) -> &ExpHSize
0x260c - Horizontal size of one block
Note: exp_h_size x 5 must be less (not equal) than the horizontal size of the picture
sourcepub fn exp_v_size(&self) -> &ExpVSize
pub fn exp_v_size(&self) -> &ExpVSize
0x2610 - Vertical size of one block
Note: The vertical size must be set in a way that after the last measurement window at
least two lines of the image will follow. In addition only even values for vertical size are
allowed (vertical size must be a multiple of 2).
sourcepub fn exp_mean_00(&self) -> &ExpMean00
pub fn exp_mean_00(&self) -> &ExpMean00
0x2614 - Mean luminance value of block 00
sourcepub fn exp_mean_10(&self) -> &ExpMean10
pub fn exp_mean_10(&self) -> &ExpMean10
0x2618 - Mean luminance value of block 10
sourcepub fn exp_mean_20(&self) -> &ExpMean20
pub fn exp_mean_20(&self) -> &ExpMean20
0x261c - Mean luminance value of block 20
sourcepub fn exp_mean_30(&self) -> &ExpMean30
pub fn exp_mean_30(&self) -> &ExpMean30
0x2620 - Mean luminance value of block 30
sourcepub fn exp_mean_40(&self) -> &ExpMean40
pub fn exp_mean_40(&self) -> &ExpMean40
0x2624 - Mean luminance value of block 40
sourcepub fn exp_mean_01(&self) -> &ExpMean01
pub fn exp_mean_01(&self) -> &ExpMean01
0x2628 - Mean luminance value of block 01
sourcepub fn exp_mean_11(&self) -> &ExpMean11
pub fn exp_mean_11(&self) -> &ExpMean11
0x262c - Mean luminance value of block 11
sourcepub fn exp_mean_21(&self) -> &ExpMean21
pub fn exp_mean_21(&self) -> &ExpMean21
0x2630 - Mean luminance value of block 21
sourcepub fn exp_mean_31(&self) -> &ExpMean31
pub fn exp_mean_31(&self) -> &ExpMean31
0x2634 - Mean luminance value of block 31
sourcepub fn exp_mean_41(&self) -> &ExpMean41
pub fn exp_mean_41(&self) -> &ExpMean41
0x2638 - Mean luminance value of block 41
sourcepub fn exp_mean_02(&self) -> &ExpMean02
pub fn exp_mean_02(&self) -> &ExpMean02
0x263c - Mean luminance value of block 02
sourcepub fn exp_mean_12(&self) -> &ExpMean12
pub fn exp_mean_12(&self) -> &ExpMean12
0x2640 - Mean luminance value of block 12
sourcepub fn exp_mean_22(&self) -> &ExpMean22
pub fn exp_mean_22(&self) -> &ExpMean22
0x2644 - Mean luminance value of block 22
sourcepub fn exp_mean_32(&self) -> &ExpMean32
pub fn exp_mean_32(&self) -> &ExpMean32
0x2648 - Mean luminance value of block 32
sourcepub fn exp_mean_42(&self) -> &ExpMean42
pub fn exp_mean_42(&self) -> &ExpMean42
0x264c - Mean luminance value of block 42
sourcepub fn exp_mean_03(&self) -> &ExpMean03
pub fn exp_mean_03(&self) -> &ExpMean03
0x2650 - Mean luminance value of block 03
sourcepub fn exp_mean_13(&self) -> &ExpMean13
pub fn exp_mean_13(&self) -> &ExpMean13
0x2654 - Mean luminance value of block 13
sourcepub fn exp_mean_23(&self) -> &ExpMean23
pub fn exp_mean_23(&self) -> &ExpMean23
0x2658 - Mean luminance value of block 23
sourcepub fn exp_mean_33(&self) -> &ExpMean33
pub fn exp_mean_33(&self) -> &ExpMean33
0x265c - Mean luminance value of block 33
sourcepub fn exp_mean_43(&self) -> &ExpMean43
pub fn exp_mean_43(&self) -> &ExpMean43
0x2660 - Mean luminance value of block 43
sourcepub fn exp_mean_04(&self) -> &ExpMean04
pub fn exp_mean_04(&self) -> &ExpMean04
0x2664 - Mean luminance value of block 04
sourcepub fn exp_mean_14(&self) -> &ExpMean14
pub fn exp_mean_14(&self) -> &ExpMean14
0x2668 - Mean luminance value of block 14
sourcepub fn exp_mean_24(&self) -> &ExpMean24
pub fn exp_mean_24(&self) -> &ExpMean24
0x266c - Mean luminance value of block 24
sourcepub fn exp_mean_34(&self) -> &ExpMean34
pub fn exp_mean_34(&self) -> &ExpMean34
0x2670 - Mean luminance value of block 34
sourcepub fn exp_mean_44(&self) -> &ExpMean44
pub fn exp_mean_44(&self) -> &ExpMean44
0x2674 - Mean luminance value of block 44
sourcepub fn bls_samples(&self) -> &BlsSamples
pub fn bls_samples(&self) -> &BlsSamples
0x2704 - samples register
sourcepub fn bls_h1_start(&self) -> &BlsH1Start
pub fn bls_h1_start(&self) -> &BlsH1Start
0x2708 - window 1 horizontal start
sourcepub fn bls_h1_stop(&self) -> &BlsH1Stop
pub fn bls_h1_stop(&self) -> &BlsH1Stop
0x270c - window 1 horizontal stop
sourcepub fn bls_v1_start(&self) -> &BlsV1Start
pub fn bls_v1_start(&self) -> &BlsV1Start
0x2710 - window 1 vertical start
sourcepub fn bls_v1_stop(&self) -> &BlsV1Stop
pub fn bls_v1_stop(&self) -> &BlsV1Stop
0x2714 - window 1 vertical stop
sourcepub fn bls_h2_start(&self) -> &BlsH2Start
pub fn bls_h2_start(&self) -> &BlsH2Start
0x2718 - window 2 horizontal start
sourcepub fn bls_h2_stop(&self) -> &BlsH2Stop
pub fn bls_h2_stop(&self) -> &BlsH2Stop
0x271c - window 2 horizontal stop
sourcepub fn bls_v2_start(&self) -> &BlsV2Start
pub fn bls_v2_start(&self) -> &BlsV2Start
0x2720 - window 2 vertical start
sourcepub fn bls_v2_stop(&self) -> &BlsV2Stop
pub fn bls_v2_stop(&self) -> &BlsV2Stop
0x2724 - window 2 vertical stop
sourcepub fn bls_a_fixed(&self) -> &BlsAFixed
pub fn bls_a_fixed(&self) -> &BlsAFixed
0x2728 - fixed black level A
sourcepub fn bls_b_fixed(&self) -> &BlsBFixed
pub fn bls_b_fixed(&self) -> &BlsBFixed
0x272c - fixed black level B
sourcepub fn bls_c_fixed(&self) -> &BlsCFixed
pub fn bls_c_fixed(&self) -> &BlsCFixed
0x2730 - fixed black level C
sourcepub fn bls_d_fixed(&self) -> &BlsDFixed
pub fn bls_d_fixed(&self) -> &BlsDFixed
0x2734 - fixed black level D
sourcepub fn bls_a_measured(&self) -> &BlsAMeasured
pub fn bls_a_measured(&self) -> &BlsAMeasured
0x2738 - measured black level A
sourcepub fn bls_b_measured(&self) -> &BlsBMeasured
pub fn bls_b_measured(&self) -> &BlsBMeasured
0x273c - measured black level B
sourcepub fn bls_c_measured(&self) -> &BlsCMeasured
pub fn bls_c_measured(&self) -> &BlsCMeasured
0x2740 - measured black level C
sourcepub fn bls_d_measured(&self) -> &BlsDMeasured
pub fn bls_d_measured(&self) -> &BlsDMeasured
0x2744 - measured black level D
sourcepub fn dpf_strength_r(&self) -> &DpfStrengthR
pub fn dpf_strength_r(&self) -> &DpfStrengthR
0x2804 - filter strength of the RED filter
sourcepub fn dpf_strength_g(&self) -> &DpfStrengthG
pub fn dpf_strength_g(&self) -> &DpfStrengthG
0x2808 - filter strength of the GREEN filter
sourcepub fn dpf_strength_b(&self) -> &DpfStrengthB
pub fn dpf_strength_b(&self) -> &DpfStrengthB
0x280c - filter strength of the BLUE filter
sourcepub fn dpf_s_weight_g_1_4(&self) -> &DpfSWeightG1_4
pub fn dpf_s_weight_g_1_4(&self) -> &DpfSWeightG1_4
0x2810 - Spatial Weights green channel 1 2 3 4
Note: The value zero (0/16) disables the filter tap
sourcepub fn dpf_s_weight_g_5_6(&self) -> &DpfSWeightG5_6
pub fn dpf_s_weight_g_5_6(&self) -> &DpfSWeightG5_6
0x2814 - Spatial Weights green channel 5 6
Note: The value zero (0/16) disables the filter tap.
sourcepub fn dpf_s_weight_rb_1_4(&self) -> &DpfSWeightRb1_4
pub fn dpf_s_weight_rb_1_4(&self) -> &DpfSWeightRb1_4
0x2818 - Spatial Weights red/blue channels 1 2 3 4
Note: The value zero (0/16) disables the filter tap.
sourcepub fn dpf_s_weight_rb_5_6(&self) -> &DpfSWeightRb5_6
pub fn dpf_s_weight_rb_5_6(&self) -> &DpfSWeightRb5_6
0x281c - Spatial Weights red/blue channels 5 6
Note: The value zero (0/16) disables the filter tap.
sourcepub fn dpf_nll_coeff(&self, n: usize) -> &DpfNllCoeff
pub fn dpf_nll_coeff(&self, n: usize) -> &DpfNllCoeff
0x2820..0x2864 - Noise Level Lookup Coefficient n (n=0..16)
sourcepub fn dpf_nll_coeff_iter(&self) -> impl Iterator<Item = &DpfNllCoeff>
pub fn dpf_nll_coeff_iter(&self) -> impl Iterator<Item = &DpfNllCoeff>
Iterator for array of: 0x2820..0x2864 - Noise Level Lookup Coefficient n (n=0..16)
sourcepub fn dpf_nf_gain_r(&self) -> &DpfNfGainR
pub fn dpf_nf_gain_r(&self) -> &DpfNfGainR
0x2864 - noise function gain for red pixels
sourcepub fn dpf_nf_gain_gr(&self) -> &DpfNfGainGr
pub fn dpf_nf_gain_gr(&self) -> &DpfNfGainGr
0x2868 - noise function gain for green in red pixels
sourcepub fn dpf_nf_gain_gb(&self) -> &DpfNfGainGb
pub fn dpf_nf_gain_gb(&self) -> &DpfNfGainGb
0x286c - noise function gain for green in blue pixels
sourcepub fn dpf_nf_gain_b(&self) -> &DpfNfGainB
pub fn dpf_nf_gain_b(&self) -> &DpfNfGainB
0x2870 - noise function gain for blue pixels
sourcepub fn dpcc_output_mode(&self) -> &DpccOutputMode
pub fn dpcc_output_mode(&self) -> &DpccOutputMode
0x2904 - Interpolation mode for correction unit
sourcepub fn dpcc_set_use(&self) -> &DpccSetUse
pub fn dpcc_set_use(&self) -> &DpccSetUse
0x2908 - DPCC methods set usage for detection
Note: methods sets can be used in parallel for each stage and the result is the logical OR
of all selected sets
sourcepub fn dpcc_methods_set_1(&self) -> &DpccMethodsSet1
pub fn dpcc_methods_set_1(&self) -> &DpccMethodsSet1
0x290c - Methods enable bits for SET_1
Note: different methods can be used in parallel, the result is the logical AND of all selected
methods
sourcepub fn dpcc_methods_set_2(&self) -> &DpccMethodsSet2
pub fn dpcc_methods_set_2(&self) -> &DpccMethodsSet2
0x2910 - Methods enable bits for SET_2
Note: different methods can be used in parallel, the result is the logical AND of all selected
methods
sourcepub fn dpcc_methods_set_3(&self) -> &DpccMethodsSet3
pub fn dpcc_methods_set_3(&self) -> &DpccMethodsSet3
0x2914 - Methods enable bits for SET_3
Note: different methods can be used in parallel, the result is the logical AND of all selected
methods
sourcepub fn dpcc_line_thresh_1(&self) -> &DpccLineThresh1
pub fn dpcc_line_thresh_1(&self) -> &DpccLineThresh1
0x2918 - Line threshold SET_1
Note: all values are unsigned integer
sourcepub fn dpcc_line_mad_fac_1(&self) -> &DpccLineMadFac1
pub fn dpcc_line_mad_fac_1(&self) -> &DpccLineMadFac1
0x291c - Mean Absolute Difference (MAD) factor for Line check set 1
Note: all values are unsigned integer
sourcepub fn dpcc_pg_fac_1(&self) -> &DpccPgFac1
pub fn dpcc_pg_fac_1(&self) -> &DpccPgFac1
0x2920 - Peak gradient factor for set 1
Note: all values are unsigned integer
sourcepub fn dpcc_rnd_thresh_1(&self) -> &DpccRndThresh1
pub fn dpcc_rnd_thresh_1(&self) -> &DpccRndThresh1
0x2924 - Rank Neighbor Difference threshold for set 1
Note: all values are unsigned integer
sourcepub fn dpcc_rg_fac_1(&self) -> &DpccRgFac1
pub fn dpcc_rg_fac_1(&self) -> &DpccRgFac1
0x2928 - Rank gradient factor for set 1
Note: all values are unsigned integer
sourcepub fn dpcc_line_thresh_2(&self) -> &DpccLineThresh2
pub fn dpcc_line_thresh_2(&self) -> &DpccLineThresh2
0x292c - Line threshold set 2
Note: all values are unsigned integer
sourcepub fn dpcc_line_mad_fac_2(&self) -> &DpccLineMadFac2
pub fn dpcc_line_mad_fac_2(&self) -> &DpccLineMadFac2
0x2930 - Mean Absolute Difference (MAD) factor for Line check set 2
Note: all values are unsigned integer
sourcepub fn dpcc_pg_fac_2(&self) -> &DpccPgFac2
pub fn dpcc_pg_fac_2(&self) -> &DpccPgFac2
0x2934 - Peak gradient factor for set 2
Note: all values are unsigned integer
sourcepub fn dpcc_rnd_thresh_2(&self) -> &DpccRndThresh2
pub fn dpcc_rnd_thresh_2(&self) -> &DpccRndThresh2
0x2938 - Rank Neighbor Difference threshold for set 2
Note: all values are unsigned integer
sourcepub fn dpcc_rg_fac_2(&self) -> &DpccRgFac2
pub fn dpcc_rg_fac_2(&self) -> &DpccRgFac2
0x293c - Rank gradient factor for set 2
Note: all values are unsigned integer
sourcepub fn dpcc_line_thresh_3(&self) -> &DpccLineThresh3
pub fn dpcc_line_thresh_3(&self) -> &DpccLineThresh3
0x2940 - Line threshold set 3
Note: all values are unsigned integer
sourcepub fn dpcc_line_mad_fac_3(&self) -> &DpccLineMadFac3
pub fn dpcc_line_mad_fac_3(&self) -> &DpccLineMadFac3
0x2944 - Mean Absolute Difference (MAD) factor for Line check set 3
Note: all values are unsigned integer
sourcepub fn dpcc_pg_fac_3(&self) -> &DpccPgFac3
pub fn dpcc_pg_fac_3(&self) -> &DpccPgFac3
0x2948 - Peak gradient factor for set 3
Note: all values are unsigned integer
sourcepub fn dpcc_rnd_thresh_3(&self) -> &DpccRndThresh3
pub fn dpcc_rnd_thresh_3(&self) -> &DpccRndThresh3
0x294c - Rank Neighbor Difference threshold for set 3
Note: all values are unsigned integer
sourcepub fn dpcc_rg_fac_3(&self) -> &DpccRgFac3
pub fn dpcc_rg_fac_3(&self) -> &DpccRgFac3
0x2950 - Rank gradient factor for set 3
Note: all values are unsigned integer
sourcepub fn dpcc_ro_limits(&self) -> &DpccRoLimits
pub fn dpcc_ro_limits(&self) -> &DpccRoLimits
0x2954 - Rank Order Limits
Note: all values are unsigned integer
sourcepub fn dpcc_rnd_offs(&self) -> &DpccRndOffs
pub fn dpcc_rnd_offs(&self) -> &DpccRndOffs
0x2958 - Differential Rank Offsets for Rank Neighbor Difference
Note: all values are unsigned integer
sourcepub fn dpcc_bpt_ctrl(&self) -> &DpccBptCtrl
pub fn dpcc_bpt_ctrl(&self) -> &DpccBptCtrl
0x295c - bad pixel table settings
Note: This register controls the behaviour of the table based bad pixel correction module.
It can be switched on and off independently of the DPCC detection and correction block.
Different correction algorithms for the table based correction are available and are defined by
this register. The default setting after reset enables a correction algorithm with most accurate
correlation to surrounding pixels. Detection for the table based correction can be configured
independently from the on-the-fly DPCC detection scheme.
sourcepub fn dpcc_bpt_number(&self) -> &DpccBptNumber
pub fn dpcc_bpt_number(&self) -> &DpccBptNumber
0x2960 - Number of entries for bad pixel table (table based correction)
Note: bit width of bp_number depends on size of BP RAM which is defined during chip
synthesis
sourcepub fn dpcc_bpt_addr(&self) -> &DpccBptAddr
pub fn dpcc_bpt_addr(&self) -> &DpccBptAddr
0x2964 - TABLE Start Address for table-based correction algorithm
Note: MKOE tbc: Orignial register mode was rwh which is no longer supported with new
version of SIG
-> rwhh
sourcepub fn dpcc_bpt_data(&self) -> &DpccBptData
pub fn dpcc_bpt_data(&self) -> &DpccBptData
0x2968 - TABLE DATA register for read and write access of table RAM
Note: MKOE tbc: Orignial register mode was rwh which is no longer supported with new
version of SIG
-> rwhh
The programmed table value is immediately written into the RAM. The RAM address is
generated per auto-increment. The parameter RAMs for Lens Shade Correction and Bad
Pixel Correction can only be programmed, if the RGB Bayer path is switched on via ISP_CTRL
sourcepub fn wdr_tonecurve_1(&self) -> &WdrTonecurve1
pub fn wdr_tonecurve_1(&self) -> &WdrTonecurve1
0x2a04 - Tone Curve sample points dYn definition (part 1)
Note: The interval widths dYn are to be defined in a 2^(value+3) notation, where
‘value’ has to be written to the register. So the steps would be
dYn=0 -> 8 (2^3), dYn=1 -> 16 (2^4), dYn=2
-> 32 (2^5),… dYn=6 -> 512 (2^9), dYn=7 ->
1024 (2^10).
sourcepub fn wdr_tonecurve_2(&self) -> &WdrTonecurve2
pub fn wdr_tonecurve_2(&self) -> &WdrTonecurve2
0x2a08 - Tone Curve sample points dYn definition (part 2)
Note: The interval widths dYn are to be defined in a 2^(value+3) notation, where
‘value’ has to be written to the register. So the steps would be
dYn=0 -> 8 (2^3), dYn=1 -> 16 (2^4), dYn=2
-> 32 (2^5),… dYn=6 -> 512 (2^9), dYn=7 ->
1024 (2^10).
sourcepub fn wdr_tonecurve_3(&self) -> &WdrTonecurve3
pub fn wdr_tonecurve_3(&self) -> &WdrTonecurve3
0x2a0c - Tone Curve sample points dYn definition (part 3)
Note: The interval widths dYn are to be defined in a 2^(value+3) notation, where
‘value’ has to be written to the register. So the steps would be
dYn=0 -> 8 (2^3), dYn=1 -> 16 (2^4), dYn=2
-> 32 (2^5),… dYn=6 -> 512 (2^9), dYn=7 ->
1024 (2^10).
sourcepub fn wdr_tonecurve_4(&self) -> &WdrTonecurve4
pub fn wdr_tonecurve_4(&self) -> &WdrTonecurve4
0x2a10 - Tone Curve sample points dYn definition (part 4)
Note: The interval widths dYn are to be defined in a 2^(value+3) notation, where ‘value’
has to be written to the register. So the steps would be
dYn=0 -> 8 (2^3), dYn=1 -> 16 (2^4), dYn=2 -> 32 (2^5),… dYn=6 -> 512 (2^9),
dYn=7 -> 1024 (2^10).
sourcepub fn wdr_tonecurve_ym(&self, n: usize) -> &WdrTonecurveYm
pub fn wdr_tonecurve_ym(&self, n: usize) -> &WdrTonecurveYm
0x2a14..0x2a98 - Tonemapping curve coefficient Ym_ n (n=0..32)
Note: The reset values define a linear curve which has the same effect as bypass. Reset
values are: Ym_00 = 0x0000, Ym_01 = 0x0080, Ym_02 = 0x0100, Ym_03 = 0x0180, Ym_04
= 0x0200,
Ym_05 = 0x0280, Ym_06 = 0x0300, Ym_07 = 0x0380, Ym_08 = 0x0400, Ym_09 =
0x0480, Ym_10 = 0x0500, Ym_11 = 0x0580, Ym_12 = 0x0600, Ym_13 = 0x0680, Ym_14 =
0x0700, Ym_15 = 0x0780, Ym_16 = 0x0800, Ym_17 = 0x0880, Ym_18 = 0x0900, Ym_19 =
0x0980, Ym_20 = 0x0A00, Ym_21 = 0x0A80, Ym_22 = 0x0B00, Ym_23 = 0x0B80, Ym_24 =
0x0C00, Ym_25 = 0x0C80, Ym_26 = 0x0D00, Ym_27 = 0x0D80, Ym_28 = 0x0E00, Ym_29 =
0x0E80, Ym_30 = 0x0F00, Ym_31 = 0x0F80, Ym_32 = 0x1000
Data format: 13 bit unsigned
RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so
that the difference between successive Y values is 12-bit signed !)
sourcepub fn wdr_tonecurve_ym_iter(&self) -> impl Iterator<Item = &WdrTonecurveYm>
pub fn wdr_tonecurve_ym_iter(&self) -> impl Iterator<Item = &WdrTonecurveYm>
Iterator for array of: 0x2a14..0x2a98 - Tonemapping curve coefficient Ym_ n (n=0..32)
Note: The reset values define a linear curve which has the same effect as bypass. Reset
values are: Ym_00 = 0x0000, Ym_01 = 0x0080, Ym_02 = 0x0100, Ym_03 = 0x0180, Ym_04
= 0x0200,
Ym_05 = 0x0280, Ym_06 = 0x0300, Ym_07 = 0x0380, Ym_08 = 0x0400, Ym_09 =
0x0480, Ym_10 = 0x0500, Ym_11 = 0x0580, Ym_12 = 0x0600, Ym_13 = 0x0680, Ym_14 =
0x0700, Ym_15 = 0x0780, Ym_16 = 0x0800, Ym_17 = 0x0880, Ym_18 = 0x0900, Ym_19 =
0x0980, Ym_20 = 0x0A00, Ym_21 = 0x0A80, Ym_22 = 0x0B00, Ym_23 = 0x0B80, Ym_24 =
0x0C00, Ym_25 = 0x0C80, Ym_26 = 0x0D00, Ym_27 = 0x0D80, Ym_28 = 0x0E00, Ym_29 =
0x0E80, Ym_30 = 0x0F00, Ym_31 = 0x0F80, Ym_32 = 0x1000
Data format: 13 bit unsigned
RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so
that the difference between successive Y values is 12-bit signed !)
sourcepub fn wdr_offset(&self) -> &WdrOffset
pub fn wdr_offset(&self) -> &WdrOffset
0x2a98 - Offset values for RGB path
sourcepub fn wdr_deltamin(&self) -> &WdrDeltamin
pub fn wdr_deltamin(&self) -> &WdrDeltamin
0x2a9c - DeltaMin Threshold and Strength factor
sourcepub fn wdr_tonecurve_1_shd(&self) -> &WdrTonecurve1Shd
pub fn wdr_tonecurve_1_shd(&self) -> &WdrTonecurve1Shd
0x2aa0 - Tone Curve sample points dYn definition shadow register (part 1)
Note: see register ISP_WDR_TONECURVE_1.
sourcepub fn wdr_tonecurve_2_shd(&self) -> &WdrTonecurve2Shd
pub fn wdr_tonecurve_2_shd(&self) -> &WdrTonecurve2Shd
0x2aa4 - Tone Curve sample points dYn definition shadow register (part 2)
Note: see register ISP_WDR_TONECURVE_2.
sourcepub fn wdr_tonecurve_3_shd(&self) -> &WdrTonecurve3Shd
pub fn wdr_tonecurve_3_shd(&self) -> &WdrTonecurve3Shd
0x2aa8 - Tone Curve sample points dYn definition shadow register (part 3)
Note: see register ISP_WDR_TONECURVE_3.
sourcepub fn wdr_tonecurve_4_shd(&self) -> &WdrTonecurve4Shd
pub fn wdr_tonecurve_4_shd(&self) -> &WdrTonecurve4Shd
0x2aac - Tone Curve sample points dYn definition shadow register(part 4)
Note: see register ISP_WDR_TONECURVE_4.
sourcepub fn wdr_tonecurve_ym_shd(&self, n: usize) -> &WdrTonecurveYmShd
pub fn wdr_tonecurve_ym_shd(&self, n: usize) -> &WdrTonecurveYmShd
0x2ab0..0x2b34 - Tonemapping curve coefficient shadow register n (n=0..32)
Note: The reset values define a linear curve which has the same effect as bypass. Reset
values are: Ym_00 = 0x0000, Ym_01 = 0x0080, Ym_02 = 0x0100, Ym_03 = 0x0180, Ym_04
= 0x0200,
Ym_05 = 0x0280, Ym_06 = 0x0300, Ym_07 = 0x0380, Ym_08 = 0x0400, Ym_09 =
0x0480, Ym_10 = 0x0500, Ym_11 = 0x0580, Ym_12 = 0x0600, Ym_13 = 0x0680, Ym_14 =
0x0700, Ym_15 = 0x0780, Ym_16 = 0x0800, Ym_17 = 0x0880, Ym_18 = 0x0900, Ym_19 =
0x0980, Ym_20 = 0x0A00, Ym_21 = 0x0A80, Ym_22 = 0x0B00, Ym_23 = 0x0B80, Ym_24 =
0x0C00, Ym_25 = 0x0C80, Ym_26 = 0x0D00, Ym_27 = 0x0D80, Ym_28 = 0x0E00, Ym_29 =
0x0E80, Ym_30 = 0x0F00, Ym_31 = 0x0F80, Ym_32 = 0x1000
Data format: 13 bit unsigned
RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so
that the difference between successive Y values is 12-bit signed !)
sourcepub fn wdr_tonecurve_ym_shd_iter(
&self
) -> impl Iterator<Item = &WdrTonecurveYmShd>
pub fn wdr_tonecurve_ym_shd_iter( &self ) -> impl Iterator<Item = &WdrTonecurveYmShd>
Iterator for array of: 0x2ab0..0x2b34 - Tonemapping curve coefficient shadow register n (n=0..32)
Note: The reset values define a linear curve which has the same effect as bypass. Reset
values are: Ym_00 = 0x0000, Ym_01 = 0x0080, Ym_02 = 0x0100, Ym_03 = 0x0180, Ym_04
= 0x0200,
Ym_05 = 0x0280, Ym_06 = 0x0300, Ym_07 = 0x0380, Ym_08 = 0x0400, Ym_09 =
0x0480, Ym_10 = 0x0500, Ym_11 = 0x0580, Ym_12 = 0x0600, Ym_13 = 0x0680, Ym_14 =
0x0700, Ym_15 = 0x0780, Ym_16 = 0x0800, Ym_17 = 0x0880, Ym_18 = 0x0900, Ym_19 =
0x0980, Ym_20 = 0x0A00, Ym_21 = 0x0A80, Ym_22 = 0x0B00, Ym_23 = 0x0B80, Ym_24 =
0x0C00, Ym_25 = 0x0C80, Ym_26 = 0x0D00, Ym_27 = 0x0D80, Ym_28 = 0x0E00, Ym_29 =
0x0E80, Ym_30 = 0x0F00, Ym_31 = 0x0F80, Ym_32 = 0x1000
Data format: 13 bit unsigned
RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so
that the difference between successive Y values is 12-bit signed !)
sourcepub fn vsm_h_offs(&self) -> &VsmHOffs
pub fn vsm_h_offs(&self) -> &VsmHOffs
0x2f04 - VSM window horizontal offset
sourcepub fn vsm_v_offs(&self) -> &VsmVOffs
pub fn vsm_v_offs(&self) -> &VsmVOffs
0x2f08 - VSM window vertical offset
sourcepub fn vsm_h_size(&self) -> &VsmHSize
pub fn vsm_h_size(&self) -> &VsmHSize
0x2f0c - Horizontal measure window size
Note: only even values are allowed: vsm_h_size[0] not writable and read returns 0.
sourcepub fn vsm_v_size(&self) -> &VsmVSize
pub fn vsm_v_size(&self) -> &VsmVSize
0x2f10 - Vertical measure window size
Note: only even values are allowed: vsm_v_size[0] not writable and read returns 0.
sourcepub fn vsm_h_segments(&self) -> &VsmHSegments
pub fn vsm_h_segments(&self) -> &VsmHSegments
0x2f14 - Iteration 1 horizontal segments
Note: number of 1st iteration sample points = vsm_h_segments + 1
sourcepub fn vsm_v_segments(&self) -> &VsmVSegments
pub fn vsm_v_segments(&self) -> &VsmVSegments
0x2f18 - Iteration 1 vertical segments
Note: number of 1st iteration sample points = vsm_v_segments + 1
sourcepub fn vsm_delta_h(&self) -> &VsmDeltaH
pub fn vsm_delta_h(&self) -> &VsmDeltaH
0x2f1c - estimated horizontal displacement