ES2275037T3 - Procedimiento de codificacion de video con compensacion de fundido. - Google Patents

Procedimiento de codificacion de video con compensacion de fundido. Download PDF

Info

Publication number
ES2275037T3
ES2275037T3 ES03008064T ES03008064T ES2275037T3 ES 2275037 T3 ES2275037 T3 ES 2275037T3 ES 03008064 T ES03008064 T ES 03008064T ES 03008064 T ES03008064 T ES 03008064T ES 2275037 T3 ES2275037 T3 ES 2275037T3
Authority
ES
Spain
Prior art keywords
parameter
frame
values
remapped
various
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.)
Expired - Lifetime
Application number
ES03008064T
Other languages
English (en)
Inventor
Sridhar Srinivasan
Shankar Regunathan
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2275037T3 publication Critical patent/ES2275037T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un procedimiento para tratar una o más imágenes de video, comprendiendo el procedimiento: obtener unos parámetros de fundido (1060/1150) que comprenden un parámetro (C) de escalado de luminancia y un parámetro (B) de desplazamiento de luminancia; efectuar una compensación de fundido (1070/1130) calculando diversos valores de píxel remapeados, en los cuales los diversos valores de píxel remapeados están basados, al menos en parte, en el remapeo de diversos valores de píxel originales usados en una imagen de video de referencia original en términos de dicho parámetro de escalado de luminancia y dicho parámetro de desplazamiento de luminancia, en los cuales los diversos valores de píxel remapeados incluyen diversos valores de crominancia remapeados, y efectuar una compensación de movimiento (1080/1160) para una parte al menos de una imagen de video actual usando los diversos valores de píxel remapeados caracterizado porque el remapeo de los diversos valores de crominancia remapeados usa dichoparámetro (C) de escalado de luminancia y la media de los valores de crominancia de la imagen de video de referencia original.

Description

