Skip to content

Commit

Permalink
Infinite-ISP Reference Model v1.0
Browse files Browse the repository at this point in the history
* Modified Groundtruth Images

* renamed raw files and updated read_me

---------

Co-authored-by: Maria_Nadeem-10x <[email protected]>
  • Loading branch information
bakhtawar-10xe and marianadeem-10xe authored Jun 6, 2023
1 parent 120e7fb commit 23f5d85
Show file tree
Hide file tree
Showing 17 changed files with 30 additions and 34 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ ISP pipeline for `InfiniteISP_ReferenceModel v1.0`

## Objectives

The primary objective of Infinite-ISP_ReferenceModel is to create a open source Python-based Model that streamlines the process of implementing camera pipeline modules into RTL-friendly implementations. This enables seamless integration with hardware designs and simplifies the development of efficient image processing systems. By providing optimized algorithms, test vector generation, output comparison, and video processing capabilities, the model aims to be an invaluable tool for developers working on image processing projects and RTL implementations.
The primary objective of Infinite-ISP_ReferenceModel is to create a open source Python-based Model that streamlines the process of implementing camera pipeline modules into RTL-friendly implementations. This enables seamless integration with hardware designs and simplifies the development of efficient image processing systems. By providing optimized algorithms, test vector generation, and video processing capabilities, the model aims to be an invaluable tool for developers working on image processing projects and RTL implementations.

# Features List

Expand Down Expand Up @@ -160,9 +160,9 @@ A comparison of the above results based on PSNR and SSIM image quality metrics
| Images | PSNR | SSIM |
|-----------|-------|-------|
| Indoor1 |22.5788 |0.8923
|Outdoor1 |22.3578 |0.9374
|Outdoor2 |20.1876 |0.8189
|Outdoor3 |19.6018 |0.7902
|Outdoor1 |19.1544 |0.9048
|Outdoor2 |18.8681 |0.8071
|Outdoor3 |17.2825 |0.7304
|Outdoor4 |19.9814 |0.8198

## User Guide
Expand Down
4 changes: 2 additions & 2 deletions config/configs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ auto_white_balance:
is_enable: true
is_debug: true
stats_window_offset: [16, 16, 16, 16]
underexposed_pecentage: 5
overexposed_pecentage: 5
underexposed_percentage: 5
overexposed_percentage: 5
is_save: false

white_balance:
Expand Down
10 changes: 5 additions & 5 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ Below parameters are present each ISP pipeline module they effect the functional

| digital_gain | Details |
| ----------- | --- |
| is_enable | This is a essential module and cannot be disabled
| is_auto | Flag to calculated digital gain using AE Feedback
| is_enable | This is an essential module and cannot be disabled
| is_auto | Flag to calculate digital gain using AE Feedback
| gain_array | Gains array. List of permissible digital gains |
| current_gain | Index for the current gain in gain_array. It starts from zero |
| ae_feedback| AE feedback, it has only following values <br> - `1` (Overexposed) <br> - `-1` (Underexposed) <br> - `0` (Correct Exposure) |
Expand All @@ -106,9 +106,9 @@ Below parameters are present each ISP pipeline module they effect the functional
| auto_white_balance | Details |
| ----------- | --- |
| is_enable | When enabled calculates white balance gains for current frame |
| stats_window_offset | Specifies the crop dimensions to obtain a stats calculation window <br> - Should be an array of elements `[Up, Down, Left Right]` <br> - Should be a multiple of 4 |
| underexposed_pecentage | Set % of dark pixels to exclude before AWB gain calculation|
| overexposed_pecentage | Set % of saturated pixels to exclude before AWB gain calculation|
| stats_window_offset | Specifies the crop dimensions to obtain a stats calculation window <br> - Should be an array of elements `[Up, Down, Left, Right]` <br> - Should be a multiple of 4 |
| underexposed_percentage | Set % of dark pixels to exclude before AWB gain calculation|
| overexposed_percentage | Set % of saturated pixels to exclude before AWB gain calculation|

### White balance

Expand Down
Binary file modified docs/assets/Outdoor1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/Outdoor2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/Outdoor3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ auto_white_balance:
is_enable: true
is_debug: true
stats_window_offset: [16, 16, 16, 16]
underexposed_pecentage: 2.5
overexposed_pecentage: 2.5
underexposed_percentage: 2.5
overexposed_percentage: 2.5
is_save: false

