Red de Respuestas Legales - Leyes y reglamentos - JPEG, el estándar técnico para la codificación de compresión de imágenes fijas, consta de varias partes.

JPEG, el estándar técnico para la codificación de compresión de imágenes fijas, consta de varias partes.

La compresión PEG se implementa en cuatro pasos:

1. Conversión y muestreo del modo de color

2.

4.

Dos.

1. Conversión y muestreo del modo de color El sistema de color RGB es la forma más utilizada de representar colores. JPEG utiliza el sistema de color YCbCr. Si desea utilizar el método de compresión básico JPEG para procesar imágenes a todo color, primero debe convertir los datos de imagen del modo de color RGB a datos del modo de color YCbCr. y representa el brillo, Cb y Cr representan el tono y la saturación. La conversión de datos se puede completar mediante la siguiente fórmula de cálculo. y = 0,2990 r 0,5870 g 0,1140 b CB = -0,1687 r -0,3313 g 0,5000 b 128 Cr = 0,5000 r -0,4660. Los datos de alta frecuencia son más sensibles. De hecho, el ojo humano es mucho más sensible a los cambios de brillo que a los cambios de color, lo que significa que los datos del componente Y son más importantes. Dado que los datos del componente Cb y del componente Cr son relativamente poco importantes, solo se puede tomar una parte de los datos para su procesamiento. para aumentar la relación de compresión. JPEG suele tener dos métodos de muestreo: YUV411 y YUV422, que representan las velocidades de muestreo de datos de Y, Cb y Cr respectivamente.

2. Transformada DCT El nombre completo de transformada DCT es transformada de coseno discreta, que se refiere a convertir un conjunto de datos de intensidad de luz en datos de frecuencia para poder conocer los cambios de intensidad. Si modificamos los datos de alta frecuencia y luego los convertimos nuevamente a los datos originales, obviamente serán diferentes de los datos originales, pero el ojo humano no los reconocerá fácilmente. Al comprimir, los datos de la imagen original se dividen en una matriz de unidades de datos de 8 × 8. Por ejemplo, el contenido de la primera matriz de valores de brillo es el siguiente:

JPEG divide toda la matriz de brillo y croma. Matriz de Cb y matriz de Cr de saturación. Como unidad básica, se llama MCU. Cada MCU contiene no más de 10 matrices. Por ejemplo, si la proporción de muestras de fila y columna es 4:2:2, entonces cada MCU contendrá cuatro matrices de brillo, una matriz de croma y una matriz de saturación. Al dividir los datos de la imagen en una matriz de 8 * 8, cada valor debe restarse por 128 y luego sustituirse en la fórmula de transformación DCT, para que se pueda lograr el propósito de la transformación DCT. El valor de los datos de la imagen se debe restar de 128 porque la fórmula de conversión DCT acepta números que van desde -128 hasta 127. Fórmula de transformación DCT:

x, y representa la posición de coordenadas f (x, y) del valor en la matriz de datos de la imagen, v representa la posición de coordenadas f (u, v) del valor en la matriz después de la transformación DCT, v = 0 c (u) c (v) = 1/1 o v gt0 c(u)c(v)= 1 El número natural de los datos de la matriz después de la transformación DCT es el coeficiente de frecuencia. El valor máximo de estos coeficientes es f (0, 0), que se denomina DC. Los 63 coeficientes de frecuencia restantes son en su mayoría números de punto flotante positivos y negativos cercanos a 0, que se denominan AC.

3. Después de que los datos de la imagen cuantificados se conviertan en coeficientes de frecuencia, antes de que puedan ingresar a la etapa de codificación, deben pasar por el proceso de cuantificación. En la etapa de cuantificación, se requieren dos datos de matriz de 8*8, uno es el coeficiente de frecuencia de brillo y el otro es el coeficiente de frecuencia de croma. Divida el coeficiente de frecuencia por el valor de la matriz de cuantificación para obtener el número entero más cercano al cociente, es decir, se completa la cuantificación. Al cuantificar coeficientes de frecuencia, los coeficientes de frecuencia se convierten de números de coma flotante a números enteros para facilitar la codificación final. Sin embargo, después de la etapa de cuantificación, todos los datos solo mantienen una aproximación de números enteros y parte del contenido de los datos se pierde nuevamente. La tabla de cuantificación proporcionada por JPEG es la siguiente:

