| /* |
| * Copyright 2022 Google LLC |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #include "samples/risp4ml/common/utils.h" |
| #include "samples/risp4ml/isp_stages/blc.h" |
| |
| static BlcParams blc_params = {.enable = true, |
| .offsets = {2048, 2048, 2048, 2048}}; |
| |
| void set_blc_params(BlcParams* params) { blc_params = *params; } |
| |
| void blc_process(Image* img) { |
| if (!blc_params.enable) return; |
| |
| for (uint16_t y = 0; y < img->height; ++y) { |
| pixel_type_t* line = image_row(img, 0, y); |
| for (uint16_t x = 0; x < img->width; ++x) { |
| BayerIndex bayer_index = GetBayerIndex(kBayerType, x, y); |
| line[x] = SubUnsignedZeroClamp(line[x], blc_params.offsets[bayer_index]); |
| } |
| } |
| } |