Ayuda urgente para usar matlab para realizar codificación aritmética en una imagen Codificación RLE Codificación Huffman Programación de codificación Shannon Necesidad urgente
2 Principios básicos de JPEG
El proceso de compresión JPEG de imágenes en escala de grises se muestra en la Figura 1. El proceso de compresión JPEG para imágenes en escala de grises incluye principalmente: segmentación de imágenes, transformada de coseno discreto (DCT), cuantificación (Quantization), clasificación en forma de "z" (Zigzag Scan), modulación de código de pulso diferencial (DPCM) a coeficiente DC (Dc), Codificación Run-kngth (RLE) versus coeficiente AC (Ac), codificación Huffman (Hufman), etc.
El proceso de compresión de imágenes se muestra en la Figura 1.
La característica del estándar JPEG es la transformada de coseno discreta, que puede convertir la expresión espacial de una imagen de 8 × 8 en el dominio de frecuencia. Después de la transformación DCT bidimensional, la fila y columna cero son bajas. -componentes de frecuencia, y el resto son componentes de alta frecuencia.
3.1 Diseño del módulo de compresión JPEG
Según el proceso de compresión, la implementación de la compresión JPEG se puede dividir en tres módulos: módulo de transformación DCT, módulo de control principal y módulo de salida de codificación. La composición del módulo de compresión se muestra en la Figura 3: Módulo de transformación DCT: DCT transforma los valores de píxeles ingresados en él. Módulo de control principal: controla la lectura y escritura de datos y los envía al módulo de transformación DCT, cuantifica los datos transformados y realiza un escaneo z después de la cuantificación. Módulo de salida de codificación: codifica y genera los datos escaneados y cuantificados.
3 Composición e implementación del sistema de compresión
El proceso de compresión de imágenes: primero divide la imagen en bloques de 8 × 8 y luego realiza una transformación DCT bidimensional. alta frecuencia Separe de la baja frecuencia; luego inicie la exploración z, que es un proceso de clasificación que permite organizar los componentes de alta y baja frecuencia de acuerdo con las necesidades de codificación; los datos después de la exploración Z deben cuantificarse antes de la cuantificación. es reducir la cantidad de datos para lograr la compresión (consulte la Tabla 1 para la tabla de cuantificación). Finalmente, los datos escaneados se codifican en el componente de baja frecuencia y el de alta frecuencia. -El componente de frecuencia utiliza codificación de longitud de ejecución. El diagrama de estructura del sistema de compresión de imágenes se muestra en 2, el cual consta de un módulo de control de flujo de datos, un módulo de interfaz de memoria externa, una RAM que almacena los datos a comprimir, un módulo de compresión JPEG, un módulo receptor de datos comprimidos y un módulo de envío de datos:
1 )Módulo de control de flujo de datos: controla la dirección del flujo de datos.
2) Módulo de interfaz de memoria externa: Proporciona sincronización de control de lectura y escritura SRAM.
3) Recibir módulo de datos comprimidos: Recibir los datos enviados desde el módulo de compresión y almacenarlos en SRAM a través del módulo de control de lectura y escritura SRAM.
4) Módulo de envío de datos: genera el tiempo acordado con la transmisión de datos y envía los datos comprimidos.
3.1 Diseño del módulo de compresión JPEG
Según el proceso de compresión, la implementación de la compresión JPEG se puede dividir en tres módulos: módulo de transformación DCT, módulo de control principal y módulo de salida de codificación. La composición del módulo de compresión se muestra en la Figura 3: Módulo de transformación DCT: DCT transforma los valores de píxeles ingresados en él. Módulo de control principal: controla la lectura y escritura de datos y los envía al módulo de transformación DCT, cuantifica los datos transformados y realiza un escaneo z después de la cuantificación. Módulo de salida de codificación: codifica y genera los datos escaneados y cuantificados.
3.2 Detalles de implementación del módulo de codificación
Los siguientes ejemplos presentan diferentes reglas de codificación para componentes de CC y componentes de CA.
Suponiendo que el valor DC es -l5, su palabra clave Huffman consta de dos partes AB, A es el código Huffman de su longitud y B es la amplitud de su valor. Primero, use la tabla de búsqueda para encontrar que su rango de valores absolutos es 4, es decir, su valor se puede representar mediante un número binario de cuatro dígitos, luego use el 4 encontrado para encontrar el código Huffman correspondiente en la tabla de códigos DC Huffman; corresponde al código Huffman es un número binario de tres dígitos 101, entonces el código de este sistema DC es el código Huffman correspondiente a la longitud de su valor más su amplitud.
Para un 15 la amplitud es 0000 (el bit más alto es el bit de signo, 0 es negativo, 1 es positivo). El proceso de cálculo de la amplitud: Hay 16 valores en el rango de longitud 4, es decir, de -15 a 15, expresados en complemento a dos de 4 bits como 0001, 0010, 0011, 0100, 0101, 0110, 0111. , 1000, 1000, 1001,1010,1011,1100,1101,1110,1111. La amplitud de un número negativo es el complemento de la representación binaria de 4 bits de su valor absoluto. El complemento es igual al complemento menos 1, 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 0111, 1000. , 1001, 1010, 1011, 1100,1101,1110,1111. De esta forma, el código con un valor DC de -15 es 1010000. En comparación con el coeficiente DC, el coeficiente AC tiene un código de carrera cero adicional. Los pasos de la codificación de ejecución cero: detectar los coeficientes AC uno por uno en el orden después del escaneo y usar variables para registrar el número de coeficientes cero. Cuando encuentre un coeficiente distinto de cero, primero observe cuántos coeficientes cero hay entre ellos. y el coeficiente anterior distinto de cero, si excede 16, los primeros 16 ceros se codifican por separado. Hay un código ZRL separado en la tabla de códigos de Huffman para codificarlo y luego observe si el número de ceros restantes excede 16. excede, aún realice el paso anterior. Si es menor que 16, el número de ceros restantes y el sistema de CA distinto de cero se utilizan como parámetros para codificar la tabla de códigos Huffman correspondiente.