Computer Vision Compressão JPEG Paulo Sérgio Rodrigues PEL205 Computer Vision Compressão JPEG JPEG é o anacrônico para Joint Photographic Experts Group Baseia-se nos seguintes passos: Compressão Subdivisão da Imagem em blocos de 8 x 8 pixels Composição da Imagem usando os em blocos de 8 x 8 pixels Cálculo DCT Inversa Cálculo de DCT Quantização com a matriz de normalização Da JPEG Codificação baseada no tamanho das variáveis Descompressão Desquantização com a matriz de normalização Da JPEG Decodificação baseada no tamanho das variáveis Computer Vision Transformada Discreta de Cosseno (2 x 1)u (2 y 1)v T (u, v) g ( x, y ) (u ) (v) cos cos 2n 2n x 0 y 0 n 1 n 1 (2 x 1)u (2 y 1)v g ( x, y ) T (u, v) (u ) (v) cos cos 2n 2n x 0 y 0 n 1 n 1 1n for u 0 (u ) 2 for u 1,2,...,n-1 n Computer Vision Compressão JPEG Compressão: Passo 1, subdivisão da Imagem em Blocos de 8 x 8 pixels 8x8 8x8 8x8 8x8 8x8 8x8 8x8 8x8 8x8 8x8 8x8 8x8 Computer Vision Compressão JPEG Compressão: Passo 2, Cálculo da DCT em cada Bloco Exemplo de Bloco 8 x 8 55 52 61 66 70 61 64 73 63 59 66 90 109 85 69 72 62 59 68 113 144 104 66 73 63 58 71 122 154 106 70 69 67 61 68 104 126 88 68 70 79 65 60 70 77 68 58 75 85 71 64 59 55 61 65 83 87 79 69 68 65 76 78 94 Computer Vision Compressão JPEG Compressão: Passo 2, Cálculo da DCT em cada Bloco Shift de -128 -76 -73 -67 -62 -58 -67 -64 -55 -65 -69 -62 -38 -19 -43 -59 -56 -66 -69 -60 -15 16 -24 -62 -55 -65 -70 -57 -6 26 -22 -58 -59 -61 -67 -60 -24 -2 -40 -60 -58 -49 -63 -68 -58 -51 -65 -70 -53 -43 -57 -64 -69 -73 -67 -63 -45 -41 -49 -59 -60 -63 -52 -50 -34 Computer Vision Compressão JPEG Compressão: Passo 2, Cálculo da DCT em cada Bloco -415 -29 -62 25 55 -20 -1 3 7 -21 -62 9 11 -7 -6 6 -46 8 77 -25 -30 10 7 -5 -50 13 35 -15 -9 6 0 3 11 -8 -13 -2 -1 1 -4 1 -10 1 3 -3 -1 0 2 -1 -4 -1 2 -1 2 -3 1 -2 -1 -1 -1 -2 -1 -1 0 -1 Computer Vision Compressão JPEG Compressão: Passo 3, Quantização Matriz de Normalização JPEG Computer Vision Compressão JPEG Compressão: Passo 3, Quantização Suponha que um coeficiente DCT encontrado seja: T(0,0) = -415, De acordo com a matriz de quantização JPEG, o valor correspondente é Z(0,0) = 16. Sendo assim, o cálculo do novo valor, quantizado, será: T (0,0) 415 ˆ T 0,0 round round 26 16 Z (0,0) Computer Vision Compressão JPEG Compressão: Passo 3, Quantização O principal resultado da quantização é a geração de uma matriz esparssa -26 -3 -6 2 2 0 0 0 1 -2 -4 0 0 0 0 0 -3 1 5 -1 0 0 0 0 -4 1 2 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Computer Vision Compressão JPEG Compressão: Passo 3, Quantização O que permite algum tipo de codificação eficiente: -26 -3 -6 2 2 0 0 0 1 -2 -4 0 0 0 0 0 -3 1 5 -1 0 0 0 0 -4 1 2 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [-26 -3 1 -3 -2 -6 2 -4 1 -4 1 1 5 0 2 0 -1 2 0 0 0 0 -1 -1 EOB] Mais de 60% de Compressão no Bloco Computer Vision Descompressão JPEG Compressão: Passo 1, Descodificação [-26 -3 1 -3 -2 -6 2 -4 1 -4 1 1 5 0 2 0 -1 2 0 0 0 0 -1 -1 EOB] -26 -3 -6 2 2 0 0 0 1 -2 -4 0 0 0 0 0 -3 1 5 -1 0 0 0 0 -4 1 2 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Computer Vision Descompressão JPEG Compressão: Passo 2, Desquantização A desquantização pode ser obtida pela inversa: T (0,0) Tˆ (0,0)Z (0,0) (26)(16) 416 -416 -33 -60 32 48 0 0 0 12 -24 -56 0 0 0 0 0 -42 13 80 -24 -40 0 0 0 -56 17 44 -29 0 0 0 0 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Computer Vision Descompressão JPEG Compressão: Passo 3, cálculo da DCT Infersa -70 -64 -61 -64 -69 -66 -58 -50 -72 -73 -61 -39 -30 -40 -54 -59 -68 -78 -58 -9 13 -12 -48 -64 -59 -77 -57 0 22 -13 -51 -60 -54 -75 -64 -23 -13 -44 -63 -56 -52 -71 -72 -54 -54 -71 -71 -54 -45 -59 -70 -68 -67 -67 -61 -50 -35 -47 -61 -66 -60 -48 -44 -44 Computer Vision Descompressão JPEG Compressão: Passo 4, Shifting de 128 58 64 67 64 59 62 70 78 56 55 67 89 98 88 74 69 60 50 70 119 141 116 80 64 69 51 71 128 149 115 77 68 74 53 64 105 115 84 65 72 76 57 56 74 75 57 57 74 83 69 59 60 61 61 67 78 93 81 67 62 69 80 84 84 Computer Vision Descompressão JPEG Diferença entre a Imagem (Bloco) original e o descomprimido -6 -9 -6 2 11 -1 -6 -5 7 4 -1 1 11 -3 -5 3 2 9 -2 -6 -3 -12 -14 9 -6 7 0 -4 -5 -9 -7 1 -7 8 4 -1 11 4 3 -2 3 8 4 -4 2 11 1 1 2 2 5 -1 -6 0 -2 5 -6 -2 2 6 -4 -4 -6 10 < 1% de erro