Procedimiento de codificación de video con compensación de fundido.
Información sobre la solicitud relacionada
Esta solicitud reivindica el beneficio de la Solicitud de Patente Provisional Estadounidense Serie Nº 60/377.628, presentada el 3 de Mayo de 2002, que se incorpora aquí por referencia. Esta solicitud está relacionada con la Solicitud de Patente Provisional Estadounidense Serie Nº aa/bbb.ccc, titulada "Fading Estimation/Compensation (Estimación/compensación del fundido)", presentada concurrentemente con la presente, y con la Solicitud de Patente Provisional Estadounidense Serie Nº aa/bbb.ccc, titulada "Signalling for Fading Compensation (Señalización para la compensación del fundido)", presentada concurrentemente con la presente, cuyas descripciones se incorporan aquí por referencia.
Campo de la técnica
Se describen técnicas y herramientas para la compensación del fundido en aplicaciones de tratamiento de video. Por ejemplo, un codificador de video efectúa la compensación del fundido sobre una imagen de referencia basándose en unos parámetros de fundido.
Antecedentes
El video digital necesita una gran capacidad de almacenamiento y de transmisión. Una secuencia en bruto típica de video digital incluye 15 ó 30 fotogramas por segundo. Cada fotograma puede incluir decenas o centenares de píxeles (también llamados pels). Cada píxel representa un elemento diminuto de la fotografía. En forma bruta, un ordenador representa normalmente un píxel con 24 bits. Así pues, el número de bits por segundo, o tasa de bits, de una secuencia en bruto típica de video digital puede ser igual o superior a 5 millones de bits por segundo.
La mayoría de los ordenadores y redes de ordenadores carecen de recursos para procesar video digital en bruto. Por esta razón, los ingenieros usan la compresión de video (también llamada codificación) para reducir la tasa de bits del video digital. La compresión puede ser sin pérdidas, en la cual la calidad del video no sufre pero las reducciones de la tasa de bits están limitadas por la complejidad del video. O bien, la compresión puede ser con pérdidas, en la cual la calidad del video sufre, pero las reducciones de la tasa de bits son más elevadas. La descompresión invierte la compresión.
En general, las técnicas de compresión de video incluyen la compresión espacial (intraframe) y la compresión temporal (interframe). Las técnicas de compresión espacial comprimen los fotogramas individuales, llamados típicamente fotogramas I o fotogramas clave. Las técnicas de compresión temporal comprimen los fotogramas con referencia al fotograma precedente y/o siguiente, y son denominados típicamente fotogramas predichos, fotogramas P o fotogramas B.
El Windows Media Video, Versión 8 ["WMV8"], de Microsoft Corporation, incluye un codificador de video y un decodificador de video. El codificador WMV8 utiliza la compresión espacial y temporal, y el decodificador WMV8 utiliza la descompresión espacial y temporal.
A. Compresión espacial (intraframe) en el WMV8
La Figura 1 muestra un ejemplo de compresión espacial (100), basada en bloques, de un bloque (105) de píxeles de un fotograma clave en el codificador WMV8. Por ejemplo, el codificador WMV8 divide un fotograma de video clave en bloques de 8 x 8 píxeles y aplica a los bloques individuales una Transformada Discreta del Coseno ["DCT"] (110), convirtiendo el bloque de 8 x 8 píxeles en un bloque (115) de 8 x 8 coeficientes DCT. El codificador cuantiza (120) los coeficientes DCT, resultando un bloque (125) de 8 x 8 coeficientes DCT cuantizados que el codificador prepara luego para la codificación de entropía.
El codificador codifica el coeficiente DC (126) como un diferencial del coeficiente DC (136) de un vecino previamente codificado (por ejemplo el bloque vecino (135)) del bloque que se está codificando. El codificador codifica entrópicamente el diferencial (140). La Figura 1 muestra la columna izquierda (127) de los coeficientes AC codificada como un diferencial (147) de la columna (137) del bloque vecino (135) (a la izquierda). Los restantes coeficientes AC son del bloque (125) de coeficientes DCT cuantizados.
El codificador escanea (150) el bloque (145) de 8 x 8 coeficientes DCT AC cuantizados creando un conjunto unidimensional (155) y luego codifica entrópicamente los coeficientes AC escaneados usando una variante de codificación por longitud de serie (run length coding) (160). El codificador selecciona un código de entropía para una o más tablas (165) de serie/amplitud/final y emite el código de entropía (170).
\newpage
B. Compresión temporal (interframe) en el WMV8
La compresión temporal del codificador WMV8 usa una codificación de predicción por compensación de movimiento, a base de bloques, seguida por una codificación transformada del error residual.
Las Figuras 2 y 3 ilustran la compresión temporal a base de bloques para un fotograma predicho en el codificador WMV8. En particular, la Figura 2 ilustra la estimación de movimiento para un fotograma predicho (210) y la Figura 3 ilustra la compresión de un residuo de predicción para un bloque con movimiento estimado de un fotograma predicho.
Por ejemplo, el codificador WMV8 divide un fotograma predicho en bloques de 8 x 8 píxeles. Grupos de cuatro bloques de 8 x 8 forman macrobloques. Para cada macrobloque se efectúa un procedimiento de estimación de movimiento. La estimación de movimiento aproxima el movimiento del macrobloque de píxeles con respecto a un fotograma de referencia, por ejemplo un fotograma precedente previamente codificado. En la Figura 2 el codificador WMV8 calcula un vector de movimiento para un macrobloque (215) del fotograma predicho (210). Para calcular el vector de movimiento, el codificador busca en un área de búsqueda (235) de un fotograma de referencia (230). Dentro del área de búsqueda (235), el codificador compara el macrobloque (215) del fotograma predicho (210) con los diversos bloques candidatos con el fin de hallar un macrobloque candidato que tenga una buena coincidencia. Cuando el codificador encuentra un macrobloque de buena coincidencia, el codificador emite una información especificando el vector de movimiento (codificado entrópicamente) para el macrobloque de buena coincidencia, de manera que el decodificador pueda encontrar el macrobloque de buena coincidencia durante la decodificación. Al decodificar con compensación de movimiento el fotograma predicho (210), un decodificador usa el vector de movimiento para calcular un macrobloque de predicción para el macrobloque (215) usando la información procedente del fotograma de referencia (230). La predicción para el macrobloque raramente es perfecta, por lo que el codificador suele codificar bloques de 8 x 8 diferencias de píxel (también llamados bloques de errores o residuos) entre el macrobloque de predicción y el macrobloque (215) propiamente dicho.
La Figura 3 ilustra un ejemplo de cálculo y codificación de un bloque (335) de errores en el codificador WMV8. El bloque (335) de errores es la diferencia entre el bloque predicho (315) y el bloque actual original (325). El codificador aplica una DCT (340) al bloque (335) de errores, resultando un bloque (345) de 8 x 8 coeficientes. Entonces el codificador cuantiza (350) los coeficientes de la DCT, resultando un bloque (355) de 8 x 8 coeficientes DCT cuantizados. La etapa de cuantización es ajustable. La cuantización provoca una pérdida de precisión, pero no una pérdida completa de la información sobre los coeficientes.
A continuación el codificador prepara el bloque (355) de 8 x 8 coeficientes DCT cuantizados para la codificación de entropía. El codificador escanea (360) el bloque (355) de 8 x 8 creando un conjunto unidimensional (365) con 64 elementos, de tal modo que los coeficientes estén generalmente ordenados desde la frecuencia más baja hasta la frecuencia más alta, lo cual crea típicamente largas series de valores nulos.
El codificador codifica entrópicamente los coeficientes escaneados utilizando una variación de codificación por longitud de serie (370). El codificador selecciona un código de entropía en una o más de las tablas serie/amplitud/final (375) y emite el código de entropía.
La Figura 4 muestra un ejemplo de un correspondiente procedimiento de decodificación (400) para un bloque codificado temporalmente. Debido a la cuantización de los coeficientes DCT, el bloque reconstruido (475) no es idéntico al bloque original correspondiente. La compresión tiene pérdidas.
En el resumen de la Figura 4, un decodificador decodifica (410, 420) la información codificada entrópicamente que representa un residuo de predicción utilizando decodificación por longitud variable (410) con una o más tablas serie/amplitud/final (415) y decodificación por longitud de serie (420). El decodificador escanea inversamente (430) un conjunto unidimensional (425) almacenando la información codificada entrópicamente en un bloque bidimensional (435). El decodificador hace una cuantización inversa y una transformada discreta inversa del coseno (juntas, 440) de los datos, resultando un bloque de errores reconstruido (445). En un camino independiente de compensación de movimiento, el decodificador calcula un bloque predicho (465) usando información de vector de movimiento (455) para el desplazamiento desde un fotograma de referencia. El decodificador combina (470) el bloque predicho (465) con el bloque de errores reconstruido (445) para formar el bloque reconstruido (475).
La magnitud de cambio entre el fotograma original y el reconstruido se denomina distorsión y el número de bits requerido para codificar el fotograma se denomina tasa del fotograma. La magnitud de distorsión es, más o menos, inversamente proporcional a la tasa. En otras palabras, al codificar un fotograma con menos bits (mayor compresión) se producirá una mayor distorsión, y viceversa.
C. Limitaciones de la compresión convencional de video basada en el movimiento
Las secuencias de video con efectos tales como fundidos, deformaciones (morphing) y mezclas requieren cantidades relativamente grandes de bits para su codificación, porque los procedimientos convencionales de compresión de video en base al movimiento no son generalmente efectivos sobre tales fotogramas. Por ejemplo, considérese una secuencia de video en la que un objeto de un fotograma se ha desplazado ligeramente en una dirección entre un fotograma y el siguiente. Con una técnica típica de estimación de movimiento por coincidencia de bloques, puede ser un asunto sencillo en una secuencia de video sin fundido encontrar en el fotograma previo una buena coincidencia para un bloque del fotograma actual y codificar el vector de movimiento resultante. Sin embargo, si por ejemplo se produce en la secuencia de video un "fundido a negro", cada valor de luminancia en el fotograma actual puede haber cambiado con respecto al fotograma previo, impidiendo que el codificador de video encuentre una buena coincidencia para el bloque. También puede producirse fundido en una secuencia debido a cambios naturales de iluminación. Las mezclas y las deformaciones, que son otros efectos de transición, también pueden reducir la eficacia de la estimación/compensación hacia delante del movimiento.
La solicitud de patente US2001/0016005 describe un procedimiento de compensación de la variación de brillo en una imagen en movimiento, comprendiendo el procedimiento de compensación de la variación de brillo en una imagen en movimiento una etapa de compensar las variaciones totales de brillo por corrección de un valor x de luminancia de cada píxel según la fórmula D_{C} - x + D_{B}, en donde D_{B} es un parámetro que indica un cambio de ganancia y D_{C} es un parámetro que indica un cambio de contraste, representando los parámetros los cambios generales de luminancia entre el plano de una imagen de referencia y el plano de una imagen que se esté tratando.
El documento "Global Brightness-Variation Compensation for Video Coding (Compensación de la variación global del brillo para la codificación de video)"; por Kamikura y otros, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, Vol. 8, Nº 8, 1 de diciembre de 1998, páginas 988-999, XP000791689, también describe un procedimiento de tratamiento similar al anterior, y describe una imagen compensada en variación global de brillo que se genera independientemente para los componentes Y, C_{B} y C_{R}. El esquema de compensación de la variación global del brillo estima en primer lugar la variación global de brillo c_{y} y d_{y} para la luminancia, luego estima los parámetros para la crominancia y utiliza el resultado.
La solicitud de patente US2002/0033901 se titula "Adaptive pre-processing method for motion estimation luminance values (Procedimiento de pretratamiento adaptativo para valores de luminancia con estimación de movimiento)". La solicitud de patente US2002/0033901 describe un procedimiento de tratamiento que comprende las etapas de calcular un histograma de valores originales asociados a los píxeles pertenecientes a un fotograma de video contenido en la señal de entrada de video digital, analizar el histograma para proporcionar parámetros del histograma, y corregir los valores de píxel originales sobre la base de los parámetros del histograma para proporcionar valores de píxel modificados, lo cual produce la señal de video digital que será utilizada por la etapa de estimación de movimiento. La etapa de cálculo puede se aplicada a los valores de crominancia asociados a los píxeles o a una combinación de los valores de luminancia y crominancia. La etapa de corrección del procedimiento de tratamiento se efectúa mediante dos operaciones. Una operación corresponde a una traslación del histograma de la luminancia. Según esta sub-etapa de traslación, el valor original Y(x, y, t) de la luminancia de un píxel (x, y) perteneciente a un fotograma de video F(t) actual es sometido a una traslación por un coeficiente kt, dando un valor modificado Y'(x, y, t) de la luminancia. El valor medio de la luminancia sobre el fotograma de video actual es igual a M. Los valores originales Y(x, y, t) de la luminancia de los píxeles pertenecientes a dicho fotograma de video son entonces trasladados de tal modo que el valor medio de los valores modificados Y'(x, y, t) de la luminancia sobre el fotograma de video actual sea M'. En consecuencia, kt es igual a la diferencia entre M' y M.
D. Normas para la compresión y descompresión de video
Aparte del WMV8, existen varias normas internacionales relativas a la compresión y descompresión de video. Entre estas normas están las normas Motion Picture Experts Group ["MPEG"] 1, 2 y 4, y las normas H.261, H.262 y H.263 de la Internacional Telecommunication Union ["ITU"]. Al igual que el WMV8, estas normas usan una combinación de compresión espacial y temporal, aunque las normas difieren típicamente del WMV8 en los detalles de las técnicas de compresión utilizadas. Por ejemplo, el Anexo P de la norma H.263 describe un Modo de Remuestreo de Fotografía de Referencia, para uso en la predicción, que puede usarse para alterar adaptativamente la resolución de fotogramas durante la codificación.
Dada la importancia crítica de la compresión y descompresión de video para el video digital, no es sorprendente que la compresión y descompresión de video sean campos muy desarrollados. No obstante, sean cuales sean los beneficios de la anterior compresión y descompresión de video, no tiene las ventajas de las siguientes técnicas y herramientas.
Resumen
Uno de los objetivos de la compresión de video es aumentar el rendimiento tasa-distorsión - en otras palabras, alcanzar la misma calidad usando menos bits, o usar la misma cantidad de bits pero alcanzando mayor calidad. Un modo de alcanzar este objetivo es identificar porciones de secuencias de video que requieran cantidades relativamente grandes de bits para su codificación, y después encontrar modos para comprimir mejor tales porciones. Las porciones de secuencias de video con efectos tales como fundidos, deformaciones y mezclas son poco frecuentes, pero cuando ocurren exigen cantidades relativamente grandes de bits para su codificación, porque los procedimientos convencionales de compresión de video en base al movimiento no son generalmente efectivos sobre tales porciones.
Por lo tanto, en resumen, la descripción detallada está dirigida a diversas técnicas y herramientas para mejorar el rendimiento tasa-distorsión en secuencias de video que incluyan fundidos de entrada, fundidos de salida, fundidos cruzados, u otros efectos de fundido, mezcla o deformación. Por ejemplo, un codificador de video efectúa compensación de fundido para un fotograma actual ajustando un fotograma de referencia en base a unos parámetros de fundido. Esto hace más eficaz la compensación de movimiento usando el fotograma de referencia. Un decodificador de video efectúa la compensación de fundido ajustando el fotograma de referencia. En particular, la descripción detallada trata de los modos eficaces para parametrizar el ajuste del fotograma de referencia.
En un primer juego de técnicas y herramientas, un codificador o decodificador de video obtiene los parámetros de fundido comprimiendo un parámetro de escalado y un parámetro de desplazamiento. El codificador o decodificador de video efectúa la compensación de fundido remapeando los valores de píxel (tales como los valores de crominancia o luminancia) en una imagen de video de referencia (tal como un fotograma, un campo o un plano de objeto) en términos de los parámetros de fundido que pueden haber sido codificados, por ejemplo, utilizando códigos de longitud fija o variable. En algunos casos, el parámetro de escalado es un parámetro de contraste y el parámetro de desplazamiento es un parámetro de brillo. Los parámetros de fundido especifican, por ejemplo, una transformada lineal a nivel de píxel que comprende escalar valores de píxel (tales como valores de crominancia o luminancia) usando el parámetro de escalado. En algunos casos, la transformada lineal a nivel de píxel comprende adicionalmente desplazar los valores de píxel escalados usando el parámetro de desplazamiento. El codificador o decodificador de video efectúa la compensación de movimiento al menos en parte de una imagen de video actual con relación a la imagen de video de referencia remapeada.
En un segundo juego de técnicas y herramientas, un codificador o decodificador de video obtiene unos parámetros de compensación del cambio global de luminancia consistentes en un parámetro de escalado y un parámetro de desplazamiento. El codificador o decodificador de video efectúa la compensación del cambio global de luminancia remapeando los valores de píxel para la totalidad de un fotograma de video de referencia en términos de los parámetros de compensación del cambio global de luminancia. El codificador o decodificador de video efectúa compensación de movimiento al menos en parte de un fotograma de video actual con relación al fotograma de video de referencia remapeado.
Las diversas técnicas y herramientas pueden ser utilizadas independientemente o combinadas. Diferentes realizaciones implementan una o más de las técnicas y herramientas descritas.
Se apreciarán características y ventajas adicionales mediante la siguiente descripción detallada de diferentes realizaciones que hace referencia a los dibujos adjuntos.
Breve descripción de los dibujos
La Figura 1 es un esquema que representa la compresión espacial a base de bloques según la técnica anterior.
La Figura 2 es un gráfico que representa la estimación de movimiento en un codificador de video según la técnica anterior.
La Figura 3 es un esquema que representa la compresión temporal a base de bloques según la técnica anterior.
La Figura 4 es un esquema que representa la descompresión temporal a base de bloques según la técnica anterior.
La Figura 5 es un diagrama de bloques de un entorno informático adecuado en el cual pueden implementarse varias realizaciones descritas.
La Figura 6 es un diagrama de bloques de un sistema generalizado de codificación de video utilizado en varias realizaciones descritas.
La Figura 7 es un diagrama de bloques de un sistema generalizado de decodificación de video utilizado en varias realizaciones descritas.
La Figura 8 es un diagrama que representa una técnica para codificar video usando estimación y compensación de fundido.
La Figura 9 es un diagrama que representa una técnica para decodificar video codificado usando compensación de fundido.
La Figura 10 es un diagrama de bloques de un sistema codificador de video capaz de efectuar estimación y compensación de fundido.
La Figura 11 es un diagrama de bloques de un sistema decodificador de video capaz de efectuar compensación de fundido.
La Figura 12 es un diagrama que muestra una técnica de detección de fundido y extracción de parámetros.
La Figura 13 es un diagrama que muestra un esquema de señalización para indicar si debe usarse compensación de fundido para un fotograma.
Descripción detallada
Las realizaciones descritas están relacionadas con técnicas y herramientas para la estimación y/o la compensación del fundido. Sin compensación/estimación del fundido, las secuencias de video con efectos tales como fundido, deformación y mezcla requieren para su codificación cantidades relativamente grandes de bits, porque los procedimientos convencionales de compresión de video basados en el movimiento no son generalmente efectivos sobre tales fotogramas. Las realizaciones descritas mejoran el rendimiento tasa-distorsión efectuando la estimación/compensación de fundido en tales secuencias. Varias realizaciones están relacionadas con técnicas y herramientas para estimar, aplicar, codificar y/o decodificar los parámetros de cambio global de luminancia.
En algunas realizaciones la compensación de fundido consiste en efectuar un cambio global de luminancia en uno o más fotogramas de referencia para compensar el fundido. Un cambio global de luminancia es un cambio de luminancia a través de una región definida, que puede ser un fotograma, una parte de un fotograma (por ejemplo, un bloque o macrobloque individual en un fotograma, o un grupo de macrobloques en un fotograma), u otra porción específica de una imagen que esté siendo codificada o decodificada. Entonces se predice un fotograma actual por estimación/compensación de movimiento a partir de uno o más fotogramas de referencia ajustados. Alternativamente, la compensación del fundido implica un cambio global a un fotograma de referencia para compensar efectos tales como mezclas o deformaciones. Generalmente, la compensación del fundido incluye cualquier compensación de fundido (es decir, fundido a negro o fundido desde negro), mezcla, deformación u otros efectos de iluminación sintéticos o naturales que afecten a la intensidad de los valores de píxel. No obstante, en este documento los términos fundido y cambio global de luminancia se usan indistintamente, sin pérdida de la generalidad, a menos que el contexto muestre claramente lo contrario.
Como alternativa a efectuar la compensación de fundido sobre fotogramas, algunas realizaciones efectúan la compensación de fundido sobre campos, capas de objetos u otras imágenes.
En algunas realizaciones, la compensación de fundido se produce ajustando los valores de píxel en los canales de luminancia y crominancia de un fotograma de referencia en el espacio de color YUV. El ajuste incluye escalar y desplazar los valores de luminancia de los píxeles y escalar y desplazar los valores de crominancia de los píxeles. Alternativamente, el espacio de color es diferente (por ejemplo, YIQ o RGB) y/o la compensación utiliza otras técnicas de ajuste.
Un codificador/decodificador efectúa la estimación/compensación del fundido sobre una base de fotograma a fotograma. Alternativamente, un codificador/decodificador efectúa la estimación/compensación del fundido sobre alguna otra base o sobre una porción de un fotograma tal como uno o más bloques o macrobloques.
Las diversas técnicas y herramientas pueden ser utilizadas independientemente o combinadas. Diferentes realizaciones implementan una o más de las diversas técnicas y herramientas descritas. Aunque las operaciones para estas técnicas se han descrito típicamente, por facilidad de presentación, en un orden secuencial particular, deberá entenderse que este modo de descripción abarca retoques menores en el orden de las operaciones, a menos que se requiera un orden particular. Por ejemplo, las operaciones descritas secuencialmente pueden, en algunos casos, reordenarse o realizarse concurrentemente. Además, por motivos de simplicidad, los diagramas de flujo no muestran típicamente las diversas formas en que pueden utilizarse técnicas particulares conjuntamente con otras técnicas.
En algunas realizaciones, el codificador y decodificador de video utiliza diversas banderas y señales en una secuencia de bits (bitstream). Aunque se han descrito banderas y señales particulares, deberá entenderse que este modo de descripción abarca diferentes convenciones (por ejemplo, ceros en vez de unos) para las banderas y señales.
I. Entorno informático
La Figura 5 ilustra un ejemplo generalizado de un entorno informático (500) adecuado en el cual pueden implementarse varias de las realizaciones descritas. El entorno informático (500) no pretende sugerir ninguna limitación en cuanto al alcance de utilización o de funcionalidad, ya que las técnicas y herramientas pueden ser implementadas en diversos entornos informáticos de propósito general o de propósito especial.
Con referencia a la Figura 5, el entorno informático (500) incluye al menos una unidad procesadora (510) y una memoria (520). En la Figura 5, esta configuración básica (530) está rodeada por una línea de trazos. La unidad procesadora (510) ejecuta instrucciones ejecutables por ordenador y puede ser un procesador real o virtual. En un sistema multiproceso, múltiples unidades procesadoras ejecutan instrucciones ejecutables por ordenador para aumentar la potencia de procesamiento. La memoria (520) puede ser una memoria volátil (por ejemplo, de registros, caché, RAM), una memoria no volátil (por ejemplo, ROM, EEPROM, memoria flash, etc.), o una combinación de las dos. La memoria (520) almacena un software (580) que implementa un codificador y/o un decodificador, tal como un codificador y/o un decodificador de video.
Un entorno informático puede tener características adicionales. Por ejemplo, el entorno informático (500) incluye el almacenamiento (540), uno o más dispositivos de entrada (550), uno o más dispositivos de salida (560), y una o más conexiones de comunicación (570). Un mecanismo de interconexión (no representado), tal como un bus, un controlador o una red, interconecta los componentes del entorno informático (500). Típicamente, el software del sistema operativo (no representado) proporciona un entorno operativo para otro software que se ejecute en el entorno informático (500), y coordina las actividades de los componentes del entorno informático (500).
El almacenamiento (540) puede ser extraíble o no extraíble, e incluye discos magnéticos, cintas o casetes magnéticas, CD-ROM, DVD o cualquier otro medio que pueda usarse para almacenar información y al que pueda accederse desde dentro del entorno informático (500). El almacenamiento (540) almacena las instrucciones para el software (580) que implementa el codificador o decodificador.
El o los dispositivos de entrada (550) pueden ser un dispositivo de entrada táctil tal como un teclado, un ratón, un lápiz o una bola, un dispositivo de entrada de voz, un dispositivo escáner, u otro dispositivo que proporcione entradas al entorno informático (500). Para la codificación de audio o de video, el o los dispositivos de entrada (550) puede ser una tarjeta de sonido, una tarjeta de video, una tarjeta sintonizadora de TV, o un dispositivo similar que acepte una entrada de audio o de video en forma analógica o digital, o un CD-ROM o CD-RW que lea muestras de audio o de video y las introduzca en el entorno informático (500). El o los dispositivos de salida (560) pueden ser un indicador visual, una impresora, un altavoz, un grabador de CD, u otro dispositivo que proporcione una salida del entorno informático (500).
La o las conexiones de comunicación (570) permiten la comunicación sobre un medio de comunicación con otra entidad informática. El medio de comunicación envía información, tal como instrucciones ejecutables por ordenador, entradas o salidas de audio o de video, u otros datos, en una señal de datos modulada. Una señal de datos modulada es una señal que tiene una o varias de sus características fijadas o cambiadas de tal manera que se codifique información en la señal. A título de ejemplo, y no de limitación, los medios de comunicación incluyen técnicas con cable o sin cable implementadas en una portadora eléctrica, óptica, RF, infrarroja, acústica, o de otro tipo.
Las técnicas y herramientas pueden describirse en el contexto general de los medios legibles por ordenador. Los medios legibles por ordenador son cualquier medio disponible al que pueda accederse desde un entorno informático. A título de ejemplo, y no de limitación, en el entorno informático (500), los medios legibles por ordenador incluyen la memoria (520), el almacenamiento (540), medios de comunicación, y combinaciones de cualesquiera de los anteriores.
Las técnicas y herramientas pueden describirse en el contexto general de las instrucciones ejecutables por ordenador, tales como las incluidas en módulos de programa, que se ejecutan en un entorno informático sobre un procesador diana real o virtual. Generalmente, los módulos de programa incluyen rutinas, programas, librerías, objetos, clases, componentes, estructuras de datos, etc., que realizan tareas particulares o implementan tipos particulares de datos abstractos. La funcionalidad de los módulos de programa puede combinarse o dividirse entre los módulos de programa que se desee. Las instrucciones ejecutables para los módulos de programa pueden ser ejecutadas en un entorno informático local o distribuido.
Por motivos de presentación, la descripción detallada emplea términos tales como "estimar", "señalizar", "codificar" y "decodificar" para describir operaciones de ordenador en un entorno informático. Estos términos son abstracciones de nivel superior para las operaciones efectuadas por un ordenador y no deben confundirse con actos realizados por un ser humano. Las operaciones reales del ordenador correspondientes a estos términos pueden variar dependiendo de la implementación.
II. Codificador y decodificador de video generalizado
La Figura 6 es un diagrama de bloques de un codificador de video (600) generalizado y la Figura 7 es un diagrama de bloques de un decodificador de video (700) generalizado.
La relación representada entre los módulos situados dentro del codificador y del decodificador indican el flujo principal de información en el codificador y el decodificador; las otras relaciones no se han representado por motivos de simplicidad. En particular, las Figuras 4 y 5 no muestran normalmente la información lateral que indica los ajustes, modos, tablas, etc. del codificador que se usan en una secuencia de video, un fotograma, un macrobloque, un bloque, etc. Esta información lateral es enviada en la corriente de bits de salida, típicamente después de la codificación de entropía de la información lateral. El formato de la corriente de bits de salida puede ser un formato de Windows Media Video u otro formato.
El codificador (600) y el decodificador (700) están basados en bloques y usan un formato de macrobloque 4:2:0, incluyendo cada macrobloque cuatro bloques de luminancia de 8 x 8 (tratados a veces como un macrobloque de 16 x 16) y dos bloques de crominancia de 8 x 8. Alternativamente, el codificador (600) y el decodificador (700) se basan en objetos, usan un formato diferente de macrobloque o de bloque, o efectúan operaciones sobre conjuntos de píxeles de tamaño o configuración diferentes a los bloques de 8 x 8 y a los macrobloques de 16 x 16.
Dependiendo de la implementación y del tipo de compresión deseado, los módulos del codificador o decodificador pueden ser añadidos, omitidos, divididos en múltiples módulos, combinados con otros módulos, y/o sustituidos por módulos similares. En realizaciones alternativas, unos codificadores o decodificadores con diferentes módulos y/o otras configuraciones de módulos efectúan una o más de las técnicas descritas.
A. Codificador de video
La Figura 6 es un diagrama de bloques de un sistema general codificador (600) de video. El sistema codificador (600) recibe una secuencia de fotogramas de video que incluye un fotograma actual (605) y produce información de video comprimida (695) como salida. Las realizaciones particulares de codificadores de video usan típicamente una variación o versión ampliada del codificador (600) generalizado.
El sistema codificador (600) comprime fotogramas predichos e fotogramas clave. Por motivos de presentación, la Figura 6 representa un camino para los fotogramas clave a través del sistema codificador (600) y un camino para los fotogramas predichos en adelanto. Muchos de los componentes del sistema codificador (600) se usan para comprimir tanto los fotogramas clave como los fotogramas predichas. Las operaciones exactas efectuadas por esos componentes pueden variar dependiendo del tipo de información que se esté comprimiendo.
Un fotograma predicho (también llamado fotograma p, fotograma b para la predicción bidireccional, o fotograma intercodificado) está representado en términos de predicción (o diferencia) con otro u otros fotogramas. Un residuo de predicción es la diferencia entre lo que se predijo y el fotograma original. Por el contrario, un fotograma clave (también llamada fotograma i, o fotograma intracodificado) es comprimido sin referencia a otros fotogramas.
Si el fotograma actual (605) es un fotograma predicho en adelanto, un estimador de movimiento (610) estima el movimiento de los macrobloques u otros conjuntos de píxeles del fotograma actual (605) con respecto a un plano de referencia, que es el fotograma anterior reconstruido (625) almacenado en el almacén (620) de fotogramas. En realizaciones alternativas, el fotograma de referencia es un fotograma posterior, o el fotograma actual se predice bidireccionalmente. El estimador de movimiento (610) emite como información lateral una información de movimiento (615) tal como unos vectores de movimiento. Un compensador de movimiento (630) aplica la información de movimiento (615) al fotograma anterior reconstruido (625) para formar un fotograma actual compensado en movimiento (635). No obstante, la predicción es raramente perfecta, y la diferencia entre el fotograma actual compensado en movimiento (635) y el fotograma actual (605) es el residuo de predicción (645). Alternativamente, un estimador de movimiento y un compensador de movimiento aplican otro tipo de estimación/compensación de movimiento.
Un transformador de frecuencia (660) convierte la información de video de dominio espacial en datos de dominio frecuencial (es decir, espectral). Para fotogramas de video basados en bloques, el transformador de frecuencia (660) aplica una transformada discreta del coseno ["DCT"] o una variante de la DCT a los bloques de datos del residuo de predicción del movimiento, produciendo bloques de coeficientes DCT. Alternativamente, el transformador de frecuencia (660) aplica otra transformada convencional de frecuencia, tal como una transformada de Fourier, o utiliza el análisis de Wavelet o de sub-banda. En algunas realizaciones, el transformador de frecuencia (660) aplica una transformada de la frecuencia a bloques de residuos de predicción espacial en fotogramas clave. El transformador de frecuencia (660) puede aplicar transformadas de frecuencia de 8 x 8, 8 x 4, 4 x 8, o de otro tamaño.
Un cuantizador (670) cuantiza luego los bloques de coeficientes de datos espectrales. El cuantizador aplica una cuantización escalar uniforme a los datos espectrales con un intervalo que varía entre uno y otro fotograma, o según otro modo. Alternativamente, el cuantizador aplica otro tipo de cuantización a los coeficientes de datos espectrales, por ejemplo, una cuantización no uniforme, vectorial, o no adaptativa, o cuantiza directamente los datos del dominio espacial en un sistema codificador que no use transformaciones de frecuencia. Además de la cuantización adaptativa, el codificador (600) puede utilizar el descarte de fotogramas, el filtrado adaptativo, u otras técnicas de control de la tasa.
Cuando se necesita un fotograma actual reconstruido para la subsiguiente estimación/compensación de movimiento, un cuantizador inverso (676) efectúa una cuantización inversa sobre los coeficientes de los datos espectrales cuantizados. A continuación un transformador de frecuencia inverso (666) efectúa la inversa de las operaciones del transformador de frecuencia (660), produciendo un residuo de predicción reconstruido (para un fotograma predicho) o un fotograma clave reconstruido. Si el fotograma actual (605) era un fotograma clave, se toma el fotograma clave reconstruido como fotograma actual reconstruido (no representado). Si el fotograma actual (605) era un fotograma predicho, se añade el residuo de predicción reconstruido al fotograma actual compensado en movimiento (635) para formar el fotograma actual reconstruido. El almacén (620) de fotogramas almacena el fotograma actual reconstruido para utilizarlo en la predicción del siguiente fotograma. En algunas realizaciones, el codificador aplica un filtro de desbloqueo al fotograma reconstruido para suavizar adaptativamente las discontinuidades de los bloques del fotograma.
El codificador entrópico (680) comprime la salida del cuantizador (670) así como cierta información lateral (por ejemplo, la información de movimiento (615), o el intervalo de cuantización (step size)). Las técnicas típicas de codificación de entropía incluyen codificación aritmética, codificación diferencial, codificación Huffman, codificación por longitud de serie (Run Length Encoding), codificación LZ, codificación tipo diccionario, y combinaciones de las anteriores. El codificador entrópico (680) utiliza típicamente diferentes técnicas de codificación para diferentes clases de información (por ejemplo, coeficientes DC, coeficientes AC, diferentes clases de información lateral), y puede elegir entre múltiples tablas de códigos dentro de una técnica de codificación particular.
El codificador entrópico (680) pone la información de video comprimida (695) en el búfer (690). Se realimenta un indicador del nivel del búfer hacia los módulos adaptativos de la tasa de bits. La información de video comprimida (695) es extraída del búfer (690) con una tasa de bits constante o relativamente constante y almacenada para su posterior canalización con esa tasa de bits. Alternativamente, el sistema codificador (600), inmediatamente después de la compresión, canaliza la información de video comprimida.
Antes o después del búfer (690), la información de video comprimida (695) puede ser sometida a una codificación de canal para su transmisión por la red. La codificación de canal puede aplicar sobre la información de video comprimida (695) una detección de errores y unos datos de corrección.
B. Decodificador de video
La Figura 7 es un diagrama de bloques de un sistema general decodificador (700) de video. El sistema decodificador (700) recibe la información (795) de una secuencia comprimida de fotogramas de video y produce una salida que incluye un fotograma reconstruido (705). Las realizaciones particulares de decodificadores de video usan típicamente una variación o versión ampliada del decodificador (700) generalizado.
El sistema decodificador (700) descomprime fotogramas predichos y fotogramas clave. Por motivos de presentación, la Figura 7 representa un camino para los fotogramas clave a través del sistema decodificador (700) y un camino para los fotogramas predichos en adelanto. Muchos de los componentes del sistema decodificador (700) se usan para descomprimir tanto los fotogramas clave como los fotogramas predichos. Las operaciones exactas efectuadas por esos componentes pueden variar dependiendo del tipo de información que se esté comprimiendo.
Un búfer (790) recibe la información (795) de la secuencia de video comprimida y deja disponible para el codificador entrópico (780) la información recibida. El búfer (790) recibe típicamente la información a una velocidad bastante constante a lo largo del tiempo, e incluye un búfer con variación de retardo (jitter buffer) para suavizar las variaciones a corto plazo en el ancho de banda o en la transmisión. El búfer (790) puede incluir también un búfer de reproducción y otros búfers. Alternativamente, el búfer (790) recibe la información a una velocidad variable. Antes o después del búfer (790), la información de video comprimida puede ser sometida a una decodificación de canal y procesada para detectar y corregir errores.
El codificador entrópico (780) decodifica los datos cuantizados codificados en entropía así como cierta información lateral codificada en entropía (por ejemplo, la información de movimiento (715), el intervalo de cuantización (step size)), típicamente aplicando la inversa de la codificación de entropía efectuada en el codificador. Las técnicas de decodificación de entropía incluyen decodificación aritmética, decodificación diferencial, decodificación Huffman, decodificación por longitud de serie (Run Length Decoding), decodificación LZ, decodificación tipo diccionario, y combinaciones de las anteriores. El codificador entrópico (780) utiliza frecuentemente diferentes técnicas de decodificación para diferentes clases de información (por ejemplo, coeficientes DC, coeficientes AC, diferentes clases de información lateral), y puede elegir entre múltiples tablas de códigos dentro de una técnica de decodificación particular.
Si el fotograma (705) que debe reconstruirse es un fotograma predicho en adelanto, un compensador de movimiento (730) aplica la información de movimiento (715) a un fotograma de referencia (725) para formar una predicción (735) del fotograma reconstruido (705) que se esté reconstruyendo. Por ejemplo, el compensador de movimiento (730) usa un vector de movimiento de macrobloque para hallar un macrobloque en el fotograma de referencia (725). Un almacén (720) de fotogramas almacena los fotogramas reconstruidos anteriores para usarlos como fotogramas de referencia. Alternativamente, un estimador de movimiento aplica otro tipo de compensación de movimiento. La predicción hecha por el compensador de movimiento es raramente perfecta, por lo que el decodificador (700) reconstruye también los residuos de predicción.
Cuando el decodificador necesita un fotograma reconstruido para la subsiguiente compensación de movimiento, el almacén (720) almacena el fotograma reconstruido para utilizarlo en la predicción del siguiente fotograma. En algunas realizaciones, el codificador aplica un filtro de desbloqueo al fotograma reconstruido para suavizar adaptativamente las discontinuidades de los bloques del fotograma.
Un cuantizador inverso (770) cuantiza inversamente los datos decodificados en entropía. En general, el cuantizador inverso aplica una cuantización escalar uniforme e inversa sobre los datos decodificados en entropía con un intervalo que varía entre uno y otro fotograma o de algún otro modo. Alternativamente, el cuantizador inverso aplica sobre los datos otro tipo de cuantización inversa s, por ejemplo, una cuantización no uniforme, vectorial, o no adaptativa, o directamente cuantiza inversamente los datos del dominio espacial en un sistema decodificador que no use transformaciones de frecuencia inversas.
Un transformador de frecuencia inverso (760) convierte los datos de dominio frecuencial, cuantizados, en información de video de dominio espacial. Para fotogramas de video basados en bloques, el transformador de frecuencia inverso (760) aplica una DCT inversa ["IDCT"] o una variante de IDCT sobre los bloques de coeficientes DCT, produciendo datos del residuo de predicción del movimiento. Alternativamente, el transformador de frecuencia (760) aplica otra transformada de frecuencia inversa convencional, tal como una transformada de Fourier, o utiliza una síntesis de Wavelet o de sub-banda. En algunas realizaciones, el transformador de frecuencia inverso (760) aplica una transformada de frecuencia inversa sobre bloques de residuales de predicción espacial en fotogramas clave. El transformador de frecuencia inverso (760) puede aplicar transformadas de frecuencia inversas de 8 x 8, 8 x 4, 4 x 8, o de otro tamaño.
III. Estimación/compensación del cambio global de la luminancia
Algunas realizaciones descritas incluyen técnicas y herramientas para estimar, aplicar, codificar y/o decodificar los cambios globales de luminancia descritos por un pequeño número de parámetros. Las técnicas y herramientas permiten alcanzar con una tasa menor de bits la misma calidad subjetiva y objetiva del video reconstruido. Cada herramienta o técnica individual implementa uno o más de: 1) un esquema de compensación del cambio de luminancia global; 2) parametrización de los parámetros de luminancia globales; 3) estimación/extracción computacionalmente eficiente de los parámetros de luminancia globales; 4) señalización a bajo coste de los fotogramas con cambio global de luminancia; y 5) señalización a bajo coste de los parámetros globales de luminancia. El cambio de luminancia puede ser global en un fotograma, un campo, una parte de un fotograma o campo tal como un bloque individual, un macrobloque individual o un grupo de macrobloques, u otra porción específica de un fotograma. Aunque gran parte de la siguiente descripción trata de la parametrización y compensación del cambio de luminancia en un fotograma completo, puede utilizarse la misma estructura de compensación del cambio de luminancia para: 1) determinar la presencia de fundido en una porción (por ejemplo un bloque o macrobloque individual) de un fotograma, b) calcular los parámetros de fundido con esta porción, y c) parametrizar y transmitir estos parámetros de fundido para la porción dada del fotograma. Estas técnicas pueden repetirse para múltiples porciones del fotograma.
Un cambio de luminancia global (también conocido por fundido) puede ser un cambio en el brillo y/o contraste de la escena. Típicamente, el cambio es lineal, pero también puede definirse el fundido como incluyendo cualquier mapeado no lineal dentro de la misma estructura. El fundido, la deformación y el mezclado son ampliamente utilizados en la creación de contenidos de video para suavizar la evolución de los fotogramas de video a través de las transiciones de escenas y para proporcionar efectos especiales. Adicionalmente, ciertas secuencias presentan un fundido natural debido a cambios de iluminación. Los fotogramas de video con efectos tales como fundido, deformación y mezclado requieren cantidades relativamente grandes de bits para su codificación con procedimientos convencionales de compresión de video basados en el movimiento, los cuales no son generalmente efectivos sobre tales fotogramas.
A. Esquema de compensación del cambio de luminancia global
La Figura 8 muestra una técnica (800) para codificar video usando la compensación del cambio de luminancia global. Un codificador tal como el codificador (600) representado en la Figura 6 puede llevar a cabo la técnica (800).
En primer lugar, el codificador comprueba (810) si existe fundido en un fotograma que deba ser codificado, tal como el fotograma actual que se esté codificando en una secuencia de video. Si el codificador detecta (810) fundido en el fotograma, el codificador obtiene (820) los parámetros del fundido. Por ejemplo, el codificador detecta fundido y obtiene los parámetros del fundido según se describe más adelante en la sección C. Alternativamente, el codificador utiliza una técnica diferente para detectar el fundido y/u obtener los parámetros. El codificador señaliza si la compensación de fundido está puesta o quitada, y, si está puesta, señaliza también los parámetros del fundido.
Si se detectó fundido en el fotograma, el codificador efectúa entonces (830) la compensación de fundido sobre uno o más fotogramas de referencia para el fotograma, por ejemplo según se describe más adelante en la sección B. Cuando el codificador efectúa la compensación de fundido sobre múltiples fotogramas de referencia, los múltiples fotogramas de referencia pueden estar antes o después (en el orden de la reproducción) del fotograma que se está codificando. El codificador señaliza las porciones compensadas del fotograma que se esté codificando y los múltiples fotogramas de referencia a partir de los cuales fueron compensadas. Para esta señalización, el codificador puede usar la señalización ya utilizada para la selección de fotogramas de referencia en tales sistemas. En algunas realizaciones, el codificador puede usar a la vez un fotograma de referencia original y un fotograma de referencia remapeado en la estimación/compensación de movimiento para el fotograma que debe codificarse. Esto puede hacerlo el codificador, por ejemplo, para codificar un fotograma actual que tiene a la vez contenido fundido y superposiciones sin fundir.
Después de la compensación del fundido, el codificador codifica (840) el fotograma mediante estimación/compen-
sación de movimiento a partir del fotograma o fotogramas de referencia ajustados. Si el codificador no detecta fundido, el codificador codifica (840) el fotograma sin obtener parámetros de fundido ni efectuar compensación de fundido. Una vez hecha (850) la codificación, el procedimiento finaliza.
La Figura 9 muestra una técnica (900) para decodificar video codificado usando compensación del fundido. Un decodificador tal como el decodificador (700) representado en la Figura 7 puede efectuar la técnica (900).
En primer lugar, el decodificador comprueba (910) si el fotograma que debe ser decodificado tiene puesto o quitado el fundido. Un modo de efectuar esta comprobación es comprobar la información de señalización enviada por un codificador. Si el decodificador determina (910) que el fotograma tiene puesto el fundido, el decodificador efectúa (920) la compensación de fundido. Por ejemplo, el decodificador toma los parámetros de fundido enviados por el codificador y efectúa la compensación de fundido (como se hizo en el codificador) sobre uno o más fotogramas de referencia para el fotograma que debe descodificarse.
Después el decodificador decodifica (930) el fotograma, por ejemplo, usando compensación de movimiento a partir del fotograma o fotogramas de referencia ajustados. Si no está puesto el fundido, el decodificador decodifica (930) el fotograma sin efectuar compensación de fundido. Una vez hecha (940) la decodificación, el procedimiento finaliza.
La Figura 10 muestra una estructura ejemplar (1000) de codificador para efectuar la compensación del cambio global de luminancia. En esta estructura (1000), el codificador remapea condicionalmente un fotograma de referencia utilizando parámetros obtenidos por estimación del fundido. El codificador efectúa el remapeo, o compensación del fundido, cuando el codificador detecta fundido con un buen grado de certeza y consistencia a través del fotograma. En caso contrario, la compensación de fundido es una operación de identidad (es decir, salida = entrada).
Refiriéndose a la Figura 10, el codificador compara un fotograma (1010) actual con un fotograma (1020) de referencia usando un módulo (1030) de detección de fundido para determinar si existe fundido. En algunas realizaciones, el fotograma de referencia es el fotograma previo al fotograma actual en una secuencia de video. Alternativamente, el fotograma de referencia es anterior al fotograma previo o posterior al fotograma actual. Cuando se usan múltiples fotogramas de referencia, el codificador puede comprobar el fundido en cada fotograma de referencia. El codificador produce una señal (1040) de "fundido puesto" o "fundido quitado" basada en los resultados de la detección de fundido.
Si el fundido está puesto, el módulo (1050) de estimación de fundido estima los parámetros (1060) de fundido en base a los cálculos realizados sobre el fotograma (1010) actual y el fotograma (1020) de referencia. (En la siguiente sección C se describen detalles de la compensación de fundido en algunas realizaciones).
El módulo (1070) de compensación de fundido usa los parámetros (1060) de fundido para remapear el fotograma (1020) de referencia (alternativamente, las múltiples fotogramas de referencia). A continuación el codificador puede usar otros módulos (1080) del codificador (por ejemplo, módulos de estimación y compensación de movimiento, de transformación de frecuencia, y de cuantización) para comprimir el fotograma. El codificador emite vectores de movimiento, residuos y otra información (1090) que definen el fotograma (1010) actual codificado. Aparte de la estimación/compensación de movimiento con vectores de movimiento traslacional, la estructura para la compensación del cambio global de luminancia es aplicable a una amplia variedad de codecs de video basados en la compensación de movimiento.
La Figura 11 muestra una estructura ejemplar (1100) de decodificador para efectuar la compensación del cambio global de luminancia. El decodifcador produce un fotograma actual (1110) decodificado. Para decodificar un fotograma codificado con el fundido compensado, el decodificador efectúa la compensación de fundido sobre un fotograma (1120) de referencia previamente decodificado (alternativamente, múltiples fotogramas de referencia) usando un módulo (1130) de compensación de fundido.
El decodificador efectúa la compensación de fundido sobre el fotograma (1120) de referencia si la señal (1140) de fundido puesto/quitado indica que el fotograma actual (1110) codificado tiene puesto el fundido. El decodificador efectúa la compensación de fundido (como hizo el codificador) usando los parámetros (1150) de fundido obtenidos durante la estimación del fundido. En caso contrario (si el fotograma actual tiene quitado el fundido), la compensación de fundido es una operación de identidad (es decir, salida = entrada).
A continuación el decodificador puede usar otros módulos (1160) del decodificador (por ejemplo, módulos de estimación y compensación de movimiento, de transformación inversa de frecuencia, y de cuantización inversa) para descomprimir el fotograma usando vectores de movimiento, residuos y otra información (1170) proporcionada por el codificador.
B. Parametrización y compensación
Durante la edición de video, a veces se efectúa un fundido sintético mediante la aplicación de una transformada lineal simple a nivel de píxel sobre los canales de luminancia y crominancia. Así mismo, a veces se efectúa el fundido cruzado como sumas lineales de dos secuencias de video, con la composición cambiando con el tiempo. En consecuencia, en algunas realizaciones, un codificador tal como el representado en la estructura (1000) de la Figura 10 parametriza el fundido (ya sea natural o sintético) como una transformada lineal a nivel de píxel y parametriza el fundido cruzado como una suma lineal, y un decodificador tal como el representado en la estructura (1100) de la Figura 11 efectúa las correspondientes transformadas.
Sea I(n) una imagen en el fotograma n e I(n-1) una imagen en el fotograma previo. Cuando el movimiento es pequeño, el fundido simple se modela por la relación de primer orden de la Ecuación 1. (La relación de la Ecuación 1 es aproximada, debido a un posible movimiento en la secuencia de video).
(1)I(n) \approx C I(n-1) + B
en donde los parámetros de fundido B y C corresponden al brillo y al contraste, respectivamente. Cuando se produce un fundido no lineal, el componente de primer orden cuenta típicamente para la totalidad del cambio.
Los fundidos cruzados desde una secuencia de imágenes U(n) hasta una secuencia de imágenes V(n) pueden modelarse por la relación de la Ecuación 2. La relación de la Ecuación 2 es aproximada debido a un posible movimiento en las secuencias.
\hskip4,7cm
100
n \approx 0 representa el comienzo del fundido cruzado, y n \approx 1/ \alpha representa el final del fundido cruzado. Para los fundidos cruzados que ocupan varios fotogramas, \alpha es pequeña. Al comienzo del fundido cruzado, el fotograma n está cerca de una versión atenuada (contraste < 1) del fotograma n-1. Hacia el final, el fotograma n es una versión amplificada (contraste > 1) del fotograma n-1. En otras palabras, al comienzo del fundido cruzado, el fotograma n puede modelarse como el fotograma n-1 escalado por el valor de contraste 1 - \alpha, mientras que al final del fundido cruzado, el fotograma n puede modelarse como el fotograma n-1 escalado por el valor de contraste 1+ \alpha, La ecuación 2 muestra que al comienzo y al final del fundido cruzado, el codificador puede obtener el fotograma n remapeando un fotograma de referencia (por ejemplo, el fotograma n-1) usando una regla lineal (tal como la que se muestra en las siguientes Ecuaciones 3 y 4).
El codificador lleva a cabo la compensación del cambio global de luminancia remapeando un fotograma de referencia. El codificador remapea el fotograma de referencia sobre una base de a nivel de píxel, o sobre alguna otra base. El fotograma de referencia original, sin remapear, es esencialmente descartado (aunque en un escenario de múltiples fotogramas de referencia también puede usarse la referencia sin mapear).
La siguiente regla lineal, basada en la Ecuación 1, remapea los valores de luminancia del fotograma de referencia R al fotograma de referencia remapeado \check{R} en términos de los dos parámetros B y C (correspondientes al brillo y al contraste de la escena):
(3)\check{R} \approx CR + B
Los valores de luminancia del fotograma de referencia son escalados (o "sopesados") por el valor del contraste y desplazados (es decir, añadiendo un decalaje) por el valor del brillo. En cuanto a la crominancia, el remapeo sigue la regla:
(4)\check{R}\approx C(R - \mu) + \mu
en donde \mu es la media de los valores de crominancia. En una realización, se supone que 128 es la media para los valores de crominancia con representación de 8 bits sin signo. Esta regla para el remapeo de la crominancia no utiliza un componente de brillo.
En algunas realizaciones, el remapeo lineal con doble parámetro utilizado en las Ecuaciones 3 y 4 se extiende a términos de mayor orden. Por ejemplo, la Ecuación 5 es una ecuación de segundo orden que remapea los valores de luminancia de R a \check{R}:
(5)\check{R}R \approx C_{1}R^{2} + C_{2}R + B
Otras realizaciones usan otras reglas de remapeo. En una categoría de tales reglas de remapeo, para fundido no lineal, los mapeos lineales son sustituidos por mapeos no lineales.
C. Estimación de los parámetros de fundido
La estimación del fundido es el procedimiento para calcular los parámetros de fundido durante el procedimiento de codificación. Un codificador como el que se muestra en la estructura (1000) de la Figura 10 puede calcular los parámetros de brillo (B) y contraste (C) durante el procedimiento de codificación.
En algunas realizaciones, para estimar los parámetros con precisión y de manera rápida, el codificador usa la técnica (1200) ilustrada en la Figura 12. En la técnica ilustrada sólo se analiza el canal de luminancia. Alternativamente, el codificador incluye la crominancia en el análisis cuando se dispone de más recursos de cálculo. Por ejemplo, el codificador calcula C en las Ecuaciones 3 y 4 (no sólo en la Ecuación 3) para que C sea más robusto.
En la realización ilustrada en la Figura 12, se ignora el movimiento en la escena durante el procedimiento de estimación del fundido. Ello está basado en las observaciones de que: (a) los fundidos y los fundidos cruzados ocurren típicamente en escenas fijas o a cámara lenta y (b) la utilidad de la compensación del cambio global de luminancia en escenas con movimiento rápido es muy pequeña. Alternativamente, el codificador calcula conjuntamente los parámetros de fundido y la información del movimiento. Después se usa la información del movimiento para afinar la precisión de los parámetros de fundido en las últimas etapas de la técnica (1200) o en algún otro momento. Un modo de utilizar la información del movimiento es omitir del cálculo de la estimación del fundido aquellas porciones del fotograma de referencia en las cuales se detecte movimiento.
En diversas partes de la técnica (1200), las sumas del error absoluto \Sigmaabs(I(n) - R) ó \Sigmaabs(I(n) - \check{R}) sirven como medidas para determinar la existencia del fundido y sus parámetros. Alternativamente, el codificador usa medidas distintas o adicionales tales como la suma de los errores cuadráticos ["SSE"] o el error cuadrático medio ["MSE"] sobre el mismo término de error, o el codificador usa un término de error diferente.
En varios puntos durante la técnica (1200), el codificador puede finalizar la técnica (1200) tras satisfacer una condición de salida. La figura 12 muestra varias condiciones de salida. Para otra condición de salida (no representada en la Figura 12), el codificador comprueba si el parámetro de contraste está cerca de 1,0 (en una implementación, 0,99 < C < 1,02) al inicio o en una etapa intermedia de la técnica (1200) y, de ser así, la técnica (1200) finaliza.
El codificador inicia el procedimiento (1200) muestreando (1210) el fotograma actual y el fotograma de referencia. En una implementación, el codificador muestrea por un factor de 4 horizontal y verticalmente. Alternativamente, el codificador muestrea por otro factor, o no muestrea en absoluto.
El codificador calcula entonces (1220) la suma de errores absolutos \Sigmaabs(I_{d}(n)-R_{d}) sobre las versiones de menor resolución de los fotogramas actual y de referencia (indicados por el subíndice d). La suma de errores absolutos mide la diferencia en valores de píxel entre el fotograma actual muestreado y el fotograma de referencia muestreado. Si la suma de errores absolutos es inferior (1230) a un cierto umbral (por ejemplo, una medida diferencial predeterminada entre los valores de luminancia para los píxeles de los fotogramas muestreados actual y de referencia), el codificador concluye que no se ha producido ningún fundido y no efectúa (1235) compensación de fundido.
En caso contrario, el codificador estima (1240) los parámetros de brillo (B) y contraste (C). Las primeras estimaciones de corte para B y C se obtienen modelando I_{d}(n) en términos de R_{d}. En una realización, los parámetros de brillo y contraste se obtienen mediante regresión lineal sobre la totalidad del fotograma muestreado. En otras realizaciones, el codificador usa otras formas de análisis estadístico tales como mínimos cuadrados totales, mínima mediana de cuadrados, etc. para conseguir análisis más robustos. Por ejemplo, el codificador minimiza el MSE o el SSE del término de error I_{d}(n)-R_{d}. En algunas circunstancias, el MSE o el SSE no son robustos, por lo que el codificador prueba también la suma de errores absolutos para el término de error. El codificador descarta los valores elevados de error en puntos particulares (que pueden deberse al movimiento más que al fundido).
El codificador calcula entonces (1250) B_{f} y C_{f} cuantizando y decuantizando B y C. Los primeros parámetros de corte se cuantizan y decuantizan, dando B_{f} y C_{f}, para asegurar que quedan dentro del margen permisible y para comprobar el cumplimiento. En algunas realizaciones, para fotogramas con profundidad típica de 8 bits, B y C se cuantifican a 6 bits cada uno. B adopta valores enteros de -32 a 31 representados por un entero de 5 bits con signo. El valor cuantizado de C, representado por C_{q}, varía entre 0,515625 y 1,484375, a escalones uniformes de 0,015625 (1/64), correspondientes a los valores cuantizados 1 a 63. La cuantización se efectúa redondeando B y C al valor decuantizado válido más cercano y cogiendo el índice binario apropiado.
El codificador calcula luego (1270) la suma original de errores absolutos acotados (S_{OrgBnd}) y la suma remapeada de errores absolutos acotados (S_{RmpBnd}). En algunas realizaciones, el codificador calcula las sumas mediante un análisis de bondad del ajuste. En un conjunto de píxeles aleatorio o pseudoaleatorio, a la resolución original, el codificador calcula la suma remapeada de errores absolutos acotados \Sigmababs(I(n) - C_{f}R - B_{f}), en donde babs(x) = min(abs(x), M) para cierta cota M. En una implementación, M es un múltiplo del parámetro de cuantización del fotograma que se está codificando. La cota M es más alta cuando el parámetro de cuantización es basto, y más baja cuando el parámetro de cuantización es fino. El codificador también acumula la suma original de errores absolutos acotados \Sigmababs(I(n) - R). Si se dispo-
ne de recursos de cálculo, el codificador puede calcular las sumas de errores acotados sobre los fotogramas enteros.
A continuación, en base a los valores relativos de las sumas de errores absolutos acotados original y remapeada, el codificador determina (1280) si usa o no compensación de fundido. Por ejemplo, en algunas realizaciones, el codificador no efectúa compensación de fundido a menos que la suma remapeada de los errores absolutos acotados sea igual o inferior a cierto umbral porcentual \sigma de la suma original de los errores absolutos acotados. En una implementación, \sigma = 0,95. Si el codificador efectúa la compensación de fundido, el codificador recalcula (1290) los parámetros de fundido, basándose esta vez en una regresión lineal entre I(n) y R, pero a la máxima resolución. Para ahorrar tiempo de cálculo, el codificador puede efectuar la regresión lineal repetida sobre el muestreo aleatorio o pseudoaleatorio del fotograma. De nuevo, el codificador puede usar alternativamente otras formas de análisis estadístico, tales como mínimos cuadrados totales, mínima mediana de cuadrados, etc. para conseguir análisis más robustos. Una vez hecha (1295) la codificación, el procedimiento finaliza.
En una realización, el codificador permite un caso especial en el que C = -1 en las Ecuaciones 3 y 4. El caso especial está señalizado por C_{q} = 0 en la secuencia de bits. En este modo de "inversión", el fotograma de referencia es invertido antes del desplazamiento por B y el margen de B es 193 a 319 a escalones uniformes de dos.
D. Señalización
Un codificador tal como el que se muestra en la estructura (1000) de la Figura 10 envía información sobre señalización de fundido puesto/quitado, así como los parámetros del fundido. Un decodificador tal como el que se muestra en la estructura (1100) de la Figura 11 recibe la información sobre señalización y los parámetros de fundido.
En algunas realizaciones, al nivel de secuencia, el codificador envía un bit para indicar si la compensación del cambio global de luminancia está habilitada para la secuencia. El codificador puede señalizar también el cambio global de luminancia a nivel de fotograma y/o el cambio global de luminancia para una porción de un fotograma, tal como un bloque o macrobloque individual en un fotograma.
Entre los fotogramas de una secuencia de video típica es raro que se produzca un cambio global de luminancia o fundido. Es posible señalizar el fundido (o, equivalentemente, la ausencia de fundido) añadiendo un bit. Por ejemplo, el codificador puede señalizar el fundido (o, equivalentemente, la ausencia de fundido) a nivel de fotograma mediante el uso de un bit. Sin embargo, es más económico señalizar el fundido (o, equivalentemente, la ausencia de fundido) conjuntamente con otra información. Por ejemplo, el codificador efectúa la señalización a nivel de fotograma usando una secuencia de escape en una tabla de códigos de longitud variable (VLC) para el modo de movimiento (es decir, el número y configuración de los vectores del movimiento, el esquema de interpolación subpíxel). En tales realizaciones, el codificador señaliza conjuntamente el modo de movimiento menos frecuente y la activación de la compensación del fundido.
Sea F el suceso que representa la existencia de fundido y G el que representa la elección del modo de movimiento menos frecuente para el fotograma. Sea VLC<MVMODE> el que representa un modo de movimiento cuando G es falso. Esta tabla de VLC está diseñada con un símbolo de escape <ESC> utilizado para señalizar cuando F y/o G son ciertos. La Tabla 1 ilustra la codificación conjunta de F y del modo de movimiento, seguida de los parámetros de fundido B y C cuando la compensación de fundido está activada.
TABLA 1 Codificación conjunta del modo de movimiento menos frecuente y la señal de fundido
G = falso G = cierto
F = falso <MVMODE> <ESC> 0
F = cierto <ESC> 1 <MVMODE> [B][C] <ESC> 1 <ESC> [B][C]
Si se activa el cambio global de luminancia para un cierto fotograma, sigue otro VLC (ya sea <MVMODE> ó <ESC>) para indicar el modo de movimiento. Luego se señalizan los parámetros mediante dos palabras de código de longitud fija de 6 bits para B y C, respectivamente. Alternativamente los parámetros se señalizan mediante VLCs. Cuando aplica a una porción individual de un fotograma, tal como un bloque o un macrobloque, el codificador puede señalizar los parámetros de fundido independientemente con esa porción. Por ejemplo, si el fundido aplica a un solo macrobloque del fotograma de video, la información del fundido puede ser señalizada por códigos de entropía conjuntos con la información a nivel de macrobloque, tal como el patrón del bloque codificado o el tipo de transformada.
La Figura 13 es un diagrama de árbol que muestra una disposición de codificación (correspondiente a la Tabla 1, para una implementación) en el cual el codificador codifica conjuntamente el modo de movimiento menos frecuente y la existencia de fundido. (Los detalles de codificación de los parámetros de fundido han sido omitidos). El codificador usa VLCs para representar cada uno de los otros modos de movimiento (por ejemplo, los códigos "0", "10" y "110" representan los modos de movimiento 0, 1 y 2, respectivamente). El codificador usa un código de escape (por ejemplo, "111") seguido por un "0" para representar el modo de movimiento menos frecuente cuando no está activado el fundido. El codificador usa el código de escape seguido por un "1" para indicar que el fundido está activado.
Deberá entenderse que los programas, procedimientos o métodos descritos en este documento no están referidos ni limitados a ningún tipo particular de entorno informático, a menos que se indique lo contrario. Diversos tipos de entornos informáticos, de propósito general o especializado, pueden ser utilizados con las enseñanzas aquí descritas o pueden efectuar operaciones de acuerdo con las mismas. Los elementos mostrados en software pueden ser implementados en hardware y viceversa.

