Skip to content
Snippets Groups Projects
Commit 6cd59968 authored by Dominik Loidolt's avatar Dominik Loidolt
Browse files

Refactor code; add documentation

parent 7690fa65
No related branches found
No related tags found
1 merge request!11decompression/compression for non-imagette data
......@@ -22,10 +22,11 @@
#include <cmp_entity.h>
#include <cmp_support.h>
int decompress_data(uint32_t *compressed_data, void *de_model_buf,
const struct cmp_info *info, void *decompressed_data);
int decompress_cmp_entiy(struct cmp_entity *ent, void *model_buf,
int decompress_cmp_entiy(struct cmp_entity *ent, void *model_of_data,
void *up_model_buf, void *decompressed_data);
int decompress_rdcu_data(uint32_t *compressed_data, const struct cmp_info *info,
uint16_t *model_of_data, uint16_t *up_model_buf,
uint16_t *decompressed_data);
#endif /* DECMP_H_ */
This diff is collapsed.
......@@ -110,7 +110,69 @@ void test_cmp_decmp_n_imagette_raw(void)
}
/*
/**
* @test count_leading_ones
*/
void test_count_leading_ones(void)
{
unsigned int n_leading_bit;
uint32_t value;
value = 0;
n_leading_bit = count_leading_ones(value);
TEST_ASSERT_EQUAL_INT(0, n_leading_bit);
value = 0x7FFFFFFF;
n_leading_bit = count_leading_ones(value);
TEST_ASSERT_EQUAL_INT(0, n_leading_bit);
value = 0x80000000;
n_leading_bit = count_leading_ones(value);
TEST_ASSERT_EQUAL_INT(1, n_leading_bit);
value = 0xBFFFFFFF;
n_leading_bit = count_leading_ones(value);
TEST_ASSERT_EQUAL_INT(1, n_leading_bit);
value = 0xFFFF0000;
n_leading_bit = count_leading_ones(value);
TEST_ASSERT_EQUAL_INT(16, n_leading_bit);
value = 0xFFFF7FFF;
n_leading_bit = count_leading_ones(value);
TEST_ASSERT_EQUAL_INT(16, n_leading_bit);
value = 0xFFFFFFFF;
n_leading_bit = count_leading_ones(value);
TEST_ASSERT_EQUAL_INT(32, n_leading_bit);
}
/**
* @test rice_decoder
*/
void test_rice_decoder(void)
{
int cw_len;
uint32_t code_word;
unsigned int m = ~0; /* we don't need this value */
unsigned int log2_m;
unsigned int decoded_cw;
/* test log_2 to big */
code_word = 0xE0000000;
log2_m = 33;
cw_len = rice_decoder(code_word, m, log2_m, &decoded_cw);
TEST_ASSERT_EQUAL(0, cw_len);
log2_m = UINT_MAX;
cw_len = rice_decoder(code_word, m, log2_m, &decoded_cw);
TEST_ASSERT_EQUAL(0, cw_len);
}
/**
* @test re_map_to_pos
*/
......@@ -160,25 +222,6 @@ void test_re_map_to_pos(void)
}
void test_rice_decoder(void)
{
int cw_len;
uint32_t code_word;
unsigned int m = ~0;/* we don't need this value */
unsigned int log2_m;
unsigned int decoded_cw;
/* test log_2 to big */
code_word = 0xE0000000;
log2_m = 33;
cw_len = rice_decoder(code_word, m, log2_m, &decoded_cw);
TEST_ASSERT_EQUAL(0, cw_len);
log2_m = UINT_MAX;
cw_len = rice_decoder(code_word, m, log2_m, &decoded_cw);
TEST_ASSERT_EQUAL(0, cw_len);
}
void test_decode_normal(void)
{
uint32_t decoded_value = ~0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment