Spiht compressed images over wireless channel

Illustration
Hana Elenany - 2022-11-01T12:58:55+00:00
Question: Spiht compressed images over wireless channel

I have a matlab code for spiht compression and decompression, and it is working successfully for image compression. I need to transmit the bit stream representing the compressed image over wireless channel, how can I do that? Shall I put the channel part between the compression and decompression files? In this case, the bit stream output of the compression file is passed through the channel, and the output from the channel is the input to the decompression stage. In this case, the only information transmitted over the channel is the compressed image in the form of ones and zeros.

Expert Answer

Profile picture of Neeta Dsouza Neeta Dsouza answered . 2025-11-20

Move the compression and decompression into different .m files. Create a third .m file that creates the constants without looking at the input at all, and call it from those other two files. The compression file should output a vector of bytes that represents the compressed data. (You can write that vector of bytes to a file if you want.) The decompression should accept as an argument only the vector of bytes, nothing else -- if you think you need something else then it should be saved as part of the vector of bytes.

 

 

function byte_vector = spiht_compress(input_file, arg1)

    the_constants = create_the_constants(arg1);
    parameters_for_constants = typecast(arg1, 'uint8');
    ...
    compressed_data = ....
    byte_vector = [parameters_for_constants(:), compressed_data(:)];
  end

function uncompressed = spiht_decompression( byte_vector )
   parameters_for_constants = typecast(byte_vector(1:16), 'double');
   compressed_data = byte_vector(17:end);

     the_constants = create_the_constants(parameters_for_constants);
     ...
  end

Note that any arguments needed to create the constants had to be saved in the byte vector. Then on decompression they had to be extracted from the byte vector and passed to the constant-creator. For example if you want to set the code to save 11 bits per item and that "11" alters the constants you build, then that "11" needs to be saved as part of the output when compressing. The byte vector that is the output of the spiht compressor has to include all the information needed to decompress. It does not have to include the constants themselves, it only has to include the parameters needed to build the constants. If no parameters at all are needed to build the constants then it makes everything even easier.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!