5. Research Design and Methodology
6.5 Summary and Discussion of the Spatial Analysis Results for All
Anexo I Laboratorio referente al tema 2
Laboratorio: Uso de la Codificación Huffman en imágenes.
Objetivos:
Analizar la eficiencia del código Huffman con respecto a la entropía de la imagen.
Comparar gráficamente la codificación Huffman de cada elemento de luminancia de una imagen contra la cantidad de información del mismo.
Determinar y analizar la entropía de una imagen.
Familiarización con toolbox de funciones de Matlab.
Orientación para la entrega del informe: Para la evaluación del laboratorio se ha de entregar un informe escrito con el análisis de los resultados obtenidos.
Introducción: La idea de usar una codificación de longitud de código variable (VLC) tiene como objetivo realizar un uso eficiente de la capacidad de transmisión. La codificación de Huffman es la mejor y más ampliamente usada técnica de codificar; es utilizada en la compresión de audio y video en los estándares de Televisión Digital. La codificación de Huffman [H52] es un método propuesto en 1952 por David Huffman. La idea detrás de la codificación de Huffman es asignar códigos binarios lo más cortos posibles a aquellos símbolos que ocurren con mayor frecuencia en los datos. Los símbolos con poca frecuencia tendrán asignado códigos binarios de longitud más grande. El óptimo desempeño del algoritmo se consigue cuando el número de bits asignado a cada carácter es proporcional al logaritmo de la probabilidad de mismo.
Orientación de las tareas técnicas:
Sección 1 Diseño de un codificador de palabras Huffman.
Escriba en Matlab un programa que codifique una imagen de video usando código de palabras Huffman, además determine el promedio de números de bits por pixeles de luminancia requerido para diferentes imágenes.
2. Guarde en una matriz los valores de luminancia de una imagen utilizando la función imread.
3. Calcule la probabilidad de cada nivel de luminosidad de la imagen usando la siguiente función Prob=sum(hist(X,0:255)')/sum(sum(hist(X,0:255)'))
4. Represente en una matriz, en su primera columna (fila 0 hasta 255) cada uno de los posibles niveles de luminancia, utilice la función linspace(1:256:256) y en la segunda columna los valores de probabilidades calculados en paso 3 para cada valor de luminancia.
5. Realice un ciclo for donde elimine los elementos con probabilidad igual a cero haciendo uso de sintaxis if y sino calcule el valor de entropía de dicho símbolo con sintaxis else. Los valores quedaran registrado en una matriz donde se encuentran los elementos con luminancia diferente de cero en la primera columna, su probabilidad en la segunda columna y entropía en la tercera columna. La ecuación para calcular la entropía de un símbolo es:
6. Determine la codificación de Huffman para cada símbolo y la longitud promedio del código. Utilice la función huffmandict
Sección 2: Eficiencia de código Huffman.
Escriba un programa que calcule la entropía de imágenes. Compare la eficiencia del código Huffman. Grafique en una misma figura el número de bits calculados según algoritmo de Huffman para cada valor de luminancia de la imagen y el valor de entropía de cada pixel individual. Comente resultados.
1. Calcule la entropía de la imagen usando la función entropy.
2. Genere un ciclo for donde chequee todos los elementos de la estructura
generada en paso 6 que contiene la codificación de Huffman para cada elemento con el objetivo de determinar la cantidad de bit utilizados, para ello utilice función
[f,c]=size(cod{i,2}) donde c contiene la cantidad de bit utilizados. El resultado guárdelo en la cuarta columna de matriz general que contiene, elemento luminancia, probabilidad, entropía y ahora longitud de código Huffman.
3. Grafique los valores de entropía para cada valor de luminancia utilizando función plot, además en la misma grafica represente además la longitud de código Huffman para cada valor, utilice hold on y hold off al finalizar,
represente además cada grafica con colores diferentes para que le permita visualizar mejor los resultados.
4. Comente Resultados.
5. Cuáles son los niveles de luminancia que predominan en la imagen?
6. Calcule la eficiencia total del código Huffman respecto a la entropía utilizando la longitud promedio del código.
7. Repita todos los pasos anteriores para otra imagen y compare la eficiencia del código Huffman para ambas imágenes, arribe a conclusiones.
Anexo II Laboratorio referente al tema 2
Laboratorio sobre técnicas de compresión de audio
Objetivos:
Interiorizar la necesidad del uso de las técnicas de compresión de audio en los procesos de digitalización.
Comprender las características del SHA para poder establecer sinergias en el proceso de compresión de señales de audio.
Analizar los fenómenos que justifican la compresión de señales de audio.
Introducción:
La mayor parte del tiempo el mundo se presenta con gran variedad de sonidos simultáneos; el ser humano automáticamente lleva a cabo la tarea de distinguir cada uno de ellos y atender a los de mayor importancia. Es muy difícil percibir un sonido cuando existe otro de mayor intensidad presente al mismo tiempo. El término para este fenómeno es enmascaramiento (masking), y es probablemente la cualidad auditiva mas investigada.
El fenómeno de enmascaramiento constituye la base de la compresión psicoacústica, que se basa en el análisis del enmascaramiento para identificar los “sonidos” (componentes del espectro) no audibles y eliminarlos. Se codifica entonces sólo la señal que el oído será capaz de escuchar.
Una vez estudiada la Conferencia 5 que aborda los tópicos relacionados con las técnicas de compresión de audio y los diferentes formatos de compresión existentes, asi como la bibliografía puesta a su disposición, el presente laboratorio le permitirá ser participe en función del análisis del comportamiento percibido por usted como receptor auditivo de los fenómenos psicoacusticos que se materializan en los materiales de audio proporcionados por el profesor.
Paso1: En la carpeta asociada al laboratorio hay un conjunto de audiciones que deberán ser escuchadas por usted detenidamente.
Paso 2: ¿Usted puede ser capaz de distinguir la existencia de algunos tonos de frecuencia que aparecen con diferente potencia a lo largo de la audición?
Paso 3: En caso de que su respuesta haya sido del todo negativa, o que no perciba de manera significativa diferentes tonos de frecuencia con diferentes potencias , vuelva a escuchar nuevamente las audiciones pero ahora con un reproductor de medios de audio en el que pueda visualizar las diferentes portadoras de audio allí presentes y su contribución de potencias.
Paso 4: Identifique el tipo de fenómeno que se pone de manifiesto en cada una de las grabaciones.
Paso 5: Comente en cada caso cada fenómeno y la repercusión que tiene en su respuesta psicoacustica arribando a resultados concluyentes.
Preguntas:
¿Son útiles las técnicas de compresión psicoacustica para disminuir los Bit rates deaudio codificado?
¿Se utilizan por igual las técnicas de compresión psicoacustica en todos los codec?
¿Pueden en un mismo intervalo de tiempo coexistir todos los fenómenos de compresión psicoacustica?
¿Está la distribución de frecuencias de la cóclea relacionada en alguna medida con alguna de los pilares en los que se sustenta la compresión psicoacustica?
Anexo III Laboratorio referente al tema 2
Laboratorio ¨Análisis de técnicas de compresión de imágenes o
secuencias de modo Intra e Inter con el software VcDemo ¨
Objetivos:
Visualizar, interpretar y caracterizar los resultados obtenidos para imágenes a las que se les aplica técnicas de DCT, DPCM, PCM, etc con el software VcDEMO .
Interpretar y analizar las técnicas de codificación intra e inter (estimación y compensación de movimiento) para secuencias de imágenes con el software VcDEMO.
Para la evaluación del laboratorio se ha de entregar un informe escrito con el análisis de los resultados obtenidos.
Introducción: El software VcDemo es útil para analizar cualitativa y cuantitativamente la calidad de imágenes codificadas para diferentes valores elegidos por usted (DCT, Q, PCM, DPCM, etc). Además el software brinda la opción de analizar secuencias de video visualizando las imágenes de la secuencia basadas en parámetros configurados por usted. Para la interacción con el mismo usted ha de cambiar los parámetros y comentar los resultados obtenidos en cada caso.
1. Usted deberá abrir software VCdemo proporcionado por el profesor en la página de Moodle en el bloque de software.
2. Comencemos a realizar un análisis de las técnicas estudiadas en clases para el caso de las imágenes. Cargue alguna de las imágenes que aparecen de muestra, también se puede acceder a través: File / Open Image/ Birds.bmp
Ej: imagen Birds.bmp
En pantalla le habrá de aparecer algo como esto:
Tarea 1. Análisis de parámetros PCM.
I. Comencemos por analizar el Bit Rate que se puede obtener para cada uno de los casos preconcebidos por el VcDemo para la imagen seleccionada. Varíe las muestras en valores de 1, 4 y 7.Analice y comente los resultados obtenidos en la codificación tanto visualmnete como los ofrecidos por el software.
II.Evalúe los resultados de la adición o no en mayor grado de Dithering a la imagen en cuestión. Pruebe con todas las combinaciones que le brida el software y comente los resultados percibidos visiblemente y cuantitativamente.
III.Simule un canal con errores utilizando los valores de 0.005, 0.001 y el mínimo 0.0001. Comente los resultados se vislumbran. ¿Por qué variaron los resultados de MSE (error medio cuadrático) y el PSNR?
Tarea 2: Análisis del parámetro DPCM en imágenes fijas.
I. Una vez seleccionado el análisis de técnica DPCM, en la opción Model entre los diferentes modelos de predicción y compare y comente los resultados para cada predicción. Arribe a conclusiones sobre cuál de todos los modelos es el más indicado. Justifique.
II. En función de las diferentes opciones de Bit Rate que usted elija evalúe los nuevos valores de la imagen codificada.
III. Determine los cambios al variar el número de niveles
IV.Simule un canal con errores utilizando los valores de 0.005, 0.001 y el mínimo 0.0001. Comente los resultados se vislumbran. ¿Por qué variaron los resultados de MSE (error medio cuadrático) y el PSNR?
Tema 3 : Codificación mediante la transformada discreta del coseno (DTC). A través de los iconos en la barra de tareas seleccione el que enuncia la DTC.
Del set de parámetros de la DCT escoja diferentes tamaños de bloques a emplear para la realización de la transformada. ¿Qué cambios usted visualiza al aumentar el número de bloques?
Varíe los coeficientes DCT poniendo el coeficiente DC en alguna de las combinaciones existentes y los AC en otra combinación para observar que ocurre en cada caso. Cámbiele además los valores de C-Value. ¿Qué efectos provocan en la codificación de la imagen?
Tema 4 : Compresión de secuencias de video
I. Cargue una de las secuencia de video H264 .
II. Con la función VPLY revise las características del video.
III. Utilice ME para trabajar con parámetros de estimación de movimiento. Comente que visualiza la secuencia en este caso para imágenes consecutivas del GOP.
Varíe los niveles resolución en cada caso y varíe el tamaño de los bloques mediante la función Block. Arribe a conclusiones evaluando los resultados obtenidos en cuanto a: Variances y Vector Entropy por cuadro de los incisos anteriores.
IV. Abra alguna de las secuencias de video que el software trae predeterminado en formato MPEG.
V. En la ventana Operation trabaje con las opciones de decodificar las tramas, realizar la predicción de las tramas y visualizar las diferencias únicamente entre imágenes consecutivas. Comente los resultados en cada caso.
VI. Apóyese en los íconos de: Display, Video y Canales propensos a error para responder las siguientes interrogantes:
Caracterice el tipo de frecuencia con la que se está muestreando las secuencias IPB... Comente los resultados obtenidos para la secuencia Mjackson y Bike indistintamente.
Caracterice cada secuencia según: Dimensiones de trama, bit rate, cantidad de tramas transmitidas, tipo de predicción de imagen, vectores de movimiento, etc.
Anexo IV Laboratorio referente al tema 2
Laboratorio 4: Análisis de la codificación diferencial predictiva
con compensación de movimiento.
Objetivos:
Analizar el desempeño de la compensación de movimiento para eliminar redundancia temporal.
Determinar y analizar la entropía para imágenes aplicada la compensación de movimiento.
Familiarización con toolbox de funciones de Matlab.
Para la evaluación del laboratorio se ha de entregar un informe escrito con el análisis de los resultados obtenidos.
Introducción:
La redundancia temporal viene dada por la relación entre los píxeles homólogos de imágenes sucesivas. La compresión inter-cuadro intenta detectar y eliminar la redundancia temporal entre cuadros sucesivos. Esta compresión se realiza mediante un proceso de codificación diferencial, y otro llamado “compensación de movimiento”. Con estas técnicas se consiguen los niveles más elevados de compresión.
La técnica de compensación del movimiento trabaja sobre pequeñas áreas de la ima gen denominadas macrobloques de 256 píxeles (16x16); estos macrobloques están compuestos por cuatro bloques. En las imágenes en movimiento, es habitual que algunas zonas de la imagen se desplacen en un fotograma con respecto al anterior. El sistema de compensación del movimiento, trata de buscar el nuevo emplazamiento de los macrobloques, y calcular los vectores de desplazamiento codificando solamente dichos vectores. El proceso de predicción comienza por comparar el macrobloque actual con el homólogo del fotograma anterior, si estos no son iguales, buscará un macrobloque idéntico en la denominada zona de búsqueda, si lo encuentra codificará los vectores de desplazamiento, y si no lo encuentra realizará la comparación con el más parecido, codificando la diferencia entre los dos y los vectores de movimiento.
Orientación de las tareas a desarrollar:
7. Usted ha de abrir el software Matlab.
Section1. Para una secuencia de imágenes pertenecientes a un video.
Calcule la entropía en una predicción diferencial entre imágenes (inter-imagen) usando el mismo pixel en la imagen previa como predictor.
Calcule la entropía para una imagen diferencial con compensación de movimiento y compare resultados con inciso anterior. Use un tamaño de bloque para estimar
movimiento de 16 x
vertical y horizontal. Use el criterio de macheo del mínimo error absoluto.
Para tamaño del bloque fijo en 16 x16 pixeles, evalué el efecto de variar el área de búsqueda en la entropía.
8. Cargue las 2 imágenes pertenecientes a una secuencia desde la carpeta del profesor con la función imread y transforme sus valores a dobles con función
double.
Determine la imagen diferencial entre ambas imágenes usando el mismo pixel de la imagen previa como predictor.
9. Determine la entropía de la imagen diferencial utilizando la función
mostrar_entropia, debe especificar la imagen y el rango donde se encuentran sus
valores que es caso es desde -255 hasta 255.
10. Para determinar la predicción de movimiento utilizaremos las funciones del toolbox de matlab pertenecientes al procesamiento de imagen, primeramente se especificaran los valores del bloque de macheo con sintaxis:
hbm = vision.BlockMatcher('ReferenceFrameSource','Input
port','BlockSize',[17 17]);
Luego se ajustaran los parámetros de salida de los vectores de movimiento colocándolos en forma compleja donde la parte real será movimiento horizontal y la imaginaria vertical.
hbm.OutputValue =('Horizontal and vertical components in complex form');
Se declarará cual será criterio de macheo y el máximo desplazamiento.
hbm.MatchCriteria=('Mean absolute difference (MAD)');
hbm.MaximumDisplacement=[8 8];
11. Determinar los vectores de predicción de
movimiento con función step declarándole los parámetros hbm especificados, así como las 2 imágenes de la secuencia.
12. Muestre la secuencia imagen junto a los
vectores de movimientos para ellos utilice las funciones imshow y quiver.
13. Utilice los vectores de predicción de
movimiento y las dos imágenes de la secuencia para obtener la imagen predictiva diferencial con estimación de movimiento, utilizando ciclos sendos ciclos for con tamaño de bloques especificados.
14. Determine la entropía de la imagen obtenida
utilizando función mostrar_entropia similar al paso 3.
15. Varié el valor de máximo desplazamiento del
área de búsqueda y comente resultados en cuanto a entropía y demora computacional.