2012-05-28 109 views
7

爲什麼JPEG壓縮是通過8x8塊來處理圖像,而不是對整個圖像應用離散餘弦變換?爲什麼JPEG壓縮是通過8x8塊來處理圖像?

+0

認爲DCT善於壓縮,而平滑區域與低頻的內容,但在壓縮高頻內容領域相當糟糕。 –

+0

相同的問題:http://stackoverflow.com/questions/11147666/why-do-image-compression-algorithms-process-the-image-by-sub-blocks/11147696#11147696 –

+0

早先相同的問題:http:// stackoverflow.com/questions/74892/is-there-a-quality-file-size-or-other-benefit-to-jpeg-sizes-being-multiples-of –

回答

1

因爲,這將需要「永遠」解碼。我現在不記得了,但我認爲你至少需要與塊中像素一樣多的係數。如果你把整個圖像編碼爲一個單獨的塊,我認爲你需要對每個像素遍歷所有的DCT係數。

我不太擅長大O計算,但我想複雜性會是O(「永遠」)。 ;-)

對於現代視頻編解碼器,我認爲他們已經開始使用16x16塊了。

+2

如果您需要在每次迭代中迭代所有內容,則爲O (n^2),而不是「永遠」,這是O(n!)。 – Triang3l

2

經過多次其他尺寸的實驗後,選擇了8×8。

實驗的結論是: 1.任何尺寸大於8×8的矩陣難以進行數學運算(如變換等),或者硬件不支持或需要較長的時間。 2.任何尺寸小於8 X 8的矩陣都沒有足夠的信息與管道一起繼續。它導致壓縮圖像質量差。

讀,我的博客,http://nboddula.blogspot.com/2013/05/image-compression-how-jpeg-works.html