 |
Edge AI Add-on API 2.2.0
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
15#ifndef NRF_EDGEAI_OBSV_ENCODE_SIZES_H
16#define NRF_EDGEAI_OBSV_ENCODE_SIZES_H
56#define _CBOR_TSTR(s) sizeof(s)
57#define _CBOR_SMALL_HDR 1U
58#define _CBOR_LARGE_HDR 3U
61#define _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST (1U + sizeof(uint32_t))
81#define _NRF_EDGEAI_OBSV_ENCODE_OUTER_FIXED \
83 + _CBOR_TSTR("format_version") + _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST \
84 + _CBOR_TSTR("num_inferences") + _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST \
85 + _CBOR_TSTR("num_features") + _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST \
86 + _CBOR_TSTR("model") + _CBOR_SMALL_HDR \
87 + _CBOR_TSTR("id") + _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST \
88 + _CBOR_TSTR("num_classes") + _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST \
89 + _CBOR_TSTR("num_features") + _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST \
90 + _CBOR_TSTR("version") + _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST \
91 + _CBOR_TSTR("metrics") + _CBOR_LARGE_HDR)
104#define _NRF_EDGEAI_OBSV_ENCODE_METRIC_BLOCK_FIXED \
106 + _CBOR_TSTR("id") + _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST \
107 + _CBOR_TSTR("v") + _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST \
108 + _CBOR_TSTR("d") + _CBOR_LARGE_HDR)
114#define _NRF_EDGEAI_OBSV_ENCODE_TABLE_ROW_FIXED _CBOR_LARGE_HDR
118#if defined(CONFIG_NRF_EDGEAI_OBSV_METRIC_PROBS_DISTRIBUTION)
120#define _NRF_EDGEAI_OBSV_ENCODE_PD_PER_CLASS \
121 (_NRF_EDGEAI_OBSV_ENCODE_TABLE_ROW_FIXED + \
122 (CONFIG_NRF_EDGEAI_OBSV_PROBS_DISTRIBUTION_BIN_NUM * \
123 _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST))
125#define _NRF_EDGEAI_OBSV_ENCODE_PD \
126 (_NRF_EDGEAI_OBSV_ENCODE_METRIC_BLOCK_FIXED + \
127 (CONFIG_NRF_EDGEAI_OBSV_MAX_CLASSES * _NRF_EDGEAI_OBSV_ENCODE_PD_PER_CLASS))
130#define _NRF_EDGEAI_OBSV_ENCODE_PD 0
133#if defined(CONFIG_NRF_EDGEAI_OBSV_METRIC_TRANSITION_MATRIX)
135#define _NRF_EDGEAI_OBSV_ENCODE_TM_PER_ROW \
136 (_NRF_EDGEAI_OBSV_ENCODE_TABLE_ROW_FIXED + \
137 (CONFIG_NRF_EDGEAI_OBSV_MAX_CLASSES * _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST))
139#define _NRF_EDGEAI_OBSV_ENCODE_TM \
140 (_NRF_EDGEAI_OBSV_ENCODE_METRIC_BLOCK_FIXED + \
141 (CONFIG_NRF_EDGEAI_OBSV_MAX_CLASSES * _NRF_EDGEAI_OBSV_ENCODE_TM_PER_ROW))
144#define _NRF_EDGEAI_OBSV_ENCODE_TM 0
147#if defined(CONFIG_NRF_EDGEAI_OBSV_METRIC_PREDICTION_SWITCHING_RATE)
150#define _NRF_EDGEAI_OBSV_ENCODE_PSR \
151 (_NRF_EDGEAI_OBSV_ENCODE_METRIC_BLOCK_FIXED + \
152 (_NRF_EDGEAI_OBSV_ENCODE_TABLE_ROW_FIXED + \
153 (2U * _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST)))
156#define _NRF_EDGEAI_OBSV_ENCODE_PSR 0
159#if defined(CONFIG_NRF_EDGEAI_OBSV_METRIC_PROBS_ENTROPY_DIST)
162#define _NRF_EDGEAI_OBSV_ENCODE_PED \
163 (_NRF_EDGEAI_OBSV_ENCODE_METRIC_BLOCK_FIXED + \
164 (_NRF_EDGEAI_OBSV_ENCODE_TABLE_ROW_FIXED + \
165 (CONFIG_NRF_EDGEAI_OBSV_PROBS_ENTROPY_DIST_BIN_NUM * \
166 _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST)))
169#define _NRF_EDGEAI_OBSV_ENCODE_PED 0
172#if defined(CONFIG_NRF_EDGEAI_OBSV_METRIC_PROBS_TOP2_MARGIN_DIST)
175#define _NRF_EDGEAI_OBSV_ENCODE_PMD \
176 (_NRF_EDGEAI_OBSV_ENCODE_METRIC_BLOCK_FIXED + \
177 (_NRF_EDGEAI_OBSV_ENCODE_TABLE_ROW_FIXED + \
178 (CONFIG_NRF_EDGEAI_OBSV_PROBS_TOP2_MARGIN_DIST_BIN_NUM * \
179 _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST)))
182#define _NRF_EDGEAI_OBSV_ENCODE_PMD 0
185#if defined(CONFIG_NRF_EDGEAI_OBSV_METRIC_MEL_ENERGY_DESC)
188#define _NRF_EDGEAI_OBSV_ENCODE_MED \
189 (_NRF_EDGEAI_OBSV_ENCODE_METRIC_BLOCK_FIXED + \
190 (4U * (_NRF_EDGEAI_OBSV_ENCODE_TABLE_ROW_FIXED + \
191 (CONFIG_NRF_EDGEAI_OBSV_MEL_ENERGY_DESC_BIN_NUM * \
192 _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST))))
195#define _NRF_EDGEAI_OBSV_ENCODE_MED 0
198#if defined(CONFIG_NRF_EDGEAI_OBSV_METRIC_MEL_SPECTRAL_DESC)
201#define _NRF_EDGEAI_OBSV_ENCODE_MSD \
202 (_NRF_EDGEAI_OBSV_ENCODE_METRIC_BLOCK_FIXED + \
203 (8U * (_NRF_EDGEAI_OBSV_ENCODE_TABLE_ROW_FIXED + \
204 (CONFIG_NRF_EDGEAI_OBSV_MEL_SPECTRAL_DESC_BIN_NUM * \
205 _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST))))
208#define _NRF_EDGEAI_OBSV_ENCODE_MSD 0
230#define NRF_EDGEAI_OBSV_ENCODE_METRIC_SIZE(n_rows, n_cols) \
231 (_NRF_EDGEAI_OBSV_ENCODE_METRIC_BLOCK_FIXED + \
232 (n_rows) * (_NRF_EDGEAI_OBSV_ENCODE_TABLE_ROW_FIXED + \
233 (n_cols) * _NRF_EDGEAI_OBSV_ENCODE_UINT32_WORST))
243#define NRF_EDGEAI_OBSV_ENCODE_MAX_SIZE \
244 (_NRF_EDGEAI_OBSV_ENCODE_OUTER_FIXED + _NRF_EDGEAI_OBSV_ENCODE_PD + \
245 _NRF_EDGEAI_OBSV_ENCODE_TM + _NRF_EDGEAI_OBSV_ENCODE_PSR + \
246 _NRF_EDGEAI_OBSV_ENCODE_PED + _NRF_EDGEAI_OBSV_ENCODE_PMD + \
247 _NRF_EDGEAI_OBSV_ENCODE_MED + _NRF_EDGEAI_OBSV_ENCODE_MSD + \
248 CONFIG_NRF_EDGEAI_OBSV_EXTRA_ENCODE_BYTES)
256#define _NRF_EDGEAI_OBSV_ENCODE_LIST_ARRAY_OVERHEAD _CBOR_SMALL_HDR
265#define NRF_EDGEAI_OBSV_ENCODE_LIST_BUF_SIZE(n) \
266 (_NRF_EDGEAI_OBSV_ENCODE_LIST_ARRAY_OVERHEAD + (n) * NRF_EDGEAI_OBSV_ENCODE_MAX_SIZE)