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 PDF

Info

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
Application number
ES05013280T
Other languages
English (en)
Inventor
Ming-Chieh Lee
Iii William Chambers Powell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2334507T3 publication Critical patent/ES2334507T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation 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/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • G06V10/7515Shifting the patterns to accommodate for positional errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/23Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/649Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding the transform being applied to non rectangular image segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods 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.
Campo de la invención
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.
Antecedentes de la invenció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.
Resumen de la invención
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
Breve descripción de las figuras
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.
Descripción detallada de las representaciones preferentes
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.
Descripción del proceso codificador de compresión
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 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
Segmentación y seguimiento del objeto
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:
100
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.
Método de correspondencia de polígono
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:
101
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:
102
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
Proceso de correlación del bloque de píxeles
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
Transformación multidimensional
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:
103
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:
1
1000
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:
104
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:
105
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:
106
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:
107
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
Optimización del bloque de transformación
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
Método de extrapolación de precompresión
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.
Método codificador alternativo
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
Codificación de transformada de los vectores de movimiento
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
Compresión de objetos cuantificados de cuadros de vídeo anteriores
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
Descripción del proceso descodificador de compresión de vídeo
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
Codificación de cadena simplificada
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}.
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
Generación de sprites
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.
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)

  1. \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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 17. Un programa de ordenador de acuerdo con la reivindicación 16, que se plasma en un medio legible por ordenador.
ES05013280T 1995-10-05 1996-10-04 Proceso para la descompresion de videos con base en el objeto empleando caracteristicas conformadas arbitrariamente. Expired - Lifetime ES2334507T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
US5995670A (en) 1999-11-30
JP2008011552A (ja) 2008-01-17
DE69638007D1 (de) 2009-10-01
JP4242452B2 (ja) 2009-03-25
CA2432740A1 (en) 1997-04-10
EP1122956A2 (en) 2001-08-08
EP1122956A3 (en) 2004-06-30
US6026182A (en) 2000-02-15
EP1589766B1 (en) 2009-08-19
CA2432741A1 (en) 1997-04-10
US5784175A (en) 1998-07-21
CA2432740C (en) 2004-09-14
DE69623330T2 (de) 2003-05-15
US5825929A (en) 1998-10-20
AU7388996A (en) 1997-04-28
WO1997013372A3 (en) 1997-05-29
EP1589766A2 (en) 2005-10-26
JP2008011551A (ja) 2008-01-17
EP1589765A2 (en) 2005-10-26
CA2432735C (en) 2005-05-24
CA2233704A1 (en) 1997-04-10
ATE223134T1 (de) 2002-09-15
DE69634962D1 (de) 2005-08-25
DE69637977D1 (de) 2009-09-03
JPH11512911A (ja) 1999-11-02
EP1589765A3 (en) 2006-12-20
CA2233704C (en) 2003-09-16
US5970173A (en) 1999-10-19
EP1589766A3 (en) 2008-07-09
US5933535A (en) 1999-08-03
DE69634962T2 (de) 2006-04-13
ATE440449T1 (de) 2009-09-15
US5796855A (en) 1998-08-18
DE69623330D1 (de) 2002-10-02
ATE300153T1 (de) 2005-08-15
CA2432741C (en) 2004-09-14
EP0873653B1 (en) 2002-08-28
PT1589766E (pt) 2009-11-24
US5959673A (en) 1999-09-28
CA2432735A1 (en) 1997-04-10
EP0873653A2 (en) 1998-10-28
WO1997013372A2 (en) 1997-04-10
EP1589765B1 (en) 2009-07-22
EP1122956B1 (en) 2005-07-20
US5949919A (en) 1999-09-07

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