white_balance:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ auto_white_balance:
is_enable: true
is_debug: true
stats_window_offset: [16, 16, 16, 16]
underexposed_pecentage: 2.5
overexposed_pecentage: 2.5
underexposed_percentage: 2.5
overexposed_percentage: 2.5
is_save: false

white_balance:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ auto_white_balance:
is_enable: true
is_debug: true
stats_window_offset: [16, 16, 16, 16]
underexposed_pecentage: 2.5
overexposed_pecentage: 2.5
underexposed_percentage: 2.5
overexposed_percentage: 2.5
is_save: false

white_balance:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ auto_white_balance:
is_enable: true
is_debug: true
stats_window_offset: [16, 16, 16, 16]
underexposed_pecentage: 2.5
overexposed_pecentage: 2.5
underexposed_percentage: 2.5
overexposed_percentage: 2.5
is_save: false

white_balance:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ auto_white_balance:
is_enable: true
is_debug: true
stats_window_offset: [16, 16, 16, 16]
underexposed_pecentage: 2.5
overexposed_pecentage: 2.5
underexposed_percentage: 2.5
overexposed_percentage: 2.5
is_save: false

white_balance:
Expand Down
4 changes: 2 additions & 2 deletions modules/auto_white_balance.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ def __init__(self, raw, sensor_info, parm_awb):
self.bit_depth = sensor_info["bit_depth"]
self.is_debug = parm_awb["is_debug"]
self.stats_window_offset = np.array(parm_awb["stats_window_offset"])
self.underexposed_percentage = parm_awb["underexposed_pecentage"]
self.overexposed_percentage = parm_awb["overexposed_pecentage"]
self.underexposed_percentage = parm_awb["underexposed_percentage"]
self.overexposed_percentage = parm_awb["overexposed_percentage"]
self.flatten_raw = None
self.bayer = self.sensor_info["bayer_pattern"]

Expand Down
13 changes: 6 additions & 7 deletions test_vector_generation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,17 @@ The DUT (Device Under Test) refers to the specific module or set of modules that
9. color_correction_matrix
10. gamma_correction
11. color_space_conversion
12. ldci
13. 2d_noise_reduction
14. rgb_conversion
15. invalid_region_crop
16. scale
17. yuv_conversion_format
12. 2d_noise_reduction
13. rgb_conversion
14. invalid_region_crop
15. scale
16. yuv_conversion_format

When specifying the DUT (Device Under Test), it is important to use the exact names from the provided list. The DUT can be defined in two ways:

1. Single Module: The DUT can be any individual module from the list above, such as "demosaic" or "scale"

2. Multiple Modules in Sequence: When testing multiple modules in sequence, it is crucial to follow the specified order. For example, "crop, ldci, scale" would be a valid sequence. However, "ldci" cannot precede the "digital_gain" in the DUT list.
2. Multiple Modules in Sequence: When testing multiple modules in sequence, it is crucial to follow the specified order. For example, "crop, white_balance, scale" would be a valid sequence. However, "white_balance" cannot precede the "digital_gain" in the DUT list.

By accurately matching the DUT name to the provided list, it is ensured that the correct modules are being tested, either individually or in the specified order, while considering any dependencies between the modules.

Expand Down
4 changes: 1 addition & 3 deletions test_vector_generation/tv_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ rev_yuv: False
# DUT options = ['crop', 'dead_pixel_correction', 'black_level_correction',
# 'oecf', 'digital_gain','bayer_noise_reduction',
# 'white_balance', 'demosaic', 'color_correction_matrix',
# 'gamma_correction', 'color_space_conversion', 'ldci',
# 'gamma_correction', 'color_space_conversion',
# '2d_noise_reduction', 'rgb_conversion', 'invalid_region_crop',
# 'scale', 'yuv_conversion_format']
dut: ["dead_pixel_correction"]
Expand Down Expand Up @@ -35,8 +35,6 @@ auto_exposure:
is_enable: true
color_space_conversion:
is_save: false
ldci:
is_enable: false
2d_noise_reduction:
is_enable: false
rgb_conversion:
Expand Down
1 change: 0 additions & 1 deletion test_vector_generation/tv_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,6 @@ def get_input_tv(path, input_ext, rev_flag, rgb_conv_flag):
# check if module output is RGB or YUV
yuv_out = [
"color_space_conversion",
"ldci",
"2d_noise_reduction",
]
rgb_out = [
Expand Down

0 comments on commit 23f5d85

Please sign in to comment.