+struct image_sig_block {
+ struct image_sig_block *next; /* linked list */
+ u32 x, y; /* block position */
+ byte area; /* block area in pixels (usually 16) */
+ byte region; /* region index */
+ byte v[IMAGE_VEC_F]; /* feature vector */
+};
+
+struct image_sig_region {
+ struct image_sig_block *blocks;
+ u32 count;
+ u32 a[IMAGE_VEC_F];
+ u32 b[IMAGE_VEC_F];
+ u32 c[IMAGE_VEC_F];
+ u64 e;
+ u64 w_sum;
+};
+
+struct image_sig_data {
+ struct image *image;
+ struct image_sig_block *blocks;
+ struct image_sig_region regions[IMAGE_REG_MAX];
+ u32 cols;
+ u32 rows;
+ u32 full_cols;
+ u32 full_rows;
+ u32 flags;
+ u32 area;
+ u32 valid;
+ u32 blocks_count;
+ u32 regions_count;
+ u32 f[IMAGE_VEC_F];
+};
+