Hi Neels,
Thanks for the suggestions.
On Friday, March 18, 2016 3:59 PM, Neels Hofmeyr wrote:
though I'm not entirely familiar with the
compression algorithm, I'm pretty sure that using an array of strings to store bits
will make the code less efficient by magnitudes.
The proposed structures are being used in following scenario.
1. System Init (i.e. During system bootup)
* Array of strings are used to form a tree, it is used only once during system bootup ,
hence it should not impact the performance. Let me know your opinion on this ?
2. Decoding of EGPRS packet downlink Ack/Nack
* While decoding there is no string comparison involved, we read every bit from the
bitmap and traverse tree generated in init, hence only bit operation involved in
decoding.
3. Encoding of packet uplink Ack/Nack
* While encoding, first find the number of one's/zero's (i.e. run length of
one's or zero's) consecutively and find the corresponding code word by referring
to the code word list
* This involves string comparison to find the code word, but based on your feedback we
are planning to avoid string operations
and adopt existing (i.e. master ) approach to find the code word by using respective
tables.
Hence to summarize, the tree based approach is more significant during the decoding of
bitmap.
In current master code for decoding, the function t4_rle_term is used to find the run
length for each received code word,
There could be multiple code words in the received bitmap and each require multiple
iterations(i.e. maximum of 64 iterations) to find run length.
Instead if tree based approach is used multiple iterations can be avoided to find run
length.
Patches for the above modification will be sent further.
Thanks,
Sangamesh