ES2334507T3 - Proceso para la descompresion de videos con base en el objeto empleando caracteristicas conformadas arbitrariamente. - Google Patents
Proceso para la descompresion de videos con base en el objeto empleando caracteristicas conformadas arbitrariamente. Download PDFInfo
- Publication number
- ES2334507T3 ES2334507T3 ES05013280T ES05013280T ES2334507T3 ES 2334507 T3 ES2334507 T3 ES 2334507T3 ES 05013280 T ES05013280 T ES 05013280T ES 05013280 T ES05013280 T ES 05013280T ES 2334507 T3 ES2334507 T3 ES 2334507T3
- Authority
- ES
- Spain
- Prior art keywords
- video
- video object
- pixels
- time
- pixel
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/20—Contour coding, e.g. using detection of edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
- G06V10/7515—Shifting the patterns to accommodate for positional errors
-
- 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/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/23—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
-
- 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/537—Motion estimation other than block-based
-
- 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/537—Motion estimation other than block-based
- H04N19/54—Motion estimation other than block-based using feature points or meshes
-
- 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/537—Motion estimation other than block-based
- H04N19/543—Motion estimation other than block-based using regions
-
- 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/563—Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- 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/649—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding the transform being applied to non rectangular image segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- 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/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Algebra (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Television Systems (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Ultra Sonic Daignosis Equipment (AREA)
- Picture Signal Circuits (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
- Oscillators With Electromechanical Resonators (AREA)
- Steroid Compounds (AREA)
- Auxiliary Devices For And Details Of Packaging Control (AREA)
- Vending Machines For Individual Products (AREA)
- Image Processing (AREA)
Abstract
Un método de descodificar objetos de vídeo plurales en una secuencia de vídeo, para usar en un descodificador de vídeo basados en objetos, donde el método abarca: la recepción de datos codificados para los objetos de vídeo plurales en la secuencia de vídeo, en donde los objetos de vídeo plurales incluyen un primer objeto de vídeo y un segundo objeto de vídeo, y en donde los datos codificados incluyen: datos intracodificados para el primer objeto de vídeo, en donde los datos intracodificados para el primer objeto de vídeo abarcan un sprite, el cual abarca a su vez un mapa de bits formado de la combinación de valores del píxel para los píxeles del primer objeto de vídeo en diversos momentos plurales en la secuencia de vídeo de modo que el mapa de bits representa porciones del primer objeto de vídeo que son visibles en alguno, pero no necesariamente en todos los diversos momentos plurales; una o más máscaras que definen la forma del primer objeto de vídeo; uno o más parámetros de trayectoria para el primer objeto de vídeo en uno o más de los diversos momentos plurales, en donde el o los parámetros de trayectoria indican transformaciones para calcular valores de píxeles para píxeles del primer objeto de vídeo del sprite; datos intracodificados para el segundo objeto de vídeo; una o más máscaras que definen la forma del segundo objeto de vídeo; por lo menos uno de los diversos momentos plurales, uno o más parámetros de movimiento que indican transformaciones para calcular valores de píxeles para los píxeles del segundo objeto de vídeo; y una o más señales de error para el segundo objeto de vídeo para al menos uno de los diversos momentos plurales; la descodificación del sprite para el primer objeto de vídeo; la descodificación del primer objeto de vídeo la primera vez de los diversos momentos plurales, incluyendo la utilización de uno o más parámetros de trayectoria para el primer objeto de vídeo la primera vez para calcular los valores del píxel para los píxeles del primer objeto de vídeo la primera vez del sprite para el primer objeto de vídeo, en donde la o las máscaras que definen la forma del primer objeto de vídeo indican qué píxeles son parte del primer objeto de vídeo la primera vez; la descodificación del segundo objeto de. vídeo la primera vez, en donde la o las máscaras que definen la forma del segundo objeto de vídeo indican qué píxeles son parte del segundo objeto de vídeo la primera vez; y la descodificación del segundo objeto de vídeo la segunda vez de los diversos momentos plurales, incluyendo la utilización de uno o más parámetros de movimiento para el segundo objeto de vídeo la segunda vez para calcular los valores del píxel para los píxeles del segundo objeto de vídeo la segunda vez del segundo objeto de vídeo descodificado la primera vez, e incluyendo también la combinación de los valores del píxel calculados para los píxeles del segundo objeto de vídeo la segunda vez con una señal de error para el segundo objeto de vídeo la segunda vez, en donde la o las máscaras que definen la forma del segundo objeto de vídeo indican qué píxeles son parte del segundo objeto de vídeo la segunda vez.
Description
Proceso para descompresión de vídeos con base en
el objeto empleando características conformadas arbitrariamente.
La presente invención se refiere a los procesos
para comprimir señales de vídeo digital y, más concretamente, a un
proceso de codificación de vídeo digital basado en objetos con un
feedback de error para aumentar la precisión.
Las pantallas de vídeo dinámicas basadas en
señales de vídeo analógicas llevan tiempo disponibles bajo la forma
de televisión. Las pantallas de vídeo dinámicas basadas en señales
de vídeo digital proliferan cada vez más en el mercado, debido a
que son más asequibles, así como a un aumento de las capacidades de
procesado de los ordenadores. Los sistemas de vídeo digital pueden
proporcionar mejoras significativas con respecto a los sistemas de
vídeo analógicos convencionales a la hora de crear, modificar,
transmitir, almacenar y reproducir secuencias de vídeo
dinámicas.
Las pantallas de vídeo digital incluyen una gran
cantidad de cuadros de imagen que se reproducen o renderizan
sucesivamente a una frecuencia de entre 30 Hz y 75 Hz. Cada cuadro
de imagen es una imagen fija formada a partir de una matriz de
píxeles según la resolución de pantalla de un sistema concreto. A
modo de ejemplo, los sistemas basados en VHS tienen resoluciones de
pantalla de 320x480 píxeles, los sistemas basados en NTSC tienen
resoluciones de pantalla de 720x486 píxeles y los sistemas de
televisión de alta definición (HDTV) que están todavía en desarrollo
disponen de resoluciones de pantalla de 1360x1024 píxeles.
Las cantidades de información digital nativa
incluida en las secuencias de vídeo son enormes. El almacenamiento
y transmisión de estas cantidades de información de vídeo no es
factible con un ordenador personal convencional. En cuanto a una
forma digitalizada de un formato de imagen VHS de resolución
relativamente baja con una resolución de 320x480 píxeles, una
imagen en movimiento de una duración de dos horas podría
corresponder a 100 gigabytes de información de vídeo digital. En
comparación, los discos ópticos compactos convencionales tienen
capacidades de casi 0,6 gigabytes, los discos duros magnéticos
tienen capacidades de 1-2 gigabytes, y los discos
ópticos en desarrollo disponen de capacidades de hasta 8
gigabytes.
En respuesta a las limitaciones a la hora de
almacenar o transmitir tales enormes cantidades de información de
vídeo digital, se han establecido diversos estándares o procesos de
compresión de vídeo como es el caso del MPEG-1,
MPEG-2. y H.26X. Estas técnicas convencionales de
compresión de vídeo se sirven de las similitudes entre los cuadros
de imagen sucesivos, denominadas correlación intercuadros o temporal
para ofrecer la compresión intercuadros en que las representaciones
basadas en píxeles de los cuadros de imagen se convierten en
representaciones de movimiento. Además, las técnicas de compresión
de vídeo convencionales se sirven de similitudes dentro de los
cuadros de imagen, conocidas como correlación intracuadros o
correlación espacial, para proporcionar la compresión intracuadros
en la cual las representaciones de movimiento dentro de un cuadro de
imagen se comprimen aún más. La compresión intracuadros se basa en
los procesos convencionales para comprimir imágenes fijas, tales
como la codificación de la transformada de coseno discreta
(DCT).
Aunque difieran en implementaciones específicas,
los estándares de compresión de vídeo MPEG-1,
MPEG-2 y H.26X comparten algunos aspectos parecidos.
La siguiente descripción del estándar de compresión de vídeo
MPEG-2 se puede aplicar normalmente al resto.
MPEG-2 ofrece compresión
intercuadros y una compresión intracuadros basada en bloques
cuadrados o matrices de píxeles en imágenes de vídeo. Una imagen de
vídeo se divide en bloques de transformación que tienen dimensiones
de 16x16 píxeles. Para cada bloque de transformación T_{N} en un
cuadro de imagen N se realiza una búsqueda a través de la imagen de
un cuadro de imagen N-1 inmediatamente precedente o
también un cuadro de vídeo sucesivo N+1 posterior (es decir,
bidireccional) para identificar los bloques de transformación
T_{N} o T_{N+1} más parecidos.
Idealmente, y por lo que respecta a una búsqueda
del siguiente cuadro de imagen sucesivo, los píxeles en los bloques
de transformación T_{N} y T_{N+1} son idénticos, incluso si los
bloques de transformación tienen diversas posiciones en sus
respectivos cuadros de imagen. Bajo esas circunstancias, la
información del píxel en el bloque de transformación T_{N} es
redundante con respecto a la del bloque de transformación T_{N}.
La compresión se alcanza sustituyendo la traslación posicional
entre los bloques de transformación T_{N} y
T_{N-1} para la información del píxel en el bloque
de transformación T_{N-1}. En este ejemplo
simplificado, se designa un solo vector de traslación (\DeltaX,
\DeltaY) para la información de vídeo asociada a los 256 píxeles
en el bloque de transformación T_{N-1}.
Con frecuencia, la información de vídeo (es
decir, píxeles) en los correspondientes bloques de transformación
T_{N} y T_{N-1} no son idénticos. La diferencia
entre ellos se designa un error de bloque de transformación E, que
a menudo es significativo. Aunque se comprima mediante un proceso de
compresión convencional como la codificación de la transformada de
coseno discreta (DCT), el error de bloque de transformación E es
incómodo y limita el grado (cociente) y la precisión que permite la
compresión de las señales de vídeo.
Los errores graves del bloque de transformación
E se presentan en métodos de compresión de vídeo basados en bloques
por diversas razones. La valoración de movimiento basada en bloques
representa solamente el movimiento de traslación entre sucesivos
cuadros de imagen. El único cambio entre los correspondientes
bloques de transformación T_{N} y T_{N-1} que
se puede representar son los cambios en las posiciones relativas de
los bloques de transformación. Una desventaja de dichas
representaciones es que las secuencias de vídeo dinámicas incluyen
con frecuencia movimientos complejos diferentes de la traslación,
como rotación, ampliación y recortado. La representación de dichos
movimientos complejos con aproximaciones de traslación simples da
lugar a errores significativos.
Otro aspecto de las pantallas de vídeo es que
normalmente incluyen múltiples objetos o características de imagen
que se mueven o cambian unos con respecto a otros. Los objetos
pueden ser distintos personajes, artículos, o escenarios dentro de
una pantalla de vídeo. Por lo qué respecta a una escena en una
imagen en movimiento, por ejemplo, cada uno de los personajes (es
decir, actores) y de los artículos (es decir, atrezzo) en la escena
podría ser un objeto diferente.
El movimiento relativo entre los objetos en una
secuencia de vídeo es otra fuente de los errores bloque de
transformación E significativos en los procesos de compresión de
vídeo convencionales. Debido a la configuración y tamaño habitual
de los bloques de transformación, muchos de ellos abarcan partes de
diversos objetos. El movimiento relativo entre los objetos durante
cuadros de imagen sucesivos puede dar lugar a una correlación
extremadamente baja (es decir, elevados errores de transformación E)
entre los correspondientes bloques de transformación. Igualmente,
el aspecto de las partes de los objetos en los sucesivos cuadros de
imagen (por ejemplo, cuando un personaje se da la vuelta) también
presenta elevados errores de transformación E.
Los métodos convencionales de compresión de
vídeo aparecen estar intrínsecamente limitados debido al tamaño de
los errores de transformación E. Con el aumento de la demanda de las
capacidades de visualización de vídeo digital, se requieren procesos
de compresión de vídeo digital mejorados.
La presente invención incluye un proceso
codificador de compresión de vídeo para comprimir señales de vídeo
digitalizadas que representan el movimiento en secuencias de vídeo
de múltiples cuadros de imagen. El proceso codificador utiliza la
compresión de vídeo basada en objetos para mejorar la precisión y
versatilidad de las características de imagen intracuadros y de
movimiento intercuadros de codificación. La información de vídeo se
comprime en relación con los objetos de configuraciones arbitrarias,
en vez de fijas, matrices de píxeles habituales como en los métodos
convencionales de compresión de vídeo. Esto reduce los componentes
de error y por tanto, mejora la eficacia y precisión de compresión.
Como ventaja adicional, la compresión de vídeo basada en objetos de
esta invención proporciona las capacidades de edición interactiva de
vídeo para procesar información de vídeo comprimida.
En una representación preferencial, el proceso o
método de esta invención incluye la identificación de
características de la imagen de configuración arbitraria en un
primer cuadró de imagen de vídeo y la definición dentro de la
característica de imagen de los múltiples y distintivos puntos de
característica. Los puntos de característica de la característica
de imagen en el primer cuadro de imagen de vídeo se correlacionan
con los correspondientes puntos de característica de la
característica de imagen en un siguiente segundo cuadro de imagen de
vídeo, para así determinar una estimación de la característica de
imagen en el segundo cuadro de imagen de vídeo. Una diferencia
entre la característica de imagen estimada y la real en el segundo
cuadro de imagen de vídeo viene determinada y codificada en un
formato comprimido.
El proceso codificador de esta invención supera
los defectos de los métodos convencionales de compresión de vídeo
basados en bloques. El proceso codificador utiliza preferiblemente
un método multidimensional de transformación para representar el
trazado entre los objetos correspondientes en los sucesivos cuadros
de imagen. Las dimensiones múltiples de la transformación hacen
referencia al número de coordenadas en su forma generalizada. La
transformación multidimensional es capaz de representar el
movimiento complejo que incluye parte o la totalidad de la
traslación, rotación, ampliación y recorte. En consecuencia, el
movimiento complejo de los objetos entre sucesivos cuadros de
imagen se puede representar con un margen de error de transformación
relativamente bajo.
Otra fuente de error en los métodos de
compresión convencionales de vídeo basados en bloques es el
movimiento entre los objetos incluidos dentro de un bloque de
transformación. La codificación o compresión de vídeo basada en
objetos de esta invención elimina de manera sustancial el movimiento
relativo entre los objetos dentro de los bloques de transformación.
En consecuencia, el error de transformación que se origina a partir
del movimiento entre objetos también disminuye sustancialmente. Los
errores de transformación baja que se presentan del proceso
codificador de esta invención le permiten proporcionar cocientes de
compresión un 300% superior a los conseguidos con procesos
codificadores anteriores como el MPEG-2.
Toda la información que antecede y las
características y beneficios de la representación preferencial de la
presente invención serán más evidentes una vez se exponga la
siguiente descripción detallada, a la que le siguen unas
ilustraciones adjuntas.
\newpage
La figura 1 es un diagrama por bloques de un
ordenador que se puede utilizar para implementar un método y un
aparato que incorpore la invención.
Las figuras 2A y 2B son representaciones
simplificadas de la pantalla de un dispositivo de visualización de
vídeo que muestra dos cuadros de imagen sucesivos correspondientes a
una señal de vídeo.
La figura 3A es un diagrama por bloques
funcional generalizado de un proceso codificador de compresión de
vídeo para comprimir señales de vídeo digitalizadas que representan
el movimiento en secuencias de vídeo de múltiples cuadros de imagen.
La figura 3B es un diagrama por bloques funcional de un proceso
codificador de objetos maestros según esta invención.
La figura 4 es un diagrama por bloques funcional
de un proceso de segmentación de objetos para dividir objetos
seleccionados de un cuadro de imagen en una secuencia de vídeo.
La figura 5A es una representación simplificada
de la pantalla del dispositivo de visualización de vídeo de la
figura 2 A, y la figura 5B es una representación ampliada de una
porción de la pantalla de la figura 5A.
La figura 6 es un diagrama por bloques funcional
de un proceso de correspondencia de polígono para determinar un
vector de movimiento para los correspondientes pares de píxeles en
objetos correspondientes en cuadros de imagen sucesivos.
Las figuras 7A y 7B son representaciones
simplificadas de una pantalla que muestra dos cuadros de imagen
sucesivos con dos objetos correspondientes.
La figura 8 es un diagrama por bloques funcional
de un proceso alternativo de correlación de bloque de píxeles.
La figura 9A es una representación esquemática
de un primer bloque de píxeles usado para identificar los píxeles
correspondientes a diversos cuadros de imagen. La figura 9B es una
representación esquemática de una matriz de píxeles que corresponde
a un área de búsqueda en un cuadro de imagen anterior donde se
buscan los píxeles correspondientes. Las figura
9C-9G son representaciones esquemáticas del primer
bloque de píxeles que se ha explorado a través de la matriz de
píxeles de la figura 9B para identificar los píxeles
correspondientes.
La figura 10A es una representación esquemática
de un segundo bloque de píxeles usado para identificar los píxeles
correspondientes en diversos cuadros de imagen. Las figuras
10B-10F son representaciones esquemáticas del
segundo bloque de píxeles que se ha explorado a través de la matriz
de píxeles de la figura 9B para identificar los píxeles
correspondientes.
La figura 11A es una representación esquemática
de un tercer bloque de píxeles usado para identificar los píxeles
correspondientes en diversos cuadros de imagen. Las figuras
11B-11F son representaciones esquemáticas del tercer
bloque de píxeles que se ha explorado a través de la matriz de
píxeles de la figura 9B.
La figura 12 es un diagrama por bloques
funcional de un método de transformación multidimensional que
incluye la generación de un trazado entre los objetos en primeros y
segundos cuadros de imagen sucesivos y la cuantificación del trazado
para la transmisión o el almacenamiento.
La figura 13 es una representación simplificada
de una pantalla que muestra el cuadro de imagen de la figura 7B con
el objeto de ilustrar el método de transformación multidimensional
de la figura 12.
La figura 14 es una representación simplificada
ampliada que muestra tres píxeles seleccionados de un bloque de
transformación empleado en la cuantificación de coeficientes de
transformación afines determinados por el método de figura 12.
La figura 15 es un diagrama por bloques
funcional de un método de optimización del bloque de transformación
empleado en una representación alternativa del método de
transformación multidimensional de la figura 12.
La figura 16 es una representación simplificada
fragmentada de una pantalla que muestra el cuadro de imagen de la
figura 7B con el objeto de ilustrar el método de optimización del
bloque de transformación de la figura 15.
Las figuras 17A y 17B son un diagrama por
bloques funcional de un método de extrapolación de precompresión
para extrapolar características de imagen de una configuración
arbitraria a una configuración predefinida para facilitar la
compresión.
Las figuras 18A-18D son
representaciones de una pantalla en la cual un objeto simple se
renderiza para mostrar varios aspectos del método de extrapolación
de la figura 14.
\newpage
Las figuras 19A y 19B son diagramas por bloques
funcionales de un método codificador y un método descodificador,
respectivamente, empleando un método codificador en pirámide
laplaciano de acuerdo con esta invención.
Las figuras 20A-20D son
representaciones simplificadas de los valores del componente de
color de un conjunto o matriz arbitrario de píxeles procesados de
acuerdo con el proceso codificador de la figura 19A.
La. figura 21 es un diagrama por bloques
funcional de un proceso codificador de vector de movimiento según
esta invención.
La figura 22 es un diagrama por bloques
funcional de un proceso alternativo
codificador-descodificador del objeto
cuantificado.
La figura 23A es un diagrama por bloques
funcional generalizado de un proceso descodificador de compresión de
vídeo emparejado con el proceso codificador de la figura 3. La
figura 23B es un diagrama funcional de un proceso descodificador de
objetos maestros según esta invención.
La figura 24A es una representación diagramática
de un formato convencional de código de cadena. La figura 24B es una
representación simplificada de un ejemplo de contorno para el
procesado con el formato de código de cadena de la figura 24A.
La figura 25A es un diagrama por bloques
funcional de un proceso de codificación de cadena de esta
invención.
La figura 25B es una representación diagramática
de un formato del código de cadena de la presente invención.
La figura 25C es una representación diagramática
de modificaciones del código de cadena de casos especiales usada en
el proceso de la figura 25A.
La figura 26 es un diagrama por bloques
funcional de un proceso de generación o codificación de sprites.
Las figuras 27A y 27B son primeros y segundos
objetos definidos por mapa de bits que muestran parrillas de
triángulos superpuestos sobre los objetos de acuerdo con el proceso
de la figura 26.
La figura 28 es un diagrama por bloques
funcional de un proceso de descodificación de sprites que
corresponde al proceso de codificación de la figura 26.
Por lo que respecta a la figura 1, las
condiciones de funcionamiento de la representación preferencial de
la presente invención es un sistema informático 20, ya sea para
fines generales o específicos, que incluya al menos una unidad
central de procesamiento (CPU) de alta velocidad 22, junto con un
sistema de memoria 24, un dispositivo de entrada 26, y un
dispositivo de salida 28. Estando estos elementos interconectados
mediante una estructura de bus 30.
La CPU 22 ilustrada es de un diseño familiar e
incluye un ALU 32 para realizar cómputos, una colección de
registros 34 para el almacenamiento de datos e instrucciones .
temporales, y una unidad de control 36 para controlar el
funcionamiento del sistema 20. La CPU 22 puede ser un procesador con
una arquitectura de entre una gran variedad que incluye Alpha de
Digital, MIPS de MIPS Technology, NEC, IDT, Siemens, y otras, x86 de
Intel y otros, incluida Cyrix, AMD, y Nexgen, y el PowerPC deJBM y
Motorola.
El sistema de memoria 24 incluye memoria
principal 38 y almacenamiento secundario 40. La memoria principal
38 que se ilustra toma la forma de 16 megabytes de memoria RAM
basada en semiconductores. El almacenamiento secundario 40 toma la
forma de almacenamiento de larga duración, como discos ópticos o
magnéticos ROM, memoria Flash, o cinta. Los expertos en la materia
apreciarán que el sistema de memoria 24 puede incluir muchos otros
componentes alternativos.
Los dispositivos 26,28 de entrada y salida son
también conocidos.,El dispositivo de entrada 26 puede incluir un
teclado, ratón, transductor físico (por ejemplo, un micrófono), etc.
El dispositivo de salida 28 puede abarcar una pantalla, impresora,
transductor (por ejemplo, un altavoz), etc. Algunos dispositivos,
tales como un interfaz de red o un módem, se pueden utilizar como
dispositivos de entrada y/o salida.
Tal y como será de apreciación por parte ,de
aquellos expertos en la materia, el sistema informático 20 incluye
además un sistema operativo y al menos un programa de aplicación. El
sistema operativo consiste en un software capaz de controlar la
distribución y funcionamiento de los recursos del sistema
informático. El programa de aplicación es el software que realiza
una tarea deseada por el usuario, recurriendo a los recursos del
ordenador disponibles a través del sistema operativo. Ambos son
residentes en el sistema de memoria ilustrado 24.
De acuerdo con las prácticas de las personas
expertas en la materia de la programación informática, a
continuación se describe la presente invención en relación a las
representaciones simbólicas de las operaciones que realiza el
sistema informático 20, a menos que se indique lo contrario. Dichas
operaciones se refieren a veces como ejecutadas mediante ordenador.
Como se aprecia, las operaciones que se representan simbólicamente
incluyen la manipulación mediante CPU 22 de las señales eléctricas
que representan los bits de datos y el mantenimiento de los bits de
datos en ubicaciones de memoria del sistema de memoria 24, así como
otro procesamiento de señales. Las ubicaciones de memoria en donde
se mantienen los bits de datos son las ubicaciones físicas que
tienen unas características eléctricas, magnéticas u ópticas
concretas que se corresponden con los bits de datos.
Las figuras 2A y 2B son representaciones
simplificadas de una pantalla 50 de un dispositivo de visualización
de vídeo 52 (por ejemplo, una televisión o un monitor de ordenador)
en donde se muestran dos cuadros de imagen sucesivos 54a y 54b de
una secuencia de imágenes de vídeo representada electrónicamente
mediante la señal de vídeo correspondiente. Las señales de vídeo
pueden estar en cualquiera de una variedad de formatos de señal de
vídeo incluidos formatos de vídeo de televisión analógica como NTSC,
PAL y SECAM, y formatos de señales de vídeo pixeladas o
digitalizadas que normalmente se emplean en pantallas de ordenador
como VGA, CGA, y EGA. Preferiblemente, las señales de vídeo
correspondientes a los cuadros de imagen son de un formato de señal
de vídeo digitalizada, ya sea tal y como se generó originalmente o
de la conversión desde un formato de señal de vídeo analógica tal y
como sabemos por la técnica.
Los cuadros de imagen 54a y 54b incluyen cada
uno una característica de imagen sólida rectangular 56 y una
característica de imagen piramidal 58 ubicadas sobre un fondo 60.
Las características de imagen 56 y 58 en los cuadros de imagen 54a
y 54b tienen diversos aspectos debido a que se oscurecen y muestran
distintas partes. Con objeto de la descripción especificada a
continuación, se alude a la forma particular de una característica
de imagen en un cuadro de imagen como un objeto o, alternativamente,
como una máscara. Por consiguiente, se muestra una característica
de imagen sólida rectangular 56 como objetos rectangulares sólidos
56a y 56b en sus respectivos cuadros de imagen 54a y 54b, y se
muestra una característica de imagen piramidal 58 como objetos 58a y
58b piramidales en sus respectivos cuadros de imagen 54a y 54b.
La característica de imagen piramidal 58 se
muestra con la misma posición y orientación en los cuadros de
imagen 54a y 54b y se mostraría sin movimiento al visualizarse en la
secuencia de vídeo. El sólido rectangular 56 se muestra en los
cuadros 54a y 54b con una orientación y posición diferente con
respecto a la pirámide 58 y se mostraría como si estuviera en
movimiento y rotando con respecto a la pirámide 58 al visualizarse
en la secuencia de vídeo. Estos aspectos de las características de
imagen 58 y 60 son figurados y exagerados. Los cuadros de imagen de
una secuencia de vídeo se visualizan normalmente a velocidades
dentro del rango de 30-80 Hz La percepción del ojo
humano del movimiento de vídeo normalmente requiere más de dos
cuadros de imagen. Los cuadros de imagen 54a y 54b proporcionan,
por tanto, una representación simplificada de una secuencia de vídeo
convencional con el objeto de ilustrar la presente invención. Por
otra parte, como se aprecia, la presente invención no está limitada
de ninguna manera a dichas imágenes de vídeo, características de
imagen o secuencias simplificadas, sino que por el contrario, son
de aplicación a las imágenes y secuencias de vídeo de complejidad
arbitraria.
La figura 3A es un diagrama por bloques
funcional generalizado de un proceso codificador de compresión de
vídeo 64 para comprimir señales de vídeo digitalizadas que
representan el movimiento en secuencias de vídeo de múltiples
cuadros de imagen. La compresión de la información de vídeo (es
decir, las secuencias o señales de vídeo) puede proporcionar
almacenamiento y transmisión económicos de la información de vídeo
digital en aplicaciones como por ejemplo, aplicaciones informáticas
multimedia y aplicaciones de televisión digital o interactiva. Con
objeto de ser lo más concisos posible, los números de referencia
asignados a los bloques de función: del proceso codificador 64 se
intercambian. en relación a los resultados generados por los bloques
de función.
Las técnicas convencionales de compresión de
vídeo utilizan similitudes entre los cuadros de imagen sucesivos,
denominado correlación intercuadros o temporal para ofrecer la
compresión intercuadros en que las representaciones de los cuadros
de imagen basadas en píxeles son convertidas en representaciones de
movimiento. Además, las técnicas de compresión de vídeo
convencionales se sirven de similitudes dentro de los cuadros de
imagen, conocido como correlación intracuadros o correlación
espacial para proporcionar la compresión intracuadros en la cual las
representaciones de movimiento dentro de un cuadro de imagen se
comprimen aún más.
En tales técnicas de compresión de vídeo
convencionales tales como MPEG-1,
MPEG-2, y H.26X, las correlaciones temporales y
espaciales vienen determinadas en relación con traslaciones simples
de matrices de píxeles fijas, regulares (por ejemplo, un cuadrado).
Sin embargo, la información de vídeo incluye comúnmente movimiento
de vídeo arbitrario que no puede representarse con precisión
trasladando matrices cuadradas de píxeles. Por consiguiente, las
técnicas de compresión de vídeo convencionales incluyen normalmente
componentes de error significativos que limitan la velocidad y
precisión de compresión.
En cambio, el proceso codificador 64 utiliza la
compresión de vídeo basada en objetos para mejorar la precisión y
versatilidad de las características de imagen intracuadros y de
movimiento intercuadros de la codificación. El proceso codificador
64 comprime la información de vídeo relativa a los objetos de
configuraciones arbitrarias, en vez de matrices de píxeles fijas y
regulares. Esto reduce los componentes de error y por tanto, mejora
la eficacia y precisión de compresión. Como ventaja adicional, la
compresión de vídeo basada en objetos proporciona las capacidades de
edición interactiva de vídeo para procesar información de vídeo
comprimida.
Por lo que respecta a la figura 3A, el bloque de
función 66 indica que los objetos definidos por el usuario dentro
de los cuadros de imagen de una secuencia de vídeo están divididos a
partir de otros objetos dentro de los cuadros de imagen. Los
objetos pueden tener una configuración arbitraria y representar
preferiblemente distintas características de imagen en una imagen
de pantalla. La segmentación incluye la identificación de los
píxeles en los cuadros de imagen correspondientes a los objetos. Los
objetos definidos por el usuario se definen en cada uno de los
cuadros de imagen de la secuencia de vídeo. En las figuras 2A y 2B,
por ejemplo, los objetos sólidos rectangulares 56a y 56b del sólido
y los objetos piramidales 58a y 58b se dividen por separado.
Los objetos divididos se representan mediante
máscaras "alphachannel" binarias o de múltiples bits (por
ejemplo, 8 bits) de los objetos. Las máscaras de objeto indican la
configuración, el tamaño y la posición de un objeto sobre una base
de píxel por píxel. Con objeto de ser lo más concisos posible, la
siguiente descripción se dirige a las máscaras binarias en las que
cada píxel del objeto se representa por un bit binario suelto en
vez de los típicos 24 bits (es decir, 8 bits para cada uno de
valores de componente tricolor). También se han utilizado máscaras
de múltiples bits (por ejemplo, de 8 bits).
El bloque de función 68 indica que los "puntos
de característica" de cada objeto están definidos por un usuario.
Los puntos de característica son preferiblemente rasgos distintivos
o aspectos del objeto. Por ejemplo, las esquinas
70a-70c y las esquinas 72a-72c
definidas por un usuario como puntos de característica del sólido
rectangular 56 y sólido piramidal 58, respectivamente. Los píxeles
correspondientes a cada máscara de objeto y sus puntos de
característica en cada cuadro de imagen se almacenan en una base de
datos de objetos incluida en el sistema de memoria 24.
El bloque de función 74 indica que los cambios
en las posiciones de los puntos de característica de los cuadros de
imagen sucesivos están identificados y las trayectorias vienen
determinadas para los puntos de característica entre los cuadros de
imagen sucesivos. Las trayectorias representan la dirección y el
alcance del movimiento de los puntos de característica. El bloque
de función 76 indica que las trayectorias de los puntos de
característica en el objeto, entre el cuadro anterior
N-1 y el cuadro actual N también se recuperan de la
base de datos de objetos.
El bloque de función 78 indica que una
transformación de movimiento escaso viene determinada por el objeto
entre el cuadro anterior N-1 y el cuadro actual N.
La transformación de movimiento escaso se basa en las trayectorias
de los puntos de característica entre los cuadros
N-1 y N. La transformación de movimiento escaso
proporciona una aproximación del cambio del objeto entre el cuadro
anterior N-1 y el cuadro actual N.
El bloque de función 80 indica que una máscara
de un objeto en un cuadro actual N se recupera de la base de datos
de objetos del sistema de memoria 24.
El bloque de función 90 indica que un
"sprite" u objeto maestro cuantificado está formado por los
objetos o las máscaras 66 correspondientes a una característica de
imagen en una secuencia del cuadro de imagen y trayectorias del
punto de característica 74. El objeto maestro incluye
preferiblemente todos los aspectos o características de un objeto
tal y como se representa en múltiples cuadros. En cuanto a las
figuras 2A y 2B, por ejemplo, el sólido rectangular 56 en el cuadro
54b incluye un lado 78b que no se muestra en el cuadro 54a.
Igualmente, el sólido rectangular 56 incluye un lado 78 a en el
cuadro 54a que no se muestra en el cuadro 54b. El objeto maestro
para el sólido rectangular 56 incluye ambos lados 78a y 78b.
La transformación de movimiento escaso 78
normalmente no proporcionará una representación completa del cambio
en el objeto entre los cuadros N-1 y el N. Por
ejemplo, un objeto, en un cuadro anterior N-1, como
un objeto rectangular 54a, no podría incluir todas las
características del Objeto en el cuadro actual N, tal y como el lado
78b del objeto rectangular 54b.
Para mejorar la precisión de transformación, por
tanto, se determina una intersección de las máscaras del objeto en
el cuadro anterior N-1 y el cuadro actual N, por
ejemplo mediante una función de lógica AND, tal y como sabemos por
la técnica. La máscara del objeto en el cuadro actual N se resta de
la intersección resultante para identificar todas las porciones o
características del objeto en el cuadro actual N no incluidas en el
objeto del cuadro anterior N-1 (por ejemplo, el lado
78b del objeto rectangular 54b, como se describe anteriormente).
Las porciones recién identificadas del objeto se incorporan al
objeto maestro 90 de modo que incluya una representación completa
del objeto en los cuadros N-1 y N.
El bloque de función 96 indica que una forma
cuantificada de un objeto 98 en un cuadro anterior
N-1 (por ejemplo, objeto sólido rectangular 56a en
el cuadro de imagen 54a) se transforma mediante una transformación
de movimiento denso para proporcionar una forma prevista del objeto
102 en un cuadro actual N (por ejemplo, objeto sólido rectangular
56b en el cuadro de imagen 54b). Esta transformación proporciona la
compresión intercuadros basada en objetos.
La transformación de movimiento denso incluye
preferiblemente la determinación de una transformación afín entre
el objeto anterior cuantificado 98 en el cuadro N-1
y el objeto en el cuadro actual N, así como la aplicación de una
transformación afín al objeto anterior cuantificado 98. La
transformación afín preferencial se representa mediante
coeficientes de transformación afín 104 y es capaz de describir la
traslación, rotación, ampliación, y recorte. La transformación afín
se determina a partir de una valoración de movimiento denso,
preferiblemente que incluya una trazado píxel por píxel, entre el
objeto cuantificado anterior 98 y el objeto del cuadro actual N.
El objeto actual previsto 102 viene representado
por el objeto anterior cuantificado 98, modificado por la
transformación de movimiento denso 96, y que es capaz de representar
el movimiento relativamente complejo, junto con cualquier nuevo
aspecto de la imagen obtenido a partir del objeto maestro 90. Dichas
representaciones basadas en objetos son relativamente precisas,
porque la continuidad perceptiva y espacial asociada a los objetos
elimina los errores causados por las relaciones normalmente
cambiantes entre los diversos objetos en los diferentes cuadros de
imagen. Por otra parte, las representaciones basadas en objetos
permiten a un usuario representar diversos objetos con diferentes
niveles de resolución para optimizar la eficacia relativa y la
precisión para representar objetos de complejidad variable.
El bloque de función 106 indica que para el
cuadro de imagen N se resta el objeto actual previsto 102 del
objeto original 108 para el cuadro actual N con el fin de determinar
un error estimado 110 en el objeto previsto 102. El error estimado
110 es una representación comprimida del objeto actual 108 en el
cuadro de imagen N relativo al objeto anterior cuantificado 98. Más
concretamente, el objeto actual 108 se puede descodificar o
reconstruir a partir del error estimado 110 y del objeto anterior
cuantificado 98.
El bloque de función 112 indica que el error
estimado 110 es comprimido o "codificado" mediante un método
convencional de compresión de imágenes fijas con pérdida, como la
compresión o codificación por wavelets o de
sub-banda reticular, de acuerdo con lo descrito en
Multirate Systems and Filter Banks de Vaidyanathan, PTR
Prentice-Hall, Inc., Englewood Cliffs. New Jersey,
(1993) o la codificación de transformada de coseno discreta (DCT)
según lo descrito en JPEG: Still Image Data Compression
Standard de Pennebaker y otros, Van Nostrand Réinhold, Nueva
York (1993).
Tal y como sabemos por la técnica, los métodos
de compresión con pérdida introducen la distorsión de datos para
proporcionar una compresión de datos mejorada. La distorsión de
datos se refiere a variaciones entre los datos originales antes de
compresión y los datos como resultado de la compresión y
descompresión. Con objeto de ilustrar cuanto sigue, la compresión o
la codificación del bloque de función 102 se supone que es
codificación por wavelets.
El bloque de función 114 indica que el error
estimado codificado por wavelets del bloque de función 112 se
comprime o "codifica" aún más mediante un método de compresión
"sin pérdidas", convencional de imágenes fijas para formar los
datos comprimidos 116. Un método convencional de compresión "sin
pérdidas" de imágenes fijas es la codificación entrópica tal y
como se describe en JPEG: Still Image Data Compression
Standard de Pennebaker y otros. Tal y como sabemos por la
técnica, los métodos de compresión "sin pérdidas" no introducen
ninguna distorsión de datos.
Un bucle de realimentación de error 118 utiliza
el error estimado codificado por wavelets del bloque de función 112
para el objeto en el cuadro N con el fin de obtener un objeto
cuantificado anterior para el cuadro sucesivo N+1. Como primer paso
en el bucle de realimentación 118, el bloque de función 120 indica
que el error estimado codificado por wavelets del bloque de función
112 se ha codificado inversamente por wavelets o descodificado por
wavelets para formar un error cuantificado 122 para el objeto en el
cuadro de imagen N.
El efecto de codificar y descodificar
sucesivamente un error estimado 110 mediante un método de compresión
de imágenes fijas con pérdida es la omisión del error cuantificado
122 la información de vídeo que normalmente no es perceptible por
los espectadores. Esta información está normalmente asociada a
frecuencias más altas. En consecuencia, la omisión de dichos
componentes de alta frecuencia puede proporcionar normalmente
compresión de imágenes de hasta cerca del 200% con una degradación
mínima de la calidad de la imagen.
El bloque de función 124 indica que el error
cuantificado 122 y el objeto previsto 102, ambos para el cuadro de
imagen N, se han añadido juntos para formar un objeto cuantificado
126 para el cuadro de imagen N. Después de un retraso de
coordinación de la sincronización 128, el objeto cuantificado 126 se
convierte en el objeto anterior cuantificado 98 y se utiliza como
la base para procesar el objeto correspondiente en el cuadro de
imagen N+1.
El proceso codificador 64 utiliza la correlación
temporal de los objetos correspondientes en cuadros de imagen
sucesivos para obtener una compresión intercuadros mejorada, y
también utiliza la correlación espacial dentro de los objetos para
obtener una compresión intracuadros precisa y eficiente. Para la
compresión intercuadros, se realiza una estimación y compensación
del movimiento de modo que un objeto definido en un cuadro pueda
estimarse en cuadros sucesivos. La estimación basada en movimientos
del objeto en el cuadro sucesivo requiere de bastante menos
información que una representación convencional del objeto basada en
bloques. Para la compresión intracuadros, se comprime una señal de
error estimada para cada objeto con el fin de utilizar la
correlación espacial del objeto dentro de un cuadro y permitir la
representación de diferentes objetos en diversas resoluciones. El
bucle de realimentación 118 permite la previsión de objetos en
cuadros posteriores a partir de objetos completamente
descomprimidos, para evitar de este modo la acumulación de un error
de estimación.
El proceso codificador 64 proporciona como
salida una representación comprimida o codificada de una señal de
vídeo digitalizada que representa el movimiento en pantalla en las
secuencias de vídeo de múltiples cuadros de imagen. La
representación comprimida o codificada incluye máscaras de objeto.
66, puntos de característica 68, coeficientes de transformación
afines 104, y datos de error comprimidos 116. La representación
codificada se puede almacenar o transmitir, según la aplicación
concreta en la cual se utiliza la información vídeo.
La figura 3B es un diagrama por bloques
funcional de un proceso codificador de objetos maestros 130 para la
codificación o compresión del objeto maestro 90. El bloque de
función. 132 indica que el objeto maestro 90 es comprimido o
codificado mediante un método convencional de compresión de imágenes
fijas con pérdida, como la compresión por wavelets o
sub-banda reticular o codificación de transformada
de coseno discreta (DCT). Preferiblemente, el bloque de función 132
emplea la codificación por wavelets.
El bloque de función 134 indica que el objeto
maestro codificado por wavelets del bloque de función 132 se
comprime o codifica aún más mediante un método de compresión de
imágenes fijas "sin pérdidas" convencional para formar datos
de objetos maestros comprimidos 136. Un método convencional de
compresión "sin pérdidas" de imágenes fijas es la codificación
entrópica.
El proceso codificador 130 proporciona como
salida un objeto maestro comprimido 136. Junto con las
representaciones comprimidas o codificadas proporcionadas por el
proceso codificador 64, el objeto maestro comprimido 136 se puede
descomprimir o descodificar tras el almacenamiento o la transmisión
para obtener una secuencia de vídeo de múltiples cuadros de
imagen.
El proceso codificador 64 se describe en
referencia a la información de vídeo de la codificación
correspondiente a un solo objeto dentro de un cuadro de imagen.
Según las indicaciones de las figuras 2A y 2B y lo que se indica
anteriormente, el proceso codificador 64 se realiza por separado
para cada uno de los objetos (por ejemplo, objetos 56 y 58 de las
figuras 2A y 2B) en un cuadro de imagen. Por otra parte, muchas
imágenes de vídeo incluyen un fondo sobre el cual se renderizan los
números arbitrarios de características de imagen u objetos.
Preferiblemente, se procesa el fondo como un objeto de acuerdo con
esta invención una vez procesados todos los objetos designados
por
el usuario.
el usuario.
El procesado de los objetos en un cuadro de
imagen requiere que los objetos estén identificados por separado.
Preferiblemente, el proceso codificador 64 se aplica a los objetos
de un cuadro de imagen comenzando por el objeto u objetos que estén
delante del todo y siguiendo con el que esté atrás del todo (por
ejemplo, el fondo). La composición de los objetos codificados en
una imagen de vídeo procede preferiblemente del objeto que esté más
atrás del todo (por ejemplo, el fondo) siguiendo sucesivamente con
el que esté más adelante del todo (por ejemplo, el sólido
rectangular 56 de las figuras 2A y 2B). La estratificación de los
objetos de codificación se puede comunicar como datos de
estratificación distintivos que se asocian a los objetos de un
cuadro de imagen o, alternativamente, transmitiendo u obteniendo
los objetos codificados en una secuencia correspondiente a la
secuencia de estratificación o composición.
\vskip1.000000\baselineskip
En una representación preferencial, la
segmentación de los objetos dentro de los cuadros de imagen
mencionados en el bloque de función 66 permite una segmentación
interactiva por parte de los usuarios. La segmentación del objeto
de esta invención proporciona una precisión mejorada en la
segmentación de objetos y es relativamente rápida proporcionando a
los usuarios flexibilidad óptima a la hora de definir los objetos
que se han de segmentar.
La figura 4 es un diagrama por bloques funcional
de un proceso de segmentación de objetos 140 para dividir objetos
seleccionados de un cuadro de imagen en una de secuencia de vídeo.
La segmentación del objeto según el proceso 140 proporciona un
agrupamiento perceptivo de objetos que puede definirse fácil,
rápidamente y con precisión por los usuarios.
La figura 5A es una representación simplificada
de la pantalla 50 del dispositivo de visualización de vídeo 52 que
muestra el cuadro de imagen 54a y la segmentación del objeto sólido
rectangular 56a. En su renderización en la pantalla de
visualización 50, el objeto sólido rectangular 56a incluye un
perímetro de objeto 142 (mostrado apartado del objeto 56a para
mayor claridad) que delimita un interior de objeto 144. El interior
de objeto 144 se refiere al contorno del objeto 56a que aparece en
la pantalla de visualización 50 y en general puede corresponder a
una superficie interior o, como se muestra, a una superficie
exterior de la característica de imagen. La figura 5B es una
representación ampliada de una porción de pantalla de visualización
50 que muestra la segmentación semiautomática del objeto sólido
rectangular 56a. La siguiente descripción hace referencia
específicamente al objeto sólido rectangular 56a, pero también puede
aplicarse a cada objeto que se ha de dividir de un cuadro de
imagen.
El bloque de función 146 Índica que un usuario
da forma dentro del interior del objeto 144 a un contorno interior
148 del perímetro del objeto 142. El usuario da forma
preferiblemente al contorno interior 148 con un puntero
convencional o un dispositivo de control cursor, como un ratón o la
bola de control del cursor. El contorno interior 148 se forma
dentro de una distancia nominal 150 del perímetro del objeto 142. La
distancia nominal 150 se seleccionada por un usuario para que sea
lo suficientemente grande para que el usuario pueda dar forma
relativamente rápido al contorno interior 148 dentro de la distancia
nominal 150 del perímetro 142. La distancia nominal 150 se
corresponde, por ejemplo, a entre aproximadamente 4 y 10
píxeles.
El bloque de función 146 se realiza con respecto
a un cuadro clave de una secuencia de vídeo. Por lo que respecta a
una escena en una imagen en movimiento convencional, por ejemplo, el
cuadro clave podría ser el primer cuadro de múltiples cuadros de
una escena. La participación del usuario en esta función hace que el
proceso de segmentación del objeto 140 sea semiautomático, pero
aumenta notablemente la precisión y flexibilidad con la que los
objetos se dividen. Con excepción del cuadro clave, los objetos en
los siguientes cuadros de imagen se dividen automáticamente tal y
como se describe a continuación en más detalle.
El bloque de función 152 indica que el contorno
interior 148 se amplía automáticamente para dar forma a un contorno
exterior 156. La formación del contorno exterior 156 se realiza como
una ampliación de imagen relativamente simple del contorno 148 de
modo que el contorno exterior 156 sea un número de píxeles definido
por el usuario del contorno interior 148. Preferiblemente, la
distancia entre el contorno interior 148 y el contorno exterior 156
es aproximadamente dos veces la distancia 150.
El bloque de función 158 indica que los píxeles
entre el contorno interior 148 y el contorno exterior 156 están
clasificados según cualidades predefinidas con respeto a si están
dentro del interior del objeto 144, para identificar
automáticamente el perímetro del objeto 142 y una correspondiente
máscara 80 del tipo descrito con referencia a la figura 3 . A.
Preferiblemente, las cualidades de la imagen incluyen color y la
posición del píxel, pero cualquier cualidad se podría utilizar por
separado o con otras cualidades.
En la representación preferencial, cada uno de
los píxeles en el contorno interior 148 y el contorno exterior 156
definen un "centro de la agrupación" representado como un
vector de cinco dimensiones bajo la forma de (r, g, b, x, y). Los
términos r, g, y b corresponden a los colores rojo, verde, y azul
respectivamente asociados a cada uno de los píxeles, y los términos
x e y corresponden a las ubicaciones del píxel. El número m de
vectores del centro de la agrupación correspondiente a los píxeles
en el contorno interior 148 se denota como {I_{0}, I_{i},
I_{m-i}} y el número n de vectores del centro de
la agrupación correspondiente a píxeles en el contorno exterior 156
se denota como {O_{0}, O_{i} ....,
O_{n-1}}.
Los píxeles entre los vectores del centro de la
agrupación I_{i} y O_{j} se clasifican al identificar el vector
al cual cada píxel está más cerca en el espacio vectorial de cinco
dimensiones. Para cada píxel, la distancia d_{i} y d_{j}
absoluta a cada uno de los vectores I_{i} y O_{j} del centro de
la agrupación se calcula según las ecuaciones siguientes:
donde W_{color} y W_{coord} son
factores de ponderación para la información de la posición del
píxel y el color. Los factores de ponderación W_{color} y
W_{coord} tienen valores cuya suma equivale a 1 o bien que puedan
seleccionarse por el usuario. Preferiblemente, los factores de
ponderación W_{color} y W_{coord} tienen el mismo valor de 0,5.
Cada píxel se asocia al interior del objeto 144 o al exterior según
la distancia mínima pentadimensional a uno de los vectores I_{j} y
O_{j} del centro de la
agrupación.
\vskip1.000000\baselineskip
El bloque de función 162 indica que un usuario
selecciona por lo menos dos, y preferible más (por ejemplo 4 a 6)
puntos de característica en cada objeto de un cuadro inicial o
clave. Preferiblemente, los puntos de característica son aspectos
relativamente distintivos del objeto. En cuanto a la característica
de imagen del sólido rectangular 56, por ejemplo, las esquinas
70a-70c podrían seleccionarse como puntos de
característica.
El bloque de función 164 indica que un bloque de
múltiples píxeles 166 centrados cerca de cada punto de
característica seleccionado (por ejemplo, esquinas
70a-70c) está definido y emparejado con un bloque
correspondiente en un cuadro de la imagen posterior (por ejemplo,
el siguiente cuadro de imagen sucesivo). El bloque de píxeles 166
está definido por el usuario, pero incluye preferiblemente una
matriz de 32 x 32 píxeles que contiene solamente los píxeles dentro
del interior de la imagen 144. Cualquier píxel 168 (indicado con
rayitas cruzadas) del bloque de píxeles 166 fuera del interior del
objeto 144 según determine el bloque de función 158 (por ejemplo,
esquinas 70b y 70c) se omite. Los bloques de píxeles 166 se
emparejan con los bloques de píxeles correspondientes en el
siguiente cuadro de imagen según un error absoluto mínimo
identificado por un proceso de correspondencia de bloques
convencional o un proceso de correspondencia del polígono, como se
describe más abajo en detalle.
El bloque de función 170 indica que una escasa
transformación del movimiento de un objeto viene determinada por
los puntos de característica correspondientes en dos cuadros de
imagen sucesivos. El bloque de función 172 indica que la máscara 80
del cuadro de imagen actual está transformada según la
transformación de movimiento escaso para proporcionar una
estimación de la máscara 80 para el siguiente cuadro de imagen. Se
descarta cualquier punto de característica en un cuadro actual no
identificado en un cuadró de imagen sucesivo.
El bloque de función 174 indica que la
estimación, resultante de la máscara 80 para el siguiente cuadro de
imagen lleva un retraso de un cuadro, y funciona como un contorno
176 del siguiente ciclo sucesivo. Igualmente, el bloque defunción
178 indica que los correspondientes puntos de característica también
se retrasan un cuadro, y se utilizan como los puntos iniciales de
característica 180 para el siguiente cuadro sucesivo.
La figura 6 es un diagrama por bloques funcional
de un proceso de correspondencia de polígono 200 para determinar un
vector de movimiento para los correspondientes pares de píxeles en
cuadros de imagen sucesivos. Una determinación de vector de
movimiento denso proporciona la base para determinar las
transformaciones de movimiento denso 96 de la figura 3A.
El proceso de correspondencia de polígono 200 es
capaz de determinar el amplio movimiento entre los sucesivos
cuadros de imagen como el proceso de correspondencia del bloque
convencional. Sin embargo, en contraste con el proceso de
correspondencia del bloque convencional, el proceso de
correspondencia de polígono 200 mantiene su precisión para los
píxeles ubicados cerca o en el perímetro del objeto y genera
significativamente un error menor. Una representación preferencial
del método de correspondencia de polígono 200 ha mejorado la
eficacia computacional.
Él método del bloque del polígono 200 se
describe en relación a las figuras 7A y 7B, que son representaciones
simplificadas de la pantalla de visualización 50 que muestra dos
cuadros sucesivos de imagen 202a y 202b en los cuales una
característica de imagen 204 se renderiza como los objetos 204a y
204b, respectivamente.
El bloque de función 206 indica que los objetos
204a y 204b para los cuadros de imagen 202a y 202b están
identificados y divididos, por ejemplo, mediante el método de
segmentación de objetos 140.
El bloque de función 208 indica que las
dimensiones son determinadas mediante un bloque 210b (por ejemplo,
píxeles 15x15) que se aplica al objeto 204b y un área de búsqueda
212 del objeto 204a. El bloque de píxeles 210b define una región de
cada píxel en el objeto 204b para cuya región se identifica un
bloque de píxeles correspondientes 210a en el objeto 204a. El área
de búsqueda 212 establece una región dentro de la cual se busca el
bloque de píxeles correspondientes 210a. Preferiblemente, el bloque
de píxeles 210b y el área de búsqueda 212 son matrices regulares
rectas de píxeles y de tamaños definidos por el usuario.
El bloque de función 214 indica que un píxel
inicial 216 en el objeto 204b se ha identificado y designado el
píxel actual. El píxel inicial 216 puede estar definido por una
variedad de criterios como el píxel en la ubicación de mayor
alcance vertical y de menor alcance horizontal. Con los píxeles en
la pantalla de visualización 50 dispuestos según un eje de
coordenadas 220 tal y como se muestra, el píxel inicial 216 puede
representarse como el píxel del objeto 214b con un valor de la
coordenada y máximo, y con un valor de la coordenada x mínimo.
El bloque de función 222 indica que el bloque de
píxeles 210b está centrado en el píxel actual y se extiende
alrededor del mismo.
El bloque de función 224 representa una
averiguación en cuanto a si el bloque de píxeles 210b abarca píxeles
que no están incluidos en el objeto 204b (por ejemplo, los píxeles
226 mostrados mediante sombreado a rayas en la figura 7B). Esta
averiguación se realiza en relación a los objetos identificados
según el bloque de función 206. Cuando los píxeles dentro del
bloque de píxeles 210b colocado en el píxel actual están fuera del
objeto 204b, el bloque de función 224 procede hasta el bloque de
función 228 y si no procede hasta el bloque de función 232.
El bloque de función 228 indica que los píxeles
del bloque de píxeles 210b que están fuera del objeto 204b (por
ejemplo, los píxeles 226) sean omitidos de la región definida por el
bloque de píxeles 210b de modo que incluya solamente los píxeles
dentro del objeto 204b. En consecuencia, el bloque de píxeles 210b
define una región, que normalmente sería de una forma poligonal más
compleja que la región cuadrada o rectangular originalmente
definida.
El bloque de función 232 indica que un píxel en
el objeto 204a se ha identificado como correspondiente al píxel
actual en el objeto 204b. El píxel en el objeto 204a se refiere como
el píxel correspondiente anterior. Preferiblemente, el píxel
correspondiente anterior es identificado formando un bloque de
píxeles 210a sobre cada píxel en el área de búsqueda 212 y
determinando una correlación entre el bloque de píxeles 210a y el
bloque de píxeles 210b sobre el píxel actual en el objeto 204b. Cada
correlación entre los bloques de píxeles 210a y 210b puede
determinarse, por ejemplo, por un error absoluto. El correspondiente
píxel anterior se identifica mediante la identificación del bloque
de píxeles 210a en el área de búsqueda 212 para la cual se ha
minimizado el error absoluto relativo al bloque de píxeles 210b.
Puede determinarse un error absoluto sumado E para un bloque de
píxeles 210b en relación con el bloque de píxeles 210a como:
donde los términos r_{ij},
g_{ij} y b_{ij} corresponden a los colores rojo, verde, y azul
respectivamente asociados a cada uno de los píxeles del bloque de
píxeles 210b mientras que los términos r_{ij}', g_{ij}' y
b_{ij}' corresponden a los colores rojo, verde, y azul
respectivamente asociados a cada uno de los píxeles del bloque de
píxeles
210a.
\vskip1.000000\baselineskip
Según lo dispuesto anteriormente, las sumas para
el error absoluto E implican que los-bloques de
píxeles tengan matrices de píxeles con dimensiones de píxeles de
mxn. Los bloques de píxeles 210b de configuración poligonal se
alojan de forma relativamente sencilla, mediante la definición de
los valores cero para los componentes de color de todos los píxeles
fuera de los bloques de píxeles poligonales 210b.
El bloque de función 234 indica que se determina
un vector MV de movimiento entre cada píxel en el objeto 204b y el
correspondiente píxel anterior en el objeto 204a. Un vector de
movimiento viene definido por la diferencia entre las ubicaciones
del píxel en el objeto 204b y el correspondiente píxel anterior en
el objeto 204a:
donde los términos x_{i} e
y_{i}' corresponden a las respectivas posiciones de las
coordenadas x e y del píxel en el bloque de píxeles 210b, mientras
que los términos x_{k}' e y_{j}', corresponden a las respectivas
posiciones de las coordenadas x e y del correspondiente píxel
anterior en el bloque de píxeles
210a.
\vskip1.000000\baselineskip
El bloque de función 236 representa una
averiguación en cuanto a si el objeto 204b incluye cualquiera de los
píxeles restantes. Siempre que el objeto 204b incluya los píxeles
restantes, el bloque de función 236 procede hasta el bloque de
función 238 y si no procede hasta terminar el bloque 240.
El bloque de función 238 indica que un píxel
siguiente en el objeto 204b está identificado según un formato o
secuencia predeterminados. Con el píxel inicial seleccionado tal y
como se describe anteriormente en relación con el bloque de función
214, los píxeles siguientes pueden definirse primero mediante la
identificación del siguiente píxel adyacente en una fila (es decir,
de un valor común de coordenada y) y, si el objeto 204 no incluye
ningún píxel en una fila, se procede al primer píxel o el que esté
más a la izquierda (es decir, el del menor valor de coordenada x)
en la siguiente fila inferior, Al píxel identificado se le designa
el actual píxel y el bloque de función 238 regresa al bloque de
función 222.
El método del bloque del polígono 200 identifica
con exactitud los correspondientes píxeles incluso si están
situados en el perímetro del objeto o cerca del mismo. Una
importante fuente de error en procesos convencionales de
correspondencia de bloque se elimina omitiendo o ignorando los
píxeles de los bloques de píxeles 210b que están fuera del objeto
204b. Los procesos convencionales de correspondencia de bloque
aplican estrictamente una configuración uniforme de bloques de
píxeles y no se aplican con respecto a un objeto dividido. Las
configuraciones uniformes de bloque ocasionan importantes errores a
los píxeles adyacentes al perímetro de un objeto, ya que los
píxeles fuera del objeto pueden experimentar cambios significativos
cuando el objeto se mueve o su fondo cambia. Con tales variaciones
extrínsecas de píxeles incluidas en los procesos convencionales de
correspondencia de bloques, los píxeles de las proximidades del
perímetro de un objeto no se pueden correlacionar con precisión con
los correspondientes píxeles en los cuadros de imagen
anteriores.
Para cada píxel en el objeto 204b, se identifica
un píxel anterior en el objeto 204a al comparar el bloque de
píxeles 210b con un bloque de píxeles 210a para cada uno de los
píxeles del objeto anterior 204a. El píxel anterior es el píxel en
el objeto 204a que tiene el bloque de píxeles 210a con mejor
correlación con el bloque de píxeles 210b. Si se ha procesado de
manera convencional, dicha determinación puede requerir un cálculo
sustancial para identificar cada píxel anterior correspondiente.
Para ilustrar esto, los bloques de píxeles con dimensiones de nxn
píxeles, que son significativamente más pequeños que un área de
búsqueda 212 con dimensiones de mxm píxeles, se requieren
aproximadamente cálculos n^{2}xm^{2} para identificar cada píxel
anterior correspondiente en el objeto anterior 204a.
\vskip1.000000\baselineskip
La figura 8 es un diagrama por bloques funcional
de un proceso de correlación de bloque de píxeles modificado 260
que preferiblemente sea sustituido por el descrito en relación con
el bloque de función 232. El proceso de correlación modificado 260
utiliza la redundancia inherente en la correlación de los bloques de
píxeles 210b y 210a para reducir significativamente el número de
cálculos necesarios.
El proceso de correlación 260 se describe en
relación con las figuras 9A-9G y
10A-10G, que representan esquemáticamente grupos
arbitrarios de píxeles que corresponden a los cuadros sucesivos de
imágenes 202a y 202b. Particularmente, la figura 9 A es una
representación esquemática de un bloque de píxeles 262 con
dimensiones de 5x5 píxeles en los cuales cada letra corresponde a
un píxel diferente. Los píxeles del bloque de píxeles 262 están
dispuestos como una matriz regular recta de píxeles que incluye
distintas columnas 264. La figura 9B representa una matriz de
píxeles 266 con dimensiones de los qxq píxeles y que se corresponden
a un área de búsqueda 212 en un cuadro de imagen anterior 202a.
Cada uno de los números en la figura 9B representa un píxel
diferente. Aunque se describe en relación con un bloque de píxeles
regular, recto y convencional 262, el proceso de correlación 260 es
igualmente aplicable a los bloques de píxeles poligonales del tipo
descrito en relación con el proceso de correspondencia de polígono
200.
El bloque de función 268 indica que un bloque
inicial de píxeles (por ejemplo, bloque de píxeles 262) está
definido con respecto a un píxel central M y explorado a través de
un área de búsqueda 212 (por ejemplo, una matriz de píxeles 266)
generalmente en un patrón de tramas (se muestra en parte en la
figura 7A) como en un proceso convencional de correspondencia del
bloque. Las figuras 9C-9G ilustran esquemáticamente
cinco de los aproximadamente q^{2} pasos en el proceso de
correspondencia del bloque entre el bloque de píxeles 262 y la
matriz de píxeles 266.
Aunque la exploración del bloque de píxeles 262
a través de la matriz de píxeles 266 se realiza de una manera
convencional, los cálculos referentes a la correlación entre los
mismos se realizan de forma diferente según esta invención.
Particularmente, una correlación (por ejemplo, un error absoluto) se
determina y almacena para cada columna 264 del bloque de píxeles
262 en cada posición de exploración. La correlación que se determina
y almacena para cada columna 264 del bloque de píxeles 262 en cada
posición explorada se refiere como correlación de columna 270,
varias de las cuales se indican simbólicamente en las figuras
9C-9G en referencia a los píxeles correlacionados.
Para ilustrar esto, la figura 9C muestra una correlación de columna
270(1) que se determina para la columna individual 264 del
bloque de píxeles 262 alineado con la matriz de píxeles 266.
Igualmente, la figura 9D muestra las correlaciones de columna
270(2) y 270(3) que se han determinado para las dos
columnas 264 del bloque de píxeles 262 alineado con la matriz de
píxeles 266. Las figuras 9E-9G muestran
correlaciones de columna similares con el bloque de píxeles 262 en
tres ejemplos de posiciones de exploración en relación con la matriz
de píxeles 266.
La exploración del bloque de píxeles inicial 262
sobre la matriz de píxeles 266 proporciona una matriz o base de
datos almacenada de las correlaciones de columna. Con el bloque de
píxeles 262 que tiene un número r de columnas 264, y una matriz de
píxeles 266 con qxq píxeles, la base de datos de correlación de
columna incluye el número rq^{2} aproximadamente de correlaciones
de columna. Este número de correlaciones de columna es solo
aproximado porque el bloque de píxeles 262 se explora inicialmente a
través de la matriz de píxeles 266 de modo que el píxel M esté
alineado con la primera fila de píxeles en la matriz de píxeles
266.
Los pasos restantes que comienzan con el que se
indica en la figura 9C se producen después de dos completas
exploraciones del bloque de píxeles 262 a través de la matriz de
píxeles 266 (es decir, con el píxel M alineado con la primera y
segunda fila de la matriz de píxeles 266).
El bloque de función 274 indica que un siguiente
bloque de píxeles 276 (figura 10A) se define, por ejemplo, desde el
cuadro de imagen 202b con respecto a un píxel central N en la misma
fila que el píxel M. El bloque de píxeles 276 incluye una columna
de píxeles 278 no incluidos en el bloque de píxeles 262 y columnas
de píxeles 280 incluidos en el bloque de píxeles 262. El bloque de
píxeles 276 no incluye una columna 282 (figura 9A) que fue incluida
en el bloque de píxeles 262. Una definición tan incremental del
siguiente bloque de píxeles 276 es sustancialmente igual a la usada
en procesos convencionales de correspondencia de bloque.
El bloque de función 284 indica que el bloque de
píxeles 276 se ha explorado a través de la matriz de píxeles 266 de
la manera descrita anteriormente en relación con el bloque de
función 268. Al igual que las figuras 9C-9G, las
figuras 10B-10G representan la exploración del
bloque de píxeles 276 a través de la matriz de píxeles 266.
El bloque de función 286 indica que para la
columna 278 una correlación de columna se determina y almacena en
cada posición de exploración. Por consiguiente, las correlaciones de
columna 288(1)-288(5) se realizan con
respecto a las posiciones exploradas de la columna 278 mostrada en
las respectivas figuras 10B-10F.
El bloque de función 290 indica que para cada
una de las columnas 280 en el bloque de píxeles 276 se recupera una
determinación de columna almacenada para cada posición de
exploración previamente calculada y almacenada en el bloque de
función 268. Por ejemplo, la correlación de columna 270(1) de
la figura 9C es igual que la correlación de columna 270'(1) de la
figura 10C. Igualmente, las correlaciones de columna 270'(2),
270'(3), 270'(5), 270'(8), y 270'(15), 270'(18) de las figuras
10D-10F son las mismas que las correspondientes
correlaciones de columna de las figuras 9D, 9E, y 9G. Por tanto,
para el bloque de píxeles 276, sólo se calcula una correlación de
columna 288 para cada posición de exploración. En consecuencia, el
número de cálculos necesarios para el bloque de píxeles 276 se
reduce en casi el 80%.
El bloque de función 292 indica que un siguiente
bloque de píxeles 294 (figura ^{1 }11 A) se define con respecto a
un píxel central R en la fila siguiente relativa al píxel M. El
bloque de píxeles 294 incluye las columnas de píxeles 296 que son
parecidas, pero distintas de las columnas de píxeles 264 en el
bloque de píxeles 262 de la figura 9 A. En concreto, las columnas
296 abarcan los píxeles A'-E' no incluidos en las
columnas 264. Tal definición incremental del subsiguiente bloque de
píxeles 294 es sustancialmente igual a la empleada en los procesos
convencionales de correspondencia de bloque.
El bloque de función 298 indica que el bloque de
píxeles 294 se ha explorado a través de la matriz de píxeles 266
(figura 9B) de la manera descrita anteriormente en relación con los
bloques de función 268 y 276. Las figuras 11B-11F
representan la exploración del bloque de píxeles 294 a través de la
matriz de píxeles 266.
El bloque de función. 300 indica que una
correlación de columna se determina y almacena para cada columna
296. Por consiguiente, las correlaciones de columna
302(1)-302(18) se hacen con respecto a
las posiciones exploradas de las columnas 296 mostradas en las
figuras 11B-11F.
Cada una de correlaciones de columna
302(1)-302(18) se puede calcular de
una manera abreviada en relación con las correlaciones de columna
hechas con respecto al bloque de píxeles 262 (figura 9A).
Por ejemplo, las correlaciones de columna
302(4)-302(8) de la figura 11D
incluyen las correlaciones de subcolumna
304'(4)-304'(8) que son iguales que las
correlaciones de subcolumna
304(4)-304(8) de la figura 9E. Por
consiguiente, las correlaciones de columna
302(4)-302(8) pueden determinarse de
las respectivas correlaciones de columna
270(4)-270(8) restando de los últimos
valores de correlación para los píxeles 01A, 02B, 03C, 04D, y 05E
para formar correlaciones de subcolumna
304(4)-304(8), respectivamente. Las
correlaciones de columna 302(4)-302(8)
pueden obtenerse agregando valores de correlación para los pares de
píxeles 56A', 57B', 58C', 59D' y 50E' a los valores respectivos de
correlación de subcolumna
304(4)-304(8), respectivamente.
La determinación de las correlaciones de columna
302(4) - 302(8) a partir de las respectivas
correlaciones de columna
270(4)-270(8) implica sustraer valores
individuales de correlación de píxeles que corresponden a la fila
de los píxeles A-E del bloque de píxeles 262 no
incluido en el bloque de píxeles 294 del píxel, y agregar los
valores de correlación del píxel para la fila de píxeles
A'-E' incluidos en el bloque de píxeles 294 pero no
en el bloque de píxeles 262. Este método sustituye para cada una de
las correlaciones de columna
302(4)-302(8), una resta y una suma
para las cinco adiciones que serían necesarias para determinar cada
correlación de columna de una manera convencional. Como los bloques
de píxeles de mayores dimensiones son preferenciales, la mejora de
este método sobre los métodos convencionales de cálculo es incluso
superior. Los procesos convencionales de correspondencia de bloque
identifican solamente las correlaciones totales de bloque para cada
posición de exploración del bloque inicial de píxeles 262 relativa a
la matriz de píxeles 266. Por consiguiente, todos los valores de
correlación para todos los píxeles deben calcularse por separado
para cada posición de exploración. En cambio, el proceso de
correlación 260 utiliza las correlaciones de columna almacenadas
270 para reducir significativamente el número de cálculos
necesarios. Las mejoras en los requisitos de recursos de velocidad
y procesador proporcionados por el proceso de correlación 260
compensan los requisitos del sistema para almacenar las
correlaciones de columna.
Como se aprecia, el proceso de correlación 260
se ha descrito en relación a las figuras 9-11 para
ilustrar las características específicas de esta invención. Según
las indicaciones de las ilustraciones, esta invención incluye
características cíclicas o de recurrencia particularmente adaptadas
a la ejecución mediante sistema informático. Estas características
cíclicas o de recurrencia son dependientes de las dimensiones de los
bloques de píxeles y de las matrices de píxeles, y pueden
entenderse perfectamente e implementarse por personas experimentadas
en la técnica.
\vskip1.000000\baselineskip
La figura 12 es un diagrama por bloques
funcional de un método de transformación 350 que incluye la
generación de una transformación multidimensional entre objetos en
primeros y segundos cuadros de imagen sucesivos y la cuantificación
del trazado para la transmisión o almacenamiento. La transformación
multidimensional se utiliza preferiblemente en relación con el
bloque de función 96 de la figura 3. El método de transformación
350 se describe en relación con la figura 7A y la figura 13. Ésta
última al igual que la figura 7B es una representación simplificada
de la pantalla de visualización 50 que muestra un cuadro de imagen
202b en la cual la característica de imagen 204 se renderiza como el
objeto 204b.
El método de transformación 350 proporciona
preferiblemente una transformación afín multidimensional capaz de
representar movimiento complejo que incluye cualquier o toda
traslación, rotación, ampliación y recorte. El método de
transformación 350 proporciona una mejora significativa de los
métodos convencionales de compresión de vídeo como
MPEG-1, MPEG-2, y H.26X, que sólo
tienen una dimensión y representan una única traslación. En este
sentido, la dimensionalidad de una transformación se refiere al
número de coordenadas en la forma generalizada de transformación,
como se describe a continuación en más detalle. Al aumentar la
precisión con la cual se representa el movimiento complejo según
esta invención, se consigue reducir los errores en comparación con
las representaciones convencionales, con lo que se mejora la
eficacia de compresión.
El bloque de función 352 indica que se determina
una estimación de movimiento densa de los píxeles en los objetos
204a y 204b. Preferiblemente, la estimación de movimiento densa se
obtiene mediante el proceso de correspondencia de polígono 200.
Como se describe anteriormente, la estimación de movimiento densa
incluye vectores de movimiento entre los píxeles en las coordenadas
(x_{i}, y_{j}) en el objeto 204b del cuadro de imagen 202b y
los correspondientes píxeles en las ubicaciones (x_{i}', y_{i}')
del objeto 204a en el cuadro de imagen 202a.
El bloque de función 354 indica que se define
una matriz de bloques de transformación 356 para abarcar el objeto
204b. Preferiblemente, los bloques de transformación 356 son
matrices regulares rectas de píxeles con dimensiones, por ejemplo,
de 32x32 píxeles.
\newpage
El bloque de función 358 indica que se genera
una transformación afín multidimensional para cada bloque de
transformación 356. Preferiblemente, las transformaciones afines son
de primer orden y están representadas como:
y se determinan en relación con
todos los píxeles para los cuales los Vectores de movimiento tienen
una confianza relativamente alta. Estas transformaciones afines son
bidimensionales donde x_{i} e y_{i} se definen en relación con
dos coordenadas: x_{i} e
y_{i}.
\vskip1.000000\baselineskip
La confianza relativa de los vectores de
movimiento se refiere a la precisión con la que el vector de
movimiento entre los píxeles correspondientes se puede determinar
únicamente con respecto a otros píxeles. Por ejemplo, los vectores
de movimiento entre píxeles específicos que se encuentran en
matrices de píxeles relativamente amplias y están coloreadas
uniformemente (por ejemplo, negro) normalmente no se pueden
determinar con precisión. Concretamente, para un píxel negro en un
primer cuadro de imagen, habrá muchos píxeles en la matriz de
píxeles del cuadro de imagen siguiente con la misma correlación (es
decir, error de valor absoluto entre los bloques de píxeles).
En cambio, las matrices de píxeles en las que
los píxeles se corresponden a características distintivas
normalmente tendrán correlaciones relativamente elevadas para los
correspondientes píxeles en sucesivos cuadros de imagen.
Las correlaciones relativamente elevadas se
representan preferiblemente como una determinación de error de
valor absoluto mínimo para el píxel en concreto. Los vectores de
movimiento de confianza relativamente elevada pueden, por tanto,
determinarse en relación con dichos valores de error
extraordinariamente bajos. Por ejemplo, un vector de movimiento de
elevada confianza se puede definir como uno en el que el error de
valor absoluto mínimo para el vector de movimiento sea menor que el
siguiente mayor valor de error asociado al píxel por una diferencia
que sea mayor que una diferencia de umbral. Alternativamente, los
altos vectores de movimiento de elevada confianza se pueden definir
con respecto a la segunda orden derivada de los valores de error
absoluto sobre los cuales se determinan las correlaciones. Una
segunda orden derivativa de más de un valor específico indicaría
una correlación relativamente elevada entre los correspondientes
píxeles específicos.
Con el número n de píxeles con unos vectores de
movimiento de tan elevada confianza, las ecuaciones de
transformación afín preferenciales se resuelven en relación con el
número n de píxeles correspondientes en los cuadros de imagen 202a
y 202b. Los cuadros de imágenes deben incluir por lo menos tres
píxeles correspondientes en los cuadros de imagen 202a y 202b con
vectores de movimiento de elevada confianza por resolver para los
seis coeficientes desconocidos a, b, c, d, e, y f de las ecuaciones
de transformación afín preferenciales. Con las dimensiones
preferenciales, cada uno de los bloques de transformación 356
incluyen 2^{10} píxeles de los cuales los números importantes
tienen normalmente vectores de movimiento de confianza relativamente
elevada. Por consiguiente, las ecuaciones de transformación afín se
sobredetermina en que un número notablemente mayor de píxeles está
disponible por solucionar para los coeficientes a, b, c, d, e, y
f.
El número n resultante de las ecuaciones se
puede representar mediante la expresión algebraica lineal:
Estas ecuaciones se resuelven preferiblemente
mediante un método convencional de descomposición del valor
singular (SVD), que proporciona un error de mínimos cuadrados mínimo
para la aproximación de los vectores de movimiento denso. El método
convencional SVD se describe, por ejemplo, en Numerical Recipes
in C. por Press et al., Cambridge University Press,
(1992).
Como se describe anteriormente, las ecuaciones
de transformación afín de dos dimensiones preferenciales son
capaces de representar la traslación, rotación, ampliación, y
recorte de los bloques de transformación 356 entre sucesivos
cuadros de imagen 202a y 202b. En cambio, los métodos convencionales
de transformación de movimiento usados en estándares de compresión
anteriores emplean las ecuaciones simplificadas de transformación
simplificadas de la forma:
Las ecuaciones simplificadas de transformación
anteriores representan el movimiento mediante sólo dos coeficientes,
g y h, que representa solamente una tercera parte de la información
(es decir, coeficientes) obtenida por las ecuaciones
multidimensionales de transformación preferenciales. Para obtener
una compresión superior de la información conseguida por el método
de transformación 350 relativo a los métodos convencionales de
compresión, las dimensiones del bloque de transformación 356 son
preferiblemente más de tres veces los correspondientes bloques de
píxeles 16x16 empleados en los métodos de compresión
MPEG-1 y MPEG-2. Las dimensiones
preferenciales de píxeles 32x32 de los bloques de transformación
356 comprenden cuatro veces el número de píxeles empleados en los
bloques de transformación de los métodos convencionales de
transformación. Las mayores dimensiones de los bloques de
transformación 356, junto con la precisión mejorada con la que los
coeficientes de transformación afines representan el movimiento de
los bloques de transformación 356, permiten que el método de
transformación 350 proporcione mayor compresión que los métodos
convencionales de compresión.
Como se puede apreciar, los coeficientes afines
generados según la presente invención normalmente serían números no
enteros y valores de coma flotante, difíciles de comprimir
adecuadamente sin que ello perjudicase a su precisión. Por
consiguiente, es preferible cuantificar el coeficiente de
transformación afín para reducir el ancho de banda - necesario para
almacenar o transmitirlos.
El bloque de función 362 indica que- los
coeficientes de transformación afines generados en relación al
bloque de función 358 están cuantificados para reducir el ancho de
banda necesaria para almacenar o transmitirlos. La figura 14 es una
representación ampliada fragmentada de un bloque de transformación
356 que muestra tres píxeles seleccionados, 364a, 364b, y 364c de
los cuales se puede determinar los seises coeficientes de
transformación afín preferenciales a-f.
Los píxeles 364a-364c se
representan como coordenadas de píxeles (x_{1}, y_{1}), (x_{2}
y_{2}), y (x_{3} y_{3}), respectivamente. En base a la
estimación de movimiento densa del bloque de función 352, los
píxeles 364a-364c tienen sus correspondientes
píxeles (x_{1}', y_{1}'), (y_{2}', y_{2}'), (x_{3}'
y_{3}') en el cuadro de imagen 202a precedente. Normalmente, las
ubicaciones de píxel (x_{1}, y_{1}) están representadas por
valores enteros y son soluciones a las ecuaciones de transformación
afines sobre las que se basan los coeficientes de transformación
afines preferenciales. Por consiguiente, los píxeles seleccionados
364a-364c se utilizan para calcular los píxeles
correspondientes del cuadro de imagen precedente 202a, que
normalmente serán valores de coma flotante.
La cuantificación de estos valores de coma
flotante se realiza convirtiendo a un formato entero la diferencia
entre los píxeles correspondientes (x_{i} - x_{i}', y_{i} -
y_{i}'). Los coeficientes de transformación afines están
determinados calculando primero los valores del píxel (x', y') de
los vectores de diferencia y los valores del píxel (x_{i},
y_{i}), y después de solucionar las ecuaciones de transformación
multidimensionales del bloque de función 358 con respecto a los
valores de píxel (x_{i}', y_{i}').
\newpage
Tal y como, se muestra en la figura 14, los
píxeles 364á-364c se distribuyen preferiblemente alrededor del
bloque de transformación 356 para reducir al mínimo la sensibilidad
de la cuantificación a las variaciones locales dentro del bloque de
transformación 356. Preferiblemente, el píxel 364a se coloca en o
adyacente al centro del bloque de transformación 356, y los píxeles
364b y 364c se colocan en las esquinas superiores. También en la
representación preferencial, los píxeles seleccionados para cada uno
de los bloques de transformación 356 en el objeto 204b tienen las
mismas posiciones, permitiendo que el proceso de cuantificación se
realice eficientemente.
Otro aspecto del método de cuantificación del
bloque de función 362 es que pueden utilizarse diversos niveles de
cuantificación para representar grados de movimiento variables. En
consecuencia, el movimiento relativamente simple (por ejemplo,
traslación) puede representarse por menos píxeles seleccionados 364
que los que se requieren para representar el movimiento complejo.
Con respecto a las ecuaciones de transformación afines descritas
anteriormente, el píxel 364a (x_{1}, y_{1}) del objeto 204b y el
píxel correspondiente (x_{1}', y_{1}') del objeto 204a son
suficientes para solucionar ecuaciones de transformación afines
simplificadas como:
las cuales representan la
traslación entre sucesivos cuadros de imagen. El píxel 364a se
utiliza específicamente porque su posición central representa
generalmente él movimiento de traslación independiente de los otros
tipos de movimiento. Por consiguiente, un usuario puede representar
selectivamente movimiento simplificado como la traslación con
ecuaciones de transformación afines simplificadas que requieren un
tercio de los datos necesarios para representar el movimiento
complejo.
\vskip1.000000\baselineskip
Igualmente, un par de píxeles seleccionados
(x_{1}, y_{1}) (por ejemplo, píxel 364a) y (x_{2}, y_{2})
(ya sea los píxeles 364b y 364c) del objeto 204b y los
correspondientes píxeles (x_{1}', y_{1}') y (x_{2}', y_{2}')
del objeto 204a son suficientes para resolver ecuaciones de
transformación - afines simplificadas como:
las cuales son capaces de
representar movimientos que incluyen la traslación y ampliación
entre los cuadros de imagen sucesivos. En la forma
simplificada:
los pares correspondientes de
píxeles seleccionados son capaces de representar movimientos que
incluyen traslación, rotación, y ampliación isotrópica. En esta
forma simplificada, los coeficientes comunes de las variables x e y
permiten que las ecuaciones se resuelvan por dos pares
correspondientes de
píxeles.
\vskip1.000000\baselineskip
Por consiguiente, un usuario puede representar
selectivamente movimiento complejo de forma moderada que incluya
traslación, rotación, y ampliación con ecuaciones de transformación
afines simplificadas. Tales ecuaciones requerirían dos tercios de
los datos necesarios para representar movimiento complejo. La
incorporación del tercer píxel seleccionado (X_{3}, y_{3}) del
objeto 204b, el píxel correspondiente (X_{3}', y_{3}') del
objeto 204a, y las ecuaciones preferenciales de transformación
afines completas permiten a un usuario también representar el
recorte entre los cuadros de imagen sucesivos.
Una representación preferencial del método de
transformación 350 (figura 12) se describe como bloques de
transformación uniformes 356 con dimensiones, por ejemplo, de 32x32
píxeles. Las transformaciones afines multidimensionales
preferenciales descritas en relación al bloque de función 358 se
determinan en relación con los bloques de transformación 356. Como
aprecia, las dimensiones de los bloques de transformación 356
afectan directamente al cociente de compresión proporcionado por
este método.
Se necesitan menos bloques de transformación 356
de dimensiones relativamente grandes para representar
transformaciones de un objeto entre cuadros de imagen que el número
de bloques de transformación 356 que tienen dimensiones más
pequeñas. Una consecuencia de los bloques de transformación 356
uniformemente grandes es que puede introducirse el mayor error para
cada bloque de transformación. Por consiguiente, los bloques de
transformación 356 de tamaños uniformes tienen normalmente
dimensiones moderadas para equilibrar estas restricciones de
rendimiento conflictivas.
\vskip1.000000\baselineskip
La figura 15 es un diagrama por bloques
funcional de un método de optimización del bloque de transformación
370 el que selecciona automáticamente las dimensiones del bloque de
transformación que proporcionan un umbral de error mínimo. El
método de optimización 370 se describe en referencia a la figura 16,
que es una representación simplificada de la pantalla de
visualización 50 que muestra una porción del cuadro de imagen 202b
con el objeto 204b.
El bloque de función 372 indica que un bloque de
transformación inicial 374 está definido con respecto al objeto
204b. El bloque de transformación inicial 374 tiene preferiblemente
dimensiones máximas que pueden seleccionar un usuario y son, por
ejemplo, los píxeles 64x64. El bloque de transformación inicial 374
es designado el bloque de transformación actual.
El bloque de función 376 indica que una relación
señal-ruido (SNR) actual máxima está calculada en
relación con el bloque de transformación actual. La relación
señal-ruido se calcula preferiblemente como la
relación de la varianza de los valores de los componentes de color
del píxel dentro del bloque de transformación actual (es decir, la
señal) hasta la varianza de los valores de componentes del color de
los píxeles asociados al error estimado 110 (figura 3).
El bloque de función 378 indica que el bloque de
transformación actual (por ejemplo, bloque de transformación 374)
está subdividido, por ejemplo, en cuatro subbloques iguales
380a-380d, las transformaciones afines se
determinan para cada uno de los subbloques
380a-380d, y se determina una relación
señal-ruido futura con respecto, a las
transformaciones afines. La relación señal-ruido
futura se calcula básicamente de la misma manera que la relación
señal-ruido actual descrita en relación con el
bloque de función 376.
El bloque de averiguación 382 representa una
averiguación en cuanto a si la futura relación
señal-ruido es mayor que la relación
señal-ruido actual en mayor medida que el valor
umbral seleccionado por el usuario. Esta averiguación representa
una determinación que una posterior subdivisión del actual bloque de
transformación (por ejemplo, bloque de transformación 374)
mejoraría la precisión de las transformaciones afines al menos en
cuanto al valor umbral. Siempre que la futura relación
señal-ruido sea mayor que la actual relación
señal-ruido, por un valor superior al umbral, el
bloque de averiguación 382 procede con el bloque de función 384, y
si no con el bloque de función 388.
El bloque de función 384 indica que los
subbloques 380a-380d son designados sucesivamente el
bloque de transformación actual, y cada uno es analizado para
determinar si debe ser subdividido. A modo ilustrativo, el subbloque
380a es designado la transformación actual y se procesa según el
bloque de función 376 y posteriormente subdividido en subbloques
386a-386d. El bloque de función 388 indica que el
siguiente bloque sucesivo de transformación 374' es identificado y
designado un bloque de transformación inicial o actual.
\vskip1.000000\baselineskip
Las figuras 17A y B son un diagrama por bloques
funcional de un método de extrapolación de precompresión 400 para
extrapolar características de imagen de configuración arbitraria a
una configuración predefinida para facilitar la compresión de
acuerdo con el bloque de función 112 del proceso codificador 64
(ambas figuras 3). El método de extrapolación 400 permite que la
compresión del bloque de función 112 sea realizada de una manera
convencional tal como DCT o compresión por wavelets o reticular,
como se describe anteriormente.
Los métodos de compresión de imágenes fijas
convencionales como la compresión por wavelets o reticular o
transformadas de coseno discretas (DCT) funcionan con matrices
rectangulares de píxeles. Sin embargo, como se describe
anteriormente, los métodos de la presente invención son aplicables
a las características de imagen o a los objetos de configuración
arbitraria. La extrapolación de dichos objetos o características de
imagen a una configuración de matriz de píxeles rectangular permite
el uso de los métodos convencionales de compresión de imágenes fijas
tales como compresión reticular o por wavelets o DCT. El método de
extrapolación 400 se describe en relación a las figuras
18A-18D, que son las representaciones de la pantalla
de visualización 50 en las cuales se renderiza un objeto simple 402
para mostrar varios aspectos del método de extrapolación 400.
El bloque de función 404 indica que un límite
del bloque de extrapolación 406 está definido alrededor del objeto
402. El límite del bloque de .extrapolación 406 es preferiblemente
rectangular. Por lo que respecta a la figura 18A, la formación del
límite del bloque de extrapolación 406 alrededor del objeto 402 se
basa en una identificación de un perímetro 408 del objeto 402
mediante, por ejemplo, el método de segmentación del objeto 140
(figura 4). El límite del bloque de extrapolación 406 se muestra
abarcando al objeto 402 en su totalidad para ilustrar. Como se
puede observar, el límite del bloque de extrapolación 406 podría
abarcar alternativamente solo una porción del objeto 402. Según lo
descrito en relación con el método de segmentación del objeto 140,
los píxeles incluidos en el objeto 402 tienen valores de componentes
del color que difieren de los de los píxeles no incluidos en el
objeto 402.
El bloque de función 410 indica que todos los
píxeles 412 limitados por el límite del bloque de extrapolación 406
y no incluidos en el objeto 402 son asignados un valor predefinido
como, por ejemplo, un valor cero para cada uno de los componentes
del color.
El bloque de función 414 indica que las líneas
horizontales de los píxeles dentro del límite del bloque de
extrapolación 406 se exploran para identificar líneas horizontales
con segmentos de píxeles horizontales que tienen valores de
componente de color cero y diferentes a cero.
El bloque de función 416 representa una
averiguación en cuanto a si los segmentos de píxeles horizontales
con valores de componentes de color cero están limitados en ambos
extremos por el perímetro 408 del objeto 402. En relación con la
figura 18B, la región 418 representa los segmentos de píxeles
horizontales con valores de componente del color cero que están
limitados en ambos extremos por el perímetro 408. Las regiones 420
representan los segmentos de píxeles horizontales que tienen valores
de componente del color cero y están limitados solamente en un
extremo por el perímetro 408. El bloque de función 416 procede al
bloque de función 426 para las regiones 418 en las cuales los
segmentos de píxeles tienen valores de componente del color cero
limitados en ambos extremos por el perímetro 408 del objeto 402, y
si no procede con el bloque de función 422.
El bloque de función 422 indica que los píxeles
en cada segmento de píxeles horizontal de una región 420 se les
asigna valores de componente del color de un píxel 424 (solamente
los que se muestran como ejemplo) en las correspondientes líneas
horizontales y el perímetro 408 del objeto 402. Alternativamente,
los valores de componente del color asignados a los píxeles en las
regiones 420 se relacionan funcionalmente con los valores de
componente del color de los píxeles 424.
El bloque de función 426 indica que a los
píxeles en cada segmento de píxeles horizontales de la región 418
se les asigna valores de componente del color correspondientes con y
preferiblemente iguales a una media de los valores de componente
del color de los píxeles 428a y 428b que se encuentran en las
correspondientes líneas horizontales y en el perímetro 408.
El bloque de función 430 indica que las líneas
verticales de los píxeles dentro del límite del bloque de
extrapolación 406 se exploran para identificar líneas verticales con
segmentos de píxeles verticales que tienen valores de componente del
color cero y diferentes a cero.
El bloque de función 432 representa una
averiguación en cuanto a si los segmentos de píxeles verticales con
valores de componentes de color cero están limitados en ambos
extremos por el perímetro 408 del objeto 402. En relación con la
figura 18C, la región 434 representa los segmentos de píxeles
verticales con valores de componente del color cero que están
limitados en ambos extremos por el perímetro 408. Las regiones 436
representan los segmentos de píxeles verticales que tienen valores
de componente del color cero y están limitados solamente en un
extremo por el perímetro 408. El bloque de función 432 procede al
bloque de función 444 para la región 434 en, la cual los segmentos
de píxeles verticales tienen valores de componente del color cero
limitados en ambos extremos por el perímetro 408 del objeto 402, y
si no procede con el bloque de función 438.
El bloque de función 438 indica que los píxeles
en cada segmento de píxeles verticales de una región 436 se les
asigna valores de componente del color de píxeles 442 (solamente los
que se muestran como ejemplo) en las correspondientes líneas
verticales y el perímetro 408 del objeto 402. Alternativamente, los
valores de componente del color asignados a los píxeles en la
región 436 sé relacionan funcionalmente con los valores de
componente del color de los píxeles 442.
El bloque de función 444 indica que a los
píxeles en cada segmento de píxeles verticales de la región 434 se
les asigna valores de componente del color correspondientes con y
preferiblemente iguales a una media de los valores de componente
del color de los píxeles 446a y 446b que se encuentran en las
correspondientes líneas horizontales y en el perímetro 408.
El bloque de función 448 indica que los píxeles
que están en los segmentos de píxeles verticales y horizontales a
los que se les asignan valores de componente del color según este
método se les asigna valores de componente del color que se
relacionan con, y preferiblemente son la media de los valores de
componente del color de otro modo asignados a los píxeles según los
segmentos de píxeles horizontales y verticales.
Ejemplos de píxeles asignados dichos valores de
componente del color compuesto son los píxeles de las regiones 418 y
434.
El bloque de función 450 indica que las regiones
de píxeles 452 limitadas por el límite del bloque de extrapolación
406 y el perímetro de no intersección 408 del objeto 402 a lo largo
de una línea horizontal o vertical se asignan valores de componente
del color compuesto relativos a, y preferiblemente equivalentes a
la media de los valores de componente del color asignados a los
píxeles adyacentes. Por lo que respecta a la figura 18D, a cada uno
de los píxeles 454 de las regiones 452 se le asigna un valor de
componente del color que es preferiblemente la media de los valores
de componente del color de los píxeles 456a y 456b alineados con el
píxel 454 a lo largo de las respectivas líneas horizontales y
verticales y con valores de componente del color diferentes a cero
asignados previamente con este método.
Una ventaja del proceso de extrapolación del
objeto 400 es que se asignan suavemente valores variables de
componente del color a los píxeles no incluidos en el objeto 402 y
por lo tanto se optimizan las capacidades de compresión y la
precisión de los métodos convencionales de compresión de imágenes
fijas. Por el contrario, los métodos e imágenes espejo o acolchado
cero de la anterior técnica descrita por Chang et al.,
"Transform Coding of Arbitrarily-Shaped Image
Segments", ACM Multimedia, pp. 83-88, junio de
1993, aplican la compresión a objetos extrapolados que se rellenan
de los píxeles con valores de componentes del color cero como los
que se aplican en el bloque de función 410. El cambio de imagen
drástico que se produce entre un objeto, y las regiones acolchadas
cero introduce cambios de alta frecuencia que son difíciles de
comprimir o introducir artefactos de imagen en la compresión. El
método de extrapolación del objeto 400 supera dichas
desventajas.
La figura 19A es un diagrama por bloques
funcional de un método codificador 500 que emplea un método
codificador en pirámide laplaciano con los filtros únicos que
mantienen los aspectos no lineales de las características de la
imagen, como bordes, a la vez que proporciona alta compresión. Los
codificadores convencionales de pirámide laplacianos son descritos,
por ejemplo, en la pirámide laplaciana como un código compacto de
imagen por Bun y Addleson, IEEE Trans. Comm., Vol. 31, Nº 4, pp.
532-540, abril de 1983. El método codificador 500 es
capaz de proporcionar la codificación descrita en relación con el
bloque de función 112 del proceso codificador de compresión de vídeo
64 que se muestra en la figura 3, así como siempre que se sugiera o
se utilice la DCT en la codificación por wavelets. A modo de
ejemplo, el método codificador 500 se describe en relación con la
codificación de error estimado 110 (figura 3).
Un primer filtro de decimación 502 recibe la
información del píxel correspondiente a un error estimado 110
(figura 3) y filtra los píxeles según un criterio de filtrado. En un
método convencional en pirámide laplaciano, el filtro de decimación
es un filtro de paso bajo como una función de ponderación gaussiana.
Sin embargo, de acuerdo con el método codificador 500, el filtro de
decimación 502 emplea preferiblemente un filtro mediano y, más
específicamente, un filtro mediano inseparable de 3x3.
Para ilustrar esto, la figura 20A es una
representación simplificada de los valores de componente del color
para un componente del color (por ejemplo, rojo) para un conjunto o
matriz arbitraria de píxeles 504. Aunque se describe
particularmente en referencia a valores de componente del color
rojo, esta ilustración se aplica igualmente a los valores de
componente del color verde y azul de los píxeles 504.
En cuanto a la representación preferencial del
filtro de decimación 502, los bloques ~ de filtro 506 con
dimensiones de 3x3 píxeles se definen entre los píxeles 504. Para
cada bloque de píxeles 506, se identifica o selecciona el valor de
intensidad del píxel mediano. En cuanto a los bloques de píxeles
506a-506c, por ejemplo, el filtro de decimación 502
proporciona los valores respectivos de 8, 9, y 10, que se enumeran
como los primeros tres píxeles 512 en figura 20B.
Sin embargo, como se aprecia, el filtro de
decimación 502 podría emplear otros filtros medianos de acuerdo con
esta invención. Por consiguiente, para cada grupo de píxeles con
valores de componente del color {a_{0}, a_{1} ...,
a_{n-1}} del filtro mediano se seleccionaría un
valor mediano a_{M}.
Un primer filtro de 2x2 de muestreo de bajada
514 muestrea píxeles alternos 512 en dirección vertical y horizontal
para proporcionar una compresión adicional. La figura 20C representa
un conjunto comprimido de píxeles resultante 515.
Un filtro de 2x2 de muestreo de alzada 516
inserta un píxel de valor cero en el lugar de cada píxel 512 omitido
mediante el filtro de muestreo de bajada 514, y el filtro de
interpolación 518 asigna al píxel de valor cero un valor de píxel
que es la media de los píxeles adyacentes opuestos, o a un valor
asignado anteriormente si el píxel de valor cero no está entre un
par opuesto de píxeles de valor diferente a cero. Para ilustrar
esto, la figura 20D representa un conjunto o matriz resultante de
píxeles de valor 520.
Se toma una diferencia 522 entre los valores de
componente del color del conjunto de píxeles 504 y los
correspondientes valores de componente del color para el conjunto de
píxeles 520 para formar un componente de imagen de orden cero
I_{0}.
Un segundo filtro de decimación 526 recibe los
valores de componente del color correspondientes al conjunto de
píxeles comprimido 515 generado por un primer filtro de 2x2 de
muestreo de bajada 514. El filtro de decimación 526 es
preferiblemente idéntico al filtro de decimación 502 (por ejemplo,
un filtro mediano no separable de 3x3). Por consiguiente, el filtro
de decimación 526 funciona de manera semejante al filtro de
decimación 502 y entrega un conjunto o matriz comprimida de píxeles
como resultado (no se muestra) a un segundo filtro de 2x2 de
muestreo de bajada 528.
El filtro de muestreo de bajada 528 funciona de
manera similar al filtro de muestreo de bajada 514 y forma un
componente de imagen L2 de segundo orden, que también se entrega a
un filtro de 2x2 de muestreo de alzada 530 y un filtro de
interpolación 531 que funciona de manera semejante al filtro de
muestreo de alzada 516 y al filtro de interpolación 518,
respectivamente. Se toma una diferencia 532 entre los valores de
componente del color del conjunto de píxeles 515 y los valores de
componente del color resultantes proporcionados por el filtro de
interpolación 531 para formar un componente de imagen de primer
orden I_{1}.
Los 108 componentes de imagen
I_{0}, I1 y L2L son los respectivos conjuntos de valores de
componente del color que representan los valores de componente del
color para una matriz nxn de píxeles 504.
\vskip1.000000\baselineskip
El componente de imagen lo mantiene los
componentes de alta frecuencia (por ejemplo bordes) de una imagen
representada por el conjunto de píxeles originales 504. Los
componentes de imagen I_{1} y L_{2}, representan aspectos de
baja frecuencia de la imagen original. Los componentes de imagen
I_{0}, I_{1}, y L_{2} proporcionan la compresión relativa de
la imagen original. El componente de imagen I_{0} e I_{1}
mantiene las características de alta frecuencia (por ejemplo,
bordes) en un formato que sea altamente comprimible debida a la
correlación relativamente elevada entre los valores de los píxeles
adyacentes. El componente de imagen L_{2} no es fácilmente
comprimible porque incluye sobre todo características de imagen de
baja frecuencia, pero es un conjunto de tamaño relativamente
pequeño.
La figura 19B es un diagrama por bloques
funcional de un método descodificador 536 que descodifica o codifica
inversamente los componentes de imagen I_{0}, I_{1}, y L_{2}
generados por el método codificador 500. El método descodificador
536 incluye un primer filtro de 2x2 de muestreo de alzada 538 que
recibe el componente de imagen L, e interpone un píxel de valor
cero entre cada par adyacente de píxeles. Un filtro de interpolación
539 asigna al píxel de valor cero un valor del píxel que sea
preferiblemente un promedio de los valores de los píxeles
adyacentes, o un valor asignado anteriormente si el píxel de valor
cero no está entre un par de píxeles de valor no cero opuesto. Un
primer filtro de 2x2 de muestreo de alzada 538 funciona
sustancialmente de la misma manera que los filtros de muestreo de
alzada 516 y 530 de figura 19A; y el filtro de interpolación 539
funciona sustancialmente de la misma manera que los filtros de
interpolación 518 y 531.
Se determina una suma 540 entre el componente de
imagen I_{1} y los valores de componente del color
correspondientes al conjunto de píxeles descomprimidos generados
por el primer filtro de 2x2 de muestreo de alzada 538 y el filtro
de interpolación 539. Un segundo filtro de 2x2 de muestreo de alzada
542 interpone un píxel de valor cero entre cada par de píxeles
adyacentes generados por la suma 540. Un filtro de interpolación 543
asigna al píxel de valor cero un valor de píxel que incluye una
media de los valores de los píxeles adyacentes, o un valor
anteriormente asignado si el píxel de valor cero no está entre un
par opuesto de píxeles con valor diferente de cero. El filtro de
muestreo de alzada 542 y el filtro de interpolación 543 son
sustancialmente iguales que el filtro de muestreo de alzada 538 y
el filtro de interpolación 539, respectivamente.
Una suma 544 suma el componente de imagen lo con
los valores de componente del color que corresponden al conjunto de
píxeles descomprimidos generados por el segundo filtro de 2x2 de
muestreo de alzada 542 y el filtro de interpolación 543. La suma 544
proporciona un error estimado descomprimido 110 que corresponde al
error estimado 110 entregado al proceso codificador 500.
\vskip1.000000\baselineskip
Los procesos convencionales del codificador de
compresión vídeo, como MPEG-1 o
MPEG-2, utilizan solamente campos de vectores de
movimiento escaso para representar el movimiento de matrices de
píxeles significativamente más grandes de un tamaño y configuración
regular. Los campos de vectores de movimiento son escasos en el
sentido de que solo se utiliza un vector de movimiento para
representar el movimiento de una matriz de píxeles con dimensiones
de, por ejemplo, 16x16 píxeles. Los campos de vectores de movimiento
escaso, junto con la codificación de transformada de imágenes
subyacentes o píxeles mediante, por ejemplo, codificación de
transformada de coseno discreto (DCT) proporcionan codificación
convencional de compresión de vídeo.
En cambio, el proceso de codificación de
compresión de vídeo 64 (figura 3) utiliza los campos de vectores de
movimiento denso en los cuales los vectores de movimiento vienen
determinados para todos, o prácticamente todos, los píxeles de un
objeto. Tales campos de vectores de movimiento denso mejoran
significativamente la precisión con la cual se representa el
movimiento entre los píxeles correspondientes. Aunque la precisión
mejorada puede reducir significativamente los errores asociados a
las representaciones convencionales del campo de vectores de
movimiento escaso, la información adicional incluida en los campos
de vectores de movimiento denso representa un aumento de la
cantidad de la información que representa una secuencia de vídeo. De
acuerdo con esta invención, por tanto, los mismos campos de
vectores de movimiento denso son comprimidos o codificados para
mejorar la relación de compresión de esta invención.
La figura 21 es un diagrama por bloques
funcional de un proceso codificador de vector de movimiento 560 para
la codificación o compresión de los campos de vectores de
movimiento y, preferiblemente, los campos de vectores de movimiento
denso como los generados según la transformación de movimiento denso
96 de la figura 3. Como se aprecia, dichos campos de vectores de
movimiento denso de un objeto seleccionado tendrán normalmente una
mayor continuidad o "suavidad" que los píxeles subyacentes
correspondientes al objeto. En consecuencia, la compresión o
codificación de los campos de vectores de movimiento denso
alcanzarán una mayor relación de compresión que la conseguida por
la compresión o codificación de los píxeles subyacentes.
\newpage
El bloque de función 562 indica que un campo de
vectores de movimiento denso se obtiene para un objeto o una
porción de un objeto de acuerdo con, por ejemplo, los procesos del
bloque de función 96 descritos en relación con la figura 3. Por
consiguiente, el campo de vectores de movimiento denso corresponderá
a un objeto o a otra porción de imagen de configuración o tamaño
arbitrario.
El bloque de función 564 indica que la
configuración del campo de vectores de movimiento denso está
extrapolada a una configuración regular, y preferiblemente
rectangular, para facilitar la codificación o compresión.
Preferiblemente, la configuración del campo de vectores de escaso
movimiento es extrapolada a una configuración regular por el método
de extrapolación de precompresión 400 descrito en relación a las
figuras 17A, y 17B. Como se aprecia, los métodos de extrapolación
convencionales como un método de imagen espejo, podrían utilizarse
alternativamente.
El bloque de función 566 indica que el campo de
vectores de movimiento denso con su configuración regular
extrapolada está codificado o comprimido según transformaciones de
codificación convencionales como la transformada de coseno discreta
(DCT) o la compresión por wavelets o reticular, siendo esta primera
la opción preferencial.
El bloque de función 568 indica que el campo de
vectores de movimiento denso codificado se comprime o codifica aún
más mediante un método de compresión de imágenes fijas "sin
pérdidas" convencional como la codificación entrópica para formar
un campo de vectores de movimiento denso codificado 570. Dicho
método de compresión de imágenes fijas se describe en relación con
el bloque de función 114 de la figura 3.
\vskip1.000000\baselineskip
Por lo que respecta a la figura 3A, el proceso
codificador de compresión de vídeo 64 utiliza un objeto anterior
cuantificado 126 determinado en relación con un cuadro
N-1 anterior para codificar un objeto en un
siguiente cuadro sucesivo N. Por consiguiente, el proceso
codificador 64 requiere que el objeto anterior cuantificado 126
esté almacenado en una memoria búfer accesible. Con resoluciones de
visualización de vídeo convencionales, dicha memoria búfer
necesitaría una capacidad de al menos medio megabyte para almacenar
el objeto anterior cuantificado 126 solo para un cuadro de vídeo.
Los formatos de visualización de mayor resolución requerirían en
consecuencia memorias búfer superiores.
La figura 22 es un diagrama por bloques
funcional de un proceso codificador-descodificador.
(códec) del objeto cuantificado 600 que comprime y descomprime
selectivamente los objetos anteriores cuantificados 126 para reducir
la capacidad requerida de la memoria búfer del objeto
cuantificado.
El bloque de función 602 indica que cada objeto
cuantificado 126 de un cuadro de imagen está codificado bloque por
bloque mediante un método de compresión o codificación con pérdida
como la codificación de la transformada de coseno discreta (DCT) o
codificación por wavelets o de sub-banda reticular.
Tal y como se muestra en la figura 21, la información codificada
con pérdida puede experimentar un codificación adicional sin
pérdidas. Alternativamente, solamente puede utilizarse la
codificación sin pérdidas.
El bloque de función 604 indica que los objetos
codificados o comprimidos cuantificados están almacenados en una
memoria búfer (no se muestra).
El bloque de función 606 indica que los objetos
cuantificados codificados se recuperan de la memoria búfer en
previsión de procesar un objeto correspondiente en un siguiente
cuadro de vídeo sucesivo.
El bloque de función 608 indica que el objeto
cuantificado codificado se codifica a la inversa mediante, por
ejemplo, DCT o descodificación por wavelets según los procesos de
codificación empleados con respecto al bloque de función 602.
El proceso de códec 600 permite reducir la
capacidad de la correspondiente memoria búfer hasta casi el 80%,
dependiendo del cociente de compresión de vídeo total y de la
calidad deseada del vídeo resultante. Por otra parte, como se
aprecia, el proceso de códec 600 es igualmente aplicable al proceso
descodificador correspondiente al proceso codificador de compresión
de vídeo 64.
\vskip1.000000\baselineskip
El proceso codificador de compresión de vídeo 64
de la figura 3 proporciona representaciones codificadas o
comprimidas de las señales de vídeo correspondientes a las
secuencias de vídeo de múltiples cuadros de imagen. Las
representaciones comprimidas incluyen máscaras de objeto 66, puntos
de característica 68, coeficientes de transformación afines 104, y
datos de error comprimidos 116 del proceso codificador 64 y los
objetos maestro comprimidos 136 del proceso codificador 130. Estas
representaciones comprimidas facilitan el almacenamiento o
transmisión de la información de vídeo, y son capaces de alcanzar
cocientes de compresión de hasta el 300 por ciento más que los
conseguidos con métodos convencionales de compresión de vídeo como
MPEG-2.
\newpage
Sin embargo, como se aprecia, la recuperación de
dicha información de vídeo comprimida del. almacenamiento de datos o
la recepción de la transmisión de la información de vídeo requiere
que esté descodificada o descomprimida para reconstruir la señal de
vídeo original y así poder renderizarla mediante un dispositivo de
visualización como un dispositivo de pantalla de vídeo 52 (figuras
2A y 2B). Como en los procesos de codificación convencionales como
MPEG-1, MPEG-2, y H.26X, la
descompresión o descodificación de la información de vídeo es
básicamente el proceso inverso por el que la señal de vídeo original
se codifica o comprime.
La figura 23A es un diagrama por bloques
funcional de un proceso descodificador- de compresión de vídeo 700
para descomprimir la información de vídeo generada mediante el
proceso codificador de compresión de vídeo 64 de la figura 3. Con
objeto de conseguir coherencia con la descripción del proceso
codificador 64, el proceso descodificador 700 se describe en
relación con las figuras 2A y 2B. El proceso descodificador 700
recupera de la memoria o recibe como información de vídeo
codificada de transmisión que incluye máscaras de objeto 66, puntos
de característica 136, coeficientes de transformación afines 104, y
datos de error comprimidos 116.
El proceso descodificador 700 realiza las
operaciones que son la inversa del proceso codificador 64 (figura
3). Por consiguiente, cada una de las operaciones preferenciales
descritas anteriormente del proceso codificador 64 tiene una parte
de descodificación a la inversa.
El bloque de función 702 indica que las máscaras
de objeto 66, puntos de característica 68, coeficientes de
transformación afines 104, y datos de error comprimidos 116 se
recuperan de la memoria o se reciben como transmisión para procesado
mediante el proceso descodificador 700.
La figura 23B es un diagrama por bloques
funcional de un proceso descodificador de objetos maestro 704 para
descodificar o descomprimir el objeto maestro comprimido 136. El
bloque de función 706 indica que los datos del objeto maestro
comprimidos 136 son descodificados entrópicamente mediante el método
inverso de codificación entrópica convencional sin pérdidas en el
bloque de función 134 de la figura 3B. El bloque de función 708
indica que el objeto maestro descodificado entrópicamente del bloque
de función 706 se descodifica siguiendo el proceso inverso de
codificación por wavelets convencional sin pérdidas usado en el
bloque de función 132 de la figura 3B.
El bloque de función 712 indica que las
transformaciones de movimiento denso, preferiblemente
transformaciones afines multidimensionales se generan desde
coeficientes afines 104. Preferiblemente, los coeficientes afines
104 se cuantifican de acuerdo con el método de transformación 350
(figura 12), y las transformaciones afines se generan de
coeficientes afines cuantificados realizando lo inverso de las
operaciones descritas en relación con el bloque de función 362
(figura 12).
El bloque de función 714 indica que una forma
cuantificada de un objeto 716 en un cuadro anterior
N-1 (por ejemplo, un objeto sólido rectangular 56a
en el cuadro de imagen 54a) proporcionado a través de un retraso de
sincronización 718 se transforma mediante una transformación de
movimiento denso para proporcionar una forma prevista del objeto
720 en un cuadro actual N (por ejemplo, un objeto sólido rectangular
56b en el cuadro de imagen 54b).
El bloque de función 722 indica que para el
cuadro de imagen N, el objeto actual previsto 720 se agrega a un
error cuantificado 724 generado de los datos de error comprimidos
116. Particularmente, el bloque de función 726 indica que los datos
de error comprimidos 116 se descodifican por un proceso inverso al
del proceso de compresión 114 (figura 3A). En la representación
preferencial, los bloques de función 114 y 726 se basan en un método
de compresión convencional de imágenes fijas sin pérdidas como la
codificación entrópica.
El bloque de función 728 indica que los datos de
error descodificados entrópicamente del bloque de función 726 son
descomprimidos o descodificados mediante un método convencional de
compresión de imágenes fijas con pérdida que corresponde al
utilizado en el bloque de función 112 (figura 3A). En la
representación preferencial, ladescompresión o descodificación del
bloque de función 728 se realiza mediante el proceso por wavelets o
sub-banda reticular o transformada de coseno
discreta (DCT).
El bloque de función 722 proporciona el objeto
cuantificado 730 para el cuadro N como la suma del objeto previsto
720 y el error cuantificado 724, que representan un objeto
reconstruido o descomprimido 732 que se entrega al bloque de función
718 para la reconstrucción del objeto en cuadros subsecuentes.
El bloque de función 734 indica que el objeto
cuantificado 732 está montado con - otros objetos de un cuadro de
imagen actual N para formar una señal de vídeo descomprimida.
\vskip1.000000\baselineskip
Las máscaras, objetos, sprites, y otras
características gráficas se representan comúnmente mediante el
contorno. Según se indica y explica en la figura 5A, por ejemplo, el
objeto sólido rectangular 56a está limitado por un perímetro o
contorno del objeto 142. A un proceso convencional de codificación o
compresión de contornos se lo conoce como codificación de
cadena.
\newpage
La figura 24A muestra un código en cadena
convencional de ocho puntos 800 del cual se definen los contornos
en una matriz de píxeles rectilínea convencional. Basado sobre una
localización actual X del píxel, una localización sucesiva
siguiente del píxel en el contorno se extiende en una de las
direcciones 802a-802h. El valor del código de
cadena para el siguiente píxel sucesivo es el valor numérico que
corresponde a la dirección concreta 802. A modo de ejemplo, la
dirección derecha, horizontal 802a corresponde al valor del código
de cadena O, y la dirección vertical hacia abajo 802g corresponde
al valor del código de cadena 6. Cualquier contorno continuo se
puede describir desde el código de cadena de ocho puntos 800.
En cuanto a la figura 24B, un contorno 804
representado por píxeles 806 designado X y AG se puede codificar de
una manera convencional por la secuencia del código de cadena
{00764432}. Particularmente, si comenzamos por el píxel X, los
píxeles A y B se colocan en la dirección 0 con respecto a los
píxeles X y A. El píxel C se coloca en la dirección 7 relativa al
píxel B. Los píxeles restantes D-G se colocan
igualmente en las direcciones correspondientes a los valores de
código de cadena enumerados anteriormente. En una representación
binaria, cada valor del código de cadena convencional es
representado mediante tres bits digitales.
La figura 25A es un diagrama por bloques
funcional de un proceso de código de cadena 810 de la presente
invención capaz de proporcionar cocientes de compresión de contorno
de al menos dos veces los de los procesos convencionales de código
de cadena. El proceso del código de cadena 810 alcanza tales
cocientes de compresión mejorados limitando el número de códigos de
cadena y definiéndolos con respecto a la alineación de pares de
píxeles adyacentes. Basado en la experimentación, se ha descubierto
que los códigos de cadena limitados del proceso del código de
cadena 810 representan directamente más del 99,8% de las
alineaciones de píxeles de los contornos de máscara u objeto. Las
modificaciones de código de cadena de casos especiales alojan menos
del 0,2% remanente de la alineación de píxeles tal y como se
describe en detalle más adelante.
El bloque de función 816 indica que un contorno
se obtiene de una máscara, objeto, o sprite. El contorno puede
obtenerse, por ejemplo, del proceso de segmentación del objeto 140
descrito en relación con las figuras 4 y 5.
El bloque de función 818 indica que se
identifica un píxel inicial en el contorno. El píxel inicial puede
identificarse por métodos comunes como por ejemplo, un píxel con
unas posiciones de coordenadas X e Y mínimas.
El bloque de función 820 indica que un código de
cadena predeterminado se asigna para representar la relación entre
el píxel inicial y el siguiente píxel adyacente en el contorno.
Preferiblemente, el código de cadena predeterminado se define para
que corresponda con la dirección hacia adelante.
La figura 25B es una representación diagramática
de un código de cadena de tres puntos 822 de la presente invención.
El código de cadena 822 incluye tres códigos de cadena 824a, 824b, y
824c que correspondan a una dirección hacia adelante 826a, una
dirección hacia la izquierda 826b, y una dirección hacia la derecha
826c de forma respetuosa. Se definen las direcciones
826a-826c en relación con una dirección de
alineación precedente 828 entre un píxel actual 830 y un píxel
adyacente 832 que representa al píxel precedente en el código de
cadena.
La dirección de alineación precedente 828 puede
extenderse en cualquiera de las direcciones 802 que se muestran en
la figura 24A, pero se muestran con una orientación específica (es
decir, derecha, horizontal) con objeto de ilustrar. La dirección
826ä se define, por lo tanto, al igual que la dirección 828. Las
direcciones 826b y 826c difieren de la dirección 828 por los
desplazamientos de un píxel hacia la izquierda y derecha.
Se ha determinado experimentalmente que algo más
del 50% de los códigos de cadena 824 corresponden a la dirección
hacia adelante 826a, y algo menos del 25% de los códigos de cadena
824 corresponden a cada una de las direcciones 826b y 826c.
El bloque de función 836 representa una
averiguación en cuanto a si el siguiente píxel adyacente en el
contorno se ajusta a una de las direcciones 826. Siempre que el
siguiente píxel adyacente en el contorno se ajuste a una de las
direcciones 826, el bloque de función 836 procede al bloque de
función 838, y si no procede con el bloque de función 840.
El bloque de función 838 indica que al siguiente
píxel adyacente se le asigna un código de cadena 824 que corresponde
a su dirección 826 relativa a la dirección 828 a lo largo de la cual
se alinea el precedente par de píxeles adyacentes.
El bloque de función 840 indica que una
secuencia de píxeles que se ajuste a una de las direcciones 826 sea
sustituida por la secuencia real de píxeles que no se ajuste. En
base a experimentos, se ha determinado que tales sustituciones se
presentarán normalmente en menos del 0,2% de secuencias de píxeles
en un contorno y pueden ser acogidas por una de seis modificaciones
de casos especiales.
La figura 25C es una representación diagramática
de las seis modificaciones de casos especiales 842 para convertir
secuencias de píxeles que no se ajustan a las secuencias de píxeles
que se ajustan a las direcciones 826. Dentro de cada modificación
842, se convierte una secuencia de píxeles 844 a una secuencia de
píxeles 846. En cada una de las secuencias de píxeles 844 de los
respectivos píxeles adyacentes X^{1}, X^{2}, A, B, la dirección
entre los píxeles A y B no se ajusta
a una de las direcciones 826 debido a la alineación del píxel A en relación a la alineación de los píxeles X^{1} y X^{2}.
a una de las direcciones 826 debido a la alineación del píxel A en relación a la alineación de los píxeles X^{1} y X^{2}.
En la secuencia de píxeles 844a, las
alineaciones iniciales de píxeles 850a y 852a representan un cambio
de dirección de ángulo recto que no se ajusta. Por consiguiente, en
la secuencia de píxeles 846a, el píxel A de la secuencia de píxeles
844a se omite, dando lugar a una dirección de píxeles 854a que se
ajusta a la dirección de píxeles 826a. Las modificaciones de la
secuencia de píxeles 842b-842f convierten de igual
forma las secuencias de píxeles que no se ajustan
844b-844f en secuencias que se ajustan
846b-846f, respectivamente.
Las modificaciones de la secuencia de píxeles
842 omiten los píxeles que causan alineaciones de dirección de
píxeles que cambian en 90º o más en relación con las alineaciones de
píxeles precedentes adyacentes X1 y X2. Un efecto es aumentar el
radio de curvatura mínimo de un contorno que representa un ángulo
recto en tres píxeles. Las modificaciones de píxeles 842 ocasionan,
por tanto, una pérdida menor del detalle extremadamente fino del
contorno. Sin embargo, de acuerdo con esta invención se ha
determinado que la pérdida de dichos detalles es aceptable bajo la
mayoría de las situaciones de visualización.
El bloque de función 860 representa una
averiguación en cuanto a si hay otro píxel en el contorno al que se
le ha de asignar un código de cadena. Siempre que haya otro píxel en
el contorno al que se le ha de asignar un código de cadena, el
bloque de función vuelve al bloque de función 836 y procede con el
bloque de función 862.
El bloque de función 862 indica que se eliminan
las direcciones de alineación de píxeles que no se ajustan y las
cuales se hayan introducido o incurrido mediante el proceso del
bloque de función 840. En una representación preferencial, los
cambios de dirección que no se ajustan pueden ser omitidos
simplemente volviendo al bloque de función 816 y repitiendo el
proceso 810 hasta que no queden secuencias de píxeles que no se
ajusten, lo cual se consigue normalmente en menos de 8 iteraciones.
En una representación alternativa, dichos cambios de dirección
incurridos que no se ajustan se pueden corregir en "tiempo
real" comprobando y corrigiendo cualquier cambio de dirección
incurrido que no se ajuste cada vez que se modifica un cambio de
dirección que no se ajusta.
El bloque de función 864 indica que se ha
generado un código de Huffman desde el código de cadena simplificado
resultante. Con los códigos de cadena 824a-824c
correspondientes a las direcciones 826A-826C que
ocurren al aproximadamente el 50%, 25% y 25% de píxeles en un
contorno, se asignan los respectivos códigos de Huffman de 0, 11 y
10. Dichos códigos de Huffman de primer orden permiten que el
proceso de cadena 810 represente contornos a una velocidad de bits
de menos de 1,5 bits por píxel en el contorno. Dicha velocidad de
bits representa aproximadamente una mejora de la relación de
compresión del 50% sobre los procesos convencionales de códigos de
cadena.
Como se aprecia una codificación Huffman de un
orden superior puede proporcionar cocientes de compresión más
elevados. Una codificación Huffman de un orden superior incluye, por
ejemplo, la asignación de valores predeterminados a secuencias
preseleccionadas de códigos Huffman de primer orden.
\vskip1.000000\baselineskip
La presente invención incluye generación de
sprites para su uso en relación con la codificación de determinado
vídeo de movimiento (película). Los mapas de bits se acrecientan en
las series de mapas de bits que abarcan una pluralidad de mapa de
bits secuenciales de imágenes secuenciales procedentes de una fuente
de la imagen. El aumento se utiliza para superar el problema de los
píxeles ocluidos donde los objetos o figuras se desplazan unos con
respecto a otros o donde una figura ocluye otra de forma parecida en
que una figura en primer plano ocluye el fondo. Por ejemplo, cuando
una figura en primer plano se mueve y deja ver un nuevo fondo, no
hay manera de construir ese nuevo fondo de un mapa de bits anterior
a menos que el mapa de bits anterior se mejorara primero incluyendo
píxeles que fueran a dejarse al descubierto en el subsiguiente mapa
de bits. Este método toma una imagen incompleta de una figura y
mira hacia adelante en el tiempo para encontrar cualquier píxel que
pertenezca a la imagen, pero no sea visible de forma inmediata. Esos
píxeles se utilizan para crear un mapa de bits compuesto de la
figura. Con el mapa de bits compuesto, cualquier vista futura de la
figura puede ser creada distorsionando el mapa de bits
compuesto.
El proceso de codificación comienza con un
operario que identifica las figuras y las partes de las figuras de
un mapa de bits actual a partir de una serie de mapas de bits
actual. Los puntos de característica o distorsión son seleccionados
por el operario en las - características de las partes sobre las
cuales las partes de las figuras se mueven. Una rejilla actual de
los triángulos se superpone sobre las partes del mapa de bits
actual. Los triángulos que constituyen la rejilla actual de
triángulos se forman conectando puntos de distorsión adyacentes.
Los puntos de distorsión son los vértices de los triángulos. La
ubicación actual de cada triángulo en el mapa de bits actual viene
determinada y almacenada en el dispositivo de almacenamiento. Una
porción de datos del mapa de bits actual que define la primera
imagen dentro de la ubicación actual de cada triángulo se conserva
para su uso posterior.
Un mapa de bits sucesivo que define una segunda
imagen de la serie de mapa de bits actual se recibe de la fuente de
imágenes y las figuras y partes de la figura son identificadas por
el operario. Después, la rejilla de triángulos actual del mapa de
bits actual se superpone al mapa de bits siguiente. Los puntos de
distorsión de la rejilla actual de triángulos se alinean de nuevo
para coincidir con las características de las figuras
correspondientes en el mapa de bits sucesivos. Los puntos de la
distorsión realineada dan forma a una rejilla sucesiva de
triángulos en el mapa de bits subsiguiente de la segunda imagen. La
ubicación siguiente de cada triángulo en el mapa de bits
subsiguiente viene determinada y almacenada en el dispositivo de
almacenamiento. Una porción de datos del mapa de bits siguiente que
define la segunda imagen dentro de la ubicación subsiguiente de cada
triángulo se conserva para su uso posterior.
El proceso de determinación y almacenamiento de
las ubicaciones actuales y subsiguientes de cada triángulo se
repite para la pluralidad de mapa de bits secuenciales de la serie
de mapa de bits actual. Cuando se termina ese proceso, una imagen
media de cada triángulo en la serie de mapa de bits actual se
determina de los datos conservados por separado. La imagen media de
cada triángulo se almacena en el dispositivo de almacenamiento.
Durante la reproducción, la imagen media de cada
triángulo de la serie de mapa de bits actual y la ubicación actual
de cada triángulo del mapa de bits actual se recupera del
dispositivo de almacenamiento. Un mapa de bits previsto se genera
calculando una solución de transformación para transformar la imagen
media de cada triángulo en las series de mapas de bits actual en la
localización actual de cada triángulo del mapa de bits actual y
aplicar la solución de transformación a la imagen media de cada
triángulo. El mapa de bits previsto se pasa al monitor para su
visualización.
Con respecto a un vídeo de movimiento
determinado de reproducción (videojuego) en el que las imágenes
vienen determinadas por un programa de control en la reproducción,
se almacena un mapa de bits del sprite en su totalidad en un
dispositivo de almacenamiento. El mapa de bits del sprite abarca una
pluralidad de bits de datos que definen una imagen del sprite. El
mapa de bits del sprite se visualiza en un monitor, y las partes del
sprite son identificadas por un operario y los puntos de distorsión
seleccionados para las partes del sprite.
Una rejilla de triángulos se superpone sobre las
partes del mapa de bits del sprite. Los triángulos que constituyen
la rejilla de triángulos están formados mediante la conexión de
puntos de distorsión adyacentes. Los puntos de distorsión son los
vértices de los triángulos. La ubicación de cada triángulo del mapa
de bits del sprite se determina y almacena en el dispositivo de
almacenamiento.
Durante la reproducción, se recibe una
localización subsiguiente de cada triángulo de un programa de
control. El mapa de bits del sprite y la ubicación subsiguiente de
cada triángulo en el mapa de bits del sprite se llaman desde el
dispositivo de almacenamiento y se pasan al procesador de
visualización. La localización subsiguiente de cada triángulo
también se pasa al procesador de visualización.
Se calcula una solución de transformación para
cada triángulo en el mapa de bits del sprite. Un mapa de bits
sucesivo se genera en el procesador de visualización al aplicar la
solución de transformación de cada triángulo derivado del mapa de
bits del sprite que define la imagen del sprite dentro de la
localización de cada triángulo. El procesador de visualización pasa
el mapa de bits subsiguiente del sprite a un monitor para su
visualización. Este proceso se repite para cada localización
subsiguiente de cada triángulo solicitado por el programa de
control.
Tal y como se muestra en la figura 26, un
procedimiento de codificación para un vídeo de movimiento de
película comienza en el paso 900 por la CPU 22 recibiendo de una
fuente de imagen una serie de mapas de bits actuales. La serie de
mapas de bits actual abarca una pluralidad de mapas de bits
secuenciales de imágenes secuenciales. La serie de mapas de bits
actuales tiene un mapa de bits actual que abarca una pluralidad de
bits de datos que definen una primera imagen de la fuente de
imágenes. La primera imagen abarca al menos una figura con como
mínimo una parte.
Siguiendo con el paso 902, la primera imagen se
le visualiza al operario en el monitor 28. En el monitor 28, el
operario identifica las figuras de la primera imagen en el mapa de
bits actual. Las partes de la figura en el mapa de bits actual son
identificadas por el operario en el paso 904.
Después, en el paso 906, el operario selecciona
los puntos de característica o distorsión en el mapa de bits
actual. Se seleccionan los puntos de distorsión de modo que los
puntos de distorsión coincidan con las características en el mapa
de bits donde es probable que se produzca el movimiento relativo de
una parte. Se entiende por los expertos en esta técnica que las
figuras, las partes de las figuras y los puntos de distorsión en un
mapa de bits se pueden identificar por el sistema informático 20 o
con ayuda del mismo. Sin embargo, lo ideal es que el operario
identifique las figuras, las partes de las figuras y los puntos de
distorsión en un mapa de bits.
Al proceder con el paso 908, una rejilla actual
de triángulos es superpuesta sobre las partes del mapa de bits
actual por el sistema informático 20. En cuanto a la figura 27A, la
rejilla actual abarca triángulos formados mediante la conexión de
puntos de distorsión adyacentes. Los puntos de distorsión forman los
vértices de los triángulos. Concretamente, la primera imagen del
actual mapa de bits abarca una figura, que es una persona 970. La
persona 970 tiene seis partes correspondientes a la cabeza 972,
torso 974, un brazo derecho 976, un brazo izquierdo 978, la pierna
derecha 980, y la pierna izquierda 982, Los puntos de distorsión se
seleccionan en cada parte de la persona 970 de modo que los puntos
de distorsión coincidan con las características donde es probable
que se produzca el movimiento relativo de una parte. Una rejilla
actual se superpone a cada parte con los triángulos de cada rejilla
actual formada mediante la conexión de los puntos adyacentes de
distorsión. Los puntos de distorsión son por tanto los vértices de
los
triángulos.
triángulos.
En el paso 910, el sistema informático 20
determina una ubicación actual de cada triángulo en el mapa de bits
actual. La localización actual de cada triángulo en el mapa de bits
actual viene definida por la ubicación de los puntos de distorsión
que forman los vértices del triángulo. En el paso 912, la
localización actual de cada triángulo se almacena en el dispositivo
de almacenamiento. Una porción de los datos derivados del mapa de
bits actual que define la primera imagen dentro de la ubicación
actual de cada triángulo se conserva en el paso 914.
\newpage
Después, en el paso 916, un siguiente mapa de
bits de la actual serie de mapa de bits es recibido por la CPU 22.
El mapa de bits sucesivo abarca una pluralidad de los bits de datos
que definen una segunda imagen de la serie de mapa de bits actual.
La segunda imagen puede o no puede incluir las figuras que
corresponden a las figuras de la primera imagen. Para los pasos
siguientes, se asume que la segunda imagen tiene figuras que
corresponden con las figuras de la primera imagen. En el paso 918,
la rejilla actual de triángulos se superpone al mapa de bits
sucesivo. La segunda imagen con la rejilla triangular superpuesta se
visualiza en el monitor del operario 28.
En el paso 920, los puntos de distorsión son
realineados para que coincidan con las características
correspondientes en el mapa de bits sucesivo por el operario con
ayuda del sistema informático 20. El sistema informático 20
realinea la distorsión a través de la correspondencia de bloques.
Cualquier error es corregido por el operario. En cuanto a la figura
27B, los puntos de distorsión realineados forman una rejilla
sucesiva de triángulos. Los puntos de distorsión realineados son
los vértices de los triángulos. Más específicamente, la segunda
imagen del mapa de bits sucesivo de la persona 200 incluye cabeza
972, torso 974, brazo derecho 976, brazo izquierdo 978, pierna
derecha 980, y pierna izquierda 982. En la segunda imagen, sin
embargo, se eleva el brazo derecho 980. Las rejillas actuales de la
primera imagen se han superpuesto sobre cada parte y sus puntos de
distorsión realineados para que coincidan con las características
correspondientes en la segunda imagen. Los puntos de distorsión
realineados definen las sucesivas rejillas de triángulos. Las
rejillas sucesivas abarcan los triángulos formados conectando los
puntos de distorsión realineados. Así, el punto de distorsión
realineado forma los vértices de los triángulos de las rejillas
sucesivas.
Al proceder con el paso 922, el sistema
informático 20 determina una localización sucesiva de cada triángulo
del mapa de bits sucesivo. En el paso 924, la localización sucesiva
de cada triángulo del mapa de bits sucesivo se almacena en el
dispositivo de almacenamiento. Se retiene una parte de los datos
derivados del mapa de bits sucesivo que define la segunda imagen
dentro de la localización sucesiva de cada triángulo en el paso 926.
El paso 926 lleva al paso decisivo 928 donde se determina si existe
un siguiente mapa de bits sucesivo.
Si existe un siguiente mapa de bits sucesivo, el
ramal YES del paso decisivo 928 lleva al paso 930 donde el mapa de
bits sucesivo se convierte en el mapa de bits actual. El paso 930
vuelve al paso 916 donde la CPU 22 recibe un mapa de bits sucesivo
de la serie de mapa de bits actual. Si no existe un siguiente mapa
de bits sucesivo, el ramal NO del paso decisivo 928 lleva al paso
932 donde es determina una imagen media para cada triángulo de la
serie de mapa de bits actual. La imagen media es el valor mediano de
los píxeles de un triángulo. El uso de la imagen media hace que el
proceso sea menos susceptible a la degeneración. Al proceder con el
paso 934, la imagen media de cada triángulo de la serie de mapa de
bits actual se almacena en el dispositivo de almacenamiento.
Después, en el paso 936, la localización actual
de cada triángulo en el mapa de bits actual se recupera desde el
dispositivo de almacenamiento. Una solución de transformación afín
para transformar la imagen media de cada triángulo a la
localización actual del triángulo en el mapa de bits actual es
calculada por el sistema informático 20 en el paso 938. En el paso
940, se genera un mapa de bits previsto aplicando la solución de
transformación de la imagen media de cada triángulo a la
localización actual de cada triángulo en el mapa de bits actual. El
mapa de bits previsto se compara con el mapa de bits actual en el
paso 942.
En el paso 944 se genera un mapa de bits de
corrección. El mapa de bits corregido abarca los bits de datos del
mapa de bits actual que no fueron predichos con exactitud por el
mapa de bits previsto. El mapa de bits corregido se almacena en el
dispositivo de almacenamiento del paso 948. El paso 948 lleva al
paso decisivo 950 donde se determina si existe un mapa de bits
sucesivo.
Si existe un mapa de bits sucesivo, el ramal YES
del paso decisivo 950 lleva al paso 952 donde el mapa de bits
sucesivo se convierte en el mapa de bits actual. El paso 952 vuelve
al paso 936 donde la localización actual de cada triángulo en el
mapa de bits actual se recupera desde el dispositivo de
almacenamiento. Si no existe un siguiente mapa de bits sucesivo el
ramal NO del paso decisivo 950 lleva al paso decisivo 954 donde se
determina si existe una serie de mapas de bits sucesivos. Si no
existe una serie de mapas de bits sucesivos, se acaba la
codificación y el ramal NO del paso decisivo 954 lleva al paso 956.
Si existe una serie de mapas de bits sucesivos, el ramal SI del
paso decisivo 954 lleva al paso 958 donde la CPU 22 recibe la serie
de mapas de bits sucesivos como la serie de mapas de bits actuales.
El paso 956 vuelve al paso 902 donde las figuras de la primera
imagen de la serie de mapas de bits actuales son identificadas por
el operario.
El proceso de la figura 26 describe la
generación de un sprite u objeto maestro 90 para uso del proceso
codificador 64 de la figura 3. El proceso de utilización del objeto
maestro 90 para formar objetos previstos 102 se describe en relación
con la figura 28.
Tal y como se muestra en la figura 28, el
procedimiento comienza con la recuperación en el paso 1000 de una
serie de mapas de bits actuales. La serie de mapas de bits actual
abarca una pluralidad de mapas de bits secuenciales de imágenes
secuenciales. La serie de mapas de bits actuales tiene un mapa de
bits actual que abarca una pluralidad de bits de datos que definen
una primera imagen de la fuente de imágenes. La primera imagen
abarca al menos una figura con como mínimo una parte.
Al proceder con el paso 1002, la imagen media de
cada triángulo de la serie de mapas de bits actuales se recupera
del dispositivo de almacenamiento. La imagen media de cada triángulo
entonces se pasa a un procesador de visualización (no se muestra)
en el paso 704. Como se aprecia, el sistema informático 20 (figura
1) puede incluir opcionalmente un procesador de visualización u
otros componentes dedicados para la ejecución de los procesos de
esta invención. Al proceder con el paso 1006, la localización
actual de cada triángulo en el mapa de bits actual se recupera del
dispositivo de almacenamiento. La localización actual de cada
triángulo se pasa al procesador de visualización en el paso
1008.
Después, el procesador de visualización calcula
en el paso 1010 una solución de transformación afín para transformar
la imagen media de cada triángulo a la localización actual de cada
triángulo en el mapa de bits actual. Al proceder con el paso 1012,
el procesador de visualización genera un mapa de bits previsto
aplicando la solución de transformación para transformar la imagen
media de cada triángulo a la localización actual de cada triángulo
en el mapa de bits actual.
En el paso 1014, se recupera un mapa de bits de
corrección del dispositivo de almacenamiento para el mapa de bits
actual. El mapa de bits de corrección se pasa al procesador de
visualización en el paso 716. Un mapa de bits de visualización se
genera en el procesador de visualización superponiendo el mapa de
bits previsto con el mapa de bits de corrección. El procesador de
visualización retiene una copia de la imagen media de cada triángulo
y pasa el mapa de bits de visualización al búfer del cuadro para su
visualización en el monitor.
Después, en el paso decisivo 1020, se determina
si existe un mapa de bits sucesivo de la serie de mapa de bits
actual; Si existe un mapa de bits sucesivo de la serie de mapa de
bits actual, el ramal YES del paso decisivo 1020 lleva al paso
1022. En el paso 1022, el mapa de bits sucesivo se convierte en el
mapa de bits actual. El paso 1022 vuelve al paso 1006 donde la
localización de cada triángulo en el mapa de bits actual se recupera
del dispositivo de almacenamiento.
Al volver al paso decisivo 1020, si no existe un
mapa de bits sucesivo de la serie de mapa de bits actual, el ramal
NO del paso decisivo 1020 lleva al paso decisivo 1024. En el paso
decisivo 1024, se determina si existe una serie de mapa de bits
sucesivo. Si no existe una serie de mapas de bits sucesivos, se
acaba el proceso y el ramal NO del paso decisivo 1024 lleva al paso
1026. Si existe una serie de mapas de bits sucesivos, el ramal YES
del paso decisivo 1024 lleva al paso 1028. En el paso 1028, la serie
de mapas de bits sucesivos se convierte en la serie de mapas de bits
actuales. El paso 1028 vuelve al paso 1000.
Claims (17)
-
\global\parskip0.950000\baselineskip
1. Un método de descodificar objetos de vídeo plurales en una secuencia de vídeo, para usar en un descodificador de vídeo basados en objetos, donde el método abarca:- la recepción de datos codificados para los objetos de vídeo plurales en la secuencia de vídeo, en donde los objetos de vídeo plurales incluyen un primer objeto de vídeo y un segundo objeto de vídeo, y en donde los datos codificados incluyen:
- datos intracodificados para el primer objeto de vídeo, en donde los datos intracodificados para el primer objeto de vídeo abarcan un sprite, el cual abarca a su vez un mapa de bits formado de la combinación de valores del píxel para los píxeles del primer objeto de vídeo en diversos momentos plurales en la secuencia de vídeo de modo que el mapa de bits representa porciones del primer objeto de vídeo que son visibles en alguno, pero no necesariamente en todos los diversos momentos plurales;
- una o más máscaras que definen la forma del primer objeto de vídeo;
- uno o más parámetros de trayectoria para el primer objeto de vídeo en uno o más de los diversos momentos plurales, en donde el o los parámetros de trayectoria indican transformaciones para calcular valores de píxeles para píxeles del primer objeto de vídeo del sprite;
- datos intracodificados para el segundo objeto de vídeo;
- una o más máscaras que definen la forma del segundo objeto de vídeo;
- por lo menos uno de los diversos momentos plurales, uno o más parámetros de movimiento que indican transformaciones para calcular valores de píxeles para los píxeles del segundo objeto de vídeo; y
- una o más señales de error para el segundo objeto de vídeo para al menos uno de los diversos momentos plurales;
- la descodificación del sprite para el primer objeto de vídeo;
- la descodificación del primer objeto de vídeo la primera vez de los diversos momentos plurales, incluyendo la utilización de uno o más parámetros de trayectoria para el primer objeto de vídeo la primera vez para calcular los valores del píxel para los píxeles del primer objeto de vídeo la primera vez del sprite para el primer objeto de vídeo, en donde la o las máscaras que definen la forma del primer objeto de vídeo indican qué píxeles son parte del primer objeto de vídeo la primera vez;
- la descodificación del segundo objeto de. vídeo la primera vez, en donde la o las máscaras que definen la forma del segundo objeto de vídeo indican qué píxeles son parte del segundo objeto de vídeo la primera vez; y
- la descodificación del segundo objeto de vídeo la segunda vez de los diversos momentos plurales, incluyendo la utilización de uno o más parámetros de movimiento para el segundo objeto de vídeo la segunda vez para calcular los valores del píxel para los píxeles del segundo objeto de vídeo la segunda vez del segundo objeto de vídeo descodificado la primera vez, e incluyendo también la combinación de los valores del píxel calculados para los píxeles del segundo objeto de vídeo la segunda vez con una señal de error para el segundo objeto de vídeo la segunda vez, en donde la o las máscaras que definen la forma del segundo objeto de vídeo indican qué píxeles son parte del segundo objeto de vídeo la segunda vez.
\vskip1.000000\baselineskip
- 2. El método de la reivindicación 1 abarca además:
- la descodificación del primer objeto de vídeo la segunda vez, incluyendo la utilización de uno o más parámetros de trayectoria para el primer objeto de vídeo la segunda vez para calcular los valores de píxel para los píxeles del primer objeto de vídeo la segunda vez del sprite para el primer objeto de vídeo, en donde la o las máscaras que definen la forma del primer objeto de vídeo indican qué píxeles son parte del primer objeto de vídeo la segunda vez.
\vskip1.000000\baselineskip
- 3. El método de la reivindicación 2 abarca además:
- la composición del primer objeto de vídeo descodificado y el segundo objeto de vídeo descodificado la primera vez; y
- la composición del primer objetó de vídeo descodificado y el segundo objeto de vídeo descodificado la segunda vez.
\global\parskip1.000000\baselineskip
- 4. El método de la reivindicación 2 en donde los datos codificados incluyen además una o más señales de error para el primer objeto de vídeo, y en donde el método también abarca:
- durante la descodificación del primer objeto de vídeo la primera vez, la combinación de los píxeles calculados del primer objeto de vídeo la primera vez con una señal de error para el primer objeto de vídeo la primera vez; y
- durante la descodificación del primer objeto de vídeo la segunda vez, la combinación de los píxeles calculados del primer objeto de vídeo la segunda vez con una señal de error para el primer objeto de Vídeo la segunda vez.
\vskip1.000000\baselineskip
- 5. El método de la reivindicación 1 en donde el descodificador de vídeo basado en objetos comienza a descodificar los primeros y segundos objetos de vídeo por primera vez antes de terminar la recepción de los datos codificados por segunda vez.
- 6. Un método de procesamiento de datos codificados para objetos de vídeo plurales en una secuencia de vídeo, en donde los objetos de vídeo plurales incluyen un primer objeto de vídeo y un segundo objeto de vídeo, donde el método abarca:
- el procesamiento de datos intracodificados para el primer objeto de vídeo, en donde los datos intracodificados para el primer objeto de vídeo abarcan un sprite, el cual abarca a su vez un mapa de bits formado de la combinación de valores del píxel para los píxeles del primer objeto de vídeo en diversos momentos plurales en la secuencia de vídeo de modo que el mapa de bits representa porciones del primer objeto de vídeo que son visibles en alguno, pero no necesariamente en todos los diversos momentos plurales;
- el procesamiento de una o más máscaras que definen la forma del primer objeto de vídeo;
- el procesamiento de uno o más parámetros de trayectoria para el primer objeto de vídeo en uno o más de los diversos momentos plurales, en donde el o los parámetros de trayectoria indican transformaciones para calcular valores de píxeles para píxeles del primer objeto de vídeo del sprite;
- el procesamiento de datos intracodificados para el segundo objeto de vídeo;
- el procesamiento de una o más máscaras que definen la forma del segundo objeto de vídeo;
- el procesamiento de, al menos de uno de los diversos momentos plurales, uno o más parámetros de movimiento que indican transformaciones para calcular valores de píxeles para los píxeles del segundo objeto de vídeo; y
- el procesamiento de una o más señales de error para el segundo objeto de vídeo para al menos uno de los diversos momentos plurales;
- en donde los datos codificados son formateados para ser descodificados por un descodificador de vídeo basado en objetos mediante:
- la descodificación del sprite para el primer objeto de vídeo;
- la descodificación del primer objeto de vídeo la primera vez de los diversos momentos plurales, incluyendo la utilización de uno o más parámetros de trayectoria para el primer objeto de vídeo la primera vez para calcular los valores del píxel para los píxeles del primer objeto de vídeo la primera vez del sprite para el primer objeto de vídeo, en donde 1 a o las máscaras que definen la forma del primer objeto de vídeo indican qué píxeles son parte del primer objeto de vídeo la primera vez;
- la descodificación del segundo objeto de vídeo la primera vez, en donde la o las máscaras que definen la forma del segundo objeto de vídeo indican qué píxeles son parte del segundo objeto de vídeo la primera vez; y
- la descodificación del segundo objeto de vídeo la segunda vez de los diversos momentos plurales, incluyendo la utilización de uno o más parámetros de movimiento para el segundo objeto de vídeo la segunda vez para calcular los valores del píxel para los píxeles del segundo objeto de vídeo la segunda vez del segundo objeto de vídeo descodificado la primera vez, e incluyendo también la combinación de los valores del píxel calculados para los píxeles del segundo objeto de vídeo la segunda vez con una señal de error para el segundo objeto de vídeo la segunda vez, en donde la o las máscaras que definen la forma del segundo objeto de vídeo indican qué píxeles son parte del segundo objeto de vídeo la segunda vez.
\vskip1.000000\baselineskip
- 7. El método de la reivindicación 6 en donde la descodificación por un descodificador de vídeo basado en objetos abarca además:
- la descodificación del primer objeto de vídeo la segunda vez, incluyendo la utilización de uno o más parámetros de trayectoria para el primer objeto de vídeo la segunda vez para calcular los valores de píxel para los píxeles del primer objeto de vídeo la segunda vez del sprite para el primer objeto de vídeo, en donde la o las máscaras que definen la forma del primer objeto de vídeo indican qué píxeles son parte del primer objeto de vídeo la segunda vez.
\vskip1.000000\baselineskip
- 8. El método de cualquier reivindicación precedente, en donde la o las máscaras que definen la forma para el primer objeto de vídeo y la o las máscaras que definen la forma del segundo objeto de vídeo son máscaras binarias.
- 9. El método de cualquier reivindicación precedente, en donde la o las máscaras que definen la forma para el primer objeto de vídeo y la o las máscaras que definen la forma del segundo objeto de vídeo son máscaras alphachannel de múltiples bits.
- 10. El método de cualquier reivindicación precedente, en donde el primer objeto de vídeo representa el fondo en la secuencia de vídeo y el segundo objeto de vídeo representa un objeto de primer plano en la secuencia de vídeo.
- 11. El método de cualquier reivindicación precedente, en donde el segundo objeto de vídeo se divide en bloques, y en donde el o los parámetros de movimiento están dirigidos a los bloques del segundo objeto de vídeo.
- 12. El método de cualquier reivindicación precedente, en donde el o los parámetros de movimiento para el segundo objeto de vídeo son parámetros de trayectoria.
- 13. El método de cualquier reivindicación precedente, en donde los datos intracodificados para el segundo objeto de vídeo incluyen un sprite para el segundo objeto de vídeo, y en donde la descodificación del segundo objeto de vídeo la primera vez incluye la descodificación del sprite para el segundo objeto de vídeo.
- 14. El método de cualquier reivindicación precedente, en donde el o los parámetros de trayectoria para el primer objeto de vídeo se codifican en términos de coordenadas del píxel.
- 15. El método de cualquier reivindicación precedente, en donde la o las máscaras que definen la forma para el primer objeto de vídeo están en términos de sprite para el primer objeto de vídeo.
- 16. Un programa de ordenador que abarca medios de código de programas de ordenador adaptados para realizar todos los pasos de cualquiera de las reivindicaciones precedentes cuando el programa se ejecuta en un ordenador.
- 17. Un programa de ordenador de acuerdo con la reivindicación 16, que se plasma en un medio legible por ordenador.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US503195P | 1995-10-05 | 1995-10-05 | |
US5031P | 1995-10-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2334507T3 true ES2334507T3 (es) | 2010-03-11 |
Family
ID=21713781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES05013280T Expired - Lifetime ES2334507T3 (es) | 1995-10-05 | 1996-10-04 | Proceso para la descompresion de videos con base en el objeto empleando caracteristicas conformadas arbitrariamente. |
Country Status (10)
Country | Link |
---|---|
US (9) | US5825929A (es) |
EP (4) | EP1589765B1 (es) |
JP (3) | JP4242452B2 (es) |
AT (3) | ATE223134T1 (es) |
AU (1) | AU7388996A (es) |
CA (4) | CA2432741C (es) |
DE (4) | DE69637977D1 (es) |
ES (1) | ES2334507T3 (es) |
PT (1) | PT1589766E (es) |
WO (1) | WO1997013372A2 (es) |
Families Citing this family (383)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7907793B1 (en) | 2001-05-04 | 2011-03-15 | Legend Films Inc. | Image sequence depth enhancement system and method |
US8396328B2 (en) | 2001-05-04 | 2013-03-12 | Legend3D, Inc. | Minimal artifact image sequence depth enhancement system and method |
US6418424B1 (en) | 1991-12-23 | 2002-07-09 | Steven M. Hoffberg | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
US6400996B1 (en) | 1999-02-01 | 2002-06-04 | Steven M. Hoffberg | Adaptive pattern recognition based control system and method |
US6850252B1 (en) | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
US6313863B1 (en) * | 1994-07-29 | 2001-11-06 | Canon Kabushiki Kaisha | Image communication apparatus and system |
JP2870415B2 (ja) * | 1994-08-22 | 1999-03-17 | 日本電気株式会社 | 領域分割方法および装置 |
JP3405864B2 (ja) * | 1995-09-12 | 2003-05-12 | 富士通株式会社 | 演算装置、相関演算装置、動画像圧縮装置、ずれ検出方法およびずれ検出装置 |
US6037988A (en) * | 1996-03-22 | 2000-03-14 | Microsoft Corp | Method for generating sprites for object-based coding sytems using masks and rounding average |
US6215910B1 (en) * | 1996-03-28 | 2001-04-10 | Microsoft Corporation | Table-based compression with embedded coding |
US6571016B1 (en) * | 1997-05-05 | 2003-05-27 | Microsoft Corporation | Intra compression of pixel blocks using predicted mean |
FR2752474B1 (fr) * | 1996-08-14 | 1998-12-31 | Iona Donescu | Procede de transformation du signal image sur des supports de forme arbitraire |
US5861920A (en) * | 1996-11-08 | 1999-01-19 | Hughes Electronics Corporation | Hierarchical low latency video compression |
US6037983A (en) * | 1996-11-08 | 2000-03-14 | Hughes Electronics Corporation | High quality reduced latency transmission of video objects |
DE19648963C1 (de) | 1996-11-26 | 1998-04-30 | Siemens Ag | Verfahren zur Bildcodierung eines digitalisierten Bildes, Verfahren zur Bilddecodierung eines digitalisierten Bildes und Anordnung zur Durchführung der Verfahren |
CN1216199A (zh) * | 1997-01-30 | 1999-05-05 | 松下电器产业株式会社 | 数字图象填补方法、图象处理装置及数据记录媒体 |
US6016163A (en) * | 1997-03-12 | 2000-01-18 | Scientific-Atlanta, Inc. | Methods and apparatus for comparing blocks of pixels |
JPH11112791A (ja) * | 1997-04-10 | 1999-04-23 | Ricoh Co Ltd | 画像形成装置 |
US6339616B1 (en) * | 1997-05-30 | 2002-01-15 | Alaris, Inc. | Method and apparatus for compression and decompression of still and motion video data based on adaptive pixel-by-pixel processing and adaptive variable length coding |
DE69836696T2 (de) * | 1997-05-30 | 2007-10-31 | Mediatek Inc. | Verfahren und vorrichtung zur durchführung einer hierarchischen bewegungsschätzung unter verwendung einer nicht-linearen pyramide |
EP0892559A1 (en) * | 1997-07-18 | 1999-01-20 | Texas Instruments Inc. | Padding of object border blocks for motion estimation and transform coding in an object-oriented video coder |
JP3042459B2 (ja) * | 1997-08-25 | 2000-05-15 | 日本電気株式会社 | 映像表示装置 |
WO1999017551A1 (de) * | 1997-09-29 | 1999-04-08 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zur speicherung von mindestens einem digitalen bild |
JP3966392B2 (ja) * | 1997-09-30 | 2007-08-29 | シャープ株式会社 | 画像合成通信装置 |
US6529635B1 (en) * | 1997-12-15 | 2003-03-04 | Intel Corporation | Shape-based image compression/decompression using pattern matching |
US6823016B1 (en) | 1998-02-20 | 2004-11-23 | Intel Corporation | Method and system for data management in a video decoder |
US6621932B2 (en) * | 1998-03-06 | 2003-09-16 | Matsushita Electric Industrial Co., Ltd. | Video image decoding and composing method and video image decoding and composing apparatus |
US6175654B1 (en) * | 1998-03-26 | 2001-01-16 | Intel Corporation | Method and apparatus for encoding data in an interframe video encoder |
US6400831B2 (en) | 1998-04-02 | 2002-06-04 | Microsoft Corporation | Semantic video object segmentation and tracking |
US6370487B1 (en) | 1998-04-23 | 2002-04-09 | Micron Technology, Inc. | Remote semiconductor microscopy |
US6055000A (en) * | 1998-05-28 | 2000-04-25 | Snk Corporation | Storage memory for images |
US6233358B1 (en) * | 1998-07-13 | 2001-05-15 | Intel Corporation | Image compression using directional predictive coding of the wavelet coefficients |
AR020608A1 (es) | 1998-07-17 | 2002-05-22 | United Video Properties Inc | Un metodo y una disposicion para suministrar a un usuario acceso remoto a una guia de programacion interactiva por un enlace de acceso remoto |
US6459822B1 (en) * | 1998-08-26 | 2002-10-01 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Video image stabilization and registration |
AUPP568698A0 (en) * | 1998-09-03 | 1998-10-01 | Canon Kabushiki Kaisha | Region-based image compositing |
US6711278B1 (en) | 1998-09-10 | 2004-03-23 | Microsoft Corporation | Tracking semantic objects in vector image sequences |
US6198833B1 (en) * | 1998-09-16 | 2001-03-06 | Hotv, Inc. | Enhanced interactive video with object tracking and hyperlinking |
US6263109B1 (en) * | 1998-09-25 | 2001-07-17 | Hewlett-Packard Company | Context-based ordering and coding of transform coefficient bit-planes for embedded bitstreams |
US6295371B1 (en) * | 1998-10-22 | 2001-09-25 | Xerox Corporation | Method and apparatus for image processing employing image segmentation using tokenization |
US6983018B1 (en) * | 1998-11-30 | 2006-01-03 | Microsoft Corporation | Efficient motion vector coding for video compression |
US6563953B2 (en) * | 1998-11-30 | 2003-05-13 | Microsoft Corporation | Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock |
US6400844B1 (en) | 1998-12-02 | 2002-06-04 | Xerox Corporation | Method and apparatus for segmenting data to create mixed raster content planes |
US6324305B1 (en) | 1998-12-22 | 2001-11-27 | Xerox Corporation | Method and apparatus for segmenting a composite image into mixed raster content planes |
US6373981B1 (en) | 1998-12-21 | 2002-04-16 | Xerox Corporation | Method and apparatus for segmenting data to create mixed raster content planes |
US6480632B2 (en) * | 1998-12-03 | 2002-11-12 | Intel Corporation | Method and apparatus to interpolate video frames |
DE19860038C1 (de) * | 1998-12-23 | 2000-06-29 | Siemens Ag | Verfahren zur Bewegungskorrektur bei Serien von Bildern eines starren Körpers |
US6222883B1 (en) * | 1999-01-28 | 2001-04-24 | International Business Machines Corporation | Video encoding motion estimation employing partitioned and reassembled search window |
US6747642B1 (en) | 1999-01-29 | 2004-06-08 | Nintendo Co., Ltd. | Method and apparatus for providing non-photorealistic cartoon outlining within a 3D videographics system |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
JP2000251086A (ja) * | 1999-02-26 | 2000-09-14 | Sony Corp | 曲線生成装置及び方法、並びにプログラム提供媒体 |
US6499060B1 (en) * | 1999-03-12 | 2002-12-24 | Microsoft Corporation | Media coding for loss recovery with remotely predicted data units |
GB2348064A (en) * | 1999-03-16 | 2000-09-20 | Mitsubishi Electric Inf Tech | Motion vector field encoding |
US7082162B2 (en) * | 1999-04-17 | 2006-07-25 | Pts Corporation | Segment-based encoding system including segment-specific metadata |
US7050503B2 (en) * | 1999-04-17 | 2006-05-23 | Pts Corporation | Segment-based encoding system using residue coding by basis function coefficients |
WO2000064148A1 (en) * | 1999-04-17 | 2000-10-26 | Pulsent Corporation | Method and apparatus for efficient video processing |
US7085319B2 (en) * | 1999-04-17 | 2006-08-01 | Pts Corporation | Segment-based encoding system using segment hierarchies |
US6600786B1 (en) * | 1999-04-17 | 2003-07-29 | Pulsent Corporation | Method and apparatus for efficient video processing |
JP2000341689A (ja) * | 1999-05-27 | 2000-12-08 | Sony Corp | ウェーブレット逆変換装置及び方法、並びにウェーブレット復号装置及び方法 |
US6618508B1 (en) * | 1999-07-09 | 2003-09-09 | Ati International Srl | Motion compensation device |
US6976223B1 (en) * | 1999-10-04 | 2005-12-13 | Xerox Corporation | Method and system to establish dedicated interfaces for the manipulation of segmented images |
US6717577B1 (en) | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
US6618048B1 (en) | 1999-10-28 | 2003-09-09 | Nintendo Co., Ltd. | 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components |
US7016540B1 (en) * | 1999-11-24 | 2006-03-21 | Nec Corporation | Method and system for segmentation, classification, and summarization of video images |
GB9928022D0 (en) | 1999-11-26 | 2000-01-26 | British Telecomm | Video coding and decording |
US6738424B1 (en) | 1999-12-27 | 2004-05-18 | Objectvideo, Inc. | Scene model generation from video for use in video processing |
JP2003521039A (ja) * | 2000-01-21 | 2003-07-08 | ソーセロン インコーポレイテッド | ネットワーク上で豊富なメディアコンテンツを送達するためのシステム及び方法 |
JP2001266159A (ja) * | 2000-03-17 | 2001-09-28 | Toshiba Corp | 物体領域情報生成方法及び物体領域情報生成装置並びに近似多角形生成方法及び近似多角形生成装置 |
US6888894B2 (en) * | 2000-04-17 | 2005-05-03 | Pts Corporation | Segmenting encoding system with image segmentation performed at a decoder and encoding scheme for generating encoded data relying on decoder segmentation |
US7082166B2 (en) * | 2000-04-17 | 2006-07-25 | Pts Corporation | Decoder for decoding segment-based encoding of video data using segmentation performed at a decoder |
US6856700B1 (en) | 2000-05-24 | 2005-02-15 | Microsoft Corporation | Palettized image compression |
US7084877B1 (en) * | 2000-06-06 | 2006-08-01 | General Instrument Corporation | Global motion estimation for sprite generation |
US6486881B2 (en) * | 2000-06-15 | 2002-11-26 | Lifef/X Networks, Inc. | Basis functions of three-dimensional models for compression, transformation and streaming |
US6643410B1 (en) * | 2000-06-29 | 2003-11-04 | Eastman Kodak Company | Method of determining the extent of blocking artifacts in a digital image |
EP1173026B1 (en) * | 2000-07-10 | 2008-07-30 | STMicroelectronics S.r.l. | A method of compressing digital images |
US6795068B1 (en) * | 2000-07-21 | 2004-09-21 | Sony Computer Entertainment Inc. | Prop input device and method for mapping an object from a two-dimensional camera image to a three-dimensional space for controlling action in a game program |
US6718066B1 (en) * | 2000-08-14 | 2004-04-06 | The Hong Kong University Of Science And Technology | Method and apparatus for coding an image object of arbitrary shape |
US6636214B1 (en) | 2000-08-23 | 2003-10-21 | Nintendo Co., Ltd. | Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode |
US7196710B1 (en) * | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US6980218B1 (en) * | 2000-08-23 | 2005-12-27 | Nintendo Co., Ltd. | Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system |
US6707458B1 (en) | 2000-08-23 | 2004-03-16 | Nintendo Co., Ltd. | Method and apparatus for texture tiling in a graphics system |
US6937245B1 (en) * | 2000-08-23 | 2005-08-30 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US6700586B1 (en) | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
US7538772B1 (en) * | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US7576748B2 (en) * | 2000-11-28 | 2009-08-18 | Nintendo Co. Ltd. | Graphics system with embedded frame butter having reconfigurable pixel formats |
US6811489B1 (en) | 2000-08-23 | 2004-11-02 | Nintendo Co., Ltd. | Controller interface for a graphics system |
US7071914B1 (en) | 2000-09-01 | 2006-07-04 | Sony Computer Entertainment Inc. | User input device and method for interaction with graphic images |
US6842483B1 (en) | 2000-09-11 | 2005-01-11 | The Hong Kong University Of Science And Technology | Device, method and digital video encoder for block-matching motion estimation |
US6959113B2 (en) * | 2000-09-29 | 2005-10-25 | Pentax Corporation | Arbitrary-shape image-processing device and arbitrary-shape image-reproducing device |
JP2002116729A (ja) * | 2000-10-04 | 2002-04-19 | Internatl Business Mach Corp <Ibm> | データ変換方法、画像表示方法、画像処理装置、画像表示装置、画像表示システムおよび画像処理システム |
US20020041339A1 (en) * | 2000-10-10 | 2002-04-11 | Klaus Diepold | Graphical representation of motion in still video images |
US20080040227A1 (en) | 2000-11-03 | 2008-02-14 | At&T Corp. | System and method of marketing using a multi-media communication system |
US7203648B1 (en) | 2000-11-03 | 2007-04-10 | At&T Corp. | Method for sending multi-media messages with customized audio |
US6990452B1 (en) | 2000-11-03 | 2006-01-24 | At&T Corp. | Method for sending multi-media messages using emoticons |
US7091976B1 (en) | 2000-11-03 | 2006-08-15 | At&T Corp. | System and method of customizing animated entities for use in a multi-media communication application |
US6963839B1 (en) | 2000-11-03 | 2005-11-08 | At&T Corp. | System and method of controlling sound in a multi-media communication application |
US6976082B1 (en) | 2000-11-03 | 2005-12-13 | At&T Corp. | System and method for receiving multi-media messages |
AU773926B2 (en) * | 2000-12-18 | 2004-06-10 | Canon Kabushiki Kaisha | Efficient video coding |
AUPR212600A0 (en) * | 2000-12-18 | 2001-01-25 | Canon Kabushiki Kaisha | Efficient video coding |
US20020164070A1 (en) * | 2001-03-14 | 2002-11-07 | Kuhner Mark B. | Automatic algorithm generation |
US7020672B2 (en) * | 2001-03-30 | 2006-03-28 | Koninklijke Philips Electronics, N.V. | Reduced complexity IDCT decoding with graceful degradation |
US6909746B2 (en) * | 2001-03-30 | 2005-06-21 | Koninklijke Philips Electronics N.V. | Fast robust data compression method and system |
US6943827B2 (en) * | 2001-04-16 | 2005-09-13 | Kddi Corporation | Apparatus for monitoring quality of picture in transmission |
US6901173B2 (en) * | 2001-04-25 | 2005-05-31 | Lockheed Martin Corporation | Scene-based non-uniformity correction for detector arrays |
US7103235B2 (en) * | 2001-04-25 | 2006-09-05 | Lockheed Martin Corporation | Extended range image processing for electro-optical systems |
US6973218B2 (en) * | 2001-04-25 | 2005-12-06 | Lockheed Martin Corporation | Dynamic range compression |
EP1405269A2 (en) | 2001-05-04 | 2004-04-07 | Legend Films, Llc | Image sequence enhancement system and method |
US8897596B1 (en) | 2001-05-04 | 2014-11-25 | Legend3D, Inc. | System and method for rapid image sequence depth enhancement with translucent elements |
US8401336B2 (en) | 2001-05-04 | 2013-03-19 | Legend3D, Inc. | System and method for rapid image sequence depth enhancement with augmented computer-generated elements |
US9286941B2 (en) | 2001-05-04 | 2016-03-15 | Legend3D, Inc. | Image sequence enhancement and motion picture project management system |
WO2002090286A1 (en) | 2001-05-04 | 2002-11-14 | Alpb - Aditivos E Ligantes Para Betões, Lda. | Lignosulfonate-based plasticizer admixtures |
US9031383B2 (en) | 2001-05-04 | 2015-05-12 | Legend3D, Inc. | Motion picture project management system |
US6757648B2 (en) * | 2001-06-28 | 2004-06-29 | Microsoft Corporation | Techniques for quantization of spectral data in transcoding |
JP2003078817A (ja) * | 2001-08-30 | 2003-03-14 | Matsushita Electric Ind Co Ltd | 画像合成方法、及び画像合成装置 |
US6882685B2 (en) | 2001-09-18 | 2005-04-19 | Microsoft Corporation | Block transform and quantization for image and video coding |
US7646816B2 (en) * | 2001-09-19 | 2010-01-12 | Microsoft Corporation | Generalized reference decoder for image or video processing |
US7671861B1 (en) * | 2001-11-02 | 2010-03-02 | At&T Intellectual Property Ii, L.P. | Apparatus and method of customizing animated entities for use in a multi-media communication application |
US6655214B2 (en) | 2001-11-12 | 2003-12-02 | U-E Systems, Inc. | Ultrasonic sensor having enhanced dynamic range |
US7460993B2 (en) * | 2001-12-14 | 2008-12-02 | Microsoft Corporation | Adaptive window-size selection in transform coding |
EP1579392A3 (en) * | 2001-12-14 | 2005-11-16 | SGDL Systèmes Inc. | Method and apparatus for generating m-degree forms in a n-dimension space |
AU2002351389A1 (en) * | 2001-12-17 | 2003-06-30 | Microsoft Corporation | Skip macroblock coding |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
EP2026277B1 (en) * | 2002-01-16 | 2012-07-25 | Vedanti Systems Limited | Optimized data transmission system and method |
JP4703114B2 (ja) * | 2002-01-22 | 2011-06-15 | マイクロソフト コーポレーション | 開始符号エミュレーションの防止およびデータ充填のための方法およびシステム |
US7149247B2 (en) * | 2002-01-22 | 2006-12-12 | Microsoft Corporation | Methods and systems for encoding and decoding video data to enable random access and splicing |
US7003035B2 (en) | 2002-01-25 | 2006-02-21 | Microsoft Corporation | Video coding methods and apparatuses |
US7602848B2 (en) * | 2002-03-26 | 2009-10-13 | General Instrument Corporation | Methods and apparatus for efficient global motion compensation encoding and associated decoding |
US7110459B2 (en) * | 2002-04-10 | 2006-09-19 | Microsoft Corporation | Approximate bicubic filter |
US7305034B2 (en) * | 2002-04-10 | 2007-12-04 | Microsoft Corporation | Rounding control for multi-stage interpolation |
US7620109B2 (en) * | 2002-04-10 | 2009-11-17 | Microsoft Corporation | Sub-pixel interpolation in motion estimation and compensation |
US7116831B2 (en) * | 2002-04-10 | 2006-10-03 | Microsoft Corporation | Chrominance motion vector rounding |
TWI310137B (en) * | 2002-04-19 | 2009-05-21 | Microsoft Corp | Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions |
US7242713B2 (en) * | 2002-05-02 | 2007-07-10 | Microsoft Corporation | 2-D transforms for image and video coding |
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 |
US7463684B2 (en) * | 2002-05-03 | 2008-12-09 | Microsoft Corporation | Fading estimation/compensation |
US20040001546A1 (en) | 2002-06-03 | 2004-01-01 | Alexandros Tourapis | Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation |
US7016547B1 (en) * | 2002-06-28 | 2006-03-21 | Microsoft Corporation | Adaptive entropy encoding/decoding for screen capture content |
US7085420B2 (en) * | 2002-06-28 | 2006-08-01 | Microsoft Corporation | Text detection in continuous tone image segments |
US7224731B2 (en) * | 2002-06-28 | 2007-05-29 | Microsoft Corporation | Motion estimation/compensation for screen capture video |
US7280700B2 (en) | 2002-07-05 | 2007-10-09 | Microsoft Corporation | Optimization techniques for data compression |
US7154952B2 (en) | 2002-07-19 | 2006-12-26 | Microsoft Corporation | Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures |
US7072512B2 (en) * | 2002-07-23 | 2006-07-04 | Microsoft Corporation | Segmentation of digital video and images into continuous tone and palettized regions |
US7379496B2 (en) * | 2002-09-04 | 2008-05-27 | Microsoft Corporation | Multi-resolution video coding and decoding |
US7421129B2 (en) * | 2002-09-04 | 2008-09-02 | Microsoft Corporation | Image compression and synthesis for video effects |
US7433824B2 (en) | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
EP2282310B1 (en) | 2002-09-04 | 2012-01-25 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
WO2004042676A2 (en) * | 2002-11-08 | 2004-05-21 | Jan Babic | Device providing simultaneous visibility of pictures in a field of 360 degrees around the device |
US6831868B2 (en) * | 2002-12-05 | 2004-12-14 | Intel Corporation | Byte aligned redundancy for memory array |
US7050078B2 (en) | 2002-12-19 | 2006-05-23 | Accenture Global Services Gmbh | Arbitrary object tracking augmented reality applications |
US7039247B2 (en) * | 2003-01-31 | 2006-05-02 | Sony Corporation | Graphic codec for network transmission |
DE602004002194T2 (de) * | 2003-02-13 | 2007-07-19 | Tellap Inc. | Schüttgutbehälter |
JP4194029B2 (ja) * | 2003-02-26 | 2008-12-10 | Kddi株式会社 | 画像劣化自動検出装置 |
US6923264B2 (en) * | 2003-03-05 | 2005-08-02 | Halliburton Energy Services, Inc. | Methods of fracturing subterranean zones, fracturing fluids and breaker activators therefor |
JP3810381B2 (ja) | 2003-04-25 | 2006-08-16 | オリンパス株式会社 | 画像表示装置、画像表示方法および画像表示プログラム |
CN101264001B (zh) * | 2003-04-25 | 2010-11-10 | 奥林巴斯株式会社 | 图像显示装置 |
JP4098662B2 (ja) * | 2003-04-30 | 2008-06-11 | 任天堂株式会社 | 塗り絵画像生成装置、プログラム及び方法 |
US7380028B2 (en) * | 2003-06-13 | 2008-05-27 | Microsoft Corporation | Robust delivery of video data |
US7558320B2 (en) * | 2003-06-13 | 2009-07-07 | Microsoft Corporation | Quality control in frame interpolation with motion analysis |
US7408986B2 (en) * | 2003-06-13 | 2008-08-05 | Microsoft Corporation | Increasing motion smoothness using frame interpolation with motion analysis |
US7471726B2 (en) * | 2003-07-15 | 2008-12-30 | Microsoft Corporation | Spatial-domain lapped transform in digital media compression |
US7738554B2 (en) | 2003-07-18 | 2010-06-15 | Microsoft Corporation | DC coefficient signaling at small quantization step sizes |
US7580584B2 (en) | 2003-07-18 | 2009-08-25 | Microsoft Corporation | Adaptive multiple quantization |
US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
US7602851B2 (en) | 2003-07-18 | 2009-10-13 | Microsoft Corporation | Intelligent differential quantization of video coding |
US7426308B2 (en) | 2003-07-18 | 2008-09-16 | Microsoft Corporation | Intraframe and interframe interlace coding and decoding |
US20050013494A1 (en) * | 2003-07-18 | 2005-01-20 | Microsoft Corporation | In-loop deblocking filter |
US8218624B2 (en) | 2003-07-18 | 2012-07-10 | Microsoft Corporation | Fractional quantization step sizes for high bit rates |
US7499495B2 (en) | 2003-07-18 | 2009-03-03 | Microsoft Corporation | Extended range motion vectors |
US7502415B2 (en) * | 2003-07-18 | 2009-03-10 | Microsoft Corporation | Range reduction |
US20050013498A1 (en) | 2003-07-18 | 2005-01-20 | Microsoft Corporation | Coding of motion vector information |
US7830963B2 (en) * | 2003-07-18 | 2010-11-09 | Microsoft Corporation | Decoding jointly coded transform type and subblock pattern information |
US8345754B2 (en) * | 2003-09-07 | 2013-01-01 | Microsoft Corporation | Signaling buffer fullness |
US7839930B2 (en) * | 2003-11-13 | 2010-11-23 | Microsoft Corporation | Signaling valid entry points in a video stream |
US8582659B2 (en) | 2003-09-07 | 2013-11-12 | Microsoft Corporation | Determining a decoding time stamp from buffer fullness |
US7961786B2 (en) * | 2003-09-07 | 2011-06-14 | Microsoft Corporation | Signaling field type information |
US7852919B2 (en) | 2003-09-07 | 2010-12-14 | Microsoft Corporation | Field start code for entry point frames with predicted first field |
US7092576B2 (en) * | 2003-09-07 | 2006-08-15 | Microsoft Corporation | Bitplane coding for macroblock field/frame coding type information |
US7577198B2 (en) * | 2003-09-07 | 2009-08-18 | Microsoft Corporation | Number of reference fields for an interlaced forward-predicted field |
US8085844B2 (en) * | 2003-09-07 | 2011-12-27 | Microsoft Corporation | Signaling reference frame distances |
US7620106B2 (en) | 2003-09-07 | 2009-11-17 | Microsoft Corporation | Joint coding and decoding of a reference field selection and differential motion vector information |
US7606308B2 (en) * | 2003-09-07 | 2009-10-20 | Microsoft Corporation | Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US8009739B2 (en) * | 2003-09-07 | 2011-08-30 | Microsoft Corporation | Intensity estimation/compensation for interlaced forward-predicted fields |
US7609762B2 (en) | 2003-09-07 | 2009-10-27 | Microsoft Corporation | Signaling for entry point frames with predicted first field |
US7369709B2 (en) * | 2003-09-07 | 2008-05-06 | Microsoft Corporation | Conditional lapped transform |
US7577200B2 (en) | 2003-09-07 | 2009-08-18 | Microsoft Corporation | Extended range variable length coding/decoding of differential motion vector information |
US7822123B2 (en) * | 2004-10-06 | 2010-10-26 | Microsoft Corporation | Efficient repeat padding for hybrid video sequence with arbitrary video resolution |
US7623574B2 (en) * | 2003-09-07 | 2009-11-24 | Microsoft Corporation | Selecting between dominant and non-dominant motion vector predictor polarities |
US7924921B2 (en) * | 2003-09-07 | 2011-04-12 | Microsoft Corporation | Signaling coding and display options in entry point headers |
US8014450B2 (en) * | 2003-09-07 | 2011-09-06 | Microsoft Corporation | Flexible range reduction |
US8107531B2 (en) * | 2003-09-07 | 2012-01-31 | Microsoft Corporation | Signaling and repeat padding for skip frames |
US7688894B2 (en) * | 2003-09-07 | 2010-03-30 | Microsoft Corporation | Scan patterns for interlaced video content |
US7599438B2 (en) | 2003-09-07 | 2009-10-06 | Microsoft Corporation | Motion vector block pattern coding and decoding |
US8064520B2 (en) | 2003-09-07 | 2011-11-22 | Microsoft Corporation | Advanced bi-directional predictive coding of interlaced video |
US7782954B2 (en) * | 2003-09-07 | 2010-08-24 | Microsoft Corporation | Scan patterns for progressive video content |
US7567617B2 (en) | 2003-09-07 | 2009-07-28 | Microsoft Corporation | Predicting motion vectors for fields of forward-predicted interlaced video frames |
US8625680B2 (en) * | 2003-09-07 | 2014-01-07 | Microsoft Corporation | Bitstream-controlled post-processing filtering |
US8213779B2 (en) * | 2003-09-07 | 2012-07-03 | Microsoft Corporation | Trick mode elementary stream and receiver system |
US7317839B2 (en) | 2003-09-07 | 2008-01-08 | Microsoft Corporation | Chroma motion vector derivation for interlaced forward-predicted fields |
KR101103867B1 (ko) * | 2003-09-07 | 2012-01-12 | 마이크로소프트 코포레이션 | 이미지 또는 비디오를 코딩/디코딩하는 방법 및 매체 |
US7616692B2 (en) | 2003-09-07 | 2009-11-10 | Microsoft Corporation | Hybrid motion vector prediction for interlaced forward-predicted fields |
US7266255B1 (en) * | 2003-09-26 | 2007-09-04 | Sun Microsystems, Inc. | Distributed multi-sample convolution |
DE602004031443D1 (de) * | 2003-10-02 | 2011-03-31 | Given Imaging Ltd | System und methode zur darstellung von datenströmen |
US8133115B2 (en) | 2003-10-22 | 2012-03-13 | Sony Computer Entertainment America Llc | System and method for recording and displaying a graphical path in a video game |
US7295700B2 (en) * | 2003-10-24 | 2007-11-13 | Adobe Systems Incorporated | Object extraction based on color and visual texture |
TWI273778B (en) * | 2003-11-10 | 2007-02-11 | Sunplus Technology Co Ltd | Method to merge the system data in image memory system |
US7454068B2 (en) * | 2003-11-12 | 2008-11-18 | International Business Machines Corporation | System and method for providing black white image compression |
US20050120340A1 (en) * | 2003-12-01 | 2005-06-02 | Skazinski Joseph G. | Apparatus, system, and method for automated generation of embedded systems software |
US7760968B2 (en) * | 2004-01-16 | 2010-07-20 | Nvidia Corporation | Video image processing with processing time allocation |
US7653265B2 (en) * | 2004-01-16 | 2010-01-26 | Nvidia Corporation | Video image processing with utility processing stage |
US7308159B2 (en) * | 2004-01-16 | 2007-12-11 | Enuclia Semiconductor, Inc. | Image processing system and method with dynamically controlled pixel processing |
US9292904B2 (en) * | 2004-01-16 | 2016-03-22 | Nvidia Corporation | Video image processing with parallel processing |
US7515758B2 (en) * | 2004-02-03 | 2009-04-07 | International Business Machines Corporation | Black white image compression having print density control |
US7447331B2 (en) * | 2004-02-24 | 2008-11-04 | International Business Machines Corporation | System and method for generating a viewable video index for low bandwidth applications |
US7751482B1 (en) * | 2004-02-27 | 2010-07-06 | Vbrick Systems, Inc. | Phase correlation based motion estimation in hybrid video compression |
US8000392B1 (en) | 2004-02-27 | 2011-08-16 | Vbrick Systems, Inc. | Phase correlation based motion estimation in hybrid video compression |
US7649539B2 (en) * | 2004-03-10 | 2010-01-19 | Microsoft Corporation | Image formats for video capture, processing and display |
US20050232497A1 (en) * | 2004-04-15 | 2005-10-20 | Microsoft Corporation | High-fidelity transcoding |
US7487193B2 (en) * | 2004-05-14 | 2009-02-03 | Microsoft Corporation | Fast video codec transform implementations |
US7801383B2 (en) | 2004-05-15 | 2010-09-21 | Microsoft Corporation | Embedded scalar quantizers with arbitrary dead-zone ratios |
US8442108B2 (en) * | 2004-07-12 | 2013-05-14 | Microsoft Corporation | Adaptive updates in motion-compensated temporal filtering |
US8340177B2 (en) * | 2004-07-12 | 2012-12-25 | Microsoft Corporation | Embedded base layer codec for 3D sub-band coding |
US8374238B2 (en) * | 2004-07-13 | 2013-02-12 | Microsoft Corporation | Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video |
US9743078B2 (en) | 2004-07-30 | 2017-08-22 | Euclid Discoveries, Llc | Standards-compliant model-based video encoding and decoding |
US8902971B2 (en) | 2004-07-30 | 2014-12-02 | Euclid Discoveries, Llc | Video compression repository and model reuse |
US9578345B2 (en) | 2005-03-31 | 2017-02-21 | Euclid Discoveries, Llc | Model-based video encoding and decoding |
WO2010042486A1 (en) * | 2008-10-07 | 2010-04-15 | Euclid Discoveries, Llc | Feature-based video compression |
US9532069B2 (en) | 2004-07-30 | 2016-12-27 | Euclid Discoveries, Llc | Video compression repository and model reuse |
US20060028562A1 (en) * | 2004-08-09 | 2006-02-09 | Martin Schmitz | Fast area-selected filtering for pixel-noise and analog artifacts reduction |
US7483572B2 (en) * | 2004-08-25 | 2009-01-27 | Mitsubishi Electric Research Laboratories, Inc. | Recovering a non-linear warping function from images |
US20060071933A1 (en) | 2004-10-06 | 2006-04-06 | Sony Computer Entertainment Inc. | Application binary interface for multi-pass shaders |
US8243820B2 (en) * | 2004-10-06 | 2012-08-14 | Microsoft Corporation | Decoding variable coded resolution video with native range/resolution post-processing operation |
US7839933B2 (en) * | 2004-10-06 | 2010-11-23 | Microsoft Corporation | Adaptive vertical macroblock alignment for mixed frame video sequences |
US9071847B2 (en) | 2004-10-06 | 2015-06-30 | Microsoft Technology Licensing, Llc | Variable coding resolution in video codec |
US7421139B2 (en) * | 2004-10-07 | 2008-09-02 | Infoprint Solutions Company, Llc | Reducing errors in performance sensitive transformations |
US20060104356A1 (en) * | 2004-11-15 | 2006-05-18 | Microsoft Corporation | Timing for decoder buffer examination |
US7428342B2 (en) * | 2004-12-17 | 2008-09-23 | Microsoft Corporation | Reversible overlap operator for efficient lossless data compression |
US7305139B2 (en) * | 2004-12-17 | 2007-12-04 | Microsoft Corporation | Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform |
US7471850B2 (en) * | 2004-12-17 | 2008-12-30 | Microsoft Corporation | Reversible transform for lossy and lossless 2-D data compression |
US20060146932A1 (en) * | 2004-12-30 | 2006-07-06 | Krit Panusopone | Method and apparatus for providing motion estimation with weight prediction |
US8634413B2 (en) | 2004-12-30 | 2014-01-21 | Microsoft Corporation | Use of frame caching to improve packet loss recovery |
US7869666B2 (en) * | 2005-01-13 | 2011-01-11 | Nvidia Corporation | Video processing system and method with dynamic tag architecture |
US7853044B2 (en) * | 2005-01-13 | 2010-12-14 | Nvidia Corporation | Video processing system and method with dynamic tag architecture |
US20060152627A1 (en) * | 2005-01-13 | 2006-07-13 | Ruggiero Carl J | Video processing system and method with dynamic tag architecture |
US7738740B2 (en) * | 2005-01-13 | 2010-06-15 | Nvidia Corporation | Video processing system and method with dynamic tag architecture |
US20060215036A1 (en) * | 2005-03-25 | 2006-09-28 | Multivision Intelligent Surveillance (Hk) Ltd. | Method and apparatus for video stabilization |
US20060222073A1 (en) * | 2005-03-29 | 2006-10-05 | Guillaume Mercier | Authoring running marks in compressed data |
US7511738B1 (en) * | 2005-03-31 | 2009-03-31 | Lockheed Martin Corporation | Massively-parallel three-axis stabilization of focal plane data |
US7830552B2 (en) * | 2005-04-15 | 2010-11-09 | International Business Machines Corporation | Black white image scaling having print density control and polarity detection |
US8422546B2 (en) | 2005-05-25 | 2013-04-16 | Microsoft Corporation | Adaptive video encoding using a perceptual model |
US20060271855A1 (en) * | 2005-05-27 | 2006-11-30 | Microsoft Corporation | Operating system shell management of video files |
US7636126B2 (en) | 2005-06-22 | 2009-12-22 | Sony Computer Entertainment Inc. | Delay matching in audio/video systems |
US7599840B2 (en) | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
US7546240B2 (en) * | 2005-07-15 | 2009-06-09 | Microsoft Corporation | Coding with improved time resolution for selected segments via adaptive block transformation of a group of samples from a subband decomposition |
US7693709B2 (en) | 2005-07-15 | 2010-04-06 | Microsoft Corporation | Reordering coefficients for waveform coding or decoding |
US7684981B2 (en) | 2005-07-15 | 2010-03-23 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
US7639873B2 (en) * | 2005-07-28 | 2009-12-29 | Microsoft Corporation | Robust shot detection in a video |
WO2008091485A2 (en) * | 2007-01-23 | 2008-07-31 | Euclid Discoveries, Llc | Systems and methods for providing personal video services |
US8036274B2 (en) * | 2005-08-12 | 2011-10-11 | Microsoft Corporation | SIMD lapped transform-based digital media encoding/decoding |
US7933337B2 (en) | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
US8599925B2 (en) | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
US9077960B2 (en) | 2005-08-12 | 2015-07-07 | Microsoft Corporation | Non-zero coefficient block pattern coding |
US7565018B2 (en) | 2005-08-12 | 2009-07-21 | Microsoft Corporation | Adaptive coding and decoding of wide-range coefficients |
US20070060798A1 (en) * | 2005-09-15 | 2007-03-15 | Hagai Krupnik | System and method for presentation of data streams |
US7689052B2 (en) * | 2005-10-07 | 2010-03-30 | Microsoft Corporation | Multimedia signal processing using fixed-point approximations of linear transforms |
US20070124766A1 (en) * | 2005-11-30 | 2007-05-31 | Broadcom Corporation | Video synthesizer |
US7646922B2 (en) * | 2005-12-30 | 2010-01-12 | Honeywell International Inc. | Object classification in video images |
US7956930B2 (en) | 2006-01-06 | 2011-06-07 | Microsoft Corporation | Resampling and picture resizing operations for multi-resolution video coding and decoding |
US7965774B2 (en) * | 2006-01-06 | 2011-06-21 | International Business Machines Corporation | Method for visual signal extrapolation or interpolation |
US8265145B1 (en) | 2006-01-13 | 2012-09-11 | Vbrick Systems, Inc. | Management and selection of reference frames for long term prediction in motion estimation |
JP2007257078A (ja) * | 2006-03-20 | 2007-10-04 | Fujitsu Ltd | 画像検索装置 |
US7974340B2 (en) | 2006-04-07 | 2011-07-05 | Microsoft Corporation | Adaptive B-picture quantization control |
US7995649B2 (en) | 2006-04-07 | 2011-08-09 | Microsoft Corporation | Quantization adjustment based on texture level |
US8059721B2 (en) | 2006-04-07 | 2011-11-15 | Microsoft Corporation | Estimating sample-domain distortion in the transform domain with rounding compensation |
US8503536B2 (en) | 2006-04-07 | 2013-08-06 | Microsoft Corporation | Quantization adjustments for DC shift artifacts |
US8130828B2 (en) | 2006-04-07 | 2012-03-06 | Microsoft Corporation | Adjusting quantization to preserve non-zero AC coefficients |
US7880746B2 (en) * | 2006-05-04 | 2011-02-01 | Sony Computer Entertainment Inc. | Bandwidth management through lighting control of a user environment via a display device |
US7965859B2 (en) | 2006-05-04 | 2011-06-21 | Sony Computer Entertainment Inc. | Lighting control of a user environment via a display device |
US8880571B2 (en) * | 2006-05-05 | 2014-11-04 | Microsoft Corporation | High dynamic range data format conversions for digital media |
US8711925B2 (en) | 2006-05-05 | 2014-04-29 | Microsoft Corporation | Flexible quantization |
US20080084932A1 (en) * | 2006-10-06 | 2008-04-10 | Microsoft Corporation | Controlling loop filtering for interlaced video frames |
US8078004B2 (en) * | 2006-11-09 | 2011-12-13 | University Of Delaware | Geometric registration of images by similarity transformation using two reference points |
WO2008061164A2 (en) * | 2006-11-14 | 2008-05-22 | Qualcomm Incorporated | Systems and methods for channel switching |
US8947452B1 (en) * | 2006-12-07 | 2015-02-03 | Disney Enterprises, Inc. | Mechanism for displaying visual clues to stacking order during a drag and drop operation |
US8494053B2 (en) * | 2007-01-03 | 2013-07-23 | International Business Machines Corporation | Method and apparatus of temporal filtering for side information interpolation and extrapolation in Wyner-Ziv video compression systems |
US20080212895A1 (en) * | 2007-01-09 | 2008-09-04 | Lockheed Martin Corporation | Image data processing techniques for highly undersampled images |
JP2010526455A (ja) * | 2007-01-23 | 2010-07-29 | ユークリッド・ディスカバリーズ・エルエルシー | 画像データを処理するコンピュータ方法および装置 |
CN101622874A (zh) * | 2007-01-23 | 2010-01-06 | 欧几里得发现有限责任公司 | 对象存档系统和方法 |
US8238424B2 (en) | 2007-02-09 | 2012-08-07 | Microsoft Corporation | Complexity-based adaptive preprocessing for multiple-pass video compression |
US8184710B2 (en) | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
US8942289B2 (en) * | 2007-02-21 | 2015-01-27 | Microsoft Corporation | Computational complexity and precision control in transform-based digital media codec |
US8054886B2 (en) | 2007-02-21 | 2011-11-08 | Microsoft Corporation | Signaling and use of chroma sample positioning information |
US8107571B2 (en) * | 2007-03-20 | 2012-01-31 | Microsoft Corporation | Parameterized filters and signaling techniques |
US8498335B2 (en) | 2007-03-26 | 2013-07-30 | Microsoft Corporation | Adaptive deadzone size adjustment in quantization |
KR100884066B1 (ko) * | 2007-03-30 | 2009-02-19 | 한국전자통신연구원 | Svd 기반의 영상 비교시스템 및 방법 |
US8243797B2 (en) | 2007-03-30 | 2012-08-14 | Microsoft Corporation | Regions of interest for quality adjustments |
US8442337B2 (en) | 2007-04-18 | 2013-05-14 | Microsoft Corporation | Encoding adjustments for animation content |
US8331438B2 (en) | 2007-06-05 | 2012-12-11 | Microsoft Corporation | Adaptive selection of picture-level quantization parameters for predicted video pictures |
US7761290B2 (en) | 2007-06-15 | 2010-07-20 | Microsoft Corporation | Flexible frequency and time partitioning in perceptual transform coding of audio |
US7774205B2 (en) | 2007-06-15 | 2010-08-10 | Microsoft Corporation | Coding of sparse digital media spectral data |
US8798148B2 (en) * | 2007-06-15 | 2014-08-05 | Physical Optics Corporation | Apparatus and method employing pre-ATR-based real-time compression and video frame segmentation |
US8254455B2 (en) | 2007-06-30 | 2012-08-28 | Microsoft Corporation | Computing collocated macroblock information for direct mode macroblocks |
DE102007033316A1 (de) | 2007-07-16 | 2009-01-22 | Atvisican Ag | Verfahren zum Vektorisieren von Videobildern |
US20090046938A1 (en) * | 2007-08-15 | 2009-02-19 | Lockheed Martin Corporation | Character contour correction |
AU2007214319A1 (en) * | 2007-08-30 | 2009-03-19 | Canon Kabushiki Kaisha | Improvements for Spatial Wyner Ziv Coding |
JP4882956B2 (ja) * | 2007-10-22 | 2012-02-22 | ソニー株式会社 | 画像処理装置および画像処理方法 |
US8457958B2 (en) | 2007-11-09 | 2013-06-04 | Microsoft Corporation | Audio transcoder using encoder-generated side information to transcode to target bit-rate |
WO2009096721A2 (en) * | 2008-01-29 | 2009-08-06 | Electronics And Telecommunications Research Institute | Method and apparatus for encoding and decoding video signal using motion compensation based on affine transformation |
KR101003105B1 (ko) * | 2008-01-29 | 2010-12-21 | 한국전자통신연구원 | 어파인 변환 기반의 움직임 보상을 이용한 비디오 부호화 및 복호화 방법 및 장치 |
US8953673B2 (en) * | 2008-02-29 | 2015-02-10 | Microsoft Corporation | Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers |
US8711948B2 (en) * | 2008-03-21 | 2014-04-29 | Microsoft Corporation | Motion-compensated prediction of inter-layer residuals |
US8189933B2 (en) | 2008-03-31 | 2012-05-29 | Microsoft Corporation | Classifying and controlling encoding quality for textured, dark smooth and smooth video content |
US8164862B2 (en) * | 2008-04-02 | 2012-04-24 | Headway Technologies, Inc. | Seed layer for TMR or CPP-GMR sensor |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US8369638B2 (en) * | 2008-05-27 | 2013-02-05 | Microsoft Corporation | Reducing DC leakage in HD photo transform |
US8447591B2 (en) * | 2008-05-30 | 2013-05-21 | Microsoft Corporation | Factorization of overlapping tranforms into two block transforms |
US8370887B2 (en) | 2008-05-30 | 2013-02-05 | Microsoft Corporation | Media streaming with enhanced seek operation |
US8897359B2 (en) | 2008-06-03 | 2014-11-25 | Microsoft Corporation | Adaptive quantization for enhancement layer video coding |
AU2009260834B2 (en) | 2008-06-18 | 2014-10-09 | Covidien Lp | System and method of evaluating a subject with an ingestible capsule |
US20130022114A1 (en) * | 2008-06-23 | 2013-01-24 | Mediatek Inc. | Method and related apparatuses for decoding multimedia data |
US8878870B1 (en) * | 2008-08-01 | 2014-11-04 | Marvell International Ltd. | Graphic processing techniques and configurations |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
US9571856B2 (en) | 2008-08-25 | 2017-02-14 | Microsoft Technology Licensing, Llc | Conversion operations in scalable video encoding and decoding |
US8213503B2 (en) | 2008-09-05 | 2012-07-03 | Microsoft Corporation | Skip modes for inter-layer residual video coding and decoding |
US8275209B2 (en) * | 2008-10-10 | 2012-09-25 | Microsoft Corporation | Reduced DC gain mismatch and DC leakage in overlap transform processing |
JP2010114576A (ja) * | 2008-11-05 | 2010-05-20 | Seiko Epson Corp | 画像処理装置 |
US8094931B2 (en) * | 2008-12-09 | 2012-01-10 | Himax Technologies Limited | Method of color components compression |
US8311115B2 (en) | 2009-01-29 | 2012-11-13 | Microsoft Corporation | Video encoding using previously calculated motion information |
US8396114B2 (en) | 2009-01-29 | 2013-03-12 | Microsoft Corporation | Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming |
US8189666B2 (en) | 2009-02-02 | 2012-05-29 | Microsoft Corporation | Local picture identifier and computation of co-located information |
US8270473B2 (en) * | 2009-06-12 | 2012-09-18 | Microsoft Corporation | Motion based dynamic resolution multiple bit rate video encoding |
JP5316882B2 (ja) * | 2009-11-12 | 2013-10-16 | 清水建設株式会社 | 梁の振動低減機構 |
US10786736B2 (en) | 2010-05-11 | 2020-09-29 | Sony Interactive Entertainment LLC | Placement of user information in a game space |
US8705616B2 (en) | 2010-06-11 | 2014-04-22 | Microsoft Corporation | Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures |
US8417045B2 (en) * | 2010-07-29 | 2013-04-09 | Infoprint Solutions Company Llc | Mechanism for processing order-16 discrete cosine transforms |
US8787443B2 (en) | 2010-10-05 | 2014-07-22 | Microsoft Corporation | Content adaptive deblocking during video encoding and decoding |
US8730232B2 (en) | 2011-02-01 | 2014-05-20 | Legend3D, Inc. | Director-style based 2D to 3D movie conversion system and method |
US9241147B2 (en) | 2013-05-01 | 2016-01-19 | Legend3D, Inc. | External depth map transformation method for conversion of two-dimensional images to stereoscopic images |
US9113130B2 (en) | 2012-02-06 | 2015-08-18 | Legend3D, Inc. | Multi-stage production pipeline system |
US9288476B2 (en) | 2011-02-17 | 2016-03-15 | Legend3D, Inc. | System and method for real-time depth modification of stereo images of a virtual reality environment |
US9407904B2 (en) | 2013-05-01 | 2016-08-02 | Legend3D, Inc. | Method for creating 3D virtual reality from 2D images |
US9282321B2 (en) | 2011-02-17 | 2016-03-08 | Legend3D, Inc. | 3D model multi-reviewer system |
US9042458B2 (en) | 2011-04-01 | 2015-05-26 | Microsoft Technology Licensing, Llc | Multi-threaded implementations of deblock filtering |
US8873816B1 (en) | 2011-04-06 | 2014-10-28 | Given Imaging Ltd. | Method and system for identification of red colored pathologies in vivo |
US9342817B2 (en) | 2011-07-07 | 2016-05-17 | Sony Interactive Entertainment LLC | Auto-creating groups for sharing photos |
US9591318B2 (en) | 2011-09-16 | 2017-03-07 | Microsoft Technology Licensing, Llc | Multi-layer encoding and decoding |
US11089343B2 (en) | 2012-01-11 | 2021-08-10 | Microsoft Technology Licensing, Llc | Capability advertisement, configuration and control for video coding and decoding |
WO2013164826A1 (en) | 2012-05-04 | 2013-11-07 | Given Imaging Ltd. | System and method for automatic navigation of a capsule based on image stream captured in-vivo |
CN104350742B (zh) | 2012-06-29 | 2018-07-06 | 基文影像公司 | 用于显示图像流的系统和方法 |
US20140009563A1 (en) * | 2012-07-03 | 2014-01-09 | Google Inc. | Non-video codecs with video conferencing |
US10114839B2 (en) | 2012-08-21 | 2018-10-30 | EMC IP Holding Company LLC | Format identification for fragmented image data |
US9007365B2 (en) | 2012-11-27 | 2015-04-14 | Legend3D, Inc. | Line depth augmentation system and method for conversion of 2D images to 3D images |
US9547937B2 (en) | 2012-11-30 | 2017-01-17 | Legend3D, Inc. | Three-dimensional annotation system and method |
US9349072B2 (en) | 2013-03-11 | 2016-05-24 | Microsoft Technology Licensing, Llc | Local feature based image compression |
US9007404B2 (en) | 2013-03-15 | 2015-04-14 | Legend3D, Inc. | Tilt-based look around effect image enhancement method |
US9438878B2 (en) | 2013-05-01 | 2016-09-06 | Legend3D, Inc. | Method of converting 2D video to 3D video using 3D object models |
US9324145B1 (en) | 2013-08-08 | 2016-04-26 | Given Imaging Ltd. | System and method for detection of transitions in an image stream of the gastrointestinal tract |
US9774881B2 (en) | 2014-01-08 | 2017-09-26 | Microsoft Technology Licensing, Llc | Representing motion vectors in an encoded bitstream |
US9749642B2 (en) | 2014-01-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Selection of motion vector precision |
US9942560B2 (en) | 2014-01-08 | 2018-04-10 | Microsoft Technology Licensing, Llc | Encoding screen capture data |
IN2014CH00165A (es) | 2014-01-15 | 2015-07-17 | Infosys Ltd | |
US10091507B2 (en) | 2014-03-10 | 2018-10-02 | Euclid Discoveries, Llc | Perceptual optimization for model-based video encoding |
US10097851B2 (en) | 2014-03-10 | 2018-10-09 | Euclid Discoveries, Llc | Perceptual optimization for model-based video encoding |
WO2015138008A1 (en) | 2014-03-10 | 2015-09-17 | Euclid Discoveries, Llc | Continuous block tracking for temporal prediction in video encoding |
US9594940B1 (en) | 2014-08-11 | 2017-03-14 | Synaptics Incorporated | Fingerprint template compression |
CN104363451B (zh) | 2014-10-27 | 2019-01-25 | 华为技术有限公司 | 图像预测方法及相关装置 |
US10708571B2 (en) * | 2015-06-29 | 2020-07-07 | Microsoft Technology Licensing, Llc | Video frame processing |
US9955191B2 (en) | 2015-07-01 | 2018-04-24 | At&T Intellectual Property I, L.P. | Method and apparatus for managing bandwidth in providing communication services |
US9609307B1 (en) | 2015-09-17 | 2017-03-28 | Legend3D, Inc. | Method of converting 2D video to 3D video using machine learning |
RU2015139563A (ru) * | 2015-09-17 | 2017-03-22 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и устройство для хранения и сжатия данных о пространственных объектах |
US10462490B2 (en) * | 2015-11-06 | 2019-10-29 | Raytheon Company | Efficient video data representation and content based video retrieval framework |
US10271069B2 (en) | 2016-08-31 | 2019-04-23 | Microsoft Technology Licensing, Llc | Selective use of start code emulation prevention |
US10482594B2 (en) * | 2016-09-23 | 2019-11-19 | Apple Inc. | Multi-perspective imaging system and method |
US11412260B2 (en) * | 2018-10-29 | 2022-08-09 | Google Llc | Geometric transforms for image compression |
US20210127125A1 (en) * | 2019-10-23 | 2021-04-29 | Facebook Technologies, Llc | Reducing size and power consumption for frame buffers using lossy compression |
US10970855B1 (en) | 2020-03-05 | 2021-04-06 | International Business Machines Corporation | Memory-efficient video tracking in real-time using direction vectors |
US11055810B1 (en) * | 2020-03-30 | 2021-07-06 | Adobe Inc. | Optimizing graphics geometry using similarity-based clustering |
US20210152530A1 (en) * | 2020-12-22 | 2021-05-20 | Praveen Prasad Nair | Tiered access to regions of interest in video frames |
CN112990105B (zh) * | 2021-04-19 | 2021-09-21 | 北京优幕科技有限责任公司 | 对用户评价的方法、装置、电子设备和存储介质 |
CN115115970A (zh) * | 2022-05-19 | 2022-09-27 | 大连理工大学 | 基于自适应匹配的视频显著性检测方法、装置及存储介质 |
EP4254337A1 (en) | 2023-01-17 | 2023-10-04 | University of Maribor | A procedure for encoding and decoding of binary images using chain codes |
Family Cites Families (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3873972A (en) * | 1971-11-01 | 1975-03-25 | Theodore H Levine | Analytic character recognition system |
US3873971A (en) * | 1973-10-31 | 1975-03-25 | Motorola Inc | Random error correcting system |
US4307377A (en) * | 1979-11-09 | 1981-12-22 | Bell Telephone Laboratories, Incorporated | Vector coding of computer graphics material |
GB8311813D0 (en) * | 1983-04-29 | 1983-06-02 | West G A W | Coding and storing raster scan images |
DE3515159A1 (de) * | 1984-04-27 | 1985-10-31 | Canon K.K., Tokio/Tokyo | Bildverarbeitungseinrichtung |
US4751742A (en) * | 1985-05-07 | 1988-06-14 | Avelex | Priority coding of transform coefficients |
US4727422A (en) * | 1985-06-03 | 1988-02-23 | Picturetel Corporation | Method and apparatus for efficiently communicating image sequence having improved motion compensation |
US4754492A (en) * | 1985-06-03 | 1988-06-28 | Picturetel Corporation | Method and system for adapting a digitized signal processing system for block processing with minimal blocking artifacts |
JPH0766446B2 (ja) * | 1985-11-27 | 1995-07-19 | 株式会社日立製作所 | 移動物体像を抽出する方法 |
JP2540809B2 (ja) * | 1986-07-30 | 1996-10-09 | ソニー株式会社 | 高能率符号化装置 |
US4745633A (en) * | 1986-08-18 | 1988-05-17 | Peter Waksman | Optical image encoding and comparing using scan autocorrelation |
US4905295A (en) * | 1986-11-13 | 1990-02-27 | Ricoh Company, Ltd. | Code sequence matching method and apparatus |
US4783383A (en) * | 1986-12-02 | 1988-11-08 | Sanyo Electric Co., Ltd. | Sealed type battery provided with safety valve means and method of manufacturing same |
US4961231A (en) * | 1987-01-20 | 1990-10-02 | Ricoh Company, Ltd. | Pattern recognition method |
US5070465A (en) * | 1987-02-25 | 1991-12-03 | Sony Corporation | Video image transforming method and apparatus |
US4838685A (en) * | 1987-04-03 | 1989-06-13 | Massachusetts Institute Of Technology | Methods and apparatus for motion estimation in motion picture processing |
US4729020A (en) * | 1987-06-01 | 1988-03-01 | Delta Information Systems | System for formatting digital signals to be transmitted |
US5136659A (en) * | 1987-06-30 | 1992-08-04 | Kokusai Denshin Denwa Kabushiki Kaisha | Intelligent coding system for picture signal |
US5031225A (en) * | 1987-12-09 | 1991-07-09 | Ricoh Company, Ltd. | Character recognition method for recognizing character in an arbitrary rotation position |
US4912549A (en) * | 1988-09-07 | 1990-03-27 | Rca Licensing Corporation | Video signal synchronization system as for an extended definition widescreen television signal processing system |
US5034986A (en) * | 1989-03-01 | 1991-07-23 | Siemens Aktiengesellschaft | Method for detecting and tracking moving objects in a digital image sequence having a stationary background |
GB8909498D0 (en) * | 1989-04-26 | 1989-06-14 | British Telecomm | Motion estimator |
US5073955A (en) * | 1989-06-16 | 1991-12-17 | Siemens Aktiengesellschaft | Method for recognizing previously localized characters present in digital gray tone images, particularly for recognizing characters struck into metal surfaces |
US5175808A (en) * | 1989-09-12 | 1992-12-29 | Pixar | Method and apparatus for non-affine image warping |
JP2953712B2 (ja) * | 1989-09-27 | 1999-09-27 | 株式会社東芝 | 移動物体検知装置 |
GB9001468D0 (en) * | 1990-01-23 | 1990-03-21 | Sarnoff David Res Center | Computing multiple motions within an image region |
JP2569219B2 (ja) * | 1990-01-31 | 1997-01-08 | 富士通株式会社 | 動画像予測方式 |
US5148497A (en) * | 1990-02-14 | 1992-09-15 | Massachusetts Institute Of Technology | Fractal-based image compression and interpolation |
JPH082107B2 (ja) * | 1990-03-02 | 1996-01-10 | 国際電信電話株式会社 | 動画像のハイブリッド符号化方法及びその装置 |
US5103306A (en) * | 1990-03-28 | 1992-04-07 | Transitions Research Corporation | Digital image compression employing a resolution gradient |
US4999705A (en) * | 1990-05-03 | 1991-03-12 | At&T Bell Laboratories | Three dimensional motion compensated video coding |
US5155594A (en) * | 1990-05-11 | 1992-10-13 | Picturetel Corporation | Hierarchical encoding method and apparatus employing background references for efficiently communicating image sequences |
US5086477A (en) * | 1990-08-07 | 1992-02-04 | Northwest Technology Corp. | Automated system for extracting design and layout information from an integrated circuit |
US5020121A (en) * | 1990-08-16 | 1991-05-28 | Hewlett-Packard Company | Neighborhood block prediction bit compression |
JP3037383B2 (ja) * | 1990-09-03 | 2000-04-24 | キヤノン株式会社 | 画像処理システム及びその方法 |
GB9019538D0 (en) * | 1990-09-07 | 1990-10-24 | Philips Electronic Associated | Tracking a moving object |
EP0497586A3 (en) * | 1991-01-31 | 1994-05-18 | Sony Corp | Motion detection circuit |
JPH04334188A (ja) * | 1991-05-08 | 1992-11-20 | Nec Corp | 動画像信号の符号化方式 |
JP2866222B2 (ja) * | 1991-06-12 | 1999-03-08 | 三菱電機株式会社 | 動き補償予測方式 |
KR930001678A (ko) * | 1991-06-13 | 1993-01-16 | 강진구 | 영상 신호에 있어서의 잡음 검출 알고리즘 |
JP2873338B2 (ja) * | 1991-09-17 | 1999-03-24 | 富士通株式会社 | 動物体認識装置 |
JP2856229B2 (ja) * | 1991-09-18 | 1999-02-10 | 財団法人ニューメディア開発協会 | 画像切り出し箇所検出方法 |
US5259040A (en) * | 1991-10-04 | 1993-11-02 | David Sarnoff Research Center, Inc. | Method for determining sensor motion and scene structure and image processing system therefor |
DE4138517A1 (de) * | 1991-11-23 | 1993-05-27 | Univ Hannover | Einrichtung zur objekt-orientierten codierung von bildsignalen |
US5430811A (en) * | 1991-12-25 | 1995-07-04 | Matsushita Electric Industrial Co., Ltd. | Method for interpolating missing pixels and an apparatus employing the method |
JP2790562B2 (ja) * | 1992-01-06 | 1998-08-27 | 富士写真フイルム株式会社 | 画像処理方法 |
JP3068304B2 (ja) * | 1992-01-21 | 2000-07-24 | 日本電気株式会社 | 動画像符号化方式および復号化方式 |
DE69322423T2 (de) * | 1992-03-13 | 1999-06-02 | Canon Kk | Vorrichtung zur Detektion von Bewegungsvektoren |
GB2266023B (en) * | 1992-03-31 | 1995-09-06 | Sony Broadcast & Communication | Motion dependent video signal processing |
US5283646A (en) * | 1992-04-09 | 1994-02-01 | Picturetel Corporation | Quantizer control method and apparatus |
US5706417A (en) * | 1992-05-27 | 1998-01-06 | Massachusetts Institute Of Technology | Layered representation for image coding |
GB9215102D0 (en) * | 1992-07-16 | 1992-08-26 | Philips Electronics Uk Ltd | Tracking moving objects |
JPH06113287A (ja) * | 1992-09-30 | 1994-04-22 | Matsushita Electric Ind Co Ltd | 画像符号化装置と画像復号化装置 |
TW250555B (es) * | 1992-09-30 | 1995-07-01 | Hudson Kk | |
US5424783A (en) * | 1993-02-10 | 1995-06-13 | Wong; Yiu-Fai | Clustering filter method for noise filtering, scale-space filtering and image processing |
US5592228A (en) * | 1993-03-04 | 1997-01-07 | Kabushiki Kaisha Toshiba | Video encoder using global motion estimation and polygonal patch motion estimation |
JP3679426B2 (ja) * | 1993-03-15 | 2005-08-03 | マサチューセッツ・インスティチュート・オブ・テクノロジー | 画像データを符号化して夫々がコヒーレントな動きの領域を表わす複数の層とそれら層に付随する動きパラメータとにするシステム |
US5500933A (en) * | 1993-04-28 | 1996-03-19 | Canon Information Systems, Inc. | Display system which displays motion video objects combined with other visual objects |
US5329311A (en) * | 1993-05-11 | 1994-07-12 | The University Of British Columbia | System for determining noise content of a video signal in the disclosure |
DE69416717T2 (de) * | 1993-05-21 | 1999-10-07 | Nippon Telegraph & Telephone | Bewegtbildkoder und -dekoder |
EP0626788B1 (en) * | 1993-05-26 | 2000-08-30 | STMicroelectronics S.r.l. | Video images decoder architecture for implementing a 40 ms processing algorithm in high definition televisions |
US5517327A (en) * | 1993-06-30 | 1996-05-14 | Minolta Camera Kabushiki Kaisha | Data processor for image data using orthogonal transformation |
FI94306C (fi) * | 1993-07-15 | 1995-08-10 | Nokia Technology Gmbh | Menetelmä televisiokuvan pienten kuvasegmenttien liikevektoreiden määrittämiseksi |
US5477272A (en) * | 1993-07-22 | 1995-12-19 | Gte Laboratories Incorporated | Variable-block size multi-resolution motion estimation scheme for pyramid coding |
JP2576771B2 (ja) * | 1993-09-28 | 1997-01-29 | 日本電気株式会社 | 動き補償予測装置 |
US5594504A (en) * | 1994-07-06 | 1997-01-14 | Lucent Technologies Inc. | Predictive video coding using a motion vector updating routine |
KR100287211B1 (ko) * | 1994-08-30 | 2001-04-16 | 윤종용 | 양방향 움직임 추정방법 및 장치 |
US5574572A (en) * | 1994-09-07 | 1996-11-12 | Harris Corporation | Video scaling method and device |
DE69525127T2 (de) * | 1994-10-28 | 2002-10-02 | Oki Electric Ind Co Ltd | Gerät und Verfahren zur Kodierung und Dekodierung von Bildern unter Verwendung einer Kantensynthese und einer Wavelet-Rücktransformation |
AU4363696A (en) * | 1994-11-17 | 1996-06-17 | Exxon Chemical Patents Inc. | Multi-layer particles for rotational molding |
US5619281A (en) * | 1994-12-30 | 1997-04-08 | Daewoo Electronics Co., Ltd | Method and apparatus for detecting motion vectors in a frame decimating video encoder |
EP0721287A1 (en) * | 1995-01-09 | 1996-07-10 | Daewoo Electronics Co., Ltd | Method and apparatus for encoding a video signal |
KR0171146B1 (ko) * | 1995-03-18 | 1999-03-20 | 배순훈 | 특징점을 이용한 움직임 벡터 검출 장치 |
KR0171118B1 (ko) * | 1995-03-20 | 1999-03-20 | 배순훈 | 비디오신호 부호화 장치 |
KR0181027B1 (ko) * | 1995-03-20 | 1999-05-01 | 배순훈 | 화소 단위 움직임 추정을 이용하는 영상처리 시스템 |
KR0171143B1 (ko) * | 1995-03-20 | 1999-03-20 | 배순훈 | 육각그리드에서의 삼각구조 형성 장치 |
KR0171147B1 (ko) * | 1995-03-20 | 1999-03-20 | 배순훈 | 그레디언트 변화를 이용한 특징점 선정장치 |
JP3612360B2 (ja) * | 1995-04-10 | 2005-01-19 | 株式会社大宇エレクトロニクス | 移動物体分割法を用いた動画像の動き推定方法 |
US5621660A (en) * | 1995-04-18 | 1997-04-15 | Sun Microsystems, Inc. | Software-based encoder for a software-implemented end-to-end scalable video delivery system |
KR0171154B1 (ko) * | 1995-04-29 | 1999-03-20 | 배순훈 | 특징점 기반 움직임 추정을 이용하여 비디오 신호를 부호화하는 방법 및 장치 |
KR0181063B1 (ko) * | 1995-04-29 | 1999-05-01 | 배순훈 | 특징점을 이용한 움직임 보상에서의 그리드 형성방법 및 장치 |
US5654771A (en) * | 1995-05-23 | 1997-08-05 | The University Of Rochester | Video compression system using a dense motion vector field and a triangular patch mesh overlay model |
US5668608A (en) * | 1995-07-26 | 1997-09-16 | Daewoo Electronics Co., Ltd. | Motion vector estimation method and apparatus for use in an image signal encoding system |
WO1997004662A1 (en) * | 1995-07-26 | 1997-02-13 | Wm. Wrigley Jr. Company | Use of encapsulated aspartic acid sweeteners in coating syrups for coated pellet chewing gums |
KR0178229B1 (ko) * | 1995-08-08 | 1999-05-01 | 배순훈 | 특징점에 근거한 화소단위 움직임 추정을 이용한 영상 처리 장치 |
US5692063A (en) * | 1996-01-19 | 1997-11-25 | Microsoft Corporation | Method and system for unrestricted motion estimation for video |
US5778098A (en) * | 1996-03-22 | 1998-07-07 | Microsoft Corporation | Sprite coding |
-
1996
- 1996-06-04 US US08/659,309 patent/US5825929A/en not_active Expired - Lifetime
- 1996-06-04 US US08/657,275 patent/US6026182A/en not_active Expired - Lifetime
- 1996-06-04 US US08/657,272 patent/US5933535A/en not_active Expired - Lifetime
- 1996-06-04 US US08/657,271 patent/US5995670A/en not_active Expired - Lifetime
- 1996-06-04 US US08/658,094 patent/US5970173A/en not_active Expired - Lifetime
- 1996-06-04 US US08/657,273 patent/US5949919A/en not_active Expired - Lifetime
- 1996-06-04 US US08/658,093 patent/US5784175A/en not_active Expired - Lifetime
- 1996-06-04 US US08/657,274 patent/US5796855A/en not_active Expired - Lifetime
- 1996-06-04 US US08/657,282 patent/US5959673A/en not_active Expired - Lifetime
- 1996-10-04 DE DE69637977T patent/DE69637977D1/de not_active Expired - Lifetime
- 1996-10-04 CA CA002432741A patent/CA2432741C/en not_active Expired - Lifetime
- 1996-10-04 EP EP05013279A patent/EP1589765B1/en not_active Expired - Lifetime
- 1996-10-04 PT PT05013280T patent/PT1589766E/pt unknown
- 1996-10-04 EP EP01110599A patent/EP1122956B1/en not_active Expired - Lifetime
- 1996-10-04 AT AT96936177T patent/ATE223134T1/de not_active IP Right Cessation
- 1996-10-04 EP EP05013280A patent/EP1589766B1/en not_active Expired - Lifetime
- 1996-10-04 JP JP51443497A patent/JP4242452B2/ja not_active Expired - Lifetime
- 1996-10-04 CA CA002432740A patent/CA2432740C/en not_active Expired - Lifetime
- 1996-10-04 CA CA002432735A patent/CA2432735C/en not_active Expired - Lifetime
- 1996-10-04 DE DE69623330T patent/DE69623330T2/de not_active Expired - Lifetime
- 1996-10-04 AU AU73889/96A patent/AU7388996A/en not_active Abandoned
- 1996-10-04 ES ES05013280T patent/ES2334507T3/es not_active Expired - Lifetime
- 1996-10-04 EP EP96936177A patent/EP0873653B1/en not_active Expired - Lifetime
- 1996-10-04 DE DE69634962T patent/DE69634962T2/de not_active Expired - Lifetime
- 1996-10-04 WO PCT/US1996/015892 patent/WO1997013372A2/en active IP Right Grant
- 1996-10-04 AT AT01110599T patent/ATE300153T1/de not_active IP Right Cessation
- 1996-10-04 DE DE69638007T patent/DE69638007D1/de not_active Expired - Lifetime
- 1996-10-04 AT AT05013280T patent/ATE440449T1/de not_active IP Right Cessation
- 1996-10-04 CA CA002233704A patent/CA2233704C/en not_active Expired - Lifetime
-
2007
- 2007-08-06 JP JP2007204772A patent/JP2008011552A/ja active Pending
- 2007-08-06 JP JP2007204764A patent/JP2008011551A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2334507T3 (es) | Proceso para la descompresion de videos con base en el objeto empleando caracteristicas conformadas arbitrariamente. | |
US5692063A (en) | Method and system for unrestricted motion estimation for video | |
US5799113A (en) | Method for expanding contracted video images | |
US5764814A (en) | Representation and encoding of general arbitrary shapes | |
US5748789A (en) | Transparent block skipping in object-based video coding systems | |
US6037988A (en) | Method for generating sprites for object-based coding sytems using masks and rounding average | |
US5778098A (en) | Sprite coding | |
US5982438A (en) | Overlapped motion compensation for object coding | |
US5787203A (en) | Method and system for filtering compressed video images | |
CN111837397B (zh) | 基于子图像码流的视角相关视频编码中的错误消除的码流指示 | |
US6075875A (en) | Segmentation of image features using hierarchical analysis of multi-valued image data and weighted averaging of segmentation results | |
WO1997013372A9 (en) | Feature-based video compression method |