Red de conocimiento informático - Problemas con los teléfonos móviles - Código fuente del algoritmo de pulso

Código fuente del algoritmo de pulso

Los principales pasos de cálculo del algoritmo de codificación de compresión JPEG son los siguientes:

1.

2.

3. Escaneo en zigzag.

4. Utilice modulación de código de pulso diferencial (DPCM) para codificar los coeficientes de CC.

5. La codificación de longitud de ejecución (RLE) se utiliza para codificar los coeficientes AC.

6. Codificación entropía.

Cuantización

La cuantización consiste en cuantificar los coeficientes de frecuencia después de la transformación FDCT. El propósito de la cuantificación es reducir la amplitud de los coeficientes distintos de "0" y aumentar el número de coeficientes con valor "0". La cuantificación es la principal causa de la degradación de la calidad de la imagen.

Para los algoritmos de compresión con pérdida, el algoritmo JPEG utiliza un cuantificador uniforme para la cuantificación, y el tamaño del paso de cuantificación se determina en función de la posición de los coeficientes y el valor de tono de cada componente de color. Debido a que el ojo humano es más sensible a las señales de brillo que a las señales de diferencia de color, se utilizan dos tablas de cuantificación: valores de cuantificación de brillo y valores de cuantificación de diferencia de color. Además, debido a que el ojo humano es más sensible a las imágenes con componentes de baja frecuencia que a las imágenes con componentes de alta frecuencia, el tamaño del paso de cuantificación en la esquina superior izquierda de la figura es menor que el tamaño del paso de cuantificación en la esquina inferior derecha.

3. Disposición en zigzag

Para aumentar el número de coeficientes "0" consecutivos, es decir, la longitud de ejecución de "0", se deben reorganizar los coeficientes cuantificados. El método consiste en organizarlos en zigzag, como se muestra en la Figura 5-17. Entonces, poner una matriz de 8?8 se convierte en 1?64, y los coeficientes de frecuencia más bajos se colocan encima del vector.

4. Codificación de coeficientes DC

8? Los coeficientes DC-DC obtenidos mediante la transformación DCT de 8 bloques de imágenes tienen dos características. Una es que el valor del coeficiente es relativamente grande. ;Casi no hay cambios en los valores del coeficiente DC de los bloques de imágenes 8?8 adyacentes. De acuerdo con esta característica, el algoritmo JPEG utiliza tecnología de codificación de modulación de pulso diferencial (DPCM) para codificar el incremento de coeficientes DC cuantificados entre bloques de imágenes adyacentes.

Delta=DC(0,0)k-DC(0,0)k-1.....(5-5)

Codificación del coeficiente AC

p>

La característica de los coeficientes AC cuantificados es que hay muchos coeficientes "0" en el vector 1?64, y muchos "0" son continuos, por lo que utilizamos una codificación de longitud de ejecución muy simple e intuitiva (RLE ) para codificar.

JPEG utiliza los 4 bits superiores de 1 byte para representar el número de "0" consecutivos, y utiliza sus 4 bits inferiores para representar el número de bits necesarios para codificar el siguiente coeficiente distinto de 0, seguido por el coeficiente AC cuantificado.

6. Codificación de entropía

La codificación de entropía también se puede utilizar para comprimir aún más los coeficientes DC después de la codificación DPCM y los coeficientes AC después de la codificación RLE.

En el algoritmo de compresión con pérdida JPEG, se utiliza un codificador Huffman para reducir la entropía. La razón para utilizar un codificador Huffman es que se puede codificar mediante un método de tabla de búsqueda muy simple. Al comprimir símbolos de datos, un codificador Huffman asigna códigos más cortos a símbolos más frecuentes y códigos más largos a símbolos menos frecuentes. Esta tabla de códigos Huffman de longitud variable se puede predefinir.