ES2371188T3 - TRANSCODER DIRECTED BY THE CONTENT ORGANIZING THE MULTIMEDIA TRANSCODING USING CONTENT INFORMATION. - Google Patents

TRANSCODER DIRECTED BY THE CONTENT ORGANIZING THE MULTIMEDIA TRANSCODING USING CONTENT INFORMATION. Download PDF

Info

Publication number
ES2371188T3
ES2371188T3 ES06804241T ES06804241T ES2371188T3 ES 2371188 T3 ES2371188 T3 ES 2371188T3 ES 06804241 T ES06804241 T ES 06804241T ES 06804241 T ES06804241 T ES 06804241T ES 2371188 T3 ES2371188 T3 ES 2371188T3
Authority
ES
Spain
Prior art keywords
data
multimedia data
coding
layer
data layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06804241T
Other languages
Spanish (es)
Inventor
Vijayalakshmi R. Raveendran
Gordon Walker
Tao Tian
Phanikumar Bhamidipati
Fang Shi
Peisong Chen
Sitaraman Ganapathy Subramania
Seyfullah Halit Oguz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2371188T3 publication Critical patent/ES2371188T3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

Un procedimiento de procesamiento de datos multimedia que comprende: la recepción de datos multimedia y la codificación de los datos multimedia (361) en una primera capa de datos codificados y una segunda capa de datos codificados en base al contenido de los datos multimedia, estando configurada la primera capa de datos codificados para ser codificable de modo independiente de la segunda capa de datos codificados y en el que la primera capa de datos se codifica con una calidad menor que la segunda capa de datos, caracterizado porque el procedimiento comprende: la codificación de la primera capa de datos mediante las etapas de: transformación de los coeficientes de error residuales de la primera capa de datos, siendo el error residual la diferencia entre los datos multimedia que se están codificando (361) y el macro bloque de ajuste mejor de un cuadro de referencia temporal; el cálculo de un coeficiente de la primera de capa de datos, C'base, a partir de los coeficientes de error residual transformados, Cbase y la cuantificación del coeficiente de la primera capa de datos, C'base, mediante un primer parámetro de cuantificación, Qb; y la codificación de la segunda capa de datos mediante las etapas de: la transformación de los coeficientes de error residual en la segunda capa de datos, siendo el error residual la diferencia entre los datos multimedia que se están codificando (361) y el macro bloque de ajuste mejor de un cuadro de referencia temporal; el cálculo de un coeficiente de la segunda capa de de datos, C'mej, a partir de los coeficientes de error residual transformados, Cmej y la cuantificación del coeficiente de la segunda capa de datos, C'mej, mediante un segundo parámetro de cuantificación, en el que: - 0 , en caso contrario C'mej = Cmej - Qb -1 (Qb (C'base)) en la que Qb -1 es el parámetro de descuantificación de la primera capa de datos y en el que el primer parámetro de cuantificación se ajusta para ser más alto que el segundo parámetro de cuantificación, de modo que la primera capa de datos codificados se puede decodificar para formar unos datos multimedia que se pueden visualizar si la segunda capa de datos codificada no está disponible y la primera capa de datos codificados y la segunda capa de datos codificados se pueden decodificar en combinación para formar unos datos multimedia que se pueden visualizar si tanto la primera capa de datos codificada como la segunda capa de datos codificada están disponibles.A multimedia data processing method comprising: the reception of multimedia data and the coding of multimedia data (361) in a first layer of encoded data and a second layer of encoded data based on the content of the multimedia data, being configured the first coded data layer to be encodable independently of the second coded data layer and in which the first data layer is coded with a lower quality than the second data layer, characterized in that the method comprises: the coding of the first data layer through the steps of: transformation of the residual error coefficients of the first data layer, the residual error being the difference between the multimedia data being encoded (361) and the best fit macro block of a temporary reference chart; the calculation of a coefficient of the first data layer, C'base, from the transformed residual error coefficients, Cbase and the quantification of the coefficient of the first data layer, C'base, by a first quantification parameter , Qb; and the coding of the second data layer through the steps of: the transformation of the residual error coefficients in the second data layer, the residual error being the difference between the multimedia data being encoded (361) and the macro block best fit of a temporary reference chart; the calculation of a coefficient of the second data layer, C'mej, from the transformed residual error coefficients, Cmej and the quantification of the coefficient of the second data layer, C'mej, by a second quantification parameter , in which: - 0, otherwise C'mej = Cmej - Qb -1 (Qb (C'base)) in which Qb -1 is the quantification parameter of the first data layer and in which the First quantization parameter is set to be higher than the second quantification parameter, so that the first layer of encoded data can be decoded to form multimedia data that can be displayed if the second encoded data layer is not available and the first coded data layer and second coded data layer can be decoded in combination to form multimedia data that can be displayed if both the first coded data layer and the second coded data layer are arranged onibles.

Description

Transcodificador dirigido por el contenido que organiza la transcodificación multimedia usando información del contenido Transcoder driven by content that organizes multimedia transcoding using content information

Reivindicación de la prioridad a tenor de 35 U.S.C § 119 Claim of priority under 35 U.S.C § 119

La presente solicitud de Patente reivindica la prioridad respecto a (a) Solicitud de Patente Provisional Nº 60/721.416 titulada “A VIDEO TRANSCODER FOR REAL-TIME STREAMING AND MOBILE BROADCAST APPLICATIONS” presentada el 27 de septiembre de 2005, (b) Solicitud de Patente Provisional Nº 60/789.377 titulada “A VIDEO TRANSCODER FOR REAL-TIME STREAMING AND MOBILE BROADCAST APPLICATIONS” presentada el 4 de abril de 2006, (c) Solicitud Provisional Nº 60/727.643 titulada “METHOD AND APPARATUS FOR SPATIO-TEMPORAL DEINTERLACING AIDED BY MOTION COMPENSATION FOR FIELD-BASED VIDEO” presentada el 17 de octubre de 2005, (d) Solicitud Provisional Nº 60/727.644 titulada “METHOD AND APPARATUS FOR SHOT DETECTION IN VIDEO STREAMING” presentada el 17 de octubre de 2005, (e) Solicitud Provisional Nº 60/727.640 titulada “A METHOD AND APPARATUS FOR USING AN ADAPTIVE GOP STRUCTURE IN VIDEO STREAMING” presentada el 17 de octubre de 2005, (f) Solicitud Provisional Nº 60/730.145 titulada “INVERSE TELECINE ALGORITHM BASED ON STATE MACHINE” presentada el 24 de octubre de 2005, and (g) Solicitud Provisional Nº 60/789.048 titulada “SPATIO-TEMPORAL DEINTERLACING AIDED BY MOTION COMPENSATION FOR FIELD- BASED MULTIMEDIA DATA” presentada el 3 de abril de 2006. Todas las siete solicitudes de patente provisional están asignadas al asignatario de la presente. This patent application claims priority over (a) Provisional Patent Application No. 60 / 721,416 entitled “A VIDEO TRANSCODER FOR REAL-TIME STREAMING AND MOBILE BROADCAST APPLICATIONS” filed on September 27, 2005, (b) Patent Application Provisional No. 60 / 789,377 entitled “A VIDEO TRANSCODER FOR REAL-TIME STREAMING AND MOBILE BROADCAST APPLICATIONS” filed on April 4, 2006, (c) Provisional Application No. 60 / 727,643 entitled “METHOD AND APPARATUS FOR SPATIO-TEMPORAL DEINTERLACING AIDED BY MOTION COMPENSATION FOR FIELD-BASED VIDEO ”filed on October 17, 2005, (d) Provisional Application No. 60 / 727,644 entitled“ METHOD AND APPARATUS FOR SHOT DETECTION IN VIDEO STREAMING ”filed on October 17, 2005, (e) Provisional Application No. 60 / 727,640 entitled “A METHOD AND APPARATUS FOR USING AN ADAPTIVE GOP STRUCTURE IN VIDEO STREAMING” filed on October 17, 2005, (f) Provisional Application No. 60 / 730,145 entitled a “INVERSE TELECINE ALGORITHM BASED ON STATE MACHINE” filed on October 24, 2005, and (g) Provisional Application No. 60 / 789.048 entitled “SPATIO-TEMPORAL DEINTERLACING AIDED BY MOTION COMPENSATION FOR FIELD- BASED MULTIMEDIA DATA” filed on April 3 of 2006. All seven provisional patent applications are assigned to the assignee hereof.

Referencia de solicitudes en tramitación junto con la presente para la Patente Reference of applications being processed together with this one for the Patent

La presente Solicitud de Patente se relaciona con la Solicitud de Patente de Estados Unidos Nº 11/373.577 titulada “CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING” presentada el 10 de marzo de 2006, transferida al cesionario de la presente. This Patent Application relates to United States Patent Application No. 11 / 373,577 entitled "CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING" filed on March 10, 2006, transferred to the assignee hereof.

Antecedentes Background

Campo Countryside

La presente solicitud se dirige a aparatos y procedimientos para la transcodificación de video de datos de video para su transmisión continua en tiempo real y, más particularmente, para la transcodificación de datos de video para la transmisión continua en tiempo real en aplicaciones de emisiones para móviles. The present application is directed to devices and procedures for the transcoding of video of video data for its continuous transmission in real time and, more particularly, for the transcoding of video data for continuous transmission in real time in mobile broadcast applications .

Antecedentes Background

La compresión de video eficiente es útil en muchas aplicaciones multimedia tal como la transmisión continua de video inalámbrica y la videotelefonía, debido a los limitados recursos en ancho de banda y la variabilidad del ancho de banda disponible. Ciertas normas de codificación de video, tales como la MPEG-4 (ISO/IEC), H.264 (ITU) o codificaciones de video similares proporcionan una codificación de alta eficiencia muy adecuada para aplicaciones tales como las emisiones inalámbricas. Algunos datos multimedia, por ejemplo, las presentaciones de televisión digital, se codifican en general de acuerdo con otras normas tales como la MPEG-2. En consecuencia, se usan transcodificadores para transcodificar o convertir los datos multimedia codificados de acuerdo con una norma (por ejemplo, MPEG-2) en otra norma (por ejemplo, H.264) previamente a la emisión inalámbrica. Efficient video compression is useful in many multimedia applications such as continuous wireless video transmission and video telephony, due to limited bandwidth resources and available bandwidth variability. Certain video coding standards, such as MPEG-4 (ISO / IEC), H.264 (ITU) or similar video encodings provide highly efficient encoding very suitable for applications such as wireless broadcasts. Some multimedia data, for example, digital television presentations, are generally coded according to other standards such as MPEG-2. Accordingly, transcoders are used to transcode or convert the encoded multimedia data in accordance with one standard (for example, MPEG-2) into another standard (for example, H.264) prior to wireless broadcast.

Las mejoras en los códec optimizados en velocidad podrían ofrecer ventajas en la resistencia frente a errores, recuperación de errores y escalabilidad. Más aún, el uso de información determinada a partir de los datos multimedia en sí podría ofrecer también mejoras adicionales para la codificación, incluyendo la resistencia frente a errores, recuperación de errores y escalabilidad. Mihaela van der Schaar et col. “A Hybrid Temporal SNR Fine-Granular Scalability for Internet Video”, IEEE Transactions on circuits and systems for video technology, IEEE Service Center, Piscataway, NJ, EE.UU., vol. 11, nº 3, marzo de 2001 desvela un marco de codificación de video escalable y novedoso y un procedimiento de compresión correspondiente para la transmisión continua de video en Internet. En consecuencia, existe una necesidad de un transcodificador que proporcione un procesamiento y compresión de datos multimedia altamente eficiente que use la información determinada a partir del dato multimedia en sí, sea escalable y sea resistente frente a errores para su uso en muchas aplicaciones de datos multimedia que incluyen la emisión para móviles de información multimedia en transmisión continua. Improvements in speed-optimized codecs could offer advantages in resistance to errors, error recovery and scalability. Moreover, the use of information determined from multimedia data itself could also offer additional improvements for coding, including resistance to errors, error recovery and scalability. Mihaela van der Schaar et al. “A Hybrid Temporal SNR Fine-Granular Scalability for Internet Video,” IEEE Transactions on circuits and systems for video technology, IEEE Service Center, Piscataway, NJ, USA, vol. 11, nº 3, March 2001 reveals a scalable and innovative video coding framework and a corresponding compression procedure for the continuous transmission of video on the Internet. Consequently, there is a need for a transcoder that provides highly efficient multimedia data processing and compression that uses the information determined from the multimedia data itself, is scalable and is resistant to errors for use in many multimedia data applications. which include the broadcast of multimedia information in continuous transmission for mobile phones.

Sumario Summary

Cada parte del contenido inventivo basada en aparatos y procedimientos de transcodificación descrita e ilustrada tiene varios aspectos, ninguno de los cuales es responsable por sí solo de sus atributos deseables. Sin limitar el ámbito de esta divulgación, se explicarán ahora brevemente las características más relevantes. Después de considerar esta explicación y particularmente después de la lectura de la sección titulada “Descripción detallada” se entenderá como las características de esta transcodificación dirigida por el contenido proporciona mejoras para los aparatos y procedimientos de procesamiento de datos multimedia. Each part of the inventive content based on transcoding apparatus and procedures described and illustrated has several aspects, none of which is responsible for its desirable attributes alone. Without limiting the scope of this disclosure, the most relevant features will now be briefly explained. After considering this explanation and particularly after reading the section entitled "Detailed description" it will be understood how the characteristics of this content-driven transcoding provides improvements for the multimedia data processing apparatus and procedures.

55 E06804241 04-11-2011 55 E06804241 04-11-2011

Los aspectos inventivos descritos en el presente documento se exponen en las reivindicaciones adjuntas en relación con el uso de información de contenido para varios procedimientos de codificación de datos multimedia y en varios módulos o componentes de un codificador, por ejemplo, un codificador usado en un transcodificador. Un transcodificador puede organizar la transcodificación de datos multimedia usando información del contenido. La información del contenido se puede recibir desde otra fuente, por ejemplo, metadatos que se reciben con el video. El transcodificador se puede configurar para generar información de contenido por medio de una variedad de diferentes operaciones de procesamiento. En algunos aspectos, el transcodificador genera una clasificación del contenido de los datos multimedia, que se usa a continuación en uno o más procesos de codificación. En algunos aspectos, un transcodificador dirigido por el contenido, puede determinar la información de contenido espacial y temporal de los datos multimedia y usar la información del contenido para una codificación de calidad uniforme relacionada con el contenido a través de los canales y clasificación del contenido en base a la compresión/asignación de bits. The inventive aspects described herein are set forth in the appended claims in relation to the use of content information for various multimedia data encoding procedures and in various modules or components of an encoder, for example, an encoder used in a transcoder. . A transcoder can organize the transcoding of multimedia data using content information. Content information can be received from another source, for example, metadata that is received with the video. The transcoder can be configured to generate content information through a variety of different processing operations. In some aspects, the transcoder generates a classification of the multimedia data content, which is then used in one or more encoding processes. In some aspects, a content driven transcoder can determine the spatial and temporal content information of the multimedia data and use the content information for a uniform quality coding related to the content through the channels and classification of the content into basis for compression / bit allocation.

En algunos aspectos, se obtiene o calcula la información del contenido (por ejemplo, metadatos, métrica del contenido y/o una clasificación del contenido) de los datos multimedia y se proporciona a continuación a los componentes del transcodificador para su uso en el procesamiento de los datos multimedia para su codificación. Por ejemplo, un preprocesador puede usar cierta información del contenido para la detección de cambio de escena, la realización de telecine inverso (“IVTC”), desentrelazado, compensación de movimiento y supresión de ruido (por ejemplo transformada de ondícula 2D) y reducción del ruido espacio temporal, por ejemplo eliminación de artificiosidades, desanillado, supresión de bloques y/o supresión de ruido. En algunos aspectos, un preprocesador puede también usar la información de contenido para una reducción del muestreo, por ejemplo determinando las áreas “seguras” y de “manejo de la acción” apropiadas cuando se reduce el muestreo desde la definición estándar (SD) a la de un Cuarto de Adaptador Gráfico de Video (QVGA). In some aspects, the content information (e.g., metadata, content metric and / or a content classification) of the multimedia data is obtained or calculated and then provided to the transcoder components for use in the processing of Multimedia data for coding. For example, a preprocessor can use certain content information for scene change detection, reverse telecine realization ("IVTC"), deinterlacing, motion compensation and noise suppression (eg 2D waveform transform) and reduction of the temporary space noise, for example elimination of artificialities, de-plating, block suppression and / or noise suppression. In some aspects, a preprocessor can also use the content information for a reduction in sampling, for example by determining the appropriate "safe" and "action management" areas when sampling is reduced from the standard definition (SD) to the of a Video Graphic Adapter Room (QVGA).

En algunos aspectos, un codificador incluye un módulo de clasificación del contenido que se configura para calcular la información del contenido. El codificador puede usar la clasificación del contenido para un control de la tasa de bits (por ejemplo asignación de bits) en la determinación de los parámetros de cuantificación (QP) para cada MB, para estimación del movimiento, por ejemplo, realizando una estimación de movimiento (ME) en el color, realizando una predicción del vector de movimiento (MV), escalabilidad al proporcionar una capa base y una capa de mejora y para resistencia frente a errores mediante el uso de la clasificación del contenido para afectar a la jerarquía de precisión y a esquemas de resistencia frente a errores que incluyen, por ejemplo refresco intra adaptativo, procesos de eliminación de límites y proporcionar datos de cuadro I redundantes en una capa de mejora. En algunos aspectos, el transcodificador usa la clasificación del contenido en coordinación con un multiplexador de datos para el mantenimiento de la calidad óptima de los datos multimedia a través de los canales. En algunos aspectos, el codificador puede usar información de clasificación del contenido para forzar a que aparezcan periódicamente cuatros I en los datos codificados para permitir una conmutación de canal rápida. Tales implementaciones pueden hacer uso también de bloques I que se pueden requerir en los datos codificados para resistencia frente a errores, tal como la conmutación de acceso aleatorio y la resistencia frente a errores (basada en, por ejemplo, la clasificación del contenido) se pueden combinar de modo efectivo a través de la jerarquía de predicción para mejorar la eficiencia de la codificación mientras aumenta la robustez frente a los errores. In some aspects, an encoder includes a content classification module that is configured to calculate the content information. The encoder can use the content classification for a bit rate control (for example bit allocation) in the determination of the quantification parameters (QP) for each MB, for motion estimation, for example, by estimating movement (ME) in color, making a prediction of the motion vector (MV), scalability by providing a base layer and an improvement layer and for resistance to errors by using the content classification to affect the hierarchy of precision and resistance to error schemes that include, for example, intra-adaptive refreshment, boundary elimination processes and providing redundant frame I data in an improvement layer. In some aspects, the transcoder uses the classification of the content in coordination with a data multiplexer to maintain the optimal quality of the multimedia data through the channels. In some aspects, the encoder may use content classification information to force four Is to appear periodically in the encoded data to allow fast channel switching. Such implementations can also make use of I blocks that may be required in the data encoded for resistance against errors, such as random access switching and resistance against errors (based on, for example, content classification) can be Effectively combine through the prediction hierarchy to improve coding efficiency while increasing robustness against errors.

En un aspecto un procedimiento de procesamiento de datos multimedia incluye la recepción de datos multimedia y la codificación de los datos multimedia en un primer grupo de datos y un segundo grupo de datos en base al contenido de los datos multimedia, estando configurado el primer grupo de datos para su decodificación independientemente del segundo grupo de datos y en el que el primer y el segundo grupos de datos se codifican con diferentes niveles de calidad. En un aspecto del primer aspecto, el primer grupo de datos comprende cuadros I y cuadros P y el segundo grupo de datos comprende cuadros I, cuadros P y cuadros B. En otro aspecto, el primer grupo de datos comprende una capa base y el segundo grupo de datos comprende una capa de mejora. En un tercer aspecto, el procedimiento comprende además la clasificación del contenido de los datos multimedia en el que la codificación se basa en la clasificación del contenido. En un cuarto aspecto, la codificación comprende la determinación de un primer parámetro de cuantificación de los datos multimedia para la codificación del primer grupo de datos y la determinación de un segundo parámetro de cuantificación para la codificación del segundo grupo de datos, en el que la determinación del primer y el segundo parámetro de cuantificación se basa en la clasificación del contenido. En un quinto aspecto, la codificación comprende la asignación de una tasa de bits para al menos una parte de los datos multimedia en base a la clasificación del contenido. En un sexto aspecto, la codificación incluye además el uso de la clasificación del contenido para detectar cambios de escena y en la determinación de si incluir cuadros I en el primer grupo de datos y en el segundo grupo de datos en base a los cambios de escena detectados. En un séptimo aspecto, la codificación incluye la determinación de una tasa de cuadros para la codificación de los datos multimedia en base a la clasificación del contenido. En un octavo aspecto, la codificación incluye la realización de una estimación de movimiento de los datos multimedia en base a la clasificación del contenido. En un noveno aspecto, el procedimiento incluye también la determinación de una primera tasa de cuadros para la codificación del primer grupo de datos y la determinación de una segunda tasa de cuadros para la codificación del segundo grupo de datos, en el que la primera tasa de cuadros es menor que la segunda tasa de cuadros. En un décimo aspecto, la codificación incluye la realización de un procesamiento de resistencia frente a errores en los datos multimedia en base a la clasificación del contenido. En un undécimo aspecto, la codificación incluye la codificación del primer grupo de datos y del segundo grupo de datos de modo que el primer grupo de datos se pueda decodificar para formar unos datos multimedia que se pueden visualizar si el segundo grupo de datos no está disponible y el primer grupo de datos y el In one aspect a multimedia data processing procedure includes the reception of multimedia data and the encoding of multimedia data in a first data group and a second data group based on the content of the multimedia data, the first group of data being configured. data for decoding regardless of the second group of data and in which the first and second groups of data are encoded with different quality levels. In one aspect of the first aspect, the first group of data comprises frames I and frames P and the second group of data comprises frames I, frames P and frames B. In another aspect, the first group of data comprises a base layer and the second data group comprises an improvement layer. In a third aspect, the method further comprises the classification of the content of the multimedia data in which the coding is based on the classification of the content. In a fourth aspect, the coding comprises the determination of a first parameter of quantification of the multimedia data for the coding of the first group of data and the determination of a second parameter of quantification for the coding of the second group of data, in which the Determination of the first and second quantification parameters is based on the classification of the content. In a fifth aspect, the coding comprises the assignment of a bit rate for at least a part of the multimedia data based on the content classification. In a sixth aspect, the coding also includes the use of content classification to detect scene changes and in determining whether to include frames I in the first data group and in the second data group based on the scene changes. detected. In a seventh aspect, the coding includes the determination of a frame rate for the coding of the multimedia data based on the classification of the content. In an eighth aspect, the coding includes the realization of an estimation of movement of the multimedia data based on the classification of the content. In a ninth aspect, the procedure also includes the determination of a first frame rate for the coding of the first group of data and the determination of a second frame rate for the coding of the second group of data, in which the first rate of frames is less than the second frame rate. In a tenth aspect, the coding includes the performance of resistance processing against errors in the multimedia data based on the classification of the content. In an eleventh aspect, the encoding includes the encoding of the first data group and the second data group so that the first data group can be decoded to form multimedia data that can be displayed if the second data group is not available. and the first group of data and the

55 E06804241 04-11-2011 55 E06804241 04-11-2011

segundo grupo de datos se pueden decodificar en combinación para formar unos datos multimedia que se pueden visualizar si tanto el primer grupo de datos como el segundo grupo de datos están disponibles. En un duodécimo aspecto, el primer parámetro de cuantificación incluye un primer tamaño de etapa para la codificación de datos y el segundo parámetro de cuantificación incluye un segundo tamaño de etapa para la codificación de datos, en el que el primer tamaño de etapa es mayor que el segundo tamaño de etapa. En un decimotercero aspecto, el procedimiento comprende además la clasificación del contenido de los datos multimedia y en el que la codificación se basa en la clasificación del contenido y en el que la codificación comprende la reducción del ruido en los datos multimedia en base a la clasificación del contenido. En un decimocuarto aspecto, la reducción de ruido incluye la realización de una eliminación de artificiosidades. En un decimoquinto aspecto, la reducción de ruido comprende el procesamiento de al menos una parte de los datos multimedia con un filtro de desanillado, en el que la fuerza del filtro de desanillado se basa en el contenido de los datos multimedia. En un decimosexto aspecto, la reducción de ruido incluye el procesamiento del menos una parte de los datos multimedia con un filtro de supresión de bloques, en el que la fuerza del filtro de supresión de bloques se basa en el contenido de los datos multimedia. En un decimoséptimo aspecto, la reducción del ruido incluye el filtrado de frecuencias seleccionadas de los datos multimedia. En un decimoctavo aspecto, la fuerza del filtro de desanillado se basa en la clasificación del contenido de los datos multimedia. En un decimonoveno aspecto, la fuerza del filtro de supresión de bloques se basa en la clasificación del contenido de los datos multimedia. En un vigésimo aspecto, la codificación comprende la reducción del muestreo de los datos multimedia. Finalmente, en un vigésimo primer aspecto, la codificación incluye la asociación de un nivel de calidad con los datos multimedia y el uso del nivel de calidad y la información del contenido de los datos multimedia para determinar una tasa de bits para la codificación de los datos multimedia. The second group of data can be decoded in combination to form multimedia data that can be displayed if both the first group of data and the second group of data are available. In a twelfth aspect, the first quantization parameter includes a first stage size for data coding and the second quantization parameter includes a second stage size for data coding, in which the first stage size is larger than The second stage size. In a thirteenth aspect, the method further comprises the classification of the content of the multimedia data and in which the coding is based on the classification of the content and in which the coding comprises the reduction of the noise in the multimedia data based on the classification Of content. In a fourteenth aspect, noise reduction includes the realization of an elimination of artifice. In a fifteenth aspect, noise reduction comprises the processing of at least part of the multimedia data with a scraping filter, in which the strength of the scraping filter is based on the content of the multimedia data. In a sixteenth aspect, noise reduction includes the processing of at least part of the multimedia data with a block suppression filter, in which the force of the block suppression filter is based on the content of the multimedia data. In a seventeenth aspect, noise reduction includes the filtering of selected frequencies of multimedia data. In a eighteenth aspect, the strength of the scraping filter is based on the classification of multimedia data content. In a nineteenth aspect, the strength of the block suppression filter is based on the classification of multimedia data content. In a twentieth aspect, coding comprises the reduction of sampling of multimedia data. Finally, in a twenty-first aspect, coding includes the association of a quality level with multimedia data and the use of the quality level and information of multimedia data content to determine a bit rate for data coding. multimedia.

En un segundo aspecto, un aparato para el procesamiento de datos multimedia incluye un codificador configurado para recibir datos multimedia y codificar los datos multimedia en un primer grupo de datos y un segundo grupo de datos en base al contenido de los datos multimedia, configurado el primer grupo de datos para su decodificación de modo independiente del segundo grupo de datos y en el que el primer y el segundo grupos de datos se codifican con diferentes niveles de calidad. En un aspecto del primer aspecto, el codificador incluye un módulo de clasificación del contenido configurado para determinar una clasificación del contenido de los datos multimedia y el módulo de codificación se configura adicionalmente para codificar los datos multimedia en base a la clasificación del contenido. En un segundo aspecto, el codificador se configura además para determinar un primer parámetro de cuantificación de los datos multimedia para la codificación del primer grupo de datos y un segundo parámetro de cuantificación para la codificación del segundo grupo de datos en el que la determinación del primer y segundo parámetros de cuantificación se basa en la clasificación del contenido de los datos multimedia. En un tercer aspecto, el codificador comprende un módulo de estimación del movimiento configurado para realizar una estimación del movimiento de los datos multimedia en base a la clasificación del contenido y generar información de compensación de los datos de movimiento y en el que el módulo de codificación se configura además para usar la información de compensación del movimiento para codificar los datos multimedia. En un cuarto aspecto, el codificador incluye también un módulo de cuantificación para la determinación de un parámetro de cuantificación de los datos multimedia en base a la clasificación del contenido y se configura además el codificador para usar el parámetro de cuantificación para codificar los datos multimedia. En un quinto aspecto, el codificador incluye también un módulo de asignación de bits configurado para proporcionar una tasa de bits para al menos una parte de los datos multimedia en base a la clasificación del contenido. En un sexto aspecto, el codificador incluye también un módulo de detección de cambio de escena configurado para detectar cambios de escena y el módulo de codificación se configura además para incluir cuadros I en los datos multimedia codificados en base a los cambios de escena detectados. En un séptimo aspecto el codificador incluye también un módulo de tasa de cuadros configurado para determinar una tasa de cuadros de los datos multimedia en base a la clasificación del contenido y en el que el módulo de codificación codifica los datos multimedia en base a la tasa de cuadros. En un octavo aspecto, el codificador se configura también para codificar el primer grupo de datos y el segundo grupo de datos en base a la clasificación del contenido. En un noveno aspecto, el codificador se configura también para realizar un procesamiento de errores sobre los datos multimedia en base a la clasificación del contenido. In a second aspect, an apparatus for processing multimedia data includes an encoder configured to receive multimedia data and encode the multimedia data in a first data group and a second data group based on the content of the multimedia data, the first configured data group for decoding independently of the second data group and in which the first and second data groups are encoded with different quality levels. In one aspect of the first aspect, the encoder includes a content classification module configured to determine a multimedia data content classification and the coding module is further configured to encode multimedia data based on the content classification. In a second aspect, the encoder is further configured to determine a first multimedia data quantification parameter for the encoding of the first data group and a second quantification parameter for the encoding of the second data group in which the determination of the first and second quantification parameters is based on the classification of multimedia data content. In a third aspect, the encoder comprises a motion estimation module configured to perform an estimate of the movement of the multimedia data based on the classification of the content and generate compensation information of the motion data and in which the coding module It is also configured to use motion compensation information to encode multimedia data. In a fourth aspect, the encoder also includes a quantization module for the determination of a quantification parameter of the multimedia data based on the classification of the content and the encoder is further configured to use the quantization parameter to encode the multimedia data. In a fifth aspect, the encoder also includes a bit allocation module configured to provide a bit rate for at least a portion of the multimedia data based on the content classification. In a sixth aspect, the encoder also includes a scene change detection module configured to detect scene changes and the coding module is further configured to include I frames in the encoded multimedia data based on the scene changes detected. In a seventh aspect, the encoder also includes a frame rate module configured to determine a frame rate of the multimedia data based on the content classification and in which the coding module encodes the multimedia data based on the rate of picture. In an eighth aspect, the encoder is also configured to encode the first data group and the second data group based on the content classification. In a ninth aspect, the encoder is also configured to perform error processing on the multimedia data based on the content classification.

En un tercer aspecto, un aparato para el procesamiento de datos multimedia incluye medios para la recepción de datos multimedia y medios para la codificación de los datos multimedia en un primer grupo de datos codificados y un segundo grupo de datos codificados en base al contenido de los datos multimedia, configurado el primer grupo de datos para su decodificación de modo independiente del segundo grupo de datos y en el que el primero y el segundo grupo de datos se codifican con diferentes niveles de calidad. En un aspecto del primer aspecto, el medio receptor comprende un codificador. En otro aspecto, los medios para codificación comprenden un codificador. En un tercer aspecto, los medios de codificación comprenden medios para la determinación de una clasificación del contenido de los datos multimedia en el que los medios de codificación codifican los datos multimedia sobre la clasificación del contenido. En un cuarto aspecto, los medios de codificación comprenden un transcodificador que comprende un codificador. In a third aspect, an apparatus for processing multimedia data includes means for receiving multimedia data and means for encoding multimedia data in a first group of encoded data and a second group of encoded data based on the content of the data. multimedia data, the first data group is configured for decoding independently of the second data group and in which the first and second data groups are encoded with different quality levels. In one aspect of the first aspect, the receiving means comprises an encoder. In another aspect, the means for encoding comprise an encoder. In a third aspect, the coding means comprise means for determining a classification of the content of the multimedia data in which the coding means encodes the multimedia data on the classification of the content. In a fourth aspect, the coding means comprise a transcoder comprising an encoder.

En un cuarto aspecto, un medio que pueda leer una máquina comprende instrucciones que tras su ejecución hacen que la máquina reciba datos multimedia y codifique los datos multimedia en un primer grupo de datos codificados y un segundo grupo de datos codificados en base al contenido de los datos multimedia, configurado el primer grupo de datos para su decodificación de modo independiente del segundo grupo de datos y en el que el primero y el segundo grupo de datos se codifican con diferentes niveles de calidad. En un aspecto del cuarto aspecto, el medio que pueda In a fourth aspect, a medium that can read a machine comprises instructions that after its execution cause the machine to receive multimedia data and encode the multimedia data in a first group of encoded data and a second group of encoded data based on the content of the multimedia data, the first data group is configured for decoding independently of the second data group and in which the first and second data groups are encoded with different quality levels. In one aspect of the fourth aspect, the medium that can

50 E06804241 04-11-2011 50 E06804241 04-11-2011

leer un ordenador comprende además instrucciones para generar una clasificación del contenido indicativa del contenido de los datos multimedia, en el que la codificación de los datos multimedia en un primer grupo de datos codificados y un segundo grupo de datos codificados incluye la codificación de los datos multimedia en base a la clasificación del contenido. En otro aspecto, la codificación comprende la determinación de un primer parámetro de cuantificación de los datos multimedia para la codificación del primer grupo de datos y la determinación de un segundo parámetro de cuantificación para la codificación del segundo grupo de datos en el que la determinación del primer y segundo parámetros de cuantificación se basa en la clasificación del contenido. En un tercer aspecto, las instrucciones para codificar los datos multimedia incluyen instrucciones para asignar una tasa de bits para al menos una parte de los datos multimedia en base al contenido de los datos multimedia. reading a computer further comprises instructions for generating a classification of the content indicative of the content of the multimedia data, in which the coding of the multimedia data in a first group of encoded data and a second group of encoded data includes the encoding of the multimedia data based on the content classification. In another aspect, the coding comprises the determination of a first parameter of quantification of the multimedia data for the coding of the first group of data and the determination of a second parameter of quantification for the coding of the second group of data in which the determination of the First and second quantification parameters are based on content classification. In a third aspect, the instructions for encoding the multimedia data include instructions for assigning a bit rate for at least a part of the multimedia data based on the content of the multimedia data.

En un quinto aspecto, un procesador comprende una configuración para recibir datos multimedia y codificar los datos multimedia en un primer grupo de datos codificados y un segundo grupo de datos codificados en base al contenido de los datos multimedia, configurado el primer grupo de datos para su decodificación de modo independiente del segundo grupo de datos y en el que el primer y el segundo grupo de datos se codifican con niveles de calidad diferentes. En un aspecto del quinto aspecto, el procesador comprende además una configuración para generar una clasificación del contenido indicativa del contenido de los datos multimedia en el que la codificación comprende la codificación de los datos multimedia en base a la clasificación del contenido. En otro aspecto, el procesador comprende además una configuración para determinar un primer parámetro de cuantificación de los datos multimedia para la codificación del primer grupo de datos y un segundo parámetro de cuantificación para la codificación del segundo grupo de datos, en el que el primer y el segundo parámetros de cuantificación se basan en la clasificación del contenido. In a fifth aspect, a processor comprises a configuration for receiving multimedia data and encoding multimedia data in a first group of encoded data and a second group of encoded data based on the content of the multimedia data, the first group of data configured for decoding independently of the second group of data and in which the first and second group of data are encoded with different quality levels. In an aspect of the fifth aspect, the processor further comprises a configuration for generating a classification of the content indicative of the content of the multimedia data in which the coding comprises the coding of the multimedia data based on the classification of the content. In another aspect, the processor further comprises a configuration for determining a first parameter of quantification of the multimedia data for the encoding of the first group of data and a second parameter of quantification for the coding of the second group of data, in which the first and The second quantification parameters are based on the content classification.

Breve descripción de los dibujos Brief description of the drawings

La FIGURA 1A es un diagrama de bloques en un sistema de emisión de medios que incluye un transcodificador para la transcodificación entre diferentes formatos de video. FIGURE 1A is a block diagram in a media broadcast system that includes a transcoder for transcoding between different video formats.

La FIGURA 1B es un diagrama de bloques de un codificador configurado para codificar datos multimedia y proporcionar un primer grupo de datos codificados y un segundo grupo de datos codificados. FIGURE 1B is a block diagram of an encoder configured to encode multimedia data and provide a first group of encoded data and a second group of encoded data.

La FIGURA 1C es un diagrama de bloques de un procesador configurado para codificar datos multimedia. FIGURE 1C is a block diagram of a processor configured to encode multimedia data.

La FIGURA 2 es un diagrama de bloques de un ejemplo de transcodificador del sistema de la FIGURA 1. FIGURE 2 is a block diagram of an example of a transcoder of the system of FIGURE 1.

La FIGURA 3 es un diagrama de flujo que ilustra el funcionamiento de un analizador sintáctico usado con el transcodificador de la FIGURA 2. FIGURE 3 is a flow chart illustrating the operation of a syntactic analyzer used with the transcoder of FIGURE 2.

La FIGURA 4 es un diagrama de flujo que ilustra el funcionamiento de un decodificador usado con el transcodificador de la FIGURA 2. FIGURE 4 is a flow chart illustrating the operation of a decoder used with the transcoder of FIGURE 2.

La FIGURA 5 es un diagrama de tiempos del sistema que ilustra una secuencia de operaciones realizadas por el transcodificador de la FIGURA 2. FIGURE 5 is a system timing diagram illustrating a sequence of operations performed by the transcoder of FIGURE 2.

La FIGURA 6 es un diagrama de flujo que ilustra una secuencia de operaciones y funciones de un preprocesador que se puede usar en el transcodificador de la FIGURA 2. FIGURE 6 is a flow chart illustrating a sequence of operations and functions of a preprocessor that can be used in the transcoder of FIGURE 2.

La FIGURA 7 es un diagrama de bloques de un codificador en 2 pasos de ejemplo que se puede usar en el transcodificador de la FIGURA 2. FIGURE 7 is a block diagram of an example 2-step encoder that can be used in the transcoder of FIGURE 2.

La FIGURA 8 ilustra un ejemplo de un gráfico de clasificación que ilustra un aspecto de cómo asociar valores de textura y movimiento con la clasificación del contenido. FIGURE 8 illustrates an example of a classification chart that illustrates an aspect of how to associate texture and motion values with content classification.

La FIGURA 9 es un diagrama de flujo que ilustra una operación de ejemplo para clasificación del contenido, tal como para su uso en el codificador de la FIGURA 7. FIGURE 9 is a flow chart illustrating an example operation for content classification, such as for use in the encoder of FIGURE 7.

La FIGURA 10 es un diagrama de flujo que ilustra la operación de un control de tasa tal como para su uso con el codificador de la FIGURA 7. FIGURE 10 is a flow chart illustrating the operation of a rate control such as for use with the encoder of FIGURE 7.

La FIGURA 11 es un diagrama de flujo que ilustra la operación de un estimador de movimientos de ejemplo, tal como para su uso con el codificador de la FIGURA 7. FIGURE 11 is a flow chart illustrating the operation of an example motion estimator, such as for use with the encoder of FIGURE 7.

La FIGURA 12 es un diagrama de flujo que ilustra la operación de una función de codificador de decisión de modo de ejemplo, tal como para su uso con el codificador de la FIGURA 7. FIGURE 12 is a flow chart illustrating the operation of an exemplary decision encoder function, such as for use with the encoder of FIGURE 7.

La FIGURA 13 es un diagrama de flujo que ilustra una operación de ejemplo que efectúa la escalabilidad para su uso en el codificador de la FIGURA 7. FIGURE 13 is a flow chart illustrating an example operation that performs scalability for use in the encoder of FIGURE 7.

La FIGURA 14 es un diagrama de flujo que ilustra una operación de ejemplo que efectúa un flujo de datos de tasadistorsión como ocurre en el codificador de la FIGURA 7, por ejemplo. FIGURE 14 is a flow chart illustrating an example operation that effects a rate of distortion data as occurs in the encoder of FIGURE 7, for example.

40 E06804241 04-11-2011 40 E06804241 04-11-2011

La FIGURA 15 es un gráfico que ilustra la relación entre la complejidad de la codificación, los bits asignados y calidad visual humana. FIGURE 15 is a graph illustrating the relationship between coding complexity, assigned bits and human visual quality

La FIGURA 16 es un gráfico que ilustra una fórmula de detección de escenas no lineal. La FIGURA 17 es un diagrama de bloques del sistema que ilustra medios para la recepción de datos multimedia y medios para la codificación de los datos multimedia recibidos. FIGURE 16 is a graph illustrating a nonlinear scene detection formula. FIGURE 17 is a block diagram of the system illustrating means for receiving multimedia data and means for encoding multimedia data received.

La FIGURA 18 es un diagrama que ilustra un proceso de desentrelazado que usa estimación/compensación de movimiento. FIGURE 18 is a diagram illustrating a deinterlacing process using estimation / compensation of movement.

La FIGURA 19 es un diagrama de bloques de un sistema de comunicación multimedia. La FIGURA 20 es un diagrama que ilustra la organización de un flujo de bits de video en una capa de mejora y una capa base. FIGURE 19 is a block diagram of a multimedia communication system. FIGURE 20 is a diagram illustrating the organization of a video bit stream in an enhancement layer and a base layer

La FIGURA 21 es un diagrama que ilustra la alineación de porciones a los límites de los cuadros de video. La FIGURA 22 es un diagrama de bloques que ilustra la jerarquía de predicción. La FIGURA 23 es un diagrama de flujo de proceso que ilustra un procedimiento de codificación de datos multimedia FIGURE 21 is a diagram illustrating the alignment of portions to the limits of video frames. FIGURE 22 is a block diagram illustrating the prediction hierarchy. FIGURE 23 is a process flow diagram illustrating a multimedia data coding procedure

en base a la información del contenido. based on content information.

La FIGURA 24 es un diagrama de flujo de proceso que ilustra un procedimiento de codificación de datos multimedia de modo que se alineen los límites de los datos en base al nivel de información del contenido. La FIGURA 25 es un gráfico que ilustra un área de acción segura y un área de título seguro de un cuadro de datos. La FIGURA 26 es un gráfico que ilustra un área de acción segura de un cuadro de datos. La FIGURA 27 es un diagrama de flujo de proceso que ilustra un proceso de codificación de datos multimedia FIGURE 24 is a process flow diagram illustrating a multimedia data coding procedure so that data limits are aligned based on the level of content information. FIGURE 25 is a graph illustrating a safe area of action and a safe title area of a data box. FIGURE 26 is a graph illustrating a safe area of action of a data frame. FIGURE 27 is a process flow diagram illustrating a multimedia data encoding process

usando refresco intra adaptativo en base a la información de contenido multimedia. using intra-adaptive soda based on multimedia content information.

La FIGURA 28 es un diagrama de flujo de proceso que ilustra un proceso de codificación de datos multimedia usando cuadros I redundantes en base a la información del contenido multimedia. La FIGURA 29 ilustra vectores de compensación del movimiento entre un cuadro actual y un cuadro previo MVP y un FIGURE 28 is a process flow diagram illustrating a multimedia data encoding process using redundant I frames based on multimedia content information. FIGURE 29 illustrates motion compensation vectors between a current frame and a previous MVP frame and a

carro actual y un cuadro siguiente MVN. La FIGURA 30 es un diagrama de flujo de proceso que ilustra una detección de toma. La FIGURA 31 es un diagrama de flujo de proceso que ilustra la codificación de las capas base y de mejora. La FIGURA 32 es un esquema que ilustra la codificación de un macro bloque. La FIGURA 33 es un esquema que ilustra módulos para la codificación de una capa base y una capa de mejora. La FIGURA 34 muestra un ejemplo de un proceso de selector del coeficiente de capa base y de capa de mejora. La FIGURA 35 muestra otro ejemplo de un proceso de selector del coeficiente de una capa base y una capa de Current car and next MVN chart. FIGURE 30 is a process flow diagram illustrating a tap detection. FIGURE 31 is a process flow diagram illustrating the coding of the base and improvement layers. FIGURE 32 is a scheme illustrating the coding of a macro block. FIGURE 33 is a scheme illustrating modules for coding a base layer and an improvement layer. FIGURE 34 shows an example of a process for selecting the base layer and improvement layer coefficient. FIGURE 35 shows another example of a coefficient selector process of a base layer and a layer of

mejora. improvement.

La FIGURA 36 muestra otro ejemplo de un proceso de selector del coeficiente de una capa base y una capa de mejora. La FIGURA 37 es un diagrama de flujo de proceso que ilustra la codificación de datos multimedia en base a la FIGURE 36 shows another example of a coefficient selector process of a base layer and a layer of improvement. FIGURE 37 is a process flow diagram illustrating the encoding of multimedia data based on the

información del contenido. La FIGURA 38 es un diagrama que ilustra posibles decisiones del sistema en un proceso de telecine inverso. La FIGURA 39 ilustra los límites a ser filtrados en un macro bloque mediante un proceso de supresión de bloques. La FIGURA 40 es un diagrama que ilustra un proceso que desentrelazado espacio-temporal. La FIGURA 41 ilustra un ejemplo para un nuevo muestreo de polifase 1D. La FIGURA 42 es un diagrama de flujo que ilustra un ejemplo de una estructura GOP adaptativa en la transmisión content information. FIGURE 38 is a diagram illustrating possible system decisions in a reverse telecine process. FIGURE 39 illustrates the limits to be filtered in a macro block by a block suppression process. FIGURE 40 is a diagram illustrating a process that deinterlaced space-time. FIGURE 41 illustrates an example for a new 1D polyphase sampling. FIGURE 42 is a flow chart illustrating an example of an adaptive transmission GOP structure

continua de video. Se indica que, donde es apropiado, las numeraciones similares se refieren a partes similares a través de las diversas vistas de los dibujos. 6 Video continues. It is indicated that, where appropriate, similar numbers refer to similar parts through the various views of the drawings. 6

55 E06804241 04-11-2011 55 E06804241 04-11-2011

Descripción detallada Detailed description

La siguiente descripción detallada se dirige a ciertos aspectos explicados en la presente divulgación. Sin embargo, la invención se puede realizar en una multitud de formas diferentes. La referencia en la presente especificación a “un aspecto” significa que se incluye un rasgo, estructura o característica particular descrito en conexión con el aspecto en al menos un aspecto. Las apariciones de las frases “en un aspecto”, “de acuerdo con un aspecto” o “en algunos aspectos”, en varios lugares en la especificación no se refieren necesariamente todas al mismo aspecto ni son aspectos separados alternativos mutuamente exclusivos de otros aspectos. Más aún, se describen varias características que se pueden exhibir por algunos aspectos y no por otros. De modo similar, se describen varios requisitos que pueden ser requisitos para algunos aspectos pero no para otros aspectos. The following detailed description addresses certain aspects explained in this disclosure. However, the invention can be carried out in a multitude of different ways. Reference in the present specification to "one aspect" means that a particular feature, structure or feature described in connection with the aspect in at least one aspect is included. The occurrences of the phrases "in one aspect", "according to one aspect" or "in some aspects", in several places in the specification do not necessarily all refer to the same aspect nor are they separate mutually exclusive alternative aspects of other aspects. Moreover, several characteristics that can be exhibited by some aspects and not by others are described. Similarly, several requirements are described that may be requirements for some aspects but not for other aspects.

La siguiente descripción incluye detalles para proporcionar una comprensión global de los ejemplos. Sin embargo, se entenderá por un experto en la materia que los ejemplos se pueden poner en práctica incluso si cada detalle de un proceso o dispositivo en un ejemplo o aspecto no se describe o ilustra en el presente documento. Por ejemplo, los componentes eléctricos se pueden mostrar en diagramas de bloques que no ilustran cada conexión eléctrica o cada elemento eléctrico del componente para no oscurecer los ejemplos con detalles innecesarios. En otros casos, tales componentes, otras estructuras y técnicas se pueden mostrar en detalle para explicar adicionalmente los ejemplos. The following description includes details to provide a comprehensive understanding of the examples. However, it will be understood by one skilled in the art that the examples can be put into practice even if every detail of a process or device in an example or aspect is not described or illustrated herein. For example, electrical components can be shown in block diagrams that do not illustrate each electrical connection or each electrical element of the component so as not to obscure the examples with unnecessary details. In other cases, such components, other structures and techniques can be shown in detail to further explain the examples.

La presente divulgación se refiere al control de la codificación y aparatos y procedimientos de transcodificación que usan información del contenido de los datos multimedia que se codifican. La “información del contenido” o “contenido” (de los datos multimedia) son términos amplios que significan la información en relación al contenido de datos multimedia y pueden incluir, por ejemplo, metadatos, métrica calculada a partir de los datos multimedia e información relacionada con el contenido asociada con una o más métricas, por ejemplo una clasificación del contenido. La información del contenido se puede proporcionar a un codificador o ser determinada por un codificador, dependiendo de la aplicación particular. La información del contenido se puede usar para muchos aspectos de la codificación de los datos multimedia, incluyendo la detección de cambio de escena, procesamiento temporal, reducción de ruido espacio-temporal, reducción del muestreo, determinación de las tasas de bits para cuantificación, escalabilidad, resistencia frente a errores, mantenimiento de la calidad multimedia óptima a través de los canales de emisión y cambio rápido de canal. Usando uno o más de estos aspectos, un transcodificador puede organizar el procesamiento de datos multimedia y producir datos multimedia codificados en relación al contenido. Las descripciones y figuras en el presente documento que describen los aspectos de la transcodificación pueden ser aplicables también a aspectos de la codificación y a aspectos de la decodificación. The present disclosure relates to coding control and transcoding apparatus and procedures that use information from the content of the multimedia data that is encoded. “Content information” or “content” (of multimedia data) are broad terms that mean information in relation to multimedia data content and may include, for example, metadata, metrics calculated from multimedia data and related information with the content associated with one or more metrics, for example a classification of the content. Content information may be provided to an encoder or determined by an encoder, depending on the particular application. Content information can be used for many aspects of multimedia data coding, including scene change detection, temporal processing, spatio-temporal noise reduction, sampling reduction, determination of bit rates for quantification, scalability , resistance to errors, maintenance of optimal multimedia quality through broadcast channels and fast channel change. Using one or more of these aspects, a transcoder can organize the processing of multimedia data and produce encoded multimedia data in relation to the content. The descriptions and figures herein that describe the aspects of transcoding may also be applicable to aspects of coding and aspects of decoding.

El aparato y procedimientos del transcodificador se refieren a la transcodificación desde un formato a otro y se describe específicamente en el presente documento en relación a la transcodificación de video MPEG-2 a un formato mejorado, H.264 escalable para la transmisión a través de canales inalámbricos a dispositivos móviles, ilustrativo de algunos aspectos. Sin embargo, la descripción de la transcodificación de video MPEG-2 al formato The transcoder apparatus and procedures refer to transcoding from one format to another and is specifically described herein in relation to MPEG-2 video transcoding to an improved format, scalable H.264 for transmission through channels Wireless to mobile devices, illustrative of some aspects. However, the description of MPEG-2 video transcoding to the format

H.264 no se pretende que limite el ámbito de la invención, sino que es meramente de ejemplo de algunos aspectos de la invención. Los aparatos y procedimientos desvelados proporcionan una arquitectura altamente eficiente que soporta una codificación flexible frente a errores con acceso aleatorio y capacidad de capas y que se puede aplicar asimismo a la transcodificación y/o codificación de formatos de video distintos del MPEG-2 y el H.264. H.264 is not intended to limit the scope of the invention, but is merely an example of some aspects of the invention. The disclosed devices and procedures provide a highly efficient architecture that supports flexible coding against errors with random access and layer capability and which can also be applied to the transcoding and / or encoding of video formats other than MPEG-2 and H .264.

“Datos multimedia” o simplemente “multimedia” como se usa en el presente documento, es una expresión amplia que incluye datos de video (que pueden incluir datos de audio), datos de audio o datos tanto de video como de audio. “Datos de video” o “video” como se usa en el presente documento es una expresión amplia que se refiere a datos basados en cuadros o basados en campos, que incluyen una o más imágenes o secuencias de imágenes relacionadas, texto de contenido, información de imagen y/o datos de audio y se pueden usar para referirse a datos multimedia (por ejemplo, las expresiones se pueden usar de modo intercambiable) a menos que se especifique lo contrario. "Multimedia data" or simply "multimedia" as used herein, is a broad expression that includes video data (which may include audio data), audio data or both video and audio data. "Video data" or "video" as used herein is a broad expression that refers to frame-based or field-based data, which includes one or more images or sequences of related images, content text, information. of image and / or audio data and can be used to refer to multimedia data (for example, expressions can be used interchangeably) unless otherwise specified.

Se describen a continuación ejemplos de varios componentes de un transcodificador y ejemplos de procesos que pueden usar información del contenido para la codificación de datos multimedia. Examples of various components of a transcoder and examples of processes that can use content information for multimedia data encoding are described below.

Sistema de emisión multimedia Multimedia broadcasting system

La FIGURA 1A es un diagrama de bloques que ilustra un flujo de datos de algunos aspectos de un sistema de emisión de datos multimedia 100. En el sistema 100, un proveedor de datos multimedia 106 comunica datos multimedia codificados 104 a un transcodificador 200. Los datos multimedia codificados 104 se reciben por el transcodificador 200, que procesa los datos multimedia 104 en datos multimedia en bruto en el bloque 110. El procesamiento en el bloque 110 decodifica y analiza los datos multimedia codificados 104 y procesa adicionalmente los datos multimedia para prepararlos para su codificación en otro formato. Los datos multimedia decodificados se proporcionan al bloque 112 en el que se codifican los datos multimedia a un formato o norma multimedia predeterminado. Una vez se han codificado los datos multimedia, en el bloque 114 se preparan para su transmisión, por medio, por ejemplo, de un sistema de emisión inalámbrica (por ejemplo una red de emisiones de teléfono celular FIGURE 1A is a block diagram illustrating a data flow of some aspects of a multimedia data broadcasting system 100. In system 100, a multimedia data provider 106 communicates encoded multimedia data 104 to a transcoder 200. The data encoded multimedia 104 are received by transcoder 200, which processes multimedia data 104 into raw multimedia data in block 110. Processing in block 110 decodes and analyzes encoded multimedia data 104 and further processes multimedia data to prepare them for processing. encoding in another format. Decoded multimedia data is provided to block 112 in which multimedia data is encoded to a predetermined multimedia format or standard. Once the multimedia data has been encoded, in block 114 they are prepared for transmission, for example, by means of a wireless broadcasting system (for example a cellular telephone broadcasting network

o por medio de otra red de comunicaciones). En algunos aspectos, los datos multimedia recibidos 104 se han codificado de acuerdo con la norma MPEG-2. Después de que los datos multimedia transcodificados 104 se hayan or through another communications network). In some aspects, the multimedia data received 104 has been encoded in accordance with the MPEG-2 standard. After the transcoded multimedia data 104 has been

60 E06804241 04-11-2011 60 E06804241 04-11-2011

decodificado, el transcodificador 200 codifica los datos multimedia a una norma H.264. decoded, transcoder 200 encodes multimedia data to an H.264 standard.

La FIGURA 1B es un diagrama de bloques de un transcodificador 130 que se puede configurar para realizar el procesamiento de los bloques 110 y 112 de la FIGURA 1A. El transcodificador 130 se puede configurar para recibir datos multimedia, decodificar y analizar los datos multimedia en transmisiones continuas elementales en paquetes (por ejemplo, subtítulos, audio, metadatos, video en bruto, datos de CC y marcas del tiempo de presentación), codificarlas en un formato deseado y proporcionar datos codificados para un procesamiento adicional o transmisión. El transcodificador 130 se puede configurar para proporcionar datos codificados a dos o más grupos de datos, por ejemplo, un primer grupo de datos codificados y un segundo grupo de datos codificados, que se denomina como codificación en capas. En algunos ejemplos de aspectos, los varios grupos de datos (o capas) en un esquema de codificación en capas se pueden codificar con diferentes niveles de calidad y formatear de modo que los datos codificados en un primer grupo de datos sean de la calidad más baja (por ejemplo proporcionar un nivel de calidad visual inferior cuando se visualizan) que los datos codificados en un segundo grupo de datos. FIGURE 1B is a block diagram of a transcoder 130 that can be configured to process blocks 110 and 112 of FIGURE 1A. The transcoder 130 can be configured to receive multimedia data, decode and analyze the multimedia data in elementary continuous transmissions in packets (e.g., subtitles, audio, metadata, raw video, CC data and presentation time stamps), encode them into a desired format and provide encoded data for further processing or transmission. The transcoder 130 can be configured to provide coded data to two or more data groups, for example, a first group of coded data and a second group of coded data, which is referred to as layered coding. In some examples of aspects, the various data groups (or layers) in a layered coding scheme can be encoded with different quality levels and formatted so that the data encoded in a first data group is of the lowest quality (for example, provide a lower level of visual quality when viewed) than the data encoded in a second group of data.

La FIGURA 1C es un diagrama de bloques de un procesador 140 que se puede configurar para transcodificar datos multimedia y se puede configurar para realizar una parte o todo el procesamiento representado en los bloques 110 y 112 de la FIGURA 1A. El procesador 140 puede incluir los módulos 124a..n, realizar uno o más de los procesos de transcodificación descritos en el presente documento, incluyendo la decodificación, análisis, preprocesamiento y codificación y usar información del contenido para el procesamiento. El procesador 140 incluye también una memoria interna 122 y se puede configurar para comunicar con una memoria externa 120, tanto directamente como indirectamente a través de otro dispositivo. El procesador 140 incluye también un módulo de comunicaciones 126 configurado para comunicar con uno o más dispositivos externos al procesador 140, que incluyen la recepción de datos multimedia y el suministro de datos codificados, tal como datos codificados en un primer grupo de datos y datos codificados en un segundo grupo de datos. En algunos ejemplos de aspectos, los varios grupos de datos (o capas) en un esquema de codificación en capas se pueden codificar con diferentes niveles de calidad y formatear de modo que los datos codificados en un primer grupo de datos sean de una calidad más baja (por ejemplo proporcionen un nivel de calidad visual inferior cuando se visualizan) que los datos codificados en un segundo grupo de datos. FIGURE 1C is a block diagram of a processor 140 that can be configured to transcode multimedia data and can be configured to perform part or all of the processing represented in blocks 110 and 112 of FIGURE 1A. Processor 140 may include modules 124a..n, perform one or more of the transcoding processes described herein, including decoding, analysis, preprocessing and coding and use content information for processing. The processor 140 also includes an internal memory 122 and can be configured to communicate with an external memory 120, both directly and indirectly through another device. The processor 140 also includes a communications module 126 configured to communicate with one or more devices external to the processor 140, which include the reception of multimedia data and the provision of encoded data, such as data encoded in a first group of data and encoded data in a second group of data. In some examples of aspects, the various data groups (or layers) in a layered coding scheme can be encoded with different quality levels and formatted so that the data encoded in a first data group is of a lower quality (for example, they provide a lower level of visual quality when viewed) than the data encoded in a second group of data.

El transcodificador 130 o el preprocesador 140 (configurado para la transcodificación) los componentes de los mismos y los procesos contenidos en ellos, se pueden implementar mediante hardware, software, firmware, middleware, microcódigo o cualquier combinación de los mismos. Por ejemplo, un analizador, decodificador, preprocesador o codificador pueden ser de componentes independientes, incorporados como hardware, firmware, middleware en un componente de otro dispositivo o ser implementados en microcódigo o software que se ejecuta en un procesador o una combinación de los mismos. Cuando se implementa en software, firmware, middleware o microcódigo, el código de programa o segmentos de códigos que realizan la compensación de movimiento, clasificación de tomas y procesos de codificación se pueden almacenar en un medio que pueda leer una máquina tal como un medio de almacenamiento. Un segmento de código puede representar un procedimiento, una función, un subprograma, un programa, una rutina, una subrutina, un módulo, un paquete de software, una clase o cualquier combinación de instrucciones, estructuras de datos o sentencias de programas. Un segmento de código se puede conectar a otro segmento de código o a un circuito de hardware mediante el pase y/o recepción de información, datos, argumentos, parámetros o contenido de memoria. The transcoder 130 or the preprocessor 140 (configured for transcoding) the components thereof and the processes contained therein, can be implemented by hardware, software, firmware, middleware, microcode or any combination thereof. For example, an analyzer, decoder, preprocessor or encoder can be of independent components, incorporated as hardware, firmware, middleware in a component of another device or implemented in microcode or software running on a processor or a combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments that perform motion compensation, tap classification and coding processes can be stored in a medium that can read a machine such as a media storage. A code segment can represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class or any combination of instructions, data structures or program statements. A code segment can be connected to another code segment or to a hardware circuit by passing and / or receiving information, data, arguments, parameters or memory content.

Ejemplo ilustrativo de arquitectura de transcodificador Illustrative example of transcoder architecture

La FIGURA 2 ilustra un diagrama de bloques de un ejemplo de un transcodificador que se puede usar por el transcodificador 200 ilustrado en el sistema de emisión multimedia 100 de la FIGURA 1. El transcodificador 200 comprende un analizador/decodificador 202, un preprocesador 226, un codificador 228 y una capa de sincronización 240, descrita adicionalmente a continuación. El transcodificador 200 se configura para usar información del contenido de los datos multimedia 104 para uno o más aspectos del proceso de transcodificación como se describe en el presente documento. La información del contenido se puede obtener desde una fuente externa al transcodificador 200, a través de metadatos multimedia o ser calculada por el transcodificador, por ejemplo, por el preprocesador 226 o el codificador 228. Los componentes mostrados en la FIGURA 2 son ilustrativos de los componentes que se pueden incluir en un transcodificador que usa información del contenido para uno o más procesos de transcodificación. En una implementación particular, uno o más de los componentes del transcodificador 200 se pueden excluir o se pueden incluir componentes adicionales. Adicionalmente, se describen partes del transcodificador y procesos de transcodificación de modo que permitan a alguien experto en la técnica poner en práctica la invención aunque cada detalle de un proceso o dispositivo pueda no estar descrito en el presente documento. FIGURE 2 illustrates a block diagram of an example of a transcoder that can be used by transcoder 200 illustrated in multimedia broadcasting system 100 of FIGURE 1. Transcoder 200 comprises an analyzer / decoder 202, a preprocessor 226, a encoder 228 and a synchronization layer 240, described further below. The transcoder 200 is configured to use information from the content of the multimedia data 104 for one or more aspects of the transcoding process as described herein. The content information can be obtained from an external source to transcoder 200, through multimedia metadata or be calculated by the transcoder, for example, by preprocessor 226 or encoder 228. The components shown in FIGURE 2 are illustrative of components that can be included in a transcoder that uses content information for one or more transcoding processes. In a particular implementation, one or more of the components of transcoder 200 may be excluded or additional components may be included. Additionally, parts of the transcoder and transcoding processes are described so as to allow someone skilled in the art to practice the invention although every detail of a process or device may not be described herein.

La FIGURA 5 ilustra un diagrama de tiempos como una ilustración gráfica de las relaciones temporales de la operación de varios componentes y/o procesos del transcodificador 200. Como se muestra en la FIGURA 5, la transmisión continua de video codificado 104 (datos multimedia codificados), tal como video MPEG-2, se reciben primero en un tiempo cero (0) arbitrario por el analizador 205 (FIGURA 2). A continuación, la transmisión continua de video se analiza 501, demultiplexa 502 y decodifica 503 tal como por el analizador 205 en combinación con el decodificador 214. Como se ilustra, estos procesos pueden ocurrir en paralelo, con un ligero desplazamiento de tiempo, para proporcionar una salida de transmisión continua del procesamiento de datos al preprocesador 226 FIGURE 5 illustrates a timing diagram as a graphic illustration of the temporal relationships of the operation of various components and / or processes of transcoder 200. As shown in FIGURE 5, the continuous transmission of encoded video 104 (encoded multimedia data) , such as MPEG-2 video, are first received in an arbitrary zero (0) time by analyzer 205 (FIGURE 2). Next, the continuous video transmission is analyzed 501, demultiplexed 502 and decoded 503 such as by the analyzer 205 in combination with the decoder 214. As illustrated, these processes can occur in parallel, with a slight displacement of time, to provide a continuous transmission output of the data processing to the preprocessor 226

55 E06804241 04-11-2011 55 E06804241 04-11-2011

(FIGURA 2). En un momento T1 504 una vez que el preprocesador 226 ha recibido suficientes datos del decodificador 214 para comenzar la salida de los resultados del procesamiento, las etapas de procesamiento restantes se convierten en secuenciales por naturaleza, ocurriendo el primer paso de codificación 505, el segundo paso de codificación 506 y la recodificación 507 en secuencia después del preprocesamiento hasta la finalización de la recodificación en el momento Tf 508. (FIGURE 2). At a time T1 504 once the preprocessor 226 has received sufficient data from the decoder 214 to begin the output of the processing results, the remaining processing steps become sequential in nature, with the first coding step 505, the second coding step 506 and recoding 507 in sequence after preprocessing until completion of recoding at time Tf 508.

El transcodificador 200 descrito en el presente documento se puede configurar para transcodificar una variedad de datos multimedia y muchos de los procesos se aplican a cualquier tipo de dato multimedia que se transcodifique. Aunque algunos de los ejemplos proporcionados en el presente documento se refieren particularmente a la transcodificación de datos MPEG-2 en datos H.264, esos ejemplos no significa que limiten la divulgación a tales datos. Los aspectos de la codificación descritos a continuación se pueden aplicar a la transcodificación de cualquier norma de datos multimedia adecuada a otra norma adecuada de datos multimedia. The transcoder 200 described herein can be configured to transcode a variety of multimedia data and many of the processes apply to any type of multimedia data that is transcoded. Although some of the examples provided herein refer particularly to the transcoding of MPEG-2 data into H.264 data, those examples do not mean that they limit disclosure to such data. The coding aspects described below can be applied to the transcoding of any suitable multimedia data standard to another suitable multimedia data standard.

Analizador/decodificador Analyzer / Decoder

Con referencia de nuevo a la FIGURA 2, el analizador/decodificador 202 recibe datos multimedia 104. El analizador/decodificador 202 incluye un analizador de transmisión continua de transporte (“analizador”) 205 que recibe los datos multimedia 104 y analiza los datos en una transmisión continua elemental (ES) de video 206, una ES de audio 208, marcas de tiempo de presentación (PTS) 210 y otros datos tales como subtítulos 212. Una ES transporta un tipo de datos (video o audio) desde un codificador de video o audio simple. Por ejemplo, una ES de video comprende los datos de video para una secuencia de datos, incluyendo la secuencia la cabecera y todas las partes de la secuencia. Una transmisión continua elemental en paquetes, o PES, consiste en una única ES que se ha convertido en paquetes, cada uno comenzando típicamente con una cabecera de paquete añadida. Una transmisión continua PES contiene solamente un tipo de datos desde un origen, por ejemplo desde un codificador de video o audio. Los paquetes PES tienen longitud variable, que no se corresponde a la longitud fija de paquete de los paquetes de transporte y puede ser mucho más largo que un paquete de transporte. Cuando los paquetes de transporte se forman a partir de una transmisión continua PES, se puede colocar la cabecera PES al comienzo del contenido útil del paquete de transporte, siguiendo inmediatamente a la cabecera del paquete de transporte. El contenido del paquete PES restante llena el contenido útil de paquetes de transporte sucesivos hasta que se ha usado completamente el paquete PES. El paquete de transporte final se puede rellenar hasta una longitud fija, por ejemplo, mediante su relleno con bytes, por ejemplo bytes = 0xFF (todos unos). Referring again to FIGURE 2, the analyzer / decoder 202 receives multimedia data 104. The analyzer / decoder 202 includes a transport continuous transmission analyzer ("analyzer") 205 that receives the multimedia data 104 and analyzes the data in a elementary continuous transmission (ES) of video 206, an audio ES 208, presentation time stamps (PTS) 210 and other data such as subtitles 212. An ES transports a type of data (video or audio) from a video encoder or simple audio. For example, a video ES comprises the video data for a sequence of data, including the sequence the header and all parts of the sequence. An elementary continuous transmission in packets, or PES, consists of a single ES that has been converted to packets, each typically beginning with an added packet header. A PES continuous transmission contains only one type of data from an origin, for example from a video or audio encoder. PES packages have variable length, which does not correspond to the fixed package length of transport packages and can be much longer than a transport package. When the transport packages are formed from a continuous PES transmission, the PES header can be placed at the beginning of the useful content of the transport package, immediately following the transport package header. The content of the remaining PES package fills the useful content of successive transport packages until the PES package has been fully used. The final transport package can be filled to a fixed length, for example, by filling it with bytes, for example bytes = 0xFF (all ones).

El analizador 205 comunica la ES de video 206 a un decodificador 214 que es parte del analizador/decodificador 202 mostrado aquí. En otras configuraciones el analizador 205 y el decodificador 214 son componentes separados. Las PTS 210 se envían a un generador de PTS de transcodificador 215, que puede generar marcas de tiempo de presentación separadas particulares para el transcodificador 200 para su uso en la disposición de los datos a ser enviados desde el transcodificador 200 a un sistema de emisión. El generador de PTS de transcodificador 215 se puede configurar para proporcionar datos a una capa de sincronismo 240 del transcodificador 200 para coordinar la sincronización de los datos emitidos. The analyzer 205 communicates the video ES 206 to a decoder 214 which is part of the analyzer / decoder 202 shown here. In other configurations the analyzer 205 and the decoder 214 are separate components. The PTS 210 are sent to a transcoder PTS generator 215, which can generate separate separate timestamps for transcoder 200 for use in the arrangement of the data to be sent from transcoder 200 to an emission system. The transcoder PTS generator 215 can be configured to provide data to a synchronization layer 240 of the transcoder 200 to coordinate the synchronization of the emitted data.

La FIGURA 3 ilustra un diagrama de flujo de un ejemplo de un proceso 300 que puede seguir el analizador 205 cuando analiza las varias transmisiones continuas elementales en paquetes descritos anteriormente. El proceso 300 comienza en el bloque 302 cuando se reciben los datos multimedia 104 desde un proveedor de contenido 106 (FIGURA 1). El proceso 300 prosigue en el bloque 304 en el que se realiza la inicialización del analizador 205. La inicialización se puede activar mediante un comando de adquisición generado independientemente 306. Por ejemplo, un proceso que sea independiente del analizador 205 y se base en una planificación de televisión recibida externamente y la información de alineación del canal puede generar el comando de adquisición 306. Adicionalmente, se pueden introducir los descriptores de memoria intermedia 308 de la transmisión continua (TS) de transporte en tiempo real para ayudar tanto en la inicialización como en el procesamiento principal. FIGURE 3 illustrates a flow chart of an example of a process 300 that analyzer 205 can follow when analyzing the various elementary continuous transmissions in packets described above. The process 300 begins in block 302 when multimedia data 104 is received from a content provider 106 (FIGURE 1). The process 300 continues in block 304 in which the initialization of the analyzer 205 is carried out. The initialization can be activated by an independently generated acquisition command 306. For example, a process that is independent of the analyzer 205 and is based on a schedule of externally received television and channel alignment information can generate the acquisition command 306. Additionally, you can enter the buffer descriptors 308 of the real-time transport transmission (TS) in real time to aid in both initialization and The main processing.

Como se ilustra en el bloque 304, la inicialización puede incluir la adquisición de una verificación de sintaxis de comandos, realización de un primer paso PSI/PSIP/SI (información específica de programa / protocolo de información de programa y sistema / información del sistema) de procesamiento, la realización de un procesamiento específicamente relacionado tanto con el comando de adquisición como con la verificación de la consistencia PSI/PSIP/SI, la asignación de una memoria intermedia PES para cada PES y el establecimiento de tiempos (por ejemplo, para la alineación con el instante deseado de comienzo de la adquisición). La memoria intermedia de PES mantiene los datos ES analizados y comunica cada dato ES analizado a un decodificador de audio correspondiente 216, codificador de prueba 220, decodificador 214 o generador de PTS de transcodificador 215. As illustrated in block 304, initialization may include the acquisition of a command syntax check, completion of a first step PSI / PSIP / SI (program specific information / program information protocol and system / system information) processing, the performance of a processing specifically related to both the acquisition command and the verification of the PSI / PSIP / SI consistency, the allocation of a PES buffer for each PES and the setting of times (for example, for the alignment with the desired moment of beginning of the acquisition). The PES buffer maintains the analyzed ES data and communicates each analyzed ES data to a corresponding audio decoder 216, test encoder 220, decoder 214 or PTS generator of transcoder 215.

Tras la inicialización, el proceso 300 prosigue en el bloque 310 para el procesamiento principal de los datos multimedia 104 recibidos. El procesamiento del bloque 310 puede incluir un filtrado del identificador de paquete (PID) objetivo, supervisión y procesamiento PSI/PSIP/SI continuo y un proceso de tiempos (por ejemplo, para conseguir una duración de adquisición deseada) de modo que los datos multimedia entrantes se pasen a las memorias intermedias de PES apropiadas. Como resultado del procesamiento se generan los datos multimedia del bloque 310, un descriptor del programa y una indicación de ‘leída’ de la memoria intermedia de PES, que tendrán una interfaz con el decodificador 214 (FIGURA 2) como se describe en el presente documento a continuación. After initialization, the process 300 continues in block 310 for the main processing of the multimedia data 104 received. The processing of block 310 may include a filtering of the target packet identifier (PID), continuous PSI / PSIP / SI monitoring and processing and a time process (for example, to achieve a desired acquisition duration) so that the multimedia data incoming are passed to the appropriate PES buffers. As a result of the processing, the multimedia data of block 310, a program descriptor and a 'read' indication of the PES buffer are generated, which will have an interface with the decoder 214 (FIGURE 2) as described herein. then.

55 E06804241 04-11-2011 55 E06804241 04-11-2011

Después del bloque 310, el proceso 300 prosigue en el bloque 314, en el que tiene lugar la finalización de las operaciones de análisis, incluyendo la generación de un interruptor del temporizador y la liberación de las memorias intermedias del PES a continuación de su consumo. Se indica que las memorias intermedias del PES existirán para todas las transmisiones continuas elementales relevantes del programa citado en su descriptor tal como transmisiones de audio, video y subtítulos. After block 310, the process 300 continues in block 314, in which the completion of the analysis operations takes place, including the generation of a timer switch and the release of the PES buffers after consumption. It is indicated that the PES buffers will exist for all relevant elementary continuous transmissions of the program cited in its descriptor such as audio, video and subtitle transmissions.

Con referencia de nuevo a la FIGURA 2, el analizador 205 envía la ES de audio 208 a un decodificador de audio 216 que corresponde a la implementación del transcodificador y proporciona el texto codificado 216 a la capa de sincronismo 240 y la decodificación de la información de audio. La información de subtítulos 212 se suministra a un codificador de texto 220. Los datos de subtitulado oculto (CC) 218 desde un decodificador 214 se proporcionan también al codificador del texto 220, que codifica la información de subtítulos 212 y los datos de CC 218 en un formato afectado por el transcodificador 200. With reference again to FIGURE 2, the analyzer 205 sends the audio ES 208 to an audio decoder 216 corresponding to the transcoder implementation and provides the encoded text 216 to the synchronization layer 240 and the decoding of the information Audio. The subtitle information 212 is supplied to a text encoder 220. The hidden subtitling (CC) data 218 from a decoder 214 is also provided to the text encoder 220, which encodes the subtitle information 212 and the CC data 218 in a format affected by transcoder 200.

El analizador/decodificador 202 incluye también el decodificador 214, que recibe la ES de video 206. El decodificador 214 puede generar metadatos asociados con los datos de video, decodifica la transmisión continua elemental en paquetes de video codificada en video en bruto 224 (por ejemplo, en un formato de definición estándar) y procesa los datos de subtitulado oculto de video en la transmisión continua de ES de video. The analyzer / decoder 202 also includes the decoder 214, which receives the video ES 206. The decoder 214 can generate metadata associated with the video data, decodes the elementary continuous transmission in video packets encoded in raw video 224 (for example , in a standard definition format) and processes hidden video captioning data in the continuous transmission of video ES.

La FIGURA 4 muestra un diagrama de flujo que ilustra un ejemplo de un proceso de decodificación 400 que se puede realizar por el decodificador 214. El proceso 400 comienza con la entrada de datos de transmisión continua elemental de video 206 en el bloque 402. El proceso 400 prosigue en el bloque 404 en el que se inicializa el decodificador. La inicialización puede incluir un número de tareas, incluyendo la detección de una cabecera de secuencia de video (VSH), la realización de un primer paso del procesamiento de la VSH, la secuencia de video (VS) y la Extensión de Visualización VS (incluyendo el formato de video, colores primarios y coeficientes de matriz) y la asignación de memorias intermedias de datos para almacenar respectivamente la imagen decodificada, los datos asociados y los datos de subtitulado oculto (CC). Adicionalmente, se introduce la información de ‘leída’ de la memoria intermedia PES de video 406 proporcionada por el analizador 205 (por ejemplo, que se puede generar por el proceso 300 en el bloque 310 de la FIGURA 3). FIGURE 4 shows a flowchart illustrating an example of a decoding process 400 that can be performed by decoder 214. Process 400 begins with the input of elementary video streaming data 206 in block 402. The process 400 continues in block 404 in which the decoder is initialized. Initialization can include a number of tasks, including the detection of a video sequence header (VSH), the completion of a first step of the VSH processing, the video sequence (VS) and the VS Display Extension (including the video format, primary colors and matrix coefficients) and the allocation of data buffers to store respectively the decoded image, the associated data and the hidden subtitling (CC) data. Additionally, the "read" information of the video PES buffer 406 provided by the analyzer 205 (for example, which can be generated by process 300 in block 310 of FIGURE 3) is entered.

Tras la inicialización en el bloque 404, el proceso 400 prosigue en el bloque 408 en el que se realiza el procesamiento principal de la ES de video por parte del decodificador 214. El procesamiento principal incluye la extracción la información de ‘leída’ de la memoria intermedia del PES de video o “interfaz” sobre la disponibilidad de nuevos datos, la decodificación de la ES de video, la reconstrucción y almacenamiento de los datos de píxeles en la sincronización de los límites de la imagen, la generación de metadatos de video y a/v y su almacenamiento en los límites de la imagen y el almacenamiento de los datos de CC en los límites de imagen. Los resultados del bloque 410 del procesamiento principal 408 incluye la generación de descriptores de secuencia, descriptores de memoria intermedia de imagen decodificada, descriptores de memoria intermedia de metadatos y descriptores de memoria intermedia de datos de CC. After initialization in block 404, process 400 continues in block 408 in which the main processing of the video ES is performed by the decoder 214. The main processing includes extracting the 'read' information from memory. Intermediate of the video PES or “interface” on the availability of new data, decoding of the video ES, reconstruction and storage of pixel data in the synchronization of image boundaries, the generation of video metadata already / v and its storage in the image limits and the storage of the CC data in the image limits. The results of block 410 of main processing 408 include the generation of sequence descriptors, decoders of decoded image buffer, metadata buffer descriptors and CC data buffer descriptors.

Después del procesamiento principal 408, el proceso 400 prosigue en el bloque 412 en el que realiza un proceso de finalización. El proceso de finalización puede incluir la determinación de las condiciones de finalización, incluyendo que no aparezcan nuevos datos durante una duración particular por encima de un umbral predeterminado, la detección de una secuencia de código final y/o la detección de una señal de finalización explícita. El proceso de finalización puede incluir además la liberación de las memorias intermedias de la imagen decodificada, los metadatos asociados y los datos de CC posteriormente a su consumo por un preprocesador que se describirá a continuación. El proceso 400 finaliza en el bloque 414 en el que entra en un estado de espera a que se reciba como entrada una ES de video. After main processing 408, process 400 continues in block 412 in which it performs a completion process. The termination process may include the determination of the termination conditions, including no new data appearing for a particular duration above a predetermined threshold, the detection of a final code sequence and / or the detection of an explicit termination signal . The finalization process may also include the release of the buffers of the decoded image, the associated metadata and the CC data after consumption by a preprocessor which will be described below. The process 400 ends in block 414 in which it enters a waiting state until a video ES is received as input.

Preprocesador Preprocessor

La FIGURA 2, y con más detalle la FIGURA 6, ilustran un aspecto de muestra de un preprocesador 226 que puede usar información del contenido para una o más operaciones de peprocesamiento. El preprocesador 226 recibe metadatos 222 y datos de video 224 en “bruto” decodificados desde el analizador/decodificador 202. El preprocesador 226 se configura para realizar ciertos tipos de procesamiento sobre los datos de video 224 y los metadatos 222 y proporcionar multimedia procesada (por ejemplo, cuadros de referencia de la capa base, cuadros de referencia de la capa de mejora, información de ancho de banda, información del contenido) y video al decodificador 228. Tal preprocesamiento de los datos multimedia puede mejorar la calidad visual, desescalonado y eficiencia de compresión de los datos. En general, el preprocesador 226 recibe secuencias de video proporcionadas por el decodificador 214 en el analizador/decodificador 202 y convierte las secuencias de video en secuencias de video progresivas para su procesamiento adicional (por ejemplo codificación) por el codificador 228. En algunos aspectos, el preprocesador 226 se puede configurar para numerosas operaciones, incluyendo telecine inverso, desentrelazado, filtrado (por ejemplo, eliminación de artificiosidades, desanillado, supresión de bloques y supresión de ruido), redimensionamiento (por ejemplo, reducción de la resolución espacial a partir de la definición estándar hasta un Cuarto de Matriz Gráfica de Video (QVGA)) y generación de una estructura GOP (por ejemplo calculando la generación de un mapa de complejidad, detección de cambio de escena y detección de desvanecimiento/flash). FIGURE 2, and in more detail FIGURE 6, illustrate a sample aspect of a preprocessor 226 that can use content information for one or more peprocessing operations. Preprocessor 226 receives metadata 222 and "raw" video data 224 decoded from the analyzer / decoder 202. Preprocessor 226 is configured to perform certain types of processing on video data 224 and metadata 222 and provide processed multimedia (by example, reference tables of the base layer, reference tables of the improvement layer, bandwidth information, content information) and video to the decoder 228. Such preprocessing of the multimedia data can improve visual quality, scaling and efficiency of data compression. In general, the preprocessor 226 receives video sequences provided by the decoder 214 in the analyzer / decoder 202 and converts the video sequences into progressive video sequences for further processing (eg coding) by the encoder 228. In some aspects, the preprocessor 226 can be configured for numerous operations, including reverse telecine, deinterlacing, filtering (for example, elimination of artificialities, de-planing, block suppression and noise suppression), resizing (for example, reduction of spatial resolution from standard definition up to a Quarter of Graphic Video Matrix (QVGA)) and generation of a GOP structure (for example calculating the generation of a complexity map, scene change detection and flash / flash detection).

El preprocesador 226 puede usar los metadatos del decodificador para afectar a una o más de las operaciones de The preprocessor 226 may use the decoder metadata to affect one or more of the operations of

55 E06804241 04-11-2011 55 E06804241 04-11-2011

preprocesamiento. Los metadatos pueden incluir información que se relaciona con, describe o clasifica el contenido de los datos multimedia (“información de contenido”); en particular los metadatos pueden incluir una clasificación del contenido. En algunos aspectos, los metadatos no incluyen la información del contenido deseada para operaciones de codificación. En tales casos el preprocesador 226 se puede configurar para determinar la información del contenido y usar la información del contenido para operaciones de preprocesamiento y/o proporcionar la información del contenido a otros componentes del transcodificador 200, por ejemplo el decodificador 228. En algunos aspectos, el preprocesador 226 puede usar dicha información del contenido para influenciar la división del GOP, determinar el tipo de filtrado apropiado y/o determinar los parámetros de codificación que se comunican a un codificador. preprocessing Metadata may include information that relates to, describes or classifies the content of multimedia data ("content information"); In particular, metadata may include a classification of content. In some aspects, metadata does not include the desired content information for encoding operations. In such cases the preprocessor 226 can be configured to determine the content information and use the content information for preprocessing operations and / or provide the content information to other components of the transcoder 200, for example the decoder 228. In some aspects, preprocessor 226 may use said content information to influence the division of the GOP, determine the appropriate type of filtering and / or determine the encoding parameters that are communicated to an encoder.

La FIGURA 6 muestra un ejemplo ilustrativo de varios en bloques de proceso que se pueden incluir en el preprocesador 226 e ilustran el procesamiento que se puede realizar por el preprocesador 226. En este ejemplo, el preprocesador 226 recibe metadatos y video 222, 224 y proporciona datos de salida 614 que comprenden metadatos y video (procesados) al codificador 228. Típicamente, hay tres tipos de video que se pueden recibir. Primero, el video recibido puede ser video progresivo, en el que no se requiere desentrelazado. Segundo, los datos de video pueden ser video de telecine, video entrelazado convertido a partir de secuencias de película de 24 imágenes por segundo, en cuyo caso se puede requerir una operación de telecine inverso. Tercero, el video puede ser video no de telecine entrelazado. El preprocesador 226 puede procesar estos tipos de video como se describe a continuación. FIGURE 6 shows an illustrative example of several in process blocks that can be included in preprocessor 226 and illustrate the processing that can be performed by preprocessor 226. In this example, preprocessor 226 receives metadata and video 222, 224 and provides 614 output data comprising metadata and video (processed) to encoder 228. Typically, there are three types of video that can be received. First, the received video can be progressive video, in which deinterlacing is not required. Second, the video data may be telecine video, interlaced video converted from film sequences of 24 images per second, in which case a reverse telecine operation may be required. Third, the video can be non-interlaced telecine video. Preprocessor 226 can process these types of video as described below.

En el bloque 601, el preprocesador 226 determina si los datos de video recibidos 222, 224 son video progresivo. En algunos casos, esto se puede determinar a partir de los metadatos si los metadatos contienen tal información o mediante el procesamiento de los datos de video en sí. Por ejemplo, un proceso de telecine inverso, descrito a continuación, puede determinar si el video recibido 222 es video progresivo. Si lo es, el proceso prosigue en el bloque 607 en el que se realizan las operaciones de filtrado (por ejemplo supresión de ruido) sobre el video para reducir el ruido, tal como el ruido blanco gausiano. Si los datos de video 222, 224 no son video progresivo, en el bloque 600 el proceso prosigue al bloque 604 a un detector de fase 604. In block 601, preprocessor 226 determines whether the received video data 222, 224 is progressive video. In some cases, this can be determined from metadata if the metadata contains such information or through the processing of the video data itself. For example, a reverse telecine process, described below, can determine whether the received video 222 is progressive video. If it is, the process continues in block 607 in which the filtering operations (for example noise suppression) are performed on the video to reduce noise, such as Gaussian white noise. If the video data 222, 224 is not progressive video, in block 600 the process proceeds to block 604 to a phase detector 604.

El detector de fase 604 distingue entre video que se originó en un telecine y el que comienza en un formato de emisión estándar. Si se toma la decisión de que el video era de telecine (la ruta de decisión SÍ que sale del detector de fase 604), el video de telecine se devuelve a su formato original en el telecine inverso 606. Las tramas redundantes se identifican y se eliminan y los campos derivados del mismo cuadro de video se recomponen en una imagen completa. Dado que la secuencia de las imágenes de película reconstruidas fueron registradas fotográficamente a intervalos regulares 1/24 de segundo, el proceso de estimación del movimiento realizado en un divisor GOP 612 o el decodificador 228 es más preciso usando las imágenes de telecine invertidas en lugar de los datos de telecine, que tienen una base de tiempos irregular. The phase detector 604 distinguishes between video that originated in a telecine and the one that begins in a standard broadcast format. If the decision is made that the video was from telecine (the decision path YES coming out of the phase detector 604), the telecine video is returned to its original format in reverse telecine 606. The redundant frames are identified and they delete and the fields derived from the same video frame are recomposed into a complete image. Since the sequence of the reconstructed film images were photographed at regular intervals 1/24 of a second, the process of estimating the movement performed on a GOP 612 splitter or decoder 228 is more accurate using the inverted telecine images instead of Telecine data, which has an irregular time base.

En un aspecto, el detector de fase 604 toma ciertas decisiones después de la recepción de un cuadro de video. Estas decisiones incluyen: (i) si el video presente es de una salida de telecine y la fase de extracción 3:2 es una de las 5 fases P0, P1, P2, P3 y P4 mostradas a la FIGURA 38 y (ii) el video se generó como NTSC convencional. Esa decisión se indica como la fase P5. Esas decisiones aparecen como salidas del detector de fase 604 mostrado en laFIGURA 2. La ruta desde el detector de fase 604 etiquetada “SÍ” actúa sobre el telecine inverso 606, indicando que se le ha suministrado la fase de adaptación correcta de modo que puede clasificar los campos que se formaron a partir de la misma imagen fotográfica y combinarlos. La ruta desde el detector de fase 604 etiquetada “NO” actúa de modo similar sobre el desentrelazador 605 para separar un cuadro NTSC aparente en campos para su procesamiento óptimo. El detector de fase 604 puede analizar continuamente los cuadros de video debido a que se pueden recibir en cualquier momento diferentes tipos de video. Como ejemplo, se puede insertar video de acuerdo con la norma NTSC en el video como un anuncio. Después del telecine inverso, el video progresivo resultante se envía a un supresor de ruido (filtro) 607 que se puede usar para reducir el ruido blanco gausiano. In one aspect, the phase detector 604 makes certain decisions after the reception of a video frame. These decisions include: (i) if the present video is of a telecine output and the 3: 2 extraction phase is one of the 5 phases P0, P1, P2, P3 and P4 shown in FIGURE 38 and (ii) the Video was generated as conventional NTSC. That decision is indicated as phase P5. These decisions appear as outputs of the phase detector 604 shown in FIGURE 2. The route from the phase detector 604 labeled "YES" acts on the reverse telecine 606, indicating that the correct adaptation phase has been supplied so that you can classify the fields that were formed from the same photographic image and combine them. The route from the phase detector 604 labeled "NO" acts similarly on deinterlacer 605 to separate an apparent NTSC frame into fields for optimal processing. The phase detector 604 can continuously analyze the video frames because different types of video can be received at any time. As an example, video can be inserted according to the NTSC standard in the video as an advertisement. After reverse telecine, the resulting progressive video is sent to a noise suppressor (filter) 607 that can be used to reduce white Gaussian noise.

Cuando se reconoce video NTSC convencional (el recorrido NO desde el detector de fase 601), se transmite al desentrelazador 605 para compresión. El desentrelazador 605 transforma los campos entrelazados en video progresivo y se pueden realizar entonces las operaciones de supresión de ruido sobre el video progresivo. Se describe a continuación un ejemplo ilustrativo del proceso de desentrelazado. When conventional NTSC video is recognized (the NO path from phase detector 601), it is transmitted to deinterlacer 605 for compression. Deinterlacer 605 transforms the interlaced fields into progressive video and noise suppression operations can then be performed on the progressive video. An illustrative example of the deinterlacing process is described below.

Los dispositivos de video analógicos tradicionales como los televisores reproducen el video de una manera entrelazada, es decir tales dispositivos transmiten las líneas de barrido numeradas pares (campos pares) y líneas de barrido numeradas impares (campos impares). Desde el punto de vista del muestreo de la señal, esto es equivalente a un submuestreado espacio-temporal en un patrón descrito por: Traditional analog video devices such as televisions reproduce the video in an interlaced manner, that is, such devices transmit even numbered scan lines (even fields) and odd numbered scan lines (odd fields). From the point of view of signal sampling, this is equivalent to a space-time subsample in a pattern described by:

Θ(x,y,n), si ymod2 = 1para campos pares, Θ (x, y, n), if ymod2 = 1 for even fields,

F(x,y,n) = Θ(x,y,n), si ymod2 = 1para campos impares , [1] F (x, y, n) = Θ (x, y, n), if ymod2 = 1 for odd fields, [1]

En caso contrario,borrado,Otherwise, deleted,

en la que Θ se refiere a la imagen de cuadro original, F indica el campo de entrelazado y (x, y, n) representan las posiciones horizontal, vertical y temporal de un píxel respectivamente. in which Θ refers to the original frame image, F indicates the interlacing field and (x, y, n) represent the horizontal, vertical and temporal positions of a pixel respectively.

55 E06804241 04-11-2011 55 E06804241 04-11-2011

Sin pérdida de generalidad, se puede suponer que n = 0 es un campo par a lo largo de esta divulgación de modo que la Ecuación 1 anterior se simplifica como Without loss of generality, it can be assumed that n = 0 is an even field throughout this disclosure so that Equation 1 above is simplified as

Θ(x,y,n), si ymod2 = n mod2,Θ (x, y, n), if ymod2 = n mod2,

F(x,y,n) = [2] F (x, y, n) = [2]

En casocontrario,borrado, Otherwise, deleted,

Dado que la reducción no se realiza en la dimensión horizontal, el patrón de submuestreado se puede representar en la siguiente coordenada n ~ y. Since the reduction is not performed in the horizontal dimension, the subsample pattern can be represented in the following coordinate n ~ y.

El objetivo de un desentrelazador es transformar el video entrelazado (una secuencia de campos) en cuadros progresivos no entrelazados (una secuencia de cuadros). En otras palabras, interpolar los campos pares e impares para “recuperar” o generar los cuadros de imagen completos. Esto se puede representar mediante la Ecuación 3: The goal of a deinterlacer is to transform the interlaced video (a sequence of fields) into progressive non-interlaced frames (a sequence of frames). In other words, interpolate the odd and even fields to "recover" or generate the complete picture frames. This can be represented by Equation 3:

F(x,y,n), ymod2 = n mod2,F (x, y, n), ymod2 = n mod2,

F (x,y,n) = [3] F (x, y, n) = [3]

o Fi (x,y,n), en otro caso, or Fi (x, y, n), otherwise,

en la que Fi representa los resultados del desentrelazado para píxeles perdidos. in which Fi represents deinterlacing results for lost pixels.

La FIGURA 40 es un diagrama de bloques que ilustra ciertos aspectos de un aspecto de un desentrelazador 605 que usa el filtrado Wmed y estimación de movimiento para generar un cuadro progresivo a partir de datos multimedia entrelazados. La parte superior de la FIGURA 40 muestra un mapa de intensidad de movimiento 4002 que se puede generar usando información a partir el campo actual, dos campos previos (Campo PP y Campo P) y dos campos posteriores (Campo Siguiente y Campo Siguiente al Siguiente). El mapa de intensidad de movimiento 4002 clasifica o divide, el cuadro actual en dos o más niveles de movimiento diferentes y se puede generar mediante un filtrado espacio temporal, descrito con más detalle en el presente documento a continuación. En algunos aspectos, el mapa de intensidad de movimiento 4002 se genera para identificar áreas estáticas, áreas de movimiento lento y áreas de movimiento rápido como se describe con referencia a las Ecuaciones 4-8 a continuación. Un filtro espacio temporal, por ejemplo el filtro Wmed 4004, filtra los datos multimedia entrelazados usando criterios en base al mapa de intensidad del movimiento y produce un cuadro de desentrelazado provisional espacio temporal. En algunos aspectos, el proceso de filtrado Wmed involucra una proximidad horizontal de [-1, 1], una proximidad vertical de [-3, 3] de cinco campos adyacentes, que se representan por los cinco campos (Campo PP, Campo P, Campo Actual, Campo Siguiente, Campo Siguiente al Siguiente) ilustrados en la FIGURA 40, en la que Z-1 representa un retardo de un campo. En relación al Campo Actual, el Campo Siguiente y el Campo P son campos sin paridad y el Campo PP y el Campo Siguiente al Siguiente son campos de paridad. La proximidad usada para el filtrado espacio-temporal se refiere a la localización espacial y temporal de campos y píxeles realmente usados durante la operación de filtrado y se puede ilustrar como una apertura, como se muestra, por ejemplo, en las Figuras 6 y 7. FIGURE 40 is a block diagram illustrating certain aspects of an aspect of a deinterlacer 605 that uses Wmed filtering and motion estimation to generate a progressive frame from interlaced multimedia data. The upper part of FIGURE 40 shows a motion intensity map 4002 that can be generated using information from the current field, two previous fields (PP Field and P Field) and two subsequent fields (Next Field and Next to Next Field) . The motion intensity map 4002 classifies or divides, the current frame into two or more different levels of motion and can be generated by a temporal space filtering, described in more detail in this document below. In some aspects, the motion intensity map 4002 is generated to identify static areas, slow moving areas and fast moving areas as described with reference to Equations 4-8 below. A temporary space filter, for example the Wmed 4004 filter, filters interlaced multimedia data using criteria based on the motion intensity map and produces a temporary temporary space deinterlacing box. In some aspects, the Wmed filtering process involves a horizontal proximity of [-1, 1], a vertical proximity of [-3, 3] of five adjacent fields, which are represented by the five fields (Field PP, Field P, Current Field, Next Field, Next to Next Field) illustrated in FIGURE 40, in which Z-1 represents a delay of a field. In relation to the Current Field, the Next Field and the P Field are non-parity fields and the PP Field and the Next Next Field are parity fields. The proximity used for space-time filtering refers to the spatial and temporal location of fields and pixels actually used during the filtering operation and can be illustrated as an opening, as shown, for example, in Figures 6 and 7.

El desentrelazador 605 puede incluir también un supresor de ruido (filtro supresor de ruido) 4006 configurado para filtrar el cuadro de desentrelazado provisional espacio temporal generado mediante el filtro Wmed 4004. La supresión de ruido del cuadro de desentrelazado provisional espacio temporal hace el proceso de búsqueda de movimiento posterior más preciso especialmente si la secuencia de datos multimedia entrelazados de origen está contaminada con ruido blanco. Esto también puede al menos en parte retirar el escalonado entre filas pares e impares en una imagen Wmed. El supresor de ruido 4006 se puede implementar como una variedad de filtros que incluyen un reductor de ruido en base a una reducción de las ondículas y un filtro de ondículas de Wiener. Un reductor de ruido se puede usar para eliminar el ruido del cuadro Wmed candidato antes de que se procese adicionalmente usando información de compensación de movimiento y puede eliminar el ruido que está presente en el cuadro Wmed y retener la señal presente independientemente del contenido de frecuencia de la señal. Se pueden usar varios tipos de filtros de supresión de ruido, incluyendo los filtros de ondículas. Las ondículas son una clase de funciones usadas para localizar una señal dada tanto en los dominios del espacio como del escalado. La idea fundamental detrás de las ondículas es analizar la señal en diferentes escalas o resoluciones de modo que pequeños cambios en la representación de la ondícula produzcan un cambio correspondientemente pequeño en la señal original. The deinterlacer 605 may also include a noise suppressor (noise suppressor filter) 4006 configured to filter the temporary space deinterlacing frame generated by the Wmed filter 4004. The noise suppression of the temporary space deinterlacing frame makes the search process of more precise subsequent movement especially if the sequence of interlaced multimedia data of origin is contaminated with white noise. This can also at least partially remove the step between even and odd rows in a Wmed image. The noise suppressor 4006 can be implemented as a variety of filters that include a noise reducer based on a reduction of the wavelets and a Wiener wavelet filter. A noise reducer can be used to eliminate noise from the candidate Wmed frame before it is further processed using motion compensation information and can eliminate the noise that is present in the Wmed frame and retain the present signal regardless of the frequency content of the signal. Various types of noise suppression filters can be used, including wavelet filters. Ripples are a class of functions used to locate a given signal in both space and scaling domains. The fundamental idea behind the wavelets is to analyze the signal at different scales or resolutions so that small changes in the representation of the wavelet produce a correspondingly small change in the original signal.

Una reducción de las ondículas o un filtro de ondículas de Wiener se puede aplicar también como el supresor de ruido. La reducción de las ondículas consiste en una transformación de la ondícula de la señal con ruido, seguida por una reducción de los coeficientes de ondícula pequeños a cero (o el valor más pequeño), en tanto que se dejan los coeficientes grandes sin afectar. Finalmente, se realiza una transformación inversa para obtener la señal estimada. A reduction of the wavelets or a Wiener wavelet filter can also be applied as the noise suppressor. The reduction of the wavelets consists of a transformation of the wavelength of the signal with noise, followed by a reduction of the small wavelet coefficients to zero (or the smallest value), while the large coefficients are left unaffected. Finally, an inverse transformation is performed to obtain the estimated signal.

El filtrado supresor de ruido refuerza la precisión de la compensación de movimiento en entornos ruidosos. La supresión de ruido por reducción de la ondícula puede involucrar la reducción en el dominio de transformadas de la ondícula, y típicamente comprende tres etapas: una transformada de ondícula directa lineal, una supresión de ruido por reducción no lineal y una transformada de ondícula inversa lineal. El filtro de Wiener es un filtro óptimo MSE que se puede usar para mejorar las imágenes degradadas por la adición de ruido y difuminado. Tales filtros se conocen en general en la técnica y se describen, por ejemplo en “Ideal spatial adaptation by wavelet shrinkage”, referenciado Noise suppression filtering reinforces the precision of motion compensation in noisy environments. The suppression of noise by reduction of the wavelet can involve the reduction in the domain of transforms of the wavelet, and typically comprises three stages: a linear direct waveform transform, a noise suppression by nonlinear reduction and a linear reverse waveform transform . The Wiener filter is an optimal MSE filter that can be used to improve images degraded by the addition of noise and blur. Such filters are generally known in the art and are described, for example, in "Ideal spatial adaptation by wavelet shrinkage", referenced

50 E06804241 04-11-2011 50 E06804241 04-11-2011

anteriormente y por el documento de S. P. Ghael, A. M. Sayeed y R. G. Baraniuk, “Improvement Wavelet denoising via empirical Wiener filtering” Proceedings of SPIE, vol. 3169, págs. 389-399, San Diego, julio de 1997. previously and by the document of S. P. Ghael, A. M. Sayeed and R. G. Baraniuk, “Improvement Wavelet denoising via empirical Wiener filtering” Proceedings of SPIE, vol. 3169, p. 389-399, San Diego, July 1997.

En algunos aspectos, un filtro de supresión de ruido se basa en un aspecto de un filtro de ondícula B-spline cúbico biortogonal (4, 2). Un filtro así se puede definir mediante las siguientes transformadas directa e inversa In some aspects, a noise suppression filter is based on an aspect of a biortogonal cubic B-spline wavelet filter (4, 2). Such a filter can be defined by the following direct and reverse transforms.

31 −11 −231 −11 −2

h(z) = +(z + z )+ (z + z ) (transformada directa) [4]h (z) = + (z + z) + (z + z) (direct transform) [4]

42 8 42 8

y 5 −15 −23 −33 2 −and 5 −15 −23 −33 2 -

g(z) = z −(1+ z )− (z + z )− (z + z 4 ) (transformada inversa) [5]g (z) = z - (1+ z) - (z + z) - (z + z 4) (inverse transform) [5]

4328 32 4328 32

La aplicación de un filtro de supresión de ruido puede aumentar la precisión de la compensación de movimiento en un entorno ruidoso. Las implementaciones de tales filtros se describen adicionalmente en “Ideal spatial adaptation by wavelet shrinkage”, D.L. Donoho y I.M. Johnstone, Biometrika, vol. 8, págs. 425-455, 1994. The application of a noise suppression filter can increase the accuracy of motion compensation in a noisy environment. The implementations of such filters are further described in "Ideal spatial adaptation by wavelet shrinkage", D.L. Donoho and I.M. Johnstone, Biometrika, vol. 8, p. 425-455, 1994.

La parte inferior de la FIGURA 40 ilustra un aspecto para la determinación de la información de movimiento (por ejemplo candidatos para el vector de movimiento, estimación de movimiento, compensación de movimiento) de datos multimedia entrelazados. En particular, la FIGURA 40 ilustra una estimación de movimiento y un esquema de compensación de movimiento que se usa para generar un cuadro progresivo provisional compensado en movimiento del cuadro seleccionado y combinado a continuación con el cuadro provisional Wmed para formar un cuadro progresivo “final” resultante, mostrado como el marco al actual desentrelazado 4014. En algunos aspectos, los candidatos (o estimaciones) del vector de movimiento (“MV”) de los datos multimedia entrelazados se proporcionan al desentrelazador desde los estimadores externos del movimiento y se usan para proporcionar un punto de arranque para el estimador y compensador de movimiento bidireccional (“ME/MC”) 4018. En algunos aspectos, un selector de candidatos a MV 4022 usa los MV determinados previamente para los bloques contiguos para candidatos a MV de los bloques que se están procesando, tal como los MV de los bloques procesados previamente, por ejemplo los bloques en un cuadro previo desentrelazado 4020. La compensación del movimiento se puede realizar bidireccional, en base al cuadro desentrelazado previo 70 y a un cuadro Wmed siguiente (por ejemplo futuro) 4008. Se mezclan, o combinan un cuadro Wmed actual 4010 y un cuadro actual compensado en movimiento (“MC”) 4016, mediante un combinador 4012. Se proporciona un cuadro actual desentrelazado resultante 4014, ahora un cuadro progresivo, al ME/MC 4018 para su uso como un cuadro previo desentrelazado 4020 y también se comunica externamente al desentrelazador 605 para un procesamiento posterior. The lower part of FIGURE 40 illustrates an aspect for the determination of motion information (eg candidates for motion vector, motion estimation, motion compensation) of interlaced multimedia data. In particular, FIGURE 40 illustrates a motion estimate and a motion compensation scheme that is used to generate a provisional motion compensated progressive frame of the selected frame and then combined with the Wmed provisional frame to form a "final" progressive frame resulting, shown as the framework to the current deinterlaced 4014. In some aspects, the candidates (or estimates) of the motion vector ("MV") of the interlaced multimedia data are provided to the deinterlacer from the external estimators of the movement and are used to provide a starting point for the bidirectional motion estimator and compensator ("ME / MC") 4018. In some aspects, a MV 4022 candidate selector uses the previously determined MVs for adjacent blocks for MV candidates of the blocks that are they are processing, just like the MV of the blocks previously processed, for example the blocks in a previous table io deinterlacing 4020. Motion compensation can be performed bidirectionally, based on the previous deinterlacing frame 70 and a following Wmed frame (for example future) 4008. A current Wmed frame 4010 and a current offset moving frame are mixed, or combined. "MC") 4016, by means of a combiner 4012. A resulting deinterlaced current frame 4014, now a progressive frame, is provided to the ME / MC 4018 for use as a previous deinterlaced frame 4020 and is also communicated externally to the deinterlacer 605 for processing later.

Es posible desacoplar los esquemas de predicción de desentrelazado que comprenden una interpolación entre campos a partir de la interpolación entre campos con un esquema de desentrelazado Wmed + MC. En otras palabras, el filtrado Wmed espacio temporal se puede usar principalmente para finalidades de interpolación entre campos, en tanto que la interpolación entre campos se puede realizar durante la compensación del movimiento. Esto reduce la relación de señal a ruido de pico del resultante Wmed, aunque la calidad visual después de que se aplique la compensación del movimiento es más satisfactoria, debido que los píxeles malos de las decisiones del modo de predicción imprecisa entre campos se eliminarán del proceso de filtrado Wmed. It is possible to decouple deinterlacing prediction schemes comprising interpolation between fields from interpolation between fields with a deinterlacing scheme Wmed + MC. In other words, Wmed temporal space filtering can be used primarily for interpolation purposes between fields, while interpolation between fields can be performed during motion compensation. This reduces the signal-to-noise ratio of the resulting Wmed, although the visual quality after motion compensation is applied is more satisfactory, because bad pixels of the inaccurate prediction mode decisions between fields will be removed from the process. Wmed filtering.

Tras el telecine inverso apropiado o proceso de desentrelazado, en el bloque 608, se procesa el video progresivo para una supresión del escalonado y remuestreo (por ejemplo redimensionamiento). En algunos aspectos del remuestreo, se implementa un remuestreador de polifase para redimensionamiento del tamaño de imagen. En un ejemplo de la reducción de muestreo, la relación entre la imagen original y la redimensionada puede ser p / q, en el que p y q son enteros primos entre sí. El número total de fases que es p. La frecuencia de corte del filtro de polifase en algunos aspectos es 0,6 para factores de redimensionamiento alrededor de 0,5. La frecuencia de corte no se ajusta exactamente a la relación de redimensionamiento para reforzar la respuesta en alta frecuencia de la secuencia redimensionada. Esto permite inevitablemente algún escalonado. Sin embargo, es bien conocido que el ojo humano prefiere imágenes definidas aunque un poco escalonadas a imágenes libres de escalonamiento y borrosas. After the appropriate reverse telecine or deinterlacing process, in block 608, the progressive video is processed for suppression of scaling and resampling (eg resizing). In some aspects of resampling, a polyphase resampler for resizing image size is implemented. In an example of the sampling reduction, the relationship between the original and the resized image can be p / q, in which p and q are prime integers to each other. The total number of phases that is p. The cutoff frequency of the polyphase filter in some aspects is 0.6 for resizing factors around 0.5. The cutoff frequency does not exactly match the resizing ratio to reinforce the high frequency response of the resized sequence. This inevitably allows some stepping. However, it is well known that the human eye prefers definite but slightly staggered images to staging and blurry free images.

La FIGURA 41 ilustra un ejemplo de un remuestreado polifásico, que muestra que Las fases en la relación de redimensionamiento es ¾. La frecuencia de corte ilustrada en la FIGURA 41 es también ¾. Los píxeles originales se ilustran en la figura anterior con ejes verticales. Se dibuja también una función de sincronismo centrada alrededor de los ejes para representar la forma de onda de filtrado. Debido a que la frecuencia de corte se eligió para que fuese exactamente la misma que la relación de remuestreo, los ceros de la función de sincronismo sólo solapan las posiciones de los píxeles después del redimensionado, ilustrado la FIGURA 41 con cruces. Para hallar un valor de píxeles después del redimensionado, la contribución se puede acumular a partir de los píxeles originales como se muestra en la siguiente ecuación: FIGURE 41 illustrates an example of a multi-phase resampling, showing that the phases in the resizing ratio is ¾. The cutoff frequency illustrated in FIGURE 41 is also ¾. The original pixels are illustrated in the previous figure with vertical axes. A synchronism function centered around the axes is also drawn to represent the filtering waveform. Because the cutoff frequency was chosen to be exactly the same as the resampling ratio, the zeros of the synchronization function only overlap the pixel positions after resizing, FIGURE 41 illustrated with crosses. To find a pixel value after resizing, the contribution can be accumulated from the original pixels as shown in the following equation:

v(x) =Lu(i)× senc(πf (i − x)) [6] v (x) = Lu (i) × senc (πf (i - x)) [6]

c i=−∞ C i = −∞

55 E06804241 04-11-2011 55 E06804241 04-11-2011

en la que fc es la frecuencia de corte. El filtro polifásico 1-D anterior se puede aplicar tanto a la dimensión horizontal, la dimensión vertical. in which fc is the cutoff frequency. The above 1-D multi-phase filter can be applied to both the horizontal dimension, the vertical dimension.

Otro aspecto del remuestreo (redimensionamiento) es tener en cuenta el sobrebarrido. En una señal de televisión NTSC, una imagen tiene 486 líneas de barrido y en video digital podría tener 720 píxeles en cada línea de barrido. Sin embargo, no toda la imagen completa es visible en la televisión debido a desajustes entre el tamaño y el formato de pantalla. La parte de la imagen que no es visible se denomina sobrebarrido. Another aspect of resampling (resizing) is to consider overbarrido. In an NTSC television signal, an image has 486 scan lines and in digital video it could have 720 pixels in each scan line. However, not the entire image is visible on television due to mismatches between size and screen format. The part of the image that is not visible is called an overdraft.

Para ayudar a las emisoras a poner información útil en el área visible por tantos televisores como sea posible, la Sociedad de Ingeniería de Imágenes en Movimiento y Televisión (SMPTE) definió tamaños específicos del cuadro de acción denominadas área segura de acción y área segura de títulos. Véanse las prácticas recomendadas del SMPTE RP 27.3-1989 sobre Specifications for Safe Action and Safe Title Areas Test Pattern for Television Systems. El área segura de acción se define por el SMPTE como el área en la que “debe tener lugar toda acción significativa”. El área segura de títulos se define como el área en la que “se puede confinar toda la información útil para asegurar la visibilidad en la mayoría de los receptores de televisión domésticos”. To help broadcasters put useful information in the visible area by as many televisions as possible, the Society of Motion Picture and Television Engineering (SMPTE) defined specific sizes of the action box called the safe area of action and the secure area of titles . See the best practices of SMPTE RP 27.3-1989 on Specifications for Safe Action and Safe Title Areas Test Pattern for Television Systems. The safe area of action is defined by the SMPTE as the area in which "all significant action must take place". The secure title area is defined as the area in which "all useful information can be confined to ensure visibility on most domestic television receivers."

Por ejemplo, con referencia a la FIGURA 25, el área segura de datos 2510 ocupa el centro del 90% de la pantalla, dando un 5% de borde a todo alrededor. El área segura de títulos 2505 ocupa el centro del 80% de la pantalla, dando un 10% de borde. Con referencia ahora a la FIGURA 26, debido a que la área segura de títulos es tan pequeña, para añadir más contenido en la imagen, algunas emisoras pondrán texto en el área segura de acción, lo que está dentro del cuadro rectangular blanco 2615. For example, with reference to FIGURE 25, the secure data area 2510 occupies the center of 90% of the screen, giving a 5% edge all around. The secure title area 2505 occupies the center of 80% of the screen, giving a 10% edge. With reference now to FIGURE 26, because the secure title area is so small, to add more content in the image, some stations will put text in the safe area of action, which is inside the white rectangular box 2615.

Normalmente se pueden ver bordes negros en el sobrebarrido. Por ejemplo, en la FIGURA 26 aparecen bordes negros en el lado superior 2620 en el lado inferior 2625 de la imagen. Estos bordes negros se pueden eliminar en el sobrebarrido, debido a que el video H.264 usa extensión de los límites en la estimación del movimiento. Los bordes negros extendidos pueden aumentar la parte residual. Conservadoramente, los límites pueden cortarse en un 2% y hacer a continuación el redimensionamiento. Se pueden generar en consecuencia los filtros para redimensionamiento. El truncado se realiza para eliminar el sobrebarrido antes de una reducción de muestreo polifásica. Normally you can see black borders on the overbarrido. For example, in FIGURE 26 black borders appear on the upper side 2620 on the lower side 2625 of the image. These black borders can be eliminated in the overbarrido, because the H.264 video uses extension of the limits in the estimation of the movement. Extended black edges can increase the residual part. Conservatively, the limits can be cut by 2% and then resize. The filters for resizing can be generated accordingly. Truncation is done to eliminate overbarrido before a reduction of multi-phase sampling.

Con referencia de nuevo a la FIGURA 6, el video progresivo prosigue entonces al bloque 610 en el que se realizan las operaciones de supresión de bloques y desanillado. Tienen lugar comúnmente dos tipos de artificiosidades, “bloques” y “anillado”, en las aplicaciones de compresión de video. Las artificiosidades de bloques ocurren debido a que los algoritmos de compresión dividen cada trama en bloques (por ejemplo bloques de 8x8). Cada bloque se reconstruye con algunos pequeños errores y los errores en los bordes de un bloque contrastan a menudo con los errores en los bordes de los bloques contiguos, haciendo visibles los límites entre bloques. Por el contrario, las artificiosidades de anillos aparecen como distorsiones alrededor de los bordes de las características de la imagen. Las artificiosidades de anillos suceden debido a que el codificador descarta demasiada información en la cuantificación de los coeficientes DCT de alta frecuencia. En algunos ejemplos ilustrativos, tanto el supresión de bloques como el desanillado puede usar filtros FIR (respuesta de impulsos finita) paso bajo para ocultar estas artificiosidades visibles. With reference again to FIGURE 6, the progressive video then proceeds to block 610 in which the block suppression and unscrewing operations are performed. Two types of artifice, "blocks" and "banding," commonly occur in video compression applications. Block artificialities occur because the compression algorithms divide each frame into blocks (for example 8x8 blocks). Each block is reconstructed with some small errors and the errors on the edges of a block often contrast with the errors on the edges of the adjacent blocks, making the boundaries between blocks visible. On the contrary, the artificialities of rings appear as distortions around the edges of the characteristics of the image. Ring artificialities occur because the encoder discards too much information in the quantification of high frequency DCT coefficients. In some illustrative examples, both block suppression and re-stripping may use low-pass FIR (finite pulse response) filters to hide these visible artifice.

En un ejemplo el procesamiento del supresión de bloques, un filtro de supresión de bloques se puede aplicar a todos los bordes de los bloques 4x4 de un cuadro, excepto los bordes en los límites del cuadro y cualquier borde para el que se deshabilite el proceso de filtro de supresión de bloques. El proceso de filtrado se realizará en base a macro bloques después de la finalización del proceso de construcción del cuadro con todos los macro bloques procesados en un cuadro para incrementar las direcciones de macro bloques. Para cada macro bloque, se filtran primero los bordes verticales, de izquierda a derecha y a continuación se filtran los bordes horizontales de arriba a abajo. El filtro de supresión de bloques de luma se realiza en cuatro bordes de 16 muestras y el proceso del filtro de supresión de bloques para cada componente de croma se realiza en dos bordes de 8 muestras, para la dirección horizontal y para la dirección vertical, como se muestra en la FIGURA 39. Los valores de muestra por encima y a la izquierda del macro bloque actual que ya pueden haber sido modificados por la operación del proceso de supresión de bloques sobre los macro bloques previos se deberán usar como entrada para el proceso de filtro de supresión de bloques en el macro bloque actual y se puede modificar adicionalmente durante el filtrado del macro bloque actual. Los valores de muestra modificados durante el filtrado de los bordes verticales se pueden usar como entrada para el filtrado de los bordes horizontales para el mismo macro bloque. Un proceso de supresión de bloques se puede invocar para los componentes de luma y croma por separado. In one example block suppression processing, a block suppression filter can be applied to all the edges of the 4x4 blocks of a frame, except the edges in the frame boundaries and any edge for which the process of disabling is disabled. block suppression filter. The filtering process will be based on macro blocks after the completion of the frame construction process with all the macro blocks processed in a box to increase the macro block addresses. For each macro block, the vertical edges are filtered first, from left to right and then the horizontal edges are filtered from top to bottom. The luma block suppression filter is performed on four edges of 16 samples and the block suppression filter process for each chroma component is performed on two edges of 8 samples, for the horizontal direction and for the vertical direction, such as shown in FIGURE 39. The sample values above and to the left of the current macro block that may already have been modified by the operation of the block suppression process over the previous macro blocks should be used as input for the filter process block suppression in the current block macro and can be modified further during the filtering of the current block macro. Modified sample values during vertical edge filtering can be used as input for horizontal edge filtering for the same macro block. A block suppression process can be invoked for luma and chroma components separately.

En un ejemplo del proceso de desanillado, se puede aplicar de modo adaptativo un filtro 2-D para suavizar las áreas próximas a los bordes. Los píxeles de los bordes se someten a poco o ningún filtrado para evitar el desenfoque. In an example of the stripping process, a 2-D filter can be applied adaptively to soften the areas near the edges. Border pixels undergo little or no filtering to avoid blurring.

Divisor GOP GOP Divider

Tras la supresión de bloques y desanillado, se procesa el video progresivo por un divisor GOP 612. El posicionamiento del GOP puede incluir la detección de cambios de toma, generación de mapas de complejidad (por ejemplo, mapas de ancho de banda temporal, espacial) y división GOP adaptativa. Se describe cada uno de estos a continuación. After block suppression and unraveling, the progressive video is processed by a GOP 612 splitter. GOP positioning can include detection of tap changes, generation of complexity maps (e.g., time, spatial bandwidth maps) and adaptive GOP division. Each of these is described below.

55 E06804241 04-11-2011 55 E06804241 04-11-2011

A. Detección de cambio de escena A. Scene change detection

La detección de tomas se refiere a la determinación de cuando un cuadro en un grupo de imágenes (GOP) exhibe datos que indican que ha tenido lugar un cambio de escena. En general, dentro de un GOP. Los cuadros pueden no tener cambios significativos en cualquiera de dos o tres (o más) cuadros adyacentes o puede haber cambios lentos Shooting detection refers to the determination of when a frame in a group of images (GOP) displays data indicating that a scene change has taken place. In general, within a GOP. The frames may not have significant changes in any of two or three (or more) adjacent frames or there may be slow changes

o cambios rápidos. Naturalmente, estas clasificaciones de cambio de escena se pueden dividir adicionalmente en un nivel mayor de cambios dependiendo de una aplicación o necesidad específica. or quick changes. Naturally, these scene change classifications can be further divided into a higher level of changes depending on a specific application or need.

La detección de cambios de toma o escena es importante para una codificación de video eficiente. Típicamente, cuando no está cambiando un GOP significativamente, un cuadro I al comienzo de un GOP tiene seguido por un número de cuadros predictivos que pueden codificar suficientemente el video de modo que la decodificación posterior y visualización del video sea visualmente aceptable. Sin embargo, cuando está cambiando una escena, tanto abruptamente como lentamente, se pueden necesitar cuadros I adicionales y una codificación menos predictiva (cuadros P y cuadros B) para producir posteriormente resultados decodificados visualmente aceptables. The detection of changes of shot or scene is important for efficient video coding. Typically, when a GOP is not changing significantly, a frame I at the beginning of a GOP is followed by a number of predictive frames that can sufficiently encode the video so that subsequent decoding and viewing of the video is visually acceptable. However, when a scene is changing, both abruptly and slowly, additional frames I and less predictive coding (frames P and frames B) may be needed to subsequently produce visually acceptable decoded results.

Se describen a continuación los sistemas y procedimientos de detección y codificación de tomas que mejoran el rendimiento de los sistemas de codificación existentes. Tales aspectos se pueden implementar en el divisor de GOP 612 del preprocesador 226 (FIGURA 7) o incluirse en un dispositivo codificador que puede funcionar con o sin un preprocesador. Tales aspectos utilizan estadísticas (o métricas) que incluyen comparaciones estadísticas entre cuadros adyacentes de datos de video para determinar si ha tenido lugar un cambio de escena abrupto, una escena está cambiando lentamente o si hay luces de flash de cámaras en la escena que pueden hacer la codificación del video especialmente compleja. Las estadísticas se pueden obtener a partir de un preprocesador y enviarse entonces a un dispositivo de codificación o se pueden generar en un dispositivo de codificación (por ejemplo, mediante un procesador configurado para realizar una compensación de movimiento). Las estadísticas resultantes ayudan en la decisión de la detección de cambio de escena. En un sistema que no transcodifique, a menudo existe un preprocesador adecuado o un procesador configurable. Si el preprocesador realiza un desentrelazado ayudado por compensación de movimiento, están disponibles las estadísticas de compensación del movimiento y listas para su uso. En tales sistemas, un algoritmo de detección de tomas puede aumentar ligeramente la complejidad del sistema. The systems and procedures for detection and coding of sockets that improve the performance of existing coding systems are described below. Such aspects can be implemented in the GOP splitter 612 of the preprocessor 226 (FIGURE 7) or included in an encoder device that can operate with or without a preprocessor. Such aspects use statistics (or metrics) that include statistical comparisons between adjacent frames of video data to determine if an abrupt scene change has taken place, a scene is slowly changing or if there are camera flash lights in the scene that can make Video coding especially complex. Statistics can be obtained from a preprocessor and then sent to an encoding device or can be generated in an encoding device (for example, by a processor configured to perform motion compensation). The resulting statistics help in the decision of the scene change detection. In a system that does not transcode, there is often a suitable preprocessor or a configurable processor. If the preprocessor performs a deinterlacing aided by motion compensation, motion compensation statistics and ready for use are available. In such systems, a shot detection algorithm may slightly increase the complexity of the system.

El ejemplo ilustrativo de un detector de tomas descrito en el presente documento sólo necesita utilizar estadísticas de un cuadro previo, un cuadro actual y un cuadro siguiente y en consecuencia tiene una latencia muy baja. El detector de tomas diferencia varios tipos diferentes de eventos de toma, incluyendo el cambio de escena abrupto, el desvanecimiento cruzado y otros cambios de escena lentos y luces de flash de cámaras. Mediante la determinación de los tipos diferentes de eventos de tomas con diferentes estrategias en el codificador, se mejoran la eficiencia de codificación y la calidad visual. The illustrative example of a shot detector described herein only needs to use statistics from a previous frame, a current frame and a following frame and consequently has a very low latency. The shooting detector differentiates several different types of shooting events, including abrupt scene switching, cross fading and other slow scene changes and camera flash lights. By determining the different types of shooting events with different encoder strategies, the coding efficiency and visual quality are improved.

Se puede usar la detección de cambio de escena para cualquier sistema de codificación de video para que conserve bits inteligentemente mediante la inserción de un cuadro I a intervalos fijos. En algunos aspectos, la información de contenido obtenida por el preprocesador (por ejemplo, o bien incorporada en metadatos o calculada por el preprocesador 226) se puede usar para la detección de cambio de escena. Por ejemplo, dependiendo de la información del contenido, se pueden ajustar dinámicamente los valores de umbral u otros criterios descritos a continuación para tipos diferentes de contenido de video. Scene change detection can be used for any video encoding system to conserve bits intelligently by inserting a frame I at fixed intervals. In some aspects, the content information obtained by the preprocessor (for example, either incorporated into metadata or calculated by preprocessor 226) can be used for scene change detection. For example, depending on the content information, threshold values or other criteria described below can be dynamically adjusted for different types of video content.

La codificación de video funciona normalmente en un grupo de imágenes (GOP) estructurado. Un GOP comienza normalmente con un cuadro intra codificado (cuadro I), seguido por una serie de cuadros P (predictivo) o B (bidireccional). Típicamente un cuadro I puede almacenar todos los datos requeridos para visualizar el cuadro, un cuadro B confía en los datos en los cuadros precedentes y siguientes (por ejemplo conteniendo solamente los datos que cambian desde el cuadro precedente o es diferente de los datos en el cuadro siguiente) y un cuadro P contiene datos que han cambiado desde el cuadro precedente. En el uso común, los cuadros I se intercalan con cuadros P y cuadros B en el video codificado. En términos de tamaño (por ejemplo número de bits usados para codificar el cuadro), los cuadros I son típicamente mucho mayores que los cuadros P que a su vez son mayores que los cuadros Video encoding normally works in a structured group of images (GOP). A GOP normally begins with an intracoded frame (Table I), followed by a series of P (predictive) or B (bidirectional) frames. Typically, a table I can store all the data required to display the table, a table B relies on the data in the preceding and following tables (for example, containing only the data that changes from the preceding table or is different from the data in the table next) and a P chart contains data that has changed since the preceding chart. In common use, frames I are interspersed with frames P and frames B in the encoded video. In terms of size (for example number of bits used to encode the frame), frames I are typically much larger than frames P which in turn are larger than frames

B. B.

Para un eficiente proceso de codificación, transmisión y decodificación, la longitud de un GOP debería ser suficientemente larga para reducir la pérdida de eficiencia de los grandes cuadros I y suficientemente corta como para combatir del desajuste entre codificador y decodificador o impedimentos del canal. Además, se pueden codificar internamente macro bloques (MB) en cuadros P por la misma razón. For an efficient coding, transmission and decoding process, the length of a GOP should be long enough to reduce the loss of efficiency of the large frames I and short enough to combat the mismatch between encoder and decoder or channel impediments. In addition, macro blocks (MB) can be internally encoded in P frames for the same reason.

La detección de cambio de escena se puede usar para que un codificador de video determine una longitud del GOP apropiada e inserte cuadros I en base a la longitud del GOP, en lugar de insertar un cuadro I frecuentemente no necesario a intervalos fijos. En un sistema de video de transmisión continua práctico, el canal de comunicación queda afectado por errores de bits o pérdida de paquetes. Dónde colocar los cuadros I o MB I puede impactar significativamente en la calidad del video decodificada y la experiencia de visionado. Un esquema de codificación es usar cuadros de intra codificación para imágenes o partes de imágenes que tengan un cambio significativo frente a las imágenes o partes de imágenes previas localizadas conjuntamente. Normalmente estas regiones no se pueden predecir de modo efectivo y con eficiencia con una estimación del movimiento y la codificación se puede realizar más eficientemente si tales regiones se eximen de las técnicas de codificación de cuadros intra (por ejemplo usando Scene change detection can be used for a video encoder to determine an appropriate GOP length and insert frames I based on the length of the GOP, instead of inserting a frame I often not necessary at fixed intervals. In a practical continuous streaming video system, the communication channel is affected by bit errors or packet loss. Where to place the I or MB I frames can significantly impact the quality of the decoded video and the viewing experience. An encoding scheme is to use intra-coding frames for images or parts of images that have a significant change against the images or parts of previous images located together. Normally these regions cannot be predicted effectively and efficiently with an estimation of movement and coding can be performed more efficiently if such regions are exempted from intra frame coding techniques (for example using

55 E06804241 04-11-2011 55 E06804241 04-11-2011

codificación de cuadros B y cuadros P). En el contexto de los impedimentos de canal, esas regiones es probable que sufran de propagación de errores, que se pueden reducir o eliminar (o estar cerca de hacerlo) mediante la codificación de cuadros intra. coding of frames B and frames P). In the context of channel impediments, these regions are likely to suffer from propagation of errors, which can be reduced or eliminated (or being close to doing so) by coding intra frames.

Partes del GOP de video se puede clasificar en dos o más categorías, en el que cada región puede tener un criterio de codificación de cuadros intra diferente que puede depender de la implementación particular. Como un ejemplo, el video se puede clasificar en tres categorías: cambios de escena abruptos, desvanecimiento cruzado y otros cambios de escena lentos y luces de flash de cámaras. Parts of the video GOP can be classified into two or more categories, in which each region may have a different intra frame coding criteria that may depend on the particular implementation. As an example, the video can be classified into three categories: abrupt scene changes, cross fading and other slow scene changes and camera flash lights.

Los cambios de escena abruptos incluyen cuadros que son significativamente diferentes del cuadro previo, normalmente producidos por una operación de cámara. Dado que el contenido de estos cuadros es diferente del cuadro previo, los cuadros de cambio de escena abruptos se deberían codificar como cuadros I. Abrupt scene changes include frames that are significantly different from the previous frame, normally produced by a camera operation. Since the content of these frames is different from the previous frame, the abrupt scene change frames should be encoded as frames I.

El desvanecimiento cruzado y otros cambios de escena lentos incluyen el cambio lento de escenas, normalmente producidos por un procesamiento por ordenador de las tomas de cámara. La mezcla gradual de dos escenas diferentes puede resultar más placentera a los ojos humanos, pero supone un reto a la codificación de video. La compensación de movimiento no puede reducir la tasa de bits de esos cuadros de modo efectivo, y se pueden actualizar más MB intra para estos cuadros. Cross fade and other slow scene changes include the slow change of scenes, usually caused by computer processing of the camera shots. Gradually mixing two different scenes may be more pleasing to human eyes, but it is a challenge to video coding. Motion compensation cannot reduce the bit rate of those frames effectively, and more intra MB can be updated for these frames.

Las luces de flash de cámara o eventos de flash de cámara, tienen lugar cuando el contenido de un cuadro incluye flashes de cámara. Tales flashes son de duración relativamente corta (por ejemplo un cuadro) y extremadamente brillantes de modo que los píxeles en un cuadro que represente los flashes exhiben una luminancia inusualmente alta con relación al área correspondiente en un cuadro adyacente. Las luces de flashes de cámara desplazan la luminancia de una imagen brusca y rápidamente. Normalmente la duración de un flash de cámara es más corto que la duración del enmascaramiento temporal del sistema de visión humana (HVS), que se define típicamente como de 44 ms. Los ojos humanos no son sensibles a la calidad de estas ráfagas cortas de brillo y por lo tanto se pueden codificar toscamente. Debido a que los cuadros de luces de flash no se pueden manejar de modo efectivo con compensación de movimiento y son malos candidatos para predicción de futuros cuadros, la codificación tosca de estos cuadros no reduce la eficiencia de la codificación de los cuadros futuros. Las escenas clasificadas como luces de flash no se deberían usar para predecir otros cuadros debido a luminancia artificialmente alta y otros cuadros no se pueden usar de modo efectivo para predecir estos cuadros por la misma razón. Una vez identificados, estos cuadros se pueden retirar debido a que pueden requerir una cantidad de procesamiento relativamente alta. Una opción es retirar los cuadros de luces de flash de cámara y codificar un coeficiente de DC en su lugar; tal solución es simple, computacionalmente rápida y ahorra muchos bits. Camera flash lights or camera flash events take place when the contents of a frame include camera flashes. Such flashes are of relatively short duration (for example a frame) and extremely bright so that the pixels in a frame representing the flashes exhibit an unusually high luminance relative to the corresponding area in an adjacent frame. Camera flash lights shift the luminance of an image sharply and quickly. Normally the duration of a camera flash is shorter than the duration of temporary masking of the human vision system (HVS), which is typically defined as 44 ms. Human eyes are not sensitive to the quality of these short bursts of brightness and therefore can be coded roughly. Because flash light frames cannot be handled effectively with motion compensation and are poor candidates for prediction of future frames, the rough coding of these frames does not reduce the coding efficiency of future frames. Scenes classified as flash lights should not be used to predict other frames due to artificially high luminance and other frames cannot be used effectively to predict these frames for the same reason. Once identified, these frames can be removed because they may require a relatively high amount of processing. One option is to remove the camera flash light boxes and encode a DC coefficient instead; Such a solution is simple, computationally fast and saves many bits.

Cuando se detecta cualquiera de las categorías anteriores de cuadros, se declara un evento de toma. La detección de toma no solamente útil para mejorar la calidad de la codificación, también puede ayudar en la identificación de la búsqueda de indexado del contenido de video. Un aspecto ilustrativo de un proceso de detección de escena se describe en el presente documento a continuación. En este ejemplo, un proceso de detección de tomas calcula primero información, o métrica, para un cuadro seleccionado que se está procesando para la detección de tomas. Las métricas pueden incluir información de estimación de movimiento bidireccional y compensación de procesamiento del video y otras métricas basadas en la luminancia. When any of the previous categories of frames is detected, a shooting event is declared. Shooting detection not only useful for improving the quality of coding, it can also help in the identification of the indexed search of the video content. An illustrative aspect of a scene detection process is described herein below. In this example, a shot detection process first calculates information, or metric, for a selected frame that is being processed for shot detection. Metrics can include bidirectional motion estimation information and video processing compensation and other luminance based metrics.

Para realizar una estimación/compensación de movimiento bidireccional, se puede reprocesar una secuencia de video con un compensador de movimiento bidireccional que adapta cada bloque de 8x8 del cuadro actual con bloques en dos de los cuadros más adyacentes de los cuadros contiguos, uno en el pasado y uno en el futuro. El compensador de movimiento produce vectores de movimiento y diferencia métricas para cada bloque. La Figura 29 es una ilustración que muestra un ejemplo del ajuste de los píxeles de un cuadro actual C a un cuadro pasado P y a un cuadro futuro (o siguiente) N, y representa los vectores de movimiento de los píxeles ajustados (vector de movimiento pasado MVP, vector de movimiento futuro MVN). Se describe en el presente documento en general a continuación una descripción de una generación del vector de movimiento bidireccional y la codificación relacionada con referencia a la FIGURA 32. To perform a bidirectional motion estimation / compensation, a video sequence can be reprocessed with a bidirectional motion compensator that adapts each 8x8 block of the current frame with blocks in two of the most adjacent frames of the adjacent frames, one in the past and one in the future. The motion compensator produces metric motion and difference vectors for each block. Figure 29 is an illustration showing an example of the adjustment of the pixels of a current frame C to a past frame P and a future frame (or following) N, and represents the motion vectors of the adjusted pixels (past motion vector MVP, MVN future motion vector). A description of a generation of the bidirectional motion vector and related coding with reference to FIGURE 32 is described herein in general.

Después de determinar la información de movimiento bidireccional (por ejemplo información de movimiento que identifica los MB (mejor ajustados) en los cuadros adyacentes correspondientes), se puede generar métrica adicional (por ejemplo mediante un compensador de movimiento en el divisor del GOP 612 u otro componente adecuado) mediante varias comparaciones del cuadro actual con el cuadro siguiente y el cuadro previo. El compensador de movimiento puede producir una métrica de diferencia para cada bloque. La métrica de diferencia puede ser una suma de diferencia de cuadrados (SSD) o una suma de la diferencia absoluta (SAD). Sin pérdida de generalidad, aquí se usa la SAD como un ejemplo. After determining the bidirectional movement information (for example movement information that identifies the MB (better adjusted) in the corresponding adjacent frames), additional metrics can be generated (for example by a motion compensator in the GOP 612 splitter or other suitable component) through several comparisons of the current table with the following table and the previous table. The motion compensator can produce a difference metric for each block. The difference metric can be a sum of difference of squares (SSD) or a sum of absolute difference (SAD). Without loss of generality, SAD is used here as an example.

Para cada trama, se calcula una relación SAD, también denominada como una “relación de contraste”, como sigue: For each frame, an SAD relationship is calculated, also referred to as a "contrast ratio", as follows:

ε+ SADPε + SADP

γ= [6] γ = [6]

ε+ SADN ε + SADN

en la que SADP y SADN son la suma de las diferencias absolutas de la métrica de diferencia directa e inversa, in which SADP and SADN are the sum of the absolute differences of the direct and inverse difference metric,

40 E06804241 04-11-2011 40 E06804241 04-11-2011

respectivamente. Se debería indicar que el denominador contiene un número positivo pequeño ε para equilibrar el efecto de la unidad en el denominador. Por ejemplo, si el cuadro previo, el cuadro actual y el cuadro siguiente son idénticos, la búsqueda de movimiento conduciría a SADP = SADN = 0. En este caso, el cálculo anterior genera γ = 1 en lugar de 0 o infinito. respectively. It should be noted that the denominator contains a small positive number ε to balance the effect of the unit on the denominator. For example, if the previous table, the current table and the following table are identical, the motion search would lead to SADP = SADN = 0. In this case, the previous calculation generates γ = 1 instead of 0 or infinity.

Se puede calcular para cada cuadro un histograma de luminancia. Típicamente las imágenes multimedia tienen una profundidad de luminancia de 8 bits (por ejemplo el número de “bins”). La profundidad de luminancia usada para el cálculo del histograma de luminancia de acuerdo con algunos aspectos se puede establecer en 16 para obtener el histograma. En otros aspectos, la profundidad de luminancia se puede establecer hasta un número apropiado que puede depender del tipo de datos que se están procesando, la potencia de cálculo disponible u otros criterios predeterminados. En algunos aspectos, la profundidad de luminancia se puede establecer dinámicamente en base a una métrica calculada o recibida, tal como el contenido de los datos. A luminance histogram can be calculated for each frame. Typically multimedia images have a luminance depth of 8 bits (for example the number of "bins"). The luminance depth used for the calculation of the luminance histogram according to some aspects can be set to 16 to obtain the histogram. In other aspects, the luminance depth can be set up to an appropriate number that may depend on the type of data being processed, the available computing power or other predetermined criteria. In some aspects, the luminance depth can be set dynamically based on a calculated or received metric, such as the content of the data.

La ecuación a continuación ilustra un ejemplo del cálculo de una diferencia de histograma de luminancia (lambda): The equation below illustrates an example of the calculation of a luminance histogram difference (lambda):

N − NN - N

L L

Pi Ci i =1 Pi Ci i = 1

λ= λ =

[7]  [7]

N N

en la que NPi es el número de bloques en el iº bin para el cuadro previo y NCi es el número de bloques en el iº bin para el cuadro actual y N es el número de bloques total en un cuadro. Si la diferencia de histograma de luminancia del cuadro previo y actual son completamente diferentes (o disjuntos), entonces λ = 2. where NPi is the number of blocks in the 1st bin for the previous frame and NCi is the number of blocks in the 1st bin for the current frame and N is the total number of blocks in a frame. If the luminance histogram difference of the previous and current table are completely different (or disjoint), then λ = 2.

Usando esta información, se calcula una métrica de diferencia de cuadro (D) como sigue: Using this information, a table difference metric (D) is calculated as follows:

γγ

D = C+ Aλ(2λ+ 1) [8] D = C + Aλ (2λ + 1) [8]

γ P γ P

ε+ SAD ε+ SADε + SAD ε + SAD

en la que A es una constante elegida por aplicación, γ= P y γ= PP .where A is a constant chosen by application, γ = P and γ = PP.

C ε+ SADN P ε+ SADC C ε + SADN P ε + SADC

El cuadro seleccionado (actual) se clasifica como un cuadro de cambio de escena abrupto si la métrica de diferencia del cuadro satisface el criterio mostrado en la Ecuación 9: The selected (current) frame is classified as an abrupt scene change frame if the difference metric in the frame satisfies the criteria shown in Equation 9:

γγ

D =γ CP + Aλ(2λ+ 1) ≥ T1 [9] D = γ CP + Aλ (2λ + 1) ≥ T1 [9]

en la que A es una constante elegida por aplicación, y T1 es un umbral. in which A is a constant chosen by application, and T1 is a threshold.

En una simulación de ejemplo muestra que, fijando A = 1 y T1 = 5, se consigue un buen rendimiento de detección. Si el cuadro actual es un cuadro de cambio de escena abrupta, entonces γC debería ser grande y γP debería ser In an example simulation it shows that, by setting A = 1 and T1 = 5, a good detection performance is achieved. If the current frame is an abrupt scene change frame, then γC should be large and γP should be

γγ

pequeña. Se puede usar la relación C en lugar de γC solamente de modo que se normalice la métrica al nivel de little. The C ratio can be used instead of γC only so that the metric is normalized to the level of

γ P actividad del contexto. γ P context activity.

Se debería indicar que el criterio anterior usa la diferencia de histograma de luminancia lambda (λ) en una forma no lineal. La FIGURA 16 ilustra que λ*(2λ+1) es una función inversa. Cuando λ es pequeña (por ejemplo cercana a cero) apenas se preenfatiza. Cuanto más grande se haga λ, mayor énfasis se realiza por la función. Con este preénfasis, para cualquier λ mayor de 1,4, se detecta un cambio de escena abrupto si el umbral T1 se establece en 5. It should be noted that the above criterion uses the lambda luminance histogram difference (λ) in a non-linear manner. FIGURE 16 illustrates that λ * (2λ + 1) is an inverse function. When λ is small (for example near zero) it is hardly pre-emphasized. The larger λ is made, the greater emphasis is placed on the function. With this pre-emphasis, for any λ greater than 1.4, an abrupt scene change is detected if the threshold T1 is set to 5.

El cuadro actual se determina que es un desvanecimiento cruzado o un cambio de escena lento si la métrica de intensidad de escena D satisface el criterio mostrado en la Ecuación 5: The current table is determined to be a cross fade or a slow scene change if the scene intensity metric D satisfies the criteria shown in Equation 5:

T2 ≤ D < T1 [10] T2 ≤ D <T1 [10]

para un cierto número de cuadros continuos, en el que T1 es el mismo umbral usado anteriormente y T2 es otro valor de umbral. for a certain number of continuous frames, in which T1 is the same threshold used previously and T2 is another threshold value.

Un evento de luz de flash normalmente produce que el histograma de luminancia salte a un lado más brillante. En este aspecto ilustrativo de cámara, la estadística del histograma de luminancia se usa para determinar si el cuadro actual comprende luces de flash de cámara. Un proceso de detección de toma puede determinar si la luminancia del cuadro actual menos es mayor que la luminancia del cuadro previo en un cierto umbral T3 y la luminancia del cuadro actual es mayor que la luminancia del siguiente cuadro en el umbral T3, como se muestra las Ecuaciones 11 y 12. A flash light event usually causes the luminance histogram to jump to a brighter side. In this illustrative camera aspect, the statistics of the luminance histogram is used to determine if the current frame comprises camera flash lights. A shot detection process can determine whether the luminance of the current frame less is greater than the luminance of the previous frame at a certain threshold T3 and the luminance of the current frame is greater than the luminance of the next frame at the threshold T3, as shown Equations 11 and 12.

YC –YP ≥T3 [11] YC –YP ≥T3 [11]

17 E06804241 04-11-2011 17 E06804241 04-11-2011

YC –YN ≥T3 [12] YC –YN ≥T3 [12]

Si no se satisface el criterio anterior, no se clasifica el cuadro actual como que comprende luces de flash de cámara. Si se satisface el criterio, el proceso de detección de toma determina si una métrica de diferencia hacia atrás SADP y la métrica de diferencia hacia delante SADN son mayores que un cierto umbral T4, como se ilustra en las Ecuaciones If the above criteria is not met, the current frame is not classified as comprising camera flash lights. If the criterion is met, the shot detection process determines whether a SADP backward difference metric and SADN forward difference metric are greater than a certain T4 threshold, as illustrated in the Equations

5 a continuación: 5 below:

SADP ≥ T4 [13] SADP ≥ T4 [13]

SADN ≥ T4 [14] SADN ≥ T4 [14]

en la que YC es la luminancia media del cuadro actual, YP es la luminancia mediante el cuadro previo, YN es la luminancia media del siguiente cuadro y SADP y SADN son las métricas de diferencia hacia adelante y hacia atrás where YC is the average luminance of the current frame, YP is the luminance using the previous frame, YN is the average luminance of the next frame, and SADP and SADN are the forward and backward difference metrics

10 asociadas con el cuadro actual. 10 associated with the current table.

El proceso de detección de toma determina eventos de flash de cámara determinando primero si la luminancia de un cuadro actual es mayor que la luminancia del cuadro previo y la luminancia del cuadro siguiente. Si no, el cuadro no es un evento de flash de cámara; pero si es sí, podría serlo. El proceso de detección de tomas puede evaluar entonces si la métrica de diferencia hacia atrás es mayor que un umbral T3 y si la métrica de diferencia hacia delante The shooting detection process determines camera flash events by first determining whether the luminance of a current frame is greater than the luminance of the previous frame and the luminance of the next frame. If not, the frame is not a camera flash event; but if yes, it could be. The shot detection process can then assess whether the backward difference metric is greater than a T3 threshold and if the forward difference metric

15 es mayor que un umbral T4; si ambas condiciones se satisfacen, el proceso de detección de tomas clasifica el cuadro actual como que tiene luces de flash de cámara. Si el criterio no se satisface, el cuadro no se clasifica como ningún tipo de eventos de toma o se le puede dar una clasificación por defecto que identifica la codificación a ser realizada en el cuadro (por ejemplo salto de cuadro codificado como un cuadro I). 15 is greater than a threshold T4; If both conditions are satisfied, the shot detection process classifies the current frame as having camera flash lights. If the criterion is not satisfied, the table is not classified as any type of taking events or it can be given a default classification that identifies the coding to be performed in the table (for example, table jump encoded as a table I) .

Algunos valores de ejemplo para T1, T2, T3 y T4 se han mostrado anteriormente. Típicamente, estos valores de Some example values for T1, T2, T3 and T4 have been shown above. Typically, these values of

20 umbral se seleccionan por medio de pruebas de una implementación particular de detección de tomas. En algunos aspectos, uno más de los valores de umbral T1, T2, T3 y T4 están predeterminados y tales valores se incorporan en el clasificador de tomas en el dispositivo de codificación. En algunos aspectos, uno más de los valores de umbral T1, T2, T3 y T4 se pueden fijar durante el procesamiento (por ejemplo dinámicamente) en base al uso de información (por ejemplo metadatos) suministrada al clasificador de tomas o en base a la información calculada por el clasificador de 20 thresholds are selected through tests of a particular shot detection implementation. In some aspects, one more of the threshold values T1, T2, T3 and T4 are predetermined and such values are incorporated into the tap sorter in the coding device. In some aspects, one more of the threshold values T1, T2, T3 and T4 can be set during processing (for example dynamically) based on the use of information (eg metadata) supplied to the tap sorter or based on the information calculated by the classifier of

25 tomas por sí mismo. 25 shots for himself.

La codificación del video usando la información de detección de tomas se realiza típicamente en el codificador, pero se describe aquí para completar la divulgación de la detección de tomas. Con referencia a la FIGURA 30, un proceso de codificación 301 puede usar la información de detección de tomas para codificar el video en base a la toma detectada en la secuencia de cuadros. El proceso 301 prosigue en el bloque 303 y hace una comprobación 30 para ver si el cuadro actual se clasifica como un cambio de escena abrupto. Si es así, en el bloque 305 del cuadro actual se puede codificar como un cuadro I y se puede determinar un límite de GOP. Si no, el proceso 301 prosigue en el bloque 307; si el cuadro actual se clasifica como una parte de una escena que cambia lentamente en el bloque 309 el cuadro actual y otros cuadros en la escena que cambia lentamente se puede codificar como un cuadro predictivo (por ejemplo un cuadro P o un cuadro B). El proceso 301 prosigue entonces hacia el bloque 311 en el que Video coding using the shot detection information is typically performed in the encoder, but is described here to complete the disclosure of the shot detection. With reference to FIGURE 30, an encoding process 301 can use the shot detection information to encode the video based on the shot detected in the frame sequence. Process 301 continues in block 303 and checks 30 to see if the current frame is classified as an abrupt scene change. If so, in block 305 of the current frame it can be encoded as a frame I and a GOP limit can be determined. If not, process 301 continues in block 307; If the current frame is classified as a part of a scene that slowly changes in block 309 the current frame and other frames in the slowly changing scene can be encoded as a predictive frame (for example a P frame or a B frame). The process 301 then continues towards block 311 in which

35 comprueba si el cuadro actual se clasificará como una escena de luz de flash que comprende flashes de cámara. Si es así, en el bloque 313 el cuadro se puede identificar para un procesamiento especial, por ejemplo, su eliminación o codificación con un coeficiente de DC para el cuadro; si no es así, no se realiza ninguna clasificación del cuadro actual y el cuadro actual se puede codificar de acuerdo con otros criterios, codificado como un cuadro I o retirado. 35 checks if the current frame will be classified as a flash light scene that includes camera flashes. If so, in block 313 the frame can be identified for special processing, for example, its elimination or coding with a DC coefficient for the frame; if not, no classification of the current table is made and the current table can be coded according to other criteria, coded as a table I or removed.

En el aspecto descrito anteriormente, la cantidad de diferencia entre el cuadro a ser comprimido y sus dos cuadros In the aspect described above, the amount of difference between the frame to be compressed and its two frames

40 adyacentes se indica por la métrica de diferencia de cuadro D. Si se detecta una cantidad significativa de cambio unidireccional en la luminancia, significa un efecto de desvanecimiento cruzado en el cuadro. Cuanto más prominente sea el desvanecimiento cruzado, mayor ganancia se obtendrá mediante el uso de cuadros B. En algunos aspectos, se usa una métrica de diferencia de cuadro modificada como se muestra en la ecuación a continuación. Adjacent 40 is indicated by the table D difference metric. If a significant amount of unidirectional change in luminance is detected, it means a cross-fade effect in the frame. The more prominent the cross fade, the greater the gain will be obtained through the use of B squares. In some aspects, a modified table difference metric is used as shown in the equation below.

dP − dNdP - dN

−α + 2α −α + 2α

××

D, si Y D, yes Y

−Δ≥ C ≥ +Δ +Δ≤ C ≤ −Δ,−Δ≥ C ≥ + Δ + Δ≤ C ≤ −Δ,

Y Y óY Y YAND AND OR AND AND AND

P N P NP N P N

D1 D1

= =

[15][fifteen]

d + dd + d

P N P N

D, en caso contrarioD, otherwise

45 en la que dP = |YC – YP| y dN = |YC – YN| son la diferencia de luma entre el cuadro actual y el cuadro previo y la diferencia de luma entre el cuadro actual y el siguiente cuadro, respectivamente, Δ representa una constante que se puede determinar en una experimentación normal dado que puede depender de la implementación y α es una variable de ponderación que tiene un valor entre 0 y 1. 45 in which dP = | YC - YP | and dN = | YC - YN | are the difference in luma between the current and the previous table and the difference in luma between the current and the next table, respectively, Δ represents a constant that can be determined in a normal experimentation since it can depend on the implementation and α It is a weighting variable that has a value between 0 and 1.

B. Generación del mapa de ancho de banda 50 El preprocesador 226 (FIGURA 6) se puede configurar también para generar un mapa de ancho de banda que se B. Generation of the bandwidth map 50 The preprocessor 226 (FIGURE 6) can also be configured to generate a bandwidth map that can be

puede usar para la codificación de datos multimedia. En algunos aspectos, un módulo de clasificación del contenido 18 You can use for multimedia data encoding. In some aspects, a content classification module 18

E06804241 04-11-2011 E06804241 04-11-2011

712 en el codificador 228 (FIGURA 7) genera el mapa de ancho de banda en su lugar. 712 in encoder 228 (FIGURE 7) generates the bandwidth map instead.

La cualidad visual humana V puede ser una función tanto de la complejidad de codificación C como de los bits asignados B (también denominado como ancho de banda). La FIGURA 5 es un gráfico que ilustra esta relación. Se debería indicar que la métrica de complejidad de codificación C considera frecuencias espaciales y temporales desde el punto de vista de la visión humana. Para distorsiones más sensibles a los ojos humanos, el valor de complejidad es correspondientemente más alto. Puede asumirse típicamente que V es decreciente monótonamente en C y monótonamente creciente en B. The human visual quality V can be a function of both the coding complexity C and the assigned bits B (also referred to as bandwidth). FIGURE 5 is a graph illustrating this relationship. It should be noted that the coding complexity metric C considers spatial and temporal frequencies from the point of view of human vision. For distortions more sensitive to human eyes, the complexity value is correspondingly higher. It can typically be assumed that V is monotonously decreasing in C and monotonously increasing in B.

Para conseguir una calidad visual constante, se asigna un ancho de banda (Bi) al objeto iº (cuadro o MB) a ser To achieve a constant visual quality, a bandwidth (Bi) is assigned to the object i (frame or MB) to be

codificado que satisface los criterios expresados en las dos ecuaciones inmediatamente continuación: coded that satisfies the criteria expressed in the two equations immediately below:

Bi = B(Ci, V)Bi = B (Ci, V)
[16]  [16]

B = L i BiB = L and Bi
[17]  [17]

En las dos ecuaciones inmediatamente anteriores, Ci es la complejidad de codificación del objeto iº, B es el ancho de banda total disponible y V es la cualidad visual conseguida para un objeto. La cualidad visual humana es difícil de formular como una ecuación. Por lo tanto, la ecuación establecida anteriormente no se define con precisión. Sin embargo, si se supone que el modelo 3-D es continuo en todas las variables, la relación de ancho de banda (Bi/B) se puede tratar como inalterada dentro de la proximidad de un par (C, V). La relación de ancho de banda βi se define en la ecuación mostrada a continuación: In the two immediately preceding equations, Ci is the coding complexity of the object i, B is the total available bandwidth and V is the visual quality achieved for an object. Human visual quality is difficult to formulate as an equation. Therefore, the equation set out above is not defined precisely. However, if the 3-D model is assumed to be continuous in all variables, the bandwidth ratio (Bi / B) can be treated as unchanged within the proximity of a pair (C, V). The bandwidth ratio βi is defined in the equation shown below:

BiBi

β= β =

[18]  [18]

iB iB

La asignación de bits se puede definir entonces como se expresa en las ecuaciones a continuación: The bit allocation can then be defined as expressed in the equations below:

βi = β(Ci) βi = β (Ci)

1 = LBi para (Ci, V) ∈δ(C0, V0) [19]  1 = LBi for (Ci, V) ∈δ (C0, V0) [19]

i i

en la que δ indica la “vecindad”. in which δ indicates the "neighborhood".

La complejidad de codificación queda afectada por la sensibilidad visual humana, tanto espacial como temporal. El modelo de visión humana de Girod es un ejemplo de modelo que se puede usar para definir la complejidad espacial. Este modelo considera la frecuencia espacial local y la iluminación ambiente. La métrica resultante se denomina Dcsat. En un punto de procesamiento en el proceso, si una imagen ha de ser intra-codificada o inter-codificada no es conocido y se generan las relaciones de ancho de banda para ambas. Los bits se asignan de acuerdo con la relación entre βINTRA de diferentes objetos de video. Para imágenes intra-codificadas, la relación de ancho de banda se expresa en la ecuación a continuación: The complexity of coding is affected by human visual sensitivity, both spatial and temporal. Girod's model of human vision is an example of a model that can be used to define spatial complexity. This model considers the local spatial frequency and ambient lighting. The resulting metric is called Dcsat. At a processing point in the process, if an image is to be intra-encoded or inter-encoded it is not known and bandwidth relationships are generated for both. The bits are assigned according to the relationship between βINTRA of different video objects. For intra-encoded images, the bandwidth ratio is expressed in the equation below:

βINTRA = β0INTRA log10(1 + αINTRA Y2 Dcsat) [20] βINTRA = β0INTRA log10 (1 + αINTRA Y2 Dcsat) [20]

En la ecuación anterior, Y es el componente de luminancia media de un macro bloque, αINTRA es un factor de ponderación para el cuadrado de la luminancia y el término Dcsat que la sigue, β0INTRA es un factor de normalización para garantizar 1 = LBi . Por ejemplo, un valor para αINTRA = 4 consigue una calidad visual buena. La información In the previous equation, Y is the average luminance component of a macro block, αINTRA is a weighting factor for the square of the luminance and the Dcsat term that follows it, β0INTRA is a normalization factor to guarantee 1 = LBi. For example, a value for αINTRA = 4 achieves a good visual quality. Information

i i

del contenido (por ejemplo una clasificación del contenido) se puede usar para establecer αINTRA en un valor que corresponde a un nivel de calidad visual buena deseado para el contenido particular del video. En un ejemplo, si el contenido del video comprende una emisión de noticias con una “cabeza parlante”, el nivel de calidad visual se puede fijar más bajo debido a que la imagen de información o parte que se puede visualizar del video puede ser considerado como menos importante que la parte de audio y se pueden asignar menos bits para codificar los datos. En otro ejemplo, si el contenido de video comprende un evento deportivo, la información de contenido se puede usar para fijar αINTRA en un valor que corresponde a un nivel de calidad visual más alto debido a que las imágenes visualizadas pueden ser más importantes para un observador y en consecuencia se pueden asignar más bits para codificar los datos. of content (for example a classification of content) can be used to set αINTRA to a value that corresponds to a good visual quality level desired for the particular content of the video. In one example, if the video content includes a news broadcast with a "talking head", the visual quality level can be set lower because the information image or part that can be viewed from the video can be considered as less important than the audio part and less bits can be assigned to encode the data. In another example, if the video content comprises a sporting event, the content information can be used to set αINTRA to a value that corresponds to a higher level of visual quality because the images displayed may be more important to an observer. and consequently more bits can be assigned to encode the data.

Para comprender esta relación, se debería indicar que se asigna ancho de banda logarítmicamente con la complejidad de la codificación. El término cuadrado de la luminancia Y2 refleja el hecho de que los coeficientes con magnitudes más grandes usan más bits para codificarse. Para impedir que el logaritmo entre en valores negativos, se añade la unidad al término en el paréntesis. Se pueden usar también logaritmos con otras bases. To understand this relationship, it should be noted that bandwidth is logarithmically allocated with the complexity of the coding. The square term of luminance Y2 reflects the fact that coefficients with larger magnitudes use more bits to encode. To prevent the logarithm from entering negative values, the unit is added to the term in the parentheses. Logarithms can also be used with other bases.

La complejidad temporal se determina mediante la medición de una métrica de diferencia de cuadro, que mide la diferencia entre dos cuadros consecutivos teniendo cuenta la cantidad de movimiento (vectores de movimiento). Con una métrica de diferencia de cuadro tal como la suma de las diferencias absolutas (SAD). Temporal complexity is determined by measuring a frame difference metric, which measures the difference between two consecutive frames taking into account the amount of movement (motion vectors). With a table difference metric such as the sum of the absolute differences (SAD).

55 E06804241 04-11-2011 55 E06804241 04-11-2011

La asignación de bits para imágenes inter-codificadas pueden considerar la complejidad espacial así como la temporal. Esto se expresa a continuación: Bit allocation for inter-encoded images may consider spatial as well as temporal complexity. This is expressed below:

2 )) [21]2)) [21]

βINTER = β0INTER log10 (1+α⋅SSD ⋅ D exp (− γ βINTER = β0INTER log10 (1 + α⋅SSD ⋅ D exp (- γ

MVP + MVNMVP + MVN

INTER csat INTER csat

En la ecuación anterior MVP y MVN son los vectores de movimiento hacia adelante y hacia atrás del MB actual (véase la FIGURA 29). Se puede indicar que Y2 en la fórmula del ancho de banda de intra-codificación se sustituye In the previous equation MVP and MVN are the forward and backward motion vectors of the current MB (see FIGURE 29). It can be indicated that Y2 in the intra-coding bandwidth formula is replaced

por la suma de las diferencias cuadradas (SSD). Para comprender el papel de by the sum of the square differences (SSD). To understand the role of

MVP +MVN MVP + MVN

2 en la ecuación 2 in the equation

anterior, nótense las siguientes características del sistema visual humano: las áreas que experimentan un above, note the following characteristics of the human visual system: the areas that experience a

movimiento suave, predecible (un pequeño smooth, predictable movement (a small

MVP + MVN MVP + MVN

2 ) atraen la atención y puede ser seguidas por el ojo y 2) attract attention and can be followed by the eye and

típicamente no pueden tolerar más distorsión que en las regiones fijas. Sin embargo, las áreas que experimentan un They typically cannot tolerate more distortion than in fixed regions. However, the areas that experience a

movimiento rápido o impredecible (un gran fast or unpredictable movement (a great

MVP + MVN MVP + MVN

2 ) no pueden ser seguidas y puede tolerarse una 2) cannot be followed and a

cuantificación significativa. Los experimentos muestran que αINTRA = 1, γ = 0,001 consigue una buena cualidad visual. significant quantification. Experiments show that αINTRA = 1, γ = 0.001 achieves a good visual quality.

C. División del GOP adaptativo C. Adaptive GOP Division

En otro ejemplo ilustrativo del procesamiento que se puede realizar por el preprocesador 226, el Divisor de GOP 612 de la FIGURA 6 puede cambiar también adaptativamente la composición de un grupo de imágenes codificadas juntas y se explica con referencia un ejemplo que usa MPEG2. Algunas normas de compresión de video antiguas (por ejemplo MPEG2) no requieren que un GOP tenga una estructura regular, aunque se puede imponer una. La secuencia MPEG2 comienza siempre con un cuadro I, es decir uno que se ha codificado sin referencia a imágenes previas. El formato de GOP MPEG2 se predispone normalmente en el codificador mediante la fijación del espaciado en el GOP de las imágenes P o predictivas que siguen al cuadro I. Los cuadros P son imágenes que en parte se han predicho a partir de imágenes I o P previas. Los cuadros entre el cuadro I de comienzo y los cuadros P sucesivos se codifican como cuadros B. Un cuadro “B” (B se refiere a bidireccional) puede usar las imágenes previa y siguiente I o P tanto individualmente como simultáneamente como referencia. El número de bits necesarios para codificar un cuadro I como media excede el número de bits necesarios para codificar un cuadro P; de la misma manera el número de bits necesarios para codificar un cuadro P excede en media el necesario para un cuadro B. Un cuadro que se salta, si se usa, no requerirá ningún bit para su representación. In another illustrative example of the processing that can be performed by the preprocessor 226, the GOP Divider 612 of FIGURE 6 can also adaptively change the composition of a group of images encoded together and an example using MPEG2 is explained with reference. Some old video compression standards (for example MPEG2) do not require a GOP to have a regular structure, although one can be imposed. The MPEG2 sequence always begins with a frame I, that is one that has been encoded without reference to previous images. The MPEG2 GOP format is normally predisposed in the encoder by fixing the GOP spacing of the P or predictive images that follow Table I. P frames are images that have been partly predicted from previous I or P images. . The frames between the beginning frame I and the successive frames P are encoded as frames B. A frame "B" (B refers to bidirectional) can use the previous and next images I or P both individually and simultaneously as a reference. The number of bits needed to encode a frame I on average exceeds the number of bits needed to encode a frame P; in the same way the number of bits needed to encode a frame P exceeds the average necessary for a frame B. A frame that is skipped, if used, will not require any bit for its representation.

El concepto subyacente al uso de cuadros P y B y, en los algoritmos de compresión más recientes, el salto de cuadros para reducir la tasa de datos necesarios para representar el video es la eliminación de la redundancia temporal. Cuando la redundancia temporal es alta —es decir, hay un pequeño cambio de imagen a imagen— el uso de imágenes P, B o saltadas representa eficientemente la transmisión continua de video, debido a que las imágenes I o P decodificadas anteriormente se usan posteriormente como referencias para decodificar otras imágenes P o B. The concept underlying the use of P and B frames and, in the most recent compression algorithms, the jump of frames to reduce the rate of data needed to represent the video is the elimination of temporal redundancy. When the temporal redundancy is high - that is, there is a small change from image to image - the use of P, B or skipped images efficiently represents the continuous transmission of video, because previously decoded I or P images are subsequently used as references to decode other P or B images.

La división del GOP adaptativo se basa en el uso de este concepto adaptativamente. Las diferencias entre cuadros se cuantifican y se toma una decisión automáticamente para representar la imagen mediante cuadros I, P, B o saltado después de que se hayan realizado las pruebas adecuadas sobre las diferencias cuantificadas. Una estructura adaptativa tiene ventajas no disponibles en una estructura de GOP fija. Una estructura fija ignorará la posibilidad de que ha tenido lugar un pequeño cambio en el contenido; un procedimiento adaptativo permitiría que se inserten muchos más cuadros B entre cada I y P o dos cuadros P, produciendo de ese modo el número de bits necesarios para representar adecuadamente la secuencia de cuadros. A la inversa cuando el cambio del contenido de video es significativo, la eficiencia de los cuadros P se reduce grandemente debido a que la diferencia entre los cuadros predichos y de referencia es demasiado grande. Bajo estas condiciones, el ajuste de los objetos puede caer fuera de las regiones de búsqueda de movimiento o la similitud entre los objetos de ajuste se reduce debido a la dispersión producida por los cambios en el ángulo de la cámara. En ese punto los cuadros P o el I que ésta adyacente al cuadro P se deberían elegir como más cercanos entre sí y se deberían insertar menos cuadros B. Un GOP dijo no puede realizar ese ajuste. The division of the adaptive GOP is based on the use of this concept adaptively. The differences between frames are quantified and a decision is made automatically to represent the image using frames I, P, B or skipped after the appropriate tests on the quantified differences have been performed. An adaptive structure has advantages not available in a fixed GOP structure. A fixed structure will ignore the possibility that a small change in content has taken place; An adaptive procedure would allow many more B frames to be inserted between each I and P or two P frames, thereby producing the number of bits necessary to adequately represent the sequence of frames. Conversely when the change in video content is significant, the efficiency of the P frames is greatly reduced because the difference between the predicted and reference frames is too large. Under these conditions, the adjustment of the objects may fall outside the motion search regions or the similarity between the adjustment objects is reduced due to the dispersion produced by changes in the camera angle. At that point the P or I frames that are adjacent to the P frame should be chosen as closer to each other and fewer B frames should be inserted. A GOP said it cannot make that adjustment.

En el sistema desvelado en el presente documento, estas condiciones se detectan automáticamente. La estructura del GOP es flexible y se realiza para adaptarse a estos cambios en el contenido. El sistema evalúa una métrica de diferencia de cuadro, que se puede considerar como la medición de la distancia entre cuadros, con las mismas propiedades aditivas de distancia. Conceptualmente, dados los cuadros F1, F2 y F3 que tienen distancias entre cuadros d12 y d23, la distancia entre F1 y F3 se toma como que es al menos d12 + d23. Las asignaciones de cuadros se realizan en base a la métrica similar a distancia. In the system disclosed in this document, these conditions are automatically detected. The structure of the GOP is flexible and is done to adapt to these changes in the content. The system evaluates a frame difference metric, which can be considered as measuring the distance between frames, with the same additive distance properties. Conceptually, given the frames F1, F2 and F3 that have distances between frames d12 and d23, the distance between F1 and F3 is taken as being at least d12 + d23. Table assignments are made based on the similar distance metric.

El divisor de GOP opera mediante la asignación de tipos de imagen a cuadros según se reciben. El tipo de imagen indica el procedimiento de predicción que se puede requerir en la codificación de cada bloque: The GOP splitter operates by assigning image types to frames as received. The type of image indicates the prediction procedure that may be required in the coding of each block:

Las imágenes I se codifican sin referencia a otras imágenes. Dado que permanecen solitarias proporcionan puntos de acceso en la transmisión continua de datos cuando puede comenzar la decodificación. Se asigna un tipo de codificación I a un cuadro si la “distancia” a su cuadro predecesor excede un umbral de cambio de escena. Images I are encoded without reference to other images. Since they remain solitary they provide access points in the continuous transmission of data when decoding can begin. A coding type I is assigned to a frame if the "distance" to its predecessor frame exceeds a scene change threshold.

Las imágenes P pueden usar las imágenes I o P previas para una predicción compensada de movimiento. Usan P images can use the previous I or P images for compensated motion prediction. Use

55 E06804241 04-11-2011 55 E06804241 04-11-2011

bloques en los campos previos o cuadros que se pueden desplazar desde el bloque que se predice como una base para la codificación. Después de que se reste el bloque de referencia del bloque que se está considerando, se codifica el bloque residual, usando típicamente la transformada de coseno discreta para la eliminación de la redundancia espacial. Se asigna un tipo de modificación P a un cuadro si la “distancia” entre él y el último cuadro asignado para ser un cuadro P excede un segundo umbral, que es típicamente menor que el primero. blocks in the previous fields or frames that can be moved from the block that is predicted as a basis for coding. After the reference block is subtracted from the block under consideration, the residual block is coded, typically using the discrete cosine transform for the elimination of spatial redundancy. A type of modification P is assigned to a frame if the "distance" between it and the last frame assigned to be a frame P exceeds a second threshold, which is typically less than the first.

Las imágenes de cuadros B pueden usar las imágenes previas y siguientes, P o I para una compensación de movimiento como se ha descrito anteriormente. Un bloque en una imagen B puede ser predicho hacia adelante, hacia atrás o bidireccionalmente o podría ser codificado internamente sin referencia a otros cuadros. En H.264 un bloque de referencia puede ser una combinación lineal de hasta 32 bloques de otros tantos cuadros. Si el cuadro no se puede asignar para ser un tipo I o P, se asigna como un tipo B, si la “distancia” desde él a su predecesor inmediato es mayor que un tercer umbral, que es típicamente menor que el segundo umbral. B-frame images can use the previous and next images, P or I for motion compensation as described above. A block in an image B can be predicted forward, backward or bidirectionally or it could be internally encoded without reference to other frames. In H.264 a reference block can be a linear combination of up to 32 blocks of as many frames. If the table cannot be assigned to be a type I or P, it is assigned as a type B, if the "distance" from it to its immediate predecessor is greater than a third threshold, which is typically less than the second threshold.

Si el cuadro no se puede asignar para convertirse en un cuadro B codificado, se asigna un estatus de “cuadro saltado”. Este cuadro se pueden saltar debido que es virtualmente una copia de un cuadro previo. If the frame cannot be assigned to become an encoded B frame, a “skipped frame” status is assigned. This frame can be skipped because it is virtually a copy of a previous frame.

La evaluación de una métrica que cuantifica la diferencia entre cuadros adyacentes en el orden de visualización es la primera parte que tiene lugar en este procesamiento. Esta métrica es la distancia a la que se ha referido anteriormente; con ella, cada cuadro se evalúa para su tipo propio. Por ello, el espaciado entre los cuadros I y el P adyacente o dos cuadros P consecutivos, puede ser variable. El cálculo de la métrica comienza por el procesamiento de los cuadros de video con un compensador de movimiento basado en bloques, siendo un bloque la unidad básica de compresión de video, compuesta normalmente por 16x16 píxeles, aunque son posibles otros tamaños de bloques tales como 8x8, 4x4 y 8x16. Para cuadros que consisten en dos campos desentrelazados, la compensación del movimiento se puede realizar en base a un campo, teniendo lugar la búsqueda de los bloques de referencia en los campos más que en los cuadros. Para un bloque en el primer campo del cuadro actual se encuentra un bloque de referencia hacia adelante en los campos del cuadro que lo siguen; de la misma manera se halla un bloque de referencia hacia atrás en campos del cuadro que precede inmediatamente al campo actual. Los bloques actuales se montan en un campo compensado. El proceso continúa con el segundo campo del cuadro. Los dos campos compensados se combinan para formar un cuadro compensado hacia adelante y hacia atrás. The evaluation of a metric that quantifies the difference between adjacent frames in the order of display is the first part that takes place in this processing. This metric is the distance referred to above; With it, each frame is evaluated for its own type. Therefore, the spacing between adjacent frames I and P or two consecutive frames P can be variable. The calculation of the metric begins with the processing of the video frames with a block-based motion compensator, the basic video compression unit, usually consisting of 16x16 pixels, being a block, although other block sizes such as 8x8 are possible , 4x4 and 8x16. For frames that consist of two deinterlaced fields, movement compensation can be performed based on one field, the reference blocks being searched in the fields rather than in the frames. For a block in the first field of the current frame there is a forward reference block in the fields of the frame that follow it; in the same way there is a backward reference block in fields of the table that immediately precedes the current field. The current blocks are mounted in a compensated field. The process continues with the second field of the table. The two offset fields combine to form a compensated frame back and forth.

Para cuadros creados en el telecine inverso 606, la búsqueda de bloques de referencia es en base solamente a cuadros, dado que sólo hay cuadros de película reconstruidos. Se hallan dos bloques de referencia y dos diferencias, hacia adelante y hacia atrás, conduciendo también a un cuadro compensado hacia adelante y hacia atrás. En resumen, el compensador de movimiento produce vectores de movimiento y métrica de diferencia para cada bloque; pero un bloque es parte de un campo NTSC en el caso de que se esté procesando la salida del desentrelazador 605 y sea parte de un cuadro de película si se procesa la salida del telecine inverso. Nótese que las diferencias en la métrica se evalúan entre un bloque en el campo o cuadro que está siendo considerado y un bloque que se ajusta mejor a él, tanto en un campo o cuadro precedente como en un campo o cuadro que lo sigue inmediatamente, dependiendo de si se está evaluando la diferencia hacia adelante o hacia atrás. Sólo los valores de luminancia entran en este cálculo. For frames created in reverse telecine 606, the reference block search is based on frames only, since there are only reconstructed film frames. There are two reference blocks and two differences, forward and backward, also leading to a compensated frame forward and backward. In summary, the motion compensator produces motion vectors and difference metrics for each block; but a block is part of an NTSC field in the event that the output of deinterlacer 605 is being processed and is part of a film frame if the output of the reverse telecine is processed. Note that the differences in the metric are evaluated between a block in the field or frame being considered and a block that best fits it, both in a preceding field or frame and in a field or frame that follows immediately, depending of whether the difference is being evaluated forward or backward. Only luminance values enter this calculation.

La etapa de compensación de movimiento garantiza de ese modo dos conjuntos de diferencias. Éstas están entre bloques de valores actuales de luminancia y los valores de luminancia en los bloques de referencia tomados a partir de cuadros que están inmediatamente por delante e inmediatamente detrás del cuadro uno en el tiempo. El valor absoluto de cada diferencia hacia adelante y cada diferencia hacia atrás se determina para cada píxel y se suma cada uno por separado a través del cuadro completo. Ambos campos incluyen en las dos sumas cuando se procesan los campos NTSC desentrelazados que comprenden un cuadro. En esta forma se hallan SADP y SADN, los valores absolutos sumados de las diferencias hacia adelante y hacia atrás. The motion compensation stage thus guarantees two sets of differences. These are between blocks of current luminance values and luminance values in the reference blocks taken from frames that are immediately ahead and immediately behind frame one in time. The absolute value of each difference forward and each difference backward is determined for each pixel and each one is added separately across the entire frame. Both fields include in the two sums when deinterlaced NTSC fields that comprise a frame are processed. In this form are SADP and SADN, the absolute values added of the differences forward and backward.

Para cada cuadro se calcula una relación SAD usando la relación, For each table an SAD relationship is calculated using the relationship,

ε+ SADPε + SADP

γ= [22] γ = [22]

ε+ SADN ε + SADN

en la que SADP y SADN son los valores absolutos sumados de las diferencias hacia adelante y hacia atrás, respectivamente. Se añade un número positivo pequeño ε al numerador para impedir el error de “división por cero”. Se añade un término ε similar al denominador, reduciendo adicionalmente la sensibilidad de γ cuando tanto SADP como SADN están cerca de cero. in which SADP and SADN are the aggregate absolute values of the forward and backward differences, respectively. A small positive number ε is added to the numerator to prevent the "zero division" error. A term ε similar to the denominator is added, further reducing the sensitivity of γ when both SADP and SADN are close to zero.

En un aspecto alternativo, la diferencia puede ser el SSD, la suma de las diferentes cuadradas y SAD, la suma de las diferencias absolutas, o la SATD en la que los bloques de los valores de píxeles se transforma mediante la aplicación de la Transformada de Coseno Discreta bidimensional a ellos antes de que se tomen las diferencias en los elementos del bloque. Las sumas se evalúan a través del área del video, aunque se puede usar un área más pequeña en otros aspectos. In an alternative aspect, the difference can be the SSD, the sum of the different squares and SAD, the sum of the absolute differences, or the SATD in which the blocks of the pixel values are transformed by applying the Transform of Discrete cosine two-dimensional to them before the differences in the elements of the block are taken. The sums are evaluated through the video area, although a smaller area can be used in other aspects.

Se calcula también el histograma de luminancia de cada cuadro según se recibe (sin compensación de movimiento). El histograma opera en el coeficiente DC, es decir el coeficiente (0,0), en la matriz de coeficientes de 16x16 que es The luminance histogram of each frame is also calculated as received (without motion compensation). The histogram operates in the DC coefficient, that is, the coefficient (0,0), in the 16x16 coefficient matrix which is

50 E06804241 04-11-2011 50 E06804241 04-11-2011

el resultado de la aplicación de la Transformada de Coseno Discreta bidimensional al bloque de valores de luminancia si están disponibles. De modo equivalente se puede usar el valor medio de los 256 valores de luminancia en el bloque 16x16 en el histograma. Para imágenes cuya profundidad de luminancia es de ocho bits, el número de bins se establece en 16. La siguiente métrica evalúa la diferencia de histograma the result of the application of the two-dimensional Discrete Cosine Transform to the luminance value block if available. Equivalently, the average value of the 256 luminance values in the 16x16 block in the histogram can be used. For images whose luminance depth is eight bits, the number of bins is set to 16. The following metric evaluates the histogram difference

1 16 1 16

λ= L λ = L

N − N N - N

[23]  [2. 3]

Pi Ci 4 i =1 Pi Ci 4 i = 1

en la anterior, NPi es el número de bloques del cuadro previo en el iº bin y NCi es el número de bloques del cuadro actual que pertenecen en el iº bin, N es el número total de bloques en un cuadro. In the previous one, NPi is the number of blocks in the previous frame in the 1st bin and NCi is the number of blocks in the current frame that belong in the 1st bin, N is the total number of blocks in a frame.

Estos resultados intermedios se reúnen para formar la métrica de diferencia del cuadro actual como These intermediate results meet to form the difference metric of the current table as

γγ

D= C +λ(2λ+ 1) [24] D = C + λ (2λ + 1) [24]

γ P γ P

en la que γC es la relación SAD en base al cuadro actual y γP es la relación SAD en base al cuadro previo. Si una escena tiene un movimiento suave y su histograma de luma apenas cambia, entonces D ≈ 1. Si el cuadro actual where γC is the SAD relationship based on the current table and γP is the SAD relationship based on the previous table. If a scene has a smooth movement and its luma histogram barely changes, then D ≈ 1. If the current frame

γγ

visualiza un cambio de escena abrupto entonces γC será grande y γP debería ser pequeño. Se usa la relación C envisualize an abrupt scene change so γC will be large and γP should be small. The relation C is used in

γ P lugar de γC en solitario de modo que se normaliza la métrica al nivel de actividad del contexto. γ P instead of γC alone so that the metric is normalized to the level of context activity.

La FIGURA 42 ilustra el proceso de asignación de tipos de compresión a cuadros. D, la diferencia de cuadro actual definida en la Ecuación 19, es la base para decisiones tomadas con respecto a las asignaciones de cuadros. Como indica el bloque de decisión 4202, si el cuadro bajo consideración es el primero en una secuencia, se sigue latrayectoria de decisión marcada SÍ al bloque 4206, declarando de ese modo el cuadro como un cuadro I. Las diferencias de cuadro acumuladas se establecen en cero en el bloque 4208 y el proceso vuelve (en el bloque 4210) al bloque de comienzo. Si el cuadro que está siendo considerado no es el primer cuadro en una secuencia, se sigue la trayectoria marcada NO desde el bloque 4202 en el que se tomó la decisión y en el bloque de prueba 4204 se prueba la diferencia de cuadro actual contra el umbral de cambio de escena. Si la diferencia de cuadro actual esmayor que ese umbral, se sigue la trayectoria de decisión marcada SÍ al bloque 4206, conduciendo de nuevo a la asignación de un cuadro I. FIGURE 42 illustrates the process of assigning compression types to frames. D, the current table difference defined in Equation 19, is the basis for decisions made regarding table assignments. As indicated by decision block 4202, if the table under consideration is the first in a sequence, the decision path marked YES is followed to block 4206, thereby declaring the table as a table I. The cumulative table differences are set to zero in block 4208 and the process returns (in block 4210) to the starting block. If the frame being considered is not the first frame in a sequence, the path marked NO is followed from block 4202 in which the decision was made and in test block 4204 the current frame difference is tested against the threshold of scene change. If the current frame difference is greater than that threshold, the decision path marked YES is followed to block 4206, again leading to the assignment of a table I.

Si la diferencia de cuadro actual es menor que el umbral de cambio de escena, se sigue la trayectoria NO al bloque 4212 en el que se añade la diferencia de cuadro actual a la diferencia de cuadro acumulada. Continuando a través del diagrama de flujo, en el bloque de decisión 4214 se compara la diferencia de cuadro acumulada con el umbral t, que es en general menor que el umbral de cambio de escena. Si la diferencia de cuadro acumulada es mayor que t, el control se transfiere al bloque 4216 y se asigna el cuadro como un cuadro P; la diferencia de cuadros acumulada se repone entonces a cero en la etapa 4218. Si la diferencia de cuadros acumulada es menor que t, el control se transfiere desde el bloque 4214 al bloque 4220. Allí la diferencia de cuadros actual se compara con τ, que es menor que t. Si la diferencia de cuadros actual es más pequeña que τ, se asigna el cuadro para ser saltado en el bloque 4222 y entonces el proceso retorna; si la diferencia de cuadro actual es mayor que τ, se asigna el cuadro para ser un cuadro B en el bloque 4226. If the current frame difference is less than the scene change threshold, the NO path is followed to block 4212 in which the current frame difference is added to the cumulative frame difference. Continuing through the flowchart, in decision block 4214 the accumulated frame difference is compared with the threshold t, which is generally less than the scene change threshold. If the cumulative frame difference is greater than t, the control is transferred to block 4216 and the frame is assigned as a P frame; the cumulative frame difference is then reset to zero in step 4218. If the cumulative frame difference is less than t, the control is transferred from block 4214 to block 4220. There the current frame difference is compared with τ, which is less than t. If the current frame difference is smaller than τ, the frame is assigned to be skipped in block 4222 and then the process returns; if the current frame difference is greater than τ, the frame is assigned to be a frame B in block 4226.

Codificador Encoder

Volviendo a referirnos a la FIGURA 2, el transcodificador 200 incluye un codificador 228 que recibe metadatos procesados y video en bruto del preprocesador 226. Los metadatos pueden incluir cualquier información recibida originalmente en el video de origen 104 y cualquier información calculada por el preprocesador 226. El codificador 228 incluye un codificador de un primer paso 230, un codificador de un segundo paso 232 y un recodificador 234. El codificador 228 recibe también una entrada desde el control del transcodificador 231 que puede proporcionar información (por ejemplo metadatos, información de resistencia frente a errores, información del contenido, información de la tasa de bits codificadas, información de equilibrio entre la capa base y la capa de mejora e información de cuantificación) desde el codificador del segundo paso 232 al codificador del primer paso 230, el recodificador 234 así como el preprocesador 226. El codificador 228 codifica el video recibido usando la información del contenido recibida del preprocesador 226 y/o la información del contenido que se genera por el codificador 228 por sí mismo, por ejemplo, mediante el módulo de clasificación del contenido 712 (FIGURA 7). Referring back to FIGURE 2, transcoder 200 includes an encoder 228 that receives processed metadata and raw video from preprocessor 226. Metadata can include any information originally received in source video 104 and any information calculated by preprocessor 226. The encoder 228 includes a first-pass encoder 230, a second-pass encoder 232 and an encoder 234. The encoder 228 also receives an input from the control of transcoder 231 which can provide information (e.g. metadata, resistance information versus errors, content information, encoded bit rate information, balance information between the base layer and the enhancement layer and quantization information) from the encoder of the second step 232 to the encoder of the first step 230, the recoder 234 as well as preprocessor 226. Encoder 228 encodes the received video use Do the content information received from the preprocessor 226 and / or the content information generated by the encoder 228 itself, for example, by the content classification module 712 (FIGURE 7).

La FIGURA 7 ilustra un diagrama de bloques de módulos funcionales que se pueden incluir en un codificador en dos pasos de ejemplo que se puede usar para el codificador 228 que se ilustra en la FIGURA 2. Se muestran en la FIGURA 7 varios aspectos de los módulos funcionales, aunque la FIGURA 7 y la descripción en el presente documento no se dirigen necesariamente a toda la funcionalidad que se puede incorporar en un codificador. En consecuencia, ciertos aspectos de los módulos funcionales se describen a continuación siguiendo a la explicación de la codificación de las capas base y de mejora a continuación. FIGURE 7 illustrates a block diagram of functional modules that can be included in an example two-step encoder that can be used for the encoder 228 illustrated in FIGURE 2. Various aspects of the modules are shown in FIGURE 7 functional, although FIGURE 7 and the description herein do not necessarily address all the functionality that can be incorporated into an encoder. Accordingly, certain aspects of the functional modules are described below following the explanation of the coding of the base and improvement layers below.

Codificación de la capa base y de la capa de mejora 22 Coding of the base layer and the improvement layer 22

60 E06804241 04-11-2011 60 E06804241 04-11-2011

El codificador 228 puede ser un codificador escalable en SNR, que puede codificar el video en bruto y los metadatos desde el preprocesador 226 en un primer grupo de datos codificados, también denominados en el presente documento como una capa base y uno o más grupos adicionales de datos codificados, también denominados en el presente documento como capas de mejora. Un algoritmo de codificación genera los coeficientes de la capa base y de la capa de mejora que, cuando se decodifican, se pueden combinar en el decodificador cuando están ambas capas disponibles para la decodificación. Cuando no están disponibles ambas capas, la codificación de la capa base le permite ser decodificada como una única capa. The encoder 228 may be an SNR scalable encoder, which can encode the raw video and metadata from the preprocessor 226 into a first set of encoded data, also referred to herein as a base layer and one or more additional groups of encoded data, also referred to herein as improvement layers. An encoding algorithm generates the coefficients of the base layer and the improvement layer which, when decoded, can be combined in the decoder when both layers are available for decoding. When both layers are not available, the coding of the base layer allows it to be decoded as a single layer.

Se describe con referencia a la FIGURA 31 un aspecto de dicho proceso de codificación de capa múltiple. En el bloque de 321, se codifica un cuadro I con macro bloques completamente intra-codificados (MB intra-codificados). En H.264, los MB intra-codificados en cuadros I se decodifican con una predicción espacial completamente aprovechada, que proporciona una cantidad significativa de ganancia de codificación. Hay dos submodos: intra 4x4 e intra 16x16. Si la capa base ha de aprovechar la ganancia de codificación proporcionada por la previsión espacial, entonces la capa base necesita estar codificada y decodificada antes de la codificación y decodificación de la capa de mejora. Se usa una codificación y decodificación de los cuadros I en dos pasos. En la capa base, un parámetro de cuantificación de la capa base QPb permite a los coeficientes de transformación un tamaño de salto de cuantificación tosco. La diferencia en cuanto a píxeles entre el cuadro original y el cuadro de la capa base reconstruido se codifica en la capa de mejora. La capa de mejora usa un parámetro de cuantificación QPe que permite un tamaño de salto de cuantificación más fino. Los medios de codificación, tal como codificador 228 de la FIGURA 2 pueden realizar la codificación en el bloque 321. An aspect of said multi-layer coding process is described with reference to FIGURE 31. In block 321, a frame I is coded with fully intracoded macro blocks (intracoded MB). In H.264, intra-encoded MBs in I-frames are decoded with a fully exploited spatial prediction, which provides a significant amount of coding gain. There are two submodes: intra 4x4 and intra 16x16. If the base layer is to take advantage of the coding gain provided by the spatial forecast, then the base layer needs to be encoded and decoded before the coding and decoding of the improvement layer. A coding and decoding of the tables I is used in two steps. In the base layer, a quantization parameter of the base layer QPb allows the transformation coefficients a rough quantization jump size. The difference in pixels between the original frame and the reconstructed base layer frame is encoded in the enhancement layer. The enhancement layer uses a quantization parameter QPe that allows a finer quantization jump size. The coding means, such as encoder 228 of FIGURE 2, can perform the coding in block 321.

En el bloque 323, un codificador codifica los datos de la capa base y los datos de la capa de mejora para los cuadros P y/o B en el GOP que están siendo procesados. Los medios de codificación, tal como el codificador 228 puede realizar la codificación en el bloque 323. En el bloque 325, el proceso de codificación comprueba si hay más cuadros P o B para codificar. Los medios de codificación, tal como el codificador escalable en SNR 228 pueden realizar el acto 325. Si permanecen más cuadros P o B, se repite la etapa 323 hasta que todos los cuadros en el GOP hayan acabado de ser codificados. Los cuadros P y B están compuestos de macro bloques intra-codificados (MB intracodificados), aunque puede haber MB intra-codificados en los cuadros P y B como se explicará a continuación. In block 323, an encoder encodes the base layer data and the improvement layer data for the P and / or B frames in the GOP being processed. The coding means, such as the encoder 228 can perform the coding in block 323. In block 325, the coding process checks whether there are more P or B frames to encode. The coding means, such as the scalable encoder in SNR 228 can perform act 325. If more P or B frames remain, step 323 is repeated until all the frames in the GOP have finished being encoded. Tables P and B are composed of intra-encoded macro blocks (intracoded MB), although there may be intra-encoded MB in tables P and B as will be explained below.

Para que el decodificador distinga entre los datos de la capa base y de la capa de mejora, el codificador 228 codifica una información de cabecera adicional, en el bloque 327. Los tipos de información de cabecera adicional incluyen, por ejemplo, datos que identifican el número de capas, datos que identifican una capa como una capa base, datos que identifican una capa como una capa de mejora, datos que identifican las interrelaciones entre capas (tal como, la capa 2 es una capa de mejora para la capa base 1, o la capa 3 es una capa de mejora para la capa base 2) o datos que identifican una capa como una capa de mejora final en una cadena de capas de mejora. La información de cabecera adicional se puede contener en cabeceras conectadas con los datos de la capa base y/o de mejora a la que pertenecen, o estar contenidos en mensajes de datos separados. Los medios de codificación, tal como el codificador 228 de la FIGURA 2 pueden realizar el proceso en el bloque 327. In order for the decoder to distinguish between the data of the base layer and the improvement layer, the encoder 228 encodes an additional header information, in block 327. The types of additional header information include, for example, data identifying the number of layers, data that identifies a layer as a base layer, data that identifies a layer as an improvement layer, data that identifies the interrelationships between layers (such as, layer 2 is an improvement layer for base layer 1, or layer 3 is an improvement layer for base layer 2) or data identifying a layer as a final improvement layer in a chain of improvement layers. Additional header information may be contained in headers connected to the data of the base and / or enhancement layer to which they belong, or be contained in separate data messages. The coding means, such as the encoder 228 of FIGURE 2, can perform the process in block 327.

Para tener una decodificación de capa simple, los coeficientes de las dos capas se combinan antes de la cuantificación inversa. Por lo tanto los coeficientes de las dos capas han de ser generados de modo interactivo; en caso contrario esto podría introducir una cantidad significativa de cabecera adicional. Una razón para el incremento de la cabecera adicional es que la codificación de la capa base y la codificación de la capa de mejora podrían usar referencias temporales diferentes. Se necesita un algoritmo para generar los coeficientes de la capa base y de la capa de mejora, que se puede combinar en el decodificador antes de la cuantificación cuando están disponibles ambas capas. A la vez, el algoritmo debería proporcionar un video de capa base aceptable cuando la capa de mejora no esté disponible o el decodificador decida no decodificar la capa de mejora por razones tales como, por ejemplo, ahorro de energía. Los detalles de un ejemplo ilustrativo de un proceso así se explicarán adicionalmente a continuación en el contexto de una breve explicación de la codificación predictiva estándar inmediatamente a continuación. To have a single layer decoding, the coefficients of the two layers are combined before inverse quantization. Therefore the coefficients of the two layers have to be generated interactively; otherwise this could introduce a significant amount of additional header. One reason for the increase in the additional header is that the coding of the base layer and the coding of the improvement layer could use different time references. An algorithm is needed to generate the coefficients of the base layer and the improvement layer, which can be combined in the decoder before quantification when both layers are available. At the same time, the algorithm should provide an acceptable base layer video when the enhancement layer is not available or the decoder decides not to decode the enhancement layer for reasons such as, for example, energy saving. The details of an illustrative example of such a process will be further explained below in the context of a brief explanation of the standard predictive coding immediately below.

Los cuadros P (o cualquier sección intra-codificada) pueden aprovechar la redundancia temporal entre una región en una imagen actual y una región de previsión del ajuste mejor en una imagen de referencia. La localización de la región de previsión del ajuste mejor en el cuadro de referencia se puede codificar en un vector de movimiento. La diferencia entre la región actual y la región de previsión de referencia del ajuste mejor es conocida como error residual (o error de predicción). P frames (or any intra-coded section) can take advantage of the temporal redundancy between a region in a current image and a region of better fit forecasting in a reference image. The location of the best fit forecast region in the reference frame can be encoded in a motion vector. The difference between the current region and the reference forecast region of the best fit is known as residual error (or prediction error).

La FIGURA 32 es una ilustración de un ejemplo de un proceso de construcción de un cuadro P en, por ejemplo, MPEG-4. El proceso 331 es una ilustración más detallada de un proceso de ejemplo que podría tener lugar en el bloque 323 de la FIGURA 31. El proceso 331 incluye la imagen actual 333 formada por 5 x 5 macro bloques, en el que el número de macro bloques en este ejemplo es arbitrario. Un macro bloque está formado por 16 x16 píxeles. Los píxeles se pueden definir por un valor de luminancia de 8 bits (Y) y dos valores de crominancia de 8 bits (Cr y Cb). En MPEG los componentes Y, Cr y Cb se pueden almacenar en un formato 4:2:0, en el que los componentes Cr y Cb se inframuestrean en 2 en las direcciones X e Y. De ahí que, cada macro bloque podría consistir en 256 componentes Y, 64 componentes Cr y 64 componentes Cb. El macro bloque 335 de la imagen actual 333 se predice a partir de la imagen de referencia 337 en un punto en el tiempo diferente al de la imagen actual 333. Se realiza una búsqueda en la imagen de referencia 337 para localizar el macro bloque del ajuste mejor 339 que esté más cercano, FIGURE 32 is an illustration of an example of a process of building a P-frame in, for example, MPEG-4. Process 331 is a more detailed illustration of an example process that could take place in block 323 of FIGURE 31. Process 331 includes the current image 333 formed by 5 x 5 macro blocks, in which the number of macro blocks In this example it is arbitrary. A macro block consists of 16 x16 pixels. Pixels can be defined by an 8-bit luminance value (Y) and two 8-bit chrominance values (Cr and Cb). In MPEG the Y, Cr and Cb components can be stored in a 4: 2: 0 format, in which the Cr and Cb components are sampled in 2 in the X and Y directions. Hence, each macro block could consist of 256 Y components, 64 Cr components and 64 Cb components. The macro block 335 of the current image 333 is predicted from the reference image 337 at a point in time different from that of the current image 333. A search is made in the reference image 337 to locate the macro block of the adjustment better 339 that is closer,

55 E06804241 04-11-2011 55 E06804241 04-11-2011

en términos de los valores de Y, Cr y Cb al macro bloque actual 335 que está siendo codificado. La localización del macro bloque del ajuste mejor 339 en la imagen de referencia 337 se codifica en el vector de movimiento 341. La imagen de referencia 337 puede ser un cuadro I o un cuadro P que un decodificador habrá reconstruido previamente a la construcción de la imagen actual 333. El macro bloque del ajuste mejor 339 se resta del macro bloque actual 335 (se calcula una diferencia para cada uno de los componentes Y, Cr y Cb) dando como resultado un error residual 343. El error residual 323 se codifica con una Transformada de Coseno Discreta (DCT) 2D 345 y se cuantifica 347 a continuación. La cuantificación 347 se puede realizar para proporcionar una compresión espacial mediante, por ejemplo, la asignación de menos bits a los coeficientes de alta frecuencia mientras que se asignan más bits a los coeficientes de baja frecuencia. Los coeficientes de cuantificación del error residual 343, junto con el vector de movimiento 341 y la imagen de referencia 333 que identifican la información, se codifica en la información que representa el macro bloque actual 335. La información codificada se puede almacenar en la memoria para un uso futuro o utilizada para finalidades de, por ejemplo, corrección de error o mejora de imagen, o transmitido a través de la red 349. in terms of the values of Y, Cr and Cb to the current macro block 335 that is being encoded. The location of the macro block of the best fit 339 in the reference image 337 is encoded in the motion vector 341. The reference image 337 may be a frame I or a frame P that a decoder will have reconstructed prior to the construction of the image current 333. The best-fit macro block 339 is subtracted from the current macro block 335 (a difference is calculated for each of the components Y, Cr and Cb) resulting in a residual error 343. The residual error 323 is coded with a Transformed Discrete Cosine (DCT) 2D 345 and quantified 347 below. Quantification 347 can be performed to provide spatial compression by, for example, assigning fewer bits to high frequency coefficients while more bits are assigned to low frequency coefficients. The quantification coefficients of the residual error 343, together with the motion vector 341 and the reference image 333 that identify the information, are encoded in the information representing the current macro block 335. The encoded information can be stored in memory for a future use or used for purposes of, for example, error correction or image enhancement, or transmitted over the 349 network.

Los coeficientes cuantificados codificados del error residual 343, junto con el vector de movimiento codificado 341 se pueden usar para reconstruir el macro bloque actual 335 en el codificador para su uso como parte de un cuadro de referencia para una estimación y compensación del movimiento posterior. El codificador puede emular el proceso de un decodificador para esta reconstrucción del cuadro P. La emulación del decodificador dará como resultado que tanto el codificador como el decodificador trabajan con la misma imagen de referencia. El proceso de reconstrucción, tanto si se realiza en codificador, para una inter-codificación adicional como en un decodificador, se presenta en el presente documento. La reconstrucción de un cuadro P se puede comenzar después de que el cuadro de referencia (o una parte de una imagen o cuadro que está siendo referenciada) se reconstruya. Los coeficientes cuantificados codificados se decuantifican 351 y entonces se realiza una DCT inversa 2D, o IDCT, 353 dando como resultado el error residual decodificado o reconstruido 355. El vector de movimiento codificado 341 se decodifica y usa para localizar el macro bloque del ajuste mejor ya reconstruido 357 en la imagen de referencia ya reconstruida 337. El error residual reconstruido 355 se añade entonces al macro bloque del ajuste mejor reconstruido 357 para formar el macro bloque reconstruido 359. El macro bloque reconstruido 359 se puede almacenar en la memoria, visualizar independientemente o en una imagen con otros macro bloques reconstruidos, o ser procesado adicionalmente para mejora de la imagen. The encoded quantified coefficients of the residual error 343, together with the encoded motion vector 341 can be used to reconstruct the current macro block 335 in the encoder for use as part of a reference chart for an estimation and compensation of the subsequent movement. The encoder can emulate the process of a decoder for this reconstruction of the P-frame. The emulation of the decoder will result in both the encoder and the decoder working with the same reference image. The reconstruction process, whether performed in an encoder, for additional inter-coding or in a decoder, is presented herein. The reconstruction of a P frame can be started after the reference frame (or a part of an image or frame being referenced) is reconstructed. The encoded quantified coefficients are quantified 351 and then a 2D inverse DCT, or IDCT, 353 is performed resulting in the decoded or reconstructed residual error 355. The encoded motion vector 341 is decoded and used to locate the macro block of the fit better and reconstructed 357 in the reference image already reconstructed 337. The reconstructed residual error 355 is then added to the macro block of the best reconstructed setting 357 to form the reconstructed macro block 359. The reconstructed macro block 359 can be stored in memory, independently displayed or in an image with other reconstructed macro blocks, or be further processed for image enhancement.

Los cuadros B (o cualquier sección codificada con predicción bidireccional) pueden aprovechar la redundancia temporal entre una región en una imagen actual y una región de predicción del ajuste mejor en una imagen previa y una región de predicción del ajuste mejor en una imagen posterior. La región de predicción del ajuste mejor posterior y la región de predicción del ajuste mejor previa se combinan para formar una región de predicción bidireccional combinada. La diferencia entre región de la imagen actual y la región de predicción bidireccional combinada del ajuste mejor es un error residual (o error de predicción). Las localizaciones de la región de predicción del ajuste mejor en la imagen de referencia posterior y la región de predicción del ajuste mejor en la imagen de referencia previa se pueden codificar en dos vectores de movimiento. The B frames (or any section encoded with bidirectional prediction) can take advantage of the temporal redundancy between a region in a current image and a region of better fit prediction in a previous image and a region of better fit prediction in a subsequent image. The prediction region of the best posterior adjustment and the prediction region of the best prior adjustment combine to form a combined bidirectional prediction region. The difference between the region of the current image and the combined bidirectional prediction region of the best fit is a residual error (or prediction error). The locations of the best fit prediction region in the subsequent reference image and the best fit prediction region in the previous reference image can be encoded into two motion vectors.

La FIGURA 33 ilustra un ejemplo de un proceso de codificador para la codificación de los coeficientes de la capa base y de la capa de mejora que se puede realizar por el codificador 228. Las capas base y de mejora se codifican para proporcionar flujos de bits escalables en SNR. La FIGURA 33 representa un ejemplo para la codificación de coeficientes de error residual inter MB tal como se haría en la etapa 323 de la FIGURA 31. Sin embargo se podrían usar procedimientos similares para codificar los coeficientes intra MB asimismo. Los medios de codificación tal como el componente codificador 228 de la FIGURA 2 pueden realizar el proceso ilustrado en la FIGURA 33 y la etapa 323 de la FIGURA 32. Los datos de video originales (a ser codificados) 361 (los datos de video comprenden información de luma y croma en este ejemplo) se introducen en un bucle de macro bloque de ajuste mejor de la capa base 363 y un bucle de macro bloque del ajuste mejor de la capa de mejora 365. El objeto de ambos bucles 363 y 365 es minimizar el error residual que se calcula en los sumadores 367 y 369 respectivamente. Los bucles 363 y 365 se pueden realizar en paralelo, como se muestra, o secuencialmente. Los bucles 363 y 365 incluyen lógica para la búsqueda en las memorias intermedias 371 y 373, respectivamente, que contienen cuadros de referencia, para identificar el macro bloque del ajuste mejor que minimice el error residual entre el macro bloque del ajuste mejor y los datos originales 361 (las memorias intermedias 371 y 373 pueden ser la misma memoria intermedia). Los errores residuales del bucle 363 y del bucle 365 serán diferentes dado que el bucle de la capa base 363 utilizará generalmente un tamaño de etapa de cuantificación más tosco (un valor QP más alto) que el bucle de la capa de mejora 365. Los bloques de transformación 375 y 377 transforman los errores residuales para cada bucle. FIGURE 33 illustrates an example of an encoder process for coding the coefficients of the base layer and the improvement layer that can be performed by the encoder 228. The base and improvement layers are encoded to provide scalable bit streams in SNR. FIGURE 33 represents an example for the coding of residual inter-error coefficients inter MB as would be done in step 323 of FIGURE 31. However, similar procedures could be used to encode intra-MB coefficients as well. The coding means such as the coding component 228 of FIGURE 2 can perform the process illustrated in FIGURE 33 and step 323 of FIGURE 32. The original video data (to be encoded) 361 (the video data comprises information of luma and chroma in this example) are introduced in a macro block loop of better adjustment of the base layer 363 and a macro block loop of the best adjustment of the improvement layer 365. The object of both loops 363 and 365 is to minimize the residual error that is calculated in adders 367 and 369 respectively. Loops 363 and 365 can be performed in parallel, as shown, or sequentially. Loops 363 and 365 include logic for searching in buffers 371 and 373, respectively, which contain reference tables, to identify the best fit macro block that minimizes the residual error between the best fit macro block and the original data. 361 (buffers 371 and 373 may be the same buffer). The residual errors of loop 363 and loop 365 will be different since the loop of the base layer 363 will generally use a rougher quantization stage size (a higher QP value) than the loop of the improvement layer 365. The blocks Transformation 375 and 377 transform the residual errors for each loop.

Los coeficientes transformados se separan entonces en coeficientes de la capa base y de la capa de mejora en el selector 379. La separación del selector 379 puede tomar varias formas, como se explica a continuación. Una característica común de las técnicas de separación es que el coeficiente de la capa de mejora, C’mej, se calcula de modo que sea un refinamiento diferencial al coeficiente de la capa base C’base. El cálculo de la capa de mejora para ser un refinamiento de la capa base permite a un decodificador decodificar el coeficiente de la capa base por sí mismo y tener una representación razonable de la imagen o combinar los coeficientes de la capa base y de mejora y tener una representación refinada de la imagen. Los coeficientes seleccionados por el selector 379 se cuantifican The transformed coefficients are then separated into coefficients of the base layer and the improvement layer in the selector 379. The separation of the selector 379 can take several forms, as explained below. A common feature of separation techniques is that the coefficient of the improvement layer, C’mej, is calculated to be a differential refinement to the coefficient of the base layer C’base. The calculation of the improvement layer to be a refinement of the base layer allows a decoder to decode the coefficient of the base layer by itself and have a reasonable representation of the image or combine the coefficients of the base and improvement layer and have A refined representation of the image. The coefficients selected by selector 379 are quantified

~~ ~~

′′′ ′

por los cuantificadores 381 y 383. Los coeficientes cuantificados Cbase y Cmej (calculados con los cuantificadores by quantifiers 381 and 383. The quantified coefficients Cbase and Cmej (calculated with the quantifiers

381 y 383 respectivamente) se pueden almacenar en la memoria o transmitir a través de una red a un decodificador. 381 and 383 respectively) can be stored in memory or transmitted through a network to a decoder.

50 E06804241 04-11-2011 50 E06804241 04-11-2011

Para ajustar la reconstrucción del macro bloque en un decodificador, el decuantificador 385 decuantifica los coeficientes de error residual de la capa base. Los coeficientes de error residual decuantificados se transforman a la inversa 387 se añaden 389 al macro bloque del ajuste mejor hallado en la memoria intermedia 371, dando como resultado un macro bloque reconstruido que se ajusta a lo que se reconstruirá en el decodificador. El cuantificador 383, decuantificador 391, transformador inverso 393, sumador 397 y memoria intermedia 373 realizan cálculos similares en el bucle de mejora 365 a los que se realizaron en el bucle de la capa base 363. Además, el sumador 393 se usa para combinar los coeficientes de la capa de mejora y de la capa base decuantificados en la reconstrucción de la capa de mejora. El cuantificador y decuantificador de la capa de mejora utilizará generalmente un tamaño de etapa de cuantificador más fino (un QP más bajo) que en la capa base. To adjust the reconstruction of the macro block in a decoder, the quantifier 385 quantifies the residual error coefficients of the base layer. The quantified residual error coefficients are reversed 387 added 389 to the macro block of the best fit found in buffer 371, resulting in a reconstructed macro block that conforms to what will be reconstructed in the decoder. Quantifier 383, quantifier 391, reverse transformer 393, adder 397 and buffer 373 perform similar calculations in the improvement loop 365 to those performed in the base layer loop 363. In addition, adder 393 is used to combine the coefficients of the improvement layer and the base layer quantified in the reconstruction of the improvement layer. The quantifier and quantifier of the enhancement layer will generally use a finer quantizer stage size (a lower QP) than in the base layer.

Las FIGURAS 34, 35 y 36 muestran ejemplos de los procesos de selector de coeficiente de la capa base y de la capa de mejora que se pueden emplear en el selector 379 de la FIGURA 33. Los medios de selección tal como él codificador 228 de la FIGURA 2 pueden realizar los procesos representados en las FIGURAS 34, 35 y 36. Usando la FIGURA 34 como ejemplo, los coeficientes transformados se dividen en coeficientes de la capa base y de mejora como se muestra en las siguientes ecuaciones: FIGURES 34, 35 and 36 show examples of the coefficient selector processes of the base layer and the improvement layer that can be used in the selector 379 of FIGURE 33. The selection means such as the encoder 228 of the FIGURE 2 can perform the processes depicted in FIGURES 34, 35 and 36. Using FIGURE 34 as an example, the transformed coefficients are divided into coefficients of the base and improvement layer as shown in the following equations:

10, siCbase y Cmej tienen signos opuestosC' base = [25] 1min(Cbase ,Cmej ), en caso contrario 10, if Base and Cmej have opposite signs C 'base = [25] 1min (Cbase, Cmej), otherwise

C’mej = Cmej – Qb -1 (Qb (C’base)) [26] C’mej = Cmej - Qb -1 (Qb (C’base)) [26]

en la que la función “min” puede ser tanto un mínimo matemático como una magnitud mínima de los 2 argumentos. La Ecuación 25 se representa como el bloque 401 y la Ecuación 26 se representa como el sumador 510 en la FIGURA 34. En la Ecuación 26, Qb se refiere al cuantificador de la capa base 381 y Qb-1 se refiere al decuantificador de la capa base 385. La Ecuación 26 convierte el coeficiente de la capa de mejora en un refinamiento diferencial del coeficiente de la capa base calculado con la Ecuación 25. in which the “min” function can be both a mathematical minimum and a minimum magnitude of the 2 arguments. Equation 25 is represented as block 401 and Equation 26 is represented as adder 510 in FIGURE 34. In Equation 26, Qb refers to the base layer quantifier 381 and Qb-1 refers to the layer quantifier base 385. Equation 26 converts the coefficient of the improvement layer into a differential refinement of the coefficient of the base layer calculated with Equation 25.

La FIGURA 35 es una ilustración de otro ejemplo de un selector del coeficiente de la capa base y de la capa de mejora 379. En este ejemplo la Ecuación (.) contenida en el bloque 405 representa lo siguiente. FIGURE 35 is an illustration of another example of a selector of the coefficient of the base layer and the improvement layer 379. In this example, Equation (.) Contained in block 405 represents the following.

−1−1

1C , si QQ (C )− C 1C, if QQ (C) - C

< C<C

base b b base mej mej C' base = base b b base mej mej C 'base =

[27] 10 , en caso contrario  [27] 10, otherwise

El sumador 407 calcula el coeficiente de la capa de mejora como se muestra en las siguientes dos ecuaciones: Adder 407 calculates the coefficient of the improvement layer as shown in the following two equations:

C’mej = Cmej – Qb -1 (Qb (C’base)) [28] C’mej = Cmej - Qb -1 (Qb (C’base)) [28]

en la que C’base viene dada por la Ecuación 27. in which C’base is given by Equation 27.

La FIGURA 36 es una ilustración de otro ejemplo de un selector de una capa base y de una capa de mejora 379. En este ejemplo, el coeficiente de la capa base no se cambia y la capa de mejora es igual a la diferencia entre el coeficiente de la capa base cuantificado/decuantificado y el coeficiente de la capa de mejora original. FIGURE 36 is an illustration of another example of a selector of a base layer and an improvement layer 379. In this example, the coefficient of the base layer is not changed and the improvement layer is equal to the difference between the coefficient of the quantized / quantified base layer and the coefficient of the original improvement layer.

Además de los coeficientes de error residual de la capa base y de mejora, el decodificador necesita información que identifique como se codifican los MB. Los medios de codificación tal como el componente codificador 228 de la FIGURA 2 pueden codificar la información de la cabecera adicional que puede incluir un mapa de partes intracodificadas e inter-codificadas, tal como, por ejemplo un mapa de MB en el que los macro bloques (o submacro bloques) se identifican como que están intra-codificados o inter-codificados (también identificando qué tipo de intercodificación, incluyendo, por ejemplo la directa, inversa o bidireccional) y que partes de los cuadros inter-codificados se referencian. En un aspecto de ejemplo, el mapa de MB y los coeficientes de la capa base se codifican en la capa base y los coeficientes de la capa de mejora se codifican en la capa de mejora. In addition to the residual error coefficients of the base and improvement layer, the decoder needs information that identifies how MBs are encoded. The coding means such as the coding component 228 of FIGURE 2 may encode the additional header information that may include a map of intracoded and intercoded parts, such as, for example, an MB map in which the macro blocks (or submacro blocks) are identified as being intracoded or intercoded (also identifying what type of intercoding, including, for example, direct, inverse or bidirectional) and which parts of the intercoded frames are referenced. In an example aspect, the MB map and the coefficients of the base layer are encoded in the base layer and the coefficients of the improvement layer are encoded in the improvement layer.

Los cuadros P y los cuadros B pueden contener MB intra-codificados así como inter MB. Es común para codificadores de video híbridos el uso de una optimización de distorsión de tasa (RD) para decidir codificar ciertos macro bloques en cuadros P o B como MB intra-codificados. Para tener una decodificación de capa simple en donde los MB intra-codificados no dependen de los inter MB de la capa de mejora, no se usa ningún inter MB contiguo para predicción espacial de los MB intra-codificados de la capa base. Para mantener la complejidad de cálculo sin cambio para la decodificación de la capa de mejora, para los MB intra-codificados en los cuadros P o B de la capa base, se podría saltar el refinamiento en la capa de mejora. P frames and B frames can contain intra-encoded MB as well as inter MB. It is common for hybrid video encoders to use a rate distortion (RD) optimization to decide to encode certain macro blocks in P or B frames as intra-encoded MB. To have a single layer decoding where the intra-encoded MBs do not depend on the inter MB of the enhancement layer, no contiguous inter MB is used for spatial prediction of the intra-encoded MBs of the base layer. To keep the calculation complexity unchanged for decoding the enhancement layer, for intra-encoded MBs in the P or B frames of the base layer, refinement could be skipped in the enhancement layer.

Los MB intra-codificados en cuadros P o B puede requerir muchos más bits que los inter MB. Por esta razón, los MB intra-codificados en cuadros P o B se podrían codificar solamente en la calidad de la capa base con un QP más alto. Esto introducirá algún deterioro en la calidad de video, pero este deterioro debería pasar desapercibido si se refina en un último cuadro con los coeficientes inter MB de la capa base y de mejora como se ha explicado anteriormente. Dos razones hacen de este deterioro desapercibido. El primero es una característica del sistema visual humano (HVS) y el otro es que los inter MB refinan los intra MB. Con objetos que cambian de posición desde el primer Intracoded MBs in P or B frames may require many more bits than inter MBs. For this reason, intra-encoded MBs in P or B frames could only be encoded in the quality of the base layer with a higher QP. This will introduce some deterioration in video quality, but this deterioration should go unnoticed if it is refined in a final frame with the inter MB coefficients of the base and improvement layer as explained above. Two reasons make this deterioration unnoticed. The first is a characteristic of the human visual system (HVS) and the other is that the inter MB refine the intra MB. With objects that change position from the first

60 E06804241 04-11-2011 60 E06804241 04-11-2011

cuadro al segundo cuadro, algunos píxeles en el primer cuadro no son visibles en el segundo cuadro (información a ser cubierta) y algunos píxeles en el segundo cuadro son visibles por primera vez (información descubierta). Los ojos humanos no son sensibles a la información visual descubierta y a ser cubierta. De modo que para la información descubierta, incluso si se codifica con una calidad más baja, los ojos pueden no notar la diferencia. Si la misma información permanece en el siguiente cuadro P, habrá una alta probabilidad de que el siguiente cuadro P en la capa de mejora pueda refinarlo debido a que la capa de mejora tiene un QP más bajo. frame to the second frame, some pixels in the first frame are not visible in the second frame (information to be covered) and some pixels in the second frame are visible for the first time (information discovered). Human eyes are not sensitive to the visual information discovered and to be covered. So for the information discovered, even if it is coded with a lower quality, the eyes may not notice the difference. If the same information remains in the following table P, there will be a high probability that the next table P in the improvement layer can refine it because the improvement layer has a lower QP.

Otra técnica común que introducen los MB intra-codificados en cuadros P o B es conocida como Intra Refresco. En este caso, algunos MB se codifican como MB intra-codificados, incluso aunque la optimización de R-D estándar dictaría que deberían ser MB inter-codificados. Estos MB intra-codificados, contenidos en la capa base, se pueden codificar o bien con un QPb o bien con un QPe. Si se usa el QPe para la capa base, entonces no se necesita ningún refinamiento en la capa de mejora. Si se usa QPb para la capa base, entonces puede ser necesario un refinamiento, en caso contrario en la capa de mejora, la caída de calidad será notable. Dado que las inter-codificaciones son más eficientes que las intra-codificaciones en el sentido de la eficiencia de codificación, estos refinamientos en la capa de mejora serán inter-codificados. En esta forma, los coeficientes de la capa base no se usarán para la capa de mejora. Por lo tanto, se obtiene una mejora de calidad en la capa de mejora sin introducir nuevas operaciones. Another common technique introduced by intra-encoded MBs in P or B frames is known as Intra Refreshment. In this case, some MB are encoded as intra-encoded MB, even though the standard R-D optimization would dictate that they should be inter-encoded MB. These intra-encoded MBs, contained in the base layer, can be encoded either with a QPb or with a QPe. If the QPe is used for the base layer, then no refinement is needed in the improvement layer. If QPb is used for the base layer, then a refinement may be necessary, otherwise in the improvement layer, the quality drop will be noticeable. Since intercodes are more efficient than intracodes in the sense of coding efficiency, these refinements in the enhancement layer will be intercoded. In this way, the coefficients of the base layer will not be used for the improvement layer. Therefore, a quality improvement is obtained in the improvement layer without introducing new operations.

Los cuadros B se usan comúnmente en las capas de mejora debido a las elevadas cualidades de compresión que ofrecen. Sin embargo, los cuadros B pueden tener que referenciar MB intra-codificados de un cuadro P. Si los píxeles del cuadro B fuesen a ser codificados en una calidad de capa de mejora, pueden requerir demasiados bits debido a la calidad más baja de los MB intra-codificados del cuadro P, como se ha explicado anteriormente. Aprovechando las cualidades del HVS, como se ha explicado anteriormente, los MB de cuadro B podrían codificarse con una calidad más baja cuando referencian MB intra-codificados de cuadros P de calidad más baja. B frames are commonly used in the improvement layers due to the high compression qualities they offer. However, frames B may have to reference intra-encoded MB of a frame P. If the pixels in frame B were to be encoded in an enhancement layer quality, they may require too many bits due to the lower quality of the MB intra-encoded table P, as explained above. Taking advantage of the qualities of HVS, as explained above, the MB of frame B could be coded with a lower quality when they reference intra-encoded MB of lower quality P frames.

Un caso extremo de MB intra-codificados de cuadros P o B es cuando todos los MB en un cuadro P o B se codifican en el modo intra debido a la presencia de un cambio de escena en el video que se está codificando. En este caso, el cuadro completo se puede codificar en la calidad de capa base sin ningún refinamiento en la capa de mejora. Si tiene lugar un cambio de escena en un cuadro B y se supone que los cuadros B sólo se codifican en la capa de mejora, entonces el cuadro B se podría codificar en la calidad de la capa base o simplemente eliminarse. Si tiene lugar un cambio de escena en un cuadro P, no se necesitaría ningún cambio, pero el cuadro P podía ser eliminado o codificado en una calidad de capa base. La codificación en capas escalable se describe adicionalmente en la Solicitud de Patente de Estados Unidos Pendiente junto con la presente Nº [expediente de representante nº de referencia 050078] titulada “SCALABLE VIDEO CODING WITH TWO LAYER ENCODING AND SINGLE LAYER DECODING” y propiedad del asignatario de la presente. An extreme case of intra-encoded MB of P or B frames is when all MBs in a P or B frame are encoded in intra mode due to the presence of a scene change in the video being encoded. In this case, the entire frame can be encoded in the base layer quality without any refinement in the improvement layer. If a scene change occurs in a frame B and it is assumed that frames B are only encoded in the enhancement layer, then frame B could be encoded in the quality of the base layer or simply deleted. If a scene change occurs in a P frame, no change would be necessary, but the P frame could be deleted or encoded in a base layer quality. The scalable layered coding is further described in the Pending US Patent Application together with this No. [representative file reference number 050078] entitled "SCALABLE VIDEO CODING WITH TWO LAYER ENCODING AND SINGLE LAYER DECODING" and property of the assignee of the present.

Parte del codificador de primer paso Part of the first step encoder

La FIGURA 7 muestra un ejemplo ilustrativo del codificador 228 de la FIGURA 2. Los bloques mostrados ilustran varios procesamientos de codificador que se pueden incluir en el codificador 228. En este ejemplo, el codificador 228 incluye una parte de primer paso 706 por encima de una línea de demarcación 704, y una parte de segundo paso 706 (que incluye la funcionalidad de un codificador de segundo paso 232 y recodificador 234 de la FIGURA 2) debajo de la línea 704. FIGURE 7 shows an illustrative example of encoder 228 of FIGURE 2. The blocks shown illustrate various encoder processes that can be included in encoder 228. In this example, encoder 228 includes a first-pass portion 706 above a demarcation line 704, and a second pass portion 706 (which includes the functionality of a second pass encoder 232 and recoder 234 of FIGURE 2) below line 704.

El codificador 228 recibe metadatos y video en bruto desde el preprocesador 226. Los metadatos pueden incluir cualquier metadato recibido o calculado por el preprocesador 226, incluyendo metadatos relacionados con la información del contenido del video. La parte del primer paso 702 del codificador 228 ilustra procesos de ejemplo que se pueden incluir en una codificación del primer paso 702, que se describe a continuación en términos de su funcionalidad. Como conocerá un experto en la técnica, tal funcionalidad se puede realizar de varias formas (por ejemplo mediante hardware, software, firmware o una combinación de los mismos). The encoder 228 receives metadata and raw video from the preprocessor 226. The metadata may include any metadata received or calculated by the preprocessor 226, including metadata related to the video content information. The part of the first step 702 of the encoder 228 illustrates example processes that can be included in an encoding of the first step 702, which is described below in terms of its functionality. As one skilled in the art will know, such functionality can be performed in several ways (for example by hardware, software, firmware or a combination thereof).

La Figura 7 ilustra un módulo de intra refresco adaptativo (AIR). El módulo AIR 710 proporciona una entrada a un módulo de instanciación del cuadro I 708 que instancia un cuadro I en base a los metadatos. La parte del primer paso 702 puede incluir también un módulo de clasificación del contenido 712 configurado para recibir los metadatos y el video y determinar la información de contenido en relación con el video. La información del contenido se puede proporcionar a un módulo de asignación de bits y control de tasas 714, que recibirá también los metadatos y el video. El módulo de asignación de bits de control 714 determina la información de control de la tasa de bits y la proporciona al módulo de decisión de modo 715. La información del contenido del video se puede proporcionar a un módulo de intra-modelo (distorsión) 716, que proporciona la información de distorsión de intra-codificación al módulo de decisión de modo 715 y una escalabilidad de tasa-distorsión para el módulo de las capas base y de mejora 718. Se proporcionan el video los metadatos a un módulo de estimación de movimiento (distorsión) 720 que proporciona información de distorsión de inter-codificación al módulo de escalabilidad de tasa-distorsión para las capas base y de mejora 718. El módulo de escalabilidad de tasa-distorsión para las capas base y de mejora 718 determina la información de tasa de una distorsión de escalabilidad usando las estimaciones de distorsión a partir del módulo de estimación de movimiento 720 y del módulo de distorsión del intra modelo 716 que se proporcionan al módulo de decisión de modo 715. El módulo de decisión de modo 715 recibe también entradas desde el módulo de ordenación porciones/MB 722. El módulo de ordenación porciones/MB 722 recibe entradas desde un módulo de resistencia frente a errores 740 (mostrado en la parte del segundo paso 706) y proporciona información sobre la alineación de Figure 7 illustrates an adaptive intra refreshment module (AIR). The AIR 710 module provides an input to an instantiation module in Table I 708 that instantiates a Table I based on metadata. The part of the first step 702 may also include a content classification module 712 configured to receive the metadata and the video and determine the content information in relation to the video. Content information can be provided to a bit allocation and rate control module 714, which will also receive metadata and video. The control bit allocation module 714 determines the bit rate control information and provides it to the mode decision module 715. The video content information can be provided to an intra-model (distortion) module 716 , which provides intra-coding distortion information to the 715 mode decision module and a rate-distortion scalability for the base and improvement layer module 718. The video metadata is provided to a motion estimation module. (distortion) 720 that provides inter-coding distortion information to the rate-distortion scalability module for the base and enhancement layers 718. The rate-distortion scalability module for the base and enhancement layers 718 determines the information of rate of a scalability distortion using distortion estimates from the motion estimation module 720 and the int distortion module ra model 716 that are provided to the mode decision module 715. The mode decision module 715 also receives inputs from the portion ordering module / MB 722. The portion ordering module / MB 722 receives inputs from a front resistance module. to errors 740 (shown in the part of the second step 706) and provides information on the alignment of

60 E06804241 04-11-2011 60 E06804241 04-11-2011

las partes de video (porciones) codificables independientemente con límites de unidad de acceso para resistencia a los errores al módulo de decisión de modo 715. El módulo de decisión de modo 715 determina la información del modo de codificación en base a sus entradas y proporciona el “mejor” modo de codificación a la parte del segundo paso 706. Se describe a continuación una explicación ilustrativa adicional de algunos ejemplos de dicha codificación de la parte del primer paso 702. the video parts (portions) independently encodable with access unit limits for error resistance to the mode decision module 715. The mode decision module 715 determines the information of the coding mode based on its inputs and provides the "Better" coding mode to the part of the second step 706. A further illustrative explanation of some examples of said coding of the part of the first step 702 is described below.

Como se ha establecido anteriormente, el módulo de clasificación de contenido 712 recibe los metadatos y el video en bruto suministrados por el preprocesador 226. En algunos ejemplos, el preprocesador 226 calcula la información del contenido partir de los datos multimedia y proporciona la información del contenido al módulo de clasificación de contenido 712 (por ejemplo los metadatos), que puede usar la información del contenido para determinar una clasificación de contenido para los datos multimedia. En algunos aspectos, el módulo de clasificación de contenido 712 se configura para determinar varias informaciones de contenido a partir de los datos multimedia y puede configurarse también para determinar una clasificación de contenido. As stated above, the content classification module 712 receives the metadata and raw video provided by the preprocessor 226. In some examples, the preprocessor 226 calculates the content information from the multimedia data and provides the content information. to the content classification module 712 (eg metadata), which can use the content information to determine a content classification for multimedia data. In some aspects, the content classification module 712 is configured to determine various content information from the multimedia data and can also be configured to determine a content classification.

El módulo de clasificación de contenido 712 se puede configurar para determinar una clasificación de contenido diferente para el video que tenga diferente tipo de contenido. La clasificación de contenido diferente puede dar como resultado diferentes parámetros usados en aspectos de la codificación de los datos multimedia, por ejemplo, la determinación de la tasa de bits (por ejemplo la asignación de bits) para la determinación de los parámetros de cuantificación, estimación de movimiento, escalabilidad, resistencia a los errores, mantenimiento de la calidad de datos multimedia óptima a través de los canales y para esquemas de cambio de canal rápido (por ejemplo, forzando cuadros I periódicamente para permitir un cambio de canal rápido). De acuerdo con un ejemplo, el codificador 228 se configura para determinar una utilización de tasa-distorsión (R-D) y asignaciones de tasas de bits en base a la clasificación del contenido. La determinación de la clasificación de contenido permite a los datos multimedia ser comprimidos hasta un nivel de calidad dado que corresponde a una tasa de bits deseada en base a una clasificación del contenido. También, y mediante la clasificación del contenido de los datos multimedia (por ejemplo, la determinación de la clasificación del contenido en base al sistema visual humano), la calidad perceptual resultante de los datos multimedia comunicados en una pantalla de un dispositivo receptor se hace dependiendo del contenido de video. The content rating module 712 can be configured to determine a different content rating for the video that has different types of content. The classification of different content may result in different parameters used in aspects of the coding of the multimedia data, for example, the determination of the bit rate (for example the bit allocation) for the determination of the quantification parameters, estimation of movement, scalability, resistance to errors, maintenance of optimal multimedia data quality through the channels and for fast channel change schemes (for example, forcing I frames periodically to allow a fast channel change). According to an example, encoder 228 is configured to determine a rate-distortion (R-D) utilization and bit rate assignments based on the content classification. The determination of the content classification allows multimedia data to be compressed to a quality level since it corresponds to a desired bit rate based on a content classification. Also, and by classifying the content of the multimedia data (for example, determining the classification of the content based on the human visual system), the perceptual quality resulting from the multimedia data communicated on a screen of a receiving device is made depending of video content.

Como un ejemplo de procedimiento que realiza el módulo de clasificación del contenido 712 para clasificar el contenido, la FIGURA 9 muestra un proceso 900 que ilustra un proceso de ejemplo mediante el que el módulo de clasificación del contenido 712 puede operar. Como se muestra, el proceso 900 comienza en el bloque de entrada 902 en el que el módulo de clasificación del contenido 712 recibe datos multimedia en bruto y meta datos. El proceso 900 prosigue entonces al bloque 904 en el que el módulo de clasificación del contenido 712 determina la información espacial y la información temporal de los datos multimedia. En algunos aspectos, la información espacial y temporal se determina mediante enmascaramiento espacial y temporal (por ejemplo filtrado). La información espacial y temporal se puede determinar en base a los metadatos que incluyen datos de cambio de escena y suavizado de los vectores de movimiento (MV). El proceso 900 prosigue entonces al bloque 912 que realiza estimaciones de complejidad espacial, complejidad temporal y sensibilidad. El proceso 900 prosigue entonces al bloque 916 en el que el contenido de los datos multimedia se clasifica en base a los resultados de los datos espaciales, temporales y de sensibilidad determinados en los bloques 904 y 912. También en el bloque 916, se puede seleccionar una curva tasa-distorsión (R-D) particular y/o se pueden actualizar los datos de la curva R-D. El proceso 900 prosigue entonces al bloque de salida 918, en el que la salida puede incluir un mapa de complejidaddistorsión o un valor que indica la actividad espacial y temporal (por ejemplo una clasificación de contenido) y/o las curvas R-D seleccionadas. Volviendo a referirnos a la FIGURA 7, el módulo de clasificación del contenido 712 proporciona una salida a un módulo de asignación de bits de control de tasa 714, un módulo de intra modelo (distorsión) 716 y también para el módulo de instanciación de cuadros I 708, explicado anteriormente. As an example of a procedure that the content classification module 712 performs to classify the content, FIGURE 9 shows a process 900 illustrating an example process by which the content classification module 712 can operate. As shown, process 900 begins at input block 902 in which the content classification module 712 receives raw multimedia data and metadata. The process 900 then proceeds to block 904 in which the content classification module 712 determines the spatial information and the temporal information of the multimedia data. In some aspects, spatial and temporal information is determined by spatial and temporal masking (for example filtering). Spatial and temporal information can be determined based on metadata that includes scene change data and smoothing of motion vectors (MV). Process 900 then proceeds to block 912, which estimates spatial complexity, temporal complexity and sensitivity. The process 900 then proceeds to block 916 in which the content of the multimedia data is classified based on the results of the spatial, temporal and sensitivity data determined in blocks 904 and 912. Also in block 916, one can select a particular rate-distortion curve (RD) and / or the data of the RD curve can be updated. The process 900 then proceeds to the output block 918, in which the output may include a distortion complexity map or a value indicating the spatial and temporal activity (for example a content classification) and / or the selected R-D curves. Referring back to FIGURE 7, the content classification module 712 provides an output to a rate control bit allocation module 714, an intra model (distortion) module 716 and also for the frame instantiation module I 708, explained above.

Información del contenido Content Information

El módulo de clasificación del contenido 712 se puede configurar para calcular una variedad información del contenido a partir de los datos multimedia, incluyendo una variedad de métricas relacionada con el contenido, incluyendo complejidad espacial, complejidad temporal, valores de relación de contraste, desviaciones estándar y métricas de diferencia de cuadros, descritas adicionalmente a continuación. The content classification module 712 can be configured to calculate a variety of content information from the multimedia data, including a variety of content related metrics, including spatial complexity, temporal complexity, contrast ratio values, standard deviations and Table difference metrics, described further below.

El módulo de clasificación del contenido 712 se puede configurar para determinar la complejidad espacial y la complejidad temporal de los datos multimedia y también para asociar un valor de textura a la complejidad espacial y un valor de movimiento a la complejidad temporal. El módulo de clasificación del contenido 712 recibe información de contenido preprocesada en relación al contenido de los datos multimedia que están siendo codificados desde el preprocesador 226 o, alternativamente, el preprocesador 226 puede configurarse para calcular la información del contenido. Como se ha descrito anteriormente, la información del contenido puede incluir, por ejemplo, uno o más valores Dcsat, valores de relación de contraste, vectores de movimiento (MV) y suma de las diferencias absolutas (SAD). The content classification module 712 can be configured to determine the spatial complexity and temporal complexity of multimedia data and also to associate a texture value with spatial complexity and a movement value with temporal complexity. The content classification module 712 receives preprocessed content information in relation to the content of the multimedia data that is being encoded from the preprocessor 226 or, alternatively, the preprocessor 226 can be configured to calculate the content information. As described above, the content information may include, for example, one or more Dcsat values, contrast ratio values, motion vectors (MV) and sum of absolute differences (SAD).

En general, los datos multimedia incluyen una o más secuencias de imágenes o cuadros. Cada cuadro se puede repartir en bloques de píxeles para su procesamiento. La complejidad espacial es un término amplio que describe generalmente una medición del nivel de detalles espaciales dentro de un cuadro. Las escenas con áreas In general, multimedia data includes one or more sequences of images or frames. Each frame can be divided into blocks of pixels for processing. Spatial complexity is a broad term that generally describes a measurement of the level of spatial details within a picture. The scenes with areas

50 E06804241 04-11-2011 50 E06804241 04-11-2011

principalmente planas o sin cambios o pocos cambios de iluminación y crominancia tendrán una baja complejidad espacial. La complejidad espacial se asocia con la textura de los datos de video. La complejidad espacial se basa en, en este aspecto, una métrica de sensibilidad visual humana denominada Dcsat, que se calcula para cada bloque como una función de la frecuencia espacial local e iluminación ambiente. Los expertos en la técnica serán conscientes de las técnicas para el uso de patrones de frecuencia espacial e iluminación y características de contraste de las imágenes visuales para aprovecharse del sistema visual humano. Son conocidas un cierto número de métricas de sensibilidad para aprovecharse de las limitaciones de perspectiva del sistema visual humano y se podrían usar con el procedimiento descrito en el presente documento. mainly flat or unchanged or few changes in lighting and chrominance will have low spatial complexity. Spatial complexity is associated with the texture of video data. Spatial complexity is based on, in this aspect, a human visual sensitivity metric called Dcsat, which is calculated for each block as a function of local spatial frequency and ambient lighting. Those skilled in the art will be aware of the techniques for using spatial frequency and lighting patterns and contrast characteristics of visual images to take advantage of the human visual system. A certain number of sensitivity metrics are known to take advantage of the perspective limitations of the human visual system and could be used with the procedure described herein.

La complejidad temporal es un término amplio que se usa para describir en general una medición del nivel de movimiento en un dato multimedia como se referencia entre cuadros en una secuencia de cuadros. Las escenas (por ejemplo secuencias de cuadros de datos de video) con poco o ningún movimiento tienen una baja complejidad temporal. La complejidad temporal se puede calcular para cada macro bloque y se puede basar en el valor del Dcsat, vectores de movimiento y la suma de las diferencias de píxeles absolutas entre un cuadro y otro cuadro (por ejemplo un cuadro de referencia). Temporal complexity is a broad term used to describe in general a measurement of the level of movement in a multimedia data as reference between frames in a sequence of frames. Scenes (for example sequences of video data frames) with little or no movement have a low temporal complexity. The temporal complexity can be calculated for each macro block and can be based on the Dcsat value, motion vectors and the sum of the absolute pixel differences between a frame and another frame (for example a reference frame).

La métrica de diferencia de cuadros da una medición de la diferencia entre dos cuadros consecutivos teniendo en cuenta la cantidad de movimiento (por ejemplo, el vector de movimiento o MV) junto con la energía residual representada como la suma de la diferencia absoluta (SAD) entre un previsor y el marco bloque actual. La diferencia de cuadros proporciona también una medición de la eficiencia de predicción bidireccional o unidireccional. The frame difference metric gives a measurement of the difference between two consecutive frames taking into account the amount of movement (for example, the motion vector or MV) together with the residual energy represented as the sum of the absolute difference (SAD) between a forecaster and the current block framework. The difference in tables also provides a measure of bidirectional or unidirectional prediction efficiency.

Un ejemplo de una métrica de diferencia de cuadros en base a la información de movimiento recibida desde un preprocesador que realiza potencialmente un desentrelazado compensado por el movimiento es como sigue. El desentrelazador realiza una estimación de movimiento bidireccional y por ello está disponible un vector de movimiento bidireccional y una información de SAD. Se puede deducir una diferencia de cuadros representada por SAD_MV para cada macro bloque como sigue: An example of a frame difference metric based on the movement information received from a preprocessor that potentially performs a deinterlacing compensated by the movement is as follows. The deinterlacer performs a bidirectional motion estimate and therefore a bidirectional motion vector and SAD information is available. A difference of frames represented by SAD_MV can be deduced for each macro block as follows:

SAD_MV = log10 [SAD * exp(-min(1, MV))] [29] SAD_MV = log10 [SAD * exp (-min (1, MV))] [29]

en la que MV = Raiz_cuadrada (MVx2 +MVy2), SAD = min(SADN, SADP), en la que SADN es la SAD calculada a partir del cuadro de referencia hacia atrás y SADP es la SAD calculada a partir del cuadro de referencia hacia adelante. where MV = Square_root (MVx2 + MVy2), SAD = min (SADN, SADP), in which SADN is the SAD calculated from the backward reference chart and SADP is the SAD calculated from the reference chart to ahead.

Otro enfoque para la estimación de una diferencia de cuadros se describió anteriormente con referencia las Ecuaciones 6-8. Se puede calcular una relación de SAD (o relación de contraste) γ como se ha descrito anteriormente en la Ecuación 6. Se puede determinar también un histograma de luminancia de cada cuadro, siendo calculada la diferencia de histograma λ usando la Ecuación 7. La métrica de diferencia de cuadros D se puede calcular como se muestra en la Ecuación 8. Another approach to estimating a difference in tables was described above with reference to Equations 6-8. A ratio of SAD (or contrast ratio) γ can be calculated as described above in Equation 6. A luminance histogram of each frame can also be determined, the histogram difference λ being calculated using Equation 7. The metric Difference of tables D can be calculated as shown in Equation 8.

En un ejemplo ilustrativo, se utiliza una relación de contraste y una métrica de diferencia de cuadros de la siguiente manera para obtener una clasificación del contenido de video, que podría predecir fiablemente las características en una secuencia de video dada. Aunque se describe aquí como que sucede en el codificador 228, un preprocesador 226 se puede configurar también para determinar una clasificación del contenido (u otra información del contenido) y pasar la clasificación del contenido al codificador 228 por medio de metadatos. El proceso descrito en el ejemplo a continuación clasifica el contenido en ocho clases posibles, de modo similar a la clasificación obtenida a partir de un análisis en base a la curva R-D. El proceso de clasificación produce la salida de un valor en el intervalo entre 0 y 1 para cada supercuadro dependiendo de la complejidad de la escena y el número de sucesos de cambio de escena en ese supercuadro. El módulo de clasificación del contenido en el preprocesador puede ejecutar las siguientes etapas (1) – (5) para cada supertrama para obtener una métrica de clasificación del contenido a partir del contraste de cuadros y los valores de diferencia de cuadros. In an illustrative example, a contrast ratio and a frame difference metric are used as follows to obtain a classification of the video content, which could reliably predict the characteristics in a given video sequence. Although described herein as what happens in encoder 228, a preprocessor 226 can also be configured to determine a content classification (or other content information) and pass the content classification to encoder 228 by means of metadata. The process described in the example below classifies the content into eight possible classes, similar to the classification obtained from an analysis based on the R-D curve. The classification process produces the output of a value in the range between 0 and 1 for each superframe depending on the complexity of the scene and the number of scene change events in that superframe. The content classification module in the preprocessor can execute the following steps (1) - (5) for each superframe to obtain a content classification metric from the frame contrast and the frame difference values.

1.one.
Calcular el Contraste de Cuadro Medio y la Desviación de Contrastes de Cuadro a partir de los valores de contraste de macro bloques.  Calculate the Contrast of Average Frame and the Deviation of Frame Contrasts from the contrast values of macro blocks.

2.2.
Normalizar el Contraste de Cuadros y los valores de Diferencia de Cuadros usando los valores obtenidos de simulaciones, que son 40 y 5 respectivamente.  Normalize the Frame Contrast and the Frame Difference values using the values obtained from simulations, which are 40 and 5 respectively.

3.3.
Calcular una métrica de clasificación del contenido usando, por ejemplo, la ecuación generalizada:  Calculate a content classification metric using, for example, the generalized equation:

CCMétrica = CCW1 * Media_Contraste_Cuadro_I + CCW2 * Media_Diferencia_Cuadro – CCMétrica = CCW1 * Media_Contraste_Box_I + CCW2 * Media_Difference_Box -

– CCW3 * Desviación_Contraste_I^2 * exp(CCW4 * Desviación_Diferencia_Cuadro^2) [30] - CCW3 * Contrast_Deviation_I ^ 2 * exp (CCW4 * Difference_Deviation_Box ^ 2) [30]

en la que CCW1, CCW2, CCW3 y CCW4 son factores de ponderación. En este ejemplo, los valores eligen para ser 0,2 para CCW1, 0,9 para CCW2, 0,1 para CCW3 y -0,00009 para CCW4. in which CCW1, CCW2, CCW3 and CCW4 are weighting factors. In this example, the values choose to be 0.2 for CCW1, 0.9 for CCW2, 0.1 for CCW3 and -0.00009 for CCW4.

4. Determinar el número de cambios de escena en el súper cuadro. En general, un súper cuadro se refiere a un grupo de imágenes o cuadros que se pueden visualizar en un periodo de tiempo particular. Típicamente, el periodo de tiempo es un segundo. En algunos aspectos, un súper cuadro comprende 30 cuadros (para video de 30 4. Determine the number of scene changes in the super frame. In general, a super frame refers to a group of images or frames that can be displayed in a particular period of time. Typically, the period of time is one second. In some aspects, a super frame comprises 30 frames (for 30 video

E06804241 04-11-2011 E06804241 04-11-2011

imágenes por segundo). En otros aspectos un súper cuadro comprende 24 cuadros (video de 24 imágenes por segundo). Dependiendo del número de cambios de escena, se puede obtener la ejecución de uno de los siguientes casos. images per second). In other aspects a super frame comprises 24 frames (video of 24 images per second). Depending on the number of scene changes, the execution of one of the following cases can be obtained.

(a) No Cambios de Escena: cuando no hay cambios de escena en un súper cuadro, la métrica es completamente dependiente solo de los valores de diferencia de cuadros como se muestra en la siguiente ecuación: (a) No Scene Changes: when there are no scene changes in a super frame, the metric is completely dependent only on the difference values of frames as shown in the following equation:

CCMétrica = (CCW2 + (CCW1/2)) * Media_Diferencia_Cuadro – CCMétrica = (CCW2 + (CCW1 / 2)) * Half_Difference_Box -

– (CCW3 – (CCW1/2)) * 1 * exp(CCW4 * Desviación_Diferencia_Cuadro^2) [31] - (CCW3 - (CCW1 / 2)) * 1 * exp (CCW4 * Deviation_Difference_Box ^ 2) [31]

(b) Un Único Cambio de Escena: Cuando hay un único cambio de escena observado en el súper cuadro, se usaría la ecuación por defecto para calcular la métrica, como se muestra a continuación: (b) A Single Scene Change: When there is a single scene change observed in the super frame, the default equation would be used to calculate the metric, as shown below:

CCMétrica = CCW1 * Media_Contraste_Cuadro_ I + CCW2 * Media_Diferencia_Cuadro – CCMétrica = CCW1 * Media_Contraste_Box_I + CCW2 * Media_Difference_Box -

– CCW3 * Desviación_Contraste_I^2 * exp(CCW4 * Desviación_Diferencia_Cuadro^2) [32] - CCW3 * Contrast_Deviation_I ^ 2 * exp (CCW4 * Difference_Deviation_Box ^ 2) [32]

(c) Dos Cambios de Escena: Cuando se observa que hay al menos 2 cambios de escena en el súper cuadro dado, se acuerda más peso para el último súper cuadro que para el primero dado que el primero se refrescará en cualquier caso por el último rápidamente, como se muestra en la siguiente ecuación: (c) Two Scene Changes: When it is observed that there are at least 2 scene changes in the given super frame, more weight is agreed for the last super frame than for the first given that the first one will be refreshed in any case by the last quickly, as shown in the following equation:

CCMétrica = 0.1 * Media_Contraste_Cuadro_I1 + CCW1 * Media_Contraste_Cuadro_I2 +CCMétrica = 0.1 * Media_Contraste_Box_I1 + CCW1 * Media_Contraste_Box_I2 +

+ (CCW2–0.1) * Media_Diferencia_Cuadro – + (CCW2–0.1) * Media_Difference_Box -

– CCW3 * Desviación_Contraste_I1^2 * Desviación_Contraste_I2^2 * - CCW3 * Contrast_Deviation_I1 ^ 2 * Contrast_Deviation_I2 ^ 2 *

* exp(CCW4 * Desviación_Diferencia_Cuadro^2) [33]   * exp (CCW4 * Deviation_Difference_Box ^ 2) [33]

(d) Hay Tres o más Cambios de Escena: si en el súper cuadro dado se observa que tiene más de 3 cuadros I (digamos N), se da más peso al último cuadro I y a todos los demás cuadros I se les da un peso de 0,05, como se muestra la siguiente ecuación: (d) There are Three or more Scene Changes: if in the given super frame it is observed that it has more than 3 frames I (say N), more weight is given to the last frame I and all other frames I are given a weight of 0.05, as the following equation is shown:

CCMétrica = 0.05 * Media_Contraste_Cuadro_I(1,...N-1) + CCW1 * Media_Contraste_Cuadro_I(N) + CCMétrica = 0.05 * Media_Contraste_Box_I (1, ... N-1) + CCW1 * Media_Contraste_Box_I (N) +

+ (CCW2–(0.05*(N-1))) * Media_Diferencia_Cuadro – + (CCW2– (0.05 * (N-1))) * Medium_Difference_Box -

– CCW3 * Desviación_Contraste_I(N)^2 * Desviación_Contraste_I(1,...N-1)^2 *- CCW3 * Contrast_Deviation_I (N) ^ 2 * Contrast_Deviation_I (1, ... N-1) ^ 2 *

* exp(CCW4 * Desviación_Diferencia_Cuadro^2) [34]   * exp (CCW4 * Deviation_Difference_Box ^ 2) [34]

5. Se puede usar una corrección para la métrica en el caso de escenas de movimiento bajo cuando la diferencia de cuadros media es menor de 0,05. Se añadiría un desplazamiento de 0,33 (DESPLAZAMIENTOCC) a la CCMétrica. 5. A correction for the metric can be used in the case of low moving scenes when the average frame difference is less than 0.05. A displacement of 0.33 (CC DISPLACEMENT) would be added to the CCMétrica.

El módulo de clasificación del contenido 702 usa el valor de Dcsat, vectores de movimiento y/o la suma de las diferencias absolutas para determinar un valor que indica una complejidad espacial para el macro bloque (o la cantidad designada de datos de video). La complejidad temporal se determina mediante la medición de la métrica de diferencia de cuadros (la diferencia entre dos cuadros consecutivos teniendo en cuenta la cantidad de movimiento, con vectores de movimiento y la suma de las diferencias absolutas entre los cuadros). The content classification module 702 uses the Dcsat value, motion vectors and / or the sum of the absolute differences to determine a value that indicates a spatial complexity for the macro block (or the designated amount of video data). The temporal complexity is determined by measuring the metric difference of frames (the difference between two consecutive frames taking into account the amount of movement, with motion vectors and the sum of the absolute differences between the frames).

En algunos aspectos, el módulo de clasificación del contenido 712 se puede configurar para generar un mapa de ancho de banda. Por ejemplo, la generación del mapa de ancho de banda se puede realizar por el módulo de clasificación del contenido 712 si el preprocesador 226 no genera un mapa de ancho de banda. In some aspects, the content classification module 712 can be configured to generate a bandwidth map. For example, the generation of the bandwidth map can be performed by the content classification module 712 if the preprocessor 226 does not generate a bandwidth map.

Determinación de los valores de textura y movimiento Determination of texture and movement values

Para cada macro bloque en los datos multimedia, el módulo de clasificación del contenido 712 asocia un valor de textura con la complejidad espacial y un valor de movimiento con la complejidad temporal. El valor de textura se refiere a los valores de luminiscencia de los datos multimedia, en el que un valor de textura bajo indica pequeños cambios en los valores de luminiscencia de los píxeles contiguos a los datos y un valor de textura alto indica grandes cambios en los valores de luminiscencia de los píxeles contiguos a los datos. Una vez que se calculan los valores de textura y movimiento, el módulo de clasificación del contenido 712 determina una clasificación del contenido mediante la consideración tanto de la información de movimiento como de textura. El módulo de clasificación del contenido 712 asocia la textura para la clasificación de los datos de video con un valor de textura relativo, por ejemplo textura “Baja”, textura “Media” o textura “Alta”, que generalmente indican la complejidad de los valores de luminancia de los macro bloques. También, el módulo de clasificación del contenido 712 asocia el valor de movimiento calculado para la clasificación de los datos de video con un valor de movimiento relativo, por ejemplo, movimiento “Bajo”, movimiento “Medio” o movimiento “Alto” que generalmente indican la cantidad de movimiento de For each macro block in multimedia data, the content classification module 712 associates a texture value with spatial complexity and a movement value with temporal complexity. The texture value refers to the luminescence values of the multimedia data, in which a low texture value indicates small changes in the luminescence values of the pixels adjacent to the data and a high texture value indicates large changes in the luminescence values of the pixels adjacent to the data. Once the texture and movement values are calculated, the content classification module 712 determines a content classification by considering both the movement and texture information. The content classification module 712 associates the texture for the classification of the video data with a relative texture value, for example "Low" texture, "Medium" texture or "High" texture, which generally indicates the complexity of the values of luminance of the macro blocks. Also, the content classification module 712 associates the calculated movement value for the classification of the video data with a relative movement value, for example, "Low" movement, "Medium" movement or "High" movement which generally indicate the amount of movement of

60 E06804241 04-11-2011 60 E06804241 04-11-2011

los macro bloques. En aspectos alternativos, se pueden usar menos o más categorías para el movimiento y la textura. A continuación, se puede determinar una métrica de clasificación del contenido mediante la consideración de los valores de textura y movimiento asociados. The macro blocks. In alternative aspects, fewer or more categories can be used for movement and texture. Next, a content classification metric can be determined by considering the associated texture and motion values.

La FIGURA 8 ilustra un ejemplo de un gráfico de clasificación que ilustra cómo se asocian los valores de textura y movimiento con una clasificación del contenido. Una persona experta la técnica estará familiarizado con muchas formas de implementar tal gráfico de clasificación, por ejemplo, en una tabla de búsqueda o una base de datos. El gráfico de clasificación se genera en base a evaluaciones predeterminadas del contenido del dato de video. Para determinar la clasificación del dato de video, se referencia un valor de textura de “Bajo”, “Medio” o “Alto” (en el “eje x”) de modo cruzado con un valor de movimiento de “Bajo”, “Medio” o “Alto” (en el “eje y”). Se asigna a los datos de video una clasificación del contenido indicada por el bloque de intersección. Por ejemplo, un valor de textura “Alto” y un valor de movimiento “Medio” da como resultado una clasificación de siete (7). La FIGURA 8 ilustra varias combinaciones de valores de textura y movimiento relativos que se asocian con ocho clasificaciones de contenido diferentes, en este ejemplo. En otros aspectos, se pueden usar más o menos clasificaciones. Una descripción adicional de un aspecto ilustrativo de la clasificación del contenido se desvela en la Solicitud de Patente de Estados Unidos pendiente junto con la presente Nº de Solicitud de Patente de Estados Unidos Nº 11/300 73.577 titulada “Content Classification for Multimedia Processing” presentada el 10 de marzo de 2006, asignada al asignatario de la presente. FIGURE 8 illustrates an example of a classification chart that illustrates how texture and motion values are associated with a content classification. A person skilled in the art will be familiar with many ways to implement such a ranking chart, for example, in a search table or a database. The ranking chart is generated based on predetermined evaluations of the video data content. To determine the classification of the video data, a texture value of “Low”, “Medium” or “High” (on the “x-axis”) is cross-referenced with a movement value of “Low”, “Medium ”Or“ High ”(on the“ y axis ”). A classification of the content indicated by the intersection block is assigned to the video data. For example, a "High" texture value and a "Medium" movement value results in a classification of seven (7). FIGURE 8 illustrates several combinations of relative texture and motion values that are associated with eight different content classifications, in this example. In other aspects, more or less classifications can be used. An additional description of an illustrative aspect of the classification of the content is disclosed in the pending US Patent Application together with this US Patent Application No. 11/300 73,577 entitled "Content Classification for Multimedia Processing" filed on March 10, 2006, assigned to the assignee of this.

Asignación de bits de control de tasa Assignment of rate control bits

Como se ha descrito el presente documento, una clasificación del contenido de los datos multimedia se puede usar en los algoritmos de codificación para mejorar de modo efectivo la gestión de los bits mientras se mantiene una constante en la calidad de video perceptiva. Por ejemplo, la métrica de clasificación se puede usar en algoritmos para la detección de cambio de escena, la codificación del control de asignación de la tasa de bits y la conversión hacia arriba de la tasa de cuadros (FRUC). Los sistemas de compresor/descompresor (códec) y los algoritmos de procesamiento de señal digital se usan comúnmente en comunicaciones de datos de video y se puede configurar para conservar el ancho de banda, pero hay un compromiso entre la calidad y la conservación del ancho de banda. Los mejores códec proporcionan la mejor conservación del ancho de banda en tanto que producen la menor degradación de la calidad de video. As described herein, a classification of multimedia data content can be used in coding algorithms to effectively improve bit management while maintaining a constant in perceptual video quality. For example, classification metrics can be used in algorithms for scene change detection, bit rate allocation control coding and up-frame rate conversion (FRUC). Compressor / decompressor (codec) systems and digital signal processing algorithms are commonly used in video data communications and can be configured to conserve bandwidth, but there is a compromise between quality and conservation of bandwidth. band. The best codecs provide the best preservation of bandwidth while producing the least degradation of video quality.

En un ejemplo ilustrativo, el módulo de asignación de bits de control de tasa 714 usa la clasificación del contenido para determinar una tasa de bits (por ejemplo el número de bits asignados para la codificación de los datos multimedia) y almacena la tasa de bits en la memoria para su uso por otros procesos y componentes del codificador In an illustrative example, the rate control bit allocation module 714 uses content classification to determine a bit rate (for example the number of bits allocated for encoding multimedia data) and stores the bit rate in memory for use by other encoder processes and components

228. Una tasa de bits determinada a partir de la clasificación de los datos de video puede ayudar a conservar el ancho de banda en tanto proporciona datos multimedia con un nivel de calidad consistente. En un aspecto, se puede asociar una tasa de bits diferente a cada una de las ocho clasificaciones de contenido diferentes y a continuación se usa esa tasa de bits para codificar los datos multimedia. El efecto resultante es que aunque se asignan diferentes clasificaciones de contenido de datos multimedia a un número diferente de bits para codificación, la calidad percibida es similar o consistente cuando se ve en una pantalla. 228. A bit rate determined from the classification of video data can help conserve bandwidth while providing multimedia data with a consistent quality level. In one aspect, a different bit rate can be associated with each of the eight different content classifications and then that bit rate is used to encode multimedia data. The resulting effect is that although different classifications of multimedia data content are assigned to a different number of bits for encoding, the perceived quality is similar or consistent when viewed on a screen.

En general, los datos multimedia con una clasificación de contenido más alta son indicativos de un nivel más alto de movimiento y/o textura y se les asignan más bits cuando se codifican. Los datos multimedia con una clasificación más baja (indicativa de una textura y movimiento menores) tienen menos bits asignados. Para datos multimedia de una clasificación de contenido particular, la tasa de bits se puede determinar en base a un nivel de calidad percibida objetivo seleccionada para la visión de los datos multimedia. La determinación de la calidad de los datos multimedia se puede determinar por humanos que ven y puntúan los datos multimedia. En algunos aspectos alternativos, las estimaciones de la calidad de datos multimedia se pueden realizar por sistemas de prueba automáticos que usan, por ejemplo, algoritmos de relación señal a ruido. En un aspecto, un conjunto de niveles de calidad estándar (por ejemplo cinco) y una tasa de bits correspondiente necesarios para conseguir ese nivel de calidad particular se determinan previamente para los datos multimedia de cada clasificación de contenido. Para determinar un conjunto de niveles de calidad, los datos multimedia de una clasificación de contenido particular se pueden evaluar mediante la generación de una Puntuación de Opinión Media (MOS) que proporciona la indicación numérica de la calidad visual percibida de los datos multimedia cuando se codifican usando una cierta tasa de bits. La MOS se puede expresar como un número único en el intervalo de 1 a 5 en el que 1 es la calidad más baja percibida y 5 la calidad más alta percibida. En otros aspectos, la MOS puede tener más de cinco o menos de cinco niveles de calidad, y se pueden usar diferentes descripciones de cada nivel de calidad. In general, multimedia data with a higher content classification are indicative of a higher level of movement and / or texture and are assigned more bits when encoded. Multimedia data with a lower classification (indicative of lower texture and movement) have fewer assigned bits. For multimedia data of a particular content classification, the bit rate can be determined based on a perceived target quality level selected for viewing multimedia data. The determination of the quality of multimedia data can be determined by humans who view and rate multimedia data. In some alternative aspects, multimedia data quality estimates can be made by automatic test systems that use, for example, signal-to-noise ratio algorithms. In one aspect, a set of standard quality levels (for example five) and a corresponding bit rate necessary to achieve that particular quality level are previously determined for the multimedia data of each content classification. To determine a set of quality levels, the multimedia data of a particular content classification can be evaluated by generating an Average Opinion Score (MOS) that provides the numerical indication of the perceived visual quality of the multimedia data when encoded using a certain bit rate. The MOS can be expressed as a unique number in the range of 1 to 5 in which 1 is the lowest quality perceived and 5 the highest quality perceived. In other aspects, the MOS can have more than five or less than five quality levels, and different descriptions of each quality level can be used.

La determinación de la calidad de datos multimedia se puede determinar por humanos que ven y puntúan los datos multimedia. En algunos aspectos alternativos, las estimaciones de la calidad de los datos multimedia se pueden realizar por sistemas de prueba automáticos que usan, por ejemplo, algoritmos de relación señal a ruido. En un aspecto, un conjunto de niveles de calidad estándar (por ejemplo cinco) y una tasa de bits correspondiente necesarios para conseguir ese nivel de calidad particular se determinan previamente para los datos multimedia de cada clasificación de contenido. The determination of multimedia data quality can be determined by humans who view and rate multimedia data. In some alternative aspects, estimates of multimedia data quality can be performed by automatic test systems that use, for example, signal-to-noise ratio algorithms. In one aspect, a set of standard quality levels (for example five) and a corresponding bit rate necessary to achieve that particular quality level are previously determined for the multimedia data of each content classification.

Conociendo la relación entre el nivel de calidad percibida visualmente y la tasa de bits para los datos multimedia de una cierta clasificación de contenido se puede determinar mediante la selección de un nivel de calidad objetivo (por Knowing the relationship between the level of visually perceived quality and the bit rate for multimedia data of a certain content classification can be determined by selecting an objective quality level (by

60 E06804241 04-11-2011 60 E06804241 04-11-2011

ejemplo deseado). El nivel de calidad objetivo usado para determinar la tasa de bits se puede seleccionar previamente, seleccionar por un usuario, seleccionar a través de un proceso automático o un proceso semiautomático se requiera una entrada de un usuario o desde otro proceso o ser seleccionada dinámicamente por el dispositivo o sistema de codificación en base a criterios predeterminados. Un nivel de calidad objetivo se puede seleccionar en base a, por ejemplo, el tipo de aplicación de codificación o el tipo de dispositivo cliente que recibirá los datos multimedia. desired example). The target quality level used to determine the bit rate can be previously selected, selected by a user, selected through an automatic process or a semi-automatic process, an entry from a user or from another process is required or dynamically selected by the user. coding device or system based on predetermined criteria. An objective quality level can be selected based on, for example, the type of coding application or the type of client device that will receive the multimedia data.

En el ejemplo ilustrado en la FIGURA 7, el módulo de asignación de bits de control de tasa 714 recibe tanto datos desde el módulo de clasificación del contenido 712 como de los metadatos directamente del preprocesador 226. El módulo de asignación de bits de control de tasa 714 reside en la parte del primer paso del codificador 228 y un módulo de ajuste fino del control de tasa 738 reside en la parte del segundo paso 706. Este aspecto del control de la tasa en dos pasos se configura de modo que el primer paso (módulo de asignación de los bits de control de tasa 714) realiza un asignación de bits adaptativa al contexto con una anticipación del súper cuadro (por ejemplo, un objetivo a largo plazo de las tasas de bits promedio de 256 kbps) y limita la tasa de pico y el segundo paso (módulo de ajuste fino del control de tasa 738) refina los resultados del primer paso en una escalabilidad en dos capas que realiza la adaptación de la tasa. El control de la tasa funciona en cuatro niveles: (1) nivel de GOP - controla la distribución de bits de los cuadros I, P, B y F para que no sean uniformes dentro de un GOP; (2) nivel de súper cuadro - controla los límites firmes en el tamaño de súper cuadro máximo; (3) nivel de cuadro - controla los requisitos de bits de acuerdo con la complejidad espacial y temporal de los cuadros de datos multimedia, que se basan en la información del contenido (por ejemplo una clasificación del contenido) y (4) nivel de macro bloque controla la asignación de bits de los macro bloques en base a los mapas de complejidad espacial y temporal, que se basan en la información del contenido (por ejemplo una clasificación del contenido). In the example illustrated in FIGURE 7, the rate control bit allocation module 714 receives both data from the content classification module 712 and the metadata directly from the preprocessor 226. The rate control bit allocation module 714 resides in the part of the first step of the encoder 228 and a fine adjustment module of the rate control 738 resides in the part of the second step 706. This aspect of the two-step rate control is configured so that the first step ( 714 rate control bit allocation module) performs a context-adaptive bit allocation with an anticipation of the superframe (for example, a long-term objective of the 256 bitps average bit rates) and limits the rate of peak and the second step (fine adjustment module of the rate control 738) refines the results of the first step in a two-layer scalability that performs the rate adaptation. Rate control works on four levels: (1) GOP level - controls the bit distribution of tables I, P, B and F so that they are not uniform within a GOP; (2) superframe level - controls firm limits on maximum superframe size; (3) frame level - controls bit requirements according to the spatial and temporal complexity of multimedia data frames, which are based on content information (for example a content classification) and (4) macro level block controls the bit allocation of macro blocks based on spatial and temporal complexity maps, which are based on content information (for example a content classification).

Un diagrama de flujo de ejemplo del funcionamiento del módulo de control de tasa 714 se ilustra en la FIGURA 10. Como se muestra en la FIGURA 10, el proceso 1000 comienza en un bloque de entrada 1002. El módulo de control de tasa 714 recibe varias entradas, ninguna de las cuales se ilustra necesariamente por la FIGURA 7. Por ejemplo, la información de entrada puede incluir metadatos desde el preprocesador 226, una tasa de bits objetivo, un tamaño de memoria intermedia del codificador (o, como equivalente, el tiempo de retardo máximo para el control de tasa), un retardo de control de tasa inicial y una información de tasa de cuadro. La información de entrada adicional puede incluir entradas en el nivel de grupo de imágenes (GOP), incluyendo, por ejemplo, un tamaño del súper cuadro máximo, longitud y distribución de cuadros P/B del GOP (incluyendo información de cambio de escena), disposición de las capas base y de mejora deseada, una métrica de complejidad-distorsión para imágenes en el GOP para unos 30 cuadros futuros. Otra información de entrada incluye entradas en el nivel de imagen, incluyendo el mapa de complejidad-distorsión para la imagen actual (recibida desde el módulo de clasificación del contenido 712), parámetros de cuantificación (QP) y división en bits de los 30 últimos cuadros (ajustados a través de una ventana deslizante). Finalmente, la información de entrada en el nivel de macro bloque (MB) incluye, por ejemplo, la diferencia absoluta media (MAD) o macro bloques no localizados conjuntamente (MB) en una imagen de referencia y un patrón de bloques codificados (CBP) de macro bloques después de la cuantificación (si se saltarán o no). An example flow chart of the operation of the rate control module 714 is illustrated in FIGURE 10. As shown in FIGURE 10, the process 1000 begins at an input block 1002. The rate control module 714 receives several entries, none of which is necessarily illustrated by FIGURE 7. For example, the input information may include metadata from preprocessor 226, an objective bit rate, an encoder buffer size (or, as equivalent, time maximum delay for rate control), an initial rate control delay and frame rate information. Additional input information may include entries at the image group level (GOP), including, for example, a maximum super frame size, length and distribution of GOP P / B frames (including scene change information), arrangement of the base layers and desired improvement, a complexity-distortion metric for images in the GOP for about 30 future frames. Other input information includes inputs at the image level, including the complexity-distortion map for the current image (received from the content classification module 712), quantization parameters (QP) and bit division of the last 30 frames (adjusted through a sliding window). Finally, the input information at the macro block level (MB) includes, for example, the mean absolute difference (MAD) or macro blocks not jointly located (MB) in a reference image and an encoded block pattern (CBP) of macro blocks after quantification (if they will skip or not).

Después de las entradas en el bloque 1002, el proceso 1000 prosigue en el bloque 1004 para la inicialización de la codificación del flujo de bits. Simultáneamente, se realiza una inicialización de la memoria intermedia 1006. A continuación, se inicializa un GOP como se muestra en el bloque 1008, con la asignación de bits del GOP 1010 recibida como parte de la inicialización. Después de la inicialización del GOP, el flujo prosigue en el bloque 1012, en el que se inicializa una porción. Esta inicialización incluye una actualización de los bits de cabecera como se muestra por el bloque 1014. Después de que se realicen las inicializaciones del bloque 1004, 1008 y 1012, se lleva a cabo el control de tasa (RC) para una unidad básica o macro bloque (MB) como se muestra por el bloque 1016. Como parte de la determinación del control de tasa de un macro bloque en el bloque 1016, se reciben entradas por medio de las interfaces en el codificador 228. Estas entradas pueden incluir la asignación de bits de macro bloque (MB) 1018, una actualización de los parámetros del modelo cuadrático 1020 y una actualización de la desviación absoluta media a partir de los parámetros medios (“MAD”, una estimación robusta de la dispersión) 1022. A continuación el proceso 1000 prosigue en el bloque 1024 para la ejecución de operaciones después de la codificación de una imagen 1024. Este procedimiento incluye la recepción de una actualización de los parámetros de la memoria intermedia como se muestra por el bloque 1026. El proceso 1000 prosigue entonces al bloque de salida 1028 en donde el módulo de control de tasa 714 produce la salida de los parámetros de cuantificación QP para cada macro bloque MB para ser usada por un módulo de decisión de modo 715 como se muestra en la FIGURA 7. After the entries in block 1002, the process 1000 continues in block 1004 for the initialization of the bit stream encoding. Simultaneously, an initialization of the buffer 1006 is performed. Next, a GOP is initialized as shown in block 1008, with the bit allocation of the GOP 1010 received as part of the initialization. After the initialization of the GOP, the flow continues in block 1012, in which a portion is initialized. This initialization includes an update of the header bits as shown by block 1014. After the initializations of block 1004, 1008 and 1012 are made, the rate control (RC) for a basic or macro unit is carried out. block (MB) as shown by block 1016. As part of determining the rate control of a macro block in block 1016, inputs are received via the interfaces in encoder 228. These inputs may include the assignment of macro block bits (MB) 1018, an update of the parameters of the quadratic model 1020 and an update of the average absolute deviation from the average parameters ("MAD", a robust estimate of the dispersion) 1022. Next the process 1000 continues in block 1024 for the execution of operations after encoding an image 1024. This procedure includes receiving an update of the memory parameters. at intermediate level as shown by block 1026. Process 1000 then proceeds to output block 1028 where the rate control module 714 produces the output of the quantization parameters QP for each macro block MB to be used by a module of mode decision 715 as shown in FIGURE 7.

Estimación de movimiento Motion estimation

El módulo de estimación del movimiento 730 recibe entradas de metadatos y video bruto del preprocesador 226 y proporciona una salida que puede incluir el tamaño del bloque, métrica de distorsión de los vectores movimiento e identificadores del cuadro de referencia a un módulo de decisión de modo 715. La FIGURA 11 ilustra una operación de ejemplo del módulo de estimación del movimiento 720. Como se muestra, el proceso 1100 comienza con una entrada 1102. En el nivel de cuadro, el módulo 720 recibe la entrada de la ID del cuadro de referencia y los vectores de movimiento. En el nivel de macro bloque, la entrada 1102 incluye píxeles de entrada y píxeles del cuadro de referencia. El proceso 1100 continúa en la etapa 1104 en la que se realizan la estimación de movimiento de color (ME) y la previsión del vector de movimiento. Para llevar a cabo estos procesos, se reciben varias entradas incluyendo vectores de movimiento MPEG-2, y vectores de movimiento de luma MV 1106, suavizado del vector de The motion estimation module 730 receives metadata and raw video inputs from the preprocessor 226 and provides an output that may include the block size, distortion metric of the motion vectors and identifiers of the reference frame to a mode 715 decision module FIGURE 11 illustrates an example operation of the motion estimation module 720. As shown, process 1100 begins with an input 1102. At the frame level, module 720 receives the ID input of the reference frame and Motion vectors At the macro block level, input 1102 includes input pixels and reference frame pixels. The process 1100 continues in step 1104 in which the color motion estimation (ME) and the motion vector forecast are performed. To carry out these processes, several inputs are received including MPEG-2 motion vectors, and luma motion vectors MV 1106, smoothed from the vector of

60 E06804241 04-11-2011 60 E06804241 04-11-2011

movimiento 1108 y vectores de movimiento no causales 1110. A continuación, el proceso 1100 prosigue en el bloque 1112 en donde se realiza un algoritmo o metodología de búsqueda del vector de movimiento, tal como los procedimientos de búsqueda hexagonal o en rombo. Las entradas al proceso en el bloque 1112 pueden incluir la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrada (SSD) y/o otras métricas como se muestra por el bloque 1114. Una vez que se realiza la búsqueda del vector de movimiento, el proceso 1100 prosigue en el bloque de finalización 1116, en donde se realiza el procesamiento de la finalización. El proceso 1100 finaliza entonces en el bloque de salida 1118, que conduce a una salida del tamaño de bloque, vector de movimiento (MV), métrica de distorsión e identificadores del Cuadro de Referencia. movement 1108 and non-causal motion vectors 1110. Next, process 1100 continues in block 1112 where an algorithm or methodology for searching the motion vector is performed, such as hexagonal or diamond search procedures. The entries to the process in block 1112 may include the sum of the absolute difference (SAD), the sum of the square difference (SSD) and / or other metrics as shown by block 1114. Once the search for the motion vector, the process 1100 continues in the completion block 1116, where the completion processing is performed. The process 1100 then ends at the output block 1118, which leads to an output of the block size, motion vector (MV), distortion metric and identifiers of the Reference Table.

Escalabilidad de R-D para la capa base y de mejora R-D scalability for the base and enhancement layer

La FIGURA 13 ilustra un diagrama de flujo de ejemplo de un proceso de escalabilidad 1300 que se puede realizar por el módulo de R-D de escalabilidad 718. El proceso 1300 comienza en el bloque de arranque 1302 y prosigue en el bloque 1304 en el que el módulo de R-D de escalabilidad 718 recibe una entrada desde el módulo de estimación de movimiento 720 realiza una estimación del movimiento. La estimación del movimiento confía en la entrada de cuadros de referencia de la capa base, cuadros de referencia de la capa de mejora y el cuadro original a ser codificado como se indica por el bloque 1306. Tal información se puede calcular por el divisor del GOP y comunicarse al módulo de R-D de escalabilidad 718 por medio, por ejemplo, de metadatos. El proceso 1300 prosigue en el bloque 1308 para determinar la información de escalabilidad de los datos de la capa base y de los datos de la capa de mejora. La codificación de la capa base se realiza a continuación como se muestra en el bloque 1310, seguida por la codificación de la capa de mejora en el bloque 1312. La codificación de la capa de mejora puede usar los resultados de codificación de la capa base para tener una predicción entre capas como entrada, como se ilustra por el bloque 1314, por ello se realiza temporalmente después de la codificación de la capa base. Esto se describe adicionalmente en la Solicitud de Patente de Estados Unidos pendiente junto con la presente Nº [expediente/referencia de representante nº 050078] titulada “SCALABLE VIDEO CODING WITH TWO LAYER ENCODING AND SINGLE LAYER DECODING”. Después de que está completa la codificación, el proceso 1300 finaliza en el bloque 1316. FIGURE 13 illustrates an example flowchart of a scalability process 1300 that can be performed by the scalability RD module 718. The process 1300 begins at starter block 1302 and continues at block 1304 in which the module of RD 718 scalability receives an input from the motion estimation module 720 performs a motion estimate. The movement estimate relies on the entry of reference tables of the base layer, reference tables of the improvement layer and the original frame to be coded as indicated by block 1306. Such information can be calculated by the GOP divisor. and communicate to the RD module of scalability 718 by means of, for example, metadata. Process 1300 continues in block 1308 to determine the scalability information of the base layer data and the improvement layer data. The coding of the base layer is then performed as shown in block 1310, followed by the coding of the improvement layer in block 1312. The coding of the improvement layer can use the coding results of the base layer to having a prediction between layers as input, as illustrated by block 1314, is therefore done temporarily after coding the base layer. This is further described in the pending US Patent Application together with this No. [representative file / reference No. 050078] entitled "SCALABLE VIDEO CODING WITH TWO LAYER ENCODING AND SINGLE LAYER DECODING". After coding is complete, process 1300 ends in block 1316.

Ordenación Porción/Macro bloque Ordination Portion / Macro block

La parte del primer paso 302 incluye también un módulo de ordenación de porción/macro bloque 722, que recibe una entrada desde un módulo de resistencia frente a errores 740 en la parte del segundo paso y proporciona una información de alineación de porciones al módulo de decisión de modo 715. Las porciones son recortes de datos de video codificado decodificables independientemente (decodificación de entropía). Las unidades de acceso (AU) son cuadros de video codificados que comprende cada uno un conjunto de unidades NAL que contiene siempre exactamente una imagen codificada primaria. Además de la imagen codificada primaria, una unidad de acceso puede contener también una o más imágenes codificadas redundantes u otras unidades NAL que no contienen porciones de divisiones de datos en porciones de una imagen codificada. La decodificación de una unidad de acceso siempre da como resultado una imagen decodificada. The part of the first step 302 also includes a portion / macro block module 722, which receives an input from an error resistance module 740 in the part of the second step and provides portion alignment information to the decision module 715 mode. Portions are independently encoded video data clippings (entropy decoding). Access units (AU) are encoded video frames each comprising a set of NAL units that always contains exactly one primary encoded image. In addition to the primary encoded image, an access unit may also contain one or more redundant encoded images or other NAL units that do not contain portions of data divisions in portions of an encoded image. Decoding an access unit always results in a decoded image.

Los cuadros puede ser bloques multiplexados por división de tiempo o paquetes de capa física (denominados cápsulas TDM) que ofrecen la más elevada diversidad de tiempos. Un súper cuadro corresponde a una unidad de tiempo (por ejemplo, 1 seg.) y contiene cuatro cuadros. La alineación de los límites de porción y AU con los límites de cuadro en el dominio del tiempo da como resultado la separación y localización más eficiente de los datos corruptos. Durante un desvanecimiento profundo, la mayor parte de los datos contiguos en una cápsula TDM está afectada por errores. Debido a la diversidad de tiempos, las cápsulas TDM restantes tienen una alta probabilidad de estar intactas. Los datos no corruptos se pueden utilizar para recuperar y ocultar los datos perdidos de la cápsula TDM afectada. Una lógica similar se aplica al multiplexado en el dominio de la frecuencia (FDM) en el que la diversidad de frecuencia se consigue a través de la separación de subportadoras de frecuencia que modulan símbolos de datos. Adicionalmente, se aplica una lógica similar a la diversidad espacial (por medio de la separación en antenas transmisoras y receptoras) y otras formas aplicadas frecuentemente en redes inalámbricas. The frames can be time division multiplexed blocks or physical layer packages (called TDM capsules) that offer the highest diversity of times. A super frame corresponds to a unit of time (for example, 1 sec.) And contains four frames. Alignment of the portion limits and AU with the frame limits in the time domain results in the more efficient separation and location of corrupted data. During a deep fade, most of the contiguous data in a TDM capsule is affected by errors. Due to the diversity of times, the remaining TDM capsules have a high probability of being intact. Uncorrupted data can be used to recover and hide lost data from the affected TDM capsule. Similar logic applies to frequency domain multiplexing (FDM) in which frequency diversity is achieved through the separation of frequency subcarriers that modulate data symbols. Additionally, similar logic is applied to spatial diversity (through separation in transmitting and receiving antennas) and other forms frequently applied in wireless networks.

Para alinear las porciones y las AU a los cuadros, la creación del bloque de código (FEC) exterior y el encapsulado de la capa MAC se debería asimismo alinear. La FIGURA 20 ilustra la organización de los datos de video codificados o de un flujo de bits de video en porciones y AU. El video codificado puede estar formado por uno o más flujos de bits, por ejemplo el flujo de bits de la capa base y el flujo de bits de la capa de mejora cuando se aplica la codificación de video en capas. To align the portions and the AUs to the frames, the creation of the outer code block (FEC) and the encapsulation of the MAC layer should also be aligned. FIGURE 20 illustrates the organization of the encoded video data or a bit stream of portions and AU video. The encoded video may be formed by one or more bit streams, for example the bit stream of the base layer and the bit stream of the enhancement layer when layered video coding is applied.

El flujo de bits de video comprende las AU como se ilustra en la FIGURA 20 por el Cuadro 1’ 2005, el Cuadro 3’ 2010 y el Cuadro M’ 2015. Las AU se componen de porciones de datos, como se ilustra por la Porción 1 2020, Porción 2 2025 y Porción N 2030. Cada comienzo de porción se identifica por un código de comienzo y proporciona una adaptación a la red. En general, el cuadro I o las AU intra-codificadas son grandes, seguidas de cuadros P o cuadros predichos hacia adelante seguidos por cuadros B. La codificación de una AU en múltiples porciones incurre en un coste de sobrecarga significativa en términos de la tasa de bits codificada debido a que la predicción espacial a través de las porciones está restringida y las cabeceras de porción contribuyen también a la sobrecarga. Debido a que los límites de las porciones son puntos de resincronización, la restricción de los paquetes de la capa física contiguos a porciones controla los errores dado que cuando se corrompe un PLP, el error está confinado a la porción The video bit stream comprises the AUs as illustrated in FIGURE 20 by Table 1 '2005, Table 3' 2010 and Table M '2015. The AUs are composed of portions of data, as illustrated by the Portion 1 2020, Portion 2 2025 and Portion N 2030. Each portion start is identified by a start code and provides an adaptation to the network. In general, table I or intra-coded AUs are large, followed by P-frames or forward predicted frames followed by tables B. The coding of a multi-portion AU incurs a significant overhead cost in terms of the rate of bits coded because spatial prediction across portions is restricted and portion headers also contribute to overhead. Because portion limits are resynchronization points, restriction of physical layer packets adjacent to portions controls errors since when a PLP is corrupted, the error is confined to the portion

55 E06804241 04-11-2011 55 E06804241 04-11-2011

en el PLP mientras que si el PLP contenía múltiples porciones o partes de múltiples porciones, el error impactará en todas las porciones o partes de porciones en el PLP. in the PLP while if the PLP contained multiple portions or parts of multiple portions, the error will impact all portions or portions of portions in the PLP.

Dado que los cuadros I son típicamente grandes, por ejemplo, del orden de decenas de kbits, la sobrecarga debida a múltiples porciones no es una gran proporción del tamaño del cuadro I total o de la tasa de bits total. También, teniendo más porciones en una AU intra-codificada permite una resincronización mejor y más frecuente y una ocultación del error espacial más eficiente. También, los cuadros I transportan la información más importante en el flujo de bits de video dado que los cuadros P y B se predicen fuera de los cuadros I. Los cuadros I sirven también como puntos de acceso aleatorio para la adquisición de un canal. Since frames I are typically large, for example, of the order of tens of kbits, the overhead due to multiple portions is not a large proportion of the size of the total frame I or the total bit rate. Also, having more portions in an intra-encoded AU allows for better and more frequent resynchronization and more efficient spatial error concealment. Also, frames I carry the most important information in the video bit stream since frames P and B are predicted outside of frames I. Tables I also serve as random access points for the acquisition of a channel.

Con referencia ahora a la FIGURA 21, la alineación cuidadosa de los cuadros I a los límites de cuadros y las porciones con una AU I asimismo a los límites de cuadro, permite un control de error más eficiente, una protección de error (dado que si una porción que pertenecía al Cuadro 1 2105 se pierde, las porciones que pertenecen al Cuadro 2 2110 tienen una alta probabilidad de estar intactas debido a que el Cuadro 2 2110 tiene una separación de tiempo significativa desde el Cuadro 1 2105) la recuperación de errores se puede realizar por medio de la resincronización y ocultación de error. Referring now to FIGURE 21, careful alignment of frames I to frame limits and portions with an AU I also to frame limits, allows for more efficient error control, error protection (since if a portion that belonged to Table 1 2105 is lost, portions that belong to Table 2 2110 have a high probability of being intact because Table 2 2110 has a significant time separation from Table 1 2105) error recovery is Can perform by resynchronization and error concealment.

Debido a que los cuadros P son típicamente de un tamaño del orden de unos pocos kbits, la alineación de las porciones a un cuadro P y un número entero de cuadros P a los límites del cuadro permite una resistencia frente a errores sin una pérdida perjudicial de eficiencia (por similares razones a la de los cuadros I). Se puede emplear en tales aspectos la ocultación del error temporal. Alternativamente, dispersando cuadros P consecutivos de modo que lleguen en diferentes cuadros proporciona una diversidad de tiempo añadida entre los cuadros P, que puede ser debida a que la ocultación temporal se basa en vectores de movimiento y datos de los cuadros I o P previamente reconstruidos. Los cuadros B pueden ser extremadamente pequeños (centenares de bits) a moderadamente grandes (unos pocos miles de bits). De ahí que la alineación de un número entero de cuadros B a los límites del cuadro es deseable para conseguir una resistencia frente a errores sin una pérdida perjudicial de eficiencia. Because the P frames are typically of a size of the order of a few kbits, the alignment of the portions to a P frame and an integer number of P frames to the limits of the frame allows resistance against errors without a harmful loss of efficiency (for similar reasons to that of tables I). The concealment of temporary error can be used in such aspects. Alternatively, dispersing consecutive P frames so that they arrive in different frames provides an added time diversity between the P frames, which may be due to the fact that temporary concealment is based on motion vectors and data from previously reconstructed I or P frames. The B frames can be extremely small (hundreds of bits) to moderately large (a few thousand bits). Hence, the alignment of an integer number of frames B to the limits of the frame is desirable to achieve resistance against errors without a detrimental loss of efficiency.

Módulo de decisión de modo Mode decision module

La FIGURA 2 ilustra algunos ejemplos de la operación del módulo de decisión de modo 715. Como se muestra, el proceso 1200 comienza en un bloque de entrada 1202. En un ejemplo ilustrativo, las varias entradas de información al módulo de decisión de modo 715 incluyen el tipo de porción, el coste 4x4 intra, el coste 16x16 intra el coste 8x8 intraUV, modo 16x16 intraY, modo intraUV, datos del vector de movimiento (MVD), parámetros de cuantificación (QP), SpPredMB4x4Y, SpPredMB16x16Y, SpPredMB8x8U, SpPredMB8x8V, marcador de distorsión de tasa, píxeles YMB en bruto, píxeles UMB en bruto y píxeles VMB en bruto. El proceso 1200 prosigue entonces al bloque 1204 que codifica la inicialización, que se puede iniciar mediante una señal de entrada o una interfaz que dirige la inicialización del codificador como se indica por el bloque 1206. La inicialización puede incluir el establecimiento de los modos permitidos (incluyendo salto, director), el ajuste de las ponderaciones de modo (si se requiere, por omisión serán iguales ponderaciones para todos los modos) y el establecimiento de las memorias intermedias. Tras la inicialización, el proceso 1200 prosigue en el bloque 1208 en donde se realiza el procesamiento principal para la decisión de modo, incluyendo: el cálculo del coste del modo de macro bloque (MB) para cada modo permitido, la ponderación de cada coste del modo de MB con un factor de ponderación y la selección de un modo de coste del modo de MB mínimo. Las entradas involucradas en estas operaciones incluyen la estimación del movimiento (por ejemplo MVD y predicción) y predicción espacial (por ejemplo costes intra y previsiones) como se ilustra por los bloques 1210 y 1212. La interfaz con el módulo de decisión de modo 715 es una codificación de entropía en el bloque 1214 que, entre otras cosas, mejora la tasa de compresión. El proceso 1200 prosigue con el bloque 1216 en donde las memorias intermedias se adaptan para pasar información al codificador de la parte del segundo paso 706. Finalmente, el proceso 1200 prosigue en el bloque 1218 en donde se puede comunicar el modo de codificación “mejor” al codificador de la parte del segundo paso 706. FIGURE 2 illustrates some examples of the operation of the mode decision module 715. As shown, the process 1200 begins in an input block 1202. In an illustrative example, the various information inputs to the mode decision module 715 include serving type, 4x4 intra cost, 16x16 intra cost 8x8 intraUV cost, 16x16 intraY mode, intraUV mode, motion vector data (MVD), quantization parameters (QP), SpPredMB4x4Y, SpPredMB16x16Y, SpPredMB8x8U, SpPredMB8x8V, rate distortion marker, raw YMB pixels, raw UMB pixels and raw VMB pixels. The process 1200 then proceeds to block 1204 encoding the initialization, which can be initiated by an input signal or an interface that directs the initialization of the encoder as indicated by block 1206. Initialization may include the establishment of allowed modes ( including jump, director), the adjustment of the mode weights (if required, by default they will be equal weights for all modes) and the setting of the buffers. After initialization, the process 1200 continues in block 1208 where the main processing for the mode decision is performed, including: the calculation of the macro block mode (MB) cost for each allowed mode, the weighting of each cost of the MB mode with a weighting factor and the selection of a cost mode of the minimum MB mode. The inputs involved in these operations include motion estimation (for example MVD and prediction) and spatial prediction (for example intra-costs and forecasts) as illustrated by blocks 1210 and 1212. The interface with the mode decision module 715 is an entropy coding in block 1214 which, among other things, improves the compression rate. The process 1200 continues with block 1216 where the buffers are adapted to pass information to the encoder of the part of the second step 706. Finally, the process 1200 continues in block 1218 where the "best" coding mode can be communicated to the encoder of the part of the second step 706.

Codificador de la parte del segundo paso Encoder of the part of the second step

Con referencia de nuevo a la FIGURA 7, la parte del segundo paso 706 del codificador 228 incluye un módulo codificador del segundo paso 232 para la realización del segundo paso de la codificación. El codificador del segundo paso 232 recibe la salida desde el módulo de decisión de modo 715. El codificador del segundo paso 232 incluye un módulo de Cuantificación del MC/Transformada 726 y un codificador de Zig Zag (ZZ)/Entropía 728. Los resultados del codificador de segundo paso 232 se sacan a un módulo de escalabilidad 730 y un módulo de empaquetado del flujo de bits 731, que produce la salida hacia una capa base y de mejora codificadas para la transmisión por el transcodificador 200 por medio de una capa de sincronización 240 (ilustrada en la FIGURA 2). Como se muestra, en la FIGURA 2, se indica que las capas base y de mejora del codificador de segundo paso 232 y del recodificador 234 se montan juntas mediante la capa de sincronización 240 en un PES en paquetes 242 que incluye las capas base y de mejora, un PES de datos 244 (por ejemplo, CC y otros datos de texto), y un PES de audio 246. Se indica que el codificador de audio 236 recibe información de audio del codificador 218 y, a su vez, codifica la información y produce la salida de la información codificada 238 hacia la capa de sincronismo 240. Referring again to FIGURE 7, the part of the second step 706 of the encoder 228 includes an encoder module of the second step 232 for carrying out the second step of the coding. The second step encoder 232 receives the output from the mode decision module 715. The second step encoder 232 includes a Quantification module of the MC / Transformed 726 and a Zig Zag (ZZ) / Entropy 728 encoder. The results of the Second-step encoder 232 is output to a scalability module 730 and a bit stream packaging module 731, which produces output to a base and enhancement layer encoded for transmission by transcoder 200 via a synchronization layer 240 (illustrated in FIGURE 2). As shown, in FIGURE 2, it is indicated that the base and enhancement layers of the second pass encoder 232 and the recoder 234 are assembled together by the synchronization layer 240 in a packet PES 242 which includes the base and base layers. enhancement, a PES of data 244 (for example, CC and other text data), and an audio PES 246. It is indicated that the audio encoder 236 receives audio information from the encoder 218 and, in turn, encodes the information and produces the output of the encoded information 238 towards the synchronization layer 240.

55 E06804241 04-11-2011 55 E06804241 04-11-2011

Recodificador Recoder

Con referencia de nuevo la FIGURA 7, la parte del segundo paso del codificador 706 incluye también un recodificador 234, que corresponde al decodificador 234 de la FIGURA 2, el recodificador 234 recibe también la salida de la parte del primer paso 702 e incluye unas partes del Cuantificación del MC/Transformada 726 y codificación de ZZ/Entropía 728. Adicionalmente, el módulo de escalabilidad 730 produce la salida hacia el recodificador 234. El recodificador 234 produce la salida de la capa base y de mejora resultantes desde el recodificador hacia el módulo de empaquetado del flujo de bits 731 para la transmisión a un sincronizador (por ejemplo la capa de sincronización 240 mostrada en la FIGURA 2). El codificador 228 del ejemplo en la FIGURA 7 incluye también un módulo de ajuste fino del control de tasas 738 que proporciona una realimentación del empaquetado del flujo de bits tanto para el módulo de Cuantificación del MC/Transformada 234 en el codificador del segundo paso 232 como para el módulo de ZZ/Entropía 736 en el recodificador 234 para ayudar al ajuste de la codificación del segundo paso (por ejemplo, para aumentar la eficiencia de la compresión). With reference again to FIGURE 7, the part of the second passage of the encoder 706 also includes a recoder 234, which corresponds to the decoder 234 of FIGURE 2, the recoder 234 also receives the output of the part of the first step 702 and includes parts of the Quantification of the MC / Transformed 726 and coding of ZZ / Entropy 728. Additionally, the scalability module 730 produces the output to the recoder 234. The recoder 234 produces the output of the resulting base and improvement layer from the recoder to the module of bit stream 731 for transmission to a synchronizer (for example the synchronization layer 240 shown in FIGURE 2). The encoder 228 of the example in FIGURE 7 also includes a fine adjustment module of the rate control 738 which provides a feedback of the bit stream packaging for both the Quantification module of the MC / Transformed 234 in the encoder of the second step 232 and for the ZZ / Entropy module 736 in the recoder 234 to help adjust the coding of the second step (for example, to increase compression efficiency).

Módulo de resistencia a los errores Error Resistance Module

El ejemplo de codificador 228 ilustrado en la FIGURA 7 incluye también un módulo de resistencia frente a errores 740 en la parte del segundo paso 706. El módulo de resistencia frente a errores 740 comunica con el módulo de empaquetado del flujo de bits 700 31 y el módulo de ordenación porción/MB 722. El módulo de resistencia frente a errores 740 recibe metadatos desde el preprocesador 228 y selecciona un esquema de resistencia frente a errores, por ejemplo, la alineación de la porción y las unidades de acceso a los límites del cuadro, jerarquía predictiva y intra refresco adaptativo. La selección del esquema de resistencia frente a errores se puede basar en la información recibida en los metadatos o en la información comunicada al módulo de resistencia frente a errores desde el módulo de empaquetado del flujo de bits 731 y el módulo de ordenación porción/MB 722. El módulo de resistencia frente a errores 740 proporciona información al módulo de ordenación porción/macro bloques (MB) en la parte del primer paso 702 para implementar los procesos de resistencia frente a errores seleccionados. Las transmisiones de video a través de entornos propensos a errores pueden emplear estrategias y algoritmos de resistencia frente a errores que puede dar como resultado la presentación de unos datos más claros y con menos errores a un usuario de la visión. La descripción de la resistencia frente a errores a continuación puede aplicarse a cualquier aplicación individual o combinación de las existentes o futuras, capas de transporte y físicas u otras tecnologías. Los algoritmos de robustez frente a errores integran una comprensión de las propiedades de susceptibilidad frente a errores y las capacidades de protección de errores entre las capas OSI en conjunto con las propiedades deseables del sistema de comunicación tal como baja latencia y alto rendimiento. El procesamiento de la resistencia frente a errores se puede basar en la información del contenido de los datos multimedia, por ejemplo, en la clasificación del contenido de los datos multimedia. Una de las ventajas principales es la recuperabilidad de los errores de desvanecimiento y de multi-trayecto del canal. Los enfoques de resistencia frente a errores descritos a continuación pertenecen específicamente a procesos que se pueden incorporar en el codificador 228 (por ejemplo en particular en el módulo de resistencia frente a errores 740 y en el módulo de ordenación porción/MB 722) y se puede extender genéricamente a la comunicación de datos en entornos proclives a errores. The example of encoder 228 illustrated in FIGURE 7 also includes an error resistance module 740 in the part of the second step 706. The error resistance module 740 communicates with the bit flow packaging module 700 31 and the portion / MB sorting module 722. The error resistance module 740 receives metadata from the preprocessor 228 and selects an error resistance scheme, for example, the alignment of the portion and the units of access to the limits of the frame , predictive hierarchy and adaptive intra refreshment. The selection of the error resistance scheme can be based on the information received in the metadata or on the information communicated to the error resistance module from the bit stream packaging module 731 and the portion / MB 722 sorting module The error resistance module 740 provides information to the portion / macro block (MB) sorting module in the part of the first step 702 to implement the resistance processes against selected errors. Video streams through error-prone environments can employ error resistance strategies and algorithms that can result in the presentation of clearer and less error data to a vision user. The description of resistance to errors below can be applied to any individual application or combination of existing or future, transport and physical layers or other technologies. The robustness and error algorithms integrate an understanding of the susceptibility to error properties and the error protection capabilities between the OSI layers in conjunction with the desirable properties of the communication system such as low latency and high performance. The processing of the resistance against errors can be based on the information of the content of the multimedia data, for example, on the classification of the content of the multimedia data. One of the main advantages is the recoverability of fade and multi-path channel errors. The error resistance approaches described below pertain specifically to processes that can be incorporated in the encoder 228 (for example in particular in the error resistance module 740 and in the portion / MB 722 sorting module) and can be Generically extend to data communication in error-prone environments.

Resistencia frente a errores Resistance against errors

Para un sistema de compresión híbrido basado en la predicción, los cuadros intra-codificados se codifican independientemente sin ninguna predicción temporal. Los cuadros inter-codificados se pueden predecir temporalmente a partir de cuadros pasados (cuadros P) y cuadros futuros (cuadros B). El mejor previsor se puede identificar a través de un proceso de búsqueda en el cuadro de referencia (uno o más) y se usa una medida de distorsión tal como la SAD para identificar el mejor ajuste. La región codificada predictiva del cuadro actual puede ser un bloque de tamaño y forma variables (16x16, 32x32, 8x4, etc.) o un grupo de píxeles identificados como un objeto a través, por ejemplo, de la segmentación. For a hybrid compression system based on prediction, intra-encoded frames are independently encoded without any temporal prediction. Intercoded frames can be temporarily predicted from past frames (P frames) and future frames (B frames). The best forecaster can be identified through a search process in the reference chart (one or more) and a distortion measure such as SAD is used to identify the best fit. The predictive encoded region of the current frame can be a block of variable size and shape (16x16, 32x32, 8x4, etc.) or a group of pixels identified as an object through, for example, segmentation.

La predicción temporal se extiende típicamente sobre muchos cuadros (por ejemplo 10 a decenas de cuadros) y se finaliza cuando un cuadro se codifica como un cuadro I, estando típicamente el GOP definido por la frecuencia de cuadros I. Para una máxima eficiencia de codificación, un GOP es una escena, por ejemplo, los límites del GOP se alinean con los límites de la escena y los cuadros de cambio de escena se codifican como cuadros I. Las secuencias de movimiento bajo se componen de un fondo relativamente estático y el movimiento se limita generalmente a un objeto en primer plano. Los ejemplos de contenido de tales secuencias de movimiento bajo incluyen programas de noticias y predicciones del tiempo en donde no más del 30% del contenido más visto es de esta naturaleza. En secuencias de movimiento bajo, la mayoría de las regiones se intra-codifican y los cuadros predichos se refieren hacia atrás al cuadro I a través de los cuadros predichos intermedios. Temporal prediction typically extends over many frames (for example 10 to tens of frames) and is terminated when one frame is encoded as one frame I, the GOP typically being defined by the frequency of frames I. For maximum coding efficiency, a GOP is a scene, for example, the limits of the GOP are aligned with the limits of the scene and the scene change frames are encoded as frames I. The low motion sequences are made up of a relatively static background and the movement is generally limited to a foreground object. Examples of content of such low motion sequences include news programs and weather predictions where no more than 30% of the most viewed content is of this nature. In low motion sequences, most regions are intra-encoded and predicted frames refer back to frame I through intermediate predicted frames.

Con referencia a la FIGURA 22, el bloque intra-codificado 2205 en el cuadro I es el previsor para el bloque intracodificado 2210 en el cuadro codificado (o AU) P1. En este ejemplo, la región de estos bloques es una parte fija del fondo. A través de la predicción temporal consecutiva, la sensibilidad del bloque intra-codificado 2205 a los errores crece hasta que es un previsor “bueno” que también implica que su “importancia” es más alta. Adicionalmente, el bloque intra-codificado 2205, en virtud de su cadena de predicción temporal denominada la cadena de predicción, persiste más tiempo en la pantalla (durante la duración de la escena en el ejemplo en la figura). With reference to FIGURE 22, the intra-encoded block 2205 in frame I is the forecast for the intracoded block 2210 in the encoded frame (or AU) P1. In this example, the region of these blocks is a fixed part of the background. Through consecutive temporal prediction, the sensitivity of the intra-coded block 2205 to errors grows until it is a "good" forecast that also implies that its "importance" is higher. Additionally, the intra-coded block 2205, by virtue of its temporal prediction chain called the prediction chain, persists more time on the screen (for the duration of the scene in the example in the figure).

60 E06804241 04-11-2011 60 E06804241 04-11-2011

La jerarquía de predicción se define como el árbol de bloques creados en base a su nivel de importancia o medición de persistencia con el padre en la parte superior (bloque intra-codificado 2205) y los hijos en la parte inferior. Nótese que el bloque inter-codificado 2215 en P1 está en el segundo nivel de jerarquía y así sucesivamente. Las hojas son bloques que finalizan una cadena de predicción. The prediction hierarchy is defined as the tree of blocks created based on their level of importance or persistence measurement with the parent at the top (intra-coded block 2205) and the children at the bottom. Note that the inter-coded block 2215 in P1 is in the second hierarchy level and so on. Leaves are blocks that end a prediction chain.

La jerarquía de predicción se puede crear para secuencias de video independientemente del tipo de contenido (asimismo para música y deportes y no solamente noticias) y se puede aplicar a la comprensión de video (y datos) basada en predicción en general (esto se aplica a todos aspectos descritos en esta solicitud). Una vez que se establece la jerarquía de predicción, los algoritmos de resistencia frente a errores tal como el intra refresco adaptativo, descrito a continuación, se puede aplicar más efectivamente. La medida de la importancia se puede basar en la posibilidad de recuperar un bloque dado de los errores tal como a través de operaciones de ocultación y aplicación de intra refresco adaptativo para mejorar la resistencia de los flujos de bits codificados a los errores. Una estimación de la medición de importancia se puede basar en el número de veces que se usa un bloque como un previsor también denominada como una métrica de persistencia. La métrica de persistencia se usa también para mejorar la eficiencia de codificación mediante la detención de la propagación del error de predicción. La métrica de persistencia también aumenta la asignación de bits para los bloques con importancia más alta. The prediction hierarchy can be created for video sequences regardless of the type of content (also for music and sports and not just news) and can be applied to the understanding of video (and data) based on prediction in general (this applies to all aspects described in this application). Once the prediction hierarchy is established, error resistance algorithms such as adaptive intra refreshment, described below, can be applied more effectively. The measure of importance can be based on the possibility of recovering a given block of errors such as through concealment operations and application of adaptive intra refresh to improve the resistance of the coded bit streams to errors. An estimate of the importance measurement can be based on the number of times a block is used as a foresight also called a persistence metric. Persistence metrics are also used to improve coding efficiency by stopping the propagation of the prediction error. Persistence metrics also increase bit allocation for blocks with higher importance.

Intra refresco adaptativo Intra adaptive soda

El intra refresco adaptativo es una técnica de resistencia a los errores que se puede basar en la información del contenido de los datos multimedia. En un proceso de intra refresco, algunos MB se intra-codifican incluso aunque la optimización R-D estándar dictaría que deberían ser MB inter-codificados. El AIR emplea un intra refresco ponderado por movimiento para introducir MB intra-codificados en cuadros P o B. Estos MB intra-codificados, contenidos en la capa base, se pueden codificar o bien con un QPb o bien con un QPe. Si se usa el QPe para la capa base, entonces no se necesita ningún refinamiento en la capa de mejora. Si se usa QPb para la capa base, entonces puede ser apropiado un refinamiento, en caso contrario en la capa de mejora, la caída de calidad será notable. Dado que la inter-codificación es más eficiente que la intra-codificación en el sentido de la eficiencia de codificación, estos refinamientos en la capa de mejora serán inter-codificados. En esta forma, los coeficientes de la capa base no se usarán para la capa de mejora, y se mejora de calidad en la capa de mejora sin introducir nuevas operaciones. Adaptive intra refreshment is a technique of resistance to errors that can be based on the information of the multimedia data content. In an intra-refresh process, some MBs are intra-encoded even though the standard R-D optimization would dictate that they should be inter-encoded MB. The AIR uses a motion-weighted intracool to introduce intracoded MB in P or B frames. These intracoded MBs, contained in the base layer, can be encoded either with a QPb or with a QPe. If the QPe is used for the base layer, then no refinement is needed in the improvement layer. If QPb is used for the base layer, then a refinement may be appropriate, otherwise in the improvement layer, the quality drop will be noticeable. Since inter-coding is more efficient than intra-coding in the sense of coding efficiency, these refinements in the enhancement layer will be inter-coded. In this way, the coefficients of the base layer will not be used for the improvement layer, and quality improvement in the improvement layer is introduced without introducing new operations.

En algunos aspectos, el intra refresco adaptativo se puede basar en la información del contenido de los datos multimedia (por ejemplo una clasificación del contenido) en lugar de, o además de, en base a la ponderación del movimiento. Por ejemplo, si la clasificación del contenido es relativamente alta (por ejemplo, escenas que tengan una complejidad espacial y temporal alta) el intra refresco adaptativo puede introducir relativamente más MB intracodificados en cuadros P o B. Alternativamente, si la clasificación del contenido era relativamente baja (indicando una escena menos dinámica con baja complejidad espacial y/o temporal), el intra refresco adaptativo puede introducir menos MB intra-codificados en los cuadros P y B. Tales métricas y procedimientos para la mejora de la resistencia a los errores se pueden aplicar no solamente en el contexto de comunicaciones multimedia inalámbricas sino hacia la compresión de datos y el procesamiento multimedia en general (por ejemplo en la generación de gráficos). In some aspects, the adaptive intra refresh can be based on the information of the multimedia data content (for example a classification of the content) instead of, or in addition to, based on the weighting of the movement. For example, if the content classification is relatively high (for example, scenes that have a high spatial and temporal complexity) the adaptive intra refresh can introduce relatively more intracoded MB in P or B frames. Alternatively, if the content classification was relatively low (indicating a less dynamic scene with low spatial and / or temporal complexity), the adaptive intra refresh can introduce less intra-encoded MB in tables P and B. Such metrics and procedures for improving error resistance can be apply not only in the context of wireless multimedia communications but towards data compression and multimedia processing in general (for example in graphics generation).

Cuadro de cambio de canal Channel Change Chart

Un cuadro de cambio de canal (CSF) se define en el presente documento como un término amplio que describe un cuadro de acceso aleatorio insertado en una localización apropiada en una transmisión continua de emisión para una adquisición de canal rápida y por ello un cambio de canal rápido entre transmisiones continuas en un múltiplex de emisión. Los cuadros de cambio de canal aumentan también la robustez frente a errores, dado que proporcionan datos redundantes que se pueden usar si el cuadro primario se transmite con un error. Un cuadro I o un cuadro I progresivo tal como el cuadro de refresco de decodificador progresivo en H.264 sirve típicamente como un punto de acceso aleatorio. Sin embargo, frecuentes cuadros I (o cortos GOP, más cortos que las duraciones de las escenas) da como resultado una reducción significativa en la eficiencia de la compresión. Dado que los bloques de intracodificación se pueden requerir para resistencia frente a errores, el acceso aleatorio y la resistencia a los errores se puede combinar de modo efectivo a través de la jerarquía de predicción para mejorar la eficiencia de codificación mientras se mantiene la robustez frente a errores. A channel change frame (CSF) is defined herein as a broad term describing a random access frame inserted in an appropriate location in a continuous broadcast transmission for a fast channel acquisition and hence a channel change. fast between continuous transmissions in an emission multiplex. Channel change frames also increase robustness against errors, since they provide redundant data that can be used if the primary frame is transmitted with an error. A frame I or a progressive frame I such as the progressive decoder refresh box in H.264 typically serves as a random access point. However, frequent frames I (or short GOP, shorter than the durations of the scenes) results in a significant reduction in compression efficiency. Since intracoding blocks may be required for error resistance, random access and error resistance can be effectively combined through the prediction hierarchy to improve coding efficiency while maintaining robustness against mistakes.

La mejora del cambio de acceso aleatorio y robustez frente a errores se puede conseguir en concierto y se puede basar en la información del contenido tal como una clasificación del contenido. Para secuencias de movimiento bajo, las cadenas de predicción son largas y una parte significativa de la información requerida para reconstruir un súper cuadro o escena está contenida en el cuadro I que apareció al comienzo de la escena. Los errores de canal tienden a ser a ráfagas y cuando un desvanecimiento aparece y falla el FEC y la codificación del canal, hay un error residual fuerte que falla en su ocultación. Esto es particularmente severo para secuencias de poco movimiento (y por ello de una baja tasa de bits) dado que la cantidad de datos codificados no es suficientemente significativa para proporcionar una buena diversidad de tiempos dentro del flujo de bits de video y debido a que éstas son secuencias altamente comprensibles que generan cada bit útil para la reconstrucción. Las secuencias de movimiento alto son más robustas frente a errores debido a la naturaleza del contenido —más información nueva en cada cuadro aumenta el número de bloques intra-codificados que se pueden decodificar independientemente y son inherentemente más resistentes frente a errores—. El intra refresco adaptativo en base a jerarquía de predicción The improvement of random access change and robustness against errors can be achieved in concert and can be based on content information such as a content classification. For sequences of low movement, the prediction chains are long and a significant part of the information required to reconstruct a super frame or scene is contained in table I that appeared at the beginning of the scene. Channel errors tend to be bursts and when a fade appears and the FEC fails and the channel coding, there is a strong residual error that fails to hide it. This is particularly severe for low movement sequences (and therefore a low bit rate) since the amount of encoded data is not significant enough to provide a good diversity of times within the video bit stream and because they they are highly understandable sequences that generate each bit useful for reconstruction. High-movement sequences are more robust against errors due to the nature of the content - more new information in each frame increases the number of intra-encoded blocks that can be decoded independently and are inherently more resistant to errors. The intra adaptive soft drink based on prediction hierarchy

55 E06804241 04-11-2011 55 E06804241 04-11-2011

consigue un alto rendimiento para secuencias de movimiento alto y la mejora del rendimiento no es significativa para secuencias de movimiento bajo. Por ello, un cuadro de cambio de canal que contiene la mayor parte del cuadro I es una buena fuente de diversidad para secuencias de movimiento bajo. Cuando aparece un error en un súper cuadro, la decodificación de los cuadros consecutivos comienza desde el CSF que recupera la información perdida debido a la predicción y se consigue una resistencia frente a los errores. it achieves high performance for high motion sequences and performance improvement is not significant for low motion sequences. Therefore, a channel change frame containing most of the frame I is a good source of diversity for low motion sequences. When an error appears in a super frame, the decoding of the consecutive frames starts from the CSF that retrieves the lost information due to the prediction and resistance to errors is achieved.

En el caso de secuencias de alto movimiento tal como secuencias que tengan una clasificación de contenido relativamente alta (por ejemplo 6-8), el CSF puede consistir en bloques que persisten en el SF —aquellos que son buenos previsores—. Todas las otras regiones del CSF no han de ser codificadas dado que son bloques que tienen cadenas de predicción cortas que implica que se finalizan con intra bloques. Por ello, el CSF aun sirve para recuperarse de la información perdida debido a la predicción cuando ocurre un error. Los CSF para secuencias de movimiento bajo están a la altura del tamaño de los cuadros I y se pueden codificar con una tasa de bits más baja por medio de una cuantificación más fuerte, con la que los CSF para secuencias de movimiento alto son mucho más pequeños que los correspondientes cuadros I. In the case of high-movement sequences such as sequences that have a relatively high content classification (for example 6-8), the CSF may consist of blocks that persist in the SF - those that are good predictors. All other regions of the CSF are not to be coded since they are blocks that have short prediction chains that imply that they are terminated with intra blocks. Therefore, the CSF still serves to recover from lost information due to prediction when an error occurs. The CSFs for low motion sequences are up to the size of the I frames and can be encoded with a lower bit rate by means of a stronger quantification, with which the CSFs for high motion sequences are much smaller that the corresponding tables I.

La resistencia frente a errores en base a la jerarquía de predicción puede funcionar bien con escalabilidad y puede conseguir una codificación en capas altamente eficiente. La escalabilidad para soportar la modulación jerárquica en tecnologías de capas físicas, puede requerir la partición de los datos del flujo de bits de video con relaciones de ancho de banda específicas. Estas pueden no ser siempre las relaciones ideales para una escalabilidad óptima (por ejemplo, con la menor sobrecarga). En algunos aspectos, se usa una escalabilidad de 2 capas con una relación de ancho de banda 1:1. La división del flujo de bits de video en 2 capas de igual tamaño puede no ser tan eficiente para secuencias de movimiento bajo. Para secuencias de movimiento bajo, la capa base que contiene toda la información de cabecera y metadatos es más grande que la capa de mejora. Sin embargo, dado que los CSF para secuencias de movimiento bajo son más grandes, ellos encajan claramente en el ancho de banda restante en la capa de mejora. Resistance to errors based on the prediction hierarchy can work well with scalability and can achieve highly efficient layered coding. The scalability to support hierarchical modulation in physical layer technologies may require the splitting of video bitstream data with specific bandwidth ratios. These may not always be the ideal relationships for optimal scalability (for example, with the least overhead). In some aspects, a 2-layer scalability with a 1: 1 bandwidth ratio is used. Splitting the video bit stream into 2 layers of equal size may not be as efficient for low motion sequences. For low motion sequences, the base layer that contains all the header and metadata information is larger than the enhancement layer. However, since the CSFs for low motion sequences are larger, they clearly fit the remaining bandwidth in the enhancement layer.

Las secuencias de movimiento alto tienen suficiente información residual que se puede conseguir una partición de los datos en 1:1 con la menor sobrecarga. Adicionalmente, un cuadro de cambio de canal para tales secuencias es mucho más pequeño para secuencias de movimiento alto. Por ello, la resistencia frente a errores en base a la jerarquía de predicción puede funcionar bien asimismo con la escalabilidad para secuencias de movimiento alto. La extensión de los conceptos explicados anteriormente para clips de movimiento moderado es posible en base a las descripciones de estos algoritmos y los conceptos propuestos se aplican para la codificación de video en general. The high movement sequences have enough residual information that a partition of the data in 1: 1 can be achieved with the least overhead. Additionally, a channel change frame for such sequences is much smaller for high motion sequences. Therefore, resistance to errors based on the prediction hierarchy can also work well with scalability for high motion sequences. The extension of the concepts explained above for moderate motion clips is possible based on the descriptions of these algorithms and the proposed concepts are applied for video coding in general.

Multiplexor Multiplexor

En algunos aspectos del codificador, se puede usar un multiplexor para la codificación de múltiples transmisiones continuas multimedia producidas por el decodificador y usarse para preparar los bits codificados para emisión. Por ejemplo, en el aspecto ilustrativo del codificador 228 mostrado en la FIGURA 2, la capa de sincronismo 240 comprende un multiplexor. El multiplexor se puede implementar para proporcionar el control de asignación de tasa de bits. La complejidad estimada se puede proporcionar al multiplexor, que puede entonces asignar el ancho de banda disponible para una colección de canales de video multiplexados de acuerdo con la complejidad de codificación anticipada por esos canales de video, lo que permite entonces que permanezca la calidad de un canal particular relativamente constante incluso si el ancho de banda para la colección de las transmisiones continuas de video multiplexadas es relativamente constante. Esto proporciona un canal con una colección de canales para tener una tasa de bits variable y una calidad visual relativamente constante, más que una tasa de bits relativamente constante y una calidad visual variable. In some aspects of the encoder, a multiplexer can be used for encoding multiple continuous multimedia transmissions produced by the decoder and used to prepare the encoded bits for broadcast. For example, in the illustrative aspect of the encoder 228 shown in FIGURE 2, the synchronization layer 240 comprises a multiplexer. The multiplexer can be implemented to provide bit rate allocation control. The estimated complexity can be provided to the multiplexer, which can then allocate the available bandwidth for a collection of multiplexed video channels according to the coding complexity anticipated by those video channels, which then allows the quality of a relatively constant particular channel even if the bandwidth for the collection of multiplexed video streams is relatively constant. This provides a channel with a collection of channels to have a variable bit rate and a relatively constant visual quality, rather than a relatively constant bit rate and a variable visual quality.

La FIGURA 18 es un diagrama de bloques que ilustra un sistema de codificación múltiple de transmisiones continuas FIGURE 18 is a block diagram illustrating a multiple coding system of continuous transmissions.

o canales multimedia 1802. Las transmisiones continuas multimedia 1802 se codifican mediante los codificadores respectivos 1804, que están en comunicación con un multiplexor (MUX) 1806, que a su vez está en comunicación con un medio de transmisión 1808. Por ejemplo, las transmisiones continuas multimedia 1802 pueden corresponder a varios canales de contenido, tal como canales de noticias, canales de deporte, canales de películas y otros similares. Los codificadores 1804 codifican las transmisiones continuas multimedia 1802 en el formato de codificación especificado por el sistema. Mientras que se describe en el contexto de la codificación de transmisiones continuas de video, los principios y ventajas de las técnicas desveladas son aplicables en general a las transmisiones continuas multimedia que incluyen, por ejemplo, transmisiones de audio. Las transmisiones continuas multimedia codificadas se proporcionan a un multiplexor 1806, que combina las varias transmisiones continuas multimedia codificadas y envía la transmisión continua combinada al medio de transmisión 1808 para su transmisión. or multimedia channels 1802. Continuous multimedia transmissions 1802 are encoded by the respective encoders 1804, which are in communication with a multiplexer (MUX) 1806, which in turn is in communication with a transmission medium 1808. For example, continuous transmissions Multimedia 1802 can correspond to various content channels, such as news channels, sports channels, movie channels and the like. The encoders 1804 encode continuous multimedia transmissions 1802 in the encoding format specified by the system. While described in the context of the coding of continuous video transmissions, the principles and advantages of the disclosed techniques are generally applicable to continuous multimedia transmissions that include, for example, audio transmissions. The encoded multimedia continuous transmissions are provided to a multiplexer 1806, which combines the various encoded multimedia continuous transmissions and sends the combined continuous transmission to the transmission medium 1808 for transmission.

El medio de transmisión 1808 puede corresponder a una variedad de medios, tales como, pero sin limitarse a, comunicación por satélite digital, tal como DirecTV®, cable digital, comunicaciones de Internet cableadas e inalámbricas, redes ópticas, redes de teléfonos celulares y otros similares. El medio de transmisión 1808 puede incluir, por ejemplo, la modulación en una frecuencia de radio (RF). Típicamente, debido a las limitaciones espectrales y otras similares, el medio de transmisión tiene un ancho de banda limitado y los datos desde el multiplexor 1806 al medio de transmisión se mantienen con una tasa de bits (CBR) relativamente constante. The transmission medium 1808 can correspond to a variety of media, such as, but not limited to, digital satellite communication, such as DirecTV®, digital cable, wired and wireless Internet communications, optical networks, cell phone networks and others Similar. Transmission medium 1808 may include, for example, modulation in a radio frequency (RF). Typically, due to spectral and other similar limitations, the transmission medium has a limited bandwidth and the data from multiplexer 1806 to the transmission medium is maintained with a relatively constant bit rate (CBR).

En sistemas convencionales, el uso de una tasa de bits constante (CBR) a la salida del multiplexor 1806 puede requerir que las transmisiones continuas multimedia o de video codificadas que se introducen en el multiplexor 1806 In conventional systems, the use of a constant bit rate (CBR) at the output of multiplexer 1806 may require continuous encoded multimedia or video transmissions that are introduced into multiplexer 1806

55 E06804241 04-11-2011 55 E06804241 04-11-2011

sean también de CBR. Como se ha descrito en los antecedentes, el uso del CBR cuando se codifica contenido de video puede dar como resultado una calidad visual variable, que típicamente es indeseable. are also from CBR. As described in the background, the use of CBR when encoding video content can result in a variable visual quality, which is typically undesirable.

En el sistema ilustrado, dos o más de los codificadores 1804 comunican una complejidad de codificación anticipada de los datos de entrada. Uno o más de los codificadores 1804 pueden recibir un control de la tasa de bits adaptada desde el multiplexor 1806 en respuesta. Esto permite a un codificador 1804 que espera codificar video relativamente complejo recibir una tasa de bits más alta o un ancho de banda más alto (más bits por cuadro) para esos cuadros del video en una forma de tasa de bits casi variable. Esto permite a la transmisión continua multimedia 1802 ser codificada con una calidad visual consistente. El ancho de banda extra que se usa por el codificador particular 1804 que codifica video relativamente complejo viene de los bits que se habrían usado en otro caso para la codificación de otras transmisiones continuas de video 1804 si los codificadores se implementasen para funcionar con tasas de bits constantes. Esto mantiene la salida del multiplexor 1806 en una tasa de bits constante (CBR). In the illustrated system, two or more of the encoders 1804 communicate an early coding complexity of the input data. One or more of the encoders 1804 can receive control of the bit rate adapted from the multiplexer 1806 in response. This allows an encoder 1804 that expects to encode relatively complex video to receive a higher bit rate or a higher bandwidth (more bits per frame) for those frames of the video in an almost variable bit rate form. This allows continuous multimedia streaming 1802 to be encoded with consistent visual quality. The extra bandwidth used by the particular encoder 1804 that encodes relatively complex video comes from the bits that would otherwise have been used for encoding other continuous video transmissions 1804 if the encoders were implemented to operate with bit rates. constants This keeps the output of multiplexer 1806 at a constant bit rate (CBR).

Mientras que una transmisión continua multimedia individual 1802 puede ser relativamente a “ráfagas”, esto es, variable en el ancho de banda usado, la suma acumulativa de las transmisiones continuas de video múltiples puede ser menos a ráfagas. La tasa de bits de los canales que se codifican con video menos complejo puede ser reasignada por, por ejemplo, el multiplexor 1806, a los canales que están codificando video relativamente complejo y esto puede mejorar la calidad visual de las transmisiones continuas de video combinadas como un todo. While an individual multimedia streaming 1802 may be relatively "bursts," that is, variable in the bandwidth used, the cumulative sum of multiple video streaming can be less bursts. The bit rate of the channels that are encoded with less complex video can be reassigned by, for example, multiplexer 1806, to the channels that are encoding relatively complex video and this can improve the visual quality of the combined video streams as a whole

Los codificadores 1804 proporcionan al multiplexor 1806 una indicación de la complejidad de un conjunto de cuadros de video a ser codificados y multiplexados juntos. La salida del multiplexor 1806 debería proporcionar una salida que no sea más alta que la tasa de bits especificada para el medio de transmisión 1808. Las indicaciones de la complejidad se pueden basar en la clasificación del contenido como se ha explicado anteriormente para proporcionar un nivel de calidad seleccionado. El multiplexor 1806 analiza las indicaciones de complejidad y proporciona a los varios codificadores 1804 un número asignado de bits o ancho de banda y los codificadores 1804 usan esta información para codificar los cuadros de vídeo en el conjunto. Esto permite a un conjunto de cuadros de video tener individualmente una tasa de bits variable y conseguir aún una tasa de bits constante como grupo. The encoders 1804 provide the multiplexer 1806 with an indication of the complexity of a set of video frames to be encoded and multiplexed together. The output of multiplexer 1806 should provide an output that is not higher than the bit rate specified for transmission medium 1808. The indications of complexity can be based on the classification of content as explained above to provide a level of selected quality. The multiplexer 1806 analyzes the indications of complexity and provides the various encoders 1804 with an assigned number of bits or bandwidth and the encoders 1804 use this information to encode the video frames in the set. This allows a set of video frames to individually have a variable bit rate and still achieve a constant bit rate as a group.

La clasificación del contenido se puede usar también en la habilitación de una conversión basada en la calidad de multimedia en general para cualquier compresor genérico. La clasificación del contenido y los procedimientos y aparatos descritos en el presente documento se pueden usar en el procesamiento multimedia en base a la calidad y/o en base al contenido de cualquier dato multimedia. Un ejemplo es su uso en la compresión de multimedia en general por cualquier compresor genérico. Otro ejemplo es en la descompresión o decodificación en cualquier compresor o decodificador o post-procesador tal como en las operaciones de interpolación, remuestreo, mejora, restauración y presentación. Content classification can also be used to enable a conversion based on multimedia quality in general for any generic compressor. The classification of the content and the procedures and apparatus described herein may be used in multimedia processing based on quality and / or based on the content of any multimedia data. An example is its use in multimedia compression in general by any generic compressor. Another example is in the decompression or decoding in any compressor or decoder or post-processor such as in interpolation, resampling, improvement, restoration and presentation operations.

Con referencia ahora a la FIGURA 19, un sistema de comunicación de video típico incluye un sistema de compresión de video que consiste en un codificador de video y un decodificador de video conectados mediante una red de comunicación. Las redes inalámbricas son una clase de redes proclives a errores en las que los canales de comunicación exhiben un desvanecimiento logarítmico-normal o ensombrecido y desvanecimiento multi-trayecto en escenarios móviles además de la pérdida de trayectoria. Para combatir los errores del canal y proporcionar comunicaciones fiables para los datos de la capa de aplicación, el modulador de RF incluye una corrección de error directa que incluyen intercaladores y codificación de canal tal como la convolucional o la turbo codificación. Referring now to FIGURE 19, a typical video communication system includes a video compression system consisting of a video encoder and a video decoder connected via a communication network. Wireless networks are a class of error-prone networks in which communication channels exhibit logarithmic-normal or overshadowed fading and multi-path fading in mobile scenarios in addition to loss of trajectory. To combat channel errors and provide reliable communications for application layer data, the RF modulator includes a direct error correction that includes interleavers and channel coding such as convolutional or turbo coding.

La compresión de video reduce la redundancia en el origen del video y aumenta la cantidad de información transportada en cada bit de datos de video codificados. Esto aumenta el impacto en la calidad cuando incluso una pequeña parte del video codificado se pierde. La predicción espacial y temporal inherente en los sistemas de compresión de video agrava la pérdida y produce errores que se propagan resultando en artificiosidades visibles en el video reconstruido. Los algoritmos de resistencia frente a errores en el codificador de video y los algoritmos de recuperación de errores en el decodificador de video mejoran la robustez frente a errores del sistema de compresión de video. Video compression reduces redundancy at the source of the video and increases the amount of information carried in each bit of encoded video data. This increases the impact on quality when even a small part of the encoded video is lost. The spatial and temporal prediction inherent in video compression systems aggravates the loss and produces errors that propagate resulting in visible artifice in the reconstructed video. The error resistance algorithms in the video encoder and the error recovery algorithms in the video decoder improve the robustness against errors of the video compression system.

Típicamente, el sistema de compresión de video es agnóstico respecto a la red subyacente. Sin embargo, en redes proclives a errores, la integración o alineación de los algoritmos de protección de error en la capa de aplicación con el FEC y la codificación del canal en las capas de enlace/físicas es altamente deseable y proporciona la mayor eficiencia en la mejora del rendimiento frente a errores del sistema. Typically, the video compression system is agnostic with respect to the underlying network. However, in error-prone networks, the integration or alignment of error protection algorithms in the application layer with the FEC and channel coding in the link / physical layers is highly desirable and provides the highest efficiency in the performance improvement against system errors.

La FIGURA 14 ilustra un ejemplo de un flujo de datos de tasa-distorsión que puede suceder en el codificador 228 para codificar cuadros. El proceso 1400 comienza en el inicio 1402 y prosigue en el bloque de decisión 1404 en el que recibe la entrada del detector de cambio de escena 1410 desde el preprocesador 226 (por ejemplo por medio de metadatos) y se adquiere la entrada de resistencia frente a errores 1406. Si la información indica un cuadro seleccionado como un cuadro I, el proceso intra-codifica el cuadro. Si la información indica que el cuadro seleccionado es un cuadro P o B, el proceso usa intra-codificación e (Inter) codificación de la estimación del movimiento para codificar el cuadro. FIGURE 14 illustrates an example of a rate-distortion data stream that can happen in encoder 228 to encode frames. The process 1400 starts at the start 1402 and continues in the decision block 1404 in which it receives the input of the scene change detector 1410 from the preprocessor 226 (for example by means of metadata) and the resistance input is acquired against 1406 errors. If the information indicates a frame selected as a frame I, the process intra-encodes the frame. If the information indicates that the selected frame is a P or B frame, the process uses intra-coding and (Inter) motion estimation coding to encode the frame.

Después de que sucede una condición afirmativa para las condiciones del bloque 1404 el proceso 1400 prosigue en un bloque de preparación 1414 en el que la tasa R se fija en el valor R = Rcal, la calidad objetivo deseada en base a After an affirmative condition for the conditions of block 1404 occurs the process 1400 continues in a preparation block 1414 in which the rate R is set at the value R = Rcal, the desired target quality based on

60 E06804241 04-11-2011 60 E06804241 04-11-2011

las curvas R-D. El ajuste se recibe desde el bloque de datos 1416 que comprende las curvas R-D. El proceso 1400 prosigue entonces al bloque 1418 en donde se realiza la asignación de bits de control de tasa {QPi} en base a la información de actividad e imagen/video (por ejemplo la clasificación del contenido) desde un proceso de clasificación del contenido en el bloque 1420. R-D curves. The adjustment is received from data block 1416 comprising the R-D curves. The process 1400 then proceeds to block 1418 where the assignment of rate control bits {QPi} is performed based on the activity and image / video information (eg content classification) from a content classification process in block 1420.

El bloque de asignación del bit de control de tasa 1418 se usa, a su vez, para la estimación del movimiento en el bloque 1422. La estimación del movimiento 1422 puede recibir también la entrada de metadatos desde el preprocesador 1412, el suavizador del detector de movimiento (MPEG-2 + Histórico) desde el bloque 1424 y múltiples cuadros de referencia (macro bloques MB causales + no causales) desde el bloque 1426. El proceso 1400 prosigue entonces al bloque 1428 donde se determinan los cálculos de tasa para los modos intra-codificados por parte de la asignación de bits de control de tasa (QPi). El proceso 1400 prosigue a continuación al bloque 1430 en donde se determinan los parámetros de modo y cuantificación. La decisión de modo del bloque 1430 se realiza en base a la entrada de estimación de movimiento del bloque 1422, la entrada de resistencia a los errores 1406 y la escalabilidad R-D, que se determina en el bloque 1432. Una vez que se decide el modo, el flujo prosigue al bloque 1432. Se indica que el flujo desde el bloque 1430 al 1432 sucede cuando los datos se pasan desde las partes del primer paso al segundo paso del codificador. The assignment block of the rate control bit 1418 is used, in turn, for the estimation of the movement in the block 1422. The estimation of the movement 1422 can also receive the input of metadata from the preprocessor 1412, the smoothing detector movement (MPEG-2 + Historical) from block 1424 and multiple reference frames (macro causal + non-causal MB blocks) from block 1426. Process 1400 then proceeds to block 1428 where the rate calculations for intra modes are determined -coded by the rate control bit allocation (QPi). The process 1400 then proceeds to block 1430 where the mode and quantification parameters are determined. The mode decision of block 1430 is made based on the motion estimation input of block 1422, the error resistance input 1406 and the scalability RD, which is determined in block 1432. Once the mode is decided , the flow proceeds to block 1432. It is indicated that the flow from block 1430 to 1432 occurs when the data is passed from the parts of the first step to the second step of the encoder.

En el bloque 1432, se realiza la transformación y cuantificación por el segundo paso del codificador 228. El proceso de transformada/cuantificación se ajusta o se afina como se indica con el bloque 1444. Este proceso de transformada/cuantificación puede estar influenciado por el módulo de ajuste final del control de tasas (FIGURA 7). El proceso 1400 prosigue entonces en el bloque 1434 para una clasificación de zigzag y codificación de entropía para producir la capa base codificada. La codificación de zigzag prepara los datos cuantificados en un formato eficiente para codificación. La codificación de entropía es una técnica de compresión que usa una serie de códigos de bits para representar un conjunto de símbolos posibles. La capa mejorada resultante del bloque de transformada/cuantificación 1432 se envía también a un sumador 1436, que resta la capa base y envía el resultado a un codificador ZZ/entropía 1438 para la capa mejorada, como se ha descrito previamente con referencia a las FIGURAS 31-36. Se indica además, la capa mejorada se realimenta (véase la línea 1440 de actualización de la tasa verdadera) para la actualización de la clasificación del contenido en 1420 de tasa verdadera y una operación para la determinación de los históricos a largo y corto plazo de las tasas de bits para su uso en el control de la tasa. In block 1432, the transformation and quantification is performed by the second step of the encoder 228. The transform / quantification process is adjusted or tuned as indicated with block 1444. This transformation / quantification process may be influenced by the module. of final adjustment of the rate control (FIGURE 7). Process 1400 then proceeds in block 1434 for a zigzag classification and entropy coding to produce the encoded base layer. Zigzag coding prepares quantified data in an efficient format for coding. Entropy coding is a compression technique that uses a series of bit codes to represent a set of possible symbols. The improved layer resulting from the transform / quantization block 1432 is also sent to an adder 1436, which subtracts the base layer and sends the result to a ZZ / entropy encoder 1438 for the improved layer, as previously described with reference to FIGURES. 31-36. It is also indicated that the improved layer is fed back (see line 1440 for updating the true rate) for updating the content classification in 1420 for the true rate and an operation for determining the long and short term histories of the Bit rates for use in rate control.

La FIGURA 17 es un diagrama de bloques de alto nivel de un sistema de codificación multimedia. El sistema de codificación multimedia incluye medios para la recepción de datos multimedia como se ilustra por el módulo para la recepción de datos multimedia 1705. Tales medios pueden comprender, por ejemplo, un transcodificador, un codificador, un preprocesador, un procesador configurado para recibir datos multimedia, un receptor. Más específicamente, los medios de recepción pueden comprender componentes y módulos descritos en el presente documento para recibir datos multimedia, incluyendo, en varios ejemplos, el transcodificador 200. El sistema de codificación comprende también medios para la codificación de datos multimedia como se ilustra por el módulo para la codificación de datos multimedia 1710. Tales medios de codificación 1710 pueden comprender el transcodificador 200, el codificador 228 o el preprocesador 226. FIGURE 17 is a high level block diagram of a multimedia coding system. The multimedia coding system includes means for receiving multimedia data as illustrated by the module for receiving multimedia data 1705. Such means may comprise, for example, a transcoder, an encoder, a preprocessor, a processor configured to receive data. Multimedia, a receiver. More specifically, the receiving means may comprise components and modules described herein to receive multimedia data, including, in several examples, transcoder 200. The encoding system also comprises means for encoding multimedia data as illustrated by the module for encoding multimedia data 1710. Such encoding means 1710 may comprise transcoder 200, encoder 228 or preprocessor 226.

Las FIGURAS 23, 24, 27 y 28 son diagramas de flujo de proceso que ejemplifican procedimientos de codificación de datos multimedia que realizan los aspectos descritos en el presente documento. La FIGURA 23 es un diagrama de flujo de proceso que ilustra un proceso 2300 de codificación de datos multimedia en base a la información del contenido. El bloque 2305 del proceso 2300 recibe los datos multimedia codificados y en el bloque 2310 el proceso 2300 decodifica los datos multimedia. En el bloque 2315, el proceso 2300 determina la información del contenido asociada con los datos multimedia decodificados. En el bloque 2320, el proceso 2300 codifica los datos multimedia en base a la información del contenido. FIGURES 23, 24, 27 and 28 are process flow diagrams that exemplify multimedia data coding procedures that perform the aspects described herein. FIGURE 23 is a process flow diagram illustrating a process 2300 for encoding multimedia data based on content information. Block 2305 of process 2300 receives the encoded multimedia data and in block 2310 process 2300 decodes the multimedia data. In block 2315, process 2300 determines the information of the content associated with the decoded multimedia data. In block 2320, process 2300 encodes multimedia data based on content information.

La FIGURA 24 es un diagrama de flujo de proceso que ilustra un proceso 2400 de codificación de datos multimedia de modo que alinea los límites de los datos en base al nivel de información del contenido. En el bloque 2405, el proceso 2400 obtiene información del contenido asociada con los datos multimedia, lo que se puede realizar, por ejemplo, por el preprocesador 216 o el módulo de clasificación del contenido 712 mostrado en la FIGURA 7. En el bloque 2410, el proceso 2400 codifica los datos multimedia de modo que alinea los límites de los datos en base a la información del contenido. Por ejemplo, los límites de porciones y los límites de unidades de acceso se alinean con los límites de cuadros en base a la clasificación del contenido de los datos multimedia que están siendo codificados. Los datos codificados están disponibles entonces para un procesamiento posterior y/o transmisión a un dispositivo móvil y el proceso 2400 finaliza. FIGURE 24 is a process flow diagram illustrating a multimedia data encoding process 2400 so that it aligns the data boundaries based on the level of content information. In block 2405, process 2400 obtains information about the content associated with multimedia data, which can be done, for example, by preprocessor 216 or content classification module 712 shown in FIGURE 7. In block 2410, The 2400 process encodes multimedia data so that it aligns the limits of the data based on the content information. For example, portion limits and access unit limits align with frame limits based on the content classification of the multimedia data being encoded. The encoded data is then available for further processing and / or transmission to a mobile device and the 2400 process ends.

La FIGURA 27 es un diagrama de flujo de proceso que ilustra un proceso 2700 para la codificación de datos usando un esquema de intra refresco adaptativo en base a la información del contenido. Cuando el proceso 2700 comienza los datos multimedia se han obtenido. En el bloque 2705, el proceso 2700 obtiene la información del contenido de los datos multimedia. La obtención de la información del contenido se puede realizar por, por ejemplo, el preprocesador 226 o el módulo de clasificación del contenido 712 como se ha descrito anteriormente. El proceso 2700 prosigue en el bloque 2710, en el que codifica los datos multimedia usando un esquema de resistencia frente a errores de intra refresco adaptativo, en el que el esquema de resistencia frente a errores de intra refresco adaptativo se basa en la información del contenido. La funcionalidad del bloque 2700 se puede realizar por el codificador 228. Los datos codificados se ponen a disposición de un procesamiento posterior y transmisión y el proceso de 2700 FIGURE 27 is a process flow diagram illustrating a process 2700 for data coding using an adaptive intra refresh scheme based on the content information. When the 2700 process begins the multimedia data has been obtained. In block 2705, process 2700 obtains the information of the content of the multimedia data. The content information can be obtained by, for example, the preprocessor 226 or the content classification module 712 as described above. The process 2700 continues in block 2710, in which it encodes the multimedia data using a resistance scheme against adaptive intra refresh errors, in which the resistance scheme against adaptive intra refresh errors is based on the content information . The functionality of block 2700 can be performed by encoder 228. The encoded data is made available for further processing and transmission and the 2700 process

60 E06804241 04-11-2011 60 E06804241 04-11-2011

finaliza a continuación. ends next.

La FIGURA 28 es un diagrama de flujo de proceso que ilustra un proceso de codificación de datos multimedia usando cuadros I redundantes en base a la información del contenido multimedia. Cuando el proceso 2800 comienza los datos multimedia están disponibles para su procesamiento. En el bloque 2805, el proceso 2800 obtiene la información del contenido de los datos multimedia. Como se ha descrito anteriormente, esto se puede realizar por, por ejemplo, el preprocesador 226 y/o el codificador 228. En el bloque 2810, el proceso 2800 codifica los datos multimedia de modo que inserte uno o más cuadros I adicionales de los datos codificados en base a la información del contenido. Esto se puede realizar por el codificador 228 como se ha descrito anteriormente en conexión con el esquema de resistencia frente a errores, insertando los cuadros I en la capa base o en la capa de mejora dependiendo del esquema de resistencia frente a errores empleado. Después del bloque 2810, los datos codificados están disponibles para un procesamiento posterior y/o transmisión a un dispositivo móvil. FIGURE 28 is a process flow diagram illustrating a process of encoding multimedia data using redundant tables I based on the information of the multimedia content. When the 2800 process begins the multimedia data is available for processing. In block 2805, process 2800 obtains the information of the multimedia data content. As described above, this can be done by, for example, preprocessor 226 and / or encoder 228. In block 2810, process 2800 encodes multimedia data so that it inserts one or more additional I frames of the data encoded based on content information. This can be done by the encoder 228 as described above in connection with the error resistance scheme, by inserting the frames I in the base layer or in the improvement layer depending on the error resistance scheme employed. After block 2810, the encoded data is available for further processing and / or transmission to a mobile device.

Se debería indicar que los procedimientos descritos en el presente documento se pueden implementar en una variedad de hardware de comunicación, procesadores y sistemas conocidos por los expertos en la técnica. Por ejemplo, el requisito general para que el cliente opere como se ha descrito en el presente documento es que el cliente tenga una pantalla para visualizar el contenido de la información, un procesador para controlar la operación del cliente y una memoria para almacenar datos y programas relacionados con la operación del cliente. En un aspecto, el cliente es un teléfono celular. En otro aspecto, el cliente es un ordenador portátil que tenga capacidad de comunicaciones. El otro aspecto más, el cliente es un ordenador personal que tenga capacidad de comunicaciones. Además, se puede incorporar hardware tal como un receptor GPS en el cliente para implementar los varios aspectos. Los varios bloques lógicos, lógica, módulos y circuitos ilustrativos descritos en conexión con los aspectos desvelados en el presente documento se pueden implementar o realizar con un procesador de finalidad general, un procesador de señal digital (DSP), un circuito integrado de aplicación específica (ASIC), una matriz de puertas programable en campo (FPGA) u otros dispositivos lógicos programables, puertas discretas o lógica de transistores, componentes de hardware discretos o cualquier combinación de los mismos diseñados para realizar las funciones descritas en el presente documento. Un procesador de finalidad general puede ser un microprocesador pero, en la alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estado convencional. Un procesador puede ser implementado también como la combinación de dispositivos de cálculo, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno más microprocesadores en conjunto con un núcleo de DSP o cualquier otra de tales combinaciones. It should be noted that the procedures described herein can be implemented in a variety of communication hardware, processors and systems known to those skilled in the art. For example, the general requirement for the client to operate as described herein is that the client has a screen to display the information content, a processor to control the operation of the client and a memory to store data and programs. related to customer operation. In one aspect, the customer is a cell phone. In another aspect, the customer is a laptop that has communication capabilities. The other aspect, the customer is a personal computer that has communication capabilities. In addition, hardware such as a GPS receiver can be incorporated into the client to implement the various aspects. The various logical blocks, logic, modules and illustrative circuits described in connection with the aspects disclosed herein can be implemented or performed with a general purpose processor, a digital signal processor (DSP), a specific application integrated circuit ( ASIC), a field programmable door array (FPGA) or other programmable logic devices, discrete doors or transistor logic, discrete hardware components or any combination thereof designed to perform the functions described in this document. A general purpose processor can be a microprocessor but, in the alternative, the processor can be any processor, controller, microcontroller or conventional state machine. A processor can also be implemented as the combination of calculation devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one more microprocessors in conjunction with a DSP core or any such combination.

Las varias lógicas, bloques lógicos, módulos y circuitos ilustrativos descritos en conexión con los aspectos desvelados en el presente documento se pueden implementar o realizar con un procesador de finalidad general, procesador de señal digital (DSP), un circuito integrado de aplicación específica (ASIC), una matriz de puertas programable en campo (FPGA) u otros dispositivos lógicos programables, puertas discretas o lógica de transistores, componentes de hardware discretos o cualquier combinación de los mismos diseñada para realizar las funciones descritas en el presente documento. Un procesador de finalidad general puede ser un microprocesador pero, en la alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estado convencional. Un procesador se puede implementar también como la combinación de dispositivos de cálculo, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno más microprocesadores en conjunto con un núcleo de DSP o cualquier otra de tales combinaciones. The various logic, logic blocks, modules and illustrative circuits described in connection with the aspects disclosed in this document can be implemented or performed with a general purpose processor, digital signal processor (DSP), a specific application integrated circuit (ASIC ), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic, discrete hardware components or any combination thereof designed to perform the functions described herein. A general purpose processor can be a microprocessor but, in the alternative, the processor can be any processor, controller, microcontroller or conventional state machine. A processor can also be implemented as the combination of calculation devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one more microprocessors in conjunction with a DSP core or any other such combinations.

Los procedimientos y aparatos desvelados proporcionan la transcodificación de datos de video codificados en un formato a datos de video codificados en otro formato en donde la codificación se basa en el contenido de los datos de video y la codificación es resistente frente a errores. Los procedimientos o algoritmos descritos en conexión con los ejemplos desvelados en presente documento se pueden realizar directamente en hardware, en un módulo de software ejecutado por un procesador, firmware o en una combinación de dos o más de estos. Un módulo de software puede residir en una memoria RAM, memoria flash, memoria ROM, memoria de EPROM, memoria EEPROM, registradores, un disco duro, un disco extraíble, un CD-ROM o cualquier otra forma de medios de almacenamiento conocida en la técnica. Un medio de almacenamiento de ejemplo se conecta al procesador, de modo que el procesador pueda leer la información desde, y escribir la información a, el medio de almacenamiento. En la alternativa, en medio de almacenamiento puede ser parte integral del procesador. El procesador y el medio de almacenamiento pueden residir en un ASIC. El ASIC puede residir en un terminal de usuario. En la alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en un terminal de usuario. The disclosed methods and apparatus provide the transcoding of video data encoded in one format to video data encoded in another format where the encoding is based on the content of the video data and the encoding is resistant to errors. The procedures or algorithms described in connection with the examples disclosed herein can be performed directly on hardware, in a software module executed by a processor, firmware or in a combination of two or more of these. A software module may reside in a RAM, flash memory, ROM memory, EPROM memory, EEPROM memory, recorders, a hard disk, a removable disk, a CD-ROM or any other form of storage media known in the art. . An example storage medium is connected to the processor, so that the processor can read the information from, and write the information to, the storage medium. In the alternative, storage media can be an integral part of the processor. The processor and storage medium may reside in an ASIC. The ASIC can reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.

Los ejemplos descritos anteriormente son meramente de ejemplo y los expertos en la técnica pueden hacer ahora numerosos usos de, y separaciones de, los ejemplos descritos anteriormente sin separarse de los conceptos inventivos desvelados en el presente documento. Varias modificaciones a estos ejemplos puede ser fácilmente evidentes para los expertos en la técnica y los principios genéricos definidos en el presente documento se pueden aplicar a otros ejemplos, por ejemplo en un servicio de mensajería instantánea o en cualquier aplicación de comunicación de datos inalámbrica general. The examples described above are merely exemplary and those skilled in the art can now make numerous uses of, and separations of, the examples described above without separating from the inventive concepts disclosed herein. Various modifications to these examples may be readily apparent to those skilled in the art and the generic principles defined herein may be applied to other examples, for example in an instant messaging service or in any general wireless data communication application.

Por ello, el alcance de la divulgación no se pretende que se limite a los ejemplos mostrados en el presente documento sino que esté de acuerdo con el alcance más amplio consistente con los principios y características novedosas desveladas en el presente documento. La expresión “de ejemplo” se usa exclusivamente en el presente documento para indicar “que sirve como un ejemplo, caso o ilustración”. Cualquier ejemplo descrito en el presente Therefore, the scope of the disclosure is not intended to be limited to the examples shown in this document but to be in accordance with the broader scope consistent with the novel principles and characteristics disclosed in this document. The term "example" is used exclusively herein to indicate "serving as an example, case or illustration". Any example described herein

E06804241 04-11-2011 E06804241 04-11-2011

documento como “de ejemplo” no se ha de interpretar necesariamente como preferido o ventajoso frente a otros ejemplos. En consecuencia, los aspectos novedosos descritos en el presente documento se han de definir únicamente mediante el alcance de las siguientes reivindicaciones. The document as “example” is not necessarily to be interpreted as preferred or advantageous compared to other examples. Accordingly, the novel aspects described herein are to be defined only by the scope of the following claims.

45 E06804241 04-11-2011 45 E06804241 04-11-2011

Claims (28)

REIVINDICACIONES 1. Un procedimiento de procesamiento de datos multimedia que comprende: 1. A multimedia data processing procedure comprising: la recepción de datos multimedia y la codificación de los datos multimedia (361) en una primera capa de datos codificados y una segunda capa de datos codificados en base al contenido de los datos multimedia, estando configurada la primera capa de datos codificados para ser codificable de modo independiente de la segunda capa de datos codificados y en el que la primera capa de datos se codifica con una calidad menor que la segunda capa de datos, caracterizado porque el procedimiento comprende: la codificación de la primera capa de datos mediante las etapas de: transformación de los coeficientes de error residuales de la primera capa de datos, siendo el error residual la diferencia entre los datos multimedia que se están codificando (361) y el macro bloque de ajuste mejor de un cuadro de referencia temporal; el cálculo de un coeficiente de la primera de capa de datos, C’base, a partir de los coeficientes de error residual transformados, Cbase y la cuantificación del coeficiente de la primera capa de datos, C’base, mediante un primer parámetro de cuantificación, Qb; y la codificación de la segunda capa de datos mediante las etapas de: la transformación de los coeficientes de error residual en la segunda capa de datos, siendo el error residual la diferencia entre los datos multimedia que se están codificando (361) y el macro bloque de ajuste mejor de un cuadro de referencia temporal; el cálculo de un coeficiente de la segunda capa de de datos, C’mej, a partir de los coeficientes de error residual transformados, Cmej y la cuantificación del coeficiente de la segunda capa de datos, C’mej, mediante un segundo parámetro de cuantificación, en el que: the reception of multimedia data and the coding of the multimedia data (361) in a first coded data layer and a second coded data layer based on the content of the multimedia data, the first coded data layer being configured to be encodable from independent mode of the second coded data layer and in which the first data layer is coded with a lower quality than the second data layer, characterized in that the method comprises: the coding of the first data layer by the steps of: transformation of the residual error coefficients of the first data layer, the residual error being the difference between the multimedia data that is being encoded (361) and the best fit macro block of a temporary reference frame; the calculation of a coefficient of the first data layer, C'base, from the transformed residual error coefficients, Cbase and the quantification of the coefficient of the first data layer, C'base, by a first quantification parameter , Qb; and the coding of the second data layer through the steps of: the transformation of the residual error coefficients in the second data layer, the residual error being the difference between the multimedia data being encoded (361) and the macro block best fit of a temporary reference chart; the calculation of a coefficient of the second data layer, C'mej, from the transformed residual error coefficients, Cmej and the quantification of the coefficient of the second data layer, C'mej, by a second quantification parameter , in which: 10, siCbase y Cmej tienen signos opuestos' =10, if Base and Cmej have opposite signs' = C base C base 1min(Cbase ,Cmej ), en caso contrario 1min (Cbase, Cmej), otherwise o or −1−1 1Cbase , si QQ (C )− C 1Cbase, if QQ (C) - C < C<C b b base mej b b base mej mej mej C' base = 10 , en caso contrario C 'base = 10, otherwise y Y C’mej = Cmej – Qb -1 (Qb (C’base)) C’mej = Cmej - Qb -1 (Qb (C’base)) en la que Qb-1 es el parámetro de descuantificación de la primera capa de datos y en el que el primer parámetro de cuantificación se ajusta para ser más alto que el segundo parámetro de cuantificación, de modo que la primera capa de datos codificados se puede decodificar para formar unos datos multimedia que se pueden visualizar si la segunda capa de datos codificada no está disponible y la primera capa de datos codificados y la segunda capa de datos codificados se pueden decodificar en combinación para formar unos datos multimedia que se pueden visualizar si tanto la primera capa de datos codificada como la segunda capa de datos codificada están disponibles. in which Qb-1 is the decuantification parameter of the first data layer and in which the first quantification parameter is set to be higher than the second quantization parameter, so that the first coded data layer can be decode to form multimedia data that can be displayed if the second coded data layer is not available and the first coded data layer and the second coded data layer can be decoded in combination to form multimedia data that can be displayed if both The first coded data layer as the second coded data layer are available.
2.2.
El procedimiento de la reivindicación 1, en el que la primera capa de datos comprende cuadros I, intra-codificados, y cuadros P, predictivos y en el que la segunda capa de datos comprende cuadros I, intra-codificados, cuadros P, predictivos y cuadros B, bidireccionales.  The method of claim 1, wherein the first data layer comprises I, intra-encoded, and P-tables, predictive and in which the second data layer comprises I, intra-encoded, P, predictive and B frames, bidirectional.
3.3.
El procedimiento de la reivindicación 1, en el que la primera capa de datos comprende una capa base y la segunda capa de datos comprende una capa de mejora.  The method of claim 1, wherein the first data layer comprises a base layer and the second data layer comprises an improvement layer.
4.Four.
El procedimiento de la reivindicación 1, en el que la codificación comprende la asignación de una tasa de bits para al menos una parte de los datos multimedia en base a la clasificación del contenido.  The method of claim 1, wherein the encoding comprises assigning a bit rate for at least a portion of the multimedia data based on the content classification.
5.5.
El procedimiento de la reivindicación 1, en el que la codificación comprende además:  The method of claim 1, wherein the coding further comprises:
el uso de la clasificación del contenido para detectar cambios de escena y la determinación de si incluir cuadros I, intra-codificados en la primera capa de datos y en la segunda capa de datos en base a los cambios de escena detectados. the use of content classification to detect scene changes and the determination of whether to include intra-encoded I frames in the first data layer and in the second data layer based on the scene changes detected.
6.6.
El procedimiento de la reivindicación 1, en el que la codificación comprende además la determinación de una tasa de cuadros para la codificación de los datos multimedia en base a la clasificación del contenido.  The method of claim 1, wherein the coding further comprises determining a frame rate for the coding of the multimedia data based on the content classification.
50 E06804241 04-11-2011 50 E06804241 04-11-2011
7.7.
El procedimiento de la reivindicación 1, en el que la codificación comprende la realización de la estimación de movimiento de los datos multimedia en base a la clasificación del contenido.  The method of claim 1, wherein the coding comprises performing the motion estimation of the multimedia data based on the content classification.
8.8.
El procedimiento de la reivindicación 1, que comprende además la determinación de una primera tasa de cuadros para la codificación de la primera capa de datos y la determinación de una segunda tasa de cuadros para la codificación de la segunda capa de datos, en la que la primera tasa de cuadros es menor que la segunda tasa de cuadros.  The method of claim 1, further comprising determining a first frame rate for coding the first data layer and determining a second frame rate for coding the second data layer, wherein the First frame rate is lower than the second frame rate.
9.9.
El procedimiento de la reivindicación 1, en el que la codificación comprende la realización de un procesamiento de resistencia a los errores en los datos multimedia en base a la clasificación del contenido.  The method of claim 1, wherein the coding comprises performing error resistance processing in the multimedia data based on the content classification.
10.10.
El procedimiento de la reivindicación 1, en el que el primer parámetro de cuantificación comprende un primer tamaño de paso para la codificación de datos y en el que el segundo parámetro de cuantificación comprende un segundo tamaño de paso para la codificación de los datos, en el que el primer tamaño de salto es mayor que el segundo tamaño de paso.  The method of claim 1, wherein the first quantization parameter comprises a first step size for data coding and wherein the second quantization parameter comprises a second step size for data coding, in the that the first jump size is larger than the second step size.
11.eleven.
El procedimiento de la reivindicación 1, en el que la codificación comprende la reducción de ruido en los datos multimedia en base a la clasificación del contenido.  The method of claim 1, wherein the coding comprises the reduction of noise in the multimedia data based on the content classification.
12.12.
El procedimiento de la reivindicación 11, en el que la reducción de ruido comprende la realización de una eliminación de artificiosidades.  The method of claim 11, wherein the noise reduction comprises performing an elimination of artifice.
13.13.
El procedimiento de la reivindicación 11, en el que la reducción de ruido comprende el procesamiento de al menos una parte de los datos multimedia con un filtro de desanillado, en el que la intensidad del filtro de desanillado se basa en el contenido de los datos multimedia.  The method of claim 11, wherein the noise reduction comprises processing at least part of the multimedia data with a scrap filter, wherein the intensity of the scrap filter is based on the content of the multimedia data. .
14.14.
El procedimiento de la reivindicación 11, en el que la reducción de ruido comprende el procesamiento de al menos una parte de los datos multimedia con un filtro de supresión de bloques, en el que la intensidad del filtro de supresión de bloques se basa en el contenido de los datos multimedia.  The method of claim 11, wherein the noise reduction comprises processing at least part of the multimedia data with a block suppression filter, wherein the intensity of the block suppression filter is based on the content of multimedia data.
15.fifteen.
El procedimiento de la reivindicación 11, en el que la reducción de ruido comprende el filtrado de frecuencias seleccionadas de los datos multimedia.  The method of claim 11, wherein the noise reduction comprises the filtering of selected frequencies of the multimedia data.
16.16.
El procedimiento de la reivindicación 13, en el que la intensidad del filtro de desanillado se basa en la clasificación del contenido de los datos multimedia.  The method of claim 13, wherein the intensity of the stripping filter is based on the classification of the content of the multimedia data.
17.17.
El procedimiento de la reivindicación 14, en el en el que la intensidad del filtro de supresión de bloques se basa en la clasificación del contenido de los datos multimedia.  The method of claim 14, wherein the intensity of the block suppression filter is based on the classification of the content of the multimedia data.
18.18.
El procedimiento de la reivindicación 1, en el que la codificación comprende la reducción del muestreo de los datos multimedia.  The method of claim 1, wherein the coding comprises the reduction of multimedia data sampling.
19.19.
El procedimiento de la reivindicación 1, en el que la codificación comprende la asociación de un nivel de calidad con los datos multimedia y el uso del nivel de calidad y la información del contenido de los datos multimedia para determinar una tasa de bits para la codificación de los datos multimedia.  The method of claim 1, wherein the coding comprises the association of a quality level with the multimedia data and the use of the quality level and the information of the content of the multimedia data to determine a bit rate for the coding of Multimedia data
20.twenty.
Un aparato para procesamiento de datos multimedia que comprende un codificador (228) configurado para recibir datos multimedia y codificar los datos multimedia en una primera capa de datos codificados y una segunda capa de datos codificados en base al contenido de los datos multimedia, configurada la primera capa de datos codificados para ser decodificarle de modo independiente de la segunda capa de datos y en la que la primera capa de datos se codifica con una calidad más baja que la segunda capa de datos; el aparato caracterizado porque el codificador (328) se configura para codificar la primera capa de datos mediante:  An apparatus for processing multimedia data comprising an encoder (228) configured to receive multimedia data and encode the multimedia data in a first layer of encoded data and a second layer of encoded data based on the content of the multimedia data, the first configured coded data layer to be decoded independently of the second data layer and in which the first data layer is coded with a lower quality than the second data layer; the apparatus characterized in that the encoder (328) is configured to encode the first data layer by:
la transformación de los coeficientes de error residual de la primera capa de datos, siendo el error residual la diferencia entre los datos multimedia que se están codificando (361) y el macro bloque de ajuste mejor de un cuadro de referencia temporal; el cálculo de un coeficiente de la primera de capa de datos, C’base, para los coeficientes de error residual transformados, Cbase y la cuantificación del coeficiente de la primera capa de datos, C’base, mediante un primer parámetro de cuantificación, Qb; y en el que el codificador se configura para codificar la segunda capa de datos mediante: la transformación de los coeficientes de error residual de la segunda capa de datos, siendo el error residual la diferencia entre los datos multimedia que se están codificando (361) y el macro bloque de ajuste mejor de un cuadro de referencia temporal; el cálculo de un coeficiente de la segunda capa de de datos, C’mej, a partir de los coeficientes de error residual transformados, Cmej y la cuantificación del coeficiente de la segunda capa de datos, C’mej, mediante un segundo parámetro de cuantificación, en el que: the transformation of the residual error coefficients of the first data layer, the residual error being the difference between the multimedia data being encoded (361) and the best fit macro block of a temporary reference frame; the calculation of a coefficient of the first data layer, C'base, for the transformed residual error coefficients, Cbase and the quantification of the coefficient of the first data layer, C'base, by means of a first quantification parameter, Qb ; and in which the encoder is configured to encode the second data layer by: the transformation of the residual error coefficients of the second data layer, the residual error being the difference between the multimedia data being encoded (361) and the best fit macro block of a temporary reference frame; the calculation of a coefficient of the second data layer, C'mej, from the transformed residual error coefficients, Cmej and the quantification of the coefficient of the second data layer, C'mej, by a second quantification parameter , in which: E06804241 04-11-2011 E06804241 04-11-2011 10, siCbase y Cmej tienen signos opuestos10, if Base and Cmej have opposite signs C' base = 1min(Cbase ,Cmej ), en caso contrario C 'base = 1min (Cbase, Cmej), otherwise o or −1−1 1Cbase , si QQ (C )− C 1Cbase, if QQ (C) - C < C<C b b base mej mej b b base mej mej C' base = 10 , en caso contrario C 'base = 10, otherwise y Y C’mej = Cmej – Qb -1 (Qb (C’base)) C’mej = Cmej - Qb -1 (Qb (C’base)) en la que Qb-1 es el parámetro de descuantificación de la primera capa de datos y en el que el codificados se configura además para determinar el primer parámetro de cuantificación del segundo parámetro de cuantificación, siendo él primer parámetro de cuantificación más alto que el segundo parámetro de cuantificación, de modo que la primera capa de datos codificados se puede decodificar para formar unos datos multimedia que se pueden visualizar si la segunda capa de datos codificada no está disponible y la primera capa de datos codificados y la segunda capa de datos codificados se pueden decodificar en combinación para formar unos datos multimedia que se pueden visualizar si tanto la primera capa de datos codificada como la segunda capa de datos codificada están disponibles. in which Qb-1 is the quantification parameter of the first data layer and in which the encoded is further configured to determine the first quantification parameter of the second quantification parameter, the first quantification parameter being higher than the second quantification parameter, so that the first coded data layer can be decoded to form multimedia data that can be displayed if the second coded data layer is not available and the first coded data layer and the second coded data layer are they can decode in combination to form multimedia data that can be displayed if both the first coded data layer and the second coded data layer are available.
21.twenty-one.
El aparato de la reivindicación 20, en el que el codificador (228) comprende un módulo de estimación del movimiento (720) configurado para realizar la estimación del movimiento de los datos multimedia en base a la clasificación del contenido y generar una información de compensación del movimiento de los datos y en el que el módulo de codificación (228) se configura además para usar la información de compensación del movimiento para codificar los datos multimedia.  The apparatus of claim 20, wherein the encoder (228) comprises a motion estimation module (720) configured to perform the estimation of the movement of the multimedia data based on the classification of the content and generate compensation information of the data movement and in which the coding module (228) is further configured to use the motion compensation information to encode the multimedia data.
22.22
El aparato de la reivindicación 20, en el que el codificador (228) comprende además un módulo de cuantificación  The apparatus of claim 20, wherein the encoder (228) further comprises a quantization module
(726) para la determinación del primer y del segundo parámetros de cuantificación. (726) for the determination of the first and second quantification parameters.
23.2. 3.
El aparato de la reivindicación 20, en el que el codificador (228) comprende además un módulo de asignación de bits (714) configurado para proporcionar una tasa de bits para al menos una parte de los datos multimedia en base a la clasificación del contenido.  The apparatus of claim 20, wherein the encoder (228) further comprises a bit allocation module (714) configured to provide a bit rate for at least a portion of the multimedia data based on the content classification.
24.24.
El aparato de la reivindicación 20, en el que el codificador (228) comprende además un módulo de detección de cambio de escena configurado para detectar cambios de escena y en el que el módulo de codificación (228) se configura además para incluir cuadros I, intra-codificados en los datos multimedia codificados en base a los cambios de escena detectados.  The apparatus of claim 20, wherein the encoder (228) further comprises a scene change detection module configured to detect scene changes and wherein the coding module (228) is further configured to include frames I, intra-encoded in the multimedia data encoded based on the scene changes detected.
25.25.
El aparato de la reivindicación 20, en el que el codificador (228) comprende además un módulo de tasa de cuadros configurado para determinar la tasa de cuadros de los datos multimedia en base a la clasificación del contenido y en el que el módulo de codificación (228) codifica los datos multimedia en base a la tasa de cuadros.  The apparatus of claim 20, wherein the encoder (228) further comprises a frame rate module configured to determine the frame rate of the multimedia data based on the content classification and in which the coding module ( 228) encodes multimedia data based on frame rate.
26.26.
El aparato de la reivindicación 20, en el que el codificador (228) se configura además para realizar un procesamiento de errores en los datos multimedia en base a la clasificación del contenido.  The apparatus of claim 20, wherein the encoder (228) is further configured to perform error processing in the multimedia data based on the content classification.
27.27.
Un medio que pueda leer una máquina que comprende instrucciones que tras su ejecución hacen que una máquina realice el procedimiento de la reivindicación 1.  A means that can read a machine comprising instructions that after its execution cause a machine to perform the procedure of claim 1.
28.28.
Un procesador que comprende una configuración para realizar el procedimiento de la reivindicación 1.  A processor comprising a configuration for performing the method of claim 1.
E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04 -11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11-2011 E06804241 04-11 -2011 E06804241 04-11-2011
ES06804241T 2005-09-27 2006-09-27 TRANSCODER DIRECTED BY THE CONTENT ORGANIZING THE MULTIMEDIA TRANSCODING USING CONTENT INFORMATION. Active ES2371188T3 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US72141605P 2005-09-27 2005-09-27
US721416P 2005-09-27
US727643P 2005-10-17
US727644P 2005-10-17
US727640P 2005-10-17
US730145P 2005-10-24
US789048P 2006-04-03
US789377P 2006-04-04

Publications (1)

Publication Number Publication Date
ES2371188T3 true ES2371188T3 (en) 2011-12-28

Family

ID=40101112

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06804241T Active ES2371188T3 (en) 2005-09-27 2006-09-27 TRANSCODER DIRECTED BY THE CONTENT ORGANIZING THE MULTIMEDIA TRANSCODING USING CONTENT INFORMATION.

Country Status (3)

Country Link
CN (4) CN101313580A (en)
ES (1) ES2371188T3 (en)
UA (1) UA92368C2 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5347849B2 (en) * 2009-09-01 2013-11-20 ソニー株式会社 Image encoding apparatus, image receiving apparatus, image encoding method, and image receiving method
WO2011099254A1 (en) * 2010-02-15 2011-08-18 パナソニック株式会社 Data processing unit and data encoding device
US8644383B2 (en) * 2011-03-10 2014-02-04 Microsoft Corporation Mean absolute difference prediction for video encoding rate control
US20130266080A1 (en) * 2011-10-01 2013-10-10 Ning Lu Systems, methods and computer program products for integrated post-processing and pre-processing in video transcoding
US9538200B2 (en) 2012-01-19 2017-01-03 Qualcomm Incorporated Signaling of deblocking filter parameters in video coding
DK3361734T3 (en) * 2012-07-02 2020-01-02 Samsung Electronics Co Ltd Entropy coding of a video and entropy decoding of a video
KR101586367B1 (en) * 2013-08-07 2016-01-18 주식회사 더블유코퍼레이션 Method for processing multi-channel substitutional advertisement with single source and managing schedule
EP3023983B1 (en) * 2014-11-21 2017-10-18 AKG Acoustics GmbH Method of packet loss concealment in ADPCM codec and ADPCM decoder with PLC circuit
CN104735449B (en) * 2015-02-27 2017-12-26 成都信息工程学院 A kind of image transfer method split based on rectangle every column scan
US20170026659A1 (en) * 2015-10-13 2017-01-26 Mediatek Inc. Partial Decoding For Arbitrary View Angle And Line Buffer Reduction For Virtual Reality Video
CN106209773A (en) * 2016-06-24 2016-12-07 深圳羚羊极速科技有限公司 The method that the sampling transmission of a kind of audio packet is recombinated again
US10116981B2 (en) * 2016-08-01 2018-10-30 Microsoft Technology Licensing, Llc Video management system for generating video segment playlist using enhanced segmented videos
US10708666B2 (en) * 2016-08-29 2020-07-07 Qualcomm Incorporated Terrestrial broadcast television services over a cellular broadcast system
KR102373261B1 (en) * 2017-09-28 2022-03-10 애플 인크. Systems and methods for processing event camera data
CN111143108B (en) * 2019-12-09 2023-05-02 成都信息工程大学 Coding and decoding method and device for reducing array code Xcode repair
CN112260694B (en) * 2020-09-21 2022-01-11 广州中望龙腾软件股份有限公司 Data compression method of simulation file

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6538688B1 (en) * 1998-07-02 2003-03-25 Terran Interactive Method and apparatus for performing an automated inverse telecine process
KR20010099660A (en) * 1998-09-29 2001-11-09 매클린토크 샤운 엘 Method and apparatus for detecting scene changes and adjusting picture coding type in a high definition television encoder
US6639943B1 (en) * 1999-11-23 2003-10-28 Koninklijke Philips Electronics N.V. Hybrid temporal-SNR fine granular scalability video coding
US20030118097A1 (en) * 2001-12-21 2003-06-26 Koninklijke Philips Electronics N.V. System for realization of complexity scalability in a layered video coding framework
KR100501933B1 (en) * 2002-11-21 2005-07-18 삼성전자주식회사 Coding compression apparatus and method for multimedia data
US7606472B2 (en) * 2003-05-30 2009-10-20 Canon Kabushiki Kaisha Video stream data recording apparatus

Also Published As

Publication number Publication date
CN101313592B (en) 2011-03-02
CN101313588A (en) 2008-11-26
CN101313592A (en) 2008-11-26
CN101313588B (en) 2012-08-22
UA92368C2 (en) 2010-10-25
CN101313580A (en) 2008-11-26
CN101313589A (en) 2008-11-26

Similar Documents

Publication Publication Date Title
ES2371188T3 (en) TRANSCODER DIRECTED BY THE CONTENT ORGANIZING THE MULTIMEDIA TRANSCODING USING CONTENT INFORMATION.
KR101197508B1 (en) Scalability techniques based on content information
RU2378790C1 (en) Scalability techniques based on content information