Claims (22)

1. Un procedimiento para tratar una o más imágenes de video, comprendiendo el procedimiento:
obtener unos parámetros de fundido (1060/1150) que comprenden un parámetro (C) de escalado de luminancia y un parámetro (B) de desplazamiento de luminancia;
efectuar una compensación de fundido (1070/1130) calculando diversos valores de píxel remapeados, en los cuales los diversos valores de píxel remapeados están basados, al menos en parte, en el remapeo de diversos valores de píxel originales usados en una imagen de video de referencia original en términos de dicho parámetro de escalado de luminancia y dicho parámetro de desplazamiento de luminancia, en los cuales los diversos valores de píxel remapeados incluyen diversos valores de crominancia remapeados, y
efectuar una compensación de movimiento (1080/1160) para una parte al menos de una imagen de video actual usando los diversos valores de píxel remapeados
caracterizado porque
el remapeo de los diversos valores de crominancia remapeados usa dicho parámetro (C) de escalado de luminancia y la media de los valores de crominancia de la imagen de video de referencia original.
2. El procedimiento de la reivindicación 1, en el cual el remapeo de los diversos valores de crominancia remapeados comprende:
ajustar los diversos valores de crominancia originales de los diversos valores de píxel originales usando la media de los valores de crominancia de la imagen de video de referencia original;
escalar los valores de crominancia ajustados usando el parámetro de escalado; y
desplazar los valores de crominancia ajustados y escalados usando la media de los valores de crominancia de la imagen de video de referencia original.
3. El procedimiento de la reivindicación 2, en el cual se define que la media de los valores de crominancia es 128, que es la media para la representación con 8 bits sin signo de los valores de crominancia.
4. El procedimiento de la reivindicación 2, en el cual la media de los valores de crominancia se calcula como promedio de los diversos valores de crominancia originales en la imagen de video de referencia original.
5. El procedimiento de cualquiera de las reivindicaciones 1-4, en el cual el parámetro de escalado es un parámetro de contraste.
6. El procedimiento de cualquiera de las reivindicaciones 1-5, en el cual no se señaliza el valor medio de la crominancia.
7. El procedimiento de la reivindicación 1, en el cual el parámetro de escalado es un parámetro de contraste y el parámetro de desplazamiento es un parámetro de brillo, en el cual los diversos valores de píxel remapeados incluyen adicionalmente diversos valores de luminancia remapeados, y en el cual el remapeo de los diversos valores de luminancia remapeados usa el parámetro de contraste y el parámetro de brillo.
8. El procedimiento de la reivindicación 7, en el cual el parámetro de escalado y el parámetro de desplazamiento especifican una transformada lineal a nivel de píxel que comprende:
escalar los diversos valores de luminancia originales de los diversos valores de píxel originales usando el parámetro de contraste; y
desplazar los valores de luminancia escalados usando el parámetro de brillo.
9. El procedimiento de las reivindicaciones 7 u 8, en el cual el parámetro de contraste es mayor que 0,5 aproximadamente y menor que 1,5 aproximadamente, y en el cual el parámetro de brillo es mayor que -32 aproximadamente y menor que 31 aproximadamente.
10. El procedimiento de cualquiera de las reivindicaciones 7-9, en el cual la compensación de fundido (1070/1130) incluye multiplicar por el parámetro de contraste y sumar el parámetro de brillo al resultado.
11. El procedimiento de cualquiera de las reivindicaciones 7-10, en el cual el parámetro de contraste es un parámetro de ponderación y el parámetro de brillo es un parámetro de decalaje.
12. El procedimiento de la reivindicación 7, en el cual los parámetros de fundido (1060/1150) especifican una transformada lineal que comprende:
escalar los diversos valores de luminancia originales de los diversos valores de píxel originales usando el parámetro de contraste, en donde el parámetro de contraste es -1; y
desplazar los valores de luminancia escalados usando un parámetro de brillo modificado.
13. El procedimiento de cualquiera de las reivindicaciones 1-12, en el cual la al menos una parte de la imagen de video actual comprende uno o más bloques.
14. El procedimiento de cualquiera de las reivindicaciones 1-12, en el cual la al menos una parte de la imagen de video actual comprende uno o más macrobloques.
15. El procedimiento de cualquiera de las reivindicaciones 1-14, en el cual los diversos valores de píxel remapeados están en una imagen de video de referencia remapeada usada para la predicción de las subsiguientes imágenes de video bidireccionalmente predichas.
16. El procedimiento de cualquiera de las reivindicaciones 1-14, en el cual los diversos valores de píxel remapeados están en una imagen de video de referencia remapeada, y en el cual la imagen de video de referencia remapeada es un fotograma I remapeado.
17. El procedimiento de cualquiera de las reivindicaciones 1-14, en el cual los diversos valores de píxel remapeados están en una imagen de video de referencia remapeada, y en el cual la imagen de video de referencia remapeada es un fotograma P remapeado.
18. El procedimiento de cualquiera de las reivindicaciones 1-17, en el cual los parámetros de fundido (1060/1150) están codificados en longitud fija.
19. El procedimiento de cualquiera de las reivindicaciones 1-17, en el cual al menos uno de los parámetros de fundido (1060/1150) está codificado en longitud variable.
20. El procedimiento de cualquiera de las reivindicaciones 1-19, en el cual el procedimiento se efectúa durante la decodificación del video.
21. El procedimiento de cualquiera de las reivindicaciones 1-19, en el cual el procedimiento se efectúa durante la codificación del video.
22. Un medio legible informáticamente que almacena instrucciones ejecutables informáticamente para conseguir que un sistema informático programado con las mismas efectúe el procedimiento de cualquier reivindicación precedente.
ES03008064T 2002-05-03 2003-04-14 Procedimiento de codificacion de video con compensacion de fundido. Expired - Lifetime ES2275037T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US378958 1982-05-17
US37762802P 2002-05-03 2002-05-03
US377628P 2002-05-03
US10/378,958 US7277486B2 (en) 2002-05-03 2003-03-03 Parameterization for fading compensation

