mirror of
https://github.com/brmlab/osmo-tetra.git
synced 2025-06-08 09:54:09 +02:00
add matrix interleave for voice frames (untested)
This commit is contained in:
parent
a9885473d2
commit
e3032cd897
2 changed files with 28 additions and 0 deletions
|
@ -57,3 +57,26 @@ void block_deinterleave(uint32_t K, uint32_t a, const uint8_t *in, uint8_t *out)
|
||||||
out[i-1] = in[k-1];
|
out[i-1] = in[k-1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* EN 300 395-2 Section 5.5.3 Matrix interleaving (voice */
|
||||||
|
void matrix_interleave(uint32_t lines, uint32_t columns,
|
||||||
|
const uint8_t *in, uint8_t *out)
|
||||||
|
{
|
||||||
|
int i, j;
|
||||||
|
|
||||||
|
for (i = 0; i < columns; i++) {
|
||||||
|
for (j = 0; j < lines; j++)
|
||||||
|
out[i*lines + columns] = in[j*columns + lines];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_deinterleave(uint32_t lines, uint32_t columns,
|
||||||
|
const uint8_t *in, uint8_t *out)
|
||||||
|
{
|
||||||
|
int i, j;
|
||||||
|
|
||||||
|
for (i = 0; i < columns; i++) {
|
||||||
|
for (j = 0; j < lines; j++)
|
||||||
|
out[j*columns + lines] = in[i*lines + columns];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -9,4 +9,9 @@
|
||||||
void block_interleave(uint32_t K, uint32_t a, const uint8_t *in, uint8_t *out);
|
void block_interleave(uint32_t K, uint32_t a, const uint8_t *in, uint8_t *out);
|
||||||
void block_deinterleave(uint32_t K, uint32_t a, const uint8_t *in, uint8_t *out);
|
void block_deinterleave(uint32_t K, uint32_t a, const uint8_t *in, uint8_t *out);
|
||||||
|
|
||||||
|
void matrix_interleave(uint32_t lines, uint32_t columns,
|
||||||
|
const uint8_t *in, uint8_t *out);
|
||||||
|
void matrix_deinterleave(uint32_t lines, uint32_t columns,
|
||||||
|
const uint8_t *in, uint8_t *out);
|
||||||
|
|
||||||
#endif /* TETRA_INTERLEAVE_H */
|
#endif /* TETRA_INTERLEAVE_H */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue