| /* |
| * Copyright 2023 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. |
| */ |
| |
| #ifndef RISP4ML_COMMON_CONSTANTS_H_ |
| #define RISP4ML_COMMON_CONSTANTS_H_ |
| |
| #include <stdint.h> |
| |
| // Input and output are expected to be 8 bits per pixel |
| static const uint16_t kPipeInputBpp = 8; |
| static const uint16_t kPipeOutputBpp = 8; |
| |
| // TODO(b/149969920): modify sign,bitwidths and internal precision for risp4ml |
| // Assume 8.8 format |
| static const uint16_t kRawPipelineBpp = 16; |
| static const uint16_t kRawPipelineInteger = 8; |
| static const uint16_t kRawPipelineFraction = 8; |
| |
| // max = 0xFF.FF = 65535 |
| // represnting 255 + 255/256 |
| static const uint16_t kRawPipelineMaxVal = 0xFFFF; |
| static const uint16_t kRawPipelineMinVal = 0; |
| // min fraction = 0x00.01 = 1/256 |
| static const uint16_t kRawPipelineMinFraction = 1; |
| |
| // BayerIndex defines the order in 2x2 normal Bayer quad. |
| // +---+---+ |
| // | R | Gr| |
| // +---+---+ |
| // | Gb| B | |
| // +---+---+ |
| typedef enum { |
| kR = 0, |
| kGr = 1, |
| kGb = 2, |
| kB = 3, |
| } BayerIndex; |
| |
| typedef enum { |
| kRggb = 0, |
| kGrbg = 1, |
| kGbrg = 2, |
| kBggr = 3, |
| } BayerPattern; |
| |
| #ifndef NUM_BAYER_PATTERNS |
| #define NUM_BAYER_PATTERNS 4 |
| #endif |
| |
| #ifndef BAYER_COLOR_CHANNELS |
| #define BAYER_COLOR_CHANNELS 4 |
| #endif |
| |
| #ifndef RGB_COLOR_CHANNELS |
| #define RGB_COLOR_CHANNELS 3 |
| #endif |
| |
| // TODO(alexkaplan): Add a way to update this based on the image |
| // or to make sure the BayerType corresponds to the loaded image |
| static const BayerPattern kBayerType = kRggb; |
| |
| #endif // RISP4ML_COMMON_CONSTANTS_H_ |