Publications (1)

Publication Number Publication Date
ES2275037T3 true ES2275037T3 (es) 2007-06-01

Family

ID=29219038

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03008064T Expired - Lifetime ES2275037T3 (es) 2002-05-03 2003-04-14 Procedimiento de codificacion de video con compensacion de fundido.

Country Status (9)

Country Link
US (9) US7277486B2 (es)
EP (1) EP1359764B1 (es)
JP (1) JP4425563B2 (es)
KR (1) KR100643819B1 (es)
CN (2) CN1280709C (es)
AT (1) ATE344593T1 (es)
DE (1) DE60309375T2 (es)
ES (1) ES2275037T3 (es)
HK (1) HK1060243A1 (es)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4015934B2 (ja) 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
US7277486B2 (en) * 2002-05-03 2007-10-02 Microsoft Corporation Parameterization for fading compensation
US8009739B2 (en) * 2003-09-07 2011-08-30 Microsoft Corporation Intensity estimation/compensation for interlaced forward-predicted fields
US7983835B2 (en) 2004-11-03 2011-07-19 Lagassey Paul J Modular intelligent transportation system
US7379076B2 (en) * 2004-07-15 2008-05-27 Microsoft Corporation Using pixel homogeneity to improve the clarity of images
KR100782815B1 (ko) * 2005-08-09 2007-12-06 삼성전자주식회사 인텐서티 보상을 위한 영상 디코딩 방법 및 장치
US8239766B2 (en) * 2005-09-27 2012-08-07 Qualcomm Incorporated Multimedia coding techniques for transitional effects
KR100757374B1 (ko) * 2006-03-02 2007-09-11 삼성전자주식회사 픽셀 데이터 압축 방법 및 이를 이용한 픽셀 데이터 압축장치
WO2008028333A1 (en) * 2006-09-01 2008-03-13 Thomson Licensing Method and apparatus for encoding a flash picture occurring in a viedo sequence, and for decoding corresponding data for a flash picture
US9456223B2 (en) * 2006-10-18 2016-09-27 Thomson Licensing Local illumination and color compensation without explicit signaling
US8352982B2 (en) * 2008-01-18 2013-01-08 Microsoft Corporation Service substitution techniques
JP5156704B2 (ja) 2008-07-29 2013-03-06 パナソニック株式会社 画像符号化装置、画像符号化方法、集積回路及びカメラ
CN101765014B (zh) * 2008-12-23 2012-06-27 联咏科技股份有限公司 产生重新取样参考画面的装置及其方法与影像解码系统
US8269885B2 (en) * 2009-04-03 2012-09-18 Samsung Electronics Co., Ltd. Fade in/fade-out fallback in frame rate conversion and motion judder cancellation
JP5368631B2 (ja) 2010-04-08 2013-12-18 株式会社東芝 画像符号化方法、装置、及びプログラム
KR101885258B1 (ko) 2010-05-14 2018-08-06 삼성전자주식회사 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
WO2012031107A1 (en) 2010-09-03 2012-03-08 Dolby Laboratories Licensing Corporation Method and system for illumination compensation and transition for video coding and processing
US9628790B1 (en) 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
US9635371B2 (en) * 2013-05-31 2017-04-25 Qualcomm Incorporated Determining rounding offset using scaling factor in picture resampling
US9313493B1 (en) * 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US9986236B1 (en) * 2013-11-19 2018-05-29 Google Llc Method and apparatus for encoding a block using a partitioned block and weighted prediction values
US9609343B1 (en) 2013-12-20 2017-03-28 Google Inc. Video coding using compound prediction
US9807416B2 (en) 2015-09-21 2017-10-31 Google Inc. Low-latency two-pass video coding
US10645359B2 (en) 2015-12-16 2020-05-05 B<>Com Method for processing a digital image, device, terminal equipment and associated computer program
JP6742417B2 (ja) * 2015-12-16 2020-08-19 ベー−コムB Com デジタル画像の処理方法、付随する装置、端末機器およびコンピュータプログラム
US10469841B2 (en) * 2016-01-29 2019-11-05 Google Llc Motion vector prediction using prior frame residual
US10306258B2 (en) 2016-01-29 2019-05-28 Google Llc Last frame motion vector partitioning
WO2019205117A1 (en) * 2018-04-28 2019-10-31 Intel Corporation Weighted prediction mechanism

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03145392A (ja) 1989-10-31 1991-06-20 Nec Corp 動き補償フレーム間符号化・復号化方法とその符号化装置・復号化装置
US5510840A (en) * 1991-12-27 1996-04-23 Sony Corporation Methods and devices for encoding and decoding frame signals and recording medium therefor
US5245436A (en) 1992-02-14 1993-09-14 Intel Corporation Method and apparatus for detecting fades in digital video sequences
JPH0646412A (ja) 1992-07-24 1994-02-18 Victor Co Of Japan Ltd 動画像予測符号化方法及び復号方法
US5461420A (en) * 1992-09-18 1995-10-24 Sony Corporation Apparatus for coding and decoding a digital video signal derived from a motion picture film source
US5598514A (en) * 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
JP3795932B2 (ja) 1994-05-19 2006-07-12 富士写真フイルム株式会社 画像データ圧縮符号化方法および装置
US5568167A (en) * 1994-09-23 1996-10-22 C-Cube Microsystems, Inc. System for providing antialiased video overlays
US5825929A (en) 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
GB9607645D0 (en) 1996-04-12 1996-06-12 Snell & Wilcox Ltd Processing of video signals prior to compression
JPH1042195A (ja) * 1996-04-27 1998-02-13 Victor Co Of Japan Ltd 映像切換え装置
JP2938412B2 (ja) 1996-09-03 1999-08-23 日本電信電話株式会社 動画像の輝度変化補償方法、動画像符号化装置、動画像復号装置、動画像符号化もしくは復号プログラムを記録した記録媒体および動画像の符号化データを記録した記録媒体
US6266370B1 (en) * 1996-09-03 2001-07-24 Nippon Telegraph And Telephone Corporation Brightness-variation compensation method and coding/decoding apparatus for moving pictures
US6094455A (en) 1996-09-25 2000-07-25 Matsushita Electric Industrial Co., Ltd. Image compression/encoding apparatus and system with quantization width control based on bit generation error
EP0945023B1 (en) 1996-12-10 2002-09-18 BRITISH TELECOMMUNICATIONS public limited company Video coding
US6735253B1 (en) * 1997-05-16 2004-05-11 The Trustees Of Columbia University In The City Of New York Methods and architecture for indexing and editing compressed video over the world wide web
JP3911768B2 (ja) * 1997-06-02 2007-05-09 ソニー株式会社 画像符号化方法及び画像符号化装置
US6195458B1 (en) * 1997-07-29 2001-02-27 Eastman Kodak Company Method for content-based temporal segmentation of video
US5978029A (en) * 1997-10-10 1999-11-02 International Business Machines Corporation Real-time encoding of video sequence employing two encoders and statistical analysis
US6002400A (en) 1997-11-19 1999-12-14 International Business Machines Corporation Method and apparatus for handles to components in graphical windows user interface
US6100940A (en) 1998-01-21 2000-08-08 Sarnoff Corporation Apparatus and method for using side information to improve a coding system
US6192154B1 (en) * 1998-01-26 2001-02-20 International Business Machines Corporation Two-pass encoding method of digital motion video sequences for constant-or variable bit rate
US6278735B1 (en) * 1998-03-19 2001-08-21 International Business Machines Corporation Real-time single pass variable bit rate control strategy and encoder
US6268864B1 (en) * 1998-06-11 2001-07-31 Presenter.Com, Inc. Linking a video and an animation
JP2000059792A (ja) 1998-08-06 2000-02-25 Pioneer Electron Corp 動画像信号の高能率符号化装置
JP3166716B2 (ja) * 1998-08-12 2001-05-14 日本電気株式会社 フェード画像対応動画像符号化装置及び符号化方法
US6466624B1 (en) * 1998-10-28 2002-10-15 Pixonics, Llc Video decoder with bit stream based enhancements
US6223278B1 (en) * 1998-11-05 2001-04-24 Intel Corporation Method and apparatus for floating point (FP) status word handling in an out-of-order (000) Processor Pipeline
EP1069779B1 (en) * 1999-02-09 2016-04-13 Sony Corporation Coding system and its method
JP3957915B2 (ja) 1999-03-08 2007-08-15 パイオニア株式会社 フェード検出装置及び情報符号化装置
JP2001231045A (ja) 2000-02-15 2001-08-24 Nec Corp 動画像符号化および復号化装置
JP2001292372A (ja) * 2000-04-04 2001-10-19 Pioneer Electronic Corp 画像変化検出装置及び画像変化検出方法、画像符号化装置並びに画像変化検出用プログラムがコンピュータで読取可能に記録された情報記録媒体
CN1193618C (zh) 2000-07-13 2005-03-16 皇家菲利浦电子有限公司 用于运动估算的预处理方法
JP4328000B2 (ja) 2000-08-02 2009-09-09 富士通株式会社 動画像符号化装置および動画像の特殊効果シーン検出装置
US6944226B1 (en) * 2000-10-03 2005-09-13 Matsushita Electric Corporation Of America System and associated method for transcoding discrete cosine transform coded signals
US6771311B1 (en) * 2000-12-11 2004-08-03 Eastman Kodak Company Automatic color saturation enhancement
US6959044B1 (en) * 2001-08-21 2005-10-25 Cisco Systems Canada Co. Dynamic GOP system and method for digital video encoding
JP4015934B2 (ja) * 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
US7609767B2 (en) 2002-05-03 2009-10-27 Microsoft Corporation Signaling for fading compensation
US7277486B2 (en) * 2002-05-03 2007-10-02 Microsoft Corporation Parameterization for fading compensation
KR20050061762A (ko) * 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
JP4236654B2 (ja) * 2005-09-13 2009-03-11 株式会社東芝 動画像符号化装置及びその方法
JP4764136B2 (ja) * 2005-10-31 2011-08-31 富士通セミコンダクター株式会社 動画像符号化装置、及びフェードシーン検出装置
US8046364B2 (en) * 2006-12-18 2011-10-25 Veripat, LLC Computer aided validation of patent disclosures
GB2447058A (en) * 2007-02-28 2008-09-03 Tandberg Television Asa Compression of video signals containing fades and flashes
US20110059757A1 (en) * 2009-09-08 2011-03-10 Cequint, Inc. Systems and methods for automatic delivery of 411 caller information
US9161058B2 (en) * 2010-03-27 2015-10-13 Texas Instruments Incorporated Method and system for detecting global brightness change for weighted prediction in video encoding
WO2012031107A1 (en) * 2010-09-03 2012-03-08 Dolby Laboratories Licensing Corporation Method and system for illumination compensation and transition for video coding and processing
JP6087747B2 (ja) * 2013-06-27 2017-03-01 Kddi株式会社 映像符号化装置、映像復号装置、映像システム、映像符号化方法、映像復号方法、およびプログラム
US11323730B2 (en) * 2019-09-05 2022-05-03 Apple Inc. Temporally-overlapped video encoding, video decoding and video rendering techniques therefor

