Perché la compressione JPEG elabora l'immagine di blocchi 8x8 invece di applicare la trasformazione del coseno discreta all'intera immagine?Perché la compressione JPEG elabora l'immagine con blocchi 8x8?
risposta
Perché, ci vorrebbe "per sempre" per decodificare. Non ricordo bene ora, ma penso che siano necessari almeno tanti coefficienti quanti sono i pixel nel blocco. Se si codifica l'intera immagine come un singolo blocco, penso che sia necessario, per ogni pixel, iterare attraverso tutti i coefficienti DCT.
Non sono molto bravo in calcoli O grandi, ma suppongo che la complessità sarebbe O ("per sempre"). ;-)
Per i moderni codec video, penso che abbiano iniziato a utilizzare i blocchi 16x16.
Se hai bisogno di iterare su ogni cosa ogni iterazione, è O (n^2), non "per sempre", che è O (n!). – Triang3l
8 X 8 è stato scelto dopo numerosi esperimenti con altre taglie.
Le conclusioni degli esperimenti sono: 1. Qualsiasi matrici di dimensioni superiori a 8 X 8 sono più difficili da eseguire operazioni matematiche (come le trasformazioni ecc.) O non supportate dall'hardware o richiedono più tempo. 2. Eventuali matrici di dimensioni inferiori a 8 X 8 non dispongono di informazioni sufficienti per continuare con la pipeline. Ne risulta una cattiva qualità dell'immagine compressa.
Leggi, il mio blog, http://nboddula.blogspot.com/2013/05/image-compression-how-jpeg-works.html
ritengono che il DCT è bravo a comprimere aree piuttosto lisce con basso contenuto di frequenze, ma molto male a comprimere aree di contenuto ad alta frequenza. –
domanda identica: http://stackoverflow.com/questions/11147666/why-do-image-compression-algorithms-process-the-image-by-sub-blocks/11147696#11147696 –
Precedente domanda identica: http: // stackoverflow.com/questions/74892/is-there-a-quality-file-size-or-other-benefit-to-jpeg-izes-being-multiples-of –