scieee AI-readable full text Open interactive document viewer

Implementación de un sistema de codificación de vídeo con descripción múltiple mediante submuestreo espacial polifase

Gallego Ezpeleta, Javier

Full text

TREBALL DE FI DE CARRERA T´ ITOL DEL TFC : ”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” TITULACI ´ O: Enginyeria T` ecnica de Telecomunicaci´ o, especialitat Telem` atica AUTOR: Javier Gallego Ezpeleta DIRECTOR: Sergio Machado DATA: 8 de mayo de 2009 T´ıtol : ”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” Autor: Javier Gallego Ezpeleta Director: Sergio Machado Data: 8 de mayo de 2009 Resum En los ´ultimos a˜ nos, el uso del servicio de v´ıdeo por internet ha aumentado mucho, especialmente, el que catalogar´ıamos como v´ıdeo en streaming sobre redes peer-to-peer. Este tipo de redes, generan ciertos problemas debido a su heterogeneidad (ancho de banda, capacidad de proceso,... ) y sobretodo a que en cada momento, uno de los nodos de la red, puede desconectarse, provocando as´ı p´ erdidas de informaci´ on. En estas circunstancias, un art´ıculo como: Polyphase spatial subsampling multiple description coding of video streams with h264, de R.Bernardini, M.Durigon, R.Rinaldo, L.Celetto y A.Vitali explica un m´ etodo diferente al tradicional,cambiando el muestreo temporal por uno basado en repartir el v´ıdeo en diferentes descriptores muestreados de forma espacial. De este modo, la implementaci´ on de un m´ etodo de codificaci´ on de v´ıdeo mediante m´ultiples descriptores muestreados espacialmente supone el centro de este proyecto, con la intenci´ on deponeren pr´ actica el estudio previamentenombradoycomparar los resultados con los obtenidos. Adem´ as de la idea central, desde el art´ıculo, y por lo tanto desde este proyecto, se evaluan tambi´ en diferentes t´ ecnicas de tratamiento de errores. Estas t´ ecnicas estan dise˜ nadas para minimizar u ocultar la p´ erdida de un descriptor mediante t´ ecnicas de reconstrucci´ on del mismo. Finalmente, se propone tambi´ en un filtro adaptativo dise˜ nado especialmente para mejorar la calidad de un v´ıdeo recibido mediante submuestreo espacial polifase. Title : Polyphase spatial subsampling multiple description coding of video streams implementation Author: Javier Gallego Ezpeleta Director: Sergio Machado Date: May 8, 2009 Overview The amount of users of v´ıdeo by Internet service has increased a lot lately, specially the ones of the streaming v´ıdeo service over peer-to-peer networks. These networks generate some troubles due to the lack of uniformity (on bandwidth, CPU...) that they present and over all due to the fact that any peer can be disconnected on anymoment, which generates a loss of information on the rest. On these cases, articles such as Polyphase spatial subsampling m´ultiple description coding of v´ıdeo streams with h264, by R.Bernardini, M.durigon, R.Rinaldo, L.Celetto and A.Vitali explain a different and innovative method that changes temporary sampling for a method based on the distribution of the v´ıdeo on several spatial subsampled descriptions. The core of this study is the implementation of a v´ıdeo encoding method by using several spatial subsampled descriptions to put into practice the before mentioned study and compare the obtained results. Besides this main idea, this study also aims to evaluate several error concealment techniques. These have been designed in order to minimize or hide the loss of a description by prediction techniques. Finally, the study also suggests a filter spacially designed to enhance the quality of a v´ıdeo received by polyphase spatial subsampling. ´ INDICE GENERAL INTRODUCCI´ ON ................................. 1 CAP´ ITULO 1.MDC en la transmisi´ on de v´ıdeo ............. 5 1.1. Inconvenientes ................................. 7 1.2. Ventajas ..................................... 8 CAP´ ITULO 2.Submuestreo .......................... 11 2.1. Formato YUV .................................. 11 2.2. Formato de los descriptores .......................... 13 2.3. Implementaci´ on ................................. 15 CAP´ ITULO 3.Codificaci´ on de v´ıdeo .................... 17 3.1. Codificaci´ on MPEG ............................... 17 3.2. FFmpeg ..................................... 19 CAP´ ITULO 4.Tratamiento de p´ erdidas de descriptor ......... 23 4.1. Replicaci´ on del vecino m´ as cercano ..................... 23 4.2. Bilineal ...................................... 24 4.3. Detecci´ on de ejes ................................ 25 4.4. N´umero variable de gradientes ........................ 25 4.5. Implementaci´ on ................................. 27 CAP´ ITULO 5.Filtro Adaptativo ....................... 29 5.1. filtro 1D ..................................... 29 5.2. filtro 2D ..................................... 30 CAP´ ITULO 6.Evaluaci´ on del sistema ................... 33 6.1. Par´ ametros de calidad ............................. 33 6.2. Resultados experimentales .......................... 34 CAP´ ITULO 7.Conclusiones ......................... 41 BIBLIOGRAF´ IA .................................. 43 ´ INDICE DE FIGURAS 1.1 Sistema de MDC temporal, se provocan p´ erdidas de reproducci´ on si un descriptor se pierde. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Sistema de MDC espacial, se provocan p´ erdidas de resoluci´ on, pero no se pierde tiempo de reproducci´ on............................. 6 1.3 Diagrama de bloques del transmisor. . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 Diagrama de bloques del receptor. . . . . . . . . . . . . . . . . . . . . . . . . 7 1.5 Imagen de las diferentes p´ erdidas de descriptores. . . . . . . . . . . . . . . . 9 2.1 Imagen descompuesta en sus componentes. Y en el centro y a la derecha U y V. 11 2.2 Atributos y m´ etodos de la clase yuvpixel. . . . . . . . . . . . . . . . . . . . . 15 2.3 Atributos y m´ etodos de la clase YuvFrame. . . . . . . . . . . . . . . . . . . . 15 2.4 Atributos y m´ etodos de la clase YuvVideo. . . . . . . . . . . . . . . . . . . . . 16 2.5 Atributos y m´ etodos de la clase submuestreador2. . . . . . . . . . . . . . . . 16 3.1 Pantalla de codificaci´ on de ffmpeg. . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2 Pantalla de descodificaci´ on de ffmpeg. . . . . . . . . . . . . . . . . . . . . . . 21 4.1 Nomenclatura de la matriz de reconstrucci´ on................... 24 4.2 Nomenclatura de los p´ıxeles a reconstruir. . . . . . . . . . . . . . . . . . . . . 26 4.3 Diagrama de la clase ReconstructorNNR . . . . . . . . . . . . . . . . . . . . 27 4.4 Diagrama de la clase Reconstructorbili . . . . . . . . . . . . . . . . . . . . . . 28 4.5 Diagrama de la clase Reconstructorejes . . . . . . . . . . . . . . . . . . . . . 28 4.6 Diagrama de la clase ReconstructorGrad . . . . . . . . . . . . . . . . . . . . 28 6.1 C´ alculo de las PSNR medias de cada uno de los m´ etodos. . . . . . . . . . . . 35 6.2 Evoluci´ on de la PSNR durante 30 frames. . . . . . . . . . . . . . . . . . . . . 36 6.3 Imagen completa en grande y sus tres componentes al lado, luminancia a la izquierda y cromas a la derecha. . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.4 Comparaci´ on antes y despu´ es de el filtro, efecto granulado. . . . . . . . . . . . 38 6.5 Imagen completa en grande y sus tres componentes al lado, luminancia a la izquierda y cromas a la derecha. . . . . . . . . . . . . . . . . . . . . . . . . . 39 4”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” MDC en la transmisi´ on de v´ıdeo 5 CAP´ ITULO 1. MDC EN LA TRANSMISI ´ ON DE V´ IDEO M´ultiple Descriptor Coding es un sistema para la transmisi´ on de v´ıdeo que se basa en partir el fragmento de v´ıdeo inicial y tratarlas a cada una de ellas como una unidad de v´ıdeo independiente.En el sistema de transmisi´ on de v´ıdeo convencional un fragmento de v´ıdeo es la unidad completa, y como tal se codifica, transmite, decodifica y se reproduce conjuntamente. Un escenario en el cual resulta muy ´util el sistema de MDC es la transmisi´ on de v´ıdeo sobre redes p2p. Hay que recordar que un escenario p2p es un escenario altamente diverso en todos los aspectos. Para empezar, y con la tecnolog´ıa actual, las redes p2p admiten todo tipo de clientes, desde ordenadres de sobremesa, hasta tel´ efonos m´ oviles, pasando por televisores, videoconsolas y otra gran cantidad de gadgets con posibles conexi´ on a la red. Estos dispositivos, var´ıan mucho en cuanto a capacidad de procesador, memoria interna y otras caracter´ısticas t´ ecnicas. Tambi´ en es diversa en cuanto a ancho de banda se trata ya que las velocidades de transmisi´ on y recepci´ on de cada uno de los usuarios puede variar notablemente, pero sobre todo es muy diversa en cuanto a estructura, ya que en una red peer to peer cualquier nodo puede desconectarse sin previo aviso. Existen dos tipos de MDC, dependiendo del m´ etodo que se utilice para obtener los descriptores el temporal y el espacial. Temporal : Este tipo de descriptor m´ultiple parte el v´ıdeo completo en espacios temporales, creando as´ı peque˜ nos v´ıdeos de una duraci´ on menor pero manteniendo por completo la resoluci´ on y la calidad en cada descriptor. Espacial : Cuando se utiliza esta t´ ecnica se parte el v´ıdeo original en cada fotograma, diezmando as´ı la calidad y la resoluci´ on del v´ıdeo original, pero al contrario que el temporal, manteniendo as´ı una continuidad de la reproducci´ on, que ser´ a clave en este proyecto. En el art´ıculo utilizado como fuente, se utiliza el formato espacial, debido probablemente al factor que ahora explicaremos. Si trabajamos sobre una red p2p, en la que un cliente recibe descriptores de un conjunto de pares, podemos suponer que, al recibir con cierta frecuencia, y sin errores, podr´ a ensamblarlo sin problemas recibiendo un v´ıdeo con la calidad esperada y sin p´ erdidas. No obstante las diferencias llegan cuando un nodo cae, ya que si se est´ a utilizando MDC temporal, la p´ erdida conlleva que aparezca un vac´ıo en la reproducci´ on del v´ıdeo igual a la duraci´ on del tama˜ no. Si esta p´ erdida sucede cuando se est´ a utilizando un MDC espacial, el resultado ser´ıa que la resoluci´ on bajar´ıa mientras no se logre reponer ese descriptor, pero no se perder´ıa en ning´un momento la continuidad del v´ıdeo. 6”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” Figura 1.1: Sistema de MDC temporal, se provocan p´ erdidas de reproducci´ on si un descriptor se pierde. Figura 1.2: Sistema de MDC espacial, se provocan p´ erdidas de resoluci´ on, pero no se pierde tiempo de reproducci´ on. Una vez explicado el sistema de descriptores m´ultiples podemos analizar el sistema general a partir del diagrama de bloques. MDC en la transmisi´ on de v´ıdeo 7 En el transmisor nos encontramos que se utiliza una fuente de v´ıdeo, que emite un flujo en formato YUV420. Este flujo se muestrea siguiendo una t´ ecnica MDC espacial de la forma que veremos en el siguiente cap´ıtulo, de modo que se obtienen cuatro descriptores en formato YUV444 que codificaremos de forma independiente mediante el est´ andar MPEG. Figura 1.3: Diagrama de bloques del transmisor. En la parte del receptor, obtenemos por cuatro canales independientes, los cuatro flujos que descodificaremos para posteriormente ensamblarlos en un ´unico archivo. En caso de existir la p´ erdida de alg´un descriptor es el momento de tratar esas p´ erdidas mediante los m´ etodos que explicaremos en el cap´ıtulo cuatro. Tras este paso, tendremos a nuestra disposici´ on un v´ıdeo en formato YUV420, al que aplicaremos el filtro, que nos devolver´ a el v´ıdeo YUV420 definitivo que podremos enviar hacia el reproductor. Figura 1.4: Diagrama de bloques del receptor. Tras estas especificaciones del formato utilizado y de como lo vamos a distribuir en los flujos independientes es hora de estudiar las ventajas e inconvenientes. Incluyendo no solo la parte de los estudiados sobre la red P2P de forma te´ oricos sino tambi´ en la comparaci´ on con el m´ etodo habitual de tratar el v´ıdeo como un ´unico componente. 1.1. Inconvenientes La decisi´ on de implementar un sistema de codificaci´ on de v´ıdeo de m´ultiples descriptores tiene un primer inconveniente claro, la adhesi´ on de nuevas fases al sistema de transmi- 8”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” si´ on. Este inconveniente aparece en primera instancia en el paso que a˜ nadimos al realizar el submuestreo y aparece, en el mejor de los casos, una vez m´ as al ensamblar las diferentes muestras para rehacer el v´ıdeo original. Tambi´ en, como veremos m´ as adelante encontraremos ocasiones en las que se necesite de un tercer a˜ nadido para reconstruir los posibles descriptores perdidos. Este primer inconveniente, se traduce en dos aspectos a controlar, el consumo de recursos y el coste de tiempo que estos procesos a˜ nadidos puedan provocar al sistema. Para evaluar estos casos es importante diferenciar el tipo de uso que se va a dar, especialmente si es un uso en tiempo real o bajo alg´un tipo de imposici´ on temporal o si por el contrario el tiempo es un factor secundario. Si nos situamos sobre el escenario anteriormente descrito necesitaremos un retardo y un jitter (variaci´ on del retardo) dentro de unos m´ argenes razonables. Un segundo inconveniente nos aparece en la codificaci´ on por separado. La codificaci´ on acostumbra a basarse en la correlaci´ on de p´ıxeles comprimiendo mejor cuanta menos diferencia exista entre p´ıxeles. Esta base de la compresi´ on de v´ıdeo es relativamente contraria a lo querealizamos al separarlos descriptores en elpaso previo a la codificaci´ on. Como hemos comentado antes, las im´ agenes que codificaremos tendr´ an un diezmado de 1 2tanto en horizontal como en vertical respecto a las im´ agenes del v´ıdeo inicial. Por ejemplo, si en un v´ıdeo ´unico se codificara un p´ıxel con sus vecinos (el n´umero de vecinos depende seg´un la codificaci´ on), ahora, partiendo el origen en cuatro descriptores cada parte lo codificar´ a con un p´ıxel que se encuentra al doble de distancia en el v´ıdeo inicial. Esto ampl´ıa el ´ area codificada y por lo tanto y como norma general la codificaci´ on ser´ a peor, tanto a nivel de p´ erdidas (si el tipo de compresi´ on es con p´ erdidas) como de ratio de compresi´ on, afectando lo primero al nivel de calidad del v´ıdeo comprimido y lo segundo a la cantidad de datos a transmitir. En nuestro proyecto se codificar´ a, y descodifir´ a seg´un los est´ andares de MPEG como explicaremos en los pr´ oximos cap´ıtulos. 1.2. Ventajas Una vez descritos los principales inconvenientes podemos centrarnos ahora en las ventajas que este sistema nos puede aportar. La primera gran ventaja es la posibilidad de utilizar diferentes canales para la transmi- si´ on. Al poder tratar con cuatro flujos de v´ıdeo independientes podemos considerar que la gesti´ on de codificaci´ on-transmisi´ on-descodificaci´ on se puede tratar tambi´ en con m´ odulos independientes, pudiendo trabajar en paralelo. As´ı pues, y de la forma m´ as visible, podemos aprovechar este hecho para enviar cada descriptor por un canal diferente obteniendo as´ı un tiempo de env´ıo cuatro veces menor (suponiendo que los descriptores no tengan redundancia) que si enviaramos el v´ıdeo completo a trav´ es del canal m´ as lento de los cuatro. La segunda ventaja que nos otorga la compresi´ on independiente de cada una de las cua- MDC en la transmisi´ on de v´ıdeo 9 tro partes es la robustez en cuanto a p´ erdidas se refiere. En el caso inicial, el de un ´unico v´ıdeo, una p´ erdida de un env´ıo era ´unicamente recuperable mediante retransmisiones, mientras que con el m´ etodo estudiado se abre la posibilidad de que las p´ erdidas sean sanadas en el receptor evitando el nuevo env´ıo de informaci´ on. Para empezar hay que notar que si utilizamos los cuatro archivos independientes existen cuatro posibilidades de p´ erdidas, la de un descriptor (1 4de la informaci´ on), dos descriptores (1 2de la informaci´ on), tres descriptores (3 4de la informaci´ on) o bien los cuatro descriptores (p´ erdida total de la informaci´ on). Figura 1.5: Imagen de las diferentes p´ erdidas de descriptores. De estos cuatro casos, solamente uno necesitar´ıa de retransmisi´ on obligatoriamente, mientras que para los otros tres casos siempre se mantendr´ıa la opci´ on de reconstruir el resto del v´ıdeo a partir de los datos que s´ı han llegado de forma correcta al destino. Pudiendo decir que nuestro sistema se muestra m´ as robusto respecto a los errores de transmisi´ on. Esta segunda ventaja comporta una peque˜ na p´ erdida de calidad respecto a reducir notablemente el n´umero de retransmisiones necesarias para reproducir el v´ıdeo completo, por lo tanto un ahorro de energ´ıa y especialmente, de variaci´ on del tiempo entre im´ agenes, compensando en parte el inconveniente anteriormente comentado. Por ´ultimo podemos decir que esta soluci´ on permite tambi´ en ofrecer un servicio adaptado al receptor. Al disponer de un descriptor extra´ıdo mediante MDC espacial, podemos asumir que disponemos de un fichero de v´ıdeo completo con una resoluci´ on menor al original, de modo que en caso de recibir una petici´ on de un dispositivo que no soporte la resoluci´ on original, se le puede servir solamente los descriptores que adecuen el v´ıdeo final a la resoluci´ on al receptor. 10”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” Submuestreo 11 CAP´ ITULO 2. SUBMUESTREO Consideremos el inicio del sistema con una fuente de v´ıdeo en formato YUV 420 planar. Este formato es de v´ıdeo puro, sin cabeceras, y simula el flujo que podr´ıa emitir cualquier dispositivo de captura de v´ıdeo. Adem´ as, dicho formato el se adapta a las limitaciones humanas perdiendo peso en las cromas, que son menos sensibles a la percepci´ on del ojo humano. Comenzaremos comentando el formato YUV, ya que es sobre este formato de v´ıdeo donde debemos realizar el submuestreo para poder obtener los cuatro descriptores, y despu´ es codificarlos y enviarlos, a trav´ es de cuatro canales diferentes e independientes. Acto seguido explicaremos el tipo de submuestreo elegido. 2.1. Formato YUV El formato YUV se le aplica a una codificaci´ on plana pensada para optimizar una imagen o un v´ıdeo a la percepci´ on humana.Este formato separa entonces la luminancia (Y) de una imagen, de sus dos cromas (U, V). Este tratamiento permite que, sabiendo que el ojo humano es m´ as sensible a la componente Y, poder comprimir las cromas manteniendo un nivel de calidad alto al ojo humano. Si queremos hacer una analog´ıa m´ as cercana a nuestro vocabulario, la luminancia la podr´ıamos comparar con el brillo de una imagen o fotograma, mientras que en los componentes de croma viaja la informaci´ on relativa al color. Figura 2.1: Imagen descompuesta en sus componentes. Y en el centro y a la derecha U y V. Se puede comprobar que en la imagen del centro se mantiene m´ as informaci´ on para la vista humana que no en las dos componentes de la derecha. Como ejemplo podemos 12”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” revisar el cuerpo de la pera donde se ven m´ as tonos en la componente Y o en la manzana donde se pueden apreciar mejor las motas que aparecen en su piel. La elecci´ on de este sistema se ha debido a que est´ a ampliamente aceptado y es utilizado tanto en televisi´ on anal´ ogica o digital, como en muchos de los equipamientos fotogr´ aficos, siendo as´ı universal. Este factor nos ha hecho descartar otros modelos de colores m´ as cercanos al ojo humano, pero que en contra son menos utilizados. Algunos ejemplos de estos otros formatos pod´ıan ser el Hue Saturation Lightness (HSL) o Tonalidad, Saturacion, Luminancia o el Hue Saturation Value (HSV) o Tonalidad, Saturacion, Valor. Dentro del Formato YUV y centrandonos en la parte del flujo de v´ıdeo encontramos diferentes tipos de codificaci´ on de fotogramas, realizando una primera distinci´ on clara entre el YUV plano (planar) y el entrelazado (packed). Entrelazado : Son entrelazados los flujos de v´ıdeo que tienen las muestrasde luminancia y croma mezcladas entre si en “macrop´ıxels”, que a su vez estan unidos en un vector de transmisi´ on que los sucede. As´ı podemos decir que los datos se mezclan a nivel de byte y no de imagen o de frame. Explicamos a continuaci´ on algunos de los formatos m´ as usados para ejemplificar lo descrito. UYVY : Este es uno de los formatos entrelazados m´ as utilizados y se caracteriza por tener un diezmado 4:2:2. Es decir, tener un diezmado de 2 en cada croma de forma horizontal. De este modo, cada dos filas de p´ıxeles de Y comparten el mismo valor de U y V. La forma de crear el macropixel es lo que le da nombre ya que entrelaza los valores de la siguiente manera (siendo el sub´ındice la posici´ on de la columna de la imagen): U0Y0V0Y1 Quedando el formato entero de un vector de la siguiente manera: U0Y0V0Y1U2Y2V2Y3U4Y4V4Y5U6Y6V6Y7 En la secuencia se nota el diezmado de las cromas por la ausencia de valores de U1,V1,U3,V3... Y14P : En este formato, registrado como formato PCI est´ andar, se trata un campo de luminancia cuatro veces mayor que cada una de sus cromas enlazados en un “macrop´ıxel” de 12 bytes o muestras ordenadas de la siguiente manera: U0Y0V0Y1U4Y2V4Y3Y4Y5Y6Y7 Planar : El formato plano es aquel en que el flujo viene determinado por una sucesi´ on de componentes y no de p´ıxeles como nos encontr´ abamos en el caso de los YUV entrelazados. Tambi´ en se puede notar que ahora tiene m´ as sentido hablar de diezmado vertical y horizontal ya que por cada matriz de una componente puede aparecer la matriz de otra componente siendo inferior en altura y/o anchura. Dentro de este ´ ambito encontramos diferentes formatos seg´un su diezmado que se acostumbra a nombrar con un a˜ nadido de tres d´ıgitos que marcan la relaci´ on de tama˜ no entre la luminancia y las cromas. YUV444 : Es el formato en el que se mantiene el mismo tama˜ no para las cromas que para la luminancia, as´ı que se podr´ıa decir que no tiene ninguna compresi´ on, Submuestreo 13 ya que por cada M×Nbytes de la componente Y le siguen M×Nbytes de cada croma. YUV420 : En este formato se trata una campo de luminancia cuatro veces mayor que cada una de sus cromas con un diezmado de valor dos tanto en alto como en ancho. Es decir que por cada M×Nde Y tendr´ıamos unos valores de U y V de dimensiones M 2×N 2 2.2. Formato de los descriptores Existen diferentes maneras de separar el fichero inicial en diferentes descriptores. La primera decisi´ on podr´ıa separar seg´un si el formato de los cuatro va a ser igual o si por el contrario alguno de los descriptores podr´ıa tener m´ as peso que los otros. En esta primera separaci´ on hemos cre´ıdo conveniente trabajar con cuatro descriptores de las mismas caracter´ısticas. La decisi´ on viene dada por la intenci´ on desde el primer instante de crear cuatro descriptores independientes a partir de los cuales, en recepci´ on, se puedan regenerar en caso de tener p´ erdidas. Como las p´ erdidas rara vez son controladas creemos que otorgar m´ as peso a alguno de los descriptores no tendr´ıa sentido para este proyecto. Una vez decidido esto se plantean b´ asicamente tres opciones de submuestreo diferentes seg´un su patr´ on de diezmado: diezmado horizontal, diezmado vertical o diezmado en bloques 2×2. •Diezmado horizontal: Este diezmado se provocar´ıa si trabajaramos un submuestreo por columnas. Es decir si cada columna fuera derivada hacia un descriptor diferente. Con este m´ etodo obtendr´ıamos que por cada frame Mfilas ×Ncolumnas de v´ıdeo original obtendr´ıamos 4 descriptores de Mfilas ×Ncolumnas 4cada uno. •Diezmado vertical: Este ser´ıa el submuestreo opuesto al anterior, ya que con este m´ etodo cada descriptor perder´ıa 3 de cada 4 filas, pero manteniendo completo la sucesi´ on horizontal de cada una de estas filas. En este caso obtendr´ıamos que por cada frame Mfilas ×Ncolumnas de v´ıdeo original obtendr´ıamos 4 descriptores de Mfilas 4×Ncolumnas. •Diezmado en bloques: Este diezmado deber´ıa basarse en buscar la m´ınima separaci´ on entre p´ıxeles de los diferentes descriptores, y como en nuestro estudio hemos escogido cuatro descriptores los bloques ser´ an de 2×2. Este diezmado se produce despu´ es de un submuestreo por fase. Los bloques se realizan seg´un la posici´ on que ocupa el p´ıxel estudiado en un entorno de tantos cuadrantes como descriptores deseamos obtener, as´ı, en nuestro caso respecto a la posici´ on de un cuadrado de 2×2p´ıxeles. Matem´ aticamente dir´ıamos que lo evaluar´ıamos seg´un los resultados de Columna mod2yFila mod2, siguiendo despu´ es un patr´ on para, seg´un las coordenadas, enviar dicho p´ıxel a uno o a otro descriptor. Seg´un este modelo de muestreo obtendr´ıamos que por cada frame de Mfilas ×Ncolumnas dispondr´ıamos de 4 descriptores de Mfilas 2×Mcolumnas 2. 20”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” La instrucci´ on -pix fmt nos permite especificar el tipo de formato de p´ıxel, que como ya hemos comentado es un YUV444 planar. Este campo no es obligatorio, pero su ausencia, FFmpeg la interpreta como si estuvieramos trabajando con un YUV420 planar. A continuaci´ on se marca mediante la orden -i el fichero de entrada y sin ning´un tag el de salida, marcando las extensiones de cada fichero, ya que FFmpeg las utiliza para definir el formato. Para finalizar podemos utilizar la orden -debug para marcar las diferentes opciones que queremos que se nos a˜ nadan a la informaci´ on mostrada por la pantalla. Como el apartadode codificaci´ onno era el n´ucleo del trabajo sehan aceptado muchosdatos por defecto sin ser necesariamente los m´ as adecuados,como pueden ser los tama˜ nos de bloque o de GOP .En la bibliograf´ıa[11] se adjunta una p´ agina web desde donde se pueden extraer m´ as datos e instrucciones sobre este programa. Con esta instrucci´ on una salida por pantalla normal ser´ıa la siguiente: Figura 3.1: Pantalla de codificaci´ on de ffmpeg. La descodificaci´ ones mas sencillayaque la cabeceradel fichero mpeg ya contiene alguno de los datos que no necesitamos incluir, como por ejemplo el tama˜ no del v´ıdeo. Para descodificar, utilizaremos la siguiente instrucci´ on: ffmpeg -i out0.mpg -pix fmt yuv444p akiyo0 decoded.yuv De este modo, las instrucciones son iguales a las explicadas anteriormente y una salida normal ser´ıa la siguiente. Codificaci´ on de v´ıdeo 21 Figura 3.2: Pantalla de descodificaci´ on de ffmpeg. 22”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” Tratamiento de p´ erdidas de descriptor 23 CAP´ ITULO 4. TRATAMIENTO DE P´ ERDIDAS DE DESCRIPTOR Como hemos comentado anteriormente, una de las ventajas del submuestreo es que nos permite realizar una recuperaci´ on de los descriptores perdidos por errores de transmisi´ on. Es en este cap´ıtulo donde estudiaremos los diferentes m´ etodos dise˜ nados dentro de este estudio. La reconstrucci´ on es posible y eficaz si partimos de la idea de que existe una correlaci´ on de los datos dentro de la imagen analizada (comentado en el cap´ıtulo de Codificaci´ on). As´ı pues, en un v´ıdeo en el que cada p´ıxel tuviera un valor aleatorio y no dependiente de su entorno las reconstrucciones que aplicaremos ser´ıan in´utiles. Inicialmente existen dos tipos de t´ ecnicas de recuperaci´ on de errores. Las lineales y las no lineales. •Lineal:Seconsideraunat´ ecnicalinealaquellaque parareconstruirlos datos da˜ nados o perdidos, utiliza los mismos datos sin analizar el contenido de la imagen a restaurar. Para simplificarlo pod´ıamos decir que el p´ıxel a reconstruir se obtiene siempre a partir de la misa f´ ormula. •No lineal: Las t´ ecnicas no lineales son las que interpretan los p´ıxeles de los que si disponemos para tratar de mejorar el resultado de la reconstrucci´ on. As´ı pues Estas t´ ecnicas establecen unas condiciones sobre los datos poseidos para intentar predecir que valor es el m´ as adecuado para el fragmento analizado. Para la ejecuci´ on del proyecto se han implementado cuatro m´ etodos de reconstrucci´ on diferentes que explicaremos a continuaci´ on, a trav´ es de los cuales se puede observar tanto m´ etodos lineales cl´ asicos como m´ etodos no lineales. 4.1. Replicaci´ on del vecino m´ as cercano Near Neighbour Replication (NNR) o replicaci´ on del vecino m´ as cercano, es el primer m´ etodo de reconstrucci´ on que estudiaremos y como su propio nombre indica, se basa en repetir el valor del vecino m´ as cercano. Este es un m´ etodo muy sencillo con un coste de computador muy bajo, pero que puede ser efectivo si el n´umero de p´ıxeles a restaurar es muy peque˜ no o si el ´ındice de correlaci´ on entre p´ıxeles es muy alto. En este caso la p´ erdida de datos es variable,desde un descriptorhasta tres,es decir, entre 1 4y3 4de la informaci´ on total. As´ı pues, es una p´ erdida notable y, seg´un los cambios de luminancia del v´ıdeo la reconstrucci´ on podr´ıa ser poco acertada, pero a´un as´ı podemos asegurar que en el peor de los casos la imagen restaurada ser´ a igual que si ampliaramos al doble tanto el ancho como el alto del ´unico descriptor recibido. Hemos comentado ya que la p´ erdida de datos es variables en cuanto a cantidad pero si 24”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” sabemos la distribuci´ on de esa p´ erdida porque es la que nosotros hemos dise˜ nado en los descriptores. En esa distribuci´ on encontramos que en caso de perder un solo descriptor, cada p´ıxel perdido estar´ a rodeado de p´ıxeles si recibidos con lo que cualquier p´ıxel vecino ser´ıa correcto.El problema es el mismo cuando nos encontramos con dos descriptores perdidos, porque siempre se podr´ a obtener o el p´ıxel vecino en vertical o el p´ıxel vecino en horizontal. 4.2. Bilineal El segundo de los m´ etodos lineales implementado es el bilineal. Es un m´ etodo un poco m´ as complejo que el NNR pero contin´ua siendo muy intuitivo. La idea se basa en realizar una media de los p´ıxeles vecinos de los que se disponga. La interpolaci´ on bilineal utiliza la media de los valores de los p´ıxeles contiguos en vertical y en horizontal, siempre que sea posible, para reconstruir el p´ıxel analizado. Sobre la gr´ afica dir´ıamos que: Figura 4.1: Nomenclatura de la matriz de reconstrucci´ on. Y0=Y1+Y2+Y3+Y4 4 En este m´ etodo la p´ erdida de m´ as de un descriptor afecta m´ as que al m´ etodo anterior, pero como hemos dicho anteriormente se puede adaptar la media seleccionando solamente el n´umero de p´ıxeles posibles, de manera que para algunas de las combinaciones de dos descriptores perdidos y para la p´ erdida de tres descriptores se podr´ıa adaptar a utilizar solamente la pareja vertical o la horizontal. Y0=Y1+Y3 4 Otro m´ etodo muy parecido, no implementado en este trabajo, es el bic´ubico, que en lugar de los p´ıxeles vecinos en vertical o en horizontal, utiliza todo el contorno del p´ıxel analizado, consigueindo, a priori, un mejor resultado al ampliar el n´umero de muestras sobre las que se realizar´ a la media. Tratamiento de p´ erdidas de descriptor 25 4.3. Detecci´ on de ejes La detecci´ on de ejes es el primer m´ etodo no lineal de los cuatro utilizados. Con este m´ etodo se intenta interpretar la imagen para distinguir sobre que eje (vertical o horizontal) existe m´ as correlaci´ on y as´ı suponer que el valor obtenido sea m´ as preciso si evaluamos los valores de ese eje. Este m´ etodo debe contemplar tambi´ en, que la correlaci´ on sea semejante entre los dos ejes, o que por el contrario el contraste sea demasiado alto en ese p´ıxel evaluado. Para evaluar el p´ıxel, lo primero de todo es establecer los gradientes de cada eje, que se obtienen midiendo la diferencia en valor absoluto entre los p´ıxeles superior e inferior y izquierdo y derecho. Lo siguiente que deberiamos hacer es comprarlo con la diferencia que nosostros consideramos aceptable dentro de un eje. Este es el valor que determina si existe suficiente continuidad como para considerar que existe un eje, y que por tanto es importante darle m´ as peso a los p´ıxeles situados en esa direcci´ on.Tras diferentes pruebas sugeridas por las fuentes utilizadas [1] para muestras de 8 bits por p´ıxel el valor m´ as adecuado en im´ agenes naturales es de 50. Por ´ultimo, si tras las evaluaciones encontramos que ninguno de los ejes destaca sobre el otro se utiliza el m´ etodo de la interpolaci´ on bilineal En conjunto el valor del p´ıxel evaluado se obtiene de la siguiente manera: ∆H=|Y1−Y3| ∆V=|Y2−Y4| if(∆H<T)and (∆V>T) Y0=Y1+Y3 2 elseif(∆V<T)and (∆H>T) Y0=Y2+Y4 2 else Y0=Y1+Y2+Y3+Y4 4 4.4. N´umero variable de gradientes Continuando con el sistema de detecci´ on de ejes, podemos pensar en ampliar el n´umero de “ejes a detectar” para averiguar que p´ıxeles pueden tener m´ as correlaci´ on con el valor a reconstruir, creando as´ı m´ultiples gradientes. La f´ ormula propuesta en este trabajo consta de 8 gradientes, que se podr´ an asociar a las diferentes direcciones (norte, noreste, este, sureste, sur, suroeste, oeste y noroeste) y a la vez en el p´ıxel contiguo que se halla en esa misma direcci´ on. 26”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” Los ocho gradientes se eval´uan a partir de los 16 p´ıxeles m´ as cercanos. Despu´ es se comparan y se decide que direcciones tienen m´ as peso sobre el p´ıxel evaluado. A partir de esas direcciones elegidas decidimos tener en cuenta el valor del p´ıxel asociado al gradiente elegido. Es f´ acil pensar que el nivel de complejidad de este proceso es mayor que el de los anteriores, y que cuanto m´ as gradientes deseemos incluir m´ as memor´ıa necesitaremos para trabjar este m´ etodo. Figura 4.2: Nomenclatura de los p´ıxeles a reconstruir. Si entramos en el detalle de los calculos realizados, podemos expresar cada gradiente de la siguiente forma: ∆1=2|Y1−Y5|+0,5(|Y3−Y16|+|Y2−Y3|+|Y7−Y8|+|Y7−Y15|) ∆2=2|Y2−Y6|+|Y3−Y9|+|Y1−Y16| ∆3=2|Y3−Y7|+0,5(|Y1−Y2|+|Y1−Y9|+|Y4−Y5|+|Y5−Y10|) ∆4=2|Y4−Y8|+|Y3−Y10|+|Y5−Y11| ∆5=2|Y1−Y5|+0,5(|Y3−Y4|+|Y3−Y11|+|Y6−Y7|+|Y7−Y12|) ∆6=2|Y2−Y6|+|Y5−Y12|+|Y7−Y13| ∆7=2|Y3−Y7|+0,5(|Y1−Y8|+|Y1−Y14|+|Y5−Y6|+|Y5−Y13|) ∆8=2|Y4−Y8|+|Y1−Y15|+|Y7−Y14| Como se puede observar el conjunto de las diferencias entre las luminancias de cada p´ıxel tiene un alto grado de direccionalidad de forma que cada gradiente depende de la correlaci´ on de p´ıxeles en una direcci´ on del v´ıdeo determinado. Por ejemplo podemos ver que el gradiente 1 est´ a asociado con la direcci´ on oeste, el gradiente 2 con el noroeste, el 3 con el norte y as´ı sucesivamente. Una vez disponemos de los 8 valores del gradiente necesitamos decidir cuales de ellos son los ´utiles para reconstruir el valor de p´ıxel. En la soluci´ on propuesta, se obtiene dicho valor a trav´ es de la siguiente expresi´ on. Tratamiento de p´ erdidas de descriptor 27 T=1,5Min+0,5(Max−Min) Donde los valores Min y Max son, respectivamente, los gradientes con un valor m´ as bajo y m´ as alto. A partir de este valor consideraremos que esa direcci´ on no tiene suficiente correlaci´ on como para utilizarla en el c´ alculo de la reconstrucci´ on. De los gradientes restantes se recoge el valor de p´ıxel asociado, establecido como el p´ıxel asociado en la direcci´ on del gradiente, para realizar la media que acabar´ a otorgandonos el valor de p´ıxel reconstruido. 4.5. Implementaci´ on Insertamos aqu´ı los diagramas de las clases utilizadas para la reconstrucci´ on. Estos diagramas son las clases que se llaman para poder reconstruir el p´ıxel y todas ellas finalizan el proceso llamando a la clase ensamblador que es la encargada de montar el YuvPixel final que ser´ a el enviado a salvarse en fichero. Notar queen algunas clasesapareceel m´ etodocondiferentespar´ ametroscon laintenci´ on de poder tratarse seg´un el n´umero de descriptores perdidos. En muchos de ellos se a˜ nade un par´ ametro del campo integer que ser´ a el encargado de informar de la posici´ on de los descriptores que faltan. Adem´ as hay que notar que esta implementado para que los descriptores que se pasen como par´ ametros est´ en ordenados de la misma forma en que el ensamblador los delimit´ o. Adjuntamos ahora los diagramas. Figura 4.3: Diagrama de la clase ReconstructorNNR 28”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” Figura 4.4: Diagrama de la clase Reconstructorbili Figura 4.5: Diagrama de la clase Reconstructorejes Figura 4.6: Diagrama de la clase ReconstructorGrad Filtro Adaptativo 29 CAP´ ITULO 5. FILTRO ADAPTATIVO Tras las posibles reconstrucciones y el ensamblado de los diferentes descriptores podemos encontrarnos con un ligero efecto de granulado provocado, como ya hemos comentado anteriormente por la codificaci´ on de cada descriptor de forma independiente. En la fuente principal del proyecto, se defin´ıa el filtro adaptativo basado en una ´unica dimen- si´ on, pero desde el proyecto se ha intentado realizar un proceso parecido calculandolo el valor del filtro a trav´ es de los dos ejes, de modo que a continuaci´ on se explican los dos procesos. 5.1. filtro 1D La soluci´ on m´ as intuitiva es realizar un filtro que adapte este efecto de granulado suavizando los contrastes. El primer pensamiento es realizar alg´un proceso similar a alguno de los m´ etodos de reconstrucci´ on no lineales, e intentar detectar as´ı los cambios del v´ıdeo para tratarlos. Desde este trabajo se ha utilizado un m´ etodo parecido al de la detecci´ on de ejes, para detectar una posible direccionalidad de la imagen y as´ı reconstruir el byte tratado seg´un sus vecinos m´ as apropiados. Entonces podemos decir que el primer paso, igual que hemos comentado en la detecci´ on de ejes ser´ıa el siguiente: ∆H=|Y1−Y3| ∆V=|Y2−Y4| if(∆H<∆V) eje horizontal elseif(∆V≤∆H) eje vertical Hay que tener en cuenta que esto solamente sirve para saber sobre que eje apoyarnos en la reconstrucci´ on, y que hasta ahora no hemos calculado ning´un valor del p´ıxel reconstruido. Tras este c´ alculo, y para simplificar la explicaci´ on haci´ endola independiente del eje, podemos nombrar a los bytes utilizados como anterior (k-1) o posterior (k+1) y nos referiremos a los situados a izquierda y derecha en caso de utilizar el eje horizontal, o superior e inferior si finalmente trabajamos sobre el eje vertical. Cuando ya tenemos elegido el eje, tratamos el valor estudiado xkpara lograr obtener el valor del mismo p´ıxel pasado por el filtro ˆxk. En nuestro caso pr´ actico hemos decidido seguir la formula extraida del art´ıculo or´ıgen[1] que dice lo siguiente: ˆxk=a·xk−1+(1−2a)·xk+a·xk+1 36”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” pero si suponen un avance sobre los lineales, y que realmente se aproximan al valor del ensamblado de los cuatro descriptores. Tambi´ en podemos ver que pese a que los m´ etodoslineales,pueden reconstruirel v´ıdeo incluso con dosotres descriptores perdidos, la calidad baja de forma considerable. Siguiendo esta din´ amica y con intenci´ on de mostrar un seguimiento a la evoluci´ on de la PSNR se ha adjuntado la siguiente gr´ afica en la que se muestra la PSNR de cada uno de los 30 primeros frames de todas las situaciones anteriormente mostradas. Figura 6.2: Evoluci´ on de la PSNR durante 30 frames. Comentando esta imagen, podr´ıamos apreciar la mayor´ıa de apartados comentados en la gr´ afica de las PSNR medias. Se observa que por debajo de la l´ınea asociada al filtro de dos dimensiones se concentran diferentes medidas, haciendonos notar que la diferencia de calidad visual ser´ a relativamente peque˜ na. En esta imagen, tambi´ en se puede notar el efecto causado por la codificaci´ on MPEG. Se observa por ejemplo que la configuraci´ on del GOP es de 12 porque el valor de la PSNR de los frames correspondientes a las im´ agenes de tipo I es m´ as alto. Se puede ver como aparecen picos en los frames 1, 13 y 25 y como a partir de ellos entre la im´ agenes de tipo P y de tipo B se va perdiendo esa calidad, que se gana en ratio de compresi´ on. Pasemos ahora ha realizar comentarios m´ as espec´ıficos de las diferentes partes del proyecto. Evaluaci´ on del sistema 37 Figura 6.3: Imagen completa en grande y sus tres componentes al lado, luminancia a la izquierda y cromas a la derecha. Hablando del apartado del tratamiento de errores, nos fijamos en que para los diferentes v´ıdeos, los m´ etodos no lineales est´ an siempre por encima, aunque en ocasiones la diferencia con el bilineal es peque˜ na. Observamos tambi´ en que en ocasiones los resultados son mejores para los c´ alculos con numero variable de gradientes pero en otros es m´ as eficiente trabajar con la detecci´ on de ejes, dejando as´ı la comparaci´ on sin un claro vencedor, puesto que los dos consumen, por lo menos en nuestra implementaci´ on, un tiempo semejante. Podemos extraer conclusiones claras sobre el m´ etodo de la replicaci´ on del vecino m´ as cercano, que, si bien es cierto que es el m´ etodo m´ as barato en cuanto a recursos y tiempo, es el que ofrece una peor calidad. En el apartado de los filtros, hemos establecido un par´ ametro variable, llamado a. Hemos comentado que es el encargado de ponderarla importancia otorgada a los p´ıxeles vecinos respecto al p´ıxel evaluado. Desde el art´ıculo origen de este proyecto [1], suger´ıan un valor de 0.25, realizando las pruebas con el fichero foreman. En esta implementaci´ on, hemos decidido comprobar dicho c´ alculo y del mismo modo realizarlo con el filtro 2D con lo siguientes resultados: Valor de a PSNR (dB) 0.1 45.48598814158465 0.15 45.491651392477856 0.2 45.49425451732951 0.25 45.494984593311976 0.3 45.49029358906903 0.35 45.483714356819014 0.4 45.47761714466331 0.45 45.4650155230211 Cuadro 6.1: Tabla comparativa del filtro de 1D. 38”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” Esta es la tabla de resultados del filtro de una dimensi´ on, y el resultado es el esperado puesto que cunado substituimos el valor de a por 0.25 se obtiene la m´ axima eficiencia del filtro sobre ese tipo de v´ıdeo. Cuando realizamos el mismo proceso sobe el filtro de dos dimensiones los resultados son los siguientes. Valor de a PSNR (dB) 0.05 45.48394465108304 0.1 45.49063590190819 0.15 45.494905939977066 0.2 45.49668041337373 0.25 45.494320424000996 Cuadro 6.2: Tabla comparativa del filtro de 2D. Como podemos comprobar el mejor resultado lo conseguimos cunado aplicamos un valor de a igual a 0.2. Si evaluamos el valor de 0.2 nos damos cuenta que representa un valor sobre el cual la importancia de todos los p´ıxeles es equitativa. Este dato es contrario al resultado obtenido sobre el filtro de una dimensi´ on donde el valor de 0.25 representa que el p´ıxel evaluado tiene el doble de peso que los otros. Hablando sobre el resultado visual de estos filtro hemos comentado que su principal funci´ on es evitar el granulado que en ocasiones causa la t´ ecnica del MDC. El ejemplo m´ as claro que nos hemos encontrado es en el v´ıdeo del bus, donde se puede observar que tal como ensamblamos se pierde el efecto de continuidad de un color dando como resultado una superficie no continua. Tras aplicar el filtro, esa sensaci´ on desaparece como podemos ver en la imagen insertada a continuaci´ on. Figura 6.4: Comparaci´ on antes y despu´ es de el filtro, efecto granulado. Evaluaci´ on del sistema 39 Para terminar los resultados experimentales podemos estudiar, al igual que para el tratamiento de errores, la PSNR media de los diferentes filtros, obteniendo la siguiente gr´ afica. Figura 6.5: Imagen completa en grande y sus tres componentes al lado, luminancia a la izquierda y cromas a la derecha. En esta gr´ afica podemos ver como el resultado depende mucho del v´ıdeo tratado y as´ı como para el v´ıdeo del bus, el resultado del filtro 2d es muy notable en el v´ıdeo de foreman y en el del molino con flores el filtro no mejora pr´ acticamente nada. El caso contrario es el el v´ıdeo de akiyo, donde los filtros empeoran, especialmente el de dos dimensiones. Es probable que ese ´ultimo problema sea causado porque la codificaci´ on a mpeg ya resulta muy efectiva, porque como ya hemos comentado, los cambios temporales de un presentador de noticias son m´ınimos y por lo tanto las p´ erdidas de la codificaci´ on menores. As´ı pues cuando pasamos el filtro para suavizar los contrastes perdemos parte de la informaci´ on que si estaba bien codificada. Esta teor´ıa gana peso cuando comparamos el nivel de la PSNR que en este caso es muy alta, y por lo tanto, las p´ erdidas de codificaci´ on han sido menores. 40”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” Conclusiones 41 CAP´ ITULO 7. CONCLUSIONES Una vez realizado todo el proceso de implementaci´ on es el momento de establecer algunas conclusiones. La primera de ellas, sobre las t´ ecnicas de MDC, es probablemente una de las m´ as ´utiles, y es que, mientras se trabaja con los descriptores, se obtiene un v´ıdeo completo de una resoluci´ on menor, pero podr´ıa ser una calidad aceptable si contaramos con algunos dispositivos. Dicho esto, y pensando m´ as en la comparaci´ on con los m´ etodos tradicionales, el de codificaci´ on directa y el MDC temporal, podemos decir que se han cumplido las expectativas, y que las caracter´ısticas te´ oricas se han cumplido en un alto grado, si bien es cierto que se podr´ıa esperar una p´ erdida de calidad menor entre el MDC espacial y los otros tipos de codificaciones. Esta diferencia, que en alg´un flujo de v´ıdeo estudiado resulta de dimensiones notables, como hemos visto en la figura 6.5, supone el mayor inconveniente del sistema implementado. Se ha notado que en la mayor´ıa de las pruebas realizadas esta diferencia es mayor cuando menor es la PSNR. Podr´ıamos decir entonces, que cuando la codificaci´ on comporta p´ erdidas de calidad sensibles, el m´ etodo de Codificaci´ on por Multiples Descriptores supone recibir un flujo todav´ıa de peor calidad. Como ya hemos dicho antes, esta calidad sigue siendo aceptable en situaciones normales, pero a la vez limita este sistema para cierto tipo de usos. Una posible soluci´ on para llevar este tipo de sistema a otros ´ ambitos ser´ıa cambiar el codificador por alg´un otro con menos p´ erdidas. Otro aspecto a mencionar en estas conclusiones, es la gran diferencia de resultados seg´un el v´ıdeo estudiado. Estas diferencias hacen que los m´ etodos de tratamiento de errores var´ıen su resultado, ofrenciendo en algunos momentos un resultado ´ optimo y en otros un resultado mejorable. Es el caso del reconstructor de gradientes, que seg´un el art´ıculo y de forma te´ orica, ofrec´ıa una mejor calidad de reconstrucci´ on gracias a utilizar m´ as p´ıxeles situados en el entorno de los p´ıxeles evaluados. En la realidad, este efecto no es tan perfecto, y se ve superado por un m´ etodo como el de detecci´ on de ejes, que trabaja solamente con cuatro p´ıxeles vecinos. Encontramos una situaci´ on semejante con el filtro sugerido[1], puesto que los niveles comentados inicialmente en el art´ıculo[1], solamente se cumplen en determinados momentos, quedando lejanos en otros o incluso en v´ıdeos muy est´ aticos y con PSNR muy alta puede suponer una p´ erdida de calidad. Este efecto se puede ver en la gr´ afica 6.5 si miramos la relaci´ on obtenida para el v´ıdeo de Akiyo. Respecto al filtrado, consideramos que la opci´ on implementada desde este proyeto como un filtro adaptativo de dos dimensiones, supone una peque˜ na mejora respecto al de una dimensi´ on en muchos de los casos estudiados. De este modo, podemos decir que dicho filtro supone una propuesta considerable y positiva. Comparando los resultados con los nombrados en el art´ıculo[1], podemos concluir que la implementaci´ on ha resultado satisfactoria, puesto que se ha logrado trabajar en m´ argenes 42”Implementaci´ on de un sistema de codificaci´ on de v´ıdeo con descripci´ on m´ultiple mediante submuestreo espacial polifase” parecidos, teniendo en cuenta el cambio de codifificador. De forma m´ as personal, me gustar´ıa hacer referencia a L ATEX. Debo decir que era mi primer contacto con este lenguaje, y que pese a que en los inicios parec´ıa lento y complejo, me ha resultado una herramienta ´util y potente, tanto a la hora de manejar f´ ormulas matem´ aticas como a la hora de estructurar los campos de este trabajo. As´ı pues considero un acierto esta elecci´ on. Con estos datos, podemos considerar este proyecto, como una evaluaci´ on a un sistema MDC espacial, que en t´ erminos generales se muestra dentro de unos m´ argenes aceptables, y se presenta de esta forma como un m´ etodo interesante. Este m´ etodo es todav´ıa m´ as competitivo en escenarios poco estables, donde sus ventajas son m´ as amplias sobre la de sus ”competidores“. BIBLIOGRAF´ IA 43 BIBLIOGRAF´ IA [1] Polyphase spatial subsampling m´ultiple description coding of v´ıdeo streams with h264 Bernardini, R.;Durigon, M.;Rinaldo, R.; Celetto, L.; Vitali, A.; Image Processing, 2004. ICIP 2004. IEEE International Conference on Image Processing (ICIP) Object Identifier 0-7803-8554-3 [2] Error concealment for slice group based m´ultiple description v´ıdeo coding Wang, D.; Canagarajah, N.; Agrafiotis, D.; Bull, D.; Image Processing, 2005. ICIP 2005. IEEE International Conference on Volume 1, 11-14 Sept. 2005 Page(s):I - 769-72 Digital Object Identifier 10.1109/ICIP.2005.1529864 [3] MDC and path diversity in video streaming Somasundaram, S.; Subbalakshmi, K.P.; Uma, R.N.; Image Processing, 2004. ICIP ’04. 2004 International Conference on Volume 5, 24-27 Oct. 2004 Page(s):3153 - 3156 Vol. 5 Digital Object Identifier 10.1109/ICIP.2004.1421782 [4] Multiple description coding for Internet video streaming Pereira, M.; Antonini, M.; Barlaud, M.; Image Processing, 2003. ICIP 2003. Proceedings. 2003 International Conference on Volume 3, 14-17 Sept. 2003 Page(s):III - 281-4 vol.2 Digital Object Identifier 10.1109/ICIP.2003.1247236 [5] Error Concealment for Frame Losses in MDC Mengyao Ma; Au, O.C.; Liwei Guo; Chan, S.-H.G.; Wong, P.H.W.; Multimedia, IEEE Transactions on Volume 10, Issue 8, Dec. 2008 Page(s):1638 - 1647 Digital Object Identifier 10.1109/TMM.2008.2007282 [6] Multiple description coding: compression meets the network Goyal, V.K.; Signal Processing Magazine, IEEE Volume 18, Issue 5, Sept. 2001 Page(s):74 - 93 Digital Object Identifier 10.1109/79.952806 [7] http://cnx.org/content/m11144/latest/ [8] http://wikipedia.org [9] http://www.fourcc.org/ [10] http://www.cinit.org.mx/articulos.php [11] http://blog.media-scientific.com/mit-ffmpeg-videos-konvertieren,