Also Published As

Publication number Publication date
US20120307910A1 (en) 2012-12-06
CN1941911A (zh) 2007-04-04
US20210337213A1 (en) 2021-10-28
EP1359764A3 (en) 2004-08-11
JP4425563B2 (ja) 2010-03-03
CN1941911B (zh) 2010-12-15
EP1359764A2 (en) 2003-11-05
US10264284B2 (en) 2019-04-16
US9843822B2 (en) 2017-12-12
US7277486B2 (en) 2007-10-02
US20190200042A1 (en) 2019-06-27
US20180184124A1 (en) 2018-06-28
US20030206592A1 (en) 2003-11-06
US11089311B2 (en) 2021-08-10
JP2004007649A (ja) 2004-01-08
EP1359764B1 (en) 2006-11-02
US20160323601A1 (en) 2016-11-03
KR20030086905A (ko) 2003-11-12
US20200404292A1 (en) 2020-12-24
US20080037657A1 (en) 2008-02-14
ATE344593T1 (de) 2006-11-15
US9363536B2 (en) 2016-06-07
CN1280709C (zh) 2006-10-18
DE60309375T2 (de) 2007-02-15
CN1487408A (zh) 2004-04-07
HK1060243A1 (en) 2004-07-30
US10805616B2 (en) 2020-10-13
US11451794B2 (en) 2022-09-20
US20210337212A1 (en) 2021-10-28
US8265148B2 (en) 2012-09-11
KR100643819B1 (ko) 2006-11-10
DE60309375D1 (de) 2006-12-14
US11451793B2 (en) 2022-09-20

Similar Documents

Publication Publication Date Title
ES2275037T3 (es) Procedimiento de codificacion de video con compensacion de fundido.
JP4102841B2 (ja) ビデオ画像を処理するコンピュータ実行方法
ES2623298T3 (es) Filtrado de vídeo de post-procesamiento controlado por flujo de bits
RU2683165C1 (ru) Внутреннее предсказание блочного копирования с асимметричными разделами и схемами поиска на стороне кодера, диапазоны поиска и подходы к разделению
ES2269850T3 (es) Redondeos del vector de movimiento de crominancia.
KR100578433B1 (ko) 페이딩 추정/보정
JP3570863B2 (ja) 動画像復号化装置および動画像復号化方法
JPH07288474A (ja) ベクトル量子化符号化装置と復号化装置
JP2007151062A (ja) 画像符号化装置、画像復号装置及び画像処理システム
JP2022066678A (ja) イントラ予測装置、符号化装置、復号装置、及びプログラム
EP1746840A2 (en) Parameterization for fading compensation