ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
cells.h
Go to the documentation of this file.
1#pragma once
4
10typedef struct {
12 void (*pack)(const uint8_t *rgb, uint32_t *out, size_t count);
13 void (*lookup)(const uint8_t *luma, const uint32_t table[64], uint32_t *out, size_t count);
14 void (*quantize)(const uint32_t *rgb, uint32_t *out, size_t count, unsigned colors);
15 void (*halfblock)(const uint32_t *top, const uint32_t *bottom, uint32_t *glyph, uint32_t *fg, uint32_t *bg,
16 size_t count, unsigned mode, const uint32_t keys[5]);
17 size_t (*run)(const uint32_t *glyph, const uint32_t *fg, const uint32_t *bg, size_t count);
18 void (*emit_mono)(outbuf_t *out, const uint32_t *glyph, size_t count);
19 // The 16 inputs are centered byte values in [-255, 255].
20 int (*glyph_shape_correlation)(const int16_t samples[16], const int16_t mask[16]);
22
23int glyph_shape_correlation_scalar(const int16_t samples[16], const int16_t mask[16]);
24int glyph_shape_correlation_sse2(const int16_t samples[16], const int16_t mask[16]);
25int glyph_shape_correlation_avx2(const int16_t samples[16], const int16_t mask[16]);
26int glyph_shape_correlation_neon(const int16_t samples[16], const int16_t mask[16]);
27int glyph_shape_correlation_sve(const int16_t samples[16], const int16_t mask[16]);
28
30#define DECLARE_SIMD_CELLS(isa) \
31 void simd_pack_##isa(const uint8_t *, uint32_t *, size_t); \
32 void simd_lookup_##isa(const uint8_t *, const uint32_t[64], uint32_t *, size_t); \
33 void simd_quantize_##isa(const uint32_t *, uint32_t *, size_t, unsigned); \
34 void simd_halfblock_##isa(const uint32_t *, const uint32_t *, uint32_t *, uint32_t *, uint32_t *, size_t, unsigned, \
35 const uint32_t[5]); \
36 size_t simd_run_##isa(const uint32_t *, const uint32_t *, const uint32_t *, size_t)
37DECLARE_SIMD_CELLS(scalar);
43#undef DECLARE_SIMD_CELLS
44
46extern const simd_cells_t simd_cells_sse2;
48extern const simd_cells_t simd_cells_avx2;
49extern const simd_cells_t simd_cells_neon;
50extern const simd_cells_t simd_cells_sve;
51
52void simd_emit_mono_neon(outbuf_t *out, const uint32_t *glyph, size_t count);
const simd_cells_t simd_cells_scalar
Definition cells.c:69
int glyph_shape_correlation_sse2(const int16_t samples[16], const int16_t mask[16])
int glyph_shape_correlation_avx2(const int16_t samples[16], const int16_t mask[16])
void simd_emit_mono_neon(outbuf_t *out, const uint32_t *glyph, size_t count)
int glyph_shape_correlation_neon(const int16_t samples[16], const int16_t mask[16])
const simd_cells_t simd_cells_sve
int glyph_shape_correlation_sve(const int16_t samples[16], const int16_t mask[16])
int glyph_shape_correlation_scalar(const int16_t samples[16], const int16_t mask[16])
Definition cells.c:4
const simd_cells_t simd_cells_sse2
const simd_cells_t simd_cells_avx2
const simd_cells_t simd_cells_ssse3
const simd_cells_t * simd_cells_backend(void)
Definition cells.c:70
#define DECLARE_SIMD_CELLS(isa)
Definition cells.h:30
const simd_cells_t simd_cells_neon
void(* simd_luminance_fn)(const uint8_t *rgb, uint8_t *out, size_t count)
Definition dispatch.h:8
unsigned char colors[(512 *256 *2) *3]
Definition fft.c:22
unsigned int uint32_t
Definition common.h:62
unsigned char uint8_t
Definition common.h:60
static bool size_t gotel_query_t * out
Definition queries.h:8
Dynamic output buffer (auto-expanding).
The useful part of simd cells is in luminance: together they describe what is pending,...
Definition cells.h:10
void(* pack)(const uint8_t *rgb, uint32_t *out, size_t count)
Definition cells.h:12
size_t(* run)(const uint32_t *glyph, const uint32_t *fg, const uint32_t *bg, size_t count)
Definition cells.h:17
void(* emit_mono)(outbuf_t *out, const uint32_t *glyph, size_t count)
Definition cells.h:18
void(* halfblock)(const uint32_t *top, const uint32_t *bottom, uint32_t *glyph, uint32_t *fg, uint32_t *bg, size_t count, unsigned mode, const uint32_t keys[5])
Definition cells.h:15
void(* quantize)(const uint32_t *rgb, uint32_t *out, size_t count, unsigned colors)
Definition cells.h:14
simd_luminance_fn luminance
Definition cells.h:11
void(* lookup)(const uint8_t *luma, const uint32_t table[64], uint32_t *out, size_t count)
Definition cells.h:13
int(* glyph_shape_correlation)(const int16_t samples[16], const int16_t mask[16])
Definition cells.h:20