ES2275037T3 - Procedimiento de codificacion de video con compensacion de fundido. - Google Patents
Procedimiento de codificacion de video con compensacion de fundido. Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/93—Run-length coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio 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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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)
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)
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 |
-
2003
- 2003-03-03 US US10/378,958 patent/US7277486B2/en active Active
- 2003-04-14 DE DE60309375T patent/DE60309375T2/de not_active Expired - Lifetime
- 2003-04-14 EP EP03008064A patent/EP1359764B1/en not_active Expired - Lifetime
- 2003-04-14 AT AT03008064T patent/ATE344593T1/de not_active IP Right Cessation
- 2003-04-14 ES ES03008064T patent/ES2275037T3/es not_active Expired - Lifetime
- 2003-04-28 KR KR1020030026668A patent/KR100643819B1/ko active IP Right Grant
- 2003-04-30 CN CNB031241611A patent/CN1280709C/zh not_active Expired - Lifetime
- 2003-04-30 CN CN2006101413844A patent/CN1941911B/zh not_active Expired - Lifetime
- 2003-05-06 JP JP2003128415A patent/JP4425563B2/ja not_active Expired - Lifetime
-
2004
- 2004-05-05 HK HK04103161A patent/HK1060243A1/xx not_active IP Right Cessation
-
2007
- 2007-08-14 US US11/838,758 patent/US8265148B2/en active Active
-
2012
- 2012-08-13 US US13/584,671 patent/US9363536B2/en active Active
-
2016
- 2016-05-09 US US15/149,796 patent/US9843822B2/en not_active Expired - Lifetime
-
2017
- 2017-11-10 US US15/809,449 patent/US10264284B2/en not_active Expired - Lifetime
-
2019
- 2019-03-01 US US16/290,418 patent/US10805616B2/en not_active Expired - Lifetime
-
2020
- 2020-09-04 US US17/012,900 patent/US11089311B2/en not_active Expired - Lifetime
-
2021
- 2021-07-07 US US17/369,764 patent/US11451793B2/en not_active Expired - Lifetime
- 2021-07-07 US US17/369,800 patent/US11451794B2/en not_active Expired - Lifetime
Also Published As
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 |