CAPITULO II. DISEÑO Y DESARROLLO DEL SOFTWARE.
3.1. RENDIMIENTO DEL CODIFICADOR DECODIFICADOR DE VIDEO.
3.1.4. Criterio de fidelidad.
Cuando se utilizan algoritmos de compresión con pérdidas como es el caso de MPEG, las imágenes descomprimidas no son idénticas a las imágenes originales. En tales casos, una forma objetiva de medir la diferencia entre dichas imágenes es la raíz cuadrada del error cuadrático medio o error RMS (“Root Mean Square”) cuya expresión se muestra en la ecuación (3.3) [9]; valores pequeños del error RMS indican que la imagen descomprimida está más próxima a la original. Sin embargo, ésta medida no necesariamente coincide con la forma en la cual percibimos la imagen; es decir, puede darse el caso en el cual una imagen con un error RMS mayor está más cerca, visualmente, de la imagen original. Es por ello que algunas veces para caracterizar el rendimiento de las técnicas de compresión con pérdidas se utilizan pruebas de calidad de imágenes subjetivas, basadas en la percepción humana. No obstante, hecha la aclaración, se realizaron para el codificador- decodificador las mediciones del error RMS con las secuencias de prueba.
[
]
2 1 1 0 2 2 1 1 0 ) , ( ) , ( 1 − =∑
∑
− = − = M x N y RMS f x y f x y MN E (3.3) donde:M y N son las dimensiones de la imagen de prueba.
f1(x,y) y f2(x,y) son las imágenes original y descomprimida respectivamente.
Para el caso de secuencias de video utilizadas se calculó el error RMS de cada una de las imágenes mediante la ecuación (3.3) y posteriormente se obtuvo un promedio del mismo; además, dado que se tienen imágenes en el formato de color RGB este error se calculó para cada uno de los componentes por separado. Los resultados se muestran en la tabla 3.7 en donde se puede observar que conforme Q aumenta el error RMS también lo hace.
Tabla 3.7. Errores RMS de las secuencias de prueba con diferentes valores de Q. Q = 1 Q = 3 Q = 5 Q = 7 Q = 9 Referencia R G B R G B R G B R G B R G B 1 4.1 2.6 5.5 5.2 3.8 6.5 6.5 5.1 7.7 7.5 6.1 8.7 8.5 9.1 9.6 2 1.9 1.2 3.6 2.5 1.9 4.1 3.1 2.6 4.8 3.8 3.9 5.5 4.4 3.7 6.1 3 2.5 1.8 4.3 3.2 2.4 5.1 3.9 2.9 5.9 4.4 3.3 6.5 4.9 3.6 7.1 4 1.8 1.1 2.3 2.4 1.7 2.9 2.7 2.1 3.3 3.2 2.6 3.7 3.5 2.9 4.1 5 3.3 2.4 4.5 4.6 3.6 5.8 6.2 5.1 7.5 7.3 6.2 8.6 8.5 7.3 9.8 6 3.4 2.3 4.3 5.2 3.9 6.5 7.6 5.5 8.5 8.1 6.3 9.7 9.6 7.2 11 7 3.8 2.6 4.7 5.1 3.9 5.1 5.7 5.1 5.7 6.9 5.8 6.5 8.6 7.3 8.3 8 2.4 2.5 2.4 3.1 2.2 3.1 4.1 3.2 4.8 4.9 3.9 4.7 5.6 4.5 5.4 9 2.5 1.7 3.0 3.7 2.2 3.6 3.7 2.7 4.3 4.2 3.2 4.8 4.6 3.6 5.2 10 2.0 1.2 2.9 2.4 1.6 3.4 2.8 1.9 3.8 3.2 2.2 4.3 3.6 2.4 4.7
Para tener una idea más clara de lo que es una prueba objetiva con respecto de una subjetiva se presentan las imágenes de la figura 3.3. La imagen 3.3a corresponde a la imagen original de la secuencia mar (referencia 3) mientras que la de la figura 3.3b corresponde a una imagen descomprimida de una secuencia que se comprimió con un factor Q = 1. De la tabla 3.7 se puede ver que la secuencia en cuestión tiene errores RMS promedio de 2.5, 1.8 y 4.3 correspondientes a los componentes R, G y B respectivamente; a pesar de este error, visualmente es difícil encontrar una diferencia entre las dos imágenes.
Figura 3.3. Imágenes de la secuencia mar. (a) Imagen original. (b) Imagen descomprimida.
Los errores presentados por la secuencia con referencia 2 cuando se utiliza una Q
igual con 3 tienen valores muy próximos a los que se obtienen cuando Q es igual con 1; sin embargo, como se puede apreciar en la figura 3.4, visualmente si se pueden apreciar diferencias entre la imagen original (a) y la descomprimida (b), esto principalmente alrededor de las letras que aparecen en dicha imagen y las que se aprecian encerrados en un círculo.
Figura 3.4. Imágenes de la secuencia edu. (a) Original. (b) Descomprimida.
La pérdida de la calidad visual de una secuencia comprimida también depende de la naturaleza de la secuencia. La secuencia naveluz (referencia 4) presenta una escena con cambios graduales en sus imágenes lo cual permite que aún utilizando un factor
Q igual con cinco existan bajas pérdidas en la calidad como se muestra en la figura 3.5. Los pequeños errores que se muestran encerrados en los círculos son prácticamente imperceptibles.
Anteriormente se mencionó que un error RMS grande no necesariamente significaba pérdida de calidad visual. Esto se ejemplifica con las imágenes de la figura 3.6 en la cual, para obtener la secuencia codificada se utilizó un valor Q de 7. Las imágenes corresponden a la secuencia alien (referencia 1), en la tabla 3.7 se puede ver que presenta un error RMS de alrededor de 7 para cada componente. Con este valor de error comparado con los errores presentados en las secuencias de las imágenes anteriores se esperaría que la distorsión fuera significativamente mayor; sin embargo, aunque se puede apreciar alguna diferencia entre las imágenes
comparadas, esta diferencia no parece estar acorde ni con el error presentado ni con el factor Q utilizado. En la figura 3.6b se pueden ver encerrados en círculos algunos pixeles que no mantuvieron sus valores originales y por tanto existe un cambio de coloración con respecto a la imagen original.
Figura 3.5. Imágenes de la secuencia naveluz. (a) Original. (b) Descomprimida.
Figura 3.6. Imágenes de la secuencia alien. (a) Original. (b) Descomprimida.
La figura 3.7 es una muestra de una secuencia utilizando un factor Q de 9. Se puede ver que debido a la naturaleza de la secuencia la distorsión o pérdida de calidad entre la imagen original y la descomprimida no es fácil de apreciar, sin embargo en la esquina superior derecha de la imagen descomprimida existe una cierta distorsión. Finalmente en la figura 3.8 se muestran un par de imágenes en donde se utiliza el
(a) (b)
mismo factor Q de 9 y al comparar la imagen descomprimida con la original se puede ver que la distorsión es muy alta y muy fácil de apreciar observándose una gran cantidad de pixeles en color oscuro.
Figura 3.7. Imágenes de la secuencia nieve. (a). Original. (b) Descomprimida.
Figura 3.8. Imágenes de la secuencia playa. (a). Original. (b) Descomprimida.
Aunado a la posibilidad de comprimir y descomprimir secuencias de video el programa final cuenta con las siguientes herramientas: rutina que permite obtener la información de la tarjeta de video utilizada mediante el estándar VBE, rutina que permite visualizar en la pantalla el encabezado principal de un archivo .mpg, reproductor de archivos .avi, rutina que permite visualizar el encabezado de un archivo .avi y por último, una rutina que permite comparar visualmente dos archivos .avi. Al finalizar esta última rutina se muestra el error RMS entre los dos archivos.
(a) (b)
CAPITULO 4. CONCLUSIONES.
Durante el desarrollo de este trabajo de tesis se logró abundar en el conocimiento y estudio de las técnicas de compresión de imágenes que son base para los algoritmos de compresión de video más importantes de la actualidad, a tal grado que se diseñó y creó un programa computacional que permite utilizar dichas técnicas de forma conjunta bajo el estándar de compresión de video MPEG-1.
Como se planteó en el objetivo de este trabajo, se logró que el software desarrollado permita comprimir y descomprimir secuencias de video bajo el estándar MPEG-1 siendo 100 % compatible con las aplicaciones comerciales existentes, por lo que las salidas de los procesos de codificación y decodificación pueden ser leídas por cualquier programa que soporte archivos .mpg y .avi.
Otro objetivo importante que se buscaba en este trabajo era el de sentar las bases para el estudio y desarrollo de técnicas de compresión de imágenes y video en México, objetivo que se alcanzó al desarrollar una aplicación que no utiliza controladores ni rutinas de código que sean propiedad de terceros ya que se desarrolló el 100% del código fuente del que se compone este software, lo cual nos brinda la libertad de poder manipular el código a conveniencia, con lo que es posible utilizar rutinas y/o módulos del programa para desarrollar otros programas que permitan implementar otros estándares de compresión de video tales como el MPEG-2 o el MPEG-4 o bien nos da la posibilidad de poder experimentar de forma simple con el uso de algún tipo alternativo de algoritmo de transformación diferente al de la transformada discreta coseno (DCT) y así poder innovar en el desarrollo de técnicas de transformación.
En lo que respecta al desarrollo del software se pudo comprobar que el uso del estándar VESA es de suma importancia para mejorar el rendimiento del manejo de gráficos en la PC, de tal manera que no sólo se acelera el despliegue de gráficos sino que se evita la necesidad de tener que crear código para diferentes tarjetas gráficas. Durante el desarrollo de este software también se tuvo la necesidad de realizar la programación de la memoria expandida, para que al igual que en el caso
del manejo de gráficos, la aplicación final tenga un mejor rendimiento. El desarrollo de las rutinas de código que permiten realizar las tareas antes mencionadas implicaron un esfuerzo adicional al desarrollo del codificador-decodificador de video; sin embargo, el tener una aplicación final que trabaje de forma aceptable bajo una plataforma de bajos recursos como lo es MSDOS es debido al esfuerzo hecho para realizar la programación de los procesos en cuestión, por lo que el trabajo desarrollado en dichos esfuerzos puede ser considerado una excelente inversión. En lo que respecta al codificador, como se muestra en el capitulo de resultados, se logró crear un programa que es lo suficientemente flexible como para alcanzar diferentes niveles de compresión con diferentes niveles de calidad de imágenes, por lo que dicho software puede competir en ese rubro tan importante con programas existentes; sin embargo, tanto el codificador como el decodificador están limitados en respuesta en el tiempo como para trabajar en tiempo real. Este bajo rendimiento con respecto al tiempo es debido a la gran cantidad de operaciones requeridas para realizar la operaciones correspondientes a la DCT y a la conversión de formatos de color.
La diferencia más significativa entre los programas comerciales que se encontraron con respecto al que se desarrolló, es que estos tienen soporte para una gran cantidad de formatos adicionales al .avi y .mpg. Por todo lo expuesto, las principales ventajas del trabajo realizado con respecto de aplicaciones comerciales son la posibilidad de poder mejorar, aumentar o bien reutilizar dicha aplicación; aunado al no menos importante hecho de que se está creando tecnología propia en nuestro país.