I'm working on a project in which specific bit planes of an image are extracted and compressed. This process is repeated for every combination of bit planes possible.For an image, I have calculated the compression ratio and the Structural Similarity Index(SSIM).

I need a method to allot ranks when compressed with different combinations of bit planes.

My progress: I tried to give equal weight to the compression ratio and the SSIM value.

score = 0.5*ssim + 0.5*compression_ratio;

This equation gave me a value between 0 and 1. The problem with this equation is it gives an equal score for multiple combinations and few combinations are extreme opposites on the scale. For example, i got equal scores when I compressed an image using the {1,2,3,5,7,8} bit planes(High SSIM value) and only the 3rd bit plane(High compression ratio).

I need help in balancing the parameters and getting an appropriate score. The score doesn't need to give equal weights like I have given.

Thanks in advance


I am not sure if this is going to end up having 2 parameters specifically, but there are a number of things to note:

  1. score depends on two parameters right now, but it is clearly unable to resolve the differences between different schemes. You can add a third parameter which captures the bit planes you are using. This could be either via:

    1. Normalising the number of bit planes used (e.g. $\frac{3}{8} = 0.375$) but this might still be not enough as a simple reshuffling of the bitplanes can show;
    2. Indexing your score by the number that results from the bitplanes used. So, if you used bitplanes 0,3,5, that would be 2^0 + 2^3 + 2^5, or simply a tuple of $(0,3,5)$ so that implicitly you have the number of bitplanes and which ones were used. This would give you a lookup of (bitplanes_used, score).
  2. Now, the danger you are running here is formulating some $score = f(\Theta)$, where $f$ is a function whose parameter set $\Theta$ keeps growing, more than the 2 you specify. What if we include the ratio of high frequencies to low frequencies in there too? What if we add an entropy related term?...and so on. Ultimately, you might end up with a very large model that is still not informative.

    • A common thing to do in this case is to penalise large models. This is an extra factor that increases with the number of parameters used. For example, in your case, you could say something like "If two bitplane combinations give me the same score, then I will select the combination that uses fewer bitplanes than the other"
  3. But, it is possible that after all this, your lookups still contain equal scores. In that case, you can collect a subset of the values (that satisfy some criterion in your application) and then randomly select one of them, since all of these values represent a choice of equal score.

Hope this helps


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.