Why JPEG compression processes image by 8x8 blocks?

后端 未结 2 1005
盖世英雄少女心
盖世英雄少女心 2020-12-18 00:32

Why JPEG compression processes image by 8x8 blocks instead of applying Discrete Cosine Transform to the whole image?

相关标签:
2条回答
  • 2020-12-18 01:05

    8 X 8 was chosen after numerous experiments with other sizes.

    The conclusions of experiments are: 1. Any matrices of sizes greater than 8 X 8 are harder to do mathematical operations (like transforms etc..) or not supported by hardware or take longer time. 2. Any matrices of sizes less than 8 X 8 dont have enough information to continue along with the pipeline. It results in bad quality of the compressed image.

    0 讨论(0)
  • 2020-12-18 01:07

    Because, that would take "forever" to decode. I don't remember fully now, but I think you need at least as many coefficients as there are pixels in the block. If you code the whole image as a single block I think you need to, for every pixel, iterate through all the DCT coefficients.

    I'm not very good at big O calculations but I guess the complexity would be O("forever"). ;-)

    For modern video codecs I think they've started using 16x16 blocks instead.

    0 讨论(0)
提交回复
热议问题