4. Codificación La codificación Huffman no tiene derechos de patente y se ha convertido en el método de codificación más utilizado en JPEG. La codificación Huffman suele implementarse mediante un microcontrolador completo. Al codificar, el valor DC y los 63 valores AC de cada dato de matriz utilizarán diferentes tablas de codificación Huffman. La luminancia y el croma también requieren diferentes tablas de codificación Huffman, por lo que un * * * requiere 4 tablas de codificación JPEG completadas con éxito.

Codificación DC DC es un método de codificación diferencial que utiliza codificación de pulso diferencial para modular el color, es decir, para la codificación se obtiene la diferencia entre cada valor DC y el valor DC anterior en el mismo componente de imagen. La razón principal por la que DC utiliza codificación de pulso diferencial es que en imágenes de tonos continuos, las diferencias son en su mayoría más pequeñas que los valores originales, y la cantidad de bits necesarios para codificar las diferencias será mucho menor que la cantidad de bits necesarios para codificar el original. valores. Por ejemplo, si la diferencia es 5, su representación binaria es 101. Si la diferencia es -5, primero cámbielo a un entero positivo 5 y luego conviértalo en binario a complemento a 1. El llamado código complemento a 1 significa que si el valor de cada bit es 0, se cambia a 1; cuando el bit es 1, se convierte en 0. El número de bits que se deben reservar para la diferencia 5 es 3. La siguiente tabla enumera la cantidad de dígitos que deben reservarse para los valores delta en comparación con el contenido del valor delta.

Agregue algunos valores de código Huffman diferentes antes de la diferencia. Por ejemplo, si la diferencia de brillo es 5 (101), el número de dígitos es 3, entonces el valor del código Huffman debe ser 100 y los dos juntos son 1001. Las dos tablas siguientes son tablas de codificación para la diferencia de brillo y croma de CC, respectivamente. Según el contenido de estas dos tablas, el valor del código Huffman se puede agregar a la diferencia DC para completar la codificación DC.

El método de codificación AC de codificación AC es ligeramente diferente al de DC. Antes de la codificación de CA, los 63 valores de CA deben ordenarse en forma de zigzag, es decir, concatenarse en el orden que muestran las flechas en la figura siguiente.

Si se organizan 63 valores de AC, convierta el coeficiente de AC en un símbolo intermedio y expréselo como RRRR/SSSS se refiere al número de AC con un valor de 0 antes de AC distinto de cero. y SSSS se refiere al número de dígitos requerido del valor AC. La relación correspondiente entre el rango del coeficiente AC y SSSS es similar a la tabla de comparación de dígitos diferenciales DC y contenido diferencial. Si el número de AC cero consecutivos es mayor que 15, los 16 ceros se representan por 15/0, que se llama ZRL (Longitud cero del ron), y (0/0) se llama EOB (Eni Road of Blocks) para representar el Los coeficientes AC restantes son todos iguales a 0, con un signo en el medio. Por ejemplo, el brillo del carácter medio en un determinado grupo es 5/3 y el valor AC es 4. Primero, utilice 5/3 como valor del índice. Encuentre 1111111110065438 en la tabla de codificación de brillo AC de Huffman. Código Huffman 1111111110065438. Debido a que las tablas de codificación de Huffman de brillo AC y croma AC son relativamente largas, se omiten aquí. Aquellos que estén interesados ​​pueden consultar libros relevantes. La implementación de los cuatro pasos anteriores completará la compresión JPEG de una imagen.

Espero que esto ayude.