Resumen

Anuncio
Resumen
Se trata del estudio del estándar de alta definición H.264 así como de sus aplicaciones
e implementaciones basadas en software libre desarrolladas en C++ o en JAVA.
El estándar H.264, es una norma que define un códec de vídeo de alta compresión,
capaz de proporcionar una buena calidad de imagen con bitrates notablemente inferiores a los
estándares previos. Actualmente está implementado por empresas y organizaciones para
aplicaciones propias, por ello se puede llegar a conseguir el reto que se propusieron desde las
instituciones que lo desarrollaron, ITU-T Video Coding Experts Group (VCEG) e ISO Motion
Picture Experts Group (MPEG): Conseguir un estándar de codificación de video
internacional eficiente.
En primer lugar, se han explicado conceptos generales del mundo de la imagen digital,
tales como la percepción de color, la descomposición del mismo en los diferentes sistemas, la
codificación en todas sus fases y el término códec.
A continuación se ha realizado un repaso de las unidades que se definen en el
estándar, tales como los diferentes componentes del color de una imagen: luma, array que se
refiere a la intensidad con la que se da un color (luminiscencia) y chroma, 2 arrays que definen
los diferentes valores de crominancia (Cr para rojo y Cb para azul). Asimismo se habla también
de los diferentes perfiles de la aplicación. También se ha especificado los tipos de división en
macrobloques, unidad con la que se conoce a una agrupación de bits que puede variar en este
estándar, dependiendo de la forma en la que se procesen los datos.
De esto precisamente se habla en los siguientes apartados, del proceso de codificación
del video, que se compone de las siguientes fases:
•
Predicción. Que puede realizarse de dos maneras, intra o inter, dependiendo de si la
predicción se basa en el espacio o en el tiempo.
•
Transformación: para lo que se ha explicado la DCT (Transformada del Coseno
Discreto).
•
Cuantificación: proceso que se encuentra dentro de la DCT.
•
Codificación basada en entropía: para lo que se ha expuesto las soluciones que plantea
el estándar:
•
o
Variable-Length Coding (VLC)
o
Context-based adaptive variable length coding (CAVLC)
o
Codificación Aritmética y Adaptativa basada en el contexto (CABAC)
Filtros: explicado debido a que es una de las ventajas del estándar: el suavizado de
bloques.
A continuación se ha decidido realizar un estudio sobre comparativas, en primer lugar
de estándares previos, y en segundo lugar de algunas implementaciones del estándar, libres o
no, en cuanto al rendimiento y otras características.
Para dar un enfoque más práctico, se han escogido dos aplicaciones con este estándar
que se hayan implementado con éxito, para ello se ha elegido la videovigilancia y la
videoconferencia, explicando para cada una de ellas, el por qué resulta ventajoso el H.264
frente a los otros.
Ya para finalizar, se ha realizado una implementación por la metodología Extreme
Programming utilizando la librería FFMPEG y las aplicaciones que vienen con ella, así como las
opciones que tienen para el vídeo y demás. Se trata de una aplicación sencilla que compara
dos imágenes de video de dos protocolos diferentes, realiza una conversión de formatos o
muestra las características de un determinado video.
En mi opinión, el H.264 es un firme candidato a convertirse en el más extendido,
aunque aún queden unas fases por definir, como puede ser la propia codificación, debido a la
cantidad de aplicaciones que están realizando su implementación propia.
Por último se ha realizado un plan de Gestión de Proyecto que se adjunta en el Anexo
A.
Abstract
This project deals with a research about the H.264 high definition standard, as well as
its applications and implementations based on free software, and developed in C++ or JAVA.
The H.264 standard is a regulation which defines a high compression video codec that
can provide a good image quality with considerably lower bit rates than the previous standards.
Nowadays, it is implemented by companies and organizations for their own
applications. That is why the challenge from the original designer groups, ITU-T Video Coding
Experts Group (VCEG) and ISO Motion Picture Experts Group (MPEG), is possible to be
achieved: the creation of an efficient and international video codec.
A review of the units defined on the standard is going to be introduced, such as the
different components of a color in a given image: luma, array related to the intensity of a color
(luminance) and chroma, two arrays which define the different chrominance values (Cr for red,
and Cb for blue). The types of division have also been specified in macroblocks, which refers to
a group of bits that can vary on this standard depending on the way to process the data.
Those issues are just treated in the following sections based on the video codification
process, which consists of the following stages:
•
Prediction. It can be made in two different ways, intra or inter, depending on the
prediction was based on the space or on the time.
•
Transformation. It is based on the Discrete Cosine Transform (or DCT).
•
Quantization. This processed is included in the DCT.
•
Entropy-based codification. For which the proposed solution in the standard are
introduced.
•
o
Variable-Length Coding (VLC).
o
Context-based adaptive variable length coding (CAVLC).
o
Context-based Adaptive Binary Arithmetic Coding (CABAC).
Filtering. Explained, because the block smooth is one of the standard advantages.
Then, a research about comparatives between previous standards, and also between
different implementations, which can be free or not, related to several characteristics such as
performance and others.
In order to obtain a practical point of view, two successfully implemented applications
of this standard were chosen: videovigilance and videoconference. The reasons of their
advantages with respect to other implementations without using H.264 are explained in detail.
Finally, an implementation based on Extreme Programming methodology has been
developed, using FFMPEG library and its applications, as well as the options for video and
other possibilities. It is a simple application that compares two different video images from two
different protocols, makes a format conversion or shows the characteristics of a certain video.
In addition, the different profiles of the applications are mentioned.
Regarding H.2654 standard, in my opinion, it is a solid candidate to become the most
extended video standard, despite the fact that there still are some stages to be defined, such as
the proper codification. That could be due to the huge number of different applications which
have their own implementations.
At the end of the document, a Project Management Plan was developed, and it is
introduced in the Appendix A.
Descargar